1 //Original:/testcases/core/c_dsp32mac_dr_a1_u/c_dsp32mac_dr_a1_u.dsp
2 // Spec Reference: dsp32mac dr_a1 u (unsigned fraction & unsigned int)
5 .include "testutils.inc"
13 // The result accumulated in A1 , and stored to a reg half
22 R0.H = ( A1 = R6.L * R7.L ), A0 += R6.L * R7.L (FU);
24 R2.H = ( A1 = R3.L * R4.H ), A0 = R3.H * R4.L (FU);
26 R4.H = ( A1 += R2.H * R5.L ), A0 = R2.H * R5.H (FU);
28 R6.H = ( A1 += R0.H * R1.H ), A0 += R0.L * R1.H (FU);
30 CHECKREG r0, 0x48665ABD;
31 CHECKREG r1, 0x486656C2;
32 CHECKREG r2, 0x86E08679;
33 CHECKREG r3, 0x86E04E24;
34 CHECKREG r4, 0xB651A569;
35 CHECKREG r5, 0xB650D9C4;
36 CHECKREG r6, 0xCACA80AD;
37 CHECKREG r7, 0xCACA6268;
47 R0.H = ( A1 -= R6.L * R7.L ), A0 += R6.L * R7.L (FU);
49 R2.H = ( A1 -= R3.L * R4.H ), A0 = R3.H * R4.L (FU);
51 R4.H = ( A1 += R2.H * R5.L ), A0 -= R2.H * R5.H (FU);
53 R6.H = ( A1 -= R0.H * R1.H ), A0 += R0.L * R1.H (FU);
55 CHECKREG r0, 0x82645ABD;
56 CHECKREG r1, 0x82640BA6;
57 CHECKREG r2, 0x52B88679;
58 CHECKREG r3, 0x52B7FA82;
59 CHECKREG r4, 0x6FD0A569;
60 CHECKREG r5, 0x6FD0386A;
61 CHECKREG r6, 0x2D6780AD;
62 CHECKREG r7, 0x2D66815A;
64 // The result accumulated in A1, and stored to a reg half (MNOP)
73 R0.H = ( A1 = R1.L * R0.L ) (FU);
75 R2.H = ( A1 = R2.L * R6.H ) (FU);
77 R4.H = ( A1 += R3.H * R5.L ) (FU);
79 R6.H = ( A1 = R4.H * R7.H ) (FU);
81 CHECKREG r0, 0x8A138ABD;
82 CHECKREG r1, 0x8A135EEB;
83 CHECKREG r2, 0x4BAE5679;
84 CHECKREG r3, 0x4BADEDAC;
85 CHECKREG r4, 0x8473B569;
86 CHECKREG r5, 0x8472EE1B;
87 CHECKREG r6, 0x3594ABBD;
88 CHECKREG r7, 0x3593BCCA;
90 // The result accumulated in A1 , and stored to a reg half (MNOP)
99 R0.H = A1 , A0 = R1.L * R0.L (FU);
101 R2.H = A1 , A0 = R2.H * R3.L (FU);
103 R4.H = A1 , A0 = R4.H * R5.H (FU);
105 R6.H = A1 , A0 = R6.L * R7.H (FU);
107 CHECKREG r0, 0x3594BABD;
108 CHECKREG r1, 0x3593BCCA;
109 CHECKREG r2, 0x3594E679;
110 CHECKREG r3, 0x3593BCCA;
111 CHECKREG r4, 0x3594C569;
112 CHECKREG r5, 0x3593BCCA;
113 CHECKREG r6, 0x359430CD;
114 CHECKREG r7, 0x3593BCCA;
116 // The result accumulated in A1 , and stored to a reg half
117 imm32 r0, 0xd3545abd;
118 imm32 r1, 0x5dbcfec7;
119 imm32 r2, 0x71d45679;
120 imm32 r3, 0x900d0007;
121 imm32 r4, 0xafbcd569;
122 imm32 r5, 0xd2359d0b;
123 imm32 r6, 0xc00ca0dd;
124 imm32 r7, 0x678ed00d;
125 R0.H = ( A1 = R1.L * R2.L ) (M), A0 += R1.L * R2.L (FU);
127 R2.H = ( A1 = R3.L * R4.H ) (M), A0 = R3.H * R4.L (FU);
129 R4.H = ( A1 = R5.H * R6.L ) (M), A0 += R5.H * R6.H (FU);
131 R6.H = ( A1 += R7.H * R0.H ) (M), A0 += R7.L * R0.H (FU);
133 CHECKREG r0, 0xFF965ABD;
134 CHECKREG r1, 0xFF96460F;
135 CHECKREG r2, 0x00055679;
136 CHECKREG r3, 0x0004CE24;
137 CHECKREG r4, 0xE33AD569;
138 CHECKREG r5, 0xE33997C1;
139 CHECKREG r6, 0x4A9DA0DD;
140 CHECKREG r7, 0x4A9CB6F5;
142 // The result accumulated in A1 MM=0, and stored to a reg half (MNOP)
143 imm32 r0, 0xe3545abd;
144 imm32 r1, 0xaebcfec7;
145 imm32 r2, 0xc1e45679;
146 imm32 r3, 0x1c0e0007;
147 imm32 r4, 0xe1cce569;
148 imm32 r5, 0x921c0e0b;
149 imm32 r6, 0x790190ed;
150 imm32 r7, 0x679e900e;
151 R0.H = ( A1 = R1.L * R0.L ) (M,FU);
153 R2.H = ( A1 += R2.L * R3.H ) (M,FU);
155 R4.H = ( A1 += R4.H * R5.L ) (M,FU);
157 R6.H = ( A1 = R6.H * R7.H ) (M,FU);
159 CHECKREG r0, 0xFF915ABD;
160 CHECKREG r1, 0xFF910EEB;
161 CHECKREG r2, 0x090B5679;
162 CHECKREG r3, 0x090B0589;
163 CHECKREG r4, 0x0763E569;
164 CHECKREG r5, 0x0762E14D;
165 CHECKREG r6, 0x30FA90ED;
166 CHECKREG r7, 0x30FA159E;