xref: /netbsd-src/external/gpl3/gdb/dist/sim/testsuite/bfin/c_dsp32alu_byteunpack.s (revision 7bdf38e5b7a28439665f2fdeff81e36913eef7dd)
1//Original:/proj/frio/dv/testcases/core/c_dsp32alu_byteunpack/c_dsp32alu_byteunpack.dsp
2// Spec Reference: dsp32alu byteunpack
3# mach: bfin
4
5.include "testutils.inc"
6	start
7
8	imm32 r0, 0x15678911;
9	imm32 r1, 0x2789ab1d;
10	imm32 r2, 0x34445515;
11	imm32 r3, 0x46667717;
12	imm32 r4, 0x5567891b;
13	imm32 r5, 0x6789ab1d;
14	imm32 r6, 0x74445515;
15	imm32 r7, 0x86667777;
16	( R4 , R5 ) = BYTEUNPACK R1:0;
17	( R1 , R3 ) = BYTEUNPACK R1:0;
18	( R0 , R7 ) = BYTEUNPACK R1:0;
19	( R6 , R2 ) = BYTEUNPACK R1:0;
20	CHECKREG r0, 0x00150067;
21	CHECKREG r1, 0x00150067;
22	CHECKREG r2, 0x00000067;
23	CHECKREG r3, 0x00890011;
24	CHECKREG r4, 0x00150067;
25	CHECKREG r5, 0x00890011;
26	CHECKREG r6, 0x00000015;
27	CHECKREG r7, 0x00890011;
28
29	imm32 r0, 0x1567892b;
30	imm32 r1, 0x2789ab2d;
31	imm32 r2, 0x34445525;
32	imm32 r3, 0x46667727;
33	imm32 r4, 0x58889929;
34	imm32 r5, 0x6aaabb2b;
35	imm32 r6, 0x7cccdd2d;
36	imm32 r7, 0x8eeeffff;
37	( R1 , R0 ) = BYTEUNPACK R3:2;
38	( R3 , R4 ) = BYTEUNPACK R3:2;
39	( R5 , R2 ) = BYTEUNPACK R3:2;
40	( R7 , R6 ) = BYTEUNPACK R3:2;
41	CHECKREG r0, 0x00550025;
42	CHECKREG r1, 0x00340044;
43	CHECKREG r2, 0x00550025;
44	CHECKREG r3, 0x00340044;
45	CHECKREG r4, 0x00550025;
46	CHECKREG r5, 0x00340044;
47	CHECKREG r6, 0x00000025;
48	CHECKREG r7, 0x00000055;
49
50	imm32 r0, 0x416789ab;
51	imm32 r1, 0x6289abcd;
52	imm32 r2, 0x43445555;
53	imm32 r3, 0x64667777;
54	imm32 r0, 0x456789ab;
55	imm32 r1, 0x6689abcd;
56	imm32 r2, 0x47445555;
57	imm32 r3, 0x68667777;
58	( R1 , R2 ) = BYTEUNPACK R1:0 (R);
59	( R3 , R6 ) = BYTEUNPACK R1:0 (R);
60	( R4 , R0 ) = BYTEUNPACK R1:0 (R);
61	( R5 , R7 ) = BYTEUNPACK R1:0 (R);
62	CHECKREG r0, 0x00000089;
63	CHECKREG r1, 0x00660089;
64	CHECKREG r2, 0x00AB00CD;
65	CHECKREG r3, 0x00000066;
66	CHECKREG r4, 0x00000066;
67	CHECKREG r5, 0x00000066;
68	CHECKREG r6, 0x00000089;
69	CHECKREG r7, 0x00000089;
70
71	imm32 r0, 0x496789ab;
72	imm32 r1, 0x6489abcd;
73	imm32 r2, 0x4b445555;
74	imm32 r3, 0x6c647777;
75	imm32 r4, 0x8d889999;
76	imm32 r5, 0xaeaa4bbb;
77	imm32 r6, 0xcfccd44d;
78	imm32 r7, 0xe1eefff4;
79	( R0 , R1 ) = BYTEUNPACK R3:2 (R);
80	( R2 , R3 ) = BYTEUNPACK R3:2 (R);
81	( R4 , R5 ) = BYTEUNPACK R3:2 (R);
82	( R6 , R7 ) = BYTEUNPACK R3:2 (R);
83	CHECKREG r0, 0x006C0064;
84	CHECKREG r1, 0x00770077;
85	CHECKREG r2, 0x006C0064;
86	CHECKREG r3, 0x00770077;
87	CHECKREG r4, 0x00000077;
88	CHECKREG r5, 0x00000077;
89	CHECKREG r6, 0x00000077;
90	CHECKREG r7, 0x00000077;
91
92	imm32 r0, 0x4537891b;
93	imm32 r1, 0x6759ab2d;
94	imm32 r2, 0x44555535;
95	imm32 r3, 0x66665747;
96	imm32 r4, 0x88789565;
97	imm32 r5, 0xaa8abb5b;
98	imm32 r6, 0xcc9cdd85;
99	imm32 r7, 0xeeaeff9f;
100	( R0 , R1 ) = BYTEUNPACK R1:0;
101	( R2 , R3 ) = BYTEUNPACK R3:2 (R);
102	( R4 , R5 ) = BYTEUNPACK R1:0 (R);
103	( R6 , R7 ) = BYTEUNPACK R3:2;
104	CHECKREG r0, 0x00450037;
105	CHECKREG r1, 0x0089001B;
106	CHECKREG r2, 0x00660066;
107	CHECKREG r3, 0x00570047;
108	CHECKREG r4, 0x00000089;
109	CHECKREG r5, 0x0000001B;
110	CHECKREG r6, 0x00000066;
111	CHECKREG r7, 0x00000066;
112
113	pass
114