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