xref: /llvm-project/llvm/test/MC/RISCV/rvv/invalid.s (revision b04c07bf271be097a5e5726730c538454fd30992)
1# RUN: not llvm-mc -triple=riscv64 --mattr=+v --mattr=+f %s 2>&1 \
2# RUN:        | FileCheck %s --check-prefix=CHECK-ERROR
3
4vsetivli a2, 32, e8,m1
5# CHECK-ERROR: operand must be e[8|16|32|64],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu]
6
7vsetivli 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]
9
10vsetivli 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]
12
13vsetivli a2, 5, 0x400
14# CHECK-ERROR: operand must be e[8|16|32|64],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu]
15
16vsetivli a2, 5, e31
17# CHECK-ERROR: operand must be e[8|16|32|64],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu]
18
19vsetvli 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]
21
22vsetvli a2, a0, 0x800
23# CHECK-ERROR: operand must be e[8|16|32|64],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu]
24
25
26vsetvli a2, a0, e31
27# CHECK-ERROR: operand must be e[8|16|32|64],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu]
28
29vsetvli 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]
31
32vsetvli 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]
34
35vsetvli 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]
37
38vsetvli 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]
40
41vsetvli 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]
43
44vsetvli 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]
46
47vsetvli 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]
49
50vsetvli 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]
52
53vsetvli a2, a0, e1,m8
54# CHECK-ERROR: operand must be e[8|16|32|64],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu]
55
56vsetvli 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]
58
59vsetvli 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]
61
62vsetvli 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]
64
65vsetvli 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]
67
68vsetvli 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]
70
71vsetvli 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]
73
74vsetvli 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]
76
77vsetvli 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]
79
80vsetvli 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]
82
83vsetvli a2, a0, e8
84# CHECK-ERROR: operand must be e[8|16|32|64],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu]
85
86vsetvli a2, a0, e8,m1
87# CHECK-ERROR: operand must be e[8|16|32|64],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu]
88
89vsetvli 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]
91
92vsetvli 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]
94
95vadd.vv v1, v3, v2, v4.t
96# CHECK-ERROR: operand must be v0.t
97
98vadd.vv v1, v3, v2, v0
99# CHECK-ERROR: expected '.t' suffix
100
101vadd.vv v1, v3, a0
102# CHECK-ERROR: invalid operand for instruction
103
104vmslt.vi v1, v2, -16
105# CHECK-ERROR: immediate must be in the range [-15, 16]
106
107vmslt.vi v1, v2, 17
108# CHECK-ERROR: immediate must be in the range [-15, 16]
109
110viota.m v0, v2, v0.t
111# CHECK-ERROR: the destination vector register group cannot overlap the mask register
112# CHECK-ERROR-LABEL: viota.m v0, v2, v0.t
113
114viota.m v2, v2
115# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
116# CHECK-ERROR-LABEL: viota.m v2, v2
117
118vfwcvt.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
121
122vfwcvt.xu.f.v v2, v2
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
125
126vfwcvt.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
129
130vfwcvt.x.f.v v2, v2
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
133
134vfwcvt.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
137
138vfwcvt.f.xu.v v2, v2
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
141
142vfwcvt.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
145
146vfwcvt.f.x.v v2, v2
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
149
150vfwcvt.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
153
154vfwcvt.f.f.v v2, v2
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
157
158vslideup.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
161
162vslideup.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
165
166vslideup.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
169
170vslideup.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
173
174vslide1up.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
177
178vslide1up.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
181
182vrgather.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
185
186vrgather.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
189
190vrgather.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
193
194vrgather.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
197
198vrgather.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
201
202vrgather.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
205
206vwaddu.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
209
210vwaddu.vv v2, v2, v4
211# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
212# CHECK-ERROR-LABEL: vwaddu.vv v2, v2, v4
213
214vwsubu.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
217
218vwsubu.vv v2, v2, v4
219# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
220# CHECK-ERROR-LABEL: vwsubu.vv v2, v2, v4
221
222vwadd.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
225
226vwadd.vv v2, v2, v4
227# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
228# CHECK-ERROR-LABEL: vwadd.vv v2, v2, v4
229
230vwsub.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
233
234vwsub.vv v2, v2, v4
235# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
236# CHECK-ERROR-LABEL: vwsub.vv v2, v2, v4
237
238vwmul.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
241
242vwmul.vv v2, v2, v4
243# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
244# CHECK-ERROR-LABEL: vwmul.vv v2, v2, v4
245
246vwmulu.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
249
250vwmulu.vv v2, v2, v4
251# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
252# CHECK-ERROR-LABEL: vwmulu.vv v2, v2, v4
253
254vwmulsu.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
257
258vwmulsu.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
261
262vwmaccu.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
265
266vwmaccu.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
269
270vwmacc.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
273
274vwmacc.vv v2, v4, v2
275# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
276# CHECK-ERROR-LABEL: vwmacc.vv v2, v4, v2
277
278vwmaccsu.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
281
282vwmaccsu.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
285
286vfwadd.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
289
290vfwadd.vv v2, v2, v4
291# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
292# CHECK-ERROR-LABEL: vfwadd.vv v2, v2, v4
293
294vfwsub.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
297
298vfwsub.vv v2, v2, v4
299# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
300# CHECK-ERROR-LABEL: vfwsub.vv v2, v2, v4
301
302vfwmul.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
305
306vfwmul.vv v2, v2, v4
307# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
308# CHECK-ERROR-LABEL: vfwmul.vv v2, v2, v4
309
310vfwmacc.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
313
314vfwmacc.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
317
318vfwnmacc.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
321
322vfwnmacc.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
325
326vfwmsac.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
329
330vfwmsac.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
333
334vfwnmsac.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
337
338vfwnmsac.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
341
342vwaddu.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
345
346vwaddu.vx v2, v2, a0
347# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
348# CHECK-ERROR-LABEL: vwaddu.vx v2, v2, a0
349
350vwsubu.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
353
354vwsubu.vx v2, v2, a0
355# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
356# CHECK-ERROR-LABEL: vwsubu.vx v2, v2, a0
357
358vwadd.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
361
362vwadd.vx v2, v2, a0
363# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
364# CHECK-ERROR-LABEL: vwadd.vx v2, v2, a0
365
366vwsub.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
369
370vwsub.vx v2, v2, a0
371# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
372# CHECK-ERROR-LABEL: vwsub.vx v2, v2, a0
373
374vwmul.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
377
378vwmul.vx v2, v2, a0
379# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
380# CHECK-ERROR-LABEL: vwmul.vx v2, v2, a0
381
382vwmulu.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
385
386vwmulu.vx v2, v2, a0
387# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
388# CHECK-ERROR-LABEL: vwmulu.vx v2, v2, a0
389
390vwmulsu.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
393
394vwmulsu.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
397
398vwmaccu.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
401
402vwmaccu.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
405
406vwmacc.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
409
410vwmacc.vx v2, a0, v2
411# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
412# CHECK-ERROR-LABEL: vwmacc.vx v2, a0, v2
413
414vwmaccsu.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
417
418vwmaccsu.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
421
422vwmaccus.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
425
426vwmaccus.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
429
430vfwadd.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
433
434vfwadd.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
437
438vfwsub.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
441
442vfwsub.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
445
446vfwmul.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
449
450vfwmul.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
453
454vfwmacc.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
457
458vfwmacc.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
461
462vfwnmacc.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
465
466vfwnmacc.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
469
470vfwmsac.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
473
474vfwmsac.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
477
478vfwnmsac.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
481
482vfwnmsac.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
485
486vcompress.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
489
490vwaddu.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
493
494vwaddu.wv v2, v4, v2
495# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
496# CHECK-ERROR-LABEL: vwaddu.wv v2, v4, v2
497
498vwsubu.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
501
502vwsubu.wv v2, v4, v2
503# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
504# CHECK-ERROR-LABEL: vwsubu.wv v2, v4, v2
505
506vwadd.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
509
510vwadd.wv v2, v4, v2
511# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
512# CHECK-ERROR-LABEL: vwadd.wv v2, v4, v2
513
514vwsub.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
517
518vwsub.wv v2, v4, v2
519# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
520# CHECK-ERROR-LABEL: vwsub.wv v2, v4, v2
521
522vfwadd.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
525
526vfwadd.wv v2, v4, v2
527# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
528# CHECK-ERROR-LABEL: vfwadd.wv v2, v4, v2
529
530vfwsub.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
533
534vfwsub.wv v2, v4, v2
535# CHECK-ERROR: the destination vector register group cannot overlap the source vector register group
536# CHECK-ERROR-LABEL: vfwsub.wv v2, v4, v2
537
538vwaddu.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
541
542vwsubu.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
545
546vwadd.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
549
550vwsub.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
553
554vfwadd.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
557
558vfwsub.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
561
562vadc.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
565
566vadd.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
569
570vadd.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
573
574vadd.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
577
578vmsge.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
581
582vmerge.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
585
586vmerge.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
589
590vmerge.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
593
594vfmerge.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
597
598vle8.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
601
602vfclass.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
605
606vfsqrt.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
609
610vzext.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
613
614vid.v v0, v0.t
615# CHECK-ERROR: the destination vector register group cannot overlap the mask register
616# CHECK-ERROR-LABEL: vid.v v0, v0.t
617
618vnsrl.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
621
622vfncvt.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
625
626vl2re8.v v1, (a0)
627# CHECK-ERROR: invalid operand for instruction
628
629vl4re8.v v1, (a0)
630# CHECK-ERROR: invalid operand for instruction
631
632vl4re8.v v2, (a0)
633# CHECK-ERROR: invalid operand for instruction
634
635vl4re8.v v3, (a0)
636# CHECK-ERROR: invalid operand for instruction
637
638vl8re8.v v1, (a0)
639# CHECK-ERROR: invalid operand for instruction
640
641vl8re8.v v2, (a0)
642# CHECK-ERROR: invalid operand for instruction
643
644vl8re8.v v3, (a0)
645# CHECK-ERROR: invalid operand for instruction
646
647vl8re8.v v4, (a0)
648# CHECK-ERROR: invalid operand for instruction
649
650vl8re8.v v5, (a0)
651# CHECK-ERROR: invalid operand for instruction
652
653vl8re8.v v6, (a0)
654# CHECK-ERROR: invalid operand for instruction
655
656vl8re8.v v7, (a0)
657# CHECK-ERROR: invalid operand for instruction
658
659vs2r.v v1, (a0)
660# CHECK-ERROR: invalid operand for instruction
661
662vs4r.v v1, (a0)
663# CHECK-ERROR: invalid operand for instruction
664
665vs4r.v v2, (a0)
666# CHECK-ERROR: invalid operand for instruction
667
668vs4r.v v3, (a0)
669# CHECK-ERROR: invalid operand for instruction
670
671vs8r.v v1, (a0)
672# CHECK-ERROR: invalid operand for instruction
673
674vs8r.v v2, (a0)
675# CHECK-ERROR: invalid operand for instruction
676
677vs8r.v v3, (a0)
678# CHECK-ERROR: invalid operand for instruction
679
680vs8r.v v4, (a0)
681# CHECK-ERROR: invalid operand for instruction
682
683vs8r.v v5, (a0)
684# CHECK-ERROR: invalid operand for instruction
685
686vs8r.v v6, (a0)
687# CHECK-ERROR: invalid operand for instruction
688
689vs8r.v v7, (a0)
690# CHECK-ERROR: invalid operand for instruction
691
692vmv2r.v v1, v0
693# CHECK-ERROR: invalid operand for instruction
694
695vmv2r.v v0, v1
696# CHECK-ERROR: invalid operand for instruction
697
698vmv4r.v v1, v0
699# CHECK-ERROR: invalid operand for instruction
700
701vmv4r.v v2, v0
702# CHECK-ERROR: invalid operand for instruction
703
704vmv4r.v v3, v0
705# CHECK-ERROR: invalid operand for instruction
706
707vmv4r.v v0, v1
708# CHECK-ERROR: invalid operand for instruction
709
710vmv4r.v v0, v2
711# CHECK-ERROR: invalid operand for instruction
712
713vmv4r.v v0, v3
714# CHECK-ERROR: invalid operand for instruction
715
716vmv8r.v v1, v0
717# CHECK-ERROR: invalid operand for instruction
718
719vmv8r.v v2, v0
720# CHECK-ERROR: invalid operand for instruction
721
722vmv8r.v v3, v0
723# CHECK-ERROR: invalid operand for instruction
724
725vmv8r.v v4, v0
726# CHECK-ERROR: invalid operand for instruction
727
728vmv8r.v v5, v0
729# CHECK-ERROR: invalid operand for instruction
730
731vmv8r.v v6, v0
732# CHECK-ERROR: invalid operand for instruction
733
734vmv8r.v v7, v0
735# CHECK-ERROR: invalid operand for instruction
736
737vmv8r.v v0, v1
738# CHECK-ERROR: invalid operand for instruction
739
740vmv8r.v v0, v2
741# CHECK-ERROR: invalid operand for instruction
742
743vmv8r.v v0, v3
744# CHECK-ERROR: invalid operand for instruction
745
746vmv8r.v v0, v4
747# CHECK-ERROR: invalid operand for instruction
748
749vmv8r.v v0, v5
750# CHECK-ERROR: invalid operand for instruction
751
752vmv8r.v v0, v6
753# CHECK-ERROR: invalid operand for instruction
754
755vmv8r.v v0, v7
756# CHECK-ERROR: invalid operand for instruction
757
758vmsge.vx v2, v4, a0, v0.t, v0
759# CHECK-ERROR: invalid operand for instruction
760
761vmsgeu.vx v2, v4, a0, v0.t, v0
762# CHECK-ERROR: invalid operand for instruction
763
764vmsge.vx v2, v4, a0, v0.t, v2
765# CHECK-ERROR: the temporary vector register cannot be the same as the destination register
766
767vmsgeu.vx v2, v4, a0, v0.t, v2
768# CHECK-ERROR: the temporary vector register cannot be the same as the destination register
769