Revert "include/llvm: Add R600 Intrinsics v6"
[oota-llvm.git] / lib / Target / AMDGPU / AMDILEnumeratedTypes.td
1 //===-- AMDILEnumeratedTypes.td - IL Type definitions --*- tablegen -*-----===//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //==-----------------------------------------------------------------------===//
9 // ILEnumreatedTypes.td - The IL Enumerated Types
10 //===--------------------------------------------------------------------===//
11
12 // Section 5.1  IL Shader
13 class ILShader<bits<8> val> {
14     bits<8> Value = val;
15 }
16 // Table 5-1
17 def IL_SHADER_PIXEL : ILShader<0>;
18 def IL_SHADER_COMPUTE : ILShader<1>;
19
20 // Section 5.2 IL RegType
21 class ILRegType<bits<6> val> {
22     bits<6> Value = val;
23 }
24 // Table 5-2
25 def IL_REGTYPE_TEMP      : ILRegType<0>;
26 def IL_REGTYPE_WINCOORD  : ILRegType<1>;
27 def IL_REGTYPE_CONST_BUF : ILRegType<2>;
28 def IL_REGTYPE_LITERAL   : ILRegType<3>;
29 def IL_REGTYPE_ITEMP     : ILRegType<4>;
30 def IL_REGTYPE_GLOBAL    : ILRegType<5>;
31
32 // Section 5.3 IL Component Select
33 class ILComponentSelect<bits<3> val, string text> {
34      bits<3> Value = val;
35      string Text = text;
36 }
37 // Table 5-3
38 def IL_COMPSEL_X : ILComponentSelect<0, "x">;
39 def IL_COMPSEL_Y : ILComponentSelect<1, "y">;
40 def IL_COMPSEL_Z : ILComponentSelect<2, "z">;
41 def IL_COMPSEL_W : ILComponentSelect<3, "w">;
42 def IL_COMPSEL_0 : ILComponentSelect<4, "0">;
43 def IL_COMPSEL_1 : ILComponentSelect<5, "1">;
44
45 // Section 5.4 IL Mod Dst Comp
46 class ILModDstComp<bits<2> val, string text> {
47     bits<2> Value = val;
48     string Text = text;
49 }
50 // Table 5-4
51 def IL_MODCOMP_NOWRITE : ILModDstComp<0, "_">;
52 def IL_MODCOMP_WRITE_X : ILModDstComp<1, "x">;
53 def IL_MODCOMP_WRITE_y : ILModDstComp<1, "y">;
54 def IL_MODCOMP_WRITE_z : ILModDstComp<1, "z">;
55 def IL_MODCOMP_WRITE_w : ILModDstComp<1, "w">;
56 def IL_MODCOMP_0       : ILModDstComp<2, "0">;
57 def IL_MODCOMP_1       : ILModDstComp<3, "1">;
58
59 // Section 5.5 IL Import Usage
60 class ILImportUsage<bits<1> val, string usage> {
61     bits<1> Value = val;
62     string Text = usage;
63 }
64 // Table 5-5
65 def IL_IMPORTUSAGE_WINCOORD : ILImportUsage<0, "_usage(wincoord)">;
66
67 // Section 5.6 Il Shift Scale
68 class ILShiftScale<bits<4> val, string scale> {
69     bits<4> Value = val;
70     string Text = scale;
71 }
72
73 // Table 5-6
74 def IL_SHIFT_NONE   : ILShiftScale<0, "">;
75 def IL_SHIFT_X2     : ILShiftScale<1, "_x2">;
76 def IL_SHIFT_X4     : ILShiftScale<2, "_x4">;
77 def IL_SHIFT_X8     : ILShiftScale<3, "_x8">;
78 def IL_SHIFT_D2     : ILShiftScale<4, "_d2">;
79 def IL_SHIFT_D4     : ILShiftScale<5, "_d4">;
80 def IL_SHIFT_D8     : ILShiftScale<6, "_d8">;
81
82 // Section 5.7 IL Divide Component
83 class ILDivComp<bits<3> val, string divcomp> {
84     bits<3> Value = val;
85     string Text = divcomp;
86 }
87
88 // Table 5-7
89 def IL_DIVCOMP_NONE : ILDivComp<0, "_divcomp(none)">;
90 def IL_DIVCOMP_Y    : ILDivComp<1, "_divcomp(y)">;
91 def IL_DIVCOMP_Z    : ILDivComp<2, "_divcomp(z)">;
92 def IL_DIVCOMP_W    : ILDivComp<3, "_divcomp(w)">;
93 //def IL_DIVCOMP_UNKNOWN : ILDivComp<4, "_divcomp(unknown)">;
94
95 // Section 5.8 IL Relational Op
96 class ILRelOp<bits<3> val, string op> {
97     bits<3> Value = val;
98     string Text = op;
99 }
100
101 // Table 5-8
102 def IL_RELOP_EQ : ILRelOp<0, "_relop(eq)">;
103 def IL_RELOP_NE : ILRelOp<1, "_relop(ne)">;
104 def IL_RELOP_GT : ILRelOp<2, "_relop(gt)">;
105 def IL_RELOP_GE : ILRelOp<3, "_relop(ge)">;
106 def IL_RELOP_LT : ILRelOp<4, "_relop(lt)">;
107 def IL_RELOP_LE : ILRelOp<5, "_relop(le)">;
108
109 // Section 5.9 IL Zero Op
110 class ILZeroOp<bits<3> val, string behavior> {
111     bits<3> Value = val;
112     string Text = behavior;
113 }
114
115 // Table 5-9
116 def IL_ZEROOP_FLTMAX    : ILZeroOp<0, "_zeroop(fltmax)">;
117 def IL_ZEROOP_0         : ILZeroOp<1, "_zeroop(zero)">;
118 def IL_ZEROOP_INFINITY  : ILZeroOp<2, "_zeroop(infinity)">;
119 def IL_ZEROOP_INF_ELSE_MAX : ILZeroOp<3, "_zeroop(inf_else_max)">;
120
121 // Section 5.10 IL Cmp Value
122 class ILCmpValue<bits<3> val, string num> {
123     bits<3> Value = val;
124     string Text = num;
125 }
126
127 // Table 5-10
128 def IL_CMPVAL_0_0     : ILCmpValue<0, "0.0">;
129 def IL_CMPVAL_0_5     : ILCmpValue<1, "0.5">;
130 def IL_CMPVAL_1_0     : ILCmpValue<2, "1.0">;
131 def IL_CMPVAL_NEG_0_5 : ILCmpValue<3, "-0.5">;
132 def IL_CMPVAL_NEG_1_0 : ILCmpValue<4, "-1.0">;
133
134 // Section 5.11 IL Addressing
135 class ILAddressing<bits<3> val> {
136     bits<3> Value = val;
137 }
138
139 // Table 5-11
140 def IL_ADDR_ABSOLUTE     : ILAddressing<0>;
141 def IL_ADDR_RELATIVE     : ILAddressing<1>;
142 def IL_ADDR_REG_RELATIVE : ILAddressing<2>;
143
144 // Section 5.11 IL Element Format
145 class ILElementFormat<bits<5> val> {
146     bits<5> Value = val;
147 }
148
149 // Table 5-11
150 def IL_ELEMENTFORMAT_UNKNOWN : ILElementFormat<0>;
151 def IL_ELEMENTFORMAT_SNORM   : ILElementFormat<1>;
152 def IL_ELEMENTFORMAT_UNORM   : ILElementFormat<2>;
153 def IL_ELEMENTFORMAT_SINT    : ILElementFormat<3>;
154 def IL_ELEMENTFORMAT_UINT    : ILElementFormat<4>;
155 def IL_ELEMENTFORMAT_FLOAT   : ILElementFormat<5>;
156 def IL_ELEMENTFORMAT_SRGB    : ILElementFormat<6>;
157 def IL_ELEMENTFORMAT_MIXED   : ILElementFormat<7>;
158 def IL_ELEMENTFORMAT_Last    : ILElementFormat<8>;
159
160 // Section 5.12 IL Op Code
161 class ILOpCode<bits<16> val = -1, string cmd> {
162     bits<16> Value = val;
163     string Text = cmd;
164 }
165
166 // Table 5-12
167 def IL_DCL_CONST_BUFFER         : ILOpCode<0, "dcl_cb">;
168 def IL_DCL_INDEXED_TEMP_ARRAY   : ILOpCode<1, "dcl_index_temp_array">;
169 def IL_DCL_INPUT                : ILOpCode<2, "dcl_input">;
170 def IL_DCL_LITERAL              : ILOpCode<3, "dcl_literal">;
171 def IL_DCL_OUTPUT               : ILOpCode<4, "dcl_output">;
172 def IL_DCL_RESOURCE             : ILOpCode<5, "dcl_resource">;
173 def IL_OP_ABS                   : ILOpCode<6, "abs">;
174 def IL_OP_ADD                   : ILOpCode<7, "add">;
175 def IL_OP_AND                   : ILOpCode<8, "iand">;
176 def IL_OP_BREAK                 : ILOpCode<9, "break">;
177 def IL_OP_BREAK_LOGICALNZ       : ILOpCode<10, "break_logicalnz">;
178 def IL_OP_BREAK_LOGICALZ        : ILOpCode<11, "break_logicalz">;
179 def IL_OP_BREAKC                : ILOpCode<12, "breakc">;
180 def IL_OP_CALL                  : ILOpCode<13, "call">;
181 def IL_OP_CALL_LOGICALNZ        : ILOpCode<14, "call_logicalnz">;
182 def IL_OP_CALL_LOGICALZ         : ILOpCode<15, "call_logicalz">;
183 def IL_OP_CASE                  : ILOpCode<16, "case">;
184 def IL_OP_CLG                   : ILOpCode<17, "clg">;
185 def IL_OP_CMOV                  : ILOpCode<18, "cmov">;
186 def IL_OP_CMOV_LOGICAL          : ILOpCode<19, "cmov_logical">;
187 def IL_OP_CMP                   : ILOpCode<20, "cmp">;
188 def IL_OP_CONTINUE              : ILOpCode<21, "continue">;
189 def IL_OP_CONTINUE_LOGICALNZ    : ILOpCode<22, "continue_logicalnz">;
190 def IL_OP_CONTINUE_LOGICALZ     : ILOpCode<23, "continue_logicalz">;
191 def IL_OP_CONTINUEC             : ILOpCode<24, "continuec">;
192 def IL_OP_COS                   : ILOpCode<25, "cos">;
193 def IL_OP_COS_VEC               : ILOpCode<26, "cos_vec">;
194 def IL_OP_D_2_F                 : ILOpCode<27, "d2f">;
195 def IL_OP_D_ADD                 : ILOpCode<28, "dadd">;
196 def IL_OP_D_EQ                  : ILOpCode<29, "deq">;
197 def IL_OP_D_FRC                 : ILOpCode<30, "dfrac">;
198 def IL_OP_D_FREXP               : ILOpCode<31, "dfrexp">;
199 def IL_OP_D_GE                  : ILOpCode<32, "dge">;
200 def IL_OP_D_LDEXP               : ILOpCode<33, "dldexp">;
201 def IL_OP_D_LT                  : ILOpCode<34, "dlt">;
202 def IL_OP_D_MAD                 : ILOpCode<35, "dmad">;
203 def IL_OP_D_MUL                 : ILOpCode<36, "dmul">;
204 def IL_OP_D_NE                  : ILOpCode<37, "dne">;
205 def IL_OP_DEFAULT               : ILOpCode<38, "default">;
206 def IL_OP_DISCARD_LOGICALNZ     : ILOpCode<39, "discard_logicalnz">;
207 def IL_OP_DISCARD_LOGICALZ      : ILOpCode<40, "discard_logicalz">;
208 def IL_OP_DIV                   : ILOpCode<41, "div_zeroop(infinity)">;
209 def IL_OP_DP2                   : ILOpCode<42, "dp2">;
210 def IL_OP_DP3                   : ILOpCode<43, "dp3">;
211 def IL_OP_DP4                   : ILOpCode<44, "dp4">;
212 def IL_OP_ELSE                  : ILOpCode<45, "else">;
213 def IL_OP_END                   : ILOpCode<46, "end">;
214 def IL_OP_ENDFUNC               : ILOpCode<47, "endfunc">;
215 def IL_OP_ENDIF                 : ILOpCode<48, "endif">;
216 def IL_OP_ENDLOOP               : ILOpCode<49, "endloop">;
217 def IL_OP_ENDMAIN               : ILOpCode<50, "endmain">;
218 def IL_OP_ENDSWITCH             : ILOpCode<51, "endswitch">;
219 def IL_OP_EQ                    : ILOpCode<52, "eq">;
220 def IL_OP_EXP                   : ILOpCode<53, "exp">;
221 def IL_OP_EXP_VEC               : ILOpCode<54, "exp_vec">;
222 def IL_OP_F_2_D                 : ILOpCode<55, "f2d">;
223 def IL_OP_FLR                   : ILOpCode<56, "flr">;
224 def IL_OP_FRC                   : ILOpCode<57, "frc">;
225 def IL_OP_FTOI                  : ILOpCode<58, "ftoi">;
226 def IL_OP_FTOU                  : ILOpCode<59, "ftou">;
227 def IL_OP_FUNC                  : ILOpCode<60, "func">;
228 def IL_OP_GE                    : ILOpCode<61, "ge">;
229 def IL_OP_I_ADD                 : ILOpCode<62, "iadd">;
230 def IL_OP_I_EQ                  : ILOpCode<63, "ieq">;
231 def IL_OP_I_GE                  : ILOpCode<64, "ige">;
232 def IL_OP_I_LT                  : ILOpCode<65, "ilt">;
233 def IL_OP_I_MAD                 : ILOpCode<66, "imad">;
234 def IL_OP_I_MAX                 : ILOpCode<67, "imax">;
235 def IL_OP_I_MIN                 : ILOpCode<68, "imin">;
236 def IL_OP_I_MUL                 : ILOpCode<69, "imul">;
237 def IL_OP_I_MUL_HIGH            : ILOpCode<70, "imul_high">;
238 def IL_OP_I_NE                  : ILOpCode<71, "ine">;
239 def IL_OP_I_NEGATE              : ILOpCode<72, "inegate">;
240 def IL_OP_I_NOT                 : ILOpCode<73, "inot">;
241 def IL_OP_I_OR                  : ILOpCode<74, "ior">;
242 def IL_OP_I_SHL                 : ILOpCode<75, "ishl">;
243 def IL_OP_I_SHR                 : ILOpCode<76, "ishr">;
244 def IL_OP_I_XOR                 : ILOpCode<77, "ixor">;
245 def IL_OP_IF_LOGICALNZ          : ILOpCode<78, "if_logicalnz">;
246 def IL_OP_IF_LOGICALZ           : ILOpCode<79, "if_logicalz">;
247 def IL_OP_IFC                   : ILOpCode<80, "ifc">;
248 def IL_OP_ITOF                  : ILOpCode<81, "itof">;
249 def IL_OP_LN                    : ILOpCode<82, "ln">;
250 def IL_OP_LOG                   : ILOpCode<83, "log">;
251 def IL_OP_LOG_VEC               : ILOpCode<84, "log_vec">;
252 def IL_OP_LOOP                  : ILOpCode<85, "loop">;
253 def IL_OP_LT                    : ILOpCode<86, "lt">;
254 def IL_OP_MAD                   : ILOpCode<87, "mad_ieee">;
255 def IL_OP_MAX                   : ILOpCode<88, "max_ieee">;
256 def IL_OP_MIN                   : ILOpCode<89, "min_ieee">;
257 def IL_OP_MOD                   : ILOpCode<90, "mod_ieee">;
258 def IL_OP_MOV                   : ILOpCode<91, "mov">;
259 def IL_OP_MUL_IEEE              : ILOpCode<92, "mul_ieee">;
260 def IL_OP_NE                    : ILOpCode<93, "ne">;
261 def IL_OP_NRM                   : ILOpCode<94, "nrm_nrm4_zeroop(zero)">;
262 def IL_OP_POW                   : ILOpCode<95, "pow">;
263 def IL_OP_RCP                   : ILOpCode<96, "rcp">;
264 def IL_OP_RET                   : ILOpCode<97, "ret">;
265 def IL_OP_RET_DYN               : ILOpCode<98, "ret_dyn">;
266 def IL_OP_RET_LOGICALNZ         : ILOpCode<99, "ret_logicalnz">;
267 def IL_OP_RET_LOGICALZ          : ILOpCode<100, "ret_logicalz">;
268 def IL_OP_RND                   : ILOpCode<101, "rnd">;
269 def IL_OP_ROUND_NEAR            : ILOpCode<102, "round_nearest">;
270 def IL_OP_ROUND_NEG_INF         : ILOpCode<103, "round_neginf">;
271 def IL_OP_ROUND_POS_INF         : ILOpCode<104, "round_plusinf">;
272 def IL_OP_ROUND_ZERO            : ILOpCode<105, "round_z">;
273 def IL_OP_RSQ                   : ILOpCode<106, "rsq">;
274 def IL_OP_RSQ_VEC               : ILOpCode<107, "rsq_vec">;
275 def IL_OP_SAMPLE                : ILOpCode<108, "sample">;
276 def IL_OP_SAMPLE_L              : ILOpCode<109, "sample_l">;
277 def IL_OP_SET                   : ILOpCode<110, "set">;
278 def IL_OP_SGN                   : ILOpCode<111, "sgn">;
279 def IL_OP_SIN                   : ILOpCode<112, "sin">;
280 def IL_OP_SIN_VEC               : ILOpCode<113, "sin_vec">;
281 def IL_OP_SUB                   : ILOpCode<114, "sub">;
282 def IL_OP_SWITCH                : ILOpCode<115, "switch">;
283 def IL_OP_TRC                   : ILOpCode<116, "trc">;
284 def IL_OP_U_DIV                 : ILOpCode<117, "udiv">;
285 def IL_OP_U_GE                  : ILOpCode<118, "uge">;
286 def IL_OP_U_LT                  : ILOpCode<119, "ult">;
287 def IL_OP_U_MAD                 : ILOpCode<120, "umad">;
288 def IL_OP_U_MAX                 : ILOpCode<121, "umax">;
289 def IL_OP_U_MIN                 : ILOpCode<122, "umin">;
290 def IL_OP_U_MOD                 : ILOpCode<123, "umod">;
291 def IL_OP_U_MUL                 : ILOpCode<124, "umul">;
292 def IL_OP_U_MUL_HIGH            : ILOpCode<125, "umul_high">;
293 def IL_OP_U_SHR                 : ILOpCode<126, "ushr">;
294 def IL_OP_UTOF                  : ILOpCode<127, "utof">;
295 def IL_OP_WHILE                 : ILOpCode<128, "whileloop">;
296 // SC IL instructions that are not in CAL IL
297 def IL_OP_ACOS                  : ILOpCode<129, "acos">;
298 def IL_OP_ASIN                  : ILOpCode<130, "asin">;
299 def IL_OP_EXN                   : ILOpCode<131, "exn">;
300 def IL_OP_UBIT_REVERSE          : ILOpCode<132, "ubit_reverse">;
301 def IL_OP_UBIT_EXTRACT          : ILOpCode<133, "ubit_extract">;
302 def IL_OP_IBIT_EXTRACT          : ILOpCode<134, "ibit_extract">;
303 def IL_OP_SQRT                  : ILOpCode<135, "sqrt">;
304 def IL_OP_SQRT_VEC              : ILOpCode<136, "sqrt_vec">;
305 def IL_OP_ATAN                  : ILOpCode<137, "atan">;
306 def IL_OP_TAN                   : ILOpCode<137, "tan">;
307 def IL_OP_D_DIV                 : ILOpCode<138, "ddiv">;
308 def IL_OP_F_NEG                 : ILOpCode<139, "mov">;
309 def IL_OP_GT                    : ILOpCode<140, "gt">;
310 def IL_OP_LE                    : ILOpCode<141, "lt">;
311 def IL_OP_DIST                  : ILOpCode<142, "dist">;
312 def IL_OP_LEN                   : ILOpCode<143, "len">;
313 def IL_OP_MACRO                 : ILOpCode<144, "mcall">;
314 def IL_OP_INTR                  : ILOpCode<145, "call">;
315 def IL_OP_I_FFB_HI              : ILOpCode<146, "ffb_hi">;
316 def IL_OP_I_FFB_LO              : ILOpCode<147, "ffb_lo">;
317 def IL_OP_BARRIER               : ILOpCode<148, "fence_threads_memory_lds">;
318 def IL_OP_BARRIER_LOCAL         : ILOpCode<149, "fence_threads_lds">;
319 def IL_OP_BARRIER_GLOBAL        : ILOpCode<150, "fence_threads_memory">;
320 def IL_OP_FENCE                 : ILOpCode<151, "fence_lds_memory">;
321 def IL_OP_FENCE_READ_ONLY       : ILOpCode<152, "fence_lds_mem_read_only">;
322 def IL_OP_FENCE_WRITE_ONLY      : ILOpCode<153, "fence_lds_mem_write_only">;
323 def IL_PSEUDO_INST              : ILOpCode<154, ";Pseudo Op">;
324 def IL_OP_UNPACK_0              : ILOpCode<155, "unpack0">;
325 def IL_OP_UNPACK_1              : ILOpCode<156, "unpack1">;
326 def IL_OP_UNPACK_2              : ILOpCode<157, "unpack2">;
327 def IL_OP_UNPACK_3              : ILOpCode<158, "unpack3">;
328 def IL_OP_PI_REDUCE             : ILOpCode<159, "pireduce">;
329 def IL_OP_IBIT_COUNT            : ILOpCode<160, "icbits">;
330 def IL_OP_I_FFB_SGN             : ILOpCode<161, "ffb_shi">;
331 def IL_OP_F2U4                  : ILOpCode<162, "f_2_u4">;
332 def IL_OP_BIT_ALIGN             : ILOpCode<163, "bitalign">;
333 def IL_OP_BYTE_ALIGN            : ILOpCode<164, "bytealign">;
334 def IL_OP_U4_LERP               : ILOpCode<165, "u4lerp">;
335 def IL_OP_SAD                   : ILOpCode<166, "sad">;
336 def IL_OP_SAD_HI                : ILOpCode<167, "sadhi">;
337 def IL_OP_SAD4                  : ILOpCode<168, "sad4">;
338 def IL_OP_UBIT_INSERT           : ILOpCode<169, "ubit_insert">;
339 def IL_OP_I_CARRY               : ILOpCode<170, "icarry">;
340 def IL_OP_I_BORROW              : ILOpCode<171, "iborrow">;
341 def IL_OP_U_MAD24               : ILOpCode<172, "umad24">;
342 def IL_OP_U_MUL24               : ILOpCode<173, "umul24">;
343 def IL_OP_I_MAD24               : ILOpCode<174, "imad24">;
344 def IL_OP_I_MUL24               : ILOpCode<175, "imul24">;
345 def IL_OP_CLAMP                 : ILOpCode<176, "clamp">;
346 def IL_OP_LERP                  : ILOpCode<177, "lrp">;
347 def IL_OP_FMA                   : ILOpCode<178, "fma">;
348 def IL_OP_D_MIN                 : ILOpCode<179, "dmin">;
349 def IL_OP_D_MAX                 : ILOpCode<180, "dmax">;
350 def IL_OP_D_SQRT                : ILOpCode<181, "dsqrt">;
351 def IL_OP_DP2_ADD               : ILOpCode<182, "dp2add">;
352 def IL_OP_F16_TO_F32            : ILOpCode<183, "f162f">;
353 def IL_OP_F32_TO_F16            : ILOpCode<184, "f2f16">;
354 def IL_REG_LOCAL_ID_FLAT        : ILOpCode<185, "vTidInGrpFlat">;
355 def IL_REG_LOCAL_ID             : ILOpCode<186, "vTidInGrp">;
356 def IL_REG_GLOBAL_ID_FLAT       : ILOpCode<187, "vAbsTidFlag">;
357 def IL_REG_GLOBAL_ID            : ILOpCode<188, "vAbsTid">;
358 def IL_REG_GROUP_ID_FLAT        : ILOpCode<189, "vThreadGrpIDFlat">;
359 def IL_REG_GROUP_ID             : ILOpCode<190, "vThreadGrpID">;
360 def IL_OP_D_RCP                 : ILOpCode<191, "drcp_zeroop(infinity)">;
361 def IL_OP_D_RSQ                 : ILOpCode<192, "drsq_zeroop(infinity)">;
362 def IL_OP_D_MOV                 : ILOpCode<193, "dmov">;
363 def IL_OP_D_MOVC                : ILOpCode<194, "dmovc">;
364 def IL_OP_NOP                   : ILOpCode<195, "nop">;
365 def IL_OP_UAV_ADD               : ILOpCode<196, "uav_add">;
366 def IL_OP_UAV_AND               : ILOpCode<197, "uav_and">;
367 def IL_OP_UAV_MAX               : ILOpCode<198, "uav_max">;
368 def IL_OP_UAV_MIN               : ILOpCode<199, "uav_min">;
369 def IL_OP_UAV_OR                : ILOpCode<200, "uav_or">;
370 def IL_OP_UAV_RSUB              : ILOpCode<201, "uav_rsub">;
371 def IL_OP_UAV_SUB               : ILOpCode<202, "uav_sub">;
372 def IL_OP_UAV_UMAX              : ILOpCode<203, "uav_umax">;
373 def IL_OP_UAV_UMIN              : ILOpCode<204, "uav_umin">;
374 def IL_OP_UAV_XOR               : ILOpCode<205, "uav_xor">;
375 def IL_OP_UAV_INC               : ILOpCode<206, "uav_uinc">;
376 def IL_OP_UAV_DEC               : ILOpCode<207, "uav_udec">;
377 def IL_OP_UAV_CMP               : ILOpCode<208, "uav_cmp">;
378 def IL_OP_UAV_READ_ADD          : ILOpCode<209, "uav_read_add">;
379 def IL_OP_UAV_READ_AND          : ILOpCode<210, "uav_read_and">;
380 def IL_OP_UAV_READ_MAX          : ILOpCode<211, "uav_read_max">;
381 def IL_OP_UAV_READ_MIN          : ILOpCode<212, "uav_read_min">;
382 def IL_OP_UAV_READ_OR           : ILOpCode<213, "uav_read_or">;
383 def IL_OP_UAV_READ_RSUB         : ILOpCode<214, "uav_read_rsub">;
384 def IL_OP_UAV_READ_SUB          : ILOpCode<215, "uav_read_sub">;
385 def IL_OP_UAV_READ_UMAX         : ILOpCode<216, "uav_read_umax">;
386 def IL_OP_UAV_READ_UMIN         : ILOpCode<217, "uav_read_umin">;
387 def IL_OP_UAV_READ_XOR          : ILOpCode<218, "uav_read_xor">;
388 def IL_OP_UAV_READ_INC          : ILOpCode<219, "uav_read_uinc">;
389 def IL_OP_UAV_READ_DEC          : ILOpCode<220, "uav_read_udec">;
390 def IL_OP_UAV_READ_XCHG         : ILOpCode<221, "uav_read_xchg">;
391 def IL_OP_UAV_READ_CMPXCHG      : ILOpCode<222, "uav_read_cmp_xchg">;
392 def IL_OP_LDS_ADD               : ILOpCode<223, "lds_add">;
393 def IL_OP_LDS_AND               : ILOpCode<224, "lds_and">;
394 def IL_OP_LDS_MAX               : ILOpCode<225, "lds_max">;
395 def IL_OP_LDS_MIN               : ILOpCode<226, "lds_min">;
396 def IL_OP_LDS_OR                : ILOpCode<227, "lds_or">;
397 def IL_OP_LDS_RSUB              : ILOpCode<228, "lds_rsub">;
398 def IL_OP_LDS_SUB               : ILOpCode<229, "lds_sub">;
399 def IL_OP_LDS_UMAX              : ILOpCode<230, "lds_umax">;
400 def IL_OP_LDS_UMIN              : ILOpCode<231, "lds_umin">;
401 def IL_OP_LDS_XOR               : ILOpCode<232, "lds_xor">;
402 def IL_OP_LDS_INC               : ILOpCode<233, "lds_inc">;
403 def IL_OP_LDS_DEC               : ILOpCode<234, "lds_dec">;
404 def IL_OP_LDS_CMP               : ILOpCode<235, "lds_cmp">;
405 def IL_OP_LDS_READ_ADD          : ILOpCode<236, "lds_read_add">;
406 def IL_OP_LDS_READ_AND          : ILOpCode<237, "lds_read_and">;
407 def IL_OP_LDS_READ_MAX          : ILOpCode<238, "lds_read_max">;
408 def IL_OP_LDS_READ_MIN          : ILOpCode<239, "lds_read_min">;
409 def IL_OP_LDS_READ_OR           : ILOpCode<240, "lds_read_or">;
410 def IL_OP_LDS_READ_RSUB         : ILOpCode<241, "lds_read_rsub">;
411 def IL_OP_LDS_READ_SUB          : ILOpCode<242, "lds_read_sub">;
412 def IL_OP_LDS_READ_UMAX         : ILOpCode<243, "lds_read_umax">;
413 def IL_OP_LDS_READ_UMIN         : ILOpCode<244, "lds_read_umin">;
414 def IL_OP_LDS_READ_XOR          : ILOpCode<245, "lds_read_xor">;
415 def IL_OP_LDS_READ_INC          : ILOpCode<246, "lds_read_inc">;
416 def IL_OP_LDS_READ_DEC          : ILOpCode<247, "lds_read_dec">;
417 def IL_OP_LDS_READ_XCHG         : ILOpCode<248, "lds_read_xchg">;
418 def IL_OP_LDS_READ_CMPXCHG      : ILOpCode<249, "lds_read_cmp_xchg">;
419 def IL_OP_GDS_ADD               : ILOpCode<250, "gds_add">;
420 def IL_OP_GDS_AND               : ILOpCode<251, "gds_and">;
421 def IL_OP_GDS_MAX               : ILOpCode<252, "gds_max">;
422 def IL_OP_GDS_MIN               : ILOpCode<253, "gds_min">;
423 def IL_OP_GDS_OR                : ILOpCode<254, "gds_or">;
424 def IL_OP_GDS_RSUB              : ILOpCode<255, "gds_rsub">;
425 def IL_OP_GDS_SUB               : ILOpCode<256, "gds_sub">;
426 def IL_OP_GDS_UMAX              : ILOpCode<257, "gds_umax">;
427 def IL_OP_GDS_UMIN              : ILOpCode<258, "gds_umin">;
428 def IL_OP_GDS_MSKOR             : ILOpCode<259, "gds_mskor">;
429 def IL_OP_GDS_XOR               : ILOpCode<260, "gds_xor">;
430 def IL_OP_GDS_INC               : ILOpCode<261, "gds_inc">;
431 def IL_OP_GDS_DEC               : ILOpCode<262, "gds_dec">;
432 def IL_OP_GDS_CMP               : ILOpCode<263, "gds_cmp">;
433 def IL_OP_GDS_READ_ADD          : ILOpCode<264, "gds_read_add">;
434 def IL_OP_GDS_READ_AND          : ILOpCode<265, "gds_read_and">;
435 def IL_OP_GDS_READ_MAX          : ILOpCode<266, "gds_read_max">;
436 def IL_OP_GDS_READ_MIN          : ILOpCode<267, "gds_read_min">;
437 def IL_OP_GDS_READ_OR           : ILOpCode<268, "gds_read_or">;
438 def IL_OP_GDS_READ_RSUB         : ILOpCode<269, "gds_read_rsub">;
439 def IL_OP_GDS_READ_SUB          : ILOpCode<270, "gds_read_sub">;
440 def IL_OP_GDS_READ_UMAX         : ILOpCode<271, "gds_read_umax">;
441 def IL_OP_GDS_READ_UMIN         : ILOpCode<272, "gds_read_umin">;
442 def IL_OP_GDS_READ_MSKOR        : ILOpCode<273, "gds_read_mskor">;
443 def IL_OP_GDS_READ_XOR          : ILOpCode<274, "gds_read_xor">;
444 def IL_OP_GDS_READ_INC          : ILOpCode<275, "gds_read_inc">;
445 def IL_OP_GDS_READ_DEC          : ILOpCode<276, "gds_read_dec">;
446 def IL_OP_GDS_READ_XCHG         : ILOpCode<277, "gds_read_xchg">;
447 def IL_OP_GDS_READ_CMPXCHG      : ILOpCode<278, "gds_read_cmp_xchg">;
448 def IL_OP_APPEND_BUF_ALLOC      : ILOpCode<279, "append_buf_alloc">;
449 def IL_OP_APPEND_BUF_CONSUME    : ILOpCode<280, "append_buf_consume">;
450 def IL_OP_I64_ADD               : ILOpCode<281, "i64add">;
451 def IL_OP_I64_MAX               : ILOpCode<282, "i64max">;
452 def IL_OP_U64_MAX               : ILOpCode<283, "u64max">;
453 def IL_OP_I64_MIN               : ILOpCode<284, "i64min">;
454 def IL_OP_U64_MIN               : ILOpCode<285, "u64min">;
455 def IL_OP_I64_NEGATE            : ILOpCode<286, "i64negate">;
456 def IL_OP_I64_SHL               : ILOpCode<287, "i64shl">;
457 def IL_OP_I64_SHR               : ILOpCode<288, "i64shr">;
458 def IL_OP_U64_SHR               : ILOpCode<289, "u64shr">;
459 def IL_OP_I64_EQ                : ILOpCode<290, "i64eq">;
460 def IL_OP_I64_GE                : ILOpCode<291, "i64ge">;
461 def IL_OP_U64_GE                : ILOpCode<292, "u64ge">;
462 def IL_OP_I64_LT                : ILOpCode<293, "i64lt">;
463 def IL_OP_U64_LT                : ILOpCode<294, "u64lt">;
464 def IL_OP_I64_NE                : ILOpCode<295, "i64ne">;
465 def IL_OP_U_MULHI24             : ILOpCode<296, "umul24_high">;
466 def IL_OP_I_MULHI24             : ILOpCode<297, "imul24_high">;
467 def IL_OP_GDS_LOAD              : ILOpCode<298, "gds_load">;
468 def IL_OP_GDS_STORE             : ILOpCode<299, "gds_store">;
469 def IL_OP_LDS_LOAD              : ILOpCode<300, "lds_load">;
470 def IL_OP_LDS_LOAD_VEC          : ILOpCode<301, "lds_load_vec">;
471 def IL_OP_LDS_LOAD_BYTE         : ILOpCode<302, "lds_load_byte">;
472 def IL_OP_LDS_LOAD_UBYTE        : ILOpCode<303, "lds_load_ubyte">;
473 def IL_OP_LDS_LOAD_SHORT        : ILOpCode<304, "lds_load_short">;
474 def IL_OP_LDS_LOAD_USHORT       : ILOpCode<305, "lds_load_ushort">;
475 def IL_OP_LDS_STORE             : ILOpCode<306, "lds_store">;
476 def IL_OP_LDS_STORE_VEC         : ILOpCode<307, "lds_store_vec">;
477 def IL_OP_LDS_STORE_BYTE        : ILOpCode<308, "lds_store_byte">;
478 def IL_OP_LDS_STORE_SHORT       : ILOpCode<309, "lds_store_short">;
479 def IL_OP_RAW_UAV_LOAD          : ILOpCode<310, "uav_raw_load">;
480 def IL_OP_RAW_UAV_STORE         : ILOpCode<311, "uav_raw_store">;
481 def IL_OP_ARENA_UAV_LOAD        : ILOpCode<312, "uav_arena_load">;
482 def IL_OP_ARENA_UAV_STORE       : ILOpCode<313, "uav_arena_store">;
483 def IL_OP_LDS_MSKOR             : ILOpCode<314, "lds_mskor">;
484 def IL_OP_LDS_READ_MSKOR        : ILOpCode<315, "lds_read_mskor">;
485 def IL_OP_UAV_BYTE_LOAD         : ILOpCode<316, "uav_byte_load">;
486 def IL_OP_UAV_UBYTE_LOAD        : ILOpCode<317, "uav_ubyte_load">;
487 def IL_OP_UAV_SHORT_LOAD        : ILOpCode<318, "uav_short_load">;
488 def IL_OP_UAV_USHORT_LOAD       : ILOpCode<319, "uav_ushort_load">;
489 def IL_OP_UAV_BYTE_STORE        : ILOpCode<320, "uav_byte_store">;
490 def IL_OP_UAV_SHORT_STORE       : ILOpCode<320, "uav_short_store">;
491 def IL_OP_UAV_STORE             : ILOpCode<321, "uav_store">;
492 def IL_OP_UAV_LOAD              : ILOpCode<322, "uav_load">;
493 def IL_OP_MUL                   : ILOpCode<323, "mul">;
494 def IL_OP_DIV_INF               : ILOpCode<324, "div_zeroop(infinity)">;
495 def IL_OP_DIV_FLTMAX            : ILOpCode<325, "div_zeroop(fltmax)">;
496 def IL_OP_DIV_ZERO              : ILOpCode<326, "div_zeroop(zero)">;
497 def IL_OP_DIV_INFELSEMAX        : ILOpCode<327, "div_zeroop(inf_else_max)">;
498 def IL_OP_FTOI_FLR              : ILOpCode<328, "ftoi_flr">;
499 def IL_OP_FTOI_RPI              : ILOpCode<329, "ftoi_rpi">;
500 def IL_OP_F32_TO_F16_NEAR       : ILOpCode<330, "f2f16_near">;
501 def IL_OP_F32_TO_F16_NEG_INF    : ILOpCode<331, "f2f16_neg_inf">;
502 def IL_OP_F32_TO_F16_PLUS_INF   : ILOpCode<332, "f2f16_plus_inf">;
503 def IL_OP_I64_MUL               : ILOpCode<333, "i64mul">;
504 def IL_OP_U64_MUL               : ILOpCode<334, "u64mul">;
505 def IL_OP_CU_ID                 : ILOpCode<355, "cu_id">;
506 def IL_OP_WAVE_ID               : ILOpCode<356, "wave_id">;
507 def IL_OP_I64_SUB               : ILOpCode<357, "i64sub">;
508 def IL_OP_I64_DIV               : ILOpCode<358, "i64div">;
509 def IL_OP_U64_DIV               : ILOpCode<359, "u64div">;
510 def IL_OP_I64_MOD               : ILOpCode<360, "i64mod">;
511 def IL_OP_U64_MOD               : ILOpCode<361, "u64mod">;
512 def IL_DCL_GWS_THREAD_COUNT     : ILOpCode<362, "dcl_gws_thread_count">;
513 def IL_DCL_SEMAPHORE            : ILOpCode<363, "dcl_semaphore">;
514 def IL_OP_SEMAPHORE_INIT        : ILOpCode<364, "init_semaphore">;
515 def IL_OP_SEMAPHORE_WAIT        : ILOpCode<365, "semaphore_wait">;
516 def IL_OP_SEMAPHORE_SIGNAL      : ILOpCode<366, "semaphore_signal">;
517 def IL_OP_BARRIER_REGION        : ILOpCode<377, "fence_threads_gds">;
518 def IL_OP_BFI                   : ILOpCode<394, "bfi">;
519 def IL_OP_BFM                   : ILOpCode<395, "bfm">;
520 def IL_DBG_STRING               : ILOpCode<396, "dbg_string">;
521 def IL_DBG_LINE                 : ILOpCode<397, "dbg_line">;
522 def IL_DBG_TEMPLOC              : ILOpCode<398, "dbg_temploc">;