1//Original:/testcases/core/c_ccflag_pr_imm3/c_ccflag_pr_imm3.dsp
2// Spec Reference: ccflag pr-imm3
3# mach: bfin
4
5.include "testutils.inc"
6	start
7
8
9INIT_R_REGS 0;
10
11//imm32 p0, 0x00000001;
12imm32 p1, 0x00000001;
13imm32 p2, 0x00000002;
14imm32 p3, 0x00000003;
15imm32 p4, 0x00000001;
16imm32 p5, 0x00000002;
17imm32 sp, 0x00000003;
18imm32 fp, 0x00000003;
19
20R0 = 0;
21ASTAT = R0;
22// positive dreg EQUAL to positive imm3
23CC = P1 == 1;
24R0 = ASTAT;
25CC = P1 < 1;
26R1 = ASTAT;
27CC = P1 <= 1;
28R2 = ASTAT;
29CC = P2 == 2;
30R3 = ASTAT;
31CC = P2 < 2;
32R4 = ASTAT;
33CC = P2 <= 2;
34R5 = ASTAT;
35CHECKREG r0, 0x00000020;
36CHECKREG r1, 0x00000000;
37CHECKREG r2, 0x00000020;
38CHECKREG r3, 0x00000020;
39CHECKREG r4, 0x00000000;
40CHECKREG r5, 0x00000020;
41
42CC = P3 == 3;
43R0 = ASTAT;
44CC = P3 < 3;
45R1 = ASTAT;
46CC = P3 <= 3;
47R2 = ASTAT;
48CC = P4 == 1;
49R3 = ASTAT;
50CC = P4 < 1;
51R4 = ASTAT;
52CC = P4 <= 1;
53R5 = ASTAT;
54CHECKREG r0, 0x00000020;
55CHECKREG r1, 0x00000000;
56CHECKREG r2, 0x00000020;
57CHECKREG r3, 0x00000020;
58CHECKREG r4, 0x00000000;
59CHECKREG r5, 0x00000020;
60
61CC = P5 == 2;
62R0 = ASTAT;
63CC = P5 < 2;
64R1 = ASTAT;
65CC = P5 <= 2;
66R2 = ASTAT;
67CC = SP == 3;
68R3 = ASTAT;
69CC = SP < 3;
70R4 = ASTAT;
71CC = SP <= 3;
72R5 = ASTAT;
73CHECKREG r0, 0x00000020;
74CHECKREG r1, 0x00000000;
75CHECKREG r2, 0x00000020;
76CHECKREG r3, 0x00000020;
77CHECKREG r4, 0x00000000;
78CHECKREG r5, 0x00000020;
79
80CC = FP == 3;
81R5 = ASTAT;
82CC = FP < 3;
83R6 = ASTAT;
84CC = FP <= 3;
85R7 = ASTAT;
86CHECKREG r5, 0x00000020;
87CHECKREG r6, 0x00000000;
88CHECKREG r7, 0x00000020;
89
90// positive dreg GREATER than positive imm3
91imm32 p1, 0x00000002;
92imm32 p2, 0x00000002;
93imm32 p3, 0x00000003;
94imm32 p4, 0x00000002;
95imm32 p5, 0x00000002;
96imm32 sp, 0x00000003;
97imm32 fp, 0x00000003;
98CC = P1 == 0;
99R0 = ASTAT;
100CC = P1 < 0;
101R1 = ASTAT;
102CC = P1 <= 0;
103R2 = ASTAT;
104CC = P2 == 1;
105R3 = ASTAT;
106CC = P2 < 1;
107R4 = ASTAT;
108CC = P2 <= 1;
109R5 = ASTAT;
110CHECKREG r0, 0x00000000;
111CHECKREG r1, 0x00000000;
112CHECKREG r2, 0x00000000;
113CHECKREG r3, 0x00000000;
114CHECKREG r4, 0x00000000;
115CHECKREG r5, 0x00000000;
116
117CC = P3 == 2;
118R0 = ASTAT;
119CC = P3 < 2;
120R1 = ASTAT;
121CC = P3 <= 2;
122R2 = ASTAT;
123CC = P4 == 0;
124R3 = ASTAT;
125CC = P4 < 0;
126R4 = ASTAT;
127CC = P4 <= 0;
128R5 = ASTAT;
129CHECKREG r0, 0x00000000;
130CHECKREG r1, 0x00000000;
131CHECKREG r2, 0x00000000;
132CHECKREG r3, 0x00000000;
133CHECKREG r4, 0x00000000;
134CHECKREG r5, 0x00000000;
135
136CC = P5 == 1;
137R0 = ASTAT;
138CC = P5 < 1;
139R1 = ASTAT;
140CC = P5 <= 1;
141R2 = ASTAT;
142CC = SP == 2;
143R3 = ASTAT;
144CC = SP < 2;
145R4 = ASTAT;
146CC = SP <= 2;
147R5 = ASTAT;
148CHECKREG r0, 0x00000000;
149CHECKREG r1, 0x00000000;
150CHECKREG r2, 0x00000000;
151CHECKREG r3, 0x00000000;
152CHECKREG r4, 0x00000000;
153CHECKREG r5, 0x00000000;
154
155CC = FP == 2;
156R5 = ASTAT;
157CC = FP < 2;
158R6 = ASTAT;
159CC = FP <= 2;
160R7 = ASTAT;
161CHECKREG r5, 0x00000000;
162CHECKREG r6, 0x00000000;
163CHECKREG r7, 0x00000000;
164
165// positive dreg LESS than positive imm3
166imm32 p1, 0x00000001;
167imm32 p2, 0x00000002;
168imm32 p3, 0x00000002;
169imm32 p4, 0x00000001;
170imm32 p5, 0x00000001;
171imm32 sp, 0x00000002;
172imm32 fp, 0x00000002;
173CC = P1 == 2;
174R0 = ASTAT;
175CC = P1 < 2;
176R1 = ASTAT;
177CC = P1 <= 2;
178R2 = ASTAT;
179CC = P2 == 3;
180R3 = ASTAT;
181CC = P2 < 3;
182R4 = ASTAT;
183CC = P2 <= 3;
184R5 = ASTAT;
185CHECKREG r0, 0x00000000;
186CHECKREG r1, 0x00000020;
187CHECKREG r2, 0x00000020;
188CHECKREG r3, 0x00000000;
189CHECKREG r4, 0x00000020;
190CHECKREG r5, 0x00000020;
191
192CC = P3 == 3;
193R0 = ASTAT;
194CC = P3 < 3;
195R1 = ASTAT;
196CC = P3 <= 3;
197R2 = ASTAT;
198CC = P4 == 3;
199R3 = ASTAT;
200CC = P4 < 3;
201R4 = ASTAT;
202CC = P4 <= 3;
203R5 = ASTAT;
204CHECKREG r0, 0x00000000;
205CHECKREG r1, 0x00000020;
206CHECKREG r2, 0x00000020;
207CHECKREG r3, 0x00000000;
208CHECKREG r4, 0x00000020;
209CHECKREG r5, 0x00000020;
210
211CC = P5 == 3;
212R0 = ASTAT;
213CC = P5 < 3;
214R1 = ASTAT;
215CC = P5 <= 3;
216R2 = ASTAT;
217CC = SP == 3;
218R3 = ASTAT;
219CC = SP < 3;
220R4 = ASTAT;
221CC = SP <= 3;
222R5 = ASTAT;
223CHECKREG r0, 0x00000000;
224CHECKREG r1, 0x00000020;
225CHECKREG r2, 0x00000020;
226CHECKREG r3, 0x00000000;
227CHECKREG r4, 0x00000020;
228CHECKREG r5, 0x00000020;
229
230CC = FP == 3;
231R5 = ASTAT;
232CC = FP < 3;
233R6 = ASTAT;
234CC = FP <= 3;
235R7 = ASTAT;
236CHECKREG r5, 0x00000000;
237CHECKREG r6, 0x00000020;
238CHECKREG r7, 0x00000020;
239
240
241// positive dreg GREATER than neg imm3
242CC = P1 == -1;
243R0 = ASTAT;
244CC = P1 < -1;
245R1 = ASTAT;
246CC = P1 <= -1;
247R2 = ASTAT;
248CC = P2 == -2;
249R3 = ASTAT;
250CC = P2 < -2;
251R4 = ASTAT;
252CC = P2 <= -2;
253R5 = ASTAT;
254CHECKREG r0, 0x00000000;
255CHECKREG r1, 0x00000000;
256CHECKREG r2, 0x00000000;
257CHECKREG r3, 0x00000000;
258CHECKREG r4, 0x00000000;
259CHECKREG r5, 0x00000000;
260
261CC = P3 == -3;
262R0 = ASTAT;
263CC = P3 < -3;
264R1 = ASTAT;
265CC = P3 <= -3;
266R2 = ASTAT;
267CC = P4 == -4;
268R3 = ASTAT;
269CC = P4 < -4;
270R4 = ASTAT;
271CC = P4 <= -4;
272R5 = ASTAT;
273CHECKREG r0, 0x00000000;
274CHECKREG r1, 0x00000000;
275CHECKREG r2, 0x00000000;
276CHECKREG r3, 0x00000000;
277CHECKREG r4, 0x00000000;
278CHECKREG r5, 0x00000000;
279
280CC = P5 == -1;
281R0 = ASTAT;
282CC = P5 < -1;
283R1 = ASTAT;
284CC = P5 <= -1;
285R2 = ASTAT;
286CC = SP == -2;
287R3 = ASTAT;
288CC = SP < -2;
289R4 = ASTAT;
290CC = SP <= -2;
291R5 = ASTAT;
292CHECKREG r0, 0x00000000;
293CHECKREG r1, 0x00000000;
294CHECKREG r2, 0x00000000;
295CHECKREG r3, 0x00000000;
296CHECKREG r4, 0x00000000;
297CHECKREG r5, 0x00000000;
298
299CC = FP == -4;
300R5 = ASTAT;
301CC = FP < -4;
302R6 = ASTAT;
303CC = FP <= -4;
304R7 = ASTAT;
305CHECKREG r5, 0x00000000;
306CHECKREG r6, 0x00000000;
307CHECKREG r7, 0x00000000;
308
309
310
311imm32 p1, -1;
312imm32 p2, -2;
313imm32 p3, -3;
314imm32 p4, -4;
315imm32 p5, -1;
316imm32 sp, -2;
317imm32 fp, -3;
318// negative dreg equal negative imm3
319CC = P1 == -1;
320R0 = ASTAT;
321CC = P1 < -1;
322R1 = ASTAT;
323CC = P1 <= -1;
324R2 = ASTAT;
325CC = P2 == -2;
326R3 = ASTAT;
327CC = P2 < -2;
328R4 = ASTAT;
329CC = P2 <= -2;
330R5 = ASTAT;
331CHECKREG r0, 0x00000020;
332CHECKREG r1, 0x00000000;
333CHECKREG r2, 0x00000020;
334CHECKREG r3, 0x00000020;
335CHECKREG r4, 0x00000000;
336CHECKREG r5, 0x00000020;
337
338CC = P3 == -3;
339R0 = ASTAT;
340CC = P3 < -3;
341R1 = ASTAT;
342CC = P3 <= -3;
343R2 = ASTAT;
344CC = P4 == -4;
345R3 = ASTAT;
346CC = P4 < -4;
347R4 = ASTAT;
348CC = P4 <= -4;
349R5 = ASTAT;
350CHECKREG r0, 0x00000020;
351CHECKREG r1, 0x00000000;
352CHECKREG r2, 0x00000020;
353CHECKREG r3, 0x00000020;
354CHECKREG r4, 0x00000000;
355CHECKREG r5, 0x00000020;
356
357CC = P5 == -1;
358R0 = ASTAT;
359CC = P5 < -1;
360R1 = ASTAT;
361CC = P5 <= -1;
362R2 = ASTAT;
363CC = SP == -2;
364R3 = ASTAT;
365CC = SP < -2;
366R4 = ASTAT;
367CC = SP <= -2;
368R5 = ASTAT;
369CHECKREG r0, 0x00000020;
370CHECKREG r1, 0x00000000;
371CHECKREG r2, 0x00000020;
372CHECKREG r3, 0x00000020;
373CHECKREG r4, 0x00000000;
374CHECKREG r5, 0x00000020;
375
376CC = FP == -3;
377R5 = ASTAT;
378CC = FP < -3;
379R6 = ASTAT;
380CC = FP <= -3;
381R7 = ASTAT;
382CHECKREG r5, 0x00000020;
383CHECKREG r6, 0x00000000;
384CHECKREG r7, 0x00000020;
385
386
387// negative dreg GREATER neg imm3
388imm32 p1, -1;
389imm32 p2, -1;
390imm32 p3, -2;
391imm32 p4, -3;
392imm32 p5, -1;
393imm32 sp, -2;
394imm32 fp, -3;
395CC = P1 == -2;
396R0 = ASTAT;
397CC = P1 < -2;
398R1 = ASTAT;
399CC = P1 <= -2;
400R2 = ASTAT;
401CC = P2 == -3;
402R3 = ASTAT;
403CC = P2 < -3;
404R4 = ASTAT;
405CC = P2 <= -3;
406R5 = ASTAT;
407CHECKREG r0, 0x00000000;
408CHECKREG r1, 0x00000000;
409CHECKREG r2, 0x00000000;
410CHECKREG r3, 0x00000000;
411CHECKREG r4, 0x00000000;
412CHECKREG r5, 0x00000000;
413
414CC = P3 == -4;
415R0 = ASTAT;
416CC = P3 < -4;
417R1 = ASTAT;
418CC = P3 <= -4;
419R2 = ASTAT;
420CC = P4 == -4;
421R3 = ASTAT;
422CC = P4 < -4;
423R4 = ASTAT;
424CC = P4 <= -4;
425R5 = ASTAT;
426CHECKREG r0, 0x00000000;
427CHECKREG r1, 0x00000000;
428CHECKREG r2, 0x00000000;
429CHECKREG r3, 0x00000000;
430CHECKREG r4, 0x00000000;
431CHECKREG r5, 0x00000000;
432
433CC = P5 == -2;
434R0 = ASTAT;
435CC = P5 < -2;
436R1 = ASTAT;
437CC = P5 <= -2;
438R2 = ASTAT;
439CC = SP == -3;
440R3 = ASTAT;
441CC = SP < -3;
442R4 = ASTAT;
443CC = SP <= -3;
444R5 = ASTAT;
445CHECKREG r0, 0x00000000;
446CHECKREG r1, 0x00000000;
447CHECKREG r2, 0x00000000;
448CHECKREG r3, 0x00000000;
449CHECKREG r4, 0x00000000;
450CHECKREG r5, 0x00000000;
451
452CC = FP == -4;
453R5 = ASTAT;
454CC = FP < -4;
455R6 = ASTAT;
456CC = FP <= -4;
457R7 = ASTAT;
458CHECKREG r5, 0x00000000;
459CHECKREG r6, 0x00000000;
460CHECKREG r7, 0x00000000;
461
462// negative dreg LESS than neg imm3
463imm32 p1, -2;
464imm32 p2, -2;
465imm32 p3, -3;
466imm32 p4, -3;
467imm32 p5, -4;
468imm32 sp, -4;
469imm32 fp, -4;
470imm32 p4, -4;
471CC = P1 == -1;
472R0 = ASTAT;
473CC = P1 < -1;
474R1 = ASTAT;
475CC = P1 <= -1;
476R2 = ASTAT;
477CC = P2 == -1;
478R3 = ASTAT;
479CC = P2 < -1;
480R4 = ASTAT;
481CC = P2 <= -1;
482R5 = ASTAT;
483CHECKREG r0, 0x00000000;
484CHECKREG r1, 0x00000020;
485CHECKREG r2, 0x00000020;
486CHECKREG r3, 0x00000000;
487CHECKREG r4, 0x00000020;
488CHECKREG r5, 0x00000020;
489
490CC = P3 == -2;
491R0 = ASTAT;
492CC = P3 < -2;
493R1 = ASTAT;
494CC = P3 <= -2;
495R2 = ASTAT;
496CC = P4 == -2;
497R3 = ASTAT;
498CC = P4 < -2;
499R4 = ASTAT;
500CC = P4 <= -2;
501R5 = ASTAT;
502CHECKREG r0, 0x00000000;
503CHECKREG r1, 0x00000020;
504CHECKREG r2, 0x00000020;
505CHECKREG r3, 0x00000000;
506CHECKREG r4, 0x00000020;
507CHECKREG r5, 0x00000020;
508
509CC = P5 == -3;
510R0 = ASTAT;
511CC = P5 < -3;
512R1 = ASTAT;
513CC = P5 <= -3;
514R2 = ASTAT;
515CC = SP == -3;
516R3 = ASTAT;
517CC = SP < -3;
518R4 = ASTAT;
519CC = SP <= -3;
520R5 = ASTAT;
521CHECKREG r0, 0x00000000;
522CHECKREG r1, 0x00000020;
523CHECKREG r2, 0x00000020;
524CHECKREG r3, 0x00000000;
525CHECKREG r4, 0x00000020;
526CHECKREG r5, 0x00000020;
527
528CC = FP == -3;
529R5 = ASTAT;
530CC = FP < -3;
531R6 = ASTAT;
532CC = FP <= -3;
533R7 = ASTAT;
534CHECKREG r5, 0x00000000;
535CHECKREG r6, 0x00000020;
536CHECKREG r7, 0x00000020;
537
538
539pass
540