xref: /netbsd-src/external/gpl3/gdb/dist/sim/testsuite/bfin/c_dsp32alu_rmp.s (revision 4b169a6ba595ae283ca507b26b15fdff40495b1c)
1//Original:/testcases/core/c_dsp32alu_rmp/c_dsp32alu_rmp.dsp
2// Spec Reference: dsp32alu dreg = -/+ ( dreg, dreg)
3# mach: bfin
4
5.include "testutils.inc"
6	start
7
8
9
10
11// ALU operations include parallel addition, subtraction
12// and 32-bit data. If an operation use a single ALU only, it uses ALU0.
13
14imm32 r0, 0x15678911;
15imm32 r1, 0x2789ab1d;
16imm32 r2, 0x34445515;
17imm32 r3, 0x46667717;
18imm32 r4, 0x5567891b;
19imm32 r5, 0x6789ab1d;
20imm32 r6, 0x74445515;
21imm32 r7, 0x86667777;
22R0 = R0 -|+ R0;
23R1 = R0 -|+ R1;
24R2 = R0 -|+ R2;
25R3 = R0 -|+ R3;
26R4 = R0 -|+ R4;
27R5 = R0 -|+ R5;
28R6 = R0 -|+ R6;
29R7 = R0 -|+ R7;
30CHECKREG r0, 0x00001222;
31CHECKREG r1, 0xD877BD3F;
32CHECKREG r2, 0xCBBC6737;
33CHECKREG r3, 0xB99A8939;
34CHECKREG r4, 0xAA999B3D;
35CHECKREG r5, 0x9877BD3F;
36CHECKREG r6, 0x8BBC6737;
37CHECKREG r7, 0x799A8999;
38
39imm32 r0, 0x9567892b;
40imm32 r1, 0xa789ab2d;
41imm32 r2, 0xb4445525;
42imm32 r3, 0xc6667727;
43imm32 r4, 0xd8889929;
44imm32 r5, 0xeaaabb2b;
45imm32 r6, 0xfcccdd2d;
46imm32 r7, 0x0eeeffff;
47R0 = R1 -|+ R0;
48R1 = R1 -|+ R1;
49R2 = R1 -|+ R2;
50R3 = R1 -|+ R3;
51R4 = R1 -|+ R4;
52R5 = R1 -|+ R5;
53R6 = R1 -|+ R6;
54R7 = R1 -|+ R7;
55CHECKREG r0, 0x12223458;
56CHECKREG r1, 0x0000565A;
57CHECKREG r2, 0x4BBCAB7F;
58CHECKREG r3, 0x399ACD81;
59CHECKREG r4, 0x2778EF83;
60CHECKREG r5, 0x15561185;
61CHECKREG r6, 0x03343387;
62CHECKREG r7, 0xF1125659;
63
64imm32 r0, 0x416789ab;
65imm32 r1, 0x6289abcd;
66imm32 r2, 0x43445555;
67imm32 r3, 0x64667777;
68imm32 r4, 0x456789ab;
69imm32 r5, 0x6689abcd;
70imm32 r6, 0x47445555;
71imm32 r7, 0x68667777;
72R0 = R2 -|+ R0;
73R1 = R2 -|+ R1;
74R2 = R2 -|+ R2;
75R3 = R2 -|+ R3;
76R4 = R2 -|+ R4;
77R5 = R2 -|+ R5;
78R6 = R2 -|+ R6;
79R7 = R2 -|+ R7;
80CHECKREG r0, 0x01DDDF00;
81CHECKREG r1, 0xE0BB0122;
82CHECKREG r2, 0x0000AAAA;
83CHECKREG r3, 0x9B9A2221;
84CHECKREG r4, 0xBA993455;
85CHECKREG r5, 0x99775677;
86CHECKREG r6, 0xB8BCFFFF;
87CHECKREG r7, 0x979A2221;
88
89imm32 r0, 0x9567892b;
90imm32 r1, 0xa789ab2d;
91imm32 r2, 0xb4445525;
92imm32 r3, 0xc6667727;
93imm32 r0, 0x9567892b;
94imm32 r1, 0xa789ab2d;
95imm32 r2, 0xb4445525;
96imm32 r3, 0xc6667727;
97R0 = R3 -|+ R0;
98R1 = R3 -|+ R1;
99R2 = R3 -|+ R2;
100R3 = R3 -|+ R3;
101R4 = R3 -|+ R4;
102R5 = R3 -|+ R5;
103R6 = R3 -|+ R6;
104R7 = R3 -|+ R7;
105CHECKREG r4, 0x456722A3;
106CHECKREG r5, 0x668944C5;
107CHECKREG r6, 0x4744EE4D;
108CHECKREG r7, 0x6866106F;
109CHECKREG r4, 0x456722A3;
110CHECKREG r5, 0x668944C5;
111CHECKREG r6, 0x4744EE4D;
112CHECKREG r7, 0x6866106F;
113
114imm32 r0, 0x4537891b;
115imm32 r1, 0x6759ab2d;
116imm32 r2, 0x44555535;
117imm32 r3, 0x66665747;
118imm32 r4, 0x88789565;
119imm32 r5, 0xaa8abb5b;
120imm32 r6, 0xcc9cdd85;
121imm32 r7, 0xeeaeff9f;
122R0 = R4 -|+ R0;
123R1 = R4 -|+ R1;
124R2 = R4 -|+ R2;
125R3 = R4 -|+ R3;
126R4 = R4 -|+ R4;
127R5 = R4 -|+ R5;
128R6 = R4 -|+ R6;
129R7 = R4 -|+ R7;
130CHECKREG r0, 0x43411E80;
131CHECKREG r1, 0x211F4092;
132CHECKREG r2, 0x4423EA9A;
133CHECKREG r3, 0x2212ECAC;
134CHECKREG r4, 0x00002ACA;
135CHECKREG r5, 0x5576E625;
136CHECKREG r6, 0x3364084F;
137CHECKREG r7, 0x11522A69;
138
139imm32 r0, 0x456b89ab;
140imm32 r1, 0x69764bcd;
141imm32 r2, 0x49736564;
142imm32 r3, 0x61278394;
143imm32 r4, 0x98876439;
144imm32 r5, 0xaaaa0bbb;
145imm32 r6, 0xcccc1ddd;
146imm32 r7, 0x12346fff;
147R0 = R5 -|+ R0;
148R1 = R5 -|+ R1;
149R2 = R5 -|+ R2;
150R3 = R5 -|+ R3;
151R4 = R5 -|+ R4;
152R5 = R5 -|+ R5;
153R6 = R5 -|+ R6;
154R7 = R5 -|+ R7;
155CHECKREG r0, 0x653F9566;
156CHECKREG r1, 0x41345788;
157CHECKREG r2, 0x6137711F;
158CHECKREG r3, 0x49838F4F;
159CHECKREG r4, 0x12236FF4;
160CHECKREG r5, 0x00001776;
161CHECKREG r6, 0x33343553;
162CHECKREG r7, 0xEDCC8775;
163
164imm32 r0, 0x456739ab;
165imm32 r1, 0x67694bcd;
166imm32 r2, 0x03456755;
167imm32 r3, 0x66666777;
168imm32 r4, 0x12345699;
169imm32 r5, 0x45678b6b;
170imm32 r6, 0x043290d6;
171imm32 r7, 0x1234567f;
172R0 = R6 -|+ R0;
173R1 = R6 -|+ R1;
174R2 = R6 -|+ R2;
175R3 = R6 -|+ R3;
176R4 = R6 -|+ R4;
177R5 = R6 -|+ R5;
178R6 = R6 -|+ R6;
179R7 = R6 -|+ R7;
180CHECKREG r0, 0xBECBCA81;
181CHECKREG r1, 0x9CC9DCA3;
182CHECKREG r2, 0x00EDF82B;
183CHECKREG r3, 0x9DCCF84D;
184CHECKREG r4, 0xF1FEE76F;
185CHECKREG r5, 0xBECB1C41;
186CHECKREG r6, 0x000021AC;
187CHECKREG r7, 0xEDCC782B;
188
189imm32 r0, 0x476789ab;
190imm32 r1, 0x6779abcd;
191imm32 r2, 0x23456755;
192imm32 r3, 0x56789007;
193imm32 r4, 0x789ab799;
194imm32 r5, 0xaaaa0bbb;
195imm32 r6, 0x89ab1d7d;
196imm32 r7, 0xabcd2ff7;
197R0 = R7 -|+ R0;
198R1 = R7 -|+ R1;
199R2 = R7 -|+ R2;
200R3 = R7 -|+ R3;
201R4 = R7 -|+ R4;
202R5 = R7 -|+ R5;
203R6 = R7 -|+ R6;
204R7 = R7 -|+ R7;
205CHECKREG r0, 0x6466B9A2;
206CHECKREG r1, 0x4454DBC4;
207CHECKREG r2, 0x8888974C;
208CHECKREG r3, 0x5555BFFE;
209CHECKREG r4, 0x3333E790;
210CHECKREG r5, 0x01233BB2;
211CHECKREG r6, 0x22224D74;
212CHECKREG r7, 0x00005FEE;
213
214imm32 r0, 0x456739ab;
215imm32 r1, 0x67694bcd;
216imm32 r2, 0x03456755;
217imm32 r3, 0x66666777;
218imm32 r4, 0x12345699;
219imm32 r5, 0x45678b6b;
220imm32 r6, 0x043290d6;
221imm32 r7, 0x1234567f;
222R4 = R4 -|+ R7 (S);
223R5 = R5 -|+ R5 (CO);
224R2 = R6 -|+ R3 (SCO);
225R6 = R0 -|+ R4 (S);
226R0 = R1 -|+ R6 (S);
227R2 = R2 -|+ R1 (CO);
228R1 = R3 -|+ R0 (CO);
229R7 = R7 -|+ R4 (SCO);
230CHECKREG r0, 0x22027FFF;
231CHECKREG r1, 0xE7764464;
232CHECKREG r2, 0xE99990E4;
233CHECKREG r3, 0x66666777;
234CHECKREG r4, 0x00007FFF;
235CHECKREG r5, 0x16D60000;
236CHECKREG r6, 0x45677FFF;
237CHECKREG r7, 0x7FFF1234;
238
239imm32 r0, 0x476789ab;
240imm32 r1, 0x6779abcd;
241imm32 r2, 0x23456755;
242imm32 r3, 0x56789007;
243imm32 r4, 0x789ab799;
244imm32 r5, 0xaaaa0bbb;
245imm32 r6, 0x89ab1d7d;
246imm32 r7, 0xabcd2ff7;
247R3 = R4 -|+ R0 (S);
248R5 = R5 -|+ R1 (SCO);
249R2 = R2 -|+ R2 (S);
250R7 = R7 -|+ R3 (CO);
251R4 = R3 -|+ R4 (CO);
252R0 = R1 -|+ R5 (S);
253R1 = R0 -|+ R6 (SCO);
254R6 = R6 -|+ R7 (SCO);
255CHECKREG r0, 0x7FFF8000;
256CHECKREG r1, 0x9D7D7FFF;
257CHECKREG r2, 0x00007FFF;
258CHECKREG r3, 0x31338000;
259CHECKREG r4, 0x3799B899;
260CHECKREG r5, 0xB7888000;
261CHECKREG r6, 0x7FFFD9B4;
262CHECKREG r7, 0xAFF77A9A;
263
264pass
265