1# frv testcase for candcc $GRi,$GRj,$GRk,$CCi,$cond
2# mach: all
3
4	.include "testutils.inc"
5
6	start
7
8	.global candcc
9candcc:
10	set_spr_immed	0x1b1b,cccr
11
12	set_gr_limmed  	0xaaaa,0xaaaa,gr7
13	set_gr_limmed  	0x5555,0x5555,gr8
14	set_icc         0x0b,0		; Set mask opposite of expected
15	candcc      	gr7,gr8,gr8,cc0,1
16	test_icc	0 1 1 1 icc0
17	test_gr_immed  	0,gr8
18
19	set_gr_limmed  	0xffff,0x0000,gr8
20	set_icc         0x04,0		; Set mask opposite of expected
21	candcc		gr7,gr8,gr8,cc0,1
22	test_icc	1 0 0 0 icc0
23	test_gr_limmed 	0xaaaa,0x0000,gr8
24
25	set_gr_limmed	0x0000,0xffff,gr8
26	set_icc         0x0d,0		; Set mask opposite of expected
27	candcc		gr7,gr8,gr8,cc4,1
28	test_icc	0 0 0 1 icc0
29	test_gr_limmed	0x0000,0xaaaa,gr8
30
31	set_gr_limmed  	0xaaaa,0xaaaa,gr7
32	set_gr_limmed  	0x5555,0x5555,gr8
33	set_icc         0x0b,0		; Set mask opposite of expected
34	candcc      	gr7,gr8,gr8,cc0,0
35	test_icc	1 0 1 1 icc0
36	test_gr_limmed 	0x5555,0x5555,gr8
37
38	set_gr_limmed  	0xffff,0x0000,gr8
39	set_icc         0x04,0		; Set mask opposite of expected
40	candcc		gr7,gr8,gr8,cc0,0
41	test_icc	0 1 0 0 icc0
42	test_gr_limmed 	0xffff,0x0000,gr8
43
44	set_gr_limmed	0x0000,0xffff,gr8
45	set_icc         0x0d,0		; Set mask opposite of expected
46	candcc		gr7,gr8,gr8,cc4,0
47	test_icc	1 1 0 1 icc0
48	test_gr_limmed	0x0000,0xffff,gr8
49
50	set_gr_limmed  	0xaaaa,0xaaaa,gr7
51	set_gr_limmed  	0x5555,0x5555,gr8
52	set_icc         0x0b,1		; Set mask opposite of expected
53	candcc      	gr7,gr8,gr8,cc1,0
54	test_icc	0 1 1 1 icc1
55	test_gr_immed  	0,gr8
56
57	set_gr_limmed  	0xffff,0x0000,gr8
58	set_icc         0x04,1		; Set mask opposite of expected
59	candcc		gr7,gr8,gr8,cc1,0
60	test_icc	1 0 0 0 icc1
61	test_gr_limmed 	0xaaaa,0x0000,gr8
62
63	set_gr_limmed	0x0000,0xffff,gr8
64	set_icc         0x0d,1		; Set mask opposite of expected
65	candcc		gr7,gr8,gr8,cc5,0
66	test_icc	0 0 0 1 icc1
67	test_gr_limmed	0x0000,0xaaaa,gr8
68
69	set_gr_limmed  	0xaaaa,0xaaaa,gr7
70	set_gr_limmed  	0x5555,0x5555,gr8
71	set_icc         0x0b,1		; Set mask opposite of expected
72	candcc      	gr7,gr8,gr8,cc1,1
73	test_icc	1 0 1 1 icc1
74	test_gr_limmed 	0x5555,0x5555,gr8
75
76	set_gr_limmed  	0xffff,0x0000,gr8
77	set_icc         0x04,1		; Set mask opposite of expected
78	candcc		gr7,gr8,gr8,cc1,1
79	test_icc	0 1 0 0 icc1
80	test_gr_limmed 	0xffff,0x0000,gr8
81
82	set_gr_limmed	0x0000,0xffff,gr8
83	set_icc         0x0d,1		; Set mask opposite of expected
84	candcc		gr7,gr8,gr8,cc5,1
85	test_icc	1 1 0 1 icc1
86	test_gr_limmed	0x0000,0xffff,gr8
87
88	set_gr_limmed  	0xaaaa,0xaaaa,gr7
89	set_gr_limmed  	0x5555,0x5555,gr8
90	set_icc         0x0b,2		; Set mask opposite of expected
91	candcc      	gr7,gr8,gr8,cc2,0
92	test_icc	1 0 1 1 icc2
93	test_gr_limmed 	0x5555,0x5555,gr8
94
95	set_gr_limmed  	0xffff,0x0000,gr8
96	set_icc         0x04,2		; Set mask opposite of expected
97	candcc		gr7,gr8,gr8,cc2,0
98	test_icc	0 1 0 0 icc2
99	test_gr_limmed 	0xffff,0x0000,gr8
100
101	set_gr_limmed	0x0000,0xffff,gr8
102	set_icc         0x0d,2		; Set mask opposite of expected
103	candcc		gr7,gr8,gr8,cc6,1
104	test_icc	1 1 0 1 icc2
105	test_gr_limmed	0x0000,0xffff,gr8
106
107	set_gr_limmed  	0xaaaa,0xaaaa,gr7
108	set_gr_limmed  	0x5555,0x5555,gr8
109	set_icc         0x0b,3		; Set mask opposite of expected
110	candcc      	gr7,gr8,gr8,cc3,0
111	test_icc	1 0 1 1 icc3
112	test_gr_limmed 	0x5555,0x5555,gr8
113
114	set_gr_limmed  	0xffff,0x0000,gr8
115	set_icc         0x04,3		; Set mask opposite of expected
116	candcc		gr7,gr8,gr8,cc3,0
117	test_icc	0 1 0 0 icc3
118	test_gr_limmed 	0xffff,0x0000,gr8
119
120	set_gr_limmed	0x0000,0xffff,gr8
121	set_icc         0x0d,3		; Set mask opposite of expected
122	candcc		gr7,gr8,gr8,cc7,1
123	test_icc	1 1 0 1 icc3
124	test_gr_limmed	0x0000,0xffff,gr8
125
126	pass
127