1//Original:/testcases/core/c_dsp32shift_lhh/c_dsp32shift_lhh.dsp 2// Spec Reference: dsp32shift lshift/lshift 3# mach: bfin 4 5.include "testutils.inc" 6 start 7 8 9 10// lshift/lshift : = (half reg) 11// d_reg = lshift/lshift (d BY d_lo) 12// Rx by RLx 13imm32 r0, 0x01230000; 14imm32 r1, 0x12345678; 15imm32 r2, 0x23456789; 16imm32 r3, 0x3456789a; 17imm32 r4, 0x456789ab; 18imm32 r5, 0x56789abc; 19imm32 r6, 0x6789abcd; 20imm32 r7, 0x789abcde; 21R1 = LSHIFT R0 BY R0.L (V); 22R2 = LSHIFT R1 BY R0.L (V); 23R3 = LSHIFT R2 BY R0.L (V); 24R4 = LSHIFT R3 BY R0.L (V); 25R5 = LSHIFT R4 BY R0.L (V); 26R6 = LSHIFT R5 BY R0.L (V); 27R7 = LSHIFT R6 BY R0.L (V); 28R0 = LSHIFT R7 BY R0.L (V); 29 30imm32 r0, 0x01230002; 31imm32 r1, 0x12345678; 32imm32 r2, 0x23456789; 33imm32 r3, 0x3456789a; 34imm32 r4, 0x456789ab; 35imm32 r5, 0x56789abc; 36imm32 r6, 0x6789abcd; 37imm32 r7, 0x789abcde; 38R1.L = 5; 39R2 = LSHIFT R0 BY R1.L (V); 40R3 = LSHIFT R1 BY R1.L (V); 41R4 = LSHIFT R2 BY R1.L (V); 42R5 = LSHIFT R3 BY R1.L (V); 43R6 = LSHIFT R4 BY R1.L (V); 44R7 = LSHIFT R5 BY R1.L (V); 45R0 = LSHIFT R6 BY R1.L (V); 46R1 = LSHIFT R7 BY R1.L (V); 47 48imm32 r0, 0x01230002; 49imm32 r1, 0x12345678; 50imm32 r2, 0x23456789; 51imm32 r3, 0x3456789a; 52imm32 r4, 0x456789ab; 53imm32 r5, 0x56789abc; 54imm32 r6, 0x6789abcd; 55imm32 r7, 0x789abcde; 56R2 = 15; 57R3 = LSHIFT R0 BY R2.L (V); 58R4 = LSHIFT R1 BY R2.L (V); 59R5 = LSHIFT R2 BY R2.L (V); 60R6 = LSHIFT R3 BY R2.L (V); 61R7 = LSHIFT R4 BY R2.L (V); 62R0 = LSHIFT R5 BY R2.L (V); 63R1 = LSHIFT R6 BY R2.L (V); 64R2 = LSHIFT R7 BY R2.L (V); 65 66imm32 r0, 0x01230002; 67imm32 r1, 0x12345678; 68imm32 r2, 0x23456789; 69imm32 r3, 0x3456789a; 70imm32 r4, 0x456789ab; 71imm32 r5, 0x56789abc; 72imm32 r6, 0x6789abcd; 73imm32 r7, 0x789abcde; 74R3.L = 16; 75R4 = LSHIFT R0 BY R3.L (V); 76R5 = LSHIFT R1 BY R3.L (V); 77R6 = LSHIFT R2 BY R3.L (V); 78R7 = LSHIFT R3 BY R3.L (V); 79R0 = LSHIFT R4 BY R3.L (V); 80R1 = LSHIFT R5 BY R3.L (V); 81R2 = LSHIFT R6 BY R3.L (V); 82R3 = LSHIFT R7 BY R3.L (V); 83 84imm32 r0, 0x01230002; 85imm32 r1, 0x12345678; 86imm32 r2, 0x23456789; 87imm32 r3, 0x3456789a; 88imm32 r4, 0x456789ab; 89imm32 r5, 0x56789abc; 90imm32 r6, 0x6789abcd; 91imm32 r7, 0x789abcde; 92R4.L = -1; 93R0 = LSHIFT R0 BY R4.L (V); 94R1 = LSHIFT R1 BY R4.L (V); 95R2 = LSHIFT R2 BY R4.L (V); 96R3 = LSHIFT R3 BY R4.L (V); 97R4 = LSHIFT R4 BY R4.L (V); 98R5 = LSHIFT R5 BY R4.L (V); 99R6 = LSHIFT R6 BY R4.L (V); 100R7 = LSHIFT R7 BY R4.L (V); 101 102imm32 r0, 0x01230002; 103imm32 r1, 0x12345678; 104imm32 r2, 0x23456789; 105imm32 r3, 0x3456789a; 106imm32 r4, 0x456789ab; 107imm32 r5, 0x56789abc; 108imm32 r6, 0x6789abcd; 109imm32 r7, 0x789abcde; 110R5.L = -6; 111R6 = LSHIFT R0 BY R5.L (V); 112R7 = LSHIFT R1 BY R5.L (V); 113R0 = LSHIFT R2 BY R5.L (V); 114R1 = LSHIFT R3 BY R5.L (V); 115R2 = LSHIFT R4 BY R5.L (V); 116R3 = LSHIFT R5 BY R5.L (V); 117R4 = LSHIFT R6 BY R5.L (V); 118R5 = LSHIFT R7 BY R5.L (V); 119 120imm32 r0, 0x01230002; 121imm32 r1, 0x12345678; 122imm32 r2, 0x23456789; 123imm32 r3, 0x3456789a; 124imm32 r4, 0x456789ab; 125imm32 r5, 0x56789abc; 126imm32 r6, 0x6789abcd; 127imm32 r7, 0x789abcde; 128R6.L = -15; 129R7 = LSHIFT R0 BY R6.L (V); 130R0 = LSHIFT R1 BY R6.L (V); 131R1 = LSHIFT R2 BY R6.L (V); 132R2 = LSHIFT R3 BY R6.L (V); 133R3 = LSHIFT R4 BY R6.L (V); 134R4 = LSHIFT R5 BY R6.L (V); 135R5 = LSHIFT R6 BY R6.L (V); 136R6 = LSHIFT R7 BY R6.L (V); 137 138imm32 r0, 0x01230002; 139imm32 r1, 0x12345678; 140imm32 r2, 0x23456789; 141imm32 r3, 0x3456789a; 142imm32 r4, 0x456789ab; 143imm32 r5, 0x56789abc; 144imm32 r6, 0x6789abcd; 145imm32 r7, 0x789abcde; 146R7.L = -16; 147R0 = LSHIFT R0 BY R7.L (V); 148R1 = LSHIFT R1 BY R7.L (V); 149R2 = LSHIFT R2 BY R7.L (V); 150R3 = LSHIFT R3 BY R7.L (V); 151R4 = LSHIFT R4 BY R7.L (V); 152R5 = LSHIFT R5 BY R7.L (V); 153R6 = LSHIFT R6 BY R7.L (V); 154R7 = LSHIFT R7 BY R7.L (V); 155 156imm32 r0, 0x01230002; 157imm32 r1, 0x12345678; 158imm32 r2, 0x23456789; 159imm32 r3, 0x3456789a; 160imm32 r4, 0x456789ab; 161imm32 r5, 0x56789abc; 162imm32 r6, 0x6789abcd; 163imm32 r7, 0x789abcde; 164R0.L = 4; 165//r0 = lshift/lshift (r0 by rl0); 166R1 = LSHIFT R1 BY R0.L (V); 167R2 = LSHIFT R2 BY R0.L (V); 168R3 = LSHIFT R3 BY R0.L (V); 169R4 = LSHIFT R4 BY R0.L (V); 170R5 = LSHIFT R5 BY R0.L (V); 171R6 = LSHIFT R6 BY R0.L (V); 172R7 = LSHIFT R7 BY R0.L (V); 173 174imm32 r0, 0x01230002; 175imm32 r1, 0x12345678; 176imm32 r2, 0x23456789; 177imm32 r3, 0x3456789a; 178imm32 r4, 0x456789ab; 179imm32 r5, 0x56789abc; 180imm32 r6, 0x6789abcd; 181imm32 r7, 0x789abcde; 182R1.L = 6; 183R0 = LSHIFT R0 BY R1.L (V); 184//r1 = lshift/lshift (r1 by rl1); 185R2 = LSHIFT R2 BY R1.L (V); 186R3 = LSHIFT R3 BY R1.L (V); 187R4 = LSHIFT R4 BY R1.L (V); 188R5 = LSHIFT R5 BY R1.L (V); 189R6 = LSHIFT R6 BY R1.L (V); 190R7 = LSHIFT R7 BY R1.L (V); 191 192 193imm32 r0, 0x01230002; 194imm32 r1, 0x12345678; 195imm32 r2, 0x23456789; 196imm32 r3, 0x3456789a; 197imm32 r4, 0x456789ab; 198imm32 r5, 0x56789abc; 199imm32 r6, 0x6789abcd; 200imm32 r7, 0x789abcde; 201R2.L = 15; 202R0 = LSHIFT R0 BY R2.L (V); 203R1 = LSHIFT R1 BY R2.L (V); 204//r2 = lshift/lshift (r2 by rl2); 205R3 = LSHIFT R3 BY R2.L (V); 206R4 = LSHIFT R4 BY R2.L (V); 207R5 = LSHIFT R5 BY R2.L (V); 208R6 = LSHIFT R6 BY R2.L (V); 209R7 = LSHIFT R7 BY R2.L (V); 210 211imm32 r0, 0x01230002; 212imm32 r1, 0x12345678; 213imm32 r2, 0x23456789; 214imm32 r3, 0x3456789a; 215imm32 r4, 0x456789ab; 216imm32 r5, 0x56789abc; 217imm32 r6, 0x6789abcd; 218imm32 r7, 0x789abcde; 219R3.L = 16; 220R0 = LSHIFT R0 BY R3.L (V); 221R1 = LSHIFT R1 BY R3.L (V); 222R2 = LSHIFT R2 BY R3.L (V); 223//r3 = lshift/lshift (r3 by rl3); 224R4 = LSHIFT R4 BY R3.L (V); 225R5 = LSHIFT R5 BY R3.L (V); 226R6 = LSHIFT R6 BY R3.L (V); 227R7 = LSHIFT R7 BY R3.L (V); 228 229imm32 r0, 0x01230002; 230imm32 r1, 0x12345678; 231imm32 r2, 0x23456789; 232imm32 r3, 0x3456789a; 233imm32 r4, 0x456789ab; 234imm32 r5, 0x56789abc; 235imm32 r6, 0x6789abcd; 236imm32 r7, 0x789abcde; 237R4.L = -9; 238R0 = LSHIFT R0 BY R4.L (V); 239R1 = LSHIFT R1 BY R4.L (V); 240R2 = LSHIFT R2 BY R4.L (V); 241R3 = LSHIFT R3 BY R4.L (V); 242//r4 = lshift/lshift (r4 by rl4); 243R5 = LSHIFT R5 BY R4.L (V); 244R6 = LSHIFT R6 BY R4.L (V); 245R7 = LSHIFT R7 BY R4.L (V); 246 247imm32 r0, 0x01230002; 248imm32 r1, 0x12345678; 249imm32 r2, 0x23456789; 250imm32 r3, 0x3456789a; 251imm32 r4, 0x456789ab; 252imm32 r5, 0x56789abc; 253imm32 r6, 0x6789abcd; 254imm32 r7, 0x789abcde; 255R5.L = -14; 256R0 = LSHIFT R0 BY R5.L (V); 257R1 = LSHIFT R1 BY R5.L (V); 258R2 = LSHIFT R2 BY R5.L (V); 259R3 = LSHIFT R3 BY R5.L (V); 260R4 = LSHIFT R4 BY R5.L (V); 261//r5 = lshift/lshift (r5 by rl5); 262R6 = LSHIFT R6 BY R5.L (V); 263R7 = LSHIFT R7 BY R5.L (V); 264 265 266imm32 r0, 0x01230002; 267imm32 r1, 0x12345678; 268imm32 r2, 0x23456789; 269imm32 r3, 0x3456789a; 270imm32 r4, 0x456789ab; 271imm32 r5, 0x56789abc; 272imm32 r6, 0x6789abcd; 273imm32 r7, 0x789abcde; 274R6.L = -15; 275R0 = LSHIFT R0 BY R6.L (V); 276R1 = LSHIFT R1 BY R6.L (V); 277R2 = LSHIFT R2 BY R6.L (V); 278R3 = LSHIFT R3 BY R6.L (V); 279R4 = LSHIFT R4 BY R6.L (V); 280R5 = LSHIFT R5 BY R6.L (V); 281//r6 = lshift/lshift (r6 by rl6); 282R7 = LSHIFT R7 BY R6.L (V); 283 284imm32 r0, 0x01230002; 285imm32 r1, 0x12345678; 286imm32 r2, 0x23456789; 287imm32 r3, 0x3456789a; 288imm32 r4, 0x456789ab; 289imm32 r5, 0x56789abc; 290imm32 r6, 0x6789abcd; 291imm32 r7, 0x789abcde; 292R7.L = -16; 293R0 = LSHIFT R0 BY R7.L (V); 294R1 = LSHIFT R1 BY R7.L (V); 295R2 = LSHIFT R2 BY R7.L (V); 296R3 = LSHIFT R3 BY R7.L (V); 297R4 = LSHIFT R4 BY R7.L (V); 298R5 = LSHIFT R5 BY R7.L (V); 299R6 = LSHIFT R6 BY R7.L (V); 300R7 = LSHIFT R7 BY R7.L (V); 301CHECKREG r0, 0x00000000; 302CHECKREG r1, 0x00000000; 303CHECKREG r2, 0x00000000; 304CHECKREG r3, 0x00000000; 305CHECKREG r4, 0x00000000; 306CHECKREG r5, 0x00000000; 307CHECKREG r6, 0x00000000; 308CHECKREG r7, 0x00000000; 309CHECKREG r7, 0x00000000; 310 311pass 312