2 # RUN: not llvm-mc -triple s390x-linux-gnu -mcpu=z196 < %s 2> %t
3 # RUN: FileCheck < %t %s
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
12 aghik %r0, %r1, -32769
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
27 #CHECK: error: invalid operand
28 #CHECK: aih %r0, (-1 << 31) - 1
29 #CHECK: error: invalid operand
30 #CHECK: aih %r0, (1 << 31)
32 aih %r0, (-1 << 31) - 1
35 #CHECK: error: invalid operand
36 #CHECK: chf %r0, -524289
37 #CHECK: error: invalid operand
38 #CHECK: chf %r0, 524288
43 #CHECK: error: invalid operand
44 #CHECK: cih %r0, (-1 << 31) - 1
45 #CHECK: error: invalid operand
46 #CHECK: cih %r0, (1 << 31)
48 cih %r0, (-1 << 31) - 1
51 #CHECK: error: invalid operand
52 #CHECK: clhf %r0, -524289
53 #CHECK: error: invalid operand
54 #CHECK: clhf %r0, 524288
59 #CHECK: error: invalid operand
61 #CHECK: error: invalid operand
62 #CHECK: clih %r0, (1 << 32)
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
76 fidbra %f0, 0, %f0, -1
77 fidbra %f0, 0, %f0, 16
78 fidbra %f0, -1, %f0, 0
79 fidbra %f0, 16, %f0, 0
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
90 fiebra %f0, 0, %f0, -1
91 fiebra %f0, 0, %f0, 16
92 fiebra %f0, -1, %f0, 0
93 fiebra %f0, 16, %f0, 0
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
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
115 #CHECK: error: invalid operand
116 #CHECK: lbh %r0, -524289
117 #CHECK: error: invalid operand
118 #CHECK: lbh %r0, 524288
123 #CHECK: error: invalid operand
124 #CHECK: lfh %r0, -524289
125 #CHECK: error: invalid operand
126 #CHECK: lfh %r0, 524288
131 #CHECK: error: invalid operand
132 #CHECK: lhh %r0, -524289
133 #CHECK: error: invalid operand
134 #CHECK: lhh %r0, 524288
139 #CHECK: error: invalid operand
140 #CHECK: llch %r0, -524289
141 #CHECK: error: invalid operand
142 #CHECK: llch %r0, 524288
147 #CHECK: error: invalid operand
148 #CHECK: llhh %r0, -524289
149 #CHECK: error: invalid operand
150 #CHECK: llhh %r0, 524288
155 #CHECK: error: invalid operand
157 #CHECK: error: invalid operand
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
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
187 locg %r0,0(%r1,%r2),1
189 #CHECK: error: invalid operand
190 #CHECK: locgr %r0,%r0,-1
191 #CHECK: error: invalid operand
192 #CHECK: locgr %r0,%r0,16
197 #CHECK: error: invalid operand
198 #CHECK: locr %r0,%r0,-1
199 #CHECK: error: invalid operand
200 #CHECK: locr %r0,%r0,16
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
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
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
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
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)
257 sllk %r0,%r0,0(%r1,%r2)
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)
271 srak %r0,%r0,0(%r1,%r2)
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)
285 srlk %r0,%r0,0(%r1,%r2)
287 #CHECK: error: invalid operand
288 #CHECK: stch %r0, -524289
289 #CHECK: error: invalid operand
290 #CHECK: stch %r0, 524288
295 #CHECK: error: invalid operand
296 #CHECK: sthh %r0, -524289
297 #CHECK: error: invalid operand
298 #CHECK: sthh %r0, 524288
303 #CHECK: error: invalid operand
304 #CHECK: stfh %r0, -524289
305 #CHECK: error: invalid operand
306 #CHECK: stfh %r0, 524288
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
326 stoc %r0,0(%r1,%r2),1
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
343 stocg %r0,0(%r1,%r2),1