brintos

brintos / llvm-project-archived public Read only

0
0
Text · 9.0 KiB · 1ea2da9 Raw
378 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -O0 -mtriple=x86_64-linux-gnu -run-pass=legalizer %s -o - | FileCheck %s3 4--- |5  define i64 @test_sext_i1(i8 %a) {6    %val = trunc i8 %a to i17    %r = sext i1 %val to i648    ret i64 %r9  }10 11  define i64 @test_sext_i8(i8 %val) {12    %r = sext i8 %val to i6413    ret i64 %r14  }15 16  define i64 @test_sext_i16(i16 %val) {17    %r = sext i16 %val to i6418    ret i64 %r19  }20 21  define i64 @test_sext_i32(i32 %val) {22    %r = sext i32 %val to i6423    ret i64 %r24  }25 26  define i64 @test_zext_i1(i8 %a) {27    %val = trunc i8 %a to i128    %r = zext i1 %val to i6429    ret i64 %r30  }31 32  define i64 @test_zext_i8(i8 %val) {33    %r = zext i8 %val to i6434    ret i64 %r35  }36 37  define i64 @test_zext_i16(i16 %val) {38    %r = zext i16 %val to i6439    ret i64 %r40  }41 42  define i64 @test_zext_i32(i32 %val) {43    %r = zext i32 %val to i6444    ret i64 %r45  }46 47  define void @test_anyext_i1(i8 %a) {48    ret void49  }50 51  define void @test_anyext_i8(i8 %val) {52    ret void53  }54 55  define void @test_anyext_i16(i16 %val) {56    ret void57  }58 59  define void @test_anyext_i32(i32 %val) {60    ret void61  }62 63 64...65---66name:            test_sext_i167alignment:       1668legalized:       false69regBankSelected: false70registers:71  - { id: 0, class: _ }72  - { id: 1, class: _ }73  - { id: 2, class: _ }74body:             |75  bb.1 (%ir-block.0):76    liveins: $edi77 78    ; CHECK-LABEL: name: test_sext_i179    ; CHECK: liveins: $edi80    ; CHECK-NEXT: {{  $}}81    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s8) = COPY $dil82    ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:_(s64) = G_ANYEXT [[COPY]](s8)83    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s8) = G_CONSTANT i8 6384    ; CHECK-NEXT: [[SHL:%[0-9]+]]:_(s64) = G_SHL [[ANYEXT]], [[C]](s8)85    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s8) = COPY [[C]](s8)86    ; CHECK-NEXT: [[ASHR:%[0-9]+]]:_(s64) = G_ASHR [[SHL]], [[COPY1]](s8)87    ; CHECK-NEXT: $rax = COPY [[ASHR]](s64)88    ; CHECK-NEXT: RET 0, implicit $rax89    %0(s8) = COPY $dil90    %1(s1) = G_TRUNC %0(s8)91    %2(s64) = G_SEXT %1(s1)92    $rax = COPY %2(s64)93    RET 0, implicit $rax94 95...96---97name:            test_sext_i898alignment:       1699legalized:       false100regBankSelected: false101registers:102  - { id: 0, class: _ }103  - { id: 1, class: _ }104body:             |105  bb.1 (%ir-block.0):106    liveins: $edi107 108    ; CHECK-LABEL: name: test_sext_i8109    ; CHECK: liveins: $edi110    ; CHECK-NEXT: {{  $}}111    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s8) = COPY $dil112    ; CHECK-NEXT: [[SEXT:%[0-9]+]]:_(s64) = G_SEXT [[COPY]](s8)113    ; CHECK-NEXT: $rax = COPY [[SEXT]](s64)114    ; CHECK-NEXT: RET 0, implicit $rax115    %0(s8) = COPY $dil116    %1(s64) = G_SEXT %0(s8)117    $rax = COPY %1(s64)118    RET 0, implicit $rax119 120...121---122name:            test_sext_i16123alignment:       16124legalized:       false125regBankSelected: false126registers:127  - { id: 0, class: _ }128  - { id: 1, class: _ }129body:             |130  bb.1 (%ir-block.0):131    liveins: $edi132 133    ; CHECK-LABEL: name: test_sext_i16134    ; CHECK: liveins: $edi135    ; CHECK-NEXT: {{  $}}136    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $di137    ; CHECK-NEXT: [[SEXT:%[0-9]+]]:_(s64) = G_SEXT [[COPY]](s16)138    ; CHECK-NEXT: $rax = COPY [[SEXT]](s64)139    ; CHECK-NEXT: RET 0, implicit $rax140    %0(s16) = COPY $di141    %1(s64) = G_SEXT %0(s16)142    $rax = COPY %1(s64)143    RET 0, implicit $rax144 145...146---147name:            test_sext_i32148alignment:       16149legalized:       false150regBankSelected: false151registers:152  - { id: 0, class: _ }153  - { id: 1, class: _ }154body:             |155  bb.1 (%ir-block.0):156    liveins: $edi157 158    ; CHECK-LABEL: name: test_sext_i32159    ; CHECK: liveins: $edi160    ; CHECK-NEXT: {{  $}}161    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $edi162    ; CHECK-NEXT: [[SEXT:%[0-9]+]]:_(s64) = G_SEXT [[COPY]](s32)163    ; CHECK-NEXT: $rax = COPY [[SEXT]](s64)164    ; CHECK-NEXT: RET 0, implicit $rax165    %0(s32) = COPY $edi166    %1(s64) = G_SEXT %0(s32)167    $rax = COPY %1(s64)168    RET 0, implicit $rax169 170...171---172name:            test_zext_i1173alignment:       16174legalized:       false175regBankSelected: false176registers:177  - { id: 0, class: _ }178  - { id: 1, class: _ }179  - { id: 2, class: _ }180body:             |181  bb.1 (%ir-block.0):182    liveins: $edi183 184    ; CHECK-LABEL: name: test_zext_i1185    ; CHECK: liveins: $edi186    ; CHECK-NEXT: {{  $}}187    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s8) = COPY $dil188    ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:_(s64) = G_ANYEXT [[COPY]](s8)189    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 1190    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[ANYEXT]], [[C]]191    ; CHECK-NEXT: $rax = COPY [[AND]](s64)192    ; CHECK-NEXT: RET 0, implicit $rax193    %0(s8) = COPY $dil194    %1(s1) = G_TRUNC %0(s8)195    %2(s64) = G_ZEXT %1(s1)196    $rax = COPY %2(s64)197    RET 0, implicit $rax198 199...200---201name:            test_zext_i8202alignment:       16203legalized:       false204regBankSelected: false205registers:206  - { id: 0, class: _ }207  - { id: 1, class: _ }208body:             |209  bb.1 (%ir-block.0):210    liveins: $edi211 212    ; CHECK-LABEL: name: test_zext_i8213    ; CHECK: liveins: $edi214    ; CHECK-NEXT: {{  $}}215    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s8) = COPY $dil216    ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:_(s64) = G_ZEXT [[COPY]](s8)217    ; CHECK-NEXT: $rax = COPY [[ZEXT]](s64)218    ; CHECK-NEXT: RET 0, implicit $rax219    %0(s8) = COPY $dil220    %1(s64) = G_ZEXT %0(s8)221    $rax = COPY %1(s64)222    RET 0, implicit $rax223 224...225---226name:            test_zext_i16227alignment:       16228legalized:       false229regBankSelected: false230registers:231  - { id: 0, class: _ }232  - { id: 1, class: _ }233body:             |234  bb.1 (%ir-block.0):235    liveins: $edi236 237    ; CHECK-LABEL: name: test_zext_i16238    ; CHECK: liveins: $edi239    ; CHECK-NEXT: {{  $}}240    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $di241    ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:_(s64) = G_ZEXT [[COPY]](s16)242    ; CHECK-NEXT: $rax = COPY [[ZEXT]](s64)243    ; CHECK-NEXT: RET 0, implicit $rax244    %0(s16) = COPY $di245    %1(s64) = G_ZEXT %0(s16)246    $rax = COPY %1(s64)247    RET 0, implicit $rax248 249...250---251name:            test_zext_i32252alignment:       16253legalized:       false254regBankSelected: false255registers:256  - { id: 0, class: _ }257  - { id: 1, class: _ }258body:             |259  bb.1 (%ir-block.0):260    liveins: $edi261 262    ; CHECK-LABEL: name: test_zext_i32263    ; CHECK: liveins: $edi264    ; CHECK-NEXT: {{  $}}265    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $edi266    ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:_(s64) = G_ZEXT [[COPY]](s32)267    ; CHECK-NEXT: $rax = COPY [[ZEXT]](s64)268    ; CHECK-NEXT: RET 0, implicit $rax269    %0(s32) = COPY $edi270    %1(s64) = G_ZEXT %0(s32)271    $rax = COPY %1(s64)272    RET 0, implicit $rax273 274...275---276name:            test_anyext_i1277alignment:       16278legalized:       false279regBankSelected: false280registers:281  - { id: 0, class: _ }282  - { id: 1, class: _ }283  - { id: 2, class: _ }284body:             |285  bb.1 (%ir-block.0):286    liveins: $edi287 288    ; CHECK-LABEL: name: test_anyext_i1289    ; CHECK: liveins: $edi290    ; CHECK-NEXT: {{  $}}291    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s8) = COPY $dil292    ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:_(s64) = G_ANYEXT [[COPY]](s8)293    ; CHECK-NEXT: $rax = COPY [[ANYEXT]](s64)294    ; CHECK-NEXT: RET 0, implicit $rax295    %0(s8) = COPY $dil296    %1(s1) = G_TRUNC %0(s8)297    %2(s64) = G_ANYEXT %1(s1)298    $rax = COPY %2(s64)299    RET 0, implicit $rax300 301...302---303name:            test_anyext_i8304alignment:       16305legalized:       false306regBankSelected: false307registers:308  - { id: 0, class: _ }309  - { id: 1, class: _ }310body:             |311  bb.1 (%ir-block.0):312    liveins: $edi313 314    ; CHECK-LABEL: name: test_anyext_i8315    ; CHECK: liveins: $edi316    ; CHECK-NEXT: {{  $}}317    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s8) = COPY $dil318    ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:_(s64) = G_ANYEXT [[COPY]](s8)319    ; CHECK-NEXT: $rax = COPY [[ANYEXT]](s64)320    ; CHECK-NEXT: RET 0, implicit $rax321    %0(s8) = COPY $dil322    %1(s64) = G_ANYEXT %0(s8)323    $rax = COPY %1(s64)324    RET 0, implicit $rax325 326...327---328name:            test_anyext_i16329alignment:       16330legalized:       false331regBankSelected: false332registers:333  - { id: 0, class: _ }334  - { id: 1, class: _ }335body:             |336  bb.1 (%ir-block.0):337    liveins: $edi338 339    ; CHECK-LABEL: name: test_anyext_i16340    ; CHECK: liveins: $edi341    ; CHECK-NEXT: {{  $}}342    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s16) = COPY $di343    ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:_(s64) = G_ANYEXT [[COPY]](s16)344    ; CHECK-NEXT: $rax = COPY [[ANYEXT]](s64)345    ; CHECK-NEXT: RET 0, implicit $rax346    %0(s16) = COPY $di347    %1(s64) = G_ANYEXT %0(s16)348    $rax = COPY %1(s64)349    RET 0, implicit $rax350 351...352---353name:            test_anyext_i32354alignment:       16355legalized:       false356regBankSelected: false357registers:358  - { id: 0, class: _ }359  - { id: 1, class: _ }360body:             |361  bb.1 (%ir-block.0):362    liveins: $edi363 364    ; CHECK-LABEL: name: test_anyext_i32365    ; CHECK: liveins: $edi366    ; CHECK-NEXT: {{  $}}367    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $edi368    ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:_(s64) = G_ANYEXT [[COPY]](s32)369    ; CHECK-NEXT: $rax = COPY [[ANYEXT]](s64)370    ; CHECK-NEXT: RET 0, implicit $rax371    %0(s32) = COPY $edi372    %1(s64) = G_ANYEXT %0(s32)373    $rax = COPY %1(s64)374    RET 0, implicit $rax375 376...377 378