1 //Original
:/testcases
/core
/c_dsp32shift_lhh
/c_dsp32shift_lhh.dsp
2 // Spec Reference
: dsp32shift lshift
/lshift
5 .include "testutils.inc"
10 // lshift
/lshift
: = (half reg
)
11 // d_reg
= lshift
/lshift
(d BY d_lo
)
21 R1 = LSHIFT
R0 BY R0.
L (V
);
22 R2 = LSHIFT
R1 BY R0.
L (V
);
23 R3 = LSHIFT
R2 BY R0.
L (V
);
24 R4 = LSHIFT
R3 BY R0.
L (V
);
25 R5 = LSHIFT
R4 BY R0.
L (V
);
26 R6 = LSHIFT
R5 BY R0.
L (V
);
27 R7 = LSHIFT
R6 BY R0.
L (V
);
28 R0 = LSHIFT
R7 BY R0.
L (V
);
39 R2 = LSHIFT
R0 BY R1.
L (V
);
40 R3 = LSHIFT
R1 BY R1.
L (V
);
41 R4 = LSHIFT
R2 BY R1.
L (V
);
42 R5 = LSHIFT
R3 BY R1.
L (V
);
43 R6 = LSHIFT
R4 BY R1.
L (V
);
44 R7 = LSHIFT
R5 BY R1.
L (V
);
45 R0 = LSHIFT
R6 BY R1.
L (V
);
46 R1 = LSHIFT
R7 BY R1.
L (V
);
57 R3 = LSHIFT
R0 BY R2.
L (V
);
58 R4 = LSHIFT
R1 BY R2.
L (V
);
59 R5 = LSHIFT
R2 BY R2.
L (V
);
60 R6 = LSHIFT
R3 BY R2.
L (V
);
61 R7 = LSHIFT
R4 BY R2.
L (V
);
62 R0 = LSHIFT
R5 BY R2.
L (V
);
63 R1 = LSHIFT
R6 BY R2.
L (V
);
64 R2 = LSHIFT
R7 BY R2.
L (V
);
75 R4 = LSHIFT
R0 BY R3.
L (V
);
76 R5 = LSHIFT
R1 BY R3.
L (V
);
77 R6 = LSHIFT
R2 BY R3.
L (V
);
78 R7 = LSHIFT
R3 BY R3.
L (V
);
79 R0 = LSHIFT
R4 BY R3.
L (V
);
80 R1 = LSHIFT
R5 BY R3.
L (V
);
81 R2 = LSHIFT
R6 BY R3.
L (V
);
82 R3 = LSHIFT
R7 BY R3.
L (V
);
93 R0 = LSHIFT
R0 BY R4.
L (V
);
94 R1 = LSHIFT
R1 BY R4.
L (V
);
95 R2 = LSHIFT
R2 BY R4.
L (V
);
96 R3 = LSHIFT
R3 BY R4.
L (V
);
97 R4 = LSHIFT
R4 BY R4.
L (V
);
98 R5 = LSHIFT
R5 BY R4.
L (V
);
99 R6 = LSHIFT
R6 BY R4.
L (V
);
100 R7 = LSHIFT
R7 BY R4.
L (V
);
102 imm32
r0, 0x01230002;
103 imm32
r1, 0x12345678;
104 imm32
r2, 0x23456789;
105 imm32
r3, 0x3456789a;
106 imm32
r4, 0x456789ab;
107 imm32
r5, 0x56789abc;
108 imm32
r6, 0x6789abcd;
109 imm32
r7, 0x789abcde;
111 R6 = LSHIFT
R0 BY R5.
L (V
);
112 R7 = LSHIFT
R1 BY R5.
L (V
);
113 R0 = LSHIFT
R2 BY R5.
L (V
);
114 R1 = LSHIFT
R3 BY R5.
L (V
);
115 R2 = LSHIFT
R4 BY R5.
L (V
);
116 R3 = LSHIFT
R5 BY R5.
L (V
);
117 R4 = LSHIFT
R6 BY R5.
L (V
);
118 R5 = LSHIFT
R7 BY R5.
L (V
);
120 imm32
r0, 0x01230002;
121 imm32
r1, 0x12345678;
122 imm32
r2, 0x23456789;
123 imm32
r3, 0x3456789a;
124 imm32
r4, 0x456789ab;
125 imm32
r5, 0x56789abc;
126 imm32
r6, 0x6789abcd;
127 imm32
r7, 0x789abcde;
129 R7 = LSHIFT
R0 BY R6.
L (V
);
130 R0 = LSHIFT
R1 BY R6.
L (V
);
131 R1 = LSHIFT
R2 BY R6.
L (V
);
132 R2 = LSHIFT
R3 BY R6.
L (V
);
133 R3 = LSHIFT
R4 BY R6.
L (V
);
134 R4 = LSHIFT
R5 BY R6.
L (V
);
135 R5 = LSHIFT
R6 BY R6.
L (V
);
136 R6 = LSHIFT
R7 BY R6.
L (V
);
138 imm32
r0, 0x01230002;
139 imm32
r1, 0x12345678;
140 imm32
r2, 0x23456789;
141 imm32
r3, 0x3456789a;
142 imm32
r4, 0x456789ab;
143 imm32
r5, 0x56789abc;
144 imm32
r6, 0x6789abcd;
145 imm32
r7, 0x789abcde;
147 R0 = LSHIFT
R0 BY R7.
L (V
);
148 R1 = LSHIFT
R1 BY R7.
L (V
);
149 R2 = LSHIFT
R2 BY R7.
L (V
);
150 R3 = LSHIFT
R3 BY R7.
L (V
);
151 R4 = LSHIFT
R4 BY R7.
L (V
);
152 R5 = LSHIFT
R5 BY R7.
L (V
);
153 R6 = LSHIFT
R6 BY R7.
L (V
);
154 R7 = LSHIFT
R7 BY R7.
L (V
);
156 imm32
r0, 0x01230002;
157 imm32
r1, 0x12345678;
158 imm32
r2, 0x23456789;
159 imm32
r3, 0x3456789a;
160 imm32
r4, 0x456789ab;
161 imm32
r5, 0x56789abc;
162 imm32
r6, 0x6789abcd;
163 imm32
r7, 0x789abcde;
165 //r0 = lshift
/lshift
(r0 by rl0
);
166 R1 = LSHIFT
R1 BY R0.
L (V
);
167 R2 = LSHIFT
R2 BY R0.
L (V
);
168 R3 = LSHIFT
R3 BY R0.
L (V
);
169 R4 = LSHIFT
R4 BY R0.
L (V
);
170 R5 = LSHIFT
R5 BY R0.
L (V
);
171 R6 = LSHIFT
R6 BY R0.
L (V
);
172 R7 = LSHIFT
R7 BY R0.
L (V
);
174 imm32
r0, 0x01230002;
175 imm32
r1, 0x12345678;
176 imm32
r2, 0x23456789;
177 imm32
r3, 0x3456789a;
178 imm32
r4, 0x456789ab;
179 imm32
r5, 0x56789abc;
180 imm32
r6, 0x6789abcd;
181 imm32
r7, 0x789abcde;
183 R0 = LSHIFT
R0 BY R1.
L (V
);
184 //r1 = lshift
/lshift
(r1 by rl1
);
185 R2 = LSHIFT
R2 BY R1.
L (V
);
186 R3 = LSHIFT
R3 BY R1.
L (V
);
187 R4 = LSHIFT
R4 BY R1.
L (V
);
188 R5 = LSHIFT
R5 BY R1.
L (V
);
189 R6 = LSHIFT
R6 BY R1.
L (V
);
190 R7 = LSHIFT
R7 BY R1.
L (V
);
193 imm32
r0, 0x01230002;
194 imm32
r1, 0x12345678;
195 imm32
r2, 0x23456789;
196 imm32
r3, 0x3456789a;
197 imm32
r4, 0x456789ab;
198 imm32
r5, 0x56789abc;
199 imm32
r6, 0x6789abcd;
200 imm32
r7, 0x789abcde;
202 R0 = LSHIFT
R0 BY R2.
L (V
);
203 R1 = LSHIFT
R1 BY R2.
L (V
);
204 //r2 = lshift
/lshift
(r2 by rl2
);
205 R3 = LSHIFT
R3 BY R2.
L (V
);
206 R4 = LSHIFT
R4 BY R2.
L (V
);
207 R5 = LSHIFT
R5 BY R2.
L (V
);
208 R6 = LSHIFT
R6 BY R2.
L (V
);
209 R7 = LSHIFT
R7 BY R2.
L (V
);
211 imm32
r0, 0x01230002;
212 imm32
r1, 0x12345678;
213 imm32
r2, 0x23456789;
214 imm32
r3, 0x3456789a;
215 imm32
r4, 0x456789ab;
216 imm32
r5, 0x56789abc;
217 imm32
r6, 0x6789abcd;
218 imm32
r7, 0x789abcde;
220 R0 = LSHIFT
R0 BY R3.
L (V
);
221 R1 = LSHIFT
R1 BY R3.
L (V
);
222 R2 = LSHIFT
R2 BY R3.
L (V
);
223 //r3 = lshift
/lshift
(r3 by rl3
);
224 R4 = LSHIFT
R4 BY R3.
L (V
);
225 R5 = LSHIFT
R5 BY R3.
L (V
);
226 R6 = LSHIFT
R6 BY R3.
L (V
);
227 R7 = LSHIFT
R7 BY R3.
L (V
);
229 imm32
r0, 0x01230002;
230 imm32
r1, 0x12345678;
231 imm32
r2, 0x23456789;
232 imm32
r3, 0x3456789a;
233 imm32
r4, 0x456789ab;
234 imm32
r5, 0x56789abc;
235 imm32
r6, 0x6789abcd;
236 imm32
r7, 0x789abcde;
238 R0 = LSHIFT
R0 BY R4.
L (V
);
239 R1 = LSHIFT
R1 BY R4.
L (V
);
240 R2 = LSHIFT
R2 BY R4.
L (V
);
241 R3 = LSHIFT
R3 BY R4.
L (V
);
242 //r4 = lshift
/lshift
(r4 by rl4
);
243 R5 = LSHIFT
R5 BY R4.
L (V
);
244 R6 = LSHIFT
R6 BY R4.
L (V
);
245 R7 = LSHIFT
R7 BY R4.
L (V
);
247 imm32
r0, 0x01230002;
248 imm32
r1, 0x12345678;
249 imm32
r2, 0x23456789;
250 imm32
r3, 0x3456789a;
251 imm32
r4, 0x456789ab;
252 imm32
r5, 0x56789abc;
253 imm32
r6, 0x6789abcd;
254 imm32
r7, 0x789abcde;
256 R0 = LSHIFT
R0 BY R5.
L (V
);
257 R1 = LSHIFT
R1 BY R5.
L (V
);
258 R2 = LSHIFT
R2 BY R5.
L (V
);
259 R3 = LSHIFT
R3 BY R5.
L (V
);
260 R4 = LSHIFT
R4 BY R5.
L (V
);
261 //r5 = lshift
/lshift
(r5 by rl5
);
262 R6 = LSHIFT
R6 BY R5.
L (V
);
263 R7 = LSHIFT
R7 BY R5.
L (V
);
266 imm32
r0, 0x01230002;
267 imm32
r1, 0x12345678;
268 imm32
r2, 0x23456789;
269 imm32
r3, 0x3456789a;
270 imm32
r4, 0x456789ab;
271 imm32
r5, 0x56789abc;
272 imm32
r6, 0x6789abcd;
273 imm32
r7, 0x789abcde;
275 R0 = LSHIFT
R0 BY R6.
L (V
);
276 R1 = LSHIFT
R1 BY R6.
L (V
);
277 R2 = LSHIFT
R2 BY R6.
L (V
);
278 R3 = LSHIFT
R3 BY R6.
L (V
);
279 R4 = LSHIFT
R4 BY R6.
L (V
);
280 R5 = LSHIFT
R5 BY R6.
L (V
);
281 //r6 = lshift
/lshift
(r6 by rl6
);
282 R7 = LSHIFT
R7 BY R6.
L (V
);
284 imm32
r0, 0x01230002;
285 imm32
r1, 0x12345678;
286 imm32
r2, 0x23456789;
287 imm32
r3, 0x3456789a;
288 imm32
r4, 0x456789ab;
289 imm32
r5, 0x56789abc;
290 imm32
r6, 0x6789abcd;
291 imm32
r7, 0x789abcde;
293 R0 = LSHIFT
R0 BY R7.
L (V
);
294 R1 = LSHIFT
R1 BY R7.
L (V
);
295 R2 = LSHIFT
R2 BY R7.
L (V
);
296 R3 = LSHIFT
R3 BY R7.
L (V
);
297 R4 = LSHIFT
R4 BY R7.
L (V
);
298 R5 = LSHIFT
R5 BY R7.
L (V
);
299 R6 = LSHIFT
R6 BY R7.
L (V
);
300 R7 = LSHIFT
R7 BY R7.
L (V
);
301 CHECKREG
r0, 0x00000000;
302 CHECKREG
r1, 0x00000000;
303 CHECKREG
r2, 0x00000000;
304 CHECKREG
r3, 0x00000000;
305 CHECKREG
r4, 0x00000000;
306 CHECKREG
r5, 0x00000000;
307 CHECKREG
r6, 0x00000000;
308 CHECKREG
r7, 0x00000000;
309 CHECKREG
r7, 0x00000000;