| |
| #include "nir.h" |
| |
| nir_op |
| nir_type_conversion_op(nir_alu_type src, nir_alu_type dst, nir_rounding_mode rnd) |
| { |
| nir_alu_type src_base = (nir_alu_type) nir_alu_type_get_base_type(src); |
| nir_alu_type dst_base = (nir_alu_type) nir_alu_type_get_base_type(dst); |
| unsigned src_bit_size = nir_alu_type_get_type_size(src); |
| unsigned dst_bit_size = nir_alu_type_get_type_size(dst); |
| |
| if (src == dst && src_base == nir_type_float) { |
| return nir_op_mov; |
| } else if (src == dst && src_base == nir_type_bool) { |
| return nir_op_mov; |
| } else if ((src_base == nir_type_int || src_base == nir_type_uint) && |
| (dst_base == nir_type_int || dst_base == nir_type_uint) && |
| src_bit_size == dst_bit_size) { |
| /* Integer <-> integer conversions with the same bit-size on both |
| * ends are just no-op moves. |
| */ |
| return nir_op_mov; |
| } |
| |
| switch (src_base) { |
| case nir_type_int: |
| switch (dst_base) { |
| case nir_type_int: |
| case nir_type_uint: |
| |
| switch (dst_bit_size) { |
| case 1: |
| assert(rnd == nir_rounding_mode_undef); |
| return nir_op_i2i1; |
| case 8: |
| assert(rnd == nir_rounding_mode_undef); |
| return nir_op_i2i8; |
| case 16: |
| assert(rnd == nir_rounding_mode_undef); |
| return nir_op_i2i16; |
| case 32: |
| assert(rnd == nir_rounding_mode_undef); |
| return nir_op_i2i32; |
| case 64: |
| assert(rnd == nir_rounding_mode_undef); |
| return nir_op_i2i64; |
| default: |
| unreachable("Invalid nir alu bit size"); |
| } |
| case nir_type_float: |
| switch (dst_bit_size) { |
| case 16: |
| assert(rnd == nir_rounding_mode_undef); |
| return nir_op_i2f16; |
| case 32: |
| assert(rnd == nir_rounding_mode_undef); |
| return nir_op_i2f32; |
| case 64: |
| assert(rnd == nir_rounding_mode_undef); |
| return nir_op_i2f64; |
| default: |
| unreachable("Invalid nir alu bit size"); |
| } |
| case nir_type_bool: |
| switch (dst_bit_size) { |
| case 1: |
| assert(rnd == nir_rounding_mode_undef); |
| return nir_op_i2b1; |
| case 8: |
| assert(rnd == nir_rounding_mode_undef); |
| return nir_op_i2b8; |
| case 16: |
| assert(rnd == nir_rounding_mode_undef); |
| return nir_op_i2b16; |
| case 32: |
| assert(rnd == nir_rounding_mode_undef); |
| return nir_op_i2b32; |
| default: |
| unreachable("Invalid nir alu bit size"); |
| } |
| default: |
| unreachable("Invalid nir alu base type"); |
| } |
| case nir_type_uint: |
| switch (dst_base) { |
| case nir_type_int: |
| case nir_type_uint: |
| |
| switch (dst_bit_size) { |
| case 1: |
| assert(rnd == nir_rounding_mode_undef); |
| return nir_op_u2u1; |
| case 8: |
| assert(rnd == nir_rounding_mode_undef); |
| return nir_op_u2u8; |
| case 16: |
| assert(rnd == nir_rounding_mode_undef); |
| return nir_op_u2u16; |
| case 32: |
| assert(rnd == nir_rounding_mode_undef); |
| return nir_op_u2u32; |
| case 64: |
| assert(rnd == nir_rounding_mode_undef); |
| return nir_op_u2u64; |
| default: |
| unreachable("Invalid nir alu bit size"); |
| } |
| case nir_type_float: |
| switch (dst_bit_size) { |
| case 16: |
| assert(rnd == nir_rounding_mode_undef); |
| return nir_op_u2f16; |
| case 32: |
| assert(rnd == nir_rounding_mode_undef); |
| return nir_op_u2f32; |
| case 64: |
| assert(rnd == nir_rounding_mode_undef); |
| return nir_op_u2f64; |
| default: |
| unreachable("Invalid nir alu bit size"); |
| } |
| case nir_type_bool: |
| |
| switch (dst_bit_size) { |
| case 1: |
| assert(rnd == nir_rounding_mode_undef); |
| return nir_op_i2b1; |
| case 8: |
| assert(rnd == nir_rounding_mode_undef); |
| return nir_op_i2b8; |
| case 16: |
| assert(rnd == nir_rounding_mode_undef); |
| return nir_op_i2b16; |
| case 32: |
| assert(rnd == nir_rounding_mode_undef); |
| return nir_op_i2b32; |
| default: |
| unreachable("Invalid nir alu bit size"); |
| } |
| default: |
| unreachable("Invalid nir alu base type"); |
| } |
| case nir_type_float: |
| switch (dst_base) { |
| case nir_type_int: |
| switch (dst_bit_size) { |
| case 1: |
| assert(rnd == nir_rounding_mode_undef); |
| return nir_op_f2i1; |
| case 8: |
| assert(rnd == nir_rounding_mode_undef); |
| return nir_op_f2i8; |
| case 16: |
| assert(rnd == nir_rounding_mode_undef); |
| return nir_op_f2i16; |
| case 32: |
| assert(rnd == nir_rounding_mode_undef); |
| return nir_op_f2i32; |
| case 64: |
| assert(rnd == nir_rounding_mode_undef); |
| return nir_op_f2i64; |
| default: |
| unreachable("Invalid nir alu bit size"); |
| } |
| case nir_type_uint: |
| switch (dst_bit_size) { |
| case 1: |
| assert(rnd == nir_rounding_mode_undef); |
| return nir_op_f2u1; |
| case 8: |
| assert(rnd == nir_rounding_mode_undef); |
| return nir_op_f2u8; |
| case 16: |
| assert(rnd == nir_rounding_mode_undef); |
| return nir_op_f2u16; |
| case 32: |
| assert(rnd == nir_rounding_mode_undef); |
| return nir_op_f2u32; |
| case 64: |
| assert(rnd == nir_rounding_mode_undef); |
| return nir_op_f2u64; |
| default: |
| unreachable("Invalid nir alu bit size"); |
| } |
| case nir_type_float: |
| switch (dst_bit_size) { |
| case 16: |
| switch(rnd) { |
| case nir_rounding_mode_rtne: |
| return nir_op_f2f16_rtne; |
| case nir_rounding_mode_rtz: |
| return nir_op_f2f16_rtz; |
| case nir_rounding_mode_undef: |
| return nir_op_f2f16; |
| default: |
| unreachable("Invalid 16-bit nir rounding mode"); |
| } |
| case 32: |
| assert(rnd == nir_rounding_mode_undef); |
| return nir_op_f2f32; |
| case 64: |
| assert(rnd == nir_rounding_mode_undef); |
| return nir_op_f2f64; |
| default: |
| unreachable("Invalid nir alu bit size"); |
| } |
| case nir_type_bool: |
| switch (dst_bit_size) { |
| case 1: |
| assert(rnd == nir_rounding_mode_undef); |
| return nir_op_f2b1; |
| case 8: |
| assert(rnd == nir_rounding_mode_undef); |
| return nir_op_f2b8; |
| case 16: |
| assert(rnd == nir_rounding_mode_undef); |
| return nir_op_f2b16; |
| case 32: |
| assert(rnd == nir_rounding_mode_undef); |
| return nir_op_f2b32; |
| default: |
| unreachable("Invalid nir alu bit size"); |
| } |
| default: |
| unreachable("Invalid nir alu base type"); |
| } |
| case nir_type_bool: |
| switch (dst_base) { |
| case nir_type_int: |
| case nir_type_uint: |
| |
| switch (dst_bit_size) { |
| case 1: |
| assert(rnd == nir_rounding_mode_undef); |
| return nir_op_b2i1; |
| case 8: |
| assert(rnd == nir_rounding_mode_undef); |
| return nir_op_b2i8; |
| case 16: |
| assert(rnd == nir_rounding_mode_undef); |
| return nir_op_b2i16; |
| case 32: |
| assert(rnd == nir_rounding_mode_undef); |
| return nir_op_b2i32; |
| case 64: |
| assert(rnd == nir_rounding_mode_undef); |
| return nir_op_b2i64; |
| default: |
| unreachable("Invalid nir alu bit size"); |
| } |
| case nir_type_float: |
| switch (dst_bit_size) { |
| case 16: |
| assert(rnd == nir_rounding_mode_undef); |
| return nir_op_b2f16; |
| case 32: |
| assert(rnd == nir_rounding_mode_undef); |
| return nir_op_b2f32; |
| case 64: |
| assert(rnd == nir_rounding_mode_undef); |
| return nir_op_b2f64; |
| default: |
| unreachable("Invalid nir alu bit size"); |
| } |
| case nir_type_bool: |
| |
| switch (dst_bit_size) { |
| case 1: |
| assert(rnd == nir_rounding_mode_undef); |
| return nir_op_b2i1; |
| case 8: |
| assert(rnd == nir_rounding_mode_undef); |
| return nir_op_b2i8; |
| case 16: |
| assert(rnd == nir_rounding_mode_undef); |
| return nir_op_b2i16; |
| case 32: |
| assert(rnd == nir_rounding_mode_undef); |
| return nir_op_b2i32; |
| case 64: |
| assert(rnd == nir_rounding_mode_undef); |
| return nir_op_b2i64; |
| default: |
| unreachable("Invalid nir alu bit size"); |
| } |
| default: |
| unreachable("Invalid nir alu base type"); |
| } |
| default: |
| unreachable("Invalid nir alu base type"); |
| } |
| } |
| |
| const nir_op_info nir_op_infos[nir_num_opcodes] = { |
| { |
| .name = "amul", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_int, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_int, nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE | NIR_OP_IS_ASSOCIATIVE |
| }, |
| { |
| .name = "b16all_fequal16", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool16, |
| .input_sizes = { |
| 16, 16 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "b16all_fequal2", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool16, |
| .input_sizes = { |
| 2, 2 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "b16all_fequal3", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool16, |
| .input_sizes = { |
| 3, 3 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "b16all_fequal4", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool16, |
| .input_sizes = { |
| 4, 4 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "b16all_fequal8", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool16, |
| .input_sizes = { |
| 8, 8 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "b16all_iequal16", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool16, |
| .input_sizes = { |
| 16, 16 |
| }, |
| .input_types = { |
| nir_type_int, nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "b16all_iequal2", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool16, |
| .input_sizes = { |
| 2, 2 |
| }, |
| .input_types = { |
| nir_type_int, nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "b16all_iequal3", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool16, |
| .input_sizes = { |
| 3, 3 |
| }, |
| .input_types = { |
| nir_type_int, nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "b16all_iequal4", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool16, |
| .input_sizes = { |
| 4, 4 |
| }, |
| .input_types = { |
| nir_type_int, nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "b16all_iequal8", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool16, |
| .input_sizes = { |
| 8, 8 |
| }, |
| .input_types = { |
| nir_type_int, nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "b16any_fnequal16", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool16, |
| .input_sizes = { |
| 16, 16 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "b16any_fnequal2", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool16, |
| .input_sizes = { |
| 2, 2 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "b16any_fnequal3", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool16, |
| .input_sizes = { |
| 3, 3 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "b16any_fnequal4", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool16, |
| .input_sizes = { |
| 4, 4 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "b16any_fnequal8", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool16, |
| .input_sizes = { |
| 8, 8 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "b16any_inequal16", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool16, |
| .input_sizes = { |
| 16, 16 |
| }, |
| .input_types = { |
| nir_type_int, nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "b16any_inequal2", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool16, |
| .input_sizes = { |
| 2, 2 |
| }, |
| .input_types = { |
| nir_type_int, nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "b16any_inequal3", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool16, |
| .input_sizes = { |
| 3, 3 |
| }, |
| .input_types = { |
| nir_type_int, nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "b16any_inequal4", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool16, |
| .input_sizes = { |
| 4, 4 |
| }, |
| .input_types = { |
| nir_type_int, nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "b16any_inequal8", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool16, |
| .input_sizes = { |
| 8, 8 |
| }, |
| .input_types = { |
| nir_type_int, nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "b16csel", |
| .num_inputs = 3, |
| .output_size = 0, |
| .output_type = nir_type_uint, |
| .input_sizes = { |
| 0, 0, 0 |
| }, |
| .input_types = { |
| nir_type_bool16, nir_type_uint, nir_type_uint |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "b2b1", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_bool1, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_bool |
| }, |
| .is_conversion = true, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "b2b16", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_bool16, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_bool |
| }, |
| .is_conversion = true, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "b2b32", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_bool32, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_bool |
| }, |
| .is_conversion = true, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "b2b8", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_bool8, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_bool |
| }, |
| .is_conversion = true, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "b2f16", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_float16, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_bool |
| }, |
| .is_conversion = true, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "b2f32", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_float32, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_bool |
| }, |
| .is_conversion = true, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "b2f64", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_float64, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_bool |
| }, |
| .is_conversion = true, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "b2i1", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_int1, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_bool |
| }, |
| .is_conversion = true, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "b2i16", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_int16, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_bool |
| }, |
| .is_conversion = true, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "b2i32", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_int32, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_bool |
| }, |
| .is_conversion = true, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "b2i64", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_int64, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_bool |
| }, |
| .is_conversion = true, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "b2i8", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_int8, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_bool |
| }, |
| .is_conversion = true, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "b32all_fequal16", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool32, |
| .input_sizes = { |
| 16, 16 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "b32all_fequal2", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool32, |
| .input_sizes = { |
| 2, 2 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "b32all_fequal3", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool32, |
| .input_sizes = { |
| 3, 3 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "b32all_fequal4", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool32, |
| .input_sizes = { |
| 4, 4 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "b32all_fequal8", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool32, |
| .input_sizes = { |
| 8, 8 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "b32all_iequal16", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool32, |
| .input_sizes = { |
| 16, 16 |
| }, |
| .input_types = { |
| nir_type_int, nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "b32all_iequal2", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool32, |
| .input_sizes = { |
| 2, 2 |
| }, |
| .input_types = { |
| nir_type_int, nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "b32all_iequal3", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool32, |
| .input_sizes = { |
| 3, 3 |
| }, |
| .input_types = { |
| nir_type_int, nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "b32all_iequal4", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool32, |
| .input_sizes = { |
| 4, 4 |
| }, |
| .input_types = { |
| nir_type_int, nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "b32all_iequal8", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool32, |
| .input_sizes = { |
| 8, 8 |
| }, |
| .input_types = { |
| nir_type_int, nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "b32any_fnequal16", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool32, |
| .input_sizes = { |
| 16, 16 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "b32any_fnequal2", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool32, |
| .input_sizes = { |
| 2, 2 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "b32any_fnequal3", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool32, |
| .input_sizes = { |
| 3, 3 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "b32any_fnequal4", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool32, |
| .input_sizes = { |
| 4, 4 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "b32any_fnequal8", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool32, |
| .input_sizes = { |
| 8, 8 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "b32any_inequal16", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool32, |
| .input_sizes = { |
| 16, 16 |
| }, |
| .input_types = { |
| nir_type_int, nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "b32any_inequal2", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool32, |
| .input_sizes = { |
| 2, 2 |
| }, |
| .input_types = { |
| nir_type_int, nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "b32any_inequal3", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool32, |
| .input_sizes = { |
| 3, 3 |
| }, |
| .input_types = { |
| nir_type_int, nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "b32any_inequal4", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool32, |
| .input_sizes = { |
| 4, 4 |
| }, |
| .input_types = { |
| nir_type_int, nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "b32any_inequal8", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool32, |
| .input_sizes = { |
| 8, 8 |
| }, |
| .input_types = { |
| nir_type_int, nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "b32csel", |
| .num_inputs = 3, |
| .output_size = 0, |
| .output_type = nir_type_uint, |
| .input_sizes = { |
| 0, 0, 0 |
| }, |
| .input_types = { |
| nir_type_bool32, nir_type_uint, nir_type_uint |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "b8all_fequal16", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool8, |
| .input_sizes = { |
| 16, 16 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "b8all_fequal2", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool8, |
| .input_sizes = { |
| 2, 2 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "b8all_fequal3", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool8, |
| .input_sizes = { |
| 3, 3 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "b8all_fequal4", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool8, |
| .input_sizes = { |
| 4, 4 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "b8all_fequal8", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool8, |
| .input_sizes = { |
| 8, 8 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "b8all_iequal16", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool8, |
| .input_sizes = { |
| 16, 16 |
| }, |
| .input_types = { |
| nir_type_int, nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "b8all_iequal2", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool8, |
| .input_sizes = { |
| 2, 2 |
| }, |
| .input_types = { |
| nir_type_int, nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "b8all_iequal3", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool8, |
| .input_sizes = { |
| 3, 3 |
| }, |
| .input_types = { |
| nir_type_int, nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "b8all_iequal4", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool8, |
| .input_sizes = { |
| 4, 4 |
| }, |
| .input_types = { |
| nir_type_int, nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "b8all_iequal8", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool8, |
| .input_sizes = { |
| 8, 8 |
| }, |
| .input_types = { |
| nir_type_int, nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "b8any_fnequal16", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool8, |
| .input_sizes = { |
| 16, 16 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "b8any_fnequal2", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool8, |
| .input_sizes = { |
| 2, 2 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "b8any_fnequal3", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool8, |
| .input_sizes = { |
| 3, 3 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "b8any_fnequal4", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool8, |
| .input_sizes = { |
| 4, 4 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "b8any_fnequal8", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool8, |
| .input_sizes = { |
| 8, 8 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "b8any_inequal16", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool8, |
| .input_sizes = { |
| 16, 16 |
| }, |
| .input_types = { |
| nir_type_int, nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "b8any_inequal2", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool8, |
| .input_sizes = { |
| 2, 2 |
| }, |
| .input_types = { |
| nir_type_int, nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "b8any_inequal3", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool8, |
| .input_sizes = { |
| 3, 3 |
| }, |
| .input_types = { |
| nir_type_int, nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "b8any_inequal4", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool8, |
| .input_sizes = { |
| 4, 4 |
| }, |
| .input_types = { |
| nir_type_int, nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "b8any_inequal8", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool8, |
| .input_sizes = { |
| 8, 8 |
| }, |
| .input_types = { |
| nir_type_int, nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "b8csel", |
| .num_inputs = 3, |
| .output_size = 0, |
| .output_type = nir_type_uint, |
| .input_sizes = { |
| 0, 0, 0 |
| }, |
| .input_types = { |
| nir_type_bool8, nir_type_uint, nir_type_uint |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "ball_fequal16", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool1, |
| .input_sizes = { |
| 16, 16 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "ball_fequal2", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool1, |
| .input_sizes = { |
| 2, 2 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "ball_fequal3", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool1, |
| .input_sizes = { |
| 3, 3 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "ball_fequal4", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool1, |
| .input_sizes = { |
| 4, 4 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "ball_fequal8", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool1, |
| .input_sizes = { |
| 8, 8 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "ball_iequal16", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool1, |
| .input_sizes = { |
| 16, 16 |
| }, |
| .input_types = { |
| nir_type_int, nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "ball_iequal2", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool1, |
| .input_sizes = { |
| 2, 2 |
| }, |
| .input_types = { |
| nir_type_int, nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "ball_iequal3", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool1, |
| .input_sizes = { |
| 3, 3 |
| }, |
| .input_types = { |
| nir_type_int, nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "ball_iequal4", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool1, |
| .input_sizes = { |
| 4, 4 |
| }, |
| .input_types = { |
| nir_type_int, nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "ball_iequal8", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool1, |
| .input_sizes = { |
| 8, 8 |
| }, |
| .input_types = { |
| nir_type_int, nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "bany_fnequal16", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool1, |
| .input_sizes = { |
| 16, 16 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "bany_fnequal2", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool1, |
| .input_sizes = { |
| 2, 2 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "bany_fnequal3", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool1, |
| .input_sizes = { |
| 3, 3 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "bany_fnequal4", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool1, |
| .input_sizes = { |
| 4, 4 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "bany_fnequal8", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool1, |
| .input_sizes = { |
| 8, 8 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "bany_inequal16", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool1, |
| .input_sizes = { |
| 16, 16 |
| }, |
| .input_types = { |
| nir_type_int, nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "bany_inequal2", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool1, |
| .input_sizes = { |
| 2, 2 |
| }, |
| .input_types = { |
| nir_type_int, nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "bany_inequal3", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool1, |
| .input_sizes = { |
| 3, 3 |
| }, |
| .input_types = { |
| nir_type_int, nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "bany_inequal4", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool1, |
| .input_sizes = { |
| 4, 4 |
| }, |
| .input_types = { |
| nir_type_int, nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "bany_inequal8", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_bool1, |
| .input_sizes = { |
| 8, 8 |
| }, |
| .input_types = { |
| nir_type_int, nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "bcsel", |
| .num_inputs = 3, |
| .output_size = 0, |
| .output_type = nir_type_uint, |
| .input_sizes = { |
| 0, 0, 0 |
| }, |
| .input_types = { |
| nir_type_bool1, nir_type_uint, nir_type_uint |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "bfi", |
| .num_inputs = 3, |
| .output_size = 0, |
| .output_type = nir_type_uint32, |
| .input_sizes = { |
| 0, 0, 0 |
| }, |
| .input_types = { |
| nir_type_uint32, nir_type_uint32, nir_type_uint32 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "bfm", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_uint32, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_int32, nir_type_int32 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "bit_count", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_uint32, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_uint |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "bitfield_insert", |
| .num_inputs = 4, |
| .output_size = 0, |
| .output_type = nir_type_uint32, |
| .input_sizes = { |
| 0, 0, 0, 0 |
| }, |
| .input_types = { |
| nir_type_uint32, nir_type_uint32, nir_type_int32, nir_type_int32 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "bitfield_reverse", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_uint32, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_uint32 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "bitfield_select", |
| .num_inputs = 3, |
| .output_size = 0, |
| .output_type = nir_type_uint, |
| .input_sizes = { |
| 0, 0, 0 |
| }, |
| .input_types = { |
| nir_type_uint, nir_type_uint, nir_type_uint |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "cube_face_coord", |
| .num_inputs = 1, |
| .output_size = 2, |
| .output_type = nir_type_float32, |
| .input_sizes = { |
| 3 |
| }, |
| .input_types = { |
| nir_type_float32 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "cube_face_index", |
| .num_inputs = 1, |
| .output_size = 1, |
| .output_type = nir_type_float32, |
| .input_sizes = { |
| 3 |
| }, |
| .input_types = { |
| nir_type_float32 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "extract_i16", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_int, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_int, nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "extract_i8", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_int, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_int, nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "extract_u16", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_uint, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_uint, nir_type_uint |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "extract_u8", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_uint, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_uint, nir_type_uint |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "f2b1", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_bool1, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_float |
| }, |
| .is_conversion = true, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "f2b16", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_bool16, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_float |
| }, |
| .is_conversion = true, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "f2b32", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_bool32, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_float |
| }, |
| .is_conversion = true, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "f2b8", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_bool8, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_float |
| }, |
| .is_conversion = true, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "f2f16", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_float16, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_float |
| }, |
| .is_conversion = true, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "f2f16_rtne", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_float16, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_float |
| }, |
| .is_conversion = true, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "f2f16_rtz", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_float16, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_float |
| }, |
| .is_conversion = true, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "f2f32", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_float32, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_float |
| }, |
| .is_conversion = true, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "f2f64", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_float64, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_float |
| }, |
| .is_conversion = true, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "f2fmp", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_float16, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_float32 |
| }, |
| .is_conversion = true, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "f2i1", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_int1, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_float |
| }, |
| .is_conversion = true, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "f2i16", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_int16, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_float |
| }, |
| .is_conversion = true, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "f2i32", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_int32, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_float |
| }, |
| .is_conversion = true, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "f2i64", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_int64, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_float |
| }, |
| .is_conversion = true, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "f2i8", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_int8, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_float |
| }, |
| .is_conversion = true, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "f2imp", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_int16, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_float32 |
| }, |
| .is_conversion = true, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "f2u1", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_uint1, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_float |
| }, |
| .is_conversion = true, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "f2u16", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_uint16, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_float |
| }, |
| .is_conversion = true, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "f2u32", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_uint32, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_float |
| }, |
| .is_conversion = true, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "f2u64", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_uint64, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_float |
| }, |
| .is_conversion = true, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "f2u8", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_uint8, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_float |
| }, |
| .is_conversion = true, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "f2ump", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_uint16, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_float32 |
| }, |
| .is_conversion = true, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "fabs", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_float, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "fadd", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_float, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE | NIR_OP_IS_ASSOCIATIVE |
| }, |
| { |
| .name = "fall_equal16", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_float32, |
| .input_sizes = { |
| 16, 16 |
| }, |
| .input_types = { |
| nir_type_float32, nir_type_float32 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "fall_equal2", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_float32, |
| .input_sizes = { |
| 2, 2 |
| }, |
| .input_types = { |
| nir_type_float32, nir_type_float32 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "fall_equal3", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_float32, |
| .input_sizes = { |
| 3, 3 |
| }, |
| .input_types = { |
| nir_type_float32, nir_type_float32 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "fall_equal4", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_float32, |
| .input_sizes = { |
| 4, 4 |
| }, |
| .input_types = { |
| nir_type_float32, nir_type_float32 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "fall_equal8", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_float32, |
| .input_sizes = { |
| 8, 8 |
| }, |
| .input_types = { |
| nir_type_float32, nir_type_float32 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "fany_nequal16", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_float32, |
| .input_sizes = { |
| 16, 16 |
| }, |
| .input_types = { |
| nir_type_float32, nir_type_float32 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "fany_nequal2", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_float32, |
| .input_sizes = { |
| 2, 2 |
| }, |
| .input_types = { |
| nir_type_float32, nir_type_float32 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "fany_nequal3", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_float32, |
| .input_sizes = { |
| 3, 3 |
| }, |
| .input_types = { |
| nir_type_float32, nir_type_float32 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "fany_nequal4", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_float32, |
| .input_sizes = { |
| 4, 4 |
| }, |
| .input_types = { |
| nir_type_float32, nir_type_float32 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "fany_nequal8", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_float32, |
| .input_sizes = { |
| 8, 8 |
| }, |
| .input_types = { |
| nir_type_float32, nir_type_float32 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "fceil", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_float, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "fclamp_pos", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_float, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "fcos", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_float, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "fcsel", |
| .num_inputs = 3, |
| .output_size = 0, |
| .output_type = nir_type_float32, |
| .input_sizes = { |
| 0, 0, 0 |
| }, |
| .input_types = { |
| nir_type_float32, nir_type_float32, nir_type_float32 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "fddx", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_float, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "fddx_coarse", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_float, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "fddx_fine", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_float, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "fddy", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_float, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "fddy_coarse", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_float, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "fddy_fine", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_float, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "fdiv", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_float, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "fdot16", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_float, |
| .input_sizes = { |
| 16, 16 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "fdot16_replicated", |
| .num_inputs = 2, |
| .output_size = 4, |
| .output_type = nir_type_float, |
| .input_sizes = { |
| 16, 16 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "fdot2", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_float, |
| .input_sizes = { |
| 2, 2 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "fdot2_replicated", |
| .num_inputs = 2, |
| .output_size = 4, |
| .output_type = nir_type_float, |
| .input_sizes = { |
| 2, 2 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "fdot3", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_float, |
| .input_sizes = { |
| 3, 3 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "fdot3_replicated", |
| .num_inputs = 2, |
| .output_size = 4, |
| .output_type = nir_type_float, |
| .input_sizes = { |
| 3, 3 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "fdot4", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_float, |
| .input_sizes = { |
| 4, 4 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "fdot4_replicated", |
| .num_inputs = 2, |
| .output_size = 4, |
| .output_type = nir_type_float, |
| .input_sizes = { |
| 4, 4 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "fdot8", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_float, |
| .input_sizes = { |
| 8, 8 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "fdot8_replicated", |
| .num_inputs = 2, |
| .output_size = 4, |
| .output_type = nir_type_float, |
| .input_sizes = { |
| 8, 8 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "fdph", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_float, |
| .input_sizes = { |
| 3, 4 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "fdph_replicated", |
| .num_inputs = 2, |
| .output_size = 4, |
| .output_type = nir_type_float, |
| .input_sizes = { |
| 3, 4 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "feq", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_bool1, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "feq16", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_bool16, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "feq32", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_bool32, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "feq8", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_bool8, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "fexp2", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_float, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "ffloor", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_float, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "ffma", |
| .num_inputs = 3, |
| .output_size = 0, |
| .output_type = nir_type_float, |
| .input_sizes = { |
| 0, 0, 0 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "ffract", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_float, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "fge", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_bool1, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "fge16", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_bool16, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "fge32", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_bool32, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "fge8", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_bool8, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "find_lsb", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_int32, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "fisfinite", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_bool1, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "fisnormal", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_bool1, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "flog2", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_float, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "flrp", |
| .num_inputs = 3, |
| .output_size = 0, |
| .output_type = nir_type_float, |
| .input_sizes = { |
| 0, 0, 0 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "flt", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_bool1, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "flt16", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_bool16, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "flt32", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_bool32, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "flt8", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_bool8, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "fmax", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_float, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE | NIR_OP_IS_ASSOCIATIVE |
| }, |
| { |
| .name = "fmin", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_float, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE | NIR_OP_IS_ASSOCIATIVE |
| }, |
| { |
| .name = "fmod", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_float, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "fmul", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_float, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE | NIR_OP_IS_ASSOCIATIVE |
| }, |
| { |
| .name = "fneg", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_float, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "fneu", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_bool1, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "fneu16", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_bool16, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "fneu32", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_bool32, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "fneu8", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_bool8, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "fpow", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_float, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "fquantize2f16", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_float, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "frcp", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_float, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "frem", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_float, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "frexp_exp", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_int32, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "frexp_sig", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_float, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "fround_even", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_float, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "frsq", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_float, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "fsat", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_float, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "fsat_signed", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_float, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "fsign", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_float, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "fsin", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_float, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "fsqrt", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_float, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "fsub", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_float, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "fsum2", |
| .num_inputs = 1, |
| .output_size = 1, |
| .output_type = nir_type_float, |
| .input_sizes = { |
| 2 |
| }, |
| .input_types = { |
| nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "fsum3", |
| .num_inputs = 1, |
| .output_size = 1, |
| .output_type = nir_type_float, |
| .input_sizes = { |
| 3 |
| }, |
| .input_types = { |
| nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "fsum4", |
| .num_inputs = 1, |
| .output_size = 1, |
| .output_type = nir_type_float, |
| .input_sizes = { |
| 4 |
| }, |
| .input_types = { |
| nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "ftrunc", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_float, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "i2b1", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_bool1, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_int |
| }, |
| .is_conversion = true, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "i2b16", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_bool16, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_int |
| }, |
| .is_conversion = true, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "i2b32", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_bool32, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_int |
| }, |
| .is_conversion = true, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "i2b8", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_bool8, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_int |
| }, |
| .is_conversion = true, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "i2f16", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_float16, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_int |
| }, |
| .is_conversion = true, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "i2f32", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_float32, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_int |
| }, |
| .is_conversion = true, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "i2f64", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_float64, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_int |
| }, |
| .is_conversion = true, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "i2fmp", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_float16, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_int32 |
| }, |
| .is_conversion = true, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "i2i1", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_int1, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_int |
| }, |
| .is_conversion = true, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "i2i16", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_int16, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_int |
| }, |
| .is_conversion = true, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "i2i32", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_int32, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_int |
| }, |
| .is_conversion = true, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "i2i64", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_int64, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_int |
| }, |
| .is_conversion = true, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "i2i8", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_int8, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_int |
| }, |
| .is_conversion = true, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "i2imp", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_int16, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_int32 |
| }, |
| .is_conversion = true, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "iabs", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_int, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "iadd", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_int, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_int, nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE | NIR_OP_IS_ASSOCIATIVE |
| }, |
| { |
| .name = "iadd_sat", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_int, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_int, nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "iand", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_uint, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_uint, nir_type_uint |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE | NIR_OP_IS_ASSOCIATIVE |
| }, |
| { |
| .name = "ibfe", |
| .num_inputs = 3, |
| .output_size = 0, |
| .output_type = nir_type_int32, |
| .input_sizes = { |
| 0, 0, 0 |
| }, |
| .input_types = { |
| nir_type_int32, nir_type_uint32, nir_type_uint32 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "ibitfield_extract", |
| .num_inputs = 3, |
| .output_size = 0, |
| .output_type = nir_type_int32, |
| .input_sizes = { |
| 0, 0, 0 |
| }, |
| .input_types = { |
| nir_type_int32, nir_type_int32, nir_type_int32 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "idiv", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_int, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_int, nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "ieq", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_bool1, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_int, nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "ieq16", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_bool16, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_int, nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "ieq32", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_bool32, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_int, nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "ieq8", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_bool8, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_int, nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "ifind_msb", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_int32, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_int32 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "ige", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_bool1, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_int, nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "ige16", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_bool16, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_int, nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "ige32", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_bool32, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_int, nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "ige8", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_bool8, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_int, nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "ihadd", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_int, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_int, nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "ilt", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_bool1, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_int, nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "ilt16", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_bool16, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_int, nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "ilt32", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_bool32, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_int, nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "ilt8", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_bool8, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_int, nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "imad24_ir3", |
| .num_inputs = 3, |
| .output_size = 0, |
| .output_type = nir_type_int32, |
| .input_sizes = { |
| 0, 0, 0 |
| }, |
| .input_types = { |
| nir_type_int32, nir_type_int32, nir_type_int32 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "imadsh_mix16", |
| .num_inputs = 3, |
| .output_size = 0, |
| .output_type = nir_type_int32, |
| .input_sizes = { |
| 0, 0, 0 |
| }, |
| .input_types = { |
| nir_type_int32, nir_type_int32, nir_type_int32 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "imax", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_int, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_int, nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE | NIR_OP_IS_ASSOCIATIVE |
| }, |
| { |
| .name = "imin", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_int, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_int, nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE | NIR_OP_IS_ASSOCIATIVE |
| }, |
| { |
| .name = "imod", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_int, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_int, nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "imul", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_int, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_int, nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE | NIR_OP_IS_ASSOCIATIVE |
| }, |
| { |
| .name = "imul24", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_int32, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_int32, nir_type_int32 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE | NIR_OP_IS_ASSOCIATIVE |
| }, |
| { |
| .name = "imul_2x32_64", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_int64, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_int32, nir_type_int32 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "imul_32x16", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_int32, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_int32, nir_type_int32 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "imul_high", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_int, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_int, nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "ine", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_bool1, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_int, nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "ine16", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_bool16, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_int, nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "ine32", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_bool32, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_int, nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "ine8", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_bool8, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_int, nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "ineg", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_int, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "inot", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_int, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "ior", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_uint, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_uint, nir_type_uint |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE | NIR_OP_IS_ASSOCIATIVE |
| }, |
| { |
| .name = "irem", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_int, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_int, nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "irhadd", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_int, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_int, nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "ishl", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_int, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_int, nir_type_uint32 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "ishr", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_int, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_int, nir_type_uint32 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "isign", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_int, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "isub", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_int, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_int, nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "isub_sat", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_int, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_int, nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "ixor", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_uint, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_uint, nir_type_uint |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE | NIR_OP_IS_ASSOCIATIVE |
| }, |
| { |
| .name = "ldexp", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_float, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_int32 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "mov", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_uint, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_uint |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "pack_32_2x16", |
| .num_inputs = 1, |
| .output_size = 1, |
| .output_type = nir_type_uint32, |
| .input_sizes = { |
| 2 |
| }, |
| .input_types = { |
| nir_type_uint16 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "pack_32_2x16_split", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_uint32, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_uint16, nir_type_uint16 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "pack_32_4x8", |
| .num_inputs = 1, |
| .output_size = 1, |
| .output_type = nir_type_uint32, |
| .input_sizes = { |
| 4 |
| }, |
| .input_types = { |
| nir_type_uint8 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "pack_64_2x32", |
| .num_inputs = 1, |
| .output_size = 1, |
| .output_type = nir_type_uint64, |
| .input_sizes = { |
| 2 |
| }, |
| .input_types = { |
| nir_type_uint32 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "pack_64_2x32_split", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_uint64, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_uint32, nir_type_uint32 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "pack_64_4x16", |
| .num_inputs = 1, |
| .output_size = 1, |
| .output_type = nir_type_uint64, |
| .input_sizes = { |
| 4 |
| }, |
| .input_types = { |
| nir_type_uint16 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "pack_half_2x16", |
| .num_inputs = 1, |
| .output_size = 1, |
| .output_type = nir_type_uint32, |
| .input_sizes = { |
| 2 |
| }, |
| .input_types = { |
| nir_type_float32 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "pack_half_2x16_split", |
| .num_inputs = 2, |
| .output_size = 1, |
| .output_type = nir_type_uint32, |
| .input_sizes = { |
| 1, 1 |
| }, |
| .input_types = { |
| nir_type_float32, nir_type_float32 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "pack_snorm_2x16", |
| .num_inputs = 1, |
| .output_size = 1, |
| .output_type = nir_type_uint32, |
| .input_sizes = { |
| 2 |
| }, |
| .input_types = { |
| nir_type_float32 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "pack_snorm_4x8", |
| .num_inputs = 1, |
| .output_size = 1, |
| .output_type = nir_type_uint32, |
| .input_sizes = { |
| 4 |
| }, |
| .input_types = { |
| nir_type_float32 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "pack_unorm_2x16", |
| .num_inputs = 1, |
| .output_size = 1, |
| .output_type = nir_type_uint32, |
| .input_sizes = { |
| 2 |
| }, |
| .input_types = { |
| nir_type_float32 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "pack_unorm_4x8", |
| .num_inputs = 1, |
| .output_size = 1, |
| .output_type = nir_type_uint32, |
| .input_sizes = { |
| 4 |
| }, |
| .input_types = { |
| nir_type_float32 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "pack_uvec2_to_uint", |
| .num_inputs = 1, |
| .output_size = 1, |
| .output_type = nir_type_uint32, |
| .input_sizes = { |
| 2 |
| }, |
| .input_types = { |
| nir_type_uint32 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "pack_uvec4_to_uint", |
| .num_inputs = 1, |
| .output_size = 1, |
| .output_type = nir_type_uint32, |
| .input_sizes = { |
| 4 |
| }, |
| .input_types = { |
| nir_type_uint32 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "seq", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_float32, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_float32, nir_type_float32 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "sge", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_float, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_float, nir_type_float |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "slt", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_float32, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_float32, nir_type_float32 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "sne", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_float32, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_float32, nir_type_float32 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "u2f16", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_float16, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_uint |
| }, |
| .is_conversion = true, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "u2f32", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_float32, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_uint |
| }, |
| .is_conversion = true, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "u2f64", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_float64, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_uint |
| }, |
| .is_conversion = true, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "u2fmp", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_float16, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_uint32 |
| }, |
| .is_conversion = true, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "u2u1", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_uint1, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_uint |
| }, |
| .is_conversion = true, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "u2u16", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_uint16, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_uint |
| }, |
| .is_conversion = true, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "u2u32", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_uint32, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_uint |
| }, |
| .is_conversion = true, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "u2u64", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_uint64, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_uint |
| }, |
| .is_conversion = true, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "u2u8", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_uint8, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_uint |
| }, |
| .is_conversion = true, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "uabs_isub", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_uint, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_int, nir_type_int |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "uabs_usub", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_uint, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_uint, nir_type_uint |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "uadd_carry", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_uint, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_uint, nir_type_uint |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "uadd_sat", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_uint, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_uint, nir_type_uint |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "ubfe", |
| .num_inputs = 3, |
| .output_size = 0, |
| .output_type = nir_type_uint32, |
| .input_sizes = { |
| 0, 0, 0 |
| }, |
| .input_types = { |
| nir_type_uint32, nir_type_uint32, nir_type_uint32 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "ubitfield_extract", |
| .num_inputs = 3, |
| .output_size = 0, |
| .output_type = nir_type_uint32, |
| .input_sizes = { |
| 0, 0, 0 |
| }, |
| .input_types = { |
| nir_type_uint32, nir_type_int32, nir_type_int32 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "uclz", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_uint32, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_uint32 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "udiv", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_uint, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_uint, nir_type_uint |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "ufind_msb", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_int32, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_uint |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "uge", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_bool1, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_uint, nir_type_uint |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "uge16", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_bool16, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_uint, nir_type_uint |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "uge32", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_bool32, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_uint, nir_type_uint |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "uge8", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_bool8, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_uint, nir_type_uint |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "uhadd", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_uint, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_uint, nir_type_uint |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "ult", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_bool1, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_uint, nir_type_uint |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "ult16", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_bool16, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_uint, nir_type_uint |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "ult32", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_bool32, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_uint, nir_type_uint |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "ult8", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_bool8, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_uint, nir_type_uint |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "umad24", |
| .num_inputs = 3, |
| .output_size = 0, |
| .output_type = nir_type_uint32, |
| .input_sizes = { |
| 0, 0, 0 |
| }, |
| .input_types = { |
| nir_type_uint32, nir_type_uint32, nir_type_uint32 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "umax", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_uint, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_uint, nir_type_uint |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE | NIR_OP_IS_ASSOCIATIVE |
| }, |
| { |
| .name = "umax_4x8", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_int32, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_int32, nir_type_int32 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE | NIR_OP_IS_ASSOCIATIVE |
| }, |
| { |
| .name = "umin", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_uint, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_uint, nir_type_uint |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE | NIR_OP_IS_ASSOCIATIVE |
| }, |
| { |
| .name = "umin_4x8", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_int32, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_int32, nir_type_int32 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE | NIR_OP_IS_ASSOCIATIVE |
| }, |
| { |
| .name = "umod", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_uint, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_uint, nir_type_uint |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "umul24", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_int32, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_int32, nir_type_int32 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE | NIR_OP_IS_ASSOCIATIVE |
| }, |
| { |
| .name = "umul_2x32_64", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_uint64, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_uint32, nir_type_uint32 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "umul_32x16", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_uint32, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_uint32, nir_type_uint32 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "umul_high", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_uint, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_uint, nir_type_uint |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "umul_low", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_uint32, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_uint32, nir_type_uint32 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "umul_unorm_4x8", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_int32, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_int32, nir_type_int32 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE | NIR_OP_IS_ASSOCIATIVE |
| }, |
| { |
| .name = "unpack_32_2x16", |
| .num_inputs = 1, |
| .output_size = 2, |
| .output_type = nir_type_uint16, |
| .input_sizes = { |
| 1 |
| }, |
| .input_types = { |
| nir_type_uint32 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "unpack_32_2x16_split_x", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_uint16, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_uint32 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "unpack_32_2x16_split_y", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_uint16, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_uint32 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "unpack_32_4x8", |
| .num_inputs = 1, |
| .output_size = 4, |
| .output_type = nir_type_uint8, |
| .input_sizes = { |
| 1 |
| }, |
| .input_types = { |
| nir_type_uint32 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "unpack_64_2x32", |
| .num_inputs = 1, |
| .output_size = 2, |
| .output_type = nir_type_uint32, |
| .input_sizes = { |
| 1 |
| }, |
| .input_types = { |
| nir_type_uint64 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "unpack_64_2x32_split_x", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_uint32, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_uint64 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "unpack_64_2x32_split_y", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_uint32, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_uint64 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "unpack_64_4x16", |
| .num_inputs = 1, |
| .output_size = 4, |
| .output_type = nir_type_uint16, |
| .input_sizes = { |
| 1 |
| }, |
| .input_types = { |
| nir_type_uint64 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "unpack_half_2x16", |
| .num_inputs = 1, |
| .output_size = 2, |
| .output_type = nir_type_float32, |
| .input_sizes = { |
| 1 |
| }, |
| .input_types = { |
| nir_type_uint32 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "unpack_half_2x16_flush_to_zero", |
| .num_inputs = 1, |
| .output_size = 2, |
| .output_type = nir_type_float32, |
| .input_sizes = { |
| 1 |
| }, |
| .input_types = { |
| nir_type_uint32 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "unpack_half_2x16_split_x", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_float32, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_uint32 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "unpack_half_2x16_split_x_flush_to_zero", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_float32, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_uint32 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "unpack_half_2x16_split_y", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_float32, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_uint32 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "unpack_half_2x16_split_y_flush_to_zero", |
| .num_inputs = 1, |
| .output_size = 0, |
| .output_type = nir_type_float32, |
| .input_sizes = { |
| 0 |
| }, |
| .input_types = { |
| nir_type_uint32 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "unpack_snorm_2x16", |
| .num_inputs = 1, |
| .output_size = 2, |
| .output_type = nir_type_float32, |
| .input_sizes = { |
| 1 |
| }, |
| .input_types = { |
| nir_type_uint32 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "unpack_snorm_4x8", |
| .num_inputs = 1, |
| .output_size = 4, |
| .output_type = nir_type_float32, |
| .input_sizes = { |
| 1 |
| }, |
| .input_types = { |
| nir_type_uint32 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "unpack_unorm_2x16", |
| .num_inputs = 1, |
| .output_size = 2, |
| .output_type = nir_type_float32, |
| .input_sizes = { |
| 1 |
| }, |
| .input_types = { |
| nir_type_uint32 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "unpack_unorm_4x8", |
| .num_inputs = 1, |
| .output_size = 4, |
| .output_type = nir_type_float32, |
| .input_sizes = { |
| 1 |
| }, |
| .input_types = { |
| nir_type_uint32 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "urhadd", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_uint, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_uint, nir_type_uint |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE |
| }, |
| { |
| .name = "urol", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_uint, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_uint, nir_type_uint32 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "uror", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_uint, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_uint, nir_type_uint32 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "usadd_4x8", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_int32, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_int32, nir_type_int32 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| NIR_OP_IS_2SRC_COMMUTATIVE | NIR_OP_IS_ASSOCIATIVE |
| }, |
| { |
| .name = "ushr", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_uint, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_uint, nir_type_uint32 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "ussub_4x8", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_int32, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_int32, nir_type_int32 |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "usub_borrow", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_uint, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_uint, nir_type_uint |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "usub_sat", |
| .num_inputs = 2, |
| .output_size = 0, |
| .output_type = nir_type_uint, |
| .input_sizes = { |
| 0, 0 |
| }, |
| .input_types = { |
| nir_type_uint, nir_type_uint |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "vec16", |
| .num_inputs = 16, |
| .output_size = 16, |
| .output_type = nir_type_uint, |
| .input_sizes = { |
| 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 |
| }, |
| .input_types = { |
| nir_type_uint, nir_type_uint, nir_type_uint, nir_type_uint, nir_type_uint, nir_type_uint, nir_type_uint, nir_type_uint, nir_type_uint, nir_type_uint, nir_type_uint, nir_type_uint, nir_type_uint, nir_type_uint, nir_type_uint, nir_type_uint |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "vec2", |
| .num_inputs = 2, |
| .output_size = 2, |
| .output_type = nir_type_uint, |
| .input_sizes = { |
| 1, 1 |
| }, |
| .input_types = { |
| nir_type_uint, nir_type_uint |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "vec3", |
| .num_inputs = 3, |
| .output_size = 3, |
| .output_type = nir_type_uint, |
| .input_sizes = { |
| 1, 1, 1 |
| }, |
| .input_types = { |
| nir_type_uint, nir_type_uint, nir_type_uint |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "vec4", |
| .num_inputs = 4, |
| .output_size = 4, |
| .output_type = nir_type_uint, |
| .input_sizes = { |
| 1, 1, 1, 1 |
| }, |
| .input_types = { |
| nir_type_uint, nir_type_uint, nir_type_uint, nir_type_uint |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| { |
| .name = "vec8", |
| .num_inputs = 8, |
| .output_size = 8, |
| .output_type = nir_type_uint, |
| .input_sizes = { |
| 1, 1, 1, 1, 1, 1, 1, 1 |
| }, |
| .input_types = { |
| nir_type_uint, nir_type_uint, nir_type_uint, nir_type_uint, nir_type_uint, nir_type_uint, nir_type_uint, nir_type_uint |
| }, |
| .is_conversion = false, |
| .algebraic_properties = |
| 0 |
| }, |
| }; |
| |