| # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py |
| # RUN: llc -mtriple=i586-linux-gnu -mcpu=haswell -mattr=-slow-incdec -run-pass=instruction-select %s -o - | FileCheck %s --check-prefix=CHECK |
| # |
| # This is necessary to test that attribute-based rule predicates work and that |
| # they properly reset between functions. |
| |
| --- | |
| define i32 @const_i32_1() { |
| ret i32 1 |
| } |
| |
| define i32 @const_i32_1_optsize() #0 { |
| ret i32 1 |
| } |
| |
| define i32 @const_i32_1b() { |
| ret i32 1 |
| } |
| |
| define i32 @const_i32_1_optsizeb() #0 { |
| ret i32 1 |
| } |
| |
| attributes #0 = { optsize } |
| ... |
| --- |
| name: const_i32_1 |
| legalized: true |
| regBankSelected: true |
| selected: false |
| registers: |
| - { id: 0, class: gpr } |
| body: | |
| bb.1 (%ir-block.0): |
| ; CHECK-LABEL: name: const_i32_1 |
| ; CHECK: [[MOV32ri:%[0-9]+]]:gr32 = MOV32ri 1 |
| ; CHECK: $eax = COPY [[MOV32ri]] |
| ; CHECK: RET 0, implicit $eax |
| %0(s32) = G_CONSTANT i32 1 |
| $eax = COPY %0(s32) |
| RET 0, implicit $eax |
| ... |
| --- |
| name: const_i32_1_optsize |
| legalized: true |
| regBankSelected: true |
| selected: false |
| registers: |
| - { id: 0, class: gpr } |
| body: | |
| bb.1 (%ir-block.0): |
| ; CHECK-LABEL: name: const_i32_1_optsize |
| ; CHECK: [[MOV32r1_:%[0-9]+]]:gr32 = MOV32r1 implicit-def $eflags |
| ; CHECK: $eax = COPY [[MOV32r1_]] |
| ; CHECK: RET 0, implicit $eax |
| %0(s32) = G_CONSTANT i32 1 |
| $eax = COPY %0(s32) |
| RET 0, implicit $eax |
| ... |
| --- |
| name: const_i32_1b |
| legalized: true |
| regBankSelected: true |
| selected: false |
| registers: |
| - { id: 0, class: gpr } |
| body: | |
| bb.1 (%ir-block.0): |
| ; CHECK-LABEL: name: const_i32_1b |
| ; CHECK: [[MOV32ri:%[0-9]+]]:gr32 = MOV32ri 1 |
| ; CHECK: $eax = COPY [[MOV32ri]] |
| ; CHECK: RET 0, implicit $eax |
| %0(s32) = G_CONSTANT i32 1 |
| $eax = COPY %0(s32) |
| RET 0, implicit $eax |
| ... |
| --- |
| name: const_i32_1_optsizeb |
| legalized: true |
| regBankSelected: true |
| selected: false |
| registers: |
| - { id: 0, class: gpr } |
| body: | |
| bb.1 (%ir-block.0): |
| ; CHECK-LABEL: name: const_i32_1_optsizeb |
| ; CHECK: [[MOV32r1_:%[0-9]+]]:gr32 = MOV32r1 implicit-def $eflags |
| ; CHECK: $eax = COPY [[MOV32r1_]] |
| ; CHECK: RET 0, implicit $eax |
| %0(s32) = G_CONSTANT i32 1 |
| $eax = COPY %0(s32) |
| RET 0, implicit $eax |
| ... |