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