| //Original:/testcases/core/c_logi2op_log_l_shft/c_logi2op_log_l_shft.dsp |
| // Spec Reference: Logi2op <<= |
| # mach: bfin |
| |
| .include "testutils.inc" |
| start |
| |
| |
| |
| |
| // Logical <<= : negative data |
| // bit 0-7 |
| imm32 r0, 0x81111111; |
| imm32 r1, 0x81111111; |
| imm32 r2, 0x81111111; |
| imm32 r3, 0x81111111; |
| imm32 r4, 0x81111111; |
| imm32 r5, 0x81111111; |
| imm32 r6, 0x81111111; |
| imm32 r7, 0x81111111; |
| R0 <<= 0; /* r0 = 0x81111111 */ |
| R1 <<= 1; /* r1 = 0x40888888 */ |
| R2 <<= 2; /* r2 = 0x20444444 */ |
| R3 <<= 3; /* r3 = 0x10222222 */ |
| R4 <<= 4; /* r4 = 0x08111111 */ |
| R5 <<= 5; /* r5 = 0x04088888 */ |
| R6 <<= 6; /* r6 = 0x02044444 */ |
| R7 <<= 7; /* r7 = 0x01022222 */ |
| CHECKREG r0, 0x81111111; |
| CHECKREG r1, 0x02222222; |
| CHECKREG r2, 0x04444444; |
| CHECKREG r3, 0x08888888; |
| CHECKREG r4, 0x11111110; |
| CHECKREG r5, 0x22222220; |
| CHECKREG r6, 0x44444440; |
| CHECKREG r7, 0x88888880; |
| |
| // bit 8-15 |
| imm32 r0, 0x82222222; |
| imm32 r1, 0x82222222; |
| imm32 r2, 0x82222222; |
| imm32 r3, 0x82222222; |
| imm32 r4, 0x82222222; |
| imm32 r5, 0x82222222; |
| imm32 r6, 0x82222222; |
| imm32 r7, 0x82222222; |
| R0 <<= 8; |
| R1 <<= 9; |
| R2 <<= 10; |
| R3 <<= 11; |
| R4 <<= 12; |
| R5 <<= 13; |
| R6 <<= 14; |
| R7 <<= 15; |
| CHECKREG r0, 0x22222200; |
| CHECKREG r1, 0x44444400; |
| CHECKREG r2, 0x88888800; |
| CHECKREG r3, 0x11111000; |
| CHECKREG r4, 0x22222000; |
| CHECKREG r5, 0x44444000; |
| CHECKREG r6, 0x88888000; |
| CHECKREG r7, 0x11110000; |
| |
| // bit 16-23 |
| imm32 r0, 0x83333333; |
| imm32 r1, 0x83333333; |
| imm32 r2, 0x83333333; |
| imm32 r3, 0x83333333; |
| imm32 r4, 0x83333333; |
| imm32 r5, 0x83333333; |
| imm32 r6, 0x83333333; |
| imm32 r7, 0x83333333; |
| R0 <<= 16; |
| R1 <<= 17; |
| R2 <<= 18; |
| R3 <<= 19; |
| R4 <<= 20; |
| R5 <<= 21; |
| R6 <<= 22; |
| R7 <<= 23; |
| CHECKREG r0, 0x33330000; |
| CHECKREG r1, 0x66660000; |
| CHECKREG r2, 0xCCCC0000; |
| CHECKREG r3, 0x99980000; |
| CHECKREG r4, 0x33300000; |
| CHECKREG r5, 0x66600000; |
| CHECKREG r6, 0xCCC00000; |
| CHECKREG r7, 0x99800000; |
| |
| // bit 24-31 |
| imm32 r0, 0x84444444; |
| imm32 r1, 0x84444444; |
| imm32 r2, 0x84444444; |
| imm32 r3, 0x84444444; |
| imm32 r4, 0x84444444; |
| imm32 r5, 0x84444444; |
| imm32 r6, 0x84444444; |
| imm32 r7, 0x84444444; |
| R0 <<= 24; |
| R1 <<= 25; |
| R2 <<= 26; |
| R3 <<= 27; |
| R4 <<= 28; |
| R5 <<= 29; |
| R6 <<= 30; |
| R7 <<= 31; |
| CHECKREG r0, 0x44000000; |
| CHECKREG r1, 0x88000000; |
| CHECKREG r2, 0x10000000; |
| CHECKREG r3, 0x20000000; |
| CHECKREG r4, 0x40000000; |
| CHECKREG r5, 0x80000000; |
| CHECKREG r6, 0x00000000; |
| CHECKREG r7, 0x00000000; |
| |
| // Arithmetic <<= : positive data |
| // bit 0-7 |
| imm32 r0, 0x41111111; |
| imm32 r1, 0x41111111; |
| imm32 r2, 0x41111111; |
| imm32 r3, 0x41111111; |
| imm32 r4, 0x41111111; |
| imm32 r5, 0x41111111; |
| imm32 r6, 0x41111111; |
| imm32 r7, 0x41111111; |
| R0 <<= 0; |
| R1 <<= 1; |
| R2 <<= 2; |
| R3 <<= 3; |
| R4 <<= 4; |
| R5 <<= 5; |
| R6 <<= 6; |
| R7 <<= 7; |
| CHECKREG r0, 0x41111111; |
| CHECKREG r1, 0x82222222; |
| CHECKREG r2, 0x04444444; |
| CHECKREG r3, 0x08888888; |
| CHECKREG r4, 0x11111110; |
| CHECKREG r5, 0x22222220; |
| CHECKREG r6, 0x44444440; |
| CHECKREG r7, 0x88888880; |
| |
| // bit 8-15 |
| imm32 r0, 0x42222222; |
| imm32 r1, 0x42222222; |
| imm32 r2, 0x42222222; |
| imm32 r3, 0x42222222; |
| imm32 r4, 0x42222222; |
| imm32 r5, 0x42222222; |
| imm32 r6, 0x42222222; |
| imm32 r7, 0x42222222; |
| R0 <<= 8; |
| R1 <<= 9; |
| R2 <<= 10; |
| R3 <<= 11; |
| R4 <<= 12; |
| R5 <<= 13; |
| R6 <<= 14; |
| R7 <<= 15; |
| CHECKREG r0, 0x22222200; |
| CHECKREG r1, 0x44444400; |
| CHECKREG r2, 0x88888800; |
| CHECKREG r3, 0x11111000; |
| CHECKREG r4, 0x22222000; |
| CHECKREG r5, 0x44444000; |
| CHECKREG r6, 0x88888000; |
| CHECKREG r7, 0x11110000; |
| |
| // bit 16-23 |
| imm32 r0, 0x43333333; |
| imm32 r1, 0x43333333; |
| imm32 r2, 0x43333333; |
| imm32 r3, 0x43333333; |
| imm32 r4, 0x43333333; |
| imm32 r5, 0x43333333; |
| imm32 r6, 0x43333333; |
| imm32 r7, 0x43333333; |
| R0 <<= 16; |
| R1 <<= 17; |
| R2 <<= 18; |
| R3 <<= 19; |
| R4 <<= 20; |
| R5 <<= 21; |
| R6 <<= 22; |
| R7 <<= 23; |
| CHECKREG r0, 0x33330000; |
| CHECKREG r1, 0x66660000; |
| CHECKREG r2, 0xCCCC0000; |
| CHECKREG r3, 0x99980000; |
| CHECKREG r4, 0x33300000; |
| CHECKREG r5, 0x66600000; |
| CHECKREG r6, 0xCCC00000; |
| CHECKREG r7, 0x99800000; |
| |
| // bit 24-31 |
| imm32 r0, 0x44444444; |
| imm32 r1, 0x44444444; |
| imm32 r2, 0x44444444; |
| imm32 r3, 0x44444444; |
| imm32 r4, 0x44444444; |
| imm32 r5, 0x44444444; |
| imm32 r6, 0x44444444; |
| imm32 r7, 0x44444444; |
| R0 <<= 24; |
| R1 <<= 25; |
| R2 <<= 26; |
| R3 <<= 27; |
| R4 <<= 28; |
| R5 <<= 29; |
| R6 <<= 30; |
| R7 <<= 31; |
| CHECKREG r0, 0x44000000; |
| CHECKREG r1, 0x88000000; |
| CHECKREG r2, 0x10000000; |
| CHECKREG r3, 0x20000000; |
| CHECKREG r4, 0x40000000; |
| CHECKREG r5, 0x80000000; |
| CHECKREG r6, 0x00000000; |
| CHECKREG r7, 0x00000000; |
| |
| |
| pass |