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