c_dsp32mac_pair_mix.s revision 1.1.1.1
1//Original:/testcases/core/c_dsp32mac_pair_mix/c_dsp32mac_pair_mix.dsp 2// Spec Reference: dsp32mac pair mix 3# mach: bfin 4 5.include "testutils.inc" 6 start 7 8 9 10imm32 r0, 0x00000000; 11imm32 r1, 0x00060007; 12imm32 r2, 0x00040005; 13imm32 r3, 0x00060007; 14imm32 r4, 0x00080009; 15imm32 r5, 0x000a000b; 16imm32 r6, 0x000c000d; 17imm32 r7, 0x000e000f; 18 19A0 = 0; 20ASTAT = R0; 21// The result accumulated in A0 and A1, and stored to a reg pair 22imm32 r0, 0x00120034; 23imm32 r1, 0x00050006; 24 25R3 = ( A1 = R1.L * R0.H ), A0 = R1.H * R0.L; 26R5 = ( A1 = R1.L * R0.H ); 27R7 = ( A1 = R1.L * R0.H ) (M), A0 = R1.H * R0.L; 28CHECKREG r2, 0x00040005; 29CHECKREG r3, 0x000000d8; 30CHECKREG r4, 0x00080009; 31CHECKREG r5, 0x000000d8; 32CHECKREG r6, 0x000C000D; 33CHECKREG r7, 0x0000006c; 34A1 = R1.L * R0.H, R2 = ( A0 += R1.H * R0.L ); 35A1 = R1.L * R0.H (M), R6 = ( A0 -= R1.H * R0.L ); 36CHECKREG r2, 0x00000410; 37CHECKREG r3, 0x000000d8; 38CHECKREG r4, 0x00080009; 39CHECKREG r5, 0x000000d8; 40CHECKREG r6, 0x00000208; 41CHECKREG r7, 0x0000006c; 42R3 = ( A1 = R1.L * R0.H ), R2 = ( A0 += R1.H * R0.L ) (S2RND); 43R5 = ( A1 = R1.L * R0.H ) (M), R4 = ( A0 -= R1.H * R0.L ) (S2RND); 44CHECKREG r2, 0x00000820; 45CHECKREG r3, 0x000001B0; 46CHECKREG r4, 0x00000410; 47CHECKREG r5, 0x000000D8; 48 49imm32 r0, 0x12345678; 50imm32 r1, 0x34567897; 51imm32 r2, 0x0acb1234; 52imm32 r3, 0x456acb07; 53imm32 r4, 0x421dbc09; 54imm32 r5, 0x89acbd0b; 55imm32 r6, 0x5adbcd0d; 56imm32 r7, 0x9abc230f; 57A1 += R7.L * R5.H, R2 = ( A0 = R7.H * R5.L ); 58A1 -= R1.H * R2.L (M), R6 = ( A0 += R1.L * R2.H ) (S2RND); 59CHECKREG r0, 0x12345678; 60CHECKREG r1, 0x34567897; 61CHECKREG r2, 0x34F8E428; 62CHECKREG r3, 0x456ACB07; 63CHECKREG r4, 0x421DBC09; 64CHECKREG r5, 0x89ACBD0B; 65CHECKREG r6, 0x7FFFFFFF; 66CHECKREG r7, 0x9ABC230F; 67 68 69pass 70