//Original:/testcases/core/c_dsp32shift_lhh/c_dsp32shift_lhh.dsp // Spec Reference: dsp32shift lshift/lshift # mach: bfin .include "testutils.inc" start // lshift/lshift : = (half reg) // d_reg = lshift/lshift (d BY d_lo) // Rx by RLx imm32 r0, 0x01230000; imm32 r1, 0x12345678; imm32 r2, 0x23456789; imm32 r3, 0x3456789a; imm32 r4, 0x456789ab; imm32 r5, 0x56789abc; imm32 r6, 0x6789abcd; imm32 r7, 0x789abcde; R1 = LSHIFT R0 BY R0.L (V); R2 = LSHIFT R1 BY R0.L (V); R3 = LSHIFT R2 BY R0.L (V); R4 = LSHIFT R3 BY R0.L (V); R5 = LSHIFT R4 BY R0.L (V); R6 = LSHIFT R5 BY R0.L (V); R7 = LSHIFT R6 BY R0.L (V); R0 = LSHIFT R7 BY R0.L (V); imm32 r0, 0x01230002; imm32 r1, 0x12345678; imm32 r2, 0x23456789; imm32 r3, 0x3456789a; imm32 r4, 0x456789ab; imm32 r5, 0x56789abc; imm32 r6, 0x6789abcd; imm32 r7, 0x789abcde; R1.L = 5; R2 = LSHIFT R0 BY R1.L (V); R3 = LSHIFT R1 BY R1.L (V); R4 = LSHIFT R2 BY R1.L (V); R5 = LSHIFT R3 BY R1.L (V); R6 = LSHIFT R4 BY R1.L (V); R7 = LSHIFT R5 BY R1.L (V); R0 = LSHIFT R6 BY R1.L (V); R1 = LSHIFT R7 BY R1.L (V); imm32 r0, 0x01230002; imm32 r1, 0x12345678; imm32 r2, 0x23456789; imm32 r3, 0x3456789a; imm32 r4, 0x456789ab; imm32 r5, 0x56789abc; imm32 r6, 0x6789abcd; imm32 r7, 0x789abcde; R2 = 15; R3 = LSHIFT R0 BY R2.L (V); R4 = LSHIFT R1 BY R2.L (V); R5 = LSHIFT R2 BY R2.L (V); R6 = LSHIFT R3 BY R2.L (V); R7 = LSHIFT R4 BY R2.L (V); R0 = LSHIFT R5 BY R2.L (V); R1 = LSHIFT R6 BY R2.L (V); R2 = LSHIFT R7 BY R2.L (V); imm32 r0, 0x01230002; imm32 r1, 0x12345678; imm32 r2, 0x23456789; imm32 r3, 0x3456789a; imm32 r4, 0x456789ab; imm32 r5, 0x56789abc; imm32 r6, 0x6789abcd; imm32 r7, 0x789abcde; R3.L = 16; R4 = LSHIFT R0 BY R3.L (V); R5 = LSHIFT R1 BY R3.L (V); R6 = LSHIFT R2 BY R3.L (V); R7 = LSHIFT R3 BY R3.L (V); R0 = LSHIFT R4 BY R3.L (V); R1 = LSHIFT R5 BY R3.L (V); R2 = LSHIFT R6 BY R3.L (V); R3 = LSHIFT R7 BY R3.L (V); imm32 r0, 0x01230002; imm32 r1, 0x12345678; imm32 r2, 0x23456789; imm32 r3, 0x3456789a; imm32 r4, 0x456789ab; imm32 r5, 0x56789abc; imm32 r6, 0x6789abcd; imm32 r7, 0x789abcde; R4.L = -1; R0 = LSHIFT R0 BY R4.L (V); R1 = LSHIFT R1 BY R4.L (V); R2 = LSHIFT R2 BY R4.L (V); R3 = LSHIFT R3 BY R4.L (V); R4 = LSHIFT R4 BY R4.L (V); R5 = LSHIFT R5 BY R4.L (V); R6 = LSHIFT R6 BY R4.L (V); R7 = LSHIFT R7 BY R4.L (V); imm32 r0, 0x01230002; imm32 r1, 0x12345678; imm32 r2, 0x23456789; imm32 r3, 0x3456789a; imm32 r4, 0x456789ab; imm32 r5, 0x56789abc; imm32 r6, 0x6789abcd; imm32 r7, 0x789abcde; R5.L = -6; R6 = LSHIFT R0 BY R5.L (V); R7 = LSHIFT R1 BY R5.L (V); R0 = LSHIFT R2 BY R5.L (V); R1 = LSHIFT R3 BY R5.L (V); R2 = LSHIFT R4 BY R5.L (V); R3 = LSHIFT R5 BY R5.L (V); R4 = LSHIFT R6 BY R5.L (V); R5 = LSHIFT R7 BY R5.L (V); imm32 r0, 0x01230002; imm32 r1, 0x12345678; imm32 r2, 0x23456789; imm32 r3, 0x3456789a; imm32 r4, 0x456789ab; imm32 r5, 0x56789abc; imm32 r6, 0x6789abcd; imm32 r7, 0x789abcde; R6.L = -15; R7 = LSHIFT R0 BY R6.L (V); R0 = LSHIFT R1 BY R6.L (V); R1 = LSHIFT R2 BY R6.L (V); R2 = LSHIFT R3 BY R6.L (V); R3 = LSHIFT R4 BY R6.L (V); R4 = LSHIFT R5 BY R6.L (V); R5 = LSHIFT R6 BY R6.L (V); R6 = LSHIFT R7 BY R6.L (V); imm32 r0, 0x01230002; imm32 r1, 0x12345678; imm32 r2, 0x23456789; imm32 r3, 0x3456789a; imm32 r4, 0x456789ab; imm32 r5, 0x56789abc; imm32 r6, 0x6789abcd; imm32 r7, 0x789abcde; R7.L = -16; R0 = LSHIFT R0 BY R7.L (V); R1 = LSHIFT R1 BY R7.L (V); R2 = LSHIFT R2 BY R7.L (V); R3 = LSHIFT R3 BY R7.L (V); R4 = LSHIFT R4 BY R7.L (V); R5 = LSHIFT R5 BY R7.L (V); R6 = LSHIFT R6 BY R7.L (V); R7 = LSHIFT R7 BY R7.L (V); imm32 r0, 0x01230002; imm32 r1, 0x12345678; imm32 r2, 0x23456789; imm32 r3, 0x3456789a; imm32 r4, 0x456789ab; imm32 r5, 0x56789abc; imm32 r6, 0x6789abcd; imm32 r7, 0x789abcde; R0.L = 4; //r0 = lshift/lshift (r0 by rl0); R1 = LSHIFT R1 BY R0.L (V); R2 = LSHIFT R2 BY R0.L (V); R3 = LSHIFT R3 BY R0.L (V); R4 = LSHIFT R4 BY R0.L (V); R5 = LSHIFT R5 BY R0.L (V); R6 = LSHIFT R6 BY R0.L (V); R7 = LSHIFT R7 BY R0.L (V); imm32 r0, 0x01230002; imm32 r1, 0x12345678; imm32 r2, 0x23456789; imm32 r3, 0x3456789a; imm32 r4, 0x456789ab; imm32 r5, 0x56789abc; imm32 r6, 0x6789abcd; imm32 r7, 0x789abcde; R1.L = 6; R0 = LSHIFT R0 BY R1.L (V); //r1 = lshift/lshift (r1 by rl1); R2 = LSHIFT R2 BY R1.L (V); R3 = LSHIFT R3 BY R1.L (V); R4 = LSHIFT R4 BY R1.L (V); R5 = LSHIFT R5 BY R1.L (V); R6 = LSHIFT R6 BY R1.L (V); R7 = LSHIFT R7 BY R1.L (V); imm32 r0, 0x01230002; imm32 r1, 0x12345678; imm32 r2, 0x23456789; imm32 r3, 0x3456789a; imm32 r4, 0x456789ab; imm32 r5, 0x56789abc; imm32 r6, 0x6789abcd; imm32 r7, 0x789abcde; R2.L = 15; R0 = LSHIFT R0 BY R2.L (V); R1 = LSHIFT R1 BY R2.L (V); //r2 = lshift/lshift (r2 by rl2); R3 = LSHIFT R3 BY R2.L (V); R4 = LSHIFT R4 BY R2.L (V); R5 = LSHIFT R5 BY R2.L (V); R6 = LSHIFT R6 BY R2.L (V); R7 = LSHIFT R7 BY R2.L (V); imm32 r0, 0x01230002; imm32 r1, 0x12345678; imm32 r2, 0x23456789; imm32 r3, 0x3456789a; imm32 r4, 0x456789ab; imm32 r5, 0x56789abc; imm32 r6, 0x6789abcd; imm32 r7, 0x789abcde; R3.L = 16; R0 = LSHIFT R0 BY R3.L (V); R1 = LSHIFT R1 BY R3.L (V); R2 = LSHIFT R2 BY R3.L (V); //r3 = lshift/lshift (r3 by rl3); R4 = LSHIFT R4 BY R3.L (V); R5 = LSHIFT R5 BY R3.L (V); R6 = LSHIFT R6 BY R3.L (V); R7 = LSHIFT R7 BY R3.L (V); imm32 r0, 0x01230002; imm32 r1, 0x12345678; imm32 r2, 0x23456789; imm32 r3, 0x3456789a; imm32 r4, 0x456789ab; imm32 r5, 0x56789abc; imm32 r6, 0x6789abcd; imm32 r7, 0x789abcde; R4.L = -9; R0 = LSHIFT R0 BY R4.L (V); R1 = LSHIFT R1 BY R4.L (V); R2 = LSHIFT R2 BY R4.L (V); R3 = LSHIFT R3 BY R4.L (V); //r4 = lshift/lshift (r4 by rl4); R5 = LSHIFT R5 BY R4.L (V); R6 = LSHIFT R6 BY R4.L (V); R7 = LSHIFT R7 BY R4.L (V); imm32 r0, 0x01230002; imm32 r1, 0x12345678; imm32 r2, 0x23456789; imm32 r3, 0x3456789a; imm32 r4, 0x456789ab; imm32 r5, 0x56789abc; imm32 r6, 0x6789abcd; imm32 r7, 0x789abcde; R5.L = -14; R0 = LSHIFT R0 BY R5.L (V); R1 = LSHIFT R1 BY R5.L (V); R2 = LSHIFT R2 BY R5.L (V); R3 = LSHIFT R3 BY R5.L (V); R4 = LSHIFT R4 BY R5.L (V); //r5 = lshift/lshift (r5 by rl5); R6 = LSHIFT R6 BY R5.L (V); R7 = LSHIFT R7 BY R5.L (V); imm32 r0, 0x01230002; imm32 r1, 0x12345678; imm32 r2, 0x23456789; imm32 r3, 0x3456789a; imm32 r4, 0x456789ab; imm32 r5, 0x56789abc; imm32 r6, 0x6789abcd; imm32 r7, 0x789abcde; R6.L = -15; R0 = LSHIFT R0 BY R6.L (V); R1 = LSHIFT R1 BY R6.L (V); R2 = LSHIFT R2 BY R6.L (V); R3 = LSHIFT R3 BY R6.L (V); R4 = LSHIFT R4 BY R6.L (V); R5 = LSHIFT R5 BY R6.L (V); //r6 = lshift/lshift (r6 by rl6); R7 = LSHIFT R7 BY R6.L (V); imm32 r0, 0x01230002; imm32 r1, 0x12345678; imm32 r2, 0x23456789; imm32 r3, 0x3456789a; imm32 r4, 0x456789ab; imm32 r5, 0x56789abc; imm32 r6, 0x6789abcd; imm32 r7, 0x789abcde; R7.L = -16; R0 = LSHIFT R0 BY R7.L (V); R1 = LSHIFT R1 BY R7.L (V); R2 = LSHIFT R2 BY R7.L (V); R3 = LSHIFT R3 BY R7.L (V); R4 = LSHIFT R4 BY R7.L (V); R5 = LSHIFT R5 BY R7.L (V); R6 = LSHIFT R6 BY R7.L (V); R7 = LSHIFT R7 BY R7.L (V); CHECKREG r0, 0x00000000; CHECKREG r1, 0x00000000; CHECKREG r2, 0x00000000; CHECKREG r3, 0x00000000; CHECKREG r4, 0x00000000; CHECKREG r5, 0x00000000; CHECKREG r6, 0x00000000; CHECKREG r7, 0x00000000; CHECKREG r7, 0x00000000; pass