brintos

brintos / llvm-project-archived public Read only

0
0
Text · 11.5 KiB · 14d1e0b Raw
368 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -O0 -mtriple=aarch64 -run-pass=legalizer %s -o - | FileCheck %s3---4name:            test_ext5body:             |6  bb.0.entry:7    ; CHECK-LABEL: name: test_ext8    ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x09    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[COPY]](s64)10    ; CHECK-NEXT: $w0 = COPY [[TRUNC]](s32)11    ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s32) = G_TRUNC [[COPY]](s64)12    ; CHECK-NEXT: $w0 = COPY [[TRUNC1]](s32)13    ; CHECK-NEXT: [[TRUNC2:%[0-9]+]]:_(s32) = G_TRUNC [[COPY]](s64)14    ; CHECK-NEXT: $w0 = COPY [[TRUNC2]](s32)15    ; CHECK-NEXT: [[TRUNC3:%[0-9]+]]:_(s32) = G_TRUNC [[COPY]](s64)16    ; CHECK-NEXT: $w0 = COPY [[TRUNC3]](s32)17    ; CHECK-NEXT: $x0 = COPY [[COPY]](s64)18    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 25519    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C]]20    ; CHECK-NEXT: $x0 = COPY [[AND]](s64)21    ; CHECK-NEXT: $x0 = COPY [[COPY]](s64)22    ; CHECK-NEXT: [[SEXT_INREG:%[0-9]+]]:_(s64) = G_SEXT_INREG [[COPY]], 3223    ; CHECK-NEXT: $x0 = COPY [[SEXT_INREG]](s64)24    ; CHECK-NEXT: [[TRUNC4:%[0-9]+]]:_(s32) = G_TRUNC [[COPY]](s64)25    ; CHECK-NEXT: [[SEXT_INREG1:%[0-9]+]]:_(s32) = G_SEXT_INREG [[TRUNC4]], 126    ; CHECK-NEXT: $w0 = COPY [[SEXT_INREG1]](s32)27    ; CHECK-NEXT: [[TRUNC5:%[0-9]+]]:_(s32) = G_TRUNC [[COPY]](s64)28    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 25529    ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s32) = G_AND [[TRUNC5]], [[C1]]30    ; CHECK-NEXT: $w0 = COPY [[AND1]](s32)31    ; CHECK-NEXT: [[TRUNC6:%[0-9]+]]:_(s32) = G_TRUNC [[COPY]](s64)32    ; CHECK-NEXT: $w0 = COPY [[TRUNC6]](s32)33    ; CHECK-NEXT: [[TRUNC7:%[0-9]+]]:_(s32) = G_TRUNC [[COPY]](s64)34    ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 135    ; CHECK-NEXT: [[AND2:%[0-9]+]]:_(s32) = G_AND [[TRUNC7]], [[C2]]36    ; CHECK-NEXT: $w0 = COPY [[AND2]](s32)37    ; CHECK-NEXT: [[TRUNC8:%[0-9]+]]:_(s32) = G_TRUNC [[COPY]](s64)38    ; CHECK-NEXT: $w0 = COPY [[TRUNC8]](s32)39    ; CHECK-NEXT: [[TRUNC9:%[0-9]+]]:_(s32) = G_TRUNC [[COPY]](s64)40    ; CHECK-NEXT: [[SEXT_INREG2:%[0-9]+]]:_(s32) = G_SEXT_INREG [[TRUNC9]], 1641    ; CHECK-NEXT: $w0 = COPY [[SEXT_INREG2]](s32)42    ; CHECK-NEXT: [[TRUNC10:%[0-9]+]]:_(s32) = G_TRUNC [[COPY]](s64)43    ; CHECK-NEXT: [[AND3:%[0-9]+]]:_(s32) = G_AND [[TRUNC10]], [[C2]]44    ; CHECK-NEXT: $w0 = COPY [[AND3]](s32)45    ; CHECK-NEXT: [[TRUNC11:%[0-9]+]]:_(s32) = G_TRUNC [[COPY]](s64)46    ; CHECK-NEXT: $w0 = COPY [[TRUNC11]](s32)47    ; CHECK-NEXT: [[TRUNC12:%[0-9]+]]:_(s32) = G_TRUNC [[COPY]](s64)48    ; CHECK-NEXT: $w0 = COPY [[TRUNC12]](s32)49    ; CHECK-NEXT: [[FPEXT:%[0-9]+]]:_(s64) = G_FPEXT [[TRUNC12]](s32)50    ; CHECK-NEXT: $x0 = COPY [[FPEXT]](s64)51    ; CHECK-NEXT: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 052    ; CHECK-NEXT: $w0 = COPY [[C3]](s32)53    ; CHECK-NEXT: $w0 = COPY [[C3]](s32)54    ; CHECK-NEXT: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF55    ; CHECK-NEXT: $w0 = COPY [[DEF]](s32)56    %0:_(s64) = COPY $x057    %1:_(s1) = G_TRUNC %0(s64)58    %19:_(s32) = G_ANYEXT %1(s1)59    $w0 = COPY %19(s32)60    %2:_(s8) = G_TRUNC %0(s64)61    %20:_(s32) = G_ANYEXT %2(s8)62    $w0 = COPY %20(s32)63    %3:_(s16) = G_TRUNC %0(s64)64    %21:_(s32) = G_ANYEXT %3(s16)65    $w0 = COPY %21(s32)66    %4:_(s32) = G_TRUNC %0(s64)67    $w0 = COPY %4(s32)68    %5:_(s64) = G_ANYEXT %1(s1)69    $x0 = COPY %5(s64)70    %6:_(s64) = G_ZEXT %2(s8)71    $x0 = COPY %6(s64)72    %7:_(s64) = G_ANYEXT %3(s16)73    $x0 = COPY %7(s64)74    %8:_(s64) = G_SEXT %4(s32)75    $x0 = COPY %8(s64)76    %9:_(s32) = G_SEXT %1(s1)77    $w0 = COPY %9(s32)78    %10:_(s32) = G_ZEXT %2(s8)79    $w0 = COPY %10(s32)80    %11:_(s32) = G_ANYEXT %3(s16)81    $w0 = COPY %11(s32)82    %12:_(s32) = G_ZEXT %1(s1)83    $w0 = COPY %12(s32)84    %13:_(s32) = G_ANYEXT %2(s8)85    $w0 = COPY %13(s32)86    %14:_(s32) = G_SEXT %3(s16)87    $w0 = COPY %14(s32)88    %15:_(s8) = G_ZEXT %1(s1)89    %22:_(s32) = G_ANYEXT %15(s8)90    $w0 = COPY %22(s32)91    %16:_(s16) = G_ANYEXT %2(s8)92    %23:_(s32) = G_ANYEXT %16(s16)93    $w0 = COPY %23(s32)94    %17:_(s32) = G_TRUNC %0(s64)95    $w0 = COPY %17(s32)96    %18:_(s64) = G_FPEXT %17(s32)97    $x0 = COPY %18(s64)98    %24:_(s16) = G_IMPLICIT_DEF99    %25:_(s32) = G_ZEXT %24(s16)100    $w0 = COPY %25(s32)101    %26:_(s32) = G_SEXT %24(s16)102    $w0 = COPY %26(s32)103    %27:_(s32) = G_ANYEXT %24(s16)104    $w0 = COPY %27(s32)105 106...107---108name:            test_anyext_anyext109body:             |110  bb.0:111    liveins: $w0112 113    ; CHECK-LABEL: name: test_anyext_anyext114    ; CHECK: liveins: $w0115    ; CHECK-NEXT: {{  $}}116    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $w0117    ; CHECK-NEXT: $w0 = COPY [[COPY]](s32)118    %0:_(s32) = COPY $w0119    %1:_(s1) = G_TRUNC %0(s32)120    %2:_(s8) = G_ANYEXT %1(s1)121    %3:_(s32) = G_ANYEXT %2(s8)122    $w0 = COPY %3(s32)123 124...125---126name:            test_anyext_sext127body:             |128  bb.0:129    liveins: $w0130 131    ; CHECK-LABEL: name: test_anyext_sext132    ; CHECK: liveins: $w0133    ; CHECK-NEXT: {{  $}}134    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $w0135    ; CHECK-NEXT: [[SEXT_INREG:%[0-9]+]]:_(s32) = G_SEXT_INREG [[COPY]], 1136    ; CHECK-NEXT: $w0 = COPY [[SEXT_INREG]](s32)137    %0:_(s32) = COPY $w0138    %1:_(s1) = G_TRUNC %0(s32)139    %2:_(s8) = G_SEXT %1(s1)140    %3:_(s32) = G_ANYEXT %2(s8)141    $w0 = COPY %3(s32)142 143...144---145name:            test_anyext_zext146body:             |147  bb.0:148    liveins: $w0149 150    ; CHECK-LABEL: name: test_anyext_zext151    ; CHECK: liveins: $w0152    ; CHECK-NEXT: {{  $}}153    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $w0154    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1155    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]156    ; CHECK-NEXT: $w0 = COPY [[AND]](s32)157    %0:_(s32) = COPY $w0158    %1:_(s1) = G_TRUNC %0(s32)159    %2:_(s8) = G_ZEXT %1(s1)160    %3:_(s32) = G_ANYEXT %2(s8)161    $w0 = COPY %3(s32)162 163...164---165name:            test_zext_v8s16_from_v8s8166alignment:       4167tracksRegLiveness: true168machineFunctionInfo: {}169body:             |170  bb.0:171    liveins: $d0172    ; CHECK-LABEL: name: test_zext_v8s16_from_v8s8173    ; CHECK: liveins: $d0174    ; CHECK-NEXT: {{  $}}175    ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr(<8 x s8>) = COPY $d0176    ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:_(<8 x s16>) = G_ZEXT [[COPY]](<8 x s8>)177    ; CHECK-NEXT: $q0 = COPY [[ZEXT]](<8 x s16>)178    ; CHECK-NEXT: RET_ReallyLR implicit $q0179    %1:fpr(<8 x s8>) = COPY $d0180    %2:_(<8 x s16>) = G_ZEXT %1(<8 x s8>)181    $q0 = COPY %2(<8 x s16>)182    RET_ReallyLR implicit $q0183 184...185---186name:            test_sext_v8s16_from_v8s8187alignment:       4188tracksRegLiveness: true189machineFunctionInfo: {}190body:             |191  bb.0:192    liveins: $d0193    ; CHECK-LABEL: name: test_sext_v8s16_from_v8s8194    ; CHECK: liveins: $d0195    ; CHECK-NEXT: {{  $}}196    ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr(<8 x s8>) = COPY $d0197    ; CHECK-NEXT: [[SEXT:%[0-9]+]]:_(<8 x s16>) = G_SEXT [[COPY]](<8 x s8>)198    ; CHECK-NEXT: $q0 = COPY [[SEXT]](<8 x s16>)199    ; CHECK-NEXT: RET_ReallyLR implicit $q0200    %1:fpr(<8 x s8>) = COPY $d0201    %2:_(<8 x s16>) = G_SEXT %1(<8 x s8>)202    $q0 = COPY %2(<8 x s16>)203    RET_ReallyLR implicit $q0204 205...206---207name:            test_anyext_v8s16_from_v8s8208alignment:       4209tracksRegLiveness: true210machineFunctionInfo: {}211body:             |212  bb.0:213    liveins: $d0214    ; CHECK-LABEL: name: test_anyext_v8s16_from_v8s8215    ; CHECK: liveins: $d0216    ; CHECK-NEXT: {{  $}}217    ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr(<8 x s8>) = COPY $d0218    ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:_(<8 x s16>) = G_ANYEXT [[COPY]](<8 x s8>)219    ; CHECK-NEXT: $q0 = COPY [[ANYEXT]](<8 x s16>)220    ; CHECK-NEXT: RET_ReallyLR implicit $q0221    %1:fpr(<8 x s8>) = COPY $d0222    %2:_(<8 x s16>) = G_ANYEXT %1(<8 x s8>)223    $q0 = COPY %2(<8 x s16>)224    RET_ReallyLR implicit $q0225 226...227---228name:            test_zext_v4s32_from_v4s16229alignment:       4230tracksRegLiveness: true231machineFunctionInfo: {}232body:             |233  bb.0:234    liveins: $d0235 236    ; CHECK-LABEL: name: test_zext_v4s32_from_v4s16237    ; CHECK: liveins: $d0238    ; CHECK-NEXT: {{  $}}239    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<4 x s16>) = COPY $d0240    ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:_(<4 x s32>) = G_ZEXT [[COPY]](<4 x s16>)241    ; CHECK-NEXT: $q0 = COPY [[ZEXT]](<4 x s32>)242    ; CHECK-NEXT: RET_ReallyLR implicit $q0243    %0:_(<4 x s16>) = COPY $d0244    %1:_(<4 x s32>) = G_ZEXT %0(<4 x s16>)245    $q0 = COPY %1(<4 x s32>)246    RET_ReallyLR implicit $q0247 248...249---250name:            test_sext_v4s32_from_v4s16251alignment:       4252tracksRegLiveness: true253machineFunctionInfo: {}254body:             |255  bb.0:256    liveins: $d0257 258    ; CHECK-LABEL: name: test_sext_v4s32_from_v4s16259    ; CHECK: liveins: $d0260    ; CHECK-NEXT: {{  $}}261    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<4 x s16>) = COPY $d0262    ; CHECK-NEXT: [[SEXT:%[0-9]+]]:_(<4 x s32>) = G_SEXT [[COPY]](<4 x s16>)263    ; CHECK-NEXT: $q0 = COPY [[SEXT]](<4 x s32>)264    ; CHECK-NEXT: RET_ReallyLR implicit $q0265    %0:_(<4 x s16>) = COPY $d0266    %1:_(<4 x s32>) = G_SEXT %0(<4 x s16>)267    $q0 = COPY %1(<4 x s32>)268    RET_ReallyLR implicit $q0269 270...271---272name:            test_anyext_v4s32_from_v4s16273alignment:       4274tracksRegLiveness: true275machineFunctionInfo: {}276body:             |277  bb.0:278    liveins: $d0279 280    ; CHECK-LABEL: name: test_anyext_v4s32_from_v4s16281    ; CHECK: liveins: $d0282    ; CHECK-NEXT: {{  $}}283    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<4 x s16>) = COPY $d0284    ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:_(<4 x s32>) = G_ANYEXT [[COPY]](<4 x s16>)285    ; CHECK-NEXT: $q0 = COPY [[ANYEXT]](<4 x s32>)286    ; CHECK-NEXT: RET_ReallyLR implicit $q0287    %0:_(<4 x s16>) = COPY $d0288    %1:_(<4 x s32>) = G_ANYEXT %0(<4 x s16>)289    $q0 = COPY %1(<4 x s32>)290    RET_ReallyLR implicit $q0291 292...293---294name:            test_zext_v2s64_from_v2s32295alignment:       4296tracksRegLiveness: true297registers:298  - { id: 0, class: _ }299  - { id: 1, class: _ }300machineFunctionInfo: {}301body:             |302  bb.0:303    liveins: $d0304 305    ; CHECK-LABEL: name: test_zext_v2s64_from_v2s32306    ; CHECK: liveins: $d0307    ; CHECK-NEXT: {{  $}}308    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s32>) = COPY $d0309    ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:_(<2 x s64>) = G_ZEXT [[COPY]](<2 x s32>)310    ; CHECK-NEXT: $q0 = COPY [[ZEXT]](<2 x s64>)311    ; CHECK-NEXT: RET_ReallyLR implicit $q0312    %0:_(<2 x s32>) = COPY $d0313    %1:_(<2 x s64>) = G_ZEXT %0(<2 x s32>)314    $q0 = COPY %1(<2 x s64>)315    RET_ReallyLR implicit $q0316 317...318---319name:            test_sext_v2s64_from_v2s32320alignment:       4321tracksRegLiveness: true322registers:323  - { id: 0, class: _ }324  - { id: 1, class: _ }325machineFunctionInfo: {}326body:             |327  bb.0:328    liveins: $d0329 330    ; CHECK-LABEL: name: test_sext_v2s64_from_v2s32331    ; CHECK: liveins: $d0332    ; CHECK-NEXT: {{  $}}333    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s32>) = COPY $d0334    ; CHECK-NEXT: [[SEXT:%[0-9]+]]:_(<2 x s64>) = G_SEXT [[COPY]](<2 x s32>)335    ; CHECK-NEXT: $q0 = COPY [[SEXT]](<2 x s64>)336    ; CHECK-NEXT: RET_ReallyLR implicit $q0337    %0:_(<2 x s32>) = COPY $d0338    %1:_(<2 x s64>) = G_SEXT %0(<2 x s32>)339    $q0 = COPY %1(<2 x s64>)340    RET_ReallyLR implicit $q0341 342...343---344name:            test_anyext_v2s64_from_v2s32345alignment:       4346tracksRegLiveness: true347registers:348  - { id: 0, class: _ }349  - { id: 1, class: _ }350machineFunctionInfo: {}351body:             |352  bb.0:353    liveins: $d0354 355    ; CHECK-LABEL: name: test_anyext_v2s64_from_v2s32356    ; CHECK: liveins: $d0357    ; CHECK-NEXT: {{  $}}358    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s32>) = COPY $d0359    ; CHECK-NEXT: [[ANYEXT:%[0-9]+]]:_(<2 x s64>) = G_ANYEXT [[COPY]](<2 x s32>)360    ; CHECK-NEXT: $q0 = COPY [[ANYEXT]](<2 x s64>)361    ; CHECK-NEXT: RET_ReallyLR implicit $q0362    %0:_(<2 x s32>) = COPY $d0363    %1:_(<2 x s64>) = G_ANYEXT %0(<2 x s32>)364    $q0 = COPY %1(<2 x s64>)365    RET_ReallyLR implicit $q0366 367...368