brintos

brintos / llvm-project-archived public Read only

0
0
Text · 9.7 KiB · 1cd1ab4 Raw
316 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -O0 -mtriple=arm64-unknown-unknown -global-isel -run-pass=legalizer -global-isel-abort=1 %s -o - | FileCheck %s3---4name:            test_v8s85alignment:       46tracksRegLiveness: true7body:             |8  bb.0:9    liveins: $d010 11    ; CHECK-LABEL: name: test_v8s812    ; CHECK: liveins: $d013    ; CHECK-NEXT: {{  $}}14    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<8 x s8>) = COPY $d015    ; CHECK-NEXT: [[CTLZ:%[0-9]+]]:_(<8 x s8>) = G_CTLZ [[COPY]](<8 x s8>)16    ; CHECK-NEXT: $d0 = COPY [[CTLZ]](<8 x s8>)17    ; CHECK-NEXT: RET_ReallyLR implicit $d018    %0:_(<8 x s8>) = COPY $d019    %1:_(<8 x s8>) = G_CTLZ %0(<8 x s8>)20    $d0 = COPY %1(<8 x s8>)21    RET_ReallyLR implicit $d022 23...24---25name:            test_v4s1626alignment:       427tracksRegLiveness: true28body:             |29  bb.0:30    liveins: $d031 32    ; CHECK-LABEL: name: test_v4s1633    ; CHECK: liveins: $d034    ; CHECK-NEXT: {{  $}}35    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<4 x s16>) = COPY $d036    ; CHECK-NEXT: [[CTLZ:%[0-9]+]]:_(<4 x s16>) = G_CTLZ [[COPY]](<4 x s16>)37    ; CHECK-NEXT: $d0 = COPY [[CTLZ]](<4 x s16>)38    ; CHECK-NEXT: RET_ReallyLR implicit $d039    %0:_(<4 x s16>) = COPY $d040    %1:_(<4 x s16>) = G_CTLZ %0(<4 x s16>)41    $d0 = COPY %1(<4 x s16>)42    RET_ReallyLR implicit $d043 44...45---46name:            test_v2s3247alignment:       448tracksRegLiveness: true49body:             |50  bb.0:51    liveins: $d052 53    ; CHECK-LABEL: name: test_v2s3254    ; CHECK: liveins: $d055    ; CHECK-NEXT: {{  $}}56    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s32>) = COPY $d057    ; CHECK-NEXT: [[CTLZ:%[0-9]+]]:_(<2 x s32>) = G_CTLZ [[COPY]](<2 x s32>)58    ; CHECK-NEXT: $d0 = COPY [[CTLZ]](<2 x s32>)59    ; CHECK-NEXT: RET_ReallyLR implicit $d060    %0:_(<2 x s32>) = COPY $d061    %1:_(<2 x s32>) = G_CTLZ %0(<2 x s32>)62    $d0 = COPY %1(<2 x s32>)63    RET_ReallyLR implicit $d064 65...66---67name:            test_s6468alignment:       469tracksRegLiveness: true70body:             |71  bb.0:72    liveins: $d073 74    ; CHECK-LABEL: name: test_s6475    ; CHECK: liveins: $d076    ; CHECK-NEXT: {{  $}}77    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $d078    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY [[COPY]](s64)79    ; CHECK-NEXT: [[CTLZ:%[0-9]+]]:_(s64) = G_CTLZ [[COPY1]](s64)80    ; CHECK-NEXT: $d0 = COPY [[CTLZ]](s64)81    ; CHECK-NEXT: RET_ReallyLR implicit $d082    %0:_(s64) = COPY $d083    %2:_(s64) = COPY %0(s64)84    %1:_(s64) = G_CTLZ %2(s64)85    $d0 = COPY %1(s64)86    RET_ReallyLR implicit $d087 88...89---90name:            test_s3291alignment:       492tracksRegLiveness: true93body:             |94  bb.0:95    liveins: $s096    ; CHECK-LABEL: name: test_s3297    ; CHECK: liveins: $s098    ; CHECK-NEXT: {{  $}}99    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $s0100    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY [[COPY]](s32)101    ; CHECK-NEXT: [[CTLZ:%[0-9]+]]:_(s32) = G_CTLZ [[COPY1]](s32)102    ; CHECK-NEXT: $s0 = COPY [[CTLZ]](s32)103    ; CHECK-NEXT: RET_ReallyLR implicit $s0104    %0:_(s32) = COPY $s0105    %2:_(s32) = COPY %0(s32)106    %1:_(s32) = G_CTLZ %2(s32)107    $s0 = COPY %1(s32)108    RET_ReallyLR implicit $s0109 110...111---112name:            test_v16s8113alignment:       4114tracksRegLiveness: true115body:             |116  bb.0:117    liveins: $q0118 119    ; CHECK-LABEL: name: test_v16s8120    ; CHECK: liveins: $q0121    ; CHECK-NEXT: {{  $}}122    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<16 x s8>) = COPY $q0123    ; CHECK-NEXT: [[CTLZ:%[0-9]+]]:_(<16 x s8>) = G_CTLZ [[COPY]](<16 x s8>)124    ; CHECK-NEXT: $q0 = COPY [[CTLZ]](<16 x s8>)125    ; CHECK-NEXT: RET_ReallyLR implicit $q0126    %0:_(<16 x s8>) = COPY $q0127    %1:_(<16 x s8>) = G_CTLZ %0(<16 x s8>)128    $q0 = COPY %1(<16 x s8>)129    RET_ReallyLR implicit $q0130 131...132---133name:            test_v8s16134alignment:       4135tracksRegLiveness: true136body:             |137  bb.0:138    liveins: $q0139 140    ; CHECK-LABEL: name: test_v8s16141    ; CHECK: liveins: $q0142    ; CHECK-NEXT: {{  $}}143    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<8 x s16>) = COPY $q0144    ; CHECK-NEXT: [[CTLZ:%[0-9]+]]:_(<8 x s16>) = G_CTLZ [[COPY]](<8 x s16>)145    ; CHECK-NEXT: $q0 = COPY [[CTLZ]](<8 x s16>)146    ; CHECK-NEXT: RET_ReallyLR implicit $q0147    %0:_(<8 x s16>) = COPY $q0148    %1:_(<8 x s16>) = G_CTLZ %0(<8 x s16>)149    $q0 = COPY %1(<8 x s16>)150    RET_ReallyLR implicit $q0151 152...153---154name:            test_v4s32155alignment:       4156tracksRegLiveness: true157body:             |158  bb.0:159    liveins: $q0160 161    ; CHECK-LABEL: name: test_v4s32162    ; CHECK: liveins: $q0163    ; CHECK-NEXT: {{  $}}164    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<4 x s32>) = COPY $q0165    ; CHECK-NEXT: [[CTLZ:%[0-9]+]]:_(<4 x s32>) = G_CTLZ [[COPY]](<4 x s32>)166    ; CHECK-NEXT: $q0 = COPY [[CTLZ]](<4 x s32>)167    ; CHECK-NEXT: RET_ReallyLR implicit $q0168    %0:_(<4 x s32>) = COPY $q0169    %1:_(<4 x s32>) = G_CTLZ %0(<4 x s32>)170    $q0 = COPY %1(<4 x s32>)171    RET_ReallyLR implicit $q0172 173...174 175# The ZERO_UNDEF variants just lower into the vanilla ones.176---177name:            test_s32_zeroundef178alignment:       4179tracksRegLiveness: true180body:             |181  bb.0:182    liveins: $s0183    ; CHECK-LABEL: name: test_s32_zeroundef184    ; CHECK: liveins: $s0185    ; CHECK-NEXT: {{  $}}186    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $s0187    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY [[COPY]](s32)188    ; CHECK-NEXT: [[CTLZ:%[0-9]+]]:_(s32) = G_CTLZ [[COPY1]](s32)189    ; CHECK-NEXT: $s0 = COPY [[CTLZ]](s32)190    ; CHECK-NEXT: RET_ReallyLR implicit $s0191    %0:_(s32) = COPY $s0192    %2:_(s32) = COPY %0(s32)193    %1:_(s32) = G_CTLZ_ZERO_UNDEF %2(s32)194    $s0 = COPY %1(s32)195    RET_ReallyLR implicit $s0196 197...198---199name:            test_s64_zeroundef200alignment:       4201tracksRegLiveness: true202body:             |203  bb.0:204    liveins: $d0205 206    ; CHECK-LABEL: name: test_s64_zeroundef207    ; CHECK: liveins: $d0208    ; CHECK-NEXT: {{  $}}209    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $d0210    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY [[COPY]](s64)211    ; CHECK-NEXT: [[CTLZ:%[0-9]+]]:_(s64) = G_CTLZ [[COPY1]](s64)212    ; CHECK-NEXT: $d0 = COPY [[CTLZ]](s64)213    ; CHECK-NEXT: RET_ReallyLR implicit $d0214    %0:_(s64) = COPY $d0215    %2:_(s64) = COPY %0(s64)216    %1:_(s64) = G_CTLZ_ZERO_UNDEF %2(s64)217    $d0 = COPY %1(s64)218    RET_ReallyLR implicit $d0219 220...221---222name:            test_s35223alignment:       4224tracksRegLiveness: true225body:             |226  bb.1:227    liveins: $x0228 229    ; CHECK-LABEL: name: test_s35230    ; CHECK: liveins: $x0231    ; CHECK-NEXT: {{  $}}232    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x0233    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 34359738367234    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C]]235    ; CHECK-NEXT: [[CTLZ:%[0-9]+]]:_(s64) = G_CTLZ [[AND]](s64)236    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 29237    ; CHECK-NEXT: [[SUB:%[0-9]+]]:_(s64) = G_SUB [[CTLZ]], [[C1]]238    ; CHECK-NEXT: $x0 = COPY [[SUB]](s64)239    ; CHECK-NEXT: RET_ReallyLR implicit $x0240    %1:_(s64) = COPY $x0241    %0:_(s35) = G_TRUNC %1(s64)242    %2:_(s35) = G_CTLZ %0(s35)243    %3:_(s64) = G_ANYEXT %2(s35)244    $x0 = COPY %3(s64)245    RET_ReallyLR implicit $x0246...247---248name:            test_s8249alignment:       4250tracksRegLiveness: true251body:             |252  bb.1:253    liveins: $w0254 255    ; CHECK-LABEL: name: test_s8256    ; CHECK: liveins: $w0257    ; CHECK-NEXT: {{  $}}258    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $w0259    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 255260    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY]], [[C]]261    ; CHECK-NEXT: [[CTLZ:%[0-9]+]]:_(s32) = G_CTLZ [[AND]](s32)262    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 24263    ; CHECK-NEXT: [[SUB:%[0-9]+]]:_(s32) = G_SUB [[CTLZ]], [[C1]]264    ; CHECK-NEXT: $w0 = COPY [[SUB]](s32)265    ; CHECK-NEXT: RET_ReallyLR implicit $w0266    %1:_(s32) = COPY $w0267    %0:_(s8) = G_TRUNC %1(s32)268    %2:_(s8) = G_CTLZ %0(s8)269    %3:_(s32) = G_ANYEXT %2(s8)270    $w0 = COPY %3(s32)271    RET_ReallyLR implicit $w0272...273---274name:            test_s65275alignment:       4276tracksRegLiveness: true277body:             |278  bb.1:279    liveins: $x0, $x1280 281    ; CHECK-LABEL: name: test_s65282    ; CHECK: liveins: $x0, $x1283    ; CHECK-NEXT: {{  $}}284    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x0285    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x1286    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 -1287    ; CHECK-NEXT: [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 1288    ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C]]289    ; CHECK-NEXT: [[AND1:%[0-9]+]]:_(s64) = G_AND [[COPY1]], [[C1]]290    ; CHECK-NEXT: [[C2:%[0-9]+]]:_(s64) = G_CONSTANT i64 0291    ; CHECK-NEXT: [[ICMP:%[0-9]+]]:_(s32) = G_ICMP intpred(eq), [[AND1]](s64), [[C2]]292    ; CHECK-NEXT: [[CTLZ:%[0-9]+]]:_(s64) = G_CTLZ [[AND]](s64)293    ; CHECK-NEXT: [[C3:%[0-9]+]]:_(s64) = G_CONSTANT i64 64294    ; CHECK-NEXT: [[UADDO:%[0-9]+]]:_(s64), [[UADDO1:%[0-9]+]]:_(s32) = G_UADDO [[CTLZ]], [[C3]]295    ; CHECK-NEXT: [[UADDE:%[0-9]+]]:_(s64), [[UADDE1:%[0-9]+]]:_(s32) = G_UADDE [[C2]], [[C2]], [[UADDO1]]296    ; CHECK-NEXT: [[CTLZ1:%[0-9]+]]:_(s64) = G_CTLZ [[AND1]](s64)297    ; CHECK-NEXT: [[SELECT:%[0-9]+]]:_(s64) = G_SELECT [[ICMP]](s32), [[UADDO]], [[CTLZ1]]298    ; CHECK-NEXT: [[SELECT1:%[0-9]+]]:_(s64) = G_SELECT [[ICMP]](s32), [[UADDE]], [[C2]]299    ; CHECK-NEXT: [[C4:%[0-9]+]]:_(s64) = G_CONSTANT i64 63300    ; CHECK-NEXT: [[USUBO:%[0-9]+]]:_(s64), [[USUBO1:%[0-9]+]]:_(s32) = G_USUBO [[SELECT]], [[C4]]301    ; CHECK-NEXT: [[USUBE:%[0-9]+]]:_(s64), [[USUBE1:%[0-9]+]]:_(s32) = G_USUBE [[SELECT1]], [[C2]], [[USUBO1]]302    ; CHECK-NEXT: $x0 = COPY [[USUBO]](s64)303    ; CHECK-NEXT: $x1 = COPY [[USUBE]](s64)304    ; CHECK-NEXT: RET_ReallyLR implicit $x0, implicit $x1305    %1:_(s64) = COPY $x0306    %2:_(s64) = COPY $x1307    %3:_(s128) = G_MERGE_VALUES %1(s64), %2(s64)308    %0:_(s65) = G_TRUNC %3(s128)309    %4:_(s65) = G_CTLZ %0(s65)310    %7:_(s128) = G_ANYEXT %4(s65)311    %5:_(s64), %6:_(s64) = G_UNMERGE_VALUES %7(s128)312    $x0 = COPY %5(s64)313    $x1 = COPY %6(s64)314    RET_ReallyLR implicit $x0, implicit $x1315...316