[rtsan] Add fork/execve interceptors (#117198)
[llvm-project.git] / llvm / test / CodeGen / RISCV / rvv / vse.ll
blobf2ae2136078c0fbf94974a40e0432c4ae290928e
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
7 declare void @llvm.riscv.vse.nxv1i64(
8   <vscale x 1 x i64>,
9   ptr,
10   iXLen);
12 define 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
18 entry:
19   call void @llvm.riscv.vse.nxv1i64(
20     <vscale x 1 x i64> %0,
21     ptr %1,
22     iXLen %2)
24   ret void
27 declare void @llvm.riscv.vse.mask.nxv1i64(
28   <vscale x 1 x i64>,
29   ptr,
30   <vscale x 1 x i1>,
31   iXLen);
33 define 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
39 entry:
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)
46   ret void
49 declare void @llvm.riscv.vse.nxv2i64(
50   <vscale x 2 x i64>,
51   ptr,
52   iXLen);
54 define void @intrinsic_vse_v_nxv2i64_nxv2i64(<vscale x 2 x i64> %0, ptr %1, iXLen %2) nounwind {
55 ; CHECK-LABEL: intrinsic_vse_v_nxv2i64_nxv2i64:
56 ; CHECK:       # %bb.0: # %entry
57 ; CHECK-NEXT:    vsetvli zero, a1, e64, m2, ta, ma
58 ; CHECK-NEXT:    vse64.v v8, (a0)
59 ; CHECK-NEXT:    ret
60 entry:
61   call void @llvm.riscv.vse.nxv2i64(
62     <vscale x 2 x i64> %0,
63     ptr %1,
64     iXLen %2)
66   ret void
69 declare void @llvm.riscv.vse.mask.nxv2i64(
70   <vscale x 2 x i64>,
71   ptr,
72   <vscale x 2 x i1>,
73   iXLen);
75 define void @intrinsic_vse_mask_v_nxv2i64_nxv2i64(<vscale x 2 x i64> %0, ptr %1, <vscale x 2 x i1> %2, iXLen %3) nounwind {
76 ; CHECK-LABEL: intrinsic_vse_mask_v_nxv2i64_nxv2i64:
77 ; CHECK:       # %bb.0: # %entry
78 ; CHECK-NEXT:    vsetvli zero, a1, e64, m2, ta, ma
79 ; CHECK-NEXT:    vse64.v v8, (a0), v0.t
80 ; CHECK-NEXT:    ret
81 entry:
82   call void @llvm.riscv.vse.mask.nxv2i64(
83     <vscale x 2 x i64> %0,
84     ptr %1,
85     <vscale x 2 x i1> %2,
86     iXLen %3)
88   ret void
91 declare void @llvm.riscv.vse.nxv4i64(
92   <vscale x 4 x i64>,
93   ptr,
94   iXLen);
96 define void @intrinsic_vse_v_nxv4i64_nxv4i64(<vscale x 4 x i64> %0, ptr %1, iXLen %2) nounwind {
97 ; CHECK-LABEL: intrinsic_vse_v_nxv4i64_nxv4i64:
98 ; CHECK:       # %bb.0: # %entry
99 ; CHECK-NEXT:    vsetvli zero, a1, e64, m4, ta, ma
100 ; CHECK-NEXT:    vse64.v v8, (a0)
101 ; CHECK-NEXT:    ret
102 entry:
103   call void @llvm.riscv.vse.nxv4i64(
104     <vscale x 4 x i64> %0,
105     ptr %1,
106     iXLen %2)
108   ret void
111 declare void @llvm.riscv.vse.mask.nxv4i64(
112   <vscale x 4 x i64>,
113   ptr,
114   <vscale x 4 x i1>,
115   iXLen);
117 define void @intrinsic_vse_mask_v_nxv4i64_nxv4i64(<vscale x 4 x i64> %0, ptr %1, <vscale x 4 x i1> %2, iXLen %3) nounwind {
118 ; CHECK-LABEL: intrinsic_vse_mask_v_nxv4i64_nxv4i64:
119 ; CHECK:       # %bb.0: # %entry
120 ; CHECK-NEXT:    vsetvli zero, a1, e64, m4, ta, ma
121 ; CHECK-NEXT:    vse64.v v8, (a0), v0.t
122 ; CHECK-NEXT:    ret
123 entry:
124   call void @llvm.riscv.vse.mask.nxv4i64(
125     <vscale x 4 x i64> %0,
126     ptr %1,
127     <vscale x 4 x i1> %2,
128     iXLen %3)
130   ret void
133 declare void @llvm.riscv.vse.nxv8i64(
134   <vscale x 8 x i64>,
135   ptr,
136   iXLen);
138 define void @intrinsic_vse_v_nxv8i64_nxv8i64(<vscale x 8 x i64> %0, ptr %1, iXLen %2) nounwind {
139 ; CHECK-LABEL: intrinsic_vse_v_nxv8i64_nxv8i64:
140 ; CHECK:       # %bb.0: # %entry
141 ; CHECK-NEXT:    vsetvli zero, a1, e64, m8, ta, ma
142 ; CHECK-NEXT:    vse64.v v8, (a0)
143 ; CHECK-NEXT:    ret
144 entry:
145   call void @llvm.riscv.vse.nxv8i64(
146     <vscale x 8 x i64> %0,
147     ptr %1,
148     iXLen %2)
150   ret void
153 declare void @llvm.riscv.vse.mask.nxv8i64(
154   <vscale x 8 x i64>,
155   ptr,
156   <vscale x 8 x i1>,
157   iXLen);
159 define void @intrinsic_vse_mask_v_nxv8i64_nxv8i64(<vscale x 8 x i64> %0, ptr %1, <vscale x 8 x i1> %2, iXLen %3) nounwind {
160 ; CHECK-LABEL: intrinsic_vse_mask_v_nxv8i64_nxv8i64:
161 ; CHECK:       # %bb.0: # %entry
162 ; CHECK-NEXT:    vsetvli zero, a1, e64, m8, ta, ma
163 ; CHECK-NEXT:    vse64.v v8, (a0), v0.t
164 ; CHECK-NEXT:    ret
165 entry:
166   call void @llvm.riscv.vse.mask.nxv8i64(
167     <vscale x 8 x i64> %0,
168     ptr %1,
169     <vscale x 8 x i1> %2,
170     iXLen %3)
172   ret void
175 declare void @llvm.riscv.vse.nxv1f64(
176   <vscale x 1 x double>,
177   ptr,
178   iXLen);
180 define void @intrinsic_vse_v_nxv1f64_nxv1f64(<vscale x 1 x double> %0, ptr %1, iXLen %2) nounwind {
181 ; CHECK-LABEL: intrinsic_vse_v_nxv1f64_nxv1f64:
182 ; CHECK:       # %bb.0: # %entry
183 ; CHECK-NEXT:    vsetvli zero, a1, e64, m1, ta, ma
184 ; CHECK-NEXT:    vse64.v v8, (a0)
185 ; CHECK-NEXT:    ret
186 entry:
187   call void @llvm.riscv.vse.nxv1f64(
188     <vscale x 1 x double> %0,
189     ptr %1,
190     iXLen %2)
192   ret void
195 declare void @llvm.riscv.vse.mask.nxv1f64(
196   <vscale x 1 x double>,
197   ptr,
198   <vscale x 1 x i1>,
199   iXLen);
201 define void @intrinsic_vse_mask_v_nxv1f64_nxv1f64(<vscale x 1 x double> %0, ptr %1, <vscale x 1 x i1> %2, iXLen %3) nounwind {
202 ; CHECK-LABEL: intrinsic_vse_mask_v_nxv1f64_nxv1f64:
203 ; CHECK:       # %bb.0: # %entry
204 ; CHECK-NEXT:    vsetvli zero, a1, e64, m1, ta, ma
205 ; CHECK-NEXT:    vse64.v v8, (a0), v0.t
206 ; CHECK-NEXT:    ret
207 entry:
208   call void @llvm.riscv.vse.mask.nxv1f64(
209     <vscale x 1 x double> %0,
210     ptr %1,
211     <vscale x 1 x i1> %2,
212     iXLen %3)
214   ret void
217 declare void @llvm.riscv.vse.nxv2f64(
218   <vscale x 2 x double>,
219   ptr,
220   iXLen);
222 define void @intrinsic_vse_v_nxv2f64_nxv2f64(<vscale x 2 x double> %0, ptr %1, iXLen %2) nounwind {
223 ; CHECK-LABEL: intrinsic_vse_v_nxv2f64_nxv2f64:
224 ; CHECK:       # %bb.0: # %entry
225 ; CHECK-NEXT:    vsetvli zero, a1, e64, m2, ta, ma
226 ; CHECK-NEXT:    vse64.v v8, (a0)
227 ; CHECK-NEXT:    ret
228 entry:
229   call void @llvm.riscv.vse.nxv2f64(
230     <vscale x 2 x double> %0,
231     ptr %1,
232     iXLen %2)
234   ret void
237 declare void @llvm.riscv.vse.mask.nxv2f64(
238   <vscale x 2 x double>,
239   ptr,
240   <vscale x 2 x i1>,
241   iXLen);
243 define void @intrinsic_vse_mask_v_nxv2f64_nxv2f64(<vscale x 2 x double> %0, ptr %1, <vscale x 2 x i1> %2, iXLen %3) nounwind {
244 ; CHECK-LABEL: intrinsic_vse_mask_v_nxv2f64_nxv2f64:
245 ; CHECK:       # %bb.0: # %entry
246 ; CHECK-NEXT:    vsetvli zero, a1, e64, m2, ta, ma
247 ; CHECK-NEXT:    vse64.v v8, (a0), v0.t
248 ; CHECK-NEXT:    ret
249 entry:
250   call void @llvm.riscv.vse.mask.nxv2f64(
251     <vscale x 2 x double> %0,
252     ptr %1,
253     <vscale x 2 x i1> %2,
254     iXLen %3)
256   ret void
259 declare void @llvm.riscv.vse.nxv4f64(
260   <vscale x 4 x double>,
261   ptr,
262   iXLen);
264 define void @intrinsic_vse_v_nxv4f64_nxv4f64(<vscale x 4 x double> %0, ptr %1, iXLen %2) nounwind {
265 ; CHECK-LABEL: intrinsic_vse_v_nxv4f64_nxv4f64:
266 ; CHECK:       # %bb.0: # %entry
267 ; CHECK-NEXT:    vsetvli zero, a1, e64, m4, ta, ma
268 ; CHECK-NEXT:    vse64.v v8, (a0)
269 ; CHECK-NEXT:    ret
270 entry:
271   call void @llvm.riscv.vse.nxv4f64(
272     <vscale x 4 x double> %0,
273     ptr %1,
274     iXLen %2)
276   ret void
279 declare void @llvm.riscv.vse.mask.nxv4f64(
280   <vscale x 4 x double>,
281   ptr,
282   <vscale x 4 x i1>,
283   iXLen);
285 define void @intrinsic_vse_mask_v_nxv4f64_nxv4f64(<vscale x 4 x double> %0, ptr %1, <vscale x 4 x i1> %2, iXLen %3) nounwind {
286 ; CHECK-LABEL: intrinsic_vse_mask_v_nxv4f64_nxv4f64:
287 ; CHECK:       # %bb.0: # %entry
288 ; CHECK-NEXT:    vsetvli zero, a1, e64, m4, ta, ma
289 ; CHECK-NEXT:    vse64.v v8, (a0), v0.t
290 ; CHECK-NEXT:    ret
291 entry:
292   call void @llvm.riscv.vse.mask.nxv4f64(
293     <vscale x 4 x double> %0,
294     ptr %1,
295     <vscale x 4 x i1> %2,
296     iXLen %3)
298   ret void
301 declare void @llvm.riscv.vse.nxv8f64(
302   <vscale x 8 x double>,
303   ptr,
304   iXLen);
306 define void @intrinsic_vse_v_nxv8f64_nxv8f64(<vscale x 8 x double> %0, ptr %1, iXLen %2) nounwind {
307 ; CHECK-LABEL: intrinsic_vse_v_nxv8f64_nxv8f64:
308 ; CHECK:       # %bb.0: # %entry
309 ; CHECK-NEXT:    vsetvli zero, a1, e64, m8, ta, ma
310 ; CHECK-NEXT:    vse64.v v8, (a0)
311 ; CHECK-NEXT:    ret
312 entry:
313   call void @llvm.riscv.vse.nxv8f64(
314     <vscale x 8 x double> %0,
315     ptr %1,
316     iXLen %2)
318   ret void
321 declare void @llvm.riscv.vse.mask.nxv8f64(
322   <vscale x 8 x double>,
323   ptr,
324   <vscale x 8 x i1>,
325   iXLen);
327 define void @intrinsic_vse_mask_v_nxv8f64_nxv8f64(<vscale x 8 x double> %0, ptr %1, <vscale x 8 x i1> %2, iXLen %3) nounwind {
328 ; CHECK-LABEL: intrinsic_vse_mask_v_nxv8f64_nxv8f64:
329 ; CHECK:       # %bb.0: # %entry
330 ; CHECK-NEXT:    vsetvli zero, a1, e64, m8, ta, ma
331 ; CHECK-NEXT:    vse64.v v8, (a0), v0.t
332 ; CHECK-NEXT:    ret
333 entry:
334   call void @llvm.riscv.vse.mask.nxv8f64(
335     <vscale x 8 x double> %0,
336     ptr %1,
337     <vscale x 8 x i1> %2,
338     iXLen %3)
340   ret void
343 declare void @llvm.riscv.vse.nxv1i32(
344   <vscale x 1 x i32>,
345   ptr,
346   iXLen);
348 define void @intrinsic_vse_v_nxv1i32_nxv1i32(<vscale x 1 x i32> %0, ptr %1, iXLen %2) nounwind {
349 ; CHECK-LABEL: intrinsic_vse_v_nxv1i32_nxv1i32:
350 ; CHECK:       # %bb.0: # %entry
351 ; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, ta, ma
352 ; CHECK-NEXT:    vse32.v v8, (a0)
353 ; CHECK-NEXT:    ret
354 entry:
355   call void @llvm.riscv.vse.nxv1i32(
356     <vscale x 1 x i32> %0,
357     ptr %1,
358     iXLen %2)
360   ret void
363 declare void @llvm.riscv.vse.mask.nxv1i32(
364   <vscale x 1 x i32>,
365   ptr,
366   <vscale x 1 x i1>,
367   iXLen);
369 define void @intrinsic_vse_mask_v_nxv1i32_nxv1i32(<vscale x 1 x i32> %0, ptr %1, <vscale x 1 x i1> %2, iXLen %3) nounwind {
370 ; CHECK-LABEL: intrinsic_vse_mask_v_nxv1i32_nxv1i32:
371 ; CHECK:       # %bb.0: # %entry
372 ; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, ta, ma
373 ; CHECK-NEXT:    vse32.v v8, (a0), v0.t
374 ; CHECK-NEXT:    ret
375 entry:
376   call void @llvm.riscv.vse.mask.nxv1i32(
377     <vscale x 1 x i32> %0,
378     ptr %1,
379     <vscale x 1 x i1> %2,
380     iXLen %3)
382   ret void
385 declare void @llvm.riscv.vse.nxv2i32(
386   <vscale x 2 x i32>,
387   ptr,
388   iXLen);
390 define void @intrinsic_vse_v_nxv2i32_nxv2i32(<vscale x 2 x i32> %0, ptr %1, iXLen %2) nounwind {
391 ; CHECK-LABEL: intrinsic_vse_v_nxv2i32_nxv2i32:
392 ; CHECK:       # %bb.0: # %entry
393 ; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, ma
394 ; CHECK-NEXT:    vse32.v v8, (a0)
395 ; CHECK-NEXT:    ret
396 entry:
397   call void @llvm.riscv.vse.nxv2i32(
398     <vscale x 2 x i32> %0,
399     ptr %1,
400     iXLen %2)
402   ret void
405 declare void @llvm.riscv.vse.mask.nxv2i32(
406   <vscale x 2 x i32>,
407   ptr,
408   <vscale x 2 x i1>,
409   iXLen);
411 define void @intrinsic_vse_mask_v_nxv2i32_nxv2i32(<vscale x 2 x i32> %0, ptr %1, <vscale x 2 x i1> %2, iXLen %3) nounwind {
412 ; CHECK-LABEL: intrinsic_vse_mask_v_nxv2i32_nxv2i32:
413 ; CHECK:       # %bb.0: # %entry
414 ; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, ma
415 ; CHECK-NEXT:    vse32.v v8, (a0), v0.t
416 ; CHECK-NEXT:    ret
417 entry:
418   call void @llvm.riscv.vse.mask.nxv2i32(
419     <vscale x 2 x i32> %0,
420     ptr %1,
421     <vscale x 2 x i1> %2,
422     iXLen %3)
424   ret void
427 declare void @llvm.riscv.vse.nxv4i32(
428   <vscale x 4 x i32>,
429   ptr,
430   iXLen);
432 define void @intrinsic_vse_v_nxv4i32_nxv4i32(<vscale x 4 x i32> %0, ptr %1, iXLen %2) nounwind {
433 ; CHECK-LABEL: intrinsic_vse_v_nxv4i32_nxv4i32:
434 ; CHECK:       # %bb.0: # %entry
435 ; CHECK-NEXT:    vsetvli zero, a1, e32, m2, ta, ma
436 ; CHECK-NEXT:    vse32.v v8, (a0)
437 ; CHECK-NEXT:    ret
438 entry:
439   call void @llvm.riscv.vse.nxv4i32(
440     <vscale x 4 x i32> %0,
441     ptr %1,
442     iXLen %2)
444   ret void
447 declare void @llvm.riscv.vse.mask.nxv4i32(
448   <vscale x 4 x i32>,
449   ptr,
450   <vscale x 4 x i1>,
451   iXLen);
453 define void @intrinsic_vse_mask_v_nxv4i32_nxv4i32(<vscale x 4 x i32> %0, ptr %1, <vscale x 4 x i1> %2, iXLen %3) nounwind {
454 ; CHECK-LABEL: intrinsic_vse_mask_v_nxv4i32_nxv4i32:
455 ; CHECK:       # %bb.0: # %entry
456 ; CHECK-NEXT:    vsetvli zero, a1, e32, m2, ta, ma
457 ; CHECK-NEXT:    vse32.v v8, (a0), v0.t
458 ; CHECK-NEXT:    ret
459 entry:
460   call void @llvm.riscv.vse.mask.nxv4i32(
461     <vscale x 4 x i32> %0,
462     ptr %1,
463     <vscale x 4 x i1> %2,
464     iXLen %3)
466   ret void
469 declare void @llvm.riscv.vse.nxv8i32(
470   <vscale x 8 x i32>,
471   ptr,
472   iXLen);
474 define void @intrinsic_vse_v_nxv8i32_nxv8i32(<vscale x 8 x i32> %0, ptr %1, iXLen %2) nounwind {
475 ; CHECK-LABEL: intrinsic_vse_v_nxv8i32_nxv8i32:
476 ; CHECK:       # %bb.0: # %entry
477 ; CHECK-NEXT:    vsetvli zero, a1, e32, m4, ta, ma
478 ; CHECK-NEXT:    vse32.v v8, (a0)
479 ; CHECK-NEXT:    ret
480 entry:
481   call void @llvm.riscv.vse.nxv8i32(
482     <vscale x 8 x i32> %0,
483     ptr %1,
484     iXLen %2)
486   ret void
489 declare void @llvm.riscv.vse.mask.nxv8i32(
490   <vscale x 8 x i32>,
491   ptr,
492   <vscale x 8 x i1>,
493   iXLen);
495 define void @intrinsic_vse_mask_v_nxv8i32_nxv8i32(<vscale x 8 x i32> %0, ptr %1, <vscale x 8 x i1> %2, iXLen %3) nounwind {
496 ; CHECK-LABEL: intrinsic_vse_mask_v_nxv8i32_nxv8i32:
497 ; CHECK:       # %bb.0: # %entry
498 ; CHECK-NEXT:    vsetvli zero, a1, e32, m4, ta, ma
499 ; CHECK-NEXT:    vse32.v v8, (a0), v0.t
500 ; CHECK-NEXT:    ret
501 entry:
502   call void @llvm.riscv.vse.mask.nxv8i32(
503     <vscale x 8 x i32> %0,
504     ptr %1,
505     <vscale x 8 x i1> %2,
506     iXLen %3)
508   ret void
511 declare void @llvm.riscv.vse.nxv16i32(
512   <vscale x 16 x i32>,
513   ptr,
514   iXLen);
516 define void @intrinsic_vse_v_nxv16i32_nxv16i32(<vscale x 16 x i32> %0, ptr %1, iXLen %2) nounwind {
517 ; CHECK-LABEL: intrinsic_vse_v_nxv16i32_nxv16i32:
518 ; CHECK:       # %bb.0: # %entry
519 ; CHECK-NEXT:    vsetvli zero, a1, e32, m8, ta, ma
520 ; CHECK-NEXT:    vse32.v v8, (a0)
521 ; CHECK-NEXT:    ret
522 entry:
523   call void @llvm.riscv.vse.nxv16i32(
524     <vscale x 16 x i32> %0,
525     ptr %1,
526     iXLen %2)
528   ret void
531 declare void @llvm.riscv.vse.mask.nxv16i32(
532   <vscale x 16 x i32>,
533   ptr,
534   <vscale x 16 x i1>,
535   iXLen);
537 define void @intrinsic_vse_mask_v_nxv16i32_nxv16i32(<vscale x 16 x i32> %0, ptr %1, <vscale x 16 x i1> %2, iXLen %3) nounwind {
538 ; CHECK-LABEL: intrinsic_vse_mask_v_nxv16i32_nxv16i32:
539 ; CHECK:       # %bb.0: # %entry
540 ; CHECK-NEXT:    vsetvli zero, a1, e32, m8, ta, ma
541 ; CHECK-NEXT:    vse32.v v8, (a0), v0.t
542 ; CHECK-NEXT:    ret
543 entry:
544   call void @llvm.riscv.vse.mask.nxv16i32(
545     <vscale x 16 x i32> %0,
546     ptr %1,
547     <vscale x 16 x i1> %2,
548     iXLen %3)
550   ret void
553 declare void @llvm.riscv.vse.nxv1f32(
554   <vscale x 1 x float>,
555   ptr,
556   iXLen);
558 define void @intrinsic_vse_v_nxv1f32_nxv1f32(<vscale x 1 x float> %0, ptr %1, iXLen %2) nounwind {
559 ; CHECK-LABEL: intrinsic_vse_v_nxv1f32_nxv1f32:
560 ; CHECK:       # %bb.0: # %entry
561 ; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, ta, ma
562 ; CHECK-NEXT:    vse32.v v8, (a0)
563 ; CHECK-NEXT:    ret
564 entry:
565   call void @llvm.riscv.vse.nxv1f32(
566     <vscale x 1 x float> %0,
567     ptr %1,
568     iXLen %2)
570   ret void
573 declare void @llvm.riscv.vse.mask.nxv1f32(
574   <vscale x 1 x float>,
575   ptr,
576   <vscale x 1 x i1>,
577   iXLen);
579 define void @intrinsic_vse_mask_v_nxv1f32_nxv1f32(<vscale x 1 x float> %0, ptr %1, <vscale x 1 x i1> %2, iXLen %3) nounwind {
580 ; CHECK-LABEL: intrinsic_vse_mask_v_nxv1f32_nxv1f32:
581 ; CHECK:       # %bb.0: # %entry
582 ; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, ta, ma
583 ; CHECK-NEXT:    vse32.v v8, (a0), v0.t
584 ; CHECK-NEXT:    ret
585 entry:
586   call void @llvm.riscv.vse.mask.nxv1f32(
587     <vscale x 1 x float> %0,
588     ptr %1,
589     <vscale x 1 x i1> %2,
590     iXLen %3)
592   ret void
595 declare void @llvm.riscv.vse.nxv2f32(
596   <vscale x 2 x float>,
597   ptr,
598   iXLen);
600 define void @intrinsic_vse_v_nxv2f32_nxv2f32(<vscale x 2 x float> %0, ptr %1, iXLen %2) nounwind {
601 ; CHECK-LABEL: intrinsic_vse_v_nxv2f32_nxv2f32:
602 ; CHECK:       # %bb.0: # %entry
603 ; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, ma
604 ; CHECK-NEXT:    vse32.v v8, (a0)
605 ; CHECK-NEXT:    ret
606 entry:
607   call void @llvm.riscv.vse.nxv2f32(
608     <vscale x 2 x float> %0,
609     ptr %1,
610     iXLen %2)
612   ret void
615 declare void @llvm.riscv.vse.mask.nxv2f32(
616   <vscale x 2 x float>,
617   ptr,
618   <vscale x 2 x i1>,
619   iXLen);
621 define void @intrinsic_vse_mask_v_nxv2f32_nxv2f32(<vscale x 2 x float> %0, ptr %1, <vscale x 2 x i1> %2, iXLen %3) nounwind {
622 ; CHECK-LABEL: intrinsic_vse_mask_v_nxv2f32_nxv2f32:
623 ; CHECK:       # %bb.0: # %entry
624 ; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, ma
625 ; CHECK-NEXT:    vse32.v v8, (a0), v0.t
626 ; CHECK-NEXT:    ret
627 entry:
628   call void @llvm.riscv.vse.mask.nxv2f32(
629     <vscale x 2 x float> %0,
630     ptr %1,
631     <vscale x 2 x i1> %2,
632     iXLen %3)
634   ret void
637 declare void @llvm.riscv.vse.nxv4f32(
638   <vscale x 4 x float>,
639   ptr,
640   iXLen);
642 define void @intrinsic_vse_v_nxv4f32_nxv4f32(<vscale x 4 x float> %0, ptr %1, iXLen %2) nounwind {
643 ; CHECK-LABEL: intrinsic_vse_v_nxv4f32_nxv4f32:
644 ; CHECK:       # %bb.0: # %entry
645 ; CHECK-NEXT:    vsetvli zero, a1, e32, m2, ta, ma
646 ; CHECK-NEXT:    vse32.v v8, (a0)
647 ; CHECK-NEXT:    ret
648 entry:
649   call void @llvm.riscv.vse.nxv4f32(
650     <vscale x 4 x float> %0,
651     ptr %1,
652     iXLen %2)
654   ret void
657 declare void @llvm.riscv.vse.mask.nxv4f32(
658   <vscale x 4 x float>,
659   ptr,
660   <vscale x 4 x i1>,
661   iXLen);
663 define void @intrinsic_vse_mask_v_nxv4f32_nxv4f32(<vscale x 4 x float> %0, ptr %1, <vscale x 4 x i1> %2, iXLen %3) nounwind {
664 ; CHECK-LABEL: intrinsic_vse_mask_v_nxv4f32_nxv4f32:
665 ; CHECK:       # %bb.0: # %entry
666 ; CHECK-NEXT:    vsetvli zero, a1, e32, m2, ta, ma
667 ; CHECK-NEXT:    vse32.v v8, (a0), v0.t
668 ; CHECK-NEXT:    ret
669 entry:
670   call void @llvm.riscv.vse.mask.nxv4f32(
671     <vscale x 4 x float> %0,
672     ptr %1,
673     <vscale x 4 x i1> %2,
674     iXLen %3)
676   ret void
679 declare void @llvm.riscv.vse.nxv8f32(
680   <vscale x 8 x float>,
681   ptr,
682   iXLen);
684 define void @intrinsic_vse_v_nxv8f32_nxv8f32(<vscale x 8 x float> %0, ptr %1, iXLen %2) nounwind {
685 ; CHECK-LABEL: intrinsic_vse_v_nxv8f32_nxv8f32:
686 ; CHECK:       # %bb.0: # %entry
687 ; CHECK-NEXT:    vsetvli zero, a1, e32, m4, ta, ma
688 ; CHECK-NEXT:    vse32.v v8, (a0)
689 ; CHECK-NEXT:    ret
690 entry:
691   call void @llvm.riscv.vse.nxv8f32(
692     <vscale x 8 x float> %0,
693     ptr %1,
694     iXLen %2)
696   ret void
699 declare void @llvm.riscv.vse.mask.nxv8f32(
700   <vscale x 8 x float>,
701   ptr,
702   <vscale x 8 x i1>,
703   iXLen);
705 define void @intrinsic_vse_mask_v_nxv8f32_nxv8f32(<vscale x 8 x float> %0, ptr %1, <vscale x 8 x i1> %2, iXLen %3) nounwind {
706 ; CHECK-LABEL: intrinsic_vse_mask_v_nxv8f32_nxv8f32:
707 ; CHECK:       # %bb.0: # %entry
708 ; CHECK-NEXT:    vsetvli zero, a1, e32, m4, ta, ma
709 ; CHECK-NEXT:    vse32.v v8, (a0), v0.t
710 ; CHECK-NEXT:    ret
711 entry:
712   call void @llvm.riscv.vse.mask.nxv8f32(
713     <vscale x 8 x float> %0,
714     ptr %1,
715     <vscale x 8 x i1> %2,
716     iXLen %3)
718   ret void
721 declare void @llvm.riscv.vse.nxv16f32(
722   <vscale x 16 x float>,
723   ptr,
724   iXLen);
726 define void @intrinsic_vse_v_nxv16f32_nxv16f32(<vscale x 16 x float> %0, ptr %1, iXLen %2) nounwind {
727 ; CHECK-LABEL: intrinsic_vse_v_nxv16f32_nxv16f32:
728 ; CHECK:       # %bb.0: # %entry
729 ; CHECK-NEXT:    vsetvli zero, a1, e32, m8, ta, ma
730 ; CHECK-NEXT:    vse32.v v8, (a0)
731 ; CHECK-NEXT:    ret
732 entry:
733   call void @llvm.riscv.vse.nxv16f32(
734     <vscale x 16 x float> %0,
735     ptr %1,
736     iXLen %2)
738   ret void
741 declare void @llvm.riscv.vse.mask.nxv16f32(
742   <vscale x 16 x float>,
743   ptr,
744   <vscale x 16 x i1>,
745   iXLen);
747 define void @intrinsic_vse_mask_v_nxv16f32_nxv16f32(<vscale x 16 x float> %0, ptr %1, <vscale x 16 x i1> %2, iXLen %3) nounwind {
748 ; CHECK-LABEL: intrinsic_vse_mask_v_nxv16f32_nxv16f32:
749 ; CHECK:       # %bb.0: # %entry
750 ; CHECK-NEXT:    vsetvli zero, a1, e32, m8, ta, ma
751 ; CHECK-NEXT:    vse32.v v8, (a0), v0.t
752 ; CHECK-NEXT:    ret
753 entry:
754   call void @llvm.riscv.vse.mask.nxv16f32(
755     <vscale x 16 x float> %0,
756     ptr %1,
757     <vscale x 16 x i1> %2,
758     iXLen %3)
760   ret void
763 declare void @llvm.riscv.vse.nxv1i16(
764   <vscale x 1 x i16>,
765   ptr,
766   iXLen);
768 define void @intrinsic_vse_v_nxv1i16_nxv1i16(<vscale x 1 x i16> %0, ptr %1, iXLen %2) nounwind {
769 ; CHECK-LABEL: intrinsic_vse_v_nxv1i16_nxv1i16:
770 ; CHECK:       # %bb.0: # %entry
771 ; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma
772 ; CHECK-NEXT:    vse16.v v8, (a0)
773 ; CHECK-NEXT:    ret
774 entry:
775   call void @llvm.riscv.vse.nxv1i16(
776     <vscale x 1 x i16> %0,
777     ptr %1,
778     iXLen %2)
780   ret void
783 declare void @llvm.riscv.vse.mask.nxv1i16(
784   <vscale x 1 x i16>,
785   ptr,
786   <vscale x 1 x i1>,
787   iXLen);
789 define void @intrinsic_vse_mask_v_nxv1i16_nxv1i16(<vscale x 1 x i16> %0, ptr %1, <vscale x 1 x i1> %2, iXLen %3) nounwind {
790 ; CHECK-LABEL: intrinsic_vse_mask_v_nxv1i16_nxv1i16:
791 ; CHECK:       # %bb.0: # %entry
792 ; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma
793 ; CHECK-NEXT:    vse16.v v8, (a0), v0.t
794 ; CHECK-NEXT:    ret
795 entry:
796   call void @llvm.riscv.vse.mask.nxv1i16(
797     <vscale x 1 x i16> %0,
798     ptr %1,
799     <vscale x 1 x i1> %2,
800     iXLen %3)
802   ret void
805 declare void @llvm.riscv.vse.nxv2i16(
806   <vscale x 2 x i16>,
807   ptr,
808   iXLen);
810 define void @intrinsic_vse_v_nxv2i16_nxv2i16(<vscale x 2 x i16> %0, ptr %1, iXLen %2) nounwind {
811 ; CHECK-LABEL: intrinsic_vse_v_nxv2i16_nxv2i16:
812 ; CHECK:       # %bb.0: # %entry
813 ; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma
814 ; CHECK-NEXT:    vse16.v v8, (a0)
815 ; CHECK-NEXT:    ret
816 entry:
817   call void @llvm.riscv.vse.nxv2i16(
818     <vscale x 2 x i16> %0,
819     ptr %1,
820     iXLen %2)
822   ret void
825 declare void @llvm.riscv.vse.mask.nxv2i16(
826   <vscale x 2 x i16>,
827   ptr,
828   <vscale x 2 x i1>,
829   iXLen);
831 define void @intrinsic_vse_mask_v_nxv2i16_nxv2i16(<vscale x 2 x i16> %0, ptr %1, <vscale x 2 x i1> %2, iXLen %3) nounwind {
832 ; CHECK-LABEL: intrinsic_vse_mask_v_nxv2i16_nxv2i16:
833 ; CHECK:       # %bb.0: # %entry
834 ; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma
835 ; CHECK-NEXT:    vse16.v v8, (a0), v0.t
836 ; CHECK-NEXT:    ret
837 entry:
838   call void @llvm.riscv.vse.mask.nxv2i16(
839     <vscale x 2 x i16> %0,
840     ptr %1,
841     <vscale x 2 x i1> %2,
842     iXLen %3)
844   ret void
847 declare void @llvm.riscv.vse.nxv4i16(
848   <vscale x 4 x i16>,
849   ptr,
850   iXLen);
852 define void @intrinsic_vse_v_nxv4i16_nxv4i16(<vscale x 4 x i16> %0, ptr %1, iXLen %2) nounwind {
853 ; CHECK-LABEL: intrinsic_vse_v_nxv4i16_nxv4i16:
854 ; CHECK:       # %bb.0: # %entry
855 ; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma
856 ; CHECK-NEXT:    vse16.v v8, (a0)
857 ; CHECK-NEXT:    ret
858 entry:
859   call void @llvm.riscv.vse.nxv4i16(
860     <vscale x 4 x i16> %0,
861     ptr %1,
862     iXLen %2)
864   ret void
867 declare void @llvm.riscv.vse.mask.nxv4i16(
868   <vscale x 4 x i16>,
869   ptr,
870   <vscale x 4 x i1>,
871   iXLen);
873 define void @intrinsic_vse_mask_v_nxv4i16_nxv4i16(<vscale x 4 x i16> %0, ptr %1, <vscale x 4 x i1> %2, iXLen %3) nounwind {
874 ; CHECK-LABEL: intrinsic_vse_mask_v_nxv4i16_nxv4i16:
875 ; CHECK:       # %bb.0: # %entry
876 ; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma
877 ; CHECK-NEXT:    vse16.v v8, (a0), v0.t
878 ; CHECK-NEXT:    ret
879 entry:
880   call void @llvm.riscv.vse.mask.nxv4i16(
881     <vscale x 4 x i16> %0,
882     ptr %1,
883     <vscale x 4 x i1> %2,
884     iXLen %3)
886   ret void
889 declare void @llvm.riscv.vse.nxv8i16(
890   <vscale x 8 x i16>,
891   ptr,
892   iXLen);
894 define void @intrinsic_vse_v_nxv8i16_nxv8i16(<vscale x 8 x i16> %0, ptr %1, iXLen %2) nounwind {
895 ; CHECK-LABEL: intrinsic_vse_v_nxv8i16_nxv8i16:
896 ; CHECK:       # %bb.0: # %entry
897 ; CHECK-NEXT:    vsetvli zero, a1, e16, m2, ta, ma
898 ; CHECK-NEXT:    vse16.v v8, (a0)
899 ; CHECK-NEXT:    ret
900 entry:
901   call void @llvm.riscv.vse.nxv8i16(
902     <vscale x 8 x i16> %0,
903     ptr %1,
904     iXLen %2)
906   ret void
909 declare void @llvm.riscv.vse.mask.nxv8i16(
910   <vscale x 8 x i16>,
911   ptr,
912   <vscale x 8 x i1>,
913   iXLen);
915 define void @intrinsic_vse_mask_v_nxv8i16_nxv8i16(<vscale x 8 x i16> %0, ptr %1, <vscale x 8 x i1> %2, iXLen %3) nounwind {
916 ; CHECK-LABEL: intrinsic_vse_mask_v_nxv8i16_nxv8i16:
917 ; CHECK:       # %bb.0: # %entry
918 ; CHECK-NEXT:    vsetvli zero, a1, e16, m2, ta, ma
919 ; CHECK-NEXT:    vse16.v v8, (a0), v0.t
920 ; CHECK-NEXT:    ret
921 entry:
922   call void @llvm.riscv.vse.mask.nxv8i16(
923     <vscale x 8 x i16> %0,
924     ptr %1,
925     <vscale x 8 x i1> %2,
926     iXLen %3)
928   ret void
931 declare void @llvm.riscv.vse.nxv16i16(
932   <vscale x 16 x i16>,
933   ptr,
934   iXLen);
936 define void @intrinsic_vse_v_nxv16i16_nxv16i16(<vscale x 16 x i16> %0, ptr %1, iXLen %2) nounwind {
937 ; CHECK-LABEL: intrinsic_vse_v_nxv16i16_nxv16i16:
938 ; CHECK:       # %bb.0: # %entry
939 ; CHECK-NEXT:    vsetvli zero, a1, e16, m4, ta, ma
940 ; CHECK-NEXT:    vse16.v v8, (a0)
941 ; CHECK-NEXT:    ret
942 entry:
943   call void @llvm.riscv.vse.nxv16i16(
944     <vscale x 16 x i16> %0,
945     ptr %1,
946     iXLen %2)
948   ret void
951 declare void @llvm.riscv.vse.mask.nxv16i16(
952   <vscale x 16 x i16>,
953   ptr,
954   <vscale x 16 x i1>,
955   iXLen);
957 define void @intrinsic_vse_mask_v_nxv16i16_nxv16i16(<vscale x 16 x i16> %0, ptr %1, <vscale x 16 x i1> %2, iXLen %3) nounwind {
958 ; CHECK-LABEL: intrinsic_vse_mask_v_nxv16i16_nxv16i16:
959 ; CHECK:       # %bb.0: # %entry
960 ; CHECK-NEXT:    vsetvli zero, a1, e16, m4, ta, ma
961 ; CHECK-NEXT:    vse16.v v8, (a0), v0.t
962 ; CHECK-NEXT:    ret
963 entry:
964   call void @llvm.riscv.vse.mask.nxv16i16(
965     <vscale x 16 x i16> %0,
966     ptr %1,
967     <vscale x 16 x i1> %2,
968     iXLen %3)
970   ret void
973 declare void @llvm.riscv.vse.nxv32i16(
974   <vscale x 32 x i16>,
975   ptr,
976   iXLen);
978 define void @intrinsic_vse_v_nxv32i16_nxv32i16(<vscale x 32 x i16> %0, ptr %1, iXLen %2) nounwind {
979 ; CHECK-LABEL: intrinsic_vse_v_nxv32i16_nxv32i16:
980 ; CHECK:       # %bb.0: # %entry
981 ; CHECK-NEXT:    vsetvli zero, a1, e16, m8, ta, ma
982 ; CHECK-NEXT:    vse16.v v8, (a0)
983 ; CHECK-NEXT:    ret
984 entry:
985   call void @llvm.riscv.vse.nxv32i16(
986     <vscale x 32 x i16> %0,
987     ptr %1,
988     iXLen %2)
990   ret void
993 declare void @llvm.riscv.vse.mask.nxv32i16(
994   <vscale x 32 x i16>,
995   ptr,
996   <vscale x 32 x i1>,
997   iXLen);
999 define void @intrinsic_vse_mask_v_nxv32i16_nxv32i16(<vscale x 32 x i16> %0, ptr %1, <vscale x 32 x i1> %2, iXLen %3) nounwind {
1000 ; CHECK-LABEL: intrinsic_vse_mask_v_nxv32i16_nxv32i16:
1001 ; CHECK:       # %bb.0: # %entry
1002 ; CHECK-NEXT:    vsetvli zero, a1, e16, m8, ta, ma
1003 ; CHECK-NEXT:    vse16.v v8, (a0), v0.t
1004 ; CHECK-NEXT:    ret
1005 entry:
1006   call void @llvm.riscv.vse.mask.nxv32i16(
1007     <vscale x 32 x i16> %0,
1008     ptr %1,
1009     <vscale x 32 x i1> %2,
1010     iXLen %3)
1012   ret void
1015 declare void @llvm.riscv.vse.nxv1f16(
1016   <vscale x 1 x half>,
1017   ptr,
1018   iXLen);
1020 define void @intrinsic_vse_v_nxv1f16_nxv1f16(<vscale x 1 x half> %0, ptr %1, iXLen %2) nounwind {
1021 ; CHECK-LABEL: intrinsic_vse_v_nxv1f16_nxv1f16:
1022 ; CHECK:       # %bb.0: # %entry
1023 ; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma
1024 ; CHECK-NEXT:    vse16.v v8, (a0)
1025 ; CHECK-NEXT:    ret
1026 entry:
1027   call void @llvm.riscv.vse.nxv1f16(
1028     <vscale x 1 x half> %0,
1029     ptr %1,
1030     iXLen %2)
1032   ret void
1035 declare void @llvm.riscv.vse.mask.nxv1f16(
1036   <vscale x 1 x half>,
1037   ptr,
1038   <vscale x 1 x i1>,
1039   iXLen);
1041 define void @intrinsic_vse_mask_v_nxv1f16_nxv1f16(<vscale x 1 x half> %0, ptr %1, <vscale x 1 x i1> %2, iXLen %3) nounwind {
1042 ; CHECK-LABEL: intrinsic_vse_mask_v_nxv1f16_nxv1f16:
1043 ; CHECK:       # %bb.0: # %entry
1044 ; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma
1045 ; CHECK-NEXT:    vse16.v v8, (a0), v0.t
1046 ; CHECK-NEXT:    ret
1047 entry:
1048   call void @llvm.riscv.vse.mask.nxv1f16(
1049     <vscale x 1 x half> %0,
1050     ptr %1,
1051     <vscale x 1 x i1> %2,
1052     iXLen %3)
1054   ret void
1057 declare void @llvm.riscv.vse.nxv2f16(
1058   <vscale x 2 x half>,
1059   ptr,
1060   iXLen);
1062 define void @intrinsic_vse_v_nxv2f16_nxv2f16(<vscale x 2 x half> %0, ptr %1, iXLen %2) nounwind {
1063 ; CHECK-LABEL: intrinsic_vse_v_nxv2f16_nxv2f16:
1064 ; CHECK:       # %bb.0: # %entry
1065 ; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma
1066 ; CHECK-NEXT:    vse16.v v8, (a0)
1067 ; CHECK-NEXT:    ret
1068 entry:
1069   call void @llvm.riscv.vse.nxv2f16(
1070     <vscale x 2 x half> %0,
1071     ptr %1,
1072     iXLen %2)
1074   ret void
1077 declare void @llvm.riscv.vse.mask.nxv2f16(
1078   <vscale x 2 x half>,
1079   ptr,
1080   <vscale x 2 x i1>,
1081   iXLen);
1083 define void @intrinsic_vse_mask_v_nxv2f16_nxv2f16(<vscale x 2 x half> %0, ptr %1, <vscale x 2 x i1> %2, iXLen %3) nounwind {
1084 ; CHECK-LABEL: intrinsic_vse_mask_v_nxv2f16_nxv2f16:
1085 ; CHECK:       # %bb.0: # %entry
1086 ; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma
1087 ; CHECK-NEXT:    vse16.v v8, (a0), v0.t
1088 ; CHECK-NEXT:    ret
1089 entry:
1090   call void @llvm.riscv.vse.mask.nxv2f16(
1091     <vscale x 2 x half> %0,
1092     ptr %1,
1093     <vscale x 2 x i1> %2,
1094     iXLen %3)
1096   ret void
1099 declare void @llvm.riscv.vse.nxv4f16(
1100   <vscale x 4 x half>,
1101   ptr,
1102   iXLen);
1104 define void @intrinsic_vse_v_nxv4f16_nxv4f16(<vscale x 4 x half> %0, ptr %1, iXLen %2) nounwind {
1105 ; CHECK-LABEL: intrinsic_vse_v_nxv4f16_nxv4f16:
1106 ; CHECK:       # %bb.0: # %entry
1107 ; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma
1108 ; CHECK-NEXT:    vse16.v v8, (a0)
1109 ; CHECK-NEXT:    ret
1110 entry:
1111   call void @llvm.riscv.vse.nxv4f16(
1112     <vscale x 4 x half> %0,
1113     ptr %1,
1114     iXLen %2)
1116   ret void
1119 declare void @llvm.riscv.vse.mask.nxv4f16(
1120   <vscale x 4 x half>,
1121   ptr,
1122   <vscale x 4 x i1>,
1123   iXLen);
1125 define void @intrinsic_vse_mask_v_nxv4f16_nxv4f16(<vscale x 4 x half> %0, ptr %1, <vscale x 4 x i1> %2, iXLen %3) nounwind {
1126 ; CHECK-LABEL: intrinsic_vse_mask_v_nxv4f16_nxv4f16:
1127 ; CHECK:       # %bb.0: # %entry
1128 ; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma
1129 ; CHECK-NEXT:    vse16.v v8, (a0), v0.t
1130 ; CHECK-NEXT:    ret
1131 entry:
1132   call void @llvm.riscv.vse.mask.nxv4f16(
1133     <vscale x 4 x half> %0,
1134     ptr %1,
1135     <vscale x 4 x i1> %2,
1136     iXLen %3)
1138   ret void
1141 declare void @llvm.riscv.vse.nxv8f16(
1142   <vscale x 8 x half>,
1143   ptr,
1144   iXLen);
1146 define void @intrinsic_vse_v_nxv8f16_nxv8f16(<vscale x 8 x half> %0, ptr %1, iXLen %2) nounwind {
1147 ; CHECK-LABEL: intrinsic_vse_v_nxv8f16_nxv8f16:
1148 ; CHECK:       # %bb.0: # %entry
1149 ; CHECK-NEXT:    vsetvli zero, a1, e16, m2, ta, ma
1150 ; CHECK-NEXT:    vse16.v v8, (a0)
1151 ; CHECK-NEXT:    ret
1152 entry:
1153   call void @llvm.riscv.vse.nxv8f16(
1154     <vscale x 8 x half> %0,
1155     ptr %1,
1156     iXLen %2)
1158   ret void
1161 declare void @llvm.riscv.vse.mask.nxv8f16(
1162   <vscale x 8 x half>,
1163   ptr,
1164   <vscale x 8 x i1>,
1165   iXLen);
1167 define void @intrinsic_vse_mask_v_nxv8f16_nxv8f16(<vscale x 8 x half> %0, ptr %1, <vscale x 8 x i1> %2, iXLen %3) nounwind {
1168 ; CHECK-LABEL: intrinsic_vse_mask_v_nxv8f16_nxv8f16:
1169 ; CHECK:       # %bb.0: # %entry
1170 ; CHECK-NEXT:    vsetvli zero, a1, e16, m2, ta, ma
1171 ; CHECK-NEXT:    vse16.v v8, (a0), v0.t
1172 ; CHECK-NEXT:    ret
1173 entry:
1174   call void @llvm.riscv.vse.mask.nxv8f16(
1175     <vscale x 8 x half> %0,
1176     ptr %1,
1177     <vscale x 8 x i1> %2,
1178     iXLen %3)
1180   ret void
1183 declare void @llvm.riscv.vse.nxv16f16(
1184   <vscale x 16 x half>,
1185   ptr,
1186   iXLen);
1188 define void @intrinsic_vse_v_nxv16f16_nxv16f16(<vscale x 16 x half> %0, ptr %1, iXLen %2) nounwind {
1189 ; CHECK-LABEL: intrinsic_vse_v_nxv16f16_nxv16f16:
1190 ; CHECK:       # %bb.0: # %entry
1191 ; CHECK-NEXT:    vsetvli zero, a1, e16, m4, ta, ma
1192 ; CHECK-NEXT:    vse16.v v8, (a0)
1193 ; CHECK-NEXT:    ret
1194 entry:
1195   call void @llvm.riscv.vse.nxv16f16(
1196     <vscale x 16 x half> %0,
1197     ptr %1,
1198     iXLen %2)
1200   ret void
1203 declare void @llvm.riscv.vse.mask.nxv16f16(
1204   <vscale x 16 x half>,
1205   ptr,
1206   <vscale x 16 x i1>,
1207   iXLen);
1209 define void @intrinsic_vse_mask_v_nxv16f16_nxv16f16(<vscale x 16 x half> %0, ptr %1, <vscale x 16 x i1> %2, iXLen %3) nounwind {
1210 ; CHECK-LABEL: intrinsic_vse_mask_v_nxv16f16_nxv16f16:
1211 ; CHECK:       # %bb.0: # %entry
1212 ; CHECK-NEXT:    vsetvli zero, a1, e16, m4, ta, ma
1213 ; CHECK-NEXT:    vse16.v v8, (a0), v0.t
1214 ; CHECK-NEXT:    ret
1215 entry:
1216   call void @llvm.riscv.vse.mask.nxv16f16(
1217     <vscale x 16 x half> %0,
1218     ptr %1,
1219     <vscale x 16 x i1> %2,
1220     iXLen %3)
1222   ret void
1225 declare void @llvm.riscv.vse.nxv32f16(
1226   <vscale x 32 x half>,
1227   ptr,
1228   iXLen);
1230 define void @intrinsic_vse_v_nxv32f16_nxv32f16(<vscale x 32 x half> %0, ptr %1, iXLen %2) nounwind {
1231 ; CHECK-LABEL: intrinsic_vse_v_nxv32f16_nxv32f16:
1232 ; CHECK:       # %bb.0: # %entry
1233 ; CHECK-NEXT:    vsetvli zero, a1, e16, m8, ta, ma
1234 ; CHECK-NEXT:    vse16.v v8, (a0)
1235 ; CHECK-NEXT:    ret
1236 entry:
1237   call void @llvm.riscv.vse.nxv32f16(
1238     <vscale x 32 x half> %0,
1239     ptr %1,
1240     iXLen %2)
1242   ret void
1245 declare void @llvm.riscv.vse.mask.nxv32f16(
1246   <vscale x 32 x half>,
1247   ptr,
1248   <vscale x 32 x i1>,
1249   iXLen);
1251 define void @intrinsic_vse_mask_v_nxv32f16_nxv32f16(<vscale x 32 x half> %0, ptr %1, <vscale x 32 x i1> %2, iXLen %3) nounwind {
1252 ; CHECK-LABEL: intrinsic_vse_mask_v_nxv32f16_nxv32f16:
1253 ; CHECK:       # %bb.0: # %entry
1254 ; CHECK-NEXT:    vsetvli zero, a1, e16, m8, ta, ma
1255 ; CHECK-NEXT:    vse16.v v8, (a0), v0.t
1256 ; CHECK-NEXT:    ret
1257 entry:
1258   call void @llvm.riscv.vse.mask.nxv32f16(
1259     <vscale x 32 x half> %0,
1260     ptr %1,
1261     <vscale x 32 x i1> %2,
1262     iXLen %3)
1264   ret void
1267 declare void @llvm.riscv.vse.nxv1bf16(
1268   <vscale x 1 x bfloat>,
1269   ptr,
1270   iXLen);
1272 define void @intrinsic_vse_v_nxv1bf16_nxv1bf16(<vscale x 1 x bfloat> %0, ptr %1, iXLen %2) nounwind {
1273 ; CHECK-LABEL: intrinsic_vse_v_nxv1bf16_nxv1bf16:
1274 ; CHECK:       # %bb.0: # %entry
1275 ; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma
1276 ; CHECK-NEXT:    vse16.v v8, (a0)
1277 ; CHECK-NEXT:    ret
1278 entry:
1279   call void @llvm.riscv.vse.nxv1bf16(
1280     <vscale x 1 x bfloat> %0,
1281     ptr %1,
1282     iXLen %2)
1284   ret void
1287 declare void @llvm.riscv.vse.mask.nxv1bf16(
1288   <vscale x 1 x bfloat>,
1289   ptr,
1290   <vscale x 1 x i1>,
1291   iXLen);
1293 define void @intrinsic_vse_mask_v_nxv1bf16_nxv1bf16(<vscale x 1 x bfloat> %0, ptr %1, <vscale x 1 x i1> %2, iXLen %3) nounwind {
1294 ; CHECK-LABEL: intrinsic_vse_mask_v_nxv1bf16_nxv1bf16:
1295 ; CHECK:       # %bb.0: # %entry
1296 ; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma
1297 ; CHECK-NEXT:    vse16.v v8, (a0), v0.t
1298 ; CHECK-NEXT:    ret
1299 entry:
1300   call void @llvm.riscv.vse.mask.nxv1bf16(
1301     <vscale x 1 x bfloat> %0,
1302     ptr %1,
1303     <vscale x 1 x i1> %2,
1304     iXLen %3)
1306   ret void
1309 declare void @llvm.riscv.vse.nxv2bf16(
1310   <vscale x 2 x bfloat>,
1311   ptr,
1312   iXLen);
1314 define void @intrinsic_vse_v_nxv2bf16_nxv2bf16(<vscale x 2 x bfloat> %0, ptr %1, iXLen %2) nounwind {
1315 ; CHECK-LABEL: intrinsic_vse_v_nxv2bf16_nxv2bf16:
1316 ; CHECK:       # %bb.0: # %entry
1317 ; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma
1318 ; CHECK-NEXT:    vse16.v v8, (a0)
1319 ; CHECK-NEXT:    ret
1320 entry:
1321   call void @llvm.riscv.vse.nxv2bf16(
1322     <vscale x 2 x bfloat> %0,
1323     ptr %1,
1324     iXLen %2)
1326   ret void
1329 declare void @llvm.riscv.vse.mask.nxv2bf16(
1330   <vscale x 2 x bfloat>,
1331   ptr,
1332   <vscale x 2 x i1>,
1333   iXLen);
1335 define void @intrinsic_vse_mask_v_nxv2bf16_nxv2bf16(<vscale x 2 x bfloat> %0, ptr %1, <vscale x 2 x i1> %2, iXLen %3) nounwind {
1336 ; CHECK-LABEL: intrinsic_vse_mask_v_nxv2bf16_nxv2bf16:
1337 ; CHECK:       # %bb.0: # %entry
1338 ; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma
1339 ; CHECK-NEXT:    vse16.v v8, (a0), v0.t
1340 ; CHECK-NEXT:    ret
1341 entry:
1342   call void @llvm.riscv.vse.mask.nxv2bf16(
1343     <vscale x 2 x bfloat> %0,
1344     ptr %1,
1345     <vscale x 2 x i1> %2,
1346     iXLen %3)
1348   ret void
1351 declare void @llvm.riscv.vse.nxv4bf16(
1352   <vscale x 4 x bfloat>,
1353   ptr,
1354   iXLen);
1356 define void @intrinsic_vse_v_nxv4bf16_nxv4bf16(<vscale x 4 x bfloat> %0, ptr %1, iXLen %2) nounwind {
1357 ; CHECK-LABEL: intrinsic_vse_v_nxv4bf16_nxv4bf16:
1358 ; CHECK:       # %bb.0: # %entry
1359 ; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma
1360 ; CHECK-NEXT:    vse16.v v8, (a0)
1361 ; CHECK-NEXT:    ret
1362 entry:
1363   call void @llvm.riscv.vse.nxv4bf16(
1364     <vscale x 4 x bfloat> %0,
1365     ptr %1,
1366     iXLen %2)
1368   ret void
1371 declare void @llvm.riscv.vse.mask.nxv4bf16(
1372   <vscale x 4 x bfloat>,
1373   ptr,
1374   <vscale x 4 x i1>,
1375   iXLen);
1377 define void @intrinsic_vse_mask_v_nxv4bf16_nxv4bf16(<vscale x 4 x bfloat> %0, ptr %1, <vscale x 4 x i1> %2, iXLen %3) nounwind {
1378 ; CHECK-LABEL: intrinsic_vse_mask_v_nxv4bf16_nxv4bf16:
1379 ; CHECK:       # %bb.0: # %entry
1380 ; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma
1381 ; CHECK-NEXT:    vse16.v v8, (a0), v0.t
1382 ; CHECK-NEXT:    ret
1383 entry:
1384   call void @llvm.riscv.vse.mask.nxv4bf16(
1385     <vscale x 4 x bfloat> %0,
1386     ptr %1,
1387     <vscale x 4 x i1> %2,
1388     iXLen %3)
1390   ret void
1393 declare void @llvm.riscv.vse.nxv8bf16(
1394   <vscale x 8 x bfloat>,
1395   ptr,
1396   iXLen);
1398 define void @intrinsic_vse_v_nxv8bf16_nxv8bf16(<vscale x 8 x bfloat> %0, ptr %1, iXLen %2) nounwind {
1399 ; CHECK-LABEL: intrinsic_vse_v_nxv8bf16_nxv8bf16:
1400 ; CHECK:       # %bb.0: # %entry
1401 ; CHECK-NEXT:    vsetvli zero, a1, e16, m2, ta, ma
1402 ; CHECK-NEXT:    vse16.v v8, (a0)
1403 ; CHECK-NEXT:    ret
1404 entry:
1405   call void @llvm.riscv.vse.nxv8bf16(
1406     <vscale x 8 x bfloat> %0,
1407     ptr %1,
1408     iXLen %2)
1410   ret void
1413 declare void @llvm.riscv.vse.mask.nxv8bf16(
1414   <vscale x 8 x bfloat>,
1415   ptr,
1416   <vscale x 8 x i1>,
1417   iXLen);
1419 define void @intrinsic_vse_mask_v_nxv8bf16_nxv8bf16(<vscale x 8 x bfloat> %0, ptr %1, <vscale x 8 x i1> %2, iXLen %3) nounwind {
1420 ; CHECK-LABEL: intrinsic_vse_mask_v_nxv8bf16_nxv8bf16:
1421 ; CHECK:       # %bb.0: # %entry
1422 ; CHECK-NEXT:    vsetvli zero, a1, e16, m2, ta, ma
1423 ; CHECK-NEXT:    vse16.v v8, (a0), v0.t
1424 ; CHECK-NEXT:    ret
1425 entry:
1426   call void @llvm.riscv.vse.mask.nxv8bf16(
1427     <vscale x 8 x bfloat> %0,
1428     ptr %1,
1429     <vscale x 8 x i1> %2,
1430     iXLen %3)
1432   ret void
1435 declare void @llvm.riscv.vse.nxv16bf16(
1436   <vscale x 16 x bfloat>,
1437   ptr,
1438   iXLen);
1440 define void @intrinsic_vse_v_nxv16bf16_nxv16bf16(<vscale x 16 x bfloat> %0, ptr %1, iXLen %2) nounwind {
1441 ; CHECK-LABEL: intrinsic_vse_v_nxv16bf16_nxv16bf16:
1442 ; CHECK:       # %bb.0: # %entry
1443 ; CHECK-NEXT:    vsetvli zero, a1, e16, m4, ta, ma
1444 ; CHECK-NEXT:    vse16.v v8, (a0)
1445 ; CHECK-NEXT:    ret
1446 entry:
1447   call void @llvm.riscv.vse.nxv16bf16(
1448     <vscale x 16 x bfloat> %0,
1449     ptr %1,
1450     iXLen %2)
1452   ret void
1455 declare void @llvm.riscv.vse.mask.nxv16bf16(
1456   <vscale x 16 x bfloat>,
1457   ptr,
1458   <vscale x 16 x i1>,
1459   iXLen);
1461 define void @intrinsic_vse_mask_v_nxv16bf16_nxv16bf16(<vscale x 16 x bfloat> %0, ptr %1, <vscale x 16 x i1> %2, iXLen %3) nounwind {
1462 ; CHECK-LABEL: intrinsic_vse_mask_v_nxv16bf16_nxv16bf16:
1463 ; CHECK:       # %bb.0: # %entry
1464 ; CHECK-NEXT:    vsetvli zero, a1, e16, m4, ta, ma
1465 ; CHECK-NEXT:    vse16.v v8, (a0), v0.t
1466 ; CHECK-NEXT:    ret
1467 entry:
1468   call void @llvm.riscv.vse.mask.nxv16bf16(
1469     <vscale x 16 x bfloat> %0,
1470     ptr %1,
1471     <vscale x 16 x i1> %2,
1472     iXLen %3)
1474   ret void
1477 declare void @llvm.riscv.vse.nxv32bf16(
1478   <vscale x 32 x bfloat>,
1479   ptr,
1480   iXLen);
1482 define void @intrinsic_vse_v_nxv32bf16_nxv32bf16(<vscale x 32 x bfloat> %0, ptr %1, iXLen %2) nounwind {
1483 ; CHECK-LABEL: intrinsic_vse_v_nxv32bf16_nxv32bf16:
1484 ; CHECK:       # %bb.0: # %entry
1485 ; CHECK-NEXT:    vsetvli zero, a1, e16, m8, ta, ma
1486 ; CHECK-NEXT:    vse16.v v8, (a0)
1487 ; CHECK-NEXT:    ret
1488 entry:
1489   call void @llvm.riscv.vse.nxv32bf16(
1490     <vscale x 32 x bfloat> %0,
1491     ptr %1,
1492     iXLen %2)
1494   ret void
1497 declare void @llvm.riscv.vse.mask.nxv32bf16(
1498   <vscale x 32 x bfloat>,
1499   ptr,
1500   <vscale x 32 x i1>,
1501   iXLen);
1503 define void @intrinsic_vse_mask_v_nxv32bf16_nxv32bf16(<vscale x 32 x bfloat> %0, ptr %1, <vscale x 32 x i1> %2, iXLen %3) nounwind {
1504 ; CHECK-LABEL: intrinsic_vse_mask_v_nxv32bf16_nxv32bf16:
1505 ; CHECK:       # %bb.0: # %entry
1506 ; CHECK-NEXT:    vsetvli zero, a1, e16, m8, ta, ma
1507 ; CHECK-NEXT:    vse16.v v8, (a0), v0.t
1508 ; CHECK-NEXT:    ret
1509 entry:
1510   call void @llvm.riscv.vse.mask.nxv32bf16(
1511     <vscale x 32 x bfloat> %0,
1512     ptr %1,
1513     <vscale x 32 x i1> %2,
1514     iXLen %3)
1516   ret void
1519 declare void @llvm.riscv.vse.nxv1i8(
1520   <vscale x 1 x i8>,
1521   ptr,
1522   iXLen);
1524 define void @intrinsic_vse_v_nxv1i8_nxv1i8(<vscale x 1 x i8> %0, ptr %1, iXLen %2) nounwind {
1525 ; CHECK-LABEL: intrinsic_vse_v_nxv1i8_nxv1i8:
1526 ; CHECK:       # %bb.0: # %entry
1527 ; CHECK-NEXT:    vsetvli zero, a1, e8, mf8, ta, ma
1528 ; CHECK-NEXT:    vse8.v v8, (a0)
1529 ; CHECK-NEXT:    ret
1530 entry:
1531   call void @llvm.riscv.vse.nxv1i8(
1532     <vscale x 1 x i8> %0,
1533     ptr %1,
1534     iXLen %2)
1536   ret void
1539 declare void @llvm.riscv.vse.mask.nxv1i8(
1540   <vscale x 1 x i8>,
1541   ptr,
1542   <vscale x 1 x i1>,
1543   iXLen);
1545 define void @intrinsic_vse_mask_v_nxv1i8_nxv1i8(<vscale x 1 x i8> %0, ptr %1, <vscale x 1 x i1> %2, iXLen %3) nounwind {
1546 ; CHECK-LABEL: intrinsic_vse_mask_v_nxv1i8_nxv1i8:
1547 ; CHECK:       # %bb.0: # %entry
1548 ; CHECK-NEXT:    vsetvli zero, a1, e8, mf8, ta, ma
1549 ; CHECK-NEXT:    vse8.v v8, (a0), v0.t
1550 ; CHECK-NEXT:    ret
1551 entry:
1552   call void @llvm.riscv.vse.mask.nxv1i8(
1553     <vscale x 1 x i8> %0,
1554     ptr %1,
1555     <vscale x 1 x i1> %2,
1556     iXLen %3)
1558   ret void
1561 declare void @llvm.riscv.vse.nxv2i8(
1562   <vscale x 2 x i8>,
1563   ptr,
1564   iXLen);
1566 define void @intrinsic_vse_v_nxv2i8_nxv2i8(<vscale x 2 x i8> %0, ptr %1, iXLen %2) nounwind {
1567 ; CHECK-LABEL: intrinsic_vse_v_nxv2i8_nxv2i8:
1568 ; CHECK:       # %bb.0: # %entry
1569 ; CHECK-NEXT:    vsetvli zero, a1, e8, mf4, ta, ma
1570 ; CHECK-NEXT:    vse8.v v8, (a0)
1571 ; CHECK-NEXT:    ret
1572 entry:
1573   call void @llvm.riscv.vse.nxv2i8(
1574     <vscale x 2 x i8> %0,
1575     ptr %1,
1576     iXLen %2)
1578   ret void
1581 declare void @llvm.riscv.vse.mask.nxv2i8(
1582   <vscale x 2 x i8>,
1583   ptr,
1584   <vscale x 2 x i1>,
1585   iXLen);
1587 define void @intrinsic_vse_mask_v_nxv2i8_nxv2i8(<vscale x 2 x i8> %0, ptr %1, <vscale x 2 x i1> %2, iXLen %3) nounwind {
1588 ; CHECK-LABEL: intrinsic_vse_mask_v_nxv2i8_nxv2i8:
1589 ; CHECK:       # %bb.0: # %entry
1590 ; CHECK-NEXT:    vsetvli zero, a1, e8, mf4, ta, ma
1591 ; CHECK-NEXT:    vse8.v v8, (a0), v0.t
1592 ; CHECK-NEXT:    ret
1593 entry:
1594   call void @llvm.riscv.vse.mask.nxv2i8(
1595     <vscale x 2 x i8> %0,
1596     ptr %1,
1597     <vscale x 2 x i1> %2,
1598     iXLen %3)
1600   ret void
1603 declare void @llvm.riscv.vse.nxv4i8(
1604   <vscale x 4 x i8>,
1605   ptr,
1606   iXLen);
1608 define void @intrinsic_vse_v_nxv4i8_nxv4i8(<vscale x 4 x i8> %0, ptr %1, iXLen %2) nounwind {
1609 ; CHECK-LABEL: intrinsic_vse_v_nxv4i8_nxv4i8:
1610 ; CHECK:       # %bb.0: # %entry
1611 ; CHECK-NEXT:    vsetvli zero, a1, e8, mf2, ta, ma
1612 ; CHECK-NEXT:    vse8.v v8, (a0)
1613 ; CHECK-NEXT:    ret
1614 entry:
1615   call void @llvm.riscv.vse.nxv4i8(
1616     <vscale x 4 x i8> %0,
1617     ptr %1,
1618     iXLen %2)
1620   ret void
1623 declare void @llvm.riscv.vse.mask.nxv4i8(
1624   <vscale x 4 x i8>,
1625   ptr,
1626   <vscale x 4 x i1>,
1627   iXLen);
1629 define void @intrinsic_vse_mask_v_nxv4i8_nxv4i8(<vscale x 4 x i8> %0, ptr %1, <vscale x 4 x i1> %2, iXLen %3) nounwind {
1630 ; CHECK-LABEL: intrinsic_vse_mask_v_nxv4i8_nxv4i8:
1631 ; CHECK:       # %bb.0: # %entry
1632 ; CHECK-NEXT:    vsetvli zero, a1, e8, mf2, ta, ma
1633 ; CHECK-NEXT:    vse8.v v8, (a0), v0.t
1634 ; CHECK-NEXT:    ret
1635 entry:
1636   call void @llvm.riscv.vse.mask.nxv4i8(
1637     <vscale x 4 x i8> %0,
1638     ptr %1,
1639     <vscale x 4 x i1> %2,
1640     iXLen %3)
1642   ret void
1645 declare void @llvm.riscv.vse.nxv8i8(
1646   <vscale x 8 x i8>,
1647   ptr,
1648   iXLen);
1650 define void @intrinsic_vse_v_nxv8i8_nxv8i8(<vscale x 8 x i8> %0, ptr %1, iXLen %2) nounwind {
1651 ; CHECK-LABEL: intrinsic_vse_v_nxv8i8_nxv8i8:
1652 ; CHECK:       # %bb.0: # %entry
1653 ; CHECK-NEXT:    vsetvli zero, a1, e8, m1, ta, ma
1654 ; CHECK-NEXT:    vse8.v v8, (a0)
1655 ; CHECK-NEXT:    ret
1656 entry:
1657   call void @llvm.riscv.vse.nxv8i8(
1658     <vscale x 8 x i8> %0,
1659     ptr %1,
1660     iXLen %2)
1662   ret void
1665 declare void @llvm.riscv.vse.mask.nxv8i8(
1666   <vscale x 8 x i8>,
1667   ptr,
1668   <vscale x 8 x i1>,
1669   iXLen);
1671 define void @intrinsic_vse_mask_v_nxv8i8_nxv8i8(<vscale x 8 x i8> %0, ptr %1, <vscale x 8 x i1> %2, iXLen %3) nounwind {
1672 ; CHECK-LABEL: intrinsic_vse_mask_v_nxv8i8_nxv8i8:
1673 ; CHECK:       # %bb.0: # %entry
1674 ; CHECK-NEXT:    vsetvli zero, a1, e8, m1, ta, ma
1675 ; CHECK-NEXT:    vse8.v v8, (a0), v0.t
1676 ; CHECK-NEXT:    ret
1677 entry:
1678   call void @llvm.riscv.vse.mask.nxv8i8(
1679     <vscale x 8 x i8> %0,
1680     ptr %1,
1681     <vscale x 8 x i1> %2,
1682     iXLen %3)
1684   ret void
1687 declare void @llvm.riscv.vse.nxv16i8(
1688   <vscale x 16 x i8>,
1689   ptr,
1690   iXLen);
1692 define void @intrinsic_vse_v_nxv16i8_nxv16i8(<vscale x 16 x i8> %0, ptr %1, iXLen %2) nounwind {
1693 ; CHECK-LABEL: intrinsic_vse_v_nxv16i8_nxv16i8:
1694 ; CHECK:       # %bb.0: # %entry
1695 ; CHECK-NEXT:    vsetvli zero, a1, e8, m2, ta, ma
1696 ; CHECK-NEXT:    vse8.v v8, (a0)
1697 ; CHECK-NEXT:    ret
1698 entry:
1699   call void @llvm.riscv.vse.nxv16i8(
1700     <vscale x 16 x i8> %0,
1701     ptr %1,
1702     iXLen %2)
1704   ret void
1707 declare void @llvm.riscv.vse.mask.nxv16i8(
1708   <vscale x 16 x i8>,
1709   ptr,
1710   <vscale x 16 x i1>,
1711   iXLen);
1713 define void @intrinsic_vse_mask_v_nxv16i8_nxv16i8(<vscale x 16 x i8> %0, ptr %1, <vscale x 16 x i1> %2, iXLen %3) nounwind {
1714 ; CHECK-LABEL: intrinsic_vse_mask_v_nxv16i8_nxv16i8:
1715 ; CHECK:       # %bb.0: # %entry
1716 ; CHECK-NEXT:    vsetvli zero, a1, e8, m2, ta, ma
1717 ; CHECK-NEXT:    vse8.v v8, (a0), v0.t
1718 ; CHECK-NEXT:    ret
1719 entry:
1720   call void @llvm.riscv.vse.mask.nxv16i8(
1721     <vscale x 16 x i8> %0,
1722     ptr %1,
1723     <vscale x 16 x i1> %2,
1724     iXLen %3)
1726   ret void
1729 declare void @llvm.riscv.vse.nxv32i8(
1730   <vscale x 32 x i8>,
1731   ptr,
1732   iXLen);
1734 define void @intrinsic_vse_v_nxv32i8_nxv32i8(<vscale x 32 x i8> %0, ptr %1, iXLen %2) nounwind {
1735 ; CHECK-LABEL: intrinsic_vse_v_nxv32i8_nxv32i8:
1736 ; CHECK:       # %bb.0: # %entry
1737 ; CHECK-NEXT:    vsetvli zero, a1, e8, m4, ta, ma
1738 ; CHECK-NEXT:    vse8.v v8, (a0)
1739 ; CHECK-NEXT:    ret
1740 entry:
1741   call void @llvm.riscv.vse.nxv32i8(
1742     <vscale x 32 x i8> %0,
1743     ptr %1,
1744     iXLen %2)
1746   ret void
1749 declare void @llvm.riscv.vse.mask.nxv32i8(
1750   <vscale x 32 x i8>,
1751   ptr,
1752   <vscale x 32 x i1>,
1753   iXLen);
1755 define void @intrinsic_vse_mask_v_nxv32i8_nxv32i8(<vscale x 32 x i8> %0, ptr %1, <vscale x 32 x i1> %2, iXLen %3) nounwind {
1756 ; CHECK-LABEL: intrinsic_vse_mask_v_nxv32i8_nxv32i8:
1757 ; CHECK:       # %bb.0: # %entry
1758 ; CHECK-NEXT:    vsetvli zero, a1, e8, m4, ta, ma
1759 ; CHECK-NEXT:    vse8.v v8, (a0), v0.t
1760 ; CHECK-NEXT:    ret
1761 entry:
1762   call void @llvm.riscv.vse.mask.nxv32i8(
1763     <vscale x 32 x i8> %0,
1764     ptr %1,
1765     <vscale x 32 x i1> %2,
1766     iXLen %3)
1768   ret void
1771 declare void @llvm.riscv.vse.nxv64i8(
1772   <vscale x 64 x i8>,
1773   ptr,
1774   iXLen);
1776 define void @intrinsic_vse_v_nxv64i8_nxv64i8(<vscale x 64 x i8> %0, ptr %1, iXLen %2) nounwind {
1777 ; CHECK-LABEL: intrinsic_vse_v_nxv64i8_nxv64i8:
1778 ; CHECK:       # %bb.0: # %entry
1779 ; CHECK-NEXT:    vsetvli zero, a1, e8, m8, ta, ma
1780 ; CHECK-NEXT:    vse8.v v8, (a0)
1781 ; CHECK-NEXT:    ret
1782 entry:
1783   call void @llvm.riscv.vse.nxv64i8(
1784     <vscale x 64 x i8> %0,
1785     ptr %1,
1786     iXLen %2)
1788   ret void
1791 declare void @llvm.riscv.vse.mask.nxv64i8(
1792   <vscale x 64 x i8>,
1793   ptr,
1794   <vscale x 64 x i1>,
1795   iXLen);
1797 define void @intrinsic_vse_mask_v_nxv64i8_nxv64i8(<vscale x 64 x i8> %0, ptr %1, <vscale x 64 x i1> %2, iXLen %3) nounwind {
1798 ; CHECK-LABEL: intrinsic_vse_mask_v_nxv64i8_nxv64i8:
1799 ; CHECK:       # %bb.0: # %entry
1800 ; CHECK-NEXT:    vsetvli zero, a1, e8, m8, ta, ma
1801 ; CHECK-NEXT:    vse8.v v8, (a0), v0.t
1802 ; CHECK-NEXT:    ret
1803 entry:
1804   call void @llvm.riscv.vse.mask.nxv64i8(
1805     <vscale x 64 x i8> %0,
1806     ptr %1,
1807     <vscale x 64 x i1> %2,
1808     iXLen %3)
1810   ret void