Home | History | Annotate | Download | only in nir
      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