190 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=x86_64-linux-gnu -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s --check-prefix=CHECK3 4--- |5 define i8 @const_i8() {6 ret i8 27 }8 9 define i16 @const_i16() {10 ret i16 311 }12 13 define i32 @const_i32() {14 ret i32 415 }16 17 define i32 @const_i32_0() {18 ret i32 019 }20 21 define i64 @const_i64() {22 ret i64 6871947672023 }24 25 define i64 @const_i64_u32() {26 ret i64 187904819227 }28 29 define i64 @const_i64_i32() {30 ret i64 -131 }32 33 define void @main(ptr %data) {34 store ptr null, ptr %data, align 835 ret void36 }37 38...39---40name: const_i841legalized: true42regBankSelected: true43selected: false44registers:45 - { id: 0, class: gpr }46body: |47 bb.1 (%ir-block.0):48 ; CHECK-LABEL: name: const_i849 ; CHECK: [[MOV8ri:%[0-9]+]]:gr8 = MOV8ri 250 ; CHECK-NEXT: $al = COPY [[MOV8ri]]51 ; CHECK-NEXT: RET 0, implicit $al52 %0(s8) = G_CONSTANT i8 253 $al = COPY %0(s8)54 RET 0, implicit $al55 56...57---58name: const_i1659legalized: true60regBankSelected: true61selected: false62registers:63 - { id: 0, class: gpr }64body: |65 bb.1 (%ir-block.0):66 ; CHECK-LABEL: name: const_i1667 ; CHECK: [[MOV16ri:%[0-9]+]]:gr16 = MOV16ri 368 ; CHECK-NEXT: $ax = COPY [[MOV16ri]]69 ; CHECK-NEXT: RET 0, implicit $ax70 %0(s16) = G_CONSTANT i16 371 $ax = COPY %0(s16)72 RET 0, implicit $ax73 74...75---76name: const_i3277legalized: true78regBankSelected: true79selected: false80registers:81 - { id: 0, class: gpr }82body: |83 bb.1 (%ir-block.0):84 ; CHECK-LABEL: name: const_i3285 ; CHECK: [[MOV32ri:%[0-9]+]]:gr32 = MOV32ri 486 ; CHECK-NEXT: $eax = COPY [[MOV32ri]]87 ; CHECK-NEXT: RET 0, implicit $eax88 %0(s32) = G_CONSTANT i32 489 $eax = COPY %0(s32)90 RET 0, implicit $eax91 92...93---94name: const_i32_095legalized: true96regBankSelected: true97registers:98 - { id: 0, class: gpr }99body: |100 bb.1 (%ir-block.0):101 ; CHECK-LABEL: name: const_i32_0102 ; CHECK: [[MOV32r0_:%[0-9]+]]:gr32 = MOV32r0 implicit-def dead $eflags103 ; CHECK-NEXT: $eax = COPY [[MOV32r0_]]104 ; CHECK-NEXT: RET 0, implicit $eax105 %0(s32) = G_CONSTANT i32 0106 $eax = COPY %0(s32)107 RET 0, implicit $eax108 109...110---111name: const_i64112legalized: true113regBankSelected: true114selected: false115registers:116 - { id: 0, class: gpr }117body: |118 bb.1 (%ir-block.0):119 ; CHECK-LABEL: name: const_i64120 ; CHECK: [[MOV64ri:%[0-9]+]]:gr64 = MOV64ri 68719476720121 ; CHECK-NEXT: $rax = COPY [[MOV64ri]]122 ; CHECK-NEXT: RET 0, implicit $rax123 %0(s64) = G_CONSTANT i64 68719476720124 $rax = COPY %0(s64)125 RET 0, implicit $rax126 127...128---129name: const_i64_u32130alignment: 16131legalized: true132regBankSelected: true133selected: false134registers:135 - { id: 0, class: gpr }136body: |137 bb.1 (%ir-block.0):138 ; CHECK-LABEL: name: const_i64_u32139 ; CHECK: [[MOV32ri64_:%[0-9]+]]:gr64 = MOV32ri64 1879048192140 ; CHECK-NEXT: $rax = COPY [[MOV32ri64_]]141 ; CHECK-NEXT: RET 0, implicit $rax142 %0(s64) = G_CONSTANT i64 1879048192143 $rax = COPY %0(s64)144 RET 0, implicit $rax145 146...147---148name: const_i64_i32149legalized: true150regBankSelected: true151selected: false152registers:153 - { id: 0, class: gpr }154body: |155 bb.1 (%ir-block.0):156 ; CHECK-LABEL: name: const_i64_i32157 ; CHECK: [[MOV64ri32_:%[0-9]+]]:gr64 = MOV64ri32 -1158 ; CHECK-NEXT: $rax = COPY [[MOV64ri32_]]159 ; CHECK-NEXT: RET 0, implicit $rax160 %0(s64) = G_CONSTANT i64 -1161 $rax = COPY %0(s64)162 RET 0, implicit $rax163 164...165---166name: main167alignment: 16168legalized: true169regBankSelected: true170registers:171 - { id: 0, class: gpr, preferred-register: '' }172 - { id: 1, class: gpr, preferred-register: '' }173body: |174 bb.1 (%ir-block.0):175 liveins: $rdi176 177 ; CHECK-LABEL: name: main178 ; CHECK: liveins: $rdi179 ; CHECK-NEXT: {{ $}}180 ; CHECK-NEXT: [[COPY:%[0-9]+]]:gr64 = COPY $rdi181 ; CHECK-NEXT: [[MOV64ri32_:%[0-9]+]]:gr64 = MOV64ri32 0182 ; CHECK-NEXT: MOV64mr [[COPY]], 1, $noreg, 0, $noreg, [[MOV64ri32_]] :: (store (p0) into %ir.data)183 ; CHECK-NEXT: RET 0184 %0(p0) = COPY $rdi185 %1(p0) = G_CONSTANT i64 0186 G_STORE %1(p0), %0(p0) :: (store (p0) into %ir.data)187 RET 0188 189...190