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: cdlfbr %f0, 0, %r0, -1
37 #CHECK: error: invalid operand
38 #CHECK: cdlfbr %f0, 0, %r0, 16
39 #CHECK: error: invalid operand
40 #CHECK: cdlfbr %f0, -1, %r0, 0
41 #CHECK: error: invalid operand
42 #CHECK: cdlfbr %f0, 16, %r0, 0
44 cdlfbr %f0, 0, %r0, -1
45 cdlfbr %f0, 0, %r0, 16
46 cdlfbr %f0, -1, %r0, 0
47 cdlfbr %f0, 16, %r0, 0
49 #CHECK: error: invalid operand
50 #CHECK: cdlgbr %f0, 0, %r0, -1
51 #CHECK: error: invalid operand
52 #CHECK: cdlgbr %f0, 0, %r0, 16
53 #CHECK: error: invalid operand
54 #CHECK: cdlgbr %f0, -1, %r0, 0
55 #CHECK: error: invalid operand
56 #CHECK: cdlgbr %f0, 16, %r0, 0
58 cdlgbr %f0, 0, %r0, -1
59 cdlgbr %f0, 0, %r0, 16
60 cdlgbr %f0, -1, %r0, 0
61 cdlgbr %f0, 16, %r0, 0
63 #CHECK: error: invalid operand
64 #CHECK: celfbr %f0, 0, %r0, -1
65 #CHECK: error: invalid operand
66 #CHECK: celfbr %f0, 0, %r0, 16
67 #CHECK: error: invalid operand
68 #CHECK: celfbr %f0, -1, %r0, 0
69 #CHECK: error: invalid operand
70 #CHECK: celfbr %f0, 16, %r0, 0
72 celfbr %f0, 0, %r0, -1
73 celfbr %f0, 0, %r0, 16
74 celfbr %f0, -1, %r0, 0
75 celfbr %f0, 16, %r0, 0
77 #CHECK: error: invalid operand
78 #CHECK: celgbr %f0, 0, %r0, -1
79 #CHECK: error: invalid operand
80 #CHECK: celgbr %f0, 0, %r0, 16
81 #CHECK: error: invalid operand
82 #CHECK: celgbr %f0, -1, %r0, 0
83 #CHECK: error: invalid operand
84 #CHECK: celgbr %f0, 16, %r0, 0
86 celgbr %f0, 0, %r0, -1
87 celgbr %f0, 0, %r0, 16
88 celgbr %f0, -1, %r0, 0
89 celgbr %f0, 16, %r0, 0
91 #CHECK: error: invalid operand
92 #CHECK: chf %r0, -524289
93 #CHECK: error: invalid operand
94 #CHECK: chf %r0, 524288
99 #CHECK: error: invalid operand
100 #CHECK: cih %r0, (-1 << 31) - 1
101 #CHECK: error: invalid operand
102 #CHECK: cih %r0, (1 << 31)
104 cih %r0, (-1 << 31) - 1
107 #CHECK: error: invalid operand
108 #CHECK: clfdbr %r0, 0, %f0, -1
109 #CHECK: error: invalid operand
110 #CHECK: clfdbr %r0, 0, %f0, 16
111 #CHECK: error: invalid operand
112 #CHECK: clfdbr %r0, -1, %f0, 0
113 #CHECK: error: invalid operand
114 #CHECK: clfdbr %r0, 16, %f0, 0
116 clfdbr %r0, 0, %f0, -1
117 clfdbr %r0, 0, %f0, 16
118 clfdbr %r0, -1, %f0, 0
119 clfdbr %r0, 16, %f0, 0
121 #CHECK: error: invalid operand
122 #CHECK: clfebr %r0, 0, %f0, -1
123 #CHECK: error: invalid operand
124 #CHECK: clfebr %r0, 0, %f0, 16
125 #CHECK: error: invalid operand
126 #CHECK: clfebr %r0, -1, %f0, 0
127 #CHECK: error: invalid operand
128 #CHECK: clfebr %r0, 16, %f0, 0
130 clfebr %r0, 0, %f0, -1
131 clfebr %r0, 0, %f0, 16
132 clfebr %r0, -1, %f0, 0
133 clfebr %r0, 16, %f0, 0
135 #CHECK: error: invalid operand
136 #CHECK: clfxbr %r0, 0, %f0, -1
137 #CHECK: error: invalid operand
138 #CHECK: clfxbr %r0, 0, %f0, 16
139 #CHECK: error: invalid operand
140 #CHECK: clfxbr %r0, -1, %f0, 0
141 #CHECK: error: invalid operand
142 #CHECK: clfxbr %r0, 16, %f0, 0
143 #CHECK: error: invalid register pair
144 #CHECK: clfxbr %r0, 0, %f14, 0
146 clfxbr %r0, 0, %f0, -1
147 clfxbr %r0, 0, %f0, 16
148 clfxbr %r0, -1, %f0, 0
149 clfxbr %r0, 16, %f0, 0
150 clfxbr %r0, 0, %f14, 0
152 #CHECK: error: invalid operand
153 #CHECK: clgdbr %r0, 0, %f0, -1
154 #CHECK: error: invalid operand
155 #CHECK: clgdbr %r0, 0, %f0, 16
156 #CHECK: error: invalid operand
157 #CHECK: clgdbr %r0, -1, %f0, 0
158 #CHECK: error: invalid operand
159 #CHECK: clgdbr %r0, 16, %f0, 0
161 clgdbr %r0, 0, %f0, -1
162 clgdbr %r0, 0, %f0, 16
163 clgdbr %r0, -1, %f0, 0
164 clgdbr %r0, 16, %f0, 0
166 #CHECK: error: invalid operand
167 #CHECK: clgebr %r0, 0, %f0, -1
168 #CHECK: error: invalid operand
169 #CHECK: clgebr %r0, 0, %f0, 16
170 #CHECK: error: invalid operand
171 #CHECK: clgebr %r0, -1, %f0, 0
172 #CHECK: error: invalid operand
173 #CHECK: clgebr %r0, 16, %f0, 0
175 clgebr %r0, 0, %f0, -1
176 clgebr %r0, 0, %f0, 16
177 clgebr %r0, -1, %f0, 0
178 clgebr %r0, 16, %f0, 0
180 #CHECK: error: invalid operand
181 #CHECK: clgxbr %r0, 0, %f0, -1
182 #CHECK: error: invalid operand
183 #CHECK: clgxbr %r0, 0, %f0, 16
184 #CHECK: error: invalid operand
185 #CHECK: clgxbr %r0, -1, %f0, 0
186 #CHECK: error: invalid operand
187 #CHECK: clgxbr %r0, 16, %f0, 0
188 #CHECK: error: invalid register pair
189 #CHECK: clgxbr %r0, 0, %f14, 0
191 clgxbr %r0, 0, %f0, -1
192 clgxbr %r0, 0, %f0, 16
193 clgxbr %r0, -1, %f0, 0
194 clgxbr %r0, 16, %f0, 0
195 clgxbr %r0, 0, %f14, 0
197 #CHECK: error: invalid operand
198 #CHECK: clhf %r0, -524289
199 #CHECK: error: invalid operand
200 #CHECK: clhf %r0, 524288
205 #CHECK: error: invalid operand
207 #CHECK: error: invalid operand
208 #CHECK: clih %r0, (1 << 32)
213 #CHECK: error: invalid operand
214 #CHECK: cxlfbr %f0, 0, %r0, -1
215 #CHECK: error: invalid operand
216 #CHECK: cxlfbr %f0, 0, %r0, 16
217 #CHECK: error: invalid operand
218 #CHECK: cxlfbr %f0, -1, %r0, 0
219 #CHECK: error: invalid operand
220 #CHECK: cxlfbr %f0, 16, %r0, 0
221 #CHECK: error: invalid register pair
222 #CHECK: cxlfbr %f2, 0, %r0, 0
224 cxlfbr %f0, 0, %r0, -1
225 cxlfbr %f0, 0, %r0, 16
226 cxlfbr %f0, -1, %r0, 0
227 cxlfbr %f0, 16, %r0, 0
228 cxlfbr %f2, 0, %r0, 0
230 #CHECK: error: invalid operand
231 #CHECK: cxlgbr %f0, 0, %r0, -1
232 #CHECK: error: invalid operand
233 #CHECK: cxlgbr %f0, 0, %r0, 16
234 #CHECK: error: invalid operand
235 #CHECK: cxlgbr %f0, -1, %r0, 0
236 #CHECK: error: invalid operand
237 #CHECK: cxlgbr %f0, 16, %r0, 0
238 #CHECK: error: invalid register pair
239 #CHECK: cxlgbr %f2, 0, %r0, 0
241 cxlgbr %f0, 0, %r0, -1
242 cxlgbr %f0, 0, %r0, 16
243 cxlgbr %f0, -1, %r0, 0
244 cxlgbr %f0, 16, %r0, 0
245 cxlgbr %f2, 0, %r0, 0
247 #CHECK: error: invalid operand
248 #CHECK: fidbra %f0, 0, %f0, -1
249 #CHECK: error: invalid operand
250 #CHECK: fidbra %f0, 0, %f0, 16
251 #CHECK: error: invalid operand
252 #CHECK: fidbra %f0, -1, %f0, 0
253 #CHECK: error: invalid operand
254 #CHECK: fidbra %f0, 16, %f0, 0
256 fidbra %f0, 0, %f0, -1
257 fidbra %f0, 0, %f0, 16
258 fidbra %f0, -1, %f0, 0
259 fidbra %f0, 16, %f0, 0
261 #CHECK: error: invalid operand
262 #CHECK: fiebra %f0, 0, %f0, -1
263 #CHECK: error: invalid operand
264 #CHECK: fiebra %f0, 0, %f0, 16
265 #CHECK: error: invalid operand
266 #CHECK: fiebra %f0, -1, %f0, 0
267 #CHECK: error: invalid operand
268 #CHECK: fiebra %f0, 16, %f0, 0
270 fiebra %f0, 0, %f0, -1
271 fiebra %f0, 0, %f0, 16
272 fiebra %f0, -1, %f0, 0
273 fiebra %f0, 16, %f0, 0
275 #CHECK: error: invalid operand
276 #CHECK: fixbra %f0, 0, %f0, -1
277 #CHECK: error: invalid operand
278 #CHECK: fixbra %f0, 0, %f0, 16
279 #CHECK: error: invalid operand
280 #CHECK: fixbra %f0, -1, %f0, 0
281 #CHECK: error: invalid operand
282 #CHECK: fixbra %f0, 16, %f0, 0
283 #CHECK: error: invalid register pair
284 #CHECK: fixbra %f0, 0, %f2, 0
285 #CHECK: error: invalid register pair
286 #CHECK: fixbra %f2, 0, %f0, 0
288 fixbra %f0, 0, %f0, -1
289 fixbra %f0, 0, %f0, 16
290 fixbra %f0, -1, %f0, 0
291 fixbra %f0, 16, %f0, 0
292 fixbra %f0, 0, %f2, 0
293 fixbra %f2, 0, %f0, 0
295 #CHECK: error: invalid operand
296 #CHECK: laa %r0, %r0, -524289
297 #CHECK: error: invalid operand
298 #CHECK: laa %r0, %r0, 524288
299 #CHECK: error: invalid use of indexed addressing
300 #CHECK: laa %r0, %r0, 0(%r1,%r2)
302 laa %r0, %r0, -524289
304 laa %r0, %r0, 0(%r1,%r2)
306 #CHECK: error: invalid operand
307 #CHECK: laag %r0, %r0, -524289
308 #CHECK: error: invalid operand
309 #CHECK: laag %r0, %r0, 524288
310 #CHECK: error: invalid use of indexed addressing
311 #CHECK: laag %r0, %r0, 0(%r1,%r2)
313 laag %r0, %r0, -524289
314 laag %r0, %r0, 524288
315 laag %r0, %r0, 0(%r1,%r2)
317 #CHECK: error: invalid operand
318 #CHECK: laal %r0, %r0, -524289
319 #CHECK: error: invalid operand
320 #CHECK: laal %r0, %r0, 524288
321 #CHECK: error: invalid use of indexed addressing
322 #CHECK: laal %r0, %r0, 0(%r1,%r2)
324 laal %r0, %r0, -524289
325 laal %r0, %r0, 524288
326 laal %r0, %r0, 0(%r1,%r2)
328 #CHECK: error: invalid operand
329 #CHECK: laalg %r0, %r0, -524289
330 #CHECK: error: invalid operand
331 #CHECK: laalg %r0, %r0, 524288
332 #CHECK: error: invalid use of indexed addressing
333 #CHECK: laalg %r0, %r0, 0(%r1,%r2)
335 laalg %r0, %r0, -524289
336 laalg %r0, %r0, 524288
337 laalg %r0, %r0, 0(%r1,%r2)
339 #CHECK: error: invalid operand
340 #CHECK: lan %r0, %r0, -524289
341 #CHECK: error: invalid operand
342 #CHECK: lan %r0, %r0, 524288
343 #CHECK: error: invalid use of indexed addressing
344 #CHECK: lan %r0, %r0, 0(%r1,%r2)
346 lan %r0, %r0, -524289
348 lan %r0, %r0, 0(%r1,%r2)
350 #CHECK: error: invalid operand
351 #CHECK: lang %r0, %r0, -524289
352 #CHECK: error: invalid operand
353 #CHECK: lang %r0, %r0, 524288
354 #CHECK: error: invalid use of indexed addressing
355 #CHECK: lang %r0, %r0, 0(%r1,%r2)
357 lang %r0, %r0, -524289
358 lang %r0, %r0, 524288
359 lang %r0, %r0, 0(%r1,%r2)
361 #CHECK: error: invalid operand
362 #CHECK: lao %r0, %r0, -524289
363 #CHECK: error: invalid operand
364 #CHECK: lao %r0, %r0, 524288
365 #CHECK: error: invalid use of indexed addressing
366 #CHECK: lao %r0, %r0, 0(%r1,%r2)
368 lao %r0, %r0, -524289
370 lao %r0, %r0, 0(%r1,%r2)
372 #CHECK: error: invalid operand
373 #CHECK: laog %r0, %r0, -524289
374 #CHECK: error: invalid operand
375 #CHECK: laog %r0, %r0, 524288
376 #CHECK: error: invalid use of indexed addressing
377 #CHECK: laog %r0, %r0, 0(%r1,%r2)
379 laog %r0, %r0, -524289
380 laog %r0, %r0, 524288
381 laog %r0, %r0, 0(%r1,%r2)
383 #CHECK: error: invalid operand
384 #CHECK: lax %r0, %r0, -524289
385 #CHECK: error: invalid operand
386 #CHECK: lax %r0, %r0, 524288
387 #CHECK: error: invalid use of indexed addressing
388 #CHECK: lax %r0, %r0, 0(%r1,%r2)
390 lax %r0, %r0, -524289
392 lax %r0, %r0, 0(%r1,%r2)
394 #CHECK: error: invalid operand
395 #CHECK: laxg %r0, %r0, -524289
396 #CHECK: error: invalid operand
397 #CHECK: laxg %r0, %r0, 524288
398 #CHECK: error: invalid use of indexed addressing
399 #CHECK: laxg %r0, %r0, 0(%r1,%r2)
401 laxg %r0, %r0, -524289
402 laxg %r0, %r0, 524288
403 laxg %r0, %r0, 0(%r1,%r2)
405 #CHECK: error: invalid operand
406 #CHECK: lbh %r0, -524289
407 #CHECK: error: invalid operand
408 #CHECK: lbh %r0, 524288
413 #CHECK: error: invalid operand
414 #CHECK: lfh %r0, -524289
415 #CHECK: error: invalid operand
416 #CHECK: lfh %r0, 524288
421 #CHECK: error: invalid operand
422 #CHECK: lhh %r0, -524289
423 #CHECK: error: invalid operand
424 #CHECK: lhh %r0, 524288
429 #CHECK: error: invalid operand
430 #CHECK: llch %r0, -524289
431 #CHECK: error: invalid operand
432 #CHECK: llch %r0, 524288
437 #CHECK: error: invalid operand
438 #CHECK: llhh %r0, -524289
439 #CHECK: error: invalid operand
440 #CHECK: llhh %r0, 524288
445 #CHECK: error: invalid operand
447 #CHECK: error: invalid operand
449 #CHECK: error: invalid operand
450 #CHECK: loc %r0,-524289,1
451 #CHECK: error: invalid operand
452 #CHECK: loc %r0,524288,1
453 #CHECK: error: invalid use of indexed addressing
454 #CHECK: loc %r0,0(%r1,%r2),1
462 #CHECK: error: invalid operand
463 #CHECK: locg %r0,0,-1
464 #CHECK: error: invalid operand
465 #CHECK: locg %r0,0,16
466 #CHECK: error: invalid operand
467 #CHECK: locg %r0,-524289,1
468 #CHECK: error: invalid operand
469 #CHECK: locg %r0,524288,1
470 #CHECK: error: invalid use of indexed addressing
471 #CHECK: locg %r0,0(%r1,%r2),1
477 locg %r0,0(%r1,%r2),1
479 #CHECK: error: invalid operand
480 #CHECK: locgr %r0,%r0,-1
481 #CHECK: error: invalid operand
482 #CHECK: locgr %r0,%r0,16
487 #CHECK: error: invalid operand
488 #CHECK: locr %r0,%r0,-1
489 #CHECK: error: invalid operand
490 #CHECK: locr %r0,%r0,16
495 #CHECK: error: invalid operand
496 #CHECK: risbhg %r0,%r0,0,0,-1
497 #CHECK: error: invalid operand
498 #CHECK: risbhg %r0,%r0,0,0,64
499 #CHECK: error: invalid operand
500 #CHECK: risbhg %r0,%r0,0,-1,0
501 #CHECK: error: invalid operand
502 #CHECK: risbhg %r0,%r0,0,256,0
503 #CHECK: error: invalid operand
504 #CHECK: risbhg %r0,%r0,-1,0,0
505 #CHECK: error: invalid operand
506 #CHECK: risbhg %r0,%r0,256,0,0
508 risbhg %r0,%r0,0,0,-1
509 risbhg %r0,%r0,0,0,64
510 risbhg %r0,%r0,0,-1,0
511 risbhg %r0,%r0,0,256,0
512 risbhg %r0,%r0,-1,0,0
513 risbhg %r0,%r0,256,0,0
515 #CHECK: error: invalid operand
516 #CHECK: risblg %r0,%r0,0,0,-1
517 #CHECK: error: invalid operand
518 #CHECK: risblg %r0,%r0,0,0,64
519 #CHECK: error: invalid operand
520 #CHECK: risblg %r0,%r0,0,-1,0
521 #CHECK: error: invalid operand
522 #CHECK: risblg %r0,%r0,0,256,0
523 #CHECK: error: invalid operand
524 #CHECK: risblg %r0,%r0,-1,0,0
525 #CHECK: error: invalid operand
526 #CHECK: risblg %r0,%r0,256,0,0
528 risblg %r0,%r0,0,0,-1
529 risblg %r0,%r0,0,0,64
530 risblg %r0,%r0,0,-1,0
531 risblg %r0,%r0,0,256,0
532 risblg %r0,%r0,-1,0,0
533 risblg %r0,%r0,256,0,0
535 #CHECK: error: invalid operand
536 #CHECK: sllk %r0,%r0,-524289
537 #CHECK: error: invalid operand
538 #CHECK: sllk %r0,%r0,524288
539 #CHECK: error: %r0 used in an address
540 #CHECK: sllk %r0,%r0,0(%r0)
541 #CHECK: error: invalid use of indexed addressing
542 #CHECK: sllk %r0,%r0,0(%r1,%r2)
547 sllk %r0,%r0,0(%r1,%r2)
549 #CHECK: error: invalid operand
550 #CHECK: srak %r0,%r0,-524289
551 #CHECK: error: invalid operand
552 #CHECK: srak %r0,%r0,524288
553 #CHECK: error: %r0 used in an address
554 #CHECK: srak %r0,%r0,0(%r0)
555 #CHECK: error: invalid use of indexed addressing
556 #CHECK: srak %r0,%r0,0(%r1,%r2)
561 srak %r0,%r0,0(%r1,%r2)
563 #CHECK: error: invalid operand
564 #CHECK: srlk %r0,%r0,-524289
565 #CHECK: error: invalid operand
566 #CHECK: srlk %r0,%r0,524288
567 #CHECK: error: %r0 used in an address
568 #CHECK: srlk %r0,%r0,0(%r0)
569 #CHECK: error: invalid use of indexed addressing
570 #CHECK: srlk %r0,%r0,0(%r1,%r2)
575 srlk %r0,%r0,0(%r1,%r2)
577 #CHECK: error: invalid operand
578 #CHECK: stch %r0, -524289
579 #CHECK: error: invalid operand
580 #CHECK: stch %r0, 524288
585 #CHECK: error: invalid operand
586 #CHECK: sthh %r0, -524289
587 #CHECK: error: invalid operand
588 #CHECK: sthh %r0, 524288
593 #CHECK: error: invalid operand
594 #CHECK: stfh %r0, -524289
595 #CHECK: error: invalid operand
596 #CHECK: stfh %r0, 524288
601 #CHECK: error: invalid operand
602 #CHECK: stoc %r0,0,-1
603 #CHECK: error: invalid operand
604 #CHECK: stoc %r0,0,16
605 #CHECK: error: invalid operand
606 #CHECK: stoc %r0,-524289,1
607 #CHECK: error: invalid operand
608 #CHECK: stoc %r0,524288,1
609 #CHECK: error: invalid use of indexed addressing
610 #CHECK: stoc %r0,0(%r1,%r2),1
616 stoc %r0,0(%r1,%r2),1
618 #CHECK: error: invalid operand
619 #CHECK: stocg %r0,0,-1
620 #CHECK: error: invalid operand
621 #CHECK: stocg %r0,0,16
622 #CHECK: error: invalid operand
623 #CHECK: stocg %r0,-524289,1
624 #CHECK: error: invalid operand
625 #CHECK: stocg %r0,524288,1
626 #CHECK: error: invalid use of indexed addressing
627 #CHECK: stocg %r0,0(%r1,%r2),1
633 stocg %r0,0(%r1,%r2),1