1//Original:/testcases/core/c_comp3op_dr_and_dr/c_comp3op_dr_and_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, 0x01234567;
28CHECKREG r1, 0x01234567;
29CHECKREG r2, 0x00200024;
30CHECKREG r3, 0x00200024;
31CHECKREG r4, 0x01014001;
32CHECKREG r5, 0x00010145;
33CHECKREG r6, 0x00224422;
34CHECKREG r7, 0x00204460;
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, 0x01231567;
53CHECKREG r1, 0x89AB1DEF;
54CHECKREG r2, 0x002818AC;
55CHECKREG r3, 0x88A01024;
56CHECKREG r4, 0x01011889;
57CHECKREG r5, 0x08811145;
58CHECKREG r6, 0x88221422;
59CHECKREG r7, 0x00201468;
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, 0x00200024;
78CHECKREG r1, 0x0028882C;
79CHECKREG r2, 0x56789A2C;
80CHECKREG r3, 0x56701224;
81CHECKREG r4, 0x02400828;
82CHECKREG r5, 0x50100224;
83CHECKREG r6, 0x10701020;
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, 0x00200023;
103CHECKREG r1, 0x88A00023;
104CHECKREG r2, 0x56701233;
105CHECKREG r3, 0xDEF01233;
106CHECKREG r4, 0x02400013;
107CHECKREG r5, 0x58900203;
108CHECKREG r6, 0x98701033;
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, 0x41014001;
128CHECKREG r1, 0x41014889;
129CHECKREG r2, 0x42400898;
130CHECKREG r3, 0x42400010;
131CHECKREG r4, 0x43456899;
132CHECKREG r5, 0x40012001;
133CHECKREG r6, 0x40444010;
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, 0x05010145;
153CHECKREG r1, 0x05810145;
154CHECKREG r2, 0x55100204;
155CHECKREG r3, 0x55900204;
156CHECKREG r4, 0x25012001;
157CHECKREG r5, 0x75912345;
158CHECKREG r6, 0x15100000;
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, 0x00264422;
178CHECKREG r1, 0x88264422;
179CHECKREG r2, 0x10761030;
180CHECKREG r3, 0x98761030;
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, 0x00205460;
203CHECKREG r1, 0x00205468;
204CHECKREG r2, 0x12305238;
205CHECKREG r3, 0x12305230;
206CHECKREG r4, 0x02045018;
207CHECKREG r5, 0x10105240;
208CHECKREG r6, 0x10345430;
209CHECKREG r7, 0x12345678;
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, 0x01234567;
228CHECKREG r1, 0x00000024;
229CHECKREG r2, 0x00210024;
230CHECKREG r3, 0x01010001;
231CHECKREG r4, 0x00010145;
232CHECKREG r5, 0x00224402;
233CHECKREG r6, 0x00204461;
234CHECKREG r7, 0x01234567;
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, 0x002818AC;
253CHECKREG r1, 0x08201024;
254CHECKREG r2, 0x00001000;
255CHECKREG r3, 0x08000004;
256CHECKREG r4, 0x08201020;
257CHECKREG r5, 0x00201020;
258CHECKREG r6, 0x00201024;
259CHECKREG r7, 0x08201024;
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, 0x02410228;
278CHECKREG r1, 0x50310224;
279CHECKREG r2, 0x10731020;
280CHECKREG r3, 0x10301020;
281CHECKREG r4, 0x00410020;
282CHECKREG r5, 0x10310020;
283CHECKREG r6, 0x10731020;
284CHECKREG r7, 0x10301020;
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, 0x48400200;
303CHECKREG r1, 0x08704030;
304CHECKREG r2, 0x02304233;
305CHECKREG r3, 0x48400200;
306CHECKREG r4, 0x08400000;
307CHECKREG r5, 0x00000200;
308CHECKREG r6, 0x48400200;
309CHECKREG r7, 0x08400000;
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, 0x40444010;
328CHECKREG r1, 0x42054018;
329CHECKREG r2, 0x40444010;
330CHECKREG r3, 0x42054018;
331CHECKREG r4, 0x40444010;
332CHECKREG r5, 0x40044010;
333CHECKREG r6, 0x40444010;
334CHECKREG r7, 0x40044010;
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, 0x15140240;
353CHECKREG r1, 0x15140240;
354CHECKREG r2, 0x15140240;
355CHECKREG r3, 0x15140240;
356CHECKREG r4, 0x15140240;
357CHECKREG r5, 0x15140240;
358CHECKREG r6, 0x15140240;
359CHECKREG r7, 0x15140240;
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, 0x10365430;
378CHECKREG r1, 0x10365430;
379CHECKREG r2, 0x10365430;
380CHECKREG r3, 0x10365430;
381CHECKREG r4, 0x10365430;
382CHECKREG r5, 0x10365430;
383CHECKREG r6, 0x10365430;
384CHECKREG r7, 0x10365430;
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, 0x00200068;
403CHECKREG r1, 0x12000208;
404CHECKREG r2, 0x02300238;
405CHECKREG r3, 0x00048018;
406CHECKREG r4, 0x10000040;
407CHECKREG r5, 0x10300400;
408CHECKREG r6, 0x12348678;
409CHECKREG r7, 0x00200068;
410
411
412pass
413