1# frv testcase for cldq @($GRi,$GRj),$GRk,$CCi,$cond
2# mach: frv
3# as(frv): -mcpu=frv
4
5	.include "testutils.inc"
6
7	start
8
9	.global cldq
10cldq:
11	set_spr_immed	0x1b1b,cccr
12
13	set_mem_limmed	0xdead,0xbeef,sp
14	inc_gr_immed	-4,sp
15	set_mem_limmed	0xbeef,0xdead,sp
16	inc_gr_immed	-4,sp
17	set_mem_limmed	0x1234,0x5678,sp
18	inc_gr_immed	-4,sp
19	set_mem_limmed	0x9abc,0xdef0,sp
20	set_gr_limmed	0xdead,0xbeef,gr8
21	set_gr_limmed	0xbeef,0xdead,gr9
22	set_gr_limmed	0x1234,0x5678,gr10
23	set_gr_limmed	0x9abc,0xdef0,gr11
24
25	set_gr_immed	0,gr7
26	cldq 		@(sp,gr7),gr8,cc0,1
27	test_gr_limmed	0x9abc,0xdef0,gr8
28	test_gr_limmed	0x1234,0x5678,gr9
29	test_gr_limmed	0xbeef,0xdead,gr10
30	test_gr_limmed	0xdead,0xbeef,gr11
31
32	set_gr_limmed	0xdead,0xbeef,gr8
33	set_gr_limmed	0xbeef,0xdead,gr9
34	set_gr_limmed	0x1234,0x5678,gr10
35	set_gr_limmed	0x9abc,0xdef0,gr11
36	inc_gr_immed	-16,sp
37	set_gr_immed	16,gr7
38	cldq 		@(sp,gr7),gr8,cc0,1
39	test_gr_limmed	0x9abc,0xdef0,gr8
40	test_gr_limmed	0x1234,0x5678,gr9
41	test_gr_limmed	0xbeef,0xdead,gr10
42	test_gr_limmed	0xdead,0xbeef,gr11
43
44	set_gr_limmed	0xdead,0xbeef,gr8
45	set_gr_limmed	0xbeef,0xdead,gr9
46	set_gr_limmed	0x1234,0x5678,gr10
47	set_gr_limmed	0x9abc,0xdef0,gr11
48	inc_gr_immed	32,sp
49	set_gr_immed	-16,gr7
50	cldq 		@(sp,gr7),gr8,cc4,1
51	test_gr_limmed	0x9abc,0xdef0,gr8
52	test_gr_limmed	0x1234,0x5678,gr9
53	test_gr_limmed	0xbeef,0xdead,gr10
54	test_gr_limmed	0xdead,0xbeef,gr11
55
56	inc_gr_immed	-4,sp
57	set_mem_limmed	0xdead,0xbeef,sp
58	inc_gr_immed	-4,sp
59	set_mem_limmed	0xbeef,0xdead,sp
60	inc_gr_immed	-4,sp
61	set_mem_limmed	0x1234,0x5678,sp
62	inc_gr_immed	-4,sp
63	set_mem_limmed	0x9abc,0xdef0,sp
64	set_gr_limmed	0xdead,0xbeef,gr8
65	set_gr_limmed	0xbeef,0xdead,gr9
66	set_gr_limmed	0x1234,0x5678,gr10
67	set_gr_limmed	0x9abc,0xdef0,gr11
68
69	set_gr_immed	0,gr7
70	cldq 		@(sp,gr7),gr8,cc0,0
71	test_gr_limmed	0xdead,0xbeef,gr8
72	test_gr_limmed	0xbeef,0xdead,gr9
73	test_gr_limmed	0x1234,0x5678,gr10
74	test_gr_limmed	0x9abc,0xdef0,gr11
75
76	set_gr_limmed	0xdead,0xbeef,gr8
77	set_gr_limmed	0xbeef,0xdead,gr9
78	set_gr_limmed	0x1234,0x5678,gr10
79	set_gr_limmed	0x9abc,0xdef0,gr11
80	inc_gr_immed	-16,sp
81	set_gr_immed	16,gr7
82	cldq 		@(sp,gr7),gr8,cc0,0
83	test_gr_limmed	0xdead,0xbeef,gr8
84	test_gr_limmed	0xbeef,0xdead,gr9
85	test_gr_limmed	0x1234,0x5678,gr10
86	test_gr_limmed	0x9abc,0xdef0,gr11
87
88	set_gr_limmed	0xdead,0xbeef,gr8
89	set_gr_limmed	0xbeef,0xdead,gr9
90	set_gr_limmed	0x1234,0x5678,gr10
91	set_gr_limmed	0x9abc,0xdef0,gr11
92	inc_gr_immed	32,sp
93	set_gr_immed	-16,gr7
94	cldq 		@(sp,gr7),gr8,cc4,0
95	test_gr_limmed	0xdead,0xbeef,gr8
96	test_gr_limmed	0xbeef,0xdead,gr9
97	test_gr_limmed	0x1234,0x5678,gr10
98	test_gr_limmed	0x9abc,0xdef0,gr11
99
100	inc_gr_immed	-4,sp
101	set_mem_limmed	0xdead,0xbeef,sp
102	inc_gr_immed	-4,sp
103	set_mem_limmed	0xbeef,0xdead,sp
104	inc_gr_immed	-4,sp
105	set_mem_limmed	0x1234,0x5678,sp
106	inc_gr_immed	-4,sp
107	set_mem_limmed	0x9abc,0xdef0,sp
108	set_gr_limmed	0xdead,0xbeef,gr8
109	set_gr_limmed	0xbeef,0xdead,gr9
110	set_gr_limmed	0x1234,0x5678,gr10
111	set_gr_limmed	0x9abc,0xdef0,gr11
112
113	set_gr_immed	0,gr7
114	cldq 		@(sp,gr7),gr8,cc1,0
115	test_gr_limmed	0x9abc,0xdef0,gr8
116	test_gr_limmed	0x1234,0x5678,gr9
117	test_gr_limmed	0xbeef,0xdead,gr10
118	test_gr_limmed	0xdead,0xbeef,gr11
119
120	set_gr_limmed	0xdead,0xbeef,gr8
121	set_gr_limmed	0xbeef,0xdead,gr9
122	set_gr_limmed	0x1234,0x5678,gr10
123	set_gr_limmed	0x9abc,0xdef0,gr11
124	inc_gr_immed	-16,sp
125	set_gr_immed	16,gr7
126	cldq 		@(sp,gr7),gr8,cc1,0
127	test_gr_limmed	0x9abc,0xdef0,gr8
128	test_gr_limmed	0x1234,0x5678,gr9
129	test_gr_limmed	0xbeef,0xdead,gr10
130	test_gr_limmed	0xdead,0xbeef,gr11
131
132	set_gr_limmed	0xdead,0xbeef,gr8
133	set_gr_limmed	0xbeef,0xdead,gr9
134	set_gr_limmed	0x1234,0x5678,gr10
135	set_gr_limmed	0x9abc,0xdef0,gr11
136	inc_gr_immed	32,sp
137	set_gr_immed	-16,gr7
138	cldq 		@(sp,gr7),gr8,cc5,0
139	test_gr_limmed	0x9abc,0xdef0,gr8
140	test_gr_limmed	0x1234,0x5678,gr9
141	test_gr_limmed	0xbeef,0xdead,gr10
142	test_gr_limmed	0xdead,0xbeef,gr11
143
144	inc_gr_immed	-4,sp
145	set_mem_limmed	0xdead,0xbeef,sp
146	inc_gr_immed	-4,sp
147	set_mem_limmed	0xbeef,0xdead,sp
148	inc_gr_immed	-4,sp
149	set_mem_limmed	0x1234,0x5678,sp
150	inc_gr_immed	-4,sp
151	set_mem_limmed	0x9abc,0xdef0,sp
152	set_gr_limmed	0xdead,0xbeef,gr8
153	set_gr_limmed	0xbeef,0xdead,gr9
154	set_gr_limmed	0x1234,0x5678,gr10
155	set_gr_limmed	0x9abc,0xdef0,gr11
156
157	set_gr_immed	0,gr7
158	cldq 		@(sp,gr7),gr8,cc1,1
159	test_gr_limmed	0xdead,0xbeef,gr8
160	test_gr_limmed	0xbeef,0xdead,gr9
161	test_gr_limmed	0x1234,0x5678,gr10
162	test_gr_limmed	0x9abc,0xdef0,gr11
163
164	set_gr_limmed	0xdead,0xbeef,gr8
165	set_gr_limmed	0xbeef,0xdead,gr9
166	set_gr_limmed	0x1234,0x5678,gr10
167	set_gr_limmed	0x9abc,0xdef0,gr11
168	inc_gr_immed	-16,sp
169	set_gr_immed	16,gr7
170	cldq 		@(sp,gr7),gr8,cc1,1
171	test_gr_limmed	0xdead,0xbeef,gr8
172	test_gr_limmed	0xbeef,0xdead,gr9
173	test_gr_limmed	0x1234,0x5678,gr10
174	test_gr_limmed	0x9abc,0xdef0,gr11
175
176	set_gr_limmed	0xdead,0xbeef,gr8
177	set_gr_limmed	0xbeef,0xdead,gr9
178	set_gr_limmed	0x1234,0x5678,gr10
179	set_gr_limmed	0x9abc,0xdef0,gr11
180	inc_gr_immed	32,sp
181	set_gr_immed	-16,gr7
182	cldq 		@(sp,gr7),gr8,cc5,1
183	test_gr_limmed	0xdead,0xbeef,gr8
184	test_gr_limmed	0xbeef,0xdead,gr9
185	test_gr_limmed	0x1234,0x5678,gr10
186	test_gr_limmed	0x9abc,0xdef0,gr11
187
188	inc_gr_immed	-4,sp
189	set_mem_limmed	0xdead,0xbeef,sp
190	inc_gr_immed	-4,sp
191	set_mem_limmed	0xbeef,0xdead,sp
192	inc_gr_immed	-4,sp
193	set_mem_limmed	0x1234,0x5678,sp
194	inc_gr_immed	-4,sp
195	set_mem_limmed	0x9abc,0xdef0,sp
196	set_gr_limmed	0xdead,0xbeef,gr8
197	set_gr_limmed	0xbeef,0xdead,gr9
198	set_gr_limmed	0x1234,0x5678,gr10
199	set_gr_limmed	0x9abc,0xdef0,gr11
200
201	set_gr_immed	0,gr7
202	cldq 		@(sp,gr7),gr8,cc2,0
203	test_gr_limmed	0xdead,0xbeef,gr8
204	test_gr_limmed	0xbeef,0xdead,gr9
205	test_gr_limmed	0x1234,0x5678,gr10
206	test_gr_limmed	0x9abc,0xdef0,gr11
207
208	set_gr_limmed	0xdead,0xbeef,gr8
209	set_gr_limmed	0xbeef,0xdead,gr9
210	set_gr_limmed	0x1234,0x5678,gr10
211	set_gr_limmed	0x9abc,0xdef0,gr11
212	inc_gr_immed	-16,sp
213	set_gr_immed	16,gr7
214	cldq 		@(sp,gr7),gr8,cc2,1
215	test_gr_limmed	0xdead,0xbeef,gr8
216	test_gr_limmed	0xbeef,0xdead,gr9
217	test_gr_limmed	0x1234,0x5678,gr10
218	test_gr_limmed	0x9abc,0xdef0,gr11
219
220	set_gr_limmed	0xdead,0xbeef,gr8
221	set_gr_limmed	0xbeef,0xdead,gr9
222	set_gr_limmed	0x1234,0x5678,gr10
223	set_gr_limmed	0x9abc,0xdef0,gr11
224	inc_gr_immed	32,sp
225	set_gr_immed	-16,gr7
226	cldq 		@(sp,gr7),gr8,cc6,0
227	test_gr_limmed	0xdead,0xbeef,gr8
228	test_gr_limmed	0xbeef,0xdead,gr9
229	test_gr_limmed	0x1234,0x5678,gr10
230	test_gr_limmed	0x9abc,0xdef0,gr11
231
232	inc_gr_immed	-4,sp
233	set_mem_limmed	0xdead,0xbeef,sp
234	inc_gr_immed	-4,sp
235	set_mem_limmed	0xbeef,0xdead,sp
236	inc_gr_immed	-4,sp
237	set_mem_limmed	0x1234,0x5678,sp
238	inc_gr_immed	-4,sp
239	set_mem_limmed	0x9abc,0xdef0,sp
240	set_gr_limmed	0xdead,0xbeef,gr8
241	set_gr_limmed	0xbeef,0xdead,gr9
242	set_gr_limmed	0x1234,0x5678,gr10
243	set_gr_limmed	0x9abc,0xdef0,gr11
244
245	set_gr_immed	0,gr7
246	cldq 		@(sp,gr7),gr8,cc3,1
247	test_gr_limmed	0xdead,0xbeef,gr8
248	test_gr_limmed	0xbeef,0xdead,gr9
249	test_gr_limmed	0x1234,0x5678,gr10
250	test_gr_limmed	0x9abc,0xdef0,gr11
251
252	set_gr_limmed	0xdead,0xbeef,gr8
253	set_gr_limmed	0xbeef,0xdead,gr9
254	set_gr_limmed	0x1234,0x5678,gr10
255	set_gr_limmed	0x9abc,0xdef0,gr11
256	inc_gr_immed	-16,sp
257	set_gr_immed	16,gr7
258	cldq 		@(sp,gr7),gr8,cc3,0
259	test_gr_limmed	0xdead,0xbeef,gr8
260	test_gr_limmed	0xbeef,0xdead,gr9
261	test_gr_limmed	0x1234,0x5678,gr10
262	test_gr_limmed	0x9abc,0xdef0,gr11
263
264	set_gr_limmed	0xdead,0xbeef,gr8
265	set_gr_limmed	0xbeef,0xdead,gr9
266	set_gr_limmed	0x1234,0x5678,gr10
267	set_gr_limmed	0x9abc,0xdef0,gr11
268	inc_gr_immed	32,sp
269	set_gr_immed	-16,gr7
270	cldq 		@(sp,gr7),gr8,cc7,1
271	test_gr_limmed	0xdead,0xbeef,gr8
272	test_gr_limmed	0xbeef,0xdead,gr9
273	test_gr_limmed	0x1234,0x5678,gr10
274	test_gr_limmed	0x9abc,0xdef0,gr11
275
276	pass
277