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 9csmulcc: 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 1381