1# For z196 only.
2# RUN: not llvm-mc -triple s390x-linux-gnu -mcpu=z196 < %s 2> %t
3# RUN: FileCheck < %t %s
4
5#CHECK: error: invalid operand
6#CHECK: aghik	%r0, %r1, -32769
7#CHECK: error: invalid operand
8#CHECK: aghik	%r0, %r1, 32768
9#CHECK: error: invalid operand
10#CHECK: aghik	%r0, %r1, foo
11
12	aghik	%r0, %r1, -32769
13	aghik	%r0, %r1, 32768
14	aghik	%r0, %r1, foo
15
16#CHECK: error: invalid operand
17#CHECK: ahik	%r0, %r1, -32769
18#CHECK: error: invalid operand
19#CHECK: ahik	%r0, %r1, 32768
20#CHECK: error: invalid operand
21#CHECK: ahik	%r0, %r1, foo
22
23	ahik	%r0, %r1, -32769
24	ahik	%r0, %r1, 32768
25	ahik	%r0, %r1, foo
26
27#CHECK: error: invalid operand
28#CHECK: aih	%r0, (-1 << 31) - 1
29#CHECK: error: invalid operand
30#CHECK: aih	%r0, (1 << 31)
31
32	aih	%r0, (-1 << 31) - 1
33	aih	%r0, (1 << 31)
34
35#CHECK: error: invalid operand
36#CHECK: chf	%r0, -524289
37#CHECK: error: invalid operand
38#CHECK: chf	%r0, 524288
39
40	chf	%r0, -524289
41	chf	%r0, 524288
42
43#CHECK: error: invalid operand
44#CHECK: cih	%r0, (-1 << 31) - 1
45#CHECK: error: invalid operand
46#CHECK: cih	%r0, (1 << 31)
47
48	cih	%r0, (-1 << 31) - 1
49	cih	%r0, (1 << 31)
50
51#CHECK: error: invalid operand
52#CHECK: clhf	%r0, -524289
53#CHECK: error: invalid operand
54#CHECK: clhf	%r0, 524288
55
56	clhf	%r0, -524289
57	clhf	%r0, 524288
58
59#CHECK: error: invalid operand
60#CHECK: clih	%r0, -1
61#CHECK: error: invalid operand
62#CHECK: clih	%r0, (1 << 32)
63
64	clih	%r0, -1
65	clih	%r0, (1 << 32)
66
67#CHECK: error: invalid operand
68#CHECK: fidbra	%f0, 0, %f0, -1
69#CHECK: error: invalid operand
70#CHECK: fidbra	%f0, 0, %f0, 16
71#CHECK: error: invalid operand
72#CHECK: fidbra	%f0, -1, %f0, 0
73#CHECK: error: invalid operand
74#CHECK: fidbra	%f0, 16, %f0, 0
75
76	fidbra	%f0, 0, %f0, -1
77	fidbra	%f0, 0, %f0, 16
78	fidbra	%f0, -1, %f0, 0
79	fidbra	%f0, 16, %f0, 0
80
81#CHECK: error: invalid operand
82#CHECK: fiebra	%f0, 0, %f0, -1
83#CHECK: error: invalid operand
84#CHECK: fiebra	%f0, 0, %f0, 16
85#CHECK: error: invalid operand
86#CHECK: fiebra	%f0, -1, %f0, 0
87#CHECK: error: invalid operand
88#CHECK: fiebra	%f0, 16, %f0, 0
89
90	fiebra	%f0, 0, %f0, -1
91	fiebra	%f0, 0, %f0, 16
92	fiebra	%f0, -1, %f0, 0
93	fiebra	%f0, 16, %f0, 0
94
95#CHECK: error: invalid operand
96#CHECK: fixbra	%f0, 0, %f0, -1
97#CHECK: error: invalid operand
98#CHECK: fixbra	%f0, 0, %f0, 16
99#CHECK: error: invalid operand
100#CHECK: fixbra	%f0, -1, %f0, 0
101#CHECK: error: invalid operand
102#CHECK: fixbra	%f0, 16, %f0, 0
103#CHECK: error: invalid register pair
104#CHECK: fixbra	%f0, 0, %f2, 0
105#CHECK: error: invalid register pair
106#CHECK: fixbra	%f2, 0, %f0, 0
107
108	fixbra	%f0, 0, %f0, -1
109	fixbra	%f0, 0, %f0, 16
110	fixbra	%f0, -1, %f0, 0
111	fixbra	%f0, 16, %f0, 0
112	fixbra	%f0, 0, %f2, 0
113	fixbra	%f2, 0, %f0, 0
114
115#CHECK: error: invalid operand
116#CHECK: lbh	%r0, -524289
117#CHECK: error: invalid operand
118#CHECK: lbh	%r0, 524288
119
120	lbh	%r0, -524289
121	lbh	%r0, 524288
122
123#CHECK: error: invalid operand
124#CHECK: lfh	%r0, -524289
125#CHECK: error: invalid operand
126#CHECK: lfh	%r0, 524288
127
128	lfh	%r0, -524289
129	lfh	%r0, 524288
130
131#CHECK: error: invalid operand
132#CHECK: lhh	%r0, -524289
133#CHECK: error: invalid operand
134#CHECK: lhh	%r0, 524288
135
136	lhh	%r0, -524289
137	lhh	%r0, 524288
138
139#CHECK: error: invalid operand
140#CHECK: llch	%r0, -524289
141#CHECK: error: invalid operand
142#CHECK: llch	%r0, 524288
143
144	llch	%r0, -524289
145	llch	%r0, 524288
146
147#CHECK: error: invalid operand
148#CHECK: llhh	%r0, -524289
149#CHECK: error: invalid operand
150#CHECK: llhh	%r0, 524288
151
152	llhh	%r0, -524289
153	llhh	%r0, 524288
154
155#CHECK: error: invalid operand
156#CHECK: loc	%r0,0,-1
157#CHECK: error: invalid operand
158#CHECK: loc	%r0,0,16
159#CHECK: error: invalid operand
160#CHECK: loc	%r0,-524289,1
161#CHECK: error: invalid operand
162#CHECK: loc	%r0,524288,1
163#CHECK: error: invalid use of indexed addressing
164#CHECK: loc	%r0,0(%r1,%r2),1
165
166	loc	%r0,0,-1
167	loc	%r0,0,16
168	loc	%r0,-524289,1
169	loc	%r0,524288,1
170	loc	%r0,0(%r1,%r2),1
171
172#CHECK: error: invalid operand
173#CHECK: locg	%r0,0,-1
174#CHECK: error: invalid operand
175#CHECK: locg	%r0,0,16
176#CHECK: error: invalid operand
177#CHECK: locg	%r0,-524289,1
178#CHECK: error: invalid operand
179#CHECK: locg	%r0,524288,1
180#CHECK: error: invalid use of indexed addressing
181#CHECK: locg	%r0,0(%r1,%r2),1
182
183	locg	%r0,0,-1
184	locg	%r0,0,16
185	locg	%r0,-524289,1
186	locg	%r0,524288,1
187	locg	%r0,0(%r1,%r2),1
188
189#CHECK: error: invalid operand
190#CHECK: locgr	%r0,%r0,-1
191#CHECK: error: invalid operand
192#CHECK: locgr	%r0,%r0,16
193
194	locgr	%r0,%r0,-1
195	locgr	%r0,%r0,16
196
197#CHECK: error: invalid operand
198#CHECK: locr	%r0,%r0,-1
199#CHECK: error: invalid operand
200#CHECK: locr	%r0,%r0,16
201
202	locr	%r0,%r0,-1
203	locr	%r0,%r0,16
204
205#CHECK: error: invalid operand
206#CHECK: risbhg	%r0,%r0,0,0,-1
207#CHECK: error: invalid operand
208#CHECK: risbhg	%r0,%r0,0,0,64
209#CHECK: error: invalid operand
210#CHECK: risbhg	%r0,%r0,0,-1,0
211#CHECK: error: invalid operand
212#CHECK: risbhg	%r0,%r0,0,256,0
213#CHECK: error: invalid operand
214#CHECK: risbhg	%r0,%r0,-1,0,0
215#CHECK: error: invalid operand
216#CHECK: risbhg	%r0,%r0,256,0,0
217
218	risbhg	%r0,%r0,0,0,-1
219	risbhg	%r0,%r0,0,0,64
220	risbhg	%r0,%r0,0,-1,0
221	risbhg	%r0,%r0,0,256,0
222	risbhg	%r0,%r0,-1,0,0
223	risbhg	%r0,%r0,256,0,0
224
225#CHECK: error: invalid operand
226#CHECK: risblg	%r0,%r0,0,0,-1
227#CHECK: error: invalid operand
228#CHECK: risblg	%r0,%r0,0,0,64
229#CHECK: error: invalid operand
230#CHECK: risblg	%r0,%r0,0,-1,0
231#CHECK: error: invalid operand
232#CHECK: risblg	%r0,%r0,0,256,0
233#CHECK: error: invalid operand
234#CHECK: risblg	%r0,%r0,-1,0,0
235#CHECK: error: invalid operand
236#CHECK: risblg	%r0,%r0,256,0,0
237
238	risblg	%r0,%r0,0,0,-1
239	risblg	%r0,%r0,0,0,64
240	risblg	%r0,%r0,0,-1,0
241	risblg	%r0,%r0,0,256,0
242	risblg	%r0,%r0,-1,0,0
243	risblg	%r0,%r0,256,0,0
244
245#CHECK: error: invalid operand
246#CHECK: sllk	%r0,%r0,-524289
247#CHECK: error: invalid operand
248#CHECK: sllk	%r0,%r0,524288
249#CHECK: error: %r0 used in an address
250#CHECK: sllk	%r0,%r0,0(%r0)
251#CHECK: error: invalid use of indexed addressing
252#CHECK: sllk	%r0,%r0,0(%r1,%r2)
253
254	sllk	%r0,%r0,-524289
255	sllk	%r0,%r0,524288
256	sllk	%r0,%r0,0(%r0)
257	sllk	%r0,%r0,0(%r1,%r2)
258
259#CHECK: error: invalid operand
260#CHECK: srak	%r0,%r0,-524289
261#CHECK: error: invalid operand
262#CHECK: srak	%r0,%r0,524288
263#CHECK: error: %r0 used in an address
264#CHECK: srak	%r0,%r0,0(%r0)
265#CHECK: error: invalid use of indexed addressing
266#CHECK: srak	%r0,%r0,0(%r1,%r2)
267
268	srak	%r0,%r0,-524289
269	srak	%r0,%r0,524288
270	srak	%r0,%r0,0(%r0)
271	srak	%r0,%r0,0(%r1,%r2)
272
273#CHECK: error: invalid operand
274#CHECK: srlk	%r0,%r0,-524289
275#CHECK: error: invalid operand
276#CHECK: srlk	%r0,%r0,524288
277#CHECK: error: %r0 used in an address
278#CHECK: srlk	%r0,%r0,0(%r0)
279#CHECK: error: invalid use of indexed addressing
280#CHECK: srlk	%r0,%r0,0(%r1,%r2)
281
282	srlk	%r0,%r0,-524289
283	srlk	%r0,%r0,524288
284	srlk	%r0,%r0,0(%r0)
285	srlk	%r0,%r0,0(%r1,%r2)
286
287#CHECK: error: invalid operand
288#CHECK: stch	%r0, -524289
289#CHECK: error: invalid operand
290#CHECK: stch	%r0, 524288
291
292	stch	%r0, -524289
293	stch	%r0, 524288
294
295#CHECK: error: invalid operand
296#CHECK: sthh	%r0, -524289
297#CHECK: error: invalid operand
298#CHECK: sthh	%r0, 524288
299
300	sthh	%r0, -524289
301	sthh	%r0, 524288
302
303#CHECK: error: invalid operand
304#CHECK: stfh	%r0, -524289
305#CHECK: error: invalid operand
306#CHECK: stfh	%r0, 524288
307
308	stfh	%r0, -524289
309	stfh	%r0, 524288
310
311#CHECK: error: invalid operand
312#CHECK: stoc	%r0,0,-1
313#CHECK: error: invalid operand
314#CHECK: stoc	%r0,0,16
315#CHECK: error: invalid operand
316#CHECK: stoc	%r0,-524289,1
317#CHECK: error: invalid operand
318#CHECK: stoc	%r0,524288,1
319#CHECK: error: invalid use of indexed addressing
320#CHECK: stoc	%r0,0(%r1,%r2),1
321
322	stoc	%r0,0,-1
323	stoc	%r0,0,16
324	stoc	%r0,-524289,1
325	stoc	%r0,524288,1
326	stoc	%r0,0(%r1,%r2),1
327
328#CHECK: error: invalid operand
329#CHECK: stocg	%r0,0,-1
330#CHECK: error: invalid operand
331#CHECK: stocg	%r0,0,16
332#CHECK: error: invalid operand
333#CHECK: stocg	%r0,-524289,1
334#CHECK: error: invalid operand
335#CHECK: stocg	%r0,524288,1
336#CHECK: error: invalid use of indexed addressing
337#CHECK: stocg	%r0,0(%r1,%r2),1
338
339	stocg	%r0,0,-1
340	stocg	%r0,0,16
341	stocg	%r0,-524289,1
342	stocg	%r0,524288,1
343	stocg	%r0,0(%r1,%r2),1
344