brintos

brintos / llvm-project-archived public Read only

0
0
Text · 16.6 KiB · d034ec1 Raw
520 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -run-pass=aarch64-prelegalizer-combiner -verify-machineinstrs -mtriple aarch64-unknown-unknown %s -o - | FileCheck %s3 4---5name:            zext_trunc_nuw6body:             |7  bb.0:8    liveins: $w0, $w19    ; CHECK-LABEL: name: zext_trunc_nuw10    ; CHECK: liveins: $w0, $w111    ; CHECK-NEXT: {{  $}}12    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x013    ; CHECK-NEXT: $x1 = COPY [[COPY]](s64)14    %0:_(s64) = COPY $x015    %2:_(s32) = nuw G_TRUNC %016    %3:_(s64) = G_ZEXT  %217    $x1 = COPY %318...19---20name:            zext_trunc_nsw21body:             |22  bb.0:23    liveins: $w0, $w124    ; CHECK-LABEL: name: zext_trunc_nsw25    ; CHECK: liveins: $w0, $w126    ; CHECK-NEXT: {{  $}}27    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x028    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = nsw G_TRUNC [[COPY]](s64)29    ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:_(s64) = G_ZEXT [[TRUNC]](s32)30    ; CHECK-NEXT: $x1 = COPY [[ZEXT]](s64)31    %0:_(s64) = COPY $x032    %2:_(s32) = nsw G_TRUNC %033    %3:_(s64) = G_ZEXT  %234    $x1 = COPY %335...36---37name:            zext_trunc38body:             |39  bb.0:40    liveins: $w0, $w141    ; CHECK-LABEL: name: zext_trunc42    ; CHECK: liveins: $w0, $w143    ; CHECK-NEXT: {{  $}}44    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x045    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[COPY]](s64)46    ; CHECK-NEXT: [[ZEXT:%[0-9]+]]:_(s64) = G_ZEXT [[TRUNC]](s32)47    ; CHECK-NEXT: $x1 = COPY [[ZEXT]](s64)48    %0:_(s64) = COPY $x049    %2:_(s32) = G_TRUNC %050    %3:_(s64) = G_ZEXT  %251    $x1 = COPY %352...53---54name:            zext_trunc_nuw_vector55body:             |56  bb.0:57    liveins: $w0, $w158    ; CHECK-LABEL: name: zext_trunc_nuw_vector59    ; CHECK: liveins: $w0, $w160    ; CHECK-NEXT: {{  $}}61    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $w062    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $w163    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY]](s32)64    ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY1]](s32)65    ; CHECK-NEXT: %trunc:_(<4 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16), [[TRUNC]](s16), [[TRUNC1]](s16)66    ; CHECK-NEXT: %zext:_(<4 x s32>) = G_ZEXT %trunc(<4 x s16>)67    ; CHECK-NEXT: $q0 = COPY %zext(<4 x s32>)68    ; CHECK-NEXT: RET_ReallyLR implicit $w069    %0:_(s32) = COPY $w070    %1:_(s32) = COPY $w171    %2:_(s32) = COPY $w272    %3:_(s32) = COPY $w373    %bv0:_(<4 x s32>) = G_BUILD_VECTOR %0:_(s32), %1:_(s32), %0:_(s32), %1:_(s32)74    %trunc:_(<4 x s16>) = nuw G_TRUNC %bv075    %zext:_(<4 x s32>) = G_ZEXT  %trunc76    $q0 = COPY %zext(<4 x s32>)77    RET_ReallyLR implicit $w078...79---80name:            sext_trunc_nsw81body:             |82  bb.0:83    liveins: $w0, $w184    ; CHECK-LABEL: name: sext_trunc_nsw85    ; CHECK: liveins: $w0, $w186    ; CHECK-NEXT: {{  $}}87    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x088    ; CHECK-NEXT: $x1 = COPY [[COPY]](s64)89    %0:_(s64) = COPY $x090    %2:_(s32) = nsw G_TRUNC %091    %3:_(s64) = G_SEXT  %292    $x1 = COPY %393...94---95name:            sext_trunc_nuw96body:             |97  bb.0:98    liveins: $w0, $w199    ; CHECK-LABEL: name: sext_trunc_nuw100    ; CHECK: liveins: $w0, $w1101    ; CHECK-NEXT: {{  $}}102    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x0103    ; CHECK-NEXT: [[SEXT_INREG:%[0-9]+]]:_(s64) = G_SEXT_INREG [[COPY]], 32104    ; CHECK-NEXT: $x1 = COPY [[SEXT_INREG]](s64)105    %0:_(s64) = COPY $x0106    %2:_(s32) = nuw G_TRUNC %0107    %3:_(s64) = G_SEXT  %2108    $x1 = COPY %3109...110---111name:            sext_trunc112body:             |113  bb.0:114    liveins: $w0, $w1115    ; CHECK-LABEL: name: sext_trunc116    ; CHECK: liveins: $w0, $w1117    ; CHECK-NEXT: {{  $}}118    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x0119    ; CHECK-NEXT: [[SEXT_INREG:%[0-9]+]]:_(s64) = G_SEXT_INREG [[COPY]], 32120    ; CHECK-NEXT: $x1 = COPY [[SEXT_INREG]](s64)121    %0:_(s64) = COPY $x0122    %2:_(s32) = G_TRUNC %0123    %3:_(s64) = G_SEXT  %2124    $x1 = COPY %3125...126---127name:            sext_trunc_nsw_types_wrong128body:             |129  bb.0:130    liveins: $w0, $w1131    ; CHECK-LABEL: name: sext_trunc_nsw_types_wrong132    ; CHECK: liveins: $w0, $w1133    ; CHECK-NEXT: {{  $}}134    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x0135    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = nsw G_TRUNC [[COPY]](s64)136    ; CHECK-NEXT: $w1 = COPY [[TRUNC]](s32)137    %0:_(s64) = COPY $x0138    %2:_(s16) = nsw G_TRUNC %0139    %3:_(s32) = G_SEXT  %2140    $w1 = COPY %3141...142---143name:            sext_trunc_nsw_nuw144body:             |145  bb.0:146    liveins: $w0, $w1147    ; CHECK-LABEL: name: sext_trunc_nsw_nuw148    ; CHECK: liveins: $w0, $w1149    ; CHECK-NEXT: {{  $}}150    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x0151    ; CHECK-NEXT: $x1 = COPY [[COPY]](s64)152    %0:_(s64) = COPY $x0153    %2:_(s32) = nsw nuw G_TRUNC %0154    %3:_(s64) = G_SEXT  %2155    $x1 = COPY %3156...157---158name:            sext_trunc_nsw_nuw_vector159body:             |160  bb.0:161    liveins: $w0, $w1162    ; CHECK-LABEL: name: sext_trunc_nsw_nuw_vector163    ; CHECK: liveins: $w0, $w1164    ; CHECK-NEXT: {{  $}}165    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $w0166    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $w1167    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $w2168    ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $w3169    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY]](s32)170    ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY1]](s32)171    ; CHECK-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY2]](s32)172    ; CHECK-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY3]](s32)173    ; CHECK-NEXT: %t:_(<4 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16), [[TRUNC2]](s16), [[TRUNC3]](s16)174    ; CHECK-NEXT: %s:_(<4 x s32>) = G_SEXT %t(<4 x s16>)175    ; CHECK-NEXT: $q0 = COPY %s(<4 x s32>)176    %0:_(s32) = COPY $w0177    %1:_(s32) = COPY $w1178    %2:_(s32) = COPY $w2179    %3:_(s32) = COPY $w3180    %bv0:_(<4 x s32>) = G_BUILD_VECTOR %0:_(s32), %1:_(s32), %2:_(s32), %3:_(s32)181    %t:_(<4 x s16>) = nsw nuw G_TRUNC %bv0182    %s:_(<4 x s32>) = G_SEXT  %t183    $q0 = COPY %s184...185---186name:            zext_trunc_vector187body:             |188  bb.0:189    liveins: $w0, $w1190    ; CHECK-LABEL: name: zext_trunc_vector191    ; CHECK: liveins: $w0, $w1192    ; CHECK-NEXT: {{  $}}193    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $w0194    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $w1195    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $w2196    ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $w3197    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY]](s32)198    ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY1]](s32)199    ; CHECK-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY2]](s32)200    ; CHECK-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY3]](s32)201    ; CHECK-NEXT: %t:_(<4 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16), [[TRUNC2]](s16), [[TRUNC3]](s16)202    ; CHECK-NEXT: %z:_(<4 x s32>) = G_ZEXT %t(<4 x s16>)203    ; CHECK-NEXT: $q0 = COPY %z(<4 x s32>)204    %0:_(s32) = COPY $w0205    %1:_(s32) = COPY $w1206    %2:_(s32) = COPY $w2207    %3:_(s32) = COPY $w3208    %bv0:_(<4 x s32>) = G_BUILD_VECTOR %0:_(s32), %1:_(s32), %2:_(s32), %3:_(s32)209    %t:_(<4 x s16>) = G_TRUNC %bv0210    %z:_(<4 x s32>) = G_ZEXT  %t211    $q0 = COPY %z212...213---214name:            zext_trunc_nsw_vector215body:             |216  bb.0:217    liveins: $w0, $w1218    ; CHECK-LABEL: name: zext_trunc_nsw_vector219    ; CHECK: liveins: $w0, $w1220    ; CHECK-NEXT: {{  $}}221    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $w0222    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $w1223    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $w2224    ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $w3225    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY]](s32)226    ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY1]](s32)227    ; CHECK-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY2]](s32)228    ; CHECK-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY3]](s32)229    ; CHECK-NEXT: %t:_(<4 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16), [[TRUNC2]](s16), [[TRUNC3]](s16)230    ; CHECK-NEXT: %z:_(<4 x s32>) = G_ZEXT %t(<4 x s16>)231    ; CHECK-NEXT: $q0 = COPY %z(<4 x s32>)232    %0:_(s32) = COPY $w0233    %1:_(s32) = COPY $w1234    %2:_(s32) = COPY $w2235    %3:_(s32) = COPY $w3236    %bv0:_(<4 x s32>) = G_BUILD_VECTOR %0:_(s32), %1:_(s32), %2:_(s32), %3:_(s32)237    %t:_(<4 x s16>) = nsw G_TRUNC %bv0238    %z:_(<4 x s32>) = G_ZEXT  %t239    $q0 = COPY %z240...241---242name:            zext_trunc_nuw_vector2243body:             |244  bb.0:245    liveins: $w0, $w1246    ; CHECK-LABEL: name: zext_trunc_nuw_vector2247    ; CHECK: liveins: $w0, $w1248    ; CHECK-NEXT: {{  $}}249    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $w0250    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $w1251    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $w2252    ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $w3253    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY]](s32)254    ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY1]](s32)255    ; CHECK-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[COPY2]](s32)256    ; CHECK-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[COPY3]](s32)257    ; CHECK-NEXT: %t:_(<4 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16), [[TRUNC2]](s16), [[TRUNC3]](s16)258    ; CHECK-NEXT: %z:_(<4 x s32>) = G_ZEXT %t(<4 x s16>)259    ; CHECK-NEXT: $q0 = COPY %z(<4 x s32>)260    %0:_(s32) = COPY $w0261    %1:_(s32) = COPY $w1262    %2:_(s32) = COPY $w2263    %3:_(s32) = COPY $w3264    %bv0:_(<4 x s32>) = G_BUILD_VECTOR %0:_(s32), %1:_(s32), %2:_(s32), %3:_(s32)265    %t:_(<4 x s16>) = nuw G_TRUNC %bv0266    %z:_(<4 x s32>) = G_ZEXT  %t267    $q0 = COPY %z268...269---270name:            zext_trunc_nuw_vector_wrong_type271body:             |272  bb.0:273    liveins: $w0, $w1274    ; CHECK-LABEL: name: zext_trunc_nuw_vector_wrong_type275    ; CHECK: liveins: $w0, $w1276    ; CHECK-NEXT: {{  $}}277    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x0278    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $x1279    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY]](s64)280    ; CHECK-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY1]](s64)281    ; CHECK-NEXT: %t:_(<2 x s16>) = G_BUILD_VECTOR [[TRUNC]](s16), [[TRUNC1]](s16)282    ; CHECK-NEXT: %z:_(<2 x s32>) = G_ZEXT %t(<2 x s16>)283    ; CHECK-NEXT: $d0 = COPY %z(<2 x s32>)284    %0:_(s64) = COPY $x0285    %1:_(s64) = COPY $x1286    %bv0:_(<2 x s64>) = G_BUILD_VECTOR %0:_(s64), %1:_(s64)287    %t:_(<2 x s16>) = nuw G_TRUNC %bv0288    %z:_(<2 x s32>) = G_ZEXT  %t289    $d0 = COPY %z290...291---292name:            zext_trunc_nuw_scalable_vector293body:             |294  bb.0:295    liveins: $w0, $w1296    ; CHECK-LABEL: name: zext_trunc_nuw_scalable_vector297    ; CHECK: liveins: $w0, $w1298    ; CHECK-NEXT: {{  $}}299    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x0300    ; CHECK-NEXT: %sv0:_(<vscale x 2 x s64>) = G_SPLAT_VECTOR [[COPY]](s64)301    ; CHECK-NEXT: $z0 = COPY %sv0(<vscale x 2 x s64>)302    %0:_(s64) = COPY $x0303    %1:_(s64) = COPY $x1304    %sv0:_(<vscale x 2 x s64>) = G_SPLAT_VECTOR %0:_(s64)305    %t:_(<vscale x 2 x s32>) = nuw G_TRUNC %sv0306    %z:_(<vscale x 2 x s64>) = G_ZEXT  %t307    $z0 = COPY %z308...309---310name:            zext_trunc_nuw_to_zext311body:             |312  bb.0:313    liveins: $w0, $w1314    ; CHECK-LABEL: name: zext_trunc_nuw_to_zext315    ; CHECK: liveins: $w0, $w1316    ; CHECK-NEXT: {{  $}}317    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $w0318    ; CHECK-NEXT: %2:_(s64) = nneg G_ZEXT [[COPY]](s32)319    ; CHECK-NEXT: $x1 = COPY %2(s64)320    %0:_(s32) = COPY $w0321    %2:_(s16) = nuw G_TRUNC %0322    %3:_(s64) = G_ZEXT  %2323    $x1 = COPY %3324...325---326name:            zext_trunc_nuw_to_trunc327body:             |328  bb.0:329    liveins: $w0, $w1330    ; CHECK-LABEL: name: zext_trunc_nuw_to_trunc331    ; CHECK: liveins: $w0, $w1332    ; CHECK-NEXT: {{  $}}333    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x0334    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = nuw G_TRUNC [[COPY]](s64)335    ; CHECK-NEXT: $w1 = COPY [[TRUNC]](s32)336    %0:_(s64) = COPY $x0337    %2:_(s16) = nuw G_TRUNC %0338    %3:_(s32) = G_ZEXT  %2339    $w1 = COPY %3340...341---342name:            sext_trunc_nsw_to_sext343body:             |344  bb.0:345    liveins: $w0, $w1346    ; CHECK-LABEL: name: sext_trunc_nsw_to_sext347    ; CHECK: liveins: $w0, $w1348    ; CHECK-NEXT: {{  $}}349    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $w0350    ; CHECK-NEXT: [[SEXT:%[0-9]+]]:_(s64) = G_SEXT [[COPY]](s32)351    ; CHECK-NEXT: $x1 = COPY [[SEXT]](s64)352    %0:_(s32) = COPY $w0353    %2:_(s16) = nsw G_TRUNC %0354    %3:_(s64) = G_SEXT  %2355    $x1 = COPY %3356...357---358name:            sext_trunc_nsw_to_trunc359body:             |360  bb.0:361    liveins: $w0, $w1362    ; CHECK-LABEL: name: sext_trunc_nsw_to_trunc363    ; CHECK: liveins: $w0, $w1364    ; CHECK-NEXT: {{  $}}365    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x0366    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = nsw G_TRUNC [[COPY]](s64)367    ; CHECK-NEXT: $w1 = COPY [[TRUNC]](s32)368    %0:_(s64) = COPY $x0369    %2:_(s16) = nsw G_TRUNC %0370    %3:_(s32) = G_SEXT  %2371    $w1 = COPY %3372...373---374name: trunc_sext_i32_i16375tracksRegLiveness: true376body:             |377  bb.0:378    liveins: $w0379 380    ; CHECK-LABEL: name: trunc_sext_i32_i16381    ; CHECK: liveins: $w0382    ; CHECK-NEXT: {{  $}}383    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $w0384    ; CHECK-NEXT: [[SEXT_INREG:%[0-9]+]]:_(s32) = G_SEXT_INREG [[COPY]], 16385    ; CHECK-NEXT: $w0 = COPY [[SEXT_INREG]](s32)386    %0:_(s32) = COPY $w0387    %1:_(s16) = G_TRUNC %0388    %2:_(s32) = G_SEXT %1389    $w0 = COPY %2390...391---392name: trunc_sext_i32_i1393tracksRegLiveness: true394body:             |395  bb.0:396    liveins: $w0397 398    ; CHECK-LABEL: name: trunc_sext_i32_i1399    ; CHECK: liveins: $w0400    ; CHECK-NEXT: {{  $}}401    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $w0402    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s1) = G_TRUNC [[COPY]](s32)403    ; CHECK-NEXT: [[SEXT:%[0-9]+]]:_(s32) = G_SEXT [[TRUNC]](s1)404    ; CHECK-NEXT: $w0 = COPY [[SEXT]](s32)405    %0:_(s32) = COPY $w0406    %1:_(s1) = G_TRUNC %0407    %2:_(s32) = G_SEXT %1408    $w0 = COPY %2409...410---411name: trunc_sext_i32_i2412tracksRegLiveness: true413body:             |414  bb.0:415    liveins: $w0416 417    ; CHECK-LABEL: name: trunc_sext_i32_i2418    ; CHECK: liveins: $w0419    ; CHECK-NEXT: {{  $}}420    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $w0421    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s2) = G_TRUNC [[COPY]](s32)422    ; CHECK-NEXT: [[SEXT:%[0-9]+]]:_(s32) = G_SEXT [[TRUNC]](s2)423    ; CHECK-NEXT: $w0 = COPY [[SEXT]](s32)424    %0:_(s32) = COPY $w0425    %1:_(s2) = G_TRUNC %0426    %2:_(s32) = G_SEXT %1427    $w0 = COPY %2428...429---430name: trunc_sext_i32_i8431tracksRegLiveness: true432body:             |433  bb.0:434    liveins: $w0435 436    ; CHECK-LABEL: name: trunc_sext_i32_i8437    ; CHECK: liveins: $w0438    ; CHECK-NEXT: {{  $}}439    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $w0440    ; CHECK-NEXT: [[SEXT_INREG:%[0-9]+]]:_(s32) = G_SEXT_INREG [[COPY]], 8441    ; CHECK-NEXT: $w0 = COPY [[SEXT_INREG]](s32)442    %0:_(s32) = COPY $w0443    %1:_(s8) = G_TRUNC %0444    %2:_(s32) = G_SEXT %1445    $w0 = COPY %2446...447---448name: trunc_sext_i64_i32449tracksRegLiveness: true450body:             |451  bb.0:452    liveins: $w0, $w1453 454    ; CHECK-LABEL: name: trunc_sext_i64_i32455    ; CHECK: liveins: $w0, $w1456    ; CHECK-NEXT: {{  $}}457    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x0458    ; CHECK-NEXT: [[SEXT_INREG:%[0-9]+]]:_(s64) = G_SEXT_INREG [[COPY]], 32459    ; CHECK-NEXT: $x0 = COPY [[SEXT_INREG]](s64)460    %0:_(s64) = COPY $x0461    %1:_(s32) = G_TRUNC %0462    %2:_(s64) = G_SEXT %1463    $x0 = COPY %2464...465---466name: trunc_sext_v2i32_v2i16467tracksRegLiveness: true468body:             |469  bb.0:470    liveins: $w0, $w1471 472    ; CHECK-LABEL: name: trunc_sext_v2i32_v2i16473    ; CHECK: liveins: $w0, $w1474    ; CHECK-NEXT: {{  $}}475    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s32>) = COPY $x0476    ; CHECK-NEXT: [[SEXT_INREG:%[0-9]+]]:_(<2 x s32>) = G_SEXT_INREG [[COPY]], 16477    ; CHECK-NEXT: $x0 = COPY [[SEXT_INREG]](<2 x s32>)478    %0:_(<2 x s32>) = COPY $x0479    %1:_(<2 x s16>) = G_TRUNC %0480    %2:_(<2 x s32>) = G_SEXT %1481    $x0 = COPY %2482...483---484name: trunc_sext_v4i16_v4i8485tracksRegLiveness: true486body:             |487  bb.0:488    liveins: $w0, $w1489 490    ; CHECK-LABEL: name: trunc_sext_v4i16_v4i8491    ; CHECK: liveins: $w0, $w1492    ; CHECK-NEXT: {{  $}}493    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<4 x s16>) = COPY $x0494    ; CHECK-NEXT: [[SEXT_INREG:%[0-9]+]]:_(<4 x s16>) = G_SEXT_INREG [[COPY]], 8495    ; CHECK-NEXT: $x0 = COPY [[SEXT_INREG]](<4 x s16>)496    %0:_(<4 x s16>) = COPY $x0497    %1:_(<4 x s8>) = G_TRUNC %0498    %2:_(<4 x s16>) = G_SEXT %1499    $x0 = COPY %2500...501---502name: trunc_sext_mismatching_types503tracksRegLiveness: true504body:             |505  bb.0:506    liveins: $w0, $w1507 508    ; CHECK-LABEL: name: trunc_sext_mismatching_types509    ; CHECK: liveins: $w0, $w1510    ; CHECK-NEXT: {{  $}}511    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x0512    ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY]](s64)513    ; CHECK-NEXT: [[SEXT:%[0-9]+]]:_(s32) = G_SEXT [[TRUNC]](s16)514    ; CHECK-NEXT: $w0 = COPY [[SEXT]](s32)515    %0:_(s64) = COPY $x0516    %1:_(s16) = G_TRUNC %0517    %2:_(s32) = G_SEXT %1518    $w0 = COPY %2519...520