Home | History | Annotate | Line # | Download | only in bfin
      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