1//Original:/testcases/core/c_dsp32alu_rrpm/c_dsp32alu_rrpm.dsp
2// Spec Reference: dsp32alu (dreg, dreg)
3# mach: bfin
4
5.include "testutils.inc"
6	start
7
8
9
10
11imm32 r0, 0x75678911;
12imm32 r1, 0x2789ab1d;
13imm32 r2, 0x34745515;
14imm32 r3, 0x46677717;
15imm32 r0, 0x5567a91b;
16imm32 r1, 0x6789aa1d;
17imm32 r2, 0x744455a5;
18imm32 r3, 0x8666777a;
19R0 = R0 + R0, R7 = R0 - R0 (NS);
20R1 = R0 + R1, R6 = R0 - R1 (NS);
21R2 = R0 + R2, R5 = R0 - R2 (NS);
22R3 = R0 + R3, R4 = R0 - R3 (NS);
23R4 = R0 + R4, R3 = R0 - R4 (NS);
24R5 = R0 + R5, R2 = R0 - R5 (NS);
25R6 = R0 + R6, R1 = R0 - R6 (NS);
26R7 = R0 + R7, R0 = R0 - R7 (NS);
27CHECKREG r0, 0xAACF5236;
28CHECKREG r1, 0x6789AA1D;
29CHECKREG r2, 0x744455A5;
30CHECKREG r3, 0x8666777A;
31CHECKREG r4, 0xCF382CF2;
32CHECKREG r5, 0xE15A4EC7;
33CHECKREG r6, 0xEE14FA4F;
34CHECKREG r7, 0xAACF5236;
35
36imm32 r0, 0x4567892b;
37imm32 r1, 0x4489ab2d;
38imm32 r2, 0x54445525;
39imm32 r3, 0x66645727;
40imm32 r4, 0x78889629;
41imm32 r5, 0x8aaabb6b;
42imm32 r6, 0x9cccdd2d;
43imm32 r7, 0x0eee3fff;
44R0 = R1 + R0, R7 = R1 - R0 (NS);
45R1 = R1 + R1, R6 = R1 - R1 (NS);
46R2 = R1 + R2, R5 = R1 - R2 (NS);
47R3 = R1 + R3, R4 = R1 - R3 (NS);
48R4 = R1 + R4, R3 = R1 - R4 (NS);
49R5 = R1 + R5, R2 = R1 - R5 (NS);
50R6 = R1 + R6, R1 = R1 - R6 (NS);
51R7 = R1 + R7, R0 = R1 - R7 (NS);
52CHECKREG r0, 0x89F13458;
53CHECKREG r1, 0x8913565A;
54CHECKREG r2, 0x54445525;
55CHECKREG r3, 0x66645727;
56CHECKREG r4, 0xABC2558D;
57CHECKREG r5, 0xBDE2578F;
58CHECKREG r6, 0x8913565A;
59CHECKREG r7, 0x8835785C;
60
61
62imm32 r0, 0x496789ab;
63imm32 r1, 0x6489abcd;
64imm32 r2, 0x4b445555;
65imm32 r3, 0x6c647777;
66imm32 r4, 0x8d889999;
67imm32 r5, 0x1eaa4bbb;
68imm32 r6, 0x2fccd44d;
69imm32 r7, 0x31eefff4;
70R0 = R2 + R0, R7 = R2 - R0 (NS);
71R1 = R2 + R1, R6 = R2 - R1 (NS);
72R2 = R2 + R2, R5 = R2 - R2 (NS);
73R3 = R2 + R3, R4 = R2 - R3 (NS);
74R4 = R2 + R4, R3 = R2 - R4 (NS);
75R5 = R2 + R5, R2 = R2 - R5 (NS);
76R6 = R2 + R6, R1 = R2 - R6 (NS);
77R7 = R2 + R7, R0 = R2 - R7 (NS);
78CHECKREG r0, 0x94ABDF00;
79CHECKREG r1, 0xAFCE0122;
80CHECKREG r2, 0x9688AAAA;
81CHECKREG r3, 0x6C647777;
82CHECKREG r4, 0xC0ACDDDD;
83CHECKREG r5, 0x9688AAAA;
84CHECKREG r6, 0x7D435432;
85CHECKREG r7, 0x98657654;
86
87imm32 r0, 0xa537891b;
88imm32 r1, 0x6a59ab2d;
89imm32 r2, 0x44a55535;
90imm32 r3, 0x166a5747;
91imm32 r4, 0x6878a565;
92imm32 r5, 0x7a8aba5b;
93imm32 r6, 0x8c9cdd85;
94imm32 r7, 0x9eaeffaf;
95R0 = R3 + R0, R7 = R3 - R0 (NS);
96R1 = R3 + R1, R6 = R3 - R1 (NS);
97R2 = R3 + R2, R5 = R3 - R2 (NS);
98R3 = R3 + R3, R4 = R3 - R3 (NS);
99R4 = R3 + R4, R3 = R3 - R4 (NS);
100R5 = R3 + R5, R2 = R3 - R5 (NS);
101R6 = R3 + R6, R1 = R3 - R6 (NS);
102R7 = R3 + R7, R0 = R3 - R7 (NS);
103CHECKREG r0, 0xBBA1E062;
104CHECKREG r1, 0x80C40274;
105CHECKREG r2, 0x5B0FAC7C;
106CHECKREG r3, 0x2CD4AE8E;
107CHECKREG r4, 0x2CD4AE8E;
108CHECKREG r5, 0xFE99B0A0;
109CHECKREG r6, 0xD8E55AA8;
110CHECKREG r7, 0x9E077CBA;
111
112imm32 r0, 0x15678911;
113imm32 r1, 0x9789ab1d;
114imm32 r2, 0x94445515;
115imm32 r3, 0x96667717;
116imm32 r0, 0x5267891b;
117imm32 r1, 0x67a9ab1d;
118imm32 r2, 0x744c5515;
119imm32 r3, 0x8666d777;
120R0 = R4 + R0, R7 = R4 - R0 (NS);
121R1 = R4 + R1, R6 = R4 - R1 (NS);
122R2 = R4 + R2, R5 = R4 - R2 (NS);
123R3 = R4 + R3, R4 = R4 - R3 (NS);
124R4 = R4 + R4, R3 = R4 - R4 (NS);
125R5 = R4 + R5, R2 = R4 - R5 (NS);
126R6 = R4 + R6, R1 = R4 - R6 (NS);
127R7 = R4 + R7, R0 = R4 - R7 (NS);
128CHECKREG r0, 0x726E88BB;
129CHECKREG r1, 0x87B0AABD;
130CHECKREG r2, 0x945354B5;
131CHECKREG r3, 0x00000000;
132CHECKREG r4, 0x4CDBAE2E;
133CHECKREG r5, 0x056407A7;
134CHECKREG r6, 0x1206B19F;
135CHECKREG r7, 0x2748D3A1;
136
137imm32 r0, 0xa567892b;
138imm32 r1, 0x4a89ab2d;
139imm32 r2, 0x54a45525;
140imm32 r3, 0x666d7727;
141imm32 r4, 0x7888d929;
142imm32 r5, 0x8aaabe2b;
143imm32 r6, 0x9cccdd2d;
144imm32 r7, 0x0eeeffef;
145R0 = R5 + R0, R7 = R5 - R0 (NS);
146R1 = R5 + R1, R6 = R5 - R1 (NS);
147R2 = R5 + R2, R5 = R5 - R2 (NS);
148R3 = R5 + R3, R4 = R5 - R3 (NS);
149R4 = R5 + R4, R3 = R5 - R4 (NS);
150R5 = R5 + R5, R2 = R5 - R5 (NS);
151R6 = R5 + R6, R1 = R5 - R6 (NS);
152R7 = R5 + R7, R0 = R5 - R7 (NS);
153CHECKREG r0, 0x86C99D0C;
154CHECKREG r1, 0x2BEBBF0E;
155CHECKREG r2, 0x00000000;
156CHECKREG r3, 0x666D7727;
157CHECKREG r4, 0x059F5AE5;
158CHECKREG r5, 0x6C0CD20C;
159CHECKREG r6, 0xAC2DE50A;
160CHECKREG r7, 0x5150070C;
161
162
163imm32 r0, 0x496789ab;
164imm32 r1, 0x6489abcd;
165imm32 r2, 0x4b445555;
166imm32 r3, 0x6c647777;
167imm32 r4, 0x8d889999;
168imm32 r5, 0x1eaa4bbb;
169imm32 r6, 0x2fccd44d;
170imm32 r7, 0x31eefff4;
171R0 = R6 + R0, R7 = R6 - R0 (NS);
172R1 = R6 + R1, R6 = R6 - R1 (NS);
173R2 = R6 + R2, R5 = R6 - R2 (NS);
174R3 = R6 + R3, R4 = R6 - R3 (NS);
175R4 = R6 + R4, R3 = R6 - R4 (NS);
176R5 = R6 + R5, R2 = R6 - R5 (NS);
177R6 = R6 + R6, R1 = R6 - R6 (NS);
178R7 = R6 + R7, R0 = R6 - R7 (NS);
179CHECKREG r0, 0xB021065E;
180CHECKREG r1, 0x00000000;
181CHECKREG r2, 0x4B445555;
182CHECKREG r3, 0x6C647777;
183CHECKREG r4, 0x2A21D989;
184CHECKREG r5, 0x4B41FBAB;
185CHECKREG r6, 0x96865100;
186CHECKREG r7, 0x7CEB9BA2;
187
188imm32 r0, 0xe537891b;
189imm32 r1, 0xe759ab2d;
190imm32 r2, 0x4e555535;
191imm32 r3, 0x16e65747;
192imm32 r4, 0x687e9565;
193imm32 r5, 0x7a8aeb5b;
194imm32 r6, 0x8c9cdd85;
195imm32 r7, 0x9eaefe9f;
196R0 = R7 + R0, R7 = R7 - R0 (NS);
197R1 = R7 + R1, R6 = R7 - R1 (NS);
198R2 = R7 + R2, R5 = R7 - R2 (NS);
199R3 = R7 + R3, R4 = R7 - R3 (NS);
200R4 = R7 + R4, R3 = R7 - R4 (NS);
201R5 = R7 + R5, R2 = R7 - R5 (NS);
202R6 = R7 + R6, R1 = R7 - R6 (NS);
203R7 = R7 + R7, R0 = R7 - R7 (NS);
204CHECKREG r0, 0x00000000;
205CHECKREG r1, 0xE759AB2D;
206CHECKREG r2, 0x4E555535;
207CHECKREG r3, 0x16E65747;
208CHECKREG r4, 0x5C0893C1;
209CHECKREG r5, 0x249995D3;
210CHECKREG r6, 0x8B953FDB;
211CHECKREG r7, 0x72EEEB08;
212
213imm32 r0, 0x496789ab;
214imm32 r1, 0x6489abcd;
215imm32 r2, 0x4b445555;
216imm32 r3, 0x6c647777;
217imm32 r4, 0x8d889999;
218imm32 r5, 0x1eaa4bbb;
219imm32 r6, 0x2fccd44d;
220imm32 r7, 0x31eefff4;
221R2 = R4 + R0, R7 = R4 - R0 (S);
222R3 = R7 + R1, R6 = R7 - R1 (NS);
223R4 = R0 + R2, R5 = R0 - R2 (S);
224R5 = R4 + R3, R4 = R4 - R3 (NS);
225R6 = R2 + R4, R3 = R2 - R4 (S);
226R7 = R3 + R5, R2 = R3 - R5 (NS);
227R0 = R1 + R6, R1 = R1 - R6 (S);
228R1 = R5 + R7, R0 = R5 - R7 (S);
229CHECKREG r0, 0x64DDDDDE;
230CHECKREG r1, 0xA4E4D39A;
231CHECKREG r2, 0x9640C966;
232CHECKREG r3, 0x9B222222;
233CHECKREG r4, 0x3BCE0122;
234CHECKREG r5, 0x04E158BC;
235CHECKREG r6, 0x12BE2466;
236CHECKREG r7, 0xA0037ADE;
237
238imm32 r0, 0xa537891b;
239imm32 r1, 0x6d59ab2d;
240imm32 r2, 0x4f555535;
241imm32 r3, 0x16c65747;
242imm32 r4, 0x687c9565;
243imm32 r5, 0x7a8acb5b;
244imm32 r6, 0x8c9cdc85;
245imm32 r7, 0x9eaefb9f;
246R4 = R3 + R0, R1 = R3 - R0 (S);
247R5 = R6 + R1, R2 = R6 - R1 (S);
248R6 = R7 + R2, R3 = R7 - R2 (S);
249R7 = R0 + R3, R4 = R0 - R3 (NS);
250R0 = R2 + R4, R5 = R2 - R4 (S);
251R1 = R1 + R5, R6 = R1 - R5 (S);
252R2 = R5 + R6, R7 = R5 - R6 (NS);
253R3 = R4 + R7, R0 = R4 - R7 (S);
254CHECKREG r0, 0x052876A0;
255CHECKREG r1, 0x6B0640B0;
256CHECKREG r2, 0x718ECE2C;
257CHECKREG r3, 0x80000000;
258CHECKREG r4, 0x86888D7C;
259CHECKREG r5, 0xF9777284;
260CHECKREG r6, 0x78175BA8;
261CHECKREG r7, 0x816016DC;
262
263
264
265pass
266