1//Original:/testcases/core/c_dsp32shiftim_ahalf_rn/c_dsp32shiftim_ahalf_rn.dsp 2// Spec Reference: dsp32shift ashift 3# mach: bfin 4 5.include "testutils.inc" 6 start 7 8 9 10imm32 r0, 0x00000000; 11R0.L = -1; 12imm32 r1, 0x00008001; 13imm32 r2, 0x00008002; 14imm32 r3, 0x00008003; 15imm32 r4, 0x00008004; 16imm32 r5, 0x00008005; 17imm32 r6, 0x00008006; 18imm32 r7, 0x00008007; 19R0.L = R0.L >>> 10; 20R1.L = R1.L >>> 10; 21R2.L = R2.L >>> 10; 22R3.L = R3.L >>> 10; 23R4.L = R4.L >>> 10; 24R5.L = R5.L >>> 10; 25R6.L = R6.L >>> 10; 26R7.L = R7.L >>> 10; 27CHECKREG r0, 0x0000FFFF; 28CHECKREG r1, 0x0000FFE0; 29CHECKREG r2, 0x0000FFE0; 30CHECKREG r3, 0x0000FFE0; 31CHECKREG r4, 0x0000FFE0; 32CHECKREG r5, 0x0000FFE0; 33CHECKREG r6, 0x0000FFE0; 34CHECKREG r7, 0x0000FFE0; 35 36imm32 r0, 0x02008020; 37imm32 r0, 0x02008021; 38imm32 r2, 0x02008022; 39imm32 r3, 0x02008023; 40imm32 r4, 0x02008024; 41imm32 r5, 0x02008025; 42imm32 r6, 0x02008026; 43imm32 r7, 0x02008027; 44R0.L = R0.L >>> 11; 45R1.L = R1.L >>> 11; 46R2.L = R2.L >>> 11; 47R3.L = R3.L >>> 11; 48R4.L = R4.L >>> 11; 49R5.L = R5.L >>> 11; 50R6.L = R6.L >>> 11; 51R7.L = R7.L >>> 11; 52CHECKREG r0, 0x0200FFF0; 53CHECKREG r1, 0x0000FFFF; 54CHECKREG r2, 0x0200FFF0; 55CHECKREG r3, 0x0200FFF0; 56CHECKREG r4, 0x0200FFF0; 57CHECKREG r5, 0x0200FFF0; 58CHECKREG r6, 0x0200FFF0; 59CHECKREG r7, 0x0200FFF0; 60 61 62imm32 r0, 0x00308001; 63imm32 r1, 0x00308001; 64R2.L = -15; 65imm32 r3, 0x00308003; 66imm32 r4, 0x00308004; 67imm32 r5, 0x00308005; 68imm32 r6, 0x00308006; 69imm32 r7, 0x00308007; 70R0.L = R0.L >>> 12; 71R1.L = R1.L >>> 12; 72R2.L = R2.L >>> 12; 73R3.L = R3.L >>> 12; 74R4.L = R4.L >>> 12; 75R5.L = R5.L >>> 12; 76R6.L = R6.L >>> 12; 77R7.L = R7.L >>> 12; 78CHECKREG r0, 0x0030FFF8; 79CHECKREG r1, 0x0030FFF8; 80CHECKREG r2, 0x0200FFFF; 81CHECKREG r3, 0x0030FFF8; 82CHECKREG r4, 0x0030FFF8; 83CHECKREG r5, 0x0030FFF8; 84CHECKREG r6, 0x0030FFF8; 85CHECKREG r7, 0x0030FFF8; 86 87imm32 r0, 0x00008401; 88imm32 r1, 0x00008401; 89imm32 r2, 0x00008402; 90R3.L = -16; 91imm32 r4, 0x00008404; 92imm32 r5, 0x00008405; 93imm32 r6, 0x00008406; 94imm32 r7, 0x00008407; 95R0.L = R0.L >>> 3; 96R1.L = R1.L >>> 3; 97R2.L = R2.L >>> 3; 98R3.L = R3.L >>> 3; 99R4.L = R4.L >>> 3; 100R5.L = R5.L >>> 3; 101R6.L = R6.L >>> 3; 102R7.L = R7.L >>> 3; 103CHECKREG r0, 0x0000F080; 104CHECKREG r1, 0x0000F080; 105CHECKREG r2, 0x0000F080; 106CHECKREG r3, 0x0030FFFE; 107CHECKREG r4, 0x0000F080; 108CHECKREG r5, 0x0000F080; 109CHECKREG r6, 0x0000F080; 110CHECKREG r7, 0x0000F080; 111 112// d_lo = ashift (d_hi BY d_lo) 113// RHx by RLx 114imm32 r0, 0x05000500; 115imm32 r1, 0x85010500; 116imm32 r2, 0x85020500; 117imm32 r3, 0x85030500; 118imm32 r4, 0x85040500; 119imm32 r5, 0x85050500; 120imm32 r6, 0x85060500; 121imm32 r7, 0x85070500; 122R0.L = R0.H >>> 10; 123R1.L = R1.H >>> 10; 124R2.L = R2.H >>> 10; 125R3.L = R3.H >>> 10; 126R4.L = R4.H >>> 10; 127R5.L = R5.H >>> 10; 128R6.L = R6.H >>> 10; 129R7.L = R7.H >>> 10; 130CHECKREG r0, 0x05000001; 131CHECKREG r1, 0x8501FFE1; 132CHECKREG r2, 0x8502FFE1; 133CHECKREG r3, 0x8503FFE1; 134CHECKREG r4, 0x8504FFE1; 135CHECKREG r5, 0x8505FFE1; 136CHECKREG r6, 0x8506FFE1; 137CHECKREG r7, 0x8507FFE1; 138 139imm32 r0, 0x80610000; 140R1.L = -1; 141imm32 r2, 0x80620000; 142imm32 r3, 0x80630000; 143imm32 r4, 0x80640000; 144imm32 r5, 0x80650000; 145imm32 r6, 0x80660000; 146imm32 r7, 0x80670000; 147R0.L = R0.H >>> 11; 148R1.L = R1.H >>> 11; 149R2.L = R2.H >>> 11; 150R3.L = R3.H >>> 11; 151R4.L = R4.H >>> 11; 152R5.L = R5.H >>> 11; 153R6.L = R6.H >>> 11; 154R7.L = R7.H >>> 11; 155CHECKREG r0, 0x8061FFF0; 156CHECKREG r1, 0x8501FFF0; 157CHECKREG r2, 0x8062FFF0; 158CHECKREG r3, 0x8063FFF0; 159CHECKREG r4, 0x8064FFF0; 160CHECKREG r5, 0x8065FFF0; 161CHECKREG r6, 0x8066FFF0; 162CHECKREG r7, 0x8067FFF0; 163 164 165imm32 r0, 0xa0010070; 166imm32 r1, 0xa0010070; 167R2.L = -15; 168imm32 r3, 0xa0030070; 169imm32 r4, 0xa0040070; 170imm32 r5, 0xa0050070; 171imm32 r6, 0xa0060070; 172imm32 r7, 0xa0070070; 173R0.L = R0.H >>> 12; 174R1.L = R1.H >>> 12; 175R2.L = R2.H >>> 12; 176R3.L = R3.H >>> 12; 177R4.L = R4.H >>> 12; 178R5.L = R5.H >>> 12; 179R6.L = R6.H >>> 12; 180R7.L = R7.H >>> 12; 181CHECKREG r0, 0xA001FFFA; 182CHECKREG r1, 0xA001FFFA; 183CHECKREG r2, 0x8062FFF8; 184CHECKREG r3, 0xA003FFFA; 185CHECKREG r4, 0xA004FFFA; 186CHECKREG r5, 0xA005FFFA; 187CHECKREG r6, 0xA006FFFA; 188CHECKREG r7, 0xA007FFFA; 189 190imm32 r0, 0xb8010001; 191imm32 r1, 0xb8010001; 192imm32 r2, 0xb8020002; 193R3.L = -16; 194imm32 r4, 0xb8040004; 195imm32 r5, 0xb8050005; 196imm32 r6, 0xb8060006; 197imm32 r7, 0xb8070007; 198R0.L = R0.H >>> 13; 199R1.L = R1.H >>> 13; 200R2.L = R2.H >>> 13; 201R3.L = R3.H >>> 13; 202R4.L = R4.H >>> 13; 203R5.L = R5.H >>> 13; 204R6.L = R6.H >>> 13; 205R7.L = R7.H >>> 13; 206CHECKREG r0, 0xB801FFFD; 207CHECKREG r1, 0xB801FFFD; 208CHECKREG r2, 0xB802FFFD; 209CHECKREG r3, 0xA003FFFD; 210CHECKREG r4, 0xB804FFFD; 211CHECKREG r5, 0xB805FFFD; 212CHECKREG r6, 0xB806FFFD; 213CHECKREG r7, 0xB807FFFD; 214 215// d_hi = ashft (d_lo BY d_lo) 216// RLx by RLx 217imm32 r0, 0x00009001; 218imm32 r1, 0x00009001; 219imm32 r2, 0x00009002; 220imm32 r3, 0x00009003; 221imm32 r4, 0x00009000; 222imm32 r5, 0x00009005; 223imm32 r6, 0x00009006; 224imm32 r7, 0x00009007; 225R0.H = R0.L >>> 14; 226R1.H = R1.L >>> 14; 227R2.H = R2.L >>> 14; 228R3.H = R3.L >>> 14; 229R4.H = R4.L >>> 14; 230R5.H = R5.L >>> 14; 231R6.H = R6.L >>> 14; 232R7.H = R7.L >>> 14; 233CHECKREG r0, 0xFFFE9001; 234CHECKREG r1, 0xFFFE9001; 235CHECKREG r2, 0xFFFE9002; 236CHECKREG r3, 0xFFFE9003; 237CHECKREG r4, 0xFFFE9000; 238CHECKREG r5, 0xFFFE9005; 239CHECKREG r6, 0xFFFE9006; 240CHECKREG r7, 0xFFFE9007; 241 242imm32 r0, 0xa0008001; 243imm32 r1, 0xa0008001; 244imm32 r2, 0xa0008002; 245imm32 r3, 0xa0008003; 246imm32 r4, 0xa0008004; 247R5.L = -1; 248imm32 r6, 0xa0008006; 249imm32 r7, 0xa0008007; 250R0.H = R0.L >>> 5; 251R1.H = R1.L >>> 5; 252R2.H = R2.L >>> 5; 253R3.H = R3.L >>> 5; 254R4.H = R4.L >>> 5; 255R5.H = R5.L >>> 5; 256R6.H = R6.L >>> 5; 257R7.H = R7.L >>> 5; 258CHECKREG r0, 0xFC008001; 259CHECKREG r1, 0xFC008001; 260CHECKREG r2, 0xFC008002; 261CHECKREG r3, 0xFC008003; 262CHECKREG r4, 0xFC008004; 263CHECKREG r5, 0xFFFFFFFF; 264CHECKREG r6, 0xFC008006; 265CHECKREG r7, 0xFC008007; 266 267 268imm32 r0, 0x00009b01; 269imm32 r1, 0x00009b01; 270imm32 r2, 0x00009b02; 271imm32 r3, 0x00009b03; 272imm32 r4, 0x00009b04; 273imm32 r5, 0x00009b05; 274R6.L = -15; 275imm32 r7, 0x00009007; 276R0.H = R0.L >>> 6; 277R1.H = R1.L >>> 6; 278R2.H = R2.L >>> 6; 279R3.H = R3.L >>> 6; 280R4.H = R4.L >>> 6; 281R5.H = R5.L >>> 6; 282R6.H = R6.L >>> 6; 283R7.H = R7.L >>> 6; 284CHECKREG r0, 0xFE6C9B01; 285CHECKREG r1, 0xFE6C9B01; 286CHECKREG r2, 0xFE6C9B02; 287CHECKREG r3, 0xFE6C9B03; 288CHECKREG r4, 0xFE6C9B04; 289CHECKREG r5, 0xFE6C9B05; 290CHECKREG r6, 0xFFFFFFF1; 291CHECKREG r7, 0xFE409007; 292 293imm32 r0, 0x0000a0c1; 294imm32 r1, 0x0000a0c1; 295imm32 r2, 0x0000a0c2; 296imm32 r3, 0x0000a0c3; 297imm32 r4, 0x0000a0c4; 298imm32 r5, 0x0000a0c5; 299imm32 r6, 0x0000a0c6; 300R7.L = -16; 301R0.H = R0.L >>> 7; 302R1.H = R1.L >>> 7; 303R2.H = R2.L >>> 7; 304R3.H = R3.L >>> 7; 305R4.H = R4.L >>> 7; 306R5.H = R5.L >>> 7; 307R6.H = R6.L >>> 7; 308R7.H = R7.L >>> 7; 309CHECKREG r0, 0xFF41A0C1; 310CHECKREG r1, 0xFF41A0C1; 311CHECKREG r2, 0xFF41A0C2; 312CHECKREG r3, 0xFF41A0C3; 313CHECKREG r4, 0xFF41A0C4; 314CHECKREG r5, 0xFF41A0C5; 315CHECKREG r6, 0xFF41A0C6; 316CHECKREG r7, 0xFFFFFFF0; 317 318imm32 r0, 0x80010d00; 319imm32 r1, 0x80010d00; 320imm32 r2, 0x80020d00; 321imm32 r3, 0x80030d00; 322R4.L = -1; 323imm32 r5, 0x80050d00; 324imm32 r6, 0x80060d00; 325imm32 r7, 0x80070d00; 326R0.H = R0.H >>> 14; 327R1.H = R1.H >>> 14; 328R2.H = R2.H >>> 14; 329R3.H = R3.H >>> 14; 330R4.H = R4.H >>> 14; 331R5.H = R5.H >>> 14; 332R6.H = R6.H >>> 14; 333R7.H = R7.H >>> 14; 334CHECKREG r0, 0xFFFE0D00; 335CHECKREG r1, 0xFFFE0D00; 336CHECKREG r2, 0xFFFE0D00; 337CHECKREG r3, 0xFFFE0D00; 338CHECKREG r4, 0xFFFFFFFF; 339CHECKREG r5, 0xFFFE0D00; 340CHECKREG r6, 0xFFFE0D00; 341CHECKREG r7, 0xFFFE0D00; 342 343imm32 r0, 0x8d010000; 344imm32 r1, 0x8d010000; 345imm32 r2, 0x8d020000; 346imm32 r3, 0x8d030000; 347imm32 r4, 0x8d040000; 348R5.L = -1; 349imm32 r6, 0x8d060000; 350imm32 r7, 0x8d070000; 351R0.H = R0.H >>> 15; 352R1.H = R1.H >>> 15; 353R2.H = R2.H >>> 15; 354R3.H = R3.H >>> 15; 355R4.H = R4.H >>> 15; 356R5.H = R5.H >>> 15; 357R6.H = R6.H >>> 15; 358R7.H = R7.H >>> 15; 359CHECKREG r0, 0xFFFF0000; 360CHECKREG r1, 0xFFFF0000; 361CHECKREG r2, 0xFFFF0000; 362CHECKREG r3, 0xFFFF0000; 363CHECKREG r4, 0xFFFF0000; 364CHECKREG r5, 0xFFFFFFFF; 365CHECKREG r6, 0xFFFF0000; 366CHECKREG r7, 0xFFFF0000; 367 368 369imm32 r0, 0xde010000; 370imm32 r1, 0xde010000; 371imm32 r2, 0xde020000; 372imm32 r3, 0xde030000; 373imm32 r4, 0xde040000; 374imm32 r5, 0xde050000; 375R6.L = -15; 376imm32 r7, 0xd0070000; 377R0.L = R0.H >>> 10; 378R1.L = R1.H >>> 10; 379R2.L = R2.H >>> 10; 380R3.L = R3.H >>> 10; 381R4.L = R4.H >>> 10; 382R5.L = R5.H >>> 10; 383R6.L = R6.H >>> 10; 384R7.L = R7.H >>> 10; 385CHECKREG r0, 0xDE01FFF7; 386CHECKREG r1, 0xDE01FFF7; 387CHECKREG r2, 0xDE02FFF7; 388CHECKREG r3, 0xDE03FFF7; 389CHECKREG r4, 0xDE04FFF7; 390CHECKREG r5, 0xDE05FFF7; 391CHECKREG r6, 0xFFFFFFFF; 392CHECKREG r7, 0xD007FFF4; 393 394imm32 r0, 0x9f010c00; 395imm32 r1, 0xaf010c00; 396imm32 r2, 0xbf020c00; 397imm32 r3, 0xcf030c00; 398imm32 r4, 0xdf040c00; 399imm32 r5, 0xef050c00; 400imm32 r6, 0xff060c00; 401R7.L = -16; 402R0.H = R0.H >>> 5; 403R1.H = R1.H >>> 5; 404R2.H = R2.H >>> 5; 405R3.H = R3.H >>> 5; 406R4.H = R4.H >>> 5; 407R5.H = R5.H >>> 5; 408R6.H = R6.H >>> 5; 409R7.H = R7.H >>> 5; 410CHECKREG r0, 0xFCF80C00; 411CHECKREG r1, 0xFD780C00; 412CHECKREG r2, 0xFDF80C00; 413CHECKREG r3, 0xFE780C00; 414CHECKREG r4, 0xFEF80C00; 415CHECKREG r5, 0xFF780C00; 416CHECKREG r6, 0xFFF80C00; 417CHECKREG r7, 0xFE80FFF0; 418pass 419