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