Home | History | Annotate | Line # | Download | only in bfin
      1 //Original:/proj/frio/dv/testcases/core/c_dsp32mac_pair_a0_i/c_dsp32mac_pair_a0_i.dsp
      2 // Spec Reference: dsp32mac pair a0 I
      3 # mach: bfin
      4 
      5 .include "testutils.inc"
      6 	start
      7 
      8 	A1 = A0 = 0;
      9 
     10 // The result accumulated in A       , and stored to a reg half
     11 	imm32 r0, 0x63545abd;
     12 	imm32 r1, 0x86bcfec7;
     13 	imm32 r2, 0xa8645679;
     14 	imm32 r3, 0x00860007;
     15 	imm32 r4, 0xefb86569;
     16 	imm32 r5, 0x1235860b;
     17 	imm32 r6, 0x000c086d;
     18 	imm32 r7, 0x678e0086;
     19 	A1 += R1.L * R0.L, R6 = ( A0 -= R1.L * R0.L ) (IS);
     20 	P1 = A0.w;
     21 	A1 = R2.L * R3.L, R0 = ( A0 = R2.H * R3.L ) (IS);
     22 	P5 = A1.w;
     23 	P2 = A0.w;
     24 	A1 = R7.L * R4.L, R2 = ( A0 += R7.H * R4.H ) (IS);
     25 	P3 = A0.w;
     26 	A1 += R6.L * R5.L, R4 = ( A0 += R6.L * R5.H ) (IS);
     27 	P4 = A0.w;
     28 	CHECKREG r0, 0xFFFD9ABC;
     29 	CHECKREG r1, 0x86BCFEC7;
     30 	CHECKREG r2, 0xF9679ACC;
     31 	CHECKREG r3, 0x00860007;
     32 	CHECKREG r4, 0xF857FE25;
     33 	CHECKREG r5, 0x1235860B;
     34 	CHECKREG r6, 0x006EF115;
     35 	CHECKREG r7, 0x678E0086;
     36 	CHECKREG p1, 0x006EF115;
     37 	CHECKREG p2, 0xFFFD9ABC;
     38 	CHECKREG p3, 0xF9679ACC;
     39 	CHECKREG p4, 0xF857FE25;
     40 	CHECKREG p5, 0x00025D4F;
     41 
     42 	imm32 r0, 0x98764abd;
     43 	imm32 r1, 0xa1bcf4c7;
     44 	imm32 r2, 0xa1145649;
     45 	imm32 r3, 0x00010005;
     46 	imm32 r4, 0xefbc1569;
     47 	imm32 r5, 0x1235010b;
     48 	imm32 r6, 0x000c001d;
     49 	imm32 r7, 0x678e0001;
     50 	A1 += R1.L * R0.H, R4 = ( A0 = R1.L * R0.L ) (IS);
     51 	P1 = A0.w;
     52 	A1 -= R2.L * R3.H, R0 = ( A0 -= R2.H * R3.L ) (IS);
     53 	P2 = A0.w;
     54 	A1 -= R4.L * R5.H, R2 = ( A0 += R4.H * R5.H ) (IS);
     55 	P3 = A0.w;
     56 	A1 += R6.L * R7.H, R0 = ( A0 += R6.L * R7.H ) (IS);
     57 	P4 = A0.w;
     58 	CHECKREG r0, 0xFC8B26EA;
     59 	CHECKREG r1, 0xA1BCF4C7;
     60 	CHECKREG r2, 0xFC7F6BD4;
     61 	CHECKREG r3, 0x00010005;
     62 	CHECKREG r4, 0xFCB93CEB;
     63 	CHECKREG r5, 0x1235010B;
     64 	CHECKREG r6, 0x000C001D;
     65 	CHECKREG r7, 0x678E0001;
     66 	CHECKREG p1, 0xFCB93CEB;
     67 	CHECKREG p2, 0xFCBB1787;
     68 	CHECKREG p3, 0xFC7F6BD4;
     69 	CHECKREG p4, 0xFC8B26EA;
     70 
     71 	imm32 r0, 0x7136459d;
     72 	imm32 r1, 0xabd69ec7;
     73 	imm32 r2, 0x71145679;
     74 	imm32 r3, 0x08010007;
     75 	imm32 r4, 0xef9c1569;
     76 	imm32 r5, 0x1225010b;
     77 	imm32 r6, 0x0003401d;
     78 	imm32 r7, 0x678e0561;
     79 	A1 += R1.H * R0.L, R4 = ( A0 -= R1.L * R0.L ) (IS);
     80 	P1 = A0.w;
     81 	A1 -= R2.H * R3.L, R6 = ( A0 = R2.H * R3.L ) (IS);
     82 	P2 = A0.w;
     83 	A1 = R4.H * R5.L, R0 = ( A0 += R4.H * R5.H ) (IS);
     84 	P3 = A0.w;
     85 	A1 -= R6.H * R7.L, R4 = ( A0 += R6.L * R7.H ) (IS);
     86 	P4 = A0.w;
     87 	CHECKREG r0, 0x01A40FD3;
     88 	CHECKREG r1, 0xABD69EC7;
     89 	CHECKREG r2, 0x71145679;
     90 	CHECKREG r3, 0x08010007;
     91 	CHECKREG r4, 0x0B2A737B;
     92 	CHECKREG r5, 0x1225010B;
     93 	CHECKREG r6, 0x0003178C;
     94 	CHECKREG r7, 0x678E0561;
     95 	CHECKREG p1, 0x16FB23DF;
     96 	CHECKREG p2, 0x0003178C;
     97 	CHECKREG p3, 0x01A40FD3;
     98 	CHECKREG p4, 0x0B2A737B;
     99 
    100 	imm32 r0, 0x123489bd;
    101 	imm32 r1, 0x91bcfec7;
    102 	imm32 r2, 0xa9145679;
    103 	imm32 r3, 0xd0910007;
    104 	imm32 r4, 0xedb91569;
    105 	imm32 r5, 0xd235910b;
    106 	imm32 r6, 0x0d0c0999;
    107 	imm32 r7, 0x67de0009;
    108 	A1 += R5.H * R3.H, R0 = ( A0 = R5.L * R3.L ) (IS);
    109 	P1 = A0.w;
    110 	A1 = R2.H * R1.H, R2 = ( A0 -= R2.H * R1.L ) (IS);
    111 	P2 = A0.w;
    112 	A1 = R7.H * R0.H, R4 = ( A0 += R7.H * R0.H ) (IS);
    113 	P3 = A0.w;
    114 	A1 += R4.H * R6.H, R6 = ( A0 += R4.L * R6.H ) (IS);
    115 	P4 = A0.w;
    116 	CHECKREG r0, 0xFFFCF74D;
    117 	CHECKREG r1, 0x91BCFEC7;
    118 	CHECKREG r2, 0xFF92B0C1;
    119 	CHECKREG r3, 0xD0910007;
    120 	CHECKREG r4, 0xFF911149;
    121 	CHECKREG r5, 0xD235910B;
    122 	CHECKREG r6, 0x007295B5;
    123 	CHECKREG r7, 0x67DE0009;
    124 	CHECKREG p1, 0xFFFCF74D;
    125 	CHECKREG p2, 0xFF92B0C1;
    126 	CHECKREG p3, 0xFF911149;
    127 	CHECKREG p4, 0x007295B5;
    128 
    129 	imm32 r0, 0x63545abd;
    130 	imm32 r1, 0x86bcfec7;
    131 	imm32 r2, 0xa8645679;
    132 	imm32 r3, 0x00860007;
    133 	imm32 r4, 0xefb86569;
    134 	imm32 r5, 0x1235860b;
    135 	imm32 r6, 0x000c086d;
    136 	imm32 r7, 0x678e0086;
    137 	A1 += R1.L * R0.L (M), R6 = ( A0 = R1.L * R0.L ) (IS);
    138 	P5 = A1.w;
    139 	P1 = A0.w;
    140 	A1 -= R2.L * R3.L (M), R0 = ( A0 = R2.H * R3.L ) (IS);
    141 	P2 = A0.w;
    142 	A1 = R7.L * R4.L (M), R2 = ( A0 += R7.H * R4.H ) (IS);
    143 	P3 = A0.w;
    144 	A1 += R6.L * R5.L (M), R4 = ( A0 += R6.L * R5.H ) (IS);
    145 	P4 = A0.w;
    146 	CHECKREG r0, 0xFFFD9ABC;
    147 	CHECKREG r1, 0x86BCFEC7;
    148 	CHECKREG r2, 0xF9679ACC;
    149 	CHECKREG r3, 0x00860007;
    150 	CHECKREG r4, 0xFA773773;
    151 	CHECKREG r5, 0x1235860B;
    152 	CHECKREG r6, 0xFF910EEB;
    153 	CHECKREG r7, 0x678E0086;
    154 	CHECKREG p1, 0xFF910EEB;
    155 	CHECKREG p2, 0xFFFD9ABC;
    156 	CHECKREG p3, 0xF9679ACC;
    157 	CHECKREG p4, 0xFA773773;
    158 	CHECKREG p5, 0xFF89C73F;
    159 
    160 	imm32 r0, 0x98764abd;
    161 	imm32 r1, 0xa1bcf4c7;
    162 	imm32 r2, 0xa1145649;
    163 	imm32 r3, 0x00010005;
    164 	imm32 r4, 0xefbc1569;
    165 	imm32 r5, 0x1235010b;
    166 	imm32 r6, 0x000c001d;
    167 	imm32 r7, 0x678e0001;
    168 	R4 = ( A0 -= R1.L * R0.L ) (IS);
    169 	P1 = A0.w;
    170 	R0 = ( A0 = R2.H * R3.L ) (IS);
    171 	P2 = A0.w;
    172 	R2 = ( A0 += R4.H * R5.H ) (IS);
    173 	P3 = A0.w;
    174 	R0 = ( A0 += R6.L * R7.H ) (IS);
    175 	P4 = A0.w;
    176 	CHECKREG r0, 0xFFE0B29B;
    177 	CHECKREG r1, 0xA1BCF4C7;
    178 	CHECKREG r2, 0xFFD4F785;
    179 	CHECKREG r3, 0x00010005;
    180 	CHECKREG r4, 0xFDBDFA88;
    181 	CHECKREG r5, 0x1235010B;
    182 	CHECKREG r6, 0x000C001D;
    183 	CHECKREG r7, 0x678E0001;
    184 	CHECKREG p1, 0xFDBDFA88;
    185 	CHECKREG p2, 0xFFFE2564;
    186 	CHECKREG p3, 0xFFD4F785;
    187 	CHECKREG p4, 0xFFE0B29B;
    188 
    189 	imm32 r0, 0x7136459d;
    190 	imm32 r1, 0xabd69ec7;
    191 	imm32 r2, 0x71145679;
    192 	imm32 r3, 0x08010007;
    193 	imm32 r4, 0xef9c1569;
    194 	imm32 r5, 0x1225010b;
    195 	imm32 r6, 0x0003401d;
    196 	imm32 r7, 0x678e0561;
    197 	A1 += R1.H * R0.L (M), R4 = ( A0 = R1.L * R0.L ) (IS);
    198 	P1 = A0.w;
    199 	R6 = ( A0 -= R2.H * R3.L ) (IS);
    200 	P2 = A0.w;
    201 	A1 = R4.H * R5.L (M), R0 = ( A0 += R4.H * R5.H ) (IS);
    202 	P3 = A0.w;
    203 	R4 = ( A0 += R6.L * R7.H ) (IS);
    204 	P4 = A0.w;
    205 	CHECKREG r0, 0xE3AD394F;
    206 	CHECKREG r1, 0xABD69EC7;
    207 	CHECKREG r2, 0x71145679;
    208 	CHECKREG r3, 0x08010007;
    209 	CHECKREG r4, 0xDB61F2C1;
    210 	CHECKREG r5, 0x1225010B;
    211 	CHECKREG r6, 0xE58CEB7F;
    212 	CHECKREG r7, 0x678E0561;
    213 	CHECKREG p1, 0xE590030B;
    214 	CHECKREG p2, 0xE58CEB7F;
    215 	CHECKREG p3, 0xE3AD394F;
    216 	CHECKREG p4, 0xDB61F2C1;
    217 
    218 	imm32 r0, 0x123489bd;
    219 	imm32 r1, 0x91bcfec7;
    220 	imm32 r2, 0xa9145679;
    221 	imm32 r3, 0xd0910007;
    222 	imm32 r4, 0xedb91569;
    223 	imm32 r5, 0xd235910b;
    224 	imm32 r6, 0x0d0c0999;
    225 	imm32 r7, 0x67de0009;
    226 	R0 = ( A0 = R5.L * R3.L ) (IS);
    227 	P1 = A0.w;
    228 	A1 -= R2.H * R1.H (M), R2 = ( A0 = R2.H * R1.L ) (IS);
    229 	P2 = A0.w;
    230 	A1 = R7.H * R0.H (M), R4 = ( A0 += R7.H * R0.H ) (IS);
    231 	P3 = A0.w;
    232 	R6 = ( A0 += R4.L * R6.H ) (IS);
    233 	P4 = A0.w;
    234 	CHECKREG r0, 0xFFFCF74D;
    235 	CHECKREG r1, 0x91BCFEC7;
    236 	CHECKREG r2, 0x006A468C;
    237 	CHECKREG r3, 0xD0910007;
    238 	CHECKREG r4, 0x0068A714;
    239 	CHECKREG r5, 0xD235910B;
    240 	CHECKREG r6, 0xFBE08004;
    241 	CHECKREG r7, 0x67DE0009;
    242 	CHECKREG p1, 0xFFFCF74D;
    243 	CHECKREG p2, 0x006A468C;
    244 	CHECKREG p3, 0x0068A714;
    245 	CHECKREG p4, 0xFBE08004;
    246 
    247 	pass
    248