//Original:/proj/frio/dv/testcases/core/c_dsp32mac_pair_a0_u/c_dsp32mac_pair_a0_u.dsp
// Spec Reference: dsp32mac pair a0 U
# mach: bfin

.include "testutils.inc"
	start

	A1 = A0 = 0;

// The result accumulated in A       , and stored to a reg half
	imm32 r0, 0x63545abd;
	imm32 r1, 0x86bcfec7;
	imm32 r2, 0xa8645679;
	imm32 r3, 0x00860007;
	imm32 r4, 0xefb86569;
	imm32 r5, 0x1235860b;
	imm32 r6, 0x000c086d;
	imm32 r7, 0x678e0086;
	A1 += R1.L * R0.L, R6 = ( A0 -= R1.L * R0.L ) (FU);
	P1 = A0.w;
	A1 -= R2.L * R3.L, R0 = ( A0 = R2.H * R3.L ) (FU);
	P2 = A0.w;
	A1 = R7.L * R4.L, R2 = ( A0 += R7.H * R4.H ) (FU);
	P3 = A0.w;
	A1 += R6.L * R5.L, R4 = ( A0 += R6.L * R5.H ) (FU);
	P4 = A0.w;
	CHECKREG r0, 0x00049ABC;
	CHECKREG r1, 0x86BCFEC7;
	CHECKREG r2, 0x60FC9ACC;
	CHECKREG r3, 0x00860007;
	CHECKREG r4, 0x60FC9ACC;
	CHECKREG r5, 0x1235860B;
	CHECKREG r6, 0x00000000;
	CHECKREG r7, 0x678E0086;
	CHECKREG p1, 0x00000000;
	CHECKREG p2, 0x00049ABC;
	CHECKREG p3, 0x60FC9ACC;
	CHECKREG p4, 0x60FC9ACC;

	imm32 r0, 0x98764abd;
	imm32 r1, 0xa1bcf4c7;
	imm32 r2, 0xa1145649;
	imm32 r3, 0x00010005;
	imm32 r4, 0xefbc1569;
	imm32 r5, 0x1235010b;
	imm32 r6, 0x000c001d;
	imm32 r7, 0x678e0001;
	A1 += R1.L * R0.H, R4 = ( A0 = R1.L * R0.L ) (FU);
	P1 = A0.w;
	A1 -= R2.L * R3.H, R0 = ( A0 = R2.H * R3.L ) (FU);
	P2 = A0.w;
	A1 = R4.L * R5.H, R2 = ( A0 += R4.H * R5.H ) (FU);
	P3 = A0.w;
	A1 += R6.L * R7.H, R0 = ( A0 += R6.L * R7.H ) (FU);
	P4 = A0.w;
	CHECKREG r0, 0x0523F7E8;
	CHECKREG r1, 0xA1BCF4C7;
	CHECKREG r2, 0x05183CD2;
	CHECKREG r3, 0x00010005;
	CHECKREG r4, 0x47763CEB;
	CHECKREG r5, 0x1235010B;
	CHECKREG r6, 0x000C001D;
	CHECKREG r7, 0x678E0001;
	CHECKREG p1, 0x47763CEB;
	CHECKREG p2, 0x00032564;
	CHECKREG p3, 0x05183CD2;
	CHECKREG p4, 0x0523F7E8;

	imm32 r0, 0x7136459d;
	imm32 r1, 0xabd69ec7;
	imm32 r2, 0x71145679;
	imm32 r3, 0x08010007;
	imm32 r4, 0xef9c1569;
	imm32 r5, 0x1225010b;
	imm32 r6, 0x0003401d;
	imm32 r7, 0x678e0561;
	A1 += R1.H * R0.L, R4 = ( A0 = R1.L * R0.L ) (FU);
	P1 = A0.w;
	A1 -= R2.H * R3.L, R6 = ( A0 -= R2.H * R3.L ) (FU);
	P2 = A0.w;
	A1 = R4.H * R5.L, R0 = ( A0 += R4.H * R5.H ) (FU);
	P3 = A0.w;
	A1 += R6.H * R7.L, R4 = ( A0 += R6.L * R7.H ) (FU);
	P4 = A0.w;
	CHECKREG r0, 0x2E395300;
	CHECKREG r1, 0xABD69EC7;
	CHECKREG r2, 0x71145679;
	CHECKREG r3, 0x08010007;
	CHECKREG r4, 0x8D7C0C72;
	CHECKREG r5, 0x1225010B;
	CHECKREG r6, 0x2B29EB7F;
	CHECKREG r7, 0x678E0561;
	CHECKREG p1, 0x2B2D030B;
	CHECKREG p2, 0x2B29EB7F;
	CHECKREG p3, 0x2E395300;
	CHECKREG p4, 0x8D7C0C72;

	imm32 r0, 0x123489bd;
	imm32 r1, 0x91bcfec7;
	imm32 r2, 0xa9145679;
	imm32 r3, 0xd0910007;
	imm32 r4, 0xedb91569;
	imm32 r5, 0xd235910b;
	imm32 r6, 0x0d0c0999;
	imm32 r7, 0x67de0009;
	A1 += R5.H * R3.H, R0 = ( A0 = R5.L * R3.L ) (FU);
	P1 = A0.w;
	A1 = R2.H * R1.H, R2 = ( A0 = R2.H * R1.L ) (FU);
	P2 = A0.w;
	A1 -= R7.H * R0.H, R4 = ( A0 += R7.H * R0.H ) (FU);
	P3 = A0.w;
	A1 -= R4.H * R6.H, R6 = ( A0 -= R4.L * R6.H ) (FU);
	P4 = A0.w;
	CHECKREG r0, 0x0003F74D;
	CHECKREG r1, 0x91BCFEC7;
	CHECKREG r2, 0xA845468C;
	CHECKREG r3, 0xD0910007;
	CHECKREG r4, 0xA8467E26;
	CHECKREG r5, 0xD235910B;
	CHECKREG r6, 0xA1D8A65E;
	CHECKREG r7, 0x67DE0009;
	CHECKREG p1, 0x0003F74D;
	CHECKREG p2, 0xA845468C;
	CHECKREG p3, 0xA8467E26;
	CHECKREG p4, 0xA1D8A65E;

	imm32 r0, 0x63545abd;
	imm32 r1, 0x86bcfec7;
	imm32 r2, 0xa8645679;
	imm32 r3, 0x00860007;
	imm32 r4, 0xefb86569;
	imm32 r5, 0x1235860b;
	imm32 r6, 0x000c086d;
	imm32 r7, 0x678e0086;
	A1 += R1.L * R0.L (M), R6 = ( A0 = R1.L * R0.L ) (FU);
	P5 = A1.w;
	P1 = A0.w;
	A1 = R2.L * R3.L (M), R0 = ( A0 -= R2.H * R3.L ) (FU);
	P2 = A0.w;
	A1 = R7.L * R4.L (M), R2 = ( A0 += R7.H * R4.H ) (FU);
	P3 = A0.w;
	A1 -= R6.L * R5.L (M), R4 = ( A0 += R6.L * R5.H ) (FU);
	P4 = A0.w;
	CHECKREG r0, 0x5A49742F;
	CHECKREG r1, 0x86BCFEC7;
	CHECKREG r2, 0xBB41743F;
	CHECKREG r3, 0x00860007;
	CHECKREG r4, 0xBC5110E6;
	CHECKREG r5, 0x1235860B;
	CHECKREG r6, 0x5A4E0EEB;
	CHECKREG r7, 0x678E0086;
	CHECKREG p1, 0x5A4E0EEB;
	CHECKREG p2, 0x5A49742F;
	CHECKREG p3, 0xBB41743F;
	CHECKREG p4, 0xBC5110E6;
	CHECKREG p5, 0x573CE4B9;

	imm32 r0, 0x98764abd;
	imm32 r1, 0xa1bcf4c7;
	imm32 r2, 0xa1145649;
	imm32 r3, 0x00010005;
	imm32 r4, 0xefbc1569;
	imm32 r5, 0x1235010b;
	imm32 r6, 0x000c001d;
	imm32 r7, 0x678e0001;
	R4 = ( A0 -= R1.L * R0.L ) (FU);
	P1 = A0.w;
	R0 = ( A0 = R2.H * R3.L ) (FU);
	P2 = A0.w;
	R2 = ( A0 += R4.H * R5.H ) (FU);
	P3 = A0.w;
	R0 = ( A0 -= R6.L * R7.H ) (FU);
	P4 = A0.w;
	CHECKREG r0, 0x0846EF70;
	CHECKREG r1, 0xA1BCF4C7;
	CHECKREG r2, 0x0852AA86;
	CHECKREG r3, 0x00010005;
	CHECKREG r4, 0x74DAD3FB;
	CHECKREG r5, 0x1235010B;
	CHECKREG r6, 0x000C001D;
	CHECKREG r7, 0x678E0001;
	CHECKREG p1, 0x74DAD3FB;
	CHECKREG p2, 0x00032564;
	CHECKREG p3, 0x0852AA86;
	CHECKREG p4, 0x0846EF70;

	imm32 r0, 0x7136459d;
	imm32 r1, 0xabd69ec7;
	imm32 r2, 0x71145679;
	imm32 r3, 0x08010007;
	imm32 r4, 0xef9c1569;
	imm32 r5, 0x1225010b;
	imm32 r6, 0x0003401d;
	imm32 r7, 0x678e0561;
	A1 += R1.H * R0.L (M), R4 = ( A0 = R1.L * R0.L ) (FU);
	P1 = A0.w;
	R6 = ( A0 = R2.H * R3.L ) (FU);
	P2 = A0.w;
	A1 = R4.H * R5.L (M), R0 = ( A0 += R4.H * R5.H ) (FU);
	P3 = A0.w;
	R4 = ( A0 += R6.L * R7.H ) (FU);
	P4 = A0.w;
	CHECKREG r0, 0x03127F0D;
	CHECKREG r1, 0xABD69EC7;
	CHECKREG r2, 0x71145679;
	CHECKREG r3, 0x08010007;
	CHECKREG r4, 0x0C98E2B5;
	CHECKREG r5, 0x1225010B;
	CHECKREG r6, 0x0003178C;
	CHECKREG r7, 0x678E0561;
	CHECKREG p1, 0x2B2D030B;
	CHECKREG p2, 0x0003178C;
	CHECKREG p3, 0x03127F0D;
	CHECKREG p4, 0x0C98E2B5;

	imm32 r0, 0x123489bd;
	imm32 r1, 0x91bcfec7;
	imm32 r2, 0xa9145679;
	imm32 r3, 0xd0910007;
	imm32 r4, 0xedb91569;
	imm32 r5, 0xd235910b;
	imm32 r6, 0x0d0c0999;
	imm32 r7, 0x67de0009;
	R0 = ( A0 = R5.L * R3.L ) (FU);
	P1 = A0.w;
	A1 -= R2.H * R1.H (M), R2 = ( A0 = R2.H * R1.L ) (FU);
	P2 = A0.w;
	A1 = R7.H * R0.H (M), R4 = ( A0 -= R7.H * R0.H ) (FU);
	P3 = A0.w;
	R6 = ( A0 += R4.L * R6.H ) (FU);
	P4 = A0.w;
	CHECKREG r0, 0x0003F74D;
	CHECKREG r1, 0x91BCFEC7;
	CHECKREG r2, 0xA845468C;
	CHECKREG r3, 0xD0910007;
	CHECKREG r4, 0xA8440EF2;
	CHECKREG r5, 0xD235910B;
	CHECKREG r6, 0xA9070C4A;
	CHECKREG r7, 0x67DE0009;
	CHECKREG p1, 0x0003F74D;
	CHECKREG p2, 0xA845468C;
	CHECKREG p3, 0xA8440EF2;
	CHECKREG p4, 0xA9070C4A;

	pass
