1//Original:/testcases/core/c_comp3op_dr_mix/c_comp3op_dr_mix.dsp
2// Spec Reference: comp3op dregs mix
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, 0x02468ACE;
28CHECKREG r1, 0x789ABCDF;
29CHECKREG r2, 0x02408A8C;
30CHECKREG r3, 0xDEF69AFE;
31CHECKREG r4, 0x02440888;
32CHECKREG r5, 0x00000244;
33CHECKREG r6, 0x9A76DEFE;
34CHECKREG r7, 0x02040248;
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, 0x8ACE3356;
53CHECKREG r1, 0x00000000;
54CHECKREG r2, 0x00000000;
55CHECKREG r3, 0xDEF01234;
56CHECKREG r4, 0x00000000;
57CHECKREG r5, 0x00000000;
58CHECKREG r6, 0x98761432;
59CHECKREG r7, 0x00000000;
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, 0x579BDF53;
78CHECKREG r1, 0xCCCCCCFD;
79CHECKREG r2, 0x56789A2C;
80CHECKREG r3, 0xDEF89A2C;
81CHECKREG r4, 0x02400828;
82CHECKREG r5, 0x50100224;
83CHECKREG r6, 0xDE7EDE2E;
84CHECKREG r7, 0x12301228;
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, 0xE0135796;
103CHECKREG r1, 0x55444450;
104CHECKREG r2, 0x56701233;
105CHECKREG r3, 0xDEF01233;
106CHECKREG r4, 0x02400013;
107CHECKREG r5, 0x665EEEF0;
108CHECKREG r6, 0xDEF65633;
109CHECKREG r7, 0x12301233;
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, 0x8468AE00;
128CHECKREG r1, 0xF9999AAA;
129CHECKREG r2, 0x42400898;
130CHECKREG r3, 0x4FF57ABD;
131CHECKREG r4, 0x43456899;
132CHECKREG r5, 0x40012001;
133CHECKREG r6, 0x4B777CBB;
134CHECKREG r7, 0x42044018;
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, 0x7AB468AC;
153CHECKREG r1, 0xEFE55556;
154CHECKREG r2, 0x55100204;
155CHECKREG r3, 0xF5F13375;
156CHECKREG r4, 0x25012001;
157CHECKREG r5, 0x75912345;
158CHECKREG r6, 0xF5F77777;
159CHECKREG r7, 0x15100240;
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, 0x999C9999;
178CHECKREG r1, 0x0ECF8643;
179CHECKREG r2, 0x10761030;
180CHECKREG r3, 0xDEF65636;
181CHECKREG r4, 0x00464010;
182CHECKREG r5, 0x18160000;
183CHECKREG r6, 0x98765432;
184CHECKREG r7, 0x10365430;
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, 0x1357CBDF;
203CHECKREG r1, 0x8888D889;
204CHECKREG r2, 0x12305238;
205CHECKREG r3, 0xDEF4767C;
206CHECKREG r4, 0x02045018;
207CHECKREG r5, 0x99A2E333;
208CHECKREG r6, 0x9A76767A;
209CHECKREG r7, 0x12345678;
210
211
212imm32 r0, 0x00000001;
213imm32 r1, 0x00020003;
214imm32 r2, 0x00040005;
215imm32 r3, 0x00060007;
216imm32 r4, 0x00080009;
217imm32 r5, 0x000a000b;
218imm32 r6, 0x000c000d;
219imm32 r7, 0x000e000f;
220
221
222R0 = R1 + R2;
223R1 = R3 - R2;
224R2 = R4 & R3;
225R3 = R5 | R4;
226R4 = R6 & R7;
227CHECKREG r0, 0x00060008;
228CHECKREG r1, 0x00020002;
229CHECKREG r2, 0x00000001;
230CHECKREG r3, 0x000A000B;
231CHECKREG r4, 0x000C000D;
232CHECKREG r5, 0x000a000b;
233CHECKREG r6, 0x000c000d;
234CHECKREG r7, 0x000e000f;
235
236
237pass
238