• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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