1//Original:/proj/frio/dv/testcases/core/c_ccflag_pr_pr/c_ccflag_pr_pr.dsp
2// Spec Reference: ccflag pr-pr
3# mach: bfin
4
5.include "testutils.inc"
6	start
7
8INIT_P_REGS 0;
9INIT_R_REGS 0;
10
11
12//imm32 p0, 0x00110022;
13imm32 p1, 0x00110022;
14imm32 p2, 0x00330044;
15imm32 p3, 0x00550066;
16
17imm32 p4, 0x00770088;
18imm32 p5, 0x009900aa;
19imm32 fp, 0x00bb00cc;
20imm32 sp, 0x00000000;
21
22R0 = 0;
23ASTAT = R0;
24R4 = ASTAT;
25
26// positive preg-1 EQUAL to positive preg-2
27CC = P2 == P1;
28R5 = ASTAT;
29P5 = R5;
30CC = P2 < P1;
31R6 = ASTAT;
32CC = P2 <= P1;
33R7 = ASTAT;
34CHECKREG r4, 0x00000000;
35CHECKREG r5, 0x00000000;
36CHECKREG r6, 0x00000000;
37CHECKREG r7, 0x00000000;
38
39// positive preg-1 GREATER than positive preg-2
40CC = P3 == P2;
41R5 = ASTAT;
42CC = P3 < P2;
43R6 = ASTAT;
44CC = P3 <= P2;
45R7 = ASTAT;
46CHECKREG r5, 0x00000000;
47CHECKREG r6, 0x00000000;
48CHECKREG r7, 0x00000000;
49// positive preg-1 LESS than positive preg-2
50CC = P2 == P3;
51R5 = ASTAT;
52CC = P2 < P3;
53R6 = ASTAT;
54CC = P2 <= P3;
55R7 = ASTAT;
56CHECKREG r5, 0x00000000;
57CHECKREG r6, 0x00000020;
58CHECKREG r7, 0x00000020;
59
60//imm32 p0, 0x01230123;
61imm32 p1, 0x81230123;
62imm32 p2, 0x04560456;
63imm32 p3, 0x87890789;
64// operate on negative number
65R0 = 0;
66ASTAT = R0;
67R4 = ASTAT;
68
69// positive preg-1 GREATER than negative preg-2
70CC = P2 == P1;
71R5 = ASTAT;
72CC = P2 < P1;
73R6 = ASTAT;
74CC = P2 <= P1;
75R7 = ASTAT;
76CHECKREG r4, 0x00000000;
77CHECKREG r5, 0x00000000;
78CHECKREG r6, 0x00000000;
79CHECKREG r7, 0x00000000;
80
81// negative preg-1 LESS    than POSITIVE preg-2  small
82CC = P3 == P2;
83R5 = ASTAT;
84CC = P3 < P2;
85R6 = ASTAT;
86CC = P3 <= P2;
87R7 = ASTAT;
88CHECKREG r5, 0x00000000;
89CHECKREG r6, 0x00000020;
90CHECKREG r7, 0x00000020;
91
92// negative preg-1 GREATER than negative preg-2
93CC = P1 == P3;
94R5 = ASTAT;
95CC = P1 < P3;
96R6 = ASTAT;
97CC = P1 <= P3;
98R7 = ASTAT;
99CHECKREG r5, 0x00000000;
100CHECKREG r6, 0x00000020;
101CHECKREG r7, 0x00000020;
102
103// negative preg-1 LESS    than negative preg-2
104CC = P3 == P1;
105R5 = ASTAT;
106CC = P3 < P1;
107R6 = ASTAT;
108CC = P3 <= P1;
109R7 = ASTAT;
110CHECKREG r5, 0x00000000;
111CHECKREG r6, 0x00000000;
112CHECKREG r7, 0x00000000;
113
114
115//imm32 p0, 0x80230123;
116imm32 p1, 0x00230123;
117imm32 p2, 0x80560056;
118imm32 p3, 0x00890089;
119// operate on negative number
120R0 = 0;
121ASTAT = R0;
122R4 = ASTAT;
123
124// negative preg-1 LESS    than POSITIVE preg-2
125CC = P2 == P3;
126R5 = ASTAT;
127CC = P2 < P3;
128R6 = ASTAT;
129CC = P2 <= P3;
130R7 = ASTAT;
131CHECKREG r4, 0x00000000;
132CHECKREG r5, 0x00000000;  // overflow and carry but not negative
133CHECKREG r6, 0x00000020;  // cc overflow, carry and negative
134CHECKREG r7, 0x00000020;
135
136
137imm32 p4, 0x44444444;
138imm32 p5, 0x55555555;
139imm32 fp, 0x66666666;
140imm32 sp, 0x77777777;
141
142//imm32 p0, 0x00000000;
143imm32 p1, 0x11111111;
144imm32 p2, 0x00000000;
145imm32 p3, 0x33333333;
146
147ASTAT = R0;
148R3 = ASTAT;
149CHECKREG r3, 0x00000000;
150
151// positive preg-1 EQUAL to positive preg-2
152CC = P4 == P5;
153R0 = ASTAT;
154CC = P4 < P5;
155R1 = ASTAT;
156CC = P4 <= P5;
157R2 = ASTAT;
158CHECKREG r0, 0x00000000;
159CHECKREG r1, 0x00000020;
160CHECKREG r2, 0x00000020;
161
162// positive preg-1 GREATER than positive preg-2
163CC = SP == FP;
164R0 = ASTAT;
165CC = SP < FP;
166R1 = ASTAT;
167CC = SP <= FP;
168R2 = ASTAT;
169CHECKREG r0, 0x00000000;
170CHECKREG r1, 0x00000000;
171CHECKREG r2, 0x00000000;
172
173
174// positive preg-1 LESS than positive preg-2
175CC = FP == SP;
176R0 = ASTAT;
177CC = FP < SP;
178R1 = ASTAT;
179CC = FP <= SP;
180R2 = ASTAT;
181CHECKREG r0, 0x00000000;
182CHECKREG r1, 0x00000020;
183CHECKREG r2, 0x00000020;
184
185imm32 p4, 0x01230123;
186imm32 p5, 0x81230123;
187imm32 fp, 0x04560456;
188imm32 sp, 0x87890789;
189// operate on negative number
190R0 = 0;
191ASTAT = R0;
192R3 = ASTAT; // nop;
193CHECKREG r3, 0x00000000;
194
195// positive preg-1 GREATER than negative preg-2
196CC = P4 == P5;
197R1 = ASTAT;
198CC = P4 < P5;
199R2 = ASTAT;
200CC = P4 <= P5;
201R3 = ASTAT;
202CHECKREG r1, 0x00000000;
203CHECKREG r2, 0x00000000;
204CHECKREG r3, 0x00000000;
205
206// negative preg-1 LESS    than POSITIVE preg-2  small
207CC = SP == FP;
208R0 = ASTAT;
209CC = SP < FP;
210R1 = ASTAT;
211CC = SP <= FP;
212R2 = ASTAT;
213CHECKREG r0, 0x00000000;
214CHECKREG r1, 0x00000020;
215CHECKREG r2, 0x00000020;
216
217// negative preg-1 GREATER than negative preg-2
218CC = P5 == SP;
219R0 = ASTAT;
220CC = P5 < SP;
221R1 = ASTAT;
222CC = P5 <= SP;
223R2 = ASTAT;
224CHECKREG r0, 0x00000000;
225CHECKREG r1, 0x00000020;
226CHECKREG r2, 0x00000020;
227
228// negative preg-1 LESS    than negative preg-2
229CC = SP == P5;
230R1 = ASTAT;
231CC = SP < P5;
232R2 = ASTAT;
233CC = SP <= P5;
234R3 = ASTAT;
235CHECKREG r1, 0x00000000;
236CHECKREG r2, 0x00000000;
237CHECKREG r3, 0x00000000;
238
239
240imm32 p4, 0x80230123;
241imm32 p5, 0x00230123;
242imm32 fp, 0x80560056;
243imm32 sp, 0x00890089;
244// operate on negative number
245P3 = 0;
246ASTAT = P3;
247R0 = ASTAT;
248
249// negative preg-1 LESS    than POSITIVE preg-2
250CC = R6 == R7;
251R1 = ASTAT;
252CC = R6 < R7;
253R2 = ASTAT;
254CC = R6 <= R7;
255R3 = ASTAT;
256CHECKREG r0, 0x00000000;
257CHECKREG r1, 0x00001025;  // overflow and carry but not negative
258CHECKREG r2, 0x00001005;  // cc overflow, carry and negative
259CHECKREG r3, 0x00001025;
260
261
262pass;
263