1# For z14 only.
2# RUN: not llvm-mc -triple s390x-linux-gnu -mcpu=z14 < %s 2> %t
3# RUN: FileCheck < %t %s
4# RUN: not llvm-mc -triple s390x-linux-gnu -mcpu=arch12 < %s 2> %t
5# RUN: FileCheck < %t %s
6
7#CHECK: error: invalid operand
8#CHECK: bi	-524289
9#CHECK: error: invalid operand
10#CHECK: bi	524288
11
12	bi	-524289
13	bi	524288
14
15#CHECK: error: invalid operand
16#CHECK: bic	-1, 0(%r1)
17#CHECK: error: invalid operand
18#CHECK: bic	16, 0(%r1)
19#CHECK: error: invalid operand
20#CHECK: bic	0, -524289
21#CHECK: error: invalid operand
22#CHECK: bic	0, 524288
23
24	bic	-1, 0(%r1)
25	bic	16, 0(%r1)
26	bic	0, -524289
27	bic	0, 524288
28
29#CHECK: error: invalid operand
30#CHECK: agh	%r0, -524289
31#CHECK: error: invalid operand
32#CHECK: agh	%r0, 524288
33
34	agh	%r0, -524289
35	agh	%r0, 524288
36
37#CHECK: error: invalid register pair
38#CHECK: kma	%r1, %r2, %r4
39#CHECK: error: invalid register pair
40#CHECK: kma	%r2, %r1, %r4
41#CHECK: error: invalid register pair
42#CHECK: kma	%r2, %r4, %r1
43
44	kma	%r1, %r2, %r4
45	kma	%r2, %r1, %r4
46	kma	%r2, %r4, %r1
47
48#CHECK: error: invalid operand
49#CHECK: lgg	%r0, -524289
50#CHECK: error: invalid operand
51#CHECK: lgg	%r0, 524288
52
53	lgg	%r0, -524289
54	lgg	%r0, 524288
55
56#CHECK: error: invalid operand
57#CHECK: lgsc	%r0, -524289
58#CHECK: error: invalid operand
59#CHECK: lgsc	%r0, 524288
60
61	lgsc	%r0, -524289
62	lgsc	%r0, 524288
63
64#CHECK: error: invalid operand
65#CHECK: llgfsg	%r0, -524289
66#CHECK: error: invalid operand
67#CHECK: llgfsg	%r0, 524288
68
69	llgfsg	%r0, -524289
70	llgfsg	%r0, 524288
71
72#CHECK: error: invalid operand
73#CHECK: mg	%r0, -524289
74#CHECK: error: invalid operand
75#CHECK: mg	%r0, 524288
76#CHECK: error: invalid register pair
77#CHECK: mg	%r1, 0
78
79	mg	%r0, -524289
80	mg	%r0, 524288
81	mg	%r1, 0
82
83#CHECK: error: invalid operand
84#CHECK: mgh	%r0, -524289
85#CHECK: error: invalid operand
86#CHECK: mgh	%r0, 524288
87
88	mgh	%r0, -524289
89	mgh	%r0, 524288
90
91#CHECK: error: invalid register pair
92#CHECK: mgrk	%r1, %r0, %r0
93
94	mgrk	%r1, %r0, %r0
95
96#CHECK: error: invalid operand
97#CHECK: msc	%r0, -524289
98#CHECK: error: invalid operand
99#CHECK: msc	%r0, 524288
100
101	msc	%r0, -524289
102	msc	%r0, 524288
103
104#CHECK: error: invalid operand
105#CHECK: msgc	%r0, -524289
106#CHECK: error: invalid operand
107#CHECK: msgc	%r0, 524288
108
109	msgc	%r0, -524289
110	msgc	%r0, 524288
111
112#CHECK: error: invalid register pair
113#CHECK: prno	%r1, %r2
114#CHECK: error: invalid register pair
115#CHECK: prno	%r2, %r1
116
117	prno	%r1, %r2
118	prno	%r2, %r1
119
120#CHECK: error: invalid operand
121#CHECK: sgh	%r0, -524289
122#CHECK: error: invalid operand
123#CHECK: sgh	%r0, 524288
124
125	sgh	%r0, -524289
126	sgh	%r0, 524288
127
128#CHECK: error: invalid operand
129#CHECK: stgsc	%r0, -524289
130#CHECK: error: invalid operand
131#CHECK: stgsc	%r0, 524288
132
133	stgsc	%r0, -524289
134	stgsc	%r0, 524288
135
136#CHECK: error: invalid operand
137#CHECK: vap	%v0, %v0, %v0, 0, -1
138#CHECK: error: invalid operand
139#CHECK: vap	%v0, %v0, %v0, 0, 16
140#CHECK: error: invalid operand
141#CHECK: vap	%v0, %v0, %v0, -1, 0
142#CHECK: error: invalid operand
143#CHECK: vap	%v0, %v0, %v0, 256, 0
144
145	vap	%v0, %v0, %v0, 0, -1
146	vap	%v0, %v0, %v0, 0, 16
147	vap	%v0, %v0, %v0, -1, 0
148	vap	%v0, %v0, %v0, 256, 0
149
150#CHECK: error: invalid operand
151#CHECK: vcp	%v0, %v0, -1
152#CHECK: error: invalid operand
153#CHECK: vcp	%v0, %v0, 16
154
155	vcp	%v0, %v0, -1
156	vcp	%v0, %v0, 16
157
158#CHECK: error: invalid operand
159#CHECK: vcvb	%r0, %v0, -1
160#CHECK: error: invalid operand
161#CHECK: vcvb	%r0, %v0, 16
162
163	vcvb	%r0, %v0, -1
164	vcvb	%r0, %v0, 16
165
166#CHECK: error: invalid operand
167#CHECK: vcvbg	%r0, %v0, -1
168#CHECK: error: invalid operand
169#CHECK: vcvbg	%r0, %v0, 16
170
171	vcvbg	%r0, %v0, -1
172	vcvbg	%r0, %v0, 16
173
174#CHECK: error: invalid operand
175#CHECK: vcvd	%r0, %v0, 0, -1
176#CHECK: error: invalid operand
177#CHECK: vcvd	%r0, %v0, 0, 16
178#CHECK: error: invalid operand
179#CHECK: vcvd	%r0, %v0, -1, 0
180#CHECK: error: invalid operand
181#CHECK: vcvd	%r0, %v0, 256, 0
182
183	vcvd	%r0, %v0, 0, -1
184	vcvd	%r0, %v0, 0, 16
185	vcvd	%r0, %v0, -1, 0
186	vcvd	%r0, %v0, 256, 0
187
188#CHECK: error: invalid operand
189#CHECK: vcvdg	%r0, %v0, 0, -1
190#CHECK: error: invalid operand
191#CHECK: vcvdg	%r0, %v0, 0, 16
192#CHECK: error: invalid operand
193#CHECK: vcvdg	%r0, %v0, -1, 0
194#CHECK: error: invalid operand
195#CHECK: vcvdg	%r0, %v0, 256, 0
196
197	vcvdg	%r0, %v0, 0, -1
198	vcvdg	%r0, %v0, 0, 16
199	vcvdg	%r0, %v0, -1, 0
200	vcvdg	%r0, %v0, 256, 0
201
202#CHECK: error: invalid operand
203#CHECK: vdp	%v0, %v0, %v0, 0, -1
204#CHECK: error: invalid operand
205#CHECK: vdp	%v0, %v0, %v0, 0, 16
206#CHECK: error: invalid operand
207#CHECK: vdp	%v0, %v0, %v0, -1, 0
208#CHECK: error: invalid operand
209#CHECK: vdp	%v0, %v0, %v0, 256, 0
210
211	vdp	%v0, %v0, %v0, 0, -1
212	vdp	%v0, %v0, %v0, 0, 16
213	vdp	%v0, %v0, %v0, -1, 0
214	vdp	%v0, %v0, %v0, 256, 0
215
216#CHECK: error: invalid operand
217#CHECK: vfisb	%v0, %v0, 0, -1
218#CHECK: error: invalid operand
219#CHECK: vfisb	%v0, %v0, 0, 16
220#CHECK: error: invalid operand
221#CHECK: vfisb	%v0, %v0, -1, 0
222#CHECK: error: invalid operand
223#CHECK: vfisb	%v0, %v0, 16, 0
224
225	vfisb	%v0, %v0, 0, -1
226	vfisb	%v0, %v0, 0, 16
227	vfisb	%v0, %v0, -1, 0
228	vfisb	%v0, %v0, 16, 0
229
230#CHECK: error: invalid operand
231#CHECK: vfll	%v0, %v0, 0, -1
232#CHECK: error: invalid operand
233#CHECK: vfll	%v0, %v0, 0, 16
234#CHECK: error: invalid operand
235#CHECK: vfll	%v0, %v0, -1, 0
236#CHECK: error: invalid operand
237#CHECK: vfll	%v0, %v0, 16, 0
238
239	vfll	%v0, %v0, 0, -1
240	vfll	%v0, %v0, 0, 16
241	vfll	%v0, %v0, -1, 0
242	vfll	%v0, %v0, 16, 0
243
244#CHECK: error: invalid operand
245#CHECK: vflr	%v0, %v0, 0, 0, -1
246#CHECK: error: invalid operand
247#CHECK: vflr	%v0, %v0, 0, 0, 16
248#CHECK: error: invalid operand
249#CHECK: vflr	%v0, %v0, 0, -1, 0
250#CHECK: error: invalid operand
251#CHECK: vflr	%v0, %v0, 0, 16, 0
252#CHECK: error: invalid operand
253#CHECK: vflr	%v0, %v0, -1, 0, 0
254#CHECK: error: invalid operand
255#CHECK: vflr	%v0, %v0, 16, 0, 0
256
257	vflr	%v0, %v0, 0, 0, -1
258	vflr	%v0, %v0, 0, 0, 16
259	vflr	%v0, %v0, 0, -1, 0
260	vflr	%v0, %v0, 0, 16, 0
261	vflr	%v0, %v0, -1, 0, 0
262	vflr	%v0, %v0, 16, 0, 0
263
264#CHECK: error: invalid operand
265#CHECK: vflrd	%v0, %v0, 0, -1
266#CHECK: error: invalid operand
267#CHECK: vflrd	%v0, %v0, 0, 16
268#CHECK: error: invalid operand
269#CHECK: vflrd	%v0, %v0, -1, 0
270#CHECK: error: invalid operand
271#CHECK: vflrd	%v0, %v0, 16, 0
272
273	vflrd	%v0, %v0, 0, -1
274	vflrd	%v0, %v0, 0, 16
275	vflrd	%v0, %v0, -1, 0
276	vflrd	%v0, %v0, 16, 0
277
278#CHECK: error: invalid operand
279#CHECK: vfmax	%v0, %v0, %v0, 0, 0, -1
280#CHECK: error: invalid operand
281#CHECK: vfmax	%v0, %v0, %v0, 0, 0, 16
282#CHECK: error: invalid operand
283#CHECK: vfmax	%v0, %v0, %v0, 0, -1, 0
284#CHECK: error: invalid operand
285#CHECK: vfmax	%v0, %v0, %v0, 0, 16, 0
286#CHECK: error: invalid operand
287#CHECK: vfmax	%v0, %v0, %v0, -1, 0, 0
288#CHECK: error: invalid operand
289#CHECK: vfmax	%v0, %v0, %v0, 16, 0, 0
290
291	vfmax	%v0, %v0, %v0, 0, 0, -1
292	vfmax	%v0, %v0, %v0, 0, 0, 16
293	vfmax	%v0, %v0, %v0, 0, -1, 0
294	vfmax	%v0, %v0, %v0, 0, 16, 0
295	vfmax	%v0, %v0, %v0, -1, 0, 0
296	vfmax	%v0, %v0, %v0, 16, 0, 0
297
298#CHECK: error: invalid operand
299#CHECK: vfmaxdb	%v0, %v0, %v0, -1
300#CHECK: error: invalid operand
301#CHECK: vfmaxdb	%v0, %v0, %v0, 16
302
303	vfmaxdb	%v0, %v0, %v0, -1
304	vfmaxdb	%v0, %v0, %v0, 16
305
306#CHECK: error: invalid operand
307#CHECK: vfmaxsb	%v0, %v0, %v0, -1
308#CHECK: error: invalid operand
309#CHECK: vfmaxsb	%v0, %v0, %v0, 16
310
311	vfmaxsb	%v0, %v0, %v0, -1
312	vfmaxsb	%v0, %v0, %v0, 16
313
314#CHECK: error: invalid operand
315#CHECK: vfmin	%v0, %v0, %v0, 0, 0, -1
316#CHECK: error: invalid operand
317#CHECK: vfmin	%v0, %v0, %v0, 0, 0, 16
318#CHECK: error: invalid operand
319#CHECK: vfmin	%v0, %v0, %v0, 0, -1, 0
320#CHECK: error: invalid operand
321#CHECK: vfmin	%v0, %v0, %v0, 0, 16, 0
322#CHECK: error: invalid operand
323#CHECK: vfmin	%v0, %v0, %v0, -1, 0, 0
324#CHECK: error: invalid operand
325#CHECK: vfmin	%v0, %v0, %v0, 16, 0, 0
326
327	vfmin	%v0, %v0, %v0, 0, 0, -1
328	vfmin	%v0, %v0, %v0, 0, 0, 16
329	vfmin	%v0, %v0, %v0, 0, -1, 0
330	vfmin	%v0, %v0, %v0, 0, 16, 0
331	vfmin	%v0, %v0, %v0, -1, 0, 0
332	vfmin	%v0, %v0, %v0, 16, 0, 0
333
334#CHECK: error: invalid operand
335#CHECK: vfmindb	%v0, %v0, %v0, -1
336#CHECK: error: invalid operand
337#CHECK: vfmindb	%v0, %v0, %v0, 16
338
339	vfmindb	%v0, %v0, %v0, -1
340	vfmindb	%v0, %v0, %v0, 16
341
342#CHECK: error: invalid operand
343#CHECK: vfminsb	%v0, %v0, %v0, -1
344#CHECK: error: invalid operand
345#CHECK: vfminsb	%v0, %v0, %v0, 16
346
347	vfminsb	%v0, %v0, %v0, -1
348	vfminsb	%v0, %v0, %v0, 16
349
350#CHECK: error: invalid operand
351#CHECK: vfnma	%v0, %v0, %v0, %v0, 0, -1
352#CHECK: error: invalid operand
353#CHECK: vfnma	%v0, %v0, %v0, %v0, 0, 16
354#CHECK: error: invalid operand
355#CHECK: vfnma	%v0, %v0, %v0, %v0, -1, 0
356#CHECK: error: invalid operand
357#CHECK: vfnma	%v0, %v0, %v0, %v0, 16, 0
358
359	vfnma	%v0, %v0, %v0, %v0, 0, -1
360	vfnma	%v0, %v0, %v0, %v0, 0, 16
361	vfnma	%v0, %v0, %v0, %v0, -1, 0
362	vfnma	%v0, %v0, %v0, %v0, 16, 0
363
364#CHECK: error: invalid operand
365#CHECK: vfnms	%v0, %v0, %v0, %v0, 0, -1
366#CHECK: error: invalid operand
367#CHECK: vfnms	%v0, %v0, %v0, %v0, 0, 16
368#CHECK: error: invalid operand
369#CHECK: vfnms	%v0, %v0, %v0, %v0, -1, 0
370#CHECK: error: invalid operand
371#CHECK: vfnms	%v0, %v0, %v0, %v0, 16, 0
372
373	vfnms	%v0, %v0, %v0, %v0, 0, -1
374	vfnms	%v0, %v0, %v0, %v0, 0, 16
375	vfnms	%v0, %v0, %v0, %v0, -1, 0
376	vfnms	%v0, %v0, %v0, %v0, 16, 0
377
378#CHECK: error: invalid operand
379#CHECK: vftcisb	%v0, %v0, -1
380#CHECK: error: invalid operand
381#CHECK: vftcisb	%v0, %v0, 4096
382
383	vftcisb	%v0, %v0, -1
384	vftcisb	%v0, %v0, 4096
385
386#CHECK: error: invalid operand
387#CHECK: vlip	%v0, 0, -1
388#CHECK: error: invalid operand
389#CHECK: vlip	%v0, 0, 16
390#CHECK: error: invalid operand
391#CHECK: vlip	%v0, -1, 0
392#CHECK: error: invalid operand
393#CHECK: vlip	%v0, 65536, 0
394
395	vlip	%v0, 0, -1
396	vlip	%v0, 0, 16
397	vlip	%v0, -1, 0
398	vlip	%v0, 65536, 0
399
400#CHECK: error: invalid operand
401#CHECK: vllezlf	%v0, -1
402#CHECK: error: invalid operand
403#CHECK: vllezlf	%v0, 4096
404#CHECK: error: invalid use of vector addressing
405#CHECK: vllezlf	%v0, 0(%v1,%r2)
406
407	vllezlf	%v0, -1
408	vllezlf	%v0, 4096
409	vllezlf	%v0, 0(%v1,%r2)
410
411#CHECK: error: invalid operand
412#CHECK: vlrl	%v0, 0, -1
413#CHECK: error: invalid operand
414#CHECK: vlrl	%v0, 0, 256
415#CHECK: error: invalid operand
416#CHECK: vlrl	%v0, -1, 0
417#CHECK: error: invalid operand
418#CHECK: vlrl	%v0, 4096, 0
419#CHECK: error: %r0 used in an address
420#CHECK: vlrl	%v0, 0(%r0), 0
421
422	vlrl	%v0, 0, -1
423	vlrl	%v0, 0, 256
424	vlrl	%v0, -1, 0
425	vlrl	%v0, 4096, 0
426	vlrl	%v0, 0(%r0), 0
427
428#CHECK: error: invalid operand
429#CHECK: vlrlr	%v0, %r0, -1
430#CHECK: error: invalid operand
431#CHECK: vlrlr	%v0, %r0, 4096
432#CHECK: error: %r0 used in an address
433#CHECK: vlrlr	%v0, %r0, 0(%r0)
434
435	vlrlr	%v0, %r0, -1
436	vlrlr	%v0, %r0, 4096
437	vlrlr	%v0, %r0, 0(%r0)
438
439#CHECK: error: invalid operand
440#CHECK: vmp	%v0, %v0, %v0, 0, -1
441#CHECK: error: invalid operand
442#CHECK: vmp	%v0, %v0, %v0, 0, 16
443#CHECK: error: invalid operand
444#CHECK: vmp	%v0, %v0, %v0, -1, 0
445#CHECK: error: invalid operand
446#CHECK: vmp	%v0, %v0, %v0, 256, 0
447
448	vmp	%v0, %v0, %v0, 0, -1
449	vmp	%v0, %v0, %v0, 0, 16
450	vmp	%v0, %v0, %v0, -1, 0
451	vmp	%v0, %v0, %v0, 256, 0
452
453#CHECK: error: invalid operand
454#CHECK: vmsp	%v0, %v0, %v0, 0, -1
455#CHECK: error: invalid operand
456#CHECK: vmsp	%v0, %v0, %v0, 0, 16
457#CHECK: error: invalid operand
458#CHECK: vmsp	%v0, %v0, %v0, -1, 0
459#CHECK: error: invalid operand
460#CHECK: vmsp	%v0, %v0, %v0, 256, 0
461
462	vmsp	%v0, %v0, %v0, 0, -1
463	vmsp	%v0, %v0, %v0, 0, 16
464	vmsp	%v0, %v0, %v0, -1, 0
465	vmsp	%v0, %v0, %v0, 256, 0
466
467#CHECK: error: invalid operand
468#CHECK: vmsl	%v0, %v0, %v0, %v0, 0, -1
469#CHECK: error: invalid operand
470#CHECK: vmsl	%v0, %v0, %v0, %v0, 0, 16
471#CHECK: error: invalid operand
472#CHECK: vmsl	%v0, %v0, %v0, %v0, -1, 0
473#CHECK: error: invalid operand
474#CHECK: vmsl	%v0, %v0, %v0, %v0, 16, 0
475
476	vmsl	%v0, %v0, %v0, %v0, 0, -1
477	vmsl	%v0, %v0, %v0, %v0, 0, 16
478	vmsl	%v0, %v0, %v0, %v0, -1, 0
479	vmsl	%v0, %v0, %v0, %v0, 16, 0
480
481#CHECK: error: invalid operand
482#CHECK: vmslg	%v0, %v0, %v0, %v0, -1
483#CHECK: error: invalid operand
484#CHECK: vmslg	%v0, %v0, %v0, %v0, 16
485
486	vmslg	%v0, %v0, %v0, %v0, -1
487	vmslg	%v0, %v0, %v0, %v0, 16
488
489#CHECK: error: invalid operand
490#CHECK: vpkz	%v0, 0, -1
491#CHECK: error: invalid operand
492#CHECK: vpkz	%v0, 0, 256
493#CHECK: error: invalid operand
494#CHECK: vpkz	%v0, -1, 0
495#CHECK: error: invalid operand
496#CHECK: vpkz	%v0, 4096, 0
497#CHECK: error: %r0 used in an address
498#CHECK: vpkz	%v0, 0(%r0), 0
499
500	vpkz	%v0, 0, -1
501	vpkz	%v0, 0, 256
502	vpkz	%v0, -1, 0
503	vpkz	%v0, 4096, 0
504	vpkz	%v0, 0(%r0), 0
505
506#CHECK: error: invalid operand
507#CHECK: vpsop	%v0, %v0, 0, 0, -1
508#CHECK: error: invalid operand
509#CHECK: vpsop	%v0, %v0, 0, 0, 16
510#CHECK: error: invalid operand
511#CHECK: vpsop	%v0, %v0, 0, -1, 0
512#CHECK: error: invalid operand
513#CHECK: vpsop	%v0, %v0, 0, 256, 0
514#CHECK: error: invalid operand
515#CHECK: vpsop	%v0, %v0, -1, 0, 0
516#CHECK: error: invalid operand
517#CHECK: vpsop	%v0, %v0, 256, 0, 0
518
519	vpsop	%v0, %v0, 0, 0, -1
520	vpsop	%v0, %v0, 0, 0, 16
521	vpsop	%v0, %v0, 0, -1, 0
522	vpsop	%v0, %v0, 0, 256, 0
523	vpsop	%v0, %v0, -1, 0, 0
524	vpsop	%v0, %v0, 256, 0, 0
525
526#CHECK: error: invalid operand
527#CHECK: vrp	%v0, %v0, %v0, 0, -1
528#CHECK: error: invalid operand
529#CHECK: vrp	%v0, %v0, %v0, 0, 16
530#CHECK: error: invalid operand
531#CHECK: vrp	%v0, %v0, %v0, -1, 0
532#CHECK: error: invalid operand
533#CHECK: vrp	%v0, %v0, %v0, 256, 0
534
535	vrp	%v0, %v0, %v0, 0, -1
536	vrp	%v0, %v0, %v0, 0, 16
537	vrp	%v0, %v0, %v0, -1, 0
538	vrp	%v0, %v0, %v0, 256, 0
539
540#CHECK: error: invalid operand
541#CHECK: vsdp	%v0, %v0, %v0, 0, -1
542#CHECK: error: invalid operand
543#CHECK: vsdp	%v0, %v0, %v0, 0, 16
544#CHECK: error: invalid operand
545#CHECK: vsdp	%v0, %v0, %v0, -1, 0
546#CHECK: error: invalid operand
547#CHECK: vsdp	%v0, %v0, %v0, 256, 0
548
549	vsdp	%v0, %v0, %v0, 0, -1
550	vsdp	%v0, %v0, %v0, 0, 16
551	vsdp	%v0, %v0, %v0, -1, 0
552	vsdp	%v0, %v0, %v0, 256, 0
553
554#CHECK: error: invalid operand
555#CHECK: vsp	%v0, %v0, %v0, 0, -1
556#CHECK: error: invalid operand
557#CHECK: vsp	%v0, %v0, %v0, 0, 16
558#CHECK: error: invalid operand
559#CHECK: vsp	%v0, %v0, %v0, -1, 0
560#CHECK: error: invalid operand
561#CHECK: vsp	%v0, %v0, %v0, 256, 0
562
563	vsp	%v0, %v0, %v0, 0, -1
564	vsp	%v0, %v0, %v0, 0, 16
565	vsp	%v0, %v0, %v0, -1, 0
566	vsp	%v0, %v0, %v0, 256, 0
567
568#CHECK: error: invalid operand
569#CHECK: vsrp	%v0, %v0, 0, 0, -1
570#CHECK: error: invalid operand
571#CHECK: vsrp	%v0, %v0, 0, 0, 16
572#CHECK: error: invalid operand
573#CHECK: vsrp	%v0, %v0, 0, -1, 0
574#CHECK: error: invalid operand
575#CHECK: vsrp	%v0, %v0, 0, 256, 0
576#CHECK: error: invalid operand
577#CHECK: vsrp	%v0, %v0, -1, 0, 0
578#CHECK: error: invalid operand
579#CHECK: vsrp	%v0, %v0, 256, 0, 0
580
581	vsrp	%v0, %v0, 0, 0, -1
582	vsrp	%v0, %v0, 0, 0, 16
583	vsrp	%v0, %v0, 0, -1, 0
584	vsrp	%v0, %v0, 0, 256, 0
585	vsrp	%v0, %v0, -1, 0, 0
586	vsrp	%v0, %v0, 256, 0, 0
587
588#CHECK: error: invalid operand
589#CHECK: vstrl	%v0, 0, -1
590#CHECK: error: invalid operand
591#CHECK: vstrl	%v0, 0, 256
592#CHECK: error: invalid operand
593#CHECK: vstrl	%v0, -1, 0
594#CHECK: error: invalid operand
595#CHECK: vstrl	%v0, 4096, 0
596#CHECK: error: %r0 used in an address
597#CHECK: vstrl	%v0, 0(%r0), 0
598
599	vstrl	%v0, 0, -1
600	vstrl	%v0, 0, 256
601	vstrl	%v0, -1, 0
602	vstrl	%v0, 4096, 0
603	vstrl	%v0, 0(%r0), 0
604
605#CHECK: error: invalid operand
606#CHECK: vstrlr	%v0, %r0, -1
607#CHECK: error: invalid operand
608#CHECK: vstrlr	%v0, %r0, 4096
609#CHECK: error: %r0 used in an address
610#CHECK: vstrlr	%v0, %r0, 0(%r0)
611
612	vstrlr	%v0, %r0, -1
613	vstrlr	%v0, %r0, 4096
614	vstrlr	%v0, %r0, 0(%r0)
615
616#CHECK: error: invalid operand
617#CHECK: vupkz	%v0, 0, -1
618#CHECK: error: invalid operand
619#CHECK: vupkz	%v0, 0, 256
620#CHECK: error: invalid operand
621#CHECK: vupkz	%v0, -1, 0
622#CHECK: error: invalid operand
623#CHECK: vupkz	%v0, 4096, 0
624#CHECK: error: %r0 used in an address
625#CHECK: vupkz	%v0, 0(%r0), 0
626
627	vupkz	%v0, 0, -1
628	vupkz	%v0, 0, 256
629	vupkz	%v0, -1, 0
630	vupkz	%v0, 4096, 0
631	vupkz	%v0, 0(%r0), 0
632
633#CHECK: error: invalid operand
634#CHECK: wfisb	%v0, %v0, 0, -1
635#CHECK: error: invalid operand
636#CHECK: wfisb	%v0, %v0, 0, 16
637#CHECK: error: invalid operand
638#CHECK: wfisb	%v0, %v0, -1, 0
639#CHECK: error: invalid operand
640#CHECK: wfisb	%v0, %v0, 16, 0
641
642	wfisb	%v0, %v0, 0, -1
643	wfisb	%v0, %v0, 0, 16
644	wfisb	%v0, %v0, -1, 0
645	wfisb	%v0, %v0, 16, 0
646
647#CHECK: error: invalid operand
648#CHECK: wfixb	%v0, %v0, 0, -1
649#CHECK: error: invalid operand
650#CHECK: wfixb	%v0, %v0, 0, 16
651#CHECK: error: invalid operand
652#CHECK: wfixb	%v0, %v0, -1, 0
653#CHECK: error: invalid operand
654#CHECK: wfixb	%v0, %v0, 16, 0
655
656	wfixb	%v0, %v0, 0, -1
657	wfixb	%v0, %v0, 0, 16
658	wfixb	%v0, %v0, -1, 0
659	wfixb	%v0, %v0, 16, 0
660
661#CHECK: error: invalid operand
662#CHECK: wflrd	%v0, %v0, 0, -1
663#CHECK: error: invalid operand
664#CHECK: wflrd	%v0, %v0, 0, 16
665#CHECK: error: invalid operand
666#CHECK: wflrd	%v0, %v0, -1, 0
667#CHECK: error: invalid operand
668#CHECK: wflrd	%v0, %v0, 16, 0
669
670	wflrd	%v0, %v0, 0, -1
671	wflrd	%v0, %v0, 0, 16
672	wflrd	%v0, %v0, -1, 0
673	wflrd	%v0, %v0, 16, 0
674
675#CHECK: error: invalid operand
676#CHECK: wflrx	%v0, %v0, 0, -1
677#CHECK: error: invalid operand
678#CHECK: wflrx	%v0, %v0, 0, 16
679#CHECK: error: invalid operand
680#CHECK: wflrx	%v0, %v0, -1, 0
681#CHECK: error: invalid operand
682#CHECK: wflrx	%v0, %v0, 16, 0
683
684	wflrx	%v0, %v0, 0, -1
685	wflrx	%v0, %v0, 0, 16
686	wflrx	%v0, %v0, -1, 0
687	wflrx	%v0, %v0, 16, 0
688
689#CHECK: error: invalid operand
690#CHECK: wfmaxdb	%v0, %v0, %v0, -1
691#CHECK: error: invalid operand
692#CHECK: wfmaxdb	%v0, %v0, %v0, 16
693
694	wfmaxdb	%v0, %v0, %v0, -1
695	wfmaxdb	%v0, %v0, %v0, 16
696
697#CHECK: error: invalid operand
698#CHECK: wfmaxsb	%v0, %v0, %v0, -1
699#CHECK: error: invalid operand
700#CHECK: wfmaxsb	%v0, %v0, %v0, 16
701
702	wfmaxsb	%v0, %v0, %v0, -1
703	wfmaxsb	%v0, %v0, %v0, 16
704
705#CHECK: error: invalid operand
706#CHECK: wfmaxxb	%v0, %v0, %v0, -1
707#CHECK: error: invalid operand
708#CHECK: wfmaxxb	%v0, %v0, %v0, 16
709
710	wfmaxxb	%v0, %v0, %v0, -1
711	wfmaxxb	%v0, %v0, %v0, 16
712
713#CHECK: error: invalid operand
714#CHECK: wfmindb	%v0, %v0, %v0, -1
715#CHECK: error: invalid operand
716#CHECK: wfmindb	%v0, %v0, %v0, 16
717
718	wfmindb	%v0, %v0, %v0, -1
719	wfmindb	%v0, %v0, %v0, 16
720
721#CHECK: error: invalid operand
722#CHECK: wfminsb	%v0, %v0, %v0, -1
723#CHECK: error: invalid operand
724#CHECK: wfminsb	%v0, %v0, %v0, 16
725
726	wfminsb	%v0, %v0, %v0, -1
727	wfminsb	%v0, %v0, %v0, 16
728
729#CHECK: error: invalid operand
730#CHECK: wfminxb	%v0, %v0, %v0, -1
731#CHECK: error: invalid operand
732#CHECK: wfminxb	%v0, %v0, %v0, 16
733
734	wfminxb	%v0, %v0, %v0, -1
735	wfminxb	%v0, %v0, %v0, 16
736
737#CHECK: error: invalid operand
738#CHECK: wftcisb	%v0, %v0, -1
739#CHECK: error: invalid operand
740#CHECK: wftcisb	%v0, %v0, 4096
741
742	wftcisb	%v0, %v0, -1
743	wftcisb	%v0, %v0, 4096
744
745#CHECK: error: invalid operand
746#CHECK: wftcixb	%v0, %v0, -1
747#CHECK: error: invalid operand
748#CHECK: wftcixb	%v0, %v0, 4096
749
750	wftcixb	%v0, %v0, -1
751	wftcixb	%v0, %v0, 4096
752
753