1 2 #include "nir.h" 3 4 const nir_op_info nir_op_infos[nir_num_opcodes] = { 5 { 6 .name = "b2f", 7 .num_inputs = 1, 8 .output_size = 0, 9 .output_type = nir_type_float32, 10 .input_sizes = { 11 0 12 }, 13 .input_types = { 14 nir_type_bool32 15 }, 16 .algebraic_properties = 17 0 18 }, 19 { 20 .name = "b2i", 21 .num_inputs = 1, 22 .output_size = 0, 23 .output_type = nir_type_int32, 24 .input_sizes = { 25 0 26 }, 27 .input_types = { 28 nir_type_bool32 29 }, 30 .algebraic_properties = 31 0 32 }, 33 { 34 .name = "ball_fequal2", 35 .num_inputs = 2, 36 .output_size = 1, 37 .output_type = nir_type_bool32, 38 .input_sizes = { 39 2, 2 40 }, 41 .input_types = { 42 nir_type_float, nir_type_float 43 }, 44 .algebraic_properties = 45 NIR_OP_IS_COMMUTATIVE 46 }, 47 { 48 .name = "ball_fequal3", 49 .num_inputs = 2, 50 .output_size = 1, 51 .output_type = nir_type_bool32, 52 .input_sizes = { 53 3, 3 54 }, 55 .input_types = { 56 nir_type_float, nir_type_float 57 }, 58 .algebraic_properties = 59 NIR_OP_IS_COMMUTATIVE 60 }, 61 { 62 .name = "ball_fequal4", 63 .num_inputs = 2, 64 .output_size = 1, 65 .output_type = nir_type_bool32, 66 .input_sizes = { 67 4, 4 68 }, 69 .input_types = { 70 nir_type_float, nir_type_float 71 }, 72 .algebraic_properties = 73 NIR_OP_IS_COMMUTATIVE 74 }, 75 { 76 .name = "ball_iequal2", 77 .num_inputs = 2, 78 .output_size = 1, 79 .output_type = nir_type_bool32, 80 .input_sizes = { 81 2, 2 82 }, 83 .input_types = { 84 nir_type_int, nir_type_int 85 }, 86 .algebraic_properties = 87 NIR_OP_IS_COMMUTATIVE 88 }, 89 { 90 .name = "ball_iequal3", 91 .num_inputs = 2, 92 .output_size = 1, 93 .output_type = nir_type_bool32, 94 .input_sizes = { 95 3, 3 96 }, 97 .input_types = { 98 nir_type_int, nir_type_int 99 }, 100 .algebraic_properties = 101 NIR_OP_IS_COMMUTATIVE 102 }, 103 { 104 .name = "ball_iequal4", 105 .num_inputs = 2, 106 .output_size = 1, 107 .output_type = nir_type_bool32, 108 .input_sizes = { 109 4, 4 110 }, 111 .input_types = { 112 nir_type_int, nir_type_int 113 }, 114 .algebraic_properties = 115 NIR_OP_IS_COMMUTATIVE 116 }, 117 { 118 .name = "bany_fnequal2", 119 .num_inputs = 2, 120 .output_size = 1, 121 .output_type = nir_type_bool32, 122 .input_sizes = { 123 2, 2 124 }, 125 .input_types = { 126 nir_type_float, nir_type_float 127 }, 128 .algebraic_properties = 129 NIR_OP_IS_COMMUTATIVE 130 }, 131 { 132 .name = "bany_fnequal3", 133 .num_inputs = 2, 134 .output_size = 1, 135 .output_type = nir_type_bool32, 136 .input_sizes = { 137 3, 3 138 }, 139 .input_types = { 140 nir_type_float, nir_type_float 141 }, 142 .algebraic_properties = 143 NIR_OP_IS_COMMUTATIVE 144 }, 145 { 146 .name = "bany_fnequal4", 147 .num_inputs = 2, 148 .output_size = 1, 149 .output_type = nir_type_bool32, 150 .input_sizes = { 151 4, 4 152 }, 153 .input_types = { 154 nir_type_float, nir_type_float 155 }, 156 .algebraic_properties = 157 NIR_OP_IS_COMMUTATIVE 158 }, 159 { 160 .name = "bany_inequal2", 161 .num_inputs = 2, 162 .output_size = 1, 163 .output_type = nir_type_bool32, 164 .input_sizes = { 165 2, 2 166 }, 167 .input_types = { 168 nir_type_int, nir_type_int 169 }, 170 .algebraic_properties = 171 NIR_OP_IS_COMMUTATIVE 172 }, 173 { 174 .name = "bany_inequal3", 175 .num_inputs = 2, 176 .output_size = 1, 177 .output_type = nir_type_bool32, 178 .input_sizes = { 179 3, 3 180 }, 181 .input_types = { 182 nir_type_int, nir_type_int 183 }, 184 .algebraic_properties = 185 NIR_OP_IS_COMMUTATIVE 186 }, 187 { 188 .name = "bany_inequal4", 189 .num_inputs = 2, 190 .output_size = 1, 191 .output_type = nir_type_bool32, 192 .input_sizes = { 193 4, 4 194 }, 195 .input_types = { 196 nir_type_int, nir_type_int 197 }, 198 .algebraic_properties = 199 NIR_OP_IS_COMMUTATIVE 200 }, 201 { 202 .name = "bcsel", 203 .num_inputs = 3, 204 .output_size = 0, 205 .output_type = nir_type_uint, 206 .input_sizes = { 207 0, 0, 0 208 }, 209 .input_types = { 210 nir_type_bool32, nir_type_uint, nir_type_uint 211 }, 212 .algebraic_properties = 213 0 214 }, 215 { 216 .name = "bfi", 217 .num_inputs = 3, 218 .output_size = 0, 219 .output_type = nir_type_uint32, 220 .input_sizes = { 221 0, 0, 0 222 }, 223 .input_types = { 224 nir_type_uint32, nir_type_uint32, nir_type_uint32 225 }, 226 .algebraic_properties = 227 0 228 }, 229 { 230 .name = "bfm", 231 .num_inputs = 2, 232 .output_size = 0, 233 .output_type = nir_type_uint32, 234 .input_sizes = { 235 0, 0 236 }, 237 .input_types = { 238 nir_type_int32, nir_type_int32 239 }, 240 .algebraic_properties = 241 0 242 }, 243 { 244 .name = "bit_count", 245 .num_inputs = 1, 246 .output_size = 0, 247 .output_type = nir_type_uint32, 248 .input_sizes = { 249 0 250 }, 251 .input_types = { 252 nir_type_uint32 253 }, 254 .algebraic_properties = 255 0 256 }, 257 { 258 .name = "bitfield_insert", 259 .num_inputs = 4, 260 .output_size = 0, 261 .output_type = nir_type_uint32, 262 .input_sizes = { 263 0, 0, 0, 0 264 }, 265 .input_types = { 266 nir_type_uint32, nir_type_uint32, nir_type_int32, nir_type_int32 267 }, 268 .algebraic_properties = 269 0 270 }, 271 { 272 .name = "bitfield_reverse", 273 .num_inputs = 1, 274 .output_size = 0, 275 .output_type = nir_type_uint32, 276 .input_sizes = { 277 0 278 }, 279 .input_types = { 280 nir_type_uint32 281 }, 282 .algebraic_properties = 283 0 284 }, 285 { 286 .name = "d2b", 287 .num_inputs = 1, 288 .output_size = 0, 289 .output_type = nir_type_bool32, 290 .input_sizes = { 291 0 292 }, 293 .input_types = { 294 nir_type_float64 295 }, 296 .algebraic_properties = 297 0 298 }, 299 { 300 .name = "d2f", 301 .num_inputs = 1, 302 .output_size = 0, 303 .output_type = nir_type_float32, 304 .input_sizes = { 305 0 306 }, 307 .input_types = { 308 nir_type_float64 309 }, 310 .algebraic_properties = 311 0 312 }, 313 { 314 .name = "d2i", 315 .num_inputs = 1, 316 .output_size = 0, 317 .output_type = nir_type_int32, 318 .input_sizes = { 319 0 320 }, 321 .input_types = { 322 nir_type_float64 323 }, 324 .algebraic_properties = 325 0 326 }, 327 { 328 .name = "d2u", 329 .num_inputs = 1, 330 .output_size = 0, 331 .output_type = nir_type_uint32, 332 .input_sizes = { 333 0 334 }, 335 .input_types = { 336 nir_type_float64 337 }, 338 .algebraic_properties = 339 0 340 }, 341 { 342 .name = "extract_i16", 343 .num_inputs = 2, 344 .output_size = 0, 345 .output_type = nir_type_int, 346 .input_sizes = { 347 0, 0 348 }, 349 .input_types = { 350 nir_type_int, nir_type_int 351 }, 352 .algebraic_properties = 353 0 354 }, 355 { 356 .name = "extract_i8", 357 .num_inputs = 2, 358 .output_size = 0, 359 .output_type = nir_type_int, 360 .input_sizes = { 361 0, 0 362 }, 363 .input_types = { 364 nir_type_int, nir_type_int 365 }, 366 .algebraic_properties = 367 0 368 }, 369 { 370 .name = "extract_u16", 371 .num_inputs = 2, 372 .output_size = 0, 373 .output_type = nir_type_uint, 374 .input_sizes = { 375 0, 0 376 }, 377 .input_types = { 378 nir_type_uint, nir_type_uint 379 }, 380 .algebraic_properties = 381 0 382 }, 383 { 384 .name = "extract_u8", 385 .num_inputs = 2, 386 .output_size = 0, 387 .output_type = nir_type_uint, 388 .input_sizes = { 389 0, 0 390 }, 391 .input_types = { 392 nir_type_uint, nir_type_uint 393 }, 394 .algebraic_properties = 395 0 396 }, 397 { 398 .name = "f2b", 399 .num_inputs = 1, 400 .output_size = 0, 401 .output_type = nir_type_bool32, 402 .input_sizes = { 403 0 404 }, 405 .input_types = { 406 nir_type_float32 407 }, 408 .algebraic_properties = 409 0 410 }, 411 { 412 .name = "f2d", 413 .num_inputs = 1, 414 .output_size = 0, 415 .output_type = nir_type_float64, 416 .input_sizes = { 417 0 418 }, 419 .input_types = { 420 nir_type_float32 421 }, 422 .algebraic_properties = 423 0 424 }, 425 { 426 .name = "f2i", 427 .num_inputs = 1, 428 .output_size = 0, 429 .output_type = nir_type_int32, 430 .input_sizes = { 431 0 432 }, 433 .input_types = { 434 nir_type_float32 435 }, 436 .algebraic_properties = 437 0 438 }, 439 { 440 .name = "f2u", 441 .num_inputs = 1, 442 .output_size = 0, 443 .output_type = nir_type_uint32, 444 .input_sizes = { 445 0 446 }, 447 .input_types = { 448 nir_type_float32 449 }, 450 .algebraic_properties = 451 0 452 }, 453 { 454 .name = "fabs", 455 .num_inputs = 1, 456 .output_size = 0, 457 .output_type = nir_type_float, 458 .input_sizes = { 459 0 460 }, 461 .input_types = { 462 nir_type_float 463 }, 464 .algebraic_properties = 465 0 466 }, 467 { 468 .name = "fadd", 469 .num_inputs = 2, 470 .output_size = 0, 471 .output_type = nir_type_float, 472 .input_sizes = { 473 0, 0 474 }, 475 .input_types = { 476 nir_type_float, nir_type_float 477 }, 478 .algebraic_properties = 479 NIR_OP_IS_COMMUTATIVE | NIR_OP_IS_ASSOCIATIVE 480 }, 481 { 482 .name = "fall_equal2", 483 .num_inputs = 2, 484 .output_size = 1, 485 .output_type = nir_type_float32, 486 .input_sizes = { 487 2, 2 488 }, 489 .input_types = { 490 nir_type_float32, nir_type_float32 491 }, 492 .algebraic_properties = 493 NIR_OP_IS_COMMUTATIVE 494 }, 495 { 496 .name = "fall_equal3", 497 .num_inputs = 2, 498 .output_size = 1, 499 .output_type = nir_type_float32, 500 .input_sizes = { 501 3, 3 502 }, 503 .input_types = { 504 nir_type_float32, nir_type_float32 505 }, 506 .algebraic_properties = 507 NIR_OP_IS_COMMUTATIVE 508 }, 509 { 510 .name = "fall_equal4", 511 .num_inputs = 2, 512 .output_size = 1, 513 .output_type = nir_type_float32, 514 .input_sizes = { 515 4, 4 516 }, 517 .input_types = { 518 nir_type_float32, nir_type_float32 519 }, 520 .algebraic_properties = 521 NIR_OP_IS_COMMUTATIVE 522 }, 523 { 524 .name = "fand", 525 .num_inputs = 2, 526 .output_size = 0, 527 .output_type = nir_type_float32, 528 .input_sizes = { 529 0, 0 530 }, 531 .input_types = { 532 nir_type_float32, nir_type_float32 533 }, 534 .algebraic_properties = 535 NIR_OP_IS_COMMUTATIVE 536 }, 537 { 538 .name = "fany_nequal2", 539 .num_inputs = 2, 540 .output_size = 1, 541 .output_type = nir_type_float32, 542 .input_sizes = { 543 2, 2 544 }, 545 .input_types = { 546 nir_type_float32, nir_type_float32 547 }, 548 .algebraic_properties = 549 NIR_OP_IS_COMMUTATIVE 550 }, 551 { 552 .name = "fany_nequal3", 553 .num_inputs = 2, 554 .output_size = 1, 555 .output_type = nir_type_float32, 556 .input_sizes = { 557 3, 3 558 }, 559 .input_types = { 560 nir_type_float32, nir_type_float32 561 }, 562 .algebraic_properties = 563 NIR_OP_IS_COMMUTATIVE 564 }, 565 { 566 .name = "fany_nequal4", 567 .num_inputs = 2, 568 .output_size = 1, 569 .output_type = nir_type_float32, 570 .input_sizes = { 571 4, 4 572 }, 573 .input_types = { 574 nir_type_float32, nir_type_float32 575 }, 576 .algebraic_properties = 577 NIR_OP_IS_COMMUTATIVE 578 }, 579 { 580 .name = "fceil", 581 .num_inputs = 1, 582 .output_size = 0, 583 .output_type = nir_type_float, 584 .input_sizes = { 585 0 586 }, 587 .input_types = { 588 nir_type_float 589 }, 590 .algebraic_properties = 591 0 592 }, 593 { 594 .name = "fcos", 595 .num_inputs = 1, 596 .output_size = 0, 597 .output_type = nir_type_float, 598 .input_sizes = { 599 0 600 }, 601 .input_types = { 602 nir_type_float 603 }, 604 .algebraic_properties = 605 0 606 }, 607 { 608 .name = "fcsel", 609 .num_inputs = 3, 610 .output_size = 0, 611 .output_type = nir_type_float32, 612 .input_sizes = { 613 0, 0, 0 614 }, 615 .input_types = { 616 nir_type_float32, nir_type_float32, nir_type_float32 617 }, 618 .algebraic_properties = 619 0 620 }, 621 { 622 .name = "fddx", 623 .num_inputs = 1, 624 .output_size = 0, 625 .output_type = nir_type_float, 626 .input_sizes = { 627 0 628 }, 629 .input_types = { 630 nir_type_float 631 }, 632 .algebraic_properties = 633 0 634 }, 635 { 636 .name = "fddx_coarse", 637 .num_inputs = 1, 638 .output_size = 0, 639 .output_type = nir_type_float, 640 .input_sizes = { 641 0 642 }, 643 .input_types = { 644 nir_type_float 645 }, 646 .algebraic_properties = 647 0 648 }, 649 { 650 .name = "fddx_fine", 651 .num_inputs = 1, 652 .output_size = 0, 653 .output_type = nir_type_float, 654 .input_sizes = { 655 0 656 }, 657 .input_types = { 658 nir_type_float 659 }, 660 .algebraic_properties = 661 0 662 }, 663 { 664 .name = "fddy", 665 .num_inputs = 1, 666 .output_size = 0, 667 .output_type = nir_type_float, 668 .input_sizes = { 669 0 670 }, 671 .input_types = { 672 nir_type_float 673 }, 674 .algebraic_properties = 675 0 676 }, 677 { 678 .name = "fddy_coarse", 679 .num_inputs = 1, 680 .output_size = 0, 681 .output_type = nir_type_float, 682 .input_sizes = { 683 0 684 }, 685 .input_types = { 686 nir_type_float 687 }, 688 .algebraic_properties = 689 0 690 }, 691 { 692 .name = "fddy_fine", 693 .num_inputs = 1, 694 .output_size = 0, 695 .output_type = nir_type_float, 696 .input_sizes = { 697 0 698 }, 699 .input_types = { 700 nir_type_float 701 }, 702 .algebraic_properties = 703 0 704 }, 705 { 706 .name = "fdiv", 707 .num_inputs = 2, 708 .output_size = 0, 709 .output_type = nir_type_float, 710 .input_sizes = { 711 0, 0 712 }, 713 .input_types = { 714 nir_type_float, nir_type_float 715 }, 716 .algebraic_properties = 717 0 718 }, 719 { 720 .name = "fdot2", 721 .num_inputs = 2, 722 .output_size = 1, 723 .output_type = nir_type_float, 724 .input_sizes = { 725 2, 2 726 }, 727 .input_types = { 728 nir_type_float, nir_type_float 729 }, 730 .algebraic_properties = 731 NIR_OP_IS_COMMUTATIVE 732 }, 733 { 734 .name = "fdot3", 735 .num_inputs = 2, 736 .output_size = 1, 737 .output_type = nir_type_float, 738 .input_sizes = { 739 3, 3 740 }, 741 .input_types = { 742 nir_type_float, nir_type_float 743 }, 744 .algebraic_properties = 745 NIR_OP_IS_COMMUTATIVE 746 }, 747 { 748 .name = "fdot4", 749 .num_inputs = 2, 750 .output_size = 1, 751 .output_type = nir_type_float, 752 .input_sizes = { 753 4, 4 754 }, 755 .input_types = { 756 nir_type_float, nir_type_float 757 }, 758 .algebraic_properties = 759 NIR_OP_IS_COMMUTATIVE 760 }, 761 { 762 .name = "fdot_replicated2", 763 .num_inputs = 2, 764 .output_size = 4, 765 .output_type = nir_type_float, 766 .input_sizes = { 767 2, 2 768 }, 769 .input_types = { 770 nir_type_float, nir_type_float 771 }, 772 .algebraic_properties = 773 NIR_OP_IS_COMMUTATIVE 774 }, 775 { 776 .name = "fdot_replicated3", 777 .num_inputs = 2, 778 .output_size = 4, 779 .output_type = nir_type_float, 780 .input_sizes = { 781 3, 3 782 }, 783 .input_types = { 784 nir_type_float, nir_type_float 785 }, 786 .algebraic_properties = 787 NIR_OP_IS_COMMUTATIVE 788 }, 789 { 790 .name = "fdot_replicated4", 791 .num_inputs = 2, 792 .output_size = 4, 793 .output_type = nir_type_float, 794 .input_sizes = { 795 4, 4 796 }, 797 .input_types = { 798 nir_type_float, nir_type_float 799 }, 800 .algebraic_properties = 801 NIR_OP_IS_COMMUTATIVE 802 }, 803 { 804 .name = "fdph", 805 .num_inputs = 2, 806 .output_size = 1, 807 .output_type = nir_type_float, 808 .input_sizes = { 809 3, 4 810 }, 811 .input_types = { 812 nir_type_float, nir_type_float 813 }, 814 .algebraic_properties = 815 0 816 }, 817 { 818 .name = "fdph_replicated", 819 .num_inputs = 2, 820 .output_size = 4, 821 .output_type = nir_type_float, 822 .input_sizes = { 823 3, 4 824 }, 825 .input_types = { 826 nir_type_float, nir_type_float 827 }, 828 .algebraic_properties = 829 0 830 }, 831 { 832 .name = "feq", 833 .num_inputs = 2, 834 .output_size = 0, 835 .output_type = nir_type_bool32, 836 .input_sizes = { 837 0, 0 838 }, 839 .input_types = { 840 nir_type_float, nir_type_float 841 }, 842 .algebraic_properties = 843 NIR_OP_IS_COMMUTATIVE 844 }, 845 { 846 .name = "fexp2", 847 .num_inputs = 1, 848 .output_size = 0, 849 .output_type = nir_type_float, 850 .input_sizes = { 851 0 852 }, 853 .input_types = { 854 nir_type_float 855 }, 856 .algebraic_properties = 857 0 858 }, 859 { 860 .name = "ffloor", 861 .num_inputs = 1, 862 .output_size = 0, 863 .output_type = nir_type_float, 864 .input_sizes = { 865 0 866 }, 867 .input_types = { 868 nir_type_float 869 }, 870 .algebraic_properties = 871 0 872 }, 873 { 874 .name = "ffma", 875 .num_inputs = 3, 876 .output_size = 0, 877 .output_type = nir_type_float, 878 .input_sizes = { 879 0, 0, 0 880 }, 881 .input_types = { 882 nir_type_float, nir_type_float, nir_type_float 883 }, 884 .algebraic_properties = 885 0 886 }, 887 { 888 .name = "ffract", 889 .num_inputs = 1, 890 .output_size = 0, 891 .output_type = nir_type_float, 892 .input_sizes = { 893 0 894 }, 895 .input_types = { 896 nir_type_float 897 }, 898 .algebraic_properties = 899 0 900 }, 901 { 902 .name = "fge", 903 .num_inputs = 2, 904 .output_size = 0, 905 .output_type = nir_type_bool32, 906 .input_sizes = { 907 0, 0 908 }, 909 .input_types = { 910 nir_type_float, nir_type_float 911 }, 912 .algebraic_properties = 913 0 914 }, 915 { 916 .name = "find_lsb", 917 .num_inputs = 1, 918 .output_size = 0, 919 .output_type = nir_type_int32, 920 .input_sizes = { 921 0 922 }, 923 .input_types = { 924 nir_type_int32 925 }, 926 .algebraic_properties = 927 0 928 }, 929 { 930 .name = "flog2", 931 .num_inputs = 1, 932 .output_size = 0, 933 .output_type = nir_type_float, 934 .input_sizes = { 935 0 936 }, 937 .input_types = { 938 nir_type_float 939 }, 940 .algebraic_properties = 941 0 942 }, 943 { 944 .name = "flrp", 945 .num_inputs = 3, 946 .output_size = 0, 947 .output_type = nir_type_float, 948 .input_sizes = { 949 0, 0, 0 950 }, 951 .input_types = { 952 nir_type_float, nir_type_float, nir_type_float 953 }, 954 .algebraic_properties = 955 0 956 }, 957 { 958 .name = "flt", 959 .num_inputs = 2, 960 .output_size = 0, 961 .output_type = nir_type_bool32, 962 .input_sizes = { 963 0, 0 964 }, 965 .input_types = { 966 nir_type_float, nir_type_float 967 }, 968 .algebraic_properties = 969 0 970 }, 971 { 972 .name = "fmax", 973 .num_inputs = 2, 974 .output_size = 0, 975 .output_type = nir_type_float, 976 .input_sizes = { 977 0, 0 978 }, 979 .input_types = { 980 nir_type_float, nir_type_float 981 }, 982 .algebraic_properties = 983 0 984 }, 985 { 986 .name = "fmin", 987 .num_inputs = 2, 988 .output_size = 0, 989 .output_type = nir_type_float, 990 .input_sizes = { 991 0, 0 992 }, 993 .input_types = { 994 nir_type_float, nir_type_float 995 }, 996 .algebraic_properties = 997 0 998 }, 999 { 1000 .name = "fmod", 1001 .num_inputs = 2, 1002 .output_size = 0, 1003 .output_type = nir_type_float, 1004 .input_sizes = { 1005 0, 0 1006 }, 1007 .input_types = { 1008 nir_type_float, nir_type_float 1009 }, 1010 .algebraic_properties = 1011 0 1012 }, 1013 { 1014 .name = "fmov", 1015 .num_inputs = 1, 1016 .output_size = 0, 1017 .output_type = nir_type_float, 1018 .input_sizes = { 1019 0 1020 }, 1021 .input_types = { 1022 nir_type_float 1023 }, 1024 .algebraic_properties = 1025 0 1026 }, 1027 { 1028 .name = "fmul", 1029 .num_inputs = 2, 1030 .output_size = 0, 1031 .output_type = nir_type_float, 1032 .input_sizes = { 1033 0, 0 1034 }, 1035 .input_types = { 1036 nir_type_float, nir_type_float 1037 }, 1038 .algebraic_properties = 1039 NIR_OP_IS_COMMUTATIVE | NIR_OP_IS_ASSOCIATIVE 1040 }, 1041 { 1042 .name = "fne", 1043 .num_inputs = 2, 1044 .output_size = 0, 1045 .output_type = nir_type_bool32, 1046 .input_sizes = { 1047 0, 0 1048 }, 1049 .input_types = { 1050 nir_type_float, nir_type_float 1051 }, 1052 .algebraic_properties = 1053 NIR_OP_IS_COMMUTATIVE 1054 }, 1055 { 1056 .name = "fneg", 1057 .num_inputs = 1, 1058 .output_size = 0, 1059 .output_type = nir_type_float, 1060 .input_sizes = { 1061 0 1062 }, 1063 .input_types = { 1064 nir_type_float 1065 }, 1066 .algebraic_properties = 1067 0 1068 }, 1069 { 1070 .name = "fnoise1_1", 1071 .num_inputs = 1, 1072 .output_size = 1, 1073 .output_type = nir_type_float, 1074 .input_sizes = { 1075 1 1076 }, 1077 .input_types = { 1078 nir_type_float 1079 }, 1080 .algebraic_properties = 1081 0 1082 }, 1083 { 1084 .name = "fnoise1_2", 1085 .num_inputs = 1, 1086 .output_size = 1, 1087 .output_type = nir_type_float, 1088 .input_sizes = { 1089 2 1090 }, 1091 .input_types = { 1092 nir_type_float 1093 }, 1094 .algebraic_properties = 1095 0 1096 }, 1097 { 1098 .name = "fnoise1_3", 1099 .num_inputs = 1, 1100 .output_size = 1, 1101 .output_type = nir_type_float, 1102 .input_sizes = { 1103 3 1104 }, 1105 .input_types = { 1106 nir_type_float 1107 }, 1108 .algebraic_properties = 1109 0 1110 }, 1111 { 1112 .name = "fnoise1_4", 1113 .num_inputs = 1, 1114 .output_size = 1, 1115 .output_type = nir_type_float, 1116 .input_sizes = { 1117 4 1118 }, 1119 .input_types = { 1120 nir_type_float 1121 }, 1122 .algebraic_properties = 1123 0 1124 }, 1125 { 1126 .name = "fnoise2_1", 1127 .num_inputs = 1, 1128 .output_size = 2, 1129 .output_type = nir_type_float, 1130 .input_sizes = { 1131 1 1132 }, 1133 .input_types = { 1134 nir_type_float 1135 }, 1136 .algebraic_properties = 1137 0 1138 }, 1139 { 1140 .name = "fnoise2_2", 1141 .num_inputs = 1, 1142 .output_size = 2, 1143 .output_type = nir_type_float, 1144 .input_sizes = { 1145 2 1146 }, 1147 .input_types = { 1148 nir_type_float 1149 }, 1150 .algebraic_properties = 1151 0 1152 }, 1153 { 1154 .name = "fnoise2_3", 1155 .num_inputs = 1, 1156 .output_size = 2, 1157 .output_type = nir_type_float, 1158 .input_sizes = { 1159 3 1160 }, 1161 .input_types = { 1162 nir_type_float 1163 }, 1164 .algebraic_properties = 1165 0 1166 }, 1167 { 1168 .name = "fnoise2_4", 1169 .num_inputs = 1, 1170 .output_size = 2, 1171 .output_type = nir_type_float, 1172 .input_sizes = { 1173 4 1174 }, 1175 .input_types = { 1176 nir_type_float 1177 }, 1178 .algebraic_properties = 1179 0 1180 }, 1181 { 1182 .name = "fnoise3_1", 1183 .num_inputs = 1, 1184 .output_size = 3, 1185 .output_type = nir_type_float, 1186 .input_sizes = { 1187 1 1188 }, 1189 .input_types = { 1190 nir_type_float 1191 }, 1192 .algebraic_properties = 1193 0 1194 }, 1195 { 1196 .name = "fnoise3_2", 1197 .num_inputs = 1, 1198 .output_size = 3, 1199 .output_type = nir_type_float, 1200 .input_sizes = { 1201 2 1202 }, 1203 .input_types = { 1204 nir_type_float 1205 }, 1206 .algebraic_properties = 1207 0 1208 }, 1209 { 1210 .name = "fnoise3_3", 1211 .num_inputs = 1, 1212 .output_size = 3, 1213 .output_type = nir_type_float, 1214 .input_sizes = { 1215 3 1216 }, 1217 .input_types = { 1218 nir_type_float 1219 }, 1220 .algebraic_properties = 1221 0 1222 }, 1223 { 1224 .name = "fnoise3_4", 1225 .num_inputs = 1, 1226 .output_size = 3, 1227 .output_type = nir_type_float, 1228 .input_sizes = { 1229 4 1230 }, 1231 .input_types = { 1232 nir_type_float 1233 }, 1234 .algebraic_properties = 1235 0 1236 }, 1237 { 1238 .name = "fnoise4_1", 1239 .num_inputs = 1, 1240 .output_size = 4, 1241 .output_type = nir_type_float, 1242 .input_sizes = { 1243 1 1244 }, 1245 .input_types = { 1246 nir_type_float 1247 }, 1248 .algebraic_properties = 1249 0 1250 }, 1251 { 1252 .name = "fnoise4_2", 1253 .num_inputs = 1, 1254 .output_size = 4, 1255 .output_type = nir_type_float, 1256 .input_sizes = { 1257 2 1258 }, 1259 .input_types = { 1260 nir_type_float 1261 }, 1262 .algebraic_properties = 1263 0 1264 }, 1265 { 1266 .name = "fnoise4_3", 1267 .num_inputs = 1, 1268 .output_size = 4, 1269 .output_type = nir_type_float, 1270 .input_sizes = { 1271 3 1272 }, 1273 .input_types = { 1274 nir_type_float 1275 }, 1276 .algebraic_properties = 1277 0 1278 }, 1279 { 1280 .name = "fnoise4_4", 1281 .num_inputs = 1, 1282 .output_size = 4, 1283 .output_type = nir_type_float, 1284 .input_sizes = { 1285 4 1286 }, 1287 .input_types = { 1288 nir_type_float 1289 }, 1290 .algebraic_properties = 1291 0 1292 }, 1293 { 1294 .name = "fnot", 1295 .num_inputs = 1, 1296 .output_size = 0, 1297 .output_type = nir_type_float, 1298 .input_sizes = { 1299 0 1300 }, 1301 .input_types = { 1302 nir_type_float 1303 }, 1304 .algebraic_properties = 1305 0 1306 }, 1307 { 1308 .name = "for", 1309 .num_inputs = 2, 1310 .output_size = 0, 1311 .output_type = nir_type_float32, 1312 .input_sizes = { 1313 0, 0 1314 }, 1315 .input_types = { 1316 nir_type_float32, nir_type_float32 1317 }, 1318 .algebraic_properties = 1319 NIR_OP_IS_COMMUTATIVE 1320 }, 1321 { 1322 .name = "fpow", 1323 .num_inputs = 2, 1324 .output_size = 0, 1325 .output_type = nir_type_float, 1326 .input_sizes = { 1327 0, 0 1328 }, 1329 .input_types = { 1330 nir_type_float, nir_type_float 1331 }, 1332 .algebraic_properties = 1333 0 1334 }, 1335 { 1336 .name = "fquantize2f16", 1337 .num_inputs = 1, 1338 .output_size = 0, 1339 .output_type = nir_type_float, 1340 .input_sizes = { 1341 0 1342 }, 1343 .input_types = { 1344 nir_type_float 1345 }, 1346 .algebraic_properties = 1347 0 1348 }, 1349 { 1350 .name = "frcp", 1351 .num_inputs = 1, 1352 .output_size = 0, 1353 .output_type = nir_type_float, 1354 .input_sizes = { 1355 0 1356 }, 1357 .input_types = { 1358 nir_type_float 1359 }, 1360 .algebraic_properties = 1361 0 1362 }, 1363 { 1364 .name = "frem", 1365 .num_inputs = 2, 1366 .output_size = 0, 1367 .output_type = nir_type_float, 1368 .input_sizes = { 1369 0, 0 1370 }, 1371 .input_types = { 1372 nir_type_float, nir_type_float 1373 }, 1374 .algebraic_properties = 1375 0 1376 }, 1377 { 1378 .name = "fround_even", 1379 .num_inputs = 1, 1380 .output_size = 0, 1381 .output_type = nir_type_float, 1382 .input_sizes = { 1383 0 1384 }, 1385 .input_types = { 1386 nir_type_float 1387 }, 1388 .algebraic_properties = 1389 0 1390 }, 1391 { 1392 .name = "frsq", 1393 .num_inputs = 1, 1394 .output_size = 0, 1395 .output_type = nir_type_float, 1396 .input_sizes = { 1397 0 1398 }, 1399 .input_types = { 1400 nir_type_float 1401 }, 1402 .algebraic_properties = 1403 0 1404 }, 1405 { 1406 .name = "fsat", 1407 .num_inputs = 1, 1408 .output_size = 0, 1409 .output_type = nir_type_float, 1410 .input_sizes = { 1411 0 1412 }, 1413 .input_types = { 1414 nir_type_float 1415 }, 1416 .algebraic_properties = 1417 0 1418 }, 1419 { 1420 .name = "fsign", 1421 .num_inputs = 1, 1422 .output_size = 0, 1423 .output_type = nir_type_float, 1424 .input_sizes = { 1425 0 1426 }, 1427 .input_types = { 1428 nir_type_float 1429 }, 1430 .algebraic_properties = 1431 0 1432 }, 1433 { 1434 .name = "fsin", 1435 .num_inputs = 1, 1436 .output_size = 0, 1437 .output_type = nir_type_float, 1438 .input_sizes = { 1439 0 1440 }, 1441 .input_types = { 1442 nir_type_float 1443 }, 1444 .algebraic_properties = 1445 0 1446 }, 1447 { 1448 .name = "fsqrt", 1449 .num_inputs = 1, 1450 .output_size = 0, 1451 .output_type = nir_type_float, 1452 .input_sizes = { 1453 0 1454 }, 1455 .input_types = { 1456 nir_type_float 1457 }, 1458 .algebraic_properties = 1459 0 1460 }, 1461 { 1462 .name = "fsub", 1463 .num_inputs = 2, 1464 .output_size = 0, 1465 .output_type = nir_type_float, 1466 .input_sizes = { 1467 0, 0 1468 }, 1469 .input_types = { 1470 nir_type_float, nir_type_float 1471 }, 1472 .algebraic_properties = 1473 0 1474 }, 1475 { 1476 .name = "ftrunc", 1477 .num_inputs = 1, 1478 .output_size = 0, 1479 .output_type = nir_type_float, 1480 .input_sizes = { 1481 0 1482 }, 1483 .input_types = { 1484 nir_type_float 1485 }, 1486 .algebraic_properties = 1487 0 1488 }, 1489 { 1490 .name = "fxor", 1491 .num_inputs = 2, 1492 .output_size = 0, 1493 .output_type = nir_type_float32, 1494 .input_sizes = { 1495 0, 0 1496 }, 1497 .input_types = { 1498 nir_type_float32, nir_type_float32 1499 }, 1500 .algebraic_properties = 1501 NIR_OP_IS_COMMUTATIVE 1502 }, 1503 { 1504 .name = "i2b", 1505 .num_inputs = 1, 1506 .output_size = 0, 1507 .output_type = nir_type_bool32, 1508 .input_sizes = { 1509 0 1510 }, 1511 .input_types = { 1512 nir_type_int32 1513 }, 1514 .algebraic_properties = 1515 0 1516 }, 1517 { 1518 .name = "i2d", 1519 .num_inputs = 1, 1520 .output_size = 0, 1521 .output_type = nir_type_float64, 1522 .input_sizes = { 1523 0 1524 }, 1525 .input_types = { 1526 nir_type_int32 1527 }, 1528 .algebraic_properties = 1529 0 1530 }, 1531 { 1532 .name = "i2f", 1533 .num_inputs = 1, 1534 .output_size = 0, 1535 .output_type = nir_type_float32, 1536 .input_sizes = { 1537 0 1538 }, 1539 .input_types = { 1540 nir_type_int32 1541 }, 1542 .algebraic_properties = 1543 0 1544 }, 1545 { 1546 .name = "iabs", 1547 .num_inputs = 1, 1548 .output_size = 0, 1549 .output_type = nir_type_int, 1550 .input_sizes = { 1551 0 1552 }, 1553 .input_types = { 1554 nir_type_int 1555 }, 1556 .algebraic_properties = 1557 0 1558 }, 1559 { 1560 .name = "iadd", 1561 .num_inputs = 2, 1562 .output_size = 0, 1563 .output_type = nir_type_int, 1564 .input_sizes = { 1565 0, 0 1566 }, 1567 .input_types = { 1568 nir_type_int, nir_type_int 1569 }, 1570 .algebraic_properties = 1571 NIR_OP_IS_COMMUTATIVE | NIR_OP_IS_ASSOCIATIVE 1572 }, 1573 { 1574 .name = "iand", 1575 .num_inputs = 2, 1576 .output_size = 0, 1577 .output_type = nir_type_uint, 1578 .input_sizes = { 1579 0, 0 1580 }, 1581 .input_types = { 1582 nir_type_uint, nir_type_uint 1583 }, 1584 .algebraic_properties = 1585 NIR_OP_IS_COMMUTATIVE | NIR_OP_IS_ASSOCIATIVE 1586 }, 1587 { 1588 .name = "ibfe", 1589 .num_inputs = 3, 1590 .output_size = 0, 1591 .output_type = nir_type_int32, 1592 .input_sizes = { 1593 0, 0, 0 1594 }, 1595 .input_types = { 1596 nir_type_int32, nir_type_int32, nir_type_int32 1597 }, 1598 .algebraic_properties = 1599 0 1600 }, 1601 { 1602 .name = "ibitfield_extract", 1603 .num_inputs = 3, 1604 .output_size = 0, 1605 .output_type = nir_type_int32, 1606 .input_sizes = { 1607 0, 0, 0 1608 }, 1609 .input_types = { 1610 nir_type_int32, nir_type_int32, nir_type_int32 1611 }, 1612 .algebraic_properties = 1613 0 1614 }, 1615 { 1616 .name = "idiv", 1617 .num_inputs = 2, 1618 .output_size = 0, 1619 .output_type = nir_type_int, 1620 .input_sizes = { 1621 0, 0 1622 }, 1623 .input_types = { 1624 nir_type_int, nir_type_int 1625 }, 1626 .algebraic_properties = 1627 0 1628 }, 1629 { 1630 .name = "ieq", 1631 .num_inputs = 2, 1632 .output_size = 0, 1633 .output_type = nir_type_bool32, 1634 .input_sizes = { 1635 0, 0 1636 }, 1637 .input_types = { 1638 nir_type_int, nir_type_int 1639 }, 1640 .algebraic_properties = 1641 NIR_OP_IS_COMMUTATIVE 1642 }, 1643 { 1644 .name = "ifind_msb", 1645 .num_inputs = 1, 1646 .output_size = 0, 1647 .output_type = nir_type_int32, 1648 .input_sizes = { 1649 0 1650 }, 1651 .input_types = { 1652 nir_type_int32 1653 }, 1654 .algebraic_properties = 1655 0 1656 }, 1657 { 1658 .name = "ige", 1659 .num_inputs = 2, 1660 .output_size = 0, 1661 .output_type = nir_type_bool32, 1662 .input_sizes = { 1663 0, 0 1664 }, 1665 .input_types = { 1666 nir_type_int, nir_type_int 1667 }, 1668 .algebraic_properties = 1669 0 1670 }, 1671 { 1672 .name = "ilt", 1673 .num_inputs = 2, 1674 .output_size = 0, 1675 .output_type = nir_type_bool32, 1676 .input_sizes = { 1677 0, 0 1678 }, 1679 .input_types = { 1680 nir_type_int, nir_type_int 1681 }, 1682 .algebraic_properties = 1683 0 1684 }, 1685 { 1686 .name = "imax", 1687 .num_inputs = 2, 1688 .output_size = 0, 1689 .output_type = nir_type_int, 1690 .input_sizes = { 1691 0, 0 1692 }, 1693 .input_types = { 1694 nir_type_int, nir_type_int 1695 }, 1696 .algebraic_properties = 1697 NIR_OP_IS_COMMUTATIVE | NIR_OP_IS_ASSOCIATIVE 1698 }, 1699 { 1700 .name = "imin", 1701 .num_inputs = 2, 1702 .output_size = 0, 1703 .output_type = nir_type_int, 1704 .input_sizes = { 1705 0, 0 1706 }, 1707 .input_types = { 1708 nir_type_int, nir_type_int 1709 }, 1710 .algebraic_properties = 1711 NIR_OP_IS_COMMUTATIVE | NIR_OP_IS_ASSOCIATIVE 1712 }, 1713 { 1714 .name = "imod", 1715 .num_inputs = 2, 1716 .output_size = 0, 1717 .output_type = nir_type_int, 1718 .input_sizes = { 1719 0, 0 1720 }, 1721 .input_types = { 1722 nir_type_int, nir_type_int 1723 }, 1724 .algebraic_properties = 1725 0 1726 }, 1727 { 1728 .name = "imov", 1729 .num_inputs = 1, 1730 .output_size = 0, 1731 .output_type = nir_type_int, 1732 .input_sizes = { 1733 0 1734 }, 1735 .input_types = { 1736 nir_type_int 1737 }, 1738 .algebraic_properties = 1739 0 1740 }, 1741 { 1742 .name = "imul", 1743 .num_inputs = 2, 1744 .output_size = 0, 1745 .output_type = nir_type_int, 1746 .input_sizes = { 1747 0, 0 1748 }, 1749 .input_types = { 1750 nir_type_int, nir_type_int 1751 }, 1752 .algebraic_properties = 1753 NIR_OP_IS_COMMUTATIVE | NIR_OP_IS_ASSOCIATIVE 1754 }, 1755 { 1756 .name = "imul_high", 1757 .num_inputs = 2, 1758 .output_size = 0, 1759 .output_type = nir_type_int32, 1760 .input_sizes = { 1761 0, 0 1762 }, 1763 .input_types = { 1764 nir_type_int32, nir_type_int32 1765 }, 1766 .algebraic_properties = 1767 NIR_OP_IS_COMMUTATIVE 1768 }, 1769 { 1770 .name = "ine", 1771 .num_inputs = 2, 1772 .output_size = 0, 1773 .output_type = nir_type_bool32, 1774 .input_sizes = { 1775 0, 0 1776 }, 1777 .input_types = { 1778 nir_type_int, nir_type_int 1779 }, 1780 .algebraic_properties = 1781 NIR_OP_IS_COMMUTATIVE 1782 }, 1783 { 1784 .name = "ineg", 1785 .num_inputs = 1, 1786 .output_size = 0, 1787 .output_type = nir_type_int, 1788 .input_sizes = { 1789 0 1790 }, 1791 .input_types = { 1792 nir_type_int 1793 }, 1794 .algebraic_properties = 1795 0 1796 }, 1797 { 1798 .name = "inot", 1799 .num_inputs = 1, 1800 .output_size = 0, 1801 .output_type = nir_type_int, 1802 .input_sizes = { 1803 0 1804 }, 1805 .input_types = { 1806 nir_type_int 1807 }, 1808 .algebraic_properties = 1809 0 1810 }, 1811 { 1812 .name = "ior", 1813 .num_inputs = 2, 1814 .output_size = 0, 1815 .output_type = nir_type_uint, 1816 .input_sizes = { 1817 0, 0 1818 }, 1819 .input_types = { 1820 nir_type_uint, nir_type_uint 1821 }, 1822 .algebraic_properties = 1823 NIR_OP_IS_COMMUTATIVE | NIR_OP_IS_ASSOCIATIVE 1824 }, 1825 { 1826 .name = "irem", 1827 .num_inputs = 2, 1828 .output_size = 0, 1829 .output_type = nir_type_int, 1830 .input_sizes = { 1831 0, 0 1832 }, 1833 .input_types = { 1834 nir_type_int, nir_type_int 1835 }, 1836 .algebraic_properties = 1837 0 1838 }, 1839 { 1840 .name = "ishl", 1841 .num_inputs = 2, 1842 .output_size = 0, 1843 .output_type = nir_type_int, 1844 .input_sizes = { 1845 0, 0 1846 }, 1847 .input_types = { 1848 nir_type_int, nir_type_int 1849 }, 1850 .algebraic_properties = 1851 0 1852 }, 1853 { 1854 .name = "ishr", 1855 .num_inputs = 2, 1856 .output_size = 0, 1857 .output_type = nir_type_int, 1858 .input_sizes = { 1859 0, 0 1860 }, 1861 .input_types = { 1862 nir_type_int, nir_type_int 1863 }, 1864 .algebraic_properties = 1865 0 1866 }, 1867 { 1868 .name = "isign", 1869 .num_inputs = 1, 1870 .output_size = 0, 1871 .output_type = nir_type_int, 1872 .input_sizes = { 1873 0 1874 }, 1875 .input_types = { 1876 nir_type_int 1877 }, 1878 .algebraic_properties = 1879 0 1880 }, 1881 { 1882 .name = "isub", 1883 .num_inputs = 2, 1884 .output_size = 0, 1885 .output_type = nir_type_int, 1886 .input_sizes = { 1887 0, 0 1888 }, 1889 .input_types = { 1890 nir_type_int, nir_type_int 1891 }, 1892 .algebraic_properties = 1893 0 1894 }, 1895 { 1896 .name = "ixor", 1897 .num_inputs = 2, 1898 .output_size = 0, 1899 .output_type = nir_type_uint, 1900 .input_sizes = { 1901 0, 0 1902 }, 1903 .input_types = { 1904 nir_type_uint, nir_type_uint 1905 }, 1906 .algebraic_properties = 1907 NIR_OP_IS_COMMUTATIVE | NIR_OP_IS_ASSOCIATIVE 1908 }, 1909 { 1910 .name = "ldexp", 1911 .num_inputs = 2, 1912 .output_size = 0, 1913 .output_type = nir_type_float, 1914 .input_sizes = { 1915 0, 0 1916 }, 1917 .input_types = { 1918 nir_type_float, nir_type_int32 1919 }, 1920 .algebraic_properties = 1921 0 1922 }, 1923 { 1924 .name = "pack_double_2x32", 1925 .num_inputs = 1, 1926 .output_size = 1, 1927 .output_type = nir_type_uint64, 1928 .input_sizes = { 1929 2 1930 }, 1931 .input_types = { 1932 nir_type_uint32 1933 }, 1934 .algebraic_properties = 1935 0 1936 }, 1937 { 1938 .name = "pack_double_2x32_split", 1939 .num_inputs = 2, 1940 .output_size = 0, 1941 .output_type = nir_type_uint64, 1942 .input_sizes = { 1943 0, 0 1944 }, 1945 .input_types = { 1946 nir_type_uint32, nir_type_uint32 1947 }, 1948 .algebraic_properties = 1949 0 1950 }, 1951 { 1952 .name = "pack_half_2x16", 1953 .num_inputs = 1, 1954 .output_size = 1, 1955 .output_type = nir_type_uint32, 1956 .input_sizes = { 1957 2 1958 }, 1959 .input_types = { 1960 nir_type_float32 1961 }, 1962 .algebraic_properties = 1963 0 1964 }, 1965 { 1966 .name = "pack_half_2x16_split", 1967 .num_inputs = 2, 1968 .output_size = 1, 1969 .output_type = nir_type_uint32, 1970 .input_sizes = { 1971 1, 1 1972 }, 1973 .input_types = { 1974 nir_type_float32, nir_type_float32 1975 }, 1976 .algebraic_properties = 1977 0 1978 }, 1979 { 1980 .name = "pack_snorm_2x16", 1981 .num_inputs = 1, 1982 .output_size = 1, 1983 .output_type = nir_type_uint32, 1984 .input_sizes = { 1985 2 1986 }, 1987 .input_types = { 1988 nir_type_float32 1989 }, 1990 .algebraic_properties = 1991 0 1992 }, 1993 { 1994 .name = "pack_snorm_4x8", 1995 .num_inputs = 1, 1996 .output_size = 1, 1997 .output_type = nir_type_uint32, 1998 .input_sizes = { 1999 4 2000 }, 2001 .input_types = { 2002 nir_type_float32 2003 }, 2004 .algebraic_properties = 2005 0 2006 }, 2007 { 2008 .name = "pack_unorm_2x16", 2009 .num_inputs = 1, 2010 .output_size = 1, 2011 .output_type = nir_type_uint32, 2012 .input_sizes = { 2013 2 2014 }, 2015 .input_types = { 2016 nir_type_float32 2017 }, 2018 .algebraic_properties = 2019 0 2020 }, 2021 { 2022 .name = "pack_unorm_4x8", 2023 .num_inputs = 1, 2024 .output_size = 1, 2025 .output_type = nir_type_uint32, 2026 .input_sizes = { 2027 4 2028 }, 2029 .input_types = { 2030 nir_type_float32 2031 }, 2032 .algebraic_properties = 2033 0 2034 }, 2035 { 2036 .name = "pack_uvec2_to_uint", 2037 .num_inputs = 1, 2038 .output_size = 1, 2039 .output_type = nir_type_uint32, 2040 .input_sizes = { 2041 2 2042 }, 2043 .input_types = { 2044 nir_type_uint32 2045 }, 2046 .algebraic_properties = 2047 0 2048 }, 2049 { 2050 .name = "pack_uvec4_to_uint", 2051 .num_inputs = 1, 2052 .output_size = 1, 2053 .output_type = nir_type_uint32, 2054 .input_sizes = { 2055 4 2056 }, 2057 .input_types = { 2058 nir_type_uint32 2059 }, 2060 .algebraic_properties = 2061 0 2062 }, 2063 { 2064 .name = "seq", 2065 .num_inputs = 2, 2066 .output_size = 0, 2067 .output_type = nir_type_float32, 2068 .input_sizes = { 2069 0, 0 2070 }, 2071 .input_types = { 2072 nir_type_float32, nir_type_float32 2073 }, 2074 .algebraic_properties = 2075 NIR_OP_IS_COMMUTATIVE 2076 }, 2077 { 2078 .name = "sge", 2079 .num_inputs = 2, 2080 .output_size = 0, 2081 .output_type = nir_type_float32, 2082 .input_sizes = { 2083 0, 0 2084 }, 2085 .input_types = { 2086 nir_type_float32, nir_type_float32 2087 }, 2088 .algebraic_properties = 2089 0 2090 }, 2091 { 2092 .name = "slt", 2093 .num_inputs = 2, 2094 .output_size = 0, 2095 .output_type = nir_type_float32, 2096 .input_sizes = { 2097 0, 0 2098 }, 2099 .input_types = { 2100 nir_type_float32, nir_type_float32 2101 }, 2102 .algebraic_properties = 2103 0 2104 }, 2105 { 2106 .name = "sne", 2107 .num_inputs = 2, 2108 .output_size = 0, 2109 .output_type = nir_type_float32, 2110 .input_sizes = { 2111 0, 0 2112 }, 2113 .input_types = { 2114 nir_type_float32, nir_type_float32 2115 }, 2116 .algebraic_properties = 2117 NIR_OP_IS_COMMUTATIVE 2118 }, 2119 { 2120 .name = "u2d", 2121 .num_inputs = 1, 2122 .output_size = 0, 2123 .output_type = nir_type_float64, 2124 .input_sizes = { 2125 0 2126 }, 2127 .input_types = { 2128 nir_type_uint32 2129 }, 2130 .algebraic_properties = 2131 0 2132 }, 2133 { 2134 .name = "u2f", 2135 .num_inputs = 1, 2136 .output_size = 0, 2137 .output_type = nir_type_float32, 2138 .input_sizes = { 2139 0 2140 }, 2141 .input_types = { 2142 nir_type_uint32 2143 }, 2144 .algebraic_properties = 2145 0 2146 }, 2147 { 2148 .name = "uadd_carry", 2149 .num_inputs = 2, 2150 .output_size = 0, 2151 .output_type = nir_type_uint, 2152 .input_sizes = { 2153 0, 0 2154 }, 2155 .input_types = { 2156 nir_type_uint, nir_type_uint 2157 }, 2158 .algebraic_properties = 2159 NIR_OP_IS_COMMUTATIVE 2160 }, 2161 { 2162 .name = "ubfe", 2163 .num_inputs = 3, 2164 .output_size = 0, 2165 .output_type = nir_type_uint32, 2166 .input_sizes = { 2167 0, 0, 0 2168 }, 2169 .input_types = { 2170 nir_type_uint32, nir_type_int32, nir_type_int32 2171 }, 2172 .algebraic_properties = 2173 0 2174 }, 2175 { 2176 .name = "ubitfield_extract", 2177 .num_inputs = 3, 2178 .output_size = 0, 2179 .output_type = nir_type_uint32, 2180 .input_sizes = { 2181 0, 0, 0 2182 }, 2183 .input_types = { 2184 nir_type_uint32, nir_type_int32, nir_type_int32 2185 }, 2186 .algebraic_properties = 2187 0 2188 }, 2189 { 2190 .name = "udiv", 2191 .num_inputs = 2, 2192 .output_size = 0, 2193 .output_type = nir_type_uint, 2194 .input_sizes = { 2195 0, 0 2196 }, 2197 .input_types = { 2198 nir_type_uint, nir_type_uint 2199 }, 2200 .algebraic_properties = 2201 0 2202 }, 2203 { 2204 .name = "ufind_msb", 2205 .num_inputs = 1, 2206 .output_size = 0, 2207 .output_type = nir_type_int32, 2208 .input_sizes = { 2209 0 2210 }, 2211 .input_types = { 2212 nir_type_uint32 2213 }, 2214 .algebraic_properties = 2215 0 2216 }, 2217 { 2218 .name = "uge", 2219 .num_inputs = 2, 2220 .output_size = 0, 2221 .output_type = nir_type_bool32, 2222 .input_sizes = { 2223 0, 0 2224 }, 2225 .input_types = { 2226 nir_type_uint, nir_type_uint 2227 }, 2228 .algebraic_properties = 2229 0 2230 }, 2231 { 2232 .name = "ult", 2233 .num_inputs = 2, 2234 .output_size = 0, 2235 .output_type = nir_type_bool32, 2236 .input_sizes = { 2237 0, 0 2238 }, 2239 .input_types = { 2240 nir_type_uint, nir_type_uint 2241 }, 2242 .algebraic_properties = 2243 0 2244 }, 2245 { 2246 .name = "umax", 2247 .num_inputs = 2, 2248 .output_size = 0, 2249 .output_type = nir_type_uint, 2250 .input_sizes = { 2251 0, 0 2252 }, 2253 .input_types = { 2254 nir_type_uint, nir_type_uint 2255 }, 2256 .algebraic_properties = 2257 NIR_OP_IS_COMMUTATIVE | NIR_OP_IS_ASSOCIATIVE 2258 }, 2259 { 2260 .name = "umax_4x8", 2261 .num_inputs = 2, 2262 .output_size = 0, 2263 .output_type = nir_type_int32, 2264 .input_sizes = { 2265 0, 0 2266 }, 2267 .input_types = { 2268 nir_type_int32, nir_type_int32 2269 }, 2270 .algebraic_properties = 2271 NIR_OP_IS_COMMUTATIVE | NIR_OP_IS_ASSOCIATIVE 2272 }, 2273 { 2274 .name = "umin", 2275 .num_inputs = 2, 2276 .output_size = 0, 2277 .output_type = nir_type_uint, 2278 .input_sizes = { 2279 0, 0 2280 }, 2281 .input_types = { 2282 nir_type_uint, nir_type_uint 2283 }, 2284 .algebraic_properties = 2285 NIR_OP_IS_COMMUTATIVE | NIR_OP_IS_ASSOCIATIVE 2286 }, 2287 { 2288 .name = "umin_4x8", 2289 .num_inputs = 2, 2290 .output_size = 0, 2291 .output_type = nir_type_int32, 2292 .input_sizes = { 2293 0, 0 2294 }, 2295 .input_types = { 2296 nir_type_int32, nir_type_int32 2297 }, 2298 .algebraic_properties = 2299 NIR_OP_IS_COMMUTATIVE | NIR_OP_IS_ASSOCIATIVE 2300 }, 2301 { 2302 .name = "umod", 2303 .num_inputs = 2, 2304 .output_size = 0, 2305 .output_type = nir_type_uint, 2306 .input_sizes = { 2307 0, 0 2308 }, 2309 .input_types = { 2310 nir_type_uint, nir_type_uint 2311 }, 2312 .algebraic_properties = 2313 0 2314 }, 2315 { 2316 .name = "umul_high", 2317 .num_inputs = 2, 2318 .output_size = 0, 2319 .output_type = nir_type_uint32, 2320 .input_sizes = { 2321 0, 0 2322 }, 2323 .input_types = { 2324 nir_type_uint32, nir_type_uint32 2325 }, 2326 .algebraic_properties = 2327 NIR_OP_IS_COMMUTATIVE 2328 }, 2329 { 2330 .name = "umul_unorm_4x8", 2331 .num_inputs = 2, 2332 .output_size = 0, 2333 .output_type = nir_type_int32, 2334 .input_sizes = { 2335 0, 0 2336 }, 2337 .input_types = { 2338 nir_type_int32, nir_type_int32 2339 }, 2340 .algebraic_properties = 2341 NIR_OP_IS_COMMUTATIVE | NIR_OP_IS_ASSOCIATIVE 2342 }, 2343 { 2344 .name = "unpack_double_2x32", 2345 .num_inputs = 1, 2346 .output_size = 2, 2347 .output_type = nir_type_uint32, 2348 .input_sizes = { 2349 1 2350 }, 2351 .input_types = { 2352 nir_type_uint64 2353 }, 2354 .algebraic_properties = 2355 0 2356 }, 2357 { 2358 .name = "unpack_double_2x32_split_x", 2359 .num_inputs = 1, 2360 .output_size = 0, 2361 .output_type = nir_type_uint32, 2362 .input_sizes = { 2363 0 2364 }, 2365 .input_types = { 2366 nir_type_uint64 2367 }, 2368 .algebraic_properties = 2369 0 2370 }, 2371 { 2372 .name = "unpack_double_2x32_split_y", 2373 .num_inputs = 1, 2374 .output_size = 0, 2375 .output_type = nir_type_uint32, 2376 .input_sizes = { 2377 0 2378 }, 2379 .input_types = { 2380 nir_type_uint64 2381 }, 2382 .algebraic_properties = 2383 0 2384 }, 2385 { 2386 .name = "unpack_half_2x16", 2387 .num_inputs = 1, 2388 .output_size = 2, 2389 .output_type = nir_type_float32, 2390 .input_sizes = { 2391 1 2392 }, 2393 .input_types = { 2394 nir_type_uint32 2395 }, 2396 .algebraic_properties = 2397 0 2398 }, 2399 { 2400 .name = "unpack_half_2x16_split_x", 2401 .num_inputs = 1, 2402 .output_size = 1, 2403 .output_type = nir_type_float32, 2404 .input_sizes = { 2405 1 2406 }, 2407 .input_types = { 2408 nir_type_uint32 2409 }, 2410 .algebraic_properties = 2411 0 2412 }, 2413 { 2414 .name = "unpack_half_2x16_split_y", 2415 .num_inputs = 1, 2416 .output_size = 1, 2417 .output_type = nir_type_float32, 2418 .input_sizes = { 2419 1 2420 }, 2421 .input_types = { 2422 nir_type_uint32 2423 }, 2424 .algebraic_properties = 2425 0 2426 }, 2427 { 2428 .name = "unpack_snorm_2x16", 2429 .num_inputs = 1, 2430 .output_size = 2, 2431 .output_type = nir_type_float32, 2432 .input_sizes = { 2433 1 2434 }, 2435 .input_types = { 2436 nir_type_uint32 2437 }, 2438 .algebraic_properties = 2439 0 2440 }, 2441 { 2442 .name = "unpack_snorm_4x8", 2443 .num_inputs = 1, 2444 .output_size = 4, 2445 .output_type = nir_type_float32, 2446 .input_sizes = { 2447 1 2448 }, 2449 .input_types = { 2450 nir_type_uint32 2451 }, 2452 .algebraic_properties = 2453 0 2454 }, 2455 { 2456 .name = "unpack_unorm_2x16", 2457 .num_inputs = 1, 2458 .output_size = 2, 2459 .output_type = nir_type_float32, 2460 .input_sizes = { 2461 1 2462 }, 2463 .input_types = { 2464 nir_type_uint32 2465 }, 2466 .algebraic_properties = 2467 0 2468 }, 2469 { 2470 .name = "unpack_unorm_4x8", 2471 .num_inputs = 1, 2472 .output_size = 4, 2473 .output_type = nir_type_float32, 2474 .input_sizes = { 2475 1 2476 }, 2477 .input_types = { 2478 nir_type_uint32 2479 }, 2480 .algebraic_properties = 2481 0 2482 }, 2483 { 2484 .name = "usadd_4x8", 2485 .num_inputs = 2, 2486 .output_size = 0, 2487 .output_type = nir_type_int32, 2488 .input_sizes = { 2489 0, 0 2490 }, 2491 .input_types = { 2492 nir_type_int32, nir_type_int32 2493 }, 2494 .algebraic_properties = 2495 NIR_OP_IS_COMMUTATIVE | NIR_OP_IS_ASSOCIATIVE 2496 }, 2497 { 2498 .name = "ushr", 2499 .num_inputs = 2, 2500 .output_size = 0, 2501 .output_type = nir_type_uint, 2502 .input_sizes = { 2503 0, 0 2504 }, 2505 .input_types = { 2506 nir_type_uint, nir_type_uint 2507 }, 2508 .algebraic_properties = 2509 0 2510 }, 2511 { 2512 .name = "ussub_4x8", 2513 .num_inputs = 2, 2514 .output_size = 0, 2515 .output_type = nir_type_int32, 2516 .input_sizes = { 2517 0, 0 2518 }, 2519 .input_types = { 2520 nir_type_int32, nir_type_int32 2521 }, 2522 .algebraic_properties = 2523 0 2524 }, 2525 { 2526 .name = "usub_borrow", 2527 .num_inputs = 2, 2528 .output_size = 0, 2529 .output_type = nir_type_uint, 2530 .input_sizes = { 2531 0, 0 2532 }, 2533 .input_types = { 2534 nir_type_uint, nir_type_uint 2535 }, 2536 .algebraic_properties = 2537 0 2538 }, 2539 { 2540 .name = "vec2", 2541 .num_inputs = 2, 2542 .output_size = 2, 2543 .output_type = nir_type_uint, 2544 .input_sizes = { 2545 1, 1 2546 }, 2547 .input_types = { 2548 nir_type_uint, nir_type_uint 2549 }, 2550 .algebraic_properties = 2551 0 2552 }, 2553 { 2554 .name = "vec3", 2555 .num_inputs = 3, 2556 .output_size = 3, 2557 .output_type = nir_type_uint, 2558 .input_sizes = { 2559 1, 1, 1 2560 }, 2561 .input_types = { 2562 nir_type_uint, nir_type_uint, nir_type_uint 2563 }, 2564 .algebraic_properties = 2565 0 2566 }, 2567 { 2568 .name = "vec4", 2569 .num_inputs = 4, 2570 .output_size = 4, 2571 .output_type = nir_type_uint, 2572 .input_sizes = { 2573 1, 1, 1, 1 2574 }, 2575 .input_types = { 2576 nir_type_uint, nir_type_uint, nir_type_uint, nir_type_uint 2577 }, 2578 .algebraic_properties = 2579 0 2580 }, 2581 }; 2582 2583