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 \
3 ; RUN: -verify-machineinstrs -target-abi=ilp32d | FileCheck %s
4 ; RUN: sed 's/iXLen/i64/g' %s | llc -mtriple=riscv64 -mattr=+v,+zfh,+zvfh \
5 ; RUN: -verify-machineinstrs -target-abi=lp64d | FileCheck %s
7 declare <vscale x 1 x i64> @llvm.riscv.vlse.nxv1i64(
13 define <vscale x 1 x i64> @intrinsic_vlse_v_nxv1i64_nxv1i64(<vscale x 1 x i64>* %0, iXLen %1, iXLen %2) nounwind {
14 ; CHECK-LABEL: intrinsic_vlse_v_nxv1i64_nxv1i64:
15 ; CHECK: # %bb.0: # %entry
16 ; CHECK-NEXT: vsetvli zero, a2, e64, m1, ta, ma
17 ; CHECK-NEXT: vlse64.v v8, (a0), a1
20 %a = call <vscale x 1 x i64> @llvm.riscv.vlse.nxv1i64(
21 <vscale x 1 x i64> undef,
22 <vscale x 1 x i64>* %0,
26 ret <vscale x 1 x i64> %a
29 declare <vscale x 1 x i64> @llvm.riscv.vlse.mask.nxv1i64(
37 define <vscale x 1 x i64> @intrinsic_vlse_mask_v_nxv1i64_nxv1i64(<vscale x 1 x i64> %0, <vscale x 1 x i64>* %1, iXLen %2, <vscale x 1 x i1> %3, iXLen %4) nounwind {
38 ; CHECK-LABEL: intrinsic_vlse_mask_v_nxv1i64_nxv1i64:
39 ; CHECK: # %bb.0: # %entry
40 ; CHECK-NEXT: vsetvli zero, a2, e64, m1, ta, mu
41 ; CHECK-NEXT: vlse64.v v8, (a0), a1, v0.t
44 %a = call <vscale x 1 x i64> @llvm.riscv.vlse.mask.nxv1i64(
45 <vscale x 1 x i64> %0,
46 <vscale x 1 x i64>* %1,
51 ret <vscale x 1 x i64> %a
54 declare <vscale x 2 x i64> @llvm.riscv.vlse.nxv2i64(
60 define <vscale x 2 x i64> @intrinsic_vlse_v_nxv2i64_nxv2i64(<vscale x 2 x i64>* %0, iXLen %1, iXLen %2) nounwind {
61 ; CHECK-LABEL: intrinsic_vlse_v_nxv2i64_nxv2i64:
62 ; CHECK: # %bb.0: # %entry
63 ; CHECK-NEXT: vsetvli zero, a2, e64, m2, ta, ma
64 ; CHECK-NEXT: vlse64.v v8, (a0), a1
67 %a = call <vscale x 2 x i64> @llvm.riscv.vlse.nxv2i64(
68 <vscale x 2 x i64> undef,
69 <vscale x 2 x i64>* %0,
73 ret <vscale x 2 x i64> %a
76 declare <vscale x 2 x i64> @llvm.riscv.vlse.mask.nxv2i64(
84 define <vscale x 2 x i64> @intrinsic_vlse_mask_v_nxv2i64_nxv2i64(<vscale x 2 x i64> %0, <vscale x 2 x i64>* %1, iXLen %2, <vscale x 2 x i1> %3, iXLen %4) nounwind {
85 ; CHECK-LABEL: intrinsic_vlse_mask_v_nxv2i64_nxv2i64:
86 ; CHECK: # %bb.0: # %entry
87 ; CHECK-NEXT: vsetvli zero, a2, e64, m2, ta, mu
88 ; CHECK-NEXT: vlse64.v v8, (a0), a1, v0.t
91 %a = call <vscale x 2 x i64> @llvm.riscv.vlse.mask.nxv2i64(
92 <vscale x 2 x i64> %0,
93 <vscale x 2 x i64>* %1,
98 ret <vscale x 2 x i64> %a
101 declare <vscale x 4 x i64> @llvm.riscv.vlse.nxv4i64(
107 define <vscale x 4 x i64> @intrinsic_vlse_v_nxv4i64_nxv4i64(<vscale x 4 x i64>* %0, iXLen %1, iXLen %2) nounwind {
108 ; CHECK-LABEL: intrinsic_vlse_v_nxv4i64_nxv4i64:
109 ; CHECK: # %bb.0: # %entry
110 ; CHECK-NEXT: vsetvli zero, a2, e64, m4, ta, ma
111 ; CHECK-NEXT: vlse64.v v8, (a0), a1
114 %a = call <vscale x 4 x i64> @llvm.riscv.vlse.nxv4i64(
115 <vscale x 4 x i64> undef,
116 <vscale x 4 x i64>* %0,
120 ret <vscale x 4 x i64> %a
123 declare <vscale x 4 x i64> @llvm.riscv.vlse.mask.nxv4i64(
131 define <vscale x 4 x i64> @intrinsic_vlse_mask_v_nxv4i64_nxv4i64(<vscale x 4 x i64> %0, <vscale x 4 x i64>* %1, iXLen %2, <vscale x 4 x i1> %3, iXLen %4) nounwind {
132 ; CHECK-LABEL: intrinsic_vlse_mask_v_nxv4i64_nxv4i64:
133 ; CHECK: # %bb.0: # %entry
134 ; CHECK-NEXT: vsetvli zero, a2, e64, m4, ta, mu
135 ; CHECK-NEXT: vlse64.v v8, (a0), a1, v0.t
138 %a = call <vscale x 4 x i64> @llvm.riscv.vlse.mask.nxv4i64(
139 <vscale x 4 x i64> %0,
140 <vscale x 4 x i64>* %1,
142 <vscale x 4 x i1> %3,
145 ret <vscale x 4 x i64> %a
148 declare <vscale x 8 x i64> @llvm.riscv.vlse.nxv8i64(
154 define <vscale x 8 x i64> @intrinsic_vlse_v_nxv8i64_nxv8i64(<vscale x 8 x i64>* %0, iXLen %1, iXLen %2) nounwind {
155 ; CHECK-LABEL: intrinsic_vlse_v_nxv8i64_nxv8i64:
156 ; CHECK: # %bb.0: # %entry
157 ; CHECK-NEXT: vsetvli zero, a2, e64, m8, ta, ma
158 ; CHECK-NEXT: vlse64.v v8, (a0), a1
161 %a = call <vscale x 8 x i64> @llvm.riscv.vlse.nxv8i64(
162 <vscale x 8 x i64> undef,
163 <vscale x 8 x i64>* %0,
167 ret <vscale x 8 x i64> %a
170 declare <vscale x 8 x i64> @llvm.riscv.vlse.mask.nxv8i64(
178 define <vscale x 8 x i64> @intrinsic_vlse_mask_v_nxv8i64_nxv8i64(<vscale x 8 x i64> %0, <vscale x 8 x i64>* %1, iXLen %2, <vscale x 8 x i1> %3, iXLen %4) nounwind {
179 ; CHECK-LABEL: intrinsic_vlse_mask_v_nxv8i64_nxv8i64:
180 ; CHECK: # %bb.0: # %entry
181 ; CHECK-NEXT: vsetvli zero, a2, e64, m8, ta, mu
182 ; CHECK-NEXT: vlse64.v v8, (a0), a1, v0.t
185 %a = call <vscale x 8 x i64> @llvm.riscv.vlse.mask.nxv8i64(
186 <vscale x 8 x i64> %0,
187 <vscale x 8 x i64>* %1,
189 <vscale x 8 x i1> %3,
192 ret <vscale x 8 x i64> %a
195 declare <vscale x 1 x double> @llvm.riscv.vlse.nxv1f64(
196 <vscale x 1 x double>,
197 <vscale x 1 x double>*,
201 define <vscale x 1 x double> @intrinsic_vlse_v_nxv1f64_nxv1f64(<vscale x 1 x double>* %0, iXLen %1, iXLen %2) nounwind {
202 ; CHECK-LABEL: intrinsic_vlse_v_nxv1f64_nxv1f64:
203 ; CHECK: # %bb.0: # %entry
204 ; CHECK-NEXT: vsetvli zero, a2, e64, m1, ta, ma
205 ; CHECK-NEXT: vlse64.v v8, (a0), a1
208 %a = call <vscale x 1 x double> @llvm.riscv.vlse.nxv1f64(
209 <vscale x 1 x double> undef,
210 <vscale x 1 x double>* %0,
214 ret <vscale x 1 x double> %a
217 declare <vscale x 1 x double> @llvm.riscv.vlse.mask.nxv1f64(
218 <vscale x 1 x double>,
219 <vscale x 1 x double>*,
225 define <vscale x 1 x double> @intrinsic_vlse_mask_v_nxv1f64_nxv1f64(<vscale x 1 x double> %0, <vscale x 1 x double>* %1, iXLen %2, <vscale x 1 x i1> %3, iXLen %4) nounwind {
226 ; CHECK-LABEL: intrinsic_vlse_mask_v_nxv1f64_nxv1f64:
227 ; CHECK: # %bb.0: # %entry
228 ; CHECK-NEXT: vsetvli zero, a2, e64, m1, ta, mu
229 ; CHECK-NEXT: vlse64.v v8, (a0), a1, v0.t
232 %a = call <vscale x 1 x double> @llvm.riscv.vlse.mask.nxv1f64(
233 <vscale x 1 x double> %0,
234 <vscale x 1 x double>* %1,
236 <vscale x 1 x i1> %3,
239 ret <vscale x 1 x double> %a
242 declare <vscale x 2 x double> @llvm.riscv.vlse.nxv2f64(
243 <vscale x 2 x double>,
244 <vscale x 2 x double>*,
248 define <vscale x 2 x double> @intrinsic_vlse_v_nxv2f64_nxv2f64(<vscale x 2 x double>* %0, iXLen %1, iXLen %2) nounwind {
249 ; CHECK-LABEL: intrinsic_vlse_v_nxv2f64_nxv2f64:
250 ; CHECK: # %bb.0: # %entry
251 ; CHECK-NEXT: vsetvli zero, a2, e64, m2, ta, ma
252 ; CHECK-NEXT: vlse64.v v8, (a0), a1
255 %a = call <vscale x 2 x double> @llvm.riscv.vlse.nxv2f64(
256 <vscale x 2 x double> undef,
257 <vscale x 2 x double>* %0,
261 ret <vscale x 2 x double> %a
264 declare <vscale x 2 x double> @llvm.riscv.vlse.mask.nxv2f64(
265 <vscale x 2 x double>,
266 <vscale x 2 x double>*,
272 define <vscale x 2 x double> @intrinsic_vlse_mask_v_nxv2f64_nxv2f64(<vscale x 2 x double> %0, <vscale x 2 x double>* %1, iXLen %2, <vscale x 2 x i1> %3, iXLen %4) nounwind {
273 ; CHECK-LABEL: intrinsic_vlse_mask_v_nxv2f64_nxv2f64:
274 ; CHECK: # %bb.0: # %entry
275 ; CHECK-NEXT: vsetvli zero, a2, e64, m2, ta, mu
276 ; CHECK-NEXT: vlse64.v v8, (a0), a1, v0.t
279 %a = call <vscale x 2 x double> @llvm.riscv.vlse.mask.nxv2f64(
280 <vscale x 2 x double> %0,
281 <vscale x 2 x double>* %1,
283 <vscale x 2 x i1> %3,
286 ret <vscale x 2 x double> %a
289 declare <vscale x 4 x double> @llvm.riscv.vlse.nxv4f64(
290 <vscale x 4 x double>,
291 <vscale x 4 x double>*,
295 define <vscale x 4 x double> @intrinsic_vlse_v_nxv4f64_nxv4f64(<vscale x 4 x double>* %0, iXLen %1, iXLen %2) nounwind {
296 ; CHECK-LABEL: intrinsic_vlse_v_nxv4f64_nxv4f64:
297 ; CHECK: # %bb.0: # %entry
298 ; CHECK-NEXT: vsetvli zero, a2, e64, m4, ta, ma
299 ; CHECK-NEXT: vlse64.v v8, (a0), a1
302 %a = call <vscale x 4 x double> @llvm.riscv.vlse.nxv4f64(
303 <vscale x 4 x double> undef,
304 <vscale x 4 x double>* %0,
308 ret <vscale x 4 x double> %a
311 declare <vscale x 4 x double> @llvm.riscv.vlse.mask.nxv4f64(
312 <vscale x 4 x double>,
313 <vscale x 4 x double>*,
319 define <vscale x 4 x double> @intrinsic_vlse_mask_v_nxv4f64_nxv4f64(<vscale x 4 x double> %0, <vscale x 4 x double>* %1, iXLen %2, <vscale x 4 x i1> %3, iXLen %4) nounwind {
320 ; CHECK-LABEL: intrinsic_vlse_mask_v_nxv4f64_nxv4f64:
321 ; CHECK: # %bb.0: # %entry
322 ; CHECK-NEXT: vsetvli zero, a2, e64, m4, ta, mu
323 ; CHECK-NEXT: vlse64.v v8, (a0), a1, v0.t
326 %a = call <vscale x 4 x double> @llvm.riscv.vlse.mask.nxv4f64(
327 <vscale x 4 x double> %0,
328 <vscale x 4 x double>* %1,
330 <vscale x 4 x i1> %3,
333 ret <vscale x 4 x double> %a
336 declare <vscale x 8 x double> @llvm.riscv.vlse.nxv8f64(
337 <vscale x 8 x double>,
338 <vscale x 8 x double>*,
342 define <vscale x 8 x double> @intrinsic_vlse_v_nxv8f64_nxv8f64(<vscale x 8 x double>* %0, iXLen %1, iXLen %2) nounwind {
343 ; CHECK-LABEL: intrinsic_vlse_v_nxv8f64_nxv8f64:
344 ; CHECK: # %bb.0: # %entry
345 ; CHECK-NEXT: vsetvli zero, a2, e64, m8, ta, ma
346 ; CHECK-NEXT: vlse64.v v8, (a0), a1
349 %a = call <vscale x 8 x double> @llvm.riscv.vlse.nxv8f64(
350 <vscale x 8 x double> undef,
351 <vscale x 8 x double>* %0,
355 ret <vscale x 8 x double> %a
358 declare <vscale x 8 x double> @llvm.riscv.vlse.mask.nxv8f64(
359 <vscale x 8 x double>,
360 <vscale x 8 x double>*,
366 define <vscale x 8 x double> @intrinsic_vlse_mask_v_nxv8f64_nxv8f64(<vscale x 8 x double> %0, <vscale x 8 x double>* %1, iXLen %2, <vscale x 8 x i1> %3, iXLen %4) nounwind {
367 ; CHECK-LABEL: intrinsic_vlse_mask_v_nxv8f64_nxv8f64:
368 ; CHECK: # %bb.0: # %entry
369 ; CHECK-NEXT: vsetvli zero, a2, e64, m8, ta, mu
370 ; CHECK-NEXT: vlse64.v v8, (a0), a1, v0.t
373 %a = call <vscale x 8 x double> @llvm.riscv.vlse.mask.nxv8f64(
374 <vscale x 8 x double> %0,
375 <vscale x 8 x double>* %1,
377 <vscale x 8 x i1> %3,
380 ret <vscale x 8 x double> %a
383 declare <vscale x 1 x i32> @llvm.riscv.vlse.nxv1i32(
389 define <vscale x 1 x i32> @intrinsic_vlse_v_nxv1i32_nxv1i32(<vscale x 1 x i32>* %0, iXLen %1, iXLen %2) nounwind {
390 ; CHECK-LABEL: intrinsic_vlse_v_nxv1i32_nxv1i32:
391 ; CHECK: # %bb.0: # %entry
392 ; CHECK-NEXT: vsetvli zero, a2, e32, mf2, ta, ma
393 ; CHECK-NEXT: vlse32.v v8, (a0), a1
396 %a = call <vscale x 1 x i32> @llvm.riscv.vlse.nxv1i32(
397 <vscale x 1 x i32> undef,
398 <vscale x 1 x i32>* %0,
402 ret <vscale x 1 x i32> %a
405 declare <vscale x 1 x i32> @llvm.riscv.vlse.mask.nxv1i32(
413 define <vscale x 1 x i32> @intrinsic_vlse_mask_v_nxv1i32_nxv1i32(<vscale x 1 x i32> %0, <vscale x 1 x i32>* %1, iXLen %2, <vscale x 1 x i1> %3, iXLen %4) nounwind {
414 ; CHECK-LABEL: intrinsic_vlse_mask_v_nxv1i32_nxv1i32:
415 ; CHECK: # %bb.0: # %entry
416 ; CHECK-NEXT: vsetvli zero, a2, e32, mf2, ta, mu
417 ; CHECK-NEXT: vlse32.v v8, (a0), a1, v0.t
420 %a = call <vscale x 1 x i32> @llvm.riscv.vlse.mask.nxv1i32(
421 <vscale x 1 x i32> %0,
422 <vscale x 1 x i32>* %1,
424 <vscale x 1 x i1> %3,
427 ret <vscale x 1 x i32> %a
430 declare <vscale x 2 x i32> @llvm.riscv.vlse.nxv2i32(
436 define <vscale x 2 x i32> @intrinsic_vlse_v_nxv2i32_nxv2i32(<vscale x 2 x i32>* %0, iXLen %1, iXLen %2) nounwind {
437 ; CHECK-LABEL: intrinsic_vlse_v_nxv2i32_nxv2i32:
438 ; CHECK: # %bb.0: # %entry
439 ; CHECK-NEXT: vsetvli zero, a2, e32, m1, ta, ma
440 ; CHECK-NEXT: vlse32.v v8, (a0), a1
443 %a = call <vscale x 2 x i32> @llvm.riscv.vlse.nxv2i32(
444 <vscale x 2 x i32> undef,
445 <vscale x 2 x i32>* %0,
449 ret <vscale x 2 x i32> %a
452 declare <vscale x 2 x i32> @llvm.riscv.vlse.mask.nxv2i32(
460 define <vscale x 2 x i32> @intrinsic_vlse_mask_v_nxv2i32_nxv2i32(<vscale x 2 x i32> %0, <vscale x 2 x i32>* %1, iXLen %2, <vscale x 2 x i1> %3, iXLen %4) nounwind {
461 ; CHECK-LABEL: intrinsic_vlse_mask_v_nxv2i32_nxv2i32:
462 ; CHECK: # %bb.0: # %entry
463 ; CHECK-NEXT: vsetvli zero, a2, e32, m1, ta, mu
464 ; CHECK-NEXT: vlse32.v v8, (a0), a1, v0.t
467 %a = call <vscale x 2 x i32> @llvm.riscv.vlse.mask.nxv2i32(
468 <vscale x 2 x i32> %0,
469 <vscale x 2 x i32>* %1,
471 <vscale x 2 x i1> %3,
474 ret <vscale x 2 x i32> %a
477 declare <vscale x 4 x i32> @llvm.riscv.vlse.nxv4i32(
483 define <vscale x 4 x i32> @intrinsic_vlse_v_nxv4i32_nxv4i32(<vscale x 4 x i32>* %0, iXLen %1, iXLen %2) nounwind {
484 ; CHECK-LABEL: intrinsic_vlse_v_nxv4i32_nxv4i32:
485 ; CHECK: # %bb.0: # %entry
486 ; CHECK-NEXT: vsetvli zero, a2, e32, m2, ta, ma
487 ; CHECK-NEXT: vlse32.v v8, (a0), a1
490 %a = call <vscale x 4 x i32> @llvm.riscv.vlse.nxv4i32(
491 <vscale x 4 x i32> undef,
492 <vscale x 4 x i32>* %0,
496 ret <vscale x 4 x i32> %a
499 declare <vscale x 4 x i32> @llvm.riscv.vlse.mask.nxv4i32(
507 define <vscale x 4 x i32> @intrinsic_vlse_mask_v_nxv4i32_nxv4i32(<vscale x 4 x i32> %0, <vscale x 4 x i32>* %1, iXLen %2, <vscale x 4 x i1> %3, iXLen %4) nounwind {
508 ; CHECK-LABEL: intrinsic_vlse_mask_v_nxv4i32_nxv4i32:
509 ; CHECK: # %bb.0: # %entry
510 ; CHECK-NEXT: vsetvli zero, a2, e32, m2, ta, mu
511 ; CHECK-NEXT: vlse32.v v8, (a0), a1, v0.t
514 %a = call <vscale x 4 x i32> @llvm.riscv.vlse.mask.nxv4i32(
515 <vscale x 4 x i32> %0,
516 <vscale x 4 x i32>* %1,
518 <vscale x 4 x i1> %3,
521 ret <vscale x 4 x i32> %a
524 declare <vscale x 8 x i32> @llvm.riscv.vlse.nxv8i32(
530 define <vscale x 8 x i32> @intrinsic_vlse_v_nxv8i32_nxv8i32(<vscale x 8 x i32>* %0, iXLen %1, iXLen %2) nounwind {
531 ; CHECK-LABEL: intrinsic_vlse_v_nxv8i32_nxv8i32:
532 ; CHECK: # %bb.0: # %entry
533 ; CHECK-NEXT: vsetvli zero, a2, e32, m4, ta, ma
534 ; CHECK-NEXT: vlse32.v v8, (a0), a1
537 %a = call <vscale x 8 x i32> @llvm.riscv.vlse.nxv8i32(
538 <vscale x 8 x i32> undef,
539 <vscale x 8 x i32>* %0,
543 ret <vscale x 8 x i32> %a
546 declare <vscale x 8 x i32> @llvm.riscv.vlse.mask.nxv8i32(
554 define <vscale x 8 x i32> @intrinsic_vlse_mask_v_nxv8i32_nxv8i32(<vscale x 8 x i32> %0, <vscale x 8 x i32>* %1, iXLen %2, <vscale x 8 x i1> %3, iXLen %4) nounwind {
555 ; CHECK-LABEL: intrinsic_vlse_mask_v_nxv8i32_nxv8i32:
556 ; CHECK: # %bb.0: # %entry
557 ; CHECK-NEXT: vsetvli zero, a2, e32, m4, ta, mu
558 ; CHECK-NEXT: vlse32.v v8, (a0), a1, v0.t
561 %a = call <vscale x 8 x i32> @llvm.riscv.vlse.mask.nxv8i32(
562 <vscale x 8 x i32> %0,
563 <vscale x 8 x i32>* %1,
565 <vscale x 8 x i1> %3,
568 ret <vscale x 8 x i32> %a
571 declare <vscale x 16 x i32> @llvm.riscv.vlse.nxv16i32(
573 <vscale x 16 x i32>*,
577 define <vscale x 16 x i32> @intrinsic_vlse_v_nxv16i32_nxv16i32(<vscale x 16 x i32>* %0, iXLen %1, iXLen %2) nounwind {
578 ; CHECK-LABEL: intrinsic_vlse_v_nxv16i32_nxv16i32:
579 ; CHECK: # %bb.0: # %entry
580 ; CHECK-NEXT: vsetvli zero, a2, e32, m8, ta, ma
581 ; CHECK-NEXT: vlse32.v v8, (a0), a1
584 %a = call <vscale x 16 x i32> @llvm.riscv.vlse.nxv16i32(
585 <vscale x 16 x i32> undef,
586 <vscale x 16 x i32>* %0,
590 ret <vscale x 16 x i32> %a
593 declare <vscale x 16 x i32> @llvm.riscv.vlse.mask.nxv16i32(
595 <vscale x 16 x i32>*,
601 define <vscale x 16 x i32> @intrinsic_vlse_mask_v_nxv16i32_nxv16i32(<vscale x 16 x i32> %0, <vscale x 16 x i32>* %1, iXLen %2, <vscale x 16 x i1> %3, iXLen %4) nounwind {
602 ; CHECK-LABEL: intrinsic_vlse_mask_v_nxv16i32_nxv16i32:
603 ; CHECK: # %bb.0: # %entry
604 ; CHECK-NEXT: vsetvli zero, a2, e32, m8, ta, mu
605 ; CHECK-NEXT: vlse32.v v8, (a0), a1, v0.t
608 %a = call <vscale x 16 x i32> @llvm.riscv.vlse.mask.nxv16i32(
609 <vscale x 16 x i32> %0,
610 <vscale x 16 x i32>* %1,
612 <vscale x 16 x i1> %3,
615 ret <vscale x 16 x i32> %a
618 declare <vscale x 1 x float> @llvm.riscv.vlse.nxv1f32(
619 <vscale x 1 x float>,
620 <vscale x 1 x float>*,
624 define <vscale x 1 x float> @intrinsic_vlse_v_nxv1f32_nxv1f32(<vscale x 1 x float>* %0, iXLen %1, iXLen %2) nounwind {
625 ; CHECK-LABEL: intrinsic_vlse_v_nxv1f32_nxv1f32:
626 ; CHECK: # %bb.0: # %entry
627 ; CHECK-NEXT: vsetvli zero, a2, e32, mf2, ta, ma
628 ; CHECK-NEXT: vlse32.v v8, (a0), a1
631 %a = call <vscale x 1 x float> @llvm.riscv.vlse.nxv1f32(
632 <vscale x 1 x float> undef,
633 <vscale x 1 x float>* %0,
637 ret <vscale x 1 x float> %a
640 declare <vscale x 1 x float> @llvm.riscv.vlse.mask.nxv1f32(
641 <vscale x 1 x float>,
642 <vscale x 1 x float>*,
648 define <vscale x 1 x float> @intrinsic_vlse_mask_v_nxv1f32_nxv1f32(<vscale x 1 x float> %0, <vscale x 1 x float>* %1, iXLen %2, <vscale x 1 x i1> %3, iXLen %4) nounwind {
649 ; CHECK-LABEL: intrinsic_vlse_mask_v_nxv1f32_nxv1f32:
650 ; CHECK: # %bb.0: # %entry
651 ; CHECK-NEXT: vsetvli zero, a2, e32, mf2, ta, mu
652 ; CHECK-NEXT: vlse32.v v8, (a0), a1, v0.t
655 %a = call <vscale x 1 x float> @llvm.riscv.vlse.mask.nxv1f32(
656 <vscale x 1 x float> %0,
657 <vscale x 1 x float>* %1,
659 <vscale x 1 x i1> %3,
662 ret <vscale x 1 x float> %a
665 declare <vscale x 2 x float> @llvm.riscv.vlse.nxv2f32(
666 <vscale x 2 x float>,
667 <vscale x 2 x float>*,
671 define <vscale x 2 x float> @intrinsic_vlse_v_nxv2f32_nxv2f32(<vscale x 2 x float>* %0, iXLen %1, iXLen %2) nounwind {
672 ; CHECK-LABEL: intrinsic_vlse_v_nxv2f32_nxv2f32:
673 ; CHECK: # %bb.0: # %entry
674 ; CHECK-NEXT: vsetvli zero, a2, e32, m1, ta, ma
675 ; CHECK-NEXT: vlse32.v v8, (a0), a1
678 %a = call <vscale x 2 x float> @llvm.riscv.vlse.nxv2f32(
679 <vscale x 2 x float> undef,
680 <vscale x 2 x float>* %0,
684 ret <vscale x 2 x float> %a
687 declare <vscale x 2 x float> @llvm.riscv.vlse.mask.nxv2f32(
688 <vscale x 2 x float>,
689 <vscale x 2 x float>*,
695 define <vscale x 2 x float> @intrinsic_vlse_mask_v_nxv2f32_nxv2f32(<vscale x 2 x float> %0, <vscale x 2 x float>* %1, iXLen %2, <vscale x 2 x i1> %3, iXLen %4) nounwind {
696 ; CHECK-LABEL: intrinsic_vlse_mask_v_nxv2f32_nxv2f32:
697 ; CHECK: # %bb.0: # %entry
698 ; CHECK-NEXT: vsetvli zero, a2, e32, m1, ta, mu
699 ; CHECK-NEXT: vlse32.v v8, (a0), a1, v0.t
702 %a = call <vscale x 2 x float> @llvm.riscv.vlse.mask.nxv2f32(
703 <vscale x 2 x float> %0,
704 <vscale x 2 x float>* %1,
706 <vscale x 2 x i1> %3,
709 ret <vscale x 2 x float> %a
712 declare <vscale x 4 x float> @llvm.riscv.vlse.nxv4f32(
713 <vscale x 4 x float>,
714 <vscale x 4 x float>*,
718 define <vscale x 4 x float> @intrinsic_vlse_v_nxv4f32_nxv4f32(<vscale x 4 x float>* %0, iXLen %1, iXLen %2) nounwind {
719 ; CHECK-LABEL: intrinsic_vlse_v_nxv4f32_nxv4f32:
720 ; CHECK: # %bb.0: # %entry
721 ; CHECK-NEXT: vsetvli zero, a2, e32, m2, ta, ma
722 ; CHECK-NEXT: vlse32.v v8, (a0), a1
725 %a = call <vscale x 4 x float> @llvm.riscv.vlse.nxv4f32(
726 <vscale x 4 x float> undef,
727 <vscale x 4 x float>* %0,
731 ret <vscale x 4 x float> %a
734 declare <vscale x 4 x float> @llvm.riscv.vlse.mask.nxv4f32(
735 <vscale x 4 x float>,
736 <vscale x 4 x float>*,
742 define <vscale x 4 x float> @intrinsic_vlse_mask_v_nxv4f32_nxv4f32(<vscale x 4 x float> %0, <vscale x 4 x float>* %1, iXLen %2, <vscale x 4 x i1> %3, iXLen %4) nounwind {
743 ; CHECK-LABEL: intrinsic_vlse_mask_v_nxv4f32_nxv4f32:
744 ; CHECK: # %bb.0: # %entry
745 ; CHECK-NEXT: vsetvli zero, a2, e32, m2, ta, mu
746 ; CHECK-NEXT: vlse32.v v8, (a0), a1, v0.t
749 %a = call <vscale x 4 x float> @llvm.riscv.vlse.mask.nxv4f32(
750 <vscale x 4 x float> %0,
751 <vscale x 4 x float>* %1,
753 <vscale x 4 x i1> %3,
756 ret <vscale x 4 x float> %a
759 declare <vscale x 8 x float> @llvm.riscv.vlse.nxv8f32(
760 <vscale x 8 x float>,
761 <vscale x 8 x float>*,
765 define <vscale x 8 x float> @intrinsic_vlse_v_nxv8f32_nxv8f32(<vscale x 8 x float>* %0, iXLen %1, iXLen %2) nounwind {
766 ; CHECK-LABEL: intrinsic_vlse_v_nxv8f32_nxv8f32:
767 ; CHECK: # %bb.0: # %entry
768 ; CHECK-NEXT: vsetvli zero, a2, e32, m4, ta, ma
769 ; CHECK-NEXT: vlse32.v v8, (a0), a1
772 %a = call <vscale x 8 x float> @llvm.riscv.vlse.nxv8f32(
773 <vscale x 8 x float> undef,
774 <vscale x 8 x float>* %0,
778 ret <vscale x 8 x float> %a
781 declare <vscale x 8 x float> @llvm.riscv.vlse.mask.nxv8f32(
782 <vscale x 8 x float>,
783 <vscale x 8 x float>*,
789 define <vscale x 8 x float> @intrinsic_vlse_mask_v_nxv8f32_nxv8f32(<vscale x 8 x float> %0, <vscale x 8 x float>* %1, iXLen %2, <vscale x 8 x i1> %3, iXLen %4) nounwind {
790 ; CHECK-LABEL: intrinsic_vlse_mask_v_nxv8f32_nxv8f32:
791 ; CHECK: # %bb.0: # %entry
792 ; CHECK-NEXT: vsetvli zero, a2, e32, m4, ta, mu
793 ; CHECK-NEXT: vlse32.v v8, (a0), a1, v0.t
796 %a = call <vscale x 8 x float> @llvm.riscv.vlse.mask.nxv8f32(
797 <vscale x 8 x float> %0,
798 <vscale x 8 x float>* %1,
800 <vscale x 8 x i1> %3,
803 ret <vscale x 8 x float> %a
806 declare <vscale x 16 x float> @llvm.riscv.vlse.nxv16f32(
807 <vscale x 16 x float>,
808 <vscale x 16 x float>*,
812 define <vscale x 16 x float> @intrinsic_vlse_v_nxv16f32_nxv16f32(<vscale x 16 x float>* %0, iXLen %1, iXLen %2) nounwind {
813 ; CHECK-LABEL: intrinsic_vlse_v_nxv16f32_nxv16f32:
814 ; CHECK: # %bb.0: # %entry
815 ; CHECK-NEXT: vsetvli zero, a2, e32, m8, ta, ma
816 ; CHECK-NEXT: vlse32.v v8, (a0), a1
819 %a = call <vscale x 16 x float> @llvm.riscv.vlse.nxv16f32(
820 <vscale x 16 x float> undef,
821 <vscale x 16 x float>* %0,
825 ret <vscale x 16 x float> %a
828 declare <vscale x 16 x float> @llvm.riscv.vlse.mask.nxv16f32(
829 <vscale x 16 x float>,
830 <vscale x 16 x float>*,
836 define <vscale x 16 x float> @intrinsic_vlse_mask_v_nxv16f32_nxv16f32(<vscale x 16 x float> %0, <vscale x 16 x float>* %1, iXLen %2, <vscale x 16 x i1> %3, iXLen %4) nounwind {
837 ; CHECK-LABEL: intrinsic_vlse_mask_v_nxv16f32_nxv16f32:
838 ; CHECK: # %bb.0: # %entry
839 ; CHECK-NEXT: vsetvli zero, a2, e32, m8, ta, mu
840 ; CHECK-NEXT: vlse32.v v8, (a0), a1, v0.t
843 %a = call <vscale x 16 x float> @llvm.riscv.vlse.mask.nxv16f32(
844 <vscale x 16 x float> %0,
845 <vscale x 16 x float>* %1,
847 <vscale x 16 x i1> %3,
850 ret <vscale x 16 x float> %a
853 declare <vscale x 1 x i16> @llvm.riscv.vlse.nxv1i16(
859 define <vscale x 1 x i16> @intrinsic_vlse_v_nxv1i16_nxv1i16(<vscale x 1 x i16>* %0, iXLen %1, iXLen %2) nounwind {
860 ; CHECK-LABEL: intrinsic_vlse_v_nxv1i16_nxv1i16:
861 ; CHECK: # %bb.0: # %entry
862 ; CHECK-NEXT: vsetvli zero, a2, e16, mf4, ta, ma
863 ; CHECK-NEXT: vlse16.v v8, (a0), a1
866 %a = call <vscale x 1 x i16> @llvm.riscv.vlse.nxv1i16(
867 <vscale x 1 x i16> undef,
868 <vscale x 1 x i16>* %0,
872 ret <vscale x 1 x i16> %a
875 declare <vscale x 1 x i16> @llvm.riscv.vlse.mask.nxv1i16(
883 define <vscale x 1 x i16> @intrinsic_vlse_mask_v_nxv1i16_nxv1i16(<vscale x 1 x i16> %0, <vscale x 1 x i16>* %1, iXLen %2, <vscale x 1 x i1> %3, iXLen %4) nounwind {
884 ; CHECK-LABEL: intrinsic_vlse_mask_v_nxv1i16_nxv1i16:
885 ; CHECK: # %bb.0: # %entry
886 ; CHECK-NEXT: vsetvli zero, a2, e16, mf4, ta, mu
887 ; CHECK-NEXT: vlse16.v v8, (a0), a1, v0.t
890 %a = call <vscale x 1 x i16> @llvm.riscv.vlse.mask.nxv1i16(
891 <vscale x 1 x i16> %0,
892 <vscale x 1 x i16>* %1,
894 <vscale x 1 x i1> %3,
897 ret <vscale x 1 x i16> %a
900 declare <vscale x 2 x i16> @llvm.riscv.vlse.nxv2i16(
906 define <vscale x 2 x i16> @intrinsic_vlse_v_nxv2i16_nxv2i16(<vscale x 2 x i16>* %0, iXLen %1, iXLen %2) nounwind {
907 ; CHECK-LABEL: intrinsic_vlse_v_nxv2i16_nxv2i16:
908 ; CHECK: # %bb.0: # %entry
909 ; CHECK-NEXT: vsetvli zero, a2, e16, mf2, ta, ma
910 ; CHECK-NEXT: vlse16.v v8, (a0), a1
913 %a = call <vscale x 2 x i16> @llvm.riscv.vlse.nxv2i16(
914 <vscale x 2 x i16> undef,
915 <vscale x 2 x i16>* %0,
919 ret <vscale x 2 x i16> %a
922 declare <vscale x 2 x i16> @llvm.riscv.vlse.mask.nxv2i16(
930 define <vscale x 2 x i16> @intrinsic_vlse_mask_v_nxv2i16_nxv2i16(<vscale x 2 x i16> %0, <vscale x 2 x i16>* %1, iXLen %2, <vscale x 2 x i1> %3, iXLen %4) nounwind {
931 ; CHECK-LABEL: intrinsic_vlse_mask_v_nxv2i16_nxv2i16:
932 ; CHECK: # %bb.0: # %entry
933 ; CHECK-NEXT: vsetvli zero, a2, e16, mf2, ta, mu
934 ; CHECK-NEXT: vlse16.v v8, (a0), a1, v0.t
937 %a = call <vscale x 2 x i16> @llvm.riscv.vlse.mask.nxv2i16(
938 <vscale x 2 x i16> %0,
939 <vscale x 2 x i16>* %1,
941 <vscale x 2 x i1> %3,
944 ret <vscale x 2 x i16> %a
947 declare <vscale x 4 x i16> @llvm.riscv.vlse.nxv4i16(
953 define <vscale x 4 x i16> @intrinsic_vlse_v_nxv4i16_nxv4i16(<vscale x 4 x i16>* %0, iXLen %1, iXLen %2) nounwind {
954 ; CHECK-LABEL: intrinsic_vlse_v_nxv4i16_nxv4i16:
955 ; CHECK: # %bb.0: # %entry
956 ; CHECK-NEXT: vsetvli zero, a2, e16, m1, ta, ma
957 ; CHECK-NEXT: vlse16.v v8, (a0), a1
960 %a = call <vscale x 4 x i16> @llvm.riscv.vlse.nxv4i16(
961 <vscale x 4 x i16> undef,
962 <vscale x 4 x i16>* %0,
966 ret <vscale x 4 x i16> %a
969 declare <vscale x 4 x i16> @llvm.riscv.vlse.mask.nxv4i16(
977 define <vscale x 4 x i16> @intrinsic_vlse_mask_v_nxv4i16_nxv4i16(<vscale x 4 x i16> %0, <vscale x 4 x i16>* %1, iXLen %2, <vscale x 4 x i1> %3, iXLen %4) nounwind {
978 ; CHECK-LABEL: intrinsic_vlse_mask_v_nxv4i16_nxv4i16:
979 ; CHECK: # %bb.0: # %entry
980 ; CHECK-NEXT: vsetvli zero, a2, e16, m1, ta, mu
981 ; CHECK-NEXT: vlse16.v v8, (a0), a1, v0.t
984 %a = call <vscale x 4 x i16> @llvm.riscv.vlse.mask.nxv4i16(
985 <vscale x 4 x i16> %0,
986 <vscale x 4 x i16>* %1,
988 <vscale x 4 x i1> %3,
991 ret <vscale x 4 x i16> %a
994 declare <vscale x 8 x i16> @llvm.riscv.vlse.nxv8i16(
1000 define <vscale x 8 x i16> @intrinsic_vlse_v_nxv8i16_nxv8i16(<vscale x 8 x i16>* %0, iXLen %1, iXLen %2) nounwind {
1001 ; CHECK-LABEL: intrinsic_vlse_v_nxv8i16_nxv8i16:
1002 ; CHECK: # %bb.0: # %entry
1003 ; CHECK-NEXT: vsetvli zero, a2, e16, m2, ta, ma
1004 ; CHECK-NEXT: vlse16.v v8, (a0), a1
1007 %a = call <vscale x 8 x i16> @llvm.riscv.vlse.nxv8i16(
1008 <vscale x 8 x i16> undef,
1009 <vscale x 8 x i16>* %0,
1013 ret <vscale x 8 x i16> %a
1016 declare <vscale x 8 x i16> @llvm.riscv.vlse.mask.nxv8i16(
1018 <vscale x 8 x i16>*,
1024 define <vscale x 8 x i16> @intrinsic_vlse_mask_v_nxv8i16_nxv8i16(<vscale x 8 x i16> %0, <vscale x 8 x i16>* %1, iXLen %2, <vscale x 8 x i1> %3, iXLen %4) nounwind {
1025 ; CHECK-LABEL: intrinsic_vlse_mask_v_nxv8i16_nxv8i16:
1026 ; CHECK: # %bb.0: # %entry
1027 ; CHECK-NEXT: vsetvli zero, a2, e16, m2, ta, mu
1028 ; CHECK-NEXT: vlse16.v v8, (a0), a1, v0.t
1031 %a = call <vscale x 8 x i16> @llvm.riscv.vlse.mask.nxv8i16(
1032 <vscale x 8 x i16> %0,
1033 <vscale x 8 x i16>* %1,
1035 <vscale x 8 x i1> %3,
1038 ret <vscale x 8 x i16> %a
1041 declare <vscale x 16 x i16> @llvm.riscv.vlse.nxv16i16(
1042 <vscale x 16 x i16>,
1043 <vscale x 16 x i16>*,
1047 define <vscale x 16 x i16> @intrinsic_vlse_v_nxv16i16_nxv16i16(<vscale x 16 x i16>* %0, iXLen %1, iXLen %2) nounwind {
1048 ; CHECK-LABEL: intrinsic_vlse_v_nxv16i16_nxv16i16:
1049 ; CHECK: # %bb.0: # %entry
1050 ; CHECK-NEXT: vsetvli zero, a2, e16, m4, ta, ma
1051 ; CHECK-NEXT: vlse16.v v8, (a0), a1
1054 %a = call <vscale x 16 x i16> @llvm.riscv.vlse.nxv16i16(
1055 <vscale x 16 x i16> undef,
1056 <vscale x 16 x i16>* %0,
1060 ret <vscale x 16 x i16> %a
1063 declare <vscale x 16 x i16> @llvm.riscv.vlse.mask.nxv16i16(
1064 <vscale x 16 x i16>,
1065 <vscale x 16 x i16>*,
1071 define <vscale x 16 x i16> @intrinsic_vlse_mask_v_nxv16i16_nxv16i16(<vscale x 16 x i16> %0, <vscale x 16 x i16>* %1, iXLen %2, <vscale x 16 x i1> %3, iXLen %4) nounwind {
1072 ; CHECK-LABEL: intrinsic_vlse_mask_v_nxv16i16_nxv16i16:
1073 ; CHECK: # %bb.0: # %entry
1074 ; CHECK-NEXT: vsetvli zero, a2, e16, m4, ta, mu
1075 ; CHECK-NEXT: vlse16.v v8, (a0), a1, v0.t
1078 %a = call <vscale x 16 x i16> @llvm.riscv.vlse.mask.nxv16i16(
1079 <vscale x 16 x i16> %0,
1080 <vscale x 16 x i16>* %1,
1082 <vscale x 16 x i1> %3,
1085 ret <vscale x 16 x i16> %a
1088 declare <vscale x 32 x i16> @llvm.riscv.vlse.nxv32i16(
1089 <vscale x 32 x i16>,
1090 <vscale x 32 x i16>*,
1094 define <vscale x 32 x i16> @intrinsic_vlse_v_nxv32i16_nxv32i16(<vscale x 32 x i16>* %0, iXLen %1, iXLen %2) nounwind {
1095 ; CHECK-LABEL: intrinsic_vlse_v_nxv32i16_nxv32i16:
1096 ; CHECK: # %bb.0: # %entry
1097 ; CHECK-NEXT: vsetvli zero, a2, e16, m8, ta, ma
1098 ; CHECK-NEXT: vlse16.v v8, (a0), a1
1101 %a = call <vscale x 32 x i16> @llvm.riscv.vlse.nxv32i16(
1102 <vscale x 32 x i16> undef,
1103 <vscale x 32 x i16>* %0,
1107 ret <vscale x 32 x i16> %a
1110 declare <vscale x 32 x i16> @llvm.riscv.vlse.mask.nxv32i16(
1111 <vscale x 32 x i16>,
1112 <vscale x 32 x i16>*,
1118 define <vscale x 32 x i16> @intrinsic_vlse_mask_v_nxv32i16_nxv32i16(<vscale x 32 x i16> %0, <vscale x 32 x i16>* %1, iXLen %2, <vscale x 32 x i1> %3, iXLen %4) nounwind {
1119 ; CHECK-LABEL: intrinsic_vlse_mask_v_nxv32i16_nxv32i16:
1120 ; CHECK: # %bb.0: # %entry
1121 ; CHECK-NEXT: vsetvli zero, a2, e16, m8, ta, mu
1122 ; CHECK-NEXT: vlse16.v v8, (a0), a1, v0.t
1125 %a = call <vscale x 32 x i16> @llvm.riscv.vlse.mask.nxv32i16(
1126 <vscale x 32 x i16> %0,
1127 <vscale x 32 x i16>* %1,
1129 <vscale x 32 x i1> %3,
1132 ret <vscale x 32 x i16> %a
1135 declare <vscale x 1 x half> @llvm.riscv.vlse.nxv1f16(
1136 <vscale x 1 x half>,
1137 <vscale x 1 x half>*,
1141 define <vscale x 1 x half> @intrinsic_vlse_v_nxv1f16_nxv1f16(<vscale x 1 x half>* %0, iXLen %1, iXLen %2) nounwind {
1142 ; CHECK-LABEL: intrinsic_vlse_v_nxv1f16_nxv1f16:
1143 ; CHECK: # %bb.0: # %entry
1144 ; CHECK-NEXT: vsetvli zero, a2, e16, mf4, ta, ma
1145 ; CHECK-NEXT: vlse16.v v8, (a0), a1
1148 %a = call <vscale x 1 x half> @llvm.riscv.vlse.nxv1f16(
1149 <vscale x 1 x half> undef,
1150 <vscale x 1 x half>* %0,
1154 ret <vscale x 1 x half> %a
1157 declare <vscale x 1 x half> @llvm.riscv.vlse.mask.nxv1f16(
1158 <vscale x 1 x half>,
1159 <vscale x 1 x half>*,
1165 define <vscale x 1 x half> @intrinsic_vlse_mask_v_nxv1f16_nxv1f16(<vscale x 1 x half> %0, <vscale x 1 x half>* %1, iXLen %2, <vscale x 1 x i1> %3, iXLen %4) nounwind {
1166 ; CHECK-LABEL: intrinsic_vlse_mask_v_nxv1f16_nxv1f16:
1167 ; CHECK: # %bb.0: # %entry
1168 ; CHECK-NEXT: vsetvli zero, a2, e16, mf4, ta, mu
1169 ; CHECK-NEXT: vlse16.v v8, (a0), a1, v0.t
1172 %a = call <vscale x 1 x half> @llvm.riscv.vlse.mask.nxv1f16(
1173 <vscale x 1 x half> %0,
1174 <vscale x 1 x half>* %1,
1176 <vscale x 1 x i1> %3,
1179 ret <vscale x 1 x half> %a
1182 declare <vscale x 2 x half> @llvm.riscv.vlse.nxv2f16(
1183 <vscale x 2 x half>,
1184 <vscale x 2 x half>*,
1188 define <vscale x 2 x half> @intrinsic_vlse_v_nxv2f16_nxv2f16(<vscale x 2 x half>* %0, iXLen %1, iXLen %2) nounwind {
1189 ; CHECK-LABEL: intrinsic_vlse_v_nxv2f16_nxv2f16:
1190 ; CHECK: # %bb.0: # %entry
1191 ; CHECK-NEXT: vsetvli zero, a2, e16, mf2, ta, ma
1192 ; CHECK-NEXT: vlse16.v v8, (a0), a1
1195 %a = call <vscale x 2 x half> @llvm.riscv.vlse.nxv2f16(
1196 <vscale x 2 x half> undef,
1197 <vscale x 2 x half>* %0,
1201 ret <vscale x 2 x half> %a
1204 declare <vscale x 2 x half> @llvm.riscv.vlse.mask.nxv2f16(
1205 <vscale x 2 x half>,
1206 <vscale x 2 x half>*,
1212 define <vscale x 2 x half> @intrinsic_vlse_mask_v_nxv2f16_nxv2f16(<vscale x 2 x half> %0, <vscale x 2 x half>* %1, iXLen %2, <vscale x 2 x i1> %3, iXLen %4) nounwind {
1213 ; CHECK-LABEL: intrinsic_vlse_mask_v_nxv2f16_nxv2f16:
1214 ; CHECK: # %bb.0: # %entry
1215 ; CHECK-NEXT: vsetvli zero, a2, e16, mf2, ta, mu
1216 ; CHECK-NEXT: vlse16.v v8, (a0), a1, v0.t
1219 %a = call <vscale x 2 x half> @llvm.riscv.vlse.mask.nxv2f16(
1220 <vscale x 2 x half> %0,
1221 <vscale x 2 x half>* %1,
1223 <vscale x 2 x i1> %3,
1226 ret <vscale x 2 x half> %a
1229 declare <vscale x 4 x half> @llvm.riscv.vlse.nxv4f16(
1230 <vscale x 4 x half>,
1231 <vscale x 4 x half>*,
1235 define <vscale x 4 x half> @intrinsic_vlse_v_nxv4f16_nxv4f16(<vscale x 4 x half>* %0, iXLen %1, iXLen %2) nounwind {
1236 ; CHECK-LABEL: intrinsic_vlse_v_nxv4f16_nxv4f16:
1237 ; CHECK: # %bb.0: # %entry
1238 ; CHECK-NEXT: vsetvli zero, a2, e16, m1, ta, ma
1239 ; CHECK-NEXT: vlse16.v v8, (a0), a1
1242 %a = call <vscale x 4 x half> @llvm.riscv.vlse.nxv4f16(
1243 <vscale x 4 x half> undef,
1244 <vscale x 4 x half>* %0,
1248 ret <vscale x 4 x half> %a
1251 declare <vscale x 4 x half> @llvm.riscv.vlse.mask.nxv4f16(
1252 <vscale x 4 x half>,
1253 <vscale x 4 x half>*,
1259 define <vscale x 4 x half> @intrinsic_vlse_mask_v_nxv4f16_nxv4f16(<vscale x 4 x half> %0, <vscale x 4 x half>* %1, iXLen %2, <vscale x 4 x i1> %3, iXLen %4) nounwind {
1260 ; CHECK-LABEL: intrinsic_vlse_mask_v_nxv4f16_nxv4f16:
1261 ; CHECK: # %bb.0: # %entry
1262 ; CHECK-NEXT: vsetvli zero, a2, e16, m1, ta, mu
1263 ; CHECK-NEXT: vlse16.v v8, (a0), a1, v0.t
1266 %a = call <vscale x 4 x half> @llvm.riscv.vlse.mask.nxv4f16(
1267 <vscale x 4 x half> %0,
1268 <vscale x 4 x half>* %1,
1270 <vscale x 4 x i1> %3,
1273 ret <vscale x 4 x half> %a
1276 declare <vscale x 8 x half> @llvm.riscv.vlse.nxv8f16(
1277 <vscale x 8 x half>,
1278 <vscale x 8 x half>*,
1282 define <vscale x 8 x half> @intrinsic_vlse_v_nxv8f16_nxv8f16(<vscale x 8 x half>* %0, iXLen %1, iXLen %2) nounwind {
1283 ; CHECK-LABEL: intrinsic_vlse_v_nxv8f16_nxv8f16:
1284 ; CHECK: # %bb.0: # %entry
1285 ; CHECK-NEXT: vsetvli zero, a2, e16, m2, ta, ma
1286 ; CHECK-NEXT: vlse16.v v8, (a0), a1
1289 %a = call <vscale x 8 x half> @llvm.riscv.vlse.nxv8f16(
1290 <vscale x 8 x half> undef,
1291 <vscale x 8 x half>* %0,
1295 ret <vscale x 8 x half> %a
1298 declare <vscale x 8 x half> @llvm.riscv.vlse.mask.nxv8f16(
1299 <vscale x 8 x half>,
1300 <vscale x 8 x half>*,
1306 define <vscale x 8 x half> @intrinsic_vlse_mask_v_nxv8f16_nxv8f16(<vscale x 8 x half> %0, <vscale x 8 x half>* %1, iXLen %2, <vscale x 8 x i1> %3, iXLen %4) nounwind {
1307 ; CHECK-LABEL: intrinsic_vlse_mask_v_nxv8f16_nxv8f16:
1308 ; CHECK: # %bb.0: # %entry
1309 ; CHECK-NEXT: vsetvli zero, a2, e16, m2, ta, mu
1310 ; CHECK-NEXT: vlse16.v v8, (a0), a1, v0.t
1313 %a = call <vscale x 8 x half> @llvm.riscv.vlse.mask.nxv8f16(
1314 <vscale x 8 x half> %0,
1315 <vscale x 8 x half>* %1,
1317 <vscale x 8 x i1> %3,
1320 ret <vscale x 8 x half> %a
1323 declare <vscale x 16 x half> @llvm.riscv.vlse.nxv16f16(
1324 <vscale x 16 x half>,
1325 <vscale x 16 x half>*,
1329 define <vscale x 16 x half> @intrinsic_vlse_v_nxv16f16_nxv16f16(<vscale x 16 x half>* %0, iXLen %1, iXLen %2) nounwind {
1330 ; CHECK-LABEL: intrinsic_vlse_v_nxv16f16_nxv16f16:
1331 ; CHECK: # %bb.0: # %entry
1332 ; CHECK-NEXT: vsetvli zero, a2, e16, m4, ta, ma
1333 ; CHECK-NEXT: vlse16.v v8, (a0), a1
1336 %a = call <vscale x 16 x half> @llvm.riscv.vlse.nxv16f16(
1337 <vscale x 16 x half> undef,
1338 <vscale x 16 x half>* %0,
1342 ret <vscale x 16 x half> %a
1345 declare <vscale x 16 x half> @llvm.riscv.vlse.mask.nxv16f16(
1346 <vscale x 16 x half>,
1347 <vscale x 16 x half>*,
1353 define <vscale x 16 x half> @intrinsic_vlse_mask_v_nxv16f16_nxv16f16(<vscale x 16 x half> %0, <vscale x 16 x half>* %1, iXLen %2, <vscale x 16 x i1> %3, iXLen %4) nounwind {
1354 ; CHECK-LABEL: intrinsic_vlse_mask_v_nxv16f16_nxv16f16:
1355 ; CHECK: # %bb.0: # %entry
1356 ; CHECK-NEXT: vsetvli zero, a2, e16, m4, ta, mu
1357 ; CHECK-NEXT: vlse16.v v8, (a0), a1, v0.t
1360 %a = call <vscale x 16 x half> @llvm.riscv.vlse.mask.nxv16f16(
1361 <vscale x 16 x half> %0,
1362 <vscale x 16 x half>* %1,
1364 <vscale x 16 x i1> %3,
1367 ret <vscale x 16 x half> %a
1370 declare <vscale x 32 x half> @llvm.riscv.vlse.nxv32f16(
1371 <vscale x 32 x half>,
1372 <vscale x 32 x half>*,
1376 define <vscale x 32 x half> @intrinsic_vlse_v_nxv32f16_nxv32f16(<vscale x 32 x half>* %0, iXLen %1, iXLen %2) nounwind {
1377 ; CHECK-LABEL: intrinsic_vlse_v_nxv32f16_nxv32f16:
1378 ; CHECK: # %bb.0: # %entry
1379 ; CHECK-NEXT: vsetvli zero, a2, e16, m8, ta, ma
1380 ; CHECK-NEXT: vlse16.v v8, (a0), a1
1383 %a = call <vscale x 32 x half> @llvm.riscv.vlse.nxv32f16(
1384 <vscale x 32 x half> undef,
1385 <vscale x 32 x half>* %0,
1389 ret <vscale x 32 x half> %a
1392 declare <vscale x 32 x half> @llvm.riscv.vlse.mask.nxv32f16(
1393 <vscale x 32 x half>,
1394 <vscale x 32 x half>*,
1400 define <vscale x 32 x half> @intrinsic_vlse_mask_v_nxv32f16_nxv32f16(<vscale x 32 x half> %0, <vscale x 32 x half>* %1, iXLen %2, <vscale x 32 x i1> %3, iXLen %4) nounwind {
1401 ; CHECK-LABEL: intrinsic_vlse_mask_v_nxv32f16_nxv32f16:
1402 ; CHECK: # %bb.0: # %entry
1403 ; CHECK-NEXT: vsetvli zero, a2, e16, m8, ta, mu
1404 ; CHECK-NEXT: vlse16.v v8, (a0), a1, v0.t
1407 %a = call <vscale x 32 x half> @llvm.riscv.vlse.mask.nxv32f16(
1408 <vscale x 32 x half> %0,
1409 <vscale x 32 x half>* %1,
1411 <vscale x 32 x i1> %3,
1414 ret <vscale x 32 x half> %a
1417 declare <vscale x 1 x i8> @llvm.riscv.vlse.nxv1i8(
1423 define <vscale x 1 x i8> @intrinsic_vlse_v_nxv1i8_nxv1i8(<vscale x 1 x i8>* %0, iXLen %1, iXLen %2) nounwind {
1424 ; CHECK-LABEL: intrinsic_vlse_v_nxv1i8_nxv1i8:
1425 ; CHECK: # %bb.0: # %entry
1426 ; CHECK-NEXT: vsetvli zero, a2, e8, mf8, ta, ma
1427 ; CHECK-NEXT: vlse8.v v8, (a0), a1
1430 %a = call <vscale x 1 x i8> @llvm.riscv.vlse.nxv1i8(
1431 <vscale x 1 x i8> undef,
1432 <vscale x 1 x i8>* %0,
1436 ret <vscale x 1 x i8> %a
1439 declare <vscale x 1 x i8> @llvm.riscv.vlse.mask.nxv1i8(
1447 define <vscale x 1 x i8> @intrinsic_vlse_mask_v_nxv1i8_nxv1i8(<vscale x 1 x i8> %0, <vscale x 1 x i8>* %1, iXLen %2, <vscale x 1 x i1> %3, iXLen %4) nounwind {
1448 ; CHECK-LABEL: intrinsic_vlse_mask_v_nxv1i8_nxv1i8:
1449 ; CHECK: # %bb.0: # %entry
1450 ; CHECK-NEXT: vsetvli zero, a2, e8, mf8, ta, mu
1451 ; CHECK-NEXT: vlse8.v v8, (a0), a1, v0.t
1454 %a = call <vscale x 1 x i8> @llvm.riscv.vlse.mask.nxv1i8(
1455 <vscale x 1 x i8> %0,
1456 <vscale x 1 x i8>* %1,
1458 <vscale x 1 x i1> %3,
1461 ret <vscale x 1 x i8> %a
1464 declare <vscale x 2 x i8> @llvm.riscv.vlse.nxv2i8(
1470 define <vscale x 2 x i8> @intrinsic_vlse_v_nxv2i8_nxv2i8(<vscale x 2 x i8>* %0, iXLen %1, iXLen %2) nounwind {
1471 ; CHECK-LABEL: intrinsic_vlse_v_nxv2i8_nxv2i8:
1472 ; CHECK: # %bb.0: # %entry
1473 ; CHECK-NEXT: vsetvli zero, a2, e8, mf4, ta, ma
1474 ; CHECK-NEXT: vlse8.v v8, (a0), a1
1477 %a = call <vscale x 2 x i8> @llvm.riscv.vlse.nxv2i8(
1478 <vscale x 2 x i8> undef,
1479 <vscale x 2 x i8>* %0,
1483 ret <vscale x 2 x i8> %a
1486 declare <vscale x 2 x i8> @llvm.riscv.vlse.mask.nxv2i8(
1494 define <vscale x 2 x i8> @intrinsic_vlse_mask_v_nxv2i8_nxv2i8(<vscale x 2 x i8> %0, <vscale x 2 x i8>* %1, iXLen %2, <vscale x 2 x i1> %3, iXLen %4) nounwind {
1495 ; CHECK-LABEL: intrinsic_vlse_mask_v_nxv2i8_nxv2i8:
1496 ; CHECK: # %bb.0: # %entry
1497 ; CHECK-NEXT: vsetvli zero, a2, e8, mf4, ta, mu
1498 ; CHECK-NEXT: vlse8.v v8, (a0), a1, v0.t
1501 %a = call <vscale x 2 x i8> @llvm.riscv.vlse.mask.nxv2i8(
1502 <vscale x 2 x i8> %0,
1503 <vscale x 2 x i8>* %1,
1505 <vscale x 2 x i1> %3,
1508 ret <vscale x 2 x i8> %a
1511 declare <vscale x 4 x i8> @llvm.riscv.vlse.nxv4i8(
1517 define <vscale x 4 x i8> @intrinsic_vlse_v_nxv4i8_nxv4i8(<vscale x 4 x i8>* %0, iXLen %1, iXLen %2) nounwind {
1518 ; CHECK-LABEL: intrinsic_vlse_v_nxv4i8_nxv4i8:
1519 ; CHECK: # %bb.0: # %entry
1520 ; CHECK-NEXT: vsetvli zero, a2, e8, mf2, ta, ma
1521 ; CHECK-NEXT: vlse8.v v8, (a0), a1
1524 %a = call <vscale x 4 x i8> @llvm.riscv.vlse.nxv4i8(
1525 <vscale x 4 x i8> undef,
1526 <vscale x 4 x i8>* %0,
1530 ret <vscale x 4 x i8> %a
1533 declare <vscale x 4 x i8> @llvm.riscv.vlse.mask.nxv4i8(
1541 define <vscale x 4 x i8> @intrinsic_vlse_mask_v_nxv4i8_nxv4i8(<vscale x 4 x i8> %0, <vscale x 4 x i8>* %1, iXLen %2, <vscale x 4 x i1> %3, iXLen %4) nounwind {
1542 ; CHECK-LABEL: intrinsic_vlse_mask_v_nxv4i8_nxv4i8:
1543 ; CHECK: # %bb.0: # %entry
1544 ; CHECK-NEXT: vsetvli zero, a2, e8, mf2, ta, mu
1545 ; CHECK-NEXT: vlse8.v v8, (a0), a1, v0.t
1548 %a = call <vscale x 4 x i8> @llvm.riscv.vlse.mask.nxv4i8(
1549 <vscale x 4 x i8> %0,
1550 <vscale x 4 x i8>* %1,
1552 <vscale x 4 x i1> %3,
1555 ret <vscale x 4 x i8> %a
1558 declare <vscale x 8 x i8> @llvm.riscv.vlse.nxv8i8(
1564 define <vscale x 8 x i8> @intrinsic_vlse_v_nxv8i8_nxv8i8(<vscale x 8 x i8>* %0, iXLen %1, iXLen %2) nounwind {
1565 ; CHECK-LABEL: intrinsic_vlse_v_nxv8i8_nxv8i8:
1566 ; CHECK: # %bb.0: # %entry
1567 ; CHECK-NEXT: vsetvli zero, a2, e8, m1, ta, ma
1568 ; CHECK-NEXT: vlse8.v v8, (a0), a1
1571 %a = call <vscale x 8 x i8> @llvm.riscv.vlse.nxv8i8(
1572 <vscale x 8 x i8> undef,
1573 <vscale x 8 x i8>* %0,
1577 ret <vscale x 8 x i8> %a
1580 declare <vscale x 8 x i8> @llvm.riscv.vlse.mask.nxv8i8(
1588 define <vscale x 8 x i8> @intrinsic_vlse_mask_v_nxv8i8_nxv8i8(<vscale x 8 x i8> %0, <vscale x 8 x i8>* %1, iXLen %2, <vscale x 8 x i1> %3, iXLen %4) nounwind {
1589 ; CHECK-LABEL: intrinsic_vlse_mask_v_nxv8i8_nxv8i8:
1590 ; CHECK: # %bb.0: # %entry
1591 ; CHECK-NEXT: vsetvli zero, a2, e8, m1, ta, mu
1592 ; CHECK-NEXT: vlse8.v v8, (a0), a1, v0.t
1595 %a = call <vscale x 8 x i8> @llvm.riscv.vlse.mask.nxv8i8(
1596 <vscale x 8 x i8> %0,
1597 <vscale x 8 x i8>* %1,
1599 <vscale x 8 x i1> %3,
1602 ret <vscale x 8 x i8> %a
1605 declare <vscale x 16 x i8> @llvm.riscv.vlse.nxv16i8(
1607 <vscale x 16 x i8>*,
1611 define <vscale x 16 x i8> @intrinsic_vlse_v_nxv16i8_nxv16i8(<vscale x 16 x i8>* %0, iXLen %1, iXLen %2) nounwind {
1612 ; CHECK-LABEL: intrinsic_vlse_v_nxv16i8_nxv16i8:
1613 ; CHECK: # %bb.0: # %entry
1614 ; CHECK-NEXT: vsetvli zero, a2, e8, m2, ta, ma
1615 ; CHECK-NEXT: vlse8.v v8, (a0), a1
1618 %a = call <vscale x 16 x i8> @llvm.riscv.vlse.nxv16i8(
1619 <vscale x 16 x i8> undef,
1620 <vscale x 16 x i8>* %0,
1624 ret <vscale x 16 x i8> %a
1627 declare <vscale x 16 x i8> @llvm.riscv.vlse.mask.nxv16i8(
1629 <vscale x 16 x i8>*,
1635 define <vscale x 16 x i8> @intrinsic_vlse_mask_v_nxv16i8_nxv16i8(<vscale x 16 x i8> %0, <vscale x 16 x i8>* %1, iXLen %2, <vscale x 16 x i1> %3, iXLen %4) nounwind {
1636 ; CHECK-LABEL: intrinsic_vlse_mask_v_nxv16i8_nxv16i8:
1637 ; CHECK: # %bb.0: # %entry
1638 ; CHECK-NEXT: vsetvli zero, a2, e8, m2, ta, mu
1639 ; CHECK-NEXT: vlse8.v v8, (a0), a1, v0.t
1642 %a = call <vscale x 16 x i8> @llvm.riscv.vlse.mask.nxv16i8(
1643 <vscale x 16 x i8> %0,
1644 <vscale x 16 x i8>* %1,
1646 <vscale x 16 x i1> %3,
1649 ret <vscale x 16 x i8> %a
1652 declare <vscale x 32 x i8> @llvm.riscv.vlse.nxv32i8(
1654 <vscale x 32 x i8>*,
1658 define <vscale x 32 x i8> @intrinsic_vlse_v_nxv32i8_nxv32i8(<vscale x 32 x i8>* %0, iXLen %1, iXLen %2) nounwind {
1659 ; CHECK-LABEL: intrinsic_vlse_v_nxv32i8_nxv32i8:
1660 ; CHECK: # %bb.0: # %entry
1661 ; CHECK-NEXT: vsetvli zero, a2, e8, m4, ta, ma
1662 ; CHECK-NEXT: vlse8.v v8, (a0), a1
1665 %a = call <vscale x 32 x i8> @llvm.riscv.vlse.nxv32i8(
1666 <vscale x 32 x i8> undef,
1667 <vscale x 32 x i8>* %0,
1671 ret <vscale x 32 x i8> %a
1674 declare <vscale x 32 x i8> @llvm.riscv.vlse.mask.nxv32i8(
1676 <vscale x 32 x i8>*,
1682 define <vscale x 32 x i8> @intrinsic_vlse_mask_v_nxv32i8_nxv32i8(<vscale x 32 x i8> %0, <vscale x 32 x i8>* %1, iXLen %2, <vscale x 32 x i1> %3, iXLen %4) nounwind {
1683 ; CHECK-LABEL: intrinsic_vlse_mask_v_nxv32i8_nxv32i8:
1684 ; CHECK: # %bb.0: # %entry
1685 ; CHECK-NEXT: vsetvli zero, a2, e8, m4, ta, mu
1686 ; CHECK-NEXT: vlse8.v v8, (a0), a1, v0.t
1689 %a = call <vscale x 32 x i8> @llvm.riscv.vlse.mask.nxv32i8(
1690 <vscale x 32 x i8> %0,
1691 <vscale x 32 x i8>* %1,
1693 <vscale x 32 x i1> %3,
1696 ret <vscale x 32 x i8> %a
1699 declare <vscale x 64 x i8> @llvm.riscv.vlse.nxv64i8(
1701 <vscale x 64 x i8>*,
1705 define <vscale x 64 x i8> @intrinsic_vlse_v_nxv64i8_nxv64i8(<vscale x 64 x i8>* %0, iXLen %1, iXLen %2) nounwind {
1706 ; CHECK-LABEL: intrinsic_vlse_v_nxv64i8_nxv64i8:
1707 ; CHECK: # %bb.0: # %entry
1708 ; CHECK-NEXT: vsetvli zero, a2, e8, m8, ta, ma
1709 ; CHECK-NEXT: vlse8.v v8, (a0), a1
1712 %a = call <vscale x 64 x i8> @llvm.riscv.vlse.nxv64i8(
1713 <vscale x 64 x i8> undef,
1714 <vscale x 64 x i8>* %0,
1718 ret <vscale x 64 x i8> %a
1721 declare <vscale x 64 x i8> @llvm.riscv.vlse.mask.nxv64i8(
1723 <vscale x 64 x i8>*,
1729 define <vscale x 64 x i8> @intrinsic_vlse_mask_v_nxv64i8_nxv64i8(<vscale x 64 x i8> %0, <vscale x 64 x i8>* %1, iXLen %2, <vscale x 64 x i1> %3, iXLen %4) nounwind {
1730 ; CHECK-LABEL: intrinsic_vlse_mask_v_nxv64i8_nxv64i8:
1731 ; CHECK: # %bb.0: # %entry
1732 ; CHECK-NEXT: vsetvli zero, a2, e8, m8, ta, mu
1733 ; CHECK-NEXT: vlse8.v v8, (a0), a1, v0.t
1736 %a = call <vscale x 64 x i8> @llvm.riscv.vlse.mask.nxv64i8(
1737 <vscale x 64 x i8> %0,
1738 <vscale x 64 x i8>* %1,
1740 <vscale x 64 x i1> %3,
1743 ret <vscale x 64 x i8> %a