Bump version to 19.1.0-rc3
[llvm-project.git] / llvm / test / CodeGen / RISCV / rvv / vsaddu-rv64.ll
blob077e45f6408d960865a948690e5f3bf7dabfc239
1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc -mtriple=riscv64 -mattr=+v -verify-machineinstrs \
3 ; RUN:   < %s | FileCheck %s
5 declare <vscale x 1 x i8> @llvm.riscv.vsaddu.nxv1i8.nxv1i8(
6   <vscale x 1 x i8>,
7   <vscale x 1 x i8>,
8   <vscale x 1 x i8>,
9   i64);
11 define <vscale x 1 x i8> @intrinsic_vsaddu_vv_nxv1i8_nxv1i8_nxv1i8(<vscale x 1 x i8> %0, <vscale x 1 x i8> %1, i64 %2) nounwind {
12 ; CHECK-LABEL: intrinsic_vsaddu_vv_nxv1i8_nxv1i8_nxv1i8:
13 ; CHECK:       # %bb.0: # %entry
14 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf8, ta, ma
15 ; CHECK-NEXT:    vsaddu.vv v8, v8, v9
16 ; CHECK-NEXT:    ret
17 entry:
18   %a = call <vscale x 1 x i8> @llvm.riscv.vsaddu.nxv1i8.nxv1i8(
19     <vscale x 1 x i8> undef,
20     <vscale x 1 x i8> %0,
21     <vscale x 1 x i8> %1,
22     i64 %2)
24   ret <vscale x 1 x i8> %a
27 declare <vscale x 1 x i8> @llvm.riscv.vsaddu.mask.nxv1i8.nxv1i8(
28   <vscale x 1 x i8>,
29   <vscale x 1 x i8>,
30   <vscale x 1 x i8>,
31   <vscale x 1 x i1>,
32   i64,
33   i64);
35 define <vscale x 1 x i8> @intrinsic_vsaddu_mask_vv_nxv1i8_nxv1i8_nxv1i8(<vscale x 1 x i8> %0, <vscale x 1 x i8> %1, <vscale x 1 x i8> %2, <vscale x 1 x i1> %3, i64 %4) nounwind {
36 ; CHECK-LABEL: intrinsic_vsaddu_mask_vv_nxv1i8_nxv1i8_nxv1i8:
37 ; CHECK:       # %bb.0: # %entry
38 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf8, ta, mu
39 ; CHECK-NEXT:    vsaddu.vv v8, v9, v10, v0.t
40 ; CHECK-NEXT:    ret
41 entry:
42   %a = call <vscale x 1 x i8> @llvm.riscv.vsaddu.mask.nxv1i8.nxv1i8(
43     <vscale x 1 x i8> %0,
44     <vscale x 1 x i8> %1,
45     <vscale x 1 x i8> %2,
46     <vscale x 1 x i1> %3,
47     i64 %4, i64 1)
49   ret <vscale x 1 x i8> %a
52 declare <vscale x 2 x i8> @llvm.riscv.vsaddu.nxv2i8.nxv2i8(
53   <vscale x 2 x i8>,
54   <vscale x 2 x i8>,
55   <vscale x 2 x i8>,
56   i64);
58 define <vscale x 2 x i8> @intrinsic_vsaddu_vv_nxv2i8_nxv2i8_nxv2i8(<vscale x 2 x i8> %0, <vscale x 2 x i8> %1, i64 %2) nounwind {
59 ; CHECK-LABEL: intrinsic_vsaddu_vv_nxv2i8_nxv2i8_nxv2i8:
60 ; CHECK:       # %bb.0: # %entry
61 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf4, ta, ma
62 ; CHECK-NEXT:    vsaddu.vv v8, v8, v9
63 ; CHECK-NEXT:    ret
64 entry:
65   %a = call <vscale x 2 x i8> @llvm.riscv.vsaddu.nxv2i8.nxv2i8(
66     <vscale x 2 x i8> undef,
67     <vscale x 2 x i8> %0,
68     <vscale x 2 x i8> %1,
69     i64 %2)
71   ret <vscale x 2 x i8> %a
74 declare <vscale x 2 x i8> @llvm.riscv.vsaddu.mask.nxv2i8.nxv2i8(
75   <vscale x 2 x i8>,
76   <vscale x 2 x i8>,
77   <vscale x 2 x i8>,
78   <vscale x 2 x i1>,
79   i64,
80   i64);
82 define <vscale x 2 x i8> @intrinsic_vsaddu_mask_vv_nxv2i8_nxv2i8_nxv2i8(<vscale x 2 x i8> %0, <vscale x 2 x i8> %1, <vscale x 2 x i8> %2, <vscale x 2 x i1> %3, i64 %4) nounwind {
83 ; CHECK-LABEL: intrinsic_vsaddu_mask_vv_nxv2i8_nxv2i8_nxv2i8:
84 ; CHECK:       # %bb.0: # %entry
85 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf4, ta, mu
86 ; CHECK-NEXT:    vsaddu.vv v8, v9, v10, v0.t
87 ; CHECK-NEXT:    ret
88 entry:
89   %a = call <vscale x 2 x i8> @llvm.riscv.vsaddu.mask.nxv2i8.nxv2i8(
90     <vscale x 2 x i8> %0,
91     <vscale x 2 x i8> %1,
92     <vscale x 2 x i8> %2,
93     <vscale x 2 x i1> %3,
94     i64 %4, i64 1)
96   ret <vscale x 2 x i8> %a
99 declare <vscale x 4 x i8> @llvm.riscv.vsaddu.nxv4i8.nxv4i8(
100   <vscale x 4 x i8>,
101   <vscale x 4 x i8>,
102   <vscale x 4 x i8>,
103   i64);
105 define <vscale x 4 x i8> @intrinsic_vsaddu_vv_nxv4i8_nxv4i8_nxv4i8(<vscale x 4 x i8> %0, <vscale x 4 x i8> %1, i64 %2) nounwind {
106 ; CHECK-LABEL: intrinsic_vsaddu_vv_nxv4i8_nxv4i8_nxv4i8:
107 ; CHECK:       # %bb.0: # %entry
108 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma
109 ; CHECK-NEXT:    vsaddu.vv v8, v8, v9
110 ; CHECK-NEXT:    ret
111 entry:
112   %a = call <vscale x 4 x i8> @llvm.riscv.vsaddu.nxv4i8.nxv4i8(
113     <vscale x 4 x i8> undef,
114     <vscale x 4 x i8> %0,
115     <vscale x 4 x i8> %1,
116     i64 %2)
118   ret <vscale x 4 x i8> %a
121 declare <vscale x 4 x i8> @llvm.riscv.vsaddu.mask.nxv4i8.nxv4i8(
122   <vscale x 4 x i8>,
123   <vscale x 4 x i8>,
124   <vscale x 4 x i8>,
125   <vscale x 4 x i1>,
126   i64,
127   i64);
129 define <vscale x 4 x i8> @intrinsic_vsaddu_mask_vv_nxv4i8_nxv4i8_nxv4i8(<vscale x 4 x i8> %0, <vscale x 4 x i8> %1, <vscale x 4 x i8> %2, <vscale x 4 x i1> %3, i64 %4) nounwind {
130 ; CHECK-LABEL: intrinsic_vsaddu_mask_vv_nxv4i8_nxv4i8_nxv4i8:
131 ; CHECK:       # %bb.0: # %entry
132 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, mu
133 ; CHECK-NEXT:    vsaddu.vv v8, v9, v10, v0.t
134 ; CHECK-NEXT:    ret
135 entry:
136   %a = call <vscale x 4 x i8> @llvm.riscv.vsaddu.mask.nxv4i8.nxv4i8(
137     <vscale x 4 x i8> %0,
138     <vscale x 4 x i8> %1,
139     <vscale x 4 x i8> %2,
140     <vscale x 4 x i1> %3,
141     i64 %4, i64 1)
143   ret <vscale x 4 x i8> %a
146 declare <vscale x 8 x i8> @llvm.riscv.vsaddu.nxv8i8.nxv8i8(
147   <vscale x 8 x i8>,
148   <vscale x 8 x i8>,
149   <vscale x 8 x i8>,
150   i64);
152 define <vscale x 8 x i8> @intrinsic_vsaddu_vv_nxv8i8_nxv8i8_nxv8i8(<vscale x 8 x i8> %0, <vscale x 8 x i8> %1, i64 %2) nounwind {
153 ; CHECK-LABEL: intrinsic_vsaddu_vv_nxv8i8_nxv8i8_nxv8i8:
154 ; CHECK:       # %bb.0: # %entry
155 ; CHECK-NEXT:    vsetvli zero, a0, e8, m1, ta, ma
156 ; CHECK-NEXT:    vsaddu.vv v8, v8, v9
157 ; CHECK-NEXT:    ret
158 entry:
159   %a = call <vscale x 8 x i8> @llvm.riscv.vsaddu.nxv8i8.nxv8i8(
160     <vscale x 8 x i8> undef,
161     <vscale x 8 x i8> %0,
162     <vscale x 8 x i8> %1,
163     i64 %2)
165   ret <vscale x 8 x i8> %a
168 declare <vscale x 8 x i8> @llvm.riscv.vsaddu.mask.nxv8i8.nxv8i8(
169   <vscale x 8 x i8>,
170   <vscale x 8 x i8>,
171   <vscale x 8 x i8>,
172   <vscale x 8 x i1>,
173   i64,
174   i64);
176 define <vscale x 8 x i8> @intrinsic_vsaddu_mask_vv_nxv8i8_nxv8i8_nxv8i8(<vscale x 8 x i8> %0, <vscale x 8 x i8> %1, <vscale x 8 x i8> %2, <vscale x 8 x i1> %3, i64 %4) nounwind {
177 ; CHECK-LABEL: intrinsic_vsaddu_mask_vv_nxv8i8_nxv8i8_nxv8i8:
178 ; CHECK:       # %bb.0: # %entry
179 ; CHECK-NEXT:    vsetvli zero, a0, e8, m1, ta, mu
180 ; CHECK-NEXT:    vsaddu.vv v8, v9, v10, v0.t
181 ; CHECK-NEXT:    ret
182 entry:
183   %a = call <vscale x 8 x i8> @llvm.riscv.vsaddu.mask.nxv8i8.nxv8i8(
184     <vscale x 8 x i8> %0,
185     <vscale x 8 x i8> %1,
186     <vscale x 8 x i8> %2,
187     <vscale x 8 x i1> %3,
188     i64 %4, i64 1)
190   ret <vscale x 8 x i8> %a
193 declare <vscale x 16 x i8> @llvm.riscv.vsaddu.nxv16i8.nxv16i8(
194   <vscale x 16 x i8>,
195   <vscale x 16 x i8>,
196   <vscale x 16 x i8>,
197   i64);
199 define <vscale x 16 x i8> @intrinsic_vsaddu_vv_nxv16i8_nxv16i8_nxv16i8(<vscale x 16 x i8> %0, <vscale x 16 x i8> %1, i64 %2) nounwind {
200 ; CHECK-LABEL: intrinsic_vsaddu_vv_nxv16i8_nxv16i8_nxv16i8:
201 ; CHECK:       # %bb.0: # %entry
202 ; CHECK-NEXT:    vsetvli zero, a0, e8, m2, ta, ma
203 ; CHECK-NEXT:    vsaddu.vv v8, v8, v10
204 ; CHECK-NEXT:    ret
205 entry:
206   %a = call <vscale x 16 x i8> @llvm.riscv.vsaddu.nxv16i8.nxv16i8(
207     <vscale x 16 x i8> undef,
208     <vscale x 16 x i8> %0,
209     <vscale x 16 x i8> %1,
210     i64 %2)
212   ret <vscale x 16 x i8> %a
215 declare <vscale x 16 x i8> @llvm.riscv.vsaddu.mask.nxv16i8.nxv16i8(
216   <vscale x 16 x i8>,
217   <vscale x 16 x i8>,
218   <vscale x 16 x i8>,
219   <vscale x 16 x i1>,
220   i64,
221   i64);
223 define <vscale x 16 x i8> @intrinsic_vsaddu_mask_vv_nxv16i8_nxv16i8_nxv16i8(<vscale x 16 x i8> %0, <vscale x 16 x i8> %1, <vscale x 16 x i8> %2, <vscale x 16 x i1> %3, i64 %4) nounwind {
224 ; CHECK-LABEL: intrinsic_vsaddu_mask_vv_nxv16i8_nxv16i8_nxv16i8:
225 ; CHECK:       # %bb.0: # %entry
226 ; CHECK-NEXT:    vsetvli zero, a0, e8, m2, ta, mu
227 ; CHECK-NEXT:    vsaddu.vv v8, v10, v12, v0.t
228 ; CHECK-NEXT:    ret
229 entry:
230   %a = call <vscale x 16 x i8> @llvm.riscv.vsaddu.mask.nxv16i8.nxv16i8(
231     <vscale x 16 x i8> %0,
232     <vscale x 16 x i8> %1,
233     <vscale x 16 x i8> %2,
234     <vscale x 16 x i1> %3,
235     i64 %4, i64 1)
237   ret <vscale x 16 x i8> %a
240 declare <vscale x 32 x i8> @llvm.riscv.vsaddu.nxv32i8.nxv32i8(
241   <vscale x 32 x i8>,
242   <vscale x 32 x i8>,
243   <vscale x 32 x i8>,
244   i64);
246 define <vscale x 32 x i8> @intrinsic_vsaddu_vv_nxv32i8_nxv32i8_nxv32i8(<vscale x 32 x i8> %0, <vscale x 32 x i8> %1, i64 %2) nounwind {
247 ; CHECK-LABEL: intrinsic_vsaddu_vv_nxv32i8_nxv32i8_nxv32i8:
248 ; CHECK:       # %bb.0: # %entry
249 ; CHECK-NEXT:    vsetvli zero, a0, e8, m4, ta, ma
250 ; CHECK-NEXT:    vsaddu.vv v8, v8, v12
251 ; CHECK-NEXT:    ret
252 entry:
253   %a = call <vscale x 32 x i8> @llvm.riscv.vsaddu.nxv32i8.nxv32i8(
254     <vscale x 32 x i8> undef,
255     <vscale x 32 x i8> %0,
256     <vscale x 32 x i8> %1,
257     i64 %2)
259   ret <vscale x 32 x i8> %a
262 declare <vscale x 32 x i8> @llvm.riscv.vsaddu.mask.nxv32i8.nxv32i8(
263   <vscale x 32 x i8>,
264   <vscale x 32 x i8>,
265   <vscale x 32 x i8>,
266   <vscale x 32 x i1>,
267   i64,
268   i64);
270 define <vscale x 32 x i8> @intrinsic_vsaddu_mask_vv_nxv32i8_nxv32i8_nxv32i8(<vscale x 32 x i8> %0, <vscale x 32 x i8> %1, <vscale x 32 x i8> %2, <vscale x 32 x i1> %3, i64 %4) nounwind {
271 ; CHECK-LABEL: intrinsic_vsaddu_mask_vv_nxv32i8_nxv32i8_nxv32i8:
272 ; CHECK:       # %bb.0: # %entry
273 ; CHECK-NEXT:    vsetvli zero, a0, e8, m4, ta, mu
274 ; CHECK-NEXT:    vsaddu.vv v8, v12, v16, v0.t
275 ; CHECK-NEXT:    ret
276 entry:
277   %a = call <vscale x 32 x i8> @llvm.riscv.vsaddu.mask.nxv32i8.nxv32i8(
278     <vscale x 32 x i8> %0,
279     <vscale x 32 x i8> %1,
280     <vscale x 32 x i8> %2,
281     <vscale x 32 x i1> %3,
282     i64 %4, i64 1)
284   ret <vscale x 32 x i8> %a
287 declare <vscale x 64 x i8> @llvm.riscv.vsaddu.nxv64i8.nxv64i8(
288   <vscale x 64 x i8>,
289   <vscale x 64 x i8>,
290   <vscale x 64 x i8>,
291   i64);
293 define <vscale x 64 x i8> @intrinsic_vsaddu_vv_nxv64i8_nxv64i8_nxv64i8(<vscale x 64 x i8> %0, <vscale x 64 x i8> %1, i64 %2) nounwind {
294 ; CHECK-LABEL: intrinsic_vsaddu_vv_nxv64i8_nxv64i8_nxv64i8:
295 ; CHECK:       # %bb.0: # %entry
296 ; CHECK-NEXT:    vsetvli zero, a0, e8, m8, ta, ma
297 ; CHECK-NEXT:    vsaddu.vv v8, v8, v16
298 ; CHECK-NEXT:    ret
299 entry:
300   %a = call <vscale x 64 x i8> @llvm.riscv.vsaddu.nxv64i8.nxv64i8(
301     <vscale x 64 x i8> undef,
302     <vscale x 64 x i8> %0,
303     <vscale x 64 x i8> %1,
304     i64 %2)
306   ret <vscale x 64 x i8> %a
309 declare <vscale x 64 x i8> @llvm.riscv.vsaddu.mask.nxv64i8.nxv64i8(
310   <vscale x 64 x i8>,
311   <vscale x 64 x i8>,
312   <vscale x 64 x i8>,
313   <vscale x 64 x i1>,
314   i64,
315   i64);
317 define <vscale x 64 x i8> @intrinsic_vsaddu_mask_vv_nxv64i8_nxv64i8_nxv64i8(<vscale x 64 x i8> %0, <vscale x 64 x i8> %1, <vscale x 64 x i8> %2, <vscale x 64 x i1> %3, i64 %4) nounwind {
318 ; CHECK-LABEL: intrinsic_vsaddu_mask_vv_nxv64i8_nxv64i8_nxv64i8:
319 ; CHECK:       # %bb.0: # %entry
320 ; CHECK-NEXT:    vl8r.v v24, (a0)
321 ; CHECK-NEXT:    vsetvli zero, a1, e8, m8, ta, mu
322 ; CHECK-NEXT:    vsaddu.vv v8, v16, v24, v0.t
323 ; CHECK-NEXT:    ret
324 entry:
325   %a = call <vscale x 64 x i8> @llvm.riscv.vsaddu.mask.nxv64i8.nxv64i8(
326     <vscale x 64 x i8> %0,
327     <vscale x 64 x i8> %1,
328     <vscale x 64 x i8> %2,
329     <vscale x 64 x i1> %3,
330     i64 %4, i64 1)
332   ret <vscale x 64 x i8> %a
335 declare <vscale x 1 x i16> @llvm.riscv.vsaddu.nxv1i16.nxv1i16(
336   <vscale x 1 x i16>,
337   <vscale x 1 x i16>,
338   <vscale x 1 x i16>,
339   i64);
341 define <vscale x 1 x i16> @intrinsic_vsaddu_vv_nxv1i16_nxv1i16_nxv1i16(<vscale x 1 x i16> %0, <vscale x 1 x i16> %1, i64 %2) nounwind {
342 ; CHECK-LABEL: intrinsic_vsaddu_vv_nxv1i16_nxv1i16_nxv1i16:
343 ; CHECK:       # %bb.0: # %entry
344 ; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma
345 ; CHECK-NEXT:    vsaddu.vv v8, v8, v9
346 ; CHECK-NEXT:    ret
347 entry:
348   %a = call <vscale x 1 x i16> @llvm.riscv.vsaddu.nxv1i16.nxv1i16(
349     <vscale x 1 x i16> undef,
350     <vscale x 1 x i16> %0,
351     <vscale x 1 x i16> %1,
352     i64 %2)
354   ret <vscale x 1 x i16> %a
357 declare <vscale x 1 x i16> @llvm.riscv.vsaddu.mask.nxv1i16.nxv1i16(
358   <vscale x 1 x i16>,
359   <vscale x 1 x i16>,
360   <vscale x 1 x i16>,
361   <vscale x 1 x i1>,
362   i64,
363   i64);
365 define <vscale x 1 x i16> @intrinsic_vsaddu_mask_vv_nxv1i16_nxv1i16_nxv1i16(<vscale x 1 x i16> %0, <vscale x 1 x i16> %1, <vscale x 1 x i16> %2, <vscale x 1 x i1> %3, i64 %4) nounwind {
366 ; CHECK-LABEL: intrinsic_vsaddu_mask_vv_nxv1i16_nxv1i16_nxv1i16:
367 ; CHECK:       # %bb.0: # %entry
368 ; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, mu
369 ; CHECK-NEXT:    vsaddu.vv v8, v9, v10, v0.t
370 ; CHECK-NEXT:    ret
371 entry:
372   %a = call <vscale x 1 x i16> @llvm.riscv.vsaddu.mask.nxv1i16.nxv1i16(
373     <vscale x 1 x i16> %0,
374     <vscale x 1 x i16> %1,
375     <vscale x 1 x i16> %2,
376     <vscale x 1 x i1> %3,
377     i64 %4, i64 1)
379   ret <vscale x 1 x i16> %a
382 declare <vscale x 2 x i16> @llvm.riscv.vsaddu.nxv2i16.nxv2i16(
383   <vscale x 2 x i16>,
384   <vscale x 2 x i16>,
385   <vscale x 2 x i16>,
386   i64);
388 define <vscale x 2 x i16> @intrinsic_vsaddu_vv_nxv2i16_nxv2i16_nxv2i16(<vscale x 2 x i16> %0, <vscale x 2 x i16> %1, i64 %2) nounwind {
389 ; CHECK-LABEL: intrinsic_vsaddu_vv_nxv2i16_nxv2i16_nxv2i16:
390 ; CHECK:       # %bb.0: # %entry
391 ; CHECK-NEXT:    vsetvli zero, a0, e16, mf2, ta, ma
392 ; CHECK-NEXT:    vsaddu.vv v8, v8, v9
393 ; CHECK-NEXT:    ret
394 entry:
395   %a = call <vscale x 2 x i16> @llvm.riscv.vsaddu.nxv2i16.nxv2i16(
396     <vscale x 2 x i16> undef,
397     <vscale x 2 x i16> %0,
398     <vscale x 2 x i16> %1,
399     i64 %2)
401   ret <vscale x 2 x i16> %a
404 declare <vscale x 2 x i16> @llvm.riscv.vsaddu.mask.nxv2i16.nxv2i16(
405   <vscale x 2 x i16>,
406   <vscale x 2 x i16>,
407   <vscale x 2 x i16>,
408   <vscale x 2 x i1>,
409   i64,
410   i64);
412 define <vscale x 2 x i16> @intrinsic_vsaddu_mask_vv_nxv2i16_nxv2i16_nxv2i16(<vscale x 2 x i16> %0, <vscale x 2 x i16> %1, <vscale x 2 x i16> %2, <vscale x 2 x i1> %3, i64 %4) nounwind {
413 ; CHECK-LABEL: intrinsic_vsaddu_mask_vv_nxv2i16_nxv2i16_nxv2i16:
414 ; CHECK:       # %bb.0: # %entry
415 ; CHECK-NEXT:    vsetvli zero, a0, e16, mf2, ta, mu
416 ; CHECK-NEXT:    vsaddu.vv v8, v9, v10, v0.t
417 ; CHECK-NEXT:    ret
418 entry:
419   %a = call <vscale x 2 x i16> @llvm.riscv.vsaddu.mask.nxv2i16.nxv2i16(
420     <vscale x 2 x i16> %0,
421     <vscale x 2 x i16> %1,
422     <vscale x 2 x i16> %2,
423     <vscale x 2 x i1> %3,
424     i64 %4, i64 1)
426   ret <vscale x 2 x i16> %a
429 declare <vscale x 4 x i16> @llvm.riscv.vsaddu.nxv4i16.nxv4i16(
430   <vscale x 4 x i16>,
431   <vscale x 4 x i16>,
432   <vscale x 4 x i16>,
433   i64);
435 define <vscale x 4 x i16> @intrinsic_vsaddu_vv_nxv4i16_nxv4i16_nxv4i16(<vscale x 4 x i16> %0, <vscale x 4 x i16> %1, i64 %2) nounwind {
436 ; CHECK-LABEL: intrinsic_vsaddu_vv_nxv4i16_nxv4i16_nxv4i16:
437 ; CHECK:       # %bb.0: # %entry
438 ; CHECK-NEXT:    vsetvli zero, a0, e16, m1, ta, ma
439 ; CHECK-NEXT:    vsaddu.vv v8, v8, v9
440 ; CHECK-NEXT:    ret
441 entry:
442   %a = call <vscale x 4 x i16> @llvm.riscv.vsaddu.nxv4i16.nxv4i16(
443     <vscale x 4 x i16> undef,
444     <vscale x 4 x i16> %0,
445     <vscale x 4 x i16> %1,
446     i64 %2)
448   ret <vscale x 4 x i16> %a
451 declare <vscale x 4 x i16> @llvm.riscv.vsaddu.mask.nxv4i16.nxv4i16(
452   <vscale x 4 x i16>,
453   <vscale x 4 x i16>,
454   <vscale x 4 x i16>,
455   <vscale x 4 x i1>,
456   i64,
457   i64);
459 define <vscale x 4 x i16> @intrinsic_vsaddu_mask_vv_nxv4i16_nxv4i16_nxv4i16(<vscale x 4 x i16> %0, <vscale x 4 x i16> %1, <vscale x 4 x i16> %2, <vscale x 4 x i1> %3, i64 %4) nounwind {
460 ; CHECK-LABEL: intrinsic_vsaddu_mask_vv_nxv4i16_nxv4i16_nxv4i16:
461 ; CHECK:       # %bb.0: # %entry
462 ; CHECK-NEXT:    vsetvli zero, a0, e16, m1, ta, mu
463 ; CHECK-NEXT:    vsaddu.vv v8, v9, v10, v0.t
464 ; CHECK-NEXT:    ret
465 entry:
466   %a = call <vscale x 4 x i16> @llvm.riscv.vsaddu.mask.nxv4i16.nxv4i16(
467     <vscale x 4 x i16> %0,
468     <vscale x 4 x i16> %1,
469     <vscale x 4 x i16> %2,
470     <vscale x 4 x i1> %3,
471     i64 %4, i64 1)
473   ret <vscale x 4 x i16> %a
476 declare <vscale x 8 x i16> @llvm.riscv.vsaddu.nxv8i16.nxv8i16(
477   <vscale x 8 x i16>,
478   <vscale x 8 x i16>,
479   <vscale x 8 x i16>,
480   i64);
482 define <vscale x 8 x i16> @intrinsic_vsaddu_vv_nxv8i16_nxv8i16_nxv8i16(<vscale x 8 x i16> %0, <vscale x 8 x i16> %1, i64 %2) nounwind {
483 ; CHECK-LABEL: intrinsic_vsaddu_vv_nxv8i16_nxv8i16_nxv8i16:
484 ; CHECK:       # %bb.0: # %entry
485 ; CHECK-NEXT:    vsetvli zero, a0, e16, m2, ta, ma
486 ; CHECK-NEXT:    vsaddu.vv v8, v8, v10
487 ; CHECK-NEXT:    ret
488 entry:
489   %a = call <vscale x 8 x i16> @llvm.riscv.vsaddu.nxv8i16.nxv8i16(
490     <vscale x 8 x i16> undef,
491     <vscale x 8 x i16> %0,
492     <vscale x 8 x i16> %1,
493     i64 %2)
495   ret <vscale x 8 x i16> %a
498 declare <vscale x 8 x i16> @llvm.riscv.vsaddu.mask.nxv8i16.nxv8i16(
499   <vscale x 8 x i16>,
500   <vscale x 8 x i16>,
501   <vscale x 8 x i16>,
502   <vscale x 8 x i1>,
503   i64,
504   i64);
506 define <vscale x 8 x i16> @intrinsic_vsaddu_mask_vv_nxv8i16_nxv8i16_nxv8i16(<vscale x 8 x i16> %0, <vscale x 8 x i16> %1, <vscale x 8 x i16> %2, <vscale x 8 x i1> %3, i64 %4) nounwind {
507 ; CHECK-LABEL: intrinsic_vsaddu_mask_vv_nxv8i16_nxv8i16_nxv8i16:
508 ; CHECK:       # %bb.0: # %entry
509 ; CHECK-NEXT:    vsetvli zero, a0, e16, m2, ta, mu
510 ; CHECK-NEXT:    vsaddu.vv v8, v10, v12, v0.t
511 ; CHECK-NEXT:    ret
512 entry:
513   %a = call <vscale x 8 x i16> @llvm.riscv.vsaddu.mask.nxv8i16.nxv8i16(
514     <vscale x 8 x i16> %0,
515     <vscale x 8 x i16> %1,
516     <vscale x 8 x i16> %2,
517     <vscale x 8 x i1> %3,
518     i64 %4, i64 1)
520   ret <vscale x 8 x i16> %a
523 declare <vscale x 16 x i16> @llvm.riscv.vsaddu.nxv16i16.nxv16i16(
524   <vscale x 16 x i16>,
525   <vscale x 16 x i16>,
526   <vscale x 16 x i16>,
527   i64);
529 define <vscale x 16 x i16> @intrinsic_vsaddu_vv_nxv16i16_nxv16i16_nxv16i16(<vscale x 16 x i16> %0, <vscale x 16 x i16> %1, i64 %2) nounwind {
530 ; CHECK-LABEL: intrinsic_vsaddu_vv_nxv16i16_nxv16i16_nxv16i16:
531 ; CHECK:       # %bb.0: # %entry
532 ; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, ma
533 ; CHECK-NEXT:    vsaddu.vv v8, v8, v12
534 ; CHECK-NEXT:    ret
535 entry:
536   %a = call <vscale x 16 x i16> @llvm.riscv.vsaddu.nxv16i16.nxv16i16(
537     <vscale x 16 x i16> undef,
538     <vscale x 16 x i16> %0,
539     <vscale x 16 x i16> %1,
540     i64 %2)
542   ret <vscale x 16 x i16> %a
545 declare <vscale x 16 x i16> @llvm.riscv.vsaddu.mask.nxv16i16.nxv16i16(
546   <vscale x 16 x i16>,
547   <vscale x 16 x i16>,
548   <vscale x 16 x i16>,
549   <vscale x 16 x i1>,
550   i64,
551   i64);
553 define <vscale x 16 x i16> @intrinsic_vsaddu_mask_vv_nxv16i16_nxv16i16_nxv16i16(<vscale x 16 x i16> %0, <vscale x 16 x i16> %1, <vscale x 16 x i16> %2, <vscale x 16 x i1> %3, i64 %4) nounwind {
554 ; CHECK-LABEL: intrinsic_vsaddu_mask_vv_nxv16i16_nxv16i16_nxv16i16:
555 ; CHECK:       # %bb.0: # %entry
556 ; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, mu
557 ; CHECK-NEXT:    vsaddu.vv v8, v12, v16, v0.t
558 ; CHECK-NEXT:    ret
559 entry:
560   %a = call <vscale x 16 x i16> @llvm.riscv.vsaddu.mask.nxv16i16.nxv16i16(
561     <vscale x 16 x i16> %0,
562     <vscale x 16 x i16> %1,
563     <vscale x 16 x i16> %2,
564     <vscale x 16 x i1> %3,
565     i64 %4, i64 1)
567   ret <vscale x 16 x i16> %a
570 declare <vscale x 32 x i16> @llvm.riscv.vsaddu.nxv32i16.nxv32i16(
571   <vscale x 32 x i16>,
572   <vscale x 32 x i16>,
573   <vscale x 32 x i16>,
574   i64);
576 define <vscale x 32 x i16> @intrinsic_vsaddu_vv_nxv32i16_nxv32i16_nxv32i16(<vscale x 32 x i16> %0, <vscale x 32 x i16> %1, i64 %2) nounwind {
577 ; CHECK-LABEL: intrinsic_vsaddu_vv_nxv32i16_nxv32i16_nxv32i16:
578 ; CHECK:       # %bb.0: # %entry
579 ; CHECK-NEXT:    vsetvli zero, a0, e16, m8, ta, ma
580 ; CHECK-NEXT:    vsaddu.vv v8, v8, v16
581 ; CHECK-NEXT:    ret
582 entry:
583   %a = call <vscale x 32 x i16> @llvm.riscv.vsaddu.nxv32i16.nxv32i16(
584     <vscale x 32 x i16> undef,
585     <vscale x 32 x i16> %0,
586     <vscale x 32 x i16> %1,
587     i64 %2)
589   ret <vscale x 32 x i16> %a
592 declare <vscale x 32 x i16> @llvm.riscv.vsaddu.mask.nxv32i16.nxv32i16(
593   <vscale x 32 x i16>,
594   <vscale x 32 x i16>,
595   <vscale x 32 x i16>,
596   <vscale x 32 x i1>,
597   i64,
598   i64);
600 define <vscale x 32 x i16> @intrinsic_vsaddu_mask_vv_nxv32i16_nxv32i16_nxv32i16(<vscale x 32 x i16> %0, <vscale x 32 x i16> %1, <vscale x 32 x i16> %2, <vscale x 32 x i1> %3, i64 %4) nounwind {
601 ; CHECK-LABEL: intrinsic_vsaddu_mask_vv_nxv32i16_nxv32i16_nxv32i16:
602 ; CHECK:       # %bb.0: # %entry
603 ; CHECK-NEXT:    vl8re16.v v24, (a0)
604 ; CHECK-NEXT:    vsetvli zero, a1, e16, m8, ta, mu
605 ; CHECK-NEXT:    vsaddu.vv v8, v16, v24, v0.t
606 ; CHECK-NEXT:    ret
607 entry:
608   %a = call <vscale x 32 x i16> @llvm.riscv.vsaddu.mask.nxv32i16.nxv32i16(
609     <vscale x 32 x i16> %0,
610     <vscale x 32 x i16> %1,
611     <vscale x 32 x i16> %2,
612     <vscale x 32 x i1> %3,
613     i64 %4, i64 1)
615   ret <vscale x 32 x i16> %a
618 declare <vscale x 1 x i32> @llvm.riscv.vsaddu.nxv1i32.nxv1i32(
619   <vscale x 1 x i32>,
620   <vscale x 1 x i32>,
621   <vscale x 1 x i32>,
622   i64);
624 define <vscale x 1 x i32> @intrinsic_vsaddu_vv_nxv1i32_nxv1i32_nxv1i32(<vscale x 1 x i32> %0, <vscale x 1 x i32> %1, i64 %2) nounwind {
625 ; CHECK-LABEL: intrinsic_vsaddu_vv_nxv1i32_nxv1i32_nxv1i32:
626 ; CHECK:       # %bb.0: # %entry
627 ; CHECK-NEXT:    vsetvli zero, a0, e32, mf2, ta, ma
628 ; CHECK-NEXT:    vsaddu.vv v8, v8, v9
629 ; CHECK-NEXT:    ret
630 entry:
631   %a = call <vscale x 1 x i32> @llvm.riscv.vsaddu.nxv1i32.nxv1i32(
632     <vscale x 1 x i32> undef,
633     <vscale x 1 x i32> %0,
634     <vscale x 1 x i32> %1,
635     i64 %2)
637   ret <vscale x 1 x i32> %a
640 declare <vscale x 1 x i32> @llvm.riscv.vsaddu.mask.nxv1i32.nxv1i32(
641   <vscale x 1 x i32>,
642   <vscale x 1 x i32>,
643   <vscale x 1 x i32>,
644   <vscale x 1 x i1>,
645   i64,
646   i64);
648 define <vscale x 1 x i32> @intrinsic_vsaddu_mask_vv_nxv1i32_nxv1i32_nxv1i32(<vscale x 1 x i32> %0, <vscale x 1 x i32> %1, <vscale x 1 x i32> %2, <vscale x 1 x i1> %3, i64 %4) nounwind {
649 ; CHECK-LABEL: intrinsic_vsaddu_mask_vv_nxv1i32_nxv1i32_nxv1i32:
650 ; CHECK:       # %bb.0: # %entry
651 ; CHECK-NEXT:    vsetvli zero, a0, e32, mf2, ta, mu
652 ; CHECK-NEXT:    vsaddu.vv v8, v9, v10, v0.t
653 ; CHECK-NEXT:    ret
654 entry:
655   %a = call <vscale x 1 x i32> @llvm.riscv.vsaddu.mask.nxv1i32.nxv1i32(
656     <vscale x 1 x i32> %0,
657     <vscale x 1 x i32> %1,
658     <vscale x 1 x i32> %2,
659     <vscale x 1 x i1> %3,
660     i64 %4, i64 1)
662   ret <vscale x 1 x i32> %a
665 declare <vscale x 2 x i32> @llvm.riscv.vsaddu.nxv2i32.nxv2i32(
666   <vscale x 2 x i32>,
667   <vscale x 2 x i32>,
668   <vscale x 2 x i32>,
669   i64);
671 define <vscale x 2 x i32> @intrinsic_vsaddu_vv_nxv2i32_nxv2i32_nxv2i32(<vscale x 2 x i32> %0, <vscale x 2 x i32> %1, i64 %2) nounwind {
672 ; CHECK-LABEL: intrinsic_vsaddu_vv_nxv2i32_nxv2i32_nxv2i32:
673 ; CHECK:       # %bb.0: # %entry
674 ; CHECK-NEXT:    vsetvli zero, a0, e32, m1, ta, ma
675 ; CHECK-NEXT:    vsaddu.vv v8, v8, v9
676 ; CHECK-NEXT:    ret
677 entry:
678   %a = call <vscale x 2 x i32> @llvm.riscv.vsaddu.nxv2i32.nxv2i32(
679     <vscale x 2 x i32> undef,
680     <vscale x 2 x i32> %0,
681     <vscale x 2 x i32> %1,
682     i64 %2)
684   ret <vscale x 2 x i32> %a
687 declare <vscale x 2 x i32> @llvm.riscv.vsaddu.mask.nxv2i32.nxv2i32(
688   <vscale x 2 x i32>,
689   <vscale x 2 x i32>,
690   <vscale x 2 x i32>,
691   <vscale x 2 x i1>,
692   i64,
693   i64);
695 define <vscale x 2 x i32> @intrinsic_vsaddu_mask_vv_nxv2i32_nxv2i32_nxv2i32(<vscale x 2 x i32> %0, <vscale x 2 x i32> %1, <vscale x 2 x i32> %2, <vscale x 2 x i1> %3, i64 %4) nounwind {
696 ; CHECK-LABEL: intrinsic_vsaddu_mask_vv_nxv2i32_nxv2i32_nxv2i32:
697 ; CHECK:       # %bb.0: # %entry
698 ; CHECK-NEXT:    vsetvli zero, a0, e32, m1, ta, mu
699 ; CHECK-NEXT:    vsaddu.vv v8, v9, v10, v0.t
700 ; CHECK-NEXT:    ret
701 entry:
702   %a = call <vscale x 2 x i32> @llvm.riscv.vsaddu.mask.nxv2i32.nxv2i32(
703     <vscale x 2 x i32> %0,
704     <vscale x 2 x i32> %1,
705     <vscale x 2 x i32> %2,
706     <vscale x 2 x i1> %3,
707     i64 %4, i64 1)
709   ret <vscale x 2 x i32> %a
712 declare <vscale x 4 x i32> @llvm.riscv.vsaddu.nxv4i32.nxv4i32(
713   <vscale x 4 x i32>,
714   <vscale x 4 x i32>,
715   <vscale x 4 x i32>,
716   i64);
718 define <vscale x 4 x i32> @intrinsic_vsaddu_vv_nxv4i32_nxv4i32_nxv4i32(<vscale x 4 x i32> %0, <vscale x 4 x i32> %1, i64 %2) nounwind {
719 ; CHECK-LABEL: intrinsic_vsaddu_vv_nxv4i32_nxv4i32_nxv4i32:
720 ; CHECK:       # %bb.0: # %entry
721 ; CHECK-NEXT:    vsetvli zero, a0, e32, m2, ta, ma
722 ; CHECK-NEXT:    vsaddu.vv v8, v8, v10
723 ; CHECK-NEXT:    ret
724 entry:
725   %a = call <vscale x 4 x i32> @llvm.riscv.vsaddu.nxv4i32.nxv4i32(
726     <vscale x 4 x i32> undef,
727     <vscale x 4 x i32> %0,
728     <vscale x 4 x i32> %1,
729     i64 %2)
731   ret <vscale x 4 x i32> %a
734 declare <vscale x 4 x i32> @llvm.riscv.vsaddu.mask.nxv4i32.nxv4i32(
735   <vscale x 4 x i32>,
736   <vscale x 4 x i32>,
737   <vscale x 4 x i32>,
738   <vscale x 4 x i1>,
739   i64,
740   i64);
742 define <vscale x 4 x i32> @intrinsic_vsaddu_mask_vv_nxv4i32_nxv4i32_nxv4i32(<vscale x 4 x i32> %0, <vscale x 4 x i32> %1, <vscale x 4 x i32> %2, <vscale x 4 x i1> %3, i64 %4) nounwind {
743 ; CHECK-LABEL: intrinsic_vsaddu_mask_vv_nxv4i32_nxv4i32_nxv4i32:
744 ; CHECK:       # %bb.0: # %entry
745 ; CHECK-NEXT:    vsetvli zero, a0, e32, m2, ta, mu
746 ; CHECK-NEXT:    vsaddu.vv v8, v10, v12, v0.t
747 ; CHECK-NEXT:    ret
748 entry:
749   %a = call <vscale x 4 x i32> @llvm.riscv.vsaddu.mask.nxv4i32.nxv4i32(
750     <vscale x 4 x i32> %0,
751     <vscale x 4 x i32> %1,
752     <vscale x 4 x i32> %2,
753     <vscale x 4 x i1> %3,
754     i64 %4, i64 1)
756   ret <vscale x 4 x i32> %a
759 declare <vscale x 8 x i32> @llvm.riscv.vsaddu.nxv8i32.nxv8i32(
760   <vscale x 8 x i32>,
761   <vscale x 8 x i32>,
762   <vscale x 8 x i32>,
763   i64);
765 define <vscale x 8 x i32> @intrinsic_vsaddu_vv_nxv8i32_nxv8i32_nxv8i32(<vscale x 8 x i32> %0, <vscale x 8 x i32> %1, i64 %2) nounwind {
766 ; CHECK-LABEL: intrinsic_vsaddu_vv_nxv8i32_nxv8i32_nxv8i32:
767 ; CHECK:       # %bb.0: # %entry
768 ; CHECK-NEXT:    vsetvli zero, a0, e32, m4, ta, ma
769 ; CHECK-NEXT:    vsaddu.vv v8, v8, v12
770 ; CHECK-NEXT:    ret
771 entry:
772   %a = call <vscale x 8 x i32> @llvm.riscv.vsaddu.nxv8i32.nxv8i32(
773     <vscale x 8 x i32> undef,
774     <vscale x 8 x i32> %0,
775     <vscale x 8 x i32> %1,
776     i64 %2)
778   ret <vscale x 8 x i32> %a
781 declare <vscale x 8 x i32> @llvm.riscv.vsaddu.mask.nxv8i32.nxv8i32(
782   <vscale x 8 x i32>,
783   <vscale x 8 x i32>,
784   <vscale x 8 x i32>,
785   <vscale x 8 x i1>,
786   i64,
787   i64);
789 define <vscale x 8 x i32> @intrinsic_vsaddu_mask_vv_nxv8i32_nxv8i32_nxv8i32(<vscale x 8 x i32> %0, <vscale x 8 x i32> %1, <vscale x 8 x i32> %2, <vscale x 8 x i1> %3, i64 %4) nounwind {
790 ; CHECK-LABEL: intrinsic_vsaddu_mask_vv_nxv8i32_nxv8i32_nxv8i32:
791 ; CHECK:       # %bb.0: # %entry
792 ; CHECK-NEXT:    vsetvli zero, a0, e32, m4, ta, mu
793 ; CHECK-NEXT:    vsaddu.vv v8, v12, v16, v0.t
794 ; CHECK-NEXT:    ret
795 entry:
796   %a = call <vscale x 8 x i32> @llvm.riscv.vsaddu.mask.nxv8i32.nxv8i32(
797     <vscale x 8 x i32> %0,
798     <vscale x 8 x i32> %1,
799     <vscale x 8 x i32> %2,
800     <vscale x 8 x i1> %3,
801     i64 %4, i64 1)
803   ret <vscale x 8 x i32> %a
806 declare <vscale x 16 x i32> @llvm.riscv.vsaddu.nxv16i32.nxv16i32(
807   <vscale x 16 x i32>,
808   <vscale x 16 x i32>,
809   <vscale x 16 x i32>,
810   i64);
812 define <vscale x 16 x i32> @intrinsic_vsaddu_vv_nxv16i32_nxv16i32_nxv16i32(<vscale x 16 x i32> %0, <vscale x 16 x i32> %1, i64 %2) nounwind {
813 ; CHECK-LABEL: intrinsic_vsaddu_vv_nxv16i32_nxv16i32_nxv16i32:
814 ; CHECK:       # %bb.0: # %entry
815 ; CHECK-NEXT:    vsetvli zero, a0, e32, m8, ta, ma
816 ; CHECK-NEXT:    vsaddu.vv v8, v8, v16
817 ; CHECK-NEXT:    ret
818 entry:
819   %a = call <vscale x 16 x i32> @llvm.riscv.vsaddu.nxv16i32.nxv16i32(
820     <vscale x 16 x i32> undef,
821     <vscale x 16 x i32> %0,
822     <vscale x 16 x i32> %1,
823     i64 %2)
825   ret <vscale x 16 x i32> %a
828 declare <vscale x 16 x i32> @llvm.riscv.vsaddu.mask.nxv16i32.nxv16i32(
829   <vscale x 16 x i32>,
830   <vscale x 16 x i32>,
831   <vscale x 16 x i32>,
832   <vscale x 16 x i1>,
833   i64,
834   i64);
836 define <vscale x 16 x i32> @intrinsic_vsaddu_mask_vv_nxv16i32_nxv16i32_nxv16i32(<vscale x 16 x i32> %0, <vscale x 16 x i32> %1, <vscale x 16 x i32> %2, <vscale x 16 x i1> %3, i64 %4) nounwind {
837 ; CHECK-LABEL: intrinsic_vsaddu_mask_vv_nxv16i32_nxv16i32_nxv16i32:
838 ; CHECK:       # %bb.0: # %entry
839 ; CHECK-NEXT:    vl8re32.v v24, (a0)
840 ; CHECK-NEXT:    vsetvli zero, a1, e32, m8, ta, mu
841 ; CHECK-NEXT:    vsaddu.vv v8, v16, v24, v0.t
842 ; CHECK-NEXT:    ret
843 entry:
844   %a = call <vscale x 16 x i32> @llvm.riscv.vsaddu.mask.nxv16i32.nxv16i32(
845     <vscale x 16 x i32> %0,
846     <vscale x 16 x i32> %1,
847     <vscale x 16 x i32> %2,
848     <vscale x 16 x i1> %3,
849     i64 %4, i64 1)
851   ret <vscale x 16 x i32> %a
854 declare <vscale x 1 x i64> @llvm.riscv.vsaddu.nxv1i64.nxv1i64(
855   <vscale x 1 x i64>,
856   <vscale x 1 x i64>,
857   <vscale x 1 x i64>,
858   i64);
860 define <vscale x 1 x i64> @intrinsic_vsaddu_vv_nxv1i64_nxv1i64_nxv1i64(<vscale x 1 x i64> %0, <vscale x 1 x i64> %1, i64 %2) nounwind {
861 ; CHECK-LABEL: intrinsic_vsaddu_vv_nxv1i64_nxv1i64_nxv1i64:
862 ; CHECK:       # %bb.0: # %entry
863 ; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, ma
864 ; CHECK-NEXT:    vsaddu.vv v8, v8, v9
865 ; CHECK-NEXT:    ret
866 entry:
867   %a = call <vscale x 1 x i64> @llvm.riscv.vsaddu.nxv1i64.nxv1i64(
868     <vscale x 1 x i64> undef,
869     <vscale x 1 x i64> %0,
870     <vscale x 1 x i64> %1,
871     i64 %2)
873   ret <vscale x 1 x i64> %a
876 declare <vscale x 1 x i64> @llvm.riscv.vsaddu.mask.nxv1i64.nxv1i64(
877   <vscale x 1 x i64>,
878   <vscale x 1 x i64>,
879   <vscale x 1 x i64>,
880   <vscale x 1 x i1>,
881   i64,
882   i64);
884 define <vscale x 1 x i64> @intrinsic_vsaddu_mask_vv_nxv1i64_nxv1i64_nxv1i64(<vscale x 1 x i64> %0, <vscale x 1 x i64> %1, <vscale x 1 x i64> %2, <vscale x 1 x i1> %3, i64 %4) nounwind {
885 ; CHECK-LABEL: intrinsic_vsaddu_mask_vv_nxv1i64_nxv1i64_nxv1i64:
886 ; CHECK:       # %bb.0: # %entry
887 ; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, mu
888 ; CHECK-NEXT:    vsaddu.vv v8, v9, v10, v0.t
889 ; CHECK-NEXT:    ret
890 entry:
891   %a = call <vscale x 1 x i64> @llvm.riscv.vsaddu.mask.nxv1i64.nxv1i64(
892     <vscale x 1 x i64> %0,
893     <vscale x 1 x i64> %1,
894     <vscale x 1 x i64> %2,
895     <vscale x 1 x i1> %3,
896     i64 %4, i64 1)
898   ret <vscale x 1 x i64> %a
901 declare <vscale x 2 x i64> @llvm.riscv.vsaddu.nxv2i64.nxv2i64(
902   <vscale x 2 x i64>,
903   <vscale x 2 x i64>,
904   <vscale x 2 x i64>,
905   i64);
907 define <vscale x 2 x i64> @intrinsic_vsaddu_vv_nxv2i64_nxv2i64_nxv2i64(<vscale x 2 x i64> %0, <vscale x 2 x i64> %1, i64 %2) nounwind {
908 ; CHECK-LABEL: intrinsic_vsaddu_vv_nxv2i64_nxv2i64_nxv2i64:
909 ; CHECK:       # %bb.0: # %entry
910 ; CHECK-NEXT:    vsetvli zero, a0, e64, m2, ta, ma
911 ; CHECK-NEXT:    vsaddu.vv v8, v8, v10
912 ; CHECK-NEXT:    ret
913 entry:
914   %a = call <vscale x 2 x i64> @llvm.riscv.vsaddu.nxv2i64.nxv2i64(
915     <vscale x 2 x i64> undef,
916     <vscale x 2 x i64> %0,
917     <vscale x 2 x i64> %1,
918     i64 %2)
920   ret <vscale x 2 x i64> %a
923 declare <vscale x 2 x i64> @llvm.riscv.vsaddu.mask.nxv2i64.nxv2i64(
924   <vscale x 2 x i64>,
925   <vscale x 2 x i64>,
926   <vscale x 2 x i64>,
927   <vscale x 2 x i1>,
928   i64,
929   i64);
931 define <vscale x 2 x i64> @intrinsic_vsaddu_mask_vv_nxv2i64_nxv2i64_nxv2i64(<vscale x 2 x i64> %0, <vscale x 2 x i64> %1, <vscale x 2 x i64> %2, <vscale x 2 x i1> %3, i64 %4) nounwind {
932 ; CHECK-LABEL: intrinsic_vsaddu_mask_vv_nxv2i64_nxv2i64_nxv2i64:
933 ; CHECK:       # %bb.0: # %entry
934 ; CHECK-NEXT:    vsetvli zero, a0, e64, m2, ta, mu
935 ; CHECK-NEXT:    vsaddu.vv v8, v10, v12, v0.t
936 ; CHECK-NEXT:    ret
937 entry:
938   %a = call <vscale x 2 x i64> @llvm.riscv.vsaddu.mask.nxv2i64.nxv2i64(
939     <vscale x 2 x i64> %0,
940     <vscale x 2 x i64> %1,
941     <vscale x 2 x i64> %2,
942     <vscale x 2 x i1> %3,
943     i64 %4, i64 1)
945   ret <vscale x 2 x i64> %a
948 declare <vscale x 4 x i64> @llvm.riscv.vsaddu.nxv4i64.nxv4i64(
949   <vscale x 4 x i64>,
950   <vscale x 4 x i64>,
951   <vscale x 4 x i64>,
952   i64);
954 define <vscale x 4 x i64> @intrinsic_vsaddu_vv_nxv4i64_nxv4i64_nxv4i64(<vscale x 4 x i64> %0, <vscale x 4 x i64> %1, i64 %2) nounwind {
955 ; CHECK-LABEL: intrinsic_vsaddu_vv_nxv4i64_nxv4i64_nxv4i64:
956 ; CHECK:       # %bb.0: # %entry
957 ; CHECK-NEXT:    vsetvli zero, a0, e64, m4, ta, ma
958 ; CHECK-NEXT:    vsaddu.vv v8, v8, v12
959 ; CHECK-NEXT:    ret
960 entry:
961   %a = call <vscale x 4 x i64> @llvm.riscv.vsaddu.nxv4i64.nxv4i64(
962     <vscale x 4 x i64> undef,
963     <vscale x 4 x i64> %0,
964     <vscale x 4 x i64> %1,
965     i64 %2)
967   ret <vscale x 4 x i64> %a
970 declare <vscale x 4 x i64> @llvm.riscv.vsaddu.mask.nxv4i64.nxv4i64(
971   <vscale x 4 x i64>,
972   <vscale x 4 x i64>,
973   <vscale x 4 x i64>,
974   <vscale x 4 x i1>,
975   i64,
976   i64);
978 define <vscale x 4 x i64> @intrinsic_vsaddu_mask_vv_nxv4i64_nxv4i64_nxv4i64(<vscale x 4 x i64> %0, <vscale x 4 x i64> %1, <vscale x 4 x i64> %2, <vscale x 4 x i1> %3, i64 %4) nounwind {
979 ; CHECK-LABEL: intrinsic_vsaddu_mask_vv_nxv4i64_nxv4i64_nxv4i64:
980 ; CHECK:       # %bb.0: # %entry
981 ; CHECK-NEXT:    vsetvli zero, a0, e64, m4, ta, mu
982 ; CHECK-NEXT:    vsaddu.vv v8, v12, v16, v0.t
983 ; CHECK-NEXT:    ret
984 entry:
985   %a = call <vscale x 4 x i64> @llvm.riscv.vsaddu.mask.nxv4i64.nxv4i64(
986     <vscale x 4 x i64> %0,
987     <vscale x 4 x i64> %1,
988     <vscale x 4 x i64> %2,
989     <vscale x 4 x i1> %3,
990     i64 %4, i64 1)
992   ret <vscale x 4 x i64> %a
995 declare <vscale x 8 x i64> @llvm.riscv.vsaddu.nxv8i64.nxv8i64(
996   <vscale x 8 x i64>,
997   <vscale x 8 x i64>,
998   <vscale x 8 x i64>,
999   i64);
1001 define <vscale x 8 x i64> @intrinsic_vsaddu_vv_nxv8i64_nxv8i64_nxv8i64(<vscale x 8 x i64> %0, <vscale x 8 x i64> %1, i64 %2) nounwind {
1002 ; CHECK-LABEL: intrinsic_vsaddu_vv_nxv8i64_nxv8i64_nxv8i64:
1003 ; CHECK:       # %bb.0: # %entry
1004 ; CHECK-NEXT:    vsetvli zero, a0, e64, m8, ta, ma
1005 ; CHECK-NEXT:    vsaddu.vv v8, v8, v16
1006 ; CHECK-NEXT:    ret
1007 entry:
1008   %a = call <vscale x 8 x i64> @llvm.riscv.vsaddu.nxv8i64.nxv8i64(
1009     <vscale x 8 x i64> undef,
1010     <vscale x 8 x i64> %0,
1011     <vscale x 8 x i64> %1,
1012     i64 %2)
1014   ret <vscale x 8 x i64> %a
1017 declare <vscale x 8 x i64> @llvm.riscv.vsaddu.mask.nxv8i64.nxv8i64(
1018   <vscale x 8 x i64>,
1019   <vscale x 8 x i64>,
1020   <vscale x 8 x i64>,
1021   <vscale x 8 x i1>,
1022   i64,
1023   i64);
1025 define <vscale x 8 x i64> @intrinsic_vsaddu_mask_vv_nxv8i64_nxv8i64_nxv8i64(<vscale x 8 x i64> %0, <vscale x 8 x i64> %1, <vscale x 8 x i64> %2, <vscale x 8 x i1> %3, i64 %4) nounwind {
1026 ; CHECK-LABEL: intrinsic_vsaddu_mask_vv_nxv8i64_nxv8i64_nxv8i64:
1027 ; CHECK:       # %bb.0: # %entry
1028 ; CHECK-NEXT:    vl8re64.v v24, (a0)
1029 ; CHECK-NEXT:    vsetvli zero, a1, e64, m8, ta, mu
1030 ; CHECK-NEXT:    vsaddu.vv v8, v16, v24, v0.t
1031 ; CHECK-NEXT:    ret
1032 entry:
1033   %a = call <vscale x 8 x i64> @llvm.riscv.vsaddu.mask.nxv8i64.nxv8i64(
1034     <vscale x 8 x i64> %0,
1035     <vscale x 8 x i64> %1,
1036     <vscale x 8 x i64> %2,
1037     <vscale x 8 x i1> %3,
1038     i64 %4, i64 1)
1040   ret <vscale x 8 x i64> %a
1043 declare <vscale x 1 x i8> @llvm.riscv.vsaddu.nxv1i8.i8(
1044   <vscale x 1 x i8>,
1045   <vscale x 1 x i8>,
1046   i8,
1047   i64);
1049 define <vscale x 1 x i8> @intrinsic_vsaddu_vx_nxv1i8_nxv1i8_i8(<vscale x 1 x i8> %0, i8 %1, i64 %2) nounwind {
1050 ; CHECK-LABEL: intrinsic_vsaddu_vx_nxv1i8_nxv1i8_i8:
1051 ; CHECK:       # %bb.0: # %entry
1052 ; CHECK-NEXT:    vsetvli zero, a1, e8, mf8, ta, ma
1053 ; CHECK-NEXT:    vsaddu.vx v8, v8, a0
1054 ; CHECK-NEXT:    ret
1055 entry:
1056   %a = call <vscale x 1 x i8> @llvm.riscv.vsaddu.nxv1i8.i8(
1057     <vscale x 1 x i8> undef,
1058     <vscale x 1 x i8> %0,
1059     i8 %1,
1060     i64 %2)
1062   ret <vscale x 1 x i8> %a
1065 declare <vscale x 1 x i8> @llvm.riscv.vsaddu.mask.nxv1i8.i8(
1066   <vscale x 1 x i8>,
1067   <vscale x 1 x i8>,
1068   i8,
1069   <vscale x 1 x i1>,
1070   i64,
1071   i64);
1073 define <vscale x 1 x i8> @intrinsic_vsaddu_mask_vx_nxv1i8_nxv1i8_i8(<vscale x 1 x i8> %0, <vscale x 1 x i8> %1, i8 %2, <vscale x 1 x i1> %3, i64 %4) nounwind {
1074 ; CHECK-LABEL: intrinsic_vsaddu_mask_vx_nxv1i8_nxv1i8_i8:
1075 ; CHECK:       # %bb.0: # %entry
1076 ; CHECK-NEXT:    vsetvli zero, a1, e8, mf8, ta, mu
1077 ; CHECK-NEXT:    vsaddu.vx v8, v9, a0, v0.t
1078 ; CHECK-NEXT:    ret
1079 entry:
1080   %a = call <vscale x 1 x i8> @llvm.riscv.vsaddu.mask.nxv1i8.i8(
1081     <vscale x 1 x i8> %0,
1082     <vscale x 1 x i8> %1,
1083     i8 %2,
1084     <vscale x 1 x i1> %3,
1085     i64 %4, i64 1)
1087   ret <vscale x 1 x i8> %a
1090 declare <vscale x 2 x i8> @llvm.riscv.vsaddu.nxv2i8.i8(
1091   <vscale x 2 x i8>,
1092   <vscale x 2 x i8>,
1093   i8,
1094   i64);
1096 define <vscale x 2 x i8> @intrinsic_vsaddu_vx_nxv2i8_nxv2i8_i8(<vscale x 2 x i8> %0, i8 %1, i64 %2) nounwind {
1097 ; CHECK-LABEL: intrinsic_vsaddu_vx_nxv2i8_nxv2i8_i8:
1098 ; CHECK:       # %bb.0: # %entry
1099 ; CHECK-NEXT:    vsetvli zero, a1, e8, mf4, ta, ma
1100 ; CHECK-NEXT:    vsaddu.vx v8, v8, a0
1101 ; CHECK-NEXT:    ret
1102 entry:
1103   %a = call <vscale x 2 x i8> @llvm.riscv.vsaddu.nxv2i8.i8(
1104     <vscale x 2 x i8> undef,
1105     <vscale x 2 x i8> %0,
1106     i8 %1,
1107     i64 %2)
1109   ret <vscale x 2 x i8> %a
1112 declare <vscale x 2 x i8> @llvm.riscv.vsaddu.mask.nxv2i8.i8(
1113   <vscale x 2 x i8>,
1114   <vscale x 2 x i8>,
1115   i8,
1116   <vscale x 2 x i1>,
1117   i64,
1118   i64);
1120 define <vscale x 2 x i8> @intrinsic_vsaddu_mask_vx_nxv2i8_nxv2i8_i8(<vscale x 2 x i8> %0, <vscale x 2 x i8> %1, i8 %2, <vscale x 2 x i1> %3, i64 %4) nounwind {
1121 ; CHECK-LABEL: intrinsic_vsaddu_mask_vx_nxv2i8_nxv2i8_i8:
1122 ; CHECK:       # %bb.0: # %entry
1123 ; CHECK-NEXT:    vsetvli zero, a1, e8, mf4, ta, mu
1124 ; CHECK-NEXT:    vsaddu.vx v8, v9, a0, v0.t
1125 ; CHECK-NEXT:    ret
1126 entry:
1127   %a = call <vscale x 2 x i8> @llvm.riscv.vsaddu.mask.nxv2i8.i8(
1128     <vscale x 2 x i8> %0,
1129     <vscale x 2 x i8> %1,
1130     i8 %2,
1131     <vscale x 2 x i1> %3,
1132     i64 %4, i64 1)
1134   ret <vscale x 2 x i8> %a
1137 declare <vscale x 4 x i8> @llvm.riscv.vsaddu.nxv4i8.i8(
1138   <vscale x 4 x i8>,
1139   <vscale x 4 x i8>,
1140   i8,
1141   i64);
1143 define <vscale x 4 x i8> @intrinsic_vsaddu_vx_nxv4i8_nxv4i8_i8(<vscale x 4 x i8> %0, i8 %1, i64 %2) nounwind {
1144 ; CHECK-LABEL: intrinsic_vsaddu_vx_nxv4i8_nxv4i8_i8:
1145 ; CHECK:       # %bb.0: # %entry
1146 ; CHECK-NEXT:    vsetvli zero, a1, e8, mf2, ta, ma
1147 ; CHECK-NEXT:    vsaddu.vx v8, v8, a0
1148 ; CHECK-NEXT:    ret
1149 entry:
1150   %a = call <vscale x 4 x i8> @llvm.riscv.vsaddu.nxv4i8.i8(
1151     <vscale x 4 x i8> undef,
1152     <vscale x 4 x i8> %0,
1153     i8 %1,
1154     i64 %2)
1156   ret <vscale x 4 x i8> %a
1159 declare <vscale x 4 x i8> @llvm.riscv.vsaddu.mask.nxv4i8.i8(
1160   <vscale x 4 x i8>,
1161   <vscale x 4 x i8>,
1162   i8,
1163   <vscale x 4 x i1>,
1164   i64,
1165   i64);
1167 define <vscale x 4 x i8> @intrinsic_vsaddu_mask_vx_nxv4i8_nxv4i8_i8(<vscale x 4 x i8> %0, <vscale x 4 x i8> %1, i8 %2, <vscale x 4 x i1> %3, i64 %4) nounwind {
1168 ; CHECK-LABEL: intrinsic_vsaddu_mask_vx_nxv4i8_nxv4i8_i8:
1169 ; CHECK:       # %bb.0: # %entry
1170 ; CHECK-NEXT:    vsetvli zero, a1, e8, mf2, ta, mu
1171 ; CHECK-NEXT:    vsaddu.vx v8, v9, a0, v0.t
1172 ; CHECK-NEXT:    ret
1173 entry:
1174   %a = call <vscale x 4 x i8> @llvm.riscv.vsaddu.mask.nxv4i8.i8(
1175     <vscale x 4 x i8> %0,
1176     <vscale x 4 x i8> %1,
1177     i8 %2,
1178     <vscale x 4 x i1> %3,
1179     i64 %4, i64 1)
1181   ret <vscale x 4 x i8> %a
1184 declare <vscale x 8 x i8> @llvm.riscv.vsaddu.nxv8i8.i8(
1185   <vscale x 8 x i8>,
1186   <vscale x 8 x i8>,
1187   i8,
1188   i64);
1190 define <vscale x 8 x i8> @intrinsic_vsaddu_vx_nxv8i8_nxv8i8_i8(<vscale x 8 x i8> %0, i8 %1, i64 %2) nounwind {
1191 ; CHECK-LABEL: intrinsic_vsaddu_vx_nxv8i8_nxv8i8_i8:
1192 ; CHECK:       # %bb.0: # %entry
1193 ; CHECK-NEXT:    vsetvli zero, a1, e8, m1, ta, ma
1194 ; CHECK-NEXT:    vsaddu.vx v8, v8, a0
1195 ; CHECK-NEXT:    ret
1196 entry:
1197   %a = call <vscale x 8 x i8> @llvm.riscv.vsaddu.nxv8i8.i8(
1198     <vscale x 8 x i8> undef,
1199     <vscale x 8 x i8> %0,
1200     i8 %1,
1201     i64 %2)
1203   ret <vscale x 8 x i8> %a
1206 declare <vscale x 8 x i8> @llvm.riscv.vsaddu.mask.nxv8i8.i8(
1207   <vscale x 8 x i8>,
1208   <vscale x 8 x i8>,
1209   i8,
1210   <vscale x 8 x i1>,
1211   i64,
1212   i64);
1214 define <vscale x 8 x i8> @intrinsic_vsaddu_mask_vx_nxv8i8_nxv8i8_i8(<vscale x 8 x i8> %0, <vscale x 8 x i8> %1, i8 %2, <vscale x 8 x i1> %3, i64 %4) nounwind {
1215 ; CHECK-LABEL: intrinsic_vsaddu_mask_vx_nxv8i8_nxv8i8_i8:
1216 ; CHECK:       # %bb.0: # %entry
1217 ; CHECK-NEXT:    vsetvli zero, a1, e8, m1, ta, mu
1218 ; CHECK-NEXT:    vsaddu.vx v8, v9, a0, v0.t
1219 ; CHECK-NEXT:    ret
1220 entry:
1221   %a = call <vscale x 8 x i8> @llvm.riscv.vsaddu.mask.nxv8i8.i8(
1222     <vscale x 8 x i8> %0,
1223     <vscale x 8 x i8> %1,
1224     i8 %2,
1225     <vscale x 8 x i1> %3,
1226     i64 %4, i64 1)
1228   ret <vscale x 8 x i8> %a
1231 declare <vscale x 16 x i8> @llvm.riscv.vsaddu.nxv16i8.i8(
1232   <vscale x 16 x i8>,
1233   <vscale x 16 x i8>,
1234   i8,
1235   i64);
1237 define <vscale x 16 x i8> @intrinsic_vsaddu_vx_nxv16i8_nxv16i8_i8(<vscale x 16 x i8> %0, i8 %1, i64 %2) nounwind {
1238 ; CHECK-LABEL: intrinsic_vsaddu_vx_nxv16i8_nxv16i8_i8:
1239 ; CHECK:       # %bb.0: # %entry
1240 ; CHECK-NEXT:    vsetvli zero, a1, e8, m2, ta, ma
1241 ; CHECK-NEXT:    vsaddu.vx v8, v8, a0
1242 ; CHECK-NEXT:    ret
1243 entry:
1244   %a = call <vscale x 16 x i8> @llvm.riscv.vsaddu.nxv16i8.i8(
1245     <vscale x 16 x i8> undef,
1246     <vscale x 16 x i8> %0,
1247     i8 %1,
1248     i64 %2)
1250   ret <vscale x 16 x i8> %a
1253 declare <vscale x 16 x i8> @llvm.riscv.vsaddu.mask.nxv16i8.i8(
1254   <vscale x 16 x i8>,
1255   <vscale x 16 x i8>,
1256   i8,
1257   <vscale x 16 x i1>,
1258   i64,
1259   i64);
1261 define <vscale x 16 x i8> @intrinsic_vsaddu_mask_vx_nxv16i8_nxv16i8_i8(<vscale x 16 x i8> %0, <vscale x 16 x i8> %1, i8 %2, <vscale x 16 x i1> %3, i64 %4) nounwind {
1262 ; CHECK-LABEL: intrinsic_vsaddu_mask_vx_nxv16i8_nxv16i8_i8:
1263 ; CHECK:       # %bb.0: # %entry
1264 ; CHECK-NEXT:    vsetvli zero, a1, e8, m2, ta, mu
1265 ; CHECK-NEXT:    vsaddu.vx v8, v10, a0, v0.t
1266 ; CHECK-NEXT:    ret
1267 entry:
1268   %a = call <vscale x 16 x i8> @llvm.riscv.vsaddu.mask.nxv16i8.i8(
1269     <vscale x 16 x i8> %0,
1270     <vscale x 16 x i8> %1,
1271     i8 %2,
1272     <vscale x 16 x i1> %3,
1273     i64 %4, i64 1)
1275   ret <vscale x 16 x i8> %a
1278 declare <vscale x 32 x i8> @llvm.riscv.vsaddu.nxv32i8.i8(
1279   <vscale x 32 x i8>,
1280   <vscale x 32 x i8>,
1281   i8,
1282   i64);
1284 define <vscale x 32 x i8> @intrinsic_vsaddu_vx_nxv32i8_nxv32i8_i8(<vscale x 32 x i8> %0, i8 %1, i64 %2) nounwind {
1285 ; CHECK-LABEL: intrinsic_vsaddu_vx_nxv32i8_nxv32i8_i8:
1286 ; CHECK:       # %bb.0: # %entry
1287 ; CHECK-NEXT:    vsetvli zero, a1, e8, m4, ta, ma
1288 ; CHECK-NEXT:    vsaddu.vx v8, v8, a0
1289 ; CHECK-NEXT:    ret
1290 entry:
1291   %a = call <vscale x 32 x i8> @llvm.riscv.vsaddu.nxv32i8.i8(
1292     <vscale x 32 x i8> undef,
1293     <vscale x 32 x i8> %0,
1294     i8 %1,
1295     i64 %2)
1297   ret <vscale x 32 x i8> %a
1300 declare <vscale x 32 x i8> @llvm.riscv.vsaddu.mask.nxv32i8.i8(
1301   <vscale x 32 x i8>,
1302   <vscale x 32 x i8>,
1303   i8,
1304   <vscale x 32 x i1>,
1305   i64,
1306   i64);
1308 define <vscale x 32 x i8> @intrinsic_vsaddu_mask_vx_nxv32i8_nxv32i8_i8(<vscale x 32 x i8> %0, <vscale x 32 x i8> %1, i8 %2, <vscale x 32 x i1> %3, i64 %4) nounwind {
1309 ; CHECK-LABEL: intrinsic_vsaddu_mask_vx_nxv32i8_nxv32i8_i8:
1310 ; CHECK:       # %bb.0: # %entry
1311 ; CHECK-NEXT:    vsetvli zero, a1, e8, m4, ta, mu
1312 ; CHECK-NEXT:    vsaddu.vx v8, v12, a0, v0.t
1313 ; CHECK-NEXT:    ret
1314 entry:
1315   %a = call <vscale x 32 x i8> @llvm.riscv.vsaddu.mask.nxv32i8.i8(
1316     <vscale x 32 x i8> %0,
1317     <vscale x 32 x i8> %1,
1318     i8 %2,
1319     <vscale x 32 x i1> %3,
1320     i64 %4, i64 1)
1322   ret <vscale x 32 x i8> %a
1325 declare <vscale x 64 x i8> @llvm.riscv.vsaddu.nxv64i8.i8(
1326   <vscale x 64 x i8>,
1327   <vscale x 64 x i8>,
1328   i8,
1329   i64);
1331 define <vscale x 64 x i8> @intrinsic_vsaddu_vx_nxv64i8_nxv64i8_i8(<vscale x 64 x i8> %0, i8 %1, i64 %2) nounwind {
1332 ; CHECK-LABEL: intrinsic_vsaddu_vx_nxv64i8_nxv64i8_i8:
1333 ; CHECK:       # %bb.0: # %entry
1334 ; CHECK-NEXT:    vsetvli zero, a1, e8, m8, ta, ma
1335 ; CHECK-NEXT:    vsaddu.vx v8, v8, a0
1336 ; CHECK-NEXT:    ret
1337 entry:
1338   %a = call <vscale x 64 x i8> @llvm.riscv.vsaddu.nxv64i8.i8(
1339     <vscale x 64 x i8> undef,
1340     <vscale x 64 x i8> %0,
1341     i8 %1,
1342     i64 %2)
1344   ret <vscale x 64 x i8> %a
1347 declare <vscale x 64 x i8> @llvm.riscv.vsaddu.mask.nxv64i8.i8(
1348   <vscale x 64 x i8>,
1349   <vscale x 64 x i8>,
1350   i8,
1351   <vscale x 64 x i1>,
1352   i64,
1353   i64);
1355 define <vscale x 64 x i8> @intrinsic_vsaddu_mask_vx_nxv64i8_nxv64i8_i8(<vscale x 64 x i8> %0, <vscale x 64 x i8> %1, i8 %2, <vscale x 64 x i1> %3, i64 %4) nounwind {
1356 ; CHECK-LABEL: intrinsic_vsaddu_mask_vx_nxv64i8_nxv64i8_i8:
1357 ; CHECK:       # %bb.0: # %entry
1358 ; CHECK-NEXT:    vsetvli zero, a1, e8, m8, ta, mu
1359 ; CHECK-NEXT:    vsaddu.vx v8, v16, a0, v0.t
1360 ; CHECK-NEXT:    ret
1361 entry:
1362   %a = call <vscale x 64 x i8> @llvm.riscv.vsaddu.mask.nxv64i8.i8(
1363     <vscale x 64 x i8> %0,
1364     <vscale x 64 x i8> %1,
1365     i8 %2,
1366     <vscale x 64 x i1> %3,
1367     i64 %4, i64 1)
1369   ret <vscale x 64 x i8> %a
1372 declare <vscale x 1 x i16> @llvm.riscv.vsaddu.nxv1i16.i16(
1373   <vscale x 1 x i16>,
1374   <vscale x 1 x i16>,
1375   i16,
1376   i64);
1378 define <vscale x 1 x i16> @intrinsic_vsaddu_vx_nxv1i16_nxv1i16_i16(<vscale x 1 x i16> %0, i16 %1, i64 %2) nounwind {
1379 ; CHECK-LABEL: intrinsic_vsaddu_vx_nxv1i16_nxv1i16_i16:
1380 ; CHECK:       # %bb.0: # %entry
1381 ; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma
1382 ; CHECK-NEXT:    vsaddu.vx v8, v8, a0
1383 ; CHECK-NEXT:    ret
1384 entry:
1385   %a = call <vscale x 1 x i16> @llvm.riscv.vsaddu.nxv1i16.i16(
1386     <vscale x 1 x i16> undef,
1387     <vscale x 1 x i16> %0,
1388     i16 %1,
1389     i64 %2)
1391   ret <vscale x 1 x i16> %a
1394 declare <vscale x 1 x i16> @llvm.riscv.vsaddu.mask.nxv1i16.i16(
1395   <vscale x 1 x i16>,
1396   <vscale x 1 x i16>,
1397   i16,
1398   <vscale x 1 x i1>,
1399   i64,
1400   i64);
1402 define <vscale x 1 x i16> @intrinsic_vsaddu_mask_vx_nxv1i16_nxv1i16_i16(<vscale x 1 x i16> %0, <vscale x 1 x i16> %1, i16 %2, <vscale x 1 x i1> %3, i64 %4) nounwind {
1403 ; CHECK-LABEL: intrinsic_vsaddu_mask_vx_nxv1i16_nxv1i16_i16:
1404 ; CHECK:       # %bb.0: # %entry
1405 ; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, mu
1406 ; CHECK-NEXT:    vsaddu.vx v8, v9, a0, v0.t
1407 ; CHECK-NEXT:    ret
1408 entry:
1409   %a = call <vscale x 1 x i16> @llvm.riscv.vsaddu.mask.nxv1i16.i16(
1410     <vscale x 1 x i16> %0,
1411     <vscale x 1 x i16> %1,
1412     i16 %2,
1413     <vscale x 1 x i1> %3,
1414     i64 %4, i64 1)
1416   ret <vscale x 1 x i16> %a
1419 declare <vscale x 2 x i16> @llvm.riscv.vsaddu.nxv2i16.i16(
1420   <vscale x 2 x i16>,
1421   <vscale x 2 x i16>,
1422   i16,
1423   i64);
1425 define <vscale x 2 x i16> @intrinsic_vsaddu_vx_nxv2i16_nxv2i16_i16(<vscale x 2 x i16> %0, i16 %1, i64 %2) nounwind {
1426 ; CHECK-LABEL: intrinsic_vsaddu_vx_nxv2i16_nxv2i16_i16:
1427 ; CHECK:       # %bb.0: # %entry
1428 ; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma
1429 ; CHECK-NEXT:    vsaddu.vx v8, v8, a0
1430 ; CHECK-NEXT:    ret
1431 entry:
1432   %a = call <vscale x 2 x i16> @llvm.riscv.vsaddu.nxv2i16.i16(
1433     <vscale x 2 x i16> undef,
1434     <vscale x 2 x i16> %0,
1435     i16 %1,
1436     i64 %2)
1438   ret <vscale x 2 x i16> %a
1441 declare <vscale x 2 x i16> @llvm.riscv.vsaddu.mask.nxv2i16.i16(
1442   <vscale x 2 x i16>,
1443   <vscale x 2 x i16>,
1444   i16,
1445   <vscale x 2 x i1>,
1446   i64,
1447   i64);
1449 define <vscale x 2 x i16> @intrinsic_vsaddu_mask_vx_nxv2i16_nxv2i16_i16(<vscale x 2 x i16> %0, <vscale x 2 x i16> %1, i16 %2, <vscale x 2 x i1> %3, i64 %4) nounwind {
1450 ; CHECK-LABEL: intrinsic_vsaddu_mask_vx_nxv2i16_nxv2i16_i16:
1451 ; CHECK:       # %bb.0: # %entry
1452 ; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, mu
1453 ; CHECK-NEXT:    vsaddu.vx v8, v9, a0, v0.t
1454 ; CHECK-NEXT:    ret
1455 entry:
1456   %a = call <vscale x 2 x i16> @llvm.riscv.vsaddu.mask.nxv2i16.i16(
1457     <vscale x 2 x i16> %0,
1458     <vscale x 2 x i16> %1,
1459     i16 %2,
1460     <vscale x 2 x i1> %3,
1461     i64 %4, i64 1)
1463   ret <vscale x 2 x i16> %a
1466 declare <vscale x 4 x i16> @llvm.riscv.vsaddu.nxv4i16.i16(
1467   <vscale x 4 x i16>,
1468   <vscale x 4 x i16>,
1469   i16,
1470   i64);
1472 define <vscale x 4 x i16> @intrinsic_vsaddu_vx_nxv4i16_nxv4i16_i16(<vscale x 4 x i16> %0, i16 %1, i64 %2) nounwind {
1473 ; CHECK-LABEL: intrinsic_vsaddu_vx_nxv4i16_nxv4i16_i16:
1474 ; CHECK:       # %bb.0: # %entry
1475 ; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma
1476 ; CHECK-NEXT:    vsaddu.vx v8, v8, a0
1477 ; CHECK-NEXT:    ret
1478 entry:
1479   %a = call <vscale x 4 x i16> @llvm.riscv.vsaddu.nxv4i16.i16(
1480     <vscale x 4 x i16> undef,
1481     <vscale x 4 x i16> %0,
1482     i16 %1,
1483     i64 %2)
1485   ret <vscale x 4 x i16> %a
1488 declare <vscale x 4 x i16> @llvm.riscv.vsaddu.mask.nxv4i16.i16(
1489   <vscale x 4 x i16>,
1490   <vscale x 4 x i16>,
1491   i16,
1492   <vscale x 4 x i1>,
1493   i64,
1494   i64);
1496 define <vscale x 4 x i16> @intrinsic_vsaddu_mask_vx_nxv4i16_nxv4i16_i16(<vscale x 4 x i16> %0, <vscale x 4 x i16> %1, i16 %2, <vscale x 4 x i1> %3, i64 %4) nounwind {
1497 ; CHECK-LABEL: intrinsic_vsaddu_mask_vx_nxv4i16_nxv4i16_i16:
1498 ; CHECK:       # %bb.0: # %entry
1499 ; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, mu
1500 ; CHECK-NEXT:    vsaddu.vx v8, v9, a0, v0.t
1501 ; CHECK-NEXT:    ret
1502 entry:
1503   %a = call <vscale x 4 x i16> @llvm.riscv.vsaddu.mask.nxv4i16.i16(
1504     <vscale x 4 x i16> %0,
1505     <vscale x 4 x i16> %1,
1506     i16 %2,
1507     <vscale x 4 x i1> %3,
1508     i64 %4, i64 1)
1510   ret <vscale x 4 x i16> %a
1513 declare <vscale x 8 x i16> @llvm.riscv.vsaddu.nxv8i16.i16(
1514   <vscale x 8 x i16>,
1515   <vscale x 8 x i16>,
1516   i16,
1517   i64);
1519 define <vscale x 8 x i16> @intrinsic_vsaddu_vx_nxv8i16_nxv8i16_i16(<vscale x 8 x i16> %0, i16 %1, i64 %2) nounwind {
1520 ; CHECK-LABEL: intrinsic_vsaddu_vx_nxv8i16_nxv8i16_i16:
1521 ; CHECK:       # %bb.0: # %entry
1522 ; CHECK-NEXT:    vsetvli zero, a1, e16, m2, ta, ma
1523 ; CHECK-NEXT:    vsaddu.vx v8, v8, a0
1524 ; CHECK-NEXT:    ret
1525 entry:
1526   %a = call <vscale x 8 x i16> @llvm.riscv.vsaddu.nxv8i16.i16(
1527     <vscale x 8 x i16> undef,
1528     <vscale x 8 x i16> %0,
1529     i16 %1,
1530     i64 %2)
1532   ret <vscale x 8 x i16> %a
1535 declare <vscale x 8 x i16> @llvm.riscv.vsaddu.mask.nxv8i16.i16(
1536   <vscale x 8 x i16>,
1537   <vscale x 8 x i16>,
1538   i16,
1539   <vscale x 8 x i1>,
1540   i64,
1541   i64);
1543 define <vscale x 8 x i16> @intrinsic_vsaddu_mask_vx_nxv8i16_nxv8i16_i16(<vscale x 8 x i16> %0, <vscale x 8 x i16> %1, i16 %2, <vscale x 8 x i1> %3, i64 %4) nounwind {
1544 ; CHECK-LABEL: intrinsic_vsaddu_mask_vx_nxv8i16_nxv8i16_i16:
1545 ; CHECK:       # %bb.0: # %entry
1546 ; CHECK-NEXT:    vsetvli zero, a1, e16, m2, ta, mu
1547 ; CHECK-NEXT:    vsaddu.vx v8, v10, a0, v0.t
1548 ; CHECK-NEXT:    ret
1549 entry:
1550   %a = call <vscale x 8 x i16> @llvm.riscv.vsaddu.mask.nxv8i16.i16(
1551     <vscale x 8 x i16> %0,
1552     <vscale x 8 x i16> %1,
1553     i16 %2,
1554     <vscale x 8 x i1> %3,
1555     i64 %4, i64 1)
1557   ret <vscale x 8 x i16> %a
1560 declare <vscale x 16 x i16> @llvm.riscv.vsaddu.nxv16i16.i16(
1561   <vscale x 16 x i16>,
1562   <vscale x 16 x i16>,
1563   i16,
1564   i64);
1566 define <vscale x 16 x i16> @intrinsic_vsaddu_vx_nxv16i16_nxv16i16_i16(<vscale x 16 x i16> %0, i16 %1, i64 %2) nounwind {
1567 ; CHECK-LABEL: intrinsic_vsaddu_vx_nxv16i16_nxv16i16_i16:
1568 ; CHECK:       # %bb.0: # %entry
1569 ; CHECK-NEXT:    vsetvli zero, a1, e16, m4, ta, ma
1570 ; CHECK-NEXT:    vsaddu.vx v8, v8, a0
1571 ; CHECK-NEXT:    ret
1572 entry:
1573   %a = call <vscale x 16 x i16> @llvm.riscv.vsaddu.nxv16i16.i16(
1574     <vscale x 16 x i16> undef,
1575     <vscale x 16 x i16> %0,
1576     i16 %1,
1577     i64 %2)
1579   ret <vscale x 16 x i16> %a
1582 declare <vscale x 16 x i16> @llvm.riscv.vsaddu.mask.nxv16i16.i16(
1583   <vscale x 16 x i16>,
1584   <vscale x 16 x i16>,
1585   i16,
1586   <vscale x 16 x i1>,
1587   i64,
1588   i64);
1590 define <vscale x 16 x i16> @intrinsic_vsaddu_mask_vx_nxv16i16_nxv16i16_i16(<vscale x 16 x i16> %0, <vscale x 16 x i16> %1, i16 %2, <vscale x 16 x i1> %3, i64 %4) nounwind {
1591 ; CHECK-LABEL: intrinsic_vsaddu_mask_vx_nxv16i16_nxv16i16_i16:
1592 ; CHECK:       # %bb.0: # %entry
1593 ; CHECK-NEXT:    vsetvli zero, a1, e16, m4, ta, mu
1594 ; CHECK-NEXT:    vsaddu.vx v8, v12, a0, v0.t
1595 ; CHECK-NEXT:    ret
1596 entry:
1597   %a = call <vscale x 16 x i16> @llvm.riscv.vsaddu.mask.nxv16i16.i16(
1598     <vscale x 16 x i16> %0,
1599     <vscale x 16 x i16> %1,
1600     i16 %2,
1601     <vscale x 16 x i1> %3,
1602     i64 %4, i64 1)
1604   ret <vscale x 16 x i16> %a
1607 declare <vscale x 32 x i16> @llvm.riscv.vsaddu.nxv32i16.i16(
1608   <vscale x 32 x i16>,
1609   <vscale x 32 x i16>,
1610   i16,
1611   i64);
1613 define <vscale x 32 x i16> @intrinsic_vsaddu_vx_nxv32i16_nxv32i16_i16(<vscale x 32 x i16> %0, i16 %1, i64 %2) nounwind {
1614 ; CHECK-LABEL: intrinsic_vsaddu_vx_nxv32i16_nxv32i16_i16:
1615 ; CHECK:       # %bb.0: # %entry
1616 ; CHECK-NEXT:    vsetvli zero, a1, e16, m8, ta, ma
1617 ; CHECK-NEXT:    vsaddu.vx v8, v8, a0
1618 ; CHECK-NEXT:    ret
1619 entry:
1620   %a = call <vscale x 32 x i16> @llvm.riscv.vsaddu.nxv32i16.i16(
1621     <vscale x 32 x i16> undef,
1622     <vscale x 32 x i16> %0,
1623     i16 %1,
1624     i64 %2)
1626   ret <vscale x 32 x i16> %a
1629 declare <vscale x 32 x i16> @llvm.riscv.vsaddu.mask.nxv32i16.i16(
1630   <vscale x 32 x i16>,
1631   <vscale x 32 x i16>,
1632   i16,
1633   <vscale x 32 x i1>,
1634   i64,
1635   i64);
1637 define <vscale x 32 x i16> @intrinsic_vsaddu_mask_vx_nxv32i16_nxv32i16_i16(<vscale x 32 x i16> %0, <vscale x 32 x i16> %1, i16 %2, <vscale x 32 x i1> %3, i64 %4) nounwind {
1638 ; CHECK-LABEL: intrinsic_vsaddu_mask_vx_nxv32i16_nxv32i16_i16:
1639 ; CHECK:       # %bb.0: # %entry
1640 ; CHECK-NEXT:    vsetvli zero, a1, e16, m8, ta, mu
1641 ; CHECK-NEXT:    vsaddu.vx v8, v16, a0, v0.t
1642 ; CHECK-NEXT:    ret
1643 entry:
1644   %a = call <vscale x 32 x i16> @llvm.riscv.vsaddu.mask.nxv32i16.i16(
1645     <vscale x 32 x i16> %0,
1646     <vscale x 32 x i16> %1,
1647     i16 %2,
1648     <vscale x 32 x i1> %3,
1649     i64 %4, i64 1)
1651   ret <vscale x 32 x i16> %a
1654 declare <vscale x 1 x i32> @llvm.riscv.vsaddu.nxv1i32.i32(
1655   <vscale x 1 x i32>,
1656   <vscale x 1 x i32>,
1657   i32,
1658   i64);
1660 define <vscale x 1 x i32> @intrinsic_vsaddu_vx_nxv1i32_nxv1i32_i32(<vscale x 1 x i32> %0, i32 %1, i64 %2) nounwind {
1661 ; CHECK-LABEL: intrinsic_vsaddu_vx_nxv1i32_nxv1i32_i32:
1662 ; CHECK:       # %bb.0: # %entry
1663 ; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, ta, ma
1664 ; CHECK-NEXT:    vsaddu.vx v8, v8, a0
1665 ; CHECK-NEXT:    ret
1666 entry:
1667   %a = call <vscale x 1 x i32> @llvm.riscv.vsaddu.nxv1i32.i32(
1668     <vscale x 1 x i32> undef,
1669     <vscale x 1 x i32> %0,
1670     i32 %1,
1671     i64 %2)
1673   ret <vscale x 1 x i32> %a
1676 declare <vscale x 1 x i32> @llvm.riscv.vsaddu.mask.nxv1i32.i32(
1677   <vscale x 1 x i32>,
1678   <vscale x 1 x i32>,
1679   i32,
1680   <vscale x 1 x i1>,
1681   i64,
1682   i64);
1684 define <vscale x 1 x i32> @intrinsic_vsaddu_mask_vx_nxv1i32_nxv1i32_i32(<vscale x 1 x i32> %0, <vscale x 1 x i32> %1, i32 %2, <vscale x 1 x i1> %3, i64 %4) nounwind {
1685 ; CHECK-LABEL: intrinsic_vsaddu_mask_vx_nxv1i32_nxv1i32_i32:
1686 ; CHECK:       # %bb.0: # %entry
1687 ; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, ta, mu
1688 ; CHECK-NEXT:    vsaddu.vx v8, v9, a0, v0.t
1689 ; CHECK-NEXT:    ret
1690 entry:
1691   %a = call <vscale x 1 x i32> @llvm.riscv.vsaddu.mask.nxv1i32.i32(
1692     <vscale x 1 x i32> %0,
1693     <vscale x 1 x i32> %1,
1694     i32 %2,
1695     <vscale x 1 x i1> %3,
1696     i64 %4, i64 1)
1698   ret <vscale x 1 x i32> %a
1701 declare <vscale x 2 x i32> @llvm.riscv.vsaddu.nxv2i32.i32(
1702   <vscale x 2 x i32>,
1703   <vscale x 2 x i32>,
1704   i32,
1705   i64);
1707 define <vscale x 2 x i32> @intrinsic_vsaddu_vx_nxv2i32_nxv2i32_i32(<vscale x 2 x i32> %0, i32 %1, i64 %2) nounwind {
1708 ; CHECK-LABEL: intrinsic_vsaddu_vx_nxv2i32_nxv2i32_i32:
1709 ; CHECK:       # %bb.0: # %entry
1710 ; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, ma
1711 ; CHECK-NEXT:    vsaddu.vx v8, v8, a0
1712 ; CHECK-NEXT:    ret
1713 entry:
1714   %a = call <vscale x 2 x i32> @llvm.riscv.vsaddu.nxv2i32.i32(
1715     <vscale x 2 x i32> undef,
1716     <vscale x 2 x i32> %0,
1717     i32 %1,
1718     i64 %2)
1720   ret <vscale x 2 x i32> %a
1723 declare <vscale x 2 x i32> @llvm.riscv.vsaddu.mask.nxv2i32.i32(
1724   <vscale x 2 x i32>,
1725   <vscale x 2 x i32>,
1726   i32,
1727   <vscale x 2 x i1>,
1728   i64,
1729   i64);
1731 define <vscale x 2 x i32> @intrinsic_vsaddu_mask_vx_nxv2i32_nxv2i32_i32(<vscale x 2 x i32> %0, <vscale x 2 x i32> %1, i32 %2, <vscale x 2 x i1> %3, i64 %4) nounwind {
1732 ; CHECK-LABEL: intrinsic_vsaddu_mask_vx_nxv2i32_nxv2i32_i32:
1733 ; CHECK:       # %bb.0: # %entry
1734 ; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, mu
1735 ; CHECK-NEXT:    vsaddu.vx v8, v9, a0, v0.t
1736 ; CHECK-NEXT:    ret
1737 entry:
1738   %a = call <vscale x 2 x i32> @llvm.riscv.vsaddu.mask.nxv2i32.i32(
1739     <vscale x 2 x i32> %0,
1740     <vscale x 2 x i32> %1,
1741     i32 %2,
1742     <vscale x 2 x i1> %3,
1743     i64 %4, i64 1)
1745   ret <vscale x 2 x i32> %a
1748 declare <vscale x 4 x i32> @llvm.riscv.vsaddu.nxv4i32.i32(
1749   <vscale x 4 x i32>,
1750   <vscale x 4 x i32>,
1751   i32,
1752   i64);
1754 define <vscale x 4 x i32> @intrinsic_vsaddu_vx_nxv4i32_nxv4i32_i32(<vscale x 4 x i32> %0, i32 %1, i64 %2) nounwind {
1755 ; CHECK-LABEL: intrinsic_vsaddu_vx_nxv4i32_nxv4i32_i32:
1756 ; CHECK:       # %bb.0: # %entry
1757 ; CHECK-NEXT:    vsetvli zero, a1, e32, m2, ta, ma
1758 ; CHECK-NEXT:    vsaddu.vx v8, v8, a0
1759 ; CHECK-NEXT:    ret
1760 entry:
1761   %a = call <vscale x 4 x i32> @llvm.riscv.vsaddu.nxv4i32.i32(
1762     <vscale x 4 x i32> undef,
1763     <vscale x 4 x i32> %0,
1764     i32 %1,
1765     i64 %2)
1767   ret <vscale x 4 x i32> %a
1770 declare <vscale x 4 x i32> @llvm.riscv.vsaddu.mask.nxv4i32.i32(
1771   <vscale x 4 x i32>,
1772   <vscale x 4 x i32>,
1773   i32,
1774   <vscale x 4 x i1>,
1775   i64,
1776   i64);
1778 define <vscale x 4 x i32> @intrinsic_vsaddu_mask_vx_nxv4i32_nxv4i32_i32(<vscale x 4 x i32> %0, <vscale x 4 x i32> %1, i32 %2, <vscale x 4 x i1> %3, i64 %4) nounwind {
1779 ; CHECK-LABEL: intrinsic_vsaddu_mask_vx_nxv4i32_nxv4i32_i32:
1780 ; CHECK:       # %bb.0: # %entry
1781 ; CHECK-NEXT:    vsetvli zero, a1, e32, m2, ta, mu
1782 ; CHECK-NEXT:    vsaddu.vx v8, v10, a0, v0.t
1783 ; CHECK-NEXT:    ret
1784 entry:
1785   %a = call <vscale x 4 x i32> @llvm.riscv.vsaddu.mask.nxv4i32.i32(
1786     <vscale x 4 x i32> %0,
1787     <vscale x 4 x i32> %1,
1788     i32 %2,
1789     <vscale x 4 x i1> %3,
1790     i64 %4, i64 1)
1792   ret <vscale x 4 x i32> %a
1795 declare <vscale x 8 x i32> @llvm.riscv.vsaddu.nxv8i32.i32(
1796   <vscale x 8 x i32>,
1797   <vscale x 8 x i32>,
1798   i32,
1799   i64);
1801 define <vscale x 8 x i32> @intrinsic_vsaddu_vx_nxv8i32_nxv8i32_i32(<vscale x 8 x i32> %0, i32 %1, i64 %2) nounwind {
1802 ; CHECK-LABEL: intrinsic_vsaddu_vx_nxv8i32_nxv8i32_i32:
1803 ; CHECK:       # %bb.0: # %entry
1804 ; CHECK-NEXT:    vsetvli zero, a1, e32, m4, ta, ma
1805 ; CHECK-NEXT:    vsaddu.vx v8, v8, a0
1806 ; CHECK-NEXT:    ret
1807 entry:
1808   %a = call <vscale x 8 x i32> @llvm.riscv.vsaddu.nxv8i32.i32(
1809     <vscale x 8 x i32> undef,
1810     <vscale x 8 x i32> %0,
1811     i32 %1,
1812     i64 %2)
1814   ret <vscale x 8 x i32> %a
1817 declare <vscale x 8 x i32> @llvm.riscv.vsaddu.mask.nxv8i32.i32(
1818   <vscale x 8 x i32>,
1819   <vscale x 8 x i32>,
1820   i32,
1821   <vscale x 8 x i1>,
1822   i64,
1823   i64);
1825 define <vscale x 8 x i32> @intrinsic_vsaddu_mask_vx_nxv8i32_nxv8i32_i32(<vscale x 8 x i32> %0, <vscale x 8 x i32> %1, i32 %2, <vscale x 8 x i1> %3, i64 %4) nounwind {
1826 ; CHECK-LABEL: intrinsic_vsaddu_mask_vx_nxv8i32_nxv8i32_i32:
1827 ; CHECK:       # %bb.0: # %entry
1828 ; CHECK-NEXT:    vsetvli zero, a1, e32, m4, ta, mu
1829 ; CHECK-NEXT:    vsaddu.vx v8, v12, a0, v0.t
1830 ; CHECK-NEXT:    ret
1831 entry:
1832   %a = call <vscale x 8 x i32> @llvm.riscv.vsaddu.mask.nxv8i32.i32(
1833     <vscale x 8 x i32> %0,
1834     <vscale x 8 x i32> %1,
1835     i32 %2,
1836     <vscale x 8 x i1> %3,
1837     i64 %4, i64 1)
1839   ret <vscale x 8 x i32> %a
1842 declare <vscale x 16 x i32> @llvm.riscv.vsaddu.nxv16i32.i32(
1843   <vscale x 16 x i32>,
1844   <vscale x 16 x i32>,
1845   i32,
1846   i64);
1848 define <vscale x 16 x i32> @intrinsic_vsaddu_vx_nxv16i32_nxv16i32_i32(<vscale x 16 x i32> %0, i32 %1, i64 %2) nounwind {
1849 ; CHECK-LABEL: intrinsic_vsaddu_vx_nxv16i32_nxv16i32_i32:
1850 ; CHECK:       # %bb.0: # %entry
1851 ; CHECK-NEXT:    vsetvli zero, a1, e32, m8, ta, ma
1852 ; CHECK-NEXT:    vsaddu.vx v8, v8, a0
1853 ; CHECK-NEXT:    ret
1854 entry:
1855   %a = call <vscale x 16 x i32> @llvm.riscv.vsaddu.nxv16i32.i32(
1856     <vscale x 16 x i32> undef,
1857     <vscale x 16 x i32> %0,
1858     i32 %1,
1859     i64 %2)
1861   ret <vscale x 16 x i32> %a
1864 declare <vscale x 16 x i32> @llvm.riscv.vsaddu.mask.nxv16i32.i32(
1865   <vscale x 16 x i32>,
1866   <vscale x 16 x i32>,
1867   i32,
1868   <vscale x 16 x i1>,
1869   i64,
1870   i64);
1872 define <vscale x 16 x i32> @intrinsic_vsaddu_mask_vx_nxv16i32_nxv16i32_i32(<vscale x 16 x i32> %0, <vscale x 16 x i32> %1, i32 %2, <vscale x 16 x i1> %3, i64 %4) nounwind {
1873 ; CHECK-LABEL: intrinsic_vsaddu_mask_vx_nxv16i32_nxv16i32_i32:
1874 ; CHECK:       # %bb.0: # %entry
1875 ; CHECK-NEXT:    vsetvli zero, a1, e32, m8, ta, mu
1876 ; CHECK-NEXT:    vsaddu.vx v8, v16, a0, v0.t
1877 ; CHECK-NEXT:    ret
1878 entry:
1879   %a = call <vscale x 16 x i32> @llvm.riscv.vsaddu.mask.nxv16i32.i32(
1880     <vscale x 16 x i32> %0,
1881     <vscale x 16 x i32> %1,
1882     i32 %2,
1883     <vscale x 16 x i1> %3,
1884     i64 %4, i64 1)
1886   ret <vscale x 16 x i32> %a
1889 declare <vscale x 1 x i64> @llvm.riscv.vsaddu.nxv1i64.i64(
1890   <vscale x 1 x i64>,
1891   <vscale x 1 x i64>,
1892   i64,
1893   i64);
1895 define <vscale x 1 x i64> @intrinsic_vsaddu_vx_nxv1i64_nxv1i64_i64(<vscale x 1 x i64> %0, i64 %1, i64 %2) nounwind {
1896 ; CHECK-LABEL: intrinsic_vsaddu_vx_nxv1i64_nxv1i64_i64:
1897 ; CHECK:       # %bb.0: # %entry
1898 ; CHECK-NEXT:    vsetvli zero, a1, e64, m1, ta, ma
1899 ; CHECK-NEXT:    vsaddu.vx v8, v8, a0
1900 ; CHECK-NEXT:    ret
1901 entry:
1902   %a = call <vscale x 1 x i64> @llvm.riscv.vsaddu.nxv1i64.i64(
1903     <vscale x 1 x i64> undef,
1904     <vscale x 1 x i64> %0,
1905     i64 %1,
1906     i64 %2)
1908   ret <vscale x 1 x i64> %a
1911 declare <vscale x 1 x i64> @llvm.riscv.vsaddu.mask.nxv1i64.i64(
1912   <vscale x 1 x i64>,
1913   <vscale x 1 x i64>,
1914   i64,
1915   <vscale x 1 x i1>,
1916   i64,
1917   i64);
1919 define <vscale x 1 x i64> @intrinsic_vsaddu_mask_vx_nxv1i64_nxv1i64_i64(<vscale x 1 x i64> %0, <vscale x 1 x i64> %1, i64 %2, <vscale x 1 x i1> %3, i64 %4) nounwind {
1920 ; CHECK-LABEL: intrinsic_vsaddu_mask_vx_nxv1i64_nxv1i64_i64:
1921 ; CHECK:       # %bb.0: # %entry
1922 ; CHECK-NEXT:    vsetvli zero, a1, e64, m1, ta, mu
1923 ; CHECK-NEXT:    vsaddu.vx v8, v9, a0, v0.t
1924 ; CHECK-NEXT:    ret
1925 entry:
1926   %a = call <vscale x 1 x i64> @llvm.riscv.vsaddu.mask.nxv1i64.i64(
1927     <vscale x 1 x i64> %0,
1928     <vscale x 1 x i64> %1,
1929     i64 %2,
1930     <vscale x 1 x i1> %3,
1931     i64 %4, i64 1)
1933   ret <vscale x 1 x i64> %a
1936 declare <vscale x 2 x i64> @llvm.riscv.vsaddu.nxv2i64.i64(
1937   <vscale x 2 x i64>,
1938   <vscale x 2 x i64>,
1939   i64,
1940   i64);
1942 define <vscale x 2 x i64> @intrinsic_vsaddu_vx_nxv2i64_nxv2i64_i64(<vscale x 2 x i64> %0, i64 %1, i64 %2) nounwind {
1943 ; CHECK-LABEL: intrinsic_vsaddu_vx_nxv2i64_nxv2i64_i64:
1944 ; CHECK:       # %bb.0: # %entry
1945 ; CHECK-NEXT:    vsetvli zero, a1, e64, m2, ta, ma
1946 ; CHECK-NEXT:    vsaddu.vx v8, v8, a0
1947 ; CHECK-NEXT:    ret
1948 entry:
1949   %a = call <vscale x 2 x i64> @llvm.riscv.vsaddu.nxv2i64.i64(
1950     <vscale x 2 x i64> undef,
1951     <vscale x 2 x i64> %0,
1952     i64 %1,
1953     i64 %2)
1955   ret <vscale x 2 x i64> %a
1958 declare <vscale x 2 x i64> @llvm.riscv.vsaddu.mask.nxv2i64.i64(
1959   <vscale x 2 x i64>,
1960   <vscale x 2 x i64>,
1961   i64,
1962   <vscale x 2 x i1>,
1963   i64,
1964   i64);
1966 define <vscale x 2 x i64> @intrinsic_vsaddu_mask_vx_nxv2i64_nxv2i64_i64(<vscale x 2 x i64> %0, <vscale x 2 x i64> %1, i64 %2, <vscale x 2 x i1> %3, i64 %4) nounwind {
1967 ; CHECK-LABEL: intrinsic_vsaddu_mask_vx_nxv2i64_nxv2i64_i64:
1968 ; CHECK:       # %bb.0: # %entry
1969 ; CHECK-NEXT:    vsetvli zero, a1, e64, m2, ta, mu
1970 ; CHECK-NEXT:    vsaddu.vx v8, v10, a0, v0.t
1971 ; CHECK-NEXT:    ret
1972 entry:
1973   %a = call <vscale x 2 x i64> @llvm.riscv.vsaddu.mask.nxv2i64.i64(
1974     <vscale x 2 x i64> %0,
1975     <vscale x 2 x i64> %1,
1976     i64 %2,
1977     <vscale x 2 x i1> %3,
1978     i64 %4, i64 1)
1980   ret <vscale x 2 x i64> %a
1983 declare <vscale x 4 x i64> @llvm.riscv.vsaddu.nxv4i64.i64(
1984   <vscale x 4 x i64>,
1985   <vscale x 4 x i64>,
1986   i64,
1987   i64);
1989 define <vscale x 4 x i64> @intrinsic_vsaddu_vx_nxv4i64_nxv4i64_i64(<vscale x 4 x i64> %0, i64 %1, i64 %2) nounwind {
1990 ; CHECK-LABEL: intrinsic_vsaddu_vx_nxv4i64_nxv4i64_i64:
1991 ; CHECK:       # %bb.0: # %entry
1992 ; CHECK-NEXT:    vsetvli zero, a1, e64, m4, ta, ma
1993 ; CHECK-NEXT:    vsaddu.vx v8, v8, a0
1994 ; CHECK-NEXT:    ret
1995 entry:
1996   %a = call <vscale x 4 x i64> @llvm.riscv.vsaddu.nxv4i64.i64(
1997     <vscale x 4 x i64> undef,
1998     <vscale x 4 x i64> %0,
1999     i64 %1,
2000     i64 %2)
2002   ret <vscale x 4 x i64> %a
2005 declare <vscale x 4 x i64> @llvm.riscv.vsaddu.mask.nxv4i64.i64(
2006   <vscale x 4 x i64>,
2007   <vscale x 4 x i64>,
2008   i64,
2009   <vscale x 4 x i1>,
2010   i64,
2011   i64);
2013 define <vscale x 4 x i64> @intrinsic_vsaddu_mask_vx_nxv4i64_nxv4i64_i64(<vscale x 4 x i64> %0, <vscale x 4 x i64> %1, i64 %2, <vscale x 4 x i1> %3, i64 %4) nounwind {
2014 ; CHECK-LABEL: intrinsic_vsaddu_mask_vx_nxv4i64_nxv4i64_i64:
2015 ; CHECK:       # %bb.0: # %entry
2016 ; CHECK-NEXT:    vsetvli zero, a1, e64, m4, ta, mu
2017 ; CHECK-NEXT:    vsaddu.vx v8, v12, a0, v0.t
2018 ; CHECK-NEXT:    ret
2019 entry:
2020   %a = call <vscale x 4 x i64> @llvm.riscv.vsaddu.mask.nxv4i64.i64(
2021     <vscale x 4 x i64> %0,
2022     <vscale x 4 x i64> %1,
2023     i64 %2,
2024     <vscale x 4 x i1> %3,
2025     i64 %4, i64 1)
2027   ret <vscale x 4 x i64> %a
2030 declare <vscale x 8 x i64> @llvm.riscv.vsaddu.nxv8i64.i64(
2031   <vscale x 8 x i64>,
2032   <vscale x 8 x i64>,
2033   i64,
2034   i64);
2036 define <vscale x 8 x i64> @intrinsic_vsaddu_vx_nxv8i64_nxv8i64_i64(<vscale x 8 x i64> %0, i64 %1, i64 %2) nounwind {
2037 ; CHECK-LABEL: intrinsic_vsaddu_vx_nxv8i64_nxv8i64_i64:
2038 ; CHECK:       # %bb.0: # %entry
2039 ; CHECK-NEXT:    vsetvli zero, a1, e64, m8, ta, ma
2040 ; CHECK-NEXT:    vsaddu.vx v8, v8, a0
2041 ; CHECK-NEXT:    ret
2042 entry:
2043   %a = call <vscale x 8 x i64> @llvm.riscv.vsaddu.nxv8i64.i64(
2044     <vscale x 8 x i64> undef,
2045     <vscale x 8 x i64> %0,
2046     i64 %1,
2047     i64 %2)
2049   ret <vscale x 8 x i64> %a
2052 declare <vscale x 8 x i64> @llvm.riscv.vsaddu.mask.nxv8i64.i64(
2053   <vscale x 8 x i64>,
2054   <vscale x 8 x i64>,
2055   i64,
2056   <vscale x 8 x i1>,
2057   i64,
2058   i64);
2060 define <vscale x 8 x i64> @intrinsic_vsaddu_mask_vx_nxv8i64_nxv8i64_i64(<vscale x 8 x i64> %0, <vscale x 8 x i64> %1, i64 %2, <vscale x 8 x i1> %3, i64 %4) nounwind {
2061 ; CHECK-LABEL: intrinsic_vsaddu_mask_vx_nxv8i64_nxv8i64_i64:
2062 ; CHECK:       # %bb.0: # %entry
2063 ; CHECK-NEXT:    vsetvli zero, a1, e64, m8, ta, mu
2064 ; CHECK-NEXT:    vsaddu.vx v8, v16, a0, v0.t
2065 ; CHECK-NEXT:    ret
2066 entry:
2067   %a = call <vscale x 8 x i64> @llvm.riscv.vsaddu.mask.nxv8i64.i64(
2068     <vscale x 8 x i64> %0,
2069     <vscale x 8 x i64> %1,
2070     i64 %2,
2071     <vscale x 8 x i1> %3,
2072     i64 %4, i64 1)
2074   ret <vscale x 8 x i64> %a
2077 define <vscale x 1 x i8> @intrinsic_vsaddu_vi_nxv1i8_nxv1i8_i8(<vscale x 1 x i8> %0, i64 %1) nounwind {
2078 ; CHECK-LABEL: intrinsic_vsaddu_vi_nxv1i8_nxv1i8_i8:
2079 ; CHECK:       # %bb.0: # %entry
2080 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf8, ta, ma
2081 ; CHECK-NEXT:    vsaddu.vi v8, v8, 9
2082 ; CHECK-NEXT:    ret
2083 entry:
2084   %a = call <vscale x 1 x i8> @llvm.riscv.vsaddu.nxv1i8.i8(
2085     <vscale x 1 x i8> undef,
2086     <vscale x 1 x i8> %0,
2087     i8 9,
2088     i64 %1)
2090   ret <vscale x 1 x i8> %a
2093 define <vscale x 1 x i8> @intrinsic_vsaddu_mask_vi_nxv1i8_nxv1i8_i8(<vscale x 1 x i8> %0, <vscale x 1 x i8> %1, <vscale x 1 x i1> %2, i64 %3) nounwind {
2094 ; CHECK-LABEL: intrinsic_vsaddu_mask_vi_nxv1i8_nxv1i8_i8:
2095 ; CHECK:       # %bb.0: # %entry
2096 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf8, ta, mu
2097 ; CHECK-NEXT:    vsaddu.vi v8, v9, 9, v0.t
2098 ; CHECK-NEXT:    ret
2099 entry:
2100   %a = call <vscale x 1 x i8> @llvm.riscv.vsaddu.mask.nxv1i8.i8(
2101     <vscale x 1 x i8> %0,
2102     <vscale x 1 x i8> %1,
2103     i8 9,
2104     <vscale x 1 x i1> %2,
2105     i64 %3, i64 1)
2107   ret <vscale x 1 x i8> %a
2110 define <vscale x 2 x i8> @intrinsic_vsaddu_vi_nxv2i8_nxv2i8_i8(<vscale x 2 x i8> %0, i64 %1) nounwind {
2111 ; CHECK-LABEL: intrinsic_vsaddu_vi_nxv2i8_nxv2i8_i8:
2112 ; CHECK:       # %bb.0: # %entry
2113 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf4, ta, ma
2114 ; CHECK-NEXT:    vsaddu.vi v8, v8, 9
2115 ; CHECK-NEXT:    ret
2116 entry:
2117   %a = call <vscale x 2 x i8> @llvm.riscv.vsaddu.nxv2i8.i8(
2118     <vscale x 2 x i8> undef,
2119     <vscale x 2 x i8> %0,
2120     i8 9,
2121     i64 %1)
2123   ret <vscale x 2 x i8> %a
2126 define <vscale x 2 x i8> @intrinsic_vsaddu_mask_vi_nxv2i8_nxv2i8_i8(<vscale x 2 x i8> %0, <vscale x 2 x i8> %1, <vscale x 2 x i1> %2, i64 %3) nounwind {
2127 ; CHECK-LABEL: intrinsic_vsaddu_mask_vi_nxv2i8_nxv2i8_i8:
2128 ; CHECK:       # %bb.0: # %entry
2129 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf4, ta, mu
2130 ; CHECK-NEXT:    vsaddu.vi v8, v9, 9, v0.t
2131 ; CHECK-NEXT:    ret
2132 entry:
2133   %a = call <vscale x 2 x i8> @llvm.riscv.vsaddu.mask.nxv2i8.i8(
2134     <vscale x 2 x i8> %0,
2135     <vscale x 2 x i8> %1,
2136     i8 9,
2137     <vscale x 2 x i1> %2,
2138     i64 %3, i64 1)
2140   ret <vscale x 2 x i8> %a
2143 define <vscale x 4 x i8> @intrinsic_vsaddu_vi_nxv4i8_nxv4i8_i8(<vscale x 4 x i8> %0, i64 %1) nounwind {
2144 ; CHECK-LABEL: intrinsic_vsaddu_vi_nxv4i8_nxv4i8_i8:
2145 ; CHECK:       # %bb.0: # %entry
2146 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma
2147 ; CHECK-NEXT:    vsaddu.vi v8, v8, 9
2148 ; CHECK-NEXT:    ret
2149 entry:
2150   %a = call <vscale x 4 x i8> @llvm.riscv.vsaddu.nxv4i8.i8(
2151     <vscale x 4 x i8> undef,
2152     <vscale x 4 x i8> %0,
2153     i8 9,
2154     i64 %1)
2156   ret <vscale x 4 x i8> %a
2159 define <vscale x 4 x i8> @intrinsic_vsaddu_mask_vi_nxv4i8_nxv4i8_i8(<vscale x 4 x i8> %0, <vscale x 4 x i8> %1, <vscale x 4 x i1> %2, i64 %3) nounwind {
2160 ; CHECK-LABEL: intrinsic_vsaddu_mask_vi_nxv4i8_nxv4i8_i8:
2161 ; CHECK:       # %bb.0: # %entry
2162 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, mu
2163 ; CHECK-NEXT:    vsaddu.vi v8, v9, 9, v0.t
2164 ; CHECK-NEXT:    ret
2165 entry:
2166   %a = call <vscale x 4 x i8> @llvm.riscv.vsaddu.mask.nxv4i8.i8(
2167     <vscale x 4 x i8> %0,
2168     <vscale x 4 x i8> %1,
2169     i8 9,
2170     <vscale x 4 x i1> %2,
2171     i64 %3, i64 1)
2173   ret <vscale x 4 x i8> %a
2176 define <vscale x 8 x i8> @intrinsic_vsaddu_vi_nxv8i8_nxv8i8_i8(<vscale x 8 x i8> %0, i64 %1) nounwind {
2177 ; CHECK-LABEL: intrinsic_vsaddu_vi_nxv8i8_nxv8i8_i8:
2178 ; CHECK:       # %bb.0: # %entry
2179 ; CHECK-NEXT:    vsetvli zero, a0, e8, m1, ta, ma
2180 ; CHECK-NEXT:    vsaddu.vi v8, v8, 9
2181 ; CHECK-NEXT:    ret
2182 entry:
2183   %a = call <vscale x 8 x i8> @llvm.riscv.vsaddu.nxv8i8.i8(
2184     <vscale x 8 x i8> undef,
2185     <vscale x 8 x i8> %0,
2186     i8 9,
2187     i64 %1)
2189   ret <vscale x 8 x i8> %a
2192 define <vscale x 8 x i8> @intrinsic_vsaddu_mask_vi_nxv8i8_nxv8i8_i8(<vscale x 8 x i8> %0, <vscale x 8 x i8> %1, <vscale x 8 x i1> %2, i64 %3) nounwind {
2193 ; CHECK-LABEL: intrinsic_vsaddu_mask_vi_nxv8i8_nxv8i8_i8:
2194 ; CHECK:       # %bb.0: # %entry
2195 ; CHECK-NEXT:    vsetvli zero, a0, e8, m1, ta, mu
2196 ; CHECK-NEXT:    vsaddu.vi v8, v9, 9, v0.t
2197 ; CHECK-NEXT:    ret
2198 entry:
2199   %a = call <vscale x 8 x i8> @llvm.riscv.vsaddu.mask.nxv8i8.i8(
2200     <vscale x 8 x i8> %0,
2201     <vscale x 8 x i8> %1,
2202     i8 9,
2203     <vscale x 8 x i1> %2,
2204     i64 %3, i64 1)
2206   ret <vscale x 8 x i8> %a
2209 define <vscale x 16 x i8> @intrinsic_vsaddu_vi_nxv16i8_nxv16i8_i8(<vscale x 16 x i8> %0, i64 %1) nounwind {
2210 ; CHECK-LABEL: intrinsic_vsaddu_vi_nxv16i8_nxv16i8_i8:
2211 ; CHECK:       # %bb.0: # %entry
2212 ; CHECK-NEXT:    vsetvli zero, a0, e8, m2, ta, ma
2213 ; CHECK-NEXT:    vsaddu.vi v8, v8, 9
2214 ; CHECK-NEXT:    ret
2215 entry:
2216   %a = call <vscale x 16 x i8> @llvm.riscv.vsaddu.nxv16i8.i8(
2217     <vscale x 16 x i8> undef,
2218     <vscale x 16 x i8> %0,
2219     i8 9,
2220     i64 %1)
2222   ret <vscale x 16 x i8> %a
2225 define <vscale x 16 x i8> @intrinsic_vsaddu_mask_vi_nxv16i8_nxv16i8_i8(<vscale x 16 x i8> %0, <vscale x 16 x i8> %1, <vscale x 16 x i1> %2, i64 %3) nounwind {
2226 ; CHECK-LABEL: intrinsic_vsaddu_mask_vi_nxv16i8_nxv16i8_i8:
2227 ; CHECK:       # %bb.0: # %entry
2228 ; CHECK-NEXT:    vsetvli zero, a0, e8, m2, ta, mu
2229 ; CHECK-NEXT:    vsaddu.vi v8, v10, 9, v0.t
2230 ; CHECK-NEXT:    ret
2231 entry:
2232   %a = call <vscale x 16 x i8> @llvm.riscv.vsaddu.mask.nxv16i8.i8(
2233     <vscale x 16 x i8> %0,
2234     <vscale x 16 x i8> %1,
2235     i8 9,
2236     <vscale x 16 x i1> %2,
2237     i64 %3, i64 1)
2239   ret <vscale x 16 x i8> %a
2242 define <vscale x 32 x i8> @intrinsic_vsaddu_vi_nxv32i8_nxv32i8_i8(<vscale x 32 x i8> %0, i64 %1) nounwind {
2243 ; CHECK-LABEL: intrinsic_vsaddu_vi_nxv32i8_nxv32i8_i8:
2244 ; CHECK:       # %bb.0: # %entry
2245 ; CHECK-NEXT:    vsetvli zero, a0, e8, m4, ta, ma
2246 ; CHECK-NEXT:    vsaddu.vi v8, v8, 9
2247 ; CHECK-NEXT:    ret
2248 entry:
2249   %a = call <vscale x 32 x i8> @llvm.riscv.vsaddu.nxv32i8.i8(
2250     <vscale x 32 x i8> undef,
2251     <vscale x 32 x i8> %0,
2252     i8 9,
2253     i64 %1)
2255   ret <vscale x 32 x i8> %a
2258 define <vscale x 32 x i8> @intrinsic_vsaddu_mask_vi_nxv32i8_nxv32i8_i8(<vscale x 32 x i8> %0, <vscale x 32 x i8> %1, <vscale x 32 x i1> %2, i64 %3) nounwind {
2259 ; CHECK-LABEL: intrinsic_vsaddu_mask_vi_nxv32i8_nxv32i8_i8:
2260 ; CHECK:       # %bb.0: # %entry
2261 ; CHECK-NEXT:    vsetvli zero, a0, e8, m4, ta, mu
2262 ; CHECK-NEXT:    vsaddu.vi v8, v12, 9, v0.t
2263 ; CHECK-NEXT:    ret
2264 entry:
2265   %a = call <vscale x 32 x i8> @llvm.riscv.vsaddu.mask.nxv32i8.i8(
2266     <vscale x 32 x i8> %0,
2267     <vscale x 32 x i8> %1,
2268     i8 9,
2269     <vscale x 32 x i1> %2,
2270     i64 %3, i64 1)
2272   ret <vscale x 32 x i8> %a
2275 define <vscale x 64 x i8> @intrinsic_vsaddu_vi_nxv64i8_nxv64i8_i8(<vscale x 64 x i8> %0, i64 %1) nounwind {
2276 ; CHECK-LABEL: intrinsic_vsaddu_vi_nxv64i8_nxv64i8_i8:
2277 ; CHECK:       # %bb.0: # %entry
2278 ; CHECK-NEXT:    vsetvli zero, a0, e8, m8, ta, ma
2279 ; CHECK-NEXT:    vsaddu.vi v8, v8, 9
2280 ; CHECK-NEXT:    ret
2281 entry:
2282   %a = call <vscale x 64 x i8> @llvm.riscv.vsaddu.nxv64i8.i8(
2283     <vscale x 64 x i8> undef,
2284     <vscale x 64 x i8> %0,
2285     i8 9,
2286     i64 %1)
2288   ret <vscale x 64 x i8> %a
2291 define <vscale x 64 x i8> @intrinsic_vsaddu_mask_vi_nxv64i8_nxv64i8_i8(<vscale x 64 x i8> %0, <vscale x 64 x i8> %1, <vscale x 64 x i1> %2, i64 %3) nounwind {
2292 ; CHECK-LABEL: intrinsic_vsaddu_mask_vi_nxv64i8_nxv64i8_i8:
2293 ; CHECK:       # %bb.0: # %entry
2294 ; CHECK-NEXT:    vsetvli zero, a0, e8, m8, ta, mu
2295 ; CHECK-NEXT:    vsaddu.vi v8, v16, 9, v0.t
2296 ; CHECK-NEXT:    ret
2297 entry:
2298   %a = call <vscale x 64 x i8> @llvm.riscv.vsaddu.mask.nxv64i8.i8(
2299     <vscale x 64 x i8> %0,
2300     <vscale x 64 x i8> %1,
2301     i8 9,
2302     <vscale x 64 x i1> %2,
2303     i64 %3, i64 1)
2305   ret <vscale x 64 x i8> %a
2308 define <vscale x 1 x i16> @intrinsic_vsaddu_vi_nxv1i16_nxv1i16_i16(<vscale x 1 x i16> %0, i64 %1) nounwind {
2309 ; CHECK-LABEL: intrinsic_vsaddu_vi_nxv1i16_nxv1i16_i16:
2310 ; CHECK:       # %bb.0: # %entry
2311 ; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma
2312 ; CHECK-NEXT:    vsaddu.vi v8, v8, 9
2313 ; CHECK-NEXT:    ret
2314 entry:
2315   %a = call <vscale x 1 x i16> @llvm.riscv.vsaddu.nxv1i16.i16(
2316     <vscale x 1 x i16> undef,
2317     <vscale x 1 x i16> %0,
2318     i16 9,
2319     i64 %1)
2321   ret <vscale x 1 x i16> %a
2324 define <vscale x 1 x i16> @intrinsic_vsaddu_mask_vi_nxv1i16_nxv1i16_i16(<vscale x 1 x i16> %0, <vscale x 1 x i16> %1, <vscale x 1 x i1> %2, i64 %3) nounwind {
2325 ; CHECK-LABEL: intrinsic_vsaddu_mask_vi_nxv1i16_nxv1i16_i16:
2326 ; CHECK:       # %bb.0: # %entry
2327 ; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, mu
2328 ; CHECK-NEXT:    vsaddu.vi v8, v9, 9, v0.t
2329 ; CHECK-NEXT:    ret
2330 entry:
2331   %a = call <vscale x 1 x i16> @llvm.riscv.vsaddu.mask.nxv1i16.i16(
2332     <vscale x 1 x i16> %0,
2333     <vscale x 1 x i16> %1,
2334     i16 9,
2335     <vscale x 1 x i1> %2,
2336     i64 %3, i64 1)
2338   ret <vscale x 1 x i16> %a
2341 define <vscale x 2 x i16> @intrinsic_vsaddu_vi_nxv2i16_nxv2i16_i16(<vscale x 2 x i16> %0, i64 %1) nounwind {
2342 ; CHECK-LABEL: intrinsic_vsaddu_vi_nxv2i16_nxv2i16_i16:
2343 ; CHECK:       # %bb.0: # %entry
2344 ; CHECK-NEXT:    vsetvli zero, a0, e16, mf2, ta, ma
2345 ; CHECK-NEXT:    vsaddu.vi v8, v8, 9
2346 ; CHECK-NEXT:    ret
2347 entry:
2348   %a = call <vscale x 2 x i16> @llvm.riscv.vsaddu.nxv2i16.i16(
2349     <vscale x 2 x i16> undef,
2350     <vscale x 2 x i16> %0,
2351     i16 9,
2352     i64 %1)
2354   ret <vscale x 2 x i16> %a
2357 define <vscale x 2 x i16> @intrinsic_vsaddu_mask_vi_nxv2i16_nxv2i16_i16(<vscale x 2 x i16> %0, <vscale x 2 x i16> %1, <vscale x 2 x i1> %2, i64 %3) nounwind {
2358 ; CHECK-LABEL: intrinsic_vsaddu_mask_vi_nxv2i16_nxv2i16_i16:
2359 ; CHECK:       # %bb.0: # %entry
2360 ; CHECK-NEXT:    vsetvli zero, a0, e16, mf2, ta, mu
2361 ; CHECK-NEXT:    vsaddu.vi v8, v9, 9, v0.t
2362 ; CHECK-NEXT:    ret
2363 entry:
2364   %a = call <vscale x 2 x i16> @llvm.riscv.vsaddu.mask.nxv2i16.i16(
2365     <vscale x 2 x i16> %0,
2366     <vscale x 2 x i16> %1,
2367     i16 9,
2368     <vscale x 2 x i1> %2,
2369     i64 %3, i64 1)
2371   ret <vscale x 2 x i16> %a
2374 define <vscale x 4 x i16> @intrinsic_vsaddu_vi_nxv4i16_nxv4i16_i16(<vscale x 4 x i16> %0, i64 %1) nounwind {
2375 ; CHECK-LABEL: intrinsic_vsaddu_vi_nxv4i16_nxv4i16_i16:
2376 ; CHECK:       # %bb.0: # %entry
2377 ; CHECK-NEXT:    vsetvli zero, a0, e16, m1, ta, ma
2378 ; CHECK-NEXT:    vsaddu.vi v8, v8, 9
2379 ; CHECK-NEXT:    ret
2380 entry:
2381   %a = call <vscale x 4 x i16> @llvm.riscv.vsaddu.nxv4i16.i16(
2382     <vscale x 4 x i16> undef,
2383     <vscale x 4 x i16> %0,
2384     i16 9,
2385     i64 %1)
2387   ret <vscale x 4 x i16> %a
2390 define <vscale x 4 x i16> @intrinsic_vsaddu_mask_vi_nxv4i16_nxv4i16_i16(<vscale x 4 x i16> %0, <vscale x 4 x i16> %1, <vscale x 4 x i1> %2, i64 %3) nounwind {
2391 ; CHECK-LABEL: intrinsic_vsaddu_mask_vi_nxv4i16_nxv4i16_i16:
2392 ; CHECK:       # %bb.0: # %entry
2393 ; CHECK-NEXT:    vsetvli zero, a0, e16, m1, ta, mu
2394 ; CHECK-NEXT:    vsaddu.vi v8, v9, 9, v0.t
2395 ; CHECK-NEXT:    ret
2396 entry:
2397   %a = call <vscale x 4 x i16> @llvm.riscv.vsaddu.mask.nxv4i16.i16(
2398     <vscale x 4 x i16> %0,
2399     <vscale x 4 x i16> %1,
2400     i16 9,
2401     <vscale x 4 x i1> %2,
2402     i64 %3, i64 1)
2404   ret <vscale x 4 x i16> %a
2407 define <vscale x 8 x i16> @intrinsic_vsaddu_vi_nxv8i16_nxv8i16_i16(<vscale x 8 x i16> %0, i64 %1) nounwind {
2408 ; CHECK-LABEL: intrinsic_vsaddu_vi_nxv8i16_nxv8i16_i16:
2409 ; CHECK:       # %bb.0: # %entry
2410 ; CHECK-NEXT:    vsetvli zero, a0, e16, m2, ta, ma
2411 ; CHECK-NEXT:    vsaddu.vi v8, v8, 9
2412 ; CHECK-NEXT:    ret
2413 entry:
2414   %a = call <vscale x 8 x i16> @llvm.riscv.vsaddu.nxv8i16.i16(
2415     <vscale x 8 x i16> undef,
2416     <vscale x 8 x i16> %0,
2417     i16 9,
2418     i64 %1)
2420   ret <vscale x 8 x i16> %a
2423 define <vscale x 8 x i16> @intrinsic_vsaddu_mask_vi_nxv8i16_nxv8i16_i16(<vscale x 8 x i16> %0, <vscale x 8 x i16> %1, <vscale x 8 x i1> %2, i64 %3) nounwind {
2424 ; CHECK-LABEL: intrinsic_vsaddu_mask_vi_nxv8i16_nxv8i16_i16:
2425 ; CHECK:       # %bb.0: # %entry
2426 ; CHECK-NEXT:    vsetvli zero, a0, e16, m2, ta, mu
2427 ; CHECK-NEXT:    vsaddu.vi v8, v10, 9, v0.t
2428 ; CHECK-NEXT:    ret
2429 entry:
2430   %a = call <vscale x 8 x i16> @llvm.riscv.vsaddu.mask.nxv8i16.i16(
2431     <vscale x 8 x i16> %0,
2432     <vscale x 8 x i16> %1,
2433     i16 9,
2434     <vscale x 8 x i1> %2,
2435     i64 %3, i64 1)
2437   ret <vscale x 8 x i16> %a
2440 define <vscale x 16 x i16> @intrinsic_vsaddu_vi_nxv16i16_nxv16i16_i16(<vscale x 16 x i16> %0, i64 %1) nounwind {
2441 ; CHECK-LABEL: intrinsic_vsaddu_vi_nxv16i16_nxv16i16_i16:
2442 ; CHECK:       # %bb.0: # %entry
2443 ; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, ma
2444 ; CHECK-NEXT:    vsaddu.vi v8, v8, 9
2445 ; CHECK-NEXT:    ret
2446 entry:
2447   %a = call <vscale x 16 x i16> @llvm.riscv.vsaddu.nxv16i16.i16(
2448     <vscale x 16 x i16> undef,
2449     <vscale x 16 x i16> %0,
2450     i16 9,
2451     i64 %1)
2453   ret <vscale x 16 x i16> %a
2456 define <vscale x 16 x i16> @intrinsic_vsaddu_mask_vi_nxv16i16_nxv16i16_i16(<vscale x 16 x i16> %0, <vscale x 16 x i16> %1, <vscale x 16 x i1> %2, i64 %3) nounwind {
2457 ; CHECK-LABEL: intrinsic_vsaddu_mask_vi_nxv16i16_nxv16i16_i16:
2458 ; CHECK:       # %bb.0: # %entry
2459 ; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, mu
2460 ; CHECK-NEXT:    vsaddu.vi v8, v12, 9, v0.t
2461 ; CHECK-NEXT:    ret
2462 entry:
2463   %a = call <vscale x 16 x i16> @llvm.riscv.vsaddu.mask.nxv16i16.i16(
2464     <vscale x 16 x i16> %0,
2465     <vscale x 16 x i16> %1,
2466     i16 9,
2467     <vscale x 16 x i1> %2,
2468     i64 %3, i64 1)
2470   ret <vscale x 16 x i16> %a
2473 define <vscale x 32 x i16> @intrinsic_vsaddu_vi_nxv32i16_nxv32i16_i16(<vscale x 32 x i16> %0, i64 %1) nounwind {
2474 ; CHECK-LABEL: intrinsic_vsaddu_vi_nxv32i16_nxv32i16_i16:
2475 ; CHECK:       # %bb.0: # %entry
2476 ; CHECK-NEXT:    vsetvli zero, a0, e16, m8, ta, ma
2477 ; CHECK-NEXT:    vsaddu.vi v8, v8, 9
2478 ; CHECK-NEXT:    ret
2479 entry:
2480   %a = call <vscale x 32 x i16> @llvm.riscv.vsaddu.nxv32i16.i16(
2481     <vscale x 32 x i16> undef,
2482     <vscale x 32 x i16> %0,
2483     i16 9,
2484     i64 %1)
2486   ret <vscale x 32 x i16> %a
2489 define <vscale x 32 x i16> @intrinsic_vsaddu_mask_vi_nxv32i16_nxv32i16_i16(<vscale x 32 x i16> %0, <vscale x 32 x i16> %1, <vscale x 32 x i1> %2, i64 %3) nounwind {
2490 ; CHECK-LABEL: intrinsic_vsaddu_mask_vi_nxv32i16_nxv32i16_i16:
2491 ; CHECK:       # %bb.0: # %entry
2492 ; CHECK-NEXT:    vsetvli zero, a0, e16, m8, ta, mu
2493 ; CHECK-NEXT:    vsaddu.vi v8, v16, 9, v0.t
2494 ; CHECK-NEXT:    ret
2495 entry:
2496   %a = call <vscale x 32 x i16> @llvm.riscv.vsaddu.mask.nxv32i16.i16(
2497     <vscale x 32 x i16> %0,
2498     <vscale x 32 x i16> %1,
2499     i16 9,
2500     <vscale x 32 x i1> %2,
2501     i64 %3, i64 1)
2503   ret <vscale x 32 x i16> %a
2506 define <vscale x 1 x i32> @intrinsic_vsaddu_vi_nxv1i32_nxv1i32_i32(<vscale x 1 x i32> %0, i64 %1) nounwind {
2507 ; CHECK-LABEL: intrinsic_vsaddu_vi_nxv1i32_nxv1i32_i32:
2508 ; CHECK:       # %bb.0: # %entry
2509 ; CHECK-NEXT:    vsetvli zero, a0, e32, mf2, ta, ma
2510 ; CHECK-NEXT:    vsaddu.vi v8, v8, 9
2511 ; CHECK-NEXT:    ret
2512 entry:
2513   %a = call <vscale x 1 x i32> @llvm.riscv.vsaddu.nxv1i32.i32(
2514     <vscale x 1 x i32> undef,
2515     <vscale x 1 x i32> %0,
2516     i32 9,
2517     i64 %1)
2519   ret <vscale x 1 x i32> %a
2522 define <vscale x 1 x i32> @intrinsic_vsaddu_mask_vi_nxv1i32_nxv1i32_i32(<vscale x 1 x i32> %0, <vscale x 1 x i32> %1, <vscale x 1 x i1> %2, i64 %3) nounwind {
2523 ; CHECK-LABEL: intrinsic_vsaddu_mask_vi_nxv1i32_nxv1i32_i32:
2524 ; CHECK:       # %bb.0: # %entry
2525 ; CHECK-NEXT:    vsetvli zero, a0, e32, mf2, ta, mu
2526 ; CHECK-NEXT:    vsaddu.vi v8, v9, 9, v0.t
2527 ; CHECK-NEXT:    ret
2528 entry:
2529   %a = call <vscale x 1 x i32> @llvm.riscv.vsaddu.mask.nxv1i32.i32(
2530     <vscale x 1 x i32> %0,
2531     <vscale x 1 x i32> %1,
2532     i32 9,
2533     <vscale x 1 x i1> %2,
2534     i64 %3, i64 1)
2536   ret <vscale x 1 x i32> %a
2539 define <vscale x 2 x i32> @intrinsic_vsaddu_vi_nxv2i32_nxv2i32_i32(<vscale x 2 x i32> %0, i64 %1) nounwind {
2540 ; CHECK-LABEL: intrinsic_vsaddu_vi_nxv2i32_nxv2i32_i32:
2541 ; CHECK:       # %bb.0: # %entry
2542 ; CHECK-NEXT:    vsetvli zero, a0, e32, m1, ta, ma
2543 ; CHECK-NEXT:    vsaddu.vi v8, v8, 9
2544 ; CHECK-NEXT:    ret
2545 entry:
2546   %a = call <vscale x 2 x i32> @llvm.riscv.vsaddu.nxv2i32.i32(
2547     <vscale x 2 x i32> undef,
2548     <vscale x 2 x i32> %0,
2549     i32 9,
2550     i64 %1)
2552   ret <vscale x 2 x i32> %a
2555 define <vscale x 2 x i32> @intrinsic_vsaddu_mask_vi_nxv2i32_nxv2i32_i32(<vscale x 2 x i32> %0, <vscale x 2 x i32> %1, <vscale x 2 x i1> %2, i64 %3) nounwind {
2556 ; CHECK-LABEL: intrinsic_vsaddu_mask_vi_nxv2i32_nxv2i32_i32:
2557 ; CHECK:       # %bb.0: # %entry
2558 ; CHECK-NEXT:    vsetvli zero, a0, e32, m1, ta, mu
2559 ; CHECK-NEXT:    vsaddu.vi v8, v9, 9, v0.t
2560 ; CHECK-NEXT:    ret
2561 entry:
2562   %a = call <vscale x 2 x i32> @llvm.riscv.vsaddu.mask.nxv2i32.i32(
2563     <vscale x 2 x i32> %0,
2564     <vscale x 2 x i32> %1,
2565     i32 9,
2566     <vscale x 2 x i1> %2,
2567     i64 %3, i64 1)
2569   ret <vscale x 2 x i32> %a
2572 define <vscale x 4 x i32> @intrinsic_vsaddu_vi_nxv4i32_nxv4i32_i32(<vscale x 4 x i32> %0, i64 %1) nounwind {
2573 ; CHECK-LABEL: intrinsic_vsaddu_vi_nxv4i32_nxv4i32_i32:
2574 ; CHECK:       # %bb.0: # %entry
2575 ; CHECK-NEXT:    vsetvli zero, a0, e32, m2, ta, ma
2576 ; CHECK-NEXT:    vsaddu.vi v8, v8, 9
2577 ; CHECK-NEXT:    ret
2578 entry:
2579   %a = call <vscale x 4 x i32> @llvm.riscv.vsaddu.nxv4i32.i32(
2580     <vscale x 4 x i32> undef,
2581     <vscale x 4 x i32> %0,
2582     i32 9,
2583     i64 %1)
2585   ret <vscale x 4 x i32> %a
2588 define <vscale x 4 x i32> @intrinsic_vsaddu_mask_vi_nxv4i32_nxv4i32_i32(<vscale x 4 x i32> %0, <vscale x 4 x i32> %1, <vscale x 4 x i1> %2, i64 %3) nounwind {
2589 ; CHECK-LABEL: intrinsic_vsaddu_mask_vi_nxv4i32_nxv4i32_i32:
2590 ; CHECK:       # %bb.0: # %entry
2591 ; CHECK-NEXT:    vsetvli zero, a0, e32, m2, ta, mu
2592 ; CHECK-NEXT:    vsaddu.vi v8, v10, 9, v0.t
2593 ; CHECK-NEXT:    ret
2594 entry:
2595   %a = call <vscale x 4 x i32> @llvm.riscv.vsaddu.mask.nxv4i32.i32(
2596     <vscale x 4 x i32> %0,
2597     <vscale x 4 x i32> %1,
2598     i32 9,
2599     <vscale x 4 x i1> %2,
2600     i64 %3, i64 1)
2602   ret <vscale x 4 x i32> %a
2605 define <vscale x 8 x i32> @intrinsic_vsaddu_vi_nxv8i32_nxv8i32_i32(<vscale x 8 x i32> %0, i64 %1) nounwind {
2606 ; CHECK-LABEL: intrinsic_vsaddu_vi_nxv8i32_nxv8i32_i32:
2607 ; CHECK:       # %bb.0: # %entry
2608 ; CHECK-NEXT:    vsetvli zero, a0, e32, m4, ta, ma
2609 ; CHECK-NEXT:    vsaddu.vi v8, v8, 9
2610 ; CHECK-NEXT:    ret
2611 entry:
2612   %a = call <vscale x 8 x i32> @llvm.riscv.vsaddu.nxv8i32.i32(
2613     <vscale x 8 x i32> undef,
2614     <vscale x 8 x i32> %0,
2615     i32 9,
2616     i64 %1)
2618   ret <vscale x 8 x i32> %a
2621 define <vscale x 8 x i32> @intrinsic_vsaddu_mask_vi_nxv8i32_nxv8i32_i32(<vscale x 8 x i32> %0, <vscale x 8 x i32> %1, <vscale x 8 x i1> %2, i64 %3) nounwind {
2622 ; CHECK-LABEL: intrinsic_vsaddu_mask_vi_nxv8i32_nxv8i32_i32:
2623 ; CHECK:       # %bb.0: # %entry
2624 ; CHECK-NEXT:    vsetvli zero, a0, e32, m4, ta, mu
2625 ; CHECK-NEXT:    vsaddu.vi v8, v12, 9, v0.t
2626 ; CHECK-NEXT:    ret
2627 entry:
2628   %a = call <vscale x 8 x i32> @llvm.riscv.vsaddu.mask.nxv8i32.i32(
2629     <vscale x 8 x i32> %0,
2630     <vscale x 8 x i32> %1,
2631     i32 9,
2632     <vscale x 8 x i1> %2,
2633     i64 %3, i64 1)
2635   ret <vscale x 8 x i32> %a
2638 define <vscale x 16 x i32> @intrinsic_vsaddu_vi_nxv16i32_nxv16i32_i32(<vscale x 16 x i32> %0, i64 %1) nounwind {
2639 ; CHECK-LABEL: intrinsic_vsaddu_vi_nxv16i32_nxv16i32_i32:
2640 ; CHECK:       # %bb.0: # %entry
2641 ; CHECK-NEXT:    vsetvli zero, a0, e32, m8, ta, ma
2642 ; CHECK-NEXT:    vsaddu.vi v8, v8, 9
2643 ; CHECK-NEXT:    ret
2644 entry:
2645   %a = call <vscale x 16 x i32> @llvm.riscv.vsaddu.nxv16i32.i32(
2646     <vscale x 16 x i32> undef,
2647     <vscale x 16 x i32> %0,
2648     i32 9,
2649     i64 %1)
2651   ret <vscale x 16 x i32> %a
2654 define <vscale x 16 x i32> @intrinsic_vsaddu_mask_vi_nxv16i32_nxv16i32_i32(<vscale x 16 x i32> %0, <vscale x 16 x i32> %1, <vscale x 16 x i1> %2, i64 %3) nounwind {
2655 ; CHECK-LABEL: intrinsic_vsaddu_mask_vi_nxv16i32_nxv16i32_i32:
2656 ; CHECK:       # %bb.0: # %entry
2657 ; CHECK-NEXT:    vsetvli zero, a0, e32, m8, ta, mu
2658 ; CHECK-NEXT:    vsaddu.vi v8, v16, 9, v0.t
2659 ; CHECK-NEXT:    ret
2660 entry:
2661   %a = call <vscale x 16 x i32> @llvm.riscv.vsaddu.mask.nxv16i32.i32(
2662     <vscale x 16 x i32> %0,
2663     <vscale x 16 x i32> %1,
2664     i32 9,
2665     <vscale x 16 x i1> %2,
2666     i64 %3, i64 1)
2668   ret <vscale x 16 x i32> %a
2671 define <vscale x 1 x i64> @intrinsic_vsaddu_vi_nxv1i64_nxv1i64_i64(<vscale x 1 x i64> %0, i64 %1) nounwind {
2672 ; CHECK-LABEL: intrinsic_vsaddu_vi_nxv1i64_nxv1i64_i64:
2673 ; CHECK:       # %bb.0: # %entry
2674 ; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, ma
2675 ; CHECK-NEXT:    vsaddu.vi v8, v8, 9
2676 ; CHECK-NEXT:    ret
2677 entry:
2678   %a = call <vscale x 1 x i64> @llvm.riscv.vsaddu.nxv1i64.i64(
2679     <vscale x 1 x i64> undef,
2680     <vscale x 1 x i64> %0,
2681     i64 9,
2682     i64 %1)
2684   ret <vscale x 1 x i64> %a
2687 define <vscale x 1 x i64> @intrinsic_vsaddu_mask_vi_nxv1i64_nxv1i64_i64(<vscale x 1 x i64> %0, <vscale x 1 x i64> %1, <vscale x 1 x i1> %2, i64 %3) nounwind {
2688 ; CHECK-LABEL: intrinsic_vsaddu_mask_vi_nxv1i64_nxv1i64_i64:
2689 ; CHECK:       # %bb.0: # %entry
2690 ; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, mu
2691 ; CHECK-NEXT:    vsaddu.vi v8, v9, 9, v0.t
2692 ; CHECK-NEXT:    ret
2693 entry:
2694   %a = call <vscale x 1 x i64> @llvm.riscv.vsaddu.mask.nxv1i64.i64(
2695     <vscale x 1 x i64> %0,
2696     <vscale x 1 x i64> %1,
2697     i64 9,
2698     <vscale x 1 x i1> %2,
2699     i64 %3, i64 1)
2701   ret <vscale x 1 x i64> %a
2704 define <vscale x 2 x i64> @intrinsic_vsaddu_vi_nxv2i64_nxv2i64_i64(<vscale x 2 x i64> %0, i64 %1) nounwind {
2705 ; CHECK-LABEL: intrinsic_vsaddu_vi_nxv2i64_nxv2i64_i64:
2706 ; CHECK:       # %bb.0: # %entry
2707 ; CHECK-NEXT:    vsetvli zero, a0, e64, m2, ta, ma
2708 ; CHECK-NEXT:    vsaddu.vi v8, v8, 9
2709 ; CHECK-NEXT:    ret
2710 entry:
2711   %a = call <vscale x 2 x i64> @llvm.riscv.vsaddu.nxv2i64.i64(
2712     <vscale x 2 x i64> undef,
2713     <vscale x 2 x i64> %0,
2714     i64 9,
2715     i64 %1)
2717   ret <vscale x 2 x i64> %a
2720 define <vscale x 2 x i64> @intrinsic_vsaddu_mask_vi_nxv2i64_nxv2i64_i64(<vscale x 2 x i64> %0, <vscale x 2 x i64> %1, <vscale x 2 x i1> %2, i64 %3) nounwind {
2721 ; CHECK-LABEL: intrinsic_vsaddu_mask_vi_nxv2i64_nxv2i64_i64:
2722 ; CHECK:       # %bb.0: # %entry
2723 ; CHECK-NEXT:    vsetvli zero, a0, e64, m2, ta, mu
2724 ; CHECK-NEXT:    vsaddu.vi v8, v10, 9, v0.t
2725 ; CHECK-NEXT:    ret
2726 entry:
2727   %a = call <vscale x 2 x i64> @llvm.riscv.vsaddu.mask.nxv2i64.i64(
2728     <vscale x 2 x i64> %0,
2729     <vscale x 2 x i64> %1,
2730     i64 9,
2731     <vscale x 2 x i1> %2,
2732     i64 %3, i64 1)
2734   ret <vscale x 2 x i64> %a
2737 define <vscale x 4 x i64> @intrinsic_vsaddu_vi_nxv4i64_nxv4i64_i64(<vscale x 4 x i64> %0, i64 %1) nounwind {
2738 ; CHECK-LABEL: intrinsic_vsaddu_vi_nxv4i64_nxv4i64_i64:
2739 ; CHECK:       # %bb.0: # %entry
2740 ; CHECK-NEXT:    vsetvli zero, a0, e64, m4, ta, ma
2741 ; CHECK-NEXT:    vsaddu.vi v8, v8, 9
2742 ; CHECK-NEXT:    ret
2743 entry:
2744   %a = call <vscale x 4 x i64> @llvm.riscv.vsaddu.nxv4i64.i64(
2745     <vscale x 4 x i64> undef,
2746     <vscale x 4 x i64> %0,
2747     i64 9,
2748     i64 %1)
2750   ret <vscale x 4 x i64> %a
2753 define <vscale x 4 x i64> @intrinsic_vsaddu_mask_vi_nxv4i64_nxv4i64_i64(<vscale x 4 x i64> %0, <vscale x 4 x i64> %1, <vscale x 4 x i1> %2, i64 %3) nounwind {
2754 ; CHECK-LABEL: intrinsic_vsaddu_mask_vi_nxv4i64_nxv4i64_i64:
2755 ; CHECK:       # %bb.0: # %entry
2756 ; CHECK-NEXT:    vsetvli zero, a0, e64, m4, ta, mu
2757 ; CHECK-NEXT:    vsaddu.vi v8, v12, 9, v0.t
2758 ; CHECK-NEXT:    ret
2759 entry:
2760   %a = call <vscale x 4 x i64> @llvm.riscv.vsaddu.mask.nxv4i64.i64(
2761     <vscale x 4 x i64> %0,
2762     <vscale x 4 x i64> %1,
2763     i64 9,
2764     <vscale x 4 x i1> %2,
2765     i64 %3, i64 1)
2767   ret <vscale x 4 x i64> %a
2770 define <vscale x 8 x i64> @intrinsic_vsaddu_vi_nxv8i64_nxv8i64_i64(<vscale x 8 x i64> %0, i64 %1) nounwind {
2771 ; CHECK-LABEL: intrinsic_vsaddu_vi_nxv8i64_nxv8i64_i64:
2772 ; CHECK:       # %bb.0: # %entry
2773 ; CHECK-NEXT:    vsetvli zero, a0, e64, m8, ta, ma
2774 ; CHECK-NEXT:    vsaddu.vi v8, v8, 9
2775 ; CHECK-NEXT:    ret
2776 entry:
2777   %a = call <vscale x 8 x i64> @llvm.riscv.vsaddu.nxv8i64.i64(
2778     <vscale x 8 x i64> undef,
2779     <vscale x 8 x i64> %0,
2780     i64 9,
2781     i64 %1)
2783   ret <vscale x 8 x i64> %a
2786 define <vscale x 8 x i64> @intrinsic_vsaddu_mask_vi_nxv8i64_nxv8i64_i64(<vscale x 8 x i64> %0, <vscale x 8 x i64> %1, <vscale x 8 x i1> %2, i64 %3) nounwind {
2787 ; CHECK-LABEL: intrinsic_vsaddu_mask_vi_nxv8i64_nxv8i64_i64:
2788 ; CHECK:       # %bb.0: # %entry
2789 ; CHECK-NEXT:    vsetvli zero, a0, e64, m8, ta, mu
2790 ; CHECK-NEXT:    vsaddu.vi v8, v16, 9, v0.t
2791 ; CHECK-NEXT:    ret
2792 entry:
2793   %a = call <vscale x 8 x i64> @llvm.riscv.vsaddu.mask.nxv8i64.i64(
2794     <vscale x 8 x i64> %0,
2795     <vscale x 8 x i64> %1,
2796     i64 9,
2797     <vscale x 8 x i1> %2,
2798     i64 %3, i64 1)
2800   ret <vscale x 8 x i64> %a