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