[libc++][NFC] Add missing includes in tzdb.cpp
[llvm-project.git] / llvm / test / MC / RISCV / rvv / invalid.s
blob07e7b9db6606c590786c379350a9d871ab33e7fb
1 # RUN: not llvm-mc -triple=riscv64 --mattr=+v --mattr=+f %s 2>&1 \
2 # RUN: | FileCheck %s --check-prefix=CHECK-ERROR
4 vsetivli 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]
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]
13 vsetivli 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]
16 vsetivli 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]
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]
22 vsetvli 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]
26 vsetvli 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]
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]
53 vsetvli 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]
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]
83 vsetvli 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]
86 vsetvli 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]
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
101 vadd.vv v1, v3, a0
102 # CHECK-ERROR: invalid operand for instruction
104 vmslt.vi v1, v2, -16
105 # CHECK-ERROR: immediate must be in the range [-15, 16]
107 vmslt.vi v1, v2, 17
108 # CHECK-ERROR: immediate must be in the range [-15, 16]
110 viota.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
114 viota.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
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
122 vfwcvt.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
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
130 vfwcvt.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
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
138 vfwcvt.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
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
146 vfwcvt.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
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
154 vfwcvt.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
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
210 vwaddu.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
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
218 vwsubu.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
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
226 vwadd.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
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
234 vwsub.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
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
242 vwmul.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
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
250 vwmulu.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
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
274 vwmacc.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
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
290 vfwadd.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
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
298 vfwsub.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
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
306 vfwmul.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
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
346 vwaddu.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
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
354 vwsubu.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
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
362 vwadd.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
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
370 vwsub.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
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
378 vwmul.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
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
386 vwmulu.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
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
410 vwmacc.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
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
494 vwaddu.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
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
502 vwsubu.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
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
510 vwadd.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
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
518 vwsub.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
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
526 vfwadd.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
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
534 vfwsub.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
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
614 vid.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
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
626 vl2re8.v v1, (a0)
627 # CHECK-ERROR: invalid operand for instruction
629 vl4re8.v v1, (a0)
630 # CHECK-ERROR: invalid operand for instruction
632 vl4re8.v v2, (a0)
633 # CHECK-ERROR: invalid operand for instruction
635 vl4re8.v v3, (a0)
636 # CHECK-ERROR: invalid operand for instruction
638 vl8re8.v v1, (a0)
639 # CHECK-ERROR: invalid operand for instruction
641 vl8re8.v v2, (a0)
642 # CHECK-ERROR: invalid operand for instruction
644 vl8re8.v v3, (a0)
645 # CHECK-ERROR: invalid operand for instruction
647 vl8re8.v v4, (a0)
648 # CHECK-ERROR: invalid operand for instruction
650 vl8re8.v v5, (a0)
651 # CHECK-ERROR: invalid operand for instruction
653 vl8re8.v v6, (a0)
654 # CHECK-ERROR: invalid operand for instruction
656 vl8re8.v v7, (a0)
657 # CHECK-ERROR: invalid operand for instruction
659 vs2r.v v1, (a0)
660 # CHECK-ERROR: invalid operand for instruction
662 vs4r.v v1, (a0)
663 # CHECK-ERROR: invalid operand for instruction
665 vs4r.v v2, (a0)
666 # CHECK-ERROR: invalid operand for instruction
668 vs4r.v v3, (a0)
669 # CHECK-ERROR: invalid operand for instruction
671 vs8r.v v1, (a0)
672 # CHECK-ERROR: invalid operand for instruction
674 vs8r.v v2, (a0)
675 # CHECK-ERROR: invalid operand for instruction
677 vs8r.v v3, (a0)
678 # CHECK-ERROR: invalid operand for instruction
680 vs8r.v v4, (a0)
681 # CHECK-ERROR: invalid operand for instruction
683 vs8r.v v5, (a0)
684 # CHECK-ERROR: invalid operand for instruction
686 vs8r.v v6, (a0)
687 # CHECK-ERROR: invalid operand for instruction
689 vs8r.v v7, (a0)
690 # CHECK-ERROR: invalid operand for instruction
692 vmv2r.v v1, v0
693 # CHECK-ERROR: invalid operand for instruction
695 vmv2r.v v0, v1
696 # CHECK-ERROR: invalid operand for instruction
698 vmv4r.v v1, v0
699 # CHECK-ERROR: invalid operand for instruction
701 vmv4r.v v2, v0
702 # CHECK-ERROR: invalid operand for instruction
704 vmv4r.v v3, v0
705 # CHECK-ERROR: invalid operand for instruction
707 vmv4r.v v0, v1
708 # CHECK-ERROR: invalid operand for instruction
710 vmv4r.v v0, v2
711 # CHECK-ERROR: invalid operand for instruction
713 vmv4r.v v0, v3
714 # CHECK-ERROR: invalid operand for instruction
716 vmv8r.v v1, v0
717 # CHECK-ERROR: invalid operand for instruction
719 vmv8r.v v2, v0
720 # CHECK-ERROR: invalid operand for instruction
722 vmv8r.v v3, v0
723 # CHECK-ERROR: invalid operand for instruction
725 vmv8r.v v4, v0
726 # CHECK-ERROR: invalid operand for instruction
728 vmv8r.v v5, v0
729 # CHECK-ERROR: invalid operand for instruction
731 vmv8r.v v6, v0
732 # CHECK-ERROR: invalid operand for instruction
734 vmv8r.v v7, v0
735 # CHECK-ERROR: invalid operand for instruction
737 vmv8r.v v0, v1
738 # CHECK-ERROR: invalid operand for instruction
740 vmv8r.v v0, v2
741 # CHECK-ERROR: invalid operand for instruction
743 vmv8r.v v0, v3
744 # CHECK-ERROR: invalid operand for instruction
746 vmv8r.v v0, v4
747 # CHECK-ERROR: invalid operand for instruction
749 vmv8r.v v0, v5
750 # CHECK-ERROR: invalid operand for instruction
752 vmv8r.v v0, v6
753 # CHECK-ERROR: invalid operand for instruction
755 vmv8r.v v0, v7
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