xref: /netbsd-src/external/gpl3/gdb/dist/sim/testsuite/bfin/c_dsp32shiftim_ahalf_rn.s (revision 4b169a6ba595ae283ca507b26b15fdff40495b1c)
1//Original:/testcases/core/c_dsp32shiftim_ahalf_rn/c_dsp32shiftim_ahalf_rn.dsp
2// Spec Reference: dsp32shift ashift
3# mach: bfin
4
5.include "testutils.inc"
6	start
7
8
9
10imm32 r0, 0x00000000;
11R0.L = -1;
12imm32 r1, 0x00008001;
13imm32 r2, 0x00008002;
14imm32 r3, 0x00008003;
15imm32 r4, 0x00008004;
16imm32 r5, 0x00008005;
17imm32 r6, 0x00008006;
18imm32 r7, 0x00008007;
19R0.L = R0.L >>> 10;
20R1.L = R1.L >>> 10;
21R2.L = R2.L >>> 10;
22R3.L = R3.L >>> 10;
23R4.L = R4.L >>> 10;
24R5.L = R5.L >>> 10;
25R6.L = R6.L >>> 10;
26R7.L = R7.L >>> 10;
27CHECKREG r0, 0x0000FFFF;
28CHECKREG r1, 0x0000FFE0;
29CHECKREG r2, 0x0000FFE0;
30CHECKREG r3, 0x0000FFE0;
31CHECKREG r4, 0x0000FFE0;
32CHECKREG r5, 0x0000FFE0;
33CHECKREG r6, 0x0000FFE0;
34CHECKREG r7, 0x0000FFE0;
35
36imm32 r0, 0x02008020;
37imm32 r0, 0x02008021;
38imm32 r2, 0x02008022;
39imm32 r3, 0x02008023;
40imm32 r4, 0x02008024;
41imm32 r5, 0x02008025;
42imm32 r6, 0x02008026;
43imm32 r7, 0x02008027;
44R0.L = R0.L >>> 11;
45R1.L = R1.L >>> 11;
46R2.L = R2.L >>> 11;
47R3.L = R3.L >>> 11;
48R4.L = R4.L >>> 11;
49R5.L = R5.L >>> 11;
50R6.L = R6.L >>> 11;
51R7.L = R7.L >>> 11;
52CHECKREG r0, 0x0200FFF0;
53CHECKREG r1, 0x0000FFFF;
54CHECKREG r2, 0x0200FFF0;
55CHECKREG r3, 0x0200FFF0;
56CHECKREG r4, 0x0200FFF0;
57CHECKREG r5, 0x0200FFF0;
58CHECKREG r6, 0x0200FFF0;
59CHECKREG r7, 0x0200FFF0;
60
61
62imm32 r0, 0x00308001;
63imm32 r1, 0x00308001;
64R2.L = -15;
65imm32 r3, 0x00308003;
66imm32 r4, 0x00308004;
67imm32 r5, 0x00308005;
68imm32 r6, 0x00308006;
69imm32 r7, 0x00308007;
70R0.L = R0.L >>> 12;
71R1.L = R1.L >>> 12;
72R2.L = R2.L >>> 12;
73R3.L = R3.L >>> 12;
74R4.L = R4.L >>> 12;
75R5.L = R5.L >>> 12;
76R6.L = R6.L >>> 12;
77R7.L = R7.L >>> 12;
78CHECKREG r0, 0x0030FFF8;
79CHECKREG r1, 0x0030FFF8;
80CHECKREG r2, 0x0200FFFF;
81CHECKREG r3, 0x0030FFF8;
82CHECKREG r4, 0x0030FFF8;
83CHECKREG r5, 0x0030FFF8;
84CHECKREG r6, 0x0030FFF8;
85CHECKREG r7, 0x0030FFF8;
86
87imm32 r0, 0x00008401;
88imm32 r1, 0x00008401;
89imm32 r2, 0x00008402;
90R3.L = -16;
91imm32 r4, 0x00008404;
92imm32 r5, 0x00008405;
93imm32 r6, 0x00008406;
94imm32 r7, 0x00008407;
95R0.L = R0.L >>> 3;
96R1.L = R1.L >>> 3;
97R2.L = R2.L >>> 3;
98R3.L = R3.L >>> 3;
99R4.L = R4.L >>> 3;
100R5.L = R5.L >>> 3;
101R6.L = R6.L >>> 3;
102R7.L = R7.L >>> 3;
103CHECKREG r0, 0x0000F080;
104CHECKREG r1, 0x0000F080;
105CHECKREG r2, 0x0000F080;
106CHECKREG r3, 0x0030FFFE;
107CHECKREG r4, 0x0000F080;
108CHECKREG r5, 0x0000F080;
109CHECKREG r6, 0x0000F080;
110CHECKREG r7, 0x0000F080;
111
112// d_lo = ashift (d_hi BY d_lo)
113// RHx by RLx
114imm32 r0, 0x05000500;
115imm32 r1, 0x85010500;
116imm32 r2, 0x85020500;
117imm32 r3, 0x85030500;
118imm32 r4, 0x85040500;
119imm32 r5, 0x85050500;
120imm32 r6, 0x85060500;
121imm32 r7, 0x85070500;
122R0.L = R0.H >>> 10;
123R1.L = R1.H >>> 10;
124R2.L = R2.H >>> 10;
125R3.L = R3.H >>> 10;
126R4.L = R4.H >>> 10;
127R5.L = R5.H >>> 10;
128R6.L = R6.H >>> 10;
129R7.L = R7.H >>> 10;
130CHECKREG r0, 0x05000001;
131CHECKREG r1, 0x8501FFE1;
132CHECKREG r2, 0x8502FFE1;
133CHECKREG r3, 0x8503FFE1;
134CHECKREG r4, 0x8504FFE1;
135CHECKREG r5, 0x8505FFE1;
136CHECKREG r6, 0x8506FFE1;
137CHECKREG r7, 0x8507FFE1;
138
139imm32 r0, 0x80610000;
140R1.L = -1;
141imm32 r2, 0x80620000;
142imm32 r3, 0x80630000;
143imm32 r4, 0x80640000;
144imm32 r5, 0x80650000;
145imm32 r6, 0x80660000;
146imm32 r7, 0x80670000;
147R0.L = R0.H >>> 11;
148R1.L = R1.H >>> 11;
149R2.L = R2.H >>> 11;
150R3.L = R3.H >>> 11;
151R4.L = R4.H >>> 11;
152R5.L = R5.H >>> 11;
153R6.L = R6.H >>> 11;
154R7.L = R7.H >>> 11;
155CHECKREG r0, 0x8061FFF0;
156CHECKREG r1, 0x8501FFF0;
157CHECKREG r2, 0x8062FFF0;
158CHECKREG r3, 0x8063FFF0;
159CHECKREG r4, 0x8064FFF0;
160CHECKREG r5, 0x8065FFF0;
161CHECKREG r6, 0x8066FFF0;
162CHECKREG r7, 0x8067FFF0;
163
164
165imm32 r0, 0xa0010070;
166imm32 r1, 0xa0010070;
167R2.L = -15;
168imm32 r3, 0xa0030070;
169imm32 r4, 0xa0040070;
170imm32 r5, 0xa0050070;
171imm32 r6, 0xa0060070;
172imm32 r7, 0xa0070070;
173R0.L = R0.H >>> 12;
174R1.L = R1.H >>> 12;
175R2.L = R2.H >>> 12;
176R3.L = R3.H >>> 12;
177R4.L = R4.H >>> 12;
178R5.L = R5.H >>> 12;
179R6.L = R6.H >>> 12;
180R7.L = R7.H >>> 12;
181CHECKREG r0, 0xA001FFFA;
182CHECKREG r1, 0xA001FFFA;
183CHECKREG r2, 0x8062FFF8;
184CHECKREG r3, 0xA003FFFA;
185CHECKREG r4, 0xA004FFFA;
186CHECKREG r5, 0xA005FFFA;
187CHECKREG r6, 0xA006FFFA;
188CHECKREG r7, 0xA007FFFA;
189
190imm32 r0, 0xb8010001;
191imm32 r1, 0xb8010001;
192imm32 r2, 0xb8020002;
193R3.L = -16;
194imm32 r4, 0xb8040004;
195imm32 r5, 0xb8050005;
196imm32 r6, 0xb8060006;
197imm32 r7, 0xb8070007;
198R0.L = R0.H >>> 13;
199R1.L = R1.H >>> 13;
200R2.L = R2.H >>> 13;
201R3.L = R3.H >>> 13;
202R4.L = R4.H >>> 13;
203R5.L = R5.H >>> 13;
204R6.L = R6.H >>> 13;
205R7.L = R7.H >>> 13;
206CHECKREG r0, 0xB801FFFD;
207CHECKREG r1, 0xB801FFFD;
208CHECKREG r2, 0xB802FFFD;
209CHECKREG r3, 0xA003FFFD;
210CHECKREG r4, 0xB804FFFD;
211CHECKREG r5, 0xB805FFFD;
212CHECKREG r6, 0xB806FFFD;
213CHECKREG r7, 0xB807FFFD;
214
215// d_hi = ashft (d_lo BY d_lo)
216// RLx by RLx
217imm32 r0, 0x00009001;
218imm32 r1, 0x00009001;
219imm32 r2, 0x00009002;
220imm32 r3, 0x00009003;
221imm32 r4, 0x00009000;
222imm32 r5, 0x00009005;
223imm32 r6, 0x00009006;
224imm32 r7, 0x00009007;
225R0.H = R0.L >>> 14;
226R1.H = R1.L >>> 14;
227R2.H = R2.L >>> 14;
228R3.H = R3.L >>> 14;
229R4.H = R4.L >>> 14;
230R5.H = R5.L >>> 14;
231R6.H = R6.L >>> 14;
232R7.H = R7.L >>> 14;
233CHECKREG r0, 0xFFFE9001;
234CHECKREG r1, 0xFFFE9001;
235CHECKREG r2, 0xFFFE9002;
236CHECKREG r3, 0xFFFE9003;
237CHECKREG r4, 0xFFFE9000;
238CHECKREG r5, 0xFFFE9005;
239CHECKREG r6, 0xFFFE9006;
240CHECKREG r7, 0xFFFE9007;
241
242imm32 r0, 0xa0008001;
243imm32 r1, 0xa0008001;
244imm32 r2, 0xa0008002;
245imm32 r3, 0xa0008003;
246imm32 r4, 0xa0008004;
247R5.L = -1;
248imm32 r6, 0xa0008006;
249imm32 r7, 0xa0008007;
250R0.H = R0.L >>> 5;
251R1.H = R1.L >>> 5;
252R2.H = R2.L >>> 5;
253R3.H = R3.L >>> 5;
254R4.H = R4.L >>> 5;
255R5.H = R5.L >>> 5;
256R6.H = R6.L >>> 5;
257R7.H = R7.L >>> 5;
258CHECKREG r0, 0xFC008001;
259CHECKREG r1, 0xFC008001;
260CHECKREG r2, 0xFC008002;
261CHECKREG r3, 0xFC008003;
262CHECKREG r4, 0xFC008004;
263CHECKREG r5, 0xFFFFFFFF;
264CHECKREG r6, 0xFC008006;
265CHECKREG r7, 0xFC008007;
266
267
268imm32 r0, 0x00009b01;
269imm32 r1, 0x00009b01;
270imm32 r2, 0x00009b02;
271imm32 r3, 0x00009b03;
272imm32 r4, 0x00009b04;
273imm32 r5, 0x00009b05;
274R6.L = -15;
275imm32 r7, 0x00009007;
276R0.H = R0.L >>> 6;
277R1.H = R1.L >>> 6;
278R2.H = R2.L >>> 6;
279R3.H = R3.L >>> 6;
280R4.H = R4.L >>> 6;
281R5.H = R5.L >>> 6;
282R6.H = R6.L >>> 6;
283R7.H = R7.L >>> 6;
284CHECKREG r0, 0xFE6C9B01;
285CHECKREG r1, 0xFE6C9B01;
286CHECKREG r2, 0xFE6C9B02;
287CHECKREG r3, 0xFE6C9B03;
288CHECKREG r4, 0xFE6C9B04;
289CHECKREG r5, 0xFE6C9B05;
290CHECKREG r6, 0xFFFFFFF1;
291CHECKREG r7, 0xFE409007;
292
293imm32 r0, 0x0000a0c1;
294imm32 r1, 0x0000a0c1;
295imm32 r2, 0x0000a0c2;
296imm32 r3, 0x0000a0c3;
297imm32 r4, 0x0000a0c4;
298imm32 r5, 0x0000a0c5;
299imm32 r6, 0x0000a0c6;
300R7.L = -16;
301R0.H = R0.L >>> 7;
302R1.H = R1.L >>> 7;
303R2.H = R2.L >>> 7;
304R3.H = R3.L >>> 7;
305R4.H = R4.L >>> 7;
306R5.H = R5.L >>> 7;
307R6.H = R6.L >>> 7;
308R7.H = R7.L >>> 7;
309CHECKREG r0, 0xFF41A0C1;
310CHECKREG r1, 0xFF41A0C1;
311CHECKREG r2, 0xFF41A0C2;
312CHECKREG r3, 0xFF41A0C3;
313CHECKREG r4, 0xFF41A0C4;
314CHECKREG r5, 0xFF41A0C5;
315CHECKREG r6, 0xFF41A0C6;
316CHECKREG r7, 0xFFFFFFF0;
317
318imm32 r0, 0x80010d00;
319imm32 r1, 0x80010d00;
320imm32 r2, 0x80020d00;
321imm32 r3, 0x80030d00;
322R4.L = -1;
323imm32 r5, 0x80050d00;
324imm32 r6, 0x80060d00;
325imm32 r7, 0x80070d00;
326R0.H = R0.H >>> 14;
327R1.H = R1.H >>> 14;
328R2.H = R2.H >>> 14;
329R3.H = R3.H >>> 14;
330R4.H = R4.H >>> 14;
331R5.H = R5.H >>> 14;
332R6.H = R6.H >>> 14;
333R7.H = R7.H >>> 14;
334CHECKREG r0, 0xFFFE0D00;
335CHECKREG r1, 0xFFFE0D00;
336CHECKREG r2, 0xFFFE0D00;
337CHECKREG r3, 0xFFFE0D00;
338CHECKREG r4, 0xFFFFFFFF;
339CHECKREG r5, 0xFFFE0D00;
340CHECKREG r6, 0xFFFE0D00;
341CHECKREG r7, 0xFFFE0D00;
342
343imm32 r0, 0x8d010000;
344imm32 r1, 0x8d010000;
345imm32 r2, 0x8d020000;
346imm32 r3, 0x8d030000;
347imm32 r4, 0x8d040000;
348R5.L = -1;
349imm32 r6, 0x8d060000;
350imm32 r7, 0x8d070000;
351R0.H = R0.H >>> 15;
352R1.H = R1.H >>> 15;
353R2.H = R2.H >>> 15;
354R3.H = R3.H >>> 15;
355R4.H = R4.H >>> 15;
356R5.H = R5.H >>> 15;
357R6.H = R6.H >>> 15;
358R7.H = R7.H >>> 15;
359CHECKREG r0, 0xFFFF0000;
360CHECKREG r1, 0xFFFF0000;
361CHECKREG r2, 0xFFFF0000;
362CHECKREG r3, 0xFFFF0000;
363CHECKREG r4, 0xFFFF0000;
364CHECKREG r5, 0xFFFFFFFF;
365CHECKREG r6, 0xFFFF0000;
366CHECKREG r7, 0xFFFF0000;
367
368
369imm32 r0, 0xde010000;
370imm32 r1, 0xde010000;
371imm32 r2, 0xde020000;
372imm32 r3, 0xde030000;
373imm32 r4, 0xde040000;
374imm32 r5, 0xde050000;
375R6.L = -15;
376imm32 r7, 0xd0070000;
377R0.L = R0.H >>> 10;
378R1.L = R1.H >>> 10;
379R2.L = R2.H >>> 10;
380R3.L = R3.H >>> 10;
381R4.L = R4.H >>> 10;
382R5.L = R5.H >>> 10;
383R6.L = R6.H >>> 10;
384R7.L = R7.H >>> 10;
385CHECKREG r0, 0xDE01FFF7;
386CHECKREG r1, 0xDE01FFF7;
387CHECKREG r2, 0xDE02FFF7;
388CHECKREG r3, 0xDE03FFF7;
389CHECKREG r4, 0xDE04FFF7;
390CHECKREG r5, 0xDE05FFF7;
391CHECKREG r6, 0xFFFFFFFF;
392CHECKREG r7, 0xD007FFF4;
393
394imm32 r0, 0x9f010c00;
395imm32 r1, 0xaf010c00;
396imm32 r2, 0xbf020c00;
397imm32 r3, 0xcf030c00;
398imm32 r4, 0xdf040c00;
399imm32 r5, 0xef050c00;
400imm32 r6, 0xff060c00;
401R7.L = -16;
402R0.H = R0.H >>> 5;
403R1.H = R1.H >>> 5;
404R2.H = R2.H >>> 5;
405R3.H = R3.H >>> 5;
406R4.H = R4.H >>> 5;
407R5.H = R5.H >>> 5;
408R6.H = R6.H >>> 5;
409R7.H = R7.H >>> 5;
410CHECKREG r0, 0xFCF80C00;
411CHECKREG r1, 0xFD780C00;
412CHECKREG r2, 0xFDF80C00;
413CHECKREG r3, 0xFE780C00;
414CHECKREG r4, 0xFEF80C00;
415CHECKREG r5, 0xFF780C00;
416CHECKREG r6, 0xFFF80C00;
417CHECKREG r7, 0xFE80FFF0;
418pass
419