//Original:/testcases/core/c_dsp32mac_dr_a1_iu/c_dsp32mac_dr_a1_iu.dsp // Spec Reference: dsp32mac dr_a1 iu (unsigned integer) # mach: bfin .include "testutils.inc" start A1 = A0 = 0; // The result accumulated in A1 , and stored to a reg half imm32 r0, 0x93545abd; imm32 r1, 0x7890afc7; imm32 r2, 0x52248679; imm32 r3, 0xd5069007; imm32 r4, 0xef5c4569; imm32 r5, 0xcd35500b; imm32 r6, 0xe00c500d; imm32 r7, 0xf78e950f; R0.H = ( A1 = R1.L * R0.L ), A0 += R1.L * R0.L (IU); R1 = A1.w; R2.H = ( A1 += R2.L * R3.H ), A0 = R2.H * R3.L (IU); R3 = A1.w; R4.H = ( A1 += R4.H * R5.L ), A0 += R4.H * R5.H (IU); R5 = A1.w; R6.H = ( A1 -= R6.H * R7.H ), A0 -= R6.L * R7.H (IU); R7 = A1.w; CHECKREG r0, 0xFFFF5ABD; CHECKREG r1, 0x3E4DBBEB; CHECKREG r2, 0xFFFF8679; CHECKREG r3, 0xAE338FC1; CHECKREG r4, 0xFFFF4569; CHECKREG r5, 0xF90A98B5; CHECKREG r6, 0xFFFF500D; CHECKREG r7, 0x2062BE0D; // The result accumulated in A1, and stored to a reg half (MNOP) imm32 r0, 0xd3548abd; imm32 r1, 0x9dbcfec7; imm32 r2, 0xa9d45679; imm32 r3, 0xb09d9007; imm32 r4, 0xcfb9d569; imm32 r5, 0xd2359d0b; imm32 r6, 0xe00ca90d; imm32 r7, 0x678e709f; R0.H = ( A1 += R1.L * R0.L ) (IU); R1 = A1.w; R2.H = ( A1 -= R2.L * R3.H ) (IU); R3 = A1.w; R4.H = ( A1 = R4.H * R5.L ) (IU); R5 = A1.w; R6.H = ( A1 -= R6.H * R7.H ) (IU); R7 = A1.w; CHECKREG r0, 0xFFFF8ABD; CHECKREG r1, 0xAA761CF8; CHECKREG r2, 0xFFFF5679; CHECKREG r3, 0x6ECDE4C3; CHECKREG r4, 0xFFFFD569; CHECKREG r5, 0x7F6D61F3; CHECKREG r6, 0xFFFFA90D; CHECKREG r7, 0x24CC474B; // The result accumulated in A1 , and stored to a reg half (MNOP) imm32 r0, 0xa354babd; imm32 r1, 0x9abcdec7; imm32 r2, 0x77a4e679; imm32 r3, 0x805a7007; imm32 r4, 0x9fb3a569; imm32 r5, 0xa2352a0b; imm32 r6, 0xb00c10ad; imm32 r7, 0x9876a10a; R0.H = A1 , A0 -= R1.L * R0.L (IU); R1 = A1.w; R2.H = A1 , A0 += R2.H * R3.L (IU); R3 = A1.w; R4.H = A1 , A0 = R4.H * R5.H (IU); R5 = A1.w; R6.H = A1 , A0 -= R6.L * R7.H (IU); R7 = A1.w; CHECKREG r0, 0xFFFFBABD; CHECKREG r1, 0x24CC474B; CHECKREG r2, 0xFFFFE679; CHECKREG r3, 0x24CC474B; CHECKREG r4, 0xFFFFA569; CHECKREG r5, 0x24CC474B; CHECKREG r6, 0xFFFF10AD; CHECKREG r7, 0x24CC474B; // The result accumulated in A1 , and stored to a reg half imm32 r0, 0x33545abd; imm32 r1, 0x9dbcfec7; imm32 r2, 0x81245679; imm32 r3, 0x97060007; imm32 r4, 0xaf6c4569; imm32 r5, 0xd235900b; imm32 r6, 0xc00c400d; imm32 r7, 0x678ed30f; R0.H = ( A1 = R1.L * R0.L ) (M), A0 = R1.L * R0.L (IU); R1 = A1.w; R2.H = ( A1 -= R2.L * R3.H ) (M), A0 = R2.H * R3.L (IU); R3 = A1.w; R4.H = ( A1 = R4.H * R5.L ) (M), A0 -= R4.H * R5.H (IU); R5 = A1.w; R6.H = ( A1 += R6.H * R7.H ) (M), A0 -= R6.L * R7.H (IU); R7 = A1.w; CHECKREG r0, 0x80005ABD; CHECKREG r1, 0xFF910EEB; CHECKREG r2, 0x80005679; CHECKREG r3, 0xCC8DA915; CHECKREG r4, 0x80004569; CHECKREG r5, 0xD2A949A4; CHECKREG r6, 0x8000400D; CHECKREG r7, 0xB8CAA44C; // The result accumulated in A1 MM=0, and stored to a reg half (MNOP) imm32 r0, 0xe2005ABD; imm32 r1, 0x0e300000; imm32 r2, 0x56e49679; imm32 r3, 0x30Ae5000; imm32 r4, 0xa000e669; imm32 r5, 0x01000e70; imm32 r6, 0xdf4560eD; imm32 r7, 0x1234567e; R0.H = ( A1 -= R1.L * R0.L ) (M,IU); R1 = A1.w; R2.H = ( A1 += R2.L * R3.H ) (M,IU); R3 = A1.w; R4.H = ( A1 -= R4.H * R5.L ) (M,IU); R5 = A1.w; R6.H = ( A1 -= R6.H * R7.H ) (M,IU); R7 = A1.w; CHECKREG r0, 0x80005ABD; CHECKREG r1, 0xB8CAA44C; CHECKREG r2, 0x80009679; CHECKREG r3, 0xA4B99A8A; CHECKREG r4, 0x8000E669; CHECKREG r5, 0xAA239A8A; CHECKREG r6, 0x800060ED; CHECKREG r7, 0xAC776686; pass