xref: /llvm-project/llvm/test/MC/LoongArch/lsx/invalid-imm.s (revision 2f4b6695836e16ec075061cd2508444bd403ad7d)
1## Test out of range immediates which are used by lsx instructions.
2
3# RUN: not llvm-mc --triple=loongarch64 %s 2>&1 | FileCheck %s
4
5## uimm1
6vstelm.d $vr0, $a0, 8, -1
7# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 1]
8
9vstelm.d $vr0, $a0, 8, 2
10# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 1]
11
12vreplvei.d $vr0, $vr1, -1
13# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 1]
14
15vreplvei.d $vr0, $vr1, 2
16# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 1]
17
18vpickve2gr.du $a0, $vr1, -1
19# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 1]
20
21vpickve2gr.du $a0, $vr1, 2
22# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 1]
23
24vpickve2gr.d $a0, $vr1, -1
25# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 1]
26
27vpickve2gr.d $a0, $vr1, 2
28# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 1]
29
30vinsgr2vr.d $vr0, $a0, -1
31# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 1]
32
33vinsgr2vr.d $vr0, $a0, 2
34# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 1]
35
36## uimm2
37vstelm.w $vr0, $a0, 4, -1
38# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 3]
39
40vstelm.w $vr0, $a0, 4, 4
41# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 3]
42
43vreplvei.w $vr0, $vr1, -1
44# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 3]
45
46vreplvei.w $vr0, $vr1, 4
47# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 3]
48
49vpickve2gr.wu $a0, $vr1, -1
50# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 3]
51
52vpickve2gr.wu $a0, $vr1, 4
53# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 3]
54
55vpickve2gr.w $a0, $vr1, -1
56# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 3]
57
58vpickve2gr.w $a0, $vr1, 4
59# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 3]
60
61vinsgr2vr.w $vr0, $a0, -1
62# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 3]
63
64vinsgr2vr.w $vr0, $a0, 4
65# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 3]
66
67## uimm3
68vstelm.h $vr0, $a0, 2, -1
69# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 7]
70
71vstelm.h $vr0, $a0, 2, 8
72# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 7]
73
74vreplvei.h $vr0, $vr1, -1
75# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 7]
76
77vreplvei.h $vr0, $vr1, 8
78# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 7]
79
80vpickve2gr.hu $a0, $vr1, -1
81# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 7]
82
83vpickve2gr.hu $a0, $vr1, 8
84# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 7]
85
86vpickve2gr.h $a0, $vr1, -1
87# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 7]
88
89vpickve2gr.h $a0, $vr1, 8
90# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 7]
91
92vinsgr2vr.h $vr0, $a0, -1
93# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 7]
94
95vinsgr2vr.h $vr0, $a0, 8
96# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 7]
97
98vbitrevi.b $vr0, $vr1, -1
99# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 7]
100
101vbitrevi.b $vr0, $vr1, 8
102# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 7]
103
104vbitseti.b $vr0, $vr1, -1
105# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 7]
106
107vbitseti.b $vr0, $vr1, 8
108# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 7]
109
110vbitclri.b $vr0, $vr1, -1
111# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 7]
112
113vbitclri.b $vr0, $vr1, 8
114# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 7]
115
116vsrari.b $vr0, $vr1, -1
117# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 7]
118
119vsrari.b $vr0, $vr1, 8
120# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 7]
121
122vsrlri.b $vr0, $vr1, -1
123# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 7]
124
125vsrlri.b $vr0, $vr1, 8
126# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 7]
127
128vsllwil.hu.bu $vr0, $vr1, -1
129# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 7]
130
131vsllwil.hu.bu $vr0, $vr1, 8
132# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 7]
133
134vsllwil.h.b $vr0, $vr1, -1
135# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 7]
136
137vsllwil.h.b $vr0, $vr1, 8
138# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 7]
139
140vrotri.b $vr0, $vr1, -1
141# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 7]
142
143vrotri.b $vr0, $vr1, 8
144# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 7]
145
146vsrai.b $vr0, $vr1, -1
147# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 7]
148
149vsrai.b $vr0, $vr1, 8
150# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 7]
151
152vsrli.b $vr0, $vr1, -1
153# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 7]
154
155vsrli.b $vr0, $vr1, 8
156# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 7]
157
158vslli.b $vr0, $vr1, -1
159# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 7]
160
161vslli.b $vr0, $vr1, 8
162# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 7]
163
164vsat.b $vr0, $vr1, -1
165# CHECK: :[[#@LINE-1]]:20: error: immediate must be an integer in the range [0, 7]
166
167vsat.b $vr0, $vr1, 8
168# CHECK: :[[#@LINE-1]]:20: error: immediate must be an integer in the range [0, 7]
169
170vsat.bu $vr0, $vr1, -1
171# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 7]
172
173vsat.bu $vr0, $vr1, 8
174# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 7]
175
176## uimm4
177vstelm.b $vr0, $a0, 1, -1
178# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 15]
179
180vstelm.b $vr0, $a0, 1, 16
181# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 15]
182
183vreplvei.b $vr0, $vr1, -1
184# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 15]
185
186vreplvei.b $vr0, $vr1, 16
187# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 15]
188
189vpickve2gr.bu $a0, $vr1, -1
190# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 15]
191
192vpickve2gr.bu $a0, $vr1, 16
193# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 15]
194
195vpickve2gr.b $a0, $vr1, -1
196# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 15]
197
198vpickve2gr.b $a0, $vr1, 16
199# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 15]
200
201vinsgr2vr.b $vr0, $a0, -1
202# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 15]
203
204vinsgr2vr.b $vr0, $a0, 16
205# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 15]
206
207vbitrevi.h $vr0, $vr1, -1
208# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 15]
209
210vbitrevi.h $vr0, $vr1, 16
211# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 15]
212
213vbitseti.h $vr0, $vr1, -1
214# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 15]
215
216vbitseti.h $vr0, $vr1, 16
217# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 15]
218
219vbitclri.h $vr0, $vr1, -1
220# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 15]
221
222vbitclri.h $vr0, $vr1, 16
223# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 15]
224
225vssrarni.bu.h $vr0, $vr1, -1
226# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 15]
227
228vssrarni.bu.h $vr0, $vr1, 16
229# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 15]
230
231vssrlrni.bu.h $vr0, $vr1, -1
232# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 15]
233
234vssrlrni.bu.h $vr0, $vr1, 16
235# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 15]
236
237vssrarni.b.h $vr0, $vr1, -1
238# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 15]
239
240vssrarni.b.h $vr0, $vr1, 16
241# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 15]
242
243vssrlrni.b.h $vr0, $vr1, -1
244# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 15]
245
246vssrlrni.b.h $vr0, $vr1, 16
247# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 15]
248
249vssrani.bu.h $vr0, $vr1, -1
250# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 15]
251
252vssrani.bu.h $vr0, $vr1, 16
253# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 15]
254
255vssrlni.bu.h $vr0, $vr1, -1
256# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 15]
257
258vssrlni.bu.h $vr0, $vr1, 16
259# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 15]
260
261vssrani.b.h $vr0, $vr1, -1
262# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 15]
263
264vssrani.b.h $vr0, $vr1, 16
265# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 15]
266
267vssrlni.b.h $vr0, $vr1, -1
268# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 15]
269
270vssrlni.b.h $vr0, $vr1, 16
271# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 15]
272
273vsrarni.b.h $vr0, $vr1, -1
274# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 15]
275
276vsrarni.b.h $vr0, $vr1, 16
277# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 15]
278
279vsrlrni.b.h $vr0, $vr1, -1
280# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 15]
281
282vsrlrni.b.h $vr0, $vr1, 16
283# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 15]
284
285vsrani.b.h $vr0, $vr1, -1
286# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 15]
287
288vsrani.b.h $vr0, $vr1, 16
289# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 15]
290
291vsrlni.b.h $vr0, $vr1, -1
292# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 15]
293
294vsrlni.b.h $vr0, $vr1, 16
295# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 15]
296
297vsrari.h $vr0, $vr1, -1
298# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 15]
299
300vsrari.h $vr0, $vr1, 16
301# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 15]
302
303vsrlri.h $vr0, $vr1, -1
304# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 15]
305
306vsrlri.h $vr0, $vr1, 16
307# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 15]
308
309vsllwil.wu.hu $vr0, $vr1, -1
310# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 15]
311
312vsllwil.wu.hu $vr0, $vr1, 16
313# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 15]
314
315vsllwil.w.h $vr0, $vr1, -1
316# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 15]
317
318vsllwil.w.h $vr0, $vr1, 16
319# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 15]
320
321vrotri.h $vr0, $vr1, -1
322# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 15]
323
324vrotri.h $vr0, $vr1, 16
325# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 15]
326
327vsrai.h $vr0, $vr1, -1
328# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 15]
329
330vsrai.h $vr0, $vr1, 16
331# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 15]
332
333vsrli.h $vr0, $vr1, -1
334# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 15]
335
336vsrli.h $vr0, $vr1, 16
337# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 15]
338
339vslli.h $vr0, $vr1, -1
340# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 15]
341
342vslli.h $vr0, $vr1, 16
343# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 15]
344
345vsat.h $vr0, $vr1, -1
346# CHECK: :[[#@LINE-1]]:20: error: immediate must be an integer in the range [0, 15]
347
348vsat.h $vr0, $vr1, 16
349# CHECK: :[[#@LINE-1]]:20: error: immediate must be an integer in the range [0, 15]
350
351vsat.hu $vr0, $vr1, -1
352# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 15]
353
354vsat.hu $vr0, $vr1, 16
355# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 15]
356
357## uimm5
358vbsrl.v $vr0, $vr1, -1
359# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 31]
360
361vbsrl.v $vr0, $vr1, 32
362# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 31]
363
364vbsll.v $vr0, $vr1, -1
365# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 31]
366
367vbsll.v $vr0, $vr1, 32
368# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 31]
369
370vslti.du $vr0, $vr1, -1
371# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]
372
373vslti.du $vr0, $vr1, 32
374# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]
375
376vslti.wu $vr0, $vr1, -1
377# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]
378
379vslti.wu $vr0, $vr1, 32
380# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]
381
382vslti.hu $vr0, $vr1, -1
383# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]
384
385vslti.hu $vr0, $vr1, 32
386# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]
387
388vslti.bu $vr0, $vr1, -1
389# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]
390
391vslti.bu $vr0, $vr1, 32
392# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]
393
394vslei.du $vr0, $vr1, -1
395# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]
396
397vslei.du $vr0, $vr1, 32
398# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]
399
400vslei.wu $vr0, $vr1, -1
401# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]
402
403vslei.wu $vr0, $vr1, 32
404# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]
405
406vslei.hu $vr0, $vr1, -1
407# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]
408
409vslei.hu $vr0, $vr1, 32
410# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]
411
412vslei.bu $vr0, $vr1, -1
413# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]
414
415vslei.bu $vr0, $vr1, 32
416# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]
417
418vfrstpi.h $vr0, $vr1, -1
419# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 31]
420
421vfrstpi.h $vr0, $vr1, 32
422# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 31]
423
424vfrstpi.b $vr0, $vr1, -1
425# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 31]
426
427vfrstpi.b $vr0, $vr1, 32
428# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 31]
429
430vbitrevi.w $vr0, $vr1, -1
431# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 31]
432
433vbitrevi.w $vr0, $vr1, 32
434# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 31]
435
436vbitseti.w $vr0, $vr1, -1
437# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 31]
438
439vbitseti.w $vr0, $vr1, 32
440# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 31]
441
442vbitclri.w $vr0, $vr1, -1
443# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 31]
444
445vbitclri.w $vr0, $vr1, 32
446# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 31]
447
448vssrarni.hu.w $vr0, $vr1, -1
449# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 31]
450
451vssrarni.hu.w $vr0, $vr1, 32
452# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 31]
453
454vssrlrni.hu.w $vr0, $vr1, -1
455# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 31]
456
457vssrlrni.hu.w $vr0, $vr1, 32
458# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 31]
459
460vssrarni.h.w $vr0, $vr1, -1
461# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 31]
462
463vssrarni.h.w $vr0, $vr1, 32
464# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 31]
465
466vssrlrni.h.w $vr0, $vr1, -1
467# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 31]
468
469vssrlrni.h.w $vr0, $vr1, 32
470# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 31]
471
472vssrani.hu.w $vr0, $vr1, -1
473# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 31]
474
475vssrani.hu.w $vr0, $vr1, 32
476# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 31]
477
478vssrlni.hu.w $vr0, $vr1, -1
479# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 31]
480
481vssrlni.hu.w $vr0, $vr1, 32
482# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 31]
483
484vssrani.h.w $vr0, $vr1, -1
485# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 31]
486
487vssrani.h.w $vr0, $vr1, 32
488# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 31]
489
490vssrlni.h.w $vr0, $vr1, -1
491# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 31]
492
493vssrlni.h.w $vr0, $vr1, 32
494# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 31]
495
496vsrarni.h.w $vr0, $vr1, -1
497# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 31]
498
499vsrarni.h.w $vr0, $vr1, 32
500# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 31]
501
502vsrlrni.h.w $vr0, $vr1, -1
503# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 31]
504
505vsrlrni.h.w $vr0, $vr1, 32
506# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 31]
507
508vsrani.h.w $vr0, $vr1, -1
509# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 31]
510
511vsrani.h.w $vr0, $vr1, 32
512# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 31]
513
514vsrlni.h.w $vr0, $vr1, -1
515# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 31]
516
517vsrlni.h.w $vr0, $vr1, 32
518# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 31]
519
520vsrari.w $vr0, $vr1, -1
521# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]
522
523vsrari.w $vr0, $vr1, 32
524# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]
525
526vsrlri.w $vr0, $vr1, -1
527# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]
528
529vsrlri.w $vr0, $vr1, 32
530# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]
531
532vsllwil.du.wu $vr0, $vr1, -1
533# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 31]
534
535vsllwil.du.wu $vr0, $vr1, 32
536# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 31]
537
538vsllwil.d.w $vr0, $vr1, -1
539# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 31]
540
541vsllwil.d.w $vr0, $vr1, 32
542# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 31]
543
544vrotri.w $vr0, $vr1, -1
545# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]
546
547vrotri.w $vr0, $vr1, 32
548# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]
549
550vsrai.w $vr0, $vr1, -1
551# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 31]
552
553vsrai.w $vr0, $vr1, 32
554# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 31]
555
556vsrli.w $vr0, $vr1, -1
557# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 31]
558
559vsrli.w $vr0, $vr1, 32
560# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 31]
561
562vslli.w $vr0, $vr1, -1
563# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 31]
564
565vslli.w $vr0, $vr1, 32
566# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 31]
567
568vaddi.bu $vr0, $vr1, -1
569# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]
570
571vaddi.bu $vr0, $vr1, 32
572# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]
573
574vaddi.hu $vr0, $vr1, -1
575# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]
576
577vaddi.hu $vr0, $vr1, 32
578# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]
579
580vaddi.wu $vr0, $vr1, -1
581# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]
582
583vaddi.wu $vr0, $vr1, 32
584# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]
585
586vaddi.du $vr0, $vr1, -1
587# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]
588
589vaddi.du $vr0, $vr1, 32
590# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]
591
592vsubi.bu $vr0, $vr1, -1
593# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]
594
595vsubi.bu $vr0, $vr1, 32
596# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]
597
598vsubi.hu $vr0, $vr1, -1
599# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]
600
601vsubi.hu $vr0, $vr1, 32
602# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]
603
604vsubi.wu $vr0, $vr1, -1
605# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]
606
607vsubi.wu $vr0, $vr1, 32
608# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]
609
610vsubi.du $vr0, $vr1, -1
611# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]
612
613vsubi.du $vr0, $vr1, 32
614# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]
615
616vmaxi.bu $vr0, $vr1, -1
617# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]
618
619vmaxi.bu $vr0, $vr1, 32
620# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]
621
622vmaxi.hu $vr0, $vr1, -1
623# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]
624
625vmaxi.hu $vr0, $vr1, 32
626# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]
627
628vmaxi.wu $vr0, $vr1, -1
629# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]
630
631vmaxi.wu $vr0, $vr1, 32
632# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]
633
634vmaxi.du $vr0, $vr1, -1
635# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]
636
637vmaxi.du $vr0, $vr1, 32
638# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]
639
640vmini.bu $vr0, $vr1, -1
641# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]
642
643vmini.bu $vr0, $vr1, 32
644# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]
645
646vmini.hu $vr0, $vr1, -1
647# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]
648
649vmini.hu $vr0, $vr1, 32
650# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]
651
652vmini.wu $vr0, $vr1, -1
653# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]
654
655vmini.wu $vr0, $vr1, 32
656# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]
657
658vmini.du $vr0, $vr1, -1
659# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]
660
661vmini.du $vr0, $vr1, 32
662# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 31]
663
664vsat.w $vr0, $vr1, -1
665# CHECK: :[[#@LINE-1]]:20: error: immediate must be an integer in the range [0, 31]
666
667vsat.w $vr0, $vr1, 32
668# CHECK: :[[#@LINE-1]]:20: error: immediate must be an integer in the range [0, 31]
669
670vsat.wu $vr0, $vr1, -1
671# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 31]
672
673vsat.wu $vr0, $vr1, 32
674# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 31]
675
676## simm5
677vslti.d $vr0, $vr1, -17
678# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]
679
680vslti.d $vr0, $vr1, 16
681# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]
682
683vslti.w $vr0, $vr1, -17
684# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]
685
686vslti.w $vr0, $vr1, 16
687# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]
688
689vslti.h $vr0, $vr1, -17
690# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]
691
692vslti.h $vr0, $vr1, 16
693# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]
694
695vslti.b $vr0, $vr1, -17
696# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]
697
698vslti.b $vr0, $vr1, 16
699# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]
700
701vslei.d $vr0, $vr1, -17
702# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]
703
704vslei.d $vr0, $vr1, 16
705# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]
706
707vslei.w $vr0, $vr1, -17
708# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]
709
710vslei.w $vr0, $vr1, 16
711# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]
712
713vslei.h $vr0, $vr1, -17
714# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]
715
716vslei.h $vr0, $vr1, 16
717# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]
718
719vslei.b $vr0, $vr1, -17
720# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]
721
722vslei.b $vr0, $vr1, 16
723# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]
724
725vseqi.d $vr0, $vr1, -17
726# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]
727
728vseqi.d $vr0, $vr1, 16
729# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]
730
731vseqi.w $vr0, $vr1, -17
732# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]
733
734vseqi.w $vr0, $vr1, 16
735# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]
736
737vseqi.h $vr0, $vr1, -17
738# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]
739
740vseqi.h $vr0, $vr1, 16
741# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]
742
743vseqi.b $vr0, $vr1, -17
744# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]
745
746vseqi.b $vr0, $vr1, 16
747# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]
748
749vmaxi.b $vr0, $vr1, -17
750# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]
751
752vmaxi.b $vr0, $vr1, 16
753# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]
754
755vmaxi.h $vr0, $vr1, -17
756# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]
757
758vmaxi.h $vr0, $vr1, 16
759# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]
760
761vmaxi.w $vr0, $vr1, -17
762# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]
763
764vmaxi.w $vr0, $vr1, 16
765# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]
766
767vmaxi.d $vr0, $vr1, -17
768# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]
769
770vmaxi.d $vr0, $vr1, 16
771# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]
772
773vmini.b $vr0, $vr1, -17
774# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]
775
776vmini.b $vr0, $vr1, 16
777# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]
778
779vmini.h $vr0, $vr1, -17
780# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]
781
782vmini.h $vr0, $vr1, 16
783# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]
784
785vmini.w $vr0, $vr1, -17
786# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]
787
788vmini.w $vr0, $vr1, 16
789# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]
790
791vmini.d $vr0, $vr1, -17
792# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]
793
794vmini.d $vr0, $vr1, 16
795# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-16, 15]
796
797## uimm6
798vbitrevi.d $vr0, $vr1, -1
799# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 63]
800
801vbitrevi.d $vr0, $vr1, 64
802# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 63]
803
804vbitseti.d $vr0, $vr1, -1
805# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 63]
806
807vbitseti.d $vr0, $vr1, 64
808# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 63]
809
810vbitclri.d $vr0, $vr1, -1
811# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 63]
812
813vbitclri.d $vr0, $vr1, 64
814# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 63]
815
816vssrarni.wu.d $vr0, $vr1, -1
817# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 63]
818
819vssrarni.wu.d $vr0, $vr1, 64
820# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 63]
821
822vssrlrni.wu.d $vr0, $vr1, -1
823# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 63]
824
825vssrlrni.wu.d $vr0, $vr1, 64
826# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 63]
827
828vssrarni.w.d $vr0, $vr1, -1
829# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 63]
830
831vssrarni.w.d $vr0, $vr1, 64
832# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 63]
833
834vssrlrni.w.d $vr0, $vr1, -1
835# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 63]
836
837vssrlrni.w.d $vr0, $vr1, 64
838# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 63]
839
840vssrani.wu.d $vr0, $vr1, -1
841# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 63]
842
843vssrani.wu.d $vr0, $vr1, 64
844# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 63]
845
846vssrlni.wu.d $vr0, $vr1, -1
847# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 63]
848
849vssrlni.wu.d $vr0, $vr1, 64
850# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 63]
851
852vssrani.w.d $vr0, $vr1, -1
853# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 63]
854
855vssrani.w.d $vr0, $vr1, 64
856# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 63]
857
858vssrlni.w.d $vr0, $vr1, -1
859# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 63]
860
861vssrlni.w.d $vr0, $vr1, 64
862# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 63]
863
864vsrarni.w.d $vr0, $vr1, -1
865# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 63]
866
867vsrarni.w.d $vr0, $vr1, 64
868# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 63]
869
870vsrlrni.w.d $vr0, $vr1, -1
871# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 63]
872
873vsrlrni.w.d $vr0, $vr1, 64
874# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 63]
875
876vsrani.w.d $vr0, $vr1, -1
877# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 63]
878
879vsrani.w.d $vr0, $vr1, 64
880# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 63]
881
882vsrlni.w.d $vr0, $vr1, -1
883# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 63]
884
885vsrlni.w.d $vr0, $vr1, 64
886# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 63]
887
888vsrari.d $vr0, $vr1, -1
889# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 63]
890
891vsrari.d $vr0, $vr1, 64
892# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 63]
893
894vsrlri.d $vr0, $vr1, -1
895# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 63]
896
897vsrlri.d $vr0, $vr1, 64
898# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 63]
899
900vrotri.d $vr0, $vr1, -1
901# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 63]
902
903vrotri.d $vr0, $vr1, 64
904# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 63]
905
906vsrai.d $vr0, $vr1, -1
907# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 63]
908
909vsrai.d $vr0, $vr1, 64
910# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 63]
911
912vsrli.d $vr0, $vr1, -1
913# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 63]
914
915vsrli.d $vr0, $vr1, 64
916# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 63]
917
918vslli.d $vr0, $vr1, -1
919# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 63]
920
921vslli.d $vr0, $vr1, 64
922# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 63]
923
924vsat.d $vr0, $vr1, -1
925# CHECK: :[[#@LINE-1]]:20: error: immediate must be an integer in the range [0, 63]
926
927vsat.d $vr0, $vr1, 64
928# CHECK: :[[#@LINE-1]]:20: error: immediate must be an integer in the range [0, 63]
929
930vsat.du $vr0, $vr1, -1
931# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 63]
932
933vsat.du $vr0, $vr1, 64
934# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 63]
935
936## uimm7
937vssrarni.du.q $vr0, $vr1, -1
938# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 127]
939
940vssrarni.du.q $vr0, $vr1, 128
941# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 127]
942
943vssrlrni.du.q $vr0, $vr1, -1
944# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 127]
945
946vssrlrni.du.q $vr0, $vr1, 128
947# CHECK: :[[#@LINE-1]]:27: error: immediate must be an integer in the range [0, 127]
948
949vssrarni.d.q $vr0, $vr1, -1
950# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 127]
951
952vssrarni.d.q $vr0, $vr1, 128
953# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 127]
954
955vssrlrni.d.q $vr0, $vr1, -1
956# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 127]
957
958vssrlrni.d.q $vr0, $vr1, 128
959# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 127]
960
961vssrani.du.q $vr0, $vr1, -1
962# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 127]
963
964vssrani.du.q $vr0, $vr1, 128
965# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 127]
966
967vssrlni.du.q $vr0, $vr1, -1
968# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 127]
969
970vssrlni.du.q $vr0, $vr1, 128
971# CHECK: :[[#@LINE-1]]:26: error: immediate must be an integer in the range [0, 127]
972
973vssrani.d.q $vr0, $vr1, -1
974# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 127]
975
976vssrani.d.q $vr0, $vr1, 128
977# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 127]
978
979vssrlni.d.q $vr0, $vr1, -1
980# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 127]
981
982vssrlni.d.q $vr0, $vr1, 128
983# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 127]
984
985vsrarni.d.q $vr0, $vr1, -1
986# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 127]
987
988vsrarni.d.q $vr0, $vr1, 128
989# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 127]
990
991vsrlrni.d.q $vr0, $vr1, -1
992# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 127]
993
994vsrlrni.d.q $vr0, $vr1, 128
995# CHECK: :[[#@LINE-1]]:25: error: immediate must be an integer in the range [0, 127]
996
997vsrani.d.q $vr0, $vr1, -1
998# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 127]
999
1000vsrani.d.q $vr0, $vr1, 128
1001# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 127]
1002
1003vsrlni.d.q $vr0, $vr1, -1
1004# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 127]
1005
1006vsrlni.d.q $vr0, $vr1, 128
1007# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 127]
1008
1009## uimm8
1010vextrins.d $vr0, $vr1, -1
1011# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 255]
1012
1013vextrins.d $vr0, $vr1, 256
1014# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 255]
1015
1016vextrins.w $vr0, $vr1, -1
1017# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 255]
1018
1019vextrins.w $vr0, $vr1, 256
1020# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 255]
1021
1022vextrins.h $vr0, $vr1, -1
1023# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 255]
1024
1025vextrins.h $vr0, $vr1, 256
1026# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 255]
1027
1028vextrins.b $vr0, $vr1, -1
1029# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 255]
1030
1031vextrins.b $vr0, $vr1, 256
1032# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 255]
1033
1034vpermi.w $vr0, $vr1, -1
1035# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 255]
1036
1037vpermi.w $vr0, $vr1, 256
1038# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [0, 255]
1039
1040vshuf4i.d $vr0, $vr1, -1
1041# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 255]
1042
1043vshuf4i.d $vr0, $vr1, 256
1044# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 255]
1045
1046vshuf4i.w $vr0, $vr1, -1
1047# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 255]
1048
1049vshuf4i.w $vr0, $vr1, 256
1050# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 255]
1051
1052vshuf4i.h $vr0, $vr1, -1
1053# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 255]
1054
1055vshuf4i.h $vr0, $vr1, 256
1056# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 255]
1057
1058vshuf4i.b $vr0, $vr1, -1
1059# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 255]
1060
1061vshuf4i.b $vr0, $vr1, 256
1062# CHECK: :[[#@LINE-1]]:23: error: immediate must be an integer in the range [0, 255]
1063
1064vbitseli.b $vr0, $vr1, -1
1065# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 255]
1066
1067vbitseli.b $vr0, $vr1, 256
1068# CHECK: :[[#@LINE-1]]:24: error: immediate must be an integer in the range [0, 255]
1069
1070vandi.b $vr0, $vr1, -1
1071# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 255]
1072
1073vandi.b $vr0, $vr1, 256
1074# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 255]
1075
1076vori.b $vr0, $vr1, -1
1077# CHECK: :[[#@LINE-1]]:20: error: immediate must be an integer in the range [0, 255]
1078
1079vori.b $vr0, $vr1, 256
1080# CHECK: :[[#@LINE-1]]:20: error: immediate must be an integer in the range [0, 255]
1081
1082vxori.b $vr0, $vr1, -1
1083# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 255]
1084
1085vxori.b $vr0, $vr1, 256
1086# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 255]
1087
1088vnori.b $vr0, $vr1, -1
1089# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 255]
1090
1091vnori.b $vr0, $vr1, 256
1092# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [0, 255]
1093
1094## simm8
1095vstelm.b $vr0, $a0, -129, 1
1096# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-128, 127]
1097
1098vstelm.b $vr0, $a0, 128, 1
1099# CHECK: :[[#@LINE-1]]:21: error: immediate must be an integer in the range [-128, 127]
1100
1101## simm8_lsl1
1102vstelm.h $vr0, $a0, -258, 1
1103# CHECK: :[[#@LINE-1]]:21: error: immediate must be a multiple of 2 in the range [-256, 254]
1104
1105vstelm.h $vr0, $a0, 256, 1
1106# CHECK: :[[#@LINE-1]]:21: error: immediate must be a multiple of 2 in the range [-256, 254]
1107
1108## simm8_lsl2
1109vstelm.w $vr0, $a0, -516, 1
1110# CHECK: :[[#@LINE-1]]:21: error: immediate must be a multiple of 4 in the range [-512, 508]
1111
1112vstelm.w $vr0, $a0, 512, 1
1113# CHECK: :[[#@LINE-1]]:21: error: immediate must be a multiple of 4 in the range [-512, 508]
1114
1115## simm8_lsl3
1116vstelm.d $vr0, $a0, -1032, 1
1117# CHECK: :[[#@LINE-1]]:21: error: immediate must be a multiple of 8 in the range [-1024, 1016]
1118
1119vstelm.d $vr0, $a0, 1024, 1
1120# CHECK: :[[#@LINE-1]]:21: error: immediate must be a multiple of 8 in the range [-1024, 1016]
1121
1122## simm9_lsl3
1123vldrepl.d $vr0, $a0, -2056
1124# CHECK: :[[#@LINE-1]]:22: error: immediate must be a multiple of 8 in the range [-2048, 2040]
1125
1126vldrepl.d $vr0, $a0, 2048
1127# CHECK: :[[#@LINE-1]]:22: error: immediate must be a multiple of 8 in the range [-2048, 2040]
1128
1129## simm10_lsl2
1130vldrepl.w $vr0, $a0, -2052
1131# CHECK: :[[#@LINE-1]]:22: error: immediate must be a multiple of 4 in the range [-2048, 2044]
1132
1133vldrepl.w $vr0, $a0, 2048
1134# CHECK: :[[#@LINE-1]]:22: error: immediate must be a multiple of 4 in the range [-2048, 2044]
1135
1136## simm10
1137vrepli.b $vr0, -513
1138# CHECK: :[[#@LINE-1]]:16: error: immediate must be an integer in the range [-512, 511]
1139
1140vrepli.b $vr0, 512
1141# CHECK: :[[#@LINE-1]]:16: error: immediate must be an integer in the range [-512, 511]
1142
1143vrepli.h $vr0, -513
1144# CHECK: :[[#@LINE-1]]:16: error: immediate must be an integer in the range [-512, 511]
1145
1146vrepli.h $vr0, 512
1147# CHECK: :[[#@LINE-1]]:16: error: immediate must be an integer in the range [-512, 511]
1148
1149vrepli.w $vr0, -513
1150# CHECK: :[[#@LINE-1]]:16: error: immediate must be an integer in the range [-512, 511]
1151
1152vrepli.w $vr0, 512
1153# CHECK: :[[#@LINE-1]]:16: error: immediate must be an integer in the range [-512, 511]
1154
1155vrepli.d $vr0, -513
1156# CHECK: :[[#@LINE-1]]:16: error: immediate must be an integer in the range [-512, 511]
1157
1158vrepli.d $vr0, 512
1159# CHECK: :[[#@LINE-1]]:16: error: immediate must be an integer in the range [-512, 511]
1160
1161## simm11_lsl1
1162vldrepl.h $vr0, $a0, -2050
1163# CHECK: :[[#@LINE-1]]:22: error: immediate must be a multiple of 2 in the range [-2048, 2046]
1164
1165vldrepl.h $vr0, $a0, 2048
1166# CHECK: :[[#@LINE-1]]:22: error: immediate must be a multiple of 2 in the range [-2048, 2046]
1167
1168## simm12
1169vldrepl.b $vr0, $a0, -2049
1170# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [-2048, 2047]
1171
1172vldrepl.b $vr0, $a0, 2048
1173# CHECK: :[[#@LINE-1]]:22: error: immediate must be an integer in the range [-2048, 2047]
1174
1175vst $vr0, $a0, -2049
1176# CHECK: :[[#@LINE-1]]:16: error: immediate must be an integer in the range [-2048, 2047]
1177
1178vst $vr0, $a0, 2048
1179# CHECK: :[[#@LINE-1]]:16: error: immediate must be an integer in the range [-2048, 2047]
1180
1181vld $vr0, $a0, -2049
1182# CHECK: :[[#@LINE-1]]:16: error: immediate must be an integer in the range [-2048, 2047]
1183
1184vld $vr0, $a0, 2048
1185# CHECK: :[[#@LINE-1]]:16: error: immediate must be an integer in the range [-2048, 2047]
1186
1187## simm13
1188vldi $vr0, -4097
1189# CHECK: :[[#@LINE-1]]:12: error: immediate must be an integer in the range [-4096, 4095]
1190
1191vldi $vr0, 4096
1192# CHECK: :[[#@LINE-1]]:12: error: immediate must be an integer in the range [-4096, 4095]
1193