xref: /llvm-project/llvm/test/MC/SystemZ/insn-bad-arch15.s (revision 8424bf207efd89eacf2fe893b67be98d535e1db6)
1# For arch15 only.
2# RUN: not llvm-mc -triple s390x-linux-gnu -mcpu=arch15 < %s 2> %t
3# RUN: FileCheck < %t %s
4
5#CHECK: error: invalid use of indexed addressing
6#CHECK: cal	%r2, 160(%r1,%r15), 160(%r15)
7#CHECK: error: invalid operand
8#CHECK: cal	%r2, -1(%r1), 160(%r15)
9#CHECK: error: invalid operand
10#CHECK: cal	%r2, 4096(%r1), 160(%r15)
11#CHECK: error: invalid operand
12#CHECK: cal	%r2, 0(%r1), -1(%r15)
13#CHECK: error: invalid operand
14#CHECK: cal	%r2, 0(%r1), 4096(%r15)
15
16	cal	%r2, 160(%r1,%r15), 160(%r15)
17	cal	%r2, -1(%r1), 160(%r15)
18	cal	%r2, 4096(%r1), 160(%r15)
19	cal	%r2, 0(%r1), -1(%r15)
20	cal	%r2, 0(%r1), 4096(%r15)
21
22#CHECK: error: invalid use of indexed addressing
23#CHECK: calg	%r2, 160(%r1,%r15), 160(%r15)
24#CHECK: error: invalid operand
25#CHECK: calg	%r2, -1(%r1), 160(%r15)
26#CHECK: error: invalid operand
27#CHECK: calg	%r2, 4096(%r1), 160(%r15)
28#CHECK: error: invalid operand
29#CHECK: calg	%r2, 0(%r1), -1(%r15)
30#CHECK: error: invalid operand
31#CHECK: calg	%r2, 0(%r1), 4096(%r15)
32
33	calg	%r2, 160(%r1,%r15), 160(%r15)
34	calg	%r2, -1(%r1), 160(%r15)
35	calg	%r2, 4096(%r1), 160(%r15)
36	calg	%r2, 0(%r1), -1(%r15)
37	calg	%r2, 0(%r1), 4096(%r15)
38
39#CHECK: error: invalid use of indexed addressing
40#CHECK: calgf	%r2, 160(%r1,%r15), 160(%r15)
41#CHECK: error: invalid operand
42#CHECK: calgf	%r2, -1(%r1), 160(%r15)
43#CHECK: error: invalid operand
44#CHECK: calgf	%r2, 4096(%r1), 160(%r15)
45#CHECK: error: invalid operand
46#CHECK: calgf	%r2, 0(%r1), -1(%r15)
47#CHECK: error: invalid operand
48#CHECK: calgf	%r2, 0(%r1), 4096(%r15)
49
50	calgf	%r2, 160(%r1,%r15), 160(%r15)
51	calgf	%r2, -1(%r1), 160(%r15)
52	calgf	%r2, 4096(%r1), 160(%r15)
53	calgf	%r2, 0(%r1), -1(%r15)
54	calgf	%r2, 0(%r1), 4096(%r15)
55
56#CHECK: error: invalid operand
57#CHECK: kimd	%r0, %r0, -1
58#CHECK: error: invalid operand
59#CHECK: kimd	%r0, %r0, 16
60
61	kimd	%r0, %r0, -1
62	kimd	%r0, %r0, 16
63
64#CHECK: error: invalid operand
65#CHECK: klmd	%r0, %r0, -1
66#CHECK: error: invalid operand
67#CHECK: klmd	%r0, %r0, 16
68
69	klmd	%r0, %r0, -1
70	klmd	%r0, %r0, 16
71
72#CHECK: error: invalid operand
73#CHECK: lxab	%r0, -524289
74#CHECK: error: invalid operand
75#CHECK: lxab	%r0, 524288
76
77	lxab	%r0, -524289
78	lxab	%r0, 524288
79
80#CHECK: error: invalid operand
81#CHECK: lxah	%r0, -524289
82#CHECK: error: invalid operand
83#CHECK: lxah	%r0, 524288
84
85	lxah	%r0, -524289
86	lxah	%r0, 524288
87
88#CHECK: error: invalid operand
89#CHECK: lxaf	%r0, -524289
90#CHECK: error: invalid operand
91#CHECK: lxaf	%r0, 524288
92
93	lxaf	%r0, -524289
94	lxaf	%r0, 524288
95
96#CHECK: error: invalid operand
97#CHECK: lxag	%r0, -524289
98#CHECK: error: invalid operand
99#CHECK: lxag	%r0, 524288
100
101	lxag	%r0, -524289
102	lxag	%r0, 524288
103
104#CHECK: error: invalid operand
105#CHECK: lxaq	%r0, -524289
106#CHECK: error: invalid operand
107#CHECK: lxaq	%r0, 524288
108
109	lxaq	%r0, -524289
110	lxaq	%r0, 524288
111
112#CHECK: error: invalid operand
113#CHECK: llxab	%r0, -524289
114#CHECK: error: invalid operand
115#CHECK: llxab	%r0, 524288
116
117	llxab	%r0, -524289
118	llxab	%r0, 524288
119
120#CHECK: error: invalid operand
121#CHECK: llxah	%r0, -524289
122#CHECK: error: invalid operand
123#CHECK: llxah	%r0, 524288
124
125	llxah	%r0, -524289
126	llxah	%r0, 524288
127
128#CHECK: error: invalid operand
129#CHECK: llxaf	%r0, -524289
130#CHECK: error: invalid operand
131#CHECK: llxaf	%r0, 524288
132
133	llxaf	%r0, -524289
134	llxaf	%r0, 524288
135
136#CHECK: error: invalid operand
137#CHECK: llxag	%r0, -524289
138#CHECK: error: invalid operand
139#CHECK: llxag	%r0, 524288
140
141	llxag	%r0, -524289
142	llxag	%r0, 524288
143
144#CHECK: error: invalid operand
145#CHECK: llxaq	%r0, -524289
146#CHECK: error: invalid operand
147#CHECK: llxaq	%r0, 524288
148
149	llxaq	%r0, -524289
150	llxaq	%r0, 524288
151
152#CHECK: error: invalid operand
153#CHECK: pfcr	%r0, %r0, -524289
154#CHECK: error: invalid operand
155#CHECK: pfcr	%r0, %r0, 524288
156#CHECK: error: invalid use of indexed addressing
157#CHECK: pfcr	%r0, %r0, 0(%r1,%r2)
158
159	pfcr	%r0, %r0, -524289
160	pfcr	%r0, %r0, 524288
161	pfcr	%r0, %r0, 0(%r1,%r2)
162
163#CHECK: error: invalid operand
164#CHECK: vcvbq	%v0, %v0, -1
165#CHECK: error: invalid operand
166#CHECK: vcvbq	%v0, %v0, 16
167
168	vcvbq	%v0, %v0, -1
169	vcvbq	%v0, %v0, 16
170
171#CHECK: error: invalid operand
172#CHECK: vcvdq	%v0, %v0, 0, -1
173#CHECK: error: invalid operand
174#CHECK: vcvdq	%v0, %v0, 0, 16
175#CHECK: error: invalid operand
176#CHECK: vcvdq	%v0, %v0, -1, 0
177#CHECK: error: invalid operand
178#CHECK: vcvdq	%v0, %v0, 256, 0
179
180	vcvdq	%v0, %v0, 0, -1
181	vcvdq	%v0, %v0, 0, 16
182	vcvdq	%v0, %v0, -1, 0
183	vcvdq	%v0, %v0, 256, 0
184
185#CHECK: error: invalid operand
186#CHECK: vd	%v0, %v0, %v0, 0, -1
187#CHECK: error: invalid operand
188#CHECK: vd	%v0, %v0, %v0, 0, 16
189#CHECK: error: invalid operand
190#CHECK: vd	%v0, %v0, %v0, -1, 0
191#CHECK: error: invalid operand
192#CHECK: vd	%v0, %v0, %v0, 16, 0
193
194	vd	%v0, %v0, %v0, 0, -1
195	vd	%v0, %v0, %v0, 0, 16
196	vd	%v0, %v0, %v0, -1, 0
197	vd	%v0, %v0, %v0, 16, 0
198
199#CHECK: error: invalid operand
200#CHECK: vdf	%v0, %v0, %v0, -1
201#CHECK: error: invalid operand
202#CHECK: vdf	%v0, %v0, %v0, 16
203
204	vdf	%v0, %v0, %v0, -1
205	vdf	%v0, %v0, %v0, 16
206
207#CHECK: error: invalid operand
208#CHECK: vdg	%v0, %v0, %v0, -1
209#CHECK: error: invalid operand
210#CHECK: vdg	%v0, %v0, %v0, 16
211
212	vdg	%v0, %v0, %v0, -1
213	vdg	%v0, %v0, %v0, 16
214
215#CHECK: error: invalid operand
216#CHECK: vdq	%v0, %v0, %v0, -1
217#CHECK: error: invalid operand
218#CHECK: vdq	%v0, %v0, %v0, 16
219
220	vdq	%v0, %v0, %v0, -1
221	vdq	%v0, %v0, %v0, 16
222
223#CHECK: error: invalid operand
224#CHECK: vdl	%v0, %v0, %v0, 0, -1
225#CHECK: error: invalid operand
226#CHECK: vdl	%v0, %v0, %v0, 0, 16
227#CHECK: error: invalid operand
228#CHECK: vdl	%v0, %v0, %v0, -1, 0
229#CHECK: error: invalid operand
230#CHECK: vdl	%v0, %v0, %v0, 16, 0
231
232	vdl	%v0, %v0, %v0, 0, -1
233	vdl	%v0, %v0, %v0, 0, 16
234	vdl	%v0, %v0, %v0, -1, 0
235	vdl	%v0, %v0, %v0, 16, 0
236
237#CHECK: error: invalid operand
238#CHECK: vdlf	%v0, %v0, %v0, -1
239#CHECK: error: invalid operand
240#CHECK: vdlf	%v0, %v0, %v0, 16
241
242	vdlf	%v0, %v0, %v0, -1
243	vdlf	%v0, %v0, %v0, 16
244
245#CHECK: error: invalid operand
246#CHECK: vdlg	%v0, %v0, %v0, -1
247#CHECK: error: invalid operand
248#CHECK: vdlg	%v0, %v0, %v0, 16
249
250	vdlg	%v0, %v0, %v0, -1
251	vdlg	%v0, %v0, %v0, 16
252
253#CHECK: error: invalid operand
254#CHECK: vdlq	%v0, %v0, %v0, -1
255#CHECK: error: invalid operand
256#CHECK: vdlq	%v0, %v0, %v0, 16
257
258	vdlq	%v0, %v0, %v0, -1
259	vdlq	%v0, %v0, %v0, 16
260
261#CHECK: error: invalid operand
262#CHECK: veval	%v0, %v0, %v0, %v0, -1
263#CHECK: error: invalid operand
264#CHECK: veval	%v0, %v0, %v0, %v0, 256
265
266	veval	%v0, %v0, %v0, %v0, -1
267	veval	%v0, %v0, %v0, %v0, 256
268
269#CHECK: error: invalid operand
270#CHECK: vr	%v0, %v0, %v0, 0, -1
271#CHECK: error: invalid operand
272#CHECK: vr	%v0, %v0, %v0, 0, 16
273#CHECK: error: invalid operand
274#CHECK: vr	%v0, %v0, %v0, -1, 0
275#CHECK: error: invalid operand
276#CHECK: vr	%v0, %v0, %v0, 16, 0
277
278	vr	%v0, %v0, %v0, 0, -1
279	vr	%v0, %v0, %v0, 0, 16
280	vr	%v0, %v0, %v0, -1, 0
281	vr	%v0, %v0, %v0, 16, 0
282
283#CHECK: error: invalid operand
284#CHECK: vrf	%v0, %v0, %v0, -1
285#CHECK: error: invalid operand
286#CHECK: vrf	%v0, %v0, %v0, 16
287
288	vrf	%v0, %v0, %v0, -1
289	vrf	%v0, %v0, %v0, 16
290
291#CHECK: error: invalid operand
292#CHECK: vrg	%v0, %v0, %v0, -1
293#CHECK: error: invalid operand
294#CHECK: vrg	%v0, %v0, %v0, 16
295
296	vrg	%v0, %v0, %v0, -1
297	vrg	%v0, %v0, %v0, 16
298
299#CHECK: error: invalid operand
300#CHECK: vrq	%v0, %v0, %v0, -1
301#CHECK: error: invalid operand
302#CHECK: vrq	%v0, %v0, %v0, 16
303
304	vrq	%v0, %v0, %v0, -1
305	vrq	%v0, %v0, %v0, 16
306
307#CHECK: error: invalid operand
308#CHECK: vrl	%v0, %v0, %v0, 0, -1
309#CHECK: error: invalid operand
310#CHECK: vrl	%v0, %v0, %v0, 0, 16
311#CHECK: error: invalid operand
312#CHECK: vrl	%v0, %v0, %v0, -1, 0
313#CHECK: error: invalid operand
314#CHECK: vrl	%v0, %v0, %v0, 16, 0
315
316	vrl	%v0, %v0, %v0, 0, -1
317	vrl	%v0, %v0, %v0, 0, 16
318	vrl	%v0, %v0, %v0, -1, 0
319	vrl	%v0, %v0, %v0, 16, 0
320
321#CHECK: error: invalid operand
322#CHECK: vrlf	%v0, %v0, %v0, -1
323#CHECK: error: invalid operand
324#CHECK: vrlf	%v0, %v0, %v0, 16
325
326	vrlf	%v0, %v0, %v0, -1
327	vrlf	%v0, %v0, %v0, 16
328
329#CHECK: error: invalid operand
330#CHECK: vrlg	%v0, %v0, %v0, -1
331#CHECK: error: invalid operand
332#CHECK: vrlg	%v0, %v0, %v0, 16
333
334	vrlg	%v0, %v0, %v0, -1
335	vrlg	%v0, %v0, %v0, 16
336
337#CHECK: error: invalid operand
338#CHECK: vrlq	%v0, %v0, %v0, -1
339#CHECK: error: invalid operand
340#CHECK: vrlq	%v0, %v0, %v0, 16
341
342	vrlq	%v0, %v0, %v0, -1
343	vrlq	%v0, %v0, %v0, 16
344
345#CHECK: error: invalid operand
346#CHECK: vtp	%v0, -1
347#CHECK: error: invalid operand
348#CHECK: vtp	%v0, 65536
349
350	vtp	%v0, -1
351	vtp	%v0, 65536
352
353#CHECK: error: invalid operand
354#CHECK: vtz	%v0, %v0, -1
355#CHECK: error: invalid operand
356#CHECK: vtz	%v0, %v0, 65536
357
358	vtz	%v0, %v0, -1
359	vtz	%v0, %v0, 65536
360
361