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