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_extract_i16, 53 nir_op_extract_i8, 54 nir_op_extract_u16, 55 nir_op_extract_u8, 56 nir_op_f2b, 57 nir_op_f2f16_rtne, 58 nir_op_f2f16_rtz, 59 nir_op_f2f16_undef, 60 nir_op_f2f32, 61 nir_op_f2f64, 62 nir_op_f2i16, 63 nir_op_f2i32, 64 nir_op_f2i64, 65 nir_op_f2i8, 66 nir_op_f2u16, 67 nir_op_f2u32, 68 nir_op_f2u64, 69 nir_op_f2u8, 70 nir_op_fabs, 71 nir_op_fadd, 72 nir_op_fall_equal2, 73 nir_op_fall_equal3, 74 nir_op_fall_equal4, 75 nir_op_fand, 76 nir_op_fany_nequal2, 77 nir_op_fany_nequal3, 78 nir_op_fany_nequal4, 79 nir_op_fceil, 80 nir_op_fcos, 81 nir_op_fcsel, 82 nir_op_fddx, 83 nir_op_fddx_coarse, 84 nir_op_fddx_fine, 85 nir_op_fddy, 86 nir_op_fddy_coarse, 87 nir_op_fddy_fine, 88 nir_op_fdiv, 89 nir_op_fdot2, 90 nir_op_fdot3, 91 nir_op_fdot4, 92 nir_op_fdot_replicated2, 93 nir_op_fdot_replicated3, 94 nir_op_fdot_replicated4, 95 nir_op_fdph, 96 nir_op_fdph_replicated, 97 nir_op_feq, 98 nir_op_fexp2, 99 nir_op_ffloor, 100 nir_op_ffma, 101 nir_op_ffract, 102 nir_op_fge, 103 nir_op_find_lsb, 104 nir_op_flog2, 105 nir_op_flrp, 106 nir_op_flt, 107 nir_op_fmax, 108 nir_op_fmin, 109 nir_op_fmod, 110 nir_op_fmov, 111 nir_op_fmul, 112 nir_op_fne, 113 nir_op_fneg, 114 nir_op_fnoise1_1, 115 nir_op_fnoise1_2, 116 nir_op_fnoise1_3, 117 nir_op_fnoise1_4, 118 nir_op_fnoise2_1, 119 nir_op_fnoise2_2, 120 nir_op_fnoise2_3, 121 nir_op_fnoise2_4, 122 nir_op_fnoise3_1, 123 nir_op_fnoise3_2, 124 nir_op_fnoise3_3, 125 nir_op_fnoise3_4, 126 nir_op_fnoise4_1, 127 nir_op_fnoise4_2, 128 nir_op_fnoise4_3, 129 nir_op_fnoise4_4, 130 nir_op_fnot, 131 nir_op_for, 132 nir_op_fpow, 133 nir_op_fquantize2f16, 134 nir_op_frcp, 135 nir_op_frem, 136 nir_op_fround_even, 137 nir_op_frsq, 138 nir_op_fsat, 139 nir_op_fsign, 140 nir_op_fsin, 141 nir_op_fsqrt, 142 nir_op_fsub, 143 nir_op_ftrunc, 144 nir_op_fxor, 145 nir_op_i2b, 146 nir_op_i2f16, 147 nir_op_i2f32, 148 nir_op_i2f64, 149 nir_op_i2i16, 150 nir_op_i2i32, 151 nir_op_i2i64, 152 nir_op_i2i8, 153 nir_op_iabs, 154 nir_op_iadd, 155 nir_op_iand, 156 nir_op_ibfe, 157 nir_op_ibitfield_extract, 158 nir_op_idiv, 159 nir_op_ieq, 160 nir_op_ifind_msb, 161 nir_op_ige, 162 nir_op_ilt, 163 nir_op_imax, 164 nir_op_imin, 165 nir_op_imod, 166 nir_op_imov, 167 nir_op_imul, 168 nir_op_imul_high, 169 nir_op_ine, 170 nir_op_ineg, 171 nir_op_inot, 172 nir_op_ior, 173 nir_op_irem, 174 nir_op_ishl, 175 nir_op_ishr, 176 nir_op_isign, 177 nir_op_isub, 178 nir_op_ixor, 179 nir_op_ldexp, 180 nir_op_pack_64_2x32, 181 nir_op_pack_64_2x32_split, 182 nir_op_pack_half_2x16, 183 nir_op_pack_half_2x16_split, 184 nir_op_pack_snorm_2x16, 185 nir_op_pack_snorm_4x8, 186 nir_op_pack_unorm_2x16, 187 nir_op_pack_unorm_4x8, 188 nir_op_pack_uvec2_to_uint, 189 nir_op_pack_uvec4_to_uint, 190 nir_op_seq, 191 nir_op_sge, 192 nir_op_slt, 193 nir_op_sne, 194 nir_op_u2f16, 195 nir_op_u2f32, 196 nir_op_u2f64, 197 nir_op_u2u16, 198 nir_op_u2u32, 199 nir_op_u2u64, 200 nir_op_u2u8, 201 nir_op_uadd_carry, 202 nir_op_ubfe, 203 nir_op_ubitfield_extract, 204 nir_op_udiv, 205 nir_op_ufind_msb, 206 nir_op_uge, 207 nir_op_ult, 208 nir_op_umax, 209 nir_op_umax_4x8, 210 nir_op_umin, 211 nir_op_umin_4x8, 212 nir_op_umod, 213 nir_op_umul_high, 214 nir_op_umul_unorm_4x8, 215 nir_op_unpack_64_2x32, 216 nir_op_unpack_64_2x32_split_x, 217 nir_op_unpack_64_2x32_split_y, 218 nir_op_unpack_half_2x16, 219 nir_op_unpack_half_2x16_split_x, 220 nir_op_unpack_half_2x16_split_y, 221 nir_op_unpack_snorm_2x16, 222 nir_op_unpack_snorm_4x8, 223 nir_op_unpack_unorm_2x16, 224 nir_op_unpack_unorm_4x8, 225 nir_op_usadd_4x8, 226 nir_op_ushr, 227 nir_op_ussub_4x8, 228 nir_op_usub_borrow, 229 nir_op_vec2, 230 nir_op_vec3, 231 nir_op_vec4, 232 nir_last_opcode = nir_op_vec4, 233 nir_num_opcodes = nir_last_opcode + 1 234 } nir_op; 235 236 #endif /* _NIR_OPCODES_ */ 237