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_amul, 33 nir_op_b16all_fequal16, 34 nir_op_b16all_fequal2, 35 nir_op_b16all_fequal3, 36 nir_op_b16all_fequal4, 37 nir_op_b16all_fequal8, 38 nir_op_b16all_iequal16, 39 nir_op_b16all_iequal2, 40 nir_op_b16all_iequal3, 41 nir_op_b16all_iequal4, 42 nir_op_b16all_iequal8, 43 nir_op_b16any_fnequal16, 44 nir_op_b16any_fnequal2, 45 nir_op_b16any_fnequal3, 46 nir_op_b16any_fnequal4, 47 nir_op_b16any_fnequal8, 48 nir_op_b16any_inequal16, 49 nir_op_b16any_inequal2, 50 nir_op_b16any_inequal3, 51 nir_op_b16any_inequal4, 52 nir_op_b16any_inequal8, 53 nir_op_b16csel, 54 nir_op_b2b1, 55 nir_op_b2b16, 56 nir_op_b2b32, 57 nir_op_b2b8, 58 nir_op_b2f16, 59 nir_op_b2f32, 60 nir_op_b2f64, 61 nir_op_b2i1, 62 nir_op_b2i16, 63 nir_op_b2i32, 64 nir_op_b2i64, 65 nir_op_b2i8, 66 nir_op_b32all_fequal16, 67 nir_op_b32all_fequal2, 68 nir_op_b32all_fequal3, 69 nir_op_b32all_fequal4, 70 nir_op_b32all_fequal8, 71 nir_op_b32all_iequal16, 72 nir_op_b32all_iequal2, 73 nir_op_b32all_iequal3, 74 nir_op_b32all_iequal4, 75 nir_op_b32all_iequal8, 76 nir_op_b32any_fnequal16, 77 nir_op_b32any_fnequal2, 78 nir_op_b32any_fnequal3, 79 nir_op_b32any_fnequal4, 80 nir_op_b32any_fnequal8, 81 nir_op_b32any_inequal16, 82 nir_op_b32any_inequal2, 83 nir_op_b32any_inequal3, 84 nir_op_b32any_inequal4, 85 nir_op_b32any_inequal8, 86 nir_op_b32csel, 87 nir_op_b8all_fequal16, 88 nir_op_b8all_fequal2, 89 nir_op_b8all_fequal3, 90 nir_op_b8all_fequal4, 91 nir_op_b8all_fequal8, 92 nir_op_b8all_iequal16, 93 nir_op_b8all_iequal2, 94 nir_op_b8all_iequal3, 95 nir_op_b8all_iequal4, 96 nir_op_b8all_iequal8, 97 nir_op_b8any_fnequal16, 98 nir_op_b8any_fnequal2, 99 nir_op_b8any_fnequal3, 100 nir_op_b8any_fnequal4, 101 nir_op_b8any_fnequal8, 102 nir_op_b8any_inequal16, 103 nir_op_b8any_inequal2, 104 nir_op_b8any_inequal3, 105 nir_op_b8any_inequal4, 106 nir_op_b8any_inequal8, 107 nir_op_b8csel, 108 nir_op_ball_fequal16, 109 nir_op_ball_fequal2, 110 nir_op_ball_fequal3, 111 nir_op_ball_fequal4, 112 nir_op_ball_fequal8, 113 nir_op_ball_iequal16, 114 nir_op_ball_iequal2, 115 nir_op_ball_iequal3, 116 nir_op_ball_iequal4, 117 nir_op_ball_iequal8, 118 nir_op_bany_fnequal16, 119 nir_op_bany_fnequal2, 120 nir_op_bany_fnequal3, 121 nir_op_bany_fnequal4, 122 nir_op_bany_fnequal8, 123 nir_op_bany_inequal16, 124 nir_op_bany_inequal2, 125 nir_op_bany_inequal3, 126 nir_op_bany_inequal4, 127 nir_op_bany_inequal8, 128 nir_op_bcsel, 129 nir_op_bfi, 130 nir_op_bfm, 131 nir_op_bit_count, 132 nir_op_bitfield_insert, 133 nir_op_bitfield_reverse, 134 nir_op_bitfield_select, 135 nir_op_cube_face_coord, 136 nir_op_cube_face_index, 137 nir_op_extract_i16, 138 nir_op_extract_i8, 139 nir_op_extract_u16, 140 nir_op_extract_u8, 141 nir_op_f2b1, 142 nir_op_f2b16, 143 nir_op_f2b32, 144 nir_op_f2b8, 145 nir_op_f2f16, 146 nir_op_f2f16_rtne, 147 nir_op_f2f16_rtz, 148 nir_op_f2f32, 149 nir_op_f2f64, 150 nir_op_f2fmp, 151 nir_op_f2i1, 152 nir_op_f2i16, 153 nir_op_f2i32, 154 nir_op_f2i64, 155 nir_op_f2i8, 156 nir_op_f2imp, 157 nir_op_f2u1, 158 nir_op_f2u16, 159 nir_op_f2u32, 160 nir_op_f2u64, 161 nir_op_f2u8, 162 nir_op_f2ump, 163 nir_op_fabs, 164 nir_op_fadd, 165 nir_op_fall_equal16, 166 nir_op_fall_equal2, 167 nir_op_fall_equal3, 168 nir_op_fall_equal4, 169 nir_op_fall_equal8, 170 nir_op_fany_nequal16, 171 nir_op_fany_nequal2, 172 nir_op_fany_nequal3, 173 nir_op_fany_nequal4, 174 nir_op_fany_nequal8, 175 nir_op_fceil, 176 nir_op_fclamp_pos, 177 nir_op_fcos, 178 nir_op_fcsel, 179 nir_op_fddx, 180 nir_op_fddx_coarse, 181 nir_op_fddx_fine, 182 nir_op_fddy, 183 nir_op_fddy_coarse, 184 nir_op_fddy_fine, 185 nir_op_fdiv, 186 nir_op_fdot16, 187 nir_op_fdot16_replicated, 188 nir_op_fdot2, 189 nir_op_fdot2_replicated, 190 nir_op_fdot3, 191 nir_op_fdot3_replicated, 192 nir_op_fdot4, 193 nir_op_fdot4_replicated, 194 nir_op_fdot8, 195 nir_op_fdot8_replicated, 196 nir_op_fdph, 197 nir_op_fdph_replicated, 198 nir_op_feq, 199 nir_op_feq16, 200 nir_op_feq32, 201 nir_op_feq8, 202 nir_op_fexp2, 203 nir_op_ffloor, 204 nir_op_ffma, 205 nir_op_ffract, 206 nir_op_fge, 207 nir_op_fge16, 208 nir_op_fge32, 209 nir_op_fge8, 210 nir_op_find_lsb, 211 nir_op_fisfinite, 212 nir_op_fisnormal, 213 nir_op_flog2, 214 nir_op_flrp, 215 nir_op_flt, 216 nir_op_flt16, 217 nir_op_flt32, 218 nir_op_flt8, 219 nir_op_fmax, 220 nir_op_fmin, 221 nir_op_fmod, 222 nir_op_fmul, 223 nir_op_fneg, 224 nir_op_fneu, 225 nir_op_fneu16, 226 nir_op_fneu32, 227 nir_op_fneu8, 228 nir_op_fpow, 229 nir_op_fquantize2f16, 230 nir_op_frcp, 231 nir_op_frem, 232 nir_op_frexp_exp, 233 nir_op_frexp_sig, 234 nir_op_fround_even, 235 nir_op_frsq, 236 nir_op_fsat, 237 nir_op_fsat_signed, 238 nir_op_fsign, 239 nir_op_fsin, 240 nir_op_fsqrt, 241 nir_op_fsub, 242 nir_op_fsum2, 243 nir_op_fsum3, 244 nir_op_fsum4, 245 nir_op_ftrunc, 246 nir_op_i2b1, 247 nir_op_i2b16, 248 nir_op_i2b32, 249 nir_op_i2b8, 250 nir_op_i2f16, 251 nir_op_i2f32, 252 nir_op_i2f64, 253 nir_op_i2fmp, 254 nir_op_i2i1, 255 nir_op_i2i16, 256 nir_op_i2i32, 257 nir_op_i2i64, 258 nir_op_i2i8, 259 nir_op_i2imp, 260 nir_op_iabs, 261 nir_op_iadd, 262 nir_op_iadd_sat, 263 nir_op_iand, 264 nir_op_ibfe, 265 nir_op_ibitfield_extract, 266 nir_op_idiv, 267 nir_op_ieq, 268 nir_op_ieq16, 269 nir_op_ieq32, 270 nir_op_ieq8, 271 nir_op_ifind_msb, 272 nir_op_ige, 273 nir_op_ige16, 274 nir_op_ige32, 275 nir_op_ige8, 276 nir_op_ihadd, 277 nir_op_ilt, 278 nir_op_ilt16, 279 nir_op_ilt32, 280 nir_op_ilt8, 281 nir_op_imad24_ir3, 282 nir_op_imadsh_mix16, 283 nir_op_imax, 284 nir_op_imin, 285 nir_op_imod, 286 nir_op_imul, 287 nir_op_imul24, 288 nir_op_imul_2x32_64, 289 nir_op_imul_32x16, 290 nir_op_imul_high, 291 nir_op_ine, 292 nir_op_ine16, 293 nir_op_ine32, 294 nir_op_ine8, 295 nir_op_ineg, 296 nir_op_inot, 297 nir_op_ior, 298 nir_op_irem, 299 nir_op_irhadd, 300 nir_op_ishl, 301 nir_op_ishr, 302 nir_op_isign, 303 nir_op_isub, 304 nir_op_isub_sat, 305 nir_op_ixor, 306 nir_op_ldexp, 307 nir_op_mov, 308 nir_op_pack_32_2x16, 309 nir_op_pack_32_2x16_split, 310 nir_op_pack_32_4x8, 311 nir_op_pack_64_2x32, 312 nir_op_pack_64_2x32_split, 313 nir_op_pack_64_4x16, 314 nir_op_pack_half_2x16, 315 nir_op_pack_half_2x16_split, 316 nir_op_pack_snorm_2x16, 317 nir_op_pack_snorm_4x8, 318 nir_op_pack_unorm_2x16, 319 nir_op_pack_unorm_4x8, 320 nir_op_pack_uvec2_to_uint, 321 nir_op_pack_uvec4_to_uint, 322 nir_op_seq, 323 nir_op_sge, 324 nir_op_slt, 325 nir_op_sne, 326 nir_op_u2f16, 327 nir_op_u2f32, 328 nir_op_u2f64, 329 nir_op_u2fmp, 330 nir_op_u2u1, 331 nir_op_u2u16, 332 nir_op_u2u32, 333 nir_op_u2u64, 334 nir_op_u2u8, 335 nir_op_uabs_isub, 336 nir_op_uabs_usub, 337 nir_op_uadd_carry, 338 nir_op_uadd_sat, 339 nir_op_ubfe, 340 nir_op_ubitfield_extract, 341 nir_op_uclz, 342 nir_op_udiv, 343 nir_op_ufind_msb, 344 nir_op_uge, 345 nir_op_uge16, 346 nir_op_uge32, 347 nir_op_uge8, 348 nir_op_uhadd, 349 nir_op_ult, 350 nir_op_ult16, 351 nir_op_ult32, 352 nir_op_ult8, 353 nir_op_umad24, 354 nir_op_umax, 355 nir_op_umax_4x8, 356 nir_op_umin, 357 nir_op_umin_4x8, 358 nir_op_umod, 359 nir_op_umul24, 360 nir_op_umul_2x32_64, 361 nir_op_umul_32x16, 362 nir_op_umul_high, 363 nir_op_umul_low, 364 nir_op_umul_unorm_4x8, 365 nir_op_unpack_32_2x16, 366 nir_op_unpack_32_2x16_split_x, 367 nir_op_unpack_32_2x16_split_y, 368 nir_op_unpack_32_4x8, 369 nir_op_unpack_64_2x32, 370 nir_op_unpack_64_2x32_split_x, 371 nir_op_unpack_64_2x32_split_y, 372 nir_op_unpack_64_4x16, 373 nir_op_unpack_half_2x16, 374 nir_op_unpack_half_2x16_flush_to_zero, 375 nir_op_unpack_half_2x16_split_x, 376 nir_op_unpack_half_2x16_split_x_flush_to_zero, 377 nir_op_unpack_half_2x16_split_y, 378 nir_op_unpack_half_2x16_split_y_flush_to_zero, 379 nir_op_unpack_snorm_2x16, 380 nir_op_unpack_snorm_4x8, 381 nir_op_unpack_unorm_2x16, 382 nir_op_unpack_unorm_4x8, 383 nir_op_urhadd, 384 nir_op_urol, 385 nir_op_uror, 386 nir_op_usadd_4x8, 387 nir_op_ushr, 388 nir_op_ussub_4x8, 389 nir_op_usub_borrow, 390 nir_op_usub_sat, 391 nir_op_vec16, 392 nir_op_vec2, 393 nir_op_vec3, 394 nir_op_vec4, 395 nir_op_vec8, 396 nir_last_opcode = nir_op_vec8, 397 nir_num_opcodes = nir_last_opcode + 1 398 } nir_op; 399 400 #endif /* _NIR_OPCODES_ */ 401