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