1//Original:/testcases/core/c_comp3op_dr_minus_dr/c_comp3op_dr_minus_dr.dsp
2// Spec Reference: comp3op dregs - dregs
3# mach: bfin
4
5.include "testutils.inc"
6	start
7
8
9
10
11imm32 r0, 0x01234567;
12imm32 r1, 0x89abcdef;
13imm32 r2, 0x56789abc;
14imm32 r3, 0xdef01234;
15imm32 r4, 0x23456899;
16imm32 r5, 0x78912345;
17imm32 r6, 0x98765432;
18imm32 r7, 0x12345678;
19R0 = R0 - R0;
20R1 = R0 - R1;
21R2 = R0 - R2;
22R3 = R0 - R3;
23R4 = R0 - R4;
24R5 = R0 - R5;
25R6 = R0 - R6;
26R7 = R0 - R7;
27CHECKREG r0, 0x00000000;
28CHECKREG r1, 0x76543211;
29CHECKREG r2, 0xA9876544;
30CHECKREG r3, 0x210FEDCC;
31CHECKREG r4, 0xDCBA9767;
32CHECKREG r5, 0x876EDCBB;
33CHECKREG r6, 0x6789ABCE;
34CHECKREG r7, 0xEDCBA988;
35
36imm32 r0, 0x01231567;
37imm32 r1, 0x89ab1def;
38imm32 r2, 0x56781abc;
39imm32 r3, 0xdef01234;
40imm32 r4, 0x23451899;
41imm32 r5, 0x78911345;
42imm32 r6, 0x98761432;
43imm32 r7, 0x12341678;
44R0 = R1 - R0;
45R1 = R1 - R1;
46R2 = R1 - R2;
47R3 = R1 - R3;
48R4 = R1 - R4;
49R5 = R1 - R5;
50R6 = R1 - R6;
51R7 = R1 - R7;
52CHECKREG r0, 0x88880888;
53CHECKREG r1, 0x00000000;
54CHECKREG r2, 0xA987E544;
55CHECKREG r3, 0x210FEDCC;
56CHECKREG r4, 0xDCBAE767;
57CHECKREG r5, 0x876EECBB;
58CHECKREG r6, 0x6789EBCE;
59CHECKREG r7, 0xEDCBE988;
60
61imm32 r0, 0x01234527;
62imm32 r1, 0x89abcd2f;
63imm32 r2, 0x56789a2c;
64imm32 r3, 0xdef01224;
65imm32 r4, 0x23456829;
66imm32 r5, 0x78912325;
67imm32 r6, 0x98765422;
68imm32 r7, 0x12345628;
69R0 = R2 - R0;
70R1 = R2 - R1;
71R2 = R2 - R2;
72R3 = R2 - R3;
73R4 = R2 - R4;
74R5 = R2 - R5;
75R6 = R2 - R6;
76R7 = R2 - R7;
77CHECKREG r0, 0x55555505;
78CHECKREG r1, 0xCCCCCCFD;
79CHECKREG r2, 0x00000000;
80CHECKREG r3, 0x210FEDDC;
81CHECKREG r4, 0xDCBA97D7;
82CHECKREG r5, 0x876EDCDB;
83CHECKREG r6, 0x6789ABDE;
84CHECKREG r7, 0xEDCBA9D8;
85
86imm32 r0, 0x01234563;
87imm32 r1, 0x89abcde3;
88imm32 r2, 0x56789ab3;
89imm32 r3, 0xdef01233;
90imm32 r4, 0x23456893;
91imm32 r5, 0x78912343;
92imm32 r6, 0x98765433;
93imm32 r7, 0x12345673;
94R0 = R3 - R0;
95R1 = R3 - R1;
96R2 = R3 - R2;
97R3 = R3 - R3;
98R4 = R3 - R4;
99R5 = R3 - R5;
100R6 = R3 - R6;
101R7 = R3 - R7;
102CHECKREG r0, 0xDDCCCCD0;
103CHECKREG r1, 0x55444450;
104CHECKREG r2, 0x88777780;
105CHECKREG r3, 0x00000000;
106CHECKREG r4, 0xDCBA976D;
107CHECKREG r5, 0x876EDCBD;
108CHECKREG r6, 0x6789ABCD;
109CHECKREG r7, 0xEDCBA98D;
110
111imm32 r0, 0x41234567;
112imm32 r1, 0x49abcdef;
113imm32 r2, 0x46789abc;
114imm32 r3, 0x4ef01234;
115imm32 r4, 0x43456899;
116imm32 r5, 0x48912345;
117imm32 r6, 0x48765432;
118imm32 r7, 0x42345678;
119R0 = R4 - R0;
120R1 = R4 - R1;
121R2 = R4 - R2;
122R3 = R4 - R3;
123R4 = R4 - R4;
124R5 = R4 - R5;
125R6 = R4 - R6;
126R7 = R4 - R7;
127CHECKREG r0, 0x02222332;
128CHECKREG r1, 0xF9999AAA;
129CHECKREG r2, 0xFCCCCDDD;
130CHECKREG r3, 0xF4555665;
131CHECKREG r4, 0x00000000;
132CHECKREG r5, 0xB76EDCBB;
133CHECKREG r6, 0xB789ABCE;
134CHECKREG r7, 0xBDCBA988;
135
136imm32 r0, 0x05234567;
137imm32 r1, 0x85abcdef;
138imm32 r2, 0x55789abc;
139imm32 r3, 0xd5f01234;
140imm32 r4, 0x25456899;
141imm32 r5, 0x75912345;
142imm32 r6, 0x95765432;
143imm32 r7, 0x15345678;
144R0 = R5 - R0;
145R1 = R5 - R1;
146R2 = R5 - R2;
147R3 = R5 - R3;
148R4 = R5 - R4;
149R5 = R5 - R5;
150R6 = R5 - R6;
151R7 = R5 - R7;
152CHECKREG r0, 0x706DDDDE;
153CHECKREG r1, 0xEFE55556;
154CHECKREG r2, 0x20188889;
155CHECKREG r3, 0x9FA11111;
156CHECKREG r4, 0x504BBAAC;
157CHECKREG r5, 0x00000000;
158CHECKREG r6, 0x6A89ABCE;
159CHECKREG r7, 0xEACBA988;
160
161imm32 r0, 0x01264567;
162imm32 r1, 0x89a6cdef;
163imm32 r2, 0x56769abc;
164imm32 r3, 0xdef61234;
165imm32 r4, 0x23466899;
166imm32 r5, 0x78962345;
167imm32 r6, 0x98765432;
168imm32 r7, 0x12365678;
169R0 = R6 - R0;
170R1 = R6 - R1;
171R2 = R6 - R2;
172R3 = R6 - R3;
173R4 = R6 - R4;
174R5 = R6 - R5;
175R6 = R6 - R6;
176R7 = R6 - R7;
177CHECKREG r0, 0x97500ECB;
178CHECKREG r1, 0x0ECF8643;
179CHECKREG r2, 0x41FFB976;
180CHECKREG r3, 0xB98041FE;
181CHECKREG r4, 0x752FEB99;
182CHECKREG r5, 0x1FE030ED;
183CHECKREG r6, 0x00000000;
184CHECKREG r7, 0xEDC9A988;
185
186imm32 r0, 0x01237567;
187imm32 r1, 0x89ab7def;
188imm32 r2, 0x56787abc;
189imm32 r3, 0xdef07234;
190imm32 r4, 0x23457899;
191imm32 r5, 0x78917345;
192imm32 r6, 0x98767432;
193imm32 r7, 0x12345678;
194R0 = R7 - R0;
195R1 = R7 - R1;
196R2 = R7 - R2;
197R3 = R7 - R3;
198R4 = R7 - R4;
199R5 = R7 - R5;
200R6 = R7 - R6;
201R7 = R7 - R7;
202CHECKREG r0, 0x1110E111;
203CHECKREG r1, 0x8888D889;
204CHECKREG r2, 0xBBBBDBBC;
205CHECKREG r3, 0x3343E444;
206CHECKREG r4, 0xEEEEDDDF;
207CHECKREG r5, 0x99A2E333;
208CHECKREG r6, 0x79BDE246;
209CHECKREG r7, 0x00000000;
210
211imm32 r0, 0x11234567;
212imm32 r1, 0x81abcdef;
213imm32 r2, 0x56189abc;
214imm32 r3, 0xdef11234;
215imm32 r4, 0x23451899;
216imm32 r5, 0x78912145;
217imm32 r6, 0x98765412;
218imm32 r7, 0x12345671;
219R0 = R1 - R0;
220R1 = R2 - R0;
221R2 = R3 - R0;
222R3 = R4 - R0;
223R4 = R5 - R0;
224R5 = R6 - R0;
225R6 = R7 - R0;
226R7 = R0 - R0;
227CHECKREG r0, 0x70888888;
228CHECKREG r1, 0xE5901234;
229CHECKREG r2, 0x6E6889AC;
230CHECKREG r3, 0xB2BC9011;
231CHECKREG r4, 0x080898BD;
232CHECKREG r5, 0x27EDCB8A;
233CHECKREG r6, 0xA1ABCDE9;
234CHECKREG r7, 0x00000000;
235
236imm32 r0, 0x01231567;
237imm32 r1, 0x29ab1def;
238imm32 r2, 0x52781abc;
239imm32 r3, 0xde201234;
240imm32 r4, 0x23421899;
241imm32 r5, 0x78912345;
242imm32 r6, 0x98761232;
243imm32 r7, 0x12341628;
244R0 = R2 - R1;
245R1 = R3 - R1;
246R2 = R4 - R1;
247R3 = R5 - R1;
248R4 = R6 - R1;
249R5 = R7 - R1;
250R6 = R0 - R1;
251R7 = R1 - R1;
252CHECKREG r0, 0x28CCFCCD;
253CHECKREG r1, 0xB474F445;
254CHECKREG r2, 0x6ECD2454;
255CHECKREG r3, 0xC41C2F00;
256CHECKREG r4, 0xE4011DED;
257CHECKREG r5, 0x5DBF21E3;
258CHECKREG r6, 0x74580888;
259CHECKREG r7, 0x00000000;
260
261imm32 r0, 0x03234527;
262imm32 r1, 0x893bcd2f;
263imm32 r2, 0x56739a2c;
264imm32 r3, 0x3ef03224;
265imm32 r4, 0x23456329;
266imm32 r5, 0x78312335;
267imm32 r6, 0x98735423;
268imm32 r7, 0x12343628;
269R0 = R4 - R2;
270R1 = R5 - R2;
271R2 = R6 - R2;
272R3 = R7 - R2;
273R4 = R0 - R2;
274R5 = R1 - R2;
275R6 = R2 - R2;
276R7 = R3 - R2;
277CHECKREG r0, 0xCCD1C8FD;
278CHECKREG r1, 0x21BD8909;
279CHECKREG r2, 0x41FFB9F7;
280CHECKREG r3, 0xD0347C31;
281CHECKREG r4, 0x8AD20F06;
282CHECKREG r5, 0xDFBDCF12;
283CHECKREG r6, 0x00000000;
284CHECKREG r7, 0x8E34C23A;
285
286imm32 r0, 0x04234563;
287imm32 r1, 0x894bcde3;
288imm32 r2, 0x56749ab3;
289imm32 r3, 0x4ef04233;
290imm32 r4, 0x24456493;
291imm32 r5, 0x78412344;
292imm32 r6, 0x98745434;
293imm32 r7, 0x12344673;
294R0 = R5 - R3;
295R1 = R6 - R3;
296R2 = R7 - R3;
297R3 = R0 - R3;
298R4 = R1 - R3;
299R5 = R2 - R3;
300R6 = R3 - R3;
301R7 = R4 - R3;
302CHECKREG r0, 0x2950E111;
303CHECKREG r1, 0x49841201;
304CHECKREG r2, 0xC3440440;
305CHECKREG r3, 0xDA609EDE;
306CHECKREG r4, 0x6F237323;
307CHECKREG r5, 0xE8E36562;
308CHECKREG r6, 0x00000000;
309CHECKREG r7, 0x94C2D445;
310
311imm32 r0, 0x41235567;
312imm32 r1, 0x49abc5ef;
313imm32 r2, 0x46789a5c;
314imm32 r3, 0x4ef01235;
315imm32 r4, 0x53456899;
316imm32 r5, 0x45912345;
317imm32 r6, 0x48565432;
318imm32 r7, 0x42355678;
319R0 = R6 - R4;
320R1 = R7 - R4;
321R2 = R0 - R4;
322R3 = R1 - R4;
323R4 = R2 - R4;
324R5 = R3 - R4;
325R6 = R4 - R4;
326R7 = R5 - R4;
327CHECKREG r0, 0xF510EB99;
328CHECKREG r1, 0xEEEFEDDF;
329CHECKREG r2, 0xA1CB8300;
330CHECKREG r3, 0x9BAA8546;
331CHECKREG r4, 0x4E861A67;
332CHECKREG r5, 0x4D246ADF;
333CHECKREG r6, 0x00000000;
334CHECKREG r7, 0xFE9E5078;
335
336imm32 r0, 0x05264567;
337imm32 r1, 0x85ab6def;
338imm32 r2, 0x657896bc;
339imm32 r3, 0xd6f01264;
340imm32 r4, 0x25656896;
341imm32 r5, 0x75962345;
342imm32 r6, 0x95766432;
343imm32 r7, 0x15345678;
344R0 = R7 - R5;
345R1 = R0 - R5;
346R2 = R1 - R5;
347R3 = R2 - R5;
348R4 = R3 - R5;
349R5 = R4 - R5;
350R6 = R5 - R5;
351R7 = R6 - R5;
352CHECKREG r0, 0x9F9E3333;
353CHECKREG r1, 0x2A080FEE;
354CHECKREG r2, 0xB471ECA9;
355CHECKREG r3, 0x3EDBC964;
356CHECKREG r4, 0xC945A61F;
357CHECKREG r5, 0x53AF82DA;
358CHECKREG r6, 0x00000000;
359CHECKREG r7, 0xAC507D26;
360
361imm32 r0, 0x01764567;
362imm32 r1, 0x89a7cdef;
363imm32 r2, 0x56767abc;
364imm32 r3, 0xdef61734;
365imm32 r4, 0x73466879;
366imm32 r5, 0x77962347;
367imm32 r6, 0x98765432;
368imm32 r7, 0x12375678;
369R0 = R7 - R6;
370R1 = R0 - R6;
371R2 = R1 - R6;
372R3 = R2 - R6;
373R4 = R3 - R6;
374R5 = R4 - R6;
375R6 = R5 - R6;
376R7 = R6 - R6;
377CHECKREG r0, 0x79C10246;
378CHECKREG r1, 0xE14AAE14;
379CHECKREG r2, 0x48D459E2;
380CHECKREG r3, 0xB05E05B0;
381CHECKREG r4, 0x17E7B17E;
382CHECKREG r5, 0x7F715D4C;
383CHECKREG r6, 0xE6FB091A;
384CHECKREG r7, 0x00000000;
385
386imm32 r0, 0x81238567;
387imm32 r1, 0x88ab78ef;
388imm32 r2, 0x56887a8c;
389imm32 r3, 0x8ef87238;
390imm32 r4, 0x28458899;
391imm32 r5, 0x78817845;
392imm32 r6, 0x98787482;
393imm32 r7, 0x12348678;
394R0 = R1 - R7;
395R1 = R2 - R7;
396R2 = R3 - R7;
397R3 = R4 - R7;
398R4 = R5 - R7;
399R5 = R6 - R7;
400R6 = R7 - R7;
401R7 = R0 - R7;
402CHECKREG r0, 0x7676F277;
403CHECKREG r1, 0x4453F414;
404CHECKREG r2, 0x7CC3EBC0;
405CHECKREG r3, 0x16110221;
406CHECKREG r4, 0x664CF1CD;
407CHECKREG r5, 0x8643EE0A;
408CHECKREG r6, 0x00000000;
409CHECKREG r7, 0x64426BFF;
410
411
412pass
413