nir_opcodes.c revision 10e230b6
1 2#include "nir.h" 3 4nir_op 5nir_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 == dst && src_base == nir_type_bool) { 15 return nir_op_imov; 16 } else if ((src_base == nir_type_int || src_base == nir_type_uint) && 17 (dst_base == nir_type_int || dst_base == nir_type_uint) && 18 src_bit_size == dst_bit_size) { 19 /* Integer <-> integer conversions with the same bit-size on both 20 * ends are just no-op moves. 21 */ 22 return nir_op_imov; 23 } 24 25 switch (src_base) { 26 case nir_type_int: 27 switch (dst_base) { 28 case nir_type_int: 29 case nir_type_uint: 30 31 switch (dst_bit_size) { 32 case 1: 33 assert(rnd == nir_rounding_mode_undef); 34 return nir_op_i2i1; 35 case 8: 36 assert(rnd == nir_rounding_mode_undef); 37 return nir_op_i2i8; 38 case 16: 39 assert(rnd == nir_rounding_mode_undef); 40 return nir_op_i2i16; 41 case 32: 42 assert(rnd == nir_rounding_mode_undef); 43 return nir_op_i2i32; 44 case 64: 45 assert(rnd == nir_rounding_mode_undef); 46 return nir_op_i2i64; 47 default: 48 unreachable("Invalid nir alu bit size"); 49 } 50 case nir_type_float: 51 switch (dst_bit_size) { 52 case 16: 53 assert(rnd == nir_rounding_mode_undef); 54 return nir_op_i2f16; 55 case 32: 56 assert(rnd == nir_rounding_mode_undef); 57 return nir_op_i2f32; 58 case 64: 59 assert(rnd == nir_rounding_mode_undef); 60 return nir_op_i2f64; 61 default: 62 unreachable("Invalid nir alu bit size"); 63 } 64 case nir_type_bool: 65 switch (dst_bit_size) { 66 case 1: 67 assert(rnd == nir_rounding_mode_undef); 68 return nir_op_i2b1; 69 case 32: 70 assert(rnd == nir_rounding_mode_undef); 71 return nir_op_i2b32; 72 default: 73 unreachable("Invalid nir alu bit size"); 74 } 75 default: 76 unreachable("Invalid nir alu base type"); 77 } 78 case nir_type_uint: 79 switch (dst_base) { 80 case nir_type_int: 81 case nir_type_uint: 82 83 switch (dst_bit_size) { 84 case 1: 85 assert(rnd == nir_rounding_mode_undef); 86 return nir_op_u2u1; 87 case 8: 88 assert(rnd == nir_rounding_mode_undef); 89 return nir_op_u2u8; 90 case 16: 91 assert(rnd == nir_rounding_mode_undef); 92 return nir_op_u2u16; 93 case 32: 94 assert(rnd == nir_rounding_mode_undef); 95 return nir_op_u2u32; 96 case 64: 97 assert(rnd == nir_rounding_mode_undef); 98 return nir_op_u2u64; 99 default: 100 unreachable("Invalid nir alu bit size"); 101 } 102 case nir_type_float: 103 switch (dst_bit_size) { 104 case 16: 105 assert(rnd == nir_rounding_mode_undef); 106 return nir_op_u2f16; 107 case 32: 108 assert(rnd == nir_rounding_mode_undef); 109 return nir_op_u2f32; 110 case 64: 111 assert(rnd == nir_rounding_mode_undef); 112 return nir_op_u2f64; 113 default: 114 unreachable("Invalid nir alu bit size"); 115 } 116 case nir_type_bool: 117 118 switch (dst_bit_size) { 119 case 1: 120 assert(rnd == nir_rounding_mode_undef); 121 return nir_op_i2b1; 122 case 32: 123 assert(rnd == nir_rounding_mode_undef); 124 return nir_op_i2b32; 125 default: 126 unreachable("Invalid nir alu bit size"); 127 } 128 default: 129 unreachable("Invalid nir alu base type"); 130 } 131 case nir_type_float: 132 switch (dst_base) { 133 case nir_type_int: 134 switch (dst_bit_size) { 135 case 1: 136 assert(rnd == nir_rounding_mode_undef); 137 return nir_op_f2i1; 138 case 8: 139 assert(rnd == nir_rounding_mode_undef); 140 return nir_op_f2i8; 141 case 16: 142 assert(rnd == nir_rounding_mode_undef); 143 return nir_op_f2i16; 144 case 32: 145 assert(rnd == nir_rounding_mode_undef); 146 return nir_op_f2i32; 147 case 64: 148 assert(rnd == nir_rounding_mode_undef); 149 return nir_op_f2i64; 150 default: 151 unreachable("Invalid nir alu bit size"); 152 } 153 case nir_type_uint: 154 switch (dst_bit_size) { 155 case 1: 156 assert(rnd == nir_rounding_mode_undef); 157 return nir_op_f2u1; 158 case 8: 159 assert(rnd == nir_rounding_mode_undef); 160 return nir_op_f2u8; 161 case 16: 162 assert(rnd == nir_rounding_mode_undef); 163 return nir_op_f2u16; 164 case 32: 165 assert(rnd == nir_rounding_mode_undef); 166 return nir_op_f2u32; 167 case 64: 168 assert(rnd == nir_rounding_mode_undef); 169 return nir_op_f2u64; 170 default: 171 unreachable("Invalid nir alu bit size"); 172 } 173 case nir_type_float: 174 switch (dst_bit_size) { 175 case 16: 176 switch(rnd) { 177 case nir_rounding_mode_rtne: 178 return nir_op_f2f16_rtne; 179 case nir_rounding_mode_rtz: 180 return nir_op_f2f16_rtz; 181 case nir_rounding_mode_undef: 182 return nir_op_f2f16; 183 default: 184 unreachable("Invalid 16-bit nir rounding mode"); 185 } 186 case 32: 187 assert(rnd == nir_rounding_mode_undef); 188 return nir_op_f2f32; 189 case 64: 190 assert(rnd == nir_rounding_mode_undef); 191 return nir_op_f2f64; 192 default: 193 unreachable("Invalid nir alu bit size"); 194 } 195 case nir_type_bool: 196 switch (dst_bit_size) { 197 case 1: 198 assert(rnd == nir_rounding_mode_undef); 199 return nir_op_f2b1; 200 case 32: 201 assert(rnd == nir_rounding_mode_undef); 202 return nir_op_f2b32; 203 default: 204 unreachable("Invalid nir alu bit size"); 205 } 206 default: 207 unreachable("Invalid nir alu base type"); 208 } 209 case nir_type_bool: 210 switch (dst_base) { 211 case nir_type_int: 212 case nir_type_uint: 213 214 switch (dst_bit_size) { 215 case 1: 216 assert(rnd == nir_rounding_mode_undef); 217 return nir_op_b2i1; 218 case 8: 219 assert(rnd == nir_rounding_mode_undef); 220 return nir_op_b2i8; 221 case 16: 222 assert(rnd == nir_rounding_mode_undef); 223 return nir_op_b2i16; 224 case 32: 225 assert(rnd == nir_rounding_mode_undef); 226 return nir_op_b2i32; 227 case 64: 228 assert(rnd == nir_rounding_mode_undef); 229 return nir_op_b2i64; 230 default: 231 unreachable("Invalid nir alu bit size"); 232 } 233 case nir_type_float: 234 switch (dst_bit_size) { 235 case 16: 236 assert(rnd == nir_rounding_mode_undef); 237 return nir_op_b2f16; 238 case 32: 239 assert(rnd == nir_rounding_mode_undef); 240 return nir_op_b2f32; 241 case 64: 242 assert(rnd == nir_rounding_mode_undef); 243 return nir_op_b2f64; 244 default: 245 unreachable("Invalid nir alu bit size"); 246 } 247 case nir_type_bool: 248 249 switch (dst_bit_size) { 250 case 1: 251 assert(rnd == nir_rounding_mode_undef); 252 return nir_op_b2i1; 253 case 8: 254 assert(rnd == nir_rounding_mode_undef); 255 return nir_op_b2i8; 256 case 16: 257 assert(rnd == nir_rounding_mode_undef); 258 return nir_op_b2i16; 259 case 32: 260 assert(rnd == nir_rounding_mode_undef); 261 return nir_op_b2i32; 262 case 64: 263 assert(rnd == nir_rounding_mode_undef); 264 return nir_op_b2i64; 265 default: 266 unreachable("Invalid nir alu bit size"); 267 } 268 default: 269 unreachable("Invalid nir alu base type"); 270 } 271 default: 272 unreachable("Invalid nir alu base type"); 273 } 274} 275 276const nir_op_info nir_op_infos[nir_num_opcodes] = { 277{ 278 .name = "b2f16", 279 .num_inputs = 1, 280 .output_size = 0, 281 .output_type = nir_type_float16, 282 .input_sizes = { 283 0 284 }, 285 .input_types = { 286 nir_type_bool 287 }, 288 .is_conversion = true, 289 .algebraic_properties = 290 0 291}, 292{ 293 .name = "b2f32", 294 .num_inputs = 1, 295 .output_size = 0, 296 .output_type = nir_type_float32, 297 .input_sizes = { 298 0 299 }, 300 .input_types = { 301 nir_type_bool 302 }, 303 .is_conversion = true, 304 .algebraic_properties = 305 0 306}, 307{ 308 .name = "b2f64", 309 .num_inputs = 1, 310 .output_size = 0, 311 .output_type = nir_type_float64, 312 .input_sizes = { 313 0 314 }, 315 .input_types = { 316 nir_type_bool 317 }, 318 .is_conversion = true, 319 .algebraic_properties = 320 0 321}, 322{ 323 .name = "b2i1", 324 .num_inputs = 1, 325 .output_size = 0, 326 .output_type = nir_type_int1, 327 .input_sizes = { 328 0 329 }, 330 .input_types = { 331 nir_type_bool 332 }, 333 .is_conversion = true, 334 .algebraic_properties = 335 0 336}, 337{ 338 .name = "b2i16", 339 .num_inputs = 1, 340 .output_size = 0, 341 .output_type = nir_type_int16, 342 .input_sizes = { 343 0 344 }, 345 .input_types = { 346 nir_type_bool 347 }, 348 .is_conversion = true, 349 .algebraic_properties = 350 0 351}, 352{ 353 .name = "b2i32", 354 .num_inputs = 1, 355 .output_size = 0, 356 .output_type = nir_type_int32, 357 .input_sizes = { 358 0 359 }, 360 .input_types = { 361 nir_type_bool 362 }, 363 .is_conversion = true, 364 .algebraic_properties = 365 0 366}, 367{ 368 .name = "b2i64", 369 .num_inputs = 1, 370 .output_size = 0, 371 .output_type = nir_type_int64, 372 .input_sizes = { 373 0 374 }, 375 .input_types = { 376 nir_type_bool 377 }, 378 .is_conversion = true, 379 .algebraic_properties = 380 0 381}, 382{ 383 .name = "b2i8", 384 .num_inputs = 1, 385 .output_size = 0, 386 .output_type = nir_type_int8, 387 .input_sizes = { 388 0 389 }, 390 .input_types = { 391 nir_type_bool 392 }, 393 .is_conversion = true, 394 .algebraic_properties = 395 0 396}, 397{ 398 .name = "b32all_fequal2", 399 .num_inputs = 2, 400 .output_size = 1, 401 .output_type = nir_type_bool32, 402 .input_sizes = { 403 2, 2 404 }, 405 .input_types = { 406 nir_type_float, nir_type_float 407 }, 408 .is_conversion = false, 409 .algebraic_properties = 410 NIR_OP_IS_COMMUTATIVE 411}, 412{ 413 .name = "b32all_fequal3", 414 .num_inputs = 2, 415 .output_size = 1, 416 .output_type = nir_type_bool32, 417 .input_sizes = { 418 3, 3 419 }, 420 .input_types = { 421 nir_type_float, nir_type_float 422 }, 423 .is_conversion = false, 424 .algebraic_properties = 425 NIR_OP_IS_COMMUTATIVE 426}, 427{ 428 .name = "b32all_fequal4", 429 .num_inputs = 2, 430 .output_size = 1, 431 .output_type = nir_type_bool32, 432 .input_sizes = { 433 4, 4 434 }, 435 .input_types = { 436 nir_type_float, nir_type_float 437 }, 438 .is_conversion = false, 439 .algebraic_properties = 440 NIR_OP_IS_COMMUTATIVE 441}, 442{ 443 .name = "b32all_iequal2", 444 .num_inputs = 2, 445 .output_size = 1, 446 .output_type = nir_type_bool32, 447 .input_sizes = { 448 2, 2 449 }, 450 .input_types = { 451 nir_type_int, nir_type_int 452 }, 453 .is_conversion = false, 454 .algebraic_properties = 455 NIR_OP_IS_COMMUTATIVE 456}, 457{ 458 .name = "b32all_iequal3", 459 .num_inputs = 2, 460 .output_size = 1, 461 .output_type = nir_type_bool32, 462 .input_sizes = { 463 3, 3 464 }, 465 .input_types = { 466 nir_type_int, nir_type_int 467 }, 468 .is_conversion = false, 469 .algebraic_properties = 470 NIR_OP_IS_COMMUTATIVE 471}, 472{ 473 .name = "b32all_iequal4", 474 .num_inputs = 2, 475 .output_size = 1, 476 .output_type = nir_type_bool32, 477 .input_sizes = { 478 4, 4 479 }, 480 .input_types = { 481 nir_type_int, nir_type_int 482 }, 483 .is_conversion = false, 484 .algebraic_properties = 485 NIR_OP_IS_COMMUTATIVE 486}, 487{ 488 .name = "b32any_fnequal2", 489 .num_inputs = 2, 490 .output_size = 1, 491 .output_type = nir_type_bool32, 492 .input_sizes = { 493 2, 2 494 }, 495 .input_types = { 496 nir_type_float, nir_type_float 497 }, 498 .is_conversion = false, 499 .algebraic_properties = 500 NIR_OP_IS_COMMUTATIVE 501}, 502{ 503 .name = "b32any_fnequal3", 504 .num_inputs = 2, 505 .output_size = 1, 506 .output_type = nir_type_bool32, 507 .input_sizes = { 508 3, 3 509 }, 510 .input_types = { 511 nir_type_float, nir_type_float 512 }, 513 .is_conversion = false, 514 .algebraic_properties = 515 NIR_OP_IS_COMMUTATIVE 516}, 517{ 518 .name = "b32any_fnequal4", 519 .num_inputs = 2, 520 .output_size = 1, 521 .output_type = nir_type_bool32, 522 .input_sizes = { 523 4, 4 524 }, 525 .input_types = { 526 nir_type_float, nir_type_float 527 }, 528 .is_conversion = false, 529 .algebraic_properties = 530 NIR_OP_IS_COMMUTATIVE 531}, 532{ 533 .name = "b32any_inequal2", 534 .num_inputs = 2, 535 .output_size = 1, 536 .output_type = nir_type_bool32, 537 .input_sizes = { 538 2, 2 539 }, 540 .input_types = { 541 nir_type_int, nir_type_int 542 }, 543 .is_conversion = false, 544 .algebraic_properties = 545 NIR_OP_IS_COMMUTATIVE 546}, 547{ 548 .name = "b32any_inequal3", 549 .num_inputs = 2, 550 .output_size = 1, 551 .output_type = nir_type_bool32, 552 .input_sizes = { 553 3, 3 554 }, 555 .input_types = { 556 nir_type_int, nir_type_int 557 }, 558 .is_conversion = false, 559 .algebraic_properties = 560 NIR_OP_IS_COMMUTATIVE 561}, 562{ 563 .name = "b32any_inequal4", 564 .num_inputs = 2, 565 .output_size = 1, 566 .output_type = nir_type_bool32, 567 .input_sizes = { 568 4, 4 569 }, 570 .input_types = { 571 nir_type_int, nir_type_int 572 }, 573 .is_conversion = false, 574 .algebraic_properties = 575 NIR_OP_IS_COMMUTATIVE 576}, 577{ 578 .name = "b32csel", 579 .num_inputs = 3, 580 .output_size = 0, 581 .output_type = nir_type_uint, 582 .input_sizes = { 583 0, 0, 0 584 }, 585 .input_types = { 586 nir_type_bool32, nir_type_uint, nir_type_uint 587 }, 588 .is_conversion = false, 589 .algebraic_properties = 590 0 591}, 592{ 593 .name = "ball_fequal2", 594 .num_inputs = 2, 595 .output_size = 1, 596 .output_type = nir_type_bool1, 597 .input_sizes = { 598 2, 2 599 }, 600 .input_types = { 601 nir_type_float, nir_type_float 602 }, 603 .is_conversion = false, 604 .algebraic_properties = 605 NIR_OP_IS_COMMUTATIVE 606}, 607{ 608 .name = "ball_fequal3", 609 .num_inputs = 2, 610 .output_size = 1, 611 .output_type = nir_type_bool1, 612 .input_sizes = { 613 3, 3 614 }, 615 .input_types = { 616 nir_type_float, nir_type_float 617 }, 618 .is_conversion = false, 619 .algebraic_properties = 620 NIR_OP_IS_COMMUTATIVE 621}, 622{ 623 .name = "ball_fequal4", 624 .num_inputs = 2, 625 .output_size = 1, 626 .output_type = nir_type_bool1, 627 .input_sizes = { 628 4, 4 629 }, 630 .input_types = { 631 nir_type_float, nir_type_float 632 }, 633 .is_conversion = false, 634 .algebraic_properties = 635 NIR_OP_IS_COMMUTATIVE 636}, 637{ 638 .name = "ball_iequal2", 639 .num_inputs = 2, 640 .output_size = 1, 641 .output_type = nir_type_bool1, 642 .input_sizes = { 643 2, 2 644 }, 645 .input_types = { 646 nir_type_int, nir_type_int 647 }, 648 .is_conversion = false, 649 .algebraic_properties = 650 NIR_OP_IS_COMMUTATIVE 651}, 652{ 653 .name = "ball_iequal3", 654 .num_inputs = 2, 655 .output_size = 1, 656 .output_type = nir_type_bool1, 657 .input_sizes = { 658 3, 3 659 }, 660 .input_types = { 661 nir_type_int, nir_type_int 662 }, 663 .is_conversion = false, 664 .algebraic_properties = 665 NIR_OP_IS_COMMUTATIVE 666}, 667{ 668 .name = "ball_iequal4", 669 .num_inputs = 2, 670 .output_size = 1, 671 .output_type = nir_type_bool1, 672 .input_sizes = { 673 4, 4 674 }, 675 .input_types = { 676 nir_type_int, nir_type_int 677 }, 678 .is_conversion = false, 679 .algebraic_properties = 680 NIR_OP_IS_COMMUTATIVE 681}, 682{ 683 .name = "bany_fnequal2", 684 .num_inputs = 2, 685 .output_size = 1, 686 .output_type = nir_type_bool1, 687 .input_sizes = { 688 2, 2 689 }, 690 .input_types = { 691 nir_type_float, nir_type_float 692 }, 693 .is_conversion = false, 694 .algebraic_properties = 695 NIR_OP_IS_COMMUTATIVE 696}, 697{ 698 .name = "bany_fnequal3", 699 .num_inputs = 2, 700 .output_size = 1, 701 .output_type = nir_type_bool1, 702 .input_sizes = { 703 3, 3 704 }, 705 .input_types = { 706 nir_type_float, nir_type_float 707 }, 708 .is_conversion = false, 709 .algebraic_properties = 710 NIR_OP_IS_COMMUTATIVE 711}, 712{ 713 .name = "bany_fnequal4", 714 .num_inputs = 2, 715 .output_size = 1, 716 .output_type = nir_type_bool1, 717 .input_sizes = { 718 4, 4 719 }, 720 .input_types = { 721 nir_type_float, nir_type_float 722 }, 723 .is_conversion = false, 724 .algebraic_properties = 725 NIR_OP_IS_COMMUTATIVE 726}, 727{ 728 .name = "bany_inequal2", 729 .num_inputs = 2, 730 .output_size = 1, 731 .output_type = nir_type_bool1, 732 .input_sizes = { 733 2, 2 734 }, 735 .input_types = { 736 nir_type_int, nir_type_int 737 }, 738 .is_conversion = false, 739 .algebraic_properties = 740 NIR_OP_IS_COMMUTATIVE 741}, 742{ 743 .name = "bany_inequal3", 744 .num_inputs = 2, 745 .output_size = 1, 746 .output_type = nir_type_bool1, 747 .input_sizes = { 748 3, 3 749 }, 750 .input_types = { 751 nir_type_int, nir_type_int 752 }, 753 .is_conversion = false, 754 .algebraic_properties = 755 NIR_OP_IS_COMMUTATIVE 756}, 757{ 758 .name = "bany_inequal4", 759 .num_inputs = 2, 760 .output_size = 1, 761 .output_type = nir_type_bool1, 762 .input_sizes = { 763 4, 4 764 }, 765 .input_types = { 766 nir_type_int, nir_type_int 767 }, 768 .is_conversion = false, 769 .algebraic_properties = 770 NIR_OP_IS_COMMUTATIVE 771}, 772{ 773 .name = "bcsel", 774 .num_inputs = 3, 775 .output_size = 0, 776 .output_type = nir_type_uint, 777 .input_sizes = { 778 0, 0, 0 779 }, 780 .input_types = { 781 nir_type_bool1, nir_type_uint, nir_type_uint 782 }, 783 .is_conversion = false, 784 .algebraic_properties = 785 0 786}, 787{ 788 .name = "bfi", 789 .num_inputs = 3, 790 .output_size = 0, 791 .output_type = nir_type_uint32, 792 .input_sizes = { 793 0, 0, 0 794 }, 795 .input_types = { 796 nir_type_uint32, nir_type_uint32, nir_type_uint32 797 }, 798 .is_conversion = false, 799 .algebraic_properties = 800 0 801}, 802{ 803 .name = "bfm", 804 .num_inputs = 2, 805 .output_size = 0, 806 .output_type = nir_type_uint32, 807 .input_sizes = { 808 0, 0 809 }, 810 .input_types = { 811 nir_type_int32, nir_type_int32 812 }, 813 .is_conversion = false, 814 .algebraic_properties = 815 0 816}, 817{ 818 .name = "bit_count", 819 .num_inputs = 1, 820 .output_size = 0, 821 .output_type = nir_type_uint32, 822 .input_sizes = { 823 0 824 }, 825 .input_types = { 826 nir_type_uint 827 }, 828 .is_conversion = false, 829 .algebraic_properties = 830 0 831}, 832{ 833 .name = "bitfield_insert", 834 .num_inputs = 4, 835 .output_size = 0, 836 .output_type = nir_type_uint32, 837 .input_sizes = { 838 0, 0, 0, 0 839 }, 840 .input_types = { 841 nir_type_uint32, nir_type_uint32, nir_type_int32, nir_type_int32 842 }, 843 .is_conversion = false, 844 .algebraic_properties = 845 0 846}, 847{ 848 .name = "bitfield_reverse", 849 .num_inputs = 1, 850 .output_size = 0, 851 .output_type = nir_type_uint32, 852 .input_sizes = { 853 0 854 }, 855 .input_types = { 856 nir_type_uint32 857 }, 858 .is_conversion = false, 859 .algebraic_properties = 860 0 861}, 862{ 863 .name = "cube_face_coord", 864 .num_inputs = 1, 865 .output_size = 2, 866 .output_type = nir_type_float32, 867 .input_sizes = { 868 3 869 }, 870 .input_types = { 871 nir_type_float32 872 }, 873 .is_conversion = false, 874 .algebraic_properties = 875 0 876}, 877{ 878 .name = "cube_face_index", 879 .num_inputs = 1, 880 .output_size = 1, 881 .output_type = nir_type_float32, 882 .input_sizes = { 883 3 884 }, 885 .input_types = { 886 nir_type_float32 887 }, 888 .is_conversion = false, 889 .algebraic_properties = 890 0 891}, 892{ 893 .name = "extract_i16", 894 .num_inputs = 2, 895 .output_size = 0, 896 .output_type = nir_type_int, 897 .input_sizes = { 898 0, 0 899 }, 900 .input_types = { 901 nir_type_int, nir_type_int 902 }, 903 .is_conversion = false, 904 .algebraic_properties = 905 0 906}, 907{ 908 .name = "extract_i8", 909 .num_inputs = 2, 910 .output_size = 0, 911 .output_type = nir_type_int, 912 .input_sizes = { 913 0, 0 914 }, 915 .input_types = { 916 nir_type_int, nir_type_int 917 }, 918 .is_conversion = false, 919 .algebraic_properties = 920 0 921}, 922{ 923 .name = "extract_u16", 924 .num_inputs = 2, 925 .output_size = 0, 926 .output_type = nir_type_uint, 927 .input_sizes = { 928 0, 0 929 }, 930 .input_types = { 931 nir_type_uint, nir_type_uint 932 }, 933 .is_conversion = false, 934 .algebraic_properties = 935 0 936}, 937{ 938 .name = "extract_u8", 939 .num_inputs = 2, 940 .output_size = 0, 941 .output_type = nir_type_uint, 942 .input_sizes = { 943 0, 0 944 }, 945 .input_types = { 946 nir_type_uint, nir_type_uint 947 }, 948 .is_conversion = false, 949 .algebraic_properties = 950 0 951}, 952{ 953 .name = "f2b1", 954 .num_inputs = 1, 955 .output_size = 0, 956 .output_type = nir_type_bool1, 957 .input_sizes = { 958 0 959 }, 960 .input_types = { 961 nir_type_float 962 }, 963 .is_conversion = true, 964 .algebraic_properties = 965 0 966}, 967{ 968 .name = "f2b32", 969 .num_inputs = 1, 970 .output_size = 0, 971 .output_type = nir_type_bool32, 972 .input_sizes = { 973 0 974 }, 975 .input_types = { 976 nir_type_float 977 }, 978 .is_conversion = true, 979 .algebraic_properties = 980 0 981}, 982{ 983 .name = "f2f16", 984 .num_inputs = 1, 985 .output_size = 0, 986 .output_type = nir_type_float16, 987 .input_sizes = { 988 0 989 }, 990 .input_types = { 991 nir_type_float 992 }, 993 .is_conversion = true, 994 .algebraic_properties = 995 0 996}, 997{ 998 .name = "f2f16_rtne", 999 .num_inputs = 1, 1000 .output_size = 0, 1001 .output_type = nir_type_float16, 1002 .input_sizes = { 1003 0 1004 }, 1005 .input_types = { 1006 nir_type_float 1007 }, 1008 .is_conversion = true, 1009 .algebraic_properties = 1010 0 1011}, 1012{ 1013 .name = "f2f16_rtz", 1014 .num_inputs = 1, 1015 .output_size = 0, 1016 .output_type = nir_type_float16, 1017 .input_sizes = { 1018 0 1019 }, 1020 .input_types = { 1021 nir_type_float 1022 }, 1023 .is_conversion = true, 1024 .algebraic_properties = 1025 0 1026}, 1027{ 1028 .name = "f2f32", 1029 .num_inputs = 1, 1030 .output_size = 0, 1031 .output_type = nir_type_float32, 1032 .input_sizes = { 1033 0 1034 }, 1035 .input_types = { 1036 nir_type_float 1037 }, 1038 .is_conversion = true, 1039 .algebraic_properties = 1040 0 1041}, 1042{ 1043 .name = "f2f64", 1044 .num_inputs = 1, 1045 .output_size = 0, 1046 .output_type = nir_type_float64, 1047 .input_sizes = { 1048 0 1049 }, 1050 .input_types = { 1051 nir_type_float 1052 }, 1053 .is_conversion = true, 1054 .algebraic_properties = 1055 0 1056}, 1057{ 1058 .name = "f2i1", 1059 .num_inputs = 1, 1060 .output_size = 0, 1061 .output_type = nir_type_int1, 1062 .input_sizes = { 1063 0 1064 }, 1065 .input_types = { 1066 nir_type_float 1067 }, 1068 .is_conversion = true, 1069 .algebraic_properties = 1070 0 1071}, 1072{ 1073 .name = "f2i16", 1074 .num_inputs = 1, 1075 .output_size = 0, 1076 .output_type = nir_type_int16, 1077 .input_sizes = { 1078 0 1079 }, 1080 .input_types = { 1081 nir_type_float 1082 }, 1083 .is_conversion = true, 1084 .algebraic_properties = 1085 0 1086}, 1087{ 1088 .name = "f2i32", 1089 .num_inputs = 1, 1090 .output_size = 0, 1091 .output_type = nir_type_int32, 1092 .input_sizes = { 1093 0 1094 }, 1095 .input_types = { 1096 nir_type_float 1097 }, 1098 .is_conversion = true, 1099 .algebraic_properties = 1100 0 1101}, 1102{ 1103 .name = "f2i64", 1104 .num_inputs = 1, 1105 .output_size = 0, 1106 .output_type = nir_type_int64, 1107 .input_sizes = { 1108 0 1109 }, 1110 .input_types = { 1111 nir_type_float 1112 }, 1113 .is_conversion = true, 1114 .algebraic_properties = 1115 0 1116}, 1117{ 1118 .name = "f2i8", 1119 .num_inputs = 1, 1120 .output_size = 0, 1121 .output_type = nir_type_int8, 1122 .input_sizes = { 1123 0 1124 }, 1125 .input_types = { 1126 nir_type_float 1127 }, 1128 .is_conversion = true, 1129 .algebraic_properties = 1130 0 1131}, 1132{ 1133 .name = "f2u1", 1134 .num_inputs = 1, 1135 .output_size = 0, 1136 .output_type = nir_type_uint1, 1137 .input_sizes = { 1138 0 1139 }, 1140 .input_types = { 1141 nir_type_float 1142 }, 1143 .is_conversion = true, 1144 .algebraic_properties = 1145 0 1146}, 1147{ 1148 .name = "f2u16", 1149 .num_inputs = 1, 1150 .output_size = 0, 1151 .output_type = nir_type_uint16, 1152 .input_sizes = { 1153 0 1154 }, 1155 .input_types = { 1156 nir_type_float 1157 }, 1158 .is_conversion = true, 1159 .algebraic_properties = 1160 0 1161}, 1162{ 1163 .name = "f2u32", 1164 .num_inputs = 1, 1165 .output_size = 0, 1166 .output_type = nir_type_uint32, 1167 .input_sizes = { 1168 0 1169 }, 1170 .input_types = { 1171 nir_type_float 1172 }, 1173 .is_conversion = true, 1174 .algebraic_properties = 1175 0 1176}, 1177{ 1178 .name = "f2u64", 1179 .num_inputs = 1, 1180 .output_size = 0, 1181 .output_type = nir_type_uint64, 1182 .input_sizes = { 1183 0 1184 }, 1185 .input_types = { 1186 nir_type_float 1187 }, 1188 .is_conversion = true, 1189 .algebraic_properties = 1190 0 1191}, 1192{ 1193 .name = "f2u8", 1194 .num_inputs = 1, 1195 .output_size = 0, 1196 .output_type = nir_type_uint8, 1197 .input_sizes = { 1198 0 1199 }, 1200 .input_types = { 1201 nir_type_float 1202 }, 1203 .is_conversion = true, 1204 .algebraic_properties = 1205 0 1206}, 1207{ 1208 .name = "fabs", 1209 .num_inputs = 1, 1210 .output_size = 0, 1211 .output_type = nir_type_float, 1212 .input_sizes = { 1213 0 1214 }, 1215 .input_types = { 1216 nir_type_float 1217 }, 1218 .is_conversion = false, 1219 .algebraic_properties = 1220 0 1221}, 1222{ 1223 .name = "fadd", 1224 .num_inputs = 2, 1225 .output_size = 0, 1226 .output_type = nir_type_float, 1227 .input_sizes = { 1228 0, 0 1229 }, 1230 .input_types = { 1231 nir_type_float, nir_type_float 1232 }, 1233 .is_conversion = false, 1234 .algebraic_properties = 1235 NIR_OP_IS_COMMUTATIVE | NIR_OP_IS_ASSOCIATIVE 1236}, 1237{ 1238 .name = "fall_equal2", 1239 .num_inputs = 2, 1240 .output_size = 1, 1241 .output_type = nir_type_float32, 1242 .input_sizes = { 1243 2, 2 1244 }, 1245 .input_types = { 1246 nir_type_float32, nir_type_float32 1247 }, 1248 .is_conversion = false, 1249 .algebraic_properties = 1250 NIR_OP_IS_COMMUTATIVE 1251}, 1252{ 1253 .name = "fall_equal3", 1254 .num_inputs = 2, 1255 .output_size = 1, 1256 .output_type = nir_type_float32, 1257 .input_sizes = { 1258 3, 3 1259 }, 1260 .input_types = { 1261 nir_type_float32, nir_type_float32 1262 }, 1263 .is_conversion = false, 1264 .algebraic_properties = 1265 NIR_OP_IS_COMMUTATIVE 1266}, 1267{ 1268 .name = "fall_equal4", 1269 .num_inputs = 2, 1270 .output_size = 1, 1271 .output_type = nir_type_float32, 1272 .input_sizes = { 1273 4, 4 1274 }, 1275 .input_types = { 1276 nir_type_float32, nir_type_float32 1277 }, 1278 .is_conversion = false, 1279 .algebraic_properties = 1280 NIR_OP_IS_COMMUTATIVE 1281}, 1282{ 1283 .name = "fand", 1284 .num_inputs = 2, 1285 .output_size = 0, 1286 .output_type = nir_type_float32, 1287 .input_sizes = { 1288 0, 0 1289 }, 1290 .input_types = { 1291 nir_type_float32, nir_type_float32 1292 }, 1293 .is_conversion = false, 1294 .algebraic_properties = 1295 NIR_OP_IS_COMMUTATIVE 1296}, 1297{ 1298 .name = "fany_nequal2", 1299 .num_inputs = 2, 1300 .output_size = 1, 1301 .output_type = nir_type_float32, 1302 .input_sizes = { 1303 2, 2 1304 }, 1305 .input_types = { 1306 nir_type_float32, nir_type_float32 1307 }, 1308 .is_conversion = false, 1309 .algebraic_properties = 1310 NIR_OP_IS_COMMUTATIVE 1311}, 1312{ 1313 .name = "fany_nequal3", 1314 .num_inputs = 2, 1315 .output_size = 1, 1316 .output_type = nir_type_float32, 1317 .input_sizes = { 1318 3, 3 1319 }, 1320 .input_types = { 1321 nir_type_float32, nir_type_float32 1322 }, 1323 .is_conversion = false, 1324 .algebraic_properties = 1325 NIR_OP_IS_COMMUTATIVE 1326}, 1327{ 1328 .name = "fany_nequal4", 1329 .num_inputs = 2, 1330 .output_size = 1, 1331 .output_type = nir_type_float32, 1332 .input_sizes = { 1333 4, 4 1334 }, 1335 .input_types = { 1336 nir_type_float32, nir_type_float32 1337 }, 1338 .is_conversion = false, 1339 .algebraic_properties = 1340 NIR_OP_IS_COMMUTATIVE 1341}, 1342{ 1343 .name = "fceil", 1344 .num_inputs = 1, 1345 .output_size = 0, 1346 .output_type = nir_type_float, 1347 .input_sizes = { 1348 0 1349 }, 1350 .input_types = { 1351 nir_type_float 1352 }, 1353 .is_conversion = false, 1354 .algebraic_properties = 1355 0 1356}, 1357{ 1358 .name = "fcos", 1359 .num_inputs = 1, 1360 .output_size = 0, 1361 .output_type = nir_type_float, 1362 .input_sizes = { 1363 0 1364 }, 1365 .input_types = { 1366 nir_type_float 1367 }, 1368 .is_conversion = false, 1369 .algebraic_properties = 1370 0 1371}, 1372{ 1373 .name = "fcsel", 1374 .num_inputs = 3, 1375 .output_size = 0, 1376 .output_type = nir_type_float32, 1377 .input_sizes = { 1378 0, 0, 0 1379 }, 1380 .input_types = { 1381 nir_type_float32, nir_type_float32, nir_type_float32 1382 }, 1383 .is_conversion = false, 1384 .algebraic_properties = 1385 0 1386}, 1387{ 1388 .name = "fddx", 1389 .num_inputs = 1, 1390 .output_size = 0, 1391 .output_type = nir_type_float, 1392 .input_sizes = { 1393 0 1394 }, 1395 .input_types = { 1396 nir_type_float 1397 }, 1398 .is_conversion = false, 1399 .algebraic_properties = 1400 0 1401}, 1402{ 1403 .name = "fddx_coarse", 1404 .num_inputs = 1, 1405 .output_size = 0, 1406 .output_type = nir_type_float, 1407 .input_sizes = { 1408 0 1409 }, 1410 .input_types = { 1411 nir_type_float 1412 }, 1413 .is_conversion = false, 1414 .algebraic_properties = 1415 0 1416}, 1417{ 1418 .name = "fddx_fine", 1419 .num_inputs = 1, 1420 .output_size = 0, 1421 .output_type = nir_type_float, 1422 .input_sizes = { 1423 0 1424 }, 1425 .input_types = { 1426 nir_type_float 1427 }, 1428 .is_conversion = false, 1429 .algebraic_properties = 1430 0 1431}, 1432{ 1433 .name = "fddy", 1434 .num_inputs = 1, 1435 .output_size = 0, 1436 .output_type = nir_type_float, 1437 .input_sizes = { 1438 0 1439 }, 1440 .input_types = { 1441 nir_type_float 1442 }, 1443 .is_conversion = false, 1444 .algebraic_properties = 1445 0 1446}, 1447{ 1448 .name = "fddy_coarse", 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 .is_conversion = false, 1459 .algebraic_properties = 1460 0 1461}, 1462{ 1463 .name = "fddy_fine", 1464 .num_inputs = 1, 1465 .output_size = 0, 1466 .output_type = nir_type_float, 1467 .input_sizes = { 1468 0 1469 }, 1470 .input_types = { 1471 nir_type_float 1472 }, 1473 .is_conversion = false, 1474 .algebraic_properties = 1475 0 1476}, 1477{ 1478 .name = "fdiv", 1479 .num_inputs = 2, 1480 .output_size = 0, 1481 .output_type = nir_type_float, 1482 .input_sizes = { 1483 0, 0 1484 }, 1485 .input_types = { 1486 nir_type_float, nir_type_float 1487 }, 1488 .is_conversion = false, 1489 .algebraic_properties = 1490 0 1491}, 1492{ 1493 .name = "fdot2", 1494 .num_inputs = 2, 1495 .output_size = 1, 1496 .output_type = nir_type_float, 1497 .input_sizes = { 1498 2, 2 1499 }, 1500 .input_types = { 1501 nir_type_float, nir_type_float 1502 }, 1503 .is_conversion = false, 1504 .algebraic_properties = 1505 NIR_OP_IS_COMMUTATIVE 1506}, 1507{ 1508 .name = "fdot3", 1509 .num_inputs = 2, 1510 .output_size = 1, 1511 .output_type = nir_type_float, 1512 .input_sizes = { 1513 3, 3 1514 }, 1515 .input_types = { 1516 nir_type_float, nir_type_float 1517 }, 1518 .is_conversion = false, 1519 .algebraic_properties = 1520 NIR_OP_IS_COMMUTATIVE 1521}, 1522{ 1523 .name = "fdot4", 1524 .num_inputs = 2, 1525 .output_size = 1, 1526 .output_type = nir_type_float, 1527 .input_sizes = { 1528 4, 4 1529 }, 1530 .input_types = { 1531 nir_type_float, nir_type_float 1532 }, 1533 .is_conversion = false, 1534 .algebraic_properties = 1535 NIR_OP_IS_COMMUTATIVE 1536}, 1537{ 1538 .name = "fdot_replicated2", 1539 .num_inputs = 2, 1540 .output_size = 4, 1541 .output_type = nir_type_float, 1542 .input_sizes = { 1543 2, 2 1544 }, 1545 .input_types = { 1546 nir_type_float, nir_type_float 1547 }, 1548 .is_conversion = false, 1549 .algebraic_properties = 1550 NIR_OP_IS_COMMUTATIVE 1551}, 1552{ 1553 .name = "fdot_replicated3", 1554 .num_inputs = 2, 1555 .output_size = 4, 1556 .output_type = nir_type_float, 1557 .input_sizes = { 1558 3, 3 1559 }, 1560 .input_types = { 1561 nir_type_float, nir_type_float 1562 }, 1563 .is_conversion = false, 1564 .algebraic_properties = 1565 NIR_OP_IS_COMMUTATIVE 1566}, 1567{ 1568 .name = "fdot_replicated4", 1569 .num_inputs = 2, 1570 .output_size = 4, 1571 .output_type = nir_type_float, 1572 .input_sizes = { 1573 4, 4 1574 }, 1575 .input_types = { 1576 nir_type_float, nir_type_float 1577 }, 1578 .is_conversion = false, 1579 .algebraic_properties = 1580 NIR_OP_IS_COMMUTATIVE 1581}, 1582{ 1583 .name = "fdph", 1584 .num_inputs = 2, 1585 .output_size = 1, 1586 .output_type = nir_type_float, 1587 .input_sizes = { 1588 3, 4 1589 }, 1590 .input_types = { 1591 nir_type_float, nir_type_float 1592 }, 1593 .is_conversion = false, 1594 .algebraic_properties = 1595 0 1596}, 1597{ 1598 .name = "fdph_replicated", 1599 .num_inputs = 2, 1600 .output_size = 4, 1601 .output_type = nir_type_float, 1602 .input_sizes = { 1603 3, 4 1604 }, 1605 .input_types = { 1606 nir_type_float, nir_type_float 1607 }, 1608 .is_conversion = false, 1609 .algebraic_properties = 1610 0 1611}, 1612{ 1613 .name = "feq", 1614 .num_inputs = 2, 1615 .output_size = 0, 1616 .output_type = nir_type_bool1, 1617 .input_sizes = { 1618 0, 0 1619 }, 1620 .input_types = { 1621 nir_type_float, nir_type_float 1622 }, 1623 .is_conversion = false, 1624 .algebraic_properties = 1625 NIR_OP_IS_COMMUTATIVE 1626}, 1627{ 1628 .name = "feq32", 1629 .num_inputs = 2, 1630 .output_size = 0, 1631 .output_type = nir_type_bool32, 1632 .input_sizes = { 1633 0, 0 1634 }, 1635 .input_types = { 1636 nir_type_float, nir_type_float 1637 }, 1638 .is_conversion = false, 1639 .algebraic_properties = 1640 NIR_OP_IS_COMMUTATIVE 1641}, 1642{ 1643 .name = "fexp2", 1644 .num_inputs = 1, 1645 .output_size = 0, 1646 .output_type = nir_type_float, 1647 .input_sizes = { 1648 0 1649 }, 1650 .input_types = { 1651 nir_type_float 1652 }, 1653 .is_conversion = false, 1654 .algebraic_properties = 1655 0 1656}, 1657{ 1658 .name = "ffloor", 1659 .num_inputs = 1, 1660 .output_size = 0, 1661 .output_type = nir_type_float, 1662 .input_sizes = { 1663 0 1664 }, 1665 .input_types = { 1666 nir_type_float 1667 }, 1668 .is_conversion = false, 1669 .algebraic_properties = 1670 0 1671}, 1672{ 1673 .name = "ffma", 1674 .num_inputs = 3, 1675 .output_size = 0, 1676 .output_type = nir_type_float, 1677 .input_sizes = { 1678 0, 0, 0 1679 }, 1680 .input_types = { 1681 nir_type_float, nir_type_float, nir_type_float 1682 }, 1683 .is_conversion = false, 1684 .algebraic_properties = 1685 0 1686}, 1687{ 1688 .name = "ffract", 1689 .num_inputs = 1, 1690 .output_size = 0, 1691 .output_type = nir_type_float, 1692 .input_sizes = { 1693 0 1694 }, 1695 .input_types = { 1696 nir_type_float 1697 }, 1698 .is_conversion = false, 1699 .algebraic_properties = 1700 0 1701}, 1702{ 1703 .name = "fge", 1704 .num_inputs = 2, 1705 .output_size = 0, 1706 .output_type = nir_type_bool1, 1707 .input_sizes = { 1708 0, 0 1709 }, 1710 .input_types = { 1711 nir_type_float, nir_type_float 1712 }, 1713 .is_conversion = false, 1714 .algebraic_properties = 1715 0 1716}, 1717{ 1718 .name = "fge32", 1719 .num_inputs = 2, 1720 .output_size = 0, 1721 .output_type = nir_type_bool32, 1722 .input_sizes = { 1723 0, 0 1724 }, 1725 .input_types = { 1726 nir_type_float, nir_type_float 1727 }, 1728 .is_conversion = false, 1729 .algebraic_properties = 1730 0 1731}, 1732{ 1733 .name = "find_lsb", 1734 .num_inputs = 1, 1735 .output_size = 0, 1736 .output_type = nir_type_int32, 1737 .input_sizes = { 1738 0 1739 }, 1740 .input_types = { 1741 nir_type_int 1742 }, 1743 .is_conversion = false, 1744 .algebraic_properties = 1745 0 1746}, 1747{ 1748 .name = "flog2", 1749 .num_inputs = 1, 1750 .output_size = 0, 1751 .output_type = nir_type_float, 1752 .input_sizes = { 1753 0 1754 }, 1755 .input_types = { 1756 nir_type_float 1757 }, 1758 .is_conversion = false, 1759 .algebraic_properties = 1760 0 1761}, 1762{ 1763 .name = "flrp", 1764 .num_inputs = 3, 1765 .output_size = 0, 1766 .output_type = nir_type_float, 1767 .input_sizes = { 1768 0, 0, 0 1769 }, 1770 .input_types = { 1771 nir_type_float, nir_type_float, nir_type_float 1772 }, 1773 .is_conversion = false, 1774 .algebraic_properties = 1775 0 1776}, 1777{ 1778 .name = "flt", 1779 .num_inputs = 2, 1780 .output_size = 0, 1781 .output_type = nir_type_bool1, 1782 .input_sizes = { 1783 0, 0 1784 }, 1785 .input_types = { 1786 nir_type_float, nir_type_float 1787 }, 1788 .is_conversion = false, 1789 .algebraic_properties = 1790 0 1791}, 1792{ 1793 .name = "flt32", 1794 .num_inputs = 2, 1795 .output_size = 0, 1796 .output_type = nir_type_bool32, 1797 .input_sizes = { 1798 0, 0 1799 }, 1800 .input_types = { 1801 nir_type_float, nir_type_float 1802 }, 1803 .is_conversion = false, 1804 .algebraic_properties = 1805 0 1806}, 1807{ 1808 .name = "fmax", 1809 .num_inputs = 2, 1810 .output_size = 0, 1811 .output_type = nir_type_float, 1812 .input_sizes = { 1813 0, 0 1814 }, 1815 .input_types = { 1816 nir_type_float, nir_type_float 1817 }, 1818 .is_conversion = false, 1819 .algebraic_properties = 1820 0 1821}, 1822{ 1823 .name = "fmax3", 1824 .num_inputs = 3, 1825 .output_size = 0, 1826 .output_type = nir_type_float, 1827 .input_sizes = { 1828 0, 0, 0 1829 }, 1830 .input_types = { 1831 nir_type_float, nir_type_float, nir_type_float 1832 }, 1833 .is_conversion = false, 1834 .algebraic_properties = 1835 0 1836}, 1837{ 1838 .name = "fmed3", 1839 .num_inputs = 3, 1840 .output_size = 0, 1841 .output_type = nir_type_float, 1842 .input_sizes = { 1843 0, 0, 0 1844 }, 1845 .input_types = { 1846 nir_type_float, nir_type_float, nir_type_float 1847 }, 1848 .is_conversion = false, 1849 .algebraic_properties = 1850 0 1851}, 1852{ 1853 .name = "fmin", 1854 .num_inputs = 2, 1855 .output_size = 0, 1856 .output_type = nir_type_float, 1857 .input_sizes = { 1858 0, 0 1859 }, 1860 .input_types = { 1861 nir_type_float, nir_type_float 1862 }, 1863 .is_conversion = false, 1864 .algebraic_properties = 1865 0 1866}, 1867{ 1868 .name = "fmin3", 1869 .num_inputs = 3, 1870 .output_size = 0, 1871 .output_type = nir_type_float, 1872 .input_sizes = { 1873 0, 0, 0 1874 }, 1875 .input_types = { 1876 nir_type_float, nir_type_float, nir_type_float 1877 }, 1878 .is_conversion = false, 1879 .algebraic_properties = 1880 0 1881}, 1882{ 1883 .name = "fmod", 1884 .num_inputs = 2, 1885 .output_size = 0, 1886 .output_type = nir_type_float, 1887 .input_sizes = { 1888 0, 0 1889 }, 1890 .input_types = { 1891 nir_type_float, nir_type_float 1892 }, 1893 .is_conversion = false, 1894 .algebraic_properties = 1895 0 1896}, 1897{ 1898 .name = "fmov", 1899 .num_inputs = 1, 1900 .output_size = 0, 1901 .output_type = nir_type_float, 1902 .input_sizes = { 1903 0 1904 }, 1905 .input_types = { 1906 nir_type_float 1907 }, 1908 .is_conversion = false, 1909 .algebraic_properties = 1910 0 1911}, 1912{ 1913 .name = "fmul", 1914 .num_inputs = 2, 1915 .output_size = 0, 1916 .output_type = nir_type_float, 1917 .input_sizes = { 1918 0, 0 1919 }, 1920 .input_types = { 1921 nir_type_float, nir_type_float 1922 }, 1923 .is_conversion = false, 1924 .algebraic_properties = 1925 NIR_OP_IS_COMMUTATIVE | NIR_OP_IS_ASSOCIATIVE 1926}, 1927{ 1928 .name = "fne", 1929 .num_inputs = 2, 1930 .output_size = 0, 1931 .output_type = nir_type_bool1, 1932 .input_sizes = { 1933 0, 0 1934 }, 1935 .input_types = { 1936 nir_type_float, nir_type_float 1937 }, 1938 .is_conversion = false, 1939 .algebraic_properties = 1940 NIR_OP_IS_COMMUTATIVE 1941}, 1942{ 1943 .name = "fne32", 1944 .num_inputs = 2, 1945 .output_size = 0, 1946 .output_type = nir_type_bool32, 1947 .input_sizes = { 1948 0, 0 1949 }, 1950 .input_types = { 1951 nir_type_float, nir_type_float 1952 }, 1953 .is_conversion = false, 1954 .algebraic_properties = 1955 NIR_OP_IS_COMMUTATIVE 1956}, 1957{ 1958 .name = "fneg", 1959 .num_inputs = 1, 1960 .output_size = 0, 1961 .output_type = nir_type_float, 1962 .input_sizes = { 1963 0 1964 }, 1965 .input_types = { 1966 nir_type_float 1967 }, 1968 .is_conversion = false, 1969 .algebraic_properties = 1970 0 1971}, 1972{ 1973 .name = "fnoise1_1", 1974 .num_inputs = 1, 1975 .output_size = 1, 1976 .output_type = nir_type_float, 1977 .input_sizes = { 1978 1 1979 }, 1980 .input_types = { 1981 nir_type_float 1982 }, 1983 .is_conversion = false, 1984 .algebraic_properties = 1985 0 1986}, 1987{ 1988 .name = "fnoise1_2", 1989 .num_inputs = 1, 1990 .output_size = 1, 1991 .output_type = nir_type_float, 1992 .input_sizes = { 1993 2 1994 }, 1995 .input_types = { 1996 nir_type_float 1997 }, 1998 .is_conversion = false, 1999 .algebraic_properties = 2000 0 2001}, 2002{ 2003 .name = "fnoise1_3", 2004 .num_inputs = 1, 2005 .output_size = 1, 2006 .output_type = nir_type_float, 2007 .input_sizes = { 2008 3 2009 }, 2010 .input_types = { 2011 nir_type_float 2012 }, 2013 .is_conversion = false, 2014 .algebraic_properties = 2015 0 2016}, 2017{ 2018 .name = "fnoise1_4", 2019 .num_inputs = 1, 2020 .output_size = 1, 2021 .output_type = nir_type_float, 2022 .input_sizes = { 2023 4 2024 }, 2025 .input_types = { 2026 nir_type_float 2027 }, 2028 .is_conversion = false, 2029 .algebraic_properties = 2030 0 2031}, 2032{ 2033 .name = "fnoise2_1", 2034 .num_inputs = 1, 2035 .output_size = 2, 2036 .output_type = nir_type_float, 2037 .input_sizes = { 2038 1 2039 }, 2040 .input_types = { 2041 nir_type_float 2042 }, 2043 .is_conversion = false, 2044 .algebraic_properties = 2045 0 2046}, 2047{ 2048 .name = "fnoise2_2", 2049 .num_inputs = 1, 2050 .output_size = 2, 2051 .output_type = nir_type_float, 2052 .input_sizes = { 2053 2 2054 }, 2055 .input_types = { 2056 nir_type_float 2057 }, 2058 .is_conversion = false, 2059 .algebraic_properties = 2060 0 2061}, 2062{ 2063 .name = "fnoise2_3", 2064 .num_inputs = 1, 2065 .output_size = 2, 2066 .output_type = nir_type_float, 2067 .input_sizes = { 2068 3 2069 }, 2070 .input_types = { 2071 nir_type_float 2072 }, 2073 .is_conversion = false, 2074 .algebraic_properties = 2075 0 2076}, 2077{ 2078 .name = "fnoise2_4", 2079 .num_inputs = 1, 2080 .output_size = 2, 2081 .output_type = nir_type_float, 2082 .input_sizes = { 2083 4 2084 }, 2085 .input_types = { 2086 nir_type_float 2087 }, 2088 .is_conversion = false, 2089 .algebraic_properties = 2090 0 2091}, 2092{ 2093 .name = "fnoise3_1", 2094 .num_inputs = 1, 2095 .output_size = 3, 2096 .output_type = nir_type_float, 2097 .input_sizes = { 2098 1 2099 }, 2100 .input_types = { 2101 nir_type_float 2102 }, 2103 .is_conversion = false, 2104 .algebraic_properties = 2105 0 2106}, 2107{ 2108 .name = "fnoise3_2", 2109 .num_inputs = 1, 2110 .output_size = 3, 2111 .output_type = nir_type_float, 2112 .input_sizes = { 2113 2 2114 }, 2115 .input_types = { 2116 nir_type_float 2117 }, 2118 .is_conversion = false, 2119 .algebraic_properties = 2120 0 2121}, 2122{ 2123 .name = "fnoise3_3", 2124 .num_inputs = 1, 2125 .output_size = 3, 2126 .output_type = nir_type_float, 2127 .input_sizes = { 2128 3 2129 }, 2130 .input_types = { 2131 nir_type_float 2132 }, 2133 .is_conversion = false, 2134 .algebraic_properties = 2135 0 2136}, 2137{ 2138 .name = "fnoise3_4", 2139 .num_inputs = 1, 2140 .output_size = 3, 2141 .output_type = nir_type_float, 2142 .input_sizes = { 2143 4 2144 }, 2145 .input_types = { 2146 nir_type_float 2147 }, 2148 .is_conversion = false, 2149 .algebraic_properties = 2150 0 2151}, 2152{ 2153 .name = "fnoise4_1", 2154 .num_inputs = 1, 2155 .output_size = 4, 2156 .output_type = nir_type_float, 2157 .input_sizes = { 2158 1 2159 }, 2160 .input_types = { 2161 nir_type_float 2162 }, 2163 .is_conversion = false, 2164 .algebraic_properties = 2165 0 2166}, 2167{ 2168 .name = "fnoise4_2", 2169 .num_inputs = 1, 2170 .output_size = 4, 2171 .output_type = nir_type_float, 2172 .input_sizes = { 2173 2 2174 }, 2175 .input_types = { 2176 nir_type_float 2177 }, 2178 .is_conversion = false, 2179 .algebraic_properties = 2180 0 2181}, 2182{ 2183 .name = "fnoise4_3", 2184 .num_inputs = 1, 2185 .output_size = 4, 2186 .output_type = nir_type_float, 2187 .input_sizes = { 2188 3 2189 }, 2190 .input_types = { 2191 nir_type_float 2192 }, 2193 .is_conversion = false, 2194 .algebraic_properties = 2195 0 2196}, 2197{ 2198 .name = "fnoise4_4", 2199 .num_inputs = 1, 2200 .output_size = 4, 2201 .output_type = nir_type_float, 2202 .input_sizes = { 2203 4 2204 }, 2205 .input_types = { 2206 nir_type_float 2207 }, 2208 .is_conversion = false, 2209 .algebraic_properties = 2210 0 2211}, 2212{ 2213 .name = "fnot", 2214 .num_inputs = 1, 2215 .output_size = 0, 2216 .output_type = nir_type_float, 2217 .input_sizes = { 2218 0 2219 }, 2220 .input_types = { 2221 nir_type_float 2222 }, 2223 .is_conversion = false, 2224 .algebraic_properties = 2225 0 2226}, 2227{ 2228 .name = "for", 2229 .num_inputs = 2, 2230 .output_size = 0, 2231 .output_type = nir_type_float32, 2232 .input_sizes = { 2233 0, 0 2234 }, 2235 .input_types = { 2236 nir_type_float32, nir_type_float32 2237 }, 2238 .is_conversion = false, 2239 .algebraic_properties = 2240 NIR_OP_IS_COMMUTATIVE 2241}, 2242{ 2243 .name = "fpow", 2244 .num_inputs = 2, 2245 .output_size = 0, 2246 .output_type = nir_type_float, 2247 .input_sizes = { 2248 0, 0 2249 }, 2250 .input_types = { 2251 nir_type_float, nir_type_float 2252 }, 2253 .is_conversion = false, 2254 .algebraic_properties = 2255 0 2256}, 2257{ 2258 .name = "fquantize2f16", 2259 .num_inputs = 1, 2260 .output_size = 0, 2261 .output_type = nir_type_float, 2262 .input_sizes = { 2263 0 2264 }, 2265 .input_types = { 2266 nir_type_float 2267 }, 2268 .is_conversion = false, 2269 .algebraic_properties = 2270 0 2271}, 2272{ 2273 .name = "frcp", 2274 .num_inputs = 1, 2275 .output_size = 0, 2276 .output_type = nir_type_float, 2277 .input_sizes = { 2278 0 2279 }, 2280 .input_types = { 2281 nir_type_float 2282 }, 2283 .is_conversion = false, 2284 .algebraic_properties = 2285 0 2286}, 2287{ 2288 .name = "frem", 2289 .num_inputs = 2, 2290 .output_size = 0, 2291 .output_type = nir_type_float, 2292 .input_sizes = { 2293 0, 0 2294 }, 2295 .input_types = { 2296 nir_type_float, nir_type_float 2297 }, 2298 .is_conversion = false, 2299 .algebraic_properties = 2300 0 2301}, 2302{ 2303 .name = "frexp_exp", 2304 .num_inputs = 1, 2305 .output_size = 0, 2306 .output_type = nir_type_int32, 2307 .input_sizes = { 2308 0 2309 }, 2310 .input_types = { 2311 nir_type_float 2312 }, 2313 .is_conversion = false, 2314 .algebraic_properties = 2315 0 2316}, 2317{ 2318 .name = "frexp_sig", 2319 .num_inputs = 1, 2320 .output_size = 0, 2321 .output_type = nir_type_float, 2322 .input_sizes = { 2323 0 2324 }, 2325 .input_types = { 2326 nir_type_float 2327 }, 2328 .is_conversion = false, 2329 .algebraic_properties = 2330 0 2331}, 2332{ 2333 .name = "fround_even", 2334 .num_inputs = 1, 2335 .output_size = 0, 2336 .output_type = nir_type_float, 2337 .input_sizes = { 2338 0 2339 }, 2340 .input_types = { 2341 nir_type_float 2342 }, 2343 .is_conversion = false, 2344 .algebraic_properties = 2345 0 2346}, 2347{ 2348 .name = "frsq", 2349 .num_inputs = 1, 2350 .output_size = 0, 2351 .output_type = nir_type_float, 2352 .input_sizes = { 2353 0 2354 }, 2355 .input_types = { 2356 nir_type_float 2357 }, 2358 .is_conversion = false, 2359 .algebraic_properties = 2360 0 2361}, 2362{ 2363 .name = "fsat", 2364 .num_inputs = 1, 2365 .output_size = 0, 2366 .output_type = nir_type_float, 2367 .input_sizes = { 2368 0 2369 }, 2370 .input_types = { 2371 nir_type_float 2372 }, 2373 .is_conversion = false, 2374 .algebraic_properties = 2375 0 2376}, 2377{ 2378 .name = "fsign", 2379 .num_inputs = 1, 2380 .output_size = 0, 2381 .output_type = nir_type_float, 2382 .input_sizes = { 2383 0 2384 }, 2385 .input_types = { 2386 nir_type_float 2387 }, 2388 .is_conversion = false, 2389 .algebraic_properties = 2390 0 2391}, 2392{ 2393 .name = "fsin", 2394 .num_inputs = 1, 2395 .output_size = 0, 2396 .output_type = nir_type_float, 2397 .input_sizes = { 2398 0 2399 }, 2400 .input_types = { 2401 nir_type_float 2402 }, 2403 .is_conversion = false, 2404 .algebraic_properties = 2405 0 2406}, 2407{ 2408 .name = "fsqrt", 2409 .num_inputs = 1, 2410 .output_size = 0, 2411 .output_type = nir_type_float, 2412 .input_sizes = { 2413 0 2414 }, 2415 .input_types = { 2416 nir_type_float 2417 }, 2418 .is_conversion = false, 2419 .algebraic_properties = 2420 0 2421}, 2422{ 2423 .name = "fsub", 2424 .num_inputs = 2, 2425 .output_size = 0, 2426 .output_type = nir_type_float, 2427 .input_sizes = { 2428 0, 0 2429 }, 2430 .input_types = { 2431 nir_type_float, nir_type_float 2432 }, 2433 .is_conversion = false, 2434 .algebraic_properties = 2435 0 2436}, 2437{ 2438 .name = "ftrunc", 2439 .num_inputs = 1, 2440 .output_size = 0, 2441 .output_type = nir_type_float, 2442 .input_sizes = { 2443 0 2444 }, 2445 .input_types = { 2446 nir_type_float 2447 }, 2448 .is_conversion = false, 2449 .algebraic_properties = 2450 0 2451}, 2452{ 2453 .name = "fxor", 2454 .num_inputs = 2, 2455 .output_size = 0, 2456 .output_type = nir_type_float32, 2457 .input_sizes = { 2458 0, 0 2459 }, 2460 .input_types = { 2461 nir_type_float32, nir_type_float32 2462 }, 2463 .is_conversion = false, 2464 .algebraic_properties = 2465 NIR_OP_IS_COMMUTATIVE 2466}, 2467{ 2468 .name = "i2b1", 2469 .num_inputs = 1, 2470 .output_size = 0, 2471 .output_type = nir_type_bool1, 2472 .input_sizes = { 2473 0 2474 }, 2475 .input_types = { 2476 nir_type_int 2477 }, 2478 .is_conversion = true, 2479 .algebraic_properties = 2480 0 2481}, 2482{ 2483 .name = "i2b32", 2484 .num_inputs = 1, 2485 .output_size = 0, 2486 .output_type = nir_type_bool32, 2487 .input_sizes = { 2488 0 2489 }, 2490 .input_types = { 2491 nir_type_int 2492 }, 2493 .is_conversion = true, 2494 .algebraic_properties = 2495 0 2496}, 2497{ 2498 .name = "i2f16", 2499 .num_inputs = 1, 2500 .output_size = 0, 2501 .output_type = nir_type_float16, 2502 .input_sizes = { 2503 0 2504 }, 2505 .input_types = { 2506 nir_type_int 2507 }, 2508 .is_conversion = true, 2509 .algebraic_properties = 2510 0 2511}, 2512{ 2513 .name = "i2f32", 2514 .num_inputs = 1, 2515 .output_size = 0, 2516 .output_type = nir_type_float32, 2517 .input_sizes = { 2518 0 2519 }, 2520 .input_types = { 2521 nir_type_int 2522 }, 2523 .is_conversion = true, 2524 .algebraic_properties = 2525 0 2526}, 2527{ 2528 .name = "i2f64", 2529 .num_inputs = 1, 2530 .output_size = 0, 2531 .output_type = nir_type_float64, 2532 .input_sizes = { 2533 0 2534 }, 2535 .input_types = { 2536 nir_type_int 2537 }, 2538 .is_conversion = true, 2539 .algebraic_properties = 2540 0 2541}, 2542{ 2543 .name = "i2i1", 2544 .num_inputs = 1, 2545 .output_size = 0, 2546 .output_type = nir_type_int1, 2547 .input_sizes = { 2548 0 2549 }, 2550 .input_types = { 2551 nir_type_int 2552 }, 2553 .is_conversion = true, 2554 .algebraic_properties = 2555 0 2556}, 2557{ 2558 .name = "i2i16", 2559 .num_inputs = 1, 2560 .output_size = 0, 2561 .output_type = nir_type_int16, 2562 .input_sizes = { 2563 0 2564 }, 2565 .input_types = { 2566 nir_type_int 2567 }, 2568 .is_conversion = true, 2569 .algebraic_properties = 2570 0 2571}, 2572{ 2573 .name = "i2i32", 2574 .num_inputs = 1, 2575 .output_size = 0, 2576 .output_type = nir_type_int32, 2577 .input_sizes = { 2578 0 2579 }, 2580 .input_types = { 2581 nir_type_int 2582 }, 2583 .is_conversion = true, 2584 .algebraic_properties = 2585 0 2586}, 2587{ 2588 .name = "i2i64", 2589 .num_inputs = 1, 2590 .output_size = 0, 2591 .output_type = nir_type_int64, 2592 .input_sizes = { 2593 0 2594 }, 2595 .input_types = { 2596 nir_type_int 2597 }, 2598 .is_conversion = true, 2599 .algebraic_properties = 2600 0 2601}, 2602{ 2603 .name = "i2i8", 2604 .num_inputs = 1, 2605 .output_size = 0, 2606 .output_type = nir_type_int8, 2607 .input_sizes = { 2608 0 2609 }, 2610 .input_types = { 2611 nir_type_int 2612 }, 2613 .is_conversion = true, 2614 .algebraic_properties = 2615 0 2616}, 2617{ 2618 .name = "iabs", 2619 .num_inputs = 1, 2620 .output_size = 0, 2621 .output_type = nir_type_int, 2622 .input_sizes = { 2623 0 2624 }, 2625 .input_types = { 2626 nir_type_int 2627 }, 2628 .is_conversion = false, 2629 .algebraic_properties = 2630 0 2631}, 2632{ 2633 .name = "iadd", 2634 .num_inputs = 2, 2635 .output_size = 0, 2636 .output_type = nir_type_int, 2637 .input_sizes = { 2638 0, 0 2639 }, 2640 .input_types = { 2641 nir_type_int, nir_type_int 2642 }, 2643 .is_conversion = false, 2644 .algebraic_properties = 2645 NIR_OP_IS_COMMUTATIVE | NIR_OP_IS_ASSOCIATIVE 2646}, 2647{ 2648 .name = "iadd_sat", 2649 .num_inputs = 2, 2650 .output_size = 0, 2651 .output_type = nir_type_int, 2652 .input_sizes = { 2653 0, 0 2654 }, 2655 .input_types = { 2656 nir_type_int, nir_type_int 2657 }, 2658 .is_conversion = false, 2659 .algebraic_properties = 2660 NIR_OP_IS_COMMUTATIVE 2661}, 2662{ 2663 .name = "iand", 2664 .num_inputs = 2, 2665 .output_size = 0, 2666 .output_type = nir_type_uint, 2667 .input_sizes = { 2668 0, 0 2669 }, 2670 .input_types = { 2671 nir_type_uint, nir_type_uint 2672 }, 2673 .is_conversion = false, 2674 .algebraic_properties = 2675 NIR_OP_IS_COMMUTATIVE | NIR_OP_IS_ASSOCIATIVE 2676}, 2677{ 2678 .name = "ibfe", 2679 .num_inputs = 3, 2680 .output_size = 0, 2681 .output_type = nir_type_int32, 2682 .input_sizes = { 2683 0, 0, 0 2684 }, 2685 .input_types = { 2686 nir_type_int32, nir_type_int32, nir_type_int32 2687 }, 2688 .is_conversion = false, 2689 .algebraic_properties = 2690 0 2691}, 2692{ 2693 .name = "ibitfield_extract", 2694 .num_inputs = 3, 2695 .output_size = 0, 2696 .output_type = nir_type_int32, 2697 .input_sizes = { 2698 0, 0, 0 2699 }, 2700 .input_types = { 2701 nir_type_int32, nir_type_int32, nir_type_int32 2702 }, 2703 .is_conversion = false, 2704 .algebraic_properties = 2705 0 2706}, 2707{ 2708 .name = "idiv", 2709 .num_inputs = 2, 2710 .output_size = 0, 2711 .output_type = nir_type_int, 2712 .input_sizes = { 2713 0, 0 2714 }, 2715 .input_types = { 2716 nir_type_int, nir_type_int 2717 }, 2718 .is_conversion = false, 2719 .algebraic_properties = 2720 0 2721}, 2722{ 2723 .name = "ieq", 2724 .num_inputs = 2, 2725 .output_size = 0, 2726 .output_type = nir_type_bool1, 2727 .input_sizes = { 2728 0, 0 2729 }, 2730 .input_types = { 2731 nir_type_int, nir_type_int 2732 }, 2733 .is_conversion = false, 2734 .algebraic_properties = 2735 NIR_OP_IS_COMMUTATIVE 2736}, 2737{ 2738 .name = "ieq32", 2739 .num_inputs = 2, 2740 .output_size = 0, 2741 .output_type = nir_type_bool32, 2742 .input_sizes = { 2743 0, 0 2744 }, 2745 .input_types = { 2746 nir_type_int, nir_type_int 2747 }, 2748 .is_conversion = false, 2749 .algebraic_properties = 2750 NIR_OP_IS_COMMUTATIVE 2751}, 2752{ 2753 .name = "ifind_msb", 2754 .num_inputs = 1, 2755 .output_size = 0, 2756 .output_type = nir_type_int32, 2757 .input_sizes = { 2758 0 2759 }, 2760 .input_types = { 2761 nir_type_int32 2762 }, 2763 .is_conversion = false, 2764 .algebraic_properties = 2765 0 2766}, 2767{ 2768 .name = "ige", 2769 .num_inputs = 2, 2770 .output_size = 0, 2771 .output_type = nir_type_bool1, 2772 .input_sizes = { 2773 0, 0 2774 }, 2775 .input_types = { 2776 nir_type_int, nir_type_int 2777 }, 2778 .is_conversion = false, 2779 .algebraic_properties = 2780 0 2781}, 2782{ 2783 .name = "ige32", 2784 .num_inputs = 2, 2785 .output_size = 0, 2786 .output_type = nir_type_bool32, 2787 .input_sizes = { 2788 0, 0 2789 }, 2790 .input_types = { 2791 nir_type_int, nir_type_int 2792 }, 2793 .is_conversion = false, 2794 .algebraic_properties = 2795 0 2796}, 2797{ 2798 .name = "ihadd", 2799 .num_inputs = 2, 2800 .output_size = 0, 2801 .output_type = nir_type_int, 2802 .input_sizes = { 2803 0, 0 2804 }, 2805 .input_types = { 2806 nir_type_int, nir_type_int 2807 }, 2808 .is_conversion = false, 2809 .algebraic_properties = 2810 NIR_OP_IS_COMMUTATIVE 2811}, 2812{ 2813 .name = "ilt", 2814 .num_inputs = 2, 2815 .output_size = 0, 2816 .output_type = nir_type_bool1, 2817 .input_sizes = { 2818 0, 0 2819 }, 2820 .input_types = { 2821 nir_type_int, nir_type_int 2822 }, 2823 .is_conversion = false, 2824 .algebraic_properties = 2825 0 2826}, 2827{ 2828 .name = "ilt32", 2829 .num_inputs = 2, 2830 .output_size = 0, 2831 .output_type = nir_type_bool32, 2832 .input_sizes = { 2833 0, 0 2834 }, 2835 .input_types = { 2836 nir_type_int, nir_type_int 2837 }, 2838 .is_conversion = false, 2839 .algebraic_properties = 2840 0 2841}, 2842{ 2843 .name = "imax", 2844 .num_inputs = 2, 2845 .output_size = 0, 2846 .output_type = nir_type_int, 2847 .input_sizes = { 2848 0, 0 2849 }, 2850 .input_types = { 2851 nir_type_int, nir_type_int 2852 }, 2853 .is_conversion = false, 2854 .algebraic_properties = 2855 NIR_OP_IS_COMMUTATIVE | NIR_OP_IS_ASSOCIATIVE 2856}, 2857{ 2858 .name = "imax3", 2859 .num_inputs = 3, 2860 .output_size = 0, 2861 .output_type = nir_type_int, 2862 .input_sizes = { 2863 0, 0, 0 2864 }, 2865 .input_types = { 2866 nir_type_int, nir_type_int, nir_type_int 2867 }, 2868 .is_conversion = false, 2869 .algebraic_properties = 2870 0 2871}, 2872{ 2873 .name = "imed3", 2874 .num_inputs = 3, 2875 .output_size = 0, 2876 .output_type = nir_type_int, 2877 .input_sizes = { 2878 0, 0, 0 2879 }, 2880 .input_types = { 2881 nir_type_int, nir_type_int, nir_type_int 2882 }, 2883 .is_conversion = false, 2884 .algebraic_properties = 2885 0 2886}, 2887{ 2888 .name = "imin", 2889 .num_inputs = 2, 2890 .output_size = 0, 2891 .output_type = nir_type_int, 2892 .input_sizes = { 2893 0, 0 2894 }, 2895 .input_types = { 2896 nir_type_int, nir_type_int 2897 }, 2898 .is_conversion = false, 2899 .algebraic_properties = 2900 NIR_OP_IS_COMMUTATIVE | NIR_OP_IS_ASSOCIATIVE 2901}, 2902{ 2903 .name = "imin3", 2904 .num_inputs = 3, 2905 .output_size = 0, 2906 .output_type = nir_type_int, 2907 .input_sizes = { 2908 0, 0, 0 2909 }, 2910 .input_types = { 2911 nir_type_int, nir_type_int, nir_type_int 2912 }, 2913 .is_conversion = false, 2914 .algebraic_properties = 2915 0 2916}, 2917{ 2918 .name = "imod", 2919 .num_inputs = 2, 2920 .output_size = 0, 2921 .output_type = nir_type_int, 2922 .input_sizes = { 2923 0, 0 2924 }, 2925 .input_types = { 2926 nir_type_int, nir_type_int 2927 }, 2928 .is_conversion = false, 2929 .algebraic_properties = 2930 0 2931}, 2932{ 2933 .name = "imov", 2934 .num_inputs = 1, 2935 .output_size = 0, 2936 .output_type = nir_type_int, 2937 .input_sizes = { 2938 0 2939 }, 2940 .input_types = { 2941 nir_type_int 2942 }, 2943 .is_conversion = false, 2944 .algebraic_properties = 2945 0 2946}, 2947{ 2948 .name = "imul", 2949 .num_inputs = 2, 2950 .output_size = 0, 2951 .output_type = nir_type_int, 2952 .input_sizes = { 2953 0, 0 2954 }, 2955 .input_types = { 2956 nir_type_int, nir_type_int 2957 }, 2958 .is_conversion = false, 2959 .algebraic_properties = 2960 NIR_OP_IS_COMMUTATIVE | NIR_OP_IS_ASSOCIATIVE 2961}, 2962{ 2963 .name = "imul_2x32_64", 2964 .num_inputs = 2, 2965 .output_size = 0, 2966 .output_type = nir_type_int64, 2967 .input_sizes = { 2968 0, 0 2969 }, 2970 .input_types = { 2971 nir_type_int32, nir_type_int32 2972 }, 2973 .is_conversion = false, 2974 .algebraic_properties = 2975 NIR_OP_IS_COMMUTATIVE 2976}, 2977{ 2978 .name = "imul_high", 2979 .num_inputs = 2, 2980 .output_size = 0, 2981 .output_type = nir_type_int, 2982 .input_sizes = { 2983 0, 0 2984 }, 2985 .input_types = { 2986 nir_type_int, nir_type_int 2987 }, 2988 .is_conversion = false, 2989 .algebraic_properties = 2990 NIR_OP_IS_COMMUTATIVE 2991}, 2992{ 2993 .name = "ine", 2994 .num_inputs = 2, 2995 .output_size = 0, 2996 .output_type = nir_type_bool1, 2997 .input_sizes = { 2998 0, 0 2999 }, 3000 .input_types = { 3001 nir_type_int, nir_type_int 3002 }, 3003 .is_conversion = false, 3004 .algebraic_properties = 3005 NIR_OP_IS_COMMUTATIVE 3006}, 3007{ 3008 .name = "ine32", 3009 .num_inputs = 2, 3010 .output_size = 0, 3011 .output_type = nir_type_bool32, 3012 .input_sizes = { 3013 0, 0 3014 }, 3015 .input_types = { 3016 nir_type_int, nir_type_int 3017 }, 3018 .is_conversion = false, 3019 .algebraic_properties = 3020 NIR_OP_IS_COMMUTATIVE 3021}, 3022{ 3023 .name = "ineg", 3024 .num_inputs = 1, 3025 .output_size = 0, 3026 .output_type = nir_type_int, 3027 .input_sizes = { 3028 0 3029 }, 3030 .input_types = { 3031 nir_type_int 3032 }, 3033 .is_conversion = false, 3034 .algebraic_properties = 3035 0 3036}, 3037{ 3038 .name = "inot", 3039 .num_inputs = 1, 3040 .output_size = 0, 3041 .output_type = nir_type_int, 3042 .input_sizes = { 3043 0 3044 }, 3045 .input_types = { 3046 nir_type_int 3047 }, 3048 .is_conversion = false, 3049 .algebraic_properties = 3050 0 3051}, 3052{ 3053 .name = "ior", 3054 .num_inputs = 2, 3055 .output_size = 0, 3056 .output_type = nir_type_uint, 3057 .input_sizes = { 3058 0, 0 3059 }, 3060 .input_types = { 3061 nir_type_uint, nir_type_uint 3062 }, 3063 .is_conversion = false, 3064 .algebraic_properties = 3065 NIR_OP_IS_COMMUTATIVE | NIR_OP_IS_ASSOCIATIVE 3066}, 3067{ 3068 .name = "irem", 3069 .num_inputs = 2, 3070 .output_size = 0, 3071 .output_type = nir_type_int, 3072 .input_sizes = { 3073 0, 0 3074 }, 3075 .input_types = { 3076 nir_type_int, nir_type_int 3077 }, 3078 .is_conversion = false, 3079 .algebraic_properties = 3080 0 3081}, 3082{ 3083 .name = "irhadd", 3084 .num_inputs = 2, 3085 .output_size = 0, 3086 .output_type = nir_type_int, 3087 .input_sizes = { 3088 0, 0 3089 }, 3090 .input_types = { 3091 nir_type_int, nir_type_int 3092 }, 3093 .is_conversion = false, 3094 .algebraic_properties = 3095 NIR_OP_IS_COMMUTATIVE 3096}, 3097{ 3098 .name = "ishl", 3099 .num_inputs = 2, 3100 .output_size = 0, 3101 .output_type = nir_type_int, 3102 .input_sizes = { 3103 0, 0 3104 }, 3105 .input_types = { 3106 nir_type_int, nir_type_uint32 3107 }, 3108 .is_conversion = false, 3109 .algebraic_properties = 3110 0 3111}, 3112{ 3113 .name = "ishr", 3114 .num_inputs = 2, 3115 .output_size = 0, 3116 .output_type = nir_type_int, 3117 .input_sizes = { 3118 0, 0 3119 }, 3120 .input_types = { 3121 nir_type_int, nir_type_uint32 3122 }, 3123 .is_conversion = false, 3124 .algebraic_properties = 3125 0 3126}, 3127{ 3128 .name = "isign", 3129 .num_inputs = 1, 3130 .output_size = 0, 3131 .output_type = nir_type_int, 3132 .input_sizes = { 3133 0 3134 }, 3135 .input_types = { 3136 nir_type_int 3137 }, 3138 .is_conversion = false, 3139 .algebraic_properties = 3140 0 3141}, 3142{ 3143 .name = "isub", 3144 .num_inputs = 2, 3145 .output_size = 0, 3146 .output_type = nir_type_int, 3147 .input_sizes = { 3148 0, 0 3149 }, 3150 .input_types = { 3151 nir_type_int, nir_type_int 3152 }, 3153 .is_conversion = false, 3154 .algebraic_properties = 3155 0 3156}, 3157{ 3158 .name = "isub_sat", 3159 .num_inputs = 2, 3160 .output_size = 0, 3161 .output_type = nir_type_int, 3162 .input_sizes = { 3163 0, 0 3164 }, 3165 .input_types = { 3166 nir_type_int, nir_type_int 3167 }, 3168 .is_conversion = false, 3169 .algebraic_properties = 3170 0 3171}, 3172{ 3173 .name = "ixor", 3174 .num_inputs = 2, 3175 .output_size = 0, 3176 .output_type = nir_type_uint, 3177 .input_sizes = { 3178 0, 0 3179 }, 3180 .input_types = { 3181 nir_type_uint, nir_type_uint 3182 }, 3183 .is_conversion = false, 3184 .algebraic_properties = 3185 NIR_OP_IS_COMMUTATIVE | NIR_OP_IS_ASSOCIATIVE 3186}, 3187{ 3188 .name = "ldexp", 3189 .num_inputs = 2, 3190 .output_size = 0, 3191 .output_type = nir_type_float, 3192 .input_sizes = { 3193 0, 0 3194 }, 3195 .input_types = { 3196 nir_type_float, nir_type_int32 3197 }, 3198 .is_conversion = false, 3199 .algebraic_properties = 3200 0 3201}, 3202{ 3203 .name = "pack_32_2x16", 3204 .num_inputs = 1, 3205 .output_size = 1, 3206 .output_type = nir_type_uint32, 3207 .input_sizes = { 3208 2 3209 }, 3210 .input_types = { 3211 nir_type_uint16 3212 }, 3213 .is_conversion = false, 3214 .algebraic_properties = 3215 0 3216}, 3217{ 3218 .name = "pack_32_2x16_split", 3219 .num_inputs = 2, 3220 .output_size = 0, 3221 .output_type = nir_type_uint32, 3222 .input_sizes = { 3223 0, 0 3224 }, 3225 .input_types = { 3226 nir_type_uint16, nir_type_uint16 3227 }, 3228 .is_conversion = false, 3229 .algebraic_properties = 3230 0 3231}, 3232{ 3233 .name = "pack_64_2x32", 3234 .num_inputs = 1, 3235 .output_size = 1, 3236 .output_type = nir_type_uint64, 3237 .input_sizes = { 3238 2 3239 }, 3240 .input_types = { 3241 nir_type_uint32 3242 }, 3243 .is_conversion = false, 3244 .algebraic_properties = 3245 0 3246}, 3247{ 3248 .name = "pack_64_2x32_split", 3249 .num_inputs = 2, 3250 .output_size = 0, 3251 .output_type = nir_type_uint64, 3252 .input_sizes = { 3253 0, 0 3254 }, 3255 .input_types = { 3256 nir_type_uint32, nir_type_uint32 3257 }, 3258 .is_conversion = false, 3259 .algebraic_properties = 3260 0 3261}, 3262{ 3263 .name = "pack_64_4x16", 3264 .num_inputs = 1, 3265 .output_size = 1, 3266 .output_type = nir_type_uint64, 3267 .input_sizes = { 3268 4 3269 }, 3270 .input_types = { 3271 nir_type_uint16 3272 }, 3273 .is_conversion = false, 3274 .algebraic_properties = 3275 0 3276}, 3277{ 3278 .name = "pack_half_2x16", 3279 .num_inputs = 1, 3280 .output_size = 1, 3281 .output_type = nir_type_uint32, 3282 .input_sizes = { 3283 2 3284 }, 3285 .input_types = { 3286 nir_type_float32 3287 }, 3288 .is_conversion = false, 3289 .algebraic_properties = 3290 0 3291}, 3292{ 3293 .name = "pack_half_2x16_split", 3294 .num_inputs = 2, 3295 .output_size = 1, 3296 .output_type = nir_type_uint32, 3297 .input_sizes = { 3298 1, 1 3299 }, 3300 .input_types = { 3301 nir_type_float32, nir_type_float32 3302 }, 3303 .is_conversion = false, 3304 .algebraic_properties = 3305 0 3306}, 3307{ 3308 .name = "pack_snorm_2x16", 3309 .num_inputs = 1, 3310 .output_size = 1, 3311 .output_type = nir_type_uint32, 3312 .input_sizes = { 3313 2 3314 }, 3315 .input_types = { 3316 nir_type_float32 3317 }, 3318 .is_conversion = false, 3319 .algebraic_properties = 3320 0 3321}, 3322{ 3323 .name = "pack_snorm_4x8", 3324 .num_inputs = 1, 3325 .output_size = 1, 3326 .output_type = nir_type_uint32, 3327 .input_sizes = { 3328 4 3329 }, 3330 .input_types = { 3331 nir_type_float32 3332 }, 3333 .is_conversion = false, 3334 .algebraic_properties = 3335 0 3336}, 3337{ 3338 .name = "pack_unorm_2x16", 3339 .num_inputs = 1, 3340 .output_size = 1, 3341 .output_type = nir_type_uint32, 3342 .input_sizes = { 3343 2 3344 }, 3345 .input_types = { 3346 nir_type_float32 3347 }, 3348 .is_conversion = false, 3349 .algebraic_properties = 3350 0 3351}, 3352{ 3353 .name = "pack_unorm_4x8", 3354 .num_inputs = 1, 3355 .output_size = 1, 3356 .output_type = nir_type_uint32, 3357 .input_sizes = { 3358 4 3359 }, 3360 .input_types = { 3361 nir_type_float32 3362 }, 3363 .is_conversion = false, 3364 .algebraic_properties = 3365 0 3366}, 3367{ 3368 .name = "pack_uvec2_to_uint", 3369 .num_inputs = 1, 3370 .output_size = 1, 3371 .output_type = nir_type_uint32, 3372 .input_sizes = { 3373 2 3374 }, 3375 .input_types = { 3376 nir_type_uint32 3377 }, 3378 .is_conversion = false, 3379 .algebraic_properties = 3380 0 3381}, 3382{ 3383 .name = "pack_uvec4_to_uint", 3384 .num_inputs = 1, 3385 .output_size = 1, 3386 .output_type = nir_type_uint32, 3387 .input_sizes = { 3388 4 3389 }, 3390 .input_types = { 3391 nir_type_uint32 3392 }, 3393 .is_conversion = false, 3394 .algebraic_properties = 3395 0 3396}, 3397{ 3398 .name = "seq", 3399 .num_inputs = 2, 3400 .output_size = 0, 3401 .output_type = nir_type_float32, 3402 .input_sizes = { 3403 0, 0 3404 }, 3405 .input_types = { 3406 nir_type_float32, nir_type_float32 3407 }, 3408 .is_conversion = false, 3409 .algebraic_properties = 3410 NIR_OP_IS_COMMUTATIVE 3411}, 3412{ 3413 .name = "sge", 3414 .num_inputs = 2, 3415 .output_size = 0, 3416 .output_type = nir_type_float, 3417 .input_sizes = { 3418 0, 0 3419 }, 3420 .input_types = { 3421 nir_type_float, nir_type_float 3422 }, 3423 .is_conversion = false, 3424 .algebraic_properties = 3425 0 3426}, 3427{ 3428 .name = "slt", 3429 .num_inputs = 2, 3430 .output_size = 0, 3431 .output_type = nir_type_float32, 3432 .input_sizes = { 3433 0, 0 3434 }, 3435 .input_types = { 3436 nir_type_float32, nir_type_float32 3437 }, 3438 .is_conversion = false, 3439 .algebraic_properties = 3440 0 3441}, 3442{ 3443 .name = "sne", 3444 .num_inputs = 2, 3445 .output_size = 0, 3446 .output_type = nir_type_float32, 3447 .input_sizes = { 3448 0, 0 3449 }, 3450 .input_types = { 3451 nir_type_float32, nir_type_float32 3452 }, 3453 .is_conversion = false, 3454 .algebraic_properties = 3455 NIR_OP_IS_COMMUTATIVE 3456}, 3457{ 3458 .name = "u2f16", 3459 .num_inputs = 1, 3460 .output_size = 0, 3461 .output_type = nir_type_float16, 3462 .input_sizes = { 3463 0 3464 }, 3465 .input_types = { 3466 nir_type_uint 3467 }, 3468 .is_conversion = true, 3469 .algebraic_properties = 3470 0 3471}, 3472{ 3473 .name = "u2f32", 3474 .num_inputs = 1, 3475 .output_size = 0, 3476 .output_type = nir_type_float32, 3477 .input_sizes = { 3478 0 3479 }, 3480 .input_types = { 3481 nir_type_uint 3482 }, 3483 .is_conversion = true, 3484 .algebraic_properties = 3485 0 3486}, 3487{ 3488 .name = "u2f64", 3489 .num_inputs = 1, 3490 .output_size = 0, 3491 .output_type = nir_type_float64, 3492 .input_sizes = { 3493 0 3494 }, 3495 .input_types = { 3496 nir_type_uint 3497 }, 3498 .is_conversion = true, 3499 .algebraic_properties = 3500 0 3501}, 3502{ 3503 .name = "u2u1", 3504 .num_inputs = 1, 3505 .output_size = 0, 3506 .output_type = nir_type_uint1, 3507 .input_sizes = { 3508 0 3509 }, 3510 .input_types = { 3511 nir_type_uint 3512 }, 3513 .is_conversion = true, 3514 .algebraic_properties = 3515 0 3516}, 3517{ 3518 .name = "u2u16", 3519 .num_inputs = 1, 3520 .output_size = 0, 3521 .output_type = nir_type_uint16, 3522 .input_sizes = { 3523 0 3524 }, 3525 .input_types = { 3526 nir_type_uint 3527 }, 3528 .is_conversion = true, 3529 .algebraic_properties = 3530 0 3531}, 3532{ 3533 .name = "u2u32", 3534 .num_inputs = 1, 3535 .output_size = 0, 3536 .output_type = nir_type_uint32, 3537 .input_sizes = { 3538 0 3539 }, 3540 .input_types = { 3541 nir_type_uint 3542 }, 3543 .is_conversion = true, 3544 .algebraic_properties = 3545 0 3546}, 3547{ 3548 .name = "u2u64", 3549 .num_inputs = 1, 3550 .output_size = 0, 3551 .output_type = nir_type_uint64, 3552 .input_sizes = { 3553 0 3554 }, 3555 .input_types = { 3556 nir_type_uint 3557 }, 3558 .is_conversion = true, 3559 .algebraic_properties = 3560 0 3561}, 3562{ 3563 .name = "u2u8", 3564 .num_inputs = 1, 3565 .output_size = 0, 3566 .output_type = nir_type_uint8, 3567 .input_sizes = { 3568 0 3569 }, 3570 .input_types = { 3571 nir_type_uint 3572 }, 3573 .is_conversion = true, 3574 .algebraic_properties = 3575 0 3576}, 3577{ 3578 .name = "uadd_carry", 3579 .num_inputs = 2, 3580 .output_size = 0, 3581 .output_type = nir_type_uint, 3582 .input_sizes = { 3583 0, 0 3584 }, 3585 .input_types = { 3586 nir_type_uint, nir_type_uint 3587 }, 3588 .is_conversion = false, 3589 .algebraic_properties = 3590 NIR_OP_IS_COMMUTATIVE 3591}, 3592{ 3593 .name = "uadd_sat", 3594 .num_inputs = 2, 3595 .output_size = 0, 3596 .output_type = nir_type_uint, 3597 .input_sizes = { 3598 0, 0 3599 }, 3600 .input_types = { 3601 nir_type_uint, nir_type_uint 3602 }, 3603 .is_conversion = false, 3604 .algebraic_properties = 3605 NIR_OP_IS_COMMUTATIVE 3606}, 3607{ 3608 .name = "ubfe", 3609 .num_inputs = 3, 3610 .output_size = 0, 3611 .output_type = nir_type_uint32, 3612 .input_sizes = { 3613 0, 0, 0 3614 }, 3615 .input_types = { 3616 nir_type_uint32, nir_type_int32, nir_type_int32 3617 }, 3618 .is_conversion = false, 3619 .algebraic_properties = 3620 0 3621}, 3622{ 3623 .name = "ubitfield_extract", 3624 .num_inputs = 3, 3625 .output_size = 0, 3626 .output_type = nir_type_uint32, 3627 .input_sizes = { 3628 0, 0, 0 3629 }, 3630 .input_types = { 3631 nir_type_uint32, nir_type_int32, nir_type_int32 3632 }, 3633 .is_conversion = false, 3634 .algebraic_properties = 3635 0 3636}, 3637{ 3638 .name = "udiv", 3639 .num_inputs = 2, 3640 .output_size = 0, 3641 .output_type = nir_type_uint, 3642 .input_sizes = { 3643 0, 0 3644 }, 3645 .input_types = { 3646 nir_type_uint, nir_type_uint 3647 }, 3648 .is_conversion = false, 3649 .algebraic_properties = 3650 0 3651}, 3652{ 3653 .name = "ufind_msb", 3654 .num_inputs = 1, 3655 .output_size = 0, 3656 .output_type = nir_type_int32, 3657 .input_sizes = { 3658 0 3659 }, 3660 .input_types = { 3661 nir_type_uint 3662 }, 3663 .is_conversion = false, 3664 .algebraic_properties = 3665 0 3666}, 3667{ 3668 .name = "uge", 3669 .num_inputs = 2, 3670 .output_size = 0, 3671 .output_type = nir_type_bool1, 3672 .input_sizes = { 3673 0, 0 3674 }, 3675 .input_types = { 3676 nir_type_uint, nir_type_uint 3677 }, 3678 .is_conversion = false, 3679 .algebraic_properties = 3680 0 3681}, 3682{ 3683 .name = "uge32", 3684 .num_inputs = 2, 3685 .output_size = 0, 3686 .output_type = nir_type_bool32, 3687 .input_sizes = { 3688 0, 0 3689 }, 3690 .input_types = { 3691 nir_type_uint, nir_type_uint 3692 }, 3693 .is_conversion = false, 3694 .algebraic_properties = 3695 0 3696}, 3697{ 3698 .name = "uhadd", 3699 .num_inputs = 2, 3700 .output_size = 0, 3701 .output_type = nir_type_uint, 3702 .input_sizes = { 3703 0, 0 3704 }, 3705 .input_types = { 3706 nir_type_uint, nir_type_uint 3707 }, 3708 .is_conversion = false, 3709 .algebraic_properties = 3710 NIR_OP_IS_COMMUTATIVE 3711}, 3712{ 3713 .name = "ult", 3714 .num_inputs = 2, 3715 .output_size = 0, 3716 .output_type = nir_type_bool1, 3717 .input_sizes = { 3718 0, 0 3719 }, 3720 .input_types = { 3721 nir_type_uint, nir_type_uint 3722 }, 3723 .is_conversion = false, 3724 .algebraic_properties = 3725 0 3726}, 3727{ 3728 .name = "ult32", 3729 .num_inputs = 2, 3730 .output_size = 0, 3731 .output_type = nir_type_bool32, 3732 .input_sizes = { 3733 0, 0 3734 }, 3735 .input_types = { 3736 nir_type_uint, nir_type_uint 3737 }, 3738 .is_conversion = false, 3739 .algebraic_properties = 3740 0 3741}, 3742{ 3743 .name = "umax", 3744 .num_inputs = 2, 3745 .output_size = 0, 3746 .output_type = nir_type_uint, 3747 .input_sizes = { 3748 0, 0 3749 }, 3750 .input_types = { 3751 nir_type_uint, nir_type_uint 3752 }, 3753 .is_conversion = false, 3754 .algebraic_properties = 3755 NIR_OP_IS_COMMUTATIVE | NIR_OP_IS_ASSOCIATIVE 3756}, 3757{ 3758 .name = "umax3", 3759 .num_inputs = 3, 3760 .output_size = 0, 3761 .output_type = nir_type_uint, 3762 .input_sizes = { 3763 0, 0, 0 3764 }, 3765 .input_types = { 3766 nir_type_uint, nir_type_uint, nir_type_uint 3767 }, 3768 .is_conversion = false, 3769 .algebraic_properties = 3770 0 3771}, 3772{ 3773 .name = "umax_4x8", 3774 .num_inputs = 2, 3775 .output_size = 0, 3776 .output_type = nir_type_int32, 3777 .input_sizes = { 3778 0, 0 3779 }, 3780 .input_types = { 3781 nir_type_int32, nir_type_int32 3782 }, 3783 .is_conversion = false, 3784 .algebraic_properties = 3785 NIR_OP_IS_COMMUTATIVE | NIR_OP_IS_ASSOCIATIVE 3786}, 3787{ 3788 .name = "umed3", 3789 .num_inputs = 3, 3790 .output_size = 0, 3791 .output_type = nir_type_uint, 3792 .input_sizes = { 3793 0, 0, 0 3794 }, 3795 .input_types = { 3796 nir_type_uint, nir_type_uint, nir_type_uint 3797 }, 3798 .is_conversion = false, 3799 .algebraic_properties = 3800 0 3801}, 3802{ 3803 .name = "umin", 3804 .num_inputs = 2, 3805 .output_size = 0, 3806 .output_type = nir_type_uint, 3807 .input_sizes = { 3808 0, 0 3809 }, 3810 .input_types = { 3811 nir_type_uint, nir_type_uint 3812 }, 3813 .is_conversion = false, 3814 .algebraic_properties = 3815 NIR_OP_IS_COMMUTATIVE | NIR_OP_IS_ASSOCIATIVE 3816}, 3817{ 3818 .name = "umin3", 3819 .num_inputs = 3, 3820 .output_size = 0, 3821 .output_type = nir_type_uint, 3822 .input_sizes = { 3823 0, 0, 0 3824 }, 3825 .input_types = { 3826 nir_type_uint, nir_type_uint, nir_type_uint 3827 }, 3828 .is_conversion = false, 3829 .algebraic_properties = 3830 0 3831}, 3832{ 3833 .name = "umin_4x8", 3834 .num_inputs = 2, 3835 .output_size = 0, 3836 .output_type = nir_type_int32, 3837 .input_sizes = { 3838 0, 0 3839 }, 3840 .input_types = { 3841 nir_type_int32, nir_type_int32 3842 }, 3843 .is_conversion = false, 3844 .algebraic_properties = 3845 NIR_OP_IS_COMMUTATIVE | NIR_OP_IS_ASSOCIATIVE 3846}, 3847{ 3848 .name = "umod", 3849 .num_inputs = 2, 3850 .output_size = 0, 3851 .output_type = nir_type_uint, 3852 .input_sizes = { 3853 0, 0 3854 }, 3855 .input_types = { 3856 nir_type_uint, nir_type_uint 3857 }, 3858 .is_conversion = false, 3859 .algebraic_properties = 3860 0 3861}, 3862{ 3863 .name = "umul_2x32_64", 3864 .num_inputs = 2, 3865 .output_size = 0, 3866 .output_type = nir_type_uint64, 3867 .input_sizes = { 3868 0, 0 3869 }, 3870 .input_types = { 3871 nir_type_uint32, nir_type_uint32 3872 }, 3873 .is_conversion = false, 3874 .algebraic_properties = 3875 NIR_OP_IS_COMMUTATIVE 3876}, 3877{ 3878 .name = "umul_high", 3879 .num_inputs = 2, 3880 .output_size = 0, 3881 .output_type = nir_type_uint, 3882 .input_sizes = { 3883 0, 0 3884 }, 3885 .input_types = { 3886 nir_type_uint, nir_type_uint 3887 }, 3888 .is_conversion = false, 3889 .algebraic_properties = 3890 NIR_OP_IS_COMMUTATIVE 3891}, 3892{ 3893 .name = "umul_unorm_4x8", 3894 .num_inputs = 2, 3895 .output_size = 0, 3896 .output_type = nir_type_int32, 3897 .input_sizes = { 3898 0, 0 3899 }, 3900 .input_types = { 3901 nir_type_int32, nir_type_int32 3902 }, 3903 .is_conversion = false, 3904 .algebraic_properties = 3905 NIR_OP_IS_COMMUTATIVE | NIR_OP_IS_ASSOCIATIVE 3906}, 3907{ 3908 .name = "unpack_32_2x16", 3909 .num_inputs = 1, 3910 .output_size = 2, 3911 .output_type = nir_type_uint16, 3912 .input_sizes = { 3913 1 3914 }, 3915 .input_types = { 3916 nir_type_uint32 3917 }, 3918 .is_conversion = false, 3919 .algebraic_properties = 3920 0 3921}, 3922{ 3923 .name = "unpack_32_2x16_split_x", 3924 .num_inputs = 1, 3925 .output_size = 0, 3926 .output_type = nir_type_uint16, 3927 .input_sizes = { 3928 0 3929 }, 3930 .input_types = { 3931 nir_type_uint32 3932 }, 3933 .is_conversion = false, 3934 .algebraic_properties = 3935 0 3936}, 3937{ 3938 .name = "unpack_32_2x16_split_y", 3939 .num_inputs = 1, 3940 .output_size = 0, 3941 .output_type = nir_type_uint16, 3942 .input_sizes = { 3943 0 3944 }, 3945 .input_types = { 3946 nir_type_uint32 3947 }, 3948 .is_conversion = false, 3949 .algebraic_properties = 3950 0 3951}, 3952{ 3953 .name = "unpack_64_2x32", 3954 .num_inputs = 1, 3955 .output_size = 2, 3956 .output_type = nir_type_uint32, 3957 .input_sizes = { 3958 1 3959 }, 3960 .input_types = { 3961 nir_type_uint64 3962 }, 3963 .is_conversion = false, 3964 .algebraic_properties = 3965 0 3966}, 3967{ 3968 .name = "unpack_64_2x32_split_x", 3969 .num_inputs = 1, 3970 .output_size = 0, 3971 .output_type = nir_type_uint32, 3972 .input_sizes = { 3973 0 3974 }, 3975 .input_types = { 3976 nir_type_uint64 3977 }, 3978 .is_conversion = false, 3979 .algebraic_properties = 3980 0 3981}, 3982{ 3983 .name = "unpack_64_2x32_split_y", 3984 .num_inputs = 1, 3985 .output_size = 0, 3986 .output_type = nir_type_uint32, 3987 .input_sizes = { 3988 0 3989 }, 3990 .input_types = { 3991 nir_type_uint64 3992 }, 3993 .is_conversion = false, 3994 .algebraic_properties = 3995 0 3996}, 3997{ 3998 .name = "unpack_64_4x16", 3999 .num_inputs = 1, 4000 .output_size = 4, 4001 .output_type = nir_type_uint16, 4002 .input_sizes = { 4003 1 4004 }, 4005 .input_types = { 4006 nir_type_uint64 4007 }, 4008 .is_conversion = false, 4009 .algebraic_properties = 4010 0 4011}, 4012{ 4013 .name = "unpack_half_2x16", 4014 .num_inputs = 1, 4015 .output_size = 2, 4016 .output_type = nir_type_float32, 4017 .input_sizes = { 4018 1 4019 }, 4020 .input_types = { 4021 nir_type_uint32 4022 }, 4023 .is_conversion = false, 4024 .algebraic_properties = 4025 0 4026}, 4027{ 4028 .name = "unpack_half_2x16_split_x", 4029 .num_inputs = 1, 4030 .output_size = 0, 4031 .output_type = nir_type_float32, 4032 .input_sizes = { 4033 0 4034 }, 4035 .input_types = { 4036 nir_type_uint32 4037 }, 4038 .is_conversion = false, 4039 .algebraic_properties = 4040 0 4041}, 4042{ 4043 .name = "unpack_half_2x16_split_y", 4044 .num_inputs = 1, 4045 .output_size = 0, 4046 .output_type = nir_type_float32, 4047 .input_sizes = { 4048 0 4049 }, 4050 .input_types = { 4051 nir_type_uint32 4052 }, 4053 .is_conversion = false, 4054 .algebraic_properties = 4055 0 4056}, 4057{ 4058 .name = "unpack_snorm_2x16", 4059 .num_inputs = 1, 4060 .output_size = 2, 4061 .output_type = nir_type_float32, 4062 .input_sizes = { 4063 1 4064 }, 4065 .input_types = { 4066 nir_type_uint32 4067 }, 4068 .is_conversion = false, 4069 .algebraic_properties = 4070 0 4071}, 4072{ 4073 .name = "unpack_snorm_4x8", 4074 .num_inputs = 1, 4075 .output_size = 4, 4076 .output_type = nir_type_float32, 4077 .input_sizes = { 4078 1 4079 }, 4080 .input_types = { 4081 nir_type_uint32 4082 }, 4083 .is_conversion = false, 4084 .algebraic_properties = 4085 0 4086}, 4087{ 4088 .name = "unpack_unorm_2x16", 4089 .num_inputs = 1, 4090 .output_size = 2, 4091 .output_type = nir_type_float32, 4092 .input_sizes = { 4093 1 4094 }, 4095 .input_types = { 4096 nir_type_uint32 4097 }, 4098 .is_conversion = false, 4099 .algebraic_properties = 4100 0 4101}, 4102{ 4103 .name = "unpack_unorm_4x8", 4104 .num_inputs = 1, 4105 .output_size = 4, 4106 .output_type = nir_type_float32, 4107 .input_sizes = { 4108 1 4109 }, 4110 .input_types = { 4111 nir_type_uint32 4112 }, 4113 .is_conversion = false, 4114 .algebraic_properties = 4115 0 4116}, 4117{ 4118 .name = "urhadd", 4119 .num_inputs = 2, 4120 .output_size = 0, 4121 .output_type = nir_type_uint, 4122 .input_sizes = { 4123 0, 0 4124 }, 4125 .input_types = { 4126 nir_type_uint, nir_type_uint 4127 }, 4128 .is_conversion = false, 4129 .algebraic_properties = 4130 NIR_OP_IS_COMMUTATIVE 4131}, 4132{ 4133 .name = "usadd_4x8", 4134 .num_inputs = 2, 4135 .output_size = 0, 4136 .output_type = nir_type_int32, 4137 .input_sizes = { 4138 0, 0 4139 }, 4140 .input_types = { 4141 nir_type_int32, nir_type_int32 4142 }, 4143 .is_conversion = false, 4144 .algebraic_properties = 4145 NIR_OP_IS_COMMUTATIVE | NIR_OP_IS_ASSOCIATIVE 4146}, 4147{ 4148 .name = "ushr", 4149 .num_inputs = 2, 4150 .output_size = 0, 4151 .output_type = nir_type_uint, 4152 .input_sizes = { 4153 0, 0 4154 }, 4155 .input_types = { 4156 nir_type_uint, nir_type_uint32 4157 }, 4158 .is_conversion = false, 4159 .algebraic_properties = 4160 0 4161}, 4162{ 4163 .name = "ussub_4x8", 4164 .num_inputs = 2, 4165 .output_size = 0, 4166 .output_type = nir_type_int32, 4167 .input_sizes = { 4168 0, 0 4169 }, 4170 .input_types = { 4171 nir_type_int32, nir_type_int32 4172 }, 4173 .is_conversion = false, 4174 .algebraic_properties = 4175 0 4176}, 4177{ 4178 .name = "usub_borrow", 4179 .num_inputs = 2, 4180 .output_size = 0, 4181 .output_type = nir_type_uint, 4182 .input_sizes = { 4183 0, 0 4184 }, 4185 .input_types = { 4186 nir_type_uint, nir_type_uint 4187 }, 4188 .is_conversion = false, 4189 .algebraic_properties = 4190 0 4191}, 4192{ 4193 .name = "usub_sat", 4194 .num_inputs = 2, 4195 .output_size = 0, 4196 .output_type = nir_type_uint, 4197 .input_sizes = { 4198 0, 0 4199 }, 4200 .input_types = { 4201 nir_type_uint, nir_type_uint 4202 }, 4203 .is_conversion = false, 4204 .algebraic_properties = 4205 0 4206}, 4207{ 4208 .name = "vec2", 4209 .num_inputs = 2, 4210 .output_size = 2, 4211 .output_type = nir_type_uint, 4212 .input_sizes = { 4213 1, 1 4214 }, 4215 .input_types = { 4216 nir_type_uint, nir_type_uint 4217 }, 4218 .is_conversion = false, 4219 .algebraic_properties = 4220 0 4221}, 4222{ 4223 .name = "vec3", 4224 .num_inputs = 3, 4225 .output_size = 3, 4226 .output_type = nir_type_uint, 4227 .input_sizes = { 4228 1, 1, 1 4229 }, 4230 .input_types = { 4231 nir_type_uint, nir_type_uint, nir_type_uint 4232 }, 4233 .is_conversion = false, 4234 .algebraic_properties = 4235 0 4236}, 4237{ 4238 .name = "vec4", 4239 .num_inputs = 4, 4240 .output_size = 4, 4241 .output_type = nir_type_uint, 4242 .input_sizes = { 4243 1, 1, 1, 1 4244 }, 4245 .input_types = { 4246 nir_type_uint, nir_type_uint, nir_type_uint, nir_type_uint 4247 }, 4248 .is_conversion = false, 4249 .algebraic_properties = 4250 0 4251}, 4252}; 4253 4254