1//Original:/testcases/core/c_dsp32mac_dr_a1/c_dsp32mac_dr_a1.dsp
2// Spec Reference: dsp32mac dr_a1
3# mach: bfin
4
5.include "testutils.inc"
6	start
7
8
9
10A1 = A0 = 0;
11
12// The result accumulated in A1 , and stored to a reg half
13imm32 r0, 0x13545abd;
14imm32 r1, 0xadbcfec7;
15imm32 r2, 0xa1245679;
16imm32 r3, 0x00060007;
17imm32 r4, 0xefbc4569;
18imm32 r5, 0x1235000b;
19imm32 r6, 0x000c000d;
20imm32 r7, 0x678e000f;
21R0.H = ( A1 += R1.L * R0.L ), A0 = R1.L * R0.L;
22R1 = A1.w;
23R2.H = ( A1 = R2.L * R3.L ), A0 = R2.H * R3.L;
24R3 = A1.w;
25R4.H = ( A1 = R4.L * R5.L ), A0 += R4.H * R5.H;
26R5 = A1.w;
27R6.H = ( A1 += R6.L * R7.L ), A0 += R6.L * R7.H;
28R7 = A1.w;
29CHECKREG r0, 0xFF225ABD;
30CHECKREG r1, 0xFF221DD6;
31CHECKREG r2, 0x00055679;
32CHECKREG r3, 0x0004BA9E;
33CHECKREG r4, 0x00064569;
34CHECKREG r5, 0x0005F706;
35CHECKREG r6, 0x0006000D;
36CHECKREG r7, 0x0005F88C;
37
38imm32 r0, 0x13545abd;
39imm32 r1, 0xa1bcfec7;
40imm32 r2, 0xa1145679;
41imm32 r3, 0x00010007;
42imm32 r4, 0xefbc1569;
43imm32 r5, 0x1235010b;
44imm32 r6, 0x000c001d;
45imm32 r7, 0x678e0001;
46R4.H = ( A1 += R1.L * R0.H ), A0 = R1.L * R0.L;
47R5 = A1.w;
48R0.H = ( A1 = R2.L * R3.H ), A0 = R2.H * R3.L;
49R1 = A1.w;
50R2.H = ( A1 = R4.L * R5.H ), A0 += R4.H * R5.H;
51R3 = A1.w;
52R6.H = ( A1 += R6.L * R7.H ), A0 += R6.L * R7.H;
53R7 = A1.w;
54CHECKREG r0, 0x00015ABD;
55CHECKREG r1, 0x0000ACF2;
56CHECKREG r2, 0xFFF95679;
57CHECKREG r3, 0xFFF8F98C;
58CHECKREG r4, 0xFFD71569;
59CHECKREG r5, 0xFFD6B524;
60CHECKREG r6, 0x0010001D;
61CHECKREG r7, 0x00106FB8;
62
63imm32 r0, 0x83545abd;
64imm32 r1, 0xa8bcfec7;
65imm32 r2, 0xa1845679;
66imm32 r3, 0x00080007;
67imm32 r4, 0xefbc8569;
68imm32 r5, 0x1235080b;
69imm32 r6, 0x000c008d;
70imm32 r7, 0x678e0008;
71R6.H = ( A1 += R1.H * R0.L ), A0 = R1.L * R0.L;
72R7 = A1.w;
73R2.H = ( A1 = R2.H * R3.L ), A0 = R2.H * R3.L;
74R3 = A1.w;
75R4.H = ( A1 = R4.H * R5.L ), A0 += R4.H * R5.H;
76R5 = A1.w;
77R0.H = ( A1 += R6.H * R7.L ), A0 += R6.L * R7.H;
78R1 = A1.w;
79CHECKREG r0, 0x1B505ABD;
80CHECKREG r1, 0x1B4FC2A8;
81CHECKREG r2, 0xFFFB5679;
82CHECKREG r3, 0xFFFAD538;
83CHECKREG r4, 0xFEFA8569;
84CHECKREG r5, 0xFEFA5A28;
85CHECKREG r6, 0xC234008D;
86CHECKREG r7, 0xC233C550;
87
88imm32 r0, 0xc3545abd;
89imm32 r1, 0xacbcfec7;
90imm32 r2, 0xa1c45679;
91imm32 r3, 0x000c0007;
92imm32 r4, 0xefbcc569;
93imm32 r5, 0x12350c0b;
94imm32 r6, 0x000c00cd;
95imm32 r7, 0x678e000c;
96R6.H = ( A1 += R1.H * R0.H ), A0 = R1.L * R0.L;
97R7 = A1.w;
98R0.H = ( A1 = R2.H * R3.H ), A0 = R2.H * R3.L;
99R1 = A1.w;
100R4.H = ( A1 = R4.H * R5.H ), A0 += R4.H * R5.H;
101R5 = A1.w;
102R2.H = ( A1 += R6.H * R7.H ), A0 += R6.L * R7.H;
103R3 = A1.w;
104CHECKREG r0, 0xFFF75ABD;
105CHECKREG r1, 0xFFF72A60;
106CHECKREG r2, 0x20875679;
107CHECKREG r3, 0x2086A6C8;
108CHECKREG r4, 0xFDB0C569;
109CHECKREG r5, 0xFDAFB3D8;
110CHECKREG r6, 0x42C800CD;
111CHECKREG r7, 0x42C78608;
112
113imm32 r0, 0x01542abd;
114imm32 r1, 0x02bc4ec7;
115imm32 r2, 0x03240679;
116imm32 r3, 0x04061007;
117imm32 r4, 0x05bc2569;
118imm32 r5, 0x0635300b;
119imm32 r6, 0x070c200d;
120imm32 r7, 0x088e100f;
121R0.H = ( A1 -= R1.L * R0.L ), A0 = R1.L * R0.L;
122R1 = A1.w;
123R2.H = ( A1 -= R2.L * R3.L ), A0 -= R2.H * R3.L;
124R3 = A1.w;
125R4.H = ( A1 -= R4.L * R5.L ), A0 += R4.H * R5.H;
126R5 = A1.w;
127R6.H = ( A1 += R6.L * R7.L ), A0 -= R6.L * R7.H;
128R7 = A1.w;
129CHECKREG r0, 0x06392ABD;
130CHECKREG r1, 0x063908F2;
131CHECKREG r2, 0x056A0679;
132CHECKREG r3, 0x05698E54;
133CHECKREG r4, 0xF75F2569;
134CHECKREG r5, 0xF75EF74E;
135CHECKREG r6, 0xFB64200D;
136CHECKREG r7, 0xFB6458D4;
137
138imm32 r0, 0x03545abd;
139imm32 r1, 0x31bcfec7;
140imm32 r2, 0x11145679;
141imm32 r3, 0x00010007;
142imm32 r4, 0xefbc1569;
143imm32 r5, 0x1235010b;
144imm32 r6, 0x000c001d;
145imm32 r7, 0x678e0001;
146R4.H = ( A1 += R1.L * R0.H ), A0 -= R1.L * R0.L;
147R5 = A1.w;
148R0.H = ( A1 -= R2.L * R3.H ), A0 = R2.H * R3.L;
149R1 = A1.w;
150R2.H = ( A1 -= R4.L * R5.H ), A0 += R4.H * R5.H;
151R3 = A1.w;
152R6.H = ( A1 += R6.L * R7.H ), A0 -= R6.L * R7.H;
153R7 = A1.w;
154CHECKREG r0, 0xFB5C5ABD;
155CHECKREG r1, 0xFB5B887A;
156CHECKREG r2, 0xFC225679;
157CHECKREG r3, 0xFC223F02;
158CHECKREG r4, 0xFB5C1569;
159CHECKREG r5, 0xFB5C356C;
160CHECKREG r6, 0xFC3A001D;
161CHECKREG r7, 0xFC39B52E;
162
163imm32 r0, 0x83545abd;
164imm32 r1, 0xa8bcfec7;
165imm32 r2, 0xa1845679;
166imm32 r3, 0x00080007;
167imm32 r4, 0xefbc8569;
168imm32 r5, 0x1235080b;
169imm32 r6, 0x000c008d;
170imm32 r7, 0x678e0008;
171R6.H = ( A1 += R1.H * R0.L ), A0 -= R1.L * R0.L;
172R7 = A1.w;
173R2.H = ( A1 -= R2.H * R3.L ), A0 -= R2.H * R3.L;
174R3 = A1.w;
175R4.H = ( A1 = R4.H * R5.L ), A0 -= R4.H * R5.H;
176R5 = A1.w;
177R0.H = ( A1 += R6.H * R7.L ), A0 -= R6.L * R7.H;
178R1 = A1.w;
179CHECKREG r0, 0xF9745ABD;
180CHECKREG r1, 0xF9741604;
181CHECKREG r2, 0xBE625679;
182CHECKREG r3, 0xBE62358E;
183CHECKREG r4, 0xFEFA8569;
184CHECKREG r5, 0xFEFA5A28;
185CHECKREG r6, 0xBE5D008D;
186CHECKREG r7, 0xBE5D0AC6;
187
188imm32 r0, 0xc3545abd;
189imm32 r1, 0xacbcfec7;
190imm32 r2, 0xa1c45679;
191imm32 r3, 0x000c0007;
192imm32 r4, 0xefbcc569;
193imm32 r5, 0x12350c0b;
194imm32 r6, 0x000c00cd;
195imm32 r7, 0x678e000c;
196R6.H = ( A1 += R1.H * R0.H ), A0 -= R1.L * R0.L;
197R7 = A1.w;
198R0.H = ( A1 = R2.H * R3.H ), A0 -= R2.H * R3.L;
199R1 = A1.w;
200R4.H = ( A1 -= R4.H * R5.H ), A0 += R4.H * R5.H;
201R5 = A1.w;
202R2.H = ( A1 -= R6.H * R7.H ), A0 += R6.L * R7.H;
203R3 = A1.w;
204CHECKREG r0, 0xFFF75ABD;
205CHECKREG r1, 0xFFF72A60;
206CHECKREG r2, 0xF9D05679;
207CHECKREG r3, 0xF9D00540;
208CHECKREG r4, 0x0247C569;
209CHECKREG r5, 0x02477688;
210CHECKREG r6, 0x20EC00CD;
211CHECKREG r7, 0x20EBD964;
212
213pass
214