Home | History | Annotate | Line # | Download | only in frv
      1 # frv testcase for csmul $GRi,$GRj,$GRk,$CCi,$cond
      2 # mach: all
      3 
      4 	.include "testutils.inc"
      5 
      6 	start
      7 
      8 	.global csmul
      9 csmul:
     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 	csmul      	gr7,gr8,gr8,cc4,1
     16 	test_gr_immed  	0,gr8
     17 	test_gr_immed  	6,gr9
     18 
     19 	set_gr_immed   	1,gr7		; multiply by 1
     20 	set_gr_immed   	2,gr8
     21 	csmul      	gr7,gr8,gr8,cc4,1
     22 	test_gr_immed  	0,gr8
     23 	test_gr_immed  	2,gr9
     24 
     25 	set_gr_immed   	2,gr7		; multiply by 1
     26 	set_gr_immed   	1,gr8
     27 	csmul      	gr7,gr8,gr8,cc4,1
     28 	test_gr_immed  	0,gr8
     29 	test_gr_immed  	2,gr9
     30 
     31 	set_gr_immed   	0,gr7		; multiply by 0
     32 	set_gr_immed   	2,gr8
     33 	csmul      	gr7,gr8,gr8,cc4,1
     34 	test_gr_immed  	0,gr8
     35 	test_gr_immed  	0,gr9
     36 
     37 	set_gr_immed   	2,gr7		; multiply by 0
     38 	set_gr_immed   	0,gr8
     39 	csmul      	gr7,gr8,gr8,cc4,1
     40 	test_gr_immed  	0,gr8
     41 	test_gr_immed  	0,gr9
     42 
     43 	set_gr_limmed	0x3fff,0xffff,gr7	; 31 bit result
     44 	set_gr_immed   	2,gr8
     45 	csmul      	gr7,gr8,gr8,cc4,1
     46 	test_gr_immed  	0,gr8
     47 	test_gr_limmed	0x7fff,0xfffe,gr9
     48 
     49 	set_gr_limmed	0x4000,0x0000,gr7	; 32 bit result
     50 	set_gr_immed   	2,gr8
     51 	csmul      	gr7,gr8,gr8,cc4,1
     52 	test_gr_immed  	0,gr8
     53 	test_gr_limmed	0x8000,0x0000,gr9
     54 
     55 	set_gr_limmed	0x4000,0x0000,gr7	; 33 bit result
     56 	set_gr_immed   	4,gr8
     57 	csmul      	gr7,gr8,gr8,cc4,1
     58 	test_gr_immed  	1,gr8
     59 	test_gr_limmed	0x0000,0x0000,gr9
     60 
     61 	set_gr_limmed	0x7fff,0xffff,gr7	; max positive result
     62 	set_gr_limmed	0x7fff,0xffff,gr8
     63 	csmul      	gr7,gr8,gr8,cc4,1
     64 	test_gr_limmed 	0x3fff,0xffff,gr8
     65 	test_gr_immed  	0x00000001,gr9
     66 
     67 	; Mixed operands
     68 	set_gr_immed   	-3,gr7		; multiply small numbers
     69 	set_gr_immed   	2,gr8
     70 	csmul      	gr7,gr8,gr8,cc4,1
     71 	test_gr_immed  	-1,gr8
     72 	test_gr_immed  	-6,gr9
     73 
     74 	set_gr_immed   	3,gr7		; multiply small numbers
     75 	set_gr_immed   	-2,gr8
     76 	csmul      	gr7,gr8,gr8,cc4,1
     77 	test_gr_immed  	-1,gr8
     78 	test_gr_immed  	-6,gr9
     79 
     80 	set_gr_immed   	1,gr7		; multiply by 1
     81 	set_gr_immed   	-2,gr8
     82 	csmul      	gr7,gr8,gr8,cc4,1
     83 	test_gr_immed  	-1,gr8
     84 	test_gr_immed  	-2,gr9
     85 
     86 	set_gr_immed   	-2,gr7		; multiply by 1
     87 	set_gr_immed   	1,gr8
     88 	csmul      	gr7,gr8,gr8,cc4,1
     89 	test_gr_immed  	-1,gr8
     90 	test_gr_immed  	-2,gr9
     91 
     92 	set_gr_immed   	0,gr7		; multiply by 0
     93 	set_gr_immed   	-2,gr8
     94 	csmul      	gr7,gr8,gr8,cc4,1
     95 	test_gr_immed  	0,gr8
     96 	test_gr_immed  	0,gr9
     97 
     98 	set_gr_immed   	-2,gr7		; multiply by 0
     99 	set_gr_immed   	0,gr8
    100 	csmul      	gr7,gr8,gr8,cc4,1
    101 	test_gr_immed  	0,gr8
    102 	test_gr_immed  	0,gr9
    103 
    104 	set_gr_limmed  	0x2000,0x0001,gr7	; 31 bit result
    105 	set_gr_immed   	-2,gr8
    106 	csmul      	gr7,gr8,gr8,cc4,1
    107 	test_gr_limmed	0xffff,0xffff,gr8
    108 	test_gr_limmed	0xbfff,0xfffe,gr9
    109 
    110 	set_gr_limmed	0x4000,0x0000,gr7	; 32 bit result
    111 	set_gr_immed   	-2,gr8
    112 	csmul      	gr7,gr8,gr8,cc4,1
    113 	test_gr_limmed	0xffff,0xffff,gr8
    114 	test_gr_limmed	0x8000,0x0000,gr9
    115 
    116 	set_gr_limmed	0x4000,0x0001,gr7	; 32 bit result
    117 	set_gr_immed   	-2,gr8
    118 	csmul      	gr7,gr8,gr8,cc4,1
    119 	test_gr_limmed	0xffff,0xffff,gr8
    120 	test_gr_limmed	0x7fff,0xfffe,gr9
    121 
    122 	set_gr_limmed	0x4000,0x0000,gr7	; 33 bit result
    123 	set_gr_immed   	-4,gr8
    124 	csmul      	gr7,gr8,gr8,cc4,1
    125 	test_gr_limmed	0xffff,0xffff,gr8
    126 	test_gr_limmed	0x0000,0x0000,gr9
    127 
    128 	set_gr_limmed	0x7fff,0xffff,gr7	; max negative result
    129 	set_gr_limmed	0x8000,0x0000,gr8
    130 	csmul      	gr7,gr8,gr8,cc4,1
    131 	test_gr_limmed	0xc000,0x0000,gr8
    132 	test_gr_limmed	0x8000,0x0000,gr9
    133 
    134 	; Negative operands
    135 	set_gr_immed   	-3,gr7		; multiply small numbers
    136 	set_gr_immed   	-2,gr8
    137 	csmul      	gr7,gr8,gr8,cc4,1
    138 	test_gr_immed  	0,gr8
    139 	test_gr_immed  	6,gr9
    140 
    141 	set_gr_immed   	-1,gr7		; multiply by 1
    142 	set_gr_immed   	-2,gr8
    143 	csmul      	gr7,gr8,gr8,cc4,1
    144 	test_gr_immed  	0,gr8
    145 	test_gr_immed  	2,gr9
    146 
    147 	set_gr_immed   	-2,gr7		; multiply by 1
    148 	set_gr_immed   	-1,gr8
    149 	csmul      	gr7,gr8,gr8,cc4,1
    150 	test_gr_immed  	0,gr8
    151 	test_gr_immed  	2,gr9
    152 
    153 	set_gr_limmed	0xc000,0x0001,gr7	; 31 bit result
    154 	set_gr_immed   	-2,gr8
    155 	csmul      	gr7,gr8,gr8,cc4,1
    156 	test_gr_immed  	0,gr8
    157 	test_gr_limmed	0x7fff,0xfffe,gr9
    158 
    159 	set_gr_limmed	0xc000,0x0000,gr7	; 32 bit result
    160 	set_gr_immed   	-2,gr8
    161 	csmul      	gr7,gr8,gr8,cc4,1
    162 	test_gr_immed  	0,gr8
    163 	test_gr_limmed	0x8000,0x0000,gr9
    164 
    165 	set_gr_limmed	0xc000,0x0000,gr7	; 33 bit result
    166 	set_gr_immed   	-4,gr8
    167 	csmul      	gr7,gr8,gr8,cc4,1
    168 	test_gr_immed  	1,gr8
    169 	test_gr_immed  	0x00000000,gr9
    170 
    171 	set_gr_limmed	0x8000,0x0001,gr7	; almost max positive result
    172 	set_gr_limmed	0x8000,0x0001,gr8
    173 	csmul      	gr7,gr8,gr8,cc4,1
    174 	test_gr_limmed	0x3fff,0xffff,gr8
    175 	test_gr_immed  	0x00000001,gr9
    176 
    177 
    178 	set_gr_limmed	0x8000,0x0000,gr7	; max positive result
    179 	set_gr_limmed	0x8000,0x0000,gr8
    180 	csmul      	gr7,gr8,gr8,cc4,1
    181 	test_gr_limmed	0x4000,0x0000,gr8
    182 	test_gr_immed  	0x00000000,gr9
    183 
    184 	; Positive operands
    185 	set_gr_immed   	3,gr7		; multiply small numbers
    186 	set_gr_immed   	2,gr8
    187 	csmul      	gr7,gr8,gr8,cc5,0
    188 	test_gr_immed  	0,gr8
    189 	test_gr_immed  	6,gr9
    190 
    191 	set_gr_immed   	1,gr7		; multiply by 1
    192 	set_gr_immed   	2,gr8
    193 	csmul      	gr7,gr8,gr8,cc5,0
    194 	test_gr_immed  	0,gr8
    195 	test_gr_immed  	2,gr9
    196 
    197 	set_gr_immed   	2,gr7		; multiply by 1
    198 	set_gr_immed   	1,gr8
    199 	csmul      	gr7,gr8,gr8,cc5,0
    200 	test_gr_immed  	0,gr8
    201 	test_gr_immed  	2,gr9
    202 
    203 	set_gr_immed   	0,gr7		; multiply by 0
    204 	set_gr_immed   	2,gr8
    205 	csmul      	gr7,gr8,gr8,cc5,0
    206 	test_gr_immed  	0,gr8
    207 	test_gr_immed  	0,gr9
    208 
    209 	set_gr_immed   	2,gr7		; multiply by 0
    210 	set_gr_immed   	0,gr8
    211 	csmul      	gr7,gr8,gr8,cc5,0
    212 	test_gr_immed  	0,gr8
    213 	test_gr_immed  	0,gr9
    214 
    215 	set_gr_limmed	0x3fff,0xffff,gr7	; 31 bit result
    216 	set_gr_immed   	2,gr8
    217 	csmul      	gr7,gr8,gr8,cc5,0
    218 	test_gr_immed  	0,gr8
    219 	test_gr_limmed	0x7fff,0xfffe,gr9
    220 
    221 	set_gr_limmed	0x4000,0x0000,gr7	; 32 bit result
    222 	set_gr_immed   	2,gr8
    223 	csmul      	gr7,gr8,gr8,cc5,0
    224 	test_gr_immed  	0,gr8
    225 	test_gr_limmed	0x8000,0x0000,gr9
    226 
    227 	set_gr_limmed	0x4000,0x0000,gr7	; 33 bit result
    228 	set_gr_immed   	4,gr8
    229 	csmul      	gr7,gr8,gr8,cc5,0
    230 	test_gr_immed  	1,gr8
    231 	test_gr_limmed	0x0000,0x0000,gr9
    232 
    233 	set_gr_limmed	0x7fff,0xffff,gr7	; max positive result
    234 	set_gr_limmed	0x7fff,0xffff,gr8
    235 	csmul      	gr7,gr8,gr8,cc5,0
    236 	test_gr_limmed 	0x3fff,0xffff,gr8
    237 	test_gr_immed  	0x00000001,gr9
    238 
    239 	; Mixed operands
    240 	set_gr_immed   	-3,gr7		; multiply small numbers
    241 	set_gr_immed   	2,gr8
    242 	csmul      	gr7,gr8,gr8,cc5,0
    243 	test_gr_immed  	-1,gr8
    244 	test_gr_immed  	-6,gr9
    245 
    246 	set_gr_immed   	3,gr7		; multiply small numbers
    247 	set_gr_immed   	-2,gr8
    248 	csmul      	gr7,gr8,gr8,cc5,0
    249 	test_gr_immed  	-1,gr8
    250 	test_gr_immed  	-6,gr9
    251 
    252 	set_gr_immed   	1,gr7		; multiply by 1
    253 	set_gr_immed   	-2,gr8
    254 	csmul      	gr7,gr8,gr8,cc5,0
    255 	test_gr_immed  	-1,gr8
    256 	test_gr_immed  	-2,gr9
    257 
    258 	set_gr_immed   	-2,gr7		; multiply by 1
    259 	set_gr_immed   	1,gr8
    260 	csmul      	gr7,gr8,gr8,cc5,0
    261 	test_gr_immed  	-1,gr8
    262 	test_gr_immed  	-2,gr9
    263 
    264 	set_gr_immed   	0,gr7		; multiply by 0
    265 	set_gr_immed   	-2,gr8
    266 	csmul      	gr7,gr8,gr8,cc5,0
    267 	test_gr_immed  	0,gr8
    268 	test_gr_immed  	0,gr9
    269 
    270 	set_gr_immed   	-2,gr7		; multiply by 0
    271 	set_gr_immed   	0,gr8
    272 	csmul      	gr7,gr8,gr8,cc5,0
    273 	test_gr_immed  	0,gr8
    274 	test_gr_immed  	0,gr9
    275 
    276 	set_gr_limmed  	0x2000,0x0001,gr7	; 31 bit result
    277 	set_gr_immed   	-2,gr8
    278 	csmul      	gr7,gr8,gr8,cc5,0
    279 	test_gr_limmed	0xffff,0xffff,gr8
    280 	test_gr_limmed	0xbfff,0xfffe,gr9
    281 
    282 	set_gr_limmed	0x4000,0x0000,gr7	; 32 bit result
    283 	set_gr_immed   	-2,gr8
    284 	csmul      	gr7,gr8,gr8,cc5,0
    285 	test_gr_limmed	0xffff,0xffff,gr8
    286 	test_gr_limmed	0x8000,0x0000,gr9
    287 
    288 	set_gr_limmed	0x4000,0x0001,gr7	; 32 bit result
    289 	set_gr_immed   	-2,gr8
    290 	csmul      	gr7,gr8,gr8,cc5,0
    291 	test_gr_limmed	0xffff,0xffff,gr8
    292 	test_gr_limmed	0x7fff,0xfffe,gr9
    293 
    294 	set_gr_limmed	0x4000,0x0000,gr7	; 33 bit result
    295 	set_gr_immed   	-4,gr8
    296 	csmul      	gr7,gr8,gr8,cc5,0
    297 	test_gr_limmed	0xffff,0xffff,gr8
    298 	test_gr_limmed	0x0000,0x0000,gr9
    299 
    300 	set_gr_limmed	0x7fff,0xffff,gr7	; max negative result
    301 	set_gr_limmed	0x8000,0x0000,gr8
    302 	csmul      	gr7,gr8,gr8,cc5,0
    303 	test_gr_limmed	0xc000,0x0000,gr8
    304 	test_gr_limmed	0x8000,0x0000,gr9
    305 
    306 	; Negative operands
    307 	set_gr_immed   	-3,gr7		; multiply small numbers
    308 	set_gr_immed   	-2,gr8
    309 	csmul      	gr7,gr8,gr8,cc5,0
    310 	test_gr_immed  	0,gr8
    311 	test_gr_immed  	6,gr9
    312 
    313 	set_gr_immed   	-1,gr7		; multiply by 1
    314 	set_gr_immed   	-2,gr8
    315 	csmul      	gr7,gr8,gr8,cc5,0
    316 	test_gr_immed  	0,gr8
    317 	test_gr_immed  	2,gr9
    318 
    319 	set_gr_immed   	-2,gr7		; multiply by 1
    320 	set_gr_immed   	-1,gr8
    321 	csmul      	gr7,gr8,gr8,cc5,0
    322 	test_gr_immed  	0,gr8
    323 	test_gr_immed  	2,gr9
    324 
    325 	set_gr_limmed	0xc000,0x0001,gr7	; 31 bit result
    326 	set_gr_immed   	-2,gr8
    327 	csmul      	gr7,gr8,gr8,cc5,0
    328 	test_gr_immed  	0,gr8
    329 	test_gr_limmed	0x7fff,0xfffe,gr9
    330 
    331 	set_gr_limmed	0xc000,0x0000,gr7	; 32 bit result
    332 	set_gr_immed   	-2,gr8
    333 	csmul      	gr7,gr8,gr8,cc5,0
    334 	test_gr_immed  	0,gr8
    335 	test_gr_limmed	0x8000,0x0000,gr9
    336 
    337 	set_gr_limmed	0xc000,0x0000,gr7	; 33 bit result
    338 	set_gr_immed   	-4,gr8
    339 	csmul      	gr7,gr8,gr8,cc5,0
    340 	test_gr_immed  	1,gr8
    341 	test_gr_immed  	0x00000000,gr9
    342 
    343 	set_gr_limmed	0x8000,0x0001,gr7	; almost max positive result
    344 	set_gr_limmed	0x8000,0x0001,gr8
    345 	csmul      	gr7,gr8,gr8,cc5,0
    346 	test_gr_limmed	0x3fff,0xffff,gr8
    347 	test_gr_immed  	0x00000001,gr9
    348 
    349 
    350 	set_gr_limmed	0x8000,0x0000,gr7	; max positive result
    351 	set_gr_limmed	0x8000,0x0000,gr8
    352 	csmul      	gr7,gr8,gr8,cc5,0
    353 	test_gr_limmed	0x4000,0x0000,gr8
    354 	test_gr_immed  	0x00000000,gr9
    355 
    356 	; Positive operands
    357 	set_gr_immed   	3,gr7		; multiply small numbers
    358 	set_gr_immed   	2,gr8
    359 	csmul      	gr7,gr8,gr8,cc4,0
    360 	test_gr_immed  	2,gr8
    361 	test_gr_immed  	0,gr9
    362 
    363 	set_gr_immed   	1,gr7		; multiply by 1
    364 	set_gr_immed   	2,gr8
    365 	csmul      	gr7,gr8,gr8,cc4,0
    366 	test_gr_immed  	2,gr8
    367 	test_gr_immed  	0,gr9
    368 
    369 	set_gr_immed   	2,gr7		; multiply by 1
    370 	set_gr_immed   	1,gr8
    371 	csmul      	gr7,gr8,gr8,cc4,0
    372 	test_gr_immed  	1,gr8
    373 	test_gr_immed  	0,gr9
    374 
    375 	set_gr_immed   	0,gr7		; multiply by 0
    376 	set_gr_immed   	2,gr8
    377 	csmul      	gr7,gr8,gr8,cc4,0
    378 	test_gr_immed  	2,gr8
    379 	test_gr_immed  	0,gr9
    380 
    381 	set_gr_immed   	2,gr7		; multiply by 0
    382 	set_gr_immed   	0,gr8
    383 	csmul      	gr7,gr8,gr8,cc4,0
    384 	test_gr_immed  	0,gr8
    385 	test_gr_immed  	0,gr9
    386 
    387 	set_gr_limmed	0x3fff,0xffff,gr7	; 31 bit result
    388 	set_gr_immed   	2,gr8
    389 	csmul      	gr7,gr8,gr8,cc4,0
    390 	test_gr_immed  	2,gr8
    391 	test_gr_immed	0,gr9
    392 
    393 	set_gr_limmed	0x4000,0x0000,gr7	; 32 bit result
    394 	set_gr_immed   	2,gr8
    395 	csmul      	gr7,gr8,gr8,cc4,0
    396 	test_gr_immed  	2,gr8
    397 	test_gr_immed	0,gr9
    398 
    399 	set_gr_limmed	0x4000,0x0000,gr7	; 33 bit result
    400 	set_gr_immed   	4,gr8
    401 	csmul      	gr7,gr8,gr8,cc4,0
    402 	test_gr_immed  	4,gr8
    403 	test_gr_immed	0,gr9
    404 
    405 	set_gr_limmed	0x7fff,0xffff,gr7	; max positive result
    406 	set_gr_limmed	0x7fff,0xffff,gr8
    407 	csmul      	gr7,gr8,gr8,cc4,0
    408 	test_gr_limmed 	0x7fff,0xffff,gr8
    409 	test_gr_immed  	0,gr9
    410 
    411 	; Mixed operands
    412 	set_gr_immed   	-3,gr7		; multiply small numbers
    413 	set_gr_immed   	2,gr8
    414 	csmul      	gr7,gr8,gr8,cc4,0
    415 	test_gr_immed  	2,gr8
    416 	test_gr_immed  	0,gr9
    417 
    418 	set_gr_immed   	3,gr7		; multiply small numbers
    419 	set_gr_immed   	-2,gr8
    420 	csmul      	gr7,gr8,gr8,cc4,0
    421 	test_gr_immed  	-2,gr8
    422 	test_gr_immed  	0,gr9
    423 
    424 	set_gr_immed   	1,gr7		; multiply by 1
    425 	set_gr_immed   	-2,gr8
    426 	csmul      	gr7,gr8,gr8,cc4,0
    427 	test_gr_immed  	-2,gr8
    428 	test_gr_immed  	0,gr9
    429 
    430 	set_gr_immed   	-2,gr7		; multiply by 1
    431 	set_gr_immed   	1,gr8
    432 	csmul      	gr7,gr8,gr8,cc4,0
    433 	test_gr_immed  	1,gr8
    434 	test_gr_immed  	0,gr9
    435 
    436 	set_gr_immed   	0,gr7		; multiply by 0
    437 	set_gr_immed   	-2,gr8
    438 	csmul      	gr7,gr8,gr8,cc4,0
    439 	test_gr_immed  	-2,gr8
    440 	test_gr_immed  	0,gr9
    441 
    442 	set_gr_immed   	-2,gr7		; multiply by 0
    443 	set_gr_immed   	0,gr8
    444 	csmul      	gr7,gr8,gr8,cc4,0
    445 	test_gr_immed  	0,gr8
    446 	test_gr_immed  	0,gr9
    447 
    448 	set_gr_limmed  	0x2000,0x0001,gr7	; 31 bit result
    449 	set_gr_immed   	-2,gr8
    450 	csmul      	gr7,gr8,gr8,cc4,0
    451 	test_gr_immed	-2,gr8
    452 	test_gr_immed	0,gr9
    453 
    454 	set_gr_limmed	0x4000,0x0000,gr7	; 32 bit result
    455 	set_gr_immed   	-2,gr8
    456 	csmul      	gr7,gr8,gr8,cc4,0
    457 	test_gr_immed	-2,gr8
    458 	test_gr_immed	0,gr9
    459 
    460 	set_gr_limmed	0x4000,0x0001,gr7	; 32 bit result
    461 	set_gr_immed   	-2,gr8
    462 	csmul      	gr7,gr8,gr8,cc4,0
    463 	test_gr_immed	-2,gr8
    464 	test_gr_immed	0,gr9
    465 
    466 	set_gr_limmed	0x4000,0x0000,gr7	; 33 bit result
    467 	set_gr_immed   	-4,gr8
    468 	csmul      	gr7,gr8,gr8,cc4,0
    469 	test_gr_immed	-4,gr8
    470 	test_gr_immed	0,gr9
    471 
    472 	set_gr_limmed	0x7fff,0xffff,gr7	; max negative result
    473 	set_gr_limmed	0x8000,0x0000,gr8
    474 	csmul      	gr7,gr8,gr8,cc4,0
    475 	test_gr_limmed	0x8000,0x0000,gr8
    476 	test_gr_immed	0,gr9
    477 
    478 	; Negative operands
    479 	set_gr_immed   	-3,gr7		; multiply small numbers
    480 	set_gr_immed   	-2,gr8
    481 	csmul      	gr7,gr8,gr8,cc4,0
    482 	test_gr_immed  	-2,gr8
    483 	test_gr_immed  	0,gr9
    484 
    485 	set_gr_immed   	-1,gr7		; multiply by 1
    486 	set_gr_immed   	-2,gr8
    487 	csmul      	gr7,gr8,gr8,cc4,0
    488 	test_gr_immed  	-2,gr8
    489 	test_gr_immed  	0,gr9
    490 
    491 	set_gr_immed   	-2,gr7		; multiply by 1
    492 	set_gr_immed   	-1,gr8
    493 	csmul      	gr7,gr8,gr8,cc4,0
    494 	test_gr_immed  	-1,gr8
    495 	test_gr_immed  	0,gr9
    496 
    497 	set_gr_limmed	0xc000,0x0001,gr7	; 31 bit result
    498 	set_gr_immed   	-2,gr8
    499 	csmul      	gr7,gr8,gr8,cc4,0
    500 	test_gr_immed  	-2,gr8
    501 	test_gr_immed	0,gr9
    502 
    503 	set_gr_limmed	0xc000,0x0000,gr7	; 32 bit result
    504 	set_gr_immed   	-2,gr8
    505 	csmul      	gr7,gr8,gr8,cc4,0
    506 	test_gr_immed  	-2,gr8
    507 	test_gr_immed	0,gr9
    508 
    509 	set_gr_limmed	0xc000,0x0000,gr7	; 33 bit result
    510 	set_gr_immed   	-4,gr8
    511 	csmul      	gr7,gr8,gr8,cc4,0
    512 	test_gr_immed  	-4,gr8
    513 	test_gr_immed  	0,gr9
    514 
    515 	set_gr_limmed	0x8000,0x0001,gr7	; almost max positive result
    516 	set_gr_limmed	0x8000,0x0001,gr8
    517 	csmul      	gr7,gr8,gr8,cc4,0
    518 	test_gr_limmed	0x8000,0x0001,gr8
    519 	test_gr_immed  	0,gr9
    520 
    521 
    522 	set_gr_limmed	0x8000,0x0000,gr7	; max positive result
    523 	set_gr_limmed	0x8000,0x0000,gr8
    524 	csmul      	gr7,gr8,gr8,cc4,0
    525 	test_gr_limmed	0x8000,0x0000,gr8
    526 	test_gr_immed  	0,gr9
    527 
    528 	; Positive operands
    529 	set_gr_immed   	3,gr7		; multiply small numbers
    530 	set_gr_immed   	2,gr8
    531 	csmul      	gr7,gr8,gr8,cc5,1
    532 	test_gr_immed  	2,gr8
    533 	test_gr_immed  	0,gr9
    534 
    535 	set_gr_immed   	1,gr7		; multiply by 1
    536 	set_gr_immed   	2,gr8
    537 	csmul      	gr7,gr8,gr8,cc5,1
    538 	test_gr_immed  	2,gr8
    539 	test_gr_immed  	0,gr9
    540 
    541 	set_gr_immed   	2,gr7		; multiply by 1
    542 	set_gr_immed   	1,gr8
    543 	csmul      	gr7,gr8,gr8,cc5,1
    544 	test_gr_immed  	1,gr8
    545 	test_gr_immed  	0,gr9
    546 
    547 	set_gr_immed   	0,gr7		; multiply by 0
    548 	set_gr_immed   	2,gr8
    549 	csmul      	gr7,gr8,gr8,cc5,1
    550 	test_gr_immed  	2,gr8
    551 	test_gr_immed  	0,gr9
    552 
    553 	set_gr_immed   	2,gr7		; multiply by 0
    554 	set_gr_immed   	0,gr8
    555 	csmul      	gr7,gr8,gr8,cc5,1
    556 	test_gr_immed  	0,gr8
    557 	test_gr_immed  	0,gr9
    558 
    559 	set_gr_limmed	0x3fff,0xffff,gr7	; 31 bit result
    560 	set_gr_immed   	2,gr8
    561 	csmul      	gr7,gr8,gr8,cc5,1
    562 	test_gr_immed  	2,gr8
    563 	test_gr_immed	0,gr9
    564 
    565 	set_gr_limmed	0x4000,0x0000,gr7	; 32 bit result
    566 	set_gr_immed   	2,gr8
    567 	csmul      	gr7,gr8,gr8,cc5,1
    568 	test_gr_immed  	2,gr8
    569 	test_gr_immed	0,gr9
    570 
    571 	set_gr_limmed	0x4000,0x0000,gr7	; 33 bit result
    572 	set_gr_immed   	4,gr8
    573 	csmul      	gr7,gr8,gr8,cc5,1
    574 	test_gr_immed  	4,gr8
    575 	test_gr_immed	0,gr9
    576 
    577 	set_gr_limmed	0x7fff,0xffff,gr7	; max positive result
    578 	set_gr_limmed	0x7fff,0xffff,gr8
    579 	csmul      	gr7,gr8,gr8,cc5,1
    580 	test_gr_limmed 	0x7fff,0xffff,gr8
    581 	test_gr_immed  	0,gr9
    582 
    583 	; Mixed operands
    584 	set_gr_immed   	-3,gr7		; multiply small numbers
    585 	set_gr_immed   	2,gr8
    586 	csmul      	gr7,gr8,gr8,cc5,1
    587 	test_gr_immed  	2,gr8
    588 	test_gr_immed  	0,gr9
    589 
    590 	set_gr_immed   	3,gr7		; multiply small numbers
    591 	set_gr_immed   	-2,gr8
    592 	csmul      	gr7,gr8,gr8,cc5,1
    593 	test_gr_immed  	-2,gr8
    594 	test_gr_immed  	0,gr9
    595 
    596 	set_gr_immed   	1,gr7		; multiply by 1
    597 	set_gr_immed   	-2,gr8
    598 	csmul      	gr7,gr8,gr8,cc5,1
    599 	test_gr_immed  	-2,gr8
    600 	test_gr_immed  	0,gr9
    601 
    602 	set_gr_immed   	-2,gr7		; multiply by 1
    603 	set_gr_immed   	1,gr8
    604 	csmul      	gr7,gr8,gr8,cc5,1
    605 	test_gr_immed  	1,gr8
    606 	test_gr_immed  	0,gr9
    607 
    608 	set_gr_immed   	0,gr7		; multiply by 0
    609 	set_gr_immed   	-2,gr8
    610 	csmul      	gr7,gr8,gr8,cc5,1
    611 	test_gr_immed  	-2,gr8
    612 	test_gr_immed  	0,gr9
    613 
    614 	set_gr_immed   	-2,gr7		; multiply by 0
    615 	set_gr_immed   	0,gr8
    616 	csmul      	gr7,gr8,gr8,cc5,1
    617 	test_gr_immed  	0,gr8
    618 	test_gr_immed  	0,gr9
    619 
    620 	set_gr_limmed  	0x2000,0x0001,gr7	; 31 bit result
    621 	set_gr_immed   	-2,gr8
    622 	csmul      	gr7,gr8,gr8,cc5,1
    623 	test_gr_immed	-2,gr8
    624 	test_gr_immed	0,gr9
    625 
    626 	set_gr_limmed	0x4000,0x0000,gr7	; 32 bit result
    627 	set_gr_immed   	-2,gr8
    628 	csmul      	gr7,gr8,gr8,cc5,1
    629 	test_gr_immed	-2,gr8
    630 	test_gr_immed	0,gr9
    631 
    632 	set_gr_limmed	0x4000,0x0001,gr7	; 32 bit result
    633 	set_gr_immed   	-2,gr8
    634 	csmul      	gr7,gr8,gr8,cc5,1
    635 	test_gr_immed	-2,gr8
    636 	test_gr_immed	0,gr9
    637 
    638 	set_gr_limmed	0x4000,0x0000,gr7	; 33 bit result
    639 	set_gr_immed   	-4,gr8
    640 	csmul      	gr7,gr8,gr8,cc5,1
    641 	test_gr_immed	-4,gr8
    642 	test_gr_immed	0,gr9
    643 
    644 	set_gr_limmed	0x7fff,0xffff,gr7	; max negative result
    645 	set_gr_limmed	0x8000,0x0000,gr8
    646 	csmul      	gr7,gr8,gr8,cc5,1
    647 	test_gr_limmed	0x8000,0x0000,gr8
    648 	test_gr_immed	0,gr9
    649 
    650 	; Negative operands
    651 	set_gr_immed   	-3,gr7		; multiply small numbers
    652 	set_gr_immed   	-2,gr8
    653 	csmul      	gr7,gr8,gr8,cc5,1
    654 	test_gr_immed  	-2,gr8
    655 	test_gr_immed  	0,gr9
    656 
    657 	set_gr_immed   	-1,gr7		; multiply by 1
    658 	set_gr_immed   	-2,gr8
    659 	csmul      	gr7,gr8,gr8,cc5,1
    660 	test_gr_immed  	-2,gr8
    661 	test_gr_immed  	0,gr9
    662 
    663 	set_gr_immed   	-2,gr7		; multiply by 1
    664 	set_gr_immed   	-1,gr8
    665 	csmul      	gr7,gr8,gr8,cc5,1
    666 	test_gr_immed  	-1,gr8
    667 	test_gr_immed  	0,gr9
    668 
    669 	set_gr_limmed	0xc000,0x0001,gr7	; 31 bit result
    670 	set_gr_immed   	-2,gr8
    671 	csmul      	gr7,gr8,gr8,cc5,1
    672 	test_gr_immed  	-2,gr8
    673 	test_gr_immed	0,gr9
    674 
    675 	set_gr_limmed	0xc000,0x0000,gr7	; 32 bit result
    676 	set_gr_immed   	-2,gr8
    677 	csmul      	gr7,gr8,gr8,cc5,1
    678 	test_gr_immed  	-2,gr8
    679 	test_gr_immed	0,gr9
    680 
    681 	set_gr_limmed	0xc000,0x0000,gr7	; 33 bit result
    682 	set_gr_immed   	-4,gr8
    683 	csmul      	gr7,gr8,gr8,cc5,1
    684 	test_gr_immed  	-4,gr8
    685 	test_gr_immed  	0,gr9
    686 
    687 	set_gr_limmed	0x8000,0x0001,gr7	; almost max positive result
    688 	set_gr_limmed	0x8000,0x0001,gr8
    689 	csmul      	gr7,gr8,gr8,cc5,1
    690 	test_gr_limmed	0x8000,0x0001,gr8
    691 	test_gr_immed  	0,gr9
    692 
    693 
    694 	set_gr_limmed	0x8000,0x0000,gr7	; max positive result
    695 	set_gr_limmed	0x8000,0x0000,gr8
    696 	csmul      	gr7,gr8,gr8,cc5,1
    697 	test_gr_limmed	0x8000,0x0000,gr8
    698 	test_gr_immed  	0,gr9
    699 
    700 	; Positive operands
    701 	set_gr_immed   	3,gr7		; multiply small numbers
    702 	set_gr_immed   	2,gr8
    703 	csmul      	gr7,gr8,gr8,cc6,0
    704 	test_gr_immed  	2,gr8
    705 	test_gr_immed  	0,gr9
    706 
    707 	set_gr_immed   	1,gr7		; multiply by 1
    708 	set_gr_immed   	2,gr8
    709 	csmul      	gr7,gr8,gr8,cc6,0
    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 	csmul      	gr7,gr8,gr8,cc6,0
    716 	test_gr_immed  	1,gr8
    717 	test_gr_immed  	0,gr9
    718 
    719 	set_gr_immed   	0,gr7		; multiply by 0
    720 	set_gr_immed   	2,gr8
    721 	csmul      	gr7,gr8,gr8,cc6,0
    722 	test_gr_immed  	2,gr8
    723 	test_gr_immed  	0,gr9
    724 
    725 	set_gr_immed   	2,gr7		; multiply by 0
    726 	set_gr_immed   	0,gr8
    727 	csmul      	gr7,gr8,gr8,cc6,0
    728 	test_gr_immed  	0,gr8
    729 	test_gr_immed  	0,gr9
    730 
    731 	set_gr_limmed	0x3fff,0xffff,gr7	; 31 bit result
    732 	set_gr_immed   	2,gr8
    733 	csmul      	gr7,gr8,gr8,cc6,0
    734 	test_gr_immed  	2,gr8
    735 	test_gr_immed	0,gr9
    736 
    737 	set_gr_limmed	0x4000,0x0000,gr7	; 32 bit result
    738 	set_gr_immed   	2,gr8
    739 	csmul      	gr7,gr8,gr8,cc6,0
    740 	test_gr_immed  	2,gr8
    741 	test_gr_immed	0,gr9
    742 
    743 	set_gr_limmed	0x4000,0x0000,gr7	; 33 bit result
    744 	set_gr_immed   	4,gr8
    745 	csmul      	gr7,gr8,gr8,cc6,0
    746 	test_gr_immed  	4,gr8
    747 	test_gr_immed	0,gr9
    748 
    749 	set_gr_limmed	0x7fff,0xffff,gr7	; max positive result
    750 	set_gr_limmed	0x7fff,0xffff,gr8
    751 	csmul      	gr7,gr8,gr8,cc6,0
    752 	test_gr_limmed 	0x7fff,0xffff,gr8
    753 	test_gr_immed  	0,gr9
    754 
    755 	; Mixed operands
    756 	set_gr_immed   	-3,gr7		; multiply small numbers
    757 	set_gr_immed   	2,gr8
    758 	csmul      	gr7,gr8,gr8,cc6,0
    759 	test_gr_immed  	2,gr8
    760 	test_gr_immed  	0,gr9
    761 
    762 	set_gr_immed   	3,gr7		; multiply small numbers
    763 	set_gr_immed   	-2,gr8
    764 	csmul      	gr7,gr8,gr8,cc6,0
    765 	test_gr_immed  	-2,gr8
    766 	test_gr_immed  	0,gr9
    767 
    768 	set_gr_immed   	1,gr7		; multiply by 1
    769 	set_gr_immed   	-2,gr8
    770 	csmul      	gr7,gr8,gr8,cc6,0
    771 	test_gr_immed  	-2,gr8
    772 	test_gr_immed  	0,gr9
    773 
    774 	set_gr_immed   	-2,gr7		; multiply by 1
    775 	set_gr_immed   	1,gr8
    776 	csmul      	gr7,gr8,gr8,cc6,0
    777 	test_gr_immed  	1,gr8
    778 	test_gr_immed  	0,gr9
    779 
    780 	set_gr_immed   	0,gr7		; multiply by 0
    781 	set_gr_immed   	-2,gr8
    782 	csmul      	gr7,gr8,gr8,cc6,0
    783 	test_gr_immed  	-2,gr8
    784 	test_gr_immed  	0,gr9
    785 
    786 	set_gr_immed   	-2,gr7		; multiply by 0
    787 	set_gr_immed   	0,gr8
    788 	csmul      	gr7,gr8,gr8,cc6,0
    789 	test_gr_immed  	0,gr8
    790 	test_gr_immed  	0,gr9
    791 
    792 	set_gr_limmed  	0x2000,0x0001,gr7	; 31 bit result
    793 	set_gr_immed   	-2,gr8
    794 	csmul      	gr7,gr8,gr8,cc6,0
    795 	test_gr_immed	-2,gr8
    796 	test_gr_immed	0,gr9
    797 
    798 	set_gr_limmed	0x4000,0x0000,gr7	; 32 bit result
    799 	set_gr_immed   	-2,gr8
    800 	csmul      	gr7,gr8,gr8,cc6,0
    801 	test_gr_immed	-2,gr8
    802 	test_gr_immed	0,gr9
    803 
    804 	set_gr_limmed	0x4000,0x0001,gr7	; 32 bit result
    805 	set_gr_immed   	-2,gr8
    806 	csmul      	gr7,gr8,gr8,cc6,0
    807 	test_gr_immed	-2,gr8
    808 	test_gr_immed	0,gr9
    809 
    810 	set_gr_limmed	0x4000,0x0000,gr7	; 33 bit result
    811 	set_gr_immed   	-4,gr8
    812 	csmul      	gr7,gr8,gr8,cc6,0
    813 	test_gr_immed	-4,gr8
    814 	test_gr_immed	0,gr9
    815 
    816 	set_gr_limmed	0x7fff,0xffff,gr7	; max negative result
    817 	set_gr_limmed	0x8000,0x0000,gr8
    818 	csmul      	gr7,gr8,gr8,cc6,0
    819 	test_gr_limmed	0x8000,0x0000,gr8
    820 	test_gr_immed	0,gr9
    821 
    822 	; Negative operands
    823 	set_gr_immed   	-3,gr7		; multiply small numbers
    824 	set_gr_immed   	-2,gr8
    825 	csmul      	gr7,gr8,gr8,cc6,0
    826 	test_gr_immed  	-2,gr8
    827 	test_gr_immed  	0,gr9
    828 
    829 	set_gr_immed   	-1,gr7		; multiply by 1
    830 	set_gr_immed   	-2,gr8
    831 	csmul      	gr7,gr8,gr8,cc6,0
    832 	test_gr_immed  	-2,gr8
    833 	test_gr_immed  	0,gr9
    834 
    835 	set_gr_immed   	-2,gr7		; multiply by 1
    836 	set_gr_immed   	-1,gr8
    837 	csmul      	gr7,gr8,gr8,cc6,0
    838 	test_gr_immed  	-1,gr8
    839 	test_gr_immed  	0,gr9
    840 
    841 	set_gr_limmed	0xc000,0x0001,gr7	; 31 bit result
    842 	set_gr_immed   	-2,gr8
    843 	csmul      	gr7,gr8,gr8,cc6,0
    844 	test_gr_immed  	-2,gr8
    845 	test_gr_immed	0,gr9
    846 
    847 	set_gr_limmed	0xc000,0x0000,gr7	; 32 bit result
    848 	set_gr_immed   	-2,gr8
    849 	csmul      	gr7,gr8,gr8,cc6,0
    850 	test_gr_immed  	-2,gr8
    851 	test_gr_immed	0,gr9
    852 
    853 	set_gr_limmed	0xc000,0x0000,gr7	; 33 bit result
    854 	set_gr_immed   	-4,gr8
    855 	csmul      	gr7,gr8,gr8,cc6,0
    856 	test_gr_immed  	-4,gr8
    857 	test_gr_immed  	0,gr9
    858 
    859 	set_gr_limmed	0x8000,0x0001,gr7	; almost max positive result
    860 	set_gr_limmed	0x8000,0x0001,gr8
    861 	csmul      	gr7,gr8,gr8,cc6,0
    862 	test_gr_limmed	0x8000,0x0001,gr8
    863 	test_gr_immed  	0,gr9
    864 
    865 
    866 	set_gr_limmed	0x8000,0x0000,gr7	; max positive result
    867 	set_gr_limmed	0x8000,0x0000,gr8
    868 	csmul      	gr7,gr8,gr8,cc6,0
    869 	test_gr_limmed	0x8000,0x0000,gr8
    870 	test_gr_immed  	0,gr9
    871 
    872 	; Positive operands
    873 	set_gr_immed   	3,gr7		; multiply small numbers
    874 	set_gr_immed   	2,gr8
    875 	csmul      	gr7,gr8,gr8,cc7,1
    876 	test_gr_immed  	2,gr8
    877 	test_gr_immed  	0,gr9
    878 
    879 	set_gr_immed   	1,gr7		; multiply by 1
    880 	set_gr_immed   	2,gr8
    881 	csmul      	gr7,gr8,gr8,cc7,1
    882 	test_gr_immed  	2,gr8
    883 	test_gr_immed  	0,gr9
    884 
    885 	set_gr_immed   	2,gr7		; multiply by 1
    886 	set_gr_immed   	1,gr8
    887 	csmul      	gr7,gr8,gr8,cc7,1
    888 	test_gr_immed  	1,gr8
    889 	test_gr_immed  	0,gr9
    890 
    891 	set_gr_immed   	0,gr7		; multiply by 0
    892 	set_gr_immed   	2,gr8
    893 	csmul      	gr7,gr8,gr8,cc7,1
    894 	test_gr_immed  	2,gr8
    895 	test_gr_immed  	0,gr9
    896 
    897 	set_gr_immed   	2,gr7		; multiply by 0
    898 	set_gr_immed   	0,gr8
    899 	csmul      	gr7,gr8,gr8,cc7,1
    900 	test_gr_immed  	0,gr8
    901 	test_gr_immed  	0,gr9
    902 
    903 	set_gr_limmed	0x3fff,0xffff,gr7	; 31 bit result
    904 	set_gr_immed   	2,gr8
    905 	csmul      	gr7,gr8,gr8,cc7,1
    906 	test_gr_immed  	2,gr8
    907 	test_gr_immed	0,gr9
    908 
    909 	set_gr_limmed	0x4000,0x0000,gr7	; 32 bit result
    910 	set_gr_immed   	2,gr8
    911 	csmul      	gr7,gr8,gr8,cc7,1
    912 	test_gr_immed  	2,gr8
    913 	test_gr_immed	0,gr9
    914 
    915 	set_gr_limmed	0x4000,0x0000,gr7	; 33 bit result
    916 	set_gr_immed   	4,gr8
    917 	csmul      	gr7,gr8,gr8,cc7,1
    918 	test_gr_immed  	4,gr8
    919 	test_gr_immed	0,gr9
    920 
    921 	set_gr_limmed	0x7fff,0xffff,gr7	; max positive result
    922 	set_gr_limmed	0x7fff,0xffff,gr8
    923 	csmul      	gr7,gr8,gr8,cc7,1
    924 	test_gr_limmed 	0x7fff,0xffff,gr8
    925 	test_gr_immed  	0,gr9
    926 
    927 	; Mixed operands
    928 	set_gr_immed   	-3,gr7		; multiply small numbers
    929 	set_gr_immed   	2,gr8
    930 	csmul      	gr7,gr8,gr8,cc7,1
    931 	test_gr_immed  	2,gr8
    932 	test_gr_immed  	0,gr9
    933 
    934 	set_gr_immed   	3,gr7		; multiply small numbers
    935 	set_gr_immed   	-2,gr8
    936 	csmul      	gr7,gr8,gr8,cc7,1
    937 	test_gr_immed  	-2,gr8
    938 	test_gr_immed  	0,gr9
    939 
    940 	set_gr_immed   	1,gr7		; multiply by 1
    941 	set_gr_immed   	-2,gr8
    942 	csmul      	gr7,gr8,gr8,cc7,1
    943 	test_gr_immed  	-2,gr8
    944 	test_gr_immed  	0,gr9
    945 
    946 	set_gr_immed   	-2,gr7		; multiply by 1
    947 	set_gr_immed   	1,gr8
    948 	csmul      	gr7,gr8,gr8,cc7,1
    949 	test_gr_immed  	1,gr8
    950 	test_gr_immed  	0,gr9
    951 
    952 	set_gr_immed   	0,gr7		; multiply by 0
    953 	set_gr_immed   	-2,gr8
    954 	csmul      	gr7,gr8,gr8,cc7,1
    955 	test_gr_immed  	-2,gr8
    956 	test_gr_immed  	0,gr9
    957 
    958 	set_gr_immed   	-2,gr7		; multiply by 0
    959 	set_gr_immed   	0,gr8
    960 	csmul      	gr7,gr8,gr8,cc7,1
    961 	test_gr_immed  	0,gr8
    962 	test_gr_immed  	0,gr9
    963 
    964 	set_gr_limmed  	0x2000,0x0001,gr7	; 31 bit result
    965 	set_gr_immed   	-2,gr8
    966 	csmul      	gr7,gr8,gr8,cc7,1
    967 	test_gr_immed	-2,gr8
    968 	test_gr_immed	0,gr9
    969 
    970 	set_gr_limmed	0x4000,0x0000,gr7	; 32 bit result
    971 	set_gr_immed   	-2,gr8
    972 	csmul      	gr7,gr8,gr8,cc7,1
    973 	test_gr_immed	-2,gr8
    974 	test_gr_immed	0,gr9
    975 
    976 	set_gr_limmed	0x4000,0x0001,gr7	; 32 bit result
    977 	set_gr_immed   	-2,gr8
    978 	csmul      	gr7,gr8,gr8,cc7,1
    979 	test_gr_immed	-2,gr8
    980 	test_gr_immed	0,gr9
    981 
    982 	set_gr_limmed	0x4000,0x0000,gr7	; 33 bit result
    983 	set_gr_immed   	-4,gr8
    984 	csmul      	gr7,gr8,gr8,cc7,1
    985 	test_gr_immed	-4,gr8
    986 	test_gr_immed	0,gr9
    987 
    988 	set_gr_limmed	0x7fff,0xffff,gr7	; max negative result
    989 	set_gr_limmed	0x8000,0x0000,gr8
    990 	csmul      	gr7,gr8,gr8,cc7,1
    991 	test_gr_limmed	0x8000,0x0000,gr8
    992 	test_gr_immed	0,gr9
    993 
    994 	; Negative operands
    995 	set_gr_immed   	-3,gr7		; multiply small numbers
    996 	set_gr_immed   	-2,gr8
    997 	csmul      	gr7,gr8,gr8,cc7,1
    998 	test_gr_immed  	-2,gr8
    999 	test_gr_immed  	0,gr9
   1000 
   1001 	set_gr_immed   	-1,gr7		; multiply by 1
   1002 	set_gr_immed   	-2,gr8
   1003 	csmul      	gr7,gr8,gr8,cc7,1
   1004 	test_gr_immed  	-2,gr8
   1005 	test_gr_immed  	0,gr9
   1006 
   1007 	set_gr_immed   	-2,gr7		; multiply by 1
   1008 	set_gr_immed   	-1,gr8
   1009 	csmul      	gr7,gr8,gr8,cc7,1
   1010 	test_gr_immed  	-1,gr8
   1011 	test_gr_immed  	0,gr9
   1012 
   1013 	set_gr_limmed	0xc000,0x0001,gr7	; 31 bit result
   1014 	set_gr_immed   	-2,gr8
   1015 	csmul      	gr7,gr8,gr8,cc7,1
   1016 	test_gr_immed  	-2,gr8
   1017 	test_gr_immed	0,gr9
   1018 
   1019 	set_gr_limmed	0xc000,0x0000,gr7	; 32 bit result
   1020 	set_gr_immed   	-2,gr8
   1021 	csmul      	gr7,gr8,gr8,cc7,1
   1022 	test_gr_immed  	-2,gr8
   1023 	test_gr_immed	0,gr9
   1024 
   1025 	set_gr_limmed	0xc000,0x0000,gr7	; 33 bit result
   1026 	set_gr_immed   	-4,gr8
   1027 	csmul      	gr7,gr8,gr8,cc7,1
   1028 	test_gr_immed  	-4,gr8
   1029 	test_gr_immed  	0,gr9
   1030 
   1031 	set_gr_limmed	0x8000,0x0001,gr7	; almost max positive result
   1032 	set_gr_limmed	0x8000,0x0001,gr8
   1033 	csmul      	gr7,gr8,gr8,cc7,1
   1034 	test_gr_limmed	0x8000,0x0001,gr8
   1035 	test_gr_immed  	0,gr9
   1036 
   1037 
   1038 	set_gr_limmed	0x8000,0x0000,gr7	; max positive result
   1039 	set_gr_limmed	0x8000,0x0000,gr8
   1040 	csmul      	gr7,gr8,gr8,cc7,1
   1041 	test_gr_limmed	0x8000,0x0000,gr8
   1042 	test_gr_immed  	0,gr9
   1043 
   1044 	pass
   1045