1 //Original:/testcases/core/c_dsp32mac_dr_a1_s/c_dsp32mac_dr_a1_s.dsp
2 // Spec Reference: dsp32mac dr_a1 s (scale by 2 signed fraction with round)
5 .include "testutils.inc"
13 // The result accumulated in A1 , and stored to a reg half
22 R0.H = ( A1 -= R1.L * R0.L ), A0 += R1.L * R0.L (S2RND);
24 R2.H = ( A1 += R2.L * R3.H ), A0 -= R2.H * R3.L (S2RND);
26 R4.H = ( A1 = R4.H * R5.L ), A0 = R4.H * R5.H (S2RND);
28 R6.H = ( A1 += R6.H * R7.H ), A0 -= R6.L * R7.H (S2RND);
30 CHECKREG r0, 0x01BC5ABD;
31 CHECKREG r1, 0x00DDE22A;
32 CHECKREG r2, 0x5CCE8679;
33 CHECKREG r3, 0x2E67039E;
34 CHECKREG r4, 0xE91EA569;
35 CHECKREG r5, 0xF48ECA28;
36 CHECKREG r6, 0xED5580AD;
37 CHECKREG r7, 0xF6AA7F78;
39 // The result accumulated in A1, and stored to a reg half (MNOP)
48 R0.H = ( A1 += R1.L * R0.L ) (S2RND);
50 R2.H = ( A1 -= R2.L * R3.H ) (S2RND);
52 R4.H = ( A1 += R4.H * R5.L ) (S2RND);
54 R6.H = ( A1 = R6.H * R7.H ) (S2RND);
56 CHECKREG r0, 0xEF928ABD;
57 CHECKREG r1, 0xF7C93D4E;
58 CHECKREG r2, 0x5AB45679;
59 CHECKREG r3, 0x2D59E942;
60 CHECKREG r4, 0x7FFF4569;
61 CHECKREG r5, 0x4B80E354;
62 CHECKREG r6, 0xCC4CAB0D;
63 CHECKREG r7, 0xE6263550;
65 // The result accumulated in A1 , and stored to a reg half (MNOP)
74 R0.H = A1 , A0 -= R1.L * R0.L (S2RND);
76 R2.H = A1 , A0 += R2.H * R3.L (S2RND);
78 R4.H = A1 , A0 = R4.H * R5.H (S2RND);
80 R6.H = A1 , A0 += R6.L * R7.H (S2RND);
82 CHECKREG r0, 0xCC4CBABD;
83 CHECKREG r1, 0xE6263550;
84 CHECKREG r2, 0xCC4CE679;
85 CHECKREG r3, 0xE6263550;
86 CHECKREG r4, 0xCC4C4C69;
87 CHECKREG r5, 0xE6263550;
88 CHECKREG r6, 0xCC4CC00C;
89 CHECKREG r7, 0xE6263550;
91 // The result accumulated in A1 , and stored to a reg half
100 R0.H = ( A1 = R1.L * R0.L ) (M), A0 += R1.L * R0.L (S2RND);
102 R2.H = ( A1 = R2.L * R3.H ) (M), A0 -= R2.H * R3.L (S2RND);
104 R4.H = ( A1 += R4.H * R5.L ) (M), A0 = R4.H * R5.H (S2RND);
106 R6.H = ( A1 += R6.H * R7.H ) (M), A0 += R6.L * R7.H (S2RND);
108 CHECKREG r0, 0xFF225ABD;
109 CHECKREG r1, 0xFF910EEB;
110 CHECKREG r2, 0x614C5679;
111 CHECKREG r3, 0x30A616D6;
112 CHECKREG r4, 0x06764D69;
113 CHECKREG r5, 0x033B2CAA;
114 CHECKREG r6, 0xDD6BA00D;
115 CHECKREG r7, 0xEEB5AF52;
117 // The result accumulated in A1 MM=0, and stored to a reg half (MNOP)
118 imm32 r0, 0x83e45abd;
119 imm32 r1, 0xe8befec7;
120 imm32 r2, 0xce84e679;
121 imm32 r3, 0x1ce80e07;
122 imm32 r4, 0xe1ce85e9;
123 imm32 r5, 0x921ce80e;
124 imm32 r6, 0x79019e8d;
125 imm32 r7, 0x679e90e8;
126 R0.H = ( A1 += R1.L * R0.L ) (M,S2RND);
128 R2.H = ( A1 = R2.L * R3.H ) (M,S2RND);
130 R4.H = ( A1 += R4.H * R5.L ) (M,S2RND);
132 R6.H = ( A1 -= R6.H * R7.H ) (M,S2RND);
134 CHECKREG r0, 0xDC8D5ABD;
135 CHECKREG r1, 0xEE46BE3D;
136 CHECKREG r2, 0xFA3CE679;
137 CHECKREG r3, 0xFD1E19A8;
138 CHECKREG r4, 0xC37E85E9;
139 CHECKREG r5, 0xE1BF22EC;
140 CHECKREG r6, 0x80009E8D;
141 CHECKREG r7, 0xB0C50D4E;