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