1# frv testcase for cmcpxru $GRi,$GRj,$GRk,$CCi,$cond
2# mach: frv fr500 fr400
3
4	.include "testutils.inc"
5
6	start
7
8	.global cmcpxru
9cmcpxru:
10	set_spr_immed	0x1b1b,cccr
11
12	set_fr_iimmed  	4,2,fr7		; multiply small numbers
13	set_fr_iimmed  	5,3,fr8
14	cmcpxru      	fr7,fr8,acc0,cc0,1
15	test_accg_immed 	0,accg0
16	test_acc_immed 	14,acc0
17
18	set_fr_iimmed  	1,2,fr7		; multiply by 1
19	set_fr_iimmed  	3,1,fr8
20	cmcpxru      	fr7,fr8,acc0,cc0,1
21	test_accg_immed 	0,accg0
22	test_acc_immed 	1,acc0
23
24	set_fr_iimmed  	0,2,fr7		; multiply by 0
25	set_fr_iimmed  	2,0,fr8
26	cmcpxru      	fr7,fr8,acc0,cc0,1
27	test_accg_immed 	0,accg0
28	test_acc_immed 	0,acc0
29
30	set_fr_iimmed 	0x3fff,1,fr7	; 15 bit result
31	set_fr_iimmed  	2,0x0001,fr8
32	cmcpxru      	fr7,fr8,acc0,cc0,1
33	test_accg_immed 	0,accg0
34	test_acc_limmed	0x0000,0x7ffd,acc0
35
36	set_fr_iimmed  	0x4000,1,fr7	; 16 bit result
37	set_fr_iimmed  	4,0x0001,fr8
38	cmcpxru      	fr7,fr8,acc0,cc0,1
39	test_accg_immed 	0,accg0
40	test_acc_limmed	0x0000,0xffff,acc0
41
42	set_fr_iimmed  	0x8000,1,fr7	; 17 bit result
43	set_fr_iimmed  	4,0x0001,fr8
44	cmcpxru      	fr7,fr8,acc0,cc0,1
45	test_accg_immed 	0,accg0
46	test_acc_immed 	0x0001ffff,acc0
47
48	set_fr_iimmed  	0x7fff,0x0000,fr7	; max positive result
49	set_fr_iimmed  	0x7fff,0x7fff,fr8
50	cmcpxru      	fr7,fr8,acc0,cc4,1
51	test_accg_immed 	0,accg0
52	test_acc_immed 	0x3fff0001,acc0
53
54	set_fr_iimmed  	0x8000,0x8000,fr7	; max positive result
55	set_fr_iimmed  	0x8000,0x0000,fr8
56	cmcpxru      	fr7,fr8,acc0,cc4,1
57	test_accg_immed 	0,accg0
58	test_acc_limmed	0x4000,0x0000,acc0
59
60	set_fr_iimmed  	0xffff,0x0000,fr7	; max positive result
61	set_fr_iimmed  	0xffff,0xffff,fr8
62	cmcpxru      	fr7,fr8,acc0,cc4,1
63	test_accg_immed 	0,accg0
64	test_acc_limmed	0xfffe,0x0001,acc0
65
66	set_fr_iimmed  	0x0000,0x0001,fr7	; saturation
67	set_fr_iimmed  	0xffff,0x0001,fr8
68	cmcpxru      	fr7,fr8,acc0,cc4,1
69	test_spr_bits	0x3c,2,0x8,msr0		; msr0.sie is set
70	test_spr_bits	2,1,1,msr0		; msr0.ovf is set
71	test_spr_bits	1,0,1,msr0		; msr0.aovf is set
72	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt is set
73	test_accg_immed 	0,accg0
74	test_acc_immed	0,acc0
75
76	set_fr_iimmed  	0x0000,0xffff,fr7	; saturation
77	set_fr_iimmed  	0xffff,0xffff,fr8
78	cmcpxru      	fr7,fr8,acc0,cc4,1
79	test_spr_bits	0x3c,2,0x8,msr0		; msr0.sie is set
80	test_spr_bits	2,1,1,msr0		; msr0.ovf is set
81	test_spr_bits	1,0,1,msr0		; msr0.aovf is set
82	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt is set
83	test_accg_immed 	0,accg0
84	test_acc_immed	0,acc0
85
86	set_fr_iimmed  	0xfffe,0xffff,fr7	; saturation
87	set_fr_iimmed  	0xffff,0xffff,fr8
88	cmcpxru      	fr7,fr8,acc0,cc4,1
89	test_spr_bits	0x3c,2,0x8,msr0		; msr0.sie is set
90	test_spr_bits	2,1,1,msr0		; msr0.ovf is set
91	test_spr_bits	1,0,1,msr0		; msr0.aovf is set
92	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt is set
93	test_accg_immed 	0,accg0
94	test_acc_immed	0,acc0
95
96	set_fr_iimmed  	4,2,fr7		; multiply small numbers
97	set_fr_iimmed  	5,3,fr8
98	cmcpxru      	fr7,fr8,acc0,cc1,0
99	test_accg_immed 	0,accg0
100	test_acc_immed 	14,acc0
101
102	set_fr_iimmed  	1,2,fr7		; multiply by 1
103	set_fr_iimmed  	3,1,fr8
104	cmcpxru      	fr7,fr8,acc0,cc1,0
105	test_accg_immed 	0,accg0
106	test_acc_immed 	1,acc0
107
108	set_fr_iimmed  	0,2,fr7		; multiply by 0
109	set_fr_iimmed  	2,0,fr8
110	cmcpxru      	fr7,fr8,acc0,cc1,0
111	test_accg_immed 	0,accg0
112	test_acc_immed 	0,acc0
113
114	set_fr_iimmed 	0x3fff,1,fr7	; 15 bit result
115	set_fr_iimmed  	2,0x0001,fr8
116	cmcpxru      	fr7,fr8,acc0,cc1,0
117	test_accg_immed 	0,accg0
118	test_acc_limmed	0x0000,0x7ffd,acc0
119
120	set_fr_iimmed  	0x4000,1,fr7	; 16 bit result
121	set_fr_iimmed  	4,0x0001,fr8
122	cmcpxru      	fr7,fr8,acc0,cc1,0
123	test_accg_immed 	0,accg0
124	test_acc_limmed	0x0000,0xffff,acc0
125
126	set_fr_iimmed  	0x8000,1,fr7	; 17 bit result
127	set_fr_iimmed  	4,0x0001,fr8
128	cmcpxru      	fr7,fr8,acc0,cc1,0
129	test_accg_immed 	0,accg0
130	test_acc_immed 	0x0001ffff,acc0
131
132	set_fr_iimmed  	0x7fff,0x0000,fr7	; max positive result
133	set_fr_iimmed  	0x7fff,0x7fff,fr8
134	cmcpxru      	fr7,fr8,acc0,cc5,0
135	test_accg_immed 	0,accg0
136	test_acc_immed 	0x3fff0001,acc0
137
138	set_fr_iimmed  	0x8000,0x8000,fr7	; max positive result
139	set_fr_iimmed  	0x8000,0x0000,fr8
140	cmcpxru      	fr7,fr8,acc0,cc5,0
141	test_accg_immed 	0,accg0
142	test_acc_limmed	0x4000,0x0000,acc0
143
144	set_fr_iimmed  	0xffff,0x0000,fr7	; max positive result
145	set_fr_iimmed  	0xffff,0xffff,fr8
146	cmcpxru      	fr7,fr8,acc0,cc5,0
147	test_accg_immed 	0,accg0
148	test_acc_limmed	0xfffe,0x0001,acc0
149
150	set_fr_iimmed  	0x0000,0x0001,fr7	; saturation
151	set_fr_iimmed  	0xffff,0x0001,fr8
152	cmcpxru      	fr7,fr8,acc0,cc5,0
153	test_spr_bits	0x3c,2,0x8,msr0		; msr0.sie is set
154	test_spr_bits	2,1,1,msr0		; msr0.ovf is set
155	test_spr_bits	1,0,1,msr0		; msr0.aovf is set
156	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt is set
157	test_accg_immed 	0,accg0
158	test_acc_immed	0,acc0
159
160	set_fr_iimmed  	0x0000,0xffff,fr7	; saturation
161	set_fr_iimmed  	0xffff,0xffff,fr8
162	cmcpxru      	fr7,fr8,acc0,cc5,0
163	test_spr_bits	0x3c,2,0x8,msr0		; msr0.sie is set
164	test_spr_bits	2,1,1,msr0		; msr0.ovf is set
165	test_spr_bits	1,0,1,msr0		; msr0.aovf is set
166	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt is set
167	test_accg_immed 	0,accg0
168	test_acc_immed	0,acc0
169
170	set_fr_iimmed  	0xfffe,0xffff,fr7	; saturation
171	set_fr_iimmed  	0xffff,0xffff,fr8
172	cmcpxru      	fr7,fr8,acc0,cc5,0
173	test_spr_bits	0x3c,2,0x8,msr0		; msr0.sie is set
174	test_spr_bits	2,1,1,msr0		; msr0.ovf is set
175	test_spr_bits	1,0,1,msr0		; msr0.aovf is set
176	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt is set
177	test_accg_immed 	0,accg0
178	test_acc_immed	0,acc0
179
180	set_spr_immed	0,msr0
181	set_spr_immed	0,msr1
182	set_accg_immed 	0x00000011,accg0
183	set_acc_immed 	0x11111111,acc0
184	set_fr_iimmed  	4,2,fr7		; multiply small numbers
185	set_fr_iimmed  	5,3,fr8
186	cmcpxru      	fr7,fr8,acc0,cc0,0
187	test_accg_immed 	0x00000011,accg0
188	test_acc_immed 	0x11111111,acc0
189
190	set_fr_iimmed  	1,2,fr7		; multiply by 1
191	set_fr_iimmed  	3,1,fr8
192	cmcpxru      	fr7,fr8,acc0,cc0,0
193	test_accg_immed 	0x00000011,accg0
194	test_acc_immed 	0x11111111,acc0
195
196	set_fr_iimmed  	0,2,fr7		; multiply by 0
197	set_fr_iimmed  	2,0,fr8
198	cmcpxru      	fr7,fr8,acc0,cc0,0
199	test_accg_immed 	0x00000011,accg0
200	test_acc_immed 	0x11111111,acc0
201
202	set_fr_iimmed 	0x3fff,1,fr7	; 15 bit result
203	set_fr_iimmed  	2,0x0001,fr8
204	cmcpxru      	fr7,fr8,acc0,cc0,0
205	test_accg_immed 	0x00000011,accg0
206	test_acc_immed 	0x11111111,acc0
207
208	set_fr_iimmed  	0x4000,1,fr7	; 16 bit result
209	set_fr_iimmed  	4,0x0001,fr8
210	cmcpxru      	fr7,fr8,acc0,cc0,0
211	test_accg_immed 	0x00000011,accg0
212	test_acc_immed 	0x11111111,acc0
213
214	set_fr_iimmed  	0x8000,1,fr7	; 17 bit result
215	set_fr_iimmed  	4,0x0001,fr8
216	cmcpxru      	fr7,fr8,acc0,cc0,0
217	test_accg_immed 	0x00000011,accg0
218	test_acc_immed 	0x11111111,acc0
219
220	set_fr_iimmed  	0x7fff,0x0000,fr7	; max positive result
221	set_fr_iimmed  	0x7fff,0x7fff,fr8
222	cmcpxru      	fr7,fr8,acc0,cc4,0
223	test_accg_immed 	0x00000011,accg0
224	test_acc_immed 	0x11111111,acc0
225
226	set_fr_iimmed  	0x8000,0x8000,fr7	; max positive result
227	set_fr_iimmed  	0x8000,0x0000,fr8
228	cmcpxru      	fr7,fr8,acc0,cc4,0
229	test_accg_immed 	0x00000011,accg0
230	test_acc_immed 	0x11111111,acc0
231
232	set_fr_iimmed  	0xffff,0x0000,fr7	; max positive result
233	set_fr_iimmed  	0xffff,0xffff,fr8
234	cmcpxru      	fr7,fr8,acc0,cc4,0
235	test_accg_immed 	0x00000011,accg0
236	test_acc_immed 	0x11111111,acc0
237
238	set_fr_iimmed  	0x0000,0x0001,fr7	; saturation
239	set_fr_iimmed  	0xffff,0x0001,fr8
240	cmcpxru      	fr7,fr8,acc0,cc4,0
241	test_spr_bits	0x3c,2,0x0,msr0		; msr0.sie is clear
242	test_spr_bits	2,1,0,msr0		; msr0.ovf is clear
243	test_spr_bits	2,1,0,msr1		; msr1.ovf is clear
244	test_spr_bits	1,0,0,msr0		; msr0.aovf is clear
245	test_spr_bits	0x7000,12,0,msr0	; msr0.mtt is clear
246	test_accg_immed 	0x00000011,accg0
247	test_acc_immed 	0x11111111,acc0
248
249	set_fr_iimmed  	0x0000,0xffff,fr7	; saturation
250	set_fr_iimmed  	0xffff,0xffff,fr8
251	cmcpxru      	fr7,fr8,acc0,cc4,0
252	test_spr_bits	0x3c,2,0x0,msr0		; msr0.sie is clear
253	test_spr_bits	2,1,0,msr0		; msr0.ovf is clear
254	test_spr_bits	2,1,0,msr1		; msr1.ovf is clear
255	test_spr_bits	1,0,0,msr0		; msr0.aovf is clear
256	test_spr_bits	0x7000,12,0,msr0	; msr0.mtt is clear
257	test_accg_immed 	0x00000011,accg0
258	test_acc_immed 	0x11111111,acc0
259
260	set_fr_iimmed  	0xfffe,0xffff,fr7	; saturation
261	set_fr_iimmed  	0xffff,0xffff,fr8
262	cmcpxru      	fr7,fr8,acc0,cc4,0
263	test_spr_bits	0x3c,2,0x0,msr0		; msr0.sie is clear
264	test_spr_bits	2,1,0,msr0		; msr0.ovf is clear
265	test_spr_bits	2,1,0,msr1		; msr1.ovf is clear
266	test_spr_bits	1,0,0,msr0		; msr0.aovf is clear
267	test_spr_bits	0x7000,12,0,msr0	; msr0.mtt is clear
268	test_accg_immed 	0x00000011,accg0
269	test_acc_immed 	0x11111111,acc0
270
271	set_spr_immed	0,msr0
272	set_spr_immed	0,msr1
273	set_accg_immed 	0x00000011,accg0
274	set_acc_immed 	0x11111111,acc0
275	set_fr_iimmed  	4,2,fr7		; multiply small numbers
276	set_fr_iimmed  	5,3,fr8
277	cmcpxru      	fr7,fr8,acc0,cc1,1
278	test_accg_immed 	0x00000011,accg0
279	test_acc_immed 	0x11111111,acc0
280
281	set_fr_iimmed  	1,2,fr7		; multiply by 1
282	set_fr_iimmed  	3,1,fr8
283	cmcpxru      	fr7,fr8,acc0,cc1,1
284	test_accg_immed 	0x00000011,accg0
285	test_acc_immed 	0x11111111,acc0
286
287	set_fr_iimmed  	0,2,fr7		; multiply by 0
288	set_fr_iimmed  	2,0,fr8
289	cmcpxru      	fr7,fr8,acc0,cc1,1
290	test_accg_immed 	0x00000011,accg0
291	test_acc_immed 	0x11111111,acc0
292
293	set_fr_iimmed 	0x3fff,1,fr7	; 15 bit result
294	set_fr_iimmed  	2,0x0001,fr8
295	cmcpxru      	fr7,fr8,acc0,cc1,1
296	test_accg_immed 	0x00000011,accg0
297	test_acc_immed 	0x11111111,acc0
298
299	set_fr_iimmed  	0x4000,1,fr7	; 16 bit result
300	set_fr_iimmed  	4,0x0001,fr8
301	cmcpxru      	fr7,fr8,acc0,cc1,1
302	test_accg_immed 	0x00000011,accg0
303	test_acc_immed 	0x11111111,acc0
304
305	set_fr_iimmed  	0x8000,1,fr7	; 17 bit result
306	set_fr_iimmed  	4,0x0001,fr8
307	cmcpxru      	fr7,fr8,acc0,cc1,1
308	test_accg_immed 	0x00000011,accg0
309	test_acc_immed 	0x11111111,acc0
310
311	set_fr_iimmed  	0x7fff,0x0000,fr7	; max positive result
312	set_fr_iimmed  	0x7fff,0x7fff,fr8
313	cmcpxru      	fr7,fr8,acc0,cc5,1
314	test_accg_immed 	0x00000011,accg0
315	test_acc_immed 	0x11111111,acc0
316
317	set_fr_iimmed  	0x8000,0x8000,fr7	; max positive result
318	set_fr_iimmed  	0x8000,0x0000,fr8
319	cmcpxru      	fr7,fr8,acc0,cc5,1
320	test_accg_immed 	0x00000011,accg0
321	test_acc_immed 	0x11111111,acc0
322
323	set_fr_iimmed  	0xffff,0x0000,fr7	; max positive result
324	set_fr_iimmed  	0xffff,0xffff,fr8
325	cmcpxru      	fr7,fr8,acc0,cc5,1
326	test_accg_immed 	0x00000011,accg0
327	test_acc_immed 	0x11111111,acc0
328
329	set_fr_iimmed  	0x0000,0x0001,fr7	; saturation
330	set_fr_iimmed  	0xffff,0x0001,fr8
331	cmcpxru      	fr7,fr8,acc0,cc5,1
332	test_spr_bits	0x3c,2,0x0,msr0		; msr0.sie is clear
333	test_spr_bits	2,1,0,msr0		; msr0.ovf is clear
334	test_spr_bits	2,1,0,msr1		; msr1.ovf is clear
335	test_spr_bits	1,0,0,msr0		; msr0.aovf is clear
336	test_spr_bits	0x7000,12,0,msr0	; msr0.mtt is clear
337	test_accg_immed 	0x00000011,accg0
338	test_acc_immed 	0x11111111,acc0
339
340	set_fr_iimmed  	0x0000,0xffff,fr7	; saturation
341	set_fr_iimmed  	0xffff,0xffff,fr8
342	cmcpxru      	fr7,fr8,acc0,cc5,1
343	test_spr_bits	0x3c,2,0x0,msr0		; msr0.sie is clear
344	test_spr_bits	2,1,0,msr0		; msr0.ovf is clear
345	test_spr_bits	2,1,0,msr1		; msr1.ovf is clear
346	test_spr_bits	1,0,0,msr0		; msr0.aovf is clear
347	test_spr_bits	0x7000,12,0,msr0	; msr0.mtt is clear
348	test_accg_immed 	0x00000011,accg0
349	test_acc_immed 	0x11111111,acc0
350
351	set_fr_iimmed  	0xfffe,0xffff,fr7	; saturation
352	set_fr_iimmed  	0xffff,0xffff,fr8
353	cmcpxru      	fr7,fr8,acc0,cc5,1
354	test_spr_bits	0x3c,2,0x0,msr0		; msr0.sie is clear
355	test_spr_bits	2,1,0,msr0		; msr0.ovf is clear
356	test_spr_bits	2,1,0,msr1		; msr1.ovf is clear
357	test_spr_bits	1,0,0,msr0		; msr0.aovf is clear
358	test_spr_bits	0x7000,12,0,msr0	; msr0.mtt is clear
359	test_accg_immed 	0x00000011,accg0
360	test_acc_immed 	0x11111111,acc0
361
362	set_spr_immed	0,msr0
363	set_spr_immed	0,msr1
364	set_accg_immed 	0x00000011,accg0
365	set_acc_immed 	0x11111111,acc0
366	set_fr_iimmed  	4,2,fr7		; multiply small numbers
367	set_fr_iimmed  	5,3,fr8
368	cmcpxru      	fr7,fr8,acc0,cc2,1
369	test_accg_immed 	0x00000011,accg0
370	test_acc_immed 	0x11111111,acc0
371
372	set_fr_iimmed  	1,2,fr7		; multiply by 1
373	set_fr_iimmed  	3,1,fr8
374	cmcpxru      	fr7,fr8,acc0,cc2,1
375	test_accg_immed 	0x00000011,accg0
376	test_acc_immed 	0x11111111,acc0
377
378	set_fr_iimmed  	0,2,fr7		; multiply by 0
379	set_fr_iimmed  	2,0,fr8
380	cmcpxru      	fr7,fr8,acc0,cc2,1
381	test_accg_immed 	0x00000011,accg0
382	test_acc_immed 	0x11111111,acc0
383
384	set_fr_iimmed 	0x3fff,1,fr7	; 15 bit result
385	set_fr_iimmed  	2,0x0001,fr8
386	cmcpxru      	fr7,fr8,acc0,cc2,1
387	test_accg_immed 	0x00000011,accg0
388	test_acc_immed 	0x11111111,acc0
389
390	set_fr_iimmed  	0x4000,1,fr7	; 16 bit result
391	set_fr_iimmed  	4,0x0001,fr8
392	cmcpxru      	fr7,fr8,acc0,cc2,1
393	test_accg_immed 	0x00000011,accg0
394	test_acc_immed 	0x11111111,acc0
395
396	set_fr_iimmed  	0x8000,1,fr7	; 17 bit result
397	set_fr_iimmed  	4,0x0001,fr8
398	cmcpxru      	fr7,fr8,acc0,cc2,1
399	test_accg_immed 	0x00000011,accg0
400	test_acc_immed 	0x11111111,acc0
401
402	set_fr_iimmed  	0x7fff,0x0000,fr7	; max positive result
403	set_fr_iimmed  	0x7fff,0x7fff,fr8
404	cmcpxru      	fr7,fr8,acc0,cc6,1
405	test_accg_immed 	0x00000011,accg0
406	test_acc_immed 	0x11111111,acc0
407
408	set_fr_iimmed  	0x8000,0x8000,fr7	; max positive result
409	set_fr_iimmed  	0x8000,0x0000,fr8
410	cmcpxru      	fr7,fr8,acc0,cc6,1
411	test_accg_immed 	0x00000011,accg0
412	test_acc_immed 	0x11111111,acc0
413
414	set_fr_iimmed  	0xffff,0x0000,fr7	; max positive result
415	set_fr_iimmed  	0xffff,0xffff,fr8
416	cmcpxru      	fr7,fr8,acc0,cc6,1
417	test_accg_immed 	0x00000011,accg0
418	test_acc_immed 	0x11111111,acc0
419
420	set_fr_iimmed  	0x0000,0x0001,fr7	; saturation
421	set_fr_iimmed  	0xffff,0x0001,fr8
422	cmcpxru      	fr7,fr8,acc0,cc6,1
423	test_spr_bits	0x3c,2,0x0,msr0		; msr0.sie is clear
424	test_spr_bits	2,1,0,msr0		; msr0.ovf is clear
425	test_spr_bits	2,1,0,msr1		; msr1.ovf is clear
426	test_spr_bits	1,0,0,msr0		; msr0.aovf is clear
427	test_spr_bits	0x7000,12,0,msr0	; msr0.mtt is clear
428	test_accg_immed 	0x00000011,accg0
429	test_acc_immed 	0x11111111,acc0
430
431	set_fr_iimmed  	0x0000,0xffff,fr7	; saturation
432	set_fr_iimmed  	0xffff,0xffff,fr8
433	cmcpxru      	fr7,fr8,acc0,cc6,1
434	test_spr_bits	0x3c,2,0x0,msr0		; msr0.sie is clear
435	test_spr_bits	2,1,0,msr0		; msr0.ovf is clear
436	test_spr_bits	2,1,0,msr1		; msr1.ovf is clear
437	test_spr_bits	1,0,0,msr0		; msr0.aovf is clear
438	test_spr_bits	0x7000,12,0,msr0	; msr0.mtt is clear
439	test_accg_immed 	0x00000011,accg0
440	test_acc_immed 	0x11111111,acc0
441
442	set_fr_iimmed  	0xfffe,0xffff,fr7	; saturation
443	set_fr_iimmed  	0xffff,0xffff,fr8
444	cmcpxru      	fr7,fr8,acc0,cc6,1
445	test_spr_bits	0x3c,2,0x0,msr0		; msr0.sie is clear
446	test_spr_bits	2,1,0,msr0		; msr0.ovf is clear
447	test_spr_bits	2,1,0,msr1		; msr1.ovf is clear
448	test_spr_bits	1,0,0,msr0		; msr0.aovf is clear
449	test_spr_bits	0x7000,12,0,msr0	; msr0.mtt is clear
450	test_accg_immed 	0x00000011,accg0
451	test_acc_immed 	0x11111111,acc0
452;
453	set_spr_immed	0,msr0
454	set_spr_immed	0,msr1
455	set_accg_immed 	0x00000011,accg0
456	set_acc_immed 	0x11111111,acc0
457	set_fr_iimmed  	4,2,fr7		; multiply small numbers
458	set_fr_iimmed  	5,3,fr8
459	cmcpxru      	fr7,fr8,acc0,cc3,1
460	test_accg_immed 	0x00000011,accg0
461	test_acc_immed 	0x11111111,acc0
462
463	set_fr_iimmed  	1,2,fr7		; multiply by 1
464	set_fr_iimmed  	3,1,fr8
465	cmcpxru      	fr7,fr8,acc0,cc3,1
466	test_accg_immed 	0x00000011,accg0
467	test_acc_immed 	0x11111111,acc0
468
469	set_fr_iimmed  	0,2,fr7		; multiply by 0
470	set_fr_iimmed  	2,0,fr8
471	cmcpxru      	fr7,fr8,acc0,cc3,1
472	test_accg_immed 	0x00000011,accg0
473	test_acc_immed 	0x11111111,acc0
474
475	set_fr_iimmed 	0x3fff,1,fr7	; 15 bit result
476	set_fr_iimmed  	2,0x0001,fr8
477	cmcpxru      	fr7,fr8,acc0,cc3,1
478	test_accg_immed 	0x00000011,accg0
479	test_acc_immed 	0x11111111,acc0
480
481	set_fr_iimmed  	0x4000,1,fr7	; 16 bit result
482	set_fr_iimmed  	4,0x0001,fr8
483	cmcpxru      	fr7,fr8,acc0,cc3,1
484	test_accg_immed 	0x00000011,accg0
485	test_acc_immed 	0x11111111,acc0
486
487	set_fr_iimmed  	0x8000,1,fr7	; 17 bit result
488	set_fr_iimmed  	4,0x0001,fr8
489	cmcpxru      	fr7,fr8,acc0,cc3,1
490	test_accg_immed 	0x00000011,accg0
491	test_acc_immed 	0x11111111,acc0
492
493	set_fr_iimmed  	0x7fff,0x0000,fr7	; max positive result
494	set_fr_iimmed  	0x7fff,0x7fff,fr8
495	cmcpxru      	fr7,fr8,acc0,cc7,1
496	test_accg_immed 	0x00000011,accg0
497	test_acc_immed 	0x11111111,acc0
498
499	set_fr_iimmed  	0x8000,0x8000,fr7	; max positive result
500	set_fr_iimmed  	0x8000,0x0000,fr8
501	cmcpxru      	fr7,fr8,acc0,cc7,1
502	test_accg_immed 	0x00000011,accg0
503	test_acc_immed 	0x11111111,acc0
504
505	set_fr_iimmed  	0xffff,0x0000,fr7	; max positive result
506	set_fr_iimmed  	0xffff,0xffff,fr8
507	cmcpxru      	fr7,fr8,acc0,cc7,1
508	test_accg_immed 	0x00000011,accg0
509	test_acc_immed 	0x11111111,acc0
510
511	set_fr_iimmed  	0x0000,0x0001,fr7	; saturation
512	set_fr_iimmed  	0xffff,0x0001,fr8
513	cmcpxru      	fr7,fr8,acc0,cc7,1
514	test_spr_bits	0x3c,2,0x0,msr0		; msr0.sie is clear
515	test_spr_bits	2,1,0,msr0		; msr0.ovf is clear
516	test_spr_bits	2,1,0,msr1		; msr1.ovf is clear
517	test_spr_bits	1,0,0,msr0		; msr0.aovf is clear
518	test_spr_bits	0x7000,12,0,msr0	; msr0.mtt is clear
519	test_accg_immed 	0x00000011,accg0
520	test_acc_immed 	0x11111111,acc0
521
522	set_fr_iimmed  	0x0000,0xffff,fr7	; saturation
523	set_fr_iimmed  	0xffff,0xffff,fr8
524	cmcpxru      	fr7,fr8,acc0,cc7,1
525	test_spr_bits	0x3c,2,0x0,msr0		; msr0.sie is clear
526	test_spr_bits	2,1,0,msr0		; msr0.ovf is clear
527	test_spr_bits	2,1,0,msr1		; msr1.ovf is clear
528	test_spr_bits	1,0,0,msr0		; msr0.aovf is clear
529	test_spr_bits	0x7000,12,0,msr0	; msr0.mtt is clear
530	test_accg_immed 	0x00000011,accg0
531	test_acc_immed 	0x11111111,acc0
532
533	set_fr_iimmed  	0xfffe,0xffff,fr7	; saturation
534	set_fr_iimmed  	0xffff,0xffff,fr8
535	cmcpxru      	fr7,fr8,acc0,cc7,1
536	test_spr_bits	0x3c,2,0x0,msr0		; msr0.sie is clear
537	test_spr_bits	2,1,0,msr0		; msr0.ovf is clear
538	test_spr_bits	2,1,0,msr1		; msr1.ovf is clear
539	test_spr_bits	1,0,0,msr0		; msr0.aovf is clear
540	test_spr_bits	0x7000,12,0,msr0	; msr0.mtt is clear
541	test_accg_immed 	0x00000011,accg0
542	test_acc_immed 	0x11111111,acc0
543
544	pass
545