1 //Original:/testcases/core/c_dsp32shift_pack/c_dsp32shift_pack.dsp 2 // Spec Reference: dsp32shift pack 3 # mach: bfin 4 5 .include "testutils.inc" 6 start 7 8 9 10 imm32 r0, 0x01230000; 11 imm32 r1, 0x02345678; 12 imm32 r2, 0x03456789; 13 imm32 r3, 0x0456789a; 14 imm32 r4, 0x056789ab; 15 imm32 r5, 0x06789abc; 16 imm32 r6, 0x0789abcd; 17 imm32 r7, 0x089abcde; 18 R1 = PACK( R0.L , R0.L ); 19 R2 = PACK( R1.L , R0.H ); 20 R3 = PACK( R2.H , R0.L ); 21 R4 = PACK( R3.H , R0.H ); 22 R5 = PACK( R4.L , R0.L ); 23 R6 = PACK( R5.L , R0.H ); 24 R7 = PACK( R6.H , R0.L ); 25 R0 = PACK( R7.H , R0.H ); 26 CHECKREG r1, 0x00000000; 27 CHECKREG r0, 0x00000123; 28 CHECKREG r2, 0x00000123; 29 CHECKREG r3, 0x00000000; 30 CHECKREG r4, 0x00000123; 31 CHECKREG r5, 0x01230000; 32 CHECKREG r6, 0x00000123; 33 CHECKREG r7, 0x00000000; 34 35 imm32 r0, 0x11230001; 36 imm32 r1, 0x12345678; 37 imm32 r2, 0x1bcdef12; 38 imm32 r3, 0x1456789a; 39 imm32 r4, 0x1cdef012; 40 imm32 r5, 0x1456789a; 41 imm32 r6, 0x1789abcd; 42 imm32 r7, 0x189abcde; 43 R2 = PACK( R0.L , R1.L ); 44 R3 = PACK( R1.L , R1.H ); 45 R4 = PACK( R2.H , R1.L ); 46 R5 = PACK( R3.H , R1.H ); 47 R6 = PACK( R4.L , R1.L ); 48 R7 = PACK( R5.L , R1.H ); 49 R0 = PACK( R6.H , R1.L ); 50 R1 = PACK( R7.H , R1.H ); 51 CHECKREG r0, 0x56785678; 52 CHECKREG r1, 0x12341234; 53 CHECKREG r2, 0x00015678; 54 CHECKREG r3, 0x56781234; 55 CHECKREG r4, 0x00015678; 56 CHECKREG r5, 0x56781234; 57 CHECKREG r6, 0x56785678; 58 CHECKREG r7, 0x12341234; 59 60 imm32 r0, 0x20230002; 61 imm32 r1, 0x21345678; 62 imm32 r2, 0x22456789; 63 imm32 r3, 0x2356789a; 64 imm32 r4, 0x246789ab; 65 imm32 r5, 0x25789abc; 66 imm32 r6, 0x2689abcd; 67 imm32 r7, 0x279abcde; 68 R3 = PACK( R0.L , R2.L ); 69 R4 = PACK( R1.L , R2.H ); 70 R5 = PACK( R2.H , R2.L ); 71 R6 = PACK( R3.H , R2.H ); 72 R7 = PACK( R4.L , R2.L ); 73 R0 = PACK( R5.L , R2.H ); 74 R1 = PACK( R6.H , R2.L ); 75 R2 = PACK( R7.H , R2.H ); 76 CHECKREG r0, 0x67892245; 77 CHECKREG r1, 0x00026789; 78 CHECKREG r2, 0x22452245; 79 CHECKREG r3, 0x00026789; 80 CHECKREG r4, 0x56782245; 81 CHECKREG r5, 0x22456789; 82 CHECKREG r6, 0x00022245; 83 CHECKREG r7, 0x22456789; 84 85 imm32 r0, 0x31230003; 86 imm32 r1, 0x31345678; 87 imm32 r2, 0x31456789; 88 imm32 r3, 0x3156789a; 89 imm32 r4, 0x316789ab; 90 imm32 r5, 0x31789abc; 91 imm32 r6, 0x3189abcd; 92 imm32 r7, 0x311abcde; 93 R4 = PACK( R0.L , R3.L ); 94 R5 = PACK( R1.L , R3.H ); 95 R6 = PACK( R2.H , R3.L ); 96 R7 = PACK( R3.H , R3.H ); 97 R0 = PACK( R4.L , R3.L ); 98 R1 = PACK( R5.L , R3.H ); 99 R2 = PACK( R6.H , R3.L ); 100 R3 = PACK( R7.H , R3.H ); 101 CHECKREG r0, 0x789A789A; 102 CHECKREG r1, 0x31563156; 103 CHECKREG r2, 0x3145789A; 104 CHECKREG r3, 0x31563156; 105 CHECKREG r4, 0x0003789A; 106 CHECKREG r5, 0x56783156; 107 CHECKREG r6, 0x3145789A; 108 CHECKREG r7, 0x31563156; 109 110 imm32 r0, 0x41230004; 111 imm32 r1, 0x42345678; 112 imm32 r2, 0x43456789; 113 imm32 r3, 0x4456789a; 114 imm32 r4, 0x456789ab; 115 imm32 r5, 0x46789abc; 116 imm32 r6, 0x4789abcd; 117 imm32 r7, 0x489abcde; 118 R0 = PACK( R0.L , R4.L ); 119 R1 = PACK( R1.L , R4.H ); 120 R2 = PACK( R2.H , R4.L ); 121 R3 = PACK( R3.H , R4.H ); 122 R4 = PACK( R4.L , R4.L ); 123 R5 = PACK( R5.L , R4.H ); 124 R6 = PACK( R6.H , R4.L ); 125 R7 = PACK( R7.H , R4.H ); 126 CHECKREG r0, 0x000489AB; 127 CHECKREG r1, 0x56784567; 128 CHECKREG r2, 0x434589AB; 129 CHECKREG r3, 0x44564567; 130 CHECKREG r4, 0x89AB89AB; 131 CHECKREG r5, 0x9ABC89AB; 132 CHECKREG r6, 0x478989AB; 133 CHECKREG r7, 0x489A89AB; 134 135 imm32 r0, 0x51230005; 136 imm32 r1, 0x52345678; 137 imm32 r2, 0x53456789; 138 imm32 r3, 0x5456789a; 139 imm32 r4, 0x556789ab; 140 imm32 r5, 0x56789abc; 141 imm32 r6, 0x5789abcd; 142 imm32 r7, 0x589abcde; 143 R6 = PACK( R0.L , R5.L ); 144 R7 = PACK( R1.L , R5.H ); 145 R0 = PACK( R2.H , R5.L ); 146 R1 = PACK( R3.H , R5.H ); 147 R2 = PACK( R4.L , R5.L ); 148 R3 = PACK( R5.L , R5.H ); 149 R4 = PACK( R6.H , R5.L ); 150 R5 = PACK( R7.H , R5.H ); 151 CHECKREG r0, 0x53459ABC; 152 CHECKREG r1, 0x54565678; 153 CHECKREG r2, 0x89AB9ABC; 154 CHECKREG r3, 0x9ABC5678; 155 CHECKREG r4, 0x00059ABC; 156 CHECKREG r5, 0x56785678; 157 CHECKREG r6, 0x00059ABC; 158 CHECKREG r7, 0x56785678; 159 160 imm32 r0, 0x61230006; 161 imm32 r1, 0x62345678; 162 imm32 r2, 0x63456789; 163 imm32 r3, 0x6456789a; 164 imm32 r4, 0x656789ab; 165 imm32 r5, 0x66789abc; 166 imm32 r6, 0x6789abcd; 167 imm32 r7, 0x689abcde; 168 R7 = PACK( R0.L , R6.L ); 169 R0 = PACK( R1.L , R6.H ); 170 R1 = PACK( R2.H , R6.L ); 171 R2 = PACK( R3.H , R6.H ); 172 R3 = PACK( R4.L , R6.L ); 173 R4 = PACK( R5.L , R6.H ); 174 R5 = PACK( R6.H , R6.L ); 175 R6 = PACK( R7.H , R6.H ); 176 CHECKREG r0, 0x56786789; 177 CHECKREG r1, 0x6345ABCD; 178 CHECKREG r2, 0x64566789; 179 CHECKREG r3, 0x89ABABCD; 180 CHECKREG r4, 0x9ABC6789; 181 CHECKREG r5, 0x6789ABCD; 182 CHECKREG r6, 0x00066789; 183 CHECKREG r7, 0x0006ABCD; 184 185 imm32 r0, 0x71230007; 186 imm32 r1, 0x72345678; 187 imm32 r2, 0x73456789; 188 imm32 r3, 0x7456789a; 189 imm32 r4, 0x756789ab; 190 imm32 r5, 0x76789abc; 191 imm32 r6, 0x7789abcd; 192 imm32 r7, 0x789abcde; 193 R0 = PACK( R0.L , R7.L ); 194 R1 = PACK( R1.L , R7.H ); 195 R2 = PACK( R2.H , R7.L ); 196 R3 = PACK( R3.H , R7.H ); 197 R4 = PACK( R4.L , R7.L ); 198 R5 = PACK( R5.L , R7.H ); 199 R6 = PACK( R6.H , R7.L ); 200 R7 = PACK( R7.H , R7.H ); 201 CHECKREG r0, 0x0007BCDE; 202 CHECKREG r1, 0x5678789A; 203 CHECKREG r2, 0x7345BCDE; 204 CHECKREG r3, 0x7456789A; 205 CHECKREG r4, 0x89ABBCDE; 206 CHECKREG r5, 0x9ABC789A; 207 CHECKREG r6, 0x7789BCDE; 208 CHECKREG r7, 0x789A789A; 209 210 imm32 r0, 0x81230008; 211 imm32 r1, 0x82345678; 212 imm32 r2, 0x83456789; 213 imm32 r3, 0x8456789a; 214 imm32 r4, 0x856789ab; 215 imm32 r5, 0x86789abc; 216 imm32 r6, 0x8789abcd; 217 imm32 r7, 0x889abcde; 218 R0 = PACK( R0.L , R0.L ); 219 R1 = PACK( R1.L , R0.H ); 220 R2 = PACK( R2.H , R0.L ); 221 R3 = PACK( R3.H , R0.H ); 222 R4 = PACK( R4.L , R0.L ); 223 R5 = PACK( R5.L , R0.H ); 224 R6 = PACK( R6.H , R0.L ); 225 R7 = PACK( R7.H , R0.H ); 226 CHECKREG r0, 0x00080008; 227 CHECKREG r1, 0x56780008; 228 CHECKREG r2, 0x83450008; 229 CHECKREG r3, 0x84560008; 230 CHECKREG r4, 0x89AB0008; 231 CHECKREG r5, 0x9ABC0008; 232 CHECKREG r6, 0x87890008; 233 CHECKREG r7, 0x889A0008; 234 235 imm32 r0, 0x91230009; 236 imm32 r1, 0x92345678; 237 imm32 r2, 0x93456789; 238 imm32 r3, 0x9456789a; 239 imm32 r4, 0x956789ab; 240 imm32 r5, 0x96789abc; 241 imm32 r6, 0x9789abcd; 242 imm32 r7, 0x989abcde; 243 R0 = PACK( R0.L , R1.L ); 244 R1 = PACK( R1.L , R1.H ); 245 R2 = PACK( R2.H , R1.L ); 246 R3 = PACK( R3.H , R1.H ); 247 R4 = PACK( R4.L , R1.L ); 248 R5 = PACK( R5.L , R1.H ); 249 R6 = PACK( R6.H , R1.L ); 250 R7 = PACK( R7.H , R1.H ); 251 CHECKREG r0, 0x00095678; 252 CHECKREG r1, 0x56789234; 253 CHECKREG r2, 0x93459234; 254 CHECKREG r3, 0x94565678; 255 CHECKREG r4, 0x89AB9234; 256 CHECKREG r5, 0x9ABC5678; 257 CHECKREG r6, 0x97899234; 258 CHECKREG r7, 0x989A5678; 259 260 261 imm32 r0, 0xa123000a; 262 imm32 r1, 0xa2345678; 263 imm32 r2, 0xa3456789; 264 imm32 r3, 0xa456789a; 265 imm32 r4, 0xa56789ab; 266 imm32 r5, 0xa6789abc; 267 imm32 r6, 0xa789abcd; 268 imm32 r7, 0xa89abcde; 269 R0 = PACK( R0.L , R2.L ); 270 R1 = PACK( R1.L , R2.H ); 271 R2 = PACK( R2.H , R2.L ); 272 R3 = PACK( R3.H , R2.H ); 273 R4 = PACK( R4.L , R2.L ); 274 R5 = PACK( R5.L , R2.H ); 275 R6 = PACK( R6.H , R2.L ); 276 R7 = PACK( R7.H , R2.H ); 277 CHECKREG r0, 0x000A6789; 278 CHECKREG r1, 0x5678A345; 279 CHECKREG r2, 0xA3456789; 280 CHECKREG r3, 0xA456A345; 281 CHECKREG r4, 0x89AB6789; 282 CHECKREG r5, 0x9ABCA345; 283 CHECKREG r6, 0xA7896789; 284 CHECKREG r7, 0xA89AA345; 285 286 imm32 r0, 0xb123000b; 287 imm32 r1, 0xb2345678; 288 imm32 r2, 0xb3456789; 289 imm32 r3, 0xb456789a; 290 imm32 r4, 0xb56789ab; 291 imm32 r5, 0xb6789abc; 292 imm32 r6, 0xb789abcd; 293 imm32 r7, 0xb89abcde; 294 R0 = PACK( R0.L , R3.L ); 295 R1 = PACK( R1.L , R3.H ); 296 R2 = PACK( R2.H , R3.L ); 297 R3 = PACK( R3.H , R3.H ); 298 R4 = PACK( R4.L , R3.L ); 299 R5 = PACK( R5.L , R3.H ); 300 R6 = PACK( R6.H , R3.L ); 301 R7 = PACK( R7.H , R3.H ); 302 CHECKREG r0, 0x000B789A; 303 CHECKREG r1, 0x5678B456; 304 CHECKREG r2, 0xB345789A; 305 CHECKREG r3, 0xB456B456; 306 CHECKREG r4, 0x89ABB456; 307 CHECKREG r5, 0x9ABCB456; 308 CHECKREG r6, 0xB789B456; 309 CHECKREG r7, 0xB89AB456; 310 311 imm32 r0, 0xc123000c; 312 imm32 r1, 0xc2345678; 313 imm32 r2, 0xc3456789; 314 imm32 r3, 0xc456789a; 315 imm32 r4, 0xc56789ab; 316 imm32 r5, 0xc6789abc; 317 imm32 r6, 0xc789abcd; 318 imm32 r7, 0xc89abcde; 319 R0 = PACK( R0.L , R4.L ); 320 R1 = PACK( R1.L , R4.H ); 321 R2 = PACK( R2.H , R4.L ); 322 R3 = PACK( R3.H , R4.H ); 323 R4 = PACK( R4.L , R4.L ); 324 R5 = PACK( R5.L , R4.H ); 325 R6 = PACK( R6.H , R4.L ); 326 R7 = PACK( R7.H , R4.H ); 327 CHECKREG r0, 0x000C89AB; 328 CHECKREG r1, 0x5678C567; 329 CHECKREG r2, 0xC34589AB; 330 CHECKREG r3, 0xC456C567; 331 CHECKREG r4, 0x89AB89AB; 332 CHECKREG r5, 0x9ABC89AB; 333 CHECKREG r6, 0xC78989AB; 334 CHECKREG r7, 0xC89A89AB; 335 336 imm32 r0, 0xd123000d; 337 imm32 r1, 0xd2345678; 338 imm32 r2, 0xd3456789; 339 imm32 r3, 0xd456789a; 340 imm32 r4, 0xd56789ab; 341 imm32 r5, 0xd6789abc; 342 imm32 r6, 0xd789abcd; 343 imm32 r7, 0xd89abcde; 344 R0 = PACK( R0.L , R5.L ); 345 R1 = PACK( R1.L , R5.H ); 346 R2 = PACK( R2.H , R5.L ); 347 R3 = PACK( R3.H , R5.H ); 348 R4 = PACK( R4.L , R5.L ); 349 R5 = PACK( R5.L , R5.H ); 350 R6 = PACK( R6.H , R5.L ); 351 R7 = PACK( R7.H , R5.H ); 352 CHECKREG r0, 0x000D9ABC; 353 CHECKREG r1, 0x5678D678; 354 CHECKREG r2, 0xD3459ABC; 355 CHECKREG r3, 0xD456D678; 356 CHECKREG r4, 0x89AB9ABC; 357 CHECKREG r5, 0x9ABCD678; 358 CHECKREG r6, 0xD789D678; 359 CHECKREG r7, 0xD89A9ABC; 360 361 362 imm32 r0, 0xe123000e; 363 imm32 r1, 0xe2345678; 364 imm32 r2, 0xe3456789; 365 imm32 r3, 0xe456789a; 366 imm32 r4, 0xe56789ab; 367 imm32 r5, 0xe6789abc; 368 imm32 r6, 0xe789abcd; 369 imm32 r7, 0xe89abcde; 370 R0 = PACK( R0.L , R6.L ); 371 R1 = PACK( R1.L , R6.H ); 372 R2 = PACK( R2.H , R6.L ); 373 R3 = PACK( R3.H , R6.H ); 374 R4 = PACK( R4.L , R6.L ); 375 R5 = PACK( R5.L , R6.H ); 376 R6 = PACK( R6.H , R6.L ); 377 R7 = PACK( R7.H , R6.H ); 378 CHECKREG r0, 0x000EABCD; 379 CHECKREG r1, 0x5678E789; 380 CHECKREG r2, 0xE345ABCD; 381 CHECKREG r3, 0xE456E789; 382 CHECKREG r4, 0x89ABABCD; 383 CHECKREG r5, 0x9ABCE789; 384 CHECKREG r6, 0xE789ABCD; 385 CHECKREG r7, 0xE89AE789; 386 387 imm32 r0, 0xf123000f; 388 imm32 r1, 0xf2345678; 389 imm32 r2, 0xf3456789; 390 imm32 r3, 0xf456789a; 391 imm32 r4, 0xf56789ab; 392 imm32 r5, 0xf6789abc; 393 imm32 r6, 0xf789abcd; 394 imm32 r7, 0xf89abcde; 395 R0 = PACK( R0.L , R7.L ); 396 R1 = PACK( R1.L , R7.H ); 397 R2 = PACK( R2.H , R7.L ); 398 R3 = PACK( R3.H , R7.H ); 399 R4 = PACK( R4.L , R7.L ); 400 R5 = PACK( R5.L , R7.H ); 401 R6 = PACK( R6.H , R7.L ); 402 R7 = PACK( R7.H , R7.H ); 403 CHECKREG r0, 0x000FBCDE; 404 CHECKREG r1, 0x5678F89A; 405 CHECKREG r2, 0xF345BCDE; 406 CHECKREG r3, 0xF456F89A; 407 CHECKREG r4, 0x89ABBCDE; 408 CHECKREG r5, 0x9ABCF89A; 409 CHECKREG r6, 0xF789BCDE; 410 CHECKREG r7, 0xF89AF89A; 411 pass 412