1 /* 2 * Copyright (C) 2010 Intel Corporation 3 * 4 * Permission is hereby granted, free of charge, to any person obtaining a 5 * copy of this software and associated documentation files (the "Software"), 6 * to deal in the Software without restriction, including without limitation 7 * the rights to use, copy, modify, merge, publish, distribute, sublicense, 8 * and/or sell copies of the Software, and to permit persons to whom the 9 * Software is furnished to do so, subject to the following conditions: 10 * 11 * The above copyright notice and this permission notice (including the next 12 * paragraph) shall be included in all copies or substantial portions of the 13 * Software. 14 * 15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 18 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 20 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 21 * DEALINGS IN THE SOFTWARE. 22 */ 23 24 enum ir_expression_operation { 25 ir_unop_bit_not, 26 ir_unop_logic_not, 27 ir_unop_neg, 28 ir_unop_abs, 29 ir_unop_sign, 30 ir_unop_rcp, 31 ir_unop_rsq, 32 ir_unop_sqrt, 33 ir_unop_exp, 34 ir_unop_log, 35 ir_unop_exp2, 36 ir_unop_log2, 37 ir_unop_f2i, 38 ir_unop_f2u, 39 ir_unop_i2f, 40 ir_unop_f2b, 41 ir_unop_b2f, 42 ir_unop_i2b, 43 ir_unop_b2i, 44 ir_unop_u2f, 45 ir_unop_i2u, 46 ir_unop_u2i, 47 ir_unop_d2f, 48 ir_unop_f2d, 49 ir_unop_d2i, 50 ir_unop_i2d, 51 ir_unop_d2u, 52 ir_unop_u2d, 53 ir_unop_d2b, 54 ir_unop_bitcast_i2f, 55 ir_unop_bitcast_f2i, 56 ir_unop_bitcast_u2f, 57 ir_unop_bitcast_f2u, 58 ir_unop_trunc, 59 ir_unop_ceil, 60 ir_unop_floor, 61 ir_unop_fract, 62 ir_unop_round_even, 63 ir_unop_sin, 64 ir_unop_cos, 65 ir_unop_dFdx, 66 ir_unop_dFdx_coarse, 67 ir_unop_dFdx_fine, 68 ir_unop_dFdy, 69 ir_unop_dFdy_coarse, 70 ir_unop_dFdy_fine, 71 ir_unop_pack_snorm_2x16, 72 ir_unop_pack_snorm_4x8, 73 ir_unop_pack_unorm_2x16, 74 ir_unop_pack_unorm_4x8, 75 ir_unop_pack_half_2x16, 76 ir_unop_unpack_snorm_2x16, 77 ir_unop_unpack_snorm_4x8, 78 ir_unop_unpack_unorm_2x16, 79 ir_unop_unpack_unorm_4x8, 80 ir_unop_unpack_half_2x16, 81 ir_unop_bitfield_reverse, 82 ir_unop_bit_count, 83 ir_unop_find_msb, 84 ir_unop_find_lsb, 85 ir_unop_saturate, 86 ir_unop_pack_double_2x32, 87 ir_unop_unpack_double_2x32, 88 ir_unop_frexp_sig, 89 ir_unop_frexp_exp, 90 ir_unop_noise, 91 ir_unop_subroutine_to_int, 92 ir_unop_interpolate_at_centroid, 93 ir_unop_get_buffer_size, 94 ir_unop_ssbo_unsized_array_length, 95 ir_unop_vote_any, 96 ir_unop_vote_all, 97 ir_unop_vote_eq, 98 ir_binop_add, 99 ir_binop_sub, 100 ir_binop_mul, 101 ir_binop_imul_high, 102 ir_binop_div, 103 ir_binop_carry, 104 ir_binop_borrow, 105 ir_binop_mod, 106 ir_binop_less, 107 ir_binop_greater, 108 ir_binop_lequal, 109 ir_binop_gequal, 110 ir_binop_equal, 111 ir_binop_nequal, 112 ir_binop_all_equal, 113 ir_binop_any_nequal, 114 ir_binop_lshift, 115 ir_binop_rshift, 116 ir_binop_bit_and, 117 ir_binop_bit_xor, 118 ir_binop_bit_or, 119 ir_binop_logic_and, 120 ir_binop_logic_xor, 121 ir_binop_logic_or, 122 ir_binop_dot, 123 ir_binop_min, 124 ir_binop_max, 125 ir_binop_pow, 126 ir_binop_ubo_load, 127 ir_binop_ldexp, 128 ir_binop_vector_extract, 129 ir_binop_interpolate_at_offset, 130 ir_binop_interpolate_at_sample, 131 ir_triop_fma, 132 ir_triop_lrp, 133 ir_triop_csel, 134 ir_triop_bitfield_extract, 135 ir_triop_vector_insert, 136 ir_quadop_bitfield_insert, 137 ir_quadop_vector, 138 139 /* Sentinels marking the last of each kind of operation. */ 140 ir_last_unop = ir_unop_vote_eq, 141 ir_last_binop = ir_binop_interpolate_at_sample, 142 ir_last_triop = ir_triop_vector_insert, 143 ir_last_quadop = ir_quadop_vector, 144 ir_last_opcode = ir_quadop_vector 145 }; 146