1//Original:/proj/frio/dv/testcases/core/c_dsp32mac_pair_a1a0_u/c_dsp32mac_pair_a1a0_u.dsp 2// Spec Reference: dsp32mac pair a1a0 U 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 R7 = ( A1 += R1.L * R0.L ), R6 = ( A0 = R1.L * R0.L ) (FU); 20 P1 = A1.w; 21 P2 = A0.w; 22 R1 = ( A1 = R2.L * R3.L ), R0 = ( A0 = R2.H * R3.L ) (FU); 23 P3 = A1.w; 24 P4 = A0.w; 25 R3 = ( A1 -= R7.L * R4.L ), R2 = ( A0 += R7.H * R4.H ) (FU); 26 P5 = A1.w; 27 SP = A0.w; 28 R5 = ( A1 += R6.L * R5.L ), R4 = ( A0 += R6.L * R5.H ) (FU); 29 FP = A1.w; 30 CHECKREG r0, 0x00049ABC; 31 CHECKREG r1, 0x00025D4F; 32 CHECKREG r2, 0x549454CC; 33 CHECKREG r3, 0x00000000; 34 CHECKREG r4, 0x55A3F173; 35 CHECKREG r5, 0x07CFA619; 36 CHECKREG r6, 0x5A4E0EEB; 37 CHECKREG r7, 0x5A4E0EEB; 38 CHECKREG p1, 0x5A4E0EEB; 39 CHECKREG p2, 0x5A4E0EEB; 40 CHECKREG p3, 0x00025D4F; 41 CHECKREG p4, 0x00049ABC; 42 CHECKREG p5, 0x00000000; 43 CHECKREG sp, 0x549454CC; 44 CHECKREG fp, 0x07CFA619; 45 46 imm32 r0, 0x98764abd; 47 imm32 r1, 0xa1bcf4c7; 48 imm32 r2, 0xa1145649; 49 imm32 r3, 0x00010005; 50 imm32 r4, 0xefbc1569; 51 imm32 r5, 0x1235010b; 52 imm32 r6, 0x000c001d; 53 imm32 r7, 0x678e0001; 54 R5 = ( A1 += R1.L * R0.H ), R4 = ( A0 -= R1.L * R0.L ) (FU); 55 P1 = A1.w; 56 P2 = A0.w; 57 R1 = ( A1 -= R2.L * R3.H ), R0 = ( A0 = R2.H * R3.L ) (FU); 58 P2 = A0.w; 59 P3 = A1.w; 60 P4 = A0.w; 61 R3 = ( A1 = R4.L * R5.H ), R2 = ( A0 += R4.H * R5.H ) (FU); 62 P5 = A1.w; 63 SP = A0.w; 64 R1 = ( A1 += R6.L * R7.H ), R0 = ( A0 += R6.L * R7.H ) (FU); 65 FP = A0.w; 66 CHECKREG r0, 0x089013D8; 67 CHECKREG r1, 0x6C5ACAC6; 68 CHECKREG r2, 0x088458C2; 69 CHECKREG r3, 0x6C4F0FB0; 70 CHECKREG r4, 0x0E2DB488; 71 CHECKREG r5, 0x9996A1D3; 72 CHECKREG r6, 0x000C001D; 73 CHECKREG r7, 0x678E0001; 74 CHECKREG p1, 0x9996A1D3; 75 CHECKREG p2, 0x00032564; 76 CHECKREG p3, 0x99964B8A; 77 CHECKREG p4, 0x00032564; 78 CHECKREG p5, 0x6C4F0FB0; 79 CHECKREG sp, 0x088458C2; 80 CHECKREG fp, 0x089013D8; 81 82 imm32 r0, 0x7136459d; 83 imm32 r1, 0xabd69ec7; 84 imm32 r2, 0x71145679; 85 imm32 r3, 0x08010007; 86 imm32 r4, 0xef9c1569; 87 imm32 r5, 0x1225010b; 88 imm32 r6, 0x0003401d; 89 imm32 r7, 0x678e0561; 90 R5 = ( A1 += R1.H * R0.L ), R4 = ( A0 = R1.L * R0.L ) (FU); 91 P1 = A1.w; 92 P2 = A0.w; 93 R7 = ( A1 -= R2.H * R3.L ), R6 = ( A0 = R2.H * R3.L ) (FU); 94 P3 = A1.w; 95 P4 = A0.w; 96 R1 = ( A1 = R4.H * R5.L ), R0 = ( A0 += R4.H * R5.H ) (FU); 97 P5 = A1.w; 98 SP = A0.w; 99 R5 = ( A1 += R6.H * R7.L ), R4 = ( A0 -= R6.L * R7.H ) (FU); 100 FP = A0.w; 101 CHECKREG r0, 0x1A2AB610; 102 CHECKREG r1, 0x24F02BB4; 103 CHECKREG r2, 0x71145679; 104 CHECKREG r3, 0x08010007; 105 CHECKREG r4, 0x0BE761C4; 106 CHECKREG r5, 0x24F2761C; 107 CHECKREG r6, 0x0003178C; 108 CHECKREG r7, 0x9B11C378; 109 CHECKREG p1, 0x9B14DB04; 110 CHECKREG p2, 0x2B2D030B; 111 CHECKREG p3, 0x9B11C378; 112 CHECKREG p5, 0x24F02BB4; 113 CHECKREG p4, 0x0003178C; 114 CHECKREG sp, 0x1A2AB610; 115 CHECKREG fp, 0x0BE761C4; 116 117 imm32 r0, 0x123489bd; 118 imm32 r1, 0x91bcfec7; 119 imm32 r2, 0xa9145679; 120 imm32 r3, 0xd0910007; 121 imm32 r4, 0xedb91569; 122 imm32 r5, 0xd235910b; 123 imm32 r6, 0x0d0c0999; 124 imm32 r7, 0x67de0009; 125 R1 = ( A1 += R5.H * R3.H ), R0 = ( A0 = R5.L * R3.L ) (FU); 126 P1 = A1.w; 127 P2 = A0.w; 128 R3 = ( A1 -= R2.H * R1.H ), R2 = ( A0 = R2.H * R1.L ) (FU); 129 P3 = A1.w; 130 P4 = A0.w; 131 R5 = ( A1 -= R7.H * R0.H ), R4 = ( A0 += R7.H * R0.H ) (FU); 132 P5 = A1.w; 133 SP = A0.w; 134 R7 = ( A1 += R4.H * R6.H ), R6 = ( A0 += R4.L * R6.H ) (FU); 135 FP = A0.w; 136 CHECKREG r0, 0x0003F74D; 137 CHECKREG r1, 0xD0349621; 138 CHECKREG r2, 0x63278394; 139 CHECKREG r3, 0x46B1FE11; 140 CHECKREG r4, 0x6328BB2E; 141 CHECKREG r5, 0x46B0C677; 142 CHECKREG r6, 0x6CB2D756; 143 CHECKREG r7, 0x4BBE7457; 144 CHECKREG p1, 0xD0349621; 145 CHECKREG p2, 0x0003F74D; 146 CHECKREG p3, 0x46B1FE11; 147 CHECKREG p4, 0x63278394; 148 CHECKREG p5, 0x46B0C677; 149 CHECKREG sp, 0x6328BB2E; 150 CHECKREG fp, 0x6CB2D756; 151 152 imm32 r0, 0x63545abd; 153 imm32 r1, 0x86bcfec7; 154 imm32 r2, 0xa8645679; 155 imm32 r3, 0x00860007; 156 imm32 r4, 0xefb86569; 157 imm32 r5, 0x1235860b; 158 imm32 r6, 0x000c086d; 159 imm32 r7, 0x678e0086; 160 R7 = ( A1 += R1.L * R0.L ) (M), R6 = ( A0 = R1.L * R0.L ) (FU); 161 P1 = A1.w; 162 P2 = A0.w; 163 R1 = ( A1 = R2.L * R3.L ) (M), R0 = ( A0 = R2.H * R3.L ) (FU); 164 P3 = A1.w; 165 P4 = A0.w; 166 R3 = ( A1 -= R7.L * R4.L ) (M), R2 = ( A0 += R7.H * R4.H ) (FU); 167 P5 = A1.w; 168 SP = A0.w; 169 R5 = ( A1 -= R6.L * R5.L ) (M), R4 = ( A0 -= R6.L * R5.H ) (FU); 170 FP = A0.w; 171 CHECKREG r0, 0x00049ABC; 172 CHECKREG r1, 0x00025D4F; 173 CHECKREG r2, 0x46897C84; 174 CHECKREG r3, 0x316C7D3D; 175 CHECKREG r4, 0x4579DFDD; 176 CHECKREG r5, 0x299CD724; 177 CHECKREG r6, 0x5A4E0EEB; 178 CHECKREG r7, 0x4B4F8342; 179 CHECKREG p1, 0x4B4F8342; 180 CHECKREG p2, 0x5A4E0EEB; 181 CHECKREG p3, 0x00025D4F; 182 CHECKREG p4, 0x00049ABC; 183 CHECKREG p5, 0x316C7D3D; 184 CHECKREG sp, 0x46897C84; 185 CHECKREG fp, 0x4579DFDD; 186 187 imm32 r0, 0x98764abd; 188 imm32 r1, 0xa1bcf4c7; 189 imm32 r2, 0xa1145649; 190 imm32 r3, 0x00010005; 191 imm32 r4, 0xefbc1569; 192 imm32 r5, 0x1235010b; 193 imm32 r6, 0x000c001d; 194 imm32 r7, 0x678e0001; 195 R5 = A1, R4 = ( A0 = R1.L * R0.L ) (FU); 196 P1 = A1.w; 197 P2 = A0.w; 198 R1 = A1, R0 = ( A0 -= R2.H * R3.L ) (FU); 199 P3 = A1.w; 200 P4 = A0.w; 201 R3 = A1, R2 = ( A0 += R4.H * R5.H ) (FU); 202 P5 = A1.w; 203 SP = A0.w; 204 R1 = A1, R0 = ( A0 -= R6.L * R7.H ) (FU); 205 FP = A1.w; 206 CHECKREG r0, 0x5304CE59; 207 CHECKREG r1, 0x299CD724; 208 CHECKREG r2, 0x5310896F; 209 CHECKREG r3, 0x299CD724; 210 CHECKREG r4, 0x47763CEB; 211 CHECKREG r5, 0x299CD724; 212 CHECKREG r6, 0x000C001D; 213 CHECKREG r7, 0x678E0001; 214 CHECKREG p1, 0x299CD724; 215 CHECKREG p2, 0x47763CEB; 216 CHECKREG p3, 0x299CD724; 217 CHECKREG p4, 0x47731787; 218 CHECKREG p5, 0x299CD724; 219 CHECKREG sp, 0x5310896F; 220 CHECKREG fp, 0x299CD724; 221 222 imm32 r0, 0x7136459d; 223 imm32 r1, 0xabd69ec7; 224 imm32 r2, 0x71145679; 225 imm32 r3, 0x08010007; 226 imm32 r4, 0xef9c1569; 227 imm32 r5, 0x1225010b; 228 imm32 r6, 0x0003401d; 229 imm32 r7, 0x678e0561; 230 R5 = ( A1 += R1.H * R0.L ) (M), R4 = ( A0 = R1.L * R0.L ) (FU); 231 P1 = A1.w; 232 P2 = A0.w; 233 R7 = A1, R6 = ( A0 = R2.H * R3.L ) (FU); 234 P3 = A1.w; 235 P4 = A0.w; 236 R1 = ( A1 = R4.H * R5.L ) (M), R0 = ( A0 -= R4.H * R5.H ) (FU); 237 P5 = A1.w; 238 SP = A0.w; 239 R5 = A1, R4 = ( A0 += R6.L * R7.H ) (FU); 240 FP = A1.w; 241 CHECKREG r0, 0x00000000; 242 CHECKREG r1, 0x2706223A; 243 CHECKREG r2, 0x71145679; 244 CHECKREG r3, 0x08010007; 245 CHECKREG r4, 0x01B8DC2C; 246 CHECKREG r5, 0x2706223A; 247 CHECKREG r6, 0x0003178C; 248 CHECKREG r7, 0x12B9E762; 249 CHECKREG p1, 0x12B9E762; 250 CHECKREG p2, 0x2B2D030B; 251 CHECKREG p3, 0x12B9E762; 252 CHECKREG p4, 0x0003178C; 253 CHECKREG p5, 0x2706223A; 254 CHECKREG sp, 0x00000000; 255 CHECKREG fp, 0x2706223A; 256 257 imm32 r0, 0x123489bd; 258 imm32 r1, 0x91bcfec7; 259 imm32 r2, 0xa9145679; 260 imm32 r3, 0xd0910007; 261 imm32 r4, 0xedb91569; 262 imm32 r5, 0xd235910b; 263 imm32 r6, 0x0d0c0999; 264 imm32 r7, 0x67de0009; 265 R1 = A1, R0 = ( A0 -= R5.L * R3.L ) (FU); 266 P1 = A1.w; 267 P2 = A0.w; 268 R3 = ( A1 = R2.H * R1.H ) (M), R2 = ( A0 = R2.H * R1.L ) (FU); 269 P3 = A1.w; 270 P4 = A0.w; 271 R5 = ( A1 = R7.H * R0.H ) (M), R4 = ( A0 += R7.H * R0.H ) (FU); 272 P5 = A0.w; 273 SP = A1.w; 274 R7 = A1, R6 = ( A0 += R4.L * R6.H ) (FU); 275 FP = A0.w; 276 CHECKREG r0, 0x01B4E4DF; 277 CHECKREG r1, 0x2706223A; 278 CHECKREG r2, 0x169AF688; 279 CHECKREG r3, 0xF2C00278; 280 CHECKREG r4, 0x174BDCA0; 281 CHECKREG r5, 0x00B0E618; 282 CHECKREG r6, 0x228A5420; 283 CHECKREG r7, 0x00B0E618; 284 CHECKREG p1, 0x2706223A; 285 CHECKREG p2, 0x01B4E4DF; 286 CHECKREG p3, 0xF2C00278; 287 CHECKREG p4, 0x169AF688; 288 CHECKREG p5, 0x174BDCA0; 289 CHECKREG sp, 0x00B0E618; 290 CHECKREG fp, 0x228A5420; 291 292 pass 293