1# For z15 only.
2# RUN: not llvm-mc -triple s390x-linux-gnu -mcpu=z15 < %s 2> %t
3# RUN: FileCheck < %t %s
4# RUN: not llvm-mc -triple s390x-linux-gnu -mcpu=arch13 < %s 2> %t
5# RUN: FileCheck < %t %s
6
7#CHECK: error: invalid register pair
8#CHECK: dfltcc	%r1, %r2, %r4
9#CHECK: error: invalid register pair
10#CHECK: dfltcc	%r2, %r1, %r4
11
12	dfltcc	%r1, %r2, %r4
13	dfltcc	%r2, %r1, %r4
14
15#CHECK: error: invalid register pair
16#CHECK: kdsa	%r0, %r1
17
18	kdsa	%r0, %r1
19
20#CHECK: error: invalid operand
21#CHECK: ldrv	%f0, -1
22#CHECK: error: invalid operand
23#CHECK: ldrv	%f0, 4096
24#CHECK: error: invalid use of vector addressing
25#CHECK: ldrv	%f0, 0(%v1,%r2)
26
27	ldrv	%f0, -1
28	ldrv	%f0, 4096
29	ldrv	%f0, 0(%v1,%r2)
30
31#CHECK: error: invalid operand
32#CHECK: lerv	%f0, -1
33#CHECK: error: invalid operand
34#CHECK: lerv	%f0, 4096
35#CHECK: error: invalid use of vector addressing
36#CHECK: lerv	%f0, 0(%v1,%r2)
37
38	lerv	%f0, -1
39	lerv	%f0, 4096
40	lerv	%f0, 0(%v1,%r2)
41
42#CHECK: error: invalid use of indexed addressing
43#CHECK: mvcrl	160(%r1,%r15),160(%r15)
44#CHECK: error: invalid operand
45#CHECK: mvcrl	-1(%r1),160(%r15)
46#CHECK: error: invalid operand
47#CHECK: mvcrl	4096(%r1),160(%r15)
48#CHECK: error: invalid operand
49#CHECK: mvcrl	0(%r1),-1(%r15)
50#CHECK: error: invalid operand
51#CHECK: mvcrl	0(%r1),4096(%r15)
52
53        mvcrl	160(%r1,%r15),160(%r15)
54        mvcrl	-1(%r1),160(%r15)
55        mvcrl	4096(%r1),160(%r15)
56        mvcrl	0(%r1),-1(%r15)
57        mvcrl	0(%r1),4096(%r15)
58
59#CHECK: error: invalid operand
60#CHECK: popcnt	%r2, %r4, -1
61#CHECK: error: invalid operand
62#CHECK: popcnt	%r2, %r4, 16
63
64	popcnt	%r2, %r4, -1
65	popcnt	%r2, %r4, 16
66
67#CHECK: error: invalid operand
68#CHECK: selgr	%r0, %r0, %r0, -1
69#CHECK: error: invalid operand
70#CHECK: selgr	%r0, %r0, %r0, 16
71
72	selgr	%r0, %r0, %r0, -1
73	selgr	%r0, %r0, %r0, 16
74
75#CHECK: error: invalid operand
76#CHECK: selfhr	%r0, %r0, %r0, -1
77#CHECK: error: invalid operand
78#CHECK: selfhr	%r0, %r0, %r0, 16
79
80	selfhr	%r0, %r0, %r0, -1
81	selfhr	%r0, %r0, %r0, 16
82
83#CHECK: error: invalid operand
84#CHECK: selr	%r0, %r0, %r0, -1
85#CHECK: error: invalid operand
86#CHECK: selr	%r0, %r0, %r0, 16
87
88	selr	%r0, %r0, %r0, -1
89	selr	%r0, %r0, %r0, 16
90
91#CHECK: error: invalid register pair
92#CHECK: sortl	%r1, %r2
93#CHECK: error: invalid register pair
94#CHECK: sortl	%r2, %r1
95
96	sortl	%r1, %r2
97	sortl	%r2, %r1
98
99#CHECK: error: invalid operand
100#CHECK: stdrv	%f0, -1
101#CHECK: error: invalid operand
102#CHECK: stdrv	%f0, 4096
103#CHECK: error: invalid use of vector addressing
104#CHECK: stdrv	%f0, 0(%v1,%r2)
105
106	stdrv	%f0, -1
107	stdrv	%f0, 4096
108	stdrv	%f0, 0(%v1,%r2)
109
110#CHECK: error: invalid operand
111#CHECK: sterv	%f0, -1
112#CHECK: error: invalid operand
113#CHECK: sterv	%f0, 4096
114#CHECK: error: invalid use of vector addressing
115#CHECK: sterv	%f0, 0(%v1,%r2)
116
117	sterv	%f0, -1
118	sterv	%f0, 4096
119	sterv	%f0, 0(%v1,%r2)
120
121#CHECK: error: invalid operand
122#CHECK: vcefb	%v0, %v0, 0, -1
123#CHECK: error: invalid operand
124#CHECK: vcefb	%v0, %v0, 0, 16
125#CHECK: error: invalid operand
126#CHECK: vcefb	%v0, %v0, -1, 0
127#CHECK: error: invalid operand
128#CHECK: vcefb	%v0, %v0, 16, 0
129
130	vcefb	%v0, %v0, 0, -1
131	vcefb	%v0, %v0, 0, 16
132	vcefb	%v0, %v0, -1, 0
133	vcefb	%v0, %v0, 16, 0
134
135#CHECK: error: invalid operand
136#CHECK: vcelfb	%v0, %v0, 0, -1
137#CHECK: error: invalid operand
138#CHECK: vcelfb	%v0, %v0, 0, 16
139#CHECK: error: invalid operand
140#CHECK: vcelfb	%v0, %v0, -1, 0
141#CHECK: error: invalid operand
142#CHECK: vcelfb	%v0, %v0, 16, 0
143
144	vcelfb	%v0, %v0, 0, -1
145	vcelfb	%v0, %v0, 0, 16
146	vcelfb	%v0, %v0, -1, 0
147	vcelfb	%v0, %v0, 16, 0
148
149#CHECK: error: invalid operand
150#CHECK: vcfeb	%v0, %v0, 0, -1
151#CHECK: error: invalid operand
152#CHECK: vcfeb	%v0, %v0, 0, 16
153#CHECK: error: invalid operand
154#CHECK: vcfeb	%v0, %v0, -1, 0
155#CHECK: error: invalid operand
156#CHECK: vcfeb	%v0, %v0, 16, 0
157
158	vcfeb	%v0, %v0, 0, -1
159	vcfeb	%v0, %v0, 0, 16
160	vcfeb	%v0, %v0, -1, 0
161	vcfeb	%v0, %v0, 16, 0
162
163#CHECK: error: invalid operand
164#CHECK: vcfpl	%v0, %v0, 0, 0, -1
165#CHECK: error: invalid operand
166#CHECK: vcfpl	%v0, %v0, 0, 0, 16
167#CHECK: error: invalid operand
168#CHECK: vcfpl	%v0, %v0, 0, -1, 0
169#CHECK: error: invalid operand
170#CHECK: vcfpl	%v0, %v0, 0, 16, 0
171#CHECK: error: invalid operand
172#CHECK: vcfpl	%v0, %v0, -1, 0, 0
173#CHECK: error: invalid operand
174#CHECK: vcfpl	%v0, %v0, 16, 0, 0
175
176	vcfpl	%v0, %v0, 0, 0, -1
177	vcfpl	%v0, %v0, 0, 0, 16
178	vcfpl	%v0, %v0, 0, -1, 0
179	vcfpl	%v0, %v0, 0, 16, 0
180	vcfpl	%v0, %v0, -1, 0, 0
181	vcfpl	%v0, %v0, 16, 0, 0
182
183#CHECK: error: invalid operand
184#CHECK: vcfps	%v0, %v0, 0, 0, -1
185#CHECK: error: invalid operand
186#CHECK: vcfps	%v0, %v0, 0, 0, 16
187#CHECK: error: invalid operand
188#CHECK: vcfps	%v0, %v0, 0, -1, 0
189#CHECK: error: invalid operand
190#CHECK: vcfps	%v0, %v0, 0, 16, 0
191#CHECK: error: invalid operand
192#CHECK: vcfps	%v0, %v0, -1, 0, 0
193#CHECK: error: invalid operand
194#CHECK: vcfps	%v0, %v0, 16, 0, 0
195
196	vcfps	%v0, %v0, 0, 0, -1
197	vcfps	%v0, %v0, 0, 0, 16
198	vcfps	%v0, %v0, 0, -1, 0
199	vcfps	%v0, %v0, 0, 16, 0
200	vcfps	%v0, %v0, -1, 0, 0
201	vcfps	%v0, %v0, 16, 0, 0
202
203#CHECK: error: invalid operand
204#CHECK: vclfeb	%v0, %v0, 0, -1
205#CHECK: error: invalid operand
206#CHECK: vclfeb	%v0, %v0, 0, 16
207#CHECK: error: invalid operand
208#CHECK: vclfeb	%v0, %v0, -1, 0
209#CHECK: error: invalid operand
210#CHECK: vclfeb	%v0, %v0, 16, 0
211
212	vclfeb	%v0, %v0, 0, -1
213	vclfeb	%v0, %v0, 0, 16
214	vclfeb	%v0, %v0, -1, 0
215	vclfeb	%v0, %v0, 16, 0
216
217#CHECK: error: invalid operand
218#CHECK: vclfp	%v0, %v0, 0, 0, -1
219#CHECK: error: invalid operand
220#CHECK: vclfp	%v0, %v0, 0, 0, 16
221#CHECK: error: invalid operand
222#CHECK: vclfp	%v0, %v0, 0, -1, 0
223#CHECK: error: invalid operand
224#CHECK: vclfp	%v0, %v0, 0, 16, 0
225#CHECK: error: invalid operand
226#CHECK: vclfp	%v0, %v0, -1, 0, 0
227#CHECK: error: invalid operand
228#CHECK: vclfp	%v0, %v0, 16, 0, 0
229
230	vclfp	%v0, %v0, 0, 0, -1
231	vclfp	%v0, %v0, 0, 0, 16
232	vclfp	%v0, %v0, 0, -1, 0
233	vclfp	%v0, %v0, 0, 16, 0
234	vclfp	%v0, %v0, -1, 0, 0
235	vclfp	%v0, %v0, 16, 0, 0
236
237#CHECK: error: invalid operand
238#CHECK: vcsfp	%v0, %v0, 0, 0, -1
239#CHECK: error: invalid operand
240#CHECK: vcsfp	%v0, %v0, 0, 0, 16
241#CHECK: error: invalid operand
242#CHECK: vcsfp	%v0, %v0, 0, -1, 0
243#CHECK: error: invalid operand
244#CHECK: vcsfp	%v0, %v0, 0, 16, 0
245#CHECK: error: invalid operand
246#CHECK: vcsfp	%v0, %v0, -1, 0, 0
247#CHECK: error: invalid operand
248#CHECK: vcsfp	%v0, %v0, 16, 0, 0
249
250	vcsfp	%v0, %v0, 0, 0, -1
251	vcsfp	%v0, %v0, 0, 0, 16
252	vcsfp	%v0, %v0, 0, -1, 0
253	vcsfp	%v0, %v0, 0, 16, 0
254	vcsfp	%v0, %v0, -1, 0, 0
255	vcsfp	%v0, %v0, 16, 0, 0
256
257#CHECK: error: invalid operand
258#CHECK: vcvb	%r0, %v0, 0, -1
259#CHECK: error: invalid operand
260#CHECK: vcvb	%r0, %v0, 0, 16
261
262	vcvb	%r0, %v0, 0, -1
263	vcvb	%r0, %v0, 0, 16
264
265#CHECK: error: invalid operand
266#CHECK: vcvbg	%r0, %v0, 0, -1
267#CHECK: error: invalid operand
268#CHECK: vcvbg	%r0, %v0, 0, 16
269
270	vcvbg	%r0, %v0, 0, -1
271	vcvbg	%r0, %v0, 0, 16
272
273#CHECK: error: invalid operand
274#CHECK: vlbr	%v0, 0, -1
275#CHECK: error: invalid operand
276#CHECK: vlbr	%v0, 0, 16
277#CHECK: error: invalid operand
278#CHECK: vlbr	%v0, -1, 0
279#CHECK: error: invalid operand
280#CHECK: vlbr	%v0, 4096, 0
281#CHECK: error: invalid use of vector addressing
282#CHECK: vlbr	%v0, 0(%v1,%r2), 0
283
284	vlbr	%v0, 0, -1
285	vlbr	%v0, 0, 16
286	vlbr	%v0, -1, 0
287	vlbr	%v0, 4096, 0
288	vlbr	%v0, 0(%v1,%r2), 0
289
290#CHECK: error: invalid operand
291#CHECK: vlbrf	%v0, -1
292#CHECK: error: invalid operand
293#CHECK: vlbrf	%v0, 4096
294#CHECK: error: invalid use of vector addressing
295#CHECK: vlbrf	%v0, 0(%v1,%r2)
296
297	vlbrf	%v0, -1
298	vlbrf	%v0, 4096
299	vlbrf	%v0, 0(%v1,%r2)
300
301#CHECK: error: invalid operand
302#CHECK: vlbrg	%v0, -1
303#CHECK: error: invalid operand
304#CHECK: vlbrg	%v0, 4096
305#CHECK: error: invalid use of vector addressing
306#CHECK: vlbrg	%v0, 0(%v1,%r2)
307
308	vlbrg	%v0, -1
309	vlbrg	%v0, 4096
310	vlbrg	%v0, 0(%v1,%r2)
311
312#CHECK: error: invalid operand
313#CHECK: vlbrh	%v0, -1
314#CHECK: error: invalid operand
315#CHECK: vlbrh	%v0, 4096
316#CHECK: error: invalid use of vector addressing
317#CHECK: vlbrh	%v0, 0(%v1,%r2)
318
319	vlbrh	%v0, -1
320	vlbrh	%v0, 4096
321	vlbrh	%v0, 0(%v1,%r2)
322
323#CHECK: error: invalid operand
324#CHECK: vlbrq	%v0, -1
325#CHECK: error: invalid operand
326#CHECK: vlbrq	%v0, 4096
327#CHECK: error: invalid use of vector addressing
328#CHECK: vlbrq	%v0, 0(%v1,%r2)
329
330	vlbrq	%v0, -1
331	vlbrq	%v0, 4096
332	vlbrq	%v0, 0(%v1,%r2)
333
334#CHECK: error: invalid operand
335#CHECK: vlbrrep	%v0, 0, -1
336#CHECK: error: invalid operand
337#CHECK: vlbrrep	%v0, 0, 16
338#CHECK: error: invalid operand
339#CHECK: vlbrrep	%v0, -1, 0
340#CHECK: error: invalid operand
341#CHECK: vlbrrep	%v0, 4096, 0
342#CHECK: error: invalid use of vector addressing
343#CHECK: vlbrrep	%v0, 0(%v1,%r2), 0
344
345	vlbrrep	%v0, 0, -1
346	vlbrrep	%v0, 0, 16
347	vlbrrep	%v0, -1, 0
348	vlbrrep	%v0, 4096, 0
349	vlbrrep	%v0, 0(%v1,%r2), 0
350
351#CHECK: error: invalid operand
352#CHECK: vlbrrepf %v0, -1
353#CHECK: error: invalid operand
354#CHECK: vlbrrepf %v0, 4096
355#CHECK: error: invalid use of vector addressing
356#CHECK: vlbrrepf %v0, 0(%v1,%r2)
357
358	vlbrrepf %v0, -1
359	vlbrrepf %v0, 4096
360	vlbrrepf %v0, 0(%v1,%r2)
361
362#CHECK: error: invalid operand
363#CHECK: vlbrrepg %v0, -1
364#CHECK: error: invalid operand
365#CHECK: vlbrrepg %v0, 4096
366#CHECK: error: invalid use of vector addressing
367#CHECK: vlbrrepg %v0, 0(%v1,%r2)
368
369	vlbrrepg %v0, -1
370	vlbrrepg %v0, 4096
371	vlbrrepg %v0, 0(%v1,%r2)
372
373#CHECK: error: invalid operand
374#CHECK: vlbrreph %v0, -1
375#CHECK: error: invalid operand
376#CHECK: vlbrreph %v0, 4096
377#CHECK: error: invalid use of vector addressing
378#CHECK: vlbrreph %v0, 0(%v1,%r2)
379
380	vlbrreph %v0, -1
381	vlbrreph %v0, 4096
382	vlbrreph %v0, 0(%v1,%r2)
383
384#CHECK: error: invalid operand
385#CHECK: vlebrf	%v0, 0, -1
386#CHECK: error: invalid operand
387#CHECK: vlebrf	%v0, 0, 4
388#CHECK: error: invalid operand
389#CHECK: vlebrf	%v0, -1, 0
390#CHECK: error: invalid operand
391#CHECK: vlebrf	%v0, 4096, 0
392#CHECK: error: invalid use of vector addressing
393#CHECK: vlebrf	%v0, 0(%v1,%r2), 0
394
395	vlebrf	%v0, 0, -1
396	vlebrf	%v0, 0, 4
397	vlebrf	%v0, -1, 0
398	vlebrf	%v0, 4096, 0
399	vlebrf	%v0, 0(%v1,%r2), 0
400
401#CHECK: error: invalid operand
402#CHECK: vlebrg	%v0, 0, -1
403#CHECK: error: invalid operand
404#CHECK: vlebrg	%v0, 0, 2
405#CHECK: error: invalid operand
406#CHECK: vlebrg	%v0, -1, 0
407#CHECK: error: invalid operand
408#CHECK: vlebrg	%v0, 4096, 0
409#CHECK: error: invalid use of vector addressing
410#CHECK: vlebrg	%v0, 0(%v1,%r2), 0
411
412	vlebrg	%v0, 0, -1
413	vlebrg	%v0, 0, 2
414	vlebrg	%v0, -1, 0
415	vlebrg	%v0, 4096, 0
416	vlebrg	%v0, 0(%v1,%r2), 0
417
418#CHECK: error: invalid operand
419#CHECK: vlebrh	%v0, 0, -1
420#CHECK: error: invalid operand
421#CHECK: vlebrh	%v0, 0, 8
422#CHECK: error: invalid operand
423#CHECK: vlebrh	%v0, -1, 0
424#CHECK: error: invalid operand
425#CHECK: vlebrh	%v0, 4096, 0
426#CHECK: error: invalid use of vector addressing
427#CHECK: vlebrh	%v0, 0(%v1,%r2), 0
428
429	vlebrh	%v0, 0, -1
430	vlebrh	%v0, 0, 8
431	vlebrh	%v0, -1, 0
432	vlebrh	%v0, 4096, 0
433	vlebrh	%v0, 0(%v1,%r2), 0
434
435#CHECK: error: invalid operand
436#CHECK: vler	%v0, 0, -1
437#CHECK: error: invalid operand
438#CHECK: vler	%v0, 0, 16
439#CHECK: error: invalid operand
440#CHECK: vler	%v0, -1, 0
441#CHECK: error: invalid operand
442#CHECK: vler	%v0, 4096, 0
443#CHECK: error: invalid use of vector addressing
444#CHECK: vler	%v0, 0(%v1,%r2), 0
445
446	vler	%v0, 0, -1
447	vler	%v0, 0, 16
448	vler	%v0, -1, 0
449	vler	%v0, 4096, 0
450	vler	%v0, 0(%v1,%r2), 0
451
452#CHECK: error: invalid operand
453#CHECK: vlerf	%v0, -1
454#CHECK: error: invalid operand
455#CHECK: vlerf	%v0, 4096
456#CHECK: error: invalid use of vector addressing
457#CHECK: vlerf	%v0, 0(%v1,%r2)
458
459	vlerf	%v0, -1
460	vlerf	%v0, 4096
461	vlerf	%v0, 0(%v1,%r2)
462
463#CHECK: error: invalid operand
464#CHECK: vlerg	%v0, -1
465#CHECK: error: invalid operand
466#CHECK: vlerg	%v0, 4096
467#CHECK: error: invalid use of vector addressing
468#CHECK: vlerg	%v0, 0(%v1,%r2)
469
470	vlerg	%v0, -1
471	vlerg	%v0, 4096
472	vlerg	%v0, 0(%v1,%r2)
473
474#CHECK: error: invalid operand
475#CHECK: vlerh	%v0, -1
476#CHECK: error: invalid operand
477#CHECK: vlerh	%v0, 4096
478#CHECK: error: invalid use of vector addressing
479#CHECK: vlerh	%v0, 0(%v1,%r2)
480
481	vlerh	%v0, -1
482	vlerh	%v0, 4096
483	vlerh	%v0, 0(%v1,%r2)
484
485#CHECK: error: invalid operand
486#CHECK: vllebrz	%v0, 0, -1
487#CHECK: error: invalid operand
488#CHECK: vllebrz	%v0, 0, 16
489#CHECK: error: invalid operand
490#CHECK: vllebrz	%v0, -1, 0
491#CHECK: error: invalid operand
492#CHECK: vllebrz	%v0, 4096, 0
493#CHECK: error: invalid use of vector addressing
494#CHECK: vllebrz	%v0, 0(%v1,%r2), 0
495
496	vllebrz	%v0, 0, -1
497	vllebrz	%v0, 0, 16
498	vllebrz	%v0, -1, 0
499	vllebrz	%v0, 4096, 0
500	vllebrz	%v0, 0(%v1,%r2), 0
501
502#CHECK: error: invalid operand
503#CHECK: vllebrze	%v0, -1
504#CHECK: error: invalid operand
505#CHECK: vllebrze	%v0, 4096
506#CHECK: error: invalid use of vector addressing
507#CHECK: vllebrze	%v0, 0(%v1,%r2)
508
509	vllebrze	%v0, -1
510	vllebrze	%v0, 4096
511	vllebrze	%v0, 0(%v1,%r2)
512
513#CHECK: error: invalid operand
514#CHECK: vllebrzf	%v0, -1
515#CHECK: error: invalid operand
516#CHECK: vllebrzf	%v0, 4096
517#CHECK: error: invalid use of vector addressing
518#CHECK: vllebrzf	%v0, 0(%v1,%r2)
519
520	vllebrzf	%v0, -1
521	vllebrzf	%v0, 4096
522	vllebrzf	%v0, 0(%v1,%r2)
523
524#CHECK: error: invalid operand
525#CHECK: vllebrzg	%v0, -1
526#CHECK: error: invalid operand
527#CHECK: vllebrzg	%v0, 4096
528#CHECK: error: invalid use of vector addressing
529#CHECK: vllebrzg	%v0, 0(%v1,%r2)
530
531	vllebrzg	%v0, -1
532	vllebrzg	%v0, 4096
533	vllebrzg	%v0, 0(%v1,%r2)
534
535#CHECK: error: invalid operand
536#CHECK: vllebrzh	%v0, -1
537#CHECK: error: invalid operand
538#CHECK: vllebrzh	%v0, 4096
539#CHECK: error: invalid use of vector addressing
540#CHECK: vllebrzh	%v0, 0(%v1,%r2)
541
542	vllebrzh	%v0, -1
543	vllebrzh	%v0, 4096
544	vllebrzh	%v0, 0(%v1,%r2)
545
546#CHECK: error: invalid operand
547#CHECK: vsld	%v0, %v0, %v0, -1
548#CHECK: error: invalid operand
549#CHECK: vsld	%v0, %v0, %v0, 256
550
551	vsld	%v0, %v0, %v0, -1
552	vsld	%v0, %v0, %v0, 256
553
554#CHECK: error: invalid operand
555#CHECK: vsrd	%v0, %v0, %v0, -1
556#CHECK: error: invalid operand
557#CHECK: vsrd	%v0, %v0, %v0, 256
558
559	vsrd	%v0, %v0, %v0, -1
560	vsrd	%v0, %v0, %v0, 256
561
562#CHECK: error: invalid operand
563#CHECK: vstbr	%v0, 0, -1
564#CHECK: error: invalid operand
565#CHECK: vstbr	%v0, 0, 16
566#CHECK: error: invalid operand
567#CHECK: vstbr	%v0, -1, 0
568#CHECK: error: invalid operand
569#CHECK: vstbr	%v0, 4096, 0
570#CHECK: error: invalid use of vector addressing
571#CHECK: vstbr	%v0, 0(%v1,%r2), 0
572
573	vstbr	%v0, 0, -1
574	vstbr	%v0, 0, 16
575	vstbr	%v0, -1, 0
576	vstbr	%v0, 4096, 0
577	vstbr	%v0, 0(%v1,%r2), 0
578
579#CHECK: error: invalid operand
580#CHECK: vstbrf	%v0, -1
581#CHECK: error: invalid operand
582#CHECK: vstbrf	%v0, 4096
583#CHECK: error: invalid use of vector addressing
584#CHECK: vstbrf	%v0, 0(%v1,%r2)
585
586	vstbrf	%v0, -1
587	vstbrf	%v0, 4096
588	vstbrf	%v0, 0(%v1,%r2)
589
590#CHECK: error: invalid operand
591#CHECK: vstbrg	%v0, -1
592#CHECK: error: invalid operand
593#CHECK: vstbrg	%v0, 4096
594#CHECK: error: invalid use of vector addressing
595#CHECK: vstbrg	%v0, 0(%v1,%r2)
596
597	vstbrg	%v0, -1
598	vstbrg	%v0, 4096
599	vstbrg	%v0, 0(%v1,%r2)
600
601#CHECK: error: invalid operand
602#CHECK: vstbrh	%v0, -1
603#CHECK: error: invalid operand
604#CHECK: vstbrh	%v0, 4096
605#CHECK: error: invalid use of vector addressing
606#CHECK: vstbrh	%v0, 0(%v1,%r2)
607
608	vstbrh	%v0, -1
609	vstbrh	%v0, 4096
610	vstbrh	%v0, 0(%v1,%r2)
611
612#CHECK: error: invalid operand
613#CHECK: vstbrq	%v0, -1
614#CHECK: error: invalid operand
615#CHECK: vstbrq	%v0, 4096
616#CHECK: error: invalid use of vector addressing
617#CHECK: vstbrq	%v0, 0(%v1,%r2)
618
619	vstbrq	%v0, -1
620	vstbrq	%v0, 4096
621	vstbrq	%v0, 0(%v1,%r2)
622
623#CHECK: error: invalid operand
624#CHECK: vstebrf	%v0, 0, -1
625#CHECK: error: invalid operand
626#CHECK: vstebrf	%v0, 0, 4
627#CHECK: error: invalid operand
628#CHECK: vstebrf	%v0, -1, 0
629#CHECK: error: invalid operand
630#CHECK: vstebrf	%v0, 4096, 0
631#CHECK: error: invalid use of vector addressing
632#CHECK: vstebrf	%v0, 0(%v1,%r2), 0
633
634	vstebrf	%v0, 0, -1
635	vstebrf	%v0, 0, 4
636	vstebrf	%v0, -1, 0
637	vstebrf	%v0, 4096, 0
638	vstebrf	%v0, 0(%v1,%r2), 0
639
640#CHECK: error: invalid operand
641#CHECK: vstebrg	%v0, 0, -1
642#CHECK: error: invalid operand
643#CHECK: vstebrg	%v0, 0, 2
644#CHECK: error: invalid operand
645#CHECK: vstebrg	%v0, -1, 0
646#CHECK: error: invalid operand
647#CHECK: vstebrg	%v0, 4096, 0
648#CHECK: error: invalid use of vector addressing
649#CHECK: vstebrg	%v0, 0(%v1,%r2), 0
650
651	vstebrg	%v0, 0, -1
652	vstebrg	%v0, 0, 2
653	vstebrg	%v0, -1, 0
654	vstebrg	%v0, 4096, 0
655	vstebrg	%v0, 0(%v1,%r2), 0
656
657#CHECK: error: invalid operand
658#CHECK: vstebrh	%v0, 0, -1
659#CHECK: error: invalid operand
660#CHECK: vstebrh	%v0, 0, 8
661#CHECK: error: invalid operand
662#CHECK: vstebrh	%v0, -1, 0
663#CHECK: error: invalid operand
664#CHECK: vstebrh	%v0, 4096, 0
665#CHECK: error: invalid use of vector addressing
666#CHECK: vstebrh	%v0, 0(%v1,%r2), 0
667
668	vstebrh	%v0, 0, -1
669	vstebrh	%v0, 0, 8
670	vstebrh	%v0, -1, 0
671	vstebrh	%v0, 4096, 0
672	vstebrh	%v0, 0(%v1,%r2), 0
673
674#CHECK: error: invalid operand
675#CHECK: vster	%v0, 0, -1
676#CHECK: error: invalid operand
677#CHECK: vster	%v0, 0, 16
678#CHECK: error: invalid operand
679#CHECK: vster	%v0, -1, 0
680#CHECK: error: invalid operand
681#CHECK: vster	%v0, 4096, 0
682#CHECK: error: invalid use of vector addressing
683#CHECK: vster	%v0, 0(%v1,%r2), 0
684
685	vster	%v0, 0, -1
686	vster	%v0, 0, 16
687	vster	%v0, -1, 0
688	vster	%v0, 4096, 0
689	vster	%v0, 0(%v1,%r2), 0
690
691#CHECK: error: invalid operand
692#CHECK: vsterf	%v0, -1
693#CHECK: error: invalid operand
694#CHECK: vsterf	%v0, 4096
695#CHECK: error: invalid use of vector addressing
696#CHECK: vsterf	%v0, 0(%v1,%r2)
697
698	vsterf	%v0, -1
699	vsterf	%v0, 4096
700	vsterf	%v0, 0(%v1,%r2)
701
702#CHECK: error: invalid operand
703#CHECK: vsterg	%v0, -1
704#CHECK: error: invalid operand
705#CHECK: vsterg	%v0, 4096
706#CHECK: error: invalid use of vector addressing
707#CHECK: vsterg	%v0, 0(%v1,%r2)
708
709	vsterg	%v0, -1
710	vsterg	%v0, 4096
711	vsterg	%v0, 0(%v1,%r2)
712
713#CHECK: error: invalid operand
714#CHECK: vsterh	%v0, -1
715#CHECK: error: invalid operand
716#CHECK: vsterh	%v0, 4096
717#CHECK: error: invalid use of vector addressing
718#CHECK: vsterh	%v0, 0(%v1,%r2)
719
720	vsterh	%v0, -1
721	vsterh	%v0, 4096
722	vsterh	%v0, 0(%v1,%r2)
723
724#CHECK: error: invalid operand
725#CHECK: vstrs    %v0, %v0, %v0, %v0, 0, -1
726#CHECK: error: invalid operand
727#CHECK: vstrs    %v0, %v0, %v0, %v0, 0, 16
728#CHECK: error: invalid operand
729#CHECK: vstrs    %v0, %v0, %v0, %v0, -1, 0
730#CHECK: error: invalid operand
731#CHECK: vstrs    %v0, %v0, %v0, %v0, 16, 0
732#CHECK: error: too few operands
733#CHECK: vstrs    %v0, %v0, %v0, %v0
734#CHECK: error: invalid operand
735#CHECK: vstrs    %v0, %v0, %v0, %v0, 0, 0, 0
736
737	vstrs    %v0, %v0, %v0, %v0, 0, -1
738	vstrs    %v0, %v0, %v0, %v0, 0, 16
739	vstrs    %v0, %v0, %v0, %v0, -1, 0
740	vstrs    %v0, %v0, %v0, %v0, 16, 0
741	vstrs    %v0, %v0, %v0, %v0
742	vstrs    %v0, %v0, %v0, %v0, 0, 0, 0
743
744#CHECK: error: invalid operand
745#CHECK: vstrsb   %v0, %v0, %v0, %v0, -1
746#CHECK: error: invalid operand
747#CHECK: vstrsb   %v0, %v0, %v0, %v0, 16
748#CHECK: error: too few operands
749#CHECK: vstrsb   %v0, %v0, %v0
750#CHECK: error: invalid operand
751#CHECK: vstrsb   %v0, %v0, %v0, %v0, 0, 0
752
753	vstrsb   %v0, %v0, %v0, %v0, -1
754	vstrsb   %v0, %v0, %v0, %v0, 16
755	vstrsb   %v0, %v0, %v0
756	vstrsb   %v0, %v0, %v0, %v0, 0, 0
757
758#CHECK: error: invalid operand
759#CHECK: vstrsf   %v0, %v0, %v0, %v0, -1
760#CHECK: error: invalid operand
761#CHECK: vstrsf   %v0, %v0, %v0, %v0, 16
762#CHECK: error: too few operands
763#CHECK: vstrsf   %v0, %v0, %v0
764#CHECK: error: invalid operand
765#CHECK: vstrsf   %v0, %v0, %v0, %v0, 0, 0
766
767	vstrsf   %v0, %v0, %v0, %v0, -1
768	vstrsf   %v0, %v0, %v0, %v0, 16
769	vstrsf   %v0, %v0, %v0
770	vstrsf   %v0, %v0, %v0, %v0, 0, 0
771
772#CHECK: error: invalid operand
773#CHECK: vstrsh   %v0, %v0, %v0, %v0, -1
774#CHECK: error: invalid operand
775#CHECK: vstrsh   %v0, %v0, %v0, %v0, 16
776#CHECK: error: too few operands
777#CHECK: vstrsh   %v0, %v0, %v0
778#CHECK: error: invalid operand
779#CHECK: vstrsh   %v0, %v0, %v0, %v0, 0, 0
780
781	vstrsh   %v0, %v0, %v0, %v0, -1
782	vstrsh   %v0, %v0, %v0, %v0, 16
783	vstrsh   %v0, %v0, %v0
784	vstrsh   %v0, %v0, %v0, %v0, 0, 0
785
786#CHECK: error: invalid operand
787#CHECK: vstrszb  %v0, %v0, %v0, %v0, -1
788#CHECK: error: invalid operand
789#CHECK: vstrszb  %v0, %v0, %v0, %v0, 16
790#CHECK: error: too few operands
791#CHECK: vstrszb  %v0, %v0, %v0
792#CHECK: error: invalid operand
793#CHECK: vstrszb  %v0, %v0, %v0, %v0, 0, 0
794
795	vstrszb  %v0, %v0, %v0, %v0, -1
796	vstrszb  %v0, %v0, %v0, %v0, 16
797	vstrszb  %v0, %v0, %v0
798	vstrszb  %v0, %v0, %v0, %v0, 0, 0
799
800#CHECK: error: invalid operand
801#CHECK: vstrszf  %v0, %v0, %v0, %v0, -1
802#CHECK: error: invalid operand
803#CHECK: vstrszf  %v0, %v0, %v0, %v0, 16
804#CHECK: error: too few operands
805#CHECK: vstrszf  %v0, %v0, %v0
806#CHECK: error: invalid operand
807#CHECK: vstrszf  %v0, %v0, %v0, %v0, 0, 0
808
809	vstrszf  %v0, %v0, %v0, %v0, -1
810	vstrszf  %v0, %v0, %v0, %v0, 16
811	vstrszf  %v0, %v0, %v0
812	vstrszf  %v0, %v0, %v0, %v0, 0, 0
813
814#CHECK: error: invalid operand
815#CHECK: vstrszh  %v0, %v0, %v0, %v0, -1
816#CHECK: error: invalid operand
817#CHECK: vstrszh  %v0, %v0, %v0, %v0, 16
818#CHECK: error: too few operands
819#CHECK: vstrszh  %v0, %v0, %v0
820#CHECK: error: invalid operand
821#CHECK: vstrszh  %v0, %v0, %v0, %v0, 0, 0
822
823	vstrszh  %v0, %v0, %v0, %v0, -1
824	vstrszh  %v0, %v0, %v0, %v0, 16
825	vstrszh  %v0, %v0, %v0
826	vstrszh  %v0, %v0, %v0, %v0, 0, 0
827
828#CHECK: error: invalid operand
829#CHECK: wcefb	%v0, %v0, 0, -1
830#CHECK: error: invalid operand
831#CHECK: wcefb	%v0, %v0, 0, 16
832#CHECK: error: invalid operand
833#CHECK: wcefb	%v0, %v0, -1, 0
834#CHECK: error: invalid operand
835#CHECK: wcefb	%v0, %v0, 16, 0
836
837	wcefb	%v0, %v0, 0, -1
838	wcefb	%v0, %v0, 0, 16
839	wcefb	%v0, %v0, -1, 0
840	wcefb	%v0, %v0, 16, 0
841
842#CHECK: error: invalid operand
843#CHECK: wcelfb	%v0, %v0, 0, -1
844#CHECK: error: invalid operand
845#CHECK: wcelfb	%v0, %v0, 0, 16
846#CHECK: error: invalid operand
847#CHECK: wcelfb	%v0, %v0, -1, 0
848#CHECK: error: invalid operand
849#CHECK: wcelfb	%v0, %v0, 16, 0
850
851	wcelfb	%v0, %v0, 0, -1
852	wcelfb	%v0, %v0, 0, 16
853	wcelfb	%v0, %v0, -1, 0
854	wcelfb	%v0, %v0, 16, 0
855
856#CHECK: error: invalid operand
857#CHECK: wcfeb	%v0, %v0, 0, -1
858#CHECK: error: invalid operand
859#CHECK: wcfeb	%v0, %v0, 0, 16
860#CHECK: error: invalid operand
861#CHECK: wcfeb	%v0, %v0, -1, 0
862#CHECK: error: invalid operand
863#CHECK: wcfeb	%v0, %v0, 16, 0
864
865	wcfeb	%v0, %v0, 0, -1
866	wcfeb	%v0, %v0, 0, 16
867	wcfeb	%v0, %v0, -1, 0
868	wcfeb	%v0, %v0, 16, 0
869
870#CHECK: error: invalid operand
871#CHECK: wclfeb	%v0, %v0, 0, -1
872#CHECK: error: invalid operand
873#CHECK: wclfeb	%v0, %v0, 0, 16
874#CHECK: error: invalid operand
875#CHECK: wclfeb	%v0, %v0, -1, 0
876#CHECK: error: invalid operand
877#CHECK: wclfeb	%v0, %v0, 16, 0
878
879	wclfeb	%v0, %v0, 0, -1
880	wclfeb	%v0, %v0, 0, 16
881	wclfeb	%v0, %v0, -1, 0
882	wclfeb	%v0, %v0, 16, 0
883
884