1# frv testcase for cmqmachu $GRi,$GRj,$GRk,$CCi,$cond 2# mach: all 3 4 .include "../testutils.inc" 5 6 start 7 8 .global cmqmachu 9cmqmachu: 10 set_spr_immed 0x1b1b,cccr 11 12 set_spr_immed 0,msr0 13 set_accg_immed 0,accg0 14 set_acc_immed 0,acc0 15 set_accg_immed 0,accg1 16 set_acc_immed 0,acc1 17 set_accg_immed 0,accg2 18 set_acc_immed 0,acc2 19 set_accg_immed 0,accg3 20 set_acc_immed 0,acc3 21 set_fr_iimmed 3,2,fr8 ; multiply small numbers 22 set_fr_iimmed 2,3,fr10 23 set_fr_iimmed 1,2,fr9 ; multiply by 1 24 set_fr_iimmed 2,1,fr11 25 cmqmachu fr8,fr10,acc0,cc0,1 26 test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 27 test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 28 test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 29 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 30 test_accg_immed 0,accg0 31 test_acc_immed 6,acc0 32 test_accg_immed 0,accg1 33 test_acc_immed 6,acc1 34 test_accg_immed 0,accg2 35 test_acc_immed 2,acc2 36 test_accg_immed 0,accg3 37 test_acc_immed 2,acc3 38 39 set_fr_iimmed 0,2,fr8 ; multiply by 0 40 set_fr_iimmed 2,0,fr10 41 set_fr_iimmed 0x3fff,2,fr9 ; 15 bit result 42 set_fr_iimmed 2,0x3fff,fr11 43 cmqmachu fr8,fr10,acc0,cc0,1 44 test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 45 test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 46 test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 47 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 48 test_accg_immed 0,accg0 49 test_acc_immed 6,acc0 50 test_accg_immed 0,accg1 51 test_acc_immed 6,acc1 52 test_accg_immed 0,accg2 53 test_acc_limmed 0x0000,0x8000,acc2 54 test_accg_immed 0,accg3 55 test_acc_limmed 0x0000,0x8000,acc3 56 57 set_fr_iimmed 0x4000,2,fr8 ; 16 bit result 58 set_fr_iimmed 2,0x4000,fr10 59 set_fr_iimmed 0x8000,2,fr9 ; 17 bit result 60 set_fr_iimmed 2,0x8000,fr11 61 cmqmachu fr8,fr10,acc0,cc0,1 62 test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 63 test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 64 test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 65 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 66 test_accg_immed 0,accg0 67 test_acc_limmed 0x0000,0x8006,acc0 68 test_accg_immed 0,accg1 69 test_acc_limmed 0x0000,0x8006,acc1 70 test_accg_immed 0,accg2 71 test_acc_immed 0x00018000,acc2 72 test_accg_immed 0,accg3 73 test_acc_immed 0x00018000,acc3 74 75 set_fr_iimmed 0x7fff,0x7fff,fr8 ; max positive result 76 set_fr_iimmed 0x7fff,0x7fff,fr10 77 set_fr_iimmed 0x8000,0x8000,fr9 ; max positive result 78 set_fr_iimmed 0x8000,0x8000,fr11 79 cmqmachu fr8,fr10,acc0,cc4,1 80 test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 81 test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 82 test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 83 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 84 test_accg_immed 0,accg0 85 test_acc_immed 0x3fff8007,acc0 86 test_accg_immed 0,accg1 87 test_acc_immed 0x3fff8007,acc1 88 test_accg_immed 0,accg2 89 test_acc_limmed 0x4001,0x8000,acc2 90 test_accg_immed 0,accg3 91 test_acc_limmed 0x4001,0x8000,acc3 92 93 set_fr_iimmed 0xffff,0xffff,fr8 ; max positive result 94 set_fr_iimmed 0xffff,0xffff,fr10 95 set_fr_iimmed 0xffff,0xffff,fr9 ; max positive result 96 set_fr_iimmed 0xffff,0xffff,fr11 97 cmqmachu fr8,fr10,acc0,cc4,1 98 test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 99 test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 100 test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 101 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 102 test_accg_immed 1,accg0 103 test_acc_limmed 0x3ffd,0x8008,acc0 104 test_accg_immed 1,accg1 105 test_acc_limmed 0x3ffd,0x8008,acc1 106 test_accg_immed 1,accg2 107 test_acc_limmed 0x3fff,0x8001,acc2 108 test_accg_immed 1,accg3 109 test_acc_limmed 0x3fff,0x8001,acc3 110 111 set_accg_immed 0xff,accg0 ; saturation 112 set_acc_immed 0xffffffff,acc0 113 set_accg_immed 0xff,accg1 114 set_acc_immed 0xffffffff,acc1 115 set_accg_immed 0xff,accg2 ; saturation 116 set_acc_immed 0xffffffff,acc2 117 set_accg_immed 0xff,accg3 118 set_acc_immed 0xffffffff,acc3 119 set_fr_iimmed 1,1,fr8 120 set_fr_iimmed 1,1,fr10 121 set_fr_iimmed 1,1,fr9 122 set_fr_iimmed 1,1,fr11 123 cmqmachu fr8,fr10,acc0,cc4,1 124 test_spr_bits 0x3c,2,0xf,msr0 ; msr0.sie is set 125 test_spr_bits 2,1,1,msr0 ; msr0.ovf is set 126 test_spr_bits 1,0,1,msr0 ; msr0.aovf is set 127 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt is set 128 test_accg_immed 0xff,accg0 129 test_acc_limmed 0xffff,0xffff,acc0 130 test_accg_immed 0xff,accg1 131 test_acc_limmed 0xffff,0xffff,acc1 132 test_accg_immed 0xff,accg2 133 test_acc_limmed 0xffff,0xffff,acc2 134 test_accg_immed 0xff,accg3 135 test_acc_limmed 0xffff,0xffff,acc3 136 137 set_fr_iimmed 0xffff,0x0000,fr8 138 set_fr_iimmed 0xffff,0xffff,fr10 139 set_fr_iimmed 0x0000,0xffff,fr9 140 set_fr_iimmed 0xffff,0xffff,fr11 141 cmqmachu fr8,fr10,acc0,cc4,1 142 test_spr_bits 0x3c,2,0x9,msr0 ; msr0.sie is set 143 test_spr_bits 2,1,1,msr0 ; msr0.ovf is set 144 test_spr_bits 1,0,1,msr0 ; msr0.aovf is set 145 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt is set 146 test_accg_immed 0xff,accg0 147 test_acc_limmed 0xffff,0xffff,acc0 148 test_accg_immed 0xff,accg1 149 test_acc_limmed 0xffff,0xffff,acc1 150 test_accg_immed 0xff,accg2 151 test_acc_limmed 0xffff,0xffff,acc2 152 test_accg_immed 0xff,accg3 153 test_acc_limmed 0xffff,0xffff,acc3 154 155 set_spr_immed 0,msr0 156 set_accg_immed 0,accg0 157 set_acc_immed 0,acc0 158 set_accg_immed 0,accg1 159 set_acc_immed 0,acc1 160 set_accg_immed 0,accg2 161 set_acc_immed 0,acc2 162 set_accg_immed 0,accg3 163 set_acc_immed 0,acc3 164 set_fr_iimmed 3,2,fr8 ; multiply small numbers 165 set_fr_iimmed 2,3,fr10 166 set_fr_iimmed 1,2,fr9 ; multiply by 1 167 set_fr_iimmed 2,1,fr11 168 cmqmachu fr8,fr10,acc0,cc1,0 169 test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 170 test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 171 test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 172 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 173 test_accg_immed 0,accg0 174 test_acc_immed 6,acc0 175 test_accg_immed 0,accg1 176 test_acc_immed 6,acc1 177 test_accg_immed 0,accg2 178 test_acc_immed 2,acc2 179 test_accg_immed 0,accg3 180 test_acc_immed 2,acc3 181 182 set_fr_iimmed 0,2,fr8 ; multiply by 0 183 set_fr_iimmed 2,0,fr10 184 set_fr_iimmed 0x3fff,2,fr9 ; 15 bit result 185 set_fr_iimmed 2,0x3fff,fr11 186 cmqmachu fr8,fr10,acc0,cc1,0 187 test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 188 test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 189 test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 190 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 191 test_accg_immed 0,accg0 192 test_acc_immed 6,acc0 193 test_accg_immed 0,accg1 194 test_acc_immed 6,acc1 195 test_accg_immed 0,accg2 196 test_acc_limmed 0x0000,0x8000,acc2 197 test_accg_immed 0,accg3 198 test_acc_limmed 0x0000,0x8000,acc3 199 200 set_fr_iimmed 0x4000,2,fr8 ; 16 bit result 201 set_fr_iimmed 2,0x4000,fr10 202 set_fr_iimmed 0x8000,2,fr9 ; 17 bit result 203 set_fr_iimmed 2,0x8000,fr11 204 cmqmachu fr8,fr10,acc0,cc1,0 205 test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 206 test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 207 test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 208 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 209 test_accg_immed 0,accg0 210 test_acc_limmed 0x0000,0x8006,acc0 211 test_accg_immed 0,accg1 212 test_acc_limmed 0x0000,0x8006,acc1 213 test_accg_immed 0,accg2 214 test_acc_immed 0x00018000,acc2 215 test_accg_immed 0,accg3 216 test_acc_immed 0x00018000,acc3 217 218 set_fr_iimmed 0x7fff,0x7fff,fr8 ; max positive result 219 set_fr_iimmed 0x7fff,0x7fff,fr10 220 set_fr_iimmed 0x8000,0x8000,fr9 ; max positive result 221 set_fr_iimmed 0x8000,0x8000,fr11 222 cmqmachu fr8,fr10,acc0,cc5,0 223 test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 224 test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 225 test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 226 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 227 test_accg_immed 0,accg0 228 test_acc_immed 0x3fff8007,acc0 229 test_accg_immed 0,accg1 230 test_acc_immed 0x3fff8007,acc1 231 test_accg_immed 0,accg2 232 test_acc_limmed 0x4001,0x8000,acc2 233 test_accg_immed 0,accg3 234 test_acc_limmed 0x4001,0x8000,acc3 235 236 set_fr_iimmed 0xffff,0xffff,fr8 ; max positive result 237 set_fr_iimmed 0xffff,0xffff,fr10 238 set_fr_iimmed 0xffff,0xffff,fr9 ; max positive result 239 set_fr_iimmed 0xffff,0xffff,fr11 240 cmqmachu fr8,fr10,acc0,cc5,0 241 test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 242 test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 243 test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 244 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 245 test_accg_immed 1,accg0 246 test_acc_limmed 0x3ffd,0x8008,acc0 247 test_accg_immed 1,accg1 248 test_acc_limmed 0x3ffd,0x8008,acc1 249 test_accg_immed 1,accg2 250 test_acc_limmed 0x3fff,0x8001,acc2 251 test_accg_immed 1,accg3 252 test_acc_limmed 0x3fff,0x8001,acc3 253 254 set_accg_immed 0xff,accg0 ; saturation 255 set_acc_immed 0xffffffff,acc0 256 set_accg_immed 0xff,accg1 257 set_acc_immed 0xffffffff,acc1 258 set_accg_immed 0xff,accg2 ; saturation 259 set_acc_immed 0xffffffff,acc2 260 set_accg_immed 0xff,accg3 261 set_acc_immed 0xffffffff,acc3 262 set_fr_iimmed 1,1,fr8 263 set_fr_iimmed 1,1,fr10 264 set_fr_iimmed 1,1,fr9 265 set_fr_iimmed 1,1,fr11 266 cmqmachu fr8,fr10,acc0,cc5,0 267 test_spr_bits 0x3c,2,0xf,msr0 ; msr0.sie is set 268 test_spr_bits 2,1,1,msr0 ; msr0.ovf is set 269 test_spr_bits 1,0,1,msr0 ; msr0.aovf is set 270 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt is set 271 test_accg_immed 0xff,accg0 272 test_acc_limmed 0xffff,0xffff,acc0 273 test_accg_immed 0xff,accg1 274 test_acc_limmed 0xffff,0xffff,acc1 275 test_accg_immed 0xff,accg2 276 test_acc_limmed 0xffff,0xffff,acc2 277 test_accg_immed 0xff,accg3 278 test_acc_limmed 0xffff,0xffff,acc3 279 280 set_fr_iimmed 0xffff,0x0000,fr8 281 set_fr_iimmed 0xffff,0xffff,fr10 282 set_fr_iimmed 0x0000,0xffff,fr9 283 set_fr_iimmed 0xffff,0xffff,fr11 284 cmqmachu fr8,fr10,acc0,cc5,0 285 test_spr_bits 0x3c,2,0x9,msr0 ; msr0.sie is set 286 test_spr_bits 2,1,1,msr0 ; msr0.ovf is set 287 test_spr_bits 1,0,1,msr0 ; msr0.aovf is set 288 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt is set 289 test_accg_immed 0xff,accg0 290 test_acc_limmed 0xffff,0xffff,acc0 291 test_accg_immed 0xff,accg1 292 test_acc_limmed 0xffff,0xffff,acc1 293 test_accg_immed 0xff,accg2 294 test_acc_limmed 0xffff,0xffff,acc2 295 test_accg_immed 0xff,accg3 296 test_acc_limmed 0xffff,0xffff,acc3 297 298 set_spr_immed 0,msr0 299 set_accg_immed 0x00000011,accg0 300 set_acc_immed 0x11111111,acc0 301 set_accg_immed 0x00000022,accg1 302 set_acc_immed 0x22222222,acc1 303 set_accg_immed 0x00000033,accg2 304 set_acc_immed 0x33333333,acc2 305 set_accg_immed 0x00000044,accg3 306 set_acc_immed 0x44444444,acc3 307 set_fr_iimmed 3,2,fr8 ; multiply small numbers 308 set_fr_iimmed 2,3,fr10 309 set_fr_iimmed 1,2,fr9 ; multiply by 1 310 set_fr_iimmed 2,1,fr11 311 cmqmachu fr8,fr10,acc0,cc0,0 312 test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 313 test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 314 test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 315 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 316 test_accg_immed 0x00000011,accg0 317 test_acc_immed 0x11111111,acc0 318 test_accg_immed 0x00000022,accg1 319 test_acc_immed 0x22222222,acc1 320 test_accg_immed 0x00000033,accg2 321 test_acc_immed 0x33333333,acc2 322 test_accg_immed 0x00000044,accg3 323 test_acc_immed 0x44444444,acc3 324 325 set_fr_iimmed 0,2,fr8 ; multiply by 0 326 set_fr_iimmed 2,0,fr10 327 set_fr_iimmed 0x3fff,2,fr9 ; 15 bit result 328 set_fr_iimmed 2,0x3fff,fr11 329 cmqmachu fr8,fr10,acc0,cc0,0 330 test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 331 test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 332 test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 333 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 334 test_accg_immed 0x00000011,accg0 335 test_acc_immed 0x11111111,acc0 336 test_accg_immed 0x00000022,accg1 337 test_acc_immed 0x22222222,acc1 338 test_accg_immed 0x00000033,accg2 339 test_acc_immed 0x33333333,acc2 340 test_accg_immed 0x00000044,accg3 341 test_acc_immed 0x44444444,acc3 342 343 set_fr_iimmed 0x4000,2,fr8 ; 16 bit result 344 set_fr_iimmed 2,0x4000,fr10 345 set_fr_iimmed 0x8000,2,fr9 ; 17 bit result 346 set_fr_iimmed 2,0x8000,fr11 347 cmqmachu fr8,fr10,acc0,cc0,0 348 test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 349 test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 350 test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 351 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 352 test_accg_immed 0x00000011,accg0 353 test_acc_immed 0x11111111,acc0 354 test_accg_immed 0x00000022,accg1 355 test_acc_immed 0x22222222,acc1 356 test_accg_immed 0x00000033,accg2 357 test_acc_immed 0x33333333,acc2 358 test_accg_immed 0x00000044,accg3 359 test_acc_immed 0x44444444,acc3 360 361 set_fr_iimmed 0x7fff,0x7fff,fr8 ; max positive result 362 set_fr_iimmed 0x7fff,0x7fff,fr10 363 set_fr_iimmed 0x8000,0x8000,fr9 ; max positive result 364 set_fr_iimmed 0x8000,0x8000,fr11 365 cmqmachu fr8,fr10,acc0,cc4,0 366 test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 367 test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 368 test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 369 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 370 test_accg_immed 0x00000011,accg0 371 test_acc_immed 0x11111111,acc0 372 test_accg_immed 0x00000022,accg1 373 test_acc_immed 0x22222222,acc1 374 test_accg_immed 0x00000033,accg2 375 test_acc_immed 0x33333333,acc2 376 test_accg_immed 0x00000044,accg3 377 test_acc_immed 0x44444444,acc3 378 379 set_fr_iimmed 0xffff,0xffff,fr8 ; max positive result 380 set_fr_iimmed 0xffff,0xffff,fr10 381 set_fr_iimmed 0xffff,0xffff,fr9 ; max positive result 382 set_fr_iimmed 0xffff,0xffff,fr11 383 cmqmachu fr8,fr10,acc0,cc4,0 384 test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 385 test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 386 test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 387 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 388 test_accg_immed 0x00000011,accg0 389 test_acc_immed 0x11111111,acc0 390 test_accg_immed 0x00000022,accg1 391 test_acc_immed 0x22222222,acc1 392 test_accg_immed 0x00000033,accg2 393 test_acc_immed 0x33333333,acc2 394 test_accg_immed 0x00000044,accg3 395 test_acc_immed 0x44444444,acc3 396 397 set_accg_immed 0xff,accg0 ; saturation 398 set_acc_immed 0xffffffff,acc0 399 set_accg_immed 0xff,accg1 400 set_acc_immed 0xffffffff,acc1 401 set_accg_immed 0xff,accg2 ; saturation 402 set_acc_immed 0xffffffff,acc2 403 set_accg_immed 0xff,accg3 404 set_acc_immed 0xffffffff,acc3 405 set_fr_iimmed 1,1,fr8 406 set_fr_iimmed 1,1,fr10 407 set_fr_iimmed 1,1,fr9 408 set_fr_iimmed 1,1,fr11 409 cmqmachu fr8,fr10,acc0,cc4,0 410 test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 411 test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 412 test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 413 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 414 test_accg_immed 0xff,accg0 ; saturation 415 test_acc_immed 0xffffffff,acc0 416 test_accg_immed 0xff,accg1 417 test_acc_immed 0xffffffff,acc1 418 test_accg_immed 0xff,accg2 ; saturation 419 test_acc_immed 0xffffffff,acc2 420 test_accg_immed 0xff,accg3 421 test_acc_immed 0xffffffff,acc3 422 423 set_fr_iimmed 0xffff,0x0000,fr8 424 set_fr_iimmed 0xffff,0xffff,fr10 425 set_fr_iimmed 0x0000,0xffff,fr9 426 set_fr_iimmed 0xffff,0xffff,fr11 427 cmqmachu fr8,fr10,acc0,cc4,0 428 test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 429 test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 430 test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 431 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 432 test_accg_immed 0xff,accg0 ; saturation 433 test_acc_immed 0xffffffff,acc0 434 test_accg_immed 0xff,accg1 435 test_acc_immed 0xffffffff,acc1 436 test_accg_immed 0xff,accg2 ; saturation 437 test_acc_immed 0xffffffff,acc2 438 test_accg_immed 0xff,accg3 439 test_acc_immed 0xffffffff,acc3 440 441 set_spr_immed 0,msr0 442 set_accg_immed 0x00000011,accg0 443 set_acc_immed 0x11111111,acc0 444 set_accg_immed 0x00000022,accg1 445 set_acc_immed 0x22222222,acc1 446 set_accg_immed 0x00000033,accg2 447 set_acc_immed 0x33333333,acc2 448 set_accg_immed 0x00000044,accg3 449 set_acc_immed 0x44444444,acc3 450 set_fr_iimmed 3,2,fr8 ; multiply small numbers 451 set_fr_iimmed 2,3,fr10 452 set_fr_iimmed 1,2,fr9 ; multiply by 1 453 set_fr_iimmed 2,1,fr11 454 cmqmachu fr8,fr10,acc0,cc1,1 455 test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 456 test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 457 test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 458 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 459 test_accg_immed 0x00000011,accg0 460 test_acc_immed 0x11111111,acc0 461 test_accg_immed 0x00000022,accg1 462 test_acc_immed 0x22222222,acc1 463 test_accg_immed 0x00000033,accg2 464 test_acc_immed 0x33333333,acc2 465 test_accg_immed 0x00000044,accg3 466 test_acc_immed 0x44444444,acc3 467 468 set_fr_iimmed 0,2,fr8 ; multiply by 0 469 set_fr_iimmed 2,0,fr10 470 set_fr_iimmed 0x3fff,2,fr9 ; 15 bit result 471 set_fr_iimmed 2,0x3fff,fr11 472 cmqmachu fr8,fr10,acc0,cc1,1 473 test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 474 test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 475 test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 476 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 477 test_accg_immed 0x00000011,accg0 478 test_acc_immed 0x11111111,acc0 479 test_accg_immed 0x00000022,accg1 480 test_acc_immed 0x22222222,acc1 481 test_accg_immed 0x00000033,accg2 482 test_acc_immed 0x33333333,acc2 483 test_accg_immed 0x00000044,accg3 484 test_acc_immed 0x44444444,acc3 485 486 set_fr_iimmed 0x4000,2,fr8 ; 16 bit result 487 set_fr_iimmed 2,0x4000,fr10 488 set_fr_iimmed 0x8000,2,fr9 ; 17 bit result 489 set_fr_iimmed 2,0x8000,fr11 490 cmqmachu fr8,fr10,acc0,cc1,1 491 test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 492 test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 493 test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 494 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 495 test_accg_immed 0x00000011,accg0 496 test_acc_immed 0x11111111,acc0 497 test_accg_immed 0x00000022,accg1 498 test_acc_immed 0x22222222,acc1 499 test_accg_immed 0x00000033,accg2 500 test_acc_immed 0x33333333,acc2 501 test_accg_immed 0x00000044,accg3 502 test_acc_immed 0x44444444,acc3 503 504 set_fr_iimmed 0x7fff,0x7fff,fr8 ; max positive result 505 set_fr_iimmed 0x7fff,0x7fff,fr10 506 set_fr_iimmed 0x8000,0x8000,fr9 ; max positive result 507 set_fr_iimmed 0x8000,0x8000,fr11 508 cmqmachu fr8,fr10,acc0,cc5,1 509 test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 510 test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 511 test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 512 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 513 test_accg_immed 0x00000011,accg0 514 test_acc_immed 0x11111111,acc0 515 test_accg_immed 0x00000022,accg1 516 test_acc_immed 0x22222222,acc1 517 test_accg_immed 0x00000033,accg2 518 test_acc_immed 0x33333333,acc2 519 test_accg_immed 0x00000044,accg3 520 test_acc_immed 0x44444444,acc3 521 522 set_fr_iimmed 0xffff,0xffff,fr8 ; max positive result 523 set_fr_iimmed 0xffff,0xffff,fr10 524 set_fr_iimmed 0xffff,0xffff,fr9 ; max positive result 525 set_fr_iimmed 0xffff,0xffff,fr11 526 cmqmachu fr8,fr10,acc0,cc5,1 527 test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 528 test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 529 test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 530 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 531 test_accg_immed 0x00000011,accg0 532 test_acc_immed 0x11111111,acc0 533 test_accg_immed 0x00000022,accg1 534 test_acc_immed 0x22222222,acc1 535 test_accg_immed 0x00000033,accg2 536 test_acc_immed 0x33333333,acc2 537 test_accg_immed 0x00000044,accg3 538 test_acc_immed 0x44444444,acc3 539 540 set_accg_immed 0xff,accg0 ; saturation 541 set_acc_immed 0xffffffff,acc0 542 set_accg_immed 0xff,accg1 543 set_acc_immed 0xffffffff,acc1 544 set_accg_immed 0xff,accg2 ; saturation 545 set_acc_immed 0xffffffff,acc2 546 set_accg_immed 0xff,accg3 547 set_acc_immed 0xffffffff,acc3 548 set_fr_iimmed 1,1,fr8 549 set_fr_iimmed 1,1,fr10 550 set_fr_iimmed 1,1,fr9 551 set_fr_iimmed 1,1,fr11 552 cmqmachu fr8,fr10,acc0,cc5,1 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 0xff,accg0 ; saturation 558 test_acc_immed 0xffffffff,acc0 559 test_accg_immed 0xff,accg1 560 test_acc_immed 0xffffffff,acc1 561 test_accg_immed 0xff,accg2 ; saturation 562 test_acc_immed 0xffffffff,acc2 563 test_accg_immed 0xff,accg3 564 test_acc_immed 0xffffffff,acc3 565 566 set_fr_iimmed 0xffff,0x0000,fr8 567 set_fr_iimmed 0xffff,0xffff,fr10 568 set_fr_iimmed 0x0000,0xffff,fr9 569 set_fr_iimmed 0xffff,0xffff,fr11 570 cmqmachu fr8,fr10,acc0,cc5,1 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 0xff,accg0 ; saturation 576 test_acc_immed 0xffffffff,acc0 577 test_accg_immed 0xff,accg1 578 test_acc_immed 0xffffffff,acc1 579 test_accg_immed 0xff,accg2 ; saturation 580 test_acc_immed 0xffffffff,acc2 581 test_accg_immed 0xff,accg3 582 test_acc_immed 0xffffffff,acc3 583 584 set_spr_immed 0,msr0 585 set_accg_immed 0x00000011,accg0 586 set_acc_immed 0x11111111,acc0 587 set_accg_immed 0x00000022,accg1 588 set_acc_immed 0x22222222,acc1 589 set_accg_immed 0x00000033,accg2 590 set_acc_immed 0x33333333,acc2 591 set_accg_immed 0x00000044,accg3 592 set_acc_immed 0x44444444,acc3 593 set_fr_iimmed 3,2,fr8 ; multiply small numbers 594 set_fr_iimmed 2,3,fr10 595 set_fr_iimmed 1,2,fr9 ; multiply by 1 596 set_fr_iimmed 2,1,fr11 597 cmqmachu fr8,fr10,acc0,cc2,1 598 test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 599 test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 600 test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 601 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 602 test_accg_immed 0x00000011,accg0 603 test_acc_immed 0x11111111,acc0 604 test_accg_immed 0x00000022,accg1 605 test_acc_immed 0x22222222,acc1 606 test_accg_immed 0x00000033,accg2 607 test_acc_immed 0x33333333,acc2 608 test_accg_immed 0x00000044,accg3 609 test_acc_immed 0x44444444,acc3 610 611 set_fr_iimmed 0,2,fr8 ; multiply by 0 612 set_fr_iimmed 2,0,fr10 613 set_fr_iimmed 0x3fff,2,fr9 ; 15 bit result 614 set_fr_iimmed 2,0x3fff,fr11 615 cmqmachu fr8,fr10,acc0,cc2,0 616 test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 617 test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 618 test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 619 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 620 test_accg_immed 0x00000011,accg0 621 test_acc_immed 0x11111111,acc0 622 test_accg_immed 0x00000022,accg1 623 test_acc_immed 0x22222222,acc1 624 test_accg_immed 0x00000033,accg2 625 test_acc_immed 0x33333333,acc2 626 test_accg_immed 0x00000044,accg3 627 test_acc_immed 0x44444444,acc3 628 629 set_fr_iimmed 0x4000,2,fr8 ; 16 bit result 630 set_fr_iimmed 2,0x4000,fr10 631 set_fr_iimmed 0x8000,2,fr9 ; 17 bit result 632 set_fr_iimmed 2,0x8000,fr11 633 cmqmachu fr8,fr10,acc0,cc2,1 634 test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 635 test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 636 test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 637 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 638 test_accg_immed 0x00000011,accg0 639 test_acc_immed 0x11111111,acc0 640 test_accg_immed 0x00000022,accg1 641 test_acc_immed 0x22222222,acc1 642 test_accg_immed 0x00000033,accg2 643 test_acc_immed 0x33333333,acc2 644 test_accg_immed 0x00000044,accg3 645 test_acc_immed 0x44444444,acc3 646 647 set_fr_iimmed 0x7fff,0x7fff,fr8 ; max positive result 648 set_fr_iimmed 0x7fff,0x7fff,fr10 649 set_fr_iimmed 0x8000,0x8000,fr9 ; max positive result 650 set_fr_iimmed 0x8000,0x8000,fr11 651 cmqmachu fr8,fr10,acc0,cc6,0 652 test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 653 test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 654 test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 655 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 656 test_accg_immed 0x00000011,accg0 657 test_acc_immed 0x11111111,acc0 658 test_accg_immed 0x00000022,accg1 659 test_acc_immed 0x22222222,acc1 660 test_accg_immed 0x00000033,accg2 661 test_acc_immed 0x33333333,acc2 662 test_accg_immed 0x00000044,accg3 663 test_acc_immed 0x44444444,acc3 664 665 set_fr_iimmed 0xffff,0xffff,fr8 ; max positive result 666 set_fr_iimmed 0xffff,0xffff,fr10 667 set_fr_iimmed 0xffff,0xffff,fr9 ; max positive result 668 set_fr_iimmed 0xffff,0xffff,fr11 669 cmqmachu fr8,fr10,acc0,cc6,1 670 test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 671 test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 672 test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 673 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 674 test_accg_immed 0x00000011,accg0 675 test_acc_immed 0x11111111,acc0 676 test_accg_immed 0x00000022,accg1 677 test_acc_immed 0x22222222,acc1 678 test_accg_immed 0x00000033,accg2 679 test_acc_immed 0x33333333,acc2 680 test_accg_immed 0x00000044,accg3 681 test_acc_immed 0x44444444,acc3 682 683 set_accg_immed 0xff,accg0 ; saturation 684 set_acc_immed 0xffffffff,acc0 685 set_accg_immed 0xff,accg1 686 set_acc_immed 0xffffffff,acc1 687 set_accg_immed 0xff,accg2 ; saturation 688 set_acc_immed 0xffffffff,acc2 689 set_accg_immed 0xff,accg3 690 set_acc_immed 0xffffffff,acc3 691 set_fr_iimmed 1,1,fr8 692 set_fr_iimmed 1,1,fr10 693 set_fr_iimmed 1,1,fr9 694 set_fr_iimmed 1,1,fr11 695 cmqmachu fr8,fr10,acc0,cc6,0 696 test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 697 test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 698 test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 699 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 700 test_accg_immed 0xff,accg0 ; saturation 701 test_acc_immed 0xffffffff,acc0 702 test_accg_immed 0xff,accg1 703 test_acc_immed 0xffffffff,acc1 704 test_accg_immed 0xff,accg2 ; saturation 705 test_acc_immed 0xffffffff,acc2 706 test_accg_immed 0xff,accg3 707 test_acc_immed 0xffffffff,acc3 708 709 set_fr_iimmed 0xffff,0x0000,fr8 710 set_fr_iimmed 0xffff,0xffff,fr10 711 set_fr_iimmed 0x0000,0xffff,fr9 712 set_fr_iimmed 0xffff,0xffff,fr11 713 cmqmachu fr8,fr10,acc0,cc6,1 714 test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 715 test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 716 test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 717 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 718 test_accg_immed 0xff,accg0 ; saturation 719 test_acc_immed 0xffffffff,acc0 720 test_accg_immed 0xff,accg1 721 test_acc_immed 0xffffffff,acc1 722 test_accg_immed 0xff,accg2 ; saturation 723 test_acc_immed 0xffffffff,acc2 724 test_accg_immed 0xff,accg3 725 test_acc_immed 0xffffffff,acc3 726; 727 set_spr_immed 0,msr0 728 set_accg_immed 0x00000011,accg0 729 set_acc_immed 0x11111111,acc0 730 set_accg_immed 0x00000022,accg1 731 set_acc_immed 0x22222222,acc1 732 set_accg_immed 0x00000033,accg2 733 set_acc_immed 0x33333333,acc2 734 set_accg_immed 0x00000044,accg3 735 set_acc_immed 0x44444444,acc3 736 set_fr_iimmed 3,2,fr8 ; multiply small numbers 737 set_fr_iimmed 2,3,fr10 738 set_fr_iimmed 1,2,fr9 ; multiply by 1 739 set_fr_iimmed 2,1,fr11 740 cmqmachu fr8,fr10,acc0,cc3,1 741 test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 742 test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 743 test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 744 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 745 test_accg_immed 0x00000011,accg0 746 test_acc_immed 0x11111111,acc0 747 test_accg_immed 0x00000022,accg1 748 test_acc_immed 0x22222222,acc1 749 test_accg_immed 0x00000033,accg2 750 test_acc_immed 0x33333333,acc2 751 test_accg_immed 0x00000044,accg3 752 test_acc_immed 0x44444444,acc3 753 754 set_fr_iimmed 0,2,fr8 ; multiply by 0 755 set_fr_iimmed 2,0,fr10 756 set_fr_iimmed 0x3fff,2,fr9 ; 15 bit result 757 set_fr_iimmed 2,0x3fff,fr11 758 cmqmachu fr8,fr10,acc0,cc3,0 759 test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 760 test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 761 test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 762 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 763 test_accg_immed 0x00000011,accg0 764 test_acc_immed 0x11111111,acc0 765 test_accg_immed 0x00000022,accg1 766 test_acc_immed 0x22222222,acc1 767 test_accg_immed 0x00000033,accg2 768 test_acc_immed 0x33333333,acc2 769 test_accg_immed 0x00000044,accg3 770 test_acc_immed 0x44444444,acc3 771 772 set_fr_iimmed 0x4000,2,fr8 ; 16 bit result 773 set_fr_iimmed 2,0x4000,fr10 774 set_fr_iimmed 0x8000,2,fr9 ; 17 bit result 775 set_fr_iimmed 2,0x8000,fr11 776 cmqmachu fr8,fr10,acc0,cc3,1 777 test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 778 test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 779 test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 780 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 781 test_accg_immed 0x00000011,accg0 782 test_acc_immed 0x11111111,acc0 783 test_accg_immed 0x00000022,accg1 784 test_acc_immed 0x22222222,acc1 785 test_accg_immed 0x00000033,accg2 786 test_acc_immed 0x33333333,acc2 787 test_accg_immed 0x00000044,accg3 788 test_acc_immed 0x44444444,acc3 789 790 set_fr_iimmed 0x7fff,0x7fff,fr8 ; max positive result 791 set_fr_iimmed 0x7fff,0x7fff,fr10 792 set_fr_iimmed 0x8000,0x8000,fr9 ; max positive result 793 set_fr_iimmed 0x8000,0x8000,fr11 794 cmqmachu fr8,fr10,acc0,cc7,0 795 test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 796 test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 797 test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 798 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 799 test_accg_immed 0x00000011,accg0 800 test_acc_immed 0x11111111,acc0 801 test_accg_immed 0x00000022,accg1 802 test_acc_immed 0x22222222,acc1 803 test_accg_immed 0x00000033,accg2 804 test_acc_immed 0x33333333,acc2 805 test_accg_immed 0x00000044,accg3 806 test_acc_immed 0x44444444,acc3 807 808 set_fr_iimmed 0xffff,0xffff,fr8 ; max positive result 809 set_fr_iimmed 0xffff,0xffff,fr10 810 set_fr_iimmed 0xffff,0xffff,fr9 ; max positive result 811 set_fr_iimmed 0xffff,0xffff,fr11 812 cmqmachu fr8,fr10,acc0,cc7,1 813 test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 814 test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 815 test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 816 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 817 test_accg_immed 0x00000011,accg0 818 test_acc_immed 0x11111111,acc0 819 test_accg_immed 0x00000022,accg1 820 test_acc_immed 0x22222222,acc1 821 test_accg_immed 0x00000033,accg2 822 test_acc_immed 0x33333333,acc2 823 test_accg_immed 0x00000044,accg3 824 test_acc_immed 0x44444444,acc3 825 826 set_accg_immed 0xff,accg0 ; saturation 827 set_acc_immed 0xffffffff,acc0 828 set_accg_immed 0xff,accg1 829 set_acc_immed 0xffffffff,acc1 830 set_accg_immed 0xff,accg2 ; saturation 831 set_acc_immed 0xffffffff,acc2 832 set_accg_immed 0xff,accg3 833 set_acc_immed 0xffffffff,acc3 834 set_fr_iimmed 1,1,fr8 835 set_fr_iimmed 1,1,fr10 836 set_fr_iimmed 1,1,fr9 837 set_fr_iimmed 1,1,fr11 838 cmqmachu fr8,fr10,acc0,cc7,0 839 test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 840 test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 841 test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 842 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 843 test_accg_immed 0xff,accg0 ; saturation 844 test_acc_immed 0xffffffff,acc0 845 test_accg_immed 0xff,accg1 846 test_acc_immed 0xffffffff,acc1 847 test_accg_immed 0xff,accg2 ; saturation 848 test_acc_immed 0xffffffff,acc2 849 test_accg_immed 0xff,accg3 850 test_acc_immed 0xffffffff,acc3 851 852 set_fr_iimmed 0xffff,0x0000,fr8 853 set_fr_iimmed 0xffff,0xffff,fr10 854 set_fr_iimmed 0x0000,0xffff,fr9 855 set_fr_iimmed 0xffff,0xffff,fr11 856 cmqmachu fr8,fr10,acc0,cc7,1 857 test_spr_bits 0x3c,2,0,msr0 ; msr0.sie is clear 858 test_spr_bits 2,1,0,msr0 ; msr0.ovf not set 859 test_spr_bits 1,0,0,msr0 ; msr0.aovf not set 860 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt always set 861 test_accg_immed 0xff,accg0 ; saturation 862 test_acc_immed 0xffffffff,acc0 863 test_accg_immed 0xff,accg1 864 test_acc_immed 0xffffffff,acc1 865 test_accg_immed 0xff,accg2 ; saturation 866 test_acc_immed 0xffffffff,acc2 867 test_accg_immed 0xff,accg3 868 test_acc_immed 0xffffffff,acc3 869 870 pass 871