1# Copyright (c) 2021 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: "fadd2.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: fadd2.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 33 code-template: | 34 # 35 fldai.64 %s 36 fmovi.64 v0, *s 37 # Sum of any value and NaN is NaN 38 fadd2.64 v0 39 description: > 40 Check fadd2.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 # Positive zero 50 # +0.0d 51 - "0" 52 exclude: [hasval] 53 - values: 54 # Negative zero 55 # -0.0d 56 - "0x8000000000000000" 57 exclude: [hasval] 58 - values: 59 # 1d 60 - "0x3ff0000000000000" 61 exclude: [hasval] 62 - values: 63 # -1d 64 - "0xbff0000000000000" 65 exclude: [hasval] 66 - values: 67 # +Inf 68 - "0x7ff0000000000000" 69 exclude: [hasval] 70 - values: 71 # -Inf 72 - "0xfff0000000000000" 73 exclude: [hasval] 74 - values: 75 # +max 76 - "0x7fefffffffffffff" 77 exclude: [hasval] 78 - values: 79 # -max 80 - "0xffefffffffffffff" 81 exclude: [hasval] 82 - values: 83 # +min 84 - "0x0000000000000001" 85 exclude: [hasval] 86 - values: 87 # -min 88 - "0x8000000000000001" 89 exclude: [hasval] 90 - values: 91 # Some FP value 92 - "9.9e-300" 93 exclude: [hasval] 94 - values: 95 # Some FP value 96 - "-0.00000000000000001" 97 exclude: [hasval] 98 cases: 99 - values: 100 # NaN 101 - "0x7ff8000000000000" 102 - values: 103 # NaN representation 104 - "0xFFFFFFFFFFFFFFFF" 105 - values: 106 # Positive zero 107 # +0.0d 108 - "0" 109 id: hasval 110 - values: 111 # Negative zero 112 # -0.0d 113 - "0x8000000000000000" 114 id: hasval 115 - values: 116 # 1d 117 - "0x3ff0000000000000" 118 id: hasval 119 - values: 120 # -1d 121 - "0xbff0000000000000" 122 id: hasval 123 - values: 124 # +Inf 125 - "0x7ff0000000000000" 126 id: hasval 127 - values: 128 # -Inf 129 - "0xfff0000000000000" 130 id: hasval 131 - values: 132 # +max 133 - "0x7fefffffffffffff" 134 id: hasval 135 - values: 136 # -max 137 - "0xffefffffffffffff" 138 id: hasval 139 - values: 140 # +min 141 - "0x0000000000000001" 142 id: hasval 143 - values: 144 # -min 145 - "0x8000000000000001" 146 id: hasval 147 - values: 148 # Some FP value 149 - "9.9e-300" 150 id: hasval 151 - values: 152 # Some FP value 153 - "-0.00000000000000001" 154 id: hasval 155 156 - file-name: "op_vs_8_pinf" 157 isa: 158 instructions: 159 - sig: fadd2.64 v:in:f64 160 acc: inout:f64 161 format: [op_v_8] 162 description: > 163 The sum of two infinities of the same sign or the difference of two infinities of opposite sign is infinity. 164 The sign of result matches the sign of accumulator value. 165 The sum or the difference of infinity and any finite value is infinity. 166 The sign of result matches the sign of infinity. 167 check-type: check-positive 168 code-template: | 169 # 170 fldai.64 0x7ff0000000000000 # +Inf 171 fmovi.64 v0, %s 172 # Sum of +Inf and value 173 fadd2.64 v0 174 fmovi.64 v1, %s 175 fcmpg.64 v1 176 description: Check fadd2.64 with positive Inf and various values (Inf, min, max, numbers). 177 cases: 178 - values: 179 # +0.0d 180 - "0" 181 - "0x7ff0000000000000" 182 - values: 183 # -0.0d 184 - "0x8000000000000000" 185 - "0x7ff0000000000000" 186 - values: 187 # 1d 188 - "0x3ff0000000000000" 189 - "0x7ff0000000000000" 190 - values: 191 # -1d 192 - "0xbff0000000000000" 193 - "0x7ff0000000000000" 194 - values: 195 # +Inf 196 - "0x7ff0000000000000" 197 - "0x7ff0000000000000" 198 - values: 199 # +max 200 - "0x7fefffffffffffff" 201 - "0x7ff0000000000000" 202 - values: 203 # -max 204 - "0xffefffffffffffff" 205 - "0x7ff0000000000000" 206 - values: 207 # +min 208 - "0x0000000000000001" 209 - "0x7ff0000000000000" 210 - values: 211 # -min 212 - "0x8000000000000001" 213 - "0x7ff0000000000000" 214 - values: 215 # Some FP value, 3.14159265358979323846 216 - "0x400921fb54442d18" 217 - "0x7ff0000000000000" 218 - values: 219 - "1234567890987654321" 220 - "0x7ff0000000000000" 221 222 - file-name: "op_vs_8_ninf" 223 isa: 224 instructions: 225 - sig: fadd2.64 v:in:f64 226 acc: inout:f64 227 format: [op_v_8] 228 description: > 229 The sum of two infinities of the same sign or the difference of two infinities of opposite sign is infinity. 230 The sign of result matches the sign of accumulator value. 231 The sum or the difference of infinity and any finite value is infinity. 232 The sign of result matches the sign of infinity. 233 check-type: check-positive 234 code-template: | 235 # 236 fldai.64 0xfff0000000000000 # -Inf 237 fmovi.64 v0, %s 238 # Sum of -Inf and value 239 fadd2.64 v0 240 fmovi.64 v1, %s 241 fcmpg.64 v1 242 description: Check fadd2.64 with negative Inf and various values (Inf, min, max, numbers). 243 cases: 244 - values: 245 # +0.0d 246 - "0" 247 # -Inf 248 - "0xfff0000000000000" 249 - values: 250 # -0.0d 251 - "0x8000000000000000" 252 # -Inf 253 - "0xfff0000000000000" 254 - values: 255 # 1d 256 - "0x3ff0000000000000" 257 # -Inf 258 - "0xfff0000000000000" 259 - values: 260 # -1d 261 - "0xbff0000000000000" 262 # -Inf 263 - "0xfff0000000000000" 264 - values: 265 # -Inf 266 - "0xfff0000000000000" 267 # -Inf 268 - "0xfff0000000000000" 269 - values: 270 # +max 271 - "0x7fefffffffffffff" 272 # -Inf 273 - "0xfff0000000000000" 274 - values: 275 # -max 276 - "0xffefffffffffffff" 277 # -Inf 278 - "0xfff0000000000000" 279 - values: 280 # +min 281 - "0x0000000000000001" 282 # -Inf 283 - "0xfff0000000000000" 284 - values: 285 # -min 286 - "0x8000000000000001" 287 # -Inf 288 - "0xfff0000000000000" 289 - values: 290 # Some FP value, 3.14159265358979323846 291 - "0x400921fb54442d18" 292 # -Inf 293 - "0xfff0000000000000" 294 - values: 295 - "1234567890987654321" 296 # -Inf 297 - "0xfff0000000000000" 298 299 - file-name: "op_vs_8_inf_nan" 300 isa: 301 instructions: 302 - sig: fadd2.64 v:in:f64 303 acc: inout:f64 304 format: [op_v_8] 305 description: > 306 The sum of opposite infinities or the difference of the same sign infinities is NaN. 307 check-type: check-acc-nan 308 code-template: | 309 # 310 fldai.64 %s 311 fmovi.64 v0, %s 312 # Sum of opposite Inf-s 313 fadd2.64 v0 314 description: Check fadd2.64 with +Inf and -Inf is NaN. 315 cases: 316 - values: 317 - "0x7ff0000000000000" 318 - "0xfff0000000000000" 319 - values: 320 - "0xfff0000000000000" 321 - "0x7ff0000000000000" 322 323 - file-name: "op_vs_8_pzero" 324 isa: 325 instructions: 326 - sig: fadd2.64 v:in:f64 327 acc: inout:f64 328 format: [op_v_8] 329 description: > 330 The sum or the difference of infinity and any finite value is infinity. 331 The sign of result matches the sign of infinity. 332 The sum or the difference of zeros is zero. 333 Exceptions are the sum of two negative zeros and the difference of negative and positive zero - the result is negative zero. 334 check-type: check-positive 335 description: Check fadd2.64 with positive zero and various values (Inf, min, max, numbers). 336 code-template: | 337 # 338 fldai.64 0.0 # 339 fmovi.64 v0, %s 340 mov.64 v1, v0 341 # Sum of +0.0 and value 342 fadd2.64 v0 343 fcmpg.64 v1 344 cases: 345 - values: 346 # +0.0d 347 - "0" 348 - values: 349 # -0.0d 350 - "0x8000000000000000" 351 - values: 352 # 1d 353 - "1" 354 - values: 355 # -1d 356 - "-1" 357 - values: 358 # +Inf 359 - "0x7ff0000000000000" 360 - values: 361 # -Inf 362 - "0xfff0000000000000" 363 - values: 364 # +max 365 - "0x7fefffffffffffff" 366 - values: 367 # -max 368 - "0xffefffffffffffff" 369 - values: 370 # +min 371 - "0x0000000000000001" 372 373 - values: 374 # -min 375 - "0x8000000000000001" 376 - values: 377 - "3.14159265358979323846" 378 - values: 379 - "1234567890987654321" 380 381 - file-name: "op_vs_8_nzero" 382 isa: 383 instructions: 384 - sig: fadd2.64 v:in:f64 385 acc: inout:f64 386 format: [op_v_8] 387 description: > 388 The sum or the difference of infinity and any finite value is infinity. 389 The sign of result matches the sign of infinity. 390 The sum or the difference of zeros is zero. 391 Exceptions are the sum of two negative zeros and the difference of negative and positive zero - the result is negative zero. 392 check-type: check-positive 393 description: Check fadd2.64 with negative zero and various values (Inf, min, max, numbers). 394 code-template: | 395 # 396 fldai.64 -0.0 # 397 fmovi.64 v0, %s 398 mov.64 v1, v0 399 # Sum of -0.0 and value 400 fadd2.64 v0 401 fcmpg.64 v1 402 cases: 403 # Comment this case, since it is incorrect. 404 # It seems the better way to compare -0.0 and -0.0 is to convert it to -Inf 405 # - case-template: | 406 # # 407 # fldai.64 -0.0 # 408 # fmovi.64 v0, -0.0 409 # # Sum of -0.0 and -0.0 should be -0.0 410 # fadd2.64 v0 411 # fmovi.64 v1, -0.0 412 # cmp.64 v1 # compare as binary values, due to +0.0 == -0.0, but 0x8000000000000000 != 0x0000000000000000 413 - values: 414 # 1d 415 - "1" 416 - values: 417 - "-1" 418 - values: 419 # +Inf 420 - "0x7ff0000000000000" 421 - values: 422 # -Inf 423 - "0xfff0000000000000" 424 - values: 425 # +max 426 - "0x7fefffffffffffff" 427 - values: 428 # -max 429 - "0xffefffffffffffff" 430 - values: 431 # +min 432 - "0x0000000000000001" 433 - values: 434 # -min 435 - "0x8000000000000001" 436 - values: 437 - "3.14159265358979323846" 438 - values: 439 - "1234567890987654321" 440 441 - file-name: "op_vs_8_pone" 442 isa: 443 instructions: 444 - sig: fadd2.64 v:in:f64 445 acc: inout:f64 446 format: [op_v_8] 447 description: > 448 The sum or the difference of infinity and any finite value is infinity. 449 The sign of result matches the sign of infinity. 450 check-type: check-positive 451 description: Check fadd2.64 with +1 and various values (Inf, min, max, numbers). 452 code-template: | 453 # 454 fldai.64 1.0 # 455 fmovi.64 v0, %s 456 # Sum of 1.0 and value 457 fadd2.64 v0 458 fmovi.64 v1, %s 459 fcmpg.64 v1 460 cases: 461 - values: 462 # +0.0d 463 - "0" 464 - "1.0" 465 - values: 466 # -0.0d 467 - "0x8000000000000000" 468 - "1.0" 469 - values: 470 - "1.0" 471 - "2.0" 472 - values: 473 - "-1.0" 474 - "0" 475 - values: 476 # +Inf 477 - "0x7ff0000000000000" 478 - "0x7ff0000000000000" 479 - values: 480 # -Inf 481 - "0xfff0000000000000" 482 # -Inf 483 - "0xfff0000000000000" 484 - values: 485 # +max 486 - "0x7fefffffffffffff" 487 - "0x7fefffffffffffff" 488 - values: 489 # -max 490 - "0xffefffffffffffff" 491 # -max 492 - "0xffefffffffffffff" 493 - values: 494 # +min 495 - "0x0000000000000001" 496 - "1.0" 497 - values: 498 # -min 499 - "0x8000000000000001" 500 - "1.0" 501 - values: 502 # Some FP value, 3.14159265358979323846 503 - "3.14159265358979323846" 504 - "4.14159265358979323846" 505 - values: 506 # Some FP value 507 - "1234567890.987654321" 508 - "1234567891.987654321" 509 510 - file-name: "op_vs_8_none" 511 isa: 512 instructions: 513 - sig: fadd2.64 v:in:f64 514 acc: inout:f64 515 format: [op_v_8] 516 description: > 517 The sum or the difference of infinity and any finite value is infinity. 518 The sign of result matches the sign of infinity. 519 check-type: check-positive 520 description: Check fadd2.64 with -1 and various values (Inf, min, max, numbers). 521 code-template: | 522 # 523 fldai.64 -1.0 # 524 fmovi.64 v0, %s 525 # Sum of -1.0 and value 526 fadd2.64 v0 527 fmovi.64 v1, %s 528 fcmpg.64 v1 529 cases: 530 - values: 531 # +0.0d 532 - "0" 533 - "-1" 534 - values: 535 # -0.0d 536 - "0x8000000000000000" 537 - "-1" 538 - values: 539 # 1d 540 - "1" 541 - "0" 542 - values: 543 # -1d 544 - "-1" 545 - "-2" 546 - values: 547 # +Inf 548 - "0x7ff0000000000000" 549 - "0x7ff0000000000000" 550 - values: 551 # -Inf 552 - "0xfff0000000000000" 553 # -Inf 554 - "0xfff0000000000000" 555 - values: 556 # +max 557 - "0x7fefffffffffffff" 558 - "0x7fefffffffffffff" 559 - values: 560 # -max 561 - "0xffefffffffffffff" 562 # -max 563 - "0xffefffffffffffff" 564 - values: 565 # +min 566 - "0x0000000000000001" 567 # -1d 568 - "-1" 569 - values: 570 # -min 571 - "0x8000000000000001" 572 # -1d 573 - "-1" 574 - values: 575 # Some FP value, 3.14159265358979323846 576 - "3.14159265358979323846" 577 - "2.14159265358979323846" 578 - values: 579 # Some FP value 580 - "1234567890.987654321" 581 - "1234567889.987654321" 582 583 - file-name: "op_vs_8" 584 isa: 585 instructions: 586 - sig: fadd2.64 v:in:f64 587 acc: inout:f64 588 format: [op_v_8] 589 description: > 590 The sum or the difference of zeros is zero. 591 Exceptions are the sum of two negative zeros and the difference of negative and positive zero - the result is negative zero. 592 check-type: check-positive 593 description: Check fadd2.64 with various values. 594 code-template: | 595 # 596 fldai.64 %s # 597 fmovi.64 v0, %s 598 # Sum of -1.0 and value 599 fadd2.64 v0 600 fmovi.64 v1, %s 601 fcmpg.64 v1 602 cases: 603 - values: 604 - "0.0" 605 - "0.0" 606 - "0.0" 607 - values: 608 - "0.0" 609 - "-0.0" 610 - "0.0" 611 - values: 612 - "-0.0" 613 - "0.0" 614 - "0.0" 615 - values: 616 - "-0.0" 617 - "-0.0" 618 - "0.0" 619 - values: 620 - "1.0" 621 - "-1.0" 622 - "0.0" 623 - values: 624 - "-1.0" 625 - "1.0" 626 - "0.0" 627 - values: 628 - "1.0e100" 629 - "1.0e100" 630 - "2.0e100" 631 - values: 632 - "1.0e-100" 633 - "1.0e-100" 634 - "2.0e-100" 635 - values: 636 - "1.0e+100" 637 - "1.0e-100" 638 - "1.0e+100" 639 - values: 640 - "-1.0e100" 641 - "-1.0e100" 642 - "-2.0e100" 643 - values: 644 - "-1.0e-100" 645 - "-1.0e-100" 646 - "-2.0e-100" 647 - values: 648 - "-1.0e+100" 649 - "-1.0e-100" 650 - "-1.0e+100" 651 - values: 652 - "3.14159265358979323846" 653 - "3.14159265358979323846" 654 - "6.283185307179586" 655 - values: 656 - "3.14159265358979323846e200" 657 - "3.14159265358979323846e200" 658 - "6.283185307179587e200" 659 660 - file-name: "op_vs_8_max" 661 isa: 662 instructions: 663 - sig: fadd2.64 v:in:f64 664 acc: inout:f64 665 format: [op_v_8] 666 check-type: check-positive 667 code-template: | 668 # 669 fldai.64 %s 670 fmovi.64 v0, %s 671 # Sum of two values 672 fadd2.64 v0 673 fmovi.64 v1, %s 674 fcmpg.64 v1 675 description: Check fadd2.64 with various max values. 676 cases: 677 - values: 678 # +max 679 - "0x7fefffffffffffff" 680 # +max 681 - "0x7fefffffffffffff" 682 # +Inf 683 - "0x7ff0000000000000" 684 - values: 685 # -max 686 - "0xffefffffffffffff" 687 # -max 688 - "0xffefffffffffffff" 689 # -Inf 690 - "0xfff0000000000000" 691 - values: 692 # +max 693 - "0x7fefffffffffffff" 694 # -max 695 - "0xffefffffffffffff" 696 - "0" 697 - values: 698 # +max 699 - "0x7fefffffffffffff" 700 # 1d 701 - "0x3ff0000000000000" 702 # +max 703 - "0x7fefffffffffffff" 704 - values: 705 # +max 706 - "0x7fefffffffffffff" 707 - "-1.0" 708 # +max 709 - "0x7fefffffffffffff" 710 - values: 711 # -max 712 - "0xffefffffffffffff" 713 - "1" 714 # -max 715 - "0xffefffffffffffff" 716 - values: 717 # -max 718 - "0xffefffffffffffff" 719 - "-1.0" 720 # -max 721 - "0xffefffffffffffff" 722 723 - file-name: "incorrect_reg" 724 isa: 725 instructions: 726 - sig: fadd2.64 v:in:f64 727 acc: inout:f64 728 format: [op_v_8] 729 check-type: none 730 runner-options: [compile-failure] 731 description: Check fadd2.64 with incorrect register numbers. 732 code-template: | 733 # 734 fadd2.64 %s 735 cases: 736 - values: [v256] 737 - values: [v65535] 738 - values: [a0] 739 - values: [a255] 740 - values: [null] 741 - values: [0] 742 - values: [1.1] 743 - values: ['2.2'] 744 745 - file-name: "reg_number" 746 isa: 747 instructions: 748 - sig: fadd2.64 v:in:f64 749 acc: inout:f64 750 format: [op_v_8] 751 check-type: none 752 runner-options: [compile-only] 753 description: Check fadd2.64 with correct register numbers. 754 code-template: | 755 # 756 fadd2.64 %s 757 cases: 758 - values: [v0] 759 - values: [v16] 760 - values: [v128] 761 - values: [v255] 762 763 - file-name: "calc" 764 isa: 765 instructions: 766 - sig: fadd2.64 v:in:f64 767 acc: inout:f64 768 format: [op_v_8] 769 check-type: check-positive 770 description: Check fadd2.64 with various values. 771 tags: ['tsan'] 772 code-template: | 773 # 774 fldai.64 %s 775 fmovi.64 v0, %s 776 fadd2.64 v0 777 fmovi.64 v1, %s 778 fcmpg.64 v1 779 cases: 780 - values: 781 - "-0.15050802400115393" 782 - "0.18996780455830886" 783 - "0.03945978055715493" 784 - values: 785 - "0.09951566402242995" 786 - "0.03719425811598742" 787 - "0.13670992213841737" 788 - values: 789 - "0.038831767543099804" 790 - "-0.4662699308635513" 791 - "-0.4274381633204515" 792 - values: 793 - "-0.11785869458726261" 794 - "-0.4106442634971579" 795 - "-0.5285029580844205" 796 - values: 797 - "0.23325136409810066" 798 - "0.09303562554819389" 799 - "0.32628698964629455" 800 - values: 801 - "-0.36306915632091574" 802 - "-0.18813247402656463" 803 - "-0.5512016303474804" 804 - values: 805 - "0.10035211145856304" 806 - "0.23596899663966542" 807 - "0.33632110809822846" 808 - values: 809 - "-0.22312737471673505" 810 - "-0.2184161670683794" 811 - "-0.44154354178511446" 812 - values: 813 - "0.18529020487227765" 814 - "0.48416743127187434" 815 - "0.669457636144152" 816 - values: 817 - "-0.47541772073735256" 818 - "0.08233614669530886" 819 - "-0.3930815740420437" 820 - values: 821 - "2.7599109874619587e-36" 822 - "-1.9447187242297282e-36" 823 - "8.151922632322304e-37" 824 - values: 825 - "9.760636456557758e-74" 826 - "4.224280075394366e-73" 827 - "5.200343721050142e-73" 828 - values: 829 - "2.5148540784952656e14" 830 - "1.9183146899927395e15" 831 - "2.169800097842266e15" 832 - values: 833 - "-9.871449173048974e19" 834 - "4.913647830291874e20" 835 - "3.926502912986976e20" 836 - values: 837 - "3.9192234567792673e-47" 838 - "2.2575355997689083e-47" 839 - "6.176759056548176e-47" 840 - values: 841 - "1.8994371294860455e98" 842 - "1.127391615608706e98" 843 - "3.0268287450947515e98" 844 - values: 845 - "4.0229987819504645e-32" 846 - "-2.500939436262524e-32" 847 - "1.5220593456879406e-32" 848 - values: 849 - "-4.16291703977667e72" 850 - "-4.0235643039421143e73" 851 - "-4.4398560079197816e73" 852 - values: 853 - "4.6361619555237306e-8" 854 - "-6.780934771200086e-9" 855 - "3.958068478403722e-8" 856 - values: 857 - "-2.5549708954660045e19" 858 - "4.064694433264309e19" 859 - "1.5097235377983046e19" 860 861 - file-name: "type" 862 isa: 863 instructions: 864 - sig: fadd2.64 v:in:f64 865 acc: inout:f64 866 format: [op_v_8] 867 verification: 868 - acc_type 869 - v1_type 870 tags: ['verifier'] 871 runner-options: ['verifier-failure', 'verifier-debug-config'] 872 header-template: [] 873 code-template: | 874 # 875 .record A {} 876 .record B {} 877 .record panda.String <external> 878 .record panda.Object <external> 879 .function i32 main() { 880 %s 881 *s 882 fadd2.64 v0 883 check-type: exit-positive 884 description: Check 'fadd2.64' with incorrect register and accumulator type. 885 template-cases: 886 - values: 887 - movi v0, 0 888 - values: 889 - movi.64 v0, 0 890 - values: 891 - fmovi.64 v0, 0 892 exclude: [val] 893 - values: 894 - | 895 # 896 lda.type B 897 sta.obj v0 898 - values: 899 - | 900 # 901 lda.type B[] 902 sta.obj v0 903 - values: 904 - | 905 # 906 lda.type panda.String 907 sta.obj v0 908 - values: 909 - | 910 # 911 lda.str "string" 912 sta.obj v0 913 - values: 914 - | 915 # 916 movi v0, 10 917 newarr v0, v0, i32[] 918 - values: 919 - mov.null v0 920 921 cases: 922 - values: 923 - ldai 0 924 - values: 925 - ldai.64 0 926 - values: 927 - fldai.64 0 928 id: val 929 - values: 930 - | 931 # 932 lda.type A 933 - values: 934 - | 935 # 936 lda.type A[] 937 - values: 938 - | 939 # 940 lda.type panda.String 941 - values: 942 - | 943 # 944 lda.str "string" 945 - values: 946 - | 947 # 948 movi v1, 10 949 newarr v1, v1, f64[] 950 lda.obj v1 951 - values: 952 - lda.null 953 954 - file-name: uninitialized_regs 955 isa: 956 instructions: 957 - sig: fadd2.64 v:in:f64 958 acc: inout:f64 959 format: [op_v_8] 960 description: Check 'fadd2.64' with uninitialized register and accumulator. 961 tags: ['verifier'] 962 runner-options: ['verifier-failure', 'verifier-debug-config'] 963 header-template: [] 964 code-template: | 965 # 966 .function i32 main() { 967 %s 968 *s 969 fadd2.64 %s 970 check-type: exit-positive 971 template-cases: 972 - values: 973 - '' 974 - v0 975 - values: 976 - fmovi.64 v0, 0 977 - v0 978 exclude: [init] 979 - values: 980 - '' 981 - v7 982 - values: 983 - '' 984 - v15 985 - values: 986 - fmovi.64 v15, 0 987 - v15 988 exclude: [init] 989 - values: 990 - '' 991 - v128 992 - values: 993 - fmovi.64 v128, 0 994 - v128 995 exclude: [init] 996 - values: 997 - '' 998 - v255 999 - values: 1000 - fmovi.64 v255, 0 1001 - v255 1002 exclude: [init] 1003 cases: 1004 - values: 1005 - '' 1006 - values: 1007 - fldai.64 0 1008 id: init 1009