* hppa.h (pa_opcodes): Use "cX" completer instead of "cx" in fstqx
[external/binutils.git] / sim / testsuite / sim / bfin / ashift.s
1 # Blackfin testcase for ashift
2 # mach: bfin
3
4         .include "testutils.inc"
5
6         .macro ashift_test in:req, shift:req, out:req, opt
7         r0 = \in (Z);
8         r2.L = \shift;
9         r2.h = ASHIFT R0.L BY R2.L \opt;
10         DBGA (r2.h, \out);
11         .endm
12
13         start
14
15         /*
16          * 16-bit ashift and lshift uses a 6-bit signed  magnitude, which
17          * gives a range from -32 to 31.  In the case where the  magnitude
18          * is -32, make sure the answer is correct.
19          */
20
21 ashift_test 0x8001,  33, 0xffff;
22 ashift_test 0x8001,  32, 0xffff;
23 ashift_test 0x8001,  31, 0x0000;
24 ashift_test 0x8001,  30, 0x0000;
25 ashift_test 0x8001,  29, 0x0000;
26 ashift_test 0x8001,  28, 0x0000;
27 ashift_test 0x8001,  27, 0x0000;
28 ashift_test 0x8001,  26, 0x0000;
29 ashift_test 0x8001,  25, 0x0000;
30 ashift_test 0x8001,  24, 0x0000;
31 ashift_test 0x8001,  23, 0x0000;
32 ashift_test 0x8001,  22, 0x0000;
33 ashift_test 0x8001,  21, 0x0000;
34 ashift_test 0x8001,  20, 0x0000;
35 ashift_test 0x8001,  19, 0x0000;
36 ashift_test 0x8001,  18, 0x0000;
37 ashift_test 0x8001,  17, 0x0000;
38 ashift_test 0x8001,  16, 0x0000;
39 ashift_test 0x8001,  15, 0x8000;
40 ashift_test 0x8001,  14, 0x4000;
41 ashift_test 0x8001,  13, 0x2000;
42 ashift_test 0x8001,  12, 0x1000;
43 ashift_test 0x8001,  11, 0x0800;
44 ashift_test 0x8001,  10, 0x0400;
45 ashift_test 0x8001,   9, 0x0200;
46 ashift_test 0x8001,   8, 0x0100;
47 ashift_test 0x8001,   7, 0x0080;
48 ashift_test 0x8001,   6, 0x0040;
49 ashift_test 0x8001,   5, 0x0020;
50 ashift_test 0x8001,   4, 0x0010;
51 ashift_test 0x8001,   3, 0x0008;
52 ashift_test 0x8001,   2, 0x0004;
53 ashift_test 0x8001,   1, 0x0002;
54 ashift_test 0x8001,   0, 0x8001;
55 ashift_test 0x8001,  -1, 0xc000;
56 ashift_test 0x8001,  -2, 0xe000;
57 ashift_test 0x8001,  -3, 0xf000;
58 ashift_test 0x8001,  -4, 0xf800;
59 ashift_test 0x8001,  -5, 0xfc00;
60 ashift_test 0x8001,  -6, 0xfe00;
61 ashift_test 0x8001,  -7, 0xff00;
62 ashift_test 0x8001,  -8, 0xff80;
63 ashift_test 0x8001,  -9, 0xffc0;
64 ashift_test 0x8001, -10, 0xffe0;
65 ashift_test 0x8001, -11, 0xfff0;
66 ashift_test 0x8001, -12, 0xfff8;
67 ashift_test 0x8001, -13, 0xfffc;
68 ashift_test 0x8001, -14, 0xfffe;
69 ashift_test 0x8001, -15, 0xffff;
70 ashift_test 0x8001, -16, 0xffff;
71 ashift_test 0x8001, -17, 0xffff;
72 ashift_test 0x8001, -18, 0xffff;
73 ashift_test 0x8001, -19, 0xffff;
74 ashift_test 0x8001, -20, 0xffff;
75 ashift_test 0x8001, -21, 0xffff;
76 ashift_test 0x8001, -22, 0xffff;
77 ashift_test 0x8001, -23, 0xffff;
78 ashift_test 0x8001, -24, 0xffff;
79 ashift_test 0x8001, -25, 0xffff;
80 ashift_test 0x8001, -26, 0xffff;
81 ashift_test 0x8001, -27, 0xffff;
82 ashift_test 0x8001, -28, 0xffff;
83 ashift_test 0x8001, -29, 0xffff;
84 ashift_test 0x8001, -30, 0xffff;
85 ashift_test 0x8001, -31, 0xffff;
86 ashift_test 0x8001, -32, 0xffff;
87 ashift_test 0x8001, -33, 0x0;
88 ashift_test 0x8001, -34, 0x0;
89
90 ashift_test 0x8001,  33, 0xffff, (S);
91 ashift_test 0x8001,  32, 0xffff, (S);
92 ashift_test 0x8001,  31, 0x8000, (S);
93 ashift_test 0x8001,  30, 0x8000, (S);
94 ashift_test 0x8001,  29, 0x8000, (S);
95 ashift_test 0x8001,  28, 0x8000, (S);
96 ashift_test 0x8001,  27, 0x8000, (S);
97 ashift_test 0x8001,  26, 0x8000, (S);
98 ashift_test 0x8001,  25, 0x8000, (S);
99 ashift_test 0x8001,  24, 0x8000, (S);
100 ashift_test 0x8001,  23, 0x8000, (S);
101 ashift_test 0x8001,  22, 0x8000, (S);
102 ashift_test 0x8001,  21, 0x8000, (S);
103 ashift_test 0x8001,  20, 0x8000, (S);
104 ashift_test 0x8001,  19, 0x8000, (S);
105 ashift_test 0x8001,  18, 0x8000, (S);
106 ashift_test 0x8001,  17, 0x8000, (S);
107 ashift_test 0x8001,  16, 0x8000, (S);
108 ashift_test 0x8001,  15, 0x8000, (S);
109 ashift_test 0x8001,  14, 0x8000, (S);
110 ashift_test 0x8001,  13, 0x8000, (S);
111 ashift_test 0x8001,  12, 0x8000, (S);
112 ashift_test 0x8001,  11, 0x8000, (S);
113 ashift_test 0x8001,  10, 0x8000, (S);
114 ashift_test 0x8001,   9, 0x8000, (S);
115 ashift_test 0x8001,   8, 0x8000, (S);
116 ashift_test 0x8001,   7, 0x8000, (S);
117 ashift_test 0x8001,   6, 0x8000, (S);
118 ashift_test 0x8001,   5, 0x8000, (S);
119 ashift_test 0x8001,   4, 0x8000, (S);
120 ashift_test 0x8001,   3, 0x8000, (S);
121 ashift_test 0x8001,   2, 0x8000, (S);
122 ashift_test 0x8001,   1, 0x8000, (S);
123 ashift_test 0x8001,   0, 0x8001, (S);
124 ashift_test 0x8001,  -1, 0xc000, (S);
125 ashift_test 0x8001,  -2, 0xe000, (S);
126 ashift_test 0x8001,  -3, 0xf000, (S);
127 ashift_test 0x8001,  -4, 0xf800, (S);
128 ashift_test 0x8001,  -5, 0xfc00, (S);
129 ashift_test 0x8001,  -6, 0xfe00, (S);
130 ashift_test 0x8001,  -7, 0xff00, (S);
131 ashift_test 0x8001,  -8, 0xff80, (S);
132 ashift_test 0x8001,  -9, 0xffc0, (S);
133 ashift_test 0x8001, -10, 0xffe0, (S);
134 ashift_test 0x8001, -11, 0xfff0, (S);
135 ashift_test 0x8001, -12, 0xfff8, (S);
136 ashift_test 0x8001, -13, 0xfffc, (S);
137 ashift_test 0x8001, -14, 0xfffe, (S);
138 ashift_test 0x8001, -15, 0xffff, (S);
139 ashift_test 0x8001, -16, 0xffff, (S);
140 ashift_test 0x8001, -17, 0xffff, (S);
141 ashift_test 0x8001, -18, 0xffff, (S);
142 ashift_test 0x8001, -19, 0xffff, (S);
143 ashift_test 0x8001, -20, 0xffff, (S);
144 ashift_test 0x8001, -21, 0xffff, (S);
145 ashift_test 0x8001, -22, 0xffff, (S);
146 ashift_test 0x8001, -23, 0xffff, (S);
147 ashift_test 0x8001, -24, 0xffff, (S);
148 ashift_test 0x8001, -25, 0xffff, (S);
149 ashift_test 0x8001, -26, 0xffff, (S);
150 ashift_test 0x8001, -27, 0xffff, (S);
151 ashift_test 0x8001, -28, 0xffff, (S);
152 ashift_test 0x8001, -29, 0xffff, (S);
153 ashift_test 0x8001, -30, 0xffff, (S);
154 ashift_test 0x8001, -31, 0xffff, (S);
155 ashift_test 0x8001, -32, 0xffff, (S);
156 ashift_test 0x8001, -33, 0x8000, (S);
157 ashift_test 0x8001, -34, 0x8000, (S);
158
159
160 ashift_test 0x4002,  33, 0x0;
161 ashift_test 0x4002,  32, 0x0;
162 ashift_test 0x4002,  31, 0x0;
163 ashift_test 0x4002,  30, 0x0;
164 ashift_test 0x4002,  20, 0x0;
165 ashift_test 0x4002,  19, 0x0;
166 ashift_test 0x4002,  18, 0x0;
167 ashift_test 0x4002,  17, 0x0;
168 ashift_test 0x4002,  16, 0x0;
169 ashift_test 0x4002,  15, 0x0;
170 ashift_test 0x4002,  14, 0x8000;
171 ashift_test 0x4002,  13, 0x4000;
172 ashift_test 0x4002,  12, 0x2000;
173 ashift_test 0x4002,  11, 0x1000;
174 ashift_test 0x4002,  10, 0x0800;
175 ashift_test 0x4002,   9, 0x0400;
176 ashift_test 0x4002,   8, 0x0200;
177 ashift_test 0x4002,   7, 0x0100;
178 ashift_test 0x4002,   6, 0x0080;
179 ashift_test 0x4002,   5, 0x0040;
180 ashift_test 0x4002,   4, 0x0020;
181 ashift_test 0x4002,   3, 0x0010;
182 ashift_test 0x4002,   2, 0x0008;
183 ashift_test 0x4002,   1, 0x8004;
184 ashift_test 0x4002,   0, 0x4002;
185 ashift_test 0x4002,  -1, 0x2001;
186 ashift_test 0x4002,  -2, 0x1000;
187 ashift_test 0x4002,  -3, 0x0800;
188 ashift_test 0x4002,  -4, 0x0400;
189 ashift_test 0x4002,  -5, 0x0200;
190 ashift_test 0x4002,  -6, 0x0100;
191 ashift_test 0x4002,  -7, 0x0080;
192 ashift_test 0x4002,  -8, 0x0040;
193 ashift_test 0x4002,  -9, 0x0020;
194 ashift_test 0x4002, -10, 0x0010;
195 ashift_test 0x4002, -11, 0x0008;
196 ashift_test 0x4002, -12, 0x0004;
197 ashift_test 0x4002, -13, 0x0002;
198 ashift_test 0x4002, -14, 0x0001;
199 ashift_test 0x4002, -15, 0x0;
200 ashift_test 0x4002, -16, 0x0;
201 ashift_test 0x4002, -17, 0x0;
202 ashift_test 0x4002, -31, 0x0;
203 ashift_test 0x4002, -32, 0x0;
204 ashift_test 0x4002, -33, 0x0;
205 ashift_test 0x4002, -34, 0x0;
206
207 ashift_test 0x4002,  33, 0x0, (S);
208 ashift_test 0x4002,  32, 0x0, (S);
209 ashift_test 0x4002,  31, 0x7fff, (S);
210 ashift_test 0x4002,  30, 0x7fff, (S);
211 ashift_test 0x4002,  20, 0x7fff, (S);
212 ashift_test 0x4002,  19, 0x7fff, (S);
213 ashift_test 0x4002,  18, 0x7fff, (S);
214 ashift_test 0x4002,  17, 0x7fff, (S);
215 ashift_test 0x4002,  16, 0x7fff, (S);
216 ashift_test 0x4002,  15, 0x7fff, (S);
217 ashift_test 0x4002,  14, 0x7fff, (S);
218 ashift_test 0x4002,  13, 0x7fff, (S);
219 ashift_test 0x4002,  12, 0x7fff, (S);
220 ashift_test 0x4002,  11, 0x7fff, (S);
221 ashift_test 0x4002,  10, 0x7fff, (S);
222 ashift_test 0x4002,   9, 0x7fff, (S);
223 ashift_test 0x4002,   8, 0x7fff, (S);
224 ashift_test 0x4002,   7, 0x7fff, (S);
225 ashift_test 0x4002,   6, 0x7fff, (S);
226 ashift_test 0x4002,   5, 0x7fff, (S);
227 ashift_test 0x4002,   4, 0x7fff, (S);
228 ashift_test 0x4002,   3, 0x7fff, (S);
229 ashift_test 0x4002,   2, 0x7fff, (S);
230 ashift_test 0x4002,   1, 0x7fff, (S);
231 ashift_test 0x4002,   0, 0x4002, (S);
232 ashift_test 0x4002,  -1, 0x2001, (S);
233 ashift_test 0x4002,  -2, 0x1000, (S);
234 ashift_test 0x4002,  -3, 0x0800, (S);
235 ashift_test 0x4002,  -4, 0x0400, (S);
236 ashift_test 0x4002,  -5, 0x0200, (S);
237 ashift_test 0x4002,  -6, 0x0100, (S);
238 ashift_test 0x4002,  -7, 0x0080, (S);
239 ashift_test 0x4002,  -8, 0x0040, (S);
240 ashift_test 0x4002,  -9, 0x0020, (S);
241 ashift_test 0x4002, -10, 0x0010, (S);
242 ashift_test 0x4002, -11, 0x0008, (S);
243 ashift_test 0x4002, -12, 0x0004, (S);
244 ashift_test 0x4002, -13, 0x0002, (S);
245 ashift_test 0x4002, -14, 0x0001, (S);
246 ashift_test 0x4002, -15, 0x0000, (S);
247 ashift_test 0x4002, -16, 0x0000, (S);
248 ashift_test 0x4002, -17, 0x0000, (S);
249 ashift_test 0x4002, -31, 0x0000, (S);
250 ashift_test 0x4002, -32, 0x0000, (S);
251 ashift_test 0x4002, -33, 0x7fff, (S);
252 ashift_test 0x4002, -34, 0x7fff, (S);
253
254 ashift_test 0x0001,  33, 0x0000, (S);
255 ashift_test 0x0001,  32, 0x0000, (S);
256 ashift_test 0x0001,  31, 0x7fff, (S);
257 ashift_test 0x0001,  30, 0x7fff, (S);
258 ashift_test 0x0001,  29, 0x7fff, (S);
259 ashift_test 0x0001,  28, 0x7fff, (S);
260 ashift_test 0x0001,  27, 0x7fff, (S);
261 ashift_test 0x0001,  26, 0x7fff, (S);
262 ashift_test 0x0001,  25, 0x7fff, (S);
263 ashift_test 0x0001,  24, 0x7fff, (S);
264 ashift_test 0x0001,  23, 0x7fff, (S);
265 ashift_test 0x0001,  22, 0x7fff, (S);
266 ashift_test 0x0001,  21, 0x7fff, (S);
267 ashift_test 0x0001,  20, 0x7fff, (S);
268 ashift_test 0x0001,  19, 0x7fff, (S);
269 ashift_test 0x0001,  18, 0x7fff, (S);
270 ashift_test 0x0001,  17, 0x7fff, (S);
271 ashift_test 0x0001,  16, 0x7fff, (S);
272 ashift_test 0x0001,  15, 0x7fff, (S);
273 ashift_test 0x0001,  14, 0x4000, (S);
274 ashift_test 0x0001,  13, 0x2000, (S);
275 ashift_test 0x0001,  12, 0x1000, (S);
276 ashift_test 0x0001,  11, 0x0800, (S);
277 ashift_test 0x0001,  10, 0x0400, (S);
278 ashift_test 0x0001,   9, 0x0200, (S);
279 ashift_test 0x0001,   8, 0x0100, (S);
280 ashift_test 0x0001,   7, 0x0080, (S);
281 ashift_test 0x0001,   6, 0x0040, (S);
282 ashift_test 0x0001,   5, 0x0020, (S);
283 ashift_test 0x0001,   4, 0x0010, (S);
284 ashift_test 0x0001,   3, 0x0008, (S);
285 ashift_test 0x0001,   2, 0x0004, (S);
286 ashift_test 0x0001,   1, 0x0002, (S);
287 ashift_test 0x0001,   0, 0x0001, (S);
288 ashift_test 0x0001,  -1, 0x0000, (S);
289 ashift_test 0x0001,  -2, 0x0000, (S);
290 ashift_test 0x0001,  -3, 0x0000, (S);
291 ashift_test 0x0001,  -4, 0x0000, (S);
292 ashift_test 0x0001,  -5, 0x0000, (S);
293 ashift_test 0x0001,  -6, 0x0000, (S);
294 ashift_test 0x0001,  -7, 0x0000, (S);
295 ashift_test 0x0001,  -8, 0x0000, (S);
296 ashift_test 0x0001,  -9, 0x0000, (S);
297 ashift_test 0x0001, -10, 0x0000, (S);
298 ashift_test 0x0001, -11, 0x0000, (S);
299 ashift_test 0x0001, -12, 0x0000, (S);
300 ashift_test 0x0001, -13, 0x0000, (S);
301 ashift_test 0x0001, -14, 0x0, (S);
302 ashift_test 0x0001, -15, 0x0, (S);
303 ashift_test 0x0001, -16, 0x0, (S);
304 ashift_test 0x0001, -17, 0x0, (S);
305 ashift_test 0x0001, -18, 0x0, (S);
306 ashift_test 0x0001, -19, 0x0, (S);
307 ashift_test 0x0001, -20, 0x0, (S);
308 ashift_test 0x0001, -21, 0x0, (S);
309 ashift_test 0x0001, -22, 0x0, (S);
310 ashift_test 0x0001, -23, 0x0, (S);
311 ashift_test 0x0001, -24, 0x0, (S);
312 ashift_test 0x0001, -25, 0x0, (S);
313 ashift_test 0x0001, -26, 0x0, (S);
314 ashift_test 0x0001, -27, 0x0, (S);
315 ashift_test 0x0001, -28, 0x0, (S);
316 ashift_test 0x0001, -29, 0x0, (S);
317 ashift_test 0x0001, -30, 0x0, (S);
318 ashift_test 0x0001, -31, 0x0, (S);
319 ashift_test 0x0001, -32, 0x0, (S);
320 ashift_test 0x0001, -33, 0x7fff, (S);
321 ashift_test 0x0001, -34, 0x7fff, (S);
322
323         pass