Bump version to 19.1.0-rc3
[llvm-project.git] / llvm / test / CodeGen / RISCV / rvv / vslidedown.ll
blobfc26ac25fe0811323db58594278f20f9d2819358
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,+d,+zfh,+zvfh \
3 ; RUN:   -verify-machineinstrs | FileCheck %s
4 ; RUN: sed 's/iXLen/i64/g' %s | llc -mtriple=riscv64 -mattr=+v,+d,+zfh,+zvfh \
5 ; RUN:   -verify-machineinstrs | FileCheck %s
7 declare <vscale x 1 x i8> @llvm.riscv.vslidedown.nxv1i8(
8   <vscale x 1 x i8>,
9   <vscale x 1 x i8>,
10   iXLen,
11   iXLen,
12   iXLen);
14 define <vscale x 1 x i8> @intrinsic_vslidedown_vx_nxv1i8_nxv1i8(<vscale x 1 x i8> %0, <vscale x 1 x i8> %1, iXLen %2, iXLen %3) nounwind {
15 ; CHECK-LABEL: intrinsic_vslidedown_vx_nxv1i8_nxv1i8:
16 ; CHECK:       # %bb.0: # %entry
17 ; CHECK-NEXT:    vsetvli zero, a1, e8, mf8, ta, ma
18 ; CHECK-NEXT:    vslidedown.vx v8, v9, a0
19 ; CHECK-NEXT:    ret
20 entry:
21   %a = call <vscale x 1 x i8> @llvm.riscv.vslidedown.nxv1i8(
22     <vscale x 1 x i8> %0,
23     <vscale x 1 x i8> %1,
24     iXLen %2,
25     iXLen %3,
26     iXLen 1)
28   ret <vscale x 1 x i8> %a
31 declare <vscale x 1 x i8> @llvm.riscv.vslidedown.mask.nxv1i8(
32   <vscale x 1 x i8>,
33   <vscale x 1 x i8>,
34   iXLen,
35   <vscale x 1 x i1>,
36   iXLen, iXLen);
38 define <vscale x 1 x i8> @intrinsic_vslidedown_mask_vx_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 {
39 ; CHECK-LABEL: intrinsic_vslidedown_mask_vx_nxv1i8_nxv1i8:
40 ; CHECK:       # %bb.0: # %entry
41 ; CHECK-NEXT:    vsetvli zero, a1, e8, mf8, tu, mu
42 ; CHECK-NEXT:    vslidedown.vx v8, v9, a0, v0.t
43 ; CHECK-NEXT:    ret
44 entry:
45   %a = call <vscale x 1 x i8> @llvm.riscv.vslidedown.mask.nxv1i8(
46     <vscale x 1 x i8> %0,
47     <vscale x 1 x i8> %1,
48     iXLen %2,
49     <vscale x 1 x i1> %3,
50     iXLen %4, iXLen 0)
52   ret <vscale x 1 x i8> %a
55 define <vscale x 1 x i8> @intrinsic_vslidedown_vi_nxv1i8_nxv1i8(<vscale x 1 x i8> %0, <vscale x 1 x i8> %1, iXLen %2) nounwind {
56 ; CHECK-LABEL: intrinsic_vslidedown_vi_nxv1i8_nxv1i8:
57 ; CHECK:       # %bb.0: # %entry
58 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf8, ta, ma
59 ; CHECK-NEXT:    vslidedown.vi v8, v9, 9
60 ; CHECK-NEXT:    ret
61 entry:
62   %a = call <vscale x 1 x i8> @llvm.riscv.vslidedown.nxv1i8(
63     <vscale x 1 x i8> %0,
64     <vscale x 1 x i8> %1,
65     iXLen 9,
66     iXLen %2,
67     iXLen 1)
69   ret <vscale x 1 x i8> %a
72 define <vscale x 1 x i8> @intrinsic_vslidedown_mask_vi_nxv1i8_nxv1i8(<vscale x 1 x i8> %0, <vscale x 1 x i8> %1, <vscale x 1 x i1> %2, iXLen %3) nounwind {
73 ; CHECK-LABEL: intrinsic_vslidedown_mask_vi_nxv1i8_nxv1i8:
74 ; CHECK:       # %bb.0: # %entry
75 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf8, tu, mu
76 ; CHECK-NEXT:    vslidedown.vi v8, v9, 9, v0.t
77 ; CHECK-NEXT:    ret
78 entry:
79   %a = call <vscale x 1 x i8> @llvm.riscv.vslidedown.mask.nxv1i8(
80     <vscale x 1 x i8> %0,
81     <vscale x 1 x i8> %1,
82     iXLen 9,
83     <vscale x 1 x i1> %2,
84     iXLen %3, iXLen 0)
86   ret <vscale x 1 x i8> %a
89 declare <vscale x 2 x i8> @llvm.riscv.vslidedown.nxv2i8(
90   <vscale x 2 x i8>,
91   <vscale x 2 x i8>,
92   iXLen,
93   iXLen,
94   iXLen);
96 define <vscale x 2 x i8> @intrinsic_vslidedown_vx_nxv2i8_nxv2i8(<vscale x 2 x i8> %0, <vscale x 2 x i8> %1, iXLen %2, iXLen %3) nounwind {
97 ; CHECK-LABEL: intrinsic_vslidedown_vx_nxv2i8_nxv2i8:
98 ; CHECK:       # %bb.0: # %entry
99 ; CHECK-NEXT:    vsetvli zero, a1, e8, mf4, ta, ma
100 ; CHECK-NEXT:    vslidedown.vx v8, v9, a0
101 ; CHECK-NEXT:    ret
102 entry:
103   %a = call <vscale x 2 x i8> @llvm.riscv.vslidedown.nxv2i8(
104     <vscale x 2 x i8> %0,
105     <vscale x 2 x i8> %1,
106     iXLen %2,
107     iXLen %3,
108     iXLen 1)
110   ret <vscale x 2 x i8> %a
113 declare <vscale x 2 x i8> @llvm.riscv.vslidedown.mask.nxv2i8(
114   <vscale x 2 x i8>,
115   <vscale x 2 x i8>,
116   iXLen,
117   <vscale x 2 x i1>,
118   iXLen, iXLen);
120 define <vscale x 2 x i8> @intrinsic_vslidedown_mask_vx_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 {
121 ; CHECK-LABEL: intrinsic_vslidedown_mask_vx_nxv2i8_nxv2i8:
122 ; CHECK:       # %bb.0: # %entry
123 ; CHECK-NEXT:    vsetvli zero, a1, e8, mf4, tu, mu
124 ; CHECK-NEXT:    vslidedown.vx v8, v9, a0, v0.t
125 ; CHECK-NEXT:    ret
126 entry:
127   %a = call <vscale x 2 x i8> @llvm.riscv.vslidedown.mask.nxv2i8(
128     <vscale x 2 x i8> %0,
129     <vscale x 2 x i8> %1,
130     iXLen %2,
131     <vscale x 2 x i1> %3,
132     iXLen %4, iXLen 0)
134   ret <vscale x 2 x i8> %a
137 define <vscale x 2 x i8> @intrinsic_vslidedown_vi_nxv2i8_nxv2i8(<vscale x 2 x i8> %0, <vscale x 2 x i8> %1, iXLen %2) nounwind {
138 ; CHECK-LABEL: intrinsic_vslidedown_vi_nxv2i8_nxv2i8:
139 ; CHECK:       # %bb.0: # %entry
140 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf4, ta, ma
141 ; CHECK-NEXT:    vslidedown.vi v8, v9, 9
142 ; CHECK-NEXT:    ret
143 entry:
144   %a = call <vscale x 2 x i8> @llvm.riscv.vslidedown.nxv2i8(
145     <vscale x 2 x i8> %0,
146     <vscale x 2 x i8> %1,
147     iXLen 9,
148     iXLen %2,
149     iXLen 1)
151   ret <vscale x 2 x i8> %a
154 define <vscale x 2 x i8> @intrinsic_vslidedown_mask_vi_nxv2i8_nxv2i8(<vscale x 2 x i8> %0, <vscale x 2 x i8> %1, <vscale x 2 x i1> %2, iXLen %3) nounwind {
155 ; CHECK-LABEL: intrinsic_vslidedown_mask_vi_nxv2i8_nxv2i8:
156 ; CHECK:       # %bb.0: # %entry
157 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf4, tu, mu
158 ; CHECK-NEXT:    vslidedown.vi v8, v9, 9, v0.t
159 ; CHECK-NEXT:    ret
160 entry:
161   %a = call <vscale x 2 x i8> @llvm.riscv.vslidedown.mask.nxv2i8(
162     <vscale x 2 x i8> %0,
163     <vscale x 2 x i8> %1,
164     iXLen 9,
165     <vscale x 2 x i1> %2,
166     iXLen %3, iXLen 0)
168   ret <vscale x 2 x i8> %a
171 declare <vscale x 4 x i8> @llvm.riscv.vslidedown.nxv4i8(
172   <vscale x 4 x i8>,
173   <vscale x 4 x i8>,
174   iXLen,
175   iXLen,
176   iXLen);
178 define <vscale x 4 x i8> @intrinsic_vslidedown_vx_nxv4i8_nxv4i8(<vscale x 4 x i8> %0, <vscale x 4 x i8> %1, iXLen %2, iXLen %3) nounwind {
179 ; CHECK-LABEL: intrinsic_vslidedown_vx_nxv4i8_nxv4i8:
180 ; CHECK:       # %bb.0: # %entry
181 ; CHECK-NEXT:    vsetvli zero, a1, e8, mf2, ta, ma
182 ; CHECK-NEXT:    vslidedown.vx v8, v9, a0
183 ; CHECK-NEXT:    ret
184 entry:
185   %a = call <vscale x 4 x i8> @llvm.riscv.vslidedown.nxv4i8(
186     <vscale x 4 x i8> %0,
187     <vscale x 4 x i8> %1,
188     iXLen %2,
189     iXLen %3,
190     iXLen 1)
192   ret <vscale x 4 x i8> %a
195 declare <vscale x 4 x i8> @llvm.riscv.vslidedown.mask.nxv4i8(
196   <vscale x 4 x i8>,
197   <vscale x 4 x i8>,
198   iXLen,
199   <vscale x 4 x i1>,
200   iXLen, iXLen);
202 define <vscale x 4 x i8> @intrinsic_vslidedown_mask_vx_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 {
203 ; CHECK-LABEL: intrinsic_vslidedown_mask_vx_nxv4i8_nxv4i8:
204 ; CHECK:       # %bb.0: # %entry
205 ; CHECK-NEXT:    vsetvli zero, a1, e8, mf2, tu, mu
206 ; CHECK-NEXT:    vslidedown.vx v8, v9, a0, v0.t
207 ; CHECK-NEXT:    ret
208 entry:
209   %a = call <vscale x 4 x i8> @llvm.riscv.vslidedown.mask.nxv4i8(
210     <vscale x 4 x i8> %0,
211     <vscale x 4 x i8> %1,
212     iXLen %2,
213     <vscale x 4 x i1> %3,
214     iXLen %4, iXLen 0)
216   ret <vscale x 4 x i8> %a
219 define <vscale x 4 x i8> @intrinsic_vslidedown_vi_nxv4i8_nxv4i8(<vscale x 4 x i8> %0, <vscale x 4 x i8> %1, iXLen %2) nounwind {
220 ; CHECK-LABEL: intrinsic_vslidedown_vi_nxv4i8_nxv4i8:
221 ; CHECK:       # %bb.0: # %entry
222 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma
223 ; CHECK-NEXT:    vslidedown.vi v8, v9, 9
224 ; CHECK-NEXT:    ret
225 entry:
226   %a = call <vscale x 4 x i8> @llvm.riscv.vslidedown.nxv4i8(
227     <vscale x 4 x i8> %0,
228     <vscale x 4 x i8> %1,
229     iXLen 9,
230     iXLen %2,
231     iXLen 1)
233   ret <vscale x 4 x i8> %a
236 define <vscale x 4 x i8> @intrinsic_vslidedown_mask_vi_nxv4i8_nxv4i8(<vscale x 4 x i8> %0, <vscale x 4 x i8> %1, <vscale x 4 x i1> %2, iXLen %3) nounwind {
237 ; CHECK-LABEL: intrinsic_vslidedown_mask_vi_nxv4i8_nxv4i8:
238 ; CHECK:       # %bb.0: # %entry
239 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, tu, mu
240 ; CHECK-NEXT:    vslidedown.vi v8, v9, 9, v0.t
241 ; CHECK-NEXT:    ret
242 entry:
243   %a = call <vscale x 4 x i8> @llvm.riscv.vslidedown.mask.nxv4i8(
244     <vscale x 4 x i8> %0,
245     <vscale x 4 x i8> %1,
246     iXLen 9,
247     <vscale x 4 x i1> %2,
248     iXLen %3, iXLen 0)
250   ret <vscale x 4 x i8> %a
253 declare <vscale x 8 x i8> @llvm.riscv.vslidedown.nxv8i8(
254   <vscale x 8 x i8>,
255   <vscale x 8 x i8>,
256   iXLen,
257   iXLen,
258   iXLen);
260 define <vscale x 8 x i8> @intrinsic_vslidedown_vx_nxv8i8_nxv8i8(<vscale x 8 x i8> %0, <vscale x 8 x i8> %1, iXLen %2, iXLen %3) nounwind {
261 ; CHECK-LABEL: intrinsic_vslidedown_vx_nxv8i8_nxv8i8:
262 ; CHECK:       # %bb.0: # %entry
263 ; CHECK-NEXT:    vsetvli zero, a1, e8, m1, ta, ma
264 ; CHECK-NEXT:    vslidedown.vx v8, v9, a0
265 ; CHECK-NEXT:    ret
266 entry:
267   %a = call <vscale x 8 x i8> @llvm.riscv.vslidedown.nxv8i8(
268     <vscale x 8 x i8> %0,
269     <vscale x 8 x i8> %1,
270     iXLen %2,
271     iXLen %3,
272     iXLen 1)
274   ret <vscale x 8 x i8> %a
277 declare <vscale x 8 x i8> @llvm.riscv.vslidedown.mask.nxv8i8(
278   <vscale x 8 x i8>,
279   <vscale x 8 x i8>,
280   iXLen,
281   <vscale x 8 x i1>,
282   iXLen, iXLen);
284 define <vscale x 8 x i8> @intrinsic_vslidedown_mask_vx_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 {
285 ; CHECK-LABEL: intrinsic_vslidedown_mask_vx_nxv8i8_nxv8i8:
286 ; CHECK:       # %bb.0: # %entry
287 ; CHECK-NEXT:    vsetvli zero, a1, e8, m1, tu, mu
288 ; CHECK-NEXT:    vslidedown.vx v8, v9, a0, v0.t
289 ; CHECK-NEXT:    ret
290 entry:
291   %a = call <vscale x 8 x i8> @llvm.riscv.vslidedown.mask.nxv8i8(
292     <vscale x 8 x i8> %0,
293     <vscale x 8 x i8> %1,
294     iXLen %2,
295     <vscale x 8 x i1> %3,
296     iXLen %4, iXLen 0)
298   ret <vscale x 8 x i8> %a
301 define <vscale x 8 x i8> @intrinsic_vslidedown_vi_nxv8i8_nxv8i8(<vscale x 8 x i8> %0, <vscale x 8 x i8> %1, iXLen %2) nounwind {
302 ; CHECK-LABEL: intrinsic_vslidedown_vi_nxv8i8_nxv8i8:
303 ; CHECK:       # %bb.0: # %entry
304 ; CHECK-NEXT:    vsetvli zero, a0, e8, m1, ta, ma
305 ; CHECK-NEXT:    vslidedown.vi v8, v9, 9
306 ; CHECK-NEXT:    ret
307 entry:
308   %a = call <vscale x 8 x i8> @llvm.riscv.vslidedown.nxv8i8(
309     <vscale x 8 x i8> %0,
310     <vscale x 8 x i8> %1,
311     iXLen 9,
312     iXLen %2,
313     iXLen 1)
315   ret <vscale x 8 x i8> %a
318 define <vscale x 8 x i8> @intrinsic_vslidedown_mask_vi_nxv8i8_nxv8i8(<vscale x 8 x i8> %0, <vscale x 8 x i8> %1, <vscale x 8 x i1> %2, iXLen %3) nounwind {
319 ; CHECK-LABEL: intrinsic_vslidedown_mask_vi_nxv8i8_nxv8i8:
320 ; CHECK:       # %bb.0: # %entry
321 ; CHECK-NEXT:    vsetvli zero, a0, e8, m1, tu, mu
322 ; CHECK-NEXT:    vslidedown.vi v8, v9, 9, v0.t
323 ; CHECK-NEXT:    ret
324 entry:
325   %a = call <vscale x 8 x i8> @llvm.riscv.vslidedown.mask.nxv8i8(
326     <vscale x 8 x i8> %0,
327     <vscale x 8 x i8> %1,
328     iXLen 9,
329     <vscale x 8 x i1> %2,
330     iXLen %3, iXLen 0)
332   ret <vscale x 8 x i8> %a
335 declare <vscale x 16 x i8> @llvm.riscv.vslidedown.nxv16i8(
336   <vscale x 16 x i8>,
337   <vscale x 16 x i8>,
338   iXLen,
339   iXLen,
340   iXLen);
342 define <vscale x 16 x i8> @intrinsic_vslidedown_vx_nxv16i8_nxv16i8(<vscale x 16 x i8> %0, <vscale x 16 x i8> %1, iXLen %2, iXLen %3) nounwind {
343 ; CHECK-LABEL: intrinsic_vslidedown_vx_nxv16i8_nxv16i8:
344 ; CHECK:       # %bb.0: # %entry
345 ; CHECK-NEXT:    vsetvli zero, a1, e8, m2, ta, ma
346 ; CHECK-NEXT:    vslidedown.vx v8, v10, a0
347 ; CHECK-NEXT:    ret
348 entry:
349   %a = call <vscale x 16 x i8> @llvm.riscv.vslidedown.nxv16i8(
350     <vscale x 16 x i8> %0,
351     <vscale x 16 x i8> %1,
352     iXLen %2,
353     iXLen %3,
354     iXLen 1)
356   ret <vscale x 16 x i8> %a
359 declare <vscale x 16 x i8> @llvm.riscv.vslidedown.mask.nxv16i8(
360   <vscale x 16 x i8>,
361   <vscale x 16 x i8>,
362   iXLen,
363   <vscale x 16 x i1>,
364   iXLen, iXLen);
366 define <vscale x 16 x i8> @intrinsic_vslidedown_mask_vx_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 {
367 ; CHECK-LABEL: intrinsic_vslidedown_mask_vx_nxv16i8_nxv16i8:
368 ; CHECK:       # %bb.0: # %entry
369 ; CHECK-NEXT:    vsetvli zero, a1, e8, m2, tu, mu
370 ; CHECK-NEXT:    vslidedown.vx v8, v10, a0, v0.t
371 ; CHECK-NEXT:    ret
372 entry:
373   %a = call <vscale x 16 x i8> @llvm.riscv.vslidedown.mask.nxv16i8(
374     <vscale x 16 x i8> %0,
375     <vscale x 16 x i8> %1,
376     iXLen %2,
377     <vscale x 16 x i1> %3,
378     iXLen %4, iXLen 0)
380   ret <vscale x 16 x i8> %a
383 define <vscale x 16 x i8> @intrinsic_vslidedown_vi_nxv16i8_nxv16i8(<vscale x 16 x i8> %0, <vscale x 16 x i8> %1, iXLen %2) nounwind {
384 ; CHECK-LABEL: intrinsic_vslidedown_vi_nxv16i8_nxv16i8:
385 ; CHECK:       # %bb.0: # %entry
386 ; CHECK-NEXT:    vsetvli zero, a0, e8, m2, ta, ma
387 ; CHECK-NEXT:    vslidedown.vi v8, v10, 9
388 ; CHECK-NEXT:    ret
389 entry:
390   %a = call <vscale x 16 x i8> @llvm.riscv.vslidedown.nxv16i8(
391     <vscale x 16 x i8> %0,
392     <vscale x 16 x i8> %1,
393     iXLen 9,
394     iXLen %2,
395     iXLen 1)
397   ret <vscale x 16 x i8> %a
400 define <vscale x 16 x i8> @intrinsic_vslidedown_mask_vi_nxv16i8_nxv16i8(<vscale x 16 x i8> %0, <vscale x 16 x i8> %1, <vscale x 16 x i1> %2, iXLen %3) nounwind {
401 ; CHECK-LABEL: intrinsic_vslidedown_mask_vi_nxv16i8_nxv16i8:
402 ; CHECK:       # %bb.0: # %entry
403 ; CHECK-NEXT:    vsetvli zero, a0, e8, m2, tu, mu
404 ; CHECK-NEXT:    vslidedown.vi v8, v10, 9, v0.t
405 ; CHECK-NEXT:    ret
406 entry:
407   %a = call <vscale x 16 x i8> @llvm.riscv.vslidedown.mask.nxv16i8(
408     <vscale x 16 x i8> %0,
409     <vscale x 16 x i8> %1,
410     iXLen 9,
411     <vscale x 16 x i1> %2,
412     iXLen %3, iXLen 0)
414   ret <vscale x 16 x i8> %a
417 declare <vscale x 32 x i8> @llvm.riscv.vslidedown.nxv32i8(
418   <vscale x 32 x i8>,
419   <vscale x 32 x i8>,
420   iXLen,
421   iXLen,
422   iXLen);
424 define <vscale x 32 x i8> @intrinsic_vslidedown_vx_nxv32i8_nxv32i8(<vscale x 32 x i8> %0, <vscale x 32 x i8> %1, iXLen %2, iXLen %3) nounwind {
425 ; CHECK-LABEL: intrinsic_vslidedown_vx_nxv32i8_nxv32i8:
426 ; CHECK:       # %bb.0: # %entry
427 ; CHECK-NEXT:    vsetvli zero, a1, e8, m4, ta, ma
428 ; CHECK-NEXT:    vslidedown.vx v8, v12, a0
429 ; CHECK-NEXT:    ret
430 entry:
431   %a = call <vscale x 32 x i8> @llvm.riscv.vslidedown.nxv32i8(
432     <vscale x 32 x i8> %0,
433     <vscale x 32 x i8> %1,
434     iXLen %2,
435     iXLen %3,
436     iXLen 1)
438   ret <vscale x 32 x i8> %a
441 declare <vscale x 32 x i8> @llvm.riscv.vslidedown.mask.nxv32i8(
442   <vscale x 32 x i8>,
443   <vscale x 32 x i8>,
444   iXLen,
445   <vscale x 32 x i1>,
446   iXLen, iXLen);
448 define <vscale x 32 x i8> @intrinsic_vslidedown_mask_vx_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 {
449 ; CHECK-LABEL: intrinsic_vslidedown_mask_vx_nxv32i8_nxv32i8:
450 ; CHECK:       # %bb.0: # %entry
451 ; CHECK-NEXT:    vsetvli zero, a1, e8, m4, tu, mu
452 ; CHECK-NEXT:    vslidedown.vx v8, v12, a0, v0.t
453 ; CHECK-NEXT:    ret
454 entry:
455   %a = call <vscale x 32 x i8> @llvm.riscv.vslidedown.mask.nxv32i8(
456     <vscale x 32 x i8> %0,
457     <vscale x 32 x i8> %1,
458     iXLen %2,
459     <vscale x 32 x i1> %3,
460     iXLen %4, iXLen 0)
462   ret <vscale x 32 x i8> %a
465 define <vscale x 32 x i8> @intrinsic_vslidedown_vi_nxv32i8_nxv32i8(<vscale x 32 x i8> %0, <vscale x 32 x i8> %1, iXLen %2) nounwind {
466 ; CHECK-LABEL: intrinsic_vslidedown_vi_nxv32i8_nxv32i8:
467 ; CHECK:       # %bb.0: # %entry
468 ; CHECK-NEXT:    vsetvli zero, a0, e8, m4, ta, ma
469 ; CHECK-NEXT:    vslidedown.vi v8, v12, 9
470 ; CHECK-NEXT:    ret
471 entry:
472   %a = call <vscale x 32 x i8> @llvm.riscv.vslidedown.nxv32i8(
473     <vscale x 32 x i8> %0,
474     <vscale x 32 x i8> %1,
475     iXLen 9,
476     iXLen %2,
477     iXLen 1)
479   ret <vscale x 32 x i8> %a
482 define <vscale x 32 x i8> @intrinsic_vslidedown_mask_vi_nxv32i8_nxv32i8(<vscale x 32 x i8> %0, <vscale x 32 x i8> %1, <vscale x 32 x i1> %2, iXLen %3) nounwind {
483 ; CHECK-LABEL: intrinsic_vslidedown_mask_vi_nxv32i8_nxv32i8:
484 ; CHECK:       # %bb.0: # %entry
485 ; CHECK-NEXT:    vsetvli zero, a0, e8, m4, tu, mu
486 ; CHECK-NEXT:    vslidedown.vi v8, v12, 9, v0.t
487 ; CHECK-NEXT:    ret
488 entry:
489   %a = call <vscale x 32 x i8> @llvm.riscv.vslidedown.mask.nxv32i8(
490     <vscale x 32 x i8> %0,
491     <vscale x 32 x i8> %1,
492     iXLen 9,
493     <vscale x 32 x i1> %2,
494     iXLen %3, iXLen 0)
496   ret <vscale x 32 x i8> %a
499 declare <vscale x 1 x i16> @llvm.riscv.vslidedown.nxv1i16(
500   <vscale x 1 x i16>,
501   <vscale x 1 x i16>,
502   iXLen,
503   iXLen,
504   iXLen);
506 define <vscale x 1 x i16> @intrinsic_vslidedown_vx_nxv1i16_nxv1i16(<vscale x 1 x i16> %0, <vscale x 1 x i16> %1, iXLen %2, iXLen %3) nounwind {
507 ; CHECK-LABEL: intrinsic_vslidedown_vx_nxv1i16_nxv1i16:
508 ; CHECK:       # %bb.0: # %entry
509 ; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma
510 ; CHECK-NEXT:    vslidedown.vx v8, v9, a0
511 ; CHECK-NEXT:    ret
512 entry:
513   %a = call <vscale x 1 x i16> @llvm.riscv.vslidedown.nxv1i16(
514     <vscale x 1 x i16> %0,
515     <vscale x 1 x i16> %1,
516     iXLen %2,
517     iXLen %3,
518     iXLen 1)
520   ret <vscale x 1 x i16> %a
523 declare <vscale x 1 x i16> @llvm.riscv.vslidedown.mask.nxv1i16(
524   <vscale x 1 x i16>,
525   <vscale x 1 x i16>,
526   iXLen,
527   <vscale x 1 x i1>,
528   iXLen, iXLen);
530 define <vscale x 1 x i16> @intrinsic_vslidedown_mask_vx_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 {
531 ; CHECK-LABEL: intrinsic_vslidedown_mask_vx_nxv1i16_nxv1i16:
532 ; CHECK:       # %bb.0: # %entry
533 ; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, tu, mu
534 ; CHECK-NEXT:    vslidedown.vx v8, v9, a0, v0.t
535 ; CHECK-NEXT:    ret
536 entry:
537   %a = call <vscale x 1 x i16> @llvm.riscv.vslidedown.mask.nxv1i16(
538     <vscale x 1 x i16> %0,
539     <vscale x 1 x i16> %1,
540     iXLen %2,
541     <vscale x 1 x i1> %3,
542     iXLen %4, iXLen 0)
544   ret <vscale x 1 x i16> %a
547 define <vscale x 1 x i16> @intrinsic_vslidedown_vi_nxv1i16_nxv1i16(<vscale x 1 x i16> %0, <vscale x 1 x i16> %1, iXLen %2) nounwind {
548 ; CHECK-LABEL: intrinsic_vslidedown_vi_nxv1i16_nxv1i16:
549 ; CHECK:       # %bb.0: # %entry
550 ; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma
551 ; CHECK-NEXT:    vslidedown.vi v8, v9, 9
552 ; CHECK-NEXT:    ret
553 entry:
554   %a = call <vscale x 1 x i16> @llvm.riscv.vslidedown.nxv1i16(
555     <vscale x 1 x i16> %0,
556     <vscale x 1 x i16> %1,
557     iXLen 9,
558     iXLen %2,
559     iXLen 1)
561   ret <vscale x 1 x i16> %a
564 define <vscale x 1 x i16> @intrinsic_vslidedown_mask_vi_nxv1i16_nxv1i16(<vscale x 1 x i16> %0, <vscale x 1 x i16> %1, <vscale x 1 x i1> %2, iXLen %3) nounwind {
565 ; CHECK-LABEL: intrinsic_vslidedown_mask_vi_nxv1i16_nxv1i16:
566 ; CHECK:       # %bb.0: # %entry
567 ; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, tu, mu
568 ; CHECK-NEXT:    vslidedown.vi v8, v9, 9, v0.t
569 ; CHECK-NEXT:    ret
570 entry:
571   %a = call <vscale x 1 x i16> @llvm.riscv.vslidedown.mask.nxv1i16(
572     <vscale x 1 x i16> %0,
573     <vscale x 1 x i16> %1,
574     iXLen 9,
575     <vscale x 1 x i1> %2,
576     iXLen %3, iXLen 0)
578   ret <vscale x 1 x i16> %a
581 declare <vscale x 2 x i16> @llvm.riscv.vslidedown.nxv2i16(
582   <vscale x 2 x i16>,
583   <vscale x 2 x i16>,
584   iXLen,
585   iXLen,
586   iXLen);
588 define <vscale x 2 x i16> @intrinsic_vslidedown_vx_nxv2i16_nxv2i16(<vscale x 2 x i16> %0, <vscale x 2 x i16> %1, iXLen %2, iXLen %3) nounwind {
589 ; CHECK-LABEL: intrinsic_vslidedown_vx_nxv2i16_nxv2i16:
590 ; CHECK:       # %bb.0: # %entry
591 ; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma
592 ; CHECK-NEXT:    vslidedown.vx v8, v9, a0
593 ; CHECK-NEXT:    ret
594 entry:
595   %a = call <vscale x 2 x i16> @llvm.riscv.vslidedown.nxv2i16(
596     <vscale x 2 x i16> %0,
597     <vscale x 2 x i16> %1,
598     iXLen %2,
599     iXLen %3,
600     iXLen 1)
602   ret <vscale x 2 x i16> %a
605 declare <vscale x 2 x i16> @llvm.riscv.vslidedown.mask.nxv2i16(
606   <vscale x 2 x i16>,
607   <vscale x 2 x i16>,
608   iXLen,
609   <vscale x 2 x i1>,
610   iXLen, iXLen);
612 define <vscale x 2 x i16> @intrinsic_vslidedown_mask_vx_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 {
613 ; CHECK-LABEL: intrinsic_vslidedown_mask_vx_nxv2i16_nxv2i16:
614 ; CHECK:       # %bb.0: # %entry
615 ; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, tu, mu
616 ; CHECK-NEXT:    vslidedown.vx v8, v9, a0, v0.t
617 ; CHECK-NEXT:    ret
618 entry:
619   %a = call <vscale x 2 x i16> @llvm.riscv.vslidedown.mask.nxv2i16(
620     <vscale x 2 x i16> %0,
621     <vscale x 2 x i16> %1,
622     iXLen %2,
623     <vscale x 2 x i1> %3,
624     iXLen %4, iXLen 0)
626   ret <vscale x 2 x i16> %a
629 define <vscale x 2 x i16> @intrinsic_vslidedown_vi_nxv2i16_nxv2i16(<vscale x 2 x i16> %0, <vscale x 2 x i16> %1, iXLen %2) nounwind {
630 ; CHECK-LABEL: intrinsic_vslidedown_vi_nxv2i16_nxv2i16:
631 ; CHECK:       # %bb.0: # %entry
632 ; CHECK-NEXT:    vsetvli zero, a0, e16, mf2, ta, ma
633 ; CHECK-NEXT:    vslidedown.vi v8, v9, 9
634 ; CHECK-NEXT:    ret
635 entry:
636   %a = call <vscale x 2 x i16> @llvm.riscv.vslidedown.nxv2i16(
637     <vscale x 2 x i16> %0,
638     <vscale x 2 x i16> %1,
639     iXLen 9,
640     iXLen %2,
641     iXLen 1)
643   ret <vscale x 2 x i16> %a
646 define <vscale x 2 x i16> @intrinsic_vslidedown_mask_vi_nxv2i16_nxv2i16(<vscale x 2 x i16> %0, <vscale x 2 x i16> %1, <vscale x 2 x i1> %2, iXLen %3) nounwind {
647 ; CHECK-LABEL: intrinsic_vslidedown_mask_vi_nxv2i16_nxv2i16:
648 ; CHECK:       # %bb.0: # %entry
649 ; CHECK-NEXT:    vsetvli zero, a0, e16, mf2, tu, mu
650 ; CHECK-NEXT:    vslidedown.vi v8, v9, 9, v0.t
651 ; CHECK-NEXT:    ret
652 entry:
653   %a = call <vscale x 2 x i16> @llvm.riscv.vslidedown.mask.nxv2i16(
654     <vscale x 2 x i16> %0,
655     <vscale x 2 x i16> %1,
656     iXLen 9,
657     <vscale x 2 x i1> %2,
658     iXLen %3, iXLen 0)
660   ret <vscale x 2 x i16> %a
663 declare <vscale x 4 x i16> @llvm.riscv.vslidedown.nxv4i16(
664   <vscale x 4 x i16>,
665   <vscale x 4 x i16>,
666   iXLen,
667   iXLen,
668   iXLen);
670 define <vscale x 4 x i16> @intrinsic_vslidedown_vx_nxv4i16_nxv4i16(<vscale x 4 x i16> %0, <vscale x 4 x i16> %1, iXLen %2, iXLen %3) nounwind {
671 ; CHECK-LABEL: intrinsic_vslidedown_vx_nxv4i16_nxv4i16:
672 ; CHECK:       # %bb.0: # %entry
673 ; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma
674 ; CHECK-NEXT:    vslidedown.vx v8, v9, a0
675 ; CHECK-NEXT:    ret
676 entry:
677   %a = call <vscale x 4 x i16> @llvm.riscv.vslidedown.nxv4i16(
678     <vscale x 4 x i16> %0,
679     <vscale x 4 x i16> %1,
680     iXLen %2,
681     iXLen %3,
682     iXLen 1)
684   ret <vscale x 4 x i16> %a
687 declare <vscale x 4 x i16> @llvm.riscv.vslidedown.mask.nxv4i16(
688   <vscale x 4 x i16>,
689   <vscale x 4 x i16>,
690   iXLen,
691   <vscale x 4 x i1>,
692   iXLen, iXLen);
694 define <vscale x 4 x i16> @intrinsic_vslidedown_mask_vx_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 {
695 ; CHECK-LABEL: intrinsic_vslidedown_mask_vx_nxv4i16_nxv4i16:
696 ; CHECK:       # %bb.0: # %entry
697 ; CHECK-NEXT:    vsetvli zero, a1, e16, m1, tu, mu
698 ; CHECK-NEXT:    vslidedown.vx v8, v9, a0, v0.t
699 ; CHECK-NEXT:    ret
700 entry:
701   %a = call <vscale x 4 x i16> @llvm.riscv.vslidedown.mask.nxv4i16(
702     <vscale x 4 x i16> %0,
703     <vscale x 4 x i16> %1,
704     iXLen %2,
705     <vscale x 4 x i1> %3,
706     iXLen %4, iXLen 0)
708   ret <vscale x 4 x i16> %a
711 define <vscale x 4 x i16> @intrinsic_vslidedown_vi_nxv4i16_nxv4i16(<vscale x 4 x i16> %0, <vscale x 4 x i16> %1, iXLen %2) nounwind {
712 ; CHECK-LABEL: intrinsic_vslidedown_vi_nxv4i16_nxv4i16:
713 ; CHECK:       # %bb.0: # %entry
714 ; CHECK-NEXT:    vsetvli zero, a0, e16, m1, ta, ma
715 ; CHECK-NEXT:    vslidedown.vi v8, v9, 9
716 ; CHECK-NEXT:    ret
717 entry:
718   %a = call <vscale x 4 x i16> @llvm.riscv.vslidedown.nxv4i16(
719     <vscale x 4 x i16> %0,
720     <vscale x 4 x i16> %1,
721     iXLen 9,
722     iXLen %2,
723     iXLen 1)
725   ret <vscale x 4 x i16> %a
728 define <vscale x 4 x i16> @intrinsic_vslidedown_mask_vi_nxv4i16_nxv4i16(<vscale x 4 x i16> %0, <vscale x 4 x i16> %1, <vscale x 4 x i1> %2, iXLen %3) nounwind {
729 ; CHECK-LABEL: intrinsic_vslidedown_mask_vi_nxv4i16_nxv4i16:
730 ; CHECK:       # %bb.0: # %entry
731 ; CHECK-NEXT:    vsetvli zero, a0, e16, m1, tu, mu
732 ; CHECK-NEXT:    vslidedown.vi v8, v9, 9, v0.t
733 ; CHECK-NEXT:    ret
734 entry:
735   %a = call <vscale x 4 x i16> @llvm.riscv.vslidedown.mask.nxv4i16(
736     <vscale x 4 x i16> %0,
737     <vscale x 4 x i16> %1,
738     iXLen 9,
739     <vscale x 4 x i1> %2,
740     iXLen %3, iXLen 0)
742   ret <vscale x 4 x i16> %a
745 declare <vscale x 8 x i16> @llvm.riscv.vslidedown.nxv8i16(
746   <vscale x 8 x i16>,
747   <vscale x 8 x i16>,
748   iXLen,
749   iXLen,
750   iXLen);
752 define <vscale x 8 x i16> @intrinsic_vslidedown_vx_nxv8i16_nxv8i16(<vscale x 8 x i16> %0, <vscale x 8 x i16> %1, iXLen %2, iXLen %3) nounwind {
753 ; CHECK-LABEL: intrinsic_vslidedown_vx_nxv8i16_nxv8i16:
754 ; CHECK:       # %bb.0: # %entry
755 ; CHECK-NEXT:    vsetvli zero, a1, e16, m2, ta, ma
756 ; CHECK-NEXT:    vslidedown.vx v8, v10, a0
757 ; CHECK-NEXT:    ret
758 entry:
759   %a = call <vscale x 8 x i16> @llvm.riscv.vslidedown.nxv8i16(
760     <vscale x 8 x i16> %0,
761     <vscale x 8 x i16> %1,
762     iXLen %2,
763     iXLen %3,
764     iXLen 1)
766   ret <vscale x 8 x i16> %a
769 declare <vscale x 8 x i16> @llvm.riscv.vslidedown.mask.nxv8i16(
770   <vscale x 8 x i16>,
771   <vscale x 8 x i16>,
772   iXLen,
773   <vscale x 8 x i1>,
774   iXLen, iXLen);
776 define <vscale x 8 x i16> @intrinsic_vslidedown_mask_vx_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 {
777 ; CHECK-LABEL: intrinsic_vslidedown_mask_vx_nxv8i16_nxv8i16:
778 ; CHECK:       # %bb.0: # %entry
779 ; CHECK-NEXT:    vsetvli zero, a1, e16, m2, tu, mu
780 ; CHECK-NEXT:    vslidedown.vx v8, v10, a0, v0.t
781 ; CHECK-NEXT:    ret
782 entry:
783   %a = call <vscale x 8 x i16> @llvm.riscv.vslidedown.mask.nxv8i16(
784     <vscale x 8 x i16> %0,
785     <vscale x 8 x i16> %1,
786     iXLen %2,
787     <vscale x 8 x i1> %3,
788     iXLen %4, iXLen 0)
790   ret <vscale x 8 x i16> %a
793 define <vscale x 8 x i16> @intrinsic_vslidedown_vi_nxv8i16_nxv8i16(<vscale x 8 x i16> %0, <vscale x 8 x i16> %1, iXLen %2) nounwind {
794 ; CHECK-LABEL: intrinsic_vslidedown_vi_nxv8i16_nxv8i16:
795 ; CHECK:       # %bb.0: # %entry
796 ; CHECK-NEXT:    vsetvli zero, a0, e16, m2, ta, ma
797 ; CHECK-NEXT:    vslidedown.vi v8, v10, 9
798 ; CHECK-NEXT:    ret
799 entry:
800   %a = call <vscale x 8 x i16> @llvm.riscv.vslidedown.nxv8i16(
801     <vscale x 8 x i16> %0,
802     <vscale x 8 x i16> %1,
803     iXLen 9,
804     iXLen %2,
805     iXLen 1)
807   ret <vscale x 8 x i16> %a
810 define <vscale x 8 x i16> @intrinsic_vslidedown_mask_vi_nxv8i16_nxv8i16(<vscale x 8 x i16> %0, <vscale x 8 x i16> %1, <vscale x 8 x i1> %2, iXLen %3) nounwind {
811 ; CHECK-LABEL: intrinsic_vslidedown_mask_vi_nxv8i16_nxv8i16:
812 ; CHECK:       # %bb.0: # %entry
813 ; CHECK-NEXT:    vsetvli zero, a0, e16, m2, tu, mu
814 ; CHECK-NEXT:    vslidedown.vi v8, v10, 9, v0.t
815 ; CHECK-NEXT:    ret
816 entry:
817   %a = call <vscale x 8 x i16> @llvm.riscv.vslidedown.mask.nxv8i16(
818     <vscale x 8 x i16> %0,
819     <vscale x 8 x i16> %1,
820     iXLen 9,
821     <vscale x 8 x i1> %2,
822     iXLen %3, iXLen 0)
824   ret <vscale x 8 x i16> %a
827 declare <vscale x 16 x i16> @llvm.riscv.vslidedown.nxv16i16(
828   <vscale x 16 x i16>,
829   <vscale x 16 x i16>,
830   iXLen,
831   iXLen,
832   iXLen);
834 define <vscale x 16 x i16> @intrinsic_vslidedown_vx_nxv16i16_nxv16i16(<vscale x 16 x i16> %0, <vscale x 16 x i16> %1, iXLen %2, iXLen %3) nounwind {
835 ; CHECK-LABEL: intrinsic_vslidedown_vx_nxv16i16_nxv16i16:
836 ; CHECK:       # %bb.0: # %entry
837 ; CHECK-NEXT:    vsetvli zero, a1, e16, m4, ta, ma
838 ; CHECK-NEXT:    vslidedown.vx v8, v12, a0
839 ; CHECK-NEXT:    ret
840 entry:
841   %a = call <vscale x 16 x i16> @llvm.riscv.vslidedown.nxv16i16(
842     <vscale x 16 x i16> %0,
843     <vscale x 16 x i16> %1,
844     iXLen %2,
845     iXLen %3,
846     iXLen 1)
848   ret <vscale x 16 x i16> %a
851 declare <vscale x 16 x i16> @llvm.riscv.vslidedown.mask.nxv16i16(
852   <vscale x 16 x i16>,
853   <vscale x 16 x i16>,
854   iXLen,
855   <vscale x 16 x i1>,
856   iXLen, iXLen);
858 define <vscale x 16 x i16> @intrinsic_vslidedown_mask_vx_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 {
859 ; CHECK-LABEL: intrinsic_vslidedown_mask_vx_nxv16i16_nxv16i16:
860 ; CHECK:       # %bb.0: # %entry
861 ; CHECK-NEXT:    vsetvli zero, a1, e16, m4, tu, mu
862 ; CHECK-NEXT:    vslidedown.vx v8, v12, a0, v0.t
863 ; CHECK-NEXT:    ret
864 entry:
865   %a = call <vscale x 16 x i16> @llvm.riscv.vslidedown.mask.nxv16i16(
866     <vscale x 16 x i16> %0,
867     <vscale x 16 x i16> %1,
868     iXLen %2,
869     <vscale x 16 x i1> %3,
870     iXLen %4, iXLen 0)
872   ret <vscale x 16 x i16> %a
875 define <vscale x 16 x i16> @intrinsic_vslidedown_vi_nxv16i16_nxv16i16(<vscale x 16 x i16> %0, <vscale x 16 x i16> %1, iXLen %2) nounwind {
876 ; CHECK-LABEL: intrinsic_vslidedown_vi_nxv16i16_nxv16i16:
877 ; CHECK:       # %bb.0: # %entry
878 ; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, ma
879 ; CHECK-NEXT:    vslidedown.vi v8, v12, 9
880 ; CHECK-NEXT:    ret
881 entry:
882   %a = call <vscale x 16 x i16> @llvm.riscv.vslidedown.nxv16i16(
883     <vscale x 16 x i16> %0,
884     <vscale x 16 x i16> %1,
885     iXLen 9,
886     iXLen %2,
887     iXLen 1)
889   ret <vscale x 16 x i16> %a
892 define <vscale x 16 x i16> @intrinsic_vslidedown_mask_vi_nxv16i16_nxv16i16(<vscale x 16 x i16> %0, <vscale x 16 x i16> %1, <vscale x 16 x i1> %2, iXLen %3) nounwind {
893 ; CHECK-LABEL: intrinsic_vslidedown_mask_vi_nxv16i16_nxv16i16:
894 ; CHECK:       # %bb.0: # %entry
895 ; CHECK-NEXT:    vsetvli zero, a0, e16, m4, tu, mu
896 ; CHECK-NEXT:    vslidedown.vi v8, v12, 9, v0.t
897 ; CHECK-NEXT:    ret
898 entry:
899   %a = call <vscale x 16 x i16> @llvm.riscv.vslidedown.mask.nxv16i16(
900     <vscale x 16 x i16> %0,
901     <vscale x 16 x i16> %1,
902     iXLen 9,
903     <vscale x 16 x i1> %2,
904     iXLen %3, iXLen 0)
906   ret <vscale x 16 x i16> %a
909 declare <vscale x 1 x i32> @llvm.riscv.vslidedown.nxv1i32(
910   <vscale x 1 x i32>,
911   <vscale x 1 x i32>,
912   iXLen,
913   iXLen,
914   iXLen);
916 define <vscale x 1 x i32> @intrinsic_vslidedown_vx_nxv1i32_nxv1i32(<vscale x 1 x i32> %0, <vscale x 1 x i32> %1, iXLen %2, iXLen %3) nounwind {
917 ; CHECK-LABEL: intrinsic_vslidedown_vx_nxv1i32_nxv1i32:
918 ; CHECK:       # %bb.0: # %entry
919 ; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, ta, ma
920 ; CHECK-NEXT:    vslidedown.vx v8, v9, a0
921 ; CHECK-NEXT:    ret
922 entry:
923   %a = call <vscale x 1 x i32> @llvm.riscv.vslidedown.nxv1i32(
924     <vscale x 1 x i32> %0,
925     <vscale x 1 x i32> %1,
926     iXLen %2,
927     iXLen %3,
928     iXLen 1)
930   ret <vscale x 1 x i32> %a
933 declare <vscale x 1 x i32> @llvm.riscv.vslidedown.mask.nxv1i32(
934   <vscale x 1 x i32>,
935   <vscale x 1 x i32>,
936   iXLen,
937   <vscale x 1 x i1>,
938   iXLen, iXLen);
940 define <vscale x 1 x i32> @intrinsic_vslidedown_mask_vx_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 {
941 ; CHECK-LABEL: intrinsic_vslidedown_mask_vx_nxv1i32_nxv1i32:
942 ; CHECK:       # %bb.0: # %entry
943 ; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, tu, mu
944 ; CHECK-NEXT:    vslidedown.vx v8, v9, a0, v0.t
945 ; CHECK-NEXT:    ret
946 entry:
947   %a = call <vscale x 1 x i32> @llvm.riscv.vslidedown.mask.nxv1i32(
948     <vscale x 1 x i32> %0,
949     <vscale x 1 x i32> %1,
950     iXLen %2,
951     <vscale x 1 x i1> %3,
952     iXLen %4, iXLen 0)
954   ret <vscale x 1 x i32> %a
957 define <vscale x 1 x i32> @intrinsic_vslidedown_vi_nxv1i32_nxv1i32(<vscale x 1 x i32> %0, <vscale x 1 x i32> %1, iXLen %2) nounwind {
958 ; CHECK-LABEL: intrinsic_vslidedown_vi_nxv1i32_nxv1i32:
959 ; CHECK:       # %bb.0: # %entry
960 ; CHECK-NEXT:    vsetvli zero, a0, e32, mf2, ta, ma
961 ; CHECK-NEXT:    vslidedown.vi v8, v9, 9
962 ; CHECK-NEXT:    ret
963 entry:
964   %a = call <vscale x 1 x i32> @llvm.riscv.vslidedown.nxv1i32(
965     <vscale x 1 x i32> %0,
966     <vscale x 1 x i32> %1,
967     iXLen 9,
968     iXLen %2,
969     iXLen 1)
971   ret <vscale x 1 x i32> %a
974 define <vscale x 1 x i32> @intrinsic_vslidedown_mask_vi_nxv1i32_nxv1i32(<vscale x 1 x i32> %0, <vscale x 1 x i32> %1, <vscale x 1 x i1> %2, iXLen %3) nounwind {
975 ; CHECK-LABEL: intrinsic_vslidedown_mask_vi_nxv1i32_nxv1i32:
976 ; CHECK:       # %bb.0: # %entry
977 ; CHECK-NEXT:    vsetvli zero, a0, e32, mf2, tu, mu
978 ; CHECK-NEXT:    vslidedown.vi v8, v9, 9, v0.t
979 ; CHECK-NEXT:    ret
980 entry:
981   %a = call <vscale x 1 x i32> @llvm.riscv.vslidedown.mask.nxv1i32(
982     <vscale x 1 x i32> %0,
983     <vscale x 1 x i32> %1,
984     iXLen 9,
985     <vscale x 1 x i1> %2,
986     iXLen %3, iXLen 0)
988   ret <vscale x 1 x i32> %a
991 declare <vscale x 2 x i32> @llvm.riscv.vslidedown.nxv2i32(
992   <vscale x 2 x i32>,
993   <vscale x 2 x i32>,
994   iXLen,
995   iXLen,
996   iXLen);
998 define <vscale x 2 x i32> @intrinsic_vslidedown_vx_nxv2i32_nxv2i32(<vscale x 2 x i32> %0, <vscale x 2 x i32> %1, iXLen %2, iXLen %3) nounwind {
999 ; CHECK-LABEL: intrinsic_vslidedown_vx_nxv2i32_nxv2i32:
1000 ; CHECK:       # %bb.0: # %entry
1001 ; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, ma
1002 ; CHECK-NEXT:    vslidedown.vx v8, v9, a0
1003 ; CHECK-NEXT:    ret
1004 entry:
1005   %a = call <vscale x 2 x i32> @llvm.riscv.vslidedown.nxv2i32(
1006     <vscale x 2 x i32> %0,
1007     <vscale x 2 x i32> %1,
1008     iXLen %2,
1009     iXLen %3,
1010     iXLen 1)
1012   ret <vscale x 2 x i32> %a
1015 declare <vscale x 2 x i32> @llvm.riscv.vslidedown.mask.nxv2i32(
1016   <vscale x 2 x i32>,
1017   <vscale x 2 x i32>,
1018   iXLen,
1019   <vscale x 2 x i1>,
1020   iXLen, iXLen);
1022 define <vscale x 2 x i32> @intrinsic_vslidedown_mask_vx_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 {
1023 ; CHECK-LABEL: intrinsic_vslidedown_mask_vx_nxv2i32_nxv2i32:
1024 ; CHECK:       # %bb.0: # %entry
1025 ; CHECK-NEXT:    vsetvli zero, a1, e32, m1, tu, mu
1026 ; CHECK-NEXT:    vslidedown.vx v8, v9, a0, v0.t
1027 ; CHECK-NEXT:    ret
1028 entry:
1029   %a = call <vscale x 2 x i32> @llvm.riscv.vslidedown.mask.nxv2i32(
1030     <vscale x 2 x i32> %0,
1031     <vscale x 2 x i32> %1,
1032     iXLen %2,
1033     <vscale x 2 x i1> %3,
1034     iXLen %4, iXLen 0)
1036   ret <vscale x 2 x i32> %a
1039 define <vscale x 2 x i32> @intrinsic_vslidedown_vi_nxv2i32_nxv2i32(<vscale x 2 x i32> %0, <vscale x 2 x i32> %1, iXLen %2) nounwind {
1040 ; CHECK-LABEL: intrinsic_vslidedown_vi_nxv2i32_nxv2i32:
1041 ; CHECK:       # %bb.0: # %entry
1042 ; CHECK-NEXT:    vsetvli zero, a0, e32, m1, ta, ma
1043 ; CHECK-NEXT:    vslidedown.vi v8, v9, 9
1044 ; CHECK-NEXT:    ret
1045 entry:
1046   %a = call <vscale x 2 x i32> @llvm.riscv.vslidedown.nxv2i32(
1047     <vscale x 2 x i32> %0,
1048     <vscale x 2 x i32> %1,
1049     iXLen 9,
1050     iXLen %2,
1051     iXLen 1)
1053   ret <vscale x 2 x i32> %a
1056 define <vscale x 2 x i32> @intrinsic_vslidedown_mask_vi_nxv2i32_nxv2i32(<vscale x 2 x i32> %0, <vscale x 2 x i32> %1, <vscale x 2 x i1> %2, iXLen %3) nounwind {
1057 ; CHECK-LABEL: intrinsic_vslidedown_mask_vi_nxv2i32_nxv2i32:
1058 ; CHECK:       # %bb.0: # %entry
1059 ; CHECK-NEXT:    vsetvli zero, a0, e32, m1, tu, mu
1060 ; CHECK-NEXT:    vslidedown.vi v8, v9, 9, v0.t
1061 ; CHECK-NEXT:    ret
1062 entry:
1063   %a = call <vscale x 2 x i32> @llvm.riscv.vslidedown.mask.nxv2i32(
1064     <vscale x 2 x i32> %0,
1065     <vscale x 2 x i32> %1,
1066     iXLen 9,
1067     <vscale x 2 x i1> %2,
1068     iXLen %3, iXLen 0)
1070   ret <vscale x 2 x i32> %a
1073 declare <vscale x 4 x i32> @llvm.riscv.vslidedown.nxv4i32(
1074   <vscale x 4 x i32>,
1075   <vscale x 4 x i32>,
1076   iXLen,
1077   iXLen,
1078   iXLen);
1080 define <vscale x 4 x i32> @intrinsic_vslidedown_vx_nxv4i32_nxv4i32(<vscale x 4 x i32> %0, <vscale x 4 x i32> %1, iXLen %2, iXLen %3) nounwind {
1081 ; CHECK-LABEL: intrinsic_vslidedown_vx_nxv4i32_nxv4i32:
1082 ; CHECK:       # %bb.0: # %entry
1083 ; CHECK-NEXT:    vsetvli zero, a1, e32, m2, ta, ma
1084 ; CHECK-NEXT:    vslidedown.vx v8, v10, a0
1085 ; CHECK-NEXT:    ret
1086 entry:
1087   %a = call <vscale x 4 x i32> @llvm.riscv.vslidedown.nxv4i32(
1088     <vscale x 4 x i32> %0,
1089     <vscale x 4 x i32> %1,
1090     iXLen %2,
1091     iXLen %3,
1092     iXLen 1)
1094   ret <vscale x 4 x i32> %a
1097 declare <vscale x 4 x i32> @llvm.riscv.vslidedown.mask.nxv4i32(
1098   <vscale x 4 x i32>,
1099   <vscale x 4 x i32>,
1100   iXLen,
1101   <vscale x 4 x i1>,
1102   iXLen, iXLen);
1104 define <vscale x 4 x i32> @intrinsic_vslidedown_mask_vx_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 {
1105 ; CHECK-LABEL: intrinsic_vslidedown_mask_vx_nxv4i32_nxv4i32:
1106 ; CHECK:       # %bb.0: # %entry
1107 ; CHECK-NEXT:    vsetvli zero, a1, e32, m2, tu, mu
1108 ; CHECK-NEXT:    vslidedown.vx v8, v10, a0, v0.t
1109 ; CHECK-NEXT:    ret
1110 entry:
1111   %a = call <vscale x 4 x i32> @llvm.riscv.vslidedown.mask.nxv4i32(
1112     <vscale x 4 x i32> %0,
1113     <vscale x 4 x i32> %1,
1114     iXLen %2,
1115     <vscale x 4 x i1> %3,
1116     iXLen %4, iXLen 0)
1118   ret <vscale x 4 x i32> %a
1121 define <vscale x 4 x i32> @intrinsic_vslidedown_vi_nxv4i32_nxv4i32(<vscale x 4 x i32> %0, <vscale x 4 x i32> %1, iXLen %2) nounwind {
1122 ; CHECK-LABEL: intrinsic_vslidedown_vi_nxv4i32_nxv4i32:
1123 ; CHECK:       # %bb.0: # %entry
1124 ; CHECK-NEXT:    vsetvli zero, a0, e32, m2, ta, ma
1125 ; CHECK-NEXT:    vslidedown.vi v8, v10, 9
1126 ; CHECK-NEXT:    ret
1127 entry:
1128   %a = call <vscale x 4 x i32> @llvm.riscv.vslidedown.nxv4i32(
1129     <vscale x 4 x i32> %0,
1130     <vscale x 4 x i32> %1,
1131     iXLen 9,
1132     iXLen %2,
1133     iXLen 1)
1135   ret <vscale x 4 x i32> %a
1138 define <vscale x 4 x i32> @intrinsic_vslidedown_mask_vi_nxv4i32_nxv4i32(<vscale x 4 x i32> %0, <vscale x 4 x i32> %1, <vscale x 4 x i1> %2, iXLen %3) nounwind {
1139 ; CHECK-LABEL: intrinsic_vslidedown_mask_vi_nxv4i32_nxv4i32:
1140 ; CHECK:       # %bb.0: # %entry
1141 ; CHECK-NEXT:    vsetvli zero, a0, e32, m2, tu, mu
1142 ; CHECK-NEXT:    vslidedown.vi v8, v10, 9, v0.t
1143 ; CHECK-NEXT:    ret
1144 entry:
1145   %a = call <vscale x 4 x i32> @llvm.riscv.vslidedown.mask.nxv4i32(
1146     <vscale x 4 x i32> %0,
1147     <vscale x 4 x i32> %1,
1148     iXLen 9,
1149     <vscale x 4 x i1> %2,
1150     iXLen %3, iXLen 0)
1152   ret <vscale x 4 x i32> %a
1155 declare <vscale x 8 x i32> @llvm.riscv.vslidedown.nxv8i32(
1156   <vscale x 8 x i32>,
1157   <vscale x 8 x i32>,
1158   iXLen,
1159   iXLen,
1160   iXLen);
1162 define <vscale x 8 x i32> @intrinsic_vslidedown_vx_nxv8i32_nxv8i32(<vscale x 8 x i32> %0, <vscale x 8 x i32> %1, iXLen %2, iXLen %3) nounwind {
1163 ; CHECK-LABEL: intrinsic_vslidedown_vx_nxv8i32_nxv8i32:
1164 ; CHECK:       # %bb.0: # %entry
1165 ; CHECK-NEXT:    vsetvli zero, a1, e32, m4, ta, ma
1166 ; CHECK-NEXT:    vslidedown.vx v8, v12, a0
1167 ; CHECK-NEXT:    ret
1168 entry:
1169   %a = call <vscale x 8 x i32> @llvm.riscv.vslidedown.nxv8i32(
1170     <vscale x 8 x i32> %0,
1171     <vscale x 8 x i32> %1,
1172     iXLen %2,
1173     iXLen %3,
1174     iXLen 1)
1176   ret <vscale x 8 x i32> %a
1179 declare <vscale x 8 x i32> @llvm.riscv.vslidedown.mask.nxv8i32(
1180   <vscale x 8 x i32>,
1181   <vscale x 8 x i32>,
1182   iXLen,
1183   <vscale x 8 x i1>,
1184   iXLen, iXLen);
1186 define <vscale x 8 x i32> @intrinsic_vslidedown_mask_vx_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 {
1187 ; CHECK-LABEL: intrinsic_vslidedown_mask_vx_nxv8i32_nxv8i32:
1188 ; CHECK:       # %bb.0: # %entry
1189 ; CHECK-NEXT:    vsetvli zero, a1, e32, m4, tu, mu
1190 ; CHECK-NEXT:    vslidedown.vx v8, v12, a0, v0.t
1191 ; CHECK-NEXT:    ret
1192 entry:
1193   %a = call <vscale x 8 x i32> @llvm.riscv.vslidedown.mask.nxv8i32(
1194     <vscale x 8 x i32> %0,
1195     <vscale x 8 x i32> %1,
1196     iXLen %2,
1197     <vscale x 8 x i1> %3,
1198     iXLen %4, iXLen 0)
1200   ret <vscale x 8 x i32> %a
1203 define <vscale x 8 x i32> @intrinsic_vslidedown_vi_nxv8i32_nxv8i32(<vscale x 8 x i32> %0, <vscale x 8 x i32> %1, iXLen %2) nounwind {
1204 ; CHECK-LABEL: intrinsic_vslidedown_vi_nxv8i32_nxv8i32:
1205 ; CHECK:       # %bb.0: # %entry
1206 ; CHECK-NEXT:    vsetvli zero, a0, e32, m4, ta, ma
1207 ; CHECK-NEXT:    vslidedown.vi v8, v12, 9
1208 ; CHECK-NEXT:    ret
1209 entry:
1210   %a = call <vscale x 8 x i32> @llvm.riscv.vslidedown.nxv8i32(
1211     <vscale x 8 x i32> %0,
1212     <vscale x 8 x i32> %1,
1213     iXLen 9,
1214     iXLen %2,
1215     iXLen 1)
1217   ret <vscale x 8 x i32> %a
1220 define <vscale x 8 x i32> @intrinsic_vslidedown_mask_vi_nxv8i32_nxv8i32(<vscale x 8 x i32> %0, <vscale x 8 x i32> %1, <vscale x 8 x i1> %2, iXLen %3) nounwind {
1221 ; CHECK-LABEL: intrinsic_vslidedown_mask_vi_nxv8i32_nxv8i32:
1222 ; CHECK:       # %bb.0: # %entry
1223 ; CHECK-NEXT:    vsetvli zero, a0, e32, m4, tu, mu
1224 ; CHECK-NEXT:    vslidedown.vi v8, v12, 9, v0.t
1225 ; CHECK-NEXT:    ret
1226 entry:
1227   %a = call <vscale x 8 x i32> @llvm.riscv.vslidedown.mask.nxv8i32(
1228     <vscale x 8 x i32> %0,
1229     <vscale x 8 x i32> %1,
1230     iXLen 9,
1231     <vscale x 8 x i1> %2,
1232     iXLen %3, iXLen 0)
1234   ret <vscale x 8 x i32> %a
1237 declare <vscale x 1 x i64> @llvm.riscv.vslidedown.nxv1i64(
1238   <vscale x 1 x i64>,
1239   <vscale x 1 x i64>,
1240   iXLen,
1241   iXLen,
1242   iXLen);
1244 define <vscale x 1 x i64> @intrinsic_vslidedown_vx_nxv1i64_nxv1i64(<vscale x 1 x i64> %0, <vscale x 1 x i64> %1, iXLen %2, iXLen %3) nounwind {
1245 ; CHECK-LABEL: intrinsic_vslidedown_vx_nxv1i64_nxv1i64:
1246 ; CHECK:       # %bb.0: # %entry
1247 ; CHECK-NEXT:    vsetvli zero, a1, e64, m1, ta, ma
1248 ; CHECK-NEXT:    vslidedown.vx v8, v9, a0
1249 ; CHECK-NEXT:    ret
1250 entry:
1251   %a = call <vscale x 1 x i64> @llvm.riscv.vslidedown.nxv1i64(
1252     <vscale x 1 x i64> %0,
1253     <vscale x 1 x i64> %1,
1254     iXLen %2,
1255     iXLen %3,
1256     iXLen 1)
1258   ret <vscale x 1 x i64> %a
1261 declare <vscale x 1 x i64> @llvm.riscv.vslidedown.mask.nxv1i64(
1262   <vscale x 1 x i64>,
1263   <vscale x 1 x i64>,
1264   iXLen,
1265   <vscale x 1 x i1>,
1266   iXLen, iXLen);
1268 define <vscale x 1 x i64> @intrinsic_vslidedown_mask_vx_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 {
1269 ; CHECK-LABEL: intrinsic_vslidedown_mask_vx_nxv1i64_nxv1i64:
1270 ; CHECK:       # %bb.0: # %entry
1271 ; CHECK-NEXT:    vsetvli zero, a1, e64, m1, tu, mu
1272 ; CHECK-NEXT:    vslidedown.vx v8, v9, a0, v0.t
1273 ; CHECK-NEXT:    ret
1274 entry:
1275   %a = call <vscale x 1 x i64> @llvm.riscv.vslidedown.mask.nxv1i64(
1276     <vscale x 1 x i64> %0,
1277     <vscale x 1 x i64> %1,
1278     iXLen %2,
1279     <vscale x 1 x i1> %3,
1280     iXLen %4, iXLen 0)
1282   ret <vscale x 1 x i64> %a
1285 define <vscale x 1 x i64> @intrinsic_vslidedown_vi_nxv1i64_nxv1i64(<vscale x 1 x i64> %0, <vscale x 1 x i64> %1, iXLen %2) nounwind {
1286 ; CHECK-LABEL: intrinsic_vslidedown_vi_nxv1i64_nxv1i64:
1287 ; CHECK:       # %bb.0: # %entry
1288 ; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, ma
1289 ; CHECK-NEXT:    vslidedown.vi v8, v9, 9
1290 ; CHECK-NEXT:    ret
1291 entry:
1292   %a = call <vscale x 1 x i64> @llvm.riscv.vslidedown.nxv1i64(
1293     <vscale x 1 x i64> %0,
1294     <vscale x 1 x i64> %1,
1295     iXLen 9,
1296     iXLen %2,
1297     iXLen 1)
1299   ret <vscale x 1 x i64> %a
1302 define <vscale x 1 x i64> @intrinsic_vslidedown_mask_vi_nxv1i64_nxv1i64(<vscale x 1 x i64> %0, <vscale x 1 x i64> %1, <vscale x 1 x i1> %2, iXLen %3) nounwind {
1303 ; CHECK-LABEL: intrinsic_vslidedown_mask_vi_nxv1i64_nxv1i64:
1304 ; CHECK:       # %bb.0: # %entry
1305 ; CHECK-NEXT:    vsetvli zero, a0, e64, m1, tu, mu
1306 ; CHECK-NEXT:    vslidedown.vi v8, v9, 9, v0.t
1307 ; CHECK-NEXT:    ret
1308 entry:
1309   %a = call <vscale x 1 x i64> @llvm.riscv.vslidedown.mask.nxv1i64(
1310     <vscale x 1 x i64> %0,
1311     <vscale x 1 x i64> %1,
1312     iXLen 9,
1313     <vscale x 1 x i1> %2,
1314     iXLen %3, iXLen 0)
1316   ret <vscale x 1 x i64> %a
1319 declare <vscale x 2 x i64> @llvm.riscv.vslidedown.nxv2i64(
1320   <vscale x 2 x i64>,
1321   <vscale x 2 x i64>,
1322   iXLen,
1323   iXLen,
1324   iXLen);
1326 define <vscale x 2 x i64> @intrinsic_vslidedown_vx_nxv2i64_nxv2i64(<vscale x 2 x i64> %0, <vscale x 2 x i64> %1, iXLen %2, iXLen %3) nounwind {
1327 ; CHECK-LABEL: intrinsic_vslidedown_vx_nxv2i64_nxv2i64:
1328 ; CHECK:       # %bb.0: # %entry
1329 ; CHECK-NEXT:    vsetvli zero, a1, e64, m2, ta, ma
1330 ; CHECK-NEXT:    vslidedown.vx v8, v10, a0
1331 ; CHECK-NEXT:    ret
1332 entry:
1333   %a = call <vscale x 2 x i64> @llvm.riscv.vslidedown.nxv2i64(
1334     <vscale x 2 x i64> %0,
1335     <vscale x 2 x i64> %1,
1336     iXLen %2,
1337     iXLen %3,
1338     iXLen 1)
1340   ret <vscale x 2 x i64> %a
1343 declare <vscale x 2 x i64> @llvm.riscv.vslidedown.mask.nxv2i64(
1344   <vscale x 2 x i64>,
1345   <vscale x 2 x i64>,
1346   iXLen,
1347   <vscale x 2 x i1>,
1348   iXLen, iXLen);
1350 define <vscale x 2 x i64> @intrinsic_vslidedown_mask_vx_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 {
1351 ; CHECK-LABEL: intrinsic_vslidedown_mask_vx_nxv2i64_nxv2i64:
1352 ; CHECK:       # %bb.0: # %entry
1353 ; CHECK-NEXT:    vsetvli zero, a1, e64, m2, tu, mu
1354 ; CHECK-NEXT:    vslidedown.vx v8, v10, a0, v0.t
1355 ; CHECK-NEXT:    ret
1356 entry:
1357   %a = call <vscale x 2 x i64> @llvm.riscv.vslidedown.mask.nxv2i64(
1358     <vscale x 2 x i64> %0,
1359     <vscale x 2 x i64> %1,
1360     iXLen %2,
1361     <vscale x 2 x i1> %3,
1362     iXLen %4, iXLen 0)
1364   ret <vscale x 2 x i64> %a
1367 define <vscale x 2 x i64> @intrinsic_vslidedown_vi_nxv2i64_nxv2i64(<vscale x 2 x i64> %0, <vscale x 2 x i64> %1, iXLen %2) nounwind {
1368 ; CHECK-LABEL: intrinsic_vslidedown_vi_nxv2i64_nxv2i64:
1369 ; CHECK:       # %bb.0: # %entry
1370 ; CHECK-NEXT:    vsetvli zero, a0, e64, m2, ta, ma
1371 ; CHECK-NEXT:    vslidedown.vi v8, v10, 9
1372 ; CHECK-NEXT:    ret
1373 entry:
1374   %a = call <vscale x 2 x i64> @llvm.riscv.vslidedown.nxv2i64(
1375     <vscale x 2 x i64> %0,
1376     <vscale x 2 x i64> %1,
1377     iXLen 9,
1378     iXLen %2,
1379     iXLen 1)
1381   ret <vscale x 2 x i64> %a
1384 define <vscale x 2 x i64> @intrinsic_vslidedown_mask_vi_nxv2i64_nxv2i64(<vscale x 2 x i64> %0, <vscale x 2 x i64> %1, <vscale x 2 x i1> %2, iXLen %3) nounwind {
1385 ; CHECK-LABEL: intrinsic_vslidedown_mask_vi_nxv2i64_nxv2i64:
1386 ; CHECK:       # %bb.0: # %entry
1387 ; CHECK-NEXT:    vsetvli zero, a0, e64, m2, tu, mu
1388 ; CHECK-NEXT:    vslidedown.vi v8, v10, 9, v0.t
1389 ; CHECK-NEXT:    ret
1390 entry:
1391   %a = call <vscale x 2 x i64> @llvm.riscv.vslidedown.mask.nxv2i64(
1392     <vscale x 2 x i64> %0,
1393     <vscale x 2 x i64> %1,
1394     iXLen 9,
1395     <vscale x 2 x i1> %2,
1396     iXLen %3, iXLen 0)
1398   ret <vscale x 2 x i64> %a
1401 declare <vscale x 4 x i64> @llvm.riscv.vslidedown.nxv4i64(
1402   <vscale x 4 x i64>,
1403   <vscale x 4 x i64>,
1404   iXLen,
1405   iXLen,
1406   iXLen);
1408 define <vscale x 4 x i64> @intrinsic_vslidedown_vx_nxv4i64_nxv4i64(<vscale x 4 x i64> %0, <vscale x 4 x i64> %1, iXLen %2, iXLen %3) nounwind {
1409 ; CHECK-LABEL: intrinsic_vslidedown_vx_nxv4i64_nxv4i64:
1410 ; CHECK:       # %bb.0: # %entry
1411 ; CHECK-NEXT:    vsetvli zero, a1, e64, m4, ta, ma
1412 ; CHECK-NEXT:    vslidedown.vx v8, v12, a0
1413 ; CHECK-NEXT:    ret
1414 entry:
1415   %a = call <vscale x 4 x i64> @llvm.riscv.vslidedown.nxv4i64(
1416     <vscale x 4 x i64> %0,
1417     <vscale x 4 x i64> %1,
1418     iXLen %2,
1419     iXLen %3,
1420     iXLen 1)
1422   ret <vscale x 4 x i64> %a
1425 declare <vscale x 4 x i64> @llvm.riscv.vslidedown.mask.nxv4i64(
1426   <vscale x 4 x i64>,
1427   <vscale x 4 x i64>,
1428   iXLen,
1429   <vscale x 4 x i1>,
1430   iXLen, iXLen);
1432 define <vscale x 4 x i64> @intrinsic_vslidedown_mask_vx_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 {
1433 ; CHECK-LABEL: intrinsic_vslidedown_mask_vx_nxv4i64_nxv4i64:
1434 ; CHECK:       # %bb.0: # %entry
1435 ; CHECK-NEXT:    vsetvli zero, a1, e64, m4, tu, mu
1436 ; CHECK-NEXT:    vslidedown.vx v8, v12, a0, v0.t
1437 ; CHECK-NEXT:    ret
1438 entry:
1439   %a = call <vscale x 4 x i64> @llvm.riscv.vslidedown.mask.nxv4i64(
1440     <vscale x 4 x i64> %0,
1441     <vscale x 4 x i64> %1,
1442     iXLen %2,
1443     <vscale x 4 x i1> %3,
1444     iXLen %4, iXLen 0)
1446   ret <vscale x 4 x i64> %a
1449 define <vscale x 4 x i64> @intrinsic_vslidedown_vi_nxv4i64_nxv4i64(<vscale x 4 x i64> %0, <vscale x 4 x i64> %1, iXLen %2) nounwind {
1450 ; CHECK-LABEL: intrinsic_vslidedown_vi_nxv4i64_nxv4i64:
1451 ; CHECK:       # %bb.0: # %entry
1452 ; CHECK-NEXT:    vsetvli zero, a0, e64, m4, ta, ma
1453 ; CHECK-NEXT:    vslidedown.vi v8, v12, 9
1454 ; CHECK-NEXT:    ret
1455 entry:
1456   %a = call <vscale x 4 x i64> @llvm.riscv.vslidedown.nxv4i64(
1457     <vscale x 4 x i64> %0,
1458     <vscale x 4 x i64> %1,
1459     iXLen 9,
1460     iXLen %2,
1461     iXLen 1)
1463   ret <vscale x 4 x i64> %a
1466 define <vscale x 4 x i64> @intrinsic_vslidedown_mask_vi_nxv4i64_nxv4i64(<vscale x 4 x i64> %0, <vscale x 4 x i64> %1, <vscale x 4 x i1> %2, iXLen %3) nounwind {
1467 ; CHECK-LABEL: intrinsic_vslidedown_mask_vi_nxv4i64_nxv4i64:
1468 ; CHECK:       # %bb.0: # %entry
1469 ; CHECK-NEXT:    vsetvli zero, a0, e64, m4, tu, mu
1470 ; CHECK-NEXT:    vslidedown.vi v8, v12, 9, v0.t
1471 ; CHECK-NEXT:    ret
1472 entry:
1473   %a = call <vscale x 4 x i64> @llvm.riscv.vslidedown.mask.nxv4i64(
1474     <vscale x 4 x i64> %0,
1475     <vscale x 4 x i64> %1,
1476     iXLen 9,
1477     <vscale x 4 x i1> %2,
1478     iXLen %3, iXLen 0)
1480   ret <vscale x 4 x i64> %a
1483 declare <vscale x 1 x half> @llvm.riscv.vslidedown.nxv1f16(
1484   <vscale x 1 x half>,
1485   <vscale x 1 x half>,
1486   iXLen,
1487   iXLen,
1488   iXLen);
1490 define <vscale x 1 x half> @intrinsic_vslidedown_vx_nxv1f16_nxv1f16(<vscale x 1 x half> %0, <vscale x 1 x half> %1, iXLen %2, iXLen %3) nounwind {
1491 ; CHECK-LABEL: intrinsic_vslidedown_vx_nxv1f16_nxv1f16:
1492 ; CHECK:       # %bb.0: # %entry
1493 ; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma
1494 ; CHECK-NEXT:    vslidedown.vx v8, v9, a0
1495 ; CHECK-NEXT:    ret
1496 entry:
1497   %a = call <vscale x 1 x half> @llvm.riscv.vslidedown.nxv1f16(
1498     <vscale x 1 x half> %0,
1499     <vscale x 1 x half> %1,
1500     iXLen %2,
1501     iXLen %3,
1502     iXLen 1)
1504   ret <vscale x 1 x half> %a
1507 declare <vscale x 1 x half> @llvm.riscv.vslidedown.mask.nxv1f16(
1508   <vscale x 1 x half>,
1509   <vscale x 1 x half>,
1510   iXLen,
1511   <vscale x 1 x i1>,
1512   iXLen, iXLen);
1514 define <vscale x 1 x half> @intrinsic_vslidedown_mask_vx_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 {
1515 ; CHECK-LABEL: intrinsic_vslidedown_mask_vx_nxv1f16_nxv1f16:
1516 ; CHECK:       # %bb.0: # %entry
1517 ; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, tu, mu
1518 ; CHECK-NEXT:    vslidedown.vx v8, v9, a0, v0.t
1519 ; CHECK-NEXT:    ret
1520 entry:
1521   %a = call <vscale x 1 x half> @llvm.riscv.vslidedown.mask.nxv1f16(
1522     <vscale x 1 x half> %0,
1523     <vscale x 1 x half> %1,
1524     iXLen %2,
1525     <vscale x 1 x i1> %3,
1526     iXLen %4, iXLen 0)
1528   ret <vscale x 1 x half> %a
1531 define <vscale x 1 x half> @intrinsic_vslidedown_vi_nxv1f16_nxv1f16(<vscale x 1 x half> %0, <vscale x 1 x half> %1, iXLen %2) nounwind {
1532 ; CHECK-LABEL: intrinsic_vslidedown_vi_nxv1f16_nxv1f16:
1533 ; CHECK:       # %bb.0: # %entry
1534 ; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma
1535 ; CHECK-NEXT:    vslidedown.vi v8, v9, 9
1536 ; CHECK-NEXT:    ret
1537 entry:
1538   %a = call <vscale x 1 x half> @llvm.riscv.vslidedown.nxv1f16(
1539     <vscale x 1 x half> %0,
1540     <vscale x 1 x half> %1,
1541     iXLen 9,
1542     iXLen %2,
1543     iXLen 1)
1545   ret <vscale x 1 x half> %a
1548 define <vscale x 1 x half> @intrinsic_vslidedown_mask_vi_nxv1f16_nxv1f16(<vscale x 1 x half> %0, <vscale x 1 x half> %1, <vscale x 1 x i1> %2, iXLen %3) nounwind {
1549 ; CHECK-LABEL: intrinsic_vslidedown_mask_vi_nxv1f16_nxv1f16:
1550 ; CHECK:       # %bb.0: # %entry
1551 ; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, tu, mu
1552 ; CHECK-NEXT:    vslidedown.vi v8, v9, 9, v0.t
1553 ; CHECK-NEXT:    ret
1554 entry:
1555   %a = call <vscale x 1 x half> @llvm.riscv.vslidedown.mask.nxv1f16(
1556     <vscale x 1 x half> %0,
1557     <vscale x 1 x half> %1,
1558     iXLen 9,
1559     <vscale x 1 x i1> %2,
1560     iXLen %3, iXLen 0)
1562   ret <vscale x 1 x half> %a
1565 declare <vscale x 2 x half> @llvm.riscv.vslidedown.nxv2f16(
1566   <vscale x 2 x half>,
1567   <vscale x 2 x half>,
1568   iXLen,
1569   iXLen,
1570   iXLen);
1572 define <vscale x 2 x half> @intrinsic_vslidedown_vx_nxv2f16_nxv2f16(<vscale x 2 x half> %0, <vscale x 2 x half> %1, iXLen %2, iXLen %3) nounwind {
1573 ; CHECK-LABEL: intrinsic_vslidedown_vx_nxv2f16_nxv2f16:
1574 ; CHECK:       # %bb.0: # %entry
1575 ; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma
1576 ; CHECK-NEXT:    vslidedown.vx v8, v9, a0
1577 ; CHECK-NEXT:    ret
1578 entry:
1579   %a = call <vscale x 2 x half> @llvm.riscv.vslidedown.nxv2f16(
1580     <vscale x 2 x half> %0,
1581     <vscale x 2 x half> %1,
1582     iXLen %2,
1583     iXLen %3,
1584     iXLen 1)
1586   ret <vscale x 2 x half> %a
1589 declare <vscale x 2 x half> @llvm.riscv.vslidedown.mask.nxv2f16(
1590   <vscale x 2 x half>,
1591   <vscale x 2 x half>,
1592   iXLen,
1593   <vscale x 2 x i1>,
1594   iXLen, iXLen);
1596 define <vscale x 2 x half> @intrinsic_vslidedown_mask_vx_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 {
1597 ; CHECK-LABEL: intrinsic_vslidedown_mask_vx_nxv2f16_nxv2f16:
1598 ; CHECK:       # %bb.0: # %entry
1599 ; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, tu, mu
1600 ; CHECK-NEXT:    vslidedown.vx v8, v9, a0, v0.t
1601 ; CHECK-NEXT:    ret
1602 entry:
1603   %a = call <vscale x 2 x half> @llvm.riscv.vslidedown.mask.nxv2f16(
1604     <vscale x 2 x half> %0,
1605     <vscale x 2 x half> %1,
1606     iXLen %2,
1607     <vscale x 2 x i1> %3,
1608     iXLen %4, iXLen 0)
1610   ret <vscale x 2 x half> %a
1613 define <vscale x 2 x half> @intrinsic_vslidedown_vi_nxv2f16_nxv2f16(<vscale x 2 x half> %0, <vscale x 2 x half> %1, iXLen %2) nounwind {
1614 ; CHECK-LABEL: intrinsic_vslidedown_vi_nxv2f16_nxv2f16:
1615 ; CHECK:       # %bb.0: # %entry
1616 ; CHECK-NEXT:    vsetvli zero, a0, e16, mf2, ta, ma
1617 ; CHECK-NEXT:    vslidedown.vi v8, v9, 9
1618 ; CHECK-NEXT:    ret
1619 entry:
1620   %a = call <vscale x 2 x half> @llvm.riscv.vslidedown.nxv2f16(
1621     <vscale x 2 x half> %0,
1622     <vscale x 2 x half> %1,
1623     iXLen 9,
1624     iXLen %2,
1625     iXLen 1)
1627   ret <vscale x 2 x half> %a
1630 define <vscale x 2 x half> @intrinsic_vslidedown_mask_vi_nxv2f16_nxv2f16(<vscale x 2 x half> %0, <vscale x 2 x half> %1, <vscale x 2 x i1> %2, iXLen %3) nounwind {
1631 ; CHECK-LABEL: intrinsic_vslidedown_mask_vi_nxv2f16_nxv2f16:
1632 ; CHECK:       # %bb.0: # %entry
1633 ; CHECK-NEXT:    vsetvli zero, a0, e16, mf2, tu, mu
1634 ; CHECK-NEXT:    vslidedown.vi v8, v9, 9, v0.t
1635 ; CHECK-NEXT:    ret
1636 entry:
1637   %a = call <vscale x 2 x half> @llvm.riscv.vslidedown.mask.nxv2f16(
1638     <vscale x 2 x half> %0,
1639     <vscale x 2 x half> %1,
1640     iXLen 9,
1641     <vscale x 2 x i1> %2,
1642     iXLen %3, iXLen 0)
1644   ret <vscale x 2 x half> %a
1647 declare <vscale x 4 x half> @llvm.riscv.vslidedown.nxv4f16(
1648   <vscale x 4 x half>,
1649   <vscale x 4 x half>,
1650   iXLen,
1651   iXLen,
1652   iXLen);
1654 define <vscale x 4 x half> @intrinsic_vslidedown_vx_nxv4f16_nxv4f16(<vscale x 4 x half> %0, <vscale x 4 x half> %1, iXLen %2, iXLen %3) nounwind {
1655 ; CHECK-LABEL: intrinsic_vslidedown_vx_nxv4f16_nxv4f16:
1656 ; CHECK:       # %bb.0: # %entry
1657 ; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma
1658 ; CHECK-NEXT:    vslidedown.vx v8, v9, a0
1659 ; CHECK-NEXT:    ret
1660 entry:
1661   %a = call <vscale x 4 x half> @llvm.riscv.vslidedown.nxv4f16(
1662     <vscale x 4 x half> %0,
1663     <vscale x 4 x half> %1,
1664     iXLen %2,
1665     iXLen %3,
1666     iXLen 1)
1668   ret <vscale x 4 x half> %a
1671 declare <vscale x 4 x half> @llvm.riscv.vslidedown.mask.nxv4f16(
1672   <vscale x 4 x half>,
1673   <vscale x 4 x half>,
1674   iXLen,
1675   <vscale x 4 x i1>,
1676   iXLen, iXLen);
1678 define <vscale x 4 x half> @intrinsic_vslidedown_mask_vx_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 {
1679 ; CHECK-LABEL: intrinsic_vslidedown_mask_vx_nxv4f16_nxv4f16:
1680 ; CHECK:       # %bb.0: # %entry
1681 ; CHECK-NEXT:    vsetvli zero, a1, e16, m1, tu, mu
1682 ; CHECK-NEXT:    vslidedown.vx v8, v9, a0, v0.t
1683 ; CHECK-NEXT:    ret
1684 entry:
1685   %a = call <vscale x 4 x half> @llvm.riscv.vslidedown.mask.nxv4f16(
1686     <vscale x 4 x half> %0,
1687     <vscale x 4 x half> %1,
1688     iXLen %2,
1689     <vscale x 4 x i1> %3,
1690     iXLen %4, iXLen 0)
1692   ret <vscale x 4 x half> %a
1695 define <vscale x 4 x half> @intrinsic_vslidedown_vi_nxv4f16_nxv4f16(<vscale x 4 x half> %0, <vscale x 4 x half> %1, iXLen %2) nounwind {
1696 ; CHECK-LABEL: intrinsic_vslidedown_vi_nxv4f16_nxv4f16:
1697 ; CHECK:       # %bb.0: # %entry
1698 ; CHECK-NEXT:    vsetvli zero, a0, e16, m1, ta, ma
1699 ; CHECK-NEXT:    vslidedown.vi v8, v9, 9
1700 ; CHECK-NEXT:    ret
1701 entry:
1702   %a = call <vscale x 4 x half> @llvm.riscv.vslidedown.nxv4f16(
1703     <vscale x 4 x half> %0,
1704     <vscale x 4 x half> %1,
1705     iXLen 9,
1706     iXLen %2,
1707     iXLen 1)
1709   ret <vscale x 4 x half> %a
1712 define <vscale x 4 x half> @intrinsic_vslidedown_mask_vi_nxv4f16_nxv4f16(<vscale x 4 x half> %0, <vscale x 4 x half> %1, <vscale x 4 x i1> %2, iXLen %3) nounwind {
1713 ; CHECK-LABEL: intrinsic_vslidedown_mask_vi_nxv4f16_nxv4f16:
1714 ; CHECK:       # %bb.0: # %entry
1715 ; CHECK-NEXT:    vsetvli zero, a0, e16, m1, tu, mu
1716 ; CHECK-NEXT:    vslidedown.vi v8, v9, 9, v0.t
1717 ; CHECK-NEXT:    ret
1718 entry:
1719   %a = call <vscale x 4 x half> @llvm.riscv.vslidedown.mask.nxv4f16(
1720     <vscale x 4 x half> %0,
1721     <vscale x 4 x half> %1,
1722     iXLen 9,
1723     <vscale x 4 x i1> %2,
1724     iXLen %3, iXLen 0)
1726   ret <vscale x 4 x half> %a
1729 declare <vscale x 8 x half> @llvm.riscv.vslidedown.nxv8f16(
1730   <vscale x 8 x half>,
1731   <vscale x 8 x half>,
1732   iXLen,
1733   iXLen,
1734   iXLen);
1736 define <vscale x 8 x half> @intrinsic_vslidedown_vx_nxv8f16_nxv8f16(<vscale x 8 x half> %0, <vscale x 8 x half> %1, iXLen %2, iXLen %3) nounwind {
1737 ; CHECK-LABEL: intrinsic_vslidedown_vx_nxv8f16_nxv8f16:
1738 ; CHECK:       # %bb.0: # %entry
1739 ; CHECK-NEXT:    vsetvli zero, a1, e16, m2, ta, ma
1740 ; CHECK-NEXT:    vslidedown.vx v8, v10, a0
1741 ; CHECK-NEXT:    ret
1742 entry:
1743   %a = call <vscale x 8 x half> @llvm.riscv.vslidedown.nxv8f16(
1744     <vscale x 8 x half> %0,
1745     <vscale x 8 x half> %1,
1746     iXLen %2,
1747     iXLen %3,
1748     iXLen 1)
1750   ret <vscale x 8 x half> %a
1753 declare <vscale x 8 x half> @llvm.riscv.vslidedown.mask.nxv8f16(
1754   <vscale x 8 x half>,
1755   <vscale x 8 x half>,
1756   iXLen,
1757   <vscale x 8 x i1>,
1758   iXLen, iXLen);
1760 define <vscale x 8 x half> @intrinsic_vslidedown_mask_vx_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 {
1761 ; CHECK-LABEL: intrinsic_vslidedown_mask_vx_nxv8f16_nxv8f16:
1762 ; CHECK:       # %bb.0: # %entry
1763 ; CHECK-NEXT:    vsetvli zero, a1, e16, m2, tu, mu
1764 ; CHECK-NEXT:    vslidedown.vx v8, v10, a0, v0.t
1765 ; CHECK-NEXT:    ret
1766 entry:
1767   %a = call <vscale x 8 x half> @llvm.riscv.vslidedown.mask.nxv8f16(
1768     <vscale x 8 x half> %0,
1769     <vscale x 8 x half> %1,
1770     iXLen %2,
1771     <vscale x 8 x i1> %3,
1772     iXLen %4, iXLen 0)
1774   ret <vscale x 8 x half> %a
1777 define <vscale x 8 x half> @intrinsic_vslidedown_vi_nxv8f16_nxv8f16(<vscale x 8 x half> %0, <vscale x 8 x half> %1, iXLen %2) nounwind {
1778 ; CHECK-LABEL: intrinsic_vslidedown_vi_nxv8f16_nxv8f16:
1779 ; CHECK:       # %bb.0: # %entry
1780 ; CHECK-NEXT:    vsetvli zero, a0, e16, m2, ta, ma
1781 ; CHECK-NEXT:    vslidedown.vi v8, v10, 9
1782 ; CHECK-NEXT:    ret
1783 entry:
1784   %a = call <vscale x 8 x half> @llvm.riscv.vslidedown.nxv8f16(
1785     <vscale x 8 x half> %0,
1786     <vscale x 8 x half> %1,
1787     iXLen 9,
1788     iXLen %2,
1789     iXLen 1)
1791   ret <vscale x 8 x half> %a
1794 define <vscale x 8 x half> @intrinsic_vslidedown_mask_vi_nxv8f16_nxv8f16(<vscale x 8 x half> %0, <vscale x 8 x half> %1, <vscale x 8 x i1> %2, iXLen %3) nounwind {
1795 ; CHECK-LABEL: intrinsic_vslidedown_mask_vi_nxv8f16_nxv8f16:
1796 ; CHECK:       # %bb.0: # %entry
1797 ; CHECK-NEXT:    vsetvli zero, a0, e16, m2, tu, mu
1798 ; CHECK-NEXT:    vslidedown.vi v8, v10, 9, v0.t
1799 ; CHECK-NEXT:    ret
1800 entry:
1801   %a = call <vscale x 8 x half> @llvm.riscv.vslidedown.mask.nxv8f16(
1802     <vscale x 8 x half> %0,
1803     <vscale x 8 x half> %1,
1804     iXLen 9,
1805     <vscale x 8 x i1> %2,
1806     iXLen %3, iXLen 0)
1808   ret <vscale x 8 x half> %a
1811 declare <vscale x 16 x half> @llvm.riscv.vslidedown.nxv16f16(
1812   <vscale x 16 x half>,
1813   <vscale x 16 x half>,
1814   iXLen,
1815   iXLen,
1816   iXLen);
1818 define <vscale x 16 x half> @intrinsic_vslidedown_vx_nxv16f16_nxv16f16(<vscale x 16 x half> %0, <vscale x 16 x half> %1, iXLen %2, iXLen %3) nounwind {
1819 ; CHECK-LABEL: intrinsic_vslidedown_vx_nxv16f16_nxv16f16:
1820 ; CHECK:       # %bb.0: # %entry
1821 ; CHECK-NEXT:    vsetvli zero, a1, e16, m4, ta, ma
1822 ; CHECK-NEXT:    vslidedown.vx v8, v12, a0
1823 ; CHECK-NEXT:    ret
1824 entry:
1825   %a = call <vscale x 16 x half> @llvm.riscv.vslidedown.nxv16f16(
1826     <vscale x 16 x half> %0,
1827     <vscale x 16 x half> %1,
1828     iXLen %2,
1829     iXLen %3,
1830     iXLen 1)
1832   ret <vscale x 16 x half> %a
1835 declare <vscale x 16 x half> @llvm.riscv.vslidedown.mask.nxv16f16(
1836   <vscale x 16 x half>,
1837   <vscale x 16 x half>,
1838   iXLen,
1839   <vscale x 16 x i1>,
1840   iXLen, iXLen);
1842 define <vscale x 16 x half> @intrinsic_vslidedown_mask_vx_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 {
1843 ; CHECK-LABEL: intrinsic_vslidedown_mask_vx_nxv16f16_nxv16f16:
1844 ; CHECK:       # %bb.0: # %entry
1845 ; CHECK-NEXT:    vsetvli zero, a1, e16, m4, tu, mu
1846 ; CHECK-NEXT:    vslidedown.vx v8, v12, a0, v0.t
1847 ; CHECK-NEXT:    ret
1848 entry:
1849   %a = call <vscale x 16 x half> @llvm.riscv.vslidedown.mask.nxv16f16(
1850     <vscale x 16 x half> %0,
1851     <vscale x 16 x half> %1,
1852     iXLen %2,
1853     <vscale x 16 x i1> %3,
1854     iXLen %4, iXLen 0)
1856   ret <vscale x 16 x half> %a
1859 define <vscale x 16 x half> @intrinsic_vslidedown_vi_nxv16f16_nxv16f16(<vscale x 16 x half> %0, <vscale x 16 x half> %1, iXLen %2) nounwind {
1860 ; CHECK-LABEL: intrinsic_vslidedown_vi_nxv16f16_nxv16f16:
1861 ; CHECK:       # %bb.0: # %entry
1862 ; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, ma
1863 ; CHECK-NEXT:    vslidedown.vi v8, v12, 9
1864 ; CHECK-NEXT:    ret
1865 entry:
1866   %a = call <vscale x 16 x half> @llvm.riscv.vslidedown.nxv16f16(
1867     <vscale x 16 x half> %0,
1868     <vscale x 16 x half> %1,
1869     iXLen 9,
1870     iXLen %2,
1871     iXLen 1)
1873   ret <vscale x 16 x half> %a
1876 define <vscale x 16 x half> @intrinsic_vslidedown_mask_vi_nxv16f16_nxv16f16(<vscale x 16 x half> %0, <vscale x 16 x half> %1, <vscale x 16 x i1> %2, iXLen %3) nounwind {
1877 ; CHECK-LABEL: intrinsic_vslidedown_mask_vi_nxv16f16_nxv16f16:
1878 ; CHECK:       # %bb.0: # %entry
1879 ; CHECK-NEXT:    vsetvli zero, a0, e16, m4, tu, mu
1880 ; CHECK-NEXT:    vslidedown.vi v8, v12, 9, v0.t
1881 ; CHECK-NEXT:    ret
1882 entry:
1883   %a = call <vscale x 16 x half> @llvm.riscv.vslidedown.mask.nxv16f16(
1884     <vscale x 16 x half> %0,
1885     <vscale x 16 x half> %1,
1886     iXLen 9,
1887     <vscale x 16 x i1> %2,
1888     iXLen %3, iXLen 0)
1890   ret <vscale x 16 x half> %a
1893 declare <vscale x 1 x float> @llvm.riscv.vslidedown.nxv1f32(
1894   <vscale x 1 x float>,
1895   <vscale x 1 x float>,
1896   iXLen,
1897   iXLen,
1898   iXLen);
1900 define <vscale x 1 x float> @intrinsic_vslidedown_vx_nxv1f32_nxv1f32(<vscale x 1 x float> %0, <vscale x 1 x float> %1, iXLen %2, iXLen %3) nounwind {
1901 ; CHECK-LABEL: intrinsic_vslidedown_vx_nxv1f32_nxv1f32:
1902 ; CHECK:       # %bb.0: # %entry
1903 ; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, ta, ma
1904 ; CHECK-NEXT:    vslidedown.vx v8, v9, a0
1905 ; CHECK-NEXT:    ret
1906 entry:
1907   %a = call <vscale x 1 x float> @llvm.riscv.vslidedown.nxv1f32(
1908     <vscale x 1 x float> %0,
1909     <vscale x 1 x float> %1,
1910     iXLen %2,
1911     iXLen %3,
1912     iXLen 1)
1914   ret <vscale x 1 x float> %a
1917 declare <vscale x 1 x float> @llvm.riscv.vslidedown.mask.nxv1f32(
1918   <vscale x 1 x float>,
1919   <vscale x 1 x float>,
1920   iXLen,
1921   <vscale x 1 x i1>,
1922   iXLen, iXLen);
1924 define <vscale x 1 x float> @intrinsic_vslidedown_mask_vx_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 {
1925 ; CHECK-LABEL: intrinsic_vslidedown_mask_vx_nxv1f32_nxv1f32:
1926 ; CHECK:       # %bb.0: # %entry
1927 ; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, tu, mu
1928 ; CHECK-NEXT:    vslidedown.vx v8, v9, a0, v0.t
1929 ; CHECK-NEXT:    ret
1930 entry:
1931   %a = call <vscale x 1 x float> @llvm.riscv.vslidedown.mask.nxv1f32(
1932     <vscale x 1 x float> %0,
1933     <vscale x 1 x float> %1,
1934     iXLen %2,
1935     <vscale x 1 x i1> %3,
1936     iXLen %4, iXLen 0)
1938   ret <vscale x 1 x float> %a
1941 define <vscale x 1 x float> @intrinsic_vslidedown_vi_nxv1f32_nxv1f32(<vscale x 1 x float> %0, <vscale x 1 x float> %1, iXLen %2) nounwind {
1942 ; CHECK-LABEL: intrinsic_vslidedown_vi_nxv1f32_nxv1f32:
1943 ; CHECK:       # %bb.0: # %entry
1944 ; CHECK-NEXT:    vsetvli zero, a0, e32, mf2, ta, ma
1945 ; CHECK-NEXT:    vslidedown.vi v8, v9, 9
1946 ; CHECK-NEXT:    ret
1947 entry:
1948   %a = call <vscale x 1 x float> @llvm.riscv.vslidedown.nxv1f32(
1949     <vscale x 1 x float> %0,
1950     <vscale x 1 x float> %1,
1951     iXLen 9,
1952     iXLen %2,
1953     iXLen 1)
1955   ret <vscale x 1 x float> %a
1958 define <vscale x 1 x float> @intrinsic_vslidedown_mask_vi_nxv1f32_nxv1f32(<vscale x 1 x float> %0, <vscale x 1 x float> %1, <vscale x 1 x i1> %2, iXLen %3) nounwind {
1959 ; CHECK-LABEL: intrinsic_vslidedown_mask_vi_nxv1f32_nxv1f32:
1960 ; CHECK:       # %bb.0: # %entry
1961 ; CHECK-NEXT:    vsetvli zero, a0, e32, mf2, tu, mu
1962 ; CHECK-NEXT:    vslidedown.vi v8, v9, 9, v0.t
1963 ; CHECK-NEXT:    ret
1964 entry:
1965   %a = call <vscale x 1 x float> @llvm.riscv.vslidedown.mask.nxv1f32(
1966     <vscale x 1 x float> %0,
1967     <vscale x 1 x float> %1,
1968     iXLen 9,
1969     <vscale x 1 x i1> %2,
1970     iXLen %3, iXLen 0)
1972   ret <vscale x 1 x float> %a
1975 declare <vscale x 2 x float> @llvm.riscv.vslidedown.nxv2f32(
1976   <vscale x 2 x float>,
1977   <vscale x 2 x float>,
1978   iXLen,
1979   iXLen,
1980   iXLen);
1982 define <vscale x 2 x float> @intrinsic_vslidedown_vx_nxv2f32_nxv2f32(<vscale x 2 x float> %0, <vscale x 2 x float> %1, iXLen %2, iXLen %3) nounwind {
1983 ; CHECK-LABEL: intrinsic_vslidedown_vx_nxv2f32_nxv2f32:
1984 ; CHECK:       # %bb.0: # %entry
1985 ; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, ma
1986 ; CHECK-NEXT:    vslidedown.vx v8, v9, a0
1987 ; CHECK-NEXT:    ret
1988 entry:
1989   %a = call <vscale x 2 x float> @llvm.riscv.vslidedown.nxv2f32(
1990     <vscale x 2 x float> %0,
1991     <vscale x 2 x float> %1,
1992     iXLen %2,
1993     iXLen %3,
1994     iXLen 1)
1996   ret <vscale x 2 x float> %a
1999 declare <vscale x 2 x float> @llvm.riscv.vslidedown.mask.nxv2f32(
2000   <vscale x 2 x float>,
2001   <vscale x 2 x float>,
2002   iXLen,
2003   <vscale x 2 x i1>,
2004   iXLen, iXLen);
2006 define <vscale x 2 x float> @intrinsic_vslidedown_mask_vx_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 {
2007 ; CHECK-LABEL: intrinsic_vslidedown_mask_vx_nxv2f32_nxv2f32:
2008 ; CHECK:       # %bb.0: # %entry
2009 ; CHECK-NEXT:    vsetvli zero, a1, e32, m1, tu, mu
2010 ; CHECK-NEXT:    vslidedown.vx v8, v9, a0, v0.t
2011 ; CHECK-NEXT:    ret
2012 entry:
2013   %a = call <vscale x 2 x float> @llvm.riscv.vslidedown.mask.nxv2f32(
2014     <vscale x 2 x float> %0,
2015     <vscale x 2 x float> %1,
2016     iXLen %2,
2017     <vscale x 2 x i1> %3,
2018     iXLen %4, iXLen 0)
2020   ret <vscale x 2 x float> %a
2023 define <vscale x 2 x float> @intrinsic_vslidedown_vi_nxv2f32_nxv2f32(<vscale x 2 x float> %0, <vscale x 2 x float> %1, iXLen %2) nounwind {
2024 ; CHECK-LABEL: intrinsic_vslidedown_vi_nxv2f32_nxv2f32:
2025 ; CHECK:       # %bb.0: # %entry
2026 ; CHECK-NEXT:    vsetvli zero, a0, e32, m1, ta, ma
2027 ; CHECK-NEXT:    vslidedown.vi v8, v9, 9
2028 ; CHECK-NEXT:    ret
2029 entry:
2030   %a = call <vscale x 2 x float> @llvm.riscv.vslidedown.nxv2f32(
2031     <vscale x 2 x float> %0,
2032     <vscale x 2 x float> %1,
2033     iXLen 9,
2034     iXLen %2,
2035     iXLen 1)
2037   ret <vscale x 2 x float> %a
2040 define <vscale x 2 x float> @intrinsic_vslidedown_mask_vi_nxv2f32_nxv2f32(<vscale x 2 x float> %0, <vscale x 2 x float> %1, <vscale x 2 x i1> %2, iXLen %3) nounwind {
2041 ; CHECK-LABEL: intrinsic_vslidedown_mask_vi_nxv2f32_nxv2f32:
2042 ; CHECK:       # %bb.0: # %entry
2043 ; CHECK-NEXT:    vsetvli zero, a0, e32, m1, tu, mu
2044 ; CHECK-NEXT:    vslidedown.vi v8, v9, 9, v0.t
2045 ; CHECK-NEXT:    ret
2046 entry:
2047   %a = call <vscale x 2 x float> @llvm.riscv.vslidedown.mask.nxv2f32(
2048     <vscale x 2 x float> %0,
2049     <vscale x 2 x float> %1,
2050     iXLen 9,
2051     <vscale x 2 x i1> %2,
2052     iXLen %3, iXLen 0)
2054   ret <vscale x 2 x float> %a
2057 declare <vscale x 4 x float> @llvm.riscv.vslidedown.nxv4f32(
2058   <vscale x 4 x float>,
2059   <vscale x 4 x float>,
2060   iXLen,
2061   iXLen,
2062   iXLen);
2064 define <vscale x 4 x float> @intrinsic_vslidedown_vx_nxv4f32_nxv4f32(<vscale x 4 x float> %0, <vscale x 4 x float> %1, iXLen %2, iXLen %3) nounwind {
2065 ; CHECK-LABEL: intrinsic_vslidedown_vx_nxv4f32_nxv4f32:
2066 ; CHECK:       # %bb.0: # %entry
2067 ; CHECK-NEXT:    vsetvli zero, a1, e32, m2, ta, ma
2068 ; CHECK-NEXT:    vslidedown.vx v8, v10, a0
2069 ; CHECK-NEXT:    ret
2070 entry:
2071   %a = call <vscale x 4 x float> @llvm.riscv.vslidedown.nxv4f32(
2072     <vscale x 4 x float> %0,
2073     <vscale x 4 x float> %1,
2074     iXLen %2,
2075     iXLen %3,
2076     iXLen 1)
2078   ret <vscale x 4 x float> %a
2081 declare <vscale x 4 x float> @llvm.riscv.vslidedown.mask.nxv4f32(
2082   <vscale x 4 x float>,
2083   <vscale x 4 x float>,
2084   iXLen,
2085   <vscale x 4 x i1>,
2086   iXLen, iXLen);
2088 define <vscale x 4 x float> @intrinsic_vslidedown_mask_vx_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 {
2089 ; CHECK-LABEL: intrinsic_vslidedown_mask_vx_nxv4f32_nxv4f32:
2090 ; CHECK:       # %bb.0: # %entry
2091 ; CHECK-NEXT:    vsetvli zero, a1, e32, m2, tu, mu
2092 ; CHECK-NEXT:    vslidedown.vx v8, v10, a0, v0.t
2093 ; CHECK-NEXT:    ret
2094 entry:
2095   %a = call <vscale x 4 x float> @llvm.riscv.vslidedown.mask.nxv4f32(
2096     <vscale x 4 x float> %0,
2097     <vscale x 4 x float> %1,
2098     iXLen %2,
2099     <vscale x 4 x i1> %3,
2100     iXLen %4, iXLen 0)
2102   ret <vscale x 4 x float> %a
2105 define <vscale x 4 x float> @intrinsic_vslidedown_vi_nxv4f32_nxv4f32(<vscale x 4 x float> %0, <vscale x 4 x float> %1, iXLen %2) nounwind {
2106 ; CHECK-LABEL: intrinsic_vslidedown_vi_nxv4f32_nxv4f32:
2107 ; CHECK:       # %bb.0: # %entry
2108 ; CHECK-NEXT:    vsetvli zero, a0, e32, m2, ta, ma
2109 ; CHECK-NEXT:    vslidedown.vi v8, v10, 9
2110 ; CHECK-NEXT:    ret
2111 entry:
2112   %a = call <vscale x 4 x float> @llvm.riscv.vslidedown.nxv4f32(
2113     <vscale x 4 x float> %0,
2114     <vscale x 4 x float> %1,
2115     iXLen 9,
2116     iXLen %2,
2117     iXLen 1)
2119   ret <vscale x 4 x float> %a
2122 define <vscale x 4 x float> @intrinsic_vslidedown_mask_vi_nxv4f32_nxv4f32(<vscale x 4 x float> %0, <vscale x 4 x float> %1, <vscale x 4 x i1> %2, iXLen %3) nounwind {
2123 ; CHECK-LABEL: intrinsic_vslidedown_mask_vi_nxv4f32_nxv4f32:
2124 ; CHECK:       # %bb.0: # %entry
2125 ; CHECK-NEXT:    vsetvli zero, a0, e32, m2, tu, mu
2126 ; CHECK-NEXT:    vslidedown.vi v8, v10, 9, v0.t
2127 ; CHECK-NEXT:    ret
2128 entry:
2129   %a = call <vscale x 4 x float> @llvm.riscv.vslidedown.mask.nxv4f32(
2130     <vscale x 4 x float> %0,
2131     <vscale x 4 x float> %1,
2132     iXLen 9,
2133     <vscale x 4 x i1> %2,
2134     iXLen %3, iXLen 0)
2136   ret <vscale x 4 x float> %a
2139 declare <vscale x 8 x float> @llvm.riscv.vslidedown.nxv8f32(
2140   <vscale x 8 x float>,
2141   <vscale x 8 x float>,
2142   iXLen,
2143   iXLen,
2144   iXLen);
2146 define <vscale x 8 x float> @intrinsic_vslidedown_vx_nxv8f32_nxv8f32(<vscale x 8 x float> %0, <vscale x 8 x float> %1, iXLen %2, iXLen %3) nounwind {
2147 ; CHECK-LABEL: intrinsic_vslidedown_vx_nxv8f32_nxv8f32:
2148 ; CHECK:       # %bb.0: # %entry
2149 ; CHECK-NEXT:    vsetvli zero, a1, e32, m4, ta, ma
2150 ; CHECK-NEXT:    vslidedown.vx v8, v12, a0
2151 ; CHECK-NEXT:    ret
2152 entry:
2153   %a = call <vscale x 8 x float> @llvm.riscv.vslidedown.nxv8f32(
2154     <vscale x 8 x float> %0,
2155     <vscale x 8 x float> %1,
2156     iXLen %2,
2157     iXLen %3,
2158     iXLen 1)
2160   ret <vscale x 8 x float> %a
2163 declare <vscale x 8 x float> @llvm.riscv.vslidedown.mask.nxv8f32(
2164   <vscale x 8 x float>,
2165   <vscale x 8 x float>,
2166   iXLen,
2167   <vscale x 8 x i1>,
2168   iXLen, iXLen);
2170 define <vscale x 8 x float> @intrinsic_vslidedown_mask_vx_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 {
2171 ; CHECK-LABEL: intrinsic_vslidedown_mask_vx_nxv8f32_nxv8f32:
2172 ; CHECK:       # %bb.0: # %entry
2173 ; CHECK-NEXT:    vsetvli zero, a1, e32, m4, tu, mu
2174 ; CHECK-NEXT:    vslidedown.vx v8, v12, a0, v0.t
2175 ; CHECK-NEXT:    ret
2176 entry:
2177   %a = call <vscale x 8 x float> @llvm.riscv.vslidedown.mask.nxv8f32(
2178     <vscale x 8 x float> %0,
2179     <vscale x 8 x float> %1,
2180     iXLen %2,
2181     <vscale x 8 x i1> %3,
2182     iXLen %4, iXLen 0)
2184   ret <vscale x 8 x float> %a
2187 define <vscale x 8 x float> @intrinsic_vslidedown_vi_nxv8f32_nxv8f32(<vscale x 8 x float> %0, <vscale x 8 x float> %1, iXLen %2) nounwind {
2188 ; CHECK-LABEL: intrinsic_vslidedown_vi_nxv8f32_nxv8f32:
2189 ; CHECK:       # %bb.0: # %entry
2190 ; CHECK-NEXT:    vsetvli zero, a0, e32, m4, ta, ma
2191 ; CHECK-NEXT:    vslidedown.vi v8, v12, 9
2192 ; CHECK-NEXT:    ret
2193 entry:
2194   %a = call <vscale x 8 x float> @llvm.riscv.vslidedown.nxv8f32(
2195     <vscale x 8 x float> %0,
2196     <vscale x 8 x float> %1,
2197     iXLen 9,
2198     iXLen %2,
2199     iXLen 1)
2201   ret <vscale x 8 x float> %a
2204 define <vscale x 8 x float> @intrinsic_vslidedown_mask_vi_nxv8f32_nxv8f32(<vscale x 8 x float> %0, <vscale x 8 x float> %1, <vscale x 8 x i1> %2, iXLen %3) nounwind {
2205 ; CHECK-LABEL: intrinsic_vslidedown_mask_vi_nxv8f32_nxv8f32:
2206 ; CHECK:       # %bb.0: # %entry
2207 ; CHECK-NEXT:    vsetvli zero, a0, e32, m4, tu, mu
2208 ; CHECK-NEXT:    vslidedown.vi v8, v12, 9, v0.t
2209 ; CHECK-NEXT:    ret
2210 entry:
2211   %a = call <vscale x 8 x float> @llvm.riscv.vslidedown.mask.nxv8f32(
2212     <vscale x 8 x float> %0,
2213     <vscale x 8 x float> %1,
2214     iXLen 9,
2215     <vscale x 8 x i1> %2,
2216     iXLen %3, iXLen 0)
2218   ret <vscale x 8 x float> %a
2221 declare <vscale x 1 x double> @llvm.riscv.vslidedown.nxv1f64(
2222   <vscale x 1 x double>,
2223   <vscale x 1 x double>,
2224   iXLen,
2225   iXLen,
2226   iXLen);
2228 define <vscale x 1 x double> @intrinsic_vslidedown_vx_nxv1f64_nxv1f64(<vscale x 1 x double> %0, <vscale x 1 x double> %1, iXLen %2, iXLen %3) nounwind {
2229 ; CHECK-LABEL: intrinsic_vslidedown_vx_nxv1f64_nxv1f64:
2230 ; CHECK:       # %bb.0: # %entry
2231 ; CHECK-NEXT:    vsetvli zero, a1, e64, m1, ta, ma
2232 ; CHECK-NEXT:    vslidedown.vx v8, v9, a0
2233 ; CHECK-NEXT:    ret
2234 entry:
2235   %a = call <vscale x 1 x double> @llvm.riscv.vslidedown.nxv1f64(
2236     <vscale x 1 x double> %0,
2237     <vscale x 1 x double> %1,
2238     iXLen %2,
2239     iXLen %3,
2240     iXLen 1)
2242   ret <vscale x 1 x double> %a
2245 declare <vscale x 1 x double> @llvm.riscv.vslidedown.mask.nxv1f64(
2246   <vscale x 1 x double>,
2247   <vscale x 1 x double>,
2248   iXLen,
2249   <vscale x 1 x i1>,
2250   iXLen, iXLen);
2252 define <vscale x 1 x double> @intrinsic_vslidedown_mask_vx_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 {
2253 ; CHECK-LABEL: intrinsic_vslidedown_mask_vx_nxv1f64_nxv1f64:
2254 ; CHECK:       # %bb.0: # %entry
2255 ; CHECK-NEXT:    vsetvli zero, a1, e64, m1, tu, mu
2256 ; CHECK-NEXT:    vslidedown.vx v8, v9, a0, v0.t
2257 ; CHECK-NEXT:    ret
2258 entry:
2259   %a = call <vscale x 1 x double> @llvm.riscv.vslidedown.mask.nxv1f64(
2260     <vscale x 1 x double> %0,
2261     <vscale x 1 x double> %1,
2262     iXLen %2,
2263     <vscale x 1 x i1> %3,
2264     iXLen %4, iXLen 0)
2266   ret <vscale x 1 x double> %a
2269 define <vscale x 1 x double> @intrinsic_vslidedown_vi_nxv1f64_nxv1f64(<vscale x 1 x double> %0, <vscale x 1 x double> %1, iXLen %2) nounwind {
2270 ; CHECK-LABEL: intrinsic_vslidedown_vi_nxv1f64_nxv1f64:
2271 ; CHECK:       # %bb.0: # %entry
2272 ; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, ma
2273 ; CHECK-NEXT:    vslidedown.vi v8, v9, 9
2274 ; CHECK-NEXT:    ret
2275 entry:
2276   %a = call <vscale x 1 x double> @llvm.riscv.vslidedown.nxv1f64(
2277     <vscale x 1 x double> %0,
2278     <vscale x 1 x double> %1,
2279     iXLen 9,
2280     iXLen %2,
2281     iXLen 1)
2283   ret <vscale x 1 x double> %a
2286 define <vscale x 1 x double> @intrinsic_vslidedown_mask_vi_nxv1f64_nxv1f64(<vscale x 1 x double> %0, <vscale x 1 x double> %1, <vscale x 1 x i1> %2, iXLen %3) nounwind {
2287 ; CHECK-LABEL: intrinsic_vslidedown_mask_vi_nxv1f64_nxv1f64:
2288 ; CHECK:       # %bb.0: # %entry
2289 ; CHECK-NEXT:    vsetvli zero, a0, e64, m1, tu, mu
2290 ; CHECK-NEXT:    vslidedown.vi v8, v9, 9, v0.t
2291 ; CHECK-NEXT:    ret
2292 entry:
2293   %a = call <vscale x 1 x double> @llvm.riscv.vslidedown.mask.nxv1f64(
2294     <vscale x 1 x double> %0,
2295     <vscale x 1 x double> %1,
2296     iXLen 9,
2297     <vscale x 1 x i1> %2,
2298     iXLen %3, iXLen 0)
2300   ret <vscale x 1 x double> %a
2303 declare <vscale x 2 x double> @llvm.riscv.vslidedown.nxv2f64(
2304   <vscale x 2 x double>,
2305   <vscale x 2 x double>,
2306   iXLen,
2307   iXLen,
2308   iXLen);
2310 define <vscale x 2 x double> @intrinsic_vslidedown_vx_nxv2f64_nxv2f64(<vscale x 2 x double> %0, <vscale x 2 x double> %1, iXLen %2, iXLen %3) nounwind {
2311 ; CHECK-LABEL: intrinsic_vslidedown_vx_nxv2f64_nxv2f64:
2312 ; CHECK:       # %bb.0: # %entry
2313 ; CHECK-NEXT:    vsetvli zero, a1, e64, m2, ta, ma
2314 ; CHECK-NEXT:    vslidedown.vx v8, v10, a0
2315 ; CHECK-NEXT:    ret
2316 entry:
2317   %a = call <vscale x 2 x double> @llvm.riscv.vslidedown.nxv2f64(
2318     <vscale x 2 x double> %0,
2319     <vscale x 2 x double> %1,
2320     iXLen %2,
2321     iXLen %3,
2322     iXLen 1)
2324   ret <vscale x 2 x double> %a
2327 declare <vscale x 2 x double> @llvm.riscv.vslidedown.mask.nxv2f64(
2328   <vscale x 2 x double>,
2329   <vscale x 2 x double>,
2330   iXLen,
2331   <vscale x 2 x i1>,
2332   iXLen, iXLen);
2334 define <vscale x 2 x double> @intrinsic_vslidedown_mask_vx_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 {
2335 ; CHECK-LABEL: intrinsic_vslidedown_mask_vx_nxv2f64_nxv2f64:
2336 ; CHECK:       # %bb.0: # %entry
2337 ; CHECK-NEXT:    vsetvli zero, a1, e64, m2, tu, mu
2338 ; CHECK-NEXT:    vslidedown.vx v8, v10, a0, v0.t
2339 ; CHECK-NEXT:    ret
2340 entry:
2341   %a = call <vscale x 2 x double> @llvm.riscv.vslidedown.mask.nxv2f64(
2342     <vscale x 2 x double> %0,
2343     <vscale x 2 x double> %1,
2344     iXLen %2,
2345     <vscale x 2 x i1> %3,
2346     iXLen %4, iXLen 0)
2348   ret <vscale x 2 x double> %a
2351 define <vscale x 2 x double> @intrinsic_vslidedown_vi_nxv2f64_nxv2f64(<vscale x 2 x double> %0, <vscale x 2 x double> %1, iXLen %2) nounwind {
2352 ; CHECK-LABEL: intrinsic_vslidedown_vi_nxv2f64_nxv2f64:
2353 ; CHECK:       # %bb.0: # %entry
2354 ; CHECK-NEXT:    vsetvli zero, a0, e64, m2, ta, ma
2355 ; CHECK-NEXT:    vslidedown.vi v8, v10, 9
2356 ; CHECK-NEXT:    ret
2357 entry:
2358   %a = call <vscale x 2 x double> @llvm.riscv.vslidedown.nxv2f64(
2359     <vscale x 2 x double> %0,
2360     <vscale x 2 x double> %1,
2361     iXLen 9,
2362     iXLen %2,
2363     iXLen 1)
2365   ret <vscale x 2 x double> %a
2368 define <vscale x 2 x double> @intrinsic_vslidedown_mask_vi_nxv2f64_nxv2f64(<vscale x 2 x double> %0, <vscale x 2 x double> %1, <vscale x 2 x i1> %2, iXLen %3) nounwind {
2369 ; CHECK-LABEL: intrinsic_vslidedown_mask_vi_nxv2f64_nxv2f64:
2370 ; CHECK:       # %bb.0: # %entry
2371 ; CHECK-NEXT:    vsetvli zero, a0, e64, m2, tu, mu
2372 ; CHECK-NEXT:    vslidedown.vi v8, v10, 9, v0.t
2373 ; CHECK-NEXT:    ret
2374 entry:
2375   %a = call <vscale x 2 x double> @llvm.riscv.vslidedown.mask.nxv2f64(
2376     <vscale x 2 x double> %0,
2377     <vscale x 2 x double> %1,
2378     iXLen 9,
2379     <vscale x 2 x i1> %2,
2380     iXLen %3, iXLen 0)
2382   ret <vscale x 2 x double> %a
2385 declare <vscale x 4 x double> @llvm.riscv.vslidedown.nxv4f64(
2386   <vscale x 4 x double>,
2387   <vscale x 4 x double>,
2388   iXLen,
2389   iXLen,
2390   iXLen);
2392 define <vscale x 4 x double> @intrinsic_vslidedown_vx_nxv4f64_nxv4f64(<vscale x 4 x double> %0, <vscale x 4 x double> %1, iXLen %2, iXLen %3) nounwind {
2393 ; CHECK-LABEL: intrinsic_vslidedown_vx_nxv4f64_nxv4f64:
2394 ; CHECK:       # %bb.0: # %entry
2395 ; CHECK-NEXT:    vsetvli zero, a1, e64, m4, ta, ma
2396 ; CHECK-NEXT:    vslidedown.vx v8, v12, a0
2397 ; CHECK-NEXT:    ret
2398 entry:
2399   %a = call <vscale x 4 x double> @llvm.riscv.vslidedown.nxv4f64(
2400     <vscale x 4 x double> %0,
2401     <vscale x 4 x double> %1,
2402     iXLen %2,
2403     iXLen %3,
2404     iXLen 1)
2406   ret <vscale x 4 x double> %a
2409 declare <vscale x 4 x double> @llvm.riscv.vslidedown.mask.nxv4f64(
2410   <vscale x 4 x double>,
2411   <vscale x 4 x double>,
2412   iXLen,
2413   <vscale x 4 x i1>,
2414   iXLen, iXLen);
2416 define <vscale x 4 x double> @intrinsic_vslidedown_mask_vx_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 {
2417 ; CHECK-LABEL: intrinsic_vslidedown_mask_vx_nxv4f64_nxv4f64:
2418 ; CHECK:       # %bb.0: # %entry
2419 ; CHECK-NEXT:    vsetvli zero, a1, e64, m4, tu, mu
2420 ; CHECK-NEXT:    vslidedown.vx v8, v12, a0, v0.t
2421 ; CHECK-NEXT:    ret
2422 entry:
2423   %a = call <vscale x 4 x double> @llvm.riscv.vslidedown.mask.nxv4f64(
2424     <vscale x 4 x double> %0,
2425     <vscale x 4 x double> %1,
2426     iXLen %2,
2427     <vscale x 4 x i1> %3,
2428     iXLen %4, iXLen 0)
2430   ret <vscale x 4 x double> %a
2433 define <vscale x 4 x double> @intrinsic_vslidedown_vi_nxv4f64_nxv4f64(<vscale x 4 x double> %0, <vscale x 4 x double> %1, iXLen %2) nounwind {
2434 ; CHECK-LABEL: intrinsic_vslidedown_vi_nxv4f64_nxv4f64:
2435 ; CHECK:       # %bb.0: # %entry
2436 ; CHECK-NEXT:    vsetvli zero, a0, e64, m4, ta, ma
2437 ; CHECK-NEXT:    vslidedown.vi v8, v12, 9
2438 ; CHECK-NEXT:    ret
2439 entry:
2440   %a = call <vscale x 4 x double> @llvm.riscv.vslidedown.nxv4f64(
2441     <vscale x 4 x double> %0,
2442     <vscale x 4 x double> %1,
2443     iXLen 9,
2444     iXLen %2,
2445     iXLen 1)
2447   ret <vscale x 4 x double> %a
2450 define <vscale x 4 x double> @intrinsic_vslidedown_mask_vi_nxv4f64_nxv4f64(<vscale x 4 x double> %0, <vscale x 4 x double> %1, <vscale x 4 x i1> %2, iXLen %3) nounwind {
2451 ; CHECK-LABEL: intrinsic_vslidedown_mask_vi_nxv4f64_nxv4f64:
2452 ; CHECK:       # %bb.0: # %entry
2453 ; CHECK-NEXT:    vsetvli zero, a0, e64, m4, tu, mu
2454 ; CHECK-NEXT:    vslidedown.vi v8, v12, 9, v0.t
2455 ; CHECK-NEXT:    ret
2456 entry:
2457   %a = call <vscale x 4 x double> @llvm.riscv.vslidedown.mask.nxv4f64(
2458     <vscale x 4 x double> %0,
2459     <vscale x 4 x double> %1,
2460     iXLen 9,
2461     <vscale x 4 x i1> %2,
2462     iXLen %3, iXLen 0)
2464   ret <vscale x 4 x double> %a