1 //Original
:/testcases
/core
/c_dsp32shiftim_lhalf_lp
/c_dsp32shiftim_lhalf_lp.dsp
2 // Spec Reference
: dspshiftimm dreg_lo
(hi
) = lshift
(dreg_lo
(hi
) by imm5
)
5 .include "testutils.inc"
10 // lshift
: positive data
, count
(+)=left
(half reg
)
11 // d_lo
= lshift
(d_lo BY imm5
)
29 CHECKREG
r1, 0x00102808;
30 CHECKREG
r0, 0x00101402;
31 CHECKREG
r2, 0x00105018;
32 CHECKREG
r3, 0x0010A040;
33 CHECKREG
r4, 0x001040A0;
34 CHECKREG
r5, 0x00108180;
35 CHECKREG
r6, 0x00100000;
36 CHECKREG
r7, 0x00100A00;
54 CHECKREG
r0, 0x00200000;
55 CHECKREG
r1, 0x00200000;
56 CHECKREG
r2, 0x00201800;
57 CHECKREG
r3, 0x00203200;
58 CHECKREG
r4, 0x00200000;
59 CHECKREG
r5, 0x00200000;
60 CHECKREG
r6, 0x00200000;
61 CHECKREG
r7, 0x00200000;
79 CHECKREG
r0, 0x05000780;
80 CHECKREG
r1, 0x05000200;
81 CHECKREG
r2, 0x05001000;
82 CHECKREG
r3, 0x05002001;
83 CHECKREG
r4, 0x05004002;
84 CHECKREG
r5, 0x0500003C;
85 CHECKREG
r6, 0x05000008;
86 CHECKREG
r7, 0x05000020;
104 CHECKREG
r0, 0x03000000;
105 CHECKREG
r1, 0x03000000;
106 CHECKREG
r2, 0x03000000;
107 CHECKREG
r3, 0x03000000;
108 CHECKREG
r4, 0x03003100;
109 CHECKREG
r5, 0x03006200;
110 CHECKREG
r6, 0x0300C800;
111 CHECKREG
r7, 0x03008000;
113 imm32
r0, 0x03000000;
114 imm32
r1, 0x03000000;
115 imm32
r2, 0x03000000;
116 imm32
r3, 0x03000000;
117 imm32
r4, 0x03003100;
118 imm32
r5, 0x03006200;
119 imm32
r6, 0x0300C800;
120 imm32
r7, 0x03008000;
129 CHECKREG
r0, 0x03001800;
130 CHECKREG
r1, 0x03003000;
131 CHECKREG
r2, 0x03006000;
132 CHECKREG
r3, 0x0300C000;
133 CHECKREG
r4, 0x03008000;
134 CHECKREG
r5, 0x03000300;
135 CHECKREG
r6, 0x03000600;
136 CHECKREG
r7, 0x03000C00;
138 imm32
r0, 0x05018000;
139 imm32
r1, 0x05018001;
140 imm32
r2, 0x05028000;
141 imm32
r3, 0x05038000;
142 imm32
r4, 0x05048000;
143 imm32
r5, 0x05058000;
144 imm32
r6, 0x05068000;
145 imm32
r7, 0x05078000;
154 CHECKREG
r0, 0x05010800;
155 CHECKREG
r1, 0x05011800;
156 CHECKREG
r2, 0x05024000;
157 CHECKREG
r3, 0x0503A000;
158 CHECKREG
r4, 0x05048000;
159 CHECKREG
r5, 0x05058000;
160 CHECKREG
r6, 0x05060100;
161 CHECKREG
r7, 0x05070200;
164 imm32
r0, 0x60019000;
165 imm32
r1, 0x60019000;
166 imm32
r2, 0x6002900f;
167 imm32
r3, 0x60039000;
168 imm32
r4, 0x60049000;
169 imm32
r5, 0x60059000;
170 imm32
r6, 0x60069000;
171 imm32
r7, 0x60079000;
180 CHECKREG
r0, 0x6001C002;
181 CHECKREG
r1, 0x60018008;
182 CHECKREG
r2, 0x60020018;
183 CHECKREG
r3, 0x60030040;
184 CHECKREG
r4, 0x600400A0;
185 CHECKREG
r5, 0x60050180;
186 CHECKREG
r6, 0x60060380;
187 CHECKREG
r7, 0x60076001;
189 imm32
r0, 0x70010001;
190 imm32
r1, 0x70010001;
191 imm32
r2, 0x70020002;
192 imm32
r3, 0x77030010;
193 imm32
r4, 0x70040004;
194 imm32
r5, 0x70050005;
195 imm32
r6, 0x70060006;
196 imm32
r7, 0x70070007;
205 CHECKREG
r0, 0x70010100;
206 CHECKREG
r1, 0x70010200;
207 CHECKREG
r2, 0x70020800;
208 CHECKREG
r3, 0x77031800;
209 CHECKREG
r4, 0x70044000;
210 CHECKREG
r5, 0x7005A000;
211 CHECKREG
r6, 0x70068000;
212 CHECKREG
r7, 0x70078000;
214 // d_hi
= lshft
(d_lo BY d_lo
)
216 imm32
r0, 0xa8000000;
217 imm32
r1, 0xa8000001;
218 imm32
r2, 0xa8000002;
219 imm32
r3, 0xa8000003;
220 imm32
r4, 0xa8000004;
221 imm32
r5, 0xa8000005;
222 imm32
r6, 0xa8000006;
223 imm32
r7, 0xa8000007;
232 CHECKREG
r0, 0x00000000;
233 CHECKREG
r1, 0x00020001;
234 CHECKREG
r2, 0x00080002;
235 CHECKREG
r3, 0x00180003;
236 CHECKREG
r4, 0x00400004;
237 CHECKREG
r5, 0x00A00005;
238 CHECKREG
r6, 0x01800006;
239 CHECKREG
r7, 0x03800007;
241 imm32
r0, 0xf0090001;
242 imm32
r1, 0xf0090001;
243 imm32
r2, 0xf0090002;
244 imm32
r3, 0xf0090003;
245 imm32
r4, 0xf0090004;
246 imm32
r5, 0xf0090005;
247 imm32
r6, 0xf0000006;
248 imm32
r7, 0xf0000007;
257 CHECKREG
r1, 0x01000001;
258 CHECKREG
r2, 0x02000002;
259 CHECKREG
r3, 0x08000003;
260 CHECKREG
r4, 0x18000004;
261 CHECKREG
r5, 0x40000005;
262 CHECKREG
r6, 0xA0000006;
263 CHECKREG
r7, 0x80000007;
264 CHECKREG
r0, 0x80000001;
267 imm32
r0, 0x07000001;
268 imm32
r1, 0x07000001;
269 imm32
r2, 0x0700000f;
270 imm32
r3, 0x07000003;
271 imm32
r4, 0x07000004;
272 imm32
r5, 0x07000005;
273 imm32
r6, 0x07000006;
274 imm32
r7, 0x07000007;
283 CHECKREG
r0, 0x00A00001;
284 CHECKREG
r1, 0x01800001;
285 CHECKREG
r2, 0x0380000F;
286 CHECKREG
r3, 0x00010003;
287 CHECKREG
r4, 0x00020004;
288 CHECKREG
r5, 0x003C0005;
289 CHECKREG
r6, 0x00180006;
290 CHECKREG
r7, 0x00400007;
292 imm32
r0, 0x00000501;
293 imm32
r1, 0x00000501;
294 imm32
r2, 0x00000502;
295 imm32
r3, 0x00000510;
296 imm32
r4, 0x00000504;
297 imm32
r5, 0x00000505;
298 imm32
r6, 0x00000506;
299 imm32
r7, 0x00000507;
308 CHECKREG
r0, 0x40000501;
309 CHECKREG
r1, 0xA0000501;
310 CHECKREG
r2, 0x80000502;
311 CHECKREG
r3, 0x80000510;
312 CHECKREG
r4, 0x01000504;
313 CHECKREG
r5, 0x02000505;
314 CHECKREG
r6, 0x08000506;
315 CHECKREG
r7, 0x80000507;
317 imm32
r0, 0x00a00800;
318 imm32
r1, 0x00a10800;
319 imm32
r2, 0x00a20800;
320 imm32
r3, 0x00a30800;
321 imm32
r4, 0x00a40800;
322 imm32
r5, 0x00a50800;
323 imm32
r6, 0x00a60800;
324 imm32
r7, 0x00a70800;
333 CHECKREG
r0, 0x05180800;
334 CHECKREG
r1, 0x0A400800;
335 CHECKREG
r2, 0x14000800;
336 CHECKREG
r3, 0x50800800;
337 CHECKREG
r4, 0x44000800;
338 CHECKREG
r5, 0x00A00800;
339 CHECKREG
r6, 0x01420800;
340 CHECKREG
r7, 0x02880800;
342 imm32
r0, 0x0c010000;
343 imm32
r1, 0x0c010001;
344 imm32
r2, 0x0c020000;
345 imm32
r3, 0x0c030000;
346 imm32
r4, 0x0c040000;
347 imm32
r5, 0x0c050000;
348 imm32
r6, 0x0c060000;
349 imm32
r7, 0x0c070000;
358 CHECKREG
r0, 0x08000000;
359 CHECKREG
r1, 0x18000001;
360 CHECKREG
r2, 0x40000000;
361 CHECKREG
r3, 0xA0000000;
362 CHECKREG
r4, 0x00000000;
363 CHECKREG
r5, 0x00000000;
364 CHECKREG
r6, 0x01000000;
365 CHECKREG
r7, 0x02000000;
368 imm32
r0, 0x00b10000;
369 imm32
r1, 0x00b10000;
370 imm32
r2, 0x00b2000f;
371 imm32
r3, 0x00b30000;
372 imm32
r4, 0x00b40000;
373 imm32
r5, 0x00b50000;
374 imm32
r6, 0x00b60000;
375 imm32
r7, 0x00b70000;
384 CHECKREG
r0, 0x00B10162;
385 CHECKREG
r1, 0x00B102C8;
386 CHECKREG
r2, 0x00B20598;
387 CHECKREG
r3, 0x00B30B40;
388 CHECKREG
r4, 0x00B416A0;
389 CHECKREG
r5, 0x00B52D80;
390 CHECKREG
r6, 0x00B65B80;
391 CHECKREG
r7, 0x00B700B1;
393 imm32
r0, 0x0a010700;
394 imm32
r1, 0x0a010700;
395 imm32
r2, 0x0a020700;
396 imm32
r3, 0x0a030710;
397 imm32
r4, 0x0a040700;
398 imm32
r5, 0x0a050700;
399 imm32
r6, 0x0a060700;
400 imm32
r7, 0x0a070700;
409 CHECKREG
r0, 0x01000700;
410 CHECKREG
r1, 0x02000700;
411 CHECKREG
r2, 0x08000700;
412 CHECKREG
r3, 0x18000710;
413 CHECKREG
r4, 0x40000700;
414 CHECKREG
r5, 0xA0000700;
415 CHECKREG
r6, 0x80000700;
416 CHECKREG
r7, 0x80000700;