1//Original:/testcases/core/c_dsp32alu_rm/c_dsp32alu_rm.dsp
2// Spec Reference: dsp32alu
3# mach: bfin
4
5.include "testutils.inc"
6	start
7
8
9
10
11imm32 r0, 0x35678911;
12imm32 r1, 0x2389ab1d;
13imm32 r2, 0x34345515;
14imm32 r3, 0x46637717;
15imm32 r4, 0x5567391b;
16imm32 r5, 0x6789a31d;
17imm32 r6, 0x744455a5;
18imm32 r7, 0x866677a7;
19R0 = R0 - R0 (NS);
20R1 = R0 - R1 (NS);
21R2 = R0 - R2 (NS);
22R3 = R0 - R3 (NS);
23R4 = R0 - R4 (NS);
24R5 = R0 - R5 (NS);
25R6 = R0 - R6 (NS);
26R7 = R0 - R7 (NS);
27CHECKREG r0, 0x00000000;
28CHECKREG r1, 0xDC7654E3;
29CHECKREG r2, 0xCBCBAAEB;
30CHECKREG r3, 0xB99C88E9;
31CHECKREG r4, 0xAA98C6E5;
32CHECKREG r5, 0x98765CE3;
33CHECKREG r6, 0x8BBBAA5B;
34CHECKREG r7, 0x79998859;
35
36imm32 r0, 0xa5678911;
37imm32 r1, 0x4a89ab1d;
38imm32 r2, 0x54a45515;
39imm32 r3, 0x466a7717;
40imm32 r4, 0x5567a91b;
41imm32 r5, 0x6789ab1d;
42imm32 r6, 0x74445a15;
43imm32 r7, 0x866677a7;
44R0 = R1 - R0 (NS);
45R1 = R1 - R1 (NS);
46R2 = R1 - R2 (NS);
47R3 = R1 - R3 (NS);
48R4 = R1 - R4 (NS);
49R5 = R1 - R5 (NS);
50R6 = R1 - R6 (NS);
51R7 = R1 - R7 (NS);
52CHECKREG r0, 0xA522220C;
53CHECKREG r1, 0x00000000;
54CHECKREG r2, 0xAB5BAAEB;
55CHECKREG r3, 0xB99588E9;
56CHECKREG r4, 0xAA9856E5;
57CHECKREG r5, 0x987654E3;
58CHECKREG r6, 0x8BBBA5EB;
59CHECKREG r7, 0x79998859;
60
61imm32 r0, 0xda678911;
62imm32 r1, 0x27c9ab1d;
63imm32 r2, 0x344c5515;
64imm32 r3, 0x4666c717;
65imm32 r4, 0x5567891b;
66imm32 r5, 0x6789ab1d;
67imm32 r6, 0x744455b5;
68imm32 r7, 0x8666777b;
69R0 = R2 - R0 (NS);
70R1 = R2 - R1 (NS);
71R2 = R2 - R2 (NS);
72R3 = R2 - R3 (NS);
73R4 = R2 - R4 (NS);
74R5 = R2 - R5 (NS);
75R6 = R2 - R6 (NS);
76R7 = R2 - R7 (NS);
77CHECKREG r0, 0x59E4CC04;
78CHECKREG r1, 0x0C82A9F8;
79CHECKREG r2, 0x00000000;
80CHECKREG r3, 0xB99938E9;
81CHECKREG r4, 0xAA9876E5;
82CHECKREG r5, 0x987654E3;
83CHECKREG r6, 0x8BBBAA4B;
84CHECKREG r7, 0x79998885;
85
86imm32 r0, 0x65678911;
87imm32 r1, 0x7289ab1d;
88imm32 r2, 0x84345515;
89imm32 r3, 0x96647717;
90imm32 r4, 0x5567591b;
91imm32 r5, 0x6789a61d;
92imm32 r6, 0x744d5515;
93imm32 r7, 0x8666b777;
94R0 = R3 - R0 (NS);
95R1 = R3 - R1 (NS);
96R2 = R3 - R2 (NS);
97R3 = R3 - R3 (NS);
98R4 = R3 - R4 (NS);
99R5 = R3 - R5 (NS);
100R6 = R3 - R6 (NS);
101R7 = R3 - R7 (NS);
102CHECKREG r0, 0x30FCEE06;
103CHECKREG r1, 0x23DACBFA;
104CHECKREG r2, 0x12302202;
105CHECKREG r3, 0x00000000;
106CHECKREG r4, 0xAA98A6E5;
107CHECKREG r5, 0x987659E3;
108CHECKREG r6, 0x8BB2AAEB;
109CHECKREG r7, 0x79994889;
110
111imm32 r0, 0x15678911;
112imm32 r1, 0x2789ab1d;
113imm32 r2, 0x34445515;
114imm32 r3, 0x46667717;
115imm32 r4, 0x5567891b;
116imm32 r5, 0x6789ab1d;
117imm32 r6, 0x74445515;
118imm32 r7, 0x86667777;
119R0 = R4 - R0 (NS);
120R1 = R4 - R1 (NS);
121R2 = R4 - R2 (NS);
122R3 = R4 - R3 (NS);
123R4 = R4 - R4 (NS);
124R5 = R4 - R5 (NS);
125R6 = R4 - R6 (NS);
126R7 = R4 - R7 (NS);
127CHECKREG r0, 0x4000000A;
128CHECKREG r1, 0x2DDDDDFE;
129CHECKREG r2, 0x21233406;
130CHECKREG r3, 0x0F011204;
131CHECKREG r4, 0x00000000;
132CHECKREG r5, 0x987654E3;
133CHECKREG r6, 0x8BBBAAEB;
134CHECKREG r7, 0x79998889;
135
136imm32 r0, 0x95678911;
137imm32 r1, 0x8789ab1d;
138imm32 r2, 0x74445515;
139imm32 r3, 0x36667717;
140imm32 r4, 0x3567891b;
141imm32 r5, 0x6e89ab1d;
142imm32 r6, 0x74e45515;
143imm32 r7, 0x866e7777;
144R0 = R5 - R0 (NS);
145R1 = R5 - R1 (NS);
146R2 = R5 - R2 (NS);
147R3 = R5 - R3 (NS);
148R4 = R5 - R4 (NS);
149R5 = R5 - R5 (NS);
150R6 = R5 - R6 (NS);
151R7 = R5 - R7 (NS);
152CHECKREG r0, 0xD922220C;
153CHECKREG r1, 0xE7000000;
154CHECKREG r2, 0xFA455608;
155CHECKREG r3, 0x38233406;
156CHECKREG r4, 0x39222202;
157CHECKREG r5, 0x00000000;
158CHECKREG r6, 0x8B1BAAEB;
159CHECKREG r7, 0x79918889;
160
161imm32 r0, 0x5a678911;
162imm32 r1, 0x67c9ab1d;
163imm32 r2, 0x744d5515;
164imm32 r3, 0x8666b717;
165imm32 r4, 0x9567891b;
166imm32 r5, 0x6789db1d;
167imm32 r6, 0x74445f15;
168imm32 r7, 0x866677f7;
169R0 = R6 - R0 (NS);
170R1 = R6 - R1 (NS);
171R2 = R6 - R2 (NS);
172R3 = R6 - R3 (NS);
173R4 = R6 - R4 (NS);
174R5 = R6 - R5 (NS);
175R6 = R6 - R6 (NS);
176R7 = R6 - R7 (NS);
177CHECKREG r0, 0x19DCD604;
178CHECKREG r1, 0x0C7AB3F8;
179CHECKREG r2, 0xFFF70A00;
180CHECKREG r3, 0xEDDDA7FE;
181CHECKREG r4, 0xDEDCD5FA;
182CHECKREG r5, 0x0CBA83F8;
183CHECKREG r6, 0x00000000;
184CHECKREG r7, 0x79998809;
185
186imm32 r0, 0x25678911;
187imm32 r1, 0x2389ab1d;
188imm32 r2, 0x3a455515;
189imm32 r3, 0x46d66717;
190imm32 r4, 0x556b891b;
191imm32 r5, 0x6789cb1d;
192imm32 r6, 0x74445515;
193imm32 r7, 0x86667777;
194R0 = R7 - R0 (NS);
195R1 = R7 - R1 (NS);
196R2 = R7 - R2 (NS);
197R3 = R7 - R3 (NS);
198R4 = R7 - R4 (NS);
199R5 = R7 - R5 (NS);
200R6 = R7 - R6 (NS);
201R7 = R7 - R7 (NS);
202CHECKREG r0, 0x60FEEE66;
203CHECKREG r1, 0x62DCCC5A;
204CHECKREG r2, 0x4C212262;
205CHECKREG r3, 0x3F901060;
206CHECKREG r4, 0x30FAEE5C;
207CHECKREG r5, 0x1EDCAC5A;
208CHECKREG r6, 0x12222262;
209CHECKREG r7, 0x00000000;
210
211imm32 r0, 0xd5678911;
212imm32 r1, 0x2e89ab1d;
213imm32 r2, 0x34f45515;
214imm32 r3, 0x466b7717;
215imm32 r4, 0x5567c91b;
216imm32 r5, 0x6789ab1d;
217imm32 r6, 0x74445115;
218imm32 r7, 0x866a7d77;
219R3 = R1 - R4 (S);
220R7 = R4 - R6 (S);
221R2 = R7 - R7 (S);
222R4 = R5 - R0 (S);
223R5 = R3 - R1 (S);
224R6 = R2 - R3 (S);
225R0 = R0 - R2 (S);
226R1 = R6 - R5 (S);
227CHECKREG r0, 0xD5678911;
228CHECKREG r1, 0x7C45E719;
229CHECKREG r2, 0x00000000;
230CHECKREG r3, 0xD921E202;
231CHECKREG r4, 0x7FFFFFFF;
232CHECKREG r5, 0xAA9836E5;
233CHECKREG r6, 0x26DE1DFE;
234CHECKREG r7, 0xE1237806;
235
236imm32 r0, 0x15678911;
237imm32 r1, 0x2789ab1d;
238imm32 r2, 0x34445515;
239imm32 r3, 0x46667717;
240imm32 r4, 0x5567891b;
241imm32 r5, 0x6789ab1d;
242imm32 r6, 0x74445515;
243imm32 r7, 0x86667777;
244R3 = R3 - R3 (S);
245R1 = R7 - R6 (S);
246R4 = R1 - R2 (S);
247R7 = R4 - R0 (S);
248R5 = R6 - R4 (S);
249R2 = R5 - R5 (S);
250R6 = R2 - R1 (S);
251R0 = R0 - R7 (S);
252CHECKREG r0, 0x7FFFFFFF;
253CHECKREG r1, 0x80000000;
254CHECKREG r2, 0x00000000;
255CHECKREG r3, 0x00000000;
256CHECKREG r4, 0x80000000;
257CHECKREG r5, 0x7FFFFFFF;
258CHECKREG r6, 0x7FFFFFFF;
259CHECKREG r7, 0x80000000;
260
261
262pass
263