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