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