[X86] IsNOT - don't fold not(pcmpgt(C1, C2)) -> pcmpgt(C2, C1 - 1)
[llvm-project.git] / llvm / test / CodeGen / RISCV / GlobalISel / legalizer / rvv / legalize-store.mir
blob4bb4eb5fa0c72b3c5c0c8a4765f6a41dc11f1a87
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -mtriple=riscv32 -mattr=+v -run-pass=legalizer %s -o - | FileCheck %s
3 # RUN: llc -mtriple=riscv64 -mattr=+v -run-pass=legalizer %s -o - | FileCheck %s
4 --- |
6   define void @vstore_nx1i8(ptr %pa, <vscale x 1 x i8> %b) #0 {
7     store <vscale x 1 x i8> %b, ptr %pa, align 1
8     ret void
9   }
11   define void @vstore_nx2i8(ptr %pa, <vscale x 2 x i8> %b) #0 {
12     store <vscale x 2 x i8> %b, ptr %pa, align 2
13     ret void
14   }
16   define void @vstore_nx4i8(ptr %pa, <vscale x 4 x i8> %b) #0 {
17     store <vscale x 4 x i8> %b, ptr %pa, align 4
18     ret void
19   }
21   define void @vstore_nx8i8(ptr %pa, <vscale x 8 x i8> %b) #0 {
22     store <vscale x 8 x i8> %b, ptr %pa, align 8
23     ret void
24   }
26   define void @vstore_nx16i8(ptr %pa, <vscale x 16 x i8> %b) #0 {
27     store <vscale x 16 x i8> %b, ptr %pa, align 16
28     ret void
29   }
31   define void @vstore_nx32i8(ptr %pa, <vscale x 32 x i8> %b) #0 {
32     store <vscale x 32 x i8> %b, ptr %pa, align 32
33     ret void
34   }
36   define void @vstore_nx64i8(ptr %pa, <vscale x 64 x i8> %b) #0 {
37     store <vscale x 64 x i8> %b, ptr %pa, align 64
38     ret void
39   }
41   define void @vstore_nx1i16(ptr %pa, <vscale x 1 x i16> %b) #0 {
42     store <vscale x 1 x i16> %b, ptr %pa, align 2
43     ret void
44   }
46   define void @vstore_nx2i16(ptr %pa, <vscale x 2 x i16> %b) #0 {
47     store <vscale x 2 x i16> %b, ptr %pa, align 4
48     ret void
49   }
51   define void @vstore_nx4i16(ptr %pa, <vscale x 4 x i16> %b) #0 {
52     store <vscale x 4 x i16> %b, ptr %pa, align 8
53     ret void
54   }
56   define void @vstore_nx8i16(ptr %pa, <vscale x 8 x i16> %b) #0 {
57     store <vscale x 8 x i16> %b, ptr %pa, align 16
58     ret void
59   }
61   define void @vstore_nx16i16(ptr %pa, <vscale x 16 x i16> %b) #0 {
62     store <vscale x 16 x i16> %b, ptr %pa, align 32
63     ret void
64   }
66   define void @vstore_nx32i16(ptr %pa, <vscale x 32 x i16> %b) #0 {
67     store <vscale x 32 x i16> %b, ptr %pa, align 64
68     ret void
69   }
71   define void @vstore_nx1i32(ptr %pa, <vscale x 1 x i32> %b) #0 {
72     store <vscale x 1 x i32> %b, ptr %pa, align 4
73     ret void
74   }
76   define void @vstore_nx2i32(ptr %pa, <vscale x 2 x i32> %b) #0 {
77     store <vscale x 2 x i32> %b, ptr %pa, align 8
78     ret void
79   }
81   define void @vstore_nx4i32(ptr %pa, <vscale x 4 x i32> %b) #0 {
82     store <vscale x 4 x i32> %b, ptr %pa, align 16
83     ret void
84   }
86   define void @vstore_nx8i32(ptr %pa, <vscale x 8 x i32> %b) #0 {
87     store <vscale x 8 x i32> %b, ptr %pa, align 32
88     ret void
89   }
91   define void @vstore_nx16i32(ptr %pa, <vscale x 16 x i32> %b) #0 {
92     store <vscale x 16 x i32> %b, ptr %pa, align 64
93     ret void
94   }
96   define void @vstore_nx1i64(ptr %pa, <vscale x 1 x i64> %b) #0 {
97     store <vscale x 1 x i64> %b, ptr %pa, align 8
98     ret void
99   }
101   define void @vstore_nx2i64(ptr %pa, <vscale x 2 x i64> %b) #0 {
102     store <vscale x 2 x i64> %b, ptr %pa, align 16
103     ret void
104   }
106   define void @vstore_nx4i64(ptr %pa, <vscale x 4 x i64> %b) #0 {
107     store <vscale x 4 x i64> %b, ptr %pa, align 32
108     ret void
109   }
111   define void @vstore_nx8i64(ptr %pa, <vscale x 8 x i64> %b) #0 {
112     store <vscale x 8 x i64> %b, ptr %pa, align 64
113     ret void
114   }
116   define void @vstore_nx16i8_align1(ptr %pa, <vscale x 16 x i8> %b) #0 {
117     store <vscale x 16 x i8> %b, ptr %pa, align 1
118     ret void
119   }
121   define void @vstore_nx16i8_align2(ptr %pa, <vscale x 16 x i8> %b) #0 {
122     store <vscale x 16 x i8> %b, ptr %pa, align 2
123     ret void
124   }
126   define void @vstore_nx16i8_align16(ptr %pa, <vscale x 16 x i8> %b) #0 {
127     store <vscale x 16 x i8> %b, ptr %pa, align 16
128     ret void
129   }
131   define void @vstore_nx16i8_align64(ptr %pa, <vscale x 16 x i8> %b) #0 {
132     store <vscale x 16 x i8> %b, ptr %pa, align 64
133     ret void
134   }
136   define void @vstore_nx4i16_align1(ptr %pa, <vscale x 4 x i16> %b) #0 {
137     store <vscale x 4 x i16> %b, ptr %pa, align 1
138     ret void
139   }
141   define void @vstore_nx4i16_align2(ptr %pa, <vscale x 4 x i16> %b) #0 {
142     store <vscale x 4 x i16> %b, ptr %pa, align 2
143     ret void
144   }
146   define void @vstore_nx4i16_align4(ptr %pa, <vscale x 4 x i16> %b) #0 {
147     store <vscale x 4 x i16> %b, ptr %pa, align 4
148     ret void
149   }
151   define void @vstore_nx4i16_align8(ptr %pa, <vscale x 4 x i16> %b) #0 {
152     store <vscale x 4 x i16> %b, ptr %pa, align 8
153     ret void
154   }
156   define void @vstore_nx4i16_align16(ptr %pa, <vscale x 4 x i16> %b) #0 {
157     store <vscale x 4 x i16> %b, ptr %pa, align 16
158     ret void
159   }
161   define void @vstore_nx2i32_align2(ptr %pa, <vscale x 2 x i32> %b) #0 {
162     store <vscale x 2 x i32> %b, ptr %pa, align 2
163     ret void
164   }
166   define void @vstore_nx2i32_align4(ptr %pa, <vscale x 2 x i32> %b) #0 {
167     store <vscale x 2 x i32> %b, ptr %pa, align 4
168     ret void
169   }
171   define void @vstore_nx2i32_align8(ptr %pa, <vscale x 2 x i32> %b) #0 {
172     store <vscale x 2 x i32> %b, ptr %pa, align 8
173     ret void
174   }
176   define void @vstore_nx2i32_align16(ptr %pa, <vscale x 2 x i32> %b) #0 {
177     store <vscale x 2 x i32> %b, ptr %pa, align 16
178     ret void
179   }
181   define void @vstore_nx2i32_align256(ptr %pa, <vscale x 2 x i32> %b) #0 {
182     store <vscale x 2 x i32> %b, ptr %pa, align 256
183     ret void
184   }
186   define void @vstore_nx2i64_align4(ptr %pa, <vscale x 2 x i64> %b) #0 {
187     store <vscale x 2 x i64> %b, ptr %pa, align 4
188     ret void
189   }
191   define void @vstore_nx2i64_align8(ptr %pa, <vscale x 2 x i64> %b) #0 {
192     store <vscale x 2 x i64> %b, ptr %pa, align 8
193     ret void
194   }
196   define void @vstore_nx2i64_align16(ptr %pa, <vscale x 2 x i64> %b) #0 {
197     store <vscale x 2 x i64> %b, ptr %pa, align 16
198     ret void
199   }
201   define void @vstore_nx2i64_align32(ptr %pa, <vscale x 2 x i64> %b) #0 {
202     store <vscale x 2 x i64> %b, ptr %pa, align 32
203     ret void
204   }
206   attributes #0 = { "target-features"="+v" }
210 name:            vstore_nx1i8
211 body:             |
212   bb.1 (%ir-block.0):
213     liveins: $v8, $x10
215     ; CHECK-LABEL: name: vstore_nx1i8
216     ; CHECK: liveins: $v8, $x10
217     ; CHECK-NEXT: {{  $}}
218     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10
219     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<vscale x 1 x s8>) = COPY $v8
220     ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 1 x s8>), [[COPY]](p0) :: (store (<vscale x 1 x s8>) into %ir.pa)
221     ; CHECK-NEXT: PseudoRET
222     %0:_(p0) = COPY $x10
223     %1:_(<vscale x 1 x s8>) = COPY $v8
224     G_STORE %1(<vscale x 1 x s8>), %0(p0) :: (store (<vscale x 1 x s8>) into %ir.pa)
225     PseudoRET
229 name:            vstore_nx2i8
230 body:             |
231   bb.1 (%ir-block.0):
232     liveins: $v8, $x10
234     ; CHECK-LABEL: name: vstore_nx2i8
235     ; CHECK: liveins: $v8, $x10
236     ; CHECK-NEXT: {{  $}}
237     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10
238     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<vscale x 2 x s8>) = COPY $v8
239     ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 2 x s8>), [[COPY]](p0) :: (store (<vscale x 2 x s8>) into %ir.pa)
240     ; CHECK-NEXT: PseudoRET
241     %0:_(p0) = COPY $x10
242     %1:_(<vscale x 2 x s8>) = COPY $v8
243     G_STORE %1(<vscale x 2 x s8>), %0(p0) :: (store (<vscale x 2 x s8>) into %ir.pa)
244     PseudoRET
248 name:            vstore_nx4i8
249 body:             |
250   bb.1 (%ir-block.0):
251     liveins: $v8, $x10
253     ; CHECK-LABEL: name: vstore_nx4i8
254     ; CHECK: liveins: $v8, $x10
255     ; CHECK-NEXT: {{  $}}
256     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10
257     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<vscale x 4 x s8>) = COPY $v8
258     ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 4 x s8>), [[COPY]](p0) :: (store (<vscale x 4 x s8>) into %ir.pa)
259     ; CHECK-NEXT: PseudoRET
260     %0:_(p0) = COPY $x10
261     %1:_(<vscale x 4 x s8>) = COPY $v8
262     G_STORE %1(<vscale x 4 x s8>), %0(p0) :: (store (<vscale x 4 x s8>) into %ir.pa)
263     PseudoRET
267 name:            vstore_nx8i8
268 body:             |
269   bb.1 (%ir-block.0):
270     liveins: $v8, $x10
272     ; CHECK-LABEL: name: vstore_nx8i8
273     ; CHECK: liveins: $v8, $x10
274     ; CHECK-NEXT: {{  $}}
275     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10
276     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<vscale x 8 x s8>) = COPY $v8
277     ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 8 x s8>), [[COPY]](p0) :: (store (<vscale x 8 x s8>) into %ir.pa)
278     ; CHECK-NEXT: PseudoRET
279     %0:_(p0) = COPY $x10
280     %1:_(<vscale x 8 x s8>) = COPY $v8
281     G_STORE %1(<vscale x 8 x s8>), %0(p0) :: (store (<vscale x 8 x s8>) into %ir.pa)
282     PseudoRET
286 name:            vstore_nx16i8
287 body:             |
288   bb.1 (%ir-block.0):
289     liveins: $x10, $v8m2
291     ; CHECK-LABEL: name: vstore_nx16i8
292     ; CHECK: liveins: $x10, $v8m2
293     ; CHECK-NEXT: {{  $}}
294     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10
295     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<vscale x 16 x s8>) = COPY $v8m2
296     ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 16 x s8>), [[COPY]](p0) :: (store (<vscale x 16 x s8>) into %ir.pa)
297     ; CHECK-NEXT: PseudoRET
298     %0:_(p0) = COPY $x10
299     %1:_(<vscale x 16 x s8>) = COPY $v8m2
300     G_STORE %1(<vscale x 16 x s8>), %0(p0) :: (store (<vscale x 16 x s8>) into %ir.pa)
301     PseudoRET
305 name:            vstore_nx32i8
306 body:             |
307   bb.1 (%ir-block.0):
308     liveins: $x10, $v8m4
310     ; CHECK-LABEL: name: vstore_nx32i8
311     ; CHECK: liveins: $x10, $v8m4
312     ; CHECK-NEXT: {{  $}}
313     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10
314     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<vscale x 32 x s8>) = COPY $v8m4
315     ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 32 x s8>), [[COPY]](p0) :: (store (<vscale x 32 x s8>) into %ir.pa)
316     ; CHECK-NEXT: PseudoRET
317     %0:_(p0) = COPY $x10
318     %1:_(<vscale x 32 x s8>) = COPY $v8m4
319     G_STORE %1(<vscale x 32 x s8>), %0(p0) :: (store (<vscale x 32 x s8>) into %ir.pa)
320     PseudoRET
324 name:            vstore_nx64i8
325 body:             |
326   bb.1 (%ir-block.0):
327     liveins: $x10, $v8m8
329     ; CHECK-LABEL: name: vstore_nx64i8
330     ; CHECK: liveins: $x10, $v8m8
331     ; CHECK-NEXT: {{  $}}
332     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10
333     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<vscale x 64 x s8>) = COPY $v8m8
334     ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 64 x s8>), [[COPY]](p0) :: (store (<vscale x 64 x s8>) into %ir.pa)
335     ; CHECK-NEXT: PseudoRET
336     %0:_(p0) = COPY $x10
337     %1:_(<vscale x 64 x s8>) = COPY $v8m8
338     G_STORE %1(<vscale x 64 x s8>), %0(p0) :: (store (<vscale x 64 x s8>) into %ir.pa)
339     PseudoRET
343 name:            vstore_nx1i16
344 body:             |
345   bb.1 (%ir-block.0):
346     liveins: $v8, $x10
348     ; CHECK-LABEL: name: vstore_nx1i16
349     ; CHECK: liveins: $v8, $x10
350     ; CHECK-NEXT: {{  $}}
351     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10
352     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<vscale x 1 x s16>) = COPY $v8
353     ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 1 x s16>), [[COPY]](p0) :: (store (<vscale x 1 x s16>) into %ir.pa)
354     ; CHECK-NEXT: PseudoRET
355     %0:_(p0) = COPY $x10
356     %1:_(<vscale x 1 x s16>) = COPY $v8
357     G_STORE %1(<vscale x 1 x s16>), %0(p0) :: (store (<vscale x 1 x s16>) into %ir.pa)
358     PseudoRET
362 name:            vstore_nx2i16
363 body:             |
364   bb.1 (%ir-block.0):
365     liveins: $v8, $x10
367     ; CHECK-LABEL: name: vstore_nx2i16
368     ; CHECK: liveins: $v8, $x10
369     ; CHECK-NEXT: {{  $}}
370     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10
371     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<vscale x 2 x s16>) = COPY $v8
372     ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 2 x s16>), [[COPY]](p0) :: (store (<vscale x 2 x s16>) into %ir.pa)
373     ; CHECK-NEXT: PseudoRET
374     %0:_(p0) = COPY $x10
375     %1:_(<vscale x 2 x s16>) = COPY $v8
376     G_STORE %1(<vscale x 2 x s16>), %0(p0) :: (store (<vscale x 2 x s16>) into %ir.pa)
377     PseudoRET
381 name:            vstore_nx4i16
382 body:             |
383   bb.1 (%ir-block.0):
384     liveins: $v8, $x10
386     ; CHECK-LABEL: name: vstore_nx4i16
387     ; CHECK: liveins: $v8, $x10
388     ; CHECK-NEXT: {{  $}}
389     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10
390     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<vscale x 4 x s16>) = COPY $v8
391     ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 4 x s16>), [[COPY]](p0) :: (store (<vscale x 4 x s16>) into %ir.pa)
392     ; CHECK-NEXT: PseudoRET
393     %0:_(p0) = COPY $x10
394     %1:_(<vscale x 4 x s16>) = COPY $v8
395     G_STORE %1(<vscale x 4 x s16>), %0(p0) :: (store (<vscale x 4 x s16>) into %ir.pa)
396     PseudoRET
400 name:            vstore_nx8i16
401 body:             |
402   bb.1 (%ir-block.0):
403     liveins: $x10, $v8m2
405     ; CHECK-LABEL: name: vstore_nx8i16
406     ; CHECK: liveins: $x10, $v8m2
407     ; CHECK-NEXT: {{  $}}
408     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10
409     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<vscale x 8 x s16>) = COPY $v8m2
410     ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 8 x s16>), [[COPY]](p0) :: (store (<vscale x 8 x s16>) into %ir.pa)
411     ; CHECK-NEXT: PseudoRET
412     %0:_(p0) = COPY $x10
413     %1:_(<vscale x 8 x s16>) = COPY $v8m2
414     G_STORE %1(<vscale x 8 x s16>), %0(p0) :: (store (<vscale x 8 x s16>) into %ir.pa)
415     PseudoRET
419 name:            vstore_nx16i16
420 body:             |
421   bb.1 (%ir-block.0):
422     liveins: $x10, $v8m4
424     ; CHECK-LABEL: name: vstore_nx16i16
425     ; CHECK: liveins: $x10, $v8m4
426     ; CHECK-NEXT: {{  $}}
427     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10
428     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<vscale x 16 x s16>) = COPY $v8m4
429     ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 16 x s16>), [[COPY]](p0) :: (store (<vscale x 16 x s16>) into %ir.pa)
430     ; CHECK-NEXT: PseudoRET
431     %0:_(p0) = COPY $x10
432     %1:_(<vscale x 16 x s16>) = COPY $v8m4
433     G_STORE %1(<vscale x 16 x s16>), %0(p0) :: (store (<vscale x 16 x s16>) into %ir.pa)
434     PseudoRET
438 name:            vstore_nx32i16
439 body:             |
440   bb.1 (%ir-block.0):
441     liveins: $x10, $v8m8
443     ; CHECK-LABEL: name: vstore_nx32i16
444     ; CHECK: liveins: $x10, $v8m8
445     ; CHECK-NEXT: {{  $}}
446     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10
447     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<vscale x 32 x s16>) = COPY $v8m8
448     ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 32 x s16>), [[COPY]](p0) :: (store (<vscale x 32 x s16>) into %ir.pa)
449     ; CHECK-NEXT: PseudoRET
450     %0:_(p0) = COPY $x10
451     %1:_(<vscale x 32 x s16>) = COPY $v8m8
452     G_STORE %1(<vscale x 32 x s16>), %0(p0) :: (store (<vscale x 32 x s16>) into %ir.pa)
453     PseudoRET
457 name:            vstore_nx1i32
458 body:             |
459   bb.1 (%ir-block.0):
460     liveins: $v8, $x10
462     ; CHECK-LABEL: name: vstore_nx1i32
463     ; CHECK: liveins: $v8, $x10
464     ; CHECK-NEXT: {{  $}}
465     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10
466     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<vscale x 1 x s32>) = COPY $v8
467     ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 1 x s32>), [[COPY]](p0) :: (store (<vscale x 1 x s32>) into %ir.pa)
468     ; CHECK-NEXT: PseudoRET
469     %0:_(p0) = COPY $x10
470     %1:_(<vscale x 1 x s32>) = COPY $v8
471     G_STORE %1(<vscale x 1 x s32>), %0(p0) :: (store (<vscale x 1 x s32>) into %ir.pa)
472     PseudoRET
476 name:            vstore_nx2i32
477 body:             |
478   bb.1 (%ir-block.0):
479     liveins: $v8, $x10
481     ; CHECK-LABEL: name: vstore_nx2i32
482     ; CHECK: liveins: $v8, $x10
483     ; CHECK-NEXT: {{  $}}
484     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10
485     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<vscale x 2 x s32>) = COPY $v8
486     ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 2 x s32>), [[COPY]](p0) :: (store (<vscale x 2 x s32>) into %ir.pa)
487     ; CHECK-NEXT: PseudoRET
488     %0:_(p0) = COPY $x10
489     %1:_(<vscale x 2 x s32>) = COPY $v8
490     G_STORE %1(<vscale x 2 x s32>), %0(p0) :: (store (<vscale x 2 x s32>) into %ir.pa)
491     PseudoRET
495 name:            vstore_nx4i32
496 body:             |
497   bb.1 (%ir-block.0):
498     liveins: $x10, $v8m2
500     ; CHECK-LABEL: name: vstore_nx4i32
501     ; CHECK: liveins: $x10, $v8m2
502     ; CHECK-NEXT: {{  $}}
503     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10
504     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<vscale x 4 x s32>) = COPY $v8m2
505     ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 4 x s32>), [[COPY]](p0) :: (store (<vscale x 4 x s32>) into %ir.pa)
506     ; CHECK-NEXT: PseudoRET
507     %0:_(p0) = COPY $x10
508     %1:_(<vscale x 4 x s32>) = COPY $v8m2
509     G_STORE %1(<vscale x 4 x s32>), %0(p0) :: (store (<vscale x 4 x s32>) into %ir.pa)
510     PseudoRET
514 name:            vstore_nx8i32
515 body:             |
516   bb.1 (%ir-block.0):
517     liveins: $x10, $v8m4
519     ; CHECK-LABEL: name: vstore_nx8i32
520     ; CHECK: liveins: $x10, $v8m4
521     ; CHECK-NEXT: {{  $}}
522     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10
523     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<vscale x 8 x s32>) = COPY $v8m4
524     ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 8 x s32>), [[COPY]](p0) :: (store (<vscale x 8 x s32>) into %ir.pa)
525     ; CHECK-NEXT: PseudoRET
526     %0:_(p0) = COPY $x10
527     %1:_(<vscale x 8 x s32>) = COPY $v8m4
528     G_STORE %1(<vscale x 8 x s32>), %0(p0) :: (store (<vscale x 8 x s32>) into %ir.pa)
529     PseudoRET
533 name:            vstore_nx16i32
534 body:             |
535   bb.1 (%ir-block.0):
536     liveins: $x10, $v8m8
538     ; CHECK-LABEL: name: vstore_nx16i32
539     ; CHECK: liveins: $x10, $v8m8
540     ; CHECK-NEXT: {{  $}}
541     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10
542     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<vscale x 16 x s32>) = COPY $v8m8
543     ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 16 x s32>), [[COPY]](p0) :: (store (<vscale x 16 x s32>) into %ir.pa)
544     ; CHECK-NEXT: PseudoRET
545     %0:_(p0) = COPY $x10
546     %1:_(<vscale x 16 x s32>) = COPY $v8m8
547     G_STORE %1(<vscale x 16 x s32>), %0(p0) :: (store (<vscale x 16 x s32>) into %ir.pa)
548     PseudoRET
552 name:            vstore_nx1i64
553 body:             |
554   bb.1 (%ir-block.0):
555     liveins: $v8, $x10
557     ; CHECK-LABEL: name: vstore_nx1i64
558     ; CHECK: liveins: $v8, $x10
559     ; CHECK-NEXT: {{  $}}
560     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10
561     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<vscale x 1 x s64>) = COPY $v8
562     ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 1 x s64>), [[COPY]](p0) :: (store (<vscale x 1 x s64>) into %ir.pa)
563     ; CHECK-NEXT: PseudoRET
564     %0:_(p0) = COPY $x10
565     %1:_(<vscale x 1 x s64>) = COPY $v8
566     G_STORE %1(<vscale x 1 x s64>), %0(p0) :: (store (<vscale x 1 x s64>) into %ir.pa)
567     PseudoRET
571 name:            vstore_nx2i64
572 body:             |
573   bb.1 (%ir-block.0):
574     liveins: $x10, $v8m2
576     ; CHECK-LABEL: name: vstore_nx2i64
577     ; CHECK: liveins: $x10, $v8m2
578     ; CHECK-NEXT: {{  $}}
579     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10
580     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<vscale x 2 x s64>) = COPY $v8m2
581     ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 2 x s64>), [[COPY]](p0) :: (store (<vscale x 2 x s64>) into %ir.pa)
582     ; CHECK-NEXT: PseudoRET
583     %0:_(p0) = COPY $x10
584     %1:_(<vscale x 2 x s64>) = COPY $v8m2
585     G_STORE %1(<vscale x 2 x s64>), %0(p0) :: (store (<vscale x 2 x s64>) into %ir.pa)
586     PseudoRET
590 name:            vstore_nx4i64
591 body:             |
592   bb.1 (%ir-block.0):
593     liveins: $x10, $v8m4
595     ; CHECK-LABEL: name: vstore_nx4i64
596     ; CHECK: liveins: $x10, $v8m4
597     ; CHECK-NEXT: {{  $}}
598     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10
599     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<vscale x 4 x s64>) = COPY $v8m4
600     ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 4 x s64>), [[COPY]](p0) :: (store (<vscale x 4 x s64>) into %ir.pa)
601     ; CHECK-NEXT: PseudoRET
602     %0:_(p0) = COPY $x10
603     %1:_(<vscale x 4 x s64>) = COPY $v8m4
604     G_STORE %1(<vscale x 4 x s64>), %0(p0) :: (store (<vscale x 4 x s64>) into %ir.pa)
605     PseudoRET
609 name:            vstore_nx8i64
610 body:             |
611   bb.1 (%ir-block.0):
612     liveins: $x10, $v8m8
614     ; CHECK-LABEL: name: vstore_nx8i64
615     ; CHECK: liveins: $x10, $v8m8
616     ; CHECK-NEXT: {{  $}}
617     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10
618     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<vscale x 8 x s64>) = COPY $v8m8
619     ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 8 x s64>), [[COPY]](p0) :: (store (<vscale x 8 x s64>) into %ir.pa)
620     ; CHECK-NEXT: PseudoRET
621     %0:_(p0) = COPY $x10
622     %1:_(<vscale x 8 x s64>) = COPY $v8m8
623     G_STORE %1(<vscale x 8 x s64>), %0(p0) :: (store (<vscale x 8 x s64>) into %ir.pa)
624     PseudoRET
628 name:            vstore_nx16i8_align1
629 body:             |
630   bb.1 (%ir-block.0):
631     liveins: $x10, $v8m2
633     ; CHECK-LABEL: name: vstore_nx16i8_align1
634     ; CHECK: liveins: $x10, $v8m2
635     ; CHECK-NEXT: {{  $}}
636     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10
637     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<vscale x 16 x s8>) = COPY $v8m2
638     ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 16 x s8>), [[COPY]](p0) :: (store (<vscale x 16 x s8>) into %ir.pa, align 1)
639     ; CHECK-NEXT: PseudoRET
640     %0:_(p0) = COPY $x10
641     %1:_(<vscale x 16 x s8>) = COPY $v8m2
642     G_STORE %1(<vscale x 16 x s8>), %0(p0) :: (store (<vscale x 16 x s8>) into %ir.pa, align 1)
643     PseudoRET
647 name:            vstore_nx16i8_align2
648 body:             |
649   bb.1 (%ir-block.0):
650     liveins: $x10, $v8m2
652     ; CHECK-LABEL: name: vstore_nx16i8_align2
653     ; CHECK: liveins: $x10, $v8m2
654     ; CHECK-NEXT: {{  $}}
655     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10
656     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<vscale x 16 x s8>) = COPY $v8m2
657     ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 16 x s8>), [[COPY]](p0) :: (store (<vscale x 16 x s8>) into %ir.pa, align 2)
658     ; CHECK-NEXT: PseudoRET
659     %0:_(p0) = COPY $x10
660     %1:_(<vscale x 16 x s8>) = COPY $v8m2
661     G_STORE %1(<vscale x 16 x s8>), %0(p0) :: (store (<vscale x 16 x s8>) into %ir.pa, align 2)
662     PseudoRET
666 name:            vstore_nx16i8_align16
667 body:             |
668   bb.1 (%ir-block.0):
669     liveins: $x10, $v8m2
671     ; CHECK-LABEL: name: vstore_nx16i8_align16
672     ; CHECK: liveins: $x10, $v8m2
673     ; CHECK-NEXT: {{  $}}
674     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10
675     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<vscale x 16 x s8>) = COPY $v8m2
676     ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 16 x s8>), [[COPY]](p0) :: (store (<vscale x 16 x s8>) into %ir.pa)
677     ; CHECK-NEXT: PseudoRET
678     %0:_(p0) = COPY $x10
679     %1:_(<vscale x 16 x s8>) = COPY $v8m2
680     G_STORE %1(<vscale x 16 x s8>), %0(p0) :: (store (<vscale x 16 x s8>) into %ir.pa)
681     PseudoRET
685 name:            vstore_nx16i8_align64
686 body:             |
687   bb.1 (%ir-block.0):
688     liveins: $x10, $v8m2
690     ; CHECK-LABEL: name: vstore_nx16i8_align64
691     ; CHECK: liveins: $x10, $v8m2
692     ; CHECK-NEXT: {{  $}}
693     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10
694     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<vscale x 16 x s8>) = COPY $v8m2
695     ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 16 x s8>), [[COPY]](p0) :: (store (<vscale x 16 x s8>) into %ir.pa, align 64)
696     ; CHECK-NEXT: PseudoRET
697     %0:_(p0) = COPY $x10
698     %1:_(<vscale x 16 x s8>) = COPY $v8m2
699     G_STORE %1(<vscale x 16 x s8>), %0(p0) :: (store (<vscale x 16 x s8>) into %ir.pa, align 64)
700     PseudoRET
704 name:            vstore_nx4i16_align1
705 body:             |
706   bb.1 (%ir-block.0):
707     liveins: $v8, $x10
709     ; CHECK-LABEL: name: vstore_nx4i16_align1
710     ; CHECK: liveins: $v8, $x10
711     ; CHECK-NEXT: {{  $}}
712     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10
713     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<vscale x 4 x s16>) = COPY $v8
714     ; CHECK-NEXT: [[BITCAST:%[0-9]+]]:_(<vscale x 8 x s8>) = G_BITCAST [[COPY1]](<vscale x 4 x s16>)
715     ; CHECK-NEXT: G_STORE [[BITCAST]](<vscale x 8 x s8>), [[COPY]](p0) :: (store (<vscale x 8 x s8>) into %ir.pa, align 1)
716     ; CHECK-NEXT: PseudoRET
717     %0:_(p0) = COPY $x10
718     %1:_(<vscale x 4 x s16>) = COPY $v8
719     G_STORE %1(<vscale x 4 x s16>), %0(p0) :: (store (<vscale x 4 x s16>) into %ir.pa, align 1)
720     PseudoRET
724 name:            vstore_nx4i16_align2
725 body:             |
726   bb.1 (%ir-block.0):
727     liveins: $v8, $x10
729     ; CHECK-LABEL: name: vstore_nx4i16_align2
730     ; CHECK: liveins: $v8, $x10
731     ; CHECK-NEXT: {{  $}}
732     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10
733     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<vscale x 4 x s16>) = COPY $v8
734     ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 4 x s16>), [[COPY]](p0) :: (store (<vscale x 4 x s16>) into %ir.pa, align 2)
735     ; CHECK-NEXT: PseudoRET
736     %0:_(p0) = COPY $x10
737     %1:_(<vscale x 4 x s16>) = COPY $v8
738     G_STORE %1(<vscale x 4 x s16>), %0(p0) :: (store (<vscale x 4 x s16>) into %ir.pa, align 2)
739     PseudoRET
743 name:            vstore_nx4i16_align4
744 body:             |
745   bb.1 (%ir-block.0):
746     liveins: $v8, $x10
748     ; CHECK-LABEL: name: vstore_nx4i16_align4
749     ; CHECK: liveins: $v8, $x10
750     ; CHECK-NEXT: {{  $}}
751     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10
752     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<vscale x 4 x s16>) = COPY $v8
753     ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 4 x s16>), [[COPY]](p0) :: (store (<vscale x 4 x s16>) into %ir.pa, align 4)
754     ; CHECK-NEXT: PseudoRET
755     %0:_(p0) = COPY $x10
756     %1:_(<vscale x 4 x s16>) = COPY $v8
757     G_STORE %1(<vscale x 4 x s16>), %0(p0) :: (store (<vscale x 4 x s16>) into %ir.pa, align 4)
758     PseudoRET
762 name:            vstore_nx4i16_align8
763 body:             |
764   bb.1 (%ir-block.0):
765     liveins: $v8, $x10
767     ; CHECK-LABEL: name: vstore_nx4i16_align8
768     ; CHECK: liveins: $v8, $x10
769     ; CHECK-NEXT: {{  $}}
770     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10
771     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<vscale x 4 x s16>) = COPY $v8
772     ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 4 x s16>), [[COPY]](p0) :: (store (<vscale x 4 x s16>) into %ir.pa)
773     ; CHECK-NEXT: PseudoRET
774     %0:_(p0) = COPY $x10
775     %1:_(<vscale x 4 x s16>) = COPY $v8
776     G_STORE %1(<vscale x 4 x s16>), %0(p0) :: (store (<vscale x 4 x s16>) into %ir.pa)
777     PseudoRET
781 name:            vstore_nx4i16_align16
782 body:             |
783   bb.1 (%ir-block.0):
784     liveins: $v8, $x10
786     ; CHECK-LABEL: name: vstore_nx4i16_align16
787     ; CHECK: liveins: $v8, $x10
788     ; CHECK-NEXT: {{  $}}
789     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10
790     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<vscale x 4 x s16>) = COPY $v8
791     ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 4 x s16>), [[COPY]](p0) :: (store (<vscale x 4 x s16>) into %ir.pa, align 16)
792     ; CHECK-NEXT: PseudoRET
793     %0:_(p0) = COPY $x10
794     %1:_(<vscale x 4 x s16>) = COPY $v8
795     G_STORE %1(<vscale x 4 x s16>), %0(p0) :: (store (<vscale x 4 x s16>) into %ir.pa, align 16)
796     PseudoRET
800 name:            vstore_nx2i32_align2
801 body:             |
802   bb.1 (%ir-block.0):
803     liveins: $v8, $x10
805     ; CHECK-LABEL: name: vstore_nx2i32_align2
806     ; CHECK: liveins: $v8, $x10
807     ; CHECK-NEXT: {{  $}}
808     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10
809     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<vscale x 2 x s32>) = COPY $v8
810     ; CHECK-NEXT: [[BITCAST:%[0-9]+]]:_(<vscale x 8 x s8>) = G_BITCAST [[COPY1]](<vscale x 2 x s32>)
811     ; CHECK-NEXT: G_STORE [[BITCAST]](<vscale x 8 x s8>), [[COPY]](p0) :: (store (<vscale x 8 x s8>) into %ir.pa, align 2)
812     ; CHECK-NEXT: PseudoRET
813     %0:_(p0) = COPY $x10
814     %1:_(<vscale x 2 x s32>) = COPY $v8
815     G_STORE %1(<vscale x 2 x s32>), %0(p0) :: (store (<vscale x 2 x s32>) into %ir.pa, align 2)
816     PseudoRET
820 name:            vstore_nx2i32_align4
821 body:             |
822   bb.1 (%ir-block.0):
823     liveins: $v8, $x10
825     ; CHECK-LABEL: name: vstore_nx2i32_align4
826     ; CHECK: liveins: $v8, $x10
827     ; CHECK-NEXT: {{  $}}
828     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10
829     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<vscale x 2 x s32>) = COPY $v8
830     ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 2 x s32>), [[COPY]](p0) :: (store (<vscale x 2 x s32>) into %ir.pa, align 4)
831     ; CHECK-NEXT: PseudoRET
832     %0:_(p0) = COPY $x10
833     %1:_(<vscale x 2 x s32>) = COPY $v8
834     G_STORE %1(<vscale x 2 x s32>), %0(p0) :: (store (<vscale x 2 x s32>) into %ir.pa, align 4)
835     PseudoRET
839 name:            vstore_nx2i32_align8
840 body:             |
841   bb.1 (%ir-block.0):
842     liveins: $v8, $x10
844     ; CHECK-LABEL: name: vstore_nx2i32_align8
845     ; CHECK: liveins: $v8, $x10
846     ; CHECK-NEXT: {{  $}}
847     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10
848     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<vscale x 2 x s32>) = COPY $v8
849     ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 2 x s32>), [[COPY]](p0) :: (store (<vscale x 2 x s32>) into %ir.pa)
850     ; CHECK-NEXT: PseudoRET
851     %0:_(p0) = COPY $x10
852     %1:_(<vscale x 2 x s32>) = COPY $v8
853     G_STORE %1(<vscale x 2 x s32>), %0(p0) :: (store (<vscale x 2 x s32>) into %ir.pa)
854     PseudoRET
858 name:            vstore_nx2i32_align16
859 body:             |
860   bb.1 (%ir-block.0):
861     liveins: $v8, $x10
863     ; CHECK-LABEL: name: vstore_nx2i32_align16
864     ; CHECK: liveins: $v8, $x10
865     ; CHECK-NEXT: {{  $}}
866     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10
867     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<vscale x 2 x s32>) = COPY $v8
868     ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 2 x s32>), [[COPY]](p0) :: (store (<vscale x 2 x s32>) into %ir.pa, align 16)
869     ; CHECK-NEXT: PseudoRET
870     %0:_(p0) = COPY $x10
871     %1:_(<vscale x 2 x s32>) = COPY $v8
872     G_STORE %1(<vscale x 2 x s32>), %0(p0) :: (store (<vscale x 2 x s32>) into %ir.pa, align 16)
873     PseudoRET
877 name:            vstore_nx2i32_align256
878 body:             |
879   bb.1 (%ir-block.0):
880     liveins: $v8, $x10
882     ; CHECK-LABEL: name: vstore_nx2i32_align256
883     ; CHECK: liveins: $v8, $x10
884     ; CHECK-NEXT: {{  $}}
885     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10
886     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<vscale x 2 x s32>) = COPY $v8
887     ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 2 x s32>), [[COPY]](p0) :: (store (<vscale x 2 x s32>) into %ir.pa, align 256)
888     ; CHECK-NEXT: PseudoRET
889     %0:_(p0) = COPY $x10
890     %1:_(<vscale x 2 x s32>) = COPY $v8
891     G_STORE %1(<vscale x 2 x s32>), %0(p0) :: (store (<vscale x 2 x s32>) into %ir.pa, align 256)
892     PseudoRET
896 name:            vstore_nx2i64_align4
897 body:             |
898   bb.1 (%ir-block.0):
899     liveins: $x10, $v8m2
901     ; CHECK-LABEL: name: vstore_nx2i64_align4
902     ; CHECK: liveins: $x10, $v8m2
903     ; CHECK-NEXT: {{  $}}
904     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10
905     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<vscale x 2 x s64>) = COPY $v8m2
906     ; CHECK-NEXT: [[BITCAST:%[0-9]+]]:_(<vscale x 16 x s8>) = G_BITCAST [[COPY1]](<vscale x 2 x s64>)
907     ; CHECK-NEXT: G_STORE [[BITCAST]](<vscale x 16 x s8>), [[COPY]](p0) :: (store (<vscale x 16 x s8>) into %ir.pa, align 4)
908     ; CHECK-NEXT: PseudoRET
909     %0:_(p0) = COPY $x10
910     %1:_(<vscale x 2 x s64>) = COPY $v8m2
911     G_STORE %1(<vscale x 2 x s64>), %0(p0) :: (store (<vscale x 2 x s64>) into %ir.pa, align 4)
912     PseudoRET
916 name:            vstore_nx2i64_align8
917 body:             |
918   bb.1 (%ir-block.0):
919     liveins: $x10, $v8m2
921     ; CHECK-LABEL: name: vstore_nx2i64_align8
922     ; CHECK: liveins: $x10, $v8m2
923     ; CHECK-NEXT: {{  $}}
924     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10
925     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<vscale x 2 x s64>) = COPY $v8m2
926     ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 2 x s64>), [[COPY]](p0) :: (store (<vscale x 2 x s64>) into %ir.pa, align 8)
927     ; CHECK-NEXT: PseudoRET
928     %0:_(p0) = COPY $x10
929     %1:_(<vscale x 2 x s64>) = COPY $v8m2
930     G_STORE %1(<vscale x 2 x s64>), %0(p0) :: (store (<vscale x 2 x s64>) into %ir.pa, align 8)
931     PseudoRET
935 name:            vstore_nx2i64_align16
936 body:             |
937   bb.1 (%ir-block.0):
938     liveins: $x10, $v8m2
940     ; CHECK-LABEL: name: vstore_nx2i64_align16
941     ; CHECK: liveins: $x10, $v8m2
942     ; CHECK-NEXT: {{  $}}
943     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10
944     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<vscale x 2 x s64>) = COPY $v8m2
945     ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 2 x s64>), [[COPY]](p0) :: (store (<vscale x 2 x s64>) into %ir.pa)
946     ; CHECK-NEXT: PseudoRET
947     %0:_(p0) = COPY $x10
948     %1:_(<vscale x 2 x s64>) = COPY $v8m2
949     G_STORE %1(<vscale x 2 x s64>), %0(p0) :: (store (<vscale x 2 x s64>) into %ir.pa)
950     PseudoRET
954 name:            vstore_nx2i64_align32
955 body:             |
956   bb.1 (%ir-block.0):
957     liveins: $x10, $v8m2
959     ; CHECK-LABEL: name: vstore_nx2i64_align32
960     ; CHECK: liveins: $x10, $v8m2
961     ; CHECK-NEXT: {{  $}}
962     ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $x10
963     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<vscale x 2 x s64>) = COPY $v8m2
964     ; CHECK-NEXT: G_STORE [[COPY1]](<vscale x 2 x s64>), [[COPY]](p0) :: (store (<vscale x 2 x s64>) into %ir.pa, align 32)
965     ; CHECK-NEXT: PseudoRET
966     %0:_(p0) = COPY $x10
967     %1:_(<vscale x 2 x s64>) = COPY $v8m2
968     G_STORE %1(<vscale x 2 x s64>), %0(p0) :: (store (<vscale x 2 x s64>) into %ir.pa, align 32)
969     PseudoRET