nir_opcodes.h revision 10e230b6
110e230b6Smaya/* Copyright (C) 2014 Connor Abbott 210e230b6Smaya * 310e230b6Smaya * Permission is hereby granted, free of charge, to any person obtaining a 410e230b6Smaya * copy of this software and associated documentation files (the "Software"), 510e230b6Smaya * to deal in the Software without restriction, including without limitation 610e230b6Smaya * the rights to use, copy, modify, merge, publish, distribute, sublicense, 710e230b6Smaya * and/or sell copies of the Software, and to permit persons to whom the 810e230b6Smaya * Software is furnished to do so, subject to the following conditions: 910e230b6Smaya * 1010e230b6Smaya * The above copyright notice and this permission notice (including the next 1110e230b6Smaya * paragraph) shall be included in all copies or substantial portions of the 1210e230b6Smaya * Software. 1310e230b6Smaya * 1410e230b6Smaya * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 1510e230b6Smaya * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 1610e230b6Smaya * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 1710e230b6Smaya * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 1810e230b6Smaya * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 1910e230b6Smaya * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS 2010e230b6Smaya * IN THE SOFTWARE. 2110e230b6Smaya * 2210e230b6Smaya * Authors: 2310e230b6Smaya * Connor Abbott (cwabbott0@gmail.com) 2410e230b6Smaya */ 2510e230b6Smaya 2610e230b6Smaya#ifndef _NIR_OPCODES_ 2710e230b6Smaya#define _NIR_OPCODES_ 2810e230b6Smaya 2910e230b6Smaya 3010e230b6Smaya 3110e230b6Smayatypedef enum { 3210e230b6Smaya nir_op_b2f16, 3310e230b6Smaya nir_op_b2f32, 3410e230b6Smaya nir_op_b2f64, 3510e230b6Smaya nir_op_b2i1, 3610e230b6Smaya nir_op_b2i16, 3710e230b6Smaya nir_op_b2i32, 3810e230b6Smaya nir_op_b2i64, 3910e230b6Smaya nir_op_b2i8, 4010e230b6Smaya nir_op_b32all_fequal2, 4110e230b6Smaya nir_op_b32all_fequal3, 4210e230b6Smaya nir_op_b32all_fequal4, 4310e230b6Smaya nir_op_b32all_iequal2, 4410e230b6Smaya nir_op_b32all_iequal3, 4510e230b6Smaya nir_op_b32all_iequal4, 4610e230b6Smaya nir_op_b32any_fnequal2, 4710e230b6Smaya nir_op_b32any_fnequal3, 4810e230b6Smaya nir_op_b32any_fnequal4, 4910e230b6Smaya nir_op_b32any_inequal2, 5010e230b6Smaya nir_op_b32any_inequal3, 5110e230b6Smaya nir_op_b32any_inequal4, 5210e230b6Smaya nir_op_b32csel, 5310e230b6Smaya nir_op_ball_fequal2, 5410e230b6Smaya nir_op_ball_fequal3, 5510e230b6Smaya nir_op_ball_fequal4, 5610e230b6Smaya nir_op_ball_iequal2, 5710e230b6Smaya nir_op_ball_iequal3, 5810e230b6Smaya nir_op_ball_iequal4, 5910e230b6Smaya nir_op_bany_fnequal2, 6010e230b6Smaya nir_op_bany_fnequal3, 6110e230b6Smaya nir_op_bany_fnequal4, 6210e230b6Smaya nir_op_bany_inequal2, 6310e230b6Smaya nir_op_bany_inequal3, 6410e230b6Smaya nir_op_bany_inequal4, 6510e230b6Smaya nir_op_bcsel, 6610e230b6Smaya nir_op_bfi, 6710e230b6Smaya nir_op_bfm, 6810e230b6Smaya nir_op_bit_count, 6910e230b6Smaya nir_op_bitfield_insert, 7010e230b6Smaya nir_op_bitfield_reverse, 7110e230b6Smaya nir_op_cube_face_coord, 7210e230b6Smaya nir_op_cube_face_index, 7310e230b6Smaya nir_op_extract_i16, 7410e230b6Smaya nir_op_extract_i8, 7510e230b6Smaya nir_op_extract_u16, 7610e230b6Smaya nir_op_extract_u8, 7710e230b6Smaya nir_op_f2b1, 7810e230b6Smaya nir_op_f2b32, 7910e230b6Smaya nir_op_f2f16, 8010e230b6Smaya nir_op_f2f16_rtne, 8110e230b6Smaya nir_op_f2f16_rtz, 8210e230b6Smaya nir_op_f2f32, 8310e230b6Smaya nir_op_f2f64, 8410e230b6Smaya nir_op_f2i1, 8510e230b6Smaya nir_op_f2i16, 8610e230b6Smaya nir_op_f2i32, 8710e230b6Smaya nir_op_f2i64, 8810e230b6Smaya nir_op_f2i8, 8910e230b6Smaya nir_op_f2u1, 9010e230b6Smaya nir_op_f2u16, 9110e230b6Smaya nir_op_f2u32, 9210e230b6Smaya nir_op_f2u64, 9310e230b6Smaya nir_op_f2u8, 9410e230b6Smaya nir_op_fabs, 9510e230b6Smaya nir_op_fadd, 9610e230b6Smaya nir_op_fall_equal2, 9710e230b6Smaya nir_op_fall_equal3, 9810e230b6Smaya nir_op_fall_equal4, 9910e230b6Smaya nir_op_fand, 10010e230b6Smaya nir_op_fany_nequal2, 10110e230b6Smaya nir_op_fany_nequal3, 10210e230b6Smaya nir_op_fany_nequal4, 10310e230b6Smaya nir_op_fceil, 10410e230b6Smaya nir_op_fcos, 10510e230b6Smaya nir_op_fcsel, 10610e230b6Smaya nir_op_fddx, 10710e230b6Smaya nir_op_fddx_coarse, 10810e230b6Smaya nir_op_fddx_fine, 10910e230b6Smaya nir_op_fddy, 11010e230b6Smaya nir_op_fddy_coarse, 11110e230b6Smaya nir_op_fddy_fine, 11210e230b6Smaya nir_op_fdiv, 11310e230b6Smaya nir_op_fdot2, 11410e230b6Smaya nir_op_fdot3, 11510e230b6Smaya nir_op_fdot4, 11610e230b6Smaya nir_op_fdot_replicated2, 11710e230b6Smaya nir_op_fdot_replicated3, 11810e230b6Smaya nir_op_fdot_replicated4, 11910e230b6Smaya nir_op_fdph, 12010e230b6Smaya nir_op_fdph_replicated, 12110e230b6Smaya nir_op_feq, 12210e230b6Smaya nir_op_feq32, 12310e230b6Smaya nir_op_fexp2, 12410e230b6Smaya nir_op_ffloor, 12510e230b6Smaya nir_op_ffma, 12610e230b6Smaya nir_op_ffract, 12710e230b6Smaya nir_op_fge, 12810e230b6Smaya nir_op_fge32, 12910e230b6Smaya nir_op_find_lsb, 13010e230b6Smaya nir_op_flog2, 13110e230b6Smaya nir_op_flrp, 13210e230b6Smaya nir_op_flt, 13310e230b6Smaya nir_op_flt32, 13410e230b6Smaya nir_op_fmax, 13510e230b6Smaya nir_op_fmax3, 13610e230b6Smaya nir_op_fmed3, 13710e230b6Smaya nir_op_fmin, 13810e230b6Smaya nir_op_fmin3, 13910e230b6Smaya nir_op_fmod, 14010e230b6Smaya nir_op_fmov, 14110e230b6Smaya nir_op_fmul, 14210e230b6Smaya nir_op_fne, 14310e230b6Smaya nir_op_fne32, 14410e230b6Smaya nir_op_fneg, 14510e230b6Smaya nir_op_fnoise1_1, 14610e230b6Smaya nir_op_fnoise1_2, 14710e230b6Smaya nir_op_fnoise1_3, 14810e230b6Smaya nir_op_fnoise1_4, 14910e230b6Smaya nir_op_fnoise2_1, 15010e230b6Smaya nir_op_fnoise2_2, 15110e230b6Smaya nir_op_fnoise2_3, 15210e230b6Smaya nir_op_fnoise2_4, 15310e230b6Smaya nir_op_fnoise3_1, 15410e230b6Smaya nir_op_fnoise3_2, 15510e230b6Smaya nir_op_fnoise3_3, 15610e230b6Smaya nir_op_fnoise3_4, 15710e230b6Smaya nir_op_fnoise4_1, 15810e230b6Smaya nir_op_fnoise4_2, 15910e230b6Smaya nir_op_fnoise4_3, 16010e230b6Smaya nir_op_fnoise4_4, 16110e230b6Smaya nir_op_fnot, 16210e230b6Smaya nir_op_for, 16310e230b6Smaya nir_op_fpow, 16410e230b6Smaya nir_op_fquantize2f16, 16510e230b6Smaya nir_op_frcp, 16610e230b6Smaya nir_op_frem, 16710e230b6Smaya nir_op_frexp_exp, 16810e230b6Smaya nir_op_frexp_sig, 16910e230b6Smaya nir_op_fround_even, 17010e230b6Smaya nir_op_frsq, 17110e230b6Smaya nir_op_fsat, 17210e230b6Smaya nir_op_fsign, 17310e230b6Smaya nir_op_fsin, 17410e230b6Smaya nir_op_fsqrt, 17510e230b6Smaya nir_op_fsub, 17610e230b6Smaya nir_op_ftrunc, 17710e230b6Smaya nir_op_fxor, 17810e230b6Smaya nir_op_i2b1, 17910e230b6Smaya nir_op_i2b32, 18010e230b6Smaya nir_op_i2f16, 18110e230b6Smaya nir_op_i2f32, 18210e230b6Smaya nir_op_i2f64, 18310e230b6Smaya nir_op_i2i1, 18410e230b6Smaya nir_op_i2i16, 18510e230b6Smaya nir_op_i2i32, 18610e230b6Smaya nir_op_i2i64, 18710e230b6Smaya nir_op_i2i8, 18810e230b6Smaya nir_op_iabs, 18910e230b6Smaya nir_op_iadd, 19010e230b6Smaya nir_op_iadd_sat, 19110e230b6Smaya nir_op_iand, 19210e230b6Smaya nir_op_ibfe, 19310e230b6Smaya nir_op_ibitfield_extract, 19410e230b6Smaya nir_op_idiv, 19510e230b6Smaya nir_op_ieq, 19610e230b6Smaya nir_op_ieq32, 19710e230b6Smaya nir_op_ifind_msb, 19810e230b6Smaya nir_op_ige, 19910e230b6Smaya nir_op_ige32, 20010e230b6Smaya nir_op_ihadd, 20110e230b6Smaya nir_op_ilt, 20210e230b6Smaya nir_op_ilt32, 20310e230b6Smaya nir_op_imax, 20410e230b6Smaya nir_op_imax3, 20510e230b6Smaya nir_op_imed3, 20610e230b6Smaya nir_op_imin, 20710e230b6Smaya nir_op_imin3, 20810e230b6Smaya nir_op_imod, 20910e230b6Smaya nir_op_imov, 21010e230b6Smaya nir_op_imul, 21110e230b6Smaya nir_op_imul_2x32_64, 21210e230b6Smaya nir_op_imul_high, 21310e230b6Smaya nir_op_ine, 21410e230b6Smaya nir_op_ine32, 21510e230b6Smaya nir_op_ineg, 21610e230b6Smaya nir_op_inot, 21710e230b6Smaya nir_op_ior, 21810e230b6Smaya nir_op_irem, 21910e230b6Smaya nir_op_irhadd, 22010e230b6Smaya nir_op_ishl, 22110e230b6Smaya nir_op_ishr, 22210e230b6Smaya nir_op_isign, 22310e230b6Smaya nir_op_isub, 22410e230b6Smaya nir_op_isub_sat, 22510e230b6Smaya nir_op_ixor, 22610e230b6Smaya nir_op_ldexp, 22710e230b6Smaya nir_op_pack_32_2x16, 22810e230b6Smaya nir_op_pack_32_2x16_split, 22910e230b6Smaya nir_op_pack_64_2x32, 23010e230b6Smaya nir_op_pack_64_2x32_split, 23110e230b6Smaya nir_op_pack_64_4x16, 23210e230b6Smaya nir_op_pack_half_2x16, 23310e230b6Smaya nir_op_pack_half_2x16_split, 23410e230b6Smaya nir_op_pack_snorm_2x16, 23510e230b6Smaya nir_op_pack_snorm_4x8, 23610e230b6Smaya nir_op_pack_unorm_2x16, 23710e230b6Smaya nir_op_pack_unorm_4x8, 23810e230b6Smaya nir_op_pack_uvec2_to_uint, 23910e230b6Smaya nir_op_pack_uvec4_to_uint, 24010e230b6Smaya nir_op_seq, 24110e230b6Smaya nir_op_sge, 24210e230b6Smaya nir_op_slt, 24310e230b6Smaya nir_op_sne, 24410e230b6Smaya nir_op_u2f16, 24510e230b6Smaya nir_op_u2f32, 24610e230b6Smaya nir_op_u2f64, 24710e230b6Smaya nir_op_u2u1, 24810e230b6Smaya nir_op_u2u16, 24910e230b6Smaya nir_op_u2u32, 25010e230b6Smaya nir_op_u2u64, 25110e230b6Smaya nir_op_u2u8, 25210e230b6Smaya nir_op_uadd_carry, 25310e230b6Smaya nir_op_uadd_sat, 25410e230b6Smaya nir_op_ubfe, 25510e230b6Smaya nir_op_ubitfield_extract, 25610e230b6Smaya nir_op_udiv, 25710e230b6Smaya nir_op_ufind_msb, 25810e230b6Smaya nir_op_uge, 25910e230b6Smaya nir_op_uge32, 26010e230b6Smaya nir_op_uhadd, 26110e230b6Smaya nir_op_ult, 26210e230b6Smaya nir_op_ult32, 26310e230b6Smaya nir_op_umax, 26410e230b6Smaya nir_op_umax3, 26510e230b6Smaya nir_op_umax_4x8, 26610e230b6Smaya nir_op_umed3, 26710e230b6Smaya nir_op_umin, 26810e230b6Smaya nir_op_umin3, 26910e230b6Smaya nir_op_umin_4x8, 27010e230b6Smaya nir_op_umod, 27110e230b6Smaya nir_op_umul_2x32_64, 27210e230b6Smaya nir_op_umul_high, 27310e230b6Smaya nir_op_umul_unorm_4x8, 27410e230b6Smaya nir_op_unpack_32_2x16, 27510e230b6Smaya nir_op_unpack_32_2x16_split_x, 27610e230b6Smaya nir_op_unpack_32_2x16_split_y, 27710e230b6Smaya nir_op_unpack_64_2x32, 27810e230b6Smaya nir_op_unpack_64_2x32_split_x, 27910e230b6Smaya nir_op_unpack_64_2x32_split_y, 28010e230b6Smaya nir_op_unpack_64_4x16, 28110e230b6Smaya nir_op_unpack_half_2x16, 28210e230b6Smaya nir_op_unpack_half_2x16_split_x, 28310e230b6Smaya nir_op_unpack_half_2x16_split_y, 28410e230b6Smaya nir_op_unpack_snorm_2x16, 28510e230b6Smaya nir_op_unpack_snorm_4x8, 28610e230b6Smaya nir_op_unpack_unorm_2x16, 28710e230b6Smaya nir_op_unpack_unorm_4x8, 28810e230b6Smaya nir_op_urhadd, 28910e230b6Smaya nir_op_usadd_4x8, 29010e230b6Smaya nir_op_ushr, 29110e230b6Smaya nir_op_ussub_4x8, 29210e230b6Smaya nir_op_usub_borrow, 29310e230b6Smaya nir_op_usub_sat, 29410e230b6Smaya nir_op_vec2, 29510e230b6Smaya nir_op_vec3, 29610e230b6Smaya nir_op_vec4, 29710e230b6Smaya nir_last_opcode = nir_op_vec4, 29810e230b6Smaya nir_num_opcodes = nir_last_opcode + 1 29910e230b6Smaya} nir_op; 30010e230b6Smaya 30110e230b6Smaya#endif /* _NIR_OPCODES_ */ 302