1//Original:/proj/frio/dv/testcases/core/c_dsp32alu_rh_rnd12_m/c_dsp32alu_rh_rnd12_m.dsp
2// Spec Reference: dsp32alu  dreg (half)
3# mach: bfin
4
5.include "testutils.inc"
6	start
7
8	imm32 r0, 0x45678ad1;
9	imm32 r1, 0x2789ab1d;
10	imm32 r2, 0xf4445545;
11	imm32 r3, 0x46667767;
12	imm32 r4, 0xe678891b;
13	imm32 r5, 0x6f89ab1d;
14	imm32 r6, 0x7444d565;
15	imm32 r7, 0x8666b797;
16	R0.H = R0 - R0 (RND12);
17	R1.H = R0 - R1 (RND12);
18	R2.H = R0 - R2 (RND12);
19	R3.H = R0 - R3 (RND12);
20	R4.H = R0 - R4 (RND12);
21	R5.H = R0 - R5 (RND12);
22	R6.H = R0 - R6 (RND12);
23	R7.H = R0 - R7 (RND12);
24	CHECKREG r0, 0x00008AD1;
25	CHECKREG r1, 0x8000AB1D;
26	CHECKREG r2, 0x7fff5545;
27	CHECKREG r3, 0x80007767;
28	CHECKREG r4, 0x7fff891B;
29	CHECKREG r5, 0x8000AB1D;
30	CHECKREG r6, 0x8000D565;
31	CHECKREG r7, 0x7fffB797;
32
33	imm32 r0, 0xd5678911;
34	imm32 r1, 0x2789ab1d;
35	imm32 r2, 0xa4445515;
36	imm32 r3, 0x46667717;
37	imm32 r4, 0x5b78891b;
38	imm32 r5, 0x6789ab1d;
39	imm32 r6, 0x74e45515;
40	imm32 r7, 0x86a6b777;
41	R0.H = R1 - R0 (RND12);
42	R1.H = R1 - R1 (RND12);
43	R2.H = R1 - R2 (RND12);
44	R3.H = R1 - R3 (RND12);
45	R4.H = R1 - R4 (RND12);
46	R5.H = R1 - R5 (RND12);
47	R6.H = R1 - R6 (RND12);
48	R7.H = R1 - R7 (RND12);
49	CHECKREG r0, 0x7fff8911;
50	CHECKREG r1, 0x0000AB1D;
51	CHECKREG r2, 0x7fff5515;
52	CHECKREG r3, 0x80007717;
53	CHECKREG r4, 0x8000891B;
54	CHECKREG r5, 0x8000AB1D;
55	CHECKREG r6, 0x80005515;
56	CHECKREG r7, 0x7fffB777;
57
58	imm32 r0, 0xa5678091;
59	imm32 r1, 0x2789ab1d;
60	imm32 r2, 0xb4445515;
61	imm32 r3, 0x46667717;
62	imm32 r4, 0xd678891b;
63	imm32 r5, 0x6e89ab4d;
64	imm32 r6, 0x74445567;
65	imm32 r7, 0x86967757;
66	R0.H = R2 - R0 (RND12);
67	R1.H = R2 - R1 (RND12);
68	R2.H = R2 - R2 (RND12);
69	R3.H = R2 - R3 (RND12);
70	R4.H = R2 - R4 (RND12);
71	R5.H = R2 - R5 (RND12);
72	R6.H = R2 - R6 (RND12);
73	R7.H = R2 - R7 (RND12);
74	CHECKREG r0, 0x7fff8091;
75	CHECKREG r1, 0x8000AB1D;
76	CHECKREG r2, 0x00005515;
77	CHECKREG r3, 0x80007717;
78	CHECKREG r4, 0x7fff891B;
79	CHECKREG r5, 0x8000AB4D;
80	CHECKREG r6, 0x80005567;
81	CHECKREG r7, 0x7fff7757;
82
83	imm32 r0, 0x35678991;
84	imm32 r1, 0x2789ab8d;
85	imm32 r2, 0xd4445515;
86	imm32 r3, 0x46667737;
87	imm32 r4, 0x5678891b;
88	imm32 r5, 0xeab9ab4d;
89	imm32 r6, 0x744e5515;
90	imm32 r7, 0x866e747f;
91	R0.H = R3 - R0 (RND12);
92	R1.H = R3 - R1 (RND12);
93	R2.H = R3 - R2 (RND12);
94	R3.H = R3 - R3 (RND12);
95	R4.H = R3 - R4 (RND12);
96	R5.H = R3 - R5 (RND12);
97	R6.H = R3 - R6 (RND12);
98	R7.H = R3 - R7 (RND12);
99	CHECKREG r0, 0x7fff8991;
100	CHECKREG r1, 0x7fffAB8D;
101	CHECKREG r2, 0x7fff5515;
102	CHECKREG r3, 0x00007737;
103	CHECKREG r4, 0x8000891B;
104	CHECKREG r5, 0x7fffAB4D;
105	CHECKREG r6, 0x80005515;
106	CHECKREG r7, 0x7fff747F;
107
108	imm32 r0, 0xe5678931;
109	imm32 r1, 0x2789ab1d;
110	imm32 r2, 0x34e45555;
111	imm32 r3, 0xd6667767;
112	imm32 r4, 0x5675891b;
113	imm32 r5, 0x6789abfd;
114	imm32 r6, 0xa4465515;
115	imm32 r7, 0x8b66e7b7;
116	R0.H = R4 - R0 (RND12);
117	R1.H = R4 - R1 (RND12);
118	R2.H = R4 - R2 (RND12);
119	R3.H = R4 - R3 (RND12);
120	R4.H = R4 - R4 (RND12);
121	R5.H = R4 - R5 (RND12);
122	R6.H = R4 - R6 (RND12);
123	R7.H = R4 - R7 (RND12);
124	CHECKREG r0, 0x7fff8931;
125	CHECKREG r1, 0x7fffAB1D;
126	CHECKREG r2, 0x7fff5555;
127	CHECKREG r3, 0x7fff7767;
128	CHECKREG r4, 0x0000891B;
129	CHECKREG r5, 0x8000ABFD;
130	CHECKREG r6, 0x7fff5515;
131	CHECKREG r7, 0x7fffE7B7;
132
133	imm32 r0, 0x35678931;
134	imm32 r1, 0x2789ab4d;
135	imm32 r2, 0x3e445585;
136	imm32 r3, 0x46667717;
137	imm32 r4, 0xe6f8899b;
138	imm32 r5, 0x6789db1d;
139	imm32 r6, 0xf44a5515;
140	imm32 r7, 0x866b77b7;
141	R0.H = R5 - R0 (RND12);
142	R1.H = R5 - R1 (RND12);
143	R2.H = R5 - R2 (RND12);
144	R3.H = R5 - R3 (RND12);
145	R4.H = R5 - R4 (RND12);
146	R5.H = R5 - R5 (RND12);
147	R6.H = R5 - R6 (RND12);
148	R7.H = R5 - R7 (RND12);
149	CHECKREG r0, 0x7fff8931;
150	CHECKREG r1, 0x7fffAB4D;
151	CHECKREG r2, 0x7fff5585;
152	CHECKREG r3, 0x7fff7717;
153	CHECKREG r4, 0x7fff899B;
154	CHECKREG r5, 0x0000DB1D;
155	CHECKREG r6, 0x7fff5515;
156	CHECKREG r7, 0x7fff77B7;
157
158	imm32 r0, 0xb5678911;
159	imm32 r1, 0xc789ab1d;
160	imm32 r2, 0x3ab45515;
161	imm32 r3, 0x466b7717;
162	imm32 r4, 0x4678e91b;
163	imm32 r5, 0x6789af1d;
164	imm32 r6, 0xf4445515;
165	imm32 r7, 0x86e6f777;
166	R0.H = R6 - R0 (RND12);
167	R1.H = R6 - R1 (RND12);
168	R2.H = R6 - R2 (RND12);
169	R3.H = R6 - R3 (RND12);
170	R4.H = R6 - R4 (RND12);
171	R5.H = R6 - R5 (RND12);
172	R6.H = R6 - R6 (RND12);
173	R7.H = R6 - R7 (RND12);
174	CHECKREG r0, 0x7fff8911;
175	CHECKREG r1, 0x7fffAB1D;
176	CHECKREG r2, 0x80005515;
177	CHECKREG r3, 0x80007717;
178	CHECKREG r4, 0x8000E91B;
179	CHECKREG r5, 0x8000AF1D;
180	CHECKREG r6, 0x00005515;
181	CHECKREG r7, 0x7fffF777;
182
183	imm32 r0, 0xab678051;
184	imm32 r1, 0x2c89a26d;
185	imm32 r2, 0x34d455f5;
186	imm32 r3, 0x466e7717;
187	imm32 r4, 0x567f89bb;
188	imm32 r5, 0x6789ab1d;
189	imm32 r6, 0x744e55a5;
190	imm32 r7, 0x8666ab77;
191	R0.H = R7 - R0 (RND12);
192	R1.H = R7 - R1 (RND12);
193	R2.H = R7 - R2 (RND12);
194	R3.H = R7 - R3 (RND12);
195	R4.H = R7 - R4 (RND12);
196	R5.H = R7 - R5 (RND12);
197	R6.H = R7 - R6 (RND12);
198	R7.H = R7 - R7 (RND12);
199	CHECKREG r0, 0x80008051;
200	CHECKREG r1, 0x8000A26D;
201	CHECKREG r2, 0x800055F5;
202	CHECKREG r3, 0x80007717;
203	CHECKREG r4, 0x800089BB;
204	CHECKREG r5, 0x8000AB1D;
205	CHECKREG r6, 0x800055A5;
206	CHECKREG r7, 0x0000AB77;
207
208	imm32 r0, 0x15678901;
209	imm32 r1, 0x2789abad;
210	imm32 r2, 0x34445515;
211	imm32 r3, 0x466677d7;
212	imm32 r4, 0x5678891b;
213	imm32 r5, 0x6789ab1d;
214	imm32 r6, 0x74445535;
215	imm32 r7, 0x86667747;
216	R6.H = R2 - R3 (RND12);
217	R1.H = R4 - R5 (RND12);
218	R5.H = R7 - R2 (RND12);
219	R3.H = R0 - R0 (RND12);
220	R0.H = R3 - R4 (RND12);
221	R2.H = R5 - R7 (RND12);
222	R7.H = R6 - R7 (RND12);
223	R4.H = R1 - R6 (RND12);
224	CHECKREG r0, 0x80008901;
225	CHECKREG r1, 0x8000ABAD;
226	CHECKREG r2, 0x99a35515;
227	CHECKREG r3, 0x000077D7;
228	CHECKREG r4, 0x0005891B;
229	CHECKREG r5, 0x8000AB1D;
230	CHECKREG r6, 0x80005535;
231	CHECKREG r7, 0x999e7747;
232
233	imm32 r0, 0x15678121;
234	imm32 r1, 0x2789ab3d;
235	imm32 r2, 0x34445565;
236	imm32 r3, 0x4d667797;
237	imm32 r4, 0x567889ab;
238	imm32 r5, 0x67beabbd;
239	imm32 r6, 0x7b445515;
240	imm32 r7, 0x86d6e777;
241	R3.H = R4 - R0 (RND12);
242	R1.H = R6 - R3 (RND12);
243	R4.H = R3 - R2 (RND12);
244	R6.H = R7 - R1 (RND12);
245	R2.H = R5 - R4 (RND12);
246	R7.H = R2 - R7 (RND12);
247	R0.H = R1 - R6 (RND12);
248	R5.H = R0 - R5 (RND12);
249	CHECKREG r0, 0x7fff8121;
250	CHECKREG r1, 0xb44eAB3D;
251	CHECKREG r2, 0x80005565;
252	CHECKREG r3, 0x7fff7797;
253	CHECKREG r4, 0x7fff89AB;
254	CHECKREG r5, 0x7fffABBD;
255	CHECKREG r6, 0x80005515;
256	CHECKREG r7, 0x9297E777;
257
258	pass
259