| //Original:/testcases/core/c_dsp32shift_lf/c_dsp32shift_lf.dsp |
| // Spec Reference: dsp32shift lshift |
| # mach: bfin |
| |
| .include "testutils.inc" |
| start |
| |
| |
| |
| // lshift : mix data, count (+)= (half reg) |
| // d_reg = lshift (d BY d_lo) |
| // Rx by RLx |
| imm32 r0, 0x01210001; |
| imm32 r1, 0x12315678; |
| imm32 r2, 0x23416789; |
| imm32 r3, 0x3451789a; |
| imm32 r4, 0x856189ab; |
| imm32 r5, 0x96719abc; |
| imm32 r6, 0xa781abcd; |
| imm32 r7, 0xb891bcde; |
| R7 = LSHIFT R0 BY R0.L; |
| R6 = LSHIFT R1 BY R0.L; |
| R0 = LSHIFT R2 BY R0.L; |
| R1 = LSHIFT R3 BY R0.L; |
| R2 = LSHIFT R4 BY R0.L; |
| R3 = LSHIFT R5 BY R0.L; |
| R4 = LSHIFT R6 BY R0.L; |
| R5 = LSHIFT R7 BY R0.L; |
| CHECKREG r0, 0x4682CF12; |
| CHECKREG r1, 0xE2680000; |
| CHECKREG r2, 0x26AC0000; |
| CHECKREG r3, 0x6AF00000; |
| CHECKREG r4, 0xB3C00000; |
| CHECKREG r5, 0x00080000; |
| CHECKREG r6, 0x2462ACF0; |
| CHECKREG r7, 0x02420002; |
| |
| imm32 r0, 0x01220002; |
| imm32 r1, 0x12325678; |
| imm32 r2, 0x23426789; |
| imm32 r3, 0x3452789a; |
| imm32 r4, 0x956289ab; |
| imm32 r5, 0xa6729abc; |
| imm32 r6, 0xb782abcd; |
| imm32 r7, 0xc892bcde; |
| R1.L = 2; |
| R3 = LSHIFT R0 BY R1.L; |
| R4 = LSHIFT R1 BY R1.L; |
| R5 = LSHIFT R2 BY R1.L; |
| R6 = LSHIFT R3 BY R1.L; |
| R7 = LSHIFT R4 BY R1.L; |
| R0 = LSHIFT R5 BY R1.L; |
| R1 = LSHIFT R6 BY R1.L; |
| R2 = LSHIFT R7 BY R1.L; |
| CHECKREG r0, 0x34267890; |
| CHECKREG r1, 0x48800080; |
| CHECKREG r2, 0x23200020; |
| CHECKREG r3, 0x04880008; |
| CHECKREG r4, 0x48C80008; |
| CHECKREG r5, 0x8D099E24; |
| CHECKREG r6, 0x12200020; |
| CHECKREG r7, 0x23200020; |
| |
| imm32 r0, 0x01230002; |
| imm32 r1, 0x12335678; |
| imm32 r2, 0x23436789; |
| imm32 r3, 0x3453789a; |
| imm32 r4, 0x456389ab; |
| imm32 r5, 0x56739abc; |
| imm32 r6, 0x6783abcd; |
| imm32 r7, 0x789abcde; |
| R2 = 14; |
| R0 = LSHIFT R4 BY R2.L; |
| R1 = LSHIFT R5 BY R2.L; |
| R2 = LSHIFT R6 BY R2.L; |
| R3 = LSHIFT R7 BY R2.L; |
| CHECKREG r0, 0xE26AC000; |
| CHECKREG r1, 0xE6AF0000; |
| CHECKREG r2, 0xEAF34000; |
| CHECKREG r3, 0x789ABCDE; |
| |
| imm32 r0, 0x01240002; |
| imm32 r1, 0x12345678; |
| imm32 r2, 0x23446789; |
| imm32 r3, 0x3454789a; |
| imm32 r4, 0xa56489ab; |
| imm32 r5, 0xb6749abc; |
| imm32 r6, 0xc784abcd; |
| imm32 r7, 0xd894bcde; |
| R3.L = 15; |
| R4 = LSHIFT R0 BY R3.L; |
| R5 = LSHIFT R1 BY R3.L; |
| R6 = LSHIFT R2 BY R3.L; |
| R7 = LSHIFT R3 BY R3.L; |
| R0 = LSHIFT R4 BY R3.L; |
| R1 = LSHIFT R5 BY R3.L; |
| R2 = LSHIFT R6 BY R3.L; |
| R3 = LSHIFT R7 BY R3.L; |
| CHECKREG r0, 0x80000000; |
| CHECKREG r1, 0x00000000; |
| CHECKREG r2, 0x40000000; |
| CHECKREG r3, 0xC0000000; |
| CHECKREG r4, 0x00010000; |
| CHECKREG r5, 0x2B3C0000; |
| CHECKREG r6, 0x33C48000; |
| CHECKREG r7, 0x00078000; |
| |
| imm32 r0, 0x01250002; |
| imm32 r1, 0x12355678; |
| imm32 r2, 0x23456789; |
| imm32 r3, 0x3455789a; |
| imm32 r4, 0x456589ab; |
| imm32 r5, 0x56759abc; |
| imm32 r6, 0x6785abcd; |
| imm32 r7, 0x7895bcde; |
| R4.L = -1; |
| R7 = LSHIFT R0 BY R4.L; |
| R6 = LSHIFT R1 BY R4.L; |
| R5 = LSHIFT R2 BY R4.L; |
| R3 = LSHIFT R4 BY R4.L; |
| R2 = LSHIFT R5 BY R4.L; |
| R1 = LSHIFT R6 BY R4.L; |
| R0 = LSHIFT R7 BY R4.L; |
| R4 = LSHIFT R3 BY R4.L; |
| CHECKREG r0, 0x00494000; |
| CHECKREG r1, 0x048D559E; |
| CHECKREG r2, 0x08D159E2; |
| CHECKREG r3, 0x22B2FFFF; |
| CHECKREG r4, 0x11597FFF; |
| CHECKREG r5, 0x11A2B3C4; |
| CHECKREG r6, 0x091AAB3C; |
| CHECKREG r7, 0x00928001; |
| |
| imm32 r0, 0x01260002; |
| imm32 r1, 0x82365678; |
| imm32 r2, 0x93466789; |
| imm32 r3, 0xa456789a; |
| imm32 r4, 0xb56689ab; |
| imm32 r5, 0xc6769abc; |
| imm32 r6, 0xd786abcd; |
| imm32 r7, 0xe896bcde; |
| R5.L = -8; |
| R6 = LSHIFT R0 BY R5.L; |
| R7 = LSHIFT R1 BY R5.L; |
| R0 = LSHIFT R2 BY R5.L; |
| R1 = LSHIFT R3 BY R5.L; |
| R2 = LSHIFT R4 BY R5.L; |
| R3 = LSHIFT R5 BY R5.L; |
| R4 = LSHIFT R6 BY R5.L; |
| R5 = LSHIFT R7 BY R5.L; |
| CHECKREG r0, 0x00934667; |
| CHECKREG r1, 0x00A45678; |
| CHECKREG r2, 0x00B56689; |
| CHECKREG r3, 0x00C676FF; |
| CHECKREG r4, 0x00000126; |
| CHECKREG r5, 0x00008236; |
| CHECKREG r6, 0x00012600; |
| CHECKREG r7, 0x00823656; |
| |
| imm32 r0, 0x01270002; |
| imm32 r1, 0x12375678; |
| imm32 r2, 0x23476789; |
| imm32 r3, 0x3457789a; |
| imm32 r4, 0x456789ab; |
| imm32 r5, 0x56779abc; |
| imm32 r6, 0x6787abcd; |
| imm32 r7, 0x7897bcde; |
| R6.L = -15; |
| R7 = LSHIFT R0 BY R6.L; |
| R0 = LSHIFT R1 BY R6.L; |
| R1 = LSHIFT R2 BY R6.L; |
| R2 = LSHIFT R3 BY R6.L; |
| R3 = LSHIFT R4 BY R6.L; |
| R4 = LSHIFT R5 BY R6.L; |
| R5 = LSHIFT R6 BY R6.L; |
| R6 = LSHIFT R7 BY R6.L; |
| CHECKREG r0, 0x0000246E; |
| CHECKREG r1, 0x0000468E; |
| CHECKREG r2, 0x000068AE; |
| CHECKREG r3, 0x00008ACF; |
| CHECKREG r4, 0x0000ACEF; |
| CHECKREG r5, 0x0000CF0F; |
| CHECKREG r6, 0x00000000; |
| CHECKREG r7, 0x0000024E; |
| |
| imm32 r0, 0x01280002; |
| imm32 r1, 0x82385678; |
| imm32 r2, 0x93486789; |
| imm32 r3, 0xa458789a; |
| imm32 r4, 0xb56889ab; |
| imm32 r5, 0xc6789abc; |
| imm32 r6, 0xd788abcd; |
| imm32 r7, 0xe898bcde; |
| R7.L = -16; |
| R0 = LSHIFT R0 BY R7.L; |
| R1 = LSHIFT R1 BY R7.L; |
| R2 = LSHIFT R2 BY R7.L; |
| R3 = LSHIFT R3 BY R7.L; |
| R4 = LSHIFT R4 BY R7.L; |
| R5 = LSHIFT R5 BY R7.L; |
| R6 = LSHIFT R6 BY R7.L; |
| R7 = LSHIFT R7 BY R7.L; |
| CHECKREG r0, 0x00000128; |
| CHECKREG r1, 0x00008238; |
| CHECKREG r2, 0x00009348; |
| CHECKREG r3, 0x0000A458; |
| CHECKREG r4, 0x0000B568; |
| CHECKREG r5, 0x0000C678; |
| CHECKREG r6, 0x0000D788; |
| CHECKREG r7, 0x0000E898; |
| |
| imm32 r0, 0x81290002; |
| imm32 r1, 0x92395678; |
| imm32 r2, 0xa3496789; |
| imm32 r3, 0xb459789a; |
| imm32 r4, 0xc56989ab; |
| imm32 r5, 0xd6799abc; |
| imm32 r6, 0xe789abcd; |
| imm32 r7, 0xf899bcde; |
| R0.L = 4; |
| //r0 = lshift (r0 by rl0); |
| R1 = LSHIFT R1 BY R0.L; |
| R2 = LSHIFT R2 BY R0.L; |
| R3 = LSHIFT R3 BY R0.L; |
| R4 = LSHIFT R4 BY R0.L; |
| R5 = LSHIFT R5 BY R0.L; |
| R6 = LSHIFT R6 BY R0.L; |
| R7 = LSHIFT R7 BY R0.L; |
| CHECKREG r1, 0x23956780; |
| CHECKREG r2, 0x34967890; |
| CHECKREG r3, 0x459789A0; |
| CHECKREG r4, 0x56989AB0; |
| CHECKREG r5, 0x6799ABC0; |
| CHECKREG r6, 0x789ABCD0; |
| CHECKREG r7, 0x899BCDE0; |
| |
| imm32 r0, 0x012a0002; |
| imm32 r1, 0x123a5678; |
| imm32 r2, 0x234a6789; |
| imm32 r3, 0x345a789a; |
| imm32 r4, 0x456a89ab; |
| imm32 r5, 0x567a9abc; |
| imm32 r6, 0x678aabcd; |
| imm32 r7, 0xf89abcde; |
| R1.L = 2; |
| R7 = LSHIFT R0 BY R1.L; |
| R6 = LSHIFT R1 BY R1.L; |
| R5 = LSHIFT R2 BY R1.L; |
| R4 = LSHIFT R3 BY R1.L; |
| R3 = LSHIFT R4 BY R1.L; |
| R2 = LSHIFT R5 BY R1.L; |
| R0 = LSHIFT R6 BY R1.L; |
| R1 = LSHIFT R7 BY R1.L; |
| CHECKREG r0, 0x23A00020; |
| CHECKREG r1, 0x12A00020; |
| CHECKREG r2, 0x34A67890; |
| CHECKREG r3, 0x45A789A0; |
| CHECKREG r4, 0xD169E268; |
| CHECKREG r5, 0x8D299E24; |
| CHECKREG r6, 0x48E80008; |
| CHECKREG r7, 0x04A80008; |
| |
| |
| imm32 r0, 0x012b0002; |
| imm32 r1, 0x123b5678; |
| imm32 r2, 0x234b6789; |
| imm32 r3, 0x345b789a; |
| imm32 r4, 0x456b89ab; |
| imm32 r5, 0x567b9abc; |
| imm32 r6, 0x678babcd; |
| imm32 r7, 0x789bbcde; |
| R2.L = 15; |
| R0 = LSHIFT R0 BY R2.L; |
| R1 = LSHIFT R1 BY R2.L; |
| R3 = LSHIFT R3 BY R2.L; |
| R4 = LSHIFT R4 BY R2.L; |
| R5 = LSHIFT R5 BY R2.L; |
| R6 = LSHIFT R6 BY R2.L; |
| R7 = LSHIFT R7 BY R2.L; |
| R2 = LSHIFT R2 BY R2.L; |
| CHECKREG r0, 0x80010000; |
| CHECKREG r1, 0xAB3C0000; |
| CHECKREG r2, 0x80078000; |
| CHECKREG r3, 0xBC4D0000; |
| CHECKREG r4, 0xC4D58000; |
| CHECKREG r5, 0xCD5E0000; |
| CHECKREG r6, 0xD5E68000; |
| CHECKREG r7, 0xDE6F0000; |
| |
| imm32 r0, 0x012c0002; |
| imm32 r1, 0x123c5678; |
| imm32 r2, 0x234c6789; |
| imm32 r3, 0x345c789a; |
| imm32 r4, 0x456c89ab; |
| imm32 r5, 0x567c9abc; |
| imm32 r6, 0x678cabcd; |
| imm32 r7, 0x789cbcde; |
| R3.L = 16; |
| R0 = LSHIFT R0 BY R3.L; |
| R1 = LSHIFT R1 BY R3.L; |
| R2 = LSHIFT R2 BY R3.L; |
| R4 = LSHIFT R4 BY R3.L; |
| R5 = LSHIFT R5 BY R3.L; |
| R6 = LSHIFT R6 BY R3.L; |
| R7 = LSHIFT R7 BY R3.L; |
| R3 = LSHIFT R3 BY R3.L; |
| CHECKREG r0, 0x00020000; |
| CHECKREG r1, 0x56780000; |
| CHECKREG r2, 0x67890000; |
| CHECKREG r3, 0x00100000; |
| CHECKREG r4, 0x89AB0000; |
| CHECKREG r5, 0x9ABC0000; |
| CHECKREG r6, 0xABCD0000; |
| CHECKREG r7, 0xBCDE0000; |
| |
| imm32 r0, 0x012d0002; |
| imm32 r1, 0x123d5678; |
| imm32 r2, 0x234d6789; |
| imm32 r3, 0x345d789a; |
| imm32 r4, 0x456d89ab; |
| imm32 r5, 0x567d9abc; |
| imm32 r6, 0x678dabcd; |
| imm32 r7, 0x789dbcde; |
| R4.L = -9; |
| R7 = LSHIFT R0 BY R4.L; |
| R0 = LSHIFT R1 BY R4.L; |
| R1 = LSHIFT R2 BY R4.L; |
| R2 = LSHIFT R3 BY R4.L; |
| //r4 = lshift (r4 by rl4); |
| R3 = LSHIFT R5 BY R4.L; |
| R5 = LSHIFT R6 BY R4.L; |
| R6 = LSHIFT R7 BY R4.L; |
| CHECKREG r0, 0x00091EAB; |
| CHECKREG r1, 0x0011A6B3; |
| CHECKREG r2, 0x001A2EBC; |
| CHECKREG r3, 0x002B3ECD; |
| CHECKREG r4, 0x456DFFF7; |
| CHECKREG r5, 0x0033C6D5; |
| CHECKREG r6, 0x0000004B; |
| CHECKREG r7, 0x00009680; |
| |
| imm32 r0, 0x012e0002; |
| imm32 r1, 0x123e5678; |
| imm32 r2, 0x234e6789; |
| imm32 r3, 0x345e789a; |
| imm32 r4, 0x456e89ab; |
| imm32 r5, 0x567e9abc; |
| imm32 r6, 0x678eabcd; |
| imm32 r7, 0x789ebcde; |
| R5.L = -14; |
| R0 = LSHIFT R0 BY R5.L; |
| R1 = LSHIFT R1 BY R5.L; |
| R2 = LSHIFT R2 BY R5.L; |
| R3 = LSHIFT R3 BY R5.L; |
| R4 = LSHIFT R4 BY R5.L; |
| //r5 = lshift (r5 by rl5); |
| R6 = LSHIFT R6 BY R5.L; |
| R7 = LSHIFT R7 BY R5.L; |
| CHECKREG r0, 0x000004B8; |
| CHECKREG r1, 0x000048F9; |
| CHECKREG r2, 0x00008D39; |
| CHECKREG r3, 0x0000D179; |
| CHECKREG r4, 0x000115BA; |
| CHECKREG r5, 0x567EFFF2; |
| CHECKREG r6, 0x00019E3A; |
| CHECKREG r7, 0x0001E27A; |
| |
| |
| imm32 r0, 0x012f0002; |
| imm32 r1, 0x623f5678; |
| imm32 r2, 0x734f6789; |
| imm32 r3, 0x845f789a; |
| imm32 r4, 0x956f89ab; |
| imm32 r5, 0xa67f9abc; |
| imm32 r6, 0xc78fabcd; |
| imm32 r7, 0xd89fbcde; |
| R6.L = -15; |
| R0 = LSHIFT R0 BY R6.L; |
| R1 = LSHIFT R1 BY R6.L; |
| R2 = LSHIFT R2 BY R6.L; |
| R3 = LSHIFT R3 BY R6.L; |
| R4 = LSHIFT R4 BY R6.L; |
| R5 = LSHIFT R5 BY R6.L; |
| //r6 = lshift (r6 by rl6); |
| R7 = LSHIFT R7 BY R6.L; |
| CHECKREG r0, 0x0000025E; |
| CHECKREG r1, 0x0000C47E; |
| CHECKREG r2, 0x0000E69E; |
| CHECKREG r3, 0x000108BE; |
| CHECKREG r4, 0x00012ADF; |
| CHECKREG r5, 0x00014CFF; |
| CHECKREG r6, 0xC78FFFF1; |
| CHECKREG r7, 0x0001B13F; |
| |
| imm32 r0, 0x71230072; |
| imm32 r1, 0x82345678; |
| imm32 r2, 0x93456779; |
| imm32 r3, 0xa456787a; |
| imm32 r4, 0xb567897b; |
| imm32 r5, 0xc6789a7c; |
| imm32 r6, 0x6789ab7d; |
| imm32 r7, 0x789abc7e; |
| R7.L = -16; |
| R0 = LSHIFT R0 BY R7.L; |
| R1 = LSHIFT R1 BY R7.L; |
| R2 = LSHIFT R2 BY R7.L; |
| R3 = LSHIFT R3 BY R7.L; |
| R4 = LSHIFT R4 BY R7.L; |
| R5 = LSHIFT R5 BY R7.L; |
| R6 = LSHIFT R6 BY R7.L; |
| R7 = LSHIFT R7 BY R7.L; |
| CHECKREG r0, 0x00007123; |
| CHECKREG r1, 0x00008234; |
| CHECKREG r2, 0x00009345; |
| CHECKREG r3, 0x0000A456; |
| CHECKREG r4, 0x0000B567; |
| CHECKREG r5, 0x0000C678; |
| CHECKREG r6, 0x00006789; |
| CHECKREG r7, 0x0000789A; |
| |
| |
| pass |