1# Copyright (c) 2021-2022 Huawei Device Co., Ltd. 2# Licensed under the Apache License, Version 2.0 (the "License"); 3# you may not use this file except in compliance with the License. 4# You may obtain a copy of the License at 5# 6# http://www.apache.org/licenses/LICENSE-2.0 7# 8# Unless required by applicable law or agreed to in writing, software 9# distributed under the License is distributed on an "AS IS" BASIS, 10# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11# See the License for the specific language governing permissions and 12# limitations under the License. 13 14definitions: [] 15tests: 16 - file-name: "fmul2.64" 17 isa: 18 title: Two address floating-point binary operation on accumulator 19 description: > 20 Perform specified floating-point binary operation on accumulator and register and store result into accumulator. 21 The results of instructions correspond IEEE-754 arithmetic rules. 22 exceptions: 23 - x_none 24 commands: 25 - file-name: "op_vs_8_nan" 26 isa: 27 instructions: 28 - sig: fmul2.64 v:in:f64 29 acc: inout:f64 30 format: [op_v_8] 31 description: Any operation with NaN results to NaN value. 32 check-type: check-acc-nan-f64 33 tags: ['irtoc_ignore'] 34 code-template: | 35 # 36 fldai.64 %s 37 fmovi.64 v0, *s 38 fmul2.64 v0 39 description: > 40 Check fmul2.64 results in NaN when acc or v0 is NaN 41 template-cases: 42 - values: 43 # NaN 44 - "0x7ff8000000000000" 45 - values: 46 # NaN representation 47 - "0xFFFFFFFFFFFFFFFF" 48 - values: 49 - "0" 50 exclude: [hasval] 51 - values: 52 # -0.0d 53 - "0x8000000000000000" 54 exclude: [hasval] 55 - values: 56 - "1" 57 exclude: [hasval] 58 - values: 59 - "-1" 60 exclude: [hasval] 61 - values: 62 # +Inf 63 - "0x7ff0000000000000" 64 exclude: [hasval] 65 - values: 66 # -Inf 67 - "0xfff0000000000000" 68 exclude: [hasval] 69 - values: 70 # +max 71 - "0x7fefffffffffffff" 72 exclude: [hasval] 73 - values: 74 # -max 75 - "0xffefffffffffffff" 76 exclude: [hasval] 77 - values: 78 # +min 79 - "0x0000000000000001" 80 exclude: [hasval] 81 - values: 82 # -min 83 - "0x8000000000000001" 84 exclude: [hasval] 85 - values: 86 - "3.14159265358979323846" 87 exclude: [hasval] 88 - values: 89 - "1234567890987654321" 90 exclude: [hasval] 91 cases: 92 - values: 93 # NaN 94 - "0x7ff8000000000000" 95 - values: 96 # NaN 97 - "0xFFFFFFFFFFFFFFFF" 98 - values: 99 - "0" 100 id: hasval 101 - values: 102 # -0.0d 103 - "0x8000000000000000" 104 id: hasval 105 - values: 106 - "1" 107 id: hasval 108 - values: 109 - "-1" 110 id: hasval 111 - values: 112 # +Inf 113 - "0x7ff0000000000000" 114 id: hasval 115 - values: 116 # -Inf 117 - "0xfff0000000000000" 118 id: hasval 119 - values: 120 # +max 121 - "0x7fefffffffffffff" 122 id: hasval 123 - values: 124 # -max 125 - "0xffefffffffffffff" 126 id: hasval 127 - values: 128 # +min 129 - "0x0000000000000001" 130 id: hasval 131 - values: 132 # -min 133 - "0x8000000000000001" 134 id: hasval 135 - values: 136 - "3.14159265358979323846" 137 id: hasval 138 - values: 139 - "1234567890987654321" 140 id: hasval 141 142 - file-name: "op_vs_8_pinf" 143 isa: 144 instructions: 145 - sig: fmul2.64 v:in:f64 146 acc: inout:f64 147 format: [op_v_8] 148 description: Multiplication is infinity if any non zero value is multiplied by infinity. 149 check-type: check-positive 150 tags: ['irtoc_ignore'] 151 code-template: | 152 # 153 fldai.64 0x7ff0000000000000 # +Inf 154 fmovi.64 v0, %s 155 # Mult of +Inf and value 156 fmul2.64 v0 157 fmovi.64 v1, %s 158 fcmpg.64 v1 159 description: Check fmul2.64 with +Inf and various values (NaN, Inf, min, max, numbers). 160 cases: 161 - values: 162 - "1" 163 # Inf 164 - "0x7ff0000000000000" 165 - values: 166 - "-1" 167 # -Inf 168 - "0xFFF0000000000000" 169 - values: 170 # +Inf 171 - "0x7ff0000000000000" 172 # Inf 173 - "0x7ff0000000000000" 174 - values: 175 # -Inf 176 - "0xfff0000000000000" 177 # -Inf 178 - "0xFFF0000000000000" 179 - values: 180 # +max 181 - "0x7fefffffffffffff" 182 # Inf 183 - "0x7FF0000000000000" 184 - values: 185 # -max 186 - "0xffefffffffffffff" 187 # -Inf 188 - "0xFFF0000000000000" 189 - values: 190 # +min 191 - "0x0000000000000001" 192 # Inf 193 - "0x7FF0000000000000" 194 - values: 195 # -min 196 - "0x8000000000000001" 197 # -Inf 198 - "0xFFF0000000000000" 199 - values: 200 - "3.14159265358979323846" 201 # Inf 202 - "0x7FF0000000000000" 203 - values: 204 - "1234567890987654321" 205 # Inf 206 - "0x7FF0000000000000" 207 208 - file-name: "op_vs_8_ninf" 209 isa: 210 instructions: 211 - sig: fmul2.64 v:in:f64 212 acc: inout:f64 213 format: [op_v_8] 214 description: Multiplication is infinity if any non zero value is multiplied by infinity. 215 check-type: check-positive 216 tags: ['irtoc_ignore'] 217 code-template: | 218 # 219 fldai.64 0xfff0000000000000 # -Inf 220 fmovi.64 v0, %s 221 # Mult of -Inf and value 222 fmul2.64 v0 223 fmovi.64 v1, %s 224 fcmpg.64 v1 225 description: Check fmul2.64 with -Inf and various values (NaN, Inf, min, max, numbers). 226 cases: 227 - values: 228 - "1" 229 # -Inf 230 - "0xfff0000000000000" 231 - values: 232 - "-1" 233 # +Inf 234 - "0x7FF0000000000000" 235 - values: 236 # +Inf 237 - "0x7ff0000000000000" 238 # -Inf 239 - "0xfff0000000000000" 240 - values: 241 # -Inf 242 - "0xfff0000000000000" 243 # +Inf 244 - "0x7FF0000000000000" 245 - values: 246 # +max 247 - "0x7fefffffffffffff" 248 # -Inf 249 - "0xfff0000000000000" 250 - values: 251 # -max 252 - "0xffefffffffffffff" 253 # +Inf 254 - "0x7FF0000000000000" 255 - values: 256 # +min 257 - "0x0000000000000001" 258 # -Inf 259 - "0xfff0000000000000" 260 - values: 261 # -min 262 - "0x8000000000000001" 263 # +Inf 264 - "0x7FF0000000000000" 265 - values: 266 - "3.14159265358979323846" 267 # -Inf 268 - "0xfff0000000000000" 269 - values: 270 - "1234567890987654321" 271 # -Inf 272 - "0xfff0000000000000" 273 274 - file-name: "op_vs_8_pzero" 275 isa: 276 instructions: 277 - sig: fmul2.64 v:in:f64 278 acc: inout:f64 279 format: [op_v_8] 280 description: The sign of division or multiplication result is positive if both values have the same sign, negative if the values have different sign. 281 check-type: check-positive 282 tags: ['irtoc_ignore'] 283 code-template: | 284 # 285 fldai.64 0.0 # 286 fmovi.64 v0, %s 287 # Mult of +0.0 and value 288 fmul2.64 v0 289 fmovi.64 v1, %s 290 fcmpg.64 v1 291 description: Check fmul2.64 with +0 and various values (NaN, Inf, min, max, numbers). 292 cases: 293 - values: 294 - "0" 295 - "0" 296 - values: 297 - "-0.0" 298 - "-0.0" 299 - values: 300 - "1" 301 - "0" 302 - values: 303 - "-1" 304 - "-0.0" 305 - values: 306 # +max 307 - "0x7fefffffffffffff" 308 - "0" 309 - values: 310 # -max 311 - "0xffefffffffffffff" 312 - "-0.0" 313 - values: 314 # +min 315 - "0x0000000000000001" 316 - "0" 317 - values: 318 # -min 319 - "0x8000000000000001" 320 - "-0.0" 321 - values: 322 - "3.14159265358979323846" 323 - "0" 324 325 - file-name: "op_vs_8_nzero" 326 isa: 327 instructions: 328 - sig: fmul2.64 v:in:f64 329 acc: inout:f64 330 format: [op_v_8] 331 description: The sign of division or multiplication result is positive if both values have the same sign, negative if the values have different sign. 332 check-type: check-positive 333 tags: ['irtoc_ignore'] 334 code-template: | 335 # 336 fldai.64 -0.0 # 337 fmovi.64 v0, %s 338 # Mult of -0.0 and value 339 fmul2.64 v0 340 fmovi.64 v1, %s 341 fcmpg.64 v1 342 description: Check fmul2.64 with -0 and various values (NaN, Inf, min, max, numbers). 343 cases: 344 - values: 345 - "0" 346 - "0" 347 - values: 348 - "-0.0" 349 - "0" 350 - values: 351 - "1" 352 - "-0.0" 353 - values: 354 - "-1" 355 - "0" 356 - values: 357 # +max 358 - "0x7fefffffffffffff" 359 - "-0.0" 360 - values: 361 # -max 362 - "0xffefffffffffffff" 363 - "0" 364 - values: 365 # +min 366 - "0x0000000000000001" 367 - "-0.0" 368 - values: 369 # -min 370 - "0x8000000000000001" 371 - "0" 372 - values: 373 - "3.14159265358979323846" 374 - "-0.0" 375 - values: 376 - "-3.14159265358979323846" 377 - "0" 378 379 - file-name: "op_vs_8_zero_inf" 380 isa: 381 instructions: 382 - sig: fmul2.64 v:in:f64 383 acc: inout:f64 384 format: [op_v_8] 385 description: > 386 Multiplication is NaN if zero is multiplied by infinity. 387 check-type: check-acc-nan-f64 388 tags: ['irtoc_ignore'] 389 code-template: | 390 # 391 fldai.64 %s 392 fmovi.64 v0, *s 393 # Mult 0 by Inf 394 fmul2.64 v0 395 description: > 396 Check fmul2.64 of 0 and Inf is NaN. 397 template-cases: 398 - values: 399 - "0x7ff0000000000000" 400 exclude: [inf] 401 - values: 402 - "0xfff0000000000000" 403 exclude: [inf] 404 - values: 405 - "0" 406 exclude: [zero] 407 - values: 408 # Negative Zero 409 - "0x8000000000000000" 410 exclude: [zero] 411 cases: 412 - values: 413 - "0x7ff0000000000000" 414 id: inf 415 - values: 416 - "0xfff0000000000000" 417 id: inf 418 - values: 419 - "0" 420 id: zero 421 - values: 422 # Negative Zero 423 - "0x8000000000000000" 424 id: zero 425 426 - file-name: "op_vs_8_pone" 427 isa: 428 instructions: 429 - sig: fmul2.64 v:in:f64 430 acc: inout:f64 431 format: [op_v_8] 432 check-type: check-positive 433 tags: ['irtoc_ignore'] 434 code-template: | 435 # 436 fldai.64 1.0 # 437 fmovi.64 v0, %s 438 # Mult of 1.0 and value 439 fmul2.64 v0 440 fmovi.64 v1, %s 441 fcmpg.64 v1 442 description: Check fmul2.64 with +1 and various values (NaN, Inf, min, max, numbers). 443 cases: 444 - values: 445 # +0.0d 446 - "0" 447 - "0" 448 - values: 449 - "-0.0" 450 - "-0.0" 451 - values: 452 - "1" 453 - "1" 454 - values: 455 - "-1" 456 - "-1" 457 - values: 458 # +Inf 459 - "0x7ff0000000000000" 460 # +Inf 461 - "0x7FF0000000000000" 462 - values: 463 # -Inf 464 - "0xfff0000000000000" 465 # -Inf 466 - "0xFFF0000000000000" 467 - values: 468 # +max 469 - "0x7fefffffffffffff" 470 # +max 471 - "0x7FEFFFFFFFFFFFFF" 472 - values: 473 # -max 474 - "0xFFEFFFFFFFFFFFFF" 475 # -max 476 - "0xFFEFFFFFFFFFFFFF" 477 - values: 478 # +min 479 - "0x0000000000000001" 480 - "0x0000000000000001" 481 - values: 482 # -min 483 - "0x8000000000000001" 484 - "0x8000000000000001" 485 - values: 486 - "3.14159265358979323846" 487 - "3.14159265358979323846" 488 - values: 489 - "-3.14159265358979323846" 490 - "-3.14159265358979323846" 491 - values: 492 - "1234567890.987654321" 493 - "1234567890.987654321" 494 495 - file-name: "op_vs_8_none" 496 isa: 497 instructions: 498 - sig: fmul2.64 v:in:f64 499 acc: inout:f64 500 format: [op_v_8] 501 check-type: check-positive 502 tags: ['irtoc_ignore'] 503 code-template: | 504 # 505 fldai.64 -1.0 # 506 fmovi.64 v0, %s 507 # Mult of -1.0 and value 508 fmul2.64 v0 509 fmovi.64 v1, %s 510 fcmpg.64 v1 511 description: Check fmul2.64 with -1 and various values (NaN, Inf, min, max, numbers). 512 cases: 513 - values: 514 - "0" 515 - "-0.0" 516 - values: 517 - "-0.0" 518 - "0" 519 - values: 520 - "1" 521 - "-1" 522 - values: 523 - "-1" 524 - "1" 525 - values: 526 # +Inf 527 - "0x7ff0000000000000" 528 # -Inf 529 - "0xFFF0000000000000" 530 - values: 531 # -Inf 532 - "0xfff0000000000000" 533 # +Inf 534 - "0x7FF0000000000000" 535 - values: 536 # +max 537 - "0x7fefffffffffffff" 538 - "0xFFEFFFFFFFFFFFFF" 539 - values: 540 # -max 541 - "0xFFEFFFFFFFFFFFFF" 542 - "0x7FEFFFFFFFFFFFFF" 543 - values: 544 # +min 545 - "0x0000000000000001" 546 - "0x8000000000000001" 547 - values: 548 # -min 549 - "0x8000000000000001" 550 - "0x0000000000000001" 551 - values: 552 - "3.14159265358979323846" 553 - "-3.14159265358979323846" 554 - values: 555 - "-3.14159265358979323846" 556 - "3.14159265358979323846" 557 - values: 558 - "1234567890.987654321" 559 - "-1234567890.987654321" 560 561 - file-name: "op_vs_8" 562 isa: 563 instructions: 564 - sig: fmul2.64 v:in:f64 565 acc: inout:f64 566 format: [op_v_8] 567 description: The sign of division or multiplication result is positive if both values have the same sign, negative if the values have different sign. 568 tags: ['irtoc_ignore'] 569 check-type: check-positive 570 code-template: | 571 # 572 fldai.64 %s # 573 fmovi.64 v0, %s 574 # Mult of -1.0 and value 575 fmul2.64 v0 576 fmovi.64 v1, %s 577 fcmpg.64 v1 578 description: Check fmul2.64 with various values (zeroes, Infs, min, max, numbers). 579 cases: 580 - values: 581 - "0.0" 582 - "0.0" 583 - "0.0" 584 - values: 585 - "0.0" 586 - "-0.0" 587 - "-0.0" 588 - values: 589 - "-0.0" 590 - "0.0" 591 - "-0.0" 592 - values: 593 - "-0.0" 594 - "-0.0" 595 - "0.0" 596 - values: 597 - "1.0" 598 - "-1.0" 599 - "-1.0" 600 - values: 601 - "1.0" 602 - "1.0" 603 - "1.0" 604 - values: 605 - "-1.0" 606 - "1.0" 607 - "-1.0" 608 - values: 609 - "1.0e100" 610 - "1.0e100" 611 - "1.0e200" 612 - values: 613 - "1.0e100" 614 - "-1.0e100" 615 - "-1.0e200" 616 - values: 617 - "1.0e+100" 618 - "1.0e-100" 619 - "1.0" 620 - values: 621 - "-1.0e100" 622 - "1.0e100" 623 - "-1.0e200" 624 - values: 625 - "-1.0e-100" 626 - "1.0e-100" 627 - "-1.0e-200" 628 - values: 629 - "-1.0e+100" 630 - "-1.0e-100" 631 - "1.0" 632 - values: 633 - "3.14159265358979323846" 634 - "-3.14159265358979323846" 635 - "-9.869604401089358" 636 - values: 637 - "3.14159265358979323846e100" 638 - "-3.14159265358979323846e100" 639 - "-9.869604401089358e200" 640# - values: 641# # TODO add test cases for maximal and minimal FP value in decimal scientific literal 642 - file-name: "op_vs_8_max" 643 isa: 644 instructions: 645 - sig: fmul2.64 v:in:f64 646 acc: inout:f64 647 format: [op_v_8] 648 check-type: check-positive 649 tags: ['irtoc_ignore'] 650 code-template: | 651 # 652 fldai.64 %s 653 fmovi.64 v0, %s 654 # Mult of two values 655 fmul2.64 v0 656 fmovi.64 v1, %s 657 fcmpg.64 v1 658 description: Check fmul2.64 with various max values. 659 cases: 660 - values: 661 # +max 662 - "0x7fefffffffffffff" 663 # +max 664 - "0x7fefffffffffffff" 665 # +Inf 666 - "0x7ff0000000000000" 667 - values: 668 # -max 669 - "0xFFEFFFFFFFFFFFFF" 670 # -max 671 - "0xFFEFFFFFFFFFFFFF" 672 # +Inf 673 - "0x7ff0000000000000" 674 - values: 675 # +max 676 - "0x7fefffffffffffff" 677 # -max 678 - "0xFFEFFFFFFFFFFFFF" 679 # -Inf 680 - "0xfff0000000000000" 681 - values: 682 # +max 683 - "0x7fefffffffffffff" 684 # 1d 685 - "0x3ff0000000000000" 686 # +max 687 - "0x7fefffffffffffff" 688 - values: 689 # +max 690 - "0x7fefffffffffffff" 691 - "-1" 692 # -max 693 - "0xFFEFFFFFFFFFFFFF" 694 - values: 695 # -max 696 - "0xFFEFFFFFFFFFFFFF" 697 - "1" 698 # -max 699 - "0xFFEFFFFFFFFFFFFF" 700 - values: 701 # -max 702 - "0xFFEFFFFFFFFFFFFF" 703 - "-1" 704 # +max 705 - "0x7fefffffffffffff" 706 707 - file-name: "incorrect_reg" 708 isa: 709 instructions: 710 - sig: fmul2.64 v:in:f64 711 acc: inout:f64 712 format: [op_v_8] 713 check-type: none 714 runner-options: [compile-failure] 715 description: Check fmul2.64 with incorrect register numbers. 716 code-template: | 717 # 718 fmul2.64 %s 719 cases: 720 - values: [v256] 721 - values: [v65535] 722 - values: [a0] 723 - values: [a255] 724 - values: ['null'] 725 - values: [0] 726 - values: [1.1] 727 - values: ['2.2'] 728 729 - file-name: "reg_number" 730 isa: 731 instructions: 732 - sig: fmul2.64 v:in:f64 733 acc: inout:f64 734 format: [op_v_8] 735 check-type: none 736 runner-options: [compile-only] 737 description: Check fmul2.64 with correct register numbers. 738 code-template: | 739 # 740 fmul2.64 %s 741 cases: 742 - values: [v0] 743 - values: [v16] 744 - values: [v128] 745 - values: [v255] 746 747 - file-name: "calc" 748 isa: 749 instructions: 750 - sig: fmul2.64 v:in:f64 751 acc: inout:f64 752 format: [op_v_8] 753 check-type: check-positive 754 code-template: | 755 # 756 fldai.64 %s # 757 fmovi.64 v0, %s 758 fmul2.64 v0 759 fmovi.64 v1, %s 760 fcmpg.64 v1 761 description: Check fmul2.64 with various values. 762 tags: ['tsan', 'irtoc_ignore'] 763 cases: 764 - values: 765 - "-0.9312987578177028" 766 - "-0.5269885911022338" 767 - "0.49078382027761164" 768 - values: 769 - "-0.7473367654362506" 770 - "0.5438369269893948" 771 - "-0.4064293299410447" 772 - values: 773 - "0.31647958126146847" 774 - "-0.5745936070002329" 775 - "-0.18184714413895048" 776 - values: 777 - "-0.21032659650962326" 778 - "0.3927316648101664" 779 - "-0.08260191440108049" 780 - values: 781 - "0.10120846222414825" 782 - "0.8246991807586994" 783 - "0.08346653588210284" 784 - values: 785 - "-0.4343271788175138" 786 - "0.7903281236389887" 787 - "-0.34326098428026125" 788 - values: 789 - "-0.20664108305757245" 790 - "0.34935450620458064" 791 - "-0.07219099353315796" 792 - values: 793 - "0.1333693748785436" 794 - "0.3799164493389853" 795 - "0.05066921935441635" 796 - values: 797 - "0.5937602845980485" 798 - "0.1781606722800979" 799 - "0.10578473147721058" 800 - values: 801 - "-0.8800125826624052" 802 - "0.8179463146149306" 803 - "-0.7198030488034813" 804 - values: 805 - "0.36292211209434644" 806 - "-0.6858150664631064" 807 - "-0.24889745242691516" 808 - values: 809 - "-3.9164094519790716e54" 810 - "2.4866884565281146e31" 811 - "-9.738890175273957e85" 812 - values: 813 - "4.868571305821797e-45" 814 - "-2.947689920115564e98" 815 - "-1.4351038563534779e54" 816 - values: 817 - "-4.9232256393438925e75" 818 - "6.468558635915e-93" 819 - "-3.184617372593608e-17" 820 - values: 821 - "-1.3534530635380337e-70" 822 - "3.3934802052784276e43" 823 - "-4.5929161798897635e-27" 824 - values: 825 - "-1.5150156586897712e-5" 826 - "3.7824026868513417e-85" 827 - "-5.730399298050046e-90" 828 - values: 829 - "-6.76727647923816e20" 830 - "4.013410468105432e94" 831 - "-2.7159858262338103e115" 832 - values: 833 - "-8.352558372943342e34" 834 - "-3.157398645567344e28" 835 - "2.637235649375349e63" 836 - values: 837 - "-4.778555666328233e-70" 838 - "-1.325369923134656e-37" 839 - "6.333353956176124e-107" 840 - values: 841 - "4.097369399892121e72" 842 - "3.088334967375387e-13" 843 - "1.2654049191940743e60" 844 - values: 845 - "-2.2726952943288126e-55" 846 - "1.1899191874472758e16" 847 - "-2.704323737942988e-39" 848 - file-name: "type" 849 isa: 850 instructions: 851 - sig: fmul2.64 v:in:f64 852 acc: inout:f64 853 format: [op_v_8] 854 verification: 855 - acc_type 856 - v1_type 857 tags: ['verifier'] 858 runner-options: ['verifier-failure', 'verifier-config'] 859 header-template: [] 860 code-template: | 861 # 862 .record A {} 863 .record B {} 864 .record panda.String <external> 865 .record panda.Object <external> 866 .function i32 main() { 867 %s 868 *s 869 fmul2.64 v0 870 check-type: exit-positive 871 description: Check 'fmul2.64' with incorrect register and accumulator type. 872 template-cases: 873 - values: 874 - movi v0, 0 875 - values: 876 - movi.64 v0, 0 877 - values: 878 - fmovi v0, 0 879 bugid: ['7315'] 880 - values: 881 - fmovi.64 v0, 0 882 exclude: [val] 883 - values: 884 - | 885 # 886 lda.type B 887 sta.obj v0 888 - values: 889 - | 890 # 891 lda.type B[] 892 sta.obj v0 893 - values: 894 - | 895 # 896 lda.type panda.String 897 sta.obj v0 898 - values: 899 - | 900 # 901 lda.str "string" 902 sta.obj v0 903 - values: 904 - | 905 # 906 movi v0, 10 907 newarr v0, v0, i32[] 908 - values: 909 - mov.null v0 910 911 cases: 912 - values: 913 - ldai 0 914 - values: 915 - ldai.64 0 916 - values: 917 - fldai 0 918 bugid: ['7315'] 919 - values: 920 - fldai.64 0 921 id: val 922 - values: 923 - | 924 # 925 lda.type A 926 - values: 927 - | 928 # 929 lda.type A[] 930 - values: 931 - | 932 # 933 lda.type panda.String 934 - values: 935 - | 936 # 937 lda.str "string" 938 - values: 939 - | 940 # 941 movi v1, 10 942 newarr v1, v1, f64[] 943 lda.obj v1 944 - values: 945 - lda.null 946 947 - file-name: uninitialized_regs 948 isa: 949 instructions: 950 - sig: fmul2.64 v:in:f64 951 acc: inout:f64 952 format: [op_v_8] 953 description: Check 'fmul2.64' with uninitialized register and accumulator. 954 tags: ['verifier'] 955 runner-options: ['verifier-failure', 'verifier-config'] 956 code-template: | 957 # 958 %s 959 *s 960 fmul2.64 %s 961 check-type: exit-positive 962 template-cases: 963 - values: 964 - '' 965 - v0 966 - values: 967 - fmovi.64 v0, 0 968 - v0 969 exclude: [init] 970 - values: 971 - '' 972 - v7 973 - values: 974 - '' 975 - v15 976 - values: 977 - fmovi.64 v15, 0 978 - v15 979 exclude: [init] 980 - values: 981 - '' 982 - v128 983 - values: 984 - fmovi.64 v128, 0 985 - v128 986 exclude: [init] 987 - values: 988 - '' 989 - v255 990 - values: 991 - fmovi.64 v255, 0 992 - v255 993 exclude: [init] 994 cases: 995 - values: 996 - '' 997 - values: 998 - fldai.64 0 999 id: init 1000