1# frv testcase for mdcutssi $ACC40i,$s6,$FRk
2# mach: fr400 fr550
3
4	.include "testutils.inc"
5
6	start
7
8	.global mdcutssi
9mdcutssi:
10	set_accg_immed   0xffffffe7,accg0
11	set_acc_immed   0x89abcdef,acc0
12	set_accg_immed   0xffffffe7,accg1
13	set_acc_immed   0x89abcdef,acc1
14
15	mdcutssi      	acc0,0,fr10
16	test_fr_iimmed  0xe789abcd,fr10
17	test_fr_iimmed  0xe789abcd,fr11
18
19	mdcutssi      	acc0,1,fr10
20	test_fr_iimmed  0xcf13579b,fr10
21	test_fr_iimmed  0xcf13579b,fr11
22
23	mdcutssi      	acc0,2,fr10
24	test_fr_iimmed  0x9e26af37,fr10
25	test_fr_iimmed  0x9e26af37,fr11
26
27	mdcutssi      	acc0,3,fr10
28	test_fr_iimmed  0x80000000,fr10
29	test_fr_iimmed  0x80000000,fr11
30
31	mdcutssi      	acc0,4,fr10
32	test_fr_iimmed  0x80000000,fr10
33	test_fr_iimmed  0x80000000,fr11
34
35	mdcutssi      	acc0,5,fr10
36	test_fr_iimmed  0x80000000,fr10
37	test_fr_iimmed  0x80000000,fr11
38
39	mdcutssi      	acc0,6,fr10
40	test_fr_iimmed  0x80000000,fr10
41	test_fr_iimmed  0x80000000,fr11
42
43	mdcutssi      	acc0,7,fr10
44	test_fr_iimmed  0x80000000,fr10
45	test_fr_iimmed  0x80000000,fr11
46
47	mdcutssi      	acc0,8,fr10
48	test_fr_iimmed  0x80000000,fr10
49	test_fr_iimmed  0x80000000,fr11
50
51	mdcutssi      	acc0,9,fr10
52	test_fr_iimmed  0x80000000,fr10
53	test_fr_iimmed  0x80000000,fr11
54
55	mdcutssi      	acc0,10,fr10
56	test_fr_iimmed  0x80000000,fr10
57	test_fr_iimmed  0x80000000,fr11
58
59	mdcutssi      	acc0,11,fr10
60	test_fr_iimmed  0x80000000,fr10
61	test_fr_iimmed  0x80000000,fr11
62
63	mdcutssi      	acc0,12,fr10
64	test_fr_iimmed  0x80000000,fr10
65	test_fr_iimmed  0x80000000,fr11
66
67	mdcutssi      	acc0,13,fr10
68	test_fr_iimmed  0x80000000,fr10
69	test_fr_iimmed  0x80000000,fr11
70
71	mdcutssi      	acc0,14,fr10
72	test_fr_iimmed  0x80000000,fr10
73	test_fr_iimmed  0x80000000,fr11
74
75	mdcutssi      	acc0,15,fr10
76	test_fr_iimmed  0x80000000,fr10
77	test_fr_iimmed  0x80000000,fr11
78
79	mdcutssi      	acc0,16,fr10
80	test_fr_iimmed  0x80000000,fr10
81	test_fr_iimmed  0x80000000,fr11
82
83	mdcutssi      	acc0,17,fr10
84	test_fr_iimmed  0x80000000,fr10
85	test_fr_iimmed  0x80000000,fr11
86
87	mdcutssi      	acc0,18,fr10
88	test_fr_iimmed  0x80000000,fr10
89	test_fr_iimmed  0x80000000,fr11
90
91	mdcutssi      	acc0,19,fr10
92	test_fr_iimmed  0x80000000,fr10
93	test_fr_iimmed  0x80000000,fr11
94
95	mdcutssi      	acc0,20,fr10
96	test_fr_iimmed  0x80000000,fr10
97	test_fr_iimmed  0x80000000,fr11
98
99	mdcutssi      	acc0,21,fr10
100	test_fr_iimmed  0x80000000,fr10
101	test_fr_iimmed  0x80000000,fr11
102
103	mdcutssi      	acc0,22,fr10
104	test_fr_iimmed  0x80000000,fr10
105	test_fr_iimmed  0x80000000,fr11
106
107	mdcutssi      	acc0,23,fr10
108	test_fr_iimmed  0x80000000,fr10
109	test_fr_iimmed  0x80000000,fr11
110
111	mdcutssi      	acc0,24,fr10
112	test_fr_iimmed  0x80000000,fr10
113	test_fr_iimmed  0x80000000,fr11
114
115	mdcutssi      	acc0,25,fr10
116	test_fr_iimmed  0x80000000,fr10
117	test_fr_iimmed  0x80000000,fr11
118
119	mdcutssi      	acc0,26,fr10
120	test_fr_iimmed  0x80000000,fr10
121	test_fr_iimmed  0x80000000,fr11
122
123	mdcutssi      	acc0,27,fr10
124	test_fr_iimmed  0x80000000,fr10
125	test_fr_iimmed  0x80000000,fr11
126
127	mdcutssi      	acc0,28,fr10
128	test_fr_iimmed  0x80000000,fr10
129	test_fr_iimmed  0x80000000,fr11
130
131	mdcutssi      	acc0,29,fr10
132	test_fr_iimmed  0x80000000,fr10
133	test_fr_iimmed  0x80000000,fr11
134
135	mdcutssi      	acc0,30,fr10
136	test_fr_iimmed  0x80000000,fr10
137	test_fr_iimmed  0x80000000,fr11
138
139	mdcutssi      	acc0,31,fr10
140	test_fr_iimmed  0x80000000,fr10
141	test_fr_iimmed  0x80000000,fr11
142
143	mdcutssi      	acc0,-1,fr10
144	test_fr_iimmed  0xf3c4d5e6,fr10
145	test_fr_iimmed  0xf3c4d5e6,fr11
146
147	mdcutssi      	acc0,-2,fr10
148	test_fr_iimmed  0xf9e26af3,fr10
149	test_fr_iimmed  0xf9e26af3,fr11
150
151	mdcutssi      	acc0,-3,fr10
152	test_fr_iimmed  0xfcf13579,fr10
153	test_fr_iimmed  0xfcf13579,fr11
154
155	mdcutssi      	acc0,-4,fr10
156	test_fr_iimmed  0xfe789abc,fr10
157	test_fr_iimmed  0xfe789abc,fr11
158
159	mdcutssi      	acc0,-5,fr10
160	test_fr_iimmed  0xff3c4d5e,fr10
161	test_fr_iimmed  0xff3c4d5e,fr11
162
163	mdcutssi      	acc0,-6,fr10
164	test_fr_iimmed  0xff9e26af,fr10
165	test_fr_iimmed  0xff9e26af,fr11
166
167	mdcutssi      	acc0,-7,fr10
168	test_fr_iimmed  0xffcf1357,fr10
169	test_fr_iimmed  0xffcf1357,fr11
170
171	mdcutssi      	acc0,-8,fr10
172	test_fr_iimmed  0xffe789ab,fr10
173	test_fr_iimmed  0xffe789ab,fr11
174
175	mdcutssi      	acc0,-9,fr10
176	test_fr_iimmed  0xfff3c4d5,fr10
177	test_fr_iimmed  0xfff3c4d5,fr11
178
179	mdcutssi      	acc0,-10,fr10
180	test_fr_iimmed  0xfff9e26a,fr10
181	test_fr_iimmed  0xfff9e26a,fr11
182
183	mdcutssi      	acc0,-11,fr10
184	test_fr_iimmed  0xfffcf135,fr10
185	test_fr_iimmed  0xfffcf135,fr11
186
187	mdcutssi      	acc0,-12,fr10
188	test_fr_iimmed  0xfffe789a,fr10
189	test_fr_iimmed  0xfffe789a,fr11
190
191	mdcutssi      	acc0,-13,fr10
192	test_fr_iimmed  0xffff3c4d,fr10
193	test_fr_iimmed  0xffff3c4d,fr11
194
195	mdcutssi      	acc0,-14,fr10
196	test_fr_iimmed  0xffff9e26,fr10
197	test_fr_iimmed  0xffff9e26,fr11
198
199	mdcutssi      	acc0,-15,fr10
200	test_fr_iimmed  0xffffcf13,fr10
201	test_fr_iimmed  0xffffcf13,fr11
202
203	mdcutssi      	acc0,-16,fr10
204	test_fr_iimmed  0xffffe789,fr10
205	test_fr_iimmed  0xffffe789,fr11
206
207	mdcutssi      	acc0,-17,fr10
208	test_fr_iimmed  0xfffff3c4,fr10
209	test_fr_iimmed  0xfffff3c4,fr11
210
211	mdcutssi      	acc0,-18,fr10
212	test_fr_iimmed  0xfffff9e2,fr10
213	test_fr_iimmed  0xfffff9e2,fr11
214
215	mdcutssi      	acc0,-19,fr10
216	test_fr_iimmed  0xfffffcf1,fr10
217	test_fr_iimmed  0xfffffcf1,fr11
218
219	mdcutssi      	acc0,-20,fr10
220	test_fr_iimmed  0xfffffe78,fr10
221	test_fr_iimmed  0xfffffe78,fr11
222
223	mdcutssi      	acc0,-21,fr10
224	test_fr_iimmed  0xffffff3c,fr10
225	test_fr_iimmed  0xffffff3c,fr11
226
227	mdcutssi      	acc0,-22,fr10
228	test_fr_iimmed  0xffffff9e,fr10
229	test_fr_iimmed  0xffffff9e,fr11
230
231	mdcutssi      	acc0,-23,fr10
232	test_fr_iimmed  0xffffffcf,fr10
233	test_fr_iimmed  0xffffffcf,fr11
234
235	mdcutssi      	acc0,-24,fr10
236	test_fr_iimmed  0xffffffe7,fr10
237	test_fr_iimmed  0xffffffe7,fr11
238
239	mdcutssi      	acc0,-25,fr10
240	test_fr_iimmed  0xfffffff3,fr10
241	test_fr_iimmed  0xfffffff3,fr11
242
243	mdcutssi      	acc0,-26,fr10
244	test_fr_iimmed  0xfffffff9,fr10
245	test_fr_iimmed  0xfffffff9,fr11
246
247	mdcutssi      	acc0,-27,fr10
248	test_fr_iimmed  0xfffffffc,fr10
249	test_fr_iimmed  0xfffffffc,fr11
250
251	mdcutssi      	acc0,-28,fr10
252	test_fr_iimmed  0xfffffffe,fr10
253	test_fr_iimmed  0xfffffffe,fr11
254
255	mdcutssi      	acc0,-29,fr10
256	test_fr_iimmed  0xffffffff,fr10
257	test_fr_iimmed  0xffffffff,fr11
258
259	mdcutssi      	acc0,-30,fr10
260	test_fr_iimmed  0xffffffff,fr10
261	test_fr_iimmed  0xffffffff,fr11
262
263	mdcutssi      	acc0,-31,fr10
264	test_fr_iimmed  0xffffffff,fr10
265	test_fr_iimmed  0xffffffff,fr11
266
267	mdcutssi      	acc0,-32,fr10
268	test_fr_iimmed  0xffffffff,fr10
269	test_fr_iimmed  0xffffffff,fr11
270
271	set_accg_immed   0xffffff67,accg0
272	set_acc_immed   0x89abcdef,acc0
273	set_accg_immed   0xffffff67,accg1
274	set_acc_immed   0x89abcdef,acc1
275
276	mdcutssi      	acc0,-1,fr10
277	test_fr_iimmed  0x33c4d5e6,fr10
278	test_fr_iimmed  0x33c4d5e6,fr11
279
280	mdcutssi      	acc0,-2,fr10
281	test_fr_iimmed  0x19e26af3,fr10
282	test_fr_iimmed  0x19e26af3,fr11
283
284	mdcutssi      	acc0,-3,fr10
285	test_fr_iimmed  0x0cf13579,fr10
286	test_fr_iimmed  0x0cf13579,fr11
287
288	mdcutssi      	acc0,-4,fr10
289	test_fr_iimmed  0x06789abc,fr10
290	test_fr_iimmed  0x06789abc,fr11
291
292	mdcutssi      	acc0,-5,fr10
293	test_fr_iimmed  0x033c4d5e,fr10
294	test_fr_iimmed  0x033c4d5e,fr11
295
296	mdcutssi      	acc0,-6,fr10
297	test_fr_iimmed  0x019e26af,fr10
298	test_fr_iimmed  0x019e26af,fr11
299
300	mdcutssi      	acc0,-7,fr10
301	test_fr_iimmed  0x00cf1357,fr10
302	test_fr_iimmed  0x00cf1357,fr11
303
304	mdcutssi      	acc0,-8,fr10
305	test_fr_iimmed  0x006789ab,fr10
306	test_fr_iimmed  0x006789ab,fr11
307
308	mdcutssi      	acc0,-9,fr10
309	test_fr_iimmed  0x0033c4d5,fr10
310	test_fr_iimmed  0x0033c4d5,fr11
311
312	mdcutssi      	acc0,-10,fr10
313	test_fr_iimmed  0x0019e26a,fr10
314	test_fr_iimmed  0x0019e26a,fr11
315
316	mdcutssi      	acc0,-11,fr10
317	test_fr_iimmed  0x000cf135,fr10
318	test_fr_iimmed  0x000cf135,fr11
319
320	mdcutssi      	acc0,-12,fr10
321	test_fr_iimmed  0x0006789a,fr10
322	test_fr_iimmed  0x0006789a,fr11
323
324	mdcutssi      	acc0,-13,fr10
325	test_fr_iimmed  0x00033c4d,fr10
326	test_fr_iimmed  0x00033c4d,fr11
327
328	mdcutssi      	acc0,-14,fr10
329	test_fr_iimmed  0x00019e26,fr10
330	test_fr_iimmed  0x00019e26,fr11
331
332	mdcutssi      	acc0,-15,fr10
333	test_fr_iimmed  0x0000cf13,fr10
334	test_fr_iimmed  0x0000cf13,fr11
335
336	mdcutssi      	acc0,-16,fr10
337	test_fr_iimmed  0x00006789,fr10
338	test_fr_iimmed  0x00006789,fr11
339
340	mdcutssi      	acc0,-17,fr10
341	test_fr_iimmed  0x000033c4,fr10
342	test_fr_iimmed  0x000033c4,fr11
343
344	mdcutssi      	acc0,-18,fr10
345	test_fr_iimmed  0x000019e2,fr10
346	test_fr_iimmed  0x000019e2,fr11
347
348	mdcutssi      	acc0,-19,fr10
349	test_fr_iimmed  0x00000cf1,fr10
350	test_fr_iimmed  0x00000cf1,fr11
351
352	mdcutssi      	acc0,-20,fr10
353	test_fr_iimmed  0x00000678,fr10
354	test_fr_iimmed  0x00000678,fr11
355
356	mdcutssi      	acc0,-21,fr10
357	test_fr_iimmed  0x0000033c,fr10
358	test_fr_iimmed  0x0000033c,fr11
359
360	mdcutssi      	acc0,-22,fr10
361	test_fr_iimmed  0x0000019e,fr10
362	test_fr_iimmed  0x0000019e,fr11
363
364	mdcutssi      	acc0,-23,fr10
365	test_fr_iimmed  0x000000cf,fr10
366	test_fr_iimmed  0x000000cf,fr11
367
368	mdcutssi      	acc0,-24,fr10
369	test_fr_iimmed  0x00000067,fr10
370	test_fr_iimmed  0x00000067,fr11
371
372	mdcutssi      	acc0,-25,fr10
373	test_fr_iimmed  0x00000033,fr10
374	test_fr_iimmed  0x00000033,fr11
375
376	mdcutssi      	acc0,-26,fr10
377	test_fr_iimmed  0x00000019,fr10
378	test_fr_iimmed  0x00000019,fr11
379
380	mdcutssi      	acc0,-27,fr10
381	test_fr_iimmed  0x0000000c,fr10
382	test_fr_iimmed  0x0000000c,fr11
383
384	mdcutssi      	acc0,-28,fr10
385	test_fr_iimmed  0x00000006,fr10
386	test_fr_iimmed  0x00000006,fr11
387
388	mdcutssi      	acc0,-29,fr10
389	test_fr_iimmed  0x00000003,fr10
390	test_fr_iimmed  0x00000003,fr11
391
392	mdcutssi      	acc0,-30,fr10
393	test_fr_iimmed  0x00000001,fr10
394	test_fr_iimmed  0x00000001,fr11
395
396	mdcutssi      	acc0,-31,fr10
397	test_fr_iimmed  0x00000000,fr10
398	test_fr_iimmed  0x00000000,fr11
399
400	mdcutssi      	acc0,-32,fr10
401	test_fr_iimmed  0x00000000,fr10
402	test_fr_iimmed  0x00000000,fr11
403
404	; Examples from the customer
405	set_accg_immed   0xffffffff,accg0
406	set_acc_immed   0xffe00000,acc0
407	set_accg_immed   0xffffffff,accg1
408	set_acc_immed   0xffe00000,acc1
409
410	mdcutssi    	acc0,16,fr10
411	test_fr_iimmed  0xe0000000,fr10
412	test_fr_iimmed  0xe0000000,fr11
413
414	mdcutssi    	acc0,17,fr10
415	test_fr_iimmed  0xc0000000,fr10
416	test_fr_iimmed  0xc0000000,fr11
417
418	mdcutssi    	acc0,18,fr10
419	test_fr_iimmed  0x80000000,fr10
420	test_fr_iimmed  0x80000000,fr11
421
422	set_accg_immed   0,accg0
423	set_acc_immed   0x003fffff,acc0
424	set_accg_immed   0,accg1
425	set_acc_immed   0x003fffff,acc1
426
427	mdcutssi    	acc0,16,fr10
428	test_fr_iimmed  0x3fffff00,fr10
429	test_fr_iimmed  0x3fffff00,fr11
430
431	mdcutssi    	acc0,17,fr10
432	test_fr_iimmed  0x7ffffe00,fr10
433	test_fr_iimmed  0x7ffffe00,fr11
434
435	set_accg_immed   0x7f,accg0
436	set_acc_immed   0xffe00000,acc0
437	set_accg_immed   0x7f,accg1
438	set_acc_immed   0xffe00000,acc1
439
440	mdcutssi    	acc0,16,fr10
441	test_fr_iimmed  0x7fffffff,fr10		; saturated
442	test_fr_iimmed  0x7fffffff,fr11		; saturated
443
444	mdcutssi    	acc0,17,fr10
445	test_fr_iimmed  0x7fffffff,fr10		; saturated
446	test_fr_iimmed  0x7fffffff,fr11		; saturated
447
448	mdcutssi    	acc0,18,fr10
449	test_fr_iimmed  0x7fffffff,fr10		; saturated
450	test_fr_iimmed  0x7fffffff,fr11		; saturated
451
452	set_accg_immed   0x08,accg0
453	set_acc_immed   0x003fffff,acc0
454	set_accg_immed   0x08,accg1
455	set_acc_immed   0x003fffff,acc1
456
457	mdcutssi    	acc0,16,fr10
458	test_fr_iimmed  0x7fffffff,fr10		; saturated
459	test_fr_iimmed  0x7fffffff,fr11		; saturated
460
461	mdcutssi    	acc0,17,fr10
462	test_fr_iimmed  0x7fffffff,fr10		; saturated
463	test_fr_iimmed  0x7fffffff,fr11		; saturated
464
465	set_accg_immed   0xff,accg0
466	set_acc_immed   0xefe00000,acc0
467	set_accg_immed   0xff,accg1
468	set_acc_immed   0xefe00000,acc1
469
470	mdcutssi    	acc0,16,fr10
471	test_fr_iimmed  0x80000000,fr10		; saturated
472	test_fr_iimmed  0x80000000,fr11		; saturated
473
474	mdcutssi    	acc0,17,fr10
475	test_fr_iimmed  0x80000000,fr10		; saturated
476	test_fr_iimmed  0x80000000,fr11		; saturated
477
478	mdcutssi    	acc0,18,fr10
479	test_fr_iimmed  0x80000000,fr10		; saturated
480	test_fr_iimmed  0x80000000,fr11		; saturated
481
482	set_accg_immed   0x80,accg0
483	set_acc_immed   0x003fffff,acc0
484	set_accg_immed   0x80,accg1
485	set_acc_immed   0x003fffff,acc1
486
487	mdcutssi    	acc0,16,fr10
488	test_fr_iimmed  0x80000000,fr10		; saturated
489	test_fr_iimmed  0x80000000,fr11		; saturated
490
491	mdcutssi    	acc0,17,fr10
492	test_fr_iimmed  0x80000000,fr10		; saturated
493	test_fr_iimmed  0x80000000,fr11		; saturated
494
495	set_accg_immed   0xffffffaf,accg0
496	set_acc_immed   0x5a5a5a5a,acc0
497	set_accg_immed   0xffffffaf,accg1
498	set_acc_immed   0x5a5a5a5a,acc1
499
500	mdcutssi    	acc0,-4,fr10
501	test_fr_iimmed  0xfaf5a5a5,fr10
502	test_fr_iimmed  0xfaf5a5a5,fr11
503
504	set_accg_immed   0x0000002f,accg0
505	set_acc_immed   0x5a5a5a5a,acc0
506	set_accg_immed   0x0000002f,accg1
507	set_acc_immed   0x5a5a5a5a,acc1
508
509	mdcutssi    	acc0,-7,fr10
510	test_fr_iimmed  0x005eb4b4,fr10
511	test_fr_iimmed  0x005eb4b4,fr11
512
513	pass
514