Home | History | Annotate | Download | only in nir
      1 /* Copyright (C) 2014 Connor Abbott
      2  *
      3  * Permission is hereby granted, free of charge, to any person obtaining a
      4  * copy of this software and associated documentation files (the "Software"),
      5  * to deal in the Software without restriction, including without limitation
      6  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
      7  * and/or sell copies of the Software, and to permit persons to whom the
      8  * Software is furnished to do so, subject to the following conditions:
      9  *
     10  * The above copyright notice and this permission notice (including the next
     11  * paragraph) shall be included in all copies or substantial portions of the
     12  * Software.
     13  *
     14  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
     15  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
     16  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
     17  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
     18  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
     19  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
     20  * IN THE SOFTWARE.
     21  *
     22  * Authors:
     23  *    Connor Abbott (cwabbott0 (at) gmail.com)
     24  */
     25 
     26 #ifndef _NIR_OPCODES_
     27 #define _NIR_OPCODES_
     28 
     29 
     30 
     31 typedef enum {
     32    nir_op_b2f,
     33    nir_op_b2i,
     34    nir_op_ball_fequal2,
     35    nir_op_ball_fequal3,
     36    nir_op_ball_fequal4,
     37    nir_op_ball_iequal2,
     38    nir_op_ball_iequal3,
     39    nir_op_ball_iequal4,
     40    nir_op_bany_fnequal2,
     41    nir_op_bany_fnequal3,
     42    nir_op_bany_fnequal4,
     43    nir_op_bany_inequal2,
     44    nir_op_bany_inequal3,
     45    nir_op_bany_inequal4,
     46    nir_op_bcsel,
     47    nir_op_bfi,
     48    nir_op_bfm,
     49    nir_op_bit_count,
     50    nir_op_bitfield_insert,
     51    nir_op_bitfield_reverse,
     52    nir_op_d2b,
     53    nir_op_d2f,
     54    nir_op_d2i,
     55    nir_op_d2u,
     56    nir_op_extract_i16,
     57    nir_op_extract_i8,
     58    nir_op_extract_u16,
     59    nir_op_extract_u8,
     60    nir_op_f2b,
     61    nir_op_f2d,
     62    nir_op_f2i,
     63    nir_op_f2u,
     64    nir_op_fabs,
     65    nir_op_fadd,
     66    nir_op_fall_equal2,
     67    nir_op_fall_equal3,
     68    nir_op_fall_equal4,
     69    nir_op_fand,
     70    nir_op_fany_nequal2,
     71    nir_op_fany_nequal3,
     72    nir_op_fany_nequal4,
     73    nir_op_fceil,
     74    nir_op_fcos,
     75    nir_op_fcsel,
     76    nir_op_fddx,
     77    nir_op_fddx_coarse,
     78    nir_op_fddx_fine,
     79    nir_op_fddy,
     80    nir_op_fddy_coarse,
     81    nir_op_fddy_fine,
     82    nir_op_fdiv,
     83    nir_op_fdot2,
     84    nir_op_fdot3,
     85    nir_op_fdot4,
     86    nir_op_fdot_replicated2,
     87    nir_op_fdot_replicated3,
     88    nir_op_fdot_replicated4,
     89    nir_op_fdph,
     90    nir_op_fdph_replicated,
     91    nir_op_feq,
     92    nir_op_fexp2,
     93    nir_op_ffloor,
     94    nir_op_ffma,
     95    nir_op_ffract,
     96    nir_op_fge,
     97    nir_op_find_lsb,
     98    nir_op_flog2,
     99    nir_op_flrp,
    100    nir_op_flt,
    101    nir_op_fmax,
    102    nir_op_fmin,
    103    nir_op_fmod,
    104    nir_op_fmov,
    105    nir_op_fmul,
    106    nir_op_fne,
    107    nir_op_fneg,
    108    nir_op_fnoise1_1,
    109    nir_op_fnoise1_2,
    110    nir_op_fnoise1_3,
    111    nir_op_fnoise1_4,
    112    nir_op_fnoise2_1,
    113    nir_op_fnoise2_2,
    114    nir_op_fnoise2_3,
    115    nir_op_fnoise2_4,
    116    nir_op_fnoise3_1,
    117    nir_op_fnoise3_2,
    118    nir_op_fnoise3_3,
    119    nir_op_fnoise3_4,
    120    nir_op_fnoise4_1,
    121    nir_op_fnoise4_2,
    122    nir_op_fnoise4_3,
    123    nir_op_fnoise4_4,
    124    nir_op_fnot,
    125    nir_op_for,
    126    nir_op_fpow,
    127    nir_op_fquantize2f16,
    128    nir_op_frcp,
    129    nir_op_frem,
    130    nir_op_fround_even,
    131    nir_op_frsq,
    132    nir_op_fsat,
    133    nir_op_fsign,
    134    nir_op_fsin,
    135    nir_op_fsqrt,
    136    nir_op_fsub,
    137    nir_op_ftrunc,
    138    nir_op_fxor,
    139    nir_op_i2b,
    140    nir_op_i2d,
    141    nir_op_i2f,
    142    nir_op_iabs,
    143    nir_op_iadd,
    144    nir_op_iand,
    145    nir_op_ibfe,
    146    nir_op_ibitfield_extract,
    147    nir_op_idiv,
    148    nir_op_ieq,
    149    nir_op_ifind_msb,
    150    nir_op_ige,
    151    nir_op_ilt,
    152    nir_op_imax,
    153    nir_op_imin,
    154    nir_op_imod,
    155    nir_op_imov,
    156    nir_op_imul,
    157    nir_op_imul_high,
    158    nir_op_ine,
    159    nir_op_ineg,
    160    nir_op_inot,
    161    nir_op_ior,
    162    nir_op_irem,
    163    nir_op_ishl,
    164    nir_op_ishr,
    165    nir_op_isign,
    166    nir_op_isub,
    167    nir_op_ixor,
    168    nir_op_ldexp,
    169    nir_op_pack_double_2x32,
    170    nir_op_pack_double_2x32_split,
    171    nir_op_pack_half_2x16,
    172    nir_op_pack_half_2x16_split,
    173    nir_op_pack_snorm_2x16,
    174    nir_op_pack_snorm_4x8,
    175    nir_op_pack_unorm_2x16,
    176    nir_op_pack_unorm_4x8,
    177    nir_op_pack_uvec2_to_uint,
    178    nir_op_pack_uvec4_to_uint,
    179    nir_op_seq,
    180    nir_op_sge,
    181    nir_op_slt,
    182    nir_op_sne,
    183    nir_op_u2d,
    184    nir_op_u2f,
    185    nir_op_uadd_carry,
    186    nir_op_ubfe,
    187    nir_op_ubitfield_extract,
    188    nir_op_udiv,
    189    nir_op_ufind_msb,
    190    nir_op_uge,
    191    nir_op_ult,
    192    nir_op_umax,
    193    nir_op_umax_4x8,
    194    nir_op_umin,
    195    nir_op_umin_4x8,
    196    nir_op_umod,
    197    nir_op_umul_high,
    198    nir_op_umul_unorm_4x8,
    199    nir_op_unpack_double_2x32,
    200    nir_op_unpack_double_2x32_split_x,
    201    nir_op_unpack_double_2x32_split_y,
    202    nir_op_unpack_half_2x16,
    203    nir_op_unpack_half_2x16_split_x,
    204    nir_op_unpack_half_2x16_split_y,
    205    nir_op_unpack_snorm_2x16,
    206    nir_op_unpack_snorm_4x8,
    207    nir_op_unpack_unorm_2x16,
    208    nir_op_unpack_unorm_4x8,
    209    nir_op_usadd_4x8,
    210    nir_op_ushr,
    211    nir_op_ussub_4x8,
    212    nir_op_usub_borrow,
    213    nir_op_vec2,
    214    nir_op_vec3,
    215    nir_op_vec4,
    216    nir_last_opcode = nir_op_vec4,
    217    nir_num_opcodes = nir_last_opcode + 1
    218 } nir_op;
    219 
    220 #endif /* _NIR_OPCODES_ */
    221