[DAGCombiner] Add target hook function to decide folding (mul (add x, c1), c2)
[llvm-project.git] / llvm / test / MC / RISCV / rvv / invalid.s
blob501cbe2854e95914dad35b78912e8afc9d3b003f
1 # RUN: not llvm-mc -triple=riscv64 --mattr=+experimental-v --mattr=+f %s 2>&1 \
2 # RUN: | FileCheck %s --check-prefix=CHECK-ERROR
4 vsetivli a2, 32, e8,m1
5 # CHECK-ERROR: immediate must be an integer in the range [0, 31]
7 vsetivli a2, zero, e8,m1
8 # CHECK-ERROR: immediate must be an integer in the range [0, 31]
10 vsetivli a2, 5, e31
11 # CHECK-ERROR: operand must be e[8|16|32|64|128|256|512|1024],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu]
13 vsetvli a2, a0, e31
14 # CHECK-ERROR: operand must be e[8|16|32|64|128|256|512|1024],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu]
16 vsetvli a2, a0, e32,m3
17 # CHECK-ERROR: operand must be e[8|16|32|64|128|256|512|1024],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu]
19 vsetvli a2, a0, m1,e32
20 # CHECK-ERROR: operand must be e[8|16|32|64|128|256|512|1024],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu]
22 vsetvli a2, a0, e32,m16
23 # CHECK-ERROR: operand must be e[8|16|32|64|128|256|512|1024],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu]
25 vsetvli a2, a0, e2048,m8
26 # CHECK-ERROR: operand must be e[8|16|32|64|128|256|512|1024],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu]
28 vsetvli a2, a0, e1,m8
29 # CHECK-ERROR: operand must be e[8|16|32|64|128|256|512|1024],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu]
31 vsetvli a2, a0, e8,m1,tx
32 # CHECK-ERROR: operand must be e[8|16|32|64|128|256|512|1024],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu]
34 vsetvli a2, a0, e8,m1,ta,mx
35 # CHECK-ERROR: operand must be e[8|16|32|64|128|256|512|1024],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu]
37 vsetvli a2, a0, e8,m1,ma
38 # CHECK-ERROR: operand must be e[8|16|32|64|128|256|512|1024],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu]
40 vsetvli a2, a0, e8,m1,mu
41 # CHECK-ERROR: operand must be e[8|16|32|64|128|256|512|1024],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu]
43 vsetvli a2, a0, e8x,m1,tu,mu
44 # CHECK-ERROR: operand must be e[8|16|32|64|128|256|512|1024],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu]
46 vsetvli a2, a0, e8,m1z,tu,mu
47 # CHECK-ERROR: operand must be e[8|16|32|64|128|256|512|1024],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu]
49 vsetvli a2, a0, e8,mf1,tu,mu
50 # CHECK-ERROR: operand must be e[8|16|32|64|128|256|512|1024],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu]
52 vsetvli a2, a0, e8,m1,tu,mut
53 # CHECK-ERROR: operand must be e[8|16|32|64|128|256|512|1024],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu]
55 vsetvli a2, a0, e8,m1,tut,mu
56 # CHECK-ERROR: operand must be e[8|16|32|64|128|256|512|1024],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu]
58 vsetvli a2, a0, e8
59 # CHECK-ERROR: operand must be e[8|16|32|64|128|256|512|1024],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu]
61 vsetvli a2, a0, e8,m1
62 # CHECK-ERROR: operand must be e[8|16|32|64|128|256|512|1024],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu]
64 vsetvli a2, a0, e8,m1,ta
65 # CHECK-ERROR: operand must be e[8|16|32|64|128|256|512|1024],m[1|2|4|8|f2|f4|f8],[ta|tu],[ma|mu]
67 vadd.vv v1, v3, v2, v4.t
68 # CHECK-ERROR: operand must be v0.t
70 vadd.vv v1, v3, v2, v0
71 # CHECK-ERROR: expected '.t' suffix
73 vadd.vv v1, v3, a0
74 # CHECK-ERROR: invalid operand for instruction
76 vmslt.vi v1, v2, -16
77 # CHECK-ERROR: immediate must be in the range [-15, 16]
79 vmslt.vi v1, v2, 17
80 # CHECK-ERROR: immediate must be in the range [-15, 16]
82 viota.m v0, v2, v0.t
83 # CHECK-ERROR: The destination vector register group cannot overlap the mask register.
84 # CHECK-ERROR-LABEL: viota.m v0, v2, v0.t
86 viota.m v2, v2
87 # CHECK-ERROR: The destination vector register group cannot overlap the source vector register group.
88 # CHECK-ERROR-LABEL: viota.m v2, v2
90 vfwcvt.xu.f.v v0, v2, v0.t
91 # CHECK-ERROR: The destination vector register group cannot overlap the mask register.
92 # CHECK-ERROR-LABEL: vfwcvt.xu.f.v v0, v2, v0.t
94 vfwcvt.xu.f.v v2, v2
95 # CHECK-ERROR: The destination vector register group cannot overlap the source vector register group.
96 # CHECK-ERROR-LABEL: vfwcvt.xu.f.v v2, v2
98 vfwcvt.x.f.v v0, v2, v0.t
99 # CHECK-ERROR: The destination vector register group cannot overlap the mask register.
100 # CHECK-ERROR-LABEL: vfwcvt.x.f.v v0, v2, v0.t
102 vfwcvt.x.f.v v2, v2
103 # CHECK-ERROR: The destination vector register group cannot overlap the source vector register group.
104 # CHECK-ERROR-LABEL: vfwcvt.x.f.v v2, v2
106 vfwcvt.f.xu.v v0, v2, v0.t
107 # CHECK-ERROR: The destination vector register group cannot overlap the mask register.
108 # CHECK-ERROR-LABEL: vfwcvt.f.xu.v v0, v2, v0.t
110 vfwcvt.f.xu.v v2, v2
111 # CHECK-ERROR: The destination vector register group cannot overlap the source vector register group.
112 # CHECK-ERROR-LABEL: vfwcvt.f.xu.v v2, v2
114 vfwcvt.f.x.v v0, v2, v0.t
115 # CHECK-ERROR: The destination vector register group cannot overlap the mask register.
116 # CHECK-ERROR-LABEL: vfwcvt.f.x.v v0, v2, v0.t
118 vfwcvt.f.x.v v2, v2
119 # CHECK-ERROR: The destination vector register group cannot overlap the source vector register group.
120 # CHECK-ERROR-LABEL: vfwcvt.f.x.v v2, v2
122 vfwcvt.f.f.v v0, v2, v0.t
123 # CHECK-ERROR: The destination vector register group cannot overlap the mask register.
124 # CHECK-ERROR-LABEL: vfwcvt.f.f.v v0, v2, v0.t
126 vfwcvt.f.f.v v2, v2
127 # CHECK-ERROR: The destination vector register group cannot overlap the source vector register group.
128 # CHECK-ERROR-LABEL: vfwcvt.f.f.v v2, v2
130 vslideup.vx v0, v2, a0, v0.t
131 # CHECK-ERROR: The destination vector register group cannot overlap the mask register.
132 # CHECK-ERROR-LABEL: vslideup.vx v0, v2, a0, v0.t
134 vslideup.vx v2, v2, a0
135 # CHECK-ERROR: The destination vector register group cannot overlap the source vector register group.
136 # CHECK-ERROR-LABEL: vslideup.vx v2, v2, a0
138 vslideup.vi v0, v2, 31, v0.t
139 # CHECK-ERROR: The destination vector register group cannot overlap the mask register.
140 # CHECK-ERROR-LABEL: vslideup.vi v0, v2, 31, v0.t
142 vslideup.vi v2, v2, 31
143 # CHECK-ERROR: The destination vector register group cannot overlap the source vector register group.
144 # CHECK-ERROR-LABEL: vslideup.vi v2, v2, 31
146 vslide1up.vx v0, v2, a0, v0.t
147 # CHECK-ERROR: The destination vector register group cannot overlap the mask register.
148 # CHECK-ERROR-LABEL: vslide1up.vx v0, v2, a0, v0.t
150 vslide1up.vx v2, v2, a0
151 # CHECK-ERROR: The destination vector register group cannot overlap the source vector register group.
152 # CHECK-ERROR-LABEL: vslide1up.vx v2, v2, a0
154 vrgather.vv v0, v2, v4, v0.t
155 # CHECK-ERROR: The destination vector register group cannot overlap the mask register.
156 # CHECK-ERROR-LABEL: vrgather.vv v0, v2, v4, v0.t
158 vrgather.vv v2, v2, v4
159 # CHECK-ERROR: The destination vector register group cannot overlap the source vector register group.
160 # CHECK-ERROR-LABEL: vrgather.vv v2, v2, v4
162 vrgather.vx v0, v2, a0, v0.t
163 # CHECK-ERROR: The destination vector register group cannot overlap the mask register.
164 # CHECK-ERROR-LABEL: vrgather.vx v0, v2, a0, v0.t
166 vrgather.vx v2, v2, a0
167 # CHECK-ERROR: The destination vector register group cannot overlap the source vector register group.
168 # CHECK-ERROR-LABEL: vrgather.vx v2, v2, a0
170 vrgather.vi v0, v2, 31, v0.t
171 # CHECK-ERROR: The destination vector register group cannot overlap the mask register.
172 # CHECK-ERROR-LABEL: vrgather.vi v0, v2, 31, v0.t
174 vrgather.vi v2, v2, 31
175 # CHECK-ERROR: The destination vector register group cannot overlap the source vector register group.
176 # CHECK-ERROR-LABEL: vrgather.vi v2, v2, 31
178 vwaddu.vv v0, v2, v4, v0.t
179 # CHECK-ERROR: The destination vector register group cannot overlap the mask register.
180 # CHECK-ERROR-LABEL: vwaddu.vv v0, v2, v4, v0.t
182 vwaddu.vv v2, v2, v4
183 # CHECK-ERROR: The destination vector register group cannot overlap the source vector register group.
184 # CHECK-ERROR-LABEL: vwaddu.vv v2, v2, v4
186 vwsubu.vv v0, v2, v4, v0.t
187 # CHECK-ERROR: The destination vector register group cannot overlap the mask register.
188 # CHECK-ERROR-LABEL: vwsubu.vv v0, v2, v4, v0.t
190 vwsubu.vv v2, v2, v4
191 # CHECK-ERROR: The destination vector register group cannot overlap the source vector register group.
192 # CHECK-ERROR-LABEL: vwsubu.vv v2, v2, v4
194 vwadd.vv v0, v2, v4, v0.t
195 # CHECK-ERROR: The destination vector register group cannot overlap the mask register.
196 # CHECK-ERROR-LABEL: vwadd.vv v0, v2, v4, v0.t
198 vwadd.vv v2, v2, v4
199 # CHECK-ERROR: The destination vector register group cannot overlap the source vector register group.
200 # CHECK-ERROR-LABEL: vwadd.vv v2, v2, v4
202 vwsub.vv v0, v2, v4, v0.t
203 # CHECK-ERROR: The destination vector register group cannot overlap the mask register.
204 # CHECK-ERROR-LABEL: vwsub.vv v0, v2, v4, v0.t
206 vwsub.vv v2, v2, v4
207 # CHECK-ERROR: The destination vector register group cannot overlap the source vector register group.
208 # CHECK-ERROR-LABEL: vwsub.vv v2, v2, v4
210 vwmul.vv v0, v2, v4, v0.t
211 # CHECK-ERROR: The destination vector register group cannot overlap the mask register.
212 # CHECK-ERROR-LABEL: vwmul.vv v0, v2, v4, v0.t
214 vwmul.vv v2, v2, v4
215 # CHECK-ERROR: The destination vector register group cannot overlap the source vector register group.
216 # CHECK-ERROR-LABEL: vwmul.vv v2, v2, v4
218 vwmulu.vv v0, v2, v4, v0.t
219 # CHECK-ERROR: The destination vector register group cannot overlap the mask register.
220 # CHECK-ERROR-LABEL: vwmulu.vv v0, v2, v4, v0.t
222 vwmulu.vv v2, v2, v4
223 # CHECK-ERROR: The destination vector register group cannot overlap the source vector register group.
224 # CHECK-ERROR-LABEL: vwmulu.vv v2, v2, v4
226 vwmulsu.vv v0, v2, v4, v0.t
227 # CHECK-ERROR: The destination vector register group cannot overlap the mask register.
228 # CHECK-ERROR-LABEL: vwmulsu.vv v0, v2, v4, v0.t
230 vwmulsu.vv v2, v2, v4
231 # CHECK-ERROR: The destination vector register group cannot overlap the source vector register group.
232 # CHECK-ERROR-LABEL: vwmulsu.vv v2, v2, v4
234 vwmaccu.vv v0, v4, v2, v0.t
235 # CHECK-ERROR: The destination vector register group cannot overlap the mask register.
236 # CHECK-ERROR-LABEL: vwmaccu.vv v0, v4, v2, v0.t
238 vwmaccu.vv v2, v4, v2
239 # CHECK-ERROR: The destination vector register group cannot overlap the source vector register group.
240 # CHECK-ERROR-LABEL: vwmaccu.vv v2, v4, v2
242 vwmacc.vv v0, v4, v2, v0.t
243 # CHECK-ERROR: The destination vector register group cannot overlap the mask register.
244 # CHECK-ERROR-LABEL: vwmacc.vv v0, v4, v2, v0.t
246 vwmacc.vv v2, v4, v2
247 # CHECK-ERROR: The destination vector register group cannot overlap the source vector register group.
248 # CHECK-ERROR-LABEL: vwmacc.vv v2, v4, v2
250 vwmaccsu.vv v0, v4, v2, v0.t
251 # CHECK-ERROR: The destination vector register group cannot overlap the mask register.
252 # CHECK-ERROR-LABEL: vwmaccsu.vv v0, v4, v2, v0.t
254 vwmaccsu.vv v2, v4, v2
255 # CHECK-ERROR: The destination vector register group cannot overlap the source vector register group.
256 # CHECK-ERROR-LABEL: vwmaccsu.vv v2, v4, v2
258 vfwadd.vv v0, v2, v4, v0.t
259 # CHECK-ERROR: The destination vector register group cannot overlap the mask register.
260 # CHECK-ERROR-LABEL: vfwadd.vv v0, v2, v4, v0.t
262 vfwadd.vv v2, v2, v4
263 # CHECK-ERROR: The destination vector register group cannot overlap the source vector register group.
264 # CHECK-ERROR-LABEL: vfwadd.vv v2, v2, v4
266 vfwsub.vv v0, v2, v4, v0.t
267 # CHECK-ERROR: The destination vector register group cannot overlap the mask register.
268 # CHECK-ERROR-LABEL: vfwsub.vv v0, v2, v4, v0.t
270 vfwsub.vv v2, v2, v4
271 # CHECK-ERROR: The destination vector register group cannot overlap the source vector register group.
272 # CHECK-ERROR-LABEL: vfwsub.vv v2, v2, v4
274 vfwmul.vv v0, v2, v4, v0.t
275 # CHECK-ERROR: The destination vector register group cannot overlap the mask register.
276 # CHECK-ERROR-LABEL: vfwmul.vv v0, v2, v4, v0.t
278 vfwmul.vv v2, v2, v4
279 # CHECK-ERROR: The destination vector register group cannot overlap the source vector register group.
280 # CHECK-ERROR-LABEL: vfwmul.vv v2, v2, v4
282 vfwmacc.vv v0, v4, v2, v0.t
283 # CHECK-ERROR: The destination vector register group cannot overlap the mask register.
284 # CHECK-ERROR-LABEL: vfwmacc.vv v0, v4, v2, v0.t
286 vfwmacc.vv v2, v4, v2
287 # CHECK-ERROR: The destination vector register group cannot overlap the source vector register group.
288 # CHECK-ERROR-LABEL: vfwmacc.vv v2, v4, v2
290 vfwnmacc.vv v0, v4, v2, v0.t
291 # CHECK-ERROR: The destination vector register group cannot overlap the mask register.
292 # CHECK-ERROR-LABEL: vfwnmacc.vv v0, v4, v2, v0.t
294 vfwnmacc.vv v2, v4, v2
295 # CHECK-ERROR: The destination vector register group cannot overlap the source vector register group.
296 # CHECK-ERROR-LABEL: vfwnmacc.vv v2, v4, v2
298 vfwmsac.vv v0, v4, v2, v0.t
299 # CHECK-ERROR: The destination vector register group cannot overlap the mask register.
300 # CHECK-ERROR-LABEL: vfwmsac.vv v0, v4, v2, v0.t
302 vfwmsac.vv v2, v4, v2
303 # CHECK-ERROR: The destination vector register group cannot overlap the source vector register group.
304 # CHECK-ERROR-LABEL: vfwmsac.vv v2, v4, v2
306 vfwnmsac.vv v0, v4, v2, v0.t
307 # CHECK-ERROR: The destination vector register group cannot overlap the mask register.
308 # CHECK-ERROR-LABEL: vfwnmsac.vv v0, v4, v2, v0.t
310 vfwnmsac.vv v2, v4, v2
311 # CHECK-ERROR: The destination vector register group cannot overlap the source vector register group.
312 # CHECK-ERROR-LABEL: vfwnmsac.vv v2, v4, v2
314 vwaddu.vx v0, v2, a0, v0.t
315 # CHECK-ERROR: The destination vector register group cannot overlap the mask register.
316 # CHECK-ERROR-LABEL: vwaddu.vx v0, v2, a0, v0.t
318 vwaddu.vx v2, v2, a0
319 # CHECK-ERROR: The destination vector register group cannot overlap the source vector register group.
320 # CHECK-ERROR-LABEL: vwaddu.vx v2, v2, a0
322 vwsubu.vx v0, v2, a0, v0.t
323 # CHECK-ERROR: The destination vector register group cannot overlap the mask register.
324 # CHECK-ERROR-LABEL: vwsubu.vx v0, v2, a0, v0.t
326 vwsubu.vx v2, v2, a0
327 # CHECK-ERROR: The destination vector register group cannot overlap the source vector register group.
328 # CHECK-ERROR-LABEL: vwsubu.vx v2, v2, a0
330 vwadd.vx v0, v2, a0, v0.t
331 # CHECK-ERROR: The destination vector register group cannot overlap the mask register.
332 # CHECK-ERROR-LABEL: vwadd.vx v0, v2, a0, v0.t
334 vwadd.vx v2, v2, a0
335 # CHECK-ERROR: The destination vector register group cannot overlap the source vector register group.
336 # CHECK-ERROR-LABEL: vwadd.vx v2, v2, a0
338 vwsub.vx v0, v2, a0, v0.t
339 # CHECK-ERROR: The destination vector register group cannot overlap the mask register.
340 # CHECK-ERROR-LABEL: vwsub.vx v0, v2, a0, v0.t
342 vwsub.vx v2, v2, a0
343 # CHECK-ERROR: The destination vector register group cannot overlap the source vector register group.
344 # CHECK-ERROR-LABEL: vwsub.vx v2, v2, a0
346 vwmul.vx v0, v2, a0, v0.t
347 # CHECK-ERROR: The destination vector register group cannot overlap the mask register.
348 # CHECK-ERROR-LABEL: vwmul.vx v0, v2, a0, v0.t
350 vwmul.vx v2, v2, a0
351 # CHECK-ERROR: The destination vector register group cannot overlap the source vector register group.
352 # CHECK-ERROR-LABEL: vwmul.vx v2, v2, a0
354 vwmulu.vx v0, v2, a0, v0.t
355 # CHECK-ERROR: The destination vector register group cannot overlap the mask register.
356 # CHECK-ERROR-LABEL: vwmulu.vx v0, v2, a0, v0.t
358 vwmulu.vx v2, v2, a0
359 # CHECK-ERROR: The destination vector register group cannot overlap the source vector register group.
360 # CHECK-ERROR-LABEL: vwmulu.vx v2, v2, a0
362 vwmulsu.vx v0, v2, a0, v0.t
363 # CHECK-ERROR: The destination vector register group cannot overlap the mask register.
364 # CHECK-ERROR-LABEL: vwmulsu.vx v0, v2, a0, v0.t
366 vwmulsu.vx v2, v2, a0
367 # CHECK-ERROR: The destination vector register group cannot overlap the source vector register group.
368 # CHECK-ERROR-LABEL: vwmulsu.vx v2, v2, a0
370 vwmaccu.vx v0, a0, v2, v0.t
371 # CHECK-ERROR: The destination vector register group cannot overlap the mask register.
372 # CHECK-ERROR-LABEL: vwmaccu.vx v0, a0, v2, v0.t
374 vwmaccu.vx v2, a0, v2
375 # CHECK-ERROR: The destination vector register group cannot overlap the source vector register group.
376 # CHECK-ERROR-LABEL: vwmaccu.vx v2, a0, v2
378 vwmacc.vx v0, a0, v2, v0.t
379 # CHECK-ERROR: The destination vector register group cannot overlap the mask register.
380 # CHECK-ERROR-LABEL: vwmacc.vx v0, a0, v2, v0.t
382 vwmacc.vx v2, a0, v2
383 # CHECK-ERROR: The destination vector register group cannot overlap the source vector register group.
384 # CHECK-ERROR-LABEL: vwmacc.vx v2, a0, v2
386 vwmaccsu.vx v0, a0, v2, v0.t
387 # CHECK-ERROR: The destination vector register group cannot overlap the mask register.
388 # CHECK-ERROR-LABEL: vwmaccsu.vx v0, a0, v2, v0.t
390 vwmaccsu.vx v2, a0, v2
391 # CHECK-ERROR: The destination vector register group cannot overlap the source vector register group.
392 # CHECK-ERROR-LABEL: vwmaccsu.vx v2, a0, v2
394 vwmaccus.vx v0, a0, v2, v0.t
395 # CHECK-ERROR: The destination vector register group cannot overlap the mask register.
396 # CHECK-ERROR-LABEL: vwmaccus.vx v0, a0, v2, v0.t
398 vwmaccus.vx v2, a0, v2
399 # CHECK-ERROR: The destination vector register group cannot overlap the source vector register group.
400 # CHECK-ERROR-LABEL: vwmaccus.vx v2, a0, v2
402 vfwadd.vf v0, v2, fa0, v0.t
403 # CHECK-ERROR: The destination vector register group cannot overlap the mask register.
404 # CHECK-ERROR-LABEL: vfwadd.vf v0, v2, fa0, v0.t
406 vfwadd.vf v2, v2, fa0
407 # CHECK-ERROR: The destination vector register group cannot overlap the source vector register group.
408 # CHECK-ERROR-LABEL: vfwadd.vf v2, v2, fa0
410 vfwsub.vf v0, v2, fa0, v0.t
411 # CHECK-ERROR: The destination vector register group cannot overlap the mask register.
412 # CHECK-ERROR-LABEL: vfwsub.vf v0, v2, fa0, v0.t
414 vfwsub.vf v2, v2, fa0
415 # CHECK-ERROR: The destination vector register group cannot overlap the source vector register group.
416 # CHECK-ERROR-LABEL: vfwsub.vf v2, v2, fa0
418 vfwmul.vf v0, v2, fa0, v0.t
419 # CHECK-ERROR: The destination vector register group cannot overlap the mask register.
420 # CHECK-ERROR-LABEL: vfwmul.vf v0, v2, fa0, v0.t
422 vfwmul.vf v2, v2, fa0
423 # CHECK-ERROR: The destination vector register group cannot overlap the source vector register group.
424 # CHECK-ERROR-LABEL: vfwmul.vf v2, v2, fa0
426 vfwmacc.vf v0, fa0, v2, v0.t
427 # CHECK-ERROR: The destination vector register group cannot overlap the mask register.
428 # CHECK-ERROR-LABEL: vfwmacc.vf v0, fa0, v2, v0.t
430 vfwmacc.vf v2, fa0, v2
431 # CHECK-ERROR: The destination vector register group cannot overlap the source vector register group.
432 # CHECK-ERROR-LABEL: vfwmacc.vf v2, fa0, v2
434 vfwnmacc.vf v0, fa0, v2, v0.t
435 # CHECK-ERROR: The destination vector register group cannot overlap the mask register.
436 # CHECK-ERROR-LABEL: vfwnmacc.vf v0, fa0, v2, v0.t
438 vfwnmacc.vf v2, fa0, v2
439 # CHECK-ERROR: The destination vector register group cannot overlap the source vector register group.
440 # CHECK-ERROR-LABEL: vfwnmacc.vf v2, fa0, v2
442 vfwmsac.vf v0, fa0, v2, v0.t
443 # CHECK-ERROR: The destination vector register group cannot overlap the mask register.
444 # CHECK-ERROR-LABEL: vfwmsac.vf v0, fa0, v2, v0.t
446 vfwmsac.vf v2, fa0, v2
447 # CHECK-ERROR: The destination vector register group cannot overlap the source vector register group.
448 # CHECK-ERROR-LABEL: vfwmsac.vf v2, fa0, v2
450 vfwnmsac.vf v0, fa0, v2, v0.t
451 # CHECK-ERROR: The destination vector register group cannot overlap the mask register.
452 # CHECK-ERROR-LABEL: vfwnmsac.vf v0, fa0, v2, v0.t
454 vfwnmsac.vf v2, fa0, v2
455 # CHECK-ERROR: The destination vector register group cannot overlap the source vector register group.
456 # CHECK-ERROR-LABEL: vfwnmsac.vf v2, fa0, v2
458 vcompress.vm v2, v2, v4
459 # CHECK-ERROR: The destination vector register group cannot overlap the source vector register group.
460 # CHECK-ERROR-LABEL: vcompress.vm v2, v2, v4
462 vwaddu.wv v0, v2, v4, v0.t
463 # CHECK-ERROR: The destination vector register group cannot overlap the mask register.
464 # CHECK-ERROR-LABEL: vwaddu.wv v0, v2, v4, v0.t
466 vwaddu.wv v2, v4, v2
467 # CHECK-ERROR: The destination vector register group cannot overlap the source vector register group.
468 # CHECK-ERROR-LABEL: vwaddu.wv v2, v4, v2
470 vwsubu.wv v0, v2, v4, v0.t
471 # CHECK-ERROR: The destination vector register group cannot overlap the mask register.
472 # CHECK-ERROR-LABEL: vwsubu.wv v0, v2, v4, v0.t
474 vwsubu.wv v2, v4, v2
475 # CHECK-ERROR: The destination vector register group cannot overlap the source vector register group.
476 # CHECK-ERROR-LABEL: vwsubu.wv v2, v4, v2
478 vwadd.wv v0, v2, v4, v0.t
479 # CHECK-ERROR: The destination vector register group cannot overlap the mask register.
480 # CHECK-ERROR-LABEL: vwadd.wv v0, v2, v4, v0.t
482 vwadd.wv v2, v4, v2
483 # CHECK-ERROR: The destination vector register group cannot overlap the source vector register group.
484 # CHECK-ERROR-LABEL: vwadd.wv v2, v4, v2
486 vwsub.wv v0, v2, v4, v0.t
487 # CHECK-ERROR: The destination vector register group cannot overlap the mask register.
488 # CHECK-ERROR-LABEL: vwsub.wv v0, v2, v4, v0.t
490 vwsub.wv v2, v4, v2
491 # CHECK-ERROR: The destination vector register group cannot overlap the source vector register group.
492 # CHECK-ERROR-LABEL: vwsub.wv v2, v4, v2
494 vfwadd.wv v0, v2, v4, v0.t
495 # CHECK-ERROR: The destination vector register group cannot overlap the mask register.
496 # CHECK-ERROR-LABEL: vfwadd.wv v0, v2, v4, v0.t
498 vfwadd.wv v2, v4, v2
499 # CHECK-ERROR: The destination vector register group cannot overlap the source vector register group.
500 # CHECK-ERROR-LABEL: vfwadd.wv v2, v4, v2
502 vfwsub.wv v0, v2, v4, v0.t
503 # CHECK-ERROR: The destination vector register group cannot overlap the mask register.
504 # CHECK-ERROR-LABEL: vfwsub.wv v0, v2, v4, v0.t
506 vfwsub.wv v2, v4, v2
507 # CHECK-ERROR: The destination vector register group cannot overlap the source vector register group.
508 # CHECK-ERROR-LABEL: vfwsub.wv v2, v4, v2
510 vwaddu.wx v0, v2, a0, v0.t
511 # CHECK-ERROR: The destination vector register group cannot overlap the mask register.
512 # CHECK-ERROR-LABEL: vwaddu.wx v0, v2, a0, v0.t
514 vwsubu.wx v0, v2, a0, v0.t
515 # CHECK-ERROR: The destination vector register group cannot overlap the mask register.
516 # CHECK-ERROR-LABEL: vwsubu.wx v0, v2, a0, v0.t
518 vwadd.wx v0, v2, a0, v0.t
519 # CHECK-ERROR: The destination vector register group cannot overlap the mask register.
520 # CHECK-ERROR-LABEL: vwadd.wx v0, v2, a0, v0.t
522 vwsub.wx v0, v2, a0, v0.t
523 # CHECK-ERROR: The destination vector register group cannot overlap the mask register.
524 # CHECK-ERROR-LABEL: vwsub.wx v0, v2, a0, v0.t
526 vfwadd.wf v0, v2, fa0, v0.t
527 # CHECK-ERROR: The destination vector register group cannot overlap the mask register.
528 # CHECK-ERROR-LABEL: vfwadd.wf v0, v2, fa0, v0.t
530 vfwsub.wf v0, v2, fa0, v0.t
531 # CHECK-ERROR: The destination vector register group cannot overlap the mask register.
532 # CHECK-ERROR-LABEL: vfwsub.wf v0, v2, fa0, v0.t
534 vadc.vvm v0, v2, v4, v0
535 # CHECK-ERROR: The destination vector register group cannot be V0.
536 # CHECK-ERROR-LABEL: vadc.vvm v0, v2, v4, v0
538 vadd.vv v0, v2, v4, v0.t
539 # CHECK-ERROR: The destination vector register group cannot overlap the mask register.
540 # CHECK-ERROR-LABEL: vadd.vv v0, v2, v4, v0.t
542 vadd.vx v0, v2, a0, v0.t
543 # CHECK-ERROR: The destination vector register group cannot overlap the mask register.
544 # CHECK-ERROR-LABEL: vadd.vx v0, v2, a0, v0.t
546 vadd.vi v0, v2, 1, v0.t
547 # CHECK-ERROR: The destination vector register group cannot overlap the mask register.
548 # CHECK-ERROR-LABEL: vadd.vi v0, v2, 1, v0.t
550 vmsge.vx v0, v4, a0, v0.t
551 # CHECK-ERROR: too few operands for instruction
552 # CHECK-ERROR-LABEL: vmsge.vx v0, v4, a0, v0.t
554 vmerge.vim v0, v1, 1, v0
555 # CHECK-ERROR: The destination vector register group cannot be V0.
556 # CHECK-ERROR-LABEL: vmerge.vim v0, v1, 1, v0
558 vmerge.vvm v0, v1, v2, v0
559 # CHECK-ERROR: The destination vector register group cannot be V0.
560 # CHECK-ERROR-LABEL: vmerge.vvm v0, v1, v2, v0
562 vmerge.vxm v0, v1, x1, v0
563 # CHECK-ERROR: The destination vector register group cannot be V0.
564 # CHECK-ERROR-LABEL: vmerge.vxm v0, v1, x1, v0
566 vfmerge.vfm v0, v1, f1, v0
567 # CHECK-ERROR: The destination vector register group cannot be V0.
568 # CHECK-ERROR-LABEL: vfmerge.vfm v0, v1, f1, v0
570 vle8.v v0, (a0), v0.t
571 # CHECK-ERROR: The destination vector register group cannot overlap the mask register.
572 # CHECK-ERROR-LABEL: vle8.v v0, (a0), v0.t
574 vfclass.v v0, v1, v0.t
575 # CHECK-ERROR: The destination vector register group cannot overlap the mask register.
576 # CHECK-ERROR-LABEL: vfclass.v v0, v1, v0.t
578 vfsqrt.v v0, v1, v0.t
579 # CHECK-ERROR: The destination vector register group cannot overlap the mask register.
580 # CHECK-ERROR-LABEL: vfsqrt.v v0, v1, v0.t
582 vzext.vf2 v0, v1, v0.t
583 # CHECK-ERROR: The destination vector register group cannot overlap the mask register.
584 # CHECK-ERROR-LABEL: vzext.vf2 v0, v1, v0.t
586 vid.v v0, v0.t
587 # CHECK-ERROR: The destination vector register group cannot overlap the mask register.
588 # CHECK-ERROR-LABEL: vid.v v0, v0.t
590 vnsrl.wv v0, v4, v20, v0.t
591 # CHECK-ERROR: The destination vector register group cannot overlap the mask register.
592 # CHECK-ERROR-LABEL: vnsrl.wv v0, v4, v20, v0.t
594 vfncvt.xu.f.w v0, v4, v0.t
595 # CHECK-ERROR: The destination vector register group cannot overlap the mask register.
596 # CHECK-ERROR-LABEL: vfncvt.xu.f.w v0, v4, v0.t
598 vl2re8.v v1, (a0)
599 # CHECK-ERROR: invalid operand for instruction
601 vl4re8.v v1, (a0)
602 # CHECK-ERROR: invalid operand for instruction
604 vl4re8.v v2, (a0)
605 # CHECK-ERROR: invalid operand for instruction
607 vl4re8.v v3, (a0)
608 # CHECK-ERROR: invalid operand for instruction
610 vl8re8.v v1, (a0)
611 # CHECK-ERROR: invalid operand for instruction
613 vl8re8.v v2, (a0)
614 # CHECK-ERROR: invalid operand for instruction
616 vl8re8.v v3, (a0)
617 # CHECK-ERROR: invalid operand for instruction
619 vl8re8.v v4, (a0)
620 # CHECK-ERROR: invalid operand for instruction
622 vl8re8.v v5, (a0)
623 # CHECK-ERROR: invalid operand for instruction
625 vl8re8.v v6, (a0)
626 # CHECK-ERROR: invalid operand for instruction
628 vl8re8.v v7, (a0)
629 # CHECK-ERROR: invalid operand for instruction
631 vs2r.v v1, (a0)
632 # CHECK-ERROR: invalid operand for instruction
634 vs4r.v v1, (a0)
635 # CHECK-ERROR: invalid operand for instruction
637 vs4r.v v2, (a0)
638 # CHECK-ERROR: invalid operand for instruction
640 vs4r.v v3, (a0)
641 # CHECK-ERROR: invalid operand for instruction
643 vs8r.v v1, (a0)
644 # CHECK-ERROR: invalid operand for instruction
646 vs8r.v v2, (a0)
647 # CHECK-ERROR: invalid operand for instruction
649 vs8r.v v3, (a0)
650 # CHECK-ERROR: invalid operand for instruction
652 vs8r.v v4, (a0)
653 # CHECK-ERROR: invalid operand for instruction
655 vs8r.v v5, (a0)
656 # CHECK-ERROR: invalid operand for instruction
658 vs8r.v v6, (a0)
659 # CHECK-ERROR: invalid operand for instruction
661 vs8r.v v7, (a0)
662 # CHECK-ERROR: invalid operand for instruction
664 vmsge.vx v2, v4, a0, v0.t, v0
665 # CHECK-ERROR: invalid operand for instruction
667 vmsgeu.vx v2, v4, a0, v0.t, v0
668 # CHECK-ERROR: invalid operand for instruction
670 vmsge.vx v2, v4, a0, v0.t, v2
671 # CHECK-ERROR: The temporary vector register cannot be the same as the destination register.
673 vmsgeu.vx v2, v4, a0, v0.t, v2
674 # CHECK-ERROR: The temporary vector register cannot be the same as the destination register.