xref: /llvm-project/llvm/test/CodeGen/RISCV/rvv/vse.ll (revision e376f9cb77717146290504da58740c97d9dc7eae)
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2; RUN: sed 's/iXLen/i32/g' %s | llc -mtriple=riscv32 -mattr=+v,+zvfhmin,+zvfbfmin \
3; RUN:   -verify-machineinstrs -target-abi=ilp32d | FileCheck %s
4; RUN: sed 's/iXLen/i64/g' %s | llc -mtriple=riscv64 -mattr=+v,+zvfhmin,+zvfbfmin \
5; RUN:   -verify-machineinstrs -target-abi=lp64d | FileCheck %s
6
7declare void @llvm.riscv.vse.nxv1i64(
8  <vscale x 1 x i64>,
9  ptr,
10  iXLen);
11
12define void @intrinsic_vse_v_nxv1i64_nxv1i64(<vscale x 1 x i64> %0, ptr %1, iXLen %2) nounwind {
13; CHECK-LABEL: intrinsic_vse_v_nxv1i64_nxv1i64:
14; CHECK:       # %bb.0: # %entry
15; CHECK-NEXT:    vsetvli zero, a1, e64, m1, ta, ma
16; CHECK-NEXT:    vse64.v v8, (a0)
17; CHECK-NEXT:    ret
18entry:
19  call void @llvm.riscv.vse.nxv1i64(
20    <vscale x 1 x i64> %0,
21    ptr %1,
22    iXLen %2)
23
24  ret void
25}
26
27declare void @llvm.riscv.vse.mask.nxv1i64(
28  <vscale x 1 x i64>,
29  ptr,
30  <vscale x 1 x i1>,
31  iXLen);
32
33define void @intrinsic_vse_mask_v_nxv1i64_nxv1i64(<vscale x 1 x i64> %0, ptr %1, <vscale x 1 x i1> %2, iXLen %3) nounwind {
34; CHECK-LABEL: intrinsic_vse_mask_v_nxv1i64_nxv1i64:
35; CHECK:       # %bb.0: # %entry
36; CHECK-NEXT:    vsetvli zero, a1, e64, m1, ta, ma
37; CHECK-NEXT:    vse64.v v8, (a0), v0.t
38; CHECK-NEXT:    ret
39entry:
40  call void @llvm.riscv.vse.mask.nxv1i64(
41    <vscale x 1 x i64> %0,
42    ptr %1,
43    <vscale x 1 x i1> %2,
44    iXLen %3)
45
46  ret void
47}
48
49define void @intrinsic_vse_allonesmask_v_nxv1i64_nxv1i64(<vscale x 1 x i64> %0, ptr %1, <vscale x 1 x i1> %2, iXLen %3) nounwind {
50; CHECK-LABEL: intrinsic_vse_allonesmask_v_nxv1i64_nxv1i64:
51; CHECK:       # %bb.0: # %entry
52; CHECK-NEXT:    vsetvli zero, a1, e64, m1, ta, ma
53; CHECK-NEXT:    vse64.v v8, (a0)
54; CHECK-NEXT:    ret
55entry:
56  call void @llvm.riscv.vse.mask.nxv1i64(
57    <vscale x 1 x i64> %0,
58    ptr %1,
59    <vscale x 1 x i1> splat (i1 true),
60    iXLen %3)
61
62  ret void
63}
64
65declare void @llvm.riscv.vse.nxv2i64(
66  <vscale x 2 x i64>,
67  ptr,
68  iXLen);
69
70define void @intrinsic_vse_v_nxv2i64_nxv2i64(<vscale x 2 x i64> %0, ptr %1, iXLen %2) nounwind {
71; CHECK-LABEL: intrinsic_vse_v_nxv2i64_nxv2i64:
72; CHECK:       # %bb.0: # %entry
73; CHECK-NEXT:    vsetvli zero, a1, e64, m2, ta, ma
74; CHECK-NEXT:    vse64.v v8, (a0)
75; CHECK-NEXT:    ret
76entry:
77  call void @llvm.riscv.vse.nxv2i64(
78    <vscale x 2 x i64> %0,
79    ptr %1,
80    iXLen %2)
81
82  ret void
83}
84
85declare void @llvm.riscv.vse.mask.nxv2i64(
86  <vscale x 2 x i64>,
87  ptr,
88  <vscale x 2 x i1>,
89  iXLen);
90
91define void @intrinsic_vse_mask_v_nxv2i64_nxv2i64(<vscale x 2 x i64> %0, ptr %1, <vscale x 2 x i1> %2, iXLen %3) nounwind {
92; CHECK-LABEL: intrinsic_vse_mask_v_nxv2i64_nxv2i64:
93; CHECK:       # %bb.0: # %entry
94; CHECK-NEXT:    vsetvli zero, a1, e64, m2, ta, ma
95; CHECK-NEXT:    vse64.v v8, (a0), v0.t
96; CHECK-NEXT:    ret
97entry:
98  call void @llvm.riscv.vse.mask.nxv2i64(
99    <vscale x 2 x i64> %0,
100    ptr %1,
101    <vscale x 2 x i1> %2,
102    iXLen %3)
103
104  ret void
105}
106
107declare void @llvm.riscv.vse.nxv4i64(
108  <vscale x 4 x i64>,
109  ptr,
110  iXLen);
111
112define void @intrinsic_vse_v_nxv4i64_nxv4i64(<vscale x 4 x i64> %0, ptr %1, iXLen %2) nounwind {
113; CHECK-LABEL: intrinsic_vse_v_nxv4i64_nxv4i64:
114; CHECK:       # %bb.0: # %entry
115; CHECK-NEXT:    vsetvli zero, a1, e64, m4, ta, ma
116; CHECK-NEXT:    vse64.v v8, (a0)
117; CHECK-NEXT:    ret
118entry:
119  call void @llvm.riscv.vse.nxv4i64(
120    <vscale x 4 x i64> %0,
121    ptr %1,
122    iXLen %2)
123
124  ret void
125}
126
127declare void @llvm.riscv.vse.mask.nxv4i64(
128  <vscale x 4 x i64>,
129  ptr,
130  <vscale x 4 x i1>,
131  iXLen);
132
133define void @intrinsic_vse_mask_v_nxv4i64_nxv4i64(<vscale x 4 x i64> %0, ptr %1, <vscale x 4 x i1> %2, iXLen %3) nounwind {
134; CHECK-LABEL: intrinsic_vse_mask_v_nxv4i64_nxv4i64:
135; CHECK:       # %bb.0: # %entry
136; CHECK-NEXT:    vsetvli zero, a1, e64, m4, ta, ma
137; CHECK-NEXT:    vse64.v v8, (a0), v0.t
138; CHECK-NEXT:    ret
139entry:
140  call void @llvm.riscv.vse.mask.nxv4i64(
141    <vscale x 4 x i64> %0,
142    ptr %1,
143    <vscale x 4 x i1> %2,
144    iXLen %3)
145
146  ret void
147}
148
149declare void @llvm.riscv.vse.nxv8i64(
150  <vscale x 8 x i64>,
151  ptr,
152  iXLen);
153
154define void @intrinsic_vse_v_nxv8i64_nxv8i64(<vscale x 8 x i64> %0, ptr %1, iXLen %2) nounwind {
155; CHECK-LABEL: intrinsic_vse_v_nxv8i64_nxv8i64:
156; CHECK:       # %bb.0: # %entry
157; CHECK-NEXT:    vsetvli zero, a1, e64, m8, ta, ma
158; CHECK-NEXT:    vse64.v v8, (a0)
159; CHECK-NEXT:    ret
160entry:
161  call void @llvm.riscv.vse.nxv8i64(
162    <vscale x 8 x i64> %0,
163    ptr %1,
164    iXLen %2)
165
166  ret void
167}
168
169declare void @llvm.riscv.vse.mask.nxv8i64(
170  <vscale x 8 x i64>,
171  ptr,
172  <vscale x 8 x i1>,
173  iXLen);
174
175define void @intrinsic_vse_mask_v_nxv8i64_nxv8i64(<vscale x 8 x i64> %0, ptr %1, <vscale x 8 x i1> %2, iXLen %3) nounwind {
176; CHECK-LABEL: intrinsic_vse_mask_v_nxv8i64_nxv8i64:
177; CHECK:       # %bb.0: # %entry
178; CHECK-NEXT:    vsetvli zero, a1, e64, m8, ta, ma
179; CHECK-NEXT:    vse64.v v8, (a0), v0.t
180; CHECK-NEXT:    ret
181entry:
182  call void @llvm.riscv.vse.mask.nxv8i64(
183    <vscale x 8 x i64> %0,
184    ptr %1,
185    <vscale x 8 x i1> %2,
186    iXLen %3)
187
188  ret void
189}
190
191declare void @llvm.riscv.vse.nxv1f64(
192  <vscale x 1 x double>,
193  ptr,
194  iXLen);
195
196define void @intrinsic_vse_v_nxv1f64_nxv1f64(<vscale x 1 x double> %0, ptr %1, iXLen %2) nounwind {
197; CHECK-LABEL: intrinsic_vse_v_nxv1f64_nxv1f64:
198; CHECK:       # %bb.0: # %entry
199; CHECK-NEXT:    vsetvli zero, a1, e64, m1, ta, ma
200; CHECK-NEXT:    vse64.v v8, (a0)
201; CHECK-NEXT:    ret
202entry:
203  call void @llvm.riscv.vse.nxv1f64(
204    <vscale x 1 x double> %0,
205    ptr %1,
206    iXLen %2)
207
208  ret void
209}
210
211declare void @llvm.riscv.vse.mask.nxv1f64(
212  <vscale x 1 x double>,
213  ptr,
214  <vscale x 1 x i1>,
215  iXLen);
216
217define void @intrinsic_vse_mask_v_nxv1f64_nxv1f64(<vscale x 1 x double> %0, ptr %1, <vscale x 1 x i1> %2, iXLen %3) nounwind {
218; CHECK-LABEL: intrinsic_vse_mask_v_nxv1f64_nxv1f64:
219; CHECK:       # %bb.0: # %entry
220; CHECK-NEXT:    vsetvli zero, a1, e64, m1, ta, ma
221; CHECK-NEXT:    vse64.v v8, (a0), v0.t
222; CHECK-NEXT:    ret
223entry:
224  call void @llvm.riscv.vse.mask.nxv1f64(
225    <vscale x 1 x double> %0,
226    ptr %1,
227    <vscale x 1 x i1> %2,
228    iXLen %3)
229
230  ret void
231}
232
233declare void @llvm.riscv.vse.nxv2f64(
234  <vscale x 2 x double>,
235  ptr,
236  iXLen);
237
238define void @intrinsic_vse_v_nxv2f64_nxv2f64(<vscale x 2 x double> %0, ptr %1, iXLen %2) nounwind {
239; CHECK-LABEL: intrinsic_vse_v_nxv2f64_nxv2f64:
240; CHECK:       # %bb.0: # %entry
241; CHECK-NEXT:    vsetvli zero, a1, e64, m2, ta, ma
242; CHECK-NEXT:    vse64.v v8, (a0)
243; CHECK-NEXT:    ret
244entry:
245  call void @llvm.riscv.vse.nxv2f64(
246    <vscale x 2 x double> %0,
247    ptr %1,
248    iXLen %2)
249
250  ret void
251}
252
253declare void @llvm.riscv.vse.mask.nxv2f64(
254  <vscale x 2 x double>,
255  ptr,
256  <vscale x 2 x i1>,
257  iXLen);
258
259define void @intrinsic_vse_mask_v_nxv2f64_nxv2f64(<vscale x 2 x double> %0, ptr %1, <vscale x 2 x i1> %2, iXLen %3) nounwind {
260; CHECK-LABEL: intrinsic_vse_mask_v_nxv2f64_nxv2f64:
261; CHECK:       # %bb.0: # %entry
262; CHECK-NEXT:    vsetvli zero, a1, e64, m2, ta, ma
263; CHECK-NEXT:    vse64.v v8, (a0), v0.t
264; CHECK-NEXT:    ret
265entry:
266  call void @llvm.riscv.vse.mask.nxv2f64(
267    <vscale x 2 x double> %0,
268    ptr %1,
269    <vscale x 2 x i1> %2,
270    iXLen %3)
271
272  ret void
273}
274
275declare void @llvm.riscv.vse.nxv4f64(
276  <vscale x 4 x double>,
277  ptr,
278  iXLen);
279
280define void @intrinsic_vse_v_nxv4f64_nxv4f64(<vscale x 4 x double> %0, ptr %1, iXLen %2) nounwind {
281; CHECK-LABEL: intrinsic_vse_v_nxv4f64_nxv4f64:
282; CHECK:       # %bb.0: # %entry
283; CHECK-NEXT:    vsetvli zero, a1, e64, m4, ta, ma
284; CHECK-NEXT:    vse64.v v8, (a0)
285; CHECK-NEXT:    ret
286entry:
287  call void @llvm.riscv.vse.nxv4f64(
288    <vscale x 4 x double> %0,
289    ptr %1,
290    iXLen %2)
291
292  ret void
293}
294
295declare void @llvm.riscv.vse.mask.nxv4f64(
296  <vscale x 4 x double>,
297  ptr,
298  <vscale x 4 x i1>,
299  iXLen);
300
301define void @intrinsic_vse_mask_v_nxv4f64_nxv4f64(<vscale x 4 x double> %0, ptr %1, <vscale x 4 x i1> %2, iXLen %3) nounwind {
302; CHECK-LABEL: intrinsic_vse_mask_v_nxv4f64_nxv4f64:
303; CHECK:       # %bb.0: # %entry
304; CHECK-NEXT:    vsetvli zero, a1, e64, m4, ta, ma
305; CHECK-NEXT:    vse64.v v8, (a0), v0.t
306; CHECK-NEXT:    ret
307entry:
308  call void @llvm.riscv.vse.mask.nxv4f64(
309    <vscale x 4 x double> %0,
310    ptr %1,
311    <vscale x 4 x i1> %2,
312    iXLen %3)
313
314  ret void
315}
316
317declare void @llvm.riscv.vse.nxv8f64(
318  <vscale x 8 x double>,
319  ptr,
320  iXLen);
321
322define void @intrinsic_vse_v_nxv8f64_nxv8f64(<vscale x 8 x double> %0, ptr %1, iXLen %2) nounwind {
323; CHECK-LABEL: intrinsic_vse_v_nxv8f64_nxv8f64:
324; CHECK:       # %bb.0: # %entry
325; CHECK-NEXT:    vsetvli zero, a1, e64, m8, ta, ma
326; CHECK-NEXT:    vse64.v v8, (a0)
327; CHECK-NEXT:    ret
328entry:
329  call void @llvm.riscv.vse.nxv8f64(
330    <vscale x 8 x double> %0,
331    ptr %1,
332    iXLen %2)
333
334  ret void
335}
336
337declare void @llvm.riscv.vse.mask.nxv8f64(
338  <vscale x 8 x double>,
339  ptr,
340  <vscale x 8 x i1>,
341  iXLen);
342
343define void @intrinsic_vse_mask_v_nxv8f64_nxv8f64(<vscale x 8 x double> %0, ptr %1, <vscale x 8 x i1> %2, iXLen %3) nounwind {
344; CHECK-LABEL: intrinsic_vse_mask_v_nxv8f64_nxv8f64:
345; CHECK:       # %bb.0: # %entry
346; CHECK-NEXT:    vsetvli zero, a1, e64, m8, ta, ma
347; CHECK-NEXT:    vse64.v v8, (a0), v0.t
348; CHECK-NEXT:    ret
349entry:
350  call void @llvm.riscv.vse.mask.nxv8f64(
351    <vscale x 8 x double> %0,
352    ptr %1,
353    <vscale x 8 x i1> %2,
354    iXLen %3)
355
356  ret void
357}
358
359declare void @llvm.riscv.vse.nxv1i32(
360  <vscale x 1 x i32>,
361  ptr,
362  iXLen);
363
364define void @intrinsic_vse_v_nxv1i32_nxv1i32(<vscale x 1 x i32> %0, ptr %1, iXLen %2) nounwind {
365; CHECK-LABEL: intrinsic_vse_v_nxv1i32_nxv1i32:
366; CHECK:       # %bb.0: # %entry
367; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, ta, ma
368; CHECK-NEXT:    vse32.v v8, (a0)
369; CHECK-NEXT:    ret
370entry:
371  call void @llvm.riscv.vse.nxv1i32(
372    <vscale x 1 x i32> %0,
373    ptr %1,
374    iXLen %2)
375
376  ret void
377}
378
379declare void @llvm.riscv.vse.mask.nxv1i32(
380  <vscale x 1 x i32>,
381  ptr,
382  <vscale x 1 x i1>,
383  iXLen);
384
385define void @intrinsic_vse_mask_v_nxv1i32_nxv1i32(<vscale x 1 x i32> %0, ptr %1, <vscale x 1 x i1> %2, iXLen %3) nounwind {
386; CHECK-LABEL: intrinsic_vse_mask_v_nxv1i32_nxv1i32:
387; CHECK:       # %bb.0: # %entry
388; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, ta, ma
389; CHECK-NEXT:    vse32.v v8, (a0), v0.t
390; CHECK-NEXT:    ret
391entry:
392  call void @llvm.riscv.vse.mask.nxv1i32(
393    <vscale x 1 x i32> %0,
394    ptr %1,
395    <vscale x 1 x i1> %2,
396    iXLen %3)
397
398  ret void
399}
400
401declare void @llvm.riscv.vse.nxv2i32(
402  <vscale x 2 x i32>,
403  ptr,
404  iXLen);
405
406define void @intrinsic_vse_v_nxv2i32_nxv2i32(<vscale x 2 x i32> %0, ptr %1, iXLen %2) nounwind {
407; CHECK-LABEL: intrinsic_vse_v_nxv2i32_nxv2i32:
408; CHECK:       # %bb.0: # %entry
409; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, ma
410; CHECK-NEXT:    vse32.v v8, (a0)
411; CHECK-NEXT:    ret
412entry:
413  call void @llvm.riscv.vse.nxv2i32(
414    <vscale x 2 x i32> %0,
415    ptr %1,
416    iXLen %2)
417
418  ret void
419}
420
421declare void @llvm.riscv.vse.mask.nxv2i32(
422  <vscale x 2 x i32>,
423  ptr,
424  <vscale x 2 x i1>,
425  iXLen);
426
427define void @intrinsic_vse_mask_v_nxv2i32_nxv2i32(<vscale x 2 x i32> %0, ptr %1, <vscale x 2 x i1> %2, iXLen %3) nounwind {
428; CHECK-LABEL: intrinsic_vse_mask_v_nxv2i32_nxv2i32:
429; CHECK:       # %bb.0: # %entry
430; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, ma
431; CHECK-NEXT:    vse32.v v8, (a0), v0.t
432; CHECK-NEXT:    ret
433entry:
434  call void @llvm.riscv.vse.mask.nxv2i32(
435    <vscale x 2 x i32> %0,
436    ptr %1,
437    <vscale x 2 x i1> %2,
438    iXLen %3)
439
440  ret void
441}
442
443declare void @llvm.riscv.vse.nxv4i32(
444  <vscale x 4 x i32>,
445  ptr,
446  iXLen);
447
448define void @intrinsic_vse_v_nxv4i32_nxv4i32(<vscale x 4 x i32> %0, ptr %1, iXLen %2) nounwind {
449; CHECK-LABEL: intrinsic_vse_v_nxv4i32_nxv4i32:
450; CHECK:       # %bb.0: # %entry
451; CHECK-NEXT:    vsetvli zero, a1, e32, m2, ta, ma
452; CHECK-NEXT:    vse32.v v8, (a0)
453; CHECK-NEXT:    ret
454entry:
455  call void @llvm.riscv.vse.nxv4i32(
456    <vscale x 4 x i32> %0,
457    ptr %1,
458    iXLen %2)
459
460  ret void
461}
462
463declare void @llvm.riscv.vse.mask.nxv4i32(
464  <vscale x 4 x i32>,
465  ptr,
466  <vscale x 4 x i1>,
467  iXLen);
468
469define void @intrinsic_vse_mask_v_nxv4i32_nxv4i32(<vscale x 4 x i32> %0, ptr %1, <vscale x 4 x i1> %2, iXLen %3) nounwind {
470; CHECK-LABEL: intrinsic_vse_mask_v_nxv4i32_nxv4i32:
471; CHECK:       # %bb.0: # %entry
472; CHECK-NEXT:    vsetvli zero, a1, e32, m2, ta, ma
473; CHECK-NEXT:    vse32.v v8, (a0), v0.t
474; CHECK-NEXT:    ret
475entry:
476  call void @llvm.riscv.vse.mask.nxv4i32(
477    <vscale x 4 x i32> %0,
478    ptr %1,
479    <vscale x 4 x i1> %2,
480    iXLen %3)
481
482  ret void
483}
484
485declare void @llvm.riscv.vse.nxv8i32(
486  <vscale x 8 x i32>,
487  ptr,
488  iXLen);
489
490define void @intrinsic_vse_v_nxv8i32_nxv8i32(<vscale x 8 x i32> %0, ptr %1, iXLen %2) nounwind {
491; CHECK-LABEL: intrinsic_vse_v_nxv8i32_nxv8i32:
492; CHECK:       # %bb.0: # %entry
493; CHECK-NEXT:    vsetvli zero, a1, e32, m4, ta, ma
494; CHECK-NEXT:    vse32.v v8, (a0)
495; CHECK-NEXT:    ret
496entry:
497  call void @llvm.riscv.vse.nxv8i32(
498    <vscale x 8 x i32> %0,
499    ptr %1,
500    iXLen %2)
501
502  ret void
503}
504
505declare void @llvm.riscv.vse.mask.nxv8i32(
506  <vscale x 8 x i32>,
507  ptr,
508  <vscale x 8 x i1>,
509  iXLen);
510
511define void @intrinsic_vse_mask_v_nxv8i32_nxv8i32(<vscale x 8 x i32> %0, ptr %1, <vscale x 8 x i1> %2, iXLen %3) nounwind {
512; CHECK-LABEL: intrinsic_vse_mask_v_nxv8i32_nxv8i32:
513; CHECK:       # %bb.0: # %entry
514; CHECK-NEXT:    vsetvli zero, a1, e32, m4, ta, ma
515; CHECK-NEXT:    vse32.v v8, (a0), v0.t
516; CHECK-NEXT:    ret
517entry:
518  call void @llvm.riscv.vse.mask.nxv8i32(
519    <vscale x 8 x i32> %0,
520    ptr %1,
521    <vscale x 8 x i1> %2,
522    iXLen %3)
523
524  ret void
525}
526
527declare void @llvm.riscv.vse.nxv16i32(
528  <vscale x 16 x i32>,
529  ptr,
530  iXLen);
531
532define void @intrinsic_vse_v_nxv16i32_nxv16i32(<vscale x 16 x i32> %0, ptr %1, iXLen %2) nounwind {
533; CHECK-LABEL: intrinsic_vse_v_nxv16i32_nxv16i32:
534; CHECK:       # %bb.0: # %entry
535; CHECK-NEXT:    vsetvli zero, a1, e32, m8, ta, ma
536; CHECK-NEXT:    vse32.v v8, (a0)
537; CHECK-NEXT:    ret
538entry:
539  call void @llvm.riscv.vse.nxv16i32(
540    <vscale x 16 x i32> %0,
541    ptr %1,
542    iXLen %2)
543
544  ret void
545}
546
547declare void @llvm.riscv.vse.mask.nxv16i32(
548  <vscale x 16 x i32>,
549  ptr,
550  <vscale x 16 x i1>,
551  iXLen);
552
553define void @intrinsic_vse_mask_v_nxv16i32_nxv16i32(<vscale x 16 x i32> %0, ptr %1, <vscale x 16 x i1> %2, iXLen %3) nounwind {
554; CHECK-LABEL: intrinsic_vse_mask_v_nxv16i32_nxv16i32:
555; CHECK:       # %bb.0: # %entry
556; CHECK-NEXT:    vsetvli zero, a1, e32, m8, ta, ma
557; CHECK-NEXT:    vse32.v v8, (a0), v0.t
558; CHECK-NEXT:    ret
559entry:
560  call void @llvm.riscv.vse.mask.nxv16i32(
561    <vscale x 16 x i32> %0,
562    ptr %1,
563    <vscale x 16 x i1> %2,
564    iXLen %3)
565
566  ret void
567}
568
569declare void @llvm.riscv.vse.nxv1f32(
570  <vscale x 1 x float>,
571  ptr,
572  iXLen);
573
574define void @intrinsic_vse_v_nxv1f32_nxv1f32(<vscale x 1 x float> %0, ptr %1, iXLen %2) nounwind {
575; CHECK-LABEL: intrinsic_vse_v_nxv1f32_nxv1f32:
576; CHECK:       # %bb.0: # %entry
577; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, ta, ma
578; CHECK-NEXT:    vse32.v v8, (a0)
579; CHECK-NEXT:    ret
580entry:
581  call void @llvm.riscv.vse.nxv1f32(
582    <vscale x 1 x float> %0,
583    ptr %1,
584    iXLen %2)
585
586  ret void
587}
588
589declare void @llvm.riscv.vse.mask.nxv1f32(
590  <vscale x 1 x float>,
591  ptr,
592  <vscale x 1 x i1>,
593  iXLen);
594
595define void @intrinsic_vse_mask_v_nxv1f32_nxv1f32(<vscale x 1 x float> %0, ptr %1, <vscale x 1 x i1> %2, iXLen %3) nounwind {
596; CHECK-LABEL: intrinsic_vse_mask_v_nxv1f32_nxv1f32:
597; CHECK:       # %bb.0: # %entry
598; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, ta, ma
599; CHECK-NEXT:    vse32.v v8, (a0), v0.t
600; CHECK-NEXT:    ret
601entry:
602  call void @llvm.riscv.vse.mask.nxv1f32(
603    <vscale x 1 x float> %0,
604    ptr %1,
605    <vscale x 1 x i1> %2,
606    iXLen %3)
607
608  ret void
609}
610
611declare void @llvm.riscv.vse.nxv2f32(
612  <vscale x 2 x float>,
613  ptr,
614  iXLen);
615
616define void @intrinsic_vse_v_nxv2f32_nxv2f32(<vscale x 2 x float> %0, ptr %1, iXLen %2) nounwind {
617; CHECK-LABEL: intrinsic_vse_v_nxv2f32_nxv2f32:
618; CHECK:       # %bb.0: # %entry
619; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, ma
620; CHECK-NEXT:    vse32.v v8, (a0)
621; CHECK-NEXT:    ret
622entry:
623  call void @llvm.riscv.vse.nxv2f32(
624    <vscale x 2 x float> %0,
625    ptr %1,
626    iXLen %2)
627
628  ret void
629}
630
631declare void @llvm.riscv.vse.mask.nxv2f32(
632  <vscale x 2 x float>,
633  ptr,
634  <vscale x 2 x i1>,
635  iXLen);
636
637define void @intrinsic_vse_mask_v_nxv2f32_nxv2f32(<vscale x 2 x float> %0, ptr %1, <vscale x 2 x i1> %2, iXLen %3) nounwind {
638; CHECK-LABEL: intrinsic_vse_mask_v_nxv2f32_nxv2f32:
639; CHECK:       # %bb.0: # %entry
640; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, ma
641; CHECK-NEXT:    vse32.v v8, (a0), v0.t
642; CHECK-NEXT:    ret
643entry:
644  call void @llvm.riscv.vse.mask.nxv2f32(
645    <vscale x 2 x float> %0,
646    ptr %1,
647    <vscale x 2 x i1> %2,
648    iXLen %3)
649
650  ret void
651}
652
653declare void @llvm.riscv.vse.nxv4f32(
654  <vscale x 4 x float>,
655  ptr,
656  iXLen);
657
658define void @intrinsic_vse_v_nxv4f32_nxv4f32(<vscale x 4 x float> %0, ptr %1, iXLen %2) nounwind {
659; CHECK-LABEL: intrinsic_vse_v_nxv4f32_nxv4f32:
660; CHECK:       # %bb.0: # %entry
661; CHECK-NEXT:    vsetvli zero, a1, e32, m2, ta, ma
662; CHECK-NEXT:    vse32.v v8, (a0)
663; CHECK-NEXT:    ret
664entry:
665  call void @llvm.riscv.vse.nxv4f32(
666    <vscale x 4 x float> %0,
667    ptr %1,
668    iXLen %2)
669
670  ret void
671}
672
673declare void @llvm.riscv.vse.mask.nxv4f32(
674  <vscale x 4 x float>,
675  ptr,
676  <vscale x 4 x i1>,
677  iXLen);
678
679define void @intrinsic_vse_mask_v_nxv4f32_nxv4f32(<vscale x 4 x float> %0, ptr %1, <vscale x 4 x i1> %2, iXLen %3) nounwind {
680; CHECK-LABEL: intrinsic_vse_mask_v_nxv4f32_nxv4f32:
681; CHECK:       # %bb.0: # %entry
682; CHECK-NEXT:    vsetvli zero, a1, e32, m2, ta, ma
683; CHECK-NEXT:    vse32.v v8, (a0), v0.t
684; CHECK-NEXT:    ret
685entry:
686  call void @llvm.riscv.vse.mask.nxv4f32(
687    <vscale x 4 x float> %0,
688    ptr %1,
689    <vscale x 4 x i1> %2,
690    iXLen %3)
691
692  ret void
693}
694
695declare void @llvm.riscv.vse.nxv8f32(
696  <vscale x 8 x float>,
697  ptr,
698  iXLen);
699
700define void @intrinsic_vse_v_nxv8f32_nxv8f32(<vscale x 8 x float> %0, ptr %1, iXLen %2) nounwind {
701; CHECK-LABEL: intrinsic_vse_v_nxv8f32_nxv8f32:
702; CHECK:       # %bb.0: # %entry
703; CHECK-NEXT:    vsetvli zero, a1, e32, m4, ta, ma
704; CHECK-NEXT:    vse32.v v8, (a0)
705; CHECK-NEXT:    ret
706entry:
707  call void @llvm.riscv.vse.nxv8f32(
708    <vscale x 8 x float> %0,
709    ptr %1,
710    iXLen %2)
711
712  ret void
713}
714
715declare void @llvm.riscv.vse.mask.nxv8f32(
716  <vscale x 8 x float>,
717  ptr,
718  <vscale x 8 x i1>,
719  iXLen);
720
721define void @intrinsic_vse_mask_v_nxv8f32_nxv8f32(<vscale x 8 x float> %0, ptr %1, <vscale x 8 x i1> %2, iXLen %3) nounwind {
722; CHECK-LABEL: intrinsic_vse_mask_v_nxv8f32_nxv8f32:
723; CHECK:       # %bb.0: # %entry
724; CHECK-NEXT:    vsetvli zero, a1, e32, m4, ta, ma
725; CHECK-NEXT:    vse32.v v8, (a0), v0.t
726; CHECK-NEXT:    ret
727entry:
728  call void @llvm.riscv.vse.mask.nxv8f32(
729    <vscale x 8 x float> %0,
730    ptr %1,
731    <vscale x 8 x i1> %2,
732    iXLen %3)
733
734  ret void
735}
736
737declare void @llvm.riscv.vse.nxv16f32(
738  <vscale x 16 x float>,
739  ptr,
740  iXLen);
741
742define void @intrinsic_vse_v_nxv16f32_nxv16f32(<vscale x 16 x float> %0, ptr %1, iXLen %2) nounwind {
743; CHECK-LABEL: intrinsic_vse_v_nxv16f32_nxv16f32:
744; CHECK:       # %bb.0: # %entry
745; CHECK-NEXT:    vsetvli zero, a1, e32, m8, ta, ma
746; CHECK-NEXT:    vse32.v v8, (a0)
747; CHECK-NEXT:    ret
748entry:
749  call void @llvm.riscv.vse.nxv16f32(
750    <vscale x 16 x float> %0,
751    ptr %1,
752    iXLen %2)
753
754  ret void
755}
756
757declare void @llvm.riscv.vse.mask.nxv16f32(
758  <vscale x 16 x float>,
759  ptr,
760  <vscale x 16 x i1>,
761  iXLen);
762
763define void @intrinsic_vse_mask_v_nxv16f32_nxv16f32(<vscale x 16 x float> %0, ptr %1, <vscale x 16 x i1> %2, iXLen %3) nounwind {
764; CHECK-LABEL: intrinsic_vse_mask_v_nxv16f32_nxv16f32:
765; CHECK:       # %bb.0: # %entry
766; CHECK-NEXT:    vsetvli zero, a1, e32, m8, ta, ma
767; CHECK-NEXT:    vse32.v v8, (a0), v0.t
768; CHECK-NEXT:    ret
769entry:
770  call void @llvm.riscv.vse.mask.nxv16f32(
771    <vscale x 16 x float> %0,
772    ptr %1,
773    <vscale x 16 x i1> %2,
774    iXLen %3)
775
776  ret void
777}
778
779declare void @llvm.riscv.vse.nxv1i16(
780  <vscale x 1 x i16>,
781  ptr,
782  iXLen);
783
784define void @intrinsic_vse_v_nxv1i16_nxv1i16(<vscale x 1 x i16> %0, ptr %1, iXLen %2) nounwind {
785; CHECK-LABEL: intrinsic_vse_v_nxv1i16_nxv1i16:
786; CHECK:       # %bb.0: # %entry
787; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma
788; CHECK-NEXT:    vse16.v v8, (a0)
789; CHECK-NEXT:    ret
790entry:
791  call void @llvm.riscv.vse.nxv1i16(
792    <vscale x 1 x i16> %0,
793    ptr %1,
794    iXLen %2)
795
796  ret void
797}
798
799declare void @llvm.riscv.vse.mask.nxv1i16(
800  <vscale x 1 x i16>,
801  ptr,
802  <vscale x 1 x i1>,
803  iXLen);
804
805define void @intrinsic_vse_mask_v_nxv1i16_nxv1i16(<vscale x 1 x i16> %0, ptr %1, <vscale x 1 x i1> %2, iXLen %3) nounwind {
806; CHECK-LABEL: intrinsic_vse_mask_v_nxv1i16_nxv1i16:
807; CHECK:       # %bb.0: # %entry
808; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma
809; CHECK-NEXT:    vse16.v v8, (a0), v0.t
810; CHECK-NEXT:    ret
811entry:
812  call void @llvm.riscv.vse.mask.nxv1i16(
813    <vscale x 1 x i16> %0,
814    ptr %1,
815    <vscale x 1 x i1> %2,
816    iXLen %3)
817
818  ret void
819}
820
821declare void @llvm.riscv.vse.nxv2i16(
822  <vscale x 2 x i16>,
823  ptr,
824  iXLen);
825
826define void @intrinsic_vse_v_nxv2i16_nxv2i16(<vscale x 2 x i16> %0, ptr %1, iXLen %2) nounwind {
827; CHECK-LABEL: intrinsic_vse_v_nxv2i16_nxv2i16:
828; CHECK:       # %bb.0: # %entry
829; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma
830; CHECK-NEXT:    vse16.v v8, (a0)
831; CHECK-NEXT:    ret
832entry:
833  call void @llvm.riscv.vse.nxv2i16(
834    <vscale x 2 x i16> %0,
835    ptr %1,
836    iXLen %2)
837
838  ret void
839}
840
841declare void @llvm.riscv.vse.mask.nxv2i16(
842  <vscale x 2 x i16>,
843  ptr,
844  <vscale x 2 x i1>,
845  iXLen);
846
847define void @intrinsic_vse_mask_v_nxv2i16_nxv2i16(<vscale x 2 x i16> %0, ptr %1, <vscale x 2 x i1> %2, iXLen %3) nounwind {
848; CHECK-LABEL: intrinsic_vse_mask_v_nxv2i16_nxv2i16:
849; CHECK:       # %bb.0: # %entry
850; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma
851; CHECK-NEXT:    vse16.v v8, (a0), v0.t
852; CHECK-NEXT:    ret
853entry:
854  call void @llvm.riscv.vse.mask.nxv2i16(
855    <vscale x 2 x i16> %0,
856    ptr %1,
857    <vscale x 2 x i1> %2,
858    iXLen %3)
859
860  ret void
861}
862
863declare void @llvm.riscv.vse.nxv4i16(
864  <vscale x 4 x i16>,
865  ptr,
866  iXLen);
867
868define void @intrinsic_vse_v_nxv4i16_nxv4i16(<vscale x 4 x i16> %0, ptr %1, iXLen %2) nounwind {
869; CHECK-LABEL: intrinsic_vse_v_nxv4i16_nxv4i16:
870; CHECK:       # %bb.0: # %entry
871; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma
872; CHECK-NEXT:    vse16.v v8, (a0)
873; CHECK-NEXT:    ret
874entry:
875  call void @llvm.riscv.vse.nxv4i16(
876    <vscale x 4 x i16> %0,
877    ptr %1,
878    iXLen %2)
879
880  ret void
881}
882
883declare void @llvm.riscv.vse.mask.nxv4i16(
884  <vscale x 4 x i16>,
885  ptr,
886  <vscale x 4 x i1>,
887  iXLen);
888
889define void @intrinsic_vse_mask_v_nxv4i16_nxv4i16(<vscale x 4 x i16> %0, ptr %1, <vscale x 4 x i1> %2, iXLen %3) nounwind {
890; CHECK-LABEL: intrinsic_vse_mask_v_nxv4i16_nxv4i16:
891; CHECK:       # %bb.0: # %entry
892; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma
893; CHECK-NEXT:    vse16.v v8, (a0), v0.t
894; CHECK-NEXT:    ret
895entry:
896  call void @llvm.riscv.vse.mask.nxv4i16(
897    <vscale x 4 x i16> %0,
898    ptr %1,
899    <vscale x 4 x i1> %2,
900    iXLen %3)
901
902  ret void
903}
904
905declare void @llvm.riscv.vse.nxv8i16(
906  <vscale x 8 x i16>,
907  ptr,
908  iXLen);
909
910define void @intrinsic_vse_v_nxv8i16_nxv8i16(<vscale x 8 x i16> %0, ptr %1, iXLen %2) nounwind {
911; CHECK-LABEL: intrinsic_vse_v_nxv8i16_nxv8i16:
912; CHECK:       # %bb.0: # %entry
913; CHECK-NEXT:    vsetvli zero, a1, e16, m2, ta, ma
914; CHECK-NEXT:    vse16.v v8, (a0)
915; CHECK-NEXT:    ret
916entry:
917  call void @llvm.riscv.vse.nxv8i16(
918    <vscale x 8 x i16> %0,
919    ptr %1,
920    iXLen %2)
921
922  ret void
923}
924
925declare void @llvm.riscv.vse.mask.nxv8i16(
926  <vscale x 8 x i16>,
927  ptr,
928  <vscale x 8 x i1>,
929  iXLen);
930
931define void @intrinsic_vse_mask_v_nxv8i16_nxv8i16(<vscale x 8 x i16> %0, ptr %1, <vscale x 8 x i1> %2, iXLen %3) nounwind {
932; CHECK-LABEL: intrinsic_vse_mask_v_nxv8i16_nxv8i16:
933; CHECK:       # %bb.0: # %entry
934; CHECK-NEXT:    vsetvli zero, a1, e16, m2, ta, ma
935; CHECK-NEXT:    vse16.v v8, (a0), v0.t
936; CHECK-NEXT:    ret
937entry:
938  call void @llvm.riscv.vse.mask.nxv8i16(
939    <vscale x 8 x i16> %0,
940    ptr %1,
941    <vscale x 8 x i1> %2,
942    iXLen %3)
943
944  ret void
945}
946
947declare void @llvm.riscv.vse.nxv16i16(
948  <vscale x 16 x i16>,
949  ptr,
950  iXLen);
951
952define void @intrinsic_vse_v_nxv16i16_nxv16i16(<vscale x 16 x i16> %0, ptr %1, iXLen %2) nounwind {
953; CHECK-LABEL: intrinsic_vse_v_nxv16i16_nxv16i16:
954; CHECK:       # %bb.0: # %entry
955; CHECK-NEXT:    vsetvli zero, a1, e16, m4, ta, ma
956; CHECK-NEXT:    vse16.v v8, (a0)
957; CHECK-NEXT:    ret
958entry:
959  call void @llvm.riscv.vse.nxv16i16(
960    <vscale x 16 x i16> %0,
961    ptr %1,
962    iXLen %2)
963
964  ret void
965}
966
967declare void @llvm.riscv.vse.mask.nxv16i16(
968  <vscale x 16 x i16>,
969  ptr,
970  <vscale x 16 x i1>,
971  iXLen);
972
973define void @intrinsic_vse_mask_v_nxv16i16_nxv16i16(<vscale x 16 x i16> %0, ptr %1, <vscale x 16 x i1> %2, iXLen %3) nounwind {
974; CHECK-LABEL: intrinsic_vse_mask_v_nxv16i16_nxv16i16:
975; CHECK:       # %bb.0: # %entry
976; CHECK-NEXT:    vsetvli zero, a1, e16, m4, ta, ma
977; CHECK-NEXT:    vse16.v v8, (a0), v0.t
978; CHECK-NEXT:    ret
979entry:
980  call void @llvm.riscv.vse.mask.nxv16i16(
981    <vscale x 16 x i16> %0,
982    ptr %1,
983    <vscale x 16 x i1> %2,
984    iXLen %3)
985
986  ret void
987}
988
989declare void @llvm.riscv.vse.nxv32i16(
990  <vscale x 32 x i16>,
991  ptr,
992  iXLen);
993
994define void @intrinsic_vse_v_nxv32i16_nxv32i16(<vscale x 32 x i16> %0, ptr %1, iXLen %2) nounwind {
995; CHECK-LABEL: intrinsic_vse_v_nxv32i16_nxv32i16:
996; CHECK:       # %bb.0: # %entry
997; CHECK-NEXT:    vsetvli zero, a1, e16, m8, ta, ma
998; CHECK-NEXT:    vse16.v v8, (a0)
999; CHECK-NEXT:    ret
1000entry:
1001  call void @llvm.riscv.vse.nxv32i16(
1002    <vscale x 32 x i16> %0,
1003    ptr %1,
1004    iXLen %2)
1005
1006  ret void
1007}
1008
1009declare void @llvm.riscv.vse.mask.nxv32i16(
1010  <vscale x 32 x i16>,
1011  ptr,
1012  <vscale x 32 x i1>,
1013  iXLen);
1014
1015define void @intrinsic_vse_mask_v_nxv32i16_nxv32i16(<vscale x 32 x i16> %0, ptr %1, <vscale x 32 x i1> %2, iXLen %3) nounwind {
1016; CHECK-LABEL: intrinsic_vse_mask_v_nxv32i16_nxv32i16:
1017; CHECK:       # %bb.0: # %entry
1018; CHECK-NEXT:    vsetvli zero, a1, e16, m8, ta, ma
1019; CHECK-NEXT:    vse16.v v8, (a0), v0.t
1020; CHECK-NEXT:    ret
1021entry:
1022  call void @llvm.riscv.vse.mask.nxv32i16(
1023    <vscale x 32 x i16> %0,
1024    ptr %1,
1025    <vscale x 32 x i1> %2,
1026    iXLen %3)
1027
1028  ret void
1029}
1030
1031declare void @llvm.riscv.vse.nxv1f16(
1032  <vscale x 1 x half>,
1033  ptr,
1034  iXLen);
1035
1036define void @intrinsic_vse_v_nxv1f16_nxv1f16(<vscale x 1 x half> %0, ptr %1, iXLen %2) nounwind {
1037; CHECK-LABEL: intrinsic_vse_v_nxv1f16_nxv1f16:
1038; CHECK:       # %bb.0: # %entry
1039; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma
1040; CHECK-NEXT:    vse16.v v8, (a0)
1041; CHECK-NEXT:    ret
1042entry:
1043  call void @llvm.riscv.vse.nxv1f16(
1044    <vscale x 1 x half> %0,
1045    ptr %1,
1046    iXLen %2)
1047
1048  ret void
1049}
1050
1051declare void @llvm.riscv.vse.mask.nxv1f16(
1052  <vscale x 1 x half>,
1053  ptr,
1054  <vscale x 1 x i1>,
1055  iXLen);
1056
1057define void @intrinsic_vse_mask_v_nxv1f16_nxv1f16(<vscale x 1 x half> %0, ptr %1, <vscale x 1 x i1> %2, iXLen %3) nounwind {
1058; CHECK-LABEL: intrinsic_vse_mask_v_nxv1f16_nxv1f16:
1059; CHECK:       # %bb.0: # %entry
1060; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma
1061; CHECK-NEXT:    vse16.v v8, (a0), v0.t
1062; CHECK-NEXT:    ret
1063entry:
1064  call void @llvm.riscv.vse.mask.nxv1f16(
1065    <vscale x 1 x half> %0,
1066    ptr %1,
1067    <vscale x 1 x i1> %2,
1068    iXLen %3)
1069
1070  ret void
1071}
1072
1073declare void @llvm.riscv.vse.nxv2f16(
1074  <vscale x 2 x half>,
1075  ptr,
1076  iXLen);
1077
1078define void @intrinsic_vse_v_nxv2f16_nxv2f16(<vscale x 2 x half> %0, ptr %1, iXLen %2) nounwind {
1079; CHECK-LABEL: intrinsic_vse_v_nxv2f16_nxv2f16:
1080; CHECK:       # %bb.0: # %entry
1081; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma
1082; CHECK-NEXT:    vse16.v v8, (a0)
1083; CHECK-NEXT:    ret
1084entry:
1085  call void @llvm.riscv.vse.nxv2f16(
1086    <vscale x 2 x half> %0,
1087    ptr %1,
1088    iXLen %2)
1089
1090  ret void
1091}
1092
1093declare void @llvm.riscv.vse.mask.nxv2f16(
1094  <vscale x 2 x half>,
1095  ptr,
1096  <vscale x 2 x i1>,
1097  iXLen);
1098
1099define void @intrinsic_vse_mask_v_nxv2f16_nxv2f16(<vscale x 2 x half> %0, ptr %1, <vscale x 2 x i1> %2, iXLen %3) nounwind {
1100; CHECK-LABEL: intrinsic_vse_mask_v_nxv2f16_nxv2f16:
1101; CHECK:       # %bb.0: # %entry
1102; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma
1103; CHECK-NEXT:    vse16.v v8, (a0), v0.t
1104; CHECK-NEXT:    ret
1105entry:
1106  call void @llvm.riscv.vse.mask.nxv2f16(
1107    <vscale x 2 x half> %0,
1108    ptr %1,
1109    <vscale x 2 x i1> %2,
1110    iXLen %3)
1111
1112  ret void
1113}
1114
1115declare void @llvm.riscv.vse.nxv4f16(
1116  <vscale x 4 x half>,
1117  ptr,
1118  iXLen);
1119
1120define void @intrinsic_vse_v_nxv4f16_nxv4f16(<vscale x 4 x half> %0, ptr %1, iXLen %2) nounwind {
1121; CHECK-LABEL: intrinsic_vse_v_nxv4f16_nxv4f16:
1122; CHECK:       # %bb.0: # %entry
1123; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma
1124; CHECK-NEXT:    vse16.v v8, (a0)
1125; CHECK-NEXT:    ret
1126entry:
1127  call void @llvm.riscv.vse.nxv4f16(
1128    <vscale x 4 x half> %0,
1129    ptr %1,
1130    iXLen %2)
1131
1132  ret void
1133}
1134
1135declare void @llvm.riscv.vse.mask.nxv4f16(
1136  <vscale x 4 x half>,
1137  ptr,
1138  <vscale x 4 x i1>,
1139  iXLen);
1140
1141define void @intrinsic_vse_mask_v_nxv4f16_nxv4f16(<vscale x 4 x half> %0, ptr %1, <vscale x 4 x i1> %2, iXLen %3) nounwind {
1142; CHECK-LABEL: intrinsic_vse_mask_v_nxv4f16_nxv4f16:
1143; CHECK:       # %bb.0: # %entry
1144; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma
1145; CHECK-NEXT:    vse16.v v8, (a0), v0.t
1146; CHECK-NEXT:    ret
1147entry:
1148  call void @llvm.riscv.vse.mask.nxv4f16(
1149    <vscale x 4 x half> %0,
1150    ptr %1,
1151    <vscale x 4 x i1> %2,
1152    iXLen %3)
1153
1154  ret void
1155}
1156
1157declare void @llvm.riscv.vse.nxv8f16(
1158  <vscale x 8 x half>,
1159  ptr,
1160  iXLen);
1161
1162define void @intrinsic_vse_v_nxv8f16_nxv8f16(<vscale x 8 x half> %0, ptr %1, iXLen %2) nounwind {
1163; CHECK-LABEL: intrinsic_vse_v_nxv8f16_nxv8f16:
1164; CHECK:       # %bb.0: # %entry
1165; CHECK-NEXT:    vsetvli zero, a1, e16, m2, ta, ma
1166; CHECK-NEXT:    vse16.v v8, (a0)
1167; CHECK-NEXT:    ret
1168entry:
1169  call void @llvm.riscv.vse.nxv8f16(
1170    <vscale x 8 x half> %0,
1171    ptr %1,
1172    iXLen %2)
1173
1174  ret void
1175}
1176
1177declare void @llvm.riscv.vse.mask.nxv8f16(
1178  <vscale x 8 x half>,
1179  ptr,
1180  <vscale x 8 x i1>,
1181  iXLen);
1182
1183define void @intrinsic_vse_mask_v_nxv8f16_nxv8f16(<vscale x 8 x half> %0, ptr %1, <vscale x 8 x i1> %2, iXLen %3) nounwind {
1184; CHECK-LABEL: intrinsic_vse_mask_v_nxv8f16_nxv8f16:
1185; CHECK:       # %bb.0: # %entry
1186; CHECK-NEXT:    vsetvli zero, a1, e16, m2, ta, ma
1187; CHECK-NEXT:    vse16.v v8, (a0), v0.t
1188; CHECK-NEXT:    ret
1189entry:
1190  call void @llvm.riscv.vse.mask.nxv8f16(
1191    <vscale x 8 x half> %0,
1192    ptr %1,
1193    <vscale x 8 x i1> %2,
1194    iXLen %3)
1195
1196  ret void
1197}
1198
1199declare void @llvm.riscv.vse.nxv16f16(
1200  <vscale x 16 x half>,
1201  ptr,
1202  iXLen);
1203
1204define void @intrinsic_vse_v_nxv16f16_nxv16f16(<vscale x 16 x half> %0, ptr %1, iXLen %2) nounwind {
1205; CHECK-LABEL: intrinsic_vse_v_nxv16f16_nxv16f16:
1206; CHECK:       # %bb.0: # %entry
1207; CHECK-NEXT:    vsetvli zero, a1, e16, m4, ta, ma
1208; CHECK-NEXT:    vse16.v v8, (a0)
1209; CHECK-NEXT:    ret
1210entry:
1211  call void @llvm.riscv.vse.nxv16f16(
1212    <vscale x 16 x half> %0,
1213    ptr %1,
1214    iXLen %2)
1215
1216  ret void
1217}
1218
1219declare void @llvm.riscv.vse.mask.nxv16f16(
1220  <vscale x 16 x half>,
1221  ptr,
1222  <vscale x 16 x i1>,
1223  iXLen);
1224
1225define void @intrinsic_vse_mask_v_nxv16f16_nxv16f16(<vscale x 16 x half> %0, ptr %1, <vscale x 16 x i1> %2, iXLen %3) nounwind {
1226; CHECK-LABEL: intrinsic_vse_mask_v_nxv16f16_nxv16f16:
1227; CHECK:       # %bb.0: # %entry
1228; CHECK-NEXT:    vsetvli zero, a1, e16, m4, ta, ma
1229; CHECK-NEXT:    vse16.v v8, (a0), v0.t
1230; CHECK-NEXT:    ret
1231entry:
1232  call void @llvm.riscv.vse.mask.nxv16f16(
1233    <vscale x 16 x half> %0,
1234    ptr %1,
1235    <vscale x 16 x i1> %2,
1236    iXLen %3)
1237
1238  ret void
1239}
1240
1241declare void @llvm.riscv.vse.nxv32f16(
1242  <vscale x 32 x half>,
1243  ptr,
1244  iXLen);
1245
1246define void @intrinsic_vse_v_nxv32f16_nxv32f16(<vscale x 32 x half> %0, ptr %1, iXLen %2) nounwind {
1247; CHECK-LABEL: intrinsic_vse_v_nxv32f16_nxv32f16:
1248; CHECK:       # %bb.0: # %entry
1249; CHECK-NEXT:    vsetvli zero, a1, e16, m8, ta, ma
1250; CHECK-NEXT:    vse16.v v8, (a0)
1251; CHECK-NEXT:    ret
1252entry:
1253  call void @llvm.riscv.vse.nxv32f16(
1254    <vscale x 32 x half> %0,
1255    ptr %1,
1256    iXLen %2)
1257
1258  ret void
1259}
1260
1261declare void @llvm.riscv.vse.mask.nxv32f16(
1262  <vscale x 32 x half>,
1263  ptr,
1264  <vscale x 32 x i1>,
1265  iXLen);
1266
1267define void @intrinsic_vse_mask_v_nxv32f16_nxv32f16(<vscale x 32 x half> %0, ptr %1, <vscale x 32 x i1> %2, iXLen %3) nounwind {
1268; CHECK-LABEL: intrinsic_vse_mask_v_nxv32f16_nxv32f16:
1269; CHECK:       # %bb.0: # %entry
1270; CHECK-NEXT:    vsetvli zero, a1, e16, m8, ta, ma
1271; CHECK-NEXT:    vse16.v v8, (a0), v0.t
1272; CHECK-NEXT:    ret
1273entry:
1274  call void @llvm.riscv.vse.mask.nxv32f16(
1275    <vscale x 32 x half> %0,
1276    ptr %1,
1277    <vscale x 32 x i1> %2,
1278    iXLen %3)
1279
1280  ret void
1281}
1282
1283declare void @llvm.riscv.vse.nxv1bf16(
1284  <vscale x 1 x bfloat>,
1285  ptr,
1286  iXLen);
1287
1288define void @intrinsic_vse_v_nxv1bf16_nxv1bf16(<vscale x 1 x bfloat> %0, ptr %1, iXLen %2) nounwind {
1289; CHECK-LABEL: intrinsic_vse_v_nxv1bf16_nxv1bf16:
1290; CHECK:       # %bb.0: # %entry
1291; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma
1292; CHECK-NEXT:    vse16.v v8, (a0)
1293; CHECK-NEXT:    ret
1294entry:
1295  call void @llvm.riscv.vse.nxv1bf16(
1296    <vscale x 1 x bfloat> %0,
1297    ptr %1,
1298    iXLen %2)
1299
1300  ret void
1301}
1302
1303declare void @llvm.riscv.vse.mask.nxv1bf16(
1304  <vscale x 1 x bfloat>,
1305  ptr,
1306  <vscale x 1 x i1>,
1307  iXLen);
1308
1309define void @intrinsic_vse_mask_v_nxv1bf16_nxv1bf16(<vscale x 1 x bfloat> %0, ptr %1, <vscale x 1 x i1> %2, iXLen %3) nounwind {
1310; CHECK-LABEL: intrinsic_vse_mask_v_nxv1bf16_nxv1bf16:
1311; CHECK:       # %bb.0: # %entry
1312; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma
1313; CHECK-NEXT:    vse16.v v8, (a0), v0.t
1314; CHECK-NEXT:    ret
1315entry:
1316  call void @llvm.riscv.vse.mask.nxv1bf16(
1317    <vscale x 1 x bfloat> %0,
1318    ptr %1,
1319    <vscale x 1 x i1> %2,
1320    iXLen %3)
1321
1322  ret void
1323}
1324
1325declare void @llvm.riscv.vse.nxv2bf16(
1326  <vscale x 2 x bfloat>,
1327  ptr,
1328  iXLen);
1329
1330define void @intrinsic_vse_v_nxv2bf16_nxv2bf16(<vscale x 2 x bfloat> %0, ptr %1, iXLen %2) nounwind {
1331; CHECK-LABEL: intrinsic_vse_v_nxv2bf16_nxv2bf16:
1332; CHECK:       # %bb.0: # %entry
1333; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma
1334; CHECK-NEXT:    vse16.v v8, (a0)
1335; CHECK-NEXT:    ret
1336entry:
1337  call void @llvm.riscv.vse.nxv2bf16(
1338    <vscale x 2 x bfloat> %0,
1339    ptr %1,
1340    iXLen %2)
1341
1342  ret void
1343}
1344
1345declare void @llvm.riscv.vse.mask.nxv2bf16(
1346  <vscale x 2 x bfloat>,
1347  ptr,
1348  <vscale x 2 x i1>,
1349  iXLen);
1350
1351define void @intrinsic_vse_mask_v_nxv2bf16_nxv2bf16(<vscale x 2 x bfloat> %0, ptr %1, <vscale x 2 x i1> %2, iXLen %3) nounwind {
1352; CHECK-LABEL: intrinsic_vse_mask_v_nxv2bf16_nxv2bf16:
1353; CHECK:       # %bb.0: # %entry
1354; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma
1355; CHECK-NEXT:    vse16.v v8, (a0), v0.t
1356; CHECK-NEXT:    ret
1357entry:
1358  call void @llvm.riscv.vse.mask.nxv2bf16(
1359    <vscale x 2 x bfloat> %0,
1360    ptr %1,
1361    <vscale x 2 x i1> %2,
1362    iXLen %3)
1363
1364  ret void
1365}
1366
1367declare void @llvm.riscv.vse.nxv4bf16(
1368  <vscale x 4 x bfloat>,
1369  ptr,
1370  iXLen);
1371
1372define void @intrinsic_vse_v_nxv4bf16_nxv4bf16(<vscale x 4 x bfloat> %0, ptr %1, iXLen %2) nounwind {
1373; CHECK-LABEL: intrinsic_vse_v_nxv4bf16_nxv4bf16:
1374; CHECK:       # %bb.0: # %entry
1375; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma
1376; CHECK-NEXT:    vse16.v v8, (a0)
1377; CHECK-NEXT:    ret
1378entry:
1379  call void @llvm.riscv.vse.nxv4bf16(
1380    <vscale x 4 x bfloat> %0,
1381    ptr %1,
1382    iXLen %2)
1383
1384  ret void
1385}
1386
1387declare void @llvm.riscv.vse.mask.nxv4bf16(
1388  <vscale x 4 x bfloat>,
1389  ptr,
1390  <vscale x 4 x i1>,
1391  iXLen);
1392
1393define void @intrinsic_vse_mask_v_nxv4bf16_nxv4bf16(<vscale x 4 x bfloat> %0, ptr %1, <vscale x 4 x i1> %2, iXLen %3) nounwind {
1394; CHECK-LABEL: intrinsic_vse_mask_v_nxv4bf16_nxv4bf16:
1395; CHECK:       # %bb.0: # %entry
1396; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma
1397; CHECK-NEXT:    vse16.v v8, (a0), v0.t
1398; CHECK-NEXT:    ret
1399entry:
1400  call void @llvm.riscv.vse.mask.nxv4bf16(
1401    <vscale x 4 x bfloat> %0,
1402    ptr %1,
1403    <vscale x 4 x i1> %2,
1404    iXLen %3)
1405
1406  ret void
1407}
1408
1409declare void @llvm.riscv.vse.nxv8bf16(
1410  <vscale x 8 x bfloat>,
1411  ptr,
1412  iXLen);
1413
1414define void @intrinsic_vse_v_nxv8bf16_nxv8bf16(<vscale x 8 x bfloat> %0, ptr %1, iXLen %2) nounwind {
1415; CHECK-LABEL: intrinsic_vse_v_nxv8bf16_nxv8bf16:
1416; CHECK:       # %bb.0: # %entry
1417; CHECK-NEXT:    vsetvli zero, a1, e16, m2, ta, ma
1418; CHECK-NEXT:    vse16.v v8, (a0)
1419; CHECK-NEXT:    ret
1420entry:
1421  call void @llvm.riscv.vse.nxv8bf16(
1422    <vscale x 8 x bfloat> %0,
1423    ptr %1,
1424    iXLen %2)
1425
1426  ret void
1427}
1428
1429declare void @llvm.riscv.vse.mask.nxv8bf16(
1430  <vscale x 8 x bfloat>,
1431  ptr,
1432  <vscale x 8 x i1>,
1433  iXLen);
1434
1435define void @intrinsic_vse_mask_v_nxv8bf16_nxv8bf16(<vscale x 8 x bfloat> %0, ptr %1, <vscale x 8 x i1> %2, iXLen %3) nounwind {
1436; CHECK-LABEL: intrinsic_vse_mask_v_nxv8bf16_nxv8bf16:
1437; CHECK:       # %bb.0: # %entry
1438; CHECK-NEXT:    vsetvli zero, a1, e16, m2, ta, ma
1439; CHECK-NEXT:    vse16.v v8, (a0), v0.t
1440; CHECK-NEXT:    ret
1441entry:
1442  call void @llvm.riscv.vse.mask.nxv8bf16(
1443    <vscale x 8 x bfloat> %0,
1444    ptr %1,
1445    <vscale x 8 x i1> %2,
1446    iXLen %3)
1447
1448  ret void
1449}
1450
1451declare void @llvm.riscv.vse.nxv16bf16(
1452  <vscale x 16 x bfloat>,
1453  ptr,
1454  iXLen);
1455
1456define void @intrinsic_vse_v_nxv16bf16_nxv16bf16(<vscale x 16 x bfloat> %0, ptr %1, iXLen %2) nounwind {
1457; CHECK-LABEL: intrinsic_vse_v_nxv16bf16_nxv16bf16:
1458; CHECK:       # %bb.0: # %entry
1459; CHECK-NEXT:    vsetvli zero, a1, e16, m4, ta, ma
1460; CHECK-NEXT:    vse16.v v8, (a0)
1461; CHECK-NEXT:    ret
1462entry:
1463  call void @llvm.riscv.vse.nxv16bf16(
1464    <vscale x 16 x bfloat> %0,
1465    ptr %1,
1466    iXLen %2)
1467
1468  ret void
1469}
1470
1471declare void @llvm.riscv.vse.mask.nxv16bf16(
1472  <vscale x 16 x bfloat>,
1473  ptr,
1474  <vscale x 16 x i1>,
1475  iXLen);
1476
1477define void @intrinsic_vse_mask_v_nxv16bf16_nxv16bf16(<vscale x 16 x bfloat> %0, ptr %1, <vscale x 16 x i1> %2, iXLen %3) nounwind {
1478; CHECK-LABEL: intrinsic_vse_mask_v_nxv16bf16_nxv16bf16:
1479; CHECK:       # %bb.0: # %entry
1480; CHECK-NEXT:    vsetvli zero, a1, e16, m4, ta, ma
1481; CHECK-NEXT:    vse16.v v8, (a0), v0.t
1482; CHECK-NEXT:    ret
1483entry:
1484  call void @llvm.riscv.vse.mask.nxv16bf16(
1485    <vscale x 16 x bfloat> %0,
1486    ptr %1,
1487    <vscale x 16 x i1> %2,
1488    iXLen %3)
1489
1490  ret void
1491}
1492
1493declare void @llvm.riscv.vse.nxv32bf16(
1494  <vscale x 32 x bfloat>,
1495  ptr,
1496  iXLen);
1497
1498define void @intrinsic_vse_v_nxv32bf16_nxv32bf16(<vscale x 32 x bfloat> %0, ptr %1, iXLen %2) nounwind {
1499; CHECK-LABEL: intrinsic_vse_v_nxv32bf16_nxv32bf16:
1500; CHECK:       # %bb.0: # %entry
1501; CHECK-NEXT:    vsetvli zero, a1, e16, m8, ta, ma
1502; CHECK-NEXT:    vse16.v v8, (a0)
1503; CHECK-NEXT:    ret
1504entry:
1505  call void @llvm.riscv.vse.nxv32bf16(
1506    <vscale x 32 x bfloat> %0,
1507    ptr %1,
1508    iXLen %2)
1509
1510  ret void
1511}
1512
1513declare void @llvm.riscv.vse.mask.nxv32bf16(
1514  <vscale x 32 x bfloat>,
1515  ptr,
1516  <vscale x 32 x i1>,
1517  iXLen);
1518
1519define void @intrinsic_vse_mask_v_nxv32bf16_nxv32bf16(<vscale x 32 x bfloat> %0, ptr %1, <vscale x 32 x i1> %2, iXLen %3) nounwind {
1520; CHECK-LABEL: intrinsic_vse_mask_v_nxv32bf16_nxv32bf16:
1521; CHECK:       # %bb.0: # %entry
1522; CHECK-NEXT:    vsetvli zero, a1, e16, m8, ta, ma
1523; CHECK-NEXT:    vse16.v v8, (a0), v0.t
1524; CHECK-NEXT:    ret
1525entry:
1526  call void @llvm.riscv.vse.mask.nxv32bf16(
1527    <vscale x 32 x bfloat> %0,
1528    ptr %1,
1529    <vscale x 32 x i1> %2,
1530    iXLen %3)
1531
1532  ret void
1533}
1534
1535declare void @llvm.riscv.vse.nxv1i8(
1536  <vscale x 1 x i8>,
1537  ptr,
1538  iXLen);
1539
1540define void @intrinsic_vse_v_nxv1i8_nxv1i8(<vscale x 1 x i8> %0, ptr %1, iXLen %2) nounwind {
1541; CHECK-LABEL: intrinsic_vse_v_nxv1i8_nxv1i8:
1542; CHECK:       # %bb.0: # %entry
1543; CHECK-NEXT:    vsetvli zero, a1, e8, mf8, ta, ma
1544; CHECK-NEXT:    vse8.v v8, (a0)
1545; CHECK-NEXT:    ret
1546entry:
1547  call void @llvm.riscv.vse.nxv1i8(
1548    <vscale x 1 x i8> %0,
1549    ptr %1,
1550    iXLen %2)
1551
1552  ret void
1553}
1554
1555declare void @llvm.riscv.vse.mask.nxv1i8(
1556  <vscale x 1 x i8>,
1557  ptr,
1558  <vscale x 1 x i1>,
1559  iXLen);
1560
1561define void @intrinsic_vse_mask_v_nxv1i8_nxv1i8(<vscale x 1 x i8> %0, ptr %1, <vscale x 1 x i1> %2, iXLen %3) nounwind {
1562; CHECK-LABEL: intrinsic_vse_mask_v_nxv1i8_nxv1i8:
1563; CHECK:       # %bb.0: # %entry
1564; CHECK-NEXT:    vsetvli zero, a1, e8, mf8, ta, ma
1565; CHECK-NEXT:    vse8.v v8, (a0), v0.t
1566; CHECK-NEXT:    ret
1567entry:
1568  call void @llvm.riscv.vse.mask.nxv1i8(
1569    <vscale x 1 x i8> %0,
1570    ptr %1,
1571    <vscale x 1 x i1> %2,
1572    iXLen %3)
1573
1574  ret void
1575}
1576
1577declare void @llvm.riscv.vse.nxv2i8(
1578  <vscale x 2 x i8>,
1579  ptr,
1580  iXLen);
1581
1582define void @intrinsic_vse_v_nxv2i8_nxv2i8(<vscale x 2 x i8> %0, ptr %1, iXLen %2) nounwind {
1583; CHECK-LABEL: intrinsic_vse_v_nxv2i8_nxv2i8:
1584; CHECK:       # %bb.0: # %entry
1585; CHECK-NEXT:    vsetvli zero, a1, e8, mf4, ta, ma
1586; CHECK-NEXT:    vse8.v v8, (a0)
1587; CHECK-NEXT:    ret
1588entry:
1589  call void @llvm.riscv.vse.nxv2i8(
1590    <vscale x 2 x i8> %0,
1591    ptr %1,
1592    iXLen %2)
1593
1594  ret void
1595}
1596
1597declare void @llvm.riscv.vse.mask.nxv2i8(
1598  <vscale x 2 x i8>,
1599  ptr,
1600  <vscale x 2 x i1>,
1601  iXLen);
1602
1603define void @intrinsic_vse_mask_v_nxv2i8_nxv2i8(<vscale x 2 x i8> %0, ptr %1, <vscale x 2 x i1> %2, iXLen %3) nounwind {
1604; CHECK-LABEL: intrinsic_vse_mask_v_nxv2i8_nxv2i8:
1605; CHECK:       # %bb.0: # %entry
1606; CHECK-NEXT:    vsetvli zero, a1, e8, mf4, ta, ma
1607; CHECK-NEXT:    vse8.v v8, (a0), v0.t
1608; CHECK-NEXT:    ret
1609entry:
1610  call void @llvm.riscv.vse.mask.nxv2i8(
1611    <vscale x 2 x i8> %0,
1612    ptr %1,
1613    <vscale x 2 x i1> %2,
1614    iXLen %3)
1615
1616  ret void
1617}
1618
1619declare void @llvm.riscv.vse.nxv4i8(
1620  <vscale x 4 x i8>,
1621  ptr,
1622  iXLen);
1623
1624define void @intrinsic_vse_v_nxv4i8_nxv4i8(<vscale x 4 x i8> %0, ptr %1, iXLen %2) nounwind {
1625; CHECK-LABEL: intrinsic_vse_v_nxv4i8_nxv4i8:
1626; CHECK:       # %bb.0: # %entry
1627; CHECK-NEXT:    vsetvli zero, a1, e8, mf2, ta, ma
1628; CHECK-NEXT:    vse8.v v8, (a0)
1629; CHECK-NEXT:    ret
1630entry:
1631  call void @llvm.riscv.vse.nxv4i8(
1632    <vscale x 4 x i8> %0,
1633    ptr %1,
1634    iXLen %2)
1635
1636  ret void
1637}
1638
1639declare void @llvm.riscv.vse.mask.nxv4i8(
1640  <vscale x 4 x i8>,
1641  ptr,
1642  <vscale x 4 x i1>,
1643  iXLen);
1644
1645define void @intrinsic_vse_mask_v_nxv4i8_nxv4i8(<vscale x 4 x i8> %0, ptr %1, <vscale x 4 x i1> %2, iXLen %3) nounwind {
1646; CHECK-LABEL: intrinsic_vse_mask_v_nxv4i8_nxv4i8:
1647; CHECK:       # %bb.0: # %entry
1648; CHECK-NEXT:    vsetvli zero, a1, e8, mf2, ta, ma
1649; CHECK-NEXT:    vse8.v v8, (a0), v0.t
1650; CHECK-NEXT:    ret
1651entry:
1652  call void @llvm.riscv.vse.mask.nxv4i8(
1653    <vscale x 4 x i8> %0,
1654    ptr %1,
1655    <vscale x 4 x i1> %2,
1656    iXLen %3)
1657
1658  ret void
1659}
1660
1661declare void @llvm.riscv.vse.nxv8i8(
1662  <vscale x 8 x i8>,
1663  ptr,
1664  iXLen);
1665
1666define void @intrinsic_vse_v_nxv8i8_nxv8i8(<vscale x 8 x i8> %0, ptr %1, iXLen %2) nounwind {
1667; CHECK-LABEL: intrinsic_vse_v_nxv8i8_nxv8i8:
1668; CHECK:       # %bb.0: # %entry
1669; CHECK-NEXT:    vsetvli zero, a1, e8, m1, ta, ma
1670; CHECK-NEXT:    vse8.v v8, (a0)
1671; CHECK-NEXT:    ret
1672entry:
1673  call void @llvm.riscv.vse.nxv8i8(
1674    <vscale x 8 x i8> %0,
1675    ptr %1,
1676    iXLen %2)
1677
1678  ret void
1679}
1680
1681declare void @llvm.riscv.vse.mask.nxv8i8(
1682  <vscale x 8 x i8>,
1683  ptr,
1684  <vscale x 8 x i1>,
1685  iXLen);
1686
1687define void @intrinsic_vse_mask_v_nxv8i8_nxv8i8(<vscale x 8 x i8> %0, ptr %1, <vscale x 8 x i1> %2, iXLen %3) nounwind {
1688; CHECK-LABEL: intrinsic_vse_mask_v_nxv8i8_nxv8i8:
1689; CHECK:       # %bb.0: # %entry
1690; CHECK-NEXT:    vsetvli zero, a1, e8, m1, ta, ma
1691; CHECK-NEXT:    vse8.v v8, (a0), v0.t
1692; CHECK-NEXT:    ret
1693entry:
1694  call void @llvm.riscv.vse.mask.nxv8i8(
1695    <vscale x 8 x i8> %0,
1696    ptr %1,
1697    <vscale x 8 x i1> %2,
1698    iXLen %3)
1699
1700  ret void
1701}
1702
1703declare void @llvm.riscv.vse.nxv16i8(
1704  <vscale x 16 x i8>,
1705  ptr,
1706  iXLen);
1707
1708define void @intrinsic_vse_v_nxv16i8_nxv16i8(<vscale x 16 x i8> %0, ptr %1, iXLen %2) nounwind {
1709; CHECK-LABEL: intrinsic_vse_v_nxv16i8_nxv16i8:
1710; CHECK:       # %bb.0: # %entry
1711; CHECK-NEXT:    vsetvli zero, a1, e8, m2, ta, ma
1712; CHECK-NEXT:    vse8.v v8, (a0)
1713; CHECK-NEXT:    ret
1714entry:
1715  call void @llvm.riscv.vse.nxv16i8(
1716    <vscale x 16 x i8> %0,
1717    ptr %1,
1718    iXLen %2)
1719
1720  ret void
1721}
1722
1723declare void @llvm.riscv.vse.mask.nxv16i8(
1724  <vscale x 16 x i8>,
1725  ptr,
1726  <vscale x 16 x i1>,
1727  iXLen);
1728
1729define void @intrinsic_vse_mask_v_nxv16i8_nxv16i8(<vscale x 16 x i8> %0, ptr %1, <vscale x 16 x i1> %2, iXLen %3) nounwind {
1730; CHECK-LABEL: intrinsic_vse_mask_v_nxv16i8_nxv16i8:
1731; CHECK:       # %bb.0: # %entry
1732; CHECK-NEXT:    vsetvli zero, a1, e8, m2, ta, ma
1733; CHECK-NEXT:    vse8.v v8, (a0), v0.t
1734; CHECK-NEXT:    ret
1735entry:
1736  call void @llvm.riscv.vse.mask.nxv16i8(
1737    <vscale x 16 x i8> %0,
1738    ptr %1,
1739    <vscale x 16 x i1> %2,
1740    iXLen %3)
1741
1742  ret void
1743}
1744
1745declare void @llvm.riscv.vse.nxv32i8(
1746  <vscale x 32 x i8>,
1747  ptr,
1748  iXLen);
1749
1750define void @intrinsic_vse_v_nxv32i8_nxv32i8(<vscale x 32 x i8> %0, ptr %1, iXLen %2) nounwind {
1751; CHECK-LABEL: intrinsic_vse_v_nxv32i8_nxv32i8:
1752; CHECK:       # %bb.0: # %entry
1753; CHECK-NEXT:    vsetvli zero, a1, e8, m4, ta, ma
1754; CHECK-NEXT:    vse8.v v8, (a0)
1755; CHECK-NEXT:    ret
1756entry:
1757  call void @llvm.riscv.vse.nxv32i8(
1758    <vscale x 32 x i8> %0,
1759    ptr %1,
1760    iXLen %2)
1761
1762  ret void
1763}
1764
1765declare void @llvm.riscv.vse.mask.nxv32i8(
1766  <vscale x 32 x i8>,
1767  ptr,
1768  <vscale x 32 x i1>,
1769  iXLen);
1770
1771define void @intrinsic_vse_mask_v_nxv32i8_nxv32i8(<vscale x 32 x i8> %0, ptr %1, <vscale x 32 x i1> %2, iXLen %3) nounwind {
1772; CHECK-LABEL: intrinsic_vse_mask_v_nxv32i8_nxv32i8:
1773; CHECK:       # %bb.0: # %entry
1774; CHECK-NEXT:    vsetvli zero, a1, e8, m4, ta, ma
1775; CHECK-NEXT:    vse8.v v8, (a0), v0.t
1776; CHECK-NEXT:    ret
1777entry:
1778  call void @llvm.riscv.vse.mask.nxv32i8(
1779    <vscale x 32 x i8> %0,
1780    ptr %1,
1781    <vscale x 32 x i1> %2,
1782    iXLen %3)
1783
1784  ret void
1785}
1786
1787declare void @llvm.riscv.vse.nxv64i8(
1788  <vscale x 64 x i8>,
1789  ptr,
1790  iXLen);
1791
1792define void @intrinsic_vse_v_nxv64i8_nxv64i8(<vscale x 64 x i8> %0, ptr %1, iXLen %2) nounwind {
1793; CHECK-LABEL: intrinsic_vse_v_nxv64i8_nxv64i8:
1794; CHECK:       # %bb.0: # %entry
1795; CHECK-NEXT:    vsetvli zero, a1, e8, m8, ta, ma
1796; CHECK-NEXT:    vse8.v v8, (a0)
1797; CHECK-NEXT:    ret
1798entry:
1799  call void @llvm.riscv.vse.nxv64i8(
1800    <vscale x 64 x i8> %0,
1801    ptr %1,
1802    iXLen %2)
1803
1804  ret void
1805}
1806
1807declare void @llvm.riscv.vse.mask.nxv64i8(
1808  <vscale x 64 x i8>,
1809  ptr,
1810  <vscale x 64 x i1>,
1811  iXLen);
1812
1813define void @intrinsic_vse_mask_v_nxv64i8_nxv64i8(<vscale x 64 x i8> %0, ptr %1, <vscale x 64 x i1> %2, iXLen %3) nounwind {
1814; CHECK-LABEL: intrinsic_vse_mask_v_nxv64i8_nxv64i8:
1815; CHECK:       # %bb.0: # %entry
1816; CHECK-NEXT:    vsetvli zero, a1, e8, m8, ta, ma
1817; CHECK-NEXT:    vse8.v v8, (a0), v0.t
1818; CHECK-NEXT:    ret
1819entry:
1820  call void @llvm.riscv.vse.mask.nxv64i8(
1821    <vscale x 64 x i8> %0,
1822    ptr %1,
1823    <vscale x 64 x i1> %2,
1824    iXLen %3)
1825
1826  ret void
1827}
1828