1*6ca2c52aSchristos//Original:/testcases/core/c_dsp32shift_fextx/c_dsp32shift_fextx.dsp
2*6ca2c52aSchristos// Spec Reference: dsp32shift fext x
3*6ca2c52aSchristos# mach: bfin
4*6ca2c52aSchristos
5*6ca2c52aSchristos.include "testutils.inc"
6*6ca2c52aSchristos	start
7*6ca2c52aSchristos
8*6ca2c52aSchristosimm32 r0, 0x00000001;
9*6ca2c52aSchristosimm32 r1, 0x01000801;
10*6ca2c52aSchristosimm32 r2, 0x08200802;
11*6ca2c52aSchristosimm32 r3, 0x08030803;
12*6ca2c52aSchristosimm32 r4, 0x08004804;
13*6ca2c52aSchristosimm32 r5, 0x08000505;
14*6ca2c52aSchristosimm32 r6, 0x08000866;
15*6ca2c52aSchristosimm32 r7, 0x08000807;
16*6ca2c52aSchristosR1 = EXTRACT( R1, R0.L ) (Z);
17*6ca2c52aSchristosR2 = EXTRACT( R2, R0.L ) (Z);
18*6ca2c52aSchristosR3 = EXTRACT( R3, R0.L ) (Z);
19*6ca2c52aSchristosR4 = EXTRACT( R4, R0.L ) (X);
20*6ca2c52aSchristosR5 = EXTRACT( R5, R0.L ) (Z);
21*6ca2c52aSchristosR6 = EXTRACT( R6, R0.L ) (Z);
22*6ca2c52aSchristosR7 = EXTRACT( R7, R0.L ) (X);
23*6ca2c52aSchristosR0 = EXTRACT( R0, R0.L ) (Z);
24*6ca2c52aSchristosCHECKREG r0, 0x00000001;
25*6ca2c52aSchristosCHECKREG r1, 0x00000001;
26*6ca2c52aSchristosCHECKREG r2, 0x00000000;
27*6ca2c52aSchristosCHECKREG r3, 0x00000001;
28*6ca2c52aSchristosCHECKREG r4, 0x00000000;
29*6ca2c52aSchristosCHECKREG r5, 0x00000001;
30*6ca2c52aSchristosCHECKREG r6, 0x00000000;
31*6ca2c52aSchristosCHECKREG r7, 0xFFFFFFFF;
32*6ca2c52aSchristos
33*6ca2c52aSchristosimm32 r0, 0x0900d001;
34*6ca2c52aSchristosimm32 r1, 0x09000002;
35*6ca2c52aSchristosimm32 r2, 0x09000002;
36*6ca2c52aSchristosimm32 r3, 0x09100003;
37*6ca2c52aSchristosimm32 r4, 0x09020004;
38*6ca2c52aSchristosimm32 r5, 0x09003005;
39*6ca2c52aSchristosimm32 r6, 0x09000406;
40*6ca2c52aSchristosimm32 r7, 0x09000057;
41*6ca2c52aSchristosR0 = EXTRACT( R0, R1.L ) (Z);
42*6ca2c52aSchristosR2 = EXTRACT( R2, R1.L ) (Z);
43*6ca2c52aSchristosR3 = EXTRACT( R3, R1.L ) (Z);
44*6ca2c52aSchristosR4 = EXTRACT( R4, R1.L ) (Z);
45*6ca2c52aSchristosR5 = EXTRACT( R5, R1.L ) (X);
46*6ca2c52aSchristosR6 = EXTRACT( R6, R1.L ) (Z);
47*6ca2c52aSchristosR7 = EXTRACT( R7, R1.L ) (X);
48*6ca2c52aSchristosR1 = EXTRACT( R1, R1.L ) (Z);
49*6ca2c52aSchristosCHECKREG r0, 0x00000001;
50*6ca2c52aSchristosCHECKREG r1, 0x00000002;
51*6ca2c52aSchristosCHECKREG r2, 0x00000002;
52*6ca2c52aSchristosCHECKREG r3, 0x00000003;
53*6ca2c52aSchristosCHECKREG r4, 0x00000000;
54*6ca2c52aSchristosCHECKREG r5, 0x00000001;
55*6ca2c52aSchristosCHECKREG r6, 0x00000002;
56*6ca2c52aSchristosCHECKREG r7, 0xFFFFFFFF;
57*6ca2c52aSchristos
58*6ca2c52aSchristos
59*6ca2c52aSchristosimm32 r0, 0x0a00e001;
60*6ca2c52aSchristosimm32 r1, 0x0a00e001;
61*6ca2c52aSchristosimm32 r2, 0x0a00000f;
62*6ca2c52aSchristosimm32 r3, 0x0a000010;
63*6ca2c52aSchristosimm32 r4, 0x0a00e004;
64*6ca2c52aSchristosimm32 r5, 0x0a00e005;
65*6ca2c52aSchristosimm32 r6, 0x0a00e006;
66*6ca2c52aSchristosimm32 r7, 0x0a00e007;
67*6ca2c52aSchristosR0 = EXTRACT( R0, R2.L ) (Z);
68*6ca2c52aSchristosR1 = EXTRACT( R1, R2.L ) (Z);
69*6ca2c52aSchristosR3 = EXTRACT( R3, R2.L ) (Z);
70*6ca2c52aSchristosR4 = EXTRACT( R4, R2.L ) (Z);
71*6ca2c52aSchristosR5 = EXTRACT( R5, R2.L ) (Z);
72*6ca2c52aSchristosR6 = EXTRACT( R6, R2.L ) (Z);
73*6ca2c52aSchristosR7 = EXTRACT( R7, R2.L ) (Z);
74*6ca2c52aSchristosR2 = EXTRACT( R2, R2.L ) (Z);
75*6ca2c52aSchristosCHECKREG r0, 0x00006001;
76*6ca2c52aSchristosCHECKREG r1, 0x00006001;
77*6ca2c52aSchristosCHECKREG r2, 0x0000000F;
78*6ca2c52aSchristosCHECKREG r3, 0x00000010;
79*6ca2c52aSchristosCHECKREG r4, 0x00006004;
80*6ca2c52aSchristosCHECKREG r5, 0x00006005;
81*6ca2c52aSchristosCHECKREG r6, 0x00006006;
82*6ca2c52aSchristosCHECKREG r7, 0x00006007;
83*6ca2c52aSchristos
84*6ca2c52aSchristosimm32 r0, 0x0b00f001;
85*6ca2c52aSchristosimm32 r1, 0x0b00f001;
86*6ca2c52aSchristosimm32 r2, 0x0b00f002;
87*6ca2c52aSchristosimm32 r3, 0x0b000010;
88*6ca2c52aSchristosimm32 r4, 0x0b00f004;
89*6ca2c52aSchristosimm32 r5, 0x0b00f005;
90*6ca2c52aSchristosimm32 r6, 0x0b00f006;
91*6ca2c52aSchristosimm32 r7, 0x0b00f007;
92*6ca2c52aSchristosR0 = EXTRACT( R0, R3.L ) (Z);
93*6ca2c52aSchristosR1 = EXTRACT( R1, R3.L ) (Z);
94*6ca2c52aSchristosR2 = EXTRACT( R2, R3.L ) (X);
95*6ca2c52aSchristosR4 = EXTRACT( R4, R3.L ) (Z);
96*6ca2c52aSchristosR5 = EXTRACT( R5, R3.L ) (Z);
97*6ca2c52aSchristosR6 = EXTRACT( R6, R3.L ) (X);
98*6ca2c52aSchristosR7 = EXTRACT( R7, R3.L ) (Z);
99*6ca2c52aSchristosR3 = EXTRACT( R3, R3.L ) (Z);
100*6ca2c52aSchristosCHECKREG r0, 0x0000F001;
101*6ca2c52aSchristosCHECKREG r1, 0x0000F001;
102*6ca2c52aSchristosCHECKREG r2, 0xFFFFF002;
103*6ca2c52aSchristosCHECKREG r3, 0x00000010;
104*6ca2c52aSchristosCHECKREG r4, 0x0000F004;
105*6ca2c52aSchristosCHECKREG r5, 0x0000F005;
106*6ca2c52aSchristosCHECKREG r6, 0xFFFFF006;
107*6ca2c52aSchristosCHECKREG r7, 0x0000F007;
108*6ca2c52aSchristos
109*6ca2c52aSchristosimm32 r0, 0x0c0000c0;
110*6ca2c52aSchristosimm32 r1, 0x0c0100c0;
111*6ca2c52aSchristosimm32 r2, 0x0c0200c0;
112*6ca2c52aSchristosimm32 r3, 0x0c0300c0;
113*6ca2c52aSchristosimm32 r4, 0x0c04000c;
114*6ca2c52aSchristosimm32 r5, 0x0c0500c0;
115*6ca2c52aSchristosimm32 r6, 0x0c0600c0;
116*6ca2c52aSchristosimm32 r7, 0x0c0700c0;
117*6ca2c52aSchristosR0 = EXTRACT( R0, R4.L ) (Z);
118*6ca2c52aSchristosR1 = EXTRACT( R1, R4.L ) (Z);
119*6ca2c52aSchristosR2 = EXTRACT( R2, R4.L ) (Z);
120*6ca2c52aSchristosR3 = EXTRACT( R3, R4.L ) (Z);
121*6ca2c52aSchristosR5 = EXTRACT( R5, R4.L ) (X);
122*6ca2c52aSchristosR6 = EXTRACT( R6, R4.L ) (Z);
123*6ca2c52aSchristosR7 = EXTRACT( R7, R4.L ) (Z);
124*6ca2c52aSchristosR4 = EXTRACT( R4, R4.L ) (Z);
125*6ca2c52aSchristosCHECKREG r0, 0x000000C0;
126*6ca2c52aSchristosCHECKREG r1, 0x000000C0;
127*6ca2c52aSchristosCHECKREG r2, 0x000000C0;
128*6ca2c52aSchristosCHECKREG r3, 0x000000C0;
129*6ca2c52aSchristosCHECKREG r4, 0x0000000C;
130*6ca2c52aSchristosCHECKREG r5, 0x000000C0;
131*6ca2c52aSchristosCHECKREG r6, 0x000000C0;
132*6ca2c52aSchristosCHECKREG r7, 0x000000C0;
133*6ca2c52aSchristos
134*6ca2c52aSchristosimm32 r0, 0xa00100d0;
135*6ca2c52aSchristosimm32 r1, 0xa00100d1;
136*6ca2c52aSchristosimm32 r2, 0xa00200d0;
137*6ca2c52aSchristosimm32 r3, 0xa00300d0;
138*6ca2c52aSchristosimm32 r4, 0xa00400d0;
139*6ca2c52aSchristosimm32 r5, 0xa0050007;
140*6ca2c52aSchristosimm32 r6, 0xa00600d0;
141*6ca2c52aSchristosimm32 r7, 0xa00700d0;
142*6ca2c52aSchristosR0 = EXTRACT( R0, R5.L ) (Z);
143*6ca2c52aSchristosR1 = EXTRACT( R1, R5.L ) (X);
144*6ca2c52aSchristosR2 = EXTRACT( R2, R5.L ) (Z);
145*6ca2c52aSchristosR3 = EXTRACT( R3, R5.L ) (Z);
146*6ca2c52aSchristosR4 = EXTRACT( R4, R5.L ) (X);
147*6ca2c52aSchristosR6 = EXTRACT( R6, R5.L ) (Z);
148*6ca2c52aSchristosR7 = EXTRACT( R7, R5.L ) (Z);
149*6ca2c52aSchristosR5 = EXTRACT( R5, R5.L ) (Z);
150*6ca2c52aSchristosCHECKREG r0, 0x00000050;
151*6ca2c52aSchristosCHECKREG r1, 0xFFFFFFD1;
152*6ca2c52aSchristosCHECKREG r2, 0x00000050;
153*6ca2c52aSchristosCHECKREG r3, 0x00000050;
154*6ca2c52aSchristosCHECKREG r4, 0xFFFFFFD0;
155*6ca2c52aSchristosCHECKREG r5, 0x00000007;
156*6ca2c52aSchristosCHECKREG r6, 0x00000050;
157*6ca2c52aSchristosCHECKREG r7, 0x00000050;
158*6ca2c52aSchristos
159*6ca2c52aSchristosimm32 r0, 0xb0010000;
160*6ca2c52aSchristosimm32 r1, 0xb0010000;
161*6ca2c52aSchristosimm32 r2, 0xb002000f;
162*6ca2c52aSchristosimm32 r3, 0xb0030000;
163*6ca2c52aSchristosimm32 r4, 0xb0040000;
164*6ca2c52aSchristosimm32 r5, 0xb0050000;
165*6ca2c52aSchristosimm32 r6, 0xb0060009;
166*6ca2c52aSchristosimm32 r7, 0xb0070000;
167*6ca2c52aSchristosR0 = EXTRACT( R0, R6.L ) (Z);
168*6ca2c52aSchristosR1 = EXTRACT( R1, R6.L ) (Z);
169*6ca2c52aSchristosR2 = EXTRACT( R2, R6.L ) (Z);
170*6ca2c52aSchristosR3 = EXTRACT( R3, R6.L ) (X);
171*6ca2c52aSchristosR4 = EXTRACT( R4, R6.L ) (Z);
172*6ca2c52aSchristosR5 = EXTRACT( R5, R6.L ) (Z);
173*6ca2c52aSchristosR6 = EXTRACT( R6, R6.L ) (Z);
174*6ca2c52aSchristosR7 = EXTRACT( R7, R6.L ) (Z);
175*6ca2c52aSchristosCHECKREG r0, 0x00000000;
176*6ca2c52aSchristosCHECKREG r1, 0x00000000;
177*6ca2c52aSchristosCHECKREG r2, 0x0000000F;
178*6ca2c52aSchristosCHECKREG r3, 0x00000000;
179*6ca2c52aSchristosCHECKREG r4, 0x00000000;
180*6ca2c52aSchristosCHECKREG r5, 0x00000000;
181*6ca2c52aSchristosCHECKREG r6, 0x00000009;
182*6ca2c52aSchristosCHECKREG r7, 0x00000000;
183*6ca2c52aSchristos
184*6ca2c52aSchristosimm32 r0, 0xd00100e0;
185*6ca2c52aSchristosimm32 r1, 0xd00100e0;
186*6ca2c52aSchristosimm32 r2, 0xd00200e0;
187*6ca2c52aSchristosimm32 r3, 0xd00300e0;
188*6ca2c52aSchristosimm32 r4, 0xd00400e0;
189*6ca2c52aSchristosimm32 r5, 0xd00500e0;
190*6ca2c52aSchristosimm32 r6, 0xd00600e0;
191*6ca2c52aSchristosimm32 r7, 0xd0070023;
192*6ca2c52aSchristosR1 = EXTRACT( R0, R7.L ) (Z);
193*6ca2c52aSchristosR2 = EXTRACT( R1, R7.L ) (Z);
194*6ca2c52aSchristosR3 = EXTRACT( R2, R7.L ) (Z);
195*6ca2c52aSchristosR4 = EXTRACT( R3, R7.L ) (Z);
196*6ca2c52aSchristosR5 = EXTRACT( R4, R7.L ) (X);
197*6ca2c52aSchristosR6 = EXTRACT( R5, R7.L ) (Z);
198*6ca2c52aSchristosR7 = EXTRACT( R6, R7.L ) (X);
199*6ca2c52aSchristosR0 = EXTRACT( R7, R7.L ) (Z);
200*6ca2c52aSchristosCHECKREG r0, 0x00000000;
201*6ca2c52aSchristosCHECKREG r1, 0x00000000;
202*6ca2c52aSchristosCHECKREG r2, 0x00000000;
203*6ca2c52aSchristosCHECKREG r3, 0x00000000;
204*6ca2c52aSchristosCHECKREG r4, 0x00000000;
205*6ca2c52aSchristosCHECKREG r5, 0x00000000;
206*6ca2c52aSchristosCHECKREG r6, 0x00000000;
207*6ca2c52aSchristosCHECKREG r7, 0x00000000;
208*6ca2c52aSchristos
209*6ca2c52aSchristos
210*6ca2c52aSchristospass
211