brintos

brintos / llvm-project-archived public Read only

0
0
Text · 13.2 KiB · 86c0575 Raw
314 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -o - -mtriple=aarch64 -run-pass=aarch64-prelegalizer-combiner %s | FileCheck %s3---4name:            test_combine_consecutive5body:             |6  bb.1:7    liveins: $w0, $w18 9    ; CHECK-LABEL: name: test_combine_consecutive10    ; 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: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32)15    ; CHECK-NEXT: $x0 = COPY [[BUILD_VECTOR]](<2 x s32>)16    %0:_(s32) = COPY $w017    %1:_(s32) = COPY $w118    %2:_(<2 x s32>) = G_IMPLICIT_DEF19    %7:_(s64) = G_CONSTANT i64 020    %8:_(s64) = G_CONSTANT i64 121    %3:_(<2 x s32>) = G_INSERT_VECTOR_ELT %2, %0(s32), %7(s64)22    %4:_(<2 x s32>) = G_INSERT_VECTOR_ELT %3, %1(s32), %8(s64)23    $x0 = COPY %424...25---26name:            test_combine_diff_order27body:             |28  bb.1:29    liveins: $w0, $w130 31    ; CHECK-LABEL: name: test_combine_diff_order32    ; CHECK: liveins: $w0, $w133    ; CHECK-NEXT: {{  $}}34    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $w035    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $w136    ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[COPY1]](s32), [[COPY]](s32)37    ; CHECK-NEXT: $x0 = COPY [[BUILD_VECTOR]](<2 x s32>)38    %0:_(s32) = COPY $w039    %1:_(s32) = COPY $w140    %2:_(<2 x s32>) = G_IMPLICIT_DEF41    %7:_(s64) = G_CONSTANT i64 142    %8:_(s64) = G_CONSTANT i64 043    %3:_(<2 x s32>) = G_INSERT_VECTOR_ELT %2, %0(s32), %7(s64)44    %4:_(<2 x s32>) = G_INSERT_VECTOR_ELT %3, %1(s32), %8(s64)45    $x0 = COPY %446...47---48name:            test_combine_insert_vec_build_vec_idx_149body:             |50  bb.1:51    liveins: $w0, $w1, $w2, $w352 53    ; CHECK-LABEL: name: test_combine_insert_vec_build_vec_idx_154    ; CHECK: liveins: $w0, $w1, $w2, $w355    ; CHECK-NEXT: {{  $}}56    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $w057    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $w258    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $w359    ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY]](s32), [[COPY1]](s32), [[COPY2]](s32)60    ; CHECK-NEXT: $q0 = COPY [[BUILD_VECTOR]](<4 x s32>)61    %0:_(s32) = COPY $w062    %1:_(s32) = COPY $w163    %6:_(s32) = COPY $w264    %7:_(s32) = COPY $w365    %2:_(<4 x s32>) = G_BUILD_VECTOR %0, %1, %6, %766    %3:_(s64) = G_CONSTANT i64 167    %4:_(<4 x s32>) = G_INSERT_VECTOR_ELT %2, %0(s32), %3(s64)68    $q0 = COPY %469...70---71name:            test_combine_insert_vec_build_vec_idx_oob72body:             |73  bb.1:74    liveins: $w0, $w1, $w2, $w375 76    ; CHECK-LABEL: name: test_combine_insert_vec_build_vec_idx_oob77    ; CHECK: liveins: $w0, $w1, $w2, $w378    ; CHECK-NEXT: {{  $}}79    ; CHECK-NEXT: [[DEF:%[0-9]+]]:_(<4 x s32>) = G_IMPLICIT_DEF80    ; CHECK-NEXT: $q0 = COPY [[DEF]](<4 x s32>)81    %0:_(s32) = COPY $w082    %1:_(s32) = COPY $w183    %6:_(s32) = COPY $w284    %7:_(s32) = COPY $w385    %2:_(<4 x s32>) = G_BUILD_VECTOR %0, %1, %6, %786    %3:_(s64) = G_CONSTANT i64 487    %4:_(<4 x s32>) = G_INSERT_VECTOR_ELT %2, %0(s32), %3(s64)88    $q0 = COPY %489...90---91name:            test_combine_insert_vec_build_vec_variable92body:             |93  bb.1:94    liveins: $x0, $w1, $w2, $w395 96    ; CHECK-LABEL: name: test_combine_insert_vec_build_vec_variable97    ; CHECK: liveins: $x0, $w1, $w2, $w398    ; CHECK-NEXT: {{  $}}99    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $x0100    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $w1101    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $w2102    ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $w3103    ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY1]](s32), [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32)104    ; CHECK-NEXT: [[IVEC:%[0-9]+]]:_(<4 x s32>) = G_INSERT_VECTOR_ELT [[BUILD_VECTOR]], [[COPY1]](s32), [[COPY]](s64)105    ; CHECK-NEXT: $q0 = COPY [[IVEC]](<4 x s32>)106    %0:_(s64) = COPY $x0107    %1:_(s32) = COPY $w1108    %6:_(s32) = COPY $w2109    %7:_(s32) = COPY $w3110    %2:_(<4 x s32>) = G_BUILD_VECTOR %1, %1, %6, %7111    %3:_(s64) = COPY %0112    %4:_(<4 x s32>) = G_INSERT_VECTOR_ELT %2, %1(s32), %3(s64)113    $q0 = COPY %4114...115---116name:            test_combine_multiple_same_idx_1117body:             |118  bb.1:119    liveins: $w0, $w1120 121    ; CHECK-LABEL: name: test_combine_multiple_same_idx_1122    ; CHECK: liveins: $w0, $w1123    ; CHECK-NEXT: {{  $}}124    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $w0125    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $w1126    ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY1]](s32)127    ; CHECK-NEXT: $x0 = COPY [[BUILD_VECTOR]](<2 x s32>)128    %0:_(s32) = COPY $w0129    %1:_(s32) = COPY $w1130    %2:_(<2 x s32>) = G_IMPLICIT_DEF131    %7:_(s64) = G_CONSTANT i64 0132    %8:_(s64) = G_CONSTANT i64 1133    %3:_(<2 x s32>) = G_INSERT_VECTOR_ELT %2, %0(s32), %7(s64)134    %4:_(<2 x s32>) = G_INSERT_VECTOR_ELT %3, %1(s32), %8(s64)135    %5:_(<2 x s32>) = G_INSERT_VECTOR_ELT %4, %1(s32), %8(s64)136    $x0 = COPY %5137...138---139name:            test_combine_multiple_same_idx_2140body:             |141  bb.1:142    liveins: $w0, $w1143 144    ; CHECK-LABEL: name: test_combine_multiple_same_idx_2145    ; CHECK: liveins: $w0, $w1146    ; CHECK-NEXT: {{  $}}147    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $w1148    ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[COPY]](s32)149    ; CHECK-NEXT: $x0 = COPY [[BUILD_VECTOR]](<2 x s32>)150    %0:_(s32) = COPY $w0151    %1:_(s32) = COPY $w1152    %2:_(<2 x s32>) = G_IMPLICIT_DEF153    %7:_(s64) = G_CONSTANT i64 0154    %8:_(s64) = G_CONSTANT i64 1155    %3:_(<2 x s32>) = G_INSERT_VECTOR_ELT %2, %0(s32), %7(s64)156    %4:_(<2 x s32>) = G_INSERT_VECTOR_ELT %3, %1(s32), %7(s64)157    %5:_(<2 x s32>) = G_INSERT_VECTOR_ELT %4, %1(s32), %8(s64)158    $x0 = COPY %5159...160---161name:            test_combine_missing_idx162body:             |163  bb.1:164    liveins: $w0, $w1165 166    ; CHECK-LABEL: name: test_combine_missing_idx167    ; CHECK: liveins: $w0, $w1168    ; CHECK-NEXT: {{  $}}169    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $w0170    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $w1171    ; CHECK-NEXT: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF172    ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY]](s32), [[DEF]](s32), [[COPY1]](s32), [[COPY]](s32)173    ; CHECK-NEXT: $q0 = COPY [[BUILD_VECTOR]](<4 x s32>)174    %0:_(s32) = COPY $w0175    %1:_(s32) = COPY $w1176    %2:_(<4 x s32>) = G_IMPLICIT_DEF177    %7:_(s64) = G_CONSTANT i64 0178    %8:_(s64) = G_CONSTANT i64 2179    %9:_(s64) = G_CONSTANT i64 3180    %10:_(<4 x s32>) = G_INSERT_VECTOR_ELT %2, %0(s32), %7(s64)181    %11:_(<4 x s32>) = G_INSERT_VECTOR_ELT %10, %1(s32), %8(s64)182    %12:_(<4 x s32>) = G_INSERT_VECTOR_ELT %11, %0(s32), %9(s64)183    $q0 = COPY %12184...185---186name:            test_combine_negative_idx187body:             |188  bb.1:189    liveins: $x0190    ; CHECK-LABEL: name: test_combine_negative_idx191    ; CHECK: liveins: $x0192    ; CHECK-NEXT: {{  $}}193    ; CHECK-NEXT: RET_ReallyLR194    %3:_(s8) = G_CONSTANT i8 127195    %2:_(<32 x s8>) = G_BUILD_VECTOR %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8)196    %4:_(s8) = G_CONSTANT i8 -128197    %5:_(s64) = G_CONSTANT i64 -1198    %0:_(p0) = COPY $x0199    %1:_(<32 x s8>) = G_INSERT_VECTOR_ELT %2, %4(s8), %5(s64)200    G_STORE %1(<32 x s8>), %0(p0) :: (store (<32 x s8>))201    RET_ReallyLR202 203...204---205name:            test_idx_undef206body:             |207  bb.1:208    liveins: $x0209    ; CHECK-LABEL: name: test_idx_undef210    ; CHECK: liveins: $x0211    ; CHECK-NEXT: {{  $}}212    ; CHECK-NEXT: RET_ReallyLR213    %3:_(s8) = G_CONSTANT i8 127214    %2:_(<32 x s8>) = G_BUILD_VECTOR %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8)215    %4:_(s8) = G_CONSTANT i8 -128216    %5:_(s64) = G_IMPLICIT_DEF217    %0:_(p0) = COPY $x0218    %1:_(<32 x s8>) = G_INSERT_VECTOR_ELT %2, %4(s8), %5(s64)219    G_STORE %1(<32 x s8>), %0(p0) :: (store (<32 x s8>))220    RET_ReallyLR221 222...223---224name:            test_elt_undef225body:             |226  bb.1:227    liveins: $x0228    ; CHECK-LABEL: name: test_elt_undef229    ; CHECK: liveins: $x0230    ; CHECK-NEXT: {{  $}}231    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s8) = G_CONSTANT i8 127232    ; CHECK-NEXT: [[DEF:%[0-9]+]]:_(s8) = G_IMPLICIT_DEF233    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x0234    ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<32 x s8>) = G_BUILD_VECTOR [[C]](s8), [[C]](s8), [[C]](s8), [[DEF]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8)235    ; CHECK-NEXT: G_STORE [[BUILD_VECTOR]](<32 x s8>), [[COPY]](p0) :: (store (<32 x s8>))236    ; CHECK-NEXT: RET_ReallyLR237    %3:_(s8) = G_CONSTANT i8 127238    %2:_(<32 x s8>) = G_BUILD_VECTOR %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8)239    %4:_(s8) = G_IMPLICIT_DEF240    %5:_(s64) = G_CONSTANT i64 3241    %0:_(p0) = COPY $x0242    %1:_(<32 x s8>) = G_INSERT_VECTOR_ELT %2, %4(s8), %5(s64)243    G_STORE %1(<32 x s8>), %0(p0) :: (store (<32 x s8>))244    RET_ReallyLR245 246...247---248name:            test_elt_undef_with_freeze249body:             |250  bb.1:251    liveins: $x0252    ; CHECK-LABEL: name: test_elt_undef_with_freeze253    ; CHECK: liveins: $x0254    ; CHECK-NEXT: {{  $}}255    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s8) = G_CONSTANT i8 127256    ; CHECK-NEXT: [[DEF:%[0-9]+]]:_(s8) = G_IMPLICIT_DEF257    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x0258    ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<32 x s8>) = G_BUILD_VECTOR [[C]](s8), [[C]](s8), [[C]](s8), [[DEF]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8)259    ; CHECK-NEXT: G_STORE [[BUILD_VECTOR]](<32 x s8>), [[COPY]](p0) :: (store (<32 x s8>))260    ; CHECK-NEXT: RET_ReallyLR261    %3:_(s8) = G_CONSTANT i8 127262    %2:_(<32 x s8>) = G_BUILD_VECTOR %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8)263    %4:_(s8) = G_IMPLICIT_DEF264    %5:_(s64) = G_CONSTANT i64 3265    %0:_(p0) = COPY $x0266    %9:_(<32 x s8>) = G_FREEZE %2267    %1:_(<32 x s8>) = G_INSERT_VECTOR_ELT %9, %4(s8), %5(s64)268    G_STORE %1(<32 x s8>), %0(p0) :: (store (<32 x s8>))269    RET_ReallyLR270 271...272---273name:            test_insert_extract274body:             |275  bb.1:276    liveins: $x0277    ; CHECK-LABEL: name: test_insert_extract278    ; CHECK: liveins: $x0279    ; CHECK-NEXT: {{  $}}280    ; CHECK-NEXT: [[C:%[0-9]+]]:_(s8) = G_CONSTANT i8 127281    ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<32 x s8>) = G_BUILD_VECTOR [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8), [[C]](s8)282    ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x0283    ; CHECK-NEXT: G_STORE [[BUILD_VECTOR]](<32 x s8>), [[COPY]](p0) :: (store (<32 x s8>))284    ; CHECK-NEXT: RET_ReallyLR285    %3:_(s8) = G_CONSTANT i8 127286    %2:_(<32 x s8>) = G_BUILD_VECTOR %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8)287    %5:_(s64) = G_CONSTANT i64 3288    %4:_(s8) = G_EXTRACT_VECTOR_ELT %2, %5289    %0:_(p0) = COPY $x0290    %1:_(<32 x s8>) = G_INSERT_VECTOR_ELT %2, %4(s8), %5(s64)291    G_STORE %1(<32 x s8>), %0(p0) :: (store (<32 x s8>))292    RET_ReallyLR293 294...295---296name:            test_idx_oob297body:             |298  bb.1:299    liveins: $x0300    ; CHECK-LABEL: name: test_idx_oob301    ; CHECK: liveins: $x0302    ; CHECK-NEXT: {{  $}}303    ; CHECK-NEXT: RET_ReallyLR304    %3:_(s8) = G_CONSTANT i8 127305    %2:_(<32 x s8>) = G_BUILD_VECTOR %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8), %3(s8)306    %4:_(s8) = G_CONSTANT i8 -128307    %5:_(s64) = G_CONSTANT i64 1024308    %0:_(p0) = COPY $x0309    %1:_(<32 x s8>) = G_INSERT_VECTOR_ELT %2, %4(s8), %5(s64)310    G_STORE %1(<32 x s8>), %0(p0) :: (store (<32 x s8>))311    RET_ReallyLR312 313...314