1//Original:/testcases/core/c_dsp32shift_lf/c_dsp32shift_lf.dsp 2// Spec Reference: dsp32shift lshift 3# mach: bfin 4 5.include "testutils.inc" 6 start 7 8 9 10// lshift : mix data, count (+)= (half reg) 11// d_reg = lshift (d BY d_lo) 12// Rx by RLx 13imm32 r0, 0x01210001; 14imm32 r1, 0x12315678; 15imm32 r2, 0x23416789; 16imm32 r3, 0x3451789a; 17imm32 r4, 0x856189ab; 18imm32 r5, 0x96719abc; 19imm32 r6, 0xa781abcd; 20imm32 r7, 0xb891bcde; 21R7 = LSHIFT R0 BY R0.L; 22R6 = LSHIFT R1 BY R0.L; 23R0 = LSHIFT R2 BY R0.L; 24R1 = LSHIFT R3 BY R0.L; 25R2 = LSHIFT R4 BY R0.L; 26R3 = LSHIFT R5 BY R0.L; 27R4 = LSHIFT R6 BY R0.L; 28R5 = LSHIFT R7 BY R0.L; 29CHECKREG r0, 0x4682CF12; 30CHECKREG r1, 0xE2680000; 31CHECKREG r2, 0x26AC0000; 32CHECKREG r3, 0x6AF00000; 33CHECKREG r4, 0xB3C00000; 34CHECKREG r5, 0x00080000; 35CHECKREG r6, 0x2462ACF0; 36CHECKREG r7, 0x02420002; 37 38imm32 r0, 0x01220002; 39imm32 r1, 0x12325678; 40imm32 r2, 0x23426789; 41imm32 r3, 0x3452789a; 42imm32 r4, 0x956289ab; 43imm32 r5, 0xa6729abc; 44imm32 r6, 0xb782abcd; 45imm32 r7, 0xc892bcde; 46R1.L = 2; 47R3 = LSHIFT R0 BY R1.L; 48R4 = LSHIFT R1 BY R1.L; 49R5 = LSHIFT R2 BY R1.L; 50R6 = LSHIFT R3 BY R1.L; 51R7 = LSHIFT R4 BY R1.L; 52R0 = LSHIFT R5 BY R1.L; 53R1 = LSHIFT R6 BY R1.L; 54R2 = LSHIFT R7 BY R1.L; 55CHECKREG r0, 0x34267890; 56CHECKREG r1, 0x48800080; 57CHECKREG r2, 0x23200020; 58CHECKREG r3, 0x04880008; 59CHECKREG r4, 0x48C80008; 60CHECKREG r5, 0x8D099E24; 61CHECKREG r6, 0x12200020; 62CHECKREG r7, 0x23200020; 63 64imm32 r0, 0x01230002; 65imm32 r1, 0x12335678; 66imm32 r2, 0x23436789; 67imm32 r3, 0x3453789a; 68imm32 r4, 0x456389ab; 69imm32 r5, 0x56739abc; 70imm32 r6, 0x6783abcd; 71imm32 r7, 0x789abcde; 72R2 = 14; 73R0 = LSHIFT R4 BY R2.L; 74R1 = LSHIFT R5 BY R2.L; 75R2 = LSHIFT R6 BY R2.L; 76R3 = LSHIFT R7 BY R2.L; 77CHECKREG r0, 0xE26AC000; 78CHECKREG r1, 0xE6AF0000; 79CHECKREG r2, 0xEAF34000; 80CHECKREG r3, 0x789ABCDE; 81 82imm32 r0, 0x01240002; 83imm32 r1, 0x12345678; 84imm32 r2, 0x23446789; 85imm32 r3, 0x3454789a; 86imm32 r4, 0xa56489ab; 87imm32 r5, 0xb6749abc; 88imm32 r6, 0xc784abcd; 89imm32 r7, 0xd894bcde; 90R3.L = 15; 91R4 = LSHIFT R0 BY R3.L; 92R5 = LSHIFT R1 BY R3.L; 93R6 = LSHIFT R2 BY R3.L; 94R7 = LSHIFT R3 BY R3.L; 95R0 = LSHIFT R4 BY R3.L; 96R1 = LSHIFT R5 BY R3.L; 97R2 = LSHIFT R6 BY R3.L; 98R3 = LSHIFT R7 BY R3.L; 99CHECKREG r0, 0x80000000; 100CHECKREG r1, 0x00000000; 101CHECKREG r2, 0x40000000; 102CHECKREG r3, 0xC0000000; 103CHECKREG r4, 0x00010000; 104CHECKREG r5, 0x2B3C0000; 105CHECKREG r6, 0x33C48000; 106CHECKREG r7, 0x00078000; 107 108imm32 r0, 0x01250002; 109imm32 r1, 0x12355678; 110imm32 r2, 0x23456789; 111imm32 r3, 0x3455789a; 112imm32 r4, 0x456589ab; 113imm32 r5, 0x56759abc; 114imm32 r6, 0x6785abcd; 115imm32 r7, 0x7895bcde; 116R4.L = -1; 117R7 = LSHIFT R0 BY R4.L; 118R6 = LSHIFT R1 BY R4.L; 119R5 = LSHIFT R2 BY R4.L; 120R3 = LSHIFT R4 BY R4.L; 121R2 = LSHIFT R5 BY R4.L; 122R1 = LSHIFT R6 BY R4.L; 123R0 = LSHIFT R7 BY R4.L; 124R4 = LSHIFT R3 BY R4.L; 125CHECKREG r0, 0x00494000; 126CHECKREG r1, 0x048D559E; 127CHECKREG r2, 0x08D159E2; 128CHECKREG r3, 0x22B2FFFF; 129CHECKREG r4, 0x11597FFF; 130CHECKREG r5, 0x11A2B3C4; 131CHECKREG r6, 0x091AAB3C; 132CHECKREG r7, 0x00928001; 133 134imm32 r0, 0x01260002; 135imm32 r1, 0x82365678; 136imm32 r2, 0x93466789; 137imm32 r3, 0xa456789a; 138imm32 r4, 0xb56689ab; 139imm32 r5, 0xc6769abc; 140imm32 r6, 0xd786abcd; 141imm32 r7, 0xe896bcde; 142R5.L = -8; 143R6 = LSHIFT R0 BY R5.L; 144R7 = LSHIFT R1 BY R5.L; 145R0 = LSHIFT R2 BY R5.L; 146R1 = LSHIFT R3 BY R5.L; 147R2 = LSHIFT R4 BY R5.L; 148R3 = LSHIFT R5 BY R5.L; 149R4 = LSHIFT R6 BY R5.L; 150R5 = LSHIFT R7 BY R5.L; 151CHECKREG r0, 0x00934667; 152CHECKREG r1, 0x00A45678; 153CHECKREG r2, 0x00B56689; 154CHECKREG r3, 0x00C676FF; 155CHECKREG r4, 0x00000126; 156CHECKREG r5, 0x00008236; 157CHECKREG r6, 0x00012600; 158CHECKREG r7, 0x00823656; 159 160imm32 r0, 0x01270002; 161imm32 r1, 0x12375678; 162imm32 r2, 0x23476789; 163imm32 r3, 0x3457789a; 164imm32 r4, 0x456789ab; 165imm32 r5, 0x56779abc; 166imm32 r6, 0x6787abcd; 167imm32 r7, 0x7897bcde; 168R6.L = -15; 169R7 = LSHIFT R0 BY R6.L; 170R0 = LSHIFT R1 BY R6.L; 171R1 = LSHIFT R2 BY R6.L; 172R2 = LSHIFT R3 BY R6.L; 173R3 = LSHIFT R4 BY R6.L; 174R4 = LSHIFT R5 BY R6.L; 175R5 = LSHIFT R6 BY R6.L; 176R6 = LSHIFT R7 BY R6.L; 177CHECKREG r0, 0x0000246E; 178CHECKREG r1, 0x0000468E; 179CHECKREG r2, 0x000068AE; 180CHECKREG r3, 0x00008ACF; 181CHECKREG r4, 0x0000ACEF; 182CHECKREG r5, 0x0000CF0F; 183CHECKREG r6, 0x00000000; 184CHECKREG r7, 0x0000024E; 185 186imm32 r0, 0x01280002; 187imm32 r1, 0x82385678; 188imm32 r2, 0x93486789; 189imm32 r3, 0xa458789a; 190imm32 r4, 0xb56889ab; 191imm32 r5, 0xc6789abc; 192imm32 r6, 0xd788abcd; 193imm32 r7, 0xe898bcde; 194R7.L = -16; 195R0 = LSHIFT R0 BY R7.L; 196R1 = LSHIFT R1 BY R7.L; 197R2 = LSHIFT R2 BY R7.L; 198R3 = LSHIFT R3 BY R7.L; 199R4 = LSHIFT R4 BY R7.L; 200R5 = LSHIFT R5 BY R7.L; 201R6 = LSHIFT R6 BY R7.L; 202R7 = LSHIFT R7 BY R7.L; 203CHECKREG r0, 0x00000128; 204CHECKREG r1, 0x00008238; 205CHECKREG r2, 0x00009348; 206CHECKREG r3, 0x0000A458; 207CHECKREG r4, 0x0000B568; 208CHECKREG r5, 0x0000C678; 209CHECKREG r6, 0x0000D788; 210CHECKREG r7, 0x0000E898; 211 212imm32 r0, 0x81290002; 213imm32 r1, 0x92395678; 214imm32 r2, 0xa3496789; 215imm32 r3, 0xb459789a; 216imm32 r4, 0xc56989ab; 217imm32 r5, 0xd6799abc; 218imm32 r6, 0xe789abcd; 219imm32 r7, 0xf899bcde; 220R0.L = 4; 221//r0 = lshift (r0 by rl0); 222R1 = LSHIFT R1 BY R0.L; 223R2 = LSHIFT R2 BY R0.L; 224R3 = LSHIFT R3 BY R0.L; 225R4 = LSHIFT R4 BY R0.L; 226R5 = LSHIFT R5 BY R0.L; 227R6 = LSHIFT R6 BY R0.L; 228R7 = LSHIFT R7 BY R0.L; 229CHECKREG r1, 0x23956780; 230CHECKREG r2, 0x34967890; 231CHECKREG r3, 0x459789A0; 232CHECKREG r4, 0x56989AB0; 233CHECKREG r5, 0x6799ABC0; 234CHECKREG r6, 0x789ABCD0; 235CHECKREG r7, 0x899BCDE0; 236 237imm32 r0, 0x012a0002; 238imm32 r1, 0x123a5678; 239imm32 r2, 0x234a6789; 240imm32 r3, 0x345a789a; 241imm32 r4, 0x456a89ab; 242imm32 r5, 0x567a9abc; 243imm32 r6, 0x678aabcd; 244imm32 r7, 0xf89abcde; 245R1.L = 2; 246R7 = LSHIFT R0 BY R1.L; 247R6 = LSHIFT R1 BY R1.L; 248R5 = LSHIFT R2 BY R1.L; 249R4 = LSHIFT R3 BY R1.L; 250R3 = LSHIFT R4 BY R1.L; 251R2 = LSHIFT R5 BY R1.L; 252R0 = LSHIFT R6 BY R1.L; 253R1 = LSHIFT R7 BY R1.L; 254CHECKREG r0, 0x23A00020; 255CHECKREG r1, 0x12A00020; 256CHECKREG r2, 0x34A67890; 257CHECKREG r3, 0x45A789A0; 258CHECKREG r4, 0xD169E268; 259CHECKREG r5, 0x8D299E24; 260CHECKREG r6, 0x48E80008; 261CHECKREG r7, 0x04A80008; 262 263 264imm32 r0, 0x012b0002; 265imm32 r1, 0x123b5678; 266imm32 r2, 0x234b6789; 267imm32 r3, 0x345b789a; 268imm32 r4, 0x456b89ab; 269imm32 r5, 0x567b9abc; 270imm32 r6, 0x678babcd; 271imm32 r7, 0x789bbcde; 272R2.L = 15; 273R0 = LSHIFT R0 BY R2.L; 274R1 = LSHIFT R1 BY R2.L; 275R3 = LSHIFT R3 BY R2.L; 276R4 = LSHIFT R4 BY R2.L; 277R5 = LSHIFT R5 BY R2.L; 278R6 = LSHIFT R6 BY R2.L; 279R7 = LSHIFT R7 BY R2.L; 280R2 = LSHIFT R2 BY R2.L; 281CHECKREG r0, 0x80010000; 282CHECKREG r1, 0xAB3C0000; 283CHECKREG r2, 0x80078000; 284CHECKREG r3, 0xBC4D0000; 285CHECKREG r4, 0xC4D58000; 286CHECKREG r5, 0xCD5E0000; 287CHECKREG r6, 0xD5E68000; 288CHECKREG r7, 0xDE6F0000; 289 290imm32 r0, 0x012c0002; 291imm32 r1, 0x123c5678; 292imm32 r2, 0x234c6789; 293imm32 r3, 0x345c789a; 294imm32 r4, 0x456c89ab; 295imm32 r5, 0x567c9abc; 296imm32 r6, 0x678cabcd; 297imm32 r7, 0x789cbcde; 298R3.L = 16; 299R0 = LSHIFT R0 BY R3.L; 300R1 = LSHIFT R1 BY R3.L; 301R2 = LSHIFT R2 BY R3.L; 302R4 = LSHIFT R4 BY R3.L; 303R5 = LSHIFT R5 BY R3.L; 304R6 = LSHIFT R6 BY R3.L; 305R7 = LSHIFT R7 BY R3.L; 306R3 = LSHIFT R3 BY R3.L; 307CHECKREG r0, 0x00020000; 308CHECKREG r1, 0x56780000; 309CHECKREG r2, 0x67890000; 310CHECKREG r3, 0x00100000; 311CHECKREG r4, 0x89AB0000; 312CHECKREG r5, 0x9ABC0000; 313CHECKREG r6, 0xABCD0000; 314CHECKREG r7, 0xBCDE0000; 315 316imm32 r0, 0x012d0002; 317imm32 r1, 0x123d5678; 318imm32 r2, 0x234d6789; 319imm32 r3, 0x345d789a; 320imm32 r4, 0x456d89ab; 321imm32 r5, 0x567d9abc; 322imm32 r6, 0x678dabcd; 323imm32 r7, 0x789dbcde; 324R4.L = -9; 325R7 = LSHIFT R0 BY R4.L; 326R0 = LSHIFT R1 BY R4.L; 327R1 = LSHIFT R2 BY R4.L; 328R2 = LSHIFT R3 BY R4.L; 329//r4 = lshift (r4 by rl4); 330R3 = LSHIFT R5 BY R4.L; 331R5 = LSHIFT R6 BY R4.L; 332R6 = LSHIFT R7 BY R4.L; 333CHECKREG r0, 0x00091EAB; 334CHECKREG r1, 0x0011A6B3; 335CHECKREG r2, 0x001A2EBC; 336CHECKREG r3, 0x002B3ECD; 337CHECKREG r4, 0x456DFFF7; 338CHECKREG r5, 0x0033C6D5; 339CHECKREG r6, 0x0000004B; 340CHECKREG r7, 0x00009680; 341 342imm32 r0, 0x012e0002; 343imm32 r1, 0x123e5678; 344imm32 r2, 0x234e6789; 345imm32 r3, 0x345e789a; 346imm32 r4, 0x456e89ab; 347imm32 r5, 0x567e9abc; 348imm32 r6, 0x678eabcd; 349imm32 r7, 0x789ebcde; 350R5.L = -14; 351R0 = LSHIFT R0 BY R5.L; 352R1 = LSHIFT R1 BY R5.L; 353R2 = LSHIFT R2 BY R5.L; 354R3 = LSHIFT R3 BY R5.L; 355R4 = LSHIFT R4 BY R5.L; 356//r5 = lshift (r5 by rl5); 357R6 = LSHIFT R6 BY R5.L; 358R7 = LSHIFT R7 BY R5.L; 359CHECKREG r0, 0x000004B8; 360CHECKREG r1, 0x000048F9; 361CHECKREG r2, 0x00008D39; 362CHECKREG r3, 0x0000D179; 363CHECKREG r4, 0x000115BA; 364CHECKREG r5, 0x567EFFF2; 365CHECKREG r6, 0x00019E3A; 366CHECKREG r7, 0x0001E27A; 367 368 369imm32 r0, 0x012f0002; 370imm32 r1, 0x623f5678; 371imm32 r2, 0x734f6789; 372imm32 r3, 0x845f789a; 373imm32 r4, 0x956f89ab; 374imm32 r5, 0xa67f9abc; 375imm32 r6, 0xc78fabcd; 376imm32 r7, 0xd89fbcde; 377R6.L = -15; 378R0 = LSHIFT R0 BY R6.L; 379R1 = LSHIFT R1 BY R6.L; 380R2 = LSHIFT R2 BY R6.L; 381R3 = LSHIFT R3 BY R6.L; 382R4 = LSHIFT R4 BY R6.L; 383R5 = LSHIFT R5 BY R6.L; 384//r6 = lshift (r6 by rl6); 385R7 = LSHIFT R7 BY R6.L; 386CHECKREG r0, 0x0000025E; 387CHECKREG r1, 0x0000C47E; 388CHECKREG r2, 0x0000E69E; 389CHECKREG r3, 0x000108BE; 390CHECKREG r4, 0x00012ADF; 391CHECKREG r5, 0x00014CFF; 392CHECKREG r6, 0xC78FFFF1; 393CHECKREG r7, 0x0001B13F; 394 395imm32 r0, 0x71230072; 396imm32 r1, 0x82345678; 397imm32 r2, 0x93456779; 398imm32 r3, 0xa456787a; 399imm32 r4, 0xb567897b; 400imm32 r5, 0xc6789a7c; 401imm32 r6, 0x6789ab7d; 402imm32 r7, 0x789abc7e; 403R7.L = -16; 404R0 = LSHIFT R0 BY R7.L; 405R1 = LSHIFT R1 BY R7.L; 406R2 = LSHIFT R2 BY R7.L; 407R3 = LSHIFT R3 BY R7.L; 408R4 = LSHIFT R4 BY R7.L; 409R5 = LSHIFT R5 BY R7.L; 410R6 = LSHIFT R6 BY R7.L; 411R7 = LSHIFT R7 BY R7.L; 412CHECKREG r0, 0x00007123; 413CHECKREG r1, 0x00008234; 414CHECKREG r2, 0x00009345; 415CHECKREG r3, 0x0000A456; 416CHECKREG r4, 0x0000B567; 417CHECKREG r5, 0x0000C678; 418CHECKREG r6, 0x00006789; 419CHECKREG r7, 0x0000789A; 420 421 422pass 423