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@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