#include "nir.h" const nir_op_info nir_op_infos[nir_num_opcodes] = { { .name = "b2f", .num_inputs = 1, .output_size = 0, .output_type = nir_type_float32, .input_sizes = { 0 }, .input_types = { nir_type_bool32 }, .algebraic_properties = 0 }, { .name = "b2i", .num_inputs = 1, .output_size = 0, .output_type = nir_type_int32, .input_sizes = { 0 }, .input_types = { nir_type_bool32 }, .algebraic_properties = 0 }, { .name = "ball_fequal2", .num_inputs = 2, .output_size = 1, .output_type = nir_type_bool32, .input_sizes = { 2, 2 }, .input_types = { nir_type_float, nir_type_float }, .algebraic_properties = NIR_OP_IS_COMMUTATIVE }, { .name = "ball_fequal3", .num_inputs = 2, .output_size = 1, .output_type = nir_type_bool32, .input_sizes = { 3, 3 }, .input_types = { nir_type_float, nir_type_float }, .algebraic_properties = NIR_OP_IS_COMMUTATIVE }, { .name = "ball_fequal4", .num_inputs = 2, .output_size = 1, .output_type = nir_type_bool32, .input_sizes = { 4, 4 }, .input_types = { nir_type_float, nir_type_float }, .algebraic_properties = NIR_OP_IS_COMMUTATIVE }, { .name = "ball_iequal2", .num_inputs = 2, .output_size = 1, .output_type = nir_type_bool32, .input_sizes = { 2, 2 }, .input_types = { nir_type_int, nir_type_int }, .algebraic_properties = NIR_OP_IS_COMMUTATIVE }, { .name = "ball_iequal3", .num_inputs = 2, .output_size = 1, .output_type = nir_type_bool32, .input_sizes = { 3, 3 }, .input_types = { nir_type_int, nir_type_int }, .algebraic_properties = NIR_OP_IS_COMMUTATIVE }, { .name = "ball_iequal4", .num_inputs = 2, .output_size = 1, .output_type = nir_type_bool32, .input_sizes = { 4, 4 }, .input_types = { nir_type_int, nir_type_int }, .algebraic_properties = NIR_OP_IS_COMMUTATIVE }, { .name = "bany_fnequal2", .num_inputs = 2, .output_size = 1, .output_type = nir_type_bool32, .input_sizes = { 2, 2 }, .input_types = { nir_type_float, nir_type_float }, .algebraic_properties = NIR_OP_IS_COMMUTATIVE }, { .name = "bany_fnequal3", .num_inputs = 2, .output_size = 1, .output_type = nir_type_bool32, .input_sizes = { 3, 3 }, .input_types = { nir_type_float, nir_type_float }, .algebraic_properties = NIR_OP_IS_COMMUTATIVE }, { .name = "bany_fnequal4", .num_inputs = 2, .output_size = 1, .output_type = nir_type_bool32, .input_sizes = { 4, 4 }, .input_types = { nir_type_float, nir_type_float }, .algebraic_properties = NIR_OP_IS_COMMUTATIVE }, { .name = "bany_inequal2", .num_inputs = 2, .output_size = 1, .output_type = nir_type_bool32, .input_sizes = { 2, 2 }, .input_types = { nir_type_int, nir_type_int }, .algebraic_properties = NIR_OP_IS_COMMUTATIVE }, { .name = "bany_inequal3", .num_inputs = 2, .output_size = 1, .output_type = nir_type_bool32, .input_sizes = { 3, 3 }, .input_types = { nir_type_int, nir_type_int }, .algebraic_properties = NIR_OP_IS_COMMUTATIVE }, { .name = "bany_inequal4", .num_inputs = 2, .output_size = 1, .output_type = nir_type_bool32, .input_sizes = { 4, 4 }, .input_types = { nir_type_int, nir_type_int }, .algebraic_properties = NIR_OP_IS_COMMUTATIVE }, { .name = "bcsel", .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 }, .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 }, .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 }, .algebraic_properties = 0 }, { .name = "bit_count", .num_inputs = 1, .output_size = 0, .output_type = nir_type_uint32, .input_sizes = { 0 }, .input_types = { nir_type_uint32 }, .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 }, .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 }, .algebraic_properties = 0 }, { .name = "d2b", .num_inputs = 1, .output_size = 0, .output_type = nir_type_bool32, .input_sizes = { 0 }, .input_types = { nir_type_float64 }, .algebraic_properties = 0 }, { .name = "d2f", .num_inputs = 1, .output_size = 0, .output_type = nir_type_float32, .input_sizes = { 0 }, .input_types = { nir_type_float64 }, .algebraic_properties = 0 }, { .name = "d2i", .num_inputs = 1, .output_size = 0, .output_type = nir_type_int32, .input_sizes = { 0 }, .input_types = { nir_type_float64 }, .algebraic_properties = 0 }, { .name = "d2u", .num_inputs = 1, .output_size = 0, .output_type = nir_type_uint32, .input_sizes = { 0 }, .input_types = { nir_type_float64 }, .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 }, .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 }, .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 }, .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 }, .algebraic_properties = 0 }, { .name = "f2b", .num_inputs = 1, .output_size = 0, .output_type = nir_type_bool32, .input_sizes = { 0 }, .input_types = { nir_type_float32 }, .algebraic_properties = 0 }, { .name = "f2d", .num_inputs = 1, .output_size = 0, .output_type = nir_type_float64, .input_sizes = { 0 }, .input_types = { nir_type_float32 }, .algebraic_properties = 0 }, { .name = "f2i", .num_inputs = 1, .output_size = 0, .output_type = nir_type_int32, .input_sizes = { 0 }, .input_types = { nir_type_float32 }, .algebraic_properties = 0 }, { .name = "f2u", .num_inputs = 1, .output_size = 0, .output_type = nir_type_uint32, .input_sizes = { 0 }, .input_types = { nir_type_float32 }, .algebraic_properties = 0 }, { .name = "fabs", .num_inputs = 1, .output_size = 0, .output_type = nir_type_float, .input_sizes = { 0 }, .input_types = { nir_type_float }, .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 }, .algebraic_properties = NIR_OP_IS_COMMUTATIVE | NIR_OP_IS_ASSOCIATIVE }, { .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 }, .algebraic_properties = NIR_OP_IS_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 }, .algebraic_properties = NIR_OP_IS_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 }, .algebraic_properties = NIR_OP_IS_COMMUTATIVE }, { .name = "fand", .num_inputs = 2, .output_size = 0, .output_type = nir_type_float32, .input_sizes = { 0, 0 }, .input_types = { nir_type_float32, nir_type_float32 }, .algebraic_properties = NIR_OP_IS_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 }, .algebraic_properties = NIR_OP_IS_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 }, .algebraic_properties = NIR_OP_IS_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 }, .algebraic_properties = NIR_OP_IS_COMMUTATIVE }, { .name = "fceil", .num_inputs = 1, .output_size = 0, .output_type = nir_type_float, .input_sizes = { 0 }, .input_types = { nir_type_float }, .algebraic_properties = 0 }, { .name = "fcos", .num_inputs = 1, .output_size = 0, .output_type = nir_type_float, .input_sizes = { 0 }, .input_types = { nir_type_float }, .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 }, .algebraic_properties = 0 }, { .name = "fddx", .num_inputs = 1, .output_size = 0, .output_type = nir_type_float, .input_sizes = { 0 }, .input_types = { nir_type_float }, .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 }, .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 }, .algebraic_properties = 0 }, { .name = "fddy", .num_inputs = 1, .output_size = 0, .output_type = nir_type_float, .input_sizes = { 0 }, .input_types = { nir_type_float }, .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 }, .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 }, .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 }, .algebraic_properties = 0 }, { .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 }, .algebraic_properties = NIR_OP_IS_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 }, .algebraic_properties = NIR_OP_IS_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 }, .algebraic_properties = NIR_OP_IS_COMMUTATIVE }, { .name = "fdot_replicated2", .num_inputs = 2, .output_size = 4, .output_type = nir_type_float, .input_sizes = { 2, 2 }, .input_types = { nir_type_float, nir_type_float }, .algebraic_properties = NIR_OP_IS_COMMUTATIVE }, { .name = "fdot_replicated3", .num_inputs = 2, .output_size = 4, .output_type = nir_type_float, .input_sizes = { 3, 3 }, .input_types = { nir_type_float, nir_type_float }, .algebraic_properties = NIR_OP_IS_COMMUTATIVE }, { .name = "fdot_replicated4", .num_inputs = 2, .output_size = 4, .output_type = nir_type_float, .input_sizes = { 4, 4 }, .input_types = { nir_type_float, nir_type_float }, .algebraic_properties = NIR_OP_IS_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 }, .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 }, .algebraic_properties = 0 }, { .name = "feq", .num_inputs = 2, .output_size = 0, .output_type = nir_type_bool32, .input_sizes = { 0, 0 }, .input_types = { nir_type_float, nir_type_float }, .algebraic_properties = NIR_OP_IS_COMMUTATIVE }, { .name = "fexp2", .num_inputs = 1, .output_size = 0, .output_type = nir_type_float, .input_sizes = { 0 }, .input_types = { nir_type_float }, .algebraic_properties = 0 }, { .name = "ffloor", .num_inputs = 1, .output_size = 0, .output_type = nir_type_float, .input_sizes = { 0 }, .input_types = { nir_type_float }, .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 }, .algebraic_properties = 0 }, { .name = "ffract", .num_inputs = 1, .output_size = 0, .output_type = nir_type_float, .input_sizes = { 0 }, .input_types = { nir_type_float }, .algebraic_properties = 0 }, { .name = "fge", .num_inputs = 2, .output_size = 0, .output_type = nir_type_bool32, .input_sizes = { 0, 0 }, .input_types = { nir_type_float, nir_type_float }, .algebraic_properties = 0 }, { .name = "find_lsb", .num_inputs = 1, .output_size = 0, .output_type = nir_type_int32, .input_sizes = { 0 }, .input_types = { nir_type_int32 }, .algebraic_properties = 0 }, { .name = "flog2", .num_inputs = 1, .output_size = 0, .output_type = nir_type_float, .input_sizes = { 0 }, .input_types = { nir_type_float }, .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 }, .algebraic_properties = 0 }, { .name = "flt", .num_inputs = 2, .output_size = 0, .output_type = nir_type_bool32, .input_sizes = { 0, 0 }, .input_types = { nir_type_float, nir_type_float }, .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 }, .algebraic_properties = 0 }, { .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 }, .algebraic_properties = 0 }, { .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 }, .algebraic_properties = 0 }, { .name = "fmov", .num_inputs = 1, .output_size = 0, .output_type = nir_type_float, .input_sizes = { 0 }, .input_types = { nir_type_float }, .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 }, .algebraic_properties = NIR_OP_IS_COMMUTATIVE | NIR_OP_IS_ASSOCIATIVE }, { .name = "fne", .num_inputs = 2, .output_size = 0, .output_type = nir_type_bool32, .input_sizes = { 0, 0 }, .input_types = { nir_type_float, nir_type_float }, .algebraic_properties = NIR_OP_IS_COMMUTATIVE }, { .name = "fneg", .num_inputs = 1, .output_size = 0, .output_type = nir_type_float, .input_sizes = { 0 }, .input_types = { nir_type_float }, .algebraic_properties = 0 }, { .name = "fnoise1_1", .num_inputs = 1, .output_size = 1, .output_type = nir_type_float, .input_sizes = { 1 }, .input_types = { nir_type_float }, .algebraic_properties = 0 }, { .name = "fnoise1_2", .num_inputs = 1, .output_size = 1, .output_type = nir_type_float, .input_sizes = { 2 }, .input_types = { nir_type_float }, .algebraic_properties = 0 }, { .name = "fnoise1_3", .num_inputs = 1, .output_size = 1, .output_type = nir_type_float, .input_sizes = { 3 }, .input_types = { nir_type_float }, .algebraic_properties = 0 }, { .name = "fnoise1_4", .num_inputs = 1, .output_size = 1, .output_type = nir_type_float, .input_sizes = { 4 }, .input_types = { nir_type_float }, .algebraic_properties = 0 }, { .name = "fnoise2_1", .num_inputs = 1, .output_size = 2, .output_type = nir_type_float, .input_sizes = { 1 }, .input_types = { nir_type_float }, .algebraic_properties = 0 }, { .name = "fnoise2_2", .num_inputs = 1, .output_size = 2, .output_type = nir_type_float, .input_sizes = { 2 }, .input_types = { nir_type_float }, .algebraic_properties = 0 }, { .name = "fnoise2_3", .num_inputs = 1, .output_size = 2, .output_type = nir_type_float, .input_sizes = { 3 }, .input_types = { nir_type_float }, .algebraic_properties = 0 }, { .name = "fnoise2_4", .num_inputs = 1, .output_size = 2, .output_type = nir_type_float, .input_sizes = { 4 }, .input_types = { nir_type_float }, .algebraic_properties = 0 }, { .name = "fnoise3_1", .num_inputs = 1, .output_size = 3, .output_type = nir_type_float, .input_sizes = { 1 }, .input_types = { nir_type_float }, .algebraic_properties = 0 }, { .name = "fnoise3_2", .num_inputs = 1, .output_size = 3, .output_type = nir_type_float, .input_sizes = { 2 }, .input_types = { nir_type_float }, .algebraic_properties = 0 }, { .name = "fnoise3_3", .num_inputs = 1, .output_size = 3, .output_type = nir_type_float, .input_sizes = { 3 }, .input_types = { nir_type_float }, .algebraic_properties = 0 }, { .name = "fnoise3_4", .num_inputs = 1, .output_size = 3, .output_type = nir_type_float, .input_sizes = { 4 }, .input_types = { nir_type_float }, .algebraic_properties = 0 }, { .name = "fnoise4_1", .num_inputs = 1, .output_size = 4, .output_type = nir_type_float, .input_sizes = { 1 }, .input_types = { nir_type_float }, .algebraic_properties = 0 }, { .name = "fnoise4_2", .num_inputs = 1, .output_size = 4, .output_type = nir_type_float, .input_sizes = { 2 }, .input_types = { nir_type_float }, .algebraic_properties = 0 }, { .name = "fnoise4_3", .num_inputs = 1, .output_size = 4, .output_type = nir_type_float, .input_sizes = { 3 }, .input_types = { nir_type_float }, .algebraic_properties = 0 }, { .name = "fnoise4_4", .num_inputs = 1, .output_size = 4, .output_type = nir_type_float, .input_sizes = { 4 }, .input_types = { nir_type_float }, .algebraic_properties = 0 }, { .name = "fnot", .num_inputs = 1, .output_size = 0, .output_type = nir_type_float, .input_sizes = { 0 }, .input_types = { nir_type_float }, .algebraic_properties = 0 }, { .name = "for", .num_inputs = 2, .output_size = 0, .output_type = nir_type_float32, .input_sizes = { 0, 0 }, .input_types = { nir_type_float32, nir_type_float32 }, .algebraic_properties = NIR_OP_IS_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 }, .algebraic_properties = 0 }, { .name = "fquantize2f16", .num_inputs = 1, .output_size = 0, .output_type = nir_type_float, .input_sizes = { 0 }, .input_types = { nir_type_float }, .algebraic_properties = 0 }, { .name = "frcp", .num_inputs = 1, .output_size = 0, .output_type = nir_type_float, .input_sizes = { 0 }, .input_types = { nir_type_float }, .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 }, .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 }, .algebraic_properties = 0 }, { .name = "frsq", .num_inputs = 1, .output_size = 0, .output_type = nir_type_float, .input_sizes = { 0 }, .input_types = { nir_type_float }, .algebraic_properties = 0 }, { .name = "fsat", .num_inputs = 1, .output_size = 0, .output_type = nir_type_float, .input_sizes = { 0 }, .input_types = { nir_type_float }, .algebraic_properties = 0 }, { .name = "fsign", .num_inputs = 1, .output_size = 0, .output_type = nir_type_float, .input_sizes = { 0 }, .input_types = { nir_type_float }, .algebraic_properties = 0 }, { .name = "fsin", .num_inputs = 1, .output_size = 0, .output_type = nir_type_float, .input_sizes = { 0 }, .input_types = { nir_type_float }, .algebraic_properties = 0 }, { .name = "fsqrt", .num_inputs = 1, .output_size = 0, .output_type = nir_type_float, .input_sizes = { 0 }, .input_types = { nir_type_float }, .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 }, .algebraic_properties = 0 }, { .name = "ftrunc", .num_inputs = 1, .output_size = 0, .output_type = nir_type_float, .input_sizes = { 0 }, .input_types = { nir_type_float }, .algebraic_properties = 0 }, { .name = "fxor", .num_inputs = 2, .output_size = 0, .output_type = nir_type_float32, .input_sizes = { 0, 0 }, .input_types = { nir_type_float32, nir_type_float32 }, .algebraic_properties = NIR_OP_IS_COMMUTATIVE }, { .name = "i2b", .num_inputs = 1, .output_size = 0, .output_type = nir_type_bool32, .input_sizes = { 0 }, .input_types = { nir_type_int32 }, .algebraic_properties = 0 }, { .name = "i2d", .num_inputs = 1, .output_size = 0, .output_type = nir_type_float64, .input_sizes = { 0 }, .input_types = { nir_type_int32 }, .algebraic_properties = 0 }, { .name = "i2f", .num_inputs = 1, .output_size = 0, .output_type = nir_type_float32, .input_sizes = { 0 }, .input_types = { nir_type_int32 }, .algebraic_properties = 0 }, { .name = "iabs", .num_inputs = 1, .output_size = 0, .output_type = nir_type_int, .input_sizes = { 0 }, .input_types = { nir_type_int }, .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 }, .algebraic_properties = NIR_OP_IS_COMMUTATIVE | NIR_OP_IS_ASSOCIATIVE }, { .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 }, .algebraic_properties = NIR_OP_IS_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_int32, nir_type_int32 }, .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 }, .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 }, .algebraic_properties = 0 }, { .name = "ieq", .num_inputs = 2, .output_size = 0, .output_type = nir_type_bool32, .input_sizes = { 0, 0 }, .input_types = { nir_type_int, nir_type_int }, .algebraic_properties = NIR_OP_IS_COMMUTATIVE }, { .name = "ifind_msb", .num_inputs = 1, .output_size = 0, .output_type = nir_type_int32, .input_sizes = { 0 }, .input_types = { nir_type_int32 }, .algebraic_properties = 0 }, { .name = "ige", .num_inputs = 2, .output_size = 0, .output_type = nir_type_bool32, .input_sizes = { 0, 0 }, .input_types = { nir_type_int, nir_type_int }, .algebraic_properties = 0 }, { .name = "ilt", .num_inputs = 2, .output_size = 0, .output_type = nir_type_bool32, .input_sizes = { 0, 0 }, .input_types = { nir_type_int, nir_type_int }, .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 }, .algebraic_properties = NIR_OP_IS_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 }, .algebraic_properties = NIR_OP_IS_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 }, .algebraic_properties = 0 }, { .name = "imov", .num_inputs = 1, .output_size = 0, .output_type = nir_type_int, .input_sizes = { 0 }, .input_types = { nir_type_int }, .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 }, .algebraic_properties = NIR_OP_IS_COMMUTATIVE | NIR_OP_IS_ASSOCIATIVE }, { .name = "imul_high", .num_inputs = 2, .output_size = 0, .output_type = nir_type_int32, .input_sizes = { 0, 0 }, .input_types = { nir_type_int32, nir_type_int32 }, .algebraic_properties = NIR_OP_IS_COMMUTATIVE }, { .name = "ine", .num_inputs = 2, .output_size = 0, .output_type = nir_type_bool32, .input_sizes = { 0, 0 }, .input_types = { nir_type_int, nir_type_int }, .algebraic_properties = NIR_OP_IS_COMMUTATIVE }, { .name = "ineg", .num_inputs = 1, .output_size = 0, .output_type = nir_type_int, .input_sizes = { 0 }, .input_types = { nir_type_int }, .algebraic_properties = 0 }, { .name = "inot", .num_inputs = 1, .output_size = 0, .output_type = nir_type_int, .input_sizes = { 0 }, .input_types = { nir_type_int }, .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 }, .algebraic_properties = NIR_OP_IS_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 }, .algebraic_properties = 0 }, { .name = "ishl", .num_inputs = 2, .output_size = 0, .output_type = nir_type_int, .input_sizes = { 0, 0 }, .input_types = { nir_type_int, nir_type_int }, .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_int }, .algebraic_properties = 0 }, { .name = "isign", .num_inputs = 1, .output_size = 0, .output_type = nir_type_int, .input_sizes = { 0 }, .input_types = { nir_type_int }, .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 }, .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 }, .algebraic_properties = NIR_OP_IS_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 }, .algebraic_properties = 0 }, { .name = "pack_double_2x32", .num_inputs = 1, .output_size = 1, .output_type = nir_type_uint64, .input_sizes = { 2 }, .input_types = { nir_type_uint32 }, .algebraic_properties = 0 }, { .name = "pack_double_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 }, .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 }, .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 }, .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 }, .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 }, .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 }, .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 }, .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 }, .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 }, .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 }, .algebraic_properties = NIR_OP_IS_COMMUTATIVE }, { .name = "sge", .num_inputs = 2, .output_size = 0, .output_type = nir_type_float32, .input_sizes = { 0, 0 }, .input_types = { nir_type_float32, nir_type_float32 }, .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 }, .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 }, .algebraic_properties = NIR_OP_IS_COMMUTATIVE }, { .name = "u2d", .num_inputs = 1, .output_size = 0, .output_type = nir_type_float64, .input_sizes = { 0 }, .input_types = { nir_type_uint32 }, .algebraic_properties = 0 }, { .name = "u2f", .num_inputs = 1, .output_size = 0, .output_type = nir_type_float32, .input_sizes = { 0 }, .input_types = { nir_type_uint32 }, .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 }, .algebraic_properties = NIR_OP_IS_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_int32, nir_type_int32 }, .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 }, .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 }, .algebraic_properties = 0 }, { .name = "ufind_msb", .num_inputs = 1, .output_size = 0, .output_type = nir_type_int32, .input_sizes = { 0 }, .input_types = { nir_type_uint32 }, .algebraic_properties = 0 }, { .name = "uge", .num_inputs = 2, .output_size = 0, .output_type = nir_type_bool32, .input_sizes = { 0, 0 }, .input_types = { nir_type_uint, nir_type_uint }, .algebraic_properties = 0 }, { .name = "ult", .num_inputs = 2, .output_size = 0, .output_type = nir_type_bool32, .input_sizes = { 0, 0 }, .input_types = { nir_type_uint, nir_type_uint }, .algebraic_properties = 0 }, { .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 }, .algebraic_properties = NIR_OP_IS_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 }, .algebraic_properties = NIR_OP_IS_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 }, .algebraic_properties = NIR_OP_IS_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 }, .algebraic_properties = NIR_OP_IS_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 }, .algebraic_properties = 0 }, { .name = "umul_high", .num_inputs = 2, .output_size = 0, .output_type = nir_type_uint32, .input_sizes = { 0, 0 }, .input_types = { nir_type_uint32, nir_type_uint32 }, .algebraic_properties = NIR_OP_IS_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 }, .algebraic_properties = NIR_OP_IS_COMMUTATIVE | NIR_OP_IS_ASSOCIATIVE }, { .name = "unpack_double_2x32", .num_inputs = 1, .output_size = 2, .output_type = nir_type_uint32, .input_sizes = { 1 }, .input_types = { nir_type_uint64 }, .algebraic_properties = 0 }, { .name = "unpack_double_2x32_split_x", .num_inputs = 1, .output_size = 0, .output_type = nir_type_uint32, .input_sizes = { 0 }, .input_types = { nir_type_uint64 }, .algebraic_properties = 0 }, { .name = "unpack_double_2x32_split_y", .num_inputs = 1, .output_size = 0, .output_type = nir_type_uint32, .input_sizes = { 0 }, .input_types = { nir_type_uint64 }, .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 }, .algebraic_properties = 0 }, { .name = "unpack_half_2x16_split_x", .num_inputs = 1, .output_size = 1, .output_type = nir_type_float32, .input_sizes = { 1 }, .input_types = { nir_type_uint32 }, .algebraic_properties = 0 }, { .name = "unpack_half_2x16_split_y", .num_inputs = 1, .output_size = 1, .output_type = nir_type_float32, .input_sizes = { 1 }, .input_types = { nir_type_uint32 }, .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 }, .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 }, .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 }, .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 }, .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 }, .algebraic_properties = NIR_OP_IS_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_uint }, .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 }, .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 }, .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 }, .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 }, .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 }, .algebraic_properties = 0 }, };