brintos

brintos / llvm-project-archived public Read only

0
0
Text · 9.8 KiB · 20cba54 Raw
280 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -run-pass=aarch64-prelegalizer-combiner -mtriple aarch64-unknown-unknown %s -o - | FileCheck %s3 4---5name:            add_unused6body:             |7  bb.0:8    liveins: $w0, $w19    ; CHECK-LABEL: name: add_unused10    ; CHECK: liveins: $w0, $w111    ; CHECK-NEXT: {{  $}}12    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $w013    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $w114    ; CHECK-NEXT: %add:_(s32) = G_ADD [[COPY]], [[COPY1]]15    ; CHECK-NEXT: $w0 = COPY %add(s32)16    ; CHECK-NEXT: RET_ReallyLR implicit $w017    %0:_(s32) = COPY $w018    %1:_(s32) = COPY $w119    %add:_(s32), %o:_(s1) = G_SADDO %0, %120    $w0 = COPY %add(s32)21    RET_ReallyLR implicit $w022...23---24name:            add_canon25body:             |26  bb.0:27    liveins: $w0, $w128    ; CHECK-LABEL: name: add_canon29    ; CHECK: liveins: $w0, $w130    ; CHECK-NEXT: {{  $}}31    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $w132    ; CHECK-NEXT: %const:_(s32) = G_CONSTANT i32 1033    ; CHECK-NEXT: %add:_(s32), %o:_(s1) = G_SADDO [[COPY]], %const34    ; CHECK-NEXT: %o_wide:_(s32) = G_ZEXT %o(s1)35    ; CHECK-NEXT: $w0 = COPY %add(s32)36    ; CHECK-NEXT: $w1 = COPY %o_wide(s32)37    ; CHECK-NEXT: RET_ReallyLR implicit $w038    %0:_(s32) = COPY $w039    %1:_(s32) = COPY $w140    %const:_(s32) = G_CONSTANT i32 1041    %add:_(s32), %o:_(s1) = G_SADDO %const, %142    %o_wide:_(s32) = G_ZEXT %o(s1)43    $w0 = COPY %add(s32)44    $w1 = COPY %o_wide45    RET_ReallyLR implicit $w046...47---48name:            add_const_fold49body:             |50  bb.0:51    liveins: $w0, $w152    ; CHECK-LABEL: name: add_const_fold53    ; CHECK: liveins: $w0, $w154    ; CHECK-NEXT: {{  $}}55    ; CHECK-NEXT: %add:_(s32) = G_CONSTANT i32 2156    ; CHECK-NEXT: %o_wide:_(s32) = G_CONSTANT i32 057    ; CHECK-NEXT: $w0 = COPY %add(s32)58    ; CHECK-NEXT: $w1 = COPY %o_wide(s32)59    ; CHECK-NEXT: RET_ReallyLR implicit $w060    %0:_(s32) = COPY $w061    %1:_(s32) = COPY $w162    %const:_(s32) = G_CONSTANT i32 1063    %const1:_(s32) = G_CONSTANT i32 1164    %add:_(s32), %o:_(s1) = G_UADDO %const, %const165    %o_wide:_(s32) = G_ZEXT %o(s1)66    $w0 = COPY %add(s32)67    $w1 = COPY %o_wide68    RET_ReallyLR implicit $w069...70---71name:            add_add_zero72body:             |73  bb.0:74    liveins: $w0, $w175    ; CHECK-LABEL: name: add_add_zero76    ; CHECK: liveins: $w0, $w177    ; CHECK-NEXT: {{  $}}78    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $w279    ; CHECK-NEXT: %o_wide:_(s32) = G_CONSTANT i32 080    ; CHECK-NEXT: $w0 = COPY [[COPY]](s32)81    ; CHECK-NEXT: $w1 = COPY %o_wide(s32)82    ; CHECK-NEXT: RET_ReallyLR implicit $w083    %0:_(s32) = COPY $w084    %1:_(s32) = COPY $w185    %2:_(s32) = COPY $w286    %const:_(s32) = G_CONSTANT i32 1087    %addl:_(s32) = nsw G_ADD  %2, %const88    %const1:_(s32) = G_CONSTANT i32 -1089    %add:_(s32), %o:_(s1) = G_SADDO %addl, %const190    %o_wide:_(s32) = G_ZEXT %o(s1)91    $w0 = COPY %add(s32)92    $w1 = COPY %o_wide93    RET_ReallyLR implicit $w094...95---96name:            add_multiuse97body:             |98  bb.0:99    liveins: $w0, $w1100    ; CHECK-LABEL: name: add_multiuse101    ; CHECK: liveins: $w0, $w1102    ; CHECK-NEXT: {{  $}}103    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $w0104    ; CHECK-NEXT: %o_wide:_(s32) = G_CONSTANT i32 0105    ; CHECK-NEXT: $w0 = COPY [[COPY]](s32)106    ; CHECK-NEXT: $w1 = COPY [[COPY]](s32)107    ; CHECK-NEXT: $w2 = COPY %o_wide(s32)108    ; CHECK-NEXT: RET_ReallyLR implicit $w0109    %0:_(s32) = COPY $w0110    %const:_(s32) = G_CONSTANT i32 0111    %add:_(s32), %o:_(s1) = G_SADDO %0, %const112    %o_wide:_(s32) = G_ZEXT %o(s1)113    $w0 = COPY %add(s32)114    $w1 = COPY %add(s32)115    $w2 = COPY %o_wide116    RET_ReallyLR implicit $w0117...118---119name:            add_vector120body:             |121  bb.0:122    liveins: $w0, $w1123    ; CHECK-LABEL: name: add_vector124    ; CHECK: liveins: $w0, $w1125    ; CHECK-NEXT: {{  $}}126    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $w0127    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $w1128    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $w2129    ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $w3130    ; CHECK-NEXT: %bv0:_(<4 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY]](s32), [[COPY1]](s32)131    ; CHECK-NEXT: %bv1:_(<4 x s32>) = G_BUILD_VECTOR [[COPY2]](s32), [[COPY3]](s32), [[COPY2]](s32), [[COPY3]](s32)132    ; CHECK-NEXT: %add:_(<4 x s32>), %o:_(<4 x s1>) = G_UADDO %bv0, %bv1133    ; CHECK-NEXT: %o_wide:_(<4 x s32>) = G_ZEXT %o(<4 x s1>)134    ; CHECK-NEXT: $q0 = COPY %add(<4 x s32>)135    ; CHECK-NEXT: $q1 = COPY %o_wide(<4 x s32>)136    ; CHECK-NEXT: RET_ReallyLR implicit $w0137    %0:_(s32) = COPY $w0138    %1:_(s32) = COPY $w1139    %2:_(s32) = COPY $w2140    %3:_(s32) = COPY $w3141    %bv0:_(<4 x s32>) = G_BUILD_VECTOR %0:_(s32), %1:_(s32), %0:_(s32), %1:_(s32)142    %bv1:_(<4 x s32>) = G_BUILD_VECTOR %2:_(s32), %3:_(s32), %2:_(s32), %3:_(s32)143    %add:_(<4 x s32>), %o:_(<4 x s1>) = G_UADDO %bv0, %bv1144    %o_wide:_(<4 x s32>) = G_ZEXT %o(<4 x s1>)145    $q0 = COPY %add(<4 x s32>)146    $q1 = COPY %o_wide147    RET_ReallyLR implicit $w0148...149---150name:            add_splat_vector151body:             |152  bb.0:153    liveins: $w0, $w1154    ; CHECK-LABEL: name: add_splat_vector155    ; CHECK: liveins: $w0, $w1156    ; CHECK-NEXT: {{  $}}157    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $w0158    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $w1159    ; CHECK-NEXT: %bv0:_(<4 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY]](s32), [[COPY1]](s32)160    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s1) = G_CONSTANT i1 false161    ; CHECK-NEXT: %o:_(<4 x s1>) = G_BUILD_VECTOR [[C]](s1), [[C]](s1), [[C]](s1), [[C]](s1)162    ; CHECK-NEXT: %o_wide:_(<4 x s32>) = G_ZEXT %o(<4 x s1>)163    ; CHECK-NEXT: $q0 = COPY %bv0(<4 x s32>)164    ; CHECK-NEXT: $q1 = COPY %o_wide(<4 x s32>)165    ; CHECK-NEXT: RET_ReallyLR implicit $w0166    %0:_(s32) = COPY $w0167    %1:_(s32) = COPY $w1168    %2:_(s32) = COPY $w2169    %3:_(s32) = COPY $w3170    %const:_(s32) = G_CONSTANT i32 0171    %bv0:_(<4 x s32>) = G_BUILD_VECTOR %0:_(s32), %1:_(s32), %0:_(s32), %1:_(s32)172    %bv1:_(<4 x s32>) = G_BUILD_VECTOR %const:_(s32), %const:_(s32), %const:_(s32), %const:_(s32)173    %add:_(<4 x s32>), %o:_(<4 x s1>) = G_SADDO %bv0, %bv1174    %o_wide:_(<4 x s32>) = G_ZEXT %o(<4 x s1>)175    $q0 = COPY %add(<4 x s32>)176    $q1 = COPY %o_wide177    RET_ReallyLR implicit $w0178...179---180name:            sub_may181body:             |182  bb.0:183    liveins: $w0, $w1184    ; CHECK-LABEL: name: sub_may185    ; CHECK: liveins: $w0, $w1186    ; CHECK-NEXT: {{  $}}187    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $w0188    ; CHECK-NEXT: %const:_(s32) = G_CONSTANT i32 512189    ; CHECK-NEXT: %sub:_(s32), %o:_(s1) = G_SSUBO [[COPY]], %const190    ; CHECK-NEXT: %o_wide:_(s32) = G_ZEXT %o(s1)191    ; CHECK-NEXT: $w0 = COPY %sub(s32)192    ; CHECK-NEXT: $w1 = COPY %o_wide(s32)193    ; CHECK-NEXT: RET_ReallyLR implicit $w0194    %0:_(s32) = COPY $w0195    %const:_(s32) = G_CONSTANT i32 512196    %sub:_(s32), %o:_(s1) = G_SSUBO %0, %const197    %o_wide:_(s32) = G_ZEXT %o(s1)198    $w0 = COPY %sub(s32)199    $w1 = COPY %o_wide200    RET_ReallyLR implicit $w0201...202---203name:            usub_may204body:             |205  bb.0:206    liveins: $w0, $w1207    ; CHECK-LABEL: name: usub_may208    ; CHECK: liveins: $w0, $w1209    ; CHECK-NEXT: {{  $}}210    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $w0211    ; CHECK-NEXT: %const:_(s32) = G_CONSTANT i32 512212    ; CHECK-NEXT: %sub:_(s32), %o:_(s1) = G_USUBO [[COPY]], %const213    ; CHECK-NEXT: %o_wide:_(s32) = G_ZEXT %o(s1)214    ; CHECK-NEXT: $w0 = COPY %sub(s32)215    ; CHECK-NEXT: $w1 = COPY %o_wide(s32)216    ; CHECK-NEXT: RET_ReallyLR implicit $w0217    %0:_(s32) = COPY $w0218    %const:_(s32) = G_CONSTANT i32 512219    %sub:_(s32), %o:_(s1) = G_USUBO %0, %const220    %o_wide:_(s32) = G_ZEXT %o(s1)221    $w0 = COPY %sub(s32)222    $w1 = COPY %o_wide223    RET_ReallyLR implicit $w0224...225---226name:            usub_may_carry_s11227body:             |228  bb.0:229    liveins: $w0, $w1230    ; CHECK-LABEL: name: usub_may_carry_s11231    ; CHECK: liveins: $w0, $w1232    ; CHECK-NEXT: {{  $}}233    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $w0234    ; CHECK-NEXT: %const:_(s32) = G_CONSTANT i32 512235    ; CHECK-NEXT: %sub:_(s32), %o:_(s11) = G_USUBO [[COPY]], %const236    ; CHECK-NEXT: %o_wide:_(s32) = G_ZEXT %o(s11)237    ; CHECK-NEXT: $w0 = COPY %sub(s32)238    ; CHECK-NEXT: $w1 = COPY %o_wide(s32)239    ; CHECK-NEXT: RET_ReallyLR implicit $w0240    %0:_(s32) = COPY $w0241    %const:_(s32) = G_CONSTANT i32 512242    %sub:_(s32), %o:_(s11) = G_USUBO %0, %const243    %o_wide:_(s32) = G_ZEXT %o(s11)244    $w0 = COPY %sub(s32)245    $w1 = COPY %o_wide246    RET_ReallyLR implicit $w0247...248---249name:            usub_may_carry_s11_vector250body:             |251  bb.0:252    liveins: $w0, $w1253    ; CHECK-LABEL: name: usub_may_carry_s11_vector254    ; CHECK: liveins: $w0, $w1255    ; CHECK-NEXT: {{  $}}256    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $w0257    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $w0258    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $w0259    ; CHECK-NEXT: %const:_(s32) = G_CONSTANT i32 512260    ; CHECK-NEXT: %bv:_(<4 x s32>) = G_BUILD_VECTOR %const(s32), [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32)261    ; CHECK-NEXT: %bv1:_(<4 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32), %const(s32)262    ; CHECK-NEXT: %sub:_(<4 x s32>), %o:_(<4 x s11>) = G_USUBO %bv, %bv1263    ; CHECK-NEXT: %o_wide:_(<4 x s32>) = G_ZEXT %o(<4 x s11>)264    ; CHECK-NEXT: $q0 = COPY %sub(<4 x s32>)265    ; CHECK-NEXT: $q1 = COPY %o_wide(<4 x s32>)266    ; CHECK-NEXT: RET_ReallyLR implicit $w0267    %0:_(s32) = COPY $w0268    %1:_(s32) = COPY $w0269    %2:_(s32) = COPY $w0270    %3:_(s32) = COPY $w0271    %const:_(s32) = G_CONSTANT i32 512272    %bv:_(<4 x s32>) = G_BUILD_VECTOR %const(s32), %0(s32), %1(s32), %2(s32)273    %bv1:_(<4 x s32>) = G_BUILD_VECTOR %0(s32), %1(s32), %2(s32), %const(s32)274    %sub:_(<4 x s32>), %o:_(<4 x s11>) = G_USUBO %bv, %bv1275    %o_wide:_(<4 x s32>) = G_ZEXT %o(<4 x s11>)276    $q0 = COPY %sub(<4 x s32>)277    $q1 = COPY %o_wide278    RET_ReallyLR implicit $w0279...280