1 # frv testcase for cmmulhs $GRi,$GRj,$ACCk,$CCi,$cond
4 .include "testutils.inc"
10 set_spr_immed 0x1b1b,cccr
13 set_fr_iimmed 2,3,fr7 ; multiply small numbers
15 cmmulhs fr7,fr8,acc0,cc0,1
16 test_accg_immed 0,accg0
18 test_accg_immed 0,accg1
21 set_fr_iimmed 0,1,fr7 ; multiply by 0
23 cmmulhs fr7,fr8,acc0,cc0,1
24 test_accg_immed 0,accg0
26 test_accg_immed 0,accg1
29 set_fr_iimmed 2,1,fr7 ; multiply by 1
31 cmmulhs fr7,fr8,acc0,cc0,1
32 test_accg_immed 0,accg0
34 test_accg_immed 0,accg1
37 set_fr_iimmed 0x3fff,2,fr7 ; 15 bit result
38 set_fr_iimmed 2,0x3fff,fr8
39 cmmulhs fr7,fr8,acc0,cc0,1
40 test_accg_immed 0,accg0
41 test_acc_limmed 0,0x7ffe,acc0
42 test_accg_immed 0,accg1
43 test_acc_limmed 0,0x7ffe,acc1
45 set_fr_iimmed 0x4000,2,fr7 ; 16 bit result
46 set_fr_iimmed 2,0x4000,fr8
47 cmmulhs fr7,fr8,acc0,cc0,1
48 test_accg_immed 0,accg0
49 test_acc_limmed 0x0000,0x8000,acc0
50 test_accg_immed 0,accg1
51 test_acc_limmed 0x0000,0x8000,acc1
53 set_fr_iimmed 0x7fff,0x7fff,fr7 ; max positive result
54 set_fr_iimmed 0x7fff,0x7fff,fr8
55 cmmulhs fr7,fr8,acc0,cc0,1
56 test_accg_immed 0,accg0
57 test_acc_limmed 0x3fff,0x0001,acc0
58 test_accg_immed 0,accg1
59 test_acc_limmed 0x3fff,0x0001,acc1
62 set_fr_iimmed 2,0xfffd,fr7 ; multiply small numbers
63 set_fr_iimmed 0xfffd,2,fr8
64 cmmulhs fr7,fr8,acc0,cc0,1
65 test_accg_immed 0xff,accg0
66 test_acc_immed -6,acc0
67 test_accg_immed 0xff,accg1
68 test_acc_immed -6,acc1
70 set_fr_iimmed 0xfffe,1,fr7 ; multiply by 1
71 set_fr_iimmed 1,0xfffe,fr8
72 cmmulhs fr7,fr8,acc0,cc0,1
73 test_accg_immed 0xff,accg0
74 test_acc_immed -2,acc0
75 test_accg_immed 0xff,accg1
76 test_acc_immed -2,acc1
78 set_fr_iimmed 0xfffe,0,fr7 ; multiply by 0
79 set_fr_iimmed 0,0xfffe,fr8
80 cmmulhs fr7,fr8,acc0,cc4,1
81 test_accg_immed 0,accg0
83 test_accg_immed 0,accg1
86 set_fr_iimmed 0x2001,0xfffe,fr7 ; 15 bit result
87 set_fr_iimmed 0xfffe,0x2001,fr8
88 cmmulhs fr7,fr8,acc0,cc4,1
89 test_accg_immed 0xff,accg0
90 test_acc_limmed 0xffff,0xbffe,acc0
91 test_accg_immed 0xff,accg1
92 test_acc_limmed 0xffff,0xbffe,acc1
94 set_fr_iimmed 0x4000,0xfffe,fr7 ; 16 bit result
95 set_fr_iimmed 0xfffe,0x4000,fr8
96 cmmulhs fr7,fr8,acc0,cc4,1
97 test_accg_immed 0xff,accg0
98 test_acc_limmed 0xffff,0x8000,acc0
99 test_accg_immed 0xff,accg1
100 test_acc_limmed 0xffff,0x8000,acc1
102 set_fr_iimmed 0x7fff,0x8000,fr7 ; max negative result
103 set_fr_iimmed 0x8000,0x7fff,fr8
104 cmmulhs fr7,fr8,acc0,cc4,1
105 test_accg_immed 0xff,accg0
106 test_acc_limmed 0xc000,0x8000,acc0
107 test_accg_immed 0xff,accg1
108 test_acc_limmed 0xc000,0x8000,acc1
111 set_fr_iimmed 0xfffe,0xfffd,fr7 ; multiply small numbers
112 set_fr_iimmed 0xfffd,0xfffe,fr8
113 cmmulhs fr7,fr8,acc0,cc4,1
114 test_accg_immed 0,accg0
115 test_acc_immed 6,acc0
116 test_accg_immed 0,accg1
117 test_acc_immed 6,acc1
119 set_fr_iimmed 0xffff,0xfffe,fr7 ; multiply by -1
120 set_fr_iimmed 0xfffe,0xffff,fr8
121 cmmulhs fr7,fr8,acc0,cc4,1
122 test_accg_immed 0,accg0
123 test_acc_immed 2,acc0
124 test_accg_immed 0,accg1
125 test_acc_immed 2,acc1
127 set_fr_iimmed 0x8001,0x8001,fr7 ; almost max positive result
128 set_fr_iimmed 0x8001,0x8001,fr8
129 cmmulhs fr7,fr8,acc0,cc4,1
130 test_accg_immed 0,accg0
131 test_acc_immed 0x3fff0001,acc0
132 test_accg_immed 0,accg1
133 test_acc_immed 0x3fff0001,acc1
135 set_fr_iimmed 0x8000,0x8000,fr7 ; max positive result
136 set_fr_iimmed 0x8000,0x8000,fr8
137 cmmulhs fr7,fr8,acc0,cc4,1
138 test_accg_immed 0,accg0
139 test_acc_immed 0x40000000,acc0
140 test_accg_immed 0,accg1
141 test_acc_immed 0x40000000,acc1
144 set_fr_iimmed 2,3,fr7 ; multiply small numbers
145 set_fr_iimmed 3,2,fr8
146 cmmulhs fr7,fr8,acc0,cc1,0
147 test_accg_immed 0,accg0
148 test_acc_immed 6,acc0
149 test_accg_immed 0,accg1
150 test_acc_immed 6,acc1
152 set_fr_iimmed 0,1,fr7 ; multiply by 0
153 set_fr_iimmed 2,0,fr8
154 cmmulhs fr7,fr8,acc0,cc1,0
155 test_accg_immed 0,accg0
156 test_acc_immed 0,acc0
157 test_accg_immed 0,accg1
158 test_acc_immed 0,acc1
160 set_fr_iimmed 2,1,fr7 ; multiply by 1
161 set_fr_iimmed 1,2,fr8
162 cmmulhs fr7,fr8,acc0,cc1,0
163 test_accg_immed 0,accg0
164 test_acc_immed 2,acc0
165 test_accg_immed 0,accg1
166 test_acc_immed 2,acc1
168 set_fr_iimmed 0x3fff,2,fr7 ; 15 bit result
169 set_fr_iimmed 2,0x3fff,fr8
170 cmmulhs fr7,fr8,acc0,cc1,0
171 test_accg_immed 0,accg0
172 test_acc_limmed 0,0x7ffe,acc0
173 test_accg_immed 0,accg1
174 test_acc_limmed 0,0x7ffe,acc1
176 set_fr_iimmed 0x4000,2,fr7 ; 16 bit result
177 set_fr_iimmed 2,0x4000,fr8
178 cmmulhs fr7,fr8,acc0,cc1,0
179 test_accg_immed 0,accg0
180 test_acc_limmed 0x0000,0x8000,acc0
181 test_accg_immed 0,accg1
182 test_acc_limmed 0x0000,0x8000,acc1
184 set_fr_iimmed 0x7fff,0x7fff,fr7 ; max positive result
185 set_fr_iimmed 0x7fff,0x7fff,fr8
186 cmmulhs fr7,fr8,acc0,cc1,0
187 test_accg_immed 0,accg0
188 test_acc_limmed 0x3fff,0x0001,acc0
189 test_accg_immed 0,accg1
190 test_acc_limmed 0x3fff,0x0001,acc1
193 set_fr_iimmed 2,0xfffd,fr7 ; multiply small numbers
194 set_fr_iimmed 0xfffd,2,fr8
195 cmmulhs fr7,fr8,acc0,cc1,0
196 test_accg_immed 0xff,accg0
197 test_acc_immed -6,acc0
198 test_accg_immed 0xff,accg1
199 test_acc_immed -6,acc1
201 set_fr_iimmed 0xfffe,1,fr7 ; multiply by 1
202 set_fr_iimmed 1,0xfffe,fr8
203 cmmulhs fr7,fr8,acc0,cc1,0
204 test_accg_immed 0xff,accg0
205 test_acc_immed -2,acc0
206 test_accg_immed 0xff,accg1
207 test_acc_immed -2,acc1
209 set_fr_iimmed 0xfffe,0,fr7 ; multiply by 0
210 set_fr_iimmed 0,0xfffe,fr8
211 cmmulhs fr7,fr8,acc0,cc5,0
212 test_accg_immed 0,accg0
213 test_acc_immed 0,acc0
214 test_accg_immed 0,accg1
215 test_acc_immed 0,acc1
217 set_fr_iimmed 0x2001,0xfffe,fr7 ; 15 bit result
218 set_fr_iimmed 0xfffe,0x2001,fr8
219 cmmulhs fr7,fr8,acc0,cc5,0
220 test_accg_immed 0xff,accg0
221 test_acc_limmed 0xffff,0xbffe,acc0
222 test_accg_immed 0xff,accg1
223 test_acc_limmed 0xffff,0xbffe,acc1
225 set_fr_iimmed 0x4000,0xfffe,fr7 ; 16 bit result
226 set_fr_iimmed 0xfffe,0x4000,fr8
227 cmmulhs fr7,fr8,acc0,cc5,0
228 test_accg_immed 0xff,accg0
229 test_acc_limmed 0xffff,0x8000,acc0
230 test_accg_immed 0xff,accg1
231 test_acc_limmed 0xffff,0x8000,acc1
233 set_fr_iimmed 0x7fff,0x8000,fr7 ; max negative result
234 set_fr_iimmed 0x8000,0x7fff,fr8
235 cmmulhs fr7,fr8,acc0,cc5,0
236 test_accg_immed 0xff,accg0
237 test_acc_limmed 0xc000,0x8000,acc0
238 test_accg_immed 0xff,accg1
239 test_acc_limmed 0xc000,0x8000,acc1
242 set_fr_iimmed 0xfffe,0xfffd,fr7 ; multiply small numbers
243 set_fr_iimmed 0xfffd,0xfffe,fr8
244 cmmulhs fr7,fr8,acc0,cc5,0
245 test_accg_immed 0,accg0
246 test_acc_immed 6,acc0
247 test_accg_immed 0,accg1
248 test_acc_immed 6,acc1
250 set_fr_iimmed 0xffff,0xfffe,fr7 ; multiply by -1
251 set_fr_iimmed 0xfffe,0xffff,fr8
252 cmmulhs fr7,fr8,acc0,cc5,0
253 test_accg_immed 0,accg0
254 test_acc_immed 2,acc0
255 test_accg_immed 0,accg1
256 test_acc_immed 2,acc1
258 set_fr_iimmed 0x8001,0x8001,fr7 ; almost max positive result
259 set_fr_iimmed 0x8001,0x8001,fr8
260 cmmulhs fr7,fr8,acc0,cc5,0
261 test_accg_immed 0,accg0
262 test_acc_immed 0x3fff0001,acc0
263 test_accg_immed 0,accg1
264 test_acc_immed 0x3fff0001,acc1
266 set_fr_iimmed 0x8000,0x8000,fr7 ; max positive result
267 set_fr_iimmed 0x8000,0x8000,fr8
268 cmmulhs fr7,fr8,acc0,cc5,0
269 test_accg_immed 0,accg0
270 test_acc_immed 0x40000000,acc0
271 test_accg_immed 0,accg1
272 test_acc_immed 0x40000000,acc1
275 set_accg_immed 0x00000011,accg0
276 set_acc_immed 0x11111111,acc0
277 set_accg_immed 0x00000022,accg1
278 set_acc_immed 0x22222222,acc1
279 set_fr_iimmed 2,3,fr7 ; multiply small numbers
280 set_fr_iimmed 3,2,fr8
281 cmmulhs fr7,fr8,acc0,cc0,0
282 test_accg_immed 0x00000011,accg0
283 test_acc_immed 0x11111111,acc0
284 test_accg_immed 0x00000022,accg1
285 test_acc_immed 0x22222222,acc1
287 set_fr_iimmed 0,1,fr7 ; multiply by 0
288 set_fr_iimmed 2,0,fr8
289 cmmulhs fr7,fr8,acc0,cc0,0
290 test_accg_immed 0x00000011,accg0
291 test_acc_immed 0x11111111,acc0
292 test_accg_immed 0x00000022,accg1
293 test_acc_immed 0x22222222,acc1
295 set_fr_iimmed 2,1,fr7 ; multiply by 1
296 set_fr_iimmed 1,2,fr8
297 cmmulhs fr7,fr8,acc0,cc0,0
298 test_accg_immed 0x00000011,accg0
299 test_acc_immed 0x11111111,acc0
300 test_accg_immed 0x00000022,accg1
301 test_acc_immed 0x22222222,acc1
303 set_fr_iimmed 0x3fff,2,fr7 ; 15 bit result
304 set_fr_iimmed 2,0x3fff,fr8
305 cmmulhs fr7,fr8,acc0,cc0,0
306 test_accg_immed 0x00000011,accg0
307 test_acc_immed 0x11111111,acc0
308 test_accg_immed 0x00000022,accg1
309 test_acc_immed 0x22222222,acc1
311 set_fr_iimmed 0x4000,2,fr7 ; 16 bit result
312 set_fr_iimmed 2,0x4000,fr8
313 cmmulhs fr7,fr8,acc0,cc0,0
314 test_accg_immed 0x00000011,accg0
315 test_acc_immed 0x11111111,acc0
316 test_accg_immed 0x00000022,accg1
317 test_acc_immed 0x22222222,acc1
319 set_fr_iimmed 0x7fff,0x7fff,fr7 ; max positive result
320 set_fr_iimmed 0x7fff,0x7fff,fr8
321 cmmulhs fr7,fr8,acc0,cc0,0
322 test_accg_immed 0x00000011,accg0
323 test_acc_immed 0x11111111,acc0
324 test_accg_immed 0x00000022,accg1
325 test_acc_immed 0x22222222,acc1
328 set_fr_iimmed 2,0xfffd,fr7 ; multiply small numbers
329 set_fr_iimmed 0xfffd,2,fr8
330 cmmulhs fr7,fr8,acc0,cc0,0
331 test_accg_immed 0x00000011,accg0
332 test_acc_immed 0x11111111,acc0
333 test_accg_immed 0x00000022,accg1
334 test_acc_immed 0x22222222,acc1
336 set_fr_iimmed 0xfffe,1,fr7 ; multiply by 1
337 set_fr_iimmed 1,0xfffe,fr8
338 cmmulhs fr7,fr8,acc0,cc0,0
339 test_accg_immed 0x00000011,accg0
340 test_acc_immed 0x11111111,acc0
341 test_accg_immed 0x00000022,accg1
342 test_acc_immed 0x22222222,acc1
344 set_fr_iimmed 0xfffe,0,fr7 ; multiply by 0
345 set_fr_iimmed 0,0xfffe,fr8
346 cmmulhs fr7,fr8,acc0,cc4,0
347 test_accg_immed 0x00000011,accg0
348 test_acc_immed 0x11111111,acc0
349 test_accg_immed 0x00000022,accg1
350 test_acc_immed 0x22222222,acc1
352 set_fr_iimmed 0x2001,0xfffe,fr7 ; 15 bit result
353 set_fr_iimmed 0xfffe,0x2001,fr8
354 cmmulhs fr7,fr8,acc0,cc4,0
355 test_accg_immed 0x00000011,accg0
356 test_acc_immed 0x11111111,acc0
357 test_accg_immed 0x00000022,accg1
358 test_acc_immed 0x22222222,acc1
360 set_fr_iimmed 0x4000,0xfffe,fr7 ; 16 bit result
361 set_fr_iimmed 0xfffe,0x4000,fr8
362 cmmulhs fr7,fr8,acc0,cc4,0
363 test_accg_immed 0x00000011,accg0
364 test_acc_immed 0x11111111,acc0
365 test_accg_immed 0x00000022,accg1
366 test_acc_immed 0x22222222,acc1
368 set_fr_iimmed 0x7fff,0x8000,fr7 ; max negative result
369 set_fr_iimmed 0x8000,0x7fff,fr8
370 cmmulhs fr7,fr8,acc0,cc4,0
371 test_accg_immed 0x00000011,accg0
372 test_acc_immed 0x11111111,acc0
373 test_accg_immed 0x00000022,accg1
374 test_acc_immed 0x22222222,acc1
377 set_fr_iimmed 0xfffe,0xfffd,fr7 ; multiply small numbers
378 set_fr_iimmed 0xfffd,0xfffe,fr8
379 cmmulhs fr7,fr8,acc0,cc4,0
380 test_accg_immed 0x00000011,accg0
381 test_acc_immed 0x11111111,acc0
382 test_accg_immed 0x00000022,accg1
383 test_acc_immed 0x22222222,acc1
385 set_fr_iimmed 0xffff,0xfffe,fr7 ; multiply by -1
386 set_fr_iimmed 0xfffe,0xffff,fr8
387 cmmulhs fr7,fr8,acc0,cc4,0
388 test_accg_immed 0x00000011,accg0
389 test_acc_immed 0x11111111,acc0
390 test_accg_immed 0x00000022,accg1
391 test_acc_immed 0x22222222,acc1
393 set_fr_iimmed 0x8001,0x8001,fr7 ; almost max positive result
394 set_fr_iimmed 0x8001,0x8001,fr8
395 cmmulhs fr7,fr8,acc0,cc4,0
396 test_accg_immed 0x00000011,accg0
397 test_acc_immed 0x11111111,acc0
398 test_accg_immed 0x00000022,accg1
399 test_acc_immed 0x22222222,acc1
401 set_fr_iimmed 0x8000,0x8000,fr7 ; max positive result
402 set_fr_iimmed 0x8000,0x8000,fr8
403 cmmulhs fr7,fr8,acc0,cc4,0
404 test_accg_immed 0x00000011,accg0
405 test_acc_immed 0x11111111,acc0
406 test_accg_immed 0x00000022,accg1
407 test_acc_immed 0x22222222,acc1
410 set_accg_immed 0x00000011,accg0
411 set_acc_immed 0x11111111,acc0
412 set_accg_immed 0x00000022,accg1
413 set_acc_immed 0x22222222,acc1
414 set_fr_iimmed 2,3,fr7 ; multiply small numbers
415 set_fr_iimmed 3,2,fr8
416 cmmulhs fr7,fr8,acc0,cc1,1
417 test_accg_immed 0x00000011,accg0
418 test_acc_immed 0x11111111,acc0
419 test_accg_immed 0x00000022,accg1
420 test_acc_immed 0x22222222,acc1
422 set_fr_iimmed 0,1,fr7 ; multiply by 0
423 set_fr_iimmed 2,0,fr8
424 cmmulhs fr7,fr8,acc0,cc1,1
425 test_accg_immed 0x00000011,accg0
426 test_acc_immed 0x11111111,acc0
427 test_accg_immed 0x00000022,accg1
428 test_acc_immed 0x22222222,acc1
430 set_fr_iimmed 2,1,fr7 ; multiply by 1
431 set_fr_iimmed 1,2,fr8
432 cmmulhs fr7,fr8,acc0,cc1,1
433 test_accg_immed 0x00000011,accg0
434 test_acc_immed 0x11111111,acc0
435 test_accg_immed 0x00000022,accg1
436 test_acc_immed 0x22222222,acc1
438 set_fr_iimmed 0x3fff,2,fr7 ; 15 bit result
439 set_fr_iimmed 2,0x3fff,fr8
440 cmmulhs fr7,fr8,acc0,cc1,1
441 test_accg_immed 0x00000011,accg0
442 test_acc_immed 0x11111111,acc0
443 test_accg_immed 0x00000022,accg1
444 test_acc_immed 0x22222222,acc1
446 set_fr_iimmed 0x4000,2,fr7 ; 16 bit result
447 set_fr_iimmed 2,0x4000,fr8
448 cmmulhs fr7,fr8,acc0,cc1,1
449 test_accg_immed 0x00000011,accg0
450 test_acc_immed 0x11111111,acc0
451 test_accg_immed 0x00000022,accg1
452 test_acc_immed 0x22222222,acc1
454 set_fr_iimmed 0x7fff,0x7fff,fr7 ; max positive result
455 set_fr_iimmed 0x7fff,0x7fff,fr8
456 cmmulhs fr7,fr8,acc0,cc1,1
457 test_accg_immed 0x00000011,accg0
458 test_acc_immed 0x11111111,acc0
459 test_accg_immed 0x00000022,accg1
460 test_acc_immed 0x22222222,acc1
463 set_fr_iimmed 2,0xfffd,fr7 ; multiply small numbers
464 set_fr_iimmed 0xfffd,2,fr8
465 cmmulhs fr7,fr8,acc0,cc1,1
466 test_accg_immed 0x00000011,accg0
467 test_acc_immed 0x11111111,acc0
468 test_accg_immed 0x00000022,accg1
469 test_acc_immed 0x22222222,acc1
471 set_fr_iimmed 0xfffe,1,fr7 ; multiply by 1
472 set_fr_iimmed 1,0xfffe,fr8
473 cmmulhs fr7,fr8,acc0,cc1,1
474 test_accg_immed 0x00000011,accg0
475 test_acc_immed 0x11111111,acc0
476 test_accg_immed 0x00000022,accg1
477 test_acc_immed 0x22222222,acc1
479 set_fr_iimmed 0xfffe,0,fr7 ; multiply by 0
480 set_fr_iimmed 0,0xfffe,fr8
481 cmmulhs fr7,fr8,acc0,cc5,1
482 test_accg_immed 0x00000011,accg0
483 test_acc_immed 0x11111111,acc0
484 test_accg_immed 0x00000022,accg1
485 test_acc_immed 0x22222222,acc1
487 set_fr_iimmed 0x2001,0xfffe,fr7 ; 15 bit result
488 set_fr_iimmed 0xfffe,0x2001,fr8
489 cmmulhs fr7,fr8,acc0,cc5,1
490 test_accg_immed 0x00000011,accg0
491 test_acc_immed 0x11111111,acc0
492 test_accg_immed 0x00000022,accg1
493 test_acc_immed 0x22222222,acc1
495 set_fr_iimmed 0x4000,0xfffe,fr7 ; 16 bit result
496 set_fr_iimmed 0xfffe,0x4000,fr8
497 cmmulhs fr7,fr8,acc0,cc5,1
498 test_accg_immed 0x00000011,accg0
499 test_acc_immed 0x11111111,acc0
500 test_accg_immed 0x00000022,accg1
501 test_acc_immed 0x22222222,acc1
503 set_fr_iimmed 0x7fff,0x8000,fr7 ; max negative result
504 set_fr_iimmed 0x8000,0x7fff,fr8
505 cmmulhs fr7,fr8,acc0,cc5,1
506 test_accg_immed 0x00000011,accg0
507 test_acc_immed 0x11111111,acc0
508 test_accg_immed 0x00000022,accg1
509 test_acc_immed 0x22222222,acc1
512 set_fr_iimmed 0xfffe,0xfffd,fr7 ; multiply small numbers
513 set_fr_iimmed 0xfffd,0xfffe,fr8
514 cmmulhs fr7,fr8,acc0,cc5,1
515 test_accg_immed 0x00000011,accg0
516 test_acc_immed 0x11111111,acc0
517 test_accg_immed 0x00000022,accg1
518 test_acc_immed 0x22222222,acc1
520 set_fr_iimmed 0xffff,0xfffe,fr7 ; multiply by -1
521 set_fr_iimmed 0xfffe,0xffff,fr8
522 cmmulhs fr7,fr8,acc0,cc5,1
523 test_accg_immed 0x00000011,accg0
524 test_acc_immed 0x11111111,acc0
525 test_accg_immed 0x00000022,accg1
526 test_acc_immed 0x22222222,acc1
528 set_fr_iimmed 0x8001,0x8001,fr7 ; almost max positive result
529 set_fr_iimmed 0x8001,0x8001,fr8
530 cmmulhs fr7,fr8,acc0,cc5,1
531 test_accg_immed 0x00000011,accg0
532 test_acc_immed 0x11111111,acc0
533 test_accg_immed 0x00000022,accg1
534 test_acc_immed 0x22222222,acc1
536 set_fr_iimmed 0x8000,0x8000,fr7 ; max positive result
537 set_fr_iimmed 0x8000,0x8000,fr8
538 cmmulhs fr7,fr8,acc0,cc5,1
539 test_accg_immed 0x00000011,accg0
540 test_acc_immed 0x11111111,acc0
541 test_accg_immed 0x00000022,accg1
542 test_acc_immed 0x22222222,acc1
545 set_accg_immed 0x00000011,accg0
546 set_acc_immed 0x11111111,acc0
547 set_accg_immed 0x00000022,accg1
548 set_acc_immed 0x22222222,acc1
549 set_fr_iimmed 2,3,fr7 ; multiply small numbers
550 set_fr_iimmed 3,2,fr8
551 cmmulhs fr7,fr8,acc0,cc2,1
552 test_accg_immed 0x00000011,accg0
553 test_acc_immed 0x11111111,acc0
554 test_accg_immed 0x00000022,accg1
555 test_acc_immed 0x22222222,acc1
557 set_fr_iimmed 0,1,fr7 ; multiply by 0
558 set_fr_iimmed 2,0,fr8
559 cmmulhs fr7,fr8,acc0,cc2,0
560 test_accg_immed 0x00000011,accg0
561 test_acc_immed 0x11111111,acc0
562 test_accg_immed 0x00000022,accg1
563 test_acc_immed 0x22222222,acc1
565 set_fr_iimmed 2,1,fr7 ; multiply by 1
566 set_fr_iimmed 1,2,fr8
567 cmmulhs fr7,fr8,acc0,cc2,1
568 test_accg_immed 0x00000011,accg0
569 test_acc_immed 0x11111111,acc0
570 test_accg_immed 0x00000022,accg1
571 test_acc_immed 0x22222222,acc1
573 set_fr_iimmed 0x3fff,2,fr7 ; 15 bit result
574 set_fr_iimmed 2,0x3fff,fr8
575 cmmulhs fr7,fr8,acc0,cc2,0
576 test_accg_immed 0x00000011,accg0
577 test_acc_immed 0x11111111,acc0
578 test_accg_immed 0x00000022,accg1
579 test_acc_immed 0x22222222,acc1
581 set_fr_iimmed 0x4000,2,fr7 ; 16 bit result
582 set_fr_iimmed 2,0x4000,fr8
583 cmmulhs fr7,fr8,acc0,cc2,1
584 test_accg_immed 0x00000011,accg0
585 test_acc_immed 0x11111111,acc0
586 test_accg_immed 0x00000022,accg1
587 test_acc_immed 0x22222222,acc1
589 set_fr_iimmed 0x7fff,0x7fff,fr7 ; max positive result
590 set_fr_iimmed 0x7fff,0x7fff,fr8
591 cmmulhs fr7,fr8,acc0,cc2,0
592 test_accg_immed 0x00000011,accg0
593 test_acc_immed 0x11111111,acc0
594 test_accg_immed 0x00000022,accg1
595 test_acc_immed 0x22222222,acc1
598 set_fr_iimmed 2,0xfffd,fr7 ; multiply small numbers
599 set_fr_iimmed 0xfffd,2,fr8
600 cmmulhs fr7,fr8,acc0,cc2,1
601 test_accg_immed 0x00000011,accg0
602 test_acc_immed 0x11111111,acc0
603 test_accg_immed 0x00000022,accg1
604 test_acc_immed 0x22222222,acc1
606 set_fr_iimmed 0xfffe,1,fr7 ; multiply by 1
607 set_fr_iimmed 1,0xfffe,fr8
608 cmmulhs fr7,fr8,acc0,cc2,0
609 test_accg_immed 0x00000011,accg0
610 test_acc_immed 0x11111111,acc0
611 test_accg_immed 0x00000022,accg1
612 test_acc_immed 0x22222222,acc1
614 set_fr_iimmed 0xfffe,0,fr7 ; multiply by 0
615 set_fr_iimmed 0,0xfffe,fr8
616 cmmulhs fr7,fr8,acc0,cc6,1
617 test_accg_immed 0x00000011,accg0
618 test_acc_immed 0x11111111,acc0
619 test_accg_immed 0x00000022,accg1
620 test_acc_immed 0x22222222,acc1
622 set_fr_iimmed 0x2001,0xfffe,fr7 ; 15 bit result
623 set_fr_iimmed 0xfffe,0x2001,fr8
624 cmmulhs fr7,fr8,acc0,cc6,0
625 test_accg_immed 0x00000011,accg0
626 test_acc_immed 0x11111111,acc0
627 test_accg_immed 0x00000022,accg1
628 test_acc_immed 0x22222222,acc1
630 set_fr_iimmed 0x4000,0xfffe,fr7 ; 16 bit result
631 set_fr_iimmed 0xfffe,0x4000,fr8
632 cmmulhs fr7,fr8,acc0,cc6,1
633 test_accg_immed 0x00000011,accg0
634 test_acc_immed 0x11111111,acc0
635 test_accg_immed 0x00000022,accg1
636 test_acc_immed 0x22222222,acc1
638 set_fr_iimmed 0x7fff,0x8000,fr7 ; max negative result
639 set_fr_iimmed 0x8000,0x7fff,fr8
640 cmmulhs fr7,fr8,acc0,cc6,0
641 test_accg_immed 0x00000011,accg0
642 test_acc_immed 0x11111111,acc0
643 test_accg_immed 0x00000022,accg1
644 test_acc_immed 0x22222222,acc1
647 set_fr_iimmed 0xfffe,0xfffd,fr7 ; multiply small numbers
648 set_fr_iimmed 0xfffd,0xfffe,fr8
649 cmmulhs fr7,fr8,acc0,cc6,1
650 test_accg_immed 0x00000011,accg0
651 test_acc_immed 0x11111111,acc0
652 test_accg_immed 0x00000022,accg1
653 test_acc_immed 0x22222222,acc1
655 set_fr_iimmed 0xffff,0xfffe,fr7 ; multiply by -1
656 set_fr_iimmed 0xfffe,0xffff,fr8
657 cmmulhs fr7,fr8,acc0,cc6,0
658 test_accg_immed 0x00000011,accg0
659 test_acc_immed 0x11111111,acc0
660 test_accg_immed 0x00000022,accg1
661 test_acc_immed 0x22222222,acc1
663 set_fr_iimmed 0x8001,0x8001,fr7 ; almost max positive result
664 set_fr_iimmed 0x8001,0x8001,fr8
665 cmmulhs fr7,fr8,acc0,cc6,0
666 test_accg_immed 0x00000011,accg0
667 test_acc_immed 0x11111111,acc0
668 test_accg_immed 0x00000022,accg1
669 test_acc_immed 0x22222222,acc1
671 set_fr_iimmed 0x8000,0x8000,fr7 ; max positive result
672 set_fr_iimmed 0x8000,0x8000,fr8
673 cmmulhs fr7,fr8,acc0,cc6,0
674 test_accg_immed 0x00000011,accg0
675 test_acc_immed 0x11111111,acc0
676 test_accg_immed 0x00000022,accg1
677 test_acc_immed 0x22222222,acc1
680 set_accg_immed 0x00000011,accg0
681 set_acc_immed 0x11111111,acc0
682 set_accg_immed 0x00000022,accg1
683 set_acc_immed 0x22222222,acc1
684 set_fr_iimmed 2,3,fr7 ; multiply small numbers
685 set_fr_iimmed 3,2,fr8
686 cmmulhs fr7,fr8,acc0,cc3,1
687 test_accg_immed 0x00000011,accg0
688 test_acc_immed 0x11111111,acc0
689 test_accg_immed 0x00000022,accg1
690 test_acc_immed 0x22222222,acc1
692 set_fr_iimmed 0,1,fr7 ; multiply by 0
693 set_fr_iimmed 2,0,fr8
694 cmmulhs fr7,fr8,acc0,cc3,0
695 test_accg_immed 0x00000011,accg0
696 test_acc_immed 0x11111111,acc0
697 test_accg_immed 0x00000022,accg1
698 test_acc_immed 0x22222222,acc1
700 set_fr_iimmed 2,1,fr7 ; multiply by 1
701 set_fr_iimmed 1,2,fr8
702 cmmulhs fr7,fr8,acc0,cc3,1
703 test_accg_immed 0x00000011,accg0
704 test_acc_immed 0x11111111,acc0
705 test_accg_immed 0x00000022,accg1
706 test_acc_immed 0x22222222,acc1
708 set_fr_iimmed 0x3fff,2,fr7 ; 15 bit result
709 set_fr_iimmed 2,0x3fff,fr8
710 cmmulhs fr7,fr8,acc0,cc3,0
711 test_accg_immed 0x00000011,accg0
712 test_acc_immed 0x11111111,acc0
713 test_accg_immed 0x00000022,accg1
714 test_acc_immed 0x22222222,acc1
716 set_fr_iimmed 0x4000,2,fr7 ; 16 bit result
717 set_fr_iimmed 2,0x4000,fr8
718 cmmulhs fr7,fr8,acc0,cc3,1
719 test_accg_immed 0x00000011,accg0
720 test_acc_immed 0x11111111,acc0
721 test_accg_immed 0x00000022,accg1
722 test_acc_immed 0x22222222,acc1
724 set_fr_iimmed 0x7fff,0x7fff,fr7 ; max positive result
725 set_fr_iimmed 0x7fff,0x7fff,fr8
726 cmmulhs fr7,fr8,acc0,cc3,0
727 test_accg_immed 0x00000011,accg0
728 test_acc_immed 0x11111111,acc0
729 test_accg_immed 0x00000022,accg1
730 test_acc_immed 0x22222222,acc1
733 set_fr_iimmed 2,0xfffd,fr7 ; multiply small numbers
734 set_fr_iimmed 0xfffd,2,fr8
735 cmmulhs fr7,fr8,acc0,cc3,1
736 test_accg_immed 0x00000011,accg0
737 test_acc_immed 0x11111111,acc0
738 test_accg_immed 0x00000022,accg1
739 test_acc_immed 0x22222222,acc1
741 set_fr_iimmed 0xfffe,1,fr7 ; multiply by 1
742 set_fr_iimmed 1,0xfffe,fr8
743 cmmulhs fr7,fr8,acc0,cc3,0
744 test_accg_immed 0x00000011,accg0
745 test_acc_immed 0x11111111,acc0
746 test_accg_immed 0x00000022,accg1
747 test_acc_immed 0x22222222,acc1
749 set_fr_iimmed 0xfffe,0,fr7 ; multiply by 0
750 set_fr_iimmed 0,0xfffe,fr8
751 cmmulhs fr7,fr8,acc0,cc7,1
752 test_accg_immed 0x00000011,accg0
753 test_acc_immed 0x11111111,acc0
754 test_accg_immed 0x00000022,accg1
755 test_acc_immed 0x22222222,acc1
757 set_fr_iimmed 0x2001,0xfffe,fr7 ; 15 bit result
758 set_fr_iimmed 0xfffe,0x2001,fr8
759 cmmulhs fr7,fr8,acc0,cc7,0
760 test_accg_immed 0x00000011,accg0
761 test_acc_immed 0x11111111,acc0
762 test_accg_immed 0x00000022,accg1
763 test_acc_immed 0x22222222,acc1
765 set_fr_iimmed 0x4000,0xfffe,fr7 ; 16 bit result
766 set_fr_iimmed 0xfffe,0x4000,fr8
767 cmmulhs fr7,fr8,acc0,cc7,1
768 test_accg_immed 0x00000011,accg0
769 test_acc_immed 0x11111111,acc0
770 test_accg_immed 0x00000022,accg1
771 test_acc_immed 0x22222222,acc1
773 set_fr_iimmed 0x7fff,0x8000,fr7 ; max negative result
774 set_fr_iimmed 0x8000,0x7fff,fr8
775 cmmulhs fr7,fr8,acc0,cc7,0
776 test_accg_immed 0x00000011,accg0
777 test_acc_immed 0x11111111,acc0
778 test_accg_immed 0x00000022,accg1
779 test_acc_immed 0x22222222,acc1
782 set_fr_iimmed 0xfffe,0xfffd,fr7 ; multiply small numbers
783 set_fr_iimmed 0xfffd,0xfffe,fr8
784 cmmulhs fr7,fr8,acc0,cc7,1
785 test_accg_immed 0x00000011,accg0
786 test_acc_immed 0x11111111,acc0
787 test_accg_immed 0x00000022,accg1
788 test_acc_immed 0x22222222,acc1
790 set_fr_iimmed 0xffff,0xfffe,fr7 ; multiply by -1
791 set_fr_iimmed 0xfffe,0xffff,fr8
792 cmmulhs fr7,fr8,acc0,cc7,0
793 test_accg_immed 0x00000011,accg0
794 test_acc_immed 0x11111111,acc0
795 test_accg_immed 0x00000022,accg1
796 test_acc_immed 0x22222222,acc1
798 set_fr_iimmed 0x8001,0x8001,fr7 ; almost max positive result
799 set_fr_iimmed 0x8001,0x8001,fr8
800 cmmulhs fr7,fr8,acc0,cc7,0
801 test_accg_immed 0x00000011,accg0
802 test_acc_immed 0x11111111,acc0
803 test_accg_immed 0x00000022,accg1
804 test_acc_immed 0x22222222,acc1
806 set_fr_iimmed 0x8000,0x8000,fr7 ; max positive result
807 set_fr_iimmed 0x8000,0x8000,fr8
808 cmmulhs fr7,fr8,acc0,cc7,0
809 test_accg_immed 0x00000011,accg0
810 test_acc_immed 0x11111111,acc0
811 test_accg_immed 0x00000022,accg1
812 test_acc_immed 0x22222222,acc1