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