[SystemZ] Add immediate addition involving high words
[oota-llvm.git] / test / MC / SystemZ / insn-bad-z196.s
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: fidbra  %f0, 0, %f0, -1
37 #CHECK: error: invalid operand
38 #CHECK: fidbra  %f0, 0, %f0, 16
39 #CHECK: error: invalid operand
40 #CHECK: fidbra  %f0, -1, %f0, 0
41 #CHECK: error: invalid operand
42 #CHECK: fidbra  %f0, 16, %f0, 0
43
44         fidbra  %f0, 0, %f0, -1
45         fidbra  %f0, 0, %f0, 16
46         fidbra  %f0, -1, %f0, 0
47         fidbra  %f0, 16, %f0, 0
48
49 #CHECK: error: invalid operand
50 #CHECK: fiebra  %f0, 0, %f0, -1
51 #CHECK: error: invalid operand
52 #CHECK: fiebra  %f0, 0, %f0, 16
53 #CHECK: error: invalid operand
54 #CHECK: fiebra  %f0, -1, %f0, 0
55 #CHECK: error: invalid operand
56 #CHECK: fiebra  %f0, 16, %f0, 0
57
58         fiebra  %f0, 0, %f0, -1
59         fiebra  %f0, 0, %f0, 16
60         fiebra  %f0, -1, %f0, 0
61         fiebra  %f0, 16, %f0, 0
62
63 #CHECK: error: invalid operand
64 #CHECK: fixbra  %f0, 0, %f0, -1
65 #CHECK: error: invalid operand
66 #CHECK: fixbra  %f0, 0, %f0, 16
67 #CHECK: error: invalid operand
68 #CHECK: fixbra  %f0, -1, %f0, 0
69 #CHECK: error: invalid operand
70 #CHECK: fixbra  %f0, 16, %f0, 0
71 #CHECK: error: invalid register pair
72 #CHECK: fixbra  %f0, 0, %f2, 0
73 #CHECK: error: invalid register pair
74 #CHECK: fixbra  %f2, 0, %f0, 0
75
76         fixbra  %f0, 0, %f0, -1
77         fixbra  %f0, 0, %f0, 16
78         fixbra  %f0, -1, %f0, 0
79         fixbra  %f0, 16, %f0, 0
80         fixbra  %f0, 0, %f2, 0
81         fixbra  %f2, 0, %f0, 0
82
83 #CHECK: error: invalid operand
84 #CHECK: lbh     %r0, -524289
85 #CHECK: error: invalid operand
86 #CHECK: lbh     %r0, 524288
87
88         lbh     %r0, -524289
89         lbh     %r0, 524288
90
91 #CHECK: error: invalid operand
92 #CHECK: lfh     %r0, -524289
93 #CHECK: error: invalid operand
94 #CHECK: lfh     %r0, 524288
95
96         lfh     %r0, -524289
97         lfh     %r0, 524288
98
99 #CHECK: error: invalid operand
100 #CHECK: lhh     %r0, -524289
101 #CHECK: error: invalid operand
102 #CHECK: lhh     %r0, 524288
103
104         lhh     %r0, -524289
105         lhh     %r0, 524288
106
107 #CHECK: error: invalid operand
108 #CHECK: llch    %r0, -524289
109 #CHECK: error: invalid operand
110 #CHECK: llch    %r0, 524288
111
112         llch    %r0, -524289
113         llch    %r0, 524288
114
115 #CHECK: error: invalid operand
116 #CHECK: llhh    %r0, -524289
117 #CHECK: error: invalid operand
118 #CHECK: llhh    %r0, 524288
119
120         llhh    %r0, -524289
121         llhh    %r0, 524288
122
123 #CHECK: error: invalid operand
124 #CHECK: loc     %r0,0,-1
125 #CHECK: error: invalid operand
126 #CHECK: loc     %r0,0,16
127 #CHECK: error: invalid operand
128 #CHECK: loc     %r0,-524289,1
129 #CHECK: error: invalid operand
130 #CHECK: loc     %r0,524288,1
131 #CHECK: error: invalid use of indexed addressing
132 #CHECK: loc     %r0,0(%r1,%r2),1
133
134         loc     %r0,0,-1
135         loc     %r0,0,16
136         loc     %r0,-524289,1
137         loc     %r0,524288,1
138         loc     %r0,0(%r1,%r2),1
139
140 #CHECK: error: invalid operand
141 #CHECK: locg    %r0,0,-1
142 #CHECK: error: invalid operand
143 #CHECK: locg    %r0,0,16
144 #CHECK: error: invalid operand
145 #CHECK: locg    %r0,-524289,1
146 #CHECK: error: invalid operand
147 #CHECK: locg    %r0,524288,1
148 #CHECK: error: invalid use of indexed addressing
149 #CHECK: locg    %r0,0(%r1,%r2),1
150
151         locg    %r0,0,-1
152         locg    %r0,0,16
153         locg    %r0,-524289,1
154         locg    %r0,524288,1
155         locg    %r0,0(%r1,%r2),1
156
157 #CHECK: error: invalid operand
158 #CHECK: locgr   %r0,%r0,-1
159 #CHECK: error: invalid operand
160 #CHECK: locgr   %r0,%r0,16
161
162         locgr   %r0,%r0,-1
163         locgr   %r0,%r0,16
164
165 #CHECK: error: invalid operand
166 #CHECK: locr    %r0,%r0,-1
167 #CHECK: error: invalid operand
168 #CHECK: locr    %r0,%r0,16
169
170         locr    %r0,%r0,-1
171         locr    %r0,%r0,16
172
173 #CHECK: error: invalid operand
174 #CHECK: risbhg  %r0,%r0,0,0,-1
175 #CHECK: error: invalid operand
176 #CHECK: risbhg  %r0,%r0,0,0,64
177 #CHECK: error: invalid operand
178 #CHECK: risbhg  %r0,%r0,0,-1,0
179 #CHECK: error: invalid operand
180 #CHECK: risbhg  %r0,%r0,0,256,0
181 #CHECK: error: invalid operand
182 #CHECK: risbhg  %r0,%r0,-1,0,0
183 #CHECK: error: invalid operand
184 #CHECK: risbhg  %r0,%r0,256,0,0
185
186         risbhg  %r0,%r0,0,0,-1
187         risbhg  %r0,%r0,0,0,64
188         risbhg  %r0,%r0,0,-1,0
189         risbhg  %r0,%r0,0,256,0
190         risbhg  %r0,%r0,-1,0,0
191         risbhg  %r0,%r0,256,0,0
192
193 #CHECK: error: invalid operand
194 #CHECK: risblg  %r0,%r0,0,0,-1
195 #CHECK: error: invalid operand
196 #CHECK: risblg  %r0,%r0,0,0,64
197 #CHECK: error: invalid operand
198 #CHECK: risblg  %r0,%r0,0,-1,0
199 #CHECK: error: invalid operand
200 #CHECK: risblg  %r0,%r0,0,256,0
201 #CHECK: error: invalid operand
202 #CHECK: risblg  %r0,%r0,-1,0,0
203 #CHECK: error: invalid operand
204 #CHECK: risblg  %r0,%r0,256,0,0
205
206         risblg  %r0,%r0,0,0,-1
207         risblg  %r0,%r0,0,0,64
208         risblg  %r0,%r0,0,-1,0
209         risblg  %r0,%r0,0,256,0
210         risblg  %r0,%r0,-1,0,0
211         risblg  %r0,%r0,256,0,0
212
213 #CHECK: error: invalid operand
214 #CHECK: sllk    %r0,%r0,-524289
215 #CHECK: error: invalid operand
216 #CHECK: sllk    %r0,%r0,524288
217 #CHECK: error: %r0 used in an address
218 #CHECK: sllk    %r0,%r0,0(%r0)
219 #CHECK: error: invalid use of indexed addressing
220 #CHECK: sllk    %r0,%r0,0(%r1,%r2)
221
222         sllk    %r0,%r0,-524289
223         sllk    %r0,%r0,524288
224         sllk    %r0,%r0,0(%r0)
225         sllk    %r0,%r0,0(%r1,%r2)
226
227 #CHECK: error: invalid operand
228 #CHECK: srak    %r0,%r0,-524289
229 #CHECK: error: invalid operand
230 #CHECK: srak    %r0,%r0,524288
231 #CHECK: error: %r0 used in an address
232 #CHECK: srak    %r0,%r0,0(%r0)
233 #CHECK: error: invalid use of indexed addressing
234 #CHECK: srak    %r0,%r0,0(%r1,%r2)
235
236         srak    %r0,%r0,-524289
237         srak    %r0,%r0,524288
238         srak    %r0,%r0,0(%r0)
239         srak    %r0,%r0,0(%r1,%r2)
240
241 #CHECK: error: invalid operand
242 #CHECK: srlk    %r0,%r0,-524289
243 #CHECK: error: invalid operand
244 #CHECK: srlk    %r0,%r0,524288
245 #CHECK: error: %r0 used in an address
246 #CHECK: srlk    %r0,%r0,0(%r0)
247 #CHECK: error: invalid use of indexed addressing
248 #CHECK: srlk    %r0,%r0,0(%r1,%r2)
249
250         srlk    %r0,%r0,-524289
251         srlk    %r0,%r0,524288
252         srlk    %r0,%r0,0(%r0)
253         srlk    %r0,%r0,0(%r1,%r2)
254
255 #CHECK: error: invalid operand
256 #CHECK: stch    %r0, -524289
257 #CHECK: error: invalid operand
258 #CHECK: stch    %r0, 524288
259
260         stch    %r0, -524289
261         stch    %r0, 524288
262
263 #CHECK: error: invalid operand
264 #CHECK: sthh    %r0, -524289
265 #CHECK: error: invalid operand
266 #CHECK: sthh    %r0, 524288
267
268         sthh    %r0, -524289
269         sthh    %r0, 524288
270
271 #CHECK: error: invalid operand
272 #CHECK: stfh    %r0, -524289
273 #CHECK: error: invalid operand
274 #CHECK: stfh    %r0, 524288
275
276         stfh    %r0, -524289
277         stfh    %r0, 524288
278
279 #CHECK: error: invalid operand
280 #CHECK: stoc    %r0,0,-1
281 #CHECK: error: invalid operand
282 #CHECK: stoc    %r0,0,16
283 #CHECK: error: invalid operand
284 #CHECK: stoc    %r0,-524289,1
285 #CHECK: error: invalid operand
286 #CHECK: stoc    %r0,524288,1
287 #CHECK: error: invalid use of indexed addressing
288 #CHECK: stoc    %r0,0(%r1,%r2),1
289
290         stoc    %r0,0,-1
291         stoc    %r0,0,16
292         stoc    %r0,-524289,1
293         stoc    %r0,524288,1
294         stoc    %r0,0(%r1,%r2),1
295
296 #CHECK: error: invalid operand
297 #CHECK: stocg   %r0,0,-1
298 #CHECK: error: invalid operand
299 #CHECK: stocg   %r0,0,16
300 #CHECK: error: invalid operand
301 #CHECK: stocg   %r0,-524289,1
302 #CHECK: error: invalid operand
303 #CHECK: stocg   %r0,524288,1
304 #CHECK: error: invalid use of indexed addressing
305 #CHECK: stocg   %r0,0(%r1,%r2),1
306
307         stocg   %r0,0,-1
308         stocg   %r0,0,16
309         stocg   %r0,-524289,1
310         stocg   %r0,524288,1
311         stocg   %r0,0(%r1,%r2),1