Bump version to 19.1.0-rc3
[llvm-project.git] / llvm / test / CodeGen / RISCV / rvv / vmsbc.ll
bloba4785a05de78217e4b843915c828d4d38e96615d
1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: sed 's/iXLen/i32/g' %s | llc -mtriple=riscv32 -mattr=+v \
3 ; RUN:   -verify-machineinstrs | FileCheck %s --check-prefixes=CHECK,RV32
4 ; RUN: sed 's/iXLen/i64/g' %s | llc -mtriple=riscv64 -mattr=+v \
5 ; RUN:   -verify-machineinstrs | FileCheck %s --check-prefixes=CHECK,RV64
7 declare <vscale x 1 x i1> @llvm.riscv.vmsbc.nxv1i8.nxv1i8(
8   <vscale x 1 x i8>,
9   <vscale x 1 x i8>,
10   iXLen);
12 define <vscale x 1 x i1> @intrinsic_vmsbc_vv_nxv1i1_nxv1i8_nxv1i8(<vscale x 1 x i8> %0, <vscale x 1 x i8> %1, iXLen %2) nounwind {
13 ; CHECK-LABEL: intrinsic_vmsbc_vv_nxv1i1_nxv1i8_nxv1i8:
14 ; CHECK:       # %bb.0: # %entry
15 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf8, ta, ma
16 ; CHECK-NEXT:    vmsbc.vv v0, v8, v9
17 ; CHECK-NEXT:    ret
18 entry:
19   %a = call <vscale x 1 x i1> @llvm.riscv.vmsbc.nxv1i8.nxv1i8(
20     <vscale x 1 x i8> %0,
21     <vscale x 1 x i8> %1,
22     iXLen %2)
24   ret <vscale x 1 x i1> %a
27 declare <vscale x 2 x i1> @llvm.riscv.vmsbc.nxv2i8.nxv2i8(
28   <vscale x 2 x i8>,
29   <vscale x 2 x i8>,
30   iXLen);
32 define <vscale x 2 x i1> @intrinsic_vmsbc_vv_nxv2i1_nxv2i8_nxv2i8(<vscale x 2 x i8> %0, <vscale x 2 x i8> %1, iXLen %2) nounwind {
33 ; CHECK-LABEL: intrinsic_vmsbc_vv_nxv2i1_nxv2i8_nxv2i8:
34 ; CHECK:       # %bb.0: # %entry
35 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf4, ta, ma
36 ; CHECK-NEXT:    vmsbc.vv v0, v8, v9
37 ; CHECK-NEXT:    ret
38 entry:
39   %a = call <vscale x 2 x i1> @llvm.riscv.vmsbc.nxv2i8.nxv2i8(
40     <vscale x 2 x i8> %0,
41     <vscale x 2 x i8> %1,
42     iXLen %2)
44   ret <vscale x 2 x i1> %a
47 declare <vscale x 4 x i1> @llvm.riscv.vmsbc.nxv4i8.nxv4i8(
48   <vscale x 4 x i8>,
49   <vscale x 4 x i8>,
50   iXLen);
52 define <vscale x 4 x i1> @intrinsic_vmsbc_vv_nxv4i1_nxv4i8_nxv4i8(<vscale x 4 x i8> %0, <vscale x 4 x i8> %1, iXLen %2) nounwind {
53 ; CHECK-LABEL: intrinsic_vmsbc_vv_nxv4i1_nxv4i8_nxv4i8:
54 ; CHECK:       # %bb.0: # %entry
55 ; CHECK-NEXT:    vsetvli zero, a0, e8, mf2, ta, ma
56 ; CHECK-NEXT:    vmsbc.vv v0, v8, v9
57 ; CHECK-NEXT:    ret
58 entry:
59   %a = call <vscale x 4 x i1> @llvm.riscv.vmsbc.nxv4i8.nxv4i8(
60     <vscale x 4 x i8> %0,
61     <vscale x 4 x i8> %1,
62     iXLen %2)
64   ret <vscale x 4 x i1> %a
67 declare <vscale x 8 x i1> @llvm.riscv.vmsbc.nxv8i8.nxv8i8(
68   <vscale x 8 x i8>,
69   <vscale x 8 x i8>,
70   iXLen);
72 define <vscale x 8 x i1> @intrinsic_vmsbc_vv_nxv8i1_nxv8i8_nxv8i8(<vscale x 8 x i8> %0, <vscale x 8 x i8> %1, iXLen %2) nounwind {
73 ; CHECK-LABEL: intrinsic_vmsbc_vv_nxv8i1_nxv8i8_nxv8i8:
74 ; CHECK:       # %bb.0: # %entry
75 ; CHECK-NEXT:    vsetvli zero, a0, e8, m1, ta, ma
76 ; CHECK-NEXT:    vmsbc.vv v0, v8, v9
77 ; CHECK-NEXT:    ret
78 entry:
79   %a = call <vscale x 8 x i1> @llvm.riscv.vmsbc.nxv8i8.nxv8i8(
80     <vscale x 8 x i8> %0,
81     <vscale x 8 x i8> %1,
82     iXLen %2)
84   ret <vscale x 8 x i1> %a
87 declare <vscale x 16 x i1> @llvm.riscv.vmsbc.nxv16i8.nxv16i8(
88   <vscale x 16 x i8>,
89   <vscale x 16 x i8>,
90   iXLen);
92 define <vscale x 16 x i1> @intrinsic_vmsbc_vv_nxv16i1_nxv16i8_nxv16i8(<vscale x 16 x i8> %0, <vscale x 16 x i8> %1, iXLen %2) nounwind {
93 ; CHECK-LABEL: intrinsic_vmsbc_vv_nxv16i1_nxv16i8_nxv16i8:
94 ; CHECK:       # %bb.0: # %entry
95 ; CHECK-NEXT:    vsetvli zero, a0, e8, m2, ta, ma
96 ; CHECK-NEXT:    vmsbc.vv v0, v8, v10
97 ; CHECK-NEXT:    ret
98 entry:
99   %a = call <vscale x 16 x i1> @llvm.riscv.vmsbc.nxv16i8.nxv16i8(
100     <vscale x 16 x i8> %0,
101     <vscale x 16 x i8> %1,
102     iXLen %2)
104   ret <vscale x 16 x i1> %a
107 declare <vscale x 32 x i1> @llvm.riscv.vmsbc.nxv32i8.nxv32i8(
108   <vscale x 32 x i8>,
109   <vscale x 32 x i8>,
110   iXLen);
112 define <vscale x 32 x i1> @intrinsic_vmsbc_vv_nxv32i1_nxv32i8_nxv32i8(<vscale x 32 x i8> %0, <vscale x 32 x i8> %1, iXLen %2) nounwind {
113 ; CHECK-LABEL: intrinsic_vmsbc_vv_nxv32i1_nxv32i8_nxv32i8:
114 ; CHECK:       # %bb.0: # %entry
115 ; CHECK-NEXT:    vsetvli zero, a0, e8, m4, ta, ma
116 ; CHECK-NEXT:    vmsbc.vv v0, v8, v12
117 ; CHECK-NEXT:    ret
118 entry:
119   %a = call <vscale x 32 x i1> @llvm.riscv.vmsbc.nxv32i8.nxv32i8(
120     <vscale x 32 x i8> %0,
121     <vscale x 32 x i8> %1,
122     iXLen %2)
124   ret <vscale x 32 x i1> %a
127 declare <vscale x 64 x i1> @llvm.riscv.vmsbc.nxv64i8.nxv64i8(
128   <vscale x 64 x i8>,
129   <vscale x 64 x i8>,
130   iXLen);
132 define <vscale x 64 x i1> @intrinsic_vmsbc_vv_nxv64i1_nxv64i8_nxv64i8(<vscale x 64 x i8> %0, <vscale x 64 x i8> %1, iXLen %2) nounwind {
133 ; CHECK-LABEL: intrinsic_vmsbc_vv_nxv64i1_nxv64i8_nxv64i8:
134 ; CHECK:       # %bb.0: # %entry
135 ; CHECK-NEXT:    vsetvli zero, a0, e8, m8, ta, ma
136 ; CHECK-NEXT:    vmsbc.vv v0, v8, v16
137 ; CHECK-NEXT:    ret
138 entry:
139   %a = call <vscale x 64 x i1> @llvm.riscv.vmsbc.nxv64i8.nxv64i8(
140     <vscale x 64 x i8> %0,
141     <vscale x 64 x i8> %1,
142     iXLen %2)
144   ret <vscale x 64 x i1> %a
147 declare <vscale x 1 x i1> @llvm.riscv.vmsbc.nxv1i16.nxv1i16(
148   <vscale x 1 x i16>,
149   <vscale x 1 x i16>,
150   iXLen);
152 define <vscale x 1 x i1> @intrinsic_vmsbc_vv_nxv1i1_nxv1i16_nxv1i16(<vscale x 1 x i16> %0, <vscale x 1 x i16> %1, iXLen %2) nounwind {
153 ; CHECK-LABEL: intrinsic_vmsbc_vv_nxv1i1_nxv1i16_nxv1i16:
154 ; CHECK:       # %bb.0: # %entry
155 ; CHECK-NEXT:    vsetvli zero, a0, e16, mf4, ta, ma
156 ; CHECK-NEXT:    vmsbc.vv v0, v8, v9
157 ; CHECK-NEXT:    ret
158 entry:
159   %a = call <vscale x 1 x i1> @llvm.riscv.vmsbc.nxv1i16.nxv1i16(
160     <vscale x 1 x i16> %0,
161     <vscale x 1 x i16> %1,
162     iXLen %2)
164   ret <vscale x 1 x i1> %a
167 declare <vscale x 2 x i1> @llvm.riscv.vmsbc.nxv2i16.nxv2i16(
168   <vscale x 2 x i16>,
169   <vscale x 2 x i16>,
170   iXLen);
172 define <vscale x 2 x i1> @intrinsic_vmsbc_vv_nxv2i1_nxv2i16_nxv2i16(<vscale x 2 x i16> %0, <vscale x 2 x i16> %1, iXLen %2) nounwind {
173 ; CHECK-LABEL: intrinsic_vmsbc_vv_nxv2i1_nxv2i16_nxv2i16:
174 ; CHECK:       # %bb.0: # %entry
175 ; CHECK-NEXT:    vsetvli zero, a0, e16, mf2, ta, ma
176 ; CHECK-NEXT:    vmsbc.vv v0, v8, v9
177 ; CHECK-NEXT:    ret
178 entry:
179   %a = call <vscale x 2 x i1> @llvm.riscv.vmsbc.nxv2i16.nxv2i16(
180     <vscale x 2 x i16> %0,
181     <vscale x 2 x i16> %1,
182     iXLen %2)
184   ret <vscale x 2 x i1> %a
187 declare <vscale x 4 x i1> @llvm.riscv.vmsbc.nxv4i16.nxv4i16(
188   <vscale x 4 x i16>,
189   <vscale x 4 x i16>,
190   iXLen);
192 define <vscale x 4 x i1> @intrinsic_vmsbc_vv_nxv4i1_nxv4i16_nxv4i16(<vscale x 4 x i16> %0, <vscale x 4 x i16> %1, iXLen %2) nounwind {
193 ; CHECK-LABEL: intrinsic_vmsbc_vv_nxv4i1_nxv4i16_nxv4i16:
194 ; CHECK:       # %bb.0: # %entry
195 ; CHECK-NEXT:    vsetvli zero, a0, e16, m1, ta, ma
196 ; CHECK-NEXT:    vmsbc.vv v0, v8, v9
197 ; CHECK-NEXT:    ret
198 entry:
199   %a = call <vscale x 4 x i1> @llvm.riscv.vmsbc.nxv4i16.nxv4i16(
200     <vscale x 4 x i16> %0,
201     <vscale x 4 x i16> %1,
202     iXLen %2)
204   ret <vscale x 4 x i1> %a
207 declare <vscale x 8 x i1> @llvm.riscv.vmsbc.nxv8i16.nxv8i16(
208   <vscale x 8 x i16>,
209   <vscale x 8 x i16>,
210   iXLen);
212 define <vscale x 8 x i1> @intrinsic_vmsbc_vv_nxv8i1_nxv8i16_nxv8i16(<vscale x 8 x i16> %0, <vscale x 8 x i16> %1, iXLen %2) nounwind {
213 ; CHECK-LABEL: intrinsic_vmsbc_vv_nxv8i1_nxv8i16_nxv8i16:
214 ; CHECK:       # %bb.0: # %entry
215 ; CHECK-NEXT:    vsetvli zero, a0, e16, m2, ta, ma
216 ; CHECK-NEXT:    vmsbc.vv v0, v8, v10
217 ; CHECK-NEXT:    ret
218 entry:
219   %a = call <vscale x 8 x i1> @llvm.riscv.vmsbc.nxv8i16.nxv8i16(
220     <vscale x 8 x i16> %0,
221     <vscale x 8 x i16> %1,
222     iXLen %2)
224   ret <vscale x 8 x i1> %a
227 declare <vscale x 16 x i1> @llvm.riscv.vmsbc.nxv16i16.nxv16i16(
228   <vscale x 16 x i16>,
229   <vscale x 16 x i16>,
230   iXLen);
232 define <vscale x 16 x i1> @intrinsic_vmsbc_vv_nxv16i1_nxv16i16_nxv16i16(<vscale x 16 x i16> %0, <vscale x 16 x i16> %1, iXLen %2) nounwind {
233 ; CHECK-LABEL: intrinsic_vmsbc_vv_nxv16i1_nxv16i16_nxv16i16:
234 ; CHECK:       # %bb.0: # %entry
235 ; CHECK-NEXT:    vsetvli zero, a0, e16, m4, ta, ma
236 ; CHECK-NEXT:    vmsbc.vv v0, v8, v12
237 ; CHECK-NEXT:    ret
238 entry:
239   %a = call <vscale x 16 x i1> @llvm.riscv.vmsbc.nxv16i16.nxv16i16(
240     <vscale x 16 x i16> %0,
241     <vscale x 16 x i16> %1,
242     iXLen %2)
244   ret <vscale x 16 x i1> %a
247 declare <vscale x 32 x i1> @llvm.riscv.vmsbc.nxv32i16.nxv32i16(
248   <vscale x 32 x i16>,
249   <vscale x 32 x i16>,
250   iXLen);
252 define <vscale x 32 x i1> @intrinsic_vmsbc_vv_nxv32i1_nxv32i16_nxv32i16(<vscale x 32 x i16> %0, <vscale x 32 x i16> %1, iXLen %2) nounwind {
253 ; CHECK-LABEL: intrinsic_vmsbc_vv_nxv32i1_nxv32i16_nxv32i16:
254 ; CHECK:       # %bb.0: # %entry
255 ; CHECK-NEXT:    vsetvli zero, a0, e16, m8, ta, ma
256 ; CHECK-NEXT:    vmsbc.vv v0, v8, v16
257 ; CHECK-NEXT:    ret
258 entry:
259   %a = call <vscale x 32 x i1> @llvm.riscv.vmsbc.nxv32i16.nxv32i16(
260     <vscale x 32 x i16> %0,
261     <vscale x 32 x i16> %1,
262     iXLen %2)
264   ret <vscale x 32 x i1> %a
267 declare <vscale x 1 x i1> @llvm.riscv.vmsbc.nxv1i32.nxv1i32(
268   <vscale x 1 x i32>,
269   <vscale x 1 x i32>,
270   iXLen);
272 define <vscale x 1 x i1> @intrinsic_vmsbc_vv_nxv1i1_nxv1i32_nxv1i32(<vscale x 1 x i32> %0, <vscale x 1 x i32> %1, iXLen %2) nounwind {
273 ; CHECK-LABEL: intrinsic_vmsbc_vv_nxv1i1_nxv1i32_nxv1i32:
274 ; CHECK:       # %bb.0: # %entry
275 ; CHECK-NEXT:    vsetvli zero, a0, e32, mf2, ta, ma
276 ; CHECK-NEXT:    vmsbc.vv v0, v8, v9
277 ; CHECK-NEXT:    ret
278 entry:
279   %a = call <vscale x 1 x i1> @llvm.riscv.vmsbc.nxv1i32.nxv1i32(
280     <vscale x 1 x i32> %0,
281     <vscale x 1 x i32> %1,
282     iXLen %2)
284   ret <vscale x 1 x i1> %a
287 declare <vscale x 2 x i1> @llvm.riscv.vmsbc.nxv2i32.nxv2i32(
288   <vscale x 2 x i32>,
289   <vscale x 2 x i32>,
290   iXLen);
292 define <vscale x 2 x i1> @intrinsic_vmsbc_vv_nxv2i1_nxv2i32_nxv2i32(<vscale x 2 x i32> %0, <vscale x 2 x i32> %1, iXLen %2) nounwind {
293 ; CHECK-LABEL: intrinsic_vmsbc_vv_nxv2i1_nxv2i32_nxv2i32:
294 ; CHECK:       # %bb.0: # %entry
295 ; CHECK-NEXT:    vsetvli zero, a0, e32, m1, ta, ma
296 ; CHECK-NEXT:    vmsbc.vv v0, v8, v9
297 ; CHECK-NEXT:    ret
298 entry:
299   %a = call <vscale x 2 x i1> @llvm.riscv.vmsbc.nxv2i32.nxv2i32(
300     <vscale x 2 x i32> %0,
301     <vscale x 2 x i32> %1,
302     iXLen %2)
304   ret <vscale x 2 x i1> %a
307 declare <vscale x 4 x i1> @llvm.riscv.vmsbc.nxv4i32.nxv4i32(
308   <vscale x 4 x i32>,
309   <vscale x 4 x i32>,
310   iXLen);
312 define <vscale x 4 x i1> @intrinsic_vmsbc_vv_nxv4i1_nxv4i32_nxv4i32(<vscale x 4 x i32> %0, <vscale x 4 x i32> %1, iXLen %2) nounwind {
313 ; CHECK-LABEL: intrinsic_vmsbc_vv_nxv4i1_nxv4i32_nxv4i32:
314 ; CHECK:       # %bb.0: # %entry
315 ; CHECK-NEXT:    vsetvli zero, a0, e32, m2, ta, ma
316 ; CHECK-NEXT:    vmsbc.vv v0, v8, v10
317 ; CHECK-NEXT:    ret
318 entry:
319   %a = call <vscale x 4 x i1> @llvm.riscv.vmsbc.nxv4i32.nxv4i32(
320     <vscale x 4 x i32> %0,
321     <vscale x 4 x i32> %1,
322     iXLen %2)
324   ret <vscale x 4 x i1> %a
327 declare <vscale x 8 x i1> @llvm.riscv.vmsbc.nxv8i32.nxv8i32(
328   <vscale x 8 x i32>,
329   <vscale x 8 x i32>,
330   iXLen);
332 define <vscale x 8 x i1> @intrinsic_vmsbc_vv_nxv8i1_nxv8i32_nxv8i32(<vscale x 8 x i32> %0, <vscale x 8 x i32> %1, iXLen %2) nounwind {
333 ; CHECK-LABEL: intrinsic_vmsbc_vv_nxv8i1_nxv8i32_nxv8i32:
334 ; CHECK:       # %bb.0: # %entry
335 ; CHECK-NEXT:    vsetvli zero, a0, e32, m4, ta, ma
336 ; CHECK-NEXT:    vmsbc.vv v0, v8, v12
337 ; CHECK-NEXT:    ret
338 entry:
339   %a = call <vscale x 8 x i1> @llvm.riscv.vmsbc.nxv8i32.nxv8i32(
340     <vscale x 8 x i32> %0,
341     <vscale x 8 x i32> %1,
342     iXLen %2)
344   ret <vscale x 8 x i1> %a
347 declare <vscale x 16 x i1> @llvm.riscv.vmsbc.nxv16i32.nxv16i32(
348   <vscale x 16 x i32>,
349   <vscale x 16 x i32>,
350   iXLen);
352 define <vscale x 16 x i1> @intrinsic_vmsbc_vv_nxv16i1_nxv16i32_nxv16i32(<vscale x 16 x i32> %0, <vscale x 16 x i32> %1, iXLen %2) nounwind {
353 ; CHECK-LABEL: intrinsic_vmsbc_vv_nxv16i1_nxv16i32_nxv16i32:
354 ; CHECK:       # %bb.0: # %entry
355 ; CHECK-NEXT:    vsetvli zero, a0, e32, m8, ta, ma
356 ; CHECK-NEXT:    vmsbc.vv v0, v8, v16
357 ; CHECK-NEXT:    ret
358 entry:
359   %a = call <vscale x 16 x i1> @llvm.riscv.vmsbc.nxv16i32.nxv16i32(
360     <vscale x 16 x i32> %0,
361     <vscale x 16 x i32> %1,
362     iXLen %2)
364   ret <vscale x 16 x i1> %a
367 declare <vscale x 1 x i1> @llvm.riscv.vmsbc.nxv1i64.nxv1i64(
368   <vscale x 1 x i64>,
369   <vscale x 1 x i64>,
370   iXLen);
372 define <vscale x 1 x i1> @intrinsic_vmsbc_vv_nxv1i1_nxv1i64_nxv1i64(<vscale x 1 x i64> %0, <vscale x 1 x i64> %1, iXLen %2) nounwind {
373 ; CHECK-LABEL: intrinsic_vmsbc_vv_nxv1i1_nxv1i64_nxv1i64:
374 ; CHECK:       # %bb.0: # %entry
375 ; CHECK-NEXT:    vsetvli zero, a0, e64, m1, ta, ma
376 ; CHECK-NEXT:    vmsbc.vv v0, v8, v9
377 ; CHECK-NEXT:    ret
378 entry:
379   %a = call <vscale x 1 x i1> @llvm.riscv.vmsbc.nxv1i64.nxv1i64(
380     <vscale x 1 x i64> %0,
381     <vscale x 1 x i64> %1,
382     iXLen %2)
384   ret <vscale x 1 x i1> %a
387 declare <vscale x 2 x i1> @llvm.riscv.vmsbc.nxv2i64.nxv2i64(
388   <vscale x 2 x i64>,
389   <vscale x 2 x i64>,
390   iXLen);
392 define <vscale x 2 x i1> @intrinsic_vmsbc_vv_nxv2i1_nxv2i64_nxv2i64(<vscale x 2 x i64> %0, <vscale x 2 x i64> %1, iXLen %2) nounwind {
393 ; CHECK-LABEL: intrinsic_vmsbc_vv_nxv2i1_nxv2i64_nxv2i64:
394 ; CHECK:       # %bb.0: # %entry
395 ; CHECK-NEXT:    vsetvli zero, a0, e64, m2, ta, ma
396 ; CHECK-NEXT:    vmsbc.vv v0, v8, v10
397 ; CHECK-NEXT:    ret
398 entry:
399   %a = call <vscale x 2 x i1> @llvm.riscv.vmsbc.nxv2i64.nxv2i64(
400     <vscale x 2 x i64> %0,
401     <vscale x 2 x i64> %1,
402     iXLen %2)
404   ret <vscale x 2 x i1> %a
407 declare <vscale x 4 x i1> @llvm.riscv.vmsbc.nxv4i64.nxv4i64(
408   <vscale x 4 x i64>,
409   <vscale x 4 x i64>,
410   iXLen);
412 define <vscale x 4 x i1> @intrinsic_vmsbc_vv_nxv4i1_nxv4i64_nxv4i64(<vscale x 4 x i64> %0, <vscale x 4 x i64> %1, iXLen %2) nounwind {
413 ; CHECK-LABEL: intrinsic_vmsbc_vv_nxv4i1_nxv4i64_nxv4i64:
414 ; CHECK:       # %bb.0: # %entry
415 ; CHECK-NEXT:    vsetvli zero, a0, e64, m4, ta, ma
416 ; CHECK-NEXT:    vmsbc.vv v0, v8, v12
417 ; CHECK-NEXT:    ret
418 entry:
419   %a = call <vscale x 4 x i1> @llvm.riscv.vmsbc.nxv4i64.nxv4i64(
420     <vscale x 4 x i64> %0,
421     <vscale x 4 x i64> %1,
422     iXLen %2)
424   ret <vscale x 4 x i1> %a
427 declare <vscale x 8 x i1> @llvm.riscv.vmsbc.nxv8i64.nxv8i64(
428   <vscale x 8 x i64>,
429   <vscale x 8 x i64>,
430   iXLen);
432 define <vscale x 8 x i1> @intrinsic_vmsbc_vv_nxv8i1_nxv8i64_nxv8i64(<vscale x 8 x i64> %0, <vscale x 8 x i64> %1, iXLen %2) nounwind {
433 ; CHECK-LABEL: intrinsic_vmsbc_vv_nxv8i1_nxv8i64_nxv8i64:
434 ; CHECK:       # %bb.0: # %entry
435 ; CHECK-NEXT:    vsetvli zero, a0, e64, m8, ta, ma
436 ; CHECK-NEXT:    vmsbc.vv v0, v8, v16
437 ; CHECK-NEXT:    ret
438 entry:
439   %a = call <vscale x 8 x i1> @llvm.riscv.vmsbc.nxv8i64.nxv8i64(
440     <vscale x 8 x i64> %0,
441     <vscale x 8 x i64> %1,
442     iXLen %2)
444   ret <vscale x 8 x i1> %a
447 declare <vscale x 1 x i1> @llvm.riscv.vmsbc.nxv1i8.i8(
448   <vscale x 1 x i8>,
449   i8,
450   iXLen);
452 define <vscale x 1 x i1> @intrinsic_vmsbc_vx_nxv1i1_nxv1i8_i8(<vscale x 1 x i8> %0, i8 %1, iXLen %2) nounwind {
453 ; CHECK-LABEL: intrinsic_vmsbc_vx_nxv1i1_nxv1i8_i8:
454 ; CHECK:       # %bb.0: # %entry
455 ; CHECK-NEXT:    vsetvli zero, a1, e8, mf8, ta, ma
456 ; CHECK-NEXT:    vmsbc.vx v0, v8, a0
457 ; CHECK-NEXT:    ret
458 entry:
459   %a = call <vscale x 1 x i1> @llvm.riscv.vmsbc.nxv1i8.i8(
460     <vscale x 1 x i8> %0,
461     i8 %1,
462     iXLen %2)
464   ret <vscale x 1 x i1> %a
467 declare <vscale x 2 x i1> @llvm.riscv.vmsbc.nxv2i8.i8(
468   <vscale x 2 x i8>,
469   i8,
470   iXLen);
472 define <vscale x 2 x i1> @intrinsic_vmsbc_vx_nxv2i1_nxv2i8_i8(<vscale x 2 x i8> %0, i8 %1, iXLen %2) nounwind {
473 ; CHECK-LABEL: intrinsic_vmsbc_vx_nxv2i1_nxv2i8_i8:
474 ; CHECK:       # %bb.0: # %entry
475 ; CHECK-NEXT:    vsetvli zero, a1, e8, mf4, ta, ma
476 ; CHECK-NEXT:    vmsbc.vx v0, v8, a0
477 ; CHECK-NEXT:    ret
478 entry:
479   %a = call <vscale x 2 x i1> @llvm.riscv.vmsbc.nxv2i8.i8(
480     <vscale x 2 x i8> %0,
481     i8 %1,
482     iXLen %2)
484   ret <vscale x 2 x i1> %a
487 declare <vscale x 4 x i1> @llvm.riscv.vmsbc.nxv4i8.i8(
488   <vscale x 4 x i8>,
489   i8,
490   iXLen);
492 define <vscale x 4 x i1> @intrinsic_vmsbc_vx_nxv4i1_nxv4i8_i8(<vscale x 4 x i8> %0, i8 %1, iXLen %2) nounwind {
493 ; CHECK-LABEL: intrinsic_vmsbc_vx_nxv4i1_nxv4i8_i8:
494 ; CHECK:       # %bb.0: # %entry
495 ; CHECK-NEXT:    vsetvli zero, a1, e8, mf2, ta, ma
496 ; CHECK-NEXT:    vmsbc.vx v0, v8, a0
497 ; CHECK-NEXT:    ret
498 entry:
499   %a = call <vscale x 4 x i1> @llvm.riscv.vmsbc.nxv4i8.i8(
500     <vscale x 4 x i8> %0,
501     i8 %1,
502     iXLen %2)
504   ret <vscale x 4 x i1> %a
507 declare <vscale x 8 x i1> @llvm.riscv.vmsbc.nxv8i8.i8(
508   <vscale x 8 x i8>,
509   i8,
510   iXLen);
512 define <vscale x 8 x i1> @intrinsic_vmsbc_vx_nxv8i1_nxv8i8_i8(<vscale x 8 x i8> %0, i8 %1, iXLen %2) nounwind {
513 ; CHECK-LABEL: intrinsic_vmsbc_vx_nxv8i1_nxv8i8_i8:
514 ; CHECK:       # %bb.0: # %entry
515 ; CHECK-NEXT:    vsetvli zero, a1, e8, m1, ta, ma
516 ; CHECK-NEXT:    vmsbc.vx v0, v8, a0
517 ; CHECK-NEXT:    ret
518 entry:
519   %a = call <vscale x 8 x i1> @llvm.riscv.vmsbc.nxv8i8.i8(
520     <vscale x 8 x i8> %0,
521     i8 %1,
522     iXLen %2)
524   ret <vscale x 8 x i1> %a
527 declare <vscale x 16 x i1> @llvm.riscv.vmsbc.nxv16i8.i8(
528   <vscale x 16 x i8>,
529   i8,
530   iXLen);
532 define <vscale x 16 x i1> @intrinsic_vmsbc_vx_nxv16i1_nxv16i8_i8(<vscale x 16 x i8> %0, i8 %1, iXLen %2) nounwind {
533 ; CHECK-LABEL: intrinsic_vmsbc_vx_nxv16i1_nxv16i8_i8:
534 ; CHECK:       # %bb.0: # %entry
535 ; CHECK-NEXT:    vsetvli zero, a1, e8, m2, ta, ma
536 ; CHECK-NEXT:    vmsbc.vx v0, v8, a0
537 ; CHECK-NEXT:    ret
538 entry:
539   %a = call <vscale x 16 x i1> @llvm.riscv.vmsbc.nxv16i8.i8(
540     <vscale x 16 x i8> %0,
541     i8 %1,
542     iXLen %2)
544   ret <vscale x 16 x i1> %a
547 declare <vscale x 32 x i1> @llvm.riscv.vmsbc.nxv32i8.i8(
548   <vscale x 32 x i8>,
549   i8,
550   iXLen);
552 define <vscale x 32 x i1> @intrinsic_vmsbc_vx_nxv32i1_nxv32i8_i8(<vscale x 32 x i8> %0, i8 %1, iXLen %2) nounwind {
553 ; CHECK-LABEL: intrinsic_vmsbc_vx_nxv32i1_nxv32i8_i8:
554 ; CHECK:       # %bb.0: # %entry
555 ; CHECK-NEXT:    vsetvli zero, a1, e8, m4, ta, ma
556 ; CHECK-NEXT:    vmsbc.vx v0, v8, a0
557 ; CHECK-NEXT:    ret
558 entry:
559   %a = call <vscale x 32 x i1> @llvm.riscv.vmsbc.nxv32i8.i8(
560     <vscale x 32 x i8> %0,
561     i8 %1,
562     iXLen %2)
564   ret <vscale x 32 x i1> %a
567 declare <vscale x 64 x i1> @llvm.riscv.vmsbc.nxv64i8.i8(
568   <vscale x 64 x i8>,
569   i8,
570   iXLen);
572 define <vscale x 64 x i1> @intrinsic_vmsbc_vx_nxv64i1_nxv64i8_i8(<vscale x 64 x i8> %0, i8 %1, iXLen %2) nounwind {
573 ; CHECK-LABEL: intrinsic_vmsbc_vx_nxv64i1_nxv64i8_i8:
574 ; CHECK:       # %bb.0: # %entry
575 ; CHECK-NEXT:    vsetvli zero, a1, e8, m8, ta, ma
576 ; CHECK-NEXT:    vmsbc.vx v0, v8, a0
577 ; CHECK-NEXT:    ret
578 entry:
579   %a = call <vscale x 64 x i1> @llvm.riscv.vmsbc.nxv64i8.i8(
580     <vscale x 64 x i8> %0,
581     i8 %1,
582     iXLen %2)
584   ret <vscale x 64 x i1> %a
587 declare <vscale x 1 x i1> @llvm.riscv.vmsbc.nxv1i16.i16(
588   <vscale x 1 x i16>,
589   i16,
590   iXLen);
592 define <vscale x 1 x i1> @intrinsic_vmsbc_vx_nxv1i1_nxv1i16_i16(<vscale x 1 x i16> %0, i16 %1, iXLen %2) nounwind {
593 ; CHECK-LABEL: intrinsic_vmsbc_vx_nxv1i1_nxv1i16_i16:
594 ; CHECK:       # %bb.0: # %entry
595 ; CHECK-NEXT:    vsetvli zero, a1, e16, mf4, ta, ma
596 ; CHECK-NEXT:    vmsbc.vx v0, v8, a0
597 ; CHECK-NEXT:    ret
598 entry:
599   %a = call <vscale x 1 x i1> @llvm.riscv.vmsbc.nxv1i16.i16(
600     <vscale x 1 x i16> %0,
601     i16 %1,
602     iXLen %2)
604   ret <vscale x 1 x i1> %a
607 declare <vscale x 2 x i1> @llvm.riscv.vmsbc.nxv2i16.i16(
608   <vscale x 2 x i16>,
609   i16,
610   iXLen);
612 define <vscale x 2 x i1> @intrinsic_vmsbc_vx_nxv2i1_nxv2i16_i16(<vscale x 2 x i16> %0, i16 %1, iXLen %2) nounwind {
613 ; CHECK-LABEL: intrinsic_vmsbc_vx_nxv2i1_nxv2i16_i16:
614 ; CHECK:       # %bb.0: # %entry
615 ; CHECK-NEXT:    vsetvli zero, a1, e16, mf2, ta, ma
616 ; CHECK-NEXT:    vmsbc.vx v0, v8, a0
617 ; CHECK-NEXT:    ret
618 entry:
619   %a = call <vscale x 2 x i1> @llvm.riscv.vmsbc.nxv2i16.i16(
620     <vscale x 2 x i16> %0,
621     i16 %1,
622     iXLen %2)
624   ret <vscale x 2 x i1> %a
627 declare <vscale x 4 x i1> @llvm.riscv.vmsbc.nxv4i16.i16(
628   <vscale x 4 x i16>,
629   i16,
630   iXLen);
632 define <vscale x 4 x i1> @intrinsic_vmsbc_vx_nxv4i1_nxv4i16_i16(<vscale x 4 x i16> %0, i16 %1, iXLen %2) nounwind {
633 ; CHECK-LABEL: intrinsic_vmsbc_vx_nxv4i1_nxv4i16_i16:
634 ; CHECK:       # %bb.0: # %entry
635 ; CHECK-NEXT:    vsetvli zero, a1, e16, m1, ta, ma
636 ; CHECK-NEXT:    vmsbc.vx v0, v8, a0
637 ; CHECK-NEXT:    ret
638 entry:
639   %a = call <vscale x 4 x i1> @llvm.riscv.vmsbc.nxv4i16.i16(
640     <vscale x 4 x i16> %0,
641     i16 %1,
642     iXLen %2)
644   ret <vscale x 4 x i1> %a
647 declare <vscale x 8 x i1> @llvm.riscv.vmsbc.nxv8i16.i16(
648   <vscale x 8 x i16>,
649   i16,
650   iXLen);
652 define <vscale x 8 x i1> @intrinsic_vmsbc_vx_nxv8i1_nxv8i16_i16(<vscale x 8 x i16> %0, i16 %1, iXLen %2) nounwind {
653 ; CHECK-LABEL: intrinsic_vmsbc_vx_nxv8i1_nxv8i16_i16:
654 ; CHECK:       # %bb.0: # %entry
655 ; CHECK-NEXT:    vsetvli zero, a1, e16, m2, ta, ma
656 ; CHECK-NEXT:    vmsbc.vx v0, v8, a0
657 ; CHECK-NEXT:    ret
658 entry:
659   %a = call <vscale x 8 x i1> @llvm.riscv.vmsbc.nxv8i16.i16(
660     <vscale x 8 x i16> %0,
661     i16 %1,
662     iXLen %2)
664   ret <vscale x 8 x i1> %a
667 declare <vscale x 16 x i1> @llvm.riscv.vmsbc.nxv16i16.i16(
668   <vscale x 16 x i16>,
669   i16,
670   iXLen);
672 define <vscale x 16 x i1> @intrinsic_vmsbc_vx_nxv16i1_nxv16i16_i16(<vscale x 16 x i16> %0, i16 %1, iXLen %2) nounwind {
673 ; CHECK-LABEL: intrinsic_vmsbc_vx_nxv16i1_nxv16i16_i16:
674 ; CHECK:       # %bb.0: # %entry
675 ; CHECK-NEXT:    vsetvli zero, a1, e16, m4, ta, ma
676 ; CHECK-NEXT:    vmsbc.vx v0, v8, a0
677 ; CHECK-NEXT:    ret
678 entry:
679   %a = call <vscale x 16 x i1> @llvm.riscv.vmsbc.nxv16i16.i16(
680     <vscale x 16 x i16> %0,
681     i16 %1,
682     iXLen %2)
684   ret <vscale x 16 x i1> %a
687 declare <vscale x 32 x i1> @llvm.riscv.vmsbc.nxv32i16.i16(
688   <vscale x 32 x i16>,
689   i16,
690   iXLen);
692 define <vscale x 32 x i1> @intrinsic_vmsbc_vx_nxv32i1_nxv32i16_i16(<vscale x 32 x i16> %0, i16 %1, iXLen %2) nounwind {
693 ; CHECK-LABEL: intrinsic_vmsbc_vx_nxv32i1_nxv32i16_i16:
694 ; CHECK:       # %bb.0: # %entry
695 ; CHECK-NEXT:    vsetvli zero, a1, e16, m8, ta, ma
696 ; CHECK-NEXT:    vmsbc.vx v0, v8, a0
697 ; CHECK-NEXT:    ret
698 entry:
699   %a = call <vscale x 32 x i1> @llvm.riscv.vmsbc.nxv32i16.i16(
700     <vscale x 32 x i16> %0,
701     i16 %1,
702     iXLen %2)
704   ret <vscale x 32 x i1> %a
707 declare <vscale x 1 x i1> @llvm.riscv.vmsbc.nxv1i32.i32(
708   <vscale x 1 x i32>,
709   i32,
710   iXLen);
712 define <vscale x 1 x i1> @intrinsic_vmsbc_vx_nxv1i1_nxv1i32_i32(<vscale x 1 x i32> %0, i32 %1, iXLen %2) nounwind {
713 ; CHECK-LABEL: intrinsic_vmsbc_vx_nxv1i1_nxv1i32_i32:
714 ; CHECK:       # %bb.0: # %entry
715 ; CHECK-NEXT:    vsetvli zero, a1, e32, mf2, ta, ma
716 ; CHECK-NEXT:    vmsbc.vx v0, v8, a0
717 ; CHECK-NEXT:    ret
718 entry:
719   %a = call <vscale x 1 x i1> @llvm.riscv.vmsbc.nxv1i32.i32(
720     <vscale x 1 x i32> %0,
721     i32 %1,
722     iXLen %2)
724   ret <vscale x 1 x i1> %a
727 declare <vscale x 2 x i1> @llvm.riscv.vmsbc.nxv2i32.i32(
728   <vscale x 2 x i32>,
729   i32,
730   iXLen);
732 define <vscale x 2 x i1> @intrinsic_vmsbc_vx_nxv2i1_nxv2i32_i32(<vscale x 2 x i32> %0, i32 %1, iXLen %2) nounwind {
733 ; CHECK-LABEL: intrinsic_vmsbc_vx_nxv2i1_nxv2i32_i32:
734 ; CHECK:       # %bb.0: # %entry
735 ; CHECK-NEXT:    vsetvli zero, a1, e32, m1, ta, ma
736 ; CHECK-NEXT:    vmsbc.vx v0, v8, a0
737 ; CHECK-NEXT:    ret
738 entry:
739   %a = call <vscale x 2 x i1> @llvm.riscv.vmsbc.nxv2i32.i32(
740     <vscale x 2 x i32> %0,
741     i32 %1,
742     iXLen %2)
744   ret <vscale x 2 x i1> %a
747 declare <vscale x 4 x i1> @llvm.riscv.vmsbc.nxv4i32.i32(
748   <vscale x 4 x i32>,
749   i32,
750   iXLen);
752 define <vscale x 4 x i1> @intrinsic_vmsbc_vx_nxv4i1_nxv4i32_i32(<vscale x 4 x i32> %0, i32 %1, iXLen %2) nounwind {
753 ; CHECK-LABEL: intrinsic_vmsbc_vx_nxv4i1_nxv4i32_i32:
754 ; CHECK:       # %bb.0: # %entry
755 ; CHECK-NEXT:    vsetvli zero, a1, e32, m2, ta, ma
756 ; CHECK-NEXT:    vmsbc.vx v0, v8, a0
757 ; CHECK-NEXT:    ret
758 entry:
759   %a = call <vscale x 4 x i1> @llvm.riscv.vmsbc.nxv4i32.i32(
760     <vscale x 4 x i32> %0,
761     i32 %1,
762     iXLen %2)
764   ret <vscale x 4 x i1> %a
767 declare <vscale x 8 x i1> @llvm.riscv.vmsbc.nxv8i32.i32(
768   <vscale x 8 x i32>,
769   i32,
770   iXLen);
772 define <vscale x 8 x i1> @intrinsic_vmsbc_vx_nxv8i1_nxv8i32_i32(<vscale x 8 x i32> %0, i32 %1, iXLen %2) nounwind {
773 ; CHECK-LABEL: intrinsic_vmsbc_vx_nxv8i1_nxv8i32_i32:
774 ; CHECK:       # %bb.0: # %entry
775 ; CHECK-NEXT:    vsetvli zero, a1, e32, m4, ta, ma
776 ; CHECK-NEXT:    vmsbc.vx v0, v8, a0
777 ; CHECK-NEXT:    ret
778 entry:
779   %a = call <vscale x 8 x i1> @llvm.riscv.vmsbc.nxv8i32.i32(
780     <vscale x 8 x i32> %0,
781     i32 %1,
782     iXLen %2)
784   ret <vscale x 8 x i1> %a
787 declare <vscale x 16 x i1> @llvm.riscv.vmsbc.nxv16i32.i32(
788   <vscale x 16 x i32>,
789   i32,
790   iXLen);
792 define <vscale x 16 x i1> @intrinsic_vmsbc_vx_nxv16i1_nxv16i32_i32(<vscale x 16 x i32> %0, i32 %1, iXLen %2) nounwind {
793 ; CHECK-LABEL: intrinsic_vmsbc_vx_nxv16i1_nxv16i32_i32:
794 ; CHECK:       # %bb.0: # %entry
795 ; CHECK-NEXT:    vsetvli zero, a1, e32, m8, ta, ma
796 ; CHECK-NEXT:    vmsbc.vx v0, v8, a0
797 ; CHECK-NEXT:    ret
798 entry:
799   %a = call <vscale x 16 x i1> @llvm.riscv.vmsbc.nxv16i32.i32(
800     <vscale x 16 x i32> %0,
801     i32 %1,
802     iXLen %2)
804   ret <vscale x 16 x i1> %a
807 declare <vscale x 1 x i1> @llvm.riscv.vmsbc.nxv1i64.i64(
808   <vscale x 1 x i64>,
809   i64,
810   iXLen);
812 define <vscale x 1 x i1> @intrinsic_vmsbc_vx_nxv1i1_nxv1i64_i64(<vscale x 1 x i64> %0, i64 %1, iXLen %2) nounwind {
813 ; RV32-LABEL: intrinsic_vmsbc_vx_nxv1i1_nxv1i64_i64:
814 ; RV32:       # %bb.0: # %entry
815 ; RV32-NEXT:    addi sp, sp, -16
816 ; RV32-NEXT:    sw a1, 12(sp)
817 ; RV32-NEXT:    sw a0, 8(sp)
818 ; RV32-NEXT:    addi a0, sp, 8
819 ; RV32-NEXT:    vsetvli zero, a2, e64, m1, ta, ma
820 ; RV32-NEXT:    vlse64.v v9, (a0), zero
821 ; RV32-NEXT:    vmsbc.vv v0, v8, v9
822 ; RV32-NEXT:    addi sp, sp, 16
823 ; RV32-NEXT:    ret
825 ; RV64-LABEL: intrinsic_vmsbc_vx_nxv1i1_nxv1i64_i64:
826 ; RV64:       # %bb.0: # %entry
827 ; RV64-NEXT:    vsetvli zero, a1, e64, m1, ta, ma
828 ; RV64-NEXT:    vmsbc.vx v0, v8, a0
829 ; RV64-NEXT:    ret
830 entry:
831   %a = call <vscale x 1 x i1> @llvm.riscv.vmsbc.nxv1i64.i64(
832     <vscale x 1 x i64> %0,
833     i64 %1,
834     iXLen %2)
836   ret <vscale x 1 x i1> %a
839 declare <vscale x 2 x i1> @llvm.riscv.vmsbc.nxv2i64.i64(
840   <vscale x 2 x i64>,
841   i64,
842   iXLen);
844 define <vscale x 2 x i1> @intrinsic_vmsbc_vx_nxv2i1_nxv2i64_i64(<vscale x 2 x i64> %0, i64 %1, iXLen %2) nounwind {
845 ; RV32-LABEL: intrinsic_vmsbc_vx_nxv2i1_nxv2i64_i64:
846 ; RV32:       # %bb.0: # %entry
847 ; RV32-NEXT:    addi sp, sp, -16
848 ; RV32-NEXT:    sw a1, 12(sp)
849 ; RV32-NEXT:    sw a0, 8(sp)
850 ; RV32-NEXT:    addi a0, sp, 8
851 ; RV32-NEXT:    vsetvli zero, a2, e64, m2, ta, ma
852 ; RV32-NEXT:    vlse64.v v10, (a0), zero
853 ; RV32-NEXT:    vmsbc.vv v0, v8, v10
854 ; RV32-NEXT:    addi sp, sp, 16
855 ; RV32-NEXT:    ret
857 ; RV64-LABEL: intrinsic_vmsbc_vx_nxv2i1_nxv2i64_i64:
858 ; RV64:       # %bb.0: # %entry
859 ; RV64-NEXT:    vsetvli zero, a1, e64, m2, ta, ma
860 ; RV64-NEXT:    vmsbc.vx v0, v8, a0
861 ; RV64-NEXT:    ret
862 entry:
863   %a = call <vscale x 2 x i1> @llvm.riscv.vmsbc.nxv2i64.i64(
864     <vscale x 2 x i64> %0,
865     i64 %1,
866     iXLen %2)
868   ret <vscale x 2 x i1> %a
871 declare <vscale x 4 x i1> @llvm.riscv.vmsbc.nxv4i64.i64(
872   <vscale x 4 x i64>,
873   i64,
874   iXLen);
876 define <vscale x 4 x i1> @intrinsic_vmsbc_vx_nxv4i1_nxv4i64_i64(<vscale x 4 x i64> %0, i64 %1, iXLen %2) nounwind {
877 ; RV32-LABEL: intrinsic_vmsbc_vx_nxv4i1_nxv4i64_i64:
878 ; RV32:       # %bb.0: # %entry
879 ; RV32-NEXT:    addi sp, sp, -16
880 ; RV32-NEXT:    sw a1, 12(sp)
881 ; RV32-NEXT:    sw a0, 8(sp)
882 ; RV32-NEXT:    addi a0, sp, 8
883 ; RV32-NEXT:    vsetvli zero, a2, e64, m4, ta, ma
884 ; RV32-NEXT:    vlse64.v v12, (a0), zero
885 ; RV32-NEXT:    vmsbc.vv v0, v8, v12
886 ; RV32-NEXT:    addi sp, sp, 16
887 ; RV32-NEXT:    ret
889 ; RV64-LABEL: intrinsic_vmsbc_vx_nxv4i1_nxv4i64_i64:
890 ; RV64:       # %bb.0: # %entry
891 ; RV64-NEXT:    vsetvli zero, a1, e64, m4, ta, ma
892 ; RV64-NEXT:    vmsbc.vx v0, v8, a0
893 ; RV64-NEXT:    ret
894 entry:
895   %a = call <vscale x 4 x i1> @llvm.riscv.vmsbc.nxv4i64.i64(
896     <vscale x 4 x i64> %0,
897     i64 %1,
898     iXLen %2)
900   ret <vscale x 4 x i1> %a
903 declare <vscale x 8 x i1> @llvm.riscv.vmsbc.nxv8i64.i64(
904   <vscale x 8 x i64>,
905   i64,
906   iXLen);
908 define <vscale x 8 x i1> @intrinsic_vmsbc_vx_nxv8i1_nxv8i64_i64(<vscale x 8 x i64> %0, i64 %1, iXLen %2) nounwind {
909 ; RV32-LABEL: intrinsic_vmsbc_vx_nxv8i1_nxv8i64_i64:
910 ; RV32:       # %bb.0: # %entry
911 ; RV32-NEXT:    addi sp, sp, -16
912 ; RV32-NEXT:    sw a1, 12(sp)
913 ; RV32-NEXT:    sw a0, 8(sp)
914 ; RV32-NEXT:    addi a0, sp, 8
915 ; RV32-NEXT:    vsetvli zero, a2, e64, m8, ta, ma
916 ; RV32-NEXT:    vlse64.v v16, (a0), zero
917 ; RV32-NEXT:    vmsbc.vv v0, v8, v16
918 ; RV32-NEXT:    addi sp, sp, 16
919 ; RV32-NEXT:    ret
921 ; RV64-LABEL: intrinsic_vmsbc_vx_nxv8i1_nxv8i64_i64:
922 ; RV64:       # %bb.0: # %entry
923 ; RV64-NEXT:    vsetvli zero, a1, e64, m8, ta, ma
924 ; RV64-NEXT:    vmsbc.vx v0, v8, a0
925 ; RV64-NEXT:    ret
926 entry:
927   %a = call <vscale x 8 x i1> @llvm.riscv.vmsbc.nxv8i64.i64(
928     <vscale x 8 x i64> %0,
929     i64 %1,
930     iXLen %2)
932   ret <vscale x 8 x i1> %a