brintos

brintos / llvm-project-archived public Read only

0
0
Text · 18.1 KiB · a7570d2 Raw
401 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 52# RUN: llc -run-pass=machine-combiner -mcpu=neoverse-n2 -mtriple=aarch64-none-linux-gnu -verify-machineinstrs %s -o - | FileCheck %s3 4---5name:            split_loads_to_fpr1286body:             |7  bb.0.entry:8    liveins: $x0, $x1, $x2, $x3, $x49 10    ; CHECK-LABEL: name: split_loads_to_fpr12811    ; CHECK: [[COPY:%[0-9]+]]:gpr64common = COPY $x012    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr64common = COPY $x113    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:gpr64common = COPY $x214    ; CHECK-NEXT: [[COPY3:%[0-9]+]]:gpr64common = COPY $x315    ; CHECK-NEXT: [[COPY4:%[0-9]+]]:gpr64common = COPY $x416    ; CHECK-NEXT: [[LD_i32:%[0-9]+]]:fpr32 = LDRSroX [[COPY]], [[COPY1]], 0, 117    ; CHECK-NEXT: [[FIRST_REG:%[0-9]+]]:fpr128 = SUBREG_TO_REG 0, [[LD_i32]], %subreg.ssub18    ; CHECK-NEXT: [[LD0_1:%[0-9]+]]:fpr128 = LD1i32 [[FIRST_REG]], 1, [[COPY2]] 19    ; CHECK-NEXT: [[LD1_0:%[0-9]+]]:fpr32 = LDRSui [[COPY3]], 020    ; CHECK-NEXT: [[SECOND_REG:%[0-9]+]]:fpr128 = SUBREG_TO_REG 0, killed [[LD1_0]], %subreg.ssub21    ; CHECK-NEXT: [[LD1_1:%[0-9]+]]:fpr128 = LD1i32 [[SECOND_REG]], 1, [[COPY4]]22    ; CHECK-NEXT: [[ZIP:%[0-9]+]]:fpr128 = ZIP1v2i64 [[LD0_1]], [[LD1_1]]23    ; CHECK-NEXT: $q0 = COPY [[ZIP]]24    ; CHECK-NEXT: RET_ReallyLR implicit $q025    %0:gpr64common = COPY $x026    %1:gpr64common = COPY $x127    %2:gpr64common = COPY $x228    %3:gpr64common = COPY $x329    %4:gpr64common = COPY $x430    %5:fpr32 = LDRSroX %0, %1, 0, 131    %6:fpr128 = SUBREG_TO_REG 0, %5, %subreg.ssub32    %7:fpr128 = LD1i32 %6, 1, %233    %8:fpr128 = LD1i32 %7, 2, %334    %9:fpr128 = LD1i32 %8, 3, %435    $q0 = COPY %936    RET_ReallyLR implicit $q037 38---39name:            split_loads_to_fpr128_ui40body:             |41  bb.0.entry:42    liveins: $x0, $x1, $x2, $x3, $x443 44    ; CHECK-LABEL: name: split_loads_to_fpr128_ui45    ; CHECK: [[COPY:%[0-9]+]]:gpr64common = COPY $x046    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr64common = COPY $x147    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:gpr64common = COPY $x248    ; CHECK-NEXT: [[COPY3:%[0-9]+]]:gpr64common = COPY $x349    ; CHECK-NEXT: [[COPY4:%[0-9]+]]:gpr64common = COPY $x450    ; CHECK-NEXT: [[LD_i32:%[0-9]+]]:fpr32 = LDRSui [[COPY]], 051    ; CHECK-NEXT: [[FIRST_REG:%[0-9]+]]:fpr128 = SUBREG_TO_REG 0, killed [[LD_i32]], %subreg.ssub52    ; CHECK-NEXT: [[LD0_1:%[0-9]+]]:fpr128 = LD1i32 [[FIRST_REG]], 1, killed [[COPY1]] 53    ; CHECK-NEXT: [[LD1_0:%[0-9]+]]:fpr32 = LDRSui [[COPY2]], 054    ; CHECK-NEXT: [[SECOND_REG:%[0-9]+]]:fpr128 = SUBREG_TO_REG 0, killed [[LD1_0]], %subreg.ssub55    ; CHECK-NEXT: [[LD1_1:%[0-9]+]]:fpr128 = LD1i32 [[SECOND_REG]], 1, killed [[COPY3]]56    ; CHECK-NEXT: [[ZIP:%[0-9]+]]:fpr128 = ZIP1v2i64 [[LD0_1]], [[LD1_1]]57    ; CHECK-NEXT: $q0 = COPY [[ZIP]]58    ; CHECK-NEXT: RET_ReallyLR implicit $q059    %0:gpr64common = COPY $x060    %1:gpr64common = COPY $x161    %2:gpr64common = COPY $x262    %3:gpr64common = COPY $x363    %4:gpr64common = COPY $x464    %5:fpr32 = LDRSui %0, 065    %6:fpr128 = SUBREG_TO_REG 0, killed %5, %subreg.ssub66    %7:fpr128 = LD1i32 %6, 1, killed %167    %8:fpr128 = LD1i32 %7, 2, killed %268    %9:fpr128 = LD1i32 %8, 3, killed %369    $q0 = COPY %970    RET_ReallyLR implicit $q071 72---73name:            split_loads_to_fpr128_i1674body:             |75  bb.0.entry:76    liveins: $x0, $x1, $x2, $x3, $x4, $x5, $x6, $x7, $x877 78    ; CHECK-LABEL: name: split_loads_to_fpr128_i1679    ; CHECK: [[COPY:%[0-9]+]]:gpr64common = COPY $x080    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr64common = COPY $x181    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:gpr64common = COPY $x282    ; CHECK-NEXT: [[COPY3:%[0-9]+]]:gpr64common = COPY $x383    ; CHECK-NEXT: [[COPY4:%[0-9]+]]:gpr64common = COPY $x484    ; CHECK-NEXT: [[COPY5:%[0-9]+]]:gpr64common = COPY $x585    ; CHECK-NEXT: [[COPY6:%[0-9]+]]:gpr64common = COPY $x686    ; CHECK-NEXT: [[COPY7:%[0-9]+]]:gpr64common = COPY $x787    ; CHECK-NEXT: [[COPY8:%[0-9]+]]:gpr64common = COPY $x888    ; CHECK-NEXT: [[LD_i16:%[0-9]+]]:fpr16 = LDRHroX [[COPY]], killed [[COPY1]], 0, 189    ; CHECK-NEXT: [[FIRST_REG:%[0-9]+]]:fpr128 = SUBREG_TO_REG 0, killed [[LD_i16]], %subreg.hsub90    ; CHECK-NEXT: [[LD0_1:%[0-9]+]]:fpr128 = LD1i16 [[FIRST_REG]], 1, killed [[COPY2]]91    ; CHECK-NEXT: [[LD0_2:%[0-9]+]]:fpr128 = LD1i16 [[LD0_1]], 2, killed [[COPY3]]92    ; CHECK-NEXT: [[LD0_3:%[0-9]+]]:fpr128 = LD1i16 [[LD0_2]], 3, killed [[COPY4]]93    ; CHECK-NEXT: [[LD1_0:%[0-9]+]]:fpr16 = LDRHui [[COPY5]], 094    ; CHECK-NEXT: [[SECOND_REG:%[0-9]+]]:fpr128 = SUBREG_TO_REG 0, killed [[LD1_0]], %subreg.hsub95    ; CHECK-NEXT: [[LD1_1:%[0-9]+]]:fpr128 = LD1i16 [[SECOND_REG]], 1, killed [[COPY6]]96    ; CHECK-NEXT: [[LD1_2:%[0-9]+]]:fpr128 = LD1i16 [[LD1_1]], 2, killed [[COPY7]]97    ; CHECK-NEXT: [[LD1_3:%[0-9]+]]:fpr128 = LD1i16 [[LD1_2]], 3, killed [[COPY8]]98    ; CHECK-NEXT: [[ZIP:%[0-9]+]]:fpr128 = ZIP1v2i64 [[LD0_3]], [[LD1_3]]99    ; CHECK-NEXT: $q0 = COPY [[ZIP]]100    ; CHECK-NEXT: RET_ReallyLR implicit $q0101    %0:gpr64common = COPY $x0102    %1:gpr64common = COPY $x1103    %2:gpr64common = COPY $x2104    %3:gpr64common = COPY $x3105    %4:gpr64common = COPY $x4106    %5:gpr64common = COPY $x5107    %6:gpr64common = COPY $x6108    %7:gpr64common = COPY $x7109    %8:gpr64common = COPY $x8110    %9:fpr16 = LDRHroX %0, killed %1, 0, 1111    %10:fpr128 = SUBREG_TO_REG 0, killed %9, %subreg.hsub112    %11:fpr128 = LD1i16 %10, 1, killed %2113    %12:fpr128 = LD1i16 %11, 2, killed %3114    %13:fpr128 = LD1i16 %12, 3, killed %4115    %14:fpr128 = LD1i16 %13, 4, killed %5116    %15:fpr128 = LD1i16 %14, 5, killed %6117    %16:fpr128 = LD1i16 %15, 6, killed %7118    %17:fpr128 = LD1i16 %16, 7, killed %8119    $q0 = COPY %17120    RET_ReallyLR implicit $q0121 122---123name:            split_loads_to_fpr128_i16_ui124body:             |125  bb.0.entry:126    liveins: $x0, $x1, $x2, $x3, $x4, $x5, $x6, $x7, $x8127 128    ; CHECK-LABEL: name: split_loads_to_fpr128_i16_ui129    ; CHECK: [[COPY:%[0-9]+]]:gpr64common = COPY $x0130    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr64common = COPY $x1131    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:gpr64common = COPY $x2132    ; CHECK-NEXT: [[COPY3:%[0-9]+]]:gpr64common = COPY $x3133    ; CHECK-NEXT: [[COPY4:%[0-9]+]]:gpr64common = COPY $x4134    ; CHECK-NEXT: [[COPY5:%[0-9]+]]:gpr64common = COPY $x5135    ; CHECK-NEXT: [[COPY6:%[0-9]+]]:gpr64common = COPY $x6136    ; CHECK-NEXT: [[COPY7:%[0-9]+]]:gpr64common = COPY $x7137    ; CHECK-NEXT: [[COPY8:%[0-9]+]]:gpr64common = COPY $x8138    ; CHECK-NEXT: [[LD_i16:%[0-9]+]]:fpr16 = LDRHui [[COPY]], 0139    ; CHECK-NEXT: [[FIRST_REG:%[0-9]+]]:fpr128 = SUBREG_TO_REG 0, killed [[LD_i16]], %subreg.hsub140    ; CHECK-NEXT: [[LD0_1:%[0-9]+]]:fpr128 = LD1i16 [[FIRST_REG]], 1, killed [[COPY1]]141    ; CHECK-NEXT: [[LD0_2:%[0-9]+]]:fpr128 = LD1i16 [[LD0_1]], 2, killed [[COPY2]]142    ; CHECK-NEXT: [[LD0_3:%[0-9]+]]:fpr128 = LD1i16 [[LD0_2]], 3, killed [[COPY3]]143    ; CHECK-NEXT: [[LD1_0:%[0-9]+]]:fpr16 = LDRHui [[COPY4]], 0144    ; CHECK-NEXT: [[SECOND_REG:%[0-9]+]]:fpr128 = SUBREG_TO_REG 0, killed [[LD1_0]], %subreg.hsub145    ; CHECK-NEXT: [[LD1_1:%[0-9]+]]:fpr128 = LD1i16 [[SECOND_REG]], 1, killed [[COPY5]]146    ; CHECK-NEXT: [[LD1_2:%[0-9]+]]:fpr128 = LD1i16 [[LD1_1]], 2, killed [[COPY6]]147    ; CHECK-NEXT: [[LD1_3:%[0-9]+]]:fpr128 = LD1i16 [[LD1_2]], 3, killed [[COPY7]]148    ; CHECK-NEXT: [[ZIP:%[0-9]+]]:fpr128 = ZIP1v2i64 [[LD0_3]], [[LD1_3]]149    ; CHECK-NEXT: $q0 = COPY [[ZIP]]150    ; CHECK-NEXT: RET_ReallyLR implicit $q0151    %0:gpr64common = COPY $x0152    %1:gpr64common = COPY $x1153    %2:gpr64common = COPY $x2154    %3:gpr64common = COPY $x3155    %4:gpr64common = COPY $x4156    %5:gpr64common = COPY $x5157    %6:gpr64common = COPY $x6158    %7:gpr64common = COPY $x7159    %8:gpr64common = COPY $x8160    %9:fpr16 = LDRHui %0, 0161    %10:fpr128 = SUBREG_TO_REG 0, killed %9, %subreg.hsub162    %11:fpr128 = LD1i16 %10, 1, killed %1163    %12:fpr128 = LD1i16 %11, 2, killed %2164    %13:fpr128 = LD1i16 %12, 3, killed %3165    %14:fpr128 = LD1i16 %13, 4, killed %4166    %15:fpr128 = LD1i16 %14, 5, killed %5167    %16:fpr128 = LD1i16 %15, 6, killed %6168    %17:fpr128 = LD1i16 %16, 7, killed %7169    $q0 = COPY %17170    RET_ReallyLR implicit $q0171 172---173name:            split_loads_to_fpr128_i8174body:             |175  bb.0.entry:176    liveins: $x0, $x1, $x2, $x3, $x4, $x5, $x6, $x7, $x8, $x9, $x10, $x11, $x12, $x13, $x14, $x15, $x16177 178    ; CHECK-LABEL: name: split_loads_to_fpr128_i8179    ; CHECK: [[COPY:%[0-9]+]]:gpr64common = COPY $x0180    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr64common = COPY $x1181    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:gpr64common = COPY $x2182    ; CHECK-NEXT: [[COPY3:%[0-9]+]]:gpr64common = COPY $x3183    ; CHECK-NEXT: [[COPY4:%[0-9]+]]:gpr64common = COPY $x4184    ; CHECK-NEXT: [[COPY5:%[0-9]+]]:gpr64common = COPY $x5185    ; CHECK-NEXT: [[COPY6:%[0-9]+]]:gpr64common = COPY $x6186    ; CHECK-NEXT: [[COPY7:%[0-9]+]]:gpr64common = COPY $x7187    ; CHECK-NEXT: [[COPY8:%[0-9]+]]:gpr64common = COPY $x8188    ; CHECK-NEXT: [[COPY9:%[0-9]+]]:gpr64common = COPY $x9189    ; CHECK-NEXT: [[COPY10:%[0-9]+]]:gpr64common = COPY $x10190    ; CHECK-NEXT: [[COPY11:%[0-9]+]]:gpr64common = COPY $x11191    ; CHECK-NEXT: [[COPY12:%[0-9]+]]:gpr64common = COPY $x12192    ; CHECK-NEXT: [[COPY13:%[0-9]+]]:gpr64common = COPY $x13193    ; CHECK-NEXT: [[COPY14:%[0-9]+]]:gpr64common = COPY $x14194    ; CHECK-NEXT: [[COPY15:%[0-9]+]]:gpr64common = COPY $x15195    ; CHECK-NEXT: [[COPY16:%[0-9]+]]:gpr64common = COPY $x16196    ; CHECK-NEXT: [[LD_i8:%[0-9]+]]:fpr8 = LDRBroX [[COPY]], killed [[COPY1]], 0, 0197    ; CHECK-NEXT: [[FIRST_REG:%[0-9]+]]:fpr128 = SUBREG_TO_REG 0, killed [[LD_i8]], %subreg.bsub198    ; CHECK-NEXT: [[LD0_1:%[0-9]+]]:fpr128 = LD1i8 [[FIRST_REG]], 1, killed [[COPY2]]199    ; CHECK-NEXT: [[LD0_2:%[0-9]+]]:fpr128 = LD1i8 [[LD0_1]], 2, killed [[COPY3]]200    ; CHECK-NEXT: [[LD0_3:%[0-9]+]]:fpr128 = LD1i8 [[LD0_2]], 3, killed [[COPY4]]201    ; CHECK-NEXT: [[LD0_4:%[0-9]+]]:fpr128 = LD1i8 [[LD0_3]], 4, killed [[COPY5]]202    ; CHECK-NEXT: [[LD0_5:%[0-9]+]]:fpr128 = LD1i8 [[LD0_4]], 5, killed [[COPY6]]203    ; CHECK-NEXT: [[LD0_6:%[0-9]+]]:fpr128 = LD1i8 [[LD0_5]], 6, killed [[COPY7]]204    ; CHECK-NEXT: [[LD0_7:%[0-9]+]]:fpr128 = LD1i8 [[LD0_6]], 7, killed [[COPY8]]205    ; CHECK-NEXT: [[LD1_0:%[0-9]+]]:fpr8 = LDRBui [[COPY9]], 0206    ; CHECK-NEXT: [[SECOND_REG:%[0-9]+]]:fpr128 = SUBREG_TO_REG 0, killed [[LD1_0]], %subreg.bsub207    ; CHECK-NEXT: [[LD1_1:%[0-9]+]]:fpr128 = LD1i8 [[SECOND_REG]], 1, killed [[COPY10]]208    ; CHECK-NEXT: [[LD1_2:%[0-9]+]]:fpr128 = LD1i8 [[LD1_1]], 2, killed [[COPY11]]209    ; CHECK-NEXT: [[LD1_3:%[0-9]+]]:fpr128 = LD1i8 [[LD1_2]], 3, killed [[COPY12]]210    ; CHECK-NEXT: [[LD1_4:%[0-9]+]]:fpr128 = LD1i8 [[LD1_3]], 4, killed [[COPY13]]211    ; CHECK-NEXT: [[LD1_5:%[0-9]+]]:fpr128 = LD1i8 [[LD1_4]], 5, killed [[COPY14]]212    ; CHECK-NEXT: [[LD1_6:%[0-9]+]]:fpr128 = LD1i8 [[LD1_5]], 6, killed [[COPY15]]213    ; CHECK-NEXT: [[LD1_7:%[0-9]+]]:fpr128 = LD1i8 [[LD1_6]], 7, killed [[COPY16]]214    ; CHECK-NEXT: [[ZIP:%[0-9]+]]:fpr128 = ZIP1v2i64 [[LD0_7]], [[LD1_7]]215    ; CHECK-NEXT: $q0 = COPY [[ZIP]]216    ; CHECK-NEXT: RET_ReallyLR implicit $q0217    %0:gpr64common = COPY $x0218    %1:gpr64common = COPY $x1219    %2:gpr64common = COPY $x2220    %3:gpr64common = COPY $x3221    %4:gpr64common = COPY $x4222    %5:gpr64common = COPY $x5223    %6:gpr64common = COPY $x6224    %7:gpr64common = COPY $x7225    %8:gpr64common = COPY $x8226    %9:gpr64common = COPY $x9227    %10:gpr64common = COPY $x10228    %11:gpr64common = COPY $x11229    %12:gpr64common = COPY $x12230    %13:gpr64common = COPY $x13231    %14:gpr64common = COPY $x14232    %15:gpr64common = COPY $x15233    %16:gpr64common = COPY $x16234    %17:fpr8 = LDRBroX %0, killed %1, 0, 0235    %18:fpr128 = SUBREG_TO_REG 0, killed %17, %subreg.bsub236    %19:fpr128 = LD1i8 %18, 1, killed %2237    %20:fpr128 = LD1i8 %19, 2, killed %3238    %21:fpr128 = LD1i8 %20, 3, killed %4239    %22:fpr128 = LD1i8 %21, 4, killed %5240    %23:fpr128 = LD1i8 %22, 5, killed %6241    %24:fpr128 = LD1i8 %23, 6, killed %7242    %25:fpr128 = LD1i8 %24, 7, killed %8243    %26:fpr128 = LD1i8 %25, 8, killed %9244    %27:fpr128 = LD1i8 %26, 9, killed %10245    %28:fpr128 = LD1i8 %27, 10, killed %11246    %29:fpr128 = LD1i8 %28, 11, killed %12247    %30:fpr128 = LD1i8 %29, 12, killed %13248    %31:fpr128 = LD1i8 %30, 13, killed %14249    %32:fpr128 = LD1i8 %31, 14, killed %15250    %33:fpr128 = LD1i8 %32, 15, killed %16251    $q0 = COPY %33252    RET_ReallyLR implicit $q0253 254---255name:            negative_pattern_missing_lanes256body:             |257  bb.0.entry:258    liveins: $x0, $x1259 260    ; CHECK-LABEL: name: negative_pattern_missing_lanes261    ; CHECK:      [[LD1:%.*]]:fpr128 = LDRQui $x1, 0262    ; CHECK-NEXT: [[LD2:%.*]]:fpr128 = LD1i32 [[LD1]]263  264    %0:gpr64common = COPY $x0265    %1:fpr128 = LDRQui $x1, 0266    %2:fpr128 = LD1i32 %1, 3, %0267    $q0 = COPY %2268    RET_ReallyLR implicit $q0269 270---271name:            out_of_order_lanes272body:             |273  bb.0.entry:274    liveins: $x0, $x1, $x2, $x3, $x4275 276    ; CHECK-LABEL: name: out_of_order_lanes277    ; CHECK: [[COPY:%[0-9]+]]:gpr64common = COPY $x0278    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr64common = COPY $x1279    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:gpr64common = COPY $x2280    ; CHECK-NEXT: [[COPY3:%[0-9]+]]:gpr64common = COPY $x3281    ; CHECK-NEXT: [[COPY4:%[0-9]+]]:gpr64common = COPY $x4282    ; CHECK-NEXT: [[LD_i32:%[0-9]+]]:fpr32 = LDRSroX [[COPY]], killed [[COPY1]], 0, 1283    ; CHECK-NEXT: [[FIRST_REG:%[0-9]+]]:fpr128 = SUBREG_TO_REG 0, killed [[LD_i32]], %subreg.ssub284    ; CHECK-NEXT: [[LD0_1:%[0-9]+]]:fpr128 = LD1i32 [[FIRST_REG]], 1, killed [[COPY3]] 285    ; CHECK-NEXT: [[LD1_0:%[0-9]+]]:fpr32 = LDRSui [[COPY2]], 0286    ; CHECK-NEXT: [[SECOND_REG:%[0-9]+]]:fpr128 = SUBREG_TO_REG 0, killed [[LD1_0]], %subreg.ssub287    ; CHECK-NEXT: [[LD1_1:%[0-9]+]]:fpr128 = LD1i32 [[SECOND_REG]], 1, killed [[COPY4]]288    ; CHECK-NEXT: [[ZIP:%[0-9]+]]:fpr128 = ZIP1v2i64 [[LD0_1]], [[LD1_1]]289    ; CHECK-NEXT: $q0 = COPY [[ZIP]]290    ; CHECK-NEXT: RET_ReallyLR implicit $q0291    %0:gpr64common = COPY $x0292    %1:gpr64common = COPY $x1293    %2:gpr64common = COPY $x2294    %3:gpr64common = COPY $x3295    %4:gpr64common = COPY $x4296    %5:fpr32 = LDRSroX %0, killed %1, 0, 1297    %6:fpr128 = SUBREG_TO_REG 0, killed %5, %subreg.ssub298    %7:fpr128 = LD1i32 %6, 2, killed %2299    %8:fpr128 = LD1i32 %7, 1, killed %3300    %9:fpr128 = LD1i32 %8, 3, killed %4301    $q0 = COPY %9302    RET_ReallyLR implicit $q0303 304---305name:            negative_pattern_no_subreg_to_reg306body:             |307  bb.0.entry:308    liveins: $x0, $x1, $x2, $x3309 310    ; CHECK-LABEL: name: negative_pattern_no_subreg_to_reg311    ; CHECK: [[COPY:%[0-9]+]]:gpr64common = COPY $x0312    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr64common = COPY $x1313    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:gpr64common = COPY $x2314    ; CHECK-NEXT: [[COPY3:%[0-9]+]]:gpr64common = COPY $x3315    ; CHECK-NEXT: [[INITIAL_VEC:%[0-9]+]]:fpr128 = LDRQui [[COPY]], 0316    ; CHECK-NEXT: [[LD_LANE_1:%[0-9]+]]:fpr128 = LD1i32 [[INITIAL_VEC]], 1, killed [[COPY1]]317    ; CHECK-NEXT: [[LD_LANE_2:%[0-9]+]]:fpr128 = LD1i32 [[LD_LANE_1]], 2, killed [[COPY2]]318    ; CHECK-NEXT: [[LD_LANE_3:%[0-9]+]]:fpr128 = LD1i32 [[LD_LANE_2]], 3, killed [[COPY3]]319    ; CHECK-NEXT: $q0 = COPY [[LD_LANE_3]]320    ; CHECK-NEXT: RET_ReallyLR implicit $q0321    %0:gpr64common = COPY $x0322    %1:gpr64common = COPY $x1323    %2:gpr64common = COPY $x2324    %3:gpr64common = COPY $x3325    %4:fpr128 = LDRQui %0, 0            326    %5:fpr128 = LD1i32 %4, 1, killed %1 327    %6:fpr128 = LD1i32 %5, 2, killed %2328    %7:fpr128 = LD1i32 %6, 3, killed %3329    $q0 = COPY %7330    RET_ReallyLR implicit $q0331 332---333name:            negative_pattern_multiple_users334body:             |335  bb.0.entry:336    liveins: $x0, $x1, $x2, $x3, $x4337 338    ; CHECK-LABEL: name: negative_pattern_multiple_users339    ; CHECK: [[COPY:%[0-9]+]]:gpr64common = COPY $x0340    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr64common = COPY $x1341    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:gpr64common = COPY $x2342    ; CHECK-NEXT: [[COPY3:%[0-9]+]]:gpr64common = COPY $x3343    ; CHECK-NEXT: [[COPY4:%[0-9]+]]:gpr64common = COPY $x4344    ; CHECK-NEXT: [[LD_i32:%[0-9]+]]:fpr32 = LDRSroX [[COPY]], killed [[COPY1]], 0, 1345    ; CHECK-NEXT: [[FIRST_REG:%[0-9]+]]:fpr128 = SUBREG_TO_REG 0, killed [[LD_i32]], %subreg.ssub346    ; CHECK-NEXT: [[LD_LANE_1:%[0-9]+]]:fpr128 = LD1i32 [[FIRST_REG]], 1, killed [[COPY2]]347    ; CHECK-NEXT: [[LD_LANE_2:%[0-9]+]]:fpr128 = LD1i32 [[LD_LANE_1]], 2, killed [[COPY3]]348    ; CHECK-NEXT: [[LD_LANE_3:%[0-9]+]]:fpr128 = LD1i32 [[LD_LANE_2]], 3, killed [[COPY4]]349    ; CHECK-NEXT: $q0 = COPY [[LD_LANE_3]]350    ; CHECK-NEXT: $q1 = COPY [[LD_LANE_2]]351    ; CHECK-NEXT: RET_ReallyLR implicit $q0, implicit $q1352    %0:gpr64common = COPY $x0353    %1:gpr64common = COPY $x1354    %2:gpr64common = COPY $x2355    %3:gpr64common = COPY $x3356    %4:gpr64common = COPY $x4357    %5:fpr32 = LDRSroX %0, killed %1, 0, 1358    %6:fpr128 = SUBREG_TO_REG 0, killed %5, %subreg.ssub359    %7:fpr128 = LD1i32 %6, 1, killed %2360    %8:fpr128 = LD1i32 %7, 2, killed %3361    %9:fpr128 = LD1i32 %8, 3, killed %4362    $q0 = COPY %9363    $q1 = COPY %8364    RET_ReallyLR implicit $q0, implicit $q1365 366---367name:            aliasing_store_between_vector_loads368alignment:       4369tracksRegLiveness: true370body:             |371  bb.0.entry:372    liveins: $x0, $x1, $x2, $x3373 374    ; CHECK-LABEL: name: aliasing_store_between_vector_loads375    ; CHECK: [[BASE_PTR:%[0-9]+]]:gpr64common = COPY $x0376    ; CHECK-NEXT: [[OFFSET_PTR:%[0-9]+]]:gpr64common = COPY $x1377    ; CHECK-NEXT: [[ALIAS_ADDR:%[0-9]+]]:gpr64common = COPY $x2378    ; CHECK-NEXT: [[OTHER_ADDR:%[0-9]+]]:gpr64common = COPY $x3379    ; CHECK-NEXT: [[LOAD0:%[0-9]+]]:fpr32 = LDRSroX [[BASE_PTR]], killed [[OFFSET_PTR]], 0, 1380    ; CHECK-NEXT: [[VEC0:%[0-9]+]]:fpr128 = SUBREG_TO_REG 0, killed [[LOAD0]], %subreg.ssub381    ; CHECK-NEXT: [[VEC1:%[0-9]+]]:fpr128 = LD1i32 [[VEC0]], 1, [[ALIAS_ADDR]]382    ; CHECK-NEXT: [[CONST:%[0-9]+]]:gpr32 = MOVi32imm 99383    ; CHECK-NEXT: STRWui [[CONST]], [[ALIAS_ADDR]], 0384    ; CHECK-NEXT: [[VEC2:%[0-9]+]]:fpr128 = LD1i32 [[VEC1]], 2, killed [[ALIAS_ADDR]]385    ; CHECK-NEXT: [[VEC3:%[0-9]+]]:fpr128 = LD1i32 [[VEC2]], 3, killed [[OTHER_ADDR]]386    ; CHECK-NEXT: $q0 = COPY [[VEC3]]387    ; CHECK-NEXT: RET_ReallyLR implicit $q0388    %0:gpr64common = COPY $x0389    %1:gpr64common = COPY $x1390    %2:gpr64common = COPY $x2391    %3:gpr64common = COPY $x3392    %5:fpr32 = LDRSroX %0, killed %1, 0, 1393    %6:fpr128 = SUBREG_TO_REG 0, killed %5, %subreg.ssub394    %7:fpr128 = LD1i32 %6, 1, %2395    %10:gpr32 = MOVi32imm 99396    STRWui %10, %2, 0397    %8:fpr128 = LD1i32 %7, 2, killed %2398    %9:fpr128 = LD1i32 %8, 3, killed %3399    $q0 = COPY %9400    RET_ReallyLR implicit $q0401