//Original:/proj/frio/dv/testcases/core/c_dsp32mac_pair_a0_i/c_dsp32mac_pair_a0_i.dsp
// Spec Reference: dsp32mac pair a0 I
# 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 ) (IS);
	P1 = A0.w;
	A1 = R2.L * R3.L, R0 = ( A0 = R2.H * R3.L ) (IS);
	P5 = A1.w;
	P2 = A0.w;
	A1 = R7.L * R4.L, R2 = ( A0 += R7.H * R4.H ) (IS);
	P3 = A0.w;
	A1 += R6.L * R5.L, R4 = ( A0 += R6.L * R5.H ) (IS);
	P4 = A0.w;
	CHECKREG r0, 0xFFFD9ABC;
	CHECKREG r1, 0x86BCFEC7;
	CHECKREG r2, 0xF9679ACC;
	CHECKREG r3, 0x00860007;
	CHECKREG r4, 0xF857FE25;
	CHECKREG r5, 0x1235860B;
	CHECKREG r6, 0x006EF115;
	CHECKREG r7, 0x678E0086;
	CHECKREG p1, 0x006EF115;
	CHECKREG p2, 0xFFFD9ABC;
	CHECKREG p3, 0xF9679ACC;
	CHECKREG p4, 0xF857FE25;
	CHECKREG p5, 0x00025D4F;

	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 ) (IS);
	P1 = A0.w;
	A1 -= R2.L * R3.H, R0 = ( A0 -= R2.H * R3.L ) (IS);
	P2 = A0.w;
	A1 -= R4.L * R5.H, R2 = ( A0 += R4.H * R5.H ) (IS);
	P3 = A0.w;
	A1 += R6.L * R7.H, R0 = ( A0 += R6.L * R7.H ) (IS);
	P4 = A0.w;
	CHECKREG r0, 0xFC8B26EA;
	CHECKREG r1, 0xA1BCF4C7;
	CHECKREG r2, 0xFC7F6BD4;
	CHECKREG r3, 0x00010005;
	CHECKREG r4, 0xFCB93CEB;
	CHECKREG r5, 0x1235010B;
	CHECKREG r6, 0x000C001D;
	CHECKREG r7, 0x678E0001;
	CHECKREG p1, 0xFCB93CEB;
	CHECKREG p2, 0xFCBB1787;
	CHECKREG p3, 0xFC7F6BD4;
	CHECKREG p4, 0xFC8B26EA;

	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 ) (IS);
	P1 = A0.w;
	A1 -= R2.H * R3.L, R6 = ( A0 = R2.H * R3.L ) (IS);
	P2 = A0.w;
	A1 = R4.H * R5.L, R0 = ( A0 += R4.H * R5.H ) (IS);
	P3 = A0.w;
	A1 -= R6.H * R7.L, R4 = ( A0 += R6.L * R7.H ) (IS);
	P4 = A0.w;
	CHECKREG r0, 0x01A40FD3;
	CHECKREG r1, 0xABD69EC7;
	CHECKREG r2, 0x71145679;
	CHECKREG r3, 0x08010007;
	CHECKREG r4, 0x0B2A737B;
	CHECKREG r5, 0x1225010B;
	CHECKREG r6, 0x0003178C;
	CHECKREG r7, 0x678E0561;
	CHECKREG p1, 0x16FB23DF;
	CHECKREG p2, 0x0003178C;
	CHECKREG p3, 0x01A40FD3;
	CHECKREG p4, 0x0B2A737B;

	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 ) (IS);
	P1 = A0.w;
	A1 = R2.H * R1.H, R2 = ( A0 -= R2.H * R1.L ) (IS);
	P2 = A0.w;
	A1 = R7.H * R0.H, R4 = ( A0 += R7.H * R0.H ) (IS);
	P3 = A0.w;
	A1 += R4.H * R6.H, R6 = ( A0 += R4.L * R6.H ) (IS);
	P4 = A0.w;
	CHECKREG r0, 0xFFFCF74D;
	CHECKREG r1, 0x91BCFEC7;
	CHECKREG r2, 0xFF92B0C1;
	CHECKREG r3, 0xD0910007;
	CHECKREG r4, 0xFF911149;
	CHECKREG r5, 0xD235910B;
	CHECKREG r6, 0x007295B5;
	CHECKREG r7, 0x67DE0009;
	CHECKREG p1, 0xFFFCF74D;
	CHECKREG p2, 0xFF92B0C1;
	CHECKREG p3, 0xFF911149;
	CHECKREG p4, 0x007295B5;

	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 ) (IS);
	P5 = A1.w;
	P1 = A0.w;
	A1 -= R2.L * R3.L (M), R0 = ( A0 = R2.H * R3.L ) (IS);
	P2 = A0.w;
	A1 = R7.L * R4.L (M), R2 = ( A0 += R7.H * R4.H ) (IS);
	P3 = A0.w;
	A1 += R6.L * R5.L (M), R4 = ( A0 += R6.L * R5.H ) (IS);
	P4 = A0.w;
	CHECKREG r0, 0xFFFD9ABC;
	CHECKREG r1, 0x86BCFEC7;
	CHECKREG r2, 0xF9679ACC;
	CHECKREG r3, 0x00860007;
	CHECKREG r4, 0xFA773773;
	CHECKREG r5, 0x1235860B;
	CHECKREG r6, 0xFF910EEB;
	CHECKREG r7, 0x678E0086;
	CHECKREG p1, 0xFF910EEB;
	CHECKREG p2, 0xFFFD9ABC;
	CHECKREG p3, 0xF9679ACC;
	CHECKREG p4, 0xFA773773;
	CHECKREG p5, 0xFF89C73F;

	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 ) (IS);
	P1 = A0.w;
	R0 = ( A0 = R2.H * R3.L ) (IS);
	P2 = A0.w;
	R2 = ( A0 += R4.H * R5.H ) (IS);
	P3 = A0.w;
	R0 = ( A0 += R6.L * R7.H ) (IS);
	P4 = A0.w;
	CHECKREG r0, 0xFFE0B29B;
	CHECKREG r1, 0xA1BCF4C7;
	CHECKREG r2, 0xFFD4F785;
	CHECKREG r3, 0x00010005;
	CHECKREG r4, 0xFDBDFA88;
	CHECKREG r5, 0x1235010B;
	CHECKREG r6, 0x000C001D;
	CHECKREG r7, 0x678E0001;
	CHECKREG p1, 0xFDBDFA88;
	CHECKREG p2, 0xFFFE2564;
	CHECKREG p3, 0xFFD4F785;
	CHECKREG p4, 0xFFE0B29B;

	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 ) (IS);
	P1 = A0.w;
	R6 = ( A0 -= R2.H * R3.L ) (IS);
	P2 = A0.w;
	A1 = R4.H * R5.L (M), R0 = ( A0 += R4.H * R5.H ) (IS);
	P3 = A0.w;
	R4 = ( A0 += R6.L * R7.H ) (IS);
	P4 = A0.w;
	CHECKREG r0, 0xE3AD394F;
	CHECKREG r1, 0xABD69EC7;
	CHECKREG r2, 0x71145679;
	CHECKREG r3, 0x08010007;
	CHECKREG r4, 0xDB61F2C1;
	CHECKREG r5, 0x1225010B;
	CHECKREG r6, 0xE58CEB7F;
	CHECKREG r7, 0x678E0561;
	CHECKREG p1, 0xE590030B;
	CHECKREG p2, 0xE58CEB7F;
	CHECKREG p3, 0xE3AD394F;
	CHECKREG p4, 0xDB61F2C1;

	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 ) (IS);
	P1 = A0.w;
	A1 -= R2.H * R1.H (M), R2 = ( A0 = R2.H * R1.L ) (IS);
	P2 = A0.w;
	A1 = R7.H * R0.H (M), R4 = ( A0 += R7.H * R0.H ) (IS);
	P3 = A0.w;
	R6 = ( A0 += R4.L * R6.H ) (IS);
	P4 = A0.w;
	CHECKREG r0, 0xFFFCF74D;
	CHECKREG r1, 0x91BCFEC7;
	CHECKREG r2, 0x006A468C;
	CHECKREG r3, 0xD0910007;
	CHECKREG r4, 0x0068A714;
	CHECKREG r5, 0xD235910B;
	CHECKREG r6, 0xFBE08004;
	CHECKREG r7, 0x67DE0009;
	CHECKREG p1, 0xFFFCF74D;
	CHECKREG p2, 0x006A468C;
	CHECKREG p3, 0x0068A714;
	CHECKREG p4, 0xFBE08004;

	pass
