brintos

brintos / llvm-project-archived public Read only

0
0
Text · 36.0 KiB · 3a6a238 Raw
1135 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=riscv32 -mattr=+m,+v -run-pass=regbankselect \3# RUN:   -simplify-mir -verify-machineinstrs %s \4# RUN:   -o - | FileCheck %s5# RUN: llc -mtriple=riscv64 -mattr=+m,+v -run-pass=regbankselect \6# RUN:   -simplify-mir -verify-machineinstrs %s \7# RUN:   -o - | FileCheck %s8--- |9 10  define void @vstore_nx1i8(ptr %pa, <vscale x 1 x i8> %b) #0 {11    store <vscale x 1 x i8> %b, ptr %pa, align 112    ret void13  }14 15  define void @vstore_nx2i8(ptr %pa, <vscale x 2 x i8> %b) #0 {16    store <vscale x 2 x i8> %b, ptr %pa, align 217    ret void18  }19 20  define void @vstore_nx4i8(ptr %pa, <vscale x 4 x i8> %b) #0 {21    store <vscale x 4 x i8> %b, ptr %pa, align 422    ret void23  }24 25  define void @vstore_nx8i8(ptr %pa, <vscale x 8 x i8> %b) #0 {26    store <vscale x 8 x i8> %b, ptr %pa, align 827    ret void28  }29 30  define void @vstore_nx16i8(ptr %pa, <vscale x 16 x i8> %b) #0 {31    store <vscale x 16 x i8> %b, ptr %pa, align 1632    ret void33  }34 35  define void @vstore_nx32i8(ptr %pa, <vscale x 32 x i8> %b) #0 {36    store <vscale x 32 x i8> %b, ptr %pa, align 3237    ret void38  }39 40  define void @vstore_nx64i8(ptr %pa, <vscale x 64 x i8> %b) #0 {41    store <vscale x 64 x i8> %b, ptr %pa, align 6442    ret void43  }44 45  define void @vstore_nx1i16(ptr %pa, <vscale x 1 x i16> %b) #0 {46    store <vscale x 1 x i16> %b, ptr %pa, align 247    ret void48  }49 50  define void @vstore_nx2i16(ptr %pa, <vscale x 2 x i16> %b) #0 {51    store <vscale x 2 x i16> %b, ptr %pa, align 452    ret void53  }54 55  define void @vstore_nx4i16(ptr %pa, <vscale x 4 x i16> %b) #0 {56    store <vscale x 4 x i16> %b, ptr %pa, align 857    ret void58  }59 60  define void @vstore_nx8i16(ptr %pa, <vscale x 8 x i16> %b) #0 {61    store <vscale x 8 x i16> %b, ptr %pa, align 1662    ret void63  }64 65  define void @vstore_nx16i16(ptr %pa, <vscale x 16 x i16> %b) #0 {66    store <vscale x 16 x i16> %b, ptr %pa, align 3267    ret void68  }69 70  define void @vstore_nx32i16(ptr %pa, <vscale x 32 x i16> %b) #0 {71    store <vscale x 32 x i16> %b, ptr %pa, align 6472    ret void73  }74 75  define void @vstore_nx1i32(ptr %pa, <vscale x 1 x i32> %b) #0 {76    store <vscale x 1 x i32> %b, ptr %pa, align 477    ret void78  }79 80  define void @vstore_nx2i32(ptr %pa, <vscale x 2 x i32> %b) #0 {81    store <vscale x 2 x i32> %b, ptr %pa, align 882    ret void83  }84 85  define void @vstore_nx4i32(ptr %pa, <vscale x 4 x i32> %b) #0 {86    store <vscale x 4 x i32> %b, ptr %pa, align 1687    ret void88  }89 90  define void @vstore_nx8i32(ptr %pa, <vscale x 8 x i32> %b) #0 {91    store <vscale x 8 x i32> %b, ptr %pa, align 3292    ret void93  }94 95  define void @vstore_nx16i32(ptr %pa, <vscale x 16 x i32> %b) #0 {96    store <vscale x 16 x i32> %b, ptr %pa, align 6497    ret void98  }99 100  define void @vstore_nx1i64(ptr %pa, <vscale x 1 x i64> %b) #0 {101    store <vscale x 1 x i64> %b, ptr %pa, align 8102    ret void103  }104 105  define void @vstore_nx2i64(ptr %pa, <vscale x 2 x i64> %b) #0 {106    store <vscale x 2 x i64> %b, ptr %pa, align 16107    ret void108  }109 110  define void @vstore_nx4i64(ptr %pa, <vscale x 4 x i64> %b) #0 {111    store <vscale x 4 x i64> %b, ptr %pa, align 32112    ret void113  }114 115  define void @vstore_nx8i64(ptr %pa, <vscale x 8 x i64> %b) #0 {116    store <vscale x 8 x i64> %b, ptr %pa, align 64117    ret void118  }119 120  define void @vstore_nx16i8_align1(ptr %pa, <vscale x 16 x i8> %b) #0 {121    store <vscale x 16 x i8> %b, ptr %pa, align 1122    ret void123  }124 125  define void @vstore_nx16i8_align2(ptr %pa, <vscale x 16 x i8> %b) #0 {126    store <vscale x 16 x i8> %b, ptr %pa, align 2127    ret void128  }129 130  define void @vstore_nx16i8_align16(ptr %pa, <vscale x 16 x i8> %b) #0 {131    store <vscale x 16 x i8> %b, ptr %pa, align 16132    ret void133  }134 135  define void @vstore_nx16i8_align64(ptr %pa, <vscale x 16 x i8> %b) #0 {136    store <vscale x 16 x i8> %b, ptr %pa, align 64137    ret void138  }139 140  define void @vstore_nx4i16_align1(ptr %pa, <vscale x 4 x i16> %b) #0 {141    store <vscale x 4 x i16> %b, ptr %pa, align 1142    ret void143  }144 145  define void @vstore_nx4i16_align2(ptr %pa, <vscale x 4 x i16> %b) #0 {146    store <vscale x 4 x i16> %b, ptr %pa, align 2147    ret void148  }149 150  define void @vstore_nx4i16_align4(ptr %pa, <vscale x 4 x i16> %b) #0 {151    store <vscale x 4 x i16> %b, ptr %pa, align 4152    ret void153  }154 155  define void @vstore_nx4i16_align8(ptr %pa, <vscale x 4 x i16> %b) #0 {156    store <vscale x 4 x i16> %b, ptr %pa, align 8157    ret void158  }159 160  define void @vstore_nx4i16_align16(ptr %pa, <vscale x 4 x i16> %b) #0 {161    store <vscale x 4 x i16> %b, ptr %pa, align 16162    ret void163  }164 165  define void @vstore_nx2i32_align2(ptr %pa, <vscale x 2 x i32> %b) #0 {166    store <vscale x 2 x i32> %b, ptr %pa, align 2167    ret void168  }169 170  define void @vstore_nx2i32_align4(ptr %pa, <vscale x 2 x i32> %b) #0 {171    store <vscale x 2 x i32> %b, ptr %pa, align 4172    ret void173  }174 175  define void @vstore_nx2i32_align8(ptr %pa, <vscale x 2 x i32> %b) #0 {176    store <vscale x 2 x i32> %b, ptr %pa, align 8177    ret void178  }179 180  define void @vstore_nx2i32_align16(ptr %pa, <vscale x 2 x i32> %b) #0 {181    store <vscale x 2 x i32> %b, ptr %pa, align 16182    ret void183  }184 185  define void @vstore_nx2i32_align256(ptr %pa, <vscale x 2 x i32> %b) #0 {186    store <vscale x 2 x i32> %b, ptr %pa, align 256187    ret void188  }189 190  define void @vstore_nx2i64_align4(ptr %pa, <vscale x 2 x i64> %b) #0 {191    store <vscale x 2 x i64> %b, ptr %pa, align 4192    ret void193  }194 195  define void @vstore_nx2i64_align8(ptr %pa, <vscale x 2 x i64> %b) #0 {196    store <vscale x 2 x i64> %b, ptr %pa, align 8197    ret void198  }199 200  define void @vstore_nx2i64_align16(ptr %pa, <vscale x 2 x i64> %b) #0 {201    store <vscale x 2 x i64> %b, ptr %pa, align 16202    ret void203  }204 205  define void @vstore_nx2i64_align32(ptr %pa, <vscale x 2 x i64> %b) #0 {206    store <vscale x 2 x i64> %b, ptr %pa, align 32207    ret void208  }209 210  define void @vstore_nx1ptr(ptr %pa, <vscale x 1 x ptr> %b) #0 {211    store <vscale x 1 x ptr> %b, ptr %pa, align 4212    ret void213  }214 215  define void @vstore_nx2ptr(ptr %pa, <vscale x 2 x ptr> %b) #0 {216    store <vscale x 2 x ptr> %b, ptr %pa, align 8217    ret void218  }219 220  define void @vstore_nx8ptr(ptr %pa, <vscale x 8 x ptr> %b) #0 {221    store <vscale x 8 x ptr> %b, ptr %pa, align 32222    ret void223  }224 225...226---227name:            vstore_nx1i8228legalized:       true229tracksRegLiveness: true230body:             |231  bb.1 (%ir-block.0):232    liveins: $v8, $x10233 234    ; CHECK-LABEL: name: vstore_nx1i8235    ; CHECK: liveins: $v8, $x10236    ; CHECK-NEXT: {{  $}}237    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gprb(p0) = COPY $x10238    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vrb(<vscale x 1 x s8>) = COPY $v8239    ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 1 x s8>), [[COPY]](p0) :: (store (<vscale x 1 x s8>) into %ir.pa)240    ; CHECK-NEXT: PseudoRET241    %0:_(p0) = COPY $x10242    %1:_(<vscale x 1 x s8>) = COPY $v8243    G_STORE %1(<vscale x 1 x s8>), %0(p0) :: (store (<vscale x 1 x s8>) into %ir.pa)244    PseudoRET245 246...247---248name:            vstore_nx2i8249legalized:       true250tracksRegLiveness: true251body:             |252  bb.1 (%ir-block.0):253    liveins: $v8, $x10254 255    ; CHECK-LABEL: name: vstore_nx2i8256    ; CHECK: liveins: $v8, $x10257    ; CHECK-NEXT: {{  $}}258    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gprb(p0) = COPY $x10259    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vrb(<vscale x 2 x s8>) = COPY $v8260    ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 2 x s8>), [[COPY]](p0) :: (store (<vscale x 2 x s8>) into %ir.pa)261    ; CHECK-NEXT: PseudoRET262    %0:_(p0) = COPY $x10263    %1:_(<vscale x 2 x s8>) = COPY $v8264    G_STORE %1(<vscale x 2 x s8>), %0(p0) :: (store (<vscale x 2 x s8>) into %ir.pa)265    PseudoRET266 267...268---269name:            vstore_nx4i8270legalized:       true271tracksRegLiveness: true272body:             |273  bb.1 (%ir-block.0):274    liveins: $v8, $x10275 276    ; CHECK-LABEL: name: vstore_nx4i8277    ; CHECK: liveins: $v8, $x10278    ; CHECK-NEXT: {{  $}}279    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gprb(p0) = COPY $x10280    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vrb(<vscale x 4 x s8>) = COPY $v8281    ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 4 x s8>), [[COPY]](p0) :: (store (<vscale x 4 x s8>) into %ir.pa)282    ; CHECK-NEXT: PseudoRET283    %0:_(p0) = COPY $x10284    %1:_(<vscale x 4 x s8>) = COPY $v8285    G_STORE %1(<vscale x 4 x s8>), %0(p0) :: (store (<vscale x 4 x s8>) into %ir.pa)286    PseudoRET287 288...289---290name:            vstore_nx8i8291legalized:       true292tracksRegLiveness: true293body:             |294  bb.1 (%ir-block.0):295    liveins: $v8, $x10296 297    ; CHECK-LABEL: name: vstore_nx8i8298    ; CHECK: liveins: $v8, $x10299    ; CHECK-NEXT: {{  $}}300    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gprb(p0) = COPY $x10301    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vrb(<vscale x 8 x s8>) = COPY $v8302    ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 8 x s8>), [[COPY]](p0) :: (store (<vscale x 8 x s8>) into %ir.pa)303    ; CHECK-NEXT: PseudoRET304    %0:_(p0) = COPY $x10305    %1:_(<vscale x 8 x s8>) = COPY $v8306    G_STORE %1(<vscale x 8 x s8>), %0(p0) :: (store (<vscale x 8 x s8>) into %ir.pa)307    PseudoRET308 309...310---311name:            vstore_nx16i8312legalized:       true313tracksRegLiveness: true314body:             |315  bb.1 (%ir-block.0):316    liveins: $x10, $v8m2317 318    ; CHECK-LABEL: name: vstore_nx16i8319    ; CHECK: liveins: $x10, $v8m2320    ; CHECK-NEXT: {{  $}}321    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gprb(p0) = COPY $x10322    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vrb(<vscale x 16 x s8>) = COPY $v8m2323    ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 16 x s8>), [[COPY]](p0) :: (store (<vscale x 16 x s8>) into %ir.pa)324    ; CHECK-NEXT: PseudoRET325    %0:_(p0) = COPY $x10326    %1:_(<vscale x 16 x s8>) = COPY $v8m2327    G_STORE %1(<vscale x 16 x s8>), %0(p0) :: (store (<vscale x 16 x s8>) into %ir.pa)328    PseudoRET329 330...331---332name:            vstore_nx32i8333legalized:       true334tracksRegLiveness: true335body:             |336  bb.1 (%ir-block.0):337    liveins: $x10, $v8m4338 339    ; CHECK-LABEL: name: vstore_nx32i8340    ; CHECK: liveins: $x10, $v8m4341    ; CHECK-NEXT: {{  $}}342    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gprb(p0) = COPY $x10343    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vrb(<vscale x 32 x s8>) = COPY $v8m4344    ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 32 x s8>), [[COPY]](p0) :: (store (<vscale x 32 x s8>) into %ir.pa)345    ; CHECK-NEXT: PseudoRET346    %0:_(p0) = COPY $x10347    %1:_(<vscale x 32 x s8>) = COPY $v8m4348    G_STORE %1(<vscale x 32 x s8>), %0(p0) :: (store (<vscale x 32 x s8>) into %ir.pa)349    PseudoRET350 351...352---353name:            vstore_nx64i8354legalized:       true355tracksRegLiveness: true356body:             |357  bb.1 (%ir-block.0):358    liveins: $x10, $v8m8359 360    ; CHECK-LABEL: name: vstore_nx64i8361    ; CHECK: liveins: $x10, $v8m8362    ; CHECK-NEXT: {{  $}}363    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gprb(p0) = COPY $x10364    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vrb(<vscale x 64 x s8>) = COPY $v8m8365    ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 64 x s8>), [[COPY]](p0) :: (store (<vscale x 64 x s8>) into %ir.pa)366    ; CHECK-NEXT: PseudoRET367    %0:_(p0) = COPY $x10368    %1:_(<vscale x 64 x s8>) = COPY $v8m8369    G_STORE %1(<vscale x 64 x s8>), %0(p0) :: (store (<vscale x 64 x s8>) into %ir.pa)370    PseudoRET371 372...373---374name:            vstore_nx1i16375legalized:       true376tracksRegLiveness: true377body:             |378  bb.1 (%ir-block.0):379    liveins: $v8, $x10380 381    ; CHECK-LABEL: name: vstore_nx1i16382    ; CHECK: liveins: $v8, $x10383    ; CHECK-NEXT: {{  $}}384    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gprb(p0) = COPY $x10385    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vrb(<vscale x 1 x s16>) = COPY $v8386    ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 1 x s16>), [[COPY]](p0) :: (store (<vscale x 1 x s16>) into %ir.pa)387    ; CHECK-NEXT: PseudoRET388    %0:_(p0) = COPY $x10389    %1:_(<vscale x 1 x s16>) = COPY $v8390    G_STORE %1(<vscale x 1 x s16>), %0(p0) :: (store (<vscale x 1 x s16>) into %ir.pa)391    PseudoRET392 393...394---395name:            vstore_nx2i16396legalized:       true397tracksRegLiveness: true398body:             |399  bb.1 (%ir-block.0):400    liveins: $v8, $x10401 402    ; CHECK-LABEL: name: vstore_nx2i16403    ; CHECK: liveins: $v8, $x10404    ; CHECK-NEXT: {{  $}}405    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gprb(p0) = COPY $x10406    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vrb(<vscale x 2 x s16>) = COPY $v8407    ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 2 x s16>), [[COPY]](p0) :: (store (<vscale x 2 x s16>) into %ir.pa)408    ; CHECK-NEXT: PseudoRET409    %0:_(p0) = COPY $x10410    %1:_(<vscale x 2 x s16>) = COPY $v8411    G_STORE %1(<vscale x 2 x s16>), %0(p0) :: (store (<vscale x 2 x s16>) into %ir.pa)412    PseudoRET413 414...415---416name:            vstore_nx4i16417legalized:       true418tracksRegLiveness: true419body:             |420  bb.1 (%ir-block.0):421    liveins: $v8, $x10422 423    ; CHECK-LABEL: name: vstore_nx4i16424    ; CHECK: liveins: $v8, $x10425    ; CHECK-NEXT: {{  $}}426    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gprb(p0) = COPY $x10427    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vrb(<vscale x 4 x s16>) = COPY $v8428    ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 4 x s16>), [[COPY]](p0) :: (store (<vscale x 4 x s16>) into %ir.pa)429    ; CHECK-NEXT: PseudoRET430    %0:_(p0) = COPY $x10431    %1:_(<vscale x 4 x s16>) = COPY $v8432    G_STORE %1(<vscale x 4 x s16>), %0(p0) :: (store (<vscale x 4 x s16>) into %ir.pa)433    PseudoRET434 435...436---437name:            vstore_nx8i16438legalized:       true439tracksRegLiveness: true440body:             |441  bb.1 (%ir-block.0):442    liveins: $x10, $v8m2443 444    ; CHECK-LABEL: name: vstore_nx8i16445    ; CHECK: liveins: $x10, $v8m2446    ; CHECK-NEXT: {{  $}}447    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gprb(p0) = COPY $x10448    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vrb(<vscale x 8 x s16>) = COPY $v8m2449    ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 8 x s16>), [[COPY]](p0) :: (store (<vscale x 8 x s16>) into %ir.pa)450    ; CHECK-NEXT: PseudoRET451    %0:_(p0) = COPY $x10452    %1:_(<vscale x 8 x s16>) = COPY $v8m2453    G_STORE %1(<vscale x 8 x s16>), %0(p0) :: (store (<vscale x 8 x s16>) into %ir.pa)454    PseudoRET455 456...457---458name:            vstore_nx16i16459legalized:       true460tracksRegLiveness: true461body:             |462  bb.1 (%ir-block.0):463    liveins: $x10, $v8m4464 465    ; CHECK-LABEL: name: vstore_nx16i16466    ; CHECK: liveins: $x10, $v8m4467    ; CHECK-NEXT: {{  $}}468    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gprb(p0) = COPY $x10469    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vrb(<vscale x 16 x s16>) = COPY $v8m4470    ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 16 x s16>), [[COPY]](p0) :: (store (<vscale x 16 x s16>) into %ir.pa)471    ; CHECK-NEXT: PseudoRET472    %0:_(p0) = COPY $x10473    %1:_(<vscale x 16 x s16>) = COPY $v8m4474    G_STORE %1(<vscale x 16 x s16>), %0(p0) :: (store (<vscale x 16 x s16>) into %ir.pa)475    PseudoRET476 477...478---479name:            vstore_nx32i16480legalized:       true481tracksRegLiveness: true482body:             |483  bb.1 (%ir-block.0):484    liveins: $x10, $v8m8485 486    ; CHECK-LABEL: name: vstore_nx32i16487    ; CHECK: liveins: $x10, $v8m8488    ; CHECK-NEXT: {{  $}}489    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gprb(p0) = COPY $x10490    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vrb(<vscale x 32 x s16>) = COPY $v8m8491    ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 32 x s16>), [[COPY]](p0) :: (store (<vscale x 32 x s16>) into %ir.pa)492    ; CHECK-NEXT: PseudoRET493    %0:_(p0) = COPY $x10494    %1:_(<vscale x 32 x s16>) = COPY $v8m8495    G_STORE %1(<vscale x 32 x s16>), %0(p0) :: (store (<vscale x 32 x s16>) into %ir.pa)496    PseudoRET497 498...499---500name:            vstore_nx1i32501legalized:       true502tracksRegLiveness: true503body:             |504  bb.1 (%ir-block.0):505    liveins: $v8, $x10506 507    ; CHECK-LABEL: name: vstore_nx1i32508    ; CHECK: liveins: $v8, $x10509    ; CHECK-NEXT: {{  $}}510    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gprb(p0) = COPY $x10511    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vrb(<vscale x 1 x s32>) = COPY $v8512    ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 1 x s32>), [[COPY]](p0) :: (store (<vscale x 1 x s32>) into %ir.pa)513    ; CHECK-NEXT: PseudoRET514    %0:_(p0) = COPY $x10515    %1:_(<vscale x 1 x s32>) = COPY $v8516    G_STORE %1(<vscale x 1 x s32>), %0(p0) :: (store (<vscale x 1 x s32>) into %ir.pa)517    PseudoRET518 519...520---521name:            vstore_nx2i32522legalized:       true523tracksRegLiveness: true524body:             |525  bb.1 (%ir-block.0):526    liveins: $v8, $x10527 528    ; CHECK-LABEL: name: vstore_nx2i32529    ; CHECK: liveins: $v8, $x10530    ; CHECK-NEXT: {{  $}}531    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gprb(p0) = COPY $x10532    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vrb(<vscale x 2 x s32>) = COPY $v8533    ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 2 x s32>), [[COPY]](p0) :: (store (<vscale x 2 x s32>) into %ir.pa)534    ; CHECK-NEXT: PseudoRET535    %0:_(p0) = COPY $x10536    %1:_(<vscale x 2 x s32>) = COPY $v8537    G_STORE %1(<vscale x 2 x s32>), %0(p0) :: (store (<vscale x 2 x s32>) into %ir.pa)538    PseudoRET539 540...541---542name:            vstore_nx4i32543legalized:       true544tracksRegLiveness: true545body:             |546  bb.1 (%ir-block.0):547    liveins: $x10, $v8m2548 549    ; CHECK-LABEL: name: vstore_nx4i32550    ; CHECK: liveins: $x10, $v8m2551    ; CHECK-NEXT: {{  $}}552    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gprb(p0) = COPY $x10553    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vrb(<vscale x 4 x s32>) = COPY $v8m2554    ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 4 x s32>), [[COPY]](p0) :: (store (<vscale x 4 x s32>) into %ir.pa)555    ; CHECK-NEXT: PseudoRET556    %0:_(p0) = COPY $x10557    %1:_(<vscale x 4 x s32>) = COPY $v8m2558    G_STORE %1(<vscale x 4 x s32>), %0(p0) :: (store (<vscale x 4 x s32>) into %ir.pa)559    PseudoRET560 561...562---563name:            vstore_nx8i32564legalized:       true565tracksRegLiveness: true566body:             |567  bb.1 (%ir-block.0):568    liveins: $x10, $v8m4569 570    ; CHECK-LABEL: name: vstore_nx8i32571    ; CHECK: liveins: $x10, $v8m4572    ; CHECK-NEXT: {{  $}}573    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gprb(p0) = COPY $x10574    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vrb(<vscale x 8 x s32>) = COPY $v8m4575    ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 8 x s32>), [[COPY]](p0) :: (store (<vscale x 8 x s32>) into %ir.pa)576    ; CHECK-NEXT: PseudoRET577    %0:_(p0) = COPY $x10578    %1:_(<vscale x 8 x s32>) = COPY $v8m4579    G_STORE %1(<vscale x 8 x s32>), %0(p0) :: (store (<vscale x 8 x s32>) into %ir.pa)580    PseudoRET581 582...583---584name:            vstore_nx16i32585legalized:       true586tracksRegLiveness: true587body:             |588  bb.1 (%ir-block.0):589    liveins: $x10, $v8m8590 591    ; CHECK-LABEL: name: vstore_nx16i32592    ; CHECK: liveins: $x10, $v8m8593    ; CHECK-NEXT: {{  $}}594    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gprb(p0) = COPY $x10595    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vrb(<vscale x 16 x s32>) = COPY $v8m8596    ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 16 x s32>), [[COPY]](p0) :: (store (<vscale x 16 x s32>) into %ir.pa)597    ; CHECK-NEXT: PseudoRET598    %0:_(p0) = COPY $x10599    %1:_(<vscale x 16 x s32>) = COPY $v8m8600    G_STORE %1(<vscale x 16 x s32>), %0(p0) :: (store (<vscale x 16 x s32>) into %ir.pa)601    PseudoRET602 603...604---605name:            vstore_nx1i64606legalized:       true607tracksRegLiveness: true608body:             |609  bb.1 (%ir-block.0):610    liveins: $v8, $x10611 612    ; CHECK-LABEL: name: vstore_nx1i64613    ; CHECK: liveins: $v8, $x10614    ; CHECK-NEXT: {{  $}}615    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gprb(p0) = COPY $x10616    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vrb(<vscale x 1 x s64>) = COPY $v8617    ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 1 x s64>), [[COPY]](p0) :: (store (<vscale x 1 x s64>) into %ir.pa)618    ; CHECK-NEXT: PseudoRET619    %0:_(p0) = COPY $x10620    %1:_(<vscale x 1 x s64>) = COPY $v8621    G_STORE %1(<vscale x 1 x s64>), %0(p0) :: (store (<vscale x 1 x s64>) into %ir.pa)622    PseudoRET623 624...625---626name:            vstore_nx2i64627legalized:       true628tracksRegLiveness: true629body:             |630  bb.1 (%ir-block.0):631    liveins: $x10, $v8m2632 633    ; CHECK-LABEL: name: vstore_nx2i64634    ; CHECK: liveins: $x10, $v8m2635    ; CHECK-NEXT: {{  $}}636    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gprb(p0) = COPY $x10637    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vrb(<vscale x 2 x s64>) = COPY $v8m2638    ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 2 x s64>), [[COPY]](p0) :: (store (<vscale x 2 x s64>) into %ir.pa)639    ; CHECK-NEXT: PseudoRET640    %0:_(p0) = COPY $x10641    %1:_(<vscale x 2 x s64>) = COPY $v8m2642    G_STORE %1(<vscale x 2 x s64>), %0(p0) :: (store (<vscale x 2 x s64>) into %ir.pa)643    PseudoRET644 645...646---647name:            vstore_nx4i64648legalized:       true649tracksRegLiveness: true650body:             |651  bb.1 (%ir-block.0):652    liveins: $x10, $v8m4653 654    ; CHECK-LABEL: name: vstore_nx4i64655    ; CHECK: liveins: $x10, $v8m4656    ; CHECK-NEXT: {{  $}}657    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gprb(p0) = COPY $x10658    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vrb(<vscale x 4 x s64>) = COPY $v8m4659    ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 4 x s64>), [[COPY]](p0) :: (store (<vscale x 4 x s64>) into %ir.pa)660    ; CHECK-NEXT: PseudoRET661    %0:_(p0) = COPY $x10662    %1:_(<vscale x 4 x s64>) = COPY $v8m4663    G_STORE %1(<vscale x 4 x s64>), %0(p0) :: (store (<vscale x 4 x s64>) into %ir.pa)664    PseudoRET665 666...667---668name:            vstore_nx8i64669legalized:       true670tracksRegLiveness: true671body:             |672  bb.1 (%ir-block.0):673    liveins: $x10, $v8m8674 675    ; CHECK-LABEL: name: vstore_nx8i64676    ; CHECK: liveins: $x10, $v8m8677    ; CHECK-NEXT: {{  $}}678    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gprb(p0) = COPY $x10679    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vrb(<vscale x 8 x s64>) = COPY $v8m8680    ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 8 x s64>), [[COPY]](p0) :: (store (<vscale x 8 x s64>) into %ir.pa)681    ; CHECK-NEXT: PseudoRET682    %0:_(p0) = COPY $x10683    %1:_(<vscale x 8 x s64>) = COPY $v8m8684    G_STORE %1(<vscale x 8 x s64>), %0(p0) :: (store (<vscale x 8 x s64>) into %ir.pa)685    PseudoRET686 687...688---689name:            vstore_nx16i8_align1690legalized:       true691tracksRegLiveness: true692body:             |693  bb.1 (%ir-block.0):694    liveins: $x10, $v8m2695 696    ; CHECK-LABEL: name: vstore_nx16i8_align1697    ; CHECK: liveins: $x10, $v8m2698    ; CHECK-NEXT: {{  $}}699    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gprb(p0) = COPY $x10700    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vrb(<vscale x 16 x s8>) = COPY $v8m2701    ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 16 x s8>), [[COPY]](p0) :: (store (<vscale x 16 x s8>) into %ir.pa, align 1)702    ; CHECK-NEXT: PseudoRET703    %0:_(p0) = COPY $x10704    %1:_(<vscale x 16 x s8>) = COPY $v8m2705    G_STORE %1(<vscale x 16 x s8>), %0(p0) :: (store (<vscale x 16 x s8>) into %ir.pa, align 1)706    PseudoRET707 708...709---710name:            vstore_nx16i8_align2711legalized:       true712tracksRegLiveness: true713body:             |714  bb.1 (%ir-block.0):715    liveins: $x10, $v8m2716 717    ; CHECK-LABEL: name: vstore_nx16i8_align2718    ; CHECK: liveins: $x10, $v8m2719    ; CHECK-NEXT: {{  $}}720    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gprb(p0) = COPY $x10721    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vrb(<vscale x 16 x s8>) = COPY $v8m2722    ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 16 x s8>), [[COPY]](p0) :: (store (<vscale x 16 x s8>) into %ir.pa, align 2)723    ; CHECK-NEXT: PseudoRET724    %0:_(p0) = COPY $x10725    %1:_(<vscale x 16 x s8>) = COPY $v8m2726    G_STORE %1(<vscale x 16 x s8>), %0(p0) :: (store (<vscale x 16 x s8>) into %ir.pa, align 2)727    PseudoRET728 729...730---731name:            vstore_nx16i8_align16732legalized:       true733tracksRegLiveness: true734body:             |735  bb.1 (%ir-block.0):736    liveins: $x10, $v8m2737 738    ; CHECK-LABEL: name: vstore_nx16i8_align16739    ; CHECK: liveins: $x10, $v8m2740    ; CHECK-NEXT: {{  $}}741    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gprb(p0) = COPY $x10742    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vrb(<vscale x 16 x s8>) = COPY $v8m2743    ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 16 x s8>), [[COPY]](p0) :: (store (<vscale x 16 x s8>) into %ir.pa)744    ; CHECK-NEXT: PseudoRET745    %0:_(p0) = COPY $x10746    %1:_(<vscale x 16 x s8>) = COPY $v8m2747    G_STORE %1(<vscale x 16 x s8>), %0(p0) :: (store (<vscale x 16 x s8>) into %ir.pa)748    PseudoRET749 750...751---752name:            vstore_nx16i8_align64753legalized:       true754tracksRegLiveness: true755body:             |756  bb.1 (%ir-block.0):757    liveins: $x10, $v8m2758 759    ; CHECK-LABEL: name: vstore_nx16i8_align64760    ; CHECK: liveins: $x10, $v8m2761    ; CHECK-NEXT: {{  $}}762    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gprb(p0) = COPY $x10763    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vrb(<vscale x 16 x s8>) = COPY $v8m2764    ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 16 x s8>), [[COPY]](p0) :: (store (<vscale x 16 x s8>) into %ir.pa, align 64)765    ; CHECK-NEXT: PseudoRET766    %0:_(p0) = COPY $x10767    %1:_(<vscale x 16 x s8>) = COPY $v8m2768    G_STORE %1(<vscale x 16 x s8>), %0(p0) :: (store (<vscale x 16 x s8>) into %ir.pa, align 64)769    PseudoRET770 771...772---773name:            vstore_nx4i16_align1774legalized:       true775tracksRegLiveness: true776body:             |777  bb.1 (%ir-block.0):778    liveins: $v8, $x10779 780    ; CHECK-LABEL: name: vstore_nx4i16_align1781    ; CHECK: liveins: $v8, $x10782    ; CHECK-NEXT: {{  $}}783    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gprb(p0) = COPY $x10784    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vrb(<vscale x 4 x s16>) = COPY $v8785    ; CHECK-NEXT: [[BITCAST:%[0-9]+]]:vrb(<vscale x 8 x s8>) = G_BITCAST [[COPY1]](<vscale x 4 x s16>)786    ; CHECK-NEXT: G_STORE [[BITCAST]](<vscale x 8 x s8>), [[COPY]](p0) :: (store (<vscale x 8 x s8>) into %ir.pa, align 1)787    ; CHECK-NEXT: PseudoRET788    %0:_(p0) = COPY $x10789    %1:_(<vscale x 4 x s16>) = COPY $v8790    %2:_(<vscale x 8 x s8>) = G_BITCAST %1(<vscale x 4 x s16>)791    G_STORE %2(<vscale x 8 x s8>), %0(p0) :: (store (<vscale x 8 x s8>) into %ir.pa, align 1)792    PseudoRET793 794...795---796name:            vstore_nx4i16_align2797legalized:       true798tracksRegLiveness: true799body:             |800  bb.1 (%ir-block.0):801    liveins: $v8, $x10802 803    ; CHECK-LABEL: name: vstore_nx4i16_align2804    ; CHECK: liveins: $v8, $x10805    ; CHECK-NEXT: {{  $}}806    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gprb(p0) = COPY $x10807    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vrb(<vscale x 4 x s16>) = COPY $v8808    ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 4 x s16>), [[COPY]](p0) :: (store (<vscale x 4 x s16>) into %ir.pa, align 2)809    ; CHECK-NEXT: PseudoRET810    %0:_(p0) = COPY $x10811    %1:_(<vscale x 4 x s16>) = COPY $v8812    G_STORE %1(<vscale x 4 x s16>), %0(p0) :: (store (<vscale x 4 x s16>) into %ir.pa, align 2)813    PseudoRET814 815...816---817name:            vstore_nx4i16_align4818legalized:       true819tracksRegLiveness: true820body:             |821  bb.1 (%ir-block.0):822    liveins: $v8, $x10823 824    ; CHECK-LABEL: name: vstore_nx4i16_align4825    ; CHECK: liveins: $v8, $x10826    ; CHECK-NEXT: {{  $}}827    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gprb(p0) = COPY $x10828    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vrb(<vscale x 4 x s16>) = COPY $v8829    ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 4 x s16>), [[COPY]](p0) :: (store (<vscale x 4 x s16>) into %ir.pa, align 4)830    ; CHECK-NEXT: PseudoRET831    %0:_(p0) = COPY $x10832    %1:_(<vscale x 4 x s16>) = COPY $v8833    G_STORE %1(<vscale x 4 x s16>), %0(p0) :: (store (<vscale x 4 x s16>) into %ir.pa, align 4)834    PseudoRET835 836...837---838name:            vstore_nx4i16_align8839legalized:       true840tracksRegLiveness: true841body:             |842  bb.1 (%ir-block.0):843    liveins: $v8, $x10844 845    ; CHECK-LABEL: name: vstore_nx4i16_align8846    ; CHECK: liveins: $v8, $x10847    ; CHECK-NEXT: {{  $}}848    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gprb(p0) = COPY $x10849    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vrb(<vscale x 4 x s16>) = COPY $v8850    ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 4 x s16>), [[COPY]](p0) :: (store (<vscale x 4 x s16>) into %ir.pa)851    ; CHECK-NEXT: PseudoRET852    %0:_(p0) = COPY $x10853    %1:_(<vscale x 4 x s16>) = COPY $v8854    G_STORE %1(<vscale x 4 x s16>), %0(p0) :: (store (<vscale x 4 x s16>) into %ir.pa)855    PseudoRET856 857...858---859name:            vstore_nx4i16_align16860legalized:       true861tracksRegLiveness: true862body:             |863  bb.1 (%ir-block.0):864    liveins: $v8, $x10865 866    ; CHECK-LABEL: name: vstore_nx4i16_align16867    ; CHECK: liveins: $v8, $x10868    ; CHECK-NEXT: {{  $}}869    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gprb(p0) = COPY $x10870    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vrb(<vscale x 4 x s16>) = COPY $v8871    ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 4 x s16>), [[COPY]](p0) :: (store (<vscale x 4 x s16>) into %ir.pa, align 16)872    ; CHECK-NEXT: PseudoRET873    %0:_(p0) = COPY $x10874    %1:_(<vscale x 4 x s16>) = COPY $v8875    G_STORE %1(<vscale x 4 x s16>), %0(p0) :: (store (<vscale x 4 x s16>) into %ir.pa, align 16)876    PseudoRET877 878...879---880name:            vstore_nx2i32_align2881legalized:       true882tracksRegLiveness: true883body:             |884  bb.1 (%ir-block.0):885    liveins: $v8, $x10886 887    ; CHECK-LABEL: name: vstore_nx2i32_align2888    ; CHECK: liveins: $v8, $x10889    ; CHECK-NEXT: {{  $}}890    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gprb(p0) = COPY $x10891    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vrb(<vscale x 2 x s32>) = COPY $v8892    ; CHECK-NEXT: [[BITCAST:%[0-9]+]]:vrb(<vscale x 8 x s8>) = G_BITCAST [[COPY1]](<vscale x 2 x s32>)893    ; CHECK-NEXT: G_STORE [[BITCAST]](<vscale x 8 x s8>), [[COPY]](p0) :: (store (<vscale x 8 x s8>) into %ir.pa, align 2)894    ; CHECK-NEXT: PseudoRET895    %0:_(p0) = COPY $x10896    %1:_(<vscale x 2 x s32>) = COPY $v8897    %2:_(<vscale x 8 x s8>) = G_BITCAST %1(<vscale x 2 x s32>)898    G_STORE %2(<vscale x 8 x s8>), %0(p0) :: (store (<vscale x 8 x s8>) into %ir.pa, align 2)899    PseudoRET900 901...902---903name:            vstore_nx2i32_align4904legalized:       true905tracksRegLiveness: true906body:             |907  bb.1 (%ir-block.0):908    liveins: $v8, $x10909 910    ; CHECK-LABEL: name: vstore_nx2i32_align4911    ; CHECK: liveins: $v8, $x10912    ; CHECK-NEXT: {{  $}}913    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gprb(p0) = COPY $x10914    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vrb(<vscale x 2 x s32>) = COPY $v8915    ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 2 x s32>), [[COPY]](p0) :: (store (<vscale x 2 x s32>) into %ir.pa, align 4)916    ; CHECK-NEXT: PseudoRET917    %0:_(p0) = COPY $x10918    %1:_(<vscale x 2 x s32>) = COPY $v8919    G_STORE %1(<vscale x 2 x s32>), %0(p0) :: (store (<vscale x 2 x s32>) into %ir.pa, align 4)920    PseudoRET921 922...923---924name:            vstore_nx2i32_align8925legalized:       true926tracksRegLiveness: true927body:             |928  bb.1 (%ir-block.0):929    liveins: $v8, $x10930 931    ; CHECK-LABEL: name: vstore_nx2i32_align8932    ; CHECK: liveins: $v8, $x10933    ; CHECK-NEXT: {{  $}}934    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gprb(p0) = COPY $x10935    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vrb(<vscale x 2 x s32>) = COPY $v8936    ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 2 x s32>), [[COPY]](p0) :: (store (<vscale x 2 x s32>) into %ir.pa)937    ; CHECK-NEXT: PseudoRET938    %0:_(p0) = COPY $x10939    %1:_(<vscale x 2 x s32>) = COPY $v8940    G_STORE %1(<vscale x 2 x s32>), %0(p0) :: (store (<vscale x 2 x s32>) into %ir.pa)941    PseudoRET942 943...944---945name:            vstore_nx2i32_align16946legalized:       true947tracksRegLiveness: true948body:             |949  bb.1 (%ir-block.0):950    liveins: $v8, $x10951 952    ; CHECK-LABEL: name: vstore_nx2i32_align16953    ; CHECK: liveins: $v8, $x10954    ; CHECK-NEXT: {{  $}}955    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gprb(p0) = COPY $x10956    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vrb(<vscale x 2 x s32>) = COPY $v8957    ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 2 x s32>), [[COPY]](p0) :: (store (<vscale x 2 x s32>) into %ir.pa, align 16)958    ; CHECK-NEXT: PseudoRET959    %0:_(p0) = COPY $x10960    %1:_(<vscale x 2 x s32>) = COPY $v8961    G_STORE %1(<vscale x 2 x s32>), %0(p0) :: (store (<vscale x 2 x s32>) into %ir.pa, align 16)962    PseudoRET963 964...965---966name:            vstore_nx2i32_align256967legalized:       true968tracksRegLiveness: true969body:             |970  bb.1 (%ir-block.0):971    liveins: $v8, $x10972 973    ; CHECK-LABEL: name: vstore_nx2i32_align256974    ; CHECK: liveins: $v8, $x10975    ; CHECK-NEXT: {{  $}}976    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gprb(p0) = COPY $x10977    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vrb(<vscale x 2 x s32>) = COPY $v8978    ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 2 x s32>), [[COPY]](p0) :: (store (<vscale x 2 x s32>) into %ir.pa, align 256)979    ; CHECK-NEXT: PseudoRET980    %0:_(p0) = COPY $x10981    %1:_(<vscale x 2 x s32>) = COPY $v8982    G_STORE %1(<vscale x 2 x s32>), %0(p0) :: (store (<vscale x 2 x s32>) into %ir.pa, align 256)983    PseudoRET984 985...986---987name:            vstore_nx2i64_align4988legalized:       true989tracksRegLiveness: true990body:             |991  bb.1 (%ir-block.0):992    liveins: $x10, $v8m2993 994    ; CHECK-LABEL: name: vstore_nx2i64_align4995    ; CHECK: liveins: $x10, $v8m2996    ; CHECK-NEXT: {{  $}}997    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gprb(p0) = COPY $x10998    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vrb(<vscale x 2 x s64>) = COPY $v8m2999    ; CHECK-NEXT: [[BITCAST:%[0-9]+]]:vrb(<vscale x 16 x s8>) = G_BITCAST [[COPY1]](<vscale x 2 x s64>)1000    ; CHECK-NEXT: G_STORE [[BITCAST]](<vscale x 16 x s8>), [[COPY]](p0) :: (store (<vscale x 16 x s8>) into %ir.pa, align 4)1001    ; CHECK-NEXT: PseudoRET1002    %0:_(p0) = COPY $x101003    %1:_(<vscale x 2 x s64>) = COPY $v8m21004    %2:_(<vscale x 16 x s8>) = G_BITCAST %1(<vscale x 2 x s64>)1005    G_STORE %2(<vscale x 16 x s8>), %0(p0) :: (store (<vscale x 16 x s8>) into %ir.pa, align 4)1006    PseudoRET1007 1008...1009---1010name:            vstore_nx2i64_align81011legalized:       true1012tracksRegLiveness: true1013body:             |1014  bb.1 (%ir-block.0):1015    liveins: $x10, $v8m21016 1017    ; CHECK-LABEL: name: vstore_nx2i64_align81018    ; CHECK: liveins: $x10, $v8m21019    ; CHECK-NEXT: {{  $}}1020    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gprb(p0) = COPY $x101021    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vrb(<vscale x 2 x s64>) = COPY $v8m21022    ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 2 x s64>), [[COPY]](p0) :: (store (<vscale x 2 x s64>) into %ir.pa, align 8)1023    ; CHECK-NEXT: PseudoRET1024    %0:_(p0) = COPY $x101025    %1:_(<vscale x 2 x s64>) = COPY $v8m21026    G_STORE %1(<vscale x 2 x s64>), %0(p0) :: (store (<vscale x 2 x s64>) into %ir.pa, align 8)1027    PseudoRET1028 1029...1030---1031name:            vstore_nx2i64_align161032legalized:       true1033tracksRegLiveness: true1034body:             |1035  bb.1 (%ir-block.0):1036    liveins: $x10, $v8m21037 1038    ; CHECK-LABEL: name: vstore_nx2i64_align161039    ; CHECK: liveins: $x10, $v8m21040    ; CHECK-NEXT: {{  $}}1041    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gprb(p0) = COPY $x101042    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vrb(<vscale x 2 x s64>) = COPY $v8m21043    ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 2 x s64>), [[COPY]](p0) :: (store (<vscale x 2 x s64>) into %ir.pa)1044    ; CHECK-NEXT: PseudoRET1045    %0:_(p0) = COPY $x101046    %1:_(<vscale x 2 x s64>) = COPY $v8m21047    G_STORE %1(<vscale x 2 x s64>), %0(p0) :: (store (<vscale x 2 x s64>) into %ir.pa)1048    PseudoRET1049 1050...1051---1052name:            vstore_nx2i64_align321053legalized:       true1054tracksRegLiveness: true1055body:             |1056  bb.1 (%ir-block.0):1057    liveins: $x10, $v8m21058 1059    ; CHECK-LABEL: name: vstore_nx2i64_align321060    ; CHECK: liveins: $x10, $v8m21061    ; CHECK-NEXT: {{  $}}1062    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gprb(p0) = COPY $x101063    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vrb(<vscale x 2 x s64>) = COPY $v8m21064    ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 2 x s64>), [[COPY]](p0) :: (store (<vscale x 2 x s64>) into %ir.pa, align 32)1065    ; CHECK-NEXT: PseudoRET1066    %0:_(p0) = COPY $x101067    %1:_(<vscale x 2 x s64>) = COPY $v8m21068    G_STORE %1(<vscale x 2 x s64>), %0(p0) :: (store (<vscale x 2 x s64>) into %ir.pa, align 32)1069    PseudoRET1070 1071...1072---1073name:            vstore_nx1ptr1074legalized:       true1075tracksRegLiveness: true1076body:             |1077  bb.1 (%ir-block.0):1078    liveins: $v8, $x101079 1080    ; CHECK-LABEL: name: vstore_nx1ptr1081    ; CHECK: liveins: $v8, $x101082    ; CHECK-NEXT: {{  $}}1083    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gprb(p0) = COPY $x101084    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vrb(<vscale x 1 x p0>) = COPY $v81085    ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 1 x p0>), [[COPY]](p0) :: (store (<vscale x 1 x p0>) into %ir.pa)1086    ; CHECK-NEXT: PseudoRET1087    %0:_(p0) = COPY $x101088    %1:_(<vscale x 1 x p0>) = COPY $v81089    G_STORE %1(<vscale x 1 x p0>), %0(p0) :: (store (<vscale x 1 x p0>) into %ir.pa)1090    PseudoRET1091 1092...1093---1094name:            vstore_nx2ptr1095legalized:       true1096tracksRegLiveness: true1097body:             |1098  bb.1 (%ir-block.0):1099    liveins: $v8, $x101100 1101    ; CHECK-LABEL: name: vstore_nx2ptr1102    ; CHECK: liveins: $v8, $x101103    ; CHECK-NEXT: {{  $}}1104    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gprb(p0) = COPY $x101105    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vrb(<vscale x 2 x p0>) = COPY $v81106    ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 2 x p0>), [[COPY]](p0) :: (store (<vscale x 2 x p0>) into %ir.pa)1107    ; CHECK-NEXT: PseudoRET1108    %0:_(p0) = COPY $x101109    %1:_(<vscale x 2 x p0>) = COPY $v81110    G_STORE %1(<vscale x 2 x p0>), %0(p0) :: (store (<vscale x 2 x p0>) into %ir.pa)1111    PseudoRET1112 1113...1114---1115name:            vstore_nx8ptr1116legalized:       true1117tracksRegLiveness: true1118body:             |1119  bb.1 (%ir-block.0):1120    liveins: $x10, $v8m41121 1122    ; CHECK-LABEL: name: vstore_nx8ptr1123    ; CHECK: liveins: $x10, $v8m41124    ; CHECK-NEXT: {{  $}}1125    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gprb(p0) = COPY $x101126    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:vrb(<vscale x 8 x p0>) = COPY $v8m41127    ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 8 x p0>), [[COPY]](p0) :: (store (<vscale x 8 x p0>) into %ir.pa)1128    ; CHECK-NEXT: PseudoRET1129    %0:_(p0) = COPY $x101130    %1:_(<vscale x 8 x p0>) = COPY $v8m41131    G_STORE %1(<vscale x 8 x p0>), %0(p0) :: (store (<vscale x 8 x p0>) into %ir.pa)1132    PseudoRET1133 1134...1135