1# frv testcase for cmcpxru $GRi,$GRj,$GRk,$CCi,$cond 2# mach: all 3 4 .include "../testutils.inc" 5 6 start 7 8 .global cmcpxru 9cmcpxru: 10 set_spr_immed 0x1b1b,cccr 11 12 set_fr_iimmed 4,2,fr7 ; multiply small numbers 13 set_fr_iimmed 5,3,fr8 14 cmcpxru fr7,fr8,acc0,cc0,1 15 test_accg_immed 0,accg0 16 test_acc_immed 14,acc0 17 18 set_fr_iimmed 1,2,fr7 ; multiply by 1 19 set_fr_iimmed 3,1,fr8 20 cmcpxru fr7,fr8,acc0,cc0,1 21 test_accg_immed 0,accg0 22 test_acc_immed 1,acc0 23 24 set_fr_iimmed 0,2,fr7 ; multiply by 0 25 set_fr_iimmed 2,0,fr8 26 cmcpxru fr7,fr8,acc0,cc0,1 27 test_accg_immed 0,accg0 28 test_acc_immed 0,acc0 29 30 set_fr_iimmed 0x3fff,1,fr7 ; 15 bit result 31 set_fr_iimmed 2,0x0001,fr8 32 cmcpxru fr7,fr8,acc0,cc0,1 33 test_accg_immed 0,accg0 34 test_acc_limmed 0x0000,0x7ffd,acc0 35 36 set_fr_iimmed 0x4000,1,fr7 ; 16 bit result 37 set_fr_iimmed 4,0x0001,fr8 38 cmcpxru fr7,fr8,acc0,cc0,1 39 test_accg_immed 0,accg0 40 test_acc_limmed 0x0000,0xffff,acc0 41 42 set_fr_iimmed 0x8000,1,fr7 ; 17 bit result 43 set_fr_iimmed 4,0x0001,fr8 44 cmcpxru fr7,fr8,acc0,cc0,1 45 test_accg_immed 0,accg0 46 test_acc_immed 0x0001ffff,acc0 47 48 set_fr_iimmed 0x7fff,0x0000,fr7 ; max positive result 49 set_fr_iimmed 0x7fff,0x7fff,fr8 50 cmcpxru fr7,fr8,acc0,cc4,1 51 test_accg_immed 0,accg0 52 test_acc_immed 0x3fff0001,acc0 53 54 set_fr_iimmed 0x8000,0x8000,fr7 ; max positive result 55 set_fr_iimmed 0x8000,0x0000,fr8 56 cmcpxru fr7,fr8,acc0,cc4,1 57 test_accg_immed 0,accg0 58 test_acc_limmed 0x4000,0x0000,acc0 59 60 set_fr_iimmed 0xffff,0x0000,fr7 ; max positive result 61 set_fr_iimmed 0xffff,0xffff,fr8 62 cmcpxru fr7,fr8,acc0,cc4,1 63 test_accg_immed 0,accg0 64 test_acc_limmed 0xfffe,0x0001,acc0 65 66 set_fr_iimmed 0x0000,0x0001,fr7 ; saturation 67 set_fr_iimmed 0xffff,0x0001,fr8 68 cmcpxru fr7,fr8,acc0,cc4,1 69 test_spr_bits 0x3c,2,0x8,msr0 ; msr0.sie is set 70 test_spr_bits 2,1,1,msr0 ; msr0.ovf is set 71 test_spr_bits 1,0,1,msr0 ; msr0.aovf is set 72 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt is set 73 test_accg_immed 0,accg0 74 test_acc_immed 0,acc0 75 76 set_fr_iimmed 0x0000,0xffff,fr7 ; saturation 77 set_fr_iimmed 0xffff,0xffff,fr8 78 cmcpxru fr7,fr8,acc0,cc4,1 79 test_spr_bits 0x3c,2,0x8,msr0 ; msr0.sie is set 80 test_spr_bits 2,1,1,msr0 ; msr0.ovf is set 81 test_spr_bits 1,0,1,msr0 ; msr0.aovf is set 82 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt is set 83 test_accg_immed 0,accg0 84 test_acc_immed 0,acc0 85 86 set_fr_iimmed 0xfffe,0xffff,fr7 ; saturation 87 set_fr_iimmed 0xffff,0xffff,fr8 88 cmcpxru fr7,fr8,acc0,cc4,1 89 test_spr_bits 0x3c,2,0x8,msr0 ; msr0.sie is set 90 test_spr_bits 2,1,1,msr0 ; msr0.ovf is set 91 test_spr_bits 1,0,1,msr0 ; msr0.aovf is set 92 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt is set 93 test_accg_immed 0,accg0 94 test_acc_immed 0,acc0 95 96 set_fr_iimmed 4,2,fr7 ; multiply small numbers 97 set_fr_iimmed 5,3,fr8 98 cmcpxru fr7,fr8,acc0,cc1,0 99 test_accg_immed 0,accg0 100 test_acc_immed 14,acc0 101 102 set_fr_iimmed 1,2,fr7 ; multiply by 1 103 set_fr_iimmed 3,1,fr8 104 cmcpxru fr7,fr8,acc0,cc1,0 105 test_accg_immed 0,accg0 106 test_acc_immed 1,acc0 107 108 set_fr_iimmed 0,2,fr7 ; multiply by 0 109 set_fr_iimmed 2,0,fr8 110 cmcpxru fr7,fr8,acc0,cc1,0 111 test_accg_immed 0,accg0 112 test_acc_immed 0,acc0 113 114 set_fr_iimmed 0x3fff,1,fr7 ; 15 bit result 115 set_fr_iimmed 2,0x0001,fr8 116 cmcpxru fr7,fr8,acc0,cc1,0 117 test_accg_immed 0,accg0 118 test_acc_limmed 0x0000,0x7ffd,acc0 119 120 set_fr_iimmed 0x4000,1,fr7 ; 16 bit result 121 set_fr_iimmed 4,0x0001,fr8 122 cmcpxru fr7,fr8,acc0,cc1,0 123 test_accg_immed 0,accg0 124 test_acc_limmed 0x0000,0xffff,acc0 125 126 set_fr_iimmed 0x8000,1,fr7 ; 17 bit result 127 set_fr_iimmed 4,0x0001,fr8 128 cmcpxru fr7,fr8,acc0,cc1,0 129 test_accg_immed 0,accg0 130 test_acc_immed 0x0001ffff,acc0 131 132 set_fr_iimmed 0x7fff,0x0000,fr7 ; max positive result 133 set_fr_iimmed 0x7fff,0x7fff,fr8 134 cmcpxru fr7,fr8,acc0,cc5,0 135 test_accg_immed 0,accg0 136 test_acc_immed 0x3fff0001,acc0 137 138 set_fr_iimmed 0x8000,0x8000,fr7 ; max positive result 139 set_fr_iimmed 0x8000,0x0000,fr8 140 cmcpxru fr7,fr8,acc0,cc5,0 141 test_accg_immed 0,accg0 142 test_acc_limmed 0x4000,0x0000,acc0 143 144 set_fr_iimmed 0xffff,0x0000,fr7 ; max positive result 145 set_fr_iimmed 0xffff,0xffff,fr8 146 cmcpxru fr7,fr8,acc0,cc5,0 147 test_accg_immed 0,accg0 148 test_acc_limmed 0xfffe,0x0001,acc0 149 150 set_fr_iimmed 0x0000,0x0001,fr7 ; saturation 151 set_fr_iimmed 0xffff,0x0001,fr8 152 cmcpxru fr7,fr8,acc0,cc5,0 153 test_spr_bits 0x3c,2,0x8,msr0 ; msr0.sie is set 154 test_spr_bits 2,1,1,msr0 ; msr0.ovf is set 155 test_spr_bits 1,0,1,msr0 ; msr0.aovf is set 156 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt is set 157 test_accg_immed 0,accg0 158 test_acc_immed 0,acc0 159 160 set_fr_iimmed 0x0000,0xffff,fr7 ; saturation 161 set_fr_iimmed 0xffff,0xffff,fr8 162 cmcpxru fr7,fr8,acc0,cc5,0 163 test_spr_bits 0x3c,2,0x8,msr0 ; msr0.sie is set 164 test_spr_bits 2,1,1,msr0 ; msr0.ovf is set 165 test_spr_bits 1,0,1,msr0 ; msr0.aovf is set 166 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt is set 167 test_accg_immed 0,accg0 168 test_acc_immed 0,acc0 169 170 set_fr_iimmed 0xfffe,0xffff,fr7 ; saturation 171 set_fr_iimmed 0xffff,0xffff,fr8 172 cmcpxru fr7,fr8,acc0,cc5,0 173 test_spr_bits 0x3c,2,0x8,msr0 ; msr0.sie is set 174 test_spr_bits 2,1,1,msr0 ; msr0.ovf is set 175 test_spr_bits 1,0,1,msr0 ; msr0.aovf is set 176 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt is set 177 test_accg_immed 0,accg0 178 test_acc_immed 0,acc0 179 180 set_spr_immed 0,msr0 181 set_accg_immed 0x00000011,accg0 182 set_acc_immed 0x11111111,acc0 183 set_fr_iimmed 4,2,fr7 ; multiply small numbers 184 set_fr_iimmed 5,3,fr8 185 cmcpxru fr7,fr8,acc0,cc0,0 186 test_accg_immed 0x00000011,accg0 187 test_acc_immed 0x11111111,acc0 188 189 set_fr_iimmed 1,2,fr7 ; multiply by 1 190 set_fr_iimmed 3,1,fr8 191 cmcpxru fr7,fr8,acc0,cc0,0 192 test_accg_immed 0x00000011,accg0 193 test_acc_immed 0x11111111,acc0 194 195 set_fr_iimmed 0,2,fr7 ; multiply by 0 196 set_fr_iimmed 2,0,fr8 197 cmcpxru fr7,fr8,acc0,cc0,0 198 test_accg_immed 0x00000011,accg0 199 test_acc_immed 0x11111111,acc0 200 201 set_fr_iimmed 0x3fff,1,fr7 ; 15 bit result 202 set_fr_iimmed 2,0x0001,fr8 203 cmcpxru fr7,fr8,acc0,cc0,0 204 test_accg_immed 0x00000011,accg0 205 test_acc_immed 0x11111111,acc0 206 207 set_fr_iimmed 0x4000,1,fr7 ; 16 bit result 208 set_fr_iimmed 4,0x0001,fr8 209 cmcpxru fr7,fr8,acc0,cc0,0 210 test_accg_immed 0x00000011,accg0 211 test_acc_immed 0x11111111,acc0 212 213 set_fr_iimmed 0x8000,1,fr7 ; 17 bit result 214 set_fr_iimmed 4,0x0001,fr8 215 cmcpxru fr7,fr8,acc0,cc0,0 216 test_accg_immed 0x00000011,accg0 217 test_acc_immed 0x11111111,acc0 218 219 set_fr_iimmed 0x7fff,0x0000,fr7 ; max positive result 220 set_fr_iimmed 0x7fff,0x7fff,fr8 221 cmcpxru fr7,fr8,acc0,cc4,0 222 test_accg_immed 0x00000011,accg0 223 test_acc_immed 0x11111111,acc0 224 225 set_fr_iimmed 0x8000,0x8000,fr7 ; max positive result 226 set_fr_iimmed 0x8000,0x0000,fr8 227 cmcpxru fr7,fr8,acc0,cc4,0 228 test_accg_immed 0x00000011,accg0 229 test_acc_immed 0x11111111,acc0 230 231 set_fr_iimmed 0xffff,0x0000,fr7 ; max positive result 232 set_fr_iimmed 0xffff,0xffff,fr8 233 cmcpxru fr7,fr8,acc0,cc4,0 234 test_accg_immed 0x00000011,accg0 235 test_acc_immed 0x11111111,acc0 236 237 set_fr_iimmed 0x0000,0x0001,fr7 ; saturation 238 set_fr_iimmed 0xffff,0x0001,fr8 239 cmcpxru fr7,fr8,acc0,cc4,0 240 test_spr_bits 0x3c,2,0x0,msr0 ; msr0.sie is clear 241 test_spr_bits 2,1,0,msr0 ; msr0.ovf is clear 242 test_spr_bits 1,0,0,msr0 ; msr0.aovf is clear 243 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt is always set 244 test_accg_immed 0x00000011,accg0 245 test_acc_immed 0x11111111,acc0 246 247 set_fr_iimmed 0x0000,0xffff,fr7 ; saturation 248 set_fr_iimmed 0xffff,0xffff,fr8 249 cmcpxru fr7,fr8,acc0,cc4,0 250 test_spr_bits 0x3c,2,0x0,msr0 ; msr0.sie is clear 251 test_spr_bits 2,1,0,msr0 ; msr0.ovf is clear 252 test_spr_bits 1,0,0,msr0 ; msr0.aovf is clear 253 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt is always set 254 test_accg_immed 0x00000011,accg0 255 test_acc_immed 0x11111111,acc0 256 257 set_fr_iimmed 0xfffe,0xffff,fr7 ; saturation 258 set_fr_iimmed 0xffff,0xffff,fr8 259 cmcpxru fr7,fr8,acc0,cc4,0 260 test_spr_bits 0x3c,2,0x0,msr0 ; msr0.sie is clear 261 test_spr_bits 2,1,0,msr0 ; msr0.ovf is clear 262 test_spr_bits 1,0,0,msr0 ; msr0.aovf is clear 263 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt is always set 264 test_accg_immed 0x00000011,accg0 265 test_acc_immed 0x11111111,acc0 266 267 set_spr_immed 0,msr0 268 set_accg_immed 0x00000011,accg0 269 set_acc_immed 0x11111111,acc0 270 set_fr_iimmed 4,2,fr7 ; multiply small numbers 271 set_fr_iimmed 5,3,fr8 272 cmcpxru fr7,fr8,acc0,cc1,1 273 test_accg_immed 0x00000011,accg0 274 test_acc_immed 0x11111111,acc0 275 276 set_fr_iimmed 1,2,fr7 ; multiply by 1 277 set_fr_iimmed 3,1,fr8 278 cmcpxru fr7,fr8,acc0,cc1,1 279 test_accg_immed 0x00000011,accg0 280 test_acc_immed 0x11111111,acc0 281 282 set_fr_iimmed 0,2,fr7 ; multiply by 0 283 set_fr_iimmed 2,0,fr8 284 cmcpxru fr7,fr8,acc0,cc1,1 285 test_accg_immed 0x00000011,accg0 286 test_acc_immed 0x11111111,acc0 287 288 set_fr_iimmed 0x3fff,1,fr7 ; 15 bit result 289 set_fr_iimmed 2,0x0001,fr8 290 cmcpxru fr7,fr8,acc0,cc1,1 291 test_accg_immed 0x00000011,accg0 292 test_acc_immed 0x11111111,acc0 293 294 set_fr_iimmed 0x4000,1,fr7 ; 16 bit result 295 set_fr_iimmed 4,0x0001,fr8 296 cmcpxru fr7,fr8,acc0,cc1,1 297 test_accg_immed 0x00000011,accg0 298 test_acc_immed 0x11111111,acc0 299 300 set_fr_iimmed 0x8000,1,fr7 ; 17 bit result 301 set_fr_iimmed 4,0x0001,fr8 302 cmcpxru fr7,fr8,acc0,cc1,1 303 test_accg_immed 0x00000011,accg0 304 test_acc_immed 0x11111111,acc0 305 306 set_fr_iimmed 0x7fff,0x0000,fr7 ; max positive result 307 set_fr_iimmed 0x7fff,0x7fff,fr8 308 cmcpxru fr7,fr8,acc0,cc5,1 309 test_accg_immed 0x00000011,accg0 310 test_acc_immed 0x11111111,acc0 311 312 set_fr_iimmed 0x8000,0x8000,fr7 ; max positive result 313 set_fr_iimmed 0x8000,0x0000,fr8 314 cmcpxru fr7,fr8,acc0,cc5,1 315 test_accg_immed 0x00000011,accg0 316 test_acc_immed 0x11111111,acc0 317 318 set_fr_iimmed 0xffff,0x0000,fr7 ; max positive result 319 set_fr_iimmed 0xffff,0xffff,fr8 320 cmcpxru fr7,fr8,acc0,cc5,1 321 test_accg_immed 0x00000011,accg0 322 test_acc_immed 0x11111111,acc0 323 324 set_fr_iimmed 0x0000,0x0001,fr7 ; saturation 325 set_fr_iimmed 0xffff,0x0001,fr8 326 cmcpxru fr7,fr8,acc0,cc5,1 327 test_spr_bits 0x3c,2,0x0,msr0 ; msr0.sie is clear 328 test_spr_bits 2,1,0,msr0 ; msr0.ovf is clear 329 test_spr_bits 1,0,0,msr0 ; msr0.aovf is clear 330 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt is always set 331 test_accg_immed 0x00000011,accg0 332 test_acc_immed 0x11111111,acc0 333 334 set_fr_iimmed 0x0000,0xffff,fr7 ; saturation 335 set_fr_iimmed 0xffff,0xffff,fr8 336 cmcpxru fr7,fr8,acc0,cc5,1 337 test_spr_bits 0x3c,2,0x0,msr0 ; msr0.sie is clear 338 test_spr_bits 2,1,0,msr0 ; msr0.ovf is clear 339 test_spr_bits 1,0,0,msr0 ; msr0.aovf is clear 340 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt is always set 341 test_accg_immed 0x00000011,accg0 342 test_acc_immed 0x11111111,acc0 343 344 set_fr_iimmed 0xfffe,0xffff,fr7 ; saturation 345 set_fr_iimmed 0xffff,0xffff,fr8 346 cmcpxru fr7,fr8,acc0,cc5,1 347 test_spr_bits 0x3c,2,0x0,msr0 ; msr0.sie is clear 348 test_spr_bits 2,1,0,msr0 ; msr0.ovf is clear 349 test_spr_bits 1,0,0,msr0 ; msr0.aovf is clear 350 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt is always set 351 test_accg_immed 0x00000011,accg0 352 test_acc_immed 0x11111111,acc0 353 354 set_spr_immed 0,msr0 355 set_accg_immed 0x00000011,accg0 356 set_acc_immed 0x11111111,acc0 357 set_fr_iimmed 4,2,fr7 ; multiply small numbers 358 set_fr_iimmed 5,3,fr8 359 cmcpxru fr7,fr8,acc0,cc2,1 360 test_accg_immed 0x00000011,accg0 361 test_acc_immed 0x11111111,acc0 362 363 set_fr_iimmed 1,2,fr7 ; multiply by 1 364 set_fr_iimmed 3,1,fr8 365 cmcpxru fr7,fr8,acc0,cc2,1 366 test_accg_immed 0x00000011,accg0 367 test_acc_immed 0x11111111,acc0 368 369 set_fr_iimmed 0,2,fr7 ; multiply by 0 370 set_fr_iimmed 2,0,fr8 371 cmcpxru fr7,fr8,acc0,cc2,1 372 test_accg_immed 0x00000011,accg0 373 test_acc_immed 0x11111111,acc0 374 375 set_fr_iimmed 0x3fff,1,fr7 ; 15 bit result 376 set_fr_iimmed 2,0x0001,fr8 377 cmcpxru fr7,fr8,acc0,cc2,1 378 test_accg_immed 0x00000011,accg0 379 test_acc_immed 0x11111111,acc0 380 381 set_fr_iimmed 0x4000,1,fr7 ; 16 bit result 382 set_fr_iimmed 4,0x0001,fr8 383 cmcpxru fr7,fr8,acc0,cc2,1 384 test_accg_immed 0x00000011,accg0 385 test_acc_immed 0x11111111,acc0 386 387 set_fr_iimmed 0x8000,1,fr7 ; 17 bit result 388 set_fr_iimmed 4,0x0001,fr8 389 cmcpxru fr7,fr8,acc0,cc2,1 390 test_accg_immed 0x00000011,accg0 391 test_acc_immed 0x11111111,acc0 392 393 set_fr_iimmed 0x7fff,0x0000,fr7 ; max positive result 394 set_fr_iimmed 0x7fff,0x7fff,fr8 395 cmcpxru fr7,fr8,acc0,cc6,1 396 test_accg_immed 0x00000011,accg0 397 test_acc_immed 0x11111111,acc0 398 399 set_fr_iimmed 0x8000,0x8000,fr7 ; max positive result 400 set_fr_iimmed 0x8000,0x0000,fr8 401 cmcpxru fr7,fr8,acc0,cc6,1 402 test_accg_immed 0x00000011,accg0 403 test_acc_immed 0x11111111,acc0 404 405 set_fr_iimmed 0xffff,0x0000,fr7 ; max positive result 406 set_fr_iimmed 0xffff,0xffff,fr8 407 cmcpxru fr7,fr8,acc0,cc6,1 408 test_accg_immed 0x00000011,accg0 409 test_acc_immed 0x11111111,acc0 410 411 set_fr_iimmed 0x0000,0x0001,fr7 ; saturation 412 set_fr_iimmed 0xffff,0x0001,fr8 413 cmcpxru fr7,fr8,acc0,cc6,1 414 test_spr_bits 0x3c,2,0x0,msr0 ; msr0.sie is clear 415 test_spr_bits 2,1,0,msr0 ; msr0.ovf is clear 416 test_spr_bits 1,0,0,msr0 ; msr0.aovf is clear 417 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt is always set 418 test_accg_immed 0x00000011,accg0 419 test_acc_immed 0x11111111,acc0 420 421 set_fr_iimmed 0x0000,0xffff,fr7 ; saturation 422 set_fr_iimmed 0xffff,0xffff,fr8 423 cmcpxru fr7,fr8,acc0,cc6,1 424 test_spr_bits 0x3c,2,0x0,msr0 ; msr0.sie is clear 425 test_spr_bits 2,1,0,msr0 ; msr0.ovf is clear 426 test_spr_bits 1,0,0,msr0 ; msr0.aovf is clear 427 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt is always set 428 test_accg_immed 0x00000011,accg0 429 test_acc_immed 0x11111111,acc0 430 431 set_fr_iimmed 0xfffe,0xffff,fr7 ; saturation 432 set_fr_iimmed 0xffff,0xffff,fr8 433 cmcpxru fr7,fr8,acc0,cc6,1 434 test_spr_bits 0x3c,2,0x0,msr0 ; msr0.sie is clear 435 test_spr_bits 2,1,0,msr0 ; msr0.ovf is clear 436 test_spr_bits 1,0,0,msr0 ; msr0.aovf is clear 437 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt is always set 438 test_accg_immed 0x00000011,accg0 439 test_acc_immed 0x11111111,acc0 440; 441 set_spr_immed 0,msr0 442 set_accg_immed 0x00000011,accg0 443 set_acc_immed 0x11111111,acc0 444 set_fr_iimmed 4,2,fr7 ; multiply small numbers 445 set_fr_iimmed 5,3,fr8 446 cmcpxru fr7,fr8,acc0,cc3,1 447 test_accg_immed 0x00000011,accg0 448 test_acc_immed 0x11111111,acc0 449 450 set_fr_iimmed 1,2,fr7 ; multiply by 1 451 set_fr_iimmed 3,1,fr8 452 cmcpxru fr7,fr8,acc0,cc3,1 453 test_accg_immed 0x00000011,accg0 454 test_acc_immed 0x11111111,acc0 455 456 set_fr_iimmed 0,2,fr7 ; multiply by 0 457 set_fr_iimmed 2,0,fr8 458 cmcpxru fr7,fr8,acc0,cc3,1 459 test_accg_immed 0x00000011,accg0 460 test_acc_immed 0x11111111,acc0 461 462 set_fr_iimmed 0x3fff,1,fr7 ; 15 bit result 463 set_fr_iimmed 2,0x0001,fr8 464 cmcpxru fr7,fr8,acc0,cc3,1 465 test_accg_immed 0x00000011,accg0 466 test_acc_immed 0x11111111,acc0 467 468 set_fr_iimmed 0x4000,1,fr7 ; 16 bit result 469 set_fr_iimmed 4,0x0001,fr8 470 cmcpxru fr7,fr8,acc0,cc3,1 471 test_accg_immed 0x00000011,accg0 472 test_acc_immed 0x11111111,acc0 473 474 set_fr_iimmed 0x8000,1,fr7 ; 17 bit result 475 set_fr_iimmed 4,0x0001,fr8 476 cmcpxru fr7,fr8,acc0,cc3,1 477 test_accg_immed 0x00000011,accg0 478 test_acc_immed 0x11111111,acc0 479 480 set_fr_iimmed 0x7fff,0x0000,fr7 ; max positive result 481 set_fr_iimmed 0x7fff,0x7fff,fr8 482 cmcpxru fr7,fr8,acc0,cc7,1 483 test_accg_immed 0x00000011,accg0 484 test_acc_immed 0x11111111,acc0 485 486 set_fr_iimmed 0x8000,0x8000,fr7 ; max positive result 487 set_fr_iimmed 0x8000,0x0000,fr8 488 cmcpxru fr7,fr8,acc0,cc7,1 489 test_accg_immed 0x00000011,accg0 490 test_acc_immed 0x11111111,acc0 491 492 set_fr_iimmed 0xffff,0x0000,fr7 ; max positive result 493 set_fr_iimmed 0xffff,0xffff,fr8 494 cmcpxru fr7,fr8,acc0,cc7,1 495 test_accg_immed 0x00000011,accg0 496 test_acc_immed 0x11111111,acc0 497 498 set_fr_iimmed 0x0000,0x0001,fr7 ; saturation 499 set_fr_iimmed 0xffff,0x0001,fr8 500 cmcpxru fr7,fr8,acc0,cc7,1 501 test_spr_bits 0x3c,2,0x0,msr0 ; msr0.sie is clear 502 test_spr_bits 2,1,0,msr0 ; msr0.ovf is clear 503 test_spr_bits 1,0,0,msr0 ; msr0.aovf is clear 504 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt is always set 505 test_accg_immed 0x00000011,accg0 506 test_acc_immed 0x11111111,acc0 507 508 set_fr_iimmed 0x0000,0xffff,fr7 ; saturation 509 set_fr_iimmed 0xffff,0xffff,fr8 510 cmcpxru fr7,fr8,acc0,cc7,1 511 test_spr_bits 0x3c,2,0x0,msr0 ; msr0.sie is clear 512 test_spr_bits 2,1,0,msr0 ; msr0.ovf is clear 513 test_spr_bits 1,0,0,msr0 ; msr0.aovf is clear 514 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt is always set 515 test_accg_immed 0x00000011,accg0 516 test_acc_immed 0x11111111,acc0 517 518 set_fr_iimmed 0xfffe,0xffff,fr7 ; saturation 519 set_fr_iimmed 0xffff,0xffff,fr8 520 cmcpxru fr7,fr8,acc0,cc7,1 521 test_spr_bits 0x3c,2,0x0,msr0 ; msr0.sie is clear 522 test_spr_bits 2,1,0,msr0 ; msr0.ovf is clear 523 test_spr_bits 1,0,0,msr0 ; msr0.aovf is clear 524 test_spr_bits 0x7000,12,1,msr0 ; msr0.mtt is always set 525 test_accg_immed 0x00000011,accg0 526 test_acc_immed 0x11111111,acc0 527 528 pass 529