master
1//! This file is auto-generated by tools/gen_spirv_spec.zig.
2
3const std = @import("std");
4
5pub const Version = packed struct(Word) {
6 padding: u8 = 0,
7 minor: u8,
8 major: u8,
9 padding0: u8 = 0,
10
11 pub fn toWord(self: @This()) Word {
12 return @bitCast(self);
13 }
14};
15
16pub const Word = u32;
17pub const Id = enum(Word) {
18 none,
19 _,
20
21 pub fn format(self: Id, writer: *std.Io.Writer) std.Io.Writer.Error!void {
22 switch (self) {
23 .none => try writer.writeAll("(none)"),
24 else => try writer.print("%{d}", .{@intFromEnum(self)}),
25 }
26 }
27};
28
29pub const IdRange = struct {
30 base: u32,
31 len: u32,
32
33 pub fn at(range: IdRange, i: usize) Id {
34 std.debug.assert(i < range.len);
35 return @enumFromInt(range.base + i);
36 }
37};
38
39pub const LiteralInteger = Word;
40pub const LiteralFloat = Word;
41pub const LiteralString = []const u8;
42pub const LiteralContextDependentNumber = union(enum) {
43 int32: i32,
44 uint32: u32,
45 int64: i64,
46 uint64: u64,
47 float32: f32,
48 float64: f64,
49};
50pub const LiteralExtInstInteger = struct { inst: Word };
51pub const LiteralSpecConstantOpInteger = struct { opcode: Opcode };
52pub const PairLiteralIntegerIdRef = struct { value: LiteralInteger, label: Id };
53pub const PairIdRefLiteralInteger = struct { target: Id, member: LiteralInteger };
54pub const PairIdRefIdRef = [2]Id;
55
56pub const Quantifier = enum {
57 required,
58 optional,
59 variadic,
60};
61
62pub const Operand = struct {
63 kind: OperandKind,
64 quantifier: Quantifier,
65};
66
67pub const OperandCategory = enum {
68 bit_enum,
69 value_enum,
70 id,
71 literal,
72 composite,
73};
74
75pub const Enumerant = struct {
76 name: []const u8,
77 value: Word,
78 parameters: []const OperandKind,
79};
80
81pub const Instruction = struct {
82 name: []const u8,
83 opcode: Word,
84 operands: []const Operand,
85};
86
87pub const zig_generator_id: Word = 41;
88pub const version: Version = .{ .major = 1, .minor = 6, .patch = 4 };
89pub const magic_number: Word = 0x07230203;
90
91pub const Class = enum {
92 miscellaneous,
93 debug,
94 extension,
95 mode_setting,
96 type_declaration,
97 constant_creation,
98 function,
99 memory,
100 annotation,
101 composite,
102 image,
103 conversion,
104 arithmetic,
105 relational_and_logical,
106 bit,
107 derivative,
108 primitive,
109 barrier,
110 atomic,
111 control_flow,
112 group,
113 pipe,
114 device_side_enqueue,
115 non_uniform,
116 tensor,
117 graph,
118 reserved,
119};
120
121pub const OperandKind = enum {
122 opcode,
123 image_operands,
124 fp_fast_math_mode,
125 selection_control,
126 loop_control,
127 function_control,
128 memory_semantics,
129 memory_access,
130 kernel_profiling_info,
131 ray_flags,
132 fragment_shading_rate,
133 raw_access_chain_operands,
134 source_language,
135 execution_model,
136 addressing_model,
137 memory_model,
138 execution_mode,
139 storage_class,
140 dim,
141 sampler_addressing_mode,
142 sampler_filter_mode,
143 image_format,
144 image_channel_order,
145 image_channel_data_type,
146 fp_rounding_mode,
147 fp_denorm_mode,
148 quantization_modes,
149 fp_operation_mode,
150 overflow_modes,
151 linkage_type,
152 access_qualifier,
153 host_access_qualifier,
154 function_parameter_attribute,
155 decoration,
156 built_in,
157 scope,
158 group_operation,
159 kernel_enqueue_flags,
160 capability,
161 ray_query_intersection,
162 ray_query_committed_intersection_type,
163 ray_query_candidate_intersection_type,
164 packed_vector_format,
165 cooperative_matrix_operands,
166 cooperative_matrix_layout,
167 cooperative_matrix_use,
168 cooperative_matrix_reduce,
169 tensor_clamp_mode,
170 tensor_addressing_operands,
171 initialization_mode_qualifier,
172 load_cache_control,
173 store_cache_control,
174 named_maximum_number_of_registers,
175 matrix_multiply_accumulate_operands,
176 fp_encoding,
177 cooperative_vector_matrix_layout,
178 component_type,
179 id_result_type,
180 id_result,
181 id_memory_semantics,
182 id_scope,
183 id_ref,
184 literal_integer,
185 literal_string,
186 literal_float,
187 literal_context_dependent_number,
188 literal_ext_inst_integer,
189 literal_spec_constant_op_integer,
190 pair_literal_integer_id_ref,
191 pair_id_ref_literal_integer,
192 pair_id_ref_id_ref,
193 tensor_operands,
194
195 pub fn category(self: OperandKind) OperandCategory {
196 return switch (self) {
197 .opcode => .literal,
198 .image_operands => .bit_enum,
199 .fp_fast_math_mode => .bit_enum,
200 .selection_control => .bit_enum,
201 .loop_control => .bit_enum,
202 .function_control => .bit_enum,
203 .memory_semantics => .bit_enum,
204 .memory_access => .bit_enum,
205 .kernel_profiling_info => .bit_enum,
206 .ray_flags => .bit_enum,
207 .fragment_shading_rate => .bit_enum,
208 .raw_access_chain_operands => .bit_enum,
209 .source_language => .value_enum,
210 .execution_model => .value_enum,
211 .addressing_model => .value_enum,
212 .memory_model => .value_enum,
213 .execution_mode => .value_enum,
214 .storage_class => .value_enum,
215 .dim => .value_enum,
216 .sampler_addressing_mode => .value_enum,
217 .sampler_filter_mode => .value_enum,
218 .image_format => .value_enum,
219 .image_channel_order => .value_enum,
220 .image_channel_data_type => .value_enum,
221 .fp_rounding_mode => .value_enum,
222 .fp_denorm_mode => .value_enum,
223 .quantization_modes => .value_enum,
224 .fp_operation_mode => .value_enum,
225 .overflow_modes => .value_enum,
226 .linkage_type => .value_enum,
227 .access_qualifier => .value_enum,
228 .host_access_qualifier => .value_enum,
229 .function_parameter_attribute => .value_enum,
230 .decoration => .value_enum,
231 .built_in => .value_enum,
232 .scope => .value_enum,
233 .group_operation => .value_enum,
234 .kernel_enqueue_flags => .value_enum,
235 .capability => .value_enum,
236 .ray_query_intersection => .value_enum,
237 .ray_query_committed_intersection_type => .value_enum,
238 .ray_query_candidate_intersection_type => .value_enum,
239 .packed_vector_format => .value_enum,
240 .cooperative_matrix_operands => .bit_enum,
241 .cooperative_matrix_layout => .value_enum,
242 .cooperative_matrix_use => .value_enum,
243 .cooperative_matrix_reduce => .bit_enum,
244 .tensor_clamp_mode => .value_enum,
245 .tensor_addressing_operands => .bit_enum,
246 .initialization_mode_qualifier => .value_enum,
247 .load_cache_control => .value_enum,
248 .store_cache_control => .value_enum,
249 .named_maximum_number_of_registers => .value_enum,
250 .matrix_multiply_accumulate_operands => .bit_enum,
251 .fp_encoding => .value_enum,
252 .cooperative_vector_matrix_layout => .value_enum,
253 .component_type => .value_enum,
254 .id_result_type => .id,
255 .id_result => .id,
256 .id_memory_semantics => .id,
257 .id_scope => .id,
258 .id_ref => .id,
259 .literal_integer => .literal,
260 .literal_string => .literal,
261 .literal_float => .literal,
262 .literal_context_dependent_number => .literal,
263 .literal_ext_inst_integer => .literal,
264 .literal_spec_constant_op_integer => .literal,
265 .pair_literal_integer_id_ref => .composite,
266 .pair_id_ref_literal_integer => .composite,
267 .pair_id_ref_id_ref => .composite,
268 .tensor_operands => .bit_enum,
269 };
270 }
271 pub fn enumerants(self: OperandKind) []const Enumerant {
272 return switch (self) {
273 .opcode => unreachable,
274 .image_operands => &.{
275 .{ .name = "Bias", .value = 0x0001, .parameters = &.{.id_ref} },
276 .{ .name = "Lod", .value = 0x0002, .parameters = &.{.id_ref} },
277 .{ .name = "Grad", .value = 0x0004, .parameters = &.{ .id_ref, .id_ref } },
278 .{ .name = "ConstOffset", .value = 0x0008, .parameters = &.{.id_ref} },
279 .{ .name = "Offset", .value = 0x0010, .parameters = &.{.id_ref} },
280 .{ .name = "ConstOffsets", .value = 0x0020, .parameters = &.{.id_ref} },
281 .{ .name = "Sample", .value = 0x0040, .parameters = &.{.id_ref} },
282 .{ .name = "MinLod", .value = 0x0080, .parameters = &.{.id_ref} },
283 .{ .name = "MakeTexelAvailable", .value = 0x0100, .parameters = &.{.id_scope} },
284 .{ .name = "MakeTexelVisible", .value = 0x0200, .parameters = &.{.id_scope} },
285 .{ .name = "NonPrivateTexel", .value = 0x0400, .parameters = &.{} },
286 .{ .name = "VolatileTexel", .value = 0x0800, .parameters = &.{} },
287 .{ .name = "SignExtend", .value = 0x1000, .parameters = &.{} },
288 .{ .name = "ZeroExtend", .value = 0x2000, .parameters = &.{} },
289 .{ .name = "Nontemporal", .value = 0x4000, .parameters = &.{} },
290 .{ .name = "Offsets", .value = 0x10000, .parameters = &.{.id_ref} },
291 },
292 .fp_fast_math_mode => &.{
293 .{ .name = "NotNaN", .value = 0x0001, .parameters = &.{} },
294 .{ .name = "NotInf", .value = 0x0002, .parameters = &.{} },
295 .{ .name = "NSZ", .value = 0x0004, .parameters = &.{} },
296 .{ .name = "AllowRecip", .value = 0x0008, .parameters = &.{} },
297 .{ .name = "Fast", .value = 0x0010, .parameters = &.{} },
298 .{ .name = "AllowContract", .value = 0x10000, .parameters = &.{} },
299 .{ .name = "AllowReassoc", .value = 0x20000, .parameters = &.{} },
300 .{ .name = "AllowTransform", .value = 0x40000, .parameters = &.{} },
301 },
302 .selection_control => &.{
303 .{ .name = "Flatten", .value = 0x0001, .parameters = &.{} },
304 .{ .name = "DontFlatten", .value = 0x0002, .parameters = &.{} },
305 },
306 .loop_control => &.{
307 .{ .name = "Unroll", .value = 0x0001, .parameters = &.{} },
308 .{ .name = "DontUnroll", .value = 0x0002, .parameters = &.{} },
309 .{ .name = "DependencyInfinite", .value = 0x0004, .parameters = &.{} },
310 .{ .name = "DependencyLength", .value = 0x0008, .parameters = &.{.literal_integer} },
311 .{ .name = "MinIterations", .value = 0x0010, .parameters = &.{.literal_integer} },
312 .{ .name = "MaxIterations", .value = 0x0020, .parameters = &.{.literal_integer} },
313 .{ .name = "IterationMultiple", .value = 0x0040, .parameters = &.{.literal_integer} },
314 .{ .name = "PeelCount", .value = 0x0080, .parameters = &.{.literal_integer} },
315 .{ .name = "PartialCount", .value = 0x0100, .parameters = &.{.literal_integer} },
316 .{ .name = "InitiationIntervalINTEL", .value = 0x10000, .parameters = &.{.literal_integer} },
317 .{ .name = "MaxConcurrencyINTEL", .value = 0x20000, .parameters = &.{.literal_integer} },
318 .{ .name = "DependencyArrayINTEL", .value = 0x40000, .parameters = &.{.literal_integer} },
319 .{ .name = "PipelineEnableINTEL", .value = 0x80000, .parameters = &.{.literal_integer} },
320 .{ .name = "LoopCoalesceINTEL", .value = 0x100000, .parameters = &.{.literal_integer} },
321 .{ .name = "MaxInterleavingINTEL", .value = 0x200000, .parameters = &.{.literal_integer} },
322 .{ .name = "SpeculatedIterationsINTEL", .value = 0x400000, .parameters = &.{.literal_integer} },
323 .{ .name = "NoFusionINTEL", .value = 0x800000, .parameters = &.{} },
324 .{ .name = "LoopCountINTEL", .value = 0x1000000, .parameters = &.{.literal_integer} },
325 .{ .name = "MaxReinvocationDelayINTEL", .value = 0x2000000, .parameters = &.{.literal_integer} },
326 },
327 .function_control => &.{
328 .{ .name = "Inline", .value = 0x0001, .parameters = &.{} },
329 .{ .name = "DontInline", .value = 0x0002, .parameters = &.{} },
330 .{ .name = "Pure", .value = 0x0004, .parameters = &.{} },
331 .{ .name = "Const", .value = 0x0008, .parameters = &.{} },
332 .{ .name = "OptNoneEXT", .value = 0x10000, .parameters = &.{} },
333 },
334 .memory_semantics => &.{
335 .{ .name = "Relaxed", .value = 0x0000, .parameters = &.{} },
336 .{ .name = "Acquire", .value = 0x0002, .parameters = &.{} },
337 .{ .name = "Release", .value = 0x0004, .parameters = &.{} },
338 .{ .name = "AcquireRelease", .value = 0x0008, .parameters = &.{} },
339 .{ .name = "SequentiallyConsistent", .value = 0x0010, .parameters = &.{} },
340 .{ .name = "UniformMemory", .value = 0x0040, .parameters = &.{} },
341 .{ .name = "SubgroupMemory", .value = 0x0080, .parameters = &.{} },
342 .{ .name = "WorkgroupMemory", .value = 0x0100, .parameters = &.{} },
343 .{ .name = "CrossWorkgroupMemory", .value = 0x0200, .parameters = &.{} },
344 .{ .name = "AtomicCounterMemory", .value = 0x0400, .parameters = &.{} },
345 .{ .name = "ImageMemory", .value = 0x0800, .parameters = &.{} },
346 .{ .name = "OutputMemory", .value = 0x1000, .parameters = &.{} },
347 .{ .name = "MakeAvailable", .value = 0x2000, .parameters = &.{} },
348 .{ .name = "MakeVisible", .value = 0x4000, .parameters = &.{} },
349 .{ .name = "Volatile", .value = 0x8000, .parameters = &.{} },
350 },
351 .memory_access => &.{
352 .{ .name = "Volatile", .value = 0x0001, .parameters = &.{} },
353 .{ .name = "Aligned", .value = 0x0002, .parameters = &.{.literal_integer} },
354 .{ .name = "Nontemporal", .value = 0x0004, .parameters = &.{} },
355 .{ .name = "MakePointerAvailable", .value = 0x0008, .parameters = &.{.id_scope} },
356 .{ .name = "MakePointerVisible", .value = 0x0010, .parameters = &.{.id_scope} },
357 .{ .name = "NonPrivatePointer", .value = 0x0020, .parameters = &.{} },
358 .{ .name = "AliasScopeINTELMask", .value = 0x10000, .parameters = &.{.id_ref} },
359 .{ .name = "NoAliasINTELMask", .value = 0x20000, .parameters = &.{.id_ref} },
360 },
361 .kernel_profiling_info => &.{
362 .{ .name = "CmdExecTime", .value = 0x0001, .parameters = &.{} },
363 },
364 .ray_flags => &.{
365 .{ .name = "NoneKHR", .value = 0x0000, .parameters = &.{} },
366 .{ .name = "OpaqueKHR", .value = 0x0001, .parameters = &.{} },
367 .{ .name = "NoOpaqueKHR", .value = 0x0002, .parameters = &.{} },
368 .{ .name = "TerminateOnFirstHitKHR", .value = 0x0004, .parameters = &.{} },
369 .{ .name = "SkipClosestHitShaderKHR", .value = 0x0008, .parameters = &.{} },
370 .{ .name = "CullBackFacingTrianglesKHR", .value = 0x0010, .parameters = &.{} },
371 .{ .name = "CullFrontFacingTrianglesKHR", .value = 0x0020, .parameters = &.{} },
372 .{ .name = "CullOpaqueKHR", .value = 0x0040, .parameters = &.{} },
373 .{ .name = "CullNoOpaqueKHR", .value = 0x0080, .parameters = &.{} },
374 .{ .name = "SkipTrianglesKHR", .value = 0x0100, .parameters = &.{} },
375 .{ .name = "SkipAABBsKHR", .value = 0x0200, .parameters = &.{} },
376 .{ .name = "ForceOpacityMicromap2StateEXT", .value = 0x0400, .parameters = &.{} },
377 },
378 .fragment_shading_rate => &.{
379 .{ .name = "Vertical2Pixels", .value = 0x0001, .parameters = &.{} },
380 .{ .name = "Vertical4Pixels", .value = 0x0002, .parameters = &.{} },
381 .{ .name = "Horizontal2Pixels", .value = 0x0004, .parameters = &.{} },
382 .{ .name = "Horizontal4Pixels", .value = 0x0008, .parameters = &.{} },
383 },
384 .raw_access_chain_operands => &.{
385 .{ .name = "RobustnessPerComponentNV", .value = 0x0001, .parameters = &.{} },
386 .{ .name = "RobustnessPerElementNV", .value = 0x0002, .parameters = &.{} },
387 },
388 .source_language => &.{
389 .{ .name = "Unknown", .value = 0, .parameters = &.{} },
390 .{ .name = "ESSL", .value = 1, .parameters = &.{} },
391 .{ .name = "GLSL", .value = 2, .parameters = &.{} },
392 .{ .name = "OpenCL_C", .value = 3, .parameters = &.{} },
393 .{ .name = "OpenCL_CPP", .value = 4, .parameters = &.{} },
394 .{ .name = "HLSL", .value = 5, .parameters = &.{} },
395 .{ .name = "CPP_for_OpenCL", .value = 6, .parameters = &.{} },
396 .{ .name = "SYCL", .value = 7, .parameters = &.{} },
397 .{ .name = "HERO_C", .value = 8, .parameters = &.{} },
398 .{ .name = "NZSL", .value = 9, .parameters = &.{} },
399 .{ .name = "WGSL", .value = 10, .parameters = &.{} },
400 .{ .name = "Slang", .value = 11, .parameters = &.{} },
401 .{ .name = "Zig", .value = 12, .parameters = &.{} },
402 .{ .name = "Rust", .value = 13, .parameters = &.{} },
403 },
404 .execution_model => &.{
405 .{ .name = "Vertex", .value = 0, .parameters = &.{} },
406 .{ .name = "TessellationControl", .value = 1, .parameters = &.{} },
407 .{ .name = "TessellationEvaluation", .value = 2, .parameters = &.{} },
408 .{ .name = "Geometry", .value = 3, .parameters = &.{} },
409 .{ .name = "Fragment", .value = 4, .parameters = &.{} },
410 .{ .name = "GLCompute", .value = 5, .parameters = &.{} },
411 .{ .name = "Kernel", .value = 6, .parameters = &.{} },
412 .{ .name = "TaskNV", .value = 5267, .parameters = &.{} },
413 .{ .name = "MeshNV", .value = 5268, .parameters = &.{} },
414 .{ .name = "RayGenerationKHR", .value = 5313, .parameters = &.{} },
415 .{ .name = "IntersectionKHR", .value = 5314, .parameters = &.{} },
416 .{ .name = "AnyHitKHR", .value = 5315, .parameters = &.{} },
417 .{ .name = "ClosestHitKHR", .value = 5316, .parameters = &.{} },
418 .{ .name = "MissKHR", .value = 5317, .parameters = &.{} },
419 .{ .name = "CallableKHR", .value = 5318, .parameters = &.{} },
420 .{ .name = "TaskEXT", .value = 5364, .parameters = &.{} },
421 .{ .name = "MeshEXT", .value = 5365, .parameters = &.{} },
422 },
423 .addressing_model => &.{
424 .{ .name = "Logical", .value = 0, .parameters = &.{} },
425 .{ .name = "Physical32", .value = 1, .parameters = &.{} },
426 .{ .name = "Physical64", .value = 2, .parameters = &.{} },
427 .{ .name = "PhysicalStorageBuffer64", .value = 5348, .parameters = &.{} },
428 },
429 .memory_model => &.{
430 .{ .name = "Simple", .value = 0, .parameters = &.{} },
431 .{ .name = "GLSL450", .value = 1, .parameters = &.{} },
432 .{ .name = "OpenCL", .value = 2, .parameters = &.{} },
433 .{ .name = "Vulkan", .value = 3, .parameters = &.{} },
434 },
435 .execution_mode => &.{
436 .{ .name = "Invocations", .value = 0, .parameters = &.{.literal_integer} },
437 .{ .name = "SpacingEqual", .value = 1, .parameters = &.{} },
438 .{ .name = "SpacingFractionalEven", .value = 2, .parameters = &.{} },
439 .{ .name = "SpacingFractionalOdd", .value = 3, .parameters = &.{} },
440 .{ .name = "VertexOrderCw", .value = 4, .parameters = &.{} },
441 .{ .name = "VertexOrderCcw", .value = 5, .parameters = &.{} },
442 .{ .name = "PixelCenterInteger", .value = 6, .parameters = &.{} },
443 .{ .name = "OriginUpperLeft", .value = 7, .parameters = &.{} },
444 .{ .name = "OriginLowerLeft", .value = 8, .parameters = &.{} },
445 .{ .name = "EarlyFragmentTests", .value = 9, .parameters = &.{} },
446 .{ .name = "PointMode", .value = 10, .parameters = &.{} },
447 .{ .name = "Xfb", .value = 11, .parameters = &.{} },
448 .{ .name = "DepthReplacing", .value = 12, .parameters = &.{} },
449 .{ .name = "DepthGreater", .value = 14, .parameters = &.{} },
450 .{ .name = "DepthLess", .value = 15, .parameters = &.{} },
451 .{ .name = "DepthUnchanged", .value = 16, .parameters = &.{} },
452 .{ .name = "LocalSize", .value = 17, .parameters = &.{ .literal_integer, .literal_integer, .literal_integer } },
453 .{ .name = "LocalSizeHint", .value = 18, .parameters = &.{ .literal_integer, .literal_integer, .literal_integer } },
454 .{ .name = "InputPoints", .value = 19, .parameters = &.{} },
455 .{ .name = "InputLines", .value = 20, .parameters = &.{} },
456 .{ .name = "InputLinesAdjacency", .value = 21, .parameters = &.{} },
457 .{ .name = "Triangles", .value = 22, .parameters = &.{} },
458 .{ .name = "InputTrianglesAdjacency", .value = 23, .parameters = &.{} },
459 .{ .name = "Quads", .value = 24, .parameters = &.{} },
460 .{ .name = "Isolines", .value = 25, .parameters = &.{} },
461 .{ .name = "OutputVertices", .value = 26, .parameters = &.{.literal_integer} },
462 .{ .name = "OutputPoints", .value = 27, .parameters = &.{} },
463 .{ .name = "OutputLineStrip", .value = 28, .parameters = &.{} },
464 .{ .name = "OutputTriangleStrip", .value = 29, .parameters = &.{} },
465 .{ .name = "VecTypeHint", .value = 30, .parameters = &.{.literal_integer} },
466 .{ .name = "ContractionOff", .value = 31, .parameters = &.{} },
467 .{ .name = "Initializer", .value = 33, .parameters = &.{} },
468 .{ .name = "Finalizer", .value = 34, .parameters = &.{} },
469 .{ .name = "SubgroupSize", .value = 35, .parameters = &.{.literal_integer} },
470 .{ .name = "SubgroupsPerWorkgroup", .value = 36, .parameters = &.{.literal_integer} },
471 .{ .name = "SubgroupsPerWorkgroupId", .value = 37, .parameters = &.{.id_ref} },
472 .{ .name = "LocalSizeId", .value = 38, .parameters = &.{ .id_ref, .id_ref, .id_ref } },
473 .{ .name = "LocalSizeHintId", .value = 39, .parameters = &.{ .id_ref, .id_ref, .id_ref } },
474 .{ .name = "NonCoherentColorAttachmentReadEXT", .value = 4169, .parameters = &.{} },
475 .{ .name = "NonCoherentDepthAttachmentReadEXT", .value = 4170, .parameters = &.{} },
476 .{ .name = "NonCoherentStencilAttachmentReadEXT", .value = 4171, .parameters = &.{} },
477 .{ .name = "SubgroupUniformControlFlowKHR", .value = 4421, .parameters = &.{} },
478 .{ .name = "PostDepthCoverage", .value = 4446, .parameters = &.{} },
479 .{ .name = "DenormPreserve", .value = 4459, .parameters = &.{.literal_integer} },
480 .{ .name = "DenormFlushToZero", .value = 4460, .parameters = &.{.literal_integer} },
481 .{ .name = "SignedZeroInfNanPreserve", .value = 4461, .parameters = &.{.literal_integer} },
482 .{ .name = "RoundingModeRTE", .value = 4462, .parameters = &.{.literal_integer} },
483 .{ .name = "RoundingModeRTZ", .value = 4463, .parameters = &.{.literal_integer} },
484 .{ .name = "NonCoherentTileAttachmentReadQCOM", .value = 4489, .parameters = &.{} },
485 .{ .name = "TileShadingRateQCOM", .value = 4490, .parameters = &.{ .literal_integer, .literal_integer, .literal_integer } },
486 .{ .name = "EarlyAndLateFragmentTestsAMD", .value = 5017, .parameters = &.{} },
487 .{ .name = "StencilRefReplacingEXT", .value = 5027, .parameters = &.{} },
488 .{ .name = "CoalescingAMDX", .value = 5069, .parameters = &.{} },
489 .{ .name = "IsApiEntryAMDX", .value = 5070, .parameters = &.{.id_ref} },
490 .{ .name = "MaxNodeRecursionAMDX", .value = 5071, .parameters = &.{.id_ref} },
491 .{ .name = "StaticNumWorkgroupsAMDX", .value = 5072, .parameters = &.{ .id_ref, .id_ref, .id_ref } },
492 .{ .name = "ShaderIndexAMDX", .value = 5073, .parameters = &.{.id_ref} },
493 .{ .name = "MaxNumWorkgroupsAMDX", .value = 5077, .parameters = &.{ .id_ref, .id_ref, .id_ref } },
494 .{ .name = "StencilRefUnchangedFrontAMD", .value = 5079, .parameters = &.{} },
495 .{ .name = "StencilRefGreaterFrontAMD", .value = 5080, .parameters = &.{} },
496 .{ .name = "StencilRefLessFrontAMD", .value = 5081, .parameters = &.{} },
497 .{ .name = "StencilRefUnchangedBackAMD", .value = 5082, .parameters = &.{} },
498 .{ .name = "StencilRefGreaterBackAMD", .value = 5083, .parameters = &.{} },
499 .{ .name = "StencilRefLessBackAMD", .value = 5084, .parameters = &.{} },
500 .{ .name = "QuadDerivativesKHR", .value = 5088, .parameters = &.{} },
501 .{ .name = "RequireFullQuadsKHR", .value = 5089, .parameters = &.{} },
502 .{ .name = "SharesInputWithAMDX", .value = 5102, .parameters = &.{ .id_ref, .id_ref } },
503 .{ .name = "OutputLinesEXT", .value = 5269, .parameters = &.{} },
504 .{ .name = "OutputPrimitivesEXT", .value = 5270, .parameters = &.{.literal_integer} },
505 .{ .name = "DerivativeGroupQuadsKHR", .value = 5289, .parameters = &.{} },
506 .{ .name = "DerivativeGroupLinearKHR", .value = 5290, .parameters = &.{} },
507 .{ .name = "OutputTrianglesEXT", .value = 5298, .parameters = &.{} },
508 .{ .name = "PixelInterlockOrderedEXT", .value = 5366, .parameters = &.{} },
509 .{ .name = "PixelInterlockUnorderedEXT", .value = 5367, .parameters = &.{} },
510 .{ .name = "SampleInterlockOrderedEXT", .value = 5368, .parameters = &.{} },
511 .{ .name = "SampleInterlockUnorderedEXT", .value = 5369, .parameters = &.{} },
512 .{ .name = "ShadingRateInterlockOrderedEXT", .value = 5370, .parameters = &.{} },
513 .{ .name = "ShadingRateInterlockUnorderedEXT", .value = 5371, .parameters = &.{} },
514 .{ .name = "SharedLocalMemorySizeINTEL", .value = 5618, .parameters = &.{.literal_integer} },
515 .{ .name = "RoundingModeRTPINTEL", .value = 5620, .parameters = &.{.literal_integer} },
516 .{ .name = "RoundingModeRTNINTEL", .value = 5621, .parameters = &.{.literal_integer} },
517 .{ .name = "FloatingPointModeALTINTEL", .value = 5622, .parameters = &.{.literal_integer} },
518 .{ .name = "FloatingPointModeIEEEINTEL", .value = 5623, .parameters = &.{.literal_integer} },
519 .{ .name = "MaxWorkgroupSizeINTEL", .value = 5893, .parameters = &.{ .literal_integer, .literal_integer, .literal_integer } },
520 .{ .name = "MaxWorkDimINTEL", .value = 5894, .parameters = &.{.literal_integer} },
521 .{ .name = "NoGlobalOffsetINTEL", .value = 5895, .parameters = &.{} },
522 .{ .name = "NumSIMDWorkitemsINTEL", .value = 5896, .parameters = &.{.literal_integer} },
523 .{ .name = "SchedulerTargetFmaxMhzINTEL", .value = 5903, .parameters = &.{.literal_integer} },
524 .{ .name = "MaximallyReconvergesKHR", .value = 6023, .parameters = &.{} },
525 .{ .name = "FPFastMathDefault", .value = 6028, .parameters = &.{ .id_ref, .id_ref } },
526 .{ .name = "StreamingInterfaceINTEL", .value = 6154, .parameters = &.{.literal_integer} },
527 .{ .name = "RegisterMapInterfaceINTEL", .value = 6160, .parameters = &.{.literal_integer} },
528 .{ .name = "NamedBarrierCountINTEL", .value = 6417, .parameters = &.{.literal_integer} },
529 .{ .name = "MaximumRegistersINTEL", .value = 6461, .parameters = &.{.literal_integer} },
530 .{ .name = "MaximumRegistersIdINTEL", .value = 6462, .parameters = &.{.id_ref} },
531 .{ .name = "NamedMaximumRegistersINTEL", .value = 6463, .parameters = &.{.named_maximum_number_of_registers} },
532 },
533 .storage_class => &.{
534 .{ .name = "UniformConstant", .value = 0, .parameters = &.{} },
535 .{ .name = "Input", .value = 1, .parameters = &.{} },
536 .{ .name = "Uniform", .value = 2, .parameters = &.{} },
537 .{ .name = "Output", .value = 3, .parameters = &.{} },
538 .{ .name = "Workgroup", .value = 4, .parameters = &.{} },
539 .{ .name = "CrossWorkgroup", .value = 5, .parameters = &.{} },
540 .{ .name = "Private", .value = 6, .parameters = &.{} },
541 .{ .name = "Function", .value = 7, .parameters = &.{} },
542 .{ .name = "Generic", .value = 8, .parameters = &.{} },
543 .{ .name = "PushConstant", .value = 9, .parameters = &.{} },
544 .{ .name = "AtomicCounter", .value = 10, .parameters = &.{} },
545 .{ .name = "Image", .value = 11, .parameters = &.{} },
546 .{ .name = "StorageBuffer", .value = 12, .parameters = &.{} },
547 .{ .name = "TileImageEXT", .value = 4172, .parameters = &.{} },
548 .{ .name = "TileAttachmentQCOM", .value = 4491, .parameters = &.{} },
549 .{ .name = "NodePayloadAMDX", .value = 5068, .parameters = &.{} },
550 .{ .name = "CallableDataKHR", .value = 5328, .parameters = &.{} },
551 .{ .name = "IncomingCallableDataKHR", .value = 5329, .parameters = &.{} },
552 .{ .name = "RayPayloadKHR", .value = 5338, .parameters = &.{} },
553 .{ .name = "HitAttributeKHR", .value = 5339, .parameters = &.{} },
554 .{ .name = "IncomingRayPayloadKHR", .value = 5342, .parameters = &.{} },
555 .{ .name = "ShaderRecordBufferKHR", .value = 5343, .parameters = &.{} },
556 .{ .name = "PhysicalStorageBuffer", .value = 5349, .parameters = &.{} },
557 .{ .name = "HitObjectAttributeNV", .value = 5385, .parameters = &.{} },
558 .{ .name = "TaskPayloadWorkgroupEXT", .value = 5402, .parameters = &.{} },
559 .{ .name = "CodeSectionINTEL", .value = 5605, .parameters = &.{} },
560 .{ .name = "DeviceOnlyINTEL", .value = 5936, .parameters = &.{} },
561 .{ .name = "HostOnlyINTEL", .value = 5937, .parameters = &.{} },
562 },
563 .dim => &.{
564 .{ .name = "1D", .value = 0, .parameters = &.{} },
565 .{ .name = "2D", .value = 1, .parameters = &.{} },
566 .{ .name = "3D", .value = 2, .parameters = &.{} },
567 .{ .name = "Cube", .value = 3, .parameters = &.{} },
568 .{ .name = "Rect", .value = 4, .parameters = &.{} },
569 .{ .name = "Buffer", .value = 5, .parameters = &.{} },
570 .{ .name = "SubpassData", .value = 6, .parameters = &.{} },
571 .{ .name = "TileImageDataEXT", .value = 4173, .parameters = &.{} },
572 },
573 .sampler_addressing_mode => &.{
574 .{ .name = "None", .value = 0, .parameters = &.{} },
575 .{ .name = "ClampToEdge", .value = 1, .parameters = &.{} },
576 .{ .name = "Clamp", .value = 2, .parameters = &.{} },
577 .{ .name = "Repeat", .value = 3, .parameters = &.{} },
578 .{ .name = "RepeatMirrored", .value = 4, .parameters = &.{} },
579 },
580 .sampler_filter_mode => &.{
581 .{ .name = "Nearest", .value = 0, .parameters = &.{} },
582 .{ .name = "Linear", .value = 1, .parameters = &.{} },
583 },
584 .image_format => &.{
585 .{ .name = "Unknown", .value = 0, .parameters = &.{} },
586 .{ .name = "Rgba32f", .value = 1, .parameters = &.{} },
587 .{ .name = "Rgba16f", .value = 2, .parameters = &.{} },
588 .{ .name = "R32f", .value = 3, .parameters = &.{} },
589 .{ .name = "Rgba8", .value = 4, .parameters = &.{} },
590 .{ .name = "Rgba8Snorm", .value = 5, .parameters = &.{} },
591 .{ .name = "Rg32f", .value = 6, .parameters = &.{} },
592 .{ .name = "Rg16f", .value = 7, .parameters = &.{} },
593 .{ .name = "R11fG11fB10f", .value = 8, .parameters = &.{} },
594 .{ .name = "R16f", .value = 9, .parameters = &.{} },
595 .{ .name = "Rgba16", .value = 10, .parameters = &.{} },
596 .{ .name = "Rgb10A2", .value = 11, .parameters = &.{} },
597 .{ .name = "Rg16", .value = 12, .parameters = &.{} },
598 .{ .name = "Rg8", .value = 13, .parameters = &.{} },
599 .{ .name = "R16", .value = 14, .parameters = &.{} },
600 .{ .name = "R8", .value = 15, .parameters = &.{} },
601 .{ .name = "Rgba16Snorm", .value = 16, .parameters = &.{} },
602 .{ .name = "Rg16Snorm", .value = 17, .parameters = &.{} },
603 .{ .name = "Rg8Snorm", .value = 18, .parameters = &.{} },
604 .{ .name = "R16Snorm", .value = 19, .parameters = &.{} },
605 .{ .name = "R8Snorm", .value = 20, .parameters = &.{} },
606 .{ .name = "Rgba32i", .value = 21, .parameters = &.{} },
607 .{ .name = "Rgba16i", .value = 22, .parameters = &.{} },
608 .{ .name = "Rgba8i", .value = 23, .parameters = &.{} },
609 .{ .name = "R32i", .value = 24, .parameters = &.{} },
610 .{ .name = "Rg32i", .value = 25, .parameters = &.{} },
611 .{ .name = "Rg16i", .value = 26, .parameters = &.{} },
612 .{ .name = "Rg8i", .value = 27, .parameters = &.{} },
613 .{ .name = "R16i", .value = 28, .parameters = &.{} },
614 .{ .name = "R8i", .value = 29, .parameters = &.{} },
615 .{ .name = "Rgba32ui", .value = 30, .parameters = &.{} },
616 .{ .name = "Rgba16ui", .value = 31, .parameters = &.{} },
617 .{ .name = "Rgba8ui", .value = 32, .parameters = &.{} },
618 .{ .name = "R32ui", .value = 33, .parameters = &.{} },
619 .{ .name = "Rgb10a2ui", .value = 34, .parameters = &.{} },
620 .{ .name = "Rg32ui", .value = 35, .parameters = &.{} },
621 .{ .name = "Rg16ui", .value = 36, .parameters = &.{} },
622 .{ .name = "Rg8ui", .value = 37, .parameters = &.{} },
623 .{ .name = "R16ui", .value = 38, .parameters = &.{} },
624 .{ .name = "R8ui", .value = 39, .parameters = &.{} },
625 .{ .name = "R64ui", .value = 40, .parameters = &.{} },
626 .{ .name = "R64i", .value = 41, .parameters = &.{} },
627 },
628 .image_channel_order => &.{
629 .{ .name = "R", .value = 0, .parameters = &.{} },
630 .{ .name = "A", .value = 1, .parameters = &.{} },
631 .{ .name = "RG", .value = 2, .parameters = &.{} },
632 .{ .name = "RA", .value = 3, .parameters = &.{} },
633 .{ .name = "RGB", .value = 4, .parameters = &.{} },
634 .{ .name = "RGBA", .value = 5, .parameters = &.{} },
635 .{ .name = "BGRA", .value = 6, .parameters = &.{} },
636 .{ .name = "ARGB", .value = 7, .parameters = &.{} },
637 .{ .name = "Intensity", .value = 8, .parameters = &.{} },
638 .{ .name = "Luminance", .value = 9, .parameters = &.{} },
639 .{ .name = "Rx", .value = 10, .parameters = &.{} },
640 .{ .name = "RGx", .value = 11, .parameters = &.{} },
641 .{ .name = "RGBx", .value = 12, .parameters = &.{} },
642 .{ .name = "Depth", .value = 13, .parameters = &.{} },
643 .{ .name = "DepthStencil", .value = 14, .parameters = &.{} },
644 .{ .name = "sRGB", .value = 15, .parameters = &.{} },
645 .{ .name = "sRGBx", .value = 16, .parameters = &.{} },
646 .{ .name = "sRGBA", .value = 17, .parameters = &.{} },
647 .{ .name = "sBGRA", .value = 18, .parameters = &.{} },
648 .{ .name = "ABGR", .value = 19, .parameters = &.{} },
649 },
650 .image_channel_data_type => &.{
651 .{ .name = "SnormInt8", .value = 0, .parameters = &.{} },
652 .{ .name = "SnormInt16", .value = 1, .parameters = &.{} },
653 .{ .name = "UnormInt8", .value = 2, .parameters = &.{} },
654 .{ .name = "UnormInt16", .value = 3, .parameters = &.{} },
655 .{ .name = "UnormShort565", .value = 4, .parameters = &.{} },
656 .{ .name = "UnormShort555", .value = 5, .parameters = &.{} },
657 .{ .name = "UnormInt101010", .value = 6, .parameters = &.{} },
658 .{ .name = "SignedInt8", .value = 7, .parameters = &.{} },
659 .{ .name = "SignedInt16", .value = 8, .parameters = &.{} },
660 .{ .name = "SignedInt32", .value = 9, .parameters = &.{} },
661 .{ .name = "UnsignedInt8", .value = 10, .parameters = &.{} },
662 .{ .name = "UnsignedInt16", .value = 11, .parameters = &.{} },
663 .{ .name = "UnsignedInt32", .value = 12, .parameters = &.{} },
664 .{ .name = "HalfFloat", .value = 13, .parameters = &.{} },
665 .{ .name = "Float", .value = 14, .parameters = &.{} },
666 .{ .name = "UnormInt24", .value = 15, .parameters = &.{} },
667 .{ .name = "UnormInt101010_2", .value = 16, .parameters = &.{} },
668 .{ .name = "UnormInt10X6EXT", .value = 17, .parameters = &.{} },
669 .{ .name = "UnsignedIntRaw10EXT", .value = 19, .parameters = &.{} },
670 .{ .name = "UnsignedIntRaw12EXT", .value = 20, .parameters = &.{} },
671 .{ .name = "UnormInt2_101010EXT", .value = 21, .parameters = &.{} },
672 .{ .name = "UnsignedInt10X6EXT", .value = 22, .parameters = &.{} },
673 .{ .name = "UnsignedInt12X4EXT", .value = 23, .parameters = &.{} },
674 .{ .name = "UnsignedInt14X2EXT", .value = 24, .parameters = &.{} },
675 .{ .name = "UnormInt12X4EXT", .value = 25, .parameters = &.{} },
676 .{ .name = "UnormInt14X2EXT", .value = 26, .parameters = &.{} },
677 },
678 .fp_rounding_mode => &.{
679 .{ .name = "RTE", .value = 0, .parameters = &.{} },
680 .{ .name = "RTZ", .value = 1, .parameters = &.{} },
681 .{ .name = "RTP", .value = 2, .parameters = &.{} },
682 .{ .name = "RTN", .value = 3, .parameters = &.{} },
683 },
684 .fp_denorm_mode => &.{
685 .{ .name = "Preserve", .value = 0, .parameters = &.{} },
686 .{ .name = "FlushToZero", .value = 1, .parameters = &.{} },
687 },
688 .quantization_modes => &.{
689 .{ .name = "TRN", .value = 0, .parameters = &.{} },
690 .{ .name = "TRN_ZERO", .value = 1, .parameters = &.{} },
691 .{ .name = "RND", .value = 2, .parameters = &.{} },
692 .{ .name = "RND_ZERO", .value = 3, .parameters = &.{} },
693 .{ .name = "RND_INF", .value = 4, .parameters = &.{} },
694 .{ .name = "RND_MIN_INF", .value = 5, .parameters = &.{} },
695 .{ .name = "RND_CONV", .value = 6, .parameters = &.{} },
696 .{ .name = "RND_CONV_ODD", .value = 7, .parameters = &.{} },
697 },
698 .fp_operation_mode => &.{
699 .{ .name = "IEEE", .value = 0, .parameters = &.{} },
700 .{ .name = "ALT", .value = 1, .parameters = &.{} },
701 },
702 .overflow_modes => &.{
703 .{ .name = "WRAP", .value = 0, .parameters = &.{} },
704 .{ .name = "SAT", .value = 1, .parameters = &.{} },
705 .{ .name = "SAT_ZERO", .value = 2, .parameters = &.{} },
706 .{ .name = "SAT_SYM", .value = 3, .parameters = &.{} },
707 },
708 .linkage_type => &.{
709 .{ .name = "Export", .value = 0, .parameters = &.{} },
710 .{ .name = "Import", .value = 1, .parameters = &.{} },
711 .{ .name = "LinkOnceODR", .value = 2, .parameters = &.{} },
712 },
713 .access_qualifier => &.{
714 .{ .name = "ReadOnly", .value = 0, .parameters = &.{} },
715 .{ .name = "WriteOnly", .value = 1, .parameters = &.{} },
716 .{ .name = "ReadWrite", .value = 2, .parameters = &.{} },
717 },
718 .host_access_qualifier => &.{
719 .{ .name = "NoneINTEL", .value = 0, .parameters = &.{} },
720 .{ .name = "ReadINTEL", .value = 1, .parameters = &.{} },
721 .{ .name = "WriteINTEL", .value = 2, .parameters = &.{} },
722 .{ .name = "ReadWriteINTEL", .value = 3, .parameters = &.{} },
723 },
724 .function_parameter_attribute => &.{
725 .{ .name = "Zext", .value = 0, .parameters = &.{} },
726 .{ .name = "Sext", .value = 1, .parameters = &.{} },
727 .{ .name = "ByVal", .value = 2, .parameters = &.{} },
728 .{ .name = "Sret", .value = 3, .parameters = &.{} },
729 .{ .name = "NoAlias", .value = 4, .parameters = &.{} },
730 .{ .name = "NoCapture", .value = 5, .parameters = &.{} },
731 .{ .name = "NoWrite", .value = 6, .parameters = &.{} },
732 .{ .name = "NoReadWrite", .value = 7, .parameters = &.{} },
733 .{ .name = "RuntimeAlignedINTEL", .value = 5940, .parameters = &.{} },
734 },
735 .decoration => &.{
736 .{ .name = "RelaxedPrecision", .value = 0, .parameters = &.{} },
737 .{ .name = "SpecId", .value = 1, .parameters = &.{.literal_integer} },
738 .{ .name = "Block", .value = 2, .parameters = &.{} },
739 .{ .name = "BufferBlock", .value = 3, .parameters = &.{} },
740 .{ .name = "RowMajor", .value = 4, .parameters = &.{} },
741 .{ .name = "ColMajor", .value = 5, .parameters = &.{} },
742 .{ .name = "ArrayStride", .value = 6, .parameters = &.{.literal_integer} },
743 .{ .name = "MatrixStride", .value = 7, .parameters = &.{.literal_integer} },
744 .{ .name = "GLSLShared", .value = 8, .parameters = &.{} },
745 .{ .name = "GLSLPacked", .value = 9, .parameters = &.{} },
746 .{ .name = "CPacked", .value = 10, .parameters = &.{} },
747 .{ .name = "BuiltIn", .value = 11, .parameters = &.{.built_in} },
748 .{ .name = "NoPerspective", .value = 13, .parameters = &.{} },
749 .{ .name = "Flat", .value = 14, .parameters = &.{} },
750 .{ .name = "Patch", .value = 15, .parameters = &.{} },
751 .{ .name = "Centroid", .value = 16, .parameters = &.{} },
752 .{ .name = "Sample", .value = 17, .parameters = &.{} },
753 .{ .name = "Invariant", .value = 18, .parameters = &.{} },
754 .{ .name = "Restrict", .value = 19, .parameters = &.{} },
755 .{ .name = "Aliased", .value = 20, .parameters = &.{} },
756 .{ .name = "Volatile", .value = 21, .parameters = &.{} },
757 .{ .name = "Constant", .value = 22, .parameters = &.{} },
758 .{ .name = "Coherent", .value = 23, .parameters = &.{} },
759 .{ .name = "NonWritable", .value = 24, .parameters = &.{} },
760 .{ .name = "NonReadable", .value = 25, .parameters = &.{} },
761 .{ .name = "Uniform", .value = 26, .parameters = &.{} },
762 .{ .name = "UniformId", .value = 27, .parameters = &.{.id_scope} },
763 .{ .name = "SaturatedConversion", .value = 28, .parameters = &.{} },
764 .{ .name = "Stream", .value = 29, .parameters = &.{.literal_integer} },
765 .{ .name = "Location", .value = 30, .parameters = &.{.literal_integer} },
766 .{ .name = "Component", .value = 31, .parameters = &.{.literal_integer} },
767 .{ .name = "Index", .value = 32, .parameters = &.{.literal_integer} },
768 .{ .name = "Binding", .value = 33, .parameters = &.{.literal_integer} },
769 .{ .name = "DescriptorSet", .value = 34, .parameters = &.{.literal_integer} },
770 .{ .name = "Offset", .value = 35, .parameters = &.{.literal_integer} },
771 .{ .name = "XfbBuffer", .value = 36, .parameters = &.{.literal_integer} },
772 .{ .name = "XfbStride", .value = 37, .parameters = &.{.literal_integer} },
773 .{ .name = "FuncParamAttr", .value = 38, .parameters = &.{.function_parameter_attribute} },
774 .{ .name = "FPRoundingMode", .value = 39, .parameters = &.{.fp_rounding_mode} },
775 .{ .name = "FPFastMathMode", .value = 40, .parameters = &.{.fp_fast_math_mode} },
776 .{ .name = "LinkageAttributes", .value = 41, .parameters = &.{ .literal_string, .linkage_type } },
777 .{ .name = "NoContraction", .value = 42, .parameters = &.{} },
778 .{ .name = "InputAttachmentIndex", .value = 43, .parameters = &.{.literal_integer} },
779 .{ .name = "Alignment", .value = 44, .parameters = &.{.literal_integer} },
780 .{ .name = "MaxByteOffset", .value = 45, .parameters = &.{.literal_integer} },
781 .{ .name = "AlignmentId", .value = 46, .parameters = &.{.id_ref} },
782 .{ .name = "MaxByteOffsetId", .value = 47, .parameters = &.{.id_ref} },
783 .{ .name = "SaturatedToLargestFloat8NormalConversionEXT", .value = 4216, .parameters = &.{} },
784 .{ .name = "NoSignedWrap", .value = 4469, .parameters = &.{} },
785 .{ .name = "NoUnsignedWrap", .value = 4470, .parameters = &.{} },
786 .{ .name = "WeightTextureQCOM", .value = 4487, .parameters = &.{} },
787 .{ .name = "BlockMatchTextureQCOM", .value = 4488, .parameters = &.{} },
788 .{ .name = "BlockMatchSamplerQCOM", .value = 4499, .parameters = &.{} },
789 .{ .name = "ExplicitInterpAMD", .value = 4999, .parameters = &.{} },
790 .{ .name = "NodeSharesPayloadLimitsWithAMDX", .value = 5019, .parameters = &.{.id_ref} },
791 .{ .name = "NodeMaxPayloadsAMDX", .value = 5020, .parameters = &.{.id_ref} },
792 .{ .name = "TrackFinishWritingAMDX", .value = 5078, .parameters = &.{} },
793 .{ .name = "PayloadNodeNameAMDX", .value = 5091, .parameters = &.{.id_ref} },
794 .{ .name = "PayloadNodeBaseIndexAMDX", .value = 5098, .parameters = &.{.id_ref} },
795 .{ .name = "PayloadNodeSparseArrayAMDX", .value = 5099, .parameters = &.{} },
796 .{ .name = "PayloadNodeArraySizeAMDX", .value = 5100, .parameters = &.{.id_ref} },
797 .{ .name = "PayloadDispatchIndirectAMDX", .value = 5105, .parameters = &.{} },
798 .{ .name = "OverrideCoverageNV", .value = 5248, .parameters = &.{} },
799 .{ .name = "PassthroughNV", .value = 5250, .parameters = &.{} },
800 .{ .name = "ViewportRelativeNV", .value = 5252, .parameters = &.{} },
801 .{ .name = "SecondaryViewportRelativeNV", .value = 5256, .parameters = &.{.literal_integer} },
802 .{ .name = "PerPrimitiveEXT", .value = 5271, .parameters = &.{} },
803 .{ .name = "PerViewNV", .value = 5272, .parameters = &.{} },
804 .{ .name = "PerTaskNV", .value = 5273, .parameters = &.{} },
805 .{ .name = "PerVertexKHR", .value = 5285, .parameters = &.{} },
806 .{ .name = "NonUniform", .value = 5300, .parameters = &.{} },
807 .{ .name = "RestrictPointer", .value = 5355, .parameters = &.{} },
808 .{ .name = "AliasedPointer", .value = 5356, .parameters = &.{} },
809 .{ .name = "HitObjectShaderRecordBufferNV", .value = 5386, .parameters = &.{} },
810 .{ .name = "BindlessSamplerNV", .value = 5398, .parameters = &.{} },
811 .{ .name = "BindlessImageNV", .value = 5399, .parameters = &.{} },
812 .{ .name = "BoundSamplerNV", .value = 5400, .parameters = &.{} },
813 .{ .name = "BoundImageNV", .value = 5401, .parameters = &.{} },
814 .{ .name = "SIMTCallINTEL", .value = 5599, .parameters = &.{.literal_integer} },
815 .{ .name = "ReferencedIndirectlyINTEL", .value = 5602, .parameters = &.{} },
816 .{ .name = "ClobberINTEL", .value = 5607, .parameters = &.{.literal_string} },
817 .{ .name = "SideEffectsINTEL", .value = 5608, .parameters = &.{} },
818 .{ .name = "VectorComputeVariableINTEL", .value = 5624, .parameters = &.{} },
819 .{ .name = "FuncParamIOKindINTEL", .value = 5625, .parameters = &.{.literal_integer} },
820 .{ .name = "VectorComputeFunctionINTEL", .value = 5626, .parameters = &.{} },
821 .{ .name = "StackCallINTEL", .value = 5627, .parameters = &.{} },
822 .{ .name = "GlobalVariableOffsetINTEL", .value = 5628, .parameters = &.{.literal_integer} },
823 .{ .name = "CounterBuffer", .value = 5634, .parameters = &.{.id_ref} },
824 .{ .name = "UserSemantic", .value = 5635, .parameters = &.{.literal_string} },
825 .{ .name = "UserTypeGOOGLE", .value = 5636, .parameters = &.{.literal_string} },
826 .{ .name = "FunctionRoundingModeINTEL", .value = 5822, .parameters = &.{ .literal_integer, .fp_rounding_mode } },
827 .{ .name = "FunctionDenormModeINTEL", .value = 5823, .parameters = &.{ .literal_integer, .fp_denorm_mode } },
828 .{ .name = "RegisterINTEL", .value = 5825, .parameters = &.{} },
829 .{ .name = "MemoryINTEL", .value = 5826, .parameters = &.{.literal_string} },
830 .{ .name = "NumbanksINTEL", .value = 5827, .parameters = &.{.literal_integer} },
831 .{ .name = "BankwidthINTEL", .value = 5828, .parameters = &.{.literal_integer} },
832 .{ .name = "MaxPrivateCopiesINTEL", .value = 5829, .parameters = &.{.literal_integer} },
833 .{ .name = "SinglepumpINTEL", .value = 5830, .parameters = &.{} },
834 .{ .name = "DoublepumpINTEL", .value = 5831, .parameters = &.{} },
835 .{ .name = "MaxReplicatesINTEL", .value = 5832, .parameters = &.{.literal_integer} },
836 .{ .name = "SimpleDualPortINTEL", .value = 5833, .parameters = &.{} },
837 .{ .name = "MergeINTEL", .value = 5834, .parameters = &.{ .literal_string, .literal_string } },
838 .{ .name = "BankBitsINTEL", .value = 5835, .parameters = &.{.literal_integer} },
839 .{ .name = "ForcePow2DepthINTEL", .value = 5836, .parameters = &.{.literal_integer} },
840 .{ .name = "StridesizeINTEL", .value = 5883, .parameters = &.{.literal_integer} },
841 .{ .name = "WordsizeINTEL", .value = 5884, .parameters = &.{.literal_integer} },
842 .{ .name = "TrueDualPortINTEL", .value = 5885, .parameters = &.{} },
843 .{ .name = "BurstCoalesceINTEL", .value = 5899, .parameters = &.{} },
844 .{ .name = "CacheSizeINTEL", .value = 5900, .parameters = &.{.literal_integer} },
845 .{ .name = "DontStaticallyCoalesceINTEL", .value = 5901, .parameters = &.{} },
846 .{ .name = "PrefetchINTEL", .value = 5902, .parameters = &.{.literal_integer} },
847 .{ .name = "StallEnableINTEL", .value = 5905, .parameters = &.{} },
848 .{ .name = "FuseLoopsInFunctionINTEL", .value = 5907, .parameters = &.{} },
849 .{ .name = "MathOpDSPModeINTEL", .value = 5909, .parameters = &.{ .literal_integer, .literal_integer } },
850 .{ .name = "AliasScopeINTEL", .value = 5914, .parameters = &.{.id_ref} },
851 .{ .name = "NoAliasINTEL", .value = 5915, .parameters = &.{.id_ref} },
852 .{ .name = "InitiationIntervalINTEL", .value = 5917, .parameters = &.{.literal_integer} },
853 .{ .name = "MaxConcurrencyINTEL", .value = 5918, .parameters = &.{.literal_integer} },
854 .{ .name = "PipelineEnableINTEL", .value = 5919, .parameters = &.{.literal_integer} },
855 .{ .name = "BufferLocationINTEL", .value = 5921, .parameters = &.{.literal_integer} },
856 .{ .name = "IOPipeStorageINTEL", .value = 5944, .parameters = &.{.literal_integer} },
857 .{ .name = "FunctionFloatingPointModeINTEL", .value = 6080, .parameters = &.{ .literal_integer, .fp_operation_mode } },
858 .{ .name = "SingleElementVectorINTEL", .value = 6085, .parameters = &.{} },
859 .{ .name = "VectorComputeCallableFunctionINTEL", .value = 6087, .parameters = &.{} },
860 .{ .name = "MediaBlockIOINTEL", .value = 6140, .parameters = &.{} },
861 .{ .name = "StallFreeINTEL", .value = 6151, .parameters = &.{} },
862 .{ .name = "FPMaxErrorDecorationINTEL", .value = 6170, .parameters = &.{.literal_float} },
863 .{ .name = "LatencyControlLabelINTEL", .value = 6172, .parameters = &.{.literal_integer} },
864 .{ .name = "LatencyControlConstraintINTEL", .value = 6173, .parameters = &.{ .literal_integer, .literal_integer, .literal_integer } },
865 .{ .name = "ConduitKernelArgumentINTEL", .value = 6175, .parameters = &.{} },
866 .{ .name = "RegisterMapKernelArgumentINTEL", .value = 6176, .parameters = &.{} },
867 .{ .name = "MMHostInterfaceAddressWidthINTEL", .value = 6177, .parameters = &.{.literal_integer} },
868 .{ .name = "MMHostInterfaceDataWidthINTEL", .value = 6178, .parameters = &.{.literal_integer} },
869 .{ .name = "MMHostInterfaceLatencyINTEL", .value = 6179, .parameters = &.{.literal_integer} },
870 .{ .name = "MMHostInterfaceReadWriteModeINTEL", .value = 6180, .parameters = &.{.access_qualifier} },
871 .{ .name = "MMHostInterfaceMaxBurstINTEL", .value = 6181, .parameters = &.{.literal_integer} },
872 .{ .name = "MMHostInterfaceWaitRequestINTEL", .value = 6182, .parameters = &.{.literal_integer} },
873 .{ .name = "StableKernelArgumentINTEL", .value = 6183, .parameters = &.{} },
874 .{ .name = "HostAccessINTEL", .value = 6188, .parameters = &.{ .host_access_qualifier, .literal_string } },
875 .{ .name = "InitModeINTEL", .value = 6190, .parameters = &.{.initialization_mode_qualifier} },
876 .{ .name = "ImplementInRegisterMapINTEL", .value = 6191, .parameters = &.{.literal_integer} },
877 .{ .name = "CacheControlLoadINTEL", .value = 6442, .parameters = &.{ .literal_integer, .load_cache_control } },
878 .{ .name = "CacheControlStoreINTEL", .value = 6443, .parameters = &.{ .literal_integer, .store_cache_control } },
879 },
880 .built_in => &.{
881 .{ .name = "Position", .value = 0, .parameters = &.{} },
882 .{ .name = "PointSize", .value = 1, .parameters = &.{} },
883 .{ .name = "ClipDistance", .value = 3, .parameters = &.{} },
884 .{ .name = "CullDistance", .value = 4, .parameters = &.{} },
885 .{ .name = "VertexId", .value = 5, .parameters = &.{} },
886 .{ .name = "InstanceId", .value = 6, .parameters = &.{} },
887 .{ .name = "PrimitiveId", .value = 7, .parameters = &.{} },
888 .{ .name = "InvocationId", .value = 8, .parameters = &.{} },
889 .{ .name = "Layer", .value = 9, .parameters = &.{} },
890 .{ .name = "ViewportIndex", .value = 10, .parameters = &.{} },
891 .{ .name = "TessLevelOuter", .value = 11, .parameters = &.{} },
892 .{ .name = "TessLevelInner", .value = 12, .parameters = &.{} },
893 .{ .name = "TessCoord", .value = 13, .parameters = &.{} },
894 .{ .name = "PatchVertices", .value = 14, .parameters = &.{} },
895 .{ .name = "FragCoord", .value = 15, .parameters = &.{} },
896 .{ .name = "PointCoord", .value = 16, .parameters = &.{} },
897 .{ .name = "FrontFacing", .value = 17, .parameters = &.{} },
898 .{ .name = "SampleId", .value = 18, .parameters = &.{} },
899 .{ .name = "SamplePosition", .value = 19, .parameters = &.{} },
900 .{ .name = "SampleMask", .value = 20, .parameters = &.{} },
901 .{ .name = "FragDepth", .value = 22, .parameters = &.{} },
902 .{ .name = "HelperInvocation", .value = 23, .parameters = &.{} },
903 .{ .name = "NumWorkgroups", .value = 24, .parameters = &.{} },
904 .{ .name = "WorkgroupSize", .value = 25, .parameters = &.{} },
905 .{ .name = "WorkgroupId", .value = 26, .parameters = &.{} },
906 .{ .name = "LocalInvocationId", .value = 27, .parameters = &.{} },
907 .{ .name = "GlobalInvocationId", .value = 28, .parameters = &.{} },
908 .{ .name = "LocalInvocationIndex", .value = 29, .parameters = &.{} },
909 .{ .name = "WorkDim", .value = 30, .parameters = &.{} },
910 .{ .name = "GlobalSize", .value = 31, .parameters = &.{} },
911 .{ .name = "EnqueuedWorkgroupSize", .value = 32, .parameters = &.{} },
912 .{ .name = "GlobalOffset", .value = 33, .parameters = &.{} },
913 .{ .name = "GlobalLinearId", .value = 34, .parameters = &.{} },
914 .{ .name = "SubgroupSize", .value = 36, .parameters = &.{} },
915 .{ .name = "SubgroupMaxSize", .value = 37, .parameters = &.{} },
916 .{ .name = "NumSubgroups", .value = 38, .parameters = &.{} },
917 .{ .name = "NumEnqueuedSubgroups", .value = 39, .parameters = &.{} },
918 .{ .name = "SubgroupId", .value = 40, .parameters = &.{} },
919 .{ .name = "SubgroupLocalInvocationId", .value = 41, .parameters = &.{} },
920 .{ .name = "VertexIndex", .value = 42, .parameters = &.{} },
921 .{ .name = "InstanceIndex", .value = 43, .parameters = &.{} },
922 .{ .name = "CoreIDARM", .value = 4160, .parameters = &.{} },
923 .{ .name = "CoreCountARM", .value = 4161, .parameters = &.{} },
924 .{ .name = "CoreMaxIDARM", .value = 4162, .parameters = &.{} },
925 .{ .name = "WarpIDARM", .value = 4163, .parameters = &.{} },
926 .{ .name = "WarpMaxIDARM", .value = 4164, .parameters = &.{} },
927 .{ .name = "SubgroupEqMask", .value = 4416, .parameters = &.{} },
928 .{ .name = "SubgroupGeMask", .value = 4417, .parameters = &.{} },
929 .{ .name = "SubgroupGtMask", .value = 4418, .parameters = &.{} },
930 .{ .name = "SubgroupLeMask", .value = 4419, .parameters = &.{} },
931 .{ .name = "SubgroupLtMask", .value = 4420, .parameters = &.{} },
932 .{ .name = "BaseVertex", .value = 4424, .parameters = &.{} },
933 .{ .name = "BaseInstance", .value = 4425, .parameters = &.{} },
934 .{ .name = "DrawIndex", .value = 4426, .parameters = &.{} },
935 .{ .name = "PrimitiveShadingRateKHR", .value = 4432, .parameters = &.{} },
936 .{ .name = "DeviceIndex", .value = 4438, .parameters = &.{} },
937 .{ .name = "ViewIndex", .value = 4440, .parameters = &.{} },
938 .{ .name = "ShadingRateKHR", .value = 4444, .parameters = &.{} },
939 .{ .name = "TileOffsetQCOM", .value = 4492, .parameters = &.{} },
940 .{ .name = "TileDimensionQCOM", .value = 4493, .parameters = &.{} },
941 .{ .name = "TileApronSizeQCOM", .value = 4494, .parameters = &.{} },
942 .{ .name = "BaryCoordNoPerspAMD", .value = 4992, .parameters = &.{} },
943 .{ .name = "BaryCoordNoPerspCentroidAMD", .value = 4993, .parameters = &.{} },
944 .{ .name = "BaryCoordNoPerspSampleAMD", .value = 4994, .parameters = &.{} },
945 .{ .name = "BaryCoordSmoothAMD", .value = 4995, .parameters = &.{} },
946 .{ .name = "BaryCoordSmoothCentroidAMD", .value = 4996, .parameters = &.{} },
947 .{ .name = "BaryCoordSmoothSampleAMD", .value = 4997, .parameters = &.{} },
948 .{ .name = "BaryCoordPullModelAMD", .value = 4998, .parameters = &.{} },
949 .{ .name = "FragStencilRefEXT", .value = 5014, .parameters = &.{} },
950 .{ .name = "RemainingRecursionLevelsAMDX", .value = 5021, .parameters = &.{} },
951 .{ .name = "ShaderIndexAMDX", .value = 5073, .parameters = &.{} },
952 .{ .name = "ViewportMaskNV", .value = 5253, .parameters = &.{} },
953 .{ .name = "SecondaryPositionNV", .value = 5257, .parameters = &.{} },
954 .{ .name = "SecondaryViewportMaskNV", .value = 5258, .parameters = &.{} },
955 .{ .name = "PositionPerViewNV", .value = 5261, .parameters = &.{} },
956 .{ .name = "ViewportMaskPerViewNV", .value = 5262, .parameters = &.{} },
957 .{ .name = "FullyCoveredEXT", .value = 5264, .parameters = &.{} },
958 .{ .name = "TaskCountNV", .value = 5274, .parameters = &.{} },
959 .{ .name = "PrimitiveCountNV", .value = 5275, .parameters = &.{} },
960 .{ .name = "PrimitiveIndicesNV", .value = 5276, .parameters = &.{} },
961 .{ .name = "ClipDistancePerViewNV", .value = 5277, .parameters = &.{} },
962 .{ .name = "CullDistancePerViewNV", .value = 5278, .parameters = &.{} },
963 .{ .name = "LayerPerViewNV", .value = 5279, .parameters = &.{} },
964 .{ .name = "MeshViewCountNV", .value = 5280, .parameters = &.{} },
965 .{ .name = "MeshViewIndicesNV", .value = 5281, .parameters = &.{} },
966 .{ .name = "BaryCoordKHR", .value = 5286, .parameters = &.{} },
967 .{ .name = "BaryCoordNoPerspKHR", .value = 5287, .parameters = &.{} },
968 .{ .name = "FragSizeEXT", .value = 5292, .parameters = &.{} },
969 .{ .name = "FragInvocationCountEXT", .value = 5293, .parameters = &.{} },
970 .{ .name = "PrimitivePointIndicesEXT", .value = 5294, .parameters = &.{} },
971 .{ .name = "PrimitiveLineIndicesEXT", .value = 5295, .parameters = &.{} },
972 .{ .name = "PrimitiveTriangleIndicesEXT", .value = 5296, .parameters = &.{} },
973 .{ .name = "CullPrimitiveEXT", .value = 5299, .parameters = &.{} },
974 .{ .name = "LaunchIdKHR", .value = 5319, .parameters = &.{} },
975 .{ .name = "LaunchSizeKHR", .value = 5320, .parameters = &.{} },
976 .{ .name = "WorldRayOriginKHR", .value = 5321, .parameters = &.{} },
977 .{ .name = "WorldRayDirectionKHR", .value = 5322, .parameters = &.{} },
978 .{ .name = "ObjectRayOriginKHR", .value = 5323, .parameters = &.{} },
979 .{ .name = "ObjectRayDirectionKHR", .value = 5324, .parameters = &.{} },
980 .{ .name = "RayTminKHR", .value = 5325, .parameters = &.{} },
981 .{ .name = "RayTmaxKHR", .value = 5326, .parameters = &.{} },
982 .{ .name = "InstanceCustomIndexKHR", .value = 5327, .parameters = &.{} },
983 .{ .name = "ObjectToWorldKHR", .value = 5330, .parameters = &.{} },
984 .{ .name = "WorldToObjectKHR", .value = 5331, .parameters = &.{} },
985 .{ .name = "HitTNV", .value = 5332, .parameters = &.{} },
986 .{ .name = "HitKindKHR", .value = 5333, .parameters = &.{} },
987 .{ .name = "CurrentRayTimeNV", .value = 5334, .parameters = &.{} },
988 .{ .name = "HitTriangleVertexPositionsKHR", .value = 5335, .parameters = &.{} },
989 .{ .name = "HitMicroTriangleVertexPositionsNV", .value = 5337, .parameters = &.{} },
990 .{ .name = "HitMicroTriangleVertexBarycentricsNV", .value = 5344, .parameters = &.{} },
991 .{ .name = "IncomingRayFlagsKHR", .value = 5351, .parameters = &.{} },
992 .{ .name = "RayGeometryIndexKHR", .value = 5352, .parameters = &.{} },
993 .{ .name = "HitIsSphereNV", .value = 5359, .parameters = &.{} },
994 .{ .name = "HitIsLSSNV", .value = 5360, .parameters = &.{} },
995 .{ .name = "HitSpherePositionNV", .value = 5361, .parameters = &.{} },
996 .{ .name = "WarpsPerSMNV", .value = 5374, .parameters = &.{} },
997 .{ .name = "SMCountNV", .value = 5375, .parameters = &.{} },
998 .{ .name = "WarpIDNV", .value = 5376, .parameters = &.{} },
999 .{ .name = "SMIDNV", .value = 5377, .parameters = &.{} },
1000 .{ .name = "HitLSSPositionsNV", .value = 5396, .parameters = &.{} },
1001 .{ .name = "HitKindFrontFacingMicroTriangleNV", .value = 5405, .parameters = &.{} },
1002 .{ .name = "HitKindBackFacingMicroTriangleNV", .value = 5406, .parameters = &.{} },
1003 .{ .name = "HitSphereRadiusNV", .value = 5420, .parameters = &.{} },
1004 .{ .name = "HitLSSRadiiNV", .value = 5421, .parameters = &.{} },
1005 .{ .name = "ClusterIDNV", .value = 5436, .parameters = &.{} },
1006 .{ .name = "CullMaskKHR", .value = 6021, .parameters = &.{} },
1007 },
1008 .scope => &.{
1009 .{ .name = "CrossDevice", .value = 0, .parameters = &.{} },
1010 .{ .name = "Device", .value = 1, .parameters = &.{} },
1011 .{ .name = "Workgroup", .value = 2, .parameters = &.{} },
1012 .{ .name = "Subgroup", .value = 3, .parameters = &.{} },
1013 .{ .name = "Invocation", .value = 4, .parameters = &.{} },
1014 .{ .name = "QueueFamily", .value = 5, .parameters = &.{} },
1015 .{ .name = "ShaderCallKHR", .value = 6, .parameters = &.{} },
1016 },
1017 .group_operation => &.{
1018 .{ .name = "Reduce", .value = 0, .parameters = &.{} },
1019 .{ .name = "InclusiveScan", .value = 1, .parameters = &.{} },
1020 .{ .name = "ExclusiveScan", .value = 2, .parameters = &.{} },
1021 .{ .name = "ClusteredReduce", .value = 3, .parameters = &.{} },
1022 .{ .name = "PartitionedReduceNV", .value = 6, .parameters = &.{} },
1023 .{ .name = "PartitionedInclusiveScanNV", .value = 7, .parameters = &.{} },
1024 .{ .name = "PartitionedExclusiveScanNV", .value = 8, .parameters = &.{} },
1025 },
1026 .kernel_enqueue_flags => &.{
1027 .{ .name = "NoWait", .value = 0, .parameters = &.{} },
1028 .{ .name = "WaitKernel", .value = 1, .parameters = &.{} },
1029 .{ .name = "WaitWorkGroup", .value = 2, .parameters = &.{} },
1030 },
1031 .capability => &.{
1032 .{ .name = "Matrix", .value = 0, .parameters = &.{} },
1033 .{ .name = "Shader", .value = 1, .parameters = &.{} },
1034 .{ .name = "Geometry", .value = 2, .parameters = &.{} },
1035 .{ .name = "Tessellation", .value = 3, .parameters = &.{} },
1036 .{ .name = "Addresses", .value = 4, .parameters = &.{} },
1037 .{ .name = "Linkage", .value = 5, .parameters = &.{} },
1038 .{ .name = "Kernel", .value = 6, .parameters = &.{} },
1039 .{ .name = "Vector16", .value = 7, .parameters = &.{} },
1040 .{ .name = "Float16Buffer", .value = 8, .parameters = &.{} },
1041 .{ .name = "Float16", .value = 9, .parameters = &.{} },
1042 .{ .name = "Float64", .value = 10, .parameters = &.{} },
1043 .{ .name = "Int64", .value = 11, .parameters = &.{} },
1044 .{ .name = "Int64Atomics", .value = 12, .parameters = &.{} },
1045 .{ .name = "ImageBasic", .value = 13, .parameters = &.{} },
1046 .{ .name = "ImageReadWrite", .value = 14, .parameters = &.{} },
1047 .{ .name = "ImageMipmap", .value = 15, .parameters = &.{} },
1048 .{ .name = "Pipes", .value = 17, .parameters = &.{} },
1049 .{ .name = "Groups", .value = 18, .parameters = &.{} },
1050 .{ .name = "DeviceEnqueue", .value = 19, .parameters = &.{} },
1051 .{ .name = "LiteralSampler", .value = 20, .parameters = &.{} },
1052 .{ .name = "AtomicStorage", .value = 21, .parameters = &.{} },
1053 .{ .name = "Int16", .value = 22, .parameters = &.{} },
1054 .{ .name = "TessellationPointSize", .value = 23, .parameters = &.{} },
1055 .{ .name = "GeometryPointSize", .value = 24, .parameters = &.{} },
1056 .{ .name = "ImageGatherExtended", .value = 25, .parameters = &.{} },
1057 .{ .name = "StorageImageMultisample", .value = 27, .parameters = &.{} },
1058 .{ .name = "UniformBufferArrayDynamicIndexing", .value = 28, .parameters = &.{} },
1059 .{ .name = "SampledImageArrayDynamicIndexing", .value = 29, .parameters = &.{} },
1060 .{ .name = "StorageBufferArrayDynamicIndexing", .value = 30, .parameters = &.{} },
1061 .{ .name = "StorageImageArrayDynamicIndexing", .value = 31, .parameters = &.{} },
1062 .{ .name = "ClipDistance", .value = 32, .parameters = &.{} },
1063 .{ .name = "CullDistance", .value = 33, .parameters = &.{} },
1064 .{ .name = "ImageCubeArray", .value = 34, .parameters = &.{} },
1065 .{ .name = "SampleRateShading", .value = 35, .parameters = &.{} },
1066 .{ .name = "ImageRect", .value = 36, .parameters = &.{} },
1067 .{ .name = "SampledRect", .value = 37, .parameters = &.{} },
1068 .{ .name = "GenericPointer", .value = 38, .parameters = &.{} },
1069 .{ .name = "Int8", .value = 39, .parameters = &.{} },
1070 .{ .name = "InputAttachment", .value = 40, .parameters = &.{} },
1071 .{ .name = "SparseResidency", .value = 41, .parameters = &.{} },
1072 .{ .name = "MinLod", .value = 42, .parameters = &.{} },
1073 .{ .name = "Sampled1D", .value = 43, .parameters = &.{} },
1074 .{ .name = "Image1D", .value = 44, .parameters = &.{} },
1075 .{ .name = "SampledCubeArray", .value = 45, .parameters = &.{} },
1076 .{ .name = "SampledBuffer", .value = 46, .parameters = &.{} },
1077 .{ .name = "ImageBuffer", .value = 47, .parameters = &.{} },
1078 .{ .name = "ImageMSArray", .value = 48, .parameters = &.{} },
1079 .{ .name = "StorageImageExtendedFormats", .value = 49, .parameters = &.{} },
1080 .{ .name = "ImageQuery", .value = 50, .parameters = &.{} },
1081 .{ .name = "DerivativeControl", .value = 51, .parameters = &.{} },
1082 .{ .name = "InterpolationFunction", .value = 52, .parameters = &.{} },
1083 .{ .name = "TransformFeedback", .value = 53, .parameters = &.{} },
1084 .{ .name = "GeometryStreams", .value = 54, .parameters = &.{} },
1085 .{ .name = "StorageImageReadWithoutFormat", .value = 55, .parameters = &.{} },
1086 .{ .name = "StorageImageWriteWithoutFormat", .value = 56, .parameters = &.{} },
1087 .{ .name = "MultiViewport", .value = 57, .parameters = &.{} },
1088 .{ .name = "SubgroupDispatch", .value = 58, .parameters = &.{} },
1089 .{ .name = "NamedBarrier", .value = 59, .parameters = &.{} },
1090 .{ .name = "PipeStorage", .value = 60, .parameters = &.{} },
1091 .{ .name = "GroupNonUniform", .value = 61, .parameters = &.{} },
1092 .{ .name = "GroupNonUniformVote", .value = 62, .parameters = &.{} },
1093 .{ .name = "GroupNonUniformArithmetic", .value = 63, .parameters = &.{} },
1094 .{ .name = "GroupNonUniformBallot", .value = 64, .parameters = &.{} },
1095 .{ .name = "GroupNonUniformShuffle", .value = 65, .parameters = &.{} },
1096 .{ .name = "GroupNonUniformShuffleRelative", .value = 66, .parameters = &.{} },
1097 .{ .name = "GroupNonUniformClustered", .value = 67, .parameters = &.{} },
1098 .{ .name = "GroupNonUniformQuad", .value = 68, .parameters = &.{} },
1099 .{ .name = "ShaderLayer", .value = 69, .parameters = &.{} },
1100 .{ .name = "ShaderViewportIndex", .value = 70, .parameters = &.{} },
1101 .{ .name = "UniformDecoration", .value = 71, .parameters = &.{} },
1102 .{ .name = "CoreBuiltinsARM", .value = 4165, .parameters = &.{} },
1103 .{ .name = "TileImageColorReadAccessEXT", .value = 4166, .parameters = &.{} },
1104 .{ .name = "TileImageDepthReadAccessEXT", .value = 4167, .parameters = &.{} },
1105 .{ .name = "TileImageStencilReadAccessEXT", .value = 4168, .parameters = &.{} },
1106 .{ .name = "TensorsARM", .value = 4174, .parameters = &.{} },
1107 .{ .name = "StorageTensorArrayDynamicIndexingARM", .value = 4175, .parameters = &.{} },
1108 .{ .name = "StorageTensorArrayNonUniformIndexingARM", .value = 4176, .parameters = &.{} },
1109 .{ .name = "GraphARM", .value = 4191, .parameters = &.{} },
1110 .{ .name = "CooperativeMatrixLayoutsARM", .value = 4201, .parameters = &.{} },
1111 .{ .name = "Float8EXT", .value = 4212, .parameters = &.{} },
1112 .{ .name = "Float8CooperativeMatrixEXT", .value = 4213, .parameters = &.{} },
1113 .{ .name = "FragmentShadingRateKHR", .value = 4422, .parameters = &.{} },
1114 .{ .name = "SubgroupBallotKHR", .value = 4423, .parameters = &.{} },
1115 .{ .name = "DrawParameters", .value = 4427, .parameters = &.{} },
1116 .{ .name = "WorkgroupMemoryExplicitLayoutKHR", .value = 4428, .parameters = &.{} },
1117 .{ .name = "WorkgroupMemoryExplicitLayout8BitAccessKHR", .value = 4429, .parameters = &.{} },
1118 .{ .name = "WorkgroupMemoryExplicitLayout16BitAccessKHR", .value = 4430, .parameters = &.{} },
1119 .{ .name = "SubgroupVoteKHR", .value = 4431, .parameters = &.{} },
1120 .{ .name = "StorageBuffer16BitAccess", .value = 4433, .parameters = &.{} },
1121 .{ .name = "UniformAndStorageBuffer16BitAccess", .value = 4434, .parameters = &.{} },
1122 .{ .name = "StoragePushConstant16", .value = 4435, .parameters = &.{} },
1123 .{ .name = "StorageInputOutput16", .value = 4436, .parameters = &.{} },
1124 .{ .name = "DeviceGroup", .value = 4437, .parameters = &.{} },
1125 .{ .name = "MultiView", .value = 4439, .parameters = &.{} },
1126 .{ .name = "VariablePointersStorageBuffer", .value = 4441, .parameters = &.{} },
1127 .{ .name = "VariablePointers", .value = 4442, .parameters = &.{} },
1128 .{ .name = "AtomicStorageOps", .value = 4445, .parameters = &.{} },
1129 .{ .name = "SampleMaskPostDepthCoverage", .value = 4447, .parameters = &.{} },
1130 .{ .name = "StorageBuffer8BitAccess", .value = 4448, .parameters = &.{} },
1131 .{ .name = "UniformAndStorageBuffer8BitAccess", .value = 4449, .parameters = &.{} },
1132 .{ .name = "StoragePushConstant8", .value = 4450, .parameters = &.{} },
1133 .{ .name = "DenormPreserve", .value = 4464, .parameters = &.{} },
1134 .{ .name = "DenormFlushToZero", .value = 4465, .parameters = &.{} },
1135 .{ .name = "SignedZeroInfNanPreserve", .value = 4466, .parameters = &.{} },
1136 .{ .name = "RoundingModeRTE", .value = 4467, .parameters = &.{} },
1137 .{ .name = "RoundingModeRTZ", .value = 4468, .parameters = &.{} },
1138 .{ .name = "RayQueryProvisionalKHR", .value = 4471, .parameters = &.{} },
1139 .{ .name = "RayQueryKHR", .value = 4472, .parameters = &.{} },
1140 .{ .name = "UntypedPointersKHR", .value = 4473, .parameters = &.{} },
1141 .{ .name = "RayTraversalPrimitiveCullingKHR", .value = 4478, .parameters = &.{} },
1142 .{ .name = "RayTracingKHR", .value = 4479, .parameters = &.{} },
1143 .{ .name = "TextureSampleWeightedQCOM", .value = 4484, .parameters = &.{} },
1144 .{ .name = "TextureBoxFilterQCOM", .value = 4485, .parameters = &.{} },
1145 .{ .name = "TextureBlockMatchQCOM", .value = 4486, .parameters = &.{} },
1146 .{ .name = "TileShadingQCOM", .value = 4495, .parameters = &.{} },
1147 .{ .name = "TextureBlockMatch2QCOM", .value = 4498, .parameters = &.{} },
1148 .{ .name = "Float16ImageAMD", .value = 5008, .parameters = &.{} },
1149 .{ .name = "ImageGatherBiasLodAMD", .value = 5009, .parameters = &.{} },
1150 .{ .name = "FragmentMaskAMD", .value = 5010, .parameters = &.{} },
1151 .{ .name = "StencilExportEXT", .value = 5013, .parameters = &.{} },
1152 .{ .name = "ImageReadWriteLodAMD", .value = 5015, .parameters = &.{} },
1153 .{ .name = "Int64ImageEXT", .value = 5016, .parameters = &.{} },
1154 .{ .name = "ShaderClockKHR", .value = 5055, .parameters = &.{} },
1155 .{ .name = "ShaderEnqueueAMDX", .value = 5067, .parameters = &.{} },
1156 .{ .name = "QuadControlKHR", .value = 5087, .parameters = &.{} },
1157 .{ .name = "Int4TypeINTEL", .value = 5112, .parameters = &.{} },
1158 .{ .name = "Int4CooperativeMatrixINTEL", .value = 5114, .parameters = &.{} },
1159 .{ .name = "BFloat16TypeKHR", .value = 5116, .parameters = &.{} },
1160 .{ .name = "BFloat16DotProductKHR", .value = 5117, .parameters = &.{} },
1161 .{ .name = "BFloat16CooperativeMatrixKHR", .value = 5118, .parameters = &.{} },
1162 .{ .name = "SampleMaskOverrideCoverageNV", .value = 5249, .parameters = &.{} },
1163 .{ .name = "GeometryShaderPassthroughNV", .value = 5251, .parameters = &.{} },
1164 .{ .name = "ShaderViewportIndexLayerEXT", .value = 5254, .parameters = &.{} },
1165 .{ .name = "ShaderViewportMaskNV", .value = 5255, .parameters = &.{} },
1166 .{ .name = "ShaderStereoViewNV", .value = 5259, .parameters = &.{} },
1167 .{ .name = "PerViewAttributesNV", .value = 5260, .parameters = &.{} },
1168 .{ .name = "FragmentFullyCoveredEXT", .value = 5265, .parameters = &.{} },
1169 .{ .name = "MeshShadingNV", .value = 5266, .parameters = &.{} },
1170 .{ .name = "ImageFootprintNV", .value = 5282, .parameters = &.{} },
1171 .{ .name = "MeshShadingEXT", .value = 5283, .parameters = &.{} },
1172 .{ .name = "FragmentBarycentricKHR", .value = 5284, .parameters = &.{} },
1173 .{ .name = "ComputeDerivativeGroupQuadsKHR", .value = 5288, .parameters = &.{} },
1174 .{ .name = "FragmentDensityEXT", .value = 5291, .parameters = &.{} },
1175 .{ .name = "GroupNonUniformPartitionedNV", .value = 5297, .parameters = &.{} },
1176 .{ .name = "ShaderNonUniform", .value = 5301, .parameters = &.{} },
1177 .{ .name = "RuntimeDescriptorArray", .value = 5302, .parameters = &.{} },
1178 .{ .name = "InputAttachmentArrayDynamicIndexing", .value = 5303, .parameters = &.{} },
1179 .{ .name = "UniformTexelBufferArrayDynamicIndexing", .value = 5304, .parameters = &.{} },
1180 .{ .name = "StorageTexelBufferArrayDynamicIndexing", .value = 5305, .parameters = &.{} },
1181 .{ .name = "UniformBufferArrayNonUniformIndexing", .value = 5306, .parameters = &.{} },
1182 .{ .name = "SampledImageArrayNonUniformIndexing", .value = 5307, .parameters = &.{} },
1183 .{ .name = "StorageBufferArrayNonUniformIndexing", .value = 5308, .parameters = &.{} },
1184 .{ .name = "StorageImageArrayNonUniformIndexing", .value = 5309, .parameters = &.{} },
1185 .{ .name = "InputAttachmentArrayNonUniformIndexing", .value = 5310, .parameters = &.{} },
1186 .{ .name = "UniformTexelBufferArrayNonUniformIndexing", .value = 5311, .parameters = &.{} },
1187 .{ .name = "StorageTexelBufferArrayNonUniformIndexing", .value = 5312, .parameters = &.{} },
1188 .{ .name = "RayTracingPositionFetchKHR", .value = 5336, .parameters = &.{} },
1189 .{ .name = "RayTracingNV", .value = 5340, .parameters = &.{} },
1190 .{ .name = "RayTracingMotionBlurNV", .value = 5341, .parameters = &.{} },
1191 .{ .name = "VulkanMemoryModel", .value = 5345, .parameters = &.{} },
1192 .{ .name = "VulkanMemoryModelDeviceScope", .value = 5346, .parameters = &.{} },
1193 .{ .name = "PhysicalStorageBufferAddresses", .value = 5347, .parameters = &.{} },
1194 .{ .name = "ComputeDerivativeGroupLinearKHR", .value = 5350, .parameters = &.{} },
1195 .{ .name = "RayTracingProvisionalKHR", .value = 5353, .parameters = &.{} },
1196 .{ .name = "CooperativeMatrixNV", .value = 5357, .parameters = &.{} },
1197 .{ .name = "FragmentShaderSampleInterlockEXT", .value = 5363, .parameters = &.{} },
1198 .{ .name = "FragmentShaderShadingRateInterlockEXT", .value = 5372, .parameters = &.{} },
1199 .{ .name = "ShaderSMBuiltinsNV", .value = 5373, .parameters = &.{} },
1200 .{ .name = "FragmentShaderPixelInterlockEXT", .value = 5378, .parameters = &.{} },
1201 .{ .name = "DemoteToHelperInvocation", .value = 5379, .parameters = &.{} },
1202 .{ .name = "DisplacementMicromapNV", .value = 5380, .parameters = &.{} },
1203 .{ .name = "RayTracingOpacityMicromapEXT", .value = 5381, .parameters = &.{} },
1204 .{ .name = "ShaderInvocationReorderNV", .value = 5383, .parameters = &.{} },
1205 .{ .name = "BindlessTextureNV", .value = 5390, .parameters = &.{} },
1206 .{ .name = "RayQueryPositionFetchKHR", .value = 5391, .parameters = &.{} },
1207 .{ .name = "CooperativeVectorNV", .value = 5394, .parameters = &.{} },
1208 .{ .name = "AtomicFloat16VectorNV", .value = 5404, .parameters = &.{} },
1209 .{ .name = "RayTracingDisplacementMicromapNV", .value = 5409, .parameters = &.{} },
1210 .{ .name = "RawAccessChainsNV", .value = 5414, .parameters = &.{} },
1211 .{ .name = "RayTracingSpheresGeometryNV", .value = 5418, .parameters = &.{} },
1212 .{ .name = "RayTracingLinearSweptSpheresGeometryNV", .value = 5419, .parameters = &.{} },
1213 .{ .name = "CooperativeMatrixReductionsNV", .value = 5430, .parameters = &.{} },
1214 .{ .name = "CooperativeMatrixConversionsNV", .value = 5431, .parameters = &.{} },
1215 .{ .name = "CooperativeMatrixPerElementOperationsNV", .value = 5432, .parameters = &.{} },
1216 .{ .name = "CooperativeMatrixTensorAddressingNV", .value = 5433, .parameters = &.{} },
1217 .{ .name = "CooperativeMatrixBlockLoadsNV", .value = 5434, .parameters = &.{} },
1218 .{ .name = "CooperativeVectorTrainingNV", .value = 5435, .parameters = &.{} },
1219 .{ .name = "RayTracingClusterAccelerationStructureNV", .value = 5437, .parameters = &.{} },
1220 .{ .name = "TensorAddressingNV", .value = 5439, .parameters = &.{} },
1221 .{ .name = "SubgroupShuffleINTEL", .value = 5568, .parameters = &.{} },
1222 .{ .name = "SubgroupBufferBlockIOINTEL", .value = 5569, .parameters = &.{} },
1223 .{ .name = "SubgroupImageBlockIOINTEL", .value = 5570, .parameters = &.{} },
1224 .{ .name = "SubgroupImageMediaBlockIOINTEL", .value = 5579, .parameters = &.{} },
1225 .{ .name = "RoundToInfinityINTEL", .value = 5582, .parameters = &.{} },
1226 .{ .name = "FloatingPointModeINTEL", .value = 5583, .parameters = &.{} },
1227 .{ .name = "IntegerFunctions2INTEL", .value = 5584, .parameters = &.{} },
1228 .{ .name = "FunctionPointersINTEL", .value = 5603, .parameters = &.{} },
1229 .{ .name = "IndirectReferencesINTEL", .value = 5604, .parameters = &.{} },
1230 .{ .name = "AsmINTEL", .value = 5606, .parameters = &.{} },
1231 .{ .name = "AtomicFloat32MinMaxEXT", .value = 5612, .parameters = &.{} },
1232 .{ .name = "AtomicFloat64MinMaxEXT", .value = 5613, .parameters = &.{} },
1233 .{ .name = "AtomicFloat16MinMaxEXT", .value = 5616, .parameters = &.{} },
1234 .{ .name = "VectorComputeINTEL", .value = 5617, .parameters = &.{} },
1235 .{ .name = "VectorAnyINTEL", .value = 5619, .parameters = &.{} },
1236 .{ .name = "ExpectAssumeKHR", .value = 5629, .parameters = &.{} },
1237 .{ .name = "SubgroupAvcMotionEstimationINTEL", .value = 5696, .parameters = &.{} },
1238 .{ .name = "SubgroupAvcMotionEstimationIntraINTEL", .value = 5697, .parameters = &.{} },
1239 .{ .name = "SubgroupAvcMotionEstimationChromaINTEL", .value = 5698, .parameters = &.{} },
1240 .{ .name = "VariableLengthArrayINTEL", .value = 5817, .parameters = &.{} },
1241 .{ .name = "FunctionFloatControlINTEL", .value = 5821, .parameters = &.{} },
1242 .{ .name = "FPGAMemoryAttributesINTEL", .value = 5824, .parameters = &.{} },
1243 .{ .name = "FPFastMathModeINTEL", .value = 5837, .parameters = &.{} },
1244 .{ .name = "ArbitraryPrecisionIntegersINTEL", .value = 5844, .parameters = &.{} },
1245 .{ .name = "ArbitraryPrecisionFloatingPointINTEL", .value = 5845, .parameters = &.{} },
1246 .{ .name = "UnstructuredLoopControlsINTEL", .value = 5886, .parameters = &.{} },
1247 .{ .name = "FPGALoopControlsINTEL", .value = 5888, .parameters = &.{} },
1248 .{ .name = "KernelAttributesINTEL", .value = 5892, .parameters = &.{} },
1249 .{ .name = "FPGAKernelAttributesINTEL", .value = 5897, .parameters = &.{} },
1250 .{ .name = "FPGAMemoryAccessesINTEL", .value = 5898, .parameters = &.{} },
1251 .{ .name = "FPGAClusterAttributesINTEL", .value = 5904, .parameters = &.{} },
1252 .{ .name = "LoopFuseINTEL", .value = 5906, .parameters = &.{} },
1253 .{ .name = "FPGADSPControlINTEL", .value = 5908, .parameters = &.{} },
1254 .{ .name = "MemoryAccessAliasingINTEL", .value = 5910, .parameters = &.{} },
1255 .{ .name = "FPGAInvocationPipeliningAttributesINTEL", .value = 5916, .parameters = &.{} },
1256 .{ .name = "FPGABufferLocationINTEL", .value = 5920, .parameters = &.{} },
1257 .{ .name = "ArbitraryPrecisionFixedPointINTEL", .value = 5922, .parameters = &.{} },
1258 .{ .name = "USMStorageClassesINTEL", .value = 5935, .parameters = &.{} },
1259 .{ .name = "RuntimeAlignedAttributeINTEL", .value = 5939, .parameters = &.{} },
1260 .{ .name = "IOPipesINTEL", .value = 5943, .parameters = &.{} },
1261 .{ .name = "BlockingPipesINTEL", .value = 5945, .parameters = &.{} },
1262 .{ .name = "FPGARegINTEL", .value = 5948, .parameters = &.{} },
1263 .{ .name = "DotProductInputAll", .value = 6016, .parameters = &.{} },
1264 .{ .name = "DotProductInput4x8Bit", .value = 6017, .parameters = &.{} },
1265 .{ .name = "DotProductInput4x8BitPacked", .value = 6018, .parameters = &.{} },
1266 .{ .name = "DotProduct", .value = 6019, .parameters = &.{} },
1267 .{ .name = "RayCullMaskKHR", .value = 6020, .parameters = &.{} },
1268 .{ .name = "CooperativeMatrixKHR", .value = 6022, .parameters = &.{} },
1269 .{ .name = "ReplicatedCompositesEXT", .value = 6024, .parameters = &.{} },
1270 .{ .name = "BitInstructions", .value = 6025, .parameters = &.{} },
1271 .{ .name = "GroupNonUniformRotateKHR", .value = 6026, .parameters = &.{} },
1272 .{ .name = "FloatControls2", .value = 6029, .parameters = &.{} },
1273 .{ .name = "AtomicFloat32AddEXT", .value = 6033, .parameters = &.{} },
1274 .{ .name = "AtomicFloat64AddEXT", .value = 6034, .parameters = &.{} },
1275 .{ .name = "LongCompositesINTEL", .value = 6089, .parameters = &.{} },
1276 .{ .name = "OptNoneEXT", .value = 6094, .parameters = &.{} },
1277 .{ .name = "AtomicFloat16AddEXT", .value = 6095, .parameters = &.{} },
1278 .{ .name = "DebugInfoModuleINTEL", .value = 6114, .parameters = &.{} },
1279 .{ .name = "BFloat16ConversionINTEL", .value = 6115, .parameters = &.{} },
1280 .{ .name = "SplitBarrierINTEL", .value = 6141, .parameters = &.{} },
1281 .{ .name = "ArithmeticFenceEXT", .value = 6144, .parameters = &.{} },
1282 .{ .name = "FPGAClusterAttributesV2INTEL", .value = 6150, .parameters = &.{} },
1283 .{ .name = "FPGAKernelAttributesv2INTEL", .value = 6161, .parameters = &.{} },
1284 .{ .name = "TaskSequenceINTEL", .value = 6162, .parameters = &.{} },
1285 .{ .name = "FPMaxErrorINTEL", .value = 6169, .parameters = &.{} },
1286 .{ .name = "FPGALatencyControlINTEL", .value = 6171, .parameters = &.{} },
1287 .{ .name = "FPGAArgumentInterfacesINTEL", .value = 6174, .parameters = &.{} },
1288 .{ .name = "GlobalVariableHostAccessINTEL", .value = 6187, .parameters = &.{} },
1289 .{ .name = "GlobalVariableFPGADecorationsINTEL", .value = 6189, .parameters = &.{} },
1290 .{ .name = "SubgroupBufferPrefetchINTEL", .value = 6220, .parameters = &.{} },
1291 .{ .name = "Subgroup2DBlockIOINTEL", .value = 6228, .parameters = &.{} },
1292 .{ .name = "Subgroup2DBlockTransformINTEL", .value = 6229, .parameters = &.{} },
1293 .{ .name = "Subgroup2DBlockTransposeINTEL", .value = 6230, .parameters = &.{} },
1294 .{ .name = "SubgroupMatrixMultiplyAccumulateINTEL", .value = 6236, .parameters = &.{} },
1295 .{ .name = "TernaryBitwiseFunctionINTEL", .value = 6241, .parameters = &.{} },
1296 .{ .name = "GroupUniformArithmeticKHR", .value = 6400, .parameters = &.{} },
1297 .{ .name = "TensorFloat32RoundingINTEL", .value = 6425, .parameters = &.{} },
1298 .{ .name = "MaskedGatherScatterINTEL", .value = 6427, .parameters = &.{} },
1299 .{ .name = "CacheControlsINTEL", .value = 6441, .parameters = &.{} },
1300 .{ .name = "RegisterLimitsINTEL", .value = 6460, .parameters = &.{} },
1301 .{ .name = "BindlessImagesINTEL", .value = 6528, .parameters = &.{} },
1302 },
1303 .ray_query_intersection => &.{
1304 .{ .name = "RayQueryCandidateIntersectionKHR", .value = 0, .parameters = &.{} },
1305 .{ .name = "RayQueryCommittedIntersectionKHR", .value = 1, .parameters = &.{} },
1306 },
1307 .ray_query_committed_intersection_type => &.{
1308 .{ .name = "RayQueryCommittedIntersectionNoneKHR", .value = 0, .parameters = &.{} },
1309 .{ .name = "RayQueryCommittedIntersectionTriangleKHR", .value = 1, .parameters = &.{} },
1310 .{ .name = "RayQueryCommittedIntersectionGeneratedKHR", .value = 2, .parameters = &.{} },
1311 },
1312 .ray_query_candidate_intersection_type => &.{
1313 .{ .name = "RayQueryCandidateIntersectionTriangleKHR", .value = 0, .parameters = &.{} },
1314 .{ .name = "RayQueryCandidateIntersectionAABBKHR", .value = 1, .parameters = &.{} },
1315 },
1316 .packed_vector_format => &.{
1317 .{ .name = "PackedVectorFormat4x8Bit", .value = 0, .parameters = &.{} },
1318 },
1319 .cooperative_matrix_operands => &.{
1320 .{ .name = "NoneKHR", .value = 0x0000, .parameters = &.{} },
1321 .{ .name = "MatrixASignedComponentsKHR", .value = 0x0001, .parameters = &.{} },
1322 .{ .name = "MatrixBSignedComponentsKHR", .value = 0x0002, .parameters = &.{} },
1323 .{ .name = "MatrixCSignedComponentsKHR", .value = 0x0004, .parameters = &.{} },
1324 .{ .name = "MatrixResultSignedComponentsKHR", .value = 0x0008, .parameters = &.{} },
1325 .{ .name = "SaturatingAccumulationKHR", .value = 0x0010, .parameters = &.{} },
1326 },
1327 .cooperative_matrix_layout => &.{
1328 .{ .name = "RowMajorKHR", .value = 0, .parameters = &.{} },
1329 .{ .name = "ColumnMajorKHR", .value = 1, .parameters = &.{} },
1330 .{ .name = "RowBlockedInterleavedARM", .value = 4202, .parameters = &.{} },
1331 .{ .name = "ColumnBlockedInterleavedARM", .value = 4203, .parameters = &.{} },
1332 },
1333 .cooperative_matrix_use => &.{
1334 .{ .name = "MatrixAKHR", .value = 0, .parameters = &.{} },
1335 .{ .name = "MatrixBKHR", .value = 1, .parameters = &.{} },
1336 .{ .name = "MatrixAccumulatorKHR", .value = 2, .parameters = &.{} },
1337 },
1338 .cooperative_matrix_reduce => &.{
1339 .{ .name = "Row", .value = 0x0001, .parameters = &.{} },
1340 .{ .name = "Column", .value = 0x0002, .parameters = &.{} },
1341 .{ .name = "2x2", .value = 0x0004, .parameters = &.{} },
1342 },
1343 .tensor_clamp_mode => &.{
1344 .{ .name = "Undefined", .value = 0, .parameters = &.{} },
1345 .{ .name = "Constant", .value = 1, .parameters = &.{} },
1346 .{ .name = "ClampToEdge", .value = 2, .parameters = &.{} },
1347 .{ .name = "Repeat", .value = 3, .parameters = &.{} },
1348 .{ .name = "RepeatMirrored", .value = 4, .parameters = &.{} },
1349 },
1350 .tensor_addressing_operands => &.{
1351 .{ .name = "TensorView", .value = 0x0001, .parameters = &.{.id_ref} },
1352 .{ .name = "DecodeFunc", .value = 0x0002, .parameters = &.{.id_ref} },
1353 },
1354 .initialization_mode_qualifier => &.{
1355 .{ .name = "InitOnDeviceReprogramINTEL", .value = 0, .parameters = &.{} },
1356 .{ .name = "InitOnDeviceResetINTEL", .value = 1, .parameters = &.{} },
1357 },
1358 .load_cache_control => &.{
1359 .{ .name = "UncachedINTEL", .value = 0, .parameters = &.{} },
1360 .{ .name = "CachedINTEL", .value = 1, .parameters = &.{} },
1361 .{ .name = "StreamingINTEL", .value = 2, .parameters = &.{} },
1362 .{ .name = "InvalidateAfterReadINTEL", .value = 3, .parameters = &.{} },
1363 .{ .name = "ConstCachedINTEL", .value = 4, .parameters = &.{} },
1364 },
1365 .store_cache_control => &.{
1366 .{ .name = "UncachedINTEL", .value = 0, .parameters = &.{} },
1367 .{ .name = "WriteThroughINTEL", .value = 1, .parameters = &.{} },
1368 .{ .name = "WriteBackINTEL", .value = 2, .parameters = &.{} },
1369 .{ .name = "StreamingINTEL", .value = 3, .parameters = &.{} },
1370 },
1371 .named_maximum_number_of_registers => &.{
1372 .{ .name = "AutoINTEL", .value = 0, .parameters = &.{} },
1373 },
1374 .matrix_multiply_accumulate_operands => &.{
1375 .{ .name = "MatrixASignedComponentsINTEL", .value = 0x1, .parameters = &.{} },
1376 .{ .name = "MatrixBSignedComponentsINTEL", .value = 0x2, .parameters = &.{} },
1377 .{ .name = "MatrixCBFloat16INTEL", .value = 0x4, .parameters = &.{} },
1378 .{ .name = "MatrixResultBFloat16INTEL", .value = 0x8, .parameters = &.{} },
1379 .{ .name = "MatrixAPackedInt8INTEL", .value = 0x10, .parameters = &.{} },
1380 .{ .name = "MatrixBPackedInt8INTEL", .value = 0x20, .parameters = &.{} },
1381 .{ .name = "MatrixAPackedInt4INTEL", .value = 0x40, .parameters = &.{} },
1382 .{ .name = "MatrixBPackedInt4INTEL", .value = 0x80, .parameters = &.{} },
1383 .{ .name = "MatrixATF32INTEL", .value = 0x100, .parameters = &.{} },
1384 .{ .name = "MatrixBTF32INTEL", .value = 0x200, .parameters = &.{} },
1385 .{ .name = "MatrixAPackedFloat16INTEL", .value = 0x400, .parameters = &.{} },
1386 .{ .name = "MatrixBPackedFloat16INTEL", .value = 0x800, .parameters = &.{} },
1387 .{ .name = "MatrixAPackedBFloat16INTEL", .value = 0x1000, .parameters = &.{} },
1388 .{ .name = "MatrixBPackedBFloat16INTEL", .value = 0x2000, .parameters = &.{} },
1389 },
1390 .fp_encoding => &.{
1391 .{ .name = "BFloat16KHR", .value = 0, .parameters = &.{} },
1392 .{ .name = "Float8E4M3EXT", .value = 4214, .parameters = &.{} },
1393 .{ .name = "Float8E5M2EXT", .value = 4215, .parameters = &.{} },
1394 },
1395 .cooperative_vector_matrix_layout => &.{
1396 .{ .name = "RowMajorNV", .value = 0, .parameters = &.{} },
1397 .{ .name = "ColumnMajorNV", .value = 1, .parameters = &.{} },
1398 .{ .name = "InferencingOptimalNV", .value = 2, .parameters = &.{} },
1399 .{ .name = "TrainingOptimalNV", .value = 3, .parameters = &.{} },
1400 },
1401 .component_type => &.{
1402 .{ .name = "Float16NV", .value = 0, .parameters = &.{} },
1403 .{ .name = "Float32NV", .value = 1, .parameters = &.{} },
1404 .{ .name = "Float64NV", .value = 2, .parameters = &.{} },
1405 .{ .name = "SignedInt8NV", .value = 3, .parameters = &.{} },
1406 .{ .name = "SignedInt16NV", .value = 4, .parameters = &.{} },
1407 .{ .name = "SignedInt32NV", .value = 5, .parameters = &.{} },
1408 .{ .name = "SignedInt64NV", .value = 6, .parameters = &.{} },
1409 .{ .name = "UnsignedInt8NV", .value = 7, .parameters = &.{} },
1410 .{ .name = "UnsignedInt16NV", .value = 8, .parameters = &.{} },
1411 .{ .name = "UnsignedInt32NV", .value = 9, .parameters = &.{} },
1412 .{ .name = "UnsignedInt64NV", .value = 10, .parameters = &.{} },
1413 .{ .name = "SignedInt8PackedNV", .value = 1000491000, .parameters = &.{} },
1414 .{ .name = "UnsignedInt8PackedNV", .value = 1000491001, .parameters = &.{} },
1415 .{ .name = "FloatE4M3NV", .value = 1000491002, .parameters = &.{} },
1416 .{ .name = "FloatE5M2NV", .value = 1000491003, .parameters = &.{} },
1417 },
1418 .id_result_type => unreachable,
1419 .id_result => unreachable,
1420 .id_memory_semantics => unreachable,
1421 .id_scope => unreachable,
1422 .id_ref => unreachable,
1423 .literal_integer => unreachable,
1424 .literal_string => unreachable,
1425 .literal_float => unreachable,
1426 .literal_context_dependent_number => unreachable,
1427 .literal_ext_inst_integer => unreachable,
1428 .literal_spec_constant_op_integer => unreachable,
1429 .pair_literal_integer_id_ref => unreachable,
1430 .pair_id_ref_literal_integer => unreachable,
1431 .pair_id_ref_id_ref => unreachable,
1432 .tensor_operands => &.{
1433 .{ .name = "NoneARM", .value = 0x0000, .parameters = &.{} },
1434 .{ .name = "NontemporalARM", .value = 0x0001, .parameters = &.{} },
1435 .{ .name = "OutOfBoundsValueARM", .value = 0x0002, .parameters = &.{.id_ref} },
1436 .{ .name = "MakeElementAvailableARM", .value = 0x0004, .parameters = &.{.id_ref} },
1437 .{ .name = "MakeElementVisibleARM", .value = 0x0008, .parameters = &.{.id_ref} },
1438 .{ .name = "NonPrivateElementARM", .value = 0x0010, .parameters = &.{} },
1439 },
1440 };
1441 }
1442};
1443
1444pub const Opcode = enum(u16) {
1445 OpNop = 0,
1446 OpUndef = 1,
1447 OpSourceContinued = 2,
1448 OpSource = 3,
1449 OpSourceExtension = 4,
1450 OpName = 5,
1451 OpMemberName = 6,
1452 OpString = 7,
1453 OpLine = 8,
1454 OpExtension = 10,
1455 OpExtInstImport = 11,
1456 OpExtInst = 12,
1457 OpMemoryModel = 14,
1458 OpEntryPoint = 15,
1459 OpExecutionMode = 16,
1460 OpCapability = 17,
1461 OpTypeVoid = 19,
1462 OpTypeBool = 20,
1463 OpTypeInt = 21,
1464 OpTypeFloat = 22,
1465 OpTypeVector = 23,
1466 OpTypeMatrix = 24,
1467 OpTypeImage = 25,
1468 OpTypeSampler = 26,
1469 OpTypeSampledImage = 27,
1470 OpTypeArray = 28,
1471 OpTypeRuntimeArray = 29,
1472 OpTypeStruct = 30,
1473 OpTypeOpaque = 31,
1474 OpTypePointer = 32,
1475 OpTypeFunction = 33,
1476 OpTypeEvent = 34,
1477 OpTypeDeviceEvent = 35,
1478 OpTypeReserveId = 36,
1479 OpTypeQueue = 37,
1480 OpTypePipe = 38,
1481 OpTypeForwardPointer = 39,
1482 OpConstantTrue = 41,
1483 OpConstantFalse = 42,
1484 OpConstant = 43,
1485 OpConstantComposite = 44,
1486 OpConstantSampler = 45,
1487 OpConstantNull = 46,
1488 OpSpecConstantTrue = 48,
1489 OpSpecConstantFalse = 49,
1490 OpSpecConstant = 50,
1491 OpSpecConstantComposite = 51,
1492 OpSpecConstantOp = 52,
1493 OpFunction = 54,
1494 OpFunctionParameter = 55,
1495 OpFunctionEnd = 56,
1496 OpFunctionCall = 57,
1497 OpVariable = 59,
1498 OpImageTexelPointer = 60,
1499 OpLoad = 61,
1500 OpStore = 62,
1501 OpCopyMemory = 63,
1502 OpCopyMemorySized = 64,
1503 OpAccessChain = 65,
1504 OpInBoundsAccessChain = 66,
1505 OpPtrAccessChain = 67,
1506 OpArrayLength = 68,
1507 OpGenericPtrMemSemantics = 69,
1508 OpInBoundsPtrAccessChain = 70,
1509 OpDecorate = 71,
1510 OpMemberDecorate = 72,
1511 OpDecorationGroup = 73,
1512 OpGroupDecorate = 74,
1513 OpGroupMemberDecorate = 75,
1514 OpVectorExtractDynamic = 77,
1515 OpVectorInsertDynamic = 78,
1516 OpVectorShuffle = 79,
1517 OpCompositeConstruct = 80,
1518 OpCompositeExtract = 81,
1519 OpCompositeInsert = 82,
1520 OpCopyObject = 83,
1521 OpTranspose = 84,
1522 OpSampledImage = 86,
1523 OpImageSampleImplicitLod = 87,
1524 OpImageSampleExplicitLod = 88,
1525 OpImageSampleDrefImplicitLod = 89,
1526 OpImageSampleDrefExplicitLod = 90,
1527 OpImageSampleProjImplicitLod = 91,
1528 OpImageSampleProjExplicitLod = 92,
1529 OpImageSampleProjDrefImplicitLod = 93,
1530 OpImageSampleProjDrefExplicitLod = 94,
1531 OpImageFetch = 95,
1532 OpImageGather = 96,
1533 OpImageDrefGather = 97,
1534 OpImageRead = 98,
1535 OpImageWrite = 99,
1536 OpImage = 100,
1537 OpImageQueryFormat = 101,
1538 OpImageQueryOrder = 102,
1539 OpImageQuerySizeLod = 103,
1540 OpImageQuerySize = 104,
1541 OpImageQueryLod = 105,
1542 OpImageQueryLevels = 106,
1543 OpImageQuerySamples = 107,
1544 OpConvertFToU = 109,
1545 OpConvertFToS = 110,
1546 OpConvertSToF = 111,
1547 OpConvertUToF = 112,
1548 OpUConvert = 113,
1549 OpSConvert = 114,
1550 OpFConvert = 115,
1551 OpQuantizeToF16 = 116,
1552 OpConvertPtrToU = 117,
1553 OpSatConvertSToU = 118,
1554 OpSatConvertUToS = 119,
1555 OpConvertUToPtr = 120,
1556 OpPtrCastToGeneric = 121,
1557 OpGenericCastToPtr = 122,
1558 OpGenericCastToPtrExplicit = 123,
1559 OpBitcast = 124,
1560 OpSNegate = 126,
1561 OpFNegate = 127,
1562 OpIAdd = 128,
1563 OpFAdd = 129,
1564 OpISub = 130,
1565 OpFSub = 131,
1566 OpIMul = 132,
1567 OpFMul = 133,
1568 OpUDiv = 134,
1569 OpSDiv = 135,
1570 OpFDiv = 136,
1571 OpUMod = 137,
1572 OpSRem = 138,
1573 OpSMod = 139,
1574 OpFRem = 140,
1575 OpFMod = 141,
1576 OpVectorTimesScalar = 142,
1577 OpMatrixTimesScalar = 143,
1578 OpVectorTimesMatrix = 144,
1579 OpMatrixTimesVector = 145,
1580 OpMatrixTimesMatrix = 146,
1581 OpOuterProduct = 147,
1582 OpDot = 148,
1583 OpIAddCarry = 149,
1584 OpISubBorrow = 150,
1585 OpUMulExtended = 151,
1586 OpSMulExtended = 152,
1587 OpAny = 154,
1588 OpAll = 155,
1589 OpIsNan = 156,
1590 OpIsInf = 157,
1591 OpIsFinite = 158,
1592 OpIsNormal = 159,
1593 OpSignBitSet = 160,
1594 OpLessOrGreater = 161,
1595 OpOrdered = 162,
1596 OpUnordered = 163,
1597 OpLogicalEqual = 164,
1598 OpLogicalNotEqual = 165,
1599 OpLogicalOr = 166,
1600 OpLogicalAnd = 167,
1601 OpLogicalNot = 168,
1602 OpSelect = 169,
1603 OpIEqual = 170,
1604 OpINotEqual = 171,
1605 OpUGreaterThan = 172,
1606 OpSGreaterThan = 173,
1607 OpUGreaterThanEqual = 174,
1608 OpSGreaterThanEqual = 175,
1609 OpULessThan = 176,
1610 OpSLessThan = 177,
1611 OpULessThanEqual = 178,
1612 OpSLessThanEqual = 179,
1613 OpFOrdEqual = 180,
1614 OpFUnordEqual = 181,
1615 OpFOrdNotEqual = 182,
1616 OpFUnordNotEqual = 183,
1617 OpFOrdLessThan = 184,
1618 OpFUnordLessThan = 185,
1619 OpFOrdGreaterThan = 186,
1620 OpFUnordGreaterThan = 187,
1621 OpFOrdLessThanEqual = 188,
1622 OpFUnordLessThanEqual = 189,
1623 OpFOrdGreaterThanEqual = 190,
1624 OpFUnordGreaterThanEqual = 191,
1625 OpShiftRightLogical = 194,
1626 OpShiftRightArithmetic = 195,
1627 OpShiftLeftLogical = 196,
1628 OpBitwiseOr = 197,
1629 OpBitwiseXor = 198,
1630 OpBitwiseAnd = 199,
1631 OpNot = 200,
1632 OpBitFieldInsert = 201,
1633 OpBitFieldSExtract = 202,
1634 OpBitFieldUExtract = 203,
1635 OpBitReverse = 204,
1636 OpBitCount = 205,
1637 OpDPdx = 207,
1638 OpDPdy = 208,
1639 OpFwidth = 209,
1640 OpDPdxFine = 210,
1641 OpDPdyFine = 211,
1642 OpFwidthFine = 212,
1643 OpDPdxCoarse = 213,
1644 OpDPdyCoarse = 214,
1645 OpFwidthCoarse = 215,
1646 OpEmitVertex = 218,
1647 OpEndPrimitive = 219,
1648 OpEmitStreamVertex = 220,
1649 OpEndStreamPrimitive = 221,
1650 OpControlBarrier = 224,
1651 OpMemoryBarrier = 225,
1652 OpAtomicLoad = 227,
1653 OpAtomicStore = 228,
1654 OpAtomicExchange = 229,
1655 OpAtomicCompareExchange = 230,
1656 OpAtomicCompareExchangeWeak = 231,
1657 OpAtomicIIncrement = 232,
1658 OpAtomicIDecrement = 233,
1659 OpAtomicIAdd = 234,
1660 OpAtomicISub = 235,
1661 OpAtomicSMin = 236,
1662 OpAtomicUMin = 237,
1663 OpAtomicSMax = 238,
1664 OpAtomicUMax = 239,
1665 OpAtomicAnd = 240,
1666 OpAtomicOr = 241,
1667 OpAtomicXor = 242,
1668 OpPhi = 245,
1669 OpLoopMerge = 246,
1670 OpSelectionMerge = 247,
1671 OpLabel = 248,
1672 OpBranch = 249,
1673 OpBranchConditional = 250,
1674 OpSwitch = 251,
1675 OpKill = 252,
1676 OpReturn = 253,
1677 OpReturnValue = 254,
1678 OpUnreachable = 255,
1679 OpLifetimeStart = 256,
1680 OpLifetimeStop = 257,
1681 OpGroupAsyncCopy = 259,
1682 OpGroupWaitEvents = 260,
1683 OpGroupAll = 261,
1684 OpGroupAny = 262,
1685 OpGroupBroadcast = 263,
1686 OpGroupIAdd = 264,
1687 OpGroupFAdd = 265,
1688 OpGroupFMin = 266,
1689 OpGroupUMin = 267,
1690 OpGroupSMin = 268,
1691 OpGroupFMax = 269,
1692 OpGroupUMax = 270,
1693 OpGroupSMax = 271,
1694 OpReadPipe = 274,
1695 OpWritePipe = 275,
1696 OpReservedReadPipe = 276,
1697 OpReservedWritePipe = 277,
1698 OpReserveReadPipePackets = 278,
1699 OpReserveWritePipePackets = 279,
1700 OpCommitReadPipe = 280,
1701 OpCommitWritePipe = 281,
1702 OpIsValidReserveId = 282,
1703 OpGetNumPipePackets = 283,
1704 OpGetMaxPipePackets = 284,
1705 OpGroupReserveReadPipePackets = 285,
1706 OpGroupReserveWritePipePackets = 286,
1707 OpGroupCommitReadPipe = 287,
1708 OpGroupCommitWritePipe = 288,
1709 OpEnqueueMarker = 291,
1710 OpEnqueueKernel = 292,
1711 OpGetKernelNDrangeSubGroupCount = 293,
1712 OpGetKernelNDrangeMaxSubGroupSize = 294,
1713 OpGetKernelWorkGroupSize = 295,
1714 OpGetKernelPreferredWorkGroupSizeMultiple = 296,
1715 OpRetainEvent = 297,
1716 OpReleaseEvent = 298,
1717 OpCreateUserEvent = 299,
1718 OpIsValidEvent = 300,
1719 OpSetUserEventStatus = 301,
1720 OpCaptureEventProfilingInfo = 302,
1721 OpGetDefaultQueue = 303,
1722 OpBuildNDRange = 304,
1723 OpImageSparseSampleImplicitLod = 305,
1724 OpImageSparseSampleExplicitLod = 306,
1725 OpImageSparseSampleDrefImplicitLod = 307,
1726 OpImageSparseSampleDrefExplicitLod = 308,
1727 OpImageSparseSampleProjImplicitLod = 309,
1728 OpImageSparseSampleProjExplicitLod = 310,
1729 OpImageSparseSampleProjDrefImplicitLod = 311,
1730 OpImageSparseSampleProjDrefExplicitLod = 312,
1731 OpImageSparseFetch = 313,
1732 OpImageSparseGather = 314,
1733 OpImageSparseDrefGather = 315,
1734 OpImageSparseTexelsResident = 316,
1735 OpNoLine = 317,
1736 OpAtomicFlagTestAndSet = 318,
1737 OpAtomicFlagClear = 319,
1738 OpImageSparseRead = 320,
1739 OpSizeOf = 321,
1740 OpTypePipeStorage = 322,
1741 OpConstantPipeStorage = 323,
1742 OpCreatePipeFromPipeStorage = 324,
1743 OpGetKernelLocalSizeForSubgroupCount = 325,
1744 OpGetKernelMaxNumSubgroups = 326,
1745 OpTypeNamedBarrier = 327,
1746 OpNamedBarrierInitialize = 328,
1747 OpMemoryNamedBarrier = 329,
1748 OpModuleProcessed = 330,
1749 OpExecutionModeId = 331,
1750 OpDecorateId = 332,
1751 OpGroupNonUniformElect = 333,
1752 OpGroupNonUniformAll = 334,
1753 OpGroupNonUniformAny = 335,
1754 OpGroupNonUniformAllEqual = 336,
1755 OpGroupNonUniformBroadcast = 337,
1756 OpGroupNonUniformBroadcastFirst = 338,
1757 OpGroupNonUniformBallot = 339,
1758 OpGroupNonUniformInverseBallot = 340,
1759 OpGroupNonUniformBallotBitExtract = 341,
1760 OpGroupNonUniformBallotBitCount = 342,
1761 OpGroupNonUniformBallotFindLSB = 343,
1762 OpGroupNonUniformBallotFindMSB = 344,
1763 OpGroupNonUniformShuffle = 345,
1764 OpGroupNonUniformShuffleXor = 346,
1765 OpGroupNonUniformShuffleUp = 347,
1766 OpGroupNonUniformShuffleDown = 348,
1767 OpGroupNonUniformIAdd = 349,
1768 OpGroupNonUniformFAdd = 350,
1769 OpGroupNonUniformIMul = 351,
1770 OpGroupNonUniformFMul = 352,
1771 OpGroupNonUniformSMin = 353,
1772 OpGroupNonUniformUMin = 354,
1773 OpGroupNonUniformFMin = 355,
1774 OpGroupNonUniformSMax = 356,
1775 OpGroupNonUniformUMax = 357,
1776 OpGroupNonUniformFMax = 358,
1777 OpGroupNonUniformBitwiseAnd = 359,
1778 OpGroupNonUniformBitwiseOr = 360,
1779 OpGroupNonUniformBitwiseXor = 361,
1780 OpGroupNonUniformLogicalAnd = 362,
1781 OpGroupNonUniformLogicalOr = 363,
1782 OpGroupNonUniformLogicalXor = 364,
1783 OpGroupNonUniformQuadBroadcast = 365,
1784 OpGroupNonUniformQuadSwap = 366,
1785 OpCopyLogical = 400,
1786 OpPtrEqual = 401,
1787 OpPtrNotEqual = 402,
1788 OpPtrDiff = 403,
1789 OpColorAttachmentReadEXT = 4160,
1790 OpDepthAttachmentReadEXT = 4161,
1791 OpStencilAttachmentReadEXT = 4162,
1792 OpTypeTensorARM = 4163,
1793 OpTensorReadARM = 4164,
1794 OpTensorWriteARM = 4165,
1795 OpTensorQuerySizeARM = 4166,
1796 OpGraphConstantARM = 4181,
1797 OpGraphEntryPointARM = 4182,
1798 OpGraphARM = 4183,
1799 OpGraphInputARM = 4184,
1800 OpGraphSetOutputARM = 4185,
1801 OpGraphEndARM = 4186,
1802 OpTypeGraphARM = 4190,
1803 OpTerminateInvocation = 4416,
1804 OpTypeUntypedPointerKHR = 4417,
1805 OpUntypedVariableKHR = 4418,
1806 OpUntypedAccessChainKHR = 4419,
1807 OpUntypedInBoundsAccessChainKHR = 4420,
1808 OpSubgroupBallotKHR = 4421,
1809 OpSubgroupFirstInvocationKHR = 4422,
1810 OpUntypedPtrAccessChainKHR = 4423,
1811 OpUntypedInBoundsPtrAccessChainKHR = 4424,
1812 OpUntypedArrayLengthKHR = 4425,
1813 OpUntypedPrefetchKHR = 4426,
1814 OpSubgroupAllKHR = 4428,
1815 OpSubgroupAnyKHR = 4429,
1816 OpSubgroupAllEqualKHR = 4430,
1817 OpGroupNonUniformRotateKHR = 4431,
1818 OpSubgroupReadInvocationKHR = 4432,
1819 OpExtInstWithForwardRefsKHR = 4433,
1820 OpTraceRayKHR = 4445,
1821 OpExecuteCallableKHR = 4446,
1822 OpConvertUToAccelerationStructureKHR = 4447,
1823 OpIgnoreIntersectionKHR = 4448,
1824 OpTerminateRayKHR = 4449,
1825 OpSDot = 4450,
1826 OpUDot = 4451,
1827 OpSUDot = 4452,
1828 OpSDotAccSat = 4453,
1829 OpUDotAccSat = 4454,
1830 OpSUDotAccSat = 4455,
1831 OpTypeCooperativeMatrixKHR = 4456,
1832 OpCooperativeMatrixLoadKHR = 4457,
1833 OpCooperativeMatrixStoreKHR = 4458,
1834 OpCooperativeMatrixMulAddKHR = 4459,
1835 OpCooperativeMatrixLengthKHR = 4460,
1836 OpConstantCompositeReplicateEXT = 4461,
1837 OpSpecConstantCompositeReplicateEXT = 4462,
1838 OpCompositeConstructReplicateEXT = 4463,
1839 OpTypeRayQueryKHR = 4472,
1840 OpRayQueryInitializeKHR = 4473,
1841 OpRayQueryTerminateKHR = 4474,
1842 OpRayQueryGenerateIntersectionKHR = 4475,
1843 OpRayQueryConfirmIntersectionKHR = 4476,
1844 OpRayQueryProceedKHR = 4477,
1845 OpRayQueryGetIntersectionTypeKHR = 4479,
1846 OpImageSampleWeightedQCOM = 4480,
1847 OpImageBoxFilterQCOM = 4481,
1848 OpImageBlockMatchSSDQCOM = 4482,
1849 OpImageBlockMatchSADQCOM = 4483,
1850 OpImageBlockMatchWindowSSDQCOM = 4500,
1851 OpImageBlockMatchWindowSADQCOM = 4501,
1852 OpImageBlockMatchGatherSSDQCOM = 4502,
1853 OpImageBlockMatchGatherSADQCOM = 4503,
1854 OpGroupIAddNonUniformAMD = 5000,
1855 OpGroupFAddNonUniformAMD = 5001,
1856 OpGroupFMinNonUniformAMD = 5002,
1857 OpGroupUMinNonUniformAMD = 5003,
1858 OpGroupSMinNonUniformAMD = 5004,
1859 OpGroupFMaxNonUniformAMD = 5005,
1860 OpGroupUMaxNonUniformAMD = 5006,
1861 OpGroupSMaxNonUniformAMD = 5007,
1862 OpFragmentMaskFetchAMD = 5011,
1863 OpFragmentFetchAMD = 5012,
1864 OpReadClockKHR = 5056,
1865 OpAllocateNodePayloadsAMDX = 5074,
1866 OpEnqueueNodePayloadsAMDX = 5075,
1867 OpTypeNodePayloadArrayAMDX = 5076,
1868 OpFinishWritingNodePayloadAMDX = 5078,
1869 OpNodePayloadArrayLengthAMDX = 5090,
1870 OpIsNodePayloadValidAMDX = 5101,
1871 OpConstantStringAMDX = 5103,
1872 OpSpecConstantStringAMDX = 5104,
1873 OpGroupNonUniformQuadAllKHR = 5110,
1874 OpGroupNonUniformQuadAnyKHR = 5111,
1875 OpHitObjectRecordHitMotionNV = 5249,
1876 OpHitObjectRecordHitWithIndexMotionNV = 5250,
1877 OpHitObjectRecordMissMotionNV = 5251,
1878 OpHitObjectGetWorldToObjectNV = 5252,
1879 OpHitObjectGetObjectToWorldNV = 5253,
1880 OpHitObjectGetObjectRayDirectionNV = 5254,
1881 OpHitObjectGetObjectRayOriginNV = 5255,
1882 OpHitObjectTraceRayMotionNV = 5256,
1883 OpHitObjectGetShaderRecordBufferHandleNV = 5257,
1884 OpHitObjectGetShaderBindingTableRecordIndexNV = 5258,
1885 OpHitObjectRecordEmptyNV = 5259,
1886 OpHitObjectTraceRayNV = 5260,
1887 OpHitObjectRecordHitNV = 5261,
1888 OpHitObjectRecordHitWithIndexNV = 5262,
1889 OpHitObjectRecordMissNV = 5263,
1890 OpHitObjectExecuteShaderNV = 5264,
1891 OpHitObjectGetCurrentTimeNV = 5265,
1892 OpHitObjectGetAttributesNV = 5266,
1893 OpHitObjectGetHitKindNV = 5267,
1894 OpHitObjectGetPrimitiveIndexNV = 5268,
1895 OpHitObjectGetGeometryIndexNV = 5269,
1896 OpHitObjectGetInstanceIdNV = 5270,
1897 OpHitObjectGetInstanceCustomIndexNV = 5271,
1898 OpHitObjectGetWorldRayDirectionNV = 5272,
1899 OpHitObjectGetWorldRayOriginNV = 5273,
1900 OpHitObjectGetRayTMaxNV = 5274,
1901 OpHitObjectGetRayTMinNV = 5275,
1902 OpHitObjectIsEmptyNV = 5276,
1903 OpHitObjectIsHitNV = 5277,
1904 OpHitObjectIsMissNV = 5278,
1905 OpReorderThreadWithHitObjectNV = 5279,
1906 OpReorderThreadWithHintNV = 5280,
1907 OpTypeHitObjectNV = 5281,
1908 OpImageSampleFootprintNV = 5283,
1909 OpTypeCooperativeVectorNV = 5288,
1910 OpCooperativeVectorMatrixMulNV = 5289,
1911 OpCooperativeVectorOuterProductAccumulateNV = 5290,
1912 OpCooperativeVectorReduceSumAccumulateNV = 5291,
1913 OpCooperativeVectorMatrixMulAddNV = 5292,
1914 OpCooperativeMatrixConvertNV = 5293,
1915 OpEmitMeshTasksEXT = 5294,
1916 OpSetMeshOutputsEXT = 5295,
1917 OpGroupNonUniformPartitionNV = 5296,
1918 OpWritePackedPrimitiveIndices4x8NV = 5299,
1919 OpFetchMicroTriangleVertexPositionNV = 5300,
1920 OpFetchMicroTriangleVertexBarycentricNV = 5301,
1921 OpCooperativeVectorLoadNV = 5302,
1922 OpCooperativeVectorStoreNV = 5303,
1923 OpReportIntersectionKHR = 5334,
1924 OpIgnoreIntersectionNV = 5335,
1925 OpTerminateRayNV = 5336,
1926 OpTraceNV = 5337,
1927 OpTraceMotionNV = 5338,
1928 OpTraceRayMotionNV = 5339,
1929 OpRayQueryGetIntersectionTriangleVertexPositionsKHR = 5340,
1930 OpTypeAccelerationStructureKHR = 5341,
1931 OpExecuteCallableNV = 5344,
1932 OpRayQueryGetClusterIdNV = 5345,
1933 OpHitObjectGetClusterIdNV = 5346,
1934 OpTypeCooperativeMatrixNV = 5358,
1935 OpCooperativeMatrixLoadNV = 5359,
1936 OpCooperativeMatrixStoreNV = 5360,
1937 OpCooperativeMatrixMulAddNV = 5361,
1938 OpCooperativeMatrixLengthNV = 5362,
1939 OpBeginInvocationInterlockEXT = 5364,
1940 OpEndInvocationInterlockEXT = 5365,
1941 OpCooperativeMatrixReduceNV = 5366,
1942 OpCooperativeMatrixLoadTensorNV = 5367,
1943 OpCooperativeMatrixStoreTensorNV = 5368,
1944 OpCooperativeMatrixPerElementOpNV = 5369,
1945 OpTypeTensorLayoutNV = 5370,
1946 OpTypeTensorViewNV = 5371,
1947 OpCreateTensorLayoutNV = 5372,
1948 OpTensorLayoutSetDimensionNV = 5373,
1949 OpTensorLayoutSetStrideNV = 5374,
1950 OpTensorLayoutSliceNV = 5375,
1951 OpTensorLayoutSetClampValueNV = 5376,
1952 OpCreateTensorViewNV = 5377,
1953 OpTensorViewSetDimensionNV = 5378,
1954 OpTensorViewSetStrideNV = 5379,
1955 OpDemoteToHelperInvocation = 5380,
1956 OpIsHelperInvocationEXT = 5381,
1957 OpTensorViewSetClipNV = 5382,
1958 OpTensorLayoutSetBlockSizeNV = 5384,
1959 OpCooperativeMatrixTransposeNV = 5390,
1960 OpConvertUToImageNV = 5391,
1961 OpConvertUToSamplerNV = 5392,
1962 OpConvertImageToUNV = 5393,
1963 OpConvertSamplerToUNV = 5394,
1964 OpConvertUToSampledImageNV = 5395,
1965 OpConvertSampledImageToUNV = 5396,
1966 OpSamplerImageAddressingModeNV = 5397,
1967 OpRawAccessChainNV = 5398,
1968 OpRayQueryGetIntersectionSpherePositionNV = 5427,
1969 OpRayQueryGetIntersectionSphereRadiusNV = 5428,
1970 OpRayQueryGetIntersectionLSSPositionsNV = 5429,
1971 OpRayQueryGetIntersectionLSSRadiiNV = 5430,
1972 OpRayQueryGetIntersectionLSSHitValueNV = 5431,
1973 OpHitObjectGetSpherePositionNV = 5432,
1974 OpHitObjectGetSphereRadiusNV = 5433,
1975 OpHitObjectGetLSSPositionsNV = 5434,
1976 OpHitObjectGetLSSRadiiNV = 5435,
1977 OpHitObjectIsSphereHitNV = 5436,
1978 OpHitObjectIsLSSHitNV = 5437,
1979 OpRayQueryIsSphereHitNV = 5438,
1980 OpRayQueryIsLSSHitNV = 5439,
1981 OpSubgroupShuffleINTEL = 5571,
1982 OpSubgroupShuffleDownINTEL = 5572,
1983 OpSubgroupShuffleUpINTEL = 5573,
1984 OpSubgroupShuffleXorINTEL = 5574,
1985 OpSubgroupBlockReadINTEL = 5575,
1986 OpSubgroupBlockWriteINTEL = 5576,
1987 OpSubgroupImageBlockReadINTEL = 5577,
1988 OpSubgroupImageBlockWriteINTEL = 5578,
1989 OpSubgroupImageMediaBlockReadINTEL = 5580,
1990 OpSubgroupImageMediaBlockWriteINTEL = 5581,
1991 OpUCountLeadingZerosINTEL = 5585,
1992 OpUCountTrailingZerosINTEL = 5586,
1993 OpAbsISubINTEL = 5587,
1994 OpAbsUSubINTEL = 5588,
1995 OpIAddSatINTEL = 5589,
1996 OpUAddSatINTEL = 5590,
1997 OpIAverageINTEL = 5591,
1998 OpUAverageINTEL = 5592,
1999 OpIAverageRoundedINTEL = 5593,
2000 OpUAverageRoundedINTEL = 5594,
2001 OpISubSatINTEL = 5595,
2002 OpUSubSatINTEL = 5596,
2003 OpIMul32x16INTEL = 5597,
2004 OpUMul32x16INTEL = 5598,
2005 OpAtomicFMinEXT = 5614,
2006 OpAtomicFMaxEXT = 5615,
2007 OpAssumeTrueKHR = 5630,
2008 OpExpectKHR = 5631,
2009 OpDecorateString = 5632,
2010 OpMemberDecorateString = 5633,
2011 OpLoopControlINTEL = 5887,
2012 OpReadPipeBlockingINTEL = 5946,
2013 OpWritePipeBlockingINTEL = 5947,
2014 OpFPGARegINTEL = 5949,
2015 OpRayQueryGetRayTMinKHR = 6016,
2016 OpRayQueryGetRayFlagsKHR = 6017,
2017 OpRayQueryGetIntersectionTKHR = 6018,
2018 OpRayQueryGetIntersectionInstanceCustomIndexKHR = 6019,
2019 OpRayQueryGetIntersectionInstanceIdKHR = 6020,
2020 OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR = 6021,
2021 OpRayQueryGetIntersectionGeometryIndexKHR = 6022,
2022 OpRayQueryGetIntersectionPrimitiveIndexKHR = 6023,
2023 OpRayQueryGetIntersectionBarycentricsKHR = 6024,
2024 OpRayQueryGetIntersectionFrontFaceKHR = 6025,
2025 OpRayQueryGetIntersectionCandidateAABBOpaqueKHR = 6026,
2026 OpRayQueryGetIntersectionObjectRayDirectionKHR = 6027,
2027 OpRayQueryGetIntersectionObjectRayOriginKHR = 6028,
2028 OpRayQueryGetWorldRayDirectionKHR = 6029,
2029 OpRayQueryGetWorldRayOriginKHR = 6030,
2030 OpRayQueryGetIntersectionObjectToWorldKHR = 6031,
2031 OpRayQueryGetIntersectionWorldToObjectKHR = 6032,
2032 OpAtomicFAddEXT = 6035,
2033 OpTypeBufferSurfaceINTEL = 6086,
2034 OpTypeStructContinuedINTEL = 6090,
2035 OpConstantCompositeContinuedINTEL = 6091,
2036 OpSpecConstantCompositeContinuedINTEL = 6092,
2037 OpCompositeConstructContinuedINTEL = 6096,
2038 OpConvertFToBF16INTEL = 6116,
2039 OpConvertBF16ToFINTEL = 6117,
2040 OpControlBarrierArriveINTEL = 6142,
2041 OpControlBarrierWaitINTEL = 6143,
2042 OpArithmeticFenceEXT = 6145,
2043 OpTaskSequenceCreateINTEL = 6163,
2044 OpTaskSequenceAsyncINTEL = 6164,
2045 OpTaskSequenceGetINTEL = 6165,
2046 OpTaskSequenceReleaseINTEL = 6166,
2047 OpTypeTaskSequenceINTEL = 6199,
2048 OpSubgroupBlockPrefetchINTEL = 6221,
2049 OpSubgroup2DBlockLoadINTEL = 6231,
2050 OpSubgroup2DBlockLoadTransformINTEL = 6232,
2051 OpSubgroup2DBlockLoadTransposeINTEL = 6233,
2052 OpSubgroup2DBlockPrefetchINTEL = 6234,
2053 OpSubgroup2DBlockStoreINTEL = 6235,
2054 OpSubgroupMatrixMultiplyAccumulateINTEL = 6237,
2055 OpBitwiseFunctionINTEL = 6242,
2056 OpGroupIMulKHR = 6401,
2057 OpGroupFMulKHR = 6402,
2058 OpGroupBitwiseAndKHR = 6403,
2059 OpGroupBitwiseOrKHR = 6404,
2060 OpGroupBitwiseXorKHR = 6405,
2061 OpGroupLogicalAndKHR = 6406,
2062 OpGroupLogicalOrKHR = 6407,
2063 OpGroupLogicalXorKHR = 6408,
2064 OpRoundFToTF32INTEL = 6426,
2065 OpMaskedGatherINTEL = 6428,
2066 OpMaskedScatterINTEL = 6429,
2067 OpConvertHandleToImageINTEL = 6529,
2068 OpConvertHandleToSamplerINTEL = 6530,
2069 OpConvertHandleToSampledImageINTEL = 6531,
2070
2071 pub fn Operands(comptime self: Opcode) type {
2072 return switch (self) {
2073 .OpNop => void,
2074 .OpUndef => struct { id_result_type: Id, id_result: Id },
2075 .OpSourceContinued => struct { continued_source: LiteralString },
2076 .OpSource => struct { source_language: SourceLanguage, version: LiteralInteger, file: ?Id = null, source: ?LiteralString = null },
2077 .OpSourceExtension => struct { extension: LiteralString },
2078 .OpName => struct { target: Id, name: LiteralString },
2079 .OpMemberName => struct { type: Id, member: LiteralInteger, name: LiteralString },
2080 .OpString => struct { id_result: Id, string: LiteralString },
2081 .OpLine => struct { file: Id, line: LiteralInteger, column: LiteralInteger },
2082 .OpExtension => struct { name: LiteralString },
2083 .OpExtInstImport => struct { id_result: Id, name: LiteralString },
2084 .OpExtInst => struct { id_result_type: Id, id_result: Id, set: Id, instruction: LiteralExtInstInteger, id_ref_4: []const Id = &.{} },
2085 .OpMemoryModel => struct { addressing_model: AddressingModel, memory_model: MemoryModel },
2086 .OpEntryPoint => struct { execution_model: ExecutionModel, entry_point: Id, name: LiteralString, interface: []const Id = &.{} },
2087 .OpExecutionMode => struct { entry_point: Id, mode: ExecutionMode.Extended },
2088 .OpCapability => struct { capability: Capability },
2089 .OpTypeVoid => struct { id_result: Id },
2090 .OpTypeBool => struct { id_result: Id },
2091 .OpTypeInt => struct { id_result: Id, width: LiteralInteger, signedness: LiteralInteger },
2092 .OpTypeFloat => struct { id_result: Id, width: LiteralInteger, floating_point_encoding: ?FPEncoding = null },
2093 .OpTypeVector => struct { id_result: Id, component_type: Id, component_count: LiteralInteger },
2094 .OpTypeMatrix => struct { id_result: Id, column_type: Id, column_count: LiteralInteger },
2095 .OpTypeImage => struct { id_result: Id, sampled_type: Id, dim: Dim, depth: LiteralInteger, arrayed: LiteralInteger, ms: LiteralInteger, sampled: LiteralInteger, image_format: ImageFormat, access_qualifier: ?AccessQualifier = null },
2096 .OpTypeSampler => struct { id_result: Id },
2097 .OpTypeSampledImage => struct { id_result: Id, image_type: Id },
2098 .OpTypeArray => struct { id_result: Id, element_type: Id, length: Id },
2099 .OpTypeRuntimeArray => struct { id_result: Id, element_type: Id },
2100 .OpTypeStruct => struct { id_result: Id, id_ref: []const Id = &.{} },
2101 .OpTypeOpaque => struct { id_result: Id, literal_string: LiteralString },
2102 .OpTypePointer => struct { id_result: Id, storage_class: StorageClass, type: Id },
2103 .OpTypeFunction => struct { id_result: Id, return_type: Id, id_ref_2: []const Id = &.{} },
2104 .OpTypeEvent => struct { id_result: Id },
2105 .OpTypeDeviceEvent => struct { id_result: Id },
2106 .OpTypeReserveId => struct { id_result: Id },
2107 .OpTypeQueue => struct { id_result: Id },
2108 .OpTypePipe => struct { id_result: Id, qualifier: AccessQualifier },
2109 .OpTypeForwardPointer => struct { pointer_type: Id, storage_class: StorageClass },
2110 .OpConstantTrue => struct { id_result_type: Id, id_result: Id },
2111 .OpConstantFalse => struct { id_result_type: Id, id_result: Id },
2112 .OpConstant => struct { id_result_type: Id, id_result: Id, value: LiteralContextDependentNumber },
2113 .OpConstantComposite => struct { id_result_type: Id, id_result: Id, constituents: []const Id = &.{} },
2114 .OpConstantSampler => struct { id_result_type: Id, id_result: Id, sampler_addressing_mode: SamplerAddressingMode, param: LiteralInteger, sampler_filter_mode: SamplerFilterMode },
2115 .OpConstantNull => struct { id_result_type: Id, id_result: Id },
2116 .OpSpecConstantTrue => struct { id_result_type: Id, id_result: Id },
2117 .OpSpecConstantFalse => struct { id_result_type: Id, id_result: Id },
2118 .OpSpecConstant => struct { id_result_type: Id, id_result: Id, value: LiteralContextDependentNumber },
2119 .OpSpecConstantComposite => struct { id_result_type: Id, id_result: Id, constituents: []const Id = &.{} },
2120 .OpSpecConstantOp => struct { id_result_type: Id, id_result: Id, opcode: LiteralSpecConstantOpInteger },
2121 .OpFunction => struct { id_result_type: Id, id_result: Id, function_control: FunctionControl, function_type: Id },
2122 .OpFunctionParameter => struct { id_result_type: Id, id_result: Id },
2123 .OpFunctionEnd => void,
2124 .OpFunctionCall => struct { id_result_type: Id, id_result: Id, function: Id, id_ref_3: []const Id = &.{} },
2125 .OpVariable => struct { id_result_type: Id, id_result: Id, storage_class: StorageClass, initializer: ?Id = null },
2126 .OpImageTexelPointer => struct { id_result_type: Id, id_result: Id, image: Id, coordinate: Id, sample: Id },
2127 .OpLoad => struct { id_result_type: Id, id_result: Id, pointer: Id, memory_access: ?MemoryAccess.Extended = null },
2128 .OpStore => struct { pointer: Id, object: Id, memory_access: ?MemoryAccess.Extended = null },
2129 .OpCopyMemory => struct { target: Id, source: Id, memory_access_2: ?MemoryAccess.Extended = null, memory_access_3: ?MemoryAccess.Extended = null },
2130 .OpCopyMemorySized => struct { target: Id, source: Id, size: Id, memory_access_3: ?MemoryAccess.Extended = null, memory_access_4: ?MemoryAccess.Extended = null },
2131 .OpAccessChain => struct { id_result_type: Id, id_result: Id, base: Id, indexes: []const Id = &.{} },
2132 .OpInBoundsAccessChain => struct { id_result_type: Id, id_result: Id, base: Id, indexes: []const Id = &.{} },
2133 .OpPtrAccessChain => struct { id_result_type: Id, id_result: Id, base: Id, element: Id, indexes: []const Id = &.{} },
2134 .OpArrayLength => struct { id_result_type: Id, id_result: Id, structure: Id, array_member: LiteralInteger },
2135 .OpGenericPtrMemSemantics => struct { id_result_type: Id, id_result: Id, pointer: Id },
2136 .OpInBoundsPtrAccessChain => struct { id_result_type: Id, id_result: Id, base: Id, element: Id, indexes: []const Id = &.{} },
2137 .OpDecorate => struct { target: Id, decoration: Decoration.Extended },
2138 .OpMemberDecorate => struct { structure_type: Id, member: LiteralInteger, decoration: Decoration.Extended },
2139 .OpDecorationGroup => struct { id_result: Id },
2140 .OpGroupDecorate => struct { decoration_group: Id, targets: []const Id = &.{} },
2141 .OpGroupMemberDecorate => struct { decoration_group: Id, targets: []const PairIdRefLiteralInteger = &.{} },
2142 .OpVectorExtractDynamic => struct { id_result_type: Id, id_result: Id, vector: Id, index: Id },
2143 .OpVectorInsertDynamic => struct { id_result_type: Id, id_result: Id, vector: Id, component: Id, index: Id },
2144 .OpVectorShuffle => struct { id_result_type: Id, id_result: Id, vector_1: Id, vector_2: Id, components: []const LiteralInteger = &.{} },
2145 .OpCompositeConstruct => struct { id_result_type: Id, id_result: Id, constituents: []const Id = &.{} },
2146 .OpCompositeExtract => struct { id_result_type: Id, id_result: Id, composite: Id, indexes: []const LiteralInteger = &.{} },
2147 .OpCompositeInsert => struct { id_result_type: Id, id_result: Id, object: Id, composite: Id, indexes: []const LiteralInteger = &.{} },
2148 .OpCopyObject => struct { id_result_type: Id, id_result: Id, operand: Id },
2149 .OpTranspose => struct { id_result_type: Id, id_result: Id, matrix: Id },
2150 .OpSampledImage => struct { id_result_type: Id, id_result: Id, image: Id, sampler: Id },
2151 .OpImageSampleImplicitLod => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, image_operands: ?ImageOperands.Extended = null },
2152 .OpImageSampleExplicitLod => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, image_operands: ImageOperands.Extended },
2153 .OpImageSampleDrefImplicitLod => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, d_ref: Id, image_operands: ?ImageOperands.Extended = null },
2154 .OpImageSampleDrefExplicitLod => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, d_ref: Id, image_operands: ImageOperands.Extended },
2155 .OpImageSampleProjImplicitLod => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, image_operands: ?ImageOperands.Extended = null },
2156 .OpImageSampleProjExplicitLod => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, image_operands: ImageOperands.Extended },
2157 .OpImageSampleProjDrefImplicitLod => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, d_ref: Id, image_operands: ?ImageOperands.Extended = null },
2158 .OpImageSampleProjDrefExplicitLod => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, d_ref: Id, image_operands: ImageOperands.Extended },
2159 .OpImageFetch => struct { id_result_type: Id, id_result: Id, image: Id, coordinate: Id, image_operands: ?ImageOperands.Extended = null },
2160 .OpImageGather => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, component: Id, image_operands: ?ImageOperands.Extended = null },
2161 .OpImageDrefGather => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, d_ref: Id, image_operands: ?ImageOperands.Extended = null },
2162 .OpImageRead => struct { id_result_type: Id, id_result: Id, image: Id, coordinate: Id, image_operands: ?ImageOperands.Extended = null },
2163 .OpImageWrite => struct { image: Id, coordinate: Id, texel: Id, image_operands: ?ImageOperands.Extended = null },
2164 .OpImage => struct { id_result_type: Id, id_result: Id, sampled_image: Id },
2165 .OpImageQueryFormat => struct { id_result_type: Id, id_result: Id, image: Id },
2166 .OpImageQueryOrder => struct { id_result_type: Id, id_result: Id, image: Id },
2167 .OpImageQuerySizeLod => struct { id_result_type: Id, id_result: Id, image: Id, level_of_detail: Id },
2168 .OpImageQuerySize => struct { id_result_type: Id, id_result: Id, image: Id },
2169 .OpImageQueryLod => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id },
2170 .OpImageQueryLevels => struct { id_result_type: Id, id_result: Id, image: Id },
2171 .OpImageQuerySamples => struct { id_result_type: Id, id_result: Id, image: Id },
2172 .OpConvertFToU => struct { id_result_type: Id, id_result: Id, float_value: Id },
2173 .OpConvertFToS => struct { id_result_type: Id, id_result: Id, float_value: Id },
2174 .OpConvertSToF => struct { id_result_type: Id, id_result: Id, signed_value: Id },
2175 .OpConvertUToF => struct { id_result_type: Id, id_result: Id, unsigned_value: Id },
2176 .OpUConvert => struct { id_result_type: Id, id_result: Id, unsigned_value: Id },
2177 .OpSConvert => struct { id_result_type: Id, id_result: Id, signed_value: Id },
2178 .OpFConvert => struct { id_result_type: Id, id_result: Id, float_value: Id },
2179 .OpQuantizeToF16 => struct { id_result_type: Id, id_result: Id, value: Id },
2180 .OpConvertPtrToU => struct { id_result_type: Id, id_result: Id, pointer: Id },
2181 .OpSatConvertSToU => struct { id_result_type: Id, id_result: Id, signed_value: Id },
2182 .OpSatConvertUToS => struct { id_result_type: Id, id_result: Id, unsigned_value: Id },
2183 .OpConvertUToPtr => struct { id_result_type: Id, id_result: Id, integer_value: Id },
2184 .OpPtrCastToGeneric => struct { id_result_type: Id, id_result: Id, pointer: Id },
2185 .OpGenericCastToPtr => struct { id_result_type: Id, id_result: Id, pointer: Id },
2186 .OpGenericCastToPtrExplicit => struct { id_result_type: Id, id_result: Id, pointer: Id, storage: StorageClass },
2187 .OpBitcast => struct { id_result_type: Id, id_result: Id, operand: Id },
2188 .OpSNegate => struct { id_result_type: Id, id_result: Id, operand: Id },
2189 .OpFNegate => struct { id_result_type: Id, id_result: Id, operand: Id },
2190 .OpIAdd => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2191 .OpFAdd => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2192 .OpISub => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2193 .OpFSub => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2194 .OpIMul => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2195 .OpFMul => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2196 .OpUDiv => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2197 .OpSDiv => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2198 .OpFDiv => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2199 .OpUMod => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2200 .OpSRem => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2201 .OpSMod => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2202 .OpFRem => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2203 .OpFMod => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2204 .OpVectorTimesScalar => struct { id_result_type: Id, id_result: Id, vector: Id, scalar: Id },
2205 .OpMatrixTimesScalar => struct { id_result_type: Id, id_result: Id, matrix: Id, scalar: Id },
2206 .OpVectorTimesMatrix => struct { id_result_type: Id, id_result: Id, vector: Id, matrix: Id },
2207 .OpMatrixTimesVector => struct { id_result_type: Id, id_result: Id, matrix: Id, vector: Id },
2208 .OpMatrixTimesMatrix => struct { id_result_type: Id, id_result: Id, left_matrix: Id, right_matrix: Id },
2209 .OpOuterProduct => struct { id_result_type: Id, id_result: Id, vector_1: Id, vector_2: Id },
2210 .OpDot => struct { id_result_type: Id, id_result: Id, vector_1: Id, vector_2: Id },
2211 .OpIAddCarry => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2212 .OpISubBorrow => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2213 .OpUMulExtended => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2214 .OpSMulExtended => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2215 .OpAny => struct { id_result_type: Id, id_result: Id, vector: Id },
2216 .OpAll => struct { id_result_type: Id, id_result: Id, vector: Id },
2217 .OpIsNan => struct { id_result_type: Id, id_result: Id, x: Id },
2218 .OpIsInf => struct { id_result_type: Id, id_result: Id, x: Id },
2219 .OpIsFinite => struct { id_result_type: Id, id_result: Id, x: Id },
2220 .OpIsNormal => struct { id_result_type: Id, id_result: Id, x: Id },
2221 .OpSignBitSet => struct { id_result_type: Id, id_result: Id, x: Id },
2222 .OpLessOrGreater => struct { id_result_type: Id, id_result: Id, x: Id, y: Id },
2223 .OpOrdered => struct { id_result_type: Id, id_result: Id, x: Id, y: Id },
2224 .OpUnordered => struct { id_result_type: Id, id_result: Id, x: Id, y: Id },
2225 .OpLogicalEqual => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2226 .OpLogicalNotEqual => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2227 .OpLogicalOr => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2228 .OpLogicalAnd => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2229 .OpLogicalNot => struct { id_result_type: Id, id_result: Id, operand: Id },
2230 .OpSelect => struct { id_result_type: Id, id_result: Id, condition: Id, object_1: Id, object_2: Id },
2231 .OpIEqual => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2232 .OpINotEqual => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2233 .OpUGreaterThan => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2234 .OpSGreaterThan => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2235 .OpUGreaterThanEqual => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2236 .OpSGreaterThanEqual => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2237 .OpULessThan => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2238 .OpSLessThan => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2239 .OpULessThanEqual => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2240 .OpSLessThanEqual => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2241 .OpFOrdEqual => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2242 .OpFUnordEqual => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2243 .OpFOrdNotEqual => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2244 .OpFUnordNotEqual => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2245 .OpFOrdLessThan => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2246 .OpFUnordLessThan => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2247 .OpFOrdGreaterThan => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2248 .OpFUnordGreaterThan => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2249 .OpFOrdLessThanEqual => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2250 .OpFUnordLessThanEqual => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2251 .OpFOrdGreaterThanEqual => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2252 .OpFUnordGreaterThanEqual => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2253 .OpShiftRightLogical => struct { id_result_type: Id, id_result: Id, base: Id, shift: Id },
2254 .OpShiftRightArithmetic => struct { id_result_type: Id, id_result: Id, base: Id, shift: Id },
2255 .OpShiftLeftLogical => struct { id_result_type: Id, id_result: Id, base: Id, shift: Id },
2256 .OpBitwiseOr => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2257 .OpBitwiseXor => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2258 .OpBitwiseAnd => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2259 .OpNot => struct { id_result_type: Id, id_result: Id, operand: Id },
2260 .OpBitFieldInsert => struct { id_result_type: Id, id_result: Id, base: Id, insert: Id, offset: Id, count: Id },
2261 .OpBitFieldSExtract => struct { id_result_type: Id, id_result: Id, base: Id, offset: Id, count: Id },
2262 .OpBitFieldUExtract => struct { id_result_type: Id, id_result: Id, base: Id, offset: Id, count: Id },
2263 .OpBitReverse => struct { id_result_type: Id, id_result: Id, base: Id },
2264 .OpBitCount => struct { id_result_type: Id, id_result: Id, base: Id },
2265 .OpDPdx => struct { id_result_type: Id, id_result: Id, p: Id },
2266 .OpDPdy => struct { id_result_type: Id, id_result: Id, p: Id },
2267 .OpFwidth => struct { id_result_type: Id, id_result: Id, p: Id },
2268 .OpDPdxFine => struct { id_result_type: Id, id_result: Id, p: Id },
2269 .OpDPdyFine => struct { id_result_type: Id, id_result: Id, p: Id },
2270 .OpFwidthFine => struct { id_result_type: Id, id_result: Id, p: Id },
2271 .OpDPdxCoarse => struct { id_result_type: Id, id_result: Id, p: Id },
2272 .OpDPdyCoarse => struct { id_result_type: Id, id_result: Id, p: Id },
2273 .OpFwidthCoarse => struct { id_result_type: Id, id_result: Id, p: Id },
2274 .OpEmitVertex => void,
2275 .OpEndPrimitive => void,
2276 .OpEmitStreamVertex => struct { stream: Id },
2277 .OpEndStreamPrimitive => struct { stream: Id },
2278 .OpControlBarrier => struct { execution: Id, memory: Id, semantics: Id },
2279 .OpMemoryBarrier => struct { memory: Id, semantics: Id },
2280 .OpAtomicLoad => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, semantics: Id },
2281 .OpAtomicStore => struct { pointer: Id, memory: Id, semantics: Id, value: Id },
2282 .OpAtomicExchange => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, semantics: Id, value: Id },
2283 .OpAtomicCompareExchange => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, equal: Id, unequal: Id, value: Id, comparator: Id },
2284 .OpAtomicCompareExchangeWeak => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, equal: Id, unequal: Id, value: Id, comparator: Id },
2285 .OpAtomicIIncrement => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, semantics: Id },
2286 .OpAtomicIDecrement => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, semantics: Id },
2287 .OpAtomicIAdd => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, semantics: Id, value: Id },
2288 .OpAtomicISub => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, semantics: Id, value: Id },
2289 .OpAtomicSMin => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, semantics: Id, value: Id },
2290 .OpAtomicUMin => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, semantics: Id, value: Id },
2291 .OpAtomicSMax => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, semantics: Id, value: Id },
2292 .OpAtomicUMax => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, semantics: Id, value: Id },
2293 .OpAtomicAnd => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, semantics: Id, value: Id },
2294 .OpAtomicOr => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, semantics: Id, value: Id },
2295 .OpAtomicXor => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, semantics: Id, value: Id },
2296 .OpPhi => struct { id_result_type: Id, id_result: Id, pair_id_ref_id_ref: []const PairIdRefIdRef = &.{} },
2297 .OpLoopMerge => struct { merge_block: Id, continue_target: Id, loop_control: LoopControl.Extended },
2298 .OpSelectionMerge => struct { merge_block: Id, selection_control: SelectionControl },
2299 .OpLabel => struct { id_result: Id },
2300 .OpBranch => struct { target_label: Id },
2301 .OpBranchConditional => struct { condition: Id, true_label: Id, false_label: Id, branch_weights: []const LiteralInteger = &.{} },
2302 .OpSwitch => struct { selector: Id, default: Id, target: []const PairLiteralIntegerIdRef = &.{} },
2303 .OpKill => void,
2304 .OpReturn => void,
2305 .OpReturnValue => struct { value: Id },
2306 .OpUnreachable => void,
2307 .OpLifetimeStart => struct { pointer: Id, size: LiteralInteger },
2308 .OpLifetimeStop => struct { pointer: Id, size: LiteralInteger },
2309 .OpGroupAsyncCopy => struct { id_result_type: Id, id_result: Id, execution: Id, destination: Id, source: Id, num_elements: Id, stride: Id, event: Id },
2310 .OpGroupWaitEvents => struct { execution: Id, num_events: Id, events_list: Id },
2311 .OpGroupAll => struct { id_result_type: Id, id_result: Id, execution: Id, predicate: Id },
2312 .OpGroupAny => struct { id_result_type: Id, id_result: Id, execution: Id, predicate: Id },
2313 .OpGroupBroadcast => struct { id_result_type: Id, id_result: Id, execution: Id, value: Id, local_id: Id },
2314 .OpGroupIAdd => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
2315 .OpGroupFAdd => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
2316 .OpGroupFMin => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
2317 .OpGroupUMin => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
2318 .OpGroupSMin => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
2319 .OpGroupFMax => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
2320 .OpGroupUMax => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
2321 .OpGroupSMax => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
2322 .OpReadPipe => struct { id_result_type: Id, id_result: Id, pipe: Id, pointer: Id, packet_size: Id, packet_alignment: Id },
2323 .OpWritePipe => struct { id_result_type: Id, id_result: Id, pipe: Id, pointer: Id, packet_size: Id, packet_alignment: Id },
2324 .OpReservedReadPipe => struct { id_result_type: Id, id_result: Id, pipe: Id, reserve_id: Id, index: Id, pointer: Id, packet_size: Id, packet_alignment: Id },
2325 .OpReservedWritePipe => struct { id_result_type: Id, id_result: Id, pipe: Id, reserve_id: Id, index: Id, pointer: Id, packet_size: Id, packet_alignment: Id },
2326 .OpReserveReadPipePackets => struct { id_result_type: Id, id_result: Id, pipe: Id, num_packets: Id, packet_size: Id, packet_alignment: Id },
2327 .OpReserveWritePipePackets => struct { id_result_type: Id, id_result: Id, pipe: Id, num_packets: Id, packet_size: Id, packet_alignment: Id },
2328 .OpCommitReadPipe => struct { pipe: Id, reserve_id: Id, packet_size: Id, packet_alignment: Id },
2329 .OpCommitWritePipe => struct { pipe: Id, reserve_id: Id, packet_size: Id, packet_alignment: Id },
2330 .OpIsValidReserveId => struct { id_result_type: Id, id_result: Id, reserve_id: Id },
2331 .OpGetNumPipePackets => struct { id_result_type: Id, id_result: Id, pipe: Id, packet_size: Id, packet_alignment: Id },
2332 .OpGetMaxPipePackets => struct { id_result_type: Id, id_result: Id, pipe: Id, packet_size: Id, packet_alignment: Id },
2333 .OpGroupReserveReadPipePackets => struct { id_result_type: Id, id_result: Id, execution: Id, pipe: Id, num_packets: Id, packet_size: Id, packet_alignment: Id },
2334 .OpGroupReserveWritePipePackets => struct { id_result_type: Id, id_result: Id, execution: Id, pipe: Id, num_packets: Id, packet_size: Id, packet_alignment: Id },
2335 .OpGroupCommitReadPipe => struct { execution: Id, pipe: Id, reserve_id: Id, packet_size: Id, packet_alignment: Id },
2336 .OpGroupCommitWritePipe => struct { execution: Id, pipe: Id, reserve_id: Id, packet_size: Id, packet_alignment: Id },
2337 .OpEnqueueMarker => struct { id_result_type: Id, id_result: Id, queue: Id, num_events: Id, wait_events: Id, ret_event: Id },
2338 .OpEnqueueKernel => struct { id_result_type: Id, id_result: Id, queue: Id, flags: Id, nd_range: Id, num_events: Id, wait_events: Id, ret_event: Id, invoke: Id, param: Id, param_size: Id, param_align: Id, local_size: []const Id = &.{} },
2339 .OpGetKernelNDrangeSubGroupCount => struct { id_result_type: Id, id_result: Id, nd_range: Id, invoke: Id, param: Id, param_size: Id, param_align: Id },
2340 .OpGetKernelNDrangeMaxSubGroupSize => struct { id_result_type: Id, id_result: Id, nd_range: Id, invoke: Id, param: Id, param_size: Id, param_align: Id },
2341 .OpGetKernelWorkGroupSize => struct { id_result_type: Id, id_result: Id, invoke: Id, param: Id, param_size: Id, param_align: Id },
2342 .OpGetKernelPreferredWorkGroupSizeMultiple => struct { id_result_type: Id, id_result: Id, invoke: Id, param: Id, param_size: Id, param_align: Id },
2343 .OpRetainEvent => struct { event: Id },
2344 .OpReleaseEvent => struct { event: Id },
2345 .OpCreateUserEvent => struct { id_result_type: Id, id_result: Id },
2346 .OpIsValidEvent => struct { id_result_type: Id, id_result: Id, event: Id },
2347 .OpSetUserEventStatus => struct { event: Id, status: Id },
2348 .OpCaptureEventProfilingInfo => struct { event: Id, profiling_info: Id, value: Id },
2349 .OpGetDefaultQueue => struct { id_result_type: Id, id_result: Id },
2350 .OpBuildNDRange => struct { id_result_type: Id, id_result: Id, global_work_size: Id, local_work_size: Id, global_work_offset: Id },
2351 .OpImageSparseSampleImplicitLod => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, image_operands: ?ImageOperands.Extended = null },
2352 .OpImageSparseSampleExplicitLod => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, image_operands: ImageOperands.Extended },
2353 .OpImageSparseSampleDrefImplicitLod => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, d_ref: Id, image_operands: ?ImageOperands.Extended = null },
2354 .OpImageSparseSampleDrefExplicitLod => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, d_ref: Id, image_operands: ImageOperands.Extended },
2355 .OpImageSparseSampleProjImplicitLod => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, image_operands: ?ImageOperands.Extended = null },
2356 .OpImageSparseSampleProjExplicitLod => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, image_operands: ImageOperands.Extended },
2357 .OpImageSparseSampleProjDrefImplicitLod => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, d_ref: Id, image_operands: ?ImageOperands.Extended = null },
2358 .OpImageSparseSampleProjDrefExplicitLod => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, d_ref: Id, image_operands: ImageOperands.Extended },
2359 .OpImageSparseFetch => struct { id_result_type: Id, id_result: Id, image: Id, coordinate: Id, image_operands: ?ImageOperands.Extended = null },
2360 .OpImageSparseGather => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, component: Id, image_operands: ?ImageOperands.Extended = null },
2361 .OpImageSparseDrefGather => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, d_ref: Id, image_operands: ?ImageOperands.Extended = null },
2362 .OpImageSparseTexelsResident => struct { id_result_type: Id, id_result: Id, resident_code: Id },
2363 .OpNoLine => void,
2364 .OpAtomicFlagTestAndSet => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, semantics: Id },
2365 .OpAtomicFlagClear => struct { pointer: Id, memory: Id, semantics: Id },
2366 .OpImageSparseRead => struct { id_result_type: Id, id_result: Id, image: Id, coordinate: Id, image_operands: ?ImageOperands.Extended = null },
2367 .OpSizeOf => struct { id_result_type: Id, id_result: Id, pointer: Id },
2368 .OpTypePipeStorage => struct { id_result: Id },
2369 .OpConstantPipeStorage => struct { id_result_type: Id, id_result: Id, packet_size: LiteralInteger, packet_alignment: LiteralInteger, capacity: LiteralInteger },
2370 .OpCreatePipeFromPipeStorage => struct { id_result_type: Id, id_result: Id, pipe_storage: Id },
2371 .OpGetKernelLocalSizeForSubgroupCount => struct { id_result_type: Id, id_result: Id, subgroup_count: Id, invoke: Id, param: Id, param_size: Id, param_align: Id },
2372 .OpGetKernelMaxNumSubgroups => struct { id_result_type: Id, id_result: Id, invoke: Id, param: Id, param_size: Id, param_align: Id },
2373 .OpTypeNamedBarrier => struct { id_result: Id },
2374 .OpNamedBarrierInitialize => struct { id_result_type: Id, id_result: Id, subgroup_count: Id },
2375 .OpMemoryNamedBarrier => struct { named_barrier: Id, memory: Id, semantics: Id },
2376 .OpModuleProcessed => struct { process: LiteralString },
2377 .OpExecutionModeId => struct { entry_point: Id, mode: ExecutionMode.Extended },
2378 .OpDecorateId => struct { target: Id, decoration: Decoration.Extended },
2379 .OpGroupNonUniformElect => struct { id_result_type: Id, id_result: Id, execution: Id },
2380 .OpGroupNonUniformAll => struct { id_result_type: Id, id_result: Id, execution: Id, predicate: Id },
2381 .OpGroupNonUniformAny => struct { id_result_type: Id, id_result: Id, execution: Id, predicate: Id },
2382 .OpGroupNonUniformAllEqual => struct { id_result_type: Id, id_result: Id, execution: Id, value: Id },
2383 .OpGroupNonUniformBroadcast => struct { id_result_type: Id, id_result: Id, execution: Id, value: Id, id: Id },
2384 .OpGroupNonUniformBroadcastFirst => struct { id_result_type: Id, id_result: Id, execution: Id, value: Id },
2385 .OpGroupNonUniformBallot => struct { id_result_type: Id, id_result: Id, execution: Id, predicate: Id },
2386 .OpGroupNonUniformInverseBallot => struct { id_result_type: Id, id_result: Id, execution: Id, value: Id },
2387 .OpGroupNonUniformBallotBitExtract => struct { id_result_type: Id, id_result: Id, execution: Id, value: Id, index: Id },
2388 .OpGroupNonUniformBallotBitCount => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, value: Id },
2389 .OpGroupNonUniformBallotFindLSB => struct { id_result_type: Id, id_result: Id, execution: Id, value: Id },
2390 .OpGroupNonUniformBallotFindMSB => struct { id_result_type: Id, id_result: Id, execution: Id, value: Id },
2391 .OpGroupNonUniformShuffle => struct { id_result_type: Id, id_result: Id, execution: Id, value: Id, id: Id },
2392 .OpGroupNonUniformShuffleXor => struct { id_result_type: Id, id_result: Id, execution: Id, value: Id, mask: Id },
2393 .OpGroupNonUniformShuffleUp => struct { id_result_type: Id, id_result: Id, execution: Id, value: Id, delta: Id },
2394 .OpGroupNonUniformShuffleDown => struct { id_result_type: Id, id_result: Id, execution: Id, value: Id, delta: Id },
2395 .OpGroupNonUniformIAdd => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, value: Id, cluster_size: ?Id = null },
2396 .OpGroupNonUniformFAdd => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, value: Id, cluster_size: ?Id = null },
2397 .OpGroupNonUniformIMul => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, value: Id, cluster_size: ?Id = null },
2398 .OpGroupNonUniformFMul => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, value: Id, cluster_size: ?Id = null },
2399 .OpGroupNonUniformSMin => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, value: Id, cluster_size: ?Id = null },
2400 .OpGroupNonUniformUMin => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, value: Id, cluster_size: ?Id = null },
2401 .OpGroupNonUniformFMin => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, value: Id, cluster_size: ?Id = null },
2402 .OpGroupNonUniformSMax => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, value: Id, cluster_size: ?Id = null },
2403 .OpGroupNonUniformUMax => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, value: Id, cluster_size: ?Id = null },
2404 .OpGroupNonUniformFMax => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, value: Id, cluster_size: ?Id = null },
2405 .OpGroupNonUniformBitwiseAnd => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, value: Id, cluster_size: ?Id = null },
2406 .OpGroupNonUniformBitwiseOr => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, value: Id, cluster_size: ?Id = null },
2407 .OpGroupNonUniformBitwiseXor => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, value: Id, cluster_size: ?Id = null },
2408 .OpGroupNonUniformLogicalAnd => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, value: Id, cluster_size: ?Id = null },
2409 .OpGroupNonUniformLogicalOr => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, value: Id, cluster_size: ?Id = null },
2410 .OpGroupNonUniformLogicalXor => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, value: Id, cluster_size: ?Id = null },
2411 .OpGroupNonUniformQuadBroadcast => struct { id_result_type: Id, id_result: Id, execution: Id, value: Id, index: Id },
2412 .OpGroupNonUniformQuadSwap => struct { id_result_type: Id, id_result: Id, execution: Id, value: Id, direction: Id },
2413 .OpCopyLogical => struct { id_result_type: Id, id_result: Id, operand: Id },
2414 .OpPtrEqual => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2415 .OpPtrNotEqual => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2416 .OpPtrDiff => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2417 .OpColorAttachmentReadEXT => struct { id_result_type: Id, id_result: Id, attachment: Id, sample: ?Id = null },
2418 .OpDepthAttachmentReadEXT => struct { id_result_type: Id, id_result: Id, sample: ?Id = null },
2419 .OpStencilAttachmentReadEXT => struct { id_result_type: Id, id_result: Id, sample: ?Id = null },
2420 .OpTypeTensorARM => struct { id_result: Id, element_type: Id, rank: ?Id = null, shape: ?Id = null },
2421 .OpTensorReadARM => struct { id_result_type: Id, id_result: Id, tensor: Id, coordinates: Id, tensor_operands: ?TensorOperands.Extended = null },
2422 .OpTensorWriteARM => struct { tensor: Id, coordinates: Id, object: Id, tensor_operands: ?TensorOperands.Extended = null },
2423 .OpTensorQuerySizeARM => struct { id_result_type: Id, id_result: Id, tensor: Id, dimension: Id },
2424 .OpGraphConstantARM => struct { id_result_type: Id, id_result: Id, graph_constant_id: LiteralInteger },
2425 .OpGraphEntryPointARM => struct { graph: Id, name: LiteralString, interface: []const Id = &.{} },
2426 .OpGraphARM => struct { id_result_type: Id, id_result: Id },
2427 .OpGraphInputARM => struct { id_result_type: Id, id_result: Id, input_index: Id, element_index: []const Id = &.{} },
2428 .OpGraphSetOutputARM => struct { value: Id, output_index: Id, element_index: []const Id = &.{} },
2429 .OpGraphEndARM => void,
2430 .OpTypeGraphARM => struct { id_result: Id, num_inputs: LiteralInteger, in_out_types: []const Id = &.{} },
2431 .OpTerminateInvocation => void,
2432 .OpTypeUntypedPointerKHR => struct { id_result: Id, storage_class: StorageClass },
2433 .OpUntypedVariableKHR => struct { id_result_type: Id, id_result: Id, storage_class: StorageClass, data_type: ?Id = null, initializer: ?Id = null },
2434 .OpUntypedAccessChainKHR => struct { id_result_type: Id, id_result: Id, base_type: Id, base: Id, indexes: []const Id = &.{} },
2435 .OpUntypedInBoundsAccessChainKHR => struct { id_result_type: Id, id_result: Id, base_type: Id, base: Id, indexes: []const Id = &.{} },
2436 .OpSubgroupBallotKHR => struct { id_result_type: Id, id_result: Id, predicate: Id },
2437 .OpSubgroupFirstInvocationKHR => struct { id_result_type: Id, id_result: Id, value: Id },
2438 .OpUntypedPtrAccessChainKHR => struct { id_result_type: Id, id_result: Id, base_type: Id, base: Id, element: Id, indexes: []const Id = &.{} },
2439 .OpUntypedInBoundsPtrAccessChainKHR => struct { id_result_type: Id, id_result: Id, base_type: Id, base: Id, element: Id, indexes: []const Id = &.{} },
2440 .OpUntypedArrayLengthKHR => struct { id_result_type: Id, id_result: Id, structure: Id, pointer: Id, array_member: LiteralInteger },
2441 .OpUntypedPrefetchKHR => struct { pointer_type: Id, num_bytes: Id, rw: ?Id = null, locality: ?Id = null, cache_type: ?Id = null },
2442 .OpSubgroupAllKHR => struct { id_result_type: Id, id_result: Id, predicate: Id },
2443 .OpSubgroupAnyKHR => struct { id_result_type: Id, id_result: Id, predicate: Id },
2444 .OpSubgroupAllEqualKHR => struct { id_result_type: Id, id_result: Id, predicate: Id },
2445 .OpGroupNonUniformRotateKHR => struct { id_result_type: Id, id_result: Id, execution: Id, value: Id, delta: Id, cluster_size: ?Id = null },
2446 .OpSubgroupReadInvocationKHR => struct { id_result_type: Id, id_result: Id, value: Id, index: Id },
2447 .OpExtInstWithForwardRefsKHR => struct { id_result_type: Id, id_result: Id, set: Id, instruction: LiteralExtInstInteger, id_ref_4: []const Id = &.{} },
2448 .OpTraceRayKHR => struct { accel: Id, ray_flags: Id, cull_mask: Id, sbt_offset: Id, sbt_stride: Id, miss_index: Id, ray_origin: Id, ray_tmin: Id, ray_direction: Id, ray_tmax: Id, payload: Id },
2449 .OpExecuteCallableKHR => struct { sbt_index: Id, callable_data: Id },
2450 .OpConvertUToAccelerationStructureKHR => struct { id_result_type: Id, id_result: Id, accel: Id },
2451 .OpIgnoreIntersectionKHR => void,
2452 .OpTerminateRayKHR => void,
2453 .OpSDot => struct { id_result_type: Id, id_result: Id, vector_1: Id, vector_2: Id, packed_vector_format: ?PackedVectorFormat = null },
2454 .OpUDot => struct { id_result_type: Id, id_result: Id, vector_1: Id, vector_2: Id, packed_vector_format: ?PackedVectorFormat = null },
2455 .OpSUDot => struct { id_result_type: Id, id_result: Id, vector_1: Id, vector_2: Id, packed_vector_format: ?PackedVectorFormat = null },
2456 .OpSDotAccSat => struct { id_result_type: Id, id_result: Id, vector_1: Id, vector_2: Id, accumulator: Id, packed_vector_format: ?PackedVectorFormat = null },
2457 .OpUDotAccSat => struct { id_result_type: Id, id_result: Id, vector_1: Id, vector_2: Id, accumulator: Id, packed_vector_format: ?PackedVectorFormat = null },
2458 .OpSUDotAccSat => struct { id_result_type: Id, id_result: Id, vector_1: Id, vector_2: Id, accumulator: Id, packed_vector_format: ?PackedVectorFormat = null },
2459 .OpTypeCooperativeMatrixKHR => struct { id_result: Id, component_type: Id, scope: Id, rows: Id, columns: Id, use: Id },
2460 .OpCooperativeMatrixLoadKHR => struct { id_result_type: Id, id_result: Id, pointer: Id, memory_layout: Id, stride: ?Id = null, memory_operand: ?MemoryAccess.Extended = null },
2461 .OpCooperativeMatrixStoreKHR => struct { pointer: Id, object: Id, memory_layout: Id, stride: ?Id = null, memory_operand: ?MemoryAccess.Extended = null },
2462 .OpCooperativeMatrixMulAddKHR => struct { id_result_type: Id, id_result: Id, a: Id, b: Id, c: Id, cooperative_matrix_operands: ?CooperativeMatrixOperands = null },
2463 .OpCooperativeMatrixLengthKHR => struct { id_result_type: Id, id_result: Id, type: Id },
2464 .OpConstantCompositeReplicateEXT => struct { id_result_type: Id, id_result: Id, value: Id },
2465 .OpSpecConstantCompositeReplicateEXT => struct { id_result_type: Id, id_result: Id, value: Id },
2466 .OpCompositeConstructReplicateEXT => struct { id_result_type: Id, id_result: Id, value: Id },
2467 .OpTypeRayQueryKHR => struct { id_result: Id },
2468 .OpRayQueryInitializeKHR => struct { ray_query: Id, accel: Id, ray_flags: Id, cull_mask: Id, ray_origin: Id, ray_t_min: Id, ray_direction: Id, ray_t_max: Id },
2469 .OpRayQueryTerminateKHR => struct { ray_query: Id },
2470 .OpRayQueryGenerateIntersectionKHR => struct { ray_query: Id, hit_t: Id },
2471 .OpRayQueryConfirmIntersectionKHR => struct { ray_query: Id },
2472 .OpRayQueryProceedKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id },
2473 .OpRayQueryGetIntersectionTypeKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id },
2474 .OpImageSampleWeightedQCOM => struct { id_result_type: Id, id_result: Id, texture: Id, coordinates: Id, weights: Id },
2475 .OpImageBoxFilterQCOM => struct { id_result_type: Id, id_result: Id, texture: Id, coordinates: Id, box_size: Id },
2476 .OpImageBlockMatchSSDQCOM => struct { id_result_type: Id, id_result: Id, target: Id, target_coordinates: Id, reference: Id, reference_coordinates: Id, block_size: Id },
2477 .OpImageBlockMatchSADQCOM => struct { id_result_type: Id, id_result: Id, target: Id, target_coordinates: Id, reference: Id, reference_coordinates: Id, block_size: Id },
2478 .OpImageBlockMatchWindowSSDQCOM => struct { id_result_type: Id, id_result: Id, target_sampled_image: Id, target_coordinates: Id, reference_sampled_image: Id, reference_coordinates: Id, block_size: Id },
2479 .OpImageBlockMatchWindowSADQCOM => struct { id_result_type: Id, id_result: Id, target_sampled_image: Id, target_coordinates: Id, reference_sampled_image: Id, reference_coordinates: Id, block_size: Id },
2480 .OpImageBlockMatchGatherSSDQCOM => struct { id_result_type: Id, id_result: Id, target_sampled_image: Id, target_coordinates: Id, reference_sampled_image: Id, reference_coordinates: Id, block_size: Id },
2481 .OpImageBlockMatchGatherSADQCOM => struct { id_result_type: Id, id_result: Id, target_sampled_image: Id, target_coordinates: Id, reference_sampled_image: Id, reference_coordinates: Id, block_size: Id },
2482 .OpGroupIAddNonUniformAMD => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
2483 .OpGroupFAddNonUniformAMD => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
2484 .OpGroupFMinNonUniformAMD => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
2485 .OpGroupUMinNonUniformAMD => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
2486 .OpGroupSMinNonUniformAMD => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
2487 .OpGroupFMaxNonUniformAMD => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
2488 .OpGroupUMaxNonUniformAMD => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
2489 .OpGroupSMaxNonUniformAMD => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
2490 .OpFragmentMaskFetchAMD => struct { id_result_type: Id, id_result: Id, image: Id, coordinate: Id },
2491 .OpFragmentFetchAMD => struct { id_result_type: Id, id_result: Id, image: Id, coordinate: Id, fragment_index: Id },
2492 .OpReadClockKHR => struct { id_result_type: Id, id_result: Id, scope: Id },
2493 .OpAllocateNodePayloadsAMDX => struct { id_result_type: Id, id_result: Id, visibility: Id, payload_count: Id, node_index: Id },
2494 .OpEnqueueNodePayloadsAMDX => struct { payload_array: Id },
2495 .OpTypeNodePayloadArrayAMDX => struct { id_result: Id, payload_type: Id },
2496 .OpFinishWritingNodePayloadAMDX => struct { id_result_type: Id, id_result: Id, payload: Id },
2497 .OpNodePayloadArrayLengthAMDX => struct { id_result_type: Id, id_result: Id, payload_array: Id },
2498 .OpIsNodePayloadValidAMDX => struct { id_result_type: Id, id_result: Id, payload_type: Id, node_index: Id },
2499 .OpConstantStringAMDX => struct { id_result: Id, literal_string: LiteralString },
2500 .OpSpecConstantStringAMDX => struct { id_result: Id, literal_string: LiteralString },
2501 .OpGroupNonUniformQuadAllKHR => struct { id_result_type: Id, id_result: Id, predicate: Id },
2502 .OpGroupNonUniformQuadAnyKHR => struct { id_result_type: Id, id_result: Id, predicate: Id },
2503 .OpHitObjectRecordHitMotionNV => struct { hit_object: Id, acceleration_structure: Id, instance_id: Id, primitive_id: Id, geometry_index: Id, hit_kind: Id, sbt_record_offset: Id, sbt_record_stride: Id, origin: Id, t_min: Id, direction: Id, t_max: Id, current_time: Id, hit_object_attributes: Id },
2504 .OpHitObjectRecordHitWithIndexMotionNV => struct { hit_object: Id, acceleration_structure: Id, instance_id: Id, primitive_id: Id, geometry_index: Id, hit_kind: Id, sbt_record_index: Id, origin: Id, t_min: Id, direction: Id, t_max: Id, current_time: Id, hit_object_attributes: Id },
2505 .OpHitObjectRecordMissMotionNV => struct { hit_object: Id, sbt_index: Id, origin: Id, t_min: Id, direction: Id, t_max: Id, current_time: Id },
2506 .OpHitObjectGetWorldToObjectNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2507 .OpHitObjectGetObjectToWorldNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2508 .OpHitObjectGetObjectRayDirectionNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2509 .OpHitObjectGetObjectRayOriginNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2510 .OpHitObjectTraceRayMotionNV => struct { hit_object: Id, acceleration_structure: Id, ray_flags: Id, cullmask: Id, sbt_record_offset: Id, sbt_record_stride: Id, miss_index: Id, origin: Id, t_min: Id, direction: Id, t_max: Id, time: Id, payload: Id },
2511 .OpHitObjectGetShaderRecordBufferHandleNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2512 .OpHitObjectGetShaderBindingTableRecordIndexNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2513 .OpHitObjectRecordEmptyNV => struct { hit_object: Id },
2514 .OpHitObjectTraceRayNV => struct { hit_object: Id, acceleration_structure: Id, ray_flags: Id, cullmask: Id, sbt_record_offset: Id, sbt_record_stride: Id, miss_index: Id, origin: Id, t_min: Id, direction: Id, t_max: Id, payload: Id },
2515 .OpHitObjectRecordHitNV => struct { hit_object: Id, acceleration_structure: Id, instance_id: Id, primitive_id: Id, geometry_index: Id, hit_kind: Id, sbt_record_offset: Id, sbt_record_stride: Id, origin: Id, t_min: Id, direction: Id, t_max: Id, hit_object_attributes: Id },
2516 .OpHitObjectRecordHitWithIndexNV => struct { hit_object: Id, acceleration_structure: Id, instance_id: Id, primitive_id: Id, geometry_index: Id, hit_kind: Id, sbt_record_index: Id, origin: Id, t_min: Id, direction: Id, t_max: Id, hit_object_attributes: Id },
2517 .OpHitObjectRecordMissNV => struct { hit_object: Id, sbt_index: Id, origin: Id, t_min: Id, direction: Id, t_max: Id },
2518 .OpHitObjectExecuteShaderNV => struct { hit_object: Id, payload: Id },
2519 .OpHitObjectGetCurrentTimeNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2520 .OpHitObjectGetAttributesNV => struct { hit_object: Id, hit_object_attribute: Id },
2521 .OpHitObjectGetHitKindNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2522 .OpHitObjectGetPrimitiveIndexNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2523 .OpHitObjectGetGeometryIndexNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2524 .OpHitObjectGetInstanceIdNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2525 .OpHitObjectGetInstanceCustomIndexNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2526 .OpHitObjectGetWorldRayDirectionNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2527 .OpHitObjectGetWorldRayOriginNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2528 .OpHitObjectGetRayTMaxNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2529 .OpHitObjectGetRayTMinNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2530 .OpHitObjectIsEmptyNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2531 .OpHitObjectIsHitNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2532 .OpHitObjectIsMissNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2533 .OpReorderThreadWithHitObjectNV => struct { hit_object: Id, hint: ?Id = null, bits: ?Id = null },
2534 .OpReorderThreadWithHintNV => struct { hint: Id, bits: Id },
2535 .OpTypeHitObjectNV => struct { id_result: Id },
2536 .OpImageSampleFootprintNV => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, granularity: Id, coarse: Id, image_operands: ?ImageOperands.Extended = null },
2537 .OpTypeCooperativeVectorNV => struct { id_result: Id, component_type: Id, component_count: Id },
2538 .OpCooperativeVectorMatrixMulNV => struct { id_result_type: Id, id_result: Id, input: Id, input_interpretation: Id, matrix: Id, matrix_offset: Id, matrix_interpretation: Id, m: Id, k: Id, memory_layout: Id, transpose: Id, matrix_stride: ?Id = null, cooperative_matrix_operands: ?CooperativeMatrixOperands = null },
2539 .OpCooperativeVectorOuterProductAccumulateNV => struct { pointer: Id, offset: Id, a: Id, b: Id, memory_layout: Id, matrix_interpretation: Id, matrix_stride: ?Id = null },
2540 .OpCooperativeVectorReduceSumAccumulateNV => struct { pointer: Id, offset: Id, v: Id },
2541 .OpCooperativeVectorMatrixMulAddNV => struct { id_result_type: Id, id_result: Id, input: Id, input_interpretation: Id, matrix: Id, matrix_offset: Id, matrix_interpretation: Id, bias: Id, bias_offset: Id, bias_interpretation: Id, m: Id, k: Id, memory_layout: Id, transpose: Id, matrix_stride: ?Id = null, cooperative_matrix_operands: ?CooperativeMatrixOperands = null },
2542 .OpCooperativeMatrixConvertNV => struct { id_result_type: Id, id_result: Id, matrix: Id },
2543 .OpEmitMeshTasksEXT => struct { group_count_x: Id, group_count_y: Id, group_count_z: Id, payload: ?Id = null },
2544 .OpSetMeshOutputsEXT => struct { vertex_count: Id, primitive_count: Id },
2545 .OpGroupNonUniformPartitionNV => struct { id_result_type: Id, id_result: Id, value: Id },
2546 .OpWritePackedPrimitiveIndices4x8NV => struct { index_offset: Id, packed_indices: Id },
2547 .OpFetchMicroTriangleVertexPositionNV => struct { id_result_type: Id, id_result: Id, accel: Id, instance_id: Id, geometry_index: Id, primitive_index: Id, barycentric: Id },
2548 .OpFetchMicroTriangleVertexBarycentricNV => struct { id_result_type: Id, id_result: Id, accel: Id, instance_id: Id, geometry_index: Id, primitive_index: Id, barycentric: Id },
2549 .OpCooperativeVectorLoadNV => struct { id_result_type: Id, id_result: Id, pointer: Id, offset: Id, memory_access: ?MemoryAccess.Extended = null },
2550 .OpCooperativeVectorStoreNV => struct { pointer: Id, offset: Id, object: Id, memory_access: ?MemoryAccess.Extended = null },
2551 .OpReportIntersectionKHR => struct { id_result_type: Id, id_result: Id, hit: Id, hit_kind: Id },
2552 .OpIgnoreIntersectionNV => void,
2553 .OpTerminateRayNV => void,
2554 .OpTraceNV => struct { accel: Id, ray_flags: Id, cull_mask: Id, sbt_offset: Id, sbt_stride: Id, miss_index: Id, ray_origin: Id, ray_tmin: Id, ray_direction: Id, ray_tmax: Id, payload_id: Id },
2555 .OpTraceMotionNV => struct { accel: Id, ray_flags: Id, cull_mask: Id, sbt_offset: Id, sbt_stride: Id, miss_index: Id, ray_origin: Id, ray_tmin: Id, ray_direction: Id, ray_tmax: Id, time: Id, payload_id: Id },
2556 .OpTraceRayMotionNV => struct { accel: Id, ray_flags: Id, cull_mask: Id, sbt_offset: Id, sbt_stride: Id, miss_index: Id, ray_origin: Id, ray_tmin: Id, ray_direction: Id, ray_tmax: Id, time: Id, payload: Id },
2557 .OpRayQueryGetIntersectionTriangleVertexPositionsKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id },
2558 .OpTypeAccelerationStructureKHR => struct { id_result: Id },
2559 .OpExecuteCallableNV => struct { sbt_index: Id, callable_data_id: Id },
2560 .OpRayQueryGetClusterIdNV => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id },
2561 .OpHitObjectGetClusterIdNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2562 .OpTypeCooperativeMatrixNV => struct { id_result: Id, component_type: Id, execution: Id, rows: Id, columns: Id },
2563 .OpCooperativeMatrixLoadNV => struct { id_result_type: Id, id_result: Id, pointer: Id, stride: Id, column_major: Id, memory_access: ?MemoryAccess.Extended = null },
2564 .OpCooperativeMatrixStoreNV => struct { pointer: Id, object: Id, stride: Id, column_major: Id, memory_access: ?MemoryAccess.Extended = null },
2565 .OpCooperativeMatrixMulAddNV => struct { id_result_type: Id, id_result: Id, a: Id, b: Id, c: Id },
2566 .OpCooperativeMatrixLengthNV => struct { id_result_type: Id, id_result: Id, type: Id },
2567 .OpBeginInvocationInterlockEXT => void,
2568 .OpEndInvocationInterlockEXT => void,
2569 .OpCooperativeMatrixReduceNV => struct { id_result_type: Id, id_result: Id, matrix: Id, reduce: CooperativeMatrixReduce, combine_func: Id },
2570 .OpCooperativeMatrixLoadTensorNV => struct { id_result_type: Id, id_result: Id, pointer: Id, object: Id, tensor_layout: Id, memory_operand: MemoryAccess.Extended, tensor_addressing_operands: TensorAddressingOperands.Extended },
2571 .OpCooperativeMatrixStoreTensorNV => struct { pointer: Id, object: Id, tensor_layout: Id, memory_operand: MemoryAccess.Extended, tensor_addressing_operands: TensorAddressingOperands.Extended },
2572 .OpCooperativeMatrixPerElementOpNV => struct { id_result_type: Id, id_result: Id, matrix: Id, func: Id, operands: []const Id = &.{} },
2573 .OpTypeTensorLayoutNV => struct { id_result: Id, dim: Id, clamp_mode: Id },
2574 .OpTypeTensorViewNV => struct { id_result: Id, dim: Id, has_dimensions: Id, p: []const Id = &.{} },
2575 .OpCreateTensorLayoutNV => struct { id_result_type: Id, id_result: Id },
2576 .OpTensorLayoutSetDimensionNV => struct { id_result_type: Id, id_result: Id, tensor_layout: Id, dim: []const Id = &.{} },
2577 .OpTensorLayoutSetStrideNV => struct { id_result_type: Id, id_result: Id, tensor_layout: Id, stride: []const Id = &.{} },
2578 .OpTensorLayoutSliceNV => struct { id_result_type: Id, id_result: Id, tensor_layout: Id, operands: []const Id = &.{} },
2579 .OpTensorLayoutSetClampValueNV => struct { id_result_type: Id, id_result: Id, tensor_layout: Id, value: Id },
2580 .OpCreateTensorViewNV => struct { id_result_type: Id, id_result: Id },
2581 .OpTensorViewSetDimensionNV => struct { id_result_type: Id, id_result: Id, tensor_view: Id, dim: []const Id = &.{} },
2582 .OpTensorViewSetStrideNV => struct { id_result_type: Id, id_result: Id, tensor_view: Id, stride: []const Id = &.{} },
2583 .OpDemoteToHelperInvocation => void,
2584 .OpIsHelperInvocationEXT => struct { id_result_type: Id, id_result: Id },
2585 .OpTensorViewSetClipNV => struct { id_result_type: Id, id_result: Id, tensor_view: Id, clip_row_offset: Id, clip_row_span: Id, clip_col_offset: Id, clip_col_span: Id },
2586 .OpTensorLayoutSetBlockSizeNV => struct { id_result_type: Id, id_result: Id, tensor_layout: Id, block_size: []const Id = &.{} },
2587 .OpCooperativeMatrixTransposeNV => struct { id_result_type: Id, id_result: Id, matrix: Id },
2588 .OpConvertUToImageNV => struct { id_result_type: Id, id_result: Id, operand: Id },
2589 .OpConvertUToSamplerNV => struct { id_result_type: Id, id_result: Id, operand: Id },
2590 .OpConvertImageToUNV => struct { id_result_type: Id, id_result: Id, operand: Id },
2591 .OpConvertSamplerToUNV => struct { id_result_type: Id, id_result: Id, operand: Id },
2592 .OpConvertUToSampledImageNV => struct { id_result_type: Id, id_result: Id, operand: Id },
2593 .OpConvertSampledImageToUNV => struct { id_result_type: Id, id_result: Id, operand: Id },
2594 .OpSamplerImageAddressingModeNV => struct { bit_width: LiteralInteger },
2595 .OpRawAccessChainNV => struct { id_result_type: Id, id_result: Id, base: Id, byte_stride: Id, element_index: Id, byte_offset: Id, raw_access_chain_operands: ?RawAccessChainOperands = null },
2596 .OpRayQueryGetIntersectionSpherePositionNV => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id },
2597 .OpRayQueryGetIntersectionSphereRadiusNV => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id },
2598 .OpRayQueryGetIntersectionLSSPositionsNV => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id },
2599 .OpRayQueryGetIntersectionLSSRadiiNV => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id },
2600 .OpRayQueryGetIntersectionLSSHitValueNV => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id },
2601 .OpHitObjectGetSpherePositionNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2602 .OpHitObjectGetSphereRadiusNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2603 .OpHitObjectGetLSSPositionsNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2604 .OpHitObjectGetLSSRadiiNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2605 .OpHitObjectIsSphereHitNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2606 .OpHitObjectIsLSSHitNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2607 .OpRayQueryIsSphereHitNV => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id },
2608 .OpRayQueryIsLSSHitNV => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id },
2609 .OpSubgroupShuffleINTEL => struct { id_result_type: Id, id_result: Id, data: Id, invocation_id: Id },
2610 .OpSubgroupShuffleDownINTEL => struct { id_result_type: Id, id_result: Id, current: Id, next: Id, delta: Id },
2611 .OpSubgroupShuffleUpINTEL => struct { id_result_type: Id, id_result: Id, previous: Id, current: Id, delta: Id },
2612 .OpSubgroupShuffleXorINTEL => struct { id_result_type: Id, id_result: Id, data: Id, value: Id },
2613 .OpSubgroupBlockReadINTEL => struct { id_result_type: Id, id_result: Id, ptr: Id },
2614 .OpSubgroupBlockWriteINTEL => struct { ptr: Id, data: Id },
2615 .OpSubgroupImageBlockReadINTEL => struct { id_result_type: Id, id_result: Id, image: Id, coordinate: Id },
2616 .OpSubgroupImageBlockWriteINTEL => struct { image: Id, coordinate: Id, data: Id },
2617 .OpSubgroupImageMediaBlockReadINTEL => struct { id_result_type: Id, id_result: Id, image: Id, coordinate: Id, width: Id, height: Id },
2618 .OpSubgroupImageMediaBlockWriteINTEL => struct { image: Id, coordinate: Id, width: Id, height: Id, data: Id },
2619 .OpUCountLeadingZerosINTEL => struct { id_result_type: Id, id_result: Id, operand: Id },
2620 .OpUCountTrailingZerosINTEL => struct { id_result_type: Id, id_result: Id, operand: Id },
2621 .OpAbsISubINTEL => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2622 .OpAbsUSubINTEL => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2623 .OpIAddSatINTEL => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2624 .OpUAddSatINTEL => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2625 .OpIAverageINTEL => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2626 .OpUAverageINTEL => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2627 .OpIAverageRoundedINTEL => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2628 .OpUAverageRoundedINTEL => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2629 .OpISubSatINTEL => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2630 .OpUSubSatINTEL => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2631 .OpIMul32x16INTEL => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2632 .OpUMul32x16INTEL => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2633 .OpAtomicFMinEXT => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, semantics: Id, value: Id },
2634 .OpAtomicFMaxEXT => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, semantics: Id, value: Id },
2635 .OpAssumeTrueKHR => struct { condition: Id },
2636 .OpExpectKHR => struct { id_result_type: Id, id_result: Id, value: Id, expected_value: Id },
2637 .OpDecorateString => struct { target: Id, decoration: Decoration.Extended },
2638 .OpMemberDecorateString => struct { struct_type: Id, member: LiteralInteger, decoration: Decoration.Extended },
2639 .OpLoopControlINTEL => struct { loop_control_parameters: []const LiteralInteger = &.{} },
2640 .OpReadPipeBlockingINTEL => struct { id_result_type: Id, id_result: Id, packet_size: Id, packet_alignment: Id },
2641 .OpWritePipeBlockingINTEL => struct { id_result_type: Id, id_result: Id, packet_size: Id, packet_alignment: Id },
2642 .OpFPGARegINTEL => struct { id_result_type: Id, id_result: Id, input: Id },
2643 .OpRayQueryGetRayTMinKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id },
2644 .OpRayQueryGetRayFlagsKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id },
2645 .OpRayQueryGetIntersectionTKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id },
2646 .OpRayQueryGetIntersectionInstanceCustomIndexKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id },
2647 .OpRayQueryGetIntersectionInstanceIdKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id },
2648 .OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id },
2649 .OpRayQueryGetIntersectionGeometryIndexKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id },
2650 .OpRayQueryGetIntersectionPrimitiveIndexKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id },
2651 .OpRayQueryGetIntersectionBarycentricsKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id },
2652 .OpRayQueryGetIntersectionFrontFaceKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id },
2653 .OpRayQueryGetIntersectionCandidateAABBOpaqueKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id },
2654 .OpRayQueryGetIntersectionObjectRayDirectionKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id },
2655 .OpRayQueryGetIntersectionObjectRayOriginKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id },
2656 .OpRayQueryGetWorldRayDirectionKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id },
2657 .OpRayQueryGetWorldRayOriginKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id },
2658 .OpRayQueryGetIntersectionObjectToWorldKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id },
2659 .OpRayQueryGetIntersectionWorldToObjectKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id },
2660 .OpAtomicFAddEXT => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, semantics: Id, value: Id },
2661 .OpTypeBufferSurfaceINTEL => struct { id_result: Id, access_qualifier: AccessQualifier },
2662 .OpTypeStructContinuedINTEL => struct { id_ref: []const Id = &.{} },
2663 .OpConstantCompositeContinuedINTEL => struct { constituents: []const Id = &.{} },
2664 .OpSpecConstantCompositeContinuedINTEL => struct { constituents: []const Id = &.{} },
2665 .OpCompositeConstructContinuedINTEL => struct { id_result_type: Id, id_result: Id, constituents: []const Id = &.{} },
2666 .OpConvertFToBF16INTEL => struct { id_result_type: Id, id_result: Id, float_value: Id },
2667 .OpConvertBF16ToFINTEL => struct { id_result_type: Id, id_result: Id, b_float16_value: Id },
2668 .OpControlBarrierArriveINTEL => struct { execution: Id, memory: Id, semantics: Id },
2669 .OpControlBarrierWaitINTEL => struct { execution: Id, memory: Id, semantics: Id },
2670 .OpArithmeticFenceEXT => struct { id_result_type: Id, id_result: Id, target: Id },
2671 .OpTaskSequenceCreateINTEL => struct { id_result_type: Id, id_result: Id, function: Id, pipelined: LiteralInteger, use_stall_enable_clusters: LiteralInteger, get_capacity: LiteralInteger, async_capacity: LiteralInteger },
2672 .OpTaskSequenceAsyncINTEL => struct { sequence: Id, arguments: []const Id = &.{} },
2673 .OpTaskSequenceGetINTEL => struct { id_result_type: Id, id_result: Id, sequence: Id },
2674 .OpTaskSequenceReleaseINTEL => struct { sequence: Id },
2675 .OpTypeTaskSequenceINTEL => struct { id_result: Id },
2676 .OpSubgroupBlockPrefetchINTEL => struct { ptr: Id, num_bytes: Id, memory_access: ?MemoryAccess.Extended = null },
2677 .OpSubgroup2DBlockLoadINTEL => struct { element_size: Id, block_width: Id, block_height: Id, block_count: Id, src_base_pointer: Id, memory_width: Id, memory_height: Id, memory_pitch: Id, coordinate: Id, dst_pointer: Id },
2678 .OpSubgroup2DBlockLoadTransformINTEL => struct { element_size: Id, block_width: Id, block_height: Id, block_count: Id, src_base_pointer: Id, memory_width: Id, memory_height: Id, memory_pitch: Id, coordinate: Id, dst_pointer: Id },
2679 .OpSubgroup2DBlockLoadTransposeINTEL => struct { element_size: Id, block_width: Id, block_height: Id, block_count: Id, src_base_pointer: Id, memory_width: Id, memory_height: Id, memory_pitch: Id, coordinate: Id, dst_pointer: Id },
2680 .OpSubgroup2DBlockPrefetchINTEL => struct { element_size: Id, block_width: Id, block_height: Id, block_count: Id, src_base_pointer: Id, memory_width: Id, memory_height: Id, memory_pitch: Id, coordinate: Id },
2681 .OpSubgroup2DBlockStoreINTEL => struct { element_size: Id, block_width: Id, block_height: Id, block_count: Id, src_pointer: Id, dst_base_pointer: Id, memory_width: Id, memory_height: Id, memory_pitch: Id, coordinate: Id },
2682 .OpSubgroupMatrixMultiplyAccumulateINTEL => struct { id_result_type: Id, id_result: Id, k_dim: Id, matrix_a: Id, matrix_b: Id, matrix_c: Id, matrix_multiply_accumulate_operands: ?MatrixMultiplyAccumulateOperands = null },
2683 .OpBitwiseFunctionINTEL => struct { id_result_type: Id, id_result: Id, a: Id, b: Id, c: Id, lut_index: Id },
2684 .OpGroupIMulKHR => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
2685 .OpGroupFMulKHR => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
2686 .OpGroupBitwiseAndKHR => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
2687 .OpGroupBitwiseOrKHR => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
2688 .OpGroupBitwiseXorKHR => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
2689 .OpGroupLogicalAndKHR => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
2690 .OpGroupLogicalOrKHR => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
2691 .OpGroupLogicalXorKHR => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
2692 .OpRoundFToTF32INTEL => struct { id_result_type: Id, id_result: Id, float_value: Id },
2693 .OpMaskedGatherINTEL => struct { id_result_type: Id, id_result: Id, ptr_vector: Id, alignment: LiteralInteger, mask: Id, fill_empty: Id },
2694 .OpMaskedScatterINTEL => struct { input_vector: Id, ptr_vector: Id, alignment: LiteralInteger, mask: Id },
2695 .OpConvertHandleToImageINTEL => struct { id_result_type: Id, id_result: Id, operand: Id },
2696 .OpConvertHandleToSamplerINTEL => struct { id_result_type: Id, id_result: Id, operand: Id },
2697 .OpConvertHandleToSampledImageINTEL => struct { id_result_type: Id, id_result: Id, operand: Id },
2698 };
2699 }
2700 pub fn class(self: Opcode) Class {
2701 return switch (self) {
2702 .OpNop => .miscellaneous,
2703 .OpUndef => .miscellaneous,
2704 .OpSourceContinued => .debug,
2705 .OpSource => .debug,
2706 .OpSourceExtension => .debug,
2707 .OpName => .debug,
2708 .OpMemberName => .debug,
2709 .OpString => .debug,
2710 .OpLine => .debug,
2711 .OpExtension => .extension,
2712 .OpExtInstImport => .extension,
2713 .OpExtInst => .extension,
2714 .OpMemoryModel => .mode_setting,
2715 .OpEntryPoint => .mode_setting,
2716 .OpExecutionMode => .mode_setting,
2717 .OpCapability => .mode_setting,
2718 .OpTypeVoid => .type_declaration,
2719 .OpTypeBool => .type_declaration,
2720 .OpTypeInt => .type_declaration,
2721 .OpTypeFloat => .type_declaration,
2722 .OpTypeVector => .type_declaration,
2723 .OpTypeMatrix => .type_declaration,
2724 .OpTypeImage => .type_declaration,
2725 .OpTypeSampler => .type_declaration,
2726 .OpTypeSampledImage => .type_declaration,
2727 .OpTypeArray => .type_declaration,
2728 .OpTypeRuntimeArray => .type_declaration,
2729 .OpTypeStruct => .type_declaration,
2730 .OpTypeOpaque => .type_declaration,
2731 .OpTypePointer => .type_declaration,
2732 .OpTypeFunction => .type_declaration,
2733 .OpTypeEvent => .type_declaration,
2734 .OpTypeDeviceEvent => .type_declaration,
2735 .OpTypeReserveId => .type_declaration,
2736 .OpTypeQueue => .type_declaration,
2737 .OpTypePipe => .type_declaration,
2738 .OpTypeForwardPointer => .type_declaration,
2739 .OpConstantTrue => .constant_creation,
2740 .OpConstantFalse => .constant_creation,
2741 .OpConstant => .constant_creation,
2742 .OpConstantComposite => .constant_creation,
2743 .OpConstantSampler => .constant_creation,
2744 .OpConstantNull => .constant_creation,
2745 .OpSpecConstantTrue => .constant_creation,
2746 .OpSpecConstantFalse => .constant_creation,
2747 .OpSpecConstant => .constant_creation,
2748 .OpSpecConstantComposite => .constant_creation,
2749 .OpSpecConstantOp => .constant_creation,
2750 .OpFunction => .function,
2751 .OpFunctionParameter => .function,
2752 .OpFunctionEnd => .function,
2753 .OpFunctionCall => .function,
2754 .OpVariable => .memory,
2755 .OpImageTexelPointer => .memory,
2756 .OpLoad => .memory,
2757 .OpStore => .memory,
2758 .OpCopyMemory => .memory,
2759 .OpCopyMemorySized => .memory,
2760 .OpAccessChain => .memory,
2761 .OpInBoundsAccessChain => .memory,
2762 .OpPtrAccessChain => .memory,
2763 .OpArrayLength => .memory,
2764 .OpGenericPtrMemSemantics => .memory,
2765 .OpInBoundsPtrAccessChain => .memory,
2766 .OpDecorate => .annotation,
2767 .OpMemberDecorate => .annotation,
2768 .OpDecorationGroup => .annotation,
2769 .OpGroupDecorate => .annotation,
2770 .OpGroupMemberDecorate => .annotation,
2771 .OpVectorExtractDynamic => .composite,
2772 .OpVectorInsertDynamic => .composite,
2773 .OpVectorShuffle => .composite,
2774 .OpCompositeConstruct => .composite,
2775 .OpCompositeExtract => .composite,
2776 .OpCompositeInsert => .composite,
2777 .OpCopyObject => .composite,
2778 .OpTranspose => .composite,
2779 .OpSampledImage => .image,
2780 .OpImageSampleImplicitLod => .image,
2781 .OpImageSampleExplicitLod => .image,
2782 .OpImageSampleDrefImplicitLod => .image,
2783 .OpImageSampleDrefExplicitLod => .image,
2784 .OpImageSampleProjImplicitLod => .image,
2785 .OpImageSampleProjExplicitLod => .image,
2786 .OpImageSampleProjDrefImplicitLod => .image,
2787 .OpImageSampleProjDrefExplicitLod => .image,
2788 .OpImageFetch => .image,
2789 .OpImageGather => .image,
2790 .OpImageDrefGather => .image,
2791 .OpImageRead => .image,
2792 .OpImageWrite => .image,
2793 .OpImage => .image,
2794 .OpImageQueryFormat => .image,
2795 .OpImageQueryOrder => .image,
2796 .OpImageQuerySizeLod => .image,
2797 .OpImageQuerySize => .image,
2798 .OpImageQueryLod => .image,
2799 .OpImageQueryLevels => .image,
2800 .OpImageQuerySamples => .image,
2801 .OpConvertFToU => .conversion,
2802 .OpConvertFToS => .conversion,
2803 .OpConvertSToF => .conversion,
2804 .OpConvertUToF => .conversion,
2805 .OpUConvert => .conversion,
2806 .OpSConvert => .conversion,
2807 .OpFConvert => .conversion,
2808 .OpQuantizeToF16 => .conversion,
2809 .OpConvertPtrToU => .conversion,
2810 .OpSatConvertSToU => .conversion,
2811 .OpSatConvertUToS => .conversion,
2812 .OpConvertUToPtr => .conversion,
2813 .OpPtrCastToGeneric => .conversion,
2814 .OpGenericCastToPtr => .conversion,
2815 .OpGenericCastToPtrExplicit => .conversion,
2816 .OpBitcast => .conversion,
2817 .OpSNegate => .arithmetic,
2818 .OpFNegate => .arithmetic,
2819 .OpIAdd => .arithmetic,
2820 .OpFAdd => .arithmetic,
2821 .OpISub => .arithmetic,
2822 .OpFSub => .arithmetic,
2823 .OpIMul => .arithmetic,
2824 .OpFMul => .arithmetic,
2825 .OpUDiv => .arithmetic,
2826 .OpSDiv => .arithmetic,
2827 .OpFDiv => .arithmetic,
2828 .OpUMod => .arithmetic,
2829 .OpSRem => .arithmetic,
2830 .OpSMod => .arithmetic,
2831 .OpFRem => .arithmetic,
2832 .OpFMod => .arithmetic,
2833 .OpVectorTimesScalar => .arithmetic,
2834 .OpMatrixTimesScalar => .arithmetic,
2835 .OpVectorTimesMatrix => .arithmetic,
2836 .OpMatrixTimesVector => .arithmetic,
2837 .OpMatrixTimesMatrix => .arithmetic,
2838 .OpOuterProduct => .arithmetic,
2839 .OpDot => .arithmetic,
2840 .OpIAddCarry => .arithmetic,
2841 .OpISubBorrow => .arithmetic,
2842 .OpUMulExtended => .arithmetic,
2843 .OpSMulExtended => .arithmetic,
2844 .OpAny => .relational_and_logical,
2845 .OpAll => .relational_and_logical,
2846 .OpIsNan => .relational_and_logical,
2847 .OpIsInf => .relational_and_logical,
2848 .OpIsFinite => .relational_and_logical,
2849 .OpIsNormal => .relational_and_logical,
2850 .OpSignBitSet => .relational_and_logical,
2851 .OpLessOrGreater => .relational_and_logical,
2852 .OpOrdered => .relational_and_logical,
2853 .OpUnordered => .relational_and_logical,
2854 .OpLogicalEqual => .relational_and_logical,
2855 .OpLogicalNotEqual => .relational_and_logical,
2856 .OpLogicalOr => .relational_and_logical,
2857 .OpLogicalAnd => .relational_and_logical,
2858 .OpLogicalNot => .relational_and_logical,
2859 .OpSelect => .relational_and_logical,
2860 .OpIEqual => .relational_and_logical,
2861 .OpINotEqual => .relational_and_logical,
2862 .OpUGreaterThan => .relational_and_logical,
2863 .OpSGreaterThan => .relational_and_logical,
2864 .OpUGreaterThanEqual => .relational_and_logical,
2865 .OpSGreaterThanEqual => .relational_and_logical,
2866 .OpULessThan => .relational_and_logical,
2867 .OpSLessThan => .relational_and_logical,
2868 .OpULessThanEqual => .relational_and_logical,
2869 .OpSLessThanEqual => .relational_and_logical,
2870 .OpFOrdEqual => .relational_and_logical,
2871 .OpFUnordEqual => .relational_and_logical,
2872 .OpFOrdNotEqual => .relational_and_logical,
2873 .OpFUnordNotEqual => .relational_and_logical,
2874 .OpFOrdLessThan => .relational_and_logical,
2875 .OpFUnordLessThan => .relational_and_logical,
2876 .OpFOrdGreaterThan => .relational_and_logical,
2877 .OpFUnordGreaterThan => .relational_and_logical,
2878 .OpFOrdLessThanEqual => .relational_and_logical,
2879 .OpFUnordLessThanEqual => .relational_and_logical,
2880 .OpFOrdGreaterThanEqual => .relational_and_logical,
2881 .OpFUnordGreaterThanEqual => .relational_and_logical,
2882 .OpShiftRightLogical => .bit,
2883 .OpShiftRightArithmetic => .bit,
2884 .OpShiftLeftLogical => .bit,
2885 .OpBitwiseOr => .bit,
2886 .OpBitwiseXor => .bit,
2887 .OpBitwiseAnd => .bit,
2888 .OpNot => .bit,
2889 .OpBitFieldInsert => .bit,
2890 .OpBitFieldSExtract => .bit,
2891 .OpBitFieldUExtract => .bit,
2892 .OpBitReverse => .bit,
2893 .OpBitCount => .bit,
2894 .OpDPdx => .derivative,
2895 .OpDPdy => .derivative,
2896 .OpFwidth => .derivative,
2897 .OpDPdxFine => .derivative,
2898 .OpDPdyFine => .derivative,
2899 .OpFwidthFine => .derivative,
2900 .OpDPdxCoarse => .derivative,
2901 .OpDPdyCoarse => .derivative,
2902 .OpFwidthCoarse => .derivative,
2903 .OpEmitVertex => .primitive,
2904 .OpEndPrimitive => .primitive,
2905 .OpEmitStreamVertex => .primitive,
2906 .OpEndStreamPrimitive => .primitive,
2907 .OpControlBarrier => .barrier,
2908 .OpMemoryBarrier => .barrier,
2909 .OpAtomicLoad => .atomic,
2910 .OpAtomicStore => .atomic,
2911 .OpAtomicExchange => .atomic,
2912 .OpAtomicCompareExchange => .atomic,
2913 .OpAtomicCompareExchangeWeak => .atomic,
2914 .OpAtomicIIncrement => .atomic,
2915 .OpAtomicIDecrement => .atomic,
2916 .OpAtomicIAdd => .atomic,
2917 .OpAtomicISub => .atomic,
2918 .OpAtomicSMin => .atomic,
2919 .OpAtomicUMin => .atomic,
2920 .OpAtomicSMax => .atomic,
2921 .OpAtomicUMax => .atomic,
2922 .OpAtomicAnd => .atomic,
2923 .OpAtomicOr => .atomic,
2924 .OpAtomicXor => .atomic,
2925 .OpPhi => .control_flow,
2926 .OpLoopMerge => .control_flow,
2927 .OpSelectionMerge => .control_flow,
2928 .OpLabel => .control_flow,
2929 .OpBranch => .control_flow,
2930 .OpBranchConditional => .control_flow,
2931 .OpSwitch => .control_flow,
2932 .OpKill => .control_flow,
2933 .OpReturn => .control_flow,
2934 .OpReturnValue => .control_flow,
2935 .OpUnreachable => .control_flow,
2936 .OpLifetimeStart => .control_flow,
2937 .OpLifetimeStop => .control_flow,
2938 .OpGroupAsyncCopy => .group,
2939 .OpGroupWaitEvents => .group,
2940 .OpGroupAll => .group,
2941 .OpGroupAny => .group,
2942 .OpGroupBroadcast => .group,
2943 .OpGroupIAdd => .group,
2944 .OpGroupFAdd => .group,
2945 .OpGroupFMin => .group,
2946 .OpGroupUMin => .group,
2947 .OpGroupSMin => .group,
2948 .OpGroupFMax => .group,
2949 .OpGroupUMax => .group,
2950 .OpGroupSMax => .group,
2951 .OpReadPipe => .pipe,
2952 .OpWritePipe => .pipe,
2953 .OpReservedReadPipe => .pipe,
2954 .OpReservedWritePipe => .pipe,
2955 .OpReserveReadPipePackets => .pipe,
2956 .OpReserveWritePipePackets => .pipe,
2957 .OpCommitReadPipe => .pipe,
2958 .OpCommitWritePipe => .pipe,
2959 .OpIsValidReserveId => .pipe,
2960 .OpGetNumPipePackets => .pipe,
2961 .OpGetMaxPipePackets => .pipe,
2962 .OpGroupReserveReadPipePackets => .pipe,
2963 .OpGroupReserveWritePipePackets => .pipe,
2964 .OpGroupCommitReadPipe => .pipe,
2965 .OpGroupCommitWritePipe => .pipe,
2966 .OpEnqueueMarker => .device_side_enqueue,
2967 .OpEnqueueKernel => .device_side_enqueue,
2968 .OpGetKernelNDrangeSubGroupCount => .device_side_enqueue,
2969 .OpGetKernelNDrangeMaxSubGroupSize => .device_side_enqueue,
2970 .OpGetKernelWorkGroupSize => .device_side_enqueue,
2971 .OpGetKernelPreferredWorkGroupSizeMultiple => .device_side_enqueue,
2972 .OpRetainEvent => .device_side_enqueue,
2973 .OpReleaseEvent => .device_side_enqueue,
2974 .OpCreateUserEvent => .device_side_enqueue,
2975 .OpIsValidEvent => .device_side_enqueue,
2976 .OpSetUserEventStatus => .device_side_enqueue,
2977 .OpCaptureEventProfilingInfo => .device_side_enqueue,
2978 .OpGetDefaultQueue => .device_side_enqueue,
2979 .OpBuildNDRange => .device_side_enqueue,
2980 .OpImageSparseSampleImplicitLod => .image,
2981 .OpImageSparseSampleExplicitLod => .image,
2982 .OpImageSparseSampleDrefImplicitLod => .image,
2983 .OpImageSparseSampleDrefExplicitLod => .image,
2984 .OpImageSparseSampleProjImplicitLod => .image,
2985 .OpImageSparseSampleProjExplicitLod => .image,
2986 .OpImageSparseSampleProjDrefImplicitLod => .image,
2987 .OpImageSparseSampleProjDrefExplicitLod => .image,
2988 .OpImageSparseFetch => .image,
2989 .OpImageSparseGather => .image,
2990 .OpImageSparseDrefGather => .image,
2991 .OpImageSparseTexelsResident => .image,
2992 .OpNoLine => .debug,
2993 .OpAtomicFlagTestAndSet => .atomic,
2994 .OpAtomicFlagClear => .atomic,
2995 .OpImageSparseRead => .image,
2996 .OpSizeOf => .miscellaneous,
2997 .OpTypePipeStorage => .type_declaration,
2998 .OpConstantPipeStorage => .pipe,
2999 .OpCreatePipeFromPipeStorage => .pipe,
3000 .OpGetKernelLocalSizeForSubgroupCount => .device_side_enqueue,
3001 .OpGetKernelMaxNumSubgroups => .device_side_enqueue,
3002 .OpTypeNamedBarrier => .type_declaration,
3003 .OpNamedBarrierInitialize => .barrier,
3004 .OpMemoryNamedBarrier => .barrier,
3005 .OpModuleProcessed => .debug,
3006 .OpExecutionModeId => .mode_setting,
3007 .OpDecorateId => .annotation,
3008 .OpGroupNonUniformElect => .non_uniform,
3009 .OpGroupNonUniformAll => .non_uniform,
3010 .OpGroupNonUniformAny => .non_uniform,
3011 .OpGroupNonUniformAllEqual => .non_uniform,
3012 .OpGroupNonUniformBroadcast => .non_uniform,
3013 .OpGroupNonUniformBroadcastFirst => .non_uniform,
3014 .OpGroupNonUniformBallot => .non_uniform,
3015 .OpGroupNonUniformInverseBallot => .non_uniform,
3016 .OpGroupNonUniformBallotBitExtract => .non_uniform,
3017 .OpGroupNonUniformBallotBitCount => .non_uniform,
3018 .OpGroupNonUniformBallotFindLSB => .non_uniform,
3019 .OpGroupNonUniformBallotFindMSB => .non_uniform,
3020 .OpGroupNonUniformShuffle => .non_uniform,
3021 .OpGroupNonUniformShuffleXor => .non_uniform,
3022 .OpGroupNonUniformShuffleUp => .non_uniform,
3023 .OpGroupNonUniformShuffleDown => .non_uniform,
3024 .OpGroupNonUniformIAdd => .non_uniform,
3025 .OpGroupNonUniformFAdd => .non_uniform,
3026 .OpGroupNonUniformIMul => .non_uniform,
3027 .OpGroupNonUniformFMul => .non_uniform,
3028 .OpGroupNonUniformSMin => .non_uniform,
3029 .OpGroupNonUniformUMin => .non_uniform,
3030 .OpGroupNonUniformFMin => .non_uniform,
3031 .OpGroupNonUniformSMax => .non_uniform,
3032 .OpGroupNonUniformUMax => .non_uniform,
3033 .OpGroupNonUniformFMax => .non_uniform,
3034 .OpGroupNonUniformBitwiseAnd => .non_uniform,
3035 .OpGroupNonUniformBitwiseOr => .non_uniform,
3036 .OpGroupNonUniformBitwiseXor => .non_uniform,
3037 .OpGroupNonUniformLogicalAnd => .non_uniform,
3038 .OpGroupNonUniformLogicalOr => .non_uniform,
3039 .OpGroupNonUniformLogicalXor => .non_uniform,
3040 .OpGroupNonUniformQuadBroadcast => .non_uniform,
3041 .OpGroupNonUniformQuadSwap => .non_uniform,
3042 .OpCopyLogical => .composite,
3043 .OpPtrEqual => .memory,
3044 .OpPtrNotEqual => .memory,
3045 .OpPtrDiff => .memory,
3046 .OpColorAttachmentReadEXT => .image,
3047 .OpDepthAttachmentReadEXT => .image,
3048 .OpStencilAttachmentReadEXT => .image,
3049 .OpTypeTensorARM => .type_declaration,
3050 .OpTensorReadARM => .tensor,
3051 .OpTensorWriteARM => .tensor,
3052 .OpTensorQuerySizeARM => .tensor,
3053 .OpGraphConstantARM => .graph,
3054 .OpGraphEntryPointARM => .graph,
3055 .OpGraphARM => .graph,
3056 .OpGraphInputARM => .graph,
3057 .OpGraphSetOutputARM => .graph,
3058 .OpGraphEndARM => .graph,
3059 .OpTypeGraphARM => .type_declaration,
3060 .OpTerminateInvocation => .control_flow,
3061 .OpTypeUntypedPointerKHR => .type_declaration,
3062 .OpUntypedVariableKHR => .memory,
3063 .OpUntypedAccessChainKHR => .memory,
3064 .OpUntypedInBoundsAccessChainKHR => .memory,
3065 .OpSubgroupBallotKHR => .group,
3066 .OpSubgroupFirstInvocationKHR => .group,
3067 .OpUntypedPtrAccessChainKHR => .memory,
3068 .OpUntypedInBoundsPtrAccessChainKHR => .memory,
3069 .OpUntypedArrayLengthKHR => .memory,
3070 .OpUntypedPrefetchKHR => .memory,
3071 .OpSubgroupAllKHR => .group,
3072 .OpSubgroupAnyKHR => .group,
3073 .OpSubgroupAllEqualKHR => .group,
3074 .OpGroupNonUniformRotateKHR => .group,
3075 .OpSubgroupReadInvocationKHR => .group,
3076 .OpExtInstWithForwardRefsKHR => .extension,
3077 .OpTraceRayKHR => .reserved,
3078 .OpExecuteCallableKHR => .reserved,
3079 .OpConvertUToAccelerationStructureKHR => .reserved,
3080 .OpIgnoreIntersectionKHR => .reserved,
3081 .OpTerminateRayKHR => .reserved,
3082 .OpSDot => .arithmetic,
3083 .OpUDot => .arithmetic,
3084 .OpSUDot => .arithmetic,
3085 .OpSDotAccSat => .arithmetic,
3086 .OpUDotAccSat => .arithmetic,
3087 .OpSUDotAccSat => .arithmetic,
3088 .OpTypeCooperativeMatrixKHR => .type_declaration,
3089 .OpCooperativeMatrixLoadKHR => .memory,
3090 .OpCooperativeMatrixStoreKHR => .memory,
3091 .OpCooperativeMatrixMulAddKHR => .arithmetic,
3092 .OpCooperativeMatrixLengthKHR => .miscellaneous,
3093 .OpConstantCompositeReplicateEXT => .constant_creation,
3094 .OpSpecConstantCompositeReplicateEXT => .constant_creation,
3095 .OpCompositeConstructReplicateEXT => .composite,
3096 .OpTypeRayQueryKHR => .type_declaration,
3097 .OpRayQueryInitializeKHR => .reserved,
3098 .OpRayQueryTerminateKHR => .reserved,
3099 .OpRayQueryGenerateIntersectionKHR => .reserved,
3100 .OpRayQueryConfirmIntersectionKHR => .reserved,
3101 .OpRayQueryProceedKHR => .reserved,
3102 .OpRayQueryGetIntersectionTypeKHR => .reserved,
3103 .OpImageSampleWeightedQCOM => .image,
3104 .OpImageBoxFilterQCOM => .image,
3105 .OpImageBlockMatchSSDQCOM => .image,
3106 .OpImageBlockMatchSADQCOM => .image,
3107 .OpImageBlockMatchWindowSSDQCOM => .image,
3108 .OpImageBlockMatchWindowSADQCOM => .image,
3109 .OpImageBlockMatchGatherSSDQCOM => .image,
3110 .OpImageBlockMatchGatherSADQCOM => .image,
3111 .OpGroupIAddNonUniformAMD => .group,
3112 .OpGroupFAddNonUniformAMD => .group,
3113 .OpGroupFMinNonUniformAMD => .group,
3114 .OpGroupUMinNonUniformAMD => .group,
3115 .OpGroupSMinNonUniformAMD => .group,
3116 .OpGroupFMaxNonUniformAMD => .group,
3117 .OpGroupUMaxNonUniformAMD => .group,
3118 .OpGroupSMaxNonUniformAMD => .group,
3119 .OpFragmentMaskFetchAMD => .reserved,
3120 .OpFragmentFetchAMD => .reserved,
3121 .OpReadClockKHR => .reserved,
3122 .OpAllocateNodePayloadsAMDX => .reserved,
3123 .OpEnqueueNodePayloadsAMDX => .reserved,
3124 .OpTypeNodePayloadArrayAMDX => .reserved,
3125 .OpFinishWritingNodePayloadAMDX => .reserved,
3126 .OpNodePayloadArrayLengthAMDX => .reserved,
3127 .OpIsNodePayloadValidAMDX => .reserved,
3128 .OpConstantStringAMDX => .reserved,
3129 .OpSpecConstantStringAMDX => .reserved,
3130 .OpGroupNonUniformQuadAllKHR => .non_uniform,
3131 .OpGroupNonUniformQuadAnyKHR => .non_uniform,
3132 .OpHitObjectRecordHitMotionNV => .reserved,
3133 .OpHitObjectRecordHitWithIndexMotionNV => .reserved,
3134 .OpHitObjectRecordMissMotionNV => .reserved,
3135 .OpHitObjectGetWorldToObjectNV => .reserved,
3136 .OpHitObjectGetObjectToWorldNV => .reserved,
3137 .OpHitObjectGetObjectRayDirectionNV => .reserved,
3138 .OpHitObjectGetObjectRayOriginNV => .reserved,
3139 .OpHitObjectTraceRayMotionNV => .reserved,
3140 .OpHitObjectGetShaderRecordBufferHandleNV => .reserved,
3141 .OpHitObjectGetShaderBindingTableRecordIndexNV => .reserved,
3142 .OpHitObjectRecordEmptyNV => .reserved,
3143 .OpHitObjectTraceRayNV => .reserved,
3144 .OpHitObjectRecordHitNV => .reserved,
3145 .OpHitObjectRecordHitWithIndexNV => .reserved,
3146 .OpHitObjectRecordMissNV => .reserved,
3147 .OpHitObjectExecuteShaderNV => .reserved,
3148 .OpHitObjectGetCurrentTimeNV => .reserved,
3149 .OpHitObjectGetAttributesNV => .reserved,
3150 .OpHitObjectGetHitKindNV => .reserved,
3151 .OpHitObjectGetPrimitiveIndexNV => .reserved,
3152 .OpHitObjectGetGeometryIndexNV => .reserved,
3153 .OpHitObjectGetInstanceIdNV => .reserved,
3154 .OpHitObjectGetInstanceCustomIndexNV => .reserved,
3155 .OpHitObjectGetWorldRayDirectionNV => .reserved,
3156 .OpHitObjectGetWorldRayOriginNV => .reserved,
3157 .OpHitObjectGetRayTMaxNV => .reserved,
3158 .OpHitObjectGetRayTMinNV => .reserved,
3159 .OpHitObjectIsEmptyNV => .reserved,
3160 .OpHitObjectIsHitNV => .reserved,
3161 .OpHitObjectIsMissNV => .reserved,
3162 .OpReorderThreadWithHitObjectNV => .reserved,
3163 .OpReorderThreadWithHintNV => .reserved,
3164 .OpTypeHitObjectNV => .type_declaration,
3165 .OpImageSampleFootprintNV => .image,
3166 .OpTypeCooperativeVectorNV => .type_declaration,
3167 .OpCooperativeVectorMatrixMulNV => .reserved,
3168 .OpCooperativeVectorOuterProductAccumulateNV => .reserved,
3169 .OpCooperativeVectorReduceSumAccumulateNV => .reserved,
3170 .OpCooperativeVectorMatrixMulAddNV => .reserved,
3171 .OpCooperativeMatrixConvertNV => .conversion,
3172 .OpEmitMeshTasksEXT => .reserved,
3173 .OpSetMeshOutputsEXT => .reserved,
3174 .OpGroupNonUniformPartitionNV => .non_uniform,
3175 .OpWritePackedPrimitiveIndices4x8NV => .reserved,
3176 .OpFetchMicroTriangleVertexPositionNV => .reserved,
3177 .OpFetchMicroTriangleVertexBarycentricNV => .reserved,
3178 .OpCooperativeVectorLoadNV => .memory,
3179 .OpCooperativeVectorStoreNV => .memory,
3180 .OpReportIntersectionKHR => .reserved,
3181 .OpIgnoreIntersectionNV => .reserved,
3182 .OpTerminateRayNV => .reserved,
3183 .OpTraceNV => .reserved,
3184 .OpTraceMotionNV => .reserved,
3185 .OpTraceRayMotionNV => .reserved,
3186 .OpRayQueryGetIntersectionTriangleVertexPositionsKHR => .reserved,
3187 .OpTypeAccelerationStructureKHR => .type_declaration,
3188 .OpExecuteCallableNV => .reserved,
3189 .OpRayQueryGetClusterIdNV => .reserved,
3190 .OpHitObjectGetClusterIdNV => .reserved,
3191 .OpTypeCooperativeMatrixNV => .type_declaration,
3192 .OpCooperativeMatrixLoadNV => .reserved,
3193 .OpCooperativeMatrixStoreNV => .reserved,
3194 .OpCooperativeMatrixMulAddNV => .reserved,
3195 .OpCooperativeMatrixLengthNV => .reserved,
3196 .OpBeginInvocationInterlockEXT => .reserved,
3197 .OpEndInvocationInterlockEXT => .reserved,
3198 .OpCooperativeMatrixReduceNV => .arithmetic,
3199 .OpCooperativeMatrixLoadTensorNV => .memory,
3200 .OpCooperativeMatrixStoreTensorNV => .memory,
3201 .OpCooperativeMatrixPerElementOpNV => .function,
3202 .OpTypeTensorLayoutNV => .type_declaration,
3203 .OpTypeTensorViewNV => .type_declaration,
3204 .OpCreateTensorLayoutNV => .reserved,
3205 .OpTensorLayoutSetDimensionNV => .reserved,
3206 .OpTensorLayoutSetStrideNV => .reserved,
3207 .OpTensorLayoutSliceNV => .reserved,
3208 .OpTensorLayoutSetClampValueNV => .reserved,
3209 .OpCreateTensorViewNV => .reserved,
3210 .OpTensorViewSetDimensionNV => .reserved,
3211 .OpTensorViewSetStrideNV => .reserved,
3212 .OpDemoteToHelperInvocation => .control_flow,
3213 .OpIsHelperInvocationEXT => .reserved,
3214 .OpTensorViewSetClipNV => .reserved,
3215 .OpTensorLayoutSetBlockSizeNV => .reserved,
3216 .OpCooperativeMatrixTransposeNV => .conversion,
3217 .OpConvertUToImageNV => .reserved,
3218 .OpConvertUToSamplerNV => .reserved,
3219 .OpConvertImageToUNV => .reserved,
3220 .OpConvertSamplerToUNV => .reserved,
3221 .OpConvertUToSampledImageNV => .reserved,
3222 .OpConvertSampledImageToUNV => .reserved,
3223 .OpSamplerImageAddressingModeNV => .reserved,
3224 .OpRawAccessChainNV => .memory,
3225 .OpRayQueryGetIntersectionSpherePositionNV => .reserved,
3226 .OpRayQueryGetIntersectionSphereRadiusNV => .reserved,
3227 .OpRayQueryGetIntersectionLSSPositionsNV => .reserved,
3228 .OpRayQueryGetIntersectionLSSRadiiNV => .reserved,
3229 .OpRayQueryGetIntersectionLSSHitValueNV => .reserved,
3230 .OpHitObjectGetSpherePositionNV => .reserved,
3231 .OpHitObjectGetSphereRadiusNV => .reserved,
3232 .OpHitObjectGetLSSPositionsNV => .reserved,
3233 .OpHitObjectGetLSSRadiiNV => .reserved,
3234 .OpHitObjectIsSphereHitNV => .reserved,
3235 .OpHitObjectIsLSSHitNV => .reserved,
3236 .OpRayQueryIsSphereHitNV => .reserved,
3237 .OpRayQueryIsLSSHitNV => .reserved,
3238 .OpSubgroupShuffleINTEL => .group,
3239 .OpSubgroupShuffleDownINTEL => .group,
3240 .OpSubgroupShuffleUpINTEL => .group,
3241 .OpSubgroupShuffleXorINTEL => .group,
3242 .OpSubgroupBlockReadINTEL => .group,
3243 .OpSubgroupBlockWriteINTEL => .group,
3244 .OpSubgroupImageBlockReadINTEL => .group,
3245 .OpSubgroupImageBlockWriteINTEL => .group,
3246 .OpSubgroupImageMediaBlockReadINTEL => .group,
3247 .OpSubgroupImageMediaBlockWriteINTEL => .group,
3248 .OpUCountLeadingZerosINTEL => .reserved,
3249 .OpUCountTrailingZerosINTEL => .reserved,
3250 .OpAbsISubINTEL => .reserved,
3251 .OpAbsUSubINTEL => .reserved,
3252 .OpIAddSatINTEL => .reserved,
3253 .OpUAddSatINTEL => .reserved,
3254 .OpIAverageINTEL => .reserved,
3255 .OpUAverageINTEL => .reserved,
3256 .OpIAverageRoundedINTEL => .reserved,
3257 .OpUAverageRoundedINTEL => .reserved,
3258 .OpISubSatINTEL => .reserved,
3259 .OpUSubSatINTEL => .reserved,
3260 .OpIMul32x16INTEL => .reserved,
3261 .OpUMul32x16INTEL => .reserved,
3262 .OpAtomicFMinEXT => .atomic,
3263 .OpAtomicFMaxEXT => .atomic,
3264 .OpAssumeTrueKHR => .miscellaneous,
3265 .OpExpectKHR => .miscellaneous,
3266 .OpDecorateString => .annotation,
3267 .OpMemberDecorateString => .annotation,
3268 .OpLoopControlINTEL => .reserved,
3269 .OpReadPipeBlockingINTEL => .pipe,
3270 .OpWritePipeBlockingINTEL => .pipe,
3271 .OpFPGARegINTEL => .reserved,
3272 .OpRayQueryGetRayTMinKHR => .reserved,
3273 .OpRayQueryGetRayFlagsKHR => .reserved,
3274 .OpRayQueryGetIntersectionTKHR => .reserved,
3275 .OpRayQueryGetIntersectionInstanceCustomIndexKHR => .reserved,
3276 .OpRayQueryGetIntersectionInstanceIdKHR => .reserved,
3277 .OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR => .reserved,
3278 .OpRayQueryGetIntersectionGeometryIndexKHR => .reserved,
3279 .OpRayQueryGetIntersectionPrimitiveIndexKHR => .reserved,
3280 .OpRayQueryGetIntersectionBarycentricsKHR => .reserved,
3281 .OpRayQueryGetIntersectionFrontFaceKHR => .reserved,
3282 .OpRayQueryGetIntersectionCandidateAABBOpaqueKHR => .reserved,
3283 .OpRayQueryGetIntersectionObjectRayDirectionKHR => .reserved,
3284 .OpRayQueryGetIntersectionObjectRayOriginKHR => .reserved,
3285 .OpRayQueryGetWorldRayDirectionKHR => .reserved,
3286 .OpRayQueryGetWorldRayOriginKHR => .reserved,
3287 .OpRayQueryGetIntersectionObjectToWorldKHR => .reserved,
3288 .OpRayQueryGetIntersectionWorldToObjectKHR => .reserved,
3289 .OpAtomicFAddEXT => .atomic,
3290 .OpTypeBufferSurfaceINTEL => .type_declaration,
3291 .OpTypeStructContinuedINTEL => .type_declaration,
3292 .OpConstantCompositeContinuedINTEL => .constant_creation,
3293 .OpSpecConstantCompositeContinuedINTEL => .constant_creation,
3294 .OpCompositeConstructContinuedINTEL => .composite,
3295 .OpConvertFToBF16INTEL => .conversion,
3296 .OpConvertBF16ToFINTEL => .conversion,
3297 .OpControlBarrierArriveINTEL => .barrier,
3298 .OpControlBarrierWaitINTEL => .barrier,
3299 .OpArithmeticFenceEXT => .miscellaneous,
3300 .OpTaskSequenceCreateINTEL => .reserved,
3301 .OpTaskSequenceAsyncINTEL => .reserved,
3302 .OpTaskSequenceGetINTEL => .reserved,
3303 .OpTaskSequenceReleaseINTEL => .reserved,
3304 .OpTypeTaskSequenceINTEL => .type_declaration,
3305 .OpSubgroupBlockPrefetchINTEL => .group,
3306 .OpSubgroup2DBlockLoadINTEL => .group,
3307 .OpSubgroup2DBlockLoadTransformINTEL => .group,
3308 .OpSubgroup2DBlockLoadTransposeINTEL => .group,
3309 .OpSubgroup2DBlockPrefetchINTEL => .group,
3310 .OpSubgroup2DBlockStoreINTEL => .group,
3311 .OpSubgroupMatrixMultiplyAccumulateINTEL => .group,
3312 .OpBitwiseFunctionINTEL => .bit,
3313 .OpGroupIMulKHR => .group,
3314 .OpGroupFMulKHR => .group,
3315 .OpGroupBitwiseAndKHR => .group,
3316 .OpGroupBitwiseOrKHR => .group,
3317 .OpGroupBitwiseXorKHR => .group,
3318 .OpGroupLogicalAndKHR => .group,
3319 .OpGroupLogicalOrKHR => .group,
3320 .OpGroupLogicalXorKHR => .group,
3321 .OpRoundFToTF32INTEL => .conversion,
3322 .OpMaskedGatherINTEL => .memory,
3323 .OpMaskedScatterINTEL => .memory,
3324 .OpConvertHandleToImageINTEL => .image,
3325 .OpConvertHandleToSamplerINTEL => .image,
3326 .OpConvertHandleToSampledImageINTEL => .image,
3327 };
3328 }
3329};
3330
3331pub const GlslOpcode = enum(u16) {
3332 Round = 1,
3333 RoundEven = 2,
3334 Trunc = 3,
3335 FAbs = 4,
3336 SAbs = 5,
3337 FSign = 6,
3338 SSign = 7,
3339 Floor = 8,
3340 Ceil = 9,
3341 Fract = 10,
3342 Radians = 11,
3343 Degrees = 12,
3344 Sin = 13,
3345 Cos = 14,
3346 Tan = 15,
3347 Asin = 16,
3348 Acos = 17,
3349 Atan = 18,
3350 Sinh = 19,
3351 Cosh = 20,
3352 Tanh = 21,
3353 Asinh = 22,
3354 Acosh = 23,
3355 Atanh = 24,
3356 Atan2 = 25,
3357 Pow = 26,
3358 Exp = 27,
3359 Log = 28,
3360 Exp2 = 29,
3361 Log2 = 30,
3362 Sqrt = 31,
3363 InverseSqrt = 32,
3364 Determinant = 33,
3365 MatrixInverse = 34,
3366 Modf = 35,
3367 ModfStruct = 36,
3368 FMin = 37,
3369 UMin = 38,
3370 SMin = 39,
3371 FMax = 40,
3372 UMax = 41,
3373 SMax = 42,
3374 FClamp = 43,
3375 UClamp = 44,
3376 SClamp = 45,
3377 FMix = 46,
3378 IMix = 47,
3379 Step = 48,
3380 SmoothStep = 49,
3381 Fma = 50,
3382 Frexp = 51,
3383 FrexpStruct = 52,
3384 Ldexp = 53,
3385 PackSnorm4x8 = 54,
3386 PackUnorm4x8 = 55,
3387 PackSnorm2x16 = 56,
3388 PackUnorm2x16 = 57,
3389 PackHalf2x16 = 58,
3390 PackDouble2x32 = 59,
3391 UnpackSnorm2x16 = 60,
3392 UnpackUnorm2x16 = 61,
3393 UnpackHalf2x16 = 62,
3394 UnpackSnorm4x8 = 63,
3395 UnpackUnorm4x8 = 64,
3396 UnpackDouble2x32 = 65,
3397 Length = 66,
3398 Distance = 67,
3399 Cross = 68,
3400 Normalize = 69,
3401 FaceForward = 70,
3402 Reflect = 71,
3403 Refract = 72,
3404 FindILsb = 73,
3405 FindSMsb = 74,
3406 FindUMsb = 75,
3407 InterpolateAtCentroid = 76,
3408 InterpolateAtSample = 77,
3409 InterpolateAtOffset = 78,
3410 NMin = 79,
3411 NMax = 80,
3412 NClamp = 81,
3413};
3414
3415pub const OpenClOpcode = enum(u16) {
3416 acos = 0,
3417 acosh = 1,
3418 acospi = 2,
3419 asin = 3,
3420 asinh = 4,
3421 asinpi = 5,
3422 atan = 6,
3423 atan2 = 7,
3424 atanh = 8,
3425 atanpi = 9,
3426 atan2pi = 10,
3427 cbrt = 11,
3428 ceil = 12,
3429 copysign = 13,
3430 cos = 14,
3431 cosh = 15,
3432 cospi = 16,
3433 erfc = 17,
3434 erf = 18,
3435 exp = 19,
3436 exp2 = 20,
3437 exp10 = 21,
3438 expm1 = 22,
3439 fabs = 23,
3440 fdim = 24,
3441 floor = 25,
3442 fma = 26,
3443 fmax = 27,
3444 fmin = 28,
3445 fmod = 29,
3446 fract = 30,
3447 frexp = 31,
3448 hypot = 32,
3449 ilogb = 33,
3450 ldexp = 34,
3451 lgamma = 35,
3452 lgamma_r = 36,
3453 log = 37,
3454 log2 = 38,
3455 log10 = 39,
3456 log1p = 40,
3457 logb = 41,
3458 mad = 42,
3459 maxmag = 43,
3460 minmag = 44,
3461 modf = 45,
3462 nan = 46,
3463 nextafter = 47,
3464 pow = 48,
3465 pown = 49,
3466 powr = 50,
3467 remainder = 51,
3468 remquo = 52,
3469 rint = 53,
3470 rootn = 54,
3471 round = 55,
3472 rsqrt = 56,
3473 sin = 57,
3474 sincos = 58,
3475 sinh = 59,
3476 sinpi = 60,
3477 sqrt = 61,
3478 tan = 62,
3479 tanh = 63,
3480 tanpi = 64,
3481 tgamma = 65,
3482 trunc = 66,
3483 half_cos = 67,
3484 half_divide = 68,
3485 half_exp = 69,
3486 half_exp2 = 70,
3487 half_exp10 = 71,
3488 half_log = 72,
3489 half_log2 = 73,
3490 half_log10 = 74,
3491 half_powr = 75,
3492 half_recip = 76,
3493 half_rsqrt = 77,
3494 half_sin = 78,
3495 half_sqrt = 79,
3496 half_tan = 80,
3497 native_cos = 81,
3498 native_divide = 82,
3499 native_exp = 83,
3500 native_exp2 = 84,
3501 native_exp10 = 85,
3502 native_log = 86,
3503 native_log2 = 87,
3504 native_log10 = 88,
3505 native_powr = 89,
3506 native_recip = 90,
3507 native_rsqrt = 91,
3508 native_sin = 92,
3509 native_sqrt = 93,
3510 native_tan = 94,
3511 fclamp = 95,
3512 degrees = 96,
3513 fmax_common = 97,
3514 fmin_common = 98,
3515 mix = 99,
3516 radians = 100,
3517 step = 101,
3518 smoothstep = 102,
3519 sign = 103,
3520 cross = 104,
3521 distance = 105,
3522 length = 106,
3523 normalize = 107,
3524 fast_distance = 108,
3525 fast_length = 109,
3526 fast_normalize = 110,
3527 s_abs = 141,
3528 s_abs_diff = 142,
3529 s_add_sat = 143,
3530 u_add_sat = 144,
3531 s_hadd = 145,
3532 u_hadd = 146,
3533 s_rhadd = 147,
3534 u_rhadd = 148,
3535 s_clamp = 149,
3536 u_clamp = 150,
3537 clz = 151,
3538 ctz = 152,
3539 s_mad_hi = 153,
3540 u_mad_sat = 154,
3541 s_mad_sat = 155,
3542 s_max = 156,
3543 u_max = 157,
3544 s_min = 158,
3545 u_min = 159,
3546 s_mul_hi = 160,
3547 rotate = 161,
3548 s_sub_sat = 162,
3549 u_sub_sat = 163,
3550 u_upsample = 164,
3551 s_upsample = 165,
3552 popcount = 166,
3553 s_mad24 = 167,
3554 u_mad24 = 168,
3555 s_mul24 = 169,
3556 u_mul24 = 170,
3557 vloadn = 171,
3558 vstoren = 172,
3559 vload_half = 173,
3560 vload_halfn = 174,
3561 vstore_half = 175,
3562 vstore_half_r = 176,
3563 vstore_halfn = 177,
3564 vstore_halfn_r = 178,
3565 vloada_halfn = 179,
3566 vstorea_halfn = 180,
3567 vstorea_halfn_r = 181,
3568 shuffle = 182,
3569 shuffle2 = 183,
3570 printf = 184,
3571 prefetch = 185,
3572 bitselect = 186,
3573 select = 187,
3574 u_abs = 201,
3575 u_abs_diff = 202,
3576 u_mul_hi = 203,
3577 u_mad_hi = 204,
3578};
3579
3580pub const Zig = enum(u16) {
3581 InvocationGlobal = 0,
3582};
3583pub const ImageOperands = packed struct {
3584 bias: bool = false,
3585 lod: bool = false,
3586 grad: bool = false,
3587 const_offset: bool = false,
3588 offset: bool = false,
3589 const_offsets: bool = false,
3590 sample: bool = false,
3591 min_lod: bool = false,
3592 make_texel_available: bool = false,
3593 make_texel_visible: bool = false,
3594 non_private_texel: bool = false,
3595 volatile_texel: bool = false,
3596 sign_extend: bool = false,
3597 zero_extend: bool = false,
3598 nontemporal: bool = false,
3599 _reserved_bit_15: bool = false,
3600 offsets: bool = false,
3601 _reserved_bit_17: bool = false,
3602 _reserved_bit_18: bool = false,
3603 _reserved_bit_19: bool = false,
3604 _reserved_bit_20: bool = false,
3605 _reserved_bit_21: bool = false,
3606 _reserved_bit_22: bool = false,
3607 _reserved_bit_23: bool = false,
3608 _reserved_bit_24: bool = false,
3609 _reserved_bit_25: bool = false,
3610 _reserved_bit_26: bool = false,
3611 _reserved_bit_27: bool = false,
3612 _reserved_bit_28: bool = false,
3613 _reserved_bit_29: bool = false,
3614 _reserved_bit_30: bool = false,
3615 _reserved_bit_31: bool = false,
3616
3617 pub const Extended = struct {
3618 bias: ?struct { id_ref: Id } = null,
3619 lod: ?struct { id_ref: Id } = null,
3620 grad: ?struct { id_ref_0: Id, id_ref_1: Id } = null,
3621 const_offset: ?struct { id_ref: Id } = null,
3622 offset: ?struct { id_ref: Id } = null,
3623 const_offsets: ?struct { id_ref: Id } = null,
3624 sample: ?struct { id_ref: Id } = null,
3625 min_lod: ?struct { id_ref: Id } = null,
3626 make_texel_available: ?struct { id_scope: Id } = null,
3627 make_texel_visible: ?struct { id_scope: Id } = null,
3628 non_private_texel: bool = false,
3629 volatile_texel: bool = false,
3630 sign_extend: bool = false,
3631 zero_extend: bool = false,
3632 nontemporal: bool = false,
3633 _reserved_bit_15: bool = false,
3634 offsets: ?struct { id_ref: Id } = null,
3635 _reserved_bit_17: bool = false,
3636 _reserved_bit_18: bool = false,
3637 _reserved_bit_19: bool = false,
3638 _reserved_bit_20: bool = false,
3639 _reserved_bit_21: bool = false,
3640 _reserved_bit_22: bool = false,
3641 _reserved_bit_23: bool = false,
3642 _reserved_bit_24: bool = false,
3643 _reserved_bit_25: bool = false,
3644 _reserved_bit_26: bool = false,
3645 _reserved_bit_27: bool = false,
3646 _reserved_bit_28: bool = false,
3647 _reserved_bit_29: bool = false,
3648 _reserved_bit_30: bool = false,
3649 _reserved_bit_31: bool = false,
3650 };
3651};
3652pub const FPFastMathMode = packed struct {
3653 not_na_n: bool = false,
3654 not_inf: bool = false,
3655 nsz: bool = false,
3656 allow_recip: bool = false,
3657 fast: bool = false,
3658 _reserved_bit_5: bool = false,
3659 _reserved_bit_6: bool = false,
3660 _reserved_bit_7: bool = false,
3661 _reserved_bit_8: bool = false,
3662 _reserved_bit_9: bool = false,
3663 _reserved_bit_10: bool = false,
3664 _reserved_bit_11: bool = false,
3665 _reserved_bit_12: bool = false,
3666 _reserved_bit_13: bool = false,
3667 _reserved_bit_14: bool = false,
3668 _reserved_bit_15: bool = false,
3669 allow_contract: bool = false,
3670 allow_reassoc: bool = false,
3671 allow_transform: bool = false,
3672 _reserved_bit_19: bool = false,
3673 _reserved_bit_20: bool = false,
3674 _reserved_bit_21: bool = false,
3675 _reserved_bit_22: bool = false,
3676 _reserved_bit_23: bool = false,
3677 _reserved_bit_24: bool = false,
3678 _reserved_bit_25: bool = false,
3679 _reserved_bit_26: bool = false,
3680 _reserved_bit_27: bool = false,
3681 _reserved_bit_28: bool = false,
3682 _reserved_bit_29: bool = false,
3683 _reserved_bit_30: bool = false,
3684 _reserved_bit_31: bool = false,
3685};
3686pub const SelectionControl = packed struct {
3687 flatten: bool = false,
3688 dont_flatten: bool = false,
3689 _reserved_bit_2: bool = false,
3690 _reserved_bit_3: bool = false,
3691 _reserved_bit_4: bool = false,
3692 _reserved_bit_5: bool = false,
3693 _reserved_bit_6: bool = false,
3694 _reserved_bit_7: bool = false,
3695 _reserved_bit_8: bool = false,
3696 _reserved_bit_9: bool = false,
3697 _reserved_bit_10: bool = false,
3698 _reserved_bit_11: bool = false,
3699 _reserved_bit_12: bool = false,
3700 _reserved_bit_13: bool = false,
3701 _reserved_bit_14: bool = false,
3702 _reserved_bit_15: bool = false,
3703 _reserved_bit_16: bool = false,
3704 _reserved_bit_17: bool = false,
3705 _reserved_bit_18: bool = false,
3706 _reserved_bit_19: bool = false,
3707 _reserved_bit_20: bool = false,
3708 _reserved_bit_21: bool = false,
3709 _reserved_bit_22: bool = false,
3710 _reserved_bit_23: bool = false,
3711 _reserved_bit_24: bool = false,
3712 _reserved_bit_25: bool = false,
3713 _reserved_bit_26: bool = false,
3714 _reserved_bit_27: bool = false,
3715 _reserved_bit_28: bool = false,
3716 _reserved_bit_29: bool = false,
3717 _reserved_bit_30: bool = false,
3718 _reserved_bit_31: bool = false,
3719};
3720pub const LoopControl = packed struct {
3721 unroll: bool = false,
3722 dont_unroll: bool = false,
3723 dependency_infinite: bool = false,
3724 dependency_length: bool = false,
3725 min_iterations: bool = false,
3726 max_iterations: bool = false,
3727 iteration_multiple: bool = false,
3728 peel_count: bool = false,
3729 partial_count: bool = false,
3730 _reserved_bit_9: bool = false,
3731 _reserved_bit_10: bool = false,
3732 _reserved_bit_11: bool = false,
3733 _reserved_bit_12: bool = false,
3734 _reserved_bit_13: bool = false,
3735 _reserved_bit_14: bool = false,
3736 _reserved_bit_15: bool = false,
3737 initiation_interval_intel: bool = false,
3738 max_concurrency_intel: bool = false,
3739 dependency_array_intel: bool = false,
3740 pipeline_enable_intel: bool = false,
3741 loop_coalesce_intel: bool = false,
3742 max_interleaving_intel: bool = false,
3743 speculated_iterations_intel: bool = false,
3744 no_fusion_intel: bool = false,
3745 loop_count_intel: bool = false,
3746 max_reinvocation_delay_intel: bool = false,
3747 _reserved_bit_26: bool = false,
3748 _reserved_bit_27: bool = false,
3749 _reserved_bit_28: bool = false,
3750 _reserved_bit_29: bool = false,
3751 _reserved_bit_30: bool = false,
3752 _reserved_bit_31: bool = false,
3753
3754 pub const Extended = struct {
3755 unroll: bool = false,
3756 dont_unroll: bool = false,
3757 dependency_infinite: bool = false,
3758 dependency_length: ?struct { literal_integer: LiteralInteger } = null,
3759 min_iterations: ?struct { literal_integer: LiteralInteger } = null,
3760 max_iterations: ?struct { literal_integer: LiteralInteger } = null,
3761 iteration_multiple: ?struct { literal_integer: LiteralInteger } = null,
3762 peel_count: ?struct { literal_integer: LiteralInteger } = null,
3763 partial_count: ?struct { literal_integer: LiteralInteger } = null,
3764 _reserved_bit_9: bool = false,
3765 _reserved_bit_10: bool = false,
3766 _reserved_bit_11: bool = false,
3767 _reserved_bit_12: bool = false,
3768 _reserved_bit_13: bool = false,
3769 _reserved_bit_14: bool = false,
3770 _reserved_bit_15: bool = false,
3771 initiation_interval_intel: ?struct { literal_integer: LiteralInteger } = null,
3772 max_concurrency_intel: ?struct { literal_integer: LiteralInteger } = null,
3773 dependency_array_intel: ?struct { literal_integer: LiteralInteger } = null,
3774 pipeline_enable_intel: ?struct { literal_integer: LiteralInteger } = null,
3775 loop_coalesce_intel: ?struct { literal_integer: LiteralInteger } = null,
3776 max_interleaving_intel: ?struct { literal_integer: LiteralInteger } = null,
3777 speculated_iterations_intel: ?struct { literal_integer: LiteralInteger } = null,
3778 no_fusion_intel: bool = false,
3779 loop_count_intel: ?struct { literal_integer: LiteralInteger } = null,
3780 max_reinvocation_delay_intel: ?struct { literal_integer: LiteralInteger } = null,
3781 _reserved_bit_26: bool = false,
3782 _reserved_bit_27: bool = false,
3783 _reserved_bit_28: bool = false,
3784 _reserved_bit_29: bool = false,
3785 _reserved_bit_30: bool = false,
3786 _reserved_bit_31: bool = false,
3787 };
3788};
3789pub const FunctionControl = packed struct {
3790 @"inline": bool = false,
3791 dont_inline: bool = false,
3792 pure: bool = false,
3793 @"const": bool = false,
3794 _reserved_bit_4: bool = false,
3795 _reserved_bit_5: bool = false,
3796 _reserved_bit_6: bool = false,
3797 _reserved_bit_7: bool = false,
3798 _reserved_bit_8: bool = false,
3799 _reserved_bit_9: bool = false,
3800 _reserved_bit_10: bool = false,
3801 _reserved_bit_11: bool = false,
3802 _reserved_bit_12: bool = false,
3803 _reserved_bit_13: bool = false,
3804 _reserved_bit_14: bool = false,
3805 _reserved_bit_15: bool = false,
3806 opt_none_ext: bool = false,
3807 _reserved_bit_17: bool = false,
3808 _reserved_bit_18: bool = false,
3809 _reserved_bit_19: bool = false,
3810 _reserved_bit_20: bool = false,
3811 _reserved_bit_21: bool = false,
3812 _reserved_bit_22: bool = false,
3813 _reserved_bit_23: bool = false,
3814 _reserved_bit_24: bool = false,
3815 _reserved_bit_25: bool = false,
3816 _reserved_bit_26: bool = false,
3817 _reserved_bit_27: bool = false,
3818 _reserved_bit_28: bool = false,
3819 _reserved_bit_29: bool = false,
3820 _reserved_bit_30: bool = false,
3821 _reserved_bit_31: bool = false,
3822};
3823pub const MemorySemantics = packed struct {
3824 _reserved_bit_0: bool = false,
3825 acquire: bool = false,
3826 release: bool = false,
3827 acquire_release: bool = false,
3828 sequentially_consistent: bool = false,
3829 _reserved_bit_5: bool = false,
3830 uniform_memory: bool = false,
3831 subgroup_memory: bool = false,
3832 workgroup_memory: bool = false,
3833 cross_workgroup_memory: bool = false,
3834 atomic_counter_memory: bool = false,
3835 image_memory: bool = false,
3836 output_memory: bool = false,
3837 make_available: bool = false,
3838 make_visible: bool = false,
3839 @"volatile": bool = false,
3840 _reserved_bit_16: bool = false,
3841 _reserved_bit_17: bool = false,
3842 _reserved_bit_18: bool = false,
3843 _reserved_bit_19: bool = false,
3844 _reserved_bit_20: bool = false,
3845 _reserved_bit_21: bool = false,
3846 _reserved_bit_22: bool = false,
3847 _reserved_bit_23: bool = false,
3848 _reserved_bit_24: bool = false,
3849 _reserved_bit_25: bool = false,
3850 _reserved_bit_26: bool = false,
3851 _reserved_bit_27: bool = false,
3852 _reserved_bit_28: bool = false,
3853 _reserved_bit_29: bool = false,
3854 _reserved_bit_30: bool = false,
3855 _reserved_bit_31: bool = false,
3856};
3857pub const MemoryAccess = packed struct {
3858 @"volatile": bool = false,
3859 aligned: bool = false,
3860 nontemporal: bool = false,
3861 make_pointer_available: bool = false,
3862 make_pointer_visible: bool = false,
3863 non_private_pointer: bool = false,
3864 _reserved_bit_6: bool = false,
3865 _reserved_bit_7: bool = false,
3866 _reserved_bit_8: bool = false,
3867 _reserved_bit_9: bool = false,
3868 _reserved_bit_10: bool = false,
3869 _reserved_bit_11: bool = false,
3870 _reserved_bit_12: bool = false,
3871 _reserved_bit_13: bool = false,
3872 _reserved_bit_14: bool = false,
3873 _reserved_bit_15: bool = false,
3874 alias_scope_intel_mask: bool = false,
3875 no_alias_intel_mask: bool = false,
3876 _reserved_bit_18: bool = false,
3877 _reserved_bit_19: bool = false,
3878 _reserved_bit_20: bool = false,
3879 _reserved_bit_21: bool = false,
3880 _reserved_bit_22: bool = false,
3881 _reserved_bit_23: bool = false,
3882 _reserved_bit_24: bool = false,
3883 _reserved_bit_25: bool = false,
3884 _reserved_bit_26: bool = false,
3885 _reserved_bit_27: bool = false,
3886 _reserved_bit_28: bool = false,
3887 _reserved_bit_29: bool = false,
3888 _reserved_bit_30: bool = false,
3889 _reserved_bit_31: bool = false,
3890
3891 pub const Extended = struct {
3892 @"volatile": bool = false,
3893 aligned: ?struct { literal_integer: LiteralInteger } = null,
3894 nontemporal: bool = false,
3895 make_pointer_available: ?struct { id_scope: Id } = null,
3896 make_pointer_visible: ?struct { id_scope: Id } = null,
3897 non_private_pointer: bool = false,
3898 _reserved_bit_6: bool = false,
3899 _reserved_bit_7: bool = false,
3900 _reserved_bit_8: bool = false,
3901 _reserved_bit_9: bool = false,
3902 _reserved_bit_10: bool = false,
3903 _reserved_bit_11: bool = false,
3904 _reserved_bit_12: bool = false,
3905 _reserved_bit_13: bool = false,
3906 _reserved_bit_14: bool = false,
3907 _reserved_bit_15: bool = false,
3908 alias_scope_intel_mask: ?struct { id_ref: Id } = null,
3909 no_alias_intel_mask: ?struct { id_ref: Id } = null,
3910 _reserved_bit_18: bool = false,
3911 _reserved_bit_19: bool = false,
3912 _reserved_bit_20: bool = false,
3913 _reserved_bit_21: bool = false,
3914 _reserved_bit_22: bool = false,
3915 _reserved_bit_23: bool = false,
3916 _reserved_bit_24: bool = false,
3917 _reserved_bit_25: bool = false,
3918 _reserved_bit_26: bool = false,
3919 _reserved_bit_27: bool = false,
3920 _reserved_bit_28: bool = false,
3921 _reserved_bit_29: bool = false,
3922 _reserved_bit_30: bool = false,
3923 _reserved_bit_31: bool = false,
3924 };
3925};
3926pub const KernelProfilingInfo = packed struct {
3927 cmd_exec_time: bool = false,
3928 _reserved_bit_1: bool = false,
3929 _reserved_bit_2: bool = false,
3930 _reserved_bit_3: bool = false,
3931 _reserved_bit_4: bool = false,
3932 _reserved_bit_5: bool = false,
3933 _reserved_bit_6: bool = false,
3934 _reserved_bit_7: bool = false,
3935 _reserved_bit_8: bool = false,
3936 _reserved_bit_9: bool = false,
3937 _reserved_bit_10: bool = false,
3938 _reserved_bit_11: bool = false,
3939 _reserved_bit_12: bool = false,
3940 _reserved_bit_13: bool = false,
3941 _reserved_bit_14: bool = false,
3942 _reserved_bit_15: bool = false,
3943 _reserved_bit_16: bool = false,
3944 _reserved_bit_17: bool = false,
3945 _reserved_bit_18: bool = false,
3946 _reserved_bit_19: bool = false,
3947 _reserved_bit_20: bool = false,
3948 _reserved_bit_21: bool = false,
3949 _reserved_bit_22: bool = false,
3950 _reserved_bit_23: bool = false,
3951 _reserved_bit_24: bool = false,
3952 _reserved_bit_25: bool = false,
3953 _reserved_bit_26: bool = false,
3954 _reserved_bit_27: bool = false,
3955 _reserved_bit_28: bool = false,
3956 _reserved_bit_29: bool = false,
3957 _reserved_bit_30: bool = false,
3958 _reserved_bit_31: bool = false,
3959};
3960pub const RayFlags = packed struct {
3961 opaque_khr: bool = false,
3962 no_opaque_khr: bool = false,
3963 terminate_on_first_hit_khr: bool = false,
3964 skip_closest_hit_shader_khr: bool = false,
3965 cull_back_facing_triangles_khr: bool = false,
3966 cull_front_facing_triangles_khr: bool = false,
3967 cull_opaque_khr: bool = false,
3968 cull_no_opaque_khr: bool = false,
3969 skip_triangles_khr: bool = false,
3970 skip_aab_bs_khr: bool = false,
3971 force_opacity_micromap2state_ext: bool = false,
3972 _reserved_bit_11: bool = false,
3973 _reserved_bit_12: bool = false,
3974 _reserved_bit_13: bool = false,
3975 _reserved_bit_14: bool = false,
3976 _reserved_bit_15: bool = false,
3977 _reserved_bit_16: bool = false,
3978 _reserved_bit_17: bool = false,
3979 _reserved_bit_18: bool = false,
3980 _reserved_bit_19: bool = false,
3981 _reserved_bit_20: bool = false,
3982 _reserved_bit_21: bool = false,
3983 _reserved_bit_22: bool = false,
3984 _reserved_bit_23: bool = false,
3985 _reserved_bit_24: bool = false,
3986 _reserved_bit_25: bool = false,
3987 _reserved_bit_26: bool = false,
3988 _reserved_bit_27: bool = false,
3989 _reserved_bit_28: bool = false,
3990 _reserved_bit_29: bool = false,
3991 _reserved_bit_30: bool = false,
3992 _reserved_bit_31: bool = false,
3993};
3994pub const FragmentShadingRate = packed struct {
3995 vertical2pixels: bool = false,
3996 vertical4pixels: bool = false,
3997 horizontal2pixels: bool = false,
3998 horizontal4pixels: bool = false,
3999 _reserved_bit_4: bool = false,
4000 _reserved_bit_5: bool = false,
4001 _reserved_bit_6: bool = false,
4002 _reserved_bit_7: bool = false,
4003 _reserved_bit_8: bool = false,
4004 _reserved_bit_9: bool = false,
4005 _reserved_bit_10: bool = false,
4006 _reserved_bit_11: bool = false,
4007 _reserved_bit_12: bool = false,
4008 _reserved_bit_13: bool = false,
4009 _reserved_bit_14: bool = false,
4010 _reserved_bit_15: bool = false,
4011 _reserved_bit_16: bool = false,
4012 _reserved_bit_17: bool = false,
4013 _reserved_bit_18: bool = false,
4014 _reserved_bit_19: bool = false,
4015 _reserved_bit_20: bool = false,
4016 _reserved_bit_21: bool = false,
4017 _reserved_bit_22: bool = false,
4018 _reserved_bit_23: bool = false,
4019 _reserved_bit_24: bool = false,
4020 _reserved_bit_25: bool = false,
4021 _reserved_bit_26: bool = false,
4022 _reserved_bit_27: bool = false,
4023 _reserved_bit_28: bool = false,
4024 _reserved_bit_29: bool = false,
4025 _reserved_bit_30: bool = false,
4026 _reserved_bit_31: bool = false,
4027};
4028pub const RawAccessChainOperands = packed struct {
4029 robustness_per_component_nv: bool = false,
4030 robustness_per_element_nv: bool = false,
4031 _reserved_bit_2: bool = false,
4032 _reserved_bit_3: bool = false,
4033 _reserved_bit_4: bool = false,
4034 _reserved_bit_5: bool = false,
4035 _reserved_bit_6: bool = false,
4036 _reserved_bit_7: bool = false,
4037 _reserved_bit_8: bool = false,
4038 _reserved_bit_9: bool = false,
4039 _reserved_bit_10: bool = false,
4040 _reserved_bit_11: bool = false,
4041 _reserved_bit_12: bool = false,
4042 _reserved_bit_13: bool = false,
4043 _reserved_bit_14: bool = false,
4044 _reserved_bit_15: bool = false,
4045 _reserved_bit_16: bool = false,
4046 _reserved_bit_17: bool = false,
4047 _reserved_bit_18: bool = false,
4048 _reserved_bit_19: bool = false,
4049 _reserved_bit_20: bool = false,
4050 _reserved_bit_21: bool = false,
4051 _reserved_bit_22: bool = false,
4052 _reserved_bit_23: bool = false,
4053 _reserved_bit_24: bool = false,
4054 _reserved_bit_25: bool = false,
4055 _reserved_bit_26: bool = false,
4056 _reserved_bit_27: bool = false,
4057 _reserved_bit_28: bool = false,
4058 _reserved_bit_29: bool = false,
4059 _reserved_bit_30: bool = false,
4060 _reserved_bit_31: bool = false,
4061};
4062pub const SourceLanguage = enum(u32) {
4063 unknown = 0,
4064 essl = 1,
4065 glsl = 2,
4066 open_cl_c = 3,
4067 open_cl_cpp = 4,
4068 hlsl = 5,
4069 cpp_for_open_cl = 6,
4070 sycl = 7,
4071 hero_c = 8,
4072 nzsl = 9,
4073 wgsl = 10,
4074 slang = 11,
4075 zig = 12,
4076 rust = 13,
4077};
4078pub const ExecutionModel = enum(u32) {
4079 vertex = 0,
4080 tessellation_control = 1,
4081 tessellation_evaluation = 2,
4082 geometry = 3,
4083 fragment = 4,
4084 gl_compute = 5,
4085 kernel = 6,
4086 task_nv = 5267,
4087 mesh_nv = 5268,
4088 ray_generation_khr = 5313,
4089 intersection_khr = 5314,
4090 any_hit_khr = 5315,
4091 closest_hit_khr = 5316,
4092 miss_khr = 5317,
4093 callable_khr = 5318,
4094 task_ext = 5364,
4095 mesh_ext = 5365,
4096};
4097pub const AddressingModel = enum(u32) {
4098 logical = 0,
4099 physical32 = 1,
4100 physical64 = 2,
4101 physical_storage_buffer64 = 5348,
4102};
4103pub const MemoryModel = enum(u32) {
4104 simple = 0,
4105 glsl450 = 1,
4106 open_cl = 2,
4107 vulkan = 3,
4108};
4109pub const ExecutionMode = enum(u32) {
4110 invocations = 0,
4111 spacing_equal = 1,
4112 spacing_fractional_even = 2,
4113 spacing_fractional_odd = 3,
4114 vertex_order_cw = 4,
4115 vertex_order_ccw = 5,
4116 pixel_center_integer = 6,
4117 origin_upper_left = 7,
4118 origin_lower_left = 8,
4119 early_fragment_tests = 9,
4120 point_mode = 10,
4121 xfb = 11,
4122 depth_replacing = 12,
4123 depth_greater = 14,
4124 depth_less = 15,
4125 depth_unchanged = 16,
4126 local_size = 17,
4127 local_size_hint = 18,
4128 input_points = 19,
4129 input_lines = 20,
4130 input_lines_adjacency = 21,
4131 triangles = 22,
4132 input_triangles_adjacency = 23,
4133 quads = 24,
4134 isolines = 25,
4135 output_vertices = 26,
4136 output_points = 27,
4137 output_line_strip = 28,
4138 output_triangle_strip = 29,
4139 vec_type_hint = 30,
4140 contraction_off = 31,
4141 initializer = 33,
4142 finalizer = 34,
4143 subgroup_size = 35,
4144 subgroups_per_workgroup = 36,
4145 subgroups_per_workgroup_id = 37,
4146 local_size_id = 38,
4147 local_size_hint_id = 39,
4148 non_coherent_color_attachment_read_ext = 4169,
4149 non_coherent_depth_attachment_read_ext = 4170,
4150 non_coherent_stencil_attachment_read_ext = 4171,
4151 subgroup_uniform_control_flow_khr = 4421,
4152 post_depth_coverage = 4446,
4153 denorm_preserve = 4459,
4154 denorm_flush_to_zero = 4460,
4155 signed_zero_inf_nan_preserve = 4461,
4156 rounding_mode_rte = 4462,
4157 rounding_mode_rtz = 4463,
4158 non_coherent_tile_attachment_read_qcom = 4489,
4159 tile_shading_rate_qcom = 4490,
4160 early_and_late_fragment_tests_amd = 5017,
4161 stencil_ref_replacing_ext = 5027,
4162 coalescing_amdx = 5069,
4163 is_api_entry_amdx = 5070,
4164 max_node_recursion_amdx = 5071,
4165 static_num_workgroups_amdx = 5072,
4166 shader_index_amdx = 5073,
4167 max_num_workgroups_amdx = 5077,
4168 stencil_ref_unchanged_front_amd = 5079,
4169 stencil_ref_greater_front_amd = 5080,
4170 stencil_ref_less_front_amd = 5081,
4171 stencil_ref_unchanged_back_amd = 5082,
4172 stencil_ref_greater_back_amd = 5083,
4173 stencil_ref_less_back_amd = 5084,
4174 quad_derivatives_khr = 5088,
4175 require_full_quads_khr = 5089,
4176 shares_input_with_amdx = 5102,
4177 output_lines_ext = 5269,
4178 output_primitives_ext = 5270,
4179 derivative_group_quads_khr = 5289,
4180 derivative_group_linear_khr = 5290,
4181 output_triangles_ext = 5298,
4182 pixel_interlock_ordered_ext = 5366,
4183 pixel_interlock_unordered_ext = 5367,
4184 sample_interlock_ordered_ext = 5368,
4185 sample_interlock_unordered_ext = 5369,
4186 shading_rate_interlock_ordered_ext = 5370,
4187 shading_rate_interlock_unordered_ext = 5371,
4188 shared_local_memory_size_intel = 5618,
4189 rounding_mode_rtpintel = 5620,
4190 rounding_mode_rtnintel = 5621,
4191 floating_point_mode_altintel = 5622,
4192 floating_point_mode_ieeeintel = 5623,
4193 max_workgroup_size_intel = 5893,
4194 max_work_dim_intel = 5894,
4195 no_global_offset_intel = 5895,
4196 num_simd_workitems_intel = 5896,
4197 scheduler_target_fmax_mhz_intel = 5903,
4198 maximally_reconverges_khr = 6023,
4199 fp_fast_math_default = 6028,
4200 streaming_interface_intel = 6154,
4201 register_map_interface_intel = 6160,
4202 named_barrier_count_intel = 6417,
4203 maximum_registers_intel = 6461,
4204 maximum_registers_id_intel = 6462,
4205 named_maximum_registers_intel = 6463,
4206
4207 pub const Extended = union(ExecutionMode) {
4208 invocations: struct { literal_integer: LiteralInteger },
4209 spacing_equal,
4210 spacing_fractional_even,
4211 spacing_fractional_odd,
4212 vertex_order_cw,
4213 vertex_order_ccw,
4214 pixel_center_integer,
4215 origin_upper_left,
4216 origin_lower_left,
4217 early_fragment_tests,
4218 point_mode,
4219 xfb,
4220 depth_replacing,
4221 depth_greater,
4222 depth_less,
4223 depth_unchanged,
4224 local_size: struct { x_size: LiteralInteger, y_size: LiteralInteger, z_size: LiteralInteger },
4225 local_size_hint: struct { x_size: LiteralInteger, y_size: LiteralInteger, z_size: LiteralInteger },
4226 input_points,
4227 input_lines,
4228 input_lines_adjacency,
4229 triangles,
4230 input_triangles_adjacency,
4231 quads,
4232 isolines,
4233 output_vertices: struct { vertex_count: LiteralInteger },
4234 output_points,
4235 output_line_strip,
4236 output_triangle_strip,
4237 vec_type_hint: struct { vector_type: LiteralInteger },
4238 contraction_off,
4239 initializer,
4240 finalizer,
4241 subgroup_size: struct { subgroup_size: LiteralInteger },
4242 subgroups_per_workgroup: struct { subgroups_per_workgroup: LiteralInteger },
4243 subgroups_per_workgroup_id: struct { subgroups_per_workgroup: Id },
4244 local_size_id: struct { x_size: Id, y_size: Id, z_size: Id },
4245 local_size_hint_id: struct { x_size_hint: Id, y_size_hint: Id, z_size_hint: Id },
4246 non_coherent_color_attachment_read_ext,
4247 non_coherent_depth_attachment_read_ext,
4248 non_coherent_stencil_attachment_read_ext,
4249 subgroup_uniform_control_flow_khr,
4250 post_depth_coverage,
4251 denorm_preserve: struct { target_width: LiteralInteger },
4252 denorm_flush_to_zero: struct { target_width: LiteralInteger },
4253 signed_zero_inf_nan_preserve: struct { target_width: LiteralInteger },
4254 rounding_mode_rte: struct { target_width: LiteralInteger },
4255 rounding_mode_rtz: struct { target_width: LiteralInteger },
4256 non_coherent_tile_attachment_read_qcom,
4257 tile_shading_rate_qcom: struct { x_rate: LiteralInteger, y_rate: LiteralInteger, z_rate: LiteralInteger },
4258 early_and_late_fragment_tests_amd,
4259 stencil_ref_replacing_ext,
4260 coalescing_amdx,
4261 is_api_entry_amdx: struct { is_entry: Id },
4262 max_node_recursion_amdx: struct { number_of_recursions: Id },
4263 static_num_workgroups_amdx: struct { x_size: Id, y_size: Id, z_size: Id },
4264 shader_index_amdx: struct { shader_index: Id },
4265 max_num_workgroups_amdx: struct { x_size: Id, y_size: Id, z_size: Id },
4266 stencil_ref_unchanged_front_amd,
4267 stencil_ref_greater_front_amd,
4268 stencil_ref_less_front_amd,
4269 stencil_ref_unchanged_back_amd,
4270 stencil_ref_greater_back_amd,
4271 stencil_ref_less_back_amd,
4272 quad_derivatives_khr,
4273 require_full_quads_khr,
4274 shares_input_with_amdx: struct { node_name: Id, shader_index: Id },
4275 output_lines_ext,
4276 output_primitives_ext: struct { primitive_count: LiteralInteger },
4277 derivative_group_quads_khr,
4278 derivative_group_linear_khr,
4279 output_triangles_ext,
4280 pixel_interlock_ordered_ext,
4281 pixel_interlock_unordered_ext,
4282 sample_interlock_ordered_ext,
4283 sample_interlock_unordered_ext,
4284 shading_rate_interlock_ordered_ext,
4285 shading_rate_interlock_unordered_ext,
4286 shared_local_memory_size_intel: struct { size: LiteralInteger },
4287 rounding_mode_rtpintel: struct { target_width: LiteralInteger },
4288 rounding_mode_rtnintel: struct { target_width: LiteralInteger },
4289 floating_point_mode_altintel: struct { target_width: LiteralInteger },
4290 floating_point_mode_ieeeintel: struct { target_width: LiteralInteger },
4291 max_workgroup_size_intel: struct { literal_integer_0: LiteralInteger, literal_integer_1: LiteralInteger, literal_integer_2: LiteralInteger },
4292 max_work_dim_intel: struct { literal_integer: LiteralInteger },
4293 no_global_offset_intel,
4294 num_simd_workitems_intel: struct { literal_integer: LiteralInteger },
4295 scheduler_target_fmax_mhz_intel: struct { literal_integer: LiteralInteger },
4296 maximally_reconverges_khr,
4297 fp_fast_math_default: struct { target_type: Id, id_ref_1: Id },
4298 streaming_interface_intel: struct { stall_free_return: LiteralInteger },
4299 register_map_interface_intel: struct { wait_for_done_write: LiteralInteger },
4300 named_barrier_count_intel: struct { barrier_count: LiteralInteger },
4301 maximum_registers_intel: struct { number_of_registers: LiteralInteger },
4302 maximum_registers_id_intel: struct { number_of_registers: Id },
4303 named_maximum_registers_intel: struct { named_maximum_number_of_registers: NamedMaximumNumberOfRegisters },
4304 };
4305};
4306pub const StorageClass = enum(u32) {
4307 uniform_constant = 0,
4308 input = 1,
4309 uniform = 2,
4310 output = 3,
4311 workgroup = 4,
4312 cross_workgroup = 5,
4313 private = 6,
4314 function = 7,
4315 generic = 8,
4316 push_constant = 9,
4317 atomic_counter = 10,
4318 image = 11,
4319 storage_buffer = 12,
4320 tile_image_ext = 4172,
4321 tile_attachment_qcom = 4491,
4322 node_payload_amdx = 5068,
4323 callable_data_khr = 5328,
4324 incoming_callable_data_khr = 5329,
4325 ray_payload_khr = 5338,
4326 hit_attribute_khr = 5339,
4327 incoming_ray_payload_khr = 5342,
4328 shader_record_buffer_khr = 5343,
4329 physical_storage_buffer = 5349,
4330 hit_object_attribute_nv = 5385,
4331 task_payload_workgroup_ext = 5402,
4332 code_section_intel = 5605,
4333 device_only_intel = 5936,
4334 host_only_intel = 5937,
4335};
4336pub const Dim = enum(u32) {
4337 @"1d" = 0,
4338 @"2d" = 1,
4339 @"3d" = 2,
4340 cube = 3,
4341 rect = 4,
4342 buffer = 5,
4343 subpass_data = 6,
4344 tile_image_data_ext = 4173,
4345};
4346pub const SamplerAddressingMode = enum(u32) {
4347 none = 0,
4348 clamp_to_edge = 1,
4349 clamp = 2,
4350 repeat = 3,
4351 repeat_mirrored = 4,
4352};
4353pub const SamplerFilterMode = enum(u32) {
4354 nearest = 0,
4355 linear = 1,
4356};
4357pub const ImageFormat = enum(u32) {
4358 unknown = 0,
4359 rgba32f = 1,
4360 rgba16f = 2,
4361 r32f = 3,
4362 rgba8 = 4,
4363 rgba8snorm = 5,
4364 rg32f = 6,
4365 rg16f = 7,
4366 r11f_g11f_b10f = 8,
4367 r16f = 9,
4368 rgba16 = 10,
4369 rgb10a2 = 11,
4370 rg16 = 12,
4371 rg8 = 13,
4372 r16 = 14,
4373 r8 = 15,
4374 rgba16snorm = 16,
4375 rg16snorm = 17,
4376 rg8snorm = 18,
4377 r16snorm = 19,
4378 r8snorm = 20,
4379 rgba32i = 21,
4380 rgba16i = 22,
4381 rgba8i = 23,
4382 r32i = 24,
4383 rg32i = 25,
4384 rg16i = 26,
4385 rg8i = 27,
4386 r16i = 28,
4387 r8i = 29,
4388 rgba32ui = 30,
4389 rgba16ui = 31,
4390 rgba8ui = 32,
4391 r32ui = 33,
4392 rgb10a2ui = 34,
4393 rg32ui = 35,
4394 rg16ui = 36,
4395 rg8ui = 37,
4396 r16ui = 38,
4397 r8ui = 39,
4398 r64ui = 40,
4399 r64i = 41,
4400};
4401pub const ImageChannelOrder = enum(u32) {
4402 r = 0,
4403 a = 1,
4404 rg = 2,
4405 ra = 3,
4406 rgb = 4,
4407 rgba = 5,
4408 bgra = 6,
4409 argb = 7,
4410 intensity = 8,
4411 luminance = 9,
4412 rx = 10,
4413 r_gx = 11,
4414 rg_bx = 12,
4415 depth = 13,
4416 depth_stencil = 14,
4417 s_rgb = 15,
4418 s_rg_bx = 16,
4419 s_rgba = 17,
4420 s_bgra = 18,
4421 abgr = 19,
4422};
4423pub const ImageChannelDataType = enum(u32) {
4424 snorm_int8 = 0,
4425 snorm_int16 = 1,
4426 unorm_int8 = 2,
4427 unorm_int16 = 3,
4428 unorm_short565 = 4,
4429 unorm_short555 = 5,
4430 unorm_int101010 = 6,
4431 signed_int8 = 7,
4432 signed_int16 = 8,
4433 signed_int32 = 9,
4434 unsigned_int8 = 10,
4435 unsigned_int16 = 11,
4436 unsigned_int32 = 12,
4437 half_float = 13,
4438 float = 14,
4439 unorm_int24 = 15,
4440 unorm_int101010_2 = 16,
4441 unorm_int10x6ext = 17,
4442 unsigned_int_raw10ext = 19,
4443 unsigned_int_raw12ext = 20,
4444 unorm_int2_101010ext = 21,
4445 unsigned_int10x6ext = 22,
4446 unsigned_int12x4ext = 23,
4447 unsigned_int14x2ext = 24,
4448 unorm_int12x4ext = 25,
4449 unorm_int14x2ext = 26,
4450};
4451pub const FPRoundingMode = enum(u32) {
4452 rte = 0,
4453 rtz = 1,
4454 rtp = 2,
4455 rtn = 3,
4456};
4457pub const FPDenormMode = enum(u32) {
4458 preserve = 0,
4459 flush_to_zero = 1,
4460};
4461pub const QuantizationModes = enum(u32) {
4462 trn = 0,
4463 trn_zero = 1,
4464 rnd = 2,
4465 rnd_zero = 3,
4466 rnd_inf = 4,
4467 rnd_min_inf = 5,
4468 rnd_conv = 6,
4469 rnd_conv_odd = 7,
4470};
4471pub const FPOperationMode = enum(u32) {
4472 ieee = 0,
4473 alt = 1,
4474};
4475pub const OverflowModes = enum(u32) {
4476 wrap = 0,
4477 sat = 1,
4478 sat_zero = 2,
4479 sat_sym = 3,
4480};
4481pub const LinkageType = enum(u32) {
4482 @"export" = 0,
4483 import = 1,
4484 link_once_odr = 2,
4485};
4486pub const AccessQualifier = enum(u32) {
4487 read_only = 0,
4488 write_only = 1,
4489 read_write = 2,
4490};
4491pub const HostAccessQualifier = enum(u32) {
4492 none_intel = 0,
4493 read_intel = 1,
4494 write_intel = 2,
4495 read_write_intel = 3,
4496};
4497pub const FunctionParameterAttribute = enum(u32) {
4498 zext = 0,
4499 sext = 1,
4500 by_val = 2,
4501 sret = 3,
4502 no_alias = 4,
4503 no_capture = 5,
4504 no_write = 6,
4505 no_read_write = 7,
4506 runtime_aligned_intel = 5940,
4507};
4508pub const Decoration = enum(u32) {
4509 relaxed_precision = 0,
4510 spec_id = 1,
4511 block = 2,
4512 buffer_block = 3,
4513 row_major = 4,
4514 col_major = 5,
4515 array_stride = 6,
4516 matrix_stride = 7,
4517 glsl_shared = 8,
4518 glsl_packed = 9,
4519 c_packed = 10,
4520 built_in = 11,
4521 no_perspective = 13,
4522 flat = 14,
4523 patch = 15,
4524 centroid = 16,
4525 sample = 17,
4526 invariant = 18,
4527 restrict = 19,
4528 aliased = 20,
4529 @"volatile" = 21,
4530 constant = 22,
4531 coherent = 23,
4532 non_writable = 24,
4533 non_readable = 25,
4534 uniform = 26,
4535 uniform_id = 27,
4536 saturated_conversion = 28,
4537 stream = 29,
4538 location = 30,
4539 component = 31,
4540 index = 32,
4541 binding = 33,
4542 descriptor_set = 34,
4543 offset = 35,
4544 xfb_buffer = 36,
4545 xfb_stride = 37,
4546 func_param_attr = 38,
4547 fp_rounding_mode = 39,
4548 fp_fast_math_mode = 40,
4549 linkage_attributes = 41,
4550 no_contraction = 42,
4551 input_attachment_index = 43,
4552 alignment = 44,
4553 max_byte_offset = 45,
4554 alignment_id = 46,
4555 max_byte_offset_id = 47,
4556 saturated_to_largest_float8normal_conversion_ext = 4216,
4557 no_signed_wrap = 4469,
4558 no_unsigned_wrap = 4470,
4559 weight_texture_qcom = 4487,
4560 block_match_texture_qcom = 4488,
4561 block_match_sampler_qcom = 4499,
4562 explicit_interp_amd = 4999,
4563 node_shares_payload_limits_with_amdx = 5019,
4564 node_max_payloads_amdx = 5020,
4565 track_finish_writing_amdx = 5078,
4566 payload_node_name_amdx = 5091,
4567 payload_node_base_index_amdx = 5098,
4568 payload_node_sparse_array_amdx = 5099,
4569 payload_node_array_size_amdx = 5100,
4570 payload_dispatch_indirect_amdx = 5105,
4571 override_coverage_nv = 5248,
4572 passthrough_nv = 5250,
4573 viewport_relative_nv = 5252,
4574 secondary_viewport_relative_nv = 5256,
4575 per_primitive_ext = 5271,
4576 per_view_nv = 5272,
4577 per_task_nv = 5273,
4578 per_vertex_khr = 5285,
4579 non_uniform = 5300,
4580 restrict_pointer = 5355,
4581 aliased_pointer = 5356,
4582 hit_object_shader_record_buffer_nv = 5386,
4583 bindless_sampler_nv = 5398,
4584 bindless_image_nv = 5399,
4585 bound_sampler_nv = 5400,
4586 bound_image_nv = 5401,
4587 simt_call_intel = 5599,
4588 referenced_indirectly_intel = 5602,
4589 clobber_intel = 5607,
4590 side_effects_intel = 5608,
4591 vector_compute_variable_intel = 5624,
4592 func_param_io_kind_intel = 5625,
4593 vector_compute_function_intel = 5626,
4594 stack_call_intel = 5627,
4595 global_variable_offset_intel = 5628,
4596 counter_buffer = 5634,
4597 user_semantic = 5635,
4598 user_type_google = 5636,
4599 function_rounding_mode_intel = 5822,
4600 function_denorm_mode_intel = 5823,
4601 register_intel = 5825,
4602 memory_intel = 5826,
4603 numbanks_intel = 5827,
4604 bankwidth_intel = 5828,
4605 max_private_copies_intel = 5829,
4606 singlepump_intel = 5830,
4607 doublepump_intel = 5831,
4608 max_replicates_intel = 5832,
4609 simple_dual_port_intel = 5833,
4610 merge_intel = 5834,
4611 bank_bits_intel = 5835,
4612 force_pow2depth_intel = 5836,
4613 stridesize_intel = 5883,
4614 wordsize_intel = 5884,
4615 true_dual_port_intel = 5885,
4616 burst_coalesce_intel = 5899,
4617 cache_size_intel = 5900,
4618 dont_statically_coalesce_intel = 5901,
4619 prefetch_intel = 5902,
4620 stall_enable_intel = 5905,
4621 fuse_loops_in_function_intel = 5907,
4622 math_op_dsp_mode_intel = 5909,
4623 alias_scope_intel = 5914,
4624 no_alias_intel = 5915,
4625 initiation_interval_intel = 5917,
4626 max_concurrency_intel = 5918,
4627 pipeline_enable_intel = 5919,
4628 buffer_location_intel = 5921,
4629 io_pipe_storage_intel = 5944,
4630 function_floating_point_mode_intel = 6080,
4631 single_element_vector_intel = 6085,
4632 vector_compute_callable_function_intel = 6087,
4633 media_block_iointel = 6140,
4634 stall_free_intel = 6151,
4635 fp_max_error_decoration_intel = 6170,
4636 latency_control_label_intel = 6172,
4637 latency_control_constraint_intel = 6173,
4638 conduit_kernel_argument_intel = 6175,
4639 register_map_kernel_argument_intel = 6176,
4640 mm_host_interface_address_width_intel = 6177,
4641 mm_host_interface_data_width_intel = 6178,
4642 mm_host_interface_latency_intel = 6179,
4643 mm_host_interface_read_write_mode_intel = 6180,
4644 mm_host_interface_max_burst_intel = 6181,
4645 mm_host_interface_wait_request_intel = 6182,
4646 stable_kernel_argument_intel = 6183,
4647 host_access_intel = 6188,
4648 init_mode_intel = 6190,
4649 implement_in_register_map_intel = 6191,
4650 cache_control_load_intel = 6442,
4651 cache_control_store_intel = 6443,
4652
4653 pub const Extended = union(Decoration) {
4654 relaxed_precision,
4655 spec_id: struct { specialization_constant_id: LiteralInteger },
4656 block,
4657 buffer_block,
4658 row_major,
4659 col_major,
4660 array_stride: struct { array_stride: LiteralInteger },
4661 matrix_stride: struct { matrix_stride: LiteralInteger },
4662 glsl_shared,
4663 glsl_packed,
4664 c_packed,
4665 built_in: struct { built_in: BuiltIn },
4666 no_perspective,
4667 flat,
4668 patch,
4669 centroid,
4670 sample,
4671 invariant,
4672 restrict,
4673 aliased,
4674 @"volatile",
4675 constant,
4676 coherent,
4677 non_writable,
4678 non_readable,
4679 uniform,
4680 uniform_id: struct { execution: Id },
4681 saturated_conversion,
4682 stream: struct { stream_number: LiteralInteger },
4683 location: struct { location: LiteralInteger },
4684 component: struct { component: LiteralInteger },
4685 index: struct { index: LiteralInteger },
4686 binding: struct { binding_point: LiteralInteger },
4687 descriptor_set: struct { descriptor_set: LiteralInteger },
4688 offset: struct { byte_offset: LiteralInteger },
4689 xfb_buffer: struct { xfb_buffer_number: LiteralInteger },
4690 xfb_stride: struct { xfb_stride: LiteralInteger },
4691 func_param_attr: struct { function_parameter_attribute: FunctionParameterAttribute },
4692 fp_rounding_mode: struct { fp_rounding_mode: FPRoundingMode },
4693 fp_fast_math_mode: struct { fp_fast_math_mode: FPFastMathMode },
4694 linkage_attributes: struct { name: LiteralString, linkage_type: LinkageType },
4695 no_contraction,
4696 input_attachment_index: struct { attachment_index: LiteralInteger },
4697 alignment: struct { alignment: LiteralInteger },
4698 max_byte_offset: struct { max_byte_offset: LiteralInteger },
4699 alignment_id: struct { alignment: Id },
4700 max_byte_offset_id: struct { max_byte_offset: Id },
4701 saturated_to_largest_float8normal_conversion_ext,
4702 no_signed_wrap,
4703 no_unsigned_wrap,
4704 weight_texture_qcom,
4705 block_match_texture_qcom,
4706 block_match_sampler_qcom,
4707 explicit_interp_amd,
4708 node_shares_payload_limits_with_amdx: struct { payload_type: Id },
4709 node_max_payloads_amdx: struct { max_number_of_payloads: Id },
4710 track_finish_writing_amdx,
4711 payload_node_name_amdx: struct { node_name: Id },
4712 payload_node_base_index_amdx: struct { base_index: Id },
4713 payload_node_sparse_array_amdx,
4714 payload_node_array_size_amdx: struct { array_size: Id },
4715 payload_dispatch_indirect_amdx,
4716 override_coverage_nv,
4717 passthrough_nv,
4718 viewport_relative_nv,
4719 secondary_viewport_relative_nv: struct { offset: LiteralInteger },
4720 per_primitive_ext,
4721 per_view_nv,
4722 per_task_nv,
4723 per_vertex_khr,
4724 non_uniform,
4725 restrict_pointer,
4726 aliased_pointer,
4727 hit_object_shader_record_buffer_nv,
4728 bindless_sampler_nv,
4729 bindless_image_nv,
4730 bound_sampler_nv,
4731 bound_image_nv,
4732 simt_call_intel: struct { n: LiteralInteger },
4733 referenced_indirectly_intel,
4734 clobber_intel: struct { register: LiteralString },
4735 side_effects_intel,
4736 vector_compute_variable_intel,
4737 func_param_io_kind_intel: struct { kind: LiteralInteger },
4738 vector_compute_function_intel,
4739 stack_call_intel,
4740 global_variable_offset_intel: struct { offset: LiteralInteger },
4741 counter_buffer: struct { counter_buffer: Id },
4742 user_semantic: struct { semantic: LiteralString },
4743 user_type_google: struct { user_type: LiteralString },
4744 function_rounding_mode_intel: struct { target_width: LiteralInteger, fp_rounding_mode: FPRoundingMode },
4745 function_denorm_mode_intel: struct { target_width: LiteralInteger, fp_denorm_mode: FPDenormMode },
4746 register_intel,
4747 memory_intel: struct { memory_type: LiteralString },
4748 numbanks_intel: struct { banks: LiteralInteger },
4749 bankwidth_intel: struct { bank_width: LiteralInteger },
4750 max_private_copies_intel: struct { maximum_copies: LiteralInteger },
4751 singlepump_intel,
4752 doublepump_intel,
4753 max_replicates_intel: struct { maximum_replicates: LiteralInteger },
4754 simple_dual_port_intel,
4755 merge_intel: struct { merge_key: LiteralString, merge_type: LiteralString },
4756 bank_bits_intel: struct { bank_bits: []const LiteralInteger = &.{} },
4757 force_pow2depth_intel: struct { force_key: LiteralInteger },
4758 stridesize_intel: struct { stride_size: LiteralInteger },
4759 wordsize_intel: struct { word_size: LiteralInteger },
4760 true_dual_port_intel,
4761 burst_coalesce_intel,
4762 cache_size_intel: struct { cache_size_in_bytes: LiteralInteger },
4763 dont_statically_coalesce_intel,
4764 prefetch_intel: struct { prefetcher_size_in_bytes: LiteralInteger },
4765 stall_enable_intel,
4766 fuse_loops_in_function_intel,
4767 math_op_dsp_mode_intel: struct { mode: LiteralInteger, propagate: LiteralInteger },
4768 alias_scope_intel: struct { aliasing_scopes_list: Id },
4769 no_alias_intel: struct { aliasing_scopes_list: Id },
4770 initiation_interval_intel: struct { cycles: LiteralInteger },
4771 max_concurrency_intel: struct { invocations: LiteralInteger },
4772 pipeline_enable_intel: struct { enable: LiteralInteger },
4773 buffer_location_intel: struct { buffer_location_id: LiteralInteger },
4774 io_pipe_storage_intel: struct { io_pipe_id: LiteralInteger },
4775 function_floating_point_mode_intel: struct { target_width: LiteralInteger, fp_operation_mode: FPOperationMode },
4776 single_element_vector_intel,
4777 vector_compute_callable_function_intel,
4778 media_block_iointel,
4779 stall_free_intel,
4780 fp_max_error_decoration_intel: struct { max_error: LiteralFloat },
4781 latency_control_label_intel: struct { latency_label: LiteralInteger },
4782 latency_control_constraint_intel: struct { relative_to: LiteralInteger, control_type: LiteralInteger, relative_cycle: LiteralInteger },
4783 conduit_kernel_argument_intel,
4784 register_map_kernel_argument_intel,
4785 mm_host_interface_address_width_intel: struct { address_width: LiteralInteger },
4786 mm_host_interface_data_width_intel: struct { data_width: LiteralInteger },
4787 mm_host_interface_latency_intel: struct { latency: LiteralInteger },
4788 mm_host_interface_read_write_mode_intel: struct { read_write_mode: AccessQualifier },
4789 mm_host_interface_max_burst_intel: struct { max_burst_count: LiteralInteger },
4790 mm_host_interface_wait_request_intel: struct { waitrequest: LiteralInteger },
4791 stable_kernel_argument_intel,
4792 host_access_intel: struct { access: HostAccessQualifier, name: LiteralString },
4793 init_mode_intel: struct { trigger: InitializationModeQualifier },
4794 implement_in_register_map_intel: struct { value: LiteralInteger },
4795 cache_control_load_intel: struct { cache_level: LiteralInteger, cache_control: LoadCacheControl },
4796 cache_control_store_intel: struct { cache_level: LiteralInteger, cache_control: StoreCacheControl },
4797 };
4798};
4799pub const BuiltIn = enum(u32) {
4800 position = 0,
4801 point_size = 1,
4802 clip_distance = 3,
4803 cull_distance = 4,
4804 vertex_id = 5,
4805 instance_id = 6,
4806 primitive_id = 7,
4807 invocation_id = 8,
4808 layer = 9,
4809 viewport_index = 10,
4810 tess_level_outer = 11,
4811 tess_level_inner = 12,
4812 tess_coord = 13,
4813 patch_vertices = 14,
4814 frag_coord = 15,
4815 point_coord = 16,
4816 front_facing = 17,
4817 sample_id = 18,
4818 sample_position = 19,
4819 sample_mask = 20,
4820 frag_depth = 22,
4821 helper_invocation = 23,
4822 num_workgroups = 24,
4823 workgroup_size = 25,
4824 workgroup_id = 26,
4825 local_invocation_id = 27,
4826 global_invocation_id = 28,
4827 local_invocation_index = 29,
4828 work_dim = 30,
4829 global_size = 31,
4830 enqueued_workgroup_size = 32,
4831 global_offset = 33,
4832 global_linear_id = 34,
4833 subgroup_size = 36,
4834 subgroup_max_size = 37,
4835 num_subgroups = 38,
4836 num_enqueued_subgroups = 39,
4837 subgroup_id = 40,
4838 subgroup_local_invocation_id = 41,
4839 vertex_index = 42,
4840 instance_index = 43,
4841 core_idarm = 4160,
4842 core_count_arm = 4161,
4843 core_max_idarm = 4162,
4844 warp_idarm = 4163,
4845 warp_max_idarm = 4164,
4846 subgroup_eq_mask = 4416,
4847 subgroup_ge_mask = 4417,
4848 subgroup_gt_mask = 4418,
4849 subgroup_le_mask = 4419,
4850 subgroup_lt_mask = 4420,
4851 base_vertex = 4424,
4852 base_instance = 4425,
4853 draw_index = 4426,
4854 primitive_shading_rate_khr = 4432,
4855 device_index = 4438,
4856 view_index = 4440,
4857 shading_rate_khr = 4444,
4858 tile_offset_qcom = 4492,
4859 tile_dimension_qcom = 4493,
4860 tile_apron_size_qcom = 4494,
4861 bary_coord_no_persp_amd = 4992,
4862 bary_coord_no_persp_centroid_amd = 4993,
4863 bary_coord_no_persp_sample_amd = 4994,
4864 bary_coord_smooth_amd = 4995,
4865 bary_coord_smooth_centroid_amd = 4996,
4866 bary_coord_smooth_sample_amd = 4997,
4867 bary_coord_pull_model_amd = 4998,
4868 frag_stencil_ref_ext = 5014,
4869 remaining_recursion_levels_amdx = 5021,
4870 shader_index_amdx = 5073,
4871 viewport_mask_nv = 5253,
4872 secondary_position_nv = 5257,
4873 secondary_viewport_mask_nv = 5258,
4874 position_per_view_nv = 5261,
4875 viewport_mask_per_view_nv = 5262,
4876 fully_covered_ext = 5264,
4877 task_count_nv = 5274,
4878 primitive_count_nv = 5275,
4879 primitive_indices_nv = 5276,
4880 clip_distance_per_view_nv = 5277,
4881 cull_distance_per_view_nv = 5278,
4882 layer_per_view_nv = 5279,
4883 mesh_view_count_nv = 5280,
4884 mesh_view_indices_nv = 5281,
4885 bary_coord_khr = 5286,
4886 bary_coord_no_persp_khr = 5287,
4887 frag_size_ext = 5292,
4888 frag_invocation_count_ext = 5293,
4889 primitive_point_indices_ext = 5294,
4890 primitive_line_indices_ext = 5295,
4891 primitive_triangle_indices_ext = 5296,
4892 cull_primitive_ext = 5299,
4893 launch_id_khr = 5319,
4894 launch_size_khr = 5320,
4895 world_ray_origin_khr = 5321,
4896 world_ray_direction_khr = 5322,
4897 object_ray_origin_khr = 5323,
4898 object_ray_direction_khr = 5324,
4899 ray_tmin_khr = 5325,
4900 ray_tmax_khr = 5326,
4901 instance_custom_index_khr = 5327,
4902 object_to_world_khr = 5330,
4903 world_to_object_khr = 5331,
4904 hit_tnv = 5332,
4905 hit_kind_khr = 5333,
4906 current_ray_time_nv = 5334,
4907 hit_triangle_vertex_positions_khr = 5335,
4908 hit_micro_triangle_vertex_positions_nv = 5337,
4909 hit_micro_triangle_vertex_barycentrics_nv = 5344,
4910 incoming_ray_flags_khr = 5351,
4911 ray_geometry_index_khr = 5352,
4912 hit_is_sphere_nv = 5359,
4913 hit_is_lssnv = 5360,
4914 hit_sphere_position_nv = 5361,
4915 warps_per_smnv = 5374,
4916 sm_count_nv = 5375,
4917 warp_idnv = 5376,
4918 smidnv = 5377,
4919 hit_lss_positions_nv = 5396,
4920 hit_kind_front_facing_micro_triangle_nv = 5405,
4921 hit_kind_back_facing_micro_triangle_nv = 5406,
4922 hit_sphere_radius_nv = 5420,
4923 hit_lss_radii_nv = 5421,
4924 cluster_idnv = 5436,
4925 cull_mask_khr = 6021,
4926};
4927pub const Scope = enum(u32) {
4928 cross_device = 0,
4929 device = 1,
4930 workgroup = 2,
4931 subgroup = 3,
4932 invocation = 4,
4933 queue_family = 5,
4934 shader_call_khr = 6,
4935};
4936pub const GroupOperation = enum(u32) {
4937 reduce = 0,
4938 inclusive_scan = 1,
4939 exclusive_scan = 2,
4940 clustered_reduce = 3,
4941 partitioned_reduce_nv = 6,
4942 partitioned_inclusive_scan_nv = 7,
4943 partitioned_exclusive_scan_nv = 8,
4944};
4945pub const KernelEnqueueFlags = enum(u32) {
4946 no_wait = 0,
4947 wait_kernel = 1,
4948 wait_work_group = 2,
4949};
4950pub const Capability = enum(u32) {
4951 matrix = 0,
4952 shader = 1,
4953 geometry = 2,
4954 tessellation = 3,
4955 addresses = 4,
4956 linkage = 5,
4957 kernel = 6,
4958 vector16 = 7,
4959 float16buffer = 8,
4960 float16 = 9,
4961 float64 = 10,
4962 int64 = 11,
4963 int64atomics = 12,
4964 image_basic = 13,
4965 image_read_write = 14,
4966 image_mipmap = 15,
4967 pipes = 17,
4968 groups = 18,
4969 device_enqueue = 19,
4970 literal_sampler = 20,
4971 atomic_storage = 21,
4972 int16 = 22,
4973 tessellation_point_size = 23,
4974 geometry_point_size = 24,
4975 image_gather_extended = 25,
4976 storage_image_multisample = 27,
4977 uniform_buffer_array_dynamic_indexing = 28,
4978 sampled_image_array_dynamic_indexing = 29,
4979 storage_buffer_array_dynamic_indexing = 30,
4980 storage_image_array_dynamic_indexing = 31,
4981 clip_distance = 32,
4982 cull_distance = 33,
4983 image_cube_array = 34,
4984 sample_rate_shading = 35,
4985 image_rect = 36,
4986 sampled_rect = 37,
4987 generic_pointer = 38,
4988 int8 = 39,
4989 input_attachment = 40,
4990 sparse_residency = 41,
4991 min_lod = 42,
4992 sampled1d = 43,
4993 image1d = 44,
4994 sampled_cube_array = 45,
4995 sampled_buffer = 46,
4996 image_buffer = 47,
4997 image_ms_array = 48,
4998 storage_image_extended_formats = 49,
4999 image_query = 50,
5000 derivative_control = 51,
5001 interpolation_function = 52,
5002 transform_feedback = 53,
5003 geometry_streams = 54,
5004 storage_image_read_without_format = 55,
5005 storage_image_write_without_format = 56,
5006 multi_viewport = 57,
5007 subgroup_dispatch = 58,
5008 named_barrier = 59,
5009 pipe_storage = 60,
5010 group_non_uniform = 61,
5011 group_non_uniform_vote = 62,
5012 group_non_uniform_arithmetic = 63,
5013 group_non_uniform_ballot = 64,
5014 group_non_uniform_shuffle = 65,
5015 group_non_uniform_shuffle_relative = 66,
5016 group_non_uniform_clustered = 67,
5017 group_non_uniform_quad = 68,
5018 shader_layer = 69,
5019 shader_viewport_index = 70,
5020 uniform_decoration = 71,
5021 core_builtins_arm = 4165,
5022 tile_image_color_read_access_ext = 4166,
5023 tile_image_depth_read_access_ext = 4167,
5024 tile_image_stencil_read_access_ext = 4168,
5025 tensors_arm = 4174,
5026 storage_tensor_array_dynamic_indexing_arm = 4175,
5027 storage_tensor_array_non_uniform_indexing_arm = 4176,
5028 graph_arm = 4191,
5029 cooperative_matrix_layouts_arm = 4201,
5030 float8ext = 4212,
5031 float8cooperative_matrix_ext = 4213,
5032 fragment_shading_rate_khr = 4422,
5033 subgroup_ballot_khr = 4423,
5034 draw_parameters = 4427,
5035 workgroup_memory_explicit_layout_khr = 4428,
5036 workgroup_memory_explicit_layout8bit_access_khr = 4429,
5037 workgroup_memory_explicit_layout16bit_access_khr = 4430,
5038 subgroup_vote_khr = 4431,
5039 storage_buffer16bit_access = 4433,
5040 uniform_and_storage_buffer16bit_access = 4434,
5041 storage_push_constant16 = 4435,
5042 storage_input_output16 = 4436,
5043 device_group = 4437,
5044 multi_view = 4439,
5045 variable_pointers_storage_buffer = 4441,
5046 variable_pointers = 4442,
5047 atomic_storage_ops = 4445,
5048 sample_mask_post_depth_coverage = 4447,
5049 storage_buffer8bit_access = 4448,
5050 uniform_and_storage_buffer8bit_access = 4449,
5051 storage_push_constant8 = 4450,
5052 denorm_preserve = 4464,
5053 denorm_flush_to_zero = 4465,
5054 signed_zero_inf_nan_preserve = 4466,
5055 rounding_mode_rte = 4467,
5056 rounding_mode_rtz = 4468,
5057 ray_query_provisional_khr = 4471,
5058 ray_query_khr = 4472,
5059 untyped_pointers_khr = 4473,
5060 ray_traversal_primitive_culling_khr = 4478,
5061 ray_tracing_khr = 4479,
5062 texture_sample_weighted_qcom = 4484,
5063 texture_box_filter_qcom = 4485,
5064 texture_block_match_qcom = 4486,
5065 tile_shading_qcom = 4495,
5066 texture_block_match2qcom = 4498,
5067 float16image_amd = 5008,
5068 image_gather_bias_lod_amd = 5009,
5069 fragment_mask_amd = 5010,
5070 stencil_export_ext = 5013,
5071 image_read_write_lod_amd = 5015,
5072 int64image_ext = 5016,
5073 shader_clock_khr = 5055,
5074 shader_enqueue_amdx = 5067,
5075 quad_control_khr = 5087,
5076 int4type_intel = 5112,
5077 int4cooperative_matrix_intel = 5114,
5078 b_float16type_khr = 5116,
5079 b_float16dot_product_khr = 5117,
5080 b_float16cooperative_matrix_khr = 5118,
5081 sample_mask_override_coverage_nv = 5249,
5082 geometry_shader_passthrough_nv = 5251,
5083 shader_viewport_index_layer_ext = 5254,
5084 shader_viewport_mask_nv = 5255,
5085 shader_stereo_view_nv = 5259,
5086 per_view_attributes_nv = 5260,
5087 fragment_fully_covered_ext = 5265,
5088 mesh_shading_nv = 5266,
5089 image_footprint_nv = 5282,
5090 mesh_shading_ext = 5283,
5091 fragment_barycentric_khr = 5284,
5092 compute_derivative_group_quads_khr = 5288,
5093 fragment_density_ext = 5291,
5094 group_non_uniform_partitioned_nv = 5297,
5095 shader_non_uniform = 5301,
5096 runtime_descriptor_array = 5302,
5097 input_attachment_array_dynamic_indexing = 5303,
5098 uniform_texel_buffer_array_dynamic_indexing = 5304,
5099 storage_texel_buffer_array_dynamic_indexing = 5305,
5100 uniform_buffer_array_non_uniform_indexing = 5306,
5101 sampled_image_array_non_uniform_indexing = 5307,
5102 storage_buffer_array_non_uniform_indexing = 5308,
5103 storage_image_array_non_uniform_indexing = 5309,
5104 input_attachment_array_non_uniform_indexing = 5310,
5105 uniform_texel_buffer_array_non_uniform_indexing = 5311,
5106 storage_texel_buffer_array_non_uniform_indexing = 5312,
5107 ray_tracing_position_fetch_khr = 5336,
5108 ray_tracing_nv = 5340,
5109 ray_tracing_motion_blur_nv = 5341,
5110 vulkan_memory_model = 5345,
5111 vulkan_memory_model_device_scope = 5346,
5112 physical_storage_buffer_addresses = 5347,
5113 compute_derivative_group_linear_khr = 5350,
5114 ray_tracing_provisional_khr = 5353,
5115 cooperative_matrix_nv = 5357,
5116 fragment_shader_sample_interlock_ext = 5363,
5117 fragment_shader_shading_rate_interlock_ext = 5372,
5118 shader_sm_builtins_nv = 5373,
5119 fragment_shader_pixel_interlock_ext = 5378,
5120 demote_to_helper_invocation = 5379,
5121 displacement_micromap_nv = 5380,
5122 ray_tracing_opacity_micromap_ext = 5381,
5123 shader_invocation_reorder_nv = 5383,
5124 bindless_texture_nv = 5390,
5125 ray_query_position_fetch_khr = 5391,
5126 cooperative_vector_nv = 5394,
5127 atomic_float16vector_nv = 5404,
5128 ray_tracing_displacement_micromap_nv = 5409,
5129 raw_access_chains_nv = 5414,
5130 ray_tracing_spheres_geometry_nv = 5418,
5131 ray_tracing_linear_swept_spheres_geometry_nv = 5419,
5132 cooperative_matrix_reductions_nv = 5430,
5133 cooperative_matrix_conversions_nv = 5431,
5134 cooperative_matrix_per_element_operations_nv = 5432,
5135 cooperative_matrix_tensor_addressing_nv = 5433,
5136 cooperative_matrix_block_loads_nv = 5434,
5137 cooperative_vector_training_nv = 5435,
5138 ray_tracing_cluster_acceleration_structure_nv = 5437,
5139 tensor_addressing_nv = 5439,
5140 subgroup_shuffle_intel = 5568,
5141 subgroup_buffer_block_iointel = 5569,
5142 subgroup_image_block_iointel = 5570,
5143 subgroup_image_media_block_iointel = 5579,
5144 round_to_infinity_intel = 5582,
5145 floating_point_mode_intel = 5583,
5146 integer_functions2intel = 5584,
5147 function_pointers_intel = 5603,
5148 indirect_references_intel = 5604,
5149 asm_intel = 5606,
5150 atomic_float32min_max_ext = 5612,
5151 atomic_float64min_max_ext = 5613,
5152 atomic_float16min_max_ext = 5616,
5153 vector_compute_intel = 5617,
5154 vector_any_intel = 5619,
5155 expect_assume_khr = 5629,
5156 subgroup_avc_motion_estimation_intel = 5696,
5157 subgroup_avc_motion_estimation_intra_intel = 5697,
5158 subgroup_avc_motion_estimation_chroma_intel = 5698,
5159 variable_length_array_intel = 5817,
5160 function_float_control_intel = 5821,
5161 fpga_memory_attributes_intel = 5824,
5162 fp_fast_math_mode_intel = 5837,
5163 arbitrary_precision_integers_intel = 5844,
5164 arbitrary_precision_floating_point_intel = 5845,
5165 unstructured_loop_controls_intel = 5886,
5166 fpga_loop_controls_intel = 5888,
5167 kernel_attributes_intel = 5892,
5168 fpga_kernel_attributes_intel = 5897,
5169 fpga_memory_accesses_intel = 5898,
5170 fpga_cluster_attributes_intel = 5904,
5171 loop_fuse_intel = 5906,
5172 fpgadsp_control_intel = 5908,
5173 memory_access_aliasing_intel = 5910,
5174 fpga_invocation_pipelining_attributes_intel = 5916,
5175 fpga_buffer_location_intel = 5920,
5176 arbitrary_precision_fixed_point_intel = 5922,
5177 usm_storage_classes_intel = 5935,
5178 runtime_aligned_attribute_intel = 5939,
5179 io_pipes_intel = 5943,
5180 blocking_pipes_intel = 5945,
5181 fpga_reg_intel = 5948,
5182 dot_product_input_all = 6016,
5183 dot_product_input4x8bit = 6017,
5184 dot_product_input4x8bit_packed = 6018,
5185 dot_product = 6019,
5186 ray_cull_mask_khr = 6020,
5187 cooperative_matrix_khr = 6022,
5188 replicated_composites_ext = 6024,
5189 bit_instructions = 6025,
5190 group_non_uniform_rotate_khr = 6026,
5191 float_controls2 = 6029,
5192 atomic_float32add_ext = 6033,
5193 atomic_float64add_ext = 6034,
5194 long_composites_intel = 6089,
5195 opt_none_ext = 6094,
5196 atomic_float16add_ext = 6095,
5197 debug_info_module_intel = 6114,
5198 b_float16conversion_intel = 6115,
5199 split_barrier_intel = 6141,
5200 arithmetic_fence_ext = 6144,
5201 fpga_cluster_attributes_v2intel = 6150,
5202 fpga_kernel_attributesv2intel = 6161,
5203 task_sequence_intel = 6162,
5204 fp_max_error_intel = 6169,
5205 fpga_latency_control_intel = 6171,
5206 fpga_argument_interfaces_intel = 6174,
5207 global_variable_host_access_intel = 6187,
5208 global_variable_fpga_decorations_intel = 6189,
5209 subgroup_buffer_prefetch_intel = 6220,
5210 subgroup2d_block_iointel = 6228,
5211 subgroup2d_block_transform_intel = 6229,
5212 subgroup2d_block_transpose_intel = 6230,
5213 subgroup_matrix_multiply_accumulate_intel = 6236,
5214 ternary_bitwise_function_intel = 6241,
5215 group_uniform_arithmetic_khr = 6400,
5216 tensor_float32rounding_intel = 6425,
5217 masked_gather_scatter_intel = 6427,
5218 cache_controls_intel = 6441,
5219 register_limits_intel = 6460,
5220 bindless_images_intel = 6528,
5221};
5222pub const RayQueryIntersection = enum(u32) {
5223 ray_query_candidate_intersection_khr = 0,
5224 ray_query_committed_intersection_khr = 1,
5225};
5226pub const RayQueryCommittedIntersectionType = enum(u32) {
5227 ray_query_committed_intersection_none_khr = 0,
5228 ray_query_committed_intersection_triangle_khr = 1,
5229 ray_query_committed_intersection_generated_khr = 2,
5230};
5231pub const RayQueryCandidateIntersectionType = enum(u32) {
5232 ray_query_candidate_intersection_triangle_khr = 0,
5233 ray_query_candidate_intersection_aabbkhr = 1,
5234};
5235pub const PackedVectorFormat = enum(u32) {
5236 packed_vector_format4x8bit = 0,
5237};
5238pub const CooperativeMatrixOperands = packed struct {
5239 matrix_a_signed_components_khr: bool = false,
5240 matrix_b_signed_components_khr: bool = false,
5241 matrix_c_signed_components_khr: bool = false,
5242 matrix_result_signed_components_khr: bool = false,
5243 saturating_accumulation_khr: bool = false,
5244 _reserved_bit_5: bool = false,
5245 _reserved_bit_6: bool = false,
5246 _reserved_bit_7: bool = false,
5247 _reserved_bit_8: bool = false,
5248 _reserved_bit_9: bool = false,
5249 _reserved_bit_10: bool = false,
5250 _reserved_bit_11: bool = false,
5251 _reserved_bit_12: bool = false,
5252 _reserved_bit_13: bool = false,
5253 _reserved_bit_14: bool = false,
5254 _reserved_bit_15: bool = false,
5255 _reserved_bit_16: bool = false,
5256 _reserved_bit_17: bool = false,
5257 _reserved_bit_18: bool = false,
5258 _reserved_bit_19: bool = false,
5259 _reserved_bit_20: bool = false,
5260 _reserved_bit_21: bool = false,
5261 _reserved_bit_22: bool = false,
5262 _reserved_bit_23: bool = false,
5263 _reserved_bit_24: bool = false,
5264 _reserved_bit_25: bool = false,
5265 _reserved_bit_26: bool = false,
5266 _reserved_bit_27: bool = false,
5267 _reserved_bit_28: bool = false,
5268 _reserved_bit_29: bool = false,
5269 _reserved_bit_30: bool = false,
5270 _reserved_bit_31: bool = false,
5271};
5272pub const CooperativeMatrixLayout = enum(u32) {
5273 row_major_khr = 0,
5274 column_major_khr = 1,
5275 row_blocked_interleaved_arm = 4202,
5276 column_blocked_interleaved_arm = 4203,
5277};
5278pub const CooperativeMatrixUse = enum(u32) {
5279 matrix_akhr = 0,
5280 matrix_bkhr = 1,
5281 matrix_accumulator_khr = 2,
5282};
5283pub const CooperativeMatrixReduce = packed struct {
5284 row: bool = false,
5285 column: bool = false,
5286 @"2x2": bool = false,
5287 _reserved_bit_3: bool = false,
5288 _reserved_bit_4: bool = false,
5289 _reserved_bit_5: bool = false,
5290 _reserved_bit_6: bool = false,
5291 _reserved_bit_7: bool = false,
5292 _reserved_bit_8: bool = false,
5293 _reserved_bit_9: bool = false,
5294 _reserved_bit_10: bool = false,
5295 _reserved_bit_11: bool = false,
5296 _reserved_bit_12: bool = false,
5297 _reserved_bit_13: bool = false,
5298 _reserved_bit_14: bool = false,
5299 _reserved_bit_15: bool = false,
5300 _reserved_bit_16: bool = false,
5301 _reserved_bit_17: bool = false,
5302 _reserved_bit_18: bool = false,
5303 _reserved_bit_19: bool = false,
5304 _reserved_bit_20: bool = false,
5305 _reserved_bit_21: bool = false,
5306 _reserved_bit_22: bool = false,
5307 _reserved_bit_23: bool = false,
5308 _reserved_bit_24: bool = false,
5309 _reserved_bit_25: bool = false,
5310 _reserved_bit_26: bool = false,
5311 _reserved_bit_27: bool = false,
5312 _reserved_bit_28: bool = false,
5313 _reserved_bit_29: bool = false,
5314 _reserved_bit_30: bool = false,
5315 _reserved_bit_31: bool = false,
5316};
5317pub const TensorClampMode = enum(u32) {
5318 undefined = 0,
5319 constant = 1,
5320 clamp_to_edge = 2,
5321 repeat = 3,
5322 repeat_mirrored = 4,
5323};
5324pub const TensorAddressingOperands = packed struct {
5325 tensor_view: bool = false,
5326 decode_func: bool = false,
5327 _reserved_bit_2: bool = false,
5328 _reserved_bit_3: bool = false,
5329 _reserved_bit_4: bool = false,
5330 _reserved_bit_5: bool = false,
5331 _reserved_bit_6: bool = false,
5332 _reserved_bit_7: bool = false,
5333 _reserved_bit_8: bool = false,
5334 _reserved_bit_9: bool = false,
5335 _reserved_bit_10: bool = false,
5336 _reserved_bit_11: bool = false,
5337 _reserved_bit_12: bool = false,
5338 _reserved_bit_13: bool = false,
5339 _reserved_bit_14: bool = false,
5340 _reserved_bit_15: bool = false,
5341 _reserved_bit_16: bool = false,
5342 _reserved_bit_17: bool = false,
5343 _reserved_bit_18: bool = false,
5344 _reserved_bit_19: bool = false,
5345 _reserved_bit_20: bool = false,
5346 _reserved_bit_21: bool = false,
5347 _reserved_bit_22: bool = false,
5348 _reserved_bit_23: bool = false,
5349 _reserved_bit_24: bool = false,
5350 _reserved_bit_25: bool = false,
5351 _reserved_bit_26: bool = false,
5352 _reserved_bit_27: bool = false,
5353 _reserved_bit_28: bool = false,
5354 _reserved_bit_29: bool = false,
5355 _reserved_bit_30: bool = false,
5356 _reserved_bit_31: bool = false,
5357
5358 pub const Extended = struct {
5359 tensor_view: ?struct { id_ref: Id } = null,
5360 decode_func: ?struct { id_ref: Id } = null,
5361 _reserved_bit_2: bool = false,
5362 _reserved_bit_3: bool = false,
5363 _reserved_bit_4: bool = false,
5364 _reserved_bit_5: bool = false,
5365 _reserved_bit_6: bool = false,
5366 _reserved_bit_7: bool = false,
5367 _reserved_bit_8: bool = false,
5368 _reserved_bit_9: bool = false,
5369 _reserved_bit_10: bool = false,
5370 _reserved_bit_11: bool = false,
5371 _reserved_bit_12: bool = false,
5372 _reserved_bit_13: bool = false,
5373 _reserved_bit_14: bool = false,
5374 _reserved_bit_15: bool = false,
5375 _reserved_bit_16: bool = false,
5376 _reserved_bit_17: bool = false,
5377 _reserved_bit_18: bool = false,
5378 _reserved_bit_19: bool = false,
5379 _reserved_bit_20: bool = false,
5380 _reserved_bit_21: bool = false,
5381 _reserved_bit_22: bool = false,
5382 _reserved_bit_23: bool = false,
5383 _reserved_bit_24: bool = false,
5384 _reserved_bit_25: bool = false,
5385 _reserved_bit_26: bool = false,
5386 _reserved_bit_27: bool = false,
5387 _reserved_bit_28: bool = false,
5388 _reserved_bit_29: bool = false,
5389 _reserved_bit_30: bool = false,
5390 _reserved_bit_31: bool = false,
5391 };
5392};
5393pub const InitializationModeQualifier = enum(u32) {
5394 init_on_device_reprogram_intel = 0,
5395 init_on_device_reset_intel = 1,
5396};
5397pub const LoadCacheControl = enum(u32) {
5398 uncached_intel = 0,
5399 cached_intel = 1,
5400 streaming_intel = 2,
5401 invalidate_after_read_intel = 3,
5402 const_cached_intel = 4,
5403};
5404pub const StoreCacheControl = enum(u32) {
5405 uncached_intel = 0,
5406 write_through_intel = 1,
5407 write_back_intel = 2,
5408 streaming_intel = 3,
5409};
5410pub const NamedMaximumNumberOfRegisters = enum(u32) {
5411 auto_intel = 0,
5412};
5413pub const MatrixMultiplyAccumulateOperands = packed struct {
5414 matrix_a_signed_components_intel: bool = false,
5415 matrix_b_signed_components_intel: bool = false,
5416 matrix_cb_float16intel: bool = false,
5417 matrix_result_b_float16intel: bool = false,
5418 matrix_a_packed_int8intel: bool = false,
5419 matrix_b_packed_int8intel: bool = false,
5420 matrix_a_packed_int4intel: bool = false,
5421 matrix_b_packed_int4intel: bool = false,
5422 matrix_atf32intel: bool = false,
5423 matrix_btf32intel: bool = false,
5424 matrix_a_packed_float16intel: bool = false,
5425 matrix_b_packed_float16intel: bool = false,
5426 matrix_a_packed_b_float16intel: bool = false,
5427 matrix_b_packed_b_float16intel: bool = false,
5428 _reserved_bit_14: bool = false,
5429 _reserved_bit_15: bool = false,
5430 _reserved_bit_16: bool = false,
5431 _reserved_bit_17: bool = false,
5432 _reserved_bit_18: bool = false,
5433 _reserved_bit_19: bool = false,
5434 _reserved_bit_20: bool = false,
5435 _reserved_bit_21: bool = false,
5436 _reserved_bit_22: bool = false,
5437 _reserved_bit_23: bool = false,
5438 _reserved_bit_24: bool = false,
5439 _reserved_bit_25: bool = false,
5440 _reserved_bit_26: bool = false,
5441 _reserved_bit_27: bool = false,
5442 _reserved_bit_28: bool = false,
5443 _reserved_bit_29: bool = false,
5444 _reserved_bit_30: bool = false,
5445 _reserved_bit_31: bool = false,
5446};
5447pub const FPEncoding = enum(u32) {
5448 b_float16khr = 0,
5449 float8e4m3ext = 4214,
5450 float8e5m2ext = 4215,
5451};
5452pub const CooperativeVectorMatrixLayout = enum(u32) {
5453 row_major_nv = 0,
5454 column_major_nv = 1,
5455 inferencing_optimal_nv = 2,
5456 training_optimal_nv = 3,
5457};
5458pub const ComponentType = enum(u32) {
5459 float16nv = 0,
5460 float32nv = 1,
5461 float64nv = 2,
5462 signed_int8nv = 3,
5463 signed_int16nv = 4,
5464 signed_int32nv = 5,
5465 signed_int64nv = 6,
5466 unsigned_int8nv = 7,
5467 unsigned_int16nv = 8,
5468 unsigned_int32nv = 9,
5469 unsigned_int64nv = 10,
5470 signed_int8packed_nv = 1000491000,
5471 unsigned_int8packed_nv = 1000491001,
5472 float_e4m3nv = 1000491002,
5473 float_e5m2nv = 1000491003,
5474};
5475pub const TensorOperands = packed struct {
5476 nontemporal_arm: bool = false,
5477 out_of_bounds_value_arm: bool = false,
5478 make_element_available_arm: bool = false,
5479 make_element_visible_arm: bool = false,
5480 non_private_element_arm: bool = false,
5481 _reserved_bit_5: bool = false,
5482 _reserved_bit_6: bool = false,
5483 _reserved_bit_7: bool = false,
5484 _reserved_bit_8: bool = false,
5485 _reserved_bit_9: bool = false,
5486 _reserved_bit_10: bool = false,
5487 _reserved_bit_11: bool = false,
5488 _reserved_bit_12: bool = false,
5489 _reserved_bit_13: bool = false,
5490 _reserved_bit_14: bool = false,
5491 _reserved_bit_15: bool = false,
5492 _reserved_bit_16: bool = false,
5493 _reserved_bit_17: bool = false,
5494 _reserved_bit_18: bool = false,
5495 _reserved_bit_19: bool = false,
5496 _reserved_bit_20: bool = false,
5497 _reserved_bit_21: bool = false,
5498 _reserved_bit_22: bool = false,
5499 _reserved_bit_23: bool = false,
5500 _reserved_bit_24: bool = false,
5501 _reserved_bit_25: bool = false,
5502 _reserved_bit_26: bool = false,
5503 _reserved_bit_27: bool = false,
5504 _reserved_bit_28: bool = false,
5505 _reserved_bit_29: bool = false,
5506 _reserved_bit_30: bool = false,
5507 _reserved_bit_31: bool = false,
5508
5509 pub const Extended = struct {
5510 nontemporal_arm: bool = false,
5511 out_of_bounds_value_arm: ?struct { id_ref: Id } = null,
5512 make_element_available_arm: ?struct { id_ref: Id } = null,
5513 make_element_visible_arm: ?struct { id_ref: Id } = null,
5514 non_private_element_arm: bool = false,
5515 _reserved_bit_5: bool = false,
5516 _reserved_bit_6: bool = false,
5517 _reserved_bit_7: bool = false,
5518 _reserved_bit_8: bool = false,
5519 _reserved_bit_9: bool = false,
5520 _reserved_bit_10: bool = false,
5521 _reserved_bit_11: bool = false,
5522 _reserved_bit_12: bool = false,
5523 _reserved_bit_13: bool = false,
5524 _reserved_bit_14: bool = false,
5525 _reserved_bit_15: bool = false,
5526 _reserved_bit_16: bool = false,
5527 _reserved_bit_17: bool = false,
5528 _reserved_bit_18: bool = false,
5529 _reserved_bit_19: bool = false,
5530 _reserved_bit_20: bool = false,
5531 _reserved_bit_21: bool = false,
5532 _reserved_bit_22: bool = false,
5533 _reserved_bit_23: bool = false,
5534 _reserved_bit_24: bool = false,
5535 _reserved_bit_25: bool = false,
5536 _reserved_bit_26: bool = false,
5537 _reserved_bit_27: bool = false,
5538 _reserved_bit_28: bool = false,
5539 _reserved_bit_29: bool = false,
5540 _reserved_bit_30: bool = false,
5541 _reserved_bit_31: bool = false,
5542 };
5543};
5544pub const InstructionSet = enum {
5545 core,
5546 @"GLSL.std.450",
5547 @"OpenCL.std",
5548 zig,
5549
5550 pub fn instructions(self: InstructionSet) []const Instruction {
5551 return switch (self) {
5552 .core => &.{
5553 .{
5554 .name = "OpNop",
5555 .opcode = 0,
5556 .operands = &.{},
5557 },
5558 .{
5559 .name = "OpUndef",
5560 .opcode = 1,
5561 .operands = &.{
5562 .{ .kind = .id_result_type, .quantifier = .required },
5563 .{ .kind = .id_result, .quantifier = .required },
5564 },
5565 },
5566 .{
5567 .name = "OpSourceContinued",
5568 .opcode = 2,
5569 .operands = &.{
5570 .{ .kind = .literal_string, .quantifier = .required },
5571 },
5572 },
5573 .{
5574 .name = "OpSource",
5575 .opcode = 3,
5576 .operands = &.{
5577 .{ .kind = .source_language, .quantifier = .required },
5578 .{ .kind = .literal_integer, .quantifier = .required },
5579 .{ .kind = .id_ref, .quantifier = .optional },
5580 .{ .kind = .literal_string, .quantifier = .optional },
5581 },
5582 },
5583 .{
5584 .name = "OpSourceExtension",
5585 .opcode = 4,
5586 .operands = &.{
5587 .{ .kind = .literal_string, .quantifier = .required },
5588 },
5589 },
5590 .{
5591 .name = "OpName",
5592 .opcode = 5,
5593 .operands = &.{
5594 .{ .kind = .id_ref, .quantifier = .required },
5595 .{ .kind = .literal_string, .quantifier = .required },
5596 },
5597 },
5598 .{
5599 .name = "OpMemberName",
5600 .opcode = 6,
5601 .operands = &.{
5602 .{ .kind = .id_ref, .quantifier = .required },
5603 .{ .kind = .literal_integer, .quantifier = .required },
5604 .{ .kind = .literal_string, .quantifier = .required },
5605 },
5606 },
5607 .{
5608 .name = "OpString",
5609 .opcode = 7,
5610 .operands = &.{
5611 .{ .kind = .id_result, .quantifier = .required },
5612 .{ .kind = .literal_string, .quantifier = .required },
5613 },
5614 },
5615 .{
5616 .name = "OpLine",
5617 .opcode = 8,
5618 .operands = &.{
5619 .{ .kind = .id_ref, .quantifier = .required },
5620 .{ .kind = .literal_integer, .quantifier = .required },
5621 .{ .kind = .literal_integer, .quantifier = .required },
5622 },
5623 },
5624 .{
5625 .name = "OpExtension",
5626 .opcode = 10,
5627 .operands = &.{
5628 .{ .kind = .literal_string, .quantifier = .required },
5629 },
5630 },
5631 .{
5632 .name = "OpExtInstImport",
5633 .opcode = 11,
5634 .operands = &.{
5635 .{ .kind = .id_result, .quantifier = .required },
5636 .{ .kind = .literal_string, .quantifier = .required },
5637 },
5638 },
5639 .{
5640 .name = "OpExtInst",
5641 .opcode = 12,
5642 .operands = &.{
5643 .{ .kind = .id_result_type, .quantifier = .required },
5644 .{ .kind = .id_result, .quantifier = .required },
5645 .{ .kind = .id_ref, .quantifier = .required },
5646 .{ .kind = .literal_ext_inst_integer, .quantifier = .required },
5647 .{ .kind = .id_ref, .quantifier = .variadic },
5648 },
5649 },
5650 .{
5651 .name = "OpMemoryModel",
5652 .opcode = 14,
5653 .operands = &.{
5654 .{ .kind = .addressing_model, .quantifier = .required },
5655 .{ .kind = .memory_model, .quantifier = .required },
5656 },
5657 },
5658 .{
5659 .name = "OpEntryPoint",
5660 .opcode = 15,
5661 .operands = &.{
5662 .{ .kind = .execution_model, .quantifier = .required },
5663 .{ .kind = .id_ref, .quantifier = .required },
5664 .{ .kind = .literal_string, .quantifier = .required },
5665 .{ .kind = .id_ref, .quantifier = .variadic },
5666 },
5667 },
5668 .{
5669 .name = "OpExecutionMode",
5670 .opcode = 16,
5671 .operands = &.{
5672 .{ .kind = .id_ref, .quantifier = .required },
5673 .{ .kind = .execution_mode, .quantifier = .required },
5674 },
5675 },
5676 .{
5677 .name = "OpCapability",
5678 .opcode = 17,
5679 .operands = &.{
5680 .{ .kind = .capability, .quantifier = .required },
5681 },
5682 },
5683 .{
5684 .name = "OpTypeVoid",
5685 .opcode = 19,
5686 .operands = &.{
5687 .{ .kind = .id_result, .quantifier = .required },
5688 },
5689 },
5690 .{
5691 .name = "OpTypeBool",
5692 .opcode = 20,
5693 .operands = &.{
5694 .{ .kind = .id_result, .quantifier = .required },
5695 },
5696 },
5697 .{
5698 .name = "OpTypeInt",
5699 .opcode = 21,
5700 .operands = &.{
5701 .{ .kind = .id_result, .quantifier = .required },
5702 .{ .kind = .literal_integer, .quantifier = .required },
5703 .{ .kind = .literal_integer, .quantifier = .required },
5704 },
5705 },
5706 .{
5707 .name = "OpTypeFloat",
5708 .opcode = 22,
5709 .operands = &.{
5710 .{ .kind = .id_result, .quantifier = .required },
5711 .{ .kind = .literal_integer, .quantifier = .required },
5712 .{ .kind = .fp_encoding, .quantifier = .optional },
5713 },
5714 },
5715 .{
5716 .name = "OpTypeVector",
5717 .opcode = 23,
5718 .operands = &.{
5719 .{ .kind = .id_result, .quantifier = .required },
5720 .{ .kind = .id_ref, .quantifier = .required },
5721 .{ .kind = .literal_integer, .quantifier = .required },
5722 },
5723 },
5724 .{
5725 .name = "OpTypeMatrix",
5726 .opcode = 24,
5727 .operands = &.{
5728 .{ .kind = .id_result, .quantifier = .required },
5729 .{ .kind = .id_ref, .quantifier = .required },
5730 .{ .kind = .literal_integer, .quantifier = .required },
5731 },
5732 },
5733 .{
5734 .name = "OpTypeImage",
5735 .opcode = 25,
5736 .operands = &.{
5737 .{ .kind = .id_result, .quantifier = .required },
5738 .{ .kind = .id_ref, .quantifier = .required },
5739 .{ .kind = .dim, .quantifier = .required },
5740 .{ .kind = .literal_integer, .quantifier = .required },
5741 .{ .kind = .literal_integer, .quantifier = .required },
5742 .{ .kind = .literal_integer, .quantifier = .required },
5743 .{ .kind = .literal_integer, .quantifier = .required },
5744 .{ .kind = .image_format, .quantifier = .required },
5745 .{ .kind = .access_qualifier, .quantifier = .optional },
5746 },
5747 },
5748 .{
5749 .name = "OpTypeSampler",
5750 .opcode = 26,
5751 .operands = &.{
5752 .{ .kind = .id_result, .quantifier = .required },
5753 },
5754 },
5755 .{
5756 .name = "OpTypeSampledImage",
5757 .opcode = 27,
5758 .operands = &.{
5759 .{ .kind = .id_result, .quantifier = .required },
5760 .{ .kind = .id_ref, .quantifier = .required },
5761 },
5762 },
5763 .{
5764 .name = "OpTypeArray",
5765 .opcode = 28,
5766 .operands = &.{
5767 .{ .kind = .id_result, .quantifier = .required },
5768 .{ .kind = .id_ref, .quantifier = .required },
5769 .{ .kind = .id_ref, .quantifier = .required },
5770 },
5771 },
5772 .{
5773 .name = "OpTypeRuntimeArray",
5774 .opcode = 29,
5775 .operands = &.{
5776 .{ .kind = .id_result, .quantifier = .required },
5777 .{ .kind = .id_ref, .quantifier = .required },
5778 },
5779 },
5780 .{
5781 .name = "OpTypeStruct",
5782 .opcode = 30,
5783 .operands = &.{
5784 .{ .kind = .id_result, .quantifier = .required },
5785 .{ .kind = .id_ref, .quantifier = .variadic },
5786 },
5787 },
5788 .{
5789 .name = "OpTypeOpaque",
5790 .opcode = 31,
5791 .operands = &.{
5792 .{ .kind = .id_result, .quantifier = .required },
5793 .{ .kind = .literal_string, .quantifier = .required },
5794 },
5795 },
5796 .{
5797 .name = "OpTypePointer",
5798 .opcode = 32,
5799 .operands = &.{
5800 .{ .kind = .id_result, .quantifier = .required },
5801 .{ .kind = .storage_class, .quantifier = .required },
5802 .{ .kind = .id_ref, .quantifier = .required },
5803 },
5804 },
5805 .{
5806 .name = "OpTypeFunction",
5807 .opcode = 33,
5808 .operands = &.{
5809 .{ .kind = .id_result, .quantifier = .required },
5810 .{ .kind = .id_ref, .quantifier = .required },
5811 .{ .kind = .id_ref, .quantifier = .variadic },
5812 },
5813 },
5814 .{
5815 .name = "OpTypeEvent",
5816 .opcode = 34,
5817 .operands = &.{
5818 .{ .kind = .id_result, .quantifier = .required },
5819 },
5820 },
5821 .{
5822 .name = "OpTypeDeviceEvent",
5823 .opcode = 35,
5824 .operands = &.{
5825 .{ .kind = .id_result, .quantifier = .required },
5826 },
5827 },
5828 .{
5829 .name = "OpTypeReserveId",
5830 .opcode = 36,
5831 .operands = &.{
5832 .{ .kind = .id_result, .quantifier = .required },
5833 },
5834 },
5835 .{
5836 .name = "OpTypeQueue",
5837 .opcode = 37,
5838 .operands = &.{
5839 .{ .kind = .id_result, .quantifier = .required },
5840 },
5841 },
5842 .{
5843 .name = "OpTypePipe",
5844 .opcode = 38,
5845 .operands = &.{
5846 .{ .kind = .id_result, .quantifier = .required },
5847 .{ .kind = .access_qualifier, .quantifier = .required },
5848 },
5849 },
5850 .{
5851 .name = "OpTypeForwardPointer",
5852 .opcode = 39,
5853 .operands = &.{
5854 .{ .kind = .id_ref, .quantifier = .required },
5855 .{ .kind = .storage_class, .quantifier = .required },
5856 },
5857 },
5858 .{
5859 .name = "OpConstantTrue",
5860 .opcode = 41,
5861 .operands = &.{
5862 .{ .kind = .id_result_type, .quantifier = .required },
5863 .{ .kind = .id_result, .quantifier = .required },
5864 },
5865 },
5866 .{
5867 .name = "OpConstantFalse",
5868 .opcode = 42,
5869 .operands = &.{
5870 .{ .kind = .id_result_type, .quantifier = .required },
5871 .{ .kind = .id_result, .quantifier = .required },
5872 },
5873 },
5874 .{
5875 .name = "OpConstant",
5876 .opcode = 43,
5877 .operands = &.{
5878 .{ .kind = .id_result_type, .quantifier = .required },
5879 .{ .kind = .id_result, .quantifier = .required },
5880 .{ .kind = .literal_context_dependent_number, .quantifier = .required },
5881 },
5882 },
5883 .{
5884 .name = "OpConstantComposite",
5885 .opcode = 44,
5886 .operands = &.{
5887 .{ .kind = .id_result_type, .quantifier = .required },
5888 .{ .kind = .id_result, .quantifier = .required },
5889 .{ .kind = .id_ref, .quantifier = .variadic },
5890 },
5891 },
5892 .{
5893 .name = "OpConstantSampler",
5894 .opcode = 45,
5895 .operands = &.{
5896 .{ .kind = .id_result_type, .quantifier = .required },
5897 .{ .kind = .id_result, .quantifier = .required },
5898 .{ .kind = .sampler_addressing_mode, .quantifier = .required },
5899 .{ .kind = .literal_integer, .quantifier = .required },
5900 .{ .kind = .sampler_filter_mode, .quantifier = .required },
5901 },
5902 },
5903 .{
5904 .name = "OpConstantNull",
5905 .opcode = 46,
5906 .operands = &.{
5907 .{ .kind = .id_result_type, .quantifier = .required },
5908 .{ .kind = .id_result, .quantifier = .required },
5909 },
5910 },
5911 .{
5912 .name = "OpSpecConstantTrue",
5913 .opcode = 48,
5914 .operands = &.{
5915 .{ .kind = .id_result_type, .quantifier = .required },
5916 .{ .kind = .id_result, .quantifier = .required },
5917 },
5918 },
5919 .{
5920 .name = "OpSpecConstantFalse",
5921 .opcode = 49,
5922 .operands = &.{
5923 .{ .kind = .id_result_type, .quantifier = .required },
5924 .{ .kind = .id_result, .quantifier = .required },
5925 },
5926 },
5927 .{
5928 .name = "OpSpecConstant",
5929 .opcode = 50,
5930 .operands = &.{
5931 .{ .kind = .id_result_type, .quantifier = .required },
5932 .{ .kind = .id_result, .quantifier = .required },
5933 .{ .kind = .literal_context_dependent_number, .quantifier = .required },
5934 },
5935 },
5936 .{
5937 .name = "OpSpecConstantComposite",
5938 .opcode = 51,
5939 .operands = &.{
5940 .{ .kind = .id_result_type, .quantifier = .required },
5941 .{ .kind = .id_result, .quantifier = .required },
5942 .{ .kind = .id_ref, .quantifier = .variadic },
5943 },
5944 },
5945 .{
5946 .name = "OpSpecConstantOp",
5947 .opcode = 52,
5948 .operands = &.{
5949 .{ .kind = .id_result_type, .quantifier = .required },
5950 .{ .kind = .id_result, .quantifier = .required },
5951 .{ .kind = .literal_spec_constant_op_integer, .quantifier = .required },
5952 },
5953 },
5954 .{
5955 .name = "OpFunction",
5956 .opcode = 54,
5957 .operands = &.{
5958 .{ .kind = .id_result_type, .quantifier = .required },
5959 .{ .kind = .id_result, .quantifier = .required },
5960 .{ .kind = .function_control, .quantifier = .required },
5961 .{ .kind = .id_ref, .quantifier = .required },
5962 },
5963 },
5964 .{
5965 .name = "OpFunctionParameter",
5966 .opcode = 55,
5967 .operands = &.{
5968 .{ .kind = .id_result_type, .quantifier = .required },
5969 .{ .kind = .id_result, .quantifier = .required },
5970 },
5971 },
5972 .{
5973 .name = "OpFunctionEnd",
5974 .opcode = 56,
5975 .operands = &.{},
5976 },
5977 .{
5978 .name = "OpFunctionCall",
5979 .opcode = 57,
5980 .operands = &.{
5981 .{ .kind = .id_result_type, .quantifier = .required },
5982 .{ .kind = .id_result, .quantifier = .required },
5983 .{ .kind = .id_ref, .quantifier = .required },
5984 .{ .kind = .id_ref, .quantifier = .variadic },
5985 },
5986 },
5987 .{
5988 .name = "OpVariable",
5989 .opcode = 59,
5990 .operands = &.{
5991 .{ .kind = .id_result_type, .quantifier = .required },
5992 .{ .kind = .id_result, .quantifier = .required },
5993 .{ .kind = .storage_class, .quantifier = .required },
5994 .{ .kind = .id_ref, .quantifier = .optional },
5995 },
5996 },
5997 .{
5998 .name = "OpImageTexelPointer",
5999 .opcode = 60,
6000 .operands = &.{
6001 .{ .kind = .id_result_type, .quantifier = .required },
6002 .{ .kind = .id_result, .quantifier = .required },
6003 .{ .kind = .id_ref, .quantifier = .required },
6004 .{ .kind = .id_ref, .quantifier = .required },
6005 .{ .kind = .id_ref, .quantifier = .required },
6006 },
6007 },
6008 .{
6009 .name = "OpLoad",
6010 .opcode = 61,
6011 .operands = &.{
6012 .{ .kind = .id_result_type, .quantifier = .required },
6013 .{ .kind = .id_result, .quantifier = .required },
6014 .{ .kind = .id_ref, .quantifier = .required },
6015 .{ .kind = .memory_access, .quantifier = .optional },
6016 },
6017 },
6018 .{
6019 .name = "OpStore",
6020 .opcode = 62,
6021 .operands = &.{
6022 .{ .kind = .id_ref, .quantifier = .required },
6023 .{ .kind = .id_ref, .quantifier = .required },
6024 .{ .kind = .memory_access, .quantifier = .optional },
6025 },
6026 },
6027 .{
6028 .name = "OpCopyMemory",
6029 .opcode = 63,
6030 .operands = &.{
6031 .{ .kind = .id_ref, .quantifier = .required },
6032 .{ .kind = .id_ref, .quantifier = .required },
6033 .{ .kind = .memory_access, .quantifier = .optional },
6034 .{ .kind = .memory_access, .quantifier = .optional },
6035 },
6036 },
6037 .{
6038 .name = "OpCopyMemorySized",
6039 .opcode = 64,
6040 .operands = &.{
6041 .{ .kind = .id_ref, .quantifier = .required },
6042 .{ .kind = .id_ref, .quantifier = .required },
6043 .{ .kind = .id_ref, .quantifier = .required },
6044 .{ .kind = .memory_access, .quantifier = .optional },
6045 .{ .kind = .memory_access, .quantifier = .optional },
6046 },
6047 },
6048 .{
6049 .name = "OpAccessChain",
6050 .opcode = 65,
6051 .operands = &.{
6052 .{ .kind = .id_result_type, .quantifier = .required },
6053 .{ .kind = .id_result, .quantifier = .required },
6054 .{ .kind = .id_ref, .quantifier = .required },
6055 .{ .kind = .id_ref, .quantifier = .variadic },
6056 },
6057 },
6058 .{
6059 .name = "OpInBoundsAccessChain",
6060 .opcode = 66,
6061 .operands = &.{
6062 .{ .kind = .id_result_type, .quantifier = .required },
6063 .{ .kind = .id_result, .quantifier = .required },
6064 .{ .kind = .id_ref, .quantifier = .required },
6065 .{ .kind = .id_ref, .quantifier = .variadic },
6066 },
6067 },
6068 .{
6069 .name = "OpPtrAccessChain",
6070 .opcode = 67,
6071 .operands = &.{
6072 .{ .kind = .id_result_type, .quantifier = .required },
6073 .{ .kind = .id_result, .quantifier = .required },
6074 .{ .kind = .id_ref, .quantifier = .required },
6075 .{ .kind = .id_ref, .quantifier = .required },
6076 .{ .kind = .id_ref, .quantifier = .variadic },
6077 },
6078 },
6079 .{
6080 .name = "OpArrayLength",
6081 .opcode = 68,
6082 .operands = &.{
6083 .{ .kind = .id_result_type, .quantifier = .required },
6084 .{ .kind = .id_result, .quantifier = .required },
6085 .{ .kind = .id_ref, .quantifier = .required },
6086 .{ .kind = .literal_integer, .quantifier = .required },
6087 },
6088 },
6089 .{
6090 .name = "OpGenericPtrMemSemantics",
6091 .opcode = 69,
6092 .operands = &.{
6093 .{ .kind = .id_result_type, .quantifier = .required },
6094 .{ .kind = .id_result, .quantifier = .required },
6095 .{ .kind = .id_ref, .quantifier = .required },
6096 },
6097 },
6098 .{
6099 .name = "OpInBoundsPtrAccessChain",
6100 .opcode = 70,
6101 .operands = &.{
6102 .{ .kind = .id_result_type, .quantifier = .required },
6103 .{ .kind = .id_result, .quantifier = .required },
6104 .{ .kind = .id_ref, .quantifier = .required },
6105 .{ .kind = .id_ref, .quantifier = .required },
6106 .{ .kind = .id_ref, .quantifier = .variadic },
6107 },
6108 },
6109 .{
6110 .name = "OpDecorate",
6111 .opcode = 71,
6112 .operands = &.{
6113 .{ .kind = .id_ref, .quantifier = .required },
6114 .{ .kind = .decoration, .quantifier = .required },
6115 },
6116 },
6117 .{
6118 .name = "OpMemberDecorate",
6119 .opcode = 72,
6120 .operands = &.{
6121 .{ .kind = .id_ref, .quantifier = .required },
6122 .{ .kind = .literal_integer, .quantifier = .required },
6123 .{ .kind = .decoration, .quantifier = .required },
6124 },
6125 },
6126 .{
6127 .name = "OpDecorationGroup",
6128 .opcode = 73,
6129 .operands = &.{
6130 .{ .kind = .id_result, .quantifier = .required },
6131 },
6132 },
6133 .{
6134 .name = "OpGroupDecorate",
6135 .opcode = 74,
6136 .operands = &.{
6137 .{ .kind = .id_ref, .quantifier = .required },
6138 .{ .kind = .id_ref, .quantifier = .variadic },
6139 },
6140 },
6141 .{
6142 .name = "OpGroupMemberDecorate",
6143 .opcode = 75,
6144 .operands = &.{
6145 .{ .kind = .id_ref, .quantifier = .required },
6146 .{ .kind = .pair_id_ref_literal_integer, .quantifier = .variadic },
6147 },
6148 },
6149 .{
6150 .name = "OpVectorExtractDynamic",
6151 .opcode = 77,
6152 .operands = &.{
6153 .{ .kind = .id_result_type, .quantifier = .required },
6154 .{ .kind = .id_result, .quantifier = .required },
6155 .{ .kind = .id_ref, .quantifier = .required },
6156 .{ .kind = .id_ref, .quantifier = .required },
6157 },
6158 },
6159 .{
6160 .name = "OpVectorInsertDynamic",
6161 .opcode = 78,
6162 .operands = &.{
6163 .{ .kind = .id_result_type, .quantifier = .required },
6164 .{ .kind = .id_result, .quantifier = .required },
6165 .{ .kind = .id_ref, .quantifier = .required },
6166 .{ .kind = .id_ref, .quantifier = .required },
6167 .{ .kind = .id_ref, .quantifier = .required },
6168 },
6169 },
6170 .{
6171 .name = "OpVectorShuffle",
6172 .opcode = 79,
6173 .operands = &.{
6174 .{ .kind = .id_result_type, .quantifier = .required },
6175 .{ .kind = .id_result, .quantifier = .required },
6176 .{ .kind = .id_ref, .quantifier = .required },
6177 .{ .kind = .id_ref, .quantifier = .required },
6178 .{ .kind = .literal_integer, .quantifier = .variadic },
6179 },
6180 },
6181 .{
6182 .name = "OpCompositeConstruct",
6183 .opcode = 80,
6184 .operands = &.{
6185 .{ .kind = .id_result_type, .quantifier = .required },
6186 .{ .kind = .id_result, .quantifier = .required },
6187 .{ .kind = .id_ref, .quantifier = .variadic },
6188 },
6189 },
6190 .{
6191 .name = "OpCompositeExtract",
6192 .opcode = 81,
6193 .operands = &.{
6194 .{ .kind = .id_result_type, .quantifier = .required },
6195 .{ .kind = .id_result, .quantifier = .required },
6196 .{ .kind = .id_ref, .quantifier = .required },
6197 .{ .kind = .literal_integer, .quantifier = .variadic },
6198 },
6199 },
6200 .{
6201 .name = "OpCompositeInsert",
6202 .opcode = 82,
6203 .operands = &.{
6204 .{ .kind = .id_result_type, .quantifier = .required },
6205 .{ .kind = .id_result, .quantifier = .required },
6206 .{ .kind = .id_ref, .quantifier = .required },
6207 .{ .kind = .id_ref, .quantifier = .required },
6208 .{ .kind = .literal_integer, .quantifier = .variadic },
6209 },
6210 },
6211 .{
6212 .name = "OpCopyObject",
6213 .opcode = 83,
6214 .operands = &.{
6215 .{ .kind = .id_result_type, .quantifier = .required },
6216 .{ .kind = .id_result, .quantifier = .required },
6217 .{ .kind = .id_ref, .quantifier = .required },
6218 },
6219 },
6220 .{
6221 .name = "OpTranspose",
6222 .opcode = 84,
6223 .operands = &.{
6224 .{ .kind = .id_result_type, .quantifier = .required },
6225 .{ .kind = .id_result, .quantifier = .required },
6226 .{ .kind = .id_ref, .quantifier = .required },
6227 },
6228 },
6229 .{
6230 .name = "OpSampledImage",
6231 .opcode = 86,
6232 .operands = &.{
6233 .{ .kind = .id_result_type, .quantifier = .required },
6234 .{ .kind = .id_result, .quantifier = .required },
6235 .{ .kind = .id_ref, .quantifier = .required },
6236 .{ .kind = .id_ref, .quantifier = .required },
6237 },
6238 },
6239 .{
6240 .name = "OpImageSampleImplicitLod",
6241 .opcode = 87,
6242 .operands = &.{
6243 .{ .kind = .id_result_type, .quantifier = .required },
6244 .{ .kind = .id_result, .quantifier = .required },
6245 .{ .kind = .id_ref, .quantifier = .required },
6246 .{ .kind = .id_ref, .quantifier = .required },
6247 .{ .kind = .image_operands, .quantifier = .optional },
6248 },
6249 },
6250 .{
6251 .name = "OpImageSampleExplicitLod",
6252 .opcode = 88,
6253 .operands = &.{
6254 .{ .kind = .id_result_type, .quantifier = .required },
6255 .{ .kind = .id_result, .quantifier = .required },
6256 .{ .kind = .id_ref, .quantifier = .required },
6257 .{ .kind = .id_ref, .quantifier = .required },
6258 .{ .kind = .image_operands, .quantifier = .required },
6259 },
6260 },
6261 .{
6262 .name = "OpImageSampleDrefImplicitLod",
6263 .opcode = 89,
6264 .operands = &.{
6265 .{ .kind = .id_result_type, .quantifier = .required },
6266 .{ .kind = .id_result, .quantifier = .required },
6267 .{ .kind = .id_ref, .quantifier = .required },
6268 .{ .kind = .id_ref, .quantifier = .required },
6269 .{ .kind = .id_ref, .quantifier = .required },
6270 .{ .kind = .image_operands, .quantifier = .optional },
6271 },
6272 },
6273 .{
6274 .name = "OpImageSampleDrefExplicitLod",
6275 .opcode = 90,
6276 .operands = &.{
6277 .{ .kind = .id_result_type, .quantifier = .required },
6278 .{ .kind = .id_result, .quantifier = .required },
6279 .{ .kind = .id_ref, .quantifier = .required },
6280 .{ .kind = .id_ref, .quantifier = .required },
6281 .{ .kind = .id_ref, .quantifier = .required },
6282 .{ .kind = .image_operands, .quantifier = .required },
6283 },
6284 },
6285 .{
6286 .name = "OpImageSampleProjImplicitLod",
6287 .opcode = 91,
6288 .operands = &.{
6289 .{ .kind = .id_result_type, .quantifier = .required },
6290 .{ .kind = .id_result, .quantifier = .required },
6291 .{ .kind = .id_ref, .quantifier = .required },
6292 .{ .kind = .id_ref, .quantifier = .required },
6293 .{ .kind = .image_operands, .quantifier = .optional },
6294 },
6295 },
6296 .{
6297 .name = "OpImageSampleProjExplicitLod",
6298 .opcode = 92,
6299 .operands = &.{
6300 .{ .kind = .id_result_type, .quantifier = .required },
6301 .{ .kind = .id_result, .quantifier = .required },
6302 .{ .kind = .id_ref, .quantifier = .required },
6303 .{ .kind = .id_ref, .quantifier = .required },
6304 .{ .kind = .image_operands, .quantifier = .required },
6305 },
6306 },
6307 .{
6308 .name = "OpImageSampleProjDrefImplicitLod",
6309 .opcode = 93,
6310 .operands = &.{
6311 .{ .kind = .id_result_type, .quantifier = .required },
6312 .{ .kind = .id_result, .quantifier = .required },
6313 .{ .kind = .id_ref, .quantifier = .required },
6314 .{ .kind = .id_ref, .quantifier = .required },
6315 .{ .kind = .id_ref, .quantifier = .required },
6316 .{ .kind = .image_operands, .quantifier = .optional },
6317 },
6318 },
6319 .{
6320 .name = "OpImageSampleProjDrefExplicitLod",
6321 .opcode = 94,
6322 .operands = &.{
6323 .{ .kind = .id_result_type, .quantifier = .required },
6324 .{ .kind = .id_result, .quantifier = .required },
6325 .{ .kind = .id_ref, .quantifier = .required },
6326 .{ .kind = .id_ref, .quantifier = .required },
6327 .{ .kind = .id_ref, .quantifier = .required },
6328 .{ .kind = .image_operands, .quantifier = .required },
6329 },
6330 },
6331 .{
6332 .name = "OpImageFetch",
6333 .opcode = 95,
6334 .operands = &.{
6335 .{ .kind = .id_result_type, .quantifier = .required },
6336 .{ .kind = .id_result, .quantifier = .required },
6337 .{ .kind = .id_ref, .quantifier = .required },
6338 .{ .kind = .id_ref, .quantifier = .required },
6339 .{ .kind = .image_operands, .quantifier = .optional },
6340 },
6341 },
6342 .{
6343 .name = "OpImageGather",
6344 .opcode = 96,
6345 .operands = &.{
6346 .{ .kind = .id_result_type, .quantifier = .required },
6347 .{ .kind = .id_result, .quantifier = .required },
6348 .{ .kind = .id_ref, .quantifier = .required },
6349 .{ .kind = .id_ref, .quantifier = .required },
6350 .{ .kind = .id_ref, .quantifier = .required },
6351 .{ .kind = .image_operands, .quantifier = .optional },
6352 },
6353 },
6354 .{
6355 .name = "OpImageDrefGather",
6356 .opcode = 97,
6357 .operands = &.{
6358 .{ .kind = .id_result_type, .quantifier = .required },
6359 .{ .kind = .id_result, .quantifier = .required },
6360 .{ .kind = .id_ref, .quantifier = .required },
6361 .{ .kind = .id_ref, .quantifier = .required },
6362 .{ .kind = .id_ref, .quantifier = .required },
6363 .{ .kind = .image_operands, .quantifier = .optional },
6364 },
6365 },
6366 .{
6367 .name = "OpImageRead",
6368 .opcode = 98,
6369 .operands = &.{
6370 .{ .kind = .id_result_type, .quantifier = .required },
6371 .{ .kind = .id_result, .quantifier = .required },
6372 .{ .kind = .id_ref, .quantifier = .required },
6373 .{ .kind = .id_ref, .quantifier = .required },
6374 .{ .kind = .image_operands, .quantifier = .optional },
6375 },
6376 },
6377 .{
6378 .name = "OpImageWrite",
6379 .opcode = 99,
6380 .operands = &.{
6381 .{ .kind = .id_ref, .quantifier = .required },
6382 .{ .kind = .id_ref, .quantifier = .required },
6383 .{ .kind = .id_ref, .quantifier = .required },
6384 .{ .kind = .image_operands, .quantifier = .optional },
6385 },
6386 },
6387 .{
6388 .name = "OpImage",
6389 .opcode = 100,
6390 .operands = &.{
6391 .{ .kind = .id_result_type, .quantifier = .required },
6392 .{ .kind = .id_result, .quantifier = .required },
6393 .{ .kind = .id_ref, .quantifier = .required },
6394 },
6395 },
6396 .{
6397 .name = "OpImageQueryFormat",
6398 .opcode = 101,
6399 .operands = &.{
6400 .{ .kind = .id_result_type, .quantifier = .required },
6401 .{ .kind = .id_result, .quantifier = .required },
6402 .{ .kind = .id_ref, .quantifier = .required },
6403 },
6404 },
6405 .{
6406 .name = "OpImageQueryOrder",
6407 .opcode = 102,
6408 .operands = &.{
6409 .{ .kind = .id_result_type, .quantifier = .required },
6410 .{ .kind = .id_result, .quantifier = .required },
6411 .{ .kind = .id_ref, .quantifier = .required },
6412 },
6413 },
6414 .{
6415 .name = "OpImageQuerySizeLod",
6416 .opcode = 103,
6417 .operands = &.{
6418 .{ .kind = .id_result_type, .quantifier = .required },
6419 .{ .kind = .id_result, .quantifier = .required },
6420 .{ .kind = .id_ref, .quantifier = .required },
6421 .{ .kind = .id_ref, .quantifier = .required },
6422 },
6423 },
6424 .{
6425 .name = "OpImageQuerySize",
6426 .opcode = 104,
6427 .operands = &.{
6428 .{ .kind = .id_result_type, .quantifier = .required },
6429 .{ .kind = .id_result, .quantifier = .required },
6430 .{ .kind = .id_ref, .quantifier = .required },
6431 },
6432 },
6433 .{
6434 .name = "OpImageQueryLod",
6435 .opcode = 105,
6436 .operands = &.{
6437 .{ .kind = .id_result_type, .quantifier = .required },
6438 .{ .kind = .id_result, .quantifier = .required },
6439 .{ .kind = .id_ref, .quantifier = .required },
6440 .{ .kind = .id_ref, .quantifier = .required },
6441 },
6442 },
6443 .{
6444 .name = "OpImageQueryLevels",
6445 .opcode = 106,
6446 .operands = &.{
6447 .{ .kind = .id_result_type, .quantifier = .required },
6448 .{ .kind = .id_result, .quantifier = .required },
6449 .{ .kind = .id_ref, .quantifier = .required },
6450 },
6451 },
6452 .{
6453 .name = "OpImageQuerySamples",
6454 .opcode = 107,
6455 .operands = &.{
6456 .{ .kind = .id_result_type, .quantifier = .required },
6457 .{ .kind = .id_result, .quantifier = .required },
6458 .{ .kind = .id_ref, .quantifier = .required },
6459 },
6460 },
6461 .{
6462 .name = "OpConvertFToU",
6463 .opcode = 109,
6464 .operands = &.{
6465 .{ .kind = .id_result_type, .quantifier = .required },
6466 .{ .kind = .id_result, .quantifier = .required },
6467 .{ .kind = .id_ref, .quantifier = .required },
6468 },
6469 },
6470 .{
6471 .name = "OpConvertFToS",
6472 .opcode = 110,
6473 .operands = &.{
6474 .{ .kind = .id_result_type, .quantifier = .required },
6475 .{ .kind = .id_result, .quantifier = .required },
6476 .{ .kind = .id_ref, .quantifier = .required },
6477 },
6478 },
6479 .{
6480 .name = "OpConvertSToF",
6481 .opcode = 111,
6482 .operands = &.{
6483 .{ .kind = .id_result_type, .quantifier = .required },
6484 .{ .kind = .id_result, .quantifier = .required },
6485 .{ .kind = .id_ref, .quantifier = .required },
6486 },
6487 },
6488 .{
6489 .name = "OpConvertUToF",
6490 .opcode = 112,
6491 .operands = &.{
6492 .{ .kind = .id_result_type, .quantifier = .required },
6493 .{ .kind = .id_result, .quantifier = .required },
6494 .{ .kind = .id_ref, .quantifier = .required },
6495 },
6496 },
6497 .{
6498 .name = "OpUConvert",
6499 .opcode = 113,
6500 .operands = &.{
6501 .{ .kind = .id_result_type, .quantifier = .required },
6502 .{ .kind = .id_result, .quantifier = .required },
6503 .{ .kind = .id_ref, .quantifier = .required },
6504 },
6505 },
6506 .{
6507 .name = "OpSConvert",
6508 .opcode = 114,
6509 .operands = &.{
6510 .{ .kind = .id_result_type, .quantifier = .required },
6511 .{ .kind = .id_result, .quantifier = .required },
6512 .{ .kind = .id_ref, .quantifier = .required },
6513 },
6514 },
6515 .{
6516 .name = "OpFConvert",
6517 .opcode = 115,
6518 .operands = &.{
6519 .{ .kind = .id_result_type, .quantifier = .required },
6520 .{ .kind = .id_result, .quantifier = .required },
6521 .{ .kind = .id_ref, .quantifier = .required },
6522 },
6523 },
6524 .{
6525 .name = "OpQuantizeToF16",
6526 .opcode = 116,
6527 .operands = &.{
6528 .{ .kind = .id_result_type, .quantifier = .required },
6529 .{ .kind = .id_result, .quantifier = .required },
6530 .{ .kind = .id_ref, .quantifier = .required },
6531 },
6532 },
6533 .{
6534 .name = "OpConvertPtrToU",
6535 .opcode = 117,
6536 .operands = &.{
6537 .{ .kind = .id_result_type, .quantifier = .required },
6538 .{ .kind = .id_result, .quantifier = .required },
6539 .{ .kind = .id_ref, .quantifier = .required },
6540 },
6541 },
6542 .{
6543 .name = "OpSatConvertSToU",
6544 .opcode = 118,
6545 .operands = &.{
6546 .{ .kind = .id_result_type, .quantifier = .required },
6547 .{ .kind = .id_result, .quantifier = .required },
6548 .{ .kind = .id_ref, .quantifier = .required },
6549 },
6550 },
6551 .{
6552 .name = "OpSatConvertUToS",
6553 .opcode = 119,
6554 .operands = &.{
6555 .{ .kind = .id_result_type, .quantifier = .required },
6556 .{ .kind = .id_result, .quantifier = .required },
6557 .{ .kind = .id_ref, .quantifier = .required },
6558 },
6559 },
6560 .{
6561 .name = "OpConvertUToPtr",
6562 .opcode = 120,
6563 .operands = &.{
6564 .{ .kind = .id_result_type, .quantifier = .required },
6565 .{ .kind = .id_result, .quantifier = .required },
6566 .{ .kind = .id_ref, .quantifier = .required },
6567 },
6568 },
6569 .{
6570 .name = "OpPtrCastToGeneric",
6571 .opcode = 121,
6572 .operands = &.{
6573 .{ .kind = .id_result_type, .quantifier = .required },
6574 .{ .kind = .id_result, .quantifier = .required },
6575 .{ .kind = .id_ref, .quantifier = .required },
6576 },
6577 },
6578 .{
6579 .name = "OpGenericCastToPtr",
6580 .opcode = 122,
6581 .operands = &.{
6582 .{ .kind = .id_result_type, .quantifier = .required },
6583 .{ .kind = .id_result, .quantifier = .required },
6584 .{ .kind = .id_ref, .quantifier = .required },
6585 },
6586 },
6587 .{
6588 .name = "OpGenericCastToPtrExplicit",
6589 .opcode = 123,
6590 .operands = &.{
6591 .{ .kind = .id_result_type, .quantifier = .required },
6592 .{ .kind = .id_result, .quantifier = .required },
6593 .{ .kind = .id_ref, .quantifier = .required },
6594 .{ .kind = .storage_class, .quantifier = .required },
6595 },
6596 },
6597 .{
6598 .name = "OpBitcast",
6599 .opcode = 124,
6600 .operands = &.{
6601 .{ .kind = .id_result_type, .quantifier = .required },
6602 .{ .kind = .id_result, .quantifier = .required },
6603 .{ .kind = .id_ref, .quantifier = .required },
6604 },
6605 },
6606 .{
6607 .name = "OpSNegate",
6608 .opcode = 126,
6609 .operands = &.{
6610 .{ .kind = .id_result_type, .quantifier = .required },
6611 .{ .kind = .id_result, .quantifier = .required },
6612 .{ .kind = .id_ref, .quantifier = .required },
6613 },
6614 },
6615 .{
6616 .name = "OpFNegate",
6617 .opcode = 127,
6618 .operands = &.{
6619 .{ .kind = .id_result_type, .quantifier = .required },
6620 .{ .kind = .id_result, .quantifier = .required },
6621 .{ .kind = .id_ref, .quantifier = .required },
6622 },
6623 },
6624 .{
6625 .name = "OpIAdd",
6626 .opcode = 128,
6627 .operands = &.{
6628 .{ .kind = .id_result_type, .quantifier = .required },
6629 .{ .kind = .id_result, .quantifier = .required },
6630 .{ .kind = .id_ref, .quantifier = .required },
6631 .{ .kind = .id_ref, .quantifier = .required },
6632 },
6633 },
6634 .{
6635 .name = "OpFAdd",
6636 .opcode = 129,
6637 .operands = &.{
6638 .{ .kind = .id_result_type, .quantifier = .required },
6639 .{ .kind = .id_result, .quantifier = .required },
6640 .{ .kind = .id_ref, .quantifier = .required },
6641 .{ .kind = .id_ref, .quantifier = .required },
6642 },
6643 },
6644 .{
6645 .name = "OpISub",
6646 .opcode = 130,
6647 .operands = &.{
6648 .{ .kind = .id_result_type, .quantifier = .required },
6649 .{ .kind = .id_result, .quantifier = .required },
6650 .{ .kind = .id_ref, .quantifier = .required },
6651 .{ .kind = .id_ref, .quantifier = .required },
6652 },
6653 },
6654 .{
6655 .name = "OpFSub",
6656 .opcode = 131,
6657 .operands = &.{
6658 .{ .kind = .id_result_type, .quantifier = .required },
6659 .{ .kind = .id_result, .quantifier = .required },
6660 .{ .kind = .id_ref, .quantifier = .required },
6661 .{ .kind = .id_ref, .quantifier = .required },
6662 },
6663 },
6664 .{
6665 .name = "OpIMul",
6666 .opcode = 132,
6667 .operands = &.{
6668 .{ .kind = .id_result_type, .quantifier = .required },
6669 .{ .kind = .id_result, .quantifier = .required },
6670 .{ .kind = .id_ref, .quantifier = .required },
6671 .{ .kind = .id_ref, .quantifier = .required },
6672 },
6673 },
6674 .{
6675 .name = "OpFMul",
6676 .opcode = 133,
6677 .operands = &.{
6678 .{ .kind = .id_result_type, .quantifier = .required },
6679 .{ .kind = .id_result, .quantifier = .required },
6680 .{ .kind = .id_ref, .quantifier = .required },
6681 .{ .kind = .id_ref, .quantifier = .required },
6682 },
6683 },
6684 .{
6685 .name = "OpUDiv",
6686 .opcode = 134,
6687 .operands = &.{
6688 .{ .kind = .id_result_type, .quantifier = .required },
6689 .{ .kind = .id_result, .quantifier = .required },
6690 .{ .kind = .id_ref, .quantifier = .required },
6691 .{ .kind = .id_ref, .quantifier = .required },
6692 },
6693 },
6694 .{
6695 .name = "OpSDiv",
6696 .opcode = 135,
6697 .operands = &.{
6698 .{ .kind = .id_result_type, .quantifier = .required },
6699 .{ .kind = .id_result, .quantifier = .required },
6700 .{ .kind = .id_ref, .quantifier = .required },
6701 .{ .kind = .id_ref, .quantifier = .required },
6702 },
6703 },
6704 .{
6705 .name = "OpFDiv",
6706 .opcode = 136,
6707 .operands = &.{
6708 .{ .kind = .id_result_type, .quantifier = .required },
6709 .{ .kind = .id_result, .quantifier = .required },
6710 .{ .kind = .id_ref, .quantifier = .required },
6711 .{ .kind = .id_ref, .quantifier = .required },
6712 },
6713 },
6714 .{
6715 .name = "OpUMod",
6716 .opcode = 137,
6717 .operands = &.{
6718 .{ .kind = .id_result_type, .quantifier = .required },
6719 .{ .kind = .id_result, .quantifier = .required },
6720 .{ .kind = .id_ref, .quantifier = .required },
6721 .{ .kind = .id_ref, .quantifier = .required },
6722 },
6723 },
6724 .{
6725 .name = "OpSRem",
6726 .opcode = 138,
6727 .operands = &.{
6728 .{ .kind = .id_result_type, .quantifier = .required },
6729 .{ .kind = .id_result, .quantifier = .required },
6730 .{ .kind = .id_ref, .quantifier = .required },
6731 .{ .kind = .id_ref, .quantifier = .required },
6732 },
6733 },
6734 .{
6735 .name = "OpSMod",
6736 .opcode = 139,
6737 .operands = &.{
6738 .{ .kind = .id_result_type, .quantifier = .required },
6739 .{ .kind = .id_result, .quantifier = .required },
6740 .{ .kind = .id_ref, .quantifier = .required },
6741 .{ .kind = .id_ref, .quantifier = .required },
6742 },
6743 },
6744 .{
6745 .name = "OpFRem",
6746 .opcode = 140,
6747 .operands = &.{
6748 .{ .kind = .id_result_type, .quantifier = .required },
6749 .{ .kind = .id_result, .quantifier = .required },
6750 .{ .kind = .id_ref, .quantifier = .required },
6751 .{ .kind = .id_ref, .quantifier = .required },
6752 },
6753 },
6754 .{
6755 .name = "OpFMod",
6756 .opcode = 141,
6757 .operands = &.{
6758 .{ .kind = .id_result_type, .quantifier = .required },
6759 .{ .kind = .id_result, .quantifier = .required },
6760 .{ .kind = .id_ref, .quantifier = .required },
6761 .{ .kind = .id_ref, .quantifier = .required },
6762 },
6763 },
6764 .{
6765 .name = "OpVectorTimesScalar",
6766 .opcode = 142,
6767 .operands = &.{
6768 .{ .kind = .id_result_type, .quantifier = .required },
6769 .{ .kind = .id_result, .quantifier = .required },
6770 .{ .kind = .id_ref, .quantifier = .required },
6771 .{ .kind = .id_ref, .quantifier = .required },
6772 },
6773 },
6774 .{
6775 .name = "OpMatrixTimesScalar",
6776 .opcode = 143,
6777 .operands = &.{
6778 .{ .kind = .id_result_type, .quantifier = .required },
6779 .{ .kind = .id_result, .quantifier = .required },
6780 .{ .kind = .id_ref, .quantifier = .required },
6781 .{ .kind = .id_ref, .quantifier = .required },
6782 },
6783 },
6784 .{
6785 .name = "OpVectorTimesMatrix",
6786 .opcode = 144,
6787 .operands = &.{
6788 .{ .kind = .id_result_type, .quantifier = .required },
6789 .{ .kind = .id_result, .quantifier = .required },
6790 .{ .kind = .id_ref, .quantifier = .required },
6791 .{ .kind = .id_ref, .quantifier = .required },
6792 },
6793 },
6794 .{
6795 .name = "OpMatrixTimesVector",
6796 .opcode = 145,
6797 .operands = &.{
6798 .{ .kind = .id_result_type, .quantifier = .required },
6799 .{ .kind = .id_result, .quantifier = .required },
6800 .{ .kind = .id_ref, .quantifier = .required },
6801 .{ .kind = .id_ref, .quantifier = .required },
6802 },
6803 },
6804 .{
6805 .name = "OpMatrixTimesMatrix",
6806 .opcode = 146,
6807 .operands = &.{
6808 .{ .kind = .id_result_type, .quantifier = .required },
6809 .{ .kind = .id_result, .quantifier = .required },
6810 .{ .kind = .id_ref, .quantifier = .required },
6811 .{ .kind = .id_ref, .quantifier = .required },
6812 },
6813 },
6814 .{
6815 .name = "OpOuterProduct",
6816 .opcode = 147,
6817 .operands = &.{
6818 .{ .kind = .id_result_type, .quantifier = .required },
6819 .{ .kind = .id_result, .quantifier = .required },
6820 .{ .kind = .id_ref, .quantifier = .required },
6821 .{ .kind = .id_ref, .quantifier = .required },
6822 },
6823 },
6824 .{
6825 .name = "OpDot",
6826 .opcode = 148,
6827 .operands = &.{
6828 .{ .kind = .id_result_type, .quantifier = .required },
6829 .{ .kind = .id_result, .quantifier = .required },
6830 .{ .kind = .id_ref, .quantifier = .required },
6831 .{ .kind = .id_ref, .quantifier = .required },
6832 },
6833 },
6834 .{
6835 .name = "OpIAddCarry",
6836 .opcode = 149,
6837 .operands = &.{
6838 .{ .kind = .id_result_type, .quantifier = .required },
6839 .{ .kind = .id_result, .quantifier = .required },
6840 .{ .kind = .id_ref, .quantifier = .required },
6841 .{ .kind = .id_ref, .quantifier = .required },
6842 },
6843 },
6844 .{
6845 .name = "OpISubBorrow",
6846 .opcode = 150,
6847 .operands = &.{
6848 .{ .kind = .id_result_type, .quantifier = .required },
6849 .{ .kind = .id_result, .quantifier = .required },
6850 .{ .kind = .id_ref, .quantifier = .required },
6851 .{ .kind = .id_ref, .quantifier = .required },
6852 },
6853 },
6854 .{
6855 .name = "OpUMulExtended",
6856 .opcode = 151,
6857 .operands = &.{
6858 .{ .kind = .id_result_type, .quantifier = .required },
6859 .{ .kind = .id_result, .quantifier = .required },
6860 .{ .kind = .id_ref, .quantifier = .required },
6861 .{ .kind = .id_ref, .quantifier = .required },
6862 },
6863 },
6864 .{
6865 .name = "OpSMulExtended",
6866 .opcode = 152,
6867 .operands = &.{
6868 .{ .kind = .id_result_type, .quantifier = .required },
6869 .{ .kind = .id_result, .quantifier = .required },
6870 .{ .kind = .id_ref, .quantifier = .required },
6871 .{ .kind = .id_ref, .quantifier = .required },
6872 },
6873 },
6874 .{
6875 .name = "OpAny",
6876 .opcode = 154,
6877 .operands = &.{
6878 .{ .kind = .id_result_type, .quantifier = .required },
6879 .{ .kind = .id_result, .quantifier = .required },
6880 .{ .kind = .id_ref, .quantifier = .required },
6881 },
6882 },
6883 .{
6884 .name = "OpAll",
6885 .opcode = 155,
6886 .operands = &.{
6887 .{ .kind = .id_result_type, .quantifier = .required },
6888 .{ .kind = .id_result, .quantifier = .required },
6889 .{ .kind = .id_ref, .quantifier = .required },
6890 },
6891 },
6892 .{
6893 .name = "OpIsNan",
6894 .opcode = 156,
6895 .operands = &.{
6896 .{ .kind = .id_result_type, .quantifier = .required },
6897 .{ .kind = .id_result, .quantifier = .required },
6898 .{ .kind = .id_ref, .quantifier = .required },
6899 },
6900 },
6901 .{
6902 .name = "OpIsInf",
6903 .opcode = 157,
6904 .operands = &.{
6905 .{ .kind = .id_result_type, .quantifier = .required },
6906 .{ .kind = .id_result, .quantifier = .required },
6907 .{ .kind = .id_ref, .quantifier = .required },
6908 },
6909 },
6910 .{
6911 .name = "OpIsFinite",
6912 .opcode = 158,
6913 .operands = &.{
6914 .{ .kind = .id_result_type, .quantifier = .required },
6915 .{ .kind = .id_result, .quantifier = .required },
6916 .{ .kind = .id_ref, .quantifier = .required },
6917 },
6918 },
6919 .{
6920 .name = "OpIsNormal",
6921 .opcode = 159,
6922 .operands = &.{
6923 .{ .kind = .id_result_type, .quantifier = .required },
6924 .{ .kind = .id_result, .quantifier = .required },
6925 .{ .kind = .id_ref, .quantifier = .required },
6926 },
6927 },
6928 .{
6929 .name = "OpSignBitSet",
6930 .opcode = 160,
6931 .operands = &.{
6932 .{ .kind = .id_result_type, .quantifier = .required },
6933 .{ .kind = .id_result, .quantifier = .required },
6934 .{ .kind = .id_ref, .quantifier = .required },
6935 },
6936 },
6937 .{
6938 .name = "OpLessOrGreater",
6939 .opcode = 161,
6940 .operands = &.{
6941 .{ .kind = .id_result_type, .quantifier = .required },
6942 .{ .kind = .id_result, .quantifier = .required },
6943 .{ .kind = .id_ref, .quantifier = .required },
6944 .{ .kind = .id_ref, .quantifier = .required },
6945 },
6946 },
6947 .{
6948 .name = "OpOrdered",
6949 .opcode = 162,
6950 .operands = &.{
6951 .{ .kind = .id_result_type, .quantifier = .required },
6952 .{ .kind = .id_result, .quantifier = .required },
6953 .{ .kind = .id_ref, .quantifier = .required },
6954 .{ .kind = .id_ref, .quantifier = .required },
6955 },
6956 },
6957 .{
6958 .name = "OpUnordered",
6959 .opcode = 163,
6960 .operands = &.{
6961 .{ .kind = .id_result_type, .quantifier = .required },
6962 .{ .kind = .id_result, .quantifier = .required },
6963 .{ .kind = .id_ref, .quantifier = .required },
6964 .{ .kind = .id_ref, .quantifier = .required },
6965 },
6966 },
6967 .{
6968 .name = "OpLogicalEqual",
6969 .opcode = 164,
6970 .operands = &.{
6971 .{ .kind = .id_result_type, .quantifier = .required },
6972 .{ .kind = .id_result, .quantifier = .required },
6973 .{ .kind = .id_ref, .quantifier = .required },
6974 .{ .kind = .id_ref, .quantifier = .required },
6975 },
6976 },
6977 .{
6978 .name = "OpLogicalNotEqual",
6979 .opcode = 165,
6980 .operands = &.{
6981 .{ .kind = .id_result_type, .quantifier = .required },
6982 .{ .kind = .id_result, .quantifier = .required },
6983 .{ .kind = .id_ref, .quantifier = .required },
6984 .{ .kind = .id_ref, .quantifier = .required },
6985 },
6986 },
6987 .{
6988 .name = "OpLogicalOr",
6989 .opcode = 166,
6990 .operands = &.{
6991 .{ .kind = .id_result_type, .quantifier = .required },
6992 .{ .kind = .id_result, .quantifier = .required },
6993 .{ .kind = .id_ref, .quantifier = .required },
6994 .{ .kind = .id_ref, .quantifier = .required },
6995 },
6996 },
6997 .{
6998 .name = "OpLogicalAnd",
6999 .opcode = 167,
7000 .operands = &.{
7001 .{ .kind = .id_result_type, .quantifier = .required },
7002 .{ .kind = .id_result, .quantifier = .required },
7003 .{ .kind = .id_ref, .quantifier = .required },
7004 .{ .kind = .id_ref, .quantifier = .required },
7005 },
7006 },
7007 .{
7008 .name = "OpLogicalNot",
7009 .opcode = 168,
7010 .operands = &.{
7011 .{ .kind = .id_result_type, .quantifier = .required },
7012 .{ .kind = .id_result, .quantifier = .required },
7013 .{ .kind = .id_ref, .quantifier = .required },
7014 },
7015 },
7016 .{
7017 .name = "OpSelect",
7018 .opcode = 169,
7019 .operands = &.{
7020 .{ .kind = .id_result_type, .quantifier = .required },
7021 .{ .kind = .id_result, .quantifier = .required },
7022 .{ .kind = .id_ref, .quantifier = .required },
7023 .{ .kind = .id_ref, .quantifier = .required },
7024 .{ .kind = .id_ref, .quantifier = .required },
7025 },
7026 },
7027 .{
7028 .name = "OpIEqual",
7029 .opcode = 170,
7030 .operands = &.{
7031 .{ .kind = .id_result_type, .quantifier = .required },
7032 .{ .kind = .id_result, .quantifier = .required },
7033 .{ .kind = .id_ref, .quantifier = .required },
7034 .{ .kind = .id_ref, .quantifier = .required },
7035 },
7036 },
7037 .{
7038 .name = "OpINotEqual",
7039 .opcode = 171,
7040 .operands = &.{
7041 .{ .kind = .id_result_type, .quantifier = .required },
7042 .{ .kind = .id_result, .quantifier = .required },
7043 .{ .kind = .id_ref, .quantifier = .required },
7044 .{ .kind = .id_ref, .quantifier = .required },
7045 },
7046 },
7047 .{
7048 .name = "OpUGreaterThan",
7049 .opcode = 172,
7050 .operands = &.{
7051 .{ .kind = .id_result_type, .quantifier = .required },
7052 .{ .kind = .id_result, .quantifier = .required },
7053 .{ .kind = .id_ref, .quantifier = .required },
7054 .{ .kind = .id_ref, .quantifier = .required },
7055 },
7056 },
7057 .{
7058 .name = "OpSGreaterThan",
7059 .opcode = 173,
7060 .operands = &.{
7061 .{ .kind = .id_result_type, .quantifier = .required },
7062 .{ .kind = .id_result, .quantifier = .required },
7063 .{ .kind = .id_ref, .quantifier = .required },
7064 .{ .kind = .id_ref, .quantifier = .required },
7065 },
7066 },
7067 .{
7068 .name = "OpUGreaterThanEqual",
7069 .opcode = 174,
7070 .operands = &.{
7071 .{ .kind = .id_result_type, .quantifier = .required },
7072 .{ .kind = .id_result, .quantifier = .required },
7073 .{ .kind = .id_ref, .quantifier = .required },
7074 .{ .kind = .id_ref, .quantifier = .required },
7075 },
7076 },
7077 .{
7078 .name = "OpSGreaterThanEqual",
7079 .opcode = 175,
7080 .operands = &.{
7081 .{ .kind = .id_result_type, .quantifier = .required },
7082 .{ .kind = .id_result, .quantifier = .required },
7083 .{ .kind = .id_ref, .quantifier = .required },
7084 .{ .kind = .id_ref, .quantifier = .required },
7085 },
7086 },
7087 .{
7088 .name = "OpULessThan",
7089 .opcode = 176,
7090 .operands = &.{
7091 .{ .kind = .id_result_type, .quantifier = .required },
7092 .{ .kind = .id_result, .quantifier = .required },
7093 .{ .kind = .id_ref, .quantifier = .required },
7094 .{ .kind = .id_ref, .quantifier = .required },
7095 },
7096 },
7097 .{
7098 .name = "OpSLessThan",
7099 .opcode = 177,
7100 .operands = &.{
7101 .{ .kind = .id_result_type, .quantifier = .required },
7102 .{ .kind = .id_result, .quantifier = .required },
7103 .{ .kind = .id_ref, .quantifier = .required },
7104 .{ .kind = .id_ref, .quantifier = .required },
7105 },
7106 },
7107 .{
7108 .name = "OpULessThanEqual",
7109 .opcode = 178,
7110 .operands = &.{
7111 .{ .kind = .id_result_type, .quantifier = .required },
7112 .{ .kind = .id_result, .quantifier = .required },
7113 .{ .kind = .id_ref, .quantifier = .required },
7114 .{ .kind = .id_ref, .quantifier = .required },
7115 },
7116 },
7117 .{
7118 .name = "OpSLessThanEqual",
7119 .opcode = 179,
7120 .operands = &.{
7121 .{ .kind = .id_result_type, .quantifier = .required },
7122 .{ .kind = .id_result, .quantifier = .required },
7123 .{ .kind = .id_ref, .quantifier = .required },
7124 .{ .kind = .id_ref, .quantifier = .required },
7125 },
7126 },
7127 .{
7128 .name = "OpFOrdEqual",
7129 .opcode = 180,
7130 .operands = &.{
7131 .{ .kind = .id_result_type, .quantifier = .required },
7132 .{ .kind = .id_result, .quantifier = .required },
7133 .{ .kind = .id_ref, .quantifier = .required },
7134 .{ .kind = .id_ref, .quantifier = .required },
7135 },
7136 },
7137 .{
7138 .name = "OpFUnordEqual",
7139 .opcode = 181,
7140 .operands = &.{
7141 .{ .kind = .id_result_type, .quantifier = .required },
7142 .{ .kind = .id_result, .quantifier = .required },
7143 .{ .kind = .id_ref, .quantifier = .required },
7144 .{ .kind = .id_ref, .quantifier = .required },
7145 },
7146 },
7147 .{
7148 .name = "OpFOrdNotEqual",
7149 .opcode = 182,
7150 .operands = &.{
7151 .{ .kind = .id_result_type, .quantifier = .required },
7152 .{ .kind = .id_result, .quantifier = .required },
7153 .{ .kind = .id_ref, .quantifier = .required },
7154 .{ .kind = .id_ref, .quantifier = .required },
7155 },
7156 },
7157 .{
7158 .name = "OpFUnordNotEqual",
7159 .opcode = 183,
7160 .operands = &.{
7161 .{ .kind = .id_result_type, .quantifier = .required },
7162 .{ .kind = .id_result, .quantifier = .required },
7163 .{ .kind = .id_ref, .quantifier = .required },
7164 .{ .kind = .id_ref, .quantifier = .required },
7165 },
7166 },
7167 .{
7168 .name = "OpFOrdLessThan",
7169 .opcode = 184,
7170 .operands = &.{
7171 .{ .kind = .id_result_type, .quantifier = .required },
7172 .{ .kind = .id_result, .quantifier = .required },
7173 .{ .kind = .id_ref, .quantifier = .required },
7174 .{ .kind = .id_ref, .quantifier = .required },
7175 },
7176 },
7177 .{
7178 .name = "OpFUnordLessThan",
7179 .opcode = 185,
7180 .operands = &.{
7181 .{ .kind = .id_result_type, .quantifier = .required },
7182 .{ .kind = .id_result, .quantifier = .required },
7183 .{ .kind = .id_ref, .quantifier = .required },
7184 .{ .kind = .id_ref, .quantifier = .required },
7185 },
7186 },
7187 .{
7188 .name = "OpFOrdGreaterThan",
7189 .opcode = 186,
7190 .operands = &.{
7191 .{ .kind = .id_result_type, .quantifier = .required },
7192 .{ .kind = .id_result, .quantifier = .required },
7193 .{ .kind = .id_ref, .quantifier = .required },
7194 .{ .kind = .id_ref, .quantifier = .required },
7195 },
7196 },
7197 .{
7198 .name = "OpFUnordGreaterThan",
7199 .opcode = 187,
7200 .operands = &.{
7201 .{ .kind = .id_result_type, .quantifier = .required },
7202 .{ .kind = .id_result, .quantifier = .required },
7203 .{ .kind = .id_ref, .quantifier = .required },
7204 .{ .kind = .id_ref, .quantifier = .required },
7205 },
7206 },
7207 .{
7208 .name = "OpFOrdLessThanEqual",
7209 .opcode = 188,
7210 .operands = &.{
7211 .{ .kind = .id_result_type, .quantifier = .required },
7212 .{ .kind = .id_result, .quantifier = .required },
7213 .{ .kind = .id_ref, .quantifier = .required },
7214 .{ .kind = .id_ref, .quantifier = .required },
7215 },
7216 },
7217 .{
7218 .name = "OpFUnordLessThanEqual",
7219 .opcode = 189,
7220 .operands = &.{
7221 .{ .kind = .id_result_type, .quantifier = .required },
7222 .{ .kind = .id_result, .quantifier = .required },
7223 .{ .kind = .id_ref, .quantifier = .required },
7224 .{ .kind = .id_ref, .quantifier = .required },
7225 },
7226 },
7227 .{
7228 .name = "OpFOrdGreaterThanEqual",
7229 .opcode = 190,
7230 .operands = &.{
7231 .{ .kind = .id_result_type, .quantifier = .required },
7232 .{ .kind = .id_result, .quantifier = .required },
7233 .{ .kind = .id_ref, .quantifier = .required },
7234 .{ .kind = .id_ref, .quantifier = .required },
7235 },
7236 },
7237 .{
7238 .name = "OpFUnordGreaterThanEqual",
7239 .opcode = 191,
7240 .operands = &.{
7241 .{ .kind = .id_result_type, .quantifier = .required },
7242 .{ .kind = .id_result, .quantifier = .required },
7243 .{ .kind = .id_ref, .quantifier = .required },
7244 .{ .kind = .id_ref, .quantifier = .required },
7245 },
7246 },
7247 .{
7248 .name = "OpShiftRightLogical",
7249 .opcode = 194,
7250 .operands = &.{
7251 .{ .kind = .id_result_type, .quantifier = .required },
7252 .{ .kind = .id_result, .quantifier = .required },
7253 .{ .kind = .id_ref, .quantifier = .required },
7254 .{ .kind = .id_ref, .quantifier = .required },
7255 },
7256 },
7257 .{
7258 .name = "OpShiftRightArithmetic",
7259 .opcode = 195,
7260 .operands = &.{
7261 .{ .kind = .id_result_type, .quantifier = .required },
7262 .{ .kind = .id_result, .quantifier = .required },
7263 .{ .kind = .id_ref, .quantifier = .required },
7264 .{ .kind = .id_ref, .quantifier = .required },
7265 },
7266 },
7267 .{
7268 .name = "OpShiftLeftLogical",
7269 .opcode = 196,
7270 .operands = &.{
7271 .{ .kind = .id_result_type, .quantifier = .required },
7272 .{ .kind = .id_result, .quantifier = .required },
7273 .{ .kind = .id_ref, .quantifier = .required },
7274 .{ .kind = .id_ref, .quantifier = .required },
7275 },
7276 },
7277 .{
7278 .name = "OpBitwiseOr",
7279 .opcode = 197,
7280 .operands = &.{
7281 .{ .kind = .id_result_type, .quantifier = .required },
7282 .{ .kind = .id_result, .quantifier = .required },
7283 .{ .kind = .id_ref, .quantifier = .required },
7284 .{ .kind = .id_ref, .quantifier = .required },
7285 },
7286 },
7287 .{
7288 .name = "OpBitwiseXor",
7289 .opcode = 198,
7290 .operands = &.{
7291 .{ .kind = .id_result_type, .quantifier = .required },
7292 .{ .kind = .id_result, .quantifier = .required },
7293 .{ .kind = .id_ref, .quantifier = .required },
7294 .{ .kind = .id_ref, .quantifier = .required },
7295 },
7296 },
7297 .{
7298 .name = "OpBitwiseAnd",
7299 .opcode = 199,
7300 .operands = &.{
7301 .{ .kind = .id_result_type, .quantifier = .required },
7302 .{ .kind = .id_result, .quantifier = .required },
7303 .{ .kind = .id_ref, .quantifier = .required },
7304 .{ .kind = .id_ref, .quantifier = .required },
7305 },
7306 },
7307 .{
7308 .name = "OpNot",
7309 .opcode = 200,
7310 .operands = &.{
7311 .{ .kind = .id_result_type, .quantifier = .required },
7312 .{ .kind = .id_result, .quantifier = .required },
7313 .{ .kind = .id_ref, .quantifier = .required },
7314 },
7315 },
7316 .{
7317 .name = "OpBitFieldInsert",
7318 .opcode = 201,
7319 .operands = &.{
7320 .{ .kind = .id_result_type, .quantifier = .required },
7321 .{ .kind = .id_result, .quantifier = .required },
7322 .{ .kind = .id_ref, .quantifier = .required },
7323 .{ .kind = .id_ref, .quantifier = .required },
7324 .{ .kind = .id_ref, .quantifier = .required },
7325 .{ .kind = .id_ref, .quantifier = .required },
7326 },
7327 },
7328 .{
7329 .name = "OpBitFieldSExtract",
7330 .opcode = 202,
7331 .operands = &.{
7332 .{ .kind = .id_result_type, .quantifier = .required },
7333 .{ .kind = .id_result, .quantifier = .required },
7334 .{ .kind = .id_ref, .quantifier = .required },
7335 .{ .kind = .id_ref, .quantifier = .required },
7336 .{ .kind = .id_ref, .quantifier = .required },
7337 },
7338 },
7339 .{
7340 .name = "OpBitFieldUExtract",
7341 .opcode = 203,
7342 .operands = &.{
7343 .{ .kind = .id_result_type, .quantifier = .required },
7344 .{ .kind = .id_result, .quantifier = .required },
7345 .{ .kind = .id_ref, .quantifier = .required },
7346 .{ .kind = .id_ref, .quantifier = .required },
7347 .{ .kind = .id_ref, .quantifier = .required },
7348 },
7349 },
7350 .{
7351 .name = "OpBitReverse",
7352 .opcode = 204,
7353 .operands = &.{
7354 .{ .kind = .id_result_type, .quantifier = .required },
7355 .{ .kind = .id_result, .quantifier = .required },
7356 .{ .kind = .id_ref, .quantifier = .required },
7357 },
7358 },
7359 .{
7360 .name = "OpBitCount",
7361 .opcode = 205,
7362 .operands = &.{
7363 .{ .kind = .id_result_type, .quantifier = .required },
7364 .{ .kind = .id_result, .quantifier = .required },
7365 .{ .kind = .id_ref, .quantifier = .required },
7366 },
7367 },
7368 .{
7369 .name = "OpDPdx",
7370 .opcode = 207,
7371 .operands = &.{
7372 .{ .kind = .id_result_type, .quantifier = .required },
7373 .{ .kind = .id_result, .quantifier = .required },
7374 .{ .kind = .id_ref, .quantifier = .required },
7375 },
7376 },
7377 .{
7378 .name = "OpDPdy",
7379 .opcode = 208,
7380 .operands = &.{
7381 .{ .kind = .id_result_type, .quantifier = .required },
7382 .{ .kind = .id_result, .quantifier = .required },
7383 .{ .kind = .id_ref, .quantifier = .required },
7384 },
7385 },
7386 .{
7387 .name = "OpFwidth",
7388 .opcode = 209,
7389 .operands = &.{
7390 .{ .kind = .id_result_type, .quantifier = .required },
7391 .{ .kind = .id_result, .quantifier = .required },
7392 .{ .kind = .id_ref, .quantifier = .required },
7393 },
7394 },
7395 .{
7396 .name = "OpDPdxFine",
7397 .opcode = 210,
7398 .operands = &.{
7399 .{ .kind = .id_result_type, .quantifier = .required },
7400 .{ .kind = .id_result, .quantifier = .required },
7401 .{ .kind = .id_ref, .quantifier = .required },
7402 },
7403 },
7404 .{
7405 .name = "OpDPdyFine",
7406 .opcode = 211,
7407 .operands = &.{
7408 .{ .kind = .id_result_type, .quantifier = .required },
7409 .{ .kind = .id_result, .quantifier = .required },
7410 .{ .kind = .id_ref, .quantifier = .required },
7411 },
7412 },
7413 .{
7414 .name = "OpFwidthFine",
7415 .opcode = 212,
7416 .operands = &.{
7417 .{ .kind = .id_result_type, .quantifier = .required },
7418 .{ .kind = .id_result, .quantifier = .required },
7419 .{ .kind = .id_ref, .quantifier = .required },
7420 },
7421 },
7422 .{
7423 .name = "OpDPdxCoarse",
7424 .opcode = 213,
7425 .operands = &.{
7426 .{ .kind = .id_result_type, .quantifier = .required },
7427 .{ .kind = .id_result, .quantifier = .required },
7428 .{ .kind = .id_ref, .quantifier = .required },
7429 },
7430 },
7431 .{
7432 .name = "OpDPdyCoarse",
7433 .opcode = 214,
7434 .operands = &.{
7435 .{ .kind = .id_result_type, .quantifier = .required },
7436 .{ .kind = .id_result, .quantifier = .required },
7437 .{ .kind = .id_ref, .quantifier = .required },
7438 },
7439 },
7440 .{
7441 .name = "OpFwidthCoarse",
7442 .opcode = 215,
7443 .operands = &.{
7444 .{ .kind = .id_result_type, .quantifier = .required },
7445 .{ .kind = .id_result, .quantifier = .required },
7446 .{ .kind = .id_ref, .quantifier = .required },
7447 },
7448 },
7449 .{
7450 .name = "OpEmitVertex",
7451 .opcode = 218,
7452 .operands = &.{},
7453 },
7454 .{
7455 .name = "OpEndPrimitive",
7456 .opcode = 219,
7457 .operands = &.{},
7458 },
7459 .{
7460 .name = "OpEmitStreamVertex",
7461 .opcode = 220,
7462 .operands = &.{
7463 .{ .kind = .id_ref, .quantifier = .required },
7464 },
7465 },
7466 .{
7467 .name = "OpEndStreamPrimitive",
7468 .opcode = 221,
7469 .operands = &.{
7470 .{ .kind = .id_ref, .quantifier = .required },
7471 },
7472 },
7473 .{
7474 .name = "OpControlBarrier",
7475 .opcode = 224,
7476 .operands = &.{
7477 .{ .kind = .id_scope, .quantifier = .required },
7478 .{ .kind = .id_scope, .quantifier = .required },
7479 .{ .kind = .id_memory_semantics, .quantifier = .required },
7480 },
7481 },
7482 .{
7483 .name = "OpMemoryBarrier",
7484 .opcode = 225,
7485 .operands = &.{
7486 .{ .kind = .id_scope, .quantifier = .required },
7487 .{ .kind = .id_memory_semantics, .quantifier = .required },
7488 },
7489 },
7490 .{
7491 .name = "OpAtomicLoad",
7492 .opcode = 227,
7493 .operands = &.{
7494 .{ .kind = .id_result_type, .quantifier = .required },
7495 .{ .kind = .id_result, .quantifier = .required },
7496 .{ .kind = .id_ref, .quantifier = .required },
7497 .{ .kind = .id_scope, .quantifier = .required },
7498 .{ .kind = .id_memory_semantics, .quantifier = .required },
7499 },
7500 },
7501 .{
7502 .name = "OpAtomicStore",
7503 .opcode = 228,
7504 .operands = &.{
7505 .{ .kind = .id_ref, .quantifier = .required },
7506 .{ .kind = .id_scope, .quantifier = .required },
7507 .{ .kind = .id_memory_semantics, .quantifier = .required },
7508 .{ .kind = .id_ref, .quantifier = .required },
7509 },
7510 },
7511 .{
7512 .name = "OpAtomicExchange",
7513 .opcode = 229,
7514 .operands = &.{
7515 .{ .kind = .id_result_type, .quantifier = .required },
7516 .{ .kind = .id_result, .quantifier = .required },
7517 .{ .kind = .id_ref, .quantifier = .required },
7518 .{ .kind = .id_scope, .quantifier = .required },
7519 .{ .kind = .id_memory_semantics, .quantifier = .required },
7520 .{ .kind = .id_ref, .quantifier = .required },
7521 },
7522 },
7523 .{
7524 .name = "OpAtomicCompareExchange",
7525 .opcode = 230,
7526 .operands = &.{
7527 .{ .kind = .id_result_type, .quantifier = .required },
7528 .{ .kind = .id_result, .quantifier = .required },
7529 .{ .kind = .id_ref, .quantifier = .required },
7530 .{ .kind = .id_scope, .quantifier = .required },
7531 .{ .kind = .id_memory_semantics, .quantifier = .required },
7532 .{ .kind = .id_memory_semantics, .quantifier = .required },
7533 .{ .kind = .id_ref, .quantifier = .required },
7534 .{ .kind = .id_ref, .quantifier = .required },
7535 },
7536 },
7537 .{
7538 .name = "OpAtomicCompareExchangeWeak",
7539 .opcode = 231,
7540 .operands = &.{
7541 .{ .kind = .id_result_type, .quantifier = .required },
7542 .{ .kind = .id_result, .quantifier = .required },
7543 .{ .kind = .id_ref, .quantifier = .required },
7544 .{ .kind = .id_scope, .quantifier = .required },
7545 .{ .kind = .id_memory_semantics, .quantifier = .required },
7546 .{ .kind = .id_memory_semantics, .quantifier = .required },
7547 .{ .kind = .id_ref, .quantifier = .required },
7548 .{ .kind = .id_ref, .quantifier = .required },
7549 },
7550 },
7551 .{
7552 .name = "OpAtomicIIncrement",
7553 .opcode = 232,
7554 .operands = &.{
7555 .{ .kind = .id_result_type, .quantifier = .required },
7556 .{ .kind = .id_result, .quantifier = .required },
7557 .{ .kind = .id_ref, .quantifier = .required },
7558 .{ .kind = .id_scope, .quantifier = .required },
7559 .{ .kind = .id_memory_semantics, .quantifier = .required },
7560 },
7561 },
7562 .{
7563 .name = "OpAtomicIDecrement",
7564 .opcode = 233,
7565 .operands = &.{
7566 .{ .kind = .id_result_type, .quantifier = .required },
7567 .{ .kind = .id_result, .quantifier = .required },
7568 .{ .kind = .id_ref, .quantifier = .required },
7569 .{ .kind = .id_scope, .quantifier = .required },
7570 .{ .kind = .id_memory_semantics, .quantifier = .required },
7571 },
7572 },
7573 .{
7574 .name = "OpAtomicIAdd",
7575 .opcode = 234,
7576 .operands = &.{
7577 .{ .kind = .id_result_type, .quantifier = .required },
7578 .{ .kind = .id_result, .quantifier = .required },
7579 .{ .kind = .id_ref, .quantifier = .required },
7580 .{ .kind = .id_scope, .quantifier = .required },
7581 .{ .kind = .id_memory_semantics, .quantifier = .required },
7582 .{ .kind = .id_ref, .quantifier = .required },
7583 },
7584 },
7585 .{
7586 .name = "OpAtomicISub",
7587 .opcode = 235,
7588 .operands = &.{
7589 .{ .kind = .id_result_type, .quantifier = .required },
7590 .{ .kind = .id_result, .quantifier = .required },
7591 .{ .kind = .id_ref, .quantifier = .required },
7592 .{ .kind = .id_scope, .quantifier = .required },
7593 .{ .kind = .id_memory_semantics, .quantifier = .required },
7594 .{ .kind = .id_ref, .quantifier = .required },
7595 },
7596 },
7597 .{
7598 .name = "OpAtomicSMin",
7599 .opcode = 236,
7600 .operands = &.{
7601 .{ .kind = .id_result_type, .quantifier = .required },
7602 .{ .kind = .id_result, .quantifier = .required },
7603 .{ .kind = .id_ref, .quantifier = .required },
7604 .{ .kind = .id_scope, .quantifier = .required },
7605 .{ .kind = .id_memory_semantics, .quantifier = .required },
7606 .{ .kind = .id_ref, .quantifier = .required },
7607 },
7608 },
7609 .{
7610 .name = "OpAtomicUMin",
7611 .opcode = 237,
7612 .operands = &.{
7613 .{ .kind = .id_result_type, .quantifier = .required },
7614 .{ .kind = .id_result, .quantifier = .required },
7615 .{ .kind = .id_ref, .quantifier = .required },
7616 .{ .kind = .id_scope, .quantifier = .required },
7617 .{ .kind = .id_memory_semantics, .quantifier = .required },
7618 .{ .kind = .id_ref, .quantifier = .required },
7619 },
7620 },
7621 .{
7622 .name = "OpAtomicSMax",
7623 .opcode = 238,
7624 .operands = &.{
7625 .{ .kind = .id_result_type, .quantifier = .required },
7626 .{ .kind = .id_result, .quantifier = .required },
7627 .{ .kind = .id_ref, .quantifier = .required },
7628 .{ .kind = .id_scope, .quantifier = .required },
7629 .{ .kind = .id_memory_semantics, .quantifier = .required },
7630 .{ .kind = .id_ref, .quantifier = .required },
7631 },
7632 },
7633 .{
7634 .name = "OpAtomicUMax",
7635 .opcode = 239,
7636 .operands = &.{
7637 .{ .kind = .id_result_type, .quantifier = .required },
7638 .{ .kind = .id_result, .quantifier = .required },
7639 .{ .kind = .id_ref, .quantifier = .required },
7640 .{ .kind = .id_scope, .quantifier = .required },
7641 .{ .kind = .id_memory_semantics, .quantifier = .required },
7642 .{ .kind = .id_ref, .quantifier = .required },
7643 },
7644 },
7645 .{
7646 .name = "OpAtomicAnd",
7647 .opcode = 240,
7648 .operands = &.{
7649 .{ .kind = .id_result_type, .quantifier = .required },
7650 .{ .kind = .id_result, .quantifier = .required },
7651 .{ .kind = .id_ref, .quantifier = .required },
7652 .{ .kind = .id_scope, .quantifier = .required },
7653 .{ .kind = .id_memory_semantics, .quantifier = .required },
7654 .{ .kind = .id_ref, .quantifier = .required },
7655 },
7656 },
7657 .{
7658 .name = "OpAtomicOr",
7659 .opcode = 241,
7660 .operands = &.{
7661 .{ .kind = .id_result_type, .quantifier = .required },
7662 .{ .kind = .id_result, .quantifier = .required },
7663 .{ .kind = .id_ref, .quantifier = .required },
7664 .{ .kind = .id_scope, .quantifier = .required },
7665 .{ .kind = .id_memory_semantics, .quantifier = .required },
7666 .{ .kind = .id_ref, .quantifier = .required },
7667 },
7668 },
7669 .{
7670 .name = "OpAtomicXor",
7671 .opcode = 242,
7672 .operands = &.{
7673 .{ .kind = .id_result_type, .quantifier = .required },
7674 .{ .kind = .id_result, .quantifier = .required },
7675 .{ .kind = .id_ref, .quantifier = .required },
7676 .{ .kind = .id_scope, .quantifier = .required },
7677 .{ .kind = .id_memory_semantics, .quantifier = .required },
7678 .{ .kind = .id_ref, .quantifier = .required },
7679 },
7680 },
7681 .{
7682 .name = "OpPhi",
7683 .opcode = 245,
7684 .operands = &.{
7685 .{ .kind = .id_result_type, .quantifier = .required },
7686 .{ .kind = .id_result, .quantifier = .required },
7687 .{ .kind = .pair_id_ref_id_ref, .quantifier = .variadic },
7688 },
7689 },
7690 .{
7691 .name = "OpLoopMerge",
7692 .opcode = 246,
7693 .operands = &.{
7694 .{ .kind = .id_ref, .quantifier = .required },
7695 .{ .kind = .id_ref, .quantifier = .required },
7696 .{ .kind = .loop_control, .quantifier = .required },
7697 },
7698 },
7699 .{
7700 .name = "OpSelectionMerge",
7701 .opcode = 247,
7702 .operands = &.{
7703 .{ .kind = .id_ref, .quantifier = .required },
7704 .{ .kind = .selection_control, .quantifier = .required },
7705 },
7706 },
7707 .{
7708 .name = "OpLabel",
7709 .opcode = 248,
7710 .operands = &.{
7711 .{ .kind = .id_result, .quantifier = .required },
7712 },
7713 },
7714 .{
7715 .name = "OpBranch",
7716 .opcode = 249,
7717 .operands = &.{
7718 .{ .kind = .id_ref, .quantifier = .required },
7719 },
7720 },
7721 .{
7722 .name = "OpBranchConditional",
7723 .opcode = 250,
7724 .operands = &.{
7725 .{ .kind = .id_ref, .quantifier = .required },
7726 .{ .kind = .id_ref, .quantifier = .required },
7727 .{ .kind = .id_ref, .quantifier = .required },
7728 .{ .kind = .literal_integer, .quantifier = .variadic },
7729 },
7730 },
7731 .{
7732 .name = "OpSwitch",
7733 .opcode = 251,
7734 .operands = &.{
7735 .{ .kind = .id_ref, .quantifier = .required },
7736 .{ .kind = .id_ref, .quantifier = .required },
7737 .{ .kind = .pair_literal_integer_id_ref, .quantifier = .variadic },
7738 },
7739 },
7740 .{
7741 .name = "OpKill",
7742 .opcode = 252,
7743 .operands = &.{},
7744 },
7745 .{
7746 .name = "OpReturn",
7747 .opcode = 253,
7748 .operands = &.{},
7749 },
7750 .{
7751 .name = "OpReturnValue",
7752 .opcode = 254,
7753 .operands = &.{
7754 .{ .kind = .id_ref, .quantifier = .required },
7755 },
7756 },
7757 .{
7758 .name = "OpUnreachable",
7759 .opcode = 255,
7760 .operands = &.{},
7761 },
7762 .{
7763 .name = "OpLifetimeStart",
7764 .opcode = 256,
7765 .operands = &.{
7766 .{ .kind = .id_ref, .quantifier = .required },
7767 .{ .kind = .literal_integer, .quantifier = .required },
7768 },
7769 },
7770 .{
7771 .name = "OpLifetimeStop",
7772 .opcode = 257,
7773 .operands = &.{
7774 .{ .kind = .id_ref, .quantifier = .required },
7775 .{ .kind = .literal_integer, .quantifier = .required },
7776 },
7777 },
7778 .{
7779 .name = "OpGroupAsyncCopy",
7780 .opcode = 259,
7781 .operands = &.{
7782 .{ .kind = .id_result_type, .quantifier = .required },
7783 .{ .kind = .id_result, .quantifier = .required },
7784 .{ .kind = .id_scope, .quantifier = .required },
7785 .{ .kind = .id_ref, .quantifier = .required },
7786 .{ .kind = .id_ref, .quantifier = .required },
7787 .{ .kind = .id_ref, .quantifier = .required },
7788 .{ .kind = .id_ref, .quantifier = .required },
7789 .{ .kind = .id_ref, .quantifier = .required },
7790 },
7791 },
7792 .{
7793 .name = "OpGroupWaitEvents",
7794 .opcode = 260,
7795 .operands = &.{
7796 .{ .kind = .id_scope, .quantifier = .required },
7797 .{ .kind = .id_ref, .quantifier = .required },
7798 .{ .kind = .id_ref, .quantifier = .required },
7799 },
7800 },
7801 .{
7802 .name = "OpGroupAll",
7803 .opcode = 261,
7804 .operands = &.{
7805 .{ .kind = .id_result_type, .quantifier = .required },
7806 .{ .kind = .id_result, .quantifier = .required },
7807 .{ .kind = .id_scope, .quantifier = .required },
7808 .{ .kind = .id_ref, .quantifier = .required },
7809 },
7810 },
7811 .{
7812 .name = "OpGroupAny",
7813 .opcode = 262,
7814 .operands = &.{
7815 .{ .kind = .id_result_type, .quantifier = .required },
7816 .{ .kind = .id_result, .quantifier = .required },
7817 .{ .kind = .id_scope, .quantifier = .required },
7818 .{ .kind = .id_ref, .quantifier = .required },
7819 },
7820 },
7821 .{
7822 .name = "OpGroupBroadcast",
7823 .opcode = 263,
7824 .operands = &.{
7825 .{ .kind = .id_result_type, .quantifier = .required },
7826 .{ .kind = .id_result, .quantifier = .required },
7827 .{ .kind = .id_scope, .quantifier = .required },
7828 .{ .kind = .id_ref, .quantifier = .required },
7829 .{ .kind = .id_ref, .quantifier = .required },
7830 },
7831 },
7832 .{
7833 .name = "OpGroupIAdd",
7834 .opcode = 264,
7835 .operands = &.{
7836 .{ .kind = .id_result_type, .quantifier = .required },
7837 .{ .kind = .id_result, .quantifier = .required },
7838 .{ .kind = .id_scope, .quantifier = .required },
7839 .{ .kind = .group_operation, .quantifier = .required },
7840 .{ .kind = .id_ref, .quantifier = .required },
7841 },
7842 },
7843 .{
7844 .name = "OpGroupFAdd",
7845 .opcode = 265,
7846 .operands = &.{
7847 .{ .kind = .id_result_type, .quantifier = .required },
7848 .{ .kind = .id_result, .quantifier = .required },
7849 .{ .kind = .id_scope, .quantifier = .required },
7850 .{ .kind = .group_operation, .quantifier = .required },
7851 .{ .kind = .id_ref, .quantifier = .required },
7852 },
7853 },
7854 .{
7855 .name = "OpGroupFMin",
7856 .opcode = 266,
7857 .operands = &.{
7858 .{ .kind = .id_result_type, .quantifier = .required },
7859 .{ .kind = .id_result, .quantifier = .required },
7860 .{ .kind = .id_scope, .quantifier = .required },
7861 .{ .kind = .group_operation, .quantifier = .required },
7862 .{ .kind = .id_ref, .quantifier = .required },
7863 },
7864 },
7865 .{
7866 .name = "OpGroupUMin",
7867 .opcode = 267,
7868 .operands = &.{
7869 .{ .kind = .id_result_type, .quantifier = .required },
7870 .{ .kind = .id_result, .quantifier = .required },
7871 .{ .kind = .id_scope, .quantifier = .required },
7872 .{ .kind = .group_operation, .quantifier = .required },
7873 .{ .kind = .id_ref, .quantifier = .required },
7874 },
7875 },
7876 .{
7877 .name = "OpGroupSMin",
7878 .opcode = 268,
7879 .operands = &.{
7880 .{ .kind = .id_result_type, .quantifier = .required },
7881 .{ .kind = .id_result, .quantifier = .required },
7882 .{ .kind = .id_scope, .quantifier = .required },
7883 .{ .kind = .group_operation, .quantifier = .required },
7884 .{ .kind = .id_ref, .quantifier = .required },
7885 },
7886 },
7887 .{
7888 .name = "OpGroupFMax",
7889 .opcode = 269,
7890 .operands = &.{
7891 .{ .kind = .id_result_type, .quantifier = .required },
7892 .{ .kind = .id_result, .quantifier = .required },
7893 .{ .kind = .id_scope, .quantifier = .required },
7894 .{ .kind = .group_operation, .quantifier = .required },
7895 .{ .kind = .id_ref, .quantifier = .required },
7896 },
7897 },
7898 .{
7899 .name = "OpGroupUMax",
7900 .opcode = 270,
7901 .operands = &.{
7902 .{ .kind = .id_result_type, .quantifier = .required },
7903 .{ .kind = .id_result, .quantifier = .required },
7904 .{ .kind = .id_scope, .quantifier = .required },
7905 .{ .kind = .group_operation, .quantifier = .required },
7906 .{ .kind = .id_ref, .quantifier = .required },
7907 },
7908 },
7909 .{
7910 .name = "OpGroupSMax",
7911 .opcode = 271,
7912 .operands = &.{
7913 .{ .kind = .id_result_type, .quantifier = .required },
7914 .{ .kind = .id_result, .quantifier = .required },
7915 .{ .kind = .id_scope, .quantifier = .required },
7916 .{ .kind = .group_operation, .quantifier = .required },
7917 .{ .kind = .id_ref, .quantifier = .required },
7918 },
7919 },
7920 .{
7921 .name = "OpReadPipe",
7922 .opcode = 274,
7923 .operands = &.{
7924 .{ .kind = .id_result_type, .quantifier = .required },
7925 .{ .kind = .id_result, .quantifier = .required },
7926 .{ .kind = .id_ref, .quantifier = .required },
7927 .{ .kind = .id_ref, .quantifier = .required },
7928 .{ .kind = .id_ref, .quantifier = .required },
7929 .{ .kind = .id_ref, .quantifier = .required },
7930 },
7931 },
7932 .{
7933 .name = "OpWritePipe",
7934 .opcode = 275,
7935 .operands = &.{
7936 .{ .kind = .id_result_type, .quantifier = .required },
7937 .{ .kind = .id_result, .quantifier = .required },
7938 .{ .kind = .id_ref, .quantifier = .required },
7939 .{ .kind = .id_ref, .quantifier = .required },
7940 .{ .kind = .id_ref, .quantifier = .required },
7941 .{ .kind = .id_ref, .quantifier = .required },
7942 },
7943 },
7944 .{
7945 .name = "OpReservedReadPipe",
7946 .opcode = 276,
7947 .operands = &.{
7948 .{ .kind = .id_result_type, .quantifier = .required },
7949 .{ .kind = .id_result, .quantifier = .required },
7950 .{ .kind = .id_ref, .quantifier = .required },
7951 .{ .kind = .id_ref, .quantifier = .required },
7952 .{ .kind = .id_ref, .quantifier = .required },
7953 .{ .kind = .id_ref, .quantifier = .required },
7954 .{ .kind = .id_ref, .quantifier = .required },
7955 .{ .kind = .id_ref, .quantifier = .required },
7956 },
7957 },
7958 .{
7959 .name = "OpReservedWritePipe",
7960 .opcode = 277,
7961 .operands = &.{
7962 .{ .kind = .id_result_type, .quantifier = .required },
7963 .{ .kind = .id_result, .quantifier = .required },
7964 .{ .kind = .id_ref, .quantifier = .required },
7965 .{ .kind = .id_ref, .quantifier = .required },
7966 .{ .kind = .id_ref, .quantifier = .required },
7967 .{ .kind = .id_ref, .quantifier = .required },
7968 .{ .kind = .id_ref, .quantifier = .required },
7969 .{ .kind = .id_ref, .quantifier = .required },
7970 },
7971 },
7972 .{
7973 .name = "OpReserveReadPipePackets",
7974 .opcode = 278,
7975 .operands = &.{
7976 .{ .kind = .id_result_type, .quantifier = .required },
7977 .{ .kind = .id_result, .quantifier = .required },
7978 .{ .kind = .id_ref, .quantifier = .required },
7979 .{ .kind = .id_ref, .quantifier = .required },
7980 .{ .kind = .id_ref, .quantifier = .required },
7981 .{ .kind = .id_ref, .quantifier = .required },
7982 },
7983 },
7984 .{
7985 .name = "OpReserveWritePipePackets",
7986 .opcode = 279,
7987 .operands = &.{
7988 .{ .kind = .id_result_type, .quantifier = .required },
7989 .{ .kind = .id_result, .quantifier = .required },
7990 .{ .kind = .id_ref, .quantifier = .required },
7991 .{ .kind = .id_ref, .quantifier = .required },
7992 .{ .kind = .id_ref, .quantifier = .required },
7993 .{ .kind = .id_ref, .quantifier = .required },
7994 },
7995 },
7996 .{
7997 .name = "OpCommitReadPipe",
7998 .opcode = 280,
7999 .operands = &.{
8000 .{ .kind = .id_ref, .quantifier = .required },
8001 .{ .kind = .id_ref, .quantifier = .required },
8002 .{ .kind = .id_ref, .quantifier = .required },
8003 .{ .kind = .id_ref, .quantifier = .required },
8004 },
8005 },
8006 .{
8007 .name = "OpCommitWritePipe",
8008 .opcode = 281,
8009 .operands = &.{
8010 .{ .kind = .id_ref, .quantifier = .required },
8011 .{ .kind = .id_ref, .quantifier = .required },
8012 .{ .kind = .id_ref, .quantifier = .required },
8013 .{ .kind = .id_ref, .quantifier = .required },
8014 },
8015 },
8016 .{
8017 .name = "OpIsValidReserveId",
8018 .opcode = 282,
8019 .operands = &.{
8020 .{ .kind = .id_result_type, .quantifier = .required },
8021 .{ .kind = .id_result, .quantifier = .required },
8022 .{ .kind = .id_ref, .quantifier = .required },
8023 },
8024 },
8025 .{
8026 .name = "OpGetNumPipePackets",
8027 .opcode = 283,
8028 .operands = &.{
8029 .{ .kind = .id_result_type, .quantifier = .required },
8030 .{ .kind = .id_result, .quantifier = .required },
8031 .{ .kind = .id_ref, .quantifier = .required },
8032 .{ .kind = .id_ref, .quantifier = .required },
8033 .{ .kind = .id_ref, .quantifier = .required },
8034 },
8035 },
8036 .{
8037 .name = "OpGetMaxPipePackets",
8038 .opcode = 284,
8039 .operands = &.{
8040 .{ .kind = .id_result_type, .quantifier = .required },
8041 .{ .kind = .id_result, .quantifier = .required },
8042 .{ .kind = .id_ref, .quantifier = .required },
8043 .{ .kind = .id_ref, .quantifier = .required },
8044 .{ .kind = .id_ref, .quantifier = .required },
8045 },
8046 },
8047 .{
8048 .name = "OpGroupReserveReadPipePackets",
8049 .opcode = 285,
8050 .operands = &.{
8051 .{ .kind = .id_result_type, .quantifier = .required },
8052 .{ .kind = .id_result, .quantifier = .required },
8053 .{ .kind = .id_scope, .quantifier = .required },
8054 .{ .kind = .id_ref, .quantifier = .required },
8055 .{ .kind = .id_ref, .quantifier = .required },
8056 .{ .kind = .id_ref, .quantifier = .required },
8057 .{ .kind = .id_ref, .quantifier = .required },
8058 },
8059 },
8060 .{
8061 .name = "OpGroupReserveWritePipePackets",
8062 .opcode = 286,
8063 .operands = &.{
8064 .{ .kind = .id_result_type, .quantifier = .required },
8065 .{ .kind = .id_result, .quantifier = .required },
8066 .{ .kind = .id_scope, .quantifier = .required },
8067 .{ .kind = .id_ref, .quantifier = .required },
8068 .{ .kind = .id_ref, .quantifier = .required },
8069 .{ .kind = .id_ref, .quantifier = .required },
8070 .{ .kind = .id_ref, .quantifier = .required },
8071 },
8072 },
8073 .{
8074 .name = "OpGroupCommitReadPipe",
8075 .opcode = 287,
8076 .operands = &.{
8077 .{ .kind = .id_scope, .quantifier = .required },
8078 .{ .kind = .id_ref, .quantifier = .required },
8079 .{ .kind = .id_ref, .quantifier = .required },
8080 .{ .kind = .id_ref, .quantifier = .required },
8081 .{ .kind = .id_ref, .quantifier = .required },
8082 },
8083 },
8084 .{
8085 .name = "OpGroupCommitWritePipe",
8086 .opcode = 288,
8087 .operands = &.{
8088 .{ .kind = .id_scope, .quantifier = .required },
8089 .{ .kind = .id_ref, .quantifier = .required },
8090 .{ .kind = .id_ref, .quantifier = .required },
8091 .{ .kind = .id_ref, .quantifier = .required },
8092 .{ .kind = .id_ref, .quantifier = .required },
8093 },
8094 },
8095 .{
8096 .name = "OpEnqueueMarker",
8097 .opcode = 291,
8098 .operands = &.{
8099 .{ .kind = .id_result_type, .quantifier = .required },
8100 .{ .kind = .id_result, .quantifier = .required },
8101 .{ .kind = .id_ref, .quantifier = .required },
8102 .{ .kind = .id_ref, .quantifier = .required },
8103 .{ .kind = .id_ref, .quantifier = .required },
8104 .{ .kind = .id_ref, .quantifier = .required },
8105 },
8106 },
8107 .{
8108 .name = "OpEnqueueKernel",
8109 .opcode = 292,
8110 .operands = &.{
8111 .{ .kind = .id_result_type, .quantifier = .required },
8112 .{ .kind = .id_result, .quantifier = .required },
8113 .{ .kind = .id_ref, .quantifier = .required },
8114 .{ .kind = .id_ref, .quantifier = .required },
8115 .{ .kind = .id_ref, .quantifier = .required },
8116 .{ .kind = .id_ref, .quantifier = .required },
8117 .{ .kind = .id_ref, .quantifier = .required },
8118 .{ .kind = .id_ref, .quantifier = .required },
8119 .{ .kind = .id_ref, .quantifier = .required },
8120 .{ .kind = .id_ref, .quantifier = .required },
8121 .{ .kind = .id_ref, .quantifier = .required },
8122 .{ .kind = .id_ref, .quantifier = .required },
8123 .{ .kind = .id_ref, .quantifier = .variadic },
8124 },
8125 },
8126 .{
8127 .name = "OpGetKernelNDrangeSubGroupCount",
8128 .opcode = 293,
8129 .operands = &.{
8130 .{ .kind = .id_result_type, .quantifier = .required },
8131 .{ .kind = .id_result, .quantifier = .required },
8132 .{ .kind = .id_ref, .quantifier = .required },
8133 .{ .kind = .id_ref, .quantifier = .required },
8134 .{ .kind = .id_ref, .quantifier = .required },
8135 .{ .kind = .id_ref, .quantifier = .required },
8136 .{ .kind = .id_ref, .quantifier = .required },
8137 },
8138 },
8139 .{
8140 .name = "OpGetKernelNDrangeMaxSubGroupSize",
8141 .opcode = 294,
8142 .operands = &.{
8143 .{ .kind = .id_result_type, .quantifier = .required },
8144 .{ .kind = .id_result, .quantifier = .required },
8145 .{ .kind = .id_ref, .quantifier = .required },
8146 .{ .kind = .id_ref, .quantifier = .required },
8147 .{ .kind = .id_ref, .quantifier = .required },
8148 .{ .kind = .id_ref, .quantifier = .required },
8149 .{ .kind = .id_ref, .quantifier = .required },
8150 },
8151 },
8152 .{
8153 .name = "OpGetKernelWorkGroupSize",
8154 .opcode = 295,
8155 .operands = &.{
8156 .{ .kind = .id_result_type, .quantifier = .required },
8157 .{ .kind = .id_result, .quantifier = .required },
8158 .{ .kind = .id_ref, .quantifier = .required },
8159 .{ .kind = .id_ref, .quantifier = .required },
8160 .{ .kind = .id_ref, .quantifier = .required },
8161 .{ .kind = .id_ref, .quantifier = .required },
8162 },
8163 },
8164 .{
8165 .name = "OpGetKernelPreferredWorkGroupSizeMultiple",
8166 .opcode = 296,
8167 .operands = &.{
8168 .{ .kind = .id_result_type, .quantifier = .required },
8169 .{ .kind = .id_result, .quantifier = .required },
8170 .{ .kind = .id_ref, .quantifier = .required },
8171 .{ .kind = .id_ref, .quantifier = .required },
8172 .{ .kind = .id_ref, .quantifier = .required },
8173 .{ .kind = .id_ref, .quantifier = .required },
8174 },
8175 },
8176 .{
8177 .name = "OpRetainEvent",
8178 .opcode = 297,
8179 .operands = &.{
8180 .{ .kind = .id_ref, .quantifier = .required },
8181 },
8182 },
8183 .{
8184 .name = "OpReleaseEvent",
8185 .opcode = 298,
8186 .operands = &.{
8187 .{ .kind = .id_ref, .quantifier = .required },
8188 },
8189 },
8190 .{
8191 .name = "OpCreateUserEvent",
8192 .opcode = 299,
8193 .operands = &.{
8194 .{ .kind = .id_result_type, .quantifier = .required },
8195 .{ .kind = .id_result, .quantifier = .required },
8196 },
8197 },
8198 .{
8199 .name = "OpIsValidEvent",
8200 .opcode = 300,
8201 .operands = &.{
8202 .{ .kind = .id_result_type, .quantifier = .required },
8203 .{ .kind = .id_result, .quantifier = .required },
8204 .{ .kind = .id_ref, .quantifier = .required },
8205 },
8206 },
8207 .{
8208 .name = "OpSetUserEventStatus",
8209 .opcode = 301,
8210 .operands = &.{
8211 .{ .kind = .id_ref, .quantifier = .required },
8212 .{ .kind = .id_ref, .quantifier = .required },
8213 },
8214 },
8215 .{
8216 .name = "OpCaptureEventProfilingInfo",
8217 .opcode = 302,
8218 .operands = &.{
8219 .{ .kind = .id_ref, .quantifier = .required },
8220 .{ .kind = .id_ref, .quantifier = .required },
8221 .{ .kind = .id_ref, .quantifier = .required },
8222 },
8223 },
8224 .{
8225 .name = "OpGetDefaultQueue",
8226 .opcode = 303,
8227 .operands = &.{
8228 .{ .kind = .id_result_type, .quantifier = .required },
8229 .{ .kind = .id_result, .quantifier = .required },
8230 },
8231 },
8232 .{
8233 .name = "OpBuildNDRange",
8234 .opcode = 304,
8235 .operands = &.{
8236 .{ .kind = .id_result_type, .quantifier = .required },
8237 .{ .kind = .id_result, .quantifier = .required },
8238 .{ .kind = .id_ref, .quantifier = .required },
8239 .{ .kind = .id_ref, .quantifier = .required },
8240 .{ .kind = .id_ref, .quantifier = .required },
8241 },
8242 },
8243 .{
8244 .name = "OpImageSparseSampleImplicitLod",
8245 .opcode = 305,
8246 .operands = &.{
8247 .{ .kind = .id_result_type, .quantifier = .required },
8248 .{ .kind = .id_result, .quantifier = .required },
8249 .{ .kind = .id_ref, .quantifier = .required },
8250 .{ .kind = .id_ref, .quantifier = .required },
8251 .{ .kind = .image_operands, .quantifier = .optional },
8252 },
8253 },
8254 .{
8255 .name = "OpImageSparseSampleExplicitLod",
8256 .opcode = 306,
8257 .operands = &.{
8258 .{ .kind = .id_result_type, .quantifier = .required },
8259 .{ .kind = .id_result, .quantifier = .required },
8260 .{ .kind = .id_ref, .quantifier = .required },
8261 .{ .kind = .id_ref, .quantifier = .required },
8262 .{ .kind = .image_operands, .quantifier = .required },
8263 },
8264 },
8265 .{
8266 .name = "OpImageSparseSampleDrefImplicitLod",
8267 .opcode = 307,
8268 .operands = &.{
8269 .{ .kind = .id_result_type, .quantifier = .required },
8270 .{ .kind = .id_result, .quantifier = .required },
8271 .{ .kind = .id_ref, .quantifier = .required },
8272 .{ .kind = .id_ref, .quantifier = .required },
8273 .{ .kind = .id_ref, .quantifier = .required },
8274 .{ .kind = .image_operands, .quantifier = .optional },
8275 },
8276 },
8277 .{
8278 .name = "OpImageSparseSampleDrefExplicitLod",
8279 .opcode = 308,
8280 .operands = &.{
8281 .{ .kind = .id_result_type, .quantifier = .required },
8282 .{ .kind = .id_result, .quantifier = .required },
8283 .{ .kind = .id_ref, .quantifier = .required },
8284 .{ .kind = .id_ref, .quantifier = .required },
8285 .{ .kind = .id_ref, .quantifier = .required },
8286 .{ .kind = .image_operands, .quantifier = .required },
8287 },
8288 },
8289 .{
8290 .name = "OpImageSparseSampleProjImplicitLod",
8291 .opcode = 309,
8292 .operands = &.{
8293 .{ .kind = .id_result_type, .quantifier = .required },
8294 .{ .kind = .id_result, .quantifier = .required },
8295 .{ .kind = .id_ref, .quantifier = .required },
8296 .{ .kind = .id_ref, .quantifier = .required },
8297 .{ .kind = .image_operands, .quantifier = .optional },
8298 },
8299 },
8300 .{
8301 .name = "OpImageSparseSampleProjExplicitLod",
8302 .opcode = 310,
8303 .operands = &.{
8304 .{ .kind = .id_result_type, .quantifier = .required },
8305 .{ .kind = .id_result, .quantifier = .required },
8306 .{ .kind = .id_ref, .quantifier = .required },
8307 .{ .kind = .id_ref, .quantifier = .required },
8308 .{ .kind = .image_operands, .quantifier = .required },
8309 },
8310 },
8311 .{
8312 .name = "OpImageSparseSampleProjDrefImplicitLod",
8313 .opcode = 311,
8314 .operands = &.{
8315 .{ .kind = .id_result_type, .quantifier = .required },
8316 .{ .kind = .id_result, .quantifier = .required },
8317 .{ .kind = .id_ref, .quantifier = .required },
8318 .{ .kind = .id_ref, .quantifier = .required },
8319 .{ .kind = .id_ref, .quantifier = .required },
8320 .{ .kind = .image_operands, .quantifier = .optional },
8321 },
8322 },
8323 .{
8324 .name = "OpImageSparseSampleProjDrefExplicitLod",
8325 .opcode = 312,
8326 .operands = &.{
8327 .{ .kind = .id_result_type, .quantifier = .required },
8328 .{ .kind = .id_result, .quantifier = .required },
8329 .{ .kind = .id_ref, .quantifier = .required },
8330 .{ .kind = .id_ref, .quantifier = .required },
8331 .{ .kind = .id_ref, .quantifier = .required },
8332 .{ .kind = .image_operands, .quantifier = .required },
8333 },
8334 },
8335 .{
8336 .name = "OpImageSparseFetch",
8337 .opcode = 313,
8338 .operands = &.{
8339 .{ .kind = .id_result_type, .quantifier = .required },
8340 .{ .kind = .id_result, .quantifier = .required },
8341 .{ .kind = .id_ref, .quantifier = .required },
8342 .{ .kind = .id_ref, .quantifier = .required },
8343 .{ .kind = .image_operands, .quantifier = .optional },
8344 },
8345 },
8346 .{
8347 .name = "OpImageSparseGather",
8348 .opcode = 314,
8349 .operands = &.{
8350 .{ .kind = .id_result_type, .quantifier = .required },
8351 .{ .kind = .id_result, .quantifier = .required },
8352 .{ .kind = .id_ref, .quantifier = .required },
8353 .{ .kind = .id_ref, .quantifier = .required },
8354 .{ .kind = .id_ref, .quantifier = .required },
8355 .{ .kind = .image_operands, .quantifier = .optional },
8356 },
8357 },
8358 .{
8359 .name = "OpImageSparseDrefGather",
8360 .opcode = 315,
8361 .operands = &.{
8362 .{ .kind = .id_result_type, .quantifier = .required },
8363 .{ .kind = .id_result, .quantifier = .required },
8364 .{ .kind = .id_ref, .quantifier = .required },
8365 .{ .kind = .id_ref, .quantifier = .required },
8366 .{ .kind = .id_ref, .quantifier = .required },
8367 .{ .kind = .image_operands, .quantifier = .optional },
8368 },
8369 },
8370 .{
8371 .name = "OpImageSparseTexelsResident",
8372 .opcode = 316,
8373 .operands = &.{
8374 .{ .kind = .id_result_type, .quantifier = .required },
8375 .{ .kind = .id_result, .quantifier = .required },
8376 .{ .kind = .id_ref, .quantifier = .required },
8377 },
8378 },
8379 .{
8380 .name = "OpNoLine",
8381 .opcode = 317,
8382 .operands = &.{},
8383 },
8384 .{
8385 .name = "OpAtomicFlagTestAndSet",
8386 .opcode = 318,
8387 .operands = &.{
8388 .{ .kind = .id_result_type, .quantifier = .required },
8389 .{ .kind = .id_result, .quantifier = .required },
8390 .{ .kind = .id_ref, .quantifier = .required },
8391 .{ .kind = .id_scope, .quantifier = .required },
8392 .{ .kind = .id_memory_semantics, .quantifier = .required },
8393 },
8394 },
8395 .{
8396 .name = "OpAtomicFlagClear",
8397 .opcode = 319,
8398 .operands = &.{
8399 .{ .kind = .id_ref, .quantifier = .required },
8400 .{ .kind = .id_scope, .quantifier = .required },
8401 .{ .kind = .id_memory_semantics, .quantifier = .required },
8402 },
8403 },
8404 .{
8405 .name = "OpImageSparseRead",
8406 .opcode = 320,
8407 .operands = &.{
8408 .{ .kind = .id_result_type, .quantifier = .required },
8409 .{ .kind = .id_result, .quantifier = .required },
8410 .{ .kind = .id_ref, .quantifier = .required },
8411 .{ .kind = .id_ref, .quantifier = .required },
8412 .{ .kind = .image_operands, .quantifier = .optional },
8413 },
8414 },
8415 .{
8416 .name = "OpSizeOf",
8417 .opcode = 321,
8418 .operands = &.{
8419 .{ .kind = .id_result_type, .quantifier = .required },
8420 .{ .kind = .id_result, .quantifier = .required },
8421 .{ .kind = .id_ref, .quantifier = .required },
8422 },
8423 },
8424 .{
8425 .name = "OpTypePipeStorage",
8426 .opcode = 322,
8427 .operands = &.{
8428 .{ .kind = .id_result, .quantifier = .required },
8429 },
8430 },
8431 .{
8432 .name = "OpConstantPipeStorage",
8433 .opcode = 323,
8434 .operands = &.{
8435 .{ .kind = .id_result_type, .quantifier = .required },
8436 .{ .kind = .id_result, .quantifier = .required },
8437 .{ .kind = .literal_integer, .quantifier = .required },
8438 .{ .kind = .literal_integer, .quantifier = .required },
8439 .{ .kind = .literal_integer, .quantifier = .required },
8440 },
8441 },
8442 .{
8443 .name = "OpCreatePipeFromPipeStorage",
8444 .opcode = 324,
8445 .operands = &.{
8446 .{ .kind = .id_result_type, .quantifier = .required },
8447 .{ .kind = .id_result, .quantifier = .required },
8448 .{ .kind = .id_ref, .quantifier = .required },
8449 },
8450 },
8451 .{
8452 .name = "OpGetKernelLocalSizeForSubgroupCount",
8453 .opcode = 325,
8454 .operands = &.{
8455 .{ .kind = .id_result_type, .quantifier = .required },
8456 .{ .kind = .id_result, .quantifier = .required },
8457 .{ .kind = .id_ref, .quantifier = .required },
8458 .{ .kind = .id_ref, .quantifier = .required },
8459 .{ .kind = .id_ref, .quantifier = .required },
8460 .{ .kind = .id_ref, .quantifier = .required },
8461 .{ .kind = .id_ref, .quantifier = .required },
8462 },
8463 },
8464 .{
8465 .name = "OpGetKernelMaxNumSubgroups",
8466 .opcode = 326,
8467 .operands = &.{
8468 .{ .kind = .id_result_type, .quantifier = .required },
8469 .{ .kind = .id_result, .quantifier = .required },
8470 .{ .kind = .id_ref, .quantifier = .required },
8471 .{ .kind = .id_ref, .quantifier = .required },
8472 .{ .kind = .id_ref, .quantifier = .required },
8473 .{ .kind = .id_ref, .quantifier = .required },
8474 },
8475 },
8476 .{
8477 .name = "OpTypeNamedBarrier",
8478 .opcode = 327,
8479 .operands = &.{
8480 .{ .kind = .id_result, .quantifier = .required },
8481 },
8482 },
8483 .{
8484 .name = "OpNamedBarrierInitialize",
8485 .opcode = 328,
8486 .operands = &.{
8487 .{ .kind = .id_result_type, .quantifier = .required },
8488 .{ .kind = .id_result, .quantifier = .required },
8489 .{ .kind = .id_ref, .quantifier = .required },
8490 },
8491 },
8492 .{
8493 .name = "OpMemoryNamedBarrier",
8494 .opcode = 329,
8495 .operands = &.{
8496 .{ .kind = .id_ref, .quantifier = .required },
8497 .{ .kind = .id_scope, .quantifier = .required },
8498 .{ .kind = .id_memory_semantics, .quantifier = .required },
8499 },
8500 },
8501 .{
8502 .name = "OpModuleProcessed",
8503 .opcode = 330,
8504 .operands = &.{
8505 .{ .kind = .literal_string, .quantifier = .required },
8506 },
8507 },
8508 .{
8509 .name = "OpExecutionModeId",
8510 .opcode = 331,
8511 .operands = &.{
8512 .{ .kind = .id_ref, .quantifier = .required },
8513 .{ .kind = .execution_mode, .quantifier = .required },
8514 },
8515 },
8516 .{
8517 .name = "OpDecorateId",
8518 .opcode = 332,
8519 .operands = &.{
8520 .{ .kind = .id_ref, .quantifier = .required },
8521 .{ .kind = .decoration, .quantifier = .required },
8522 },
8523 },
8524 .{
8525 .name = "OpGroupNonUniformElect",
8526 .opcode = 333,
8527 .operands = &.{
8528 .{ .kind = .id_result_type, .quantifier = .required },
8529 .{ .kind = .id_result, .quantifier = .required },
8530 .{ .kind = .id_scope, .quantifier = .required },
8531 },
8532 },
8533 .{
8534 .name = "OpGroupNonUniformAll",
8535 .opcode = 334,
8536 .operands = &.{
8537 .{ .kind = .id_result_type, .quantifier = .required },
8538 .{ .kind = .id_result, .quantifier = .required },
8539 .{ .kind = .id_scope, .quantifier = .required },
8540 .{ .kind = .id_ref, .quantifier = .required },
8541 },
8542 },
8543 .{
8544 .name = "OpGroupNonUniformAny",
8545 .opcode = 335,
8546 .operands = &.{
8547 .{ .kind = .id_result_type, .quantifier = .required },
8548 .{ .kind = .id_result, .quantifier = .required },
8549 .{ .kind = .id_scope, .quantifier = .required },
8550 .{ .kind = .id_ref, .quantifier = .required },
8551 },
8552 },
8553 .{
8554 .name = "OpGroupNonUniformAllEqual",
8555 .opcode = 336,
8556 .operands = &.{
8557 .{ .kind = .id_result_type, .quantifier = .required },
8558 .{ .kind = .id_result, .quantifier = .required },
8559 .{ .kind = .id_scope, .quantifier = .required },
8560 .{ .kind = .id_ref, .quantifier = .required },
8561 },
8562 },
8563 .{
8564 .name = "OpGroupNonUniformBroadcast",
8565 .opcode = 337,
8566 .operands = &.{
8567 .{ .kind = .id_result_type, .quantifier = .required },
8568 .{ .kind = .id_result, .quantifier = .required },
8569 .{ .kind = .id_scope, .quantifier = .required },
8570 .{ .kind = .id_ref, .quantifier = .required },
8571 .{ .kind = .id_ref, .quantifier = .required },
8572 },
8573 },
8574 .{
8575 .name = "OpGroupNonUniformBroadcastFirst",
8576 .opcode = 338,
8577 .operands = &.{
8578 .{ .kind = .id_result_type, .quantifier = .required },
8579 .{ .kind = .id_result, .quantifier = .required },
8580 .{ .kind = .id_scope, .quantifier = .required },
8581 .{ .kind = .id_ref, .quantifier = .required },
8582 },
8583 },
8584 .{
8585 .name = "OpGroupNonUniformBallot",
8586 .opcode = 339,
8587 .operands = &.{
8588 .{ .kind = .id_result_type, .quantifier = .required },
8589 .{ .kind = .id_result, .quantifier = .required },
8590 .{ .kind = .id_scope, .quantifier = .required },
8591 .{ .kind = .id_ref, .quantifier = .required },
8592 },
8593 },
8594 .{
8595 .name = "OpGroupNonUniformInverseBallot",
8596 .opcode = 340,
8597 .operands = &.{
8598 .{ .kind = .id_result_type, .quantifier = .required },
8599 .{ .kind = .id_result, .quantifier = .required },
8600 .{ .kind = .id_scope, .quantifier = .required },
8601 .{ .kind = .id_ref, .quantifier = .required },
8602 },
8603 },
8604 .{
8605 .name = "OpGroupNonUniformBallotBitExtract",
8606 .opcode = 341,
8607 .operands = &.{
8608 .{ .kind = .id_result_type, .quantifier = .required },
8609 .{ .kind = .id_result, .quantifier = .required },
8610 .{ .kind = .id_scope, .quantifier = .required },
8611 .{ .kind = .id_ref, .quantifier = .required },
8612 .{ .kind = .id_ref, .quantifier = .required },
8613 },
8614 },
8615 .{
8616 .name = "OpGroupNonUniformBallotBitCount",
8617 .opcode = 342,
8618 .operands = &.{
8619 .{ .kind = .id_result_type, .quantifier = .required },
8620 .{ .kind = .id_result, .quantifier = .required },
8621 .{ .kind = .id_scope, .quantifier = .required },
8622 .{ .kind = .group_operation, .quantifier = .required },
8623 .{ .kind = .id_ref, .quantifier = .required },
8624 },
8625 },
8626 .{
8627 .name = "OpGroupNonUniformBallotFindLSB",
8628 .opcode = 343,
8629 .operands = &.{
8630 .{ .kind = .id_result_type, .quantifier = .required },
8631 .{ .kind = .id_result, .quantifier = .required },
8632 .{ .kind = .id_scope, .quantifier = .required },
8633 .{ .kind = .id_ref, .quantifier = .required },
8634 },
8635 },
8636 .{
8637 .name = "OpGroupNonUniformBallotFindMSB",
8638 .opcode = 344,
8639 .operands = &.{
8640 .{ .kind = .id_result_type, .quantifier = .required },
8641 .{ .kind = .id_result, .quantifier = .required },
8642 .{ .kind = .id_scope, .quantifier = .required },
8643 .{ .kind = .id_ref, .quantifier = .required },
8644 },
8645 },
8646 .{
8647 .name = "OpGroupNonUniformShuffle",
8648 .opcode = 345,
8649 .operands = &.{
8650 .{ .kind = .id_result_type, .quantifier = .required },
8651 .{ .kind = .id_result, .quantifier = .required },
8652 .{ .kind = .id_scope, .quantifier = .required },
8653 .{ .kind = .id_ref, .quantifier = .required },
8654 .{ .kind = .id_ref, .quantifier = .required },
8655 },
8656 },
8657 .{
8658 .name = "OpGroupNonUniformShuffleXor",
8659 .opcode = 346,
8660 .operands = &.{
8661 .{ .kind = .id_result_type, .quantifier = .required },
8662 .{ .kind = .id_result, .quantifier = .required },
8663 .{ .kind = .id_scope, .quantifier = .required },
8664 .{ .kind = .id_ref, .quantifier = .required },
8665 .{ .kind = .id_ref, .quantifier = .required },
8666 },
8667 },
8668 .{
8669 .name = "OpGroupNonUniformShuffleUp",
8670 .opcode = 347,
8671 .operands = &.{
8672 .{ .kind = .id_result_type, .quantifier = .required },
8673 .{ .kind = .id_result, .quantifier = .required },
8674 .{ .kind = .id_scope, .quantifier = .required },
8675 .{ .kind = .id_ref, .quantifier = .required },
8676 .{ .kind = .id_ref, .quantifier = .required },
8677 },
8678 },
8679 .{
8680 .name = "OpGroupNonUniformShuffleDown",
8681 .opcode = 348,
8682 .operands = &.{
8683 .{ .kind = .id_result_type, .quantifier = .required },
8684 .{ .kind = .id_result, .quantifier = .required },
8685 .{ .kind = .id_scope, .quantifier = .required },
8686 .{ .kind = .id_ref, .quantifier = .required },
8687 .{ .kind = .id_ref, .quantifier = .required },
8688 },
8689 },
8690 .{
8691 .name = "OpGroupNonUniformIAdd",
8692 .opcode = 349,
8693 .operands = &.{
8694 .{ .kind = .id_result_type, .quantifier = .required },
8695 .{ .kind = .id_result, .quantifier = .required },
8696 .{ .kind = .id_scope, .quantifier = .required },
8697 .{ .kind = .group_operation, .quantifier = .required },
8698 .{ .kind = .id_ref, .quantifier = .required },
8699 .{ .kind = .id_ref, .quantifier = .optional },
8700 },
8701 },
8702 .{
8703 .name = "OpGroupNonUniformFAdd",
8704 .opcode = 350,
8705 .operands = &.{
8706 .{ .kind = .id_result_type, .quantifier = .required },
8707 .{ .kind = .id_result, .quantifier = .required },
8708 .{ .kind = .id_scope, .quantifier = .required },
8709 .{ .kind = .group_operation, .quantifier = .required },
8710 .{ .kind = .id_ref, .quantifier = .required },
8711 .{ .kind = .id_ref, .quantifier = .optional },
8712 },
8713 },
8714 .{
8715 .name = "OpGroupNonUniformIMul",
8716 .opcode = 351,
8717 .operands = &.{
8718 .{ .kind = .id_result_type, .quantifier = .required },
8719 .{ .kind = .id_result, .quantifier = .required },
8720 .{ .kind = .id_scope, .quantifier = .required },
8721 .{ .kind = .group_operation, .quantifier = .required },
8722 .{ .kind = .id_ref, .quantifier = .required },
8723 .{ .kind = .id_ref, .quantifier = .optional },
8724 },
8725 },
8726 .{
8727 .name = "OpGroupNonUniformFMul",
8728 .opcode = 352,
8729 .operands = &.{
8730 .{ .kind = .id_result_type, .quantifier = .required },
8731 .{ .kind = .id_result, .quantifier = .required },
8732 .{ .kind = .id_scope, .quantifier = .required },
8733 .{ .kind = .group_operation, .quantifier = .required },
8734 .{ .kind = .id_ref, .quantifier = .required },
8735 .{ .kind = .id_ref, .quantifier = .optional },
8736 },
8737 },
8738 .{
8739 .name = "OpGroupNonUniformSMin",
8740 .opcode = 353,
8741 .operands = &.{
8742 .{ .kind = .id_result_type, .quantifier = .required },
8743 .{ .kind = .id_result, .quantifier = .required },
8744 .{ .kind = .id_scope, .quantifier = .required },
8745 .{ .kind = .group_operation, .quantifier = .required },
8746 .{ .kind = .id_ref, .quantifier = .required },
8747 .{ .kind = .id_ref, .quantifier = .optional },
8748 },
8749 },
8750 .{
8751 .name = "OpGroupNonUniformUMin",
8752 .opcode = 354,
8753 .operands = &.{
8754 .{ .kind = .id_result_type, .quantifier = .required },
8755 .{ .kind = .id_result, .quantifier = .required },
8756 .{ .kind = .id_scope, .quantifier = .required },
8757 .{ .kind = .group_operation, .quantifier = .required },
8758 .{ .kind = .id_ref, .quantifier = .required },
8759 .{ .kind = .id_ref, .quantifier = .optional },
8760 },
8761 },
8762 .{
8763 .name = "OpGroupNonUniformFMin",
8764 .opcode = 355,
8765 .operands = &.{
8766 .{ .kind = .id_result_type, .quantifier = .required },
8767 .{ .kind = .id_result, .quantifier = .required },
8768 .{ .kind = .id_scope, .quantifier = .required },
8769 .{ .kind = .group_operation, .quantifier = .required },
8770 .{ .kind = .id_ref, .quantifier = .required },
8771 .{ .kind = .id_ref, .quantifier = .optional },
8772 },
8773 },
8774 .{
8775 .name = "OpGroupNonUniformSMax",
8776 .opcode = 356,
8777 .operands = &.{
8778 .{ .kind = .id_result_type, .quantifier = .required },
8779 .{ .kind = .id_result, .quantifier = .required },
8780 .{ .kind = .id_scope, .quantifier = .required },
8781 .{ .kind = .group_operation, .quantifier = .required },
8782 .{ .kind = .id_ref, .quantifier = .required },
8783 .{ .kind = .id_ref, .quantifier = .optional },
8784 },
8785 },
8786 .{
8787 .name = "OpGroupNonUniformUMax",
8788 .opcode = 357,
8789 .operands = &.{
8790 .{ .kind = .id_result_type, .quantifier = .required },
8791 .{ .kind = .id_result, .quantifier = .required },
8792 .{ .kind = .id_scope, .quantifier = .required },
8793 .{ .kind = .group_operation, .quantifier = .required },
8794 .{ .kind = .id_ref, .quantifier = .required },
8795 .{ .kind = .id_ref, .quantifier = .optional },
8796 },
8797 },
8798 .{
8799 .name = "OpGroupNonUniformFMax",
8800 .opcode = 358,
8801 .operands = &.{
8802 .{ .kind = .id_result_type, .quantifier = .required },
8803 .{ .kind = .id_result, .quantifier = .required },
8804 .{ .kind = .id_scope, .quantifier = .required },
8805 .{ .kind = .group_operation, .quantifier = .required },
8806 .{ .kind = .id_ref, .quantifier = .required },
8807 .{ .kind = .id_ref, .quantifier = .optional },
8808 },
8809 },
8810 .{
8811 .name = "OpGroupNonUniformBitwiseAnd",
8812 .opcode = 359,
8813 .operands = &.{
8814 .{ .kind = .id_result_type, .quantifier = .required },
8815 .{ .kind = .id_result, .quantifier = .required },
8816 .{ .kind = .id_scope, .quantifier = .required },
8817 .{ .kind = .group_operation, .quantifier = .required },
8818 .{ .kind = .id_ref, .quantifier = .required },
8819 .{ .kind = .id_ref, .quantifier = .optional },
8820 },
8821 },
8822 .{
8823 .name = "OpGroupNonUniformBitwiseOr",
8824 .opcode = 360,
8825 .operands = &.{
8826 .{ .kind = .id_result_type, .quantifier = .required },
8827 .{ .kind = .id_result, .quantifier = .required },
8828 .{ .kind = .id_scope, .quantifier = .required },
8829 .{ .kind = .group_operation, .quantifier = .required },
8830 .{ .kind = .id_ref, .quantifier = .required },
8831 .{ .kind = .id_ref, .quantifier = .optional },
8832 },
8833 },
8834 .{
8835 .name = "OpGroupNonUniformBitwiseXor",
8836 .opcode = 361,
8837 .operands = &.{
8838 .{ .kind = .id_result_type, .quantifier = .required },
8839 .{ .kind = .id_result, .quantifier = .required },
8840 .{ .kind = .id_scope, .quantifier = .required },
8841 .{ .kind = .group_operation, .quantifier = .required },
8842 .{ .kind = .id_ref, .quantifier = .required },
8843 .{ .kind = .id_ref, .quantifier = .optional },
8844 },
8845 },
8846 .{
8847 .name = "OpGroupNonUniformLogicalAnd",
8848 .opcode = 362,
8849 .operands = &.{
8850 .{ .kind = .id_result_type, .quantifier = .required },
8851 .{ .kind = .id_result, .quantifier = .required },
8852 .{ .kind = .id_scope, .quantifier = .required },
8853 .{ .kind = .group_operation, .quantifier = .required },
8854 .{ .kind = .id_ref, .quantifier = .required },
8855 .{ .kind = .id_ref, .quantifier = .optional },
8856 },
8857 },
8858 .{
8859 .name = "OpGroupNonUniformLogicalOr",
8860 .opcode = 363,
8861 .operands = &.{
8862 .{ .kind = .id_result_type, .quantifier = .required },
8863 .{ .kind = .id_result, .quantifier = .required },
8864 .{ .kind = .id_scope, .quantifier = .required },
8865 .{ .kind = .group_operation, .quantifier = .required },
8866 .{ .kind = .id_ref, .quantifier = .required },
8867 .{ .kind = .id_ref, .quantifier = .optional },
8868 },
8869 },
8870 .{
8871 .name = "OpGroupNonUniformLogicalXor",
8872 .opcode = 364,
8873 .operands = &.{
8874 .{ .kind = .id_result_type, .quantifier = .required },
8875 .{ .kind = .id_result, .quantifier = .required },
8876 .{ .kind = .id_scope, .quantifier = .required },
8877 .{ .kind = .group_operation, .quantifier = .required },
8878 .{ .kind = .id_ref, .quantifier = .required },
8879 .{ .kind = .id_ref, .quantifier = .optional },
8880 },
8881 },
8882 .{
8883 .name = "OpGroupNonUniformQuadBroadcast",
8884 .opcode = 365,
8885 .operands = &.{
8886 .{ .kind = .id_result_type, .quantifier = .required },
8887 .{ .kind = .id_result, .quantifier = .required },
8888 .{ .kind = .id_scope, .quantifier = .required },
8889 .{ .kind = .id_ref, .quantifier = .required },
8890 .{ .kind = .id_ref, .quantifier = .required },
8891 },
8892 },
8893 .{
8894 .name = "OpGroupNonUniformQuadSwap",
8895 .opcode = 366,
8896 .operands = &.{
8897 .{ .kind = .id_result_type, .quantifier = .required },
8898 .{ .kind = .id_result, .quantifier = .required },
8899 .{ .kind = .id_scope, .quantifier = .required },
8900 .{ .kind = .id_ref, .quantifier = .required },
8901 .{ .kind = .id_ref, .quantifier = .required },
8902 },
8903 },
8904 .{
8905 .name = "OpCopyLogical",
8906 .opcode = 400,
8907 .operands = &.{
8908 .{ .kind = .id_result_type, .quantifier = .required },
8909 .{ .kind = .id_result, .quantifier = .required },
8910 .{ .kind = .id_ref, .quantifier = .required },
8911 },
8912 },
8913 .{
8914 .name = "OpPtrEqual",
8915 .opcode = 401,
8916 .operands = &.{
8917 .{ .kind = .id_result_type, .quantifier = .required },
8918 .{ .kind = .id_result, .quantifier = .required },
8919 .{ .kind = .id_ref, .quantifier = .required },
8920 .{ .kind = .id_ref, .quantifier = .required },
8921 },
8922 },
8923 .{
8924 .name = "OpPtrNotEqual",
8925 .opcode = 402,
8926 .operands = &.{
8927 .{ .kind = .id_result_type, .quantifier = .required },
8928 .{ .kind = .id_result, .quantifier = .required },
8929 .{ .kind = .id_ref, .quantifier = .required },
8930 .{ .kind = .id_ref, .quantifier = .required },
8931 },
8932 },
8933 .{
8934 .name = "OpPtrDiff",
8935 .opcode = 403,
8936 .operands = &.{
8937 .{ .kind = .id_result_type, .quantifier = .required },
8938 .{ .kind = .id_result, .quantifier = .required },
8939 .{ .kind = .id_ref, .quantifier = .required },
8940 .{ .kind = .id_ref, .quantifier = .required },
8941 },
8942 },
8943 .{
8944 .name = "OpColorAttachmentReadEXT",
8945 .opcode = 4160,
8946 .operands = &.{
8947 .{ .kind = .id_result_type, .quantifier = .required },
8948 .{ .kind = .id_result, .quantifier = .required },
8949 .{ .kind = .id_ref, .quantifier = .required },
8950 .{ .kind = .id_ref, .quantifier = .optional },
8951 },
8952 },
8953 .{
8954 .name = "OpDepthAttachmentReadEXT",
8955 .opcode = 4161,
8956 .operands = &.{
8957 .{ .kind = .id_result_type, .quantifier = .required },
8958 .{ .kind = .id_result, .quantifier = .required },
8959 .{ .kind = .id_ref, .quantifier = .optional },
8960 },
8961 },
8962 .{
8963 .name = "OpStencilAttachmentReadEXT",
8964 .opcode = 4162,
8965 .operands = &.{
8966 .{ .kind = .id_result_type, .quantifier = .required },
8967 .{ .kind = .id_result, .quantifier = .required },
8968 .{ .kind = .id_ref, .quantifier = .optional },
8969 },
8970 },
8971 .{
8972 .name = "OpTypeTensorARM",
8973 .opcode = 4163,
8974 .operands = &.{
8975 .{ .kind = .id_result, .quantifier = .required },
8976 .{ .kind = .id_ref, .quantifier = .required },
8977 .{ .kind = .id_ref, .quantifier = .optional },
8978 .{ .kind = .id_ref, .quantifier = .optional },
8979 },
8980 },
8981 .{
8982 .name = "OpTensorReadARM",
8983 .opcode = 4164,
8984 .operands = &.{
8985 .{ .kind = .id_result_type, .quantifier = .required },
8986 .{ .kind = .id_result, .quantifier = .required },
8987 .{ .kind = .id_ref, .quantifier = .required },
8988 .{ .kind = .id_ref, .quantifier = .required },
8989 .{ .kind = .tensor_operands, .quantifier = .optional },
8990 },
8991 },
8992 .{
8993 .name = "OpTensorWriteARM",
8994 .opcode = 4165,
8995 .operands = &.{
8996 .{ .kind = .id_ref, .quantifier = .required },
8997 .{ .kind = .id_ref, .quantifier = .required },
8998 .{ .kind = .id_ref, .quantifier = .required },
8999 .{ .kind = .tensor_operands, .quantifier = .optional },
9000 },
9001 },
9002 .{
9003 .name = "OpTensorQuerySizeARM",
9004 .opcode = 4166,
9005 .operands = &.{
9006 .{ .kind = .id_result_type, .quantifier = .required },
9007 .{ .kind = .id_result, .quantifier = .required },
9008 .{ .kind = .id_ref, .quantifier = .required },
9009 .{ .kind = .id_ref, .quantifier = .required },
9010 },
9011 },
9012 .{
9013 .name = "OpGraphConstantARM",
9014 .opcode = 4181,
9015 .operands = &.{
9016 .{ .kind = .id_result_type, .quantifier = .required },
9017 .{ .kind = .id_result, .quantifier = .required },
9018 .{ .kind = .literal_integer, .quantifier = .required },
9019 },
9020 },
9021 .{
9022 .name = "OpGraphEntryPointARM",
9023 .opcode = 4182,
9024 .operands = &.{
9025 .{ .kind = .id_ref, .quantifier = .required },
9026 .{ .kind = .literal_string, .quantifier = .required },
9027 .{ .kind = .id_ref, .quantifier = .variadic },
9028 },
9029 },
9030 .{
9031 .name = "OpGraphARM",
9032 .opcode = 4183,
9033 .operands = &.{
9034 .{ .kind = .id_result_type, .quantifier = .required },
9035 .{ .kind = .id_result, .quantifier = .required },
9036 },
9037 },
9038 .{
9039 .name = "OpGraphInputARM",
9040 .opcode = 4184,
9041 .operands = &.{
9042 .{ .kind = .id_result_type, .quantifier = .required },
9043 .{ .kind = .id_result, .quantifier = .required },
9044 .{ .kind = .id_ref, .quantifier = .required },
9045 .{ .kind = .id_ref, .quantifier = .variadic },
9046 },
9047 },
9048 .{
9049 .name = "OpGraphSetOutputARM",
9050 .opcode = 4185,
9051 .operands = &.{
9052 .{ .kind = .id_ref, .quantifier = .required },
9053 .{ .kind = .id_ref, .quantifier = .required },
9054 .{ .kind = .id_ref, .quantifier = .variadic },
9055 },
9056 },
9057 .{
9058 .name = "OpGraphEndARM",
9059 .opcode = 4186,
9060 .operands = &.{},
9061 },
9062 .{
9063 .name = "OpTypeGraphARM",
9064 .opcode = 4190,
9065 .operands = &.{
9066 .{ .kind = .id_result, .quantifier = .required },
9067 .{ .kind = .literal_integer, .quantifier = .required },
9068 .{ .kind = .id_ref, .quantifier = .variadic },
9069 },
9070 },
9071 .{
9072 .name = "OpTerminateInvocation",
9073 .opcode = 4416,
9074 .operands = &.{},
9075 },
9076 .{
9077 .name = "OpTypeUntypedPointerKHR",
9078 .opcode = 4417,
9079 .operands = &.{
9080 .{ .kind = .id_result, .quantifier = .required },
9081 .{ .kind = .storage_class, .quantifier = .required },
9082 },
9083 },
9084 .{
9085 .name = "OpUntypedVariableKHR",
9086 .opcode = 4418,
9087 .operands = &.{
9088 .{ .kind = .id_result_type, .quantifier = .required },
9089 .{ .kind = .id_result, .quantifier = .required },
9090 .{ .kind = .storage_class, .quantifier = .required },
9091 .{ .kind = .id_ref, .quantifier = .optional },
9092 .{ .kind = .id_ref, .quantifier = .optional },
9093 },
9094 },
9095 .{
9096 .name = "OpUntypedAccessChainKHR",
9097 .opcode = 4419,
9098 .operands = &.{
9099 .{ .kind = .id_result_type, .quantifier = .required },
9100 .{ .kind = .id_result, .quantifier = .required },
9101 .{ .kind = .id_ref, .quantifier = .required },
9102 .{ .kind = .id_ref, .quantifier = .required },
9103 .{ .kind = .id_ref, .quantifier = .variadic },
9104 },
9105 },
9106 .{
9107 .name = "OpUntypedInBoundsAccessChainKHR",
9108 .opcode = 4420,
9109 .operands = &.{
9110 .{ .kind = .id_result_type, .quantifier = .required },
9111 .{ .kind = .id_result, .quantifier = .required },
9112 .{ .kind = .id_ref, .quantifier = .required },
9113 .{ .kind = .id_ref, .quantifier = .required },
9114 .{ .kind = .id_ref, .quantifier = .variadic },
9115 },
9116 },
9117 .{
9118 .name = "OpSubgroupBallotKHR",
9119 .opcode = 4421,
9120 .operands = &.{
9121 .{ .kind = .id_result_type, .quantifier = .required },
9122 .{ .kind = .id_result, .quantifier = .required },
9123 .{ .kind = .id_ref, .quantifier = .required },
9124 },
9125 },
9126 .{
9127 .name = "OpSubgroupFirstInvocationKHR",
9128 .opcode = 4422,
9129 .operands = &.{
9130 .{ .kind = .id_result_type, .quantifier = .required },
9131 .{ .kind = .id_result, .quantifier = .required },
9132 .{ .kind = .id_ref, .quantifier = .required },
9133 },
9134 },
9135 .{
9136 .name = "OpUntypedPtrAccessChainKHR",
9137 .opcode = 4423,
9138 .operands = &.{
9139 .{ .kind = .id_result_type, .quantifier = .required },
9140 .{ .kind = .id_result, .quantifier = .required },
9141 .{ .kind = .id_ref, .quantifier = .required },
9142 .{ .kind = .id_ref, .quantifier = .required },
9143 .{ .kind = .id_ref, .quantifier = .required },
9144 .{ .kind = .id_ref, .quantifier = .variadic },
9145 },
9146 },
9147 .{
9148 .name = "OpUntypedInBoundsPtrAccessChainKHR",
9149 .opcode = 4424,
9150 .operands = &.{
9151 .{ .kind = .id_result_type, .quantifier = .required },
9152 .{ .kind = .id_result, .quantifier = .required },
9153 .{ .kind = .id_ref, .quantifier = .required },
9154 .{ .kind = .id_ref, .quantifier = .required },
9155 .{ .kind = .id_ref, .quantifier = .required },
9156 .{ .kind = .id_ref, .quantifier = .variadic },
9157 },
9158 },
9159 .{
9160 .name = "OpUntypedArrayLengthKHR",
9161 .opcode = 4425,
9162 .operands = &.{
9163 .{ .kind = .id_result_type, .quantifier = .required },
9164 .{ .kind = .id_result, .quantifier = .required },
9165 .{ .kind = .id_ref, .quantifier = .required },
9166 .{ .kind = .id_ref, .quantifier = .required },
9167 .{ .kind = .literal_integer, .quantifier = .required },
9168 },
9169 },
9170 .{
9171 .name = "OpUntypedPrefetchKHR",
9172 .opcode = 4426,
9173 .operands = &.{
9174 .{ .kind = .id_ref, .quantifier = .required },
9175 .{ .kind = .id_ref, .quantifier = .required },
9176 .{ .kind = .id_ref, .quantifier = .optional },
9177 .{ .kind = .id_ref, .quantifier = .optional },
9178 .{ .kind = .id_ref, .quantifier = .optional },
9179 },
9180 },
9181 .{
9182 .name = "OpSubgroupAllKHR",
9183 .opcode = 4428,
9184 .operands = &.{
9185 .{ .kind = .id_result_type, .quantifier = .required },
9186 .{ .kind = .id_result, .quantifier = .required },
9187 .{ .kind = .id_ref, .quantifier = .required },
9188 },
9189 },
9190 .{
9191 .name = "OpSubgroupAnyKHR",
9192 .opcode = 4429,
9193 .operands = &.{
9194 .{ .kind = .id_result_type, .quantifier = .required },
9195 .{ .kind = .id_result, .quantifier = .required },
9196 .{ .kind = .id_ref, .quantifier = .required },
9197 },
9198 },
9199 .{
9200 .name = "OpSubgroupAllEqualKHR",
9201 .opcode = 4430,
9202 .operands = &.{
9203 .{ .kind = .id_result_type, .quantifier = .required },
9204 .{ .kind = .id_result, .quantifier = .required },
9205 .{ .kind = .id_ref, .quantifier = .required },
9206 },
9207 },
9208 .{
9209 .name = "OpGroupNonUniformRotateKHR",
9210 .opcode = 4431,
9211 .operands = &.{
9212 .{ .kind = .id_result_type, .quantifier = .required },
9213 .{ .kind = .id_result, .quantifier = .required },
9214 .{ .kind = .id_scope, .quantifier = .required },
9215 .{ .kind = .id_ref, .quantifier = .required },
9216 .{ .kind = .id_ref, .quantifier = .required },
9217 .{ .kind = .id_ref, .quantifier = .optional },
9218 },
9219 },
9220 .{
9221 .name = "OpSubgroupReadInvocationKHR",
9222 .opcode = 4432,
9223 .operands = &.{
9224 .{ .kind = .id_result_type, .quantifier = .required },
9225 .{ .kind = .id_result, .quantifier = .required },
9226 .{ .kind = .id_ref, .quantifier = .required },
9227 .{ .kind = .id_ref, .quantifier = .required },
9228 },
9229 },
9230 .{
9231 .name = "OpExtInstWithForwardRefsKHR",
9232 .opcode = 4433,
9233 .operands = &.{
9234 .{ .kind = .id_result_type, .quantifier = .required },
9235 .{ .kind = .id_result, .quantifier = .required },
9236 .{ .kind = .id_ref, .quantifier = .required },
9237 .{ .kind = .literal_ext_inst_integer, .quantifier = .required },
9238 .{ .kind = .id_ref, .quantifier = .variadic },
9239 },
9240 },
9241 .{
9242 .name = "OpTraceRayKHR",
9243 .opcode = 4445,
9244 .operands = &.{
9245 .{ .kind = .id_ref, .quantifier = .required },
9246 .{ .kind = .id_ref, .quantifier = .required },
9247 .{ .kind = .id_ref, .quantifier = .required },
9248 .{ .kind = .id_ref, .quantifier = .required },
9249 .{ .kind = .id_ref, .quantifier = .required },
9250 .{ .kind = .id_ref, .quantifier = .required },
9251 .{ .kind = .id_ref, .quantifier = .required },
9252 .{ .kind = .id_ref, .quantifier = .required },
9253 .{ .kind = .id_ref, .quantifier = .required },
9254 .{ .kind = .id_ref, .quantifier = .required },
9255 .{ .kind = .id_ref, .quantifier = .required },
9256 },
9257 },
9258 .{
9259 .name = "OpExecuteCallableKHR",
9260 .opcode = 4446,
9261 .operands = &.{
9262 .{ .kind = .id_ref, .quantifier = .required },
9263 .{ .kind = .id_ref, .quantifier = .required },
9264 },
9265 },
9266 .{
9267 .name = "OpConvertUToAccelerationStructureKHR",
9268 .opcode = 4447,
9269 .operands = &.{
9270 .{ .kind = .id_result_type, .quantifier = .required },
9271 .{ .kind = .id_result, .quantifier = .required },
9272 .{ .kind = .id_ref, .quantifier = .required },
9273 },
9274 },
9275 .{
9276 .name = "OpIgnoreIntersectionKHR",
9277 .opcode = 4448,
9278 .operands = &.{},
9279 },
9280 .{
9281 .name = "OpTerminateRayKHR",
9282 .opcode = 4449,
9283 .operands = &.{},
9284 },
9285 .{
9286 .name = "OpSDot",
9287 .opcode = 4450,
9288 .operands = &.{
9289 .{ .kind = .id_result_type, .quantifier = .required },
9290 .{ .kind = .id_result, .quantifier = .required },
9291 .{ .kind = .id_ref, .quantifier = .required },
9292 .{ .kind = .id_ref, .quantifier = .required },
9293 .{ .kind = .packed_vector_format, .quantifier = .optional },
9294 },
9295 },
9296 .{
9297 .name = "OpUDot",
9298 .opcode = 4451,
9299 .operands = &.{
9300 .{ .kind = .id_result_type, .quantifier = .required },
9301 .{ .kind = .id_result, .quantifier = .required },
9302 .{ .kind = .id_ref, .quantifier = .required },
9303 .{ .kind = .id_ref, .quantifier = .required },
9304 .{ .kind = .packed_vector_format, .quantifier = .optional },
9305 },
9306 },
9307 .{
9308 .name = "OpSUDot",
9309 .opcode = 4452,
9310 .operands = &.{
9311 .{ .kind = .id_result_type, .quantifier = .required },
9312 .{ .kind = .id_result, .quantifier = .required },
9313 .{ .kind = .id_ref, .quantifier = .required },
9314 .{ .kind = .id_ref, .quantifier = .required },
9315 .{ .kind = .packed_vector_format, .quantifier = .optional },
9316 },
9317 },
9318 .{
9319 .name = "OpSDotAccSat",
9320 .opcode = 4453,
9321 .operands = &.{
9322 .{ .kind = .id_result_type, .quantifier = .required },
9323 .{ .kind = .id_result, .quantifier = .required },
9324 .{ .kind = .id_ref, .quantifier = .required },
9325 .{ .kind = .id_ref, .quantifier = .required },
9326 .{ .kind = .id_ref, .quantifier = .required },
9327 .{ .kind = .packed_vector_format, .quantifier = .optional },
9328 },
9329 },
9330 .{
9331 .name = "OpUDotAccSat",
9332 .opcode = 4454,
9333 .operands = &.{
9334 .{ .kind = .id_result_type, .quantifier = .required },
9335 .{ .kind = .id_result, .quantifier = .required },
9336 .{ .kind = .id_ref, .quantifier = .required },
9337 .{ .kind = .id_ref, .quantifier = .required },
9338 .{ .kind = .id_ref, .quantifier = .required },
9339 .{ .kind = .packed_vector_format, .quantifier = .optional },
9340 },
9341 },
9342 .{
9343 .name = "OpSUDotAccSat",
9344 .opcode = 4455,
9345 .operands = &.{
9346 .{ .kind = .id_result_type, .quantifier = .required },
9347 .{ .kind = .id_result, .quantifier = .required },
9348 .{ .kind = .id_ref, .quantifier = .required },
9349 .{ .kind = .id_ref, .quantifier = .required },
9350 .{ .kind = .id_ref, .quantifier = .required },
9351 .{ .kind = .packed_vector_format, .quantifier = .optional },
9352 },
9353 },
9354 .{
9355 .name = "OpTypeCooperativeMatrixKHR",
9356 .opcode = 4456,
9357 .operands = &.{
9358 .{ .kind = .id_result, .quantifier = .required },
9359 .{ .kind = .id_ref, .quantifier = .required },
9360 .{ .kind = .id_scope, .quantifier = .required },
9361 .{ .kind = .id_ref, .quantifier = .required },
9362 .{ .kind = .id_ref, .quantifier = .required },
9363 .{ .kind = .id_ref, .quantifier = .required },
9364 },
9365 },
9366 .{
9367 .name = "OpCooperativeMatrixLoadKHR",
9368 .opcode = 4457,
9369 .operands = &.{
9370 .{ .kind = .id_result_type, .quantifier = .required },
9371 .{ .kind = .id_result, .quantifier = .required },
9372 .{ .kind = .id_ref, .quantifier = .required },
9373 .{ .kind = .id_ref, .quantifier = .required },
9374 .{ .kind = .id_ref, .quantifier = .optional },
9375 .{ .kind = .memory_access, .quantifier = .optional },
9376 },
9377 },
9378 .{
9379 .name = "OpCooperativeMatrixStoreKHR",
9380 .opcode = 4458,
9381 .operands = &.{
9382 .{ .kind = .id_ref, .quantifier = .required },
9383 .{ .kind = .id_ref, .quantifier = .required },
9384 .{ .kind = .id_ref, .quantifier = .required },
9385 .{ .kind = .id_ref, .quantifier = .optional },
9386 .{ .kind = .memory_access, .quantifier = .optional },
9387 },
9388 },
9389 .{
9390 .name = "OpCooperativeMatrixMulAddKHR",
9391 .opcode = 4459,
9392 .operands = &.{
9393 .{ .kind = .id_result_type, .quantifier = .required },
9394 .{ .kind = .id_result, .quantifier = .required },
9395 .{ .kind = .id_ref, .quantifier = .required },
9396 .{ .kind = .id_ref, .quantifier = .required },
9397 .{ .kind = .id_ref, .quantifier = .required },
9398 .{ .kind = .cooperative_matrix_operands, .quantifier = .optional },
9399 },
9400 },
9401 .{
9402 .name = "OpCooperativeMatrixLengthKHR",
9403 .opcode = 4460,
9404 .operands = &.{
9405 .{ .kind = .id_result_type, .quantifier = .required },
9406 .{ .kind = .id_result, .quantifier = .required },
9407 .{ .kind = .id_ref, .quantifier = .required },
9408 },
9409 },
9410 .{
9411 .name = "OpConstantCompositeReplicateEXT",
9412 .opcode = 4461,
9413 .operands = &.{
9414 .{ .kind = .id_result_type, .quantifier = .required },
9415 .{ .kind = .id_result, .quantifier = .required },
9416 .{ .kind = .id_ref, .quantifier = .required },
9417 },
9418 },
9419 .{
9420 .name = "OpSpecConstantCompositeReplicateEXT",
9421 .opcode = 4462,
9422 .operands = &.{
9423 .{ .kind = .id_result_type, .quantifier = .required },
9424 .{ .kind = .id_result, .quantifier = .required },
9425 .{ .kind = .id_ref, .quantifier = .required },
9426 },
9427 },
9428 .{
9429 .name = "OpCompositeConstructReplicateEXT",
9430 .opcode = 4463,
9431 .operands = &.{
9432 .{ .kind = .id_result_type, .quantifier = .required },
9433 .{ .kind = .id_result, .quantifier = .required },
9434 .{ .kind = .id_ref, .quantifier = .required },
9435 },
9436 },
9437 .{
9438 .name = "OpTypeRayQueryKHR",
9439 .opcode = 4472,
9440 .operands = &.{
9441 .{ .kind = .id_result, .quantifier = .required },
9442 },
9443 },
9444 .{
9445 .name = "OpRayQueryInitializeKHR",
9446 .opcode = 4473,
9447 .operands = &.{
9448 .{ .kind = .id_ref, .quantifier = .required },
9449 .{ .kind = .id_ref, .quantifier = .required },
9450 .{ .kind = .id_ref, .quantifier = .required },
9451 .{ .kind = .id_ref, .quantifier = .required },
9452 .{ .kind = .id_ref, .quantifier = .required },
9453 .{ .kind = .id_ref, .quantifier = .required },
9454 .{ .kind = .id_ref, .quantifier = .required },
9455 .{ .kind = .id_ref, .quantifier = .required },
9456 },
9457 },
9458 .{
9459 .name = "OpRayQueryTerminateKHR",
9460 .opcode = 4474,
9461 .operands = &.{
9462 .{ .kind = .id_ref, .quantifier = .required },
9463 },
9464 },
9465 .{
9466 .name = "OpRayQueryGenerateIntersectionKHR",
9467 .opcode = 4475,
9468 .operands = &.{
9469 .{ .kind = .id_ref, .quantifier = .required },
9470 .{ .kind = .id_ref, .quantifier = .required },
9471 },
9472 },
9473 .{
9474 .name = "OpRayQueryConfirmIntersectionKHR",
9475 .opcode = 4476,
9476 .operands = &.{
9477 .{ .kind = .id_ref, .quantifier = .required },
9478 },
9479 },
9480 .{
9481 .name = "OpRayQueryProceedKHR",
9482 .opcode = 4477,
9483 .operands = &.{
9484 .{ .kind = .id_result_type, .quantifier = .required },
9485 .{ .kind = .id_result, .quantifier = .required },
9486 .{ .kind = .id_ref, .quantifier = .required },
9487 },
9488 },
9489 .{
9490 .name = "OpRayQueryGetIntersectionTypeKHR",
9491 .opcode = 4479,
9492 .operands = &.{
9493 .{ .kind = .id_result_type, .quantifier = .required },
9494 .{ .kind = .id_result, .quantifier = .required },
9495 .{ .kind = .id_ref, .quantifier = .required },
9496 .{ .kind = .id_ref, .quantifier = .required },
9497 },
9498 },
9499 .{
9500 .name = "OpImageSampleWeightedQCOM",
9501 .opcode = 4480,
9502 .operands = &.{
9503 .{ .kind = .id_result_type, .quantifier = .required },
9504 .{ .kind = .id_result, .quantifier = .required },
9505 .{ .kind = .id_ref, .quantifier = .required },
9506 .{ .kind = .id_ref, .quantifier = .required },
9507 .{ .kind = .id_ref, .quantifier = .required },
9508 },
9509 },
9510 .{
9511 .name = "OpImageBoxFilterQCOM",
9512 .opcode = 4481,
9513 .operands = &.{
9514 .{ .kind = .id_result_type, .quantifier = .required },
9515 .{ .kind = .id_result, .quantifier = .required },
9516 .{ .kind = .id_ref, .quantifier = .required },
9517 .{ .kind = .id_ref, .quantifier = .required },
9518 .{ .kind = .id_ref, .quantifier = .required },
9519 },
9520 },
9521 .{
9522 .name = "OpImageBlockMatchSSDQCOM",
9523 .opcode = 4482,
9524 .operands = &.{
9525 .{ .kind = .id_result_type, .quantifier = .required },
9526 .{ .kind = .id_result, .quantifier = .required },
9527 .{ .kind = .id_ref, .quantifier = .required },
9528 .{ .kind = .id_ref, .quantifier = .required },
9529 .{ .kind = .id_ref, .quantifier = .required },
9530 .{ .kind = .id_ref, .quantifier = .required },
9531 .{ .kind = .id_ref, .quantifier = .required },
9532 },
9533 },
9534 .{
9535 .name = "OpImageBlockMatchSADQCOM",
9536 .opcode = 4483,
9537 .operands = &.{
9538 .{ .kind = .id_result_type, .quantifier = .required },
9539 .{ .kind = .id_result, .quantifier = .required },
9540 .{ .kind = .id_ref, .quantifier = .required },
9541 .{ .kind = .id_ref, .quantifier = .required },
9542 .{ .kind = .id_ref, .quantifier = .required },
9543 .{ .kind = .id_ref, .quantifier = .required },
9544 .{ .kind = .id_ref, .quantifier = .required },
9545 },
9546 },
9547 .{
9548 .name = "OpImageBlockMatchWindowSSDQCOM",
9549 .opcode = 4500,
9550 .operands = &.{
9551 .{ .kind = .id_result_type, .quantifier = .required },
9552 .{ .kind = .id_result, .quantifier = .required },
9553 .{ .kind = .id_ref, .quantifier = .required },
9554 .{ .kind = .id_ref, .quantifier = .required },
9555 .{ .kind = .id_ref, .quantifier = .required },
9556 .{ .kind = .id_ref, .quantifier = .required },
9557 .{ .kind = .id_ref, .quantifier = .required },
9558 },
9559 },
9560 .{
9561 .name = "OpImageBlockMatchWindowSADQCOM",
9562 .opcode = 4501,
9563 .operands = &.{
9564 .{ .kind = .id_result_type, .quantifier = .required },
9565 .{ .kind = .id_result, .quantifier = .required },
9566 .{ .kind = .id_ref, .quantifier = .required },
9567 .{ .kind = .id_ref, .quantifier = .required },
9568 .{ .kind = .id_ref, .quantifier = .required },
9569 .{ .kind = .id_ref, .quantifier = .required },
9570 .{ .kind = .id_ref, .quantifier = .required },
9571 },
9572 },
9573 .{
9574 .name = "OpImageBlockMatchGatherSSDQCOM",
9575 .opcode = 4502,
9576 .operands = &.{
9577 .{ .kind = .id_result_type, .quantifier = .required },
9578 .{ .kind = .id_result, .quantifier = .required },
9579 .{ .kind = .id_ref, .quantifier = .required },
9580 .{ .kind = .id_ref, .quantifier = .required },
9581 .{ .kind = .id_ref, .quantifier = .required },
9582 .{ .kind = .id_ref, .quantifier = .required },
9583 .{ .kind = .id_ref, .quantifier = .required },
9584 },
9585 },
9586 .{
9587 .name = "OpImageBlockMatchGatherSADQCOM",
9588 .opcode = 4503,
9589 .operands = &.{
9590 .{ .kind = .id_result_type, .quantifier = .required },
9591 .{ .kind = .id_result, .quantifier = .required },
9592 .{ .kind = .id_ref, .quantifier = .required },
9593 .{ .kind = .id_ref, .quantifier = .required },
9594 .{ .kind = .id_ref, .quantifier = .required },
9595 .{ .kind = .id_ref, .quantifier = .required },
9596 .{ .kind = .id_ref, .quantifier = .required },
9597 },
9598 },
9599 .{
9600 .name = "OpGroupIAddNonUniformAMD",
9601 .opcode = 5000,
9602 .operands = &.{
9603 .{ .kind = .id_result_type, .quantifier = .required },
9604 .{ .kind = .id_result, .quantifier = .required },
9605 .{ .kind = .id_scope, .quantifier = .required },
9606 .{ .kind = .group_operation, .quantifier = .required },
9607 .{ .kind = .id_ref, .quantifier = .required },
9608 },
9609 },
9610 .{
9611 .name = "OpGroupFAddNonUniformAMD",
9612 .opcode = 5001,
9613 .operands = &.{
9614 .{ .kind = .id_result_type, .quantifier = .required },
9615 .{ .kind = .id_result, .quantifier = .required },
9616 .{ .kind = .id_scope, .quantifier = .required },
9617 .{ .kind = .group_operation, .quantifier = .required },
9618 .{ .kind = .id_ref, .quantifier = .required },
9619 },
9620 },
9621 .{
9622 .name = "OpGroupFMinNonUniformAMD",
9623 .opcode = 5002,
9624 .operands = &.{
9625 .{ .kind = .id_result_type, .quantifier = .required },
9626 .{ .kind = .id_result, .quantifier = .required },
9627 .{ .kind = .id_scope, .quantifier = .required },
9628 .{ .kind = .group_operation, .quantifier = .required },
9629 .{ .kind = .id_ref, .quantifier = .required },
9630 },
9631 },
9632 .{
9633 .name = "OpGroupUMinNonUniformAMD",
9634 .opcode = 5003,
9635 .operands = &.{
9636 .{ .kind = .id_result_type, .quantifier = .required },
9637 .{ .kind = .id_result, .quantifier = .required },
9638 .{ .kind = .id_scope, .quantifier = .required },
9639 .{ .kind = .group_operation, .quantifier = .required },
9640 .{ .kind = .id_ref, .quantifier = .required },
9641 },
9642 },
9643 .{
9644 .name = "OpGroupSMinNonUniformAMD",
9645 .opcode = 5004,
9646 .operands = &.{
9647 .{ .kind = .id_result_type, .quantifier = .required },
9648 .{ .kind = .id_result, .quantifier = .required },
9649 .{ .kind = .id_scope, .quantifier = .required },
9650 .{ .kind = .group_operation, .quantifier = .required },
9651 .{ .kind = .id_ref, .quantifier = .required },
9652 },
9653 },
9654 .{
9655 .name = "OpGroupFMaxNonUniformAMD",
9656 .opcode = 5005,
9657 .operands = &.{
9658 .{ .kind = .id_result_type, .quantifier = .required },
9659 .{ .kind = .id_result, .quantifier = .required },
9660 .{ .kind = .id_scope, .quantifier = .required },
9661 .{ .kind = .group_operation, .quantifier = .required },
9662 .{ .kind = .id_ref, .quantifier = .required },
9663 },
9664 },
9665 .{
9666 .name = "OpGroupUMaxNonUniformAMD",
9667 .opcode = 5006,
9668 .operands = &.{
9669 .{ .kind = .id_result_type, .quantifier = .required },
9670 .{ .kind = .id_result, .quantifier = .required },
9671 .{ .kind = .id_scope, .quantifier = .required },
9672 .{ .kind = .group_operation, .quantifier = .required },
9673 .{ .kind = .id_ref, .quantifier = .required },
9674 },
9675 },
9676 .{
9677 .name = "OpGroupSMaxNonUniformAMD",
9678 .opcode = 5007,
9679 .operands = &.{
9680 .{ .kind = .id_result_type, .quantifier = .required },
9681 .{ .kind = .id_result, .quantifier = .required },
9682 .{ .kind = .id_scope, .quantifier = .required },
9683 .{ .kind = .group_operation, .quantifier = .required },
9684 .{ .kind = .id_ref, .quantifier = .required },
9685 },
9686 },
9687 .{
9688 .name = "OpFragmentMaskFetchAMD",
9689 .opcode = 5011,
9690 .operands = &.{
9691 .{ .kind = .id_result_type, .quantifier = .required },
9692 .{ .kind = .id_result, .quantifier = .required },
9693 .{ .kind = .id_ref, .quantifier = .required },
9694 .{ .kind = .id_ref, .quantifier = .required },
9695 },
9696 },
9697 .{
9698 .name = "OpFragmentFetchAMD",
9699 .opcode = 5012,
9700 .operands = &.{
9701 .{ .kind = .id_result_type, .quantifier = .required },
9702 .{ .kind = .id_result, .quantifier = .required },
9703 .{ .kind = .id_ref, .quantifier = .required },
9704 .{ .kind = .id_ref, .quantifier = .required },
9705 .{ .kind = .id_ref, .quantifier = .required },
9706 },
9707 },
9708 .{
9709 .name = "OpReadClockKHR",
9710 .opcode = 5056,
9711 .operands = &.{
9712 .{ .kind = .id_result_type, .quantifier = .required },
9713 .{ .kind = .id_result, .quantifier = .required },
9714 .{ .kind = .id_scope, .quantifier = .required },
9715 },
9716 },
9717 .{
9718 .name = "OpAllocateNodePayloadsAMDX",
9719 .opcode = 5074,
9720 .operands = &.{
9721 .{ .kind = .id_result_type, .quantifier = .required },
9722 .{ .kind = .id_result, .quantifier = .required },
9723 .{ .kind = .id_scope, .quantifier = .required },
9724 .{ .kind = .id_ref, .quantifier = .required },
9725 .{ .kind = .id_ref, .quantifier = .required },
9726 },
9727 },
9728 .{
9729 .name = "OpEnqueueNodePayloadsAMDX",
9730 .opcode = 5075,
9731 .operands = &.{
9732 .{ .kind = .id_ref, .quantifier = .required },
9733 },
9734 },
9735 .{
9736 .name = "OpTypeNodePayloadArrayAMDX",
9737 .opcode = 5076,
9738 .operands = &.{
9739 .{ .kind = .id_result, .quantifier = .required },
9740 .{ .kind = .id_ref, .quantifier = .required },
9741 },
9742 },
9743 .{
9744 .name = "OpFinishWritingNodePayloadAMDX",
9745 .opcode = 5078,
9746 .operands = &.{
9747 .{ .kind = .id_result_type, .quantifier = .required },
9748 .{ .kind = .id_result, .quantifier = .required },
9749 .{ .kind = .id_ref, .quantifier = .required },
9750 },
9751 },
9752 .{
9753 .name = "OpNodePayloadArrayLengthAMDX",
9754 .opcode = 5090,
9755 .operands = &.{
9756 .{ .kind = .id_result_type, .quantifier = .required },
9757 .{ .kind = .id_result, .quantifier = .required },
9758 .{ .kind = .id_ref, .quantifier = .required },
9759 },
9760 },
9761 .{
9762 .name = "OpIsNodePayloadValidAMDX",
9763 .opcode = 5101,
9764 .operands = &.{
9765 .{ .kind = .id_result_type, .quantifier = .required },
9766 .{ .kind = .id_result, .quantifier = .required },
9767 .{ .kind = .id_ref, .quantifier = .required },
9768 .{ .kind = .id_ref, .quantifier = .required },
9769 },
9770 },
9771 .{
9772 .name = "OpConstantStringAMDX",
9773 .opcode = 5103,
9774 .operands = &.{
9775 .{ .kind = .id_result, .quantifier = .required },
9776 .{ .kind = .literal_string, .quantifier = .required },
9777 },
9778 },
9779 .{
9780 .name = "OpSpecConstantStringAMDX",
9781 .opcode = 5104,
9782 .operands = &.{
9783 .{ .kind = .id_result, .quantifier = .required },
9784 .{ .kind = .literal_string, .quantifier = .required },
9785 },
9786 },
9787 .{
9788 .name = "OpGroupNonUniformQuadAllKHR",
9789 .opcode = 5110,
9790 .operands = &.{
9791 .{ .kind = .id_result_type, .quantifier = .required },
9792 .{ .kind = .id_result, .quantifier = .required },
9793 .{ .kind = .id_ref, .quantifier = .required },
9794 },
9795 },
9796 .{
9797 .name = "OpGroupNonUniformQuadAnyKHR",
9798 .opcode = 5111,
9799 .operands = &.{
9800 .{ .kind = .id_result_type, .quantifier = .required },
9801 .{ .kind = .id_result, .quantifier = .required },
9802 .{ .kind = .id_ref, .quantifier = .required },
9803 },
9804 },
9805 .{
9806 .name = "OpHitObjectRecordHitMotionNV",
9807 .opcode = 5249,
9808 .operands = &.{
9809 .{ .kind = .id_ref, .quantifier = .required },
9810 .{ .kind = .id_ref, .quantifier = .required },
9811 .{ .kind = .id_ref, .quantifier = .required },
9812 .{ .kind = .id_ref, .quantifier = .required },
9813 .{ .kind = .id_ref, .quantifier = .required },
9814 .{ .kind = .id_ref, .quantifier = .required },
9815 .{ .kind = .id_ref, .quantifier = .required },
9816 .{ .kind = .id_ref, .quantifier = .required },
9817 .{ .kind = .id_ref, .quantifier = .required },
9818 .{ .kind = .id_ref, .quantifier = .required },
9819 .{ .kind = .id_ref, .quantifier = .required },
9820 .{ .kind = .id_ref, .quantifier = .required },
9821 .{ .kind = .id_ref, .quantifier = .required },
9822 .{ .kind = .id_ref, .quantifier = .required },
9823 },
9824 },
9825 .{
9826 .name = "OpHitObjectRecordHitWithIndexMotionNV",
9827 .opcode = 5250,
9828 .operands = &.{
9829 .{ .kind = .id_ref, .quantifier = .required },
9830 .{ .kind = .id_ref, .quantifier = .required },
9831 .{ .kind = .id_ref, .quantifier = .required },
9832 .{ .kind = .id_ref, .quantifier = .required },
9833 .{ .kind = .id_ref, .quantifier = .required },
9834 .{ .kind = .id_ref, .quantifier = .required },
9835 .{ .kind = .id_ref, .quantifier = .required },
9836 .{ .kind = .id_ref, .quantifier = .required },
9837 .{ .kind = .id_ref, .quantifier = .required },
9838 .{ .kind = .id_ref, .quantifier = .required },
9839 .{ .kind = .id_ref, .quantifier = .required },
9840 .{ .kind = .id_ref, .quantifier = .required },
9841 .{ .kind = .id_ref, .quantifier = .required },
9842 },
9843 },
9844 .{
9845 .name = "OpHitObjectRecordMissMotionNV",
9846 .opcode = 5251,
9847 .operands = &.{
9848 .{ .kind = .id_ref, .quantifier = .required },
9849 .{ .kind = .id_ref, .quantifier = .required },
9850 .{ .kind = .id_ref, .quantifier = .required },
9851 .{ .kind = .id_ref, .quantifier = .required },
9852 .{ .kind = .id_ref, .quantifier = .required },
9853 .{ .kind = .id_ref, .quantifier = .required },
9854 .{ .kind = .id_ref, .quantifier = .required },
9855 },
9856 },
9857 .{
9858 .name = "OpHitObjectGetWorldToObjectNV",
9859 .opcode = 5252,
9860 .operands = &.{
9861 .{ .kind = .id_result_type, .quantifier = .required },
9862 .{ .kind = .id_result, .quantifier = .required },
9863 .{ .kind = .id_ref, .quantifier = .required },
9864 },
9865 },
9866 .{
9867 .name = "OpHitObjectGetObjectToWorldNV",
9868 .opcode = 5253,
9869 .operands = &.{
9870 .{ .kind = .id_result_type, .quantifier = .required },
9871 .{ .kind = .id_result, .quantifier = .required },
9872 .{ .kind = .id_ref, .quantifier = .required },
9873 },
9874 },
9875 .{
9876 .name = "OpHitObjectGetObjectRayDirectionNV",
9877 .opcode = 5254,
9878 .operands = &.{
9879 .{ .kind = .id_result_type, .quantifier = .required },
9880 .{ .kind = .id_result, .quantifier = .required },
9881 .{ .kind = .id_ref, .quantifier = .required },
9882 },
9883 },
9884 .{
9885 .name = "OpHitObjectGetObjectRayOriginNV",
9886 .opcode = 5255,
9887 .operands = &.{
9888 .{ .kind = .id_result_type, .quantifier = .required },
9889 .{ .kind = .id_result, .quantifier = .required },
9890 .{ .kind = .id_ref, .quantifier = .required },
9891 },
9892 },
9893 .{
9894 .name = "OpHitObjectTraceRayMotionNV",
9895 .opcode = 5256,
9896 .operands = &.{
9897 .{ .kind = .id_ref, .quantifier = .required },
9898 .{ .kind = .id_ref, .quantifier = .required },
9899 .{ .kind = .id_ref, .quantifier = .required },
9900 .{ .kind = .id_ref, .quantifier = .required },
9901 .{ .kind = .id_ref, .quantifier = .required },
9902 .{ .kind = .id_ref, .quantifier = .required },
9903 .{ .kind = .id_ref, .quantifier = .required },
9904 .{ .kind = .id_ref, .quantifier = .required },
9905 .{ .kind = .id_ref, .quantifier = .required },
9906 .{ .kind = .id_ref, .quantifier = .required },
9907 .{ .kind = .id_ref, .quantifier = .required },
9908 .{ .kind = .id_ref, .quantifier = .required },
9909 .{ .kind = .id_ref, .quantifier = .required },
9910 },
9911 },
9912 .{
9913 .name = "OpHitObjectGetShaderRecordBufferHandleNV",
9914 .opcode = 5257,
9915 .operands = &.{
9916 .{ .kind = .id_result_type, .quantifier = .required },
9917 .{ .kind = .id_result, .quantifier = .required },
9918 .{ .kind = .id_ref, .quantifier = .required },
9919 },
9920 },
9921 .{
9922 .name = "OpHitObjectGetShaderBindingTableRecordIndexNV",
9923 .opcode = 5258,
9924 .operands = &.{
9925 .{ .kind = .id_result_type, .quantifier = .required },
9926 .{ .kind = .id_result, .quantifier = .required },
9927 .{ .kind = .id_ref, .quantifier = .required },
9928 },
9929 },
9930 .{
9931 .name = "OpHitObjectRecordEmptyNV",
9932 .opcode = 5259,
9933 .operands = &.{
9934 .{ .kind = .id_ref, .quantifier = .required },
9935 },
9936 },
9937 .{
9938 .name = "OpHitObjectTraceRayNV",
9939 .opcode = 5260,
9940 .operands = &.{
9941 .{ .kind = .id_ref, .quantifier = .required },
9942 .{ .kind = .id_ref, .quantifier = .required },
9943 .{ .kind = .id_ref, .quantifier = .required },
9944 .{ .kind = .id_ref, .quantifier = .required },
9945 .{ .kind = .id_ref, .quantifier = .required },
9946 .{ .kind = .id_ref, .quantifier = .required },
9947 .{ .kind = .id_ref, .quantifier = .required },
9948 .{ .kind = .id_ref, .quantifier = .required },
9949 .{ .kind = .id_ref, .quantifier = .required },
9950 .{ .kind = .id_ref, .quantifier = .required },
9951 .{ .kind = .id_ref, .quantifier = .required },
9952 .{ .kind = .id_ref, .quantifier = .required },
9953 },
9954 },
9955 .{
9956 .name = "OpHitObjectRecordHitNV",
9957 .opcode = 5261,
9958 .operands = &.{
9959 .{ .kind = .id_ref, .quantifier = .required },
9960 .{ .kind = .id_ref, .quantifier = .required },
9961 .{ .kind = .id_ref, .quantifier = .required },
9962 .{ .kind = .id_ref, .quantifier = .required },
9963 .{ .kind = .id_ref, .quantifier = .required },
9964 .{ .kind = .id_ref, .quantifier = .required },
9965 .{ .kind = .id_ref, .quantifier = .required },
9966 .{ .kind = .id_ref, .quantifier = .required },
9967 .{ .kind = .id_ref, .quantifier = .required },
9968 .{ .kind = .id_ref, .quantifier = .required },
9969 .{ .kind = .id_ref, .quantifier = .required },
9970 .{ .kind = .id_ref, .quantifier = .required },
9971 .{ .kind = .id_ref, .quantifier = .required },
9972 },
9973 },
9974 .{
9975 .name = "OpHitObjectRecordHitWithIndexNV",
9976 .opcode = 5262,
9977 .operands = &.{
9978 .{ .kind = .id_ref, .quantifier = .required },
9979 .{ .kind = .id_ref, .quantifier = .required },
9980 .{ .kind = .id_ref, .quantifier = .required },
9981 .{ .kind = .id_ref, .quantifier = .required },
9982 .{ .kind = .id_ref, .quantifier = .required },
9983 .{ .kind = .id_ref, .quantifier = .required },
9984 .{ .kind = .id_ref, .quantifier = .required },
9985 .{ .kind = .id_ref, .quantifier = .required },
9986 .{ .kind = .id_ref, .quantifier = .required },
9987 .{ .kind = .id_ref, .quantifier = .required },
9988 .{ .kind = .id_ref, .quantifier = .required },
9989 .{ .kind = .id_ref, .quantifier = .required },
9990 },
9991 },
9992 .{
9993 .name = "OpHitObjectRecordMissNV",
9994 .opcode = 5263,
9995 .operands = &.{
9996 .{ .kind = .id_ref, .quantifier = .required },
9997 .{ .kind = .id_ref, .quantifier = .required },
9998 .{ .kind = .id_ref, .quantifier = .required },
9999 .{ .kind = .id_ref, .quantifier = .required },
10000 .{ .kind = .id_ref, .quantifier = .required },
10001 .{ .kind = .id_ref, .quantifier = .required },
10002 },
10003 },
10004 .{
10005 .name = "OpHitObjectExecuteShaderNV",
10006 .opcode = 5264,
10007 .operands = &.{
10008 .{ .kind = .id_ref, .quantifier = .required },
10009 .{ .kind = .id_ref, .quantifier = .required },
10010 },
10011 },
10012 .{
10013 .name = "OpHitObjectGetCurrentTimeNV",
10014 .opcode = 5265,
10015 .operands = &.{
10016 .{ .kind = .id_result_type, .quantifier = .required },
10017 .{ .kind = .id_result, .quantifier = .required },
10018 .{ .kind = .id_ref, .quantifier = .required },
10019 },
10020 },
10021 .{
10022 .name = "OpHitObjectGetAttributesNV",
10023 .opcode = 5266,
10024 .operands = &.{
10025 .{ .kind = .id_ref, .quantifier = .required },
10026 .{ .kind = .id_ref, .quantifier = .required },
10027 },
10028 },
10029 .{
10030 .name = "OpHitObjectGetHitKindNV",
10031 .opcode = 5267,
10032 .operands = &.{
10033 .{ .kind = .id_result_type, .quantifier = .required },
10034 .{ .kind = .id_result, .quantifier = .required },
10035 .{ .kind = .id_ref, .quantifier = .required },
10036 },
10037 },
10038 .{
10039 .name = "OpHitObjectGetPrimitiveIndexNV",
10040 .opcode = 5268,
10041 .operands = &.{
10042 .{ .kind = .id_result_type, .quantifier = .required },
10043 .{ .kind = .id_result, .quantifier = .required },
10044 .{ .kind = .id_ref, .quantifier = .required },
10045 },
10046 },
10047 .{
10048 .name = "OpHitObjectGetGeometryIndexNV",
10049 .opcode = 5269,
10050 .operands = &.{
10051 .{ .kind = .id_result_type, .quantifier = .required },
10052 .{ .kind = .id_result, .quantifier = .required },
10053 .{ .kind = .id_ref, .quantifier = .required },
10054 },
10055 },
10056 .{
10057 .name = "OpHitObjectGetInstanceIdNV",
10058 .opcode = 5270,
10059 .operands = &.{
10060 .{ .kind = .id_result_type, .quantifier = .required },
10061 .{ .kind = .id_result, .quantifier = .required },
10062 .{ .kind = .id_ref, .quantifier = .required },
10063 },
10064 },
10065 .{
10066 .name = "OpHitObjectGetInstanceCustomIndexNV",
10067 .opcode = 5271,
10068 .operands = &.{
10069 .{ .kind = .id_result_type, .quantifier = .required },
10070 .{ .kind = .id_result, .quantifier = .required },
10071 .{ .kind = .id_ref, .quantifier = .required },
10072 },
10073 },
10074 .{
10075 .name = "OpHitObjectGetWorldRayDirectionNV",
10076 .opcode = 5272,
10077 .operands = &.{
10078 .{ .kind = .id_result_type, .quantifier = .required },
10079 .{ .kind = .id_result, .quantifier = .required },
10080 .{ .kind = .id_ref, .quantifier = .required },
10081 },
10082 },
10083 .{
10084 .name = "OpHitObjectGetWorldRayOriginNV",
10085 .opcode = 5273,
10086 .operands = &.{
10087 .{ .kind = .id_result_type, .quantifier = .required },
10088 .{ .kind = .id_result, .quantifier = .required },
10089 .{ .kind = .id_ref, .quantifier = .required },
10090 },
10091 },
10092 .{
10093 .name = "OpHitObjectGetRayTMaxNV",
10094 .opcode = 5274,
10095 .operands = &.{
10096 .{ .kind = .id_result_type, .quantifier = .required },
10097 .{ .kind = .id_result, .quantifier = .required },
10098 .{ .kind = .id_ref, .quantifier = .required },
10099 },
10100 },
10101 .{
10102 .name = "OpHitObjectGetRayTMinNV",
10103 .opcode = 5275,
10104 .operands = &.{
10105 .{ .kind = .id_result_type, .quantifier = .required },
10106 .{ .kind = .id_result, .quantifier = .required },
10107 .{ .kind = .id_ref, .quantifier = .required },
10108 },
10109 },
10110 .{
10111 .name = "OpHitObjectIsEmptyNV",
10112 .opcode = 5276,
10113 .operands = &.{
10114 .{ .kind = .id_result_type, .quantifier = .required },
10115 .{ .kind = .id_result, .quantifier = .required },
10116 .{ .kind = .id_ref, .quantifier = .required },
10117 },
10118 },
10119 .{
10120 .name = "OpHitObjectIsHitNV",
10121 .opcode = 5277,
10122 .operands = &.{
10123 .{ .kind = .id_result_type, .quantifier = .required },
10124 .{ .kind = .id_result, .quantifier = .required },
10125 .{ .kind = .id_ref, .quantifier = .required },
10126 },
10127 },
10128 .{
10129 .name = "OpHitObjectIsMissNV",
10130 .opcode = 5278,
10131 .operands = &.{
10132 .{ .kind = .id_result_type, .quantifier = .required },
10133 .{ .kind = .id_result, .quantifier = .required },
10134 .{ .kind = .id_ref, .quantifier = .required },
10135 },
10136 },
10137 .{
10138 .name = "OpReorderThreadWithHitObjectNV",
10139 .opcode = 5279,
10140 .operands = &.{
10141 .{ .kind = .id_ref, .quantifier = .required },
10142 .{ .kind = .id_ref, .quantifier = .optional },
10143 .{ .kind = .id_ref, .quantifier = .optional },
10144 },
10145 },
10146 .{
10147 .name = "OpReorderThreadWithHintNV",
10148 .opcode = 5280,
10149 .operands = &.{
10150 .{ .kind = .id_ref, .quantifier = .required },
10151 .{ .kind = .id_ref, .quantifier = .required },
10152 },
10153 },
10154 .{
10155 .name = "OpTypeHitObjectNV",
10156 .opcode = 5281,
10157 .operands = &.{
10158 .{ .kind = .id_result, .quantifier = .required },
10159 },
10160 },
10161 .{
10162 .name = "OpImageSampleFootprintNV",
10163 .opcode = 5283,
10164 .operands = &.{
10165 .{ .kind = .id_result_type, .quantifier = .required },
10166 .{ .kind = .id_result, .quantifier = .required },
10167 .{ .kind = .id_ref, .quantifier = .required },
10168 .{ .kind = .id_ref, .quantifier = .required },
10169 .{ .kind = .id_ref, .quantifier = .required },
10170 .{ .kind = .id_ref, .quantifier = .required },
10171 .{ .kind = .image_operands, .quantifier = .optional },
10172 },
10173 },
10174 .{
10175 .name = "OpTypeCooperativeVectorNV",
10176 .opcode = 5288,
10177 .operands = &.{
10178 .{ .kind = .id_result, .quantifier = .required },
10179 .{ .kind = .id_ref, .quantifier = .required },
10180 .{ .kind = .id_ref, .quantifier = .required },
10181 },
10182 },
10183 .{
10184 .name = "OpCooperativeVectorMatrixMulNV",
10185 .opcode = 5289,
10186 .operands = &.{
10187 .{ .kind = .id_result_type, .quantifier = .required },
10188 .{ .kind = .id_result, .quantifier = .required },
10189 .{ .kind = .id_ref, .quantifier = .required },
10190 .{ .kind = .id_ref, .quantifier = .required },
10191 .{ .kind = .id_ref, .quantifier = .required },
10192 .{ .kind = .id_ref, .quantifier = .required },
10193 .{ .kind = .id_ref, .quantifier = .required },
10194 .{ .kind = .id_ref, .quantifier = .required },
10195 .{ .kind = .id_ref, .quantifier = .required },
10196 .{ .kind = .id_ref, .quantifier = .required },
10197 .{ .kind = .id_ref, .quantifier = .required },
10198 .{ .kind = .id_ref, .quantifier = .optional },
10199 .{ .kind = .cooperative_matrix_operands, .quantifier = .optional },
10200 },
10201 },
10202 .{
10203 .name = "OpCooperativeVectorOuterProductAccumulateNV",
10204 .opcode = 5290,
10205 .operands = &.{
10206 .{ .kind = .id_ref, .quantifier = .required },
10207 .{ .kind = .id_ref, .quantifier = .required },
10208 .{ .kind = .id_ref, .quantifier = .required },
10209 .{ .kind = .id_ref, .quantifier = .required },
10210 .{ .kind = .id_ref, .quantifier = .required },
10211 .{ .kind = .id_ref, .quantifier = .required },
10212 .{ .kind = .id_ref, .quantifier = .optional },
10213 },
10214 },
10215 .{
10216 .name = "OpCooperativeVectorReduceSumAccumulateNV",
10217 .opcode = 5291,
10218 .operands = &.{
10219 .{ .kind = .id_ref, .quantifier = .required },
10220 .{ .kind = .id_ref, .quantifier = .required },
10221 .{ .kind = .id_ref, .quantifier = .required },
10222 },
10223 },
10224 .{
10225 .name = "OpCooperativeVectorMatrixMulAddNV",
10226 .opcode = 5292,
10227 .operands = &.{
10228 .{ .kind = .id_result_type, .quantifier = .required },
10229 .{ .kind = .id_result, .quantifier = .required },
10230 .{ .kind = .id_ref, .quantifier = .required },
10231 .{ .kind = .id_ref, .quantifier = .required },
10232 .{ .kind = .id_ref, .quantifier = .required },
10233 .{ .kind = .id_ref, .quantifier = .required },
10234 .{ .kind = .id_ref, .quantifier = .required },
10235 .{ .kind = .id_ref, .quantifier = .required },
10236 .{ .kind = .id_ref, .quantifier = .required },
10237 .{ .kind = .id_ref, .quantifier = .required },
10238 .{ .kind = .id_ref, .quantifier = .required },
10239 .{ .kind = .id_ref, .quantifier = .required },
10240 .{ .kind = .id_ref, .quantifier = .required },
10241 .{ .kind = .id_ref, .quantifier = .required },
10242 .{ .kind = .id_ref, .quantifier = .optional },
10243 .{ .kind = .cooperative_matrix_operands, .quantifier = .optional },
10244 },
10245 },
10246 .{
10247 .name = "OpCooperativeMatrixConvertNV",
10248 .opcode = 5293,
10249 .operands = &.{
10250 .{ .kind = .id_result_type, .quantifier = .required },
10251 .{ .kind = .id_result, .quantifier = .required },
10252 .{ .kind = .id_ref, .quantifier = .required },
10253 },
10254 },
10255 .{
10256 .name = "OpEmitMeshTasksEXT",
10257 .opcode = 5294,
10258 .operands = &.{
10259 .{ .kind = .id_ref, .quantifier = .required },
10260 .{ .kind = .id_ref, .quantifier = .required },
10261 .{ .kind = .id_ref, .quantifier = .required },
10262 .{ .kind = .id_ref, .quantifier = .optional },
10263 },
10264 },
10265 .{
10266 .name = "OpSetMeshOutputsEXT",
10267 .opcode = 5295,
10268 .operands = &.{
10269 .{ .kind = .id_ref, .quantifier = .required },
10270 .{ .kind = .id_ref, .quantifier = .required },
10271 },
10272 },
10273 .{
10274 .name = "OpGroupNonUniformPartitionNV",
10275 .opcode = 5296,
10276 .operands = &.{
10277 .{ .kind = .id_result_type, .quantifier = .required },
10278 .{ .kind = .id_result, .quantifier = .required },
10279 .{ .kind = .id_ref, .quantifier = .required },
10280 },
10281 },
10282 .{
10283 .name = "OpWritePackedPrimitiveIndices4x8NV",
10284 .opcode = 5299,
10285 .operands = &.{
10286 .{ .kind = .id_ref, .quantifier = .required },
10287 .{ .kind = .id_ref, .quantifier = .required },
10288 },
10289 },
10290 .{
10291 .name = "OpFetchMicroTriangleVertexPositionNV",
10292 .opcode = 5300,
10293 .operands = &.{
10294 .{ .kind = .id_result_type, .quantifier = .required },
10295 .{ .kind = .id_result, .quantifier = .required },
10296 .{ .kind = .id_ref, .quantifier = .required },
10297 .{ .kind = .id_ref, .quantifier = .required },
10298 .{ .kind = .id_ref, .quantifier = .required },
10299 .{ .kind = .id_ref, .quantifier = .required },
10300 .{ .kind = .id_ref, .quantifier = .required },
10301 },
10302 },
10303 .{
10304 .name = "OpFetchMicroTriangleVertexBarycentricNV",
10305 .opcode = 5301,
10306 .operands = &.{
10307 .{ .kind = .id_result_type, .quantifier = .required },
10308 .{ .kind = .id_result, .quantifier = .required },
10309 .{ .kind = .id_ref, .quantifier = .required },
10310 .{ .kind = .id_ref, .quantifier = .required },
10311 .{ .kind = .id_ref, .quantifier = .required },
10312 .{ .kind = .id_ref, .quantifier = .required },
10313 .{ .kind = .id_ref, .quantifier = .required },
10314 },
10315 },
10316 .{
10317 .name = "OpCooperativeVectorLoadNV",
10318 .opcode = 5302,
10319 .operands = &.{
10320 .{ .kind = .id_result_type, .quantifier = .required },
10321 .{ .kind = .id_result, .quantifier = .required },
10322 .{ .kind = .id_ref, .quantifier = .required },
10323 .{ .kind = .id_ref, .quantifier = .required },
10324 .{ .kind = .memory_access, .quantifier = .optional },
10325 },
10326 },
10327 .{
10328 .name = "OpCooperativeVectorStoreNV",
10329 .opcode = 5303,
10330 .operands = &.{
10331 .{ .kind = .id_ref, .quantifier = .required },
10332 .{ .kind = .id_ref, .quantifier = .required },
10333 .{ .kind = .id_ref, .quantifier = .required },
10334 .{ .kind = .memory_access, .quantifier = .optional },
10335 },
10336 },
10337 .{
10338 .name = "OpReportIntersectionKHR",
10339 .opcode = 5334,
10340 .operands = &.{
10341 .{ .kind = .id_result_type, .quantifier = .required },
10342 .{ .kind = .id_result, .quantifier = .required },
10343 .{ .kind = .id_ref, .quantifier = .required },
10344 .{ .kind = .id_ref, .quantifier = .required },
10345 },
10346 },
10347 .{
10348 .name = "OpIgnoreIntersectionNV",
10349 .opcode = 5335,
10350 .operands = &.{},
10351 },
10352 .{
10353 .name = "OpTerminateRayNV",
10354 .opcode = 5336,
10355 .operands = &.{},
10356 },
10357 .{
10358 .name = "OpTraceNV",
10359 .opcode = 5337,
10360 .operands = &.{
10361 .{ .kind = .id_ref, .quantifier = .required },
10362 .{ .kind = .id_ref, .quantifier = .required },
10363 .{ .kind = .id_ref, .quantifier = .required },
10364 .{ .kind = .id_ref, .quantifier = .required },
10365 .{ .kind = .id_ref, .quantifier = .required },
10366 .{ .kind = .id_ref, .quantifier = .required },
10367 .{ .kind = .id_ref, .quantifier = .required },
10368 .{ .kind = .id_ref, .quantifier = .required },
10369 .{ .kind = .id_ref, .quantifier = .required },
10370 .{ .kind = .id_ref, .quantifier = .required },
10371 .{ .kind = .id_ref, .quantifier = .required },
10372 },
10373 },
10374 .{
10375 .name = "OpTraceMotionNV",
10376 .opcode = 5338,
10377 .operands = &.{
10378 .{ .kind = .id_ref, .quantifier = .required },
10379 .{ .kind = .id_ref, .quantifier = .required },
10380 .{ .kind = .id_ref, .quantifier = .required },
10381 .{ .kind = .id_ref, .quantifier = .required },
10382 .{ .kind = .id_ref, .quantifier = .required },
10383 .{ .kind = .id_ref, .quantifier = .required },
10384 .{ .kind = .id_ref, .quantifier = .required },
10385 .{ .kind = .id_ref, .quantifier = .required },
10386 .{ .kind = .id_ref, .quantifier = .required },
10387 .{ .kind = .id_ref, .quantifier = .required },
10388 .{ .kind = .id_ref, .quantifier = .required },
10389 .{ .kind = .id_ref, .quantifier = .required },
10390 },
10391 },
10392 .{
10393 .name = "OpTraceRayMotionNV",
10394 .opcode = 5339,
10395 .operands = &.{
10396 .{ .kind = .id_ref, .quantifier = .required },
10397 .{ .kind = .id_ref, .quantifier = .required },
10398 .{ .kind = .id_ref, .quantifier = .required },
10399 .{ .kind = .id_ref, .quantifier = .required },
10400 .{ .kind = .id_ref, .quantifier = .required },
10401 .{ .kind = .id_ref, .quantifier = .required },
10402 .{ .kind = .id_ref, .quantifier = .required },
10403 .{ .kind = .id_ref, .quantifier = .required },
10404 .{ .kind = .id_ref, .quantifier = .required },
10405 .{ .kind = .id_ref, .quantifier = .required },
10406 .{ .kind = .id_ref, .quantifier = .required },
10407 .{ .kind = .id_ref, .quantifier = .required },
10408 },
10409 },
10410 .{
10411 .name = "OpRayQueryGetIntersectionTriangleVertexPositionsKHR",
10412 .opcode = 5340,
10413 .operands = &.{
10414 .{ .kind = .id_result_type, .quantifier = .required },
10415 .{ .kind = .id_result, .quantifier = .required },
10416 .{ .kind = .id_ref, .quantifier = .required },
10417 .{ .kind = .id_ref, .quantifier = .required },
10418 },
10419 },
10420 .{
10421 .name = "OpTypeAccelerationStructureKHR",
10422 .opcode = 5341,
10423 .operands = &.{
10424 .{ .kind = .id_result, .quantifier = .required },
10425 },
10426 },
10427 .{
10428 .name = "OpExecuteCallableNV",
10429 .opcode = 5344,
10430 .operands = &.{
10431 .{ .kind = .id_ref, .quantifier = .required },
10432 .{ .kind = .id_ref, .quantifier = .required },
10433 },
10434 },
10435 .{
10436 .name = "OpRayQueryGetClusterIdNV",
10437 .opcode = 5345,
10438 .operands = &.{
10439 .{ .kind = .id_result_type, .quantifier = .required },
10440 .{ .kind = .id_result, .quantifier = .required },
10441 .{ .kind = .id_ref, .quantifier = .required },
10442 .{ .kind = .id_ref, .quantifier = .required },
10443 },
10444 },
10445 .{
10446 .name = "OpHitObjectGetClusterIdNV",
10447 .opcode = 5346,
10448 .operands = &.{
10449 .{ .kind = .id_result_type, .quantifier = .required },
10450 .{ .kind = .id_result, .quantifier = .required },
10451 .{ .kind = .id_ref, .quantifier = .required },
10452 },
10453 },
10454 .{
10455 .name = "OpTypeCooperativeMatrixNV",
10456 .opcode = 5358,
10457 .operands = &.{
10458 .{ .kind = .id_result, .quantifier = .required },
10459 .{ .kind = .id_ref, .quantifier = .required },
10460 .{ .kind = .id_scope, .quantifier = .required },
10461 .{ .kind = .id_ref, .quantifier = .required },
10462 .{ .kind = .id_ref, .quantifier = .required },
10463 },
10464 },
10465 .{
10466 .name = "OpCooperativeMatrixLoadNV",
10467 .opcode = 5359,
10468 .operands = &.{
10469 .{ .kind = .id_result_type, .quantifier = .required },
10470 .{ .kind = .id_result, .quantifier = .required },
10471 .{ .kind = .id_ref, .quantifier = .required },
10472 .{ .kind = .id_ref, .quantifier = .required },
10473 .{ .kind = .id_ref, .quantifier = .required },
10474 .{ .kind = .memory_access, .quantifier = .optional },
10475 },
10476 },
10477 .{
10478 .name = "OpCooperativeMatrixStoreNV",
10479 .opcode = 5360,
10480 .operands = &.{
10481 .{ .kind = .id_ref, .quantifier = .required },
10482 .{ .kind = .id_ref, .quantifier = .required },
10483 .{ .kind = .id_ref, .quantifier = .required },
10484 .{ .kind = .id_ref, .quantifier = .required },
10485 .{ .kind = .memory_access, .quantifier = .optional },
10486 },
10487 },
10488 .{
10489 .name = "OpCooperativeMatrixMulAddNV",
10490 .opcode = 5361,
10491 .operands = &.{
10492 .{ .kind = .id_result_type, .quantifier = .required },
10493 .{ .kind = .id_result, .quantifier = .required },
10494 .{ .kind = .id_ref, .quantifier = .required },
10495 .{ .kind = .id_ref, .quantifier = .required },
10496 .{ .kind = .id_ref, .quantifier = .required },
10497 },
10498 },
10499 .{
10500 .name = "OpCooperativeMatrixLengthNV",
10501 .opcode = 5362,
10502 .operands = &.{
10503 .{ .kind = .id_result_type, .quantifier = .required },
10504 .{ .kind = .id_result, .quantifier = .required },
10505 .{ .kind = .id_ref, .quantifier = .required },
10506 },
10507 },
10508 .{
10509 .name = "OpBeginInvocationInterlockEXT",
10510 .opcode = 5364,
10511 .operands = &.{},
10512 },
10513 .{
10514 .name = "OpEndInvocationInterlockEXT",
10515 .opcode = 5365,
10516 .operands = &.{},
10517 },
10518 .{
10519 .name = "OpCooperativeMatrixReduceNV",
10520 .opcode = 5366,
10521 .operands = &.{
10522 .{ .kind = .id_result_type, .quantifier = .required },
10523 .{ .kind = .id_result, .quantifier = .required },
10524 .{ .kind = .id_ref, .quantifier = .required },
10525 .{ .kind = .cooperative_matrix_reduce, .quantifier = .required },
10526 .{ .kind = .id_ref, .quantifier = .required },
10527 },
10528 },
10529 .{
10530 .name = "OpCooperativeMatrixLoadTensorNV",
10531 .opcode = 5367,
10532 .operands = &.{
10533 .{ .kind = .id_result_type, .quantifier = .required },
10534 .{ .kind = .id_result, .quantifier = .required },
10535 .{ .kind = .id_ref, .quantifier = .required },
10536 .{ .kind = .id_ref, .quantifier = .required },
10537 .{ .kind = .id_ref, .quantifier = .required },
10538 .{ .kind = .memory_access, .quantifier = .required },
10539 .{ .kind = .tensor_addressing_operands, .quantifier = .required },
10540 },
10541 },
10542 .{
10543 .name = "OpCooperativeMatrixStoreTensorNV",
10544 .opcode = 5368,
10545 .operands = &.{
10546 .{ .kind = .id_ref, .quantifier = .required },
10547 .{ .kind = .id_ref, .quantifier = .required },
10548 .{ .kind = .id_ref, .quantifier = .required },
10549 .{ .kind = .memory_access, .quantifier = .required },
10550 .{ .kind = .tensor_addressing_operands, .quantifier = .required },
10551 },
10552 },
10553 .{
10554 .name = "OpCooperativeMatrixPerElementOpNV",
10555 .opcode = 5369,
10556 .operands = &.{
10557 .{ .kind = .id_result_type, .quantifier = .required },
10558 .{ .kind = .id_result, .quantifier = .required },
10559 .{ .kind = .id_ref, .quantifier = .required },
10560 .{ .kind = .id_ref, .quantifier = .required },
10561 .{ .kind = .id_ref, .quantifier = .variadic },
10562 },
10563 },
10564 .{
10565 .name = "OpTypeTensorLayoutNV",
10566 .opcode = 5370,
10567 .operands = &.{
10568 .{ .kind = .id_result, .quantifier = .required },
10569 .{ .kind = .id_ref, .quantifier = .required },
10570 .{ .kind = .id_ref, .quantifier = .required },
10571 },
10572 },
10573 .{
10574 .name = "OpTypeTensorViewNV",
10575 .opcode = 5371,
10576 .operands = &.{
10577 .{ .kind = .id_result, .quantifier = .required },
10578 .{ .kind = .id_ref, .quantifier = .required },
10579 .{ .kind = .id_ref, .quantifier = .required },
10580 .{ .kind = .id_ref, .quantifier = .variadic },
10581 },
10582 },
10583 .{
10584 .name = "OpCreateTensorLayoutNV",
10585 .opcode = 5372,
10586 .operands = &.{
10587 .{ .kind = .id_result_type, .quantifier = .required },
10588 .{ .kind = .id_result, .quantifier = .required },
10589 },
10590 },
10591 .{
10592 .name = "OpTensorLayoutSetDimensionNV",
10593 .opcode = 5373,
10594 .operands = &.{
10595 .{ .kind = .id_result_type, .quantifier = .required },
10596 .{ .kind = .id_result, .quantifier = .required },
10597 .{ .kind = .id_ref, .quantifier = .required },
10598 .{ .kind = .id_ref, .quantifier = .variadic },
10599 },
10600 },
10601 .{
10602 .name = "OpTensorLayoutSetStrideNV",
10603 .opcode = 5374,
10604 .operands = &.{
10605 .{ .kind = .id_result_type, .quantifier = .required },
10606 .{ .kind = .id_result, .quantifier = .required },
10607 .{ .kind = .id_ref, .quantifier = .required },
10608 .{ .kind = .id_ref, .quantifier = .variadic },
10609 },
10610 },
10611 .{
10612 .name = "OpTensorLayoutSliceNV",
10613 .opcode = 5375,
10614 .operands = &.{
10615 .{ .kind = .id_result_type, .quantifier = .required },
10616 .{ .kind = .id_result, .quantifier = .required },
10617 .{ .kind = .id_ref, .quantifier = .required },
10618 .{ .kind = .id_ref, .quantifier = .variadic },
10619 },
10620 },
10621 .{
10622 .name = "OpTensorLayoutSetClampValueNV",
10623 .opcode = 5376,
10624 .operands = &.{
10625 .{ .kind = .id_result_type, .quantifier = .required },
10626 .{ .kind = .id_result, .quantifier = .required },
10627 .{ .kind = .id_ref, .quantifier = .required },
10628 .{ .kind = .id_ref, .quantifier = .required },
10629 },
10630 },
10631 .{
10632 .name = "OpCreateTensorViewNV",
10633 .opcode = 5377,
10634 .operands = &.{
10635 .{ .kind = .id_result_type, .quantifier = .required },
10636 .{ .kind = .id_result, .quantifier = .required },
10637 },
10638 },
10639 .{
10640 .name = "OpTensorViewSetDimensionNV",
10641 .opcode = 5378,
10642 .operands = &.{
10643 .{ .kind = .id_result_type, .quantifier = .required },
10644 .{ .kind = .id_result, .quantifier = .required },
10645 .{ .kind = .id_ref, .quantifier = .required },
10646 .{ .kind = .id_ref, .quantifier = .variadic },
10647 },
10648 },
10649 .{
10650 .name = "OpTensorViewSetStrideNV",
10651 .opcode = 5379,
10652 .operands = &.{
10653 .{ .kind = .id_result_type, .quantifier = .required },
10654 .{ .kind = .id_result, .quantifier = .required },
10655 .{ .kind = .id_ref, .quantifier = .required },
10656 .{ .kind = .id_ref, .quantifier = .variadic },
10657 },
10658 },
10659 .{
10660 .name = "OpDemoteToHelperInvocation",
10661 .opcode = 5380,
10662 .operands = &.{},
10663 },
10664 .{
10665 .name = "OpIsHelperInvocationEXT",
10666 .opcode = 5381,
10667 .operands = &.{
10668 .{ .kind = .id_result_type, .quantifier = .required },
10669 .{ .kind = .id_result, .quantifier = .required },
10670 },
10671 },
10672 .{
10673 .name = "OpTensorViewSetClipNV",
10674 .opcode = 5382,
10675 .operands = &.{
10676 .{ .kind = .id_result_type, .quantifier = .required },
10677 .{ .kind = .id_result, .quantifier = .required },
10678 .{ .kind = .id_ref, .quantifier = .required },
10679 .{ .kind = .id_ref, .quantifier = .required },
10680 .{ .kind = .id_ref, .quantifier = .required },
10681 .{ .kind = .id_ref, .quantifier = .required },
10682 .{ .kind = .id_ref, .quantifier = .required },
10683 },
10684 },
10685 .{
10686 .name = "OpTensorLayoutSetBlockSizeNV",
10687 .opcode = 5384,
10688 .operands = &.{
10689 .{ .kind = .id_result_type, .quantifier = .required },
10690 .{ .kind = .id_result, .quantifier = .required },
10691 .{ .kind = .id_ref, .quantifier = .required },
10692 .{ .kind = .id_ref, .quantifier = .variadic },
10693 },
10694 },
10695 .{
10696 .name = "OpCooperativeMatrixTransposeNV",
10697 .opcode = 5390,
10698 .operands = &.{
10699 .{ .kind = .id_result_type, .quantifier = .required },
10700 .{ .kind = .id_result, .quantifier = .required },
10701 .{ .kind = .id_ref, .quantifier = .required },
10702 },
10703 },
10704 .{
10705 .name = "OpConvertUToImageNV",
10706 .opcode = 5391,
10707 .operands = &.{
10708 .{ .kind = .id_result_type, .quantifier = .required },
10709 .{ .kind = .id_result, .quantifier = .required },
10710 .{ .kind = .id_ref, .quantifier = .required },
10711 },
10712 },
10713 .{
10714 .name = "OpConvertUToSamplerNV",
10715 .opcode = 5392,
10716 .operands = &.{
10717 .{ .kind = .id_result_type, .quantifier = .required },
10718 .{ .kind = .id_result, .quantifier = .required },
10719 .{ .kind = .id_ref, .quantifier = .required },
10720 },
10721 },
10722 .{
10723 .name = "OpConvertImageToUNV",
10724 .opcode = 5393,
10725 .operands = &.{
10726 .{ .kind = .id_result_type, .quantifier = .required },
10727 .{ .kind = .id_result, .quantifier = .required },
10728 .{ .kind = .id_ref, .quantifier = .required },
10729 },
10730 },
10731 .{
10732 .name = "OpConvertSamplerToUNV",
10733 .opcode = 5394,
10734 .operands = &.{
10735 .{ .kind = .id_result_type, .quantifier = .required },
10736 .{ .kind = .id_result, .quantifier = .required },
10737 .{ .kind = .id_ref, .quantifier = .required },
10738 },
10739 },
10740 .{
10741 .name = "OpConvertUToSampledImageNV",
10742 .opcode = 5395,
10743 .operands = &.{
10744 .{ .kind = .id_result_type, .quantifier = .required },
10745 .{ .kind = .id_result, .quantifier = .required },
10746 .{ .kind = .id_ref, .quantifier = .required },
10747 },
10748 },
10749 .{
10750 .name = "OpConvertSampledImageToUNV",
10751 .opcode = 5396,
10752 .operands = &.{
10753 .{ .kind = .id_result_type, .quantifier = .required },
10754 .{ .kind = .id_result, .quantifier = .required },
10755 .{ .kind = .id_ref, .quantifier = .required },
10756 },
10757 },
10758 .{
10759 .name = "OpSamplerImageAddressingModeNV",
10760 .opcode = 5397,
10761 .operands = &.{
10762 .{ .kind = .literal_integer, .quantifier = .required },
10763 },
10764 },
10765 .{
10766 .name = "OpRawAccessChainNV",
10767 .opcode = 5398,
10768 .operands = &.{
10769 .{ .kind = .id_result_type, .quantifier = .required },
10770 .{ .kind = .id_result, .quantifier = .required },
10771 .{ .kind = .id_ref, .quantifier = .required },
10772 .{ .kind = .id_ref, .quantifier = .required },
10773 .{ .kind = .id_ref, .quantifier = .required },
10774 .{ .kind = .id_ref, .quantifier = .required },
10775 .{ .kind = .raw_access_chain_operands, .quantifier = .optional },
10776 },
10777 },
10778 .{
10779 .name = "OpRayQueryGetIntersectionSpherePositionNV",
10780 .opcode = 5427,
10781 .operands = &.{
10782 .{ .kind = .id_result_type, .quantifier = .required },
10783 .{ .kind = .id_result, .quantifier = .required },
10784 .{ .kind = .id_ref, .quantifier = .required },
10785 .{ .kind = .id_ref, .quantifier = .required },
10786 },
10787 },
10788 .{
10789 .name = "OpRayQueryGetIntersectionSphereRadiusNV",
10790 .opcode = 5428,
10791 .operands = &.{
10792 .{ .kind = .id_result_type, .quantifier = .required },
10793 .{ .kind = .id_result, .quantifier = .required },
10794 .{ .kind = .id_ref, .quantifier = .required },
10795 .{ .kind = .id_ref, .quantifier = .required },
10796 },
10797 },
10798 .{
10799 .name = "OpRayQueryGetIntersectionLSSPositionsNV",
10800 .opcode = 5429,
10801 .operands = &.{
10802 .{ .kind = .id_result_type, .quantifier = .required },
10803 .{ .kind = .id_result, .quantifier = .required },
10804 .{ .kind = .id_ref, .quantifier = .required },
10805 .{ .kind = .id_ref, .quantifier = .required },
10806 },
10807 },
10808 .{
10809 .name = "OpRayQueryGetIntersectionLSSRadiiNV",
10810 .opcode = 5430,
10811 .operands = &.{
10812 .{ .kind = .id_result_type, .quantifier = .required },
10813 .{ .kind = .id_result, .quantifier = .required },
10814 .{ .kind = .id_ref, .quantifier = .required },
10815 .{ .kind = .id_ref, .quantifier = .required },
10816 },
10817 },
10818 .{
10819 .name = "OpRayQueryGetIntersectionLSSHitValueNV",
10820 .opcode = 5431,
10821 .operands = &.{
10822 .{ .kind = .id_result_type, .quantifier = .required },
10823 .{ .kind = .id_result, .quantifier = .required },
10824 .{ .kind = .id_ref, .quantifier = .required },
10825 .{ .kind = .id_ref, .quantifier = .required },
10826 },
10827 },
10828 .{
10829 .name = "OpHitObjectGetSpherePositionNV",
10830 .opcode = 5432,
10831 .operands = &.{
10832 .{ .kind = .id_result_type, .quantifier = .required },
10833 .{ .kind = .id_result, .quantifier = .required },
10834 .{ .kind = .id_ref, .quantifier = .required },
10835 },
10836 },
10837 .{
10838 .name = "OpHitObjectGetSphereRadiusNV",
10839 .opcode = 5433,
10840 .operands = &.{
10841 .{ .kind = .id_result_type, .quantifier = .required },
10842 .{ .kind = .id_result, .quantifier = .required },
10843 .{ .kind = .id_ref, .quantifier = .required },
10844 },
10845 },
10846 .{
10847 .name = "OpHitObjectGetLSSPositionsNV",
10848 .opcode = 5434,
10849 .operands = &.{
10850 .{ .kind = .id_result_type, .quantifier = .required },
10851 .{ .kind = .id_result, .quantifier = .required },
10852 .{ .kind = .id_ref, .quantifier = .required },
10853 },
10854 },
10855 .{
10856 .name = "OpHitObjectGetLSSRadiiNV",
10857 .opcode = 5435,
10858 .operands = &.{
10859 .{ .kind = .id_result_type, .quantifier = .required },
10860 .{ .kind = .id_result, .quantifier = .required },
10861 .{ .kind = .id_ref, .quantifier = .required },
10862 },
10863 },
10864 .{
10865 .name = "OpHitObjectIsSphereHitNV",
10866 .opcode = 5436,
10867 .operands = &.{
10868 .{ .kind = .id_result_type, .quantifier = .required },
10869 .{ .kind = .id_result, .quantifier = .required },
10870 .{ .kind = .id_ref, .quantifier = .required },
10871 },
10872 },
10873 .{
10874 .name = "OpHitObjectIsLSSHitNV",
10875 .opcode = 5437,
10876 .operands = &.{
10877 .{ .kind = .id_result_type, .quantifier = .required },
10878 .{ .kind = .id_result, .quantifier = .required },
10879 .{ .kind = .id_ref, .quantifier = .required },
10880 },
10881 },
10882 .{
10883 .name = "OpRayQueryIsSphereHitNV",
10884 .opcode = 5438,
10885 .operands = &.{
10886 .{ .kind = .id_result_type, .quantifier = .required },
10887 .{ .kind = .id_result, .quantifier = .required },
10888 .{ .kind = .id_ref, .quantifier = .required },
10889 .{ .kind = .id_ref, .quantifier = .required },
10890 },
10891 },
10892 .{
10893 .name = "OpRayQueryIsLSSHitNV",
10894 .opcode = 5439,
10895 .operands = &.{
10896 .{ .kind = .id_result_type, .quantifier = .required },
10897 .{ .kind = .id_result, .quantifier = .required },
10898 .{ .kind = .id_ref, .quantifier = .required },
10899 .{ .kind = .id_ref, .quantifier = .required },
10900 },
10901 },
10902 .{
10903 .name = "OpSubgroupShuffleINTEL",
10904 .opcode = 5571,
10905 .operands = &.{
10906 .{ .kind = .id_result_type, .quantifier = .required },
10907 .{ .kind = .id_result, .quantifier = .required },
10908 .{ .kind = .id_ref, .quantifier = .required },
10909 .{ .kind = .id_ref, .quantifier = .required },
10910 },
10911 },
10912 .{
10913 .name = "OpSubgroupShuffleDownINTEL",
10914 .opcode = 5572,
10915 .operands = &.{
10916 .{ .kind = .id_result_type, .quantifier = .required },
10917 .{ .kind = .id_result, .quantifier = .required },
10918 .{ .kind = .id_ref, .quantifier = .required },
10919 .{ .kind = .id_ref, .quantifier = .required },
10920 .{ .kind = .id_ref, .quantifier = .required },
10921 },
10922 },
10923 .{
10924 .name = "OpSubgroupShuffleUpINTEL",
10925 .opcode = 5573,
10926 .operands = &.{
10927 .{ .kind = .id_result_type, .quantifier = .required },
10928 .{ .kind = .id_result, .quantifier = .required },
10929 .{ .kind = .id_ref, .quantifier = .required },
10930 .{ .kind = .id_ref, .quantifier = .required },
10931 .{ .kind = .id_ref, .quantifier = .required },
10932 },
10933 },
10934 .{
10935 .name = "OpSubgroupShuffleXorINTEL",
10936 .opcode = 5574,
10937 .operands = &.{
10938 .{ .kind = .id_result_type, .quantifier = .required },
10939 .{ .kind = .id_result, .quantifier = .required },
10940 .{ .kind = .id_ref, .quantifier = .required },
10941 .{ .kind = .id_ref, .quantifier = .required },
10942 },
10943 },
10944 .{
10945 .name = "OpSubgroupBlockReadINTEL",
10946 .opcode = 5575,
10947 .operands = &.{
10948 .{ .kind = .id_result_type, .quantifier = .required },
10949 .{ .kind = .id_result, .quantifier = .required },
10950 .{ .kind = .id_ref, .quantifier = .required },
10951 },
10952 },
10953 .{
10954 .name = "OpSubgroupBlockWriteINTEL",
10955 .opcode = 5576,
10956 .operands = &.{
10957 .{ .kind = .id_ref, .quantifier = .required },
10958 .{ .kind = .id_ref, .quantifier = .required },
10959 },
10960 },
10961 .{
10962 .name = "OpSubgroupImageBlockReadINTEL",
10963 .opcode = 5577,
10964 .operands = &.{
10965 .{ .kind = .id_result_type, .quantifier = .required },
10966 .{ .kind = .id_result, .quantifier = .required },
10967 .{ .kind = .id_ref, .quantifier = .required },
10968 .{ .kind = .id_ref, .quantifier = .required },
10969 },
10970 },
10971 .{
10972 .name = "OpSubgroupImageBlockWriteINTEL",
10973 .opcode = 5578,
10974 .operands = &.{
10975 .{ .kind = .id_ref, .quantifier = .required },
10976 .{ .kind = .id_ref, .quantifier = .required },
10977 .{ .kind = .id_ref, .quantifier = .required },
10978 },
10979 },
10980 .{
10981 .name = "OpSubgroupImageMediaBlockReadINTEL",
10982 .opcode = 5580,
10983 .operands = &.{
10984 .{ .kind = .id_result_type, .quantifier = .required },
10985 .{ .kind = .id_result, .quantifier = .required },
10986 .{ .kind = .id_ref, .quantifier = .required },
10987 .{ .kind = .id_ref, .quantifier = .required },
10988 .{ .kind = .id_ref, .quantifier = .required },
10989 .{ .kind = .id_ref, .quantifier = .required },
10990 },
10991 },
10992 .{
10993 .name = "OpSubgroupImageMediaBlockWriteINTEL",
10994 .opcode = 5581,
10995 .operands = &.{
10996 .{ .kind = .id_ref, .quantifier = .required },
10997 .{ .kind = .id_ref, .quantifier = .required },
10998 .{ .kind = .id_ref, .quantifier = .required },
10999 .{ .kind = .id_ref, .quantifier = .required },
11000 .{ .kind = .id_ref, .quantifier = .required },
11001 },
11002 },
11003 .{
11004 .name = "OpUCountLeadingZerosINTEL",
11005 .opcode = 5585,
11006 .operands = &.{
11007 .{ .kind = .id_result_type, .quantifier = .required },
11008 .{ .kind = .id_result, .quantifier = .required },
11009 .{ .kind = .id_ref, .quantifier = .required },
11010 },
11011 },
11012 .{
11013 .name = "OpUCountTrailingZerosINTEL",
11014 .opcode = 5586,
11015 .operands = &.{
11016 .{ .kind = .id_result_type, .quantifier = .required },
11017 .{ .kind = .id_result, .quantifier = .required },
11018 .{ .kind = .id_ref, .quantifier = .required },
11019 },
11020 },
11021 .{
11022 .name = "OpAbsISubINTEL",
11023 .opcode = 5587,
11024 .operands = &.{
11025 .{ .kind = .id_result_type, .quantifier = .required },
11026 .{ .kind = .id_result, .quantifier = .required },
11027 .{ .kind = .id_ref, .quantifier = .required },
11028 .{ .kind = .id_ref, .quantifier = .required },
11029 },
11030 },
11031 .{
11032 .name = "OpAbsUSubINTEL",
11033 .opcode = 5588,
11034 .operands = &.{
11035 .{ .kind = .id_result_type, .quantifier = .required },
11036 .{ .kind = .id_result, .quantifier = .required },
11037 .{ .kind = .id_ref, .quantifier = .required },
11038 .{ .kind = .id_ref, .quantifier = .required },
11039 },
11040 },
11041 .{
11042 .name = "OpIAddSatINTEL",
11043 .opcode = 5589,
11044 .operands = &.{
11045 .{ .kind = .id_result_type, .quantifier = .required },
11046 .{ .kind = .id_result, .quantifier = .required },
11047 .{ .kind = .id_ref, .quantifier = .required },
11048 .{ .kind = .id_ref, .quantifier = .required },
11049 },
11050 },
11051 .{
11052 .name = "OpUAddSatINTEL",
11053 .opcode = 5590,
11054 .operands = &.{
11055 .{ .kind = .id_result_type, .quantifier = .required },
11056 .{ .kind = .id_result, .quantifier = .required },
11057 .{ .kind = .id_ref, .quantifier = .required },
11058 .{ .kind = .id_ref, .quantifier = .required },
11059 },
11060 },
11061 .{
11062 .name = "OpIAverageINTEL",
11063 .opcode = 5591,
11064 .operands = &.{
11065 .{ .kind = .id_result_type, .quantifier = .required },
11066 .{ .kind = .id_result, .quantifier = .required },
11067 .{ .kind = .id_ref, .quantifier = .required },
11068 .{ .kind = .id_ref, .quantifier = .required },
11069 },
11070 },
11071 .{
11072 .name = "OpUAverageINTEL",
11073 .opcode = 5592,
11074 .operands = &.{
11075 .{ .kind = .id_result_type, .quantifier = .required },
11076 .{ .kind = .id_result, .quantifier = .required },
11077 .{ .kind = .id_ref, .quantifier = .required },
11078 .{ .kind = .id_ref, .quantifier = .required },
11079 },
11080 },
11081 .{
11082 .name = "OpIAverageRoundedINTEL",
11083 .opcode = 5593,
11084 .operands = &.{
11085 .{ .kind = .id_result_type, .quantifier = .required },
11086 .{ .kind = .id_result, .quantifier = .required },
11087 .{ .kind = .id_ref, .quantifier = .required },
11088 .{ .kind = .id_ref, .quantifier = .required },
11089 },
11090 },
11091 .{
11092 .name = "OpUAverageRoundedINTEL",
11093 .opcode = 5594,
11094 .operands = &.{
11095 .{ .kind = .id_result_type, .quantifier = .required },
11096 .{ .kind = .id_result, .quantifier = .required },
11097 .{ .kind = .id_ref, .quantifier = .required },
11098 .{ .kind = .id_ref, .quantifier = .required },
11099 },
11100 },
11101 .{
11102 .name = "OpISubSatINTEL",
11103 .opcode = 5595,
11104 .operands = &.{
11105 .{ .kind = .id_result_type, .quantifier = .required },
11106 .{ .kind = .id_result, .quantifier = .required },
11107 .{ .kind = .id_ref, .quantifier = .required },
11108 .{ .kind = .id_ref, .quantifier = .required },
11109 },
11110 },
11111 .{
11112 .name = "OpUSubSatINTEL",
11113 .opcode = 5596,
11114 .operands = &.{
11115 .{ .kind = .id_result_type, .quantifier = .required },
11116 .{ .kind = .id_result, .quantifier = .required },
11117 .{ .kind = .id_ref, .quantifier = .required },
11118 .{ .kind = .id_ref, .quantifier = .required },
11119 },
11120 },
11121 .{
11122 .name = "OpIMul32x16INTEL",
11123 .opcode = 5597,
11124 .operands = &.{
11125 .{ .kind = .id_result_type, .quantifier = .required },
11126 .{ .kind = .id_result, .quantifier = .required },
11127 .{ .kind = .id_ref, .quantifier = .required },
11128 .{ .kind = .id_ref, .quantifier = .required },
11129 },
11130 },
11131 .{
11132 .name = "OpUMul32x16INTEL",
11133 .opcode = 5598,
11134 .operands = &.{
11135 .{ .kind = .id_result_type, .quantifier = .required },
11136 .{ .kind = .id_result, .quantifier = .required },
11137 .{ .kind = .id_ref, .quantifier = .required },
11138 .{ .kind = .id_ref, .quantifier = .required },
11139 },
11140 },
11141 .{
11142 .name = "OpConstantFunctionPointerINTEL",
11143 .opcode = 5600,
11144 .operands = &.{
11145 .{ .kind = .id_result_type, .quantifier = .required },
11146 .{ .kind = .id_result, .quantifier = .required },
11147 .{ .kind = .id_ref, .quantifier = .required },
11148 },
11149 },
11150 .{
11151 .name = "OpFunctionPointerCallINTEL",
11152 .opcode = 5601,
11153 .operands = &.{
11154 .{ .kind = .id_result_type, .quantifier = .required },
11155 .{ .kind = .id_result, .quantifier = .required },
11156 .{ .kind = .id_ref, .quantifier = .variadic },
11157 },
11158 },
11159 .{
11160 .name = "OpAsmTargetINTEL",
11161 .opcode = 5609,
11162 .operands = &.{
11163 .{ .kind = .id_result, .quantifier = .required },
11164 .{ .kind = .literal_string, .quantifier = .required },
11165 },
11166 },
11167 .{
11168 .name = "OpAsmINTEL",
11169 .opcode = 5610,
11170 .operands = &.{
11171 .{ .kind = .id_result_type, .quantifier = .required },
11172 .{ .kind = .id_result, .quantifier = .required },
11173 .{ .kind = .id_ref, .quantifier = .required },
11174 .{ .kind = .id_ref, .quantifier = .required },
11175 .{ .kind = .literal_string, .quantifier = .required },
11176 .{ .kind = .literal_string, .quantifier = .required },
11177 },
11178 },
11179 .{
11180 .name = "OpAsmCallINTEL",
11181 .opcode = 5611,
11182 .operands = &.{
11183 .{ .kind = .id_result_type, .quantifier = .required },
11184 .{ .kind = .id_result, .quantifier = .required },
11185 .{ .kind = .id_ref, .quantifier = .required },
11186 .{ .kind = .id_ref, .quantifier = .variadic },
11187 },
11188 },
11189 .{
11190 .name = "OpAtomicFMinEXT",
11191 .opcode = 5614,
11192 .operands = &.{
11193 .{ .kind = .id_result_type, .quantifier = .required },
11194 .{ .kind = .id_result, .quantifier = .required },
11195 .{ .kind = .id_ref, .quantifier = .required },
11196 .{ .kind = .id_scope, .quantifier = .required },
11197 .{ .kind = .id_memory_semantics, .quantifier = .required },
11198 .{ .kind = .id_ref, .quantifier = .required },
11199 },
11200 },
11201 .{
11202 .name = "OpAtomicFMaxEXT",
11203 .opcode = 5615,
11204 .operands = &.{
11205 .{ .kind = .id_result_type, .quantifier = .required },
11206 .{ .kind = .id_result, .quantifier = .required },
11207 .{ .kind = .id_ref, .quantifier = .required },
11208 .{ .kind = .id_scope, .quantifier = .required },
11209 .{ .kind = .id_memory_semantics, .quantifier = .required },
11210 .{ .kind = .id_ref, .quantifier = .required },
11211 },
11212 },
11213 .{
11214 .name = "OpAssumeTrueKHR",
11215 .opcode = 5630,
11216 .operands = &.{
11217 .{ .kind = .id_ref, .quantifier = .required },
11218 },
11219 },
11220 .{
11221 .name = "OpExpectKHR",
11222 .opcode = 5631,
11223 .operands = &.{
11224 .{ .kind = .id_result_type, .quantifier = .required },
11225 .{ .kind = .id_result, .quantifier = .required },
11226 .{ .kind = .id_ref, .quantifier = .required },
11227 .{ .kind = .id_ref, .quantifier = .required },
11228 },
11229 },
11230 .{
11231 .name = "OpDecorateString",
11232 .opcode = 5632,
11233 .operands = &.{
11234 .{ .kind = .id_ref, .quantifier = .required },
11235 .{ .kind = .decoration, .quantifier = .required },
11236 },
11237 },
11238 .{
11239 .name = "OpMemberDecorateString",
11240 .opcode = 5633,
11241 .operands = &.{
11242 .{ .kind = .id_ref, .quantifier = .required },
11243 .{ .kind = .literal_integer, .quantifier = .required },
11244 .{ .kind = .decoration, .quantifier = .required },
11245 },
11246 },
11247 .{
11248 .name = "OpVmeImageINTEL",
11249 .opcode = 5699,
11250 .operands = &.{
11251 .{ .kind = .id_result_type, .quantifier = .required },
11252 .{ .kind = .id_result, .quantifier = .required },
11253 .{ .kind = .id_ref, .quantifier = .required },
11254 .{ .kind = .id_ref, .quantifier = .required },
11255 },
11256 },
11257 .{
11258 .name = "OpTypeVmeImageINTEL",
11259 .opcode = 5700,
11260 .operands = &.{
11261 .{ .kind = .id_result, .quantifier = .required },
11262 .{ .kind = .id_ref, .quantifier = .required },
11263 },
11264 },
11265 .{
11266 .name = "OpTypeAvcImePayloadINTEL",
11267 .opcode = 5701,
11268 .operands = &.{
11269 .{ .kind = .id_result, .quantifier = .required },
11270 },
11271 },
11272 .{
11273 .name = "OpTypeAvcRefPayloadINTEL",
11274 .opcode = 5702,
11275 .operands = &.{
11276 .{ .kind = .id_result, .quantifier = .required },
11277 },
11278 },
11279 .{
11280 .name = "OpTypeAvcSicPayloadINTEL",
11281 .opcode = 5703,
11282 .operands = &.{
11283 .{ .kind = .id_result, .quantifier = .required },
11284 },
11285 },
11286 .{
11287 .name = "OpTypeAvcMcePayloadINTEL",
11288 .opcode = 5704,
11289 .operands = &.{
11290 .{ .kind = .id_result, .quantifier = .required },
11291 },
11292 },
11293 .{
11294 .name = "OpTypeAvcMceResultINTEL",
11295 .opcode = 5705,
11296 .operands = &.{
11297 .{ .kind = .id_result, .quantifier = .required },
11298 },
11299 },
11300 .{
11301 .name = "OpTypeAvcImeResultINTEL",
11302 .opcode = 5706,
11303 .operands = &.{
11304 .{ .kind = .id_result, .quantifier = .required },
11305 },
11306 },
11307 .{
11308 .name = "OpTypeAvcImeResultSingleReferenceStreamoutINTEL",
11309 .opcode = 5707,
11310 .operands = &.{
11311 .{ .kind = .id_result, .quantifier = .required },
11312 },
11313 },
11314 .{
11315 .name = "OpTypeAvcImeResultDualReferenceStreamoutINTEL",
11316 .opcode = 5708,
11317 .operands = &.{
11318 .{ .kind = .id_result, .quantifier = .required },
11319 },
11320 },
11321 .{
11322 .name = "OpTypeAvcImeSingleReferenceStreaminINTEL",
11323 .opcode = 5709,
11324 .operands = &.{
11325 .{ .kind = .id_result, .quantifier = .required },
11326 },
11327 },
11328 .{
11329 .name = "OpTypeAvcImeDualReferenceStreaminINTEL",
11330 .opcode = 5710,
11331 .operands = &.{
11332 .{ .kind = .id_result, .quantifier = .required },
11333 },
11334 },
11335 .{
11336 .name = "OpTypeAvcRefResultINTEL",
11337 .opcode = 5711,
11338 .operands = &.{
11339 .{ .kind = .id_result, .quantifier = .required },
11340 },
11341 },
11342 .{
11343 .name = "OpTypeAvcSicResultINTEL",
11344 .opcode = 5712,
11345 .operands = &.{
11346 .{ .kind = .id_result, .quantifier = .required },
11347 },
11348 },
11349 .{
11350 .name = "OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL",
11351 .opcode = 5713,
11352 .operands = &.{
11353 .{ .kind = .id_result_type, .quantifier = .required },
11354 .{ .kind = .id_result, .quantifier = .required },
11355 .{ .kind = .id_ref, .quantifier = .required },
11356 .{ .kind = .id_ref, .quantifier = .required },
11357 },
11358 },
11359 .{
11360 .name = "OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL",
11361 .opcode = 5714,
11362 .operands = &.{
11363 .{ .kind = .id_result_type, .quantifier = .required },
11364 .{ .kind = .id_result, .quantifier = .required },
11365 .{ .kind = .id_ref, .quantifier = .required },
11366 .{ .kind = .id_ref, .quantifier = .required },
11367 },
11368 },
11369 .{
11370 .name = "OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL",
11371 .opcode = 5715,
11372 .operands = &.{
11373 .{ .kind = .id_result_type, .quantifier = .required },
11374 .{ .kind = .id_result, .quantifier = .required },
11375 .{ .kind = .id_ref, .quantifier = .required },
11376 .{ .kind = .id_ref, .quantifier = .required },
11377 },
11378 },
11379 .{
11380 .name = "OpSubgroupAvcMceSetInterShapePenaltyINTEL",
11381 .opcode = 5716,
11382 .operands = &.{
11383 .{ .kind = .id_result_type, .quantifier = .required },
11384 .{ .kind = .id_result, .quantifier = .required },
11385 .{ .kind = .id_ref, .quantifier = .required },
11386 .{ .kind = .id_ref, .quantifier = .required },
11387 },
11388 },
11389 .{
11390 .name = "OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL",
11391 .opcode = 5717,
11392 .operands = &.{
11393 .{ .kind = .id_result_type, .quantifier = .required },
11394 .{ .kind = .id_result, .quantifier = .required },
11395 .{ .kind = .id_ref, .quantifier = .required },
11396 .{ .kind = .id_ref, .quantifier = .required },
11397 },
11398 },
11399 .{
11400 .name = "OpSubgroupAvcMceSetInterDirectionPenaltyINTEL",
11401 .opcode = 5718,
11402 .operands = &.{
11403 .{ .kind = .id_result_type, .quantifier = .required },
11404 .{ .kind = .id_result, .quantifier = .required },
11405 .{ .kind = .id_ref, .quantifier = .required },
11406 .{ .kind = .id_ref, .quantifier = .required },
11407 },
11408 },
11409 .{
11410 .name = "OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL",
11411 .opcode = 5719,
11412 .operands = &.{
11413 .{ .kind = .id_result_type, .quantifier = .required },
11414 .{ .kind = .id_result, .quantifier = .required },
11415 .{ .kind = .id_ref, .quantifier = .required },
11416 .{ .kind = .id_ref, .quantifier = .required },
11417 },
11418 },
11419 .{
11420 .name = "OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL",
11421 .opcode = 5720,
11422 .operands = &.{
11423 .{ .kind = .id_result_type, .quantifier = .required },
11424 .{ .kind = .id_result, .quantifier = .required },
11425 .{ .kind = .id_ref, .quantifier = .required },
11426 .{ .kind = .id_ref, .quantifier = .required },
11427 },
11428 },
11429 .{
11430 .name = "OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL",
11431 .opcode = 5721,
11432 .operands = &.{
11433 .{ .kind = .id_result_type, .quantifier = .required },
11434 .{ .kind = .id_result, .quantifier = .required },
11435 },
11436 },
11437 .{
11438 .name = "OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL",
11439 .opcode = 5722,
11440 .operands = &.{
11441 .{ .kind = .id_result_type, .quantifier = .required },
11442 .{ .kind = .id_result, .quantifier = .required },
11443 },
11444 },
11445 .{
11446 .name = "OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL",
11447 .opcode = 5723,
11448 .operands = &.{
11449 .{ .kind = .id_result_type, .quantifier = .required },
11450 .{ .kind = .id_result, .quantifier = .required },
11451 },
11452 },
11453 .{
11454 .name = "OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL",
11455 .opcode = 5724,
11456 .operands = &.{
11457 .{ .kind = .id_result_type, .quantifier = .required },
11458 .{ .kind = .id_result, .quantifier = .required },
11459 .{ .kind = .id_ref, .quantifier = .required },
11460 .{ .kind = .id_ref, .quantifier = .required },
11461 .{ .kind = .id_ref, .quantifier = .required },
11462 .{ .kind = .id_ref, .quantifier = .required },
11463 },
11464 },
11465 .{
11466 .name = "OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL",
11467 .opcode = 5725,
11468 .operands = &.{
11469 .{ .kind = .id_result_type, .quantifier = .required },
11470 .{ .kind = .id_result, .quantifier = .required },
11471 .{ .kind = .id_ref, .quantifier = .required },
11472 .{ .kind = .id_ref, .quantifier = .required },
11473 },
11474 },
11475 .{
11476 .name = "OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL",
11477 .opcode = 5726,
11478 .operands = &.{
11479 .{ .kind = .id_result_type, .quantifier = .required },
11480 .{ .kind = .id_result, .quantifier = .required },
11481 },
11482 },
11483 .{
11484 .name = "OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL",
11485 .opcode = 5727,
11486 .operands = &.{
11487 .{ .kind = .id_result_type, .quantifier = .required },
11488 .{ .kind = .id_result, .quantifier = .required },
11489 },
11490 },
11491 .{
11492 .name = "OpSubgroupAvcMceSetAcOnlyHaarINTEL",
11493 .opcode = 5728,
11494 .operands = &.{
11495 .{ .kind = .id_result_type, .quantifier = .required },
11496 .{ .kind = .id_result, .quantifier = .required },
11497 .{ .kind = .id_ref, .quantifier = .required },
11498 },
11499 },
11500 .{
11501 .name = "OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL",
11502 .opcode = 5729,
11503 .operands = &.{
11504 .{ .kind = .id_result_type, .quantifier = .required },
11505 .{ .kind = .id_result, .quantifier = .required },
11506 .{ .kind = .id_ref, .quantifier = .required },
11507 .{ .kind = .id_ref, .quantifier = .required },
11508 },
11509 },
11510 .{
11511 .name = "OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL",
11512 .opcode = 5730,
11513 .operands = &.{
11514 .{ .kind = .id_result_type, .quantifier = .required },
11515 .{ .kind = .id_result, .quantifier = .required },
11516 .{ .kind = .id_ref, .quantifier = .required },
11517 .{ .kind = .id_ref, .quantifier = .required },
11518 },
11519 },
11520 .{
11521 .name = "OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL",
11522 .opcode = 5731,
11523 .operands = &.{
11524 .{ .kind = .id_result_type, .quantifier = .required },
11525 .{ .kind = .id_result, .quantifier = .required },
11526 .{ .kind = .id_ref, .quantifier = .required },
11527 .{ .kind = .id_ref, .quantifier = .required },
11528 .{ .kind = .id_ref, .quantifier = .required },
11529 },
11530 },
11531 .{
11532 .name = "OpSubgroupAvcMceConvertToImePayloadINTEL",
11533 .opcode = 5732,
11534 .operands = &.{
11535 .{ .kind = .id_result_type, .quantifier = .required },
11536 .{ .kind = .id_result, .quantifier = .required },
11537 .{ .kind = .id_ref, .quantifier = .required },
11538 },
11539 },
11540 .{
11541 .name = "OpSubgroupAvcMceConvertToImeResultINTEL",
11542 .opcode = 5733,
11543 .operands = &.{
11544 .{ .kind = .id_result_type, .quantifier = .required },
11545 .{ .kind = .id_result, .quantifier = .required },
11546 .{ .kind = .id_ref, .quantifier = .required },
11547 },
11548 },
11549 .{
11550 .name = "OpSubgroupAvcMceConvertToRefPayloadINTEL",
11551 .opcode = 5734,
11552 .operands = &.{
11553 .{ .kind = .id_result_type, .quantifier = .required },
11554 .{ .kind = .id_result, .quantifier = .required },
11555 .{ .kind = .id_ref, .quantifier = .required },
11556 },
11557 },
11558 .{
11559 .name = "OpSubgroupAvcMceConvertToRefResultINTEL",
11560 .opcode = 5735,
11561 .operands = &.{
11562 .{ .kind = .id_result_type, .quantifier = .required },
11563 .{ .kind = .id_result, .quantifier = .required },
11564 .{ .kind = .id_ref, .quantifier = .required },
11565 },
11566 },
11567 .{
11568 .name = "OpSubgroupAvcMceConvertToSicPayloadINTEL",
11569 .opcode = 5736,
11570 .operands = &.{
11571 .{ .kind = .id_result_type, .quantifier = .required },
11572 .{ .kind = .id_result, .quantifier = .required },
11573 .{ .kind = .id_ref, .quantifier = .required },
11574 },
11575 },
11576 .{
11577 .name = "OpSubgroupAvcMceConvertToSicResultINTEL",
11578 .opcode = 5737,
11579 .operands = &.{
11580 .{ .kind = .id_result_type, .quantifier = .required },
11581 .{ .kind = .id_result, .quantifier = .required },
11582 .{ .kind = .id_ref, .quantifier = .required },
11583 },
11584 },
11585 .{
11586 .name = "OpSubgroupAvcMceGetMotionVectorsINTEL",
11587 .opcode = 5738,
11588 .operands = &.{
11589 .{ .kind = .id_result_type, .quantifier = .required },
11590 .{ .kind = .id_result, .quantifier = .required },
11591 .{ .kind = .id_ref, .quantifier = .required },
11592 },
11593 },
11594 .{
11595 .name = "OpSubgroupAvcMceGetInterDistortionsINTEL",
11596 .opcode = 5739,
11597 .operands = &.{
11598 .{ .kind = .id_result_type, .quantifier = .required },
11599 .{ .kind = .id_result, .quantifier = .required },
11600 .{ .kind = .id_ref, .quantifier = .required },
11601 },
11602 },
11603 .{
11604 .name = "OpSubgroupAvcMceGetBestInterDistortionsINTEL",
11605 .opcode = 5740,
11606 .operands = &.{
11607 .{ .kind = .id_result_type, .quantifier = .required },
11608 .{ .kind = .id_result, .quantifier = .required },
11609 .{ .kind = .id_ref, .quantifier = .required },
11610 },
11611 },
11612 .{
11613 .name = "OpSubgroupAvcMceGetInterMajorShapeINTEL",
11614 .opcode = 5741,
11615 .operands = &.{
11616 .{ .kind = .id_result_type, .quantifier = .required },
11617 .{ .kind = .id_result, .quantifier = .required },
11618 .{ .kind = .id_ref, .quantifier = .required },
11619 },
11620 },
11621 .{
11622 .name = "OpSubgroupAvcMceGetInterMinorShapeINTEL",
11623 .opcode = 5742,
11624 .operands = &.{
11625 .{ .kind = .id_result_type, .quantifier = .required },
11626 .{ .kind = .id_result, .quantifier = .required },
11627 .{ .kind = .id_ref, .quantifier = .required },
11628 },
11629 },
11630 .{
11631 .name = "OpSubgroupAvcMceGetInterDirectionsINTEL",
11632 .opcode = 5743,
11633 .operands = &.{
11634 .{ .kind = .id_result_type, .quantifier = .required },
11635 .{ .kind = .id_result, .quantifier = .required },
11636 .{ .kind = .id_ref, .quantifier = .required },
11637 },
11638 },
11639 .{
11640 .name = "OpSubgroupAvcMceGetInterMotionVectorCountINTEL",
11641 .opcode = 5744,
11642 .operands = &.{
11643 .{ .kind = .id_result_type, .quantifier = .required },
11644 .{ .kind = .id_result, .quantifier = .required },
11645 .{ .kind = .id_ref, .quantifier = .required },
11646 },
11647 },
11648 .{
11649 .name = "OpSubgroupAvcMceGetInterReferenceIdsINTEL",
11650 .opcode = 5745,
11651 .operands = &.{
11652 .{ .kind = .id_result_type, .quantifier = .required },
11653 .{ .kind = .id_result, .quantifier = .required },
11654 .{ .kind = .id_ref, .quantifier = .required },
11655 },
11656 },
11657 .{
11658 .name = "OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL",
11659 .opcode = 5746,
11660 .operands = &.{
11661 .{ .kind = .id_result_type, .quantifier = .required },
11662 .{ .kind = .id_result, .quantifier = .required },
11663 .{ .kind = .id_ref, .quantifier = .required },
11664 .{ .kind = .id_ref, .quantifier = .required },
11665 .{ .kind = .id_ref, .quantifier = .required },
11666 },
11667 },
11668 .{
11669 .name = "OpSubgroupAvcImeInitializeINTEL",
11670 .opcode = 5747,
11671 .operands = &.{
11672 .{ .kind = .id_result_type, .quantifier = .required },
11673 .{ .kind = .id_result, .quantifier = .required },
11674 .{ .kind = .id_ref, .quantifier = .required },
11675 .{ .kind = .id_ref, .quantifier = .required },
11676 .{ .kind = .id_ref, .quantifier = .required },
11677 },
11678 },
11679 .{
11680 .name = "OpSubgroupAvcImeSetSingleReferenceINTEL",
11681 .opcode = 5748,
11682 .operands = &.{
11683 .{ .kind = .id_result_type, .quantifier = .required },
11684 .{ .kind = .id_result, .quantifier = .required },
11685 .{ .kind = .id_ref, .quantifier = .required },
11686 .{ .kind = .id_ref, .quantifier = .required },
11687 .{ .kind = .id_ref, .quantifier = .required },
11688 },
11689 },
11690 .{
11691 .name = "OpSubgroupAvcImeSetDualReferenceINTEL",
11692 .opcode = 5749,
11693 .operands = &.{
11694 .{ .kind = .id_result_type, .quantifier = .required },
11695 .{ .kind = .id_result, .quantifier = .required },
11696 .{ .kind = .id_ref, .quantifier = .required },
11697 .{ .kind = .id_ref, .quantifier = .required },
11698 .{ .kind = .id_ref, .quantifier = .required },
11699 .{ .kind = .id_ref, .quantifier = .required },
11700 },
11701 },
11702 .{
11703 .name = "OpSubgroupAvcImeRefWindowSizeINTEL",
11704 .opcode = 5750,
11705 .operands = &.{
11706 .{ .kind = .id_result_type, .quantifier = .required },
11707 .{ .kind = .id_result, .quantifier = .required },
11708 .{ .kind = .id_ref, .quantifier = .required },
11709 .{ .kind = .id_ref, .quantifier = .required },
11710 },
11711 },
11712 .{
11713 .name = "OpSubgroupAvcImeAdjustRefOffsetINTEL",
11714 .opcode = 5751,
11715 .operands = &.{
11716 .{ .kind = .id_result_type, .quantifier = .required },
11717 .{ .kind = .id_result, .quantifier = .required },
11718 .{ .kind = .id_ref, .quantifier = .required },
11719 .{ .kind = .id_ref, .quantifier = .required },
11720 .{ .kind = .id_ref, .quantifier = .required },
11721 .{ .kind = .id_ref, .quantifier = .required },
11722 },
11723 },
11724 .{
11725 .name = "OpSubgroupAvcImeConvertToMcePayloadINTEL",
11726 .opcode = 5752,
11727 .operands = &.{
11728 .{ .kind = .id_result_type, .quantifier = .required },
11729 .{ .kind = .id_result, .quantifier = .required },
11730 .{ .kind = .id_ref, .quantifier = .required },
11731 },
11732 },
11733 .{
11734 .name = "OpSubgroupAvcImeSetMaxMotionVectorCountINTEL",
11735 .opcode = 5753,
11736 .operands = &.{
11737 .{ .kind = .id_result_type, .quantifier = .required },
11738 .{ .kind = .id_result, .quantifier = .required },
11739 .{ .kind = .id_ref, .quantifier = .required },
11740 .{ .kind = .id_ref, .quantifier = .required },
11741 },
11742 },
11743 .{
11744 .name = "OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL",
11745 .opcode = 5754,
11746 .operands = &.{
11747 .{ .kind = .id_result_type, .quantifier = .required },
11748 .{ .kind = .id_result, .quantifier = .required },
11749 .{ .kind = .id_ref, .quantifier = .required },
11750 },
11751 },
11752 .{
11753 .name = "OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL",
11754 .opcode = 5755,
11755 .operands = &.{
11756 .{ .kind = .id_result_type, .quantifier = .required },
11757 .{ .kind = .id_result, .quantifier = .required },
11758 .{ .kind = .id_ref, .quantifier = .required },
11759 .{ .kind = .id_ref, .quantifier = .required },
11760 },
11761 },
11762 .{
11763 .name = "OpSubgroupAvcImeSetWeightedSadINTEL",
11764 .opcode = 5756,
11765 .operands = &.{
11766 .{ .kind = .id_result_type, .quantifier = .required },
11767 .{ .kind = .id_result, .quantifier = .required },
11768 .{ .kind = .id_ref, .quantifier = .required },
11769 .{ .kind = .id_ref, .quantifier = .required },
11770 },
11771 },
11772 .{
11773 .name = "OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL",
11774 .opcode = 5757,
11775 .operands = &.{
11776 .{ .kind = .id_result_type, .quantifier = .required },
11777 .{ .kind = .id_result, .quantifier = .required },
11778 .{ .kind = .id_ref, .quantifier = .required },
11779 .{ .kind = .id_ref, .quantifier = .required },
11780 .{ .kind = .id_ref, .quantifier = .required },
11781 },
11782 },
11783 .{
11784 .name = "OpSubgroupAvcImeEvaluateWithDualReferenceINTEL",
11785 .opcode = 5758,
11786 .operands = &.{
11787 .{ .kind = .id_result_type, .quantifier = .required },
11788 .{ .kind = .id_result, .quantifier = .required },
11789 .{ .kind = .id_ref, .quantifier = .required },
11790 .{ .kind = .id_ref, .quantifier = .required },
11791 .{ .kind = .id_ref, .quantifier = .required },
11792 .{ .kind = .id_ref, .quantifier = .required },
11793 },
11794 },
11795 .{
11796 .name = "OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL",
11797 .opcode = 5759,
11798 .operands = &.{
11799 .{ .kind = .id_result_type, .quantifier = .required },
11800 .{ .kind = .id_result, .quantifier = .required },
11801 .{ .kind = .id_ref, .quantifier = .required },
11802 .{ .kind = .id_ref, .quantifier = .required },
11803 .{ .kind = .id_ref, .quantifier = .required },
11804 .{ .kind = .id_ref, .quantifier = .required },
11805 },
11806 },
11807 .{
11808 .name = "OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL",
11809 .opcode = 5760,
11810 .operands = &.{
11811 .{ .kind = .id_result_type, .quantifier = .required },
11812 .{ .kind = .id_result, .quantifier = .required },
11813 .{ .kind = .id_ref, .quantifier = .required },
11814 .{ .kind = .id_ref, .quantifier = .required },
11815 .{ .kind = .id_ref, .quantifier = .required },
11816 .{ .kind = .id_ref, .quantifier = .required },
11817 .{ .kind = .id_ref, .quantifier = .required },
11818 },
11819 },
11820 .{
11821 .name = "OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL",
11822 .opcode = 5761,
11823 .operands = &.{
11824 .{ .kind = .id_result_type, .quantifier = .required },
11825 .{ .kind = .id_result, .quantifier = .required },
11826 .{ .kind = .id_ref, .quantifier = .required },
11827 .{ .kind = .id_ref, .quantifier = .required },
11828 .{ .kind = .id_ref, .quantifier = .required },
11829 },
11830 },
11831 .{
11832 .name = "OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL",
11833 .opcode = 5762,
11834 .operands = &.{
11835 .{ .kind = .id_result_type, .quantifier = .required },
11836 .{ .kind = .id_result, .quantifier = .required },
11837 .{ .kind = .id_ref, .quantifier = .required },
11838 .{ .kind = .id_ref, .quantifier = .required },
11839 .{ .kind = .id_ref, .quantifier = .required },
11840 .{ .kind = .id_ref, .quantifier = .required },
11841 },
11842 },
11843 .{
11844 .name = "OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL",
11845 .opcode = 5763,
11846 .operands = &.{
11847 .{ .kind = .id_result_type, .quantifier = .required },
11848 .{ .kind = .id_result, .quantifier = .required },
11849 .{ .kind = .id_ref, .quantifier = .required },
11850 .{ .kind = .id_ref, .quantifier = .required },
11851 .{ .kind = .id_ref, .quantifier = .required },
11852 .{ .kind = .id_ref, .quantifier = .required },
11853 },
11854 },
11855 .{
11856 .name = "OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL",
11857 .opcode = 5764,
11858 .operands = &.{
11859 .{ .kind = .id_result_type, .quantifier = .required },
11860 .{ .kind = .id_result, .quantifier = .required },
11861 .{ .kind = .id_ref, .quantifier = .required },
11862 .{ .kind = .id_ref, .quantifier = .required },
11863 .{ .kind = .id_ref, .quantifier = .required },
11864 .{ .kind = .id_ref, .quantifier = .required },
11865 .{ .kind = .id_ref, .quantifier = .required },
11866 },
11867 },
11868 .{
11869 .name = "OpSubgroupAvcImeConvertToMceResultINTEL",
11870 .opcode = 5765,
11871 .operands = &.{
11872 .{ .kind = .id_result_type, .quantifier = .required },
11873 .{ .kind = .id_result, .quantifier = .required },
11874 .{ .kind = .id_ref, .quantifier = .required },
11875 },
11876 },
11877 .{
11878 .name = "OpSubgroupAvcImeGetSingleReferenceStreaminINTEL",
11879 .opcode = 5766,
11880 .operands = &.{
11881 .{ .kind = .id_result_type, .quantifier = .required },
11882 .{ .kind = .id_result, .quantifier = .required },
11883 .{ .kind = .id_ref, .quantifier = .required },
11884 },
11885 },
11886 .{
11887 .name = "OpSubgroupAvcImeGetDualReferenceStreaminINTEL",
11888 .opcode = 5767,
11889 .operands = &.{
11890 .{ .kind = .id_result_type, .quantifier = .required },
11891 .{ .kind = .id_result, .quantifier = .required },
11892 .{ .kind = .id_ref, .quantifier = .required },
11893 },
11894 },
11895 .{
11896 .name = "OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL",
11897 .opcode = 5768,
11898 .operands = &.{
11899 .{ .kind = .id_result_type, .quantifier = .required },
11900 .{ .kind = .id_result, .quantifier = .required },
11901 .{ .kind = .id_ref, .quantifier = .required },
11902 },
11903 },
11904 .{
11905 .name = "OpSubgroupAvcImeStripDualReferenceStreamoutINTEL",
11906 .opcode = 5769,
11907 .operands = &.{
11908 .{ .kind = .id_result_type, .quantifier = .required },
11909 .{ .kind = .id_result, .quantifier = .required },
11910 .{ .kind = .id_ref, .quantifier = .required },
11911 },
11912 },
11913 .{
11914 .name = "OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL",
11915 .opcode = 5770,
11916 .operands = &.{
11917 .{ .kind = .id_result_type, .quantifier = .required },
11918 .{ .kind = .id_result, .quantifier = .required },
11919 .{ .kind = .id_ref, .quantifier = .required },
11920 .{ .kind = .id_ref, .quantifier = .required },
11921 },
11922 },
11923 .{
11924 .name = "OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL",
11925 .opcode = 5771,
11926 .operands = &.{
11927 .{ .kind = .id_result_type, .quantifier = .required },
11928 .{ .kind = .id_result, .quantifier = .required },
11929 .{ .kind = .id_ref, .quantifier = .required },
11930 .{ .kind = .id_ref, .quantifier = .required },
11931 },
11932 },
11933 .{
11934 .name = "OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL",
11935 .opcode = 5772,
11936 .operands = &.{
11937 .{ .kind = .id_result_type, .quantifier = .required },
11938 .{ .kind = .id_result, .quantifier = .required },
11939 .{ .kind = .id_ref, .quantifier = .required },
11940 .{ .kind = .id_ref, .quantifier = .required },
11941 },
11942 },
11943 .{
11944 .name = "OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL",
11945 .opcode = 5773,
11946 .operands = &.{
11947 .{ .kind = .id_result_type, .quantifier = .required },
11948 .{ .kind = .id_result, .quantifier = .required },
11949 .{ .kind = .id_ref, .quantifier = .required },
11950 .{ .kind = .id_ref, .quantifier = .required },
11951 .{ .kind = .id_ref, .quantifier = .required },
11952 },
11953 },
11954 .{
11955 .name = "OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL",
11956 .opcode = 5774,
11957 .operands = &.{
11958 .{ .kind = .id_result_type, .quantifier = .required },
11959 .{ .kind = .id_result, .quantifier = .required },
11960 .{ .kind = .id_ref, .quantifier = .required },
11961 .{ .kind = .id_ref, .quantifier = .required },
11962 .{ .kind = .id_ref, .quantifier = .required },
11963 },
11964 },
11965 .{
11966 .name = "OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL",
11967 .opcode = 5775,
11968 .operands = &.{
11969 .{ .kind = .id_result_type, .quantifier = .required },
11970 .{ .kind = .id_result, .quantifier = .required },
11971 .{ .kind = .id_ref, .quantifier = .required },
11972 .{ .kind = .id_ref, .quantifier = .required },
11973 .{ .kind = .id_ref, .quantifier = .required },
11974 },
11975 },
11976 .{
11977 .name = "OpSubgroupAvcImeGetBorderReachedINTEL",
11978 .opcode = 5776,
11979 .operands = &.{
11980 .{ .kind = .id_result_type, .quantifier = .required },
11981 .{ .kind = .id_result, .quantifier = .required },
11982 .{ .kind = .id_ref, .quantifier = .required },
11983 .{ .kind = .id_ref, .quantifier = .required },
11984 },
11985 },
11986 .{
11987 .name = "OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL",
11988 .opcode = 5777,
11989 .operands = &.{
11990 .{ .kind = .id_result_type, .quantifier = .required },
11991 .{ .kind = .id_result, .quantifier = .required },
11992 .{ .kind = .id_ref, .quantifier = .required },
11993 },
11994 },
11995 .{
11996 .name = "OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL",
11997 .opcode = 5778,
11998 .operands = &.{
11999 .{ .kind = .id_result_type, .quantifier = .required },
12000 .{ .kind = .id_result, .quantifier = .required },
12001 .{ .kind = .id_ref, .quantifier = .required },
12002 },
12003 },
12004 .{
12005 .name = "OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL",
12006 .opcode = 5779,
12007 .operands = &.{
12008 .{ .kind = .id_result_type, .quantifier = .required },
12009 .{ .kind = .id_result, .quantifier = .required },
12010 .{ .kind = .id_ref, .quantifier = .required },
12011 },
12012 },
12013 .{
12014 .name = "OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL",
12015 .opcode = 5780,
12016 .operands = &.{
12017 .{ .kind = .id_result_type, .quantifier = .required },
12018 .{ .kind = .id_result, .quantifier = .required },
12019 .{ .kind = .id_ref, .quantifier = .required },
12020 },
12021 },
12022 .{
12023 .name = "OpSubgroupAvcFmeInitializeINTEL",
12024 .opcode = 5781,
12025 .operands = &.{
12026 .{ .kind = .id_result_type, .quantifier = .required },
12027 .{ .kind = .id_result, .quantifier = .required },
12028 .{ .kind = .id_ref, .quantifier = .required },
12029 .{ .kind = .id_ref, .quantifier = .required },
12030 .{ .kind = .id_ref, .quantifier = .required },
12031 .{ .kind = .id_ref, .quantifier = .required },
12032 .{ .kind = .id_ref, .quantifier = .required },
12033 .{ .kind = .id_ref, .quantifier = .required },
12034 .{ .kind = .id_ref, .quantifier = .required },
12035 },
12036 },
12037 .{
12038 .name = "OpSubgroupAvcBmeInitializeINTEL",
12039 .opcode = 5782,
12040 .operands = &.{
12041 .{ .kind = .id_result_type, .quantifier = .required },
12042 .{ .kind = .id_result, .quantifier = .required },
12043 .{ .kind = .id_ref, .quantifier = .required },
12044 .{ .kind = .id_ref, .quantifier = .required },
12045 .{ .kind = .id_ref, .quantifier = .required },
12046 .{ .kind = .id_ref, .quantifier = .required },
12047 .{ .kind = .id_ref, .quantifier = .required },
12048 .{ .kind = .id_ref, .quantifier = .required },
12049 .{ .kind = .id_ref, .quantifier = .required },
12050 .{ .kind = .id_ref, .quantifier = .required },
12051 },
12052 },
12053 .{
12054 .name = "OpSubgroupAvcRefConvertToMcePayloadINTEL",
12055 .opcode = 5783,
12056 .operands = &.{
12057 .{ .kind = .id_result_type, .quantifier = .required },
12058 .{ .kind = .id_result, .quantifier = .required },
12059 .{ .kind = .id_ref, .quantifier = .required },
12060 },
12061 },
12062 .{
12063 .name = "OpSubgroupAvcRefSetBidirectionalMixDisableINTEL",
12064 .opcode = 5784,
12065 .operands = &.{
12066 .{ .kind = .id_result_type, .quantifier = .required },
12067 .{ .kind = .id_result, .quantifier = .required },
12068 .{ .kind = .id_ref, .quantifier = .required },
12069 },
12070 },
12071 .{
12072 .name = "OpSubgroupAvcRefSetBilinearFilterEnableINTEL",
12073 .opcode = 5785,
12074 .operands = &.{
12075 .{ .kind = .id_result_type, .quantifier = .required },
12076 .{ .kind = .id_result, .quantifier = .required },
12077 .{ .kind = .id_ref, .quantifier = .required },
12078 },
12079 },
12080 .{
12081 .name = "OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL",
12082 .opcode = 5786,
12083 .operands = &.{
12084 .{ .kind = .id_result_type, .quantifier = .required },
12085 .{ .kind = .id_result, .quantifier = .required },
12086 .{ .kind = .id_ref, .quantifier = .required },
12087 .{ .kind = .id_ref, .quantifier = .required },
12088 .{ .kind = .id_ref, .quantifier = .required },
12089 },
12090 },
12091 .{
12092 .name = "OpSubgroupAvcRefEvaluateWithDualReferenceINTEL",
12093 .opcode = 5787,
12094 .operands = &.{
12095 .{ .kind = .id_result_type, .quantifier = .required },
12096 .{ .kind = .id_result, .quantifier = .required },
12097 .{ .kind = .id_ref, .quantifier = .required },
12098 .{ .kind = .id_ref, .quantifier = .required },
12099 .{ .kind = .id_ref, .quantifier = .required },
12100 .{ .kind = .id_ref, .quantifier = .required },
12101 },
12102 },
12103 .{
12104 .name = "OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL",
12105 .opcode = 5788,
12106 .operands = &.{
12107 .{ .kind = .id_result_type, .quantifier = .required },
12108 .{ .kind = .id_result, .quantifier = .required },
12109 .{ .kind = .id_ref, .quantifier = .required },
12110 .{ .kind = .id_ref, .quantifier = .required },
12111 .{ .kind = .id_ref, .quantifier = .required },
12112 },
12113 },
12114 .{
12115 .name = "OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL",
12116 .opcode = 5789,
12117 .operands = &.{
12118 .{ .kind = .id_result_type, .quantifier = .required },
12119 .{ .kind = .id_result, .quantifier = .required },
12120 .{ .kind = .id_ref, .quantifier = .required },
12121 .{ .kind = .id_ref, .quantifier = .required },
12122 .{ .kind = .id_ref, .quantifier = .required },
12123 .{ .kind = .id_ref, .quantifier = .required },
12124 },
12125 },
12126 .{
12127 .name = "OpSubgroupAvcRefConvertToMceResultINTEL",
12128 .opcode = 5790,
12129 .operands = &.{
12130 .{ .kind = .id_result_type, .quantifier = .required },
12131 .{ .kind = .id_result, .quantifier = .required },
12132 .{ .kind = .id_ref, .quantifier = .required },
12133 },
12134 },
12135 .{
12136 .name = "OpSubgroupAvcSicInitializeINTEL",
12137 .opcode = 5791,
12138 .operands = &.{
12139 .{ .kind = .id_result_type, .quantifier = .required },
12140 .{ .kind = .id_result, .quantifier = .required },
12141 .{ .kind = .id_ref, .quantifier = .required },
12142 },
12143 },
12144 .{
12145 .name = "OpSubgroupAvcSicConfigureSkcINTEL",
12146 .opcode = 5792,
12147 .operands = &.{
12148 .{ .kind = .id_result_type, .quantifier = .required },
12149 .{ .kind = .id_result, .quantifier = .required },
12150 .{ .kind = .id_ref, .quantifier = .required },
12151 .{ .kind = .id_ref, .quantifier = .required },
12152 .{ .kind = .id_ref, .quantifier = .required },
12153 .{ .kind = .id_ref, .quantifier = .required },
12154 .{ .kind = .id_ref, .quantifier = .required },
12155 .{ .kind = .id_ref, .quantifier = .required },
12156 },
12157 },
12158 .{
12159 .name = "OpSubgroupAvcSicConfigureIpeLumaINTEL",
12160 .opcode = 5793,
12161 .operands = &.{
12162 .{ .kind = .id_result_type, .quantifier = .required },
12163 .{ .kind = .id_result, .quantifier = .required },
12164 .{ .kind = .id_ref, .quantifier = .required },
12165 .{ .kind = .id_ref, .quantifier = .required },
12166 .{ .kind = .id_ref, .quantifier = .required },
12167 .{ .kind = .id_ref, .quantifier = .required },
12168 .{ .kind = .id_ref, .quantifier = .required },
12169 .{ .kind = .id_ref, .quantifier = .required },
12170 .{ .kind = .id_ref, .quantifier = .required },
12171 .{ .kind = .id_ref, .quantifier = .required },
12172 },
12173 },
12174 .{
12175 .name = "OpSubgroupAvcSicConfigureIpeLumaChromaINTEL",
12176 .opcode = 5794,
12177 .operands = &.{
12178 .{ .kind = .id_result_type, .quantifier = .required },
12179 .{ .kind = .id_result, .quantifier = .required },
12180 .{ .kind = .id_ref, .quantifier = .required },
12181 .{ .kind = .id_ref, .quantifier = .required },
12182 .{ .kind = .id_ref, .quantifier = .required },
12183 .{ .kind = .id_ref, .quantifier = .required },
12184 .{ .kind = .id_ref, .quantifier = .required },
12185 .{ .kind = .id_ref, .quantifier = .required },
12186 .{ .kind = .id_ref, .quantifier = .required },
12187 .{ .kind = .id_ref, .quantifier = .required },
12188 .{ .kind = .id_ref, .quantifier = .required },
12189 .{ .kind = .id_ref, .quantifier = .required },
12190 .{ .kind = .id_ref, .quantifier = .required },
12191 },
12192 },
12193 .{
12194 .name = "OpSubgroupAvcSicGetMotionVectorMaskINTEL",
12195 .opcode = 5795,
12196 .operands = &.{
12197 .{ .kind = .id_result_type, .quantifier = .required },
12198 .{ .kind = .id_result, .quantifier = .required },
12199 .{ .kind = .id_ref, .quantifier = .required },
12200 .{ .kind = .id_ref, .quantifier = .required },
12201 },
12202 },
12203 .{
12204 .name = "OpSubgroupAvcSicConvertToMcePayloadINTEL",
12205 .opcode = 5796,
12206 .operands = &.{
12207 .{ .kind = .id_result_type, .quantifier = .required },
12208 .{ .kind = .id_result, .quantifier = .required },
12209 .{ .kind = .id_ref, .quantifier = .required },
12210 },
12211 },
12212 .{
12213 .name = "OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL",
12214 .opcode = 5797,
12215 .operands = &.{
12216 .{ .kind = .id_result_type, .quantifier = .required },
12217 .{ .kind = .id_result, .quantifier = .required },
12218 .{ .kind = .id_ref, .quantifier = .required },
12219 .{ .kind = .id_ref, .quantifier = .required },
12220 },
12221 },
12222 .{
12223 .name = "OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL",
12224 .opcode = 5798,
12225 .operands = &.{
12226 .{ .kind = .id_result_type, .quantifier = .required },
12227 .{ .kind = .id_result, .quantifier = .required },
12228 .{ .kind = .id_ref, .quantifier = .required },
12229 .{ .kind = .id_ref, .quantifier = .required },
12230 .{ .kind = .id_ref, .quantifier = .required },
12231 .{ .kind = .id_ref, .quantifier = .required },
12232 },
12233 },
12234 .{
12235 .name = "OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL",
12236 .opcode = 5799,
12237 .operands = &.{
12238 .{ .kind = .id_result_type, .quantifier = .required },
12239 .{ .kind = .id_result, .quantifier = .required },
12240 .{ .kind = .id_ref, .quantifier = .required },
12241 .{ .kind = .id_ref, .quantifier = .required },
12242 },
12243 },
12244 .{
12245 .name = "OpSubgroupAvcSicSetBilinearFilterEnableINTEL",
12246 .opcode = 5800,
12247 .operands = &.{
12248 .{ .kind = .id_result_type, .quantifier = .required },
12249 .{ .kind = .id_result, .quantifier = .required },
12250 .{ .kind = .id_ref, .quantifier = .required },
12251 },
12252 },
12253 .{
12254 .name = "OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL",
12255 .opcode = 5801,
12256 .operands = &.{
12257 .{ .kind = .id_result_type, .quantifier = .required },
12258 .{ .kind = .id_result, .quantifier = .required },
12259 .{ .kind = .id_ref, .quantifier = .required },
12260 .{ .kind = .id_ref, .quantifier = .required },
12261 },
12262 },
12263 .{
12264 .name = "OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL",
12265 .opcode = 5802,
12266 .operands = &.{
12267 .{ .kind = .id_result_type, .quantifier = .required },
12268 .{ .kind = .id_result, .quantifier = .required },
12269 .{ .kind = .id_ref, .quantifier = .required },
12270 .{ .kind = .id_ref, .quantifier = .required },
12271 },
12272 },
12273 .{
12274 .name = "OpSubgroupAvcSicEvaluateIpeINTEL",
12275 .opcode = 5803,
12276 .operands = &.{
12277 .{ .kind = .id_result_type, .quantifier = .required },
12278 .{ .kind = .id_result, .quantifier = .required },
12279 .{ .kind = .id_ref, .quantifier = .required },
12280 .{ .kind = .id_ref, .quantifier = .required },
12281 },
12282 },
12283 .{
12284 .name = "OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL",
12285 .opcode = 5804,
12286 .operands = &.{
12287 .{ .kind = .id_result_type, .quantifier = .required },
12288 .{ .kind = .id_result, .quantifier = .required },
12289 .{ .kind = .id_ref, .quantifier = .required },
12290 .{ .kind = .id_ref, .quantifier = .required },
12291 .{ .kind = .id_ref, .quantifier = .required },
12292 },
12293 },
12294 .{
12295 .name = "OpSubgroupAvcSicEvaluateWithDualReferenceINTEL",
12296 .opcode = 5805,
12297 .operands = &.{
12298 .{ .kind = .id_result_type, .quantifier = .required },
12299 .{ .kind = .id_result, .quantifier = .required },
12300 .{ .kind = .id_ref, .quantifier = .required },
12301 .{ .kind = .id_ref, .quantifier = .required },
12302 .{ .kind = .id_ref, .quantifier = .required },
12303 .{ .kind = .id_ref, .quantifier = .required },
12304 },
12305 },
12306 .{
12307 .name = "OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL",
12308 .opcode = 5806,
12309 .operands = &.{
12310 .{ .kind = .id_result_type, .quantifier = .required },
12311 .{ .kind = .id_result, .quantifier = .required },
12312 .{ .kind = .id_ref, .quantifier = .required },
12313 .{ .kind = .id_ref, .quantifier = .required },
12314 .{ .kind = .id_ref, .quantifier = .required },
12315 },
12316 },
12317 .{
12318 .name = "OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL",
12319 .opcode = 5807,
12320 .operands = &.{
12321 .{ .kind = .id_result_type, .quantifier = .required },
12322 .{ .kind = .id_result, .quantifier = .required },
12323 .{ .kind = .id_ref, .quantifier = .required },
12324 .{ .kind = .id_ref, .quantifier = .required },
12325 .{ .kind = .id_ref, .quantifier = .required },
12326 .{ .kind = .id_ref, .quantifier = .required },
12327 },
12328 },
12329 .{
12330 .name = "OpSubgroupAvcSicConvertToMceResultINTEL",
12331 .opcode = 5808,
12332 .operands = &.{
12333 .{ .kind = .id_result_type, .quantifier = .required },
12334 .{ .kind = .id_result, .quantifier = .required },
12335 .{ .kind = .id_ref, .quantifier = .required },
12336 },
12337 },
12338 .{
12339 .name = "OpSubgroupAvcSicGetIpeLumaShapeINTEL",
12340 .opcode = 5809,
12341 .operands = &.{
12342 .{ .kind = .id_result_type, .quantifier = .required },
12343 .{ .kind = .id_result, .quantifier = .required },
12344 .{ .kind = .id_ref, .quantifier = .required },
12345 },
12346 },
12347 .{
12348 .name = "OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL",
12349 .opcode = 5810,
12350 .operands = &.{
12351 .{ .kind = .id_result_type, .quantifier = .required },
12352 .{ .kind = .id_result, .quantifier = .required },
12353 .{ .kind = .id_ref, .quantifier = .required },
12354 },
12355 },
12356 .{
12357 .name = "OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL",
12358 .opcode = 5811,
12359 .operands = &.{
12360 .{ .kind = .id_result_type, .quantifier = .required },
12361 .{ .kind = .id_result, .quantifier = .required },
12362 .{ .kind = .id_ref, .quantifier = .required },
12363 },
12364 },
12365 .{
12366 .name = "OpSubgroupAvcSicGetPackedIpeLumaModesINTEL",
12367 .opcode = 5812,
12368 .operands = &.{
12369 .{ .kind = .id_result_type, .quantifier = .required },
12370 .{ .kind = .id_result, .quantifier = .required },
12371 .{ .kind = .id_ref, .quantifier = .required },
12372 },
12373 },
12374 .{
12375 .name = "OpSubgroupAvcSicGetIpeChromaModeINTEL",
12376 .opcode = 5813,
12377 .operands = &.{
12378 .{ .kind = .id_result_type, .quantifier = .required },
12379 .{ .kind = .id_result, .quantifier = .required },
12380 .{ .kind = .id_ref, .quantifier = .required },
12381 },
12382 },
12383 .{
12384 .name = "OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL",
12385 .opcode = 5814,
12386 .operands = &.{
12387 .{ .kind = .id_result_type, .quantifier = .required },
12388 .{ .kind = .id_result, .quantifier = .required },
12389 .{ .kind = .id_ref, .quantifier = .required },
12390 },
12391 },
12392 .{
12393 .name = "OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL",
12394 .opcode = 5815,
12395 .operands = &.{
12396 .{ .kind = .id_result_type, .quantifier = .required },
12397 .{ .kind = .id_result, .quantifier = .required },
12398 .{ .kind = .id_ref, .quantifier = .required },
12399 },
12400 },
12401 .{
12402 .name = "OpSubgroupAvcSicGetInterRawSadsINTEL",
12403 .opcode = 5816,
12404 .operands = &.{
12405 .{ .kind = .id_result_type, .quantifier = .required },
12406 .{ .kind = .id_result, .quantifier = .required },
12407 .{ .kind = .id_ref, .quantifier = .required },
12408 },
12409 },
12410 .{
12411 .name = "OpVariableLengthArrayINTEL",
12412 .opcode = 5818,
12413 .operands = &.{
12414 .{ .kind = .id_result_type, .quantifier = .required },
12415 .{ .kind = .id_result, .quantifier = .required },
12416 .{ .kind = .id_ref, .quantifier = .required },
12417 },
12418 },
12419 .{
12420 .name = "OpSaveMemoryINTEL",
12421 .opcode = 5819,
12422 .operands = &.{
12423 .{ .kind = .id_result_type, .quantifier = .required },
12424 .{ .kind = .id_result, .quantifier = .required },
12425 },
12426 },
12427 .{
12428 .name = "OpRestoreMemoryINTEL",
12429 .opcode = 5820,
12430 .operands = &.{
12431 .{ .kind = .id_ref, .quantifier = .required },
12432 },
12433 },
12434 .{
12435 .name = "OpArbitraryFloatSinCosPiINTEL",
12436 .opcode = 5840,
12437 .operands = &.{
12438 .{ .kind = .id_result_type, .quantifier = .required },
12439 .{ .kind = .id_result, .quantifier = .required },
12440 .{ .kind = .id_ref, .quantifier = .required },
12441 .{ .kind = .literal_integer, .quantifier = .required },
12442 .{ .kind = .literal_integer, .quantifier = .required },
12443 .{ .kind = .literal_integer, .quantifier = .required },
12444 .{ .kind = .literal_integer, .quantifier = .required },
12445 .{ .kind = .literal_integer, .quantifier = .required },
12446 },
12447 },
12448 .{
12449 .name = "OpArbitraryFloatCastINTEL",
12450 .opcode = 5841,
12451 .operands = &.{
12452 .{ .kind = .id_result_type, .quantifier = .required },
12453 .{ .kind = .id_result, .quantifier = .required },
12454 .{ .kind = .id_ref, .quantifier = .required },
12455 .{ .kind = .literal_integer, .quantifier = .required },
12456 .{ .kind = .literal_integer, .quantifier = .required },
12457 .{ .kind = .literal_integer, .quantifier = .required },
12458 .{ .kind = .literal_integer, .quantifier = .required },
12459 .{ .kind = .literal_integer, .quantifier = .required },
12460 },
12461 },
12462 .{
12463 .name = "OpArbitraryFloatCastFromIntINTEL",
12464 .opcode = 5842,
12465 .operands = &.{
12466 .{ .kind = .id_result_type, .quantifier = .required },
12467 .{ .kind = .id_result, .quantifier = .required },
12468 .{ .kind = .id_ref, .quantifier = .required },
12469 .{ .kind = .literal_integer, .quantifier = .required },
12470 .{ .kind = .literal_integer, .quantifier = .required },
12471 .{ .kind = .literal_integer, .quantifier = .required },
12472 .{ .kind = .literal_integer, .quantifier = .required },
12473 .{ .kind = .literal_integer, .quantifier = .required },
12474 },
12475 },
12476 .{
12477 .name = "OpArbitraryFloatCastToIntINTEL",
12478 .opcode = 5843,
12479 .operands = &.{
12480 .{ .kind = .id_result_type, .quantifier = .required },
12481 .{ .kind = .id_result, .quantifier = .required },
12482 .{ .kind = .id_ref, .quantifier = .required },
12483 .{ .kind = .literal_integer, .quantifier = .required },
12484 .{ .kind = .literal_integer, .quantifier = .required },
12485 .{ .kind = .literal_integer, .quantifier = .required },
12486 .{ .kind = .literal_integer, .quantifier = .required },
12487 .{ .kind = .literal_integer, .quantifier = .required },
12488 },
12489 },
12490 .{
12491 .name = "OpArbitraryFloatAddINTEL",
12492 .opcode = 5846,
12493 .operands = &.{
12494 .{ .kind = .id_result_type, .quantifier = .required },
12495 .{ .kind = .id_result, .quantifier = .required },
12496 .{ .kind = .id_ref, .quantifier = .required },
12497 .{ .kind = .literal_integer, .quantifier = .required },
12498 .{ .kind = .id_ref, .quantifier = .required },
12499 .{ .kind = .literal_integer, .quantifier = .required },
12500 .{ .kind = .literal_integer, .quantifier = .required },
12501 .{ .kind = .literal_integer, .quantifier = .required },
12502 .{ .kind = .literal_integer, .quantifier = .required },
12503 .{ .kind = .literal_integer, .quantifier = .required },
12504 },
12505 },
12506 .{
12507 .name = "OpArbitraryFloatSubINTEL",
12508 .opcode = 5847,
12509 .operands = &.{
12510 .{ .kind = .id_result_type, .quantifier = .required },
12511 .{ .kind = .id_result, .quantifier = .required },
12512 .{ .kind = .id_ref, .quantifier = .required },
12513 .{ .kind = .literal_integer, .quantifier = .required },
12514 .{ .kind = .id_ref, .quantifier = .required },
12515 .{ .kind = .literal_integer, .quantifier = .required },
12516 .{ .kind = .literal_integer, .quantifier = .required },
12517 .{ .kind = .literal_integer, .quantifier = .required },
12518 .{ .kind = .literal_integer, .quantifier = .required },
12519 .{ .kind = .literal_integer, .quantifier = .required },
12520 },
12521 },
12522 .{
12523 .name = "OpArbitraryFloatMulINTEL",
12524 .opcode = 5848,
12525 .operands = &.{
12526 .{ .kind = .id_result_type, .quantifier = .required },
12527 .{ .kind = .id_result, .quantifier = .required },
12528 .{ .kind = .id_ref, .quantifier = .required },
12529 .{ .kind = .literal_integer, .quantifier = .required },
12530 .{ .kind = .id_ref, .quantifier = .required },
12531 .{ .kind = .literal_integer, .quantifier = .required },
12532 .{ .kind = .literal_integer, .quantifier = .required },
12533 .{ .kind = .literal_integer, .quantifier = .required },
12534 .{ .kind = .literal_integer, .quantifier = .required },
12535 .{ .kind = .literal_integer, .quantifier = .required },
12536 },
12537 },
12538 .{
12539 .name = "OpArbitraryFloatDivINTEL",
12540 .opcode = 5849,
12541 .operands = &.{
12542 .{ .kind = .id_result_type, .quantifier = .required },
12543 .{ .kind = .id_result, .quantifier = .required },
12544 .{ .kind = .id_ref, .quantifier = .required },
12545 .{ .kind = .literal_integer, .quantifier = .required },
12546 .{ .kind = .id_ref, .quantifier = .required },
12547 .{ .kind = .literal_integer, .quantifier = .required },
12548 .{ .kind = .literal_integer, .quantifier = .required },
12549 .{ .kind = .literal_integer, .quantifier = .required },
12550 .{ .kind = .literal_integer, .quantifier = .required },
12551 .{ .kind = .literal_integer, .quantifier = .required },
12552 },
12553 },
12554 .{
12555 .name = "OpArbitraryFloatGTINTEL",
12556 .opcode = 5850,
12557 .operands = &.{
12558 .{ .kind = .id_result_type, .quantifier = .required },
12559 .{ .kind = .id_result, .quantifier = .required },
12560 .{ .kind = .id_ref, .quantifier = .required },
12561 .{ .kind = .literal_integer, .quantifier = .required },
12562 .{ .kind = .id_ref, .quantifier = .required },
12563 .{ .kind = .literal_integer, .quantifier = .required },
12564 },
12565 },
12566 .{
12567 .name = "OpArbitraryFloatGEINTEL",
12568 .opcode = 5851,
12569 .operands = &.{
12570 .{ .kind = .id_result_type, .quantifier = .required },
12571 .{ .kind = .id_result, .quantifier = .required },
12572 .{ .kind = .id_ref, .quantifier = .required },
12573 .{ .kind = .literal_integer, .quantifier = .required },
12574 .{ .kind = .id_ref, .quantifier = .required },
12575 .{ .kind = .literal_integer, .quantifier = .required },
12576 },
12577 },
12578 .{
12579 .name = "OpArbitraryFloatLTINTEL",
12580 .opcode = 5852,
12581 .operands = &.{
12582 .{ .kind = .id_result_type, .quantifier = .required },
12583 .{ .kind = .id_result, .quantifier = .required },
12584 .{ .kind = .id_ref, .quantifier = .required },
12585 .{ .kind = .literal_integer, .quantifier = .required },
12586 .{ .kind = .id_ref, .quantifier = .required },
12587 .{ .kind = .literal_integer, .quantifier = .required },
12588 },
12589 },
12590 .{
12591 .name = "OpArbitraryFloatLEINTEL",
12592 .opcode = 5853,
12593 .operands = &.{
12594 .{ .kind = .id_result_type, .quantifier = .required },
12595 .{ .kind = .id_result, .quantifier = .required },
12596 .{ .kind = .id_ref, .quantifier = .required },
12597 .{ .kind = .literal_integer, .quantifier = .required },
12598 .{ .kind = .id_ref, .quantifier = .required },
12599 .{ .kind = .literal_integer, .quantifier = .required },
12600 },
12601 },
12602 .{
12603 .name = "OpArbitraryFloatEQINTEL",
12604 .opcode = 5854,
12605 .operands = &.{
12606 .{ .kind = .id_result_type, .quantifier = .required },
12607 .{ .kind = .id_result, .quantifier = .required },
12608 .{ .kind = .id_ref, .quantifier = .required },
12609 .{ .kind = .literal_integer, .quantifier = .required },
12610 .{ .kind = .id_ref, .quantifier = .required },
12611 .{ .kind = .literal_integer, .quantifier = .required },
12612 },
12613 },
12614 .{
12615 .name = "OpArbitraryFloatRecipINTEL",
12616 .opcode = 5855,
12617 .operands = &.{
12618 .{ .kind = .id_result_type, .quantifier = .required },
12619 .{ .kind = .id_result, .quantifier = .required },
12620 .{ .kind = .id_ref, .quantifier = .required },
12621 .{ .kind = .literal_integer, .quantifier = .required },
12622 .{ .kind = .literal_integer, .quantifier = .required },
12623 .{ .kind = .literal_integer, .quantifier = .required },
12624 .{ .kind = .literal_integer, .quantifier = .required },
12625 .{ .kind = .literal_integer, .quantifier = .required },
12626 },
12627 },
12628 .{
12629 .name = "OpArbitraryFloatRSqrtINTEL",
12630 .opcode = 5856,
12631 .operands = &.{
12632 .{ .kind = .id_result_type, .quantifier = .required },
12633 .{ .kind = .id_result, .quantifier = .required },
12634 .{ .kind = .id_ref, .quantifier = .required },
12635 .{ .kind = .literal_integer, .quantifier = .required },
12636 .{ .kind = .literal_integer, .quantifier = .required },
12637 .{ .kind = .literal_integer, .quantifier = .required },
12638 .{ .kind = .literal_integer, .quantifier = .required },
12639 .{ .kind = .literal_integer, .quantifier = .required },
12640 },
12641 },
12642 .{
12643 .name = "OpArbitraryFloatCbrtINTEL",
12644 .opcode = 5857,
12645 .operands = &.{
12646 .{ .kind = .id_result_type, .quantifier = .required },
12647 .{ .kind = .id_result, .quantifier = .required },
12648 .{ .kind = .id_ref, .quantifier = .required },
12649 .{ .kind = .literal_integer, .quantifier = .required },
12650 .{ .kind = .literal_integer, .quantifier = .required },
12651 .{ .kind = .literal_integer, .quantifier = .required },
12652 .{ .kind = .literal_integer, .quantifier = .required },
12653 .{ .kind = .literal_integer, .quantifier = .required },
12654 },
12655 },
12656 .{
12657 .name = "OpArbitraryFloatHypotINTEL",
12658 .opcode = 5858,
12659 .operands = &.{
12660 .{ .kind = .id_result_type, .quantifier = .required },
12661 .{ .kind = .id_result, .quantifier = .required },
12662 .{ .kind = .id_ref, .quantifier = .required },
12663 .{ .kind = .literal_integer, .quantifier = .required },
12664 .{ .kind = .id_ref, .quantifier = .required },
12665 .{ .kind = .literal_integer, .quantifier = .required },
12666 .{ .kind = .literal_integer, .quantifier = .required },
12667 .{ .kind = .literal_integer, .quantifier = .required },
12668 .{ .kind = .literal_integer, .quantifier = .required },
12669 .{ .kind = .literal_integer, .quantifier = .required },
12670 },
12671 },
12672 .{
12673 .name = "OpArbitraryFloatSqrtINTEL",
12674 .opcode = 5859,
12675 .operands = &.{
12676 .{ .kind = .id_result_type, .quantifier = .required },
12677 .{ .kind = .id_result, .quantifier = .required },
12678 .{ .kind = .id_ref, .quantifier = .required },
12679 .{ .kind = .literal_integer, .quantifier = .required },
12680 .{ .kind = .literal_integer, .quantifier = .required },
12681 .{ .kind = .literal_integer, .quantifier = .required },
12682 .{ .kind = .literal_integer, .quantifier = .required },
12683 .{ .kind = .literal_integer, .quantifier = .required },
12684 },
12685 },
12686 .{
12687 .name = "OpArbitraryFloatLogINTEL",
12688 .opcode = 5860,
12689 .operands = &.{
12690 .{ .kind = .id_result_type, .quantifier = .required },
12691 .{ .kind = .id_result, .quantifier = .required },
12692 .{ .kind = .id_ref, .quantifier = .required },
12693 .{ .kind = .literal_integer, .quantifier = .required },
12694 .{ .kind = .literal_integer, .quantifier = .required },
12695 .{ .kind = .literal_integer, .quantifier = .required },
12696 .{ .kind = .literal_integer, .quantifier = .required },
12697 .{ .kind = .literal_integer, .quantifier = .required },
12698 },
12699 },
12700 .{
12701 .name = "OpArbitraryFloatLog2INTEL",
12702 .opcode = 5861,
12703 .operands = &.{
12704 .{ .kind = .id_result_type, .quantifier = .required },
12705 .{ .kind = .id_result, .quantifier = .required },
12706 .{ .kind = .id_ref, .quantifier = .required },
12707 .{ .kind = .literal_integer, .quantifier = .required },
12708 .{ .kind = .literal_integer, .quantifier = .required },
12709 .{ .kind = .literal_integer, .quantifier = .required },
12710 .{ .kind = .literal_integer, .quantifier = .required },
12711 .{ .kind = .literal_integer, .quantifier = .required },
12712 },
12713 },
12714 .{
12715 .name = "OpArbitraryFloatLog10INTEL",
12716 .opcode = 5862,
12717 .operands = &.{
12718 .{ .kind = .id_result_type, .quantifier = .required },
12719 .{ .kind = .id_result, .quantifier = .required },
12720 .{ .kind = .id_ref, .quantifier = .required },
12721 .{ .kind = .literal_integer, .quantifier = .required },
12722 .{ .kind = .literal_integer, .quantifier = .required },
12723 .{ .kind = .literal_integer, .quantifier = .required },
12724 .{ .kind = .literal_integer, .quantifier = .required },
12725 .{ .kind = .literal_integer, .quantifier = .required },
12726 },
12727 },
12728 .{
12729 .name = "OpArbitraryFloatLog1pINTEL",
12730 .opcode = 5863,
12731 .operands = &.{
12732 .{ .kind = .id_result_type, .quantifier = .required },
12733 .{ .kind = .id_result, .quantifier = .required },
12734 .{ .kind = .id_ref, .quantifier = .required },
12735 .{ .kind = .literal_integer, .quantifier = .required },
12736 .{ .kind = .literal_integer, .quantifier = .required },
12737 .{ .kind = .literal_integer, .quantifier = .required },
12738 .{ .kind = .literal_integer, .quantifier = .required },
12739 .{ .kind = .literal_integer, .quantifier = .required },
12740 },
12741 },
12742 .{
12743 .name = "OpArbitraryFloatExpINTEL",
12744 .opcode = 5864,
12745 .operands = &.{
12746 .{ .kind = .id_result_type, .quantifier = .required },
12747 .{ .kind = .id_result, .quantifier = .required },
12748 .{ .kind = .id_ref, .quantifier = .required },
12749 .{ .kind = .literal_integer, .quantifier = .required },
12750 .{ .kind = .literal_integer, .quantifier = .required },
12751 .{ .kind = .literal_integer, .quantifier = .required },
12752 .{ .kind = .literal_integer, .quantifier = .required },
12753 .{ .kind = .literal_integer, .quantifier = .required },
12754 },
12755 },
12756 .{
12757 .name = "OpArbitraryFloatExp2INTEL",
12758 .opcode = 5865,
12759 .operands = &.{
12760 .{ .kind = .id_result_type, .quantifier = .required },
12761 .{ .kind = .id_result, .quantifier = .required },
12762 .{ .kind = .id_ref, .quantifier = .required },
12763 .{ .kind = .literal_integer, .quantifier = .required },
12764 .{ .kind = .literal_integer, .quantifier = .required },
12765 .{ .kind = .literal_integer, .quantifier = .required },
12766 .{ .kind = .literal_integer, .quantifier = .required },
12767 .{ .kind = .literal_integer, .quantifier = .required },
12768 },
12769 },
12770 .{
12771 .name = "OpArbitraryFloatExp10INTEL",
12772 .opcode = 5866,
12773 .operands = &.{
12774 .{ .kind = .id_result_type, .quantifier = .required },
12775 .{ .kind = .id_result, .quantifier = .required },
12776 .{ .kind = .id_ref, .quantifier = .required },
12777 .{ .kind = .literal_integer, .quantifier = .required },
12778 .{ .kind = .literal_integer, .quantifier = .required },
12779 .{ .kind = .literal_integer, .quantifier = .required },
12780 .{ .kind = .literal_integer, .quantifier = .required },
12781 .{ .kind = .literal_integer, .quantifier = .required },
12782 },
12783 },
12784 .{
12785 .name = "OpArbitraryFloatExpm1INTEL",
12786 .opcode = 5867,
12787 .operands = &.{
12788 .{ .kind = .id_result_type, .quantifier = .required },
12789 .{ .kind = .id_result, .quantifier = .required },
12790 .{ .kind = .id_ref, .quantifier = .required },
12791 .{ .kind = .literal_integer, .quantifier = .required },
12792 .{ .kind = .literal_integer, .quantifier = .required },
12793 .{ .kind = .literal_integer, .quantifier = .required },
12794 .{ .kind = .literal_integer, .quantifier = .required },
12795 .{ .kind = .literal_integer, .quantifier = .required },
12796 },
12797 },
12798 .{
12799 .name = "OpArbitraryFloatSinINTEL",
12800 .opcode = 5868,
12801 .operands = &.{
12802 .{ .kind = .id_result_type, .quantifier = .required },
12803 .{ .kind = .id_result, .quantifier = .required },
12804 .{ .kind = .id_ref, .quantifier = .required },
12805 .{ .kind = .literal_integer, .quantifier = .required },
12806 .{ .kind = .literal_integer, .quantifier = .required },
12807 .{ .kind = .literal_integer, .quantifier = .required },
12808 .{ .kind = .literal_integer, .quantifier = .required },
12809 .{ .kind = .literal_integer, .quantifier = .required },
12810 },
12811 },
12812 .{
12813 .name = "OpArbitraryFloatCosINTEL",
12814 .opcode = 5869,
12815 .operands = &.{
12816 .{ .kind = .id_result_type, .quantifier = .required },
12817 .{ .kind = .id_result, .quantifier = .required },
12818 .{ .kind = .id_ref, .quantifier = .required },
12819 .{ .kind = .literal_integer, .quantifier = .required },
12820 .{ .kind = .literal_integer, .quantifier = .required },
12821 .{ .kind = .literal_integer, .quantifier = .required },
12822 .{ .kind = .literal_integer, .quantifier = .required },
12823 .{ .kind = .literal_integer, .quantifier = .required },
12824 },
12825 },
12826 .{
12827 .name = "OpArbitraryFloatSinCosINTEL",
12828 .opcode = 5870,
12829 .operands = &.{
12830 .{ .kind = .id_result_type, .quantifier = .required },
12831 .{ .kind = .id_result, .quantifier = .required },
12832 .{ .kind = .id_ref, .quantifier = .required },
12833 .{ .kind = .literal_integer, .quantifier = .required },
12834 .{ .kind = .literal_integer, .quantifier = .required },
12835 .{ .kind = .literal_integer, .quantifier = .required },
12836 .{ .kind = .literal_integer, .quantifier = .required },
12837 .{ .kind = .literal_integer, .quantifier = .required },
12838 },
12839 },
12840 .{
12841 .name = "OpArbitraryFloatSinPiINTEL",
12842 .opcode = 5871,
12843 .operands = &.{
12844 .{ .kind = .id_result_type, .quantifier = .required },
12845 .{ .kind = .id_result, .quantifier = .required },
12846 .{ .kind = .id_ref, .quantifier = .required },
12847 .{ .kind = .literal_integer, .quantifier = .required },
12848 .{ .kind = .literal_integer, .quantifier = .required },
12849 .{ .kind = .literal_integer, .quantifier = .required },
12850 .{ .kind = .literal_integer, .quantifier = .required },
12851 .{ .kind = .literal_integer, .quantifier = .required },
12852 },
12853 },
12854 .{
12855 .name = "OpArbitraryFloatCosPiINTEL",
12856 .opcode = 5872,
12857 .operands = &.{
12858 .{ .kind = .id_result_type, .quantifier = .required },
12859 .{ .kind = .id_result, .quantifier = .required },
12860 .{ .kind = .id_ref, .quantifier = .required },
12861 .{ .kind = .literal_integer, .quantifier = .required },
12862 .{ .kind = .literal_integer, .quantifier = .required },
12863 .{ .kind = .literal_integer, .quantifier = .required },
12864 .{ .kind = .literal_integer, .quantifier = .required },
12865 .{ .kind = .literal_integer, .quantifier = .required },
12866 },
12867 },
12868 .{
12869 .name = "OpArbitraryFloatASinINTEL",
12870 .opcode = 5873,
12871 .operands = &.{
12872 .{ .kind = .id_result_type, .quantifier = .required },
12873 .{ .kind = .id_result, .quantifier = .required },
12874 .{ .kind = .id_ref, .quantifier = .required },
12875 .{ .kind = .literal_integer, .quantifier = .required },
12876 .{ .kind = .literal_integer, .quantifier = .required },
12877 .{ .kind = .literal_integer, .quantifier = .required },
12878 .{ .kind = .literal_integer, .quantifier = .required },
12879 .{ .kind = .literal_integer, .quantifier = .required },
12880 },
12881 },
12882 .{
12883 .name = "OpArbitraryFloatASinPiINTEL",
12884 .opcode = 5874,
12885 .operands = &.{
12886 .{ .kind = .id_result_type, .quantifier = .required },
12887 .{ .kind = .id_result, .quantifier = .required },
12888 .{ .kind = .id_ref, .quantifier = .required },
12889 .{ .kind = .literal_integer, .quantifier = .required },
12890 .{ .kind = .literal_integer, .quantifier = .required },
12891 .{ .kind = .literal_integer, .quantifier = .required },
12892 .{ .kind = .literal_integer, .quantifier = .required },
12893 .{ .kind = .literal_integer, .quantifier = .required },
12894 },
12895 },
12896 .{
12897 .name = "OpArbitraryFloatACosINTEL",
12898 .opcode = 5875,
12899 .operands = &.{
12900 .{ .kind = .id_result_type, .quantifier = .required },
12901 .{ .kind = .id_result, .quantifier = .required },
12902 .{ .kind = .id_ref, .quantifier = .required },
12903 .{ .kind = .literal_integer, .quantifier = .required },
12904 .{ .kind = .literal_integer, .quantifier = .required },
12905 .{ .kind = .literal_integer, .quantifier = .required },
12906 .{ .kind = .literal_integer, .quantifier = .required },
12907 .{ .kind = .literal_integer, .quantifier = .required },
12908 },
12909 },
12910 .{
12911 .name = "OpArbitraryFloatACosPiINTEL",
12912 .opcode = 5876,
12913 .operands = &.{
12914 .{ .kind = .id_result_type, .quantifier = .required },
12915 .{ .kind = .id_result, .quantifier = .required },
12916 .{ .kind = .id_ref, .quantifier = .required },
12917 .{ .kind = .literal_integer, .quantifier = .required },
12918 .{ .kind = .literal_integer, .quantifier = .required },
12919 .{ .kind = .literal_integer, .quantifier = .required },
12920 .{ .kind = .literal_integer, .quantifier = .required },
12921 .{ .kind = .literal_integer, .quantifier = .required },
12922 },
12923 },
12924 .{
12925 .name = "OpArbitraryFloatATanINTEL",
12926 .opcode = 5877,
12927 .operands = &.{
12928 .{ .kind = .id_result_type, .quantifier = .required },
12929 .{ .kind = .id_result, .quantifier = .required },
12930 .{ .kind = .id_ref, .quantifier = .required },
12931 .{ .kind = .literal_integer, .quantifier = .required },
12932 .{ .kind = .literal_integer, .quantifier = .required },
12933 .{ .kind = .literal_integer, .quantifier = .required },
12934 .{ .kind = .literal_integer, .quantifier = .required },
12935 .{ .kind = .literal_integer, .quantifier = .required },
12936 },
12937 },
12938 .{
12939 .name = "OpArbitraryFloatATanPiINTEL",
12940 .opcode = 5878,
12941 .operands = &.{
12942 .{ .kind = .id_result_type, .quantifier = .required },
12943 .{ .kind = .id_result, .quantifier = .required },
12944 .{ .kind = .id_ref, .quantifier = .required },
12945 .{ .kind = .literal_integer, .quantifier = .required },
12946 .{ .kind = .literal_integer, .quantifier = .required },
12947 .{ .kind = .literal_integer, .quantifier = .required },
12948 .{ .kind = .literal_integer, .quantifier = .required },
12949 .{ .kind = .literal_integer, .quantifier = .required },
12950 },
12951 },
12952 .{
12953 .name = "OpArbitraryFloatATan2INTEL",
12954 .opcode = 5879,
12955 .operands = &.{
12956 .{ .kind = .id_result_type, .quantifier = .required },
12957 .{ .kind = .id_result, .quantifier = .required },
12958 .{ .kind = .id_ref, .quantifier = .required },
12959 .{ .kind = .literal_integer, .quantifier = .required },
12960 .{ .kind = .id_ref, .quantifier = .required },
12961 .{ .kind = .literal_integer, .quantifier = .required },
12962 .{ .kind = .literal_integer, .quantifier = .required },
12963 .{ .kind = .literal_integer, .quantifier = .required },
12964 .{ .kind = .literal_integer, .quantifier = .required },
12965 .{ .kind = .literal_integer, .quantifier = .required },
12966 },
12967 },
12968 .{
12969 .name = "OpArbitraryFloatPowINTEL",
12970 .opcode = 5880,
12971 .operands = &.{
12972 .{ .kind = .id_result_type, .quantifier = .required },
12973 .{ .kind = .id_result, .quantifier = .required },
12974 .{ .kind = .id_ref, .quantifier = .required },
12975 .{ .kind = .literal_integer, .quantifier = .required },
12976 .{ .kind = .id_ref, .quantifier = .required },
12977 .{ .kind = .literal_integer, .quantifier = .required },
12978 .{ .kind = .literal_integer, .quantifier = .required },
12979 .{ .kind = .literal_integer, .quantifier = .required },
12980 .{ .kind = .literal_integer, .quantifier = .required },
12981 .{ .kind = .literal_integer, .quantifier = .required },
12982 },
12983 },
12984 .{
12985 .name = "OpArbitraryFloatPowRINTEL",
12986 .opcode = 5881,
12987 .operands = &.{
12988 .{ .kind = .id_result_type, .quantifier = .required },
12989 .{ .kind = .id_result, .quantifier = .required },
12990 .{ .kind = .id_ref, .quantifier = .required },
12991 .{ .kind = .literal_integer, .quantifier = .required },
12992 .{ .kind = .id_ref, .quantifier = .required },
12993 .{ .kind = .literal_integer, .quantifier = .required },
12994 .{ .kind = .literal_integer, .quantifier = .required },
12995 .{ .kind = .literal_integer, .quantifier = .required },
12996 .{ .kind = .literal_integer, .quantifier = .required },
12997 .{ .kind = .literal_integer, .quantifier = .required },
12998 },
12999 },
13000 .{
13001 .name = "OpArbitraryFloatPowNINTEL",
13002 .opcode = 5882,
13003 .operands = &.{
13004 .{ .kind = .id_result_type, .quantifier = .required },
13005 .{ .kind = .id_result, .quantifier = .required },
13006 .{ .kind = .id_ref, .quantifier = .required },
13007 .{ .kind = .literal_integer, .quantifier = .required },
13008 .{ .kind = .id_ref, .quantifier = .required },
13009 .{ .kind = .literal_integer, .quantifier = .required },
13010 .{ .kind = .literal_integer, .quantifier = .required },
13011 .{ .kind = .literal_integer, .quantifier = .required },
13012 .{ .kind = .literal_integer, .quantifier = .required },
13013 .{ .kind = .literal_integer, .quantifier = .required },
13014 },
13015 },
13016 .{
13017 .name = "OpLoopControlINTEL",
13018 .opcode = 5887,
13019 .operands = &.{
13020 .{ .kind = .literal_integer, .quantifier = .variadic },
13021 },
13022 },
13023 .{
13024 .name = "OpAliasDomainDeclINTEL",
13025 .opcode = 5911,
13026 .operands = &.{
13027 .{ .kind = .id_result, .quantifier = .required },
13028 .{ .kind = .id_ref, .quantifier = .optional },
13029 },
13030 },
13031 .{
13032 .name = "OpAliasScopeDeclINTEL",
13033 .opcode = 5912,
13034 .operands = &.{
13035 .{ .kind = .id_result, .quantifier = .required },
13036 .{ .kind = .id_ref, .quantifier = .required },
13037 .{ .kind = .id_ref, .quantifier = .optional },
13038 },
13039 },
13040 .{
13041 .name = "OpAliasScopeListDeclINTEL",
13042 .opcode = 5913,
13043 .operands = &.{
13044 .{ .kind = .id_result, .quantifier = .required },
13045 .{ .kind = .id_ref, .quantifier = .variadic },
13046 },
13047 },
13048 .{
13049 .name = "OpFixedSqrtINTEL",
13050 .opcode = 5923,
13051 .operands = &.{
13052 .{ .kind = .id_result_type, .quantifier = .required },
13053 .{ .kind = .id_result, .quantifier = .required },
13054 .{ .kind = .id_ref, .quantifier = .required },
13055 .{ .kind = .literal_integer, .quantifier = .required },
13056 .{ .kind = .literal_integer, .quantifier = .required },
13057 .{ .kind = .literal_integer, .quantifier = .required },
13058 .{ .kind = .literal_integer, .quantifier = .required },
13059 .{ .kind = .literal_integer, .quantifier = .required },
13060 },
13061 },
13062 .{
13063 .name = "OpFixedRecipINTEL",
13064 .opcode = 5924,
13065 .operands = &.{
13066 .{ .kind = .id_result_type, .quantifier = .required },
13067 .{ .kind = .id_result, .quantifier = .required },
13068 .{ .kind = .id_ref, .quantifier = .required },
13069 .{ .kind = .literal_integer, .quantifier = .required },
13070 .{ .kind = .literal_integer, .quantifier = .required },
13071 .{ .kind = .literal_integer, .quantifier = .required },
13072 .{ .kind = .literal_integer, .quantifier = .required },
13073 .{ .kind = .literal_integer, .quantifier = .required },
13074 },
13075 },
13076 .{
13077 .name = "OpFixedRsqrtINTEL",
13078 .opcode = 5925,
13079 .operands = &.{
13080 .{ .kind = .id_result_type, .quantifier = .required },
13081 .{ .kind = .id_result, .quantifier = .required },
13082 .{ .kind = .id_ref, .quantifier = .required },
13083 .{ .kind = .literal_integer, .quantifier = .required },
13084 .{ .kind = .literal_integer, .quantifier = .required },
13085 .{ .kind = .literal_integer, .quantifier = .required },
13086 .{ .kind = .literal_integer, .quantifier = .required },
13087 .{ .kind = .literal_integer, .quantifier = .required },
13088 },
13089 },
13090 .{
13091 .name = "OpFixedSinINTEL",
13092 .opcode = 5926,
13093 .operands = &.{
13094 .{ .kind = .id_result_type, .quantifier = .required },
13095 .{ .kind = .id_result, .quantifier = .required },
13096 .{ .kind = .id_ref, .quantifier = .required },
13097 .{ .kind = .literal_integer, .quantifier = .required },
13098 .{ .kind = .literal_integer, .quantifier = .required },
13099 .{ .kind = .literal_integer, .quantifier = .required },
13100 .{ .kind = .literal_integer, .quantifier = .required },
13101 .{ .kind = .literal_integer, .quantifier = .required },
13102 },
13103 },
13104 .{
13105 .name = "OpFixedCosINTEL",
13106 .opcode = 5927,
13107 .operands = &.{
13108 .{ .kind = .id_result_type, .quantifier = .required },
13109 .{ .kind = .id_result, .quantifier = .required },
13110 .{ .kind = .id_ref, .quantifier = .required },
13111 .{ .kind = .literal_integer, .quantifier = .required },
13112 .{ .kind = .literal_integer, .quantifier = .required },
13113 .{ .kind = .literal_integer, .quantifier = .required },
13114 .{ .kind = .literal_integer, .quantifier = .required },
13115 .{ .kind = .literal_integer, .quantifier = .required },
13116 },
13117 },
13118 .{
13119 .name = "OpFixedSinCosINTEL",
13120 .opcode = 5928,
13121 .operands = &.{
13122 .{ .kind = .id_result_type, .quantifier = .required },
13123 .{ .kind = .id_result, .quantifier = .required },
13124 .{ .kind = .id_ref, .quantifier = .required },
13125 .{ .kind = .literal_integer, .quantifier = .required },
13126 .{ .kind = .literal_integer, .quantifier = .required },
13127 .{ .kind = .literal_integer, .quantifier = .required },
13128 .{ .kind = .literal_integer, .quantifier = .required },
13129 .{ .kind = .literal_integer, .quantifier = .required },
13130 },
13131 },
13132 .{
13133 .name = "OpFixedSinPiINTEL",
13134 .opcode = 5929,
13135 .operands = &.{
13136 .{ .kind = .id_result_type, .quantifier = .required },
13137 .{ .kind = .id_result, .quantifier = .required },
13138 .{ .kind = .id_ref, .quantifier = .required },
13139 .{ .kind = .literal_integer, .quantifier = .required },
13140 .{ .kind = .literal_integer, .quantifier = .required },
13141 .{ .kind = .literal_integer, .quantifier = .required },
13142 .{ .kind = .literal_integer, .quantifier = .required },
13143 .{ .kind = .literal_integer, .quantifier = .required },
13144 },
13145 },
13146 .{
13147 .name = "OpFixedCosPiINTEL",
13148 .opcode = 5930,
13149 .operands = &.{
13150 .{ .kind = .id_result_type, .quantifier = .required },
13151 .{ .kind = .id_result, .quantifier = .required },
13152 .{ .kind = .id_ref, .quantifier = .required },
13153 .{ .kind = .literal_integer, .quantifier = .required },
13154 .{ .kind = .literal_integer, .quantifier = .required },
13155 .{ .kind = .literal_integer, .quantifier = .required },
13156 .{ .kind = .literal_integer, .quantifier = .required },
13157 .{ .kind = .literal_integer, .quantifier = .required },
13158 },
13159 },
13160 .{
13161 .name = "OpFixedSinCosPiINTEL",
13162 .opcode = 5931,
13163 .operands = &.{
13164 .{ .kind = .id_result_type, .quantifier = .required },
13165 .{ .kind = .id_result, .quantifier = .required },
13166 .{ .kind = .id_ref, .quantifier = .required },
13167 .{ .kind = .literal_integer, .quantifier = .required },
13168 .{ .kind = .literal_integer, .quantifier = .required },
13169 .{ .kind = .literal_integer, .quantifier = .required },
13170 .{ .kind = .literal_integer, .quantifier = .required },
13171 .{ .kind = .literal_integer, .quantifier = .required },
13172 },
13173 },
13174 .{
13175 .name = "OpFixedLogINTEL",
13176 .opcode = 5932,
13177 .operands = &.{
13178 .{ .kind = .id_result_type, .quantifier = .required },
13179 .{ .kind = .id_result, .quantifier = .required },
13180 .{ .kind = .id_ref, .quantifier = .required },
13181 .{ .kind = .literal_integer, .quantifier = .required },
13182 .{ .kind = .literal_integer, .quantifier = .required },
13183 .{ .kind = .literal_integer, .quantifier = .required },
13184 .{ .kind = .literal_integer, .quantifier = .required },
13185 .{ .kind = .literal_integer, .quantifier = .required },
13186 },
13187 },
13188 .{
13189 .name = "OpFixedExpINTEL",
13190 .opcode = 5933,
13191 .operands = &.{
13192 .{ .kind = .id_result_type, .quantifier = .required },
13193 .{ .kind = .id_result, .quantifier = .required },
13194 .{ .kind = .id_ref, .quantifier = .required },
13195 .{ .kind = .literal_integer, .quantifier = .required },
13196 .{ .kind = .literal_integer, .quantifier = .required },
13197 .{ .kind = .literal_integer, .quantifier = .required },
13198 .{ .kind = .literal_integer, .quantifier = .required },
13199 .{ .kind = .literal_integer, .quantifier = .required },
13200 },
13201 },
13202 .{
13203 .name = "OpPtrCastToCrossWorkgroupINTEL",
13204 .opcode = 5934,
13205 .operands = &.{
13206 .{ .kind = .id_result_type, .quantifier = .required },
13207 .{ .kind = .id_result, .quantifier = .required },
13208 .{ .kind = .id_ref, .quantifier = .required },
13209 },
13210 },
13211 .{
13212 .name = "OpCrossWorkgroupCastToPtrINTEL",
13213 .opcode = 5938,
13214 .operands = &.{
13215 .{ .kind = .id_result_type, .quantifier = .required },
13216 .{ .kind = .id_result, .quantifier = .required },
13217 .{ .kind = .id_ref, .quantifier = .required },
13218 },
13219 },
13220 .{
13221 .name = "OpReadPipeBlockingINTEL",
13222 .opcode = 5946,
13223 .operands = &.{
13224 .{ .kind = .id_result_type, .quantifier = .required },
13225 .{ .kind = .id_result, .quantifier = .required },
13226 .{ .kind = .id_ref, .quantifier = .required },
13227 .{ .kind = .id_ref, .quantifier = .required },
13228 },
13229 },
13230 .{
13231 .name = "OpWritePipeBlockingINTEL",
13232 .opcode = 5947,
13233 .operands = &.{
13234 .{ .kind = .id_result_type, .quantifier = .required },
13235 .{ .kind = .id_result, .quantifier = .required },
13236 .{ .kind = .id_ref, .quantifier = .required },
13237 .{ .kind = .id_ref, .quantifier = .required },
13238 },
13239 },
13240 .{
13241 .name = "OpFPGARegINTEL",
13242 .opcode = 5949,
13243 .operands = &.{
13244 .{ .kind = .id_result_type, .quantifier = .required },
13245 .{ .kind = .id_result, .quantifier = .required },
13246 .{ .kind = .id_ref, .quantifier = .required },
13247 },
13248 },
13249 .{
13250 .name = "OpRayQueryGetRayTMinKHR",
13251 .opcode = 6016,
13252 .operands = &.{
13253 .{ .kind = .id_result_type, .quantifier = .required },
13254 .{ .kind = .id_result, .quantifier = .required },
13255 .{ .kind = .id_ref, .quantifier = .required },
13256 },
13257 },
13258 .{
13259 .name = "OpRayQueryGetRayFlagsKHR",
13260 .opcode = 6017,
13261 .operands = &.{
13262 .{ .kind = .id_result_type, .quantifier = .required },
13263 .{ .kind = .id_result, .quantifier = .required },
13264 .{ .kind = .id_ref, .quantifier = .required },
13265 },
13266 },
13267 .{
13268 .name = "OpRayQueryGetIntersectionTKHR",
13269 .opcode = 6018,
13270 .operands = &.{
13271 .{ .kind = .id_result_type, .quantifier = .required },
13272 .{ .kind = .id_result, .quantifier = .required },
13273 .{ .kind = .id_ref, .quantifier = .required },
13274 .{ .kind = .id_ref, .quantifier = .required },
13275 },
13276 },
13277 .{
13278 .name = "OpRayQueryGetIntersectionInstanceCustomIndexKHR",
13279 .opcode = 6019,
13280 .operands = &.{
13281 .{ .kind = .id_result_type, .quantifier = .required },
13282 .{ .kind = .id_result, .quantifier = .required },
13283 .{ .kind = .id_ref, .quantifier = .required },
13284 .{ .kind = .id_ref, .quantifier = .required },
13285 },
13286 },
13287 .{
13288 .name = "OpRayQueryGetIntersectionInstanceIdKHR",
13289 .opcode = 6020,
13290 .operands = &.{
13291 .{ .kind = .id_result_type, .quantifier = .required },
13292 .{ .kind = .id_result, .quantifier = .required },
13293 .{ .kind = .id_ref, .quantifier = .required },
13294 .{ .kind = .id_ref, .quantifier = .required },
13295 },
13296 },
13297 .{
13298 .name = "OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR",
13299 .opcode = 6021,
13300 .operands = &.{
13301 .{ .kind = .id_result_type, .quantifier = .required },
13302 .{ .kind = .id_result, .quantifier = .required },
13303 .{ .kind = .id_ref, .quantifier = .required },
13304 .{ .kind = .id_ref, .quantifier = .required },
13305 },
13306 },
13307 .{
13308 .name = "OpRayQueryGetIntersectionGeometryIndexKHR",
13309 .opcode = 6022,
13310 .operands = &.{
13311 .{ .kind = .id_result_type, .quantifier = .required },
13312 .{ .kind = .id_result, .quantifier = .required },
13313 .{ .kind = .id_ref, .quantifier = .required },
13314 .{ .kind = .id_ref, .quantifier = .required },
13315 },
13316 },
13317 .{
13318 .name = "OpRayQueryGetIntersectionPrimitiveIndexKHR",
13319 .opcode = 6023,
13320 .operands = &.{
13321 .{ .kind = .id_result_type, .quantifier = .required },
13322 .{ .kind = .id_result, .quantifier = .required },
13323 .{ .kind = .id_ref, .quantifier = .required },
13324 .{ .kind = .id_ref, .quantifier = .required },
13325 },
13326 },
13327 .{
13328 .name = "OpRayQueryGetIntersectionBarycentricsKHR",
13329 .opcode = 6024,
13330 .operands = &.{
13331 .{ .kind = .id_result_type, .quantifier = .required },
13332 .{ .kind = .id_result, .quantifier = .required },
13333 .{ .kind = .id_ref, .quantifier = .required },
13334 .{ .kind = .id_ref, .quantifier = .required },
13335 },
13336 },
13337 .{
13338 .name = "OpRayQueryGetIntersectionFrontFaceKHR",
13339 .opcode = 6025,
13340 .operands = &.{
13341 .{ .kind = .id_result_type, .quantifier = .required },
13342 .{ .kind = .id_result, .quantifier = .required },
13343 .{ .kind = .id_ref, .quantifier = .required },
13344 .{ .kind = .id_ref, .quantifier = .required },
13345 },
13346 },
13347 .{
13348 .name = "OpRayQueryGetIntersectionCandidateAABBOpaqueKHR",
13349 .opcode = 6026,
13350 .operands = &.{
13351 .{ .kind = .id_result_type, .quantifier = .required },
13352 .{ .kind = .id_result, .quantifier = .required },
13353 .{ .kind = .id_ref, .quantifier = .required },
13354 },
13355 },
13356 .{
13357 .name = "OpRayQueryGetIntersectionObjectRayDirectionKHR",
13358 .opcode = 6027,
13359 .operands = &.{
13360 .{ .kind = .id_result_type, .quantifier = .required },
13361 .{ .kind = .id_result, .quantifier = .required },
13362 .{ .kind = .id_ref, .quantifier = .required },
13363 .{ .kind = .id_ref, .quantifier = .required },
13364 },
13365 },
13366 .{
13367 .name = "OpRayQueryGetIntersectionObjectRayOriginKHR",
13368 .opcode = 6028,
13369 .operands = &.{
13370 .{ .kind = .id_result_type, .quantifier = .required },
13371 .{ .kind = .id_result, .quantifier = .required },
13372 .{ .kind = .id_ref, .quantifier = .required },
13373 .{ .kind = .id_ref, .quantifier = .required },
13374 },
13375 },
13376 .{
13377 .name = "OpRayQueryGetWorldRayDirectionKHR",
13378 .opcode = 6029,
13379 .operands = &.{
13380 .{ .kind = .id_result_type, .quantifier = .required },
13381 .{ .kind = .id_result, .quantifier = .required },
13382 .{ .kind = .id_ref, .quantifier = .required },
13383 },
13384 },
13385 .{
13386 .name = "OpRayQueryGetWorldRayOriginKHR",
13387 .opcode = 6030,
13388 .operands = &.{
13389 .{ .kind = .id_result_type, .quantifier = .required },
13390 .{ .kind = .id_result, .quantifier = .required },
13391 .{ .kind = .id_ref, .quantifier = .required },
13392 },
13393 },
13394 .{
13395 .name = "OpRayQueryGetIntersectionObjectToWorldKHR",
13396 .opcode = 6031,
13397 .operands = &.{
13398 .{ .kind = .id_result_type, .quantifier = .required },
13399 .{ .kind = .id_result, .quantifier = .required },
13400 .{ .kind = .id_ref, .quantifier = .required },
13401 .{ .kind = .id_ref, .quantifier = .required },
13402 },
13403 },
13404 .{
13405 .name = "OpRayQueryGetIntersectionWorldToObjectKHR",
13406 .opcode = 6032,
13407 .operands = &.{
13408 .{ .kind = .id_result_type, .quantifier = .required },
13409 .{ .kind = .id_result, .quantifier = .required },
13410 .{ .kind = .id_ref, .quantifier = .required },
13411 .{ .kind = .id_ref, .quantifier = .required },
13412 },
13413 },
13414 .{
13415 .name = "OpAtomicFAddEXT",
13416 .opcode = 6035,
13417 .operands = &.{
13418 .{ .kind = .id_result_type, .quantifier = .required },
13419 .{ .kind = .id_result, .quantifier = .required },
13420 .{ .kind = .id_ref, .quantifier = .required },
13421 .{ .kind = .id_scope, .quantifier = .required },
13422 .{ .kind = .id_memory_semantics, .quantifier = .required },
13423 .{ .kind = .id_ref, .quantifier = .required },
13424 },
13425 },
13426 .{
13427 .name = "OpTypeBufferSurfaceINTEL",
13428 .opcode = 6086,
13429 .operands = &.{
13430 .{ .kind = .id_result, .quantifier = .required },
13431 .{ .kind = .access_qualifier, .quantifier = .required },
13432 },
13433 },
13434 .{
13435 .name = "OpTypeStructContinuedINTEL",
13436 .opcode = 6090,
13437 .operands = &.{
13438 .{ .kind = .id_ref, .quantifier = .variadic },
13439 },
13440 },
13441 .{
13442 .name = "OpConstantCompositeContinuedINTEL",
13443 .opcode = 6091,
13444 .operands = &.{
13445 .{ .kind = .id_ref, .quantifier = .variadic },
13446 },
13447 },
13448 .{
13449 .name = "OpSpecConstantCompositeContinuedINTEL",
13450 .opcode = 6092,
13451 .operands = &.{
13452 .{ .kind = .id_ref, .quantifier = .variadic },
13453 },
13454 },
13455 .{
13456 .name = "OpCompositeConstructContinuedINTEL",
13457 .opcode = 6096,
13458 .operands = &.{
13459 .{ .kind = .id_result_type, .quantifier = .required },
13460 .{ .kind = .id_result, .quantifier = .required },
13461 .{ .kind = .id_ref, .quantifier = .variadic },
13462 },
13463 },
13464 .{
13465 .name = "OpConvertFToBF16INTEL",
13466 .opcode = 6116,
13467 .operands = &.{
13468 .{ .kind = .id_result_type, .quantifier = .required },
13469 .{ .kind = .id_result, .quantifier = .required },
13470 .{ .kind = .id_ref, .quantifier = .required },
13471 },
13472 },
13473 .{
13474 .name = "OpConvertBF16ToFINTEL",
13475 .opcode = 6117,
13476 .operands = &.{
13477 .{ .kind = .id_result_type, .quantifier = .required },
13478 .{ .kind = .id_result, .quantifier = .required },
13479 .{ .kind = .id_ref, .quantifier = .required },
13480 },
13481 },
13482 .{
13483 .name = "OpControlBarrierArriveINTEL",
13484 .opcode = 6142,
13485 .operands = &.{
13486 .{ .kind = .id_scope, .quantifier = .required },
13487 .{ .kind = .id_scope, .quantifier = .required },
13488 .{ .kind = .id_memory_semantics, .quantifier = .required },
13489 },
13490 },
13491 .{
13492 .name = "OpControlBarrierWaitINTEL",
13493 .opcode = 6143,
13494 .operands = &.{
13495 .{ .kind = .id_scope, .quantifier = .required },
13496 .{ .kind = .id_scope, .quantifier = .required },
13497 .{ .kind = .id_memory_semantics, .quantifier = .required },
13498 },
13499 },
13500 .{
13501 .name = "OpArithmeticFenceEXT",
13502 .opcode = 6145,
13503 .operands = &.{
13504 .{ .kind = .id_result_type, .quantifier = .required },
13505 .{ .kind = .id_result, .quantifier = .required },
13506 .{ .kind = .id_ref, .quantifier = .required },
13507 },
13508 },
13509 .{
13510 .name = "OpTaskSequenceCreateINTEL",
13511 .opcode = 6163,
13512 .operands = &.{
13513 .{ .kind = .id_result_type, .quantifier = .required },
13514 .{ .kind = .id_result, .quantifier = .required },
13515 .{ .kind = .id_ref, .quantifier = .required },
13516 .{ .kind = .literal_integer, .quantifier = .required },
13517 .{ .kind = .literal_integer, .quantifier = .required },
13518 .{ .kind = .literal_integer, .quantifier = .required },
13519 .{ .kind = .literal_integer, .quantifier = .required },
13520 },
13521 },
13522 .{
13523 .name = "OpTaskSequenceAsyncINTEL",
13524 .opcode = 6164,
13525 .operands = &.{
13526 .{ .kind = .id_ref, .quantifier = .required },
13527 .{ .kind = .id_ref, .quantifier = .variadic },
13528 },
13529 },
13530 .{
13531 .name = "OpTaskSequenceGetINTEL",
13532 .opcode = 6165,
13533 .operands = &.{
13534 .{ .kind = .id_result_type, .quantifier = .required },
13535 .{ .kind = .id_result, .quantifier = .required },
13536 .{ .kind = .id_ref, .quantifier = .required },
13537 },
13538 },
13539 .{
13540 .name = "OpTaskSequenceReleaseINTEL",
13541 .opcode = 6166,
13542 .operands = &.{
13543 .{ .kind = .id_ref, .quantifier = .required },
13544 },
13545 },
13546 .{
13547 .name = "OpTypeTaskSequenceINTEL",
13548 .opcode = 6199,
13549 .operands = &.{
13550 .{ .kind = .id_result, .quantifier = .required },
13551 },
13552 },
13553 .{
13554 .name = "OpSubgroupBlockPrefetchINTEL",
13555 .opcode = 6221,
13556 .operands = &.{
13557 .{ .kind = .id_ref, .quantifier = .required },
13558 .{ .kind = .id_ref, .quantifier = .required },
13559 .{ .kind = .memory_access, .quantifier = .optional },
13560 },
13561 },
13562 .{
13563 .name = "OpSubgroup2DBlockLoadINTEL",
13564 .opcode = 6231,
13565 .operands = &.{
13566 .{ .kind = .id_ref, .quantifier = .required },
13567 .{ .kind = .id_ref, .quantifier = .required },
13568 .{ .kind = .id_ref, .quantifier = .required },
13569 .{ .kind = .id_ref, .quantifier = .required },
13570 .{ .kind = .id_ref, .quantifier = .required },
13571 .{ .kind = .id_ref, .quantifier = .required },
13572 .{ .kind = .id_ref, .quantifier = .required },
13573 .{ .kind = .id_ref, .quantifier = .required },
13574 .{ .kind = .id_ref, .quantifier = .required },
13575 .{ .kind = .id_ref, .quantifier = .required },
13576 },
13577 },
13578 .{
13579 .name = "OpSubgroup2DBlockLoadTransformINTEL",
13580 .opcode = 6232,
13581 .operands = &.{
13582 .{ .kind = .id_ref, .quantifier = .required },
13583 .{ .kind = .id_ref, .quantifier = .required },
13584 .{ .kind = .id_ref, .quantifier = .required },
13585 .{ .kind = .id_ref, .quantifier = .required },
13586 .{ .kind = .id_ref, .quantifier = .required },
13587 .{ .kind = .id_ref, .quantifier = .required },
13588 .{ .kind = .id_ref, .quantifier = .required },
13589 .{ .kind = .id_ref, .quantifier = .required },
13590 .{ .kind = .id_ref, .quantifier = .required },
13591 .{ .kind = .id_ref, .quantifier = .required },
13592 },
13593 },
13594 .{
13595 .name = "OpSubgroup2DBlockLoadTransposeINTEL",
13596 .opcode = 6233,
13597 .operands = &.{
13598 .{ .kind = .id_ref, .quantifier = .required },
13599 .{ .kind = .id_ref, .quantifier = .required },
13600 .{ .kind = .id_ref, .quantifier = .required },
13601 .{ .kind = .id_ref, .quantifier = .required },
13602 .{ .kind = .id_ref, .quantifier = .required },
13603 .{ .kind = .id_ref, .quantifier = .required },
13604 .{ .kind = .id_ref, .quantifier = .required },
13605 .{ .kind = .id_ref, .quantifier = .required },
13606 .{ .kind = .id_ref, .quantifier = .required },
13607 .{ .kind = .id_ref, .quantifier = .required },
13608 },
13609 },
13610 .{
13611 .name = "OpSubgroup2DBlockPrefetchINTEL",
13612 .opcode = 6234,
13613 .operands = &.{
13614 .{ .kind = .id_ref, .quantifier = .required },
13615 .{ .kind = .id_ref, .quantifier = .required },
13616 .{ .kind = .id_ref, .quantifier = .required },
13617 .{ .kind = .id_ref, .quantifier = .required },
13618 .{ .kind = .id_ref, .quantifier = .required },
13619 .{ .kind = .id_ref, .quantifier = .required },
13620 .{ .kind = .id_ref, .quantifier = .required },
13621 .{ .kind = .id_ref, .quantifier = .required },
13622 .{ .kind = .id_ref, .quantifier = .required },
13623 },
13624 },
13625 .{
13626 .name = "OpSubgroup2DBlockStoreINTEL",
13627 .opcode = 6235,
13628 .operands = &.{
13629 .{ .kind = .id_ref, .quantifier = .required },
13630 .{ .kind = .id_ref, .quantifier = .required },
13631 .{ .kind = .id_ref, .quantifier = .required },
13632 .{ .kind = .id_ref, .quantifier = .required },
13633 .{ .kind = .id_ref, .quantifier = .required },
13634 .{ .kind = .id_ref, .quantifier = .required },
13635 .{ .kind = .id_ref, .quantifier = .required },
13636 .{ .kind = .id_ref, .quantifier = .required },
13637 .{ .kind = .id_ref, .quantifier = .required },
13638 .{ .kind = .id_ref, .quantifier = .required },
13639 },
13640 },
13641 .{
13642 .name = "OpSubgroupMatrixMultiplyAccumulateINTEL",
13643 .opcode = 6237,
13644 .operands = &.{
13645 .{ .kind = .id_result_type, .quantifier = .required },
13646 .{ .kind = .id_result, .quantifier = .required },
13647 .{ .kind = .id_ref, .quantifier = .required },
13648 .{ .kind = .id_ref, .quantifier = .required },
13649 .{ .kind = .id_ref, .quantifier = .required },
13650 .{ .kind = .id_ref, .quantifier = .required },
13651 .{ .kind = .matrix_multiply_accumulate_operands, .quantifier = .optional },
13652 },
13653 },
13654 .{
13655 .name = "OpBitwiseFunctionINTEL",
13656 .opcode = 6242,
13657 .operands = &.{
13658 .{ .kind = .id_result_type, .quantifier = .required },
13659 .{ .kind = .id_result, .quantifier = .required },
13660 .{ .kind = .id_ref, .quantifier = .required },
13661 .{ .kind = .id_ref, .quantifier = .required },
13662 .{ .kind = .id_ref, .quantifier = .required },
13663 .{ .kind = .id_ref, .quantifier = .required },
13664 },
13665 },
13666 .{
13667 .name = "OpGroupIMulKHR",
13668 .opcode = 6401,
13669 .operands = &.{
13670 .{ .kind = .id_result_type, .quantifier = .required },
13671 .{ .kind = .id_result, .quantifier = .required },
13672 .{ .kind = .id_scope, .quantifier = .required },
13673 .{ .kind = .group_operation, .quantifier = .required },
13674 .{ .kind = .id_ref, .quantifier = .required },
13675 },
13676 },
13677 .{
13678 .name = "OpGroupFMulKHR",
13679 .opcode = 6402,
13680 .operands = &.{
13681 .{ .kind = .id_result_type, .quantifier = .required },
13682 .{ .kind = .id_result, .quantifier = .required },
13683 .{ .kind = .id_scope, .quantifier = .required },
13684 .{ .kind = .group_operation, .quantifier = .required },
13685 .{ .kind = .id_ref, .quantifier = .required },
13686 },
13687 },
13688 .{
13689 .name = "OpGroupBitwiseAndKHR",
13690 .opcode = 6403,
13691 .operands = &.{
13692 .{ .kind = .id_result_type, .quantifier = .required },
13693 .{ .kind = .id_result, .quantifier = .required },
13694 .{ .kind = .id_scope, .quantifier = .required },
13695 .{ .kind = .group_operation, .quantifier = .required },
13696 .{ .kind = .id_ref, .quantifier = .required },
13697 },
13698 },
13699 .{
13700 .name = "OpGroupBitwiseOrKHR",
13701 .opcode = 6404,
13702 .operands = &.{
13703 .{ .kind = .id_result_type, .quantifier = .required },
13704 .{ .kind = .id_result, .quantifier = .required },
13705 .{ .kind = .id_scope, .quantifier = .required },
13706 .{ .kind = .group_operation, .quantifier = .required },
13707 .{ .kind = .id_ref, .quantifier = .required },
13708 },
13709 },
13710 .{
13711 .name = "OpGroupBitwiseXorKHR",
13712 .opcode = 6405,
13713 .operands = &.{
13714 .{ .kind = .id_result_type, .quantifier = .required },
13715 .{ .kind = .id_result, .quantifier = .required },
13716 .{ .kind = .id_scope, .quantifier = .required },
13717 .{ .kind = .group_operation, .quantifier = .required },
13718 .{ .kind = .id_ref, .quantifier = .required },
13719 },
13720 },
13721 .{
13722 .name = "OpGroupLogicalAndKHR",
13723 .opcode = 6406,
13724 .operands = &.{
13725 .{ .kind = .id_result_type, .quantifier = .required },
13726 .{ .kind = .id_result, .quantifier = .required },
13727 .{ .kind = .id_scope, .quantifier = .required },
13728 .{ .kind = .group_operation, .quantifier = .required },
13729 .{ .kind = .id_ref, .quantifier = .required },
13730 },
13731 },
13732 .{
13733 .name = "OpGroupLogicalOrKHR",
13734 .opcode = 6407,
13735 .operands = &.{
13736 .{ .kind = .id_result_type, .quantifier = .required },
13737 .{ .kind = .id_result, .quantifier = .required },
13738 .{ .kind = .id_scope, .quantifier = .required },
13739 .{ .kind = .group_operation, .quantifier = .required },
13740 .{ .kind = .id_ref, .quantifier = .required },
13741 },
13742 },
13743 .{
13744 .name = "OpGroupLogicalXorKHR",
13745 .opcode = 6408,
13746 .operands = &.{
13747 .{ .kind = .id_result_type, .quantifier = .required },
13748 .{ .kind = .id_result, .quantifier = .required },
13749 .{ .kind = .id_scope, .quantifier = .required },
13750 .{ .kind = .group_operation, .quantifier = .required },
13751 .{ .kind = .id_ref, .quantifier = .required },
13752 },
13753 },
13754 .{
13755 .name = "OpRoundFToTF32INTEL",
13756 .opcode = 6426,
13757 .operands = &.{
13758 .{ .kind = .id_result_type, .quantifier = .required },
13759 .{ .kind = .id_result, .quantifier = .required },
13760 .{ .kind = .id_ref, .quantifier = .required },
13761 },
13762 },
13763 .{
13764 .name = "OpMaskedGatherINTEL",
13765 .opcode = 6428,
13766 .operands = &.{
13767 .{ .kind = .id_result_type, .quantifier = .required },
13768 .{ .kind = .id_result, .quantifier = .required },
13769 .{ .kind = .id_ref, .quantifier = .required },
13770 .{ .kind = .literal_integer, .quantifier = .required },
13771 .{ .kind = .id_ref, .quantifier = .required },
13772 .{ .kind = .id_ref, .quantifier = .required },
13773 },
13774 },
13775 .{
13776 .name = "OpMaskedScatterINTEL",
13777 .opcode = 6429,
13778 .operands = &.{
13779 .{ .kind = .id_ref, .quantifier = .required },
13780 .{ .kind = .id_ref, .quantifier = .required },
13781 .{ .kind = .literal_integer, .quantifier = .required },
13782 .{ .kind = .id_ref, .quantifier = .required },
13783 },
13784 },
13785 .{
13786 .name = "OpConvertHandleToImageINTEL",
13787 .opcode = 6529,
13788 .operands = &.{
13789 .{ .kind = .id_result_type, .quantifier = .required },
13790 .{ .kind = .id_result, .quantifier = .required },
13791 .{ .kind = .id_ref, .quantifier = .required },
13792 },
13793 },
13794 .{
13795 .name = "OpConvertHandleToSamplerINTEL",
13796 .opcode = 6530,
13797 .operands = &.{
13798 .{ .kind = .id_result_type, .quantifier = .required },
13799 .{ .kind = .id_result, .quantifier = .required },
13800 .{ .kind = .id_ref, .quantifier = .required },
13801 },
13802 },
13803 .{
13804 .name = "OpConvertHandleToSampledImageINTEL",
13805 .opcode = 6531,
13806 .operands = &.{
13807 .{ .kind = .id_result_type, .quantifier = .required },
13808 .{ .kind = .id_result, .quantifier = .required },
13809 .{ .kind = .id_ref, .quantifier = .required },
13810 },
13811 },
13812 },
13813 .@"GLSL.std.450" => &.{
13814 .{
13815 .name = "Round",
13816 .opcode = 1,
13817 .operands = &.{
13818 .{ .kind = .id_ref, .quantifier = .required },
13819 },
13820 },
13821 .{
13822 .name = "RoundEven",
13823 .opcode = 2,
13824 .operands = &.{
13825 .{ .kind = .id_ref, .quantifier = .required },
13826 },
13827 },
13828 .{
13829 .name = "Trunc",
13830 .opcode = 3,
13831 .operands = &.{
13832 .{ .kind = .id_ref, .quantifier = .required },
13833 },
13834 },
13835 .{
13836 .name = "FAbs",
13837 .opcode = 4,
13838 .operands = &.{
13839 .{ .kind = .id_ref, .quantifier = .required },
13840 },
13841 },
13842 .{
13843 .name = "SAbs",
13844 .opcode = 5,
13845 .operands = &.{
13846 .{ .kind = .id_ref, .quantifier = .required },
13847 },
13848 },
13849 .{
13850 .name = "FSign",
13851 .opcode = 6,
13852 .operands = &.{
13853 .{ .kind = .id_ref, .quantifier = .required },
13854 },
13855 },
13856 .{
13857 .name = "SSign",
13858 .opcode = 7,
13859 .operands = &.{
13860 .{ .kind = .id_ref, .quantifier = .required },
13861 },
13862 },
13863 .{
13864 .name = "Floor",
13865 .opcode = 8,
13866 .operands = &.{
13867 .{ .kind = .id_ref, .quantifier = .required },
13868 },
13869 },
13870 .{
13871 .name = "Ceil",
13872 .opcode = 9,
13873 .operands = &.{
13874 .{ .kind = .id_ref, .quantifier = .required },
13875 },
13876 },
13877 .{
13878 .name = "Fract",
13879 .opcode = 10,
13880 .operands = &.{
13881 .{ .kind = .id_ref, .quantifier = .required },
13882 },
13883 },
13884 .{
13885 .name = "Radians",
13886 .opcode = 11,
13887 .operands = &.{
13888 .{ .kind = .id_ref, .quantifier = .required },
13889 },
13890 },
13891 .{
13892 .name = "Degrees",
13893 .opcode = 12,
13894 .operands = &.{
13895 .{ .kind = .id_ref, .quantifier = .required },
13896 },
13897 },
13898 .{
13899 .name = "Sin",
13900 .opcode = 13,
13901 .operands = &.{
13902 .{ .kind = .id_ref, .quantifier = .required },
13903 },
13904 },
13905 .{
13906 .name = "Cos",
13907 .opcode = 14,
13908 .operands = &.{
13909 .{ .kind = .id_ref, .quantifier = .required },
13910 },
13911 },
13912 .{
13913 .name = "Tan",
13914 .opcode = 15,
13915 .operands = &.{
13916 .{ .kind = .id_ref, .quantifier = .required },
13917 },
13918 },
13919 .{
13920 .name = "Asin",
13921 .opcode = 16,
13922 .operands = &.{
13923 .{ .kind = .id_ref, .quantifier = .required },
13924 },
13925 },
13926 .{
13927 .name = "Acos",
13928 .opcode = 17,
13929 .operands = &.{
13930 .{ .kind = .id_ref, .quantifier = .required },
13931 },
13932 },
13933 .{
13934 .name = "Atan",
13935 .opcode = 18,
13936 .operands = &.{
13937 .{ .kind = .id_ref, .quantifier = .required },
13938 },
13939 },
13940 .{
13941 .name = "Sinh",
13942 .opcode = 19,
13943 .operands = &.{
13944 .{ .kind = .id_ref, .quantifier = .required },
13945 },
13946 },
13947 .{
13948 .name = "Cosh",
13949 .opcode = 20,
13950 .operands = &.{
13951 .{ .kind = .id_ref, .quantifier = .required },
13952 },
13953 },
13954 .{
13955 .name = "Tanh",
13956 .opcode = 21,
13957 .operands = &.{
13958 .{ .kind = .id_ref, .quantifier = .required },
13959 },
13960 },
13961 .{
13962 .name = "Asinh",
13963 .opcode = 22,
13964 .operands = &.{
13965 .{ .kind = .id_ref, .quantifier = .required },
13966 },
13967 },
13968 .{
13969 .name = "Acosh",
13970 .opcode = 23,
13971 .operands = &.{
13972 .{ .kind = .id_ref, .quantifier = .required },
13973 },
13974 },
13975 .{
13976 .name = "Atanh",
13977 .opcode = 24,
13978 .operands = &.{
13979 .{ .kind = .id_ref, .quantifier = .required },
13980 },
13981 },
13982 .{
13983 .name = "Atan2",
13984 .opcode = 25,
13985 .operands = &.{
13986 .{ .kind = .id_ref, .quantifier = .required },
13987 .{ .kind = .id_ref, .quantifier = .required },
13988 },
13989 },
13990 .{
13991 .name = "Pow",
13992 .opcode = 26,
13993 .operands = &.{
13994 .{ .kind = .id_ref, .quantifier = .required },
13995 .{ .kind = .id_ref, .quantifier = .required },
13996 },
13997 },
13998 .{
13999 .name = "Exp",
14000 .opcode = 27,
14001 .operands = &.{
14002 .{ .kind = .id_ref, .quantifier = .required },
14003 },
14004 },
14005 .{
14006 .name = "Log",
14007 .opcode = 28,
14008 .operands = &.{
14009 .{ .kind = .id_ref, .quantifier = .required },
14010 },
14011 },
14012 .{
14013 .name = "Exp2",
14014 .opcode = 29,
14015 .operands = &.{
14016 .{ .kind = .id_ref, .quantifier = .required },
14017 },
14018 },
14019 .{
14020 .name = "Log2",
14021 .opcode = 30,
14022 .operands = &.{
14023 .{ .kind = .id_ref, .quantifier = .required },
14024 },
14025 },
14026 .{
14027 .name = "Sqrt",
14028 .opcode = 31,
14029 .operands = &.{
14030 .{ .kind = .id_ref, .quantifier = .required },
14031 },
14032 },
14033 .{
14034 .name = "InverseSqrt",
14035 .opcode = 32,
14036 .operands = &.{
14037 .{ .kind = .id_ref, .quantifier = .required },
14038 },
14039 },
14040 .{
14041 .name = "Determinant",
14042 .opcode = 33,
14043 .operands = &.{
14044 .{ .kind = .id_ref, .quantifier = .required },
14045 },
14046 },
14047 .{
14048 .name = "MatrixInverse",
14049 .opcode = 34,
14050 .operands = &.{
14051 .{ .kind = .id_ref, .quantifier = .required },
14052 },
14053 },
14054 .{
14055 .name = "Modf",
14056 .opcode = 35,
14057 .operands = &.{
14058 .{ .kind = .id_ref, .quantifier = .required },
14059 .{ .kind = .id_ref, .quantifier = .required },
14060 },
14061 },
14062 .{
14063 .name = "ModfStruct",
14064 .opcode = 36,
14065 .operands = &.{
14066 .{ .kind = .id_ref, .quantifier = .required },
14067 },
14068 },
14069 .{
14070 .name = "FMin",
14071 .opcode = 37,
14072 .operands = &.{
14073 .{ .kind = .id_ref, .quantifier = .required },
14074 .{ .kind = .id_ref, .quantifier = .required },
14075 },
14076 },
14077 .{
14078 .name = "UMin",
14079 .opcode = 38,
14080 .operands = &.{
14081 .{ .kind = .id_ref, .quantifier = .required },
14082 .{ .kind = .id_ref, .quantifier = .required },
14083 },
14084 },
14085 .{
14086 .name = "SMin",
14087 .opcode = 39,
14088 .operands = &.{
14089 .{ .kind = .id_ref, .quantifier = .required },
14090 .{ .kind = .id_ref, .quantifier = .required },
14091 },
14092 },
14093 .{
14094 .name = "FMax",
14095 .opcode = 40,
14096 .operands = &.{
14097 .{ .kind = .id_ref, .quantifier = .required },
14098 .{ .kind = .id_ref, .quantifier = .required },
14099 },
14100 },
14101 .{
14102 .name = "UMax",
14103 .opcode = 41,
14104 .operands = &.{
14105 .{ .kind = .id_ref, .quantifier = .required },
14106 .{ .kind = .id_ref, .quantifier = .required },
14107 },
14108 },
14109 .{
14110 .name = "SMax",
14111 .opcode = 42,
14112 .operands = &.{
14113 .{ .kind = .id_ref, .quantifier = .required },
14114 .{ .kind = .id_ref, .quantifier = .required },
14115 },
14116 },
14117 .{
14118 .name = "FClamp",
14119 .opcode = 43,
14120 .operands = &.{
14121 .{ .kind = .id_ref, .quantifier = .required },
14122 .{ .kind = .id_ref, .quantifier = .required },
14123 .{ .kind = .id_ref, .quantifier = .required },
14124 },
14125 },
14126 .{
14127 .name = "UClamp",
14128 .opcode = 44,
14129 .operands = &.{
14130 .{ .kind = .id_ref, .quantifier = .required },
14131 .{ .kind = .id_ref, .quantifier = .required },
14132 .{ .kind = .id_ref, .quantifier = .required },
14133 },
14134 },
14135 .{
14136 .name = "SClamp",
14137 .opcode = 45,
14138 .operands = &.{
14139 .{ .kind = .id_ref, .quantifier = .required },
14140 .{ .kind = .id_ref, .quantifier = .required },
14141 .{ .kind = .id_ref, .quantifier = .required },
14142 },
14143 },
14144 .{
14145 .name = "FMix",
14146 .opcode = 46,
14147 .operands = &.{
14148 .{ .kind = .id_ref, .quantifier = .required },
14149 .{ .kind = .id_ref, .quantifier = .required },
14150 .{ .kind = .id_ref, .quantifier = .required },
14151 },
14152 },
14153 .{
14154 .name = "IMix",
14155 .opcode = 47,
14156 .operands = &.{
14157 .{ .kind = .id_ref, .quantifier = .required },
14158 .{ .kind = .id_ref, .quantifier = .required },
14159 .{ .kind = .id_ref, .quantifier = .required },
14160 },
14161 },
14162 .{
14163 .name = "Step",
14164 .opcode = 48,
14165 .operands = &.{
14166 .{ .kind = .id_ref, .quantifier = .required },
14167 .{ .kind = .id_ref, .quantifier = .required },
14168 },
14169 },
14170 .{
14171 .name = "SmoothStep",
14172 .opcode = 49,
14173 .operands = &.{
14174 .{ .kind = .id_ref, .quantifier = .required },
14175 .{ .kind = .id_ref, .quantifier = .required },
14176 .{ .kind = .id_ref, .quantifier = .required },
14177 },
14178 },
14179 .{
14180 .name = "Fma",
14181 .opcode = 50,
14182 .operands = &.{
14183 .{ .kind = .id_ref, .quantifier = .required },
14184 .{ .kind = .id_ref, .quantifier = .required },
14185 .{ .kind = .id_ref, .quantifier = .required },
14186 },
14187 },
14188 .{
14189 .name = "Frexp",
14190 .opcode = 51,
14191 .operands = &.{
14192 .{ .kind = .id_ref, .quantifier = .required },
14193 .{ .kind = .id_ref, .quantifier = .required },
14194 },
14195 },
14196 .{
14197 .name = "FrexpStruct",
14198 .opcode = 52,
14199 .operands = &.{
14200 .{ .kind = .id_ref, .quantifier = .required },
14201 },
14202 },
14203 .{
14204 .name = "Ldexp",
14205 .opcode = 53,
14206 .operands = &.{
14207 .{ .kind = .id_ref, .quantifier = .required },
14208 .{ .kind = .id_ref, .quantifier = .required },
14209 },
14210 },
14211 .{
14212 .name = "PackSnorm4x8",
14213 .opcode = 54,
14214 .operands = &.{
14215 .{ .kind = .id_ref, .quantifier = .required },
14216 },
14217 },
14218 .{
14219 .name = "PackUnorm4x8",
14220 .opcode = 55,
14221 .operands = &.{
14222 .{ .kind = .id_ref, .quantifier = .required },
14223 },
14224 },
14225 .{
14226 .name = "PackSnorm2x16",
14227 .opcode = 56,
14228 .operands = &.{
14229 .{ .kind = .id_ref, .quantifier = .required },
14230 },
14231 },
14232 .{
14233 .name = "PackUnorm2x16",
14234 .opcode = 57,
14235 .operands = &.{
14236 .{ .kind = .id_ref, .quantifier = .required },
14237 },
14238 },
14239 .{
14240 .name = "PackHalf2x16",
14241 .opcode = 58,
14242 .operands = &.{
14243 .{ .kind = .id_ref, .quantifier = .required },
14244 },
14245 },
14246 .{
14247 .name = "PackDouble2x32",
14248 .opcode = 59,
14249 .operands = &.{
14250 .{ .kind = .id_ref, .quantifier = .required },
14251 },
14252 },
14253 .{
14254 .name = "UnpackSnorm2x16",
14255 .opcode = 60,
14256 .operands = &.{
14257 .{ .kind = .id_ref, .quantifier = .required },
14258 },
14259 },
14260 .{
14261 .name = "UnpackUnorm2x16",
14262 .opcode = 61,
14263 .operands = &.{
14264 .{ .kind = .id_ref, .quantifier = .required },
14265 },
14266 },
14267 .{
14268 .name = "UnpackHalf2x16",
14269 .opcode = 62,
14270 .operands = &.{
14271 .{ .kind = .id_ref, .quantifier = .required },
14272 },
14273 },
14274 .{
14275 .name = "UnpackSnorm4x8",
14276 .opcode = 63,
14277 .operands = &.{
14278 .{ .kind = .id_ref, .quantifier = .required },
14279 },
14280 },
14281 .{
14282 .name = "UnpackUnorm4x8",
14283 .opcode = 64,
14284 .operands = &.{
14285 .{ .kind = .id_ref, .quantifier = .required },
14286 },
14287 },
14288 .{
14289 .name = "UnpackDouble2x32",
14290 .opcode = 65,
14291 .operands = &.{
14292 .{ .kind = .id_ref, .quantifier = .required },
14293 },
14294 },
14295 .{
14296 .name = "Length",
14297 .opcode = 66,
14298 .operands = &.{
14299 .{ .kind = .id_ref, .quantifier = .required },
14300 },
14301 },
14302 .{
14303 .name = "Distance",
14304 .opcode = 67,
14305 .operands = &.{
14306 .{ .kind = .id_ref, .quantifier = .required },
14307 .{ .kind = .id_ref, .quantifier = .required },
14308 },
14309 },
14310 .{
14311 .name = "Cross",
14312 .opcode = 68,
14313 .operands = &.{
14314 .{ .kind = .id_ref, .quantifier = .required },
14315 .{ .kind = .id_ref, .quantifier = .required },
14316 },
14317 },
14318 .{
14319 .name = "Normalize",
14320 .opcode = 69,
14321 .operands = &.{
14322 .{ .kind = .id_ref, .quantifier = .required },
14323 },
14324 },
14325 .{
14326 .name = "FaceForward",
14327 .opcode = 70,
14328 .operands = &.{
14329 .{ .kind = .id_ref, .quantifier = .required },
14330 .{ .kind = .id_ref, .quantifier = .required },
14331 .{ .kind = .id_ref, .quantifier = .required },
14332 },
14333 },
14334 .{
14335 .name = "Reflect",
14336 .opcode = 71,
14337 .operands = &.{
14338 .{ .kind = .id_ref, .quantifier = .required },
14339 .{ .kind = .id_ref, .quantifier = .required },
14340 },
14341 },
14342 .{
14343 .name = "Refract",
14344 .opcode = 72,
14345 .operands = &.{
14346 .{ .kind = .id_ref, .quantifier = .required },
14347 .{ .kind = .id_ref, .quantifier = .required },
14348 .{ .kind = .id_ref, .quantifier = .required },
14349 },
14350 },
14351 .{
14352 .name = "FindILsb",
14353 .opcode = 73,
14354 .operands = &.{
14355 .{ .kind = .id_ref, .quantifier = .required },
14356 },
14357 },
14358 .{
14359 .name = "FindSMsb",
14360 .opcode = 74,
14361 .operands = &.{
14362 .{ .kind = .id_ref, .quantifier = .required },
14363 },
14364 },
14365 .{
14366 .name = "FindUMsb",
14367 .opcode = 75,
14368 .operands = &.{
14369 .{ .kind = .id_ref, .quantifier = .required },
14370 },
14371 },
14372 .{
14373 .name = "InterpolateAtCentroid",
14374 .opcode = 76,
14375 .operands = &.{
14376 .{ .kind = .id_ref, .quantifier = .required },
14377 },
14378 },
14379 .{
14380 .name = "InterpolateAtSample",
14381 .opcode = 77,
14382 .operands = &.{
14383 .{ .kind = .id_ref, .quantifier = .required },
14384 .{ .kind = .id_ref, .quantifier = .required },
14385 },
14386 },
14387 .{
14388 .name = "InterpolateAtOffset",
14389 .opcode = 78,
14390 .operands = &.{
14391 .{ .kind = .id_ref, .quantifier = .required },
14392 .{ .kind = .id_ref, .quantifier = .required },
14393 },
14394 },
14395 .{
14396 .name = "NMin",
14397 .opcode = 79,
14398 .operands = &.{
14399 .{ .kind = .id_ref, .quantifier = .required },
14400 .{ .kind = .id_ref, .quantifier = .required },
14401 },
14402 },
14403 .{
14404 .name = "NMax",
14405 .opcode = 80,
14406 .operands = &.{
14407 .{ .kind = .id_ref, .quantifier = .required },
14408 .{ .kind = .id_ref, .quantifier = .required },
14409 },
14410 },
14411 .{
14412 .name = "NClamp",
14413 .opcode = 81,
14414 .operands = &.{
14415 .{ .kind = .id_ref, .quantifier = .required },
14416 .{ .kind = .id_ref, .quantifier = .required },
14417 .{ .kind = .id_ref, .quantifier = .required },
14418 },
14419 },
14420 },
14421 .@"OpenCL.std" => &.{
14422 .{
14423 .name = "acos",
14424 .opcode = 0,
14425 .operands = &.{
14426 .{ .kind = .id_ref, .quantifier = .required },
14427 },
14428 },
14429 .{
14430 .name = "acosh",
14431 .opcode = 1,
14432 .operands = &.{
14433 .{ .kind = .id_ref, .quantifier = .required },
14434 },
14435 },
14436 .{
14437 .name = "acospi",
14438 .opcode = 2,
14439 .operands = &.{
14440 .{ .kind = .id_ref, .quantifier = .required },
14441 },
14442 },
14443 .{
14444 .name = "asin",
14445 .opcode = 3,
14446 .operands = &.{
14447 .{ .kind = .id_ref, .quantifier = .required },
14448 },
14449 },
14450 .{
14451 .name = "asinh",
14452 .opcode = 4,
14453 .operands = &.{
14454 .{ .kind = .id_ref, .quantifier = .required },
14455 },
14456 },
14457 .{
14458 .name = "asinpi",
14459 .opcode = 5,
14460 .operands = &.{
14461 .{ .kind = .id_ref, .quantifier = .required },
14462 },
14463 },
14464 .{
14465 .name = "atan",
14466 .opcode = 6,
14467 .operands = &.{
14468 .{ .kind = .id_ref, .quantifier = .required },
14469 },
14470 },
14471 .{
14472 .name = "atan2",
14473 .opcode = 7,
14474 .operands = &.{
14475 .{ .kind = .id_ref, .quantifier = .required },
14476 .{ .kind = .id_ref, .quantifier = .required },
14477 },
14478 },
14479 .{
14480 .name = "atanh",
14481 .opcode = 8,
14482 .operands = &.{
14483 .{ .kind = .id_ref, .quantifier = .required },
14484 },
14485 },
14486 .{
14487 .name = "atanpi",
14488 .opcode = 9,
14489 .operands = &.{
14490 .{ .kind = .id_ref, .quantifier = .required },
14491 },
14492 },
14493 .{
14494 .name = "atan2pi",
14495 .opcode = 10,
14496 .operands = &.{
14497 .{ .kind = .id_ref, .quantifier = .required },
14498 .{ .kind = .id_ref, .quantifier = .required },
14499 },
14500 },
14501 .{
14502 .name = "cbrt",
14503 .opcode = 11,
14504 .operands = &.{
14505 .{ .kind = .id_ref, .quantifier = .required },
14506 },
14507 },
14508 .{
14509 .name = "ceil",
14510 .opcode = 12,
14511 .operands = &.{
14512 .{ .kind = .id_ref, .quantifier = .required },
14513 },
14514 },
14515 .{
14516 .name = "copysign",
14517 .opcode = 13,
14518 .operands = &.{
14519 .{ .kind = .id_ref, .quantifier = .required },
14520 .{ .kind = .id_ref, .quantifier = .required },
14521 },
14522 },
14523 .{
14524 .name = "cos",
14525 .opcode = 14,
14526 .operands = &.{
14527 .{ .kind = .id_ref, .quantifier = .required },
14528 },
14529 },
14530 .{
14531 .name = "cosh",
14532 .opcode = 15,
14533 .operands = &.{
14534 .{ .kind = .id_ref, .quantifier = .required },
14535 },
14536 },
14537 .{
14538 .name = "cospi",
14539 .opcode = 16,
14540 .operands = &.{
14541 .{ .kind = .id_ref, .quantifier = .required },
14542 },
14543 },
14544 .{
14545 .name = "erfc",
14546 .opcode = 17,
14547 .operands = &.{
14548 .{ .kind = .id_ref, .quantifier = .required },
14549 },
14550 },
14551 .{
14552 .name = "erf",
14553 .opcode = 18,
14554 .operands = &.{
14555 .{ .kind = .id_ref, .quantifier = .required },
14556 },
14557 },
14558 .{
14559 .name = "exp",
14560 .opcode = 19,
14561 .operands = &.{
14562 .{ .kind = .id_ref, .quantifier = .required },
14563 },
14564 },
14565 .{
14566 .name = "exp2",
14567 .opcode = 20,
14568 .operands = &.{
14569 .{ .kind = .id_ref, .quantifier = .required },
14570 },
14571 },
14572 .{
14573 .name = "exp10",
14574 .opcode = 21,
14575 .operands = &.{
14576 .{ .kind = .id_ref, .quantifier = .required },
14577 },
14578 },
14579 .{
14580 .name = "expm1",
14581 .opcode = 22,
14582 .operands = &.{
14583 .{ .kind = .id_ref, .quantifier = .required },
14584 },
14585 },
14586 .{
14587 .name = "fabs",
14588 .opcode = 23,
14589 .operands = &.{
14590 .{ .kind = .id_ref, .quantifier = .required },
14591 },
14592 },
14593 .{
14594 .name = "fdim",
14595 .opcode = 24,
14596 .operands = &.{
14597 .{ .kind = .id_ref, .quantifier = .required },
14598 .{ .kind = .id_ref, .quantifier = .required },
14599 },
14600 },
14601 .{
14602 .name = "floor",
14603 .opcode = 25,
14604 .operands = &.{
14605 .{ .kind = .id_ref, .quantifier = .required },
14606 },
14607 },
14608 .{
14609 .name = "fma",
14610 .opcode = 26,
14611 .operands = &.{
14612 .{ .kind = .id_ref, .quantifier = .required },
14613 .{ .kind = .id_ref, .quantifier = .required },
14614 .{ .kind = .id_ref, .quantifier = .required },
14615 },
14616 },
14617 .{
14618 .name = "fmax",
14619 .opcode = 27,
14620 .operands = &.{
14621 .{ .kind = .id_ref, .quantifier = .required },
14622 .{ .kind = .id_ref, .quantifier = .required },
14623 },
14624 },
14625 .{
14626 .name = "fmin",
14627 .opcode = 28,
14628 .operands = &.{
14629 .{ .kind = .id_ref, .quantifier = .required },
14630 .{ .kind = .id_ref, .quantifier = .required },
14631 },
14632 },
14633 .{
14634 .name = "fmod",
14635 .opcode = 29,
14636 .operands = &.{
14637 .{ .kind = .id_ref, .quantifier = .required },
14638 .{ .kind = .id_ref, .quantifier = .required },
14639 },
14640 },
14641 .{
14642 .name = "fract",
14643 .opcode = 30,
14644 .operands = &.{
14645 .{ .kind = .id_ref, .quantifier = .required },
14646 .{ .kind = .id_ref, .quantifier = .required },
14647 },
14648 },
14649 .{
14650 .name = "frexp",
14651 .opcode = 31,
14652 .operands = &.{
14653 .{ .kind = .id_ref, .quantifier = .required },
14654 .{ .kind = .id_ref, .quantifier = .required },
14655 },
14656 },
14657 .{
14658 .name = "hypot",
14659 .opcode = 32,
14660 .operands = &.{
14661 .{ .kind = .id_ref, .quantifier = .required },
14662 .{ .kind = .id_ref, .quantifier = .required },
14663 },
14664 },
14665 .{
14666 .name = "ilogb",
14667 .opcode = 33,
14668 .operands = &.{
14669 .{ .kind = .id_ref, .quantifier = .required },
14670 },
14671 },
14672 .{
14673 .name = "ldexp",
14674 .opcode = 34,
14675 .operands = &.{
14676 .{ .kind = .id_ref, .quantifier = .required },
14677 .{ .kind = .id_ref, .quantifier = .required },
14678 },
14679 },
14680 .{
14681 .name = "lgamma",
14682 .opcode = 35,
14683 .operands = &.{
14684 .{ .kind = .id_ref, .quantifier = .required },
14685 },
14686 },
14687 .{
14688 .name = "lgamma_r",
14689 .opcode = 36,
14690 .operands = &.{
14691 .{ .kind = .id_ref, .quantifier = .required },
14692 .{ .kind = .id_ref, .quantifier = .required },
14693 },
14694 },
14695 .{
14696 .name = "log",
14697 .opcode = 37,
14698 .operands = &.{
14699 .{ .kind = .id_ref, .quantifier = .required },
14700 },
14701 },
14702 .{
14703 .name = "log2",
14704 .opcode = 38,
14705 .operands = &.{
14706 .{ .kind = .id_ref, .quantifier = .required },
14707 },
14708 },
14709 .{
14710 .name = "log10",
14711 .opcode = 39,
14712 .operands = &.{
14713 .{ .kind = .id_ref, .quantifier = .required },
14714 },
14715 },
14716 .{
14717 .name = "log1p",
14718 .opcode = 40,
14719 .operands = &.{
14720 .{ .kind = .id_ref, .quantifier = .required },
14721 },
14722 },
14723 .{
14724 .name = "logb",
14725 .opcode = 41,
14726 .operands = &.{
14727 .{ .kind = .id_ref, .quantifier = .required },
14728 },
14729 },
14730 .{
14731 .name = "mad",
14732 .opcode = 42,
14733 .operands = &.{
14734 .{ .kind = .id_ref, .quantifier = .required },
14735 .{ .kind = .id_ref, .quantifier = .required },
14736 .{ .kind = .id_ref, .quantifier = .required },
14737 },
14738 },
14739 .{
14740 .name = "maxmag",
14741 .opcode = 43,
14742 .operands = &.{
14743 .{ .kind = .id_ref, .quantifier = .required },
14744 .{ .kind = .id_ref, .quantifier = .required },
14745 },
14746 },
14747 .{
14748 .name = "minmag",
14749 .opcode = 44,
14750 .operands = &.{
14751 .{ .kind = .id_ref, .quantifier = .required },
14752 .{ .kind = .id_ref, .quantifier = .required },
14753 },
14754 },
14755 .{
14756 .name = "modf",
14757 .opcode = 45,
14758 .operands = &.{
14759 .{ .kind = .id_ref, .quantifier = .required },
14760 .{ .kind = .id_ref, .quantifier = .required },
14761 },
14762 },
14763 .{
14764 .name = "nan",
14765 .opcode = 46,
14766 .operands = &.{
14767 .{ .kind = .id_ref, .quantifier = .required },
14768 },
14769 },
14770 .{
14771 .name = "nextafter",
14772 .opcode = 47,
14773 .operands = &.{
14774 .{ .kind = .id_ref, .quantifier = .required },
14775 .{ .kind = .id_ref, .quantifier = .required },
14776 },
14777 },
14778 .{
14779 .name = "pow",
14780 .opcode = 48,
14781 .operands = &.{
14782 .{ .kind = .id_ref, .quantifier = .required },
14783 .{ .kind = .id_ref, .quantifier = .required },
14784 },
14785 },
14786 .{
14787 .name = "pown",
14788 .opcode = 49,
14789 .operands = &.{
14790 .{ .kind = .id_ref, .quantifier = .required },
14791 .{ .kind = .id_ref, .quantifier = .required },
14792 },
14793 },
14794 .{
14795 .name = "powr",
14796 .opcode = 50,
14797 .operands = &.{
14798 .{ .kind = .id_ref, .quantifier = .required },
14799 .{ .kind = .id_ref, .quantifier = .required },
14800 },
14801 },
14802 .{
14803 .name = "remainder",
14804 .opcode = 51,
14805 .operands = &.{
14806 .{ .kind = .id_ref, .quantifier = .required },
14807 .{ .kind = .id_ref, .quantifier = .required },
14808 },
14809 },
14810 .{
14811 .name = "remquo",
14812 .opcode = 52,
14813 .operands = &.{
14814 .{ .kind = .id_ref, .quantifier = .required },
14815 .{ .kind = .id_ref, .quantifier = .required },
14816 .{ .kind = .id_ref, .quantifier = .required },
14817 },
14818 },
14819 .{
14820 .name = "rint",
14821 .opcode = 53,
14822 .operands = &.{
14823 .{ .kind = .id_ref, .quantifier = .required },
14824 },
14825 },
14826 .{
14827 .name = "rootn",
14828 .opcode = 54,
14829 .operands = &.{
14830 .{ .kind = .id_ref, .quantifier = .required },
14831 .{ .kind = .id_ref, .quantifier = .required },
14832 },
14833 },
14834 .{
14835 .name = "round",
14836 .opcode = 55,
14837 .operands = &.{
14838 .{ .kind = .id_ref, .quantifier = .required },
14839 },
14840 },
14841 .{
14842 .name = "rsqrt",
14843 .opcode = 56,
14844 .operands = &.{
14845 .{ .kind = .id_ref, .quantifier = .required },
14846 },
14847 },
14848 .{
14849 .name = "sin",
14850 .opcode = 57,
14851 .operands = &.{
14852 .{ .kind = .id_ref, .quantifier = .required },
14853 },
14854 },
14855 .{
14856 .name = "sincos",
14857 .opcode = 58,
14858 .operands = &.{
14859 .{ .kind = .id_ref, .quantifier = .required },
14860 .{ .kind = .id_ref, .quantifier = .required },
14861 },
14862 },
14863 .{
14864 .name = "sinh",
14865 .opcode = 59,
14866 .operands = &.{
14867 .{ .kind = .id_ref, .quantifier = .required },
14868 },
14869 },
14870 .{
14871 .name = "sinpi",
14872 .opcode = 60,
14873 .operands = &.{
14874 .{ .kind = .id_ref, .quantifier = .required },
14875 },
14876 },
14877 .{
14878 .name = "sqrt",
14879 .opcode = 61,
14880 .operands = &.{
14881 .{ .kind = .id_ref, .quantifier = .required },
14882 },
14883 },
14884 .{
14885 .name = "tan",
14886 .opcode = 62,
14887 .operands = &.{
14888 .{ .kind = .id_ref, .quantifier = .required },
14889 },
14890 },
14891 .{
14892 .name = "tanh",
14893 .opcode = 63,
14894 .operands = &.{
14895 .{ .kind = .id_ref, .quantifier = .required },
14896 },
14897 },
14898 .{
14899 .name = "tanpi",
14900 .opcode = 64,
14901 .operands = &.{
14902 .{ .kind = .id_ref, .quantifier = .required },
14903 },
14904 },
14905 .{
14906 .name = "tgamma",
14907 .opcode = 65,
14908 .operands = &.{
14909 .{ .kind = .id_ref, .quantifier = .required },
14910 },
14911 },
14912 .{
14913 .name = "trunc",
14914 .opcode = 66,
14915 .operands = &.{
14916 .{ .kind = .id_ref, .quantifier = .required },
14917 },
14918 },
14919 .{
14920 .name = "half_cos",
14921 .opcode = 67,
14922 .operands = &.{
14923 .{ .kind = .id_ref, .quantifier = .required },
14924 },
14925 },
14926 .{
14927 .name = "half_divide",
14928 .opcode = 68,
14929 .operands = &.{
14930 .{ .kind = .id_ref, .quantifier = .required },
14931 .{ .kind = .id_ref, .quantifier = .required },
14932 },
14933 },
14934 .{
14935 .name = "half_exp",
14936 .opcode = 69,
14937 .operands = &.{
14938 .{ .kind = .id_ref, .quantifier = .required },
14939 },
14940 },
14941 .{
14942 .name = "half_exp2",
14943 .opcode = 70,
14944 .operands = &.{
14945 .{ .kind = .id_ref, .quantifier = .required },
14946 },
14947 },
14948 .{
14949 .name = "half_exp10",
14950 .opcode = 71,
14951 .operands = &.{
14952 .{ .kind = .id_ref, .quantifier = .required },
14953 },
14954 },
14955 .{
14956 .name = "half_log",
14957 .opcode = 72,
14958 .operands = &.{
14959 .{ .kind = .id_ref, .quantifier = .required },
14960 },
14961 },
14962 .{
14963 .name = "half_log2",
14964 .opcode = 73,
14965 .operands = &.{
14966 .{ .kind = .id_ref, .quantifier = .required },
14967 },
14968 },
14969 .{
14970 .name = "half_log10",
14971 .opcode = 74,
14972 .operands = &.{
14973 .{ .kind = .id_ref, .quantifier = .required },
14974 },
14975 },
14976 .{
14977 .name = "half_powr",
14978 .opcode = 75,
14979 .operands = &.{
14980 .{ .kind = .id_ref, .quantifier = .required },
14981 .{ .kind = .id_ref, .quantifier = .required },
14982 },
14983 },
14984 .{
14985 .name = "half_recip",
14986 .opcode = 76,
14987 .operands = &.{
14988 .{ .kind = .id_ref, .quantifier = .required },
14989 },
14990 },
14991 .{
14992 .name = "half_rsqrt",
14993 .opcode = 77,
14994 .operands = &.{
14995 .{ .kind = .id_ref, .quantifier = .required },
14996 },
14997 },
14998 .{
14999 .name = "half_sin",
15000 .opcode = 78,
15001 .operands = &.{
15002 .{ .kind = .id_ref, .quantifier = .required },
15003 },
15004 },
15005 .{
15006 .name = "half_sqrt",
15007 .opcode = 79,
15008 .operands = &.{
15009 .{ .kind = .id_ref, .quantifier = .required },
15010 },
15011 },
15012 .{
15013 .name = "half_tan",
15014 .opcode = 80,
15015 .operands = &.{
15016 .{ .kind = .id_ref, .quantifier = .required },
15017 },
15018 },
15019 .{
15020 .name = "native_cos",
15021 .opcode = 81,
15022 .operands = &.{
15023 .{ .kind = .id_ref, .quantifier = .required },
15024 },
15025 },
15026 .{
15027 .name = "native_divide",
15028 .opcode = 82,
15029 .operands = &.{
15030 .{ .kind = .id_ref, .quantifier = .required },
15031 .{ .kind = .id_ref, .quantifier = .required },
15032 },
15033 },
15034 .{
15035 .name = "native_exp",
15036 .opcode = 83,
15037 .operands = &.{
15038 .{ .kind = .id_ref, .quantifier = .required },
15039 },
15040 },
15041 .{
15042 .name = "native_exp2",
15043 .opcode = 84,
15044 .operands = &.{
15045 .{ .kind = .id_ref, .quantifier = .required },
15046 },
15047 },
15048 .{
15049 .name = "native_exp10",
15050 .opcode = 85,
15051 .operands = &.{
15052 .{ .kind = .id_ref, .quantifier = .required },
15053 },
15054 },
15055 .{
15056 .name = "native_log",
15057 .opcode = 86,
15058 .operands = &.{
15059 .{ .kind = .id_ref, .quantifier = .required },
15060 },
15061 },
15062 .{
15063 .name = "native_log2",
15064 .opcode = 87,
15065 .operands = &.{
15066 .{ .kind = .id_ref, .quantifier = .required },
15067 },
15068 },
15069 .{
15070 .name = "native_log10",
15071 .opcode = 88,
15072 .operands = &.{
15073 .{ .kind = .id_ref, .quantifier = .required },
15074 },
15075 },
15076 .{
15077 .name = "native_powr",
15078 .opcode = 89,
15079 .operands = &.{
15080 .{ .kind = .id_ref, .quantifier = .required },
15081 .{ .kind = .id_ref, .quantifier = .required },
15082 },
15083 },
15084 .{
15085 .name = "native_recip",
15086 .opcode = 90,
15087 .operands = &.{
15088 .{ .kind = .id_ref, .quantifier = .required },
15089 },
15090 },
15091 .{
15092 .name = "native_rsqrt",
15093 .opcode = 91,
15094 .operands = &.{
15095 .{ .kind = .id_ref, .quantifier = .required },
15096 },
15097 },
15098 .{
15099 .name = "native_sin",
15100 .opcode = 92,
15101 .operands = &.{
15102 .{ .kind = .id_ref, .quantifier = .required },
15103 },
15104 },
15105 .{
15106 .name = "native_sqrt",
15107 .opcode = 93,
15108 .operands = &.{
15109 .{ .kind = .id_ref, .quantifier = .required },
15110 },
15111 },
15112 .{
15113 .name = "native_tan",
15114 .opcode = 94,
15115 .operands = &.{
15116 .{ .kind = .id_ref, .quantifier = .required },
15117 },
15118 },
15119 .{
15120 .name = "fclamp",
15121 .opcode = 95,
15122 .operands = &.{
15123 .{ .kind = .id_ref, .quantifier = .required },
15124 .{ .kind = .id_ref, .quantifier = .required },
15125 .{ .kind = .id_ref, .quantifier = .required },
15126 },
15127 },
15128 .{
15129 .name = "degrees",
15130 .opcode = 96,
15131 .operands = &.{
15132 .{ .kind = .id_ref, .quantifier = .required },
15133 },
15134 },
15135 .{
15136 .name = "fmax_common",
15137 .opcode = 97,
15138 .operands = &.{
15139 .{ .kind = .id_ref, .quantifier = .required },
15140 .{ .kind = .id_ref, .quantifier = .required },
15141 },
15142 },
15143 .{
15144 .name = "fmin_common",
15145 .opcode = 98,
15146 .operands = &.{
15147 .{ .kind = .id_ref, .quantifier = .required },
15148 .{ .kind = .id_ref, .quantifier = .required },
15149 },
15150 },
15151 .{
15152 .name = "mix",
15153 .opcode = 99,
15154 .operands = &.{
15155 .{ .kind = .id_ref, .quantifier = .required },
15156 .{ .kind = .id_ref, .quantifier = .required },
15157 .{ .kind = .id_ref, .quantifier = .required },
15158 },
15159 },
15160 .{
15161 .name = "radians",
15162 .opcode = 100,
15163 .operands = &.{
15164 .{ .kind = .id_ref, .quantifier = .required },
15165 },
15166 },
15167 .{
15168 .name = "step",
15169 .opcode = 101,
15170 .operands = &.{
15171 .{ .kind = .id_ref, .quantifier = .required },
15172 .{ .kind = .id_ref, .quantifier = .required },
15173 },
15174 },
15175 .{
15176 .name = "smoothstep",
15177 .opcode = 102,
15178 .operands = &.{
15179 .{ .kind = .id_ref, .quantifier = .required },
15180 .{ .kind = .id_ref, .quantifier = .required },
15181 .{ .kind = .id_ref, .quantifier = .required },
15182 },
15183 },
15184 .{
15185 .name = "sign",
15186 .opcode = 103,
15187 .operands = &.{
15188 .{ .kind = .id_ref, .quantifier = .required },
15189 },
15190 },
15191 .{
15192 .name = "cross",
15193 .opcode = 104,
15194 .operands = &.{
15195 .{ .kind = .id_ref, .quantifier = .required },
15196 .{ .kind = .id_ref, .quantifier = .required },
15197 },
15198 },
15199 .{
15200 .name = "distance",
15201 .opcode = 105,
15202 .operands = &.{
15203 .{ .kind = .id_ref, .quantifier = .required },
15204 .{ .kind = .id_ref, .quantifier = .required },
15205 },
15206 },
15207 .{
15208 .name = "length",
15209 .opcode = 106,
15210 .operands = &.{
15211 .{ .kind = .id_ref, .quantifier = .required },
15212 },
15213 },
15214 .{
15215 .name = "normalize",
15216 .opcode = 107,
15217 .operands = &.{
15218 .{ .kind = .id_ref, .quantifier = .required },
15219 },
15220 },
15221 .{
15222 .name = "fast_distance",
15223 .opcode = 108,
15224 .operands = &.{
15225 .{ .kind = .id_ref, .quantifier = .required },
15226 .{ .kind = .id_ref, .quantifier = .required },
15227 },
15228 },
15229 .{
15230 .name = "fast_length",
15231 .opcode = 109,
15232 .operands = &.{
15233 .{ .kind = .id_ref, .quantifier = .required },
15234 },
15235 },
15236 .{
15237 .name = "fast_normalize",
15238 .opcode = 110,
15239 .operands = &.{
15240 .{ .kind = .id_ref, .quantifier = .required },
15241 },
15242 },
15243 .{
15244 .name = "s_abs",
15245 .opcode = 141,
15246 .operands = &.{
15247 .{ .kind = .id_ref, .quantifier = .required },
15248 },
15249 },
15250 .{
15251 .name = "s_abs_diff",
15252 .opcode = 142,
15253 .operands = &.{
15254 .{ .kind = .id_ref, .quantifier = .required },
15255 .{ .kind = .id_ref, .quantifier = .required },
15256 },
15257 },
15258 .{
15259 .name = "s_add_sat",
15260 .opcode = 143,
15261 .operands = &.{
15262 .{ .kind = .id_ref, .quantifier = .required },
15263 .{ .kind = .id_ref, .quantifier = .required },
15264 },
15265 },
15266 .{
15267 .name = "u_add_sat",
15268 .opcode = 144,
15269 .operands = &.{
15270 .{ .kind = .id_ref, .quantifier = .required },
15271 .{ .kind = .id_ref, .quantifier = .required },
15272 },
15273 },
15274 .{
15275 .name = "s_hadd",
15276 .opcode = 145,
15277 .operands = &.{
15278 .{ .kind = .id_ref, .quantifier = .required },
15279 .{ .kind = .id_ref, .quantifier = .required },
15280 },
15281 },
15282 .{
15283 .name = "u_hadd",
15284 .opcode = 146,
15285 .operands = &.{
15286 .{ .kind = .id_ref, .quantifier = .required },
15287 .{ .kind = .id_ref, .quantifier = .required },
15288 },
15289 },
15290 .{
15291 .name = "s_rhadd",
15292 .opcode = 147,
15293 .operands = &.{
15294 .{ .kind = .id_ref, .quantifier = .required },
15295 .{ .kind = .id_ref, .quantifier = .required },
15296 },
15297 },
15298 .{
15299 .name = "u_rhadd",
15300 .opcode = 148,
15301 .operands = &.{
15302 .{ .kind = .id_ref, .quantifier = .required },
15303 .{ .kind = .id_ref, .quantifier = .required },
15304 },
15305 },
15306 .{
15307 .name = "s_clamp",
15308 .opcode = 149,
15309 .operands = &.{
15310 .{ .kind = .id_ref, .quantifier = .required },
15311 .{ .kind = .id_ref, .quantifier = .required },
15312 .{ .kind = .id_ref, .quantifier = .required },
15313 },
15314 },
15315 .{
15316 .name = "u_clamp",
15317 .opcode = 150,
15318 .operands = &.{
15319 .{ .kind = .id_ref, .quantifier = .required },
15320 .{ .kind = .id_ref, .quantifier = .required },
15321 .{ .kind = .id_ref, .quantifier = .required },
15322 },
15323 },
15324 .{
15325 .name = "clz",
15326 .opcode = 151,
15327 .operands = &.{
15328 .{ .kind = .id_ref, .quantifier = .required },
15329 },
15330 },
15331 .{
15332 .name = "ctz",
15333 .opcode = 152,
15334 .operands = &.{
15335 .{ .kind = .id_ref, .quantifier = .required },
15336 },
15337 },
15338 .{
15339 .name = "s_mad_hi",
15340 .opcode = 153,
15341 .operands = &.{
15342 .{ .kind = .id_ref, .quantifier = .required },
15343 .{ .kind = .id_ref, .quantifier = .required },
15344 .{ .kind = .id_ref, .quantifier = .required },
15345 },
15346 },
15347 .{
15348 .name = "u_mad_sat",
15349 .opcode = 154,
15350 .operands = &.{
15351 .{ .kind = .id_ref, .quantifier = .required },
15352 .{ .kind = .id_ref, .quantifier = .required },
15353 .{ .kind = .id_ref, .quantifier = .required },
15354 },
15355 },
15356 .{
15357 .name = "s_mad_sat",
15358 .opcode = 155,
15359 .operands = &.{
15360 .{ .kind = .id_ref, .quantifier = .required },
15361 .{ .kind = .id_ref, .quantifier = .required },
15362 .{ .kind = .id_ref, .quantifier = .required },
15363 },
15364 },
15365 .{
15366 .name = "s_max",
15367 .opcode = 156,
15368 .operands = &.{
15369 .{ .kind = .id_ref, .quantifier = .required },
15370 .{ .kind = .id_ref, .quantifier = .required },
15371 },
15372 },
15373 .{
15374 .name = "u_max",
15375 .opcode = 157,
15376 .operands = &.{
15377 .{ .kind = .id_ref, .quantifier = .required },
15378 .{ .kind = .id_ref, .quantifier = .required },
15379 },
15380 },
15381 .{
15382 .name = "s_min",
15383 .opcode = 158,
15384 .operands = &.{
15385 .{ .kind = .id_ref, .quantifier = .required },
15386 .{ .kind = .id_ref, .quantifier = .required },
15387 },
15388 },
15389 .{
15390 .name = "u_min",
15391 .opcode = 159,
15392 .operands = &.{
15393 .{ .kind = .id_ref, .quantifier = .required },
15394 .{ .kind = .id_ref, .quantifier = .required },
15395 },
15396 },
15397 .{
15398 .name = "s_mul_hi",
15399 .opcode = 160,
15400 .operands = &.{
15401 .{ .kind = .id_ref, .quantifier = .required },
15402 .{ .kind = .id_ref, .quantifier = .required },
15403 },
15404 },
15405 .{
15406 .name = "rotate",
15407 .opcode = 161,
15408 .operands = &.{
15409 .{ .kind = .id_ref, .quantifier = .required },
15410 .{ .kind = .id_ref, .quantifier = .required },
15411 },
15412 },
15413 .{
15414 .name = "s_sub_sat",
15415 .opcode = 162,
15416 .operands = &.{
15417 .{ .kind = .id_ref, .quantifier = .required },
15418 .{ .kind = .id_ref, .quantifier = .required },
15419 },
15420 },
15421 .{
15422 .name = "u_sub_sat",
15423 .opcode = 163,
15424 .operands = &.{
15425 .{ .kind = .id_ref, .quantifier = .required },
15426 .{ .kind = .id_ref, .quantifier = .required },
15427 },
15428 },
15429 .{
15430 .name = "u_upsample",
15431 .opcode = 164,
15432 .operands = &.{
15433 .{ .kind = .id_ref, .quantifier = .required },
15434 .{ .kind = .id_ref, .quantifier = .required },
15435 },
15436 },
15437 .{
15438 .name = "s_upsample",
15439 .opcode = 165,
15440 .operands = &.{
15441 .{ .kind = .id_ref, .quantifier = .required },
15442 .{ .kind = .id_ref, .quantifier = .required },
15443 },
15444 },
15445 .{
15446 .name = "popcount",
15447 .opcode = 166,
15448 .operands = &.{
15449 .{ .kind = .id_ref, .quantifier = .required },
15450 },
15451 },
15452 .{
15453 .name = "s_mad24",
15454 .opcode = 167,
15455 .operands = &.{
15456 .{ .kind = .id_ref, .quantifier = .required },
15457 .{ .kind = .id_ref, .quantifier = .required },
15458 .{ .kind = .id_ref, .quantifier = .required },
15459 },
15460 },
15461 .{
15462 .name = "u_mad24",
15463 .opcode = 168,
15464 .operands = &.{
15465 .{ .kind = .id_ref, .quantifier = .required },
15466 .{ .kind = .id_ref, .quantifier = .required },
15467 .{ .kind = .id_ref, .quantifier = .required },
15468 },
15469 },
15470 .{
15471 .name = "s_mul24",
15472 .opcode = 169,
15473 .operands = &.{
15474 .{ .kind = .id_ref, .quantifier = .required },
15475 .{ .kind = .id_ref, .quantifier = .required },
15476 },
15477 },
15478 .{
15479 .name = "u_mul24",
15480 .opcode = 170,
15481 .operands = &.{
15482 .{ .kind = .id_ref, .quantifier = .required },
15483 .{ .kind = .id_ref, .quantifier = .required },
15484 },
15485 },
15486 .{
15487 .name = "vloadn",
15488 .opcode = 171,
15489 .operands = &.{
15490 .{ .kind = .id_ref, .quantifier = .required },
15491 .{ .kind = .id_ref, .quantifier = .required },
15492 .{ .kind = .literal_integer, .quantifier = .required },
15493 },
15494 },
15495 .{
15496 .name = "vstoren",
15497 .opcode = 172,
15498 .operands = &.{
15499 .{ .kind = .id_ref, .quantifier = .required },
15500 .{ .kind = .id_ref, .quantifier = .required },
15501 .{ .kind = .id_ref, .quantifier = .required },
15502 },
15503 },
15504 .{
15505 .name = "vload_half",
15506 .opcode = 173,
15507 .operands = &.{
15508 .{ .kind = .id_ref, .quantifier = .required },
15509 .{ .kind = .id_ref, .quantifier = .required },
15510 },
15511 },
15512 .{
15513 .name = "vload_halfn",
15514 .opcode = 174,
15515 .operands = &.{
15516 .{ .kind = .id_ref, .quantifier = .required },
15517 .{ .kind = .id_ref, .quantifier = .required },
15518 .{ .kind = .literal_integer, .quantifier = .required },
15519 },
15520 },
15521 .{
15522 .name = "vstore_half",
15523 .opcode = 175,
15524 .operands = &.{
15525 .{ .kind = .id_ref, .quantifier = .required },
15526 .{ .kind = .id_ref, .quantifier = .required },
15527 .{ .kind = .id_ref, .quantifier = .required },
15528 },
15529 },
15530 .{
15531 .name = "vstore_half_r",
15532 .opcode = 176,
15533 .operands = &.{
15534 .{ .kind = .id_ref, .quantifier = .required },
15535 .{ .kind = .id_ref, .quantifier = .required },
15536 .{ .kind = .id_ref, .quantifier = .required },
15537 .{ .kind = .fp_rounding_mode, .quantifier = .required },
15538 },
15539 },
15540 .{
15541 .name = "vstore_halfn",
15542 .opcode = 177,
15543 .operands = &.{
15544 .{ .kind = .id_ref, .quantifier = .required },
15545 .{ .kind = .id_ref, .quantifier = .required },
15546 .{ .kind = .id_ref, .quantifier = .required },
15547 },
15548 },
15549 .{
15550 .name = "vstore_halfn_r",
15551 .opcode = 178,
15552 .operands = &.{
15553 .{ .kind = .id_ref, .quantifier = .required },
15554 .{ .kind = .id_ref, .quantifier = .required },
15555 .{ .kind = .id_ref, .quantifier = .required },
15556 .{ .kind = .fp_rounding_mode, .quantifier = .required },
15557 },
15558 },
15559 .{
15560 .name = "vloada_halfn",
15561 .opcode = 179,
15562 .operands = &.{
15563 .{ .kind = .id_ref, .quantifier = .required },
15564 .{ .kind = .id_ref, .quantifier = .required },
15565 .{ .kind = .literal_integer, .quantifier = .required },
15566 },
15567 },
15568 .{
15569 .name = "vstorea_halfn",
15570 .opcode = 180,
15571 .operands = &.{
15572 .{ .kind = .id_ref, .quantifier = .required },
15573 .{ .kind = .id_ref, .quantifier = .required },
15574 .{ .kind = .id_ref, .quantifier = .required },
15575 },
15576 },
15577 .{
15578 .name = "vstorea_halfn_r",
15579 .opcode = 181,
15580 .operands = &.{
15581 .{ .kind = .id_ref, .quantifier = .required },
15582 .{ .kind = .id_ref, .quantifier = .required },
15583 .{ .kind = .id_ref, .quantifier = .required },
15584 .{ .kind = .fp_rounding_mode, .quantifier = .required },
15585 },
15586 },
15587 .{
15588 .name = "shuffle",
15589 .opcode = 182,
15590 .operands = &.{
15591 .{ .kind = .id_ref, .quantifier = .required },
15592 .{ .kind = .id_ref, .quantifier = .required },
15593 },
15594 },
15595 .{
15596 .name = "shuffle2",
15597 .opcode = 183,
15598 .operands = &.{
15599 .{ .kind = .id_ref, .quantifier = .required },
15600 .{ .kind = .id_ref, .quantifier = .required },
15601 .{ .kind = .id_ref, .quantifier = .required },
15602 },
15603 },
15604 .{
15605 .name = "printf",
15606 .opcode = 184,
15607 .operands = &.{
15608 .{ .kind = .id_ref, .quantifier = .required },
15609 .{ .kind = .id_ref, .quantifier = .variadic },
15610 },
15611 },
15612 .{
15613 .name = "prefetch",
15614 .opcode = 185,
15615 .operands = &.{
15616 .{ .kind = .id_ref, .quantifier = .required },
15617 .{ .kind = .id_ref, .quantifier = .required },
15618 },
15619 },
15620 .{
15621 .name = "bitselect",
15622 .opcode = 186,
15623 .operands = &.{
15624 .{ .kind = .id_ref, .quantifier = .required },
15625 .{ .kind = .id_ref, .quantifier = .required },
15626 .{ .kind = .id_ref, .quantifier = .required },
15627 },
15628 },
15629 .{
15630 .name = "select",
15631 .opcode = 187,
15632 .operands = &.{
15633 .{ .kind = .id_ref, .quantifier = .required },
15634 .{ .kind = .id_ref, .quantifier = .required },
15635 .{ .kind = .id_ref, .quantifier = .required },
15636 },
15637 },
15638 .{
15639 .name = "u_abs",
15640 .opcode = 201,
15641 .operands = &.{
15642 .{ .kind = .id_ref, .quantifier = .required },
15643 },
15644 },
15645 .{
15646 .name = "u_abs_diff",
15647 .opcode = 202,
15648 .operands = &.{
15649 .{ .kind = .id_ref, .quantifier = .required },
15650 .{ .kind = .id_ref, .quantifier = .required },
15651 },
15652 },
15653 .{
15654 .name = "u_mul_hi",
15655 .opcode = 203,
15656 .operands = &.{
15657 .{ .kind = .id_ref, .quantifier = .required },
15658 .{ .kind = .id_ref, .quantifier = .required },
15659 },
15660 },
15661 .{
15662 .name = "u_mad_hi",
15663 .opcode = 204,
15664 .operands = &.{
15665 .{ .kind = .id_ref, .quantifier = .required },
15666 .{ .kind = .id_ref, .quantifier = .required },
15667 .{ .kind = .id_ref, .quantifier = .required },
15668 },
15669 },
15670 },
15671 .zig => &.{
15672 .{
15673 .name = "InvocationGlobal",
15674 .opcode = 0,
15675 .operands = &.{
15676 .{ .kind = .id_ref, .quantifier = .required },
15677 },
15678 },
15679 },
15680 };
15681 }
15682};