1//Original:/proj/frio/dv/testcases/core/c_dsp32mac_dr_a1a0_iutsh/c_dsp32mac_dr_a1a0_iutsh.dsp
2// Spec Reference: dsp32mac dr_a1a0 iutsh
3# mach: bfin
4
5.include "testutils.inc"
6	start
7
8	A1 = A0 = 0;
9	R0 = 0;
10	ASTAT = R0;
11
12// The result accumulated in A       , and stored to a reg half
13	imm32 r0, 0x13545abd;
14	imm32 r1, 0xb2bcfec7;
15	imm32 r2, 0xc1348679;
16	imm32 r3, 0xd0049007;
17	imm32 r4, 0x2efbc556;
18	imm32 r5, 0xcd35560b;
19	imm32 r6, 0xe00c807d;
20	imm32 r7, 0xf78e9008;
21	A1 = A0 = 0;
22	R6.H = (A1 += R0.L * R0.L), R6.L = (A0 = R0.L * R0.L) (IS);
23	P1 = A1.w;
24	P2 = A0.w;
25	R1.H = (A1 += R2.L * R3.L), R1.L = (A0 -= R2.H * R3.L) (FU);
26	P3 = A1.w;
27	P4 = A0.w;
28	R2.H = (A1 = R4.L * R5.L) (M), R2.L = (A0 += R4.H * R5.H) (T);
29	P5 = A1.w;
30	FP = A0.w;
31	R3.H = (A1 += R0.L * R7.L), R3.L = (A0 += R0.L * R7.H) (S2RND);
32	R4 = A1.w;
33	R5 = A0.w;
34	CHECKREG r0, 0x13545ABD;
35	CHECKREG r1, 0x6BD10000;
36	CHECKREG r2, 0xEC48ED5B;
37	CHECKREG r3, 0x8000CEBE;
38	CHECKREG r4, 0x9CE8AA82;
39	CHECKREG r5, 0xE75ED19A;
40	CHECKREG r6, 0x7FFF7FFF;
41	CHECKREG r7, 0xF78E9008;
42	CHECKREG p1, 0x20296F89;
43	CHECKREG p2, 0x20296F89;
44	CHECKREG p3, 0x6BD12CD8;
45	CHECKREG p4, 0x00000000;
46	CHECKREG p5, 0xEC485EB2;
47	CHECKREG fp, 0xED5B71EE;
48
49	imm32 r0, 0x13545abd;
50	imm32 r1, 0x22bcfec7;
51	imm32 r2, 0x43348679;
52	imm32 r3, 0x50049007;
53	imm32 r4, 0x6fbc5569;
54	imm32 r5, 0x7d35560b;
55	imm32 r6, 0x800c807d;
56	imm32 r7, 0xf98e9008;
57	A1 = A0 = 0;
58	R0.H = (A1 += R1.L * R0.H), R0.L = (A0 = R1.L * R0.L) (IU);
59	P1 = A1.w;
60	P2 = A0.w;
61	R6.H = (A1 += R2.L * R2.H), R6.L = (A0 = R2.H * R2.L) (TFU);
62	P3 = A1.w;
63	P4 = A0.w;
64	R2.H = (A1 -= R4.L * R5.H), R2.L = (A0 += R4.H * R5.H) (ISS2);
65	P5 = A1.w;
66	FP = A0.w;
67	R3.H = (A1 += R3.L * R7.H), R3.L = (A0 -= R3.L * R7.H) (IH);
68	R4 = A1.w;
69	R5 = A0.w;
70	CHECKREG r0, 0xFFFFFFFF;
71	CHECKREG r1, 0x22BCFEC7;
72	CHECKREG r2, 0x7FFF7FFF;
73	CHECKREG r3, 0x0F955721;
74	CHECKREG r4, 0x0F951905;
75	CHECKREG r5, 0x5721369E;
76	CHECKREG r6, 0x3689234C;
77	CHECKREG r7, 0xF98E9008;
78	CHECKREG p1, 0x133C5E4C;
79	CHECKREG p2, 0x5A4E0EEB;
80	CHECKREG p3, 0x368959E0;
81	CHECKREG p4, 0x234CFB94;
82	CHECKREG p5, 0x0CC36623;
83	CHECKREG fp, 0x59F2E980;
84
85	imm32 r0, 0x13545abd;
86	imm32 r1, 0x42bcfec7;
87	imm32 r2, 0x51348679;
88	imm32 r3, 0x60049007;
89	imm32 r4, 0x7fbc5569;
90	imm32 r5, 0x8d35560b;
91	imm32 r6, 0x900c807d;
92	imm32 r7, 0xa78e9008;
93	A1 = A0 = 0;
94	R0.H = (A1 += R1.H * R0.L), R0.L = (A0 = R1.L * R0.L) (IS);
95	P1 = A1.w;
96	P2 = A0.w;
97	R1.H = (A1 += R2.H * R3.L) (M), R1.L = (A0 -= R2.H * R3.L) (IU);
98	P3 = A1.w;
99	P4 = A0.w;
100	R2.H = (A1 = R4.H * R5.L), R2.L = (A0 += R4.H * R5.H) (ISS2);
101	P5 = A1.w;
102	FP = A0.w;
103	R3.H = (A1 -= R6.H * R7.L) (M), R3.L = (A0 += R6.L * R7.H) (IH);
104	R4 = A1.w;
105	R5 = A0.w;
106	CHECKREG r0, 0x7FFF8000;
107	CHECKREG r1, 0x7FFFFFFF;
108	CHECKREG r2, 0x7FFF8000;
109	CHECKREG r3, 0x69EBC4A8;
110	CHECKREG r4, 0x69EB64B4;
111	CHECKREG r5, 0xC4A864C1;
112	CHECKREG r6, 0x900C807D;
113	CHECKREG r7, 0xA78E9008;
114	CHECKREG p1, 0x17A75CCC;
115	CHECKREG p2, 0xFF910EEB;
116	CHECKREG p3, 0x4556D538;
117	CHECKREG p4, 0xD1E1967F;
118	CHECKREG p5, 0x2AEEA514;
119	CHECKREG fp, 0x989A946B;
120
121	imm32 r0, 0x03545abd;
122	imm32 r1, 0xb3bcfec7;
123	imm32 r2, 0x24348679;
124	imm32 r3, 0x60049007;
125	imm32 r4, 0x7fbc5569;
126	imm32 r5, 0x9d35560b;
127	imm32 r6, 0xa00c807d;
128	imm32 r7, 0x078e9008;
129	A1 = A0 = 0;
130	R0.H = (A1 += R1.H * R0.H), R0.L = (A0 -= R1.L * R0.L) (FU);
131	P1 = A1.w;
132	P2 = A0.w;
133	R1.H = (A1 += R2.H * R3.H), R1.L = (A0 = R2.H * R3.L) (TFU);
134	P3 = A1.w;
135	P4 = A0.w;
136	R2.H = (A1 = R4.H * R5.H), R2.L = (A0 += R4.H * R5.H) (IU);
137	P5 = A1.w;
138	FP = A0.w;
139	R3.H = (A1 -= R6.H * R7.H) (M), R3.L = (A0 += R6.L * R7.H) (S2RND);
140	R4 = A1.w;
141	R5 = A0.w;
142	CHECKREG r0, 0x02560000;
143	CHECKREG r1, 0x0FEA145E;
144	CHECKREG r2, 0xFFFFFFFF;
145	CHECKREG r3, 0x7FFF7FFF;
146	CHECKREG r4, 0x5145A344;
147	CHECKREG r5, 0x5B485C04;
148	CHECKREG r6, 0xA00C807D;
149	CHECKREG r7, 0x078E9008;
150	CHECKREG p1, 0x02562DB0;
151	CHECKREG p2, 0x00000000;
152	CHECKREG p3, 0x0FEA3E80;
153	CHECKREG p4, 0x145E3D6C;
154	CHECKREG p5, 0x4E70BDEC;
155	CHECKREG fp, 0x62CEFB58;
156
157	pass
158