1//Original:/testcases/core/c_logi2op_log_r_shft/c_logi2op_log_r_shft.dsp 2// Spec Reference: Logi2op >>= 3# mach: bfin 4 5.include "testutils.inc" 6 start 7 8 9 10 11// Logical >>= : negative data 12// bit 0-7 13imm32 r0, 0x81111111; 14imm32 r1, 0x81111111; 15imm32 r2, 0x81111111; 16imm32 r3, 0x81111111; 17imm32 r4, 0x81111111; 18imm32 r5, 0x81111111; 19imm32 r6, 0x81111111; 20imm32 r7, 0x81111111; 21R0 >>= 0; /* r0 = 0x81111111 */ 22R1 >>= 1; /* r1 = 0x40888888 */ 23R2 >>= 2; /* r2 = 0x20444444 */ 24R3 >>= 3; /* r3 = 0x10222222 */ 25R4 >>= 4; /* r4 = 0x08111111 */ 26R5 >>= 5; /* r5 = 0x04088888 */ 27R6 >>= 6; /* r6 = 0x02044444 */ 28R7 >>= 7; /* r7 = 0x01022222 */ 29CHECKREG r0, 0x81111111; 30CHECKREG r1, 0x40888888; 31CHECKREG r2, 0x20444444; 32CHECKREG r3, 0x10222222; 33CHECKREG r4, 0x08111111; 34CHECKREG r5, 0x04088888; 35CHECKREG r6, 0x02044444; 36CHECKREG r7, 0x01022222; 37 38// bit 8-15 39imm32 r0, 0x82222222; 40imm32 r1, 0x82222222; 41imm32 r2, 0x82222222; 42imm32 r3, 0x82222222; 43imm32 r4, 0x82222222; 44imm32 r5, 0x82222222; 45imm32 r6, 0x82222222; 46imm32 r7, 0x82222222; 47R0 >>= 8; /* r0 = 0x00822222 */ 48R1 >>= 9; /* r1 = 0x00411111 */ 49R2 >>= 10; /* r2 = 0x00208888 */ 50R3 >>= 11; /* r3 = 0x00104444 */ 51R4 >>= 12; /* r4 = 0x00082222 */ 52R5 >>= 13; /* r5 = 0x00041111 */ 53R6 >>= 14; /* r6 = 0x00020888 */ 54R7 >>= 15; /* r7 = 0x00010444 */ 55CHECKREG r0, 0x00822222; 56CHECKREG r1, 0x00411111; 57CHECKREG r2, 0x00208888; 58CHECKREG r3, 0x00104444; 59CHECKREG r4, 0x00082222; 60CHECKREG r5, 0x00041111; 61CHECKREG r6, 0x00020888; 62CHECKREG r7, 0x00010444; 63 64// bit 16-23 65imm32 r0, 0x83333333; 66imm32 r1, 0x83333333; 67imm32 r2, 0x83333333; 68imm32 r3, 0x83333333; 69imm32 r4, 0x83333333; 70imm32 r5, 0x83333333; 71imm32 r6, 0x83333333; 72imm32 r7, 0x83333333; 73R0 >>= 16; /* r0 = 0x00008333 */ 74R1 >>= 17; /* r1 = 0x00004199 */ 75R2 >>= 18; /* r2 = 0x000020CC */ 76R3 >>= 19; /* r3 = 0x00001066 */ 77R4 >>= 20; /* r4 = 0x00000833 */ 78R5 >>= 21; /* r5 = 0x00000419 */ 79R6 >>= 22; /* r6 = 0x0000020C */ 80R7 >>= 23; /* r7 = 0x00000106 */ 81CHECKREG r0, 0x00008333; 82CHECKREG r1, 0x00004199; 83CHECKREG r2, 0x000020CC; 84CHECKREG r3, 0x00001066; 85CHECKREG r4, 0x00000833; 86CHECKREG r5, 0x00000419; 87CHECKREG r6, 0x0000020C; 88CHECKREG r7, 0x00000106; 89 90// bit 24-31 91imm32 r0, 0x84444444; 92imm32 r1, 0x84444444; 93imm32 r2, 0x84444444; 94imm32 r3, 0x84444444; 95imm32 r4, 0x84444444; 96imm32 r5, 0x84444444; 97imm32 r6, 0x84444444; 98imm32 r7, 0x84444444; 99R0 >>= 24; /* r0 = 0x00000084 */ 100R1 >>= 25; /* r1 = 0x00000042 */ 101R2 >>= 26; /* r2 = 0x00000021 */ 102R3 >>= 27; /* r3 = 0x00000010 */ 103R4 >>= 28; /* r4 = 0x00000008 */ 104R5 >>= 29; /* r5 = 0x00000004 */ 105R6 >>= 30; /* r6 = 0x00000002 */ 106R7 >>= 31; /* r7 = 0x00000001 */ 107CHECKREG r0, 0x00000084; 108CHECKREG r1, 0x00000042; 109CHECKREG r2, 0x00000021; 110CHECKREG r3, 0x00000010; 111CHECKREG r4, 0x00000008; 112CHECKREG r5, 0x00000004; 113CHECKREG r6, 0x00000002; 114CHECKREG r7, 0x00000001; 115 116// Arithmetic >>= : positive data 117// bit 0-7 118imm32 r0, 0x41111111; 119imm32 r1, 0x41111111; 120imm32 r2, 0x41111111; 121imm32 r3, 0x41111111; 122imm32 r4, 0x41111111; 123imm32 r5, 0x41111111; 124imm32 r6, 0x41111111; 125imm32 r7, 0x41111111; 126R0 >>= 0; /* r0 = 0x41111111 */ 127R1 >>= 1; /* r1 = 0x20888888 */ 128R2 >>= 2; /* r2 = 0x10444444 */ 129R3 >>= 3; /* r3 = 0x08222222 */ 130R4 >>= 4; /* r4 = 0x04111111 */ 131R5 >>= 5; /* r5 = 0x02088888 */ 132R6 >>= 6; /* r6 = 0x01044444 */ 133R7 >>= 7; /* r7 = 0x00822222 */ 134CHECKREG r0, 0x41111111; 135CHECKREG r1, 0x20888888; 136CHECKREG r2, 0x10444444; 137CHECKREG r3, 0x08222222; 138CHECKREG r4, 0x04111111; 139CHECKREG r5, 0x02088888; 140CHECKREG r6, 0x01044444; 141CHECKREG r7, 0x00822222; 142 143// bit 8-15 144imm32 r0, 0x42222222; 145imm32 r1, 0x42222222; 146imm32 r2, 0x42222222; 147imm32 r3, 0x42222222; 148imm32 r4, 0x42222222; 149imm32 r5, 0x42222222; 150imm32 r6, 0x42222222; 151imm32 r7, 0x42222222; 152R0 >>= 8; /* r0 = 0x00422222 */ 153R1 >>= 9; /* r1 = 0x00211111 */ 154R2 >>= 10; /* r2 = 0x00108888 */ 155R3 >>= 11; /* r3 = 0x00084444 */ 156R4 >>= 12; /* r4 = 0x00042222 */ 157R5 >>= 13; /* r5 = 0x00021111 */ 158R6 >>= 14; /* r6 = 0x00010888 */ 159R7 >>= 15; /* r7 = 0x00008444 */ 160CHECKREG r0, 0x00422222; 161CHECKREG r1, 0x00211111; 162CHECKREG r2, 0x00108888; 163CHECKREG r3, 0x00084444; 164CHECKREG r4, 0x00042222; 165CHECKREG r5, 0x00021111; 166CHECKREG r6, 0x00010888; 167CHECKREG r7, 0x00008444; 168 169// bit 16-23 170imm32 r0, 0x43333333; 171imm32 r1, 0x43333333; 172imm32 r2, 0x43333333; 173imm32 r3, 0x43333333; 174imm32 r4, 0x43333333; 175imm32 r5, 0x43333333; 176imm32 r6, 0x43333333; 177imm32 r7, 0x43333333; 178R0 >>= 16; /* r0 = 0x00004333 */ 179R1 >>= 17; /* r1 = 0x00002199 */ 180R2 >>= 18; /* r2 = 0x000010CC */ 181R3 >>= 19; /* r3 = 0x00000866 */ 182R4 >>= 20; /* r4 = 0x00000433 */ 183R5 >>= 21; /* r5 = 0x00000219 */ 184R6 >>= 22; /* r6 = 0x0000010C */ 185R7 >>= 23; /* r7 = 0x00000086 */ 186CHECKREG r0, 0x00004333; 187CHECKREG r1, 0x00002199; 188CHECKREG r2, 0x000010CC; 189CHECKREG r3, 0x00000866; 190CHECKREG r4, 0x00000433; 191CHECKREG r5, 0x00000219; 192CHECKREG r6, 0x0000010C; 193CHECKREG r7, 0x00000086; 194 195// bit 24-31 196imm32 r0, 0x44444444; 197imm32 r1, 0x44444444; 198imm32 r2, 0x44444444; 199imm32 r3, 0x44444444; 200imm32 r4, 0x44444444; 201imm32 r5, 0x44444444; 202imm32 r6, 0x44444444; 203imm32 r7, 0x44444444; 204R0 >>= 24; /* r0 = 0x00000044 */ 205R1 >>= 25; /* r1 = 0x00000022 */ 206R2 >>= 26; /* r2 = 0x00000011 */ 207R3 >>= 27; /* r3 = 0x00000008 */ 208R4 >>= 28; /* r4 = 0x00000004 */ 209R5 >>= 29; /* r5 = 0x00000002 */ 210R6 >>= 30; /* r6 = 0x00000001 */ 211R7 >>= 31; /* r7 = 0x00000000 */ 212CHECKREG r0, 0x00000044; 213CHECKREG r1, 0x00000022; 214CHECKREG r2, 0x00000011; 215CHECKREG r3, 0x00000008; 216CHECKREG r4, 0x00000004; 217CHECKREG r5, 0x00000002; 218CHECKREG r6, 0x00000001; 219CHECKREG r7, 0x00000000; 220 221 222pass 223