Skip to main content

nox_spirv/op/
definitions.rs

1#![doc = r" SPIR-V instruction definitions"]
2#![doc = r""]
3#![doc = r" This file is auto-generated, do not modify manually."]
4use crate::{core::*, op::*};
5use core::fmt::{self, Display};
6#[derive(Clone, Copy, PartialEq, Eq, Debug)]
7pub struct Code(pub(crate) u16);
8impl Code {
9    pub const NOP: Self = Self(0);
10    pub const UNDEF: Self = Self(1);
11    pub const SOURCE_CONTINUED: Self = Self(2);
12    pub const SOURCE: Self = Self(3);
13    pub const SOURCE_EXTENSION: Self = Self(4);
14    pub const NAME: Self = Self(5);
15    pub const MEMBER_NAME: Self = Self(6);
16    pub const STRING: Self = Self(7);
17    pub const LINE: Self = Self(8);
18    pub const EXTENSION: Self = Self(10);
19    pub const EXT_INST_IMPORT: Self = Self(11);
20    pub const EXT_INST: Self = Self(12);
21    pub const MEMORY_MODEL: Self = Self(14);
22    pub const ENTRY_POINT: Self = Self(15);
23    pub const EXECUTION_MODE: Self = Self(16);
24    pub const CAPABILITY: Self = Self(17);
25    pub const TYPE_VOID: Self = Self(19);
26    pub const TYPE_BOOL: Self = Self(20);
27    pub const TYPE_INT: Self = Self(21);
28    pub const TYPE_FLOAT: Self = Self(22);
29    pub const TYPE_VECTOR: Self = Self(23);
30    pub const TYPE_MATRIX: Self = Self(24);
31    pub const TYPE_IMAGE: Self = Self(25);
32    pub const TYPE_SAMPLER: Self = Self(26);
33    pub const TYPE_SAMPLED_IMAGE: Self = Self(27);
34    pub const TYPE_ARRAY: Self = Self(28);
35    pub const TYPE_RUNTIME_ARRAY: Self = Self(29);
36    pub const TYPE_STRUCT: Self = Self(30);
37    pub const TYPE_OPAQUE: Self = Self(31);
38    pub const TYPE_POINTER: Self = Self(32);
39    pub const TYPE_FUNCTION: Self = Self(33);
40    pub const TYPE_EVENT: Self = Self(34);
41    pub const TYPE_DEVICE_EVENT: Self = Self(35);
42    pub const TYPE_RESERVE_ID: Self = Self(36);
43    pub const TYPE_QUEUE: Self = Self(37);
44    pub const TYPE_PIPE: Self = Self(38);
45    pub const TYPE_FORWARD_POINTER: Self = Self(39);
46    pub const CONSTANT_TRUE: Self = Self(41);
47    pub const CONSTANT_FALSE: Self = Self(42);
48    pub const CONSTANT: Self = Self(43);
49    pub const CONSTANT_COMPOSITE: Self = Self(44);
50    pub const CONSTANT_SAMPLER: Self = Self(45);
51    pub const CONSTANT_NULL: Self = Self(46);
52    pub const SPEC_CONSTANT_TRUE: Self = Self(48);
53    pub const SPEC_CONSTANT_FALSE: Self = Self(49);
54    pub const SPEC_CONSTANT: Self = Self(50);
55    pub const SPEC_CONSTANT_COMPOSITE: Self = Self(51);
56    pub const SPEC_CONSTANT_OP: Self = Self(52);
57    pub const FUNCTION: Self = Self(54);
58    pub const FUNCTION_PARAMETER: Self = Self(55);
59    pub const FUNCTION_END: Self = Self(56);
60    pub const FUNCTION_CALL: Self = Self(57);
61    pub const VARIABLE: Self = Self(59);
62    pub const IMAGE_TEXEL_POINTER: Self = Self(60);
63    pub const LOAD: Self = Self(61);
64    pub const STORE: Self = Self(62);
65    pub const COPY_MEMORY: Self = Self(63);
66    pub const COPY_MEMORY_SIZED: Self = Self(64);
67    pub const ACCESS_CHAIN: Self = Self(65);
68    pub const IN_BOUNDS_ACCESS_CHAIN: Self = Self(66);
69    pub const PTR_ACCESS_CHAIN: Self = Self(67);
70    pub const ARRAY_LENGTH: Self = Self(68);
71    pub const GENERIC_PTR_MEM_SEMANTICS: Self = Self(69);
72    pub const IN_BOUNDS_PTR_ACCESS_CHAIN: Self = Self(70);
73    pub const DECORATE: Self = Self(71);
74    pub const MEMBER_DECORATE: Self = Self(72);
75    pub const DECORATION_GROUP: Self = Self(73);
76    pub const GROUP_DECORATE: Self = Self(74);
77    pub const GROUP_MEMBER_DECORATE: Self = Self(75);
78    pub const VECTOR_EXTRACT_DYNAMIC: Self = Self(77);
79    pub const VECTOR_INSERT_DYNAMIC: Self = Self(78);
80    pub const VECTOR_SHUFFLE: Self = Self(79);
81    pub const COMPOSITE_CONSTRUCT: Self = Self(80);
82    pub const COMPOSITE_EXTRACT: Self = Self(81);
83    pub const COMPOSITE_INSERT: Self = Self(82);
84    pub const COPY_OBJECT: Self = Self(83);
85    pub const TRANSPOSE: Self = Self(84);
86    pub const SAMPLED_IMAGE: Self = Self(86);
87    pub const IMAGE_SAMPLE_IMPLICIT_LOD: Self = Self(87);
88    pub const IMAGE_SAMPLE_EXPLICIT_LOD: Self = Self(88);
89    pub const IMAGE_SAMPLE_DREF_IMPLICIT_LOD: Self = Self(89);
90    pub const IMAGE_SAMPLE_DREF_EXPLICIT_LOD: Self = Self(90);
91    pub const IMAGE_SAMPLE_PROJ_IMPLICIT_LOD: Self = Self(91);
92    pub const IMAGE_SAMPLE_PROJ_EXPLICIT_LOD: Self = Self(92);
93    pub const IMAGE_SAMPLE_PROJ_DREF_IMPLICIT_LOD: Self = Self(93);
94    pub const IMAGE_SAMPLE_PROJ_DREF_EXPLICIT_LOD: Self = Self(94);
95    pub const IMAGE_FETCH: Self = Self(95);
96    pub const IMAGE_GATHER: Self = Self(96);
97    pub const IMAGE_DREF_GATHER: Self = Self(97);
98    pub const IMAGE_READ: Self = Self(98);
99    pub const IMAGE_WRITE: Self = Self(99);
100    pub const IMAGE: Self = Self(100);
101    pub const IMAGE_QUERY_FORMAT: Self = Self(101);
102    pub const IMAGE_QUERY_ORDER: Self = Self(102);
103    pub const IMAGE_QUERY_SIZE_LOD: Self = Self(103);
104    pub const IMAGE_QUERY_SIZE: Self = Self(104);
105    pub const IMAGE_QUERY_LOD: Self = Self(105);
106    pub const IMAGE_QUERY_LEVELS: Self = Self(106);
107    pub const IMAGE_QUERY_SAMPLES: Self = Self(107);
108    pub const CONVERT_FTO_U: Self = Self(109);
109    pub const CONVERT_FTO_S: Self = Self(110);
110    pub const CONVERT_STO_F: Self = Self(111);
111    pub const CONVERT_UTO_F: Self = Self(112);
112    pub const UCONVERT: Self = Self(113);
113    pub const SCONVERT: Self = Self(114);
114    pub const FCONVERT: Self = Self(115);
115    pub const QUANTIZE_TO_F16: Self = Self(116);
116    pub const CONVERT_PTR_TO_U: Self = Self(117);
117    pub const SAT_CONVERT_STO_U: Self = Self(118);
118    pub const SAT_CONVERT_UTO_S: Self = Self(119);
119    pub const CONVERT_UTO_PTR: Self = Self(120);
120    pub const PTR_CAST_TO_GENERIC: Self = Self(121);
121    pub const GENERIC_CAST_TO_PTR: Self = Self(122);
122    pub const GENERIC_CAST_TO_PTR_EXPLICIT: Self = Self(123);
123    pub const BITCAST: Self = Self(124);
124    pub const SNEGATE: Self = Self(126);
125    pub const FNEGATE: Self = Self(127);
126    pub const IADD: Self = Self(128);
127    pub const FADD: Self = Self(129);
128    pub const ISUB: Self = Self(130);
129    pub const FSUB: Self = Self(131);
130    pub const IMUL: Self = Self(132);
131    pub const FMUL: Self = Self(133);
132    pub const UDIV: Self = Self(134);
133    pub const SDIV: Self = Self(135);
134    pub const FDIV: Self = Self(136);
135    pub const UMOD: Self = Self(137);
136    pub const SREM: Self = Self(138);
137    pub const SMOD: Self = Self(139);
138    pub const FREM: Self = Self(140);
139    pub const FMOD: Self = Self(141);
140    pub const VECTOR_TIMES_SCALAR: Self = Self(142);
141    pub const MATRIX_TIMES_SCALAR: Self = Self(143);
142    pub const VECTOR_TIMES_MATRIX: Self = Self(144);
143    pub const MATRIX_TIMES_VECTOR: Self = Self(145);
144    pub const MATRIX_TIMES_MATRIX: Self = Self(146);
145    pub const OUTER_PRODUCT: Self = Self(147);
146    pub const DOT: Self = Self(148);
147    pub const IADD_CARRY: Self = Self(149);
148    pub const ISUB_BORROW: Self = Self(150);
149    pub const UMUL_EXTENDED: Self = Self(151);
150    pub const SMUL_EXTENDED: Self = Self(152);
151    pub const ANY: Self = Self(154);
152    pub const ALL: Self = Self(155);
153    pub const IS_NAN: Self = Self(156);
154    pub const IS_INF: Self = Self(157);
155    pub const IS_FINITE: Self = Self(158);
156    pub const IS_NORMAL: Self = Self(159);
157    pub const SIGN_BIT_SET: Self = Self(160);
158    pub const LESS_OR_GREATER: Self = Self(161);
159    pub const ORDERED: Self = Self(162);
160    pub const UNORDERED: Self = Self(163);
161    pub const LOGICAL_EQUAL: Self = Self(164);
162    pub const LOGICAL_NOT_EQUAL: Self = Self(165);
163    pub const LOGICAL_OR: Self = Self(166);
164    pub const LOGICAL_AND: Self = Self(167);
165    pub const LOGICAL_NOT: Self = Self(168);
166    pub const SELECT: Self = Self(169);
167    pub const IEQUAL: Self = Self(170);
168    pub const INOT_EQUAL: Self = Self(171);
169    pub const UGREATER_THAN: Self = Self(172);
170    pub const SGREATER_THAN: Self = Self(173);
171    pub const UGREATER_THAN_EQUAL: Self = Self(174);
172    pub const SGREATER_THAN_EQUAL: Self = Self(175);
173    pub const ULESS_THAN: Self = Self(176);
174    pub const SLESS_THAN: Self = Self(177);
175    pub const ULESS_THAN_EQUAL: Self = Self(178);
176    pub const SLESS_THAN_EQUAL: Self = Self(179);
177    pub const FORD_EQUAL: Self = Self(180);
178    pub const FUNORD_EQUAL: Self = Self(181);
179    pub const FORD_NOT_EQUAL: Self = Self(182);
180    pub const FUNORD_NOT_EQUAL: Self = Self(183);
181    pub const FORD_LESS_THAN: Self = Self(184);
182    pub const FUNORD_LESS_THAN: Self = Self(185);
183    pub const FORD_GREATER_THAN: Self = Self(186);
184    pub const FUNORD_GREATER_THAN: Self = Self(187);
185    pub const FORD_LESS_THAN_EQUAL: Self = Self(188);
186    pub const FUNORD_LESS_THAN_EQUAL: Self = Self(189);
187    pub const FORD_GREATER_THAN_EQUAL: Self = Self(190);
188    pub const FUNORD_GREATER_THAN_EQUAL: Self = Self(191);
189    pub const SHIFT_RIGHT_LOGICAL: Self = Self(194);
190    pub const SHIFT_RIGHT_ARITHMETIC: Self = Self(195);
191    pub const SHIFT_LEFT_LOGICAL: Self = Self(196);
192    pub const BITWISE_OR: Self = Self(197);
193    pub const BITWISE_XOR: Self = Self(198);
194    pub const BITWISE_AND: Self = Self(199);
195    pub const NOT: Self = Self(200);
196    pub const BIT_FIELD_INSERT: Self = Self(201);
197    pub const BIT_FIELD_SEXTRACT: Self = Self(202);
198    pub const BIT_FIELD_UEXTRACT: Self = Self(203);
199    pub const BIT_REVERSE: Self = Self(204);
200    pub const BIT_COUNT: Self = Self(205);
201    pub const DPDX: Self = Self(207);
202    pub const DPDY: Self = Self(208);
203    pub const FWIDTH: Self = Self(209);
204    pub const DPDX_FINE: Self = Self(210);
205    pub const DPDY_FINE: Self = Self(211);
206    pub const FWIDTH_FINE: Self = Self(212);
207    pub const DPDX_COARSE: Self = Self(213);
208    pub const DPDY_COARSE: Self = Self(214);
209    pub const FWIDTH_COARSE: Self = Self(215);
210    pub const EMIT_VERTEX: Self = Self(218);
211    pub const END_PRIMITIVE: Self = Self(219);
212    pub const EMIT_STREAM_VERTEX: Self = Self(220);
213    pub const END_STREAM_PRIMITIVE: Self = Self(221);
214    pub const CONTROL_BARRIER: Self = Self(224);
215    pub const MEMORY_BARRIER: Self = Self(225);
216    pub const ATOMIC_LOAD: Self = Self(227);
217    pub const ATOMIC_STORE: Self = Self(228);
218    pub const ATOMIC_EXCHANGE: Self = Self(229);
219    pub const ATOMIC_COMPARE_EXCHANGE: Self = Self(230);
220    pub const ATOMIC_COMPARE_EXCHANGE_WEAK: Self = Self(231);
221    pub const ATOMIC_IINCREMENT: Self = Self(232);
222    pub const ATOMIC_IDECREMENT: Self = Self(233);
223    pub const ATOMIC_IADD: Self = Self(234);
224    pub const ATOMIC_ISUB: Self = Self(235);
225    pub const ATOMIC_SMIN: Self = Self(236);
226    pub const ATOMIC_UMIN: Self = Self(237);
227    pub const ATOMIC_SMAX: Self = Self(238);
228    pub const ATOMIC_UMAX: Self = Self(239);
229    pub const ATOMIC_AND: Self = Self(240);
230    pub const ATOMIC_OR: Self = Self(241);
231    pub const ATOMIC_XOR: Self = Self(242);
232    pub const PHI: Self = Self(245);
233    pub const LOOP_MERGE: Self = Self(246);
234    pub const SELECTION_MERGE: Self = Self(247);
235    pub const LABEL: Self = Self(248);
236    pub const BRANCH: Self = Self(249);
237    pub const BRANCH_CONDITIONAL: Self = Self(250);
238    pub const SWITCH: Self = Self(251);
239    pub const KILL: Self = Self(252);
240    pub const RETURN: Self = Self(253);
241    pub const RETURN_VALUE: Self = Self(254);
242    pub const UNREACHABLE: Self = Self(255);
243    pub const LIFETIME_START: Self = Self(256);
244    pub const LIFETIME_STOP: Self = Self(257);
245    pub const GROUP_ASYNC_COPY: Self = Self(259);
246    pub const GROUP_WAIT_EVENTS: Self = Self(260);
247    pub const GROUP_ALL: Self = Self(261);
248    pub const GROUP_ANY: Self = Self(262);
249    pub const GROUP_BROADCAST: Self = Self(263);
250    pub const GROUP_IADD: Self = Self(264);
251    pub const GROUP_FADD: Self = Self(265);
252    pub const GROUP_FMIN: Self = Self(266);
253    pub const GROUP_UMIN: Self = Self(267);
254    pub const GROUP_SMIN: Self = Self(268);
255    pub const GROUP_FMAX: Self = Self(269);
256    pub const GROUP_UMAX: Self = Self(270);
257    pub const GROUP_SMAX: Self = Self(271);
258    pub const READ_PIPE: Self = Self(274);
259    pub const WRITE_PIPE: Self = Self(275);
260    pub const RESERVED_READ_PIPE: Self = Self(276);
261    pub const RESERVED_WRITE_PIPE: Self = Self(277);
262    pub const RESERVE_READ_PIPE_PACKETS: Self = Self(278);
263    pub const RESERVE_WRITE_PIPE_PACKETS: Self = Self(279);
264    pub const COMMIT_READ_PIPE: Self = Self(280);
265    pub const COMMIT_WRITE_PIPE: Self = Self(281);
266    pub const IS_VALID_RESERVE_ID: Self = Self(282);
267    pub const GET_NUM_PIPE_PACKETS: Self = Self(283);
268    pub const GET_MAX_PIPE_PACKETS: Self = Self(284);
269    pub const GROUP_RESERVE_READ_PIPE_PACKETS: Self = Self(285);
270    pub const GROUP_RESERVE_WRITE_PIPE_PACKETS: Self = Self(286);
271    pub const GROUP_COMMIT_READ_PIPE: Self = Self(287);
272    pub const GROUP_COMMIT_WRITE_PIPE: Self = Self(288);
273    pub const ENQUEUE_MARKER: Self = Self(291);
274    pub const ENQUEUE_KERNEL: Self = Self(292);
275    pub const GET_KERNEL_NDRANGE_SUB_GROUP_COUNT: Self = Self(293);
276    pub const GET_KERNEL_NDRANGE_MAX_SUB_GROUP_SIZE: Self = Self(294);
277    pub const GET_KERNEL_WORK_GROUP_SIZE: Self = Self(295);
278    pub const GET_KERNEL_PREFERRED_WORK_GROUP_SIZE_MULTIPLE: Self = Self(296);
279    pub const RETAIN_EVENT: Self = Self(297);
280    pub const RELEASE_EVENT: Self = Self(298);
281    pub const CREATE_USER_EVENT: Self = Self(299);
282    pub const IS_VALID_EVENT: Self = Self(300);
283    pub const SET_USER_EVENT_STATUS: Self = Self(301);
284    pub const CAPTURE_EVENT_PROFILING_INFO: Self = Self(302);
285    pub const GET_DEFAULT_QUEUE: Self = Self(303);
286    pub const BUILD_NDRANGE: Self = Self(304);
287    pub const IMAGE_SPARSE_SAMPLE_IMPLICIT_LOD: Self = Self(305);
288    pub const IMAGE_SPARSE_SAMPLE_EXPLICIT_LOD: Self = Self(306);
289    pub const IMAGE_SPARSE_SAMPLE_DREF_IMPLICIT_LOD: Self = Self(307);
290    pub const IMAGE_SPARSE_SAMPLE_DREF_EXPLICIT_LOD: Self = Self(308);
291    pub const IMAGE_SPARSE_SAMPLE_PROJ_IMPLICIT_LOD: Self = Self(309);
292    pub const IMAGE_SPARSE_SAMPLE_PROJ_EXPLICIT_LOD: Self = Self(310);
293    pub const IMAGE_SPARSE_SAMPLE_PROJ_DREF_IMPLICIT_LOD: Self = Self(311);
294    pub const IMAGE_SPARSE_SAMPLE_PROJ_DREF_EXPLICIT_LOD: Self = Self(312);
295    pub const IMAGE_SPARSE_FETCH: Self = Self(313);
296    pub const IMAGE_SPARSE_GATHER: Self = Self(314);
297    pub const IMAGE_SPARSE_DREF_GATHER: Self = Self(315);
298    pub const IMAGE_SPARSE_TEXELS_RESIDENT: Self = Self(316);
299    pub const NO_LINE: Self = Self(317);
300    pub const ATOMIC_FLAG_TEST_AND_SET: Self = Self(318);
301    pub const ATOMIC_FLAG_CLEAR: Self = Self(319);
302    pub const IMAGE_SPARSE_READ: Self = Self(320);
303    pub const SIZE_OF: Self = Self(321);
304    pub const TYPE_PIPE_STORAGE: Self = Self(322);
305    pub const CONSTANT_PIPE_STORAGE: Self = Self(323);
306    pub const CREATE_PIPE_FROM_PIPE_STORAGE: Self = Self(324);
307    pub const GET_KERNEL_LOCAL_SIZE_FOR_SUBGROUP_COUNT: Self = Self(325);
308    pub const GET_KERNEL_MAX_NUM_SUBGROUPS: Self = Self(326);
309    pub const TYPE_NAMED_BARRIER: Self = Self(327);
310    pub const NAMED_BARRIER_INITIALIZE: Self = Self(328);
311    pub const MEMORY_NAMED_BARRIER: Self = Self(329);
312    pub const MODULE_PROCESSED: Self = Self(330);
313    pub const EXECUTION_MODE_ID: Self = Self(331);
314    pub const DECORATE_ID: Self = Self(332);
315    pub const GROUP_NON_UNIFORM_ELECT: Self = Self(333);
316    pub const GROUP_NON_UNIFORM_ALL: Self = Self(334);
317    pub const GROUP_NON_UNIFORM_ANY: Self = Self(335);
318    pub const GROUP_NON_UNIFORM_ALL_EQUAL: Self = Self(336);
319    pub const GROUP_NON_UNIFORM_BROADCAST: Self = Self(337);
320    pub const GROUP_NON_UNIFORM_BROADCAST_FIRST: Self = Self(338);
321    pub const GROUP_NON_UNIFORM_BALLOT: Self = Self(339);
322    pub const GROUP_NON_UNIFORM_INVERSE_BALLOT: Self = Self(340);
323    pub const GROUP_NON_UNIFORM_BALLOT_BIT_EXTRACT: Self = Self(341);
324    pub const GROUP_NON_UNIFORM_BALLOT_BIT_COUNT: Self = Self(342);
325    pub const GROUP_NON_UNIFORM_BALLOT_FIND_LSB: Self = Self(343);
326    pub const GROUP_NON_UNIFORM_BALLOT_FIND_MSB: Self = Self(344);
327    pub const GROUP_NON_UNIFORM_SHUFFLE: Self = Self(345);
328    pub const GROUP_NON_UNIFORM_SHUFFLE_XOR: Self = Self(346);
329    pub const GROUP_NON_UNIFORM_SHUFFLE_UP: Self = Self(347);
330    pub const GROUP_NON_UNIFORM_SHUFFLE_DOWN: Self = Self(348);
331    pub const GROUP_NON_UNIFORM_IADD: Self = Self(349);
332    pub const GROUP_NON_UNIFORM_FADD: Self = Self(350);
333    pub const GROUP_NON_UNIFORM_IMUL: Self = Self(351);
334    pub const GROUP_NON_UNIFORM_FMUL: Self = Self(352);
335    pub const GROUP_NON_UNIFORM_SMIN: Self = Self(353);
336    pub const GROUP_NON_UNIFORM_UMIN: Self = Self(354);
337    pub const GROUP_NON_UNIFORM_FMIN: Self = Self(355);
338    pub const GROUP_NON_UNIFORM_SMAX: Self = Self(356);
339    pub const GROUP_NON_UNIFORM_UMAX: Self = Self(357);
340    pub const GROUP_NON_UNIFORM_FMAX: Self = Self(358);
341    pub const GROUP_NON_UNIFORM_BITWISE_AND: Self = Self(359);
342    pub const GROUP_NON_UNIFORM_BITWISE_OR: Self = Self(360);
343    pub const GROUP_NON_UNIFORM_BITWISE_XOR: Self = Self(361);
344    pub const GROUP_NON_UNIFORM_LOGICAL_AND: Self = Self(362);
345    pub const GROUP_NON_UNIFORM_LOGICAL_OR: Self = Self(363);
346    pub const GROUP_NON_UNIFORM_LOGICAL_XOR: Self = Self(364);
347    pub const GROUP_NON_UNIFORM_QUAD_BROADCAST: Self = Self(365);
348    pub const GROUP_NON_UNIFORM_QUAD_SWAP: Self = Self(366);
349    pub const COPY_LOGICAL: Self = Self(400);
350    pub const PTR_EQUAL: Self = Self(401);
351    pub const PTR_NOT_EQUAL: Self = Self(402);
352    pub const PTR_DIFF: Self = Self(403);
353    pub const COLOR_ATTACHMENT_READ_EXT: Self = Self(4160);
354    pub const DEPTH_ATTACHMENT_READ_EXT: Self = Self(4161);
355    pub const STENCIL_ATTACHMENT_READ_EXT: Self = Self(4162);
356    pub const TYPE_TENSOR_ARM: Self = Self(4163);
357    pub const TENSOR_READ_ARM: Self = Self(4164);
358    pub const TENSOR_WRITE_ARM: Self = Self(4165);
359    pub const TENSOR_QUERY_SIZE_ARM: Self = Self(4166);
360    pub const GRAPH_CONSTANT_ARM: Self = Self(4181);
361    pub const GRAPH_ENTRY_POINT_ARM: Self = Self(4182);
362    pub const GRAPH_ARM: Self = Self(4183);
363    pub const GRAPH_INPUT_ARM: Self = Self(4184);
364    pub const GRAPH_SET_OUTPUT_ARM: Self = Self(4185);
365    pub const GRAPH_END_ARM: Self = Self(4186);
366    pub const TYPE_GRAPH_ARM: Self = Self(4190);
367    pub const TERMINATE_INVOCATION: Self = Self(4416);
368    pub const TYPE_UNTYPED_POINTER_KHR: Self = Self(4417);
369    pub const UNTYPED_VARIABLE_KHR: Self = Self(4418);
370    pub const UNTYPED_ACCESS_CHAIN_KHR: Self = Self(4419);
371    pub const UNTYPED_IN_BOUNDS_ACCESS_CHAIN_KHR: Self = Self(4420);
372    pub const SUBGROUP_BALLOT_KHR: Self = Self(4421);
373    pub const SUBGROUP_FIRST_INVOCATION_KHR: Self = Self(4422);
374    pub const UNTYPED_PTR_ACCESS_CHAIN_KHR: Self = Self(4423);
375    pub const UNTYPED_IN_BOUNDS_PTR_ACCESS_CHAIN_KHR: Self = Self(4424);
376    pub const UNTYPED_ARRAY_LENGTH_KHR: Self = Self(4425);
377    pub const UNTYPED_PREFETCH_KHR: Self = Self(4426);
378    pub const FMA_KHR: Self = Self(4427);
379    pub const SUBGROUP_ALL_KHR: Self = Self(4428);
380    pub const SUBGROUP_ANY_KHR: Self = Self(4429);
381    pub const SUBGROUP_ALL_EQUAL_KHR: Self = Self(4430);
382    pub const GROUP_NON_UNIFORM_ROTATE_KHR: Self = Self(4431);
383    pub const SUBGROUP_READ_INVOCATION_KHR: Self = Self(4432);
384    pub const EXT_INST_WITH_FORWARD_REFS_KHR: Self = Self(4433);
385    pub const UNTYPED_GROUP_ASYNC_COPY_KHR: Self = Self(4434);
386    pub const TRACE_RAY_KHR: Self = Self(4445);
387    pub const EXECUTE_CALLABLE_KHR: Self = Self(4446);
388    pub const CONVERT_UTO_ACCELERATION_STRUCTURE_KHR: Self = Self(4447);
389    pub const IGNORE_INTERSECTION_KHR: Self = Self(4448);
390    pub const TERMINATE_RAY_KHR: Self = Self(4449);
391    pub const SDOT: Self = Self(4450);
392    pub const UDOT: Self = Self(4451);
393    pub const SUDOT: Self = Self(4452);
394    pub const SDOT_ACC_SAT: Self = Self(4453);
395    pub const UDOT_ACC_SAT: Self = Self(4454);
396    pub const SUDOT_ACC_SAT: Self = Self(4455);
397    pub const TYPE_COOPERATIVE_MATRIX_KHR: Self = Self(4456);
398    pub const COOPERATIVE_MATRIX_LOAD_KHR: Self = Self(4457);
399    pub const COOPERATIVE_MATRIX_STORE_KHR: Self = Self(4458);
400    pub const COOPERATIVE_MATRIX_MUL_ADD_KHR: Self = Self(4459);
401    pub const COOPERATIVE_MATRIX_LENGTH_KHR: Self = Self(4460);
402    pub const CONSTANT_COMPOSITE_REPLICATE_EXT: Self = Self(4461);
403    pub const SPEC_CONSTANT_COMPOSITE_REPLICATE_EXT: Self = Self(4462);
404    pub const COMPOSITE_CONSTRUCT_REPLICATE_EXT: Self = Self(4463);
405    pub const TYPE_RAY_QUERY_KHR: Self = Self(4472);
406    pub const RAY_QUERY_INITIALIZE_KHR: Self = Self(4473);
407    pub const RAY_QUERY_TERMINATE_KHR: Self = Self(4474);
408    pub const RAY_QUERY_GENERATE_INTERSECTION_KHR: Self = Self(4475);
409    pub const RAY_QUERY_CONFIRM_INTERSECTION_KHR: Self = Self(4476);
410    pub const RAY_QUERY_PROCEED_KHR: Self = Self(4477);
411    pub const RAY_QUERY_GET_INTERSECTION_TYPE_KHR: Self = Self(4479);
412    pub const IMAGE_SAMPLE_WEIGHTED_QCOM: Self = Self(4480);
413    pub const IMAGE_BOX_FILTER_QCOM: Self = Self(4481);
414    pub const IMAGE_BLOCK_MATCH_SSDQCOM: Self = Self(4482);
415    pub const IMAGE_BLOCK_MATCH_SADQCOM: Self = Self(4483);
416    pub const BIT_CAST_ARRAY_QCOM: Self = Self(4497);
417    pub const IMAGE_BLOCK_MATCH_WINDOW_SSDQCOM: Self = Self(4500);
418    pub const IMAGE_BLOCK_MATCH_WINDOW_SADQCOM: Self = Self(4501);
419    pub const IMAGE_BLOCK_MATCH_GATHER_SSDQCOM: Self = Self(4502);
420    pub const IMAGE_BLOCK_MATCH_GATHER_SADQCOM: Self = Self(4503);
421    pub const COMPOSITE_CONSTRUCT_COOP_MAT_QCOM: Self = Self(4540);
422    pub const COMPOSITE_EXTRACT_COOP_MAT_QCOM: Self = Self(4541);
423    pub const EXTRACT_SUB_ARRAY_QCOM: Self = Self(4542);
424    pub const GROUP_IADD_NON_UNIFORM_AMD: Self = Self(5000);
425    pub const GROUP_FADD_NON_UNIFORM_AMD: Self = Self(5001);
426    pub const GROUP_FMIN_NON_UNIFORM_AMD: Self = Self(5002);
427    pub const GROUP_UMIN_NON_UNIFORM_AMD: Self = Self(5003);
428    pub const GROUP_SMIN_NON_UNIFORM_AMD: Self = Self(5004);
429    pub const GROUP_FMAX_NON_UNIFORM_AMD: Self = Self(5005);
430    pub const GROUP_UMAX_NON_UNIFORM_AMD: Self = Self(5006);
431    pub const GROUP_SMAX_NON_UNIFORM_AMD: Self = Self(5007);
432    pub const FRAGMENT_MASK_FETCH_AMD: Self = Self(5011);
433    pub const FRAGMENT_FETCH_AMD: Self = Self(5012);
434    pub const READ_CLOCK_KHR: Self = Self(5056);
435    pub const ALLOCATE_NODE_PAYLOADS_AMDX: Self = Self(5074);
436    pub const ENQUEUE_NODE_PAYLOADS_AMDX: Self = Self(5075);
437    pub const TYPE_NODE_PAYLOAD_ARRAY_AMDX: Self = Self(5076);
438    pub const FINISH_WRITING_NODE_PAYLOAD_AMDX: Self = Self(5078);
439    pub const NODE_PAYLOAD_ARRAY_LENGTH_AMDX: Self = Self(5090);
440    pub const IS_NODE_PAYLOAD_VALID_AMDX: Self = Self(5101);
441    pub const CONSTANT_STRING_AMDX: Self = Self(5103);
442    pub const SPEC_CONSTANT_STRING_AMDX: Self = Self(5104);
443    pub const GROUP_NON_UNIFORM_QUAD_ALL_KHR: Self = Self(5110);
444    pub const GROUP_NON_UNIFORM_QUAD_ANY_KHR: Self = Self(5111);
445    pub const TYPE_BUFFER_EXT: Self = Self(5115);
446    pub const BUFFER_POINTER_EXT: Self = Self(5119);
447    pub const ABORT_KHR: Self = Self(5121);
448    pub const UNTYPED_IMAGE_TEXEL_POINTER_EXT: Self = Self(5126);
449    pub const MEMBER_DECORATE_ID_EXT: Self = Self(5127);
450    pub const CONSTANT_SIZE_OF_EXT: Self = Self(5129);
451    pub const CONSTANT_DATA_KHR: Self = Self(5147);
452    pub const SPEC_CONSTANT_DATA_KHR: Self = Self(5148);
453    pub const POISON_KHR: Self = Self(5158);
454    pub const FREEZE_KHR: Self = Self(5159);
455    pub const HIT_OBJECT_RECORD_HIT_MOTION_NV: Self = Self(5249);
456    pub const HIT_OBJECT_RECORD_HIT_WITH_INDEX_MOTION_NV: Self = Self(5250);
457    pub const HIT_OBJECT_RECORD_MISS_MOTION_NV: Self = Self(5251);
458    pub const HIT_OBJECT_GET_WORLD_TO_OBJECT_NV: Self = Self(5252);
459    pub const HIT_OBJECT_GET_OBJECT_TO_WORLD_NV: Self = Self(5253);
460    pub const HIT_OBJECT_GET_OBJECT_RAY_DIRECTION_NV: Self = Self(5254);
461    pub const HIT_OBJECT_GET_OBJECT_RAY_ORIGIN_NV: Self = Self(5255);
462    pub const HIT_OBJECT_TRACE_RAY_MOTION_NV: Self = Self(5256);
463    pub const HIT_OBJECT_GET_SHADER_RECORD_BUFFER_HANDLE_NV: Self = Self(5257);
464    pub const HIT_OBJECT_GET_SHADER_BINDING_TABLE_RECORD_INDEX_NV: Self = Self(5258);
465    pub const HIT_OBJECT_RECORD_EMPTY_NV: Self = Self(5259);
466    pub const HIT_OBJECT_TRACE_RAY_NV: Self = Self(5260);
467    pub const HIT_OBJECT_RECORD_HIT_NV: Self = Self(5261);
468    pub const HIT_OBJECT_RECORD_HIT_WITH_INDEX_NV: Self = Self(5262);
469    pub const HIT_OBJECT_RECORD_MISS_NV: Self = Self(5263);
470    pub const HIT_OBJECT_EXECUTE_SHADER_NV: Self = Self(5264);
471    pub const HIT_OBJECT_GET_CURRENT_TIME_NV: Self = Self(5265);
472    pub const HIT_OBJECT_GET_ATTRIBUTES_NV: Self = Self(5266);
473    pub const HIT_OBJECT_GET_HIT_KIND_NV: Self = Self(5267);
474    pub const HIT_OBJECT_GET_PRIMITIVE_INDEX_NV: Self = Self(5268);
475    pub const HIT_OBJECT_GET_GEOMETRY_INDEX_NV: Self = Self(5269);
476    pub const HIT_OBJECT_GET_INSTANCE_ID_NV: Self = Self(5270);
477    pub const HIT_OBJECT_GET_INSTANCE_CUSTOM_INDEX_NV: Self = Self(5271);
478    pub const HIT_OBJECT_GET_WORLD_RAY_DIRECTION_NV: Self = Self(5272);
479    pub const HIT_OBJECT_GET_WORLD_RAY_ORIGIN_NV: Self = Self(5273);
480    pub const HIT_OBJECT_GET_RAY_TMAX_NV: Self = Self(5274);
481    pub const HIT_OBJECT_GET_RAY_TMIN_NV: Self = Self(5275);
482    pub const HIT_OBJECT_IS_EMPTY_NV: Self = Self(5276);
483    pub const HIT_OBJECT_IS_HIT_NV: Self = Self(5277);
484    pub const HIT_OBJECT_IS_MISS_NV: Self = Self(5278);
485    pub const REORDER_THREAD_WITH_HIT_OBJECT_NV: Self = Self(5279);
486    pub const REORDER_THREAD_WITH_HINT_NV: Self = Self(5280);
487    pub const TYPE_HIT_OBJECT_NV: Self = Self(5281);
488    pub const IMAGE_SAMPLE_FOOTPRINT_NV: Self = Self(5283);
489    pub const TYPE_VECTOR_ID_EXT: Self = Self(5288);
490    pub const COOPERATIVE_VECTOR_MATRIX_MUL_NV: Self = Self(5289);
491    pub const COOPERATIVE_VECTOR_OUTER_PRODUCT_ACCUMULATE_NV: Self = Self(5290);
492    pub const COOPERATIVE_VECTOR_REDUCE_SUM_ACCUMULATE_NV: Self = Self(5291);
493    pub const COOPERATIVE_VECTOR_MATRIX_MUL_ADD_NV: Self = Self(5292);
494    pub const COOPERATIVE_MATRIX_CONVERT_NV: Self = Self(5293);
495    pub const EMIT_MESH_TASKS_EXT: Self = Self(5294);
496    pub const SET_MESH_OUTPUTS_EXT: Self = Self(5295);
497    pub const GROUP_NON_UNIFORM_PARTITION_EXT: Self = Self(5296);
498    pub const WRITE_PACKED_PRIMITIVE_INDICES4X8_NV: Self = Self(5299);
499    pub const FETCH_MICRO_TRIANGLE_VERTEX_POSITION_NV: Self = Self(5300);
500    pub const FETCH_MICRO_TRIANGLE_VERTEX_BARYCENTRIC_NV: Self = Self(5301);
501    pub const COOPERATIVE_VECTOR_LOAD_NV: Self = Self(5302);
502    pub const COOPERATIVE_VECTOR_STORE_NV: Self = Self(5303);
503    pub const HIT_OBJECT_RECORD_FROM_QUERY_EXT: Self = Self(5304);
504    pub const HIT_OBJECT_RECORD_MISS_EXT: Self = Self(5305);
505    pub const HIT_OBJECT_RECORD_MISS_MOTION_EXT: Self = Self(5306);
506    pub const HIT_OBJECT_GET_INTERSECTION_TRIANGLE_VERTEX_POSITIONS_EXT: Self = Self(5307);
507    pub const HIT_OBJECT_GET_RAY_FLAGS_EXT: Self = Self(5308);
508    pub const HIT_OBJECT_SET_SHADER_BINDING_TABLE_RECORD_INDEX_EXT: Self = Self(5309);
509    pub const HIT_OBJECT_REORDER_EXECUTE_SHADER_EXT: Self = Self(5310);
510    pub const HIT_OBJECT_TRACE_REORDER_EXECUTE_EXT: Self = Self(5311);
511    pub const HIT_OBJECT_TRACE_MOTION_REORDER_EXECUTE_EXT: Self = Self(5312);
512    pub const TYPE_HIT_OBJECT_EXT: Self = Self(5313);
513    pub const REORDER_THREAD_WITH_HINT_EXT: Self = Self(5314);
514    pub const REORDER_THREAD_WITH_HIT_OBJECT_EXT: Self = Self(5315);
515    pub const HIT_OBJECT_TRACE_RAY_EXT: Self = Self(5316);
516    pub const HIT_OBJECT_TRACE_RAY_MOTION_EXT: Self = Self(5317);
517    pub const HIT_OBJECT_RECORD_EMPTY_EXT: Self = Self(5318);
518    pub const HIT_OBJECT_EXECUTE_SHADER_EXT: Self = Self(5319);
519    pub const HIT_OBJECT_GET_CURRENT_TIME_EXT: Self = Self(5320);
520    pub const HIT_OBJECT_GET_ATTRIBUTES_EXT: Self = Self(5321);
521    pub const HIT_OBJECT_GET_HIT_KIND_EXT: Self = Self(5322);
522    pub const HIT_OBJECT_GET_PRIMITIVE_INDEX_EXT: Self = Self(5323);
523    pub const HIT_OBJECT_GET_GEOMETRY_INDEX_EXT: Self = Self(5324);
524    pub const HIT_OBJECT_GET_INSTANCE_ID_EXT: Self = Self(5325);
525    pub const HIT_OBJECT_GET_INSTANCE_CUSTOM_INDEX_EXT: Self = Self(5326);
526    pub const HIT_OBJECT_GET_OBJECT_RAY_ORIGIN_EXT: Self = Self(5327);
527    pub const HIT_OBJECT_GET_OBJECT_RAY_DIRECTION_EXT: Self = Self(5328);
528    pub const HIT_OBJECT_GET_WORLD_RAY_DIRECTION_EXT: Self = Self(5329);
529    pub const HIT_OBJECT_GET_WORLD_RAY_ORIGIN_EXT: Self = Self(5330);
530    pub const HIT_OBJECT_GET_OBJECT_TO_WORLD_EXT: Self = Self(5331);
531    pub const HIT_OBJECT_GET_WORLD_TO_OBJECT_EXT: Self = Self(5332);
532    pub const HIT_OBJECT_GET_RAY_TMAX_EXT: Self = Self(5333);
533    pub const REPORT_INTERSECTION_KHR: Self = Self(5334);
534    pub const IGNORE_INTERSECTION_NV: Self = Self(5335);
535    pub const TERMINATE_RAY_NV: Self = Self(5336);
536    pub const TRACE_NV: Self = Self(5337);
537    pub const TRACE_MOTION_NV: Self = Self(5338);
538    pub const TRACE_RAY_MOTION_NV: Self = Self(5339);
539    pub const RAY_QUERY_GET_INTERSECTION_TRIANGLE_VERTEX_POSITIONS_KHR: Self = Self(5340);
540    pub const TYPE_ACCELERATION_STRUCTURE_KHR: Self = Self(5341);
541    pub const EXECUTE_CALLABLE_NV: Self = Self(5344);
542    pub const RAY_QUERY_GET_INTERSECTION_CLUSTER_ID_NV: Self = Self(5345);
543    pub const HIT_OBJECT_GET_CLUSTER_ID_NV: Self = Self(5346);
544    pub const HIT_OBJECT_GET_RAY_TMIN_EXT: Self = Self(5347);
545    pub const HIT_OBJECT_GET_SHADER_BINDING_TABLE_RECORD_INDEX_EXT: Self = Self(5348);
546    pub const HIT_OBJECT_GET_SHADER_RECORD_BUFFER_HANDLE_EXT: Self = Self(5349);
547    pub const HIT_OBJECT_IS_EMPTY_EXT: Self = Self(5350);
548    pub const HIT_OBJECT_IS_HIT_EXT: Self = Self(5351);
549    pub const HIT_OBJECT_IS_MISS_EXT: Self = Self(5352);
550    pub const TYPE_COOPERATIVE_MATRIX_NV: Self = Self(5358);
551    pub const COOPERATIVE_MATRIX_LOAD_NV: Self = Self(5359);
552    pub const COOPERATIVE_MATRIX_STORE_NV: Self = Self(5360);
553    pub const COOPERATIVE_MATRIX_MUL_ADD_NV: Self = Self(5361);
554    pub const COOPERATIVE_MATRIX_LENGTH_NV: Self = Self(5362);
555    pub const BEGIN_INVOCATION_INTERLOCK_EXT: Self = Self(5364);
556    pub const END_INVOCATION_INTERLOCK_EXT: Self = Self(5365);
557    pub const COOPERATIVE_MATRIX_REDUCE_NV: Self = Self(5366);
558    pub const COOPERATIVE_MATRIX_LOAD_TENSOR_NV: Self = Self(5367);
559    pub const COOPERATIVE_MATRIX_STORE_TENSOR_NV: Self = Self(5368);
560    pub const COOPERATIVE_MATRIX_PER_ELEMENT_OP_NV: Self = Self(5369);
561    pub const TYPE_TENSOR_LAYOUT_NV: Self = Self(5370);
562    pub const TYPE_TENSOR_VIEW_NV: Self = Self(5371);
563    pub const CREATE_TENSOR_LAYOUT_NV: Self = Self(5372);
564    pub const TENSOR_LAYOUT_SET_DIMENSION_NV: Self = Self(5373);
565    pub const TENSOR_LAYOUT_SET_STRIDE_NV: Self = Self(5374);
566    pub const TENSOR_LAYOUT_SLICE_NV: Self = Self(5375);
567    pub const TENSOR_LAYOUT_SET_CLAMP_VALUE_NV: Self = Self(5376);
568    pub const CREATE_TENSOR_VIEW_NV: Self = Self(5377);
569    pub const TENSOR_VIEW_SET_DIMENSION_NV: Self = Self(5378);
570    pub const TENSOR_VIEW_SET_STRIDE_NV: Self = Self(5379);
571    pub const DEMOTE_TO_HELPER_INVOCATION: Self = Self(5380);
572    pub const IS_HELPER_INVOCATION_EXT: Self = Self(5381);
573    pub const TENSOR_VIEW_SET_CLIP_NV: Self = Self(5382);
574    pub const TENSOR_LAYOUT_SET_BLOCK_SIZE_NV: Self = Self(5384);
575    pub const COOPERATIVE_MATRIX_TRANSPOSE_NV: Self = Self(5390);
576    pub const CONVERT_UTO_IMAGE_NV: Self = Self(5391);
577    pub const CONVERT_UTO_SAMPLER_NV: Self = Self(5392);
578    pub const CONVERT_IMAGE_TO_UNV: Self = Self(5393);
579    pub const CONVERT_SAMPLER_TO_UNV: Self = Self(5394);
580    pub const CONVERT_UTO_SAMPLED_IMAGE_NV: Self = Self(5395);
581    pub const CONVERT_SAMPLED_IMAGE_TO_UNV: Self = Self(5396);
582    pub const SAMPLER_IMAGE_ADDRESSING_MODE_NV: Self = Self(5397);
583    pub const RAW_ACCESS_CHAIN_NV: Self = Self(5398);
584    pub const RAY_QUERY_GET_INTERSECTION_SPHERE_POSITION_NV: Self = Self(5427);
585    pub const RAY_QUERY_GET_INTERSECTION_SPHERE_RADIUS_NV: Self = Self(5428);
586    pub const RAY_QUERY_GET_INTERSECTION_LSSPOSITIONS_NV: Self = Self(5429);
587    pub const RAY_QUERY_GET_INTERSECTION_LSSRADII_NV: Self = Self(5430);
588    pub const RAY_QUERY_GET_INTERSECTION_LSSHIT_VALUE_NV: Self = Self(5431);
589    pub const HIT_OBJECT_GET_SPHERE_POSITION_NV: Self = Self(5432);
590    pub const HIT_OBJECT_GET_SPHERE_RADIUS_NV: Self = Self(5433);
591    pub const HIT_OBJECT_GET_LSSPOSITIONS_NV: Self = Self(5434);
592    pub const HIT_OBJECT_GET_LSSRADII_NV: Self = Self(5435);
593    pub const HIT_OBJECT_IS_SPHERE_HIT_NV: Self = Self(5436);
594    pub const HIT_OBJECT_IS_LSSHIT_NV: Self = Self(5437);
595    pub const RAY_QUERY_IS_SPHERE_HIT_NV: Self = Self(5438);
596    pub const RAY_QUERY_IS_LSSHIT_NV: Self = Self(5439);
597    pub const SUBGROUP_SHUFFLE_INTEL: Self = Self(5571);
598    pub const SUBGROUP_SHUFFLE_DOWN_INTEL: Self = Self(5572);
599    pub const SUBGROUP_SHUFFLE_UP_INTEL: Self = Self(5573);
600    pub const SUBGROUP_SHUFFLE_XOR_INTEL: Self = Self(5574);
601    pub const SUBGROUP_BLOCK_READ_INTEL: Self = Self(5575);
602    pub const SUBGROUP_BLOCK_WRITE_INTEL: Self = Self(5576);
603    pub const SUBGROUP_IMAGE_BLOCK_READ_INTEL: Self = Self(5577);
604    pub const SUBGROUP_IMAGE_BLOCK_WRITE_INTEL: Self = Self(5578);
605    pub const SUBGROUP_IMAGE_MEDIA_BLOCK_READ_INTEL: Self = Self(5580);
606    pub const SUBGROUP_IMAGE_MEDIA_BLOCK_WRITE_INTEL: Self = Self(5581);
607    pub const UCOUNT_LEADING_ZEROS_INTEL: Self = Self(5585);
608    pub const UCOUNT_TRAILING_ZEROS_INTEL: Self = Self(5586);
609    pub const ABS_ISUB_INTEL: Self = Self(5587);
610    pub const ABS_USUB_INTEL: Self = Self(5588);
611    pub const IADD_SAT_INTEL: Self = Self(5589);
612    pub const UADD_SAT_INTEL: Self = Self(5590);
613    pub const IAVERAGE_INTEL: Self = Self(5591);
614    pub const UAVERAGE_INTEL: Self = Self(5592);
615    pub const IAVERAGE_ROUNDED_INTEL: Self = Self(5593);
616    pub const UAVERAGE_ROUNDED_INTEL: Self = Self(5594);
617    pub const ISUB_SAT_INTEL: Self = Self(5595);
618    pub const USUB_SAT_INTEL: Self = Self(5596);
619    pub const IMUL32X16_INTEL: Self = Self(5597);
620    pub const UMUL32X16_INTEL: Self = Self(5598);
621    pub const ATOMIC_FMIN_EXT: Self = Self(5614);
622    pub const ATOMIC_FMAX_EXT: Self = Self(5615);
623    pub const ASSUME_TRUE_KHR: Self = Self(5630);
624    pub const EXPECT_KHR: Self = Self(5631);
625    pub const DECORATE_STRING: Self = Self(5632);
626    pub const MEMBER_DECORATE_STRING: Self = Self(5633);
627    pub const VARIABLE_LENGTH_ARRAY_INTEL: Self = Self(5818);
628    pub const SAVE_MEMORY_INTEL: Self = Self(5819);
629    pub const RESTORE_MEMORY_INTEL: Self = Self(5820);
630    pub const LOOP_CONTROL_INTEL: Self = Self(5887);
631    pub const RAY_QUERY_GET_RAY_TMIN_KHR: Self = Self(6016);
632    pub const RAY_QUERY_GET_RAY_FLAGS_KHR: Self = Self(6017);
633    pub const RAY_QUERY_GET_INTERSECTION_TKHR: Self = Self(6018);
634    pub const RAY_QUERY_GET_INTERSECTION_INSTANCE_CUSTOM_INDEX_KHR: Self = Self(6019);
635    pub const RAY_QUERY_GET_INTERSECTION_INSTANCE_ID_KHR: Self = Self(6020);
636    pub const RAY_QUERY_GET_INTERSECTION_INSTANCE_SHADER_BINDING_TABLE_RECORD_OFFSET_KHR: Self =
637        Self(6021);
638    pub const RAY_QUERY_GET_INTERSECTION_GEOMETRY_INDEX_KHR: Self = Self(6022);
639    pub const RAY_QUERY_GET_INTERSECTION_PRIMITIVE_INDEX_KHR: Self = Self(6023);
640    pub const RAY_QUERY_GET_INTERSECTION_BARYCENTRICS_KHR: Self = Self(6024);
641    pub const RAY_QUERY_GET_INTERSECTION_FRONT_FACE_KHR: Self = Self(6025);
642    pub const RAY_QUERY_GET_INTERSECTION_CANDIDATE_AABBOPAQUE_KHR: Self = Self(6026);
643    pub const RAY_QUERY_GET_INTERSECTION_OBJECT_RAY_DIRECTION_KHR: Self = Self(6027);
644    pub const RAY_QUERY_GET_INTERSECTION_OBJECT_RAY_ORIGIN_KHR: Self = Self(6028);
645    pub const RAY_QUERY_GET_WORLD_RAY_DIRECTION_KHR: Self = Self(6029);
646    pub const RAY_QUERY_GET_WORLD_RAY_ORIGIN_KHR: Self = Self(6030);
647    pub const RAY_QUERY_GET_INTERSECTION_OBJECT_TO_WORLD_KHR: Self = Self(6031);
648    pub const RAY_QUERY_GET_INTERSECTION_WORLD_TO_OBJECT_KHR: Self = Self(6032);
649    pub const ATOMIC_FADD_EXT: Self = Self(6035);
650    pub const TYPE_BUFFER_SURFACE_INTEL: Self = Self(6086);
651    pub const TYPE_STRUCT_CONTINUED_INTEL: Self = Self(6090);
652    pub const CONSTANT_COMPOSITE_CONTINUED_INTEL: Self = Self(6091);
653    pub const SPEC_CONSTANT_COMPOSITE_CONTINUED_INTEL: Self = Self(6092);
654    pub const COMPOSITE_CONSTRUCT_CONTINUED_INTEL: Self = Self(6096);
655    pub const CONVERT_FTO_BF16_INTEL: Self = Self(6116);
656    pub const CONVERT_BF16_TO_FINTEL: Self = Self(6117);
657    pub const CONTROL_BARRIER_ARRIVE_INTEL: Self = Self(6142);
658    pub const CONTROL_BARRIER_WAIT_INTEL: Self = Self(6143);
659    pub const ARITHMETIC_FENCE_EXT: Self = Self(6145);
660    pub const SUBGROUP_BLOCK_PREFETCH_INTEL: Self = Self(6221);
661    pub const SUBGROUP2_DBLOCK_LOAD_INTEL: Self = Self(6231);
662    pub const SUBGROUP2_DBLOCK_LOAD_TRANSFORM_INTEL: Self = Self(6232);
663    pub const SUBGROUP2_DBLOCK_LOAD_TRANSPOSE_INTEL: Self = Self(6233);
664    pub const SUBGROUP2_DBLOCK_PREFETCH_INTEL: Self = Self(6234);
665    pub const SUBGROUP2_DBLOCK_STORE_INTEL: Self = Self(6235);
666    pub const SUBGROUP_MATRIX_MULTIPLY_ACCUMULATE_INTEL: Self = Self(6237);
667    pub const BITWISE_FUNCTION_INTEL: Self = Self(6242);
668    pub const UNTYPED_VARIABLE_LENGTH_ARRAY_INTEL: Self = Self(6244);
669    pub const CONDITIONAL_EXTENSION_INTEL: Self = Self(6248);
670    pub const CONDITIONAL_ENTRY_POINT_INTEL: Self = Self(6249);
671    pub const CONDITIONAL_CAPABILITY_INTEL: Self = Self(6250);
672    pub const SPEC_CONSTANT_TARGET_INTEL: Self = Self(6251);
673    pub const SPEC_CONSTANT_ARCHITECTURE_INTEL: Self = Self(6252);
674    pub const SPEC_CONSTANT_CAPABILITIES_INTEL: Self = Self(6253);
675    pub const CONDITIONAL_COPY_OBJECT_INTEL: Self = Self(6254);
676    pub const GROUP_IMUL_KHR: Self = Self(6401);
677    pub const GROUP_FMUL_KHR: Self = Self(6402);
678    pub const GROUP_BITWISE_AND_KHR: Self = Self(6403);
679    pub const GROUP_BITWISE_OR_KHR: Self = Self(6404);
680    pub const GROUP_BITWISE_XOR_KHR: Self = Self(6405);
681    pub const GROUP_LOGICAL_AND_KHR: Self = Self(6406);
682    pub const GROUP_LOGICAL_OR_KHR: Self = Self(6407);
683    pub const GROUP_LOGICAL_XOR_KHR: Self = Self(6408);
684    pub const ROUND_FTO_TF32_INTEL: Self = Self(6426);
685    pub const MASKED_GATHER_INTEL: Self = Self(6428);
686    pub const MASKED_SCATTER_INTEL: Self = Self(6429);
687    pub const CONVERT_HANDLE_TO_IMAGE_INTEL: Self = Self(6529);
688    pub const CONVERT_HANDLE_TO_SAMPLER_INTEL: Self = Self(6530);
689    pub const CONVERT_HANDLE_TO_SAMPLED_IMAGE_INTEL: Self = Self(6531);
690    pub const FDOT2_MIX_ACC32_VALVE: Self = Self(6916);
691    pub const FDOT2_MIX_ACC16_VALVE: Self = Self(6917);
692    pub const FDOT4_MIX_ACC32_VALVE: Self = Self(6918);
693}
694impl Word for Code {
695    #[inline]
696    fn from_word(word: u32) -> Self {
697        Self(word as u16)
698    }
699}
700impl Display for Code {
701    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
702        write!(f, "{}", INST_INFOS[self.0 as usize].name)
703    }
704}
705#[derive(Clone, Copy)]
706pub struct InstMemoryModel {
707    pub addressing_model: AddressingModel,
708    pub memory_model: MemoryModel,
709}
710#[derive(Clone, Copy)]
711pub struct InstEntryPoint<'a> {
712    pub execution_model: ExecutionModel,
713    pub entry_point: IdRef,
714    pub name: LiteralString<'a>,
715    pub interface: &'a [IdRef],
716}
717#[derive(Clone, Copy)]
718pub struct InstExecutionMode {
719    pub entry_point: IdRef,
720    pub mode: ExecutionMode,
721}
722#[derive(Clone, Copy)]
723pub struct InstCapability {
724    pub capability: Capability,
725}
726#[derive(Clone, Copy)]
727pub struct InstExecutionModeId {
728    pub entry_point: IdRef,
729    pub mode: ExecutionMode,
730}
731#[derive(Clone, Copy)]
732pub struct InstConditionalEntryPointINTEL<'a> {
733    pub condition: IdRef,
734    pub execution_model: ExecutionModel,
735    pub entry_point: IdRef,
736    pub name: LiteralString<'a>,
737    pub interface: &'a [IdRef],
738}
739#[derive(Clone, Copy)]
740pub struct InstConditionalCapabilityINTEL {
741    pub condition: IdRef,
742    pub capability: Capability,
743}
744#[derive(Clone, Copy)]
745pub struct InstVariable {
746    pub id_result_type: IdResultType,
747    pub id_result: IdResult,
748    pub storage_class: StorageClass,
749    pub initializer: Option<IdRef>,
750}
751#[derive(Clone, Copy)]
752pub struct InstImageTexelPointer {
753    pub id_result_type: IdResultType,
754    pub id_result: IdResult,
755    pub image: IdRef,
756    pub coordinate: IdRef,
757    pub sample: IdRef,
758}
759#[derive(Clone, Copy)]
760pub struct InstLoad {
761    pub id_result_type: IdResultType,
762    pub id_result: IdResult,
763    pub pointer: IdRef,
764    pub memory_access: Option<MemoryAccess>,
765}
766#[derive(Clone, Copy)]
767pub struct InstAccessChain<'a> {
768    pub id_result_type: IdResultType,
769    pub id_result: IdResult,
770    pub base: IdRef,
771    pub indexes: &'a [IdRef],
772}
773#[derive(Clone, Copy)]
774pub struct InstInBoundsAccessChain<'a> {
775    pub id_result_type: IdResultType,
776    pub id_result: IdResult,
777    pub base: IdRef,
778    pub indexes: &'a [IdRef],
779}
780#[derive(Clone, Copy)]
781pub struct InstPtrAccessChain<'a> {
782    pub id_result_type: IdResultType,
783    pub id_result: IdResult,
784    pub base: IdRef,
785    pub element: IdRef,
786    pub indexes: &'a [IdRef],
787}
788#[derive(Clone, Copy)]
789pub struct InstArrayLength {
790    pub id_result_type: IdResultType,
791    pub id_result: IdResult,
792    pub structure: IdRef,
793    pub array_member: LiteralInteger,
794}
795#[derive(Clone, Copy)]
796pub struct InstGenericPtrMemSemantics {
797    pub id_result_type: IdResultType,
798    pub id_result: IdResult,
799    pub pointer: IdRef,
800}
801#[derive(Clone, Copy)]
802pub struct InstInBoundsPtrAccessChain<'a> {
803    pub id_result_type: IdResultType,
804    pub id_result: IdResult,
805    pub base: IdRef,
806    pub element: IdRef,
807    pub indexes: &'a [IdRef],
808}
809#[derive(Clone, Copy)]
810pub struct InstPtrEqual {
811    pub id_result_type: IdResultType,
812    pub id_result: IdResult,
813    pub operand_1: IdRef,
814    pub operand_2: IdRef,
815}
816#[derive(Clone, Copy)]
817pub struct InstPtrNotEqual {
818    pub id_result_type: IdResultType,
819    pub id_result: IdResult,
820    pub operand_1: IdRef,
821    pub operand_2: IdRef,
822}
823#[derive(Clone, Copy)]
824pub struct InstPtrDiff {
825    pub id_result_type: IdResultType,
826    pub id_result: IdResult,
827    pub operand_1: IdRef,
828    pub operand_2: IdRef,
829}
830#[derive(Clone, Copy)]
831pub struct InstUntypedVariableKHR {
832    pub id_result_type: IdResultType,
833    pub id_result: IdResult,
834    pub storage_class: StorageClass,
835    pub data_type: Option<IdRef>,
836    pub initializer: Option<IdRef>,
837}
838#[derive(Clone, Copy)]
839pub struct InstUntypedAccessChainKHR<'a> {
840    pub id_result_type: IdResultType,
841    pub id_result: IdResult,
842    pub base_type: IdRef,
843    pub base: IdRef,
844    pub indexes: &'a [IdRef],
845}
846#[derive(Clone, Copy)]
847pub struct InstUntypedInBoundsAccessChainKHR<'a> {
848    pub id_result_type: IdResultType,
849    pub id_result: IdResult,
850    pub base_type: IdRef,
851    pub base: IdRef,
852    pub indexes: &'a [IdRef],
853}
854#[derive(Clone, Copy)]
855pub struct InstUntypedPtrAccessChainKHR<'a> {
856    pub id_result_type: IdResultType,
857    pub id_result: IdResult,
858    pub base_type: IdRef,
859    pub base: IdRef,
860    pub element: IdRef,
861    pub indexes: &'a [IdRef],
862}
863#[derive(Clone, Copy)]
864pub struct InstUntypedInBoundsPtrAccessChainKHR<'a> {
865    pub id_result_type: IdResultType,
866    pub id_result: IdResult,
867    pub base_type: IdRef,
868    pub base: IdRef,
869    pub element: IdRef,
870    pub indexes: &'a [IdRef],
871}
872#[derive(Clone, Copy)]
873pub struct InstUntypedArrayLengthKHR {
874    pub id_result_type: IdResultType,
875    pub id_result: IdResult,
876    pub structure: IdRef,
877    pub pointer: IdRef,
878    pub array_member: LiteralInteger,
879}
880#[derive(Clone, Copy)]
881pub struct InstCooperativeMatrixLoadKHR {
882    pub id_result_type: IdResultType,
883    pub id_result: IdResult,
884    pub pointer: IdRef,
885    pub memory_layout: IdRef,
886    pub stride: Option<IdRef>,
887    pub memory_operand: Option<MemoryAccess>,
888}
889#[derive(Clone, Copy)]
890pub struct InstBufferPointerEXT {
891    pub id_result_type: IdResultType,
892    pub id_result: IdResult,
893    pub buffer: IdRef,
894}
895#[derive(Clone, Copy)]
896pub struct InstUntypedImageTexelPointerEXT {
897    pub id_result_type: IdResultType,
898    pub id_result: IdResult,
899    pub image_type: IdRef,
900    pub image: IdRef,
901    pub coordinate: IdRef,
902    pub sample: IdRef,
903}
904#[derive(Clone, Copy)]
905pub struct InstCooperativeVectorLoadNV {
906    pub id_result_type: IdResultType,
907    pub id_result: IdResult,
908    pub pointer: IdRef,
909    pub offset: IdRef,
910    pub memory_access: Option<MemoryAccess>,
911}
912#[derive(Clone, Copy)]
913pub struct InstCooperativeMatrixLoadTensorNV {
914    pub id_result_type: IdResultType,
915    pub id_result: IdResult,
916    pub pointer: IdRef,
917    pub object: IdRef,
918    pub tensor_layout: IdRef,
919    pub memory_operand: MemoryAccess,
920    pub tensor_addressing_operands: TensorAddressingOperands,
921}
922#[derive(Clone, Copy)]
923pub struct InstRawAccessChainNV {
924    pub id_result_type: IdResultType,
925    pub id_result: IdResult,
926    pub base: IdRef,
927    pub byte_stride: IdRef,
928    pub element_index: IdRef,
929    pub byte_offset: IdRef,
930    pub raw_access_chain_operands: Option<RawAccessChainOperands>,
931}
932#[derive(Clone, Copy)]
933pub struct InstVariableLengthArrayINTEL {
934    pub id_result_type: IdResultType,
935    pub id_result: IdResult,
936    pub length: IdRef,
937}
938#[derive(Clone, Copy)]
939pub struct InstSaveMemoryINTEL {
940    pub id_result_type: IdResultType,
941    pub id_result: IdResult,
942}
943#[derive(Clone, Copy)]
944pub struct InstUntypedVariableLengthArrayINTEL {
945    pub id_result_type: IdResultType,
946    pub id_result: IdResult,
947    pub element_type: IdRef,
948    pub length: IdRef,
949}
950#[derive(Clone, Copy)]
951pub struct InstMaskedGatherINTEL {
952    pub id_result_type: IdResultType,
953    pub id_result: IdResult,
954    pub ptr_vector: IdRef,
955    pub alignment: LiteralInteger,
956    pub mask: IdRef,
957    pub fill_empty: IdRef,
958}
959#[derive(Clone, Copy)]
960pub struct InstStore {
961    pub pointer: IdRef,
962    pub object: IdRef,
963    pub memory_access: Option<MemoryAccess>,
964}
965#[derive(Clone, Copy)]
966pub struct InstCopyMemory {
967    pub target: IdRef,
968    pub source: IdRef,
969    pub memory_access_1: Option<MemoryAccess>,
970    pub memory_access_2: Option<MemoryAccess>,
971}
972#[derive(Clone, Copy)]
973pub struct InstCopyMemorySized {
974    pub target: IdRef,
975    pub source: IdRef,
976    pub size: IdRef,
977    pub memory_access_1: Option<MemoryAccess>,
978    pub memory_access_2: Option<MemoryAccess>,
979}
980#[derive(Clone, Copy)]
981pub struct InstUntypedPrefetchKHR {
982    pub pointer_type: IdRef,
983    pub num_bytes: IdRef,
984    pub rw: Option<IdRef>,
985    pub locality: Option<IdRef>,
986    pub cache_type: Option<IdRef>,
987}
988#[derive(Clone, Copy)]
989pub struct InstCooperativeMatrixStoreKHR {
990    pub pointer: IdRef,
991    pub object: IdRef,
992    pub memory_layout: IdRef,
993    pub stride: Option<IdRef>,
994    pub memory_operand: Option<MemoryAccess>,
995}
996#[derive(Clone, Copy)]
997pub struct InstCooperativeVectorStoreNV {
998    pub pointer: IdRef,
999    pub offset: IdRef,
1000    pub object: IdRef,
1001    pub memory_access: Option<MemoryAccess>,
1002}
1003#[derive(Clone, Copy)]
1004pub struct InstCooperativeMatrixStoreTensorNV {
1005    pub pointer: IdRef,
1006    pub object: IdRef,
1007    pub tensor_layout: IdRef,
1008    pub memory_operand: MemoryAccess,
1009    pub tensor_addressing_operands: TensorAddressingOperands,
1010}
1011#[derive(Clone, Copy)]
1012pub struct InstRestoreMemoryINTEL {
1013    pub ptr: IdRef,
1014}
1015#[derive(Clone, Copy)]
1016pub struct InstMaskedScatterINTEL {
1017    pub input_vector: IdRef,
1018    pub ptr_vector: IdRef,
1019    pub alignment: LiteralInteger,
1020    pub mask: IdRef,
1021}
1022#[derive(Clone, Copy)]
1023pub struct InstConvertFToU {
1024    pub id_result_type: IdResultType,
1025    pub id_result: IdResult,
1026    pub float_value: IdRef,
1027}
1028#[derive(Clone, Copy)]
1029pub struct InstConvertFToS {
1030    pub id_result_type: IdResultType,
1031    pub id_result: IdResult,
1032    pub float_value: IdRef,
1033}
1034#[derive(Clone, Copy)]
1035pub struct InstConvertSToF {
1036    pub id_result_type: IdResultType,
1037    pub id_result: IdResult,
1038    pub signed_value: IdRef,
1039}
1040#[derive(Clone, Copy)]
1041pub struct InstConvertUToF {
1042    pub id_result_type: IdResultType,
1043    pub id_result: IdResult,
1044    pub unsigned_value: IdRef,
1045}
1046#[derive(Clone, Copy)]
1047pub struct InstUConvert {
1048    pub id_result_type: IdResultType,
1049    pub id_result: IdResult,
1050    pub unsigned_value: IdRef,
1051}
1052#[derive(Clone, Copy)]
1053pub struct InstSConvert {
1054    pub id_result_type: IdResultType,
1055    pub id_result: IdResult,
1056    pub signed_value: IdRef,
1057}
1058#[derive(Clone, Copy)]
1059pub struct InstFConvert {
1060    pub id_result_type: IdResultType,
1061    pub id_result: IdResult,
1062    pub float_value: IdRef,
1063}
1064#[derive(Clone, Copy)]
1065pub struct InstQuantizeToF16 {
1066    pub id_result_type: IdResultType,
1067    pub id_result: IdResult,
1068    pub value: IdRef,
1069}
1070#[derive(Clone, Copy)]
1071pub struct InstConvertPtrToU {
1072    pub id_result_type: IdResultType,
1073    pub id_result: IdResult,
1074    pub pointer: IdRef,
1075}
1076#[derive(Clone, Copy)]
1077pub struct InstSatConvertSToU {
1078    pub id_result_type: IdResultType,
1079    pub id_result: IdResult,
1080    pub signed_value: IdRef,
1081}
1082#[derive(Clone, Copy)]
1083pub struct InstSatConvertUToS {
1084    pub id_result_type: IdResultType,
1085    pub id_result: IdResult,
1086    pub unsigned_value: IdRef,
1087}
1088#[derive(Clone, Copy)]
1089pub struct InstConvertUToPtr {
1090    pub id_result_type: IdResultType,
1091    pub id_result: IdResult,
1092    pub integer_value: IdRef,
1093}
1094#[derive(Clone, Copy)]
1095pub struct InstPtrCastToGeneric {
1096    pub id_result_type: IdResultType,
1097    pub id_result: IdResult,
1098    pub pointer: IdRef,
1099}
1100#[derive(Clone, Copy)]
1101pub struct InstGenericCastToPtr {
1102    pub id_result_type: IdResultType,
1103    pub id_result: IdResult,
1104    pub pointer: IdRef,
1105}
1106#[derive(Clone, Copy)]
1107pub struct InstGenericCastToPtrExplicit {
1108    pub id_result_type: IdResultType,
1109    pub id_result: IdResult,
1110    pub pointer: IdRef,
1111    pub storage: StorageClass,
1112}
1113#[derive(Clone, Copy)]
1114pub struct InstBitcast {
1115    pub id_result_type: IdResultType,
1116    pub id_result: IdResult,
1117    pub operand: IdRef,
1118}
1119#[derive(Clone, Copy)]
1120pub struct InstBitCastArrayQCOM {
1121    pub id_result_type: IdResultType,
1122    pub id_result: IdResult,
1123    pub source_array: IdRef,
1124}
1125#[derive(Clone, Copy)]
1126pub struct InstCooperativeMatrixConvertNV {
1127    pub id_result_type: IdResultType,
1128    pub id_result: IdResult,
1129    pub matrix: IdRef,
1130}
1131#[derive(Clone, Copy)]
1132pub struct InstCooperativeMatrixTransposeNV {
1133    pub id_result_type: IdResultType,
1134    pub id_result: IdResult,
1135    pub matrix: IdRef,
1136}
1137#[derive(Clone, Copy)]
1138pub struct InstConvertFToBF16INTEL {
1139    pub id_result_type: IdResultType,
1140    pub id_result: IdResult,
1141    pub float_value: IdRef,
1142}
1143#[derive(Clone, Copy)]
1144pub struct InstConvertBF16ToFINTEL {
1145    pub id_result_type: IdResultType,
1146    pub id_result: IdResult,
1147    pub bfloat16_value: IdRef,
1148}
1149#[derive(Clone, Copy)]
1150pub struct InstRoundFToTF32INTEL {
1151    pub id_result_type: IdResultType,
1152    pub id_result: IdResult,
1153    pub float_value: IdRef,
1154}
1155#[derive(Clone, Copy)]
1156pub struct InstAtomicLoad {
1157    pub id_result_type: IdResultType,
1158    pub id_result: IdResult,
1159    pub pointer: IdRef,
1160    pub memory: IdScope,
1161    pub semantics: IdMemorySemantics,
1162}
1163#[derive(Clone, Copy)]
1164pub struct InstAtomicExchange {
1165    pub id_result_type: IdResultType,
1166    pub id_result: IdResult,
1167    pub pointer: IdRef,
1168    pub memory: IdScope,
1169    pub semantics: IdMemorySemantics,
1170    pub value: IdRef,
1171}
1172#[derive(Clone, Copy)]
1173pub struct InstAtomicCompareExchange {
1174    pub id_result_type: IdResultType,
1175    pub id_result: IdResult,
1176    pub pointer: IdRef,
1177    pub memory: IdScope,
1178    pub equal: IdMemorySemantics,
1179    pub unequal: IdMemorySemantics,
1180    pub value: IdRef,
1181    pub comparator: IdRef,
1182}
1183#[derive(Clone, Copy)]
1184pub struct InstAtomicCompareExchangeWeak {
1185    pub id_result_type: IdResultType,
1186    pub id_result: IdResult,
1187    pub pointer: IdRef,
1188    pub memory: IdScope,
1189    pub equal: IdMemorySemantics,
1190    pub unequal: IdMemorySemantics,
1191    pub value: IdRef,
1192    pub comparator: IdRef,
1193}
1194#[derive(Clone, Copy)]
1195pub struct InstAtomicIIncrement {
1196    pub id_result_type: IdResultType,
1197    pub id_result: IdResult,
1198    pub pointer: IdRef,
1199    pub memory: IdScope,
1200    pub semantics: IdMemorySemantics,
1201}
1202#[derive(Clone, Copy)]
1203pub struct InstAtomicIDecrement {
1204    pub id_result_type: IdResultType,
1205    pub id_result: IdResult,
1206    pub pointer: IdRef,
1207    pub memory: IdScope,
1208    pub semantics: IdMemorySemantics,
1209}
1210#[derive(Clone, Copy)]
1211pub struct InstAtomicIAdd {
1212    pub id_result_type: IdResultType,
1213    pub id_result: IdResult,
1214    pub pointer: IdRef,
1215    pub memory: IdScope,
1216    pub semantics: IdMemorySemantics,
1217    pub value: IdRef,
1218}
1219#[derive(Clone, Copy)]
1220pub struct InstAtomicISub {
1221    pub id_result_type: IdResultType,
1222    pub id_result: IdResult,
1223    pub pointer: IdRef,
1224    pub memory: IdScope,
1225    pub semantics: IdMemorySemantics,
1226    pub value: IdRef,
1227}
1228#[derive(Clone, Copy)]
1229pub struct InstAtomicSMin {
1230    pub id_result_type: IdResultType,
1231    pub id_result: IdResult,
1232    pub pointer: IdRef,
1233    pub memory: IdScope,
1234    pub semantics: IdMemorySemantics,
1235    pub value: IdRef,
1236}
1237#[derive(Clone, Copy)]
1238pub struct InstAtomicUMin {
1239    pub id_result_type: IdResultType,
1240    pub id_result: IdResult,
1241    pub pointer: IdRef,
1242    pub memory: IdScope,
1243    pub semantics: IdMemorySemantics,
1244    pub value: IdRef,
1245}
1246#[derive(Clone, Copy)]
1247pub struct InstAtomicSMax {
1248    pub id_result_type: IdResultType,
1249    pub id_result: IdResult,
1250    pub pointer: IdRef,
1251    pub memory: IdScope,
1252    pub semantics: IdMemorySemantics,
1253    pub value: IdRef,
1254}
1255#[derive(Clone, Copy)]
1256pub struct InstAtomicUMax {
1257    pub id_result_type: IdResultType,
1258    pub id_result: IdResult,
1259    pub pointer: IdRef,
1260    pub memory: IdScope,
1261    pub semantics: IdMemorySemantics,
1262    pub value: IdRef,
1263}
1264#[derive(Clone, Copy)]
1265pub struct InstAtomicAnd {
1266    pub id_result_type: IdResultType,
1267    pub id_result: IdResult,
1268    pub pointer: IdRef,
1269    pub memory: IdScope,
1270    pub semantics: IdMemorySemantics,
1271    pub value: IdRef,
1272}
1273#[derive(Clone, Copy)]
1274pub struct InstAtomicOr {
1275    pub id_result_type: IdResultType,
1276    pub id_result: IdResult,
1277    pub pointer: IdRef,
1278    pub memory: IdScope,
1279    pub semantics: IdMemorySemantics,
1280    pub value: IdRef,
1281}
1282#[derive(Clone, Copy)]
1283pub struct InstAtomicXor {
1284    pub id_result_type: IdResultType,
1285    pub id_result: IdResult,
1286    pub pointer: IdRef,
1287    pub memory: IdScope,
1288    pub semantics: IdMemorySemantics,
1289    pub value: IdRef,
1290}
1291#[derive(Clone, Copy)]
1292pub struct InstAtomicFlagTestAndSet {
1293    pub id_result_type: IdResultType,
1294    pub id_result: IdResult,
1295    pub pointer: IdRef,
1296    pub memory: IdScope,
1297    pub semantics: IdMemorySemantics,
1298}
1299#[derive(Clone, Copy)]
1300pub struct InstAtomicFMinEXT {
1301    pub id_result_type: IdResultType,
1302    pub id_result: IdResult,
1303    pub pointer: IdRef,
1304    pub memory: IdScope,
1305    pub semantics: IdMemorySemantics,
1306    pub value: IdRef,
1307}
1308#[derive(Clone, Copy)]
1309pub struct InstAtomicFMaxEXT {
1310    pub id_result_type: IdResultType,
1311    pub id_result: IdResult,
1312    pub pointer: IdRef,
1313    pub memory: IdScope,
1314    pub semantics: IdMemorySemantics,
1315    pub value: IdRef,
1316}
1317#[derive(Clone, Copy)]
1318pub struct InstAtomicFAddEXT {
1319    pub id_result_type: IdResultType,
1320    pub id_result: IdResult,
1321    pub pointer: IdRef,
1322    pub memory: IdScope,
1323    pub semantics: IdMemorySemantics,
1324    pub value: IdRef,
1325}
1326#[derive(Clone, Copy)]
1327pub struct InstAtomicStore {
1328    pub pointer: IdRef,
1329    pub memory: IdScope,
1330    pub semantics: IdMemorySemantics,
1331    pub value: IdRef,
1332}
1333#[derive(Clone, Copy)]
1334pub struct InstAtomicFlagClear {
1335    pub pointer: IdRef,
1336    pub memory: IdScope,
1337    pub semantics: IdMemorySemantics,
1338}
1339#[derive(Clone, Copy)]
1340pub struct InstString<'a> {
1341    pub id_result: IdResult,
1342    pub string: LiteralString<'a>,
1343}
1344#[derive(Clone, Copy)]
1345pub struct InstSourceContinued<'a> {
1346    pub continued_source: LiteralString<'a>,
1347}
1348#[derive(Clone, Copy)]
1349pub struct InstSource<'a> {
1350    pub source_language: SourceLanguage,
1351    pub version: LiteralInteger,
1352    pub file: Option<IdRef>,
1353    pub source: Option<LiteralString<'a>>,
1354}
1355#[derive(Clone, Copy)]
1356pub struct InstSourceExtension<'a> {
1357    pub extension: LiteralString<'a>,
1358}
1359#[derive(Clone, Copy)]
1360pub struct InstName<'a> {
1361    pub target: IdRef,
1362    pub name: LiteralString<'a>,
1363}
1364#[derive(Clone, Copy)]
1365pub struct InstMemberName<'a> {
1366    pub ty: IdRef,
1367    pub member: LiteralInteger,
1368    pub name: LiteralString<'a>,
1369}
1370#[derive(Clone, Copy)]
1371pub struct InstLine {
1372    pub file: IdRef,
1373    pub line: LiteralInteger,
1374    pub column: LiteralInteger,
1375}
1376#[derive(Clone, Copy)]
1377pub struct InstNoLine;
1378#[derive(Clone, Copy)]
1379pub struct InstModuleProcessed<'a> {
1380    pub process: LiteralString<'a>,
1381}
1382#[derive(Clone, Copy)]
1383pub struct InstSNegate {
1384    pub id_result_type: IdResultType,
1385    pub id_result: IdResult,
1386    pub operand: IdRef,
1387}
1388#[derive(Clone, Copy)]
1389pub struct InstFNegate {
1390    pub id_result_type: IdResultType,
1391    pub id_result: IdResult,
1392    pub operand: IdRef,
1393}
1394#[derive(Clone, Copy)]
1395pub struct InstIAdd {
1396    pub id_result_type: IdResultType,
1397    pub id_result: IdResult,
1398    pub operand_1: IdRef,
1399    pub operand_2: IdRef,
1400}
1401#[derive(Clone, Copy)]
1402pub struct InstFAdd {
1403    pub id_result_type: IdResultType,
1404    pub id_result: IdResult,
1405    pub operand_1: IdRef,
1406    pub operand_2: IdRef,
1407}
1408#[derive(Clone, Copy)]
1409pub struct InstISub {
1410    pub id_result_type: IdResultType,
1411    pub id_result: IdResult,
1412    pub operand_1: IdRef,
1413    pub operand_2: IdRef,
1414}
1415#[derive(Clone, Copy)]
1416pub struct InstFSub {
1417    pub id_result_type: IdResultType,
1418    pub id_result: IdResult,
1419    pub operand_1: IdRef,
1420    pub operand_2: IdRef,
1421}
1422#[derive(Clone, Copy)]
1423pub struct InstIMul {
1424    pub id_result_type: IdResultType,
1425    pub id_result: IdResult,
1426    pub operand_1: IdRef,
1427    pub operand_2: IdRef,
1428}
1429#[derive(Clone, Copy)]
1430pub struct InstFMul {
1431    pub id_result_type: IdResultType,
1432    pub id_result: IdResult,
1433    pub operand_1: IdRef,
1434    pub operand_2: IdRef,
1435}
1436#[derive(Clone, Copy)]
1437pub struct InstUDiv {
1438    pub id_result_type: IdResultType,
1439    pub id_result: IdResult,
1440    pub operand_1: IdRef,
1441    pub operand_2: IdRef,
1442}
1443#[derive(Clone, Copy)]
1444pub struct InstSDiv {
1445    pub id_result_type: IdResultType,
1446    pub id_result: IdResult,
1447    pub operand_1: IdRef,
1448    pub operand_2: IdRef,
1449}
1450#[derive(Clone, Copy)]
1451pub struct InstFDiv {
1452    pub id_result_type: IdResultType,
1453    pub id_result: IdResult,
1454    pub operand_1: IdRef,
1455    pub operand_2: IdRef,
1456}
1457#[derive(Clone, Copy)]
1458pub struct InstUMod {
1459    pub id_result_type: IdResultType,
1460    pub id_result: IdResult,
1461    pub operand_1: IdRef,
1462    pub operand_2: IdRef,
1463}
1464#[derive(Clone, Copy)]
1465pub struct InstSRem {
1466    pub id_result_type: IdResultType,
1467    pub id_result: IdResult,
1468    pub operand_1: IdRef,
1469    pub operand_2: IdRef,
1470}
1471#[derive(Clone, Copy)]
1472pub struct InstSMod {
1473    pub id_result_type: IdResultType,
1474    pub id_result: IdResult,
1475    pub operand_1: IdRef,
1476    pub operand_2: IdRef,
1477}
1478#[derive(Clone, Copy)]
1479pub struct InstFRem {
1480    pub id_result_type: IdResultType,
1481    pub id_result: IdResult,
1482    pub operand_1: IdRef,
1483    pub operand_2: IdRef,
1484}
1485#[derive(Clone, Copy)]
1486pub struct InstFMod {
1487    pub id_result_type: IdResultType,
1488    pub id_result: IdResult,
1489    pub operand_1: IdRef,
1490    pub operand_2: IdRef,
1491}
1492#[derive(Clone, Copy)]
1493pub struct InstVectorTimesScalar {
1494    pub id_result_type: IdResultType,
1495    pub id_result: IdResult,
1496    pub vector: IdRef,
1497    pub scalar: IdRef,
1498}
1499#[derive(Clone, Copy)]
1500pub struct InstMatrixTimesScalar {
1501    pub id_result_type: IdResultType,
1502    pub id_result: IdResult,
1503    pub matrix: IdRef,
1504    pub scalar: IdRef,
1505}
1506#[derive(Clone, Copy)]
1507pub struct InstVectorTimesMatrix {
1508    pub id_result_type: IdResultType,
1509    pub id_result: IdResult,
1510    pub vector: IdRef,
1511    pub matrix: IdRef,
1512}
1513#[derive(Clone, Copy)]
1514pub struct InstMatrixTimesVector {
1515    pub id_result_type: IdResultType,
1516    pub id_result: IdResult,
1517    pub matrix: IdRef,
1518    pub vector: IdRef,
1519}
1520#[derive(Clone, Copy)]
1521pub struct InstMatrixTimesMatrix {
1522    pub id_result_type: IdResultType,
1523    pub id_result: IdResult,
1524    pub left_matrix: IdRef,
1525    pub right_matrix: IdRef,
1526}
1527#[derive(Clone, Copy)]
1528pub struct InstOuterProduct {
1529    pub id_result_type: IdResultType,
1530    pub id_result: IdResult,
1531    pub vector_1: IdRef,
1532    pub vector_2: IdRef,
1533}
1534#[derive(Clone, Copy)]
1535pub struct InstDot {
1536    pub id_result_type: IdResultType,
1537    pub id_result: IdResult,
1538    pub vector_1: IdRef,
1539    pub vector_2: IdRef,
1540}
1541#[derive(Clone, Copy)]
1542pub struct InstIAddCarry {
1543    pub id_result_type: IdResultType,
1544    pub id_result: IdResult,
1545    pub operand_1: IdRef,
1546    pub operand_2: IdRef,
1547}
1548#[derive(Clone, Copy)]
1549pub struct InstISubBorrow {
1550    pub id_result_type: IdResultType,
1551    pub id_result: IdResult,
1552    pub operand_1: IdRef,
1553    pub operand_2: IdRef,
1554}
1555#[derive(Clone, Copy)]
1556pub struct InstUMulExtended {
1557    pub id_result_type: IdResultType,
1558    pub id_result: IdResult,
1559    pub operand_1: IdRef,
1560    pub operand_2: IdRef,
1561}
1562#[derive(Clone, Copy)]
1563pub struct InstSMulExtended {
1564    pub id_result_type: IdResultType,
1565    pub id_result: IdResult,
1566    pub operand_1: IdRef,
1567    pub operand_2: IdRef,
1568}
1569#[derive(Clone, Copy)]
1570pub struct InstFmaKHR {
1571    pub id_result_type: IdResultType,
1572    pub id_result: IdResult,
1573    pub operand_1: IdRef,
1574    pub operand_2: IdRef,
1575    pub operand_3: IdRef,
1576}
1577#[derive(Clone, Copy)]
1578pub struct InstSDot {
1579    pub id_result_type: IdResultType,
1580    pub id_result: IdResult,
1581    pub vector_1: IdRef,
1582    pub vector_2: IdRef,
1583    pub packed_vector_format: Option<PackedVectorFormat>,
1584}
1585#[derive(Clone, Copy)]
1586pub struct InstUDot {
1587    pub id_result_type: IdResultType,
1588    pub id_result: IdResult,
1589    pub vector_1: IdRef,
1590    pub vector_2: IdRef,
1591    pub packed_vector_format: Option<PackedVectorFormat>,
1592}
1593#[derive(Clone, Copy)]
1594pub struct InstSUDot {
1595    pub id_result_type: IdResultType,
1596    pub id_result: IdResult,
1597    pub vector_1: IdRef,
1598    pub vector_2: IdRef,
1599    pub packed_vector_format: Option<PackedVectorFormat>,
1600}
1601#[derive(Clone, Copy)]
1602pub struct InstSDotAccSat {
1603    pub id_result_type: IdResultType,
1604    pub id_result: IdResult,
1605    pub vector_1: IdRef,
1606    pub vector_2: IdRef,
1607    pub accumulator: IdRef,
1608    pub packed_vector_format: Option<PackedVectorFormat>,
1609}
1610#[derive(Clone, Copy)]
1611pub struct InstUDotAccSat {
1612    pub id_result_type: IdResultType,
1613    pub id_result: IdResult,
1614    pub vector_1: IdRef,
1615    pub vector_2: IdRef,
1616    pub accumulator: IdRef,
1617    pub packed_vector_format: Option<PackedVectorFormat>,
1618}
1619#[derive(Clone, Copy)]
1620pub struct InstSUDotAccSat {
1621    pub id_result_type: IdResultType,
1622    pub id_result: IdResult,
1623    pub vector_1: IdRef,
1624    pub vector_2: IdRef,
1625    pub accumulator: IdRef,
1626    pub packed_vector_format: Option<PackedVectorFormat>,
1627}
1628#[derive(Clone, Copy)]
1629pub struct InstCooperativeMatrixMulAddKHR {
1630    pub id_result_type: IdResultType,
1631    pub id_result: IdResult,
1632    pub a: IdRef,
1633    pub b: IdRef,
1634    pub c: IdRef,
1635    pub cooperative_matrix_operands: Option<CooperativeMatrixOperands>,
1636}
1637#[derive(Clone, Copy)]
1638pub struct InstCooperativeMatrixReduceNV {
1639    pub id_result_type: IdResultType,
1640    pub id_result: IdResult,
1641    pub matrix: IdRef,
1642    pub reduce: CooperativeMatrixReduce,
1643    pub combine_func: IdRef,
1644}
1645#[derive(Clone, Copy)]
1646pub struct InstExtInstImport<'a> {
1647    pub id_result: IdResult,
1648    pub name: LiteralString<'a>,
1649}
1650#[derive(Clone, Copy)]
1651pub struct InstExtInst<'a> {
1652    pub id_result_type: IdResultType,
1653    pub id_result: IdResult,
1654    pub set: IdRef,
1655    pub instruction: LiteralExtInstInteger,
1656    pub operands: &'a [IdRef],
1657}
1658#[derive(Clone, Copy)]
1659pub struct InstExtInstWithForwardRefsKHR<'a> {
1660    pub id_result_type: IdResultType,
1661    pub id_result: IdResult,
1662    pub set: IdRef,
1663    pub instruction: LiteralExtInstInteger,
1664    pub operands: &'a [IdRef],
1665}
1666#[derive(Clone, Copy)]
1667pub struct InstExtension<'a> {
1668    pub name: LiteralString<'a>,
1669}
1670#[derive(Clone, Copy)]
1671pub struct InstConditionalExtensionINTEL<'a> {
1672    pub condition: IdRef,
1673    pub name: LiteralString<'a>,
1674}
1675#[derive(Clone, Copy)]
1676pub struct InstShiftRightLogical {
1677    pub id_result_type: IdResultType,
1678    pub id_result: IdResult,
1679    pub base: IdRef,
1680    pub shift: IdRef,
1681}
1682#[derive(Clone, Copy)]
1683pub struct InstShiftRightArithmetic {
1684    pub id_result_type: IdResultType,
1685    pub id_result: IdResult,
1686    pub base: IdRef,
1687    pub shift: IdRef,
1688}
1689#[derive(Clone, Copy)]
1690pub struct InstShiftLeftLogical {
1691    pub id_result_type: IdResultType,
1692    pub id_result: IdResult,
1693    pub base: IdRef,
1694    pub shift: IdRef,
1695}
1696#[derive(Clone, Copy)]
1697pub struct InstBitwiseOr {
1698    pub id_result_type: IdResultType,
1699    pub id_result: IdResult,
1700    pub operand_1: IdRef,
1701    pub operand_2: IdRef,
1702}
1703#[derive(Clone, Copy)]
1704pub struct InstBitwiseXor {
1705    pub id_result_type: IdResultType,
1706    pub id_result: IdResult,
1707    pub operand_1: IdRef,
1708    pub operand_2: IdRef,
1709}
1710#[derive(Clone, Copy)]
1711pub struct InstBitwiseAnd {
1712    pub id_result_type: IdResultType,
1713    pub id_result: IdResult,
1714    pub operand_1: IdRef,
1715    pub operand_2: IdRef,
1716}
1717#[derive(Clone, Copy)]
1718pub struct InstNot {
1719    pub id_result_type: IdResultType,
1720    pub id_result: IdResult,
1721    pub operand: IdRef,
1722}
1723#[derive(Clone, Copy)]
1724pub struct InstBitFieldInsert {
1725    pub id_result_type: IdResultType,
1726    pub id_result: IdResult,
1727    pub base: IdRef,
1728    pub insert: IdRef,
1729    pub offset: IdRef,
1730    pub count: IdRef,
1731}
1732#[derive(Clone, Copy)]
1733pub struct InstBitFieldSExtract {
1734    pub id_result_type: IdResultType,
1735    pub id_result: IdResult,
1736    pub base: IdRef,
1737    pub offset: IdRef,
1738    pub count: IdRef,
1739}
1740#[derive(Clone, Copy)]
1741pub struct InstBitFieldUExtract {
1742    pub id_result_type: IdResultType,
1743    pub id_result: IdResult,
1744    pub base: IdRef,
1745    pub offset: IdRef,
1746    pub count: IdRef,
1747}
1748#[derive(Clone, Copy)]
1749pub struct InstBitReverse {
1750    pub id_result_type: IdResultType,
1751    pub id_result: IdResult,
1752    pub base: IdRef,
1753}
1754#[derive(Clone, Copy)]
1755pub struct InstBitCount {
1756    pub id_result_type: IdResultType,
1757    pub id_result: IdResult,
1758    pub base: IdRef,
1759}
1760#[derive(Clone, Copy)]
1761pub struct InstBitwiseFunctionINTEL {
1762    pub id_result_type: IdResultType,
1763    pub id_result: IdResult,
1764    pub a: IdRef,
1765    pub b: IdRef,
1766    pub c: IdRef,
1767    pub lutindex: IdRef,
1768}
1769#[derive(Clone, Copy)]
1770pub struct InstEmitVertex;
1771#[derive(Clone, Copy)]
1772pub struct InstEndPrimitive;
1773#[derive(Clone, Copy)]
1774pub struct InstEmitStreamVertex {
1775    pub stream: IdRef,
1776}
1777#[derive(Clone, Copy)]
1778pub struct InstEndStreamPrimitive {
1779    pub stream: IdRef,
1780}
1781#[derive(Clone, Copy)]
1782pub struct InstEnqueueMarker {
1783    pub id_result_type: IdResultType,
1784    pub id_result: IdResult,
1785    pub queue: IdRef,
1786    pub num_events: IdRef,
1787    pub wait_events: IdRef,
1788    pub ret_event: IdRef,
1789}
1790#[derive(Clone, Copy)]
1791pub struct InstEnqueueKernel<'a> {
1792    pub id_result_type: IdResultType,
1793    pub id_result: IdResult,
1794    pub queue: IdRef,
1795    pub flags: IdRef,
1796    pub nd_range: IdRef,
1797    pub num_events: IdRef,
1798    pub wait_events: IdRef,
1799    pub ret_event: IdRef,
1800    pub invoke: IdRef,
1801    pub param: IdRef,
1802    pub param_size: IdRef,
1803    pub param_align: IdRef,
1804    pub local_size: &'a [IdRef],
1805}
1806#[derive(Clone, Copy)]
1807pub struct InstGetKernelNDrangeSubGroupCount {
1808    pub id_result_type: IdResultType,
1809    pub id_result: IdResult,
1810    pub nd_range: IdRef,
1811    pub invoke: IdRef,
1812    pub param: IdRef,
1813    pub param_size: IdRef,
1814    pub param_align: IdRef,
1815}
1816#[derive(Clone, Copy)]
1817pub struct InstGetKernelNDrangeMaxSubGroupSize {
1818    pub id_result_type: IdResultType,
1819    pub id_result: IdResult,
1820    pub nd_range: IdRef,
1821    pub invoke: IdRef,
1822    pub param: IdRef,
1823    pub param_size: IdRef,
1824    pub param_align: IdRef,
1825}
1826#[derive(Clone, Copy)]
1827pub struct InstGetKernelWorkGroupSize {
1828    pub id_result_type: IdResultType,
1829    pub id_result: IdResult,
1830    pub invoke: IdRef,
1831    pub param: IdRef,
1832    pub param_size: IdRef,
1833    pub param_align: IdRef,
1834}
1835#[derive(Clone, Copy)]
1836pub struct InstGetKernelPreferredWorkGroupSizeMultiple {
1837    pub id_result_type: IdResultType,
1838    pub id_result: IdResult,
1839    pub invoke: IdRef,
1840    pub param: IdRef,
1841    pub param_size: IdRef,
1842    pub param_align: IdRef,
1843}
1844#[derive(Clone, Copy)]
1845pub struct InstCreateUserEvent {
1846    pub id_result_type: IdResultType,
1847    pub id_result: IdResult,
1848}
1849#[derive(Clone, Copy)]
1850pub struct InstIsValidEvent {
1851    pub id_result_type: IdResultType,
1852    pub id_result: IdResult,
1853    pub event: IdRef,
1854}
1855#[derive(Clone, Copy)]
1856pub struct InstGetDefaultQueue {
1857    pub id_result_type: IdResultType,
1858    pub id_result: IdResult,
1859}
1860#[derive(Clone, Copy)]
1861pub struct InstBuildNDRange {
1862    pub id_result_type: IdResultType,
1863    pub id_result: IdResult,
1864    pub global_work_size: IdRef,
1865    pub local_work_size: IdRef,
1866    pub global_work_offset: IdRef,
1867}
1868#[derive(Clone, Copy)]
1869pub struct InstGetKernelLocalSizeForSubgroupCount {
1870    pub id_result_type: IdResultType,
1871    pub id_result: IdResult,
1872    pub subgroup_count: IdRef,
1873    pub invoke: IdRef,
1874    pub param: IdRef,
1875    pub param_size: IdRef,
1876    pub param_align: IdRef,
1877}
1878#[derive(Clone, Copy)]
1879pub struct InstGetKernelMaxNumSubgroups {
1880    pub id_result_type: IdResultType,
1881    pub id_result: IdResult,
1882    pub invoke: IdRef,
1883    pub param: IdRef,
1884    pub param_size: IdRef,
1885    pub param_align: IdRef,
1886}
1887#[derive(Clone, Copy)]
1888pub struct InstRetainEvent {
1889    pub event: IdRef,
1890}
1891#[derive(Clone, Copy)]
1892pub struct InstReleaseEvent {
1893    pub event: IdRef,
1894}
1895#[derive(Clone, Copy)]
1896pub struct InstSetUserEventStatus {
1897    pub event: IdRef,
1898    pub status: IdRef,
1899}
1900#[derive(Clone, Copy)]
1901pub struct InstCaptureEventProfilingInfo {
1902    pub event: IdRef,
1903    pub profiling_info: IdRef,
1904    pub value: IdRef,
1905}
1906#[derive(Clone, Copy)]
1907pub struct InstDecorationGroup {
1908    pub id_result: IdResult,
1909}
1910#[derive(Clone, Copy)]
1911pub struct InstDecorate<'a> {
1912    pub target: IdRef,
1913    pub decoration: Decoration<'a>,
1914}
1915#[derive(Clone, Copy)]
1916pub struct InstMemberDecorate<'a> {
1917    pub structure_type: IdRef,
1918    pub member: LiteralInteger,
1919    pub decoration: Decoration<'a>,
1920}
1921#[derive(Clone, Copy)]
1922pub struct InstGroupDecorate<'a> {
1923    pub decoration_group: IdRef,
1924    pub targets: &'a [IdRef],
1925}
1926#[derive(Clone, Copy)]
1927pub struct InstGroupMemberDecorate<'a> {
1928    pub decoration_group: IdRef,
1929    pub targets: &'a [PairIdRefLiteralInteger],
1930}
1931#[derive(Clone, Copy)]
1932pub struct InstDecorateId<'a> {
1933    pub target: IdRef,
1934    pub decoration: Decoration<'a>,
1935}
1936#[derive(Clone, Copy)]
1937pub struct InstMemberDecorateIdEXT<'a> {
1938    pub structure_type: IdRef,
1939    pub member: LiteralInteger,
1940    pub decoration: Decoration<'a>,
1941}
1942#[derive(Clone, Copy)]
1943pub struct InstDecorateString<'a> {
1944    pub target: IdRef,
1945    pub decoration: Decoration<'a>,
1946}
1947#[derive(Clone, Copy)]
1948pub struct InstMemberDecorateString<'a> {
1949    pub struct_type: IdRef,
1950    pub member: LiteralInteger,
1951    pub decoration: Decoration<'a>,
1952}
1953#[derive(Clone, Copy)]
1954pub struct InstConvertUToAccelerationStructureKHR {
1955    pub id_result_type: IdResultType,
1956    pub id_result: IdResult,
1957    pub accel: IdRef,
1958}
1959#[derive(Clone, Copy)]
1960pub struct InstRayQueryProceedKHR {
1961    pub id_result_type: IdResultType,
1962    pub id_result: IdResult,
1963    pub ray_query: IdRef,
1964}
1965#[derive(Clone, Copy)]
1966pub struct InstRayQueryGetIntersectionTypeKHR {
1967    pub id_result_type: IdResultType,
1968    pub id_result: IdResult,
1969    pub ray_query: IdRef,
1970    pub intersection: IdRef,
1971}
1972#[derive(Clone, Copy)]
1973pub struct InstFragmentMaskFetchAMD {
1974    pub id_result_type: IdResultType,
1975    pub id_result: IdResult,
1976    pub image: IdRef,
1977    pub coordinate: IdRef,
1978}
1979#[derive(Clone, Copy)]
1980pub struct InstFragmentFetchAMD {
1981    pub id_result_type: IdResultType,
1982    pub id_result: IdResult,
1983    pub image: IdRef,
1984    pub coordinate: IdRef,
1985    pub fragment_index: IdRef,
1986}
1987#[derive(Clone, Copy)]
1988pub struct InstReadClockKHR {
1989    pub id_result_type: IdResultType,
1990    pub id_result: IdResult,
1991    pub scope: IdScope,
1992}
1993#[derive(Clone, Copy)]
1994pub struct InstAllocateNodePayloadsAMDX {
1995    pub id_result_type: IdResultType,
1996    pub id_result: IdResult,
1997    pub visibility: IdScope,
1998    pub payload_count: IdRef,
1999    pub node_index: IdRef,
2000}
2001#[derive(Clone, Copy)]
2002pub struct InstTypeNodePayloadArrayAMDX {
2003    pub id_result: IdResult,
2004    pub payload_type: IdRef,
2005}
2006#[derive(Clone, Copy)]
2007pub struct InstFinishWritingNodePayloadAMDX {
2008    pub id_result_type: IdResultType,
2009    pub id_result: IdResult,
2010    pub payload: IdRef,
2011}
2012#[derive(Clone, Copy)]
2013pub struct InstNodePayloadArrayLengthAMDX {
2014    pub id_result_type: IdResultType,
2015    pub id_result: IdResult,
2016    pub payload_array: IdRef,
2017}
2018#[derive(Clone, Copy)]
2019pub struct InstIsNodePayloadValidAMDX {
2020    pub id_result_type: IdResultType,
2021    pub id_result: IdResult,
2022    pub payload_type: IdRef,
2023    pub node_index: IdRef,
2024}
2025#[derive(Clone, Copy)]
2026pub struct InstConstantStringAMDX<'a> {
2027    pub id_result: IdResult,
2028    pub literal_string: LiteralString<'a>,
2029}
2030#[derive(Clone, Copy)]
2031pub struct InstSpecConstantStringAMDX<'a> {
2032    pub id_result: IdResult,
2033    pub literal_string: LiteralString<'a>,
2034}
2035#[derive(Clone, Copy)]
2036pub struct InstHitObjectGetWorldToObjectNV {
2037    pub id_result_type: IdResultType,
2038    pub id_result: IdResult,
2039    pub hit_object: IdRef,
2040}
2041#[derive(Clone, Copy)]
2042pub struct InstHitObjectGetObjectToWorldNV {
2043    pub id_result_type: IdResultType,
2044    pub id_result: IdResult,
2045    pub hit_object: IdRef,
2046}
2047#[derive(Clone, Copy)]
2048pub struct InstHitObjectGetObjectRayDirectionNV {
2049    pub id_result_type: IdResultType,
2050    pub id_result: IdResult,
2051    pub hit_object: IdRef,
2052}
2053#[derive(Clone, Copy)]
2054pub struct InstHitObjectGetObjectRayOriginNV {
2055    pub id_result_type: IdResultType,
2056    pub id_result: IdResult,
2057    pub hit_object: IdRef,
2058}
2059#[derive(Clone, Copy)]
2060pub struct InstHitObjectGetShaderRecordBufferHandleNV {
2061    pub id_result_type: IdResultType,
2062    pub id_result: IdResult,
2063    pub hit_object: IdRef,
2064}
2065#[derive(Clone, Copy)]
2066pub struct InstHitObjectGetShaderBindingTableRecordIndexNV {
2067    pub id_result_type: IdResultType,
2068    pub id_result: IdResult,
2069    pub hit_object: IdRef,
2070}
2071#[derive(Clone, Copy)]
2072pub struct InstHitObjectGetCurrentTimeNV {
2073    pub id_result_type: IdResultType,
2074    pub id_result: IdResult,
2075    pub hit_object: IdRef,
2076}
2077#[derive(Clone, Copy)]
2078pub struct InstHitObjectGetHitKindNV {
2079    pub id_result_type: IdResultType,
2080    pub id_result: IdResult,
2081    pub hit_object: IdRef,
2082}
2083#[derive(Clone, Copy)]
2084pub struct InstHitObjectGetPrimitiveIndexNV {
2085    pub id_result_type: IdResultType,
2086    pub id_result: IdResult,
2087    pub hit_object: IdRef,
2088}
2089#[derive(Clone, Copy)]
2090pub struct InstHitObjectGetGeometryIndexNV {
2091    pub id_result_type: IdResultType,
2092    pub id_result: IdResult,
2093    pub hit_object: IdRef,
2094}
2095#[derive(Clone, Copy)]
2096pub struct InstHitObjectGetInstanceIdNV {
2097    pub id_result_type: IdResultType,
2098    pub id_result: IdResult,
2099    pub hit_object: IdRef,
2100}
2101#[derive(Clone, Copy)]
2102pub struct InstHitObjectGetInstanceCustomIndexNV {
2103    pub id_result_type: IdResultType,
2104    pub id_result: IdResult,
2105    pub hit_object: IdRef,
2106}
2107#[derive(Clone, Copy)]
2108pub struct InstHitObjectGetWorldRayDirectionNV {
2109    pub id_result_type: IdResultType,
2110    pub id_result: IdResult,
2111    pub hit_object: IdRef,
2112}
2113#[derive(Clone, Copy)]
2114pub struct InstHitObjectGetWorldRayOriginNV {
2115    pub id_result_type: IdResultType,
2116    pub id_result: IdResult,
2117    pub hit_object: IdRef,
2118}
2119#[derive(Clone, Copy)]
2120pub struct InstHitObjectGetRayTMaxNV {
2121    pub id_result_type: IdResultType,
2122    pub id_result: IdResult,
2123    pub hit_object: IdRef,
2124}
2125#[derive(Clone, Copy)]
2126pub struct InstHitObjectGetRayTMinNV {
2127    pub id_result_type: IdResultType,
2128    pub id_result: IdResult,
2129    pub hit_object: IdRef,
2130}
2131#[derive(Clone, Copy)]
2132pub struct InstHitObjectIsEmptyNV {
2133    pub id_result_type: IdResultType,
2134    pub id_result: IdResult,
2135    pub hit_object: IdRef,
2136}
2137#[derive(Clone, Copy)]
2138pub struct InstHitObjectIsHitNV {
2139    pub id_result_type: IdResultType,
2140    pub id_result: IdResult,
2141    pub hit_object: IdRef,
2142}
2143#[derive(Clone, Copy)]
2144pub struct InstHitObjectIsMissNV {
2145    pub id_result_type: IdResultType,
2146    pub id_result: IdResult,
2147    pub hit_object: IdRef,
2148}
2149#[derive(Clone, Copy)]
2150pub struct InstCooperativeVectorMatrixMulNV {
2151    pub id_result_type: IdResultType,
2152    pub id_result: IdResult,
2153    pub input: IdRef,
2154    pub input_interpretation: IdRef,
2155    pub matrix: IdRef,
2156    pub matrix_offset: IdRef,
2157    pub matrix_interpretation: IdRef,
2158    pub m: IdRef,
2159    pub k: IdRef,
2160    pub memory_layout: IdRef,
2161    pub transpose: IdRef,
2162    pub matrix_stride: Option<IdRef>,
2163    pub cooperative_matrix_operands: Option<CooperativeMatrixOperands>,
2164}
2165#[derive(Clone, Copy)]
2166pub struct InstCooperativeVectorMatrixMulAddNV {
2167    pub id_result_type: IdResultType,
2168    pub id_result: IdResult,
2169    pub input: IdRef,
2170    pub input_interpretation: IdRef,
2171    pub matrix: IdRef,
2172    pub matrix_offset: IdRef,
2173    pub matrix_interpretation: IdRef,
2174    pub bias: IdRef,
2175    pub bias_offset: IdRef,
2176    pub bias_interpretation: IdRef,
2177    pub m: IdRef,
2178    pub k: IdRef,
2179    pub memory_layout: IdRef,
2180    pub transpose: IdRef,
2181    pub matrix_stride: Option<IdRef>,
2182    pub cooperative_matrix_operands: Option<CooperativeMatrixOperands>,
2183}
2184#[derive(Clone, Copy)]
2185pub struct InstFetchMicroTriangleVertexPositionNV {
2186    pub id_result_type: IdResultType,
2187    pub id_result: IdResult,
2188    pub accel: IdRef,
2189    pub instance_id: IdRef,
2190    pub geometry_index: IdRef,
2191    pub primitive_index: IdRef,
2192    pub barycentric: IdRef,
2193}
2194#[derive(Clone, Copy)]
2195pub struct InstFetchMicroTriangleVertexBarycentricNV {
2196    pub id_result_type: IdResultType,
2197    pub id_result: IdResult,
2198    pub accel: IdRef,
2199    pub instance_id: IdRef,
2200    pub geometry_index: IdRef,
2201    pub primitive_index: IdRef,
2202    pub barycentric: IdRef,
2203}
2204#[derive(Clone, Copy)]
2205pub struct InstHitObjectGetIntersectionTriangleVertexPositionsEXT {
2206    pub id_result_type: IdResultType,
2207    pub id_result: IdResult,
2208    pub hit_object: IdRef,
2209}
2210#[derive(Clone, Copy)]
2211pub struct InstHitObjectGetRayFlagsEXT {
2212    pub id_result_type: IdResultType,
2213    pub id_result: IdResult,
2214    pub hit_object: IdRef,
2215}
2216#[derive(Clone, Copy)]
2217pub struct InstHitObjectGetCurrentTimeEXT {
2218    pub id_result_type: IdResultType,
2219    pub id_result: IdResult,
2220    pub hit_object: IdRef,
2221}
2222#[derive(Clone, Copy)]
2223pub struct InstHitObjectGetHitKindEXT {
2224    pub id_result_type: IdResultType,
2225    pub id_result: IdResult,
2226    pub hit_object: IdRef,
2227}
2228#[derive(Clone, Copy)]
2229pub struct InstHitObjectGetPrimitiveIndexEXT {
2230    pub id_result_type: IdResultType,
2231    pub id_result: IdResult,
2232    pub hit_object: IdRef,
2233}
2234#[derive(Clone, Copy)]
2235pub struct InstHitObjectGetGeometryIndexEXT {
2236    pub id_result_type: IdResultType,
2237    pub id_result: IdResult,
2238    pub hit_object: IdRef,
2239}
2240#[derive(Clone, Copy)]
2241pub struct InstHitObjectGetInstanceIdEXT {
2242    pub id_result_type: IdResultType,
2243    pub id_result: IdResult,
2244    pub hit_object: IdRef,
2245}
2246#[derive(Clone, Copy)]
2247pub struct InstHitObjectGetInstanceCustomIndexEXT {
2248    pub id_result_type: IdResultType,
2249    pub id_result: IdResult,
2250    pub hit_object: IdRef,
2251}
2252#[derive(Clone, Copy)]
2253pub struct InstHitObjectGetObjectRayOriginEXT {
2254    pub id_result_type: IdResultType,
2255    pub id_result: IdResult,
2256    pub hit_object: IdRef,
2257}
2258#[derive(Clone, Copy)]
2259pub struct InstHitObjectGetObjectRayDirectionEXT {
2260    pub id_result_type: IdResultType,
2261    pub id_result: IdResult,
2262    pub hit_object: IdRef,
2263}
2264#[derive(Clone, Copy)]
2265pub struct InstHitObjectGetWorldRayDirectionEXT {
2266    pub id_result_type: IdResultType,
2267    pub id_result: IdResult,
2268    pub hit_object: IdRef,
2269}
2270#[derive(Clone, Copy)]
2271pub struct InstHitObjectGetWorldRayOriginEXT {
2272    pub id_result_type: IdResultType,
2273    pub id_result: IdResult,
2274    pub hit_object: IdRef,
2275}
2276#[derive(Clone, Copy)]
2277pub struct InstHitObjectGetObjectToWorldEXT {
2278    pub id_result_type: IdResultType,
2279    pub id_result: IdResult,
2280    pub hit_object: IdRef,
2281}
2282#[derive(Clone, Copy)]
2283pub struct InstHitObjectGetWorldToObjectEXT {
2284    pub id_result_type: IdResultType,
2285    pub id_result: IdResult,
2286    pub hit_object: IdRef,
2287}
2288#[derive(Clone, Copy)]
2289pub struct InstHitObjectGetRayTMaxEXT {
2290    pub id_result_type: IdResultType,
2291    pub id_result: IdResult,
2292    pub hit_object: IdRef,
2293}
2294#[derive(Clone, Copy)]
2295pub struct InstReportIntersectionKHR {
2296    pub id_result_type: IdResultType,
2297    pub id_result: IdResult,
2298    pub hit: IdRef,
2299    pub hit_kind: IdRef,
2300}
2301#[derive(Clone, Copy)]
2302pub struct InstRayQueryGetIntersectionTriangleVertexPositionsKHR {
2303    pub id_result_type: IdResultType,
2304    pub id_result: IdResult,
2305    pub ray_query: IdRef,
2306    pub intersection: IdRef,
2307}
2308#[derive(Clone, Copy)]
2309pub struct InstRayQueryGetIntersectionClusterIdNV {
2310    pub id_result_type: IdResultType,
2311    pub id_result: IdResult,
2312    pub ray_query: IdRef,
2313    pub intersection: IdRef,
2314}
2315#[derive(Clone, Copy)]
2316pub struct InstHitObjectGetClusterIdNV {
2317    pub id_result_type: IdResultType,
2318    pub id_result: IdResult,
2319    pub hit_object: IdRef,
2320}
2321#[derive(Clone, Copy)]
2322pub struct InstHitObjectGetRayTMinEXT {
2323    pub id_result_type: IdResultType,
2324    pub id_result: IdResult,
2325    pub hit_object: IdRef,
2326}
2327#[derive(Clone, Copy)]
2328pub struct InstHitObjectGetShaderBindingTableRecordIndexEXT {
2329    pub id_result_type: IdResultType,
2330    pub id_result: IdResult,
2331    pub hit_object: IdRef,
2332}
2333#[derive(Clone, Copy)]
2334pub struct InstHitObjectGetShaderRecordBufferHandleEXT {
2335    pub id_result_type: IdResultType,
2336    pub id_result: IdResult,
2337    pub hit_object: IdRef,
2338}
2339#[derive(Clone, Copy)]
2340pub struct InstHitObjectIsEmptyEXT {
2341    pub id_result_type: IdResultType,
2342    pub id_result: IdResult,
2343    pub hit_object: IdRef,
2344}
2345#[derive(Clone, Copy)]
2346pub struct InstHitObjectIsHitEXT {
2347    pub id_result_type: IdResultType,
2348    pub id_result: IdResult,
2349    pub hit_object: IdRef,
2350}
2351#[derive(Clone, Copy)]
2352pub struct InstHitObjectIsMissEXT {
2353    pub id_result_type: IdResultType,
2354    pub id_result: IdResult,
2355    pub hit_object: IdRef,
2356}
2357#[derive(Clone, Copy)]
2358pub struct InstCooperativeMatrixLoadNV {
2359    pub id_result_type: IdResultType,
2360    pub id_result: IdResult,
2361    pub pointer: IdRef,
2362    pub stride: IdRef,
2363    pub column_major: IdRef,
2364    pub memory_access: Option<MemoryAccess>,
2365}
2366#[derive(Clone, Copy)]
2367pub struct InstCooperativeMatrixMulAddNV {
2368    pub id_result_type: IdResultType,
2369    pub id_result: IdResult,
2370    pub a: IdRef,
2371    pub b: IdRef,
2372    pub c: IdRef,
2373}
2374#[derive(Clone, Copy)]
2375pub struct InstCooperativeMatrixLengthNV {
2376    pub id_result_type: IdResultType,
2377    pub id_result: IdResult,
2378    pub ty: IdRef,
2379}
2380#[derive(Clone, Copy)]
2381pub struct InstCreateTensorLayoutNV {
2382    pub id_result_type: IdResultType,
2383    pub id_result: IdResult,
2384}
2385#[derive(Clone, Copy)]
2386pub struct InstTensorLayoutSetDimensionNV<'a> {
2387    pub id_result_type: IdResultType,
2388    pub id_result: IdResult,
2389    pub tensor_layout: IdRef,
2390    pub dim: &'a [IdRef],
2391}
2392#[derive(Clone, Copy)]
2393pub struct InstTensorLayoutSetStrideNV<'a> {
2394    pub id_result_type: IdResultType,
2395    pub id_result: IdResult,
2396    pub tensor_layout: IdRef,
2397    pub stride: &'a [IdRef],
2398}
2399#[derive(Clone, Copy)]
2400pub struct InstTensorLayoutSliceNV<'a> {
2401    pub id_result_type: IdResultType,
2402    pub id_result: IdResult,
2403    pub tensor_layout: IdRef,
2404    pub operands: &'a [IdRef],
2405}
2406#[derive(Clone, Copy)]
2407pub struct InstTensorLayoutSetClampValueNV {
2408    pub id_result_type: IdResultType,
2409    pub id_result: IdResult,
2410    pub tensor_layout: IdRef,
2411    pub value: IdRef,
2412}
2413#[derive(Clone, Copy)]
2414pub struct InstCreateTensorViewNV {
2415    pub id_result_type: IdResultType,
2416    pub id_result: IdResult,
2417}
2418#[derive(Clone, Copy)]
2419pub struct InstTensorViewSetDimensionNV<'a> {
2420    pub id_result_type: IdResultType,
2421    pub id_result: IdResult,
2422    pub tensor_view: IdRef,
2423    pub dim: &'a [IdRef],
2424}
2425#[derive(Clone, Copy)]
2426pub struct InstTensorViewSetStrideNV<'a> {
2427    pub id_result_type: IdResultType,
2428    pub id_result: IdResult,
2429    pub tensor_view: IdRef,
2430    pub stride: &'a [IdRef],
2431}
2432#[derive(Clone, Copy)]
2433pub struct InstIsHelperInvocationEXT {
2434    pub id_result_type: IdResultType,
2435    pub id_result: IdResult,
2436}
2437#[derive(Clone, Copy)]
2438pub struct InstTensorViewSetClipNV {
2439    pub id_result_type: IdResultType,
2440    pub id_result: IdResult,
2441    pub tensor_view: IdRef,
2442    pub clip_row_offset: IdRef,
2443    pub clip_row_span: IdRef,
2444    pub clip_col_offset: IdRef,
2445    pub clip_col_span: IdRef,
2446}
2447#[derive(Clone, Copy)]
2448pub struct InstTensorLayoutSetBlockSizeNV<'a> {
2449    pub id_result_type: IdResultType,
2450    pub id_result: IdResult,
2451    pub tensor_layout: IdRef,
2452    pub block_size: &'a [IdRef],
2453}
2454#[derive(Clone, Copy)]
2455pub struct InstConvertUToImageNV {
2456    pub id_result_type: IdResultType,
2457    pub id_result: IdResult,
2458    pub operand: IdRef,
2459}
2460#[derive(Clone, Copy)]
2461pub struct InstConvertUToSamplerNV {
2462    pub id_result_type: IdResultType,
2463    pub id_result: IdResult,
2464    pub operand: IdRef,
2465}
2466#[derive(Clone, Copy)]
2467pub struct InstConvertImageToUNV {
2468    pub id_result_type: IdResultType,
2469    pub id_result: IdResult,
2470    pub operand: IdRef,
2471}
2472#[derive(Clone, Copy)]
2473pub struct InstConvertSamplerToUNV {
2474    pub id_result_type: IdResultType,
2475    pub id_result: IdResult,
2476    pub operand: IdRef,
2477}
2478#[derive(Clone, Copy)]
2479pub struct InstConvertUToSampledImageNV {
2480    pub id_result_type: IdResultType,
2481    pub id_result: IdResult,
2482    pub operand: IdRef,
2483}
2484#[derive(Clone, Copy)]
2485pub struct InstConvertSampledImageToUNV {
2486    pub id_result_type: IdResultType,
2487    pub id_result: IdResult,
2488    pub operand: IdRef,
2489}
2490#[derive(Clone, Copy)]
2491pub struct InstRayQueryGetIntersectionSpherePositionNV {
2492    pub id_result_type: IdResultType,
2493    pub id_result: IdResult,
2494    pub ray_query: IdRef,
2495    pub intersection: IdRef,
2496}
2497#[derive(Clone, Copy)]
2498pub struct InstRayQueryGetIntersectionSphereRadiusNV {
2499    pub id_result_type: IdResultType,
2500    pub id_result: IdResult,
2501    pub ray_query: IdRef,
2502    pub intersection: IdRef,
2503}
2504#[derive(Clone, Copy)]
2505pub struct InstRayQueryGetIntersectionLSSPositionsNV {
2506    pub id_result_type: IdResultType,
2507    pub id_result: IdResult,
2508    pub ray_query: IdRef,
2509    pub intersection: IdRef,
2510}
2511#[derive(Clone, Copy)]
2512pub struct InstRayQueryGetIntersectionLSSRadiiNV {
2513    pub id_result_type: IdResultType,
2514    pub id_result: IdResult,
2515    pub ray_query: IdRef,
2516    pub intersection: IdRef,
2517}
2518#[derive(Clone, Copy)]
2519pub struct InstRayQueryGetIntersectionLSSHitValueNV {
2520    pub id_result_type: IdResultType,
2521    pub id_result: IdResult,
2522    pub ray_query: IdRef,
2523    pub intersection: IdRef,
2524}
2525#[derive(Clone, Copy)]
2526pub struct InstHitObjectGetSpherePositionNV {
2527    pub id_result_type: IdResultType,
2528    pub id_result: IdResult,
2529    pub hit_object: IdRef,
2530}
2531#[derive(Clone, Copy)]
2532pub struct InstHitObjectGetSphereRadiusNV {
2533    pub id_result_type: IdResultType,
2534    pub id_result: IdResult,
2535    pub hit_object: IdRef,
2536}
2537#[derive(Clone, Copy)]
2538pub struct InstHitObjectGetLSSPositionsNV {
2539    pub id_result_type: IdResultType,
2540    pub id_result: IdResult,
2541    pub hit_object: IdRef,
2542}
2543#[derive(Clone, Copy)]
2544pub struct InstHitObjectGetLSSRadiiNV {
2545    pub id_result_type: IdResultType,
2546    pub id_result: IdResult,
2547    pub hit_object: IdRef,
2548}
2549#[derive(Clone, Copy)]
2550pub struct InstHitObjectIsSphereHitNV {
2551    pub id_result_type: IdResultType,
2552    pub id_result: IdResult,
2553    pub hit_object: IdRef,
2554}
2555#[derive(Clone, Copy)]
2556pub struct InstHitObjectIsLSSHitNV {
2557    pub id_result_type: IdResultType,
2558    pub id_result: IdResult,
2559    pub hit_object: IdRef,
2560}
2561#[derive(Clone, Copy)]
2562pub struct InstRayQueryIsSphereHitNV {
2563    pub id_result_type: IdResultType,
2564    pub id_result: IdResult,
2565    pub ray_query: IdRef,
2566    pub intersection: IdRef,
2567}
2568#[derive(Clone, Copy)]
2569pub struct InstRayQueryIsLSSHitNV {
2570    pub id_result_type: IdResultType,
2571    pub id_result: IdResult,
2572    pub ray_query: IdRef,
2573    pub intersection: IdRef,
2574}
2575#[derive(Clone, Copy)]
2576pub struct InstUCountLeadingZerosINTEL {
2577    pub id_result_type: IdResultType,
2578    pub id_result: IdResult,
2579    pub operand: IdRef,
2580}
2581#[derive(Clone, Copy)]
2582pub struct InstUCountTrailingZerosINTEL {
2583    pub id_result_type: IdResultType,
2584    pub id_result: IdResult,
2585    pub operand: IdRef,
2586}
2587#[derive(Clone, Copy)]
2588pub struct InstAbsISubINTEL {
2589    pub id_result_type: IdResultType,
2590    pub id_result: IdResult,
2591    pub operand_1: IdRef,
2592    pub operand_2: IdRef,
2593}
2594#[derive(Clone, Copy)]
2595pub struct InstAbsUSubINTEL {
2596    pub id_result_type: IdResultType,
2597    pub id_result: IdResult,
2598    pub operand_1: IdRef,
2599    pub operand_2: IdRef,
2600}
2601#[derive(Clone, Copy)]
2602pub struct InstIAddSatINTEL {
2603    pub id_result_type: IdResultType,
2604    pub id_result: IdResult,
2605    pub operand_1: IdRef,
2606    pub operand_2: IdRef,
2607}
2608#[derive(Clone, Copy)]
2609pub struct InstUAddSatINTEL {
2610    pub id_result_type: IdResultType,
2611    pub id_result: IdResult,
2612    pub operand_1: IdRef,
2613    pub operand_2: IdRef,
2614}
2615#[derive(Clone, Copy)]
2616pub struct InstIAverageINTEL {
2617    pub id_result_type: IdResultType,
2618    pub id_result: IdResult,
2619    pub operand_1: IdRef,
2620    pub operand_2: IdRef,
2621}
2622#[derive(Clone, Copy)]
2623pub struct InstUAverageINTEL {
2624    pub id_result_type: IdResultType,
2625    pub id_result: IdResult,
2626    pub operand_1: IdRef,
2627    pub operand_2: IdRef,
2628}
2629#[derive(Clone, Copy)]
2630pub struct InstIAverageRoundedINTEL {
2631    pub id_result_type: IdResultType,
2632    pub id_result: IdResult,
2633    pub operand_1: IdRef,
2634    pub operand_2: IdRef,
2635}
2636#[derive(Clone, Copy)]
2637pub struct InstUAverageRoundedINTEL {
2638    pub id_result_type: IdResultType,
2639    pub id_result: IdResult,
2640    pub operand_1: IdRef,
2641    pub operand_2: IdRef,
2642}
2643#[derive(Clone, Copy)]
2644pub struct InstISubSatINTEL {
2645    pub id_result_type: IdResultType,
2646    pub id_result: IdResult,
2647    pub operand_1: IdRef,
2648    pub operand_2: IdRef,
2649}
2650#[derive(Clone, Copy)]
2651pub struct InstUSubSatINTEL {
2652    pub id_result_type: IdResultType,
2653    pub id_result: IdResult,
2654    pub operand_1: IdRef,
2655    pub operand_2: IdRef,
2656}
2657#[derive(Clone, Copy)]
2658pub struct InstIMul32x16INTEL {
2659    pub id_result_type: IdResultType,
2660    pub id_result: IdResult,
2661    pub operand_1: IdRef,
2662    pub operand_2: IdRef,
2663}
2664#[derive(Clone, Copy)]
2665pub struct InstUMul32x16INTEL {
2666    pub id_result_type: IdResultType,
2667    pub id_result: IdResult,
2668    pub operand_1: IdRef,
2669    pub operand_2: IdRef,
2670}
2671#[derive(Clone, Copy)]
2672pub struct InstRayQueryGetRayTMinKHR {
2673    pub id_result_type: IdResultType,
2674    pub id_result: IdResult,
2675    pub ray_query: IdRef,
2676}
2677#[derive(Clone, Copy)]
2678pub struct InstRayQueryGetRayFlagsKHR {
2679    pub id_result_type: IdResultType,
2680    pub id_result: IdResult,
2681    pub ray_query: IdRef,
2682}
2683#[derive(Clone, Copy)]
2684pub struct InstRayQueryGetIntersectionTKHR {
2685    pub id_result_type: IdResultType,
2686    pub id_result: IdResult,
2687    pub ray_query: IdRef,
2688    pub intersection: IdRef,
2689}
2690#[derive(Clone, Copy)]
2691pub struct InstRayQueryGetIntersectionInstanceCustomIndexKHR {
2692    pub id_result_type: IdResultType,
2693    pub id_result: IdResult,
2694    pub ray_query: IdRef,
2695    pub intersection: IdRef,
2696}
2697#[derive(Clone, Copy)]
2698pub struct InstRayQueryGetIntersectionInstanceIdKHR {
2699    pub id_result_type: IdResultType,
2700    pub id_result: IdResult,
2701    pub ray_query: IdRef,
2702    pub intersection: IdRef,
2703}
2704#[derive(Clone, Copy)]
2705pub struct InstRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR {
2706    pub id_result_type: IdResultType,
2707    pub id_result: IdResult,
2708    pub ray_query: IdRef,
2709    pub intersection: IdRef,
2710}
2711#[derive(Clone, Copy)]
2712pub struct InstRayQueryGetIntersectionGeometryIndexKHR {
2713    pub id_result_type: IdResultType,
2714    pub id_result: IdResult,
2715    pub ray_query: IdRef,
2716    pub intersection: IdRef,
2717}
2718#[derive(Clone, Copy)]
2719pub struct InstRayQueryGetIntersectionPrimitiveIndexKHR {
2720    pub id_result_type: IdResultType,
2721    pub id_result: IdResult,
2722    pub ray_query: IdRef,
2723    pub intersection: IdRef,
2724}
2725#[derive(Clone, Copy)]
2726pub struct InstRayQueryGetIntersectionBarycentricsKHR {
2727    pub id_result_type: IdResultType,
2728    pub id_result: IdResult,
2729    pub ray_query: IdRef,
2730    pub intersection: IdRef,
2731}
2732#[derive(Clone, Copy)]
2733pub struct InstRayQueryGetIntersectionFrontFaceKHR {
2734    pub id_result_type: IdResultType,
2735    pub id_result: IdResult,
2736    pub ray_query: IdRef,
2737    pub intersection: IdRef,
2738}
2739#[derive(Clone, Copy)]
2740pub struct InstRayQueryGetIntersectionCandidateAABBOpaqueKHR {
2741    pub id_result_type: IdResultType,
2742    pub id_result: IdResult,
2743    pub ray_query: IdRef,
2744}
2745#[derive(Clone, Copy)]
2746pub struct InstRayQueryGetIntersectionObjectRayDirectionKHR {
2747    pub id_result_type: IdResultType,
2748    pub id_result: IdResult,
2749    pub ray_query: IdRef,
2750    pub intersection: IdRef,
2751}
2752#[derive(Clone, Copy)]
2753pub struct InstRayQueryGetIntersectionObjectRayOriginKHR {
2754    pub id_result_type: IdResultType,
2755    pub id_result: IdResult,
2756    pub ray_query: IdRef,
2757    pub intersection: IdRef,
2758}
2759#[derive(Clone, Copy)]
2760pub struct InstRayQueryGetWorldRayDirectionKHR {
2761    pub id_result_type: IdResultType,
2762    pub id_result: IdResult,
2763    pub ray_query: IdRef,
2764}
2765#[derive(Clone, Copy)]
2766pub struct InstRayQueryGetWorldRayOriginKHR {
2767    pub id_result_type: IdResultType,
2768    pub id_result: IdResult,
2769    pub ray_query: IdRef,
2770}
2771#[derive(Clone, Copy)]
2772pub struct InstRayQueryGetIntersectionObjectToWorldKHR {
2773    pub id_result_type: IdResultType,
2774    pub id_result: IdResult,
2775    pub ray_query: IdRef,
2776    pub intersection: IdRef,
2777}
2778#[derive(Clone, Copy)]
2779pub struct InstRayQueryGetIntersectionWorldToObjectKHR {
2780    pub id_result_type: IdResultType,
2781    pub id_result: IdResult,
2782    pub ray_query: IdRef,
2783    pub intersection: IdRef,
2784}
2785#[derive(Clone, Copy)]
2786pub struct InstFDot2MixAcc32VALVE {
2787    pub id_result_type: IdResultType,
2788    pub id_result: IdResult,
2789    pub vector_1: IdRef,
2790    pub vector_2: IdRef,
2791    pub accumulator: IdRef,
2792}
2793#[derive(Clone, Copy)]
2794pub struct InstFDot2MixAcc16VALVE {
2795    pub id_result_type: IdResultType,
2796    pub id_result: IdResult,
2797    pub vector_1: IdRef,
2798    pub vector_2: IdRef,
2799    pub accumulator: IdRef,
2800}
2801#[derive(Clone, Copy)]
2802pub struct InstFDot4MixAcc32VALVE {
2803    pub id_result_type: IdResultType,
2804    pub id_result: IdResult,
2805    pub vector_1: IdRef,
2806    pub vector_2: IdRef,
2807    pub accumulator: IdRef,
2808}
2809#[derive(Clone, Copy)]
2810pub struct InstTraceRayKHR {
2811    pub accel: IdRef,
2812    pub ray_flags: IdRef,
2813    pub cull_mask: IdRef,
2814    pub sbt_offset: IdRef,
2815    pub sbt_stride: IdRef,
2816    pub miss_index: IdRef,
2817    pub ray_origin: IdRef,
2818    pub ray_tmin: IdRef,
2819    pub ray_direction: IdRef,
2820    pub ray_tmax: IdRef,
2821    pub payload: IdRef,
2822}
2823#[derive(Clone, Copy)]
2824pub struct InstExecuteCallableKHR {
2825    pub sbt_index: IdRef,
2826    pub callable_data: IdRef,
2827}
2828#[derive(Clone, Copy)]
2829pub struct InstIgnoreIntersectionKHR;
2830#[derive(Clone, Copy)]
2831pub struct InstTerminateRayKHR;
2832#[derive(Clone, Copy)]
2833pub struct InstRayQueryInitializeKHR {
2834    pub ray_query: IdRef,
2835    pub accel: IdRef,
2836    pub ray_flags: IdRef,
2837    pub cull_mask: IdRef,
2838    pub ray_origin: IdRef,
2839    pub ray_tmin: IdRef,
2840    pub ray_direction: IdRef,
2841    pub ray_tmax: IdRef,
2842}
2843#[derive(Clone, Copy)]
2844pub struct InstRayQueryTerminateKHR {
2845    pub ray_query: IdRef,
2846}
2847#[derive(Clone, Copy)]
2848pub struct InstRayQueryGenerateIntersectionKHR {
2849    pub ray_query: IdRef,
2850    pub hit_t: IdRef,
2851}
2852#[derive(Clone, Copy)]
2853pub struct InstRayQueryConfirmIntersectionKHR {
2854    pub ray_query: IdRef,
2855}
2856#[derive(Clone, Copy)]
2857pub struct InstEnqueueNodePayloadsAMDX {
2858    pub payload_array: IdRef,
2859}
2860#[derive(Clone, Copy)]
2861pub struct InstHitObjectRecordHitMotionNV {
2862    pub hit_object: IdRef,
2863    pub acceleration_structure: IdRef,
2864    pub instance_id: IdRef,
2865    pub primitive_id: IdRef,
2866    pub geometry_index: IdRef,
2867    pub hit_kind: IdRef,
2868    pub sbt_record_offset: IdRef,
2869    pub sbt_record_stride: IdRef,
2870    pub origin: IdRef,
2871    pub tmin: IdRef,
2872    pub direction: IdRef,
2873    pub tmax: IdRef,
2874    pub current_time: IdRef,
2875    pub hit_object_attributes: IdRef,
2876}
2877#[derive(Clone, Copy)]
2878pub struct InstHitObjectRecordHitWithIndexMotionNV {
2879    pub hit_object: IdRef,
2880    pub acceleration_structure: IdRef,
2881    pub instance_id: IdRef,
2882    pub primitive_id: IdRef,
2883    pub geometry_index: IdRef,
2884    pub hit_kind: IdRef,
2885    pub sbt_record_index: IdRef,
2886    pub origin: IdRef,
2887    pub tmin: IdRef,
2888    pub direction: IdRef,
2889    pub tmax: IdRef,
2890    pub current_time: IdRef,
2891    pub hit_object_attributes: IdRef,
2892}
2893#[derive(Clone, Copy)]
2894pub struct InstHitObjectRecordMissMotionNV {
2895    pub hit_object: IdRef,
2896    pub sbt_index: IdRef,
2897    pub origin: IdRef,
2898    pub tmin: IdRef,
2899    pub direction: IdRef,
2900    pub tmax: IdRef,
2901    pub current_time: IdRef,
2902}
2903#[derive(Clone, Copy)]
2904pub struct InstHitObjectTraceRayMotionNV {
2905    pub hit_object: IdRef,
2906    pub acceleration_structure: IdRef,
2907    pub ray_flags: IdRef,
2908    pub cullmask: IdRef,
2909    pub sbt_record_offset: IdRef,
2910    pub sbt_record_stride: IdRef,
2911    pub miss_index: IdRef,
2912    pub origin: IdRef,
2913    pub tmin: IdRef,
2914    pub direction: IdRef,
2915    pub tmax: IdRef,
2916    pub time: IdRef,
2917    pub payload: IdRef,
2918}
2919#[derive(Clone, Copy)]
2920pub struct InstHitObjectRecordEmptyNV {
2921    pub hit_object: IdRef,
2922}
2923#[derive(Clone, Copy)]
2924pub struct InstHitObjectTraceRayNV {
2925    pub hit_object: IdRef,
2926    pub acceleration_structure: IdRef,
2927    pub ray_flags: IdRef,
2928    pub cullmask: IdRef,
2929    pub sbt_record_offset: IdRef,
2930    pub sbt_record_stride: IdRef,
2931    pub miss_index: IdRef,
2932    pub origin: IdRef,
2933    pub tmin: IdRef,
2934    pub direction: IdRef,
2935    pub tmax: IdRef,
2936    pub payload: IdRef,
2937}
2938#[derive(Clone, Copy)]
2939pub struct InstHitObjectRecordHitNV {
2940    pub hit_object: IdRef,
2941    pub acceleration_structure: IdRef,
2942    pub instance_id: IdRef,
2943    pub primitive_id: IdRef,
2944    pub geometry_index: IdRef,
2945    pub hit_kind: IdRef,
2946    pub sbt_record_offset: IdRef,
2947    pub sbt_record_stride: IdRef,
2948    pub origin: IdRef,
2949    pub tmin: IdRef,
2950    pub direction: IdRef,
2951    pub tmax: IdRef,
2952    pub hit_object_attributes: IdRef,
2953}
2954#[derive(Clone, Copy)]
2955pub struct InstHitObjectRecordHitWithIndexNV {
2956    pub hit_object: IdRef,
2957    pub acceleration_structure: IdRef,
2958    pub instance_id: IdRef,
2959    pub primitive_id: IdRef,
2960    pub geometry_index: IdRef,
2961    pub hit_kind: IdRef,
2962    pub sbt_record_index: IdRef,
2963    pub origin: IdRef,
2964    pub tmin: IdRef,
2965    pub direction: IdRef,
2966    pub tmax: IdRef,
2967    pub hit_object_attributes: IdRef,
2968}
2969#[derive(Clone, Copy)]
2970pub struct InstHitObjectRecordMissNV {
2971    pub hit_object: IdRef,
2972    pub sbt_index: IdRef,
2973    pub origin: IdRef,
2974    pub tmin: IdRef,
2975    pub direction: IdRef,
2976    pub tmax: IdRef,
2977}
2978#[derive(Clone, Copy)]
2979pub struct InstHitObjectExecuteShaderNV {
2980    pub hit_object: IdRef,
2981    pub payload: IdRef,
2982}
2983#[derive(Clone, Copy)]
2984pub struct InstHitObjectGetAttributesNV {
2985    pub hit_object: IdRef,
2986    pub hit_object_attribute: IdRef,
2987}
2988#[derive(Clone, Copy)]
2989pub struct InstReorderThreadWithHitObjectNV {
2990    pub hit_object: IdRef,
2991    pub hint: Option<IdRef>,
2992    pub bits: Option<IdRef>,
2993}
2994#[derive(Clone, Copy)]
2995pub struct InstReorderThreadWithHintNV {
2996    pub hint: IdRef,
2997    pub bits: IdRef,
2998}
2999#[derive(Clone, Copy)]
3000pub struct InstCooperativeVectorOuterProductAccumulateNV {
3001    pub pointer: IdRef,
3002    pub offset: IdRef,
3003    pub a: IdRef,
3004    pub b: IdRef,
3005    pub memory_layout: IdRef,
3006    pub matrix_interpretation: IdRef,
3007    pub matrix_stride: Option<IdRef>,
3008}
3009#[derive(Clone, Copy)]
3010pub struct InstCooperativeVectorReduceSumAccumulateNV {
3011    pub pointer: IdRef,
3012    pub offset: IdRef,
3013    pub v: IdRef,
3014}
3015#[derive(Clone, Copy)]
3016pub struct InstEmitMeshTasksEXT {
3017    pub group_count_x: IdRef,
3018    pub group_count_y: IdRef,
3019    pub group_count_z: IdRef,
3020    pub payload: Option<IdRef>,
3021}
3022#[derive(Clone, Copy)]
3023pub struct InstSetMeshOutputsEXT {
3024    pub vertex_count: IdRef,
3025    pub primitive_count: IdRef,
3026}
3027#[derive(Clone, Copy)]
3028pub struct InstWritePackedPrimitiveIndices4x8NV {
3029    pub index_offset: IdRef,
3030    pub packed_indices: IdRef,
3031}
3032#[derive(Clone, Copy)]
3033pub struct InstHitObjectRecordFromQueryEXT {
3034    pub hit_object: IdRef,
3035    pub ray_query: IdRef,
3036    pub sbt_record_index: IdRef,
3037    pub hit_object_attributes: IdRef,
3038}
3039#[derive(Clone, Copy)]
3040pub struct InstHitObjectRecordMissEXT {
3041    pub hit_object: IdRef,
3042    pub ray_flags: IdRef,
3043    pub miss_index: IdRef,
3044    pub ray_origin: IdRef,
3045    pub ray_tmin: IdRef,
3046    pub ray_direction: IdRef,
3047    pub ray_tmax: IdRef,
3048}
3049#[derive(Clone, Copy)]
3050pub struct InstHitObjectRecordMissMotionEXT {
3051    pub hit_object: IdRef,
3052    pub ray_flags: IdRef,
3053    pub miss_index: IdRef,
3054    pub ray_origin: IdRef,
3055    pub ray_tmin: IdRef,
3056    pub ray_direction: IdRef,
3057    pub ray_tmax: IdRef,
3058    pub current_time: IdRef,
3059}
3060#[derive(Clone, Copy)]
3061pub struct InstHitObjectSetShaderBindingTableRecordIndexEXT {
3062    pub hit_object: IdRef,
3063    pub sbt_record_index: IdRef,
3064}
3065#[derive(Clone, Copy)]
3066pub struct InstHitObjectReorderExecuteShaderEXT {
3067    pub hit_object: IdRef,
3068    pub payload: IdRef,
3069    pub hint: Option<IdRef>,
3070    pub bits: Option<IdRef>,
3071}
3072#[derive(Clone, Copy)]
3073pub struct InstHitObjectTraceReorderExecuteEXT {
3074    pub hit_object: IdRef,
3075    pub acceleration_structure: IdRef,
3076    pub ray_flags: IdRef,
3077    pub cull_mask: IdRef,
3078    pub sbt_offset: IdRef,
3079    pub sbt_stride: IdRef,
3080    pub miss_index: IdRef,
3081    pub ray_origin: IdRef,
3082    pub ray_tmin: IdRef,
3083    pub ray_direction: IdRef,
3084    pub ray_tmax: IdRef,
3085    pub payload: IdRef,
3086    pub hint: Option<IdRef>,
3087    pub bits: Option<IdRef>,
3088}
3089#[derive(Clone, Copy)]
3090pub struct InstHitObjectTraceMotionReorderExecuteEXT {
3091    pub hit_object: IdRef,
3092    pub acceleration_structure: IdRef,
3093    pub ray_flags: IdRef,
3094    pub cull_mask: IdRef,
3095    pub sbt_offset: IdRef,
3096    pub sbt_stride: IdRef,
3097    pub miss_index: IdRef,
3098    pub ray_origin: IdRef,
3099    pub ray_tmin: IdRef,
3100    pub ray_direction: IdRef,
3101    pub ray_tmax: IdRef,
3102    pub current_time: IdRef,
3103    pub payload: IdRef,
3104    pub hint: Option<IdRef>,
3105    pub bits: Option<IdRef>,
3106}
3107#[derive(Clone, Copy)]
3108pub struct InstReorderThreadWithHintEXT {
3109    pub hint: IdRef,
3110    pub bits: IdRef,
3111}
3112#[derive(Clone, Copy)]
3113pub struct InstReorderThreadWithHitObjectEXT {
3114    pub hit_object: IdRef,
3115    pub hint: Option<IdRef>,
3116    pub bits: Option<IdRef>,
3117}
3118#[derive(Clone, Copy)]
3119pub struct InstHitObjectTraceRayEXT {
3120    pub hit_object: IdRef,
3121    pub acceleration_structure: IdRef,
3122    pub ray_flags: IdRef,
3123    pub cull_mask: IdRef,
3124    pub sbt_offset: IdRef,
3125    pub sbt_stride: IdRef,
3126    pub miss_index: IdRef,
3127    pub ray_origin: IdRef,
3128    pub ray_tmin: IdRef,
3129    pub ray_direction: IdRef,
3130    pub ray_tmax: IdRef,
3131    pub payload: IdRef,
3132}
3133#[derive(Clone, Copy)]
3134pub struct InstHitObjectTraceRayMotionEXT {
3135    pub hit_object: IdRef,
3136    pub acceleration_structure: IdRef,
3137    pub ray_flags: IdRef,
3138    pub cull_mask: IdRef,
3139    pub sbt_offset: IdRef,
3140    pub sbt_stride: IdRef,
3141    pub miss_index: IdRef,
3142    pub ray_origin: IdRef,
3143    pub ray_tmin: IdRef,
3144    pub ray_direction: IdRef,
3145    pub ray_tmax: IdRef,
3146    pub current_time: IdRef,
3147    pub payload: IdRef,
3148}
3149#[derive(Clone, Copy)]
3150pub struct InstHitObjectRecordEmptyEXT {
3151    pub hit_object: IdRef,
3152}
3153#[derive(Clone, Copy)]
3154pub struct InstHitObjectExecuteShaderEXT {
3155    pub hit_object: IdRef,
3156    pub payload: IdRef,
3157}
3158#[derive(Clone, Copy)]
3159pub struct InstHitObjectGetAttributesEXT {
3160    pub hit_object: IdRef,
3161    pub hit_object_attribute: IdRef,
3162}
3163#[derive(Clone, Copy)]
3164pub struct InstIgnoreIntersectionNV;
3165#[derive(Clone, Copy)]
3166pub struct InstTerminateRayNV;
3167#[derive(Clone, Copy)]
3168pub struct InstTraceNV {
3169    pub accel: IdRef,
3170    pub ray_flags: IdRef,
3171    pub cull_mask: IdRef,
3172    pub sbt_offset: IdRef,
3173    pub sbt_stride: IdRef,
3174    pub miss_index: IdRef,
3175    pub ray_origin: IdRef,
3176    pub ray_tmin: IdRef,
3177    pub ray_direction: IdRef,
3178    pub ray_tmax: IdRef,
3179    pub payload_id: IdRef,
3180}
3181#[derive(Clone, Copy)]
3182pub struct InstTraceMotionNV {
3183    pub accel: IdRef,
3184    pub ray_flags: IdRef,
3185    pub cull_mask: IdRef,
3186    pub sbt_offset: IdRef,
3187    pub sbt_stride: IdRef,
3188    pub miss_index: IdRef,
3189    pub ray_origin: IdRef,
3190    pub ray_tmin: IdRef,
3191    pub ray_direction: IdRef,
3192    pub ray_tmax: IdRef,
3193    pub time: IdRef,
3194    pub payload_id: IdRef,
3195}
3196#[derive(Clone, Copy)]
3197pub struct InstTraceRayMotionNV {
3198    pub accel: IdRef,
3199    pub ray_flags: IdRef,
3200    pub cull_mask: IdRef,
3201    pub sbt_offset: IdRef,
3202    pub sbt_stride: IdRef,
3203    pub miss_index: IdRef,
3204    pub ray_origin: IdRef,
3205    pub ray_tmin: IdRef,
3206    pub ray_direction: IdRef,
3207    pub ray_tmax: IdRef,
3208    pub time: IdRef,
3209    pub payload: IdRef,
3210}
3211#[derive(Clone, Copy)]
3212pub struct InstExecuteCallableNV {
3213    pub sbt_index: IdRef,
3214    pub callable_data_id: IdRef,
3215}
3216#[derive(Clone, Copy)]
3217pub struct InstCooperativeMatrixStoreNV {
3218    pub pointer: IdRef,
3219    pub object: IdRef,
3220    pub stride: IdRef,
3221    pub column_major: IdRef,
3222    pub memory_access: Option<MemoryAccess>,
3223}
3224#[derive(Clone, Copy)]
3225pub struct InstBeginInvocationInterlockEXT;
3226#[derive(Clone, Copy)]
3227pub struct InstEndInvocationInterlockEXT;
3228#[derive(Clone, Copy)]
3229pub struct InstSamplerImageAddressingModeNV {
3230    pub bit_width: LiteralInteger,
3231}
3232#[derive(Clone, Copy)]
3233pub struct InstLoopControlINTEL<'a> {
3234    pub loop_control_parameters: &'a [LiteralInteger],
3235}
3236#[derive(Clone, Copy)]
3237pub struct InstUndef {
3238    pub id_result_type: IdResultType,
3239    pub id_result: IdResult,
3240}
3241#[derive(Clone, Copy)]
3242pub struct InstSizeOf {
3243    pub id_result_type: IdResultType,
3244    pub id_result: IdResult,
3245    pub pointer: IdRef,
3246}
3247#[derive(Clone, Copy)]
3248pub struct InstCooperativeMatrixLengthKHR {
3249    pub id_result_type: IdResultType,
3250    pub id_result: IdResult,
3251    pub ty: IdRef,
3252}
3253#[derive(Clone, Copy)]
3254pub struct InstPoisonKHR {
3255    pub id_result_type: IdResultType,
3256    pub id_result: IdResult,
3257}
3258#[derive(Clone, Copy)]
3259pub struct InstFreezeKHR {
3260    pub id_result_type: IdResultType,
3261    pub id_result: IdResult,
3262    pub value: IdRef,
3263}
3264#[derive(Clone, Copy)]
3265pub struct InstExpectKHR {
3266    pub id_result_type: IdResultType,
3267    pub id_result: IdResult,
3268    pub value: IdRef,
3269    pub expected_value: IdRef,
3270}
3271#[derive(Clone, Copy)]
3272pub struct InstArithmeticFenceEXT {
3273    pub id_result_type: IdResultType,
3274    pub id_result: IdResult,
3275    pub target: IdRef,
3276}
3277#[derive(Clone, Copy)]
3278pub struct InstNop;
3279#[derive(Clone, Copy)]
3280pub struct InstAssumeTrueKHR {
3281    pub condition: IdRef,
3282}
3283#[derive(Clone, Copy)]
3284pub struct InstDPdx {
3285    pub id_result_type: IdResultType,
3286    pub id_result: IdResult,
3287    pub p: IdRef,
3288}
3289#[derive(Clone, Copy)]
3290pub struct InstDPdy {
3291    pub id_result_type: IdResultType,
3292    pub id_result: IdResult,
3293    pub p: IdRef,
3294}
3295#[derive(Clone, Copy)]
3296pub struct InstFwidth {
3297    pub id_result_type: IdResultType,
3298    pub id_result: IdResult,
3299    pub p: IdRef,
3300}
3301#[derive(Clone, Copy)]
3302pub struct InstDPdxFine {
3303    pub id_result_type: IdResultType,
3304    pub id_result: IdResult,
3305    pub p: IdRef,
3306}
3307#[derive(Clone, Copy)]
3308pub struct InstDPdyFine {
3309    pub id_result_type: IdResultType,
3310    pub id_result: IdResult,
3311    pub p: IdRef,
3312}
3313#[derive(Clone, Copy)]
3314pub struct InstFwidthFine {
3315    pub id_result_type: IdResultType,
3316    pub id_result: IdResult,
3317    pub p: IdRef,
3318}
3319#[derive(Clone, Copy)]
3320pub struct InstDPdxCoarse {
3321    pub id_result_type: IdResultType,
3322    pub id_result: IdResult,
3323    pub p: IdRef,
3324}
3325#[derive(Clone, Copy)]
3326pub struct InstDPdyCoarse {
3327    pub id_result_type: IdResultType,
3328    pub id_result: IdResult,
3329    pub p: IdRef,
3330}
3331#[derive(Clone, Copy)]
3332pub struct InstFwidthCoarse {
3333    pub id_result_type: IdResultType,
3334    pub id_result: IdResult,
3335    pub p: IdRef,
3336}
3337#[derive(Clone, Copy)]
3338pub struct InstFunction {
3339    pub id_result_type: IdResultType,
3340    pub id_result: IdResult,
3341    pub function_control: FunctionControl,
3342    pub function_type: IdRef,
3343}
3344#[derive(Clone, Copy)]
3345pub struct InstFunctionParameter {
3346    pub id_result_type: IdResultType,
3347    pub id_result: IdResult,
3348}
3349#[derive(Clone, Copy)]
3350pub struct InstFunctionCall<'a> {
3351    pub id_result_type: IdResultType,
3352    pub id_result: IdResult,
3353    pub function: IdRef,
3354    pub arguments: &'a [IdRef],
3355}
3356#[derive(Clone, Copy)]
3357pub struct InstCooperativeMatrixPerElementOpNV<'a> {
3358    pub id_result_type: IdResultType,
3359    pub id_result: IdResult,
3360    pub matrix: IdRef,
3361    pub func: IdRef,
3362    pub operands: &'a [IdRef],
3363}
3364#[derive(Clone, Copy)]
3365pub struct InstFunctionEnd;
3366#[derive(Clone, Copy)]
3367pub struct InstSampledImage {
3368    pub id_result_type: IdResultType,
3369    pub id_result: IdResult,
3370    pub image: IdRef,
3371    pub sampler: IdRef,
3372}
3373#[derive(Clone, Copy)]
3374pub struct InstImageSampleImplicitLod {
3375    pub id_result_type: IdResultType,
3376    pub id_result: IdResult,
3377    pub sampled_image: IdRef,
3378    pub coordinate: IdRef,
3379    pub image_operands: Option<ImageOperands>,
3380}
3381#[derive(Clone, Copy)]
3382pub struct InstImageSampleExplicitLod {
3383    pub id_result_type: IdResultType,
3384    pub id_result: IdResult,
3385    pub sampled_image: IdRef,
3386    pub coordinate: IdRef,
3387    pub image_operands: ImageOperands,
3388}
3389#[derive(Clone, Copy)]
3390pub struct InstImageSampleDrefImplicitLod {
3391    pub id_result_type: IdResultType,
3392    pub id_result: IdResult,
3393    pub sampled_image: IdRef,
3394    pub coordinate: IdRef,
3395    pub dref: IdRef,
3396    pub image_operands: Option<ImageOperands>,
3397}
3398#[derive(Clone, Copy)]
3399pub struct InstImageSampleDrefExplicitLod {
3400    pub id_result_type: IdResultType,
3401    pub id_result: IdResult,
3402    pub sampled_image: IdRef,
3403    pub coordinate: IdRef,
3404    pub dref: IdRef,
3405    pub image_operands: ImageOperands,
3406}
3407#[derive(Clone, Copy)]
3408pub struct InstImageSampleProjImplicitLod {
3409    pub id_result_type: IdResultType,
3410    pub id_result: IdResult,
3411    pub sampled_image: IdRef,
3412    pub coordinate: IdRef,
3413    pub image_operands: Option<ImageOperands>,
3414}
3415#[derive(Clone, Copy)]
3416pub struct InstImageSampleProjExplicitLod {
3417    pub id_result_type: IdResultType,
3418    pub id_result: IdResult,
3419    pub sampled_image: IdRef,
3420    pub coordinate: IdRef,
3421    pub image_operands: ImageOperands,
3422}
3423#[derive(Clone, Copy)]
3424pub struct InstImageSampleProjDrefImplicitLod {
3425    pub id_result_type: IdResultType,
3426    pub id_result: IdResult,
3427    pub sampled_image: IdRef,
3428    pub coordinate: IdRef,
3429    pub dref: IdRef,
3430    pub image_operands: Option<ImageOperands>,
3431}
3432#[derive(Clone, Copy)]
3433pub struct InstImageSampleProjDrefExplicitLod {
3434    pub id_result_type: IdResultType,
3435    pub id_result: IdResult,
3436    pub sampled_image: IdRef,
3437    pub coordinate: IdRef,
3438    pub dref: IdRef,
3439    pub image_operands: ImageOperands,
3440}
3441#[derive(Clone, Copy)]
3442pub struct InstImageFetch {
3443    pub id_result_type: IdResultType,
3444    pub id_result: IdResult,
3445    pub image: IdRef,
3446    pub coordinate: IdRef,
3447    pub image_operands: Option<ImageOperands>,
3448}
3449#[derive(Clone, Copy)]
3450pub struct InstImageGather {
3451    pub id_result_type: IdResultType,
3452    pub id_result: IdResult,
3453    pub sampled_image: IdRef,
3454    pub coordinate: IdRef,
3455    pub component: IdRef,
3456    pub image_operands: Option<ImageOperands>,
3457}
3458#[derive(Clone, Copy)]
3459pub struct InstImageDrefGather {
3460    pub id_result_type: IdResultType,
3461    pub id_result: IdResult,
3462    pub sampled_image: IdRef,
3463    pub coordinate: IdRef,
3464    pub dref: IdRef,
3465    pub image_operands: Option<ImageOperands>,
3466}
3467#[derive(Clone, Copy)]
3468pub struct InstImageRead {
3469    pub id_result_type: IdResultType,
3470    pub id_result: IdResult,
3471    pub image: IdRef,
3472    pub coordinate: IdRef,
3473    pub image_operands: Option<ImageOperands>,
3474}
3475#[derive(Clone, Copy)]
3476pub struct InstImage {
3477    pub id_result_type: IdResultType,
3478    pub id_result: IdResult,
3479    pub sampled_image: IdRef,
3480}
3481#[derive(Clone, Copy)]
3482pub struct InstImageQueryFormat {
3483    pub id_result_type: IdResultType,
3484    pub id_result: IdResult,
3485    pub image: IdRef,
3486}
3487#[derive(Clone, Copy)]
3488pub struct InstImageQueryOrder {
3489    pub id_result_type: IdResultType,
3490    pub id_result: IdResult,
3491    pub image: IdRef,
3492}
3493#[derive(Clone, Copy)]
3494pub struct InstImageQuerySizeLod {
3495    pub id_result_type: IdResultType,
3496    pub id_result: IdResult,
3497    pub image: IdRef,
3498    pub level_of_detail: IdRef,
3499}
3500#[derive(Clone, Copy)]
3501pub struct InstImageQuerySize {
3502    pub id_result_type: IdResultType,
3503    pub id_result: IdResult,
3504    pub image: IdRef,
3505}
3506#[derive(Clone, Copy)]
3507pub struct InstImageQueryLod {
3508    pub id_result_type: IdResultType,
3509    pub id_result: IdResult,
3510    pub sampled_image: IdRef,
3511    pub coordinate: IdRef,
3512}
3513#[derive(Clone, Copy)]
3514pub struct InstImageQueryLevels {
3515    pub id_result_type: IdResultType,
3516    pub id_result: IdResult,
3517    pub image: IdRef,
3518}
3519#[derive(Clone, Copy)]
3520pub struct InstImageQuerySamples {
3521    pub id_result_type: IdResultType,
3522    pub id_result: IdResult,
3523    pub image: IdRef,
3524}
3525#[derive(Clone, Copy)]
3526pub struct InstImageSparseSampleImplicitLod {
3527    pub id_result_type: IdResultType,
3528    pub id_result: IdResult,
3529    pub sampled_image: IdRef,
3530    pub coordinate: IdRef,
3531    pub image_operands: Option<ImageOperands>,
3532}
3533#[derive(Clone, Copy)]
3534pub struct InstImageSparseSampleExplicitLod {
3535    pub id_result_type: IdResultType,
3536    pub id_result: IdResult,
3537    pub sampled_image: IdRef,
3538    pub coordinate: IdRef,
3539    pub image_operands: ImageOperands,
3540}
3541#[derive(Clone, Copy)]
3542pub struct InstImageSparseSampleDrefImplicitLod {
3543    pub id_result_type: IdResultType,
3544    pub id_result: IdResult,
3545    pub sampled_image: IdRef,
3546    pub coordinate: IdRef,
3547    pub dref: IdRef,
3548    pub image_operands: Option<ImageOperands>,
3549}
3550#[derive(Clone, Copy)]
3551pub struct InstImageSparseSampleDrefExplicitLod {
3552    pub id_result_type: IdResultType,
3553    pub id_result: IdResult,
3554    pub sampled_image: IdRef,
3555    pub coordinate: IdRef,
3556    pub dref: IdRef,
3557    pub image_operands: ImageOperands,
3558}
3559#[derive(Clone, Copy)]
3560pub struct InstImageSparseSampleProjImplicitLod {
3561    pub id_result_type: IdResultType,
3562    pub id_result: IdResult,
3563    pub sampled_image: IdRef,
3564    pub coordinate: IdRef,
3565    pub image_operands: Option<ImageOperands>,
3566}
3567#[derive(Clone, Copy)]
3568pub struct InstImageSparseSampleProjExplicitLod {
3569    pub id_result_type: IdResultType,
3570    pub id_result: IdResult,
3571    pub sampled_image: IdRef,
3572    pub coordinate: IdRef,
3573    pub image_operands: ImageOperands,
3574}
3575#[derive(Clone, Copy)]
3576pub struct InstImageSparseSampleProjDrefImplicitLod {
3577    pub id_result_type: IdResultType,
3578    pub id_result: IdResult,
3579    pub sampled_image: IdRef,
3580    pub coordinate: IdRef,
3581    pub dref: IdRef,
3582    pub image_operands: Option<ImageOperands>,
3583}
3584#[derive(Clone, Copy)]
3585pub struct InstImageSparseSampleProjDrefExplicitLod {
3586    pub id_result_type: IdResultType,
3587    pub id_result: IdResult,
3588    pub sampled_image: IdRef,
3589    pub coordinate: IdRef,
3590    pub dref: IdRef,
3591    pub image_operands: ImageOperands,
3592}
3593#[derive(Clone, Copy)]
3594pub struct InstImageSparseFetch {
3595    pub id_result_type: IdResultType,
3596    pub id_result: IdResult,
3597    pub image: IdRef,
3598    pub coordinate: IdRef,
3599    pub image_operands: Option<ImageOperands>,
3600}
3601#[derive(Clone, Copy)]
3602pub struct InstImageSparseGather {
3603    pub id_result_type: IdResultType,
3604    pub id_result: IdResult,
3605    pub sampled_image: IdRef,
3606    pub coordinate: IdRef,
3607    pub component: IdRef,
3608    pub image_operands: Option<ImageOperands>,
3609}
3610#[derive(Clone, Copy)]
3611pub struct InstImageSparseDrefGather {
3612    pub id_result_type: IdResultType,
3613    pub id_result: IdResult,
3614    pub sampled_image: IdRef,
3615    pub coordinate: IdRef,
3616    pub dref: IdRef,
3617    pub image_operands: Option<ImageOperands>,
3618}
3619#[derive(Clone, Copy)]
3620pub struct InstImageSparseTexelsResident {
3621    pub id_result_type: IdResultType,
3622    pub id_result: IdResult,
3623    pub resident_code: IdRef,
3624}
3625#[derive(Clone, Copy)]
3626pub struct InstImageSparseRead {
3627    pub id_result_type: IdResultType,
3628    pub id_result: IdResult,
3629    pub image: IdRef,
3630    pub coordinate: IdRef,
3631    pub image_operands: Option<ImageOperands>,
3632}
3633#[derive(Clone, Copy)]
3634pub struct InstColorAttachmentReadEXT {
3635    pub id_result_type: IdResultType,
3636    pub id_result: IdResult,
3637    pub attachment: IdRef,
3638    pub sample: Option<IdRef>,
3639}
3640#[derive(Clone, Copy)]
3641pub struct InstDepthAttachmentReadEXT {
3642    pub id_result_type: IdResultType,
3643    pub id_result: IdResult,
3644    pub sample: Option<IdRef>,
3645}
3646#[derive(Clone, Copy)]
3647pub struct InstStencilAttachmentReadEXT {
3648    pub id_result_type: IdResultType,
3649    pub id_result: IdResult,
3650    pub sample: Option<IdRef>,
3651}
3652#[derive(Clone, Copy)]
3653pub struct InstImageSampleWeightedQCOM {
3654    pub id_result_type: IdResultType,
3655    pub id_result: IdResult,
3656    pub texture: IdRef,
3657    pub coordinates: IdRef,
3658    pub weights: IdRef,
3659}
3660#[derive(Clone, Copy)]
3661pub struct InstImageBoxFilterQCOM {
3662    pub id_result_type: IdResultType,
3663    pub id_result: IdResult,
3664    pub texture: IdRef,
3665    pub coordinates: IdRef,
3666    pub box_size: IdRef,
3667}
3668#[derive(Clone, Copy)]
3669pub struct InstImageBlockMatchSSDQCOM {
3670    pub id_result_type: IdResultType,
3671    pub id_result: IdResult,
3672    pub target: IdRef,
3673    pub target_coordinates: IdRef,
3674    pub reference: IdRef,
3675    pub reference_coordinates: IdRef,
3676    pub block_size: IdRef,
3677}
3678#[derive(Clone, Copy)]
3679pub struct InstImageBlockMatchSADQCOM {
3680    pub id_result_type: IdResultType,
3681    pub id_result: IdResult,
3682    pub target: IdRef,
3683    pub target_coordinates: IdRef,
3684    pub reference: IdRef,
3685    pub reference_coordinates: IdRef,
3686    pub block_size: IdRef,
3687}
3688#[derive(Clone, Copy)]
3689pub struct InstImageBlockMatchWindowSSDQCOM {
3690    pub id_result_type: IdResultType,
3691    pub id_result: IdResult,
3692    pub target_sampled_image: IdRef,
3693    pub target_coordinates: IdRef,
3694    pub reference_sampled_image: IdRef,
3695    pub reference_coordinates: IdRef,
3696    pub block_size: IdRef,
3697}
3698#[derive(Clone, Copy)]
3699pub struct InstImageBlockMatchWindowSADQCOM {
3700    pub id_result_type: IdResultType,
3701    pub id_result: IdResult,
3702    pub target_sampled_image: IdRef,
3703    pub target_coordinates: IdRef,
3704    pub reference_sampled_image: IdRef,
3705    pub reference_coordinates: IdRef,
3706    pub block_size: IdRef,
3707}
3708#[derive(Clone, Copy)]
3709pub struct InstImageBlockMatchGatherSSDQCOM {
3710    pub id_result_type: IdResultType,
3711    pub id_result: IdResult,
3712    pub target_sampled_image: IdRef,
3713    pub target_coordinates: IdRef,
3714    pub reference_sampled_image: IdRef,
3715    pub reference_coordinates: IdRef,
3716    pub block_size: IdRef,
3717}
3718#[derive(Clone, Copy)]
3719pub struct InstImageBlockMatchGatherSADQCOM {
3720    pub id_result_type: IdResultType,
3721    pub id_result: IdResult,
3722    pub target_sampled_image: IdRef,
3723    pub target_coordinates: IdRef,
3724    pub reference_sampled_image: IdRef,
3725    pub reference_coordinates: IdRef,
3726    pub block_size: IdRef,
3727}
3728#[derive(Clone, Copy)]
3729pub struct InstImageSampleFootprintNV {
3730    pub id_result_type: IdResultType,
3731    pub id_result: IdResult,
3732    pub sampled_image: IdRef,
3733    pub coordinate: IdRef,
3734    pub granularity: IdRef,
3735    pub coarse: IdRef,
3736    pub image_operands: Option<ImageOperands>,
3737}
3738#[derive(Clone, Copy)]
3739pub struct InstConvertHandleToImageINTEL {
3740    pub id_result_type: IdResultType,
3741    pub id_result: IdResult,
3742    pub operand: IdRef,
3743}
3744#[derive(Clone, Copy)]
3745pub struct InstConvertHandleToSamplerINTEL {
3746    pub id_result_type: IdResultType,
3747    pub id_result: IdResult,
3748    pub operand: IdRef,
3749}
3750#[derive(Clone, Copy)]
3751pub struct InstConvertHandleToSampledImageINTEL {
3752    pub id_result_type: IdResultType,
3753    pub id_result: IdResult,
3754    pub operand: IdRef,
3755}
3756#[derive(Clone, Copy)]
3757pub struct InstImageWrite {
3758    pub image: IdRef,
3759    pub coordinate: IdRef,
3760    pub texel: IdRef,
3761    pub image_operands: Option<ImageOperands>,
3762}
3763#[derive(Clone, Copy)]
3764pub struct InstPhi<'a> {
3765    pub id_result_type: IdResultType,
3766    pub id_result: IdResult,
3767    pub variables: &'a [PairIdRefIdRef],
3768}
3769#[derive(Clone, Copy)]
3770pub struct InstLabel {
3771    pub id_result: IdResult,
3772}
3773#[derive(Clone, Copy)]
3774pub struct InstLoopMerge {
3775    pub merge_block: IdRef,
3776    pub continue_target: IdRef,
3777    pub loop_control: LoopControl,
3778}
3779#[derive(Clone, Copy)]
3780pub struct InstSelectionMerge {
3781    pub merge_block: IdRef,
3782    pub selection_control: SelectionControl,
3783}
3784#[derive(Clone, Copy)]
3785pub struct InstBranch {
3786    pub target_label: IdRef,
3787}
3788#[derive(Clone, Copy)]
3789pub struct InstBranchConditional<'a> {
3790    pub condition: IdRef,
3791    pub true_label: IdRef,
3792    pub false_label: IdRef,
3793    pub branch_weights: &'a [LiteralInteger],
3794}
3795#[derive(Clone, Copy)]
3796pub struct InstSwitch<'a> {
3797    pub selector: IdRef,
3798    pub default: IdRef,
3799    pub target: &'a [PairLiteralIntegerIdRef],
3800}
3801#[derive(Clone, Copy)]
3802pub struct InstKill;
3803#[derive(Clone, Copy)]
3804pub struct InstReturn;
3805#[derive(Clone, Copy)]
3806pub struct InstReturnValue {
3807    pub value: IdRef,
3808}
3809#[derive(Clone, Copy)]
3810pub struct InstUnreachable;
3811#[derive(Clone, Copy)]
3812pub struct InstLifetimeStart {
3813    pub pointer: IdRef,
3814    pub size: LiteralInteger,
3815}
3816#[derive(Clone, Copy)]
3817pub struct InstLifetimeStop {
3818    pub pointer: IdRef,
3819    pub size: LiteralInteger,
3820}
3821#[derive(Clone, Copy)]
3822pub struct InstTerminateInvocation;
3823#[derive(Clone, Copy)]
3824pub struct InstAbortKHR {
3825    pub message_type: IdRef,
3826    pub message: IdRef,
3827}
3828#[derive(Clone, Copy)]
3829pub struct InstDemoteToHelperInvocation;
3830#[derive(Clone, Copy)]
3831pub struct InstVectorExtractDynamic {
3832    pub id_result_type: IdResultType,
3833    pub id_result: IdResult,
3834    pub vector: IdRef,
3835    pub index: IdRef,
3836}
3837#[derive(Clone, Copy)]
3838pub struct InstVectorInsertDynamic {
3839    pub id_result_type: IdResultType,
3840    pub id_result: IdResult,
3841    pub vector: IdRef,
3842    pub component: IdRef,
3843    pub index: IdRef,
3844}
3845#[derive(Clone, Copy)]
3846pub struct InstVectorShuffle<'a> {
3847    pub id_result_type: IdResultType,
3848    pub id_result: IdResult,
3849    pub vector_1: IdRef,
3850    pub vector_2: IdRef,
3851    pub components: &'a [LiteralInteger],
3852}
3853#[derive(Clone, Copy)]
3854pub struct InstCompositeConstruct<'a> {
3855    pub id_result_type: IdResultType,
3856    pub id_result: IdResult,
3857    pub constituents: &'a [IdRef],
3858}
3859#[derive(Clone, Copy)]
3860pub struct InstCompositeExtract<'a> {
3861    pub id_result_type: IdResultType,
3862    pub id_result: IdResult,
3863    pub composite: IdRef,
3864    pub indexes: &'a [LiteralInteger],
3865}
3866#[derive(Clone, Copy)]
3867pub struct InstCompositeInsert<'a> {
3868    pub id_result_type: IdResultType,
3869    pub id_result: IdResult,
3870    pub object: IdRef,
3871    pub composite: IdRef,
3872    pub indexes: &'a [LiteralInteger],
3873}
3874#[derive(Clone, Copy)]
3875pub struct InstCopyObject {
3876    pub id_result_type: IdResultType,
3877    pub id_result: IdResult,
3878    pub operand: IdRef,
3879}
3880#[derive(Clone, Copy)]
3881pub struct InstTranspose {
3882    pub id_result_type: IdResultType,
3883    pub id_result: IdResult,
3884    pub matrix: IdRef,
3885}
3886#[derive(Clone, Copy)]
3887pub struct InstCopyLogical {
3888    pub id_result_type: IdResultType,
3889    pub id_result: IdResult,
3890    pub operand: IdRef,
3891}
3892#[derive(Clone, Copy)]
3893pub struct InstCompositeConstructReplicateEXT {
3894    pub id_result_type: IdResultType,
3895    pub id_result: IdResult,
3896    pub value: IdRef,
3897}
3898#[derive(Clone, Copy)]
3899pub struct InstCompositeConstructCoopMatQCOM {
3900    pub id_result_type: IdResultType,
3901    pub id_result: IdResult,
3902    pub source_array: IdRef,
3903}
3904#[derive(Clone, Copy)]
3905pub struct InstCompositeExtractCoopMatQCOM {
3906    pub id_result_type: IdResultType,
3907    pub id_result: IdResult,
3908    pub source_cooperative_matrix: IdRef,
3909}
3910#[derive(Clone, Copy)]
3911pub struct InstExtractSubArrayQCOM {
3912    pub id_result_type: IdResultType,
3913    pub id_result: IdResult,
3914    pub source_array: IdRef,
3915    pub index: IdRef,
3916}
3917#[derive(Clone, Copy)]
3918pub struct InstCompositeConstructContinuedINTEL<'a> {
3919    pub id_result_type: IdResultType,
3920    pub id_result: IdResult,
3921    pub constituents: &'a [IdRef],
3922}
3923#[derive(Clone, Copy)]
3924pub struct InstConditionalCopyObjectINTEL<'a> {
3925    pub id_result_type: IdResultType,
3926    pub id_result: IdResult,
3927    pub conditions_and_operands_and: &'a [IdRef],
3928}
3929#[derive(Clone, Copy)]
3930pub struct InstConstantTrue {
3931    pub id_result_type: IdResultType,
3932    pub id_result: IdResult,
3933}
3934#[derive(Clone, Copy)]
3935pub struct InstConstantFalse {
3936    pub id_result_type: IdResultType,
3937    pub id_result: IdResult,
3938}
3939#[derive(Clone, Copy)]
3940pub struct InstConstant {
3941    pub id_result_type: IdResultType,
3942    pub id_result: IdResult,
3943    pub value: LiteralContextDependentNumber,
3944}
3945#[derive(Clone, Copy)]
3946pub struct InstConstantComposite<'a> {
3947    pub id_result_type: IdResultType,
3948    pub id_result: IdResult,
3949    pub constituents: &'a [IdRef],
3950}
3951#[derive(Clone, Copy)]
3952pub struct InstConstantSampler {
3953    pub id_result_type: IdResultType,
3954    pub id_result: IdResult,
3955    pub sampler_addressing_mode: SamplerAddressingMode,
3956    pub param: LiteralInteger,
3957    pub sampler_filter_mode: SamplerFilterMode,
3958}
3959#[derive(Clone, Copy)]
3960pub struct InstConstantNull {
3961    pub id_result_type: IdResultType,
3962    pub id_result: IdResult,
3963}
3964#[derive(Clone, Copy)]
3965pub struct InstSpecConstantTrue {
3966    pub id_result_type: IdResultType,
3967    pub id_result: IdResult,
3968}
3969#[derive(Clone, Copy)]
3970pub struct InstSpecConstantFalse {
3971    pub id_result_type: IdResultType,
3972    pub id_result: IdResult,
3973}
3974#[derive(Clone, Copy)]
3975pub struct InstSpecConstant {
3976    pub id_result_type: IdResultType,
3977    pub id_result: IdResult,
3978    pub value: LiteralContextDependentNumber,
3979}
3980#[derive(Clone, Copy)]
3981pub struct InstSpecConstantComposite<'a> {
3982    pub id_result_type: IdResultType,
3983    pub id_result: IdResult,
3984    pub constituents: &'a [IdRef],
3985}
3986#[derive(Clone, Copy)]
3987pub struct InstSpecConstantOp<'a> {
3988    pub id_result_type: IdResultType,
3989    pub id_result: IdResult,
3990    pub opcode: LiteralSpecConstantOpInteger<'a>,
3991}
3992#[derive(Clone, Copy)]
3993pub struct InstConstantCompositeReplicateEXT {
3994    pub id_result_type: IdResultType,
3995    pub id_result: IdResult,
3996    pub value: IdRef,
3997}
3998#[derive(Clone, Copy)]
3999pub struct InstSpecConstantCompositeReplicateEXT {
4000    pub id_result_type: IdResultType,
4001    pub id_result: IdResult,
4002    pub value: IdRef,
4003}
4004#[derive(Clone, Copy)]
4005pub struct InstConstantSizeOfEXT {
4006    pub id_result_type: IdResultType,
4007    pub id_result: IdResult,
4008    pub ty: IdRef,
4009}
4010#[derive(Clone, Copy)]
4011pub struct InstConstantDataKHR<'a> {
4012    pub id_result_type: IdResultType,
4013    pub id_result: IdResult,
4014    pub data: LiteralString<'a>,
4015}
4016#[derive(Clone, Copy)]
4017pub struct InstSpecConstantDataKHR<'a> {
4018    pub id_result_type: IdResultType,
4019    pub id_result: IdResult,
4020    pub data: LiteralString<'a>,
4021}
4022#[derive(Clone, Copy)]
4023pub struct InstSpecConstantTargetINTEL<'a> {
4024    pub id_result_type: IdResultType,
4025    pub id_result: IdResult,
4026    pub target: LiteralInteger,
4027    pub features: &'a [LiteralInteger],
4028}
4029#[derive(Clone, Copy)]
4030pub struct InstSpecConstantArchitectureINTEL {
4031    pub id_result_type: IdResultType,
4032    pub id_result: IdResult,
4033    pub category: LiteralInteger,
4034    pub family: LiteralInteger,
4035    pub opcode: LiteralInteger,
4036    pub architecture: LiteralInteger,
4037}
4038#[derive(Clone, Copy)]
4039pub struct InstSpecConstantCapabilitiesINTEL<'a> {
4040    pub id_result_type: IdResultType,
4041    pub id_result: IdResult,
4042    pub capabilities: &'a [Capability],
4043}
4044#[derive(Clone, Copy)]
4045pub struct InstConstantCompositeContinuedINTEL<'a> {
4046    pub constituents: &'a [IdRef],
4047}
4048#[derive(Clone, Copy)]
4049pub struct InstSpecConstantCompositeContinuedINTEL<'a> {
4050    pub constituents: &'a [IdRef],
4051}
4052#[derive(Clone, Copy)]
4053pub struct InstNamedBarrierInitialize {
4054    pub id_result_type: IdResultType,
4055    pub id_result: IdResult,
4056    pub subgroup_count: IdRef,
4057}
4058#[derive(Clone, Copy)]
4059pub struct InstControlBarrier {
4060    pub execution: IdScope,
4061    pub memory: IdScope,
4062    pub semantics: IdMemorySemantics,
4063}
4064#[derive(Clone, Copy)]
4065pub struct InstMemoryBarrier {
4066    pub memory: IdScope,
4067    pub semantics: IdMemorySemantics,
4068}
4069#[derive(Clone, Copy)]
4070pub struct InstMemoryNamedBarrier {
4071    pub named_barrier: IdRef,
4072    pub memory: IdScope,
4073    pub semantics: IdMemorySemantics,
4074}
4075#[derive(Clone, Copy)]
4076pub struct InstControlBarrierArriveINTEL {
4077    pub execution: IdScope,
4078    pub memory: IdScope,
4079    pub semantics: IdMemorySemantics,
4080}
4081#[derive(Clone, Copy)]
4082pub struct InstControlBarrierWaitINTEL {
4083    pub execution: IdScope,
4084    pub memory: IdScope,
4085    pub semantics: IdMemorySemantics,
4086}
4087#[derive(Clone, Copy)]
4088pub struct InstTypeVoid {
4089    pub id_result: IdResult,
4090}
4091#[derive(Clone, Copy)]
4092pub struct InstTypeBool {
4093    pub id_result: IdResult,
4094}
4095#[derive(Clone, Copy)]
4096pub struct InstTypeInt {
4097    pub id_result: IdResult,
4098    pub width: LiteralInteger,
4099    pub signedness: LiteralInteger,
4100}
4101#[derive(Clone, Copy)]
4102pub struct InstTypeFloat {
4103    pub id_result: IdResult,
4104    pub width: LiteralInteger,
4105    pub floating_point_encoding: Option<FPEncoding>,
4106}
4107#[derive(Clone, Copy)]
4108pub struct InstTypeVector {
4109    pub id_result: IdResult,
4110    pub component_type: IdRef,
4111    pub component_count: LiteralInteger,
4112}
4113#[derive(Clone, Copy)]
4114pub struct InstTypeMatrix {
4115    pub id_result: IdResult,
4116    pub column_type: IdRef,
4117    pub column_count: LiteralInteger,
4118}
4119#[derive(Clone, Copy)]
4120pub struct InstTypeImage {
4121    pub id_result: IdResult,
4122    pub sampled_type: IdRef,
4123    pub dim: Dim,
4124    pub depth: LiteralInteger,
4125    pub arrayed: LiteralInteger,
4126    pub ms: LiteralInteger,
4127    pub sampled: LiteralInteger,
4128    pub image_format: ImageFormat,
4129    pub access_qualifier: Option<AccessQualifier>,
4130}
4131#[derive(Clone, Copy)]
4132pub struct InstTypeSampler {
4133    pub id_result: IdResult,
4134}
4135#[derive(Clone, Copy)]
4136pub struct InstTypeSampledImage {
4137    pub id_result: IdResult,
4138    pub image_type: IdRef,
4139}
4140#[derive(Clone, Copy)]
4141pub struct InstTypeArray {
4142    pub id_result: IdResult,
4143    pub element_type: IdRef,
4144    pub length: IdRef,
4145}
4146#[derive(Clone, Copy)]
4147pub struct InstTypeRuntimeArray {
4148    pub id_result: IdResult,
4149    pub element_type: IdRef,
4150}
4151#[derive(Clone, Copy)]
4152pub struct InstTypeStruct<'a> {
4153    pub id_result: IdResult,
4154    pub member_types: &'a [IdRef],
4155}
4156#[derive(Clone, Copy)]
4157pub struct InstTypeOpaque<'a> {
4158    pub id_result: IdResult,
4159    pub the_name_of_the_opaque_type: LiteralString<'a>,
4160}
4161#[derive(Clone, Copy)]
4162pub struct InstTypePointer {
4163    pub id_result: IdResult,
4164    pub storage_class: StorageClass,
4165    pub ty: IdRef,
4166}
4167#[derive(Clone, Copy)]
4168pub struct InstTypeFunction<'a> {
4169    pub id_result: IdResult,
4170    pub return_type: IdRef,
4171    pub parameter_types: &'a [IdRef],
4172}
4173#[derive(Clone, Copy)]
4174pub struct InstTypeEvent {
4175    pub id_result: IdResult,
4176}
4177#[derive(Clone, Copy)]
4178pub struct InstTypeDeviceEvent {
4179    pub id_result: IdResult,
4180}
4181#[derive(Clone, Copy)]
4182pub struct InstTypeReserveId {
4183    pub id_result: IdResult,
4184}
4185#[derive(Clone, Copy)]
4186pub struct InstTypeQueue {
4187    pub id_result: IdResult,
4188}
4189#[derive(Clone, Copy)]
4190pub struct InstTypePipe {
4191    pub id_result: IdResult,
4192    pub qualifier: AccessQualifier,
4193}
4194#[derive(Clone, Copy)]
4195pub struct InstTypePipeStorage {
4196    pub id_result: IdResult,
4197}
4198#[derive(Clone, Copy)]
4199pub struct InstTypeNamedBarrier {
4200    pub id_result: IdResult,
4201}
4202#[derive(Clone, Copy)]
4203pub struct InstTypeTensorARM {
4204    pub id_result: IdResult,
4205    pub element_type: IdRef,
4206    pub rank: Option<IdRef>,
4207    pub shape: Option<IdRef>,
4208}
4209#[derive(Clone, Copy)]
4210pub struct InstTypeGraphARM<'a> {
4211    pub id_result: IdResult,
4212    pub num_inputs: LiteralInteger,
4213    pub in_out_types: &'a [IdRef],
4214}
4215#[derive(Clone, Copy)]
4216pub struct InstTypeUntypedPointerKHR {
4217    pub id_result: IdResult,
4218    pub storage_class: StorageClass,
4219}
4220#[derive(Clone, Copy)]
4221pub struct InstTypeCooperativeMatrixKHR {
4222    pub id_result: IdResult,
4223    pub component_type: IdRef,
4224    pub scope: IdScope,
4225    pub rows: IdRef,
4226    pub columns: IdRef,
4227    pub using: IdRef,
4228}
4229#[derive(Clone, Copy)]
4230pub struct InstTypeRayQueryKHR {
4231    pub id_result: IdResult,
4232}
4233#[derive(Clone, Copy)]
4234pub struct InstTypeBufferEXT {
4235    pub id_result: IdResult,
4236    pub storage_class: StorageClass,
4237}
4238#[derive(Clone, Copy)]
4239pub struct InstTypeHitObjectNV {
4240    pub id_result: IdResult,
4241}
4242#[derive(Clone, Copy)]
4243pub struct InstTypeVectorIdEXT {
4244    pub id_result: IdResult,
4245    pub component_type: IdRef,
4246    pub component_count: IdRef,
4247}
4248#[derive(Clone, Copy)]
4249pub struct InstTypeHitObjectEXT {
4250    pub id_result: IdResult,
4251}
4252#[derive(Clone, Copy)]
4253pub struct InstTypeAccelerationStructureKHR {
4254    pub id_result: IdResult,
4255}
4256#[derive(Clone, Copy)]
4257pub struct InstTypeCooperativeMatrixNV {
4258    pub id_result: IdResult,
4259    pub component_type: IdRef,
4260    pub execution: IdScope,
4261    pub rows: IdRef,
4262    pub columns: IdRef,
4263}
4264#[derive(Clone, Copy)]
4265pub struct InstTypeTensorLayoutNV {
4266    pub id_result: IdResult,
4267    pub dim: IdRef,
4268    pub clamp_mode: IdRef,
4269}
4270#[derive(Clone, Copy)]
4271pub struct InstTypeTensorViewNV<'a> {
4272    pub id_result: IdResult,
4273    pub dim: IdRef,
4274    pub has_dimensions: IdRef,
4275    pub p: &'a [IdRef],
4276}
4277#[derive(Clone, Copy)]
4278pub struct InstTypeBufferSurfaceINTEL {
4279    pub id_result: IdResult,
4280    pub access_qualifier: AccessQualifier,
4281}
4282#[derive(Clone, Copy)]
4283pub struct InstTypeForwardPointer {
4284    pub pointer_type: IdRef,
4285    pub storage_class: StorageClass,
4286}
4287#[derive(Clone, Copy)]
4288pub struct InstTypeStructContinuedINTEL<'a> {
4289    pub member_types: &'a [IdRef],
4290}
4291#[derive(Clone, Copy)]
4292pub struct InstAny {
4293    pub id_result_type: IdResultType,
4294    pub id_result: IdResult,
4295    pub vector: IdRef,
4296}
4297#[derive(Clone, Copy)]
4298pub struct InstAll {
4299    pub id_result_type: IdResultType,
4300    pub id_result: IdResult,
4301    pub vector: IdRef,
4302}
4303#[derive(Clone, Copy)]
4304pub struct InstIsNan {
4305    pub id_result_type: IdResultType,
4306    pub id_result: IdResult,
4307    pub x: IdRef,
4308}
4309#[derive(Clone, Copy)]
4310pub struct InstIsInf {
4311    pub id_result_type: IdResultType,
4312    pub id_result: IdResult,
4313    pub x: IdRef,
4314}
4315#[derive(Clone, Copy)]
4316pub struct InstIsFinite {
4317    pub id_result_type: IdResultType,
4318    pub id_result: IdResult,
4319    pub x: IdRef,
4320}
4321#[derive(Clone, Copy)]
4322pub struct InstIsNormal {
4323    pub id_result_type: IdResultType,
4324    pub id_result: IdResult,
4325    pub x: IdRef,
4326}
4327#[derive(Clone, Copy)]
4328pub struct InstSignBitSet {
4329    pub id_result_type: IdResultType,
4330    pub id_result: IdResult,
4331    pub x: IdRef,
4332}
4333#[derive(Clone, Copy)]
4334pub struct InstLessOrGreater {
4335    pub id_result_type: IdResultType,
4336    pub id_result: IdResult,
4337    pub x: IdRef,
4338    pub y: IdRef,
4339}
4340#[derive(Clone, Copy)]
4341pub struct InstOrdered {
4342    pub id_result_type: IdResultType,
4343    pub id_result: IdResult,
4344    pub x: IdRef,
4345    pub y: IdRef,
4346}
4347#[derive(Clone, Copy)]
4348pub struct InstUnordered {
4349    pub id_result_type: IdResultType,
4350    pub id_result: IdResult,
4351    pub x: IdRef,
4352    pub y: IdRef,
4353}
4354#[derive(Clone, Copy)]
4355pub struct InstLogicalEqual {
4356    pub id_result_type: IdResultType,
4357    pub id_result: IdResult,
4358    pub operand_1: IdRef,
4359    pub operand_2: IdRef,
4360}
4361#[derive(Clone, Copy)]
4362pub struct InstLogicalNotEqual {
4363    pub id_result_type: IdResultType,
4364    pub id_result: IdResult,
4365    pub operand_1: IdRef,
4366    pub operand_2: IdRef,
4367}
4368#[derive(Clone, Copy)]
4369pub struct InstLogicalOr {
4370    pub id_result_type: IdResultType,
4371    pub id_result: IdResult,
4372    pub operand_1: IdRef,
4373    pub operand_2: IdRef,
4374}
4375#[derive(Clone, Copy)]
4376pub struct InstLogicalAnd {
4377    pub id_result_type: IdResultType,
4378    pub id_result: IdResult,
4379    pub operand_1: IdRef,
4380    pub operand_2: IdRef,
4381}
4382#[derive(Clone, Copy)]
4383pub struct InstLogicalNot {
4384    pub id_result_type: IdResultType,
4385    pub id_result: IdResult,
4386    pub operand: IdRef,
4387}
4388#[derive(Clone, Copy)]
4389pub struct InstSelect {
4390    pub id_result_type: IdResultType,
4391    pub id_result: IdResult,
4392    pub condition: IdRef,
4393    pub object_1: IdRef,
4394    pub object_2: IdRef,
4395}
4396#[derive(Clone, Copy)]
4397pub struct InstIEqual {
4398    pub id_result_type: IdResultType,
4399    pub id_result: IdResult,
4400    pub operand_1: IdRef,
4401    pub operand_2: IdRef,
4402}
4403#[derive(Clone, Copy)]
4404pub struct InstINotEqual {
4405    pub id_result_type: IdResultType,
4406    pub id_result: IdResult,
4407    pub operand_1: IdRef,
4408    pub operand_2: IdRef,
4409}
4410#[derive(Clone, Copy)]
4411pub struct InstUGreaterThan {
4412    pub id_result_type: IdResultType,
4413    pub id_result: IdResult,
4414    pub operand_1: IdRef,
4415    pub operand_2: IdRef,
4416}
4417#[derive(Clone, Copy)]
4418pub struct InstSGreaterThan {
4419    pub id_result_type: IdResultType,
4420    pub id_result: IdResult,
4421    pub operand_1: IdRef,
4422    pub operand_2: IdRef,
4423}
4424#[derive(Clone, Copy)]
4425pub struct InstUGreaterThanEqual {
4426    pub id_result_type: IdResultType,
4427    pub id_result: IdResult,
4428    pub operand_1: IdRef,
4429    pub operand_2: IdRef,
4430}
4431#[derive(Clone, Copy)]
4432pub struct InstSGreaterThanEqual {
4433    pub id_result_type: IdResultType,
4434    pub id_result: IdResult,
4435    pub operand_1: IdRef,
4436    pub operand_2: IdRef,
4437}
4438#[derive(Clone, Copy)]
4439pub struct InstULessThan {
4440    pub id_result_type: IdResultType,
4441    pub id_result: IdResult,
4442    pub operand_1: IdRef,
4443    pub operand_2: IdRef,
4444}
4445#[derive(Clone, Copy)]
4446pub struct InstSLessThan {
4447    pub id_result_type: IdResultType,
4448    pub id_result: IdResult,
4449    pub operand_1: IdRef,
4450    pub operand_2: IdRef,
4451}
4452#[derive(Clone, Copy)]
4453pub struct InstULessThanEqual {
4454    pub id_result_type: IdResultType,
4455    pub id_result: IdResult,
4456    pub operand_1: IdRef,
4457    pub operand_2: IdRef,
4458}
4459#[derive(Clone, Copy)]
4460pub struct InstSLessThanEqual {
4461    pub id_result_type: IdResultType,
4462    pub id_result: IdResult,
4463    pub operand_1: IdRef,
4464    pub operand_2: IdRef,
4465}
4466#[derive(Clone, Copy)]
4467pub struct InstFOrdEqual {
4468    pub id_result_type: IdResultType,
4469    pub id_result: IdResult,
4470    pub operand_1: IdRef,
4471    pub operand_2: IdRef,
4472}
4473#[derive(Clone, Copy)]
4474pub struct InstFUnordEqual {
4475    pub id_result_type: IdResultType,
4476    pub id_result: IdResult,
4477    pub operand_1: IdRef,
4478    pub operand_2: IdRef,
4479}
4480#[derive(Clone, Copy)]
4481pub struct InstFOrdNotEqual {
4482    pub id_result_type: IdResultType,
4483    pub id_result: IdResult,
4484    pub operand_1: IdRef,
4485    pub operand_2: IdRef,
4486}
4487#[derive(Clone, Copy)]
4488pub struct InstFUnordNotEqual {
4489    pub id_result_type: IdResultType,
4490    pub id_result: IdResult,
4491    pub operand_1: IdRef,
4492    pub operand_2: IdRef,
4493}
4494#[derive(Clone, Copy)]
4495pub struct InstFOrdLessThan {
4496    pub id_result_type: IdResultType,
4497    pub id_result: IdResult,
4498    pub operand_1: IdRef,
4499    pub operand_2: IdRef,
4500}
4501#[derive(Clone, Copy)]
4502pub struct InstFUnordLessThan {
4503    pub id_result_type: IdResultType,
4504    pub id_result: IdResult,
4505    pub operand_1: IdRef,
4506    pub operand_2: IdRef,
4507}
4508#[derive(Clone, Copy)]
4509pub struct InstFOrdGreaterThan {
4510    pub id_result_type: IdResultType,
4511    pub id_result: IdResult,
4512    pub operand_1: IdRef,
4513    pub operand_2: IdRef,
4514}
4515#[derive(Clone, Copy)]
4516pub struct InstFUnordGreaterThan {
4517    pub id_result_type: IdResultType,
4518    pub id_result: IdResult,
4519    pub operand_1: IdRef,
4520    pub operand_2: IdRef,
4521}
4522#[derive(Clone, Copy)]
4523pub struct InstFOrdLessThanEqual {
4524    pub id_result_type: IdResultType,
4525    pub id_result: IdResult,
4526    pub operand_1: IdRef,
4527    pub operand_2: IdRef,
4528}
4529#[derive(Clone, Copy)]
4530pub struct InstFUnordLessThanEqual {
4531    pub id_result_type: IdResultType,
4532    pub id_result: IdResult,
4533    pub operand_1: IdRef,
4534    pub operand_2: IdRef,
4535}
4536#[derive(Clone, Copy)]
4537pub struct InstFOrdGreaterThanEqual {
4538    pub id_result_type: IdResultType,
4539    pub id_result: IdResult,
4540    pub operand_1: IdRef,
4541    pub operand_2: IdRef,
4542}
4543#[derive(Clone, Copy)]
4544pub struct InstFUnordGreaterThanEqual {
4545    pub id_result_type: IdResultType,
4546    pub id_result: IdResult,
4547    pub operand_1: IdRef,
4548    pub operand_2: IdRef,
4549}
4550#[derive(Clone, Copy)]
4551pub struct InstGroupAsyncCopy {
4552    pub id_result_type: IdResultType,
4553    pub id_result: IdResult,
4554    pub execution: IdScope,
4555    pub destination: IdRef,
4556    pub source: IdRef,
4557    pub num_elements: IdRef,
4558    pub stride: IdRef,
4559    pub event: IdRef,
4560}
4561#[derive(Clone, Copy)]
4562pub struct InstGroupAll {
4563    pub id_result_type: IdResultType,
4564    pub id_result: IdResult,
4565    pub execution: IdScope,
4566    pub predicate: IdRef,
4567}
4568#[derive(Clone, Copy)]
4569pub struct InstGroupAny {
4570    pub id_result_type: IdResultType,
4571    pub id_result: IdResult,
4572    pub execution: IdScope,
4573    pub predicate: IdRef,
4574}
4575#[derive(Clone, Copy)]
4576pub struct InstGroupBroadcast {
4577    pub id_result_type: IdResultType,
4578    pub id_result: IdResult,
4579    pub execution: IdScope,
4580    pub value: IdRef,
4581    pub local_id: IdRef,
4582}
4583#[derive(Clone, Copy)]
4584pub struct InstGroupIAdd {
4585    pub id_result_type: IdResultType,
4586    pub id_result: IdResult,
4587    pub execution: IdScope,
4588    pub operation: GroupOperation,
4589    pub x: IdRef,
4590}
4591#[derive(Clone, Copy)]
4592pub struct InstGroupFAdd {
4593    pub id_result_type: IdResultType,
4594    pub id_result: IdResult,
4595    pub execution: IdScope,
4596    pub operation: GroupOperation,
4597    pub x: IdRef,
4598}
4599#[derive(Clone, Copy)]
4600pub struct InstGroupFMin {
4601    pub id_result_type: IdResultType,
4602    pub id_result: IdResult,
4603    pub execution: IdScope,
4604    pub operation: GroupOperation,
4605    pub x: IdRef,
4606}
4607#[derive(Clone, Copy)]
4608pub struct InstGroupUMin {
4609    pub id_result_type: IdResultType,
4610    pub id_result: IdResult,
4611    pub execution: IdScope,
4612    pub operation: GroupOperation,
4613    pub x: IdRef,
4614}
4615#[derive(Clone, Copy)]
4616pub struct InstGroupSMin {
4617    pub id_result_type: IdResultType,
4618    pub id_result: IdResult,
4619    pub execution: IdScope,
4620    pub operation: GroupOperation,
4621    pub x: IdRef,
4622}
4623#[derive(Clone, Copy)]
4624pub struct InstGroupFMax {
4625    pub id_result_type: IdResultType,
4626    pub id_result: IdResult,
4627    pub execution: IdScope,
4628    pub operation: GroupOperation,
4629    pub x: IdRef,
4630}
4631#[derive(Clone, Copy)]
4632pub struct InstGroupUMax {
4633    pub id_result_type: IdResultType,
4634    pub id_result: IdResult,
4635    pub execution: IdScope,
4636    pub operation: GroupOperation,
4637    pub x: IdRef,
4638}
4639#[derive(Clone, Copy)]
4640pub struct InstGroupSMax {
4641    pub id_result_type: IdResultType,
4642    pub id_result: IdResult,
4643    pub execution: IdScope,
4644    pub operation: GroupOperation,
4645    pub x: IdRef,
4646}
4647#[derive(Clone, Copy)]
4648pub struct InstSubgroupBallotKHR {
4649    pub id_result_type: IdResultType,
4650    pub id_result: IdResult,
4651    pub predicate: IdRef,
4652}
4653#[derive(Clone, Copy)]
4654pub struct InstSubgroupFirstInvocationKHR {
4655    pub id_result_type: IdResultType,
4656    pub id_result: IdResult,
4657    pub value: IdRef,
4658}
4659#[derive(Clone, Copy)]
4660pub struct InstSubgroupAllKHR {
4661    pub id_result_type: IdResultType,
4662    pub id_result: IdResult,
4663    pub predicate: IdRef,
4664}
4665#[derive(Clone, Copy)]
4666pub struct InstSubgroupAnyKHR {
4667    pub id_result_type: IdResultType,
4668    pub id_result: IdResult,
4669    pub predicate: IdRef,
4670}
4671#[derive(Clone, Copy)]
4672pub struct InstSubgroupAllEqualKHR {
4673    pub id_result_type: IdResultType,
4674    pub id_result: IdResult,
4675    pub predicate: IdRef,
4676}
4677#[derive(Clone, Copy)]
4678pub struct InstGroupNonUniformRotateKHR {
4679    pub id_result_type: IdResultType,
4680    pub id_result: IdResult,
4681    pub execution: IdScope,
4682    pub value: IdRef,
4683    pub delta: IdRef,
4684    pub cluster_size: Option<IdRef>,
4685}
4686#[derive(Clone, Copy)]
4687pub struct InstSubgroupReadInvocationKHR {
4688    pub id_result_type: IdResultType,
4689    pub id_result: IdResult,
4690    pub value: IdRef,
4691    pub index: IdRef,
4692}
4693#[derive(Clone, Copy)]
4694pub struct InstUntypedGroupAsyncCopyKHR {
4695    pub id_result_type: IdResultType,
4696    pub id_result: IdResult,
4697    pub execution: IdRef,
4698    pub destination: IdRef,
4699    pub source: IdRef,
4700    pub element_num_bytes: IdRef,
4701    pub num_elements: IdRef,
4702    pub stride: IdRef,
4703    pub event: IdRef,
4704    pub destination_memory_operands: Option<MemoryAccess>,
4705    pub source_memory_operands: Option<MemoryAccess>,
4706}
4707#[derive(Clone, Copy)]
4708pub struct InstGroupIAddNonUniformAMD {
4709    pub id_result_type: IdResultType,
4710    pub id_result: IdResult,
4711    pub execution: IdScope,
4712    pub operation: GroupOperation,
4713    pub x: IdRef,
4714}
4715#[derive(Clone, Copy)]
4716pub struct InstGroupFAddNonUniformAMD {
4717    pub id_result_type: IdResultType,
4718    pub id_result: IdResult,
4719    pub execution: IdScope,
4720    pub operation: GroupOperation,
4721    pub x: IdRef,
4722}
4723#[derive(Clone, Copy)]
4724pub struct InstGroupFMinNonUniformAMD {
4725    pub id_result_type: IdResultType,
4726    pub id_result: IdResult,
4727    pub execution: IdScope,
4728    pub operation: GroupOperation,
4729    pub x: IdRef,
4730}
4731#[derive(Clone, Copy)]
4732pub struct InstGroupUMinNonUniformAMD {
4733    pub id_result_type: IdResultType,
4734    pub id_result: IdResult,
4735    pub execution: IdScope,
4736    pub operation: GroupOperation,
4737    pub x: IdRef,
4738}
4739#[derive(Clone, Copy)]
4740pub struct InstGroupSMinNonUniformAMD {
4741    pub id_result_type: IdResultType,
4742    pub id_result: IdResult,
4743    pub execution: IdScope,
4744    pub operation: GroupOperation,
4745    pub x: IdRef,
4746}
4747#[derive(Clone, Copy)]
4748pub struct InstGroupFMaxNonUniformAMD {
4749    pub id_result_type: IdResultType,
4750    pub id_result: IdResult,
4751    pub execution: IdScope,
4752    pub operation: GroupOperation,
4753    pub x: IdRef,
4754}
4755#[derive(Clone, Copy)]
4756pub struct InstGroupUMaxNonUniformAMD {
4757    pub id_result_type: IdResultType,
4758    pub id_result: IdResult,
4759    pub execution: IdScope,
4760    pub operation: GroupOperation,
4761    pub x: IdRef,
4762}
4763#[derive(Clone, Copy)]
4764pub struct InstGroupSMaxNonUniformAMD {
4765    pub id_result_type: IdResultType,
4766    pub id_result: IdResult,
4767    pub execution: IdScope,
4768    pub operation: GroupOperation,
4769    pub x: IdRef,
4770}
4771#[derive(Clone, Copy)]
4772pub struct InstSubgroupShuffleINTEL {
4773    pub id_result_type: IdResultType,
4774    pub id_result: IdResult,
4775    pub data: IdRef,
4776    pub invocation_id: IdRef,
4777}
4778#[derive(Clone, Copy)]
4779pub struct InstSubgroupShuffleDownINTEL {
4780    pub id_result_type: IdResultType,
4781    pub id_result: IdResult,
4782    pub current: IdRef,
4783    pub next: IdRef,
4784    pub delta: IdRef,
4785}
4786#[derive(Clone, Copy)]
4787pub struct InstSubgroupShuffleUpINTEL {
4788    pub id_result_type: IdResultType,
4789    pub id_result: IdResult,
4790    pub previous: IdRef,
4791    pub current: IdRef,
4792    pub delta: IdRef,
4793}
4794#[derive(Clone, Copy)]
4795pub struct InstSubgroupShuffleXorINTEL {
4796    pub id_result_type: IdResultType,
4797    pub id_result: IdResult,
4798    pub data: IdRef,
4799    pub value: IdRef,
4800}
4801#[derive(Clone, Copy)]
4802pub struct InstSubgroupBlockReadINTEL {
4803    pub id_result_type: IdResultType,
4804    pub id_result: IdResult,
4805    pub ptr: IdRef,
4806}
4807#[derive(Clone, Copy)]
4808pub struct InstSubgroupImageBlockReadINTEL {
4809    pub id_result_type: IdResultType,
4810    pub id_result: IdResult,
4811    pub image: IdRef,
4812    pub coordinate: IdRef,
4813}
4814#[derive(Clone, Copy)]
4815pub struct InstSubgroupImageMediaBlockReadINTEL {
4816    pub id_result_type: IdResultType,
4817    pub id_result: IdResult,
4818    pub image: IdRef,
4819    pub coordinate: IdRef,
4820    pub width: IdRef,
4821    pub height: IdRef,
4822}
4823#[derive(Clone, Copy)]
4824pub struct InstSubgroupMatrixMultiplyAccumulateINTEL {
4825    pub id_result_type: IdResultType,
4826    pub id_result: IdResult,
4827    pub k_dim: IdRef,
4828    pub matrix_a: IdRef,
4829    pub matrix_b: IdRef,
4830    pub matrix_c: IdRef,
4831    pub matrix_multiply_accumulate_operands: Option<MatrixMultiplyAccumulateOperands>,
4832}
4833#[derive(Clone, Copy)]
4834pub struct InstGroupIMulKHR {
4835    pub id_result_type: IdResultType,
4836    pub id_result: IdResult,
4837    pub execution: IdScope,
4838    pub operation: GroupOperation,
4839    pub x: IdRef,
4840}
4841#[derive(Clone, Copy)]
4842pub struct InstGroupFMulKHR {
4843    pub id_result_type: IdResultType,
4844    pub id_result: IdResult,
4845    pub execution: IdScope,
4846    pub operation: GroupOperation,
4847    pub x: IdRef,
4848}
4849#[derive(Clone, Copy)]
4850pub struct InstGroupBitwiseAndKHR {
4851    pub id_result_type: IdResultType,
4852    pub id_result: IdResult,
4853    pub execution: IdScope,
4854    pub operation: GroupOperation,
4855    pub x: IdRef,
4856}
4857#[derive(Clone, Copy)]
4858pub struct InstGroupBitwiseOrKHR {
4859    pub id_result_type: IdResultType,
4860    pub id_result: IdResult,
4861    pub execution: IdScope,
4862    pub operation: GroupOperation,
4863    pub x: IdRef,
4864}
4865#[derive(Clone, Copy)]
4866pub struct InstGroupBitwiseXorKHR {
4867    pub id_result_type: IdResultType,
4868    pub id_result: IdResult,
4869    pub execution: IdScope,
4870    pub operation: GroupOperation,
4871    pub x: IdRef,
4872}
4873#[derive(Clone, Copy)]
4874pub struct InstGroupLogicalAndKHR {
4875    pub id_result_type: IdResultType,
4876    pub id_result: IdResult,
4877    pub execution: IdScope,
4878    pub operation: GroupOperation,
4879    pub x: IdRef,
4880}
4881#[derive(Clone, Copy)]
4882pub struct InstGroupLogicalOrKHR {
4883    pub id_result_type: IdResultType,
4884    pub id_result: IdResult,
4885    pub execution: IdScope,
4886    pub operation: GroupOperation,
4887    pub x: IdRef,
4888}
4889#[derive(Clone, Copy)]
4890pub struct InstGroupLogicalXorKHR {
4891    pub id_result_type: IdResultType,
4892    pub id_result: IdResult,
4893    pub execution: IdScope,
4894    pub operation: GroupOperation,
4895    pub x: IdRef,
4896}
4897#[derive(Clone, Copy)]
4898pub struct InstGroupWaitEvents {
4899    pub execution: IdScope,
4900    pub num_events: IdRef,
4901    pub events_list: IdRef,
4902}
4903#[derive(Clone, Copy)]
4904pub struct InstSubgroupBlockWriteINTEL {
4905    pub ptr: IdRef,
4906    pub data: IdRef,
4907}
4908#[derive(Clone, Copy)]
4909pub struct InstSubgroupImageBlockWriteINTEL {
4910    pub image: IdRef,
4911    pub coordinate: IdRef,
4912    pub data: IdRef,
4913}
4914#[derive(Clone, Copy)]
4915pub struct InstSubgroupImageMediaBlockWriteINTEL {
4916    pub image: IdRef,
4917    pub coordinate: IdRef,
4918    pub width: IdRef,
4919    pub height: IdRef,
4920    pub data: IdRef,
4921}
4922#[derive(Clone, Copy)]
4923pub struct InstSubgroupBlockPrefetchINTEL {
4924    pub ptr: IdRef,
4925    pub num_bytes: IdRef,
4926    pub memory_access: Option<MemoryAccess>,
4927}
4928#[derive(Clone, Copy)]
4929pub struct InstSubgroup2DBlockLoadINTEL {
4930    pub element_size: IdRef,
4931    pub block_width: IdRef,
4932    pub block_height: IdRef,
4933    pub block_count: IdRef,
4934    pub src_base_pointer: IdRef,
4935    pub memory_width: IdRef,
4936    pub memory_height: IdRef,
4937    pub memory_pitch: IdRef,
4938    pub coordinate: IdRef,
4939    pub dst_pointer: IdRef,
4940}
4941#[derive(Clone, Copy)]
4942pub struct InstSubgroup2DBlockLoadTransformINTEL {
4943    pub element_size: IdRef,
4944    pub block_width: IdRef,
4945    pub block_height: IdRef,
4946    pub block_count: IdRef,
4947    pub src_base_pointer: IdRef,
4948    pub memory_width: IdRef,
4949    pub memory_height: IdRef,
4950    pub memory_pitch: IdRef,
4951    pub coordinate: IdRef,
4952    pub dst_pointer: IdRef,
4953}
4954#[derive(Clone, Copy)]
4955pub struct InstSubgroup2DBlockLoadTransposeINTEL {
4956    pub element_size: IdRef,
4957    pub block_width: IdRef,
4958    pub block_height: IdRef,
4959    pub block_count: IdRef,
4960    pub src_base_pointer: IdRef,
4961    pub memory_width: IdRef,
4962    pub memory_height: IdRef,
4963    pub memory_pitch: IdRef,
4964    pub coordinate: IdRef,
4965    pub dst_pointer: IdRef,
4966}
4967#[derive(Clone, Copy)]
4968pub struct InstSubgroup2DBlockPrefetchINTEL {
4969    pub element_size: IdRef,
4970    pub block_width: IdRef,
4971    pub block_height: IdRef,
4972    pub block_count: IdRef,
4973    pub src_base_pointer: IdRef,
4974    pub memory_width: IdRef,
4975    pub memory_height: IdRef,
4976    pub memory_pitch: IdRef,
4977    pub coordinate: IdRef,
4978}
4979#[derive(Clone, Copy)]
4980pub struct InstSubgroup2DBlockStoreINTEL {
4981    pub element_size: IdRef,
4982    pub block_width: IdRef,
4983    pub block_height: IdRef,
4984    pub block_count: IdRef,
4985    pub src_pointer: IdRef,
4986    pub dst_base_pointer: IdRef,
4987    pub memory_width: IdRef,
4988    pub memory_height: IdRef,
4989    pub memory_pitch: IdRef,
4990    pub coordinate: IdRef,
4991}
4992#[derive(Clone, Copy)]
4993pub struct InstReadPipe {
4994    pub id_result_type: IdResultType,
4995    pub id_result: IdResult,
4996    pub pipe: IdRef,
4997    pub pointer: IdRef,
4998    pub packet_size: IdRef,
4999    pub packet_alignment: IdRef,
5000}
5001#[derive(Clone, Copy)]
5002pub struct InstWritePipe {
5003    pub id_result_type: IdResultType,
5004    pub id_result: IdResult,
5005    pub pipe: IdRef,
5006    pub pointer: IdRef,
5007    pub packet_size: IdRef,
5008    pub packet_alignment: IdRef,
5009}
5010#[derive(Clone, Copy)]
5011pub struct InstReservedReadPipe {
5012    pub id_result_type: IdResultType,
5013    pub id_result: IdResult,
5014    pub pipe: IdRef,
5015    pub reserve_id: IdRef,
5016    pub index: IdRef,
5017    pub pointer: IdRef,
5018    pub packet_size: IdRef,
5019    pub packet_alignment: IdRef,
5020}
5021#[derive(Clone, Copy)]
5022pub struct InstReservedWritePipe {
5023    pub id_result_type: IdResultType,
5024    pub id_result: IdResult,
5025    pub pipe: IdRef,
5026    pub reserve_id: IdRef,
5027    pub index: IdRef,
5028    pub pointer: IdRef,
5029    pub packet_size: IdRef,
5030    pub packet_alignment: IdRef,
5031}
5032#[derive(Clone, Copy)]
5033pub struct InstReserveReadPipePackets {
5034    pub id_result_type: IdResultType,
5035    pub id_result: IdResult,
5036    pub pipe: IdRef,
5037    pub num_packets: IdRef,
5038    pub packet_size: IdRef,
5039    pub packet_alignment: IdRef,
5040}
5041#[derive(Clone, Copy)]
5042pub struct InstReserveWritePipePackets {
5043    pub id_result_type: IdResultType,
5044    pub id_result: IdResult,
5045    pub pipe: IdRef,
5046    pub num_packets: IdRef,
5047    pub packet_size: IdRef,
5048    pub packet_alignment: IdRef,
5049}
5050#[derive(Clone, Copy)]
5051pub struct InstIsValidReserveId {
5052    pub id_result_type: IdResultType,
5053    pub id_result: IdResult,
5054    pub reserve_id: IdRef,
5055}
5056#[derive(Clone, Copy)]
5057pub struct InstGetNumPipePackets {
5058    pub id_result_type: IdResultType,
5059    pub id_result: IdResult,
5060    pub pipe: IdRef,
5061    pub packet_size: IdRef,
5062    pub packet_alignment: IdRef,
5063}
5064#[derive(Clone, Copy)]
5065pub struct InstGetMaxPipePackets {
5066    pub id_result_type: IdResultType,
5067    pub id_result: IdResult,
5068    pub pipe: IdRef,
5069    pub packet_size: IdRef,
5070    pub packet_alignment: IdRef,
5071}
5072#[derive(Clone, Copy)]
5073pub struct InstGroupReserveReadPipePackets {
5074    pub id_result_type: IdResultType,
5075    pub id_result: IdResult,
5076    pub execution: IdScope,
5077    pub pipe: IdRef,
5078    pub num_packets: IdRef,
5079    pub packet_size: IdRef,
5080    pub packet_alignment: IdRef,
5081}
5082#[derive(Clone, Copy)]
5083pub struct InstGroupReserveWritePipePackets {
5084    pub id_result_type: IdResultType,
5085    pub id_result: IdResult,
5086    pub execution: IdScope,
5087    pub pipe: IdRef,
5088    pub num_packets: IdRef,
5089    pub packet_size: IdRef,
5090    pub packet_alignment: IdRef,
5091}
5092#[derive(Clone, Copy)]
5093pub struct InstConstantPipeStorage {
5094    pub id_result_type: IdResultType,
5095    pub id_result: IdResult,
5096    pub packet_size: LiteralInteger,
5097    pub packet_alignment: LiteralInteger,
5098    pub capacity: LiteralInteger,
5099}
5100#[derive(Clone, Copy)]
5101pub struct InstCreatePipeFromPipeStorage {
5102    pub id_result_type: IdResultType,
5103    pub id_result: IdResult,
5104    pub pipe_storage: IdRef,
5105}
5106#[derive(Clone, Copy)]
5107pub struct InstCommitReadPipe {
5108    pub pipe: IdRef,
5109    pub reserve_id: IdRef,
5110    pub packet_size: IdRef,
5111    pub packet_alignment: IdRef,
5112}
5113#[derive(Clone, Copy)]
5114pub struct InstCommitWritePipe {
5115    pub pipe: IdRef,
5116    pub reserve_id: IdRef,
5117    pub packet_size: IdRef,
5118    pub packet_alignment: IdRef,
5119}
5120#[derive(Clone, Copy)]
5121pub struct InstGroupCommitReadPipe {
5122    pub execution: IdScope,
5123    pub pipe: IdRef,
5124    pub reserve_id: IdRef,
5125    pub packet_size: IdRef,
5126    pub packet_alignment: IdRef,
5127}
5128#[derive(Clone, Copy)]
5129pub struct InstGroupCommitWritePipe {
5130    pub execution: IdScope,
5131    pub pipe: IdRef,
5132    pub reserve_id: IdRef,
5133    pub packet_size: IdRef,
5134    pub packet_alignment: IdRef,
5135}
5136#[derive(Clone, Copy)]
5137pub struct InstGroupNonUniformElect {
5138    pub id_result_type: IdResultType,
5139    pub id_result: IdResult,
5140    pub execution: IdScope,
5141}
5142#[derive(Clone, Copy)]
5143pub struct InstGroupNonUniformAll {
5144    pub id_result_type: IdResultType,
5145    pub id_result: IdResult,
5146    pub execution: IdScope,
5147    pub predicate: IdRef,
5148}
5149#[derive(Clone, Copy)]
5150pub struct InstGroupNonUniformAny {
5151    pub id_result_type: IdResultType,
5152    pub id_result: IdResult,
5153    pub execution: IdScope,
5154    pub predicate: IdRef,
5155}
5156#[derive(Clone, Copy)]
5157pub struct InstGroupNonUniformAllEqual {
5158    pub id_result_type: IdResultType,
5159    pub id_result: IdResult,
5160    pub execution: IdScope,
5161    pub value: IdRef,
5162}
5163#[derive(Clone, Copy)]
5164pub struct InstGroupNonUniformBroadcast {
5165    pub id_result_type: IdResultType,
5166    pub id_result: IdResult,
5167    pub execution: IdScope,
5168    pub value: IdRef,
5169    pub invocation_id: IdRef,
5170}
5171#[derive(Clone, Copy)]
5172pub struct InstGroupNonUniformBroadcastFirst {
5173    pub id_result_type: IdResultType,
5174    pub id_result: IdResult,
5175    pub execution: IdScope,
5176    pub value: IdRef,
5177}
5178#[derive(Clone, Copy)]
5179pub struct InstGroupNonUniformBallot {
5180    pub id_result_type: IdResultType,
5181    pub id_result: IdResult,
5182    pub execution: IdScope,
5183    pub predicate: IdRef,
5184}
5185#[derive(Clone, Copy)]
5186pub struct InstGroupNonUniformInverseBallot {
5187    pub id_result_type: IdResultType,
5188    pub id_result: IdResult,
5189    pub execution: IdScope,
5190    pub value: IdRef,
5191}
5192#[derive(Clone, Copy)]
5193pub struct InstGroupNonUniformBallotBitExtract {
5194    pub id_result_type: IdResultType,
5195    pub id_result: IdResult,
5196    pub execution: IdScope,
5197    pub value: IdRef,
5198    pub index: IdRef,
5199}
5200#[derive(Clone, Copy)]
5201pub struct InstGroupNonUniformBallotBitCount {
5202    pub id_result_type: IdResultType,
5203    pub id_result: IdResult,
5204    pub execution: IdScope,
5205    pub operation: GroupOperation,
5206    pub value: IdRef,
5207}
5208#[derive(Clone, Copy)]
5209pub struct InstGroupNonUniformBallotFindLSB {
5210    pub id_result_type: IdResultType,
5211    pub id_result: IdResult,
5212    pub execution: IdScope,
5213    pub value: IdRef,
5214}
5215#[derive(Clone, Copy)]
5216pub struct InstGroupNonUniformBallotFindMSB {
5217    pub id_result_type: IdResultType,
5218    pub id_result: IdResult,
5219    pub execution: IdScope,
5220    pub value: IdRef,
5221}
5222#[derive(Clone, Copy)]
5223pub struct InstGroupNonUniformShuffle {
5224    pub id_result_type: IdResultType,
5225    pub id_result: IdResult,
5226    pub execution: IdScope,
5227    pub value: IdRef,
5228    pub invocation_id: IdRef,
5229}
5230#[derive(Clone, Copy)]
5231pub struct InstGroupNonUniformShuffleXor {
5232    pub id_result_type: IdResultType,
5233    pub id_result: IdResult,
5234    pub execution: IdScope,
5235    pub value: IdRef,
5236    pub mask: IdRef,
5237}
5238#[derive(Clone, Copy)]
5239pub struct InstGroupNonUniformShuffleUp {
5240    pub id_result_type: IdResultType,
5241    pub id_result: IdResult,
5242    pub execution: IdScope,
5243    pub value: IdRef,
5244    pub delta: IdRef,
5245}
5246#[derive(Clone, Copy)]
5247pub struct InstGroupNonUniformShuffleDown {
5248    pub id_result_type: IdResultType,
5249    pub id_result: IdResult,
5250    pub execution: IdScope,
5251    pub value: IdRef,
5252    pub delta: IdRef,
5253}
5254#[derive(Clone, Copy)]
5255pub struct InstGroupNonUniformIAdd {
5256    pub id_result_type: IdResultType,
5257    pub id_result: IdResult,
5258    pub execution: IdScope,
5259    pub operation: GroupOperation,
5260    pub value: IdRef,
5261    pub cluster_size: Option<IdRef>,
5262}
5263#[derive(Clone, Copy)]
5264pub struct InstGroupNonUniformFAdd {
5265    pub id_result_type: IdResultType,
5266    pub id_result: IdResult,
5267    pub execution: IdScope,
5268    pub operation: GroupOperation,
5269    pub value: IdRef,
5270    pub cluster_size: Option<IdRef>,
5271}
5272#[derive(Clone, Copy)]
5273pub struct InstGroupNonUniformIMul {
5274    pub id_result_type: IdResultType,
5275    pub id_result: IdResult,
5276    pub execution: IdScope,
5277    pub operation: GroupOperation,
5278    pub value: IdRef,
5279    pub cluster_size: Option<IdRef>,
5280}
5281#[derive(Clone, Copy)]
5282pub struct InstGroupNonUniformFMul {
5283    pub id_result_type: IdResultType,
5284    pub id_result: IdResult,
5285    pub execution: IdScope,
5286    pub operation: GroupOperation,
5287    pub value: IdRef,
5288    pub cluster_size: Option<IdRef>,
5289}
5290#[derive(Clone, Copy)]
5291pub struct InstGroupNonUniformSMin {
5292    pub id_result_type: IdResultType,
5293    pub id_result: IdResult,
5294    pub execution: IdScope,
5295    pub operation: GroupOperation,
5296    pub value: IdRef,
5297    pub cluster_size: Option<IdRef>,
5298}
5299#[derive(Clone, Copy)]
5300pub struct InstGroupNonUniformUMin {
5301    pub id_result_type: IdResultType,
5302    pub id_result: IdResult,
5303    pub execution: IdScope,
5304    pub operation: GroupOperation,
5305    pub value: IdRef,
5306    pub cluster_size: Option<IdRef>,
5307}
5308#[derive(Clone, Copy)]
5309pub struct InstGroupNonUniformFMin {
5310    pub id_result_type: IdResultType,
5311    pub id_result: IdResult,
5312    pub execution: IdScope,
5313    pub operation: GroupOperation,
5314    pub value: IdRef,
5315    pub cluster_size: Option<IdRef>,
5316}
5317#[derive(Clone, Copy)]
5318pub struct InstGroupNonUniformSMax {
5319    pub id_result_type: IdResultType,
5320    pub id_result: IdResult,
5321    pub execution: IdScope,
5322    pub operation: GroupOperation,
5323    pub value: IdRef,
5324    pub cluster_size: Option<IdRef>,
5325}
5326#[derive(Clone, Copy)]
5327pub struct InstGroupNonUniformUMax {
5328    pub id_result_type: IdResultType,
5329    pub id_result: IdResult,
5330    pub execution: IdScope,
5331    pub operation: GroupOperation,
5332    pub value: IdRef,
5333    pub cluster_size: Option<IdRef>,
5334}
5335#[derive(Clone, Copy)]
5336pub struct InstGroupNonUniformFMax {
5337    pub id_result_type: IdResultType,
5338    pub id_result: IdResult,
5339    pub execution: IdScope,
5340    pub operation: GroupOperation,
5341    pub value: IdRef,
5342    pub cluster_size: Option<IdRef>,
5343}
5344#[derive(Clone, Copy)]
5345pub struct InstGroupNonUniformBitwiseAnd {
5346    pub id_result_type: IdResultType,
5347    pub id_result: IdResult,
5348    pub execution: IdScope,
5349    pub operation: GroupOperation,
5350    pub value: IdRef,
5351    pub cluster_size: Option<IdRef>,
5352}
5353#[derive(Clone, Copy)]
5354pub struct InstGroupNonUniformBitwiseOr {
5355    pub id_result_type: IdResultType,
5356    pub id_result: IdResult,
5357    pub execution: IdScope,
5358    pub operation: GroupOperation,
5359    pub value: IdRef,
5360    pub cluster_size: Option<IdRef>,
5361}
5362#[derive(Clone, Copy)]
5363pub struct InstGroupNonUniformBitwiseXor {
5364    pub id_result_type: IdResultType,
5365    pub id_result: IdResult,
5366    pub execution: IdScope,
5367    pub operation: GroupOperation,
5368    pub value: IdRef,
5369    pub cluster_size: Option<IdRef>,
5370}
5371#[derive(Clone, Copy)]
5372pub struct InstGroupNonUniformLogicalAnd {
5373    pub id_result_type: IdResultType,
5374    pub id_result: IdResult,
5375    pub execution: IdScope,
5376    pub operation: GroupOperation,
5377    pub value: IdRef,
5378    pub cluster_size: Option<IdRef>,
5379}
5380#[derive(Clone, Copy)]
5381pub struct InstGroupNonUniformLogicalOr {
5382    pub id_result_type: IdResultType,
5383    pub id_result: IdResult,
5384    pub execution: IdScope,
5385    pub operation: GroupOperation,
5386    pub value: IdRef,
5387    pub cluster_size: Option<IdRef>,
5388}
5389#[derive(Clone, Copy)]
5390pub struct InstGroupNonUniformLogicalXor {
5391    pub id_result_type: IdResultType,
5392    pub id_result: IdResult,
5393    pub execution: IdScope,
5394    pub operation: GroupOperation,
5395    pub value: IdRef,
5396    pub cluster_size: Option<IdRef>,
5397}
5398#[derive(Clone, Copy)]
5399pub struct InstGroupNonUniformQuadBroadcast {
5400    pub id_result_type: IdResultType,
5401    pub id_result: IdResult,
5402    pub execution: IdScope,
5403    pub value: IdRef,
5404    pub index: IdRef,
5405}
5406#[derive(Clone, Copy)]
5407pub struct InstGroupNonUniformQuadSwap {
5408    pub id_result_type: IdResultType,
5409    pub id_result: IdResult,
5410    pub execution: IdScope,
5411    pub value: IdRef,
5412    pub direction: IdRef,
5413}
5414#[derive(Clone, Copy)]
5415pub struct InstGroupNonUniformQuadAllKHR {
5416    pub id_result_type: IdResultType,
5417    pub id_result: IdResult,
5418    pub predicate: IdRef,
5419}
5420#[derive(Clone, Copy)]
5421pub struct InstGroupNonUniformQuadAnyKHR {
5422    pub id_result_type: IdResultType,
5423    pub id_result: IdResult,
5424    pub predicate: IdRef,
5425}
5426#[derive(Clone, Copy)]
5427pub struct InstGroupNonUniformPartitionEXT {
5428    pub id_result_type: IdResultType,
5429    pub id_result: IdResult,
5430    pub value: IdRef,
5431}
5432#[derive(Clone, Copy)]
5433pub struct InstTensorReadARM {
5434    pub id_result_type: IdResultType,
5435    pub id_result: IdResult,
5436    pub tensor: IdRef,
5437    pub coordinates: IdRef,
5438    pub tensor_operands: Option<TensorOperands>,
5439}
5440#[derive(Clone, Copy)]
5441pub struct InstTensorQuerySizeARM {
5442    pub id_result_type: IdResultType,
5443    pub id_result: IdResult,
5444    pub tensor: IdRef,
5445    pub dimension: IdRef,
5446}
5447#[derive(Clone, Copy)]
5448pub struct InstTensorWriteARM {
5449    pub tensor: IdRef,
5450    pub coordinates: IdRef,
5451    pub object: IdRef,
5452    pub tensor_operands: Option<TensorOperands>,
5453}
5454#[derive(Clone, Copy)]
5455pub struct InstGraphConstantARM {
5456    pub id_result_type: IdResultType,
5457    pub id_result: IdResult,
5458    pub graph_constant_id: LiteralInteger,
5459}
5460#[derive(Clone, Copy)]
5461pub struct InstGraphARM {
5462    pub id_result_type: IdResultType,
5463    pub id_result: IdResult,
5464}
5465#[derive(Clone, Copy)]
5466pub struct InstGraphInputARM<'a> {
5467    pub id_result_type: IdResultType,
5468    pub id_result: IdResult,
5469    pub input_index: IdRef,
5470    pub element_index: &'a [IdRef],
5471}
5472#[derive(Clone, Copy)]
5473pub struct InstGraphEntryPointARM<'a> {
5474    pub graph: IdRef,
5475    pub name: LiteralString<'a>,
5476    pub interface: &'a [IdRef],
5477}
5478#[derive(Clone, Copy)]
5479pub struct InstGraphSetOutputARM<'a> {
5480    pub value: IdRef,
5481    pub output_index: IdRef,
5482    pub element_index: &'a [IdRef],
5483}
5484#[derive(Clone, Copy)]
5485pub struct InstGraphEndARM;