123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222 |
- //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
|