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}", .{@backingInt(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 @fromBackingInt(@intCast(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 = "InitiationIntervalALTERA", .value = 0x10000, .parameters = &.{.literal_integer} },
317 .{ .name = "MaxConcurrencyALTERA", .value = 0x20000, .parameters = &.{.literal_integer} },
318 .{ .name = "DependencyArrayALTERA", .value = 0x40000, .parameters = &.{.literal_integer} },
319 .{ .name = "PipelineEnableALTERA", .value = 0x80000, .parameters = &.{.literal_integer} },
320 .{ .name = "LoopCoalesceALTERA", .value = 0x100000, .parameters = &.{.literal_integer} },
321 .{ .name = "MaxInterleavingALTERA", .value = 0x200000, .parameters = &.{.literal_integer} },
322 .{ .name = "SpeculatedIterationsALTERA", .value = 0x400000, .parameters = &.{.literal_integer} },
323 .{ .name = "NoFusionALTERA", .value = 0x800000, .parameters = &.{} },
324 .{ .name = "LoopCountALTERA", .value = 0x1000000, .parameters = &.{.literal_integer} },
325 .{ .name = "MaxReinvocationDelayALTERA", .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 = "ArithmeticPoisonKHR", .value = 5157, .parameters = &.{} },
504 .{ .name = "OutputLinesEXT", .value = 5269, .parameters = &.{} },
505 .{ .name = "OutputPrimitivesEXT", .value = 5270, .parameters = &.{.literal_integer} },
506 .{ .name = "DerivativeGroupQuadsKHR", .value = 5289, .parameters = &.{} },
507 .{ .name = "DerivativeGroupLinearKHR", .value = 5290, .parameters = &.{} },
508 .{ .name = "OutputTrianglesEXT", .value = 5298, .parameters = &.{} },
509 .{ .name = "PixelInterlockOrderedEXT", .value = 5366, .parameters = &.{} },
510 .{ .name = "PixelInterlockUnorderedEXT", .value = 5367, .parameters = &.{} },
511 .{ .name = "SampleInterlockOrderedEXT", .value = 5368, .parameters = &.{} },
512 .{ .name = "SampleInterlockUnorderedEXT", .value = 5369, .parameters = &.{} },
513 .{ .name = "ShadingRateInterlockOrderedEXT", .value = 5370, .parameters = &.{} },
514 .{ .name = "ShadingRateInterlockUnorderedEXT", .value = 5371, .parameters = &.{} },
515 .{ .name = "Shader64BitIndexingEXT", .value = 5427, .parameters = &.{} },
516 .{ .name = "SharedLocalMemorySizeINTEL", .value = 5618, .parameters = &.{.literal_integer} },
517 .{ .name = "RoundingModeRTPINTEL", .value = 5620, .parameters = &.{.literal_integer} },
518 .{ .name = "RoundingModeRTNINTEL", .value = 5621, .parameters = &.{.literal_integer} },
519 .{ .name = "FloatingPointModeALTINTEL", .value = 5622, .parameters = &.{.literal_integer} },
520 .{ .name = "FloatingPointModeIEEEINTEL", .value = 5623, .parameters = &.{.literal_integer} },
521 .{ .name = "MaxWorkgroupSizeINTEL", .value = 5893, .parameters = &.{ .literal_integer, .literal_integer, .literal_integer } },
522 .{ .name = "MaxWorkDimINTEL", .value = 5894, .parameters = &.{.literal_integer} },
523 .{ .name = "NoGlobalOffsetINTEL", .value = 5895, .parameters = &.{} },
524 .{ .name = "NumSIMDWorkitemsINTEL", .value = 5896, .parameters = &.{.literal_integer} },
525 .{ .name = "SchedulerTargetFmaxMhzINTEL", .value = 5903, .parameters = &.{.literal_integer} },
526 .{ .name = "MaximallyReconvergesKHR", .value = 6023, .parameters = &.{} },
527 .{ .name = "FPFastMathDefault", .value = 6028, .parameters = &.{ .id_ref, .id_ref } },
528 .{ .name = "StreamingInterfaceINTEL", .value = 6154, .parameters = &.{.literal_integer} },
529 .{ .name = "RegisterMapInterfaceINTEL", .value = 6160, .parameters = &.{.literal_integer} },
530 .{ .name = "NamedBarrierCountINTEL", .value = 6417, .parameters = &.{.literal_integer} },
531 .{ .name = "MaximumRegistersINTEL", .value = 6461, .parameters = &.{.literal_integer} },
532 .{ .name = "MaximumRegistersIdINTEL", .value = 6462, .parameters = &.{.id_ref} },
533 .{ .name = "NamedMaximumRegistersINTEL", .value = 6463, .parameters = &.{.named_maximum_number_of_registers} },
534 },
535 .storage_class => &.{
536 .{ .name = "UniformConstant", .value = 0, .parameters = &.{} },
537 .{ .name = "Input", .value = 1, .parameters = &.{} },
538 .{ .name = "Uniform", .value = 2, .parameters = &.{} },
539 .{ .name = "Output", .value = 3, .parameters = &.{} },
540 .{ .name = "Workgroup", .value = 4, .parameters = &.{} },
541 .{ .name = "CrossWorkgroup", .value = 5, .parameters = &.{} },
542 .{ .name = "Private", .value = 6, .parameters = &.{} },
543 .{ .name = "Function", .value = 7, .parameters = &.{} },
544 .{ .name = "Generic", .value = 8, .parameters = &.{} },
545 .{ .name = "PushConstant", .value = 9, .parameters = &.{} },
546 .{ .name = "AtomicCounter", .value = 10, .parameters = &.{} },
547 .{ .name = "Image", .value = 11, .parameters = &.{} },
548 .{ .name = "StorageBuffer", .value = 12, .parameters = &.{} },
549 .{ .name = "TileImageEXT", .value = 4172, .parameters = &.{} },
550 .{ .name = "TileAttachmentQCOM", .value = 4491, .parameters = &.{} },
551 .{ .name = "NodePayloadAMDX", .value = 5068, .parameters = &.{} },
552 .{ .name = "CallableDataKHR", .value = 5328, .parameters = &.{} },
553 .{ .name = "IncomingCallableDataKHR", .value = 5329, .parameters = &.{} },
554 .{ .name = "RayPayloadKHR", .value = 5338, .parameters = &.{} },
555 .{ .name = "HitAttributeKHR", .value = 5339, .parameters = &.{} },
556 .{ .name = "IncomingRayPayloadKHR", .value = 5342, .parameters = &.{} },
557 .{ .name = "ShaderRecordBufferKHR", .value = 5343, .parameters = &.{} },
558 .{ .name = "PhysicalStorageBuffer", .value = 5349, .parameters = &.{} },
559 .{ .name = "HitObjectAttributeNV", .value = 5385, .parameters = &.{} },
560 .{ .name = "TaskPayloadWorkgroupEXT", .value = 5402, .parameters = &.{} },
561 .{ .name = "HitObjectAttributeEXT", .value = 5411, .parameters = &.{} },
562 .{ .name = "CodeSectionINTEL", .value = 5605, .parameters = &.{} },
563 .{ .name = "DeviceOnlyALTERA", .value = 5936, .parameters = &.{} },
564 .{ .name = "HostOnlyALTERA", .value = 5937, .parameters = &.{} },
565 },
566 .dim => &.{
567 .{ .name = "1D", .value = 0, .parameters = &.{} },
568 .{ .name = "2D", .value = 1, .parameters = &.{} },
569 .{ .name = "3D", .value = 2, .parameters = &.{} },
570 .{ .name = "Cube", .value = 3, .parameters = &.{} },
571 .{ .name = "Rect", .value = 4, .parameters = &.{} },
572 .{ .name = "Buffer", .value = 5, .parameters = &.{} },
573 .{ .name = "SubpassData", .value = 6, .parameters = &.{} },
574 .{ .name = "TileImageDataEXT", .value = 4173, .parameters = &.{} },
575 },
576 .sampler_addressing_mode => &.{
577 .{ .name = "None", .value = 0, .parameters = &.{} },
578 .{ .name = "ClampToEdge", .value = 1, .parameters = &.{} },
579 .{ .name = "Clamp", .value = 2, .parameters = &.{} },
580 .{ .name = "Repeat", .value = 3, .parameters = &.{} },
581 .{ .name = "RepeatMirrored", .value = 4, .parameters = &.{} },
582 },
583 .sampler_filter_mode => &.{
584 .{ .name = "Nearest", .value = 0, .parameters = &.{} },
585 .{ .name = "Linear", .value = 1, .parameters = &.{} },
586 },
587 .image_format => &.{
588 .{ .name = "Unknown", .value = 0, .parameters = &.{} },
589 .{ .name = "Rgba32f", .value = 1, .parameters = &.{} },
590 .{ .name = "Rgba16f", .value = 2, .parameters = &.{} },
591 .{ .name = "R32f", .value = 3, .parameters = &.{} },
592 .{ .name = "Rgba8", .value = 4, .parameters = &.{} },
593 .{ .name = "Rgba8Snorm", .value = 5, .parameters = &.{} },
594 .{ .name = "Rg32f", .value = 6, .parameters = &.{} },
595 .{ .name = "Rg16f", .value = 7, .parameters = &.{} },
596 .{ .name = "R11fG11fB10f", .value = 8, .parameters = &.{} },
597 .{ .name = "R16f", .value = 9, .parameters = &.{} },
598 .{ .name = "Rgba16", .value = 10, .parameters = &.{} },
599 .{ .name = "Rgb10A2", .value = 11, .parameters = &.{} },
600 .{ .name = "Rg16", .value = 12, .parameters = &.{} },
601 .{ .name = "Rg8", .value = 13, .parameters = &.{} },
602 .{ .name = "R16", .value = 14, .parameters = &.{} },
603 .{ .name = "R8", .value = 15, .parameters = &.{} },
604 .{ .name = "Rgba16Snorm", .value = 16, .parameters = &.{} },
605 .{ .name = "Rg16Snorm", .value = 17, .parameters = &.{} },
606 .{ .name = "Rg8Snorm", .value = 18, .parameters = &.{} },
607 .{ .name = "R16Snorm", .value = 19, .parameters = &.{} },
608 .{ .name = "R8Snorm", .value = 20, .parameters = &.{} },
609 .{ .name = "Rgba32i", .value = 21, .parameters = &.{} },
610 .{ .name = "Rgba16i", .value = 22, .parameters = &.{} },
611 .{ .name = "Rgba8i", .value = 23, .parameters = &.{} },
612 .{ .name = "R32i", .value = 24, .parameters = &.{} },
613 .{ .name = "Rg32i", .value = 25, .parameters = &.{} },
614 .{ .name = "Rg16i", .value = 26, .parameters = &.{} },
615 .{ .name = "Rg8i", .value = 27, .parameters = &.{} },
616 .{ .name = "R16i", .value = 28, .parameters = &.{} },
617 .{ .name = "R8i", .value = 29, .parameters = &.{} },
618 .{ .name = "Rgba32ui", .value = 30, .parameters = &.{} },
619 .{ .name = "Rgba16ui", .value = 31, .parameters = &.{} },
620 .{ .name = "Rgba8ui", .value = 32, .parameters = &.{} },
621 .{ .name = "R32ui", .value = 33, .parameters = &.{} },
622 .{ .name = "Rgb10a2ui", .value = 34, .parameters = &.{} },
623 .{ .name = "Rg32ui", .value = 35, .parameters = &.{} },
624 .{ .name = "Rg16ui", .value = 36, .parameters = &.{} },
625 .{ .name = "Rg8ui", .value = 37, .parameters = &.{} },
626 .{ .name = "R16ui", .value = 38, .parameters = &.{} },
627 .{ .name = "R8ui", .value = 39, .parameters = &.{} },
628 .{ .name = "R64ui", .value = 40, .parameters = &.{} },
629 .{ .name = "R64i", .value = 41, .parameters = &.{} },
630 },
631 .image_channel_order => &.{
632 .{ .name = "R", .value = 0, .parameters = &.{} },
633 .{ .name = "A", .value = 1, .parameters = &.{} },
634 .{ .name = "RG", .value = 2, .parameters = &.{} },
635 .{ .name = "RA", .value = 3, .parameters = &.{} },
636 .{ .name = "RGB", .value = 4, .parameters = &.{} },
637 .{ .name = "RGBA", .value = 5, .parameters = &.{} },
638 .{ .name = "BGRA", .value = 6, .parameters = &.{} },
639 .{ .name = "ARGB", .value = 7, .parameters = &.{} },
640 .{ .name = "Intensity", .value = 8, .parameters = &.{} },
641 .{ .name = "Luminance", .value = 9, .parameters = &.{} },
642 .{ .name = "Rx", .value = 10, .parameters = &.{} },
643 .{ .name = "RGx", .value = 11, .parameters = &.{} },
644 .{ .name = "RGBx", .value = 12, .parameters = &.{} },
645 .{ .name = "Depth", .value = 13, .parameters = &.{} },
646 .{ .name = "DepthStencil", .value = 14, .parameters = &.{} },
647 .{ .name = "sRGB", .value = 15, .parameters = &.{} },
648 .{ .name = "sRGBx", .value = 16, .parameters = &.{} },
649 .{ .name = "sRGBA", .value = 17, .parameters = &.{} },
650 .{ .name = "sBGRA", .value = 18, .parameters = &.{} },
651 .{ .name = "ABGR", .value = 19, .parameters = &.{} },
652 },
653 .image_channel_data_type => &.{
654 .{ .name = "SnormInt8", .value = 0, .parameters = &.{} },
655 .{ .name = "SnormInt16", .value = 1, .parameters = &.{} },
656 .{ .name = "UnormInt8", .value = 2, .parameters = &.{} },
657 .{ .name = "UnormInt16", .value = 3, .parameters = &.{} },
658 .{ .name = "UnormShort565", .value = 4, .parameters = &.{} },
659 .{ .name = "UnormShort555", .value = 5, .parameters = &.{} },
660 .{ .name = "UnormInt101010", .value = 6, .parameters = &.{} },
661 .{ .name = "SignedInt8", .value = 7, .parameters = &.{} },
662 .{ .name = "SignedInt16", .value = 8, .parameters = &.{} },
663 .{ .name = "SignedInt32", .value = 9, .parameters = &.{} },
664 .{ .name = "UnsignedInt8", .value = 10, .parameters = &.{} },
665 .{ .name = "UnsignedInt16", .value = 11, .parameters = &.{} },
666 .{ .name = "UnsignedInt32", .value = 12, .parameters = &.{} },
667 .{ .name = "HalfFloat", .value = 13, .parameters = &.{} },
668 .{ .name = "Float", .value = 14, .parameters = &.{} },
669 .{ .name = "UnormInt24", .value = 15, .parameters = &.{} },
670 .{ .name = "UnormInt101010_2", .value = 16, .parameters = &.{} },
671 .{ .name = "UnormInt10X6EXT", .value = 17, .parameters = &.{} },
672 .{ .name = "UnsignedIntRaw10EXT", .value = 19, .parameters = &.{} },
673 .{ .name = "UnsignedIntRaw12EXT", .value = 20, .parameters = &.{} },
674 .{ .name = "UnormInt2_101010EXT", .value = 21, .parameters = &.{} },
675 .{ .name = "UnsignedInt10X6EXT", .value = 22, .parameters = &.{} },
676 .{ .name = "UnsignedInt12X4EXT", .value = 23, .parameters = &.{} },
677 .{ .name = "UnsignedInt14X2EXT", .value = 24, .parameters = &.{} },
678 .{ .name = "UnormInt12X4EXT", .value = 25, .parameters = &.{} },
679 .{ .name = "UnormInt14X2EXT", .value = 26, .parameters = &.{} },
680 },
681 .fp_rounding_mode => &.{
682 .{ .name = "RTE", .value = 0, .parameters = &.{} },
683 .{ .name = "RTZ", .value = 1, .parameters = &.{} },
684 .{ .name = "RTP", .value = 2, .parameters = &.{} },
685 .{ .name = "RTN", .value = 3, .parameters = &.{} },
686 },
687 .fp_denorm_mode => &.{
688 .{ .name = "Preserve", .value = 0, .parameters = &.{} },
689 .{ .name = "FlushToZero", .value = 1, .parameters = &.{} },
690 },
691 .quantization_modes => &.{
692 .{ .name = "TRN", .value = 0, .parameters = &.{} },
693 .{ .name = "TRN_ZERO", .value = 1, .parameters = &.{} },
694 .{ .name = "RND", .value = 2, .parameters = &.{} },
695 .{ .name = "RND_ZERO", .value = 3, .parameters = &.{} },
696 .{ .name = "RND_INF", .value = 4, .parameters = &.{} },
697 .{ .name = "RND_MIN_INF", .value = 5, .parameters = &.{} },
698 .{ .name = "RND_CONV", .value = 6, .parameters = &.{} },
699 .{ .name = "RND_CONV_ODD", .value = 7, .parameters = &.{} },
700 },
701 .fp_operation_mode => &.{
702 .{ .name = "IEEE", .value = 0, .parameters = &.{} },
703 .{ .name = "ALT", .value = 1, .parameters = &.{} },
704 },
705 .overflow_modes => &.{
706 .{ .name = "WRAP", .value = 0, .parameters = &.{} },
707 .{ .name = "SAT", .value = 1, .parameters = &.{} },
708 .{ .name = "SAT_ZERO", .value = 2, .parameters = &.{} },
709 .{ .name = "SAT_SYM", .value = 3, .parameters = &.{} },
710 },
711 .linkage_type => &.{
712 .{ .name = "Export", .value = 0, .parameters = &.{} },
713 .{ .name = "Import", .value = 1, .parameters = &.{} },
714 .{ .name = "LinkOnceODR", .value = 2, .parameters = &.{} },
715 },
716 .access_qualifier => &.{
717 .{ .name = "ReadOnly", .value = 0, .parameters = &.{} },
718 .{ .name = "WriteOnly", .value = 1, .parameters = &.{} },
719 .{ .name = "ReadWrite", .value = 2, .parameters = &.{} },
720 },
721 .host_access_qualifier => &.{
722 .{ .name = "NoneINTEL", .value = 0, .parameters = &.{} },
723 .{ .name = "ReadINTEL", .value = 1, .parameters = &.{} },
724 .{ .name = "WriteINTEL", .value = 2, .parameters = &.{} },
725 .{ .name = "ReadWriteINTEL", .value = 3, .parameters = &.{} },
726 },
727 .function_parameter_attribute => &.{
728 .{ .name = "Zext", .value = 0, .parameters = &.{} },
729 .{ .name = "Sext", .value = 1, .parameters = &.{} },
730 .{ .name = "ByVal", .value = 2, .parameters = &.{} },
731 .{ .name = "Sret", .value = 3, .parameters = &.{} },
732 .{ .name = "NoAlias", .value = 4, .parameters = &.{} },
733 .{ .name = "NoCapture", .value = 5, .parameters = &.{} },
734 .{ .name = "NoWrite", .value = 6, .parameters = &.{} },
735 .{ .name = "NoReadWrite", .value = 7, .parameters = &.{} },
736 .{ .name = "RuntimeAlignedALTERA", .value = 5940, .parameters = &.{} },
737 },
738 .decoration => &.{
739 .{ .name = "RelaxedPrecision", .value = 0, .parameters = &.{} },
740 .{ .name = "SpecId", .value = 1, .parameters = &.{.literal_integer} },
741 .{ .name = "Block", .value = 2, .parameters = &.{} },
742 .{ .name = "BufferBlock", .value = 3, .parameters = &.{} },
743 .{ .name = "RowMajor", .value = 4, .parameters = &.{} },
744 .{ .name = "ColMajor", .value = 5, .parameters = &.{} },
745 .{ .name = "ArrayStride", .value = 6, .parameters = &.{.literal_integer} },
746 .{ .name = "MatrixStride", .value = 7, .parameters = &.{.literal_integer} },
747 .{ .name = "GLSLShared", .value = 8, .parameters = &.{} },
748 .{ .name = "GLSLPacked", .value = 9, .parameters = &.{} },
749 .{ .name = "CPacked", .value = 10, .parameters = &.{} },
750 .{ .name = "BuiltIn", .value = 11, .parameters = &.{.built_in} },
751 .{ .name = "NoPerspective", .value = 13, .parameters = &.{} },
752 .{ .name = "Flat", .value = 14, .parameters = &.{} },
753 .{ .name = "Patch", .value = 15, .parameters = &.{} },
754 .{ .name = "Centroid", .value = 16, .parameters = &.{} },
755 .{ .name = "Sample", .value = 17, .parameters = &.{} },
756 .{ .name = "Invariant", .value = 18, .parameters = &.{} },
757 .{ .name = "Restrict", .value = 19, .parameters = &.{} },
758 .{ .name = "Aliased", .value = 20, .parameters = &.{} },
759 .{ .name = "Volatile", .value = 21, .parameters = &.{} },
760 .{ .name = "Constant", .value = 22, .parameters = &.{} },
761 .{ .name = "Coherent", .value = 23, .parameters = &.{} },
762 .{ .name = "NonWritable", .value = 24, .parameters = &.{} },
763 .{ .name = "NonReadable", .value = 25, .parameters = &.{} },
764 .{ .name = "Uniform", .value = 26, .parameters = &.{} },
765 .{ .name = "UniformId", .value = 27, .parameters = &.{.id_scope} },
766 .{ .name = "SaturatedConversion", .value = 28, .parameters = &.{} },
767 .{ .name = "Stream", .value = 29, .parameters = &.{.literal_integer} },
768 .{ .name = "Location", .value = 30, .parameters = &.{.literal_integer} },
769 .{ .name = "Component", .value = 31, .parameters = &.{.literal_integer} },
770 .{ .name = "Index", .value = 32, .parameters = &.{.literal_integer} },
771 .{ .name = "Binding", .value = 33, .parameters = &.{.literal_integer} },
772 .{ .name = "DescriptorSet", .value = 34, .parameters = &.{.literal_integer} },
773 .{ .name = "Offset", .value = 35, .parameters = &.{.literal_integer} },
774 .{ .name = "XfbBuffer", .value = 36, .parameters = &.{.literal_integer} },
775 .{ .name = "XfbStride", .value = 37, .parameters = &.{.literal_integer} },
776 .{ .name = "FuncParamAttr", .value = 38, .parameters = &.{.function_parameter_attribute} },
777 .{ .name = "FPRoundingMode", .value = 39, .parameters = &.{.fp_rounding_mode} },
778 .{ .name = "FPFastMathMode", .value = 40, .parameters = &.{.fp_fast_math_mode} },
779 .{ .name = "LinkageAttributes", .value = 41, .parameters = &.{ .literal_string, .linkage_type } },
780 .{ .name = "NoContraction", .value = 42, .parameters = &.{} },
781 .{ .name = "InputAttachmentIndex", .value = 43, .parameters = &.{.literal_integer} },
782 .{ .name = "Alignment", .value = 44, .parameters = &.{.literal_integer} },
783 .{ .name = "MaxByteOffset", .value = 45, .parameters = &.{.literal_integer} },
784 .{ .name = "AlignmentId", .value = 46, .parameters = &.{.id_ref} },
785 .{ .name = "MaxByteOffsetId", .value = 47, .parameters = &.{.id_ref} },
786 .{ .name = "SaturatedToLargestFloat8NormalConversionEXT", .value = 4216, .parameters = &.{} },
787 .{ .name = "NoSignedWrap", .value = 4469, .parameters = &.{} },
788 .{ .name = "NoUnsignedWrap", .value = 4470, .parameters = &.{} },
789 .{ .name = "WeightTextureQCOM", .value = 4487, .parameters = &.{} },
790 .{ .name = "BlockMatchTextureQCOM", .value = 4488, .parameters = &.{} },
791 .{ .name = "BlockMatchSamplerQCOM", .value = 4499, .parameters = &.{} },
792 .{ .name = "ExplicitInterpAMD", .value = 4999, .parameters = &.{} },
793 .{ .name = "NodeSharesPayloadLimitsWithAMDX", .value = 5019, .parameters = &.{.id_ref} },
794 .{ .name = "NodeMaxPayloadsAMDX", .value = 5020, .parameters = &.{.id_ref} },
795 .{ .name = "TrackFinishWritingAMDX", .value = 5078, .parameters = &.{} },
796 .{ .name = "PayloadNodeNameAMDX", .value = 5091, .parameters = &.{.id_ref} },
797 .{ .name = "PayloadNodeBaseIndexAMDX", .value = 5098, .parameters = &.{.id_ref} },
798 .{ .name = "PayloadNodeSparseArrayAMDX", .value = 5099, .parameters = &.{} },
799 .{ .name = "PayloadNodeArraySizeAMDX", .value = 5100, .parameters = &.{.id_ref} },
800 .{ .name = "PayloadDispatchIndirectAMDX", .value = 5105, .parameters = &.{} },
801 .{ .name = "ArrayStrideIdEXT", .value = 5124, .parameters = &.{.id_ref} },
802 .{ .name = "OffsetIdEXT", .value = 5125, .parameters = &.{.id_ref} },
803 .{ .name = "UTFEncodedKHR", .value = 5145, .parameters = &.{} },
804 .{ .name = "OverrideCoverageNV", .value = 5248, .parameters = &.{} },
805 .{ .name = "PassthroughNV", .value = 5250, .parameters = &.{} },
806 .{ .name = "ViewportRelativeNV", .value = 5252, .parameters = &.{} },
807 .{ .name = "SecondaryViewportRelativeNV", .value = 5256, .parameters = &.{.literal_integer} },
808 .{ .name = "PerPrimitiveEXT", .value = 5271, .parameters = &.{} },
809 .{ .name = "PerViewNV", .value = 5272, .parameters = &.{} },
810 .{ .name = "PerTaskNV", .value = 5273, .parameters = &.{} },
811 .{ .name = "PerVertexKHR", .value = 5285, .parameters = &.{} },
812 .{ .name = "NonUniform", .value = 5300, .parameters = &.{} },
813 .{ .name = "RestrictPointer", .value = 5355, .parameters = &.{} },
814 .{ .name = "AliasedPointer", .value = 5356, .parameters = &.{} },
815 .{ .name = "MemberOffsetNV", .value = 5358, .parameters = &.{.literal_integer} },
816 .{ .name = "HitObjectShaderRecordBufferNV", .value = 5386, .parameters = &.{} },
817 .{ .name = "HitObjectShaderRecordBufferEXT", .value = 5389, .parameters = &.{} },
818 .{ .name = "BankNV", .value = 5397, .parameters = &.{.literal_integer} },
819 .{ .name = "BindlessSamplerNV", .value = 5398, .parameters = &.{} },
820 .{ .name = "BindlessImageNV", .value = 5399, .parameters = &.{} },
821 .{ .name = "BoundSamplerNV", .value = 5400, .parameters = &.{} },
822 .{ .name = "BoundImageNV", .value = 5401, .parameters = &.{} },
823 .{ .name = "SIMTCallINTEL", .value = 5599, .parameters = &.{.literal_integer} },
824 .{ .name = "ReferencedIndirectlyINTEL", .value = 5602, .parameters = &.{} },
825 .{ .name = "ClobberINTEL", .value = 5607, .parameters = &.{.literal_string} },
826 .{ .name = "SideEffectsINTEL", .value = 5608, .parameters = &.{} },
827 .{ .name = "VectorComputeVariableINTEL", .value = 5624, .parameters = &.{} },
828 .{ .name = "FuncParamIOKindINTEL", .value = 5625, .parameters = &.{.literal_integer} },
829 .{ .name = "VectorComputeFunctionINTEL", .value = 5626, .parameters = &.{} },
830 .{ .name = "StackCallINTEL", .value = 5627, .parameters = &.{} },
831 .{ .name = "GlobalVariableOffsetINTEL", .value = 5628, .parameters = &.{.literal_integer} },
832 .{ .name = "CounterBuffer", .value = 5634, .parameters = &.{.id_ref} },
833 .{ .name = "UserSemantic", .value = 5635, .parameters = &.{.literal_string} },
834 .{ .name = "UserTypeGOOGLE", .value = 5636, .parameters = &.{.literal_string} },
835 .{ .name = "FunctionRoundingModeINTEL", .value = 5822, .parameters = &.{ .literal_integer, .fp_rounding_mode } },
836 .{ .name = "FunctionDenormModeINTEL", .value = 5823, .parameters = &.{ .literal_integer, .fp_denorm_mode } },
837 .{ .name = "RegisterALTERA", .value = 5825, .parameters = &.{} },
838 .{ .name = "MemoryALTERA", .value = 5826, .parameters = &.{.literal_string} },
839 .{ .name = "NumbanksALTERA", .value = 5827, .parameters = &.{.literal_integer} },
840 .{ .name = "BankwidthALTERA", .value = 5828, .parameters = &.{.literal_integer} },
841 .{ .name = "MaxPrivateCopiesALTERA", .value = 5829, .parameters = &.{.literal_integer} },
842 .{ .name = "SinglepumpALTERA", .value = 5830, .parameters = &.{} },
843 .{ .name = "DoublepumpALTERA", .value = 5831, .parameters = &.{} },
844 .{ .name = "MaxReplicatesALTERA", .value = 5832, .parameters = &.{.literal_integer} },
845 .{ .name = "SimpleDualPortALTERA", .value = 5833, .parameters = &.{} },
846 .{ .name = "MergeALTERA", .value = 5834, .parameters = &.{ .literal_string, .literal_string } },
847 .{ .name = "BankBitsALTERA", .value = 5835, .parameters = &.{.literal_integer} },
848 .{ .name = "ForcePow2DepthALTERA", .value = 5836, .parameters = &.{.literal_integer} },
849 .{ .name = "StridesizeALTERA", .value = 5883, .parameters = &.{.literal_integer} },
850 .{ .name = "WordsizeALTERA", .value = 5884, .parameters = &.{.literal_integer} },
851 .{ .name = "TrueDualPortALTERA", .value = 5885, .parameters = &.{} },
852 .{ .name = "BurstCoalesceALTERA", .value = 5899, .parameters = &.{} },
853 .{ .name = "CacheSizeALTERA", .value = 5900, .parameters = &.{.literal_integer} },
854 .{ .name = "DontStaticallyCoalesceALTERA", .value = 5901, .parameters = &.{} },
855 .{ .name = "PrefetchALTERA", .value = 5902, .parameters = &.{.literal_integer} },
856 .{ .name = "StallEnableALTERA", .value = 5905, .parameters = &.{} },
857 .{ .name = "FuseLoopsInFunctionALTERA", .value = 5907, .parameters = &.{} },
858 .{ .name = "MathOpDSPModeALTERA", .value = 5909, .parameters = &.{ .literal_integer, .literal_integer } },
859 .{ .name = "AliasScopeINTEL", .value = 5914, .parameters = &.{.id_ref} },
860 .{ .name = "NoAliasINTEL", .value = 5915, .parameters = &.{.id_ref} },
861 .{ .name = "InitiationIntervalALTERA", .value = 5917, .parameters = &.{.literal_integer} },
862 .{ .name = "MaxConcurrencyALTERA", .value = 5918, .parameters = &.{.literal_integer} },
863 .{ .name = "PipelineEnableALTERA", .value = 5919, .parameters = &.{.literal_integer} },
864 .{ .name = "BufferLocationALTERA", .value = 5921, .parameters = &.{.literal_integer} },
865 .{ .name = "IOPipeStorageALTERA", .value = 5944, .parameters = &.{.literal_integer} },
866 .{ .name = "FunctionFloatingPointModeINTEL", .value = 6080, .parameters = &.{ .literal_integer, .fp_operation_mode } },
867 .{ .name = "SingleElementVectorINTEL", .value = 6085, .parameters = &.{} },
868 .{ .name = "VectorComputeCallableFunctionINTEL", .value = 6087, .parameters = &.{} },
869 .{ .name = "MediaBlockIOINTEL", .value = 6140, .parameters = &.{} },
870 .{ .name = "StallFreeALTERA", .value = 6151, .parameters = &.{} },
871 .{ .name = "FPMaxErrorDecorationINTEL", .value = 6170, .parameters = &.{.literal_float} },
872 .{ .name = "LatencyControlLabelALTERA", .value = 6172, .parameters = &.{.literal_integer} },
873 .{ .name = "LatencyControlConstraintALTERA", .value = 6173, .parameters = &.{ .literal_integer, .literal_integer, .literal_integer } },
874 .{ .name = "ConduitKernelArgumentALTERA", .value = 6175, .parameters = &.{} },
875 .{ .name = "RegisterMapKernelArgumentALTERA", .value = 6176, .parameters = &.{} },
876 .{ .name = "MMHostInterfaceAddressWidthALTERA", .value = 6177, .parameters = &.{.literal_integer} },
877 .{ .name = "MMHostInterfaceDataWidthALTERA", .value = 6178, .parameters = &.{.literal_integer} },
878 .{ .name = "MMHostInterfaceLatencyALTERA", .value = 6179, .parameters = &.{.literal_integer} },
879 .{ .name = "MMHostInterfaceReadWriteModeALTERA", .value = 6180, .parameters = &.{.access_qualifier} },
880 .{ .name = "MMHostInterfaceMaxBurstALTERA", .value = 6181, .parameters = &.{.literal_integer} },
881 .{ .name = "MMHostInterfaceWaitRequestALTERA", .value = 6182, .parameters = &.{.literal_integer} },
882 .{ .name = "StableKernelArgumentALTERA", .value = 6183, .parameters = &.{} },
883 .{ .name = "HostAccessINTEL", .value = 6188, .parameters = &.{ .host_access_qualifier, .literal_string } },
884 .{ .name = "InitModeALTERA", .value = 6190, .parameters = &.{.initialization_mode_qualifier} },
885 .{ .name = "ImplementInRegisterMapALTERA", .value = 6191, .parameters = &.{.literal_integer} },
886 .{ .name = "ConditionalINTEL", .value = 6247, .parameters = &.{.id_ref} },
887 .{ .name = "CacheControlLoadINTEL", .value = 6442, .parameters = &.{ .literal_integer, .load_cache_control } },
888 .{ .name = "CacheControlStoreINTEL", .value = 6443, .parameters = &.{ .literal_integer, .store_cache_control } },
889 },
890 .built_in => &.{
891 .{ .name = "Position", .value = 0, .parameters = &.{} },
892 .{ .name = "PointSize", .value = 1, .parameters = &.{} },
893 .{ .name = "ClipDistance", .value = 3, .parameters = &.{} },
894 .{ .name = "CullDistance", .value = 4, .parameters = &.{} },
895 .{ .name = "VertexId", .value = 5, .parameters = &.{} },
896 .{ .name = "InstanceId", .value = 6, .parameters = &.{} },
897 .{ .name = "PrimitiveId", .value = 7, .parameters = &.{} },
898 .{ .name = "InvocationId", .value = 8, .parameters = &.{} },
899 .{ .name = "Layer", .value = 9, .parameters = &.{} },
900 .{ .name = "ViewportIndex", .value = 10, .parameters = &.{} },
901 .{ .name = "TessLevelOuter", .value = 11, .parameters = &.{} },
902 .{ .name = "TessLevelInner", .value = 12, .parameters = &.{} },
903 .{ .name = "TessCoord", .value = 13, .parameters = &.{} },
904 .{ .name = "PatchVertices", .value = 14, .parameters = &.{} },
905 .{ .name = "FragCoord", .value = 15, .parameters = &.{} },
906 .{ .name = "PointCoord", .value = 16, .parameters = &.{} },
907 .{ .name = "FrontFacing", .value = 17, .parameters = &.{} },
908 .{ .name = "SampleId", .value = 18, .parameters = &.{} },
909 .{ .name = "SamplePosition", .value = 19, .parameters = &.{} },
910 .{ .name = "SampleMask", .value = 20, .parameters = &.{} },
911 .{ .name = "FragDepth", .value = 22, .parameters = &.{} },
912 .{ .name = "HelperInvocation", .value = 23, .parameters = &.{} },
913 .{ .name = "NumWorkgroups", .value = 24, .parameters = &.{} },
914 .{ .name = "WorkgroupSize", .value = 25, .parameters = &.{} },
915 .{ .name = "WorkgroupId", .value = 26, .parameters = &.{} },
916 .{ .name = "LocalInvocationId", .value = 27, .parameters = &.{} },
917 .{ .name = "GlobalInvocationId", .value = 28, .parameters = &.{} },
918 .{ .name = "LocalInvocationIndex", .value = 29, .parameters = &.{} },
919 .{ .name = "WorkDim", .value = 30, .parameters = &.{} },
920 .{ .name = "GlobalSize", .value = 31, .parameters = &.{} },
921 .{ .name = "EnqueuedWorkgroupSize", .value = 32, .parameters = &.{} },
922 .{ .name = "GlobalOffset", .value = 33, .parameters = &.{} },
923 .{ .name = "GlobalLinearId", .value = 34, .parameters = &.{} },
924 .{ .name = "SubgroupSize", .value = 36, .parameters = &.{} },
925 .{ .name = "SubgroupMaxSize", .value = 37, .parameters = &.{} },
926 .{ .name = "NumSubgroups", .value = 38, .parameters = &.{} },
927 .{ .name = "NumEnqueuedSubgroups", .value = 39, .parameters = &.{} },
928 .{ .name = "SubgroupId", .value = 40, .parameters = &.{} },
929 .{ .name = "SubgroupLocalInvocationId", .value = 41, .parameters = &.{} },
930 .{ .name = "VertexIndex", .value = 42, .parameters = &.{} },
931 .{ .name = "InstanceIndex", .value = 43, .parameters = &.{} },
932 .{ .name = "CoreIDARM", .value = 4160, .parameters = &.{} },
933 .{ .name = "CoreCountARM", .value = 4161, .parameters = &.{} },
934 .{ .name = "CoreMaxIDARM", .value = 4162, .parameters = &.{} },
935 .{ .name = "WarpIDARM", .value = 4163, .parameters = &.{} },
936 .{ .name = "WarpMaxIDARM", .value = 4164, .parameters = &.{} },
937 .{ .name = "SubgroupEqMask", .value = 4416, .parameters = &.{} },
938 .{ .name = "SubgroupGeMask", .value = 4417, .parameters = &.{} },
939 .{ .name = "SubgroupGtMask", .value = 4418, .parameters = &.{} },
940 .{ .name = "SubgroupLeMask", .value = 4419, .parameters = &.{} },
941 .{ .name = "SubgroupLtMask", .value = 4420, .parameters = &.{} },
942 .{ .name = "BaseVertex", .value = 4424, .parameters = &.{} },
943 .{ .name = "BaseInstance", .value = 4425, .parameters = &.{} },
944 .{ .name = "DrawIndex", .value = 4426, .parameters = &.{} },
945 .{ .name = "PrimitiveShadingRateKHR", .value = 4432, .parameters = &.{} },
946 .{ .name = "DeviceIndex", .value = 4438, .parameters = &.{} },
947 .{ .name = "ViewIndex", .value = 4440, .parameters = &.{} },
948 .{ .name = "ShadingRateKHR", .value = 4444, .parameters = &.{} },
949 .{ .name = "TileOffsetQCOM", .value = 4492, .parameters = &.{} },
950 .{ .name = "TileDimensionQCOM", .value = 4493, .parameters = &.{} },
951 .{ .name = "TileApronSizeQCOM", .value = 4494, .parameters = &.{} },
952 .{ .name = "BaryCoordNoPerspAMD", .value = 4992, .parameters = &.{} },
953 .{ .name = "BaryCoordNoPerspCentroidAMD", .value = 4993, .parameters = &.{} },
954 .{ .name = "BaryCoordNoPerspSampleAMD", .value = 4994, .parameters = &.{} },
955 .{ .name = "BaryCoordSmoothAMD", .value = 4995, .parameters = &.{} },
956 .{ .name = "BaryCoordSmoothCentroidAMD", .value = 4996, .parameters = &.{} },
957 .{ .name = "BaryCoordSmoothSampleAMD", .value = 4997, .parameters = &.{} },
958 .{ .name = "BaryCoordPullModelAMD", .value = 4998, .parameters = &.{} },
959 .{ .name = "FragStencilRefEXT", .value = 5014, .parameters = &.{} },
960 .{ .name = "RemainingRecursionLevelsAMDX", .value = 5021, .parameters = &.{} },
961 .{ .name = "ShaderIndexAMDX", .value = 5073, .parameters = &.{} },
962 .{ .name = "SamplerHeapEXT", .value = 5122, .parameters = &.{} },
963 .{ .name = "ResourceHeapEXT", .value = 5123, .parameters = &.{} },
964 .{ .name = "ViewportMaskNV", .value = 5253, .parameters = &.{} },
965 .{ .name = "SecondaryPositionNV", .value = 5257, .parameters = &.{} },
966 .{ .name = "SecondaryViewportMaskNV", .value = 5258, .parameters = &.{} },
967 .{ .name = "PositionPerViewNV", .value = 5261, .parameters = &.{} },
968 .{ .name = "ViewportMaskPerViewNV", .value = 5262, .parameters = &.{} },
969 .{ .name = "FullyCoveredEXT", .value = 5264, .parameters = &.{} },
970 .{ .name = "TaskCountNV", .value = 5274, .parameters = &.{} },
971 .{ .name = "PrimitiveCountNV", .value = 5275, .parameters = &.{} },
972 .{ .name = "PrimitiveIndicesNV", .value = 5276, .parameters = &.{} },
973 .{ .name = "ClipDistancePerViewNV", .value = 5277, .parameters = &.{} },
974 .{ .name = "CullDistancePerViewNV", .value = 5278, .parameters = &.{} },
975 .{ .name = "LayerPerViewNV", .value = 5279, .parameters = &.{} },
976 .{ .name = "MeshViewCountNV", .value = 5280, .parameters = &.{} },
977 .{ .name = "MeshViewIndicesNV", .value = 5281, .parameters = &.{} },
978 .{ .name = "BaryCoordKHR", .value = 5286, .parameters = &.{} },
979 .{ .name = "BaryCoordNoPerspKHR", .value = 5287, .parameters = &.{} },
980 .{ .name = "FragSizeEXT", .value = 5292, .parameters = &.{} },
981 .{ .name = "FragInvocationCountEXT", .value = 5293, .parameters = &.{} },
982 .{ .name = "PrimitivePointIndicesEXT", .value = 5294, .parameters = &.{} },
983 .{ .name = "PrimitiveLineIndicesEXT", .value = 5295, .parameters = &.{} },
984 .{ .name = "PrimitiveTriangleIndicesEXT", .value = 5296, .parameters = &.{} },
985 .{ .name = "CullPrimitiveEXT", .value = 5299, .parameters = &.{} },
986 .{ .name = "LaunchIdKHR", .value = 5319, .parameters = &.{} },
987 .{ .name = "LaunchSizeKHR", .value = 5320, .parameters = &.{} },
988 .{ .name = "WorldRayOriginKHR", .value = 5321, .parameters = &.{} },
989 .{ .name = "WorldRayDirectionKHR", .value = 5322, .parameters = &.{} },
990 .{ .name = "ObjectRayOriginKHR", .value = 5323, .parameters = &.{} },
991 .{ .name = "ObjectRayDirectionKHR", .value = 5324, .parameters = &.{} },
992 .{ .name = "RayTminKHR", .value = 5325, .parameters = &.{} },
993 .{ .name = "RayTmaxKHR", .value = 5326, .parameters = &.{} },
994 .{ .name = "InstanceCustomIndexKHR", .value = 5327, .parameters = &.{} },
995 .{ .name = "ObjectToWorldKHR", .value = 5330, .parameters = &.{} },
996 .{ .name = "WorldToObjectKHR", .value = 5331, .parameters = &.{} },
997 .{ .name = "HitTNV", .value = 5332, .parameters = &.{} },
998 .{ .name = "HitKindKHR", .value = 5333, .parameters = &.{} },
999 .{ .name = "CurrentRayTimeNV", .value = 5334, .parameters = &.{} },
1000 .{ .name = "HitTriangleVertexPositionsKHR", .value = 5335, .parameters = &.{} },
1001 .{ .name = "HitMicroTriangleVertexPositionsNV", .value = 5337, .parameters = &.{} },
1002 .{ .name = "HitMicroTriangleVertexBarycentricsNV", .value = 5344, .parameters = &.{} },
1003 .{ .name = "IncomingRayFlagsKHR", .value = 5351, .parameters = &.{} },
1004 .{ .name = "RayGeometryIndexKHR", .value = 5352, .parameters = &.{} },
1005 .{ .name = "HitIsSphereNV", .value = 5359, .parameters = &.{} },
1006 .{ .name = "HitIsLSSNV", .value = 5360, .parameters = &.{} },
1007 .{ .name = "HitSpherePositionNV", .value = 5361, .parameters = &.{} },
1008 .{ .name = "WarpsPerSMNV", .value = 5374, .parameters = &.{} },
1009 .{ .name = "SMCountNV", .value = 5375, .parameters = &.{} },
1010 .{ .name = "WarpIDNV", .value = 5376, .parameters = &.{} },
1011 .{ .name = "SMIDNV", .value = 5377, .parameters = &.{} },
1012 .{ .name = "HitLSSPositionsNV", .value = 5396, .parameters = &.{} },
1013 .{ .name = "HitKindFrontFacingMicroTriangleNV", .value = 5405, .parameters = &.{} },
1014 .{ .name = "HitKindBackFacingMicroTriangleNV", .value = 5406, .parameters = &.{} },
1015 .{ .name = "HitSphereRadiusNV", .value = 5420, .parameters = &.{} },
1016 .{ .name = "HitLSSRadiiNV", .value = 5421, .parameters = &.{} },
1017 .{ .name = "ClusterIDNV", .value = 5436, .parameters = &.{} },
1018 .{ .name = "CullMaskKHR", .value = 6021, .parameters = &.{} },
1019 },
1020 .scope => &.{
1021 .{ .name = "CrossDevice", .value = 0, .parameters = &.{} },
1022 .{ .name = "Device", .value = 1, .parameters = &.{} },
1023 .{ .name = "Workgroup", .value = 2, .parameters = &.{} },
1024 .{ .name = "Subgroup", .value = 3, .parameters = &.{} },
1025 .{ .name = "Invocation", .value = 4, .parameters = &.{} },
1026 .{ .name = "QueueFamily", .value = 5, .parameters = &.{} },
1027 .{ .name = "ShaderCallKHR", .value = 6, .parameters = &.{} },
1028 },
1029 .group_operation => &.{
1030 .{ .name = "Reduce", .value = 0, .parameters = &.{} },
1031 .{ .name = "InclusiveScan", .value = 1, .parameters = &.{} },
1032 .{ .name = "ExclusiveScan", .value = 2, .parameters = &.{} },
1033 .{ .name = "ClusteredReduce", .value = 3, .parameters = &.{} },
1034 .{ .name = "PartitionedReduceEXT", .value = 6, .parameters = &.{} },
1035 .{ .name = "PartitionedInclusiveScanEXT", .value = 7, .parameters = &.{} },
1036 .{ .name = "PartitionedExclusiveScanEXT", .value = 8, .parameters = &.{} },
1037 },
1038 .kernel_enqueue_flags => &.{
1039 .{ .name = "NoWait", .value = 0, .parameters = &.{} },
1040 .{ .name = "WaitKernel", .value = 1, .parameters = &.{} },
1041 .{ .name = "WaitWorkGroup", .value = 2, .parameters = &.{} },
1042 },
1043 .capability => &.{
1044 .{ .name = "Matrix", .value = 0, .parameters = &.{} },
1045 .{ .name = "Shader", .value = 1, .parameters = &.{} },
1046 .{ .name = "Geometry", .value = 2, .parameters = &.{} },
1047 .{ .name = "Tessellation", .value = 3, .parameters = &.{} },
1048 .{ .name = "Addresses", .value = 4, .parameters = &.{} },
1049 .{ .name = "Linkage", .value = 5, .parameters = &.{} },
1050 .{ .name = "Kernel", .value = 6, .parameters = &.{} },
1051 .{ .name = "Vector16", .value = 7, .parameters = &.{} },
1052 .{ .name = "Float16Buffer", .value = 8, .parameters = &.{} },
1053 .{ .name = "Float16", .value = 9, .parameters = &.{} },
1054 .{ .name = "Float64", .value = 10, .parameters = &.{} },
1055 .{ .name = "Int64", .value = 11, .parameters = &.{} },
1056 .{ .name = "Int64Atomics", .value = 12, .parameters = &.{} },
1057 .{ .name = "ImageBasic", .value = 13, .parameters = &.{} },
1058 .{ .name = "ImageReadWrite", .value = 14, .parameters = &.{} },
1059 .{ .name = "ImageMipmap", .value = 15, .parameters = &.{} },
1060 .{ .name = "Pipes", .value = 17, .parameters = &.{} },
1061 .{ .name = "Groups", .value = 18, .parameters = &.{} },
1062 .{ .name = "DeviceEnqueue", .value = 19, .parameters = &.{} },
1063 .{ .name = "LiteralSampler", .value = 20, .parameters = &.{} },
1064 .{ .name = "AtomicStorage", .value = 21, .parameters = &.{} },
1065 .{ .name = "Int16", .value = 22, .parameters = &.{} },
1066 .{ .name = "TessellationPointSize", .value = 23, .parameters = &.{} },
1067 .{ .name = "GeometryPointSize", .value = 24, .parameters = &.{} },
1068 .{ .name = "ImageGatherExtended", .value = 25, .parameters = &.{} },
1069 .{ .name = "StorageImageMultisample", .value = 27, .parameters = &.{} },
1070 .{ .name = "UniformBufferArrayDynamicIndexing", .value = 28, .parameters = &.{} },
1071 .{ .name = "SampledImageArrayDynamicIndexing", .value = 29, .parameters = &.{} },
1072 .{ .name = "StorageBufferArrayDynamicIndexing", .value = 30, .parameters = &.{} },
1073 .{ .name = "StorageImageArrayDynamicIndexing", .value = 31, .parameters = &.{} },
1074 .{ .name = "ClipDistance", .value = 32, .parameters = &.{} },
1075 .{ .name = "CullDistance", .value = 33, .parameters = &.{} },
1076 .{ .name = "ImageCubeArray", .value = 34, .parameters = &.{} },
1077 .{ .name = "SampleRateShading", .value = 35, .parameters = &.{} },
1078 .{ .name = "ImageRect", .value = 36, .parameters = &.{} },
1079 .{ .name = "SampledRect", .value = 37, .parameters = &.{} },
1080 .{ .name = "GenericPointer", .value = 38, .parameters = &.{} },
1081 .{ .name = "Int8", .value = 39, .parameters = &.{} },
1082 .{ .name = "InputAttachment", .value = 40, .parameters = &.{} },
1083 .{ .name = "SparseResidency", .value = 41, .parameters = &.{} },
1084 .{ .name = "MinLod", .value = 42, .parameters = &.{} },
1085 .{ .name = "Sampled1D", .value = 43, .parameters = &.{} },
1086 .{ .name = "Image1D", .value = 44, .parameters = &.{} },
1087 .{ .name = "SampledCubeArray", .value = 45, .parameters = &.{} },
1088 .{ .name = "SampledBuffer", .value = 46, .parameters = &.{} },
1089 .{ .name = "ImageBuffer", .value = 47, .parameters = &.{} },
1090 .{ .name = "ImageMSArray", .value = 48, .parameters = &.{} },
1091 .{ .name = "StorageImageExtendedFormats", .value = 49, .parameters = &.{} },
1092 .{ .name = "ImageQuery", .value = 50, .parameters = &.{} },
1093 .{ .name = "DerivativeControl", .value = 51, .parameters = &.{} },
1094 .{ .name = "InterpolationFunction", .value = 52, .parameters = &.{} },
1095 .{ .name = "TransformFeedback", .value = 53, .parameters = &.{} },
1096 .{ .name = "GeometryStreams", .value = 54, .parameters = &.{} },
1097 .{ .name = "StorageImageReadWithoutFormat", .value = 55, .parameters = &.{} },
1098 .{ .name = "StorageImageWriteWithoutFormat", .value = 56, .parameters = &.{} },
1099 .{ .name = "MultiViewport", .value = 57, .parameters = &.{} },
1100 .{ .name = "SubgroupDispatch", .value = 58, .parameters = &.{} },
1101 .{ .name = "NamedBarrier", .value = 59, .parameters = &.{} },
1102 .{ .name = "PipeStorage", .value = 60, .parameters = &.{} },
1103 .{ .name = "GroupNonUniform", .value = 61, .parameters = &.{} },
1104 .{ .name = "GroupNonUniformVote", .value = 62, .parameters = &.{} },
1105 .{ .name = "GroupNonUniformArithmetic", .value = 63, .parameters = &.{} },
1106 .{ .name = "GroupNonUniformBallot", .value = 64, .parameters = &.{} },
1107 .{ .name = "GroupNonUniformShuffle", .value = 65, .parameters = &.{} },
1108 .{ .name = "GroupNonUniformShuffleRelative", .value = 66, .parameters = &.{} },
1109 .{ .name = "GroupNonUniformClustered", .value = 67, .parameters = &.{} },
1110 .{ .name = "GroupNonUniformQuad", .value = 68, .parameters = &.{} },
1111 .{ .name = "ShaderLayer", .value = 69, .parameters = &.{} },
1112 .{ .name = "ShaderViewportIndex", .value = 70, .parameters = &.{} },
1113 .{ .name = "UniformDecoration", .value = 71, .parameters = &.{} },
1114 .{ .name = "CoreBuiltinsARM", .value = 4165, .parameters = &.{} },
1115 .{ .name = "TileImageColorReadAccessEXT", .value = 4166, .parameters = &.{} },
1116 .{ .name = "TileImageDepthReadAccessEXT", .value = 4167, .parameters = &.{} },
1117 .{ .name = "TileImageStencilReadAccessEXT", .value = 4168, .parameters = &.{} },
1118 .{ .name = "TensorsARM", .value = 4174, .parameters = &.{} },
1119 .{ .name = "StorageTensorArrayDynamicIndexingARM", .value = 4175, .parameters = &.{} },
1120 .{ .name = "StorageTensorArrayNonUniformIndexingARM", .value = 4176, .parameters = &.{} },
1121 .{ .name = "GraphARM", .value = 4191, .parameters = &.{} },
1122 .{ .name = "CooperativeMatrixLayoutsARM", .value = 4201, .parameters = &.{} },
1123 .{ .name = "Float8EXT", .value = 4212, .parameters = &.{} },
1124 .{ .name = "Float8CooperativeMatrixEXT", .value = 4213, .parameters = &.{} },
1125 .{ .name = "FragmentShadingRateKHR", .value = 4422, .parameters = &.{} },
1126 .{ .name = "SubgroupBallotKHR", .value = 4423, .parameters = &.{} },
1127 .{ .name = "DrawParameters", .value = 4427, .parameters = &.{} },
1128 .{ .name = "WorkgroupMemoryExplicitLayoutKHR", .value = 4428, .parameters = &.{} },
1129 .{ .name = "WorkgroupMemoryExplicitLayout8BitAccessKHR", .value = 4429, .parameters = &.{} },
1130 .{ .name = "WorkgroupMemoryExplicitLayout16BitAccessKHR", .value = 4430, .parameters = &.{} },
1131 .{ .name = "SubgroupVoteKHR", .value = 4431, .parameters = &.{} },
1132 .{ .name = "StorageBuffer16BitAccess", .value = 4433, .parameters = &.{} },
1133 .{ .name = "UniformAndStorageBuffer16BitAccess", .value = 4434, .parameters = &.{} },
1134 .{ .name = "StoragePushConstant16", .value = 4435, .parameters = &.{} },
1135 .{ .name = "StorageInputOutput16", .value = 4436, .parameters = &.{} },
1136 .{ .name = "DeviceGroup", .value = 4437, .parameters = &.{} },
1137 .{ .name = "MultiView", .value = 4439, .parameters = &.{} },
1138 .{ .name = "VariablePointersStorageBuffer", .value = 4441, .parameters = &.{} },
1139 .{ .name = "VariablePointers", .value = 4442, .parameters = &.{} },
1140 .{ .name = "AtomicStorageOps", .value = 4445, .parameters = &.{} },
1141 .{ .name = "SampleMaskPostDepthCoverage", .value = 4447, .parameters = &.{} },
1142 .{ .name = "StorageBuffer8BitAccess", .value = 4448, .parameters = &.{} },
1143 .{ .name = "UniformAndStorageBuffer8BitAccess", .value = 4449, .parameters = &.{} },
1144 .{ .name = "StoragePushConstant8", .value = 4450, .parameters = &.{} },
1145 .{ .name = "DenormPreserve", .value = 4464, .parameters = &.{} },
1146 .{ .name = "DenormFlushToZero", .value = 4465, .parameters = &.{} },
1147 .{ .name = "SignedZeroInfNanPreserve", .value = 4466, .parameters = &.{} },
1148 .{ .name = "RoundingModeRTE", .value = 4467, .parameters = &.{} },
1149 .{ .name = "RoundingModeRTZ", .value = 4468, .parameters = &.{} },
1150 .{ .name = "RayQueryProvisionalKHR", .value = 4471, .parameters = &.{} },
1151 .{ .name = "RayQueryKHR", .value = 4472, .parameters = &.{} },
1152 .{ .name = "UntypedPointersKHR", .value = 4473, .parameters = &.{} },
1153 .{ .name = "RayTraversalPrimitiveCullingKHR", .value = 4478, .parameters = &.{} },
1154 .{ .name = "RayTracingKHR", .value = 4479, .parameters = &.{} },
1155 .{ .name = "TextureSampleWeightedQCOM", .value = 4484, .parameters = &.{} },
1156 .{ .name = "TextureBoxFilterQCOM", .value = 4485, .parameters = &.{} },
1157 .{ .name = "TextureBlockMatchQCOM", .value = 4486, .parameters = &.{} },
1158 .{ .name = "TileShadingQCOM", .value = 4495, .parameters = &.{} },
1159 .{ .name = "CooperativeMatrixConversionQCOM", .value = 4496, .parameters = &.{} },
1160 .{ .name = "TextureBlockMatch2QCOM", .value = 4498, .parameters = &.{} },
1161 .{ .name = "Float16ImageAMD", .value = 5008, .parameters = &.{} },
1162 .{ .name = "ImageGatherBiasLodAMD", .value = 5009, .parameters = &.{} },
1163 .{ .name = "FragmentMaskAMD", .value = 5010, .parameters = &.{} },
1164 .{ .name = "StencilExportEXT", .value = 5013, .parameters = &.{} },
1165 .{ .name = "ImageReadWriteLodAMD", .value = 5015, .parameters = &.{} },
1166 .{ .name = "Int64ImageEXT", .value = 5016, .parameters = &.{} },
1167 .{ .name = "ShaderClockKHR", .value = 5055, .parameters = &.{} },
1168 .{ .name = "ShaderEnqueueAMDX", .value = 5067, .parameters = &.{} },
1169 .{ .name = "QuadControlKHR", .value = 5087, .parameters = &.{} },
1170 .{ .name = "Int4TypeINTEL", .value = 5112, .parameters = &.{} },
1171 .{ .name = "Int4CooperativeMatrixINTEL", .value = 5114, .parameters = &.{} },
1172 .{ .name = "BFloat16TypeKHR", .value = 5116, .parameters = &.{} },
1173 .{ .name = "BFloat16DotProductKHR", .value = 5117, .parameters = &.{} },
1174 .{ .name = "BFloat16CooperativeMatrixKHR", .value = 5118, .parameters = &.{} },
1175 .{ .name = "AbortKHR", .value = 5120, .parameters = &.{} },
1176 .{ .name = "DescriptorHeapEXT", .value = 5128, .parameters = &.{} },
1177 .{ .name = "ConstantDataKHR", .value = 5146, .parameters = &.{} },
1178 .{ .name = "PoisonFreezeKHR", .value = 5156, .parameters = &.{} },
1179 .{ .name = "SampleMaskOverrideCoverageNV", .value = 5249, .parameters = &.{} },
1180 .{ .name = "GeometryShaderPassthroughNV", .value = 5251, .parameters = &.{} },
1181 .{ .name = "ShaderViewportIndexLayerEXT", .value = 5254, .parameters = &.{} },
1182 .{ .name = "ShaderViewportMaskNV", .value = 5255, .parameters = &.{} },
1183 .{ .name = "ShaderStereoViewNV", .value = 5259, .parameters = &.{} },
1184 .{ .name = "PerViewAttributesNV", .value = 5260, .parameters = &.{} },
1185 .{ .name = "FragmentFullyCoveredEXT", .value = 5265, .parameters = &.{} },
1186 .{ .name = "MeshShadingNV", .value = 5266, .parameters = &.{} },
1187 .{ .name = "ImageFootprintNV", .value = 5282, .parameters = &.{} },
1188 .{ .name = "MeshShadingEXT", .value = 5283, .parameters = &.{} },
1189 .{ .name = "FragmentBarycentricKHR", .value = 5284, .parameters = &.{} },
1190 .{ .name = "ComputeDerivativeGroupQuadsKHR", .value = 5288, .parameters = &.{} },
1191 .{ .name = "FragmentDensityEXT", .value = 5291, .parameters = &.{} },
1192 .{ .name = "GroupNonUniformPartitionedEXT", .value = 5297, .parameters = &.{} },
1193 .{ .name = "ShaderNonUniform", .value = 5301, .parameters = &.{} },
1194 .{ .name = "RuntimeDescriptorArray", .value = 5302, .parameters = &.{} },
1195 .{ .name = "InputAttachmentArrayDynamicIndexing", .value = 5303, .parameters = &.{} },
1196 .{ .name = "UniformTexelBufferArrayDynamicIndexing", .value = 5304, .parameters = &.{} },
1197 .{ .name = "StorageTexelBufferArrayDynamicIndexing", .value = 5305, .parameters = &.{} },
1198 .{ .name = "UniformBufferArrayNonUniformIndexing", .value = 5306, .parameters = &.{} },
1199 .{ .name = "SampledImageArrayNonUniformIndexing", .value = 5307, .parameters = &.{} },
1200 .{ .name = "StorageBufferArrayNonUniformIndexing", .value = 5308, .parameters = &.{} },
1201 .{ .name = "StorageImageArrayNonUniformIndexing", .value = 5309, .parameters = &.{} },
1202 .{ .name = "InputAttachmentArrayNonUniformIndexing", .value = 5310, .parameters = &.{} },
1203 .{ .name = "UniformTexelBufferArrayNonUniformIndexing", .value = 5311, .parameters = &.{} },
1204 .{ .name = "StorageTexelBufferArrayNonUniformIndexing", .value = 5312, .parameters = &.{} },
1205 .{ .name = "RayTracingPositionFetchKHR", .value = 5336, .parameters = &.{} },
1206 .{ .name = "RayTracingNV", .value = 5340, .parameters = &.{} },
1207 .{ .name = "RayTracingMotionBlurNV", .value = 5341, .parameters = &.{} },
1208 .{ .name = "VulkanMemoryModel", .value = 5345, .parameters = &.{} },
1209 .{ .name = "VulkanMemoryModelDeviceScope", .value = 5346, .parameters = &.{} },
1210 .{ .name = "PhysicalStorageBufferAddresses", .value = 5347, .parameters = &.{} },
1211 .{ .name = "ComputeDerivativeGroupLinearKHR", .value = 5350, .parameters = &.{} },
1212 .{ .name = "RayTracingProvisionalKHR", .value = 5353, .parameters = &.{} },
1213 .{ .name = "CooperativeMatrixNV", .value = 5357, .parameters = &.{} },
1214 .{ .name = "FragmentShaderSampleInterlockEXT", .value = 5363, .parameters = &.{} },
1215 .{ .name = "FragmentShaderShadingRateInterlockEXT", .value = 5372, .parameters = &.{} },
1216 .{ .name = "ShaderSMBuiltinsNV", .value = 5373, .parameters = &.{} },
1217 .{ .name = "FragmentShaderPixelInterlockEXT", .value = 5378, .parameters = &.{} },
1218 .{ .name = "DemoteToHelperInvocation", .value = 5379, .parameters = &.{} },
1219 .{ .name = "DisplacementMicromapNV", .value = 5380, .parameters = &.{} },
1220 .{ .name = "RayTracingOpacityMicromapEXT", .value = 5381, .parameters = &.{} },
1221 .{ .name = "ShaderInvocationReorderNV", .value = 5383, .parameters = &.{} },
1222 .{ .name = "ShaderInvocationReorderEXT", .value = 5388, .parameters = &.{} },
1223 .{ .name = "BindlessTextureNV", .value = 5390, .parameters = &.{} },
1224 .{ .name = "RayQueryPositionFetchKHR", .value = 5391, .parameters = &.{} },
1225 .{ .name = "CooperativeVectorNV", .value = 5394, .parameters = &.{} },
1226 .{ .name = "AtomicFloat16VectorNV", .value = 5404, .parameters = &.{} },
1227 .{ .name = "RayTracingDisplacementMicromapNV", .value = 5409, .parameters = &.{} },
1228 .{ .name = "RawAccessChainsNV", .value = 5414, .parameters = &.{} },
1229 .{ .name = "RayTracingSpheresGeometryNV", .value = 5418, .parameters = &.{} },
1230 .{ .name = "RayTracingLinearSweptSpheresGeometryNV", .value = 5419, .parameters = &.{} },
1231 .{ .name = "PushConstantBanksNV", .value = 5423, .parameters = &.{} },
1232 .{ .name = "LongVectorEXT", .value = 5425, .parameters = &.{} },
1233 .{ .name = "Shader64BitIndexingEXT", .value = 5426, .parameters = &.{} },
1234 .{ .name = "CooperativeMatrixReductionsNV", .value = 5430, .parameters = &.{} },
1235 .{ .name = "CooperativeMatrixConversionsNV", .value = 5431, .parameters = &.{} },
1236 .{ .name = "CooperativeMatrixPerElementOperationsNV", .value = 5432, .parameters = &.{} },
1237 .{ .name = "CooperativeMatrixTensorAddressingNV", .value = 5433, .parameters = &.{} },
1238 .{ .name = "CooperativeMatrixBlockLoadsNV", .value = 5434, .parameters = &.{} },
1239 .{ .name = "CooperativeVectorTrainingNV", .value = 5435, .parameters = &.{} },
1240 .{ .name = "RayTracingClusterAccelerationStructureNV", .value = 5437, .parameters = &.{} },
1241 .{ .name = "TensorAddressingNV", .value = 5439, .parameters = &.{} },
1242 .{ .name = "SubgroupShuffleINTEL", .value = 5568, .parameters = &.{} },
1243 .{ .name = "SubgroupBufferBlockIOINTEL", .value = 5569, .parameters = &.{} },
1244 .{ .name = "SubgroupImageBlockIOINTEL", .value = 5570, .parameters = &.{} },
1245 .{ .name = "SubgroupImageMediaBlockIOINTEL", .value = 5579, .parameters = &.{} },
1246 .{ .name = "RoundToInfinityINTEL", .value = 5582, .parameters = &.{} },
1247 .{ .name = "FloatingPointModeINTEL", .value = 5583, .parameters = &.{} },
1248 .{ .name = "IntegerFunctions2INTEL", .value = 5584, .parameters = &.{} },
1249 .{ .name = "FunctionPointersINTEL", .value = 5603, .parameters = &.{} },
1250 .{ .name = "IndirectReferencesINTEL", .value = 5604, .parameters = &.{} },
1251 .{ .name = "AsmINTEL", .value = 5606, .parameters = &.{} },
1252 .{ .name = "AtomicFloat32MinMaxEXT", .value = 5612, .parameters = &.{} },
1253 .{ .name = "AtomicFloat64MinMaxEXT", .value = 5613, .parameters = &.{} },
1254 .{ .name = "AtomicFloat16MinMaxEXT", .value = 5616, .parameters = &.{} },
1255 .{ .name = "VectorComputeINTEL", .value = 5617, .parameters = &.{} },
1256 .{ .name = "VectorAnyINTEL", .value = 5619, .parameters = &.{} },
1257 .{ .name = "ExpectAssumeKHR", .value = 5629, .parameters = &.{} },
1258 .{ .name = "SubgroupAvcMotionEstimationINTEL", .value = 5696, .parameters = &.{} },
1259 .{ .name = "SubgroupAvcMotionEstimationIntraINTEL", .value = 5697, .parameters = &.{} },
1260 .{ .name = "SubgroupAvcMotionEstimationChromaINTEL", .value = 5698, .parameters = &.{} },
1261 .{ .name = "VariableLengthArrayINTEL", .value = 5817, .parameters = &.{} },
1262 .{ .name = "FunctionFloatControlINTEL", .value = 5821, .parameters = &.{} },
1263 .{ .name = "FPGAMemoryAttributesALTERA", .value = 5824, .parameters = &.{} },
1264 .{ .name = "FPFastMathModeINTEL", .value = 5837, .parameters = &.{} },
1265 .{ .name = "ArbitraryPrecisionIntegersALTERA", .value = 5844, .parameters = &.{} },
1266 .{ .name = "ArbitraryPrecisionFloatingPointALTERA", .value = 5845, .parameters = &.{} },
1267 .{ .name = "UnstructuredLoopControlsINTEL", .value = 5886, .parameters = &.{} },
1268 .{ .name = "FPGALoopControlsALTERA", .value = 5888, .parameters = &.{} },
1269 .{ .name = "KernelAttributesINTEL", .value = 5892, .parameters = &.{} },
1270 .{ .name = "FPGAKernelAttributesINTEL", .value = 5897, .parameters = &.{} },
1271 .{ .name = "FPGAMemoryAccessesALTERA", .value = 5898, .parameters = &.{} },
1272 .{ .name = "FPGAClusterAttributesALTERA", .value = 5904, .parameters = &.{} },
1273 .{ .name = "LoopFuseALTERA", .value = 5906, .parameters = &.{} },
1274 .{ .name = "FPGADSPControlALTERA", .value = 5908, .parameters = &.{} },
1275 .{ .name = "MemoryAccessAliasingINTEL", .value = 5910, .parameters = &.{} },
1276 .{ .name = "FPGAInvocationPipeliningAttributesALTERA", .value = 5916, .parameters = &.{} },
1277 .{ .name = "FPGABufferLocationALTERA", .value = 5920, .parameters = &.{} },
1278 .{ .name = "ArbitraryPrecisionFixedPointALTERA", .value = 5922, .parameters = &.{} },
1279 .{ .name = "USMStorageClassesALTERA", .value = 5935, .parameters = &.{} },
1280 .{ .name = "RuntimeAlignedAttributeALTERA", .value = 5939, .parameters = &.{} },
1281 .{ .name = "IOPipesALTERA", .value = 5943, .parameters = &.{} },
1282 .{ .name = "BlockingPipesALTERA", .value = 5945, .parameters = &.{} },
1283 .{ .name = "FPGARegALTERA", .value = 5948, .parameters = &.{} },
1284 .{ .name = "DotProductInputAll", .value = 6016, .parameters = &.{} },
1285 .{ .name = "DotProductInput4x8Bit", .value = 6017, .parameters = &.{} },
1286 .{ .name = "DotProductInput4x8BitPacked", .value = 6018, .parameters = &.{} },
1287 .{ .name = "DotProduct", .value = 6019, .parameters = &.{} },
1288 .{ .name = "RayCullMaskKHR", .value = 6020, .parameters = &.{} },
1289 .{ .name = "CooperativeMatrixKHR", .value = 6022, .parameters = &.{} },
1290 .{ .name = "ReplicatedCompositesEXT", .value = 6024, .parameters = &.{} },
1291 .{ .name = "BitInstructions", .value = 6025, .parameters = &.{} },
1292 .{ .name = "GroupNonUniformRotateKHR", .value = 6026, .parameters = &.{} },
1293 .{ .name = "FloatControls2", .value = 6029, .parameters = &.{} },
1294 .{ .name = "FMAKHR", .value = 6030, .parameters = &.{} },
1295 .{ .name = "AtomicFloat32AddEXT", .value = 6033, .parameters = &.{} },
1296 .{ .name = "AtomicFloat64AddEXT", .value = 6034, .parameters = &.{} },
1297 .{ .name = "LongCompositesINTEL", .value = 6089, .parameters = &.{} },
1298 .{ .name = "OptNoneEXT", .value = 6094, .parameters = &.{} },
1299 .{ .name = "AtomicFloat16AddEXT", .value = 6095, .parameters = &.{} },
1300 .{ .name = "DebugInfoModuleINTEL", .value = 6114, .parameters = &.{} },
1301 .{ .name = "BFloat16ConversionINTEL", .value = 6115, .parameters = &.{} },
1302 .{ .name = "SplitBarrierINTEL", .value = 6141, .parameters = &.{} },
1303 .{ .name = "ArithmeticFenceEXT", .value = 6144, .parameters = &.{} },
1304 .{ .name = "FPGAClusterAttributesV2ALTERA", .value = 6150, .parameters = &.{} },
1305 .{ .name = "FPGAKernelAttributesv2INTEL", .value = 6161, .parameters = &.{} },
1306 .{ .name = "TaskSequenceALTERA", .value = 6162, .parameters = &.{} },
1307 .{ .name = "FPMaxErrorINTEL", .value = 6169, .parameters = &.{} },
1308 .{ .name = "FPGALatencyControlALTERA", .value = 6171, .parameters = &.{} },
1309 .{ .name = "FPGAArgumentInterfacesALTERA", .value = 6174, .parameters = &.{} },
1310 .{ .name = "GlobalVariableHostAccessINTEL", .value = 6187, .parameters = &.{} },
1311 .{ .name = "GlobalVariableFPGADecorationsALTERA", .value = 6189, .parameters = &.{} },
1312 .{ .name = "SubgroupBufferPrefetchINTEL", .value = 6220, .parameters = &.{} },
1313 .{ .name = "Subgroup2DBlockIOINTEL", .value = 6228, .parameters = &.{} },
1314 .{ .name = "Subgroup2DBlockTransformINTEL", .value = 6229, .parameters = &.{} },
1315 .{ .name = "Subgroup2DBlockTransposeINTEL", .value = 6230, .parameters = &.{} },
1316 .{ .name = "SubgroupMatrixMultiplyAccumulateINTEL", .value = 6236, .parameters = &.{} },
1317 .{ .name = "TernaryBitwiseFunctionINTEL", .value = 6241, .parameters = &.{} },
1318 .{ .name = "UntypedVariableLengthArrayINTEL", .value = 6243, .parameters = &.{} },
1319 .{ .name = "SpecConditionalINTEL", .value = 6245, .parameters = &.{} },
1320 .{ .name = "FunctionVariantsINTEL", .value = 6246, .parameters = &.{} },
1321 .{ .name = "GroupUniformArithmeticKHR", .value = 6400, .parameters = &.{} },
1322 .{ .name = "TensorFloat32RoundingINTEL", .value = 6425, .parameters = &.{} },
1323 .{ .name = "MaskedGatherScatterINTEL", .value = 6427, .parameters = &.{} },
1324 .{ .name = "CacheControlsINTEL", .value = 6441, .parameters = &.{} },
1325 .{ .name = "RegisterLimitsINTEL", .value = 6460, .parameters = &.{} },
1326 .{ .name = "BindlessImagesINTEL", .value = 6528, .parameters = &.{} },
1327 .{ .name = "DotProductFloat16AccFloat32VALVE", .value = 6912, .parameters = &.{} },
1328 .{ .name = "DotProductFloat16AccFloat16VALVE", .value = 6913, .parameters = &.{} },
1329 .{ .name = "DotProductBFloat16AccVALVE", .value = 6914, .parameters = &.{} },
1330 .{ .name = "DotProductFloat8AccFloat32VALVE", .value = 6915, .parameters = &.{} },
1331 },
1332 .ray_query_intersection => &.{
1333 .{ .name = "RayQueryCandidateIntersectionKHR", .value = 0, .parameters = &.{} },
1334 .{ .name = "RayQueryCommittedIntersectionKHR", .value = 1, .parameters = &.{} },
1335 },
1336 .ray_query_committed_intersection_type => &.{
1337 .{ .name = "RayQueryCommittedIntersectionNoneKHR", .value = 0, .parameters = &.{} },
1338 .{ .name = "RayQueryCommittedIntersectionTriangleKHR", .value = 1, .parameters = &.{} },
1339 .{ .name = "RayQueryCommittedIntersectionGeneratedKHR", .value = 2, .parameters = &.{} },
1340 },
1341 .ray_query_candidate_intersection_type => &.{
1342 .{ .name = "RayQueryCandidateIntersectionTriangleKHR", .value = 0, .parameters = &.{} },
1343 .{ .name = "RayQueryCandidateIntersectionAABBKHR", .value = 1, .parameters = &.{} },
1344 },
1345 .packed_vector_format => &.{
1346 .{ .name = "PackedVectorFormat4x8Bit", .value = 0, .parameters = &.{} },
1347 },
1348 .cooperative_matrix_operands => &.{
1349 .{ .name = "NoneKHR", .value = 0x0000, .parameters = &.{} },
1350 .{ .name = "MatrixASignedComponentsKHR", .value = 0x0001, .parameters = &.{} },
1351 .{ .name = "MatrixBSignedComponentsKHR", .value = 0x0002, .parameters = &.{} },
1352 .{ .name = "MatrixCSignedComponentsKHR", .value = 0x0004, .parameters = &.{} },
1353 .{ .name = "MatrixResultSignedComponentsKHR", .value = 0x0008, .parameters = &.{} },
1354 .{ .name = "SaturatingAccumulationKHR", .value = 0x0010, .parameters = &.{} },
1355 },
1356 .cooperative_matrix_layout => &.{
1357 .{ .name = "RowMajorKHR", .value = 0, .parameters = &.{} },
1358 .{ .name = "ColumnMajorKHR", .value = 1, .parameters = &.{} },
1359 .{ .name = "RowBlockedInterleavedARM", .value = 4202, .parameters = &.{} },
1360 .{ .name = "ColumnBlockedInterleavedARM", .value = 4203, .parameters = &.{} },
1361 },
1362 .cooperative_matrix_use => &.{
1363 .{ .name = "MatrixAKHR", .value = 0, .parameters = &.{} },
1364 .{ .name = "MatrixBKHR", .value = 1, .parameters = &.{} },
1365 .{ .name = "MatrixAccumulatorKHR", .value = 2, .parameters = &.{} },
1366 },
1367 .cooperative_matrix_reduce => &.{
1368 .{ .name = "Row", .value = 0x0001, .parameters = &.{} },
1369 .{ .name = "Column", .value = 0x0002, .parameters = &.{} },
1370 .{ .name = "2x2", .value = 0x0004, .parameters = &.{} },
1371 },
1372 .tensor_clamp_mode => &.{
1373 .{ .name = "Undefined", .value = 0, .parameters = &.{} },
1374 .{ .name = "Constant", .value = 1, .parameters = &.{} },
1375 .{ .name = "ClampToEdge", .value = 2, .parameters = &.{} },
1376 .{ .name = "Repeat", .value = 3, .parameters = &.{} },
1377 .{ .name = "RepeatMirrored", .value = 4, .parameters = &.{} },
1378 },
1379 .tensor_addressing_operands => &.{
1380 .{ .name = "TensorView", .value = 0x0001, .parameters = &.{.id_ref} },
1381 .{ .name = "DecodeFunc", .value = 0x0002, .parameters = &.{.id_ref} },
1382 },
1383 .initialization_mode_qualifier => &.{
1384 .{ .name = "InitOnDeviceReprogramALTERA", .value = 0, .parameters = &.{} },
1385 .{ .name = "InitOnDeviceResetALTERA", .value = 1, .parameters = &.{} },
1386 },
1387 .load_cache_control => &.{
1388 .{ .name = "UncachedINTEL", .value = 0, .parameters = &.{} },
1389 .{ .name = "CachedINTEL", .value = 1, .parameters = &.{} },
1390 .{ .name = "StreamingINTEL", .value = 2, .parameters = &.{} },
1391 .{ .name = "InvalidateAfterReadINTEL", .value = 3, .parameters = &.{} },
1392 .{ .name = "ConstCachedINTEL", .value = 4, .parameters = &.{} },
1393 },
1394 .store_cache_control => &.{
1395 .{ .name = "UncachedINTEL", .value = 0, .parameters = &.{} },
1396 .{ .name = "WriteThroughINTEL", .value = 1, .parameters = &.{} },
1397 .{ .name = "WriteBackINTEL", .value = 2, .parameters = &.{} },
1398 .{ .name = "StreamingINTEL", .value = 3, .parameters = &.{} },
1399 },
1400 .named_maximum_number_of_registers => &.{
1401 .{ .name = "AutoINTEL", .value = 0, .parameters = &.{} },
1402 },
1403 .matrix_multiply_accumulate_operands => &.{
1404 .{ .name = "MatrixASignedComponentsINTEL", .value = 0x1, .parameters = &.{} },
1405 .{ .name = "MatrixBSignedComponentsINTEL", .value = 0x2, .parameters = &.{} },
1406 .{ .name = "MatrixCBFloat16INTEL", .value = 0x4, .parameters = &.{} },
1407 .{ .name = "MatrixResultBFloat16INTEL", .value = 0x8, .parameters = &.{} },
1408 .{ .name = "MatrixAPackedInt8INTEL", .value = 0x10, .parameters = &.{} },
1409 .{ .name = "MatrixBPackedInt8INTEL", .value = 0x20, .parameters = &.{} },
1410 .{ .name = "MatrixAPackedInt4INTEL", .value = 0x40, .parameters = &.{} },
1411 .{ .name = "MatrixBPackedInt4INTEL", .value = 0x80, .parameters = &.{} },
1412 .{ .name = "MatrixATF32INTEL", .value = 0x100, .parameters = &.{} },
1413 .{ .name = "MatrixBTF32INTEL", .value = 0x200, .parameters = &.{} },
1414 .{ .name = "MatrixAPackedFloat16INTEL", .value = 0x400, .parameters = &.{} },
1415 .{ .name = "MatrixBPackedFloat16INTEL", .value = 0x800, .parameters = &.{} },
1416 .{ .name = "MatrixAPackedBFloat16INTEL", .value = 0x1000, .parameters = &.{} },
1417 .{ .name = "MatrixBPackedBFloat16INTEL", .value = 0x2000, .parameters = &.{} },
1418 },
1419 .fp_encoding => &.{
1420 .{ .name = "BFloat16KHR", .value = 0, .parameters = &.{} },
1421 .{ .name = "Float8E4M3EXT", .value = 4214, .parameters = &.{} },
1422 .{ .name = "Float8E5M2EXT", .value = 4215, .parameters = &.{} },
1423 },
1424 .cooperative_vector_matrix_layout => &.{
1425 .{ .name = "RowMajorNV", .value = 0, .parameters = &.{} },
1426 .{ .name = "ColumnMajorNV", .value = 1, .parameters = &.{} },
1427 .{ .name = "InferencingOptimalNV", .value = 2, .parameters = &.{} },
1428 .{ .name = "TrainingOptimalNV", .value = 3, .parameters = &.{} },
1429 },
1430 .component_type => &.{
1431 .{ .name = "Float16NV", .value = 0, .parameters = &.{} },
1432 .{ .name = "Float32NV", .value = 1, .parameters = &.{} },
1433 .{ .name = "Float64NV", .value = 2, .parameters = &.{} },
1434 .{ .name = "SignedInt8NV", .value = 3, .parameters = &.{} },
1435 .{ .name = "SignedInt16NV", .value = 4, .parameters = &.{} },
1436 .{ .name = "SignedInt32NV", .value = 5, .parameters = &.{} },
1437 .{ .name = "SignedInt64NV", .value = 6, .parameters = &.{} },
1438 .{ .name = "UnsignedInt8NV", .value = 7, .parameters = &.{} },
1439 .{ .name = "UnsignedInt16NV", .value = 8, .parameters = &.{} },
1440 .{ .name = "UnsignedInt32NV", .value = 9, .parameters = &.{} },
1441 .{ .name = "UnsignedInt64NV", .value = 10, .parameters = &.{} },
1442 .{ .name = "SignedInt8PackedNV", .value = 1000491000, .parameters = &.{} },
1443 .{ .name = "UnsignedInt8PackedNV", .value = 1000491001, .parameters = &.{} },
1444 .{ .name = "FloatE4M3NV", .value = 1000491002, .parameters = &.{} },
1445 .{ .name = "FloatE5M2NV", .value = 1000491003, .parameters = &.{} },
1446 },
1447 .id_result_type => unreachable,
1448 .id_result => unreachable,
1449 .id_memory_semantics => unreachable,
1450 .id_scope => unreachable,
1451 .id_ref => unreachable,
1452 .literal_integer => unreachable,
1453 .literal_string => unreachable,
1454 .literal_float => unreachable,
1455 .literal_context_dependent_number => unreachable,
1456 .literal_ext_inst_integer => unreachable,
1457 .literal_spec_constant_op_integer => unreachable,
1458 .pair_literal_integer_id_ref => unreachable,
1459 .pair_id_ref_literal_integer => unreachable,
1460 .pair_id_ref_id_ref => unreachable,
1461 .tensor_operands => &.{
1462 .{ .name = "NoneARM", .value = 0x0000, .parameters = &.{} },
1463 .{ .name = "NontemporalARM", .value = 0x0001, .parameters = &.{} },
1464 .{ .name = "OutOfBoundsValueARM", .value = 0x0002, .parameters = &.{.id_ref} },
1465 .{ .name = "MakeElementAvailableARM", .value = 0x0004, .parameters = &.{.id_ref} },
1466 .{ .name = "MakeElementVisibleARM", .value = 0x0008, .parameters = &.{.id_ref} },
1467 .{ .name = "NonPrivateElementARM", .value = 0x0010, .parameters = &.{} },
1468 },
1469 };
1470 }
1471};
1472
1473pub const Opcode = enum(u16) {
1474 OpNop = 0,
1475 OpUndef = 1,
1476 OpSourceContinued = 2,
1477 OpSource = 3,
1478 OpSourceExtension = 4,
1479 OpName = 5,
1480 OpMemberName = 6,
1481 OpString = 7,
1482 OpLine = 8,
1483 OpExtension = 10,
1484 OpExtInstImport = 11,
1485 OpExtInst = 12,
1486 OpMemoryModel = 14,
1487 OpEntryPoint = 15,
1488 OpExecutionMode = 16,
1489 OpCapability = 17,
1490 OpTypeVoid = 19,
1491 OpTypeBool = 20,
1492 OpTypeInt = 21,
1493 OpTypeFloat = 22,
1494 OpTypeVector = 23,
1495 OpTypeMatrix = 24,
1496 OpTypeImage = 25,
1497 OpTypeSampler = 26,
1498 OpTypeSampledImage = 27,
1499 OpTypeArray = 28,
1500 OpTypeRuntimeArray = 29,
1501 OpTypeStruct = 30,
1502 OpTypeOpaque = 31,
1503 OpTypePointer = 32,
1504 OpTypeFunction = 33,
1505 OpTypeEvent = 34,
1506 OpTypeDeviceEvent = 35,
1507 OpTypeReserveId = 36,
1508 OpTypeQueue = 37,
1509 OpTypePipe = 38,
1510 OpTypeForwardPointer = 39,
1511 OpConstantTrue = 41,
1512 OpConstantFalse = 42,
1513 OpConstant = 43,
1514 OpConstantComposite = 44,
1515 OpConstantSampler = 45,
1516 OpConstantNull = 46,
1517 OpSpecConstantTrue = 48,
1518 OpSpecConstantFalse = 49,
1519 OpSpecConstant = 50,
1520 OpSpecConstantComposite = 51,
1521 OpSpecConstantOp = 52,
1522 OpFunction = 54,
1523 OpFunctionParameter = 55,
1524 OpFunctionEnd = 56,
1525 OpFunctionCall = 57,
1526 OpVariable = 59,
1527 OpImageTexelPointer = 60,
1528 OpLoad = 61,
1529 OpStore = 62,
1530 OpCopyMemory = 63,
1531 OpCopyMemorySized = 64,
1532 OpAccessChain = 65,
1533 OpInBoundsAccessChain = 66,
1534 OpPtrAccessChain = 67,
1535 OpArrayLength = 68,
1536 OpGenericPtrMemSemantics = 69,
1537 OpInBoundsPtrAccessChain = 70,
1538 OpDecorate = 71,
1539 OpMemberDecorate = 72,
1540 OpDecorationGroup = 73,
1541 OpGroupDecorate = 74,
1542 OpGroupMemberDecorate = 75,
1543 OpVectorExtractDynamic = 77,
1544 OpVectorInsertDynamic = 78,
1545 OpVectorShuffle = 79,
1546 OpCompositeConstruct = 80,
1547 OpCompositeExtract = 81,
1548 OpCompositeInsert = 82,
1549 OpCopyObject = 83,
1550 OpTranspose = 84,
1551 OpSampledImage = 86,
1552 OpImageSampleImplicitLod = 87,
1553 OpImageSampleExplicitLod = 88,
1554 OpImageSampleDrefImplicitLod = 89,
1555 OpImageSampleDrefExplicitLod = 90,
1556 OpImageSampleProjImplicitLod = 91,
1557 OpImageSampleProjExplicitLod = 92,
1558 OpImageSampleProjDrefImplicitLod = 93,
1559 OpImageSampleProjDrefExplicitLod = 94,
1560 OpImageFetch = 95,
1561 OpImageGather = 96,
1562 OpImageDrefGather = 97,
1563 OpImageRead = 98,
1564 OpImageWrite = 99,
1565 OpImage = 100,
1566 OpImageQueryFormat = 101,
1567 OpImageQueryOrder = 102,
1568 OpImageQuerySizeLod = 103,
1569 OpImageQuerySize = 104,
1570 OpImageQueryLod = 105,
1571 OpImageQueryLevels = 106,
1572 OpImageQuerySamples = 107,
1573 OpConvertFToU = 109,
1574 OpConvertFToS = 110,
1575 OpConvertSToF = 111,
1576 OpConvertUToF = 112,
1577 OpUConvert = 113,
1578 OpSConvert = 114,
1579 OpFConvert = 115,
1580 OpQuantizeToF16 = 116,
1581 OpConvertPtrToU = 117,
1582 OpSatConvertSToU = 118,
1583 OpSatConvertUToS = 119,
1584 OpConvertUToPtr = 120,
1585 OpPtrCastToGeneric = 121,
1586 OpGenericCastToPtr = 122,
1587 OpGenericCastToPtrExplicit = 123,
1588 OpBitcast = 124,
1589 OpSNegate = 126,
1590 OpFNegate = 127,
1591 OpIAdd = 128,
1592 OpFAdd = 129,
1593 OpISub = 130,
1594 OpFSub = 131,
1595 OpIMul = 132,
1596 OpFMul = 133,
1597 OpUDiv = 134,
1598 OpSDiv = 135,
1599 OpFDiv = 136,
1600 OpUMod = 137,
1601 OpSRem = 138,
1602 OpSMod = 139,
1603 OpFRem = 140,
1604 OpFMod = 141,
1605 OpVectorTimesScalar = 142,
1606 OpMatrixTimesScalar = 143,
1607 OpVectorTimesMatrix = 144,
1608 OpMatrixTimesVector = 145,
1609 OpMatrixTimesMatrix = 146,
1610 OpOuterProduct = 147,
1611 OpDot = 148,
1612 OpIAddCarry = 149,
1613 OpISubBorrow = 150,
1614 OpUMulExtended = 151,
1615 OpSMulExtended = 152,
1616 OpAny = 154,
1617 OpAll = 155,
1618 OpIsNan = 156,
1619 OpIsInf = 157,
1620 OpIsFinite = 158,
1621 OpIsNormal = 159,
1622 OpSignBitSet = 160,
1623 OpLessOrGreater = 161,
1624 OpOrdered = 162,
1625 OpUnordered = 163,
1626 OpLogicalEqual = 164,
1627 OpLogicalNotEqual = 165,
1628 OpLogicalOr = 166,
1629 OpLogicalAnd = 167,
1630 OpLogicalNot = 168,
1631 OpSelect = 169,
1632 OpIEqual = 170,
1633 OpINotEqual = 171,
1634 OpUGreaterThan = 172,
1635 OpSGreaterThan = 173,
1636 OpUGreaterThanEqual = 174,
1637 OpSGreaterThanEqual = 175,
1638 OpULessThan = 176,
1639 OpSLessThan = 177,
1640 OpULessThanEqual = 178,
1641 OpSLessThanEqual = 179,
1642 OpFOrdEqual = 180,
1643 OpFUnordEqual = 181,
1644 OpFOrdNotEqual = 182,
1645 OpFUnordNotEqual = 183,
1646 OpFOrdLessThan = 184,
1647 OpFUnordLessThan = 185,
1648 OpFOrdGreaterThan = 186,
1649 OpFUnordGreaterThan = 187,
1650 OpFOrdLessThanEqual = 188,
1651 OpFUnordLessThanEqual = 189,
1652 OpFOrdGreaterThanEqual = 190,
1653 OpFUnordGreaterThanEqual = 191,
1654 OpShiftRightLogical = 194,
1655 OpShiftRightArithmetic = 195,
1656 OpShiftLeftLogical = 196,
1657 OpBitwiseOr = 197,
1658 OpBitwiseXor = 198,
1659 OpBitwiseAnd = 199,
1660 OpNot = 200,
1661 OpBitFieldInsert = 201,
1662 OpBitFieldSExtract = 202,
1663 OpBitFieldUExtract = 203,
1664 OpBitReverse = 204,
1665 OpBitCount = 205,
1666 OpDPdx = 207,
1667 OpDPdy = 208,
1668 OpFwidth = 209,
1669 OpDPdxFine = 210,
1670 OpDPdyFine = 211,
1671 OpFwidthFine = 212,
1672 OpDPdxCoarse = 213,
1673 OpDPdyCoarse = 214,
1674 OpFwidthCoarse = 215,
1675 OpEmitVertex = 218,
1676 OpEndPrimitive = 219,
1677 OpEmitStreamVertex = 220,
1678 OpEndStreamPrimitive = 221,
1679 OpControlBarrier = 224,
1680 OpMemoryBarrier = 225,
1681 OpAtomicLoad = 227,
1682 OpAtomicStore = 228,
1683 OpAtomicExchange = 229,
1684 OpAtomicCompareExchange = 230,
1685 OpAtomicCompareExchangeWeak = 231,
1686 OpAtomicIIncrement = 232,
1687 OpAtomicIDecrement = 233,
1688 OpAtomicIAdd = 234,
1689 OpAtomicISub = 235,
1690 OpAtomicSMin = 236,
1691 OpAtomicUMin = 237,
1692 OpAtomicSMax = 238,
1693 OpAtomicUMax = 239,
1694 OpAtomicAnd = 240,
1695 OpAtomicOr = 241,
1696 OpAtomicXor = 242,
1697 OpPhi = 245,
1698 OpLoopMerge = 246,
1699 OpSelectionMerge = 247,
1700 OpLabel = 248,
1701 OpBranch = 249,
1702 OpBranchConditional = 250,
1703 OpSwitch = 251,
1704 OpKill = 252,
1705 OpReturn = 253,
1706 OpReturnValue = 254,
1707 OpUnreachable = 255,
1708 OpLifetimeStart = 256,
1709 OpLifetimeStop = 257,
1710 OpGroupAsyncCopy = 259,
1711 OpGroupWaitEvents = 260,
1712 OpGroupAll = 261,
1713 OpGroupAny = 262,
1714 OpGroupBroadcast = 263,
1715 OpGroupIAdd = 264,
1716 OpGroupFAdd = 265,
1717 OpGroupFMin = 266,
1718 OpGroupUMin = 267,
1719 OpGroupSMin = 268,
1720 OpGroupFMax = 269,
1721 OpGroupUMax = 270,
1722 OpGroupSMax = 271,
1723 OpReadPipe = 274,
1724 OpWritePipe = 275,
1725 OpReservedReadPipe = 276,
1726 OpReservedWritePipe = 277,
1727 OpReserveReadPipePackets = 278,
1728 OpReserveWritePipePackets = 279,
1729 OpCommitReadPipe = 280,
1730 OpCommitWritePipe = 281,
1731 OpIsValidReserveId = 282,
1732 OpGetNumPipePackets = 283,
1733 OpGetMaxPipePackets = 284,
1734 OpGroupReserveReadPipePackets = 285,
1735 OpGroupReserveWritePipePackets = 286,
1736 OpGroupCommitReadPipe = 287,
1737 OpGroupCommitWritePipe = 288,
1738 OpEnqueueMarker = 291,
1739 OpEnqueueKernel = 292,
1740 OpGetKernelNDrangeSubGroupCount = 293,
1741 OpGetKernelNDrangeMaxSubGroupSize = 294,
1742 OpGetKernelWorkGroupSize = 295,
1743 OpGetKernelPreferredWorkGroupSizeMultiple = 296,
1744 OpRetainEvent = 297,
1745 OpReleaseEvent = 298,
1746 OpCreateUserEvent = 299,
1747 OpIsValidEvent = 300,
1748 OpSetUserEventStatus = 301,
1749 OpCaptureEventProfilingInfo = 302,
1750 OpGetDefaultQueue = 303,
1751 OpBuildNDRange = 304,
1752 OpImageSparseSampleImplicitLod = 305,
1753 OpImageSparseSampleExplicitLod = 306,
1754 OpImageSparseSampleDrefImplicitLod = 307,
1755 OpImageSparseSampleDrefExplicitLod = 308,
1756 OpImageSparseSampleProjImplicitLod = 309,
1757 OpImageSparseSampleProjExplicitLod = 310,
1758 OpImageSparseSampleProjDrefImplicitLod = 311,
1759 OpImageSparseSampleProjDrefExplicitLod = 312,
1760 OpImageSparseFetch = 313,
1761 OpImageSparseGather = 314,
1762 OpImageSparseDrefGather = 315,
1763 OpImageSparseTexelsResident = 316,
1764 OpNoLine = 317,
1765 OpAtomicFlagTestAndSet = 318,
1766 OpAtomicFlagClear = 319,
1767 OpImageSparseRead = 320,
1768 OpSizeOf = 321,
1769 OpTypePipeStorage = 322,
1770 OpConstantPipeStorage = 323,
1771 OpCreatePipeFromPipeStorage = 324,
1772 OpGetKernelLocalSizeForSubgroupCount = 325,
1773 OpGetKernelMaxNumSubgroups = 326,
1774 OpTypeNamedBarrier = 327,
1775 OpNamedBarrierInitialize = 328,
1776 OpMemoryNamedBarrier = 329,
1777 OpModuleProcessed = 330,
1778 OpExecutionModeId = 331,
1779 OpDecorateId = 332,
1780 OpGroupNonUniformElect = 333,
1781 OpGroupNonUniformAll = 334,
1782 OpGroupNonUniformAny = 335,
1783 OpGroupNonUniformAllEqual = 336,
1784 OpGroupNonUniformBroadcast = 337,
1785 OpGroupNonUniformBroadcastFirst = 338,
1786 OpGroupNonUniformBallot = 339,
1787 OpGroupNonUniformInverseBallot = 340,
1788 OpGroupNonUniformBallotBitExtract = 341,
1789 OpGroupNonUniformBallotBitCount = 342,
1790 OpGroupNonUniformBallotFindLSB = 343,
1791 OpGroupNonUniformBallotFindMSB = 344,
1792 OpGroupNonUniformShuffle = 345,
1793 OpGroupNonUniformShuffleXor = 346,
1794 OpGroupNonUniformShuffleUp = 347,
1795 OpGroupNonUniformShuffleDown = 348,
1796 OpGroupNonUniformIAdd = 349,
1797 OpGroupNonUniformFAdd = 350,
1798 OpGroupNonUniformIMul = 351,
1799 OpGroupNonUniformFMul = 352,
1800 OpGroupNonUniformSMin = 353,
1801 OpGroupNonUniformUMin = 354,
1802 OpGroupNonUniformFMin = 355,
1803 OpGroupNonUniformSMax = 356,
1804 OpGroupNonUniformUMax = 357,
1805 OpGroupNonUniformFMax = 358,
1806 OpGroupNonUniformBitwiseAnd = 359,
1807 OpGroupNonUniformBitwiseOr = 360,
1808 OpGroupNonUniformBitwiseXor = 361,
1809 OpGroupNonUniformLogicalAnd = 362,
1810 OpGroupNonUniformLogicalOr = 363,
1811 OpGroupNonUniformLogicalXor = 364,
1812 OpGroupNonUniformQuadBroadcast = 365,
1813 OpGroupNonUniformQuadSwap = 366,
1814 OpCopyLogical = 400,
1815 OpPtrEqual = 401,
1816 OpPtrNotEqual = 402,
1817 OpPtrDiff = 403,
1818 OpColorAttachmentReadEXT = 4160,
1819 OpDepthAttachmentReadEXT = 4161,
1820 OpStencilAttachmentReadEXT = 4162,
1821 OpTypeTensorARM = 4163,
1822 OpTensorReadARM = 4164,
1823 OpTensorWriteARM = 4165,
1824 OpTensorQuerySizeARM = 4166,
1825 OpGraphConstantARM = 4181,
1826 OpGraphEntryPointARM = 4182,
1827 OpGraphARM = 4183,
1828 OpGraphInputARM = 4184,
1829 OpGraphSetOutputARM = 4185,
1830 OpGraphEndARM = 4186,
1831 OpTypeGraphARM = 4190,
1832 OpTerminateInvocation = 4416,
1833 OpTypeUntypedPointerKHR = 4417,
1834 OpUntypedVariableKHR = 4418,
1835 OpUntypedAccessChainKHR = 4419,
1836 OpUntypedInBoundsAccessChainKHR = 4420,
1837 OpSubgroupBallotKHR = 4421,
1838 OpSubgroupFirstInvocationKHR = 4422,
1839 OpUntypedPtrAccessChainKHR = 4423,
1840 OpUntypedInBoundsPtrAccessChainKHR = 4424,
1841 OpUntypedArrayLengthKHR = 4425,
1842 OpUntypedPrefetchKHR = 4426,
1843 OpFmaKHR = 4427,
1844 OpSubgroupAllKHR = 4428,
1845 OpSubgroupAnyKHR = 4429,
1846 OpSubgroupAllEqualKHR = 4430,
1847 OpGroupNonUniformRotateKHR = 4431,
1848 OpSubgroupReadInvocationKHR = 4432,
1849 OpExtInstWithForwardRefsKHR = 4433,
1850 OpUntypedGroupAsyncCopyKHR = 4434,
1851 OpTraceRayKHR = 4445,
1852 OpExecuteCallableKHR = 4446,
1853 OpConvertUToAccelerationStructureKHR = 4447,
1854 OpIgnoreIntersectionKHR = 4448,
1855 OpTerminateRayKHR = 4449,
1856 OpSDot = 4450,
1857 OpUDot = 4451,
1858 OpSUDot = 4452,
1859 OpSDotAccSat = 4453,
1860 OpUDotAccSat = 4454,
1861 OpSUDotAccSat = 4455,
1862 OpTypeCooperativeMatrixKHR = 4456,
1863 OpCooperativeMatrixLoadKHR = 4457,
1864 OpCooperativeMatrixStoreKHR = 4458,
1865 OpCooperativeMatrixMulAddKHR = 4459,
1866 OpCooperativeMatrixLengthKHR = 4460,
1867 OpConstantCompositeReplicateEXT = 4461,
1868 OpSpecConstantCompositeReplicateEXT = 4462,
1869 OpCompositeConstructReplicateEXT = 4463,
1870 OpTypeRayQueryKHR = 4472,
1871 OpRayQueryInitializeKHR = 4473,
1872 OpRayQueryTerminateKHR = 4474,
1873 OpRayQueryGenerateIntersectionKHR = 4475,
1874 OpRayQueryConfirmIntersectionKHR = 4476,
1875 OpRayQueryProceedKHR = 4477,
1876 OpRayQueryGetIntersectionTypeKHR = 4479,
1877 OpImageSampleWeightedQCOM = 4480,
1878 OpImageBoxFilterQCOM = 4481,
1879 OpImageBlockMatchSSDQCOM = 4482,
1880 OpImageBlockMatchSADQCOM = 4483,
1881 OpBitCastArrayQCOM = 4497,
1882 OpImageBlockMatchWindowSSDQCOM = 4500,
1883 OpImageBlockMatchWindowSADQCOM = 4501,
1884 OpImageBlockMatchGatherSSDQCOM = 4502,
1885 OpImageBlockMatchGatherSADQCOM = 4503,
1886 OpCompositeConstructCoopMatQCOM = 4540,
1887 OpCompositeExtractCoopMatQCOM = 4541,
1888 OpExtractSubArrayQCOM = 4542,
1889 OpGroupIAddNonUniformAMD = 5000,
1890 OpGroupFAddNonUniformAMD = 5001,
1891 OpGroupFMinNonUniformAMD = 5002,
1892 OpGroupUMinNonUniformAMD = 5003,
1893 OpGroupSMinNonUniformAMD = 5004,
1894 OpGroupFMaxNonUniformAMD = 5005,
1895 OpGroupUMaxNonUniformAMD = 5006,
1896 OpGroupSMaxNonUniformAMD = 5007,
1897 OpFragmentMaskFetchAMD = 5011,
1898 OpFragmentFetchAMD = 5012,
1899 OpReadClockKHR = 5056,
1900 OpAllocateNodePayloadsAMDX = 5074,
1901 OpEnqueueNodePayloadsAMDX = 5075,
1902 OpTypeNodePayloadArrayAMDX = 5076,
1903 OpFinishWritingNodePayloadAMDX = 5078,
1904 OpNodePayloadArrayLengthAMDX = 5090,
1905 OpIsNodePayloadValidAMDX = 5101,
1906 OpConstantStringAMDX = 5103,
1907 OpSpecConstantStringAMDX = 5104,
1908 OpGroupNonUniformQuadAllKHR = 5110,
1909 OpGroupNonUniformQuadAnyKHR = 5111,
1910 OpTypeBufferEXT = 5115,
1911 OpBufferPointerEXT = 5119,
1912 OpAbortKHR = 5121,
1913 OpUntypedImageTexelPointerEXT = 5126,
1914 OpMemberDecorateIdEXT = 5127,
1915 OpConstantSizeOfEXT = 5129,
1916 OpConstantDataKHR = 5147,
1917 OpSpecConstantDataKHR = 5148,
1918 OpPoisonKHR = 5158,
1919 OpFreezeKHR = 5159,
1920 OpHitObjectRecordHitMotionNV = 5249,
1921 OpHitObjectRecordHitWithIndexMotionNV = 5250,
1922 OpHitObjectRecordMissMotionNV = 5251,
1923 OpHitObjectGetWorldToObjectNV = 5252,
1924 OpHitObjectGetObjectToWorldNV = 5253,
1925 OpHitObjectGetObjectRayDirectionNV = 5254,
1926 OpHitObjectGetObjectRayOriginNV = 5255,
1927 OpHitObjectTraceRayMotionNV = 5256,
1928 OpHitObjectGetShaderRecordBufferHandleNV = 5257,
1929 OpHitObjectGetShaderBindingTableRecordIndexNV = 5258,
1930 OpHitObjectRecordEmptyNV = 5259,
1931 OpHitObjectTraceRayNV = 5260,
1932 OpHitObjectRecordHitNV = 5261,
1933 OpHitObjectRecordHitWithIndexNV = 5262,
1934 OpHitObjectRecordMissNV = 5263,
1935 OpHitObjectExecuteShaderNV = 5264,
1936 OpHitObjectGetCurrentTimeNV = 5265,
1937 OpHitObjectGetAttributesNV = 5266,
1938 OpHitObjectGetHitKindNV = 5267,
1939 OpHitObjectGetPrimitiveIndexNV = 5268,
1940 OpHitObjectGetGeometryIndexNV = 5269,
1941 OpHitObjectGetInstanceIdNV = 5270,
1942 OpHitObjectGetInstanceCustomIndexNV = 5271,
1943 OpHitObjectGetWorldRayDirectionNV = 5272,
1944 OpHitObjectGetWorldRayOriginNV = 5273,
1945 OpHitObjectGetRayTMaxNV = 5274,
1946 OpHitObjectGetRayTMinNV = 5275,
1947 OpHitObjectIsEmptyNV = 5276,
1948 OpHitObjectIsHitNV = 5277,
1949 OpHitObjectIsMissNV = 5278,
1950 OpReorderThreadWithHitObjectNV = 5279,
1951 OpReorderThreadWithHintNV = 5280,
1952 OpTypeHitObjectNV = 5281,
1953 OpImageSampleFootprintNV = 5283,
1954 OpTypeVectorIdEXT = 5288,
1955 OpCooperativeVectorMatrixMulNV = 5289,
1956 OpCooperativeVectorOuterProductAccumulateNV = 5290,
1957 OpCooperativeVectorReduceSumAccumulateNV = 5291,
1958 OpCooperativeVectorMatrixMulAddNV = 5292,
1959 OpCooperativeMatrixConvertNV = 5293,
1960 OpEmitMeshTasksEXT = 5294,
1961 OpSetMeshOutputsEXT = 5295,
1962 OpGroupNonUniformPartitionEXT = 5296,
1963 OpWritePackedPrimitiveIndices4x8NV = 5299,
1964 OpFetchMicroTriangleVertexPositionNV = 5300,
1965 OpFetchMicroTriangleVertexBarycentricNV = 5301,
1966 OpCooperativeVectorLoadNV = 5302,
1967 OpCooperativeVectorStoreNV = 5303,
1968 OpHitObjectRecordFromQueryEXT = 5304,
1969 OpHitObjectRecordMissEXT = 5305,
1970 OpHitObjectRecordMissMotionEXT = 5306,
1971 OpHitObjectGetIntersectionTriangleVertexPositionsEXT = 5307,
1972 OpHitObjectGetRayFlagsEXT = 5308,
1973 OpHitObjectSetShaderBindingTableRecordIndexEXT = 5309,
1974 OpHitObjectReorderExecuteShaderEXT = 5310,
1975 OpHitObjectTraceReorderExecuteEXT = 5311,
1976 OpHitObjectTraceMotionReorderExecuteEXT = 5312,
1977 OpTypeHitObjectEXT = 5313,
1978 OpReorderThreadWithHintEXT = 5314,
1979 OpReorderThreadWithHitObjectEXT = 5315,
1980 OpHitObjectTraceRayEXT = 5316,
1981 OpHitObjectTraceRayMotionEXT = 5317,
1982 OpHitObjectRecordEmptyEXT = 5318,
1983 OpHitObjectExecuteShaderEXT = 5319,
1984 OpHitObjectGetCurrentTimeEXT = 5320,
1985 OpHitObjectGetAttributesEXT = 5321,
1986 OpHitObjectGetHitKindEXT = 5322,
1987 OpHitObjectGetPrimitiveIndexEXT = 5323,
1988 OpHitObjectGetGeometryIndexEXT = 5324,
1989 OpHitObjectGetInstanceIdEXT = 5325,
1990 OpHitObjectGetInstanceCustomIndexEXT = 5326,
1991 OpHitObjectGetObjectRayOriginEXT = 5327,
1992 OpHitObjectGetObjectRayDirectionEXT = 5328,
1993 OpHitObjectGetWorldRayDirectionEXT = 5329,
1994 OpHitObjectGetWorldRayOriginEXT = 5330,
1995 OpHitObjectGetObjectToWorldEXT = 5331,
1996 OpHitObjectGetWorldToObjectEXT = 5332,
1997 OpHitObjectGetRayTMaxEXT = 5333,
1998 OpReportIntersectionKHR = 5334,
1999 OpIgnoreIntersectionNV = 5335,
2000 OpTerminateRayNV = 5336,
2001 OpTraceNV = 5337,
2002 OpTraceMotionNV = 5338,
2003 OpTraceRayMotionNV = 5339,
2004 OpRayQueryGetIntersectionTriangleVertexPositionsKHR = 5340,
2005 OpTypeAccelerationStructureKHR = 5341,
2006 OpExecuteCallableNV = 5344,
2007 OpRayQueryGetIntersectionClusterIdNV = 5345,
2008 OpHitObjectGetClusterIdNV = 5346,
2009 OpHitObjectGetRayTMinEXT = 5347,
2010 OpHitObjectGetShaderBindingTableRecordIndexEXT = 5348,
2011 OpHitObjectGetShaderRecordBufferHandleEXT = 5349,
2012 OpHitObjectIsEmptyEXT = 5350,
2013 OpHitObjectIsHitEXT = 5351,
2014 OpHitObjectIsMissEXT = 5352,
2015 OpTypeCooperativeMatrixNV = 5358,
2016 OpCooperativeMatrixLoadNV = 5359,
2017 OpCooperativeMatrixStoreNV = 5360,
2018 OpCooperativeMatrixMulAddNV = 5361,
2019 OpCooperativeMatrixLengthNV = 5362,
2020 OpBeginInvocationInterlockEXT = 5364,
2021 OpEndInvocationInterlockEXT = 5365,
2022 OpCooperativeMatrixReduceNV = 5366,
2023 OpCooperativeMatrixLoadTensorNV = 5367,
2024 OpCooperativeMatrixStoreTensorNV = 5368,
2025 OpCooperativeMatrixPerElementOpNV = 5369,
2026 OpTypeTensorLayoutNV = 5370,
2027 OpTypeTensorViewNV = 5371,
2028 OpCreateTensorLayoutNV = 5372,
2029 OpTensorLayoutSetDimensionNV = 5373,
2030 OpTensorLayoutSetStrideNV = 5374,
2031 OpTensorLayoutSliceNV = 5375,
2032 OpTensorLayoutSetClampValueNV = 5376,
2033 OpCreateTensorViewNV = 5377,
2034 OpTensorViewSetDimensionNV = 5378,
2035 OpTensorViewSetStrideNV = 5379,
2036 OpDemoteToHelperInvocation = 5380,
2037 OpIsHelperInvocationEXT = 5381,
2038 OpTensorViewSetClipNV = 5382,
2039 OpTensorLayoutSetBlockSizeNV = 5384,
2040 OpCooperativeMatrixTransposeNV = 5390,
2041 OpConvertUToImageNV = 5391,
2042 OpConvertUToSamplerNV = 5392,
2043 OpConvertImageToUNV = 5393,
2044 OpConvertSamplerToUNV = 5394,
2045 OpConvertUToSampledImageNV = 5395,
2046 OpConvertSampledImageToUNV = 5396,
2047 OpSamplerImageAddressingModeNV = 5397,
2048 OpRawAccessChainNV = 5398,
2049 OpRayQueryGetIntersectionSpherePositionNV = 5427,
2050 OpRayQueryGetIntersectionSphereRadiusNV = 5428,
2051 OpRayQueryGetIntersectionLSSPositionsNV = 5429,
2052 OpRayQueryGetIntersectionLSSRadiiNV = 5430,
2053 OpRayQueryGetIntersectionLSSHitValueNV = 5431,
2054 OpHitObjectGetSpherePositionNV = 5432,
2055 OpHitObjectGetSphereRadiusNV = 5433,
2056 OpHitObjectGetLSSPositionsNV = 5434,
2057 OpHitObjectGetLSSRadiiNV = 5435,
2058 OpHitObjectIsSphereHitNV = 5436,
2059 OpHitObjectIsLSSHitNV = 5437,
2060 OpRayQueryIsSphereHitNV = 5438,
2061 OpRayQueryIsLSSHitNV = 5439,
2062 OpSubgroupShuffleINTEL = 5571,
2063 OpSubgroupShuffleDownINTEL = 5572,
2064 OpSubgroupShuffleUpINTEL = 5573,
2065 OpSubgroupShuffleXorINTEL = 5574,
2066 OpSubgroupBlockReadINTEL = 5575,
2067 OpSubgroupBlockWriteINTEL = 5576,
2068 OpSubgroupImageBlockReadINTEL = 5577,
2069 OpSubgroupImageBlockWriteINTEL = 5578,
2070 OpSubgroupImageMediaBlockReadINTEL = 5580,
2071 OpSubgroupImageMediaBlockWriteINTEL = 5581,
2072 OpUCountLeadingZerosINTEL = 5585,
2073 OpUCountTrailingZerosINTEL = 5586,
2074 OpAbsISubINTEL = 5587,
2075 OpAbsUSubINTEL = 5588,
2076 OpIAddSatINTEL = 5589,
2077 OpUAddSatINTEL = 5590,
2078 OpIAverageINTEL = 5591,
2079 OpUAverageINTEL = 5592,
2080 OpIAverageRoundedINTEL = 5593,
2081 OpUAverageRoundedINTEL = 5594,
2082 OpISubSatINTEL = 5595,
2083 OpUSubSatINTEL = 5596,
2084 OpIMul32x16INTEL = 5597,
2085 OpUMul32x16INTEL = 5598,
2086 OpAtomicFMinEXT = 5614,
2087 OpAtomicFMaxEXT = 5615,
2088 OpAssumeTrueKHR = 5630,
2089 OpExpectKHR = 5631,
2090 OpDecorateString = 5632,
2091 OpMemberDecorateString = 5633,
2092 OpVariableLengthArrayINTEL = 5818,
2093 OpSaveMemoryINTEL = 5819,
2094 OpRestoreMemoryINTEL = 5820,
2095 OpLoopControlINTEL = 5887,
2096 OpRayQueryGetRayTMinKHR = 6016,
2097 OpRayQueryGetRayFlagsKHR = 6017,
2098 OpRayQueryGetIntersectionTKHR = 6018,
2099 OpRayQueryGetIntersectionInstanceCustomIndexKHR = 6019,
2100 OpRayQueryGetIntersectionInstanceIdKHR = 6020,
2101 OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR = 6021,
2102 OpRayQueryGetIntersectionGeometryIndexKHR = 6022,
2103 OpRayQueryGetIntersectionPrimitiveIndexKHR = 6023,
2104 OpRayQueryGetIntersectionBarycentricsKHR = 6024,
2105 OpRayQueryGetIntersectionFrontFaceKHR = 6025,
2106 OpRayQueryGetIntersectionCandidateAABBOpaqueKHR = 6026,
2107 OpRayQueryGetIntersectionObjectRayDirectionKHR = 6027,
2108 OpRayQueryGetIntersectionObjectRayOriginKHR = 6028,
2109 OpRayQueryGetWorldRayDirectionKHR = 6029,
2110 OpRayQueryGetWorldRayOriginKHR = 6030,
2111 OpRayQueryGetIntersectionObjectToWorldKHR = 6031,
2112 OpRayQueryGetIntersectionWorldToObjectKHR = 6032,
2113 OpAtomicFAddEXT = 6035,
2114 OpTypeBufferSurfaceINTEL = 6086,
2115 OpTypeStructContinuedINTEL = 6090,
2116 OpConstantCompositeContinuedINTEL = 6091,
2117 OpSpecConstantCompositeContinuedINTEL = 6092,
2118 OpCompositeConstructContinuedINTEL = 6096,
2119 OpConvertFToBF16INTEL = 6116,
2120 OpConvertBF16ToFINTEL = 6117,
2121 OpControlBarrierArriveINTEL = 6142,
2122 OpControlBarrierWaitINTEL = 6143,
2123 OpArithmeticFenceEXT = 6145,
2124 OpSubgroupBlockPrefetchINTEL = 6221,
2125 OpSubgroup2DBlockLoadINTEL = 6231,
2126 OpSubgroup2DBlockLoadTransformINTEL = 6232,
2127 OpSubgroup2DBlockLoadTransposeINTEL = 6233,
2128 OpSubgroup2DBlockPrefetchINTEL = 6234,
2129 OpSubgroup2DBlockStoreINTEL = 6235,
2130 OpSubgroupMatrixMultiplyAccumulateINTEL = 6237,
2131 OpBitwiseFunctionINTEL = 6242,
2132 OpUntypedVariableLengthArrayINTEL = 6244,
2133 OpConditionalExtensionINTEL = 6248,
2134 OpConditionalEntryPointINTEL = 6249,
2135 OpConditionalCapabilityINTEL = 6250,
2136 OpSpecConstantTargetINTEL = 6251,
2137 OpSpecConstantArchitectureINTEL = 6252,
2138 OpSpecConstantCapabilitiesINTEL = 6253,
2139 OpConditionalCopyObjectINTEL = 6254,
2140 OpGroupIMulKHR = 6401,
2141 OpGroupFMulKHR = 6402,
2142 OpGroupBitwiseAndKHR = 6403,
2143 OpGroupBitwiseOrKHR = 6404,
2144 OpGroupBitwiseXorKHR = 6405,
2145 OpGroupLogicalAndKHR = 6406,
2146 OpGroupLogicalOrKHR = 6407,
2147 OpGroupLogicalXorKHR = 6408,
2148 OpRoundFToTF32INTEL = 6426,
2149 OpMaskedGatherINTEL = 6428,
2150 OpMaskedScatterINTEL = 6429,
2151 OpConvertHandleToImageINTEL = 6529,
2152 OpConvertHandleToSamplerINTEL = 6530,
2153 OpConvertHandleToSampledImageINTEL = 6531,
2154 OpFDot2MixAcc32VALVE = 6916,
2155 OpFDot2MixAcc16VALVE = 6917,
2156 OpFDot4MixAcc32VALVE = 6918,
2157
2158 pub fn Operands(comptime self: Opcode) type {
2159 return switch (self) {
2160 .OpNop => void,
2161 .OpUndef => struct { id_result_type: Id, id_result: Id },
2162 .OpSourceContinued => struct { continued_source: LiteralString },
2163 .OpSource => struct { source_language: SourceLanguage, version: LiteralInteger, file: ?Id = null, source: ?LiteralString = null },
2164 .OpSourceExtension => struct { extension: LiteralString },
2165 .OpName => struct { target: Id, name: LiteralString },
2166 .OpMemberName => struct { type: Id, member: LiteralInteger, name: LiteralString },
2167 .OpString => struct { id_result: Id, string: LiteralString },
2168 .OpLine => struct { file: Id, line: LiteralInteger, column: LiteralInteger },
2169 .OpExtension => struct { name: LiteralString },
2170 .OpExtInstImport => struct { id_result: Id, name: LiteralString },
2171 .OpExtInst => struct { id_result_type: Id, id_result: Id, set: Id, instruction: LiteralExtInstInteger, id_ref_4: []const Id = &.{} },
2172 .OpMemoryModel => struct { addressing_model: AddressingModel, memory_model: MemoryModel },
2173 .OpEntryPoint => struct { execution_model: ExecutionModel, entry_point: Id, name: LiteralString, interface: []const Id = &.{} },
2174 .OpExecutionMode => struct { entry_point: Id, mode: ExecutionMode.Extended },
2175 .OpCapability => struct { capability: Capability },
2176 .OpTypeVoid => struct { id_result: Id },
2177 .OpTypeBool => struct { id_result: Id },
2178 .OpTypeInt => struct { id_result: Id, width: LiteralInteger, signedness: LiteralInteger },
2179 .OpTypeFloat => struct { id_result: Id, width: LiteralInteger, floating_point_encoding: ?FPEncoding = null },
2180 .OpTypeVector => struct { id_result: Id, component_type: Id, component_count: LiteralInteger },
2181 .OpTypeMatrix => struct { id_result: Id, column_type: Id, column_count: LiteralInteger },
2182 .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 },
2183 .OpTypeSampler => struct { id_result: Id },
2184 .OpTypeSampledImage => struct { id_result: Id, image_type: Id },
2185 .OpTypeArray => struct { id_result: Id, element_type: Id, length: Id },
2186 .OpTypeRuntimeArray => struct { id_result: Id, element_type: Id },
2187 .OpTypeStruct => struct { id_result: Id, id_ref: []const Id = &.{} },
2188 .OpTypeOpaque => struct { id_result: Id, literal_string: LiteralString },
2189 .OpTypePointer => struct { id_result: Id, storage_class: StorageClass, type: Id },
2190 .OpTypeFunction => struct { id_result: Id, return_type: Id, id_ref_2: []const Id = &.{} },
2191 .OpTypeEvent => struct { id_result: Id },
2192 .OpTypeDeviceEvent => struct { id_result: Id },
2193 .OpTypeReserveId => struct { id_result: Id },
2194 .OpTypeQueue => struct { id_result: Id },
2195 .OpTypePipe => struct { id_result: Id, qualifier: AccessQualifier },
2196 .OpTypeForwardPointer => struct { pointer_type: Id, storage_class: StorageClass },
2197 .OpConstantTrue => struct { id_result_type: Id, id_result: Id },
2198 .OpConstantFalse => struct { id_result_type: Id, id_result: Id },
2199 .OpConstant => struct { id_result_type: Id, id_result: Id, value: LiteralContextDependentNumber },
2200 .OpConstantComposite => struct { id_result_type: Id, id_result: Id, constituents: []const Id = &.{} },
2201 .OpConstantSampler => struct { id_result_type: Id, id_result: Id, sampler_addressing_mode: SamplerAddressingMode, param: LiteralInteger, sampler_filter_mode: SamplerFilterMode },
2202 .OpConstantNull => struct { id_result_type: Id, id_result: Id },
2203 .OpSpecConstantTrue => struct { id_result_type: Id, id_result: Id },
2204 .OpSpecConstantFalse => struct { id_result_type: Id, id_result: Id },
2205 .OpSpecConstant => struct { id_result_type: Id, id_result: Id, value: LiteralContextDependentNumber },
2206 .OpSpecConstantComposite => struct { id_result_type: Id, id_result: Id, constituents: []const Id = &.{} },
2207 .OpSpecConstantOp => struct { id_result_type: Id, id_result: Id, opcode: LiteralSpecConstantOpInteger },
2208 .OpFunction => struct { id_result_type: Id, id_result: Id, function_control: FunctionControl, function_type: Id },
2209 .OpFunctionParameter => struct { id_result_type: Id, id_result: Id },
2210 .OpFunctionEnd => void,
2211 .OpFunctionCall => struct { id_result_type: Id, id_result: Id, function: Id, id_ref_3: []const Id = &.{} },
2212 .OpVariable => struct { id_result_type: Id, id_result: Id, storage_class: StorageClass, initializer: ?Id = null },
2213 .OpImageTexelPointer => struct { id_result_type: Id, id_result: Id, image: Id, coordinate: Id, sample: Id },
2214 .OpLoad => struct { id_result_type: Id, id_result: Id, pointer: Id, memory_access: ?MemoryAccess.Extended = null },
2215 .OpStore => struct { pointer: Id, object: Id, memory_access: ?MemoryAccess.Extended = null },
2216 .OpCopyMemory => struct { target: Id, source: Id, memory_access_2: ?MemoryAccess.Extended = null, memory_access_3: ?MemoryAccess.Extended = null },
2217 .OpCopyMemorySized => struct { target: Id, source: Id, size: Id, memory_access_3: ?MemoryAccess.Extended = null, memory_access_4: ?MemoryAccess.Extended = null },
2218 .OpAccessChain => struct { id_result_type: Id, id_result: Id, base: Id, indexes: []const Id = &.{} },
2219 .OpInBoundsAccessChain => struct { id_result_type: Id, id_result: Id, base: Id, indexes: []const Id = &.{} },
2220 .OpPtrAccessChain => struct { id_result_type: Id, id_result: Id, base: Id, element: Id, indexes: []const Id = &.{} },
2221 .OpArrayLength => struct { id_result_type: Id, id_result: Id, structure: Id, array_member: LiteralInteger },
2222 .OpGenericPtrMemSemantics => struct { id_result_type: Id, id_result: Id, pointer: Id },
2223 .OpInBoundsPtrAccessChain => struct { id_result_type: Id, id_result: Id, base: Id, element: Id, indexes: []const Id = &.{} },
2224 .OpDecorate => struct { target: Id, decoration: Decoration.Extended },
2225 .OpMemberDecorate => struct { structure_type: Id, member: LiteralInteger, decoration: Decoration.Extended },
2226 .OpDecorationGroup => struct { id_result: Id },
2227 .OpGroupDecorate => struct { decoration_group: Id, targets: []const Id = &.{} },
2228 .OpGroupMemberDecorate => struct { decoration_group: Id, targets: []const PairIdRefLiteralInteger = &.{} },
2229 .OpVectorExtractDynamic => struct { id_result_type: Id, id_result: Id, vector: Id, index: Id },
2230 .OpVectorInsertDynamic => struct { id_result_type: Id, id_result: Id, vector: Id, component: Id, index: Id },
2231 .OpVectorShuffle => struct { id_result_type: Id, id_result: Id, vector_1: Id, vector_2: Id, components: []const LiteralInteger = &.{} },
2232 .OpCompositeConstruct => struct { id_result_type: Id, id_result: Id, constituents: []const Id = &.{} },
2233 .OpCompositeExtract => struct { id_result_type: Id, id_result: Id, composite: Id, indexes: []const LiteralInteger = &.{} },
2234 .OpCompositeInsert => struct { id_result_type: Id, id_result: Id, object: Id, composite: Id, indexes: []const LiteralInteger = &.{} },
2235 .OpCopyObject => struct { id_result_type: Id, id_result: Id, operand: Id },
2236 .OpTranspose => struct { id_result_type: Id, id_result: Id, matrix: Id },
2237 .OpSampledImage => struct { id_result_type: Id, id_result: Id, image: Id, sampler: Id },
2238 .OpImageSampleImplicitLod => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, image_operands: ?ImageOperands.Extended = null },
2239 .OpImageSampleExplicitLod => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, image_operands: ImageOperands.Extended },
2240 .OpImageSampleDrefImplicitLod => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, d_ref: Id, image_operands: ?ImageOperands.Extended = null },
2241 .OpImageSampleDrefExplicitLod => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, d_ref: Id, image_operands: ImageOperands.Extended },
2242 .OpImageSampleProjImplicitLod => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, image_operands: ?ImageOperands.Extended = null },
2243 .OpImageSampleProjExplicitLod => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, image_operands: ImageOperands.Extended },
2244 .OpImageSampleProjDrefImplicitLod => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, d_ref: Id, image_operands: ?ImageOperands.Extended = null },
2245 .OpImageSampleProjDrefExplicitLod => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, d_ref: Id, image_operands: ImageOperands.Extended },
2246 .OpImageFetch => struct { id_result_type: Id, id_result: Id, image: Id, coordinate: Id, image_operands: ?ImageOperands.Extended = null },
2247 .OpImageGather => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, component: Id, image_operands: ?ImageOperands.Extended = null },
2248 .OpImageDrefGather => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, d_ref: Id, image_operands: ?ImageOperands.Extended = null },
2249 .OpImageRead => struct { id_result_type: Id, id_result: Id, image: Id, coordinate: Id, image_operands: ?ImageOperands.Extended = null },
2250 .OpImageWrite => struct { image: Id, coordinate: Id, texel: Id, image_operands: ?ImageOperands.Extended = null },
2251 .OpImage => struct { id_result_type: Id, id_result: Id, sampled_image: Id },
2252 .OpImageQueryFormat => struct { id_result_type: Id, id_result: Id, image: Id },
2253 .OpImageQueryOrder => struct { id_result_type: Id, id_result: Id, image: Id },
2254 .OpImageQuerySizeLod => struct { id_result_type: Id, id_result: Id, image: Id, level_of_detail: Id },
2255 .OpImageQuerySize => struct { id_result_type: Id, id_result: Id, image: Id },
2256 .OpImageQueryLod => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id },
2257 .OpImageQueryLevels => struct { id_result_type: Id, id_result: Id, image: Id },
2258 .OpImageQuerySamples => struct { id_result_type: Id, id_result: Id, image: Id },
2259 .OpConvertFToU => struct { id_result_type: Id, id_result: Id, float_value: Id },
2260 .OpConvertFToS => struct { id_result_type: Id, id_result: Id, float_value: Id },
2261 .OpConvertSToF => struct { id_result_type: Id, id_result: Id, signed_value: Id },
2262 .OpConvertUToF => struct { id_result_type: Id, id_result: Id, unsigned_value: Id },
2263 .OpUConvert => struct { id_result_type: Id, id_result: Id, unsigned_value: Id },
2264 .OpSConvert => struct { id_result_type: Id, id_result: Id, signed_value: Id },
2265 .OpFConvert => struct { id_result_type: Id, id_result: Id, float_value: Id },
2266 .OpQuantizeToF16 => struct { id_result_type: Id, id_result: Id, value: Id },
2267 .OpConvertPtrToU => struct { id_result_type: Id, id_result: Id, pointer: Id },
2268 .OpSatConvertSToU => struct { id_result_type: Id, id_result: Id, signed_value: Id },
2269 .OpSatConvertUToS => struct { id_result_type: Id, id_result: Id, unsigned_value: Id },
2270 .OpConvertUToPtr => struct { id_result_type: Id, id_result: Id, integer_value: Id },
2271 .OpPtrCastToGeneric => struct { id_result_type: Id, id_result: Id, pointer: Id },
2272 .OpGenericCastToPtr => struct { id_result_type: Id, id_result: Id, pointer: Id },
2273 .OpGenericCastToPtrExplicit => struct { id_result_type: Id, id_result: Id, pointer: Id, storage: StorageClass },
2274 .OpBitcast => struct { id_result_type: Id, id_result: Id, operand: Id },
2275 .OpSNegate => struct { id_result_type: Id, id_result: Id, operand: Id },
2276 .OpFNegate => struct { id_result_type: Id, id_result: Id, operand: Id },
2277 .OpIAdd => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2278 .OpFAdd => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2279 .OpISub => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2280 .OpFSub => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2281 .OpIMul => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2282 .OpFMul => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2283 .OpUDiv => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2284 .OpSDiv => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2285 .OpFDiv => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2286 .OpUMod => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2287 .OpSRem => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2288 .OpSMod => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2289 .OpFRem => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2290 .OpFMod => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2291 .OpVectorTimesScalar => struct { id_result_type: Id, id_result: Id, vector: Id, scalar: Id },
2292 .OpMatrixTimesScalar => struct { id_result_type: Id, id_result: Id, matrix: Id, scalar: Id },
2293 .OpVectorTimesMatrix => struct { id_result_type: Id, id_result: Id, vector: Id, matrix: Id },
2294 .OpMatrixTimesVector => struct { id_result_type: Id, id_result: Id, matrix: Id, vector: Id },
2295 .OpMatrixTimesMatrix => struct { id_result_type: Id, id_result: Id, left_matrix: Id, right_matrix: Id },
2296 .OpOuterProduct => struct { id_result_type: Id, id_result: Id, vector_1: Id, vector_2: Id },
2297 .OpDot => struct { id_result_type: Id, id_result: Id, vector_1: Id, vector_2: Id },
2298 .OpIAddCarry => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2299 .OpISubBorrow => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2300 .OpUMulExtended => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2301 .OpSMulExtended => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2302 .OpAny => struct { id_result_type: Id, id_result: Id, vector: Id },
2303 .OpAll => struct { id_result_type: Id, id_result: Id, vector: Id },
2304 .OpIsNan => struct { id_result_type: Id, id_result: Id, x: Id },
2305 .OpIsInf => struct { id_result_type: Id, id_result: Id, x: Id },
2306 .OpIsFinite => struct { id_result_type: Id, id_result: Id, x: Id },
2307 .OpIsNormal => struct { id_result_type: Id, id_result: Id, x: Id },
2308 .OpSignBitSet => struct { id_result_type: Id, id_result: Id, x: Id },
2309 .OpLessOrGreater => struct { id_result_type: Id, id_result: Id, x: Id, y: Id },
2310 .OpOrdered => struct { id_result_type: Id, id_result: Id, x: Id, y: Id },
2311 .OpUnordered => struct { id_result_type: Id, id_result: Id, x: Id, y: Id },
2312 .OpLogicalEqual => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2313 .OpLogicalNotEqual => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2314 .OpLogicalOr => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2315 .OpLogicalAnd => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2316 .OpLogicalNot => struct { id_result_type: Id, id_result: Id, operand: Id },
2317 .OpSelect => struct { id_result_type: Id, id_result: Id, condition: Id, object_1: Id, object_2: Id },
2318 .OpIEqual => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2319 .OpINotEqual => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2320 .OpUGreaterThan => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2321 .OpSGreaterThan => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2322 .OpUGreaterThanEqual => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2323 .OpSGreaterThanEqual => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2324 .OpULessThan => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2325 .OpSLessThan => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2326 .OpULessThanEqual => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2327 .OpSLessThanEqual => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2328 .OpFOrdEqual => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2329 .OpFUnordEqual => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2330 .OpFOrdNotEqual => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2331 .OpFUnordNotEqual => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2332 .OpFOrdLessThan => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2333 .OpFUnordLessThan => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2334 .OpFOrdGreaterThan => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2335 .OpFUnordGreaterThan => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2336 .OpFOrdLessThanEqual => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2337 .OpFUnordLessThanEqual => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2338 .OpFOrdGreaterThanEqual => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2339 .OpFUnordGreaterThanEqual => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2340 .OpShiftRightLogical => struct { id_result_type: Id, id_result: Id, base: Id, shift: Id },
2341 .OpShiftRightArithmetic => struct { id_result_type: Id, id_result: Id, base: Id, shift: Id },
2342 .OpShiftLeftLogical => struct { id_result_type: Id, id_result: Id, base: Id, shift: Id },
2343 .OpBitwiseOr => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2344 .OpBitwiseXor => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2345 .OpBitwiseAnd => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2346 .OpNot => struct { id_result_type: Id, id_result: Id, operand: Id },
2347 .OpBitFieldInsert => struct { id_result_type: Id, id_result: Id, base: Id, insert: Id, offset: Id, count: Id },
2348 .OpBitFieldSExtract => struct { id_result_type: Id, id_result: Id, base: Id, offset: Id, count: Id },
2349 .OpBitFieldUExtract => struct { id_result_type: Id, id_result: Id, base: Id, offset: Id, count: Id },
2350 .OpBitReverse => struct { id_result_type: Id, id_result: Id, base: Id },
2351 .OpBitCount => struct { id_result_type: Id, id_result: Id, base: Id },
2352 .OpDPdx => struct { id_result_type: Id, id_result: Id, p: Id },
2353 .OpDPdy => struct { id_result_type: Id, id_result: Id, p: Id },
2354 .OpFwidth => struct { id_result_type: Id, id_result: Id, p: Id },
2355 .OpDPdxFine => struct { id_result_type: Id, id_result: Id, p: Id },
2356 .OpDPdyFine => struct { id_result_type: Id, id_result: Id, p: Id },
2357 .OpFwidthFine => struct { id_result_type: Id, id_result: Id, p: Id },
2358 .OpDPdxCoarse => struct { id_result_type: Id, id_result: Id, p: Id },
2359 .OpDPdyCoarse => struct { id_result_type: Id, id_result: Id, p: Id },
2360 .OpFwidthCoarse => struct { id_result_type: Id, id_result: Id, p: Id },
2361 .OpEmitVertex => void,
2362 .OpEndPrimitive => void,
2363 .OpEmitStreamVertex => struct { stream: Id },
2364 .OpEndStreamPrimitive => struct { stream: Id },
2365 .OpControlBarrier => struct { execution: Id, memory: Id, semantics: Id },
2366 .OpMemoryBarrier => struct { memory: Id, semantics: Id },
2367 .OpAtomicLoad => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, semantics: Id },
2368 .OpAtomicStore => struct { pointer: Id, memory: Id, semantics: Id, value: Id },
2369 .OpAtomicExchange => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, semantics: Id, value: Id },
2370 .OpAtomicCompareExchange => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, equal: Id, unequal: Id, value: Id, comparator: Id },
2371 .OpAtomicCompareExchangeWeak => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, equal: Id, unequal: Id, value: Id, comparator: Id },
2372 .OpAtomicIIncrement => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, semantics: Id },
2373 .OpAtomicIDecrement => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, semantics: Id },
2374 .OpAtomicIAdd => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, semantics: Id, value: Id },
2375 .OpAtomicISub => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, semantics: Id, value: Id },
2376 .OpAtomicSMin => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, semantics: Id, value: Id },
2377 .OpAtomicUMin => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, semantics: Id, value: Id },
2378 .OpAtomicSMax => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, semantics: Id, value: Id },
2379 .OpAtomicUMax => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, semantics: Id, value: Id },
2380 .OpAtomicAnd => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, semantics: Id, value: Id },
2381 .OpAtomicOr => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, semantics: Id, value: Id },
2382 .OpAtomicXor => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, semantics: Id, value: Id },
2383 .OpPhi => struct { id_result_type: Id, id_result: Id, pair_id_ref_id_ref: []const PairIdRefIdRef = &.{} },
2384 .OpLoopMerge => struct { merge_block: Id, continue_target: Id, loop_control: LoopControl.Extended },
2385 .OpSelectionMerge => struct { merge_block: Id, selection_control: SelectionControl },
2386 .OpLabel => struct { id_result: Id },
2387 .OpBranch => struct { target_label: Id },
2388 .OpBranchConditional => struct { condition: Id, true_label: Id, false_label: Id, branch_weights: []const LiteralInteger = &.{} },
2389 .OpSwitch => struct { selector: Id, default: Id, target: []const PairLiteralIntegerIdRef = &.{} },
2390 .OpKill => void,
2391 .OpReturn => void,
2392 .OpReturnValue => struct { value: Id },
2393 .OpUnreachable => void,
2394 .OpLifetimeStart => struct { pointer: Id, size: LiteralInteger },
2395 .OpLifetimeStop => struct { pointer: Id, size: LiteralInteger },
2396 .OpGroupAsyncCopy => struct { id_result_type: Id, id_result: Id, execution: Id, destination: Id, source: Id, num_elements: Id, stride: Id, event: Id },
2397 .OpGroupWaitEvents => struct { execution: Id, num_events: Id, events_list: Id },
2398 .OpGroupAll => struct { id_result_type: Id, id_result: Id, execution: Id, predicate: Id },
2399 .OpGroupAny => struct { id_result_type: Id, id_result: Id, execution: Id, predicate: Id },
2400 .OpGroupBroadcast => struct { id_result_type: Id, id_result: Id, execution: Id, value: Id, local_id: Id },
2401 .OpGroupIAdd => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
2402 .OpGroupFAdd => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
2403 .OpGroupFMin => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
2404 .OpGroupUMin => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
2405 .OpGroupSMin => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
2406 .OpGroupFMax => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
2407 .OpGroupUMax => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
2408 .OpGroupSMax => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
2409 .OpReadPipe => struct { id_result_type: Id, id_result: Id, pipe: Id, pointer: Id, packet_size: Id, packet_alignment: Id },
2410 .OpWritePipe => struct { id_result_type: Id, id_result: Id, pipe: Id, pointer: Id, packet_size: Id, packet_alignment: Id },
2411 .OpReservedReadPipe => struct { id_result_type: Id, id_result: Id, pipe: Id, reserve_id: Id, index: Id, pointer: Id, packet_size: Id, packet_alignment: Id },
2412 .OpReservedWritePipe => struct { id_result_type: Id, id_result: Id, pipe: Id, reserve_id: Id, index: Id, pointer: Id, packet_size: Id, packet_alignment: Id },
2413 .OpReserveReadPipePackets => struct { id_result_type: Id, id_result: Id, pipe: Id, num_packets: Id, packet_size: Id, packet_alignment: Id },
2414 .OpReserveWritePipePackets => struct { id_result_type: Id, id_result: Id, pipe: Id, num_packets: Id, packet_size: Id, packet_alignment: Id },
2415 .OpCommitReadPipe => struct { pipe: Id, reserve_id: Id, packet_size: Id, packet_alignment: Id },
2416 .OpCommitWritePipe => struct { pipe: Id, reserve_id: Id, packet_size: Id, packet_alignment: Id },
2417 .OpIsValidReserveId => struct { id_result_type: Id, id_result: Id, reserve_id: Id },
2418 .OpGetNumPipePackets => struct { id_result_type: Id, id_result: Id, pipe: Id, packet_size: Id, packet_alignment: Id },
2419 .OpGetMaxPipePackets => struct { id_result_type: Id, id_result: Id, pipe: Id, packet_size: Id, packet_alignment: Id },
2420 .OpGroupReserveReadPipePackets => struct { id_result_type: Id, id_result: Id, execution: Id, pipe: Id, num_packets: Id, packet_size: Id, packet_alignment: Id },
2421 .OpGroupReserveWritePipePackets => struct { id_result_type: Id, id_result: Id, execution: Id, pipe: Id, num_packets: Id, packet_size: Id, packet_alignment: Id },
2422 .OpGroupCommitReadPipe => struct { execution: Id, pipe: Id, reserve_id: Id, packet_size: Id, packet_alignment: Id },
2423 .OpGroupCommitWritePipe => struct { execution: Id, pipe: Id, reserve_id: Id, packet_size: Id, packet_alignment: Id },
2424 .OpEnqueueMarker => struct { id_result_type: Id, id_result: Id, queue: Id, num_events: Id, wait_events: Id, ret_event: Id },
2425 .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 = &.{} },
2426 .OpGetKernelNDrangeSubGroupCount => struct { id_result_type: Id, id_result: Id, nd_range: Id, invoke: Id, param: Id, param_size: Id, param_align: Id },
2427 .OpGetKernelNDrangeMaxSubGroupSize => struct { id_result_type: Id, id_result: Id, nd_range: Id, invoke: Id, param: Id, param_size: Id, param_align: Id },
2428 .OpGetKernelWorkGroupSize => struct { id_result_type: Id, id_result: Id, invoke: Id, param: Id, param_size: Id, param_align: Id },
2429 .OpGetKernelPreferredWorkGroupSizeMultiple => struct { id_result_type: Id, id_result: Id, invoke: Id, param: Id, param_size: Id, param_align: Id },
2430 .OpRetainEvent => struct { event: Id },
2431 .OpReleaseEvent => struct { event: Id },
2432 .OpCreateUserEvent => struct { id_result_type: Id, id_result: Id },
2433 .OpIsValidEvent => struct { id_result_type: Id, id_result: Id, event: Id },
2434 .OpSetUserEventStatus => struct { event: Id, status: Id },
2435 .OpCaptureEventProfilingInfo => struct { event: Id, profiling_info: Id, value: Id },
2436 .OpGetDefaultQueue => struct { id_result_type: Id, id_result: Id },
2437 .OpBuildNDRange => struct { id_result_type: Id, id_result: Id, global_work_size: Id, local_work_size: Id, global_work_offset: Id },
2438 .OpImageSparseSampleImplicitLod => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, image_operands: ?ImageOperands.Extended = null },
2439 .OpImageSparseSampleExplicitLod => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, image_operands: ImageOperands.Extended },
2440 .OpImageSparseSampleDrefImplicitLod => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, d_ref: Id, image_operands: ?ImageOperands.Extended = null },
2441 .OpImageSparseSampleDrefExplicitLod => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, d_ref: Id, image_operands: ImageOperands.Extended },
2442 .OpImageSparseSampleProjImplicitLod => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, image_operands: ?ImageOperands.Extended = null },
2443 .OpImageSparseSampleProjExplicitLod => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, image_operands: ImageOperands.Extended },
2444 .OpImageSparseSampleProjDrefImplicitLod => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, d_ref: Id, image_operands: ?ImageOperands.Extended = null },
2445 .OpImageSparseSampleProjDrefExplicitLod => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, d_ref: Id, image_operands: ImageOperands.Extended },
2446 .OpImageSparseFetch => struct { id_result_type: Id, id_result: Id, image: Id, coordinate: Id, image_operands: ?ImageOperands.Extended = null },
2447 .OpImageSparseGather => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, component: Id, image_operands: ?ImageOperands.Extended = null },
2448 .OpImageSparseDrefGather => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, d_ref: Id, image_operands: ?ImageOperands.Extended = null },
2449 .OpImageSparseTexelsResident => struct { id_result_type: Id, id_result: Id, resident_code: Id },
2450 .OpNoLine => void,
2451 .OpAtomicFlagTestAndSet => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, semantics: Id },
2452 .OpAtomicFlagClear => struct { pointer: Id, memory: Id, semantics: Id },
2453 .OpImageSparseRead => struct { id_result_type: Id, id_result: Id, image: Id, coordinate: Id, image_operands: ?ImageOperands.Extended = null },
2454 .OpSizeOf => struct { id_result_type: Id, id_result: Id, pointer: Id },
2455 .OpTypePipeStorage => struct { id_result: Id },
2456 .OpConstantPipeStorage => struct { id_result_type: Id, id_result: Id, packet_size: LiteralInteger, packet_alignment: LiteralInteger, capacity: LiteralInteger },
2457 .OpCreatePipeFromPipeStorage => struct { id_result_type: Id, id_result: Id, pipe_storage: Id },
2458 .OpGetKernelLocalSizeForSubgroupCount => struct { id_result_type: Id, id_result: Id, subgroup_count: Id, invoke: Id, param: Id, param_size: Id, param_align: Id },
2459 .OpGetKernelMaxNumSubgroups => struct { id_result_type: Id, id_result: Id, invoke: Id, param: Id, param_size: Id, param_align: Id },
2460 .OpTypeNamedBarrier => struct { id_result: Id },
2461 .OpNamedBarrierInitialize => struct { id_result_type: Id, id_result: Id, subgroup_count: Id },
2462 .OpMemoryNamedBarrier => struct { named_barrier: Id, memory: Id, semantics: Id },
2463 .OpModuleProcessed => struct { process: LiteralString },
2464 .OpExecutionModeId => struct { entry_point: Id, mode: ExecutionMode.Extended },
2465 .OpDecorateId => struct { target: Id, decoration: Decoration.Extended },
2466 .OpGroupNonUniformElect => struct { id_result_type: Id, id_result: Id, execution: Id },
2467 .OpGroupNonUniformAll => struct { id_result_type: Id, id_result: Id, execution: Id, predicate: Id },
2468 .OpGroupNonUniformAny => struct { id_result_type: Id, id_result: Id, execution: Id, predicate: Id },
2469 .OpGroupNonUniformAllEqual => struct { id_result_type: Id, id_result: Id, execution: Id, value: Id },
2470 .OpGroupNonUniformBroadcast => struct { id_result_type: Id, id_result: Id, execution: Id, value: Id, invocation_id: Id },
2471 .OpGroupNonUniformBroadcastFirst => struct { id_result_type: Id, id_result: Id, execution: Id, value: Id },
2472 .OpGroupNonUniformBallot => struct { id_result_type: Id, id_result: Id, execution: Id, predicate: Id },
2473 .OpGroupNonUniformInverseBallot => struct { id_result_type: Id, id_result: Id, execution: Id, value: Id },
2474 .OpGroupNonUniformBallotBitExtract => struct { id_result_type: Id, id_result: Id, execution: Id, value: Id, index: Id },
2475 .OpGroupNonUniformBallotBitCount => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, value: Id },
2476 .OpGroupNonUniformBallotFindLSB => struct { id_result_type: Id, id_result: Id, execution: Id, value: Id },
2477 .OpGroupNonUniformBallotFindMSB => struct { id_result_type: Id, id_result: Id, execution: Id, value: Id },
2478 .OpGroupNonUniformShuffle => struct { id_result_type: Id, id_result: Id, execution: Id, value: Id, invocation_id: Id },
2479 .OpGroupNonUniformShuffleXor => struct { id_result_type: Id, id_result: Id, execution: Id, value: Id, mask: Id },
2480 .OpGroupNonUniformShuffleUp => struct { id_result_type: Id, id_result: Id, execution: Id, value: Id, delta: Id },
2481 .OpGroupNonUniformShuffleDown => struct { id_result_type: Id, id_result: Id, execution: Id, value: Id, delta: Id },
2482 .OpGroupNonUniformIAdd => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, value: Id, cluster_size: ?Id = null },
2483 .OpGroupNonUniformFAdd => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, value: Id, cluster_size: ?Id = null },
2484 .OpGroupNonUniformIMul => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, value: Id, cluster_size: ?Id = null },
2485 .OpGroupNonUniformFMul => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, value: Id, cluster_size: ?Id = null },
2486 .OpGroupNonUniformSMin => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, value: Id, cluster_size: ?Id = null },
2487 .OpGroupNonUniformUMin => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, value: Id, cluster_size: ?Id = null },
2488 .OpGroupNonUniformFMin => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, value: Id, cluster_size: ?Id = null },
2489 .OpGroupNonUniformSMax => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, value: Id, cluster_size: ?Id = null },
2490 .OpGroupNonUniformUMax => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, value: Id, cluster_size: ?Id = null },
2491 .OpGroupNonUniformFMax => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, value: Id, cluster_size: ?Id = null },
2492 .OpGroupNonUniformBitwiseAnd => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, value: Id, cluster_size: ?Id = null },
2493 .OpGroupNonUniformBitwiseOr => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, value: Id, cluster_size: ?Id = null },
2494 .OpGroupNonUniformBitwiseXor => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, value: Id, cluster_size: ?Id = null },
2495 .OpGroupNonUniformLogicalAnd => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, value: Id, cluster_size: ?Id = null },
2496 .OpGroupNonUniformLogicalOr => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, value: Id, cluster_size: ?Id = null },
2497 .OpGroupNonUniformLogicalXor => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, value: Id, cluster_size: ?Id = null },
2498 .OpGroupNonUniformQuadBroadcast => struct { id_result_type: Id, id_result: Id, execution: Id, value: Id, index: Id },
2499 .OpGroupNonUniformQuadSwap => struct { id_result_type: Id, id_result: Id, execution: Id, value: Id, direction: Id },
2500 .OpCopyLogical => struct { id_result_type: Id, id_result: Id, operand: Id },
2501 .OpPtrEqual => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2502 .OpPtrNotEqual => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2503 .OpPtrDiff => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2504 .OpColorAttachmentReadEXT => struct { id_result_type: Id, id_result: Id, attachment: Id, sample: ?Id = null },
2505 .OpDepthAttachmentReadEXT => struct { id_result_type: Id, id_result: Id, sample: ?Id = null },
2506 .OpStencilAttachmentReadEXT => struct { id_result_type: Id, id_result: Id, sample: ?Id = null },
2507 .OpTypeTensorARM => struct { id_result: Id, element_type: Id, rank: ?Id = null, shape: ?Id = null },
2508 .OpTensorReadARM => struct { id_result_type: Id, id_result: Id, tensor: Id, coordinates: Id, tensor_operands: ?TensorOperands.Extended = null },
2509 .OpTensorWriteARM => struct { tensor: Id, coordinates: Id, object: Id, tensor_operands: ?TensorOperands.Extended = null },
2510 .OpTensorQuerySizeARM => struct { id_result_type: Id, id_result: Id, tensor: Id, dimension: Id },
2511 .OpGraphConstantARM => struct { id_result_type: Id, id_result: Id, graph_constant_id: LiteralInteger },
2512 .OpGraphEntryPointARM => struct { graph: Id, name: LiteralString, interface: []const Id = &.{} },
2513 .OpGraphARM => struct { id_result_type: Id, id_result: Id },
2514 .OpGraphInputARM => struct { id_result_type: Id, id_result: Id, input_index: Id, element_index: []const Id = &.{} },
2515 .OpGraphSetOutputARM => struct { value: Id, output_index: Id, element_index: []const Id = &.{} },
2516 .OpGraphEndARM => void,
2517 .OpTypeGraphARM => struct { id_result: Id, num_inputs: LiteralInteger, in_out_types: []const Id = &.{} },
2518 .OpTerminateInvocation => void,
2519 .OpTypeUntypedPointerKHR => struct { id_result: Id, storage_class: StorageClass },
2520 .OpUntypedVariableKHR => struct { id_result_type: Id, id_result: Id, storage_class: StorageClass, data_type: ?Id = null, initializer: ?Id = null },
2521 .OpUntypedAccessChainKHR => struct { id_result_type: Id, id_result: Id, base_type: Id, base: Id, indexes: []const Id = &.{} },
2522 .OpUntypedInBoundsAccessChainKHR => struct { id_result_type: Id, id_result: Id, base_type: Id, base: Id, indexes: []const Id = &.{} },
2523 .OpSubgroupBallotKHR => struct { id_result_type: Id, id_result: Id, predicate: Id },
2524 .OpSubgroupFirstInvocationKHR => struct { id_result_type: Id, id_result: Id, value: Id },
2525 .OpUntypedPtrAccessChainKHR => struct { id_result_type: Id, id_result: Id, base_type: Id, base: Id, element: Id, indexes: []const Id = &.{} },
2526 .OpUntypedInBoundsPtrAccessChainKHR => struct { id_result_type: Id, id_result: Id, base_type: Id, base: Id, element: Id, indexes: []const Id = &.{} },
2527 .OpUntypedArrayLengthKHR => struct { id_result_type: Id, id_result: Id, structure: Id, pointer: Id, array_member: LiteralInteger },
2528 .OpUntypedPrefetchKHR => struct { pointer_type: Id, num_bytes: Id, rw: ?Id = null, locality: ?Id = null, cache_type: ?Id = null },
2529 .OpFmaKHR => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id, operand_3: Id },
2530 .OpSubgroupAllKHR => struct { id_result_type: Id, id_result: Id, predicate: Id },
2531 .OpSubgroupAnyKHR => struct { id_result_type: Id, id_result: Id, predicate: Id },
2532 .OpSubgroupAllEqualKHR => struct { id_result_type: Id, id_result: Id, predicate: Id },
2533 .OpGroupNonUniformRotateKHR => struct { id_result_type: Id, id_result: Id, execution: Id, value: Id, delta: Id, cluster_size: ?Id = null },
2534 .OpSubgroupReadInvocationKHR => struct { id_result_type: Id, id_result: Id, value: Id, index: Id },
2535 .OpExtInstWithForwardRefsKHR => struct { id_result_type: Id, id_result: Id, set: Id, instruction: LiteralExtInstInteger, id_ref_4: []const Id = &.{} },
2536 .OpUntypedGroupAsyncCopyKHR => struct { id_result_type: Id, id_result: Id, execution: Id, destination: Id, source: Id, element_num_bytes: Id, num_elements: Id, stride: Id, event: Id, destination_memory_operands: ?MemoryAccess.Extended = null, source_memory_operands: ?MemoryAccess.Extended = null },
2537 .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 },
2538 .OpExecuteCallableKHR => struct { sbt_index: Id, callable_data: Id },
2539 .OpConvertUToAccelerationStructureKHR => struct { id_result_type: Id, id_result: Id, accel: Id },
2540 .OpIgnoreIntersectionKHR => void,
2541 .OpTerminateRayKHR => void,
2542 .OpSDot => struct { id_result_type: Id, id_result: Id, vector_1: Id, vector_2: Id, packed_vector_format: ?PackedVectorFormat = null },
2543 .OpUDot => struct { id_result_type: Id, id_result: Id, vector_1: Id, vector_2: Id, packed_vector_format: ?PackedVectorFormat = null },
2544 .OpSUDot => struct { id_result_type: Id, id_result: Id, vector_1: Id, vector_2: Id, packed_vector_format: ?PackedVectorFormat = null },
2545 .OpSDotAccSat => struct { id_result_type: Id, id_result: Id, vector_1: Id, vector_2: Id, accumulator: Id, packed_vector_format: ?PackedVectorFormat = null },
2546 .OpUDotAccSat => struct { id_result_type: Id, id_result: Id, vector_1: Id, vector_2: Id, accumulator: Id, packed_vector_format: ?PackedVectorFormat = null },
2547 .OpSUDotAccSat => struct { id_result_type: Id, id_result: Id, vector_1: Id, vector_2: Id, accumulator: Id, packed_vector_format: ?PackedVectorFormat = null },
2548 .OpTypeCooperativeMatrixKHR => struct { id_result: Id, component_type: Id, scope: Id, rows: Id, columns: Id, use: Id },
2549 .OpCooperativeMatrixLoadKHR => struct { id_result_type: Id, id_result: Id, pointer: Id, memory_layout: Id, stride: ?Id = null, memory_operand: ?MemoryAccess.Extended = null },
2550 .OpCooperativeMatrixStoreKHR => struct { pointer: Id, object: Id, memory_layout: Id, stride: ?Id = null, memory_operand: ?MemoryAccess.Extended = null },
2551 .OpCooperativeMatrixMulAddKHR => struct { id_result_type: Id, id_result: Id, a: Id, b: Id, c: Id, cooperative_matrix_operands: ?CooperativeMatrixOperands = null },
2552 .OpCooperativeMatrixLengthKHR => struct { id_result_type: Id, id_result: Id, type: Id },
2553 .OpConstantCompositeReplicateEXT => struct { id_result_type: Id, id_result: Id, value: Id },
2554 .OpSpecConstantCompositeReplicateEXT => struct { id_result_type: Id, id_result: Id, value: Id },
2555 .OpCompositeConstructReplicateEXT => struct { id_result_type: Id, id_result: Id, value: Id },
2556 .OpTypeRayQueryKHR => struct { id_result: Id },
2557 .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 },
2558 .OpRayQueryTerminateKHR => struct { ray_query: Id },
2559 .OpRayQueryGenerateIntersectionKHR => struct { ray_query: Id, hit_t: Id },
2560 .OpRayQueryConfirmIntersectionKHR => struct { ray_query: Id },
2561 .OpRayQueryProceedKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id },
2562 .OpRayQueryGetIntersectionTypeKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id },
2563 .OpImageSampleWeightedQCOM => struct { id_result_type: Id, id_result: Id, texture: Id, coordinates: Id, weights: Id },
2564 .OpImageBoxFilterQCOM => struct { id_result_type: Id, id_result: Id, texture: Id, coordinates: Id, box_size: Id },
2565 .OpImageBlockMatchSSDQCOM => struct { id_result_type: Id, id_result: Id, target: Id, target_coordinates: Id, reference: Id, reference_coordinates: Id, block_size: Id },
2566 .OpImageBlockMatchSADQCOM => struct { id_result_type: Id, id_result: Id, target: Id, target_coordinates: Id, reference: Id, reference_coordinates: Id, block_size: Id },
2567 .OpBitCastArrayQCOM => struct { id_result_type: Id, id_result: Id, source_array: Id },
2568 .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 },
2569 .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 },
2570 .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 },
2571 .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 },
2572 .OpCompositeConstructCoopMatQCOM => struct { id_result_type: Id, id_result: Id, source_array: Id },
2573 .OpCompositeExtractCoopMatQCOM => struct { id_result_type: Id, id_result: Id, source_cooperative_matrix: Id },
2574 .OpExtractSubArrayQCOM => struct { id_result_type: Id, id_result: Id, source_array: Id, index: Id },
2575 .OpGroupIAddNonUniformAMD => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
2576 .OpGroupFAddNonUniformAMD => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
2577 .OpGroupFMinNonUniformAMD => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
2578 .OpGroupUMinNonUniformAMD => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
2579 .OpGroupSMinNonUniformAMD => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
2580 .OpGroupFMaxNonUniformAMD => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
2581 .OpGroupUMaxNonUniformAMD => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
2582 .OpGroupSMaxNonUniformAMD => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
2583 .OpFragmentMaskFetchAMD => struct { id_result_type: Id, id_result: Id, image: Id, coordinate: Id },
2584 .OpFragmentFetchAMD => struct { id_result_type: Id, id_result: Id, image: Id, coordinate: Id, fragment_index: Id },
2585 .OpReadClockKHR => struct { id_result_type: Id, id_result: Id, scope: Id },
2586 .OpAllocateNodePayloadsAMDX => struct { id_result_type: Id, id_result: Id, visibility: Id, payload_count: Id, node_index: Id },
2587 .OpEnqueueNodePayloadsAMDX => struct { payload_array: Id },
2588 .OpTypeNodePayloadArrayAMDX => struct { id_result: Id, payload_type: Id },
2589 .OpFinishWritingNodePayloadAMDX => struct { id_result_type: Id, id_result: Id, payload: Id },
2590 .OpNodePayloadArrayLengthAMDX => struct { id_result_type: Id, id_result: Id, payload_array: Id },
2591 .OpIsNodePayloadValidAMDX => struct { id_result_type: Id, id_result: Id, payload_type: Id, node_index: Id },
2592 .OpConstantStringAMDX => struct { id_result: Id, literal_string: LiteralString },
2593 .OpSpecConstantStringAMDX => struct { id_result: Id, literal_string: LiteralString },
2594 .OpGroupNonUniformQuadAllKHR => struct { id_result_type: Id, id_result: Id, predicate: Id },
2595 .OpGroupNonUniformQuadAnyKHR => struct { id_result_type: Id, id_result: Id, predicate: Id },
2596 .OpTypeBufferEXT => struct { id_result: Id, storage_class: StorageClass },
2597 .OpBufferPointerEXT => struct { id_result_type: Id, id_result: Id, buffer: Id },
2598 .OpAbortKHR => struct { message_type: Id, message: Id },
2599 .OpUntypedImageTexelPointerEXT => struct { id_result_type: Id, id_result: Id, image_type: Id, image: Id, coordinate: Id, sample: Id },
2600 .OpMemberDecorateIdEXT => struct { structure_type: Id, member: LiteralInteger, decoration: Decoration.Extended },
2601 .OpConstantSizeOfEXT => struct { id_result_type: Id, id_result: Id, type: Id },
2602 .OpConstantDataKHR => struct { id_result_type: Id, id_result: Id, data: []const LiteralInteger = &.{} },
2603 .OpSpecConstantDataKHR => struct { id_result_type: Id, id_result: Id, data: []const LiteralInteger = &.{} },
2604 .OpPoisonKHR => struct { id_result_type: Id, id_result: Id },
2605 .OpFreezeKHR => struct { id_result_type: Id, id_result: Id, value: Id },
2606 .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 },
2607 .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 },
2608 .OpHitObjectRecordMissMotionNV => struct { hit_object: Id, sbt_index: Id, origin: Id, t_min: Id, direction: Id, t_max: Id, current_time: Id },
2609 .OpHitObjectGetWorldToObjectNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2610 .OpHitObjectGetObjectToWorldNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2611 .OpHitObjectGetObjectRayDirectionNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2612 .OpHitObjectGetObjectRayOriginNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2613 .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 },
2614 .OpHitObjectGetShaderRecordBufferHandleNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2615 .OpHitObjectGetShaderBindingTableRecordIndexNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2616 .OpHitObjectRecordEmptyNV => struct { hit_object: Id },
2617 .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 },
2618 .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 },
2619 .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 },
2620 .OpHitObjectRecordMissNV => struct { hit_object: Id, sbt_index: Id, origin: Id, t_min: Id, direction: Id, t_max: Id },
2621 .OpHitObjectExecuteShaderNV => struct { hit_object: Id, payload: Id },
2622 .OpHitObjectGetCurrentTimeNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2623 .OpHitObjectGetAttributesNV => struct { hit_object: Id, hit_object_attribute: Id },
2624 .OpHitObjectGetHitKindNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2625 .OpHitObjectGetPrimitiveIndexNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2626 .OpHitObjectGetGeometryIndexNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2627 .OpHitObjectGetInstanceIdNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2628 .OpHitObjectGetInstanceCustomIndexNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2629 .OpHitObjectGetWorldRayDirectionNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2630 .OpHitObjectGetWorldRayOriginNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2631 .OpHitObjectGetRayTMaxNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2632 .OpHitObjectGetRayTMinNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2633 .OpHitObjectIsEmptyNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2634 .OpHitObjectIsHitNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2635 .OpHitObjectIsMissNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2636 .OpReorderThreadWithHitObjectNV => struct { hit_object: Id, hint: ?Id = null, bits: ?Id = null },
2637 .OpReorderThreadWithHintNV => struct { hint: Id, bits: Id },
2638 .OpTypeHitObjectNV => struct { id_result: Id },
2639 .OpImageSampleFootprintNV => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, granularity: Id, coarse: Id, image_operands: ?ImageOperands.Extended = null },
2640 .OpTypeVectorIdEXT => struct { id_result: Id, component_type: Id, component_count: Id },
2641 .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 },
2642 .OpCooperativeVectorOuterProductAccumulateNV => struct { pointer: Id, offset: Id, a: Id, b: Id, memory_layout: Id, matrix_interpretation: Id, matrix_stride: ?Id = null },
2643 .OpCooperativeVectorReduceSumAccumulateNV => struct { pointer: Id, offset: Id, v: Id },
2644 .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 },
2645 .OpCooperativeMatrixConvertNV => struct { id_result_type: Id, id_result: Id, matrix: Id },
2646 .OpEmitMeshTasksEXT => struct { group_count_x: Id, group_count_y: Id, group_count_z: Id, payload: ?Id = null },
2647 .OpSetMeshOutputsEXT => struct { vertex_count: Id, primitive_count: Id },
2648 .OpGroupNonUniformPartitionEXT => struct { id_result_type: Id, id_result: Id, value: Id },
2649 .OpWritePackedPrimitiveIndices4x8NV => struct { index_offset: Id, packed_indices: Id },
2650 .OpFetchMicroTriangleVertexPositionNV => struct { id_result_type: Id, id_result: Id, accel: Id, instance_id: Id, geometry_index: Id, primitive_index: Id, barycentric: Id },
2651 .OpFetchMicroTriangleVertexBarycentricNV => struct { id_result_type: Id, id_result: Id, accel: Id, instance_id: Id, geometry_index: Id, primitive_index: Id, barycentric: Id },
2652 .OpCooperativeVectorLoadNV => struct { id_result_type: Id, id_result: Id, pointer: Id, offset: Id, memory_access: ?MemoryAccess.Extended = null },
2653 .OpCooperativeVectorStoreNV => struct { pointer: Id, offset: Id, object: Id, memory_access: ?MemoryAccess.Extended = null },
2654 .OpHitObjectRecordFromQueryEXT => struct { hit_object: Id, ray_query: Id, sbt_record_index: Id, hit_object_attributes: Id },
2655 .OpHitObjectRecordMissEXT => struct { hit_object: Id, ray_flags: Id, miss_index: Id, ray_origin: Id, ray_tmin: Id, ray_direction: Id, ray_tmax: Id },
2656 .OpHitObjectRecordMissMotionEXT => struct { hit_object: Id, ray_flags: Id, miss_index: Id, ray_origin: Id, ray_tmin: Id, ray_direction: Id, ray_tmax: Id, current_time: Id },
2657 .OpHitObjectGetIntersectionTriangleVertexPositionsEXT => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2658 .OpHitObjectGetRayFlagsEXT => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2659 .OpHitObjectSetShaderBindingTableRecordIndexEXT => struct { hit_object: Id, sbt_record_index: Id },
2660 .OpHitObjectReorderExecuteShaderEXT => struct { hit_object: Id, payload: Id, hint: ?Id = null, bits: ?Id = null },
2661 .OpHitObjectTraceReorderExecuteEXT => struct { hit_object: Id, acceleration_structure: 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, hint: ?Id = null, bits: ?Id = null },
2662 .OpHitObjectTraceMotionReorderExecuteEXT => struct { hit_object: Id, acceleration_structure: 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, current_time: Id, payload: Id, hint: ?Id = null, bits: ?Id = null },
2663 .OpTypeHitObjectEXT => struct { id_result: Id },
2664 .OpReorderThreadWithHintEXT => struct { hint: Id, bits: Id },
2665 .OpReorderThreadWithHitObjectEXT => struct { hit_object: Id, hint: ?Id = null, bits: ?Id = null },
2666 .OpHitObjectTraceRayEXT => struct { hit_object: Id, acceleration_structure: 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 },
2667 .OpHitObjectTraceRayMotionEXT => struct { hit_object: Id, acceleration_structure: 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, current_time: Id, payload: Id },
2668 .OpHitObjectRecordEmptyEXT => struct { hit_object: Id },
2669 .OpHitObjectExecuteShaderEXT => struct { hit_object: Id, payload: Id },
2670 .OpHitObjectGetCurrentTimeEXT => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2671 .OpHitObjectGetAttributesEXT => struct { hit_object: Id, hit_object_attribute: Id },
2672 .OpHitObjectGetHitKindEXT => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2673 .OpHitObjectGetPrimitiveIndexEXT => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2674 .OpHitObjectGetGeometryIndexEXT => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2675 .OpHitObjectGetInstanceIdEXT => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2676 .OpHitObjectGetInstanceCustomIndexEXT => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2677 .OpHitObjectGetObjectRayOriginEXT => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2678 .OpHitObjectGetObjectRayDirectionEXT => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2679 .OpHitObjectGetWorldRayDirectionEXT => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2680 .OpHitObjectGetWorldRayOriginEXT => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2681 .OpHitObjectGetObjectToWorldEXT => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2682 .OpHitObjectGetWorldToObjectEXT => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2683 .OpHitObjectGetRayTMaxEXT => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2684 .OpReportIntersectionKHR => struct { id_result_type: Id, id_result: Id, hit: Id, hit_kind: Id },
2685 .OpIgnoreIntersectionNV => void,
2686 .OpTerminateRayNV => void,
2687 .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 },
2688 .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 },
2689 .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 },
2690 .OpRayQueryGetIntersectionTriangleVertexPositionsKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id },
2691 .OpTypeAccelerationStructureKHR => struct { id_result: Id },
2692 .OpExecuteCallableNV => struct { sbt_index: Id, callable_data_id: Id },
2693 .OpRayQueryGetIntersectionClusterIdNV => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id },
2694 .OpHitObjectGetClusterIdNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2695 .OpHitObjectGetRayTMinEXT => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2696 .OpHitObjectGetShaderBindingTableRecordIndexEXT => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2697 .OpHitObjectGetShaderRecordBufferHandleEXT => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2698 .OpHitObjectIsEmptyEXT => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2699 .OpHitObjectIsHitEXT => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2700 .OpHitObjectIsMissEXT => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2701 .OpTypeCooperativeMatrixNV => struct { id_result: Id, component_type: Id, execution: Id, rows: Id, columns: Id },
2702 .OpCooperativeMatrixLoadNV => struct { id_result_type: Id, id_result: Id, pointer: Id, stride: Id, column_major: Id, memory_access: ?MemoryAccess.Extended = null },
2703 .OpCooperativeMatrixStoreNV => struct { pointer: Id, object: Id, stride: Id, column_major: Id, memory_access: ?MemoryAccess.Extended = null },
2704 .OpCooperativeMatrixMulAddNV => struct { id_result_type: Id, id_result: Id, a: Id, b: Id, c: Id },
2705 .OpCooperativeMatrixLengthNV => struct { id_result_type: Id, id_result: Id, type: Id },
2706 .OpBeginInvocationInterlockEXT => void,
2707 .OpEndInvocationInterlockEXT => void,
2708 .OpCooperativeMatrixReduceNV => struct { id_result_type: Id, id_result: Id, matrix: Id, reduce: CooperativeMatrixReduce, combine_func: Id },
2709 .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 },
2710 .OpCooperativeMatrixStoreTensorNV => struct { pointer: Id, object: Id, tensor_layout: Id, memory_operand: MemoryAccess.Extended, tensor_addressing_operands: TensorAddressingOperands.Extended },
2711 .OpCooperativeMatrixPerElementOpNV => struct { id_result_type: Id, id_result: Id, matrix: Id, func: Id, operands: []const Id = &.{} },
2712 .OpTypeTensorLayoutNV => struct { id_result: Id, dim: Id, clamp_mode: Id },
2713 .OpTypeTensorViewNV => struct { id_result: Id, dim: Id, has_dimensions: Id, p: []const Id = &.{} },
2714 .OpCreateTensorLayoutNV => struct { id_result_type: Id, id_result: Id },
2715 .OpTensorLayoutSetDimensionNV => struct { id_result_type: Id, id_result: Id, tensor_layout: Id, dim: []const Id = &.{} },
2716 .OpTensorLayoutSetStrideNV => struct { id_result_type: Id, id_result: Id, tensor_layout: Id, stride: []const Id = &.{} },
2717 .OpTensorLayoutSliceNV => struct { id_result_type: Id, id_result: Id, tensor_layout: Id, operands: []const Id = &.{} },
2718 .OpTensorLayoutSetClampValueNV => struct { id_result_type: Id, id_result: Id, tensor_layout: Id, value: Id },
2719 .OpCreateTensorViewNV => struct { id_result_type: Id, id_result: Id },
2720 .OpTensorViewSetDimensionNV => struct { id_result_type: Id, id_result: Id, tensor_view: Id, dim: []const Id = &.{} },
2721 .OpTensorViewSetStrideNV => struct { id_result_type: Id, id_result: Id, tensor_view: Id, stride: []const Id = &.{} },
2722 .OpDemoteToHelperInvocation => void,
2723 .OpIsHelperInvocationEXT => struct { id_result_type: Id, id_result: Id },
2724 .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 },
2725 .OpTensorLayoutSetBlockSizeNV => struct { id_result_type: Id, id_result: Id, tensor_layout: Id, block_size: []const Id = &.{} },
2726 .OpCooperativeMatrixTransposeNV => struct { id_result_type: Id, id_result: Id, matrix: Id },
2727 .OpConvertUToImageNV => struct { id_result_type: Id, id_result: Id, operand: Id },
2728 .OpConvertUToSamplerNV => struct { id_result_type: Id, id_result: Id, operand: Id },
2729 .OpConvertImageToUNV => struct { id_result_type: Id, id_result: Id, operand: Id },
2730 .OpConvertSamplerToUNV => struct { id_result_type: Id, id_result: Id, operand: Id },
2731 .OpConvertUToSampledImageNV => struct { id_result_type: Id, id_result: Id, operand: Id },
2732 .OpConvertSampledImageToUNV => struct { id_result_type: Id, id_result: Id, operand: Id },
2733 .OpSamplerImageAddressingModeNV => struct { bit_width: LiteralInteger },
2734 .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 },
2735 .OpRayQueryGetIntersectionSpherePositionNV => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id },
2736 .OpRayQueryGetIntersectionSphereRadiusNV => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id },
2737 .OpRayQueryGetIntersectionLSSPositionsNV => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id },
2738 .OpRayQueryGetIntersectionLSSRadiiNV => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id },
2739 .OpRayQueryGetIntersectionLSSHitValueNV => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id },
2740 .OpHitObjectGetSpherePositionNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2741 .OpHitObjectGetSphereRadiusNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2742 .OpHitObjectGetLSSPositionsNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2743 .OpHitObjectGetLSSRadiiNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2744 .OpHitObjectIsSphereHitNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2745 .OpHitObjectIsLSSHitNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2746 .OpRayQueryIsSphereHitNV => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id },
2747 .OpRayQueryIsLSSHitNV => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id },
2748 .OpSubgroupShuffleINTEL => struct { id_result_type: Id, id_result: Id, data: Id, invocation_id: Id },
2749 .OpSubgroupShuffleDownINTEL => struct { id_result_type: Id, id_result: Id, current: Id, next: Id, delta: Id },
2750 .OpSubgroupShuffleUpINTEL => struct { id_result_type: Id, id_result: Id, previous: Id, current: Id, delta: Id },
2751 .OpSubgroupShuffleXorINTEL => struct { id_result_type: Id, id_result: Id, data: Id, value: Id },
2752 .OpSubgroupBlockReadINTEL => struct { id_result_type: Id, id_result: Id, ptr: Id },
2753 .OpSubgroupBlockWriteINTEL => struct { ptr: Id, data: Id },
2754 .OpSubgroupImageBlockReadINTEL => struct { id_result_type: Id, id_result: Id, image: Id, coordinate: Id },
2755 .OpSubgroupImageBlockWriteINTEL => struct { image: Id, coordinate: Id, data: Id },
2756 .OpSubgroupImageMediaBlockReadINTEL => struct { id_result_type: Id, id_result: Id, image: Id, coordinate: Id, width: Id, height: Id },
2757 .OpSubgroupImageMediaBlockWriteINTEL => struct { image: Id, coordinate: Id, width: Id, height: Id, data: Id },
2758 .OpUCountLeadingZerosINTEL => struct { id_result_type: Id, id_result: Id, operand: Id },
2759 .OpUCountTrailingZerosINTEL => struct { id_result_type: Id, id_result: Id, operand: Id },
2760 .OpAbsISubINTEL => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2761 .OpAbsUSubINTEL => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2762 .OpIAddSatINTEL => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2763 .OpUAddSatINTEL => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2764 .OpIAverageINTEL => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2765 .OpUAverageINTEL => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2766 .OpIAverageRoundedINTEL => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2767 .OpUAverageRoundedINTEL => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2768 .OpISubSatINTEL => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2769 .OpUSubSatINTEL => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2770 .OpIMul32x16INTEL => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2771 .OpUMul32x16INTEL => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2772 .OpAtomicFMinEXT => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, semantics: Id, value: Id },
2773 .OpAtomicFMaxEXT => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, semantics: Id, value: Id },
2774 .OpAssumeTrueKHR => struct { condition: Id },
2775 .OpExpectKHR => struct { id_result_type: Id, id_result: Id, value: Id, expected_value: Id },
2776 .OpDecorateString => struct { target: Id, decoration: Decoration.Extended },
2777 .OpMemberDecorateString => struct { struct_type: Id, member: LiteralInteger, decoration: Decoration.Extended },
2778 .OpVariableLengthArrayINTEL => struct { id_result_type: Id, id_result: Id, length: Id },
2779 .OpSaveMemoryINTEL => struct { id_result_type: Id, id_result: Id },
2780 .OpRestoreMemoryINTEL => struct { ptr: Id },
2781 .OpLoopControlINTEL => struct { loop_control_parameters: []const LiteralInteger = &.{} },
2782 .OpRayQueryGetRayTMinKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id },
2783 .OpRayQueryGetRayFlagsKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id },
2784 .OpRayQueryGetIntersectionTKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id },
2785 .OpRayQueryGetIntersectionInstanceCustomIndexKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id },
2786 .OpRayQueryGetIntersectionInstanceIdKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id },
2787 .OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id },
2788 .OpRayQueryGetIntersectionGeometryIndexKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id },
2789 .OpRayQueryGetIntersectionPrimitiveIndexKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id },
2790 .OpRayQueryGetIntersectionBarycentricsKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id },
2791 .OpRayQueryGetIntersectionFrontFaceKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id },
2792 .OpRayQueryGetIntersectionCandidateAABBOpaqueKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id },
2793 .OpRayQueryGetIntersectionObjectRayDirectionKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id },
2794 .OpRayQueryGetIntersectionObjectRayOriginKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id },
2795 .OpRayQueryGetWorldRayDirectionKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id },
2796 .OpRayQueryGetWorldRayOriginKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id },
2797 .OpRayQueryGetIntersectionObjectToWorldKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id },
2798 .OpRayQueryGetIntersectionWorldToObjectKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id },
2799 .OpAtomicFAddEXT => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, semantics: Id, value: Id },
2800 .OpTypeBufferSurfaceINTEL => struct { id_result: Id, access_qualifier: AccessQualifier },
2801 .OpTypeStructContinuedINTEL => struct { id_ref: []const Id = &.{} },
2802 .OpConstantCompositeContinuedINTEL => struct { constituents: []const Id = &.{} },
2803 .OpSpecConstantCompositeContinuedINTEL => struct { constituents: []const Id = &.{} },
2804 .OpCompositeConstructContinuedINTEL => struct { id_result_type: Id, id_result: Id, constituents: []const Id = &.{} },
2805 .OpConvertFToBF16INTEL => struct { id_result_type: Id, id_result: Id, float_value: Id },
2806 .OpConvertBF16ToFINTEL => struct { id_result_type: Id, id_result: Id, b_float16_value: Id },
2807 .OpControlBarrierArriveINTEL => struct { execution: Id, memory: Id, semantics: Id },
2808 .OpControlBarrierWaitINTEL => struct { execution: Id, memory: Id, semantics: Id },
2809 .OpArithmeticFenceEXT => struct { id_result_type: Id, id_result: Id, target: Id },
2810 .OpSubgroupBlockPrefetchINTEL => struct { ptr: Id, num_bytes: Id, memory_access: ?MemoryAccess.Extended = null },
2811 .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 },
2812 .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 },
2813 .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 },
2814 .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 },
2815 .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 },
2816 .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 },
2817 .OpBitwiseFunctionINTEL => struct { id_result_type: Id, id_result: Id, a: Id, b: Id, c: Id, lut_index: Id },
2818 .OpUntypedVariableLengthArrayINTEL => struct { id_result_type: Id, id_result: Id, element_type: Id, length: Id },
2819 .OpConditionalExtensionINTEL => struct { condition: Id, name: LiteralString },
2820 .OpConditionalEntryPointINTEL => struct { condition: Id, execution_model: ExecutionModel, entry_point: Id, name: LiteralString, interface: []const Id = &.{} },
2821 .OpConditionalCapabilityINTEL => struct { condition: Id, capability: Capability },
2822 .OpSpecConstantTargetINTEL => struct { id_result_type: Id, id_result: Id, target: LiteralInteger, features: []const LiteralInteger = &.{} },
2823 .OpSpecConstantArchitectureINTEL => struct { id_result_type: Id, id_result: Id, category: LiteralInteger, family: LiteralInteger, opcode: LiteralInteger, architecture: LiteralInteger },
2824 .OpSpecConstantCapabilitiesINTEL => struct { id_result_type: Id, id_result: Id, capabilities: []const Capability = &.{} },
2825 .OpConditionalCopyObjectINTEL => struct { id_result_type: Id, id_result: Id, id_ref: []const Id = &.{} },
2826 .OpGroupIMulKHR => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
2827 .OpGroupFMulKHR => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
2828 .OpGroupBitwiseAndKHR => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
2829 .OpGroupBitwiseOrKHR => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
2830 .OpGroupBitwiseXorKHR => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
2831 .OpGroupLogicalAndKHR => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
2832 .OpGroupLogicalOrKHR => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
2833 .OpGroupLogicalXorKHR => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
2834 .OpRoundFToTF32INTEL => struct { id_result_type: Id, id_result: Id, float_value: Id },
2835 .OpMaskedGatherINTEL => struct { id_result_type: Id, id_result: Id, ptr_vector: Id, alignment: LiteralInteger, mask: Id, fill_empty: Id },
2836 .OpMaskedScatterINTEL => struct { input_vector: Id, ptr_vector: Id, alignment: LiteralInteger, mask: Id },
2837 .OpConvertHandleToImageINTEL => struct { id_result_type: Id, id_result: Id, operand: Id },
2838 .OpConvertHandleToSamplerINTEL => struct { id_result_type: Id, id_result: Id, operand: Id },
2839 .OpConvertHandleToSampledImageINTEL => struct { id_result_type: Id, id_result: Id, operand: Id },
2840 .OpFDot2MixAcc32VALVE => struct { id_result_type: Id, id_result: Id, vector_1: Id, vector_2: Id, accumulator: Id },
2841 .OpFDot2MixAcc16VALVE => struct { id_result_type: Id, id_result: Id, vector_1: Id, vector_2: Id, accumulator: Id },
2842 .OpFDot4MixAcc32VALVE => struct { id_result_type: Id, id_result: Id, vector_1: Id, vector_2: Id, accumulator: Id },
2843 };
2844 }
2845 pub fn class(self: Opcode) Class {
2846 return switch (self) {
2847 .OpNop => .miscellaneous,
2848 .OpUndef => .miscellaneous,
2849 .OpSourceContinued => .debug,
2850 .OpSource => .debug,
2851 .OpSourceExtension => .debug,
2852 .OpName => .debug,
2853 .OpMemberName => .debug,
2854 .OpString => .debug,
2855 .OpLine => .debug,
2856 .OpExtension => .extension,
2857 .OpExtInstImport => .extension,
2858 .OpExtInst => .extension,
2859 .OpMemoryModel => .mode_setting,
2860 .OpEntryPoint => .mode_setting,
2861 .OpExecutionMode => .mode_setting,
2862 .OpCapability => .mode_setting,
2863 .OpTypeVoid => .type_declaration,
2864 .OpTypeBool => .type_declaration,
2865 .OpTypeInt => .type_declaration,
2866 .OpTypeFloat => .type_declaration,
2867 .OpTypeVector => .type_declaration,
2868 .OpTypeMatrix => .type_declaration,
2869 .OpTypeImage => .type_declaration,
2870 .OpTypeSampler => .type_declaration,
2871 .OpTypeSampledImage => .type_declaration,
2872 .OpTypeArray => .type_declaration,
2873 .OpTypeRuntimeArray => .type_declaration,
2874 .OpTypeStruct => .type_declaration,
2875 .OpTypeOpaque => .type_declaration,
2876 .OpTypePointer => .type_declaration,
2877 .OpTypeFunction => .type_declaration,
2878 .OpTypeEvent => .type_declaration,
2879 .OpTypeDeviceEvent => .type_declaration,
2880 .OpTypeReserveId => .type_declaration,
2881 .OpTypeQueue => .type_declaration,
2882 .OpTypePipe => .type_declaration,
2883 .OpTypeForwardPointer => .type_declaration,
2884 .OpConstantTrue => .constant_creation,
2885 .OpConstantFalse => .constant_creation,
2886 .OpConstant => .constant_creation,
2887 .OpConstantComposite => .constant_creation,
2888 .OpConstantSampler => .constant_creation,
2889 .OpConstantNull => .constant_creation,
2890 .OpSpecConstantTrue => .constant_creation,
2891 .OpSpecConstantFalse => .constant_creation,
2892 .OpSpecConstant => .constant_creation,
2893 .OpSpecConstantComposite => .constant_creation,
2894 .OpSpecConstantOp => .constant_creation,
2895 .OpFunction => .function,
2896 .OpFunctionParameter => .function,
2897 .OpFunctionEnd => .function,
2898 .OpFunctionCall => .function,
2899 .OpVariable => .memory,
2900 .OpImageTexelPointer => .memory,
2901 .OpLoad => .memory,
2902 .OpStore => .memory,
2903 .OpCopyMemory => .memory,
2904 .OpCopyMemorySized => .memory,
2905 .OpAccessChain => .memory,
2906 .OpInBoundsAccessChain => .memory,
2907 .OpPtrAccessChain => .memory,
2908 .OpArrayLength => .memory,
2909 .OpGenericPtrMemSemantics => .memory,
2910 .OpInBoundsPtrAccessChain => .memory,
2911 .OpDecorate => .annotation,
2912 .OpMemberDecorate => .annotation,
2913 .OpDecorationGroup => .annotation,
2914 .OpGroupDecorate => .annotation,
2915 .OpGroupMemberDecorate => .annotation,
2916 .OpVectorExtractDynamic => .composite,
2917 .OpVectorInsertDynamic => .composite,
2918 .OpVectorShuffle => .composite,
2919 .OpCompositeConstruct => .composite,
2920 .OpCompositeExtract => .composite,
2921 .OpCompositeInsert => .composite,
2922 .OpCopyObject => .composite,
2923 .OpTranspose => .composite,
2924 .OpSampledImage => .image,
2925 .OpImageSampleImplicitLod => .image,
2926 .OpImageSampleExplicitLod => .image,
2927 .OpImageSampleDrefImplicitLod => .image,
2928 .OpImageSampleDrefExplicitLod => .image,
2929 .OpImageSampleProjImplicitLod => .image,
2930 .OpImageSampleProjExplicitLod => .image,
2931 .OpImageSampleProjDrefImplicitLod => .image,
2932 .OpImageSampleProjDrefExplicitLod => .image,
2933 .OpImageFetch => .image,
2934 .OpImageGather => .image,
2935 .OpImageDrefGather => .image,
2936 .OpImageRead => .image,
2937 .OpImageWrite => .image,
2938 .OpImage => .image,
2939 .OpImageQueryFormat => .image,
2940 .OpImageQueryOrder => .image,
2941 .OpImageQuerySizeLod => .image,
2942 .OpImageQuerySize => .image,
2943 .OpImageQueryLod => .image,
2944 .OpImageQueryLevels => .image,
2945 .OpImageQuerySamples => .image,
2946 .OpConvertFToU => .conversion,
2947 .OpConvertFToS => .conversion,
2948 .OpConvertSToF => .conversion,
2949 .OpConvertUToF => .conversion,
2950 .OpUConvert => .conversion,
2951 .OpSConvert => .conversion,
2952 .OpFConvert => .conversion,
2953 .OpQuantizeToF16 => .conversion,
2954 .OpConvertPtrToU => .conversion,
2955 .OpSatConvertSToU => .conversion,
2956 .OpSatConvertUToS => .conversion,
2957 .OpConvertUToPtr => .conversion,
2958 .OpPtrCastToGeneric => .conversion,
2959 .OpGenericCastToPtr => .conversion,
2960 .OpGenericCastToPtrExplicit => .conversion,
2961 .OpBitcast => .conversion,
2962 .OpSNegate => .arithmetic,
2963 .OpFNegate => .arithmetic,
2964 .OpIAdd => .arithmetic,
2965 .OpFAdd => .arithmetic,
2966 .OpISub => .arithmetic,
2967 .OpFSub => .arithmetic,
2968 .OpIMul => .arithmetic,
2969 .OpFMul => .arithmetic,
2970 .OpUDiv => .arithmetic,
2971 .OpSDiv => .arithmetic,
2972 .OpFDiv => .arithmetic,
2973 .OpUMod => .arithmetic,
2974 .OpSRem => .arithmetic,
2975 .OpSMod => .arithmetic,
2976 .OpFRem => .arithmetic,
2977 .OpFMod => .arithmetic,
2978 .OpVectorTimesScalar => .arithmetic,
2979 .OpMatrixTimesScalar => .arithmetic,
2980 .OpVectorTimesMatrix => .arithmetic,
2981 .OpMatrixTimesVector => .arithmetic,
2982 .OpMatrixTimesMatrix => .arithmetic,
2983 .OpOuterProduct => .arithmetic,
2984 .OpDot => .arithmetic,
2985 .OpIAddCarry => .arithmetic,
2986 .OpISubBorrow => .arithmetic,
2987 .OpUMulExtended => .arithmetic,
2988 .OpSMulExtended => .arithmetic,
2989 .OpAny => .relational_and_logical,
2990 .OpAll => .relational_and_logical,
2991 .OpIsNan => .relational_and_logical,
2992 .OpIsInf => .relational_and_logical,
2993 .OpIsFinite => .relational_and_logical,
2994 .OpIsNormal => .relational_and_logical,
2995 .OpSignBitSet => .relational_and_logical,
2996 .OpLessOrGreater => .relational_and_logical,
2997 .OpOrdered => .relational_and_logical,
2998 .OpUnordered => .relational_and_logical,
2999 .OpLogicalEqual => .relational_and_logical,
3000 .OpLogicalNotEqual => .relational_and_logical,
3001 .OpLogicalOr => .relational_and_logical,
3002 .OpLogicalAnd => .relational_and_logical,
3003 .OpLogicalNot => .relational_and_logical,
3004 .OpSelect => .relational_and_logical,
3005 .OpIEqual => .relational_and_logical,
3006 .OpINotEqual => .relational_and_logical,
3007 .OpUGreaterThan => .relational_and_logical,
3008 .OpSGreaterThan => .relational_and_logical,
3009 .OpUGreaterThanEqual => .relational_and_logical,
3010 .OpSGreaterThanEqual => .relational_and_logical,
3011 .OpULessThan => .relational_and_logical,
3012 .OpSLessThan => .relational_and_logical,
3013 .OpULessThanEqual => .relational_and_logical,
3014 .OpSLessThanEqual => .relational_and_logical,
3015 .OpFOrdEqual => .relational_and_logical,
3016 .OpFUnordEqual => .relational_and_logical,
3017 .OpFOrdNotEqual => .relational_and_logical,
3018 .OpFUnordNotEqual => .relational_and_logical,
3019 .OpFOrdLessThan => .relational_and_logical,
3020 .OpFUnordLessThan => .relational_and_logical,
3021 .OpFOrdGreaterThan => .relational_and_logical,
3022 .OpFUnordGreaterThan => .relational_and_logical,
3023 .OpFOrdLessThanEqual => .relational_and_logical,
3024 .OpFUnordLessThanEqual => .relational_and_logical,
3025 .OpFOrdGreaterThanEqual => .relational_and_logical,
3026 .OpFUnordGreaterThanEqual => .relational_and_logical,
3027 .OpShiftRightLogical => .bit,
3028 .OpShiftRightArithmetic => .bit,
3029 .OpShiftLeftLogical => .bit,
3030 .OpBitwiseOr => .bit,
3031 .OpBitwiseXor => .bit,
3032 .OpBitwiseAnd => .bit,
3033 .OpNot => .bit,
3034 .OpBitFieldInsert => .bit,
3035 .OpBitFieldSExtract => .bit,
3036 .OpBitFieldUExtract => .bit,
3037 .OpBitReverse => .bit,
3038 .OpBitCount => .bit,
3039 .OpDPdx => .derivative,
3040 .OpDPdy => .derivative,
3041 .OpFwidth => .derivative,
3042 .OpDPdxFine => .derivative,
3043 .OpDPdyFine => .derivative,
3044 .OpFwidthFine => .derivative,
3045 .OpDPdxCoarse => .derivative,
3046 .OpDPdyCoarse => .derivative,
3047 .OpFwidthCoarse => .derivative,
3048 .OpEmitVertex => .primitive,
3049 .OpEndPrimitive => .primitive,
3050 .OpEmitStreamVertex => .primitive,
3051 .OpEndStreamPrimitive => .primitive,
3052 .OpControlBarrier => .barrier,
3053 .OpMemoryBarrier => .barrier,
3054 .OpAtomicLoad => .atomic,
3055 .OpAtomicStore => .atomic,
3056 .OpAtomicExchange => .atomic,
3057 .OpAtomicCompareExchange => .atomic,
3058 .OpAtomicCompareExchangeWeak => .atomic,
3059 .OpAtomicIIncrement => .atomic,
3060 .OpAtomicIDecrement => .atomic,
3061 .OpAtomicIAdd => .atomic,
3062 .OpAtomicISub => .atomic,
3063 .OpAtomicSMin => .atomic,
3064 .OpAtomicUMin => .atomic,
3065 .OpAtomicSMax => .atomic,
3066 .OpAtomicUMax => .atomic,
3067 .OpAtomicAnd => .atomic,
3068 .OpAtomicOr => .atomic,
3069 .OpAtomicXor => .atomic,
3070 .OpPhi => .control_flow,
3071 .OpLoopMerge => .control_flow,
3072 .OpSelectionMerge => .control_flow,
3073 .OpLabel => .control_flow,
3074 .OpBranch => .control_flow,
3075 .OpBranchConditional => .control_flow,
3076 .OpSwitch => .control_flow,
3077 .OpKill => .control_flow,
3078 .OpReturn => .control_flow,
3079 .OpReturnValue => .control_flow,
3080 .OpUnreachable => .control_flow,
3081 .OpLifetimeStart => .control_flow,
3082 .OpLifetimeStop => .control_flow,
3083 .OpGroupAsyncCopy => .group,
3084 .OpGroupWaitEvents => .group,
3085 .OpGroupAll => .group,
3086 .OpGroupAny => .group,
3087 .OpGroupBroadcast => .group,
3088 .OpGroupIAdd => .group,
3089 .OpGroupFAdd => .group,
3090 .OpGroupFMin => .group,
3091 .OpGroupUMin => .group,
3092 .OpGroupSMin => .group,
3093 .OpGroupFMax => .group,
3094 .OpGroupUMax => .group,
3095 .OpGroupSMax => .group,
3096 .OpReadPipe => .pipe,
3097 .OpWritePipe => .pipe,
3098 .OpReservedReadPipe => .pipe,
3099 .OpReservedWritePipe => .pipe,
3100 .OpReserveReadPipePackets => .pipe,
3101 .OpReserveWritePipePackets => .pipe,
3102 .OpCommitReadPipe => .pipe,
3103 .OpCommitWritePipe => .pipe,
3104 .OpIsValidReserveId => .pipe,
3105 .OpGetNumPipePackets => .pipe,
3106 .OpGetMaxPipePackets => .pipe,
3107 .OpGroupReserveReadPipePackets => .pipe,
3108 .OpGroupReserveWritePipePackets => .pipe,
3109 .OpGroupCommitReadPipe => .pipe,
3110 .OpGroupCommitWritePipe => .pipe,
3111 .OpEnqueueMarker => .device_side_enqueue,
3112 .OpEnqueueKernel => .device_side_enqueue,
3113 .OpGetKernelNDrangeSubGroupCount => .device_side_enqueue,
3114 .OpGetKernelNDrangeMaxSubGroupSize => .device_side_enqueue,
3115 .OpGetKernelWorkGroupSize => .device_side_enqueue,
3116 .OpGetKernelPreferredWorkGroupSizeMultiple => .device_side_enqueue,
3117 .OpRetainEvent => .device_side_enqueue,
3118 .OpReleaseEvent => .device_side_enqueue,
3119 .OpCreateUserEvent => .device_side_enqueue,
3120 .OpIsValidEvent => .device_side_enqueue,
3121 .OpSetUserEventStatus => .device_side_enqueue,
3122 .OpCaptureEventProfilingInfo => .device_side_enqueue,
3123 .OpGetDefaultQueue => .device_side_enqueue,
3124 .OpBuildNDRange => .device_side_enqueue,
3125 .OpImageSparseSampleImplicitLod => .image,
3126 .OpImageSparseSampleExplicitLod => .image,
3127 .OpImageSparseSampleDrefImplicitLod => .image,
3128 .OpImageSparseSampleDrefExplicitLod => .image,
3129 .OpImageSparseSampleProjImplicitLod => .image,
3130 .OpImageSparseSampleProjExplicitLod => .image,
3131 .OpImageSparseSampleProjDrefImplicitLod => .image,
3132 .OpImageSparseSampleProjDrefExplicitLod => .image,
3133 .OpImageSparseFetch => .image,
3134 .OpImageSparseGather => .image,
3135 .OpImageSparseDrefGather => .image,
3136 .OpImageSparseTexelsResident => .image,
3137 .OpNoLine => .debug,
3138 .OpAtomicFlagTestAndSet => .atomic,
3139 .OpAtomicFlagClear => .atomic,
3140 .OpImageSparseRead => .image,
3141 .OpSizeOf => .miscellaneous,
3142 .OpTypePipeStorage => .type_declaration,
3143 .OpConstantPipeStorage => .pipe,
3144 .OpCreatePipeFromPipeStorage => .pipe,
3145 .OpGetKernelLocalSizeForSubgroupCount => .device_side_enqueue,
3146 .OpGetKernelMaxNumSubgroups => .device_side_enqueue,
3147 .OpTypeNamedBarrier => .type_declaration,
3148 .OpNamedBarrierInitialize => .barrier,
3149 .OpMemoryNamedBarrier => .barrier,
3150 .OpModuleProcessed => .debug,
3151 .OpExecutionModeId => .mode_setting,
3152 .OpDecorateId => .annotation,
3153 .OpGroupNonUniformElect => .non_uniform,
3154 .OpGroupNonUniformAll => .non_uniform,
3155 .OpGroupNonUniformAny => .non_uniform,
3156 .OpGroupNonUniformAllEqual => .non_uniform,
3157 .OpGroupNonUniformBroadcast => .non_uniform,
3158 .OpGroupNonUniformBroadcastFirst => .non_uniform,
3159 .OpGroupNonUniformBallot => .non_uniform,
3160 .OpGroupNonUniformInverseBallot => .non_uniform,
3161 .OpGroupNonUniformBallotBitExtract => .non_uniform,
3162 .OpGroupNonUniformBallotBitCount => .non_uniform,
3163 .OpGroupNonUniformBallotFindLSB => .non_uniform,
3164 .OpGroupNonUniformBallotFindMSB => .non_uniform,
3165 .OpGroupNonUniformShuffle => .non_uniform,
3166 .OpGroupNonUniformShuffleXor => .non_uniform,
3167 .OpGroupNonUniformShuffleUp => .non_uniform,
3168 .OpGroupNonUniformShuffleDown => .non_uniform,
3169 .OpGroupNonUniformIAdd => .non_uniform,
3170 .OpGroupNonUniformFAdd => .non_uniform,
3171 .OpGroupNonUniformIMul => .non_uniform,
3172 .OpGroupNonUniformFMul => .non_uniform,
3173 .OpGroupNonUniformSMin => .non_uniform,
3174 .OpGroupNonUniformUMin => .non_uniform,
3175 .OpGroupNonUniformFMin => .non_uniform,
3176 .OpGroupNonUniformSMax => .non_uniform,
3177 .OpGroupNonUniformUMax => .non_uniform,
3178 .OpGroupNonUniformFMax => .non_uniform,
3179 .OpGroupNonUniformBitwiseAnd => .non_uniform,
3180 .OpGroupNonUniformBitwiseOr => .non_uniform,
3181 .OpGroupNonUniformBitwiseXor => .non_uniform,
3182 .OpGroupNonUniformLogicalAnd => .non_uniform,
3183 .OpGroupNonUniformLogicalOr => .non_uniform,
3184 .OpGroupNonUniformLogicalXor => .non_uniform,
3185 .OpGroupNonUniformQuadBroadcast => .non_uniform,
3186 .OpGroupNonUniformQuadSwap => .non_uniform,
3187 .OpCopyLogical => .composite,
3188 .OpPtrEqual => .memory,
3189 .OpPtrNotEqual => .memory,
3190 .OpPtrDiff => .memory,
3191 .OpColorAttachmentReadEXT => .image,
3192 .OpDepthAttachmentReadEXT => .image,
3193 .OpStencilAttachmentReadEXT => .image,
3194 .OpTypeTensorARM => .type_declaration,
3195 .OpTensorReadARM => .tensor,
3196 .OpTensorWriteARM => .tensor,
3197 .OpTensorQuerySizeARM => .tensor,
3198 .OpGraphConstantARM => .graph,
3199 .OpGraphEntryPointARM => .graph,
3200 .OpGraphARM => .graph,
3201 .OpGraphInputARM => .graph,
3202 .OpGraphSetOutputARM => .graph,
3203 .OpGraphEndARM => .graph,
3204 .OpTypeGraphARM => .type_declaration,
3205 .OpTerminateInvocation => .control_flow,
3206 .OpTypeUntypedPointerKHR => .type_declaration,
3207 .OpUntypedVariableKHR => .memory,
3208 .OpUntypedAccessChainKHR => .memory,
3209 .OpUntypedInBoundsAccessChainKHR => .memory,
3210 .OpSubgroupBallotKHR => .group,
3211 .OpSubgroupFirstInvocationKHR => .group,
3212 .OpUntypedPtrAccessChainKHR => .memory,
3213 .OpUntypedInBoundsPtrAccessChainKHR => .memory,
3214 .OpUntypedArrayLengthKHR => .memory,
3215 .OpUntypedPrefetchKHR => .memory,
3216 .OpFmaKHR => .arithmetic,
3217 .OpSubgroupAllKHR => .group,
3218 .OpSubgroupAnyKHR => .group,
3219 .OpSubgroupAllEqualKHR => .group,
3220 .OpGroupNonUniformRotateKHR => .group,
3221 .OpSubgroupReadInvocationKHR => .group,
3222 .OpExtInstWithForwardRefsKHR => .extension,
3223 .OpUntypedGroupAsyncCopyKHR => .group,
3224 .OpTraceRayKHR => .reserved,
3225 .OpExecuteCallableKHR => .reserved,
3226 .OpConvertUToAccelerationStructureKHR => .reserved,
3227 .OpIgnoreIntersectionKHR => .reserved,
3228 .OpTerminateRayKHR => .reserved,
3229 .OpSDot => .arithmetic,
3230 .OpUDot => .arithmetic,
3231 .OpSUDot => .arithmetic,
3232 .OpSDotAccSat => .arithmetic,
3233 .OpUDotAccSat => .arithmetic,
3234 .OpSUDotAccSat => .arithmetic,
3235 .OpTypeCooperativeMatrixKHR => .type_declaration,
3236 .OpCooperativeMatrixLoadKHR => .memory,
3237 .OpCooperativeMatrixStoreKHR => .memory,
3238 .OpCooperativeMatrixMulAddKHR => .arithmetic,
3239 .OpCooperativeMatrixLengthKHR => .miscellaneous,
3240 .OpConstantCompositeReplicateEXT => .constant_creation,
3241 .OpSpecConstantCompositeReplicateEXT => .constant_creation,
3242 .OpCompositeConstructReplicateEXT => .composite,
3243 .OpTypeRayQueryKHR => .type_declaration,
3244 .OpRayQueryInitializeKHR => .reserved,
3245 .OpRayQueryTerminateKHR => .reserved,
3246 .OpRayQueryGenerateIntersectionKHR => .reserved,
3247 .OpRayQueryConfirmIntersectionKHR => .reserved,
3248 .OpRayQueryProceedKHR => .reserved,
3249 .OpRayQueryGetIntersectionTypeKHR => .reserved,
3250 .OpImageSampleWeightedQCOM => .image,
3251 .OpImageBoxFilterQCOM => .image,
3252 .OpImageBlockMatchSSDQCOM => .image,
3253 .OpImageBlockMatchSADQCOM => .image,
3254 .OpBitCastArrayQCOM => .conversion,
3255 .OpImageBlockMatchWindowSSDQCOM => .image,
3256 .OpImageBlockMatchWindowSADQCOM => .image,
3257 .OpImageBlockMatchGatherSSDQCOM => .image,
3258 .OpImageBlockMatchGatherSADQCOM => .image,
3259 .OpCompositeConstructCoopMatQCOM => .composite,
3260 .OpCompositeExtractCoopMatQCOM => .composite,
3261 .OpExtractSubArrayQCOM => .composite,
3262 .OpGroupIAddNonUniformAMD => .group,
3263 .OpGroupFAddNonUniformAMD => .group,
3264 .OpGroupFMinNonUniformAMD => .group,
3265 .OpGroupUMinNonUniformAMD => .group,
3266 .OpGroupSMinNonUniformAMD => .group,
3267 .OpGroupFMaxNonUniformAMD => .group,
3268 .OpGroupUMaxNonUniformAMD => .group,
3269 .OpGroupSMaxNonUniformAMD => .group,
3270 .OpFragmentMaskFetchAMD => .reserved,
3271 .OpFragmentFetchAMD => .reserved,
3272 .OpReadClockKHR => .reserved,
3273 .OpAllocateNodePayloadsAMDX => .reserved,
3274 .OpEnqueueNodePayloadsAMDX => .reserved,
3275 .OpTypeNodePayloadArrayAMDX => .reserved,
3276 .OpFinishWritingNodePayloadAMDX => .reserved,
3277 .OpNodePayloadArrayLengthAMDX => .reserved,
3278 .OpIsNodePayloadValidAMDX => .reserved,
3279 .OpConstantStringAMDX => .reserved,
3280 .OpSpecConstantStringAMDX => .reserved,
3281 .OpGroupNonUniformQuadAllKHR => .non_uniform,
3282 .OpGroupNonUniformQuadAnyKHR => .non_uniform,
3283 .OpTypeBufferEXT => .type_declaration,
3284 .OpBufferPointerEXT => .memory,
3285 .OpAbortKHR => .control_flow,
3286 .OpUntypedImageTexelPointerEXT => .memory,
3287 .OpMemberDecorateIdEXT => .annotation,
3288 .OpConstantSizeOfEXT => .constant_creation,
3289 .OpConstantDataKHR => .constant_creation,
3290 .OpSpecConstantDataKHR => .constant_creation,
3291 .OpPoisonKHR => .miscellaneous,
3292 .OpFreezeKHR => .miscellaneous,
3293 .OpHitObjectRecordHitMotionNV => .reserved,
3294 .OpHitObjectRecordHitWithIndexMotionNV => .reserved,
3295 .OpHitObjectRecordMissMotionNV => .reserved,
3296 .OpHitObjectGetWorldToObjectNV => .reserved,
3297 .OpHitObjectGetObjectToWorldNV => .reserved,
3298 .OpHitObjectGetObjectRayDirectionNV => .reserved,
3299 .OpHitObjectGetObjectRayOriginNV => .reserved,
3300 .OpHitObjectTraceRayMotionNV => .reserved,
3301 .OpHitObjectGetShaderRecordBufferHandleNV => .reserved,
3302 .OpHitObjectGetShaderBindingTableRecordIndexNV => .reserved,
3303 .OpHitObjectRecordEmptyNV => .reserved,
3304 .OpHitObjectTraceRayNV => .reserved,
3305 .OpHitObjectRecordHitNV => .reserved,
3306 .OpHitObjectRecordHitWithIndexNV => .reserved,
3307 .OpHitObjectRecordMissNV => .reserved,
3308 .OpHitObjectExecuteShaderNV => .reserved,
3309 .OpHitObjectGetCurrentTimeNV => .reserved,
3310 .OpHitObjectGetAttributesNV => .reserved,
3311 .OpHitObjectGetHitKindNV => .reserved,
3312 .OpHitObjectGetPrimitiveIndexNV => .reserved,
3313 .OpHitObjectGetGeometryIndexNV => .reserved,
3314 .OpHitObjectGetInstanceIdNV => .reserved,
3315 .OpHitObjectGetInstanceCustomIndexNV => .reserved,
3316 .OpHitObjectGetWorldRayDirectionNV => .reserved,
3317 .OpHitObjectGetWorldRayOriginNV => .reserved,
3318 .OpHitObjectGetRayTMaxNV => .reserved,
3319 .OpHitObjectGetRayTMinNV => .reserved,
3320 .OpHitObjectIsEmptyNV => .reserved,
3321 .OpHitObjectIsHitNV => .reserved,
3322 .OpHitObjectIsMissNV => .reserved,
3323 .OpReorderThreadWithHitObjectNV => .reserved,
3324 .OpReorderThreadWithHintNV => .reserved,
3325 .OpTypeHitObjectNV => .type_declaration,
3326 .OpImageSampleFootprintNV => .image,
3327 .OpTypeVectorIdEXT => .type_declaration,
3328 .OpCooperativeVectorMatrixMulNV => .reserved,
3329 .OpCooperativeVectorOuterProductAccumulateNV => .reserved,
3330 .OpCooperativeVectorReduceSumAccumulateNV => .reserved,
3331 .OpCooperativeVectorMatrixMulAddNV => .reserved,
3332 .OpCooperativeMatrixConvertNV => .conversion,
3333 .OpEmitMeshTasksEXT => .reserved,
3334 .OpSetMeshOutputsEXT => .reserved,
3335 .OpGroupNonUniformPartitionEXT => .non_uniform,
3336 .OpWritePackedPrimitiveIndices4x8NV => .reserved,
3337 .OpFetchMicroTriangleVertexPositionNV => .reserved,
3338 .OpFetchMicroTriangleVertexBarycentricNV => .reserved,
3339 .OpCooperativeVectorLoadNV => .memory,
3340 .OpCooperativeVectorStoreNV => .memory,
3341 .OpHitObjectRecordFromQueryEXT => .reserved,
3342 .OpHitObjectRecordMissEXT => .reserved,
3343 .OpHitObjectRecordMissMotionEXT => .reserved,
3344 .OpHitObjectGetIntersectionTriangleVertexPositionsEXT => .reserved,
3345 .OpHitObjectGetRayFlagsEXT => .reserved,
3346 .OpHitObjectSetShaderBindingTableRecordIndexEXT => .reserved,
3347 .OpHitObjectReorderExecuteShaderEXT => .reserved,
3348 .OpHitObjectTraceReorderExecuteEXT => .reserved,
3349 .OpHitObjectTraceMotionReorderExecuteEXT => .reserved,
3350 .OpTypeHitObjectEXT => .type_declaration,
3351 .OpReorderThreadWithHintEXT => .reserved,
3352 .OpReorderThreadWithHitObjectEXT => .reserved,
3353 .OpHitObjectTraceRayEXT => .reserved,
3354 .OpHitObjectTraceRayMotionEXT => .reserved,
3355 .OpHitObjectRecordEmptyEXT => .reserved,
3356 .OpHitObjectExecuteShaderEXT => .reserved,
3357 .OpHitObjectGetCurrentTimeEXT => .reserved,
3358 .OpHitObjectGetAttributesEXT => .reserved,
3359 .OpHitObjectGetHitKindEXT => .reserved,
3360 .OpHitObjectGetPrimitiveIndexEXT => .reserved,
3361 .OpHitObjectGetGeometryIndexEXT => .reserved,
3362 .OpHitObjectGetInstanceIdEXT => .reserved,
3363 .OpHitObjectGetInstanceCustomIndexEXT => .reserved,
3364 .OpHitObjectGetObjectRayOriginEXT => .reserved,
3365 .OpHitObjectGetObjectRayDirectionEXT => .reserved,
3366 .OpHitObjectGetWorldRayDirectionEXT => .reserved,
3367 .OpHitObjectGetWorldRayOriginEXT => .reserved,
3368 .OpHitObjectGetObjectToWorldEXT => .reserved,
3369 .OpHitObjectGetWorldToObjectEXT => .reserved,
3370 .OpHitObjectGetRayTMaxEXT => .reserved,
3371 .OpReportIntersectionKHR => .reserved,
3372 .OpIgnoreIntersectionNV => .reserved,
3373 .OpTerminateRayNV => .reserved,
3374 .OpTraceNV => .reserved,
3375 .OpTraceMotionNV => .reserved,
3376 .OpTraceRayMotionNV => .reserved,
3377 .OpRayQueryGetIntersectionTriangleVertexPositionsKHR => .reserved,
3378 .OpTypeAccelerationStructureKHR => .type_declaration,
3379 .OpExecuteCallableNV => .reserved,
3380 .OpRayQueryGetIntersectionClusterIdNV => .reserved,
3381 .OpHitObjectGetClusterIdNV => .reserved,
3382 .OpHitObjectGetRayTMinEXT => .reserved,
3383 .OpHitObjectGetShaderBindingTableRecordIndexEXT => .reserved,
3384 .OpHitObjectGetShaderRecordBufferHandleEXT => .reserved,
3385 .OpHitObjectIsEmptyEXT => .reserved,
3386 .OpHitObjectIsHitEXT => .reserved,
3387 .OpHitObjectIsMissEXT => .reserved,
3388 .OpTypeCooperativeMatrixNV => .type_declaration,
3389 .OpCooperativeMatrixLoadNV => .reserved,
3390 .OpCooperativeMatrixStoreNV => .reserved,
3391 .OpCooperativeMatrixMulAddNV => .reserved,
3392 .OpCooperativeMatrixLengthNV => .reserved,
3393 .OpBeginInvocationInterlockEXT => .reserved,
3394 .OpEndInvocationInterlockEXT => .reserved,
3395 .OpCooperativeMatrixReduceNV => .arithmetic,
3396 .OpCooperativeMatrixLoadTensorNV => .memory,
3397 .OpCooperativeMatrixStoreTensorNV => .memory,
3398 .OpCooperativeMatrixPerElementOpNV => .function,
3399 .OpTypeTensorLayoutNV => .type_declaration,
3400 .OpTypeTensorViewNV => .type_declaration,
3401 .OpCreateTensorLayoutNV => .reserved,
3402 .OpTensorLayoutSetDimensionNV => .reserved,
3403 .OpTensorLayoutSetStrideNV => .reserved,
3404 .OpTensorLayoutSliceNV => .reserved,
3405 .OpTensorLayoutSetClampValueNV => .reserved,
3406 .OpCreateTensorViewNV => .reserved,
3407 .OpTensorViewSetDimensionNV => .reserved,
3408 .OpTensorViewSetStrideNV => .reserved,
3409 .OpDemoteToHelperInvocation => .control_flow,
3410 .OpIsHelperInvocationEXT => .reserved,
3411 .OpTensorViewSetClipNV => .reserved,
3412 .OpTensorLayoutSetBlockSizeNV => .reserved,
3413 .OpCooperativeMatrixTransposeNV => .conversion,
3414 .OpConvertUToImageNV => .reserved,
3415 .OpConvertUToSamplerNV => .reserved,
3416 .OpConvertImageToUNV => .reserved,
3417 .OpConvertSamplerToUNV => .reserved,
3418 .OpConvertUToSampledImageNV => .reserved,
3419 .OpConvertSampledImageToUNV => .reserved,
3420 .OpSamplerImageAddressingModeNV => .reserved,
3421 .OpRawAccessChainNV => .memory,
3422 .OpRayQueryGetIntersectionSpherePositionNV => .reserved,
3423 .OpRayQueryGetIntersectionSphereRadiusNV => .reserved,
3424 .OpRayQueryGetIntersectionLSSPositionsNV => .reserved,
3425 .OpRayQueryGetIntersectionLSSRadiiNV => .reserved,
3426 .OpRayQueryGetIntersectionLSSHitValueNV => .reserved,
3427 .OpHitObjectGetSpherePositionNV => .reserved,
3428 .OpHitObjectGetSphereRadiusNV => .reserved,
3429 .OpHitObjectGetLSSPositionsNV => .reserved,
3430 .OpHitObjectGetLSSRadiiNV => .reserved,
3431 .OpHitObjectIsSphereHitNV => .reserved,
3432 .OpHitObjectIsLSSHitNV => .reserved,
3433 .OpRayQueryIsSphereHitNV => .reserved,
3434 .OpRayQueryIsLSSHitNV => .reserved,
3435 .OpSubgroupShuffleINTEL => .group,
3436 .OpSubgroupShuffleDownINTEL => .group,
3437 .OpSubgroupShuffleUpINTEL => .group,
3438 .OpSubgroupShuffleXorINTEL => .group,
3439 .OpSubgroupBlockReadINTEL => .group,
3440 .OpSubgroupBlockWriteINTEL => .group,
3441 .OpSubgroupImageBlockReadINTEL => .group,
3442 .OpSubgroupImageBlockWriteINTEL => .group,
3443 .OpSubgroupImageMediaBlockReadINTEL => .group,
3444 .OpSubgroupImageMediaBlockWriteINTEL => .group,
3445 .OpUCountLeadingZerosINTEL => .reserved,
3446 .OpUCountTrailingZerosINTEL => .reserved,
3447 .OpAbsISubINTEL => .reserved,
3448 .OpAbsUSubINTEL => .reserved,
3449 .OpIAddSatINTEL => .reserved,
3450 .OpUAddSatINTEL => .reserved,
3451 .OpIAverageINTEL => .reserved,
3452 .OpUAverageINTEL => .reserved,
3453 .OpIAverageRoundedINTEL => .reserved,
3454 .OpUAverageRoundedINTEL => .reserved,
3455 .OpISubSatINTEL => .reserved,
3456 .OpUSubSatINTEL => .reserved,
3457 .OpIMul32x16INTEL => .reserved,
3458 .OpUMul32x16INTEL => .reserved,
3459 .OpAtomicFMinEXT => .atomic,
3460 .OpAtomicFMaxEXT => .atomic,
3461 .OpAssumeTrueKHR => .miscellaneous,
3462 .OpExpectKHR => .miscellaneous,
3463 .OpDecorateString => .annotation,
3464 .OpMemberDecorateString => .annotation,
3465 .OpVariableLengthArrayINTEL => .memory,
3466 .OpSaveMemoryINTEL => .memory,
3467 .OpRestoreMemoryINTEL => .memory,
3468 .OpLoopControlINTEL => .reserved,
3469 .OpRayQueryGetRayTMinKHR => .reserved,
3470 .OpRayQueryGetRayFlagsKHR => .reserved,
3471 .OpRayQueryGetIntersectionTKHR => .reserved,
3472 .OpRayQueryGetIntersectionInstanceCustomIndexKHR => .reserved,
3473 .OpRayQueryGetIntersectionInstanceIdKHR => .reserved,
3474 .OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR => .reserved,
3475 .OpRayQueryGetIntersectionGeometryIndexKHR => .reserved,
3476 .OpRayQueryGetIntersectionPrimitiveIndexKHR => .reserved,
3477 .OpRayQueryGetIntersectionBarycentricsKHR => .reserved,
3478 .OpRayQueryGetIntersectionFrontFaceKHR => .reserved,
3479 .OpRayQueryGetIntersectionCandidateAABBOpaqueKHR => .reserved,
3480 .OpRayQueryGetIntersectionObjectRayDirectionKHR => .reserved,
3481 .OpRayQueryGetIntersectionObjectRayOriginKHR => .reserved,
3482 .OpRayQueryGetWorldRayDirectionKHR => .reserved,
3483 .OpRayQueryGetWorldRayOriginKHR => .reserved,
3484 .OpRayQueryGetIntersectionObjectToWorldKHR => .reserved,
3485 .OpRayQueryGetIntersectionWorldToObjectKHR => .reserved,
3486 .OpAtomicFAddEXT => .atomic,
3487 .OpTypeBufferSurfaceINTEL => .type_declaration,
3488 .OpTypeStructContinuedINTEL => .type_declaration,
3489 .OpConstantCompositeContinuedINTEL => .constant_creation,
3490 .OpSpecConstantCompositeContinuedINTEL => .constant_creation,
3491 .OpCompositeConstructContinuedINTEL => .composite,
3492 .OpConvertFToBF16INTEL => .conversion,
3493 .OpConvertBF16ToFINTEL => .conversion,
3494 .OpControlBarrierArriveINTEL => .barrier,
3495 .OpControlBarrierWaitINTEL => .barrier,
3496 .OpArithmeticFenceEXT => .miscellaneous,
3497 .OpSubgroupBlockPrefetchINTEL => .group,
3498 .OpSubgroup2DBlockLoadINTEL => .group,
3499 .OpSubgroup2DBlockLoadTransformINTEL => .group,
3500 .OpSubgroup2DBlockLoadTransposeINTEL => .group,
3501 .OpSubgroup2DBlockPrefetchINTEL => .group,
3502 .OpSubgroup2DBlockStoreINTEL => .group,
3503 .OpSubgroupMatrixMultiplyAccumulateINTEL => .group,
3504 .OpBitwiseFunctionINTEL => .bit,
3505 .OpUntypedVariableLengthArrayINTEL => .memory,
3506 .OpConditionalExtensionINTEL => .extension,
3507 .OpConditionalEntryPointINTEL => .mode_setting,
3508 .OpConditionalCapabilityINTEL => .mode_setting,
3509 .OpSpecConstantTargetINTEL => .constant_creation,
3510 .OpSpecConstantArchitectureINTEL => .constant_creation,
3511 .OpSpecConstantCapabilitiesINTEL => .constant_creation,
3512 .OpConditionalCopyObjectINTEL => .composite,
3513 .OpGroupIMulKHR => .group,
3514 .OpGroupFMulKHR => .group,
3515 .OpGroupBitwiseAndKHR => .group,
3516 .OpGroupBitwiseOrKHR => .group,
3517 .OpGroupBitwiseXorKHR => .group,
3518 .OpGroupLogicalAndKHR => .group,
3519 .OpGroupLogicalOrKHR => .group,
3520 .OpGroupLogicalXorKHR => .group,
3521 .OpRoundFToTF32INTEL => .conversion,
3522 .OpMaskedGatherINTEL => .memory,
3523 .OpMaskedScatterINTEL => .memory,
3524 .OpConvertHandleToImageINTEL => .image,
3525 .OpConvertHandleToSamplerINTEL => .image,
3526 .OpConvertHandleToSampledImageINTEL => .image,
3527 .OpFDot2MixAcc32VALVE => .reserved,
3528 .OpFDot2MixAcc16VALVE => .reserved,
3529 .OpFDot4MixAcc32VALVE => .reserved,
3530 };
3531 }
3532};
3533
3534pub const OpenClOpcode = enum(u16) {
3535 acos = 0,
3536 acosh = 1,
3537 acospi = 2,
3538 asin = 3,
3539 asinh = 4,
3540 asinpi = 5,
3541 atan = 6,
3542 atan2 = 7,
3543 atanh = 8,
3544 atanpi = 9,
3545 atan2pi = 10,
3546 cbrt = 11,
3547 ceil = 12,
3548 copysign = 13,
3549 cos = 14,
3550 cosh = 15,
3551 cospi = 16,
3552 erfc = 17,
3553 erf = 18,
3554 exp = 19,
3555 exp2 = 20,
3556 exp10 = 21,
3557 expm1 = 22,
3558 fabs = 23,
3559 fdim = 24,
3560 floor = 25,
3561 fma = 26,
3562 fmax = 27,
3563 fmin = 28,
3564 fmod = 29,
3565 fract = 30,
3566 frexp = 31,
3567 hypot = 32,
3568 ilogb = 33,
3569 ldexp = 34,
3570 lgamma = 35,
3571 lgamma_r = 36,
3572 log = 37,
3573 log2 = 38,
3574 log10 = 39,
3575 log1p = 40,
3576 logb = 41,
3577 mad = 42,
3578 maxmag = 43,
3579 minmag = 44,
3580 modf = 45,
3581 nan = 46,
3582 nextafter = 47,
3583 pow = 48,
3584 pown = 49,
3585 powr = 50,
3586 remainder = 51,
3587 remquo = 52,
3588 rint = 53,
3589 rootn = 54,
3590 round = 55,
3591 rsqrt = 56,
3592 sin = 57,
3593 sincos = 58,
3594 sinh = 59,
3595 sinpi = 60,
3596 sqrt = 61,
3597 tan = 62,
3598 tanh = 63,
3599 tanpi = 64,
3600 tgamma = 65,
3601 trunc = 66,
3602 half_cos = 67,
3603 half_divide = 68,
3604 half_exp = 69,
3605 half_exp2 = 70,
3606 half_exp10 = 71,
3607 half_log = 72,
3608 half_log2 = 73,
3609 half_log10 = 74,
3610 half_powr = 75,
3611 half_recip = 76,
3612 half_rsqrt = 77,
3613 half_sin = 78,
3614 half_sqrt = 79,
3615 half_tan = 80,
3616 native_cos = 81,
3617 native_divide = 82,
3618 native_exp = 83,
3619 native_exp2 = 84,
3620 native_exp10 = 85,
3621 native_log = 86,
3622 native_log2 = 87,
3623 native_log10 = 88,
3624 native_powr = 89,
3625 native_recip = 90,
3626 native_rsqrt = 91,
3627 native_sin = 92,
3628 native_sqrt = 93,
3629 native_tan = 94,
3630 fclamp = 95,
3631 degrees = 96,
3632 fmax_common = 97,
3633 fmin_common = 98,
3634 mix = 99,
3635 radians = 100,
3636 step = 101,
3637 smoothstep = 102,
3638 sign = 103,
3639 cross = 104,
3640 distance = 105,
3641 length = 106,
3642 normalize = 107,
3643 fast_distance = 108,
3644 fast_length = 109,
3645 fast_normalize = 110,
3646 s_abs = 141,
3647 s_abs_diff = 142,
3648 s_add_sat = 143,
3649 u_add_sat = 144,
3650 s_hadd = 145,
3651 u_hadd = 146,
3652 s_rhadd = 147,
3653 u_rhadd = 148,
3654 s_clamp = 149,
3655 u_clamp = 150,
3656 clz = 151,
3657 ctz = 152,
3658 s_mad_hi = 153,
3659 u_mad_sat = 154,
3660 s_mad_sat = 155,
3661 s_max = 156,
3662 u_max = 157,
3663 s_min = 158,
3664 u_min = 159,
3665 s_mul_hi = 160,
3666 rotate = 161,
3667 s_sub_sat = 162,
3668 u_sub_sat = 163,
3669 u_upsample = 164,
3670 s_upsample = 165,
3671 popcount = 166,
3672 s_mad24 = 167,
3673 u_mad24 = 168,
3674 s_mul24 = 169,
3675 u_mul24 = 170,
3676 vloadn = 171,
3677 vstoren = 172,
3678 vload_half = 173,
3679 vload_halfn = 174,
3680 vstore_half = 175,
3681 vstore_half_r = 176,
3682 vstore_halfn = 177,
3683 vstore_halfn_r = 178,
3684 vloada_halfn = 179,
3685 vstorea_halfn = 180,
3686 vstorea_halfn_r = 181,
3687 shuffle = 182,
3688 shuffle2 = 183,
3689 printf = 184,
3690 prefetch = 185,
3691 bitselect = 186,
3692 select = 187,
3693 u_abs = 201,
3694 u_abs_diff = 202,
3695 u_mul_hi = 203,
3696 u_mad_hi = 204,
3697};
3698
3699pub const GlslOpcode = enum(u16) {
3700 Round = 1,
3701 RoundEven = 2,
3702 Trunc = 3,
3703 FAbs = 4,
3704 SAbs = 5,
3705 FSign = 6,
3706 SSign = 7,
3707 Floor = 8,
3708 Ceil = 9,
3709 Fract = 10,
3710 Radians = 11,
3711 Degrees = 12,
3712 Sin = 13,
3713 Cos = 14,
3714 Tan = 15,
3715 Asin = 16,
3716 Acos = 17,
3717 Atan = 18,
3718 Sinh = 19,
3719 Cosh = 20,
3720 Tanh = 21,
3721 Asinh = 22,
3722 Acosh = 23,
3723 Atanh = 24,
3724 Atan2 = 25,
3725 Pow = 26,
3726 Exp = 27,
3727 Log = 28,
3728 Exp2 = 29,
3729 Log2 = 30,
3730 Sqrt = 31,
3731 InverseSqrt = 32,
3732 Determinant = 33,
3733 MatrixInverse = 34,
3734 Modf = 35,
3735 ModfStruct = 36,
3736 FMin = 37,
3737 UMin = 38,
3738 SMin = 39,
3739 FMax = 40,
3740 UMax = 41,
3741 SMax = 42,
3742 FClamp = 43,
3743 UClamp = 44,
3744 SClamp = 45,
3745 FMix = 46,
3746 IMix = 47,
3747 Step = 48,
3748 SmoothStep = 49,
3749 Fma = 50,
3750 Frexp = 51,
3751 FrexpStruct = 52,
3752 Ldexp = 53,
3753 PackSnorm4x8 = 54,
3754 PackUnorm4x8 = 55,
3755 PackSnorm2x16 = 56,
3756 PackUnorm2x16 = 57,
3757 PackHalf2x16 = 58,
3758 PackDouble2x32 = 59,
3759 UnpackSnorm2x16 = 60,
3760 UnpackUnorm2x16 = 61,
3761 UnpackHalf2x16 = 62,
3762 UnpackSnorm4x8 = 63,
3763 UnpackUnorm4x8 = 64,
3764 UnpackDouble2x32 = 65,
3765 Length = 66,
3766 Distance = 67,
3767 Cross = 68,
3768 Normalize = 69,
3769 FaceForward = 70,
3770 Reflect = 71,
3771 Refract = 72,
3772 FindILsb = 73,
3773 FindSMsb = 74,
3774 FindUMsb = 75,
3775 InterpolateAtCentroid = 76,
3776 InterpolateAtSample = 77,
3777 InterpolateAtOffset = 78,
3778 NMin = 79,
3779 NMax = 80,
3780 NClamp = 81,
3781};
3782
3783pub const Zig = enum(u16) {
3784 InvocationGlobal = 0,
3785};
3786pub const ImageOperands = packed struct {
3787 bias: bool = false,
3788 lod: bool = false,
3789 grad: bool = false,
3790 const_offset: bool = false,
3791 offset: bool = false,
3792 const_offsets: bool = false,
3793 sample: bool = false,
3794 min_lod: bool = false,
3795 make_texel_available: bool = false,
3796 make_texel_visible: bool = false,
3797 non_private_texel: bool = false,
3798 volatile_texel: bool = false,
3799 sign_extend: bool = false,
3800 zero_extend: bool = false,
3801 nontemporal: bool = false,
3802 _reserved_bit_15: bool = false,
3803 offsets: bool = false,
3804 _reserved_bit_17: bool = false,
3805 _reserved_bit_18: bool = false,
3806 _reserved_bit_19: bool = false,
3807 _reserved_bit_20: bool = false,
3808 _reserved_bit_21: bool = false,
3809 _reserved_bit_22: bool = false,
3810 _reserved_bit_23: bool = false,
3811 _reserved_bit_24: bool = false,
3812 _reserved_bit_25: bool = false,
3813 _reserved_bit_26: bool = false,
3814 _reserved_bit_27: bool = false,
3815 _reserved_bit_28: bool = false,
3816 _reserved_bit_29: bool = false,
3817 _reserved_bit_30: bool = false,
3818 _reserved_bit_31: bool = false,
3819
3820 pub const Extended = struct {
3821 bias: ?struct { id_ref: Id } = null,
3822 lod: ?struct { id_ref: Id } = null,
3823 grad: ?struct { id_ref_0: Id, id_ref_1: Id } = null,
3824 const_offset: ?struct { id_ref: Id } = null,
3825 offset: ?struct { id_ref: Id } = null,
3826 const_offsets: ?struct { id_ref: Id } = null,
3827 sample: ?struct { id_ref: Id } = null,
3828 min_lod: ?struct { id_ref: Id } = null,
3829 make_texel_available: ?struct { id_scope: Id } = null,
3830 make_texel_visible: ?struct { id_scope: Id } = null,
3831 non_private_texel: bool = false,
3832 volatile_texel: bool = false,
3833 sign_extend: bool = false,
3834 zero_extend: bool = false,
3835 nontemporal: bool = false,
3836 _reserved_bit_15: bool = false,
3837 offsets: ?struct { id_ref: Id } = null,
3838 _reserved_bit_17: bool = false,
3839 _reserved_bit_18: bool = false,
3840 _reserved_bit_19: bool = false,
3841 _reserved_bit_20: bool = false,
3842 _reserved_bit_21: bool = false,
3843 _reserved_bit_22: bool = false,
3844 _reserved_bit_23: bool = false,
3845 _reserved_bit_24: bool = false,
3846 _reserved_bit_25: bool = false,
3847 _reserved_bit_26: bool = false,
3848 _reserved_bit_27: bool = false,
3849 _reserved_bit_28: bool = false,
3850 _reserved_bit_29: bool = false,
3851 _reserved_bit_30: bool = false,
3852 _reserved_bit_31: bool = false,
3853 };
3854};
3855pub const FPFastMathMode = packed struct {
3856 not_na_n: bool = false,
3857 not_inf: bool = false,
3858 nsz: bool = false,
3859 allow_recip: bool = false,
3860 fast: bool = false,
3861 _reserved_bit_5: bool = false,
3862 _reserved_bit_6: bool = false,
3863 _reserved_bit_7: bool = false,
3864 _reserved_bit_8: bool = false,
3865 _reserved_bit_9: bool = false,
3866 _reserved_bit_10: bool = false,
3867 _reserved_bit_11: bool = false,
3868 _reserved_bit_12: bool = false,
3869 _reserved_bit_13: bool = false,
3870 _reserved_bit_14: bool = false,
3871 _reserved_bit_15: bool = false,
3872 allow_contract: bool = false,
3873 allow_reassoc: bool = false,
3874 allow_transform: bool = false,
3875 _reserved_bit_19: bool = false,
3876 _reserved_bit_20: bool = false,
3877 _reserved_bit_21: bool = false,
3878 _reserved_bit_22: bool = false,
3879 _reserved_bit_23: bool = false,
3880 _reserved_bit_24: bool = false,
3881 _reserved_bit_25: bool = false,
3882 _reserved_bit_26: bool = false,
3883 _reserved_bit_27: bool = false,
3884 _reserved_bit_28: bool = false,
3885 _reserved_bit_29: bool = false,
3886 _reserved_bit_30: bool = false,
3887 _reserved_bit_31: bool = false,
3888};
3889pub const SelectionControl = packed struct {
3890 flatten: bool = false,
3891 dont_flatten: bool = false,
3892 _reserved_bit_2: bool = false,
3893 _reserved_bit_3: bool = false,
3894 _reserved_bit_4: bool = false,
3895 _reserved_bit_5: bool = false,
3896 _reserved_bit_6: bool = false,
3897 _reserved_bit_7: bool = false,
3898 _reserved_bit_8: bool = false,
3899 _reserved_bit_9: bool = false,
3900 _reserved_bit_10: bool = false,
3901 _reserved_bit_11: bool = false,
3902 _reserved_bit_12: bool = false,
3903 _reserved_bit_13: bool = false,
3904 _reserved_bit_14: bool = false,
3905 _reserved_bit_15: bool = false,
3906 _reserved_bit_16: bool = false,
3907 _reserved_bit_17: bool = false,
3908 _reserved_bit_18: bool = false,
3909 _reserved_bit_19: bool = false,
3910 _reserved_bit_20: bool = false,
3911 _reserved_bit_21: bool = false,
3912 _reserved_bit_22: bool = false,
3913 _reserved_bit_23: bool = false,
3914 _reserved_bit_24: bool = false,
3915 _reserved_bit_25: bool = false,
3916 _reserved_bit_26: bool = false,
3917 _reserved_bit_27: bool = false,
3918 _reserved_bit_28: bool = false,
3919 _reserved_bit_29: bool = false,
3920 _reserved_bit_30: bool = false,
3921 _reserved_bit_31: bool = false,
3922};
3923pub const LoopControl = packed struct {
3924 unroll: bool = false,
3925 dont_unroll: bool = false,
3926 dependency_infinite: bool = false,
3927 dependency_length: bool = false,
3928 min_iterations: bool = false,
3929 max_iterations: bool = false,
3930 iteration_multiple: bool = false,
3931 peel_count: bool = false,
3932 partial_count: bool = false,
3933 _reserved_bit_9: bool = false,
3934 _reserved_bit_10: bool = false,
3935 _reserved_bit_11: bool = false,
3936 _reserved_bit_12: bool = false,
3937 _reserved_bit_13: bool = false,
3938 _reserved_bit_14: bool = false,
3939 _reserved_bit_15: bool = false,
3940 initiation_interval_altera: bool = false,
3941 max_concurrency_altera: bool = false,
3942 dependency_array_altera: bool = false,
3943 pipeline_enable_altera: bool = false,
3944 loop_coalesce_altera: bool = false,
3945 max_interleaving_altera: bool = false,
3946 speculated_iterations_altera: bool = false,
3947 no_fusion_altera: bool = false,
3948 loop_count_altera: bool = false,
3949 max_reinvocation_delay_altera: bool = false,
3950 _reserved_bit_26: bool = false,
3951 _reserved_bit_27: bool = false,
3952 _reserved_bit_28: bool = false,
3953 _reserved_bit_29: bool = false,
3954 _reserved_bit_30: bool = false,
3955 _reserved_bit_31: bool = false,
3956
3957 pub const Extended = struct {
3958 unroll: bool = false,
3959 dont_unroll: bool = false,
3960 dependency_infinite: bool = false,
3961 dependency_length: ?struct { literal_integer: LiteralInteger } = null,
3962 min_iterations: ?struct { literal_integer: LiteralInteger } = null,
3963 max_iterations: ?struct { literal_integer: LiteralInteger } = null,
3964 iteration_multiple: ?struct { literal_integer: LiteralInteger } = null,
3965 peel_count: ?struct { literal_integer: LiteralInteger } = null,
3966 partial_count: ?struct { literal_integer: LiteralInteger } = null,
3967 _reserved_bit_9: bool = false,
3968 _reserved_bit_10: bool = false,
3969 _reserved_bit_11: bool = false,
3970 _reserved_bit_12: bool = false,
3971 _reserved_bit_13: bool = false,
3972 _reserved_bit_14: bool = false,
3973 _reserved_bit_15: bool = false,
3974 initiation_interval_altera: ?struct { literal_integer: LiteralInteger } = null,
3975 max_concurrency_altera: ?struct { literal_integer: LiteralInteger } = null,
3976 dependency_array_altera: ?struct { literal_integer: LiteralInteger } = null,
3977 pipeline_enable_altera: ?struct { literal_integer: LiteralInteger } = null,
3978 loop_coalesce_altera: ?struct { literal_integer: LiteralInteger } = null,
3979 max_interleaving_altera: ?struct { literal_integer: LiteralInteger } = null,
3980 speculated_iterations_altera: ?struct { literal_integer: LiteralInteger } = null,
3981 no_fusion_altera: bool = false,
3982 loop_count_altera: ?struct { literal_integer: LiteralInteger } = null,
3983 max_reinvocation_delay_altera: ?struct { literal_integer: LiteralInteger } = null,
3984 _reserved_bit_26: bool = false,
3985 _reserved_bit_27: bool = false,
3986 _reserved_bit_28: bool = false,
3987 _reserved_bit_29: bool = false,
3988 _reserved_bit_30: bool = false,
3989 _reserved_bit_31: bool = false,
3990 };
3991};
3992pub const FunctionControl = packed struct {
3993 @"inline": bool = false,
3994 dont_inline: bool = false,
3995 pure: bool = false,
3996 @"const": bool = false,
3997 _reserved_bit_4: bool = false,
3998 _reserved_bit_5: bool = false,
3999 _reserved_bit_6: bool = false,
4000 _reserved_bit_7: bool = false,
4001 _reserved_bit_8: bool = false,
4002 _reserved_bit_9: bool = false,
4003 _reserved_bit_10: bool = false,
4004 _reserved_bit_11: bool = false,
4005 _reserved_bit_12: bool = false,
4006 _reserved_bit_13: bool = false,
4007 _reserved_bit_14: bool = false,
4008 _reserved_bit_15: bool = false,
4009 opt_none_ext: bool = false,
4010 _reserved_bit_17: bool = false,
4011 _reserved_bit_18: bool = false,
4012 _reserved_bit_19: bool = false,
4013 _reserved_bit_20: bool = false,
4014 _reserved_bit_21: bool = false,
4015 _reserved_bit_22: bool = false,
4016 _reserved_bit_23: bool = false,
4017 _reserved_bit_24: bool = false,
4018 _reserved_bit_25: bool = false,
4019 _reserved_bit_26: bool = false,
4020 _reserved_bit_27: bool = false,
4021 _reserved_bit_28: bool = false,
4022 _reserved_bit_29: bool = false,
4023 _reserved_bit_30: bool = false,
4024 _reserved_bit_31: bool = false,
4025};
4026pub const MemorySemantics = packed struct {
4027 _reserved_bit_0: bool = false,
4028 acquire: bool = false,
4029 release: bool = false,
4030 acquire_release: bool = false,
4031 sequentially_consistent: bool = false,
4032 _reserved_bit_5: bool = false,
4033 uniform_memory: bool = false,
4034 subgroup_memory: bool = false,
4035 workgroup_memory: bool = false,
4036 cross_workgroup_memory: bool = false,
4037 atomic_counter_memory: bool = false,
4038 image_memory: bool = false,
4039 output_memory: bool = false,
4040 make_available: bool = false,
4041 make_visible: bool = false,
4042 @"volatile": bool = false,
4043 _reserved_bit_16: bool = false,
4044 _reserved_bit_17: bool = false,
4045 _reserved_bit_18: bool = false,
4046 _reserved_bit_19: bool = false,
4047 _reserved_bit_20: bool = false,
4048 _reserved_bit_21: bool = false,
4049 _reserved_bit_22: bool = false,
4050 _reserved_bit_23: bool = false,
4051 _reserved_bit_24: bool = false,
4052 _reserved_bit_25: bool = false,
4053 _reserved_bit_26: bool = false,
4054 _reserved_bit_27: bool = false,
4055 _reserved_bit_28: bool = false,
4056 _reserved_bit_29: bool = false,
4057 _reserved_bit_30: bool = false,
4058 _reserved_bit_31: bool = false,
4059};
4060pub const MemoryAccess = packed struct {
4061 @"volatile": bool = false,
4062 aligned: bool = false,
4063 nontemporal: bool = false,
4064 make_pointer_available: bool = false,
4065 make_pointer_visible: bool = false,
4066 non_private_pointer: bool = false,
4067 _reserved_bit_6: bool = false,
4068 _reserved_bit_7: bool = false,
4069 _reserved_bit_8: bool = false,
4070 _reserved_bit_9: bool = false,
4071 _reserved_bit_10: bool = false,
4072 _reserved_bit_11: bool = false,
4073 _reserved_bit_12: bool = false,
4074 _reserved_bit_13: bool = false,
4075 _reserved_bit_14: bool = false,
4076 _reserved_bit_15: bool = false,
4077 alias_scope_intel_mask: bool = false,
4078 no_alias_intel_mask: bool = false,
4079 _reserved_bit_18: bool = false,
4080 _reserved_bit_19: bool = false,
4081 _reserved_bit_20: bool = false,
4082 _reserved_bit_21: bool = false,
4083 _reserved_bit_22: bool = false,
4084 _reserved_bit_23: bool = false,
4085 _reserved_bit_24: bool = false,
4086 _reserved_bit_25: bool = false,
4087 _reserved_bit_26: bool = false,
4088 _reserved_bit_27: bool = false,
4089 _reserved_bit_28: bool = false,
4090 _reserved_bit_29: bool = false,
4091 _reserved_bit_30: bool = false,
4092 _reserved_bit_31: bool = false,
4093
4094 pub const Extended = struct {
4095 @"volatile": bool = false,
4096 aligned: ?struct { literal_integer: LiteralInteger } = null,
4097 nontemporal: bool = false,
4098 make_pointer_available: ?struct { id_scope: Id } = null,
4099 make_pointer_visible: ?struct { id_scope: Id } = null,
4100 non_private_pointer: bool = false,
4101 _reserved_bit_6: bool = false,
4102 _reserved_bit_7: bool = false,
4103 _reserved_bit_8: bool = false,
4104 _reserved_bit_9: bool = false,
4105 _reserved_bit_10: bool = false,
4106 _reserved_bit_11: bool = false,
4107 _reserved_bit_12: bool = false,
4108 _reserved_bit_13: bool = false,
4109 _reserved_bit_14: bool = false,
4110 _reserved_bit_15: bool = false,
4111 alias_scope_intel_mask: ?struct { id_ref: Id } = null,
4112 no_alias_intel_mask: ?struct { id_ref: Id } = null,
4113 _reserved_bit_18: bool = false,
4114 _reserved_bit_19: bool = false,
4115 _reserved_bit_20: bool = false,
4116 _reserved_bit_21: bool = false,
4117 _reserved_bit_22: bool = false,
4118 _reserved_bit_23: bool = false,
4119 _reserved_bit_24: bool = false,
4120 _reserved_bit_25: bool = false,
4121 _reserved_bit_26: bool = false,
4122 _reserved_bit_27: bool = false,
4123 _reserved_bit_28: bool = false,
4124 _reserved_bit_29: bool = false,
4125 _reserved_bit_30: bool = false,
4126 _reserved_bit_31: bool = false,
4127 };
4128};
4129pub const KernelProfilingInfo = packed struct {
4130 cmd_exec_time: bool = false,
4131 _reserved_bit_1: bool = false,
4132 _reserved_bit_2: bool = false,
4133 _reserved_bit_3: bool = false,
4134 _reserved_bit_4: bool = false,
4135 _reserved_bit_5: bool = false,
4136 _reserved_bit_6: bool = false,
4137 _reserved_bit_7: bool = false,
4138 _reserved_bit_8: bool = false,
4139 _reserved_bit_9: bool = false,
4140 _reserved_bit_10: bool = false,
4141 _reserved_bit_11: bool = false,
4142 _reserved_bit_12: bool = false,
4143 _reserved_bit_13: bool = false,
4144 _reserved_bit_14: bool = false,
4145 _reserved_bit_15: bool = false,
4146 _reserved_bit_16: bool = false,
4147 _reserved_bit_17: bool = false,
4148 _reserved_bit_18: bool = false,
4149 _reserved_bit_19: bool = false,
4150 _reserved_bit_20: bool = false,
4151 _reserved_bit_21: bool = false,
4152 _reserved_bit_22: bool = false,
4153 _reserved_bit_23: bool = false,
4154 _reserved_bit_24: bool = false,
4155 _reserved_bit_25: bool = false,
4156 _reserved_bit_26: bool = false,
4157 _reserved_bit_27: bool = false,
4158 _reserved_bit_28: bool = false,
4159 _reserved_bit_29: bool = false,
4160 _reserved_bit_30: bool = false,
4161 _reserved_bit_31: bool = false,
4162};
4163pub const RayFlags = packed struct {
4164 opaque_khr: bool = false,
4165 no_opaque_khr: bool = false,
4166 terminate_on_first_hit_khr: bool = false,
4167 skip_closest_hit_shader_khr: bool = false,
4168 cull_back_facing_triangles_khr: bool = false,
4169 cull_front_facing_triangles_khr: bool = false,
4170 cull_opaque_khr: bool = false,
4171 cull_no_opaque_khr: bool = false,
4172 skip_triangles_khr: bool = false,
4173 skip_aab_bs_khr: bool = false,
4174 force_opacity_micromap2state_ext: bool = false,
4175 _reserved_bit_11: bool = false,
4176 _reserved_bit_12: bool = false,
4177 _reserved_bit_13: bool = false,
4178 _reserved_bit_14: bool = false,
4179 _reserved_bit_15: bool = false,
4180 _reserved_bit_16: bool = false,
4181 _reserved_bit_17: bool = false,
4182 _reserved_bit_18: bool = false,
4183 _reserved_bit_19: bool = false,
4184 _reserved_bit_20: bool = false,
4185 _reserved_bit_21: bool = false,
4186 _reserved_bit_22: bool = false,
4187 _reserved_bit_23: bool = false,
4188 _reserved_bit_24: bool = false,
4189 _reserved_bit_25: bool = false,
4190 _reserved_bit_26: bool = false,
4191 _reserved_bit_27: bool = false,
4192 _reserved_bit_28: bool = false,
4193 _reserved_bit_29: bool = false,
4194 _reserved_bit_30: bool = false,
4195 _reserved_bit_31: bool = false,
4196};
4197pub const FragmentShadingRate = packed struct {
4198 vertical2pixels: bool = false,
4199 vertical4pixels: bool = false,
4200 horizontal2pixels: bool = false,
4201 horizontal4pixels: bool = false,
4202 _reserved_bit_4: bool = false,
4203 _reserved_bit_5: bool = false,
4204 _reserved_bit_6: bool = false,
4205 _reserved_bit_7: bool = false,
4206 _reserved_bit_8: bool = false,
4207 _reserved_bit_9: bool = false,
4208 _reserved_bit_10: bool = false,
4209 _reserved_bit_11: bool = false,
4210 _reserved_bit_12: bool = false,
4211 _reserved_bit_13: bool = false,
4212 _reserved_bit_14: bool = false,
4213 _reserved_bit_15: bool = false,
4214 _reserved_bit_16: bool = false,
4215 _reserved_bit_17: bool = false,
4216 _reserved_bit_18: bool = false,
4217 _reserved_bit_19: bool = false,
4218 _reserved_bit_20: bool = false,
4219 _reserved_bit_21: bool = false,
4220 _reserved_bit_22: bool = false,
4221 _reserved_bit_23: bool = false,
4222 _reserved_bit_24: bool = false,
4223 _reserved_bit_25: bool = false,
4224 _reserved_bit_26: bool = false,
4225 _reserved_bit_27: bool = false,
4226 _reserved_bit_28: bool = false,
4227 _reserved_bit_29: bool = false,
4228 _reserved_bit_30: bool = false,
4229 _reserved_bit_31: bool = false,
4230};
4231pub const RawAccessChainOperands = packed struct {
4232 robustness_per_component_nv: bool = false,
4233 robustness_per_element_nv: bool = false,
4234 _reserved_bit_2: bool = false,
4235 _reserved_bit_3: bool = false,
4236 _reserved_bit_4: bool = false,
4237 _reserved_bit_5: bool = false,
4238 _reserved_bit_6: bool = false,
4239 _reserved_bit_7: bool = false,
4240 _reserved_bit_8: bool = false,
4241 _reserved_bit_9: bool = false,
4242 _reserved_bit_10: bool = false,
4243 _reserved_bit_11: bool = false,
4244 _reserved_bit_12: bool = false,
4245 _reserved_bit_13: bool = false,
4246 _reserved_bit_14: bool = false,
4247 _reserved_bit_15: bool = false,
4248 _reserved_bit_16: bool = false,
4249 _reserved_bit_17: bool = false,
4250 _reserved_bit_18: bool = false,
4251 _reserved_bit_19: bool = false,
4252 _reserved_bit_20: bool = false,
4253 _reserved_bit_21: bool = false,
4254 _reserved_bit_22: bool = false,
4255 _reserved_bit_23: bool = false,
4256 _reserved_bit_24: bool = false,
4257 _reserved_bit_25: bool = false,
4258 _reserved_bit_26: bool = false,
4259 _reserved_bit_27: bool = false,
4260 _reserved_bit_28: bool = false,
4261 _reserved_bit_29: bool = false,
4262 _reserved_bit_30: bool = false,
4263 _reserved_bit_31: bool = false,
4264};
4265pub const SourceLanguage = enum(u32) {
4266 unknown = 0,
4267 essl = 1,
4268 glsl = 2,
4269 open_cl_c = 3,
4270 open_cl_cpp = 4,
4271 hlsl = 5,
4272 cpp_for_open_cl = 6,
4273 sycl = 7,
4274 hero_c = 8,
4275 nzsl = 9,
4276 wgsl = 10,
4277 slang = 11,
4278 zig = 12,
4279 rust = 13,
4280};
4281pub const ExecutionModel = enum(u32) {
4282 vertex = 0,
4283 tessellation_control = 1,
4284 tessellation_evaluation = 2,
4285 geometry = 3,
4286 fragment = 4,
4287 gl_compute = 5,
4288 kernel = 6,
4289 task_nv = 5267,
4290 mesh_nv = 5268,
4291 ray_generation_khr = 5313,
4292 intersection_khr = 5314,
4293 any_hit_khr = 5315,
4294 closest_hit_khr = 5316,
4295 miss_khr = 5317,
4296 callable_khr = 5318,
4297 task_ext = 5364,
4298 mesh_ext = 5365,
4299};
4300pub const AddressingModel = enum(u32) {
4301 logical = 0,
4302 physical32 = 1,
4303 physical64 = 2,
4304 physical_storage_buffer64 = 5348,
4305};
4306pub const MemoryModel = enum(u32) {
4307 simple = 0,
4308 glsl450 = 1,
4309 open_cl = 2,
4310 vulkan = 3,
4311};
4312pub const ExecutionMode = enum(u32) {
4313 invocations = 0,
4314 spacing_equal = 1,
4315 spacing_fractional_even = 2,
4316 spacing_fractional_odd = 3,
4317 vertex_order_cw = 4,
4318 vertex_order_ccw = 5,
4319 pixel_center_integer = 6,
4320 origin_upper_left = 7,
4321 origin_lower_left = 8,
4322 early_fragment_tests = 9,
4323 point_mode = 10,
4324 xfb = 11,
4325 depth_replacing = 12,
4326 depth_greater = 14,
4327 depth_less = 15,
4328 depth_unchanged = 16,
4329 local_size = 17,
4330 local_size_hint = 18,
4331 input_points = 19,
4332 input_lines = 20,
4333 input_lines_adjacency = 21,
4334 triangles = 22,
4335 input_triangles_adjacency = 23,
4336 quads = 24,
4337 isolines = 25,
4338 output_vertices = 26,
4339 output_points = 27,
4340 output_line_strip = 28,
4341 output_triangle_strip = 29,
4342 vec_type_hint = 30,
4343 contraction_off = 31,
4344 initializer = 33,
4345 finalizer = 34,
4346 subgroup_size = 35,
4347 subgroups_per_workgroup = 36,
4348 subgroups_per_workgroup_id = 37,
4349 local_size_id = 38,
4350 local_size_hint_id = 39,
4351 non_coherent_color_attachment_read_ext = 4169,
4352 non_coherent_depth_attachment_read_ext = 4170,
4353 non_coherent_stencil_attachment_read_ext = 4171,
4354 subgroup_uniform_control_flow_khr = 4421,
4355 post_depth_coverage = 4446,
4356 denorm_preserve = 4459,
4357 denorm_flush_to_zero = 4460,
4358 signed_zero_inf_nan_preserve = 4461,
4359 rounding_mode_rte = 4462,
4360 rounding_mode_rtz = 4463,
4361 non_coherent_tile_attachment_read_qcom = 4489,
4362 tile_shading_rate_qcom = 4490,
4363 early_and_late_fragment_tests_amd = 5017,
4364 stencil_ref_replacing_ext = 5027,
4365 coalescing_amdx = 5069,
4366 is_api_entry_amdx = 5070,
4367 max_node_recursion_amdx = 5071,
4368 static_num_workgroups_amdx = 5072,
4369 shader_index_amdx = 5073,
4370 max_num_workgroups_amdx = 5077,
4371 stencil_ref_unchanged_front_amd = 5079,
4372 stencil_ref_greater_front_amd = 5080,
4373 stencil_ref_less_front_amd = 5081,
4374 stencil_ref_unchanged_back_amd = 5082,
4375 stencil_ref_greater_back_amd = 5083,
4376 stencil_ref_less_back_amd = 5084,
4377 quad_derivatives_khr = 5088,
4378 require_full_quads_khr = 5089,
4379 shares_input_with_amdx = 5102,
4380 arithmetic_poison_khr = 5157,
4381 output_lines_ext = 5269,
4382 output_primitives_ext = 5270,
4383 derivative_group_quads_khr = 5289,
4384 derivative_group_linear_khr = 5290,
4385 output_triangles_ext = 5298,
4386 pixel_interlock_ordered_ext = 5366,
4387 pixel_interlock_unordered_ext = 5367,
4388 sample_interlock_ordered_ext = 5368,
4389 sample_interlock_unordered_ext = 5369,
4390 shading_rate_interlock_ordered_ext = 5370,
4391 shading_rate_interlock_unordered_ext = 5371,
4392 shader64bit_indexing_ext = 5427,
4393 shared_local_memory_size_intel = 5618,
4394 rounding_mode_rtpintel = 5620,
4395 rounding_mode_rtnintel = 5621,
4396 floating_point_mode_altintel = 5622,
4397 floating_point_mode_ieeeintel = 5623,
4398 max_workgroup_size_intel = 5893,
4399 max_work_dim_intel = 5894,
4400 no_global_offset_intel = 5895,
4401 num_simd_workitems_intel = 5896,
4402 scheduler_target_fmax_mhz_intel = 5903,
4403 maximally_reconverges_khr = 6023,
4404 fp_fast_math_default = 6028,
4405 streaming_interface_intel = 6154,
4406 register_map_interface_intel = 6160,
4407 named_barrier_count_intel = 6417,
4408 maximum_registers_intel = 6461,
4409 maximum_registers_id_intel = 6462,
4410 named_maximum_registers_intel = 6463,
4411
4412 pub const Extended = union(ExecutionMode) {
4413 invocations: struct { literal_integer: LiteralInteger },
4414 spacing_equal,
4415 spacing_fractional_even,
4416 spacing_fractional_odd,
4417 vertex_order_cw,
4418 vertex_order_ccw,
4419 pixel_center_integer,
4420 origin_upper_left,
4421 origin_lower_left,
4422 early_fragment_tests,
4423 point_mode,
4424 xfb,
4425 depth_replacing,
4426 depth_greater,
4427 depth_less,
4428 depth_unchanged,
4429 local_size: struct { x_size: LiteralInteger, y_size: LiteralInteger, z_size: LiteralInteger },
4430 local_size_hint: struct { x_size: LiteralInteger, y_size: LiteralInteger, z_size: LiteralInteger },
4431 input_points,
4432 input_lines,
4433 input_lines_adjacency,
4434 triangles,
4435 input_triangles_adjacency,
4436 quads,
4437 isolines,
4438 output_vertices: struct { vertex_count: LiteralInteger },
4439 output_points,
4440 output_line_strip,
4441 output_triangle_strip,
4442 vec_type_hint: struct { vector_type: LiteralInteger },
4443 contraction_off,
4444 initializer,
4445 finalizer,
4446 subgroup_size: struct { subgroup_size: LiteralInteger },
4447 subgroups_per_workgroup: struct { subgroups_per_workgroup: LiteralInteger },
4448 subgroups_per_workgroup_id: struct { subgroups_per_workgroup: Id },
4449 local_size_id: struct { x_size: Id, y_size: Id, z_size: Id },
4450 local_size_hint_id: struct { x_size_hint: Id, y_size_hint: Id, z_size_hint: Id },
4451 non_coherent_color_attachment_read_ext,
4452 non_coherent_depth_attachment_read_ext,
4453 non_coherent_stencil_attachment_read_ext,
4454 subgroup_uniform_control_flow_khr,
4455 post_depth_coverage,
4456 denorm_preserve: struct { target_width: LiteralInteger },
4457 denorm_flush_to_zero: struct { target_width: LiteralInteger },
4458 signed_zero_inf_nan_preserve: struct { target_width: LiteralInteger },
4459 rounding_mode_rte: struct { target_width: LiteralInteger },
4460 rounding_mode_rtz: struct { target_width: LiteralInteger },
4461 non_coherent_tile_attachment_read_qcom,
4462 tile_shading_rate_qcom: struct { x_rate: LiteralInteger, y_rate: LiteralInteger, z_rate: LiteralInteger },
4463 early_and_late_fragment_tests_amd,
4464 stencil_ref_replacing_ext,
4465 coalescing_amdx,
4466 is_api_entry_amdx: struct { is_entry: Id },
4467 max_node_recursion_amdx: struct { number_of_recursions: Id },
4468 static_num_workgroups_amdx: struct { x_size: Id, y_size: Id, z_size: Id },
4469 shader_index_amdx: struct { shader_index: Id },
4470 max_num_workgroups_amdx: struct { x_size: Id, y_size: Id, z_size: Id },
4471 stencil_ref_unchanged_front_amd,
4472 stencil_ref_greater_front_amd,
4473 stencil_ref_less_front_amd,
4474 stencil_ref_unchanged_back_amd,
4475 stencil_ref_greater_back_amd,
4476 stencil_ref_less_back_amd,
4477 quad_derivatives_khr,
4478 require_full_quads_khr,
4479 shares_input_with_amdx: struct { node_name: Id, shader_index: Id },
4480 arithmetic_poison_khr,
4481 output_lines_ext,
4482 output_primitives_ext: struct { primitive_count: LiteralInteger },
4483 derivative_group_quads_khr,
4484 derivative_group_linear_khr,
4485 output_triangles_ext,
4486 pixel_interlock_ordered_ext,
4487 pixel_interlock_unordered_ext,
4488 sample_interlock_ordered_ext,
4489 sample_interlock_unordered_ext,
4490 shading_rate_interlock_ordered_ext,
4491 shading_rate_interlock_unordered_ext,
4492 shader64bit_indexing_ext,
4493 shared_local_memory_size_intel: struct { size: LiteralInteger },
4494 rounding_mode_rtpintel: struct { target_width: LiteralInteger },
4495 rounding_mode_rtnintel: struct { target_width: LiteralInteger },
4496 floating_point_mode_altintel: struct { target_width: LiteralInteger },
4497 floating_point_mode_ieeeintel: struct { target_width: LiteralInteger },
4498 max_workgroup_size_intel: struct { literal_integer_0: LiteralInteger, literal_integer_1: LiteralInteger, literal_integer_2: LiteralInteger },
4499 max_work_dim_intel: struct { literal_integer: LiteralInteger },
4500 no_global_offset_intel,
4501 num_simd_workitems_intel: struct { literal_integer: LiteralInteger },
4502 scheduler_target_fmax_mhz_intel: struct { literal_integer: LiteralInteger },
4503 maximally_reconverges_khr,
4504 fp_fast_math_default: struct { target_type: Id, id_ref_1: Id },
4505 streaming_interface_intel: struct { stall_free_return: LiteralInteger },
4506 register_map_interface_intel: struct { wait_for_done_write: LiteralInteger },
4507 named_barrier_count_intel: struct { barrier_count: LiteralInteger },
4508 maximum_registers_intel: struct { number_of_registers: LiteralInteger },
4509 maximum_registers_id_intel: struct { number_of_registers: Id },
4510 named_maximum_registers_intel: struct { named_maximum_number_of_registers: NamedMaximumNumberOfRegisters },
4511 };
4512};
4513pub const StorageClass = enum(u32) {
4514 uniform_constant = 0,
4515 input = 1,
4516 uniform = 2,
4517 output = 3,
4518 workgroup = 4,
4519 cross_workgroup = 5,
4520 private = 6,
4521 function = 7,
4522 generic = 8,
4523 push_constant = 9,
4524 atomic_counter = 10,
4525 image = 11,
4526 storage_buffer = 12,
4527 tile_image_ext = 4172,
4528 tile_attachment_qcom = 4491,
4529 node_payload_amdx = 5068,
4530 callable_data_khr = 5328,
4531 incoming_callable_data_khr = 5329,
4532 ray_payload_khr = 5338,
4533 hit_attribute_khr = 5339,
4534 incoming_ray_payload_khr = 5342,
4535 shader_record_buffer_khr = 5343,
4536 physical_storage_buffer = 5349,
4537 hit_object_attribute_nv = 5385,
4538 task_payload_workgroup_ext = 5402,
4539 hit_object_attribute_ext = 5411,
4540 code_section_intel = 5605,
4541 device_only_altera = 5936,
4542 host_only_altera = 5937,
4543};
4544pub const Dim = enum(u32) {
4545 @"1d" = 0,
4546 @"2d" = 1,
4547 @"3d" = 2,
4548 cube = 3,
4549 rect = 4,
4550 buffer = 5,
4551 subpass_data = 6,
4552 tile_image_data_ext = 4173,
4553};
4554pub const SamplerAddressingMode = enum(u32) {
4555 none = 0,
4556 clamp_to_edge = 1,
4557 clamp = 2,
4558 repeat = 3,
4559 repeat_mirrored = 4,
4560};
4561pub const SamplerFilterMode = enum(u32) {
4562 nearest = 0,
4563 linear = 1,
4564};
4565pub const ImageFormat = enum(u32) {
4566 unknown = 0,
4567 rgba32f = 1,
4568 rgba16f = 2,
4569 r32f = 3,
4570 rgba8 = 4,
4571 rgba8snorm = 5,
4572 rg32f = 6,
4573 rg16f = 7,
4574 r11f_g11f_b10f = 8,
4575 r16f = 9,
4576 rgba16 = 10,
4577 rgb10a2 = 11,
4578 rg16 = 12,
4579 rg8 = 13,
4580 r16 = 14,
4581 r8 = 15,
4582 rgba16snorm = 16,
4583 rg16snorm = 17,
4584 rg8snorm = 18,
4585 r16snorm = 19,
4586 r8snorm = 20,
4587 rgba32i = 21,
4588 rgba16i = 22,
4589 rgba8i = 23,
4590 r32i = 24,
4591 rg32i = 25,
4592 rg16i = 26,
4593 rg8i = 27,
4594 r16i = 28,
4595 r8i = 29,
4596 rgba32ui = 30,
4597 rgba16ui = 31,
4598 rgba8ui = 32,
4599 r32ui = 33,
4600 rgb10a2ui = 34,
4601 rg32ui = 35,
4602 rg16ui = 36,
4603 rg8ui = 37,
4604 r16ui = 38,
4605 r8ui = 39,
4606 r64ui = 40,
4607 r64i = 41,
4608};
4609pub const ImageChannelOrder = enum(u32) {
4610 r = 0,
4611 a = 1,
4612 rg = 2,
4613 ra = 3,
4614 rgb = 4,
4615 rgba = 5,
4616 bgra = 6,
4617 argb = 7,
4618 intensity = 8,
4619 luminance = 9,
4620 rx = 10,
4621 r_gx = 11,
4622 rg_bx = 12,
4623 depth = 13,
4624 depth_stencil = 14,
4625 s_rgb = 15,
4626 s_rg_bx = 16,
4627 s_rgba = 17,
4628 s_bgra = 18,
4629 abgr = 19,
4630};
4631pub const ImageChannelDataType = enum(u32) {
4632 snorm_int8 = 0,
4633 snorm_int16 = 1,
4634 unorm_int8 = 2,
4635 unorm_int16 = 3,
4636 unorm_short565 = 4,
4637 unorm_short555 = 5,
4638 unorm_int101010 = 6,
4639 signed_int8 = 7,
4640 signed_int16 = 8,
4641 signed_int32 = 9,
4642 unsigned_int8 = 10,
4643 unsigned_int16 = 11,
4644 unsigned_int32 = 12,
4645 half_float = 13,
4646 float = 14,
4647 unorm_int24 = 15,
4648 unorm_int101010_2 = 16,
4649 unorm_int10x6ext = 17,
4650 unsigned_int_raw10ext = 19,
4651 unsigned_int_raw12ext = 20,
4652 unorm_int2_101010ext = 21,
4653 unsigned_int10x6ext = 22,
4654 unsigned_int12x4ext = 23,
4655 unsigned_int14x2ext = 24,
4656 unorm_int12x4ext = 25,
4657 unorm_int14x2ext = 26,
4658};
4659pub const FPRoundingMode = enum(u32) {
4660 rte = 0,
4661 rtz = 1,
4662 rtp = 2,
4663 rtn = 3,
4664};
4665pub const FPDenormMode = enum(u32) {
4666 preserve = 0,
4667 flush_to_zero = 1,
4668};
4669pub const QuantizationModes = enum(u32) {
4670 trn = 0,
4671 trn_zero = 1,
4672 rnd = 2,
4673 rnd_zero = 3,
4674 rnd_inf = 4,
4675 rnd_min_inf = 5,
4676 rnd_conv = 6,
4677 rnd_conv_odd = 7,
4678};
4679pub const FPOperationMode = enum(u32) {
4680 ieee = 0,
4681 alt = 1,
4682};
4683pub const OverflowModes = enum(u32) {
4684 wrap = 0,
4685 sat = 1,
4686 sat_zero = 2,
4687 sat_sym = 3,
4688};
4689pub const LinkageType = enum(u32) {
4690 @"export" = 0,
4691 import = 1,
4692 link_once_odr = 2,
4693};
4694pub const AccessQualifier = enum(u32) {
4695 read_only = 0,
4696 write_only = 1,
4697 read_write = 2,
4698};
4699pub const HostAccessQualifier = enum(u32) {
4700 none_intel = 0,
4701 read_intel = 1,
4702 write_intel = 2,
4703 read_write_intel = 3,
4704};
4705pub const FunctionParameterAttribute = enum(u32) {
4706 zext = 0,
4707 sext = 1,
4708 by_val = 2,
4709 sret = 3,
4710 no_alias = 4,
4711 no_capture = 5,
4712 no_write = 6,
4713 no_read_write = 7,
4714 runtime_aligned_altera = 5940,
4715};
4716pub const Decoration = enum(u32) {
4717 relaxed_precision = 0,
4718 spec_id = 1,
4719 block = 2,
4720 buffer_block = 3,
4721 row_major = 4,
4722 col_major = 5,
4723 array_stride = 6,
4724 matrix_stride = 7,
4725 glsl_shared = 8,
4726 glsl_packed = 9,
4727 c_packed = 10,
4728 built_in = 11,
4729 no_perspective = 13,
4730 flat = 14,
4731 patch = 15,
4732 centroid = 16,
4733 sample = 17,
4734 invariant = 18,
4735 restrict = 19,
4736 aliased = 20,
4737 @"volatile" = 21,
4738 constant = 22,
4739 coherent = 23,
4740 non_writable = 24,
4741 non_readable = 25,
4742 uniform = 26,
4743 uniform_id = 27,
4744 saturated_conversion = 28,
4745 stream = 29,
4746 location = 30,
4747 component = 31,
4748 index = 32,
4749 binding = 33,
4750 descriptor_set = 34,
4751 offset = 35,
4752 xfb_buffer = 36,
4753 xfb_stride = 37,
4754 func_param_attr = 38,
4755 fp_rounding_mode = 39,
4756 fp_fast_math_mode = 40,
4757 linkage_attributes = 41,
4758 no_contraction = 42,
4759 input_attachment_index = 43,
4760 alignment = 44,
4761 max_byte_offset = 45,
4762 alignment_id = 46,
4763 max_byte_offset_id = 47,
4764 saturated_to_largest_float8normal_conversion_ext = 4216,
4765 no_signed_wrap = 4469,
4766 no_unsigned_wrap = 4470,
4767 weight_texture_qcom = 4487,
4768 block_match_texture_qcom = 4488,
4769 block_match_sampler_qcom = 4499,
4770 explicit_interp_amd = 4999,
4771 node_shares_payload_limits_with_amdx = 5019,
4772 node_max_payloads_amdx = 5020,
4773 track_finish_writing_amdx = 5078,
4774 payload_node_name_amdx = 5091,
4775 payload_node_base_index_amdx = 5098,
4776 payload_node_sparse_array_amdx = 5099,
4777 payload_node_array_size_amdx = 5100,
4778 payload_dispatch_indirect_amdx = 5105,
4779 array_stride_id_ext = 5124,
4780 offset_id_ext = 5125,
4781 utf_encoded_khr = 5145,
4782 override_coverage_nv = 5248,
4783 passthrough_nv = 5250,
4784 viewport_relative_nv = 5252,
4785 secondary_viewport_relative_nv = 5256,
4786 per_primitive_ext = 5271,
4787 per_view_nv = 5272,
4788 per_task_nv = 5273,
4789 per_vertex_khr = 5285,
4790 non_uniform = 5300,
4791 restrict_pointer = 5355,
4792 aliased_pointer = 5356,
4793 member_offset_nv = 5358,
4794 hit_object_shader_record_buffer_nv = 5386,
4795 hit_object_shader_record_buffer_ext = 5389,
4796 bank_nv = 5397,
4797 bindless_sampler_nv = 5398,
4798 bindless_image_nv = 5399,
4799 bound_sampler_nv = 5400,
4800 bound_image_nv = 5401,
4801 simt_call_intel = 5599,
4802 referenced_indirectly_intel = 5602,
4803 clobber_intel = 5607,
4804 side_effects_intel = 5608,
4805 vector_compute_variable_intel = 5624,
4806 func_param_io_kind_intel = 5625,
4807 vector_compute_function_intel = 5626,
4808 stack_call_intel = 5627,
4809 global_variable_offset_intel = 5628,
4810 counter_buffer = 5634,
4811 user_semantic = 5635,
4812 user_type_google = 5636,
4813 function_rounding_mode_intel = 5822,
4814 function_denorm_mode_intel = 5823,
4815 register_altera = 5825,
4816 memory_altera = 5826,
4817 numbanks_altera = 5827,
4818 bankwidth_altera = 5828,
4819 max_private_copies_altera = 5829,
4820 singlepump_altera = 5830,
4821 doublepump_altera = 5831,
4822 max_replicates_altera = 5832,
4823 simple_dual_port_altera = 5833,
4824 merge_altera = 5834,
4825 bank_bits_altera = 5835,
4826 force_pow2depth_altera = 5836,
4827 stridesize_altera = 5883,
4828 wordsize_altera = 5884,
4829 true_dual_port_altera = 5885,
4830 burst_coalesce_altera = 5899,
4831 cache_size_altera = 5900,
4832 dont_statically_coalesce_altera = 5901,
4833 prefetch_altera = 5902,
4834 stall_enable_altera = 5905,
4835 fuse_loops_in_function_altera = 5907,
4836 math_op_dsp_mode_altera = 5909,
4837 alias_scope_intel = 5914,
4838 no_alias_intel = 5915,
4839 initiation_interval_altera = 5917,
4840 max_concurrency_altera = 5918,
4841 pipeline_enable_altera = 5919,
4842 buffer_location_altera = 5921,
4843 io_pipe_storage_altera = 5944,
4844 function_floating_point_mode_intel = 6080,
4845 single_element_vector_intel = 6085,
4846 vector_compute_callable_function_intel = 6087,
4847 media_block_iointel = 6140,
4848 stall_free_altera = 6151,
4849 fp_max_error_decoration_intel = 6170,
4850 latency_control_label_altera = 6172,
4851 latency_control_constraint_altera = 6173,
4852 conduit_kernel_argument_altera = 6175,
4853 register_map_kernel_argument_altera = 6176,
4854 mm_host_interface_address_width_altera = 6177,
4855 mm_host_interface_data_width_altera = 6178,
4856 mm_host_interface_latency_altera = 6179,
4857 mm_host_interface_read_write_mode_altera = 6180,
4858 mm_host_interface_max_burst_altera = 6181,
4859 mm_host_interface_wait_request_altera = 6182,
4860 stable_kernel_argument_altera = 6183,
4861 host_access_intel = 6188,
4862 init_mode_altera = 6190,
4863 implement_in_register_map_altera = 6191,
4864 conditional_intel = 6247,
4865 cache_control_load_intel = 6442,
4866 cache_control_store_intel = 6443,
4867
4868 pub const Extended = union(Decoration) {
4869 relaxed_precision,
4870 spec_id: struct { specialization_constant_id: LiteralInteger },
4871 block,
4872 buffer_block,
4873 row_major,
4874 col_major,
4875 array_stride: struct { array_stride: LiteralInteger },
4876 matrix_stride: struct { matrix_stride: LiteralInteger },
4877 glsl_shared,
4878 glsl_packed,
4879 c_packed,
4880 built_in: struct { built_in: BuiltIn },
4881 no_perspective,
4882 flat,
4883 patch,
4884 centroid,
4885 sample,
4886 invariant,
4887 restrict,
4888 aliased,
4889 @"volatile",
4890 constant,
4891 coherent,
4892 non_writable,
4893 non_readable,
4894 uniform,
4895 uniform_id: struct { execution: Id },
4896 saturated_conversion,
4897 stream: struct { stream_number: LiteralInteger },
4898 location: struct { location: LiteralInteger },
4899 component: struct { component: LiteralInteger },
4900 index: struct { index: LiteralInteger },
4901 binding: struct { binding_point: LiteralInteger },
4902 descriptor_set: struct { descriptor_set: LiteralInteger },
4903 offset: struct { byte_offset: LiteralInteger },
4904 xfb_buffer: struct { xfb_buffer_number: LiteralInteger },
4905 xfb_stride: struct { xfb_stride: LiteralInteger },
4906 func_param_attr: struct { function_parameter_attribute: FunctionParameterAttribute },
4907 fp_rounding_mode: struct { fp_rounding_mode: FPRoundingMode },
4908 fp_fast_math_mode: struct { fp_fast_math_mode: FPFastMathMode },
4909 linkage_attributes: struct { name: LiteralString, linkage_type: LinkageType },
4910 no_contraction,
4911 input_attachment_index: struct { attachment_index: LiteralInteger },
4912 alignment: struct { alignment: LiteralInteger },
4913 max_byte_offset: struct { max_byte_offset: LiteralInteger },
4914 alignment_id: struct { alignment: Id },
4915 max_byte_offset_id: struct { max_byte_offset: Id },
4916 saturated_to_largest_float8normal_conversion_ext,
4917 no_signed_wrap,
4918 no_unsigned_wrap,
4919 weight_texture_qcom,
4920 block_match_texture_qcom,
4921 block_match_sampler_qcom,
4922 explicit_interp_amd,
4923 node_shares_payload_limits_with_amdx: struct { payload_type: Id },
4924 node_max_payloads_amdx: struct { max_number_of_payloads: Id },
4925 track_finish_writing_amdx,
4926 payload_node_name_amdx: struct { node_name: Id },
4927 payload_node_base_index_amdx: struct { base_index: Id },
4928 payload_node_sparse_array_amdx,
4929 payload_node_array_size_amdx: struct { array_size: Id },
4930 payload_dispatch_indirect_amdx,
4931 array_stride_id_ext: struct { array_stride: Id },
4932 offset_id_ext: struct { byte_offset: Id },
4933 utf_encoded_khr,
4934 override_coverage_nv,
4935 passthrough_nv,
4936 viewport_relative_nv,
4937 secondary_viewport_relative_nv: struct { offset: LiteralInteger },
4938 per_primitive_ext,
4939 per_view_nv,
4940 per_task_nv,
4941 per_vertex_khr,
4942 non_uniform,
4943 restrict_pointer,
4944 aliased_pointer,
4945 member_offset_nv: struct { member_offset: LiteralInteger },
4946 hit_object_shader_record_buffer_nv,
4947 hit_object_shader_record_buffer_ext,
4948 bank_nv: struct { bank: LiteralInteger },
4949 bindless_sampler_nv,
4950 bindless_image_nv,
4951 bound_sampler_nv,
4952 bound_image_nv,
4953 simt_call_intel: struct { n: LiteralInteger },
4954 referenced_indirectly_intel,
4955 clobber_intel: struct { register: LiteralString },
4956 side_effects_intel,
4957 vector_compute_variable_intel,
4958 func_param_io_kind_intel: struct { kind: LiteralInteger },
4959 vector_compute_function_intel,
4960 stack_call_intel,
4961 global_variable_offset_intel: struct { offset: LiteralInteger },
4962 counter_buffer: struct { counter_buffer: Id },
4963 user_semantic: struct { semantic: LiteralString },
4964 user_type_google: struct { user_type: LiteralString },
4965 function_rounding_mode_intel: struct { target_width: LiteralInteger, fp_rounding_mode: FPRoundingMode },
4966 function_denorm_mode_intel: struct { target_width: LiteralInteger, fp_denorm_mode: FPDenormMode },
4967 register_altera,
4968 memory_altera: struct { memory_type: LiteralString },
4969 numbanks_altera: struct { banks: LiteralInteger },
4970 bankwidth_altera: struct { bank_width: LiteralInteger },
4971 max_private_copies_altera: struct { maximum_copies: LiteralInteger },
4972 singlepump_altera,
4973 doublepump_altera,
4974 max_replicates_altera: struct { maximum_replicates: LiteralInteger },
4975 simple_dual_port_altera,
4976 merge_altera: struct { merge_key: LiteralString, merge_type: LiteralString },
4977 bank_bits_altera: struct { bank_bits: []const LiteralInteger = &.{} },
4978 force_pow2depth_altera: struct { force_key: LiteralInteger },
4979 stridesize_altera: struct { stride_size: LiteralInteger },
4980 wordsize_altera: struct { word_size: LiteralInteger },
4981 true_dual_port_altera,
4982 burst_coalesce_altera,
4983 cache_size_altera: struct { cache_size_in_bytes: LiteralInteger },
4984 dont_statically_coalesce_altera,
4985 prefetch_altera: struct { prefetcher_size_in_bytes: LiteralInteger },
4986 stall_enable_altera,
4987 fuse_loops_in_function_altera,
4988 math_op_dsp_mode_altera: struct { mode: LiteralInteger, propagate: LiteralInteger },
4989 alias_scope_intel: struct { aliasing_scopes_list: Id },
4990 no_alias_intel: struct { aliasing_scopes_list: Id },
4991 initiation_interval_altera: struct { cycles: LiteralInteger },
4992 max_concurrency_altera: struct { invocations: LiteralInteger },
4993 pipeline_enable_altera: struct { enable: LiteralInteger },
4994 buffer_location_altera: struct { buffer_location_id: LiteralInteger },
4995 io_pipe_storage_altera: struct { io_pipe_id: LiteralInteger },
4996 function_floating_point_mode_intel: struct { target_width: LiteralInteger, fp_operation_mode: FPOperationMode },
4997 single_element_vector_intel,
4998 vector_compute_callable_function_intel,
4999 media_block_iointel,
5000 stall_free_altera,
5001 fp_max_error_decoration_intel: struct { max_error: LiteralFloat },
5002 latency_control_label_altera: struct { latency_label: LiteralInteger },
5003 latency_control_constraint_altera: struct { relative_to: LiteralInteger, control_type: LiteralInteger, relative_cycle: LiteralInteger },
5004 conduit_kernel_argument_altera,
5005 register_map_kernel_argument_altera,
5006 mm_host_interface_address_width_altera: struct { address_width: LiteralInteger },
5007 mm_host_interface_data_width_altera: struct { data_width: LiteralInteger },
5008 mm_host_interface_latency_altera: struct { latency: LiteralInteger },
5009 mm_host_interface_read_write_mode_altera: struct { read_write_mode: AccessQualifier },
5010 mm_host_interface_max_burst_altera: struct { max_burst_count: LiteralInteger },
5011 mm_host_interface_wait_request_altera: struct { waitrequest: LiteralInteger },
5012 stable_kernel_argument_altera,
5013 host_access_intel: struct { access: HostAccessQualifier, name: LiteralString },
5014 init_mode_altera: struct { trigger: InitializationModeQualifier },
5015 implement_in_register_map_altera: struct { value: LiteralInteger },
5016 conditional_intel: struct { condition: Id },
5017 cache_control_load_intel: struct { cache_level: LiteralInteger, cache_control: LoadCacheControl },
5018 cache_control_store_intel: struct { cache_level: LiteralInteger, cache_control: StoreCacheControl },
5019 };
5020};
5021pub const BuiltIn = enum(u32) {
5022 position = 0,
5023 point_size = 1,
5024 clip_distance = 3,
5025 cull_distance = 4,
5026 vertex_id = 5,
5027 instance_id = 6,
5028 primitive_id = 7,
5029 invocation_id = 8,
5030 layer = 9,
5031 viewport_index = 10,
5032 tess_level_outer = 11,
5033 tess_level_inner = 12,
5034 tess_coord = 13,
5035 patch_vertices = 14,
5036 frag_coord = 15,
5037 point_coord = 16,
5038 front_facing = 17,
5039 sample_id = 18,
5040 sample_position = 19,
5041 sample_mask = 20,
5042 frag_depth = 22,
5043 helper_invocation = 23,
5044 num_workgroups = 24,
5045 workgroup_size = 25,
5046 workgroup_id = 26,
5047 local_invocation_id = 27,
5048 global_invocation_id = 28,
5049 local_invocation_index = 29,
5050 work_dim = 30,
5051 global_size = 31,
5052 enqueued_workgroup_size = 32,
5053 global_offset = 33,
5054 global_linear_id = 34,
5055 subgroup_size = 36,
5056 subgroup_max_size = 37,
5057 num_subgroups = 38,
5058 num_enqueued_subgroups = 39,
5059 subgroup_id = 40,
5060 subgroup_local_invocation_id = 41,
5061 vertex_index = 42,
5062 instance_index = 43,
5063 core_idarm = 4160,
5064 core_count_arm = 4161,
5065 core_max_idarm = 4162,
5066 warp_idarm = 4163,
5067 warp_max_idarm = 4164,
5068 subgroup_eq_mask = 4416,
5069 subgroup_ge_mask = 4417,
5070 subgroup_gt_mask = 4418,
5071 subgroup_le_mask = 4419,
5072 subgroup_lt_mask = 4420,
5073 base_vertex = 4424,
5074 base_instance = 4425,
5075 draw_index = 4426,
5076 primitive_shading_rate_khr = 4432,
5077 device_index = 4438,
5078 view_index = 4440,
5079 shading_rate_khr = 4444,
5080 tile_offset_qcom = 4492,
5081 tile_dimension_qcom = 4493,
5082 tile_apron_size_qcom = 4494,
5083 bary_coord_no_persp_amd = 4992,
5084 bary_coord_no_persp_centroid_amd = 4993,
5085 bary_coord_no_persp_sample_amd = 4994,
5086 bary_coord_smooth_amd = 4995,
5087 bary_coord_smooth_centroid_amd = 4996,
5088 bary_coord_smooth_sample_amd = 4997,
5089 bary_coord_pull_model_amd = 4998,
5090 frag_stencil_ref_ext = 5014,
5091 remaining_recursion_levels_amdx = 5021,
5092 shader_index_amdx = 5073,
5093 sampler_heap_ext = 5122,
5094 resource_heap_ext = 5123,
5095 viewport_mask_nv = 5253,
5096 secondary_position_nv = 5257,
5097 secondary_viewport_mask_nv = 5258,
5098 position_per_view_nv = 5261,
5099 viewport_mask_per_view_nv = 5262,
5100 fully_covered_ext = 5264,
5101 task_count_nv = 5274,
5102 primitive_count_nv = 5275,
5103 primitive_indices_nv = 5276,
5104 clip_distance_per_view_nv = 5277,
5105 cull_distance_per_view_nv = 5278,
5106 layer_per_view_nv = 5279,
5107 mesh_view_count_nv = 5280,
5108 mesh_view_indices_nv = 5281,
5109 bary_coord_khr = 5286,
5110 bary_coord_no_persp_khr = 5287,
5111 frag_size_ext = 5292,
5112 frag_invocation_count_ext = 5293,
5113 primitive_point_indices_ext = 5294,
5114 primitive_line_indices_ext = 5295,
5115 primitive_triangle_indices_ext = 5296,
5116 cull_primitive_ext = 5299,
5117 launch_id_khr = 5319,
5118 launch_size_khr = 5320,
5119 world_ray_origin_khr = 5321,
5120 world_ray_direction_khr = 5322,
5121 object_ray_origin_khr = 5323,
5122 object_ray_direction_khr = 5324,
5123 ray_tmin_khr = 5325,
5124 ray_tmax_khr = 5326,
5125 instance_custom_index_khr = 5327,
5126 object_to_world_khr = 5330,
5127 world_to_object_khr = 5331,
5128 hit_tnv = 5332,
5129 hit_kind_khr = 5333,
5130 current_ray_time_nv = 5334,
5131 hit_triangle_vertex_positions_khr = 5335,
5132 hit_micro_triangle_vertex_positions_nv = 5337,
5133 hit_micro_triangle_vertex_barycentrics_nv = 5344,
5134 incoming_ray_flags_khr = 5351,
5135 ray_geometry_index_khr = 5352,
5136 hit_is_sphere_nv = 5359,
5137 hit_is_lssnv = 5360,
5138 hit_sphere_position_nv = 5361,
5139 warps_per_smnv = 5374,
5140 sm_count_nv = 5375,
5141 warp_idnv = 5376,
5142 smidnv = 5377,
5143 hit_lss_positions_nv = 5396,
5144 hit_kind_front_facing_micro_triangle_nv = 5405,
5145 hit_kind_back_facing_micro_triangle_nv = 5406,
5146 hit_sphere_radius_nv = 5420,
5147 hit_lss_radii_nv = 5421,
5148 cluster_idnv = 5436,
5149 cull_mask_khr = 6021,
5150};
5151pub const Scope = enum(u32) {
5152 cross_device = 0,
5153 device = 1,
5154 workgroup = 2,
5155 subgroup = 3,
5156 invocation = 4,
5157 queue_family = 5,
5158 shader_call_khr = 6,
5159};
5160pub const GroupOperation = enum(u32) {
5161 reduce = 0,
5162 inclusive_scan = 1,
5163 exclusive_scan = 2,
5164 clustered_reduce = 3,
5165 partitioned_reduce_ext = 6,
5166 partitioned_inclusive_scan_ext = 7,
5167 partitioned_exclusive_scan_ext = 8,
5168};
5169pub const KernelEnqueueFlags = enum(u32) {
5170 no_wait = 0,
5171 wait_kernel = 1,
5172 wait_work_group = 2,
5173};
5174pub const Capability = enum(u32) {
5175 matrix = 0,
5176 shader = 1,
5177 geometry = 2,
5178 tessellation = 3,
5179 addresses = 4,
5180 linkage = 5,
5181 kernel = 6,
5182 vector16 = 7,
5183 float16buffer = 8,
5184 float16 = 9,
5185 float64 = 10,
5186 int64 = 11,
5187 int64atomics = 12,
5188 image_basic = 13,
5189 image_read_write = 14,
5190 image_mipmap = 15,
5191 pipes = 17,
5192 groups = 18,
5193 device_enqueue = 19,
5194 literal_sampler = 20,
5195 atomic_storage = 21,
5196 int16 = 22,
5197 tessellation_point_size = 23,
5198 geometry_point_size = 24,
5199 image_gather_extended = 25,
5200 storage_image_multisample = 27,
5201 uniform_buffer_array_dynamic_indexing = 28,
5202 sampled_image_array_dynamic_indexing = 29,
5203 storage_buffer_array_dynamic_indexing = 30,
5204 storage_image_array_dynamic_indexing = 31,
5205 clip_distance = 32,
5206 cull_distance = 33,
5207 image_cube_array = 34,
5208 sample_rate_shading = 35,
5209 image_rect = 36,
5210 sampled_rect = 37,
5211 generic_pointer = 38,
5212 int8 = 39,
5213 input_attachment = 40,
5214 sparse_residency = 41,
5215 min_lod = 42,
5216 sampled_cube_array = 45,
5217 sampled_buffer = 46,
5218 image_buffer = 47,
5219 image_ms_array = 48,
5220 storage_image_extended_formats = 49,
5221 image_query = 50,
5222 derivative_control = 51,
5223 interpolation_function = 52,
5224 transform_feedback = 53,
5225 geometry_streams = 54,
5226 storage_image_read_without_format = 55,
5227 storage_image_write_without_format = 56,
5228 multi_viewport = 57,
5229 subgroup_dispatch = 58,
5230 named_barrier = 59,
5231 pipe_storage = 60,
5232 group_non_uniform = 61,
5233 group_non_uniform_vote = 62,
5234 group_non_uniform_arithmetic = 63,
5235 group_non_uniform_ballot = 64,
5236 group_non_uniform_shuffle = 65,
5237 group_non_uniform_shuffle_relative = 66,
5238 group_non_uniform_clustered = 67,
5239 group_non_uniform_quad = 68,
5240 shader_layer = 69,
5241 shader_viewport_index = 70,
5242 uniform_decoration = 71,
5243 tile_image_color_read_access_ext = 4166,
5244 tile_image_depth_read_access_ext = 4167,
5245 tile_image_stencil_read_access_ext = 4168,
5246 float8ext = 4212,
5247 float8cooperative_matrix_ext = 4213,
5248 fragment_shading_rate_khr = 4422,
5249 subgroup_ballot_khr = 4423,
5250 draw_parameters = 4427,
5251 workgroup_memory_explicit_layout_khr = 4428,
5252 workgroup_memory_explicit_layout8bit_access_khr = 4429,
5253 workgroup_memory_explicit_layout16bit_access_khr = 4430,
5254 subgroup_vote_khr = 4431,
5255 storage_buffer16bit_access = 4433,
5256 uniform_and_storage_buffer16bit_access = 4434,
5257 storage_push_constant16 = 4435,
5258 storage_input_output16 = 4436,
5259 device_group = 4437,
5260 multi_view = 4439,
5261 variable_pointers_storage_buffer = 4441,
5262 variable_pointers = 4442,
5263 atomic_storage_ops = 4445,
5264 sample_mask_post_depth_coverage = 4447,
5265 storage_buffer8bit_access = 4448,
5266 uniform_and_storage_buffer8bit_access = 4449,
5267 storage_push_constant8 = 4450,
5268 denorm_preserve = 4464,
5269 denorm_flush_to_zero = 4465,
5270 signed_zero_inf_nan_preserve = 4466,
5271 ray_query_provisional_khr = 4471,
5272 ray_query_khr = 4472,
5273 untyped_pointers_khr = 4473,
5274 ray_traversal_primitive_culling_khr = 4478,
5275 ray_tracing_khr = 4479,
5276 stencil_export_ext = 5013,
5277 int64image_ext = 5016,
5278 shader_clock_khr = 5055,
5279 quad_control_khr = 5087,
5280 b_float16type_khr = 5116,
5281 b_float16dot_product_khr = 5117,
5282 b_float16cooperative_matrix_khr = 5118,
5283 abort_khr = 5120,
5284 descriptor_heap_ext = 5128,
5285 constant_data_khr = 5146,
5286 poison_freeze_khr = 5156,
5287 shader_viewport_index_layer_ext = 5254,
5288 fragment_fully_covered_ext = 5265,
5289 mesh_shading_ext = 5283,
5290 fragment_barycentric_khr = 5284,
5291 compute_derivative_group_quads_khr = 5288,
5292 fragment_density_ext = 5291,
5293 group_non_uniform_partitioned_ext = 5297,
5294 shader_non_uniform = 5301,
5295 runtime_descriptor_array = 5302,
5296 input_attachment_array_dynamic_indexing = 5303,
5297 uniform_texel_buffer_array_dynamic_indexing = 5304,
5298 storage_texel_buffer_array_dynamic_indexing = 5305,
5299 uniform_buffer_array_non_uniform_indexing = 5306,
5300 sampled_image_array_non_uniform_indexing = 5307,
5301 storage_buffer_array_non_uniform_indexing = 5308,
5302 storage_image_array_non_uniform_indexing = 5309,
5303 input_attachment_array_non_uniform_indexing = 5310,
5304 uniform_texel_buffer_array_non_uniform_indexing = 5311,
5305 storage_texel_buffer_array_non_uniform_indexing = 5312,
5306 ray_tracing_position_fetch_khr = 5336,
5307 vulkan_memory_model = 5345,
5308 vulkan_memory_model_device_scope = 5346,
5309 physical_storage_buffer_addresses = 5347,
5310 compute_derivative_group_linear_khr = 5350,
5311 ray_tracing_provisional_khr = 5353,
5312 fragment_shader_sample_interlock_ext = 5363,
5313 fragment_shader_shading_rate_interlock_ext = 5372,
5314 fragment_shader_pixel_interlock_ext = 5378,
5315 demote_to_helper_invocation = 5379,
5316 ray_tracing_opacity_micromap_ext = 5381,
5317 shader_invocation_reorder_ext = 5388,
5318 ray_query_position_fetch_khr = 5391,
5319 long_vector_ext = 5425,
5320 shader64bit_indexing_ext = 5426,
5321 atomic_float32min_max_ext = 5612,
5322 atomic_float64min_max_ext = 5613,
5323 atomic_float16min_max_ext = 5616,
5324 expect_assume_khr = 5629,
5325 dot_product_input_all = 6016,
5326 dot_product_input4x8bit = 6017,
5327 dot_product_input4x8bit_packed = 6018,
5328 dot_product = 6019,
5329 ray_cull_mask_khr = 6020,
5330 cooperative_matrix_khr = 6022,
5331 replicated_composites_ext = 6024,
5332 bit_instructions = 6025,
5333 group_non_uniform_rotate_khr = 6026,
5334 float_controls2 = 6029,
5335 fmakhr = 6030,
5336 atomic_float32add_ext = 6033,
5337 atomic_float64add_ext = 6034,
5338 opt_none_ext = 6094,
5339 atomic_float16add_ext = 6095,
5340 arithmetic_fence_ext = 6144,
5341 group_uniform_arithmetic_khr = 6400,
5342
5343 pub fn dependencies(self: Capability) []const Extension {
5344 return switch (self) {
5345 .matrix => &.{
5346 .v1_0,
5347 },
5348 .shader => &.{
5349 .v1_0,
5350 },
5351 .geometry => &.{
5352 .v1_0,
5353 },
5354 .tessellation => &.{
5355 .v1_0,
5356 },
5357 .addresses => &.{
5358 .v1_0,
5359 },
5360 .linkage => &.{
5361 .v1_0,
5362 },
5363 .kernel => &.{
5364 .v1_0,
5365 },
5366 .vector16 => &.{
5367 .v1_0,
5368 },
5369 .float16buffer => &.{
5370 .v1_0,
5371 },
5372 .float16 => &.{
5373 .v1_0,
5374 },
5375 .float64 => &.{
5376 .v1_0,
5377 },
5378 .int64 => &.{
5379 .v1_0,
5380 },
5381 .int64atomics => &.{
5382 .v1_0,
5383 },
5384 .image_basic => &.{
5385 .v1_0,
5386 },
5387 .image_read_write => &.{
5388 .v1_0,
5389 },
5390 .image_mipmap => &.{
5391 .v1_0,
5392 },
5393 .pipes => &.{
5394 .v1_0,
5395 },
5396 .groups => &.{
5397 .v1_0,
5398 },
5399 .device_enqueue => &.{
5400 .v1_0,
5401 },
5402 .literal_sampler => &.{
5403 .v1_0,
5404 },
5405 .atomic_storage => &.{
5406 .v1_0,
5407 },
5408 .int16 => &.{
5409 .v1_0,
5410 },
5411 .tessellation_point_size => &.{
5412 .v1_0,
5413 },
5414 .geometry_point_size => &.{
5415 .v1_0,
5416 },
5417 .image_gather_extended => &.{
5418 .v1_0,
5419 },
5420 .storage_image_multisample => &.{
5421 .v1_0,
5422 },
5423 .uniform_buffer_array_dynamic_indexing => &.{
5424 .v1_0,
5425 },
5426 .sampled_image_array_dynamic_indexing => &.{
5427 .v1_0,
5428 },
5429 .storage_buffer_array_dynamic_indexing => &.{
5430 .v1_0,
5431 },
5432 .storage_image_array_dynamic_indexing => &.{
5433 .v1_0,
5434 },
5435 .clip_distance => &.{
5436 .v1_0,
5437 },
5438 .cull_distance => &.{
5439 .v1_0,
5440 },
5441 .image_cube_array => &.{
5442 .v1_0,
5443 },
5444 .sample_rate_shading => &.{
5445 .v1_0,
5446 },
5447 .image_rect => &.{
5448 .v1_0,
5449 },
5450 .sampled_rect => &.{
5451 .v1_0,
5452 },
5453 .generic_pointer => &.{
5454 .v1_0,
5455 },
5456 .int8 => &.{
5457 .v1_0,
5458 },
5459 .input_attachment => &.{
5460 .v1_0,
5461 },
5462 .sparse_residency => &.{
5463 .v1_0,
5464 },
5465 .min_lod => &.{
5466 .v1_0,
5467 },
5468 .sampled_cube_array => &.{
5469 .v1_0,
5470 },
5471 .sampled_buffer => &.{
5472 .v1_0,
5473 },
5474 .image_buffer => &.{
5475 .v1_0,
5476 },
5477 .image_ms_array => &.{
5478 .v1_0,
5479 },
5480 .storage_image_extended_formats => &.{
5481 .v1_0,
5482 },
5483 .image_query => &.{
5484 .v1_0,
5485 },
5486 .derivative_control => &.{
5487 .v1_0,
5488 },
5489 .interpolation_function => &.{
5490 .v1_0,
5491 },
5492 .transform_feedback => &.{
5493 .v1_0,
5494 },
5495 .geometry_streams => &.{
5496 .v1_0,
5497 },
5498 .storage_image_read_without_format => &.{
5499 .v1_0,
5500 },
5501 .storage_image_write_without_format => &.{
5502 .v1_0,
5503 },
5504 .multi_viewport => &.{
5505 .v1_0,
5506 },
5507 .subgroup_dispatch => &.{
5508 .v1_1,
5509 },
5510 .named_barrier => &.{
5511 .v1_1,
5512 },
5513 .pipe_storage => &.{
5514 .v1_1,
5515 },
5516 .group_non_uniform => &.{
5517 .v1_3,
5518 },
5519 .group_non_uniform_vote => &.{
5520 .v1_3,
5521 },
5522 .group_non_uniform_arithmetic => &.{
5523 .v1_3,
5524 },
5525 .group_non_uniform_ballot => &.{
5526 .v1_3,
5527 },
5528 .group_non_uniform_shuffle => &.{
5529 .v1_3,
5530 },
5531 .group_non_uniform_shuffle_relative => &.{
5532 .v1_3,
5533 },
5534 .group_non_uniform_clustered => &.{
5535 .v1_3,
5536 },
5537 .group_non_uniform_quad => &.{
5538 .v1_3,
5539 },
5540 .shader_layer => &.{
5541 .v1_5,
5542 },
5543 .shader_viewport_index => &.{
5544 .v1_5,
5545 },
5546 .uniform_decoration => &.{
5547 .v1_6,
5548 },
5549 .tile_image_color_read_access_ext => &.{
5550 .v1_0,
5551 .SPV_EXT_shader_tile_image,
5552 },
5553 .tile_image_depth_read_access_ext => &.{
5554 .v1_0,
5555 .SPV_EXT_shader_tile_image,
5556 },
5557 .tile_image_stencil_read_access_ext => &.{
5558 .v1_0,
5559 .SPV_EXT_shader_tile_image,
5560 },
5561 .float8ext => &.{
5562 .v1_0,
5563 .SPV_EXT_float8,
5564 },
5565 .float8cooperative_matrix_ext => &.{
5566 .v1_0,
5567 .SPV_EXT_float8,
5568 },
5569 .fragment_shading_rate_khr => &.{
5570 .v1_0,
5571 .SPV_KHR_fragment_shading_rate,
5572 },
5573 .subgroup_ballot_khr => &.{
5574 .v1_0,
5575 .SPV_KHR_shader_ballot,
5576 },
5577 .draw_parameters => &.{
5578 .v1_3,
5579 .SPV_KHR_shader_draw_parameters,
5580 },
5581 .workgroup_memory_explicit_layout_khr => &.{
5582 .v1_0,
5583 .SPV_KHR_workgroup_memory_explicit_layout,
5584 },
5585 .workgroup_memory_explicit_layout8bit_access_khr => &.{
5586 .v1_0,
5587 .SPV_KHR_workgroup_memory_explicit_layout,
5588 },
5589 .workgroup_memory_explicit_layout16bit_access_khr => &.{
5590 .v1_0,
5591 .SPV_KHR_workgroup_memory_explicit_layout,
5592 },
5593 .subgroup_vote_khr => &.{
5594 .v1_0,
5595 .SPV_KHR_subgroup_vote,
5596 },
5597 .storage_buffer16bit_access => &.{
5598 .v1_3,
5599 .SPV_KHR_16bit_storage,
5600 },
5601 .uniform_and_storage_buffer16bit_access => &.{
5602 .v1_3,
5603 .SPV_KHR_16bit_storage,
5604 },
5605 .storage_push_constant16 => &.{
5606 .v1_3,
5607 .SPV_KHR_16bit_storage,
5608 },
5609 .storage_input_output16 => &.{
5610 .v1_3,
5611 .SPV_KHR_16bit_storage,
5612 },
5613 .device_group => &.{
5614 .v1_3,
5615 .SPV_KHR_device_group,
5616 },
5617 .multi_view => &.{
5618 .v1_3,
5619 .SPV_KHR_multiview,
5620 },
5621 .variable_pointers_storage_buffer => &.{
5622 .v1_3,
5623 .SPV_KHR_variable_pointers,
5624 },
5625 .variable_pointers => &.{
5626 .v1_3,
5627 .SPV_KHR_variable_pointers,
5628 },
5629 .atomic_storage_ops => &.{
5630 .v1_0,
5631 .SPV_KHR_shader_atomic_counter_ops,
5632 },
5633 .sample_mask_post_depth_coverage => &.{
5634 .v1_0,
5635 .SPV_KHR_post_depth_coverage,
5636 },
5637 .storage_buffer8bit_access => &.{
5638 .v1_5,
5639 .SPV_KHR_8bit_storage,
5640 },
5641 .uniform_and_storage_buffer8bit_access => &.{
5642 .v1_5,
5643 .SPV_KHR_8bit_storage,
5644 },
5645 .storage_push_constant8 => &.{
5646 .v1_5,
5647 .SPV_KHR_8bit_storage,
5648 },
5649 .denorm_preserve => &.{
5650 .v1_4,
5651 .SPV_KHR_float_controls,
5652 },
5653 .denorm_flush_to_zero => &.{
5654 .v1_4,
5655 .SPV_KHR_float_controls,
5656 },
5657 .signed_zero_inf_nan_preserve => &.{
5658 .v1_4,
5659 .SPV_KHR_float_controls,
5660 },
5661 .ray_query_provisional_khr => &.{
5662 .v1_0,
5663 .SPV_KHR_ray_query,
5664 },
5665 .ray_query_khr => &.{
5666 .v1_0,
5667 .SPV_KHR_ray_query,
5668 },
5669 .untyped_pointers_khr => &.{
5670 .v1_0,
5671 .SPV_KHR_untyped_pointers,
5672 },
5673 .ray_traversal_primitive_culling_khr => &.{
5674 .v1_0,
5675 .SPV_KHR_ray_query,
5676 .SPV_KHR_ray_tracing,
5677 },
5678 .ray_tracing_khr => &.{
5679 .v1_0,
5680 .SPV_KHR_ray_tracing,
5681 },
5682 .stencil_export_ext => &.{
5683 .v1_0,
5684 .SPV_EXT_shader_stencil_export,
5685 },
5686 .int64image_ext => &.{
5687 .v1_0,
5688 .SPV_EXT_shader_image_int64,
5689 },
5690 .shader_clock_khr => &.{
5691 .v1_0,
5692 .SPV_KHR_shader_clock,
5693 },
5694 .quad_control_khr => &.{
5695 .v1_0,
5696 .SPV_KHR_quad_control,
5697 },
5698 .b_float16type_khr => &.{
5699 .v1_0,
5700 .SPV_KHR_bfloat16,
5701 },
5702 .b_float16dot_product_khr => &.{
5703 .v1_0,
5704 .SPV_KHR_bfloat16,
5705 },
5706 .b_float16cooperative_matrix_khr => &.{
5707 .v1_0,
5708 .SPV_KHR_bfloat16,
5709 },
5710 .abort_khr => &.{
5711 .v1_0,
5712 .SPV_KHR_abort,
5713 },
5714 .descriptor_heap_ext => &.{
5715 .v1_0,
5716 .SPV_EXT_descriptor_heap,
5717 },
5718 .constant_data_khr => &.{
5719 .v1_0,
5720 .SPV_KHR_constant_data,
5721 },
5722 .poison_freeze_khr => &.{
5723 .v1_0,
5724 .SPV_KHR_poison_freeze,
5725 },
5726 .shader_viewport_index_layer_ext => &.{
5727 .v1_0,
5728 .SPV_EXT_shader_viewport_index_layer,
5729 },
5730 .fragment_fully_covered_ext => &.{
5731 .v1_0,
5732 .SPV_EXT_fragment_fully_covered,
5733 },
5734 .mesh_shading_ext => &.{
5735 .v1_0,
5736 .SPV_EXT_mesh_shader,
5737 },
5738 .fragment_barycentric_khr => &.{
5739 .v1_0,
5740 .SPV_KHR_fragment_shader_barycentric,
5741 },
5742 .compute_derivative_group_quads_khr => &.{
5743 .v1_0,
5744 .SPV_KHR_compute_shader_derivatives,
5745 },
5746 .fragment_density_ext => &.{
5747 .v1_0,
5748 .SPV_EXT_fragment_invocation_density,
5749 },
5750 .group_non_uniform_partitioned_ext => &.{
5751 .v1_0,
5752 .SPV_EXT_shader_subgroup_partitioned,
5753 },
5754 .shader_non_uniform => &.{
5755 .v1_5,
5756 .SPV_EXT_descriptor_indexing,
5757 },
5758 .runtime_descriptor_array => &.{
5759 .v1_5,
5760 .SPV_EXT_descriptor_indexing,
5761 },
5762 .input_attachment_array_dynamic_indexing => &.{
5763 .v1_5,
5764 .SPV_EXT_descriptor_indexing,
5765 },
5766 .uniform_texel_buffer_array_dynamic_indexing => &.{
5767 .v1_5,
5768 .SPV_EXT_descriptor_indexing,
5769 },
5770 .storage_texel_buffer_array_dynamic_indexing => &.{
5771 .v1_5,
5772 .SPV_EXT_descriptor_indexing,
5773 },
5774 .uniform_buffer_array_non_uniform_indexing => &.{
5775 .v1_5,
5776 .SPV_EXT_descriptor_indexing,
5777 },
5778 .sampled_image_array_non_uniform_indexing => &.{
5779 .v1_5,
5780 .SPV_EXT_descriptor_indexing,
5781 },
5782 .storage_buffer_array_non_uniform_indexing => &.{
5783 .v1_5,
5784 .SPV_EXT_descriptor_indexing,
5785 },
5786 .storage_image_array_non_uniform_indexing => &.{
5787 .v1_5,
5788 .SPV_EXT_descriptor_indexing,
5789 },
5790 .input_attachment_array_non_uniform_indexing => &.{
5791 .v1_5,
5792 .SPV_EXT_descriptor_indexing,
5793 },
5794 .uniform_texel_buffer_array_non_uniform_indexing => &.{
5795 .v1_5,
5796 .SPV_EXT_descriptor_indexing,
5797 },
5798 .storage_texel_buffer_array_non_uniform_indexing => &.{
5799 .v1_5,
5800 .SPV_EXT_descriptor_indexing,
5801 },
5802 .ray_tracing_position_fetch_khr => &.{
5803 .v1_0,
5804 .SPV_KHR_ray_tracing_position_fetch,
5805 },
5806 .vulkan_memory_model => &.{
5807 .v1_5,
5808 .SPV_KHR_vulkan_memory_model,
5809 },
5810 .vulkan_memory_model_device_scope => &.{
5811 .v1_5,
5812 .SPV_KHR_vulkan_memory_model,
5813 },
5814 .physical_storage_buffer_addresses => &.{
5815 .v1_5,
5816 .SPV_EXT_physical_storage_buffer,
5817 .SPV_KHR_physical_storage_buffer,
5818 },
5819 .compute_derivative_group_linear_khr => &.{
5820 .v1_0,
5821 .SPV_KHR_compute_shader_derivatives,
5822 },
5823 .ray_tracing_provisional_khr => &.{
5824 .v1_0,
5825 .SPV_KHR_ray_tracing,
5826 },
5827 .fragment_shader_sample_interlock_ext => &.{
5828 .v1_0,
5829 .SPV_EXT_fragment_shader_interlock,
5830 },
5831 .fragment_shader_shading_rate_interlock_ext => &.{
5832 .v1_0,
5833 .SPV_EXT_fragment_shader_interlock,
5834 },
5835 .fragment_shader_pixel_interlock_ext => &.{
5836 .v1_0,
5837 .SPV_EXT_fragment_shader_interlock,
5838 },
5839 .demote_to_helper_invocation => &.{
5840 .v1_6,
5841 .SPV_EXT_demote_to_helper_invocation,
5842 },
5843 .ray_tracing_opacity_micromap_ext => &.{
5844 .v1_0,
5845 .SPV_EXT_opacity_micromap,
5846 },
5847 .shader_invocation_reorder_ext => &.{
5848 .v1_0,
5849 .SPV_EXT_shader_invocation_reorder,
5850 },
5851 .ray_query_position_fetch_khr => &.{
5852 .v1_0,
5853 .SPV_KHR_ray_tracing_position_fetch,
5854 },
5855 .long_vector_ext => &.{
5856 .v1_0,
5857 .SPV_EXT_long_vector,
5858 },
5859 .shader64bit_indexing_ext => &.{
5860 .v1_0,
5861 .SPV_EXT_shader_64bit_indexing,
5862 },
5863 .atomic_float32min_max_ext => &.{
5864 .v1_0,
5865 .SPV_EXT_shader_atomic_float_min_max,
5866 },
5867 .atomic_float64min_max_ext => &.{
5868 .v1_0,
5869 .SPV_EXT_shader_atomic_float_min_max,
5870 },
5871 .atomic_float16min_max_ext => &.{
5872 .v1_0,
5873 .SPV_EXT_shader_atomic_float_min_max,
5874 },
5875 .expect_assume_khr => &.{
5876 .v1_0,
5877 .SPV_KHR_expect_assume,
5878 },
5879 .dot_product_input_all => &.{
5880 .v1_6,
5881 .SPV_KHR_integer_dot_product,
5882 },
5883 .dot_product_input4x8bit => &.{
5884 .v1_6,
5885 .SPV_KHR_integer_dot_product,
5886 },
5887 .dot_product_input4x8bit_packed => &.{
5888 .v1_6,
5889 .SPV_KHR_integer_dot_product,
5890 },
5891 .dot_product => &.{
5892 .v1_6,
5893 .SPV_KHR_integer_dot_product,
5894 },
5895 .ray_cull_mask_khr => &.{
5896 .v1_0,
5897 .SPV_KHR_ray_cull_mask,
5898 },
5899 .cooperative_matrix_khr => &.{
5900 .v1_0,
5901 .SPV_KHR_cooperative_matrix,
5902 },
5903 .replicated_composites_ext => &.{
5904 .v1_0,
5905 .SPV_EXT_replicated_composites,
5906 },
5907 .bit_instructions => &.{
5908 .v1_0,
5909 .SPV_KHR_bit_instructions,
5910 },
5911 .group_non_uniform_rotate_khr => &.{
5912 .v1_0,
5913 .SPV_KHR_subgroup_rotate,
5914 },
5915 .float_controls2 => &.{
5916 .v1_0,
5917 .SPV_KHR_float_controls2,
5918 },
5919 .fmakhr => &.{
5920 .v1_0,
5921 .SPV_KHR_fma,
5922 },
5923 .atomic_float32add_ext => &.{
5924 .v1_0,
5925 .SPV_EXT_shader_atomic_float_add,
5926 },
5927 .atomic_float64add_ext => &.{
5928 .v1_0,
5929 .SPV_EXT_shader_atomic_float_add,
5930 },
5931 .opt_none_ext => &.{
5932 .v1_0,
5933 .SPV_EXT_optnone,
5934 },
5935 .atomic_float16add_ext => &.{
5936 .v1_0,
5937 .SPV_EXT_shader_atomic_float16_add,
5938 },
5939 .arithmetic_fence_ext => &.{
5940 .v1_0,
5941 .SPV_EXT_arithmetic_fence,
5942 },
5943 .group_uniform_arithmetic_khr => &.{
5944 .v1_0,
5945 .SPV_KHR_uniform_group_instructions,
5946 },
5947 };
5948 }
5949};
5950pub const RayQueryIntersection = enum(u32) {
5951 ray_query_candidate_intersection_khr = 0,
5952 ray_query_committed_intersection_khr = 1,
5953};
5954pub const RayQueryCommittedIntersectionType = enum(u32) {
5955 ray_query_committed_intersection_none_khr = 0,
5956 ray_query_committed_intersection_triangle_khr = 1,
5957 ray_query_committed_intersection_generated_khr = 2,
5958};
5959pub const RayQueryCandidateIntersectionType = enum(u32) {
5960 ray_query_candidate_intersection_triangle_khr = 0,
5961 ray_query_candidate_intersection_aabbkhr = 1,
5962};
5963pub const PackedVectorFormat = enum(u32) {
5964 packed_vector_format4x8bit = 0,
5965};
5966pub const CooperativeMatrixOperands = packed struct {
5967 matrix_a_signed_components_khr: bool = false,
5968 matrix_b_signed_components_khr: bool = false,
5969 matrix_c_signed_components_khr: bool = false,
5970 matrix_result_signed_components_khr: bool = false,
5971 saturating_accumulation_khr: bool = false,
5972 _reserved_bit_5: bool = false,
5973 _reserved_bit_6: bool = false,
5974 _reserved_bit_7: bool = false,
5975 _reserved_bit_8: bool = false,
5976 _reserved_bit_9: bool = false,
5977 _reserved_bit_10: bool = false,
5978 _reserved_bit_11: bool = false,
5979 _reserved_bit_12: bool = false,
5980 _reserved_bit_13: bool = false,
5981 _reserved_bit_14: bool = false,
5982 _reserved_bit_15: bool = false,
5983 _reserved_bit_16: bool = false,
5984 _reserved_bit_17: bool = false,
5985 _reserved_bit_18: bool = false,
5986 _reserved_bit_19: bool = false,
5987 _reserved_bit_20: bool = false,
5988 _reserved_bit_21: bool = false,
5989 _reserved_bit_22: bool = false,
5990 _reserved_bit_23: bool = false,
5991 _reserved_bit_24: bool = false,
5992 _reserved_bit_25: bool = false,
5993 _reserved_bit_26: bool = false,
5994 _reserved_bit_27: bool = false,
5995 _reserved_bit_28: bool = false,
5996 _reserved_bit_29: bool = false,
5997 _reserved_bit_30: bool = false,
5998 _reserved_bit_31: bool = false,
5999};
6000pub const CooperativeMatrixLayout = enum(u32) {
6001 row_major_khr = 0,
6002 column_major_khr = 1,
6003 row_blocked_interleaved_arm = 4202,
6004 column_blocked_interleaved_arm = 4203,
6005};
6006pub const CooperativeMatrixUse = enum(u32) {
6007 matrix_akhr = 0,
6008 matrix_bkhr = 1,
6009 matrix_accumulator_khr = 2,
6010};
6011pub const CooperativeMatrixReduce = packed struct {
6012 row: bool = false,
6013 column: bool = false,
6014 @"2x2": bool = false,
6015 _reserved_bit_3: bool = false,
6016 _reserved_bit_4: bool = false,
6017 _reserved_bit_5: bool = false,
6018 _reserved_bit_6: bool = false,
6019 _reserved_bit_7: bool = false,
6020 _reserved_bit_8: bool = false,
6021 _reserved_bit_9: bool = false,
6022 _reserved_bit_10: bool = false,
6023 _reserved_bit_11: bool = false,
6024 _reserved_bit_12: bool = false,
6025 _reserved_bit_13: bool = false,
6026 _reserved_bit_14: bool = false,
6027 _reserved_bit_15: bool = false,
6028 _reserved_bit_16: bool = false,
6029 _reserved_bit_17: bool = false,
6030 _reserved_bit_18: bool = false,
6031 _reserved_bit_19: bool = false,
6032 _reserved_bit_20: bool = false,
6033 _reserved_bit_21: bool = false,
6034 _reserved_bit_22: bool = false,
6035 _reserved_bit_23: bool = false,
6036 _reserved_bit_24: bool = false,
6037 _reserved_bit_25: bool = false,
6038 _reserved_bit_26: bool = false,
6039 _reserved_bit_27: bool = false,
6040 _reserved_bit_28: bool = false,
6041 _reserved_bit_29: bool = false,
6042 _reserved_bit_30: bool = false,
6043 _reserved_bit_31: bool = false,
6044};
6045pub const TensorClampMode = enum(u32) {
6046 undefined = 0,
6047 constant = 1,
6048 clamp_to_edge = 2,
6049 repeat = 3,
6050 repeat_mirrored = 4,
6051};
6052pub const TensorAddressingOperands = packed struct {
6053 tensor_view: bool = false,
6054 decode_func: bool = false,
6055 _reserved_bit_2: bool = false,
6056 _reserved_bit_3: bool = false,
6057 _reserved_bit_4: bool = false,
6058 _reserved_bit_5: bool = false,
6059 _reserved_bit_6: bool = false,
6060 _reserved_bit_7: bool = false,
6061 _reserved_bit_8: bool = false,
6062 _reserved_bit_9: bool = false,
6063 _reserved_bit_10: bool = false,
6064 _reserved_bit_11: bool = false,
6065 _reserved_bit_12: bool = false,
6066 _reserved_bit_13: bool = false,
6067 _reserved_bit_14: bool = false,
6068 _reserved_bit_15: bool = false,
6069 _reserved_bit_16: bool = false,
6070 _reserved_bit_17: bool = false,
6071 _reserved_bit_18: bool = false,
6072 _reserved_bit_19: bool = false,
6073 _reserved_bit_20: bool = false,
6074 _reserved_bit_21: bool = false,
6075 _reserved_bit_22: bool = false,
6076 _reserved_bit_23: bool = false,
6077 _reserved_bit_24: bool = false,
6078 _reserved_bit_25: bool = false,
6079 _reserved_bit_26: bool = false,
6080 _reserved_bit_27: bool = false,
6081 _reserved_bit_28: bool = false,
6082 _reserved_bit_29: bool = false,
6083 _reserved_bit_30: bool = false,
6084 _reserved_bit_31: bool = false,
6085
6086 pub const Extended = struct {
6087 tensor_view: ?struct { id_ref: Id } = null,
6088 decode_func: ?struct { id_ref: Id } = null,
6089 _reserved_bit_2: bool = false,
6090 _reserved_bit_3: bool = false,
6091 _reserved_bit_4: bool = false,
6092 _reserved_bit_5: bool = false,
6093 _reserved_bit_6: bool = false,
6094 _reserved_bit_7: bool = false,
6095 _reserved_bit_8: bool = false,
6096 _reserved_bit_9: bool = false,
6097 _reserved_bit_10: bool = false,
6098 _reserved_bit_11: bool = false,
6099 _reserved_bit_12: bool = false,
6100 _reserved_bit_13: bool = false,
6101 _reserved_bit_14: bool = false,
6102 _reserved_bit_15: bool = false,
6103 _reserved_bit_16: bool = false,
6104 _reserved_bit_17: bool = false,
6105 _reserved_bit_18: bool = false,
6106 _reserved_bit_19: bool = false,
6107 _reserved_bit_20: bool = false,
6108 _reserved_bit_21: bool = false,
6109 _reserved_bit_22: bool = false,
6110 _reserved_bit_23: bool = false,
6111 _reserved_bit_24: bool = false,
6112 _reserved_bit_25: bool = false,
6113 _reserved_bit_26: bool = false,
6114 _reserved_bit_27: bool = false,
6115 _reserved_bit_28: bool = false,
6116 _reserved_bit_29: bool = false,
6117 _reserved_bit_30: bool = false,
6118 _reserved_bit_31: bool = false,
6119 };
6120};
6121pub const InitializationModeQualifier = enum(u32) {
6122 init_on_device_reprogram_altera = 0,
6123 init_on_device_reset_altera = 1,
6124};
6125pub const LoadCacheControl = enum(u32) {
6126 uncached_intel = 0,
6127 cached_intel = 1,
6128 streaming_intel = 2,
6129 invalidate_after_read_intel = 3,
6130 const_cached_intel = 4,
6131};
6132pub const StoreCacheControl = enum(u32) {
6133 uncached_intel = 0,
6134 write_through_intel = 1,
6135 write_back_intel = 2,
6136 streaming_intel = 3,
6137};
6138pub const NamedMaximumNumberOfRegisters = enum(u32) {
6139 auto_intel = 0,
6140};
6141pub const MatrixMultiplyAccumulateOperands = packed struct {
6142 matrix_a_signed_components_intel: bool = false,
6143 matrix_b_signed_components_intel: bool = false,
6144 matrix_cb_float16intel: bool = false,
6145 matrix_result_b_float16intel: bool = false,
6146 matrix_a_packed_int8intel: bool = false,
6147 matrix_b_packed_int8intel: bool = false,
6148 matrix_a_packed_int4intel: bool = false,
6149 matrix_b_packed_int4intel: bool = false,
6150 matrix_atf32intel: bool = false,
6151 matrix_btf32intel: bool = false,
6152 matrix_a_packed_float16intel: bool = false,
6153 matrix_b_packed_float16intel: bool = false,
6154 matrix_a_packed_b_float16intel: bool = false,
6155 matrix_b_packed_b_float16intel: bool = false,
6156 _reserved_bit_14: bool = false,
6157 _reserved_bit_15: bool = false,
6158 _reserved_bit_16: bool = false,
6159 _reserved_bit_17: bool = false,
6160 _reserved_bit_18: bool = false,
6161 _reserved_bit_19: bool = false,
6162 _reserved_bit_20: bool = false,
6163 _reserved_bit_21: bool = false,
6164 _reserved_bit_22: bool = false,
6165 _reserved_bit_23: bool = false,
6166 _reserved_bit_24: bool = false,
6167 _reserved_bit_25: bool = false,
6168 _reserved_bit_26: bool = false,
6169 _reserved_bit_27: bool = false,
6170 _reserved_bit_28: bool = false,
6171 _reserved_bit_29: bool = false,
6172 _reserved_bit_30: bool = false,
6173 _reserved_bit_31: bool = false,
6174};
6175pub const FPEncoding = enum(u32) {
6176 b_float16khr = 0,
6177 float8e4m3ext = 4214,
6178 float8e5m2ext = 4215,
6179};
6180pub const CooperativeVectorMatrixLayout = enum(u32) {
6181 row_major_nv = 0,
6182 column_major_nv = 1,
6183 inferencing_optimal_nv = 2,
6184 training_optimal_nv = 3,
6185};
6186pub const ComponentType = enum(u32) {
6187 float16nv = 0,
6188 float32nv = 1,
6189 float64nv = 2,
6190 signed_int8nv = 3,
6191 signed_int16nv = 4,
6192 signed_int32nv = 5,
6193 signed_int64nv = 6,
6194 unsigned_int8nv = 7,
6195 unsigned_int16nv = 8,
6196 unsigned_int32nv = 9,
6197 unsigned_int64nv = 10,
6198 signed_int8packed_nv = 1000491000,
6199 unsigned_int8packed_nv = 1000491001,
6200 float_e4m3nv = 1000491002,
6201 float_e5m2nv = 1000491003,
6202};
6203pub const TensorOperands = packed struct {
6204 nontemporal_arm: bool = false,
6205 out_of_bounds_value_arm: bool = false,
6206 make_element_available_arm: bool = false,
6207 make_element_visible_arm: bool = false,
6208 non_private_element_arm: bool = false,
6209 _reserved_bit_5: bool = false,
6210 _reserved_bit_6: bool = false,
6211 _reserved_bit_7: bool = false,
6212 _reserved_bit_8: bool = false,
6213 _reserved_bit_9: bool = false,
6214 _reserved_bit_10: bool = false,
6215 _reserved_bit_11: bool = false,
6216 _reserved_bit_12: bool = false,
6217 _reserved_bit_13: bool = false,
6218 _reserved_bit_14: bool = false,
6219 _reserved_bit_15: bool = false,
6220 _reserved_bit_16: bool = false,
6221 _reserved_bit_17: bool = false,
6222 _reserved_bit_18: bool = false,
6223 _reserved_bit_19: bool = false,
6224 _reserved_bit_20: bool = false,
6225 _reserved_bit_21: bool = false,
6226 _reserved_bit_22: bool = false,
6227 _reserved_bit_23: bool = false,
6228 _reserved_bit_24: bool = false,
6229 _reserved_bit_25: bool = false,
6230 _reserved_bit_26: bool = false,
6231 _reserved_bit_27: bool = false,
6232 _reserved_bit_28: bool = false,
6233 _reserved_bit_29: bool = false,
6234 _reserved_bit_30: bool = false,
6235 _reserved_bit_31: bool = false,
6236
6237 pub const Extended = struct {
6238 nontemporal_arm: bool = false,
6239 out_of_bounds_value_arm: ?struct { id_ref: Id } = null,
6240 make_element_available_arm: ?struct { id_ref: Id } = null,
6241 make_element_visible_arm: ?struct { id_ref: Id } = null,
6242 non_private_element_arm: bool = false,
6243 _reserved_bit_5: bool = false,
6244 _reserved_bit_6: bool = false,
6245 _reserved_bit_7: bool = false,
6246 _reserved_bit_8: bool = false,
6247 _reserved_bit_9: bool = false,
6248 _reserved_bit_10: bool = false,
6249 _reserved_bit_11: bool = false,
6250 _reserved_bit_12: bool = false,
6251 _reserved_bit_13: bool = false,
6252 _reserved_bit_14: bool = false,
6253 _reserved_bit_15: bool = false,
6254 _reserved_bit_16: bool = false,
6255 _reserved_bit_17: bool = false,
6256 _reserved_bit_18: bool = false,
6257 _reserved_bit_19: bool = false,
6258 _reserved_bit_20: bool = false,
6259 _reserved_bit_21: bool = false,
6260 _reserved_bit_22: bool = false,
6261 _reserved_bit_23: bool = false,
6262 _reserved_bit_24: bool = false,
6263 _reserved_bit_25: bool = false,
6264 _reserved_bit_26: bool = false,
6265 _reserved_bit_27: bool = false,
6266 _reserved_bit_28: bool = false,
6267 _reserved_bit_29: bool = false,
6268 _reserved_bit_30: bool = false,
6269 _reserved_bit_31: bool = false,
6270 };
6271};
6272pub const InstructionSet = enum {
6273 core,
6274 @"OpenCL.std",
6275 @"GLSL.std.450",
6276 zig,
6277
6278 pub fn instructions(self: InstructionSet) []const Instruction {
6279 return switch (self) {
6280 .core => &.{
6281 .{
6282 .name = "OpNop",
6283 .opcode = 0,
6284 .operands = &.{},
6285 },
6286 .{
6287 .name = "OpUndef",
6288 .opcode = 1,
6289 .operands = &.{
6290 .{ .kind = .id_result_type, .quantifier = .required },
6291 .{ .kind = .id_result, .quantifier = .required },
6292 },
6293 },
6294 .{
6295 .name = "OpSourceContinued",
6296 .opcode = 2,
6297 .operands = &.{
6298 .{ .kind = .literal_string, .quantifier = .required },
6299 },
6300 },
6301 .{
6302 .name = "OpSource",
6303 .opcode = 3,
6304 .operands = &.{
6305 .{ .kind = .source_language, .quantifier = .required },
6306 .{ .kind = .literal_integer, .quantifier = .required },
6307 .{ .kind = .id_ref, .quantifier = .optional },
6308 .{ .kind = .literal_string, .quantifier = .optional },
6309 },
6310 },
6311 .{
6312 .name = "OpSourceExtension",
6313 .opcode = 4,
6314 .operands = &.{
6315 .{ .kind = .literal_string, .quantifier = .required },
6316 },
6317 },
6318 .{
6319 .name = "OpName",
6320 .opcode = 5,
6321 .operands = &.{
6322 .{ .kind = .id_ref, .quantifier = .required },
6323 .{ .kind = .literal_string, .quantifier = .required },
6324 },
6325 },
6326 .{
6327 .name = "OpMemberName",
6328 .opcode = 6,
6329 .operands = &.{
6330 .{ .kind = .id_ref, .quantifier = .required },
6331 .{ .kind = .literal_integer, .quantifier = .required },
6332 .{ .kind = .literal_string, .quantifier = .required },
6333 },
6334 },
6335 .{
6336 .name = "OpString",
6337 .opcode = 7,
6338 .operands = &.{
6339 .{ .kind = .id_result, .quantifier = .required },
6340 .{ .kind = .literal_string, .quantifier = .required },
6341 },
6342 },
6343 .{
6344 .name = "OpLine",
6345 .opcode = 8,
6346 .operands = &.{
6347 .{ .kind = .id_ref, .quantifier = .required },
6348 .{ .kind = .literal_integer, .quantifier = .required },
6349 .{ .kind = .literal_integer, .quantifier = .required },
6350 },
6351 },
6352 .{
6353 .name = "OpExtension",
6354 .opcode = 10,
6355 .operands = &.{
6356 .{ .kind = .literal_string, .quantifier = .required },
6357 },
6358 },
6359 .{
6360 .name = "OpExtInstImport",
6361 .opcode = 11,
6362 .operands = &.{
6363 .{ .kind = .id_result, .quantifier = .required },
6364 .{ .kind = .literal_string, .quantifier = .required },
6365 },
6366 },
6367 .{
6368 .name = "OpExtInst",
6369 .opcode = 12,
6370 .operands = &.{
6371 .{ .kind = .id_result_type, .quantifier = .required },
6372 .{ .kind = .id_result, .quantifier = .required },
6373 .{ .kind = .id_ref, .quantifier = .required },
6374 .{ .kind = .literal_ext_inst_integer, .quantifier = .required },
6375 .{ .kind = .id_ref, .quantifier = .variadic },
6376 },
6377 },
6378 .{
6379 .name = "OpMemoryModel",
6380 .opcode = 14,
6381 .operands = &.{
6382 .{ .kind = .addressing_model, .quantifier = .required },
6383 .{ .kind = .memory_model, .quantifier = .required },
6384 },
6385 },
6386 .{
6387 .name = "OpEntryPoint",
6388 .opcode = 15,
6389 .operands = &.{
6390 .{ .kind = .execution_model, .quantifier = .required },
6391 .{ .kind = .id_ref, .quantifier = .required },
6392 .{ .kind = .literal_string, .quantifier = .required },
6393 .{ .kind = .id_ref, .quantifier = .variadic },
6394 },
6395 },
6396 .{
6397 .name = "OpExecutionMode",
6398 .opcode = 16,
6399 .operands = &.{
6400 .{ .kind = .id_ref, .quantifier = .required },
6401 .{ .kind = .execution_mode, .quantifier = .required },
6402 },
6403 },
6404 .{
6405 .name = "OpCapability",
6406 .opcode = 17,
6407 .operands = &.{
6408 .{ .kind = .capability, .quantifier = .required },
6409 },
6410 },
6411 .{
6412 .name = "OpTypeVoid",
6413 .opcode = 19,
6414 .operands = &.{
6415 .{ .kind = .id_result, .quantifier = .required },
6416 },
6417 },
6418 .{
6419 .name = "OpTypeBool",
6420 .opcode = 20,
6421 .operands = &.{
6422 .{ .kind = .id_result, .quantifier = .required },
6423 },
6424 },
6425 .{
6426 .name = "OpTypeInt",
6427 .opcode = 21,
6428 .operands = &.{
6429 .{ .kind = .id_result, .quantifier = .required },
6430 .{ .kind = .literal_integer, .quantifier = .required },
6431 .{ .kind = .literal_integer, .quantifier = .required },
6432 },
6433 },
6434 .{
6435 .name = "OpTypeFloat",
6436 .opcode = 22,
6437 .operands = &.{
6438 .{ .kind = .id_result, .quantifier = .required },
6439 .{ .kind = .literal_integer, .quantifier = .required },
6440 .{ .kind = .fp_encoding, .quantifier = .optional },
6441 },
6442 },
6443 .{
6444 .name = "OpTypeVector",
6445 .opcode = 23,
6446 .operands = &.{
6447 .{ .kind = .id_result, .quantifier = .required },
6448 .{ .kind = .id_ref, .quantifier = .required },
6449 .{ .kind = .literal_integer, .quantifier = .required },
6450 },
6451 },
6452 .{
6453 .name = "OpTypeMatrix",
6454 .opcode = 24,
6455 .operands = &.{
6456 .{ .kind = .id_result, .quantifier = .required },
6457 .{ .kind = .id_ref, .quantifier = .required },
6458 .{ .kind = .literal_integer, .quantifier = .required },
6459 },
6460 },
6461 .{
6462 .name = "OpTypeImage",
6463 .opcode = 25,
6464 .operands = &.{
6465 .{ .kind = .id_result, .quantifier = .required },
6466 .{ .kind = .id_ref, .quantifier = .required },
6467 .{ .kind = .dim, .quantifier = .required },
6468 .{ .kind = .literal_integer, .quantifier = .required },
6469 .{ .kind = .literal_integer, .quantifier = .required },
6470 .{ .kind = .literal_integer, .quantifier = .required },
6471 .{ .kind = .literal_integer, .quantifier = .required },
6472 .{ .kind = .image_format, .quantifier = .required },
6473 .{ .kind = .access_qualifier, .quantifier = .optional },
6474 },
6475 },
6476 .{
6477 .name = "OpTypeSampler",
6478 .opcode = 26,
6479 .operands = &.{
6480 .{ .kind = .id_result, .quantifier = .required },
6481 },
6482 },
6483 .{
6484 .name = "OpTypeSampledImage",
6485 .opcode = 27,
6486 .operands = &.{
6487 .{ .kind = .id_result, .quantifier = .required },
6488 .{ .kind = .id_ref, .quantifier = .required },
6489 },
6490 },
6491 .{
6492 .name = "OpTypeArray",
6493 .opcode = 28,
6494 .operands = &.{
6495 .{ .kind = .id_result, .quantifier = .required },
6496 .{ .kind = .id_ref, .quantifier = .required },
6497 .{ .kind = .id_ref, .quantifier = .required },
6498 },
6499 },
6500 .{
6501 .name = "OpTypeRuntimeArray",
6502 .opcode = 29,
6503 .operands = &.{
6504 .{ .kind = .id_result, .quantifier = .required },
6505 .{ .kind = .id_ref, .quantifier = .required },
6506 },
6507 },
6508 .{
6509 .name = "OpTypeStruct",
6510 .opcode = 30,
6511 .operands = &.{
6512 .{ .kind = .id_result, .quantifier = .required },
6513 .{ .kind = .id_ref, .quantifier = .variadic },
6514 },
6515 },
6516 .{
6517 .name = "OpTypeOpaque",
6518 .opcode = 31,
6519 .operands = &.{
6520 .{ .kind = .id_result, .quantifier = .required },
6521 .{ .kind = .literal_string, .quantifier = .required },
6522 },
6523 },
6524 .{
6525 .name = "OpTypePointer",
6526 .opcode = 32,
6527 .operands = &.{
6528 .{ .kind = .id_result, .quantifier = .required },
6529 .{ .kind = .storage_class, .quantifier = .required },
6530 .{ .kind = .id_ref, .quantifier = .required },
6531 },
6532 },
6533 .{
6534 .name = "OpTypeFunction",
6535 .opcode = 33,
6536 .operands = &.{
6537 .{ .kind = .id_result, .quantifier = .required },
6538 .{ .kind = .id_ref, .quantifier = .required },
6539 .{ .kind = .id_ref, .quantifier = .variadic },
6540 },
6541 },
6542 .{
6543 .name = "OpTypeEvent",
6544 .opcode = 34,
6545 .operands = &.{
6546 .{ .kind = .id_result, .quantifier = .required },
6547 },
6548 },
6549 .{
6550 .name = "OpTypeDeviceEvent",
6551 .opcode = 35,
6552 .operands = &.{
6553 .{ .kind = .id_result, .quantifier = .required },
6554 },
6555 },
6556 .{
6557 .name = "OpTypeReserveId",
6558 .opcode = 36,
6559 .operands = &.{
6560 .{ .kind = .id_result, .quantifier = .required },
6561 },
6562 },
6563 .{
6564 .name = "OpTypeQueue",
6565 .opcode = 37,
6566 .operands = &.{
6567 .{ .kind = .id_result, .quantifier = .required },
6568 },
6569 },
6570 .{
6571 .name = "OpTypePipe",
6572 .opcode = 38,
6573 .operands = &.{
6574 .{ .kind = .id_result, .quantifier = .required },
6575 .{ .kind = .access_qualifier, .quantifier = .required },
6576 },
6577 },
6578 .{
6579 .name = "OpTypeForwardPointer",
6580 .opcode = 39,
6581 .operands = &.{
6582 .{ .kind = .id_ref, .quantifier = .required },
6583 .{ .kind = .storage_class, .quantifier = .required },
6584 },
6585 },
6586 .{
6587 .name = "OpConstantTrue",
6588 .opcode = 41,
6589 .operands = &.{
6590 .{ .kind = .id_result_type, .quantifier = .required },
6591 .{ .kind = .id_result, .quantifier = .required },
6592 },
6593 },
6594 .{
6595 .name = "OpConstantFalse",
6596 .opcode = 42,
6597 .operands = &.{
6598 .{ .kind = .id_result_type, .quantifier = .required },
6599 .{ .kind = .id_result, .quantifier = .required },
6600 },
6601 },
6602 .{
6603 .name = "OpConstant",
6604 .opcode = 43,
6605 .operands = &.{
6606 .{ .kind = .id_result_type, .quantifier = .required },
6607 .{ .kind = .id_result, .quantifier = .required },
6608 .{ .kind = .literal_context_dependent_number, .quantifier = .required },
6609 },
6610 },
6611 .{
6612 .name = "OpConstantComposite",
6613 .opcode = 44,
6614 .operands = &.{
6615 .{ .kind = .id_result_type, .quantifier = .required },
6616 .{ .kind = .id_result, .quantifier = .required },
6617 .{ .kind = .id_ref, .quantifier = .variadic },
6618 },
6619 },
6620 .{
6621 .name = "OpConstantSampler",
6622 .opcode = 45,
6623 .operands = &.{
6624 .{ .kind = .id_result_type, .quantifier = .required },
6625 .{ .kind = .id_result, .quantifier = .required },
6626 .{ .kind = .sampler_addressing_mode, .quantifier = .required },
6627 .{ .kind = .literal_integer, .quantifier = .required },
6628 .{ .kind = .sampler_filter_mode, .quantifier = .required },
6629 },
6630 },
6631 .{
6632 .name = "OpConstantNull",
6633 .opcode = 46,
6634 .operands = &.{
6635 .{ .kind = .id_result_type, .quantifier = .required },
6636 .{ .kind = .id_result, .quantifier = .required },
6637 },
6638 },
6639 .{
6640 .name = "OpSpecConstantTrue",
6641 .opcode = 48,
6642 .operands = &.{
6643 .{ .kind = .id_result_type, .quantifier = .required },
6644 .{ .kind = .id_result, .quantifier = .required },
6645 },
6646 },
6647 .{
6648 .name = "OpSpecConstantFalse",
6649 .opcode = 49,
6650 .operands = &.{
6651 .{ .kind = .id_result_type, .quantifier = .required },
6652 .{ .kind = .id_result, .quantifier = .required },
6653 },
6654 },
6655 .{
6656 .name = "OpSpecConstant",
6657 .opcode = 50,
6658 .operands = &.{
6659 .{ .kind = .id_result_type, .quantifier = .required },
6660 .{ .kind = .id_result, .quantifier = .required },
6661 .{ .kind = .literal_context_dependent_number, .quantifier = .required },
6662 },
6663 },
6664 .{
6665 .name = "OpSpecConstantComposite",
6666 .opcode = 51,
6667 .operands = &.{
6668 .{ .kind = .id_result_type, .quantifier = .required },
6669 .{ .kind = .id_result, .quantifier = .required },
6670 .{ .kind = .id_ref, .quantifier = .variadic },
6671 },
6672 },
6673 .{
6674 .name = "OpSpecConstantOp",
6675 .opcode = 52,
6676 .operands = &.{
6677 .{ .kind = .id_result_type, .quantifier = .required },
6678 .{ .kind = .id_result, .quantifier = .required },
6679 .{ .kind = .literal_spec_constant_op_integer, .quantifier = .required },
6680 },
6681 },
6682 .{
6683 .name = "OpFunction",
6684 .opcode = 54,
6685 .operands = &.{
6686 .{ .kind = .id_result_type, .quantifier = .required },
6687 .{ .kind = .id_result, .quantifier = .required },
6688 .{ .kind = .function_control, .quantifier = .required },
6689 .{ .kind = .id_ref, .quantifier = .required },
6690 },
6691 },
6692 .{
6693 .name = "OpFunctionParameter",
6694 .opcode = 55,
6695 .operands = &.{
6696 .{ .kind = .id_result_type, .quantifier = .required },
6697 .{ .kind = .id_result, .quantifier = .required },
6698 },
6699 },
6700 .{
6701 .name = "OpFunctionEnd",
6702 .opcode = 56,
6703 .operands = &.{},
6704 },
6705 .{
6706 .name = "OpFunctionCall",
6707 .opcode = 57,
6708 .operands = &.{
6709 .{ .kind = .id_result_type, .quantifier = .required },
6710 .{ .kind = .id_result, .quantifier = .required },
6711 .{ .kind = .id_ref, .quantifier = .required },
6712 .{ .kind = .id_ref, .quantifier = .variadic },
6713 },
6714 },
6715 .{
6716 .name = "OpVariable",
6717 .opcode = 59,
6718 .operands = &.{
6719 .{ .kind = .id_result_type, .quantifier = .required },
6720 .{ .kind = .id_result, .quantifier = .required },
6721 .{ .kind = .storage_class, .quantifier = .required },
6722 .{ .kind = .id_ref, .quantifier = .optional },
6723 },
6724 },
6725 .{
6726 .name = "OpImageTexelPointer",
6727 .opcode = 60,
6728 .operands = &.{
6729 .{ .kind = .id_result_type, .quantifier = .required },
6730 .{ .kind = .id_result, .quantifier = .required },
6731 .{ .kind = .id_ref, .quantifier = .required },
6732 .{ .kind = .id_ref, .quantifier = .required },
6733 .{ .kind = .id_ref, .quantifier = .required },
6734 },
6735 },
6736 .{
6737 .name = "OpLoad",
6738 .opcode = 61,
6739 .operands = &.{
6740 .{ .kind = .id_result_type, .quantifier = .required },
6741 .{ .kind = .id_result, .quantifier = .required },
6742 .{ .kind = .id_ref, .quantifier = .required },
6743 .{ .kind = .memory_access, .quantifier = .optional },
6744 },
6745 },
6746 .{
6747 .name = "OpStore",
6748 .opcode = 62,
6749 .operands = &.{
6750 .{ .kind = .id_ref, .quantifier = .required },
6751 .{ .kind = .id_ref, .quantifier = .required },
6752 .{ .kind = .memory_access, .quantifier = .optional },
6753 },
6754 },
6755 .{
6756 .name = "OpCopyMemory",
6757 .opcode = 63,
6758 .operands = &.{
6759 .{ .kind = .id_ref, .quantifier = .required },
6760 .{ .kind = .id_ref, .quantifier = .required },
6761 .{ .kind = .memory_access, .quantifier = .optional },
6762 .{ .kind = .memory_access, .quantifier = .optional },
6763 },
6764 },
6765 .{
6766 .name = "OpCopyMemorySized",
6767 .opcode = 64,
6768 .operands = &.{
6769 .{ .kind = .id_ref, .quantifier = .required },
6770 .{ .kind = .id_ref, .quantifier = .required },
6771 .{ .kind = .id_ref, .quantifier = .required },
6772 .{ .kind = .memory_access, .quantifier = .optional },
6773 .{ .kind = .memory_access, .quantifier = .optional },
6774 },
6775 },
6776 .{
6777 .name = "OpAccessChain",
6778 .opcode = 65,
6779 .operands = &.{
6780 .{ .kind = .id_result_type, .quantifier = .required },
6781 .{ .kind = .id_result, .quantifier = .required },
6782 .{ .kind = .id_ref, .quantifier = .required },
6783 .{ .kind = .id_ref, .quantifier = .variadic },
6784 },
6785 },
6786 .{
6787 .name = "OpInBoundsAccessChain",
6788 .opcode = 66,
6789 .operands = &.{
6790 .{ .kind = .id_result_type, .quantifier = .required },
6791 .{ .kind = .id_result, .quantifier = .required },
6792 .{ .kind = .id_ref, .quantifier = .required },
6793 .{ .kind = .id_ref, .quantifier = .variadic },
6794 },
6795 },
6796 .{
6797 .name = "OpPtrAccessChain",
6798 .opcode = 67,
6799 .operands = &.{
6800 .{ .kind = .id_result_type, .quantifier = .required },
6801 .{ .kind = .id_result, .quantifier = .required },
6802 .{ .kind = .id_ref, .quantifier = .required },
6803 .{ .kind = .id_ref, .quantifier = .required },
6804 .{ .kind = .id_ref, .quantifier = .variadic },
6805 },
6806 },
6807 .{
6808 .name = "OpArrayLength",
6809 .opcode = 68,
6810 .operands = &.{
6811 .{ .kind = .id_result_type, .quantifier = .required },
6812 .{ .kind = .id_result, .quantifier = .required },
6813 .{ .kind = .id_ref, .quantifier = .required },
6814 .{ .kind = .literal_integer, .quantifier = .required },
6815 },
6816 },
6817 .{
6818 .name = "OpGenericPtrMemSemantics",
6819 .opcode = 69,
6820 .operands = &.{
6821 .{ .kind = .id_result_type, .quantifier = .required },
6822 .{ .kind = .id_result, .quantifier = .required },
6823 .{ .kind = .id_ref, .quantifier = .required },
6824 },
6825 },
6826 .{
6827 .name = "OpInBoundsPtrAccessChain",
6828 .opcode = 70,
6829 .operands = &.{
6830 .{ .kind = .id_result_type, .quantifier = .required },
6831 .{ .kind = .id_result, .quantifier = .required },
6832 .{ .kind = .id_ref, .quantifier = .required },
6833 .{ .kind = .id_ref, .quantifier = .required },
6834 .{ .kind = .id_ref, .quantifier = .variadic },
6835 },
6836 },
6837 .{
6838 .name = "OpDecorate",
6839 .opcode = 71,
6840 .operands = &.{
6841 .{ .kind = .id_ref, .quantifier = .required },
6842 .{ .kind = .decoration, .quantifier = .required },
6843 },
6844 },
6845 .{
6846 .name = "OpMemberDecorate",
6847 .opcode = 72,
6848 .operands = &.{
6849 .{ .kind = .id_ref, .quantifier = .required },
6850 .{ .kind = .literal_integer, .quantifier = .required },
6851 .{ .kind = .decoration, .quantifier = .required },
6852 },
6853 },
6854 .{
6855 .name = "OpDecorationGroup",
6856 .opcode = 73,
6857 .operands = &.{
6858 .{ .kind = .id_result, .quantifier = .required },
6859 },
6860 },
6861 .{
6862 .name = "OpGroupDecorate",
6863 .opcode = 74,
6864 .operands = &.{
6865 .{ .kind = .id_ref, .quantifier = .required },
6866 .{ .kind = .id_ref, .quantifier = .variadic },
6867 },
6868 },
6869 .{
6870 .name = "OpGroupMemberDecorate",
6871 .opcode = 75,
6872 .operands = &.{
6873 .{ .kind = .id_ref, .quantifier = .required },
6874 .{ .kind = .pair_id_ref_literal_integer, .quantifier = .variadic },
6875 },
6876 },
6877 .{
6878 .name = "OpVectorExtractDynamic",
6879 .opcode = 77,
6880 .operands = &.{
6881 .{ .kind = .id_result_type, .quantifier = .required },
6882 .{ .kind = .id_result, .quantifier = .required },
6883 .{ .kind = .id_ref, .quantifier = .required },
6884 .{ .kind = .id_ref, .quantifier = .required },
6885 },
6886 },
6887 .{
6888 .name = "OpVectorInsertDynamic",
6889 .opcode = 78,
6890 .operands = &.{
6891 .{ .kind = .id_result_type, .quantifier = .required },
6892 .{ .kind = .id_result, .quantifier = .required },
6893 .{ .kind = .id_ref, .quantifier = .required },
6894 .{ .kind = .id_ref, .quantifier = .required },
6895 .{ .kind = .id_ref, .quantifier = .required },
6896 },
6897 },
6898 .{
6899 .name = "OpVectorShuffle",
6900 .opcode = 79,
6901 .operands = &.{
6902 .{ .kind = .id_result_type, .quantifier = .required },
6903 .{ .kind = .id_result, .quantifier = .required },
6904 .{ .kind = .id_ref, .quantifier = .required },
6905 .{ .kind = .id_ref, .quantifier = .required },
6906 .{ .kind = .literal_integer, .quantifier = .variadic },
6907 },
6908 },
6909 .{
6910 .name = "OpCompositeConstruct",
6911 .opcode = 80,
6912 .operands = &.{
6913 .{ .kind = .id_result_type, .quantifier = .required },
6914 .{ .kind = .id_result, .quantifier = .required },
6915 .{ .kind = .id_ref, .quantifier = .variadic },
6916 },
6917 },
6918 .{
6919 .name = "OpCompositeExtract",
6920 .opcode = 81,
6921 .operands = &.{
6922 .{ .kind = .id_result_type, .quantifier = .required },
6923 .{ .kind = .id_result, .quantifier = .required },
6924 .{ .kind = .id_ref, .quantifier = .required },
6925 .{ .kind = .literal_integer, .quantifier = .variadic },
6926 },
6927 },
6928 .{
6929 .name = "OpCompositeInsert",
6930 .opcode = 82,
6931 .operands = &.{
6932 .{ .kind = .id_result_type, .quantifier = .required },
6933 .{ .kind = .id_result, .quantifier = .required },
6934 .{ .kind = .id_ref, .quantifier = .required },
6935 .{ .kind = .id_ref, .quantifier = .required },
6936 .{ .kind = .literal_integer, .quantifier = .variadic },
6937 },
6938 },
6939 .{
6940 .name = "OpCopyObject",
6941 .opcode = 83,
6942 .operands = &.{
6943 .{ .kind = .id_result_type, .quantifier = .required },
6944 .{ .kind = .id_result, .quantifier = .required },
6945 .{ .kind = .id_ref, .quantifier = .required },
6946 },
6947 },
6948 .{
6949 .name = "OpTranspose",
6950 .opcode = 84,
6951 .operands = &.{
6952 .{ .kind = .id_result_type, .quantifier = .required },
6953 .{ .kind = .id_result, .quantifier = .required },
6954 .{ .kind = .id_ref, .quantifier = .required },
6955 },
6956 },
6957 .{
6958 .name = "OpSampledImage",
6959 .opcode = 86,
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 = "OpImageSampleImplicitLod",
6969 .opcode = 87,
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 .{ .kind = .image_operands, .quantifier = .optional },
6976 },
6977 },
6978 .{
6979 .name = "OpImageSampleExplicitLod",
6980 .opcode = 88,
6981 .operands = &.{
6982 .{ .kind = .id_result_type, .quantifier = .required },
6983 .{ .kind = .id_result, .quantifier = .required },
6984 .{ .kind = .id_ref, .quantifier = .required },
6985 .{ .kind = .id_ref, .quantifier = .required },
6986 .{ .kind = .image_operands, .quantifier = .required },
6987 },
6988 },
6989 .{
6990 .name = "OpImageSampleDrefImplicitLod",
6991 .opcode = 89,
6992 .operands = &.{
6993 .{ .kind = .id_result_type, .quantifier = .required },
6994 .{ .kind = .id_result, .quantifier = .required },
6995 .{ .kind = .id_ref, .quantifier = .required },
6996 .{ .kind = .id_ref, .quantifier = .required },
6997 .{ .kind = .id_ref, .quantifier = .required },
6998 .{ .kind = .image_operands, .quantifier = .optional },
6999 },
7000 },
7001 .{
7002 .name = "OpImageSampleDrefExplicitLod",
7003 .opcode = 90,
7004 .operands = &.{
7005 .{ .kind = .id_result_type, .quantifier = .required },
7006 .{ .kind = .id_result, .quantifier = .required },
7007 .{ .kind = .id_ref, .quantifier = .required },
7008 .{ .kind = .id_ref, .quantifier = .required },
7009 .{ .kind = .id_ref, .quantifier = .required },
7010 .{ .kind = .image_operands, .quantifier = .required },
7011 },
7012 },
7013 .{
7014 .name = "OpImageSampleProjImplicitLod",
7015 .opcode = 91,
7016 .operands = &.{
7017 .{ .kind = .id_result_type, .quantifier = .required },
7018 .{ .kind = .id_result, .quantifier = .required },
7019 .{ .kind = .id_ref, .quantifier = .required },
7020 .{ .kind = .id_ref, .quantifier = .required },
7021 .{ .kind = .image_operands, .quantifier = .optional },
7022 },
7023 },
7024 .{
7025 .name = "OpImageSampleProjExplicitLod",
7026 .opcode = 92,
7027 .operands = &.{
7028 .{ .kind = .id_result_type, .quantifier = .required },
7029 .{ .kind = .id_result, .quantifier = .required },
7030 .{ .kind = .id_ref, .quantifier = .required },
7031 .{ .kind = .id_ref, .quantifier = .required },
7032 .{ .kind = .image_operands, .quantifier = .required },
7033 },
7034 },
7035 .{
7036 .name = "OpImageSampleProjDrefImplicitLod",
7037 .opcode = 93,
7038 .operands = &.{
7039 .{ .kind = .id_result_type, .quantifier = .required },
7040 .{ .kind = .id_result, .quantifier = .required },
7041 .{ .kind = .id_ref, .quantifier = .required },
7042 .{ .kind = .id_ref, .quantifier = .required },
7043 .{ .kind = .id_ref, .quantifier = .required },
7044 .{ .kind = .image_operands, .quantifier = .optional },
7045 },
7046 },
7047 .{
7048 .name = "OpImageSampleProjDrefExplicitLod",
7049 .opcode = 94,
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 .{ .kind = .id_ref, .quantifier = .required },
7056 .{ .kind = .image_operands, .quantifier = .required },
7057 },
7058 },
7059 .{
7060 .name = "OpImageFetch",
7061 .opcode = 95,
7062 .operands = &.{
7063 .{ .kind = .id_result_type, .quantifier = .required },
7064 .{ .kind = .id_result, .quantifier = .required },
7065 .{ .kind = .id_ref, .quantifier = .required },
7066 .{ .kind = .id_ref, .quantifier = .required },
7067 .{ .kind = .image_operands, .quantifier = .optional },
7068 },
7069 },
7070 .{
7071 .name = "OpImageGather",
7072 .opcode = 96,
7073 .operands = &.{
7074 .{ .kind = .id_result_type, .quantifier = .required },
7075 .{ .kind = .id_result, .quantifier = .required },
7076 .{ .kind = .id_ref, .quantifier = .required },
7077 .{ .kind = .id_ref, .quantifier = .required },
7078 .{ .kind = .id_ref, .quantifier = .required },
7079 .{ .kind = .image_operands, .quantifier = .optional },
7080 },
7081 },
7082 .{
7083 .name = "OpImageDrefGather",
7084 .opcode = 97,
7085 .operands = &.{
7086 .{ .kind = .id_result_type, .quantifier = .required },
7087 .{ .kind = .id_result, .quantifier = .required },
7088 .{ .kind = .id_ref, .quantifier = .required },
7089 .{ .kind = .id_ref, .quantifier = .required },
7090 .{ .kind = .id_ref, .quantifier = .required },
7091 .{ .kind = .image_operands, .quantifier = .optional },
7092 },
7093 },
7094 .{
7095 .name = "OpImageRead",
7096 .opcode = 98,
7097 .operands = &.{
7098 .{ .kind = .id_result_type, .quantifier = .required },
7099 .{ .kind = .id_result, .quantifier = .required },
7100 .{ .kind = .id_ref, .quantifier = .required },
7101 .{ .kind = .id_ref, .quantifier = .required },
7102 .{ .kind = .image_operands, .quantifier = .optional },
7103 },
7104 },
7105 .{
7106 .name = "OpImageWrite",
7107 .opcode = 99,
7108 .operands = &.{
7109 .{ .kind = .id_ref, .quantifier = .required },
7110 .{ .kind = .id_ref, .quantifier = .required },
7111 .{ .kind = .id_ref, .quantifier = .required },
7112 .{ .kind = .image_operands, .quantifier = .optional },
7113 },
7114 },
7115 .{
7116 .name = "OpImage",
7117 .opcode = 100,
7118 .operands = &.{
7119 .{ .kind = .id_result_type, .quantifier = .required },
7120 .{ .kind = .id_result, .quantifier = .required },
7121 .{ .kind = .id_ref, .quantifier = .required },
7122 },
7123 },
7124 .{
7125 .name = "OpImageQueryFormat",
7126 .opcode = 101,
7127 .operands = &.{
7128 .{ .kind = .id_result_type, .quantifier = .required },
7129 .{ .kind = .id_result, .quantifier = .required },
7130 .{ .kind = .id_ref, .quantifier = .required },
7131 },
7132 },
7133 .{
7134 .name = "OpImageQueryOrder",
7135 .opcode = 102,
7136 .operands = &.{
7137 .{ .kind = .id_result_type, .quantifier = .required },
7138 .{ .kind = .id_result, .quantifier = .required },
7139 .{ .kind = .id_ref, .quantifier = .required },
7140 },
7141 },
7142 .{
7143 .name = "OpImageQuerySizeLod",
7144 .opcode = 103,
7145 .operands = &.{
7146 .{ .kind = .id_result_type, .quantifier = .required },
7147 .{ .kind = .id_result, .quantifier = .required },
7148 .{ .kind = .id_ref, .quantifier = .required },
7149 .{ .kind = .id_ref, .quantifier = .required },
7150 },
7151 },
7152 .{
7153 .name = "OpImageQuerySize",
7154 .opcode = 104,
7155 .operands = &.{
7156 .{ .kind = .id_result_type, .quantifier = .required },
7157 .{ .kind = .id_result, .quantifier = .required },
7158 .{ .kind = .id_ref, .quantifier = .required },
7159 },
7160 },
7161 .{
7162 .name = "OpImageQueryLod",
7163 .opcode = 105,
7164 .operands = &.{
7165 .{ .kind = .id_result_type, .quantifier = .required },
7166 .{ .kind = .id_result, .quantifier = .required },
7167 .{ .kind = .id_ref, .quantifier = .required },
7168 .{ .kind = .id_ref, .quantifier = .required },
7169 },
7170 },
7171 .{
7172 .name = "OpImageQueryLevels",
7173 .opcode = 106,
7174 .operands = &.{
7175 .{ .kind = .id_result_type, .quantifier = .required },
7176 .{ .kind = .id_result, .quantifier = .required },
7177 .{ .kind = .id_ref, .quantifier = .required },
7178 },
7179 },
7180 .{
7181 .name = "OpImageQuerySamples",
7182 .opcode = 107,
7183 .operands = &.{
7184 .{ .kind = .id_result_type, .quantifier = .required },
7185 .{ .kind = .id_result, .quantifier = .required },
7186 .{ .kind = .id_ref, .quantifier = .required },
7187 },
7188 },
7189 .{
7190 .name = "OpConvertFToU",
7191 .opcode = 109,
7192 .operands = &.{
7193 .{ .kind = .id_result_type, .quantifier = .required },
7194 .{ .kind = .id_result, .quantifier = .required },
7195 .{ .kind = .id_ref, .quantifier = .required },
7196 },
7197 },
7198 .{
7199 .name = "OpConvertFToS",
7200 .opcode = 110,
7201 .operands = &.{
7202 .{ .kind = .id_result_type, .quantifier = .required },
7203 .{ .kind = .id_result, .quantifier = .required },
7204 .{ .kind = .id_ref, .quantifier = .required },
7205 },
7206 },
7207 .{
7208 .name = "OpConvertSToF",
7209 .opcode = 111,
7210 .operands = &.{
7211 .{ .kind = .id_result_type, .quantifier = .required },
7212 .{ .kind = .id_result, .quantifier = .required },
7213 .{ .kind = .id_ref, .quantifier = .required },
7214 },
7215 },
7216 .{
7217 .name = "OpConvertUToF",
7218 .opcode = 112,
7219 .operands = &.{
7220 .{ .kind = .id_result_type, .quantifier = .required },
7221 .{ .kind = .id_result, .quantifier = .required },
7222 .{ .kind = .id_ref, .quantifier = .required },
7223 },
7224 },
7225 .{
7226 .name = "OpUConvert",
7227 .opcode = 113,
7228 .operands = &.{
7229 .{ .kind = .id_result_type, .quantifier = .required },
7230 .{ .kind = .id_result, .quantifier = .required },
7231 .{ .kind = .id_ref, .quantifier = .required },
7232 },
7233 },
7234 .{
7235 .name = "OpSConvert",
7236 .opcode = 114,
7237 .operands = &.{
7238 .{ .kind = .id_result_type, .quantifier = .required },
7239 .{ .kind = .id_result, .quantifier = .required },
7240 .{ .kind = .id_ref, .quantifier = .required },
7241 },
7242 },
7243 .{
7244 .name = "OpFConvert",
7245 .opcode = 115,
7246 .operands = &.{
7247 .{ .kind = .id_result_type, .quantifier = .required },
7248 .{ .kind = .id_result, .quantifier = .required },
7249 .{ .kind = .id_ref, .quantifier = .required },
7250 },
7251 },
7252 .{
7253 .name = "OpQuantizeToF16",
7254 .opcode = 116,
7255 .operands = &.{
7256 .{ .kind = .id_result_type, .quantifier = .required },
7257 .{ .kind = .id_result, .quantifier = .required },
7258 .{ .kind = .id_ref, .quantifier = .required },
7259 },
7260 },
7261 .{
7262 .name = "OpConvertPtrToU",
7263 .opcode = 117,
7264 .operands = &.{
7265 .{ .kind = .id_result_type, .quantifier = .required },
7266 .{ .kind = .id_result, .quantifier = .required },
7267 .{ .kind = .id_ref, .quantifier = .required },
7268 },
7269 },
7270 .{
7271 .name = "OpSatConvertSToU",
7272 .opcode = 118,
7273 .operands = &.{
7274 .{ .kind = .id_result_type, .quantifier = .required },
7275 .{ .kind = .id_result, .quantifier = .required },
7276 .{ .kind = .id_ref, .quantifier = .required },
7277 },
7278 },
7279 .{
7280 .name = "OpSatConvertUToS",
7281 .opcode = 119,
7282 .operands = &.{
7283 .{ .kind = .id_result_type, .quantifier = .required },
7284 .{ .kind = .id_result, .quantifier = .required },
7285 .{ .kind = .id_ref, .quantifier = .required },
7286 },
7287 },
7288 .{
7289 .name = "OpConvertUToPtr",
7290 .opcode = 120,
7291 .operands = &.{
7292 .{ .kind = .id_result_type, .quantifier = .required },
7293 .{ .kind = .id_result, .quantifier = .required },
7294 .{ .kind = .id_ref, .quantifier = .required },
7295 },
7296 },
7297 .{
7298 .name = "OpPtrCastToGeneric",
7299 .opcode = 121,
7300 .operands = &.{
7301 .{ .kind = .id_result_type, .quantifier = .required },
7302 .{ .kind = .id_result, .quantifier = .required },
7303 .{ .kind = .id_ref, .quantifier = .required },
7304 },
7305 },
7306 .{
7307 .name = "OpGenericCastToPtr",
7308 .opcode = 122,
7309 .operands = &.{
7310 .{ .kind = .id_result_type, .quantifier = .required },
7311 .{ .kind = .id_result, .quantifier = .required },
7312 .{ .kind = .id_ref, .quantifier = .required },
7313 },
7314 },
7315 .{
7316 .name = "OpGenericCastToPtrExplicit",
7317 .opcode = 123,
7318 .operands = &.{
7319 .{ .kind = .id_result_type, .quantifier = .required },
7320 .{ .kind = .id_result, .quantifier = .required },
7321 .{ .kind = .id_ref, .quantifier = .required },
7322 .{ .kind = .storage_class, .quantifier = .required },
7323 },
7324 },
7325 .{
7326 .name = "OpBitcast",
7327 .opcode = 124,
7328 .operands = &.{
7329 .{ .kind = .id_result_type, .quantifier = .required },
7330 .{ .kind = .id_result, .quantifier = .required },
7331 .{ .kind = .id_ref, .quantifier = .required },
7332 },
7333 },
7334 .{
7335 .name = "OpSNegate",
7336 .opcode = 126,
7337 .operands = &.{
7338 .{ .kind = .id_result_type, .quantifier = .required },
7339 .{ .kind = .id_result, .quantifier = .required },
7340 .{ .kind = .id_ref, .quantifier = .required },
7341 },
7342 },
7343 .{
7344 .name = "OpFNegate",
7345 .opcode = 127,
7346 .operands = &.{
7347 .{ .kind = .id_result_type, .quantifier = .required },
7348 .{ .kind = .id_result, .quantifier = .required },
7349 .{ .kind = .id_ref, .quantifier = .required },
7350 },
7351 },
7352 .{
7353 .name = "OpIAdd",
7354 .opcode = 128,
7355 .operands = &.{
7356 .{ .kind = .id_result_type, .quantifier = .required },
7357 .{ .kind = .id_result, .quantifier = .required },
7358 .{ .kind = .id_ref, .quantifier = .required },
7359 .{ .kind = .id_ref, .quantifier = .required },
7360 },
7361 },
7362 .{
7363 .name = "OpFAdd",
7364 .opcode = 129,
7365 .operands = &.{
7366 .{ .kind = .id_result_type, .quantifier = .required },
7367 .{ .kind = .id_result, .quantifier = .required },
7368 .{ .kind = .id_ref, .quantifier = .required },
7369 .{ .kind = .id_ref, .quantifier = .required },
7370 },
7371 },
7372 .{
7373 .name = "OpISub",
7374 .opcode = 130,
7375 .operands = &.{
7376 .{ .kind = .id_result_type, .quantifier = .required },
7377 .{ .kind = .id_result, .quantifier = .required },
7378 .{ .kind = .id_ref, .quantifier = .required },
7379 .{ .kind = .id_ref, .quantifier = .required },
7380 },
7381 },
7382 .{
7383 .name = "OpFSub",
7384 .opcode = 131,
7385 .operands = &.{
7386 .{ .kind = .id_result_type, .quantifier = .required },
7387 .{ .kind = .id_result, .quantifier = .required },
7388 .{ .kind = .id_ref, .quantifier = .required },
7389 .{ .kind = .id_ref, .quantifier = .required },
7390 },
7391 },
7392 .{
7393 .name = "OpIMul",
7394 .opcode = 132,
7395 .operands = &.{
7396 .{ .kind = .id_result_type, .quantifier = .required },
7397 .{ .kind = .id_result, .quantifier = .required },
7398 .{ .kind = .id_ref, .quantifier = .required },
7399 .{ .kind = .id_ref, .quantifier = .required },
7400 },
7401 },
7402 .{
7403 .name = "OpFMul",
7404 .opcode = 133,
7405 .operands = &.{
7406 .{ .kind = .id_result_type, .quantifier = .required },
7407 .{ .kind = .id_result, .quantifier = .required },
7408 .{ .kind = .id_ref, .quantifier = .required },
7409 .{ .kind = .id_ref, .quantifier = .required },
7410 },
7411 },
7412 .{
7413 .name = "OpUDiv",
7414 .opcode = 134,
7415 .operands = &.{
7416 .{ .kind = .id_result_type, .quantifier = .required },
7417 .{ .kind = .id_result, .quantifier = .required },
7418 .{ .kind = .id_ref, .quantifier = .required },
7419 .{ .kind = .id_ref, .quantifier = .required },
7420 },
7421 },
7422 .{
7423 .name = "OpSDiv",
7424 .opcode = 135,
7425 .operands = &.{
7426 .{ .kind = .id_result_type, .quantifier = .required },
7427 .{ .kind = .id_result, .quantifier = .required },
7428 .{ .kind = .id_ref, .quantifier = .required },
7429 .{ .kind = .id_ref, .quantifier = .required },
7430 },
7431 },
7432 .{
7433 .name = "OpFDiv",
7434 .opcode = 136,
7435 .operands = &.{
7436 .{ .kind = .id_result_type, .quantifier = .required },
7437 .{ .kind = .id_result, .quantifier = .required },
7438 .{ .kind = .id_ref, .quantifier = .required },
7439 .{ .kind = .id_ref, .quantifier = .required },
7440 },
7441 },
7442 .{
7443 .name = "OpUMod",
7444 .opcode = 137,
7445 .operands = &.{
7446 .{ .kind = .id_result_type, .quantifier = .required },
7447 .{ .kind = .id_result, .quantifier = .required },
7448 .{ .kind = .id_ref, .quantifier = .required },
7449 .{ .kind = .id_ref, .quantifier = .required },
7450 },
7451 },
7452 .{
7453 .name = "OpSRem",
7454 .opcode = 138,
7455 .operands = &.{
7456 .{ .kind = .id_result_type, .quantifier = .required },
7457 .{ .kind = .id_result, .quantifier = .required },
7458 .{ .kind = .id_ref, .quantifier = .required },
7459 .{ .kind = .id_ref, .quantifier = .required },
7460 },
7461 },
7462 .{
7463 .name = "OpSMod",
7464 .opcode = 139,
7465 .operands = &.{
7466 .{ .kind = .id_result_type, .quantifier = .required },
7467 .{ .kind = .id_result, .quantifier = .required },
7468 .{ .kind = .id_ref, .quantifier = .required },
7469 .{ .kind = .id_ref, .quantifier = .required },
7470 },
7471 },
7472 .{
7473 .name = "OpFRem",
7474 .opcode = 140,
7475 .operands = &.{
7476 .{ .kind = .id_result_type, .quantifier = .required },
7477 .{ .kind = .id_result, .quantifier = .required },
7478 .{ .kind = .id_ref, .quantifier = .required },
7479 .{ .kind = .id_ref, .quantifier = .required },
7480 },
7481 },
7482 .{
7483 .name = "OpFMod",
7484 .opcode = 141,
7485 .operands = &.{
7486 .{ .kind = .id_result_type, .quantifier = .required },
7487 .{ .kind = .id_result, .quantifier = .required },
7488 .{ .kind = .id_ref, .quantifier = .required },
7489 .{ .kind = .id_ref, .quantifier = .required },
7490 },
7491 },
7492 .{
7493 .name = "OpVectorTimesScalar",
7494 .opcode = 142,
7495 .operands = &.{
7496 .{ .kind = .id_result_type, .quantifier = .required },
7497 .{ .kind = .id_result, .quantifier = .required },
7498 .{ .kind = .id_ref, .quantifier = .required },
7499 .{ .kind = .id_ref, .quantifier = .required },
7500 },
7501 },
7502 .{
7503 .name = "OpMatrixTimesScalar",
7504 .opcode = 143,
7505 .operands = &.{
7506 .{ .kind = .id_result_type, .quantifier = .required },
7507 .{ .kind = .id_result, .quantifier = .required },
7508 .{ .kind = .id_ref, .quantifier = .required },
7509 .{ .kind = .id_ref, .quantifier = .required },
7510 },
7511 },
7512 .{
7513 .name = "OpVectorTimesMatrix",
7514 .opcode = 144,
7515 .operands = &.{
7516 .{ .kind = .id_result_type, .quantifier = .required },
7517 .{ .kind = .id_result, .quantifier = .required },
7518 .{ .kind = .id_ref, .quantifier = .required },
7519 .{ .kind = .id_ref, .quantifier = .required },
7520 },
7521 },
7522 .{
7523 .name = "OpMatrixTimesVector",
7524 .opcode = 145,
7525 .operands = &.{
7526 .{ .kind = .id_result_type, .quantifier = .required },
7527 .{ .kind = .id_result, .quantifier = .required },
7528 .{ .kind = .id_ref, .quantifier = .required },
7529 .{ .kind = .id_ref, .quantifier = .required },
7530 },
7531 },
7532 .{
7533 .name = "OpMatrixTimesMatrix",
7534 .opcode = 146,
7535 .operands = &.{
7536 .{ .kind = .id_result_type, .quantifier = .required },
7537 .{ .kind = .id_result, .quantifier = .required },
7538 .{ .kind = .id_ref, .quantifier = .required },
7539 .{ .kind = .id_ref, .quantifier = .required },
7540 },
7541 },
7542 .{
7543 .name = "OpOuterProduct",
7544 .opcode = 147,
7545 .operands = &.{
7546 .{ .kind = .id_result_type, .quantifier = .required },
7547 .{ .kind = .id_result, .quantifier = .required },
7548 .{ .kind = .id_ref, .quantifier = .required },
7549 .{ .kind = .id_ref, .quantifier = .required },
7550 },
7551 },
7552 .{
7553 .name = "OpDot",
7554 .opcode = 148,
7555 .operands = &.{
7556 .{ .kind = .id_result_type, .quantifier = .required },
7557 .{ .kind = .id_result, .quantifier = .required },
7558 .{ .kind = .id_ref, .quantifier = .required },
7559 .{ .kind = .id_ref, .quantifier = .required },
7560 },
7561 },
7562 .{
7563 .name = "OpIAddCarry",
7564 .opcode = 149,
7565 .operands = &.{
7566 .{ .kind = .id_result_type, .quantifier = .required },
7567 .{ .kind = .id_result, .quantifier = .required },
7568 .{ .kind = .id_ref, .quantifier = .required },
7569 .{ .kind = .id_ref, .quantifier = .required },
7570 },
7571 },
7572 .{
7573 .name = "OpISubBorrow",
7574 .opcode = 150,
7575 .operands = &.{
7576 .{ .kind = .id_result_type, .quantifier = .required },
7577 .{ .kind = .id_result, .quantifier = .required },
7578 .{ .kind = .id_ref, .quantifier = .required },
7579 .{ .kind = .id_ref, .quantifier = .required },
7580 },
7581 },
7582 .{
7583 .name = "OpUMulExtended",
7584 .opcode = 151,
7585 .operands = &.{
7586 .{ .kind = .id_result_type, .quantifier = .required },
7587 .{ .kind = .id_result, .quantifier = .required },
7588 .{ .kind = .id_ref, .quantifier = .required },
7589 .{ .kind = .id_ref, .quantifier = .required },
7590 },
7591 },
7592 .{
7593 .name = "OpSMulExtended",
7594 .opcode = 152,
7595 .operands = &.{
7596 .{ .kind = .id_result_type, .quantifier = .required },
7597 .{ .kind = .id_result, .quantifier = .required },
7598 .{ .kind = .id_ref, .quantifier = .required },
7599 .{ .kind = .id_ref, .quantifier = .required },
7600 },
7601 },
7602 .{
7603 .name = "OpAny",
7604 .opcode = 154,
7605 .operands = &.{
7606 .{ .kind = .id_result_type, .quantifier = .required },
7607 .{ .kind = .id_result, .quantifier = .required },
7608 .{ .kind = .id_ref, .quantifier = .required },
7609 },
7610 },
7611 .{
7612 .name = "OpAll",
7613 .opcode = 155,
7614 .operands = &.{
7615 .{ .kind = .id_result_type, .quantifier = .required },
7616 .{ .kind = .id_result, .quantifier = .required },
7617 .{ .kind = .id_ref, .quantifier = .required },
7618 },
7619 },
7620 .{
7621 .name = "OpIsNan",
7622 .opcode = 156,
7623 .operands = &.{
7624 .{ .kind = .id_result_type, .quantifier = .required },
7625 .{ .kind = .id_result, .quantifier = .required },
7626 .{ .kind = .id_ref, .quantifier = .required },
7627 },
7628 },
7629 .{
7630 .name = "OpIsInf",
7631 .opcode = 157,
7632 .operands = &.{
7633 .{ .kind = .id_result_type, .quantifier = .required },
7634 .{ .kind = .id_result, .quantifier = .required },
7635 .{ .kind = .id_ref, .quantifier = .required },
7636 },
7637 },
7638 .{
7639 .name = "OpIsFinite",
7640 .opcode = 158,
7641 .operands = &.{
7642 .{ .kind = .id_result_type, .quantifier = .required },
7643 .{ .kind = .id_result, .quantifier = .required },
7644 .{ .kind = .id_ref, .quantifier = .required },
7645 },
7646 },
7647 .{
7648 .name = "OpIsNormal",
7649 .opcode = 159,
7650 .operands = &.{
7651 .{ .kind = .id_result_type, .quantifier = .required },
7652 .{ .kind = .id_result, .quantifier = .required },
7653 .{ .kind = .id_ref, .quantifier = .required },
7654 },
7655 },
7656 .{
7657 .name = "OpSignBitSet",
7658 .opcode = 160,
7659 .operands = &.{
7660 .{ .kind = .id_result_type, .quantifier = .required },
7661 .{ .kind = .id_result, .quantifier = .required },
7662 .{ .kind = .id_ref, .quantifier = .required },
7663 },
7664 },
7665 .{
7666 .name = "OpLessOrGreater",
7667 .opcode = 161,
7668 .operands = &.{
7669 .{ .kind = .id_result_type, .quantifier = .required },
7670 .{ .kind = .id_result, .quantifier = .required },
7671 .{ .kind = .id_ref, .quantifier = .required },
7672 .{ .kind = .id_ref, .quantifier = .required },
7673 },
7674 },
7675 .{
7676 .name = "OpOrdered",
7677 .opcode = 162,
7678 .operands = &.{
7679 .{ .kind = .id_result_type, .quantifier = .required },
7680 .{ .kind = .id_result, .quantifier = .required },
7681 .{ .kind = .id_ref, .quantifier = .required },
7682 .{ .kind = .id_ref, .quantifier = .required },
7683 },
7684 },
7685 .{
7686 .name = "OpUnordered",
7687 .opcode = 163,
7688 .operands = &.{
7689 .{ .kind = .id_result_type, .quantifier = .required },
7690 .{ .kind = .id_result, .quantifier = .required },
7691 .{ .kind = .id_ref, .quantifier = .required },
7692 .{ .kind = .id_ref, .quantifier = .required },
7693 },
7694 },
7695 .{
7696 .name = "OpLogicalEqual",
7697 .opcode = 164,
7698 .operands = &.{
7699 .{ .kind = .id_result_type, .quantifier = .required },
7700 .{ .kind = .id_result, .quantifier = .required },
7701 .{ .kind = .id_ref, .quantifier = .required },
7702 .{ .kind = .id_ref, .quantifier = .required },
7703 },
7704 },
7705 .{
7706 .name = "OpLogicalNotEqual",
7707 .opcode = 165,
7708 .operands = &.{
7709 .{ .kind = .id_result_type, .quantifier = .required },
7710 .{ .kind = .id_result, .quantifier = .required },
7711 .{ .kind = .id_ref, .quantifier = .required },
7712 .{ .kind = .id_ref, .quantifier = .required },
7713 },
7714 },
7715 .{
7716 .name = "OpLogicalOr",
7717 .opcode = 166,
7718 .operands = &.{
7719 .{ .kind = .id_result_type, .quantifier = .required },
7720 .{ .kind = .id_result, .quantifier = .required },
7721 .{ .kind = .id_ref, .quantifier = .required },
7722 .{ .kind = .id_ref, .quantifier = .required },
7723 },
7724 },
7725 .{
7726 .name = "OpLogicalAnd",
7727 .opcode = 167,
7728 .operands = &.{
7729 .{ .kind = .id_result_type, .quantifier = .required },
7730 .{ .kind = .id_result, .quantifier = .required },
7731 .{ .kind = .id_ref, .quantifier = .required },
7732 .{ .kind = .id_ref, .quantifier = .required },
7733 },
7734 },
7735 .{
7736 .name = "OpLogicalNot",
7737 .opcode = 168,
7738 .operands = &.{
7739 .{ .kind = .id_result_type, .quantifier = .required },
7740 .{ .kind = .id_result, .quantifier = .required },
7741 .{ .kind = .id_ref, .quantifier = .required },
7742 },
7743 },
7744 .{
7745 .name = "OpSelect",
7746 .opcode = 169,
7747 .operands = &.{
7748 .{ .kind = .id_result_type, .quantifier = .required },
7749 .{ .kind = .id_result, .quantifier = .required },
7750 .{ .kind = .id_ref, .quantifier = .required },
7751 .{ .kind = .id_ref, .quantifier = .required },
7752 .{ .kind = .id_ref, .quantifier = .required },
7753 },
7754 },
7755 .{
7756 .name = "OpIEqual",
7757 .opcode = 170,
7758 .operands = &.{
7759 .{ .kind = .id_result_type, .quantifier = .required },
7760 .{ .kind = .id_result, .quantifier = .required },
7761 .{ .kind = .id_ref, .quantifier = .required },
7762 .{ .kind = .id_ref, .quantifier = .required },
7763 },
7764 },
7765 .{
7766 .name = "OpINotEqual",
7767 .opcode = 171,
7768 .operands = &.{
7769 .{ .kind = .id_result_type, .quantifier = .required },
7770 .{ .kind = .id_result, .quantifier = .required },
7771 .{ .kind = .id_ref, .quantifier = .required },
7772 .{ .kind = .id_ref, .quantifier = .required },
7773 },
7774 },
7775 .{
7776 .name = "OpUGreaterThan",
7777 .opcode = 172,
7778 .operands = &.{
7779 .{ .kind = .id_result_type, .quantifier = .required },
7780 .{ .kind = .id_result, .quantifier = .required },
7781 .{ .kind = .id_ref, .quantifier = .required },
7782 .{ .kind = .id_ref, .quantifier = .required },
7783 },
7784 },
7785 .{
7786 .name = "OpSGreaterThan",
7787 .opcode = 173,
7788 .operands = &.{
7789 .{ .kind = .id_result_type, .quantifier = .required },
7790 .{ .kind = .id_result, .quantifier = .required },
7791 .{ .kind = .id_ref, .quantifier = .required },
7792 .{ .kind = .id_ref, .quantifier = .required },
7793 },
7794 },
7795 .{
7796 .name = "OpUGreaterThanEqual",
7797 .opcode = 174,
7798 .operands = &.{
7799 .{ .kind = .id_result_type, .quantifier = .required },
7800 .{ .kind = .id_result, .quantifier = .required },
7801 .{ .kind = .id_ref, .quantifier = .required },
7802 .{ .kind = .id_ref, .quantifier = .required },
7803 },
7804 },
7805 .{
7806 .name = "OpSGreaterThanEqual",
7807 .opcode = 175,
7808 .operands = &.{
7809 .{ .kind = .id_result_type, .quantifier = .required },
7810 .{ .kind = .id_result, .quantifier = .required },
7811 .{ .kind = .id_ref, .quantifier = .required },
7812 .{ .kind = .id_ref, .quantifier = .required },
7813 },
7814 },
7815 .{
7816 .name = "OpULessThan",
7817 .opcode = 176,
7818 .operands = &.{
7819 .{ .kind = .id_result_type, .quantifier = .required },
7820 .{ .kind = .id_result, .quantifier = .required },
7821 .{ .kind = .id_ref, .quantifier = .required },
7822 .{ .kind = .id_ref, .quantifier = .required },
7823 },
7824 },
7825 .{
7826 .name = "OpSLessThan",
7827 .opcode = 177,
7828 .operands = &.{
7829 .{ .kind = .id_result_type, .quantifier = .required },
7830 .{ .kind = .id_result, .quantifier = .required },
7831 .{ .kind = .id_ref, .quantifier = .required },
7832 .{ .kind = .id_ref, .quantifier = .required },
7833 },
7834 },
7835 .{
7836 .name = "OpULessThanEqual",
7837 .opcode = 178,
7838 .operands = &.{
7839 .{ .kind = .id_result_type, .quantifier = .required },
7840 .{ .kind = .id_result, .quantifier = .required },
7841 .{ .kind = .id_ref, .quantifier = .required },
7842 .{ .kind = .id_ref, .quantifier = .required },
7843 },
7844 },
7845 .{
7846 .name = "OpSLessThanEqual",
7847 .opcode = 179,
7848 .operands = &.{
7849 .{ .kind = .id_result_type, .quantifier = .required },
7850 .{ .kind = .id_result, .quantifier = .required },
7851 .{ .kind = .id_ref, .quantifier = .required },
7852 .{ .kind = .id_ref, .quantifier = .required },
7853 },
7854 },
7855 .{
7856 .name = "OpFOrdEqual",
7857 .opcode = 180,
7858 .operands = &.{
7859 .{ .kind = .id_result_type, .quantifier = .required },
7860 .{ .kind = .id_result, .quantifier = .required },
7861 .{ .kind = .id_ref, .quantifier = .required },
7862 .{ .kind = .id_ref, .quantifier = .required },
7863 },
7864 },
7865 .{
7866 .name = "OpFUnordEqual",
7867 .opcode = 181,
7868 .operands = &.{
7869 .{ .kind = .id_result_type, .quantifier = .required },
7870 .{ .kind = .id_result, .quantifier = .required },
7871 .{ .kind = .id_ref, .quantifier = .required },
7872 .{ .kind = .id_ref, .quantifier = .required },
7873 },
7874 },
7875 .{
7876 .name = "OpFOrdNotEqual",
7877 .opcode = 182,
7878 .operands = &.{
7879 .{ .kind = .id_result_type, .quantifier = .required },
7880 .{ .kind = .id_result, .quantifier = .required },
7881 .{ .kind = .id_ref, .quantifier = .required },
7882 .{ .kind = .id_ref, .quantifier = .required },
7883 },
7884 },
7885 .{
7886 .name = "OpFUnordNotEqual",
7887 .opcode = 183,
7888 .operands = &.{
7889 .{ .kind = .id_result_type, .quantifier = .required },
7890 .{ .kind = .id_result, .quantifier = .required },
7891 .{ .kind = .id_ref, .quantifier = .required },
7892 .{ .kind = .id_ref, .quantifier = .required },
7893 },
7894 },
7895 .{
7896 .name = "OpFOrdLessThan",
7897 .opcode = 184,
7898 .operands = &.{
7899 .{ .kind = .id_result_type, .quantifier = .required },
7900 .{ .kind = .id_result, .quantifier = .required },
7901 .{ .kind = .id_ref, .quantifier = .required },
7902 .{ .kind = .id_ref, .quantifier = .required },
7903 },
7904 },
7905 .{
7906 .name = "OpFUnordLessThan",
7907 .opcode = 185,
7908 .operands = &.{
7909 .{ .kind = .id_result_type, .quantifier = .required },
7910 .{ .kind = .id_result, .quantifier = .required },
7911 .{ .kind = .id_ref, .quantifier = .required },
7912 .{ .kind = .id_ref, .quantifier = .required },
7913 },
7914 },
7915 .{
7916 .name = "OpFOrdGreaterThan",
7917 .opcode = 186,
7918 .operands = &.{
7919 .{ .kind = .id_result_type, .quantifier = .required },
7920 .{ .kind = .id_result, .quantifier = .required },
7921 .{ .kind = .id_ref, .quantifier = .required },
7922 .{ .kind = .id_ref, .quantifier = .required },
7923 },
7924 },
7925 .{
7926 .name = "OpFUnordGreaterThan",
7927 .opcode = 187,
7928 .operands = &.{
7929 .{ .kind = .id_result_type, .quantifier = .required },
7930 .{ .kind = .id_result, .quantifier = .required },
7931 .{ .kind = .id_ref, .quantifier = .required },
7932 .{ .kind = .id_ref, .quantifier = .required },
7933 },
7934 },
7935 .{
7936 .name = "OpFOrdLessThanEqual",
7937 .opcode = 188,
7938 .operands = &.{
7939 .{ .kind = .id_result_type, .quantifier = .required },
7940 .{ .kind = .id_result, .quantifier = .required },
7941 .{ .kind = .id_ref, .quantifier = .required },
7942 .{ .kind = .id_ref, .quantifier = .required },
7943 },
7944 },
7945 .{
7946 .name = "OpFUnordLessThanEqual",
7947 .opcode = 189,
7948 .operands = &.{
7949 .{ .kind = .id_result_type, .quantifier = .required },
7950 .{ .kind = .id_result, .quantifier = .required },
7951 .{ .kind = .id_ref, .quantifier = .required },
7952 .{ .kind = .id_ref, .quantifier = .required },
7953 },
7954 },
7955 .{
7956 .name = "OpFOrdGreaterThanEqual",
7957 .opcode = 190,
7958 .operands = &.{
7959 .{ .kind = .id_result_type, .quantifier = .required },
7960 .{ .kind = .id_result, .quantifier = .required },
7961 .{ .kind = .id_ref, .quantifier = .required },
7962 .{ .kind = .id_ref, .quantifier = .required },
7963 },
7964 },
7965 .{
7966 .name = "OpFUnordGreaterThanEqual",
7967 .opcode = 191,
7968 .operands = &.{
7969 .{ .kind = .id_result_type, .quantifier = .required },
7970 .{ .kind = .id_result, .quantifier = .required },
7971 .{ .kind = .id_ref, .quantifier = .required },
7972 .{ .kind = .id_ref, .quantifier = .required },
7973 },
7974 },
7975 .{
7976 .name = "OpShiftRightLogical",
7977 .opcode = 194,
7978 .operands = &.{
7979 .{ .kind = .id_result_type, .quantifier = .required },
7980 .{ .kind = .id_result, .quantifier = .required },
7981 .{ .kind = .id_ref, .quantifier = .required },
7982 .{ .kind = .id_ref, .quantifier = .required },
7983 },
7984 },
7985 .{
7986 .name = "OpShiftRightArithmetic",
7987 .opcode = 195,
7988 .operands = &.{
7989 .{ .kind = .id_result_type, .quantifier = .required },
7990 .{ .kind = .id_result, .quantifier = .required },
7991 .{ .kind = .id_ref, .quantifier = .required },
7992 .{ .kind = .id_ref, .quantifier = .required },
7993 },
7994 },
7995 .{
7996 .name = "OpShiftLeftLogical",
7997 .opcode = 196,
7998 .operands = &.{
7999 .{ .kind = .id_result_type, .quantifier = .required },
8000 .{ .kind = .id_result, .quantifier = .required },
8001 .{ .kind = .id_ref, .quantifier = .required },
8002 .{ .kind = .id_ref, .quantifier = .required },
8003 },
8004 },
8005 .{
8006 .name = "OpBitwiseOr",
8007 .opcode = 197,
8008 .operands = &.{
8009 .{ .kind = .id_result_type, .quantifier = .required },
8010 .{ .kind = .id_result, .quantifier = .required },
8011 .{ .kind = .id_ref, .quantifier = .required },
8012 .{ .kind = .id_ref, .quantifier = .required },
8013 },
8014 },
8015 .{
8016 .name = "OpBitwiseXor",
8017 .opcode = 198,
8018 .operands = &.{
8019 .{ .kind = .id_result_type, .quantifier = .required },
8020 .{ .kind = .id_result, .quantifier = .required },
8021 .{ .kind = .id_ref, .quantifier = .required },
8022 .{ .kind = .id_ref, .quantifier = .required },
8023 },
8024 },
8025 .{
8026 .name = "OpBitwiseAnd",
8027 .opcode = 199,
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 },
8034 },
8035 .{
8036 .name = "OpNot",
8037 .opcode = 200,
8038 .operands = &.{
8039 .{ .kind = .id_result_type, .quantifier = .required },
8040 .{ .kind = .id_result, .quantifier = .required },
8041 .{ .kind = .id_ref, .quantifier = .required },
8042 },
8043 },
8044 .{
8045 .name = "OpBitFieldInsert",
8046 .opcode = 201,
8047 .operands = &.{
8048 .{ .kind = .id_result_type, .quantifier = .required },
8049 .{ .kind = .id_result, .quantifier = .required },
8050 .{ .kind = .id_ref, .quantifier = .required },
8051 .{ .kind = .id_ref, .quantifier = .required },
8052 .{ .kind = .id_ref, .quantifier = .required },
8053 .{ .kind = .id_ref, .quantifier = .required },
8054 },
8055 },
8056 .{
8057 .name = "OpBitFieldSExtract",
8058 .opcode = 202,
8059 .operands = &.{
8060 .{ .kind = .id_result_type, .quantifier = .required },
8061 .{ .kind = .id_result, .quantifier = .required },
8062 .{ .kind = .id_ref, .quantifier = .required },
8063 .{ .kind = .id_ref, .quantifier = .required },
8064 .{ .kind = .id_ref, .quantifier = .required },
8065 },
8066 },
8067 .{
8068 .name = "OpBitFieldUExtract",
8069 .opcode = 203,
8070 .operands = &.{
8071 .{ .kind = .id_result_type, .quantifier = .required },
8072 .{ .kind = .id_result, .quantifier = .required },
8073 .{ .kind = .id_ref, .quantifier = .required },
8074 .{ .kind = .id_ref, .quantifier = .required },
8075 .{ .kind = .id_ref, .quantifier = .required },
8076 },
8077 },
8078 .{
8079 .name = "OpBitReverse",
8080 .opcode = 204,
8081 .operands = &.{
8082 .{ .kind = .id_result_type, .quantifier = .required },
8083 .{ .kind = .id_result, .quantifier = .required },
8084 .{ .kind = .id_ref, .quantifier = .required },
8085 },
8086 },
8087 .{
8088 .name = "OpBitCount",
8089 .opcode = 205,
8090 .operands = &.{
8091 .{ .kind = .id_result_type, .quantifier = .required },
8092 .{ .kind = .id_result, .quantifier = .required },
8093 .{ .kind = .id_ref, .quantifier = .required },
8094 },
8095 },
8096 .{
8097 .name = "OpDPdx",
8098 .opcode = 207,
8099 .operands = &.{
8100 .{ .kind = .id_result_type, .quantifier = .required },
8101 .{ .kind = .id_result, .quantifier = .required },
8102 .{ .kind = .id_ref, .quantifier = .required },
8103 },
8104 },
8105 .{
8106 .name = "OpDPdy",
8107 .opcode = 208,
8108 .operands = &.{
8109 .{ .kind = .id_result_type, .quantifier = .required },
8110 .{ .kind = .id_result, .quantifier = .required },
8111 .{ .kind = .id_ref, .quantifier = .required },
8112 },
8113 },
8114 .{
8115 .name = "OpFwidth",
8116 .opcode = 209,
8117 .operands = &.{
8118 .{ .kind = .id_result_type, .quantifier = .required },
8119 .{ .kind = .id_result, .quantifier = .required },
8120 .{ .kind = .id_ref, .quantifier = .required },
8121 },
8122 },
8123 .{
8124 .name = "OpDPdxFine",
8125 .opcode = 210,
8126 .operands = &.{
8127 .{ .kind = .id_result_type, .quantifier = .required },
8128 .{ .kind = .id_result, .quantifier = .required },
8129 .{ .kind = .id_ref, .quantifier = .required },
8130 },
8131 },
8132 .{
8133 .name = "OpDPdyFine",
8134 .opcode = 211,
8135 .operands = &.{
8136 .{ .kind = .id_result_type, .quantifier = .required },
8137 .{ .kind = .id_result, .quantifier = .required },
8138 .{ .kind = .id_ref, .quantifier = .required },
8139 },
8140 },
8141 .{
8142 .name = "OpFwidthFine",
8143 .opcode = 212,
8144 .operands = &.{
8145 .{ .kind = .id_result_type, .quantifier = .required },
8146 .{ .kind = .id_result, .quantifier = .required },
8147 .{ .kind = .id_ref, .quantifier = .required },
8148 },
8149 },
8150 .{
8151 .name = "OpDPdxCoarse",
8152 .opcode = 213,
8153 .operands = &.{
8154 .{ .kind = .id_result_type, .quantifier = .required },
8155 .{ .kind = .id_result, .quantifier = .required },
8156 .{ .kind = .id_ref, .quantifier = .required },
8157 },
8158 },
8159 .{
8160 .name = "OpDPdyCoarse",
8161 .opcode = 214,
8162 .operands = &.{
8163 .{ .kind = .id_result_type, .quantifier = .required },
8164 .{ .kind = .id_result, .quantifier = .required },
8165 .{ .kind = .id_ref, .quantifier = .required },
8166 },
8167 },
8168 .{
8169 .name = "OpFwidthCoarse",
8170 .opcode = 215,
8171 .operands = &.{
8172 .{ .kind = .id_result_type, .quantifier = .required },
8173 .{ .kind = .id_result, .quantifier = .required },
8174 .{ .kind = .id_ref, .quantifier = .required },
8175 },
8176 },
8177 .{
8178 .name = "OpEmitVertex",
8179 .opcode = 218,
8180 .operands = &.{},
8181 },
8182 .{
8183 .name = "OpEndPrimitive",
8184 .opcode = 219,
8185 .operands = &.{},
8186 },
8187 .{
8188 .name = "OpEmitStreamVertex",
8189 .opcode = 220,
8190 .operands = &.{
8191 .{ .kind = .id_ref, .quantifier = .required },
8192 },
8193 },
8194 .{
8195 .name = "OpEndStreamPrimitive",
8196 .opcode = 221,
8197 .operands = &.{
8198 .{ .kind = .id_ref, .quantifier = .required },
8199 },
8200 },
8201 .{
8202 .name = "OpControlBarrier",
8203 .opcode = 224,
8204 .operands = &.{
8205 .{ .kind = .id_scope, .quantifier = .required },
8206 .{ .kind = .id_scope, .quantifier = .required },
8207 .{ .kind = .id_memory_semantics, .quantifier = .required },
8208 },
8209 },
8210 .{
8211 .name = "OpMemoryBarrier",
8212 .opcode = 225,
8213 .operands = &.{
8214 .{ .kind = .id_scope, .quantifier = .required },
8215 .{ .kind = .id_memory_semantics, .quantifier = .required },
8216 },
8217 },
8218 .{
8219 .name = "OpAtomicLoad",
8220 .opcode = 227,
8221 .operands = &.{
8222 .{ .kind = .id_result_type, .quantifier = .required },
8223 .{ .kind = .id_result, .quantifier = .required },
8224 .{ .kind = .id_ref, .quantifier = .required },
8225 .{ .kind = .id_scope, .quantifier = .required },
8226 .{ .kind = .id_memory_semantics, .quantifier = .required },
8227 },
8228 },
8229 .{
8230 .name = "OpAtomicStore",
8231 .opcode = 228,
8232 .operands = &.{
8233 .{ .kind = .id_ref, .quantifier = .required },
8234 .{ .kind = .id_scope, .quantifier = .required },
8235 .{ .kind = .id_memory_semantics, .quantifier = .required },
8236 .{ .kind = .id_ref, .quantifier = .required },
8237 },
8238 },
8239 .{
8240 .name = "OpAtomicExchange",
8241 .opcode = 229,
8242 .operands = &.{
8243 .{ .kind = .id_result_type, .quantifier = .required },
8244 .{ .kind = .id_result, .quantifier = .required },
8245 .{ .kind = .id_ref, .quantifier = .required },
8246 .{ .kind = .id_scope, .quantifier = .required },
8247 .{ .kind = .id_memory_semantics, .quantifier = .required },
8248 .{ .kind = .id_ref, .quantifier = .required },
8249 },
8250 },
8251 .{
8252 .name = "OpAtomicCompareExchange",
8253 .opcode = 230,
8254 .operands = &.{
8255 .{ .kind = .id_result_type, .quantifier = .required },
8256 .{ .kind = .id_result, .quantifier = .required },
8257 .{ .kind = .id_ref, .quantifier = .required },
8258 .{ .kind = .id_scope, .quantifier = .required },
8259 .{ .kind = .id_memory_semantics, .quantifier = .required },
8260 .{ .kind = .id_memory_semantics, .quantifier = .required },
8261 .{ .kind = .id_ref, .quantifier = .required },
8262 .{ .kind = .id_ref, .quantifier = .required },
8263 },
8264 },
8265 .{
8266 .name = "OpAtomicCompareExchangeWeak",
8267 .opcode = 231,
8268 .operands = &.{
8269 .{ .kind = .id_result_type, .quantifier = .required },
8270 .{ .kind = .id_result, .quantifier = .required },
8271 .{ .kind = .id_ref, .quantifier = .required },
8272 .{ .kind = .id_scope, .quantifier = .required },
8273 .{ .kind = .id_memory_semantics, .quantifier = .required },
8274 .{ .kind = .id_memory_semantics, .quantifier = .required },
8275 .{ .kind = .id_ref, .quantifier = .required },
8276 .{ .kind = .id_ref, .quantifier = .required },
8277 },
8278 },
8279 .{
8280 .name = "OpAtomicIIncrement",
8281 .opcode = 232,
8282 .operands = &.{
8283 .{ .kind = .id_result_type, .quantifier = .required },
8284 .{ .kind = .id_result, .quantifier = .required },
8285 .{ .kind = .id_ref, .quantifier = .required },
8286 .{ .kind = .id_scope, .quantifier = .required },
8287 .{ .kind = .id_memory_semantics, .quantifier = .required },
8288 },
8289 },
8290 .{
8291 .name = "OpAtomicIDecrement",
8292 .opcode = 233,
8293 .operands = &.{
8294 .{ .kind = .id_result_type, .quantifier = .required },
8295 .{ .kind = .id_result, .quantifier = .required },
8296 .{ .kind = .id_ref, .quantifier = .required },
8297 .{ .kind = .id_scope, .quantifier = .required },
8298 .{ .kind = .id_memory_semantics, .quantifier = .required },
8299 },
8300 },
8301 .{
8302 .name = "OpAtomicIAdd",
8303 .opcode = 234,
8304 .operands = &.{
8305 .{ .kind = .id_result_type, .quantifier = .required },
8306 .{ .kind = .id_result, .quantifier = .required },
8307 .{ .kind = .id_ref, .quantifier = .required },
8308 .{ .kind = .id_scope, .quantifier = .required },
8309 .{ .kind = .id_memory_semantics, .quantifier = .required },
8310 .{ .kind = .id_ref, .quantifier = .required },
8311 },
8312 },
8313 .{
8314 .name = "OpAtomicISub",
8315 .opcode = 235,
8316 .operands = &.{
8317 .{ .kind = .id_result_type, .quantifier = .required },
8318 .{ .kind = .id_result, .quantifier = .required },
8319 .{ .kind = .id_ref, .quantifier = .required },
8320 .{ .kind = .id_scope, .quantifier = .required },
8321 .{ .kind = .id_memory_semantics, .quantifier = .required },
8322 .{ .kind = .id_ref, .quantifier = .required },
8323 },
8324 },
8325 .{
8326 .name = "OpAtomicSMin",
8327 .opcode = 236,
8328 .operands = &.{
8329 .{ .kind = .id_result_type, .quantifier = .required },
8330 .{ .kind = .id_result, .quantifier = .required },
8331 .{ .kind = .id_ref, .quantifier = .required },
8332 .{ .kind = .id_scope, .quantifier = .required },
8333 .{ .kind = .id_memory_semantics, .quantifier = .required },
8334 .{ .kind = .id_ref, .quantifier = .required },
8335 },
8336 },
8337 .{
8338 .name = "OpAtomicUMin",
8339 .opcode = 237,
8340 .operands = &.{
8341 .{ .kind = .id_result_type, .quantifier = .required },
8342 .{ .kind = .id_result, .quantifier = .required },
8343 .{ .kind = .id_ref, .quantifier = .required },
8344 .{ .kind = .id_scope, .quantifier = .required },
8345 .{ .kind = .id_memory_semantics, .quantifier = .required },
8346 .{ .kind = .id_ref, .quantifier = .required },
8347 },
8348 },
8349 .{
8350 .name = "OpAtomicSMax",
8351 .opcode = 238,
8352 .operands = &.{
8353 .{ .kind = .id_result_type, .quantifier = .required },
8354 .{ .kind = .id_result, .quantifier = .required },
8355 .{ .kind = .id_ref, .quantifier = .required },
8356 .{ .kind = .id_scope, .quantifier = .required },
8357 .{ .kind = .id_memory_semantics, .quantifier = .required },
8358 .{ .kind = .id_ref, .quantifier = .required },
8359 },
8360 },
8361 .{
8362 .name = "OpAtomicUMax",
8363 .opcode = 239,
8364 .operands = &.{
8365 .{ .kind = .id_result_type, .quantifier = .required },
8366 .{ .kind = .id_result, .quantifier = .required },
8367 .{ .kind = .id_ref, .quantifier = .required },
8368 .{ .kind = .id_scope, .quantifier = .required },
8369 .{ .kind = .id_memory_semantics, .quantifier = .required },
8370 .{ .kind = .id_ref, .quantifier = .required },
8371 },
8372 },
8373 .{
8374 .name = "OpAtomicAnd",
8375 .opcode = 240,
8376 .operands = &.{
8377 .{ .kind = .id_result_type, .quantifier = .required },
8378 .{ .kind = .id_result, .quantifier = .required },
8379 .{ .kind = .id_ref, .quantifier = .required },
8380 .{ .kind = .id_scope, .quantifier = .required },
8381 .{ .kind = .id_memory_semantics, .quantifier = .required },
8382 .{ .kind = .id_ref, .quantifier = .required },
8383 },
8384 },
8385 .{
8386 .name = "OpAtomicOr",
8387 .opcode = 241,
8388 .operands = &.{
8389 .{ .kind = .id_result_type, .quantifier = .required },
8390 .{ .kind = .id_result, .quantifier = .required },
8391 .{ .kind = .id_ref, .quantifier = .required },
8392 .{ .kind = .id_scope, .quantifier = .required },
8393 .{ .kind = .id_memory_semantics, .quantifier = .required },
8394 .{ .kind = .id_ref, .quantifier = .required },
8395 },
8396 },
8397 .{
8398 .name = "OpAtomicXor",
8399 .opcode = 242,
8400 .operands = &.{
8401 .{ .kind = .id_result_type, .quantifier = .required },
8402 .{ .kind = .id_result, .quantifier = .required },
8403 .{ .kind = .id_ref, .quantifier = .required },
8404 .{ .kind = .id_scope, .quantifier = .required },
8405 .{ .kind = .id_memory_semantics, .quantifier = .required },
8406 .{ .kind = .id_ref, .quantifier = .required },
8407 },
8408 },
8409 .{
8410 .name = "OpPhi",
8411 .opcode = 245,
8412 .operands = &.{
8413 .{ .kind = .id_result_type, .quantifier = .required },
8414 .{ .kind = .id_result, .quantifier = .required },
8415 .{ .kind = .pair_id_ref_id_ref, .quantifier = .variadic },
8416 },
8417 },
8418 .{
8419 .name = "OpLoopMerge",
8420 .opcode = 246,
8421 .operands = &.{
8422 .{ .kind = .id_ref, .quantifier = .required },
8423 .{ .kind = .id_ref, .quantifier = .required },
8424 .{ .kind = .loop_control, .quantifier = .required },
8425 },
8426 },
8427 .{
8428 .name = "OpSelectionMerge",
8429 .opcode = 247,
8430 .operands = &.{
8431 .{ .kind = .id_ref, .quantifier = .required },
8432 .{ .kind = .selection_control, .quantifier = .required },
8433 },
8434 },
8435 .{
8436 .name = "OpLabel",
8437 .opcode = 248,
8438 .operands = &.{
8439 .{ .kind = .id_result, .quantifier = .required },
8440 },
8441 },
8442 .{
8443 .name = "OpBranch",
8444 .opcode = 249,
8445 .operands = &.{
8446 .{ .kind = .id_ref, .quantifier = .required },
8447 },
8448 },
8449 .{
8450 .name = "OpBranchConditional",
8451 .opcode = 250,
8452 .operands = &.{
8453 .{ .kind = .id_ref, .quantifier = .required },
8454 .{ .kind = .id_ref, .quantifier = .required },
8455 .{ .kind = .id_ref, .quantifier = .required },
8456 .{ .kind = .literal_integer, .quantifier = .variadic },
8457 },
8458 },
8459 .{
8460 .name = "OpSwitch",
8461 .opcode = 251,
8462 .operands = &.{
8463 .{ .kind = .id_ref, .quantifier = .required },
8464 .{ .kind = .id_ref, .quantifier = .required },
8465 .{ .kind = .pair_literal_integer_id_ref, .quantifier = .variadic },
8466 },
8467 },
8468 .{
8469 .name = "OpKill",
8470 .opcode = 252,
8471 .operands = &.{},
8472 },
8473 .{
8474 .name = "OpReturn",
8475 .opcode = 253,
8476 .operands = &.{},
8477 },
8478 .{
8479 .name = "OpReturnValue",
8480 .opcode = 254,
8481 .operands = &.{
8482 .{ .kind = .id_ref, .quantifier = .required },
8483 },
8484 },
8485 .{
8486 .name = "OpUnreachable",
8487 .opcode = 255,
8488 .operands = &.{},
8489 },
8490 .{
8491 .name = "OpLifetimeStart",
8492 .opcode = 256,
8493 .operands = &.{
8494 .{ .kind = .id_ref, .quantifier = .required },
8495 .{ .kind = .literal_integer, .quantifier = .required },
8496 },
8497 },
8498 .{
8499 .name = "OpLifetimeStop",
8500 .opcode = 257,
8501 .operands = &.{
8502 .{ .kind = .id_ref, .quantifier = .required },
8503 .{ .kind = .literal_integer, .quantifier = .required },
8504 },
8505 },
8506 .{
8507 .name = "OpGroupAsyncCopy",
8508 .opcode = 259,
8509 .operands = &.{
8510 .{ .kind = .id_result_type, .quantifier = .required },
8511 .{ .kind = .id_result, .quantifier = .required },
8512 .{ .kind = .id_scope, .quantifier = .required },
8513 .{ .kind = .id_ref, .quantifier = .required },
8514 .{ .kind = .id_ref, .quantifier = .required },
8515 .{ .kind = .id_ref, .quantifier = .required },
8516 .{ .kind = .id_ref, .quantifier = .required },
8517 .{ .kind = .id_ref, .quantifier = .required },
8518 },
8519 },
8520 .{
8521 .name = "OpGroupWaitEvents",
8522 .opcode = 260,
8523 .operands = &.{
8524 .{ .kind = .id_scope, .quantifier = .required },
8525 .{ .kind = .id_ref, .quantifier = .required },
8526 .{ .kind = .id_ref, .quantifier = .required },
8527 },
8528 },
8529 .{
8530 .name = "OpGroupAll",
8531 .opcode = 261,
8532 .operands = &.{
8533 .{ .kind = .id_result_type, .quantifier = .required },
8534 .{ .kind = .id_result, .quantifier = .required },
8535 .{ .kind = .id_scope, .quantifier = .required },
8536 .{ .kind = .id_ref, .quantifier = .required },
8537 },
8538 },
8539 .{
8540 .name = "OpGroupAny",
8541 .opcode = 262,
8542 .operands = &.{
8543 .{ .kind = .id_result_type, .quantifier = .required },
8544 .{ .kind = .id_result, .quantifier = .required },
8545 .{ .kind = .id_scope, .quantifier = .required },
8546 .{ .kind = .id_ref, .quantifier = .required },
8547 },
8548 },
8549 .{
8550 .name = "OpGroupBroadcast",
8551 .opcode = 263,
8552 .operands = &.{
8553 .{ .kind = .id_result_type, .quantifier = .required },
8554 .{ .kind = .id_result, .quantifier = .required },
8555 .{ .kind = .id_scope, .quantifier = .required },
8556 .{ .kind = .id_ref, .quantifier = .required },
8557 .{ .kind = .id_ref, .quantifier = .required },
8558 },
8559 },
8560 .{
8561 .name = "OpGroupIAdd",
8562 .opcode = 264,
8563 .operands = &.{
8564 .{ .kind = .id_result_type, .quantifier = .required },
8565 .{ .kind = .id_result, .quantifier = .required },
8566 .{ .kind = .id_scope, .quantifier = .required },
8567 .{ .kind = .group_operation, .quantifier = .required },
8568 .{ .kind = .id_ref, .quantifier = .required },
8569 },
8570 },
8571 .{
8572 .name = "OpGroupFAdd",
8573 .opcode = 265,
8574 .operands = &.{
8575 .{ .kind = .id_result_type, .quantifier = .required },
8576 .{ .kind = .id_result, .quantifier = .required },
8577 .{ .kind = .id_scope, .quantifier = .required },
8578 .{ .kind = .group_operation, .quantifier = .required },
8579 .{ .kind = .id_ref, .quantifier = .required },
8580 },
8581 },
8582 .{
8583 .name = "OpGroupFMin",
8584 .opcode = 266,
8585 .operands = &.{
8586 .{ .kind = .id_result_type, .quantifier = .required },
8587 .{ .kind = .id_result, .quantifier = .required },
8588 .{ .kind = .id_scope, .quantifier = .required },
8589 .{ .kind = .group_operation, .quantifier = .required },
8590 .{ .kind = .id_ref, .quantifier = .required },
8591 },
8592 },
8593 .{
8594 .name = "OpGroupUMin",
8595 .opcode = 267,
8596 .operands = &.{
8597 .{ .kind = .id_result_type, .quantifier = .required },
8598 .{ .kind = .id_result, .quantifier = .required },
8599 .{ .kind = .id_scope, .quantifier = .required },
8600 .{ .kind = .group_operation, .quantifier = .required },
8601 .{ .kind = .id_ref, .quantifier = .required },
8602 },
8603 },
8604 .{
8605 .name = "OpGroupSMin",
8606 .opcode = 268,
8607 .operands = &.{
8608 .{ .kind = .id_result_type, .quantifier = .required },
8609 .{ .kind = .id_result, .quantifier = .required },
8610 .{ .kind = .id_scope, .quantifier = .required },
8611 .{ .kind = .group_operation, .quantifier = .required },
8612 .{ .kind = .id_ref, .quantifier = .required },
8613 },
8614 },
8615 .{
8616 .name = "OpGroupFMax",
8617 .opcode = 269,
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 = "OpGroupUMax",
8628 .opcode = 270,
8629 .operands = &.{
8630 .{ .kind = .id_result_type, .quantifier = .required },
8631 .{ .kind = .id_result, .quantifier = .required },
8632 .{ .kind = .id_scope, .quantifier = .required },
8633 .{ .kind = .group_operation, .quantifier = .required },
8634 .{ .kind = .id_ref, .quantifier = .required },
8635 },
8636 },
8637 .{
8638 .name = "OpGroupSMax",
8639 .opcode = 271,
8640 .operands = &.{
8641 .{ .kind = .id_result_type, .quantifier = .required },
8642 .{ .kind = .id_result, .quantifier = .required },
8643 .{ .kind = .id_scope, .quantifier = .required },
8644 .{ .kind = .group_operation, .quantifier = .required },
8645 .{ .kind = .id_ref, .quantifier = .required },
8646 },
8647 },
8648 .{
8649 .name = "OpReadPipe",
8650 .opcode = 274,
8651 .operands = &.{
8652 .{ .kind = .id_result_type, .quantifier = .required },
8653 .{ .kind = .id_result, .quantifier = .required },
8654 .{ .kind = .id_ref, .quantifier = .required },
8655 .{ .kind = .id_ref, .quantifier = .required },
8656 .{ .kind = .id_ref, .quantifier = .required },
8657 .{ .kind = .id_ref, .quantifier = .required },
8658 },
8659 },
8660 .{
8661 .name = "OpWritePipe",
8662 .opcode = 275,
8663 .operands = &.{
8664 .{ .kind = .id_result_type, .quantifier = .required },
8665 .{ .kind = .id_result, .quantifier = .required },
8666 .{ .kind = .id_ref, .quantifier = .required },
8667 .{ .kind = .id_ref, .quantifier = .required },
8668 .{ .kind = .id_ref, .quantifier = .required },
8669 .{ .kind = .id_ref, .quantifier = .required },
8670 },
8671 },
8672 .{
8673 .name = "OpReservedReadPipe",
8674 .opcode = 276,
8675 .operands = &.{
8676 .{ .kind = .id_result_type, .quantifier = .required },
8677 .{ .kind = .id_result, .quantifier = .required },
8678 .{ .kind = .id_ref, .quantifier = .required },
8679 .{ .kind = .id_ref, .quantifier = .required },
8680 .{ .kind = .id_ref, .quantifier = .required },
8681 .{ .kind = .id_ref, .quantifier = .required },
8682 .{ .kind = .id_ref, .quantifier = .required },
8683 .{ .kind = .id_ref, .quantifier = .required },
8684 },
8685 },
8686 .{
8687 .name = "OpReservedWritePipe",
8688 .opcode = 277,
8689 .operands = &.{
8690 .{ .kind = .id_result_type, .quantifier = .required },
8691 .{ .kind = .id_result, .quantifier = .required },
8692 .{ .kind = .id_ref, .quantifier = .required },
8693 .{ .kind = .id_ref, .quantifier = .required },
8694 .{ .kind = .id_ref, .quantifier = .required },
8695 .{ .kind = .id_ref, .quantifier = .required },
8696 .{ .kind = .id_ref, .quantifier = .required },
8697 .{ .kind = .id_ref, .quantifier = .required },
8698 },
8699 },
8700 .{
8701 .name = "OpReserveReadPipePackets",
8702 .opcode = 278,
8703 .operands = &.{
8704 .{ .kind = .id_result_type, .quantifier = .required },
8705 .{ .kind = .id_result, .quantifier = .required },
8706 .{ .kind = .id_ref, .quantifier = .required },
8707 .{ .kind = .id_ref, .quantifier = .required },
8708 .{ .kind = .id_ref, .quantifier = .required },
8709 .{ .kind = .id_ref, .quantifier = .required },
8710 },
8711 },
8712 .{
8713 .name = "OpReserveWritePipePackets",
8714 .opcode = 279,
8715 .operands = &.{
8716 .{ .kind = .id_result_type, .quantifier = .required },
8717 .{ .kind = .id_result, .quantifier = .required },
8718 .{ .kind = .id_ref, .quantifier = .required },
8719 .{ .kind = .id_ref, .quantifier = .required },
8720 .{ .kind = .id_ref, .quantifier = .required },
8721 .{ .kind = .id_ref, .quantifier = .required },
8722 },
8723 },
8724 .{
8725 .name = "OpCommitReadPipe",
8726 .opcode = 280,
8727 .operands = &.{
8728 .{ .kind = .id_ref, .quantifier = .required },
8729 .{ .kind = .id_ref, .quantifier = .required },
8730 .{ .kind = .id_ref, .quantifier = .required },
8731 .{ .kind = .id_ref, .quantifier = .required },
8732 },
8733 },
8734 .{
8735 .name = "OpCommitWritePipe",
8736 .opcode = 281,
8737 .operands = &.{
8738 .{ .kind = .id_ref, .quantifier = .required },
8739 .{ .kind = .id_ref, .quantifier = .required },
8740 .{ .kind = .id_ref, .quantifier = .required },
8741 .{ .kind = .id_ref, .quantifier = .required },
8742 },
8743 },
8744 .{
8745 .name = "OpIsValidReserveId",
8746 .opcode = 282,
8747 .operands = &.{
8748 .{ .kind = .id_result_type, .quantifier = .required },
8749 .{ .kind = .id_result, .quantifier = .required },
8750 .{ .kind = .id_ref, .quantifier = .required },
8751 },
8752 },
8753 .{
8754 .name = "OpGetNumPipePackets",
8755 .opcode = 283,
8756 .operands = &.{
8757 .{ .kind = .id_result_type, .quantifier = .required },
8758 .{ .kind = .id_result, .quantifier = .required },
8759 .{ .kind = .id_ref, .quantifier = .required },
8760 .{ .kind = .id_ref, .quantifier = .required },
8761 .{ .kind = .id_ref, .quantifier = .required },
8762 },
8763 },
8764 .{
8765 .name = "OpGetMaxPipePackets",
8766 .opcode = 284,
8767 .operands = &.{
8768 .{ .kind = .id_result_type, .quantifier = .required },
8769 .{ .kind = .id_result, .quantifier = .required },
8770 .{ .kind = .id_ref, .quantifier = .required },
8771 .{ .kind = .id_ref, .quantifier = .required },
8772 .{ .kind = .id_ref, .quantifier = .required },
8773 },
8774 },
8775 .{
8776 .name = "OpGroupReserveReadPipePackets",
8777 .opcode = 285,
8778 .operands = &.{
8779 .{ .kind = .id_result_type, .quantifier = .required },
8780 .{ .kind = .id_result, .quantifier = .required },
8781 .{ .kind = .id_scope, .quantifier = .required },
8782 .{ .kind = .id_ref, .quantifier = .required },
8783 .{ .kind = .id_ref, .quantifier = .required },
8784 .{ .kind = .id_ref, .quantifier = .required },
8785 .{ .kind = .id_ref, .quantifier = .required },
8786 },
8787 },
8788 .{
8789 .name = "OpGroupReserveWritePipePackets",
8790 .opcode = 286,
8791 .operands = &.{
8792 .{ .kind = .id_result_type, .quantifier = .required },
8793 .{ .kind = .id_result, .quantifier = .required },
8794 .{ .kind = .id_scope, .quantifier = .required },
8795 .{ .kind = .id_ref, .quantifier = .required },
8796 .{ .kind = .id_ref, .quantifier = .required },
8797 .{ .kind = .id_ref, .quantifier = .required },
8798 .{ .kind = .id_ref, .quantifier = .required },
8799 },
8800 },
8801 .{
8802 .name = "OpGroupCommitReadPipe",
8803 .opcode = 287,
8804 .operands = &.{
8805 .{ .kind = .id_scope, .quantifier = .required },
8806 .{ .kind = .id_ref, .quantifier = .required },
8807 .{ .kind = .id_ref, .quantifier = .required },
8808 .{ .kind = .id_ref, .quantifier = .required },
8809 .{ .kind = .id_ref, .quantifier = .required },
8810 },
8811 },
8812 .{
8813 .name = "OpGroupCommitWritePipe",
8814 .opcode = 288,
8815 .operands = &.{
8816 .{ .kind = .id_scope, .quantifier = .required },
8817 .{ .kind = .id_ref, .quantifier = .required },
8818 .{ .kind = .id_ref, .quantifier = .required },
8819 .{ .kind = .id_ref, .quantifier = .required },
8820 .{ .kind = .id_ref, .quantifier = .required },
8821 },
8822 },
8823 .{
8824 .name = "OpEnqueueMarker",
8825 .opcode = 291,
8826 .operands = &.{
8827 .{ .kind = .id_result_type, .quantifier = .required },
8828 .{ .kind = .id_result, .quantifier = .required },
8829 .{ .kind = .id_ref, .quantifier = .required },
8830 .{ .kind = .id_ref, .quantifier = .required },
8831 .{ .kind = .id_ref, .quantifier = .required },
8832 .{ .kind = .id_ref, .quantifier = .required },
8833 },
8834 },
8835 .{
8836 .name = "OpEnqueueKernel",
8837 .opcode = 292,
8838 .operands = &.{
8839 .{ .kind = .id_result_type, .quantifier = .required },
8840 .{ .kind = .id_result, .quantifier = .required },
8841 .{ .kind = .id_ref, .quantifier = .required },
8842 .{ .kind = .id_ref, .quantifier = .required },
8843 .{ .kind = .id_ref, .quantifier = .required },
8844 .{ .kind = .id_ref, .quantifier = .required },
8845 .{ .kind = .id_ref, .quantifier = .required },
8846 .{ .kind = .id_ref, .quantifier = .required },
8847 .{ .kind = .id_ref, .quantifier = .required },
8848 .{ .kind = .id_ref, .quantifier = .required },
8849 .{ .kind = .id_ref, .quantifier = .required },
8850 .{ .kind = .id_ref, .quantifier = .required },
8851 .{ .kind = .id_ref, .quantifier = .variadic },
8852 },
8853 },
8854 .{
8855 .name = "OpGetKernelNDrangeSubGroupCount",
8856 .opcode = 293,
8857 .operands = &.{
8858 .{ .kind = .id_result_type, .quantifier = .required },
8859 .{ .kind = .id_result, .quantifier = .required },
8860 .{ .kind = .id_ref, .quantifier = .required },
8861 .{ .kind = .id_ref, .quantifier = .required },
8862 .{ .kind = .id_ref, .quantifier = .required },
8863 .{ .kind = .id_ref, .quantifier = .required },
8864 .{ .kind = .id_ref, .quantifier = .required },
8865 },
8866 },
8867 .{
8868 .name = "OpGetKernelNDrangeMaxSubGroupSize",
8869 .opcode = 294,
8870 .operands = &.{
8871 .{ .kind = .id_result_type, .quantifier = .required },
8872 .{ .kind = .id_result, .quantifier = .required },
8873 .{ .kind = .id_ref, .quantifier = .required },
8874 .{ .kind = .id_ref, .quantifier = .required },
8875 .{ .kind = .id_ref, .quantifier = .required },
8876 .{ .kind = .id_ref, .quantifier = .required },
8877 .{ .kind = .id_ref, .quantifier = .required },
8878 },
8879 },
8880 .{
8881 .name = "OpGetKernelWorkGroupSize",
8882 .opcode = 295,
8883 .operands = &.{
8884 .{ .kind = .id_result_type, .quantifier = .required },
8885 .{ .kind = .id_result, .quantifier = .required },
8886 .{ .kind = .id_ref, .quantifier = .required },
8887 .{ .kind = .id_ref, .quantifier = .required },
8888 .{ .kind = .id_ref, .quantifier = .required },
8889 .{ .kind = .id_ref, .quantifier = .required },
8890 },
8891 },
8892 .{
8893 .name = "OpGetKernelPreferredWorkGroupSizeMultiple",
8894 .opcode = 296,
8895 .operands = &.{
8896 .{ .kind = .id_result_type, .quantifier = .required },
8897 .{ .kind = .id_result, .quantifier = .required },
8898 .{ .kind = .id_ref, .quantifier = .required },
8899 .{ .kind = .id_ref, .quantifier = .required },
8900 .{ .kind = .id_ref, .quantifier = .required },
8901 .{ .kind = .id_ref, .quantifier = .required },
8902 },
8903 },
8904 .{
8905 .name = "OpRetainEvent",
8906 .opcode = 297,
8907 .operands = &.{
8908 .{ .kind = .id_ref, .quantifier = .required },
8909 },
8910 },
8911 .{
8912 .name = "OpReleaseEvent",
8913 .opcode = 298,
8914 .operands = &.{
8915 .{ .kind = .id_ref, .quantifier = .required },
8916 },
8917 },
8918 .{
8919 .name = "OpCreateUserEvent",
8920 .opcode = 299,
8921 .operands = &.{
8922 .{ .kind = .id_result_type, .quantifier = .required },
8923 .{ .kind = .id_result, .quantifier = .required },
8924 },
8925 },
8926 .{
8927 .name = "OpIsValidEvent",
8928 .opcode = 300,
8929 .operands = &.{
8930 .{ .kind = .id_result_type, .quantifier = .required },
8931 .{ .kind = .id_result, .quantifier = .required },
8932 .{ .kind = .id_ref, .quantifier = .required },
8933 },
8934 },
8935 .{
8936 .name = "OpSetUserEventStatus",
8937 .opcode = 301,
8938 .operands = &.{
8939 .{ .kind = .id_ref, .quantifier = .required },
8940 .{ .kind = .id_ref, .quantifier = .required },
8941 },
8942 },
8943 .{
8944 .name = "OpCaptureEventProfilingInfo",
8945 .opcode = 302,
8946 .operands = &.{
8947 .{ .kind = .id_ref, .quantifier = .required },
8948 .{ .kind = .id_ref, .quantifier = .required },
8949 .{ .kind = .id_ref, .quantifier = .required },
8950 },
8951 },
8952 .{
8953 .name = "OpGetDefaultQueue",
8954 .opcode = 303,
8955 .operands = &.{
8956 .{ .kind = .id_result_type, .quantifier = .required },
8957 .{ .kind = .id_result, .quantifier = .required },
8958 },
8959 },
8960 .{
8961 .name = "OpBuildNDRange",
8962 .opcode = 304,
8963 .operands = &.{
8964 .{ .kind = .id_result_type, .quantifier = .required },
8965 .{ .kind = .id_result, .quantifier = .required },
8966 .{ .kind = .id_ref, .quantifier = .required },
8967 .{ .kind = .id_ref, .quantifier = .required },
8968 .{ .kind = .id_ref, .quantifier = .required },
8969 },
8970 },
8971 .{
8972 .name = "OpImageSparseSampleImplicitLod",
8973 .opcode = 305,
8974 .operands = &.{
8975 .{ .kind = .id_result_type, .quantifier = .required },
8976 .{ .kind = .id_result, .quantifier = .required },
8977 .{ .kind = .id_ref, .quantifier = .required },
8978 .{ .kind = .id_ref, .quantifier = .required },
8979 .{ .kind = .image_operands, .quantifier = .optional },
8980 },
8981 },
8982 .{
8983 .name = "OpImageSparseSampleExplicitLod",
8984 .opcode = 306,
8985 .operands = &.{
8986 .{ .kind = .id_result_type, .quantifier = .required },
8987 .{ .kind = .id_result, .quantifier = .required },
8988 .{ .kind = .id_ref, .quantifier = .required },
8989 .{ .kind = .id_ref, .quantifier = .required },
8990 .{ .kind = .image_operands, .quantifier = .required },
8991 },
8992 },
8993 .{
8994 .name = "OpImageSparseSampleDrefImplicitLod",
8995 .opcode = 307,
8996 .operands = &.{
8997 .{ .kind = .id_result_type, .quantifier = .required },
8998 .{ .kind = .id_result, .quantifier = .required },
8999 .{ .kind = .id_ref, .quantifier = .required },
9000 .{ .kind = .id_ref, .quantifier = .required },
9001 .{ .kind = .id_ref, .quantifier = .required },
9002 .{ .kind = .image_operands, .quantifier = .optional },
9003 },
9004 },
9005 .{
9006 .name = "OpImageSparseSampleDrefExplicitLod",
9007 .opcode = 308,
9008 .operands = &.{
9009 .{ .kind = .id_result_type, .quantifier = .required },
9010 .{ .kind = .id_result, .quantifier = .required },
9011 .{ .kind = .id_ref, .quantifier = .required },
9012 .{ .kind = .id_ref, .quantifier = .required },
9013 .{ .kind = .id_ref, .quantifier = .required },
9014 .{ .kind = .image_operands, .quantifier = .required },
9015 },
9016 },
9017 .{
9018 .name = "OpImageSparseSampleProjImplicitLod",
9019 .opcode = 309,
9020 .operands = &.{
9021 .{ .kind = .id_result_type, .quantifier = .required },
9022 .{ .kind = .id_result, .quantifier = .required },
9023 .{ .kind = .id_ref, .quantifier = .required },
9024 .{ .kind = .id_ref, .quantifier = .required },
9025 .{ .kind = .image_operands, .quantifier = .optional },
9026 },
9027 },
9028 .{
9029 .name = "OpImageSparseSampleProjExplicitLod",
9030 .opcode = 310,
9031 .operands = &.{
9032 .{ .kind = .id_result_type, .quantifier = .required },
9033 .{ .kind = .id_result, .quantifier = .required },
9034 .{ .kind = .id_ref, .quantifier = .required },
9035 .{ .kind = .id_ref, .quantifier = .required },
9036 .{ .kind = .image_operands, .quantifier = .required },
9037 },
9038 },
9039 .{
9040 .name = "OpImageSparseSampleProjDrefImplicitLod",
9041 .opcode = 311,
9042 .operands = &.{
9043 .{ .kind = .id_result_type, .quantifier = .required },
9044 .{ .kind = .id_result, .quantifier = .required },
9045 .{ .kind = .id_ref, .quantifier = .required },
9046 .{ .kind = .id_ref, .quantifier = .required },
9047 .{ .kind = .id_ref, .quantifier = .required },
9048 .{ .kind = .image_operands, .quantifier = .optional },
9049 },
9050 },
9051 .{
9052 .name = "OpImageSparseSampleProjDrefExplicitLod",
9053 .opcode = 312,
9054 .operands = &.{
9055 .{ .kind = .id_result_type, .quantifier = .required },
9056 .{ .kind = .id_result, .quantifier = .required },
9057 .{ .kind = .id_ref, .quantifier = .required },
9058 .{ .kind = .id_ref, .quantifier = .required },
9059 .{ .kind = .id_ref, .quantifier = .required },
9060 .{ .kind = .image_operands, .quantifier = .required },
9061 },
9062 },
9063 .{
9064 .name = "OpImageSparseFetch",
9065 .opcode = 313,
9066 .operands = &.{
9067 .{ .kind = .id_result_type, .quantifier = .required },
9068 .{ .kind = .id_result, .quantifier = .required },
9069 .{ .kind = .id_ref, .quantifier = .required },
9070 .{ .kind = .id_ref, .quantifier = .required },
9071 .{ .kind = .image_operands, .quantifier = .optional },
9072 },
9073 },
9074 .{
9075 .name = "OpImageSparseGather",
9076 .opcode = 314,
9077 .operands = &.{
9078 .{ .kind = .id_result_type, .quantifier = .required },
9079 .{ .kind = .id_result, .quantifier = .required },
9080 .{ .kind = .id_ref, .quantifier = .required },
9081 .{ .kind = .id_ref, .quantifier = .required },
9082 .{ .kind = .id_ref, .quantifier = .required },
9083 .{ .kind = .image_operands, .quantifier = .optional },
9084 },
9085 },
9086 .{
9087 .name = "OpImageSparseDrefGather",
9088 .opcode = 315,
9089 .operands = &.{
9090 .{ .kind = .id_result_type, .quantifier = .required },
9091 .{ .kind = .id_result, .quantifier = .required },
9092 .{ .kind = .id_ref, .quantifier = .required },
9093 .{ .kind = .id_ref, .quantifier = .required },
9094 .{ .kind = .id_ref, .quantifier = .required },
9095 .{ .kind = .image_operands, .quantifier = .optional },
9096 },
9097 },
9098 .{
9099 .name = "OpImageSparseTexelsResident",
9100 .opcode = 316,
9101 .operands = &.{
9102 .{ .kind = .id_result_type, .quantifier = .required },
9103 .{ .kind = .id_result, .quantifier = .required },
9104 .{ .kind = .id_ref, .quantifier = .required },
9105 },
9106 },
9107 .{
9108 .name = "OpNoLine",
9109 .opcode = 317,
9110 .operands = &.{},
9111 },
9112 .{
9113 .name = "OpAtomicFlagTestAndSet",
9114 .opcode = 318,
9115 .operands = &.{
9116 .{ .kind = .id_result_type, .quantifier = .required },
9117 .{ .kind = .id_result, .quantifier = .required },
9118 .{ .kind = .id_ref, .quantifier = .required },
9119 .{ .kind = .id_scope, .quantifier = .required },
9120 .{ .kind = .id_memory_semantics, .quantifier = .required },
9121 },
9122 },
9123 .{
9124 .name = "OpAtomicFlagClear",
9125 .opcode = 319,
9126 .operands = &.{
9127 .{ .kind = .id_ref, .quantifier = .required },
9128 .{ .kind = .id_scope, .quantifier = .required },
9129 .{ .kind = .id_memory_semantics, .quantifier = .required },
9130 },
9131 },
9132 .{
9133 .name = "OpImageSparseRead",
9134 .opcode = 320,
9135 .operands = &.{
9136 .{ .kind = .id_result_type, .quantifier = .required },
9137 .{ .kind = .id_result, .quantifier = .required },
9138 .{ .kind = .id_ref, .quantifier = .required },
9139 .{ .kind = .id_ref, .quantifier = .required },
9140 .{ .kind = .image_operands, .quantifier = .optional },
9141 },
9142 },
9143 .{
9144 .name = "OpSizeOf",
9145 .opcode = 321,
9146 .operands = &.{
9147 .{ .kind = .id_result_type, .quantifier = .required },
9148 .{ .kind = .id_result, .quantifier = .required },
9149 .{ .kind = .id_ref, .quantifier = .required },
9150 },
9151 },
9152 .{
9153 .name = "OpTypePipeStorage",
9154 .opcode = 322,
9155 .operands = &.{
9156 .{ .kind = .id_result, .quantifier = .required },
9157 },
9158 },
9159 .{
9160 .name = "OpConstantPipeStorage",
9161 .opcode = 323,
9162 .operands = &.{
9163 .{ .kind = .id_result_type, .quantifier = .required },
9164 .{ .kind = .id_result, .quantifier = .required },
9165 .{ .kind = .literal_integer, .quantifier = .required },
9166 .{ .kind = .literal_integer, .quantifier = .required },
9167 .{ .kind = .literal_integer, .quantifier = .required },
9168 },
9169 },
9170 .{
9171 .name = "OpCreatePipeFromPipeStorage",
9172 .opcode = 324,
9173 .operands = &.{
9174 .{ .kind = .id_result_type, .quantifier = .required },
9175 .{ .kind = .id_result, .quantifier = .required },
9176 .{ .kind = .id_ref, .quantifier = .required },
9177 },
9178 },
9179 .{
9180 .name = "OpGetKernelLocalSizeForSubgroupCount",
9181 .opcode = 325,
9182 .operands = &.{
9183 .{ .kind = .id_result_type, .quantifier = .required },
9184 .{ .kind = .id_result, .quantifier = .required },
9185 .{ .kind = .id_ref, .quantifier = .required },
9186 .{ .kind = .id_ref, .quantifier = .required },
9187 .{ .kind = .id_ref, .quantifier = .required },
9188 .{ .kind = .id_ref, .quantifier = .required },
9189 .{ .kind = .id_ref, .quantifier = .required },
9190 },
9191 },
9192 .{
9193 .name = "OpGetKernelMaxNumSubgroups",
9194 .opcode = 326,
9195 .operands = &.{
9196 .{ .kind = .id_result_type, .quantifier = .required },
9197 .{ .kind = .id_result, .quantifier = .required },
9198 .{ .kind = .id_ref, .quantifier = .required },
9199 .{ .kind = .id_ref, .quantifier = .required },
9200 .{ .kind = .id_ref, .quantifier = .required },
9201 .{ .kind = .id_ref, .quantifier = .required },
9202 },
9203 },
9204 .{
9205 .name = "OpTypeNamedBarrier",
9206 .opcode = 327,
9207 .operands = &.{
9208 .{ .kind = .id_result, .quantifier = .required },
9209 },
9210 },
9211 .{
9212 .name = "OpNamedBarrierInitialize",
9213 .opcode = 328,
9214 .operands = &.{
9215 .{ .kind = .id_result_type, .quantifier = .required },
9216 .{ .kind = .id_result, .quantifier = .required },
9217 .{ .kind = .id_ref, .quantifier = .required },
9218 },
9219 },
9220 .{
9221 .name = "OpMemoryNamedBarrier",
9222 .opcode = 329,
9223 .operands = &.{
9224 .{ .kind = .id_ref, .quantifier = .required },
9225 .{ .kind = .id_scope, .quantifier = .required },
9226 .{ .kind = .id_memory_semantics, .quantifier = .required },
9227 },
9228 },
9229 .{
9230 .name = "OpModuleProcessed",
9231 .opcode = 330,
9232 .operands = &.{
9233 .{ .kind = .literal_string, .quantifier = .required },
9234 },
9235 },
9236 .{
9237 .name = "OpExecutionModeId",
9238 .opcode = 331,
9239 .operands = &.{
9240 .{ .kind = .id_ref, .quantifier = .required },
9241 .{ .kind = .execution_mode, .quantifier = .required },
9242 },
9243 },
9244 .{
9245 .name = "OpDecorateId",
9246 .opcode = 332,
9247 .operands = &.{
9248 .{ .kind = .id_ref, .quantifier = .required },
9249 .{ .kind = .decoration, .quantifier = .required },
9250 },
9251 },
9252 .{
9253 .name = "OpGroupNonUniformElect",
9254 .opcode = 333,
9255 .operands = &.{
9256 .{ .kind = .id_result_type, .quantifier = .required },
9257 .{ .kind = .id_result, .quantifier = .required },
9258 .{ .kind = .id_scope, .quantifier = .required },
9259 },
9260 },
9261 .{
9262 .name = "OpGroupNonUniformAll",
9263 .opcode = 334,
9264 .operands = &.{
9265 .{ .kind = .id_result_type, .quantifier = .required },
9266 .{ .kind = .id_result, .quantifier = .required },
9267 .{ .kind = .id_scope, .quantifier = .required },
9268 .{ .kind = .id_ref, .quantifier = .required },
9269 },
9270 },
9271 .{
9272 .name = "OpGroupNonUniformAny",
9273 .opcode = 335,
9274 .operands = &.{
9275 .{ .kind = .id_result_type, .quantifier = .required },
9276 .{ .kind = .id_result, .quantifier = .required },
9277 .{ .kind = .id_scope, .quantifier = .required },
9278 .{ .kind = .id_ref, .quantifier = .required },
9279 },
9280 },
9281 .{
9282 .name = "OpGroupNonUniformAllEqual",
9283 .opcode = 336,
9284 .operands = &.{
9285 .{ .kind = .id_result_type, .quantifier = .required },
9286 .{ .kind = .id_result, .quantifier = .required },
9287 .{ .kind = .id_scope, .quantifier = .required },
9288 .{ .kind = .id_ref, .quantifier = .required },
9289 },
9290 },
9291 .{
9292 .name = "OpGroupNonUniformBroadcast",
9293 .opcode = 337,
9294 .operands = &.{
9295 .{ .kind = .id_result_type, .quantifier = .required },
9296 .{ .kind = .id_result, .quantifier = .required },
9297 .{ .kind = .id_scope, .quantifier = .required },
9298 .{ .kind = .id_ref, .quantifier = .required },
9299 .{ .kind = .id_ref, .quantifier = .required },
9300 },
9301 },
9302 .{
9303 .name = "OpGroupNonUniformBroadcastFirst",
9304 .opcode = 338,
9305 .operands = &.{
9306 .{ .kind = .id_result_type, .quantifier = .required },
9307 .{ .kind = .id_result, .quantifier = .required },
9308 .{ .kind = .id_scope, .quantifier = .required },
9309 .{ .kind = .id_ref, .quantifier = .required },
9310 },
9311 },
9312 .{
9313 .name = "OpGroupNonUniformBallot",
9314 .opcode = 339,
9315 .operands = &.{
9316 .{ .kind = .id_result_type, .quantifier = .required },
9317 .{ .kind = .id_result, .quantifier = .required },
9318 .{ .kind = .id_scope, .quantifier = .required },
9319 .{ .kind = .id_ref, .quantifier = .required },
9320 },
9321 },
9322 .{
9323 .name = "OpGroupNonUniformInverseBallot",
9324 .opcode = 340,
9325 .operands = &.{
9326 .{ .kind = .id_result_type, .quantifier = .required },
9327 .{ .kind = .id_result, .quantifier = .required },
9328 .{ .kind = .id_scope, .quantifier = .required },
9329 .{ .kind = .id_ref, .quantifier = .required },
9330 },
9331 },
9332 .{
9333 .name = "OpGroupNonUniformBallotBitExtract",
9334 .opcode = 341,
9335 .operands = &.{
9336 .{ .kind = .id_result_type, .quantifier = .required },
9337 .{ .kind = .id_result, .quantifier = .required },
9338 .{ .kind = .id_scope, .quantifier = .required },
9339 .{ .kind = .id_ref, .quantifier = .required },
9340 .{ .kind = .id_ref, .quantifier = .required },
9341 },
9342 },
9343 .{
9344 .name = "OpGroupNonUniformBallotBitCount",
9345 .opcode = 342,
9346 .operands = &.{
9347 .{ .kind = .id_result_type, .quantifier = .required },
9348 .{ .kind = .id_result, .quantifier = .required },
9349 .{ .kind = .id_scope, .quantifier = .required },
9350 .{ .kind = .group_operation, .quantifier = .required },
9351 .{ .kind = .id_ref, .quantifier = .required },
9352 },
9353 },
9354 .{
9355 .name = "OpGroupNonUniformBallotFindLSB",
9356 .opcode = 343,
9357 .operands = &.{
9358 .{ .kind = .id_result_type, .quantifier = .required },
9359 .{ .kind = .id_result, .quantifier = .required },
9360 .{ .kind = .id_scope, .quantifier = .required },
9361 .{ .kind = .id_ref, .quantifier = .required },
9362 },
9363 },
9364 .{
9365 .name = "OpGroupNonUniformBallotFindMSB",
9366 .opcode = 344,
9367 .operands = &.{
9368 .{ .kind = .id_result_type, .quantifier = .required },
9369 .{ .kind = .id_result, .quantifier = .required },
9370 .{ .kind = .id_scope, .quantifier = .required },
9371 .{ .kind = .id_ref, .quantifier = .required },
9372 },
9373 },
9374 .{
9375 .name = "OpGroupNonUniformShuffle",
9376 .opcode = 345,
9377 .operands = &.{
9378 .{ .kind = .id_result_type, .quantifier = .required },
9379 .{ .kind = .id_result, .quantifier = .required },
9380 .{ .kind = .id_scope, .quantifier = .required },
9381 .{ .kind = .id_ref, .quantifier = .required },
9382 .{ .kind = .id_ref, .quantifier = .required },
9383 },
9384 },
9385 .{
9386 .name = "OpGroupNonUniformShuffleXor",
9387 .opcode = 346,
9388 .operands = &.{
9389 .{ .kind = .id_result_type, .quantifier = .required },
9390 .{ .kind = .id_result, .quantifier = .required },
9391 .{ .kind = .id_scope, .quantifier = .required },
9392 .{ .kind = .id_ref, .quantifier = .required },
9393 .{ .kind = .id_ref, .quantifier = .required },
9394 },
9395 },
9396 .{
9397 .name = "OpGroupNonUniformShuffleUp",
9398 .opcode = 347,
9399 .operands = &.{
9400 .{ .kind = .id_result_type, .quantifier = .required },
9401 .{ .kind = .id_result, .quantifier = .required },
9402 .{ .kind = .id_scope, .quantifier = .required },
9403 .{ .kind = .id_ref, .quantifier = .required },
9404 .{ .kind = .id_ref, .quantifier = .required },
9405 },
9406 },
9407 .{
9408 .name = "OpGroupNonUniformShuffleDown",
9409 .opcode = 348,
9410 .operands = &.{
9411 .{ .kind = .id_result_type, .quantifier = .required },
9412 .{ .kind = .id_result, .quantifier = .required },
9413 .{ .kind = .id_scope, .quantifier = .required },
9414 .{ .kind = .id_ref, .quantifier = .required },
9415 .{ .kind = .id_ref, .quantifier = .required },
9416 },
9417 },
9418 .{
9419 .name = "OpGroupNonUniformIAdd",
9420 .opcode = 349,
9421 .operands = &.{
9422 .{ .kind = .id_result_type, .quantifier = .required },
9423 .{ .kind = .id_result, .quantifier = .required },
9424 .{ .kind = .id_scope, .quantifier = .required },
9425 .{ .kind = .group_operation, .quantifier = .required },
9426 .{ .kind = .id_ref, .quantifier = .required },
9427 .{ .kind = .id_ref, .quantifier = .optional },
9428 },
9429 },
9430 .{
9431 .name = "OpGroupNonUniformFAdd",
9432 .opcode = 350,
9433 .operands = &.{
9434 .{ .kind = .id_result_type, .quantifier = .required },
9435 .{ .kind = .id_result, .quantifier = .required },
9436 .{ .kind = .id_scope, .quantifier = .required },
9437 .{ .kind = .group_operation, .quantifier = .required },
9438 .{ .kind = .id_ref, .quantifier = .required },
9439 .{ .kind = .id_ref, .quantifier = .optional },
9440 },
9441 },
9442 .{
9443 .name = "OpGroupNonUniformIMul",
9444 .opcode = 351,
9445 .operands = &.{
9446 .{ .kind = .id_result_type, .quantifier = .required },
9447 .{ .kind = .id_result, .quantifier = .required },
9448 .{ .kind = .id_scope, .quantifier = .required },
9449 .{ .kind = .group_operation, .quantifier = .required },
9450 .{ .kind = .id_ref, .quantifier = .required },
9451 .{ .kind = .id_ref, .quantifier = .optional },
9452 },
9453 },
9454 .{
9455 .name = "OpGroupNonUniformFMul",
9456 .opcode = 352,
9457 .operands = &.{
9458 .{ .kind = .id_result_type, .quantifier = .required },
9459 .{ .kind = .id_result, .quantifier = .required },
9460 .{ .kind = .id_scope, .quantifier = .required },
9461 .{ .kind = .group_operation, .quantifier = .required },
9462 .{ .kind = .id_ref, .quantifier = .required },
9463 .{ .kind = .id_ref, .quantifier = .optional },
9464 },
9465 },
9466 .{
9467 .name = "OpGroupNonUniformSMin",
9468 .opcode = 353,
9469 .operands = &.{
9470 .{ .kind = .id_result_type, .quantifier = .required },
9471 .{ .kind = .id_result, .quantifier = .required },
9472 .{ .kind = .id_scope, .quantifier = .required },
9473 .{ .kind = .group_operation, .quantifier = .required },
9474 .{ .kind = .id_ref, .quantifier = .required },
9475 .{ .kind = .id_ref, .quantifier = .optional },
9476 },
9477 },
9478 .{
9479 .name = "OpGroupNonUniformUMin",
9480 .opcode = 354,
9481 .operands = &.{
9482 .{ .kind = .id_result_type, .quantifier = .required },
9483 .{ .kind = .id_result, .quantifier = .required },
9484 .{ .kind = .id_scope, .quantifier = .required },
9485 .{ .kind = .group_operation, .quantifier = .required },
9486 .{ .kind = .id_ref, .quantifier = .required },
9487 .{ .kind = .id_ref, .quantifier = .optional },
9488 },
9489 },
9490 .{
9491 .name = "OpGroupNonUniformFMin",
9492 .opcode = 355,
9493 .operands = &.{
9494 .{ .kind = .id_result_type, .quantifier = .required },
9495 .{ .kind = .id_result, .quantifier = .required },
9496 .{ .kind = .id_scope, .quantifier = .required },
9497 .{ .kind = .group_operation, .quantifier = .required },
9498 .{ .kind = .id_ref, .quantifier = .required },
9499 .{ .kind = .id_ref, .quantifier = .optional },
9500 },
9501 },
9502 .{
9503 .name = "OpGroupNonUniformSMax",
9504 .opcode = 356,
9505 .operands = &.{
9506 .{ .kind = .id_result_type, .quantifier = .required },
9507 .{ .kind = .id_result, .quantifier = .required },
9508 .{ .kind = .id_scope, .quantifier = .required },
9509 .{ .kind = .group_operation, .quantifier = .required },
9510 .{ .kind = .id_ref, .quantifier = .required },
9511 .{ .kind = .id_ref, .quantifier = .optional },
9512 },
9513 },
9514 .{
9515 .name = "OpGroupNonUniformUMax",
9516 .opcode = 357,
9517 .operands = &.{
9518 .{ .kind = .id_result_type, .quantifier = .required },
9519 .{ .kind = .id_result, .quantifier = .required },
9520 .{ .kind = .id_scope, .quantifier = .required },
9521 .{ .kind = .group_operation, .quantifier = .required },
9522 .{ .kind = .id_ref, .quantifier = .required },
9523 .{ .kind = .id_ref, .quantifier = .optional },
9524 },
9525 },
9526 .{
9527 .name = "OpGroupNonUniformFMax",
9528 .opcode = 358,
9529 .operands = &.{
9530 .{ .kind = .id_result_type, .quantifier = .required },
9531 .{ .kind = .id_result, .quantifier = .required },
9532 .{ .kind = .id_scope, .quantifier = .required },
9533 .{ .kind = .group_operation, .quantifier = .required },
9534 .{ .kind = .id_ref, .quantifier = .required },
9535 .{ .kind = .id_ref, .quantifier = .optional },
9536 },
9537 },
9538 .{
9539 .name = "OpGroupNonUniformBitwiseAnd",
9540 .opcode = 359,
9541 .operands = &.{
9542 .{ .kind = .id_result_type, .quantifier = .required },
9543 .{ .kind = .id_result, .quantifier = .required },
9544 .{ .kind = .id_scope, .quantifier = .required },
9545 .{ .kind = .group_operation, .quantifier = .required },
9546 .{ .kind = .id_ref, .quantifier = .required },
9547 .{ .kind = .id_ref, .quantifier = .optional },
9548 },
9549 },
9550 .{
9551 .name = "OpGroupNonUniformBitwiseOr",
9552 .opcode = 360,
9553 .operands = &.{
9554 .{ .kind = .id_result_type, .quantifier = .required },
9555 .{ .kind = .id_result, .quantifier = .required },
9556 .{ .kind = .id_scope, .quantifier = .required },
9557 .{ .kind = .group_operation, .quantifier = .required },
9558 .{ .kind = .id_ref, .quantifier = .required },
9559 .{ .kind = .id_ref, .quantifier = .optional },
9560 },
9561 },
9562 .{
9563 .name = "OpGroupNonUniformBitwiseXor",
9564 .opcode = 361,
9565 .operands = &.{
9566 .{ .kind = .id_result_type, .quantifier = .required },
9567 .{ .kind = .id_result, .quantifier = .required },
9568 .{ .kind = .id_scope, .quantifier = .required },
9569 .{ .kind = .group_operation, .quantifier = .required },
9570 .{ .kind = .id_ref, .quantifier = .required },
9571 .{ .kind = .id_ref, .quantifier = .optional },
9572 },
9573 },
9574 .{
9575 .name = "OpGroupNonUniformLogicalAnd",
9576 .opcode = 362,
9577 .operands = &.{
9578 .{ .kind = .id_result_type, .quantifier = .required },
9579 .{ .kind = .id_result, .quantifier = .required },
9580 .{ .kind = .id_scope, .quantifier = .required },
9581 .{ .kind = .group_operation, .quantifier = .required },
9582 .{ .kind = .id_ref, .quantifier = .required },
9583 .{ .kind = .id_ref, .quantifier = .optional },
9584 },
9585 },
9586 .{
9587 .name = "OpGroupNonUniformLogicalOr",
9588 .opcode = 363,
9589 .operands = &.{
9590 .{ .kind = .id_result_type, .quantifier = .required },
9591 .{ .kind = .id_result, .quantifier = .required },
9592 .{ .kind = .id_scope, .quantifier = .required },
9593 .{ .kind = .group_operation, .quantifier = .required },
9594 .{ .kind = .id_ref, .quantifier = .required },
9595 .{ .kind = .id_ref, .quantifier = .optional },
9596 },
9597 },
9598 .{
9599 .name = "OpGroupNonUniformLogicalXor",
9600 .opcode = 364,
9601 .operands = &.{
9602 .{ .kind = .id_result_type, .quantifier = .required },
9603 .{ .kind = .id_result, .quantifier = .required },
9604 .{ .kind = .id_scope, .quantifier = .required },
9605 .{ .kind = .group_operation, .quantifier = .required },
9606 .{ .kind = .id_ref, .quantifier = .required },
9607 .{ .kind = .id_ref, .quantifier = .optional },
9608 },
9609 },
9610 .{
9611 .name = "OpGroupNonUniformQuadBroadcast",
9612 .opcode = 365,
9613 .operands = &.{
9614 .{ .kind = .id_result_type, .quantifier = .required },
9615 .{ .kind = .id_result, .quantifier = .required },
9616 .{ .kind = .id_scope, .quantifier = .required },
9617 .{ .kind = .id_ref, .quantifier = .required },
9618 .{ .kind = .id_ref, .quantifier = .required },
9619 },
9620 },
9621 .{
9622 .name = "OpGroupNonUniformQuadSwap",
9623 .opcode = 366,
9624 .operands = &.{
9625 .{ .kind = .id_result_type, .quantifier = .required },
9626 .{ .kind = .id_result, .quantifier = .required },
9627 .{ .kind = .id_scope, .quantifier = .required },
9628 .{ .kind = .id_ref, .quantifier = .required },
9629 .{ .kind = .id_ref, .quantifier = .required },
9630 },
9631 },
9632 .{
9633 .name = "OpCopyLogical",
9634 .opcode = 400,
9635 .operands = &.{
9636 .{ .kind = .id_result_type, .quantifier = .required },
9637 .{ .kind = .id_result, .quantifier = .required },
9638 .{ .kind = .id_ref, .quantifier = .required },
9639 },
9640 },
9641 .{
9642 .name = "OpPtrEqual",
9643 .opcode = 401,
9644 .operands = &.{
9645 .{ .kind = .id_result_type, .quantifier = .required },
9646 .{ .kind = .id_result, .quantifier = .required },
9647 .{ .kind = .id_ref, .quantifier = .required },
9648 .{ .kind = .id_ref, .quantifier = .required },
9649 },
9650 },
9651 .{
9652 .name = "OpPtrNotEqual",
9653 .opcode = 402,
9654 .operands = &.{
9655 .{ .kind = .id_result_type, .quantifier = .required },
9656 .{ .kind = .id_result, .quantifier = .required },
9657 .{ .kind = .id_ref, .quantifier = .required },
9658 .{ .kind = .id_ref, .quantifier = .required },
9659 },
9660 },
9661 .{
9662 .name = "OpPtrDiff",
9663 .opcode = 403,
9664 .operands = &.{
9665 .{ .kind = .id_result_type, .quantifier = .required },
9666 .{ .kind = .id_result, .quantifier = .required },
9667 .{ .kind = .id_ref, .quantifier = .required },
9668 .{ .kind = .id_ref, .quantifier = .required },
9669 },
9670 },
9671 .{
9672 .name = "OpColorAttachmentReadEXT",
9673 .opcode = 4160,
9674 .operands = &.{
9675 .{ .kind = .id_result_type, .quantifier = .required },
9676 .{ .kind = .id_result, .quantifier = .required },
9677 .{ .kind = .id_ref, .quantifier = .required },
9678 .{ .kind = .id_ref, .quantifier = .optional },
9679 },
9680 },
9681 .{
9682 .name = "OpDepthAttachmentReadEXT",
9683 .opcode = 4161,
9684 .operands = &.{
9685 .{ .kind = .id_result_type, .quantifier = .required },
9686 .{ .kind = .id_result, .quantifier = .required },
9687 .{ .kind = .id_ref, .quantifier = .optional },
9688 },
9689 },
9690 .{
9691 .name = "OpStencilAttachmentReadEXT",
9692 .opcode = 4162,
9693 .operands = &.{
9694 .{ .kind = .id_result_type, .quantifier = .required },
9695 .{ .kind = .id_result, .quantifier = .required },
9696 .{ .kind = .id_ref, .quantifier = .optional },
9697 },
9698 },
9699 .{
9700 .name = "OpTypeTensorARM",
9701 .opcode = 4163,
9702 .operands = &.{
9703 .{ .kind = .id_result, .quantifier = .required },
9704 .{ .kind = .id_ref, .quantifier = .required },
9705 .{ .kind = .id_ref, .quantifier = .optional },
9706 .{ .kind = .id_ref, .quantifier = .optional },
9707 },
9708 },
9709 .{
9710 .name = "OpTensorReadARM",
9711 .opcode = 4164,
9712 .operands = &.{
9713 .{ .kind = .id_result_type, .quantifier = .required },
9714 .{ .kind = .id_result, .quantifier = .required },
9715 .{ .kind = .id_ref, .quantifier = .required },
9716 .{ .kind = .id_ref, .quantifier = .required },
9717 .{ .kind = .tensor_operands, .quantifier = .optional },
9718 },
9719 },
9720 .{
9721 .name = "OpTensorWriteARM",
9722 .opcode = 4165,
9723 .operands = &.{
9724 .{ .kind = .id_ref, .quantifier = .required },
9725 .{ .kind = .id_ref, .quantifier = .required },
9726 .{ .kind = .id_ref, .quantifier = .required },
9727 .{ .kind = .tensor_operands, .quantifier = .optional },
9728 },
9729 },
9730 .{
9731 .name = "OpTensorQuerySizeARM",
9732 .opcode = 4166,
9733 .operands = &.{
9734 .{ .kind = .id_result_type, .quantifier = .required },
9735 .{ .kind = .id_result, .quantifier = .required },
9736 .{ .kind = .id_ref, .quantifier = .required },
9737 .{ .kind = .id_ref, .quantifier = .required },
9738 },
9739 },
9740 .{
9741 .name = "OpGraphConstantARM",
9742 .opcode = 4181,
9743 .operands = &.{
9744 .{ .kind = .id_result_type, .quantifier = .required },
9745 .{ .kind = .id_result, .quantifier = .required },
9746 .{ .kind = .literal_integer, .quantifier = .required },
9747 },
9748 },
9749 .{
9750 .name = "OpGraphEntryPointARM",
9751 .opcode = 4182,
9752 .operands = &.{
9753 .{ .kind = .id_ref, .quantifier = .required },
9754 .{ .kind = .literal_string, .quantifier = .required },
9755 .{ .kind = .id_ref, .quantifier = .variadic },
9756 },
9757 },
9758 .{
9759 .name = "OpGraphARM",
9760 .opcode = 4183,
9761 .operands = &.{
9762 .{ .kind = .id_result_type, .quantifier = .required },
9763 .{ .kind = .id_result, .quantifier = .required },
9764 },
9765 },
9766 .{
9767 .name = "OpGraphInputARM",
9768 .opcode = 4184,
9769 .operands = &.{
9770 .{ .kind = .id_result_type, .quantifier = .required },
9771 .{ .kind = .id_result, .quantifier = .required },
9772 .{ .kind = .id_ref, .quantifier = .required },
9773 .{ .kind = .id_ref, .quantifier = .variadic },
9774 },
9775 },
9776 .{
9777 .name = "OpGraphSetOutputARM",
9778 .opcode = 4185,
9779 .operands = &.{
9780 .{ .kind = .id_ref, .quantifier = .required },
9781 .{ .kind = .id_ref, .quantifier = .required },
9782 .{ .kind = .id_ref, .quantifier = .variadic },
9783 },
9784 },
9785 .{
9786 .name = "OpGraphEndARM",
9787 .opcode = 4186,
9788 .operands = &.{},
9789 },
9790 .{
9791 .name = "OpTypeGraphARM",
9792 .opcode = 4190,
9793 .operands = &.{
9794 .{ .kind = .id_result, .quantifier = .required },
9795 .{ .kind = .literal_integer, .quantifier = .required },
9796 .{ .kind = .id_ref, .quantifier = .variadic },
9797 },
9798 },
9799 .{
9800 .name = "OpTerminateInvocation",
9801 .opcode = 4416,
9802 .operands = &.{},
9803 },
9804 .{
9805 .name = "OpTypeUntypedPointerKHR",
9806 .opcode = 4417,
9807 .operands = &.{
9808 .{ .kind = .id_result, .quantifier = .required },
9809 .{ .kind = .storage_class, .quantifier = .required },
9810 },
9811 },
9812 .{
9813 .name = "OpUntypedVariableKHR",
9814 .opcode = 4418,
9815 .operands = &.{
9816 .{ .kind = .id_result_type, .quantifier = .required },
9817 .{ .kind = .id_result, .quantifier = .required },
9818 .{ .kind = .storage_class, .quantifier = .required },
9819 .{ .kind = .id_ref, .quantifier = .optional },
9820 .{ .kind = .id_ref, .quantifier = .optional },
9821 },
9822 },
9823 .{
9824 .name = "OpUntypedAccessChainKHR",
9825 .opcode = 4419,
9826 .operands = &.{
9827 .{ .kind = .id_result_type, .quantifier = .required },
9828 .{ .kind = .id_result, .quantifier = .required },
9829 .{ .kind = .id_ref, .quantifier = .required },
9830 .{ .kind = .id_ref, .quantifier = .required },
9831 .{ .kind = .id_ref, .quantifier = .variadic },
9832 },
9833 },
9834 .{
9835 .name = "OpUntypedInBoundsAccessChainKHR",
9836 .opcode = 4420,
9837 .operands = &.{
9838 .{ .kind = .id_result_type, .quantifier = .required },
9839 .{ .kind = .id_result, .quantifier = .required },
9840 .{ .kind = .id_ref, .quantifier = .required },
9841 .{ .kind = .id_ref, .quantifier = .required },
9842 .{ .kind = .id_ref, .quantifier = .variadic },
9843 },
9844 },
9845 .{
9846 .name = "OpSubgroupBallotKHR",
9847 .opcode = 4421,
9848 .operands = &.{
9849 .{ .kind = .id_result_type, .quantifier = .required },
9850 .{ .kind = .id_result, .quantifier = .required },
9851 .{ .kind = .id_ref, .quantifier = .required },
9852 },
9853 },
9854 .{
9855 .name = "OpSubgroupFirstInvocationKHR",
9856 .opcode = 4422,
9857 .operands = &.{
9858 .{ .kind = .id_result_type, .quantifier = .required },
9859 .{ .kind = .id_result, .quantifier = .required },
9860 .{ .kind = .id_ref, .quantifier = .required },
9861 },
9862 },
9863 .{
9864 .name = "OpUntypedPtrAccessChainKHR",
9865 .opcode = 4423,
9866 .operands = &.{
9867 .{ .kind = .id_result_type, .quantifier = .required },
9868 .{ .kind = .id_result, .quantifier = .required },
9869 .{ .kind = .id_ref, .quantifier = .required },
9870 .{ .kind = .id_ref, .quantifier = .required },
9871 .{ .kind = .id_ref, .quantifier = .required },
9872 .{ .kind = .id_ref, .quantifier = .variadic },
9873 },
9874 },
9875 .{
9876 .name = "OpUntypedInBoundsPtrAccessChainKHR",
9877 .opcode = 4424,
9878 .operands = &.{
9879 .{ .kind = .id_result_type, .quantifier = .required },
9880 .{ .kind = .id_result, .quantifier = .required },
9881 .{ .kind = .id_ref, .quantifier = .required },
9882 .{ .kind = .id_ref, .quantifier = .required },
9883 .{ .kind = .id_ref, .quantifier = .required },
9884 .{ .kind = .id_ref, .quantifier = .variadic },
9885 },
9886 },
9887 .{
9888 .name = "OpUntypedArrayLengthKHR",
9889 .opcode = 4425,
9890 .operands = &.{
9891 .{ .kind = .id_result_type, .quantifier = .required },
9892 .{ .kind = .id_result, .quantifier = .required },
9893 .{ .kind = .id_ref, .quantifier = .required },
9894 .{ .kind = .id_ref, .quantifier = .required },
9895 .{ .kind = .literal_integer, .quantifier = .required },
9896 },
9897 },
9898 .{
9899 .name = "OpUntypedPrefetchKHR",
9900 .opcode = 4426,
9901 .operands = &.{
9902 .{ .kind = .id_ref, .quantifier = .required },
9903 .{ .kind = .id_ref, .quantifier = .required },
9904 .{ .kind = .id_ref, .quantifier = .optional },
9905 .{ .kind = .id_ref, .quantifier = .optional },
9906 .{ .kind = .id_ref, .quantifier = .optional },
9907 },
9908 },
9909 .{
9910 .name = "OpFmaKHR",
9911 .opcode = 4427,
9912 .operands = &.{
9913 .{ .kind = .id_result_type, .quantifier = .required },
9914 .{ .kind = .id_result, .quantifier = .required },
9915 .{ .kind = .id_ref, .quantifier = .required },
9916 .{ .kind = .id_ref, .quantifier = .required },
9917 .{ .kind = .id_ref, .quantifier = .required },
9918 },
9919 },
9920 .{
9921 .name = "OpSubgroupAllKHR",
9922 .opcode = 4428,
9923 .operands = &.{
9924 .{ .kind = .id_result_type, .quantifier = .required },
9925 .{ .kind = .id_result, .quantifier = .required },
9926 .{ .kind = .id_ref, .quantifier = .required },
9927 },
9928 },
9929 .{
9930 .name = "OpSubgroupAnyKHR",
9931 .opcode = 4429,
9932 .operands = &.{
9933 .{ .kind = .id_result_type, .quantifier = .required },
9934 .{ .kind = .id_result, .quantifier = .required },
9935 .{ .kind = .id_ref, .quantifier = .required },
9936 },
9937 },
9938 .{
9939 .name = "OpSubgroupAllEqualKHR",
9940 .opcode = 4430,
9941 .operands = &.{
9942 .{ .kind = .id_result_type, .quantifier = .required },
9943 .{ .kind = .id_result, .quantifier = .required },
9944 .{ .kind = .id_ref, .quantifier = .required },
9945 },
9946 },
9947 .{
9948 .name = "OpGroupNonUniformRotateKHR",
9949 .opcode = 4431,
9950 .operands = &.{
9951 .{ .kind = .id_result_type, .quantifier = .required },
9952 .{ .kind = .id_result, .quantifier = .required },
9953 .{ .kind = .id_scope, .quantifier = .required },
9954 .{ .kind = .id_ref, .quantifier = .required },
9955 .{ .kind = .id_ref, .quantifier = .required },
9956 .{ .kind = .id_ref, .quantifier = .optional },
9957 },
9958 },
9959 .{
9960 .name = "OpSubgroupReadInvocationKHR",
9961 .opcode = 4432,
9962 .operands = &.{
9963 .{ .kind = .id_result_type, .quantifier = .required },
9964 .{ .kind = .id_result, .quantifier = .required },
9965 .{ .kind = .id_ref, .quantifier = .required },
9966 .{ .kind = .id_ref, .quantifier = .required },
9967 },
9968 },
9969 .{
9970 .name = "OpExtInstWithForwardRefsKHR",
9971 .opcode = 4433,
9972 .operands = &.{
9973 .{ .kind = .id_result_type, .quantifier = .required },
9974 .{ .kind = .id_result, .quantifier = .required },
9975 .{ .kind = .id_ref, .quantifier = .required },
9976 .{ .kind = .literal_ext_inst_integer, .quantifier = .required },
9977 .{ .kind = .id_ref, .quantifier = .variadic },
9978 },
9979 },
9980 .{
9981 .name = "OpUntypedGroupAsyncCopyKHR",
9982 .opcode = 4434,
9983 .operands = &.{
9984 .{ .kind = .id_result_type, .quantifier = .required },
9985 .{ .kind = .id_result, .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 .{ .kind = .id_ref, .quantifier = .required },
9991 .{ .kind = .id_ref, .quantifier = .required },
9992 .{ .kind = .id_ref, .quantifier = .required },
9993 .{ .kind = .memory_access, .quantifier = .optional },
9994 .{ .kind = .memory_access, .quantifier = .optional },
9995 },
9996 },
9997 .{
9998 .name = "OpTraceRayKHR",
9999 .opcode = 4445,
10000 .operands = &.{
10001 .{ .kind = .id_ref, .quantifier = .required },
10002 .{ .kind = .id_ref, .quantifier = .required },
10003 .{ .kind = .id_ref, .quantifier = .required },
10004 .{ .kind = .id_ref, .quantifier = .required },
10005 .{ .kind = .id_ref, .quantifier = .required },
10006 .{ .kind = .id_ref, .quantifier = .required },
10007 .{ .kind = .id_ref, .quantifier = .required },
10008 .{ .kind = .id_ref, .quantifier = .required },
10009 .{ .kind = .id_ref, .quantifier = .required },
10010 .{ .kind = .id_ref, .quantifier = .required },
10011 .{ .kind = .id_ref, .quantifier = .required },
10012 },
10013 },
10014 .{
10015 .name = "OpExecuteCallableKHR",
10016 .opcode = 4446,
10017 .operands = &.{
10018 .{ .kind = .id_ref, .quantifier = .required },
10019 .{ .kind = .id_ref, .quantifier = .required },
10020 },
10021 },
10022 .{
10023 .name = "OpConvertUToAccelerationStructureKHR",
10024 .opcode = 4447,
10025 .operands = &.{
10026 .{ .kind = .id_result_type, .quantifier = .required },
10027 .{ .kind = .id_result, .quantifier = .required },
10028 .{ .kind = .id_ref, .quantifier = .required },
10029 },
10030 },
10031 .{
10032 .name = "OpIgnoreIntersectionKHR",
10033 .opcode = 4448,
10034 .operands = &.{},
10035 },
10036 .{
10037 .name = "OpTerminateRayKHR",
10038 .opcode = 4449,
10039 .operands = &.{},
10040 },
10041 .{
10042 .name = "OpSDot",
10043 .opcode = 4450,
10044 .operands = &.{
10045 .{ .kind = .id_result_type, .quantifier = .required },
10046 .{ .kind = .id_result, .quantifier = .required },
10047 .{ .kind = .id_ref, .quantifier = .required },
10048 .{ .kind = .id_ref, .quantifier = .required },
10049 .{ .kind = .packed_vector_format, .quantifier = .optional },
10050 },
10051 },
10052 .{
10053 .name = "OpUDot",
10054 .opcode = 4451,
10055 .operands = &.{
10056 .{ .kind = .id_result_type, .quantifier = .required },
10057 .{ .kind = .id_result, .quantifier = .required },
10058 .{ .kind = .id_ref, .quantifier = .required },
10059 .{ .kind = .id_ref, .quantifier = .required },
10060 .{ .kind = .packed_vector_format, .quantifier = .optional },
10061 },
10062 },
10063 .{
10064 .name = "OpSUDot",
10065 .opcode = 4452,
10066 .operands = &.{
10067 .{ .kind = .id_result_type, .quantifier = .required },
10068 .{ .kind = .id_result, .quantifier = .required },
10069 .{ .kind = .id_ref, .quantifier = .required },
10070 .{ .kind = .id_ref, .quantifier = .required },
10071 .{ .kind = .packed_vector_format, .quantifier = .optional },
10072 },
10073 },
10074 .{
10075 .name = "OpSDotAccSat",
10076 .opcode = 4453,
10077 .operands = &.{
10078 .{ .kind = .id_result_type, .quantifier = .required },
10079 .{ .kind = .id_result, .quantifier = .required },
10080 .{ .kind = .id_ref, .quantifier = .required },
10081 .{ .kind = .id_ref, .quantifier = .required },
10082 .{ .kind = .id_ref, .quantifier = .required },
10083 .{ .kind = .packed_vector_format, .quantifier = .optional },
10084 },
10085 },
10086 .{
10087 .name = "OpUDotAccSat",
10088 .opcode = 4454,
10089 .operands = &.{
10090 .{ .kind = .id_result_type, .quantifier = .required },
10091 .{ .kind = .id_result, .quantifier = .required },
10092 .{ .kind = .id_ref, .quantifier = .required },
10093 .{ .kind = .id_ref, .quantifier = .required },
10094 .{ .kind = .id_ref, .quantifier = .required },
10095 .{ .kind = .packed_vector_format, .quantifier = .optional },
10096 },
10097 },
10098 .{
10099 .name = "OpSUDotAccSat",
10100 .opcode = 4455,
10101 .operands = &.{
10102 .{ .kind = .id_result_type, .quantifier = .required },
10103 .{ .kind = .id_result, .quantifier = .required },
10104 .{ .kind = .id_ref, .quantifier = .required },
10105 .{ .kind = .id_ref, .quantifier = .required },
10106 .{ .kind = .id_ref, .quantifier = .required },
10107 .{ .kind = .packed_vector_format, .quantifier = .optional },
10108 },
10109 },
10110 .{
10111 .name = "OpTypeCooperativeMatrixKHR",
10112 .opcode = 4456,
10113 .operands = &.{
10114 .{ .kind = .id_result, .quantifier = .required },
10115 .{ .kind = .id_ref, .quantifier = .required },
10116 .{ .kind = .id_scope, .quantifier = .required },
10117 .{ .kind = .id_ref, .quantifier = .required },
10118 .{ .kind = .id_ref, .quantifier = .required },
10119 .{ .kind = .id_ref, .quantifier = .required },
10120 },
10121 },
10122 .{
10123 .name = "OpCooperativeMatrixLoadKHR",
10124 .opcode = 4457,
10125 .operands = &.{
10126 .{ .kind = .id_result_type, .quantifier = .required },
10127 .{ .kind = .id_result, .quantifier = .required },
10128 .{ .kind = .id_ref, .quantifier = .required },
10129 .{ .kind = .id_ref, .quantifier = .required },
10130 .{ .kind = .id_ref, .quantifier = .optional },
10131 .{ .kind = .memory_access, .quantifier = .optional },
10132 },
10133 },
10134 .{
10135 .name = "OpCooperativeMatrixStoreKHR",
10136 .opcode = 4458,
10137 .operands = &.{
10138 .{ .kind = .id_ref, .quantifier = .required },
10139 .{ .kind = .id_ref, .quantifier = .required },
10140 .{ .kind = .id_ref, .quantifier = .required },
10141 .{ .kind = .id_ref, .quantifier = .optional },
10142 .{ .kind = .memory_access, .quantifier = .optional },
10143 },
10144 },
10145 .{
10146 .name = "OpCooperativeMatrixMulAddKHR",
10147 .opcode = 4459,
10148 .operands = &.{
10149 .{ .kind = .id_result_type, .quantifier = .required },
10150 .{ .kind = .id_result, .quantifier = .required },
10151 .{ .kind = .id_ref, .quantifier = .required },
10152 .{ .kind = .id_ref, .quantifier = .required },
10153 .{ .kind = .id_ref, .quantifier = .required },
10154 .{ .kind = .cooperative_matrix_operands, .quantifier = .optional },
10155 },
10156 },
10157 .{
10158 .name = "OpCooperativeMatrixLengthKHR",
10159 .opcode = 4460,
10160 .operands = &.{
10161 .{ .kind = .id_result_type, .quantifier = .required },
10162 .{ .kind = .id_result, .quantifier = .required },
10163 .{ .kind = .id_ref, .quantifier = .required },
10164 },
10165 },
10166 .{
10167 .name = "OpConstantCompositeReplicateEXT",
10168 .opcode = 4461,
10169 .operands = &.{
10170 .{ .kind = .id_result_type, .quantifier = .required },
10171 .{ .kind = .id_result, .quantifier = .required },
10172 .{ .kind = .id_ref, .quantifier = .required },
10173 },
10174 },
10175 .{
10176 .name = "OpSpecConstantCompositeReplicateEXT",
10177 .opcode = 4462,
10178 .operands = &.{
10179 .{ .kind = .id_result_type, .quantifier = .required },
10180 .{ .kind = .id_result, .quantifier = .required },
10181 .{ .kind = .id_ref, .quantifier = .required },
10182 },
10183 },
10184 .{
10185 .name = "OpCompositeConstructReplicateEXT",
10186 .opcode = 4463,
10187 .operands = &.{
10188 .{ .kind = .id_result_type, .quantifier = .required },
10189 .{ .kind = .id_result, .quantifier = .required },
10190 .{ .kind = .id_ref, .quantifier = .required },
10191 },
10192 },
10193 .{
10194 .name = "OpTypeRayQueryKHR",
10195 .opcode = 4472,
10196 .operands = &.{
10197 .{ .kind = .id_result, .quantifier = .required },
10198 },
10199 },
10200 .{
10201 .name = "OpRayQueryInitializeKHR",
10202 .opcode = 4473,
10203 .operands = &.{
10204 .{ .kind = .id_ref, .quantifier = .required },
10205 .{ .kind = .id_ref, .quantifier = .required },
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 },
10213 },
10214 .{
10215 .name = "OpRayQueryTerminateKHR",
10216 .opcode = 4474,
10217 .operands = &.{
10218 .{ .kind = .id_ref, .quantifier = .required },
10219 },
10220 },
10221 .{
10222 .name = "OpRayQueryGenerateIntersectionKHR",
10223 .opcode = 4475,
10224 .operands = &.{
10225 .{ .kind = .id_ref, .quantifier = .required },
10226 .{ .kind = .id_ref, .quantifier = .required },
10227 },
10228 },
10229 .{
10230 .name = "OpRayQueryConfirmIntersectionKHR",
10231 .opcode = 4476,
10232 .operands = &.{
10233 .{ .kind = .id_ref, .quantifier = .required },
10234 },
10235 },
10236 .{
10237 .name = "OpRayQueryProceedKHR",
10238 .opcode = 4477,
10239 .operands = &.{
10240 .{ .kind = .id_result_type, .quantifier = .required },
10241 .{ .kind = .id_result, .quantifier = .required },
10242 .{ .kind = .id_ref, .quantifier = .required },
10243 },
10244 },
10245 .{
10246 .name = "OpRayQueryGetIntersectionTypeKHR",
10247 .opcode = 4479,
10248 .operands = &.{
10249 .{ .kind = .id_result_type, .quantifier = .required },
10250 .{ .kind = .id_result, .quantifier = .required },
10251 .{ .kind = .id_ref, .quantifier = .required },
10252 .{ .kind = .id_ref, .quantifier = .required },
10253 },
10254 },
10255 .{
10256 .name = "OpImageSampleWeightedQCOM",
10257 .opcode = 4480,
10258 .operands = &.{
10259 .{ .kind = .id_result_type, .quantifier = .required },
10260 .{ .kind = .id_result, .quantifier = .required },
10261 .{ .kind = .id_ref, .quantifier = .required },
10262 .{ .kind = .id_ref, .quantifier = .required },
10263 .{ .kind = .id_ref, .quantifier = .required },
10264 },
10265 },
10266 .{
10267 .name = "OpImageBoxFilterQCOM",
10268 .opcode = 4481,
10269 .operands = &.{
10270 .{ .kind = .id_result_type, .quantifier = .required },
10271 .{ .kind = .id_result, .quantifier = .required },
10272 .{ .kind = .id_ref, .quantifier = .required },
10273 .{ .kind = .id_ref, .quantifier = .required },
10274 .{ .kind = .id_ref, .quantifier = .required },
10275 },
10276 },
10277 .{
10278 .name = "OpImageBlockMatchSSDQCOM",
10279 .opcode = 4482,
10280 .operands = &.{
10281 .{ .kind = .id_result_type, .quantifier = .required },
10282 .{ .kind = .id_result, .quantifier = .required },
10283 .{ .kind = .id_ref, .quantifier = .required },
10284 .{ .kind = .id_ref, .quantifier = .required },
10285 .{ .kind = .id_ref, .quantifier = .required },
10286 .{ .kind = .id_ref, .quantifier = .required },
10287 .{ .kind = .id_ref, .quantifier = .required },
10288 },
10289 },
10290 .{
10291 .name = "OpImageBlockMatchSADQCOM",
10292 .opcode = 4483,
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 = "OpBitCastArrayQCOM",
10305 .opcode = 4497,
10306 .operands = &.{
10307 .{ .kind = .id_result_type, .quantifier = .required },
10308 .{ .kind = .id_result, .quantifier = .required },
10309 .{ .kind = .id_ref, .quantifier = .required },
10310 },
10311 },
10312 .{
10313 .name = "OpImageBlockMatchWindowSSDQCOM",
10314 .opcode = 4500,
10315 .operands = &.{
10316 .{ .kind = .id_result_type, .quantifier = .required },
10317 .{ .kind = .id_result, .quantifier = .required },
10318 .{ .kind = .id_ref, .quantifier = .required },
10319 .{ .kind = .id_ref, .quantifier = .required },
10320 .{ .kind = .id_ref, .quantifier = .required },
10321 .{ .kind = .id_ref, .quantifier = .required },
10322 .{ .kind = .id_ref, .quantifier = .required },
10323 },
10324 },
10325 .{
10326 .name = "OpImageBlockMatchWindowSADQCOM",
10327 .opcode = 4501,
10328 .operands = &.{
10329 .{ .kind = .id_result_type, .quantifier = .required },
10330 .{ .kind = .id_result, .quantifier = .required },
10331 .{ .kind = .id_ref, .quantifier = .required },
10332 .{ .kind = .id_ref, .quantifier = .required },
10333 .{ .kind = .id_ref, .quantifier = .required },
10334 .{ .kind = .id_ref, .quantifier = .required },
10335 .{ .kind = .id_ref, .quantifier = .required },
10336 },
10337 },
10338 .{
10339 .name = "OpImageBlockMatchGatherSSDQCOM",
10340 .opcode = 4502,
10341 .operands = &.{
10342 .{ .kind = .id_result_type, .quantifier = .required },
10343 .{ .kind = .id_result, .quantifier = .required },
10344 .{ .kind = .id_ref, .quantifier = .required },
10345 .{ .kind = .id_ref, .quantifier = .required },
10346 .{ .kind = .id_ref, .quantifier = .required },
10347 .{ .kind = .id_ref, .quantifier = .required },
10348 .{ .kind = .id_ref, .quantifier = .required },
10349 },
10350 },
10351 .{
10352 .name = "OpImageBlockMatchGatherSADQCOM",
10353 .opcode = 4503,
10354 .operands = &.{
10355 .{ .kind = .id_result_type, .quantifier = .required },
10356 .{ .kind = .id_result, .quantifier = .required },
10357 .{ .kind = .id_ref, .quantifier = .required },
10358 .{ .kind = .id_ref, .quantifier = .required },
10359 .{ .kind = .id_ref, .quantifier = .required },
10360 .{ .kind = .id_ref, .quantifier = .required },
10361 .{ .kind = .id_ref, .quantifier = .required },
10362 },
10363 },
10364 .{
10365 .name = "OpCompositeConstructCoopMatQCOM",
10366 .opcode = 4540,
10367 .operands = &.{
10368 .{ .kind = .id_result_type, .quantifier = .required },
10369 .{ .kind = .id_result, .quantifier = .required },
10370 .{ .kind = .id_ref, .quantifier = .required },
10371 },
10372 },
10373 .{
10374 .name = "OpCompositeExtractCoopMatQCOM",
10375 .opcode = 4541,
10376 .operands = &.{
10377 .{ .kind = .id_result_type, .quantifier = .required },
10378 .{ .kind = .id_result, .quantifier = .required },
10379 .{ .kind = .id_ref, .quantifier = .required },
10380 },
10381 },
10382 .{
10383 .name = "OpExtractSubArrayQCOM",
10384 .opcode = 4542,
10385 .operands = &.{
10386 .{ .kind = .id_result_type, .quantifier = .required },
10387 .{ .kind = .id_result, .quantifier = .required },
10388 .{ .kind = .id_ref, .quantifier = .required },
10389 .{ .kind = .id_ref, .quantifier = .required },
10390 },
10391 },
10392 .{
10393 .name = "OpGroupIAddNonUniformAMD",
10394 .opcode = 5000,
10395 .operands = &.{
10396 .{ .kind = .id_result_type, .quantifier = .required },
10397 .{ .kind = .id_result, .quantifier = .required },
10398 .{ .kind = .id_scope, .quantifier = .required },
10399 .{ .kind = .group_operation, .quantifier = .required },
10400 .{ .kind = .id_ref, .quantifier = .required },
10401 },
10402 },
10403 .{
10404 .name = "OpGroupFAddNonUniformAMD",
10405 .opcode = 5001,
10406 .operands = &.{
10407 .{ .kind = .id_result_type, .quantifier = .required },
10408 .{ .kind = .id_result, .quantifier = .required },
10409 .{ .kind = .id_scope, .quantifier = .required },
10410 .{ .kind = .group_operation, .quantifier = .required },
10411 .{ .kind = .id_ref, .quantifier = .required },
10412 },
10413 },
10414 .{
10415 .name = "OpGroupFMinNonUniformAMD",
10416 .opcode = 5002,
10417 .operands = &.{
10418 .{ .kind = .id_result_type, .quantifier = .required },
10419 .{ .kind = .id_result, .quantifier = .required },
10420 .{ .kind = .id_scope, .quantifier = .required },
10421 .{ .kind = .group_operation, .quantifier = .required },
10422 .{ .kind = .id_ref, .quantifier = .required },
10423 },
10424 },
10425 .{
10426 .name = "OpGroupUMinNonUniformAMD",
10427 .opcode = 5003,
10428 .operands = &.{
10429 .{ .kind = .id_result_type, .quantifier = .required },
10430 .{ .kind = .id_result, .quantifier = .required },
10431 .{ .kind = .id_scope, .quantifier = .required },
10432 .{ .kind = .group_operation, .quantifier = .required },
10433 .{ .kind = .id_ref, .quantifier = .required },
10434 },
10435 },
10436 .{
10437 .name = "OpGroupSMinNonUniformAMD",
10438 .opcode = 5004,
10439 .operands = &.{
10440 .{ .kind = .id_result_type, .quantifier = .required },
10441 .{ .kind = .id_result, .quantifier = .required },
10442 .{ .kind = .id_scope, .quantifier = .required },
10443 .{ .kind = .group_operation, .quantifier = .required },
10444 .{ .kind = .id_ref, .quantifier = .required },
10445 },
10446 },
10447 .{
10448 .name = "OpGroupFMaxNonUniformAMD",
10449 .opcode = 5005,
10450 .operands = &.{
10451 .{ .kind = .id_result_type, .quantifier = .required },
10452 .{ .kind = .id_result, .quantifier = .required },
10453 .{ .kind = .id_scope, .quantifier = .required },
10454 .{ .kind = .group_operation, .quantifier = .required },
10455 .{ .kind = .id_ref, .quantifier = .required },
10456 },
10457 },
10458 .{
10459 .name = "OpGroupUMaxNonUniformAMD",
10460 .opcode = 5006,
10461 .operands = &.{
10462 .{ .kind = .id_result_type, .quantifier = .required },
10463 .{ .kind = .id_result, .quantifier = .required },
10464 .{ .kind = .id_scope, .quantifier = .required },
10465 .{ .kind = .group_operation, .quantifier = .required },
10466 .{ .kind = .id_ref, .quantifier = .required },
10467 },
10468 },
10469 .{
10470 .name = "OpGroupSMaxNonUniformAMD",
10471 .opcode = 5007,
10472 .operands = &.{
10473 .{ .kind = .id_result_type, .quantifier = .required },
10474 .{ .kind = .id_result, .quantifier = .required },
10475 .{ .kind = .id_scope, .quantifier = .required },
10476 .{ .kind = .group_operation, .quantifier = .required },
10477 .{ .kind = .id_ref, .quantifier = .required },
10478 },
10479 },
10480 .{
10481 .name = "OpFragmentMaskFetchAMD",
10482 .opcode = 5011,
10483 .operands = &.{
10484 .{ .kind = .id_result_type, .quantifier = .required },
10485 .{ .kind = .id_result, .quantifier = .required },
10486 .{ .kind = .id_ref, .quantifier = .required },
10487 .{ .kind = .id_ref, .quantifier = .required },
10488 },
10489 },
10490 .{
10491 .name = "OpFragmentFetchAMD",
10492 .opcode = 5012,
10493 .operands = &.{
10494 .{ .kind = .id_result_type, .quantifier = .required },
10495 .{ .kind = .id_result, .quantifier = .required },
10496 .{ .kind = .id_ref, .quantifier = .required },
10497 .{ .kind = .id_ref, .quantifier = .required },
10498 .{ .kind = .id_ref, .quantifier = .required },
10499 },
10500 },
10501 .{
10502 .name = "OpReadClockKHR",
10503 .opcode = 5056,
10504 .operands = &.{
10505 .{ .kind = .id_result_type, .quantifier = .required },
10506 .{ .kind = .id_result, .quantifier = .required },
10507 .{ .kind = .id_scope, .quantifier = .required },
10508 },
10509 },
10510 .{
10511 .name = "OpAllocateNodePayloadsAMDX",
10512 .opcode = 5074,
10513 .operands = &.{
10514 .{ .kind = .id_result_type, .quantifier = .required },
10515 .{ .kind = .id_result, .quantifier = .required },
10516 .{ .kind = .id_scope, .quantifier = .required },
10517 .{ .kind = .id_ref, .quantifier = .required },
10518 .{ .kind = .id_ref, .quantifier = .required },
10519 },
10520 },
10521 .{
10522 .name = "OpEnqueueNodePayloadsAMDX",
10523 .opcode = 5075,
10524 .operands = &.{
10525 .{ .kind = .id_ref, .quantifier = .required },
10526 },
10527 },
10528 .{
10529 .name = "OpTypeNodePayloadArrayAMDX",
10530 .opcode = 5076,
10531 .operands = &.{
10532 .{ .kind = .id_result, .quantifier = .required },
10533 .{ .kind = .id_ref, .quantifier = .required },
10534 },
10535 },
10536 .{
10537 .name = "OpFinishWritingNodePayloadAMDX",
10538 .opcode = 5078,
10539 .operands = &.{
10540 .{ .kind = .id_result_type, .quantifier = .required },
10541 .{ .kind = .id_result, .quantifier = .required },
10542 .{ .kind = .id_ref, .quantifier = .required },
10543 },
10544 },
10545 .{
10546 .name = "OpNodePayloadArrayLengthAMDX",
10547 .opcode = 5090,
10548 .operands = &.{
10549 .{ .kind = .id_result_type, .quantifier = .required },
10550 .{ .kind = .id_result, .quantifier = .required },
10551 .{ .kind = .id_ref, .quantifier = .required },
10552 },
10553 },
10554 .{
10555 .name = "OpIsNodePayloadValidAMDX",
10556 .opcode = 5101,
10557 .operands = &.{
10558 .{ .kind = .id_result_type, .quantifier = .required },
10559 .{ .kind = .id_result, .quantifier = .required },
10560 .{ .kind = .id_ref, .quantifier = .required },
10561 .{ .kind = .id_ref, .quantifier = .required },
10562 },
10563 },
10564 .{
10565 .name = "OpConstantStringAMDX",
10566 .opcode = 5103,
10567 .operands = &.{
10568 .{ .kind = .id_result, .quantifier = .required },
10569 .{ .kind = .literal_string, .quantifier = .required },
10570 },
10571 },
10572 .{
10573 .name = "OpSpecConstantStringAMDX",
10574 .opcode = 5104,
10575 .operands = &.{
10576 .{ .kind = .id_result, .quantifier = .required },
10577 .{ .kind = .literal_string, .quantifier = .required },
10578 },
10579 },
10580 .{
10581 .name = "OpGroupNonUniformQuadAllKHR",
10582 .opcode = 5110,
10583 .operands = &.{
10584 .{ .kind = .id_result_type, .quantifier = .required },
10585 .{ .kind = .id_result, .quantifier = .required },
10586 .{ .kind = .id_ref, .quantifier = .required },
10587 },
10588 },
10589 .{
10590 .name = "OpGroupNonUniformQuadAnyKHR",
10591 .opcode = 5111,
10592 .operands = &.{
10593 .{ .kind = .id_result_type, .quantifier = .required },
10594 .{ .kind = .id_result, .quantifier = .required },
10595 .{ .kind = .id_ref, .quantifier = .required },
10596 },
10597 },
10598 .{
10599 .name = "OpTypeBufferEXT",
10600 .opcode = 5115,
10601 .operands = &.{
10602 .{ .kind = .id_result, .quantifier = .required },
10603 .{ .kind = .storage_class, .quantifier = .required },
10604 },
10605 },
10606 .{
10607 .name = "OpBufferPointerEXT",
10608 .opcode = 5119,
10609 .operands = &.{
10610 .{ .kind = .id_result_type, .quantifier = .required },
10611 .{ .kind = .id_result, .quantifier = .required },
10612 .{ .kind = .id_ref, .quantifier = .required },
10613 },
10614 },
10615 .{
10616 .name = "OpAbortKHR",
10617 .opcode = 5121,
10618 .operands = &.{
10619 .{ .kind = .id_ref, .quantifier = .required },
10620 .{ .kind = .id_ref, .quantifier = .required },
10621 },
10622 },
10623 .{
10624 .name = "OpUntypedImageTexelPointerEXT",
10625 .opcode = 5126,
10626 .operands = &.{
10627 .{ .kind = .id_result_type, .quantifier = .required },
10628 .{ .kind = .id_result, .quantifier = .required },
10629 .{ .kind = .id_ref, .quantifier = .required },
10630 .{ .kind = .id_ref, .quantifier = .required },
10631 .{ .kind = .id_ref, .quantifier = .required },
10632 .{ .kind = .id_ref, .quantifier = .required },
10633 },
10634 },
10635 .{
10636 .name = "OpMemberDecorateIdEXT",
10637 .opcode = 5127,
10638 .operands = &.{
10639 .{ .kind = .id_ref, .quantifier = .required },
10640 .{ .kind = .literal_integer, .quantifier = .required },
10641 .{ .kind = .decoration, .quantifier = .required },
10642 },
10643 },
10644 .{
10645 .name = "OpConstantSizeOfEXT",
10646 .opcode = 5129,
10647 .operands = &.{
10648 .{ .kind = .id_result_type, .quantifier = .required },
10649 .{ .kind = .id_result, .quantifier = .required },
10650 .{ .kind = .id_ref, .quantifier = .required },
10651 },
10652 },
10653 .{
10654 .name = "OpConstantDataKHR",
10655 .opcode = 5147,
10656 .operands = &.{
10657 .{ .kind = .id_result_type, .quantifier = .required },
10658 .{ .kind = .id_result, .quantifier = .required },
10659 .{ .kind = .literal_integer, .quantifier = .variadic },
10660 },
10661 },
10662 .{
10663 .name = "OpSpecConstantDataKHR",
10664 .opcode = 5148,
10665 .operands = &.{
10666 .{ .kind = .id_result_type, .quantifier = .required },
10667 .{ .kind = .id_result, .quantifier = .required },
10668 .{ .kind = .literal_integer, .quantifier = .variadic },
10669 },
10670 },
10671 .{
10672 .name = "OpPoisonKHR",
10673 .opcode = 5158,
10674 .operands = &.{
10675 .{ .kind = .id_result_type, .quantifier = .required },
10676 .{ .kind = .id_result, .quantifier = .required },
10677 },
10678 },
10679 .{
10680 .name = "OpFreezeKHR",
10681 .opcode = 5159,
10682 .operands = &.{
10683 .{ .kind = .id_result_type, .quantifier = .required },
10684 .{ .kind = .id_result, .quantifier = .required },
10685 .{ .kind = .id_ref, .quantifier = .required },
10686 },
10687 },
10688 .{
10689 .name = "OpHitObjectRecordHitMotionNV",
10690 .opcode = 5249,
10691 .operands = &.{
10692 .{ .kind = .id_ref, .quantifier = .required },
10693 .{ .kind = .id_ref, .quantifier = .required },
10694 .{ .kind = .id_ref, .quantifier = .required },
10695 .{ .kind = .id_ref, .quantifier = .required },
10696 .{ .kind = .id_ref, .quantifier = .required },
10697 .{ .kind = .id_ref, .quantifier = .required },
10698 .{ .kind = .id_ref, .quantifier = .required },
10699 .{ .kind = .id_ref, .quantifier = .required },
10700 .{ .kind = .id_ref, .quantifier = .required },
10701 .{ .kind = .id_ref, .quantifier = .required },
10702 .{ .kind = .id_ref, .quantifier = .required },
10703 .{ .kind = .id_ref, .quantifier = .required },
10704 .{ .kind = .id_ref, .quantifier = .required },
10705 .{ .kind = .id_ref, .quantifier = .required },
10706 },
10707 },
10708 .{
10709 .name = "OpHitObjectRecordHitWithIndexMotionNV",
10710 .opcode = 5250,
10711 .operands = &.{
10712 .{ .kind = .id_ref, .quantifier = .required },
10713 .{ .kind = .id_ref, .quantifier = .required },
10714 .{ .kind = .id_ref, .quantifier = .required },
10715 .{ .kind = .id_ref, .quantifier = .required },
10716 .{ .kind = .id_ref, .quantifier = .required },
10717 .{ .kind = .id_ref, .quantifier = .required },
10718 .{ .kind = .id_ref, .quantifier = .required },
10719 .{ .kind = .id_ref, .quantifier = .required },
10720 .{ .kind = .id_ref, .quantifier = .required },
10721 .{ .kind = .id_ref, .quantifier = .required },
10722 .{ .kind = .id_ref, .quantifier = .required },
10723 .{ .kind = .id_ref, .quantifier = .required },
10724 .{ .kind = .id_ref, .quantifier = .required },
10725 },
10726 },
10727 .{
10728 .name = "OpHitObjectRecordMissMotionNV",
10729 .opcode = 5251,
10730 .operands = &.{
10731 .{ .kind = .id_ref, .quantifier = .required },
10732 .{ .kind = .id_ref, .quantifier = .required },
10733 .{ .kind = .id_ref, .quantifier = .required },
10734 .{ .kind = .id_ref, .quantifier = .required },
10735 .{ .kind = .id_ref, .quantifier = .required },
10736 .{ .kind = .id_ref, .quantifier = .required },
10737 .{ .kind = .id_ref, .quantifier = .required },
10738 },
10739 },
10740 .{
10741 .name = "OpHitObjectGetWorldToObjectNV",
10742 .opcode = 5252,
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 = "OpHitObjectGetObjectToWorldNV",
10751 .opcode = 5253,
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 = "OpHitObjectGetObjectRayDirectionNV",
10760 .opcode = 5254,
10761 .operands = &.{
10762 .{ .kind = .id_result_type, .quantifier = .required },
10763 .{ .kind = .id_result, .quantifier = .required },
10764 .{ .kind = .id_ref, .quantifier = .required },
10765 },
10766 },
10767 .{
10768 .name = "OpHitObjectGetObjectRayOriginNV",
10769 .opcode = 5255,
10770 .operands = &.{
10771 .{ .kind = .id_result_type, .quantifier = .required },
10772 .{ .kind = .id_result, .quantifier = .required },
10773 .{ .kind = .id_ref, .quantifier = .required },
10774 },
10775 },
10776 .{
10777 .name = "OpHitObjectTraceRayMotionNV",
10778 .opcode = 5256,
10779 .operands = &.{
10780 .{ .kind = .id_ref, .quantifier = .required },
10781 .{ .kind = .id_ref, .quantifier = .required },
10782 .{ .kind = .id_ref, .quantifier = .required },
10783 .{ .kind = .id_ref, .quantifier = .required },
10784 .{ .kind = .id_ref, .quantifier = .required },
10785 .{ .kind = .id_ref, .quantifier = .required },
10786 .{ .kind = .id_ref, .quantifier = .required },
10787 .{ .kind = .id_ref, .quantifier = .required },
10788 .{ .kind = .id_ref, .quantifier = .required },
10789 .{ .kind = .id_ref, .quantifier = .required },
10790 .{ .kind = .id_ref, .quantifier = .required },
10791 .{ .kind = .id_ref, .quantifier = .required },
10792 .{ .kind = .id_ref, .quantifier = .required },
10793 },
10794 },
10795 .{
10796 .name = "OpHitObjectGetShaderRecordBufferHandleNV",
10797 .opcode = 5257,
10798 .operands = &.{
10799 .{ .kind = .id_result_type, .quantifier = .required },
10800 .{ .kind = .id_result, .quantifier = .required },
10801 .{ .kind = .id_ref, .quantifier = .required },
10802 },
10803 },
10804 .{
10805 .name = "OpHitObjectGetShaderBindingTableRecordIndexNV",
10806 .opcode = 5258,
10807 .operands = &.{
10808 .{ .kind = .id_result_type, .quantifier = .required },
10809 .{ .kind = .id_result, .quantifier = .required },
10810 .{ .kind = .id_ref, .quantifier = .required },
10811 },
10812 },
10813 .{
10814 .name = "OpHitObjectRecordEmptyNV",
10815 .opcode = 5259,
10816 .operands = &.{
10817 .{ .kind = .id_ref, .quantifier = .required },
10818 },
10819 },
10820 .{
10821 .name = "OpHitObjectTraceRayNV",
10822 .opcode = 5260,
10823 .operands = &.{
10824 .{ .kind = .id_ref, .quantifier = .required },
10825 .{ .kind = .id_ref, .quantifier = .required },
10826 .{ .kind = .id_ref, .quantifier = .required },
10827 .{ .kind = .id_ref, .quantifier = .required },
10828 .{ .kind = .id_ref, .quantifier = .required },
10829 .{ .kind = .id_ref, .quantifier = .required },
10830 .{ .kind = .id_ref, .quantifier = .required },
10831 .{ .kind = .id_ref, .quantifier = .required },
10832 .{ .kind = .id_ref, .quantifier = .required },
10833 .{ .kind = .id_ref, .quantifier = .required },
10834 .{ .kind = .id_ref, .quantifier = .required },
10835 .{ .kind = .id_ref, .quantifier = .required },
10836 },
10837 },
10838 .{
10839 .name = "OpHitObjectRecordHitNV",
10840 .opcode = 5261,
10841 .operands = &.{
10842 .{ .kind = .id_ref, .quantifier = .required },
10843 .{ .kind = .id_ref, .quantifier = .required },
10844 .{ .kind = .id_ref, .quantifier = .required },
10845 .{ .kind = .id_ref, .quantifier = .required },
10846 .{ .kind = .id_ref, .quantifier = .required },
10847 .{ .kind = .id_ref, .quantifier = .required },
10848 .{ .kind = .id_ref, .quantifier = .required },
10849 .{ .kind = .id_ref, .quantifier = .required },
10850 .{ .kind = .id_ref, .quantifier = .required },
10851 .{ .kind = .id_ref, .quantifier = .required },
10852 .{ .kind = .id_ref, .quantifier = .required },
10853 .{ .kind = .id_ref, .quantifier = .required },
10854 .{ .kind = .id_ref, .quantifier = .required },
10855 },
10856 },
10857 .{
10858 .name = "OpHitObjectRecordHitWithIndexNV",
10859 .opcode = 5262,
10860 .operands = &.{
10861 .{ .kind = .id_ref, .quantifier = .required },
10862 .{ .kind = .id_ref, .quantifier = .required },
10863 .{ .kind = .id_ref, .quantifier = .required },
10864 .{ .kind = .id_ref, .quantifier = .required },
10865 .{ .kind = .id_ref, .quantifier = .required },
10866 .{ .kind = .id_ref, .quantifier = .required },
10867 .{ .kind = .id_ref, .quantifier = .required },
10868 .{ .kind = .id_ref, .quantifier = .required },
10869 .{ .kind = .id_ref, .quantifier = .required },
10870 .{ .kind = .id_ref, .quantifier = .required },
10871 .{ .kind = .id_ref, .quantifier = .required },
10872 .{ .kind = .id_ref, .quantifier = .required },
10873 },
10874 },
10875 .{
10876 .name = "OpHitObjectRecordMissNV",
10877 .opcode = 5263,
10878 .operands = &.{
10879 .{ .kind = .id_ref, .quantifier = .required },
10880 .{ .kind = .id_ref, .quantifier = .required },
10881 .{ .kind = .id_ref, .quantifier = .required },
10882 .{ .kind = .id_ref, .quantifier = .required },
10883 .{ .kind = .id_ref, .quantifier = .required },
10884 .{ .kind = .id_ref, .quantifier = .required },
10885 },
10886 },
10887 .{
10888 .name = "OpHitObjectExecuteShaderNV",
10889 .opcode = 5264,
10890 .operands = &.{
10891 .{ .kind = .id_ref, .quantifier = .required },
10892 .{ .kind = .id_ref, .quantifier = .required },
10893 },
10894 },
10895 .{
10896 .name = "OpHitObjectGetCurrentTimeNV",
10897 .opcode = 5265,
10898 .operands = &.{
10899 .{ .kind = .id_result_type, .quantifier = .required },
10900 .{ .kind = .id_result, .quantifier = .required },
10901 .{ .kind = .id_ref, .quantifier = .required },
10902 },
10903 },
10904 .{
10905 .name = "OpHitObjectGetAttributesNV",
10906 .opcode = 5266,
10907 .operands = &.{
10908 .{ .kind = .id_ref, .quantifier = .required },
10909 .{ .kind = .id_ref, .quantifier = .required },
10910 },
10911 },
10912 .{
10913 .name = "OpHitObjectGetHitKindNV",
10914 .opcode = 5267,
10915 .operands = &.{
10916 .{ .kind = .id_result_type, .quantifier = .required },
10917 .{ .kind = .id_result, .quantifier = .required },
10918 .{ .kind = .id_ref, .quantifier = .required },
10919 },
10920 },
10921 .{
10922 .name = "OpHitObjectGetPrimitiveIndexNV",
10923 .opcode = 5268,
10924 .operands = &.{
10925 .{ .kind = .id_result_type, .quantifier = .required },
10926 .{ .kind = .id_result, .quantifier = .required },
10927 .{ .kind = .id_ref, .quantifier = .required },
10928 },
10929 },
10930 .{
10931 .name = "OpHitObjectGetGeometryIndexNV",
10932 .opcode = 5269,
10933 .operands = &.{
10934 .{ .kind = .id_result_type, .quantifier = .required },
10935 .{ .kind = .id_result, .quantifier = .required },
10936 .{ .kind = .id_ref, .quantifier = .required },
10937 },
10938 },
10939 .{
10940 .name = "OpHitObjectGetInstanceIdNV",
10941 .opcode = 5270,
10942 .operands = &.{
10943 .{ .kind = .id_result_type, .quantifier = .required },
10944 .{ .kind = .id_result, .quantifier = .required },
10945 .{ .kind = .id_ref, .quantifier = .required },
10946 },
10947 },
10948 .{
10949 .name = "OpHitObjectGetInstanceCustomIndexNV",
10950 .opcode = 5271,
10951 .operands = &.{
10952 .{ .kind = .id_result_type, .quantifier = .required },
10953 .{ .kind = .id_result, .quantifier = .required },
10954 .{ .kind = .id_ref, .quantifier = .required },
10955 },
10956 },
10957 .{
10958 .name = "OpHitObjectGetWorldRayDirectionNV",
10959 .opcode = 5272,
10960 .operands = &.{
10961 .{ .kind = .id_result_type, .quantifier = .required },
10962 .{ .kind = .id_result, .quantifier = .required },
10963 .{ .kind = .id_ref, .quantifier = .required },
10964 },
10965 },
10966 .{
10967 .name = "OpHitObjectGetWorldRayOriginNV",
10968 .opcode = 5273,
10969 .operands = &.{
10970 .{ .kind = .id_result_type, .quantifier = .required },
10971 .{ .kind = .id_result, .quantifier = .required },
10972 .{ .kind = .id_ref, .quantifier = .required },
10973 },
10974 },
10975 .{
10976 .name = "OpHitObjectGetRayTMaxNV",
10977 .opcode = 5274,
10978 .operands = &.{
10979 .{ .kind = .id_result_type, .quantifier = .required },
10980 .{ .kind = .id_result, .quantifier = .required },
10981 .{ .kind = .id_ref, .quantifier = .required },
10982 },
10983 },
10984 .{
10985 .name = "OpHitObjectGetRayTMinNV",
10986 .opcode = 5275,
10987 .operands = &.{
10988 .{ .kind = .id_result_type, .quantifier = .required },
10989 .{ .kind = .id_result, .quantifier = .required },
10990 .{ .kind = .id_ref, .quantifier = .required },
10991 },
10992 },
10993 .{
10994 .name = "OpHitObjectIsEmptyNV",
10995 .opcode = 5276,
10996 .operands = &.{
10997 .{ .kind = .id_result_type, .quantifier = .required },
10998 .{ .kind = .id_result, .quantifier = .required },
10999 .{ .kind = .id_ref, .quantifier = .required },
11000 },
11001 },
11002 .{
11003 .name = "OpHitObjectIsHitNV",
11004 .opcode = 5277,
11005 .operands = &.{
11006 .{ .kind = .id_result_type, .quantifier = .required },
11007 .{ .kind = .id_result, .quantifier = .required },
11008 .{ .kind = .id_ref, .quantifier = .required },
11009 },
11010 },
11011 .{
11012 .name = "OpHitObjectIsMissNV",
11013 .opcode = 5278,
11014 .operands = &.{
11015 .{ .kind = .id_result_type, .quantifier = .required },
11016 .{ .kind = .id_result, .quantifier = .required },
11017 .{ .kind = .id_ref, .quantifier = .required },
11018 },
11019 },
11020 .{
11021 .name = "OpReorderThreadWithHitObjectNV",
11022 .opcode = 5279,
11023 .operands = &.{
11024 .{ .kind = .id_ref, .quantifier = .required },
11025 .{ .kind = .id_ref, .quantifier = .optional },
11026 .{ .kind = .id_ref, .quantifier = .optional },
11027 },
11028 },
11029 .{
11030 .name = "OpReorderThreadWithHintNV",
11031 .opcode = 5280,
11032 .operands = &.{
11033 .{ .kind = .id_ref, .quantifier = .required },
11034 .{ .kind = .id_ref, .quantifier = .required },
11035 },
11036 },
11037 .{
11038 .name = "OpTypeHitObjectNV",
11039 .opcode = 5281,
11040 .operands = &.{
11041 .{ .kind = .id_result, .quantifier = .required },
11042 },
11043 },
11044 .{
11045 .name = "OpImageSampleFootprintNV",
11046 .opcode = 5283,
11047 .operands = &.{
11048 .{ .kind = .id_result_type, .quantifier = .required },
11049 .{ .kind = .id_result, .quantifier = .required },
11050 .{ .kind = .id_ref, .quantifier = .required },
11051 .{ .kind = .id_ref, .quantifier = .required },
11052 .{ .kind = .id_ref, .quantifier = .required },
11053 .{ .kind = .id_ref, .quantifier = .required },
11054 .{ .kind = .image_operands, .quantifier = .optional },
11055 },
11056 },
11057 .{
11058 .name = "OpTypeVectorIdEXT",
11059 .opcode = 5288,
11060 .operands = &.{
11061 .{ .kind = .id_result, .quantifier = .required },
11062 .{ .kind = .id_ref, .quantifier = .required },
11063 .{ .kind = .id_ref, .quantifier = .required },
11064 },
11065 },
11066 .{
11067 .name = "OpCooperativeVectorMatrixMulNV",
11068 .opcode = 5289,
11069 .operands = &.{
11070 .{ .kind = .id_result_type, .quantifier = .required },
11071 .{ .kind = .id_result, .quantifier = .required },
11072 .{ .kind = .id_ref, .quantifier = .required },
11073 .{ .kind = .id_ref, .quantifier = .required },
11074 .{ .kind = .id_ref, .quantifier = .required },
11075 .{ .kind = .id_ref, .quantifier = .required },
11076 .{ .kind = .id_ref, .quantifier = .required },
11077 .{ .kind = .id_ref, .quantifier = .required },
11078 .{ .kind = .id_ref, .quantifier = .required },
11079 .{ .kind = .id_ref, .quantifier = .required },
11080 .{ .kind = .id_ref, .quantifier = .required },
11081 .{ .kind = .id_ref, .quantifier = .optional },
11082 .{ .kind = .cooperative_matrix_operands, .quantifier = .optional },
11083 },
11084 },
11085 .{
11086 .name = "OpCooperativeVectorOuterProductAccumulateNV",
11087 .opcode = 5290,
11088 .operands = &.{
11089 .{ .kind = .id_ref, .quantifier = .required },
11090 .{ .kind = .id_ref, .quantifier = .required },
11091 .{ .kind = .id_ref, .quantifier = .required },
11092 .{ .kind = .id_ref, .quantifier = .required },
11093 .{ .kind = .id_ref, .quantifier = .required },
11094 .{ .kind = .id_ref, .quantifier = .required },
11095 .{ .kind = .id_ref, .quantifier = .optional },
11096 },
11097 },
11098 .{
11099 .name = "OpCooperativeVectorReduceSumAccumulateNV",
11100 .opcode = 5291,
11101 .operands = &.{
11102 .{ .kind = .id_ref, .quantifier = .required },
11103 .{ .kind = .id_ref, .quantifier = .required },
11104 .{ .kind = .id_ref, .quantifier = .required },
11105 },
11106 },
11107 .{
11108 .name = "OpCooperativeVectorMatrixMulAddNV",
11109 .opcode = 5292,
11110 .operands = &.{
11111 .{ .kind = .id_result_type, .quantifier = .required },
11112 .{ .kind = .id_result, .quantifier = .required },
11113 .{ .kind = .id_ref, .quantifier = .required },
11114 .{ .kind = .id_ref, .quantifier = .required },
11115 .{ .kind = .id_ref, .quantifier = .required },
11116 .{ .kind = .id_ref, .quantifier = .required },
11117 .{ .kind = .id_ref, .quantifier = .required },
11118 .{ .kind = .id_ref, .quantifier = .required },
11119 .{ .kind = .id_ref, .quantifier = .required },
11120 .{ .kind = .id_ref, .quantifier = .required },
11121 .{ .kind = .id_ref, .quantifier = .required },
11122 .{ .kind = .id_ref, .quantifier = .required },
11123 .{ .kind = .id_ref, .quantifier = .required },
11124 .{ .kind = .id_ref, .quantifier = .required },
11125 .{ .kind = .id_ref, .quantifier = .optional },
11126 .{ .kind = .cooperative_matrix_operands, .quantifier = .optional },
11127 },
11128 },
11129 .{
11130 .name = "OpCooperativeMatrixConvertNV",
11131 .opcode = 5293,
11132 .operands = &.{
11133 .{ .kind = .id_result_type, .quantifier = .required },
11134 .{ .kind = .id_result, .quantifier = .required },
11135 .{ .kind = .id_ref, .quantifier = .required },
11136 },
11137 },
11138 .{
11139 .name = "OpEmitMeshTasksEXT",
11140 .opcode = 5294,
11141 .operands = &.{
11142 .{ .kind = .id_ref, .quantifier = .required },
11143 .{ .kind = .id_ref, .quantifier = .required },
11144 .{ .kind = .id_ref, .quantifier = .required },
11145 .{ .kind = .id_ref, .quantifier = .optional },
11146 },
11147 },
11148 .{
11149 .name = "OpSetMeshOutputsEXT",
11150 .opcode = 5295,
11151 .operands = &.{
11152 .{ .kind = .id_ref, .quantifier = .required },
11153 .{ .kind = .id_ref, .quantifier = .required },
11154 },
11155 },
11156 .{
11157 .name = "OpGroupNonUniformPartitionEXT",
11158 .opcode = 5296,
11159 .operands = &.{
11160 .{ .kind = .id_result_type, .quantifier = .required },
11161 .{ .kind = .id_result, .quantifier = .required },
11162 .{ .kind = .id_ref, .quantifier = .required },
11163 },
11164 },
11165 .{
11166 .name = "OpWritePackedPrimitiveIndices4x8NV",
11167 .opcode = 5299,
11168 .operands = &.{
11169 .{ .kind = .id_ref, .quantifier = .required },
11170 .{ .kind = .id_ref, .quantifier = .required },
11171 },
11172 },
11173 .{
11174 .name = "OpFetchMicroTriangleVertexPositionNV",
11175 .opcode = 5300,
11176 .operands = &.{
11177 .{ .kind = .id_result_type, .quantifier = .required },
11178 .{ .kind = .id_result, .quantifier = .required },
11179 .{ .kind = .id_ref, .quantifier = .required },
11180 .{ .kind = .id_ref, .quantifier = .required },
11181 .{ .kind = .id_ref, .quantifier = .required },
11182 .{ .kind = .id_ref, .quantifier = .required },
11183 .{ .kind = .id_ref, .quantifier = .required },
11184 },
11185 },
11186 .{
11187 .name = "OpFetchMicroTriangleVertexBarycentricNV",
11188 .opcode = 5301,
11189 .operands = &.{
11190 .{ .kind = .id_result_type, .quantifier = .required },
11191 .{ .kind = .id_result, .quantifier = .required },
11192 .{ .kind = .id_ref, .quantifier = .required },
11193 .{ .kind = .id_ref, .quantifier = .required },
11194 .{ .kind = .id_ref, .quantifier = .required },
11195 .{ .kind = .id_ref, .quantifier = .required },
11196 .{ .kind = .id_ref, .quantifier = .required },
11197 },
11198 },
11199 .{
11200 .name = "OpCooperativeVectorLoadNV",
11201 .opcode = 5302,
11202 .operands = &.{
11203 .{ .kind = .id_result_type, .quantifier = .required },
11204 .{ .kind = .id_result, .quantifier = .required },
11205 .{ .kind = .id_ref, .quantifier = .required },
11206 .{ .kind = .id_ref, .quantifier = .required },
11207 .{ .kind = .memory_access, .quantifier = .optional },
11208 },
11209 },
11210 .{
11211 .name = "OpCooperativeVectorStoreNV",
11212 .opcode = 5303,
11213 .operands = &.{
11214 .{ .kind = .id_ref, .quantifier = .required },
11215 .{ .kind = .id_ref, .quantifier = .required },
11216 .{ .kind = .id_ref, .quantifier = .required },
11217 .{ .kind = .memory_access, .quantifier = .optional },
11218 },
11219 },
11220 .{
11221 .name = "OpHitObjectRecordFromQueryEXT",
11222 .opcode = 5304,
11223 .operands = &.{
11224 .{ .kind = .id_ref, .quantifier = .required },
11225 .{ .kind = .id_ref, .quantifier = .required },
11226 .{ .kind = .id_ref, .quantifier = .required },
11227 .{ .kind = .id_ref, .quantifier = .required },
11228 },
11229 },
11230 .{
11231 .name = "OpHitObjectRecordMissEXT",
11232 .opcode = 5305,
11233 .operands = &.{
11234 .{ .kind = .id_ref, .quantifier = .required },
11235 .{ .kind = .id_ref, .quantifier = .required },
11236 .{ .kind = .id_ref, .quantifier = .required },
11237 .{ .kind = .id_ref, .quantifier = .required },
11238 .{ .kind = .id_ref, .quantifier = .required },
11239 .{ .kind = .id_ref, .quantifier = .required },
11240 .{ .kind = .id_ref, .quantifier = .required },
11241 },
11242 },
11243 .{
11244 .name = "OpHitObjectRecordMissMotionEXT",
11245 .opcode = 5306,
11246 .operands = &.{
11247 .{ .kind = .id_ref, .quantifier = .required },
11248 .{ .kind = .id_ref, .quantifier = .required },
11249 .{ .kind = .id_ref, .quantifier = .required },
11250 .{ .kind = .id_ref, .quantifier = .required },
11251 .{ .kind = .id_ref, .quantifier = .required },
11252 .{ .kind = .id_ref, .quantifier = .required },
11253 .{ .kind = .id_ref, .quantifier = .required },
11254 .{ .kind = .id_ref, .quantifier = .required },
11255 },
11256 },
11257 .{
11258 .name = "OpHitObjectGetIntersectionTriangleVertexPositionsEXT",
11259 .opcode = 5307,
11260 .operands = &.{
11261 .{ .kind = .id_result_type, .quantifier = .required },
11262 .{ .kind = .id_result, .quantifier = .required },
11263 .{ .kind = .id_ref, .quantifier = .required },
11264 },
11265 },
11266 .{
11267 .name = "OpHitObjectGetRayFlagsEXT",
11268 .opcode = 5308,
11269 .operands = &.{
11270 .{ .kind = .id_result_type, .quantifier = .required },
11271 .{ .kind = .id_result, .quantifier = .required },
11272 .{ .kind = .id_ref, .quantifier = .required },
11273 },
11274 },
11275 .{
11276 .name = "OpHitObjectSetShaderBindingTableRecordIndexEXT",
11277 .opcode = 5309,
11278 .operands = &.{
11279 .{ .kind = .id_ref, .quantifier = .required },
11280 .{ .kind = .id_ref, .quantifier = .required },
11281 },
11282 },
11283 .{
11284 .name = "OpHitObjectReorderExecuteShaderEXT",
11285 .opcode = 5310,
11286 .operands = &.{
11287 .{ .kind = .id_ref, .quantifier = .required },
11288 .{ .kind = .id_ref, .quantifier = .required },
11289 .{ .kind = .id_ref, .quantifier = .optional },
11290 .{ .kind = .id_ref, .quantifier = .optional },
11291 },
11292 },
11293 .{
11294 .name = "OpHitObjectTraceReorderExecuteEXT",
11295 .opcode = 5311,
11296 .operands = &.{
11297 .{ .kind = .id_ref, .quantifier = .required },
11298 .{ .kind = .id_ref, .quantifier = .required },
11299 .{ .kind = .id_ref, .quantifier = .required },
11300 .{ .kind = .id_ref, .quantifier = .required },
11301 .{ .kind = .id_ref, .quantifier = .required },
11302 .{ .kind = .id_ref, .quantifier = .required },
11303 .{ .kind = .id_ref, .quantifier = .required },
11304 .{ .kind = .id_ref, .quantifier = .required },
11305 .{ .kind = .id_ref, .quantifier = .required },
11306 .{ .kind = .id_ref, .quantifier = .required },
11307 .{ .kind = .id_ref, .quantifier = .required },
11308 .{ .kind = .id_ref, .quantifier = .required },
11309 .{ .kind = .id_ref, .quantifier = .optional },
11310 .{ .kind = .id_ref, .quantifier = .optional },
11311 },
11312 },
11313 .{
11314 .name = "OpHitObjectTraceMotionReorderExecuteEXT",
11315 .opcode = 5312,
11316 .operands = &.{
11317 .{ .kind = .id_ref, .quantifier = .required },
11318 .{ .kind = .id_ref, .quantifier = .required },
11319 .{ .kind = .id_ref, .quantifier = .required },
11320 .{ .kind = .id_ref, .quantifier = .required },
11321 .{ .kind = .id_ref, .quantifier = .required },
11322 .{ .kind = .id_ref, .quantifier = .required },
11323 .{ .kind = .id_ref, .quantifier = .required },
11324 .{ .kind = .id_ref, .quantifier = .required },
11325 .{ .kind = .id_ref, .quantifier = .required },
11326 .{ .kind = .id_ref, .quantifier = .required },
11327 .{ .kind = .id_ref, .quantifier = .required },
11328 .{ .kind = .id_ref, .quantifier = .required },
11329 .{ .kind = .id_ref, .quantifier = .required },
11330 .{ .kind = .id_ref, .quantifier = .optional },
11331 .{ .kind = .id_ref, .quantifier = .optional },
11332 },
11333 },
11334 .{
11335 .name = "OpTypeHitObjectEXT",
11336 .opcode = 5313,
11337 .operands = &.{
11338 .{ .kind = .id_result, .quantifier = .required },
11339 },
11340 },
11341 .{
11342 .name = "OpReorderThreadWithHintEXT",
11343 .opcode = 5314,
11344 .operands = &.{
11345 .{ .kind = .id_ref, .quantifier = .required },
11346 .{ .kind = .id_ref, .quantifier = .required },
11347 },
11348 },
11349 .{
11350 .name = "OpReorderThreadWithHitObjectEXT",
11351 .opcode = 5315,
11352 .operands = &.{
11353 .{ .kind = .id_ref, .quantifier = .required },
11354 .{ .kind = .id_ref, .quantifier = .optional },
11355 .{ .kind = .id_ref, .quantifier = .optional },
11356 },
11357 },
11358 .{
11359 .name = "OpHitObjectTraceRayEXT",
11360 .opcode = 5316,
11361 .operands = &.{
11362 .{ .kind = .id_ref, .quantifier = .required },
11363 .{ .kind = .id_ref, .quantifier = .required },
11364 .{ .kind = .id_ref, .quantifier = .required },
11365 .{ .kind = .id_ref, .quantifier = .required },
11366 .{ .kind = .id_ref, .quantifier = .required },
11367 .{ .kind = .id_ref, .quantifier = .required },
11368 .{ .kind = .id_ref, .quantifier = .required },
11369 .{ .kind = .id_ref, .quantifier = .required },
11370 .{ .kind = .id_ref, .quantifier = .required },
11371 .{ .kind = .id_ref, .quantifier = .required },
11372 .{ .kind = .id_ref, .quantifier = .required },
11373 .{ .kind = .id_ref, .quantifier = .required },
11374 },
11375 },
11376 .{
11377 .name = "OpHitObjectTraceRayMotionEXT",
11378 .opcode = 5317,
11379 .operands = &.{
11380 .{ .kind = .id_ref, .quantifier = .required },
11381 .{ .kind = .id_ref, .quantifier = .required },
11382 .{ .kind = .id_ref, .quantifier = .required },
11383 .{ .kind = .id_ref, .quantifier = .required },
11384 .{ .kind = .id_ref, .quantifier = .required },
11385 .{ .kind = .id_ref, .quantifier = .required },
11386 .{ .kind = .id_ref, .quantifier = .required },
11387 .{ .kind = .id_ref, .quantifier = .required },
11388 .{ .kind = .id_ref, .quantifier = .required },
11389 .{ .kind = .id_ref, .quantifier = .required },
11390 .{ .kind = .id_ref, .quantifier = .required },
11391 .{ .kind = .id_ref, .quantifier = .required },
11392 .{ .kind = .id_ref, .quantifier = .required },
11393 },
11394 },
11395 .{
11396 .name = "OpHitObjectRecordEmptyEXT",
11397 .opcode = 5318,
11398 .operands = &.{
11399 .{ .kind = .id_ref, .quantifier = .required },
11400 },
11401 },
11402 .{
11403 .name = "OpHitObjectExecuteShaderEXT",
11404 .opcode = 5319,
11405 .operands = &.{
11406 .{ .kind = .id_ref, .quantifier = .required },
11407 .{ .kind = .id_ref, .quantifier = .required },
11408 },
11409 },
11410 .{
11411 .name = "OpHitObjectGetCurrentTimeEXT",
11412 .opcode = 5320,
11413 .operands = &.{
11414 .{ .kind = .id_result_type, .quantifier = .required },
11415 .{ .kind = .id_result, .quantifier = .required },
11416 .{ .kind = .id_ref, .quantifier = .required },
11417 },
11418 },
11419 .{
11420 .name = "OpHitObjectGetAttributesEXT",
11421 .opcode = 5321,
11422 .operands = &.{
11423 .{ .kind = .id_ref, .quantifier = .required },
11424 .{ .kind = .id_ref, .quantifier = .required },
11425 },
11426 },
11427 .{
11428 .name = "OpHitObjectGetHitKindEXT",
11429 .opcode = 5322,
11430 .operands = &.{
11431 .{ .kind = .id_result_type, .quantifier = .required },
11432 .{ .kind = .id_result, .quantifier = .required },
11433 .{ .kind = .id_ref, .quantifier = .required },
11434 },
11435 },
11436 .{
11437 .name = "OpHitObjectGetPrimitiveIndexEXT",
11438 .opcode = 5323,
11439 .operands = &.{
11440 .{ .kind = .id_result_type, .quantifier = .required },
11441 .{ .kind = .id_result, .quantifier = .required },
11442 .{ .kind = .id_ref, .quantifier = .required },
11443 },
11444 },
11445 .{
11446 .name = "OpHitObjectGetGeometryIndexEXT",
11447 .opcode = 5324,
11448 .operands = &.{
11449 .{ .kind = .id_result_type, .quantifier = .required },
11450 .{ .kind = .id_result, .quantifier = .required },
11451 .{ .kind = .id_ref, .quantifier = .required },
11452 },
11453 },
11454 .{
11455 .name = "OpHitObjectGetInstanceIdEXT",
11456 .opcode = 5325,
11457 .operands = &.{
11458 .{ .kind = .id_result_type, .quantifier = .required },
11459 .{ .kind = .id_result, .quantifier = .required },
11460 .{ .kind = .id_ref, .quantifier = .required },
11461 },
11462 },
11463 .{
11464 .name = "OpHitObjectGetInstanceCustomIndexEXT",
11465 .opcode = 5326,
11466 .operands = &.{
11467 .{ .kind = .id_result_type, .quantifier = .required },
11468 .{ .kind = .id_result, .quantifier = .required },
11469 .{ .kind = .id_ref, .quantifier = .required },
11470 },
11471 },
11472 .{
11473 .name = "OpHitObjectGetObjectRayOriginEXT",
11474 .opcode = 5327,
11475 .operands = &.{
11476 .{ .kind = .id_result_type, .quantifier = .required },
11477 .{ .kind = .id_result, .quantifier = .required },
11478 .{ .kind = .id_ref, .quantifier = .required },
11479 },
11480 },
11481 .{
11482 .name = "OpHitObjectGetObjectRayDirectionEXT",
11483 .opcode = 5328,
11484 .operands = &.{
11485 .{ .kind = .id_result_type, .quantifier = .required },
11486 .{ .kind = .id_result, .quantifier = .required },
11487 .{ .kind = .id_ref, .quantifier = .required },
11488 },
11489 },
11490 .{
11491 .name = "OpHitObjectGetWorldRayDirectionEXT",
11492 .opcode = 5329,
11493 .operands = &.{
11494 .{ .kind = .id_result_type, .quantifier = .required },
11495 .{ .kind = .id_result, .quantifier = .required },
11496 .{ .kind = .id_ref, .quantifier = .required },
11497 },
11498 },
11499 .{
11500 .name = "OpHitObjectGetWorldRayOriginEXT",
11501 .opcode = 5330,
11502 .operands = &.{
11503 .{ .kind = .id_result_type, .quantifier = .required },
11504 .{ .kind = .id_result, .quantifier = .required },
11505 .{ .kind = .id_ref, .quantifier = .required },
11506 },
11507 },
11508 .{
11509 .name = "OpHitObjectGetObjectToWorldEXT",
11510 .opcode = 5331,
11511 .operands = &.{
11512 .{ .kind = .id_result_type, .quantifier = .required },
11513 .{ .kind = .id_result, .quantifier = .required },
11514 .{ .kind = .id_ref, .quantifier = .required },
11515 },
11516 },
11517 .{
11518 .name = "OpHitObjectGetWorldToObjectEXT",
11519 .opcode = 5332,
11520 .operands = &.{
11521 .{ .kind = .id_result_type, .quantifier = .required },
11522 .{ .kind = .id_result, .quantifier = .required },
11523 .{ .kind = .id_ref, .quantifier = .required },
11524 },
11525 },
11526 .{
11527 .name = "OpHitObjectGetRayTMaxEXT",
11528 .opcode = 5333,
11529 .operands = &.{
11530 .{ .kind = .id_result_type, .quantifier = .required },
11531 .{ .kind = .id_result, .quantifier = .required },
11532 .{ .kind = .id_ref, .quantifier = .required },
11533 },
11534 },
11535 .{
11536 .name = "OpReportIntersectionKHR",
11537 .opcode = 5334,
11538 .operands = &.{
11539 .{ .kind = .id_result_type, .quantifier = .required },
11540 .{ .kind = .id_result, .quantifier = .required },
11541 .{ .kind = .id_ref, .quantifier = .required },
11542 .{ .kind = .id_ref, .quantifier = .required },
11543 },
11544 },
11545 .{
11546 .name = "OpIgnoreIntersectionNV",
11547 .opcode = 5335,
11548 .operands = &.{},
11549 },
11550 .{
11551 .name = "OpTerminateRayNV",
11552 .opcode = 5336,
11553 .operands = &.{},
11554 },
11555 .{
11556 .name = "OpTraceNV",
11557 .opcode = 5337,
11558 .operands = &.{
11559 .{ .kind = .id_ref, .quantifier = .required },
11560 .{ .kind = .id_ref, .quantifier = .required },
11561 .{ .kind = .id_ref, .quantifier = .required },
11562 .{ .kind = .id_ref, .quantifier = .required },
11563 .{ .kind = .id_ref, .quantifier = .required },
11564 .{ .kind = .id_ref, .quantifier = .required },
11565 .{ .kind = .id_ref, .quantifier = .required },
11566 .{ .kind = .id_ref, .quantifier = .required },
11567 .{ .kind = .id_ref, .quantifier = .required },
11568 .{ .kind = .id_ref, .quantifier = .required },
11569 .{ .kind = .id_ref, .quantifier = .required },
11570 },
11571 },
11572 .{
11573 .name = "OpTraceMotionNV",
11574 .opcode = 5338,
11575 .operands = &.{
11576 .{ .kind = .id_ref, .quantifier = .required },
11577 .{ .kind = .id_ref, .quantifier = .required },
11578 .{ .kind = .id_ref, .quantifier = .required },
11579 .{ .kind = .id_ref, .quantifier = .required },
11580 .{ .kind = .id_ref, .quantifier = .required },
11581 .{ .kind = .id_ref, .quantifier = .required },
11582 .{ .kind = .id_ref, .quantifier = .required },
11583 .{ .kind = .id_ref, .quantifier = .required },
11584 .{ .kind = .id_ref, .quantifier = .required },
11585 .{ .kind = .id_ref, .quantifier = .required },
11586 .{ .kind = .id_ref, .quantifier = .required },
11587 .{ .kind = .id_ref, .quantifier = .required },
11588 },
11589 },
11590 .{
11591 .name = "OpTraceRayMotionNV",
11592 .opcode = 5339,
11593 .operands = &.{
11594 .{ .kind = .id_ref, .quantifier = .required },
11595 .{ .kind = .id_ref, .quantifier = .required },
11596 .{ .kind = .id_ref, .quantifier = .required },
11597 .{ .kind = .id_ref, .quantifier = .required },
11598 .{ .kind = .id_ref, .quantifier = .required },
11599 .{ .kind = .id_ref, .quantifier = .required },
11600 .{ .kind = .id_ref, .quantifier = .required },
11601 .{ .kind = .id_ref, .quantifier = .required },
11602 .{ .kind = .id_ref, .quantifier = .required },
11603 .{ .kind = .id_ref, .quantifier = .required },
11604 .{ .kind = .id_ref, .quantifier = .required },
11605 .{ .kind = .id_ref, .quantifier = .required },
11606 },
11607 },
11608 .{
11609 .name = "OpRayQueryGetIntersectionTriangleVertexPositionsKHR",
11610 .opcode = 5340,
11611 .operands = &.{
11612 .{ .kind = .id_result_type, .quantifier = .required },
11613 .{ .kind = .id_result, .quantifier = .required },
11614 .{ .kind = .id_ref, .quantifier = .required },
11615 .{ .kind = .id_ref, .quantifier = .required },
11616 },
11617 },
11618 .{
11619 .name = "OpTypeAccelerationStructureKHR",
11620 .opcode = 5341,
11621 .operands = &.{
11622 .{ .kind = .id_result, .quantifier = .required },
11623 },
11624 },
11625 .{
11626 .name = "OpExecuteCallableNV",
11627 .opcode = 5344,
11628 .operands = &.{
11629 .{ .kind = .id_ref, .quantifier = .required },
11630 .{ .kind = .id_ref, .quantifier = .required },
11631 },
11632 },
11633 .{
11634 .name = "OpRayQueryGetIntersectionClusterIdNV",
11635 .opcode = 5345,
11636 .operands = &.{
11637 .{ .kind = .id_result_type, .quantifier = .required },
11638 .{ .kind = .id_result, .quantifier = .required },
11639 .{ .kind = .id_ref, .quantifier = .required },
11640 .{ .kind = .id_ref, .quantifier = .required },
11641 },
11642 },
11643 .{
11644 .name = "OpHitObjectGetClusterIdNV",
11645 .opcode = 5346,
11646 .operands = &.{
11647 .{ .kind = .id_result_type, .quantifier = .required },
11648 .{ .kind = .id_result, .quantifier = .required },
11649 .{ .kind = .id_ref, .quantifier = .required },
11650 },
11651 },
11652 .{
11653 .name = "OpHitObjectGetRayTMinEXT",
11654 .opcode = 5347,
11655 .operands = &.{
11656 .{ .kind = .id_result_type, .quantifier = .required },
11657 .{ .kind = .id_result, .quantifier = .required },
11658 .{ .kind = .id_ref, .quantifier = .required },
11659 },
11660 },
11661 .{
11662 .name = "OpHitObjectGetShaderBindingTableRecordIndexEXT",
11663 .opcode = 5348,
11664 .operands = &.{
11665 .{ .kind = .id_result_type, .quantifier = .required },
11666 .{ .kind = .id_result, .quantifier = .required },
11667 .{ .kind = .id_ref, .quantifier = .required },
11668 },
11669 },
11670 .{
11671 .name = "OpHitObjectGetShaderRecordBufferHandleEXT",
11672 .opcode = 5349,
11673 .operands = &.{
11674 .{ .kind = .id_result_type, .quantifier = .required },
11675 .{ .kind = .id_result, .quantifier = .required },
11676 .{ .kind = .id_ref, .quantifier = .required },
11677 },
11678 },
11679 .{
11680 .name = "OpHitObjectIsEmptyEXT",
11681 .opcode = 5350,
11682 .operands = &.{
11683 .{ .kind = .id_result_type, .quantifier = .required },
11684 .{ .kind = .id_result, .quantifier = .required },
11685 .{ .kind = .id_ref, .quantifier = .required },
11686 },
11687 },
11688 .{
11689 .name = "OpHitObjectIsHitEXT",
11690 .opcode = 5351,
11691 .operands = &.{
11692 .{ .kind = .id_result_type, .quantifier = .required },
11693 .{ .kind = .id_result, .quantifier = .required },
11694 .{ .kind = .id_ref, .quantifier = .required },
11695 },
11696 },
11697 .{
11698 .name = "OpHitObjectIsMissEXT",
11699 .opcode = 5352,
11700 .operands = &.{
11701 .{ .kind = .id_result_type, .quantifier = .required },
11702 .{ .kind = .id_result, .quantifier = .required },
11703 .{ .kind = .id_ref, .quantifier = .required },
11704 },
11705 },
11706 .{
11707 .name = "OpTypeCooperativeMatrixNV",
11708 .opcode = 5358,
11709 .operands = &.{
11710 .{ .kind = .id_result, .quantifier = .required },
11711 .{ .kind = .id_ref, .quantifier = .required },
11712 .{ .kind = .id_scope, .quantifier = .required },
11713 .{ .kind = .id_ref, .quantifier = .required },
11714 .{ .kind = .id_ref, .quantifier = .required },
11715 },
11716 },
11717 .{
11718 .name = "OpCooperativeMatrixLoadNV",
11719 .opcode = 5359,
11720 .operands = &.{
11721 .{ .kind = .id_result_type, .quantifier = .required },
11722 .{ .kind = .id_result, .quantifier = .required },
11723 .{ .kind = .id_ref, .quantifier = .required },
11724 .{ .kind = .id_ref, .quantifier = .required },
11725 .{ .kind = .id_ref, .quantifier = .required },
11726 .{ .kind = .memory_access, .quantifier = .optional },
11727 },
11728 },
11729 .{
11730 .name = "OpCooperativeMatrixStoreNV",
11731 .opcode = 5360,
11732 .operands = &.{
11733 .{ .kind = .id_ref, .quantifier = .required },
11734 .{ .kind = .id_ref, .quantifier = .required },
11735 .{ .kind = .id_ref, .quantifier = .required },
11736 .{ .kind = .id_ref, .quantifier = .required },
11737 .{ .kind = .memory_access, .quantifier = .optional },
11738 },
11739 },
11740 .{
11741 .name = "OpCooperativeMatrixMulAddNV",
11742 .opcode = 5361,
11743 .operands = &.{
11744 .{ .kind = .id_result_type, .quantifier = .required },
11745 .{ .kind = .id_result, .quantifier = .required },
11746 .{ .kind = .id_ref, .quantifier = .required },
11747 .{ .kind = .id_ref, .quantifier = .required },
11748 .{ .kind = .id_ref, .quantifier = .required },
11749 },
11750 },
11751 .{
11752 .name = "OpCooperativeMatrixLengthNV",
11753 .opcode = 5362,
11754 .operands = &.{
11755 .{ .kind = .id_result_type, .quantifier = .required },
11756 .{ .kind = .id_result, .quantifier = .required },
11757 .{ .kind = .id_ref, .quantifier = .required },
11758 },
11759 },
11760 .{
11761 .name = "OpBeginInvocationInterlockEXT",
11762 .opcode = 5364,
11763 .operands = &.{},
11764 },
11765 .{
11766 .name = "OpEndInvocationInterlockEXT",
11767 .opcode = 5365,
11768 .operands = &.{},
11769 },
11770 .{
11771 .name = "OpCooperativeMatrixReduceNV",
11772 .opcode = 5366,
11773 .operands = &.{
11774 .{ .kind = .id_result_type, .quantifier = .required },
11775 .{ .kind = .id_result, .quantifier = .required },
11776 .{ .kind = .id_ref, .quantifier = .required },
11777 .{ .kind = .cooperative_matrix_reduce, .quantifier = .required },
11778 .{ .kind = .id_ref, .quantifier = .required },
11779 },
11780 },
11781 .{
11782 .name = "OpCooperativeMatrixLoadTensorNV",
11783 .opcode = 5367,
11784 .operands = &.{
11785 .{ .kind = .id_result_type, .quantifier = .required },
11786 .{ .kind = .id_result, .quantifier = .required },
11787 .{ .kind = .id_ref, .quantifier = .required },
11788 .{ .kind = .id_ref, .quantifier = .required },
11789 .{ .kind = .id_ref, .quantifier = .required },
11790 .{ .kind = .memory_access, .quantifier = .required },
11791 .{ .kind = .tensor_addressing_operands, .quantifier = .required },
11792 },
11793 },
11794 .{
11795 .name = "OpCooperativeMatrixStoreTensorNV",
11796 .opcode = 5368,
11797 .operands = &.{
11798 .{ .kind = .id_ref, .quantifier = .required },
11799 .{ .kind = .id_ref, .quantifier = .required },
11800 .{ .kind = .id_ref, .quantifier = .required },
11801 .{ .kind = .memory_access, .quantifier = .required },
11802 .{ .kind = .tensor_addressing_operands, .quantifier = .required },
11803 },
11804 },
11805 .{
11806 .name = "OpCooperativeMatrixPerElementOpNV",
11807 .opcode = 5369,
11808 .operands = &.{
11809 .{ .kind = .id_result_type, .quantifier = .required },
11810 .{ .kind = .id_result, .quantifier = .required },
11811 .{ .kind = .id_ref, .quantifier = .required },
11812 .{ .kind = .id_ref, .quantifier = .required },
11813 .{ .kind = .id_ref, .quantifier = .variadic },
11814 },
11815 },
11816 .{
11817 .name = "OpTypeTensorLayoutNV",
11818 .opcode = 5370,
11819 .operands = &.{
11820 .{ .kind = .id_result, .quantifier = .required },
11821 .{ .kind = .id_ref, .quantifier = .required },
11822 .{ .kind = .id_ref, .quantifier = .required },
11823 },
11824 },
11825 .{
11826 .name = "OpTypeTensorViewNV",
11827 .opcode = 5371,
11828 .operands = &.{
11829 .{ .kind = .id_result, .quantifier = .required },
11830 .{ .kind = .id_ref, .quantifier = .required },
11831 .{ .kind = .id_ref, .quantifier = .required },
11832 .{ .kind = .id_ref, .quantifier = .variadic },
11833 },
11834 },
11835 .{
11836 .name = "OpCreateTensorLayoutNV",
11837 .opcode = 5372,
11838 .operands = &.{
11839 .{ .kind = .id_result_type, .quantifier = .required },
11840 .{ .kind = .id_result, .quantifier = .required },
11841 },
11842 },
11843 .{
11844 .name = "OpTensorLayoutSetDimensionNV",
11845 .opcode = 5373,
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 = .variadic },
11851 },
11852 },
11853 .{
11854 .name = "OpTensorLayoutSetStrideNV",
11855 .opcode = 5374,
11856 .operands = &.{
11857 .{ .kind = .id_result_type, .quantifier = .required },
11858 .{ .kind = .id_result, .quantifier = .required },
11859 .{ .kind = .id_ref, .quantifier = .required },
11860 .{ .kind = .id_ref, .quantifier = .variadic },
11861 },
11862 },
11863 .{
11864 .name = "OpTensorLayoutSliceNV",
11865 .opcode = 5375,
11866 .operands = &.{
11867 .{ .kind = .id_result_type, .quantifier = .required },
11868 .{ .kind = .id_result, .quantifier = .required },
11869 .{ .kind = .id_ref, .quantifier = .required },
11870 .{ .kind = .id_ref, .quantifier = .variadic },
11871 },
11872 },
11873 .{
11874 .name = "OpTensorLayoutSetClampValueNV",
11875 .opcode = 5376,
11876 .operands = &.{
11877 .{ .kind = .id_result_type, .quantifier = .required },
11878 .{ .kind = .id_result, .quantifier = .required },
11879 .{ .kind = .id_ref, .quantifier = .required },
11880 .{ .kind = .id_ref, .quantifier = .required },
11881 },
11882 },
11883 .{
11884 .name = "OpCreateTensorViewNV",
11885 .opcode = 5377,
11886 .operands = &.{
11887 .{ .kind = .id_result_type, .quantifier = .required },
11888 .{ .kind = .id_result, .quantifier = .required },
11889 },
11890 },
11891 .{
11892 .name = "OpTensorViewSetDimensionNV",
11893 .opcode = 5378,
11894 .operands = &.{
11895 .{ .kind = .id_result_type, .quantifier = .required },
11896 .{ .kind = .id_result, .quantifier = .required },
11897 .{ .kind = .id_ref, .quantifier = .required },
11898 .{ .kind = .id_ref, .quantifier = .variadic },
11899 },
11900 },
11901 .{
11902 .name = "OpTensorViewSetStrideNV",
11903 .opcode = 5379,
11904 .operands = &.{
11905 .{ .kind = .id_result_type, .quantifier = .required },
11906 .{ .kind = .id_result, .quantifier = .required },
11907 .{ .kind = .id_ref, .quantifier = .required },
11908 .{ .kind = .id_ref, .quantifier = .variadic },
11909 },
11910 },
11911 .{
11912 .name = "OpDemoteToHelperInvocation",
11913 .opcode = 5380,
11914 .operands = &.{},
11915 },
11916 .{
11917 .name = "OpIsHelperInvocationEXT",
11918 .opcode = 5381,
11919 .operands = &.{
11920 .{ .kind = .id_result_type, .quantifier = .required },
11921 .{ .kind = .id_result, .quantifier = .required },
11922 },
11923 },
11924 .{
11925 .name = "OpTensorViewSetClipNV",
11926 .opcode = 5382,
11927 .operands = &.{
11928 .{ .kind = .id_result_type, .quantifier = .required },
11929 .{ .kind = .id_result, .quantifier = .required },
11930 .{ .kind = .id_ref, .quantifier = .required },
11931 .{ .kind = .id_ref, .quantifier = .required },
11932 .{ .kind = .id_ref, .quantifier = .required },
11933 .{ .kind = .id_ref, .quantifier = .required },
11934 .{ .kind = .id_ref, .quantifier = .required },
11935 },
11936 },
11937 .{
11938 .name = "OpTensorLayoutSetBlockSizeNV",
11939 .opcode = 5384,
11940 .operands = &.{
11941 .{ .kind = .id_result_type, .quantifier = .required },
11942 .{ .kind = .id_result, .quantifier = .required },
11943 .{ .kind = .id_ref, .quantifier = .required },
11944 .{ .kind = .id_ref, .quantifier = .variadic },
11945 },
11946 },
11947 .{
11948 .name = "OpCooperativeMatrixTransposeNV",
11949 .opcode = 5390,
11950 .operands = &.{
11951 .{ .kind = .id_result_type, .quantifier = .required },
11952 .{ .kind = .id_result, .quantifier = .required },
11953 .{ .kind = .id_ref, .quantifier = .required },
11954 },
11955 },
11956 .{
11957 .name = "OpConvertUToImageNV",
11958 .opcode = 5391,
11959 .operands = &.{
11960 .{ .kind = .id_result_type, .quantifier = .required },
11961 .{ .kind = .id_result, .quantifier = .required },
11962 .{ .kind = .id_ref, .quantifier = .required },
11963 },
11964 },
11965 .{
11966 .name = "OpConvertUToSamplerNV",
11967 .opcode = 5392,
11968 .operands = &.{
11969 .{ .kind = .id_result_type, .quantifier = .required },
11970 .{ .kind = .id_result, .quantifier = .required },
11971 .{ .kind = .id_ref, .quantifier = .required },
11972 },
11973 },
11974 .{
11975 .name = "OpConvertImageToUNV",
11976 .opcode = 5393,
11977 .operands = &.{
11978 .{ .kind = .id_result_type, .quantifier = .required },
11979 .{ .kind = .id_result, .quantifier = .required },
11980 .{ .kind = .id_ref, .quantifier = .required },
11981 },
11982 },
11983 .{
11984 .name = "OpConvertSamplerToUNV",
11985 .opcode = 5394,
11986 .operands = &.{
11987 .{ .kind = .id_result_type, .quantifier = .required },
11988 .{ .kind = .id_result, .quantifier = .required },
11989 .{ .kind = .id_ref, .quantifier = .required },
11990 },
11991 },
11992 .{
11993 .name = "OpConvertUToSampledImageNV",
11994 .opcode = 5395,
11995 .operands = &.{
11996 .{ .kind = .id_result_type, .quantifier = .required },
11997 .{ .kind = .id_result, .quantifier = .required },
11998 .{ .kind = .id_ref, .quantifier = .required },
11999 },
12000 },
12001 .{
12002 .name = "OpConvertSampledImageToUNV",
12003 .opcode = 5396,
12004 .operands = &.{
12005 .{ .kind = .id_result_type, .quantifier = .required },
12006 .{ .kind = .id_result, .quantifier = .required },
12007 .{ .kind = .id_ref, .quantifier = .required },
12008 },
12009 },
12010 .{
12011 .name = "OpSamplerImageAddressingModeNV",
12012 .opcode = 5397,
12013 .operands = &.{
12014 .{ .kind = .literal_integer, .quantifier = .required },
12015 },
12016 },
12017 .{
12018 .name = "OpRawAccessChainNV",
12019 .opcode = 5398,
12020 .operands = &.{
12021 .{ .kind = .id_result_type, .quantifier = .required },
12022 .{ .kind = .id_result, .quantifier = .required },
12023 .{ .kind = .id_ref, .quantifier = .required },
12024 .{ .kind = .id_ref, .quantifier = .required },
12025 .{ .kind = .id_ref, .quantifier = .required },
12026 .{ .kind = .id_ref, .quantifier = .required },
12027 .{ .kind = .raw_access_chain_operands, .quantifier = .optional },
12028 },
12029 },
12030 .{
12031 .name = "OpRayQueryGetIntersectionSpherePositionNV",
12032 .opcode = 5427,
12033 .operands = &.{
12034 .{ .kind = .id_result_type, .quantifier = .required },
12035 .{ .kind = .id_result, .quantifier = .required },
12036 .{ .kind = .id_ref, .quantifier = .required },
12037 .{ .kind = .id_ref, .quantifier = .required },
12038 },
12039 },
12040 .{
12041 .name = "OpRayQueryGetIntersectionSphereRadiusNV",
12042 .opcode = 5428,
12043 .operands = &.{
12044 .{ .kind = .id_result_type, .quantifier = .required },
12045 .{ .kind = .id_result, .quantifier = .required },
12046 .{ .kind = .id_ref, .quantifier = .required },
12047 .{ .kind = .id_ref, .quantifier = .required },
12048 },
12049 },
12050 .{
12051 .name = "OpRayQueryGetIntersectionLSSPositionsNV",
12052 .opcode = 5429,
12053 .operands = &.{
12054 .{ .kind = .id_result_type, .quantifier = .required },
12055 .{ .kind = .id_result, .quantifier = .required },
12056 .{ .kind = .id_ref, .quantifier = .required },
12057 .{ .kind = .id_ref, .quantifier = .required },
12058 },
12059 },
12060 .{
12061 .name = "OpRayQueryGetIntersectionLSSRadiiNV",
12062 .opcode = 5430,
12063 .operands = &.{
12064 .{ .kind = .id_result_type, .quantifier = .required },
12065 .{ .kind = .id_result, .quantifier = .required },
12066 .{ .kind = .id_ref, .quantifier = .required },
12067 .{ .kind = .id_ref, .quantifier = .required },
12068 },
12069 },
12070 .{
12071 .name = "OpRayQueryGetIntersectionLSSHitValueNV",
12072 .opcode = 5431,
12073 .operands = &.{
12074 .{ .kind = .id_result_type, .quantifier = .required },
12075 .{ .kind = .id_result, .quantifier = .required },
12076 .{ .kind = .id_ref, .quantifier = .required },
12077 .{ .kind = .id_ref, .quantifier = .required },
12078 },
12079 },
12080 .{
12081 .name = "OpHitObjectGetSpherePositionNV",
12082 .opcode = 5432,
12083 .operands = &.{
12084 .{ .kind = .id_result_type, .quantifier = .required },
12085 .{ .kind = .id_result, .quantifier = .required },
12086 .{ .kind = .id_ref, .quantifier = .required },
12087 },
12088 },
12089 .{
12090 .name = "OpHitObjectGetSphereRadiusNV",
12091 .opcode = 5433,
12092 .operands = &.{
12093 .{ .kind = .id_result_type, .quantifier = .required },
12094 .{ .kind = .id_result, .quantifier = .required },
12095 .{ .kind = .id_ref, .quantifier = .required },
12096 },
12097 },
12098 .{
12099 .name = "OpHitObjectGetLSSPositionsNV",
12100 .opcode = 5434,
12101 .operands = &.{
12102 .{ .kind = .id_result_type, .quantifier = .required },
12103 .{ .kind = .id_result, .quantifier = .required },
12104 .{ .kind = .id_ref, .quantifier = .required },
12105 },
12106 },
12107 .{
12108 .name = "OpHitObjectGetLSSRadiiNV",
12109 .opcode = 5435,
12110 .operands = &.{
12111 .{ .kind = .id_result_type, .quantifier = .required },
12112 .{ .kind = .id_result, .quantifier = .required },
12113 .{ .kind = .id_ref, .quantifier = .required },
12114 },
12115 },
12116 .{
12117 .name = "OpHitObjectIsSphereHitNV",
12118 .opcode = 5436,
12119 .operands = &.{
12120 .{ .kind = .id_result_type, .quantifier = .required },
12121 .{ .kind = .id_result, .quantifier = .required },
12122 .{ .kind = .id_ref, .quantifier = .required },
12123 },
12124 },
12125 .{
12126 .name = "OpHitObjectIsLSSHitNV",
12127 .opcode = 5437,
12128 .operands = &.{
12129 .{ .kind = .id_result_type, .quantifier = .required },
12130 .{ .kind = .id_result, .quantifier = .required },
12131 .{ .kind = .id_ref, .quantifier = .required },
12132 },
12133 },
12134 .{
12135 .name = "OpRayQueryIsSphereHitNV",
12136 .opcode = 5438,
12137 .operands = &.{
12138 .{ .kind = .id_result_type, .quantifier = .required },
12139 .{ .kind = .id_result, .quantifier = .required },
12140 .{ .kind = .id_ref, .quantifier = .required },
12141 .{ .kind = .id_ref, .quantifier = .required },
12142 },
12143 },
12144 .{
12145 .name = "OpRayQueryIsLSSHitNV",
12146 .opcode = 5439,
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 },
12153 },
12154 .{
12155 .name = "OpSubgroupShuffleINTEL",
12156 .opcode = 5571,
12157 .operands = &.{
12158 .{ .kind = .id_result_type, .quantifier = .required },
12159 .{ .kind = .id_result, .quantifier = .required },
12160 .{ .kind = .id_ref, .quantifier = .required },
12161 .{ .kind = .id_ref, .quantifier = .required },
12162 },
12163 },
12164 .{
12165 .name = "OpSubgroupShuffleDownINTEL",
12166 .opcode = 5572,
12167 .operands = &.{
12168 .{ .kind = .id_result_type, .quantifier = .required },
12169 .{ .kind = .id_result, .quantifier = .required },
12170 .{ .kind = .id_ref, .quantifier = .required },
12171 .{ .kind = .id_ref, .quantifier = .required },
12172 .{ .kind = .id_ref, .quantifier = .required },
12173 },
12174 },
12175 .{
12176 .name = "OpSubgroupShuffleUpINTEL",
12177 .opcode = 5573,
12178 .operands = &.{
12179 .{ .kind = .id_result_type, .quantifier = .required },
12180 .{ .kind = .id_result, .quantifier = .required },
12181 .{ .kind = .id_ref, .quantifier = .required },
12182 .{ .kind = .id_ref, .quantifier = .required },
12183 .{ .kind = .id_ref, .quantifier = .required },
12184 },
12185 },
12186 .{
12187 .name = "OpSubgroupShuffleXorINTEL",
12188 .opcode = 5574,
12189 .operands = &.{
12190 .{ .kind = .id_result_type, .quantifier = .required },
12191 .{ .kind = .id_result, .quantifier = .required },
12192 .{ .kind = .id_ref, .quantifier = .required },
12193 .{ .kind = .id_ref, .quantifier = .required },
12194 },
12195 },
12196 .{
12197 .name = "OpSubgroupBlockReadINTEL",
12198 .opcode = 5575,
12199 .operands = &.{
12200 .{ .kind = .id_result_type, .quantifier = .required },
12201 .{ .kind = .id_result, .quantifier = .required },
12202 .{ .kind = .id_ref, .quantifier = .required },
12203 },
12204 },
12205 .{
12206 .name = "OpSubgroupBlockWriteINTEL",
12207 .opcode = 5576,
12208 .operands = &.{
12209 .{ .kind = .id_ref, .quantifier = .required },
12210 .{ .kind = .id_ref, .quantifier = .required },
12211 },
12212 },
12213 .{
12214 .name = "OpSubgroupImageBlockReadINTEL",
12215 .opcode = 5577,
12216 .operands = &.{
12217 .{ .kind = .id_result_type, .quantifier = .required },
12218 .{ .kind = .id_result, .quantifier = .required },
12219 .{ .kind = .id_ref, .quantifier = .required },
12220 .{ .kind = .id_ref, .quantifier = .required },
12221 },
12222 },
12223 .{
12224 .name = "OpSubgroupImageBlockWriteINTEL",
12225 .opcode = 5578,
12226 .operands = &.{
12227 .{ .kind = .id_ref, .quantifier = .required },
12228 .{ .kind = .id_ref, .quantifier = .required },
12229 .{ .kind = .id_ref, .quantifier = .required },
12230 },
12231 },
12232 .{
12233 .name = "OpSubgroupImageMediaBlockReadINTEL",
12234 .opcode = 5580,
12235 .operands = &.{
12236 .{ .kind = .id_result_type, .quantifier = .required },
12237 .{ .kind = .id_result, .quantifier = .required },
12238 .{ .kind = .id_ref, .quantifier = .required },
12239 .{ .kind = .id_ref, .quantifier = .required },
12240 .{ .kind = .id_ref, .quantifier = .required },
12241 .{ .kind = .id_ref, .quantifier = .required },
12242 },
12243 },
12244 .{
12245 .name = "OpSubgroupImageMediaBlockWriteINTEL",
12246 .opcode = 5581,
12247 .operands = &.{
12248 .{ .kind = .id_ref, .quantifier = .required },
12249 .{ .kind = .id_ref, .quantifier = .required },
12250 .{ .kind = .id_ref, .quantifier = .required },
12251 .{ .kind = .id_ref, .quantifier = .required },
12252 .{ .kind = .id_ref, .quantifier = .required },
12253 },
12254 },
12255 .{
12256 .name = "OpUCountLeadingZerosINTEL",
12257 .opcode = 5585,
12258 .operands = &.{
12259 .{ .kind = .id_result_type, .quantifier = .required },
12260 .{ .kind = .id_result, .quantifier = .required },
12261 .{ .kind = .id_ref, .quantifier = .required },
12262 },
12263 },
12264 .{
12265 .name = "OpUCountTrailingZerosINTEL",
12266 .opcode = 5586,
12267 .operands = &.{
12268 .{ .kind = .id_result_type, .quantifier = .required },
12269 .{ .kind = .id_result, .quantifier = .required },
12270 .{ .kind = .id_ref, .quantifier = .required },
12271 },
12272 },
12273 .{
12274 .name = "OpAbsISubINTEL",
12275 .opcode = 5587,
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 = "OpAbsUSubINTEL",
12285 .opcode = 5588,
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 },
12292 },
12293 .{
12294 .name = "OpIAddSatINTEL",
12295 .opcode = 5589,
12296 .operands = &.{
12297 .{ .kind = .id_result_type, .quantifier = .required },
12298 .{ .kind = .id_result, .quantifier = .required },
12299 .{ .kind = .id_ref, .quantifier = .required },
12300 .{ .kind = .id_ref, .quantifier = .required },
12301 },
12302 },
12303 .{
12304 .name = "OpUAddSatINTEL",
12305 .opcode = 5590,
12306 .operands = &.{
12307 .{ .kind = .id_result_type, .quantifier = .required },
12308 .{ .kind = .id_result, .quantifier = .required },
12309 .{ .kind = .id_ref, .quantifier = .required },
12310 .{ .kind = .id_ref, .quantifier = .required },
12311 },
12312 },
12313 .{
12314 .name = "OpIAverageINTEL",
12315 .opcode = 5591,
12316 .operands = &.{
12317 .{ .kind = .id_result_type, .quantifier = .required },
12318 .{ .kind = .id_result, .quantifier = .required },
12319 .{ .kind = .id_ref, .quantifier = .required },
12320 .{ .kind = .id_ref, .quantifier = .required },
12321 },
12322 },
12323 .{
12324 .name = "OpUAverageINTEL",
12325 .opcode = 5592,
12326 .operands = &.{
12327 .{ .kind = .id_result_type, .quantifier = .required },
12328 .{ .kind = .id_result, .quantifier = .required },
12329 .{ .kind = .id_ref, .quantifier = .required },
12330 .{ .kind = .id_ref, .quantifier = .required },
12331 },
12332 },
12333 .{
12334 .name = "OpIAverageRoundedINTEL",
12335 .opcode = 5593,
12336 .operands = &.{
12337 .{ .kind = .id_result_type, .quantifier = .required },
12338 .{ .kind = .id_result, .quantifier = .required },
12339 .{ .kind = .id_ref, .quantifier = .required },
12340 .{ .kind = .id_ref, .quantifier = .required },
12341 },
12342 },
12343 .{
12344 .name = "OpUAverageRoundedINTEL",
12345 .opcode = 5594,
12346 .operands = &.{
12347 .{ .kind = .id_result_type, .quantifier = .required },
12348 .{ .kind = .id_result, .quantifier = .required },
12349 .{ .kind = .id_ref, .quantifier = .required },
12350 .{ .kind = .id_ref, .quantifier = .required },
12351 },
12352 },
12353 .{
12354 .name = "OpISubSatINTEL",
12355 .opcode = 5595,
12356 .operands = &.{
12357 .{ .kind = .id_result_type, .quantifier = .required },
12358 .{ .kind = .id_result, .quantifier = .required },
12359 .{ .kind = .id_ref, .quantifier = .required },
12360 .{ .kind = .id_ref, .quantifier = .required },
12361 },
12362 },
12363 .{
12364 .name = "OpUSubSatINTEL",
12365 .opcode = 5596,
12366 .operands = &.{
12367 .{ .kind = .id_result_type, .quantifier = .required },
12368 .{ .kind = .id_result, .quantifier = .required },
12369 .{ .kind = .id_ref, .quantifier = .required },
12370 .{ .kind = .id_ref, .quantifier = .required },
12371 },
12372 },
12373 .{
12374 .name = "OpIMul32x16INTEL",
12375 .opcode = 5597,
12376 .operands = &.{
12377 .{ .kind = .id_result_type, .quantifier = .required },
12378 .{ .kind = .id_result, .quantifier = .required },
12379 .{ .kind = .id_ref, .quantifier = .required },
12380 .{ .kind = .id_ref, .quantifier = .required },
12381 },
12382 },
12383 .{
12384 .name = "OpUMul32x16INTEL",
12385 .opcode = 5598,
12386 .operands = &.{
12387 .{ .kind = .id_result_type, .quantifier = .required },
12388 .{ .kind = .id_result, .quantifier = .required },
12389 .{ .kind = .id_ref, .quantifier = .required },
12390 .{ .kind = .id_ref, .quantifier = .required },
12391 },
12392 },
12393 .{
12394 .name = "OpConstantFunctionPointerINTEL",
12395 .opcode = 5600,
12396 .operands = &.{
12397 .{ .kind = .id_result_type, .quantifier = .required },
12398 .{ .kind = .id_result, .quantifier = .required },
12399 .{ .kind = .id_ref, .quantifier = .required },
12400 },
12401 },
12402 .{
12403 .name = "OpFunctionPointerCallINTEL",
12404 .opcode = 5601,
12405 .operands = &.{
12406 .{ .kind = .id_result_type, .quantifier = .required },
12407 .{ .kind = .id_result, .quantifier = .required },
12408 .{ .kind = .id_ref, .quantifier = .variadic },
12409 },
12410 },
12411 .{
12412 .name = "OpAsmTargetINTEL",
12413 .opcode = 5609,
12414 .operands = &.{
12415 .{ .kind = .id_result, .quantifier = .required },
12416 .{ .kind = .literal_string, .quantifier = .required },
12417 },
12418 },
12419 .{
12420 .name = "OpAsmINTEL",
12421 .opcode = 5610,
12422 .operands = &.{
12423 .{ .kind = .id_result_type, .quantifier = .required },
12424 .{ .kind = .id_result, .quantifier = .required },
12425 .{ .kind = .id_ref, .quantifier = .required },
12426 .{ .kind = .id_ref, .quantifier = .required },
12427 .{ .kind = .literal_string, .quantifier = .required },
12428 .{ .kind = .literal_string, .quantifier = .required },
12429 },
12430 },
12431 .{
12432 .name = "OpAsmCallINTEL",
12433 .opcode = 5611,
12434 .operands = &.{
12435 .{ .kind = .id_result_type, .quantifier = .required },
12436 .{ .kind = .id_result, .quantifier = .required },
12437 .{ .kind = .id_ref, .quantifier = .required },
12438 .{ .kind = .id_ref, .quantifier = .variadic },
12439 },
12440 },
12441 .{
12442 .name = "OpAtomicFMinEXT",
12443 .opcode = 5614,
12444 .operands = &.{
12445 .{ .kind = .id_result_type, .quantifier = .required },
12446 .{ .kind = .id_result, .quantifier = .required },
12447 .{ .kind = .id_ref, .quantifier = .required },
12448 .{ .kind = .id_scope, .quantifier = .required },
12449 .{ .kind = .id_memory_semantics, .quantifier = .required },
12450 .{ .kind = .id_ref, .quantifier = .required },
12451 },
12452 },
12453 .{
12454 .name = "OpAtomicFMaxEXT",
12455 .opcode = 5615,
12456 .operands = &.{
12457 .{ .kind = .id_result_type, .quantifier = .required },
12458 .{ .kind = .id_result, .quantifier = .required },
12459 .{ .kind = .id_ref, .quantifier = .required },
12460 .{ .kind = .id_scope, .quantifier = .required },
12461 .{ .kind = .id_memory_semantics, .quantifier = .required },
12462 .{ .kind = .id_ref, .quantifier = .required },
12463 },
12464 },
12465 .{
12466 .name = "OpAssumeTrueKHR",
12467 .opcode = 5630,
12468 .operands = &.{
12469 .{ .kind = .id_ref, .quantifier = .required },
12470 },
12471 },
12472 .{
12473 .name = "OpExpectKHR",
12474 .opcode = 5631,
12475 .operands = &.{
12476 .{ .kind = .id_result_type, .quantifier = .required },
12477 .{ .kind = .id_result, .quantifier = .required },
12478 .{ .kind = .id_ref, .quantifier = .required },
12479 .{ .kind = .id_ref, .quantifier = .required },
12480 },
12481 },
12482 .{
12483 .name = "OpDecorateString",
12484 .opcode = 5632,
12485 .operands = &.{
12486 .{ .kind = .id_ref, .quantifier = .required },
12487 .{ .kind = .decoration, .quantifier = .required },
12488 },
12489 },
12490 .{
12491 .name = "OpMemberDecorateString",
12492 .opcode = 5633,
12493 .operands = &.{
12494 .{ .kind = .id_ref, .quantifier = .required },
12495 .{ .kind = .literal_integer, .quantifier = .required },
12496 .{ .kind = .decoration, .quantifier = .required },
12497 },
12498 },
12499 .{
12500 .name = "OpVmeImageINTEL",
12501 .opcode = 5699,
12502 .operands = &.{
12503 .{ .kind = .id_result_type, .quantifier = .required },
12504 .{ .kind = .id_result, .quantifier = .required },
12505 .{ .kind = .id_ref, .quantifier = .required },
12506 .{ .kind = .id_ref, .quantifier = .required },
12507 },
12508 },
12509 .{
12510 .name = "OpTypeVmeImageINTEL",
12511 .opcode = 5700,
12512 .operands = &.{
12513 .{ .kind = .id_result, .quantifier = .required },
12514 .{ .kind = .id_ref, .quantifier = .required },
12515 },
12516 },
12517 .{
12518 .name = "OpTypeAvcImePayloadINTEL",
12519 .opcode = 5701,
12520 .operands = &.{
12521 .{ .kind = .id_result, .quantifier = .required },
12522 },
12523 },
12524 .{
12525 .name = "OpTypeAvcRefPayloadINTEL",
12526 .opcode = 5702,
12527 .operands = &.{
12528 .{ .kind = .id_result, .quantifier = .required },
12529 },
12530 },
12531 .{
12532 .name = "OpTypeAvcSicPayloadINTEL",
12533 .opcode = 5703,
12534 .operands = &.{
12535 .{ .kind = .id_result, .quantifier = .required },
12536 },
12537 },
12538 .{
12539 .name = "OpTypeAvcMcePayloadINTEL",
12540 .opcode = 5704,
12541 .operands = &.{
12542 .{ .kind = .id_result, .quantifier = .required },
12543 },
12544 },
12545 .{
12546 .name = "OpTypeAvcMceResultINTEL",
12547 .opcode = 5705,
12548 .operands = &.{
12549 .{ .kind = .id_result, .quantifier = .required },
12550 },
12551 },
12552 .{
12553 .name = "OpTypeAvcImeResultINTEL",
12554 .opcode = 5706,
12555 .operands = &.{
12556 .{ .kind = .id_result, .quantifier = .required },
12557 },
12558 },
12559 .{
12560 .name = "OpTypeAvcImeResultSingleReferenceStreamoutINTEL",
12561 .opcode = 5707,
12562 .operands = &.{
12563 .{ .kind = .id_result, .quantifier = .required },
12564 },
12565 },
12566 .{
12567 .name = "OpTypeAvcImeResultDualReferenceStreamoutINTEL",
12568 .opcode = 5708,
12569 .operands = &.{
12570 .{ .kind = .id_result, .quantifier = .required },
12571 },
12572 },
12573 .{
12574 .name = "OpTypeAvcImeSingleReferenceStreaminINTEL",
12575 .opcode = 5709,
12576 .operands = &.{
12577 .{ .kind = .id_result, .quantifier = .required },
12578 },
12579 },
12580 .{
12581 .name = "OpTypeAvcImeDualReferenceStreaminINTEL",
12582 .opcode = 5710,
12583 .operands = &.{
12584 .{ .kind = .id_result, .quantifier = .required },
12585 },
12586 },
12587 .{
12588 .name = "OpTypeAvcRefResultINTEL",
12589 .opcode = 5711,
12590 .operands = &.{
12591 .{ .kind = .id_result, .quantifier = .required },
12592 },
12593 },
12594 .{
12595 .name = "OpTypeAvcSicResultINTEL",
12596 .opcode = 5712,
12597 .operands = &.{
12598 .{ .kind = .id_result, .quantifier = .required },
12599 },
12600 },
12601 .{
12602 .name = "OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL",
12603 .opcode = 5713,
12604 .operands = &.{
12605 .{ .kind = .id_result_type, .quantifier = .required },
12606 .{ .kind = .id_result, .quantifier = .required },
12607 .{ .kind = .id_ref, .quantifier = .required },
12608 .{ .kind = .id_ref, .quantifier = .required },
12609 },
12610 },
12611 .{
12612 .name = "OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL",
12613 .opcode = 5714,
12614 .operands = &.{
12615 .{ .kind = .id_result_type, .quantifier = .required },
12616 .{ .kind = .id_result, .quantifier = .required },
12617 .{ .kind = .id_ref, .quantifier = .required },
12618 .{ .kind = .id_ref, .quantifier = .required },
12619 },
12620 },
12621 .{
12622 .name = "OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL",
12623 .opcode = 5715,
12624 .operands = &.{
12625 .{ .kind = .id_result_type, .quantifier = .required },
12626 .{ .kind = .id_result, .quantifier = .required },
12627 .{ .kind = .id_ref, .quantifier = .required },
12628 .{ .kind = .id_ref, .quantifier = .required },
12629 },
12630 },
12631 .{
12632 .name = "OpSubgroupAvcMceSetInterShapePenaltyINTEL",
12633 .opcode = 5716,
12634 .operands = &.{
12635 .{ .kind = .id_result_type, .quantifier = .required },
12636 .{ .kind = .id_result, .quantifier = .required },
12637 .{ .kind = .id_ref, .quantifier = .required },
12638 .{ .kind = .id_ref, .quantifier = .required },
12639 },
12640 },
12641 .{
12642 .name = "OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL",
12643 .opcode = 5717,
12644 .operands = &.{
12645 .{ .kind = .id_result_type, .quantifier = .required },
12646 .{ .kind = .id_result, .quantifier = .required },
12647 .{ .kind = .id_ref, .quantifier = .required },
12648 .{ .kind = .id_ref, .quantifier = .required },
12649 },
12650 },
12651 .{
12652 .name = "OpSubgroupAvcMceSetInterDirectionPenaltyINTEL",
12653 .opcode = 5718,
12654 .operands = &.{
12655 .{ .kind = .id_result_type, .quantifier = .required },
12656 .{ .kind = .id_result, .quantifier = .required },
12657 .{ .kind = .id_ref, .quantifier = .required },
12658 .{ .kind = .id_ref, .quantifier = .required },
12659 },
12660 },
12661 .{
12662 .name = "OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL",
12663 .opcode = 5719,
12664 .operands = &.{
12665 .{ .kind = .id_result_type, .quantifier = .required },
12666 .{ .kind = .id_result, .quantifier = .required },
12667 .{ .kind = .id_ref, .quantifier = .required },
12668 .{ .kind = .id_ref, .quantifier = .required },
12669 },
12670 },
12671 .{
12672 .name = "OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL",
12673 .opcode = 5720,
12674 .operands = &.{
12675 .{ .kind = .id_result_type, .quantifier = .required },
12676 .{ .kind = .id_result, .quantifier = .required },
12677 .{ .kind = .id_ref, .quantifier = .required },
12678 .{ .kind = .id_ref, .quantifier = .required },
12679 },
12680 },
12681 .{
12682 .name = "OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL",
12683 .opcode = 5721,
12684 .operands = &.{
12685 .{ .kind = .id_result_type, .quantifier = .required },
12686 .{ .kind = .id_result, .quantifier = .required },
12687 },
12688 },
12689 .{
12690 .name = "OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL",
12691 .opcode = 5722,
12692 .operands = &.{
12693 .{ .kind = .id_result_type, .quantifier = .required },
12694 .{ .kind = .id_result, .quantifier = .required },
12695 },
12696 },
12697 .{
12698 .name = "OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL",
12699 .opcode = 5723,
12700 .operands = &.{
12701 .{ .kind = .id_result_type, .quantifier = .required },
12702 .{ .kind = .id_result, .quantifier = .required },
12703 },
12704 },
12705 .{
12706 .name = "OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL",
12707 .opcode = 5724,
12708 .operands = &.{
12709 .{ .kind = .id_result_type, .quantifier = .required },
12710 .{ .kind = .id_result, .quantifier = .required },
12711 .{ .kind = .id_ref, .quantifier = .required },
12712 .{ .kind = .id_ref, .quantifier = .required },
12713 .{ .kind = .id_ref, .quantifier = .required },
12714 .{ .kind = .id_ref, .quantifier = .required },
12715 },
12716 },
12717 .{
12718 .name = "OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL",
12719 .opcode = 5725,
12720 .operands = &.{
12721 .{ .kind = .id_result_type, .quantifier = .required },
12722 .{ .kind = .id_result, .quantifier = .required },
12723 .{ .kind = .id_ref, .quantifier = .required },
12724 .{ .kind = .id_ref, .quantifier = .required },
12725 },
12726 },
12727 .{
12728 .name = "OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL",
12729 .opcode = 5726,
12730 .operands = &.{
12731 .{ .kind = .id_result_type, .quantifier = .required },
12732 .{ .kind = .id_result, .quantifier = .required },
12733 },
12734 },
12735 .{
12736 .name = "OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL",
12737 .opcode = 5727,
12738 .operands = &.{
12739 .{ .kind = .id_result_type, .quantifier = .required },
12740 .{ .kind = .id_result, .quantifier = .required },
12741 },
12742 },
12743 .{
12744 .name = "OpSubgroupAvcMceSetAcOnlyHaarINTEL",
12745 .opcode = 5728,
12746 .operands = &.{
12747 .{ .kind = .id_result_type, .quantifier = .required },
12748 .{ .kind = .id_result, .quantifier = .required },
12749 .{ .kind = .id_ref, .quantifier = .required },
12750 },
12751 },
12752 .{
12753 .name = "OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL",
12754 .opcode = 5729,
12755 .operands = &.{
12756 .{ .kind = .id_result_type, .quantifier = .required },
12757 .{ .kind = .id_result, .quantifier = .required },
12758 .{ .kind = .id_ref, .quantifier = .required },
12759 .{ .kind = .id_ref, .quantifier = .required },
12760 },
12761 },
12762 .{
12763 .name = "OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL",
12764 .opcode = 5730,
12765 .operands = &.{
12766 .{ .kind = .id_result_type, .quantifier = .required },
12767 .{ .kind = .id_result, .quantifier = .required },
12768 .{ .kind = .id_ref, .quantifier = .required },
12769 .{ .kind = .id_ref, .quantifier = .required },
12770 },
12771 },
12772 .{
12773 .name = "OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL",
12774 .opcode = 5731,
12775 .operands = &.{
12776 .{ .kind = .id_result_type, .quantifier = .required },
12777 .{ .kind = .id_result, .quantifier = .required },
12778 .{ .kind = .id_ref, .quantifier = .required },
12779 .{ .kind = .id_ref, .quantifier = .required },
12780 .{ .kind = .id_ref, .quantifier = .required },
12781 },
12782 },
12783 .{
12784 .name = "OpSubgroupAvcMceConvertToImePayloadINTEL",
12785 .opcode = 5732,
12786 .operands = &.{
12787 .{ .kind = .id_result_type, .quantifier = .required },
12788 .{ .kind = .id_result, .quantifier = .required },
12789 .{ .kind = .id_ref, .quantifier = .required },
12790 },
12791 },
12792 .{
12793 .name = "OpSubgroupAvcMceConvertToImeResultINTEL",
12794 .opcode = 5733,
12795 .operands = &.{
12796 .{ .kind = .id_result_type, .quantifier = .required },
12797 .{ .kind = .id_result, .quantifier = .required },
12798 .{ .kind = .id_ref, .quantifier = .required },
12799 },
12800 },
12801 .{
12802 .name = "OpSubgroupAvcMceConvertToRefPayloadINTEL",
12803 .opcode = 5734,
12804 .operands = &.{
12805 .{ .kind = .id_result_type, .quantifier = .required },
12806 .{ .kind = .id_result, .quantifier = .required },
12807 .{ .kind = .id_ref, .quantifier = .required },
12808 },
12809 },
12810 .{
12811 .name = "OpSubgroupAvcMceConvertToRefResultINTEL",
12812 .opcode = 5735,
12813 .operands = &.{
12814 .{ .kind = .id_result_type, .quantifier = .required },
12815 .{ .kind = .id_result, .quantifier = .required },
12816 .{ .kind = .id_ref, .quantifier = .required },
12817 },
12818 },
12819 .{
12820 .name = "OpSubgroupAvcMceConvertToSicPayloadINTEL",
12821 .opcode = 5736,
12822 .operands = &.{
12823 .{ .kind = .id_result_type, .quantifier = .required },
12824 .{ .kind = .id_result, .quantifier = .required },
12825 .{ .kind = .id_ref, .quantifier = .required },
12826 },
12827 },
12828 .{
12829 .name = "OpSubgroupAvcMceConvertToSicResultINTEL",
12830 .opcode = 5737,
12831 .operands = &.{
12832 .{ .kind = .id_result_type, .quantifier = .required },
12833 .{ .kind = .id_result, .quantifier = .required },
12834 .{ .kind = .id_ref, .quantifier = .required },
12835 },
12836 },
12837 .{
12838 .name = "OpSubgroupAvcMceGetMotionVectorsINTEL",
12839 .opcode = 5738,
12840 .operands = &.{
12841 .{ .kind = .id_result_type, .quantifier = .required },
12842 .{ .kind = .id_result, .quantifier = .required },
12843 .{ .kind = .id_ref, .quantifier = .required },
12844 },
12845 },
12846 .{
12847 .name = "OpSubgroupAvcMceGetInterDistortionsINTEL",
12848 .opcode = 5739,
12849 .operands = &.{
12850 .{ .kind = .id_result_type, .quantifier = .required },
12851 .{ .kind = .id_result, .quantifier = .required },
12852 .{ .kind = .id_ref, .quantifier = .required },
12853 },
12854 },
12855 .{
12856 .name = "OpSubgroupAvcMceGetBestInterDistortionsINTEL",
12857 .opcode = 5740,
12858 .operands = &.{
12859 .{ .kind = .id_result_type, .quantifier = .required },
12860 .{ .kind = .id_result, .quantifier = .required },
12861 .{ .kind = .id_ref, .quantifier = .required },
12862 },
12863 },
12864 .{
12865 .name = "OpSubgroupAvcMceGetInterMajorShapeINTEL",
12866 .opcode = 5741,
12867 .operands = &.{
12868 .{ .kind = .id_result_type, .quantifier = .required },
12869 .{ .kind = .id_result, .quantifier = .required },
12870 .{ .kind = .id_ref, .quantifier = .required },
12871 },
12872 },
12873 .{
12874 .name = "OpSubgroupAvcMceGetInterMinorShapeINTEL",
12875 .opcode = 5742,
12876 .operands = &.{
12877 .{ .kind = .id_result_type, .quantifier = .required },
12878 .{ .kind = .id_result, .quantifier = .required },
12879 .{ .kind = .id_ref, .quantifier = .required },
12880 },
12881 },
12882 .{
12883 .name = "OpSubgroupAvcMceGetInterDirectionsINTEL",
12884 .opcode = 5743,
12885 .operands = &.{
12886 .{ .kind = .id_result_type, .quantifier = .required },
12887 .{ .kind = .id_result, .quantifier = .required },
12888 .{ .kind = .id_ref, .quantifier = .required },
12889 },
12890 },
12891 .{
12892 .name = "OpSubgroupAvcMceGetInterMotionVectorCountINTEL",
12893 .opcode = 5744,
12894 .operands = &.{
12895 .{ .kind = .id_result_type, .quantifier = .required },
12896 .{ .kind = .id_result, .quantifier = .required },
12897 .{ .kind = .id_ref, .quantifier = .required },
12898 },
12899 },
12900 .{
12901 .name = "OpSubgroupAvcMceGetInterReferenceIdsINTEL",
12902 .opcode = 5745,
12903 .operands = &.{
12904 .{ .kind = .id_result_type, .quantifier = .required },
12905 .{ .kind = .id_result, .quantifier = .required },
12906 .{ .kind = .id_ref, .quantifier = .required },
12907 },
12908 },
12909 .{
12910 .name = "OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL",
12911 .opcode = 5746,
12912 .operands = &.{
12913 .{ .kind = .id_result_type, .quantifier = .required },
12914 .{ .kind = .id_result, .quantifier = .required },
12915 .{ .kind = .id_ref, .quantifier = .required },
12916 .{ .kind = .id_ref, .quantifier = .required },
12917 .{ .kind = .id_ref, .quantifier = .required },
12918 },
12919 },
12920 .{
12921 .name = "OpSubgroupAvcImeInitializeINTEL",
12922 .opcode = 5747,
12923 .operands = &.{
12924 .{ .kind = .id_result_type, .quantifier = .required },
12925 .{ .kind = .id_result, .quantifier = .required },
12926 .{ .kind = .id_ref, .quantifier = .required },
12927 .{ .kind = .id_ref, .quantifier = .required },
12928 .{ .kind = .id_ref, .quantifier = .required },
12929 },
12930 },
12931 .{
12932 .name = "OpSubgroupAvcImeSetSingleReferenceINTEL",
12933 .opcode = 5748,
12934 .operands = &.{
12935 .{ .kind = .id_result_type, .quantifier = .required },
12936 .{ .kind = .id_result, .quantifier = .required },
12937 .{ .kind = .id_ref, .quantifier = .required },
12938 .{ .kind = .id_ref, .quantifier = .required },
12939 .{ .kind = .id_ref, .quantifier = .required },
12940 },
12941 },
12942 .{
12943 .name = "OpSubgroupAvcImeSetDualReferenceINTEL",
12944 .opcode = 5749,
12945 .operands = &.{
12946 .{ .kind = .id_result_type, .quantifier = .required },
12947 .{ .kind = .id_result, .quantifier = .required },
12948 .{ .kind = .id_ref, .quantifier = .required },
12949 .{ .kind = .id_ref, .quantifier = .required },
12950 .{ .kind = .id_ref, .quantifier = .required },
12951 .{ .kind = .id_ref, .quantifier = .required },
12952 },
12953 },
12954 .{
12955 .name = "OpSubgroupAvcImeRefWindowSizeINTEL",
12956 .opcode = 5750,
12957 .operands = &.{
12958 .{ .kind = .id_result_type, .quantifier = .required },
12959 .{ .kind = .id_result, .quantifier = .required },
12960 .{ .kind = .id_ref, .quantifier = .required },
12961 .{ .kind = .id_ref, .quantifier = .required },
12962 },
12963 },
12964 .{
12965 .name = "OpSubgroupAvcImeAdjustRefOffsetINTEL",
12966 .opcode = 5751,
12967 .operands = &.{
12968 .{ .kind = .id_result_type, .quantifier = .required },
12969 .{ .kind = .id_result, .quantifier = .required },
12970 .{ .kind = .id_ref, .quantifier = .required },
12971 .{ .kind = .id_ref, .quantifier = .required },
12972 .{ .kind = .id_ref, .quantifier = .required },
12973 .{ .kind = .id_ref, .quantifier = .required },
12974 },
12975 },
12976 .{
12977 .name = "OpSubgroupAvcImeConvertToMcePayloadINTEL",
12978 .opcode = 5752,
12979 .operands = &.{
12980 .{ .kind = .id_result_type, .quantifier = .required },
12981 .{ .kind = .id_result, .quantifier = .required },
12982 .{ .kind = .id_ref, .quantifier = .required },
12983 },
12984 },
12985 .{
12986 .name = "OpSubgroupAvcImeSetMaxMotionVectorCountINTEL",
12987 .opcode = 5753,
12988 .operands = &.{
12989 .{ .kind = .id_result_type, .quantifier = .required },
12990 .{ .kind = .id_result, .quantifier = .required },
12991 .{ .kind = .id_ref, .quantifier = .required },
12992 .{ .kind = .id_ref, .quantifier = .required },
12993 },
12994 },
12995 .{
12996 .name = "OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL",
12997 .opcode = 5754,
12998 .operands = &.{
12999 .{ .kind = .id_result_type, .quantifier = .required },
13000 .{ .kind = .id_result, .quantifier = .required },
13001 .{ .kind = .id_ref, .quantifier = .required },
13002 },
13003 },
13004 .{
13005 .name = "OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL",
13006 .opcode = 5755,
13007 .operands = &.{
13008 .{ .kind = .id_result_type, .quantifier = .required },
13009 .{ .kind = .id_result, .quantifier = .required },
13010 .{ .kind = .id_ref, .quantifier = .required },
13011 .{ .kind = .id_ref, .quantifier = .required },
13012 },
13013 },
13014 .{
13015 .name = "OpSubgroupAvcImeSetWeightedSadINTEL",
13016 .opcode = 5756,
13017 .operands = &.{
13018 .{ .kind = .id_result_type, .quantifier = .required },
13019 .{ .kind = .id_result, .quantifier = .required },
13020 .{ .kind = .id_ref, .quantifier = .required },
13021 .{ .kind = .id_ref, .quantifier = .required },
13022 },
13023 },
13024 .{
13025 .name = "OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL",
13026 .opcode = 5757,
13027 .operands = &.{
13028 .{ .kind = .id_result_type, .quantifier = .required },
13029 .{ .kind = .id_result, .quantifier = .required },
13030 .{ .kind = .id_ref, .quantifier = .required },
13031 .{ .kind = .id_ref, .quantifier = .required },
13032 .{ .kind = .id_ref, .quantifier = .required },
13033 },
13034 },
13035 .{
13036 .name = "OpSubgroupAvcImeEvaluateWithDualReferenceINTEL",
13037 .opcode = 5758,
13038 .operands = &.{
13039 .{ .kind = .id_result_type, .quantifier = .required },
13040 .{ .kind = .id_result, .quantifier = .required },
13041 .{ .kind = .id_ref, .quantifier = .required },
13042 .{ .kind = .id_ref, .quantifier = .required },
13043 .{ .kind = .id_ref, .quantifier = .required },
13044 .{ .kind = .id_ref, .quantifier = .required },
13045 },
13046 },
13047 .{
13048 .name = "OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL",
13049 .opcode = 5759,
13050 .operands = &.{
13051 .{ .kind = .id_result_type, .quantifier = .required },
13052 .{ .kind = .id_result, .quantifier = .required },
13053 .{ .kind = .id_ref, .quantifier = .required },
13054 .{ .kind = .id_ref, .quantifier = .required },
13055 .{ .kind = .id_ref, .quantifier = .required },
13056 .{ .kind = .id_ref, .quantifier = .required },
13057 },
13058 },
13059 .{
13060 .name = "OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL",
13061 .opcode = 5760,
13062 .operands = &.{
13063 .{ .kind = .id_result_type, .quantifier = .required },
13064 .{ .kind = .id_result, .quantifier = .required },
13065 .{ .kind = .id_ref, .quantifier = .required },
13066 .{ .kind = .id_ref, .quantifier = .required },
13067 .{ .kind = .id_ref, .quantifier = .required },
13068 .{ .kind = .id_ref, .quantifier = .required },
13069 .{ .kind = .id_ref, .quantifier = .required },
13070 },
13071 },
13072 .{
13073 .name = "OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL",
13074 .opcode = 5761,
13075 .operands = &.{
13076 .{ .kind = .id_result_type, .quantifier = .required },
13077 .{ .kind = .id_result, .quantifier = .required },
13078 .{ .kind = .id_ref, .quantifier = .required },
13079 .{ .kind = .id_ref, .quantifier = .required },
13080 .{ .kind = .id_ref, .quantifier = .required },
13081 },
13082 },
13083 .{
13084 .name = "OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL",
13085 .opcode = 5762,
13086 .operands = &.{
13087 .{ .kind = .id_result_type, .quantifier = .required },
13088 .{ .kind = .id_result, .quantifier = .required },
13089 .{ .kind = .id_ref, .quantifier = .required },
13090 .{ .kind = .id_ref, .quantifier = .required },
13091 .{ .kind = .id_ref, .quantifier = .required },
13092 .{ .kind = .id_ref, .quantifier = .required },
13093 },
13094 },
13095 .{
13096 .name = "OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL",
13097 .opcode = 5763,
13098 .operands = &.{
13099 .{ .kind = .id_result_type, .quantifier = .required },
13100 .{ .kind = .id_result, .quantifier = .required },
13101 .{ .kind = .id_ref, .quantifier = .required },
13102 .{ .kind = .id_ref, .quantifier = .required },
13103 .{ .kind = .id_ref, .quantifier = .required },
13104 .{ .kind = .id_ref, .quantifier = .required },
13105 },
13106 },
13107 .{
13108 .name = "OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL",
13109 .opcode = 5764,
13110 .operands = &.{
13111 .{ .kind = .id_result_type, .quantifier = .required },
13112 .{ .kind = .id_result, .quantifier = .required },
13113 .{ .kind = .id_ref, .quantifier = .required },
13114 .{ .kind = .id_ref, .quantifier = .required },
13115 .{ .kind = .id_ref, .quantifier = .required },
13116 .{ .kind = .id_ref, .quantifier = .required },
13117 .{ .kind = .id_ref, .quantifier = .required },
13118 },
13119 },
13120 .{
13121 .name = "OpSubgroupAvcImeConvertToMceResultINTEL",
13122 .opcode = 5765,
13123 .operands = &.{
13124 .{ .kind = .id_result_type, .quantifier = .required },
13125 .{ .kind = .id_result, .quantifier = .required },
13126 .{ .kind = .id_ref, .quantifier = .required },
13127 },
13128 },
13129 .{
13130 .name = "OpSubgroupAvcImeGetSingleReferenceStreaminINTEL",
13131 .opcode = 5766,
13132 .operands = &.{
13133 .{ .kind = .id_result_type, .quantifier = .required },
13134 .{ .kind = .id_result, .quantifier = .required },
13135 .{ .kind = .id_ref, .quantifier = .required },
13136 },
13137 },
13138 .{
13139 .name = "OpSubgroupAvcImeGetDualReferenceStreaminINTEL",
13140 .opcode = 5767,
13141 .operands = &.{
13142 .{ .kind = .id_result_type, .quantifier = .required },
13143 .{ .kind = .id_result, .quantifier = .required },
13144 .{ .kind = .id_ref, .quantifier = .required },
13145 },
13146 },
13147 .{
13148 .name = "OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL",
13149 .opcode = 5768,
13150 .operands = &.{
13151 .{ .kind = .id_result_type, .quantifier = .required },
13152 .{ .kind = .id_result, .quantifier = .required },
13153 .{ .kind = .id_ref, .quantifier = .required },
13154 },
13155 },
13156 .{
13157 .name = "OpSubgroupAvcImeStripDualReferenceStreamoutINTEL",
13158 .opcode = 5769,
13159 .operands = &.{
13160 .{ .kind = .id_result_type, .quantifier = .required },
13161 .{ .kind = .id_result, .quantifier = .required },
13162 .{ .kind = .id_ref, .quantifier = .required },
13163 },
13164 },
13165 .{
13166 .name = "OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL",
13167 .opcode = 5770,
13168 .operands = &.{
13169 .{ .kind = .id_result_type, .quantifier = .required },
13170 .{ .kind = .id_result, .quantifier = .required },
13171 .{ .kind = .id_ref, .quantifier = .required },
13172 .{ .kind = .id_ref, .quantifier = .required },
13173 },
13174 },
13175 .{
13176 .name = "OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL",
13177 .opcode = 5771,
13178 .operands = &.{
13179 .{ .kind = .id_result_type, .quantifier = .required },
13180 .{ .kind = .id_result, .quantifier = .required },
13181 .{ .kind = .id_ref, .quantifier = .required },
13182 .{ .kind = .id_ref, .quantifier = .required },
13183 },
13184 },
13185 .{
13186 .name = "OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL",
13187 .opcode = 5772,
13188 .operands = &.{
13189 .{ .kind = .id_result_type, .quantifier = .required },
13190 .{ .kind = .id_result, .quantifier = .required },
13191 .{ .kind = .id_ref, .quantifier = .required },
13192 .{ .kind = .id_ref, .quantifier = .required },
13193 },
13194 },
13195 .{
13196 .name = "OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL",
13197 .opcode = 5773,
13198 .operands = &.{
13199 .{ .kind = .id_result_type, .quantifier = .required },
13200 .{ .kind = .id_result, .quantifier = .required },
13201 .{ .kind = .id_ref, .quantifier = .required },
13202 .{ .kind = .id_ref, .quantifier = .required },
13203 .{ .kind = .id_ref, .quantifier = .required },
13204 },
13205 },
13206 .{
13207 .name = "OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL",
13208 .opcode = 5774,
13209 .operands = &.{
13210 .{ .kind = .id_result_type, .quantifier = .required },
13211 .{ .kind = .id_result, .quantifier = .required },
13212 .{ .kind = .id_ref, .quantifier = .required },
13213 .{ .kind = .id_ref, .quantifier = .required },
13214 .{ .kind = .id_ref, .quantifier = .required },
13215 },
13216 },
13217 .{
13218 .name = "OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL",
13219 .opcode = 5775,
13220 .operands = &.{
13221 .{ .kind = .id_result_type, .quantifier = .required },
13222 .{ .kind = .id_result, .quantifier = .required },
13223 .{ .kind = .id_ref, .quantifier = .required },
13224 .{ .kind = .id_ref, .quantifier = .required },
13225 .{ .kind = .id_ref, .quantifier = .required },
13226 },
13227 },
13228 .{
13229 .name = "OpSubgroupAvcImeGetBorderReachedINTEL",
13230 .opcode = 5776,
13231 .operands = &.{
13232 .{ .kind = .id_result_type, .quantifier = .required },
13233 .{ .kind = .id_result, .quantifier = .required },
13234 .{ .kind = .id_ref, .quantifier = .required },
13235 .{ .kind = .id_ref, .quantifier = .required },
13236 },
13237 },
13238 .{
13239 .name = "OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL",
13240 .opcode = 5777,
13241 .operands = &.{
13242 .{ .kind = .id_result_type, .quantifier = .required },
13243 .{ .kind = .id_result, .quantifier = .required },
13244 .{ .kind = .id_ref, .quantifier = .required },
13245 },
13246 },
13247 .{
13248 .name = "OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL",
13249 .opcode = 5778,
13250 .operands = &.{
13251 .{ .kind = .id_result_type, .quantifier = .required },
13252 .{ .kind = .id_result, .quantifier = .required },
13253 .{ .kind = .id_ref, .quantifier = .required },
13254 },
13255 },
13256 .{
13257 .name = "OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL",
13258 .opcode = 5779,
13259 .operands = &.{
13260 .{ .kind = .id_result_type, .quantifier = .required },
13261 .{ .kind = .id_result, .quantifier = .required },
13262 .{ .kind = .id_ref, .quantifier = .required },
13263 },
13264 },
13265 .{
13266 .name = "OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL",
13267 .opcode = 5780,
13268 .operands = &.{
13269 .{ .kind = .id_result_type, .quantifier = .required },
13270 .{ .kind = .id_result, .quantifier = .required },
13271 .{ .kind = .id_ref, .quantifier = .required },
13272 },
13273 },
13274 .{
13275 .name = "OpSubgroupAvcFmeInitializeINTEL",
13276 .opcode = 5781,
13277 .operands = &.{
13278 .{ .kind = .id_result_type, .quantifier = .required },
13279 .{ .kind = .id_result, .quantifier = .required },
13280 .{ .kind = .id_ref, .quantifier = .required },
13281 .{ .kind = .id_ref, .quantifier = .required },
13282 .{ .kind = .id_ref, .quantifier = .required },
13283 .{ .kind = .id_ref, .quantifier = .required },
13284 .{ .kind = .id_ref, .quantifier = .required },
13285 .{ .kind = .id_ref, .quantifier = .required },
13286 .{ .kind = .id_ref, .quantifier = .required },
13287 },
13288 },
13289 .{
13290 .name = "OpSubgroupAvcBmeInitializeINTEL",
13291 .opcode = 5782,
13292 .operands = &.{
13293 .{ .kind = .id_result_type, .quantifier = .required },
13294 .{ .kind = .id_result, .quantifier = .required },
13295 .{ .kind = .id_ref, .quantifier = .required },
13296 .{ .kind = .id_ref, .quantifier = .required },
13297 .{ .kind = .id_ref, .quantifier = .required },
13298 .{ .kind = .id_ref, .quantifier = .required },
13299 .{ .kind = .id_ref, .quantifier = .required },
13300 .{ .kind = .id_ref, .quantifier = .required },
13301 .{ .kind = .id_ref, .quantifier = .required },
13302 .{ .kind = .id_ref, .quantifier = .required },
13303 },
13304 },
13305 .{
13306 .name = "OpSubgroupAvcRefConvertToMcePayloadINTEL",
13307 .opcode = 5783,
13308 .operands = &.{
13309 .{ .kind = .id_result_type, .quantifier = .required },
13310 .{ .kind = .id_result, .quantifier = .required },
13311 .{ .kind = .id_ref, .quantifier = .required },
13312 },
13313 },
13314 .{
13315 .name = "OpSubgroupAvcRefSetBidirectionalMixDisableINTEL",
13316 .opcode = 5784,
13317 .operands = &.{
13318 .{ .kind = .id_result_type, .quantifier = .required },
13319 .{ .kind = .id_result, .quantifier = .required },
13320 .{ .kind = .id_ref, .quantifier = .required },
13321 },
13322 },
13323 .{
13324 .name = "OpSubgroupAvcRefSetBilinearFilterEnableINTEL",
13325 .opcode = 5785,
13326 .operands = &.{
13327 .{ .kind = .id_result_type, .quantifier = .required },
13328 .{ .kind = .id_result, .quantifier = .required },
13329 .{ .kind = .id_ref, .quantifier = .required },
13330 },
13331 },
13332 .{
13333 .name = "OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL",
13334 .opcode = 5786,
13335 .operands = &.{
13336 .{ .kind = .id_result_type, .quantifier = .required },
13337 .{ .kind = .id_result, .quantifier = .required },
13338 .{ .kind = .id_ref, .quantifier = .required },
13339 .{ .kind = .id_ref, .quantifier = .required },
13340 .{ .kind = .id_ref, .quantifier = .required },
13341 },
13342 },
13343 .{
13344 .name = "OpSubgroupAvcRefEvaluateWithDualReferenceINTEL",
13345 .opcode = 5787,
13346 .operands = &.{
13347 .{ .kind = .id_result_type, .quantifier = .required },
13348 .{ .kind = .id_result, .quantifier = .required },
13349 .{ .kind = .id_ref, .quantifier = .required },
13350 .{ .kind = .id_ref, .quantifier = .required },
13351 .{ .kind = .id_ref, .quantifier = .required },
13352 .{ .kind = .id_ref, .quantifier = .required },
13353 },
13354 },
13355 .{
13356 .name = "OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL",
13357 .opcode = 5788,
13358 .operands = &.{
13359 .{ .kind = .id_result_type, .quantifier = .required },
13360 .{ .kind = .id_result, .quantifier = .required },
13361 .{ .kind = .id_ref, .quantifier = .required },
13362 .{ .kind = .id_ref, .quantifier = .required },
13363 .{ .kind = .id_ref, .quantifier = .required },
13364 },
13365 },
13366 .{
13367 .name = "OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL",
13368 .opcode = 5789,
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 .{ .kind = .id_ref, .quantifier = .required },
13375 .{ .kind = .id_ref, .quantifier = .required },
13376 },
13377 },
13378 .{
13379 .name = "OpSubgroupAvcRefConvertToMceResultINTEL",
13380 .opcode = 5790,
13381 .operands = &.{
13382 .{ .kind = .id_result_type, .quantifier = .required },
13383 .{ .kind = .id_result, .quantifier = .required },
13384 .{ .kind = .id_ref, .quantifier = .required },
13385 },
13386 },
13387 .{
13388 .name = "OpSubgroupAvcSicInitializeINTEL",
13389 .opcode = 5791,
13390 .operands = &.{
13391 .{ .kind = .id_result_type, .quantifier = .required },
13392 .{ .kind = .id_result, .quantifier = .required },
13393 .{ .kind = .id_ref, .quantifier = .required },
13394 },
13395 },
13396 .{
13397 .name = "OpSubgroupAvcSicConfigureSkcINTEL",
13398 .opcode = 5792,
13399 .operands = &.{
13400 .{ .kind = .id_result_type, .quantifier = .required },
13401 .{ .kind = .id_result, .quantifier = .required },
13402 .{ .kind = .id_ref, .quantifier = .required },
13403 .{ .kind = .id_ref, .quantifier = .required },
13404 .{ .kind = .id_ref, .quantifier = .required },
13405 .{ .kind = .id_ref, .quantifier = .required },
13406 .{ .kind = .id_ref, .quantifier = .required },
13407 .{ .kind = .id_ref, .quantifier = .required },
13408 },
13409 },
13410 .{
13411 .name = "OpSubgroupAvcSicConfigureIpeLumaINTEL",
13412 .opcode = 5793,
13413 .operands = &.{
13414 .{ .kind = .id_result_type, .quantifier = .required },
13415 .{ .kind = .id_result, .quantifier = .required },
13416 .{ .kind = .id_ref, .quantifier = .required },
13417 .{ .kind = .id_ref, .quantifier = .required },
13418 .{ .kind = .id_ref, .quantifier = .required },
13419 .{ .kind = .id_ref, .quantifier = .required },
13420 .{ .kind = .id_ref, .quantifier = .required },
13421 .{ .kind = .id_ref, .quantifier = .required },
13422 .{ .kind = .id_ref, .quantifier = .required },
13423 .{ .kind = .id_ref, .quantifier = .required },
13424 },
13425 },
13426 .{
13427 .name = "OpSubgroupAvcSicConfigureIpeLumaChromaINTEL",
13428 .opcode = 5794,
13429 .operands = &.{
13430 .{ .kind = .id_result_type, .quantifier = .required },
13431 .{ .kind = .id_result, .quantifier = .required },
13432 .{ .kind = .id_ref, .quantifier = .required },
13433 .{ .kind = .id_ref, .quantifier = .required },
13434 .{ .kind = .id_ref, .quantifier = .required },
13435 .{ .kind = .id_ref, .quantifier = .required },
13436 .{ .kind = .id_ref, .quantifier = .required },
13437 .{ .kind = .id_ref, .quantifier = .required },
13438 .{ .kind = .id_ref, .quantifier = .required },
13439 .{ .kind = .id_ref, .quantifier = .required },
13440 .{ .kind = .id_ref, .quantifier = .required },
13441 .{ .kind = .id_ref, .quantifier = .required },
13442 .{ .kind = .id_ref, .quantifier = .required },
13443 },
13444 },
13445 .{
13446 .name = "OpSubgroupAvcSicGetMotionVectorMaskINTEL",
13447 .opcode = 5795,
13448 .operands = &.{
13449 .{ .kind = .id_result_type, .quantifier = .required },
13450 .{ .kind = .id_result, .quantifier = .required },
13451 .{ .kind = .id_ref, .quantifier = .required },
13452 .{ .kind = .id_ref, .quantifier = .required },
13453 },
13454 },
13455 .{
13456 .name = "OpSubgroupAvcSicConvertToMcePayloadINTEL",
13457 .opcode = 5796,
13458 .operands = &.{
13459 .{ .kind = .id_result_type, .quantifier = .required },
13460 .{ .kind = .id_result, .quantifier = .required },
13461 .{ .kind = .id_ref, .quantifier = .required },
13462 },
13463 },
13464 .{
13465 .name = "OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL",
13466 .opcode = 5797,
13467 .operands = &.{
13468 .{ .kind = .id_result_type, .quantifier = .required },
13469 .{ .kind = .id_result, .quantifier = .required },
13470 .{ .kind = .id_ref, .quantifier = .required },
13471 .{ .kind = .id_ref, .quantifier = .required },
13472 },
13473 },
13474 .{
13475 .name = "OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL",
13476 .opcode = 5798,
13477 .operands = &.{
13478 .{ .kind = .id_result_type, .quantifier = .required },
13479 .{ .kind = .id_result, .quantifier = .required },
13480 .{ .kind = .id_ref, .quantifier = .required },
13481 .{ .kind = .id_ref, .quantifier = .required },
13482 .{ .kind = .id_ref, .quantifier = .required },
13483 .{ .kind = .id_ref, .quantifier = .required },
13484 },
13485 },
13486 .{
13487 .name = "OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL",
13488 .opcode = 5799,
13489 .operands = &.{
13490 .{ .kind = .id_result_type, .quantifier = .required },
13491 .{ .kind = .id_result, .quantifier = .required },
13492 .{ .kind = .id_ref, .quantifier = .required },
13493 .{ .kind = .id_ref, .quantifier = .required },
13494 },
13495 },
13496 .{
13497 .name = "OpSubgroupAvcSicSetBilinearFilterEnableINTEL",
13498 .opcode = 5800,
13499 .operands = &.{
13500 .{ .kind = .id_result_type, .quantifier = .required },
13501 .{ .kind = .id_result, .quantifier = .required },
13502 .{ .kind = .id_ref, .quantifier = .required },
13503 },
13504 },
13505 .{
13506 .name = "OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL",
13507 .opcode = 5801,
13508 .operands = &.{
13509 .{ .kind = .id_result_type, .quantifier = .required },
13510 .{ .kind = .id_result, .quantifier = .required },
13511 .{ .kind = .id_ref, .quantifier = .required },
13512 .{ .kind = .id_ref, .quantifier = .required },
13513 },
13514 },
13515 .{
13516 .name = "OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL",
13517 .opcode = 5802,
13518 .operands = &.{
13519 .{ .kind = .id_result_type, .quantifier = .required },
13520 .{ .kind = .id_result, .quantifier = .required },
13521 .{ .kind = .id_ref, .quantifier = .required },
13522 .{ .kind = .id_ref, .quantifier = .required },
13523 },
13524 },
13525 .{
13526 .name = "OpSubgroupAvcSicEvaluateIpeINTEL",
13527 .opcode = 5803,
13528 .operands = &.{
13529 .{ .kind = .id_result_type, .quantifier = .required },
13530 .{ .kind = .id_result, .quantifier = .required },
13531 .{ .kind = .id_ref, .quantifier = .required },
13532 .{ .kind = .id_ref, .quantifier = .required },
13533 },
13534 },
13535 .{
13536 .name = "OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL",
13537 .opcode = 5804,
13538 .operands = &.{
13539 .{ .kind = .id_result_type, .quantifier = .required },
13540 .{ .kind = .id_result, .quantifier = .required },
13541 .{ .kind = .id_ref, .quantifier = .required },
13542 .{ .kind = .id_ref, .quantifier = .required },
13543 .{ .kind = .id_ref, .quantifier = .required },
13544 },
13545 },
13546 .{
13547 .name = "OpSubgroupAvcSicEvaluateWithDualReferenceINTEL",
13548 .opcode = 5805,
13549 .operands = &.{
13550 .{ .kind = .id_result_type, .quantifier = .required },
13551 .{ .kind = .id_result, .quantifier = .required },
13552 .{ .kind = .id_ref, .quantifier = .required },
13553 .{ .kind = .id_ref, .quantifier = .required },
13554 .{ .kind = .id_ref, .quantifier = .required },
13555 .{ .kind = .id_ref, .quantifier = .required },
13556 },
13557 },
13558 .{
13559 .name = "OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL",
13560 .opcode = 5806,
13561 .operands = &.{
13562 .{ .kind = .id_result_type, .quantifier = .required },
13563 .{ .kind = .id_result, .quantifier = .required },
13564 .{ .kind = .id_ref, .quantifier = .required },
13565 .{ .kind = .id_ref, .quantifier = .required },
13566 .{ .kind = .id_ref, .quantifier = .required },
13567 },
13568 },
13569 .{
13570 .name = "OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL",
13571 .opcode = 5807,
13572 .operands = &.{
13573 .{ .kind = .id_result_type, .quantifier = .required },
13574 .{ .kind = .id_result, .quantifier = .required },
13575 .{ .kind = .id_ref, .quantifier = .required },
13576 .{ .kind = .id_ref, .quantifier = .required },
13577 .{ .kind = .id_ref, .quantifier = .required },
13578 .{ .kind = .id_ref, .quantifier = .required },
13579 },
13580 },
13581 .{
13582 .name = "OpSubgroupAvcSicConvertToMceResultINTEL",
13583 .opcode = 5808,
13584 .operands = &.{
13585 .{ .kind = .id_result_type, .quantifier = .required },
13586 .{ .kind = .id_result, .quantifier = .required },
13587 .{ .kind = .id_ref, .quantifier = .required },
13588 },
13589 },
13590 .{
13591 .name = "OpSubgroupAvcSicGetIpeLumaShapeINTEL",
13592 .opcode = 5809,
13593 .operands = &.{
13594 .{ .kind = .id_result_type, .quantifier = .required },
13595 .{ .kind = .id_result, .quantifier = .required },
13596 .{ .kind = .id_ref, .quantifier = .required },
13597 },
13598 },
13599 .{
13600 .name = "OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL",
13601 .opcode = 5810,
13602 .operands = &.{
13603 .{ .kind = .id_result_type, .quantifier = .required },
13604 .{ .kind = .id_result, .quantifier = .required },
13605 .{ .kind = .id_ref, .quantifier = .required },
13606 },
13607 },
13608 .{
13609 .name = "OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL",
13610 .opcode = 5811,
13611 .operands = &.{
13612 .{ .kind = .id_result_type, .quantifier = .required },
13613 .{ .kind = .id_result, .quantifier = .required },
13614 .{ .kind = .id_ref, .quantifier = .required },
13615 },
13616 },
13617 .{
13618 .name = "OpSubgroupAvcSicGetPackedIpeLumaModesINTEL",
13619 .opcode = 5812,
13620 .operands = &.{
13621 .{ .kind = .id_result_type, .quantifier = .required },
13622 .{ .kind = .id_result, .quantifier = .required },
13623 .{ .kind = .id_ref, .quantifier = .required },
13624 },
13625 },
13626 .{
13627 .name = "OpSubgroupAvcSicGetIpeChromaModeINTEL",
13628 .opcode = 5813,
13629 .operands = &.{
13630 .{ .kind = .id_result_type, .quantifier = .required },
13631 .{ .kind = .id_result, .quantifier = .required },
13632 .{ .kind = .id_ref, .quantifier = .required },
13633 },
13634 },
13635 .{
13636 .name = "OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL",
13637 .opcode = 5814,
13638 .operands = &.{
13639 .{ .kind = .id_result_type, .quantifier = .required },
13640 .{ .kind = .id_result, .quantifier = .required },
13641 .{ .kind = .id_ref, .quantifier = .required },
13642 },
13643 },
13644 .{
13645 .name = "OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL",
13646 .opcode = 5815,
13647 .operands = &.{
13648 .{ .kind = .id_result_type, .quantifier = .required },
13649 .{ .kind = .id_result, .quantifier = .required },
13650 .{ .kind = .id_ref, .quantifier = .required },
13651 },
13652 },
13653 .{
13654 .name = "OpSubgroupAvcSicGetInterRawSadsINTEL",
13655 .opcode = 5816,
13656 .operands = &.{
13657 .{ .kind = .id_result_type, .quantifier = .required },
13658 .{ .kind = .id_result, .quantifier = .required },
13659 .{ .kind = .id_ref, .quantifier = .required },
13660 },
13661 },
13662 .{
13663 .name = "OpVariableLengthArrayINTEL",
13664 .opcode = 5818,
13665 .operands = &.{
13666 .{ .kind = .id_result_type, .quantifier = .required },
13667 .{ .kind = .id_result, .quantifier = .required },
13668 .{ .kind = .id_ref, .quantifier = .required },
13669 },
13670 },
13671 .{
13672 .name = "OpSaveMemoryINTEL",
13673 .opcode = 5819,
13674 .operands = &.{
13675 .{ .kind = .id_result_type, .quantifier = .required },
13676 .{ .kind = .id_result, .quantifier = .required },
13677 },
13678 },
13679 .{
13680 .name = "OpRestoreMemoryINTEL",
13681 .opcode = 5820,
13682 .operands = &.{
13683 .{ .kind = .id_ref, .quantifier = .required },
13684 },
13685 },
13686 .{
13687 .name = "OpArbitraryFloatSinCosPiALTERA",
13688 .opcode = 5840,
13689 .operands = &.{
13690 .{ .kind = .id_result_type, .quantifier = .required },
13691 .{ .kind = .id_result, .quantifier = .required },
13692 .{ .kind = .id_ref, .quantifier = .required },
13693 .{ .kind = .literal_integer, .quantifier = .required },
13694 .{ .kind = .literal_integer, .quantifier = .required },
13695 .{ .kind = .literal_integer, .quantifier = .required },
13696 .{ .kind = .literal_integer, .quantifier = .required },
13697 .{ .kind = .literal_integer, .quantifier = .required },
13698 },
13699 },
13700 .{
13701 .name = "OpArbitraryFloatCastALTERA",
13702 .opcode = 5841,
13703 .operands = &.{
13704 .{ .kind = .id_result_type, .quantifier = .required },
13705 .{ .kind = .id_result, .quantifier = .required },
13706 .{ .kind = .id_ref, .quantifier = .required },
13707 .{ .kind = .literal_integer, .quantifier = .required },
13708 .{ .kind = .literal_integer, .quantifier = .required },
13709 .{ .kind = .literal_integer, .quantifier = .required },
13710 .{ .kind = .literal_integer, .quantifier = .required },
13711 .{ .kind = .literal_integer, .quantifier = .required },
13712 },
13713 },
13714 .{
13715 .name = "OpArbitraryFloatCastFromIntALTERA",
13716 .opcode = 5842,
13717 .operands = &.{
13718 .{ .kind = .id_result_type, .quantifier = .required },
13719 .{ .kind = .id_result, .quantifier = .required },
13720 .{ .kind = .id_ref, .quantifier = .required },
13721 .{ .kind = .literal_integer, .quantifier = .required },
13722 .{ .kind = .literal_integer, .quantifier = .required },
13723 .{ .kind = .literal_integer, .quantifier = .required },
13724 .{ .kind = .literal_integer, .quantifier = .required },
13725 .{ .kind = .literal_integer, .quantifier = .required },
13726 },
13727 },
13728 .{
13729 .name = "OpArbitraryFloatCastToIntALTERA",
13730 .opcode = 5843,
13731 .operands = &.{
13732 .{ .kind = .id_result_type, .quantifier = .required },
13733 .{ .kind = .id_result, .quantifier = .required },
13734 .{ .kind = .id_ref, .quantifier = .required },
13735 .{ .kind = .literal_integer, .quantifier = .required },
13736 .{ .kind = .literal_integer, .quantifier = .required },
13737 .{ .kind = .literal_integer, .quantifier = .required },
13738 .{ .kind = .literal_integer, .quantifier = .required },
13739 .{ .kind = .literal_integer, .quantifier = .required },
13740 },
13741 },
13742 .{
13743 .name = "OpArbitraryFloatAddALTERA",
13744 .opcode = 5846,
13745 .operands = &.{
13746 .{ .kind = .id_result_type, .quantifier = .required },
13747 .{ .kind = .id_result, .quantifier = .required },
13748 .{ .kind = .id_ref, .quantifier = .required },
13749 .{ .kind = .literal_integer, .quantifier = .required },
13750 .{ .kind = .id_ref, .quantifier = .required },
13751 .{ .kind = .literal_integer, .quantifier = .required },
13752 .{ .kind = .literal_integer, .quantifier = .required },
13753 .{ .kind = .literal_integer, .quantifier = .required },
13754 .{ .kind = .literal_integer, .quantifier = .required },
13755 .{ .kind = .literal_integer, .quantifier = .required },
13756 },
13757 },
13758 .{
13759 .name = "OpArbitraryFloatSubALTERA",
13760 .opcode = 5847,
13761 .operands = &.{
13762 .{ .kind = .id_result_type, .quantifier = .required },
13763 .{ .kind = .id_result, .quantifier = .required },
13764 .{ .kind = .id_ref, .quantifier = .required },
13765 .{ .kind = .literal_integer, .quantifier = .required },
13766 .{ .kind = .id_ref, .quantifier = .required },
13767 .{ .kind = .literal_integer, .quantifier = .required },
13768 .{ .kind = .literal_integer, .quantifier = .required },
13769 .{ .kind = .literal_integer, .quantifier = .required },
13770 .{ .kind = .literal_integer, .quantifier = .required },
13771 .{ .kind = .literal_integer, .quantifier = .required },
13772 },
13773 },
13774 .{
13775 .name = "OpArbitraryFloatMulALTERA",
13776 .opcode = 5848,
13777 .operands = &.{
13778 .{ .kind = .id_result_type, .quantifier = .required },
13779 .{ .kind = .id_result, .quantifier = .required },
13780 .{ .kind = .id_ref, .quantifier = .required },
13781 .{ .kind = .literal_integer, .quantifier = .required },
13782 .{ .kind = .id_ref, .quantifier = .required },
13783 .{ .kind = .literal_integer, .quantifier = .required },
13784 .{ .kind = .literal_integer, .quantifier = .required },
13785 .{ .kind = .literal_integer, .quantifier = .required },
13786 .{ .kind = .literal_integer, .quantifier = .required },
13787 .{ .kind = .literal_integer, .quantifier = .required },
13788 },
13789 },
13790 .{
13791 .name = "OpArbitraryFloatDivALTERA",
13792 .opcode = 5849,
13793 .operands = &.{
13794 .{ .kind = .id_result_type, .quantifier = .required },
13795 .{ .kind = .id_result, .quantifier = .required },
13796 .{ .kind = .id_ref, .quantifier = .required },
13797 .{ .kind = .literal_integer, .quantifier = .required },
13798 .{ .kind = .id_ref, .quantifier = .required },
13799 .{ .kind = .literal_integer, .quantifier = .required },
13800 .{ .kind = .literal_integer, .quantifier = .required },
13801 .{ .kind = .literal_integer, .quantifier = .required },
13802 .{ .kind = .literal_integer, .quantifier = .required },
13803 .{ .kind = .literal_integer, .quantifier = .required },
13804 },
13805 },
13806 .{
13807 .name = "OpArbitraryFloatGTALTERA",
13808 .opcode = 5850,
13809 .operands = &.{
13810 .{ .kind = .id_result_type, .quantifier = .required },
13811 .{ .kind = .id_result, .quantifier = .required },
13812 .{ .kind = .id_ref, .quantifier = .required },
13813 .{ .kind = .literal_integer, .quantifier = .required },
13814 .{ .kind = .id_ref, .quantifier = .required },
13815 .{ .kind = .literal_integer, .quantifier = .required },
13816 },
13817 },
13818 .{
13819 .name = "OpArbitraryFloatGEALTERA",
13820 .opcode = 5851,
13821 .operands = &.{
13822 .{ .kind = .id_result_type, .quantifier = .required },
13823 .{ .kind = .id_result, .quantifier = .required },
13824 .{ .kind = .id_ref, .quantifier = .required },
13825 .{ .kind = .literal_integer, .quantifier = .required },
13826 .{ .kind = .id_ref, .quantifier = .required },
13827 .{ .kind = .literal_integer, .quantifier = .required },
13828 },
13829 },
13830 .{
13831 .name = "OpArbitraryFloatLTALTERA",
13832 .opcode = 5852,
13833 .operands = &.{
13834 .{ .kind = .id_result_type, .quantifier = .required },
13835 .{ .kind = .id_result, .quantifier = .required },
13836 .{ .kind = .id_ref, .quantifier = .required },
13837 .{ .kind = .literal_integer, .quantifier = .required },
13838 .{ .kind = .id_ref, .quantifier = .required },
13839 .{ .kind = .literal_integer, .quantifier = .required },
13840 },
13841 },
13842 .{
13843 .name = "OpArbitraryFloatLEALTERA",
13844 .opcode = 5853,
13845 .operands = &.{
13846 .{ .kind = .id_result_type, .quantifier = .required },
13847 .{ .kind = .id_result, .quantifier = .required },
13848 .{ .kind = .id_ref, .quantifier = .required },
13849 .{ .kind = .literal_integer, .quantifier = .required },
13850 .{ .kind = .id_ref, .quantifier = .required },
13851 .{ .kind = .literal_integer, .quantifier = .required },
13852 },
13853 },
13854 .{
13855 .name = "OpArbitraryFloatEQALTERA",
13856 .opcode = 5854,
13857 .operands = &.{
13858 .{ .kind = .id_result_type, .quantifier = .required },
13859 .{ .kind = .id_result, .quantifier = .required },
13860 .{ .kind = .id_ref, .quantifier = .required },
13861 .{ .kind = .literal_integer, .quantifier = .required },
13862 .{ .kind = .id_ref, .quantifier = .required },
13863 .{ .kind = .literal_integer, .quantifier = .required },
13864 },
13865 },
13866 .{
13867 .name = "OpArbitraryFloatRecipALTERA",
13868 .opcode = 5855,
13869 .operands = &.{
13870 .{ .kind = .id_result_type, .quantifier = .required },
13871 .{ .kind = .id_result, .quantifier = .required },
13872 .{ .kind = .id_ref, .quantifier = .required },
13873 .{ .kind = .literal_integer, .quantifier = .required },
13874 .{ .kind = .literal_integer, .quantifier = .required },
13875 .{ .kind = .literal_integer, .quantifier = .required },
13876 .{ .kind = .literal_integer, .quantifier = .required },
13877 .{ .kind = .literal_integer, .quantifier = .required },
13878 },
13879 },
13880 .{
13881 .name = "OpArbitraryFloatRSqrtALTERA",
13882 .opcode = 5856,
13883 .operands = &.{
13884 .{ .kind = .id_result_type, .quantifier = .required },
13885 .{ .kind = .id_result, .quantifier = .required },
13886 .{ .kind = .id_ref, .quantifier = .required },
13887 .{ .kind = .literal_integer, .quantifier = .required },
13888 .{ .kind = .literal_integer, .quantifier = .required },
13889 .{ .kind = .literal_integer, .quantifier = .required },
13890 .{ .kind = .literal_integer, .quantifier = .required },
13891 .{ .kind = .literal_integer, .quantifier = .required },
13892 },
13893 },
13894 .{
13895 .name = "OpArbitraryFloatCbrtALTERA",
13896 .opcode = 5857,
13897 .operands = &.{
13898 .{ .kind = .id_result_type, .quantifier = .required },
13899 .{ .kind = .id_result, .quantifier = .required },
13900 .{ .kind = .id_ref, .quantifier = .required },
13901 .{ .kind = .literal_integer, .quantifier = .required },
13902 .{ .kind = .literal_integer, .quantifier = .required },
13903 .{ .kind = .literal_integer, .quantifier = .required },
13904 .{ .kind = .literal_integer, .quantifier = .required },
13905 .{ .kind = .literal_integer, .quantifier = .required },
13906 },
13907 },
13908 .{
13909 .name = "OpArbitraryFloatHypotALTERA",
13910 .opcode = 5858,
13911 .operands = &.{
13912 .{ .kind = .id_result_type, .quantifier = .required },
13913 .{ .kind = .id_result, .quantifier = .required },
13914 .{ .kind = .id_ref, .quantifier = .required },
13915 .{ .kind = .literal_integer, .quantifier = .required },
13916 .{ .kind = .id_ref, .quantifier = .required },
13917 .{ .kind = .literal_integer, .quantifier = .required },
13918 .{ .kind = .literal_integer, .quantifier = .required },
13919 .{ .kind = .literal_integer, .quantifier = .required },
13920 .{ .kind = .literal_integer, .quantifier = .required },
13921 .{ .kind = .literal_integer, .quantifier = .required },
13922 },
13923 },
13924 .{
13925 .name = "OpArbitraryFloatSqrtALTERA",
13926 .opcode = 5859,
13927 .operands = &.{
13928 .{ .kind = .id_result_type, .quantifier = .required },
13929 .{ .kind = .id_result, .quantifier = .required },
13930 .{ .kind = .id_ref, .quantifier = .required },
13931 .{ .kind = .literal_integer, .quantifier = .required },
13932 .{ .kind = .literal_integer, .quantifier = .required },
13933 .{ .kind = .literal_integer, .quantifier = .required },
13934 .{ .kind = .literal_integer, .quantifier = .required },
13935 .{ .kind = .literal_integer, .quantifier = .required },
13936 },
13937 },
13938 .{
13939 .name = "OpArbitraryFloatLogINTEL",
13940 .opcode = 5860,
13941 .operands = &.{
13942 .{ .kind = .id_result_type, .quantifier = .required },
13943 .{ .kind = .id_result, .quantifier = .required },
13944 .{ .kind = .id_ref, .quantifier = .required },
13945 .{ .kind = .literal_integer, .quantifier = .required },
13946 .{ .kind = .literal_integer, .quantifier = .required },
13947 .{ .kind = .literal_integer, .quantifier = .required },
13948 .{ .kind = .literal_integer, .quantifier = .required },
13949 .{ .kind = .literal_integer, .quantifier = .required },
13950 },
13951 },
13952 .{
13953 .name = "OpArbitraryFloatLog2INTEL",
13954 .opcode = 5861,
13955 .operands = &.{
13956 .{ .kind = .id_result_type, .quantifier = .required },
13957 .{ .kind = .id_result, .quantifier = .required },
13958 .{ .kind = .id_ref, .quantifier = .required },
13959 .{ .kind = .literal_integer, .quantifier = .required },
13960 .{ .kind = .literal_integer, .quantifier = .required },
13961 .{ .kind = .literal_integer, .quantifier = .required },
13962 .{ .kind = .literal_integer, .quantifier = .required },
13963 .{ .kind = .literal_integer, .quantifier = .required },
13964 },
13965 },
13966 .{
13967 .name = "OpArbitraryFloatLog10INTEL",
13968 .opcode = 5862,
13969 .operands = &.{
13970 .{ .kind = .id_result_type, .quantifier = .required },
13971 .{ .kind = .id_result, .quantifier = .required },
13972 .{ .kind = .id_ref, .quantifier = .required },
13973 .{ .kind = .literal_integer, .quantifier = .required },
13974 .{ .kind = .literal_integer, .quantifier = .required },
13975 .{ .kind = .literal_integer, .quantifier = .required },
13976 .{ .kind = .literal_integer, .quantifier = .required },
13977 .{ .kind = .literal_integer, .quantifier = .required },
13978 },
13979 },
13980 .{
13981 .name = "OpArbitraryFloatLog1pINTEL",
13982 .opcode = 5863,
13983 .operands = &.{
13984 .{ .kind = .id_result_type, .quantifier = .required },
13985 .{ .kind = .id_result, .quantifier = .required },
13986 .{ .kind = .id_ref, .quantifier = .required },
13987 .{ .kind = .literal_integer, .quantifier = .required },
13988 .{ .kind = .literal_integer, .quantifier = .required },
13989 .{ .kind = .literal_integer, .quantifier = .required },
13990 .{ .kind = .literal_integer, .quantifier = .required },
13991 .{ .kind = .literal_integer, .quantifier = .required },
13992 },
13993 },
13994 .{
13995 .name = "OpArbitraryFloatExpINTEL",
13996 .opcode = 5864,
13997 .operands = &.{
13998 .{ .kind = .id_result_type, .quantifier = .required },
13999 .{ .kind = .id_result, .quantifier = .required },
14000 .{ .kind = .id_ref, .quantifier = .required },
14001 .{ .kind = .literal_integer, .quantifier = .required },
14002 .{ .kind = .literal_integer, .quantifier = .required },
14003 .{ .kind = .literal_integer, .quantifier = .required },
14004 .{ .kind = .literal_integer, .quantifier = .required },
14005 .{ .kind = .literal_integer, .quantifier = .required },
14006 },
14007 },
14008 .{
14009 .name = "OpArbitraryFloatExp2INTEL",
14010 .opcode = 5865,
14011 .operands = &.{
14012 .{ .kind = .id_result_type, .quantifier = .required },
14013 .{ .kind = .id_result, .quantifier = .required },
14014 .{ .kind = .id_ref, .quantifier = .required },
14015 .{ .kind = .literal_integer, .quantifier = .required },
14016 .{ .kind = .literal_integer, .quantifier = .required },
14017 .{ .kind = .literal_integer, .quantifier = .required },
14018 .{ .kind = .literal_integer, .quantifier = .required },
14019 .{ .kind = .literal_integer, .quantifier = .required },
14020 },
14021 },
14022 .{
14023 .name = "OpArbitraryFloatExp10INTEL",
14024 .opcode = 5866,
14025 .operands = &.{
14026 .{ .kind = .id_result_type, .quantifier = .required },
14027 .{ .kind = .id_result, .quantifier = .required },
14028 .{ .kind = .id_ref, .quantifier = .required },
14029 .{ .kind = .literal_integer, .quantifier = .required },
14030 .{ .kind = .literal_integer, .quantifier = .required },
14031 .{ .kind = .literal_integer, .quantifier = .required },
14032 .{ .kind = .literal_integer, .quantifier = .required },
14033 .{ .kind = .literal_integer, .quantifier = .required },
14034 },
14035 },
14036 .{
14037 .name = "OpArbitraryFloatExpm1INTEL",
14038 .opcode = 5867,
14039 .operands = &.{
14040 .{ .kind = .id_result_type, .quantifier = .required },
14041 .{ .kind = .id_result, .quantifier = .required },
14042 .{ .kind = .id_ref, .quantifier = .required },
14043 .{ .kind = .literal_integer, .quantifier = .required },
14044 .{ .kind = .literal_integer, .quantifier = .required },
14045 .{ .kind = .literal_integer, .quantifier = .required },
14046 .{ .kind = .literal_integer, .quantifier = .required },
14047 .{ .kind = .literal_integer, .quantifier = .required },
14048 },
14049 },
14050 .{
14051 .name = "OpArbitraryFloatSinINTEL",
14052 .opcode = 5868,
14053 .operands = &.{
14054 .{ .kind = .id_result_type, .quantifier = .required },
14055 .{ .kind = .id_result, .quantifier = .required },
14056 .{ .kind = .id_ref, .quantifier = .required },
14057 .{ .kind = .literal_integer, .quantifier = .required },
14058 .{ .kind = .literal_integer, .quantifier = .required },
14059 .{ .kind = .literal_integer, .quantifier = .required },
14060 .{ .kind = .literal_integer, .quantifier = .required },
14061 .{ .kind = .literal_integer, .quantifier = .required },
14062 },
14063 },
14064 .{
14065 .name = "OpArbitraryFloatCosINTEL",
14066 .opcode = 5869,
14067 .operands = &.{
14068 .{ .kind = .id_result_type, .quantifier = .required },
14069 .{ .kind = .id_result, .quantifier = .required },
14070 .{ .kind = .id_ref, .quantifier = .required },
14071 .{ .kind = .literal_integer, .quantifier = .required },
14072 .{ .kind = .literal_integer, .quantifier = .required },
14073 .{ .kind = .literal_integer, .quantifier = .required },
14074 .{ .kind = .literal_integer, .quantifier = .required },
14075 .{ .kind = .literal_integer, .quantifier = .required },
14076 },
14077 },
14078 .{
14079 .name = "OpArbitraryFloatSinCosINTEL",
14080 .opcode = 5870,
14081 .operands = &.{
14082 .{ .kind = .id_result_type, .quantifier = .required },
14083 .{ .kind = .id_result, .quantifier = .required },
14084 .{ .kind = .id_ref, .quantifier = .required },
14085 .{ .kind = .literal_integer, .quantifier = .required },
14086 .{ .kind = .literal_integer, .quantifier = .required },
14087 .{ .kind = .literal_integer, .quantifier = .required },
14088 .{ .kind = .literal_integer, .quantifier = .required },
14089 .{ .kind = .literal_integer, .quantifier = .required },
14090 },
14091 },
14092 .{
14093 .name = "OpArbitraryFloatSinPiINTEL",
14094 .opcode = 5871,
14095 .operands = &.{
14096 .{ .kind = .id_result_type, .quantifier = .required },
14097 .{ .kind = .id_result, .quantifier = .required },
14098 .{ .kind = .id_ref, .quantifier = .required },
14099 .{ .kind = .literal_integer, .quantifier = .required },
14100 .{ .kind = .literal_integer, .quantifier = .required },
14101 .{ .kind = .literal_integer, .quantifier = .required },
14102 .{ .kind = .literal_integer, .quantifier = .required },
14103 .{ .kind = .literal_integer, .quantifier = .required },
14104 },
14105 },
14106 .{
14107 .name = "OpArbitraryFloatCosPiINTEL",
14108 .opcode = 5872,
14109 .operands = &.{
14110 .{ .kind = .id_result_type, .quantifier = .required },
14111 .{ .kind = .id_result, .quantifier = .required },
14112 .{ .kind = .id_ref, .quantifier = .required },
14113 .{ .kind = .literal_integer, .quantifier = .required },
14114 .{ .kind = .literal_integer, .quantifier = .required },
14115 .{ .kind = .literal_integer, .quantifier = .required },
14116 .{ .kind = .literal_integer, .quantifier = .required },
14117 .{ .kind = .literal_integer, .quantifier = .required },
14118 },
14119 },
14120 .{
14121 .name = "OpArbitraryFloatASinINTEL",
14122 .opcode = 5873,
14123 .operands = &.{
14124 .{ .kind = .id_result_type, .quantifier = .required },
14125 .{ .kind = .id_result, .quantifier = .required },
14126 .{ .kind = .id_ref, .quantifier = .required },
14127 .{ .kind = .literal_integer, .quantifier = .required },
14128 .{ .kind = .literal_integer, .quantifier = .required },
14129 .{ .kind = .literal_integer, .quantifier = .required },
14130 .{ .kind = .literal_integer, .quantifier = .required },
14131 .{ .kind = .literal_integer, .quantifier = .required },
14132 },
14133 },
14134 .{
14135 .name = "OpArbitraryFloatASinPiINTEL",
14136 .opcode = 5874,
14137 .operands = &.{
14138 .{ .kind = .id_result_type, .quantifier = .required },
14139 .{ .kind = .id_result, .quantifier = .required },
14140 .{ .kind = .id_ref, .quantifier = .required },
14141 .{ .kind = .literal_integer, .quantifier = .required },
14142 .{ .kind = .literal_integer, .quantifier = .required },
14143 .{ .kind = .literal_integer, .quantifier = .required },
14144 .{ .kind = .literal_integer, .quantifier = .required },
14145 .{ .kind = .literal_integer, .quantifier = .required },
14146 },
14147 },
14148 .{
14149 .name = "OpArbitraryFloatACosINTEL",
14150 .opcode = 5875,
14151 .operands = &.{
14152 .{ .kind = .id_result_type, .quantifier = .required },
14153 .{ .kind = .id_result, .quantifier = .required },
14154 .{ .kind = .id_ref, .quantifier = .required },
14155 .{ .kind = .literal_integer, .quantifier = .required },
14156 .{ .kind = .literal_integer, .quantifier = .required },
14157 .{ .kind = .literal_integer, .quantifier = .required },
14158 .{ .kind = .literal_integer, .quantifier = .required },
14159 .{ .kind = .literal_integer, .quantifier = .required },
14160 },
14161 },
14162 .{
14163 .name = "OpArbitraryFloatACosPiINTEL",
14164 .opcode = 5876,
14165 .operands = &.{
14166 .{ .kind = .id_result_type, .quantifier = .required },
14167 .{ .kind = .id_result, .quantifier = .required },
14168 .{ .kind = .id_ref, .quantifier = .required },
14169 .{ .kind = .literal_integer, .quantifier = .required },
14170 .{ .kind = .literal_integer, .quantifier = .required },
14171 .{ .kind = .literal_integer, .quantifier = .required },
14172 .{ .kind = .literal_integer, .quantifier = .required },
14173 .{ .kind = .literal_integer, .quantifier = .required },
14174 },
14175 },
14176 .{
14177 .name = "OpArbitraryFloatATanINTEL",
14178 .opcode = 5877,
14179 .operands = &.{
14180 .{ .kind = .id_result_type, .quantifier = .required },
14181 .{ .kind = .id_result, .quantifier = .required },
14182 .{ .kind = .id_ref, .quantifier = .required },
14183 .{ .kind = .literal_integer, .quantifier = .required },
14184 .{ .kind = .literal_integer, .quantifier = .required },
14185 .{ .kind = .literal_integer, .quantifier = .required },
14186 .{ .kind = .literal_integer, .quantifier = .required },
14187 .{ .kind = .literal_integer, .quantifier = .required },
14188 },
14189 },
14190 .{
14191 .name = "OpArbitraryFloatATanPiINTEL",
14192 .opcode = 5878,
14193 .operands = &.{
14194 .{ .kind = .id_result_type, .quantifier = .required },
14195 .{ .kind = .id_result, .quantifier = .required },
14196 .{ .kind = .id_ref, .quantifier = .required },
14197 .{ .kind = .literal_integer, .quantifier = .required },
14198 .{ .kind = .literal_integer, .quantifier = .required },
14199 .{ .kind = .literal_integer, .quantifier = .required },
14200 .{ .kind = .literal_integer, .quantifier = .required },
14201 .{ .kind = .literal_integer, .quantifier = .required },
14202 },
14203 },
14204 .{
14205 .name = "OpArbitraryFloatATan2INTEL",
14206 .opcode = 5879,
14207 .operands = &.{
14208 .{ .kind = .id_result_type, .quantifier = .required },
14209 .{ .kind = .id_result, .quantifier = .required },
14210 .{ .kind = .id_ref, .quantifier = .required },
14211 .{ .kind = .literal_integer, .quantifier = .required },
14212 .{ .kind = .id_ref, .quantifier = .required },
14213 .{ .kind = .literal_integer, .quantifier = .required },
14214 .{ .kind = .literal_integer, .quantifier = .required },
14215 .{ .kind = .literal_integer, .quantifier = .required },
14216 .{ .kind = .literal_integer, .quantifier = .required },
14217 .{ .kind = .literal_integer, .quantifier = .required },
14218 },
14219 },
14220 .{
14221 .name = "OpArbitraryFloatPowINTEL",
14222 .opcode = 5880,
14223 .operands = &.{
14224 .{ .kind = .id_result_type, .quantifier = .required },
14225 .{ .kind = .id_result, .quantifier = .required },
14226 .{ .kind = .id_ref, .quantifier = .required },
14227 .{ .kind = .literal_integer, .quantifier = .required },
14228 .{ .kind = .id_ref, .quantifier = .required },
14229 .{ .kind = .literal_integer, .quantifier = .required },
14230 .{ .kind = .literal_integer, .quantifier = .required },
14231 .{ .kind = .literal_integer, .quantifier = .required },
14232 .{ .kind = .literal_integer, .quantifier = .required },
14233 .{ .kind = .literal_integer, .quantifier = .required },
14234 },
14235 },
14236 .{
14237 .name = "OpArbitraryFloatPowRINTEL",
14238 .opcode = 5881,
14239 .operands = &.{
14240 .{ .kind = .id_result_type, .quantifier = .required },
14241 .{ .kind = .id_result, .quantifier = .required },
14242 .{ .kind = .id_ref, .quantifier = .required },
14243 .{ .kind = .literal_integer, .quantifier = .required },
14244 .{ .kind = .id_ref, .quantifier = .required },
14245 .{ .kind = .literal_integer, .quantifier = .required },
14246 .{ .kind = .literal_integer, .quantifier = .required },
14247 .{ .kind = .literal_integer, .quantifier = .required },
14248 .{ .kind = .literal_integer, .quantifier = .required },
14249 .{ .kind = .literal_integer, .quantifier = .required },
14250 },
14251 },
14252 .{
14253 .name = "OpArbitraryFloatPowNINTEL",
14254 .opcode = 5882,
14255 .operands = &.{
14256 .{ .kind = .id_result_type, .quantifier = .required },
14257 .{ .kind = .id_result, .quantifier = .required },
14258 .{ .kind = .id_ref, .quantifier = .required },
14259 .{ .kind = .literal_integer, .quantifier = .required },
14260 .{ .kind = .id_ref, .quantifier = .required },
14261 .{ .kind = .literal_integer, .quantifier = .required },
14262 .{ .kind = .literal_integer, .quantifier = .required },
14263 .{ .kind = .literal_integer, .quantifier = .required },
14264 .{ .kind = .literal_integer, .quantifier = .required },
14265 .{ .kind = .literal_integer, .quantifier = .required },
14266 },
14267 },
14268 .{
14269 .name = "OpLoopControlINTEL",
14270 .opcode = 5887,
14271 .operands = &.{
14272 .{ .kind = .literal_integer, .quantifier = .variadic },
14273 },
14274 },
14275 .{
14276 .name = "OpAliasDomainDeclINTEL",
14277 .opcode = 5911,
14278 .operands = &.{
14279 .{ .kind = .id_result, .quantifier = .required },
14280 .{ .kind = .id_ref, .quantifier = .optional },
14281 },
14282 },
14283 .{
14284 .name = "OpAliasScopeDeclINTEL",
14285 .opcode = 5912,
14286 .operands = &.{
14287 .{ .kind = .id_result, .quantifier = .required },
14288 .{ .kind = .id_ref, .quantifier = .required },
14289 .{ .kind = .id_ref, .quantifier = .optional },
14290 },
14291 },
14292 .{
14293 .name = "OpAliasScopeListDeclINTEL",
14294 .opcode = 5913,
14295 .operands = &.{
14296 .{ .kind = .id_result, .quantifier = .required },
14297 .{ .kind = .id_ref, .quantifier = .variadic },
14298 },
14299 },
14300 .{
14301 .name = "OpFixedSqrtALTERA",
14302 .opcode = 5923,
14303 .operands = &.{
14304 .{ .kind = .id_result_type, .quantifier = .required },
14305 .{ .kind = .id_result, .quantifier = .required },
14306 .{ .kind = .id_ref, .quantifier = .required },
14307 .{ .kind = .literal_integer, .quantifier = .required },
14308 .{ .kind = .literal_integer, .quantifier = .required },
14309 .{ .kind = .literal_integer, .quantifier = .required },
14310 .{ .kind = .literal_integer, .quantifier = .required },
14311 .{ .kind = .literal_integer, .quantifier = .required },
14312 },
14313 },
14314 .{
14315 .name = "OpFixedRecipALTERA",
14316 .opcode = 5924,
14317 .operands = &.{
14318 .{ .kind = .id_result_type, .quantifier = .required },
14319 .{ .kind = .id_result, .quantifier = .required },
14320 .{ .kind = .id_ref, .quantifier = .required },
14321 .{ .kind = .literal_integer, .quantifier = .required },
14322 .{ .kind = .literal_integer, .quantifier = .required },
14323 .{ .kind = .literal_integer, .quantifier = .required },
14324 .{ .kind = .literal_integer, .quantifier = .required },
14325 .{ .kind = .literal_integer, .quantifier = .required },
14326 },
14327 },
14328 .{
14329 .name = "OpFixedRsqrtALTERA",
14330 .opcode = 5925,
14331 .operands = &.{
14332 .{ .kind = .id_result_type, .quantifier = .required },
14333 .{ .kind = .id_result, .quantifier = .required },
14334 .{ .kind = .id_ref, .quantifier = .required },
14335 .{ .kind = .literal_integer, .quantifier = .required },
14336 .{ .kind = .literal_integer, .quantifier = .required },
14337 .{ .kind = .literal_integer, .quantifier = .required },
14338 .{ .kind = .literal_integer, .quantifier = .required },
14339 .{ .kind = .literal_integer, .quantifier = .required },
14340 },
14341 },
14342 .{
14343 .name = "OpFixedSinALTERA",
14344 .opcode = 5926,
14345 .operands = &.{
14346 .{ .kind = .id_result_type, .quantifier = .required },
14347 .{ .kind = .id_result, .quantifier = .required },
14348 .{ .kind = .id_ref, .quantifier = .required },
14349 .{ .kind = .literal_integer, .quantifier = .required },
14350 .{ .kind = .literal_integer, .quantifier = .required },
14351 .{ .kind = .literal_integer, .quantifier = .required },
14352 .{ .kind = .literal_integer, .quantifier = .required },
14353 .{ .kind = .literal_integer, .quantifier = .required },
14354 },
14355 },
14356 .{
14357 .name = "OpFixedCosALTERA",
14358 .opcode = 5927,
14359 .operands = &.{
14360 .{ .kind = .id_result_type, .quantifier = .required },
14361 .{ .kind = .id_result, .quantifier = .required },
14362 .{ .kind = .id_ref, .quantifier = .required },
14363 .{ .kind = .literal_integer, .quantifier = .required },
14364 .{ .kind = .literal_integer, .quantifier = .required },
14365 .{ .kind = .literal_integer, .quantifier = .required },
14366 .{ .kind = .literal_integer, .quantifier = .required },
14367 .{ .kind = .literal_integer, .quantifier = .required },
14368 },
14369 },
14370 .{
14371 .name = "OpFixedSinCosALTERA",
14372 .opcode = 5928,
14373 .operands = &.{
14374 .{ .kind = .id_result_type, .quantifier = .required },
14375 .{ .kind = .id_result, .quantifier = .required },
14376 .{ .kind = .id_ref, .quantifier = .required },
14377 .{ .kind = .literal_integer, .quantifier = .required },
14378 .{ .kind = .literal_integer, .quantifier = .required },
14379 .{ .kind = .literal_integer, .quantifier = .required },
14380 .{ .kind = .literal_integer, .quantifier = .required },
14381 .{ .kind = .literal_integer, .quantifier = .required },
14382 },
14383 },
14384 .{
14385 .name = "OpFixedSinPiALTERA",
14386 .opcode = 5929,
14387 .operands = &.{
14388 .{ .kind = .id_result_type, .quantifier = .required },
14389 .{ .kind = .id_result, .quantifier = .required },
14390 .{ .kind = .id_ref, .quantifier = .required },
14391 .{ .kind = .literal_integer, .quantifier = .required },
14392 .{ .kind = .literal_integer, .quantifier = .required },
14393 .{ .kind = .literal_integer, .quantifier = .required },
14394 .{ .kind = .literal_integer, .quantifier = .required },
14395 .{ .kind = .literal_integer, .quantifier = .required },
14396 },
14397 },
14398 .{
14399 .name = "OpFixedCosPiALTERA",
14400 .opcode = 5930,
14401 .operands = &.{
14402 .{ .kind = .id_result_type, .quantifier = .required },
14403 .{ .kind = .id_result, .quantifier = .required },
14404 .{ .kind = .id_ref, .quantifier = .required },
14405 .{ .kind = .literal_integer, .quantifier = .required },
14406 .{ .kind = .literal_integer, .quantifier = .required },
14407 .{ .kind = .literal_integer, .quantifier = .required },
14408 .{ .kind = .literal_integer, .quantifier = .required },
14409 .{ .kind = .literal_integer, .quantifier = .required },
14410 },
14411 },
14412 .{
14413 .name = "OpFixedSinCosPiALTERA",
14414 .opcode = 5931,
14415 .operands = &.{
14416 .{ .kind = .id_result_type, .quantifier = .required },
14417 .{ .kind = .id_result, .quantifier = .required },
14418 .{ .kind = .id_ref, .quantifier = .required },
14419 .{ .kind = .literal_integer, .quantifier = .required },
14420 .{ .kind = .literal_integer, .quantifier = .required },
14421 .{ .kind = .literal_integer, .quantifier = .required },
14422 .{ .kind = .literal_integer, .quantifier = .required },
14423 .{ .kind = .literal_integer, .quantifier = .required },
14424 },
14425 },
14426 .{
14427 .name = "OpFixedLogALTERA",
14428 .opcode = 5932,
14429 .operands = &.{
14430 .{ .kind = .id_result_type, .quantifier = .required },
14431 .{ .kind = .id_result, .quantifier = .required },
14432 .{ .kind = .id_ref, .quantifier = .required },
14433 .{ .kind = .literal_integer, .quantifier = .required },
14434 .{ .kind = .literal_integer, .quantifier = .required },
14435 .{ .kind = .literal_integer, .quantifier = .required },
14436 .{ .kind = .literal_integer, .quantifier = .required },
14437 .{ .kind = .literal_integer, .quantifier = .required },
14438 },
14439 },
14440 .{
14441 .name = "OpFixedExpALTERA",
14442 .opcode = 5933,
14443 .operands = &.{
14444 .{ .kind = .id_result_type, .quantifier = .required },
14445 .{ .kind = .id_result, .quantifier = .required },
14446 .{ .kind = .id_ref, .quantifier = .required },
14447 .{ .kind = .literal_integer, .quantifier = .required },
14448 .{ .kind = .literal_integer, .quantifier = .required },
14449 .{ .kind = .literal_integer, .quantifier = .required },
14450 .{ .kind = .literal_integer, .quantifier = .required },
14451 .{ .kind = .literal_integer, .quantifier = .required },
14452 },
14453 },
14454 .{
14455 .name = "OpPtrCastToCrossWorkgroupALTERA",
14456 .opcode = 5934,
14457 .operands = &.{
14458 .{ .kind = .id_result_type, .quantifier = .required },
14459 .{ .kind = .id_result, .quantifier = .required },
14460 .{ .kind = .id_ref, .quantifier = .required },
14461 },
14462 },
14463 .{
14464 .name = "OpCrossWorkgroupCastToPtrALTERA",
14465 .opcode = 5938,
14466 .operands = &.{
14467 .{ .kind = .id_result_type, .quantifier = .required },
14468 .{ .kind = .id_result, .quantifier = .required },
14469 .{ .kind = .id_ref, .quantifier = .required },
14470 },
14471 },
14472 .{
14473 .name = "OpReadPipeBlockingALTERA",
14474 .opcode = 5946,
14475 .operands = &.{
14476 .{ .kind = .id_result_type, .quantifier = .required },
14477 .{ .kind = .id_result, .quantifier = .required },
14478 .{ .kind = .id_ref, .quantifier = .required },
14479 .{ .kind = .id_ref, .quantifier = .required },
14480 },
14481 },
14482 .{
14483 .name = "OpWritePipeBlockingALTERA",
14484 .opcode = 5947,
14485 .operands = &.{
14486 .{ .kind = .id_result_type, .quantifier = .required },
14487 .{ .kind = .id_result, .quantifier = .required },
14488 .{ .kind = .id_ref, .quantifier = .required },
14489 .{ .kind = .id_ref, .quantifier = .required },
14490 },
14491 },
14492 .{
14493 .name = "OpFPGARegALTERA",
14494 .opcode = 5949,
14495 .operands = &.{
14496 .{ .kind = .id_result_type, .quantifier = .required },
14497 .{ .kind = .id_result, .quantifier = .required },
14498 .{ .kind = .id_ref, .quantifier = .required },
14499 },
14500 },
14501 .{
14502 .name = "OpRayQueryGetRayTMinKHR",
14503 .opcode = 6016,
14504 .operands = &.{
14505 .{ .kind = .id_result_type, .quantifier = .required },
14506 .{ .kind = .id_result, .quantifier = .required },
14507 .{ .kind = .id_ref, .quantifier = .required },
14508 },
14509 },
14510 .{
14511 .name = "OpRayQueryGetRayFlagsKHR",
14512 .opcode = 6017,
14513 .operands = &.{
14514 .{ .kind = .id_result_type, .quantifier = .required },
14515 .{ .kind = .id_result, .quantifier = .required },
14516 .{ .kind = .id_ref, .quantifier = .required },
14517 },
14518 },
14519 .{
14520 .name = "OpRayQueryGetIntersectionTKHR",
14521 .opcode = 6018,
14522 .operands = &.{
14523 .{ .kind = .id_result_type, .quantifier = .required },
14524 .{ .kind = .id_result, .quantifier = .required },
14525 .{ .kind = .id_ref, .quantifier = .required },
14526 .{ .kind = .id_ref, .quantifier = .required },
14527 },
14528 },
14529 .{
14530 .name = "OpRayQueryGetIntersectionInstanceCustomIndexKHR",
14531 .opcode = 6019,
14532 .operands = &.{
14533 .{ .kind = .id_result_type, .quantifier = .required },
14534 .{ .kind = .id_result, .quantifier = .required },
14535 .{ .kind = .id_ref, .quantifier = .required },
14536 .{ .kind = .id_ref, .quantifier = .required },
14537 },
14538 },
14539 .{
14540 .name = "OpRayQueryGetIntersectionInstanceIdKHR",
14541 .opcode = 6020,
14542 .operands = &.{
14543 .{ .kind = .id_result_type, .quantifier = .required },
14544 .{ .kind = .id_result, .quantifier = .required },
14545 .{ .kind = .id_ref, .quantifier = .required },
14546 .{ .kind = .id_ref, .quantifier = .required },
14547 },
14548 },
14549 .{
14550 .name = "OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR",
14551 .opcode = 6021,
14552 .operands = &.{
14553 .{ .kind = .id_result_type, .quantifier = .required },
14554 .{ .kind = .id_result, .quantifier = .required },
14555 .{ .kind = .id_ref, .quantifier = .required },
14556 .{ .kind = .id_ref, .quantifier = .required },
14557 },
14558 },
14559 .{
14560 .name = "OpRayQueryGetIntersectionGeometryIndexKHR",
14561 .opcode = 6022,
14562 .operands = &.{
14563 .{ .kind = .id_result_type, .quantifier = .required },
14564 .{ .kind = .id_result, .quantifier = .required },
14565 .{ .kind = .id_ref, .quantifier = .required },
14566 .{ .kind = .id_ref, .quantifier = .required },
14567 },
14568 },
14569 .{
14570 .name = "OpRayQueryGetIntersectionPrimitiveIndexKHR",
14571 .opcode = 6023,
14572 .operands = &.{
14573 .{ .kind = .id_result_type, .quantifier = .required },
14574 .{ .kind = .id_result, .quantifier = .required },
14575 .{ .kind = .id_ref, .quantifier = .required },
14576 .{ .kind = .id_ref, .quantifier = .required },
14577 },
14578 },
14579 .{
14580 .name = "OpRayQueryGetIntersectionBarycentricsKHR",
14581 .opcode = 6024,
14582 .operands = &.{
14583 .{ .kind = .id_result_type, .quantifier = .required },
14584 .{ .kind = .id_result, .quantifier = .required },
14585 .{ .kind = .id_ref, .quantifier = .required },
14586 .{ .kind = .id_ref, .quantifier = .required },
14587 },
14588 },
14589 .{
14590 .name = "OpRayQueryGetIntersectionFrontFaceKHR",
14591 .opcode = 6025,
14592 .operands = &.{
14593 .{ .kind = .id_result_type, .quantifier = .required },
14594 .{ .kind = .id_result, .quantifier = .required },
14595 .{ .kind = .id_ref, .quantifier = .required },
14596 .{ .kind = .id_ref, .quantifier = .required },
14597 },
14598 },
14599 .{
14600 .name = "OpRayQueryGetIntersectionCandidateAABBOpaqueKHR",
14601 .opcode = 6026,
14602 .operands = &.{
14603 .{ .kind = .id_result_type, .quantifier = .required },
14604 .{ .kind = .id_result, .quantifier = .required },
14605 .{ .kind = .id_ref, .quantifier = .required },
14606 },
14607 },
14608 .{
14609 .name = "OpRayQueryGetIntersectionObjectRayDirectionKHR",
14610 .opcode = 6027,
14611 .operands = &.{
14612 .{ .kind = .id_result_type, .quantifier = .required },
14613 .{ .kind = .id_result, .quantifier = .required },
14614 .{ .kind = .id_ref, .quantifier = .required },
14615 .{ .kind = .id_ref, .quantifier = .required },
14616 },
14617 },
14618 .{
14619 .name = "OpRayQueryGetIntersectionObjectRayOriginKHR",
14620 .opcode = 6028,
14621 .operands = &.{
14622 .{ .kind = .id_result_type, .quantifier = .required },
14623 .{ .kind = .id_result, .quantifier = .required },
14624 .{ .kind = .id_ref, .quantifier = .required },
14625 .{ .kind = .id_ref, .quantifier = .required },
14626 },
14627 },
14628 .{
14629 .name = "OpRayQueryGetWorldRayDirectionKHR",
14630 .opcode = 6029,
14631 .operands = &.{
14632 .{ .kind = .id_result_type, .quantifier = .required },
14633 .{ .kind = .id_result, .quantifier = .required },
14634 .{ .kind = .id_ref, .quantifier = .required },
14635 },
14636 },
14637 .{
14638 .name = "OpRayQueryGetWorldRayOriginKHR",
14639 .opcode = 6030,
14640 .operands = &.{
14641 .{ .kind = .id_result_type, .quantifier = .required },
14642 .{ .kind = .id_result, .quantifier = .required },
14643 .{ .kind = .id_ref, .quantifier = .required },
14644 },
14645 },
14646 .{
14647 .name = "OpRayQueryGetIntersectionObjectToWorldKHR",
14648 .opcode = 6031,
14649 .operands = &.{
14650 .{ .kind = .id_result_type, .quantifier = .required },
14651 .{ .kind = .id_result, .quantifier = .required },
14652 .{ .kind = .id_ref, .quantifier = .required },
14653 .{ .kind = .id_ref, .quantifier = .required },
14654 },
14655 },
14656 .{
14657 .name = "OpRayQueryGetIntersectionWorldToObjectKHR",
14658 .opcode = 6032,
14659 .operands = &.{
14660 .{ .kind = .id_result_type, .quantifier = .required },
14661 .{ .kind = .id_result, .quantifier = .required },
14662 .{ .kind = .id_ref, .quantifier = .required },
14663 .{ .kind = .id_ref, .quantifier = .required },
14664 },
14665 },
14666 .{
14667 .name = "OpAtomicFAddEXT",
14668 .opcode = 6035,
14669 .operands = &.{
14670 .{ .kind = .id_result_type, .quantifier = .required },
14671 .{ .kind = .id_result, .quantifier = .required },
14672 .{ .kind = .id_ref, .quantifier = .required },
14673 .{ .kind = .id_scope, .quantifier = .required },
14674 .{ .kind = .id_memory_semantics, .quantifier = .required },
14675 .{ .kind = .id_ref, .quantifier = .required },
14676 },
14677 },
14678 .{
14679 .name = "OpTypeBufferSurfaceINTEL",
14680 .opcode = 6086,
14681 .operands = &.{
14682 .{ .kind = .id_result, .quantifier = .required },
14683 .{ .kind = .access_qualifier, .quantifier = .required },
14684 },
14685 },
14686 .{
14687 .name = "OpTypeStructContinuedINTEL",
14688 .opcode = 6090,
14689 .operands = &.{
14690 .{ .kind = .id_ref, .quantifier = .variadic },
14691 },
14692 },
14693 .{
14694 .name = "OpConstantCompositeContinuedINTEL",
14695 .opcode = 6091,
14696 .operands = &.{
14697 .{ .kind = .id_ref, .quantifier = .variadic },
14698 },
14699 },
14700 .{
14701 .name = "OpSpecConstantCompositeContinuedINTEL",
14702 .opcode = 6092,
14703 .operands = &.{
14704 .{ .kind = .id_ref, .quantifier = .variadic },
14705 },
14706 },
14707 .{
14708 .name = "OpCompositeConstructContinuedINTEL",
14709 .opcode = 6096,
14710 .operands = &.{
14711 .{ .kind = .id_result_type, .quantifier = .required },
14712 .{ .kind = .id_result, .quantifier = .required },
14713 .{ .kind = .id_ref, .quantifier = .variadic },
14714 },
14715 },
14716 .{
14717 .name = "OpConvertFToBF16INTEL",
14718 .opcode = 6116,
14719 .operands = &.{
14720 .{ .kind = .id_result_type, .quantifier = .required },
14721 .{ .kind = .id_result, .quantifier = .required },
14722 .{ .kind = .id_ref, .quantifier = .required },
14723 },
14724 },
14725 .{
14726 .name = "OpConvertBF16ToFINTEL",
14727 .opcode = 6117,
14728 .operands = &.{
14729 .{ .kind = .id_result_type, .quantifier = .required },
14730 .{ .kind = .id_result, .quantifier = .required },
14731 .{ .kind = .id_ref, .quantifier = .required },
14732 },
14733 },
14734 .{
14735 .name = "OpControlBarrierArriveINTEL",
14736 .opcode = 6142,
14737 .operands = &.{
14738 .{ .kind = .id_scope, .quantifier = .required },
14739 .{ .kind = .id_scope, .quantifier = .required },
14740 .{ .kind = .id_memory_semantics, .quantifier = .required },
14741 },
14742 },
14743 .{
14744 .name = "OpControlBarrierWaitINTEL",
14745 .opcode = 6143,
14746 .operands = &.{
14747 .{ .kind = .id_scope, .quantifier = .required },
14748 .{ .kind = .id_scope, .quantifier = .required },
14749 .{ .kind = .id_memory_semantics, .quantifier = .required },
14750 },
14751 },
14752 .{
14753 .name = "OpArithmeticFenceEXT",
14754 .opcode = 6145,
14755 .operands = &.{
14756 .{ .kind = .id_result_type, .quantifier = .required },
14757 .{ .kind = .id_result, .quantifier = .required },
14758 .{ .kind = .id_ref, .quantifier = .required },
14759 },
14760 },
14761 .{
14762 .name = "OpTaskSequenceCreateALTERA",
14763 .opcode = 6163,
14764 .operands = &.{
14765 .{ .kind = .id_result_type, .quantifier = .required },
14766 .{ .kind = .id_result, .quantifier = .required },
14767 .{ .kind = .id_ref, .quantifier = .required },
14768 .{ .kind = .literal_integer, .quantifier = .required },
14769 .{ .kind = .literal_integer, .quantifier = .required },
14770 .{ .kind = .literal_integer, .quantifier = .required },
14771 .{ .kind = .literal_integer, .quantifier = .required },
14772 },
14773 },
14774 .{
14775 .name = "OpTaskSequenceAsyncALTERA",
14776 .opcode = 6164,
14777 .operands = &.{
14778 .{ .kind = .id_ref, .quantifier = .required },
14779 .{ .kind = .id_ref, .quantifier = .variadic },
14780 },
14781 },
14782 .{
14783 .name = "OpTaskSequenceGetALTERA",
14784 .opcode = 6165,
14785 .operands = &.{
14786 .{ .kind = .id_result_type, .quantifier = .required },
14787 .{ .kind = .id_result, .quantifier = .required },
14788 .{ .kind = .id_ref, .quantifier = .required },
14789 },
14790 },
14791 .{
14792 .name = "OpTaskSequenceReleaseALTERA",
14793 .opcode = 6166,
14794 .operands = &.{
14795 .{ .kind = .id_ref, .quantifier = .required },
14796 },
14797 },
14798 .{
14799 .name = "OpTypeTaskSequenceALTERA",
14800 .opcode = 6199,
14801 .operands = &.{
14802 .{ .kind = .id_result, .quantifier = .required },
14803 },
14804 },
14805 .{
14806 .name = "OpSubgroupBlockPrefetchINTEL",
14807 .opcode = 6221,
14808 .operands = &.{
14809 .{ .kind = .id_ref, .quantifier = .required },
14810 .{ .kind = .id_ref, .quantifier = .required },
14811 .{ .kind = .memory_access, .quantifier = .optional },
14812 },
14813 },
14814 .{
14815 .name = "OpSubgroup2DBlockLoadINTEL",
14816 .opcode = 6231,
14817 .operands = &.{
14818 .{ .kind = .id_ref, .quantifier = .required },
14819 .{ .kind = .id_ref, .quantifier = .required },
14820 .{ .kind = .id_ref, .quantifier = .required },
14821 .{ .kind = .id_ref, .quantifier = .required },
14822 .{ .kind = .id_ref, .quantifier = .required },
14823 .{ .kind = .id_ref, .quantifier = .required },
14824 .{ .kind = .id_ref, .quantifier = .required },
14825 .{ .kind = .id_ref, .quantifier = .required },
14826 .{ .kind = .id_ref, .quantifier = .required },
14827 .{ .kind = .id_ref, .quantifier = .required },
14828 },
14829 },
14830 .{
14831 .name = "OpSubgroup2DBlockLoadTransformINTEL",
14832 .opcode = 6232,
14833 .operands = &.{
14834 .{ .kind = .id_ref, .quantifier = .required },
14835 .{ .kind = .id_ref, .quantifier = .required },
14836 .{ .kind = .id_ref, .quantifier = .required },
14837 .{ .kind = .id_ref, .quantifier = .required },
14838 .{ .kind = .id_ref, .quantifier = .required },
14839 .{ .kind = .id_ref, .quantifier = .required },
14840 .{ .kind = .id_ref, .quantifier = .required },
14841 .{ .kind = .id_ref, .quantifier = .required },
14842 .{ .kind = .id_ref, .quantifier = .required },
14843 .{ .kind = .id_ref, .quantifier = .required },
14844 },
14845 },
14846 .{
14847 .name = "OpSubgroup2DBlockLoadTransposeINTEL",
14848 .opcode = 6233,
14849 .operands = &.{
14850 .{ .kind = .id_ref, .quantifier = .required },
14851 .{ .kind = .id_ref, .quantifier = .required },
14852 .{ .kind = .id_ref, .quantifier = .required },
14853 .{ .kind = .id_ref, .quantifier = .required },
14854 .{ .kind = .id_ref, .quantifier = .required },
14855 .{ .kind = .id_ref, .quantifier = .required },
14856 .{ .kind = .id_ref, .quantifier = .required },
14857 .{ .kind = .id_ref, .quantifier = .required },
14858 .{ .kind = .id_ref, .quantifier = .required },
14859 .{ .kind = .id_ref, .quantifier = .required },
14860 },
14861 },
14862 .{
14863 .name = "OpSubgroup2DBlockPrefetchINTEL",
14864 .opcode = 6234,
14865 .operands = &.{
14866 .{ .kind = .id_ref, .quantifier = .required },
14867 .{ .kind = .id_ref, .quantifier = .required },
14868 .{ .kind = .id_ref, .quantifier = .required },
14869 .{ .kind = .id_ref, .quantifier = .required },
14870 .{ .kind = .id_ref, .quantifier = .required },
14871 .{ .kind = .id_ref, .quantifier = .required },
14872 .{ .kind = .id_ref, .quantifier = .required },
14873 .{ .kind = .id_ref, .quantifier = .required },
14874 .{ .kind = .id_ref, .quantifier = .required },
14875 },
14876 },
14877 .{
14878 .name = "OpSubgroup2DBlockStoreINTEL",
14879 .opcode = 6235,
14880 .operands = &.{
14881 .{ .kind = .id_ref, .quantifier = .required },
14882 .{ .kind = .id_ref, .quantifier = .required },
14883 .{ .kind = .id_ref, .quantifier = .required },
14884 .{ .kind = .id_ref, .quantifier = .required },
14885 .{ .kind = .id_ref, .quantifier = .required },
14886 .{ .kind = .id_ref, .quantifier = .required },
14887 .{ .kind = .id_ref, .quantifier = .required },
14888 .{ .kind = .id_ref, .quantifier = .required },
14889 .{ .kind = .id_ref, .quantifier = .required },
14890 .{ .kind = .id_ref, .quantifier = .required },
14891 },
14892 },
14893 .{
14894 .name = "OpSubgroupMatrixMultiplyAccumulateINTEL",
14895 .opcode = 6237,
14896 .operands = &.{
14897 .{ .kind = .id_result_type, .quantifier = .required },
14898 .{ .kind = .id_result, .quantifier = .required },
14899 .{ .kind = .id_ref, .quantifier = .required },
14900 .{ .kind = .id_ref, .quantifier = .required },
14901 .{ .kind = .id_ref, .quantifier = .required },
14902 .{ .kind = .id_ref, .quantifier = .required },
14903 .{ .kind = .matrix_multiply_accumulate_operands, .quantifier = .optional },
14904 },
14905 },
14906 .{
14907 .name = "OpBitwiseFunctionINTEL",
14908 .opcode = 6242,
14909 .operands = &.{
14910 .{ .kind = .id_result_type, .quantifier = .required },
14911 .{ .kind = .id_result, .quantifier = .required },
14912 .{ .kind = .id_ref, .quantifier = .required },
14913 .{ .kind = .id_ref, .quantifier = .required },
14914 .{ .kind = .id_ref, .quantifier = .required },
14915 .{ .kind = .id_ref, .quantifier = .required },
14916 },
14917 },
14918 .{
14919 .name = "OpUntypedVariableLengthArrayINTEL",
14920 .opcode = 6244,
14921 .operands = &.{
14922 .{ .kind = .id_result_type, .quantifier = .required },
14923 .{ .kind = .id_result, .quantifier = .required },
14924 .{ .kind = .id_ref, .quantifier = .required },
14925 .{ .kind = .id_ref, .quantifier = .required },
14926 },
14927 },
14928 .{
14929 .name = "OpConditionalExtensionINTEL",
14930 .opcode = 6248,
14931 .operands = &.{
14932 .{ .kind = .id_ref, .quantifier = .required },
14933 .{ .kind = .literal_string, .quantifier = .required },
14934 },
14935 },
14936 .{
14937 .name = "OpConditionalEntryPointINTEL",
14938 .opcode = 6249,
14939 .operands = &.{
14940 .{ .kind = .id_ref, .quantifier = .required },
14941 .{ .kind = .execution_model, .quantifier = .required },
14942 .{ .kind = .id_ref, .quantifier = .required },
14943 .{ .kind = .literal_string, .quantifier = .required },
14944 .{ .kind = .id_ref, .quantifier = .variadic },
14945 },
14946 },
14947 .{
14948 .name = "OpConditionalCapabilityINTEL",
14949 .opcode = 6250,
14950 .operands = &.{
14951 .{ .kind = .id_ref, .quantifier = .required },
14952 .{ .kind = .capability, .quantifier = .required },
14953 },
14954 },
14955 .{
14956 .name = "OpSpecConstantTargetINTEL",
14957 .opcode = 6251,
14958 .operands = &.{
14959 .{ .kind = .id_result_type, .quantifier = .required },
14960 .{ .kind = .id_result, .quantifier = .required },
14961 .{ .kind = .literal_integer, .quantifier = .required },
14962 .{ .kind = .literal_integer, .quantifier = .variadic },
14963 },
14964 },
14965 .{
14966 .name = "OpSpecConstantArchitectureINTEL",
14967 .opcode = 6252,
14968 .operands = &.{
14969 .{ .kind = .id_result_type, .quantifier = .required },
14970 .{ .kind = .id_result, .quantifier = .required },
14971 .{ .kind = .literal_integer, .quantifier = .required },
14972 .{ .kind = .literal_integer, .quantifier = .required },
14973 .{ .kind = .literal_integer, .quantifier = .required },
14974 .{ .kind = .literal_integer, .quantifier = .required },
14975 },
14976 },
14977 .{
14978 .name = "OpSpecConstantCapabilitiesINTEL",
14979 .opcode = 6253,
14980 .operands = &.{
14981 .{ .kind = .id_result_type, .quantifier = .required },
14982 .{ .kind = .id_result, .quantifier = .required },
14983 .{ .kind = .capability, .quantifier = .variadic },
14984 },
14985 },
14986 .{
14987 .name = "OpConditionalCopyObjectINTEL",
14988 .opcode = 6254,
14989 .operands = &.{
14990 .{ .kind = .id_result_type, .quantifier = .required },
14991 .{ .kind = .id_result, .quantifier = .required },
14992 .{ .kind = .id_ref, .quantifier = .variadic },
14993 },
14994 },
14995 .{
14996 .name = "OpGroupIMulKHR",
14997 .opcode = 6401,
14998 .operands = &.{
14999 .{ .kind = .id_result_type, .quantifier = .required },
15000 .{ .kind = .id_result, .quantifier = .required },
15001 .{ .kind = .id_scope, .quantifier = .required },
15002 .{ .kind = .group_operation, .quantifier = .required },
15003 .{ .kind = .id_ref, .quantifier = .required },
15004 },
15005 },
15006 .{
15007 .name = "OpGroupFMulKHR",
15008 .opcode = 6402,
15009 .operands = &.{
15010 .{ .kind = .id_result_type, .quantifier = .required },
15011 .{ .kind = .id_result, .quantifier = .required },
15012 .{ .kind = .id_scope, .quantifier = .required },
15013 .{ .kind = .group_operation, .quantifier = .required },
15014 .{ .kind = .id_ref, .quantifier = .required },
15015 },
15016 },
15017 .{
15018 .name = "OpGroupBitwiseAndKHR",
15019 .opcode = 6403,
15020 .operands = &.{
15021 .{ .kind = .id_result_type, .quantifier = .required },
15022 .{ .kind = .id_result, .quantifier = .required },
15023 .{ .kind = .id_scope, .quantifier = .required },
15024 .{ .kind = .group_operation, .quantifier = .required },
15025 .{ .kind = .id_ref, .quantifier = .required },
15026 },
15027 },
15028 .{
15029 .name = "OpGroupBitwiseOrKHR",
15030 .opcode = 6404,
15031 .operands = &.{
15032 .{ .kind = .id_result_type, .quantifier = .required },
15033 .{ .kind = .id_result, .quantifier = .required },
15034 .{ .kind = .id_scope, .quantifier = .required },
15035 .{ .kind = .group_operation, .quantifier = .required },
15036 .{ .kind = .id_ref, .quantifier = .required },
15037 },
15038 },
15039 .{
15040 .name = "OpGroupBitwiseXorKHR",
15041 .opcode = 6405,
15042 .operands = &.{
15043 .{ .kind = .id_result_type, .quantifier = .required },
15044 .{ .kind = .id_result, .quantifier = .required },
15045 .{ .kind = .id_scope, .quantifier = .required },
15046 .{ .kind = .group_operation, .quantifier = .required },
15047 .{ .kind = .id_ref, .quantifier = .required },
15048 },
15049 },
15050 .{
15051 .name = "OpGroupLogicalAndKHR",
15052 .opcode = 6406,
15053 .operands = &.{
15054 .{ .kind = .id_result_type, .quantifier = .required },
15055 .{ .kind = .id_result, .quantifier = .required },
15056 .{ .kind = .id_scope, .quantifier = .required },
15057 .{ .kind = .group_operation, .quantifier = .required },
15058 .{ .kind = .id_ref, .quantifier = .required },
15059 },
15060 },
15061 .{
15062 .name = "OpGroupLogicalOrKHR",
15063 .opcode = 6407,
15064 .operands = &.{
15065 .{ .kind = .id_result_type, .quantifier = .required },
15066 .{ .kind = .id_result, .quantifier = .required },
15067 .{ .kind = .id_scope, .quantifier = .required },
15068 .{ .kind = .group_operation, .quantifier = .required },
15069 .{ .kind = .id_ref, .quantifier = .required },
15070 },
15071 },
15072 .{
15073 .name = "OpGroupLogicalXorKHR",
15074 .opcode = 6408,
15075 .operands = &.{
15076 .{ .kind = .id_result_type, .quantifier = .required },
15077 .{ .kind = .id_result, .quantifier = .required },
15078 .{ .kind = .id_scope, .quantifier = .required },
15079 .{ .kind = .group_operation, .quantifier = .required },
15080 .{ .kind = .id_ref, .quantifier = .required },
15081 },
15082 },
15083 .{
15084 .name = "OpRoundFToTF32INTEL",
15085 .opcode = 6426,
15086 .operands = &.{
15087 .{ .kind = .id_result_type, .quantifier = .required },
15088 .{ .kind = .id_result, .quantifier = .required },
15089 .{ .kind = .id_ref, .quantifier = .required },
15090 },
15091 },
15092 .{
15093 .name = "OpMaskedGatherINTEL",
15094 .opcode = 6428,
15095 .operands = &.{
15096 .{ .kind = .id_result_type, .quantifier = .required },
15097 .{ .kind = .id_result, .quantifier = .required },
15098 .{ .kind = .id_ref, .quantifier = .required },
15099 .{ .kind = .literal_integer, .quantifier = .required },
15100 .{ .kind = .id_ref, .quantifier = .required },
15101 .{ .kind = .id_ref, .quantifier = .required },
15102 },
15103 },
15104 .{
15105 .name = "OpMaskedScatterINTEL",
15106 .opcode = 6429,
15107 .operands = &.{
15108 .{ .kind = .id_ref, .quantifier = .required },
15109 .{ .kind = .id_ref, .quantifier = .required },
15110 .{ .kind = .literal_integer, .quantifier = .required },
15111 .{ .kind = .id_ref, .quantifier = .required },
15112 },
15113 },
15114 .{
15115 .name = "OpConvertHandleToImageINTEL",
15116 .opcode = 6529,
15117 .operands = &.{
15118 .{ .kind = .id_result_type, .quantifier = .required },
15119 .{ .kind = .id_result, .quantifier = .required },
15120 .{ .kind = .id_ref, .quantifier = .required },
15121 },
15122 },
15123 .{
15124 .name = "OpConvertHandleToSamplerINTEL",
15125 .opcode = 6530,
15126 .operands = &.{
15127 .{ .kind = .id_result_type, .quantifier = .required },
15128 .{ .kind = .id_result, .quantifier = .required },
15129 .{ .kind = .id_ref, .quantifier = .required },
15130 },
15131 },
15132 .{
15133 .name = "OpConvertHandleToSampledImageINTEL",
15134 .opcode = 6531,
15135 .operands = &.{
15136 .{ .kind = .id_result_type, .quantifier = .required },
15137 .{ .kind = .id_result, .quantifier = .required },
15138 .{ .kind = .id_ref, .quantifier = .required },
15139 },
15140 },
15141 .{
15142 .name = "OpFDot2MixAcc32VALVE",
15143 .opcode = 6916,
15144 .operands = &.{
15145 .{ .kind = .id_result_type, .quantifier = .required },
15146 .{ .kind = .id_result, .quantifier = .required },
15147 .{ .kind = .id_ref, .quantifier = .required },
15148 .{ .kind = .id_ref, .quantifier = .required },
15149 .{ .kind = .id_ref, .quantifier = .required },
15150 },
15151 },
15152 .{
15153 .name = "OpFDot2MixAcc16VALVE",
15154 .opcode = 6917,
15155 .operands = &.{
15156 .{ .kind = .id_result_type, .quantifier = .required },
15157 .{ .kind = .id_result, .quantifier = .required },
15158 .{ .kind = .id_ref, .quantifier = .required },
15159 .{ .kind = .id_ref, .quantifier = .required },
15160 .{ .kind = .id_ref, .quantifier = .required },
15161 },
15162 },
15163 .{
15164 .name = "OpFDot4MixAcc32VALVE",
15165 .opcode = 6918,
15166 .operands = &.{
15167 .{ .kind = .id_result_type, .quantifier = .required },
15168 .{ .kind = .id_result, .quantifier = .required },
15169 .{ .kind = .id_ref, .quantifier = .required },
15170 .{ .kind = .id_ref, .quantifier = .required },
15171 .{ .kind = .id_ref, .quantifier = .required },
15172 },
15173 },
15174 },
15175 .@"OpenCL.std" => &.{
15176 .{
15177 .name = "acos",
15178 .opcode = 0,
15179 .operands = &.{
15180 .{ .kind = .id_ref, .quantifier = .required },
15181 },
15182 },
15183 .{
15184 .name = "acosh",
15185 .opcode = 1,
15186 .operands = &.{
15187 .{ .kind = .id_ref, .quantifier = .required },
15188 },
15189 },
15190 .{
15191 .name = "acospi",
15192 .opcode = 2,
15193 .operands = &.{
15194 .{ .kind = .id_ref, .quantifier = .required },
15195 },
15196 },
15197 .{
15198 .name = "asin",
15199 .opcode = 3,
15200 .operands = &.{
15201 .{ .kind = .id_ref, .quantifier = .required },
15202 },
15203 },
15204 .{
15205 .name = "asinh",
15206 .opcode = 4,
15207 .operands = &.{
15208 .{ .kind = .id_ref, .quantifier = .required },
15209 },
15210 },
15211 .{
15212 .name = "asinpi",
15213 .opcode = 5,
15214 .operands = &.{
15215 .{ .kind = .id_ref, .quantifier = .required },
15216 },
15217 },
15218 .{
15219 .name = "atan",
15220 .opcode = 6,
15221 .operands = &.{
15222 .{ .kind = .id_ref, .quantifier = .required },
15223 },
15224 },
15225 .{
15226 .name = "atan2",
15227 .opcode = 7,
15228 .operands = &.{
15229 .{ .kind = .id_ref, .quantifier = .required },
15230 .{ .kind = .id_ref, .quantifier = .required },
15231 },
15232 },
15233 .{
15234 .name = "atanh",
15235 .opcode = 8,
15236 .operands = &.{
15237 .{ .kind = .id_ref, .quantifier = .required },
15238 },
15239 },
15240 .{
15241 .name = "atanpi",
15242 .opcode = 9,
15243 .operands = &.{
15244 .{ .kind = .id_ref, .quantifier = .required },
15245 },
15246 },
15247 .{
15248 .name = "atan2pi",
15249 .opcode = 10,
15250 .operands = &.{
15251 .{ .kind = .id_ref, .quantifier = .required },
15252 .{ .kind = .id_ref, .quantifier = .required },
15253 },
15254 },
15255 .{
15256 .name = "cbrt",
15257 .opcode = 11,
15258 .operands = &.{
15259 .{ .kind = .id_ref, .quantifier = .required },
15260 },
15261 },
15262 .{
15263 .name = "ceil",
15264 .opcode = 12,
15265 .operands = &.{
15266 .{ .kind = .id_ref, .quantifier = .required },
15267 },
15268 },
15269 .{
15270 .name = "copysign",
15271 .opcode = 13,
15272 .operands = &.{
15273 .{ .kind = .id_ref, .quantifier = .required },
15274 .{ .kind = .id_ref, .quantifier = .required },
15275 },
15276 },
15277 .{
15278 .name = "cos",
15279 .opcode = 14,
15280 .operands = &.{
15281 .{ .kind = .id_ref, .quantifier = .required },
15282 },
15283 },
15284 .{
15285 .name = "cosh",
15286 .opcode = 15,
15287 .operands = &.{
15288 .{ .kind = .id_ref, .quantifier = .required },
15289 },
15290 },
15291 .{
15292 .name = "cospi",
15293 .opcode = 16,
15294 .operands = &.{
15295 .{ .kind = .id_ref, .quantifier = .required },
15296 },
15297 },
15298 .{
15299 .name = "erfc",
15300 .opcode = 17,
15301 .operands = &.{
15302 .{ .kind = .id_ref, .quantifier = .required },
15303 },
15304 },
15305 .{
15306 .name = "erf",
15307 .opcode = 18,
15308 .operands = &.{
15309 .{ .kind = .id_ref, .quantifier = .required },
15310 },
15311 },
15312 .{
15313 .name = "exp",
15314 .opcode = 19,
15315 .operands = &.{
15316 .{ .kind = .id_ref, .quantifier = .required },
15317 },
15318 },
15319 .{
15320 .name = "exp2",
15321 .opcode = 20,
15322 .operands = &.{
15323 .{ .kind = .id_ref, .quantifier = .required },
15324 },
15325 },
15326 .{
15327 .name = "exp10",
15328 .opcode = 21,
15329 .operands = &.{
15330 .{ .kind = .id_ref, .quantifier = .required },
15331 },
15332 },
15333 .{
15334 .name = "expm1",
15335 .opcode = 22,
15336 .operands = &.{
15337 .{ .kind = .id_ref, .quantifier = .required },
15338 },
15339 },
15340 .{
15341 .name = "fabs",
15342 .opcode = 23,
15343 .operands = &.{
15344 .{ .kind = .id_ref, .quantifier = .required },
15345 },
15346 },
15347 .{
15348 .name = "fdim",
15349 .opcode = 24,
15350 .operands = &.{
15351 .{ .kind = .id_ref, .quantifier = .required },
15352 .{ .kind = .id_ref, .quantifier = .required },
15353 },
15354 },
15355 .{
15356 .name = "floor",
15357 .opcode = 25,
15358 .operands = &.{
15359 .{ .kind = .id_ref, .quantifier = .required },
15360 },
15361 },
15362 .{
15363 .name = "fma",
15364 .opcode = 26,
15365 .operands = &.{
15366 .{ .kind = .id_ref, .quantifier = .required },
15367 .{ .kind = .id_ref, .quantifier = .required },
15368 .{ .kind = .id_ref, .quantifier = .required },
15369 },
15370 },
15371 .{
15372 .name = "fmax",
15373 .opcode = 27,
15374 .operands = &.{
15375 .{ .kind = .id_ref, .quantifier = .required },
15376 .{ .kind = .id_ref, .quantifier = .required },
15377 },
15378 },
15379 .{
15380 .name = "fmin",
15381 .opcode = 28,
15382 .operands = &.{
15383 .{ .kind = .id_ref, .quantifier = .required },
15384 .{ .kind = .id_ref, .quantifier = .required },
15385 },
15386 },
15387 .{
15388 .name = "fmod",
15389 .opcode = 29,
15390 .operands = &.{
15391 .{ .kind = .id_ref, .quantifier = .required },
15392 .{ .kind = .id_ref, .quantifier = .required },
15393 },
15394 },
15395 .{
15396 .name = "fract",
15397 .opcode = 30,
15398 .operands = &.{
15399 .{ .kind = .id_ref, .quantifier = .required },
15400 .{ .kind = .id_ref, .quantifier = .required },
15401 },
15402 },
15403 .{
15404 .name = "frexp",
15405 .opcode = 31,
15406 .operands = &.{
15407 .{ .kind = .id_ref, .quantifier = .required },
15408 .{ .kind = .id_ref, .quantifier = .required },
15409 },
15410 },
15411 .{
15412 .name = "hypot",
15413 .opcode = 32,
15414 .operands = &.{
15415 .{ .kind = .id_ref, .quantifier = .required },
15416 .{ .kind = .id_ref, .quantifier = .required },
15417 },
15418 },
15419 .{
15420 .name = "ilogb",
15421 .opcode = 33,
15422 .operands = &.{
15423 .{ .kind = .id_ref, .quantifier = .required },
15424 },
15425 },
15426 .{
15427 .name = "ldexp",
15428 .opcode = 34,
15429 .operands = &.{
15430 .{ .kind = .id_ref, .quantifier = .required },
15431 .{ .kind = .id_ref, .quantifier = .required },
15432 },
15433 },
15434 .{
15435 .name = "lgamma",
15436 .opcode = 35,
15437 .operands = &.{
15438 .{ .kind = .id_ref, .quantifier = .required },
15439 },
15440 },
15441 .{
15442 .name = "lgamma_r",
15443 .opcode = 36,
15444 .operands = &.{
15445 .{ .kind = .id_ref, .quantifier = .required },
15446 .{ .kind = .id_ref, .quantifier = .required },
15447 },
15448 },
15449 .{
15450 .name = "log",
15451 .opcode = 37,
15452 .operands = &.{
15453 .{ .kind = .id_ref, .quantifier = .required },
15454 },
15455 },
15456 .{
15457 .name = "log2",
15458 .opcode = 38,
15459 .operands = &.{
15460 .{ .kind = .id_ref, .quantifier = .required },
15461 },
15462 },
15463 .{
15464 .name = "log10",
15465 .opcode = 39,
15466 .operands = &.{
15467 .{ .kind = .id_ref, .quantifier = .required },
15468 },
15469 },
15470 .{
15471 .name = "log1p",
15472 .opcode = 40,
15473 .operands = &.{
15474 .{ .kind = .id_ref, .quantifier = .required },
15475 },
15476 },
15477 .{
15478 .name = "logb",
15479 .opcode = 41,
15480 .operands = &.{
15481 .{ .kind = .id_ref, .quantifier = .required },
15482 },
15483 },
15484 .{
15485 .name = "mad",
15486 .opcode = 42,
15487 .operands = &.{
15488 .{ .kind = .id_ref, .quantifier = .required },
15489 .{ .kind = .id_ref, .quantifier = .required },
15490 .{ .kind = .id_ref, .quantifier = .required },
15491 },
15492 },
15493 .{
15494 .name = "maxmag",
15495 .opcode = 43,
15496 .operands = &.{
15497 .{ .kind = .id_ref, .quantifier = .required },
15498 .{ .kind = .id_ref, .quantifier = .required },
15499 },
15500 },
15501 .{
15502 .name = "minmag",
15503 .opcode = 44,
15504 .operands = &.{
15505 .{ .kind = .id_ref, .quantifier = .required },
15506 .{ .kind = .id_ref, .quantifier = .required },
15507 },
15508 },
15509 .{
15510 .name = "modf",
15511 .opcode = 45,
15512 .operands = &.{
15513 .{ .kind = .id_ref, .quantifier = .required },
15514 .{ .kind = .id_ref, .quantifier = .required },
15515 },
15516 },
15517 .{
15518 .name = "nan",
15519 .opcode = 46,
15520 .operands = &.{
15521 .{ .kind = .id_ref, .quantifier = .required },
15522 },
15523 },
15524 .{
15525 .name = "nextafter",
15526 .opcode = 47,
15527 .operands = &.{
15528 .{ .kind = .id_ref, .quantifier = .required },
15529 .{ .kind = .id_ref, .quantifier = .required },
15530 },
15531 },
15532 .{
15533 .name = "pow",
15534 .opcode = 48,
15535 .operands = &.{
15536 .{ .kind = .id_ref, .quantifier = .required },
15537 .{ .kind = .id_ref, .quantifier = .required },
15538 },
15539 },
15540 .{
15541 .name = "pown",
15542 .opcode = 49,
15543 .operands = &.{
15544 .{ .kind = .id_ref, .quantifier = .required },
15545 .{ .kind = .id_ref, .quantifier = .required },
15546 },
15547 },
15548 .{
15549 .name = "powr",
15550 .opcode = 50,
15551 .operands = &.{
15552 .{ .kind = .id_ref, .quantifier = .required },
15553 .{ .kind = .id_ref, .quantifier = .required },
15554 },
15555 },
15556 .{
15557 .name = "remainder",
15558 .opcode = 51,
15559 .operands = &.{
15560 .{ .kind = .id_ref, .quantifier = .required },
15561 .{ .kind = .id_ref, .quantifier = .required },
15562 },
15563 },
15564 .{
15565 .name = "remquo",
15566 .opcode = 52,
15567 .operands = &.{
15568 .{ .kind = .id_ref, .quantifier = .required },
15569 .{ .kind = .id_ref, .quantifier = .required },
15570 .{ .kind = .id_ref, .quantifier = .required },
15571 },
15572 },
15573 .{
15574 .name = "rint",
15575 .opcode = 53,
15576 .operands = &.{
15577 .{ .kind = .id_ref, .quantifier = .required },
15578 },
15579 },
15580 .{
15581 .name = "rootn",
15582 .opcode = 54,
15583 .operands = &.{
15584 .{ .kind = .id_ref, .quantifier = .required },
15585 .{ .kind = .id_ref, .quantifier = .required },
15586 },
15587 },
15588 .{
15589 .name = "round",
15590 .opcode = 55,
15591 .operands = &.{
15592 .{ .kind = .id_ref, .quantifier = .required },
15593 },
15594 },
15595 .{
15596 .name = "rsqrt",
15597 .opcode = 56,
15598 .operands = &.{
15599 .{ .kind = .id_ref, .quantifier = .required },
15600 },
15601 },
15602 .{
15603 .name = "sin",
15604 .opcode = 57,
15605 .operands = &.{
15606 .{ .kind = .id_ref, .quantifier = .required },
15607 },
15608 },
15609 .{
15610 .name = "sincos",
15611 .opcode = 58,
15612 .operands = &.{
15613 .{ .kind = .id_ref, .quantifier = .required },
15614 .{ .kind = .id_ref, .quantifier = .required },
15615 },
15616 },
15617 .{
15618 .name = "sinh",
15619 .opcode = 59,
15620 .operands = &.{
15621 .{ .kind = .id_ref, .quantifier = .required },
15622 },
15623 },
15624 .{
15625 .name = "sinpi",
15626 .opcode = 60,
15627 .operands = &.{
15628 .{ .kind = .id_ref, .quantifier = .required },
15629 },
15630 },
15631 .{
15632 .name = "sqrt",
15633 .opcode = 61,
15634 .operands = &.{
15635 .{ .kind = .id_ref, .quantifier = .required },
15636 },
15637 },
15638 .{
15639 .name = "tan",
15640 .opcode = 62,
15641 .operands = &.{
15642 .{ .kind = .id_ref, .quantifier = .required },
15643 },
15644 },
15645 .{
15646 .name = "tanh",
15647 .opcode = 63,
15648 .operands = &.{
15649 .{ .kind = .id_ref, .quantifier = .required },
15650 },
15651 },
15652 .{
15653 .name = "tanpi",
15654 .opcode = 64,
15655 .operands = &.{
15656 .{ .kind = .id_ref, .quantifier = .required },
15657 },
15658 },
15659 .{
15660 .name = "tgamma",
15661 .opcode = 65,
15662 .operands = &.{
15663 .{ .kind = .id_ref, .quantifier = .required },
15664 },
15665 },
15666 .{
15667 .name = "trunc",
15668 .opcode = 66,
15669 .operands = &.{
15670 .{ .kind = .id_ref, .quantifier = .required },
15671 },
15672 },
15673 .{
15674 .name = "half_cos",
15675 .opcode = 67,
15676 .operands = &.{
15677 .{ .kind = .id_ref, .quantifier = .required },
15678 },
15679 },
15680 .{
15681 .name = "half_divide",
15682 .opcode = 68,
15683 .operands = &.{
15684 .{ .kind = .id_ref, .quantifier = .required },
15685 .{ .kind = .id_ref, .quantifier = .required },
15686 },
15687 },
15688 .{
15689 .name = "half_exp",
15690 .opcode = 69,
15691 .operands = &.{
15692 .{ .kind = .id_ref, .quantifier = .required },
15693 },
15694 },
15695 .{
15696 .name = "half_exp2",
15697 .opcode = 70,
15698 .operands = &.{
15699 .{ .kind = .id_ref, .quantifier = .required },
15700 },
15701 },
15702 .{
15703 .name = "half_exp10",
15704 .opcode = 71,
15705 .operands = &.{
15706 .{ .kind = .id_ref, .quantifier = .required },
15707 },
15708 },
15709 .{
15710 .name = "half_log",
15711 .opcode = 72,
15712 .operands = &.{
15713 .{ .kind = .id_ref, .quantifier = .required },
15714 },
15715 },
15716 .{
15717 .name = "half_log2",
15718 .opcode = 73,
15719 .operands = &.{
15720 .{ .kind = .id_ref, .quantifier = .required },
15721 },
15722 },
15723 .{
15724 .name = "half_log10",
15725 .opcode = 74,
15726 .operands = &.{
15727 .{ .kind = .id_ref, .quantifier = .required },
15728 },
15729 },
15730 .{
15731 .name = "half_powr",
15732 .opcode = 75,
15733 .operands = &.{
15734 .{ .kind = .id_ref, .quantifier = .required },
15735 .{ .kind = .id_ref, .quantifier = .required },
15736 },
15737 },
15738 .{
15739 .name = "half_recip",
15740 .opcode = 76,
15741 .operands = &.{
15742 .{ .kind = .id_ref, .quantifier = .required },
15743 },
15744 },
15745 .{
15746 .name = "half_rsqrt",
15747 .opcode = 77,
15748 .operands = &.{
15749 .{ .kind = .id_ref, .quantifier = .required },
15750 },
15751 },
15752 .{
15753 .name = "half_sin",
15754 .opcode = 78,
15755 .operands = &.{
15756 .{ .kind = .id_ref, .quantifier = .required },
15757 },
15758 },
15759 .{
15760 .name = "half_sqrt",
15761 .opcode = 79,
15762 .operands = &.{
15763 .{ .kind = .id_ref, .quantifier = .required },
15764 },
15765 },
15766 .{
15767 .name = "half_tan",
15768 .opcode = 80,
15769 .operands = &.{
15770 .{ .kind = .id_ref, .quantifier = .required },
15771 },
15772 },
15773 .{
15774 .name = "native_cos",
15775 .opcode = 81,
15776 .operands = &.{
15777 .{ .kind = .id_ref, .quantifier = .required },
15778 },
15779 },
15780 .{
15781 .name = "native_divide",
15782 .opcode = 82,
15783 .operands = &.{
15784 .{ .kind = .id_ref, .quantifier = .required },
15785 .{ .kind = .id_ref, .quantifier = .required },
15786 },
15787 },
15788 .{
15789 .name = "native_exp",
15790 .opcode = 83,
15791 .operands = &.{
15792 .{ .kind = .id_ref, .quantifier = .required },
15793 },
15794 },
15795 .{
15796 .name = "native_exp2",
15797 .opcode = 84,
15798 .operands = &.{
15799 .{ .kind = .id_ref, .quantifier = .required },
15800 },
15801 },
15802 .{
15803 .name = "native_exp10",
15804 .opcode = 85,
15805 .operands = &.{
15806 .{ .kind = .id_ref, .quantifier = .required },
15807 },
15808 },
15809 .{
15810 .name = "native_log",
15811 .opcode = 86,
15812 .operands = &.{
15813 .{ .kind = .id_ref, .quantifier = .required },
15814 },
15815 },
15816 .{
15817 .name = "native_log2",
15818 .opcode = 87,
15819 .operands = &.{
15820 .{ .kind = .id_ref, .quantifier = .required },
15821 },
15822 },
15823 .{
15824 .name = "native_log10",
15825 .opcode = 88,
15826 .operands = &.{
15827 .{ .kind = .id_ref, .quantifier = .required },
15828 },
15829 },
15830 .{
15831 .name = "native_powr",
15832 .opcode = 89,
15833 .operands = &.{
15834 .{ .kind = .id_ref, .quantifier = .required },
15835 .{ .kind = .id_ref, .quantifier = .required },
15836 },
15837 },
15838 .{
15839 .name = "native_recip",
15840 .opcode = 90,
15841 .operands = &.{
15842 .{ .kind = .id_ref, .quantifier = .required },
15843 },
15844 },
15845 .{
15846 .name = "native_rsqrt",
15847 .opcode = 91,
15848 .operands = &.{
15849 .{ .kind = .id_ref, .quantifier = .required },
15850 },
15851 },
15852 .{
15853 .name = "native_sin",
15854 .opcode = 92,
15855 .operands = &.{
15856 .{ .kind = .id_ref, .quantifier = .required },
15857 },
15858 },
15859 .{
15860 .name = "native_sqrt",
15861 .opcode = 93,
15862 .operands = &.{
15863 .{ .kind = .id_ref, .quantifier = .required },
15864 },
15865 },
15866 .{
15867 .name = "native_tan",
15868 .opcode = 94,
15869 .operands = &.{
15870 .{ .kind = .id_ref, .quantifier = .required },
15871 },
15872 },
15873 .{
15874 .name = "fclamp",
15875 .opcode = 95,
15876 .operands = &.{
15877 .{ .kind = .id_ref, .quantifier = .required },
15878 .{ .kind = .id_ref, .quantifier = .required },
15879 .{ .kind = .id_ref, .quantifier = .required },
15880 },
15881 },
15882 .{
15883 .name = "degrees",
15884 .opcode = 96,
15885 .operands = &.{
15886 .{ .kind = .id_ref, .quantifier = .required },
15887 },
15888 },
15889 .{
15890 .name = "fmax_common",
15891 .opcode = 97,
15892 .operands = &.{
15893 .{ .kind = .id_ref, .quantifier = .required },
15894 .{ .kind = .id_ref, .quantifier = .required },
15895 },
15896 },
15897 .{
15898 .name = "fmin_common",
15899 .opcode = 98,
15900 .operands = &.{
15901 .{ .kind = .id_ref, .quantifier = .required },
15902 .{ .kind = .id_ref, .quantifier = .required },
15903 },
15904 },
15905 .{
15906 .name = "mix",
15907 .opcode = 99,
15908 .operands = &.{
15909 .{ .kind = .id_ref, .quantifier = .required },
15910 .{ .kind = .id_ref, .quantifier = .required },
15911 .{ .kind = .id_ref, .quantifier = .required },
15912 },
15913 },
15914 .{
15915 .name = "radians",
15916 .opcode = 100,
15917 .operands = &.{
15918 .{ .kind = .id_ref, .quantifier = .required },
15919 },
15920 },
15921 .{
15922 .name = "step",
15923 .opcode = 101,
15924 .operands = &.{
15925 .{ .kind = .id_ref, .quantifier = .required },
15926 .{ .kind = .id_ref, .quantifier = .required },
15927 },
15928 },
15929 .{
15930 .name = "smoothstep",
15931 .opcode = 102,
15932 .operands = &.{
15933 .{ .kind = .id_ref, .quantifier = .required },
15934 .{ .kind = .id_ref, .quantifier = .required },
15935 .{ .kind = .id_ref, .quantifier = .required },
15936 },
15937 },
15938 .{
15939 .name = "sign",
15940 .opcode = 103,
15941 .operands = &.{
15942 .{ .kind = .id_ref, .quantifier = .required },
15943 },
15944 },
15945 .{
15946 .name = "cross",
15947 .opcode = 104,
15948 .operands = &.{
15949 .{ .kind = .id_ref, .quantifier = .required },
15950 .{ .kind = .id_ref, .quantifier = .required },
15951 },
15952 },
15953 .{
15954 .name = "distance",
15955 .opcode = 105,
15956 .operands = &.{
15957 .{ .kind = .id_ref, .quantifier = .required },
15958 .{ .kind = .id_ref, .quantifier = .required },
15959 },
15960 },
15961 .{
15962 .name = "length",
15963 .opcode = 106,
15964 .operands = &.{
15965 .{ .kind = .id_ref, .quantifier = .required },
15966 },
15967 },
15968 .{
15969 .name = "normalize",
15970 .opcode = 107,
15971 .operands = &.{
15972 .{ .kind = .id_ref, .quantifier = .required },
15973 },
15974 },
15975 .{
15976 .name = "fast_distance",
15977 .opcode = 108,
15978 .operands = &.{
15979 .{ .kind = .id_ref, .quantifier = .required },
15980 .{ .kind = .id_ref, .quantifier = .required },
15981 },
15982 },
15983 .{
15984 .name = "fast_length",
15985 .opcode = 109,
15986 .operands = &.{
15987 .{ .kind = .id_ref, .quantifier = .required },
15988 },
15989 },
15990 .{
15991 .name = "fast_normalize",
15992 .opcode = 110,
15993 .operands = &.{
15994 .{ .kind = .id_ref, .quantifier = .required },
15995 },
15996 },
15997 .{
15998 .name = "s_abs",
15999 .opcode = 141,
16000 .operands = &.{
16001 .{ .kind = .id_ref, .quantifier = .required },
16002 },
16003 },
16004 .{
16005 .name = "s_abs_diff",
16006 .opcode = 142,
16007 .operands = &.{
16008 .{ .kind = .id_ref, .quantifier = .required },
16009 .{ .kind = .id_ref, .quantifier = .required },
16010 },
16011 },
16012 .{
16013 .name = "s_add_sat",
16014 .opcode = 143,
16015 .operands = &.{
16016 .{ .kind = .id_ref, .quantifier = .required },
16017 .{ .kind = .id_ref, .quantifier = .required },
16018 },
16019 },
16020 .{
16021 .name = "u_add_sat",
16022 .opcode = 144,
16023 .operands = &.{
16024 .{ .kind = .id_ref, .quantifier = .required },
16025 .{ .kind = .id_ref, .quantifier = .required },
16026 },
16027 },
16028 .{
16029 .name = "s_hadd",
16030 .opcode = 145,
16031 .operands = &.{
16032 .{ .kind = .id_ref, .quantifier = .required },
16033 .{ .kind = .id_ref, .quantifier = .required },
16034 },
16035 },
16036 .{
16037 .name = "u_hadd",
16038 .opcode = 146,
16039 .operands = &.{
16040 .{ .kind = .id_ref, .quantifier = .required },
16041 .{ .kind = .id_ref, .quantifier = .required },
16042 },
16043 },
16044 .{
16045 .name = "s_rhadd",
16046 .opcode = 147,
16047 .operands = &.{
16048 .{ .kind = .id_ref, .quantifier = .required },
16049 .{ .kind = .id_ref, .quantifier = .required },
16050 },
16051 },
16052 .{
16053 .name = "u_rhadd",
16054 .opcode = 148,
16055 .operands = &.{
16056 .{ .kind = .id_ref, .quantifier = .required },
16057 .{ .kind = .id_ref, .quantifier = .required },
16058 },
16059 },
16060 .{
16061 .name = "s_clamp",
16062 .opcode = 149,
16063 .operands = &.{
16064 .{ .kind = .id_ref, .quantifier = .required },
16065 .{ .kind = .id_ref, .quantifier = .required },
16066 .{ .kind = .id_ref, .quantifier = .required },
16067 },
16068 },
16069 .{
16070 .name = "u_clamp",
16071 .opcode = 150,
16072 .operands = &.{
16073 .{ .kind = .id_ref, .quantifier = .required },
16074 .{ .kind = .id_ref, .quantifier = .required },
16075 .{ .kind = .id_ref, .quantifier = .required },
16076 },
16077 },
16078 .{
16079 .name = "clz",
16080 .opcode = 151,
16081 .operands = &.{
16082 .{ .kind = .id_ref, .quantifier = .required },
16083 },
16084 },
16085 .{
16086 .name = "ctz",
16087 .opcode = 152,
16088 .operands = &.{
16089 .{ .kind = .id_ref, .quantifier = .required },
16090 },
16091 },
16092 .{
16093 .name = "s_mad_hi",
16094 .opcode = 153,
16095 .operands = &.{
16096 .{ .kind = .id_ref, .quantifier = .required },
16097 .{ .kind = .id_ref, .quantifier = .required },
16098 .{ .kind = .id_ref, .quantifier = .required },
16099 },
16100 },
16101 .{
16102 .name = "u_mad_sat",
16103 .opcode = 154,
16104 .operands = &.{
16105 .{ .kind = .id_ref, .quantifier = .required },
16106 .{ .kind = .id_ref, .quantifier = .required },
16107 .{ .kind = .id_ref, .quantifier = .required },
16108 },
16109 },
16110 .{
16111 .name = "s_mad_sat",
16112 .opcode = 155,
16113 .operands = &.{
16114 .{ .kind = .id_ref, .quantifier = .required },
16115 .{ .kind = .id_ref, .quantifier = .required },
16116 .{ .kind = .id_ref, .quantifier = .required },
16117 },
16118 },
16119 .{
16120 .name = "s_max",
16121 .opcode = 156,
16122 .operands = &.{
16123 .{ .kind = .id_ref, .quantifier = .required },
16124 .{ .kind = .id_ref, .quantifier = .required },
16125 },
16126 },
16127 .{
16128 .name = "u_max",
16129 .opcode = 157,
16130 .operands = &.{
16131 .{ .kind = .id_ref, .quantifier = .required },
16132 .{ .kind = .id_ref, .quantifier = .required },
16133 },
16134 },
16135 .{
16136 .name = "s_min",
16137 .opcode = 158,
16138 .operands = &.{
16139 .{ .kind = .id_ref, .quantifier = .required },
16140 .{ .kind = .id_ref, .quantifier = .required },
16141 },
16142 },
16143 .{
16144 .name = "u_min",
16145 .opcode = 159,
16146 .operands = &.{
16147 .{ .kind = .id_ref, .quantifier = .required },
16148 .{ .kind = .id_ref, .quantifier = .required },
16149 },
16150 },
16151 .{
16152 .name = "s_mul_hi",
16153 .opcode = 160,
16154 .operands = &.{
16155 .{ .kind = .id_ref, .quantifier = .required },
16156 .{ .kind = .id_ref, .quantifier = .required },
16157 },
16158 },
16159 .{
16160 .name = "rotate",
16161 .opcode = 161,
16162 .operands = &.{
16163 .{ .kind = .id_ref, .quantifier = .required },
16164 .{ .kind = .id_ref, .quantifier = .required },
16165 },
16166 },
16167 .{
16168 .name = "s_sub_sat",
16169 .opcode = 162,
16170 .operands = &.{
16171 .{ .kind = .id_ref, .quantifier = .required },
16172 .{ .kind = .id_ref, .quantifier = .required },
16173 },
16174 },
16175 .{
16176 .name = "u_sub_sat",
16177 .opcode = 163,
16178 .operands = &.{
16179 .{ .kind = .id_ref, .quantifier = .required },
16180 .{ .kind = .id_ref, .quantifier = .required },
16181 },
16182 },
16183 .{
16184 .name = "u_upsample",
16185 .opcode = 164,
16186 .operands = &.{
16187 .{ .kind = .id_ref, .quantifier = .required },
16188 .{ .kind = .id_ref, .quantifier = .required },
16189 },
16190 },
16191 .{
16192 .name = "s_upsample",
16193 .opcode = 165,
16194 .operands = &.{
16195 .{ .kind = .id_ref, .quantifier = .required },
16196 .{ .kind = .id_ref, .quantifier = .required },
16197 },
16198 },
16199 .{
16200 .name = "popcount",
16201 .opcode = 166,
16202 .operands = &.{
16203 .{ .kind = .id_ref, .quantifier = .required },
16204 },
16205 },
16206 .{
16207 .name = "s_mad24",
16208 .opcode = 167,
16209 .operands = &.{
16210 .{ .kind = .id_ref, .quantifier = .required },
16211 .{ .kind = .id_ref, .quantifier = .required },
16212 .{ .kind = .id_ref, .quantifier = .required },
16213 },
16214 },
16215 .{
16216 .name = "u_mad24",
16217 .opcode = 168,
16218 .operands = &.{
16219 .{ .kind = .id_ref, .quantifier = .required },
16220 .{ .kind = .id_ref, .quantifier = .required },
16221 .{ .kind = .id_ref, .quantifier = .required },
16222 },
16223 },
16224 .{
16225 .name = "s_mul24",
16226 .opcode = 169,
16227 .operands = &.{
16228 .{ .kind = .id_ref, .quantifier = .required },
16229 .{ .kind = .id_ref, .quantifier = .required },
16230 },
16231 },
16232 .{
16233 .name = "u_mul24",
16234 .opcode = 170,
16235 .operands = &.{
16236 .{ .kind = .id_ref, .quantifier = .required },
16237 .{ .kind = .id_ref, .quantifier = .required },
16238 },
16239 },
16240 .{
16241 .name = "vloadn",
16242 .opcode = 171,
16243 .operands = &.{
16244 .{ .kind = .id_ref, .quantifier = .required },
16245 .{ .kind = .id_ref, .quantifier = .required },
16246 .{ .kind = .literal_integer, .quantifier = .required },
16247 },
16248 },
16249 .{
16250 .name = "vstoren",
16251 .opcode = 172,
16252 .operands = &.{
16253 .{ .kind = .id_ref, .quantifier = .required },
16254 .{ .kind = .id_ref, .quantifier = .required },
16255 .{ .kind = .id_ref, .quantifier = .required },
16256 },
16257 },
16258 .{
16259 .name = "vload_half",
16260 .opcode = 173,
16261 .operands = &.{
16262 .{ .kind = .id_ref, .quantifier = .required },
16263 .{ .kind = .id_ref, .quantifier = .required },
16264 },
16265 },
16266 .{
16267 .name = "vload_halfn",
16268 .opcode = 174,
16269 .operands = &.{
16270 .{ .kind = .id_ref, .quantifier = .required },
16271 .{ .kind = .id_ref, .quantifier = .required },
16272 .{ .kind = .literal_integer, .quantifier = .required },
16273 },
16274 },
16275 .{
16276 .name = "vstore_half",
16277 .opcode = 175,
16278 .operands = &.{
16279 .{ .kind = .id_ref, .quantifier = .required },
16280 .{ .kind = .id_ref, .quantifier = .required },
16281 .{ .kind = .id_ref, .quantifier = .required },
16282 },
16283 },
16284 .{
16285 .name = "vstore_half_r",
16286 .opcode = 176,
16287 .operands = &.{
16288 .{ .kind = .id_ref, .quantifier = .required },
16289 .{ .kind = .id_ref, .quantifier = .required },
16290 .{ .kind = .id_ref, .quantifier = .required },
16291 .{ .kind = .fp_rounding_mode, .quantifier = .required },
16292 },
16293 },
16294 .{
16295 .name = "vstore_halfn",
16296 .opcode = 177,
16297 .operands = &.{
16298 .{ .kind = .id_ref, .quantifier = .required },
16299 .{ .kind = .id_ref, .quantifier = .required },
16300 .{ .kind = .id_ref, .quantifier = .required },
16301 },
16302 },
16303 .{
16304 .name = "vstore_halfn_r",
16305 .opcode = 178,
16306 .operands = &.{
16307 .{ .kind = .id_ref, .quantifier = .required },
16308 .{ .kind = .id_ref, .quantifier = .required },
16309 .{ .kind = .id_ref, .quantifier = .required },
16310 .{ .kind = .fp_rounding_mode, .quantifier = .required },
16311 },
16312 },
16313 .{
16314 .name = "vloada_halfn",
16315 .opcode = 179,
16316 .operands = &.{
16317 .{ .kind = .id_ref, .quantifier = .required },
16318 .{ .kind = .id_ref, .quantifier = .required },
16319 .{ .kind = .literal_integer, .quantifier = .required },
16320 },
16321 },
16322 .{
16323 .name = "vstorea_halfn",
16324 .opcode = 180,
16325 .operands = &.{
16326 .{ .kind = .id_ref, .quantifier = .required },
16327 .{ .kind = .id_ref, .quantifier = .required },
16328 .{ .kind = .id_ref, .quantifier = .required },
16329 },
16330 },
16331 .{
16332 .name = "vstorea_halfn_r",
16333 .opcode = 181,
16334 .operands = &.{
16335 .{ .kind = .id_ref, .quantifier = .required },
16336 .{ .kind = .id_ref, .quantifier = .required },
16337 .{ .kind = .id_ref, .quantifier = .required },
16338 .{ .kind = .fp_rounding_mode, .quantifier = .required },
16339 },
16340 },
16341 .{
16342 .name = "shuffle",
16343 .opcode = 182,
16344 .operands = &.{
16345 .{ .kind = .id_ref, .quantifier = .required },
16346 .{ .kind = .id_ref, .quantifier = .required },
16347 },
16348 },
16349 .{
16350 .name = "shuffle2",
16351 .opcode = 183,
16352 .operands = &.{
16353 .{ .kind = .id_ref, .quantifier = .required },
16354 .{ .kind = .id_ref, .quantifier = .required },
16355 .{ .kind = .id_ref, .quantifier = .required },
16356 },
16357 },
16358 .{
16359 .name = "printf",
16360 .opcode = 184,
16361 .operands = &.{
16362 .{ .kind = .id_ref, .quantifier = .required },
16363 .{ .kind = .id_ref, .quantifier = .variadic },
16364 },
16365 },
16366 .{
16367 .name = "prefetch",
16368 .opcode = 185,
16369 .operands = &.{
16370 .{ .kind = .id_ref, .quantifier = .required },
16371 .{ .kind = .id_ref, .quantifier = .required },
16372 },
16373 },
16374 .{
16375 .name = "bitselect",
16376 .opcode = 186,
16377 .operands = &.{
16378 .{ .kind = .id_ref, .quantifier = .required },
16379 .{ .kind = .id_ref, .quantifier = .required },
16380 .{ .kind = .id_ref, .quantifier = .required },
16381 },
16382 },
16383 .{
16384 .name = "select",
16385 .opcode = 187,
16386 .operands = &.{
16387 .{ .kind = .id_ref, .quantifier = .required },
16388 .{ .kind = .id_ref, .quantifier = .required },
16389 .{ .kind = .id_ref, .quantifier = .required },
16390 },
16391 },
16392 .{
16393 .name = "u_abs",
16394 .opcode = 201,
16395 .operands = &.{
16396 .{ .kind = .id_ref, .quantifier = .required },
16397 },
16398 },
16399 .{
16400 .name = "u_abs_diff",
16401 .opcode = 202,
16402 .operands = &.{
16403 .{ .kind = .id_ref, .quantifier = .required },
16404 .{ .kind = .id_ref, .quantifier = .required },
16405 },
16406 },
16407 .{
16408 .name = "u_mul_hi",
16409 .opcode = 203,
16410 .operands = &.{
16411 .{ .kind = .id_ref, .quantifier = .required },
16412 .{ .kind = .id_ref, .quantifier = .required },
16413 },
16414 },
16415 .{
16416 .name = "u_mad_hi",
16417 .opcode = 204,
16418 .operands = &.{
16419 .{ .kind = .id_ref, .quantifier = .required },
16420 .{ .kind = .id_ref, .quantifier = .required },
16421 .{ .kind = .id_ref, .quantifier = .required },
16422 },
16423 },
16424 },
16425 .@"GLSL.std.450" => &.{
16426 .{
16427 .name = "Round",
16428 .opcode = 1,
16429 .operands = &.{
16430 .{ .kind = .id_ref, .quantifier = .required },
16431 },
16432 },
16433 .{
16434 .name = "RoundEven",
16435 .opcode = 2,
16436 .operands = &.{
16437 .{ .kind = .id_ref, .quantifier = .required },
16438 },
16439 },
16440 .{
16441 .name = "Trunc",
16442 .opcode = 3,
16443 .operands = &.{
16444 .{ .kind = .id_ref, .quantifier = .required },
16445 },
16446 },
16447 .{
16448 .name = "FAbs",
16449 .opcode = 4,
16450 .operands = &.{
16451 .{ .kind = .id_ref, .quantifier = .required },
16452 },
16453 },
16454 .{
16455 .name = "SAbs",
16456 .opcode = 5,
16457 .operands = &.{
16458 .{ .kind = .id_ref, .quantifier = .required },
16459 },
16460 },
16461 .{
16462 .name = "FSign",
16463 .opcode = 6,
16464 .operands = &.{
16465 .{ .kind = .id_ref, .quantifier = .required },
16466 },
16467 },
16468 .{
16469 .name = "SSign",
16470 .opcode = 7,
16471 .operands = &.{
16472 .{ .kind = .id_ref, .quantifier = .required },
16473 },
16474 },
16475 .{
16476 .name = "Floor",
16477 .opcode = 8,
16478 .operands = &.{
16479 .{ .kind = .id_ref, .quantifier = .required },
16480 },
16481 },
16482 .{
16483 .name = "Ceil",
16484 .opcode = 9,
16485 .operands = &.{
16486 .{ .kind = .id_ref, .quantifier = .required },
16487 },
16488 },
16489 .{
16490 .name = "Fract",
16491 .opcode = 10,
16492 .operands = &.{
16493 .{ .kind = .id_ref, .quantifier = .required },
16494 },
16495 },
16496 .{
16497 .name = "Radians",
16498 .opcode = 11,
16499 .operands = &.{
16500 .{ .kind = .id_ref, .quantifier = .required },
16501 },
16502 },
16503 .{
16504 .name = "Degrees",
16505 .opcode = 12,
16506 .operands = &.{
16507 .{ .kind = .id_ref, .quantifier = .required },
16508 },
16509 },
16510 .{
16511 .name = "Sin",
16512 .opcode = 13,
16513 .operands = &.{
16514 .{ .kind = .id_ref, .quantifier = .required },
16515 },
16516 },
16517 .{
16518 .name = "Cos",
16519 .opcode = 14,
16520 .operands = &.{
16521 .{ .kind = .id_ref, .quantifier = .required },
16522 },
16523 },
16524 .{
16525 .name = "Tan",
16526 .opcode = 15,
16527 .operands = &.{
16528 .{ .kind = .id_ref, .quantifier = .required },
16529 },
16530 },
16531 .{
16532 .name = "Asin",
16533 .opcode = 16,
16534 .operands = &.{
16535 .{ .kind = .id_ref, .quantifier = .required },
16536 },
16537 },
16538 .{
16539 .name = "Acos",
16540 .opcode = 17,
16541 .operands = &.{
16542 .{ .kind = .id_ref, .quantifier = .required },
16543 },
16544 },
16545 .{
16546 .name = "Atan",
16547 .opcode = 18,
16548 .operands = &.{
16549 .{ .kind = .id_ref, .quantifier = .required },
16550 },
16551 },
16552 .{
16553 .name = "Sinh",
16554 .opcode = 19,
16555 .operands = &.{
16556 .{ .kind = .id_ref, .quantifier = .required },
16557 },
16558 },
16559 .{
16560 .name = "Cosh",
16561 .opcode = 20,
16562 .operands = &.{
16563 .{ .kind = .id_ref, .quantifier = .required },
16564 },
16565 },
16566 .{
16567 .name = "Tanh",
16568 .opcode = 21,
16569 .operands = &.{
16570 .{ .kind = .id_ref, .quantifier = .required },
16571 },
16572 },
16573 .{
16574 .name = "Asinh",
16575 .opcode = 22,
16576 .operands = &.{
16577 .{ .kind = .id_ref, .quantifier = .required },
16578 },
16579 },
16580 .{
16581 .name = "Acosh",
16582 .opcode = 23,
16583 .operands = &.{
16584 .{ .kind = .id_ref, .quantifier = .required },
16585 },
16586 },
16587 .{
16588 .name = "Atanh",
16589 .opcode = 24,
16590 .operands = &.{
16591 .{ .kind = .id_ref, .quantifier = .required },
16592 },
16593 },
16594 .{
16595 .name = "Atan2",
16596 .opcode = 25,
16597 .operands = &.{
16598 .{ .kind = .id_ref, .quantifier = .required },
16599 .{ .kind = .id_ref, .quantifier = .required },
16600 },
16601 },
16602 .{
16603 .name = "Pow",
16604 .opcode = 26,
16605 .operands = &.{
16606 .{ .kind = .id_ref, .quantifier = .required },
16607 .{ .kind = .id_ref, .quantifier = .required },
16608 },
16609 },
16610 .{
16611 .name = "Exp",
16612 .opcode = 27,
16613 .operands = &.{
16614 .{ .kind = .id_ref, .quantifier = .required },
16615 },
16616 },
16617 .{
16618 .name = "Log",
16619 .opcode = 28,
16620 .operands = &.{
16621 .{ .kind = .id_ref, .quantifier = .required },
16622 },
16623 },
16624 .{
16625 .name = "Exp2",
16626 .opcode = 29,
16627 .operands = &.{
16628 .{ .kind = .id_ref, .quantifier = .required },
16629 },
16630 },
16631 .{
16632 .name = "Log2",
16633 .opcode = 30,
16634 .operands = &.{
16635 .{ .kind = .id_ref, .quantifier = .required },
16636 },
16637 },
16638 .{
16639 .name = "Sqrt",
16640 .opcode = 31,
16641 .operands = &.{
16642 .{ .kind = .id_ref, .quantifier = .required },
16643 },
16644 },
16645 .{
16646 .name = "InverseSqrt",
16647 .opcode = 32,
16648 .operands = &.{
16649 .{ .kind = .id_ref, .quantifier = .required },
16650 },
16651 },
16652 .{
16653 .name = "Determinant",
16654 .opcode = 33,
16655 .operands = &.{
16656 .{ .kind = .id_ref, .quantifier = .required },
16657 },
16658 },
16659 .{
16660 .name = "MatrixInverse",
16661 .opcode = 34,
16662 .operands = &.{
16663 .{ .kind = .id_ref, .quantifier = .required },
16664 },
16665 },
16666 .{
16667 .name = "Modf",
16668 .opcode = 35,
16669 .operands = &.{
16670 .{ .kind = .id_ref, .quantifier = .required },
16671 .{ .kind = .id_ref, .quantifier = .required },
16672 },
16673 },
16674 .{
16675 .name = "ModfStruct",
16676 .opcode = 36,
16677 .operands = &.{
16678 .{ .kind = .id_ref, .quantifier = .required },
16679 },
16680 },
16681 .{
16682 .name = "FMin",
16683 .opcode = 37,
16684 .operands = &.{
16685 .{ .kind = .id_ref, .quantifier = .required },
16686 .{ .kind = .id_ref, .quantifier = .required },
16687 },
16688 },
16689 .{
16690 .name = "UMin",
16691 .opcode = 38,
16692 .operands = &.{
16693 .{ .kind = .id_ref, .quantifier = .required },
16694 .{ .kind = .id_ref, .quantifier = .required },
16695 },
16696 },
16697 .{
16698 .name = "SMin",
16699 .opcode = 39,
16700 .operands = &.{
16701 .{ .kind = .id_ref, .quantifier = .required },
16702 .{ .kind = .id_ref, .quantifier = .required },
16703 },
16704 },
16705 .{
16706 .name = "FMax",
16707 .opcode = 40,
16708 .operands = &.{
16709 .{ .kind = .id_ref, .quantifier = .required },
16710 .{ .kind = .id_ref, .quantifier = .required },
16711 },
16712 },
16713 .{
16714 .name = "UMax",
16715 .opcode = 41,
16716 .operands = &.{
16717 .{ .kind = .id_ref, .quantifier = .required },
16718 .{ .kind = .id_ref, .quantifier = .required },
16719 },
16720 },
16721 .{
16722 .name = "SMax",
16723 .opcode = 42,
16724 .operands = &.{
16725 .{ .kind = .id_ref, .quantifier = .required },
16726 .{ .kind = .id_ref, .quantifier = .required },
16727 },
16728 },
16729 .{
16730 .name = "FClamp",
16731 .opcode = 43,
16732 .operands = &.{
16733 .{ .kind = .id_ref, .quantifier = .required },
16734 .{ .kind = .id_ref, .quantifier = .required },
16735 .{ .kind = .id_ref, .quantifier = .required },
16736 },
16737 },
16738 .{
16739 .name = "UClamp",
16740 .opcode = 44,
16741 .operands = &.{
16742 .{ .kind = .id_ref, .quantifier = .required },
16743 .{ .kind = .id_ref, .quantifier = .required },
16744 .{ .kind = .id_ref, .quantifier = .required },
16745 },
16746 },
16747 .{
16748 .name = "SClamp",
16749 .opcode = 45,
16750 .operands = &.{
16751 .{ .kind = .id_ref, .quantifier = .required },
16752 .{ .kind = .id_ref, .quantifier = .required },
16753 .{ .kind = .id_ref, .quantifier = .required },
16754 },
16755 },
16756 .{
16757 .name = "FMix",
16758 .opcode = 46,
16759 .operands = &.{
16760 .{ .kind = .id_ref, .quantifier = .required },
16761 .{ .kind = .id_ref, .quantifier = .required },
16762 .{ .kind = .id_ref, .quantifier = .required },
16763 },
16764 },
16765 .{
16766 .name = "IMix",
16767 .opcode = 47,
16768 .operands = &.{
16769 .{ .kind = .id_ref, .quantifier = .required },
16770 .{ .kind = .id_ref, .quantifier = .required },
16771 .{ .kind = .id_ref, .quantifier = .required },
16772 },
16773 },
16774 .{
16775 .name = "Step",
16776 .opcode = 48,
16777 .operands = &.{
16778 .{ .kind = .id_ref, .quantifier = .required },
16779 .{ .kind = .id_ref, .quantifier = .required },
16780 },
16781 },
16782 .{
16783 .name = "SmoothStep",
16784 .opcode = 49,
16785 .operands = &.{
16786 .{ .kind = .id_ref, .quantifier = .required },
16787 .{ .kind = .id_ref, .quantifier = .required },
16788 .{ .kind = .id_ref, .quantifier = .required },
16789 },
16790 },
16791 .{
16792 .name = "Fma",
16793 .opcode = 50,
16794 .operands = &.{
16795 .{ .kind = .id_ref, .quantifier = .required },
16796 .{ .kind = .id_ref, .quantifier = .required },
16797 .{ .kind = .id_ref, .quantifier = .required },
16798 },
16799 },
16800 .{
16801 .name = "Frexp",
16802 .opcode = 51,
16803 .operands = &.{
16804 .{ .kind = .id_ref, .quantifier = .required },
16805 .{ .kind = .id_ref, .quantifier = .required },
16806 },
16807 },
16808 .{
16809 .name = "FrexpStruct",
16810 .opcode = 52,
16811 .operands = &.{
16812 .{ .kind = .id_ref, .quantifier = .required },
16813 },
16814 },
16815 .{
16816 .name = "Ldexp",
16817 .opcode = 53,
16818 .operands = &.{
16819 .{ .kind = .id_ref, .quantifier = .required },
16820 .{ .kind = .id_ref, .quantifier = .required },
16821 },
16822 },
16823 .{
16824 .name = "PackSnorm4x8",
16825 .opcode = 54,
16826 .operands = &.{
16827 .{ .kind = .id_ref, .quantifier = .required },
16828 },
16829 },
16830 .{
16831 .name = "PackUnorm4x8",
16832 .opcode = 55,
16833 .operands = &.{
16834 .{ .kind = .id_ref, .quantifier = .required },
16835 },
16836 },
16837 .{
16838 .name = "PackSnorm2x16",
16839 .opcode = 56,
16840 .operands = &.{
16841 .{ .kind = .id_ref, .quantifier = .required },
16842 },
16843 },
16844 .{
16845 .name = "PackUnorm2x16",
16846 .opcode = 57,
16847 .operands = &.{
16848 .{ .kind = .id_ref, .quantifier = .required },
16849 },
16850 },
16851 .{
16852 .name = "PackHalf2x16",
16853 .opcode = 58,
16854 .operands = &.{
16855 .{ .kind = .id_ref, .quantifier = .required },
16856 },
16857 },
16858 .{
16859 .name = "PackDouble2x32",
16860 .opcode = 59,
16861 .operands = &.{
16862 .{ .kind = .id_ref, .quantifier = .required },
16863 },
16864 },
16865 .{
16866 .name = "UnpackSnorm2x16",
16867 .opcode = 60,
16868 .operands = &.{
16869 .{ .kind = .id_ref, .quantifier = .required },
16870 },
16871 },
16872 .{
16873 .name = "UnpackUnorm2x16",
16874 .opcode = 61,
16875 .operands = &.{
16876 .{ .kind = .id_ref, .quantifier = .required },
16877 },
16878 },
16879 .{
16880 .name = "UnpackHalf2x16",
16881 .opcode = 62,
16882 .operands = &.{
16883 .{ .kind = .id_ref, .quantifier = .required },
16884 },
16885 },
16886 .{
16887 .name = "UnpackSnorm4x8",
16888 .opcode = 63,
16889 .operands = &.{
16890 .{ .kind = .id_ref, .quantifier = .required },
16891 },
16892 },
16893 .{
16894 .name = "UnpackUnorm4x8",
16895 .opcode = 64,
16896 .operands = &.{
16897 .{ .kind = .id_ref, .quantifier = .required },
16898 },
16899 },
16900 .{
16901 .name = "UnpackDouble2x32",
16902 .opcode = 65,
16903 .operands = &.{
16904 .{ .kind = .id_ref, .quantifier = .required },
16905 },
16906 },
16907 .{
16908 .name = "Length",
16909 .opcode = 66,
16910 .operands = &.{
16911 .{ .kind = .id_ref, .quantifier = .required },
16912 },
16913 },
16914 .{
16915 .name = "Distance",
16916 .opcode = 67,
16917 .operands = &.{
16918 .{ .kind = .id_ref, .quantifier = .required },
16919 .{ .kind = .id_ref, .quantifier = .required },
16920 },
16921 },
16922 .{
16923 .name = "Cross",
16924 .opcode = 68,
16925 .operands = &.{
16926 .{ .kind = .id_ref, .quantifier = .required },
16927 .{ .kind = .id_ref, .quantifier = .required },
16928 },
16929 },
16930 .{
16931 .name = "Normalize",
16932 .opcode = 69,
16933 .operands = &.{
16934 .{ .kind = .id_ref, .quantifier = .required },
16935 },
16936 },
16937 .{
16938 .name = "FaceForward",
16939 .opcode = 70,
16940 .operands = &.{
16941 .{ .kind = .id_ref, .quantifier = .required },
16942 .{ .kind = .id_ref, .quantifier = .required },
16943 .{ .kind = .id_ref, .quantifier = .required },
16944 },
16945 },
16946 .{
16947 .name = "Reflect",
16948 .opcode = 71,
16949 .operands = &.{
16950 .{ .kind = .id_ref, .quantifier = .required },
16951 .{ .kind = .id_ref, .quantifier = .required },
16952 },
16953 },
16954 .{
16955 .name = "Refract",
16956 .opcode = 72,
16957 .operands = &.{
16958 .{ .kind = .id_ref, .quantifier = .required },
16959 .{ .kind = .id_ref, .quantifier = .required },
16960 .{ .kind = .id_ref, .quantifier = .required },
16961 },
16962 },
16963 .{
16964 .name = "FindILsb",
16965 .opcode = 73,
16966 .operands = &.{
16967 .{ .kind = .id_ref, .quantifier = .required },
16968 },
16969 },
16970 .{
16971 .name = "FindSMsb",
16972 .opcode = 74,
16973 .operands = &.{
16974 .{ .kind = .id_ref, .quantifier = .required },
16975 },
16976 },
16977 .{
16978 .name = "FindUMsb",
16979 .opcode = 75,
16980 .operands = &.{
16981 .{ .kind = .id_ref, .quantifier = .required },
16982 },
16983 },
16984 .{
16985 .name = "InterpolateAtCentroid",
16986 .opcode = 76,
16987 .operands = &.{
16988 .{ .kind = .id_ref, .quantifier = .required },
16989 },
16990 },
16991 .{
16992 .name = "InterpolateAtSample",
16993 .opcode = 77,
16994 .operands = &.{
16995 .{ .kind = .id_ref, .quantifier = .required },
16996 .{ .kind = .id_ref, .quantifier = .required },
16997 },
16998 },
16999 .{
17000 .name = "InterpolateAtOffset",
17001 .opcode = 78,
17002 .operands = &.{
17003 .{ .kind = .id_ref, .quantifier = .required },
17004 .{ .kind = .id_ref, .quantifier = .required },
17005 },
17006 },
17007 .{
17008 .name = "NMin",
17009 .opcode = 79,
17010 .operands = &.{
17011 .{ .kind = .id_ref, .quantifier = .required },
17012 .{ .kind = .id_ref, .quantifier = .required },
17013 },
17014 },
17015 .{
17016 .name = "NMax",
17017 .opcode = 80,
17018 .operands = &.{
17019 .{ .kind = .id_ref, .quantifier = .required },
17020 .{ .kind = .id_ref, .quantifier = .required },
17021 },
17022 },
17023 .{
17024 .name = "NClamp",
17025 .opcode = 81,
17026 .operands = &.{
17027 .{ .kind = .id_ref, .quantifier = .required },
17028 .{ .kind = .id_ref, .quantifier = .required },
17029 .{ .kind = .id_ref, .quantifier = .required },
17030 },
17031 },
17032 },
17033 .zig => &.{
17034 .{
17035 .name = "InvocationGlobal",
17036 .opcode = 0,
17037 .operands = &.{
17038 .{ .kind = .id_ref, .quantifier = .required },
17039 },
17040 },
17041 },
17042 };
17043 }
17044};
17045pub const Extension = enum {
17046 v1_0,
17047 v1_1,
17048 v1_2,
17049 v1_3,
17050 v1_4,
17051 v1_5,
17052 v1_6,
17053 SPV_EXT_shader_tile_image,
17054 SPV_EXT_float8,
17055 SPV_KHR_fragment_shading_rate,
17056 SPV_KHR_shader_ballot,
17057 SPV_KHR_shader_draw_parameters,
17058 SPV_KHR_workgroup_memory_explicit_layout,
17059 SPV_KHR_subgroup_vote,
17060 SPV_KHR_16bit_storage,
17061 SPV_KHR_device_group,
17062 SPV_KHR_multiview,
17063 SPV_KHR_variable_pointers,
17064 SPV_KHR_shader_atomic_counter_ops,
17065 SPV_KHR_post_depth_coverage,
17066 SPV_KHR_8bit_storage,
17067 SPV_KHR_float_controls,
17068 SPV_KHR_ray_query,
17069 SPV_KHR_untyped_pointers,
17070 SPV_KHR_ray_tracing,
17071 SPV_EXT_shader_stencil_export,
17072 SPV_EXT_shader_image_int64,
17073 SPV_KHR_shader_clock,
17074 SPV_KHR_quad_control,
17075 SPV_KHR_bfloat16,
17076 SPV_KHR_abort,
17077 SPV_EXT_descriptor_heap,
17078 SPV_KHR_constant_data,
17079 SPV_KHR_poison_freeze,
17080 SPV_EXT_shader_viewport_index_layer,
17081 SPV_EXT_fragment_fully_covered,
17082 SPV_EXT_mesh_shader,
17083 SPV_KHR_fragment_shader_barycentric,
17084 SPV_KHR_compute_shader_derivatives,
17085 SPV_EXT_fragment_invocation_density,
17086 SPV_EXT_shader_subgroup_partitioned,
17087 SPV_EXT_descriptor_indexing,
17088 SPV_KHR_ray_tracing_position_fetch,
17089 SPV_KHR_vulkan_memory_model,
17090 SPV_EXT_physical_storage_buffer,
17091 SPV_KHR_physical_storage_buffer,
17092 SPV_EXT_fragment_shader_interlock,
17093 SPV_EXT_demote_to_helper_invocation,
17094 SPV_EXT_opacity_micromap,
17095 SPV_EXT_shader_invocation_reorder,
17096 SPV_EXT_long_vector,
17097 SPV_EXT_shader_64bit_indexing,
17098 SPV_EXT_shader_atomic_float_min_max,
17099 SPV_KHR_expect_assume,
17100 SPV_KHR_integer_dot_product,
17101 SPV_KHR_ray_cull_mask,
17102 SPV_KHR_cooperative_matrix,
17103 SPV_EXT_replicated_composites,
17104 SPV_KHR_bit_instructions,
17105 SPV_KHR_subgroup_rotate,
17106 SPV_KHR_float_controls2,
17107 SPV_KHR_fma,
17108 SPV_EXT_shader_atomic_float_add,
17109 SPV_EXT_optnone,
17110 SPV_EXT_shader_atomic_float16_add,
17111 SPV_EXT_arithmetic_fence,
17112 SPV_KHR_uniform_group_instructions,
17113};