1# frv testcase for cldfu @($GRi,$GRj),$FRk,$CCi,$cond
2# mach: all
3
4	.include "testutils.inc"
5
6	start
7
8	.global cldfu
9cldfu:
10	set_spr_immed	0x1b1b,cccr
11	set_gr_gr	sp,gr21
12
13	set_gr_gr	sp,gr20
14	set_mem_limmed	0xdead,0xbeef,sp
15	set_fr_iimmed	0xbeef,0xdead,fr8
16
17	set_gr_immed	0,gr7
18	cldfu 		@(sp,gr7),fr8,cc0,1
19	test_fr_limmed	0xdead,0xbeef,fr8
20	test_gr_gr	sp,gr20
21
22	set_fr_iimmed	0xbeef,0xdead,fr8
23	inc_gr_immed	-4,sp
24	set_gr_immed	4,gr7
25	cldfu 		@(sp,gr7),fr8,cc0,1
26	test_fr_limmed	0xdead,0xbeef,fr8
27	test_gr_gr	sp,gr20
28
29	set_fr_iimmed	0xbeef,0xdead,fr8
30	inc_gr_immed	4,sp
31	set_gr_immed	-4,gr7
32	cldfu 		@(sp,gr7),fr8,cc4,1
33	test_fr_limmed	0xdead,0xbeef,fr8
34	test_gr_gr	sp,gr20
35
36	set_gr_gr	gr21,sp
37	set_gr_gr	sp,gr20
38	set_mem_limmed	0xdead,0xbeef,sp
39	set_fr_iimmed	0xbeef,0xdead,fr8
40
41	set_gr_immed	0,gr7
42	cldfu 		@(sp,gr7),fr8,cc0,0
43	test_fr_limmed	0xbeef,0xdead,fr8
44	test_gr_gr	sp,gr20
45
46	set_fr_iimmed	0xbeef,0xdead,fr8
47	inc_gr_immed	-4,gr20
48	inc_gr_immed	-4,sp
49	set_gr_immed	4,gr7
50	cldfu 		@(sp,gr7),fr8,cc0,0
51	test_fr_limmed	0xbeef,0xdead,fr8
52	test_gr_gr	sp,gr20
53
54	set_fr_iimmed	0xbeef,0xdead,fr8
55	inc_gr_immed	8,gr20
56	inc_gr_immed	8,sp
57	set_gr_immed	-4,gr7
58	cldfu 		@(sp,gr7),fr8,cc4,0
59	test_fr_limmed	0xbeef,0xdead,fr8
60	test_gr_gr	sp,gr20
61
62	set_gr_gr	gr21,sp
63	set_gr_gr	sp,gr20
64	set_mem_limmed	0xdead,0xbeef,sp
65	set_fr_iimmed	0xbeef,0xdead,fr8
66
67	set_gr_immed	0,gr7
68	cldfu 		@(sp,gr7),fr8,cc1,0
69	test_fr_limmed	0xdead,0xbeef,fr8
70	test_gr_gr	sp,gr20
71
72	set_fr_iimmed	0xbeef,0xdead,fr8
73	inc_gr_immed	-4,sp
74	set_gr_immed	4,gr7
75	cldfu 		@(sp,gr7),fr8,cc1,0
76	test_fr_limmed	0xdead,0xbeef,fr8
77	test_gr_gr	sp,gr20
78
79	set_fr_iimmed	0xbeef,0xdead,fr8
80	inc_gr_immed	4,sp
81	set_gr_immed	-4,gr7
82	cldfu 		@(sp,gr7),fr8,cc5,0
83	test_fr_limmed	0xdead,0xbeef,fr8
84	test_gr_gr	sp,gr20
85
86	set_gr_gr	gr21,sp
87	set_gr_gr	sp,gr20
88	set_mem_limmed	0xdead,0xbeef,sp
89	set_fr_iimmed	0xbeef,0xdead,fr8
90
91	set_gr_immed	0,gr7
92	cldfu 		@(sp,gr7),fr8,cc1,1
93	test_fr_limmed	0xbeef,0xdead,fr8
94	test_gr_gr	sp,gr20
95
96	set_fr_iimmed	0xbeef,0xdead,fr8
97	inc_gr_immed	-4,gr20
98	inc_gr_immed	-4,sp
99	set_gr_immed	4,gr7
100	cldfu 		@(sp,gr7),fr8,cc1,1
101	test_fr_limmed	0xbeef,0xdead,fr8
102	test_gr_gr	sp,gr20
103
104	set_fr_iimmed	0xbeef,0xdead,fr8
105	inc_gr_immed	8,gr20
106	inc_gr_immed	8,sp
107	set_gr_immed	-4,gr7
108	cldfu 		@(sp,gr7),fr8,cc5,1
109	test_fr_limmed	0xbeef,0xdead,fr8
110	test_gr_gr	sp,gr20
111
112	set_gr_gr	gr21,sp
113	set_gr_gr	sp,gr20
114	set_mem_limmed	0xdead,0xbeef,sp
115	set_fr_iimmed	0xbeef,0xdead,fr8
116
117	set_gr_immed	0,gr7
118	cldfu 		@(sp,gr7),fr8,cc2,0
119	test_fr_limmed	0xbeef,0xdead,fr8
120	test_gr_gr	sp,gr20
121
122	set_fr_iimmed	0xbeef,0xdead,fr8
123	inc_gr_immed	-4,gr20
124	inc_gr_immed	-4,sp
125	set_gr_immed	4,gr7
126	cldfu 		@(sp,gr7),fr8,cc2,1
127	test_fr_limmed	0xbeef,0xdead,fr8
128	test_gr_gr	sp,gr20
129
130	set_fr_iimmed	0xbeef,0xdead,fr8
131	inc_gr_immed	8,gr20
132	inc_gr_immed	8,sp
133	set_gr_immed	-4,gr7
134	cldfu 		@(sp,gr7),fr8,cc6,0
135	test_fr_limmed	0xbeef,0xdead,fr8
136	test_gr_gr	sp,gr20
137
138	set_gr_gr	gr21,sp
139	set_gr_gr	sp,gr20
140	set_mem_limmed	0xdead,0xbeef,sp
141	set_fr_iimmed	0xbeef,0xdead,fr8
142
143	set_gr_immed	0,gr7
144	cldfu 		@(sp,gr7),fr8,cc3,1
145	test_fr_limmed	0xbeef,0xdead,fr8
146	test_gr_gr	sp,gr20
147
148	set_fr_iimmed	0xbeef,0xdead,fr8
149	inc_gr_immed	-4,gr20
150	inc_gr_immed	-4,sp
151	set_gr_immed	4,gr7
152	cldfu 		@(sp,gr7),fr8,cc3,0
153	test_fr_limmed	0xbeef,0xdead,fr8
154	test_gr_gr	sp,gr20
155
156	set_fr_iimmed	0xbeef,0xdead,fr8
157	inc_gr_immed	8,gr20
158	inc_gr_immed	8,sp
159	set_gr_immed	-4,gr7
160	cldfu 		@(sp,gr7),fr8,cc7,1
161	test_fr_limmed	0xbeef,0xdead,fr8
162	test_gr_gr	sp,gr20
163
164	pass
165