1 //Original:/testcases/core/c_dsp32shiftim_ahalf_rp/c_dsp32shiftim_ahalf_rp.dsp
2 // Spec Reference: dspshiftimm dreg_lo(hi) = ashift (dreg_lo(hi) by imm5)
5 .include "testutils.inc"
8 // Ashift : positive data, count (+)=right (half reg)
9 // d_lo = ashft (d_lo BY d_lo)
28 CHECKREG r0, 0x0000FFFF;
29 CHECKREG r1, 0x00010000;
30 CHECKREG r2, 0x00010001;
31 CHECKREG r3, 0x00010001;
32 CHECKREG r4, 0x00010002;
33 CHECKREG r5, 0x00010002;
34 CHECKREG r6, 0x00010003;
35 CHECKREG r7, 0x00010003;
53 CHECKREG r0, 0x0020FFFF;
54 CHECKREG r1, 0x00010100;
55 CHECKREG r2, 0x00200180;
56 CHECKREG r3, 0x00200200;
57 CHECKREG r4, 0x00200280;
58 CHECKREG r5, 0x00200300;
59 CHECKREG r6, 0x00200004;
60 CHECKREG r7, 0x00200080;
79 CHECKREG r0, 0x0300FFFC;
80 CHECKREG r1, 0x03000C00;
81 CHECKREG r2, 0x00201001;
82 CHECKREG r3, 0x03001401;
83 CHECKREG r4, 0x03000100;
84 CHECKREG r5, 0x03000100;
85 CHECKREG r6, 0x03000400;
86 CHECKREG r7, 0x03000400;
104 CHECKREG r0, 0x4000FFFF;
105 CHECKREG r1, 0x40000002;
106 CHECKREG r2, 0x40000000;
107 CHECKREG r3, 0x03000000;
108 CHECKREG r4, 0x40000000;
109 CHECKREG r5, 0x40000000;
110 CHECKREG r6, 0x40000000;
111 CHECKREG r7, 0x40000001;
113 // d_lo = ashift (d_hi BY d_lo)
115 imm32 r0, 0x50000000;
116 imm32 r1, 0x50010000;
117 imm32 r2, 0x50020000;
118 imm32 r3, 0x50030000;
119 imm32 r4, 0x50040000;
120 imm32 r5, 0x50050000;
121 imm32 r6, 0x50060000;
122 imm32 r7, 0x50070000;
131 CHECKREG r0, 0x50000014;
132 CHECKREG r1, 0x50010014;
133 CHECKREG r2, 0x50020014;
134 CHECKREG r3, 0x50030014;
135 CHECKREG r4, 0x50040014;
136 CHECKREG r5, 0x50050014;
137 CHECKREG r6, 0x50060014;
138 CHECKREG r7, 0x50070014;
140 imm32 r0, 0x10016000;
142 imm32 r2, 0x20026000;
143 imm32 r3, 0x30036000;
144 imm32 r4, 0x40046000;
145 imm32 r5, 0x50056000;
146 imm32 r6, 0x60060000;
147 imm32 r7, 0x70076000;
156 CHECKREG r0, 0x10010002;
157 CHECKREG r1, 0x5001000A;
158 CHECKREG r2, 0x20020004;
159 CHECKREG r3, 0x30030006;
160 CHECKREG r4, 0x40040008;
161 CHECKREG r5, 0x5005000A;
162 CHECKREG r6, 0x6006000C;
163 CHECKREG r7, 0x7007000E;
166 imm32 r0, 0x10010700;
167 imm32 r1, 0x10010700;
169 imm32 r3, 0x30030700;
170 imm32 r4, 0x40040000;
171 imm32 r5, 0x50050700;
172 imm32 r6, 0x60060000;
173 imm32 r7, 0x70070700;
182 CHECKREG r0, 0x10010000;
183 CHECKREG r1, 0x10010000;
184 CHECKREG r2, 0x20020000;
185 CHECKREG r3, 0x30030000;
186 CHECKREG r4, 0x40040000;
187 CHECKREG r5, 0x50050000;
188 CHECKREG r6, 0x60060000;
189 CHECKREG r7, 0x70070000;
191 imm32 r0, 0x18010001;
192 imm32 r1, 0x18010001;
193 imm32 r2, 0x28020002;
195 imm32 r4, 0x48040004;
196 imm32 r5, 0x58050005;
197 imm32 r6, 0x68060006;
198 imm32 r7, 0x78070007;
207 CHECKREG r0, 0x18010000;
208 CHECKREG r1, 0x18010000;
209 CHECKREG r2, 0x28020001;
210 CHECKREG r3, 0x30030001;
211 CHECKREG r4, 0x48040002;
212 CHECKREG r5, 0x58050002;
213 CHECKREG r6, 0x68060003;
214 CHECKREG r7, 0x78070003;
216 // d_hi = ashft (d_lo BY d_lo)
218 imm32 r0, 0x09000091;
219 imm32 r1, 0x09000091;
220 imm32 r2, 0x09000092;
221 imm32 r3, 0x09000093;
222 imm32 r4, 0x09000090;
223 imm32 r5, 0x09000095;
224 imm32 r6, 0x09000096;
225 imm32 r7, 0x09000097;
234 CHECKREG r0, 0x00000091;
235 CHECKREG r1, 0x00000091;
236 CHECKREG r2, 0x00000092;
237 CHECKREG r3, 0x00000093;
238 CHECKREG r4, 0x00000090;
239 CHECKREG r5, 0x00000095;
240 CHECKREG r6, 0x00000096;
241 CHECKREG r7, 0x00000097;
243 imm32 r0, 0xa0000001;
244 imm32 r1, 0xa0000001;
245 imm32 r2, 0xa0000002;
246 imm32 r3, 0xa0000003;
247 imm32 r4, 0xa0000004;
249 imm32 r6, 0xa0000006;
250 imm32 r7, 0xa0000007;
259 CHECKREG r0, 0x00000001;
260 CHECKREG r1, 0x00000001;
261 CHECKREG r2, 0x00000002;
262 CHECKREG r3, 0x00000003;
263 CHECKREG r4, 0x00000004;
264 CHECKREG r5, 0xFFFFFFFF;
265 CHECKREG r6, 0x00000006;
266 CHECKREG r7, 0x00000007;
269 imm32 r0, 0xb0001001;
270 imm32 r1, 0xb0001001;
271 imm32 r1, 0xb0002002;
272 imm32 r3, 0xb0003003;
273 imm32 r4, 0xb0004004;
274 imm32 r5, 0xb0005005;
276 imm32 r7, 0xb0007007;
285 CHECKREG r0, 0x00401001;
286 CHECKREG r1, 0x00802002;
287 CHECKREG r2, 0x00000002;
288 CHECKREG r3, 0x00C03003;
289 CHECKREG r4, 0x01004004;
290 CHECKREG r5, 0x01405005;
291 CHECKREG r6, 0xFFFFFFF1;
292 CHECKREG r7, 0x01C07007;
294 imm32 r0, 0x0c001c01;
295 imm32 r1, 0x0c002c01;
296 imm32 r2, 0x0c002c02;
297 imm32 r3, 0x0c003c03;
298 imm32 r4, 0x0c004c04;
299 imm32 r5, 0x0c005c05;
300 imm32 r6, 0x0c006c06;
310 CHECKREG r0, 0x00381C01;
311 CHECKREG r1, 0x00582C01;
312 CHECKREG r2, 0x00582C02;
313 CHECKREG r3, 0x00783C03;
314 CHECKREG r4, 0x00984C04;
315 CHECKREG r5, 0x00B85C05;
316 CHECKREG r6, 0x00D86C06;
317 CHECKREG r7, 0xFFFFFFF0;
319 // d_lo = ashft (d_hi BY d_lo)
321 imm32 r0, 0x0d01d000;
322 imm32 r1, 0x0d01d000;
323 imm32 r2, 0x0d02d000;
324 imm32 r3, 0x0d03d000;
326 imm32 r5, 0x0d05d000;
327 imm32 r6, 0x0d06d000;
328 imm32 r7, 0x0d07d000;
337 CHECKREG r0, 0x00D0D000;
338 CHECKREG r1, 0x00D0D000;
339 CHECKREG r2, 0x00D0D000;
340 CHECKREG r3, 0x00D0D000;
341 CHECKREG r4, 0x0009FFFF;
342 CHECKREG r5, 0x00D0D000;
343 CHECKREG r6, 0x00D0D000;
344 CHECKREG r7, 0x000DD000;
346 imm32 r0, 0x1e010000;
347 imm32 r1, 0x1e010000;
348 imm32 r2, 0x2e020000;
349 imm32 r3, 0x3e030000;
350 imm32 r4, 0x4e040000;
352 imm32 r6, 0x6e060000;
353 imm32 r7, 0x7e070000;
362 CHECKREG r0, 0x00000000;
363 CHECKREG r1, 0x00000000;
364 CHECKREG r2, 0x00000000;
365 CHECKREG r3, 0x00000000;
366 CHECKREG r4, 0x00000000;
367 CHECKREG r5, 0x0000FFFF;
368 CHECKREG r6, 0x00000000;
369 CHECKREG r7, 0x00000000;
371 imm32 r0, 0x1f010000;
372 imm32 r1, 0x1f010000;
373 imm32 r2, 0x2f020000;
374 imm32 r3, 0x3f030000;
375 imm32 r4, 0x4f040000;
376 imm32 r5, 0x5f050000;
378 imm32 r7, 0x70070000;
387 CHECKREG r0, 0x00FC0000;
388 CHECKREG r1, 0x013C0000;
389 CHECKREG r2, 0x00020000;
390 CHECKREG r3, 0x00010000;
391 CHECKREG r4, 0x00010000;
392 CHECKREG r5, 0x00BC0000;
393 CHECKREG r6, 0x007CFFF1;
394 CHECKREG r7, 0x007C0000;
396 imm32 r0, 0x11010a00;
397 imm32 r1, 0x11010b00;
398 imm32 r2, 0x21020d00;
399 imm32 r2, 0x31030c00;
400 imm32 r4, 0x41040d00;
401 imm32 r5, 0x51050e00;
402 imm32 r6, 0x610600f0;
412 CHECKREG r0, 0x00000A00;
413 CHECKREG r1, 0x00000B00;
414 CHECKREG r2, 0x00000C00;
415 CHECKREG r3, 0x00820000;
416 CHECKREG r4, 0x00000D00;
417 CHECKREG r5, 0x00220E00;
418 CHECKREG r6, 0x002200F0;
419 CHECKREG r7, 0x0062FFF0;