1//Original:/testcases/core/c_dsp32shift_expadj_l/c_dsp32shift_expadj_l.dsp
2// Spec Reference: dsp32shift expadj rl
3# mach: bfin
4
5.include "testutils.inc"
6	start
7
8
9
10
11imm32 r0, 0x00000000;
12imm32 r1, 0x0000c001;
13imm32 r2, 0x0000c002;
14imm32 r3, 0x0000c003;
15imm32 r4, 0x0000c004;
16imm32 r5, 0x0000c005;
17imm32 r6, 0x0000c006;
18imm32 r7, 0x0000c007;
19R1.L = EXPADJ( R1.L , R0.L );
20R2.L = EXPADJ( R2.L , R0.L );
21R3.L = EXPADJ( R3.L , R0.L );
22R4.L = EXPADJ( R4.L , R0.L );
23R5.L = EXPADJ( R5.L , R0.L );
24R6.L = EXPADJ( R6.L , R0.L );
25R7.L = EXPADJ( R7.L , R0.L );
26R0.L = EXPADJ( R0.L , R0.L );
27CHECKREG r0, 0x00000000;
28CHECKREG r1, 0x00000000;
29CHECKREG r2, 0x00000000;
30CHECKREG r3, 0x00000000;
31CHECKREG r4, 0x00000000;
32CHECKREG r5, 0x00000000;
33CHECKREG r6, 0x00000000;
34CHECKREG r7, 0x00000000;
35
36imm32 r0, 0x11001001;
37imm32 r1, 0x11001001;
38imm32 r2, 0x11001002;
39imm32 r3, 0x11001003;
40imm32 r4, 0x11001004;
41imm32 r5, 0x11001005;
42imm32 r6, 0x11001006;
43imm32 r7, 0x11001007;
44R0.L = EXPADJ( R0.L , R1.L );
45R2.L = EXPADJ( R2.L , R1.L );
46R3.L = EXPADJ( R3.L , R1.L );
47R4.L = EXPADJ( R4.L , R1.L );
48R5.L = EXPADJ( R5.L , R1.L );
49R6.L = EXPADJ( R6.L , R1.L );
50R7.L = EXPADJ( R7.L , R1.L );
51R1.L = EXPADJ( R1.L , R1.L );
52CHECKREG r0, 0x11001001;
53CHECKREG r1, 0x11001001;
54CHECKREG r2, 0x11001001;
55CHECKREG r3, 0x11001001;
56CHECKREG r4, 0x11001001;
57CHECKREG r5, 0x11001001;
58CHECKREG r6, 0x11001001;
59CHECKREG r7, 0x11001001;
60
61imm32 r0, 0x2000c001;
62imm32 r1, 0x2000d001;
63imm32 r2, 0x2000000f;
64imm32 r3, 0x2000e003;
65imm32 r4, 0x2000f004;
66imm32 r5, 0x2000f005;
67imm32 r6, 0x2000f006;
68imm32 r7, 0x2000f007;
69R0.L = EXPADJ( R0.L , R2.L );
70R1.L = EXPADJ( R1.L , R2.L );
71R3.L = EXPADJ( R3.L , R2.L );
72R4.L = EXPADJ( R4.L , R2.L );
73R5.L = EXPADJ( R5.L , R2.L );
74R6.L = EXPADJ( R6.L , R2.L );
75R7.L = EXPADJ( R7.L , R2.L );
76R2.L = EXPADJ( R2.L , R2.L );
77CHECKREG r0, 0x20000001;
78CHECKREG r1, 0x20000001;
79CHECKREG r2, 0x2000000B;
80CHECKREG r3, 0x20000002;
81CHECKREG r4, 0x20000003;
82CHECKREG r5, 0x20000003;
83CHECKREG r6, 0x20000003;
84CHECKREG r7, 0x20000003;
85
86imm32 r0, 0x30009001;
87imm32 r1, 0x3000a001;
88imm32 r2, 0x3000b002;
89imm32 r3, 0x30000010;
90imm32 r4, 0x3000c004;
91imm32 r5, 0x3000d005;
92imm32 r6, 0x3000e006;
93imm32 r7, 0x3000f007;
94R0.L = EXPADJ( R0.L , R3.L );
95R1.L = EXPADJ( R1.L , R3.L );
96R2.L = EXPADJ( R2.L , R3.L );
97R4.L = EXPADJ( R4.L , R3.L );
98R5.L = EXPADJ( R5.L , R3.L );
99R6.L = EXPADJ( R6.L , R3.L );
100R7.L = EXPADJ( R7.L , R3.L );
101R3.L = EXPADJ( R3.L , R3.L );
102CHECKREG r0, 0x30000010;
103CHECKREG r1, 0x30000010;
104CHECKREG r2, 0x30000010;
105CHECKREG r3, 0x30000010;
106CHECKREG r4, 0x30000010;
107CHECKREG r5, 0x30000010;
108CHECKREG r6, 0x30000010;
109CHECKREG r7, 0x30000010;
110
111imm32 r0, 0x40000000;
112imm32 r1, 0x4000c001;
113imm32 r2, 0x4000c002;
114imm32 r3, 0x4000c003;
115imm32 r4, 0x4000c004;
116imm32 r5, 0x4000c005;
117imm32 r6, 0x4000c006;
118imm32 r7, 0x4000c007;
119R0.L = EXPADJ( R1.L , R4.L );
120R1.L = EXPADJ( R2.L , R4.L );
121R2.L = EXPADJ( R3.L , R4.L );
122R3.L = EXPADJ( R4.L , R4.L );
123R5.L = EXPADJ( R5.L , R4.L );
124R6.L = EXPADJ( R6.L , R4.L );
125R7.L = EXPADJ( R7.L , R4.L );
126R4.L = EXPADJ( R0.L , R4.L );
127CHECKREG r0, 0x40000001;
128CHECKREG r1, 0x40000001;
129CHECKREG r2, 0x40000001;
130CHECKREG r3, 0x40000001;
131CHECKREG r4, 0x4000C004;
132CHECKREG r5, 0x40000001;
133CHECKREG r6, 0x40000001;
134CHECKREG r7, 0x40000001;
135
136imm32 r0, 0x51001001;
137imm32 r1, 0x51001001;
138imm32 r2, 0x51001002;
139imm32 r3, 0x51001003;
140imm32 r4, 0x51001004;
141imm32 r5, 0x51001005;
142imm32 r6, 0x51001006;
143imm32 r7, 0x51001007;
144R0.L = EXPADJ( R0.L , R5.L );
145R1.L = EXPADJ( R2.L , R5.L );
146R2.L = EXPADJ( R3.L , R5.L );
147R3.L = EXPADJ( R4.L , R5.L );
148R4.L = EXPADJ( R5.L , R5.L );
149R6.L = EXPADJ( R6.L , R5.L );
150R7.L = EXPADJ( R7.L , R5.L );
151R5.L = EXPADJ( R1.L , R5.L );
152CHECKREG r0, 0x51000002;
153CHECKREG r1, 0x51000002;
154CHECKREG r2, 0x51000002;
155CHECKREG r3, 0x51000002;
156CHECKREG r4, 0x51000002;
157CHECKREG r5, 0x51001005;
158CHECKREG r6, 0x51000002;
159CHECKREG r7, 0x51000002;
160
161imm32 r0, 0x6000c001;
162imm32 r1, 0x6000d001;
163imm32 r2, 0x6000000f;
164imm32 r3, 0x6000e003;
165imm32 r4, 0x6000f004;
166imm32 r5, 0x6000f005;
167imm32 r6, 0x6000f006;
168imm32 r7, 0x6000f007;
169R0.L = EXPADJ( R0.L , R6.L );
170R1.L = EXPADJ( R1.L , R6.L );
171R2.L = EXPADJ( R3.L , R6.L );
172R3.L = EXPADJ( R4.L , R6.L );
173R4.L = EXPADJ( R5.L , R6.L );
174R5.L = EXPADJ( R6.L , R6.L );
175R7.L = EXPADJ( R7.L , R6.L );
176R6.L = EXPADJ( R2.L , R6.L );
177CHECKREG r0, 0x60000001;
178CHECKREG r1, 0x60000001;
179CHECKREG r2, 0x60000002;
180CHECKREG r3, 0x60000003;
181CHECKREG r4, 0x60000003;
182CHECKREG r5, 0x60000003;
183CHECKREG r6, 0x6000F006;
184CHECKREG r7, 0x60000003;
185
186imm32 r0, 0x70009001;
187imm32 r1, 0x7000a001;
188imm32 r2, 0x7000b002;
189imm32 r3, 0x70000010;
190imm32 r4, 0x7000c004;
191imm32 r5, 0x7000d005;
192imm32 r6, 0x7000e006;
193imm32 r7, 0x7000f007;
194R0.L = EXPADJ( R0.L , R7.L );
195R1.L = EXPADJ( R1.L , R7.L );
196R2.L = EXPADJ( R2.L , R7.L );
197R3.L = EXPADJ( R4.L , R7.L );
198R4.L = EXPADJ( R5.L , R7.L );
199R5.L = EXPADJ( R6.L , R7.L );
200R6.L = EXPADJ( R7.L , R7.L );
201R7.L = EXPADJ( R3.L , R7.L );
202CHECKREG r0, 0x70000000;
203CHECKREG r1, 0x70000000;
204CHECKREG r2, 0x70000000;
205CHECKREG r3, 0x70000001;
206CHECKREG r4, 0x70000001;
207CHECKREG r5, 0x70000002;
208CHECKREG r6, 0x70000003;
209CHECKREG r7, 0x7000F007;
210
211
212pass
213