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,+zfh,+zvfh,+experimental-zfbfmin,+experimental-zvfbfmin \
3 ; RUN: -verify-machineinstrs -target-abi=ilp32d | FileCheck %s
4 ; RUN: sed 's/iXLen/i64/g' %s | llc -mtriple=riscv64 -mattr=+v,+zfh,+zvfh,+experimental-zfbfmin,+experimental-zvfbfmin \
5 ; RUN: -verify-machineinstrs -target-abi=lp64d | FileCheck %s
7 declare void @llvm.riscv.vse.nxv1i64(
12 define void @intrinsic_vse_v_nxv1i64_nxv1i64(<vscale x 1 x i64> %0, <vscale x 1 x i64>* %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)
19 call void @llvm.riscv.vse.nxv1i64(
20 <vscale x 1 x i64> %0,
21 <vscale x 1 x i64>* %1,
27 declare void @llvm.riscv.vse.mask.nxv1i64(
33 define void @intrinsic_vse_mask_v_nxv1i64_nxv1i64(<vscale x 1 x i64> %0, <vscale x 1 x i64>* %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
40 call void @llvm.riscv.vse.mask.nxv1i64(
41 <vscale x 1 x i64> %0,
42 <vscale x 1 x i64>* %1,
49 declare void @llvm.riscv.vse.nxv2i64(
54 define void @intrinsic_vse_v_nxv2i64_nxv2i64(<vscale x 2 x i64> %0, <vscale x 2 x i64>* %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)
61 call void @llvm.riscv.vse.nxv2i64(
62 <vscale x 2 x i64> %0,
63 <vscale x 2 x i64>* %1,
69 declare void @llvm.riscv.vse.mask.nxv2i64(
75 define void @intrinsic_vse_mask_v_nxv2i64_nxv2i64(<vscale x 2 x i64> %0, <vscale x 2 x i64>* %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
82 call void @llvm.riscv.vse.mask.nxv2i64(
83 <vscale x 2 x i64> %0,
84 <vscale x 2 x i64>* %1,
91 declare void @llvm.riscv.vse.nxv4i64(
96 define void @intrinsic_vse_v_nxv4i64_nxv4i64(<vscale x 4 x i64> %0, <vscale x 4 x i64>* %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)
103 call void @llvm.riscv.vse.nxv4i64(
104 <vscale x 4 x i64> %0,
105 <vscale x 4 x i64>* %1,
111 declare void @llvm.riscv.vse.mask.nxv4i64(
117 define void @intrinsic_vse_mask_v_nxv4i64_nxv4i64(<vscale x 4 x i64> %0, <vscale x 4 x i64>* %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
124 call void @llvm.riscv.vse.mask.nxv4i64(
125 <vscale x 4 x i64> %0,
126 <vscale x 4 x i64>* %1,
127 <vscale x 4 x i1> %2,
133 declare void @llvm.riscv.vse.nxv8i64(
138 define void @intrinsic_vse_v_nxv8i64_nxv8i64(<vscale x 8 x i64> %0, <vscale x 8 x i64>* %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)
145 call void @llvm.riscv.vse.nxv8i64(
146 <vscale x 8 x i64> %0,
147 <vscale x 8 x i64>* %1,
153 declare void @llvm.riscv.vse.mask.nxv8i64(
159 define void @intrinsic_vse_mask_v_nxv8i64_nxv8i64(<vscale x 8 x i64> %0, <vscale x 8 x i64>* %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
166 call void @llvm.riscv.vse.mask.nxv8i64(
167 <vscale x 8 x i64> %0,
168 <vscale x 8 x i64>* %1,
169 <vscale x 8 x i1> %2,
175 declare void @llvm.riscv.vse.nxv1f64(
176 <vscale x 1 x double>,
177 <vscale x 1 x double>*,
180 define void @intrinsic_vse_v_nxv1f64_nxv1f64(<vscale x 1 x double> %0, <vscale x 1 x double>* %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)
187 call void @llvm.riscv.vse.nxv1f64(
188 <vscale x 1 x double> %0,
189 <vscale x 1 x double>* %1,
195 declare void @llvm.riscv.vse.mask.nxv1f64(
196 <vscale x 1 x double>,
197 <vscale x 1 x double>*,
201 define void @intrinsic_vse_mask_v_nxv1f64_nxv1f64(<vscale x 1 x double> %0, <vscale x 1 x double>* %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
208 call void @llvm.riscv.vse.mask.nxv1f64(
209 <vscale x 1 x double> %0,
210 <vscale x 1 x double>* %1,
211 <vscale x 1 x i1> %2,
217 declare void @llvm.riscv.vse.nxv2f64(
218 <vscale x 2 x double>,
219 <vscale x 2 x double>*,
222 define void @intrinsic_vse_v_nxv2f64_nxv2f64(<vscale x 2 x double> %0, <vscale x 2 x double>* %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)
229 call void @llvm.riscv.vse.nxv2f64(
230 <vscale x 2 x double> %0,
231 <vscale x 2 x double>* %1,
237 declare void @llvm.riscv.vse.mask.nxv2f64(
238 <vscale x 2 x double>,
239 <vscale x 2 x double>*,
243 define void @intrinsic_vse_mask_v_nxv2f64_nxv2f64(<vscale x 2 x double> %0, <vscale x 2 x double>* %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
250 call void @llvm.riscv.vse.mask.nxv2f64(
251 <vscale x 2 x double> %0,
252 <vscale x 2 x double>* %1,
253 <vscale x 2 x i1> %2,
259 declare void @llvm.riscv.vse.nxv4f64(
260 <vscale x 4 x double>,
261 <vscale x 4 x double>*,
264 define void @intrinsic_vse_v_nxv4f64_nxv4f64(<vscale x 4 x double> %0, <vscale x 4 x double>* %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)
271 call void @llvm.riscv.vse.nxv4f64(
272 <vscale x 4 x double> %0,
273 <vscale x 4 x double>* %1,
279 declare void @llvm.riscv.vse.mask.nxv4f64(
280 <vscale x 4 x double>,
281 <vscale x 4 x double>*,
285 define void @intrinsic_vse_mask_v_nxv4f64_nxv4f64(<vscale x 4 x double> %0, <vscale x 4 x double>* %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
292 call void @llvm.riscv.vse.mask.nxv4f64(
293 <vscale x 4 x double> %0,
294 <vscale x 4 x double>* %1,
295 <vscale x 4 x i1> %2,
301 declare void @llvm.riscv.vse.nxv8f64(
302 <vscale x 8 x double>,
303 <vscale x 8 x double>*,
306 define void @intrinsic_vse_v_nxv8f64_nxv8f64(<vscale x 8 x double> %0, <vscale x 8 x double>* %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)
313 call void @llvm.riscv.vse.nxv8f64(
314 <vscale x 8 x double> %0,
315 <vscale x 8 x double>* %1,
321 declare void @llvm.riscv.vse.mask.nxv8f64(
322 <vscale x 8 x double>,
323 <vscale x 8 x double>*,
327 define void @intrinsic_vse_mask_v_nxv8f64_nxv8f64(<vscale x 8 x double> %0, <vscale x 8 x double>* %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
334 call void @llvm.riscv.vse.mask.nxv8f64(
335 <vscale x 8 x double> %0,
336 <vscale x 8 x double>* %1,
337 <vscale x 8 x i1> %2,
343 declare void @llvm.riscv.vse.nxv1i32(
348 define void @intrinsic_vse_v_nxv1i32_nxv1i32(<vscale x 1 x i32> %0, <vscale x 1 x i32>* %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)
355 call void @llvm.riscv.vse.nxv1i32(
356 <vscale x 1 x i32> %0,
357 <vscale x 1 x i32>* %1,
363 declare void @llvm.riscv.vse.mask.nxv1i32(
369 define void @intrinsic_vse_mask_v_nxv1i32_nxv1i32(<vscale x 1 x i32> %0, <vscale x 1 x i32>* %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
376 call void @llvm.riscv.vse.mask.nxv1i32(
377 <vscale x 1 x i32> %0,
378 <vscale x 1 x i32>* %1,
379 <vscale x 1 x i1> %2,
385 declare void @llvm.riscv.vse.nxv2i32(
390 define void @intrinsic_vse_v_nxv2i32_nxv2i32(<vscale x 2 x i32> %0, <vscale x 2 x i32>* %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)
397 call void @llvm.riscv.vse.nxv2i32(
398 <vscale x 2 x i32> %0,
399 <vscale x 2 x i32>* %1,
405 declare void @llvm.riscv.vse.mask.nxv2i32(
411 define void @intrinsic_vse_mask_v_nxv2i32_nxv2i32(<vscale x 2 x i32> %0, <vscale x 2 x i32>* %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
418 call void @llvm.riscv.vse.mask.nxv2i32(
419 <vscale x 2 x i32> %0,
420 <vscale x 2 x i32>* %1,
421 <vscale x 2 x i1> %2,
427 declare void @llvm.riscv.vse.nxv4i32(
432 define void @intrinsic_vse_v_nxv4i32_nxv4i32(<vscale x 4 x i32> %0, <vscale x 4 x i32>* %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)
439 call void @llvm.riscv.vse.nxv4i32(
440 <vscale x 4 x i32> %0,
441 <vscale x 4 x i32>* %1,
447 declare void @llvm.riscv.vse.mask.nxv4i32(
453 define void @intrinsic_vse_mask_v_nxv4i32_nxv4i32(<vscale x 4 x i32> %0, <vscale x 4 x i32>* %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
460 call void @llvm.riscv.vse.mask.nxv4i32(
461 <vscale x 4 x i32> %0,
462 <vscale x 4 x i32>* %1,
463 <vscale x 4 x i1> %2,
469 declare void @llvm.riscv.vse.nxv8i32(
474 define void @intrinsic_vse_v_nxv8i32_nxv8i32(<vscale x 8 x i32> %0, <vscale x 8 x i32>* %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)
481 call void @llvm.riscv.vse.nxv8i32(
482 <vscale x 8 x i32> %0,
483 <vscale x 8 x i32>* %1,
489 declare void @llvm.riscv.vse.mask.nxv8i32(
495 define void @intrinsic_vse_mask_v_nxv8i32_nxv8i32(<vscale x 8 x i32> %0, <vscale x 8 x i32>* %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
502 call void @llvm.riscv.vse.mask.nxv8i32(
503 <vscale x 8 x i32> %0,
504 <vscale x 8 x i32>* %1,
505 <vscale x 8 x i1> %2,
511 declare void @llvm.riscv.vse.nxv16i32(
513 <vscale x 16 x i32>*,
516 define void @intrinsic_vse_v_nxv16i32_nxv16i32(<vscale x 16 x i32> %0, <vscale x 16 x i32>* %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)
523 call void @llvm.riscv.vse.nxv16i32(
524 <vscale x 16 x i32> %0,
525 <vscale x 16 x i32>* %1,
531 declare void @llvm.riscv.vse.mask.nxv16i32(
533 <vscale x 16 x i32>*,
537 define void @intrinsic_vse_mask_v_nxv16i32_nxv16i32(<vscale x 16 x i32> %0, <vscale x 16 x i32>* %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
544 call void @llvm.riscv.vse.mask.nxv16i32(
545 <vscale x 16 x i32> %0,
546 <vscale x 16 x i32>* %1,
547 <vscale x 16 x i1> %2,
553 declare void @llvm.riscv.vse.nxv1f32(
554 <vscale x 1 x float>,
555 <vscale x 1 x float>*,
558 define void @intrinsic_vse_v_nxv1f32_nxv1f32(<vscale x 1 x float> %0, <vscale x 1 x float>* %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)
565 call void @llvm.riscv.vse.nxv1f32(
566 <vscale x 1 x float> %0,
567 <vscale x 1 x float>* %1,
573 declare void @llvm.riscv.vse.mask.nxv1f32(
574 <vscale x 1 x float>,
575 <vscale x 1 x float>*,
579 define void @intrinsic_vse_mask_v_nxv1f32_nxv1f32(<vscale x 1 x float> %0, <vscale x 1 x float>* %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
586 call void @llvm.riscv.vse.mask.nxv1f32(
587 <vscale x 1 x float> %0,
588 <vscale x 1 x float>* %1,
589 <vscale x 1 x i1> %2,
595 declare void @llvm.riscv.vse.nxv2f32(
596 <vscale x 2 x float>,
597 <vscale x 2 x float>*,
600 define void @intrinsic_vse_v_nxv2f32_nxv2f32(<vscale x 2 x float> %0, <vscale x 2 x float>* %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)
607 call void @llvm.riscv.vse.nxv2f32(
608 <vscale x 2 x float> %0,
609 <vscale x 2 x float>* %1,
615 declare void @llvm.riscv.vse.mask.nxv2f32(
616 <vscale x 2 x float>,
617 <vscale x 2 x float>*,
621 define void @intrinsic_vse_mask_v_nxv2f32_nxv2f32(<vscale x 2 x float> %0, <vscale x 2 x float>* %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
628 call void @llvm.riscv.vse.mask.nxv2f32(
629 <vscale x 2 x float> %0,
630 <vscale x 2 x float>* %1,
631 <vscale x 2 x i1> %2,
637 declare void @llvm.riscv.vse.nxv4f32(
638 <vscale x 4 x float>,
639 <vscale x 4 x float>*,
642 define void @intrinsic_vse_v_nxv4f32_nxv4f32(<vscale x 4 x float> %0, <vscale x 4 x float>* %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)
649 call void @llvm.riscv.vse.nxv4f32(
650 <vscale x 4 x float> %0,
651 <vscale x 4 x float>* %1,
657 declare void @llvm.riscv.vse.mask.nxv4f32(
658 <vscale x 4 x float>,
659 <vscale x 4 x float>*,
663 define void @intrinsic_vse_mask_v_nxv4f32_nxv4f32(<vscale x 4 x float> %0, <vscale x 4 x float>* %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
670 call void @llvm.riscv.vse.mask.nxv4f32(
671 <vscale x 4 x float> %0,
672 <vscale x 4 x float>* %1,
673 <vscale x 4 x i1> %2,
679 declare void @llvm.riscv.vse.nxv8f32(
680 <vscale x 8 x float>,
681 <vscale x 8 x float>*,
684 define void @intrinsic_vse_v_nxv8f32_nxv8f32(<vscale x 8 x float> %0, <vscale x 8 x float>* %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)
691 call void @llvm.riscv.vse.nxv8f32(
692 <vscale x 8 x float> %0,
693 <vscale x 8 x float>* %1,
699 declare void @llvm.riscv.vse.mask.nxv8f32(
700 <vscale x 8 x float>,
701 <vscale x 8 x float>*,
705 define void @intrinsic_vse_mask_v_nxv8f32_nxv8f32(<vscale x 8 x float> %0, <vscale x 8 x float>* %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
712 call void @llvm.riscv.vse.mask.nxv8f32(
713 <vscale x 8 x float> %0,
714 <vscale x 8 x float>* %1,
715 <vscale x 8 x i1> %2,
721 declare void @llvm.riscv.vse.nxv16f32(
722 <vscale x 16 x float>,
723 <vscale x 16 x float>*,
726 define void @intrinsic_vse_v_nxv16f32_nxv16f32(<vscale x 16 x float> %0, <vscale x 16 x float>* %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)
733 call void @llvm.riscv.vse.nxv16f32(
734 <vscale x 16 x float> %0,
735 <vscale x 16 x float>* %1,
741 declare void @llvm.riscv.vse.mask.nxv16f32(
742 <vscale x 16 x float>,
743 <vscale x 16 x float>*,
747 define void @intrinsic_vse_mask_v_nxv16f32_nxv16f32(<vscale x 16 x float> %0, <vscale x 16 x float>* %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
754 call void @llvm.riscv.vse.mask.nxv16f32(
755 <vscale x 16 x float> %0,
756 <vscale x 16 x float>* %1,
757 <vscale x 16 x i1> %2,
763 declare void @llvm.riscv.vse.nxv1i16(
768 define void @intrinsic_vse_v_nxv1i16_nxv1i16(<vscale x 1 x i16> %0, <vscale x 1 x i16>* %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)
775 call void @llvm.riscv.vse.nxv1i16(
776 <vscale x 1 x i16> %0,
777 <vscale x 1 x i16>* %1,
783 declare void @llvm.riscv.vse.mask.nxv1i16(
789 define void @intrinsic_vse_mask_v_nxv1i16_nxv1i16(<vscale x 1 x i16> %0, <vscale x 1 x i16>* %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
796 call void @llvm.riscv.vse.mask.nxv1i16(
797 <vscale x 1 x i16> %0,
798 <vscale x 1 x i16>* %1,
799 <vscale x 1 x i1> %2,
805 declare void @llvm.riscv.vse.nxv2i16(
810 define void @intrinsic_vse_v_nxv2i16_nxv2i16(<vscale x 2 x i16> %0, <vscale x 2 x i16>* %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)
817 call void @llvm.riscv.vse.nxv2i16(
818 <vscale x 2 x i16> %0,
819 <vscale x 2 x i16>* %1,
825 declare void @llvm.riscv.vse.mask.nxv2i16(
831 define void @intrinsic_vse_mask_v_nxv2i16_nxv2i16(<vscale x 2 x i16> %0, <vscale x 2 x i16>* %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
838 call void @llvm.riscv.vse.mask.nxv2i16(
839 <vscale x 2 x i16> %0,
840 <vscale x 2 x i16>* %1,
841 <vscale x 2 x i1> %2,
847 declare void @llvm.riscv.vse.nxv4i16(
852 define void @intrinsic_vse_v_nxv4i16_nxv4i16(<vscale x 4 x i16> %0, <vscale x 4 x i16>* %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)
859 call void @llvm.riscv.vse.nxv4i16(
860 <vscale x 4 x i16> %0,
861 <vscale x 4 x i16>* %1,
867 declare void @llvm.riscv.vse.mask.nxv4i16(
873 define void @intrinsic_vse_mask_v_nxv4i16_nxv4i16(<vscale x 4 x i16> %0, <vscale x 4 x i16>* %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
880 call void @llvm.riscv.vse.mask.nxv4i16(
881 <vscale x 4 x i16> %0,
882 <vscale x 4 x i16>* %1,
883 <vscale x 4 x i1> %2,
889 declare void @llvm.riscv.vse.nxv8i16(
894 define void @intrinsic_vse_v_nxv8i16_nxv8i16(<vscale x 8 x i16> %0, <vscale x 8 x i16>* %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)
901 call void @llvm.riscv.vse.nxv8i16(
902 <vscale x 8 x i16> %0,
903 <vscale x 8 x i16>* %1,
909 declare void @llvm.riscv.vse.mask.nxv8i16(
915 define void @intrinsic_vse_mask_v_nxv8i16_nxv8i16(<vscale x 8 x i16> %0, <vscale x 8 x i16>* %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
922 call void @llvm.riscv.vse.mask.nxv8i16(
923 <vscale x 8 x i16> %0,
924 <vscale x 8 x i16>* %1,
925 <vscale x 8 x i1> %2,
931 declare void @llvm.riscv.vse.nxv16i16(
933 <vscale x 16 x i16>*,
936 define void @intrinsic_vse_v_nxv16i16_nxv16i16(<vscale x 16 x i16> %0, <vscale x 16 x i16>* %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)
943 call void @llvm.riscv.vse.nxv16i16(
944 <vscale x 16 x i16> %0,
945 <vscale x 16 x i16>* %1,
951 declare void @llvm.riscv.vse.mask.nxv16i16(
953 <vscale x 16 x i16>*,
957 define void @intrinsic_vse_mask_v_nxv16i16_nxv16i16(<vscale x 16 x i16> %0, <vscale x 16 x i16>* %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
964 call void @llvm.riscv.vse.mask.nxv16i16(
965 <vscale x 16 x i16> %0,
966 <vscale x 16 x i16>* %1,
967 <vscale x 16 x i1> %2,
973 declare void @llvm.riscv.vse.nxv32i16(
975 <vscale x 32 x i16>*,
978 define void @intrinsic_vse_v_nxv32i16_nxv32i16(<vscale x 32 x i16> %0, <vscale x 32 x i16>* %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)
985 call void @llvm.riscv.vse.nxv32i16(
986 <vscale x 32 x i16> %0,
987 <vscale x 32 x i16>* %1,
993 declare void @llvm.riscv.vse.mask.nxv32i16(
995 <vscale x 32 x i16>*,
999 define void @intrinsic_vse_mask_v_nxv32i16_nxv32i16(<vscale x 32 x i16> %0, <vscale x 32 x i16>* %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
1006 call void @llvm.riscv.vse.mask.nxv32i16(
1007 <vscale x 32 x i16> %0,
1008 <vscale x 32 x i16>* %1,
1009 <vscale x 32 x i1> %2,
1015 declare void @llvm.riscv.vse.nxv1f16(
1016 <vscale x 1 x half>,
1017 <vscale x 1 x half>*,
1020 define void @intrinsic_vse_v_nxv1f16_nxv1f16(<vscale x 1 x half> %0, <vscale x 1 x half>* %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)
1027 call void @llvm.riscv.vse.nxv1f16(
1028 <vscale x 1 x half> %0,
1029 <vscale x 1 x half>* %1,
1035 declare void @llvm.riscv.vse.mask.nxv1f16(
1036 <vscale x 1 x half>,
1037 <vscale x 1 x half>*,
1041 define void @intrinsic_vse_mask_v_nxv1f16_nxv1f16(<vscale x 1 x half> %0, <vscale x 1 x half>* %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
1048 call void @llvm.riscv.vse.mask.nxv1f16(
1049 <vscale x 1 x half> %0,
1050 <vscale x 1 x half>* %1,
1051 <vscale x 1 x i1> %2,
1057 declare void @llvm.riscv.vse.nxv2f16(
1058 <vscale x 2 x half>,
1059 <vscale x 2 x half>*,
1062 define void @intrinsic_vse_v_nxv2f16_nxv2f16(<vscale x 2 x half> %0, <vscale x 2 x half>* %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)
1069 call void @llvm.riscv.vse.nxv2f16(
1070 <vscale x 2 x half> %0,
1071 <vscale x 2 x half>* %1,
1077 declare void @llvm.riscv.vse.mask.nxv2f16(
1078 <vscale x 2 x half>,
1079 <vscale x 2 x half>*,
1083 define void @intrinsic_vse_mask_v_nxv2f16_nxv2f16(<vscale x 2 x half> %0, <vscale x 2 x half>* %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
1090 call void @llvm.riscv.vse.mask.nxv2f16(
1091 <vscale x 2 x half> %0,
1092 <vscale x 2 x half>* %1,
1093 <vscale x 2 x i1> %2,
1099 declare void @llvm.riscv.vse.nxv4f16(
1100 <vscale x 4 x half>,
1101 <vscale x 4 x half>*,
1104 define void @intrinsic_vse_v_nxv4f16_nxv4f16(<vscale x 4 x half> %0, <vscale x 4 x half>* %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)
1111 call void @llvm.riscv.vse.nxv4f16(
1112 <vscale x 4 x half> %0,
1113 <vscale x 4 x half>* %1,
1119 declare void @llvm.riscv.vse.mask.nxv4f16(
1120 <vscale x 4 x half>,
1121 <vscale x 4 x half>*,
1125 define void @intrinsic_vse_mask_v_nxv4f16_nxv4f16(<vscale x 4 x half> %0, <vscale x 4 x half>* %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
1132 call void @llvm.riscv.vse.mask.nxv4f16(
1133 <vscale x 4 x half> %0,
1134 <vscale x 4 x half>* %1,
1135 <vscale x 4 x i1> %2,
1141 declare void @llvm.riscv.vse.nxv8f16(
1142 <vscale x 8 x half>,
1143 <vscale x 8 x half>*,
1146 define void @intrinsic_vse_v_nxv8f16_nxv8f16(<vscale x 8 x half> %0, <vscale x 8 x half>* %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)
1153 call void @llvm.riscv.vse.nxv8f16(
1154 <vscale x 8 x half> %0,
1155 <vscale x 8 x half>* %1,
1161 declare void @llvm.riscv.vse.mask.nxv8f16(
1162 <vscale x 8 x half>,
1163 <vscale x 8 x half>*,
1167 define void @intrinsic_vse_mask_v_nxv8f16_nxv8f16(<vscale x 8 x half> %0, <vscale x 8 x half>* %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
1174 call void @llvm.riscv.vse.mask.nxv8f16(
1175 <vscale x 8 x half> %0,
1176 <vscale x 8 x half>* %1,
1177 <vscale x 8 x i1> %2,
1183 declare void @llvm.riscv.vse.nxv16f16(
1184 <vscale x 16 x half>,
1185 <vscale x 16 x half>*,
1188 define void @intrinsic_vse_v_nxv16f16_nxv16f16(<vscale x 16 x half> %0, <vscale x 16 x half>* %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)
1195 call void @llvm.riscv.vse.nxv16f16(
1196 <vscale x 16 x half> %0,
1197 <vscale x 16 x half>* %1,
1203 declare void @llvm.riscv.vse.mask.nxv16f16(
1204 <vscale x 16 x half>,
1205 <vscale x 16 x half>*,
1209 define void @intrinsic_vse_mask_v_nxv16f16_nxv16f16(<vscale x 16 x half> %0, <vscale x 16 x half>* %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
1216 call void @llvm.riscv.vse.mask.nxv16f16(
1217 <vscale x 16 x half> %0,
1218 <vscale x 16 x half>* %1,
1219 <vscale x 16 x i1> %2,
1225 declare void @llvm.riscv.vse.nxv32f16(
1226 <vscale x 32 x half>,
1227 <vscale x 32 x half>*,
1230 define void @intrinsic_vse_v_nxv32f16_nxv32f16(<vscale x 32 x half> %0, <vscale x 32 x half>* %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)
1237 call void @llvm.riscv.vse.nxv32f16(
1238 <vscale x 32 x half> %0,
1239 <vscale x 32 x half>* %1,
1245 declare void @llvm.riscv.vse.mask.nxv32f16(
1246 <vscale x 32 x half>,
1247 <vscale x 32 x half>*,
1251 define void @intrinsic_vse_mask_v_nxv32f16_nxv32f16(<vscale x 32 x half> %0, <vscale x 32 x half>* %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
1258 call void @llvm.riscv.vse.mask.nxv32f16(
1259 <vscale x 32 x half> %0,
1260 <vscale x 32 x half>* %1,
1261 <vscale x 32 x i1> %2,
1267 declare void @llvm.riscv.vse.nxv1bf16(
1268 <vscale x 1 x bfloat>,
1269 <vscale x 1 x bfloat>*,
1272 define void @intrinsic_vse_v_nxv1bf16_nxv1bf16(<vscale x 1 x bfloat> %0, <vscale x 1 x bfloat>* %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)
1279 call void @llvm.riscv.vse.nxv1bf16(
1280 <vscale x 1 x bfloat> %0,
1281 <vscale x 1 x bfloat>* %1,
1287 declare void @llvm.riscv.vse.mask.nxv1bf16(
1288 <vscale x 1 x bfloat>,
1289 <vscale x 1 x bfloat>*,
1293 define void @intrinsic_vse_mask_v_nxv1bf16_nxv1bf16(<vscale x 1 x bfloat> %0, <vscale x 1 x bfloat>* %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
1300 call void @llvm.riscv.vse.mask.nxv1bf16(
1301 <vscale x 1 x bfloat> %0,
1302 <vscale x 1 x bfloat>* %1,
1303 <vscale x 1 x i1> %2,
1309 declare void @llvm.riscv.vse.nxv2bf16(
1310 <vscale x 2 x bfloat>,
1311 <vscale x 2 x bfloat>*,
1314 define void @intrinsic_vse_v_nxv2bf16_nxv2bf16(<vscale x 2 x bfloat> %0, <vscale x 2 x bfloat>* %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)
1321 call void @llvm.riscv.vse.nxv2bf16(
1322 <vscale x 2 x bfloat> %0,
1323 <vscale x 2 x bfloat>* %1,
1329 declare void @llvm.riscv.vse.mask.nxv2bf16(
1330 <vscale x 2 x bfloat>,
1331 <vscale x 2 x bfloat>*,
1335 define void @intrinsic_vse_mask_v_nxv2bf16_nxv2bf16(<vscale x 2 x bfloat> %0, <vscale x 2 x bfloat>* %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
1342 call void @llvm.riscv.vse.mask.nxv2bf16(
1343 <vscale x 2 x bfloat> %0,
1344 <vscale x 2 x bfloat>* %1,
1345 <vscale x 2 x i1> %2,
1351 declare void @llvm.riscv.vse.nxv4bf16(
1352 <vscale x 4 x bfloat>,
1353 <vscale x 4 x bfloat>*,
1356 define void @intrinsic_vse_v_nxv4bf16_nxv4bf16(<vscale x 4 x bfloat> %0, <vscale x 4 x bfloat>* %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)
1363 call void @llvm.riscv.vse.nxv4bf16(
1364 <vscale x 4 x bfloat> %0,
1365 <vscale x 4 x bfloat>* %1,
1371 declare void @llvm.riscv.vse.mask.nxv4bf16(
1372 <vscale x 4 x bfloat>,
1373 <vscale x 4 x bfloat>*,
1377 define void @intrinsic_vse_mask_v_nxv4bf16_nxv4bf16(<vscale x 4 x bfloat> %0, <vscale x 4 x bfloat>* %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
1384 call void @llvm.riscv.vse.mask.nxv4bf16(
1385 <vscale x 4 x bfloat> %0,
1386 <vscale x 4 x bfloat>* %1,
1387 <vscale x 4 x i1> %2,
1393 declare void @llvm.riscv.vse.nxv8bf16(
1394 <vscale x 8 x bfloat>,
1395 <vscale x 8 x bfloat>*,
1398 define void @intrinsic_vse_v_nxv8bf16_nxv8bf16(<vscale x 8 x bfloat> %0, <vscale x 8 x bfloat>* %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)
1405 call void @llvm.riscv.vse.nxv8bf16(
1406 <vscale x 8 x bfloat> %0,
1407 <vscale x 8 x bfloat>* %1,
1413 declare void @llvm.riscv.vse.mask.nxv8bf16(
1414 <vscale x 8 x bfloat>,
1415 <vscale x 8 x bfloat>*,
1419 define void @intrinsic_vse_mask_v_nxv8bf16_nxv8bf16(<vscale x 8 x bfloat> %0, <vscale x 8 x bfloat>* %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
1426 call void @llvm.riscv.vse.mask.nxv8bf16(
1427 <vscale x 8 x bfloat> %0,
1428 <vscale x 8 x bfloat>* %1,
1429 <vscale x 8 x i1> %2,
1435 declare void @llvm.riscv.vse.nxv16bf16(
1436 <vscale x 16 x bfloat>,
1437 <vscale x 16 x bfloat>*,
1440 define void @intrinsic_vse_v_nxv16bf16_nxv16bf16(<vscale x 16 x bfloat> %0, <vscale x 16 x bfloat>* %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)
1447 call void @llvm.riscv.vse.nxv16bf16(
1448 <vscale x 16 x bfloat> %0,
1449 <vscale x 16 x bfloat>* %1,
1455 declare void @llvm.riscv.vse.mask.nxv16bf16(
1456 <vscale x 16 x bfloat>,
1457 <vscale x 16 x bfloat>*,
1461 define void @intrinsic_vse_mask_v_nxv16bf16_nxv16bf16(<vscale x 16 x bfloat> %0, <vscale x 16 x bfloat>* %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
1468 call void @llvm.riscv.vse.mask.nxv16bf16(
1469 <vscale x 16 x bfloat> %0,
1470 <vscale x 16 x bfloat>* %1,
1471 <vscale x 16 x i1> %2,
1477 declare void @llvm.riscv.vse.nxv32bf16(
1478 <vscale x 32 x bfloat>,
1479 <vscale x 32 x bfloat>*,
1482 define void @intrinsic_vse_v_nxv32bf16_nxv32bf16(<vscale x 32 x bfloat> %0, <vscale x 32 x bfloat>* %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)
1489 call void @llvm.riscv.vse.nxv32bf16(
1490 <vscale x 32 x bfloat> %0,
1491 <vscale x 32 x bfloat>* %1,
1497 declare void @llvm.riscv.vse.mask.nxv32bf16(
1498 <vscale x 32 x bfloat>,
1499 <vscale x 32 x bfloat>*,
1503 define void @intrinsic_vse_mask_v_nxv32bf16_nxv32bf16(<vscale x 32 x bfloat> %0, <vscale x 32 x bfloat>* %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
1510 call void @llvm.riscv.vse.mask.nxv32bf16(
1511 <vscale x 32 x bfloat> %0,
1512 <vscale x 32 x bfloat>* %1,
1513 <vscale x 32 x i1> %2,
1519 declare void @llvm.riscv.vse.nxv1i8(
1524 define void @intrinsic_vse_v_nxv1i8_nxv1i8(<vscale x 1 x i8> %0, <vscale x 1 x i8>* %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)
1531 call void @llvm.riscv.vse.nxv1i8(
1532 <vscale x 1 x i8> %0,
1533 <vscale x 1 x i8>* %1,
1539 declare void @llvm.riscv.vse.mask.nxv1i8(
1545 define void @intrinsic_vse_mask_v_nxv1i8_nxv1i8(<vscale x 1 x i8> %0, <vscale x 1 x i8>* %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
1552 call void @llvm.riscv.vse.mask.nxv1i8(
1553 <vscale x 1 x i8> %0,
1554 <vscale x 1 x i8>* %1,
1555 <vscale x 1 x i1> %2,
1561 declare void @llvm.riscv.vse.nxv2i8(
1566 define void @intrinsic_vse_v_nxv2i8_nxv2i8(<vscale x 2 x i8> %0, <vscale x 2 x i8>* %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)
1573 call void @llvm.riscv.vse.nxv2i8(
1574 <vscale x 2 x i8> %0,
1575 <vscale x 2 x i8>* %1,
1581 declare void @llvm.riscv.vse.mask.nxv2i8(
1587 define void @intrinsic_vse_mask_v_nxv2i8_nxv2i8(<vscale x 2 x i8> %0, <vscale x 2 x i8>* %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
1594 call void @llvm.riscv.vse.mask.nxv2i8(
1595 <vscale x 2 x i8> %0,
1596 <vscale x 2 x i8>* %1,
1597 <vscale x 2 x i1> %2,
1603 declare void @llvm.riscv.vse.nxv4i8(
1608 define void @intrinsic_vse_v_nxv4i8_nxv4i8(<vscale x 4 x i8> %0, <vscale x 4 x i8>* %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)
1615 call void @llvm.riscv.vse.nxv4i8(
1616 <vscale x 4 x i8> %0,
1617 <vscale x 4 x i8>* %1,
1623 declare void @llvm.riscv.vse.mask.nxv4i8(
1629 define void @intrinsic_vse_mask_v_nxv4i8_nxv4i8(<vscale x 4 x i8> %0, <vscale x 4 x i8>* %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
1636 call void @llvm.riscv.vse.mask.nxv4i8(
1637 <vscale x 4 x i8> %0,
1638 <vscale x 4 x i8>* %1,
1639 <vscale x 4 x i1> %2,
1645 declare void @llvm.riscv.vse.nxv8i8(
1650 define void @intrinsic_vse_v_nxv8i8_nxv8i8(<vscale x 8 x i8> %0, <vscale x 8 x i8>* %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)
1657 call void @llvm.riscv.vse.nxv8i8(
1658 <vscale x 8 x i8> %0,
1659 <vscale x 8 x i8>* %1,
1665 declare void @llvm.riscv.vse.mask.nxv8i8(
1671 define void @intrinsic_vse_mask_v_nxv8i8_nxv8i8(<vscale x 8 x i8> %0, <vscale x 8 x i8>* %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
1678 call void @llvm.riscv.vse.mask.nxv8i8(
1679 <vscale x 8 x i8> %0,
1680 <vscale x 8 x i8>* %1,
1681 <vscale x 8 x i1> %2,
1687 declare void @llvm.riscv.vse.nxv16i8(
1689 <vscale x 16 x i8>*,
1692 define void @intrinsic_vse_v_nxv16i8_nxv16i8(<vscale x 16 x i8> %0, <vscale x 16 x i8>* %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)
1699 call void @llvm.riscv.vse.nxv16i8(
1700 <vscale x 16 x i8> %0,
1701 <vscale x 16 x i8>* %1,
1707 declare void @llvm.riscv.vse.mask.nxv16i8(
1709 <vscale x 16 x i8>*,
1713 define void @intrinsic_vse_mask_v_nxv16i8_nxv16i8(<vscale x 16 x i8> %0, <vscale x 16 x i8>* %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
1720 call void @llvm.riscv.vse.mask.nxv16i8(
1721 <vscale x 16 x i8> %0,
1722 <vscale x 16 x i8>* %1,
1723 <vscale x 16 x i1> %2,
1729 declare void @llvm.riscv.vse.nxv32i8(
1731 <vscale x 32 x i8>*,
1734 define void @intrinsic_vse_v_nxv32i8_nxv32i8(<vscale x 32 x i8> %0, <vscale x 32 x i8>* %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)
1741 call void @llvm.riscv.vse.nxv32i8(
1742 <vscale x 32 x i8> %0,
1743 <vscale x 32 x i8>* %1,
1749 declare void @llvm.riscv.vse.mask.nxv32i8(
1751 <vscale x 32 x i8>*,
1755 define void @intrinsic_vse_mask_v_nxv32i8_nxv32i8(<vscale x 32 x i8> %0, <vscale x 32 x i8>* %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
1762 call void @llvm.riscv.vse.mask.nxv32i8(
1763 <vscale x 32 x i8> %0,
1764 <vscale x 32 x i8>* %1,
1765 <vscale x 32 x i1> %2,
1771 declare void @llvm.riscv.vse.nxv64i8(
1773 <vscale x 64 x i8>*,
1776 define void @intrinsic_vse_v_nxv64i8_nxv64i8(<vscale x 64 x i8> %0, <vscale x 64 x i8>* %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)
1783 call void @llvm.riscv.vse.nxv64i8(
1784 <vscale x 64 x i8> %0,
1785 <vscale x 64 x i8>* %1,
1791 declare void @llvm.riscv.vse.mask.nxv64i8(
1793 <vscale x 64 x i8>*,
1797 define void @intrinsic_vse_mask_v_nxv64i8_nxv64i8(<vscale x 64 x i8> %0, <vscale x 64 x i8>* %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
1804 call void @llvm.riscv.vse.mask.nxv64i8(
1805 <vscale x 64 x i8> %0,
1806 <vscale x 64 x i8>* %1,
1807 <vscale x 64 x i1> %2,