1//Original:/testcases/core/c_dsp32alu_rh_rnd20_m/c_dsp32alu_rh_rnd20_m.dsp
2// Spec Reference: dsp32alu dreg (half)
3# mach: bfin
4
5.include "testutils.inc"
6	start
7
8imm32 r0, 0xa5678911;
9imm32 r1, 0x2a89ab1d;
10imm32 r2, 0x34a45515;
11imm32 r3, 0x46a67717;
12imm32 r4, 0x5678891b;
13imm32 r5, 0x678aab1d;
14imm32 r6, 0x7444a515;
15imm32 r7, 0x86667a77;
16R0.H = R0 - R0 (RND20);
17R1.H = R0 - R1 (RND20);
18R2.H = R0 - R2 (RND20);
19R3.H = R0 - R3 (RND20);
20R4.H = R0 - R4 (RND20);
21R5.H = R0 - R5 (RND20);
22R6.H = R0 - R6 (RND20);
23R7.H = R0 - R7 (RND20);
24CHECKREG r0, 0x00008911;
25CHECKREG r1, 0xFD57AB1D;
26CHECKREG r2, 0xFCB65515;
27CHECKREG r3, 0xFB967717;
28CHECKREG r4, 0xFA98891B;
29CHECKREG r5, 0xF987AB1D;
30CHECKREG r6, 0xF8BCA515;
31CHECKREG r7, 0x079A7A77;
32
33imm32 r0, 0xa5678911;
34imm32 r1, 0x2789ab1d;
35imm32 r2, 0xb4445515;
36imm32 r3, 0x46667717;
37imm32 r4, 0x5b78891b;
38imm32 r5, 0x67bbab1d;
39imm32 r6, 0x7444b515;
40imm32 r7, 0x86667b77;
41R0.H = R1 - R0 (RND20);
42R1.H = R1 - R1 (RND20);
43R2.H = R1 - R2 (RND20);
44R3.H = R1 - R3 (RND20);
45R4.H = R1 - R4 (RND20);
46R5.H = R1 - R5 (RND20);
47R6.H = R1 - R6 (RND20);
48R7.H = R1 - R7 (RND20);
49CHECKREG r0, 0x08228911;
50CHECKREG r1, 0x0000AB1D;
51CHECKREG r2, 0x04BC5515;
52CHECKREG r3, 0xFB9A7717;
53CHECKREG r4, 0xFA49891B;
54CHECKREG r5, 0xF984AB1D;
55CHECKREG r6, 0xF8BCB515;
56CHECKREG r7, 0x079A7B77;
57
58imm32 r0, 0xa5678911;
59imm32 r1, 0x2a89ab1d;
60imm32 r2, 0x3a445515;
61imm32 r3, 0x46a67717;
62imm32 r4, 0x567a891b;
63imm32 r5, 0x6789ab1d;
64imm32 r6, 0x74445a15;
65imm32 r7, 0x866677a7;
66R0.H = R2 - R0 (RND20);
67R1.H = R2 - R1 (RND20);
68R2.H = R2 - R2 (RND20);
69R3.H = R2 - R3 (RND20);
70R4.H = R2 - R4 (RND20);
71R5.H = R2 - R5 (RND20);
72R6.H = R2 - R6 (RND20);
73R7.H = R2 - R7 (RND20);
74CHECKREG r0, 0x094E8911;
75CHECKREG r1, 0x00FCAB1D;
76CHECKREG r2, 0x00005515;
77CHECKREG r3, 0xFB967717;
78CHECKREG r4, 0xFA98891B;
79CHECKREG r5, 0xF987AB1D;
80CHECKREG r6, 0xF8BC5A15;
81CHECKREG r7, 0x079A77A7;
82
83imm32 r0, 0xb5678911;
84imm32 r1, 0xb789ab1d;
85imm32 r2, 0x3d445515;
86imm32 r3, 0x46d67717;
87imm32 r4, 0x5678891b;
88imm32 r5, 0x678ddb1d;
89imm32 r6, 0x74445d15;
90imm32 r7, 0x866677d7;
91R0.H = R3 - R0 (RND20);
92R1.H = R3 - R1 (RND20);
93R2.H = R3 - R2 (RND20);
94R3.H = R3 - R3 (RND20);
95R4.H = R3 - R4 (RND20);
96R5.H = R3 - R5 (RND20);
97R6.H = R3 - R6 (RND20);
98R7.H = R3 - R7 (RND20);
99CHECKREG r0, 0x09178911;
100CHECKREG r1, 0x08F5AB1D;
101CHECKREG r2, 0x00995515;
102CHECKREG r3, 0x00007717;
103CHECKREG r4, 0xFA98891B;
104CHECKREG r5, 0xF987DB1D;
105CHECKREG r6, 0xF8BC5D15;
106CHECKREG r7, 0x079A77D7;
107
108imm32 r0, 0xd5678911;
109imm32 r1, 0x2789ab1d;
110imm32 r2, 0xd4445515;
111imm32 r3, 0xd6667717;
112imm32 r4, 0x5d78891b;
113imm32 r5, 0x67d9ab1d;
114imm32 r6, 0x744d5515;
115imm32 r7, 0x8666dd77;
116R0.H = R4 - R0 (RND20);
117R1.H = R4 - R1 (RND20);
118R2.H = R4 - R2 (RND20);
119R3.H = R4 - R3 (RND20);
120R4.H = R4 - R4 (RND20);
121R5.H = R4 - R5 (RND20);
122R6.H = R4 - R6 (RND20);
123R7.H = R4 - R7 (RND20);
124CHECKREG r0, 0x08818911;
125CHECKREG r1, 0x035FAB1D;
126CHECKREG r2, 0x08935515;
127CHECKREG r3, 0x08717717;
128CHECKREG r4, 0x0000891B;
129CHECKREG r5, 0xF982AB1D;
130CHECKREG r6, 0xF8BB5515;
131CHECKREG r7, 0x079ADD77;
132
133imm32 r0, 0xe5678911;
134imm32 r1, 0x2e89ab1d;
135imm32 r2, 0x34d45515;
136imm32 r3, 0x46667717;
137imm32 r4, 0x567d891b;
138imm32 r5, 0x6789db1d;
139imm32 r6, 0x74445d15;
140imm32 r7, 0x866677d7;
141R0.H = R5 - R0 (RND20);
142R1.H = R5 - R1 (RND20);
143R2.H = R5 - R2 (RND20);
144R3.H = R5 - R3 (RND20);
145R4.H = R5 - R4 (RND20);
146R5.H = R5 - R5 (RND20);
147R6.H = R5 - R6 (RND20);
148R7.H = R5 - R7 (RND20);
149CHECKREG r0, 0x08228911;
150CHECKREG r1, 0x0390AB1D;
151CHECKREG r2, 0x032B5515;
152CHECKREG r3, 0x02127717;
153CHECKREG r4, 0x0111891B;
154CHECKREG r5, 0x0000DB1D;
155CHECKREG r6, 0xF8BC5D15;
156CHECKREG r7, 0x079A77D7;
157
158imm32 r0, 0xa5678911;
159imm32 r1, 0x2a89ab1d;
160imm32 r2, 0x34a45515;
161imm32 r3, 0x46a67717;
162imm32 r4, 0x56a8891b;
163imm32 r5, 0x678aab1d;
164imm32 r6, 0x7444a515;
165imm32 r7, 0x86667a77;
166R0.H = R6 - R0 (RND20);
167R1.H = R6 - R1 (RND20);
168R2.H = R6 - R2 (RND20);
169R3.H = R6 - R3 (RND20);
170R4.H = R6 - R4 (RND20);
171R5.H = R6 - R5 (RND20);
172R6.H = R6 - R6 (RND20);
173R7.H = R6 - R7 (RND20);
174CHECKREG r0, 0x0CEE8911;
175CHECKREG r1, 0x049CAB1D;
176CHECKREG r2, 0x03FA5515;
177CHECKREG r3, 0x02DA7717;
178CHECKREG r4, 0x01DA891B;
179CHECKREG r5, 0x00CCAB1D;
180CHECKREG r6, 0x0000A515;
181CHECKREG r7, 0x079A7A77;
182
183imm32 r0, 0x15678911;
184imm32 r1, 0x2789ab1d;
185imm32 r2, 0x34445515;
186imm32 r3, 0x46667717;
187imm32 r4, 0x5678891b;
188imm32 r5, 0x6789ab1d;
189imm32 r6, 0x74445515;
190imm32 r7, 0x86667777;
191R0.H = R7 - R0 (RND20);
192R1.H = R7 - R1 (RND20);
193R2.H = R7 - R2 (RND20);
194R3.H = R7 - R3 (RND20);
195R4.H = R7 - R4 (RND20);
196R5.H = R7 - R5 (RND20);
197R6.H = R7 - R6 (RND20);
198R7.H = R7 - R7 (RND20);
199CHECKREG r0, 0xF7108911;
200CHECKREG r1, 0xF5EEAB1D;
201CHECKREG r2, 0xF5225515;
202CHECKREG r3, 0xF4007717;
203CHECKREG r4, 0xF2FF891B;
204CHECKREG r5, 0xF1EEAB1D;
205CHECKREG r6, 0xF1225515;
206CHECKREG r7, 0x00007777;
207
208imm32 r0, 0xe5678911;
209imm32 r1, 0xe789ab1d;
210imm32 r2, 0xe4445515;
211imm32 r3, 0x4ee67717;
212imm32 r4, 0x567e891b;
213imm32 r5, 0x6789ab1d;
214imm32 r6, 0x7444e515;
215imm32 r7, 0x86667e77;
216R6.H = R2 - R3 (RND20);
217R1.H = R4 - R5 (RND20);
218R5.H = R7 - R2 (RND20);
219R3.H = R0 - R0 (RND20);
220R0.H = R3 - R4 (RND20);
221R2.H = R5 - R7 (RND20);
222R7.H = R6 - R7 (RND20);
223R4.H = R1 - R6 (RND20);
224CHECKREG r0, 0xFA988911;
225CHECKREG r1, 0xFEEFAB1D;
226CHECKREG r2, 0x073C5515;
227CHECKREG r3, 0x00007717;
228CHECKREG r4, 0x005A891B;
229CHECKREG r5, 0xFA22AB1D;
230CHECKREG r6, 0xF956E515;
231CHECKREG r7, 0x072F7E77;
232
233imm32 r0, 0xe5678911;
234imm32 r1, 0x2789ab1d;
235imm32 r2, 0x3d445515;
236imm32 r3, 0x46d67717;
237imm32 r4, 0x567d891b;
238imm32 r5, 0x6789db1d;
239imm32 r6, 0x7444d515;
240imm32 r7, 0x86667d77;
241R3.H = R4 - R0 (RND20);
242R1.H = R6 - R3 (RND20);
243R4.H = R3 - R2 (RND20);
244R6.H = R7 - R1 (RND20);
245R2.H = R5 - R4 (RND20);
246R7.H = R2 - R7 (RND20);
247R0.H = R1 - R6 (RND20);
248R5.H = R0 - R5 (RND20);
249CHECKREG r0, 0x00EE8911;
250CHECKREG r1, 0x06D3AB1D;
251CHECKREG r2, 0x06AF5515;
252CHECKREG r3, 0x07117717;
253CHECKREG r4, 0xFC9D891B;
254CHECKREG r5, 0xF996DB1D;
255CHECKREG r6, 0xF7F9D515;
256CHECKREG r7, 0x08057D77;
257
258pass
259