1//Original:/testcases/core/c_dsp32shift_expadj_h/c_dsp32shift_expadj_h.dsp
2// Spec Reference: dsp32shift expadj rh
3# mach: bfin
4
5.include "testutils.inc"
6	start
7
8
9
10
11imm32 r0, 0x80000008;
12imm32 r1, 0x80010008;
13imm32 r2, 0x80020008;
14imm32 r3, 0x80030008;
15imm32 r4, 0x80040008;
16imm32 r5, 0x80050008;
17imm32 r6, 0x80060008;
18imm32 r7, 0x80070008;
19R1.L = EXPADJ( R1.H , R0.L );
20R2.L = EXPADJ( R2.H , R0.L );
21R3.L = EXPADJ( R3.H , R0.L );
22R4.L = EXPADJ( R4.H , R0.L );
23R5.L = EXPADJ( R5.H , R0.L );
24R6.L = EXPADJ( R6.H , R0.L );
25R7.L = EXPADJ( R7.H , R0.L );
26R0.L = EXPADJ( R0.H , R0.L );
27CHECKREG r0, 0x80000000;
28CHECKREG r1, 0x80010000;
29CHECKREG r2, 0x80020000;
30CHECKREG r3, 0x80030000;
31CHECKREG r4, 0x80040000;
32CHECKREG r5, 0x80050000;
33CHECKREG r6, 0x80060000;
34CHECKREG r7, 0x80070000;
35
36imm32 r0, 0x90010009;
37imm32 r1, 0x00010009;
38imm32 r2, 0x90020009;
39imm32 r3, 0x90030009;
40imm32 r4, 0x90040009;
41imm32 r5, 0x90050009;
42imm32 r6, 0x90060009;
43imm32 r7, 0x90070009;
44R0.L = EXPADJ( R0.H , R1.L );
45R2.L = EXPADJ( R2.H , R1.L );
46R3.L = EXPADJ( R3.H , R1.L );
47R4.L = EXPADJ( R4.H , R1.L );
48R5.L = EXPADJ( R5.H , R1.L );
49R6.L = EXPADJ( R6.H , R1.L );
50R7.L = EXPADJ( R7.H , R1.L );
51R1.L = EXPADJ( R1.H , R1.L );
52CHECKREG r0, 0x90010000;
53CHECKREG r1, 0x00010009;
54CHECKREG r2, 0x90020000;
55CHECKREG r3, 0x90030000;
56CHECKREG r4, 0x90040000;
57CHECKREG r5, 0x90050000;
58CHECKREG r6, 0x90060000;
59CHECKREG r7, 0x90070000;
60
61
62imm32 r0, 0xa001000a;
63imm32 r1, 0xa001000a;
64imm32 r2, 0xa002000a;
65imm32 r3, 0xa003000a;
66imm32 r4, 0xa004000a;
67imm32 r5, 0xa005000a;
68imm32 r6, 0xa006000a;
69imm32 r7, 0xa007000a;
70R0.L = EXPADJ( R0.H , R2.L );
71R1.L = EXPADJ( R1.H , R2.L );
72R3.L = EXPADJ( R3.H , R2.L );
73R4.L = EXPADJ( R4.H , R2.L );
74R5.L = EXPADJ( R5.H , R2.L );
75R6.L = EXPADJ( R6.H , R2.L );
76R7.L = EXPADJ( R7.H , R2.L );
77R2.L = EXPADJ( R2.H , R2.L );
78CHECKREG r0, 0xA0010000;
79CHECKREG r1, 0xA0010000;
80CHECKREG r2, 0xA0020000;
81CHECKREG r3, 0xA0030000;
82CHECKREG r4, 0xA0040000;
83CHECKREG r5, 0xA0050000;
84CHECKREG r6, 0xA0060000;
85CHECKREG r7, 0xA0070000;
86
87imm32 r0, 0xc001000c;
88imm32 r1, 0xc001000c;
89imm32 r2, 0xc002000c;
90imm32 r3, 0xc003001c;
91imm32 r4, 0xc004000c;
92imm32 r5, 0xc005000c;
93imm32 r6, 0xc006000c;
94imm32 r7, 0xc007000c;
95R0.L = EXPADJ( R0.H , R3.L );
96R1.L = EXPADJ( R1.H , R3.L );
97R2.L = EXPADJ( R2.H , R3.L );
98R4.L = EXPADJ( R4.H , R3.L );
99R5.L = EXPADJ( R5.H , R3.L );
100R6.L = EXPADJ( R6.H , R3.L );
101R7.L = EXPADJ( R7.H , R3.L );
102R3.L = EXPADJ( R3.H , R3.L );
103CHECKREG r0, 0xC0010001;
104CHECKREG r1, 0xC0010001;
105CHECKREG r2, 0xC0020001;
106CHECKREG r3, 0xC0030001;
107CHECKREG r4, 0xC0040001;
108CHECKREG r5, 0xC0050001;
109CHECKREG r6, 0xC0060001;
110CHECKREG r7, 0xC0070001;
111
112imm32 r0, 0xb0000008;
113imm32 r1, 0xb0010008;
114imm32 r2, 0xb0020008;
115imm32 r3, 0xb0030008;
116imm32 r4, 0xb0040008;
117imm32 r5, 0xb0050008;
118imm32 r6, 0xb0060008;
119imm32 r7, 0xb0070008;
120R0.L = EXPADJ( R1.H , R4.L );
121R1.L = EXPADJ( R2.H , R4.L );
122R2.L = EXPADJ( R3.H , R4.L );
123R3.L = EXPADJ( R4.H , R4.L );
124R5.L = EXPADJ( R5.H , R4.L );
125R6.L = EXPADJ( R6.H , R4.L );
126R7.L = EXPADJ( R7.H , R4.L );
127R4.L = EXPADJ( R0.H , R4.L );
128CHECKREG r0, 0xB0000000;
129CHECKREG r1, 0xB0010000;
130CHECKREG r2, 0xB0020000;
131CHECKREG r3, 0xB0030000;
132CHECKREG r4, 0xB0040000;
133CHECKREG r5, 0xB0050000;
134CHECKREG r6, 0xB0060000;
135CHECKREG r7, 0xB0070000;
136
137imm32 r0, 0xc0010009;
138imm32 r1, 0xc0010009;
139imm32 r2, 0xc0020009;
140imm32 r3, 0xc0030009;
141imm32 r4, 0xc0040009;
142imm32 r5, 0xc0050009;
143imm32 r6, 0xc0060009;
144imm32 r7, 0xc0070009;
145R0.L = EXPADJ( R0.H , R5.L );
146R1.L = EXPADJ( R2.H , R5.L );
147R2.L = EXPADJ( R3.H , R5.L );
148R3.L = EXPADJ( R4.H , R5.L );
149R4.L = EXPADJ( R5.H , R5.L );
150R6.L = EXPADJ( R6.H , R5.L );
151R7.L = EXPADJ( R7.H , R5.L );
152R5.L = EXPADJ( R1.H , R5.L );
153CHECKREG r0, 0xC0010001;
154CHECKREG r1, 0xC0010001;
155CHECKREG r2, 0xC0020001;
156CHECKREG r3, 0xC0030001;
157CHECKREG r4, 0xC0040001;
158CHECKREG r5, 0xC0050001;
159CHECKREG r6, 0xC0060001;
160CHECKREG r7, 0xC0070001;
161
162
163imm32 r0, 0xe001000a;
164imm32 r1, 0xe001000a;
165imm32 r2, 0xe002000a;
166imm32 r3, 0xe003000a;
167imm32 r4, 0xe004000a;
168imm32 r5, 0xe005000a;
169imm32 r6, 0xe006000a;
170imm32 r7, 0xe007000a;
171R0.L = EXPADJ( R0.H , R6.L );
172R1.L = EXPADJ( R1.H , R6.L );
173R2.L = EXPADJ( R3.H , R6.L );
174R3.L = EXPADJ( R4.H , R6.L );
175R4.L = EXPADJ( R5.H , R6.L );
176R5.L = EXPADJ( R6.H , R6.L );
177R6.L = EXPADJ( R7.H , R6.L );
178R7.L = EXPADJ( R2.H , R6.L );
179CHECKREG r0, 0xE0010002;
180CHECKREG r1, 0xE0010002;
181CHECKREG r2, 0xE0020002;
182CHECKREG r3, 0xE0030002;
183CHECKREG r4, 0xE0040002;
184CHECKREG r5, 0xE0050002;
185CHECKREG r6, 0xE0060002;
186CHECKREG r7, 0xE0070002;
187
188imm32 r0, 0xd001000c;
189imm32 r1, 0xd001000c;
190imm32 r2, 0xd002000c;
191imm32 r3, 0xd003001c;
192imm32 r4, 0xd004000c;
193imm32 r5, 0xd005000c;
194imm32 r6, 0xd006000c;
195imm32 r7, 0xd007000c;
196R0.L = EXPADJ( R0.H , R7.L );
197R1.L = EXPADJ( R1.H , R7.L );
198R2.L = EXPADJ( R2.H , R7.L );
199R3.L = EXPADJ( R4.H , R7.L );
200R4.L = EXPADJ( R5.H , R7.L );
201R5.L = EXPADJ( R6.H , R7.L );
202R6.L = EXPADJ( R7.H , R7.L );
203R7.L = EXPADJ( R3.H , R7.L );
204CHECKREG r0, 0xD0010001;
205CHECKREG r1, 0xD0010001;
206CHECKREG r2, 0xD0020001;
207CHECKREG r3, 0xD0030001;
208CHECKREG r4, 0xD0040001;
209CHECKREG r5, 0xD0050001;
210CHECKREG r6, 0xD0060001;
211CHECKREG r7, 0xD0070001;
212
213
214pass
215