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