xref: /netbsd-src/external/gpl3/gdb/dist/sim/testsuite/frv/fr550/cmmachs.cgs (revision 2f62cc9c12bc202c40224f32c879f81443fee079)
1# frv testcase for cmmachs $GRi,$GRj,$ACCk,$CCi,$cond
2# mach: all
3
4	.include "../testutils.inc"
5
6	start
7
8	.global cmmachs
9cmmachs:
10	set_spr_immed	0x1b1b,cccr
11
12	; Positive operands
13	set_spr_immed 	0x0,msr0
14	set_accg_immed 	0x0,accg0
15	set_acc_immed	0x0,acc0
16	set_accg_immed 	0x0,accg1
17	set_acc_immed	0x0,acc1
18	set_fr_iimmed  	2,3,fr7		; multiply small numbers
19	set_fr_iimmed  	3,2,fr8
20	cmmachs      	fr7,fr8,acc0,cc0,1
21	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
22	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
23	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
24	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
25	test_accg_immed 	0,accg0
26	test_acc_immed 	6,acc0
27	test_accg_immed 	0,accg1
28	test_acc_immed 	6,acc1
29
30	set_fr_iimmed  	0,1,fr7		; multiply by 0
31	set_fr_iimmed  	2,0,fr8
32	cmmachs      	fr7,fr8,acc0,cc0,1
33	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
34	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
35	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
36	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
37	test_accg_immed 	0,accg0
38	test_acc_immed 	6,acc0
39	test_accg_immed 	0,accg1
40	test_acc_immed 	6,acc1
41
42	set_fr_iimmed  	2,1,fr7		; multiply by 1
43	set_fr_iimmed  	1,2,fr8
44	cmmachs      	fr7,fr8,acc0,cc0,1
45	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
46	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
47	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
48	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
49	test_accg_immed 	0,accg0
50	test_acc_immed 	8,acc0
51	test_accg_immed 	0,accg1
52	test_acc_immed 	8,acc1
53
54	set_fr_iimmed	0x3fff,2,fr7	; 15 bit result
55	set_fr_iimmed  	2,0x3fff,fr8
56	cmmachs      	fr7,fr8,acc0,cc0,1
57	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
58	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
59	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
60	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
61	test_accg_immed 	0,accg0
62	test_acc_limmed	0,0x8006,acc0
63	test_accg_immed 	0,accg1
64	test_acc_limmed	0,0x8006,acc1
65
66	set_fr_iimmed	0x4000,2,fr7	; 16 bit result
67	set_fr_iimmed  	2,0x4000,fr8
68	cmmachs      	fr7,fr8,acc0,cc0,1
69	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
70	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
71	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
72	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
73	test_accg_immed 	0,accg0
74	test_acc_limmed	0x0001,0x0006,acc0
75	test_accg_immed 	0,accg1
76	test_acc_limmed	0x0001,0x0006,acc1
77
78	set_fr_iimmed	0x7fff,0x7fff,fr7	; max positive result
79	set_fr_iimmed	0x7fff,0x7fff,fr8
80	cmmachs      	fr7,fr8,acc0,cc0,1
81	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
82	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
83	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
84	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
85	test_accg_immed 	0,accg0
86	test_acc_limmed 0x4000,0x0007,acc0
87	test_accg_immed 	0,accg1
88	test_acc_limmed 0x4000,0x0007,acc1
89
90	; Mixed operands
91	set_fr_iimmed  	2,0xfffd,fr7		; multiply small numbers
92	set_fr_iimmed  	0xfffd,2,fr8
93	cmmachs      	fr7,fr8,acc0,cc0,1
94	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
95	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
96	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
97	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
98	test_accg_immed 	0,accg0
99	test_acc_limmed 0x4000,0x0001,acc0
100	test_accg_immed 	0,accg1
101	test_acc_limmed 0x4000,0x0001,acc1
102
103	set_fr_iimmed  	0xfffe,1,fr7		; multiply by 1
104	set_fr_iimmed  	1,0xfffe,fr8
105	cmmachs      	fr7,fr8,acc0,cc0,1
106	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
107	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
108	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
109	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
110	test_accg_immed 	0,accg0
111	test_acc_limmed 0x3fff,0xffff,acc0
112	test_accg_immed 	0,accg1
113	test_acc_limmed 0x3fff,0xffff,acc1
114
115	set_fr_iimmed  	0xfffe,0,fr7		; multiply by 0
116	set_fr_iimmed  	0,0xfffe,fr8
117	cmmachs      	fr7,fr8,acc0,cc0,1
118	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
119	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
120	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
121	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
122	test_accg_immed 	0,accg0
123	test_acc_limmed 0x3fff,0xffff,acc0
124	test_accg_immed 	0,accg1
125	test_acc_limmed 0x3fff,0xffff,acc1
126
127	set_fr_iimmed  	0x2001,0xfffe,fr7	; 15 bit result
128	set_fr_iimmed  	0xfffe,0x2001,fr8
129	cmmachs      	fr7,fr8,acc0,cc0,1
130	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
131	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
132	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
133	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
134	test_accg_immed 	0,accg0
135	test_acc_limmed	0x3fff,0xbffd,acc0
136	test_accg_immed 	0,accg1
137	test_acc_limmed	0x3fff,0xbffd,acc1
138
139	set_fr_iimmed	0x4000,0xfffe,fr7	; 16 bit result
140	set_fr_iimmed  	0xfffe,0x4000,fr8
141	cmmachs      	fr7,fr8,acc0,cc4,1
142	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
143	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
144	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
145	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
146	test_accg_immed 	0,accg0
147	test_acc_limmed	0x3fff,0x3ffd,acc0
148	test_accg_immed 	0,accg1
149	test_acc_limmed	0x3fff,0x3ffd,acc1
150
151	set_fr_iimmed	0x7fff,0x8000,fr7	; max negative result
152	set_fr_iimmed	0x8000,0x7fff,fr8
153	cmmachs      	fr7,fr8,acc0,cc4,1
154	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
155	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
156	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
157	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
158	test_accg_immed 	0xff,accg0
159	test_acc_limmed	0xffff,0xbffd,acc0
160	test_accg_immed 	0xff,accg1
161	test_acc_limmed	0xffff,0xbffd,acc1
162
163	; Negative operands
164	set_fr_iimmed  	0xfffe,0xfffd,fr7		; multiply small numbers
165	set_fr_iimmed  	0xfffd,0xfffe,fr8
166	cmmachs      	fr7,fr8,acc0,cc4,1
167	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
168	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
169	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
170	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
171	test_accg_immed 	0xff,accg0
172	test_acc_limmed	0xffff,0xc003,acc0
173	test_accg_immed 	0xff,accg1
174	test_acc_limmed	0xffff,0xc003,acc1
175
176	set_fr_iimmed  	0xffff,0xfffe,fr7		; multiply by -1
177	set_fr_iimmed  	0xfffe,0xffff,fr8
178	cmmachs      	fr7,fr8,acc0,cc4,1
179	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
180	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
181	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
182	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
183	test_accg_immed 	0xff,accg0
184	test_acc_limmed	0xffff,0xc005,acc0
185	test_accg_immed 	0xff,accg1
186	test_acc_limmed	0xffff,0xc005,acc1
187
188	set_fr_iimmed	0x8001,0x8001,fr7	; almost max positive result
189	set_fr_iimmed	0x8001,0x8001,fr8
190	cmmachs      	fr7,fr8,acc0,cc4,1
191	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
192	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
193	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
194	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
195	test_accg_immed 	0,accg0
196	test_acc_immed 	0x3ffec006,acc0
197	test_accg_immed 	0,accg1
198	test_acc_immed 	0x3ffec006,acc1
199
200	set_fr_iimmed	0x8000,0x8000,fr7	; max positive result
201	set_fr_iimmed	0x8000,0x8000,fr8
202	cmmachs      	fr7,fr8,acc0,cc4,1
203	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
204	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
205	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
206	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
207	test_accg_immed 	0,accg0
208	test_acc_immed 	0x7ffec006,acc0
209	test_accg_immed 	0,accg1
210	test_acc_immed 	0x7ffec006,acc1
211
212	set_accg_immed 	0x7f,accg0		; saturation
213	set_acc_immed	0xffffffff,acc0
214	set_accg_immed 	0x7f,accg1
215	set_acc_immed	0xffffffff,acc1
216	set_fr_iimmed  	1,1,fr7
217	set_fr_iimmed  	1,1,fr8
218	cmmachs      	fr7,fr8,acc0,cc4,1
219;;;;;;;;;;;;
220	test_spr_bits	0x3c,2,0xc,msr0		; msr0.sie is set
221	test_spr_bits	2,1,1,msr0		; msr0.ovf is set
222	test_spr_bits	1,0,1,msr0		; msr0.aovf is set
223	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt is set
224	test_accg_immed 	0x7f,accg0
225	test_acc_limmed	0xffff,0xffff,acc0
226	test_accg_immed 	0x7f,accg1
227	test_acc_limmed	0xffff,0xffff,acc1
228
229	set_fr_iimmed  	0x7fff,0x7fff,fr7	; saturation
230	set_fr_iimmed  	0x7fff,0x7fff,fr8
231	cmmachs      	fr7,fr8,acc0,cc4,1
232	test_spr_bits	0x3c,2,0xc,msr0		; msr0.sie is set
233	test_spr_bits	2,1,1,msr0		; msr0.ovf is set
234	test_spr_bits	1,0,1,msr0		; msr0.aovf is set
235	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt is set
236	test_accg_immed 	0x7f,accg0
237	test_acc_limmed	0xffff,0xffff,acc0
238	test_accg_immed 	0x7f,accg1
239	test_acc_limmed	0xffff,0xffff,acc1
240
241	set_accg_immed 	-128,accg0		; saturation
242	set_acc_immed	0,acc0
243	set_accg_immed 	-128,accg1
244	set_acc_immed	0,acc1
245	set_fr_iimmed  	0xffff,0,fr7
246	set_fr_iimmed  	1,0xffff,fr8
247	cmmachs      	fr7,fr8,acc0,cc4,1
248	test_spr_bits	0x3c,2,0x8,msr0		; msr0.sie is set
249	test_spr_bits	2,1,1,msr0		; msr0.ovf is set
250	test_spr_bits	1,0,1,msr0		; msr0.aovf is set
251	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt is set
252	test_accg_immed 	0x80,accg0
253	test_acc_immed	0,acc0
254	test_accg_immed 	0x80,accg1
255	test_acc_immed	0,acc1
256
257	set_fr_iimmed  	0x0000,0x8000,fr7	; saturation
258	set_fr_iimmed  	0x7fff,0x7fff,fr8
259	cmmachs      	fr7,fr8,acc0,cc4,1
260	test_spr_bits	0x3c,2,0x4,msr0		; msr0.sie is set
261	test_spr_bits	2,1,1,msr0		; msr0.ovf is set
262	test_spr_bits	1,0,1,msr0		; msr0.aovf is set
263	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt is set
264	test_accg_immed 	0x80,accg0
265	test_acc_immed	0,acc0
266	test_accg_immed 	0x80,accg1
267	test_acc_immed	0,acc1
268
269	; Positive operands
270	set_spr_immed 	0x0,msr0
271	set_accg_immed 	0x0,accg0		; saturation
272	set_acc_immed	0x0,acc0
273	set_accg_immed 	0x0,accg1
274	set_acc_immed	0x0,acc1
275	set_fr_iimmed  	2,3,fr7		; multiply small numbers
276	set_fr_iimmed  	3,2,fr8
277	cmmachs      	fr7,fr8,acc0,cc1,0
278	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
279	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
280	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
281	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
282	test_accg_immed 	0,accg0
283	test_acc_immed 	6,acc0
284	test_accg_immed 	0,accg1
285	test_acc_immed 	6,acc1
286
287	set_fr_iimmed  	0,1,fr7		; multiply by 0
288	set_fr_iimmed  	2,0,fr8
289	cmmachs      	fr7,fr8,acc0,cc1,0
290	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
291	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
292	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
293	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
294	test_accg_immed 	0,accg0
295	test_acc_immed 	6,acc0
296	test_accg_immed 	0,accg1
297	test_acc_immed 	6,acc1
298
299	set_fr_iimmed  	2,1,fr7		; multiply by 1
300	set_fr_iimmed  	1,2,fr8
301	cmmachs      	fr7,fr8,acc0,cc1,0
302	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
303	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
304	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
305	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
306	test_accg_immed 	0,accg0
307	test_acc_immed 	8,acc0
308	test_accg_immed 	0,accg1
309	test_acc_immed 	8,acc1
310
311	set_fr_iimmed	0x3fff,2,fr7	; 15 bit result
312	set_fr_iimmed  	2,0x3fff,fr8
313	cmmachs      	fr7,fr8,acc0,cc1,0
314	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
315	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
316	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
317	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
318	test_accg_immed 	0,accg0
319	test_acc_limmed	0,0x8006,acc0
320	test_accg_immed 	0,accg1
321	test_acc_limmed	0,0x8006,acc1
322
323	set_fr_iimmed	0x4000,2,fr7	; 16 bit result
324	set_fr_iimmed  	2,0x4000,fr8
325	cmmachs      	fr7,fr8,acc0,cc1,0
326	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
327	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
328	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
329	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
330	test_accg_immed 	0,accg0
331	test_acc_limmed	0x0001,0x0006,acc0
332	test_accg_immed 	0,accg1
333	test_acc_limmed	0x0001,0x0006,acc1
334
335	set_fr_iimmed	0x7fff,0x7fff,fr7	; max positive result
336	set_fr_iimmed	0x7fff,0x7fff,fr8
337	cmmachs      	fr7,fr8,acc0,cc1,0
338	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
339	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
340	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
341	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
342	test_accg_immed 	0,accg0
343	test_acc_limmed 0x4000,0x0007,acc0
344	test_accg_immed 	0,accg1
345	test_acc_limmed 0x4000,0x0007,acc1
346
347	; Mixed operands
348	set_fr_iimmed  	2,0xfffd,fr7		; multiply small numbers
349	set_fr_iimmed  	0xfffd,2,fr8
350	cmmachs      	fr7,fr8,acc0,cc1,0
351	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
352	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
353	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
354	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
355	test_accg_immed 	0,accg0
356	test_acc_limmed 0x4000,0x0001,acc0
357	test_accg_immed 	0,accg1
358	test_acc_limmed 0x4000,0x0001,acc1
359
360	set_fr_iimmed  	0xfffe,1,fr7		; multiply by 1
361	set_fr_iimmed  	1,0xfffe,fr8
362	cmmachs      	fr7,fr8,acc0,cc1,0
363	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
364	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
365	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
366	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
367	test_accg_immed 	0,accg0
368	test_acc_limmed 0x3fff,0xffff,acc0
369	test_accg_immed 	0,accg1
370	test_acc_limmed 0x3fff,0xffff,acc1
371
372	set_fr_iimmed  	0xfffe,0,fr7		; multiply by 0
373	set_fr_iimmed  	0,0xfffe,fr8
374	cmmachs      	fr7,fr8,acc0,cc1,0
375	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
376	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
377	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
378	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
379	test_accg_immed 	0,accg0
380	test_acc_limmed 0x3fff,0xffff,acc0
381	test_accg_immed 	0,accg1
382	test_acc_limmed 0x3fff,0xffff,acc1
383
384	set_fr_iimmed  	0x2001,0xfffe,fr7	; 15 bit result
385	set_fr_iimmed  	0xfffe,0x2001,fr8
386	cmmachs      	fr7,fr8,acc0,cc1,0
387	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
388	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
389	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
390	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
391	test_accg_immed 	0,accg0
392	test_acc_limmed	0x3fff,0xbffd,acc0
393	test_accg_immed 	0,accg1
394	test_acc_limmed	0x3fff,0xbffd,acc1
395
396	set_fr_iimmed	0x4000,0xfffe,fr7	; 16 bit result
397	set_fr_iimmed  	0xfffe,0x4000,fr8
398	cmmachs      	fr7,fr8,acc0,cc5,0
399	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
400	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
401	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
402	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
403	test_accg_immed 	0,accg0
404	test_acc_limmed	0x3fff,0x3ffd,acc0
405	test_accg_immed 	0,accg1
406	test_acc_limmed	0x3fff,0x3ffd,acc1
407
408	set_fr_iimmed	0x7fff,0x8000,fr7	; max negative result
409	set_fr_iimmed	0x8000,0x7fff,fr8
410	cmmachs      	fr7,fr8,acc0,cc5,0
411	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
412	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
413	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
414	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
415	test_accg_immed 	0xff,accg0
416	test_acc_limmed	0xffff,0xbffd,acc0
417	test_accg_immed 	0xff,accg1
418	test_acc_limmed	0xffff,0xbffd,acc1
419
420	; Negative operands
421	set_fr_iimmed  	0xfffe,0xfffd,fr7		; multiply small numbers
422	set_fr_iimmed  	0xfffd,0xfffe,fr8
423	cmmachs      	fr7,fr8,acc0,cc5,0
424	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
425	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
426	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
427	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
428	test_accg_immed 	0xff,accg0
429	test_acc_limmed	0xffff,0xc003,acc0
430	test_accg_immed 	0xff,accg1
431	test_acc_limmed	0xffff,0xc003,acc1
432
433	set_fr_iimmed  	0xffff,0xfffe,fr7		; multiply by -1
434	set_fr_iimmed  	0xfffe,0xffff,fr8
435	cmmachs      	fr7,fr8,acc0,cc5,0
436	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
437	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
438	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
439	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
440	test_accg_immed 	0xff,accg0
441	test_acc_limmed	0xffff,0xc005,acc0
442	test_accg_immed 	0xff,accg1
443	test_acc_limmed	0xffff,0xc005,acc1
444
445	set_fr_iimmed	0x8001,0x8001,fr7	; almost max positive result
446	set_fr_iimmed	0x8001,0x8001,fr8
447	cmmachs      	fr7,fr8,acc0,cc5,0
448	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
449	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
450	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
451	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
452	test_accg_immed 	0,accg0
453	test_acc_immed 	0x3ffec006,acc0
454	test_accg_immed 	0,accg1
455	test_acc_immed 	0x3ffec006,acc1
456
457	set_fr_iimmed	0x8000,0x8000,fr7	; max positive result
458	set_fr_iimmed	0x8000,0x8000,fr8
459	cmmachs      	fr7,fr8,acc0,cc5,0
460	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
461	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
462	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
463	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
464	test_accg_immed 	0,accg0
465	test_acc_immed 	0x7ffec006,acc0
466	test_accg_immed 	0,accg1
467	test_acc_immed 	0x7ffec006,acc1
468
469	set_accg_immed 	0x7f,accg0		; saturation
470	set_acc_immed	0xffffffff,acc0
471	set_accg_immed 	0x7f,accg1
472	set_acc_immed	0xffffffff,acc1
473	set_fr_iimmed  	1,1,fr7
474	set_fr_iimmed  	1,1,fr8
475	cmmachs      	fr7,fr8,acc0,cc5,0
476	test_accg_immed 	0x7f,accg0
477	test_acc_limmed	0xffff,0xffff,acc0
478	test_accg_immed 	0x7f,accg1
479	test_acc_limmed	0xffff,0xffff,acc1
480
481	set_fr_iimmed  	0x7fff,0x7fff,fr7	; saturation
482	set_fr_iimmed  	0x7fff,0x7fff,fr8
483	cmmachs      	fr7,fr8,acc0,cc5,0
484	test_spr_bits	0x3c,2,0xc,msr0		; msr0.sie is set
485	test_spr_bits	2,1,1,msr0		; msr0.ovf is set
486	test_spr_bits	1,0,1,msr0		; msr0.aovf is set
487	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt is set
488	test_accg_immed 	0x7f,accg0
489	test_acc_limmed	0xffff,0xffff,acc0
490	test_accg_immed 	0x7f,accg1
491	test_acc_limmed	0xffff,0xffff,acc1
492
493	set_accg_immed 	0x80,accg0		; saturation
494	set_acc_immed	0,acc0
495	set_accg_immed 	0x80,accg1
496	set_acc_immed	0,acc1
497	set_fr_iimmed  	0xffff,0,fr7
498	set_fr_iimmed  	1,0xffff,fr8
499	cmmachs      	fr7,fr8,acc0,cc5,0
500	test_spr_bits	0x3c,2,0x8,msr0		; msr0.sie is set
501	test_spr_bits	2,1,1,msr0		; msr0.ovf is set
502	test_spr_bits	1,0,1,msr0		; msr0.aovf is set
503	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt is set
504	test_accg_immed 	0x80,accg0
505	test_acc_immed	0,acc0
506	test_accg_immed 	0x80,accg1
507	test_acc_immed	0,acc1
508
509	set_fr_iimmed  	0x0000,0x8000,fr7	; saturation
510	set_fr_iimmed  	0x7fff,0x7fff,fr8
511	cmmachs      	fr7,fr8,acc0,cc5,0
512	test_spr_bits	0x3c,2,0x4,msr0		; msr0.sie is set
513	test_spr_bits	2,1,1,msr0		; msr0.ovf is set
514	test_spr_bits	1,0,1,msr0		; msr0.aovf is set
515	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt is set
516	test_accg_immed 	0x80,accg0
517	test_acc_immed	0,acc0
518	test_accg_immed 	0x80,accg1
519	test_acc_immed	0,acc1
520
521	; Positive operands
522	set_spr_immed 	0x0,msr0
523	set_accg_immed 	0x0,accg0
524	set_acc_immed	0x0,acc0
525	set_accg_immed 	0x0,accg1
526	set_acc_immed	0x0,acc1
527	set_fr_iimmed  	2,3,fr7		; multiply small numbers
528	set_fr_iimmed  	3,2,fr8
529	cmmachs      	fr7,fr8,acc0,cc0,0
530	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
531	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
532	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
533	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
534	test_accg_immed 	0,accg0
535	test_acc_immed 	0,acc0
536	test_accg_immed 	0,accg1
537	test_acc_immed 	0,acc1
538
539	set_fr_iimmed  	0,1,fr7		; multiply by 0
540	set_fr_iimmed  	2,0,fr8
541	cmmachs      	fr7,fr8,acc0,cc0,0
542	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
543	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
544	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
545	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
546	test_accg_immed 	0,accg0
547	test_acc_immed 	0,acc0
548	test_accg_immed 	0,accg1
549	test_acc_immed 	0,acc1
550
551	set_fr_iimmed  	2,1,fr7		; multiply by 1
552	set_fr_iimmed  	1,2,fr8
553	cmmachs      	fr7,fr8,acc0,cc0,0
554	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
555	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
556	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
557	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
558	test_accg_immed 	0,accg0
559	test_acc_immed 	0,acc0
560	test_accg_immed 	0,accg1
561	test_acc_immed 	0,acc1
562
563	set_fr_iimmed	0x3fff,2,fr7	; 15 bit result
564	set_fr_iimmed  	2,0x3fff,fr8
565	cmmachs      	fr7,fr8,acc0,cc0,0
566	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
567	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
568	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
569	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
570	test_accg_immed 	0,accg0
571	test_acc_immed 	0,acc0
572	test_accg_immed 	0,accg1
573	test_acc_immed 	0,acc1
574
575	set_fr_iimmed	0x4000,2,fr7	; 16 bit result
576	set_fr_iimmed  	2,0x4000,fr8
577	cmmachs      	fr7,fr8,acc0,cc0,0
578	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
579	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
580	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
581	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
582	test_accg_immed 	0,accg0
583	test_acc_immed 	0,acc0
584	test_accg_immed 	0,accg1
585	test_acc_immed 	0,acc1
586
587	set_fr_iimmed	0x7fff,0x7fff,fr7	; max positive result
588	set_fr_iimmed	0x7fff,0x7fff,fr8
589	cmmachs      	fr7,fr8,acc0,cc0,0
590	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
591	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
592	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
593	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
594	test_accg_immed 	0,accg0
595	test_acc_immed 	0,acc0
596	test_accg_immed 	0,accg1
597	test_acc_immed 	0,acc1
598
599	; Mixed operands
600	set_fr_iimmed  	2,0xfffd,fr7		; multiply small numbers
601	set_fr_iimmed  	0xfffd,2,fr8
602	cmmachs      	fr7,fr8,acc0,cc0,0
603	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
604	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
605	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
606	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
607	test_accg_immed 	0,accg0
608	test_acc_immed 	0,acc0
609	test_accg_immed 	0,accg1
610	test_acc_immed 	0,acc1
611
612	set_fr_iimmed  	0xfffe,1,fr7		; multiply by 1
613	set_fr_iimmed  	1,0xfffe,fr8
614	cmmachs      	fr7,fr8,acc0,cc0,0
615	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
616	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
617	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
618	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
619	test_accg_immed 	0,accg0
620	test_acc_immed 	0,acc0
621	test_accg_immed 	0,accg1
622	test_acc_immed 	0,acc1
623
624	set_fr_iimmed  	0xfffe,0,fr7		; multiply by 0
625	set_fr_iimmed  	0,0xfffe,fr8
626	cmmachs      	fr7,fr8,acc0,cc0,0
627	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
628	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
629	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
630	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
631	test_accg_immed 	0,accg0
632	test_acc_immed 	0,acc0
633	test_accg_immed 	0,accg1
634	test_acc_immed 	0,acc1
635
636	set_fr_iimmed  	0x2001,0xfffe,fr7	; 15 bit result
637	set_fr_iimmed  	0xfffe,0x2001,fr8
638	cmmachs      	fr7,fr8,acc0,cc0,0
639	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
640	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
641	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
642	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
643	test_accg_immed 	0,accg0
644	test_acc_immed 	0,acc0
645	test_accg_immed 	0,accg1
646	test_acc_immed 	0,acc1
647
648	set_fr_iimmed	0x4000,0xfffe,fr7	; 16 bit result
649	set_fr_iimmed  	0xfffe,0x4000,fr8
650	cmmachs      	fr7,fr8,acc0,cc4,0
651	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
652	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
653	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
654	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
655	test_accg_immed 	0,accg0
656	test_acc_immed 	0,acc0
657	test_accg_immed 	0,accg1
658	test_acc_immed 	0,acc1
659
660	set_fr_iimmed	0x7fff,0x8000,fr7	; max negative result
661	set_fr_iimmed	0x8000,0x7fff,fr8
662	cmmachs      	fr7,fr8,acc0,cc4,0
663	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
664	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
665	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
666	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
667	test_accg_immed 	0,accg0
668	test_acc_immed 	0,acc0
669	test_accg_immed 	0,accg1
670	test_acc_immed 	0,acc1
671
672	; Negative operands
673	set_fr_iimmed  	0xfffe,0xfffd,fr7		; multiply small numbers
674	set_fr_iimmed  	0xfffd,0xfffe,fr8
675	cmmachs      	fr7,fr8,acc0,cc4,0
676	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
677	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
678	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
679	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
680	test_accg_immed 	0,accg0
681	test_acc_immed 	0,acc0
682	test_accg_immed 	0,accg1
683	test_acc_immed 	0,acc1
684
685	set_fr_iimmed  	0xffff,0xfffe,fr7		; multiply by -1
686	set_fr_iimmed  	0xfffe,0xffff,fr8
687	cmmachs      	fr7,fr8,acc0,cc4,0
688	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
689	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
690	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
691	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
692	test_accg_immed 	0,accg0
693	test_acc_immed 	0,acc0
694	test_accg_immed 	0,accg1
695	test_acc_immed 	0,acc1
696
697	set_fr_iimmed	0x8001,0x8001,fr7	; almost max positive result
698	set_fr_iimmed	0x8001,0x8001,fr8
699	cmmachs      	fr7,fr8,acc0,cc4,0
700	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
701	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
702	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
703	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
704	test_accg_immed 	0,accg0
705	test_acc_immed 	0,acc0
706	test_accg_immed 	0,accg1
707	test_acc_immed 	0,acc1
708
709	set_fr_iimmed	0x8000,0x8000,fr7	; max positive result
710	set_fr_iimmed	0x8000,0x8000,fr8
711	cmmachs      	fr7,fr8,acc0,cc4,0
712	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
713	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
714	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
715	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
716	test_accg_immed 	0,accg0
717	test_acc_immed 	0,acc0
718	test_accg_immed 	0,accg1
719	test_acc_immed 	0,acc1
720
721	set_accg_immed 	0x7f,accg0		; saturation
722	set_acc_immed	0xffffffff,acc0
723	set_accg_immed 	0x7f,accg1
724	set_acc_immed	0xffffffff,acc1
725	set_fr_iimmed  	1,1,fr7
726	set_fr_iimmed  	1,1,fr8
727	cmmachs      	fr7,fr8,acc0,cc4,0
728	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
729	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
730	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
731	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
732	test_accg_immed 	0x7f,accg0		; saturation
733	test_acc_immed	0xffffffff,acc0
734	test_accg_immed 	0x7f,accg1
735	test_acc_immed	0xffffffff,acc1
736
737	set_fr_iimmed  	0x7fff,0x7fff,fr7	; saturation
738	set_fr_iimmed  	0x7fff,0x7fff,fr8
739	cmmachs      	fr7,fr8,acc0,cc4,0
740	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
741	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
742	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
743	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
744	test_accg_immed 	0x7f,accg0		; saturation
745	test_acc_immed	0xffffffff,acc0
746	test_accg_immed 	0x7f,accg1
747	test_acc_immed	0xffffffff,acc1
748
749	set_accg_immed 	0x80,accg0		; saturation
750	set_acc_immed	0,acc0
751	set_accg_immed 	0x80,accg1
752	set_acc_immed	0,acc1
753	set_fr_iimmed  	0xffff,0,fr7
754	set_fr_iimmed  	1,0xffff,fr8
755	cmmachs      	fr7,fr8,acc0,cc4,0
756	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
757	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
758	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
759	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
760	test_accg_immed 	0x80,accg0		; saturation
761	test_acc_immed	0,acc0
762	test_accg_immed 	0x80,accg1
763	test_acc_immed	0,acc1
764
765	set_fr_iimmed  	0x0000,0x8000,fr7	; saturation
766	set_fr_iimmed  	0x7fff,0x7fff,fr8
767	cmmachs      	fr7,fr8,acc0,cc4,0
768	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
769	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
770	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
771	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
772	test_accg_immed 	0x80,accg0		; saturation
773	test_acc_immed	0,acc0
774	test_accg_immed 	0x80,accg1
775	test_acc_immed	0,acc1
776
777	; Positive operands
778	set_spr_immed 	0x0,msr0
779	set_accg_immed 	0x0,accg0
780	set_acc_immed	0x0,acc0
781	set_accg_immed 	0x0,accg1
782	set_acc_immed	0x0,acc1
783	set_fr_iimmed  	2,3,fr7		; multiply small numbers
784	set_fr_iimmed  	3,2,fr8
785	cmmachs      	fr7,fr8,acc0,cc1,1
786	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
787	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
788	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
789	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
790	test_accg_immed 	0,accg0
791	test_acc_immed 	0,acc0
792	test_accg_immed 	0,accg1
793	test_acc_immed 	0,acc1
794
795	set_fr_iimmed  	0,1,fr7		; multiply by 0
796	set_fr_iimmed  	2,0,fr8
797	cmmachs      	fr7,fr8,acc0,cc1,1
798	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
799	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
800	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
801	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
802	test_accg_immed 	0,accg0
803	test_acc_immed 	0,acc0
804	test_accg_immed 	0,accg1
805	test_acc_immed 	0,acc1
806
807	set_fr_iimmed  	2,1,fr7		; multiply by 1
808	set_fr_iimmed  	1,2,fr8
809	cmmachs      	fr7,fr8,acc0,cc1,1
810	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
811	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
812	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
813	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
814	test_accg_immed 	0,accg0
815	test_acc_immed 	0,acc0
816	test_accg_immed 	0,accg1
817	test_acc_immed 	0,acc1
818
819	set_fr_iimmed	0x3fff,2,fr7	; 15 bit result
820	set_fr_iimmed  	2,0x3fff,fr8
821	cmmachs      	fr7,fr8,acc0,cc1,1
822	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
823	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
824	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
825	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
826	test_accg_immed 	0,accg0
827	test_acc_immed 	0,acc0
828	test_accg_immed 	0,accg1
829	test_acc_immed 	0,acc1
830
831	set_fr_iimmed	0x4000,2,fr7	; 16 bit result
832	set_fr_iimmed  	2,0x4000,fr8
833	cmmachs      	fr7,fr8,acc0,cc1,1
834	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
835	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
836	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
837	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
838	test_accg_immed 	0,accg0
839	test_acc_immed 	0,acc0
840	test_accg_immed 	0,accg1
841	test_acc_immed 	0,acc1
842
843	set_fr_iimmed	0x7fff,0x7fff,fr7	; max positive result
844	set_fr_iimmed	0x7fff,0x7fff,fr8
845	cmmachs      	fr7,fr8,acc0,cc1,1
846	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
847	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
848	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
849	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
850	test_accg_immed 	0,accg0
851	test_acc_immed 	0,acc0
852	test_accg_immed 	0,accg1
853	test_acc_immed 	0,acc1
854
855	; Mixed operands
856	set_fr_iimmed  	2,0xfffd,fr7		; multiply small numbers
857	set_fr_iimmed  	0xfffd,2,fr8
858	cmmachs      	fr7,fr8,acc0,cc1,1
859	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
860	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
861	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
862	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
863	test_accg_immed 	0,accg0
864	test_acc_immed 	0,acc0
865	test_accg_immed 	0,accg1
866	test_acc_immed 	0,acc1
867
868	set_fr_iimmed  	0xfffe,1,fr7		; multiply by 1
869	set_fr_iimmed  	1,0xfffe,fr8
870	cmmachs      	fr7,fr8,acc0,cc1,1
871	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
872	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
873	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
874	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
875	test_accg_immed 	0,accg0
876	test_acc_immed 	0,acc0
877	test_accg_immed 	0,accg1
878	test_acc_immed 	0,acc1
879
880	set_fr_iimmed  	0xfffe,0,fr7		; multiply by 0
881	set_fr_iimmed  	0,0xfffe,fr8
882	cmmachs      	fr7,fr8,acc0,cc1,1
883	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
884	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
885	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
886	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
887	test_accg_immed 	0,accg0
888	test_acc_immed 	0,acc0
889	test_accg_immed 	0,accg1
890	test_acc_immed 	0,acc1
891
892	set_fr_iimmed  	0x2001,0xfffe,fr7	; 15 bit result
893	set_fr_iimmed  	0xfffe,0x2001,fr8
894	cmmachs      	fr7,fr8,acc0,cc1,1
895	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
896	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
897	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
898	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
899	test_accg_immed 	0,accg0
900	test_acc_immed 	0,acc0
901	test_accg_immed 	0,accg1
902	test_acc_immed 	0,acc1
903
904	set_fr_iimmed	0x4000,0xfffe,fr7	; 16 bit result
905	set_fr_iimmed  	0xfffe,0x4000,fr8
906	cmmachs      	fr7,fr8,acc0,cc5,1
907	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
908	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
909	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
910	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
911	test_accg_immed 	0,accg0
912	test_acc_immed 	0,acc0
913	test_accg_immed 	0,accg1
914	test_acc_immed 	0,acc1
915
916	set_fr_iimmed	0x7fff,0x8000,fr7	; max negative result
917	set_fr_iimmed	0x8000,0x7fff,fr8
918	cmmachs      	fr7,fr8,acc0,cc5,1
919	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
920	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
921	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
922	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
923	test_accg_immed 	0,accg0
924	test_acc_immed 	0,acc0
925	test_accg_immed 	0,accg1
926	test_acc_immed 	0,acc1
927
928	; Negative operands
929	set_fr_iimmed  	0xfffe,0xfffd,fr7		; multiply small numbers
930	set_fr_iimmed  	0xfffd,0xfffe,fr8
931	cmmachs      	fr7,fr8,acc0,cc5,1
932	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
933	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
934	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
935	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
936	test_accg_immed 	0,accg0
937	test_acc_immed 	0,acc0
938	test_accg_immed 	0,accg1
939	test_acc_immed 	0,acc1
940
941	set_fr_iimmed  	0xffff,0xfffe,fr7		; multiply by -1
942	set_fr_iimmed  	0xfffe,0xffff,fr8
943	cmmachs      	fr7,fr8,acc0,cc5,1
944	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
945	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
946	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
947	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
948	test_accg_immed 	0,accg0
949	test_acc_immed 	0,acc0
950	test_accg_immed 	0,accg1
951	test_acc_immed 	0,acc1
952
953	set_fr_iimmed	0x8001,0x8001,fr7	; almost max positive result
954	set_fr_iimmed	0x8001,0x8001,fr8
955	cmmachs      	fr7,fr8,acc0,cc5,1
956	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
957	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
958	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
959	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
960	test_accg_immed 	0,accg0
961	test_acc_immed 	0,acc0
962	test_accg_immed 	0,accg1
963	test_acc_immed 	0,acc1
964
965	set_fr_iimmed	0x8000,0x8000,fr7	; max positive result
966	set_fr_iimmed	0x8000,0x8000,fr8
967	cmmachs      	fr7,fr8,acc0,cc5,1
968	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
969	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
970	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
971	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
972	test_accg_immed 	0,accg0
973	test_acc_immed 	0,acc0
974	test_accg_immed 	0,accg1
975	test_acc_immed 	0,acc1
976
977	set_accg_immed 	0x7f,accg0		; saturation
978	set_acc_immed	0xffffffff,acc0
979	set_accg_immed 	0x7f,accg1
980	set_acc_immed	0xffffffff,acc1
981	set_fr_iimmed  	1,1,fr7
982	set_fr_iimmed  	1,1,fr8
983	cmmachs      	fr7,fr8,acc0,cc5,1
984	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
985	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
986	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
987	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
988	test_accg_immed 	0x7f,accg0		; saturation
989	test_acc_immed	0xffffffff,acc0
990	test_accg_immed 	0x7f,accg1
991	test_acc_immed	0xffffffff,acc1
992
993	set_fr_iimmed  	0x7fff,0x7fff,fr7	; saturation
994	set_fr_iimmed  	0x7fff,0x7fff,fr8
995	cmmachs      	fr7,fr8,acc0,cc5,1
996	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
997	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
998	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
999	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
1000	test_accg_immed 	0x7f,accg0		; saturation
1001	test_acc_immed	0xffffffff,acc0
1002	test_accg_immed 	0x7f,accg1
1003	test_acc_immed	0xffffffff,acc1
1004
1005	set_accg_immed 	0x80,accg0		; saturation
1006	set_acc_immed	0,acc0
1007	set_accg_immed 	0x80,accg1
1008	set_acc_immed	0,acc1
1009	set_fr_iimmed  	0xffff,0,fr7
1010	set_fr_iimmed  	1,0xffff,fr8
1011	cmmachs      	fr7,fr8,acc0,cc5,1
1012	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
1013	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
1014	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
1015	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
1016	test_accg_immed 	0x80,accg0		; saturation
1017	test_acc_immed	0,acc0
1018	test_accg_immed 	0x80,accg1
1019	test_acc_immed	0,acc1
1020
1021	set_fr_iimmed  	0x0000,0x8000,fr7	; saturation
1022	set_fr_iimmed  	0x7fff,0x7fff,fr8
1023	cmmachs      	fr7,fr8,acc0,cc5,1
1024	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
1025	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
1026	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
1027	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
1028	test_accg_immed 	0x80,accg0		; saturation
1029	test_acc_immed	0,acc0
1030	test_accg_immed 	0x80,accg1
1031	test_acc_immed	0,acc1
1032
1033	; Positive operands
1034	set_spr_immed 	0x0,msr0
1035	set_accg_immed 	0x0,accg0
1036	set_acc_immed	0x0,acc0
1037	set_accg_immed 	0x0,accg1
1038	set_acc_immed	0x0,acc1
1039	set_fr_iimmed  	2,3,fr7		; multiply small numbers
1040	set_fr_iimmed  	3,2,fr8
1041	cmmachs      	fr7,fr8,acc0,cc2,1
1042	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
1043	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
1044	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
1045	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
1046	test_accg_immed 	0,accg0
1047	test_acc_immed 	0,acc0
1048	test_accg_immed 	0,accg1
1049	test_acc_immed 	0,acc1
1050
1051	set_fr_iimmed  	0,1,fr7		; multiply by 0
1052	set_fr_iimmed  	2,0,fr8
1053	cmmachs      	fr7,fr8,acc0,cc2,0
1054	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
1055	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
1056	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
1057	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
1058	test_accg_immed 	0,accg0
1059	test_acc_immed 	0,acc0
1060	test_accg_immed 	0,accg1
1061	test_acc_immed 	0,acc1
1062
1063	set_fr_iimmed  	2,1,fr7		; multiply by 1
1064	set_fr_iimmed  	1,2,fr8
1065	cmmachs      	fr7,fr8,acc0,cc2,1
1066	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
1067	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
1068	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
1069	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
1070	test_accg_immed 	0,accg0
1071	test_acc_immed 	0,acc0
1072	test_accg_immed 	0,accg1
1073	test_acc_immed 	0,acc1
1074
1075	set_fr_iimmed	0x3fff,2,fr7	; 15 bit result
1076	set_fr_iimmed  	2,0x3fff,fr8
1077	cmmachs      	fr7,fr8,acc0,cc2,0
1078	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
1079	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
1080	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
1081	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
1082	test_accg_immed 	0,accg0
1083	test_acc_immed 	0,acc0
1084	test_accg_immed 	0,accg1
1085	test_acc_immed 	0,acc1
1086
1087	set_fr_iimmed	0x4000,2,fr7	; 16 bit result
1088	set_fr_iimmed  	2,0x4000,fr8
1089	cmmachs      	fr7,fr8,acc0,cc2,1
1090	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
1091	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
1092	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
1093	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
1094	test_accg_immed 	0,accg0
1095	test_acc_immed 	0,acc0
1096	test_accg_immed 	0,accg1
1097	test_acc_immed 	0,acc1
1098
1099	set_fr_iimmed	0x7fff,0x7fff,fr7	; max positive result
1100	set_fr_iimmed	0x7fff,0x7fff,fr8
1101	cmmachs      	fr7,fr8,acc0,cc2,0
1102	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
1103	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
1104	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
1105	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
1106	test_accg_immed 	0,accg0
1107	test_acc_immed 	0,acc0
1108	test_accg_immed 	0,accg1
1109	test_acc_immed 	0,acc1
1110
1111	; Mixed operands
1112	set_fr_iimmed  	2,0xfffd,fr7		; multiply small numbers
1113	set_fr_iimmed  	0xfffd,2,fr8
1114	cmmachs      	fr7,fr8,acc0,cc2,1
1115	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
1116	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
1117	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
1118	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
1119	test_accg_immed 	0,accg0
1120	test_acc_immed 	0,acc0
1121	test_accg_immed 	0,accg1
1122	test_acc_immed 	0,acc1
1123
1124	set_fr_iimmed  	0xfffe,1,fr7		; multiply by 1
1125	set_fr_iimmed  	1,0xfffe,fr8
1126	cmmachs      	fr7,fr8,acc0,cc2,0
1127	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
1128	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
1129	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
1130	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
1131	test_accg_immed 	0,accg0
1132	test_acc_immed 	0,acc0
1133	test_accg_immed 	0,accg1
1134	test_acc_immed 	0,acc1
1135
1136	set_fr_iimmed  	0xfffe,0,fr7		; multiply by 0
1137	set_fr_iimmed  	0,0xfffe,fr8
1138	cmmachs      	fr7,fr8,acc0,cc2,1
1139	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
1140	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
1141	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
1142	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
1143	test_accg_immed 	0,accg0
1144	test_acc_immed 	0,acc0
1145	test_accg_immed 	0,accg1
1146	test_acc_immed 	0,acc1
1147
1148	set_fr_iimmed  	0x2001,0xfffe,fr7	; 15 bit result
1149	set_fr_iimmed  	0xfffe,0x2001,fr8
1150	cmmachs      	fr7,fr8,acc0,cc2,0
1151	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
1152	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
1153	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
1154	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
1155	test_accg_immed 	0,accg0
1156	test_acc_immed 	0,acc0
1157	test_accg_immed 	0,accg1
1158	test_acc_immed 	0,acc1
1159
1160	set_fr_iimmed	0x4000,0xfffe,fr7	; 16 bit result
1161	set_fr_iimmed  	0xfffe,0x4000,fr8
1162	cmmachs      	fr7,fr8,acc0,cc6,1
1163	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
1164	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
1165	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
1166	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
1167	test_accg_immed 	0,accg0
1168	test_acc_immed 	0,acc0
1169	test_accg_immed 	0,accg1
1170	test_acc_immed 	0,acc1
1171
1172	set_fr_iimmed	0x7fff,0x8000,fr7	; max negative result
1173	set_fr_iimmed	0x8000,0x7fff,fr8
1174	cmmachs      	fr7,fr8,acc0,cc6,0
1175	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
1176	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
1177	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
1178	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
1179	test_accg_immed 	0,accg0
1180	test_acc_immed 	0,acc0
1181	test_accg_immed 	0,accg1
1182	test_acc_immed 	0,acc1
1183
1184	; Negative operands
1185	set_fr_iimmed  	0xfffe,0xfffd,fr7		; multiply small numbers
1186	set_fr_iimmed  	0xfffd,0xfffe,fr8
1187	cmmachs      	fr7,fr8,acc0,cc6,1
1188	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
1189	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
1190	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
1191	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
1192	test_accg_immed 	0,accg0
1193	test_acc_immed 	0,acc0
1194	test_accg_immed 	0,accg1
1195	test_acc_immed 	0,acc1
1196
1197	set_fr_iimmed  	0xffff,0xfffe,fr7		; multiply by -1
1198	set_fr_iimmed  	0xfffe,0xffff,fr8
1199	cmmachs      	fr7,fr8,acc0,cc6,0
1200	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
1201	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
1202	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
1203	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
1204	test_accg_immed 	0,accg0
1205	test_acc_immed 	0,acc0
1206	test_accg_immed 	0,accg1
1207	test_acc_immed 	0,acc1
1208
1209	set_fr_iimmed	0x8001,0x8001,fr7	; almost max positive result
1210	set_fr_iimmed	0x8001,0x8001,fr8
1211	cmmachs      	fr7,fr8,acc0,cc6,1
1212	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
1213	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
1214	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
1215	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
1216	test_accg_immed 	0,accg0
1217	test_acc_immed 	0,acc0
1218	test_accg_immed 	0,accg1
1219	test_acc_immed 	0,acc1
1220
1221	set_fr_iimmed	0x8000,0x8000,fr7	; max positive result
1222	set_fr_iimmed	0x8000,0x8000,fr8
1223	cmmachs      	fr7,fr8,acc0,cc6,0
1224	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
1225	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
1226	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
1227	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
1228	test_accg_immed 	0,accg0
1229	test_acc_immed 	0,acc0
1230	test_accg_immed 	0,accg1
1231	test_acc_immed 	0,acc1
1232
1233	set_accg_immed 	0x7f,accg0		; saturation
1234	set_acc_immed	0xffffffff,acc0
1235	set_accg_immed 	0x7f,accg1
1236	set_acc_immed	0xffffffff,acc1
1237	set_fr_iimmed  	1,1,fr7
1238	set_fr_iimmed  	1,1,fr8
1239	cmmachs      	fr7,fr8,acc0,cc6,1
1240	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
1241	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
1242	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
1243	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
1244	test_accg_immed 	0x7f,accg0		; saturation
1245	test_acc_immed	0xffffffff,acc0
1246	test_accg_immed 	0x7f,accg1
1247	test_acc_immed	0xffffffff,acc1
1248
1249	set_fr_iimmed  	0x7fff,0x7fff,fr7	; saturation
1250	set_fr_iimmed  	0x7fff,0x7fff,fr8
1251	cmmachs      	fr7,fr8,acc0,cc6,0
1252	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
1253	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
1254	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
1255	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
1256	test_accg_immed 	0x7f,accg0		; saturation
1257	test_acc_immed	0xffffffff,acc0
1258	test_accg_immed 	0x7f,accg1
1259	test_acc_immed	0xffffffff,acc1
1260
1261	set_accg_immed 	0x80,accg0		; saturation
1262	set_acc_immed	0,acc0
1263	set_accg_immed 	0x80,accg1
1264	set_acc_immed	0,acc1
1265	set_fr_iimmed  	0xffff,0,fr7
1266	set_fr_iimmed  	1,0xffff,fr8
1267	cmmachs      	fr7,fr8,acc0,cc6,1
1268	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
1269	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
1270	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
1271	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
1272	test_accg_immed 	0x80,accg0		; saturation
1273	test_acc_immed	0,acc0
1274	test_accg_immed 	0x80,accg1
1275	test_acc_immed	0,acc1
1276
1277	set_fr_iimmed  	0x0000,0x8000,fr7	; saturation
1278	set_fr_iimmed  	0x7fff,0x7fff,fr8
1279	cmmachs      	fr7,fr8,acc0,cc6,0
1280	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
1281	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
1282	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
1283	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
1284	test_accg_immed 	0x80,accg0		; saturation
1285	test_acc_immed	0,acc0
1286	test_accg_immed 	0x80,accg1
1287	test_acc_immed	0,acc1
1288;
1289	; Positive operands
1290	set_spr_immed 	0x0,msr0
1291	set_accg_immed 	0x0,accg0
1292	set_acc_immed	0x0,acc0
1293	set_accg_immed 	0x0,accg1
1294	set_acc_immed	0x0,acc1
1295	set_fr_iimmed  	2,3,fr7		; multiply small numbers
1296	set_fr_iimmed  	3,2,fr8
1297	cmmachs      	fr7,fr8,acc0,cc3,1
1298	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
1299	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
1300	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
1301	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
1302	test_accg_immed 	0,accg0
1303	test_acc_immed 	0,acc0
1304	test_accg_immed 	0,accg1
1305	test_acc_immed 	0,acc1
1306
1307	set_fr_iimmed  	0,1,fr7		; multiply by 0
1308	set_fr_iimmed  	2,0,fr8
1309	cmmachs      	fr7,fr8,acc0,cc3,0
1310	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
1311	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
1312	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
1313	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
1314	test_accg_immed 	0,accg0
1315	test_acc_immed 	0,acc0
1316	test_accg_immed 	0,accg1
1317	test_acc_immed 	0,acc1
1318
1319	set_fr_iimmed  	2,1,fr7		; multiply by 1
1320	set_fr_iimmed  	1,2,fr8
1321	cmmachs      	fr7,fr8,acc0,cc3,1
1322	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
1323	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
1324	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
1325	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
1326	test_accg_immed 	0,accg0
1327	test_acc_immed 	0,acc0
1328	test_accg_immed 	0,accg1
1329	test_acc_immed 	0,acc1
1330
1331	set_fr_iimmed	0x3fff,2,fr7	; 15 bit result
1332	set_fr_iimmed  	2,0x3fff,fr8
1333	cmmachs      	fr7,fr8,acc0,cc3,0
1334	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
1335	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
1336	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
1337	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
1338	test_accg_immed 	0,accg0
1339	test_acc_immed 	0,acc0
1340	test_accg_immed 	0,accg1
1341	test_acc_immed 	0,acc1
1342
1343	set_fr_iimmed	0x4000,2,fr7	; 16 bit result
1344	set_fr_iimmed  	2,0x4000,fr8
1345	cmmachs      	fr7,fr8,acc0,cc3,1
1346	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
1347	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
1348	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
1349	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
1350	test_accg_immed 	0,accg0
1351	test_acc_immed 	0,acc0
1352	test_accg_immed 	0,accg1
1353	test_acc_immed 	0,acc1
1354
1355	set_fr_iimmed	0x7fff,0x7fff,fr7	; max positive result
1356	set_fr_iimmed	0x7fff,0x7fff,fr8
1357	cmmachs      	fr7,fr8,acc0,cc3,0
1358	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
1359	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
1360	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
1361	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
1362	test_accg_immed 	0,accg0
1363	test_acc_immed 	0,acc0
1364	test_accg_immed 	0,accg1
1365	test_acc_immed 	0,acc1
1366
1367	; Mixed operands
1368	set_fr_iimmed  	2,0xfffd,fr7		; multiply small numbers
1369	set_fr_iimmed  	0xfffd,2,fr8
1370	cmmachs      	fr7,fr8,acc0,cc3,1
1371	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
1372	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
1373	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
1374	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
1375	test_accg_immed 	0,accg0
1376	test_acc_immed 	0,acc0
1377	test_accg_immed 	0,accg1
1378	test_acc_immed 	0,acc1
1379
1380	set_fr_iimmed  	0xfffe,1,fr7		; multiply by 1
1381	set_fr_iimmed  	1,0xfffe,fr8
1382	cmmachs      	fr7,fr8,acc0,cc3,0
1383	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
1384	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
1385	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
1386	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
1387	test_accg_immed 	0,accg0
1388	test_acc_immed 	0,acc0
1389	test_accg_immed 	0,accg1
1390	test_acc_immed 	0,acc1
1391
1392	set_fr_iimmed  	0xfffe,0,fr7		; multiply by 0
1393	set_fr_iimmed  	0,0xfffe,fr8
1394	cmmachs      	fr7,fr8,acc0,cc3,1
1395	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
1396	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
1397	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
1398	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
1399	test_accg_immed 	0,accg0
1400	test_acc_immed 	0,acc0
1401	test_accg_immed 	0,accg1
1402	test_acc_immed 	0,acc1
1403
1404	set_fr_iimmed  	0x2001,0xfffe,fr7	; 15 bit result
1405	set_fr_iimmed  	0xfffe,0x2001,fr8
1406	cmmachs      	fr7,fr8,acc0,cc3,0
1407	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
1408	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
1409	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
1410	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
1411	test_accg_immed 	0,accg0
1412	test_acc_immed 	0,acc0
1413	test_accg_immed 	0,accg1
1414	test_acc_immed 	0,acc1
1415
1416	set_fr_iimmed	0x4000,0xfffe,fr7	; 16 bit result
1417	set_fr_iimmed  	0xfffe,0x4000,fr8
1418	cmmachs      	fr7,fr8,acc0,cc7,1
1419	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
1420	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
1421	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
1422	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
1423	test_accg_immed 	0,accg0
1424	test_acc_immed 	0,acc0
1425	test_accg_immed 	0,accg1
1426	test_acc_immed 	0,acc1
1427
1428	set_fr_iimmed	0x7fff,0x8000,fr7	; max negative result
1429	set_fr_iimmed	0x8000,0x7fff,fr8
1430	cmmachs      	fr7,fr8,acc0,cc7,0
1431	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
1432	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
1433	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
1434	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
1435	test_accg_immed 	0,accg0
1436	test_acc_immed 	0,acc0
1437	test_accg_immed 	0,accg1
1438	test_acc_immed 	0,acc1
1439
1440	; Negative operands
1441	set_fr_iimmed  	0xfffe,0xfffd,fr7		; multiply small numbers
1442	set_fr_iimmed  	0xfffd,0xfffe,fr8
1443	cmmachs      	fr7,fr8,acc0,cc7,1
1444	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
1445	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
1446	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
1447	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
1448	test_accg_immed 	0,accg0
1449	test_acc_immed 	0,acc0
1450	test_accg_immed 	0,accg1
1451	test_acc_immed 	0,acc1
1452
1453	set_fr_iimmed  	0xffff,0xfffe,fr7		; multiply by -1
1454	set_fr_iimmed  	0xfffe,0xffff,fr8
1455	cmmachs      	fr7,fr8,acc0,cc7,0
1456	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
1457	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
1458	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
1459	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
1460	test_accg_immed 	0,accg0
1461	test_acc_immed 	0,acc0
1462	test_accg_immed 	0,accg1
1463	test_acc_immed 	0,acc1
1464
1465	set_fr_iimmed	0x8001,0x8001,fr7	; almost max positive result
1466	set_fr_iimmed	0x8001,0x8001,fr8
1467	cmmachs      	fr7,fr8,acc0,cc7,1
1468	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
1469	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
1470	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
1471	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
1472	test_accg_immed 	0,accg0
1473	test_acc_immed 	0,acc0
1474	test_accg_immed 	0,accg1
1475	test_acc_immed 	0,acc1
1476
1477	set_fr_iimmed	0x8000,0x8000,fr7	; max positive result
1478	set_fr_iimmed	0x8000,0x8000,fr8
1479	cmmachs      	fr7,fr8,acc0,cc7,0
1480	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
1481	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
1482	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
1483	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
1484	test_accg_immed 	0,accg0
1485	test_acc_immed 	0,acc0
1486	test_accg_immed 	0,accg1
1487	test_acc_immed 	0,acc1
1488
1489	set_accg_immed 	0x7f,accg0		; saturation
1490	set_acc_immed	0xffffffff,acc0
1491	set_accg_immed 	0x7f,accg1
1492	set_acc_immed	0xffffffff,acc1
1493	set_fr_iimmed  	1,1,fr7
1494	set_fr_iimmed  	1,1,fr8
1495	cmmachs      	fr7,fr8,acc0,cc7,1
1496	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
1497	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
1498	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
1499	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
1500	test_accg_immed 	0x7f,accg0		; saturation
1501	test_acc_immed	0xffffffff,acc0
1502	test_accg_immed 	0x7f,accg1
1503	test_acc_immed	0xffffffff,acc1
1504
1505	set_fr_iimmed  	0x7fff,0x7fff,fr7	; saturation
1506	set_fr_iimmed  	0x7fff,0x7fff,fr8
1507	cmmachs      	fr7,fr8,acc0,cc7,0
1508	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
1509	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
1510	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
1511	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
1512	test_accg_immed 	0x7f,accg0		; saturation
1513	test_acc_immed	0xffffffff,acc0
1514	test_accg_immed 	0x7f,accg1
1515	test_acc_immed	0xffffffff,acc1
1516
1517	set_accg_immed 	0x80,accg0		; saturation
1518	set_acc_immed	0,acc0
1519	set_accg_immed 	0x80,accg1
1520	set_acc_immed	0,acc1
1521	set_fr_iimmed  	0xffff,0,fr7
1522	set_fr_iimmed  	1,0xffff,fr8
1523	cmmachs      	fr7,fr8,acc0,cc7,1
1524	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
1525	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
1526	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
1527	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
1528	test_accg_immed 	0x80,accg0		; saturation
1529	test_acc_immed	0,acc0
1530	test_accg_immed 	0x80,accg1
1531	test_acc_immed	0,acc1
1532
1533	set_fr_iimmed  	0x0000,0x8000,fr7	; saturation
1534	set_fr_iimmed  	0x7fff,0x7fff,fr8
1535	cmmachs      	fr7,fr8,acc0,cc7,0
1536	test_spr_bits	0x3c,2,0,msr0		; msr0.sie is clear
1537	test_spr_bits	2,1,0,msr0		; msr0.ovf not set
1538	test_spr_bits	1,0,0,msr0		; msr0.aovf not set
1539	test_spr_bits	0x7000,12,1,msr0	; msr0.mtt always set
1540	test_accg_immed 	0x80,accg0		; saturation
1541	test_acc_immed	0,acc0
1542	test_accg_immed 	0x80,accg1
1543	test_acc_immed	0,acc1
1544
1545	pass
1546