1//Original:/testcases/core/c_alu2op_arith_r_sft/c_alu2op_arith_r_sft.dsp 2// Spec Reference: alu2op arith right 3# mach: bfin 4 5.include "testutils.inc" 6 start 7 8 9 10imm32 r0, 0x00000000; 11imm32 r1, 0x12345678; 12imm32 r2, 0x23456789; 13imm32 r3, 0x3456789a; 14imm32 r4, 0x856789ab; 15imm32 r5, 0x96789abc; 16imm32 r6, 0xa789abcd; 17imm32 r7, 0xb89abcde; 18R1.L = 1; 19R1 >>>= R0; 20R2 >>>= R0; 21R3 >>>= R0; 22R4 >>>= R0; 23R5 >>>= R0; 24R6 >>>= R0; 25R7 >>>= R0; 26R4 >>>= R0; 27R0 >>>= R0; 28CHECKREG r1, 0x12340001; 29CHECKREG r2, 0x23456789; 30CHECKREG r3, 0x3456789A; 31CHECKREG r4, 0x856789AB; 32CHECKREG r5, 0x96789ABC; 33CHECKREG r6, 0xA789ABCD; 34CHECKREG r7, 0xB89ABCDE; 35CHECKREG r0, 0x00000000; 36 37imm32 r0, 0x01230002; 38imm32 r1, 0x00000000; 39imm32 r2, 0x93456789; 40imm32 r3, 0xa456789a; 41imm32 r4, 0xb56789ab; 42imm32 r5, 0xc6789abc; 43imm32 r6, 0xd789abcd; 44imm32 r7, 0xe89abcde; 45R1.L = -1; 46R0 >>>= R1; 47R2 >>>= R1; 48R3 >>>= R1; 49R4 >>>= R1; 50R5 >>>= R1; 51R6 >>>= R1; 52R7 >>>= R1; 53R1 >>>= R1; 54CHECKREG r0, 0x00000000; 55CHECKREG r1, 0x00000000; 56CHECKREG r2, 0xFFFFFFFF; 57CHECKREG r3, 0xFFFFFFFF; 58CHECKREG r4, 0xFFFFFFFF; 59CHECKREG r5, 0xFFFFFFFF; 60CHECKREG r6, 0xFFFFFFFF; 61CHECKREG r7, 0xFFFFFFFF; 62 63imm32 r0, 0x51230002; 64imm32 r1, 0x12345678; 65imm32 r2, 0x00000000; 66imm32 r3, 0x3456789a; 67imm32 r4, 0x956789ab; 68imm32 r5, 0x86789abc; 69imm32 r6, 0x6789abcd; 70imm32 r7, 0x789abcde; 71R2.L = 31; 72R0 >>>= R2; 73R1 >>>= R2; 74R3 >>>= R2; 75R4 >>>= R2; 76R5 >>>= R2; 77R6 >>>= R2; 78R7 >>>= R2; 79R2 >>>= R2; 80CHECKREG r0, 0x00000000; 81CHECKREG r1, 0x00000000; 82CHECKREG r2, 0x00000000; 83CHECKREG r3, 0x00000000; 84CHECKREG r4, 0xFFFFFFFF; 85CHECKREG r5, 0xFFFFFFFF; 86CHECKREG r6, 0x00000000; 87CHECKREG r7, 0x00000000; 88 89imm32 r0, 0x01230002; 90imm32 r1, 0x82345678; 91imm32 r2, 0x93456789; 92imm32 r3, 0x00000000; 93imm32 r4, 0xb56789ab; 94imm32 r5, 0xc6789abc; 95imm32 r6, 0xd789abcd; 96imm32 r7, 0xe89abcde; 97R3.L = -31; 98R0 >>>= R3; 99R1 >>>= R3; 100R2 >>>= R3; 101R4 >>>= R3; 102R5 >>>= R3; 103R6 >>>= R3; 104R7 >>>= R3; 105R3 >>>= R3; 106CHECKREG r0, 0x00000000; 107CHECKREG r1, 0xFFFFFFFF; 108CHECKREG r2, 0xFFFFFFFF; 109CHECKREG r3, 0x00000000; 110CHECKREG r4, 0xFFFFFFFF; 111CHECKREG r5, 0xFFFFFFFF; 112CHECKREG r6, 0xFFFFFFFF; 113CHECKREG r7, 0xFFFFFFFF; 114 115imm32 r0, 0x00000001; 116imm32 r1, 0x12345678; 117imm32 r2, 0x23456789; 118imm32 r3, 0x3456789a; 119imm32 r4, 0x00000000; 120imm32 r5, 0x96789abc; 121imm32 r6, 0xa789abcd; 122imm32 r7, 0xb89abcde; 123R4.L = 15; 124R1 >>>= R4; 125R2 >>>= R4; 126R3 >>>= R4; 127R0 >>>= R4; 128R5 >>>= R4; 129R6 >>>= R4; 130R7 >>>= R4; 131R4 >>>= R4; 132CHECKREG r0, 0x00000000; 133CHECKREG r1, 0x00002468; 134CHECKREG r2, 0x0000468A; 135CHECKREG r3, 0x000068AC; 136CHECKREG r4, 0x00000000; 137CHECKREG r5, 0xFFFF2CF1; 138CHECKREG r6, 0xFFFF4F13; 139CHECKREG r7, 0xFFFF7135; 140 141imm32 r0, 0x01230002; 142imm32 r1, 0x00000000; 143imm32 r2, 0x93456789; 144imm32 r3, 0xa456789a; 145imm32 r4, 0xb56789ab; 146imm32 r5, 0x00000000; 147imm32 r6, 0xd789abcd; 148imm32 r7, 0xe89abcde; 149R5.L = -15; 150R0 >>>= R5; 151R1 >>>= R5; 152R2 >>>= R5; 153R3 >>>= R5; 154R4 >>>= R5; 155R6 >>>= R5; 156R7 >>>= R5; 157R5 >>>= R5; 158CHECKREG r0, 0x00000000; 159CHECKREG r1, 0x00000000; 160CHECKREG r2, 0xFFFFFFFF; 161CHECKREG r3, 0xFFFFFFFF; 162CHECKREG r4, 0xFFFFFFFF; 163CHECKREG r5, 0x00000000; 164CHECKREG r6, 0xFFFFFFFF; 165CHECKREG r7, 0xFFFFFFFF; 166 167imm32 r0, 0x51230002; 168imm32 r1, 0x12345678; 169imm32 r2, 0xb1256790; 170imm32 r3, 0x3456789a; 171imm32 r4, 0x956789ab; 172imm32 r5, 0x86789abc; 173imm32 r6, 0x00000000; 174imm32 r7, 0x789abcde; 175R6.L = 24; 176R0 >>>= R6; 177R1 >>>= R6; 178R2 >>>= R6; 179R3 >>>= R6; 180R4 >>>= R6; 181R5 >>>= R6; 182R7 >>>= R6; 183R6 >>>= R6; 184CHECKREG r0, 0x00000051; 185CHECKREG r1, 0x00000012; 186CHECKREG r2, 0xFFFFFFB1; 187CHECKREG r3, 0x00000034; 188CHECKREG r4, 0xFFFFFF95; 189CHECKREG r5, 0xFFFFFF86; 190CHECKREG r6, 0x00000000; 191CHECKREG r7, 0x00000078; 192 193imm32 r0, 0x01230002; 194imm32 r1, 0x82345678; 195imm32 r2, 0x93456789; 196imm32 r3, 0xa456789a; 197imm32 r4, 0xb56789ab; 198imm32 r5, 0xc6789abc; 199imm32 r6, 0xd789abcd; 200imm32 r7, 0x00000000; 201R7.L = -24; 202R0 >>>= R7; 203R1 >>>= R7; 204R2 >>>= R7; 205R3 >>>= R7; 206R4 >>>= R7; 207R5 >>>= R7; 208R6 >>>= R7; 209R7 >>>= R7; 210CHECKREG r0, 0x00000000; 211CHECKREG r1, 0xFFFFFFFF; 212CHECKREG r2, 0xFFFFFFFF; 213CHECKREG r3, 0xFFFFFFFF; 214CHECKREG r4, 0xFFFFFFFF; 215CHECKREG r5, 0xFFFFFFFF; 216CHECKREG r6, 0xFFFFFFFF; 217CHECKREG r7, 0x00000000; 218 219// special case 220R2.L = -1; 221R2.H = 32767; 222R0 = 0; 223R2 >>>= R0; 224CHECKREG r2, 0x7FFFFFFF; 225 226pass 227