//Original:/testcases/core/c_dsp32mac_a1a0/c_dsp32mac_a1a0.dsp // Spec Reference: dsp32mac a1 a0 # mach: bfin .include "testutils.inc" start INIT_R_REGS 0; imm32 r0, 0x00000000; A0 = 0; A1 = 0; ASTAT = r0; // test the default (signed fraction : left ) imm32 r0, 0x12345678; imm32 r1, 0x33456789; imm32 r2, 0x5556789a; imm32 r3, 0x75678912; imm32 r4, 0x86789123; imm32 r5, 0xa7891234; imm32 r6, 0xc1234567; imm32 r7, 0xf1234567; A1 = R0.L * R1.L, A0 = R0.L * R1.L; R0 = A0.w; R1 = A1.w; A1 = R2.L * R3.L, A0 += R2.L * R3.H; R2 = A0.w; R3 = A1.w; A1 += R4.L * R5.L, A0 = R4.H * R5.L; R4 = A0.w; R5 = A1.w; A1 += R6.L * R7.L, A0 += R6.H * R7.H; R6 = A0.w; R7 = A1.w; CHECKREG r0, 0x45F11C70; CHECKREG r1, 0x45F11C70; CHECKREG r2, 0xB48EEC5C; CHECKREG r3, 0x8FF1C9A8; CHECKREG r4, 0xEEB780C0; CHECKREG r5, 0x802DABE0; CHECKREG r6, 0xF6043652; CHECKREG r7, 0xA5CF0AC2; imm32 r0, 0x12245618; imm32 r1, 0x23256719; imm32 r2, 0x3426781a; imm32 r3, 0x45278912; imm32 r4, 0x56289113; imm32 r5, 0x67291214; imm32 r6, 0xa1234517; imm32 r7, 0xc1234517; A1 = R0.L * R1.H, A0 += R0.L * R1.L; R0 = A0.w; R1 = A1.w; A1 = R2.L * R3.H, A0 += R2.L * R3.H; R2 = A0.w; R3 = A1.w; A1 = R4.L * R5.H, A0 += R4.H * R5.L; R4 = A0.w; R5 = A1.w; A1 = R6.L * R7.H, A0 += R6.H * R7.H; R6 = A0.w; R7 = A1.w; CHECKREG r0, 0x3B5C5702; CHECKREG r1, 0x17A372F0; CHECKREG r2, 0x7C3EF2EE; CHECKREG r3, 0x40E29BEC; CHECKREG r4, 0x886A092E; CHECKREG r5, 0xA699C216; CHECKREG r6, 0xB700DEC0; CHECKREG r7, 0xDE11924A; imm32 r0, 0x15245648; imm32 r1, 0x25256749; imm32 r2, 0x3526784a; imm32 r3, 0x45278942; imm32 r4, 0x55389143; imm32 r5, 0x65391244; imm32 r6, 0xa5334547; imm32 r7, 0xc5334547; A1 += R0.H * R1.H, A0 = R0.L * R1.L; R0 = A0.w; R1 = A1.w; A1 += R2.H * R3.H, A0 = R2.L * R3.H; R2 = A0.w; R3 = A1.w; A1 += R4.H * R5.H, A0 = R4.H * R5.L; R4 = A0.w; R5 = A1.w; A1 += R6.H * R7.H, A0 = R6.H * R7.H; R6 = A0.w; R7 = A1.w; CHECKREG r0, 0x459F2510; CHECKREG r1, 0xE43416B2; CHECKREG r2, 0x40FC8A8C; CHECKREG r3, 0x00EAC446; CHECKREG r4, 0x0C2925C0; CHECKREG r5, 0x444EE736; CHECKREG r6, 0x29B65052; CHECKREG r7, 0x6E053788; imm32 r0, 0x13245628; imm32 r1, 0x23256729; imm32 r2, 0x3326782a; imm32 r3, 0x43278922; imm32 r4, 0x56389123; imm32 r5, 0x67391224; imm32 r6, 0xa1334527; imm32 r7, 0xc1334527; A1 += R0.H * R1.L, A0 += R0.L * R1.L; R0 = A0.w; R1 = A1.w; A1 = R2.H * R3.L, A0 += R2.L * R3.H; R2 = A0.w; R3 = A1.w; A1 = R4.H * R5.L, A0 += R4.H * R5.L; R4 = A0.w; R5 = A1.w; A1 = R6.H * R7.L, A0 += R6.H * R7.H; R6 = A0.w; R7 = A1.w; CHECKREG r0, 0x6F261922; CHECKREG r1, 0x7D725110; CHECKREG r2, 0xAE30B1EE; CHECKREG r3, 0xD0804218; CHECKREG r4, 0xBA68D1AE; CHECKREG r5, 0x0C381FC0; CHECKREG r6, 0xE8EBF200; CHECKREG r7, 0xCCC89B8A; imm32 r0, 0x01340678; imm32 r1, 0x02450789; imm32 r2, 0x0356089a; imm32 r3, 0x04670912; imm32 r4, 0x05780123; imm32 r5, 0x06890234; imm32 r6, 0x07230567; imm32 r7, 0x00230567; A1 -= R0.L * R1.L, A0 = R0.L * R1.L; R0 = A0.w; R1 = A1.w; A1 = R2.L * R3.L, A0 -= R2.L * R3.H; R2 = A0.w; R3 = A1.w; A1 -= R4.L * R5.L, A0 -= R4.H * R5.L; R4 = A0.w; R5 = A1.w; A1 -= R6.L * R7.L, A0 += R6.H * R7.H; R6 = A0.w; R7 = A1.w; CHECKREG r0, 0x00617C70; CHECKREG r1, 0xCC671F1A; CHECKREG r2, 0x0015C084; CHECKREG r3, 0x009C09A8; CHECKREG r4, 0xFFFDA7C4; CHECKREG r5, 0x00970770; CHECKREG r6, 0xFFFF9B56; CHECKREG r7, 0x005CA88E; imm32 r0, 0x00245618; imm32 r1, 0x01256719; imm32 r2, 0x0226781a; imm32 r3, 0x03278912; imm32 r4, 0x06489113; imm32 r5, 0x05291214; imm32 r6, 0x01634517; imm32 r7, 0x02234517; A1 += R0.L * R1.H, A0 -= R0.L * R1.L; R0 = A0.w; R1 = A1.w; A1 -= R2.L * R3.H, A0 += R2.L * R3.H; R2 = A0.w; R3 = A1.w; A1 -= R4.L * R5.H, A0 -= R4.H * R5.L; R4 = A0.w; R5 = A1.w; A1 += R6.L * R7.H, A0 -= R6.H * R7.H; R6 = A0.w; R7 = A1.w; CHECKREG r0, 0xBAA77AA6; CHECKREG r1, 0x0121BB7E; CHECKREG r2, 0xBD9CAE92; CHECKREG r3, 0xFE2C8792; CHECKREG r4, 0xBCB99352; CHECKREG r5, 0x02A5517C; CHECKREG r6, 0xBCB3A640; CHECKREG r7, 0x03CC91C6; imm32 r0, 0x10240648; imm32 r1, 0x25156749; imm32 r2, 0x3526084a; imm32 r3, 0x45238942; imm32 r4, 0x51381143; imm32 r5, 0x62392244; imm32 r6, 0xa3333547; imm32 r7, 0xc4334547; A1 += R0.H * R1.H, A0 -= R0.L * R1.L; R0 = A0.w; R1 = A1.w; A1 -= R2.H * R3.H, A0 -= R2.L * R3.H; R2 = A0.w; R3 = A1.w; A1 -= R4.H * R5.H, A0 += R4.H * R5.L; R4 = A0.w; R5 = A1.w; A1 += R6.H * R7.H, A0 -= R6.H * R7.H; R6 = A0.w; R7 = A1.w; CHECKREG r0, 0xB7A22130; CHECKREG r1, 0x08799FAE; CHECKREG r2, 0xB327F8F4; CHECKREG r3, 0xEBC49B4A; CHECKREG r4, 0xC8E5FEB4; CHECKREG r5, 0xAD71905A; CHECKREG r6, 0x9D8AE062; CHECKREG r7, 0xD8CCAEAC; imm32 r0, 0x10245628; imm32 r1, 0x23056729; imm32 r2, 0x3320782a; imm32 r3, 0x43270922; imm32 r4, 0x56389023; imm32 r5, 0x67391024; imm32 r6, 0x21334507; imm32 r7, 0x11334520; A1 += R0.H * R1.L, A0 -= R0.L * R1.L; R0 = A0.w; R1 = A1.w; A1 -= R2.H * R3.L, A0 += R2.L * R3.H; R2 = A0.w; R3 = A1.w; A1 -= R4.H * R5.L, A0 -= R4.H * R5.L; R4 = A0.w; R5 = A1.w; A1 += R6.H * R7.L, A0 -= R6.H * R7.H; R6 = A0.w; R7 = A1.w; CHECKREG r0, 0x581B1792; CHECKREG r1, 0xE5CED234; CHECKREG r2, 0x9725B05E; CHECKREG r3, 0xE228FDB4; CHECKREG r4, 0x8C46709E; CHECKREG r5, 0xD749BDF4; CHECKREG r6, 0x87D0704C; CHECKREG r7, 0xE93788B4; pass