1 # RUN: not llvm-mc -triple=riscv64 --mattr=+v --mattr=+f %s 2>&1 \
2 # RUN: | FileCheck %s --check-prefix=CHECK-ERROR
5 # CHECK-ERROR: operand must be e[8|16|32|64],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu]
7 vsetivli a2
, zero
, e8
,m1
8 # CHECK-ERROR: operand must be e[8|16|32|64],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu]
10 vsetivli a2
, 5, (1 << 10)
11 # CHECK-ERROR: operand must be e[8|16|32|64],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu]
14 # CHECK-ERROR: operand must be e[8|16|32|64],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu]
17 # CHECK-ERROR: operand must be e[8|16|32|64],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu]
19 vsetvli a2
, a0
, (1 << 11)
20 # CHECK-ERROR: operand must be e[8|16|32|64],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu]
23 # CHECK-ERROR: operand must be e[8|16|32|64],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu]
27 # CHECK-ERROR: operand must be e[8|16|32|64],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu]
29 vsetvli a2
, a0
, e32
,m3
30 # CHECK-ERROR: operand must be e[8|16|32|64],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu]
32 vsetvli a2
, a0
, m1
,e32
33 # CHECK-ERROR: operand must be e[8|16|32|64],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu]
35 vsetvli a2
, a0
, e32
,m16
36 # CHECK-ERROR: operand must be e[8|16|32|64],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu]
38 vsetvli a2
, a0
, e128
,m8
39 # CHECK-ERROR: operand must be e[8|16|32|64],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu]
41 vsetvli a2
, a0
, e256
,m8
42 # CHECK-ERROR: operand must be e[8|16|32|64],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu]
44 vsetvli a2
, a0
, e512
,m8
45 # CHECK-ERROR: operand must be e[8|16|32|64],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu]
47 vsetvli a2
, a0
, e1024
,m8
48 # CHECK-ERROR: operand must be e[8|16|32|64],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu]
50 vsetvli a2
, a0
, e2048
,m8
51 # CHECK-ERROR: operand must be e[8|16|32|64],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu]
54 # CHECK-ERROR: operand must be e[8|16|32|64],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu]
56 vsetvli a2
, a0
, e8
,m1
,tx
57 # CHECK-ERROR: operand must be e[8|16|32|64],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu]
59 vsetvli a2
, a0
, e8
,m1
,ta
,mx
60 # CHECK-ERROR: operand must be e[8|16|32|64],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu]
62 vsetvli a2
, a0
, e8
,m1
,ma
63 # CHECK-ERROR: operand must be e[8|16|32|64],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu]
65 vsetvli a2
, a0
, e8
,m1
,mu
66 # CHECK-ERROR: operand must be e[8|16|32|64],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu]
68 vsetvli a2
, a0
, e8x
,m1
,tu
,mu
69 # CHECK-ERROR: operand must be e[8|16|32|64],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu]
71 vsetvli a2
, a0
, e8
,m1z
,tu
,mu
72 # CHECK-ERROR: operand must be e[8|16|32|64],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu]
74 vsetvli a2
, a0
, e8
,mf1
,tu
,mu
75 # CHECK-ERROR: operand must be e[8|16|32|64],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu]
77 vsetvli a2
, a0
, e8
,m1
,tu
,mut
78 # CHECK-ERROR: operand must be e[8|16|32|64],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu]
80 vsetvli a2
, a0
, e8
,m1
,tut
,mu
81 # CHECK-ERROR: operand must be e[8|16|32|64],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu]
84 # CHECK-ERROR: operand must be e[8|16|32|64],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu]
87 # CHECK-ERROR: operand must be e[8|16|32|64],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu]
89 vsetvli a2
, a0
, e8
,m1
,ta
90 # CHECK-ERROR: operand must be e[8|16|32|64],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu]
92 vsetvli a2
, a0
, e8
,1,ta
,ma
93 # CHECK-ERROR: operand must be e[8|16|32|64],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu]
95 vadd.vv v1
, v3
, v2
, v4.
t
96 # CHECK-ERROR: operand must be v0.t
98 vadd.vv v1
, v3
, v2
, v0
99 # CHECK-ERROR: expected '.t' suffix
102 # CHECK-ERROR: invalid operand for instruction
105 # CHECK-ERROR: immediate must be in the range [-15, 16]
108 # CHECK-ERROR: immediate must be in the range [-15, 16]
111 # CHECK-ERROR: the destination vector register group cannot overlap the mask register
112 # CHECK-ERROR-LABEL: viota.m v0, v2, v0.t
115 # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
116 # CHECK-ERROR-LABEL: viota.m v2, v2
118 vfwcvt.xu.f.v v0
, v2
, v0.
t
119 # CHECK-ERROR: the destination vector register group cannot overlap the mask register
120 # CHECK-ERROR-LABEL: vfwcvt.xu.f.v v0, v2, v0.t
123 # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
124 # CHECK-ERROR-LABEL: vfwcvt.xu.f.v v2, v2
126 vfwcvt.x.f.v v0
, v2
, v0.
t
127 # CHECK-ERROR: the destination vector register group cannot overlap the mask register
128 # CHECK-ERROR-LABEL: vfwcvt.x.f.v v0, v2, v0.t
131 # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
132 # CHECK-ERROR-LABEL: vfwcvt.x.f.v v2, v2
134 vfwcvt.f.xu.v v0
, v2
, v0.
t
135 # CHECK-ERROR: the destination vector register group cannot overlap the mask register
136 # CHECK-ERROR-LABEL: vfwcvt.f.xu.v v0, v2, v0.t
139 # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
140 # CHECK-ERROR-LABEL: vfwcvt.f.xu.v v2, v2
142 vfwcvt.f.x.v v0
, v2
, v0.
t
143 # CHECK-ERROR: the destination vector register group cannot overlap the mask register
144 # CHECK-ERROR-LABEL: vfwcvt.f.x.v v0, v2, v0.t
147 # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
148 # CHECK-ERROR-LABEL: vfwcvt.f.x.v v2, v2
150 vfwcvt.f.f.v v0
, v2
, v0.
t
151 # CHECK-ERROR: the destination vector register group cannot overlap the mask register
152 # CHECK-ERROR-LABEL: vfwcvt.f.f.v v0, v2, v0.t
155 # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
156 # CHECK-ERROR-LABEL: vfwcvt.f.f.v v2, v2
158 vslideup.vx v0
, v2
, a0
, v0.
t
159 # CHECK-ERROR: the destination vector register group cannot overlap the mask register
160 # CHECK-ERROR-LABEL: vslideup.vx v0, v2, a0, v0.t
162 vslideup.vx v2
, v2
, a0
163 # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
164 # CHECK-ERROR-LABEL: vslideup.vx v2, v2, a0
166 vslideup.vi v0
, v2
, 31, v0.
t
167 # CHECK-ERROR: the destination vector register group cannot overlap the mask register
168 # CHECK-ERROR-LABEL: vslideup.vi v0, v2, 31, v0.t
170 vslideup.vi v2
, v2
, 31
171 # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
172 # CHECK-ERROR-LABEL: vslideup.vi v2, v2, 31
174 vslide1up.vx v0
, v2
, a0
, v0.
t
175 # CHECK-ERROR: the destination vector register group cannot overlap the mask register
176 # CHECK-ERROR-LABEL: vslide1up.vx v0, v2, a0, v0.t
178 vslide1up.vx v2
, v2
, a0
179 # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
180 # CHECK-ERROR-LABEL: vslide1up.vx v2, v2, a0
182 vrgather.vv v0
, v2
, v4
, v0.
t
183 # CHECK-ERROR: the destination vector register group cannot overlap the mask register
184 # CHECK-ERROR-LABEL: vrgather.vv v0, v2, v4, v0.t
186 vrgather.vv v2
, v2
, v4
187 # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
188 # CHECK-ERROR-LABEL: vrgather.vv v2, v2, v4
190 vrgather.vx v0
, v2
, a0
, v0.
t
191 # CHECK-ERROR: the destination vector register group cannot overlap the mask register
192 # CHECK-ERROR-LABEL: vrgather.vx v0, v2, a0, v0.t
194 vrgather.vx v2
, v2
, a0
195 # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
196 # CHECK-ERROR-LABEL: vrgather.vx v2, v2, a0
198 vrgather.vi v0
, v2
, 31, v0.
t
199 # CHECK-ERROR: the destination vector register group cannot overlap the mask register
200 # CHECK-ERROR-LABEL: vrgather.vi v0, v2, 31, v0.t
202 vrgather.vi v2
, v2
, 31
203 # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
204 # CHECK-ERROR-LABEL: vrgather.vi v2, v2, 31
206 vwaddu.vv v0
, v2
, v4
, v0.
t
207 # CHECK-ERROR: the destination vector register group cannot overlap the mask register
208 # CHECK-ERROR-LABEL: vwaddu.vv v0, v2, v4, v0.t
211 # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
212 # CHECK-ERROR-LABEL: vwaddu.vv v2, v2, v4
214 vwsubu.vv v0
, v2
, v4
, v0.
t
215 # CHECK-ERROR: the destination vector register group cannot overlap the mask register
216 # CHECK-ERROR-LABEL: vwsubu.vv v0, v2, v4, v0.t
219 # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
220 # CHECK-ERROR-LABEL: vwsubu.vv v2, v2, v4
222 vwadd.vv v0
, v2
, v4
, v0.
t
223 # CHECK-ERROR: the destination vector register group cannot overlap the mask register
224 # CHECK-ERROR-LABEL: vwadd.vv v0, v2, v4, v0.t
227 # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
228 # CHECK-ERROR-LABEL: vwadd.vv v2, v2, v4
230 vwsub.vv v0
, v2
, v4
, v0.
t
231 # CHECK-ERROR: the destination vector register group cannot overlap the mask register
232 # CHECK-ERROR-LABEL: vwsub.vv v0, v2, v4, v0.t
235 # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
236 # CHECK-ERROR-LABEL: vwsub.vv v2, v2, v4
238 vwmul.vv v0
, v2
, v4
, v0.
t
239 # CHECK-ERROR: the destination vector register group cannot overlap the mask register
240 # CHECK-ERROR-LABEL: vwmul.vv v0, v2, v4, v0.t
243 # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
244 # CHECK-ERROR-LABEL: vwmul.vv v2, v2, v4
246 vwmulu.vv v0
, v2
, v4
, v0.
t
247 # CHECK-ERROR: the destination vector register group cannot overlap the mask register
248 # CHECK-ERROR-LABEL: vwmulu.vv v0, v2, v4, v0.t
251 # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
252 # CHECK-ERROR-LABEL: vwmulu.vv v2, v2, v4
254 vwmulsu.vv v0
, v2
, v4
, v0.
t
255 # CHECK-ERROR: the destination vector register group cannot overlap the mask register
256 # CHECK-ERROR-LABEL: vwmulsu.vv v0, v2, v4, v0.t
258 vwmulsu.vv v2
, v2
, v4
259 # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
260 # CHECK-ERROR-LABEL: vwmulsu.vv v2, v2, v4
262 vwmaccu.vv v0
, v4
, v2
, v0.
t
263 # CHECK-ERROR: the destination vector register group cannot overlap the mask register
264 # CHECK-ERROR-LABEL: vwmaccu.vv v0, v4, v2, v0.t
266 vwmaccu.vv v2
, v4
, v2
267 # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
268 # CHECK-ERROR-LABEL: vwmaccu.vv v2, v4, v2
270 vwmacc.vv v0
, v4
, v2
, v0.
t
271 # CHECK-ERROR: the destination vector register group cannot overlap the mask register
272 # CHECK-ERROR-LABEL: vwmacc.vv v0, v4, v2, v0.t
275 # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
276 # CHECK-ERROR-LABEL: vwmacc.vv v2, v4, v2
278 vwmaccsu.vv v0
, v4
, v2
, v0.
t
279 # CHECK-ERROR: the destination vector register group cannot overlap the mask register
280 # CHECK-ERROR-LABEL: vwmaccsu.vv v0, v4, v2, v0.t
282 vwmaccsu.vv v2
, v4
, v2
283 # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
284 # CHECK-ERROR-LABEL: vwmaccsu.vv v2, v4, v2
286 vfwadd.vv v0
, v2
, v4
, v0.
t
287 # CHECK-ERROR: the destination vector register group cannot overlap the mask register
288 # CHECK-ERROR-LABEL: vfwadd.vv v0, v2, v4, v0.t
291 # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
292 # CHECK-ERROR-LABEL: vfwadd.vv v2, v2, v4
294 vfwsub.vv v0
, v2
, v4
, v0.
t
295 # CHECK-ERROR: the destination vector register group cannot overlap the mask register
296 # CHECK-ERROR-LABEL: vfwsub.vv v0, v2, v4, v0.t
299 # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
300 # CHECK-ERROR-LABEL: vfwsub.vv v2, v2, v4
302 vfwmul.vv v0
, v2
, v4
, v0.
t
303 # CHECK-ERROR: the destination vector register group cannot overlap the mask register
304 # CHECK-ERROR-LABEL: vfwmul.vv v0, v2, v4, v0.t
307 # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
308 # CHECK-ERROR-LABEL: vfwmul.vv v2, v2, v4
310 vfwmacc.vv v0
, v4
, v2
, v0.
t
311 # CHECK-ERROR: the destination vector register group cannot overlap the mask register
312 # CHECK-ERROR-LABEL: vfwmacc.vv v0, v4, v2, v0.t
314 vfwmacc.vv v2
, v4
, v2
315 # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
316 # CHECK-ERROR-LABEL: vfwmacc.vv v2, v4, v2
318 vfwnmacc.vv v0
, v4
, v2
, v0.
t
319 # CHECK-ERROR: the destination vector register group cannot overlap the mask register
320 # CHECK-ERROR-LABEL: vfwnmacc.vv v0, v4, v2, v0.t
322 vfwnmacc.vv v2
, v4
, v2
323 # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
324 # CHECK-ERROR-LABEL: vfwnmacc.vv v2, v4, v2
326 vfwmsac.vv v0
, v4
, v2
, v0.
t
327 # CHECK-ERROR: the destination vector register group cannot overlap the mask register
328 # CHECK-ERROR-LABEL: vfwmsac.vv v0, v4, v2, v0.t
330 vfwmsac.vv v2
, v4
, v2
331 # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
332 # CHECK-ERROR-LABEL: vfwmsac.vv v2, v4, v2
334 vfwnmsac.vv v0
, v4
, v2
, v0.
t
335 # CHECK-ERROR: the destination vector register group cannot overlap the mask register
336 # CHECK-ERROR-LABEL: vfwnmsac.vv v0, v4, v2, v0.t
338 vfwnmsac.vv v2
, v4
, v2
339 # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
340 # CHECK-ERROR-LABEL: vfwnmsac.vv v2, v4, v2
342 vwaddu.vx v0
, v2
, a0
, v0.
t
343 # CHECK-ERROR: the destination vector register group cannot overlap the mask register
344 # CHECK-ERROR-LABEL: vwaddu.vx v0, v2, a0, v0.t
347 # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
348 # CHECK-ERROR-LABEL: vwaddu.vx v2, v2, a0
350 vwsubu.vx v0
, v2
, a0
, v0.
t
351 # CHECK-ERROR: the destination vector register group cannot overlap the mask register
352 # CHECK-ERROR-LABEL: vwsubu.vx v0, v2, a0, v0.t
355 # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
356 # CHECK-ERROR-LABEL: vwsubu.vx v2, v2, a0
358 vwadd.vx v0
, v2
, a0
, v0.
t
359 # CHECK-ERROR: the destination vector register group cannot overlap the mask register
360 # CHECK-ERROR-LABEL: vwadd.vx v0, v2, a0, v0.t
363 # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
364 # CHECK-ERROR-LABEL: vwadd.vx v2, v2, a0
366 vwsub.vx v0
, v2
, a0
, v0.
t
367 # CHECK-ERROR: the destination vector register group cannot overlap the mask register
368 # CHECK-ERROR-LABEL: vwsub.vx v0, v2, a0, v0.t
371 # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
372 # CHECK-ERROR-LABEL: vwsub.vx v2, v2, a0
374 vwmul.vx v0
, v2
, a0
, v0.
t
375 # CHECK-ERROR: the destination vector register group cannot overlap the mask register
376 # CHECK-ERROR-LABEL: vwmul.vx v0, v2, a0, v0.t
379 # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
380 # CHECK-ERROR-LABEL: vwmul.vx v2, v2, a0
382 vwmulu.vx v0
, v2
, a0
, v0.
t
383 # CHECK-ERROR: the destination vector register group cannot overlap the mask register
384 # CHECK-ERROR-LABEL: vwmulu.vx v0, v2, a0, v0.t
387 # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
388 # CHECK-ERROR-LABEL: vwmulu.vx v2, v2, a0
390 vwmulsu.vx v0
, v2
, a0
, v0.
t
391 # CHECK-ERROR: the destination vector register group cannot overlap the mask register
392 # CHECK-ERROR-LABEL: vwmulsu.vx v0, v2, a0, v0.t
394 vwmulsu.vx v2
, v2
, a0
395 # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
396 # CHECK-ERROR-LABEL: vwmulsu.vx v2, v2, a0
398 vwmaccu.vx v0
, a0
, v2
, v0.
t
399 # CHECK-ERROR: the destination vector register group cannot overlap the mask register
400 # CHECK-ERROR-LABEL: vwmaccu.vx v0, a0, v2, v0.t
402 vwmaccu.vx v2
, a0
, v2
403 # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
404 # CHECK-ERROR-LABEL: vwmaccu.vx v2, a0, v2
406 vwmacc.vx v0
, a0
, v2
, v0.
t
407 # CHECK-ERROR: the destination vector register group cannot overlap the mask register
408 # CHECK-ERROR-LABEL: vwmacc.vx v0, a0, v2, v0.t
411 # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
412 # CHECK-ERROR-LABEL: vwmacc.vx v2, a0, v2
414 vwmaccsu.vx v0
, a0
, v2
, v0.
t
415 # CHECK-ERROR: the destination vector register group cannot overlap the mask register
416 # CHECK-ERROR-LABEL: vwmaccsu.vx v0, a0, v2, v0.t
418 vwmaccsu.vx v2
, a0
, v2
419 # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
420 # CHECK-ERROR-LABEL: vwmaccsu.vx v2, a0, v2
422 vwmaccus.vx v0
, a0
, v2
, v0.
t
423 # CHECK-ERROR: the destination vector register group cannot overlap the mask register
424 # CHECK-ERROR-LABEL: vwmaccus.vx v0, a0, v2, v0.t
426 vwmaccus.vx v2
, a0
, v2
427 # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
428 # CHECK-ERROR-LABEL: vwmaccus.vx v2, a0, v2
430 vfwadd.vf v0
, v2
, fa0
, v0.
t
431 # CHECK-ERROR: the destination vector register group cannot overlap the mask register
432 # CHECK-ERROR-LABEL: vfwadd.vf v0, v2, fa0, v0.t
434 vfwadd.vf v2
, v2
, fa0
435 # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
436 # CHECK-ERROR-LABEL: vfwadd.vf v2, v2, fa0
438 vfwsub.vf v0
, v2
, fa0
, v0.
t
439 # CHECK-ERROR: the destination vector register group cannot overlap the mask register
440 # CHECK-ERROR-LABEL: vfwsub.vf v0, v2, fa0, v0.t
442 vfwsub.vf v2
, v2
, fa0
443 # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
444 # CHECK-ERROR-LABEL: vfwsub.vf v2, v2, fa0
446 vfwmul.vf v0
, v2
, fa0
, v0.
t
447 # CHECK-ERROR: the destination vector register group cannot overlap the mask register
448 # CHECK-ERROR-LABEL: vfwmul.vf v0, v2, fa0, v0.t
450 vfwmul.vf v2
, v2
, fa0
451 # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
452 # CHECK-ERROR-LABEL: vfwmul.vf v2, v2, fa0
454 vfwmacc.vf v0
, fa0
, v2
, v0.
t
455 # CHECK-ERROR: the destination vector register group cannot overlap the mask register
456 # CHECK-ERROR-LABEL: vfwmacc.vf v0, fa0, v2, v0.t
458 vfwmacc.vf v2
, fa0
, v2
459 # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
460 # CHECK-ERROR-LABEL: vfwmacc.vf v2, fa0, v2
462 vfwnmacc.vf v0
, fa0
, v2
, v0.
t
463 # CHECK-ERROR: the destination vector register group cannot overlap the mask register
464 # CHECK-ERROR-LABEL: vfwnmacc.vf v0, fa0, v2, v0.t
466 vfwnmacc.vf v2
, fa0
, v2
467 # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
468 # CHECK-ERROR-LABEL: vfwnmacc.vf v2, fa0, v2
470 vfwmsac.vf v0
, fa0
, v2
, v0.
t
471 # CHECK-ERROR: the destination vector register group cannot overlap the mask register
472 # CHECK-ERROR-LABEL: vfwmsac.vf v0, fa0, v2, v0.t
474 vfwmsac.vf v2
, fa0
, v2
475 # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
476 # CHECK-ERROR-LABEL: vfwmsac.vf v2, fa0, v2
478 vfwnmsac.vf v0
, fa0
, v2
, v0.
t
479 # CHECK-ERROR: the destination vector register group cannot overlap the mask register
480 # CHECK-ERROR-LABEL: vfwnmsac.vf v0, fa0, v2, v0.t
482 vfwnmsac.vf v2
, fa0
, v2
483 # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
484 # CHECK-ERROR-LABEL: vfwnmsac.vf v2, fa0, v2
486 vcompress.vm v2
, v2
, v4
487 # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
488 # CHECK-ERROR-LABEL: vcompress.vm v2, v2, v4
490 vwaddu.wv v0
, v2
, v4
, v0.
t
491 # CHECK-ERROR: the destination vector register group cannot overlap the mask register
492 # CHECK-ERROR-LABEL: vwaddu.wv v0, v2, v4, v0.t
495 # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
496 # CHECK-ERROR-LABEL: vwaddu.wv v2, v4, v2
498 vwsubu.wv v0
, v2
, v4
, v0.
t
499 # CHECK-ERROR: the destination vector register group cannot overlap the mask register
500 # CHECK-ERROR-LABEL: vwsubu.wv v0, v2, v4, v0.t
503 # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
504 # CHECK-ERROR-LABEL: vwsubu.wv v2, v4, v2
506 vwadd.wv v0
, v2
, v4
, v0.
t
507 # CHECK-ERROR: the destination vector register group cannot overlap the mask register
508 # CHECK-ERROR-LABEL: vwadd.wv v0, v2, v4, v0.t
511 # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
512 # CHECK-ERROR-LABEL: vwadd.wv v2, v4, v2
514 vwsub.wv v0
, v2
, v4
, v0.
t
515 # CHECK-ERROR: the destination vector register group cannot overlap the mask register
516 # CHECK-ERROR-LABEL: vwsub.wv v0, v2, v4, v0.t
519 # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
520 # CHECK-ERROR-LABEL: vwsub.wv v2, v4, v2
522 vfwadd.wv v0
, v2
, v4
, v0.
t
523 # CHECK-ERROR: the destination vector register group cannot overlap the mask register
524 # CHECK-ERROR-LABEL: vfwadd.wv v0, v2, v4, v0.t
527 # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
528 # CHECK-ERROR-LABEL: vfwadd.wv v2, v4, v2
530 vfwsub.wv v0
, v2
, v4
, v0.
t
531 # CHECK-ERROR: the destination vector register group cannot overlap the mask register
532 # CHECK-ERROR-LABEL: vfwsub.wv v0, v2, v4, v0.t
535 # CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
536 # CHECK-ERROR-LABEL: vfwsub.wv v2, v4, v2
538 vwaddu.wx v0
, v2
, a0
, v0.
t
539 # CHECK-ERROR: the destination vector register group cannot overlap the mask register
540 # CHECK-ERROR-LABEL: vwaddu.wx v0, v2, a0, v0.t
542 vwsubu.wx v0
, v2
, a0
, v0.
t
543 # CHECK-ERROR: the destination vector register group cannot overlap the mask register
544 # CHECK-ERROR-LABEL: vwsubu.wx v0, v2, a0, v0.t
546 vwadd.wx v0
, v2
, a0
, v0.
t
547 # CHECK-ERROR: the destination vector register group cannot overlap the mask register
548 # CHECK-ERROR-LABEL: vwadd.wx v0, v2, a0, v0.t
550 vwsub.wx v0
, v2
, a0
, v0.
t
551 # CHECK-ERROR: the destination vector register group cannot overlap the mask register
552 # CHECK-ERROR-LABEL: vwsub.wx v0, v2, a0, v0.t
554 vfwadd.wf v0
, v2
, fa0
, v0.
t
555 # CHECK-ERROR: the destination vector register group cannot overlap the mask register
556 # CHECK-ERROR-LABEL: vfwadd.wf v0, v2, fa0, v0.t
558 vfwsub.wf v0
, v2
, fa0
, v0.
t
559 # CHECK-ERROR: the destination vector register group cannot overlap the mask register
560 # CHECK-ERROR-LABEL: vfwsub.wf v0, v2, fa0, v0.t
562 vadc.vvm v0
, v2
, v4
, v0
563 # CHECK-ERROR: the destination vector register group cannot be V0
564 # CHECK-ERROR-LABEL: vadc.vvm v0, v2, v4, v0
566 vadd.vv v0
, v2
, v4
, v0.
t
567 # CHECK-ERROR: the destination vector register group cannot overlap the mask register
568 # CHECK-ERROR-LABEL: vadd.vv v0, v2, v4, v0.t
570 vadd.vx v0
, v2
, a0
, v0.
t
571 # CHECK-ERROR: the destination vector register group cannot overlap the mask register
572 # CHECK-ERROR-LABEL: vadd.vx v0, v2, a0, v0.t
574 vadd.vi v0
, v2
, 1, v0.
t
575 # CHECK-ERROR: the destination vector register group cannot overlap the mask register
576 # CHECK-ERROR-LABEL: vadd.vi v0, v2, 1, v0.t
578 vmsge.vx v0
, v4
, a0
, v0.
t
579 # CHECK-ERROR: too few operands for instruction
580 # CHECK-ERROR-LABEL: vmsge.vx v0, v4, a0, v0.t
582 vmerge.vim v0
, v1
, 1, v0
583 # CHECK-ERROR: the destination vector register group cannot be V0
584 # CHECK-ERROR-LABEL: vmerge.vim v0, v1, 1, v0
586 vmerge.vvm v0
, v1
, v2
, v0
587 # CHECK-ERROR: the destination vector register group cannot be V0
588 # CHECK-ERROR-LABEL: vmerge.vvm v0, v1, v2, v0
590 vmerge.vxm v0
, v1
, x1
, v0
591 # CHECK-ERROR: the destination vector register group cannot be V0
592 # CHECK-ERROR-LABEL: vmerge.vxm v0, v1, x1, v0
594 vfmerge.vfm v0
, v1
, f1, v0
595 # CHECK-ERROR: the destination vector register group cannot be V0
596 # CHECK-ERROR-LABEL: vfmerge.vfm v0, v1, f1, v0
598 vle8.v v0
, (a0
), v0.
t
599 # CHECK-ERROR: the destination vector register group cannot overlap the mask register
600 # CHECK-ERROR-LABEL: vle8.v v0, (a0), v0.t
602 vfclass.v v0
, v1
, v0.
t
603 # CHECK-ERROR: the destination vector register group cannot overlap the mask register
604 # CHECK-ERROR-LABEL: vfclass.v v0, v1, v0.t
606 vfsqrt.v v0
, v1
, v0.
t
607 # CHECK-ERROR: the destination vector register group cannot overlap the mask register
608 # CHECK-ERROR-LABEL: vfsqrt.v v0, v1, v0.t
610 vzext.vf2 v0
, v1
, v0.
t
611 # CHECK-ERROR: the destination vector register group cannot overlap the mask register
612 # CHECK-ERROR-LABEL: vzext.vf2 v0, v1, v0.t
615 # CHECK-ERROR: the destination vector register group cannot overlap the mask register
616 # CHECK-ERROR-LABEL: vid.v v0, v0.t
618 vnsrl.wv v0
, v4
, v20
, v0.
t
619 # CHECK-ERROR: the destination vector register group cannot overlap the mask register
620 # CHECK-ERROR-LABEL: vnsrl.wv v0, v4, v20, v0.t
622 vfncvt.xu.f.w v0
, v4
, v0.
t
623 # CHECK-ERROR: the destination vector register group cannot overlap the mask register
624 # CHECK-ERROR-LABEL: vfncvt.xu.f.w v0, v4, v0.t
627 # CHECK-ERROR: invalid operand for instruction
630 # CHECK-ERROR: invalid operand for instruction
633 # CHECK-ERROR: invalid operand for instruction
636 # CHECK-ERROR: invalid operand for instruction
639 # CHECK-ERROR: invalid operand for instruction
642 # CHECK-ERROR: invalid operand for instruction
645 # CHECK-ERROR: invalid operand for instruction
648 # CHECK-ERROR: invalid operand for instruction
651 # CHECK-ERROR: invalid operand for instruction
654 # CHECK-ERROR: invalid operand for instruction
657 # CHECK-ERROR: invalid operand for instruction
660 # CHECK-ERROR: invalid operand for instruction
663 # CHECK-ERROR: invalid operand for instruction
666 # CHECK-ERROR: invalid operand for instruction
669 # CHECK-ERROR: invalid operand for instruction
672 # CHECK-ERROR: invalid operand for instruction
675 # CHECK-ERROR: invalid operand for instruction
678 # CHECK-ERROR: invalid operand for instruction
681 # CHECK-ERROR: invalid operand for instruction
684 # CHECK-ERROR: invalid operand for instruction
687 # CHECK-ERROR: invalid operand for instruction
690 # CHECK-ERROR: invalid operand for instruction
693 # CHECK-ERROR: invalid operand for instruction
696 # CHECK-ERROR: invalid operand for instruction
699 # CHECK-ERROR: invalid operand for instruction
702 # CHECK-ERROR: invalid operand for instruction
705 # CHECK-ERROR: invalid operand for instruction
708 # CHECK-ERROR: invalid operand for instruction
711 # CHECK-ERROR: invalid operand for instruction
714 # CHECK-ERROR: invalid operand for instruction
717 # CHECK-ERROR: invalid operand for instruction
720 # CHECK-ERROR: invalid operand for instruction
723 # CHECK-ERROR: invalid operand for instruction
726 # CHECK-ERROR: invalid operand for instruction
729 # CHECK-ERROR: invalid operand for instruction
732 # CHECK-ERROR: invalid operand for instruction
735 # CHECK-ERROR: invalid operand for instruction
738 # CHECK-ERROR: invalid operand for instruction
741 # CHECK-ERROR: invalid operand for instruction
744 # CHECK-ERROR: invalid operand for instruction
747 # CHECK-ERROR: invalid operand for instruction
750 # CHECK-ERROR: invalid operand for instruction
753 # CHECK-ERROR: invalid operand for instruction
756 # CHECK-ERROR: invalid operand for instruction
758 vmsge.vx v2
, v4
, a0
, v0.
t, v0
759 # CHECK-ERROR: invalid operand for instruction
761 vmsgeu.vx v2
, v4
, a0
, v0.
t, v0
762 # CHECK-ERROR: invalid operand for instruction
764 vmsge.vx v2
, v4
, a0
, v0.
t, v2
765 # CHECK-ERROR: the temporary vector register cannot be the same as the destination register
767 vmsgeu.vx v2
, v4
, a0
, v0.
t, v2
768 # CHECK-ERROR: the temporary vector register cannot be the same as the destination register