nir_opcodes.c revision 10e230b6
110e230b6Smaya
210e230b6Smaya#include "nir.h"
310e230b6Smaya
410e230b6Smayanir_op
510e230b6Smayanir_type_conversion_op(nir_alu_type src, nir_alu_type dst, nir_rounding_mode rnd)
610e230b6Smaya{
710e230b6Smaya   nir_alu_type src_base = (nir_alu_type) nir_alu_type_get_base_type(src);
810e230b6Smaya   nir_alu_type dst_base = (nir_alu_type) nir_alu_type_get_base_type(dst);
910e230b6Smaya   unsigned src_bit_size = nir_alu_type_get_type_size(src);
1010e230b6Smaya   unsigned dst_bit_size = nir_alu_type_get_type_size(dst);
1110e230b6Smaya
1210e230b6Smaya   if (src == dst && src_base == nir_type_float) {
1310e230b6Smaya      return nir_op_fmov;
1410e230b6Smaya   } else if (src == dst && src_base == nir_type_bool) {
1510e230b6Smaya      return nir_op_imov;
1610e230b6Smaya   } else if ((src_base == nir_type_int || src_base == nir_type_uint) &&
1710e230b6Smaya              (dst_base == nir_type_int || dst_base == nir_type_uint) &&
1810e230b6Smaya              src_bit_size == dst_bit_size) {
1910e230b6Smaya      /* Integer <-> integer conversions with the same bit-size on both
2010e230b6Smaya       * ends are just no-op moves.
2110e230b6Smaya       */
2210e230b6Smaya      return nir_op_imov;
2310e230b6Smaya   }
2410e230b6Smaya
2510e230b6Smaya   switch (src_base) {
2610e230b6Smaya      case nir_type_int:
2710e230b6Smaya         switch (dst_base) {
2810e230b6Smaya            case nir_type_int:
2910e230b6Smaya            case nir_type_uint:
3010e230b6Smaya
3110e230b6Smaya               switch (dst_bit_size) {
3210e230b6Smaya                  case 1:
3310e230b6Smaya                     assert(rnd == nir_rounding_mode_undef);
3410e230b6Smaya                     return nir_op_i2i1;
3510e230b6Smaya                  case 8:
3610e230b6Smaya                     assert(rnd == nir_rounding_mode_undef);
3710e230b6Smaya                     return nir_op_i2i8;
3810e230b6Smaya                  case 16:
3910e230b6Smaya                     assert(rnd == nir_rounding_mode_undef);
4010e230b6Smaya                     return nir_op_i2i16;
4110e230b6Smaya                  case 32:
4210e230b6Smaya                     assert(rnd == nir_rounding_mode_undef);
4310e230b6Smaya                     return nir_op_i2i32;
4410e230b6Smaya                  case 64:
4510e230b6Smaya                     assert(rnd == nir_rounding_mode_undef);
4610e230b6Smaya                     return nir_op_i2i64;
4710e230b6Smaya                  default:
4810e230b6Smaya                     unreachable("Invalid nir alu bit size");
4910e230b6Smaya               }
5010e230b6Smaya            case nir_type_float:
5110e230b6Smaya               switch (dst_bit_size) {
5210e230b6Smaya                  case 16:
5310e230b6Smaya                     assert(rnd == nir_rounding_mode_undef);
5410e230b6Smaya                     return nir_op_i2f16;
5510e230b6Smaya                  case 32:
5610e230b6Smaya                     assert(rnd == nir_rounding_mode_undef);
5710e230b6Smaya                     return nir_op_i2f32;
5810e230b6Smaya                  case 64:
5910e230b6Smaya                     assert(rnd == nir_rounding_mode_undef);
6010e230b6Smaya                     return nir_op_i2f64;
6110e230b6Smaya                  default:
6210e230b6Smaya                     unreachable("Invalid nir alu bit size");
6310e230b6Smaya               }
6410e230b6Smaya            case nir_type_bool:
6510e230b6Smaya               switch (dst_bit_size) {
6610e230b6Smaya                  case 1:
6710e230b6Smaya                     assert(rnd == nir_rounding_mode_undef);
6810e230b6Smaya                     return nir_op_i2b1;
6910e230b6Smaya                  case 32:
7010e230b6Smaya                     assert(rnd == nir_rounding_mode_undef);
7110e230b6Smaya                     return nir_op_i2b32;
7210e230b6Smaya                  default:
7310e230b6Smaya                     unreachable("Invalid nir alu bit size");
7410e230b6Smaya               }
7510e230b6Smaya            default:
7610e230b6Smaya               unreachable("Invalid nir alu base type");
7710e230b6Smaya         }
7810e230b6Smaya      case nir_type_uint:
7910e230b6Smaya         switch (dst_base) {
8010e230b6Smaya            case nir_type_int:
8110e230b6Smaya            case nir_type_uint:
8210e230b6Smaya
8310e230b6Smaya               switch (dst_bit_size) {
8410e230b6Smaya                  case 1:
8510e230b6Smaya                     assert(rnd == nir_rounding_mode_undef);
8610e230b6Smaya                     return nir_op_u2u1;
8710e230b6Smaya                  case 8:
8810e230b6Smaya                     assert(rnd == nir_rounding_mode_undef);
8910e230b6Smaya                     return nir_op_u2u8;
9010e230b6Smaya                  case 16:
9110e230b6Smaya                     assert(rnd == nir_rounding_mode_undef);
9210e230b6Smaya                     return nir_op_u2u16;
9310e230b6Smaya                  case 32:
9410e230b6Smaya                     assert(rnd == nir_rounding_mode_undef);
9510e230b6Smaya                     return nir_op_u2u32;
9610e230b6Smaya                  case 64:
9710e230b6Smaya                     assert(rnd == nir_rounding_mode_undef);
9810e230b6Smaya                     return nir_op_u2u64;
9910e230b6Smaya                  default:
10010e230b6Smaya                     unreachable("Invalid nir alu bit size");
10110e230b6Smaya               }
10210e230b6Smaya            case nir_type_float:
10310e230b6Smaya               switch (dst_bit_size) {
10410e230b6Smaya                  case 16:
10510e230b6Smaya                     assert(rnd == nir_rounding_mode_undef);
10610e230b6Smaya                     return nir_op_u2f16;
10710e230b6Smaya                  case 32:
10810e230b6Smaya                     assert(rnd == nir_rounding_mode_undef);
10910e230b6Smaya                     return nir_op_u2f32;
11010e230b6Smaya                  case 64:
11110e230b6Smaya                     assert(rnd == nir_rounding_mode_undef);
11210e230b6Smaya                     return nir_op_u2f64;
11310e230b6Smaya                  default:
11410e230b6Smaya                     unreachable("Invalid nir alu bit size");
11510e230b6Smaya               }
11610e230b6Smaya            case nir_type_bool:
11710e230b6Smaya
11810e230b6Smaya               switch (dst_bit_size) {
11910e230b6Smaya                  case 1:
12010e230b6Smaya                     assert(rnd == nir_rounding_mode_undef);
12110e230b6Smaya                     return nir_op_i2b1;
12210e230b6Smaya                  case 32:
12310e230b6Smaya                     assert(rnd == nir_rounding_mode_undef);
12410e230b6Smaya                     return nir_op_i2b32;
12510e230b6Smaya                  default:
12610e230b6Smaya                     unreachable("Invalid nir alu bit size");
12710e230b6Smaya               }
12810e230b6Smaya            default:
12910e230b6Smaya               unreachable("Invalid nir alu base type");
13010e230b6Smaya         }
13110e230b6Smaya      case nir_type_float:
13210e230b6Smaya         switch (dst_base) {
13310e230b6Smaya            case nir_type_int:
13410e230b6Smaya               switch (dst_bit_size) {
13510e230b6Smaya                  case 1:
13610e230b6Smaya                     assert(rnd == nir_rounding_mode_undef);
13710e230b6Smaya                     return nir_op_f2i1;
13810e230b6Smaya                  case 8:
13910e230b6Smaya                     assert(rnd == nir_rounding_mode_undef);
14010e230b6Smaya                     return nir_op_f2i8;
14110e230b6Smaya                  case 16:
14210e230b6Smaya                     assert(rnd == nir_rounding_mode_undef);
14310e230b6Smaya                     return nir_op_f2i16;
14410e230b6Smaya                  case 32:
14510e230b6Smaya                     assert(rnd == nir_rounding_mode_undef);
14610e230b6Smaya                     return nir_op_f2i32;
14710e230b6Smaya                  case 64:
14810e230b6Smaya                     assert(rnd == nir_rounding_mode_undef);
14910e230b6Smaya                     return nir_op_f2i64;
15010e230b6Smaya                  default:
15110e230b6Smaya                     unreachable("Invalid nir alu bit size");
15210e230b6Smaya               }
15310e230b6Smaya            case nir_type_uint:
15410e230b6Smaya               switch (dst_bit_size) {
15510e230b6Smaya                  case 1:
15610e230b6Smaya                     assert(rnd == nir_rounding_mode_undef);
15710e230b6Smaya                     return nir_op_f2u1;
15810e230b6Smaya                  case 8:
15910e230b6Smaya                     assert(rnd == nir_rounding_mode_undef);
16010e230b6Smaya                     return nir_op_f2u8;
16110e230b6Smaya                  case 16:
16210e230b6Smaya                     assert(rnd == nir_rounding_mode_undef);
16310e230b6Smaya                     return nir_op_f2u16;
16410e230b6Smaya                  case 32:
16510e230b6Smaya                     assert(rnd == nir_rounding_mode_undef);
16610e230b6Smaya                     return nir_op_f2u32;
16710e230b6Smaya                  case 64:
16810e230b6Smaya                     assert(rnd == nir_rounding_mode_undef);
16910e230b6Smaya                     return nir_op_f2u64;
17010e230b6Smaya                  default:
17110e230b6Smaya                     unreachable("Invalid nir alu bit size");
17210e230b6Smaya               }
17310e230b6Smaya            case nir_type_float:
17410e230b6Smaya               switch (dst_bit_size) {
17510e230b6Smaya                  case 16:
17610e230b6Smaya                     switch(rnd) {
17710e230b6Smaya                        case nir_rounding_mode_rtne:
17810e230b6Smaya                           return nir_op_f2f16_rtne;
17910e230b6Smaya                        case nir_rounding_mode_rtz:
18010e230b6Smaya                           return nir_op_f2f16_rtz;
18110e230b6Smaya                        case nir_rounding_mode_undef:
18210e230b6Smaya                           return nir_op_f2f16;
18310e230b6Smaya                        default:
18410e230b6Smaya                           unreachable("Invalid 16-bit nir rounding mode");
18510e230b6Smaya                     }
18610e230b6Smaya                  case 32:
18710e230b6Smaya                     assert(rnd == nir_rounding_mode_undef);
18810e230b6Smaya                     return nir_op_f2f32;
18910e230b6Smaya                  case 64:
19010e230b6Smaya                     assert(rnd == nir_rounding_mode_undef);
19110e230b6Smaya                     return nir_op_f2f64;
19210e230b6Smaya                  default:
19310e230b6Smaya                     unreachable("Invalid nir alu bit size");
19410e230b6Smaya               }
19510e230b6Smaya            case nir_type_bool:
19610e230b6Smaya               switch (dst_bit_size) {
19710e230b6Smaya                  case 1:
19810e230b6Smaya                     assert(rnd == nir_rounding_mode_undef);
19910e230b6Smaya                     return nir_op_f2b1;
20010e230b6Smaya                  case 32:
20110e230b6Smaya                     assert(rnd == nir_rounding_mode_undef);
20210e230b6Smaya                     return nir_op_f2b32;
20310e230b6Smaya                  default:
20410e230b6Smaya                     unreachable("Invalid nir alu bit size");
20510e230b6Smaya               }
20610e230b6Smaya            default:
20710e230b6Smaya               unreachable("Invalid nir alu base type");
20810e230b6Smaya         }
20910e230b6Smaya      case nir_type_bool:
21010e230b6Smaya         switch (dst_base) {
21110e230b6Smaya            case nir_type_int:
21210e230b6Smaya            case nir_type_uint:
21310e230b6Smaya
21410e230b6Smaya               switch (dst_bit_size) {
21510e230b6Smaya                  case 1:
21610e230b6Smaya                     assert(rnd == nir_rounding_mode_undef);
21710e230b6Smaya                     return nir_op_b2i1;
21810e230b6Smaya                  case 8:
21910e230b6Smaya                     assert(rnd == nir_rounding_mode_undef);
22010e230b6Smaya                     return nir_op_b2i8;
22110e230b6Smaya                  case 16:
22210e230b6Smaya                     assert(rnd == nir_rounding_mode_undef);
22310e230b6Smaya                     return nir_op_b2i16;
22410e230b6Smaya                  case 32:
22510e230b6Smaya                     assert(rnd == nir_rounding_mode_undef);
22610e230b6Smaya                     return nir_op_b2i32;
22710e230b6Smaya                  case 64:
22810e230b6Smaya                     assert(rnd == nir_rounding_mode_undef);
22910e230b6Smaya                     return nir_op_b2i64;
23010e230b6Smaya                  default:
23110e230b6Smaya                     unreachable("Invalid nir alu bit size");
23210e230b6Smaya               }
23310e230b6Smaya            case nir_type_float:
23410e230b6Smaya               switch (dst_bit_size) {
23510e230b6Smaya                  case 16:
23610e230b6Smaya                     assert(rnd == nir_rounding_mode_undef);
23710e230b6Smaya                     return nir_op_b2f16;
23810e230b6Smaya                  case 32:
23910e230b6Smaya                     assert(rnd == nir_rounding_mode_undef);
24010e230b6Smaya                     return nir_op_b2f32;
24110e230b6Smaya                  case 64:
24210e230b6Smaya                     assert(rnd == nir_rounding_mode_undef);
24310e230b6Smaya                     return nir_op_b2f64;
24410e230b6Smaya                  default:
24510e230b6Smaya                     unreachable("Invalid nir alu bit size");
24610e230b6Smaya               }
24710e230b6Smaya            case nir_type_bool:
24810e230b6Smaya
24910e230b6Smaya               switch (dst_bit_size) {
25010e230b6Smaya                  case 1:
25110e230b6Smaya                     assert(rnd == nir_rounding_mode_undef);
25210e230b6Smaya                     return nir_op_b2i1;
25310e230b6Smaya                  case 8:
25410e230b6Smaya                     assert(rnd == nir_rounding_mode_undef);
25510e230b6Smaya                     return nir_op_b2i8;
25610e230b6Smaya                  case 16:
25710e230b6Smaya                     assert(rnd == nir_rounding_mode_undef);
25810e230b6Smaya                     return nir_op_b2i16;
25910e230b6Smaya                  case 32:
26010e230b6Smaya                     assert(rnd == nir_rounding_mode_undef);
26110e230b6Smaya                     return nir_op_b2i32;
26210e230b6Smaya                  case 64:
26310e230b6Smaya                     assert(rnd == nir_rounding_mode_undef);
26410e230b6Smaya                     return nir_op_b2i64;
26510e230b6Smaya                  default:
26610e230b6Smaya                     unreachable("Invalid nir alu bit size");
26710e230b6Smaya               }
26810e230b6Smaya            default:
26910e230b6Smaya               unreachable("Invalid nir alu base type");
27010e230b6Smaya         }
27110e230b6Smaya      default:
27210e230b6Smaya         unreachable("Invalid nir alu base type");
27310e230b6Smaya   }
27410e230b6Smaya}
27510e230b6Smaya
27610e230b6Smayaconst nir_op_info nir_op_infos[nir_num_opcodes] = {
27710e230b6Smaya{
27810e230b6Smaya   .name = "b2f16",
27910e230b6Smaya   .num_inputs = 1,
28010e230b6Smaya   .output_size = 0,
28110e230b6Smaya   .output_type = nir_type_float16,
28210e230b6Smaya   .input_sizes = {
28310e230b6Smaya      0
28410e230b6Smaya   },
28510e230b6Smaya   .input_types = {
28610e230b6Smaya      nir_type_bool
28710e230b6Smaya   },
28810e230b6Smaya   .is_conversion = true,
28910e230b6Smaya   .algebraic_properties =
29010e230b6Smaya      0
29110e230b6Smaya},
29210e230b6Smaya{
29310e230b6Smaya   .name = "b2f32",
29410e230b6Smaya   .num_inputs = 1,
29510e230b6Smaya   .output_size = 0,
29610e230b6Smaya   .output_type = nir_type_float32,
29710e230b6Smaya   .input_sizes = {
29810e230b6Smaya      0
29910e230b6Smaya   },
30010e230b6Smaya   .input_types = {
30110e230b6Smaya      nir_type_bool
30210e230b6Smaya   },
30310e230b6Smaya   .is_conversion = true,
30410e230b6Smaya   .algebraic_properties =
30510e230b6Smaya      0
30610e230b6Smaya},
30710e230b6Smaya{
30810e230b6Smaya   .name = "b2f64",
30910e230b6Smaya   .num_inputs = 1,
31010e230b6Smaya   .output_size = 0,
31110e230b6Smaya   .output_type = nir_type_float64,
31210e230b6Smaya   .input_sizes = {
31310e230b6Smaya      0
31410e230b6Smaya   },
31510e230b6Smaya   .input_types = {
31610e230b6Smaya      nir_type_bool
31710e230b6Smaya   },
31810e230b6Smaya   .is_conversion = true,
31910e230b6Smaya   .algebraic_properties =
32010e230b6Smaya      0
32110e230b6Smaya},
32210e230b6Smaya{
32310e230b6Smaya   .name = "b2i1",
32410e230b6Smaya   .num_inputs = 1,
32510e230b6Smaya   .output_size = 0,
32610e230b6Smaya   .output_type = nir_type_int1,
32710e230b6Smaya   .input_sizes = {
32810e230b6Smaya      0
32910e230b6Smaya   },
33010e230b6Smaya   .input_types = {
33110e230b6Smaya      nir_type_bool
33210e230b6Smaya   },
33310e230b6Smaya   .is_conversion = true,
33410e230b6Smaya   .algebraic_properties =
33510e230b6Smaya      0
33610e230b6Smaya},
33710e230b6Smaya{
33810e230b6Smaya   .name = "b2i16",
33910e230b6Smaya   .num_inputs = 1,
34010e230b6Smaya   .output_size = 0,
34110e230b6Smaya   .output_type = nir_type_int16,
34210e230b6Smaya   .input_sizes = {
34310e230b6Smaya      0
34410e230b6Smaya   },
34510e230b6Smaya   .input_types = {
34610e230b6Smaya      nir_type_bool
34710e230b6Smaya   },
34810e230b6Smaya   .is_conversion = true,
34910e230b6Smaya   .algebraic_properties =
35010e230b6Smaya      0
35110e230b6Smaya},
35210e230b6Smaya{
35310e230b6Smaya   .name = "b2i32",
35410e230b6Smaya   .num_inputs = 1,
35510e230b6Smaya   .output_size = 0,
35610e230b6Smaya   .output_type = nir_type_int32,
35710e230b6Smaya   .input_sizes = {
35810e230b6Smaya      0
35910e230b6Smaya   },
36010e230b6Smaya   .input_types = {
36110e230b6Smaya      nir_type_bool
36210e230b6Smaya   },
36310e230b6Smaya   .is_conversion = true,
36410e230b6Smaya   .algebraic_properties =
36510e230b6Smaya      0
36610e230b6Smaya},
36710e230b6Smaya{
36810e230b6Smaya   .name = "b2i64",
36910e230b6Smaya   .num_inputs = 1,
37010e230b6Smaya   .output_size = 0,
37110e230b6Smaya   .output_type = nir_type_int64,
37210e230b6Smaya   .input_sizes = {
37310e230b6Smaya      0
37410e230b6Smaya   },
37510e230b6Smaya   .input_types = {
37610e230b6Smaya      nir_type_bool
37710e230b6Smaya   },
37810e230b6Smaya   .is_conversion = true,
37910e230b6Smaya   .algebraic_properties =
38010e230b6Smaya      0
38110e230b6Smaya},
38210e230b6Smaya{
38310e230b6Smaya   .name = "b2i8",
38410e230b6Smaya   .num_inputs = 1,
38510e230b6Smaya   .output_size = 0,
38610e230b6Smaya   .output_type = nir_type_int8,
38710e230b6Smaya   .input_sizes = {
38810e230b6Smaya      0
38910e230b6Smaya   },
39010e230b6Smaya   .input_types = {
39110e230b6Smaya      nir_type_bool
39210e230b6Smaya   },
39310e230b6Smaya   .is_conversion = true,
39410e230b6Smaya   .algebraic_properties =
39510e230b6Smaya      0
39610e230b6Smaya},
39710e230b6Smaya{
39810e230b6Smaya   .name = "b32all_fequal2",
39910e230b6Smaya   .num_inputs = 2,
40010e230b6Smaya   .output_size = 1,
40110e230b6Smaya   .output_type = nir_type_bool32,
40210e230b6Smaya   .input_sizes = {
40310e230b6Smaya      2, 2
40410e230b6Smaya   },
40510e230b6Smaya   .input_types = {
40610e230b6Smaya      nir_type_float, nir_type_float
40710e230b6Smaya   },
40810e230b6Smaya   .is_conversion = false,
40910e230b6Smaya   .algebraic_properties =
41010e230b6Smaya      NIR_OP_IS_COMMUTATIVE
41110e230b6Smaya},
41210e230b6Smaya{
41310e230b6Smaya   .name = "b32all_fequal3",
41410e230b6Smaya   .num_inputs = 2,
41510e230b6Smaya   .output_size = 1,
41610e230b6Smaya   .output_type = nir_type_bool32,
41710e230b6Smaya   .input_sizes = {
41810e230b6Smaya      3, 3
41910e230b6Smaya   },
42010e230b6Smaya   .input_types = {
42110e230b6Smaya      nir_type_float, nir_type_float
42210e230b6Smaya   },
42310e230b6Smaya   .is_conversion = false,
42410e230b6Smaya   .algebraic_properties =
42510e230b6Smaya      NIR_OP_IS_COMMUTATIVE
42610e230b6Smaya},
42710e230b6Smaya{
42810e230b6Smaya   .name = "b32all_fequal4",
42910e230b6Smaya   .num_inputs = 2,
43010e230b6Smaya   .output_size = 1,
43110e230b6Smaya   .output_type = nir_type_bool32,
43210e230b6Smaya   .input_sizes = {
43310e230b6Smaya      4, 4
43410e230b6Smaya   },
43510e230b6Smaya   .input_types = {
43610e230b6Smaya      nir_type_float, nir_type_float
43710e230b6Smaya   },
43810e230b6Smaya   .is_conversion = false,
43910e230b6Smaya   .algebraic_properties =
44010e230b6Smaya      NIR_OP_IS_COMMUTATIVE
44110e230b6Smaya},
44210e230b6Smaya{
44310e230b6Smaya   .name = "b32all_iequal2",
44410e230b6Smaya   .num_inputs = 2,
44510e230b6Smaya   .output_size = 1,
44610e230b6Smaya   .output_type = nir_type_bool32,
44710e230b6Smaya   .input_sizes = {
44810e230b6Smaya      2, 2
44910e230b6Smaya   },
45010e230b6Smaya   .input_types = {
45110e230b6Smaya      nir_type_int, nir_type_int
45210e230b6Smaya   },
45310e230b6Smaya   .is_conversion = false,
45410e230b6Smaya   .algebraic_properties =
45510e230b6Smaya      NIR_OP_IS_COMMUTATIVE
45610e230b6Smaya},
45710e230b6Smaya{
45810e230b6Smaya   .name = "b32all_iequal3",
45910e230b6Smaya   .num_inputs = 2,
46010e230b6Smaya   .output_size = 1,
46110e230b6Smaya   .output_type = nir_type_bool32,
46210e230b6Smaya   .input_sizes = {
46310e230b6Smaya      3, 3
46410e230b6Smaya   },
46510e230b6Smaya   .input_types = {
46610e230b6Smaya      nir_type_int, nir_type_int
46710e230b6Smaya   },
46810e230b6Smaya   .is_conversion = false,
46910e230b6Smaya   .algebraic_properties =
47010e230b6Smaya      NIR_OP_IS_COMMUTATIVE
47110e230b6Smaya},
47210e230b6Smaya{
47310e230b6Smaya   .name = "b32all_iequal4",
47410e230b6Smaya   .num_inputs = 2,
47510e230b6Smaya   .output_size = 1,
47610e230b6Smaya   .output_type = nir_type_bool32,
47710e230b6Smaya   .input_sizes = {
47810e230b6Smaya      4, 4
47910e230b6Smaya   },
48010e230b6Smaya   .input_types = {
48110e230b6Smaya      nir_type_int, nir_type_int
48210e230b6Smaya   },
48310e230b6Smaya   .is_conversion = false,
48410e230b6Smaya   .algebraic_properties =
48510e230b6Smaya      NIR_OP_IS_COMMUTATIVE
48610e230b6Smaya},
48710e230b6Smaya{
48810e230b6Smaya   .name = "b32any_fnequal2",
48910e230b6Smaya   .num_inputs = 2,
49010e230b6Smaya   .output_size = 1,
49110e230b6Smaya   .output_type = nir_type_bool32,
49210e230b6Smaya   .input_sizes = {
49310e230b6Smaya      2, 2
49410e230b6Smaya   },
49510e230b6Smaya   .input_types = {
49610e230b6Smaya      nir_type_float, nir_type_float
49710e230b6Smaya   },
49810e230b6Smaya   .is_conversion = false,
49910e230b6Smaya   .algebraic_properties =
50010e230b6Smaya      NIR_OP_IS_COMMUTATIVE
50110e230b6Smaya},
50210e230b6Smaya{
50310e230b6Smaya   .name = "b32any_fnequal3",
50410e230b6Smaya   .num_inputs = 2,
50510e230b6Smaya   .output_size = 1,
50610e230b6Smaya   .output_type = nir_type_bool32,
50710e230b6Smaya   .input_sizes = {
50810e230b6Smaya      3, 3
50910e230b6Smaya   },
51010e230b6Smaya   .input_types = {
51110e230b6Smaya      nir_type_float, nir_type_float
51210e230b6Smaya   },
51310e230b6Smaya   .is_conversion = false,
51410e230b6Smaya   .algebraic_properties =
51510e230b6Smaya      NIR_OP_IS_COMMUTATIVE
51610e230b6Smaya},
51710e230b6Smaya{
51810e230b6Smaya   .name = "b32any_fnequal4",
51910e230b6Smaya   .num_inputs = 2,
52010e230b6Smaya   .output_size = 1,
52110e230b6Smaya   .output_type = nir_type_bool32,
52210e230b6Smaya   .input_sizes = {
52310e230b6Smaya      4, 4
52410e230b6Smaya   },
52510e230b6Smaya   .input_types = {
52610e230b6Smaya      nir_type_float, nir_type_float
52710e230b6Smaya   },
52810e230b6Smaya   .is_conversion = false,
52910e230b6Smaya   .algebraic_properties =
53010e230b6Smaya      NIR_OP_IS_COMMUTATIVE
53110e230b6Smaya},
53210e230b6Smaya{
53310e230b6Smaya   .name = "b32any_inequal2",
53410e230b6Smaya   .num_inputs = 2,
53510e230b6Smaya   .output_size = 1,
53610e230b6Smaya   .output_type = nir_type_bool32,
53710e230b6Smaya   .input_sizes = {
53810e230b6Smaya      2, 2
53910e230b6Smaya   },
54010e230b6Smaya   .input_types = {
54110e230b6Smaya      nir_type_int, nir_type_int
54210e230b6Smaya   },
54310e230b6Smaya   .is_conversion = false,
54410e230b6Smaya   .algebraic_properties =
54510e230b6Smaya      NIR_OP_IS_COMMUTATIVE
54610e230b6Smaya},
54710e230b6Smaya{
54810e230b6Smaya   .name = "b32any_inequal3",
54910e230b6Smaya   .num_inputs = 2,
55010e230b6Smaya   .output_size = 1,
55110e230b6Smaya   .output_type = nir_type_bool32,
55210e230b6Smaya   .input_sizes = {
55310e230b6Smaya      3, 3
55410e230b6Smaya   },
55510e230b6Smaya   .input_types = {
55610e230b6Smaya      nir_type_int, nir_type_int
55710e230b6Smaya   },
55810e230b6Smaya   .is_conversion = false,
55910e230b6Smaya   .algebraic_properties =
56010e230b6Smaya      NIR_OP_IS_COMMUTATIVE
56110e230b6Smaya},
56210e230b6Smaya{
56310e230b6Smaya   .name = "b32any_inequal4",
56410e230b6Smaya   .num_inputs = 2,
56510e230b6Smaya   .output_size = 1,
56610e230b6Smaya   .output_type = nir_type_bool32,
56710e230b6Smaya   .input_sizes = {
56810e230b6Smaya      4, 4
56910e230b6Smaya   },
57010e230b6Smaya   .input_types = {
57110e230b6Smaya      nir_type_int, nir_type_int
57210e230b6Smaya   },
57310e230b6Smaya   .is_conversion = false,
57410e230b6Smaya   .algebraic_properties =
57510e230b6Smaya      NIR_OP_IS_COMMUTATIVE
57610e230b6Smaya},
57710e230b6Smaya{
57810e230b6Smaya   .name = "b32csel",
57910e230b6Smaya   .num_inputs = 3,
58010e230b6Smaya   .output_size = 0,
58110e230b6Smaya   .output_type = nir_type_uint,
58210e230b6Smaya   .input_sizes = {
58310e230b6Smaya      0, 0, 0
58410e230b6Smaya   },
58510e230b6Smaya   .input_types = {
58610e230b6Smaya      nir_type_bool32, nir_type_uint, nir_type_uint
58710e230b6Smaya   },
58810e230b6Smaya   .is_conversion = false,
58910e230b6Smaya   .algebraic_properties =
59010e230b6Smaya      0
59110e230b6Smaya},
59210e230b6Smaya{
59310e230b6Smaya   .name = "ball_fequal2",
59410e230b6Smaya   .num_inputs = 2,
59510e230b6Smaya   .output_size = 1,
59610e230b6Smaya   .output_type = nir_type_bool1,
59710e230b6Smaya   .input_sizes = {
59810e230b6Smaya      2, 2
59910e230b6Smaya   },
60010e230b6Smaya   .input_types = {
60110e230b6Smaya      nir_type_float, nir_type_float
60210e230b6Smaya   },
60310e230b6Smaya   .is_conversion = false,
60410e230b6Smaya   .algebraic_properties =
60510e230b6Smaya      NIR_OP_IS_COMMUTATIVE
60610e230b6Smaya},
60710e230b6Smaya{
60810e230b6Smaya   .name = "ball_fequal3",
60910e230b6Smaya   .num_inputs = 2,
61010e230b6Smaya   .output_size = 1,
61110e230b6Smaya   .output_type = nir_type_bool1,
61210e230b6Smaya   .input_sizes = {
61310e230b6Smaya      3, 3
61410e230b6Smaya   },
61510e230b6Smaya   .input_types = {
61610e230b6Smaya      nir_type_float, nir_type_float
61710e230b6Smaya   },
61810e230b6Smaya   .is_conversion = false,
61910e230b6Smaya   .algebraic_properties =
62010e230b6Smaya      NIR_OP_IS_COMMUTATIVE
62110e230b6Smaya},
62210e230b6Smaya{
62310e230b6Smaya   .name = "ball_fequal4",
62410e230b6Smaya   .num_inputs = 2,
62510e230b6Smaya   .output_size = 1,
62610e230b6Smaya   .output_type = nir_type_bool1,
62710e230b6Smaya   .input_sizes = {
62810e230b6Smaya      4, 4
62910e230b6Smaya   },
63010e230b6Smaya   .input_types = {
63110e230b6Smaya      nir_type_float, nir_type_float
63210e230b6Smaya   },
63310e230b6Smaya   .is_conversion = false,
63410e230b6Smaya   .algebraic_properties =
63510e230b6Smaya      NIR_OP_IS_COMMUTATIVE
63610e230b6Smaya},
63710e230b6Smaya{
63810e230b6Smaya   .name = "ball_iequal2",
63910e230b6Smaya   .num_inputs = 2,
64010e230b6Smaya   .output_size = 1,
64110e230b6Smaya   .output_type = nir_type_bool1,
64210e230b6Smaya   .input_sizes = {
64310e230b6Smaya      2, 2
64410e230b6Smaya   },
64510e230b6Smaya   .input_types = {
64610e230b6Smaya      nir_type_int, nir_type_int
64710e230b6Smaya   },
64810e230b6Smaya   .is_conversion = false,
64910e230b6Smaya   .algebraic_properties =
65010e230b6Smaya      NIR_OP_IS_COMMUTATIVE
65110e230b6Smaya},
65210e230b6Smaya{
65310e230b6Smaya   .name = "ball_iequal3",
65410e230b6Smaya   .num_inputs = 2,
65510e230b6Smaya   .output_size = 1,
65610e230b6Smaya   .output_type = nir_type_bool1,
65710e230b6Smaya   .input_sizes = {
65810e230b6Smaya      3, 3
65910e230b6Smaya   },
66010e230b6Smaya   .input_types = {
66110e230b6Smaya      nir_type_int, nir_type_int
66210e230b6Smaya   },
66310e230b6Smaya   .is_conversion = false,
66410e230b6Smaya   .algebraic_properties =
66510e230b6Smaya      NIR_OP_IS_COMMUTATIVE
66610e230b6Smaya},
66710e230b6Smaya{
66810e230b6Smaya   .name = "ball_iequal4",
66910e230b6Smaya   .num_inputs = 2,
67010e230b6Smaya   .output_size = 1,
67110e230b6Smaya   .output_type = nir_type_bool1,
67210e230b6Smaya   .input_sizes = {
67310e230b6Smaya      4, 4
67410e230b6Smaya   },
67510e230b6Smaya   .input_types = {
67610e230b6Smaya      nir_type_int, nir_type_int
67710e230b6Smaya   },
67810e230b6Smaya   .is_conversion = false,
67910e230b6Smaya   .algebraic_properties =
68010e230b6Smaya      NIR_OP_IS_COMMUTATIVE
68110e230b6Smaya},
68210e230b6Smaya{
68310e230b6Smaya   .name = "bany_fnequal2",
68410e230b6Smaya   .num_inputs = 2,
68510e230b6Smaya   .output_size = 1,
68610e230b6Smaya   .output_type = nir_type_bool1,
68710e230b6Smaya   .input_sizes = {
68810e230b6Smaya      2, 2
68910e230b6Smaya   },
69010e230b6Smaya   .input_types = {
69110e230b6Smaya      nir_type_float, nir_type_float
69210e230b6Smaya   },
69310e230b6Smaya   .is_conversion = false,
69410e230b6Smaya   .algebraic_properties =
69510e230b6Smaya      NIR_OP_IS_COMMUTATIVE
69610e230b6Smaya},
69710e230b6Smaya{
69810e230b6Smaya   .name = "bany_fnequal3",
69910e230b6Smaya   .num_inputs = 2,
70010e230b6Smaya   .output_size = 1,
70110e230b6Smaya   .output_type = nir_type_bool1,
70210e230b6Smaya   .input_sizes = {
70310e230b6Smaya      3, 3
70410e230b6Smaya   },
70510e230b6Smaya   .input_types = {
70610e230b6Smaya      nir_type_float, nir_type_float
70710e230b6Smaya   },
70810e230b6Smaya   .is_conversion = false,
70910e230b6Smaya   .algebraic_properties =
71010e230b6Smaya      NIR_OP_IS_COMMUTATIVE
71110e230b6Smaya},
71210e230b6Smaya{
71310e230b6Smaya   .name = "bany_fnequal4",
71410e230b6Smaya   .num_inputs = 2,
71510e230b6Smaya   .output_size = 1,
71610e230b6Smaya   .output_type = nir_type_bool1,
71710e230b6Smaya   .input_sizes = {
71810e230b6Smaya      4, 4
71910e230b6Smaya   },
72010e230b6Smaya   .input_types = {
72110e230b6Smaya      nir_type_float, nir_type_float
72210e230b6Smaya   },
72310e230b6Smaya   .is_conversion = false,
72410e230b6Smaya   .algebraic_properties =
72510e230b6Smaya      NIR_OP_IS_COMMUTATIVE
72610e230b6Smaya},
72710e230b6Smaya{
72810e230b6Smaya   .name = "bany_inequal2",
72910e230b6Smaya   .num_inputs = 2,
73010e230b6Smaya   .output_size = 1,
73110e230b6Smaya   .output_type = nir_type_bool1,
73210e230b6Smaya   .input_sizes = {
73310e230b6Smaya      2, 2
73410e230b6Smaya   },
73510e230b6Smaya   .input_types = {
73610e230b6Smaya      nir_type_int, nir_type_int
73710e230b6Smaya   },
73810e230b6Smaya   .is_conversion = false,
73910e230b6Smaya   .algebraic_properties =
74010e230b6Smaya      NIR_OP_IS_COMMUTATIVE
74110e230b6Smaya},
74210e230b6Smaya{
74310e230b6Smaya   .name = "bany_inequal3",
74410e230b6Smaya   .num_inputs = 2,
74510e230b6Smaya   .output_size = 1,
74610e230b6Smaya   .output_type = nir_type_bool1,
74710e230b6Smaya   .input_sizes = {
74810e230b6Smaya      3, 3
74910e230b6Smaya   },
75010e230b6Smaya   .input_types = {
75110e230b6Smaya      nir_type_int, nir_type_int
75210e230b6Smaya   },
75310e230b6Smaya   .is_conversion = false,
75410e230b6Smaya   .algebraic_properties =
75510e230b6Smaya      NIR_OP_IS_COMMUTATIVE
75610e230b6Smaya},
75710e230b6Smaya{
75810e230b6Smaya   .name = "bany_inequal4",
75910e230b6Smaya   .num_inputs = 2,
76010e230b6Smaya   .output_size = 1,
76110e230b6Smaya   .output_type = nir_type_bool1,
76210e230b6Smaya   .input_sizes = {
76310e230b6Smaya      4, 4
76410e230b6Smaya   },
76510e230b6Smaya   .input_types = {
76610e230b6Smaya      nir_type_int, nir_type_int
76710e230b6Smaya   },
76810e230b6Smaya   .is_conversion = false,
76910e230b6Smaya   .algebraic_properties =
77010e230b6Smaya      NIR_OP_IS_COMMUTATIVE
77110e230b6Smaya},
77210e230b6Smaya{
77310e230b6Smaya   .name = "bcsel",
77410e230b6Smaya   .num_inputs = 3,
77510e230b6Smaya   .output_size = 0,
77610e230b6Smaya   .output_type = nir_type_uint,
77710e230b6Smaya   .input_sizes = {
77810e230b6Smaya      0, 0, 0
77910e230b6Smaya   },
78010e230b6Smaya   .input_types = {
78110e230b6Smaya      nir_type_bool1, nir_type_uint, nir_type_uint
78210e230b6Smaya   },
78310e230b6Smaya   .is_conversion = false,
78410e230b6Smaya   .algebraic_properties =
78510e230b6Smaya      0
78610e230b6Smaya},
78710e230b6Smaya{
78810e230b6Smaya   .name = "bfi",
78910e230b6Smaya   .num_inputs = 3,
79010e230b6Smaya   .output_size = 0,
79110e230b6Smaya   .output_type = nir_type_uint32,
79210e230b6Smaya   .input_sizes = {
79310e230b6Smaya      0, 0, 0
79410e230b6Smaya   },
79510e230b6Smaya   .input_types = {
79610e230b6Smaya      nir_type_uint32, nir_type_uint32, nir_type_uint32
79710e230b6Smaya   },
79810e230b6Smaya   .is_conversion = false,
79910e230b6Smaya   .algebraic_properties =
80010e230b6Smaya      0
80110e230b6Smaya},
80210e230b6Smaya{
80310e230b6Smaya   .name = "bfm",
80410e230b6Smaya   .num_inputs = 2,
80510e230b6Smaya   .output_size = 0,
80610e230b6Smaya   .output_type = nir_type_uint32,
80710e230b6Smaya   .input_sizes = {
80810e230b6Smaya      0, 0
80910e230b6Smaya   },
81010e230b6Smaya   .input_types = {
81110e230b6Smaya      nir_type_int32, nir_type_int32
81210e230b6Smaya   },
81310e230b6Smaya   .is_conversion = false,
81410e230b6Smaya   .algebraic_properties =
81510e230b6Smaya      0
81610e230b6Smaya},
81710e230b6Smaya{
81810e230b6Smaya   .name = "bit_count",
81910e230b6Smaya   .num_inputs = 1,
82010e230b6Smaya   .output_size = 0,
82110e230b6Smaya   .output_type = nir_type_uint32,
82210e230b6Smaya   .input_sizes = {
82310e230b6Smaya      0
82410e230b6Smaya   },
82510e230b6Smaya   .input_types = {
82610e230b6Smaya      nir_type_uint
82710e230b6Smaya   },
82810e230b6Smaya   .is_conversion = false,
82910e230b6Smaya   .algebraic_properties =
83010e230b6Smaya      0
83110e230b6Smaya},
83210e230b6Smaya{
83310e230b6Smaya   .name = "bitfield_insert",
83410e230b6Smaya   .num_inputs = 4,
83510e230b6Smaya   .output_size = 0,
83610e230b6Smaya   .output_type = nir_type_uint32,
83710e230b6Smaya   .input_sizes = {
83810e230b6Smaya      0, 0, 0, 0
83910e230b6Smaya   },
84010e230b6Smaya   .input_types = {
84110e230b6Smaya      nir_type_uint32, nir_type_uint32, nir_type_int32, nir_type_int32
84210e230b6Smaya   },
84310e230b6Smaya   .is_conversion = false,
84410e230b6Smaya   .algebraic_properties =
84510e230b6Smaya      0
84610e230b6Smaya},
84710e230b6Smaya{
84810e230b6Smaya   .name = "bitfield_reverse",
84910e230b6Smaya   .num_inputs = 1,
85010e230b6Smaya   .output_size = 0,
85110e230b6Smaya   .output_type = nir_type_uint32,
85210e230b6Smaya   .input_sizes = {
85310e230b6Smaya      0
85410e230b6Smaya   },
85510e230b6Smaya   .input_types = {
85610e230b6Smaya      nir_type_uint32
85710e230b6Smaya   },
85810e230b6Smaya   .is_conversion = false,
85910e230b6Smaya   .algebraic_properties =
86010e230b6Smaya      0
86110e230b6Smaya},
86210e230b6Smaya{
86310e230b6Smaya   .name = "cube_face_coord",
86410e230b6Smaya   .num_inputs = 1,
86510e230b6Smaya   .output_size = 2,
86610e230b6Smaya   .output_type = nir_type_float32,
86710e230b6Smaya   .input_sizes = {
86810e230b6Smaya      3
86910e230b6Smaya   },
87010e230b6Smaya   .input_types = {
87110e230b6Smaya      nir_type_float32
87210e230b6Smaya   },
87310e230b6Smaya   .is_conversion = false,
87410e230b6Smaya   .algebraic_properties =
87510e230b6Smaya      0
87610e230b6Smaya},
87710e230b6Smaya{
87810e230b6Smaya   .name = "cube_face_index",
87910e230b6Smaya   .num_inputs = 1,
88010e230b6Smaya   .output_size = 1,
88110e230b6Smaya   .output_type = nir_type_float32,
88210e230b6Smaya   .input_sizes = {
88310e230b6Smaya      3
88410e230b6Smaya   },
88510e230b6Smaya   .input_types = {
88610e230b6Smaya      nir_type_float32
88710e230b6Smaya   },
88810e230b6Smaya   .is_conversion = false,
88910e230b6Smaya   .algebraic_properties =
89010e230b6Smaya      0
89110e230b6Smaya},
89210e230b6Smaya{
89310e230b6Smaya   .name = "extract_i16",
89410e230b6Smaya   .num_inputs = 2,
89510e230b6Smaya   .output_size = 0,
89610e230b6Smaya   .output_type = nir_type_int,
89710e230b6Smaya   .input_sizes = {
89810e230b6Smaya      0, 0
89910e230b6Smaya   },
90010e230b6Smaya   .input_types = {
90110e230b6Smaya      nir_type_int, nir_type_int
90210e230b6Smaya   },
90310e230b6Smaya   .is_conversion = false,
90410e230b6Smaya   .algebraic_properties =
90510e230b6Smaya      0
90610e230b6Smaya},
90710e230b6Smaya{
90810e230b6Smaya   .name = "extract_i8",
90910e230b6Smaya   .num_inputs = 2,
91010e230b6Smaya   .output_size = 0,
91110e230b6Smaya   .output_type = nir_type_int,
91210e230b6Smaya   .input_sizes = {
91310e230b6Smaya      0, 0
91410e230b6Smaya   },
91510e230b6Smaya   .input_types = {
91610e230b6Smaya      nir_type_int, nir_type_int
91710e230b6Smaya   },
91810e230b6Smaya   .is_conversion = false,
91910e230b6Smaya   .algebraic_properties =
92010e230b6Smaya      0
92110e230b6Smaya},
92210e230b6Smaya{
92310e230b6Smaya   .name = "extract_u16",
92410e230b6Smaya   .num_inputs = 2,
92510e230b6Smaya   .output_size = 0,
92610e230b6Smaya   .output_type = nir_type_uint,
92710e230b6Smaya   .input_sizes = {
92810e230b6Smaya      0, 0
92910e230b6Smaya   },
93010e230b6Smaya   .input_types = {
93110e230b6Smaya      nir_type_uint, nir_type_uint
93210e230b6Smaya   },
93310e230b6Smaya   .is_conversion = false,
93410e230b6Smaya   .algebraic_properties =
93510e230b6Smaya      0
93610e230b6Smaya},
93710e230b6Smaya{
93810e230b6Smaya   .name = "extract_u8",
93910e230b6Smaya   .num_inputs = 2,
94010e230b6Smaya   .output_size = 0,
94110e230b6Smaya   .output_type = nir_type_uint,
94210e230b6Smaya   .input_sizes = {
94310e230b6Smaya      0, 0
94410e230b6Smaya   },
94510e230b6Smaya   .input_types = {
94610e230b6Smaya      nir_type_uint, nir_type_uint
94710e230b6Smaya   },
94810e230b6Smaya   .is_conversion = false,
94910e230b6Smaya   .algebraic_properties =
95010e230b6Smaya      0
95110e230b6Smaya},
95210e230b6Smaya{
95310e230b6Smaya   .name = "f2b1",
95410e230b6Smaya   .num_inputs = 1,
95510e230b6Smaya   .output_size = 0,
95610e230b6Smaya   .output_type = nir_type_bool1,
95710e230b6Smaya   .input_sizes = {
95810e230b6Smaya      0
95910e230b6Smaya   },
96010e230b6Smaya   .input_types = {
96110e230b6Smaya      nir_type_float
96210e230b6Smaya   },
96310e230b6Smaya   .is_conversion = true,
96410e230b6Smaya   .algebraic_properties =
96510e230b6Smaya      0
96610e230b6Smaya},
96710e230b6Smaya{
96810e230b6Smaya   .name = "f2b32",
96910e230b6Smaya   .num_inputs = 1,
97010e230b6Smaya   .output_size = 0,
97110e230b6Smaya   .output_type = nir_type_bool32,
97210e230b6Smaya   .input_sizes = {
97310e230b6Smaya      0
97410e230b6Smaya   },
97510e230b6Smaya   .input_types = {
97610e230b6Smaya      nir_type_float
97710e230b6Smaya   },
97810e230b6Smaya   .is_conversion = true,
97910e230b6Smaya   .algebraic_properties =
98010e230b6Smaya      0
98110e230b6Smaya},
98210e230b6Smaya{
98310e230b6Smaya   .name = "f2f16",
98410e230b6Smaya   .num_inputs = 1,
98510e230b6Smaya   .output_size = 0,
98610e230b6Smaya   .output_type = nir_type_float16,
98710e230b6Smaya   .input_sizes = {
98810e230b6Smaya      0
98910e230b6Smaya   },
99010e230b6Smaya   .input_types = {
99110e230b6Smaya      nir_type_float
99210e230b6Smaya   },
99310e230b6Smaya   .is_conversion = true,
99410e230b6Smaya   .algebraic_properties =
99510e230b6Smaya      0
99610e230b6Smaya},
99710e230b6Smaya{
99810e230b6Smaya   .name = "f2f16_rtne",
99910e230b6Smaya   .num_inputs = 1,
100010e230b6Smaya   .output_size = 0,
100110e230b6Smaya   .output_type = nir_type_float16,
100210e230b6Smaya   .input_sizes = {
100310e230b6Smaya      0
100410e230b6Smaya   },
100510e230b6Smaya   .input_types = {
100610e230b6Smaya      nir_type_float
100710e230b6Smaya   },
100810e230b6Smaya   .is_conversion = true,
100910e230b6Smaya   .algebraic_properties =
101010e230b6Smaya      0
101110e230b6Smaya},
101210e230b6Smaya{
101310e230b6Smaya   .name = "f2f16_rtz",
101410e230b6Smaya   .num_inputs = 1,
101510e230b6Smaya   .output_size = 0,
101610e230b6Smaya   .output_type = nir_type_float16,
101710e230b6Smaya   .input_sizes = {
101810e230b6Smaya      0
101910e230b6Smaya   },
102010e230b6Smaya   .input_types = {
102110e230b6Smaya      nir_type_float
102210e230b6Smaya   },
102310e230b6Smaya   .is_conversion = true,
102410e230b6Smaya   .algebraic_properties =
102510e230b6Smaya      0
102610e230b6Smaya},
102710e230b6Smaya{
102810e230b6Smaya   .name = "f2f32",
102910e230b6Smaya   .num_inputs = 1,
103010e230b6Smaya   .output_size = 0,
103110e230b6Smaya   .output_type = nir_type_float32,
103210e230b6Smaya   .input_sizes = {
103310e230b6Smaya      0
103410e230b6Smaya   },
103510e230b6Smaya   .input_types = {
103610e230b6Smaya      nir_type_float
103710e230b6Smaya   },
103810e230b6Smaya   .is_conversion = true,
103910e230b6Smaya   .algebraic_properties =
104010e230b6Smaya      0
104110e230b6Smaya},
104210e230b6Smaya{
104310e230b6Smaya   .name = "f2f64",
104410e230b6Smaya   .num_inputs = 1,
104510e230b6Smaya   .output_size = 0,
104610e230b6Smaya   .output_type = nir_type_float64,
104710e230b6Smaya   .input_sizes = {
104810e230b6Smaya      0
104910e230b6Smaya   },
105010e230b6Smaya   .input_types = {
105110e230b6Smaya      nir_type_float
105210e230b6Smaya   },
105310e230b6Smaya   .is_conversion = true,
105410e230b6Smaya   .algebraic_properties =
105510e230b6Smaya      0
105610e230b6Smaya},
105710e230b6Smaya{
105810e230b6Smaya   .name = "f2i1",
105910e230b6Smaya   .num_inputs = 1,
106010e230b6Smaya   .output_size = 0,
106110e230b6Smaya   .output_type = nir_type_int1,
106210e230b6Smaya   .input_sizes = {
106310e230b6Smaya      0
106410e230b6Smaya   },
106510e230b6Smaya   .input_types = {
106610e230b6Smaya      nir_type_float
106710e230b6Smaya   },
106810e230b6Smaya   .is_conversion = true,
106910e230b6Smaya   .algebraic_properties =
107010e230b6Smaya      0
107110e230b6Smaya},
107210e230b6Smaya{
107310e230b6Smaya   .name = "f2i16",
107410e230b6Smaya   .num_inputs = 1,
107510e230b6Smaya   .output_size = 0,
107610e230b6Smaya   .output_type = nir_type_int16,
107710e230b6Smaya   .input_sizes = {
107810e230b6Smaya      0
107910e230b6Smaya   },
108010e230b6Smaya   .input_types = {
108110e230b6Smaya      nir_type_float
108210e230b6Smaya   },
108310e230b6Smaya   .is_conversion = true,
108410e230b6Smaya   .algebraic_properties =
108510e230b6Smaya      0
108610e230b6Smaya},
108710e230b6Smaya{
108810e230b6Smaya   .name = "f2i32",
108910e230b6Smaya   .num_inputs = 1,
109010e230b6Smaya   .output_size = 0,
109110e230b6Smaya   .output_type = nir_type_int32,
109210e230b6Smaya   .input_sizes = {
109310e230b6Smaya      0
109410e230b6Smaya   },
109510e230b6Smaya   .input_types = {
109610e230b6Smaya      nir_type_float
109710e230b6Smaya   },
109810e230b6Smaya   .is_conversion = true,
109910e230b6Smaya   .algebraic_properties =
110010e230b6Smaya      0
110110e230b6Smaya},
110210e230b6Smaya{
110310e230b6Smaya   .name = "f2i64",
110410e230b6Smaya   .num_inputs = 1,
110510e230b6Smaya   .output_size = 0,
110610e230b6Smaya   .output_type = nir_type_int64,
110710e230b6Smaya   .input_sizes = {
110810e230b6Smaya      0
110910e230b6Smaya   },
111010e230b6Smaya   .input_types = {
111110e230b6Smaya      nir_type_float
111210e230b6Smaya   },
111310e230b6Smaya   .is_conversion = true,
111410e230b6Smaya   .algebraic_properties =
111510e230b6Smaya      0
111610e230b6Smaya},
111710e230b6Smaya{
111810e230b6Smaya   .name = "f2i8",
111910e230b6Smaya   .num_inputs = 1,
112010e230b6Smaya   .output_size = 0,
112110e230b6Smaya   .output_type = nir_type_int8,
112210e230b6Smaya   .input_sizes = {
112310e230b6Smaya      0
112410e230b6Smaya   },
112510e230b6Smaya   .input_types = {
112610e230b6Smaya      nir_type_float
112710e230b6Smaya   },
112810e230b6Smaya   .is_conversion = true,
112910e230b6Smaya   .algebraic_properties =
113010e230b6Smaya      0
113110e230b6Smaya},
113210e230b6Smaya{
113310e230b6Smaya   .name = "f2u1",
113410e230b6Smaya   .num_inputs = 1,
113510e230b6Smaya   .output_size = 0,
113610e230b6Smaya   .output_type = nir_type_uint1,
113710e230b6Smaya   .input_sizes = {
113810e230b6Smaya      0
113910e230b6Smaya   },
114010e230b6Smaya   .input_types = {
114110e230b6Smaya      nir_type_float
114210e230b6Smaya   },
114310e230b6Smaya   .is_conversion = true,
114410e230b6Smaya   .algebraic_properties =
114510e230b6Smaya      0
114610e230b6Smaya},
114710e230b6Smaya{
114810e230b6Smaya   .name = "f2u16",
114910e230b6Smaya   .num_inputs = 1,
115010e230b6Smaya   .output_size = 0,
115110e230b6Smaya   .output_type = nir_type_uint16,
115210e230b6Smaya   .input_sizes = {
115310e230b6Smaya      0
115410e230b6Smaya   },
115510e230b6Smaya   .input_types = {
115610e230b6Smaya      nir_type_float
115710e230b6Smaya   },
115810e230b6Smaya   .is_conversion = true,
115910e230b6Smaya   .algebraic_properties =
116010e230b6Smaya      0
116110e230b6Smaya},
116210e230b6Smaya{
116310e230b6Smaya   .name = "f2u32",
116410e230b6Smaya   .num_inputs = 1,
116510e230b6Smaya   .output_size = 0,
116610e230b6Smaya   .output_type = nir_type_uint32,
116710e230b6Smaya   .input_sizes = {
116810e230b6Smaya      0
116910e230b6Smaya   },
117010e230b6Smaya   .input_types = {
117110e230b6Smaya      nir_type_float
117210e230b6Smaya   },
117310e230b6Smaya   .is_conversion = true,
117410e230b6Smaya   .algebraic_properties =
117510e230b6Smaya      0
117610e230b6Smaya},
117710e230b6Smaya{
117810e230b6Smaya   .name = "f2u64",
117910e230b6Smaya   .num_inputs = 1,
118010e230b6Smaya   .output_size = 0,
118110e230b6Smaya   .output_type = nir_type_uint64,
118210e230b6Smaya   .input_sizes = {
118310e230b6Smaya      0
118410e230b6Smaya   },
118510e230b6Smaya   .input_types = {
118610e230b6Smaya      nir_type_float
118710e230b6Smaya   },
118810e230b6Smaya   .is_conversion = true,
118910e230b6Smaya   .algebraic_properties =
119010e230b6Smaya      0
119110e230b6Smaya},
119210e230b6Smaya{
119310e230b6Smaya   .name = "f2u8",
119410e230b6Smaya   .num_inputs = 1,
119510e230b6Smaya   .output_size = 0,
119610e230b6Smaya   .output_type = nir_type_uint8,
119710e230b6Smaya   .input_sizes = {
119810e230b6Smaya      0
119910e230b6Smaya   },
120010e230b6Smaya   .input_types = {
120110e230b6Smaya      nir_type_float
120210e230b6Smaya   },
120310e230b6Smaya   .is_conversion = true,
120410e230b6Smaya   .algebraic_properties =
120510e230b6Smaya      0
120610e230b6Smaya},
120710e230b6Smaya{
120810e230b6Smaya   .name = "fabs",
120910e230b6Smaya   .num_inputs = 1,
121010e230b6Smaya   .output_size = 0,
121110e230b6Smaya   .output_type = nir_type_float,
121210e230b6Smaya   .input_sizes = {
121310e230b6Smaya      0
121410e230b6Smaya   },
121510e230b6Smaya   .input_types = {
121610e230b6Smaya      nir_type_float
121710e230b6Smaya   },
121810e230b6Smaya   .is_conversion = false,
121910e230b6Smaya   .algebraic_properties =
122010e230b6Smaya      0
122110e230b6Smaya},
122210e230b6Smaya{
122310e230b6Smaya   .name = "fadd",
122410e230b6Smaya   .num_inputs = 2,
122510e230b6Smaya   .output_size = 0,
122610e230b6Smaya   .output_type = nir_type_float,
122710e230b6Smaya   .input_sizes = {
122810e230b6Smaya      0, 0
122910e230b6Smaya   },
123010e230b6Smaya   .input_types = {
123110e230b6Smaya      nir_type_float, nir_type_float
123210e230b6Smaya   },
123310e230b6Smaya   .is_conversion = false,
123410e230b6Smaya   .algebraic_properties =
123510e230b6Smaya      NIR_OP_IS_COMMUTATIVE | NIR_OP_IS_ASSOCIATIVE
123610e230b6Smaya},
123710e230b6Smaya{
123810e230b6Smaya   .name = "fall_equal2",
123910e230b6Smaya   .num_inputs = 2,
124010e230b6Smaya   .output_size = 1,
124110e230b6Smaya   .output_type = nir_type_float32,
124210e230b6Smaya   .input_sizes = {
124310e230b6Smaya      2, 2
124410e230b6Smaya   },
124510e230b6Smaya   .input_types = {
124610e230b6Smaya      nir_type_float32, nir_type_float32
124710e230b6Smaya   },
124810e230b6Smaya   .is_conversion = false,
124910e230b6Smaya   .algebraic_properties =
125010e230b6Smaya      NIR_OP_IS_COMMUTATIVE
125110e230b6Smaya},
125210e230b6Smaya{
125310e230b6Smaya   .name = "fall_equal3",
125410e230b6Smaya   .num_inputs = 2,
125510e230b6Smaya   .output_size = 1,
125610e230b6Smaya   .output_type = nir_type_float32,
125710e230b6Smaya   .input_sizes = {
125810e230b6Smaya      3, 3
125910e230b6Smaya   },
126010e230b6Smaya   .input_types = {
126110e230b6Smaya      nir_type_float32, nir_type_float32
126210e230b6Smaya   },
126310e230b6Smaya   .is_conversion = false,
126410e230b6Smaya   .algebraic_properties =
126510e230b6Smaya      NIR_OP_IS_COMMUTATIVE
126610e230b6Smaya},
126710e230b6Smaya{
126810e230b6Smaya   .name = "fall_equal4",
126910e230b6Smaya   .num_inputs = 2,
127010e230b6Smaya   .output_size = 1,
127110e230b6Smaya   .output_type = nir_type_float32,
127210e230b6Smaya   .input_sizes = {
127310e230b6Smaya      4, 4
127410e230b6Smaya   },
127510e230b6Smaya   .input_types = {
127610e230b6Smaya      nir_type_float32, nir_type_float32
127710e230b6Smaya   },
127810e230b6Smaya   .is_conversion = false,
127910e230b6Smaya   .algebraic_properties =
128010e230b6Smaya      NIR_OP_IS_COMMUTATIVE
128110e230b6Smaya},
128210e230b6Smaya{
128310e230b6Smaya   .name = "fand",
128410e230b6Smaya   .num_inputs = 2,
128510e230b6Smaya   .output_size = 0,
128610e230b6Smaya   .output_type = nir_type_float32,
128710e230b6Smaya   .input_sizes = {
128810e230b6Smaya      0, 0
128910e230b6Smaya   },
129010e230b6Smaya   .input_types = {
129110e230b6Smaya      nir_type_float32, nir_type_float32
129210e230b6Smaya   },
129310e230b6Smaya   .is_conversion = false,
129410e230b6Smaya   .algebraic_properties =
129510e230b6Smaya      NIR_OP_IS_COMMUTATIVE
129610e230b6Smaya},
129710e230b6Smaya{
129810e230b6Smaya   .name = "fany_nequal2",
129910e230b6Smaya   .num_inputs = 2,
130010e230b6Smaya   .output_size = 1,
130110e230b6Smaya   .output_type = nir_type_float32,
130210e230b6Smaya   .input_sizes = {
130310e230b6Smaya      2, 2
130410e230b6Smaya   },
130510e230b6Smaya   .input_types = {
130610e230b6Smaya      nir_type_float32, nir_type_float32
130710e230b6Smaya   },
130810e230b6Smaya   .is_conversion = false,
130910e230b6Smaya   .algebraic_properties =
131010e230b6Smaya      NIR_OP_IS_COMMUTATIVE
131110e230b6Smaya},
131210e230b6Smaya{
131310e230b6Smaya   .name = "fany_nequal3",
131410e230b6Smaya   .num_inputs = 2,
131510e230b6Smaya   .output_size = 1,
131610e230b6Smaya   .output_type = nir_type_float32,
131710e230b6Smaya   .input_sizes = {
131810e230b6Smaya      3, 3
131910e230b6Smaya   },
132010e230b6Smaya   .input_types = {
132110e230b6Smaya      nir_type_float32, nir_type_float32
132210e230b6Smaya   },
132310e230b6Smaya   .is_conversion = false,
132410e230b6Smaya   .algebraic_properties =
132510e230b6Smaya      NIR_OP_IS_COMMUTATIVE
132610e230b6Smaya},
132710e230b6Smaya{
132810e230b6Smaya   .name = "fany_nequal4",
132910e230b6Smaya   .num_inputs = 2,
133010e230b6Smaya   .output_size = 1,
133110e230b6Smaya   .output_type = nir_type_float32,
133210e230b6Smaya   .input_sizes = {
133310e230b6Smaya      4, 4
133410e230b6Smaya   },
133510e230b6Smaya   .input_types = {
133610e230b6Smaya      nir_type_float32, nir_type_float32
133710e230b6Smaya   },
133810e230b6Smaya   .is_conversion = false,
133910e230b6Smaya   .algebraic_properties =
134010e230b6Smaya      NIR_OP_IS_COMMUTATIVE
134110e230b6Smaya},
134210e230b6Smaya{
134310e230b6Smaya   .name = "fceil",
134410e230b6Smaya   .num_inputs = 1,
134510e230b6Smaya   .output_size = 0,
134610e230b6Smaya   .output_type = nir_type_float,
134710e230b6Smaya   .input_sizes = {
134810e230b6Smaya      0
134910e230b6Smaya   },
135010e230b6Smaya   .input_types = {
135110e230b6Smaya      nir_type_float
135210e230b6Smaya   },
135310e230b6Smaya   .is_conversion = false,
135410e230b6Smaya   .algebraic_properties =
135510e230b6Smaya      0
135610e230b6Smaya},
135710e230b6Smaya{
135810e230b6Smaya   .name = "fcos",
135910e230b6Smaya   .num_inputs = 1,
136010e230b6Smaya   .output_size = 0,
136110e230b6Smaya   .output_type = nir_type_float,
136210e230b6Smaya   .input_sizes = {
136310e230b6Smaya      0
136410e230b6Smaya   },
136510e230b6Smaya   .input_types = {
136610e230b6Smaya      nir_type_float
136710e230b6Smaya   },
136810e230b6Smaya   .is_conversion = false,
136910e230b6Smaya   .algebraic_properties =
137010e230b6Smaya      0
137110e230b6Smaya},
137210e230b6Smaya{
137310e230b6Smaya   .name = "fcsel",
137410e230b6Smaya   .num_inputs = 3,
137510e230b6Smaya   .output_size = 0,
137610e230b6Smaya   .output_type = nir_type_float32,
137710e230b6Smaya   .input_sizes = {
137810e230b6Smaya      0, 0, 0
137910e230b6Smaya   },
138010e230b6Smaya   .input_types = {
138110e230b6Smaya      nir_type_float32, nir_type_float32, nir_type_float32
138210e230b6Smaya   },
138310e230b6Smaya   .is_conversion = false,
138410e230b6Smaya   .algebraic_properties =
138510e230b6Smaya      0
138610e230b6Smaya},
138710e230b6Smaya{
138810e230b6Smaya   .name = "fddx",
138910e230b6Smaya   .num_inputs = 1,
139010e230b6Smaya   .output_size = 0,
139110e230b6Smaya   .output_type = nir_type_float,
139210e230b6Smaya   .input_sizes = {
139310e230b6Smaya      0
139410e230b6Smaya   },
139510e230b6Smaya   .input_types = {
139610e230b6Smaya      nir_type_float
139710e230b6Smaya   },
139810e230b6Smaya   .is_conversion = false,
139910e230b6Smaya   .algebraic_properties =
140010e230b6Smaya      0
140110e230b6Smaya},
140210e230b6Smaya{
140310e230b6Smaya   .name = "fddx_coarse",
140410e230b6Smaya   .num_inputs = 1,
140510e230b6Smaya   .output_size = 0,
140610e230b6Smaya   .output_type = nir_type_float,
140710e230b6Smaya   .input_sizes = {
140810e230b6Smaya      0
140910e230b6Smaya   },
141010e230b6Smaya   .input_types = {
141110e230b6Smaya      nir_type_float
141210e230b6Smaya   },
141310e230b6Smaya   .is_conversion = false,
141410e230b6Smaya   .algebraic_properties =
141510e230b6Smaya      0
141610e230b6Smaya},
141710e230b6Smaya{
141810e230b6Smaya   .name = "fddx_fine",
141910e230b6Smaya   .num_inputs = 1,
142010e230b6Smaya   .output_size = 0,
142110e230b6Smaya   .output_type = nir_type_float,
142210e230b6Smaya   .input_sizes = {
142310e230b6Smaya      0
142410e230b6Smaya   },
142510e230b6Smaya   .input_types = {
142610e230b6Smaya      nir_type_float
142710e230b6Smaya   },
142810e230b6Smaya   .is_conversion = false,
142910e230b6Smaya   .algebraic_properties =
143010e230b6Smaya      0
143110e230b6Smaya},
143210e230b6Smaya{
143310e230b6Smaya   .name = "fddy",
143410e230b6Smaya   .num_inputs = 1,
143510e230b6Smaya   .output_size = 0,
143610e230b6Smaya   .output_type = nir_type_float,
143710e230b6Smaya   .input_sizes = {
143810e230b6Smaya      0
143910e230b6Smaya   },
144010e230b6Smaya   .input_types = {
144110e230b6Smaya      nir_type_float
144210e230b6Smaya   },
144310e230b6Smaya   .is_conversion = false,
144410e230b6Smaya   .algebraic_properties =
144510e230b6Smaya      0
144610e230b6Smaya},
144710e230b6Smaya{
144810e230b6Smaya   .name = "fddy_coarse",
144910e230b6Smaya   .num_inputs = 1,
145010e230b6Smaya   .output_size = 0,
145110e230b6Smaya   .output_type = nir_type_float,
145210e230b6Smaya   .input_sizes = {
145310e230b6Smaya      0
145410e230b6Smaya   },
145510e230b6Smaya   .input_types = {
145610e230b6Smaya      nir_type_float
145710e230b6Smaya   },
145810e230b6Smaya   .is_conversion = false,
145910e230b6Smaya   .algebraic_properties =
146010e230b6Smaya      0
146110e230b6Smaya},
146210e230b6Smaya{
146310e230b6Smaya   .name = "fddy_fine",
146410e230b6Smaya   .num_inputs = 1,
146510e230b6Smaya   .output_size = 0,
146610e230b6Smaya   .output_type = nir_type_float,
146710e230b6Smaya   .input_sizes = {
146810e230b6Smaya      0
146910e230b6Smaya   },
147010e230b6Smaya   .input_types = {
147110e230b6Smaya      nir_type_float
147210e230b6Smaya   },
147310e230b6Smaya   .is_conversion = false,
147410e230b6Smaya   .algebraic_properties =
147510e230b6Smaya      0
147610e230b6Smaya},
147710e230b6Smaya{
147810e230b6Smaya   .name = "fdiv",
147910e230b6Smaya   .num_inputs = 2,
148010e230b6Smaya   .output_size = 0,
148110e230b6Smaya   .output_type = nir_type_float,
148210e230b6Smaya   .input_sizes = {
148310e230b6Smaya      0, 0
148410e230b6Smaya   },
148510e230b6Smaya   .input_types = {
148610e230b6Smaya      nir_type_float, nir_type_float
148710e230b6Smaya   },
148810e230b6Smaya   .is_conversion = false,
148910e230b6Smaya   .algebraic_properties =
149010e230b6Smaya      0
149110e230b6Smaya},
149210e230b6Smaya{
149310e230b6Smaya   .name = "fdot2",
149410e230b6Smaya   .num_inputs = 2,
149510e230b6Smaya   .output_size = 1,
149610e230b6Smaya   .output_type = nir_type_float,
149710e230b6Smaya   .input_sizes = {
149810e230b6Smaya      2, 2
149910e230b6Smaya   },
150010e230b6Smaya   .input_types = {
150110e230b6Smaya      nir_type_float, nir_type_float
150210e230b6Smaya   },
150310e230b6Smaya   .is_conversion = false,
150410e230b6Smaya   .algebraic_properties =
150510e230b6Smaya      NIR_OP_IS_COMMUTATIVE
150610e230b6Smaya},
150710e230b6Smaya{
150810e230b6Smaya   .name = "fdot3",
150910e230b6Smaya   .num_inputs = 2,
151010e230b6Smaya   .output_size = 1,
151110e230b6Smaya   .output_type = nir_type_float,
151210e230b6Smaya   .input_sizes = {
151310e230b6Smaya      3, 3
151410e230b6Smaya   },
151510e230b6Smaya   .input_types = {
151610e230b6Smaya      nir_type_float, nir_type_float
151710e230b6Smaya   },
151810e230b6Smaya   .is_conversion = false,
151910e230b6Smaya   .algebraic_properties =
152010e230b6Smaya      NIR_OP_IS_COMMUTATIVE
152110e230b6Smaya},
152210e230b6Smaya{
152310e230b6Smaya   .name = "fdot4",
152410e230b6Smaya   .num_inputs = 2,
152510e230b6Smaya   .output_size = 1,
152610e230b6Smaya   .output_type = nir_type_float,
152710e230b6Smaya   .input_sizes = {
152810e230b6Smaya      4, 4
152910e230b6Smaya   },
153010e230b6Smaya   .input_types = {
153110e230b6Smaya      nir_type_float, nir_type_float
153210e230b6Smaya   },
153310e230b6Smaya   .is_conversion = false,
153410e230b6Smaya   .algebraic_properties =
153510e230b6Smaya      NIR_OP_IS_COMMUTATIVE
153610e230b6Smaya},
153710e230b6Smaya{
153810e230b6Smaya   .name = "fdot_replicated2",
153910e230b6Smaya   .num_inputs = 2,
154010e230b6Smaya   .output_size = 4,
154110e230b6Smaya   .output_type = nir_type_float,
154210e230b6Smaya   .input_sizes = {
154310e230b6Smaya      2, 2
154410e230b6Smaya   },
154510e230b6Smaya   .input_types = {
154610e230b6Smaya      nir_type_float, nir_type_float
154710e230b6Smaya   },
154810e230b6Smaya   .is_conversion = false,
154910e230b6Smaya   .algebraic_properties =
155010e230b6Smaya      NIR_OP_IS_COMMUTATIVE
155110e230b6Smaya},
155210e230b6Smaya{
155310e230b6Smaya   .name = "fdot_replicated3",
155410e230b6Smaya   .num_inputs = 2,
155510e230b6Smaya   .output_size = 4,
155610e230b6Smaya   .output_type = nir_type_float,
155710e230b6Smaya   .input_sizes = {
155810e230b6Smaya      3, 3
155910e230b6Smaya   },
156010e230b6Smaya   .input_types = {
156110e230b6Smaya      nir_type_float, nir_type_float
156210e230b6Smaya   },
156310e230b6Smaya   .is_conversion = false,
156410e230b6Smaya   .algebraic_properties =
156510e230b6Smaya      NIR_OP_IS_COMMUTATIVE
156610e230b6Smaya},
156710e230b6Smaya{
156810e230b6Smaya   .name = "fdot_replicated4",
156910e230b6Smaya   .num_inputs = 2,
157010e230b6Smaya   .output_size = 4,
157110e230b6Smaya   .output_type = nir_type_float,
157210e230b6Smaya   .input_sizes = {
157310e230b6Smaya      4, 4
157410e230b6Smaya   },
157510e230b6Smaya   .input_types = {
157610e230b6Smaya      nir_type_float, nir_type_float
157710e230b6Smaya   },
157810e230b6Smaya   .is_conversion = false,
157910e230b6Smaya   .algebraic_properties =
158010e230b6Smaya      NIR_OP_IS_COMMUTATIVE
158110e230b6Smaya},
158210e230b6Smaya{
158310e230b6Smaya   .name = "fdph",
158410e230b6Smaya   .num_inputs = 2,
158510e230b6Smaya   .output_size = 1,
158610e230b6Smaya   .output_type = nir_type_float,
158710e230b6Smaya   .input_sizes = {
158810e230b6Smaya      3, 4
158910e230b6Smaya   },
159010e230b6Smaya   .input_types = {
159110e230b6Smaya      nir_type_float, nir_type_float
159210e230b6Smaya   },
159310e230b6Smaya   .is_conversion = false,
159410e230b6Smaya   .algebraic_properties =
159510e230b6Smaya      0
159610e230b6Smaya},
159710e230b6Smaya{
159810e230b6Smaya   .name = "fdph_replicated",
159910e230b6Smaya   .num_inputs = 2,
160010e230b6Smaya   .output_size = 4,
160110e230b6Smaya   .output_type = nir_type_float,
160210e230b6Smaya   .input_sizes = {
160310e230b6Smaya      3, 4
160410e230b6Smaya   },
160510e230b6Smaya   .input_types = {
160610e230b6Smaya      nir_type_float, nir_type_float
160710e230b6Smaya   },
160810e230b6Smaya   .is_conversion = false,
160910e230b6Smaya   .algebraic_properties =
161010e230b6Smaya      0
161110e230b6Smaya},
161210e230b6Smaya{
161310e230b6Smaya   .name = "feq",
161410e230b6Smaya   .num_inputs = 2,
161510e230b6Smaya   .output_size = 0,
161610e230b6Smaya   .output_type = nir_type_bool1,
161710e230b6Smaya   .input_sizes = {
161810e230b6Smaya      0, 0
161910e230b6Smaya   },
162010e230b6Smaya   .input_types = {
162110e230b6Smaya      nir_type_float, nir_type_float
162210e230b6Smaya   },
162310e230b6Smaya   .is_conversion = false,
162410e230b6Smaya   .algebraic_properties =
162510e230b6Smaya      NIR_OP_IS_COMMUTATIVE
162610e230b6Smaya},
162710e230b6Smaya{
162810e230b6Smaya   .name = "feq32",
162910e230b6Smaya   .num_inputs = 2,
163010e230b6Smaya   .output_size = 0,
163110e230b6Smaya   .output_type = nir_type_bool32,
163210e230b6Smaya   .input_sizes = {
163310e230b6Smaya      0, 0
163410e230b6Smaya   },
163510e230b6Smaya   .input_types = {
163610e230b6Smaya      nir_type_float, nir_type_float
163710e230b6Smaya   },
163810e230b6Smaya   .is_conversion = false,
163910e230b6Smaya   .algebraic_properties =
164010e230b6Smaya      NIR_OP_IS_COMMUTATIVE
164110e230b6Smaya},
164210e230b6Smaya{
164310e230b6Smaya   .name = "fexp2",
164410e230b6Smaya   .num_inputs = 1,
164510e230b6Smaya   .output_size = 0,
164610e230b6Smaya   .output_type = nir_type_float,
164710e230b6Smaya   .input_sizes = {
164810e230b6Smaya      0
164910e230b6Smaya   },
165010e230b6Smaya   .input_types = {
165110e230b6Smaya      nir_type_float
165210e230b6Smaya   },
165310e230b6Smaya   .is_conversion = false,
165410e230b6Smaya   .algebraic_properties =
165510e230b6Smaya      0
165610e230b6Smaya},
165710e230b6Smaya{
165810e230b6Smaya   .name = "ffloor",
165910e230b6Smaya   .num_inputs = 1,
166010e230b6Smaya   .output_size = 0,
166110e230b6Smaya   .output_type = nir_type_float,
166210e230b6Smaya   .input_sizes = {
166310e230b6Smaya      0
166410e230b6Smaya   },
166510e230b6Smaya   .input_types = {
166610e230b6Smaya      nir_type_float
166710e230b6Smaya   },
166810e230b6Smaya   .is_conversion = false,
166910e230b6Smaya   .algebraic_properties =
167010e230b6Smaya      0
167110e230b6Smaya},
167210e230b6Smaya{
167310e230b6Smaya   .name = "ffma",
167410e230b6Smaya   .num_inputs = 3,
167510e230b6Smaya   .output_size = 0,
167610e230b6Smaya   .output_type = nir_type_float,
167710e230b6Smaya   .input_sizes = {
167810e230b6Smaya      0, 0, 0
167910e230b6Smaya   },
168010e230b6Smaya   .input_types = {
168110e230b6Smaya      nir_type_float, nir_type_float, nir_type_float
168210e230b6Smaya   },
168310e230b6Smaya   .is_conversion = false,
168410e230b6Smaya   .algebraic_properties =
168510e230b6Smaya      0
168610e230b6Smaya},
168710e230b6Smaya{
168810e230b6Smaya   .name = "ffract",
168910e230b6Smaya   .num_inputs = 1,
169010e230b6Smaya   .output_size = 0,
169110e230b6Smaya   .output_type = nir_type_float,
169210e230b6Smaya   .input_sizes = {
169310e230b6Smaya      0
169410e230b6Smaya   },
169510e230b6Smaya   .input_types = {
169610e230b6Smaya      nir_type_float
169710e230b6Smaya   },
169810e230b6Smaya   .is_conversion = false,
169910e230b6Smaya   .algebraic_properties =
170010e230b6Smaya      0
170110e230b6Smaya},
170210e230b6Smaya{
170310e230b6Smaya   .name = "fge",
170410e230b6Smaya   .num_inputs = 2,
170510e230b6Smaya   .output_size = 0,
170610e230b6Smaya   .output_type = nir_type_bool1,
170710e230b6Smaya   .input_sizes = {
170810e230b6Smaya      0, 0
170910e230b6Smaya   },
171010e230b6Smaya   .input_types = {
171110e230b6Smaya      nir_type_float, nir_type_float
171210e230b6Smaya   },
171310e230b6Smaya   .is_conversion = false,
171410e230b6Smaya   .algebraic_properties =
171510e230b6Smaya      0
171610e230b6Smaya},
171710e230b6Smaya{
171810e230b6Smaya   .name = "fge32",
171910e230b6Smaya   .num_inputs = 2,
172010e230b6Smaya   .output_size = 0,
172110e230b6Smaya   .output_type = nir_type_bool32,
172210e230b6Smaya   .input_sizes = {
172310e230b6Smaya      0, 0
172410e230b6Smaya   },
172510e230b6Smaya   .input_types = {
172610e230b6Smaya      nir_type_float, nir_type_float
172710e230b6Smaya   },
172810e230b6Smaya   .is_conversion = false,
172910e230b6Smaya   .algebraic_properties =
173010e230b6Smaya      0
173110e230b6Smaya},
173210e230b6Smaya{
173310e230b6Smaya   .name = "find_lsb",
173410e230b6Smaya   .num_inputs = 1,
173510e230b6Smaya   .output_size = 0,
173610e230b6Smaya   .output_type = nir_type_int32,
173710e230b6Smaya   .input_sizes = {
173810e230b6Smaya      0
173910e230b6Smaya   },
174010e230b6Smaya   .input_types = {
174110e230b6Smaya      nir_type_int
174210e230b6Smaya   },
174310e230b6Smaya   .is_conversion = false,
174410e230b6Smaya   .algebraic_properties =
174510e230b6Smaya      0
174610e230b6Smaya},
174710e230b6Smaya{
174810e230b6Smaya   .name = "flog2",
174910e230b6Smaya   .num_inputs = 1,
175010e230b6Smaya   .output_size = 0,
175110e230b6Smaya   .output_type = nir_type_float,
175210e230b6Smaya   .input_sizes = {
175310e230b6Smaya      0
175410e230b6Smaya   },
175510e230b6Smaya   .input_types = {
175610e230b6Smaya      nir_type_float
175710e230b6Smaya   },
175810e230b6Smaya   .is_conversion = false,
175910e230b6Smaya   .algebraic_properties =
176010e230b6Smaya      0
176110e230b6Smaya},
176210e230b6Smaya{
176310e230b6Smaya   .name = "flrp",
176410e230b6Smaya   .num_inputs = 3,
176510e230b6Smaya   .output_size = 0,
176610e230b6Smaya   .output_type = nir_type_float,
176710e230b6Smaya   .input_sizes = {
176810e230b6Smaya      0, 0, 0
176910e230b6Smaya   },
177010e230b6Smaya   .input_types = {
177110e230b6Smaya      nir_type_float, nir_type_float, nir_type_float
177210e230b6Smaya   },
177310e230b6Smaya   .is_conversion = false,
177410e230b6Smaya   .algebraic_properties =
177510e230b6Smaya      0
177610e230b6Smaya},
177710e230b6Smaya{
177810e230b6Smaya   .name = "flt",
177910e230b6Smaya   .num_inputs = 2,
178010e230b6Smaya   .output_size = 0,
178110e230b6Smaya   .output_type = nir_type_bool1,
178210e230b6Smaya   .input_sizes = {
178310e230b6Smaya      0, 0
178410e230b6Smaya   },
178510e230b6Smaya   .input_types = {
178610e230b6Smaya      nir_type_float, nir_type_float
178710e230b6Smaya   },
178810e230b6Smaya   .is_conversion = false,
178910e230b6Smaya   .algebraic_properties =
179010e230b6Smaya      0
179110e230b6Smaya},
179210e230b6Smaya{
179310e230b6Smaya   .name = "flt32",
179410e230b6Smaya   .num_inputs = 2,
179510e230b6Smaya   .output_size = 0,
179610e230b6Smaya   .output_type = nir_type_bool32,
179710e230b6Smaya   .input_sizes = {
179810e230b6Smaya      0, 0
179910e230b6Smaya   },
180010e230b6Smaya   .input_types = {
180110e230b6Smaya      nir_type_float, nir_type_float
180210e230b6Smaya   },
180310e230b6Smaya   .is_conversion = false,
180410e230b6Smaya   .algebraic_properties =
180510e230b6Smaya      0
180610e230b6Smaya},
180710e230b6Smaya{
180810e230b6Smaya   .name = "fmax",
180910e230b6Smaya   .num_inputs = 2,
181010e230b6Smaya   .output_size = 0,
181110e230b6Smaya   .output_type = nir_type_float,
181210e230b6Smaya   .input_sizes = {
181310e230b6Smaya      0, 0
181410e230b6Smaya   },
181510e230b6Smaya   .input_types = {
181610e230b6Smaya      nir_type_float, nir_type_float
181710e230b6Smaya   },
181810e230b6Smaya   .is_conversion = false,
181910e230b6Smaya   .algebraic_properties =
182010e230b6Smaya      0
182110e230b6Smaya},
182210e230b6Smaya{
182310e230b6Smaya   .name = "fmax3",
182410e230b6Smaya   .num_inputs = 3,
182510e230b6Smaya   .output_size = 0,
182610e230b6Smaya   .output_type = nir_type_float,
182710e230b6Smaya   .input_sizes = {
182810e230b6Smaya      0, 0, 0
182910e230b6Smaya   },
183010e230b6Smaya   .input_types = {
183110e230b6Smaya      nir_type_float, nir_type_float, nir_type_float
183210e230b6Smaya   },
183310e230b6Smaya   .is_conversion = false,
183410e230b6Smaya   .algebraic_properties =
183510e230b6Smaya      0
183610e230b6Smaya},
183710e230b6Smaya{
183810e230b6Smaya   .name = "fmed3",
183910e230b6Smaya   .num_inputs = 3,
184010e230b6Smaya   .output_size = 0,
184110e230b6Smaya   .output_type = nir_type_float,
184210e230b6Smaya   .input_sizes = {
184310e230b6Smaya      0, 0, 0
184410e230b6Smaya   },
184510e230b6Smaya   .input_types = {
184610e230b6Smaya      nir_type_float, nir_type_float, nir_type_float
184710e230b6Smaya   },
184810e230b6Smaya   .is_conversion = false,
184910e230b6Smaya   .algebraic_properties =
185010e230b6Smaya      0
185110e230b6Smaya},
185210e230b6Smaya{
185310e230b6Smaya   .name = "fmin",
185410e230b6Smaya   .num_inputs = 2,
185510e230b6Smaya   .output_size = 0,
185610e230b6Smaya   .output_type = nir_type_float,
185710e230b6Smaya   .input_sizes = {
185810e230b6Smaya      0, 0
185910e230b6Smaya   },
186010e230b6Smaya   .input_types = {
186110e230b6Smaya      nir_type_float, nir_type_float
186210e230b6Smaya   },
186310e230b6Smaya   .is_conversion = false,
186410e230b6Smaya   .algebraic_properties =
186510e230b6Smaya      0
186610e230b6Smaya},
186710e230b6Smaya{
186810e230b6Smaya   .name = "fmin3",
186910e230b6Smaya   .num_inputs = 3,
187010e230b6Smaya   .output_size = 0,
187110e230b6Smaya   .output_type = nir_type_float,
187210e230b6Smaya   .input_sizes = {
187310e230b6Smaya      0, 0, 0
187410e230b6Smaya   },
187510e230b6Smaya   .input_types = {
187610e230b6Smaya      nir_type_float, nir_type_float, nir_type_float
187710e230b6Smaya   },
187810e230b6Smaya   .is_conversion = false,
187910e230b6Smaya   .algebraic_properties =
188010e230b6Smaya      0
188110e230b6Smaya},
188210e230b6Smaya{
188310e230b6Smaya   .name = "fmod",
188410e230b6Smaya   .num_inputs = 2,
188510e230b6Smaya   .output_size = 0,
188610e230b6Smaya   .output_type = nir_type_float,
188710e230b6Smaya   .input_sizes = {
188810e230b6Smaya      0, 0
188910e230b6Smaya   },
189010e230b6Smaya   .input_types = {
189110e230b6Smaya      nir_type_float, nir_type_float
189210e230b6Smaya   },
189310e230b6Smaya   .is_conversion = false,
189410e230b6Smaya   .algebraic_properties =
189510e230b6Smaya      0
189610e230b6Smaya},
189710e230b6Smaya{
189810e230b6Smaya   .name = "fmov",
189910e230b6Smaya   .num_inputs = 1,
190010e230b6Smaya   .output_size = 0,
190110e230b6Smaya   .output_type = nir_type_float,
190210e230b6Smaya   .input_sizes = {
190310e230b6Smaya      0
190410e230b6Smaya   },
190510e230b6Smaya   .input_types = {
190610e230b6Smaya      nir_type_float
190710e230b6Smaya   },
190810e230b6Smaya   .is_conversion = false,
190910e230b6Smaya   .algebraic_properties =
191010e230b6Smaya      0
191110e230b6Smaya},
191210e230b6Smaya{
191310e230b6Smaya   .name = "fmul",
191410e230b6Smaya   .num_inputs = 2,
191510e230b6Smaya   .output_size = 0,
191610e230b6Smaya   .output_type = nir_type_float,
191710e230b6Smaya   .input_sizes = {
191810e230b6Smaya      0, 0
191910e230b6Smaya   },
192010e230b6Smaya   .input_types = {
192110e230b6Smaya      nir_type_float, nir_type_float
192210e230b6Smaya   },
192310e230b6Smaya   .is_conversion = false,
192410e230b6Smaya   .algebraic_properties =
192510e230b6Smaya      NIR_OP_IS_COMMUTATIVE | NIR_OP_IS_ASSOCIATIVE
192610e230b6Smaya},
192710e230b6Smaya{
192810e230b6Smaya   .name = "fne",
192910e230b6Smaya   .num_inputs = 2,
193010e230b6Smaya   .output_size = 0,
193110e230b6Smaya   .output_type = nir_type_bool1,
193210e230b6Smaya   .input_sizes = {
193310e230b6Smaya      0, 0
193410e230b6Smaya   },
193510e230b6Smaya   .input_types = {
193610e230b6Smaya      nir_type_float, nir_type_float
193710e230b6Smaya   },
193810e230b6Smaya   .is_conversion = false,
193910e230b6Smaya   .algebraic_properties =
194010e230b6Smaya      NIR_OP_IS_COMMUTATIVE
194110e230b6Smaya},
194210e230b6Smaya{
194310e230b6Smaya   .name = "fne32",
194410e230b6Smaya   .num_inputs = 2,
194510e230b6Smaya   .output_size = 0,
194610e230b6Smaya   .output_type = nir_type_bool32,
194710e230b6Smaya   .input_sizes = {
194810e230b6Smaya      0, 0
194910e230b6Smaya   },
195010e230b6Smaya   .input_types = {
195110e230b6Smaya      nir_type_float, nir_type_float
195210e230b6Smaya   },
195310e230b6Smaya   .is_conversion = false,
195410e230b6Smaya   .algebraic_properties =
195510e230b6Smaya      NIR_OP_IS_COMMUTATIVE
195610e230b6Smaya},
195710e230b6Smaya{
195810e230b6Smaya   .name = "fneg",
195910e230b6Smaya   .num_inputs = 1,
196010e230b6Smaya   .output_size = 0,
196110e230b6Smaya   .output_type = nir_type_float,
196210e230b6Smaya   .input_sizes = {
196310e230b6Smaya      0
196410e230b6Smaya   },
196510e230b6Smaya   .input_types = {
196610e230b6Smaya      nir_type_float
196710e230b6Smaya   },
196810e230b6Smaya   .is_conversion = false,
196910e230b6Smaya   .algebraic_properties =
197010e230b6Smaya      0
197110e230b6Smaya},
197210e230b6Smaya{
197310e230b6Smaya   .name = "fnoise1_1",
197410e230b6Smaya   .num_inputs = 1,
197510e230b6Smaya   .output_size = 1,
197610e230b6Smaya   .output_type = nir_type_float,
197710e230b6Smaya   .input_sizes = {
197810e230b6Smaya      1
197910e230b6Smaya   },
198010e230b6Smaya   .input_types = {
198110e230b6Smaya      nir_type_float
198210e230b6Smaya   },
198310e230b6Smaya   .is_conversion = false,
198410e230b6Smaya   .algebraic_properties =
198510e230b6Smaya      0
198610e230b6Smaya},
198710e230b6Smaya{
198810e230b6Smaya   .name = "fnoise1_2",
198910e230b6Smaya   .num_inputs = 1,
199010e230b6Smaya   .output_size = 1,
199110e230b6Smaya   .output_type = nir_type_float,
199210e230b6Smaya   .input_sizes = {
199310e230b6Smaya      2
199410e230b6Smaya   },
199510e230b6Smaya   .input_types = {
199610e230b6Smaya      nir_type_float
199710e230b6Smaya   },
199810e230b6Smaya   .is_conversion = false,
199910e230b6Smaya   .algebraic_properties =
200010e230b6Smaya      0
200110e230b6Smaya},
200210e230b6Smaya{
200310e230b6Smaya   .name = "fnoise1_3",
200410e230b6Smaya   .num_inputs = 1,
200510e230b6Smaya   .output_size = 1,
200610e230b6Smaya   .output_type = nir_type_float,
200710e230b6Smaya   .input_sizes = {
200810e230b6Smaya      3
200910e230b6Smaya   },
201010e230b6Smaya   .input_types = {
201110e230b6Smaya      nir_type_float
201210e230b6Smaya   },
201310e230b6Smaya   .is_conversion = false,
201410e230b6Smaya   .algebraic_properties =
201510e230b6Smaya      0
201610e230b6Smaya},
201710e230b6Smaya{
201810e230b6Smaya   .name = "fnoise1_4",
201910e230b6Smaya   .num_inputs = 1,
202010e230b6Smaya   .output_size = 1,
202110e230b6Smaya   .output_type = nir_type_float,
202210e230b6Smaya   .input_sizes = {
202310e230b6Smaya      4
202410e230b6Smaya   },
202510e230b6Smaya   .input_types = {
202610e230b6Smaya      nir_type_float
202710e230b6Smaya   },
202810e230b6Smaya   .is_conversion = false,
202910e230b6Smaya   .algebraic_properties =
203010e230b6Smaya      0
203110e230b6Smaya},
203210e230b6Smaya{
203310e230b6Smaya   .name = "fnoise2_1",
203410e230b6Smaya   .num_inputs = 1,
203510e230b6Smaya   .output_size = 2,
203610e230b6Smaya   .output_type = nir_type_float,
203710e230b6Smaya   .input_sizes = {
203810e230b6Smaya      1
203910e230b6Smaya   },
204010e230b6Smaya   .input_types = {
204110e230b6Smaya      nir_type_float
204210e230b6Smaya   },
204310e230b6Smaya   .is_conversion = false,
204410e230b6Smaya   .algebraic_properties =
204510e230b6Smaya      0
204610e230b6Smaya},
204710e230b6Smaya{
204810e230b6Smaya   .name = "fnoise2_2",
204910e230b6Smaya   .num_inputs = 1,
205010e230b6Smaya   .output_size = 2,
205110e230b6Smaya   .output_type = nir_type_float,
205210e230b6Smaya   .input_sizes = {
205310e230b6Smaya      2
205410e230b6Smaya   },
205510e230b6Smaya   .input_types = {
205610e230b6Smaya      nir_type_float
205710e230b6Smaya   },
205810e230b6Smaya   .is_conversion = false,
205910e230b6Smaya   .algebraic_properties =
206010e230b6Smaya      0
206110e230b6Smaya},
206210e230b6Smaya{
206310e230b6Smaya   .name = "fnoise2_3",
206410e230b6Smaya   .num_inputs = 1,
206510e230b6Smaya   .output_size = 2,
206610e230b6Smaya   .output_type = nir_type_float,
206710e230b6Smaya   .input_sizes = {
206810e230b6Smaya      3
206910e230b6Smaya   },
207010e230b6Smaya   .input_types = {
207110e230b6Smaya      nir_type_float
207210e230b6Smaya   },
207310e230b6Smaya   .is_conversion = false,
207410e230b6Smaya   .algebraic_properties =
207510e230b6Smaya      0
207610e230b6Smaya},
207710e230b6Smaya{
207810e230b6Smaya   .name = "fnoise2_4",
207910e230b6Smaya   .num_inputs = 1,
208010e230b6Smaya   .output_size = 2,
208110e230b6Smaya   .output_type = nir_type_float,
208210e230b6Smaya   .input_sizes = {
208310e230b6Smaya      4
208410e230b6Smaya   },
208510e230b6Smaya   .input_types = {
208610e230b6Smaya      nir_type_float
208710e230b6Smaya   },
208810e230b6Smaya   .is_conversion = false,
208910e230b6Smaya   .algebraic_properties =
209010e230b6Smaya      0
209110e230b6Smaya},
209210e230b6Smaya{
209310e230b6Smaya   .name = "fnoise3_1",
209410e230b6Smaya   .num_inputs = 1,
209510e230b6Smaya   .output_size = 3,
209610e230b6Smaya   .output_type = nir_type_float,
209710e230b6Smaya   .input_sizes = {
209810e230b6Smaya      1
209910e230b6Smaya   },
210010e230b6Smaya   .input_types = {
210110e230b6Smaya      nir_type_float
210210e230b6Smaya   },
210310e230b6Smaya   .is_conversion = false,
210410e230b6Smaya   .algebraic_properties =
210510e230b6Smaya      0
210610e230b6Smaya},
210710e230b6Smaya{
210810e230b6Smaya   .name = "fnoise3_2",
210910e230b6Smaya   .num_inputs = 1,
211010e230b6Smaya   .output_size = 3,
211110e230b6Smaya   .output_type = nir_type_float,
211210e230b6Smaya   .input_sizes = {
211310e230b6Smaya      2
211410e230b6Smaya   },
211510e230b6Smaya   .input_types = {
211610e230b6Smaya      nir_type_float
211710e230b6Smaya   },
211810e230b6Smaya   .is_conversion = false,
211910e230b6Smaya   .algebraic_properties =
212010e230b6Smaya      0
212110e230b6Smaya},
212210e230b6Smaya{
212310e230b6Smaya   .name = "fnoise3_3",
212410e230b6Smaya   .num_inputs = 1,
212510e230b6Smaya   .output_size = 3,
212610e230b6Smaya   .output_type = nir_type_float,
212710e230b6Smaya   .input_sizes = {
212810e230b6Smaya      3
212910e230b6Smaya   },
213010e230b6Smaya   .input_types = {
213110e230b6Smaya      nir_type_float
213210e230b6Smaya   },
213310e230b6Smaya   .is_conversion = false,
213410e230b6Smaya   .algebraic_properties =
213510e230b6Smaya      0
213610e230b6Smaya},
213710e230b6Smaya{
213810e230b6Smaya   .name = "fnoise3_4",
213910e230b6Smaya   .num_inputs = 1,
214010e230b6Smaya   .output_size = 3,
214110e230b6Smaya   .output_type = nir_type_float,
214210e230b6Smaya   .input_sizes = {
214310e230b6Smaya      4
214410e230b6Smaya   },
214510e230b6Smaya   .input_types = {
214610e230b6Smaya      nir_type_float
214710e230b6Smaya   },
214810e230b6Smaya   .is_conversion = false,
214910e230b6Smaya   .algebraic_properties =
215010e230b6Smaya      0
215110e230b6Smaya},
215210e230b6Smaya{
215310e230b6Smaya   .name = "fnoise4_1",
215410e230b6Smaya   .num_inputs = 1,
215510e230b6Smaya   .output_size = 4,
215610e230b6Smaya   .output_type = nir_type_float,
215710e230b6Smaya   .input_sizes = {
215810e230b6Smaya      1
215910e230b6Smaya   },
216010e230b6Smaya   .input_types = {
216110e230b6Smaya      nir_type_float
216210e230b6Smaya   },
216310e230b6Smaya   .is_conversion = false,
216410e230b6Smaya   .algebraic_properties =
216510e230b6Smaya      0
216610e230b6Smaya},
216710e230b6Smaya{
216810e230b6Smaya   .name = "fnoise4_2",
216910e230b6Smaya   .num_inputs = 1,
217010e230b6Smaya   .output_size = 4,
217110e230b6Smaya   .output_type = nir_type_float,
217210e230b6Smaya   .input_sizes = {
217310e230b6Smaya      2
217410e230b6Smaya   },
217510e230b6Smaya   .input_types = {
217610e230b6Smaya      nir_type_float
217710e230b6Smaya   },
217810e230b6Smaya   .is_conversion = false,
217910e230b6Smaya   .algebraic_properties =
218010e230b6Smaya      0
218110e230b6Smaya},
218210e230b6Smaya{
218310e230b6Smaya   .name = "fnoise4_3",
218410e230b6Smaya   .num_inputs = 1,
218510e230b6Smaya   .output_size = 4,
218610e230b6Smaya   .output_type = nir_type_float,
218710e230b6Smaya   .input_sizes = {
218810e230b6Smaya      3
218910e230b6Smaya   },
219010e230b6Smaya   .input_types = {
219110e230b6Smaya      nir_type_float
219210e230b6Smaya   },
219310e230b6Smaya   .is_conversion = false,
219410e230b6Smaya   .algebraic_properties =
219510e230b6Smaya      0
219610e230b6Smaya},
219710e230b6Smaya{
219810e230b6Smaya   .name = "fnoise4_4",
219910e230b6Smaya   .num_inputs = 1,
220010e230b6Smaya   .output_size = 4,
220110e230b6Smaya   .output_type = nir_type_float,
220210e230b6Smaya   .input_sizes = {
220310e230b6Smaya      4
220410e230b6Smaya   },
220510e230b6Smaya   .input_types = {
220610e230b6Smaya      nir_type_float
220710e230b6Smaya   },
220810e230b6Smaya   .is_conversion = false,
220910e230b6Smaya   .algebraic_properties =
221010e230b6Smaya      0
221110e230b6Smaya},
221210e230b6Smaya{
221310e230b6Smaya   .name = "fnot",
221410e230b6Smaya   .num_inputs = 1,
221510e230b6Smaya   .output_size = 0,
221610e230b6Smaya   .output_type = nir_type_float,
221710e230b6Smaya   .input_sizes = {
221810e230b6Smaya      0
221910e230b6Smaya   },
222010e230b6Smaya   .input_types = {
222110e230b6Smaya      nir_type_float
222210e230b6Smaya   },
222310e230b6Smaya   .is_conversion = false,
222410e230b6Smaya   .algebraic_properties =
222510e230b6Smaya      0
222610e230b6Smaya},
222710e230b6Smaya{
222810e230b6Smaya   .name = "for",
222910e230b6Smaya   .num_inputs = 2,
223010e230b6Smaya   .output_size = 0,
223110e230b6Smaya   .output_type = nir_type_float32,
223210e230b6Smaya   .input_sizes = {
223310e230b6Smaya      0, 0
223410e230b6Smaya   },
223510e230b6Smaya   .input_types = {
223610e230b6Smaya      nir_type_float32, nir_type_float32
223710e230b6Smaya   },
223810e230b6Smaya   .is_conversion = false,
223910e230b6Smaya   .algebraic_properties =
224010e230b6Smaya      NIR_OP_IS_COMMUTATIVE
224110e230b6Smaya},
224210e230b6Smaya{
224310e230b6Smaya   .name = "fpow",
224410e230b6Smaya   .num_inputs = 2,
224510e230b6Smaya   .output_size = 0,
224610e230b6Smaya   .output_type = nir_type_float,
224710e230b6Smaya   .input_sizes = {
224810e230b6Smaya      0, 0
224910e230b6Smaya   },
225010e230b6Smaya   .input_types = {
225110e230b6Smaya      nir_type_float, nir_type_float
225210e230b6Smaya   },
225310e230b6Smaya   .is_conversion = false,
225410e230b6Smaya   .algebraic_properties =
225510e230b6Smaya      0
225610e230b6Smaya},
225710e230b6Smaya{
225810e230b6Smaya   .name = "fquantize2f16",
225910e230b6Smaya   .num_inputs = 1,
226010e230b6Smaya   .output_size = 0,
226110e230b6Smaya   .output_type = nir_type_float,
226210e230b6Smaya   .input_sizes = {
226310e230b6Smaya      0
226410e230b6Smaya   },
226510e230b6Smaya   .input_types = {
226610e230b6Smaya      nir_type_float
226710e230b6Smaya   },
226810e230b6Smaya   .is_conversion = false,
226910e230b6Smaya   .algebraic_properties =
227010e230b6Smaya      0
227110e230b6Smaya},
227210e230b6Smaya{
227310e230b6Smaya   .name = "frcp",
227410e230b6Smaya   .num_inputs = 1,
227510e230b6Smaya   .output_size = 0,
227610e230b6Smaya   .output_type = nir_type_float,
227710e230b6Smaya   .input_sizes = {
227810e230b6Smaya      0
227910e230b6Smaya   },
228010e230b6Smaya   .input_types = {
228110e230b6Smaya      nir_type_float
228210e230b6Smaya   },
228310e230b6Smaya   .is_conversion = false,
228410e230b6Smaya   .algebraic_properties =
228510e230b6Smaya      0
228610e230b6Smaya},
228710e230b6Smaya{
228810e230b6Smaya   .name = "frem",
228910e230b6Smaya   .num_inputs = 2,
229010e230b6Smaya   .output_size = 0,
229110e230b6Smaya   .output_type = nir_type_float,
229210e230b6Smaya   .input_sizes = {
229310e230b6Smaya      0, 0
229410e230b6Smaya   },
229510e230b6Smaya   .input_types = {
229610e230b6Smaya      nir_type_float, nir_type_float
229710e230b6Smaya   },
229810e230b6Smaya   .is_conversion = false,
229910e230b6Smaya   .algebraic_properties =
230010e230b6Smaya      0
230110e230b6Smaya},
230210e230b6Smaya{
230310e230b6Smaya   .name = "frexp_exp",
230410e230b6Smaya   .num_inputs = 1,
230510e230b6Smaya   .output_size = 0,
230610e230b6Smaya   .output_type = nir_type_int32,
230710e230b6Smaya   .input_sizes = {
230810e230b6Smaya      0
230910e230b6Smaya   },
231010e230b6Smaya   .input_types = {
231110e230b6Smaya      nir_type_float
231210e230b6Smaya   },
231310e230b6Smaya   .is_conversion = false,
231410e230b6Smaya   .algebraic_properties =
231510e230b6Smaya      0
231610e230b6Smaya},
231710e230b6Smaya{
231810e230b6Smaya   .name = "frexp_sig",
231910e230b6Smaya   .num_inputs = 1,
232010e230b6Smaya   .output_size = 0,
232110e230b6Smaya   .output_type = nir_type_float,
232210e230b6Smaya   .input_sizes = {
232310e230b6Smaya      0
232410e230b6Smaya   },
232510e230b6Smaya   .input_types = {
232610e230b6Smaya      nir_type_float
232710e230b6Smaya   },
232810e230b6Smaya   .is_conversion = false,
232910e230b6Smaya   .algebraic_properties =
233010e230b6Smaya      0
233110e230b6Smaya},
233210e230b6Smaya{
233310e230b6Smaya   .name = "fround_even",
233410e230b6Smaya   .num_inputs = 1,
233510e230b6Smaya   .output_size = 0,
233610e230b6Smaya   .output_type = nir_type_float,
233710e230b6Smaya   .input_sizes = {
233810e230b6Smaya      0
233910e230b6Smaya   },
234010e230b6Smaya   .input_types = {
234110e230b6Smaya      nir_type_float
234210e230b6Smaya   },
234310e230b6Smaya   .is_conversion = false,
234410e230b6Smaya   .algebraic_properties =
234510e230b6Smaya      0
234610e230b6Smaya},
234710e230b6Smaya{
234810e230b6Smaya   .name = "frsq",
234910e230b6Smaya   .num_inputs = 1,
235010e230b6Smaya   .output_size = 0,
235110e230b6Smaya   .output_type = nir_type_float,
235210e230b6Smaya   .input_sizes = {
235310e230b6Smaya      0
235410e230b6Smaya   },
235510e230b6Smaya   .input_types = {
235610e230b6Smaya      nir_type_float
235710e230b6Smaya   },
235810e230b6Smaya   .is_conversion = false,
235910e230b6Smaya   .algebraic_properties =
236010e230b6Smaya      0
236110e230b6Smaya},
236210e230b6Smaya{
236310e230b6Smaya   .name = "fsat",
236410e230b6Smaya   .num_inputs = 1,
236510e230b6Smaya   .output_size = 0,
236610e230b6Smaya   .output_type = nir_type_float,
236710e230b6Smaya   .input_sizes = {
236810e230b6Smaya      0
236910e230b6Smaya   },
237010e230b6Smaya   .input_types = {
237110e230b6Smaya      nir_type_float
237210e230b6Smaya   },
237310e230b6Smaya   .is_conversion = false,
237410e230b6Smaya   .algebraic_properties =
237510e230b6Smaya      0
237610e230b6Smaya},
237710e230b6Smaya{
237810e230b6Smaya   .name = "fsign",
237910e230b6Smaya   .num_inputs = 1,
238010e230b6Smaya   .output_size = 0,
238110e230b6Smaya   .output_type = nir_type_float,
238210e230b6Smaya   .input_sizes = {
238310e230b6Smaya      0
238410e230b6Smaya   },
238510e230b6Smaya   .input_types = {
238610e230b6Smaya      nir_type_float
238710e230b6Smaya   },
238810e230b6Smaya   .is_conversion = false,
238910e230b6Smaya   .algebraic_properties =
239010e230b6Smaya      0
239110e230b6Smaya},
239210e230b6Smaya{
239310e230b6Smaya   .name = "fsin",
239410e230b6Smaya   .num_inputs = 1,
239510e230b6Smaya   .output_size = 0,
239610e230b6Smaya   .output_type = nir_type_float,
239710e230b6Smaya   .input_sizes = {
239810e230b6Smaya      0
239910e230b6Smaya   },
240010e230b6Smaya   .input_types = {
240110e230b6Smaya      nir_type_float
240210e230b6Smaya   },
240310e230b6Smaya   .is_conversion = false,
240410e230b6Smaya   .algebraic_properties =
240510e230b6Smaya      0
240610e230b6Smaya},
240710e230b6Smaya{
240810e230b6Smaya   .name = "fsqrt",
240910e230b6Smaya   .num_inputs = 1,
241010e230b6Smaya   .output_size = 0,
241110e230b6Smaya   .output_type = nir_type_float,
241210e230b6Smaya   .input_sizes = {
241310e230b6Smaya      0
241410e230b6Smaya   },
241510e230b6Smaya   .input_types = {
241610e230b6Smaya      nir_type_float
241710e230b6Smaya   },
241810e230b6Smaya   .is_conversion = false,
241910e230b6Smaya   .algebraic_properties =
242010e230b6Smaya      0
242110e230b6Smaya},
242210e230b6Smaya{
242310e230b6Smaya   .name = "fsub",
242410e230b6Smaya   .num_inputs = 2,
242510e230b6Smaya   .output_size = 0,
242610e230b6Smaya   .output_type = nir_type_float,
242710e230b6Smaya   .input_sizes = {
242810e230b6Smaya      0, 0
242910e230b6Smaya   },
243010e230b6Smaya   .input_types = {
243110e230b6Smaya      nir_type_float, nir_type_float
243210e230b6Smaya   },
243310e230b6Smaya   .is_conversion = false,
243410e230b6Smaya   .algebraic_properties =
243510e230b6Smaya      0
243610e230b6Smaya},
243710e230b6Smaya{
243810e230b6Smaya   .name = "ftrunc",
243910e230b6Smaya   .num_inputs = 1,
244010e230b6Smaya   .output_size = 0,
244110e230b6Smaya   .output_type = nir_type_float,
244210e230b6Smaya   .input_sizes = {
244310e230b6Smaya      0
244410e230b6Smaya   },
244510e230b6Smaya   .input_types = {
244610e230b6Smaya      nir_type_float
244710e230b6Smaya   },
244810e230b6Smaya   .is_conversion = false,
244910e230b6Smaya   .algebraic_properties =
245010e230b6Smaya      0
245110e230b6Smaya},
245210e230b6Smaya{
245310e230b6Smaya   .name = "fxor",
245410e230b6Smaya   .num_inputs = 2,
245510e230b6Smaya   .output_size = 0,
245610e230b6Smaya   .output_type = nir_type_float32,
245710e230b6Smaya   .input_sizes = {
245810e230b6Smaya      0, 0
245910e230b6Smaya   },
246010e230b6Smaya   .input_types = {
246110e230b6Smaya      nir_type_float32, nir_type_float32
246210e230b6Smaya   },
246310e230b6Smaya   .is_conversion = false,
246410e230b6Smaya   .algebraic_properties =
246510e230b6Smaya      NIR_OP_IS_COMMUTATIVE
246610e230b6Smaya},
246710e230b6Smaya{
246810e230b6Smaya   .name = "i2b1",
246910e230b6Smaya   .num_inputs = 1,
247010e230b6Smaya   .output_size = 0,
247110e230b6Smaya   .output_type = nir_type_bool1,
247210e230b6Smaya   .input_sizes = {
247310e230b6Smaya      0
247410e230b6Smaya   },
247510e230b6Smaya   .input_types = {
247610e230b6Smaya      nir_type_int
247710e230b6Smaya   },
247810e230b6Smaya   .is_conversion = true,
247910e230b6Smaya   .algebraic_properties =
248010e230b6Smaya      0
248110e230b6Smaya},
248210e230b6Smaya{
248310e230b6Smaya   .name = "i2b32",
248410e230b6Smaya   .num_inputs = 1,
248510e230b6Smaya   .output_size = 0,
248610e230b6Smaya   .output_type = nir_type_bool32,
248710e230b6Smaya   .input_sizes = {
248810e230b6Smaya      0
248910e230b6Smaya   },
249010e230b6Smaya   .input_types = {
249110e230b6Smaya      nir_type_int
249210e230b6Smaya   },
249310e230b6Smaya   .is_conversion = true,
249410e230b6Smaya   .algebraic_properties =
249510e230b6Smaya      0
249610e230b6Smaya},
249710e230b6Smaya{
249810e230b6Smaya   .name = "i2f16",
249910e230b6Smaya   .num_inputs = 1,
250010e230b6Smaya   .output_size = 0,
250110e230b6Smaya   .output_type = nir_type_float16,
250210e230b6Smaya   .input_sizes = {
250310e230b6Smaya      0
250410e230b6Smaya   },
250510e230b6Smaya   .input_types = {
250610e230b6Smaya      nir_type_int
250710e230b6Smaya   },
250810e230b6Smaya   .is_conversion = true,
250910e230b6Smaya   .algebraic_properties =
251010e230b6Smaya      0
251110e230b6Smaya},
251210e230b6Smaya{
251310e230b6Smaya   .name = "i2f32",
251410e230b6Smaya   .num_inputs = 1,
251510e230b6Smaya   .output_size = 0,
251610e230b6Smaya   .output_type = nir_type_float32,
251710e230b6Smaya   .input_sizes = {
251810e230b6Smaya      0
251910e230b6Smaya   },
252010e230b6Smaya   .input_types = {
252110e230b6Smaya      nir_type_int
252210e230b6Smaya   },
252310e230b6Smaya   .is_conversion = true,
252410e230b6Smaya   .algebraic_properties =
252510e230b6Smaya      0
252610e230b6Smaya},
252710e230b6Smaya{
252810e230b6Smaya   .name = "i2f64",
252910e230b6Smaya   .num_inputs = 1,
253010e230b6Smaya   .output_size = 0,
253110e230b6Smaya   .output_type = nir_type_float64,
253210e230b6Smaya   .input_sizes = {
253310e230b6Smaya      0
253410e230b6Smaya   },
253510e230b6Smaya   .input_types = {
253610e230b6Smaya      nir_type_int
253710e230b6Smaya   },
253810e230b6Smaya   .is_conversion = true,
253910e230b6Smaya   .algebraic_properties =
254010e230b6Smaya      0
254110e230b6Smaya},
254210e230b6Smaya{
254310e230b6Smaya   .name = "i2i1",
254410e230b6Smaya   .num_inputs = 1,
254510e230b6Smaya   .output_size = 0,
254610e230b6Smaya   .output_type = nir_type_int1,
254710e230b6Smaya   .input_sizes = {
254810e230b6Smaya      0
254910e230b6Smaya   },
255010e230b6Smaya   .input_types = {
255110e230b6Smaya      nir_type_int
255210e230b6Smaya   },
255310e230b6Smaya   .is_conversion = true,
255410e230b6Smaya   .algebraic_properties =
255510e230b6Smaya      0
255610e230b6Smaya},
255710e230b6Smaya{
255810e230b6Smaya   .name = "i2i16",
255910e230b6Smaya   .num_inputs = 1,
256010e230b6Smaya   .output_size = 0,
256110e230b6Smaya   .output_type = nir_type_int16,
256210e230b6Smaya   .input_sizes = {
256310e230b6Smaya      0
256410e230b6Smaya   },
256510e230b6Smaya   .input_types = {
256610e230b6Smaya      nir_type_int
256710e230b6Smaya   },
256810e230b6Smaya   .is_conversion = true,
256910e230b6Smaya   .algebraic_properties =
257010e230b6Smaya      0
257110e230b6Smaya},
257210e230b6Smaya{
257310e230b6Smaya   .name = "i2i32",
257410e230b6Smaya   .num_inputs = 1,
257510e230b6Smaya   .output_size = 0,
257610e230b6Smaya   .output_type = nir_type_int32,
257710e230b6Smaya   .input_sizes = {
257810e230b6Smaya      0
257910e230b6Smaya   },
258010e230b6Smaya   .input_types = {
258110e230b6Smaya      nir_type_int
258210e230b6Smaya   },
258310e230b6Smaya   .is_conversion = true,
258410e230b6Smaya   .algebraic_properties =
258510e230b6Smaya      0
258610e230b6Smaya},
258710e230b6Smaya{
258810e230b6Smaya   .name = "i2i64",
258910e230b6Smaya   .num_inputs = 1,
259010e230b6Smaya   .output_size = 0,
259110e230b6Smaya   .output_type = nir_type_int64,
259210e230b6Smaya   .input_sizes = {
259310e230b6Smaya      0
259410e230b6Smaya   },
259510e230b6Smaya   .input_types = {
259610e230b6Smaya      nir_type_int
259710e230b6Smaya   },
259810e230b6Smaya   .is_conversion = true,
259910e230b6Smaya   .algebraic_properties =
260010e230b6Smaya      0
260110e230b6Smaya},
260210e230b6Smaya{
260310e230b6Smaya   .name = "i2i8",
260410e230b6Smaya   .num_inputs = 1,
260510e230b6Smaya   .output_size = 0,
260610e230b6Smaya   .output_type = nir_type_int8,
260710e230b6Smaya   .input_sizes = {
260810e230b6Smaya      0
260910e230b6Smaya   },
261010e230b6Smaya   .input_types = {
261110e230b6Smaya      nir_type_int
261210e230b6Smaya   },
261310e230b6Smaya   .is_conversion = true,
261410e230b6Smaya   .algebraic_properties =
261510e230b6Smaya      0
261610e230b6Smaya},
261710e230b6Smaya{
261810e230b6Smaya   .name = "iabs",
261910e230b6Smaya   .num_inputs = 1,
262010e230b6Smaya   .output_size = 0,
262110e230b6Smaya   .output_type = nir_type_int,
262210e230b6Smaya   .input_sizes = {
262310e230b6Smaya      0
262410e230b6Smaya   },
262510e230b6Smaya   .input_types = {
262610e230b6Smaya      nir_type_int
262710e230b6Smaya   },
262810e230b6Smaya   .is_conversion = false,
262910e230b6Smaya   .algebraic_properties =
263010e230b6Smaya      0
263110e230b6Smaya},
263210e230b6Smaya{
263310e230b6Smaya   .name = "iadd",
263410e230b6Smaya   .num_inputs = 2,
263510e230b6Smaya   .output_size = 0,
263610e230b6Smaya   .output_type = nir_type_int,
263710e230b6Smaya   .input_sizes = {
263810e230b6Smaya      0, 0
263910e230b6Smaya   },
264010e230b6Smaya   .input_types = {
264110e230b6Smaya      nir_type_int, nir_type_int
264210e230b6Smaya   },
264310e230b6Smaya   .is_conversion = false,
264410e230b6Smaya   .algebraic_properties =
264510e230b6Smaya      NIR_OP_IS_COMMUTATIVE | NIR_OP_IS_ASSOCIATIVE
264610e230b6Smaya},
264710e230b6Smaya{
264810e230b6Smaya   .name = "iadd_sat",
264910e230b6Smaya   .num_inputs = 2,
265010e230b6Smaya   .output_size = 0,
265110e230b6Smaya   .output_type = nir_type_int,
265210e230b6Smaya   .input_sizes = {
265310e230b6Smaya      0, 0
265410e230b6Smaya   },
265510e230b6Smaya   .input_types = {
265610e230b6Smaya      nir_type_int, nir_type_int
265710e230b6Smaya   },
265810e230b6Smaya   .is_conversion = false,
265910e230b6Smaya   .algebraic_properties =
266010e230b6Smaya      NIR_OP_IS_COMMUTATIVE
266110e230b6Smaya},
266210e230b6Smaya{
266310e230b6Smaya   .name = "iand",
266410e230b6Smaya   .num_inputs = 2,
266510e230b6Smaya   .output_size = 0,
266610e230b6Smaya   .output_type = nir_type_uint,
266710e230b6Smaya   .input_sizes = {
266810e230b6Smaya      0, 0
266910e230b6Smaya   },
267010e230b6Smaya   .input_types = {
267110e230b6Smaya      nir_type_uint, nir_type_uint
267210e230b6Smaya   },
267310e230b6Smaya   .is_conversion = false,
267410e230b6Smaya   .algebraic_properties =
267510e230b6Smaya      NIR_OP_IS_COMMUTATIVE | NIR_OP_IS_ASSOCIATIVE
267610e230b6Smaya},
267710e230b6Smaya{
267810e230b6Smaya   .name = "ibfe",
267910e230b6Smaya   .num_inputs = 3,
268010e230b6Smaya   .output_size = 0,
268110e230b6Smaya   .output_type = nir_type_int32,
268210e230b6Smaya   .input_sizes = {
268310e230b6Smaya      0, 0, 0
268410e230b6Smaya   },
268510e230b6Smaya   .input_types = {
268610e230b6Smaya      nir_type_int32, nir_type_int32, nir_type_int32
268710e230b6Smaya   },
268810e230b6Smaya   .is_conversion = false,
268910e230b6Smaya   .algebraic_properties =
269010e230b6Smaya      0
269110e230b6Smaya},
269210e230b6Smaya{
269310e230b6Smaya   .name = "ibitfield_extract",
269410e230b6Smaya   .num_inputs = 3,
269510e230b6Smaya   .output_size = 0,
269610e230b6Smaya   .output_type = nir_type_int32,
269710e230b6Smaya   .input_sizes = {
269810e230b6Smaya      0, 0, 0
269910e230b6Smaya   },
270010e230b6Smaya   .input_types = {
270110e230b6Smaya      nir_type_int32, nir_type_int32, nir_type_int32
270210e230b6Smaya   },
270310e230b6Smaya   .is_conversion = false,
270410e230b6Smaya   .algebraic_properties =
270510e230b6Smaya      0
270610e230b6Smaya},
270710e230b6Smaya{
270810e230b6Smaya   .name = "idiv",
270910e230b6Smaya   .num_inputs = 2,
271010e230b6Smaya   .output_size = 0,
271110e230b6Smaya   .output_type = nir_type_int,
271210e230b6Smaya   .input_sizes = {
271310e230b6Smaya      0, 0
271410e230b6Smaya   },
271510e230b6Smaya   .input_types = {
271610e230b6Smaya      nir_type_int, nir_type_int
271710e230b6Smaya   },
271810e230b6Smaya   .is_conversion = false,
271910e230b6Smaya   .algebraic_properties =
272010e230b6Smaya      0
272110e230b6Smaya},
272210e230b6Smaya{
272310e230b6Smaya   .name = "ieq",
272410e230b6Smaya   .num_inputs = 2,
272510e230b6Smaya   .output_size = 0,
272610e230b6Smaya   .output_type = nir_type_bool1,
272710e230b6Smaya   .input_sizes = {
272810e230b6Smaya      0, 0
272910e230b6Smaya   },
273010e230b6Smaya   .input_types = {
273110e230b6Smaya      nir_type_int, nir_type_int
273210e230b6Smaya   },
273310e230b6Smaya   .is_conversion = false,
273410e230b6Smaya   .algebraic_properties =
273510e230b6Smaya      NIR_OP_IS_COMMUTATIVE
273610e230b6Smaya},
273710e230b6Smaya{
273810e230b6Smaya   .name = "ieq32",
273910e230b6Smaya   .num_inputs = 2,
274010e230b6Smaya   .output_size = 0,
274110e230b6Smaya   .output_type = nir_type_bool32,
274210e230b6Smaya   .input_sizes = {
274310e230b6Smaya      0, 0
274410e230b6Smaya   },
274510e230b6Smaya   .input_types = {
274610e230b6Smaya      nir_type_int, nir_type_int
274710e230b6Smaya   },
274810e230b6Smaya   .is_conversion = false,
274910e230b6Smaya   .algebraic_properties =
275010e230b6Smaya      NIR_OP_IS_COMMUTATIVE
275110e230b6Smaya},
275210e230b6Smaya{
275310e230b6Smaya   .name = "ifind_msb",
275410e230b6Smaya   .num_inputs = 1,
275510e230b6Smaya   .output_size = 0,
275610e230b6Smaya   .output_type = nir_type_int32,
275710e230b6Smaya   .input_sizes = {
275810e230b6Smaya      0
275910e230b6Smaya   },
276010e230b6Smaya   .input_types = {
276110e230b6Smaya      nir_type_int32
276210e230b6Smaya   },
276310e230b6Smaya   .is_conversion = false,
276410e230b6Smaya   .algebraic_properties =
276510e230b6Smaya      0
276610e230b6Smaya},
276710e230b6Smaya{
276810e230b6Smaya   .name = "ige",
276910e230b6Smaya   .num_inputs = 2,
277010e230b6Smaya   .output_size = 0,
277110e230b6Smaya   .output_type = nir_type_bool1,
277210e230b6Smaya   .input_sizes = {
277310e230b6Smaya      0, 0
277410e230b6Smaya   },
277510e230b6Smaya   .input_types = {
277610e230b6Smaya      nir_type_int, nir_type_int
277710e230b6Smaya   },
277810e230b6Smaya   .is_conversion = false,
277910e230b6Smaya   .algebraic_properties =
278010e230b6Smaya      0
278110e230b6Smaya},
278210e230b6Smaya{
278310e230b6Smaya   .name = "ige32",
278410e230b6Smaya   .num_inputs = 2,
278510e230b6Smaya   .output_size = 0,
278610e230b6Smaya   .output_type = nir_type_bool32,
278710e230b6Smaya   .input_sizes = {
278810e230b6Smaya      0, 0
278910e230b6Smaya   },
279010e230b6Smaya   .input_types = {
279110e230b6Smaya      nir_type_int, nir_type_int
279210e230b6Smaya   },
279310e230b6Smaya   .is_conversion = false,
279410e230b6Smaya   .algebraic_properties =
279510e230b6Smaya      0
279610e230b6Smaya},
279710e230b6Smaya{
279810e230b6Smaya   .name = "ihadd",
279910e230b6Smaya   .num_inputs = 2,
280010e230b6Smaya   .output_size = 0,
280110e230b6Smaya   .output_type = nir_type_int,
280210e230b6Smaya   .input_sizes = {
280310e230b6Smaya      0, 0
280410e230b6Smaya   },
280510e230b6Smaya   .input_types = {
280610e230b6Smaya      nir_type_int, nir_type_int
280710e230b6Smaya   },
280810e230b6Smaya   .is_conversion = false,
280910e230b6Smaya   .algebraic_properties =
281010e230b6Smaya      NIR_OP_IS_COMMUTATIVE
281110e230b6Smaya},
281210e230b6Smaya{
281310e230b6Smaya   .name = "ilt",
281410e230b6Smaya   .num_inputs = 2,
281510e230b6Smaya   .output_size = 0,
281610e230b6Smaya   .output_type = nir_type_bool1,
281710e230b6Smaya   .input_sizes = {
281810e230b6Smaya      0, 0
281910e230b6Smaya   },
282010e230b6Smaya   .input_types = {
282110e230b6Smaya      nir_type_int, nir_type_int
282210e230b6Smaya   },
282310e230b6Smaya   .is_conversion = false,
282410e230b6Smaya   .algebraic_properties =
282510e230b6Smaya      0
282610e230b6Smaya},
282710e230b6Smaya{
282810e230b6Smaya   .name = "ilt32",
282910e230b6Smaya   .num_inputs = 2,
283010e230b6Smaya   .output_size = 0,
283110e230b6Smaya   .output_type = nir_type_bool32,
283210e230b6Smaya   .input_sizes = {
283310e230b6Smaya      0, 0
283410e230b6Smaya   },
283510e230b6Smaya   .input_types = {
283610e230b6Smaya      nir_type_int, nir_type_int
283710e230b6Smaya   },
283810e230b6Smaya   .is_conversion = false,
283910e230b6Smaya   .algebraic_properties =
284010e230b6Smaya      0
284110e230b6Smaya},
284210e230b6Smaya{
284310e230b6Smaya   .name = "imax",
284410e230b6Smaya   .num_inputs = 2,
284510e230b6Smaya   .output_size = 0,
284610e230b6Smaya   .output_type = nir_type_int,
284710e230b6Smaya   .input_sizes = {
284810e230b6Smaya      0, 0
284910e230b6Smaya   },
285010e230b6Smaya   .input_types = {
285110e230b6Smaya      nir_type_int, nir_type_int
285210e230b6Smaya   },
285310e230b6Smaya   .is_conversion = false,
285410e230b6Smaya   .algebraic_properties =
285510e230b6Smaya      NIR_OP_IS_COMMUTATIVE | NIR_OP_IS_ASSOCIATIVE
285610e230b6Smaya},
285710e230b6Smaya{
285810e230b6Smaya   .name = "imax3",
285910e230b6Smaya   .num_inputs = 3,
286010e230b6Smaya   .output_size = 0,
286110e230b6Smaya   .output_type = nir_type_int,
286210e230b6Smaya   .input_sizes = {
286310e230b6Smaya      0, 0, 0
286410e230b6Smaya   },
286510e230b6Smaya   .input_types = {
286610e230b6Smaya      nir_type_int, nir_type_int, nir_type_int
286710e230b6Smaya   },
286810e230b6Smaya   .is_conversion = false,
286910e230b6Smaya   .algebraic_properties =
287010e230b6Smaya      0
287110e230b6Smaya},
287210e230b6Smaya{
287310e230b6Smaya   .name = "imed3",
287410e230b6Smaya   .num_inputs = 3,
287510e230b6Smaya   .output_size = 0,
287610e230b6Smaya   .output_type = nir_type_int,
287710e230b6Smaya   .input_sizes = {
287810e230b6Smaya      0, 0, 0
287910e230b6Smaya   },
288010e230b6Smaya   .input_types = {
288110e230b6Smaya      nir_type_int, nir_type_int, nir_type_int
288210e230b6Smaya   },
288310e230b6Smaya   .is_conversion = false,
288410e230b6Smaya   .algebraic_properties =
288510e230b6Smaya      0
288610e230b6Smaya},
288710e230b6Smaya{
288810e230b6Smaya   .name = "imin",
288910e230b6Smaya   .num_inputs = 2,
289010e230b6Smaya   .output_size = 0,
289110e230b6Smaya   .output_type = nir_type_int,
289210e230b6Smaya   .input_sizes = {
289310e230b6Smaya      0, 0
289410e230b6Smaya   },
289510e230b6Smaya   .input_types = {
289610e230b6Smaya      nir_type_int, nir_type_int
289710e230b6Smaya   },
289810e230b6Smaya   .is_conversion = false,
289910e230b6Smaya   .algebraic_properties =
290010e230b6Smaya      NIR_OP_IS_COMMUTATIVE | NIR_OP_IS_ASSOCIATIVE
290110e230b6Smaya},
290210e230b6Smaya{
290310e230b6Smaya   .name = "imin3",
290410e230b6Smaya   .num_inputs = 3,
290510e230b6Smaya   .output_size = 0,
290610e230b6Smaya   .output_type = nir_type_int,
290710e230b6Smaya   .input_sizes = {
290810e230b6Smaya      0, 0, 0
290910e230b6Smaya   },
291010e230b6Smaya   .input_types = {
291110e230b6Smaya      nir_type_int, nir_type_int, nir_type_int
291210e230b6Smaya   },
291310e230b6Smaya   .is_conversion = false,
291410e230b6Smaya   .algebraic_properties =
291510e230b6Smaya      0
291610e230b6Smaya},
291710e230b6Smaya{
291810e230b6Smaya   .name = "imod",
291910e230b6Smaya   .num_inputs = 2,
292010e230b6Smaya   .output_size = 0,
292110e230b6Smaya   .output_type = nir_type_int,
292210e230b6Smaya   .input_sizes = {
292310e230b6Smaya      0, 0
292410e230b6Smaya   },
292510e230b6Smaya   .input_types = {
292610e230b6Smaya      nir_type_int, nir_type_int
292710e230b6Smaya   },
292810e230b6Smaya   .is_conversion = false,
292910e230b6Smaya   .algebraic_properties =
293010e230b6Smaya      0
293110e230b6Smaya},
293210e230b6Smaya{
293310e230b6Smaya   .name = "imov",
293410e230b6Smaya   .num_inputs = 1,
293510e230b6Smaya   .output_size = 0,
293610e230b6Smaya   .output_type = nir_type_int,
293710e230b6Smaya   .input_sizes = {
293810e230b6Smaya      0
293910e230b6Smaya   },
294010e230b6Smaya   .input_types = {
294110e230b6Smaya      nir_type_int
294210e230b6Smaya   },
294310e230b6Smaya   .is_conversion = false,
294410e230b6Smaya   .algebraic_properties =
294510e230b6Smaya      0
294610e230b6Smaya},
294710e230b6Smaya{
294810e230b6Smaya   .name = "imul",
294910e230b6Smaya   .num_inputs = 2,
295010e230b6Smaya   .output_size = 0,
295110e230b6Smaya   .output_type = nir_type_int,
295210e230b6Smaya   .input_sizes = {
295310e230b6Smaya      0, 0
295410e230b6Smaya   },
295510e230b6Smaya   .input_types = {
295610e230b6Smaya      nir_type_int, nir_type_int
295710e230b6Smaya   },
295810e230b6Smaya   .is_conversion = false,
295910e230b6Smaya   .algebraic_properties =
296010e230b6Smaya      NIR_OP_IS_COMMUTATIVE | NIR_OP_IS_ASSOCIATIVE
296110e230b6Smaya},
296210e230b6Smaya{
296310e230b6Smaya   .name = "imul_2x32_64",
296410e230b6Smaya   .num_inputs = 2,
296510e230b6Smaya   .output_size = 0,
296610e230b6Smaya   .output_type = nir_type_int64,
296710e230b6Smaya   .input_sizes = {
296810e230b6Smaya      0, 0
296910e230b6Smaya   },
297010e230b6Smaya   .input_types = {
297110e230b6Smaya      nir_type_int32, nir_type_int32
297210e230b6Smaya   },
297310e230b6Smaya   .is_conversion = false,
297410e230b6Smaya   .algebraic_properties =
297510e230b6Smaya      NIR_OP_IS_COMMUTATIVE
297610e230b6Smaya},
297710e230b6Smaya{
297810e230b6Smaya   .name = "imul_high",
297910e230b6Smaya   .num_inputs = 2,
298010e230b6Smaya   .output_size = 0,
298110e230b6Smaya   .output_type = nir_type_int,
298210e230b6Smaya   .input_sizes = {
298310e230b6Smaya      0, 0
298410e230b6Smaya   },
298510e230b6Smaya   .input_types = {
298610e230b6Smaya      nir_type_int, nir_type_int
298710e230b6Smaya   },
298810e230b6Smaya   .is_conversion = false,
298910e230b6Smaya   .algebraic_properties =
299010e230b6Smaya      NIR_OP_IS_COMMUTATIVE
299110e230b6Smaya},
299210e230b6Smaya{
299310e230b6Smaya   .name = "ine",
299410e230b6Smaya   .num_inputs = 2,
299510e230b6Smaya   .output_size = 0,
299610e230b6Smaya   .output_type = nir_type_bool1,
299710e230b6Smaya   .input_sizes = {
299810e230b6Smaya      0, 0
299910e230b6Smaya   },
300010e230b6Smaya   .input_types = {
300110e230b6Smaya      nir_type_int, nir_type_int
300210e230b6Smaya   },
300310e230b6Smaya   .is_conversion = false,
300410e230b6Smaya   .algebraic_properties =
300510e230b6Smaya      NIR_OP_IS_COMMUTATIVE
300610e230b6Smaya},
300710e230b6Smaya{
300810e230b6Smaya   .name = "ine32",
300910e230b6Smaya   .num_inputs = 2,
301010e230b6Smaya   .output_size = 0,
301110e230b6Smaya   .output_type = nir_type_bool32,
301210e230b6Smaya   .input_sizes = {
301310e230b6Smaya      0, 0
301410e230b6Smaya   },
301510e230b6Smaya   .input_types = {
301610e230b6Smaya      nir_type_int, nir_type_int
301710e230b6Smaya   },
301810e230b6Smaya   .is_conversion = false,
301910e230b6Smaya   .algebraic_properties =
302010e230b6Smaya      NIR_OP_IS_COMMUTATIVE
302110e230b6Smaya},
302210e230b6Smaya{
302310e230b6Smaya   .name = "ineg",
302410e230b6Smaya   .num_inputs = 1,
302510e230b6Smaya   .output_size = 0,
302610e230b6Smaya   .output_type = nir_type_int,
302710e230b6Smaya   .input_sizes = {
302810e230b6Smaya      0
302910e230b6Smaya   },
303010e230b6Smaya   .input_types = {
303110e230b6Smaya      nir_type_int
303210e230b6Smaya   },
303310e230b6Smaya   .is_conversion = false,
303410e230b6Smaya   .algebraic_properties =
303510e230b6Smaya      0
303610e230b6Smaya},
303710e230b6Smaya{
303810e230b6Smaya   .name = "inot",
303910e230b6Smaya   .num_inputs = 1,
304010e230b6Smaya   .output_size = 0,
304110e230b6Smaya   .output_type = nir_type_int,
304210e230b6Smaya   .input_sizes = {
304310e230b6Smaya      0
304410e230b6Smaya   },
304510e230b6Smaya   .input_types = {
304610e230b6Smaya      nir_type_int
304710e230b6Smaya   },
304810e230b6Smaya   .is_conversion = false,
304910e230b6Smaya   .algebraic_properties =
305010e230b6Smaya      0
305110e230b6Smaya},
305210e230b6Smaya{
305310e230b6Smaya   .name = "ior",
305410e230b6Smaya   .num_inputs = 2,
305510e230b6Smaya   .output_size = 0,
305610e230b6Smaya   .output_type = nir_type_uint,
305710e230b6Smaya   .input_sizes = {
305810e230b6Smaya      0, 0
305910e230b6Smaya   },
306010e230b6Smaya   .input_types = {
306110e230b6Smaya      nir_type_uint, nir_type_uint
306210e230b6Smaya   },
306310e230b6Smaya   .is_conversion = false,
306410e230b6Smaya   .algebraic_properties =
306510e230b6Smaya      NIR_OP_IS_COMMUTATIVE | NIR_OP_IS_ASSOCIATIVE
306610e230b6Smaya},
306710e230b6Smaya{
306810e230b6Smaya   .name = "irem",
306910e230b6Smaya   .num_inputs = 2,
307010e230b6Smaya   .output_size = 0,
307110e230b6Smaya   .output_type = nir_type_int,
307210e230b6Smaya   .input_sizes = {
307310e230b6Smaya      0, 0
307410e230b6Smaya   },
307510e230b6Smaya   .input_types = {
307610e230b6Smaya      nir_type_int, nir_type_int
307710e230b6Smaya   },
307810e230b6Smaya   .is_conversion = false,
307910e230b6Smaya   .algebraic_properties =
308010e230b6Smaya      0
308110e230b6Smaya},
308210e230b6Smaya{
308310e230b6Smaya   .name = "irhadd",
308410e230b6Smaya   .num_inputs = 2,
308510e230b6Smaya   .output_size = 0,
308610e230b6Smaya   .output_type = nir_type_int,
308710e230b6Smaya   .input_sizes = {
308810e230b6Smaya      0, 0
308910e230b6Smaya   },
309010e230b6Smaya   .input_types = {
309110e230b6Smaya      nir_type_int, nir_type_int
309210e230b6Smaya   },
309310e230b6Smaya   .is_conversion = false,
309410e230b6Smaya   .algebraic_properties =
309510e230b6Smaya      NIR_OP_IS_COMMUTATIVE
309610e230b6Smaya},
309710e230b6Smaya{
309810e230b6Smaya   .name = "ishl",
309910e230b6Smaya   .num_inputs = 2,
310010e230b6Smaya   .output_size = 0,
310110e230b6Smaya   .output_type = nir_type_int,
310210e230b6Smaya   .input_sizes = {
310310e230b6Smaya      0, 0
310410e230b6Smaya   },
310510e230b6Smaya   .input_types = {
310610e230b6Smaya      nir_type_int, nir_type_uint32
310710e230b6Smaya   },
310810e230b6Smaya   .is_conversion = false,
310910e230b6Smaya   .algebraic_properties =
311010e230b6Smaya      0
311110e230b6Smaya},
311210e230b6Smaya{
311310e230b6Smaya   .name = "ishr",
311410e230b6Smaya   .num_inputs = 2,
311510e230b6Smaya   .output_size = 0,
311610e230b6Smaya   .output_type = nir_type_int,
311710e230b6Smaya   .input_sizes = {
311810e230b6Smaya      0, 0
311910e230b6Smaya   },
312010e230b6Smaya   .input_types = {
312110e230b6Smaya      nir_type_int, nir_type_uint32
312210e230b6Smaya   },
312310e230b6Smaya   .is_conversion = false,
312410e230b6Smaya   .algebraic_properties =
312510e230b6Smaya      0
312610e230b6Smaya},
312710e230b6Smaya{
312810e230b6Smaya   .name = "isign",
312910e230b6Smaya   .num_inputs = 1,
313010e230b6Smaya   .output_size = 0,
313110e230b6Smaya   .output_type = nir_type_int,
313210e230b6Smaya   .input_sizes = {
313310e230b6Smaya      0
313410e230b6Smaya   },
313510e230b6Smaya   .input_types = {
313610e230b6Smaya      nir_type_int
313710e230b6Smaya   },
313810e230b6Smaya   .is_conversion = false,
313910e230b6Smaya   .algebraic_properties =
314010e230b6Smaya      0
314110e230b6Smaya},
314210e230b6Smaya{
314310e230b6Smaya   .name = "isub",
314410e230b6Smaya   .num_inputs = 2,
314510e230b6Smaya   .output_size = 0,
314610e230b6Smaya   .output_type = nir_type_int,
314710e230b6Smaya   .input_sizes = {
314810e230b6Smaya      0, 0
314910e230b6Smaya   },
315010e230b6Smaya   .input_types = {
315110e230b6Smaya      nir_type_int, nir_type_int
315210e230b6Smaya   },
315310e230b6Smaya   .is_conversion = false,
315410e230b6Smaya   .algebraic_properties =
315510e230b6Smaya      0
315610e230b6Smaya},
315710e230b6Smaya{
315810e230b6Smaya   .name = "isub_sat",
315910e230b6Smaya   .num_inputs = 2,
316010e230b6Smaya   .output_size = 0,
316110e230b6Smaya   .output_type = nir_type_int,
316210e230b6Smaya   .input_sizes = {
316310e230b6Smaya      0, 0
316410e230b6Smaya   },
316510e230b6Smaya   .input_types = {
316610e230b6Smaya      nir_type_int, nir_type_int
316710e230b6Smaya   },
316810e230b6Smaya   .is_conversion = false,
316910e230b6Smaya   .algebraic_properties =
317010e230b6Smaya      0
317110e230b6Smaya},
317210e230b6Smaya{
317310e230b6Smaya   .name = "ixor",
317410e230b6Smaya   .num_inputs = 2,
317510e230b6Smaya   .output_size = 0,
317610e230b6Smaya   .output_type = nir_type_uint,
317710e230b6Smaya   .input_sizes = {
317810e230b6Smaya      0, 0
317910e230b6Smaya   },
318010e230b6Smaya   .input_types = {
318110e230b6Smaya      nir_type_uint, nir_type_uint
318210e230b6Smaya   },
318310e230b6Smaya   .is_conversion = false,
318410e230b6Smaya   .algebraic_properties =
318510e230b6Smaya      NIR_OP_IS_COMMUTATIVE | NIR_OP_IS_ASSOCIATIVE
318610e230b6Smaya},
318710e230b6Smaya{
318810e230b6Smaya   .name = "ldexp",
318910e230b6Smaya   .num_inputs = 2,
319010e230b6Smaya   .output_size = 0,
319110e230b6Smaya   .output_type = nir_type_float,
319210e230b6Smaya   .input_sizes = {
319310e230b6Smaya      0, 0
319410e230b6Smaya   },
319510e230b6Smaya   .input_types = {
319610e230b6Smaya      nir_type_float, nir_type_int32
319710e230b6Smaya   },
319810e230b6Smaya   .is_conversion = false,
319910e230b6Smaya   .algebraic_properties =
320010e230b6Smaya      0
320110e230b6Smaya},
320210e230b6Smaya{
320310e230b6Smaya   .name = "pack_32_2x16",
320410e230b6Smaya   .num_inputs = 1,
320510e230b6Smaya   .output_size = 1,
320610e230b6Smaya   .output_type = nir_type_uint32,
320710e230b6Smaya   .input_sizes = {
320810e230b6Smaya      2
320910e230b6Smaya   },
321010e230b6Smaya   .input_types = {
321110e230b6Smaya      nir_type_uint16
321210e230b6Smaya   },
321310e230b6Smaya   .is_conversion = false,
321410e230b6Smaya   .algebraic_properties =
321510e230b6Smaya      0
321610e230b6Smaya},
321710e230b6Smaya{
321810e230b6Smaya   .name = "pack_32_2x16_split",
321910e230b6Smaya   .num_inputs = 2,
322010e230b6Smaya   .output_size = 0,
322110e230b6Smaya   .output_type = nir_type_uint32,
322210e230b6Smaya   .input_sizes = {
322310e230b6Smaya      0, 0
322410e230b6Smaya   },
322510e230b6Smaya   .input_types = {
322610e230b6Smaya      nir_type_uint16, nir_type_uint16
322710e230b6Smaya   },
322810e230b6Smaya   .is_conversion = false,
322910e230b6Smaya   .algebraic_properties =
323010e230b6Smaya      0
323110e230b6Smaya},
323210e230b6Smaya{
323310e230b6Smaya   .name = "pack_64_2x32",
323410e230b6Smaya   .num_inputs = 1,
323510e230b6Smaya   .output_size = 1,
323610e230b6Smaya   .output_type = nir_type_uint64,
323710e230b6Smaya   .input_sizes = {
323810e230b6Smaya      2
323910e230b6Smaya   },
324010e230b6Smaya   .input_types = {
324110e230b6Smaya      nir_type_uint32
324210e230b6Smaya   },
324310e230b6Smaya   .is_conversion = false,
324410e230b6Smaya   .algebraic_properties =
324510e230b6Smaya      0
324610e230b6Smaya},
324710e230b6Smaya{
324810e230b6Smaya   .name = "pack_64_2x32_split",
324910e230b6Smaya   .num_inputs = 2,
325010e230b6Smaya   .output_size = 0,
325110e230b6Smaya   .output_type = nir_type_uint64,
325210e230b6Smaya   .input_sizes = {
325310e230b6Smaya      0, 0
325410e230b6Smaya   },
325510e230b6Smaya   .input_types = {
325610e230b6Smaya      nir_type_uint32, nir_type_uint32
325710e230b6Smaya   },
325810e230b6Smaya   .is_conversion = false,
325910e230b6Smaya   .algebraic_properties =
326010e230b6Smaya      0
326110e230b6Smaya},
326210e230b6Smaya{
326310e230b6Smaya   .name = "pack_64_4x16",
326410e230b6Smaya   .num_inputs = 1,
326510e230b6Smaya   .output_size = 1,
326610e230b6Smaya   .output_type = nir_type_uint64,
326710e230b6Smaya   .input_sizes = {
326810e230b6Smaya      4
326910e230b6Smaya   },
327010e230b6Smaya   .input_types = {
327110e230b6Smaya      nir_type_uint16
327210e230b6Smaya   },
327310e230b6Smaya   .is_conversion = false,
327410e230b6Smaya   .algebraic_properties =
327510e230b6Smaya      0
327610e230b6Smaya},
327710e230b6Smaya{
327810e230b6Smaya   .name = "pack_half_2x16",
327910e230b6Smaya   .num_inputs = 1,
328010e230b6Smaya   .output_size = 1,
328110e230b6Smaya   .output_type = nir_type_uint32,
328210e230b6Smaya   .input_sizes = {
328310e230b6Smaya      2
328410e230b6Smaya   },
328510e230b6Smaya   .input_types = {
328610e230b6Smaya      nir_type_float32
328710e230b6Smaya   },
328810e230b6Smaya   .is_conversion = false,
328910e230b6Smaya   .algebraic_properties =
329010e230b6Smaya      0
329110e230b6Smaya},
329210e230b6Smaya{
329310e230b6Smaya   .name = "pack_half_2x16_split",
329410e230b6Smaya   .num_inputs = 2,
329510e230b6Smaya   .output_size = 1,
329610e230b6Smaya   .output_type = nir_type_uint32,
329710e230b6Smaya   .input_sizes = {
329810e230b6Smaya      1, 1
329910e230b6Smaya   },
330010e230b6Smaya   .input_types = {
330110e230b6Smaya      nir_type_float32, nir_type_float32
330210e230b6Smaya   },
330310e230b6Smaya   .is_conversion = false,
330410e230b6Smaya   .algebraic_properties =
330510e230b6Smaya      0
330610e230b6Smaya},
330710e230b6Smaya{
330810e230b6Smaya   .name = "pack_snorm_2x16",
330910e230b6Smaya   .num_inputs = 1,
331010e230b6Smaya   .output_size = 1,
331110e230b6Smaya   .output_type = nir_type_uint32,
331210e230b6Smaya   .input_sizes = {
331310e230b6Smaya      2
331410e230b6Smaya   },
331510e230b6Smaya   .input_types = {
331610e230b6Smaya      nir_type_float32
331710e230b6Smaya   },
331810e230b6Smaya   .is_conversion = false,
331910e230b6Smaya   .algebraic_properties =
332010e230b6Smaya      0
332110e230b6Smaya},
332210e230b6Smaya{
332310e230b6Smaya   .name = "pack_snorm_4x8",
332410e230b6Smaya   .num_inputs = 1,
332510e230b6Smaya   .output_size = 1,
332610e230b6Smaya   .output_type = nir_type_uint32,
332710e230b6Smaya   .input_sizes = {
332810e230b6Smaya      4
332910e230b6Smaya   },
333010e230b6Smaya   .input_types = {
333110e230b6Smaya      nir_type_float32
333210e230b6Smaya   },
333310e230b6Smaya   .is_conversion = false,
333410e230b6Smaya   .algebraic_properties =
333510e230b6Smaya      0
333610e230b6Smaya},
333710e230b6Smaya{
333810e230b6Smaya   .name = "pack_unorm_2x16",
333910e230b6Smaya   .num_inputs = 1,
334010e230b6Smaya   .output_size = 1,
334110e230b6Smaya   .output_type = nir_type_uint32,
334210e230b6Smaya   .input_sizes = {
334310e230b6Smaya      2
334410e230b6Smaya   },
334510e230b6Smaya   .input_types = {
334610e230b6Smaya      nir_type_float32
334710e230b6Smaya   },
334810e230b6Smaya   .is_conversion = false,
334910e230b6Smaya   .algebraic_properties =
335010e230b6Smaya      0
335110e230b6Smaya},
335210e230b6Smaya{
335310e230b6Smaya   .name = "pack_unorm_4x8",
335410e230b6Smaya   .num_inputs = 1,
335510e230b6Smaya   .output_size = 1,
335610e230b6Smaya   .output_type = nir_type_uint32,
335710e230b6Smaya   .input_sizes = {
335810e230b6Smaya      4
335910e230b6Smaya   },
336010e230b6Smaya   .input_types = {
336110e230b6Smaya      nir_type_float32
336210e230b6Smaya   },
336310e230b6Smaya   .is_conversion = false,
336410e230b6Smaya   .algebraic_properties =
336510e230b6Smaya      0
336610e230b6Smaya},
336710e230b6Smaya{
336810e230b6Smaya   .name = "pack_uvec2_to_uint",
336910e230b6Smaya   .num_inputs = 1,
337010e230b6Smaya   .output_size = 1,
337110e230b6Smaya   .output_type = nir_type_uint32,
337210e230b6Smaya   .input_sizes = {
337310e230b6Smaya      2
337410e230b6Smaya   },
337510e230b6Smaya   .input_types = {
337610e230b6Smaya      nir_type_uint32
337710e230b6Smaya   },
337810e230b6Smaya   .is_conversion = false,
337910e230b6Smaya   .algebraic_properties =
338010e230b6Smaya      0
338110e230b6Smaya},
338210e230b6Smaya{
338310e230b6Smaya   .name = "pack_uvec4_to_uint",
338410e230b6Smaya   .num_inputs = 1,
338510e230b6Smaya   .output_size = 1,
338610e230b6Smaya   .output_type = nir_type_uint32,
338710e230b6Smaya   .input_sizes = {
338810e230b6Smaya      4
338910e230b6Smaya   },
339010e230b6Smaya   .input_types = {
339110e230b6Smaya      nir_type_uint32
339210e230b6Smaya   },
339310e230b6Smaya   .is_conversion = false,
339410e230b6Smaya   .algebraic_properties =
339510e230b6Smaya      0
339610e230b6Smaya},
339710e230b6Smaya{
339810e230b6Smaya   .name = "seq",
339910e230b6Smaya   .num_inputs = 2,
340010e230b6Smaya   .output_size = 0,
340110e230b6Smaya   .output_type = nir_type_float32,
340210e230b6Smaya   .input_sizes = {
340310e230b6Smaya      0, 0
340410e230b6Smaya   },
340510e230b6Smaya   .input_types = {
340610e230b6Smaya      nir_type_float32, nir_type_float32
340710e230b6Smaya   },
340810e230b6Smaya   .is_conversion = false,
340910e230b6Smaya   .algebraic_properties =
341010e230b6Smaya      NIR_OP_IS_COMMUTATIVE
341110e230b6Smaya},
341210e230b6Smaya{
341310e230b6Smaya   .name = "sge",
341410e230b6Smaya   .num_inputs = 2,
341510e230b6Smaya   .output_size = 0,
341610e230b6Smaya   .output_type = nir_type_float,
341710e230b6Smaya   .input_sizes = {
341810e230b6Smaya      0, 0
341910e230b6Smaya   },
342010e230b6Smaya   .input_types = {
342110e230b6Smaya      nir_type_float, nir_type_float
342210e230b6Smaya   },
342310e230b6Smaya   .is_conversion = false,
342410e230b6Smaya   .algebraic_properties =
342510e230b6Smaya      0
342610e230b6Smaya},
342710e230b6Smaya{
342810e230b6Smaya   .name = "slt",
342910e230b6Smaya   .num_inputs = 2,
343010e230b6Smaya   .output_size = 0,
343110e230b6Smaya   .output_type = nir_type_float32,
343210e230b6Smaya   .input_sizes = {
343310e230b6Smaya      0, 0
343410e230b6Smaya   },
343510e230b6Smaya   .input_types = {
343610e230b6Smaya      nir_type_float32, nir_type_float32
343710e230b6Smaya   },
343810e230b6Smaya   .is_conversion = false,
343910e230b6Smaya   .algebraic_properties =
344010e230b6Smaya      0
344110e230b6Smaya},
344210e230b6Smaya{
344310e230b6Smaya   .name = "sne",
344410e230b6Smaya   .num_inputs = 2,
344510e230b6Smaya   .output_size = 0,
344610e230b6Smaya   .output_type = nir_type_float32,
344710e230b6Smaya   .input_sizes = {
344810e230b6Smaya      0, 0
344910e230b6Smaya   },
345010e230b6Smaya   .input_types = {
345110e230b6Smaya      nir_type_float32, nir_type_float32
345210e230b6Smaya   },
345310e230b6Smaya   .is_conversion = false,
345410e230b6Smaya   .algebraic_properties =
345510e230b6Smaya      NIR_OP_IS_COMMUTATIVE
345610e230b6Smaya},
345710e230b6Smaya{
345810e230b6Smaya   .name = "u2f16",
345910e230b6Smaya   .num_inputs = 1,
346010e230b6Smaya   .output_size = 0,
346110e230b6Smaya   .output_type = nir_type_float16,
346210e230b6Smaya   .input_sizes = {
346310e230b6Smaya      0
346410e230b6Smaya   },
346510e230b6Smaya   .input_types = {
346610e230b6Smaya      nir_type_uint
346710e230b6Smaya   },
346810e230b6Smaya   .is_conversion = true,
346910e230b6Smaya   .algebraic_properties =
347010e230b6Smaya      0
347110e230b6Smaya},
347210e230b6Smaya{
347310e230b6Smaya   .name = "u2f32",
347410e230b6Smaya   .num_inputs = 1,
347510e230b6Smaya   .output_size = 0,
347610e230b6Smaya   .output_type = nir_type_float32,
347710e230b6Smaya   .input_sizes = {
347810e230b6Smaya      0
347910e230b6Smaya   },
348010e230b6Smaya   .input_types = {
348110e230b6Smaya      nir_type_uint
348210e230b6Smaya   },
348310e230b6Smaya   .is_conversion = true,
348410e230b6Smaya   .algebraic_properties =
348510e230b6Smaya      0
348610e230b6Smaya},
348710e230b6Smaya{
348810e230b6Smaya   .name = "u2f64",
348910e230b6Smaya   .num_inputs = 1,
349010e230b6Smaya   .output_size = 0,
349110e230b6Smaya   .output_type = nir_type_float64,
349210e230b6Smaya   .input_sizes = {
349310e230b6Smaya      0
349410e230b6Smaya   },
349510e230b6Smaya   .input_types = {
349610e230b6Smaya      nir_type_uint
349710e230b6Smaya   },
349810e230b6Smaya   .is_conversion = true,
349910e230b6Smaya   .algebraic_properties =
350010e230b6Smaya      0
350110e230b6Smaya},
350210e230b6Smaya{
350310e230b6Smaya   .name = "u2u1",
350410e230b6Smaya   .num_inputs = 1,
350510e230b6Smaya   .output_size = 0,
350610e230b6Smaya   .output_type = nir_type_uint1,
350710e230b6Smaya   .input_sizes = {
350810e230b6Smaya      0
350910e230b6Smaya   },
351010e230b6Smaya   .input_types = {
351110e230b6Smaya      nir_type_uint
351210e230b6Smaya   },
351310e230b6Smaya   .is_conversion = true,
351410e230b6Smaya   .algebraic_properties =
351510e230b6Smaya      0
351610e230b6Smaya},
351710e230b6Smaya{
351810e230b6Smaya   .name = "u2u16",
351910e230b6Smaya   .num_inputs = 1,
352010e230b6Smaya   .output_size = 0,
352110e230b6Smaya   .output_type = nir_type_uint16,
352210e230b6Smaya   .input_sizes = {
352310e230b6Smaya      0
352410e230b6Smaya   },
352510e230b6Smaya   .input_types = {
352610e230b6Smaya      nir_type_uint
352710e230b6Smaya   },
352810e230b6Smaya   .is_conversion = true,
352910e230b6Smaya   .algebraic_properties =
353010e230b6Smaya      0
353110e230b6Smaya},
353210e230b6Smaya{
353310e230b6Smaya   .name = "u2u32",
353410e230b6Smaya   .num_inputs = 1,
353510e230b6Smaya   .output_size = 0,
353610e230b6Smaya   .output_type = nir_type_uint32,
353710e230b6Smaya   .input_sizes = {
353810e230b6Smaya      0
353910e230b6Smaya   },
354010e230b6Smaya   .input_types = {
354110e230b6Smaya      nir_type_uint
354210e230b6Smaya   },
354310e230b6Smaya   .is_conversion = true,
354410e230b6Smaya   .algebraic_properties =
354510e230b6Smaya      0
354610e230b6Smaya},
354710e230b6Smaya{
354810e230b6Smaya   .name = "u2u64",
354910e230b6Smaya   .num_inputs = 1,
355010e230b6Smaya   .output_size = 0,
355110e230b6Smaya   .output_type = nir_type_uint64,
355210e230b6Smaya   .input_sizes = {
355310e230b6Smaya      0
355410e230b6Smaya   },
355510e230b6Smaya   .input_types = {
355610e230b6Smaya      nir_type_uint
355710e230b6Smaya   },
355810e230b6Smaya   .is_conversion = true,
355910e230b6Smaya   .algebraic_properties =
356010e230b6Smaya      0
356110e230b6Smaya},
356210e230b6Smaya{
356310e230b6Smaya   .name = "u2u8",
356410e230b6Smaya   .num_inputs = 1,
356510e230b6Smaya   .output_size = 0,
356610e230b6Smaya   .output_type = nir_type_uint8,
356710e230b6Smaya   .input_sizes = {
356810e230b6Smaya      0
356910e230b6Smaya   },
357010e230b6Smaya   .input_types = {
357110e230b6Smaya      nir_type_uint
357210e230b6Smaya   },
357310e230b6Smaya   .is_conversion = true,
357410e230b6Smaya   .algebraic_properties =
357510e230b6Smaya      0
357610e230b6Smaya},
357710e230b6Smaya{
357810e230b6Smaya   .name = "uadd_carry",
357910e230b6Smaya   .num_inputs = 2,
358010e230b6Smaya   .output_size = 0,
358110e230b6Smaya   .output_type = nir_type_uint,
358210e230b6Smaya   .input_sizes = {
358310e230b6Smaya      0, 0
358410e230b6Smaya   },
358510e230b6Smaya   .input_types = {
358610e230b6Smaya      nir_type_uint, nir_type_uint
358710e230b6Smaya   },
358810e230b6Smaya   .is_conversion = false,
358910e230b6Smaya   .algebraic_properties =
359010e230b6Smaya      NIR_OP_IS_COMMUTATIVE
359110e230b6Smaya},
359210e230b6Smaya{
359310e230b6Smaya   .name = "uadd_sat",
359410e230b6Smaya   .num_inputs = 2,
359510e230b6Smaya   .output_size = 0,
359610e230b6Smaya   .output_type = nir_type_uint,
359710e230b6Smaya   .input_sizes = {
359810e230b6Smaya      0, 0
359910e230b6Smaya   },
360010e230b6Smaya   .input_types = {
360110e230b6Smaya      nir_type_uint, nir_type_uint
360210e230b6Smaya   },
360310e230b6Smaya   .is_conversion = false,
360410e230b6Smaya   .algebraic_properties =
360510e230b6Smaya      NIR_OP_IS_COMMUTATIVE
360610e230b6Smaya},
360710e230b6Smaya{
360810e230b6Smaya   .name = "ubfe",
360910e230b6Smaya   .num_inputs = 3,
361010e230b6Smaya   .output_size = 0,
361110e230b6Smaya   .output_type = nir_type_uint32,
361210e230b6Smaya   .input_sizes = {
361310e230b6Smaya      0, 0, 0
361410e230b6Smaya   },
361510e230b6Smaya   .input_types = {
361610e230b6Smaya      nir_type_uint32, nir_type_int32, nir_type_int32
361710e230b6Smaya   },
361810e230b6Smaya   .is_conversion = false,
361910e230b6Smaya   .algebraic_properties =
362010e230b6Smaya      0
362110e230b6Smaya},
362210e230b6Smaya{
362310e230b6Smaya   .name = "ubitfield_extract",
362410e230b6Smaya   .num_inputs = 3,
362510e230b6Smaya   .output_size = 0,
362610e230b6Smaya   .output_type = nir_type_uint32,
362710e230b6Smaya   .input_sizes = {
362810e230b6Smaya      0, 0, 0
362910e230b6Smaya   },
363010e230b6Smaya   .input_types = {
363110e230b6Smaya      nir_type_uint32, nir_type_int32, nir_type_int32
363210e230b6Smaya   },
363310e230b6Smaya   .is_conversion = false,
363410e230b6Smaya   .algebraic_properties =
363510e230b6Smaya      0
363610e230b6Smaya},
363710e230b6Smaya{
363810e230b6Smaya   .name = "udiv",
363910e230b6Smaya   .num_inputs = 2,
364010e230b6Smaya   .output_size = 0,
364110e230b6Smaya   .output_type = nir_type_uint,
364210e230b6Smaya   .input_sizes = {
364310e230b6Smaya      0, 0
364410e230b6Smaya   },
364510e230b6Smaya   .input_types = {
364610e230b6Smaya      nir_type_uint, nir_type_uint
364710e230b6Smaya   },
364810e230b6Smaya   .is_conversion = false,
364910e230b6Smaya   .algebraic_properties =
365010e230b6Smaya      0
365110e230b6Smaya},
365210e230b6Smaya{
365310e230b6Smaya   .name = "ufind_msb",
365410e230b6Smaya   .num_inputs = 1,
365510e230b6Smaya   .output_size = 0,
365610e230b6Smaya   .output_type = nir_type_int32,
365710e230b6Smaya   .input_sizes = {
365810e230b6Smaya      0
365910e230b6Smaya   },
366010e230b6Smaya   .input_types = {
366110e230b6Smaya      nir_type_uint
366210e230b6Smaya   },
366310e230b6Smaya   .is_conversion = false,
366410e230b6Smaya   .algebraic_properties =
366510e230b6Smaya      0
366610e230b6Smaya},
366710e230b6Smaya{
366810e230b6Smaya   .name = "uge",
366910e230b6Smaya   .num_inputs = 2,
367010e230b6Smaya   .output_size = 0,
367110e230b6Smaya   .output_type = nir_type_bool1,
367210e230b6Smaya   .input_sizes = {
367310e230b6Smaya      0, 0
367410e230b6Smaya   },
367510e230b6Smaya   .input_types = {
367610e230b6Smaya      nir_type_uint, nir_type_uint
367710e230b6Smaya   },
367810e230b6Smaya   .is_conversion = false,
367910e230b6Smaya   .algebraic_properties =
368010e230b6Smaya      0
368110e230b6Smaya},
368210e230b6Smaya{
368310e230b6Smaya   .name = "uge32",
368410e230b6Smaya   .num_inputs = 2,
368510e230b6Smaya   .output_size = 0,
368610e230b6Smaya   .output_type = nir_type_bool32,
368710e230b6Smaya   .input_sizes = {
368810e230b6Smaya      0, 0
368910e230b6Smaya   },
369010e230b6Smaya   .input_types = {
369110e230b6Smaya      nir_type_uint, nir_type_uint
369210e230b6Smaya   },
369310e230b6Smaya   .is_conversion = false,
369410e230b6Smaya   .algebraic_properties =
369510e230b6Smaya      0
369610e230b6Smaya},
369710e230b6Smaya{
369810e230b6Smaya   .name = "uhadd",
369910e230b6Smaya   .num_inputs = 2,
370010e230b6Smaya   .output_size = 0,
370110e230b6Smaya   .output_type = nir_type_uint,
370210e230b6Smaya   .input_sizes = {
370310e230b6Smaya      0, 0
370410e230b6Smaya   },
370510e230b6Smaya   .input_types = {
370610e230b6Smaya      nir_type_uint, nir_type_uint
370710e230b6Smaya   },
370810e230b6Smaya   .is_conversion = false,
370910e230b6Smaya   .algebraic_properties =
371010e230b6Smaya      NIR_OP_IS_COMMUTATIVE
371110e230b6Smaya},
371210e230b6Smaya{
371310e230b6Smaya   .name = "ult",
371410e230b6Smaya   .num_inputs = 2,
371510e230b6Smaya   .output_size = 0,
371610e230b6Smaya   .output_type = nir_type_bool1,
371710e230b6Smaya   .input_sizes = {
371810e230b6Smaya      0, 0
371910e230b6Smaya   },
372010e230b6Smaya   .input_types = {
372110e230b6Smaya      nir_type_uint, nir_type_uint
372210e230b6Smaya   },
372310e230b6Smaya   .is_conversion = false,
372410e230b6Smaya   .algebraic_properties =
372510e230b6Smaya      0
372610e230b6Smaya},
372710e230b6Smaya{
372810e230b6Smaya   .name = "ult32",
372910e230b6Smaya   .num_inputs = 2,
373010e230b6Smaya   .output_size = 0,
373110e230b6Smaya   .output_type = nir_type_bool32,
373210e230b6Smaya   .input_sizes = {
373310e230b6Smaya      0, 0
373410e230b6Smaya   },
373510e230b6Smaya   .input_types = {
373610e230b6Smaya      nir_type_uint, nir_type_uint
373710e230b6Smaya   },
373810e230b6Smaya   .is_conversion = false,
373910e230b6Smaya   .algebraic_properties =
374010e230b6Smaya      0
374110e230b6Smaya},
374210e230b6Smaya{
374310e230b6Smaya   .name = "umax",
374410e230b6Smaya   .num_inputs = 2,
374510e230b6Smaya   .output_size = 0,
374610e230b6Smaya   .output_type = nir_type_uint,
374710e230b6Smaya   .input_sizes = {
374810e230b6Smaya      0, 0
374910e230b6Smaya   },
375010e230b6Smaya   .input_types = {
375110e230b6Smaya      nir_type_uint, nir_type_uint
375210e230b6Smaya   },
375310e230b6Smaya   .is_conversion = false,
375410e230b6Smaya   .algebraic_properties =
375510e230b6Smaya      NIR_OP_IS_COMMUTATIVE | NIR_OP_IS_ASSOCIATIVE
375610e230b6Smaya},
375710e230b6Smaya{
375810e230b6Smaya   .name = "umax3",
375910e230b6Smaya   .num_inputs = 3,
376010e230b6Smaya   .output_size = 0,
376110e230b6Smaya   .output_type = nir_type_uint,
376210e230b6Smaya   .input_sizes = {
376310e230b6Smaya      0, 0, 0
376410e230b6Smaya   },
376510e230b6Smaya   .input_types = {
376610e230b6Smaya      nir_type_uint, nir_type_uint, nir_type_uint
376710e230b6Smaya   },
376810e230b6Smaya   .is_conversion = false,
376910e230b6Smaya   .algebraic_properties =
377010e230b6Smaya      0
377110e230b6Smaya},
377210e230b6Smaya{
377310e230b6Smaya   .name = "umax_4x8",
377410e230b6Smaya   .num_inputs = 2,
377510e230b6Smaya   .output_size = 0,
377610e230b6Smaya   .output_type = nir_type_int32,
377710e230b6Smaya   .input_sizes = {
377810e230b6Smaya      0, 0
377910e230b6Smaya   },
378010e230b6Smaya   .input_types = {
378110e230b6Smaya      nir_type_int32, nir_type_int32
378210e230b6Smaya   },
378310e230b6Smaya   .is_conversion = false,
378410e230b6Smaya   .algebraic_properties =
378510e230b6Smaya      NIR_OP_IS_COMMUTATIVE | NIR_OP_IS_ASSOCIATIVE
378610e230b6Smaya},
378710e230b6Smaya{
378810e230b6Smaya   .name = "umed3",
378910e230b6Smaya   .num_inputs = 3,
379010e230b6Smaya   .output_size = 0,
379110e230b6Smaya   .output_type = nir_type_uint,
379210e230b6Smaya   .input_sizes = {
379310e230b6Smaya      0, 0, 0
379410e230b6Smaya   },
379510e230b6Smaya   .input_types = {
379610e230b6Smaya      nir_type_uint, nir_type_uint, nir_type_uint
379710e230b6Smaya   },
379810e230b6Smaya   .is_conversion = false,
379910e230b6Smaya   .algebraic_properties =
380010e230b6Smaya      0
380110e230b6Smaya},
380210e230b6Smaya{
380310e230b6Smaya   .name = "umin",
380410e230b6Smaya   .num_inputs = 2,
380510e230b6Smaya   .output_size = 0,
380610e230b6Smaya   .output_type = nir_type_uint,
380710e230b6Smaya   .input_sizes = {
380810e230b6Smaya      0, 0
380910e230b6Smaya   },
381010e230b6Smaya   .input_types = {
381110e230b6Smaya      nir_type_uint, nir_type_uint
381210e230b6Smaya   },
381310e230b6Smaya   .is_conversion = false,
381410e230b6Smaya   .algebraic_properties =
381510e230b6Smaya      NIR_OP_IS_COMMUTATIVE | NIR_OP_IS_ASSOCIATIVE
381610e230b6Smaya},
381710e230b6Smaya{
381810e230b6Smaya   .name = "umin3",
381910e230b6Smaya   .num_inputs = 3,
382010e230b6Smaya   .output_size = 0,
382110e230b6Smaya   .output_type = nir_type_uint,
382210e230b6Smaya   .input_sizes = {
382310e230b6Smaya      0, 0, 0
382410e230b6Smaya   },
382510e230b6Smaya   .input_types = {
382610e230b6Smaya      nir_type_uint, nir_type_uint, nir_type_uint
382710e230b6Smaya   },
382810e230b6Smaya   .is_conversion = false,
382910e230b6Smaya   .algebraic_properties =
383010e230b6Smaya      0
383110e230b6Smaya},
383210e230b6Smaya{
383310e230b6Smaya   .name = "umin_4x8",
383410e230b6Smaya   .num_inputs = 2,
383510e230b6Smaya   .output_size = 0,
383610e230b6Smaya   .output_type = nir_type_int32,
383710e230b6Smaya   .input_sizes = {
383810e230b6Smaya      0, 0
383910e230b6Smaya   },
384010e230b6Smaya   .input_types = {
384110e230b6Smaya      nir_type_int32, nir_type_int32
384210e230b6Smaya   },
384310e230b6Smaya   .is_conversion = false,
384410e230b6Smaya   .algebraic_properties =
384510e230b6Smaya      NIR_OP_IS_COMMUTATIVE | NIR_OP_IS_ASSOCIATIVE
384610e230b6Smaya},
384710e230b6Smaya{
384810e230b6Smaya   .name = "umod",
384910e230b6Smaya   .num_inputs = 2,
385010e230b6Smaya   .output_size = 0,
385110e230b6Smaya   .output_type = nir_type_uint,
385210e230b6Smaya   .input_sizes = {
385310e230b6Smaya      0, 0
385410e230b6Smaya   },
385510e230b6Smaya   .input_types = {
385610e230b6Smaya      nir_type_uint, nir_type_uint
385710e230b6Smaya   },
385810e230b6Smaya   .is_conversion = false,
385910e230b6Smaya   .algebraic_properties =
386010e230b6Smaya      0
386110e230b6Smaya},
386210e230b6Smaya{
386310e230b6Smaya   .name = "umul_2x32_64",
386410e230b6Smaya   .num_inputs = 2,
386510e230b6Smaya   .output_size = 0,
386610e230b6Smaya   .output_type = nir_type_uint64,
386710e230b6Smaya   .input_sizes = {
386810e230b6Smaya      0, 0
386910e230b6Smaya   },
387010e230b6Smaya   .input_types = {
387110e230b6Smaya      nir_type_uint32, nir_type_uint32
387210e230b6Smaya   },
387310e230b6Smaya   .is_conversion = false,
387410e230b6Smaya   .algebraic_properties =
387510e230b6Smaya      NIR_OP_IS_COMMUTATIVE
387610e230b6Smaya},
387710e230b6Smaya{
387810e230b6Smaya   .name = "umul_high",
387910e230b6Smaya   .num_inputs = 2,
388010e230b6Smaya   .output_size = 0,
388110e230b6Smaya   .output_type = nir_type_uint,
388210e230b6Smaya   .input_sizes = {
388310e230b6Smaya      0, 0
388410e230b6Smaya   },
388510e230b6Smaya   .input_types = {
388610e230b6Smaya      nir_type_uint, nir_type_uint
388710e230b6Smaya   },
388810e230b6Smaya   .is_conversion = false,
388910e230b6Smaya   .algebraic_properties =
389010e230b6Smaya      NIR_OP_IS_COMMUTATIVE
389110e230b6Smaya},
389210e230b6Smaya{
389310e230b6Smaya   .name = "umul_unorm_4x8",
389410e230b6Smaya   .num_inputs = 2,
389510e230b6Smaya   .output_size = 0,
389610e230b6Smaya   .output_type = nir_type_int32,
389710e230b6Smaya   .input_sizes = {
389810e230b6Smaya      0, 0
389910e230b6Smaya   },
390010e230b6Smaya   .input_types = {
390110e230b6Smaya      nir_type_int32, nir_type_int32
390210e230b6Smaya   },
390310e230b6Smaya   .is_conversion = false,
390410e230b6Smaya   .algebraic_properties =
390510e230b6Smaya      NIR_OP_IS_COMMUTATIVE | NIR_OP_IS_ASSOCIATIVE
390610e230b6Smaya},
390710e230b6Smaya{
390810e230b6Smaya   .name = "unpack_32_2x16",
390910e230b6Smaya   .num_inputs = 1,
391010e230b6Smaya   .output_size = 2,
391110e230b6Smaya   .output_type = nir_type_uint16,
391210e230b6Smaya   .input_sizes = {
391310e230b6Smaya      1
391410e230b6Smaya   },
391510e230b6Smaya   .input_types = {
391610e230b6Smaya      nir_type_uint32
391710e230b6Smaya   },
391810e230b6Smaya   .is_conversion = false,
391910e230b6Smaya   .algebraic_properties =
392010e230b6Smaya      0
392110e230b6Smaya},
392210e230b6Smaya{
392310e230b6Smaya   .name = "unpack_32_2x16_split_x",
392410e230b6Smaya   .num_inputs = 1,
392510e230b6Smaya   .output_size = 0,
392610e230b6Smaya   .output_type = nir_type_uint16,
392710e230b6Smaya   .input_sizes = {
392810e230b6Smaya      0
392910e230b6Smaya   },
393010e230b6Smaya   .input_types = {
393110e230b6Smaya      nir_type_uint32
393210e230b6Smaya   },
393310e230b6Smaya   .is_conversion = false,
393410e230b6Smaya   .algebraic_properties =
393510e230b6Smaya      0
393610e230b6Smaya},
393710e230b6Smaya{
393810e230b6Smaya   .name = "unpack_32_2x16_split_y",
393910e230b6Smaya   .num_inputs = 1,
394010e230b6Smaya   .output_size = 0,
394110e230b6Smaya   .output_type = nir_type_uint16,
394210e230b6Smaya   .input_sizes = {
394310e230b6Smaya      0
394410e230b6Smaya   },
394510e230b6Smaya   .input_types = {
394610e230b6Smaya      nir_type_uint32
394710e230b6Smaya   },
394810e230b6Smaya   .is_conversion = false,
394910e230b6Smaya   .algebraic_properties =
395010e230b6Smaya      0
395110e230b6Smaya},
395210e230b6Smaya{
395310e230b6Smaya   .name = "unpack_64_2x32",
395410e230b6Smaya   .num_inputs = 1,
395510e230b6Smaya   .output_size = 2,
395610e230b6Smaya   .output_type = nir_type_uint32,
395710e230b6Smaya   .input_sizes = {
395810e230b6Smaya      1
395910e230b6Smaya   },
396010e230b6Smaya   .input_types = {
396110e230b6Smaya      nir_type_uint64
396210e230b6Smaya   },
396310e230b6Smaya   .is_conversion = false,
396410e230b6Smaya   .algebraic_properties =
396510e230b6Smaya      0
396610e230b6Smaya},
396710e230b6Smaya{
396810e230b6Smaya   .name = "unpack_64_2x32_split_x",
396910e230b6Smaya   .num_inputs = 1,
397010e230b6Smaya   .output_size = 0,
397110e230b6Smaya   .output_type = nir_type_uint32,
397210e230b6Smaya   .input_sizes = {
397310e230b6Smaya      0
397410e230b6Smaya   },
397510e230b6Smaya   .input_types = {
397610e230b6Smaya      nir_type_uint64
397710e230b6Smaya   },
397810e230b6Smaya   .is_conversion = false,
397910e230b6Smaya   .algebraic_properties =
398010e230b6Smaya      0
398110e230b6Smaya},
398210e230b6Smaya{
398310e230b6Smaya   .name = "unpack_64_2x32_split_y",
398410e230b6Smaya   .num_inputs = 1,
398510e230b6Smaya   .output_size = 0,
398610e230b6Smaya   .output_type = nir_type_uint32,
398710e230b6Smaya   .input_sizes = {
398810e230b6Smaya      0
398910e230b6Smaya   },
399010e230b6Smaya   .input_types = {
399110e230b6Smaya      nir_type_uint64
399210e230b6Smaya   },
399310e230b6Smaya   .is_conversion = false,
399410e230b6Smaya   .algebraic_properties =
399510e230b6Smaya      0
399610e230b6Smaya},
399710e230b6Smaya{
399810e230b6Smaya   .name = "unpack_64_4x16",
399910e230b6Smaya   .num_inputs = 1,
400010e230b6Smaya   .output_size = 4,
400110e230b6Smaya   .output_type = nir_type_uint16,
400210e230b6Smaya   .input_sizes = {
400310e230b6Smaya      1
400410e230b6Smaya   },
400510e230b6Smaya   .input_types = {
400610e230b6Smaya      nir_type_uint64
400710e230b6Smaya   },
400810e230b6Smaya   .is_conversion = false,
400910e230b6Smaya   .algebraic_properties =
401010e230b6Smaya      0
401110e230b6Smaya},
401210e230b6Smaya{
401310e230b6Smaya   .name = "unpack_half_2x16",
401410e230b6Smaya   .num_inputs = 1,
401510e230b6Smaya   .output_size = 2,
401610e230b6Smaya   .output_type = nir_type_float32,
401710e230b6Smaya   .input_sizes = {
401810e230b6Smaya      1
401910e230b6Smaya   },
402010e230b6Smaya   .input_types = {
402110e230b6Smaya      nir_type_uint32
402210e230b6Smaya   },
402310e230b6Smaya   .is_conversion = false,
402410e230b6Smaya   .algebraic_properties =
402510e230b6Smaya      0
402610e230b6Smaya},
402710e230b6Smaya{
402810e230b6Smaya   .name = "unpack_half_2x16_split_x",
402910e230b6Smaya   .num_inputs = 1,
403010e230b6Smaya   .output_size = 0,
403110e230b6Smaya   .output_type = nir_type_float32,
403210e230b6Smaya   .input_sizes = {
403310e230b6Smaya      0
403410e230b6Smaya   },
403510e230b6Smaya   .input_types = {
403610e230b6Smaya      nir_type_uint32
403710e230b6Smaya   },
403810e230b6Smaya   .is_conversion = false,
403910e230b6Smaya   .algebraic_properties =
404010e230b6Smaya      0
404110e230b6Smaya},
404210e230b6Smaya{
404310e230b6Smaya   .name = "unpack_half_2x16_split_y",
404410e230b6Smaya   .num_inputs = 1,
404510e230b6Smaya   .output_size = 0,
404610e230b6Smaya   .output_type = nir_type_float32,
404710e230b6Smaya   .input_sizes = {
404810e230b6Smaya      0
404910e230b6Smaya   },
405010e230b6Smaya   .input_types = {
405110e230b6Smaya      nir_type_uint32
405210e230b6Smaya   },
405310e230b6Smaya   .is_conversion = false,
405410e230b6Smaya   .algebraic_properties =
405510e230b6Smaya      0
405610e230b6Smaya},
405710e230b6Smaya{
405810e230b6Smaya   .name = "unpack_snorm_2x16",
405910e230b6Smaya   .num_inputs = 1,
406010e230b6Smaya   .output_size = 2,
406110e230b6Smaya   .output_type = nir_type_float32,
406210e230b6Smaya   .input_sizes = {
406310e230b6Smaya      1
406410e230b6Smaya   },
406510e230b6Smaya   .input_types = {
406610e230b6Smaya      nir_type_uint32
406710e230b6Smaya   },
406810e230b6Smaya   .is_conversion = false,
406910e230b6Smaya   .algebraic_properties =
407010e230b6Smaya      0
407110e230b6Smaya},
407210e230b6Smaya{
407310e230b6Smaya   .name = "unpack_snorm_4x8",
407410e230b6Smaya   .num_inputs = 1,
407510e230b6Smaya   .output_size = 4,
407610e230b6Smaya   .output_type = nir_type_float32,
407710e230b6Smaya   .input_sizes = {
407810e230b6Smaya      1
407910e230b6Smaya   },
408010e230b6Smaya   .input_types = {
408110e230b6Smaya      nir_type_uint32
408210e230b6Smaya   },
408310e230b6Smaya   .is_conversion = false,
408410e230b6Smaya   .algebraic_properties =
408510e230b6Smaya      0
408610e230b6Smaya},
408710e230b6Smaya{
408810e230b6Smaya   .name = "unpack_unorm_2x16",
408910e230b6Smaya   .num_inputs = 1,
409010e230b6Smaya   .output_size = 2,
409110e230b6Smaya   .output_type = nir_type_float32,
409210e230b6Smaya   .input_sizes = {
409310e230b6Smaya      1
409410e230b6Smaya   },
409510e230b6Smaya   .input_types = {
409610e230b6Smaya      nir_type_uint32
409710e230b6Smaya   },
409810e230b6Smaya   .is_conversion = false,
409910e230b6Smaya   .algebraic_properties =
410010e230b6Smaya      0
410110e230b6Smaya},
410210e230b6Smaya{
410310e230b6Smaya   .name = "unpack_unorm_4x8",
410410e230b6Smaya   .num_inputs = 1,
410510e230b6Smaya   .output_size = 4,
410610e230b6Smaya   .output_type = nir_type_float32,
410710e230b6Smaya   .input_sizes = {
410810e230b6Smaya      1
410910e230b6Smaya   },
411010e230b6Smaya   .input_types = {
411110e230b6Smaya      nir_type_uint32
411210e230b6Smaya   },
411310e230b6Smaya   .is_conversion = false,
411410e230b6Smaya   .algebraic_properties =
411510e230b6Smaya      0
411610e230b6Smaya},
411710e230b6Smaya{
411810e230b6Smaya   .name = "urhadd",
411910e230b6Smaya   .num_inputs = 2,
412010e230b6Smaya   .output_size = 0,
412110e230b6Smaya   .output_type = nir_type_uint,
412210e230b6Smaya   .input_sizes = {
412310e230b6Smaya      0, 0
412410e230b6Smaya   },
412510e230b6Smaya   .input_types = {
412610e230b6Smaya      nir_type_uint, nir_type_uint
412710e230b6Smaya   },
412810e230b6Smaya   .is_conversion = false,
412910e230b6Smaya   .algebraic_properties =
413010e230b6Smaya      NIR_OP_IS_COMMUTATIVE
413110e230b6Smaya},
413210e230b6Smaya{
413310e230b6Smaya   .name = "usadd_4x8",
413410e230b6Smaya   .num_inputs = 2,
413510e230b6Smaya   .output_size = 0,
413610e230b6Smaya   .output_type = nir_type_int32,
413710e230b6Smaya   .input_sizes = {
413810e230b6Smaya      0, 0
413910e230b6Smaya   },
414010e230b6Smaya   .input_types = {
414110e230b6Smaya      nir_type_int32, nir_type_int32
414210e230b6Smaya   },
414310e230b6Smaya   .is_conversion = false,
414410e230b6Smaya   .algebraic_properties =
414510e230b6Smaya      NIR_OP_IS_COMMUTATIVE | NIR_OP_IS_ASSOCIATIVE
414610e230b6Smaya},
414710e230b6Smaya{
414810e230b6Smaya   .name = "ushr",
414910e230b6Smaya   .num_inputs = 2,
415010e230b6Smaya   .output_size = 0,
415110e230b6Smaya   .output_type = nir_type_uint,
415210e230b6Smaya   .input_sizes = {
415310e230b6Smaya      0, 0
415410e230b6Smaya   },
415510e230b6Smaya   .input_types = {
415610e230b6Smaya      nir_type_uint, nir_type_uint32
415710e230b6Smaya   },
415810e230b6Smaya   .is_conversion = false,
415910e230b6Smaya   .algebraic_properties =
416010e230b6Smaya      0
416110e230b6Smaya},
416210e230b6Smaya{
416310e230b6Smaya   .name = "ussub_4x8",
416410e230b6Smaya   .num_inputs = 2,
416510e230b6Smaya   .output_size = 0,
416610e230b6Smaya   .output_type = nir_type_int32,
416710e230b6Smaya   .input_sizes = {
416810e230b6Smaya      0, 0
416910e230b6Smaya   },
417010e230b6Smaya   .input_types = {
417110e230b6Smaya      nir_type_int32, nir_type_int32
417210e230b6Smaya   },
417310e230b6Smaya   .is_conversion = false,
417410e230b6Smaya   .algebraic_properties =
417510e230b6Smaya      0
417610e230b6Smaya},
417710e230b6Smaya{
417810e230b6Smaya   .name = "usub_borrow",
417910e230b6Smaya   .num_inputs = 2,
418010e230b6Smaya   .output_size = 0,
418110e230b6Smaya   .output_type = nir_type_uint,
418210e230b6Smaya   .input_sizes = {
418310e230b6Smaya      0, 0
418410e230b6Smaya   },
418510e230b6Smaya   .input_types = {
418610e230b6Smaya      nir_type_uint, nir_type_uint
418710e230b6Smaya   },
418810e230b6Smaya   .is_conversion = false,
418910e230b6Smaya   .algebraic_properties =
419010e230b6Smaya      0
419110e230b6Smaya},
419210e230b6Smaya{
419310e230b6Smaya   .name = "usub_sat",
419410e230b6Smaya   .num_inputs = 2,
419510e230b6Smaya   .output_size = 0,
419610e230b6Smaya   .output_type = nir_type_uint,
419710e230b6Smaya   .input_sizes = {
419810e230b6Smaya      0, 0
419910e230b6Smaya   },
420010e230b6Smaya   .input_types = {
420110e230b6Smaya      nir_type_uint, nir_type_uint
420210e230b6Smaya   },
420310e230b6Smaya   .is_conversion = false,
420410e230b6Smaya   .algebraic_properties =
420510e230b6Smaya      0
420610e230b6Smaya},
420710e230b6Smaya{
420810e230b6Smaya   .name = "vec2",
420910e230b6Smaya   .num_inputs = 2,
421010e230b6Smaya   .output_size = 2,
421110e230b6Smaya   .output_type = nir_type_uint,
421210e230b6Smaya   .input_sizes = {
421310e230b6Smaya      1, 1
421410e230b6Smaya   },
421510e230b6Smaya   .input_types = {
421610e230b6Smaya      nir_type_uint, nir_type_uint
421710e230b6Smaya   },
421810e230b6Smaya   .is_conversion = false,
421910e230b6Smaya   .algebraic_properties =
422010e230b6Smaya      0
422110e230b6Smaya},
422210e230b6Smaya{
422310e230b6Smaya   .name = "vec3",
422410e230b6Smaya   .num_inputs = 3,
422510e230b6Smaya   .output_size = 3,
422610e230b6Smaya   .output_type = nir_type_uint,
422710e230b6Smaya   .input_sizes = {
422810e230b6Smaya      1, 1, 1
422910e230b6Smaya   },
423010e230b6Smaya   .input_types = {
423110e230b6Smaya      nir_type_uint, nir_type_uint, nir_type_uint
423210e230b6Smaya   },
423310e230b6Smaya   .is_conversion = false,
423410e230b6Smaya   .algebraic_properties =
423510e230b6Smaya      0
423610e230b6Smaya},
423710e230b6Smaya{
423810e230b6Smaya   .name = "vec4",
423910e230b6Smaya   .num_inputs = 4,
424010e230b6Smaya   .output_size = 4,
424110e230b6Smaya   .output_type = nir_type_uint,
424210e230b6Smaya   .input_sizes = {
424310e230b6Smaya      1, 1, 1, 1
424410e230b6Smaya   },
424510e230b6Smaya   .input_types = {
424610e230b6Smaya      nir_type_uint, nir_type_uint, nir_type_uint, nir_type_uint
424710e230b6Smaya   },
424810e230b6Smaya   .is_conversion = false,
424910e230b6Smaya   .algebraic_properties =
425010e230b6Smaya      0
425110e230b6Smaya},
425210e230b6Smaya};
425310e230b6Smaya
4254