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: loc	%r0,0,-1
29#CHECK: error: invalid operand
30#CHECK: loc	%r0,0,16
31#CHECK: error: invalid operand
32#CHECK: loc	%r0,-524289,1
33#CHECK: error: invalid operand
34#CHECK: loc	%r0,524288,1
35#CHECK: error: invalid use of indexed addressing
36#CHECK: loc	%r0,0(%r1,%r2),1
37
38	loc	%r0,0,-1
39	loc	%r0,0,16
40	loc	%r0,-524289,1
41	loc	%r0,524288,1
42	loc	%r0,0(%r1,%r2),1
43
44#CHECK: error: invalid operand
45#CHECK: locg	%r0,0,-1
46#CHECK: error: invalid operand
47#CHECK: locg	%r0,0,16
48#CHECK: error: invalid operand
49#CHECK: locg	%r0,-524289,1
50#CHECK: error: invalid operand
51#CHECK: locg	%r0,524288,1
52#CHECK: error: invalid use of indexed addressing
53#CHECK: locg	%r0,0(%r1,%r2),1
54
55	locg	%r0,0,-1
56	locg	%r0,0,16
57	locg	%r0,-524289,1
58	locg	%r0,524288,1
59	locg	%r0,0(%r1,%r2),1
60
61#CHECK: error: invalid operand
62#CHECK: locgr	%r0,%r0,-1
63#CHECK: error: invalid operand
64#CHECK: locgr	%r0,%r0,16
65
66	locgr	%r0,%r0,-1
67	locgr	%r0,%r0,16
68
69#CHECK: error: invalid operand
70#CHECK: locr	%r0,%r0,-1
71#CHECK: error: invalid operand
72#CHECK: locr	%r0,%r0,16
73
74	locr	%r0,%r0,-1
75	locr	%r0,%r0,16
76
77#CHECK: error: invalid operand
78#CHECK: risbhg	%r0,%r0,0,0,-1
79#CHECK: error: invalid operand
80#CHECK: risbhg	%r0,%r0,0,0,64
81#CHECK: error: invalid operand
82#CHECK: risbhg	%r0,%r0,0,-1,0
83#CHECK: error: invalid operand
84#CHECK: risbhg	%r0,%r0,0,256,0
85#CHECK: error: invalid operand
86#CHECK: risbhg	%r0,%r0,-1,0,0
87#CHECK: error: invalid operand
88#CHECK: risbhg	%r0,%r0,256,0,0
89
90	risbhg	%r0,%r0,0,0,-1
91	risbhg	%r0,%r0,0,0,64
92	risbhg	%r0,%r0,0,-1,0
93	risbhg	%r0,%r0,0,256,0
94	risbhg	%r0,%r0,-1,0,0
95	risbhg	%r0,%r0,256,0,0
96
97#CHECK: error: invalid operand
98#CHECK: risblg	%r0,%r0,0,0,-1
99#CHECK: error: invalid operand
100#CHECK: risblg	%r0,%r0,0,0,64
101#CHECK: error: invalid operand
102#CHECK: risblg	%r0,%r0,0,-1,0
103#CHECK: error: invalid operand
104#CHECK: risblg	%r0,%r0,0,256,0
105#CHECK: error: invalid operand
106#CHECK: risblg	%r0,%r0,-1,0,0
107#CHECK: error: invalid operand
108#CHECK: risblg	%r0,%r0,256,0,0
109
110	risblg	%r0,%r0,0,0,-1
111	risblg	%r0,%r0,0,0,64
112	risblg	%r0,%r0,0,-1,0
113	risblg	%r0,%r0,0,256,0
114	risblg	%r0,%r0,-1,0,0
115	risblg	%r0,%r0,256,0,0
116
117#CHECK: error: invalid operand
118#CHECK: sllk	%r0,%r0,-524289
119#CHECK: error: invalid operand
120#CHECK: sllk	%r0,%r0,524288
121#CHECK: error: %r0 used in an address
122#CHECK: sllk	%r0,%r0,0(%r0)
123#CHECK: error: invalid use of indexed addressing
124#CHECK: sllk	%r0,%r0,0(%r1,%r2)
125
126	sllk	%r0,%r0,-524289
127	sllk	%r0,%r0,524288
128	sllk	%r0,%r0,0(%r0)
129	sllk	%r0,%r0,0(%r1,%r2)
130
131#CHECK: error: invalid operand
132#CHECK: srak	%r0,%r0,-524289
133#CHECK: error: invalid operand
134#CHECK: srak	%r0,%r0,524288
135#CHECK: error: %r0 used in an address
136#CHECK: srak	%r0,%r0,0(%r0)
137#CHECK: error: invalid use of indexed addressing
138#CHECK: srak	%r0,%r0,0(%r1,%r2)
139
140	srak	%r0,%r0,-524289
141	srak	%r0,%r0,524288
142	srak	%r0,%r0,0(%r0)
143	srak	%r0,%r0,0(%r1,%r2)
144
145#CHECK: error: invalid operand
146#CHECK: srlk	%r0,%r0,-524289
147#CHECK: error: invalid operand
148#CHECK: srlk	%r0,%r0,524288
149#CHECK: error: %r0 used in an address
150#CHECK: srlk	%r0,%r0,0(%r0)
151#CHECK: error: invalid use of indexed addressing
152#CHECK: srlk	%r0,%r0,0(%r1,%r2)
153
154	srlk	%r0,%r0,-524289
155	srlk	%r0,%r0,524288
156	srlk	%r0,%r0,0(%r0)
157	srlk	%r0,%r0,0(%r1,%r2)
158
159#CHECK: error: invalid operand
160#CHECK: stoc	%r0,0,-1
161#CHECK: error: invalid operand
162#CHECK: stoc	%r0,0,16
163#CHECK: error: invalid operand
164#CHECK: stoc	%r0,-524289,1
165#CHECK: error: invalid operand
166#CHECK: stoc	%r0,524288,1
167#CHECK: error: invalid use of indexed addressing
168#CHECK: stoc	%r0,0(%r1,%r2),1
169
170	stoc	%r0,0,-1
171	stoc	%r0,0,16
172	stoc	%r0,-524289,1
173	stoc	%r0,524288,1
174	stoc	%r0,0(%r1,%r2),1
175
176#CHECK: error: invalid operand
177#CHECK: stocg	%r0,0,-1
178#CHECK: error: invalid operand
179#CHECK: stocg	%r0,0,16
180#CHECK: error: invalid operand
181#CHECK: stocg	%r0,-524289,1
182#CHECK: error: invalid operand
183#CHECK: stocg	%r0,524288,1
184#CHECK: error: invalid use of indexed addressing
185#CHECK: stocg	%r0,0(%r1,%r2),1
186
187	stocg	%r0,0,-1
188	stocg	%r0,0,16
189	stocg	%r0,-524289,1
190	stocg	%r0,524288,1
191	stocg	%r0,0(%r1,%r2),1
192