sim: bfin: import testsuite
[deliverable/binutils-gdb.git] / sim / testsuite / sim / bfin / c_dsp32shift_pack.s
1 //Original:/testcases/core/c_dsp32shift_pack/c_dsp32shift_pack.dsp
2 // Spec Reference: dsp32shift pack
3 # mach: bfin
4
5 .include "testutils.inc"
6 start
7
8
9
10 imm32 r0, 0x01230000;
11 imm32 r1, 0x02345678;
12 imm32 r2, 0x03456789;
13 imm32 r3, 0x0456789a;
14 imm32 r4, 0x056789ab;
15 imm32 r5, 0x06789abc;
16 imm32 r6, 0x0789abcd;
17 imm32 r7, 0x089abcde;
18 R1 = PACK( R0.L , R0.L );
19 R2 = PACK( R1.L , R0.H );
20 R3 = PACK( R2.H , R0.L );
21 R4 = PACK( R3.H , R0.H );
22 R5 = PACK( R4.L , R0.L );
23 R6 = PACK( R5.L , R0.H );
24 R7 = PACK( R6.H , R0.L );
25 R0 = PACK( R7.H , R0.H );
26 CHECKREG r1, 0x00000000;
27 CHECKREG r0, 0x00000123;
28 CHECKREG r2, 0x00000123;
29 CHECKREG r3, 0x00000000;
30 CHECKREG r4, 0x00000123;
31 CHECKREG r5, 0x01230000;
32 CHECKREG r6, 0x00000123;
33 CHECKREG r7, 0x00000000;
34
35 imm32 r0, 0x11230001;
36 imm32 r1, 0x12345678;
37 imm32 r2, 0x1bcdef12;
38 imm32 r3, 0x1456789a;
39 imm32 r4, 0x1cdef012;
40 imm32 r5, 0x1456789a;
41 imm32 r6, 0x1789abcd;
42 imm32 r7, 0x189abcde;
43 R2 = PACK( R0.L , R1.L );
44 R3 = PACK( R1.L , R1.H );
45 R4 = PACK( R2.H , R1.L );
46 R5 = PACK( R3.H , R1.H );
47 R6 = PACK( R4.L , R1.L );
48 R7 = PACK( R5.L , R1.H );
49 R0 = PACK( R6.H , R1.L );
50 R1 = PACK( R7.H , R1.H );
51 CHECKREG r0, 0x56785678;
52 CHECKREG r1, 0x12341234;
53 CHECKREG r2, 0x00015678;
54 CHECKREG r3, 0x56781234;
55 CHECKREG r4, 0x00015678;
56 CHECKREG r5, 0x56781234;
57 CHECKREG r6, 0x56785678;
58 CHECKREG r7, 0x12341234;
59
60 imm32 r0, 0x20230002;
61 imm32 r1, 0x21345678;
62 imm32 r2, 0x22456789;
63 imm32 r3, 0x2356789a;
64 imm32 r4, 0x246789ab;
65 imm32 r5, 0x25789abc;
66 imm32 r6, 0x2689abcd;
67 imm32 r7, 0x279abcde;
68 R3 = PACK( R0.L , R2.L );
69 R4 = PACK( R1.L , R2.H );
70 R5 = PACK( R2.H , R2.L );
71 R6 = PACK( R3.H , R2.H );
72 R7 = PACK( R4.L , R2.L );
73 R0 = PACK( R5.L , R2.H );
74 R1 = PACK( R6.H , R2.L );
75 R2 = PACK( R7.H , R2.H );
76 CHECKREG r0, 0x67892245;
77 CHECKREG r1, 0x00026789;
78 CHECKREG r2, 0x22452245;
79 CHECKREG r3, 0x00026789;
80 CHECKREG r4, 0x56782245;
81 CHECKREG r5, 0x22456789;
82 CHECKREG r6, 0x00022245;
83 CHECKREG r7, 0x22456789;
84
85 imm32 r0, 0x31230003;
86 imm32 r1, 0x31345678;
87 imm32 r2, 0x31456789;
88 imm32 r3, 0x3156789a;
89 imm32 r4, 0x316789ab;
90 imm32 r5, 0x31789abc;
91 imm32 r6, 0x3189abcd;
92 imm32 r7, 0x311abcde;
93 R4 = PACK( R0.L , R3.L );
94 R5 = PACK( R1.L , R3.H );
95 R6 = PACK( R2.H , R3.L );
96 R7 = PACK( R3.H , R3.H );
97 R0 = PACK( R4.L , R3.L );
98 R1 = PACK( R5.L , R3.H );
99 R2 = PACK( R6.H , R3.L );
100 R3 = PACK( R7.H , R3.H );
101 CHECKREG r0, 0x789A789A;
102 CHECKREG r1, 0x31563156;
103 CHECKREG r2, 0x3145789A;
104 CHECKREG r3, 0x31563156;
105 CHECKREG r4, 0x0003789A;
106 CHECKREG r5, 0x56783156;
107 CHECKREG r6, 0x3145789A;
108 CHECKREG r7, 0x31563156;
109
110 imm32 r0, 0x41230004;
111 imm32 r1, 0x42345678;
112 imm32 r2, 0x43456789;
113 imm32 r3, 0x4456789a;
114 imm32 r4, 0x456789ab;
115 imm32 r5, 0x46789abc;
116 imm32 r6, 0x4789abcd;
117 imm32 r7, 0x489abcde;
118 R0 = PACK( R0.L , R4.L );
119 R1 = PACK( R1.L , R4.H );
120 R2 = PACK( R2.H , R4.L );
121 R3 = PACK( R3.H , R4.H );
122 R4 = PACK( R4.L , R4.L );
123 R5 = PACK( R5.L , R4.H );
124 R6 = PACK( R6.H , R4.L );
125 R7 = PACK( R7.H , R4.H );
126 CHECKREG r0, 0x000489AB;
127 CHECKREG r1, 0x56784567;
128 CHECKREG r2, 0x434589AB;
129 CHECKREG r3, 0x44564567;
130 CHECKREG r4, 0x89AB89AB;
131 CHECKREG r5, 0x9ABC89AB;
132 CHECKREG r6, 0x478989AB;
133 CHECKREG r7, 0x489A89AB;
134
135 imm32 r0, 0x51230005;
136 imm32 r1, 0x52345678;
137 imm32 r2, 0x53456789;
138 imm32 r3, 0x5456789a;
139 imm32 r4, 0x556789ab;
140 imm32 r5, 0x56789abc;
141 imm32 r6, 0x5789abcd;
142 imm32 r7, 0x589abcde;
143 R6 = PACK( R0.L , R5.L );
144 R7 = PACK( R1.L , R5.H );
145 R0 = PACK( R2.H , R5.L );
146 R1 = PACK( R3.H , R5.H );
147 R2 = PACK( R4.L , R5.L );
148 R3 = PACK( R5.L , R5.H );
149 R4 = PACK( R6.H , R5.L );
150 R5 = PACK( R7.H , R5.H );
151 CHECKREG r0, 0x53459ABC;
152 CHECKREG r1, 0x54565678;
153 CHECKREG r2, 0x89AB9ABC;
154 CHECKREG r3, 0x9ABC5678;
155 CHECKREG r4, 0x00059ABC;
156 CHECKREG r5, 0x56785678;
157 CHECKREG r6, 0x00059ABC;
158 CHECKREG r7, 0x56785678;
159
160 imm32 r0, 0x61230006;
161 imm32 r1, 0x62345678;
162 imm32 r2, 0x63456789;
163 imm32 r3, 0x6456789a;
164 imm32 r4, 0x656789ab;
165 imm32 r5, 0x66789abc;
166 imm32 r6, 0x6789abcd;
167 imm32 r7, 0x689abcde;
168 R7 = PACK( R0.L , R6.L );
169 R0 = PACK( R1.L , R6.H );
170 R1 = PACK( R2.H , R6.L );
171 R2 = PACK( R3.H , R6.H );
172 R3 = PACK( R4.L , R6.L );
173 R4 = PACK( R5.L , R6.H );
174 R5 = PACK( R6.H , R6.L );
175 R6 = PACK( R7.H , R6.H );
176 CHECKREG r0, 0x56786789;
177 CHECKREG r1, 0x6345ABCD;
178 CHECKREG r2, 0x64566789;
179 CHECKREG r3, 0x89ABABCD;
180 CHECKREG r4, 0x9ABC6789;
181 CHECKREG r5, 0x6789ABCD;
182 CHECKREG r6, 0x00066789;
183 CHECKREG r7, 0x0006ABCD;
184
185 imm32 r0, 0x71230007;
186 imm32 r1, 0x72345678;
187 imm32 r2, 0x73456789;
188 imm32 r3, 0x7456789a;
189 imm32 r4, 0x756789ab;
190 imm32 r5, 0x76789abc;
191 imm32 r6, 0x7789abcd;
192 imm32 r7, 0x789abcde;
193 R0 = PACK( R0.L , R7.L );
194 R1 = PACK( R1.L , R7.H );
195 R2 = PACK( R2.H , R7.L );
196 R3 = PACK( R3.H , R7.H );
197 R4 = PACK( R4.L , R7.L );
198 R5 = PACK( R5.L , R7.H );
199 R6 = PACK( R6.H , R7.L );
200 R7 = PACK( R7.H , R7.H );
201 CHECKREG r0, 0x0007BCDE;
202 CHECKREG r1, 0x5678789A;
203 CHECKREG r2, 0x7345BCDE;
204 CHECKREG r3, 0x7456789A;
205 CHECKREG r4, 0x89ABBCDE;
206 CHECKREG r5, 0x9ABC789A;
207 CHECKREG r6, 0x7789BCDE;
208 CHECKREG r7, 0x789A789A;
209
210 imm32 r0, 0x81230008;
211 imm32 r1, 0x82345678;
212 imm32 r2, 0x83456789;
213 imm32 r3, 0x8456789a;
214 imm32 r4, 0x856789ab;
215 imm32 r5, 0x86789abc;
216 imm32 r6, 0x8789abcd;
217 imm32 r7, 0x889abcde;
218 R0 = PACK( R0.L , R0.L );
219 R1 = PACK( R1.L , R0.H );
220 R2 = PACK( R2.H , R0.L );
221 R3 = PACK( R3.H , R0.H );
222 R4 = PACK( R4.L , R0.L );
223 R5 = PACK( R5.L , R0.H );
224 R6 = PACK( R6.H , R0.L );
225 R7 = PACK( R7.H , R0.H );
226 CHECKREG r0, 0x00080008;
227 CHECKREG r1, 0x56780008;
228 CHECKREG r2, 0x83450008;
229 CHECKREG r3, 0x84560008;
230 CHECKREG r4, 0x89AB0008;
231 CHECKREG r5, 0x9ABC0008;
232 CHECKREG r6, 0x87890008;
233 CHECKREG r7, 0x889A0008;
234
235 imm32 r0, 0x91230009;
236 imm32 r1, 0x92345678;
237 imm32 r2, 0x93456789;
238 imm32 r3, 0x9456789a;
239 imm32 r4, 0x956789ab;
240 imm32 r5, 0x96789abc;
241 imm32 r6, 0x9789abcd;
242 imm32 r7, 0x989abcde;
243 R0 = PACK( R0.L , R1.L );
244 R1 = PACK( R1.L , R1.H );
245 R2 = PACK( R2.H , R1.L );
246 R3 = PACK( R3.H , R1.H );
247 R4 = PACK( R4.L , R1.L );
248 R5 = PACK( R5.L , R1.H );
249 R6 = PACK( R6.H , R1.L );
250 R7 = PACK( R7.H , R1.H );
251 CHECKREG r0, 0x00095678;
252 CHECKREG r1, 0x56789234;
253 CHECKREG r2, 0x93459234;
254 CHECKREG r3, 0x94565678;
255 CHECKREG r4, 0x89AB9234;
256 CHECKREG r5, 0x9ABC5678;
257 CHECKREG r6, 0x97899234;
258 CHECKREG r7, 0x989A5678;
259
260
261 imm32 r0, 0xa123000a;
262 imm32 r1, 0xa2345678;
263 imm32 r2, 0xa3456789;
264 imm32 r3, 0xa456789a;
265 imm32 r4, 0xa56789ab;
266 imm32 r5, 0xa6789abc;
267 imm32 r6, 0xa789abcd;
268 imm32 r7, 0xa89abcde;
269 R0 = PACK( R0.L , R2.L );
270 R1 = PACK( R1.L , R2.H );
271 R2 = PACK( R2.H , R2.L );
272 R3 = PACK( R3.H , R2.H );
273 R4 = PACK( R4.L , R2.L );
274 R5 = PACK( R5.L , R2.H );
275 R6 = PACK( R6.H , R2.L );
276 R7 = PACK( R7.H , R2.H );
277 CHECKREG r0, 0x000A6789;
278 CHECKREG r1, 0x5678A345;
279 CHECKREG r2, 0xA3456789;
280 CHECKREG r3, 0xA456A345;
281 CHECKREG r4, 0x89AB6789;
282 CHECKREG r5, 0x9ABCA345;
283 CHECKREG r6, 0xA7896789;
284 CHECKREG r7, 0xA89AA345;
285
286 imm32 r0, 0xb123000b;
287 imm32 r1, 0xb2345678;
288 imm32 r2, 0xb3456789;
289 imm32 r3, 0xb456789a;
290 imm32 r4, 0xb56789ab;
291 imm32 r5, 0xb6789abc;
292 imm32 r6, 0xb789abcd;
293 imm32 r7, 0xb89abcde;
294 R0 = PACK( R0.L , R3.L );
295 R1 = PACK( R1.L , R3.H );
296 R2 = PACK( R2.H , R3.L );
297 R3 = PACK( R3.H , R3.H );
298 R4 = PACK( R4.L , R3.L );
299 R5 = PACK( R5.L , R3.H );
300 R6 = PACK( R6.H , R3.L );
301 R7 = PACK( R7.H , R3.H );
302 CHECKREG r0, 0x000B789A;
303 CHECKREG r1, 0x5678B456;
304 CHECKREG r2, 0xB345789A;
305 CHECKREG r3, 0xB456B456;
306 CHECKREG r4, 0x89ABB456;
307 CHECKREG r5, 0x9ABCB456;
308 CHECKREG r6, 0xB789B456;
309 CHECKREG r7, 0xB89AB456;
310
311 imm32 r0, 0xc123000c;
312 imm32 r1, 0xc2345678;
313 imm32 r2, 0xc3456789;
314 imm32 r3, 0xc456789a;
315 imm32 r4, 0xc56789ab;
316 imm32 r5, 0xc6789abc;
317 imm32 r6, 0xc789abcd;
318 imm32 r7, 0xc89abcde;
319 R0 = PACK( R0.L , R4.L );
320 R1 = PACK( R1.L , R4.H );
321 R2 = PACK( R2.H , R4.L );
322 R3 = PACK( R3.H , R4.H );
323 R4 = PACK( R4.L , R4.L );
324 R5 = PACK( R5.L , R4.H );
325 R6 = PACK( R6.H , R4.L );
326 R7 = PACK( R7.H , R4.H );
327 CHECKREG r0, 0x000C89AB;
328 CHECKREG r1, 0x5678C567;
329 CHECKREG r2, 0xC34589AB;
330 CHECKREG r3, 0xC456C567;
331 CHECKREG r4, 0x89AB89AB;
332 CHECKREG r5, 0x9ABC89AB;
333 CHECKREG r6, 0xC78989AB;
334 CHECKREG r7, 0xC89A89AB;
335
336 imm32 r0, 0xd123000d;
337 imm32 r1, 0xd2345678;
338 imm32 r2, 0xd3456789;
339 imm32 r3, 0xd456789a;
340 imm32 r4, 0xd56789ab;
341 imm32 r5, 0xd6789abc;
342 imm32 r6, 0xd789abcd;
343 imm32 r7, 0xd89abcde;
344 R0 = PACK( R0.L , R5.L );
345 R1 = PACK( R1.L , R5.H );
346 R2 = PACK( R2.H , R5.L );
347 R3 = PACK( R3.H , R5.H );
348 R4 = PACK( R4.L , R5.L );
349 R5 = PACK( R5.L , R5.H );
350 R6 = PACK( R6.H , R5.L );
351 R7 = PACK( R7.H , R5.H );
352 CHECKREG r0, 0x000D9ABC;
353 CHECKREG r1, 0x5678D678;
354 CHECKREG r2, 0xD3459ABC;
355 CHECKREG r3, 0xD456D678;
356 CHECKREG r4, 0x89AB9ABC;
357 CHECKREG r5, 0x9ABCD678;
358 CHECKREG r6, 0xD789D678;
359 CHECKREG r7, 0xD89A9ABC;
360
361
362 imm32 r0, 0xe123000e;
363 imm32 r1, 0xe2345678;
364 imm32 r2, 0xe3456789;
365 imm32 r3, 0xe456789a;
366 imm32 r4, 0xe56789ab;
367 imm32 r5, 0xe6789abc;
368 imm32 r6, 0xe789abcd;
369 imm32 r7, 0xe89abcde;
370 R0 = PACK( R0.L , R6.L );
371 R1 = PACK( R1.L , R6.H );
372 R2 = PACK( R2.H , R6.L );
373 R3 = PACK( R3.H , R6.H );
374 R4 = PACK( R4.L , R6.L );
375 R5 = PACK( R5.L , R6.H );
376 R6 = PACK( R6.H , R6.L );
377 R7 = PACK( R7.H , R6.H );
378 CHECKREG r0, 0x000EABCD;
379 CHECKREG r1, 0x5678E789;
380 CHECKREG r2, 0xE345ABCD;
381 CHECKREG r3, 0xE456E789;
382 CHECKREG r4, 0x89ABABCD;
383 CHECKREG r5, 0x9ABCE789;
384 CHECKREG r6, 0xE789ABCD;
385 CHECKREG r7, 0xE89AE789;
386
387 imm32 r0, 0xf123000f;
388 imm32 r1, 0xf2345678;
389 imm32 r2, 0xf3456789;
390 imm32 r3, 0xf456789a;
391 imm32 r4, 0xf56789ab;
392 imm32 r5, 0xf6789abc;
393 imm32 r6, 0xf789abcd;
394 imm32 r7, 0xf89abcde;
395 R0 = PACK( R0.L , R7.L );
396 R1 = PACK( R1.L , R7.H );
397 R2 = PACK( R2.H , R7.L );
398 R3 = PACK( R3.H , R7.H );
399 R4 = PACK( R4.L , R7.L );
400 R5 = PACK( R5.L , R7.H );
401 R6 = PACK( R6.H , R7.L );
402 R7 = PACK( R7.H , R7.H );
403 CHECKREG r0, 0x000FBCDE;
404 CHECKREG r1, 0x5678F89A;
405 CHECKREG r2, 0xF345BCDE;
406 CHECKREG r3, 0xF456F89A;
407 CHECKREG r4, 0x89ABBCDE;
408 CHECKREG r5, 0x9ABCF89A;
409 CHECKREG r6, 0xF789BCDE;
410 CHECKREG r7, 0xF89AF89A;
411 pass
This page took 0.038467 seconds and 4 git commands to generate.