authorgravatar for alichraghi@proton.meAli Chraghi <alichraghi@proton.me> 2026-06-18 18:51:47+03:30
committergravatar for alichraghi@noreply.codeberg.orgAli Cheraghi <alichraghi@noreply.codeberg.org> 2026-06-20 09:38:20+02:00
log3a48f4bb40d219efc9b96df44850bcedf83f6285
tree27f8d64e9843ff084cc83e64ca1e05fcbc9d1a4b
parentf4462c0cd74c052ec58e13394c6862955b17b214

spirv: drive capability and extension emission from target features

- Emitting `OpCapability` and `OpExtension` from assembly is no longer allowed (tbh it never was because we silently ignored them). They now `fail` with a message pointing users at `-mcpu`. - `tools/gen_spirv_spec.zig` now also emits `Extension` and the `Capability.dependencies()`. Also To keep the feature set a reasonable size, the generator filters to an allowlist of `KHR` and `EXT` entries. We can decide which vendors to allow later if a use-case is found. - `tools/update_cpu_features.zig` now uses the generated `spec.zig` and emits a feature for every capability and extension, with the capability's `.deps` populated from `Capability.dependencies()`. - `Module.finalize`, `Module.entryPoints`, `Module.addCapability`, `Module.addExtension` and `sections.capabilities`/`sections.extensions` are deleted. - Linker now verifies that an `.spv` object declares the `Linkage` capability

9 files changed, 6222 insertions(+), 3261 deletions(-)

build.zig+20
......@@ -70,6 +70,23 @@ pub fn build(b: *std.Build) !void {
7070 b.getInstallStep().dependOn(&install_std_docs.step);
7171 }
7272
73 const update_cpu_features = b.addExecutable(.{
74 .name = "update-cpu-features",
75 .root_module = b.createModule(.{
76 .root_source_file = b.path("tools/update_cpu_features.zig"),
77 .target = b.graph.host,
78 .imports = &.{.{
79 .name = "spirv_spec",
80 .module = b.createModule(.{
81 .root_source_file = b.path("src/codegen/spirv/spec.zig"),
82 .target = b.graph.host,
83 }),
84 }},
85 }),
86 });
87 const run_update_cpu_features = b.addRunArtifact(update_cpu_features);
88 run_update_cpu_features.addPassthruArgs();
89
7390 if (flat) {
7491 b.installFile("LICENSE", "LICENSE");
7592 b.installFile("README.md", "README.md");
......@@ -85,6 +102,9 @@ pub fn build(b: *std.Build) !void {
85102 docs_step.dependOn(langref_step);
86103 docs_step.dependOn(std_docs_step);
87104
105 const update_cpu_features_step = b.step("update-cpu-features", "Update CPU Features");
106 update_cpu_features_step.dependOn(&run_update_cpu_features.step);
107
88108 const no_matrix = b.option(bool, "no-matrix", "Limit test matrix to exactly one target configuration") orelse false;
89109 const fuzz_only = b.option(bool, "fuzz-only", "Limit test matrix to one target suitable for fuzzing") orelse false;
90110 const skip_debug = b.option(bool, "skip-debug", "Main test suite skips debug builds") orelse false;
lib/std/Target/spirv.zig+1753-32
......@@ -5,12 +5,225 @@ const CpuFeature = std.Target.Cpu.Feature;
55const CpuModel = std.Target.Cpu.Model;
66
77pub const Feature = enum {
8 arbitrary_precision_integers,
8 abort_khr,
9 addresses,
10 arithmetic_fence_ext,
11 atomic_float16add_ext,
12 atomic_float16min_max_ext,
13 atomic_float32add_ext,
14 atomic_float32min_max_ext,
15 atomic_float64add_ext,
16 atomic_float64min_max_ext,
17 atomic_storage,
18 atomic_storage_ops,
19 b_float16cooperative_matrix_khr,
20 b_float16dot_product_khr,
21 b_float16type_khr,
22 bit_instructions,
23 clip_distance,
24 compute_derivative_group_linear_khr,
25 compute_derivative_group_quads_khr,
26 constant_data_khr,
27 cooperative_matrix_khr,
28 cull_distance,
29 demote_to_helper_invocation,
30 denorm_flush_to_zero,
31 denorm_preserve,
32 derivative_control,
33 descriptor_heap_ext,
34 device_enqueue,
35 device_group,
36 dot_product,
37 dot_product_input4x8bit,
38 dot_product_input4x8bit_packed,
39 dot_product_input_all,
40 draw_parameters,
41 expect_assume_khr,
942 float16,
43 float16buffer,
1044 float64,
45 float8cooperative_matrix_ext,
46 float8ext,
47 float_controls2,
48 fmakhr,
49 fragment_barycentric_khr,
50 fragment_density_ext,
51 fragment_fully_covered_ext,
52 fragment_shader_pixel_interlock_ext,
53 fragment_shader_sample_interlock_ext,
54 fragment_shader_shading_rate_interlock_ext,
55 fragment_shading_rate_khr,
1156 generic_pointer,
57 geometry,
58 geometry_point_size,
59 geometry_streams,
60 group_non_uniform,
61 group_non_uniform_arithmetic,
62 group_non_uniform_ballot,
63 group_non_uniform_clustered,
64 group_non_uniform_partitioned_ext,
65 group_non_uniform_quad,
66 group_non_uniform_rotate_khr,
67 group_non_uniform_shuffle,
68 group_non_uniform_shuffle_relative,
69 group_non_uniform_vote,
70 group_uniform_arithmetic_khr,
71 groups,
72 image_basic,
73 image_buffer,
74 image_cube_array,
75 image_gather_extended,
76 image_mipmap,
77 image_ms_array,
78 image_query,
79 image_read_write,
80 image_rect,
81 input_attachment,
82 input_attachment_array_dynamic_indexing,
83 input_attachment_array_non_uniform_indexing,
84 int16,
1285 int64,
86 int64atomics,
87 int64image_ext,
88 int8,
89 interpolation_function,
90 kernel,
91 linkage,
92 literal_sampler,
93 long_vector_ext,
94 matrix,
95 mesh_shading_ext,
96 min_lod,
97 multi_view,
98 multi_viewport,
99 named_barrier,
100 opt_none_ext,
101 physical_storage_buffer_addresses,
102 pipe_storage,
103 pipes,
104 poison_freeze_khr,
105 quad_control_khr,
106 ray_cull_mask_khr,
107 ray_query_khr,
108 ray_query_position_fetch_khr,
109 ray_query_provisional_khr,
110 ray_tracing_khr,
111 ray_tracing_opacity_micromap_ext,
112 ray_tracing_position_fetch_khr,
113 ray_tracing_provisional_khr,
114 ray_traversal_primitive_culling_khr,
115 replicated_composites_ext,
116 runtime_descriptor_array,
117 sample_mask_post_depth_coverage,
118 sample_rate_shading,
119 sampled_buffer,
120 sampled_cube_array,
121 sampled_image_array_dynamic_indexing,
122 sampled_image_array_non_uniform_indexing,
123 sampled_rect,
124 shader,
125 shader64bit_indexing_ext,
126 shader_clock_khr,
127 shader_invocation_reorder_ext,
128 shader_layer,
129 shader_non_uniform,
130 shader_viewport_index,
131 shader_viewport_index_layer_ext,
132 signed_zero_inf_nan_preserve,
133 sparse_residency,
134 SPV_EXT_arithmetic_fence,
135 SPV_EXT_demote_to_helper_invocation,
136 SPV_EXT_descriptor_heap,
137 SPV_EXT_descriptor_indexing,
138 SPV_EXT_float8,
139 SPV_EXT_fragment_fully_covered,
140 SPV_EXT_fragment_invocation_density,
141 SPV_EXT_fragment_shader_interlock,
142 SPV_EXT_long_vector,
143 SPV_EXT_mesh_shader,
144 SPV_EXT_opacity_micromap,
145 SPV_EXT_optnone,
146 SPV_EXT_physical_storage_buffer,
147 SPV_EXT_replicated_composites,
148 SPV_EXT_shader_64bit_indexing,
149 SPV_EXT_shader_atomic_float16_add,
150 SPV_EXT_shader_atomic_float_add,
151 SPV_EXT_shader_atomic_float_min_max,
152 SPV_EXT_shader_image_int64,
153 SPV_EXT_shader_invocation_reorder,
154 SPV_EXT_shader_stencil_export,
155 SPV_EXT_shader_subgroup_partitioned,
156 SPV_EXT_shader_tile_image,
157 SPV_EXT_shader_viewport_index_layer,
158 SPV_KHR_16bit_storage,
159 SPV_KHR_8bit_storage,
160 SPV_KHR_abort,
161 SPV_KHR_bfloat16,
162 SPV_KHR_bit_instructions,
163 SPV_KHR_compute_shader_derivatives,
164 SPV_KHR_constant_data,
165 SPV_KHR_cooperative_matrix,
166 SPV_KHR_device_group,
167 SPV_KHR_expect_assume,
168 SPV_KHR_float_controls,
169 SPV_KHR_float_controls2,
170 SPV_KHR_fma,
171 SPV_KHR_fragment_shader_barycentric,
172 SPV_KHR_fragment_shading_rate,
173 SPV_KHR_integer_dot_product,
174 SPV_KHR_multiview,
175 SPV_KHR_physical_storage_buffer,
176 SPV_KHR_poison_freeze,
177 SPV_KHR_post_depth_coverage,
178 SPV_KHR_quad_control,
179 SPV_KHR_ray_cull_mask,
180 SPV_KHR_ray_query,
181 SPV_KHR_ray_tracing,
182 SPV_KHR_ray_tracing_position_fetch,
183 SPV_KHR_shader_atomic_counter_ops,
184 SPV_KHR_shader_ballot,
185 SPV_KHR_shader_clock,
186 SPV_KHR_shader_draw_parameters,
187 SPV_KHR_subgroup_rotate,
188 SPV_KHR_subgroup_vote,
189 SPV_KHR_uniform_group_instructions,
190 SPV_KHR_untyped_pointers,
191 SPV_KHR_variable_pointers,
192 SPV_KHR_vulkan_memory_model,
193 SPV_KHR_workgroup_memory_explicit_layout,
194 stencil_export_ext,
195 storage_buffer16bit_access,
196 storage_buffer8bit_access,
197 storage_buffer_array_dynamic_indexing,
198 storage_buffer_array_non_uniform_indexing,
199 storage_image_array_dynamic_indexing,
200 storage_image_array_non_uniform_indexing,
201 storage_image_extended_formats,
202 storage_image_multisample,
203 storage_image_read_without_format,
204 storage_image_write_without_format,
205 storage_input_output16,
13206 storage_push_constant16,
207 storage_push_constant8,
208 storage_texel_buffer_array_dynamic_indexing,
209 storage_texel_buffer_array_non_uniform_indexing,
210 subgroup_ballot_khr,
211 subgroup_dispatch,
212 subgroup_vote_khr,
213 tessellation,
214 tessellation_point_size,
215 tile_image_color_read_access_ext,
216 tile_image_depth_read_access_ext,
217 tile_image_stencil_read_access_ext,
218 transform_feedback,
219 uniform_and_storage_buffer16bit_access,
220 uniform_and_storage_buffer8bit_access,
221 uniform_buffer_array_dynamic_indexing,
222 uniform_buffer_array_non_uniform_indexing,
223 uniform_decoration,
224 uniform_texel_buffer_array_dynamic_indexing,
225 uniform_texel_buffer_array_non_uniform_indexing,
226 untyped_pointers_khr,
14227 v1_0,
15228 v1_1,
16229 v1_2,
......@@ -19,7 +232,13 @@ pub const Feature = enum {
19232 v1_5,
20233 v1_6,
21234 variable_pointers,
235 variable_pointers_storage_buffer,
22236 vector16,
237 vulkan_memory_model,
238 vulkan_memory_model_device_scope,
239 workgroup_memory_explicit_layout16bit_access_khr,
240 workgroup_memory_explicit_layout8bit_access_khr,
241 workgroup_memory_explicit_layout_khr,
23242};
24243
25244pub const featureSet = CpuFeature.FeatureSetFns(Feature).featureSet;
......@@ -32,106 +251,1608 @@ pub const all_features = blk: {
32251 const len = @typeInfo(Feature).@"enum".field_names.len;
33252 std.debug.assert(len <= CpuFeature.Set.needed_bit_count);
34253 var result: [len]CpuFeature = undefined;
35 result[@intFromEnum(Feature.arbitrary_precision_integers)] = .{
254 result[@intFromEnum(Feature.abort_khr)] = .{
36255 .llvm_name = null,
37 .description = "Enable SPV_INTEL_arbitrary_precision_integers extension and the ArbitraryPrecisionIntegersINTEL capability",
256 .description = "Enable abort_khr Capability.",
38257 .dependencies = featureSet(&[_]Feature{
258 .SPV_KHR_abort,
259 .v1_0,
260 }),
261 };
262 result[@intFromEnum(Feature.addresses)] = .{
263 .llvm_name = null,
264 .description = "Enable addresses Capability.",
265 .dependencies = featureSet(&[_]Feature{
266 .v1_0,
267 }),
268 };
269 result[@intFromEnum(Feature.arithmetic_fence_ext)] = .{
270 .llvm_name = null,
271 .description = "Enable arithmetic_fence_ext Capability.",
272 .dependencies = featureSet(&[_]Feature{
273 .SPV_EXT_arithmetic_fence,
274 .v1_0,
275 }),
276 };
277 result[@intFromEnum(Feature.atomic_float16add_ext)] = .{
278 .llvm_name = null,
279 .description = "Enable atomic_float16add_ext Capability.",
280 .dependencies = featureSet(&[_]Feature{
281 .SPV_EXT_shader_atomic_float16_add,
282 .v1_0,
283 }),
284 };
285 result[@intFromEnum(Feature.atomic_float16min_max_ext)] = .{
286 .llvm_name = null,
287 .description = "Enable atomic_float16min_max_ext Capability.",
288 .dependencies = featureSet(&[_]Feature{
289 .SPV_EXT_shader_atomic_float_min_max,
290 .v1_0,
291 }),
292 };
293 result[@intFromEnum(Feature.atomic_float32add_ext)] = .{
294 .llvm_name = null,
295 .description = "Enable atomic_float32add_ext Capability.",
296 .dependencies = featureSet(&[_]Feature{
297 .SPV_EXT_shader_atomic_float_add,
298 .v1_0,
299 }),
300 };
301 result[@intFromEnum(Feature.atomic_float32min_max_ext)] = .{
302 .llvm_name = null,
303 .description = "Enable atomic_float32min_max_ext Capability.",
304 .dependencies = featureSet(&[_]Feature{
305 .SPV_EXT_shader_atomic_float_min_max,
306 .v1_0,
307 }),
308 };
309 result[@intFromEnum(Feature.atomic_float64add_ext)] = .{
310 .llvm_name = null,
311 .description = "Enable atomic_float64add_ext Capability.",
312 .dependencies = featureSet(&[_]Feature{
313 .SPV_EXT_shader_atomic_float_add,
314 .v1_0,
315 }),
316 };
317 result[@intFromEnum(Feature.atomic_float64min_max_ext)] = .{
318 .llvm_name = null,
319 .description = "Enable atomic_float64min_max_ext Capability.",
320 .dependencies = featureSet(&[_]Feature{
321 .SPV_EXT_shader_atomic_float_min_max,
322 .v1_0,
323 }),
324 };
325 result[@intFromEnum(Feature.atomic_storage)] = .{
326 .llvm_name = null,
327 .description = "Enable atomic_storage Capability.",
328 .dependencies = featureSet(&[_]Feature{
329 .v1_0,
330 }),
331 };
332 result[@intFromEnum(Feature.atomic_storage_ops)] = .{
333 .llvm_name = null,
334 .description = "Enable atomic_storage_ops Capability.",
335 .dependencies = featureSet(&[_]Feature{
336 .SPV_KHR_shader_atomic_counter_ops,
337 .v1_0,
338 }),
339 };
340 result[@intFromEnum(Feature.b_float16cooperative_matrix_khr)] = .{
341 .llvm_name = null,
342 .description = "Enable b_float16cooperative_matrix_khr Capability.",
343 .dependencies = featureSet(&[_]Feature{
344 .SPV_KHR_bfloat16,
345 .v1_0,
346 }),
347 };
348 result[@intFromEnum(Feature.b_float16dot_product_khr)] = .{
349 .llvm_name = null,
350 .description = "Enable b_float16dot_product_khr Capability.",
351 .dependencies = featureSet(&[_]Feature{
352 .SPV_KHR_bfloat16,
353 .v1_0,
354 }),
355 };
356 result[@intFromEnum(Feature.b_float16type_khr)] = .{
357 .llvm_name = null,
358 .description = "Enable b_float16type_khr Capability.",
359 .dependencies = featureSet(&[_]Feature{
360 .SPV_KHR_bfloat16,
361 .v1_0,
362 }),
363 };
364 result[@intFromEnum(Feature.bit_instructions)] = .{
365 .llvm_name = null,
366 .description = "Enable bit_instructions Capability.",
367 .dependencies = featureSet(&[_]Feature{
368 .SPV_KHR_bit_instructions,
369 .v1_0,
370 }),
371 };
372 result[@intFromEnum(Feature.clip_distance)] = .{
373 .llvm_name = null,
374 .description = "Enable clip_distance Capability.",
375 .dependencies = featureSet(&[_]Feature{
376 .v1_0,
377 }),
378 };
379 result[@intFromEnum(Feature.compute_derivative_group_linear_khr)] = .{
380 .llvm_name = null,
381 .description = "Enable compute_derivative_group_linear_khr Capability.",
382 .dependencies = featureSet(&[_]Feature{
383 .SPV_KHR_compute_shader_derivatives,
384 .v1_0,
385 }),
386 };
387 result[@intFromEnum(Feature.compute_derivative_group_quads_khr)] = .{
388 .llvm_name = null,
389 .description = "Enable compute_derivative_group_quads_khr Capability.",
390 .dependencies = featureSet(&[_]Feature{
391 .SPV_KHR_compute_shader_derivatives,
392 .v1_0,
393 }),
394 };
395 result[@intFromEnum(Feature.constant_data_khr)] = .{
396 .llvm_name = null,
397 .description = "Enable constant_data_khr Capability.",
398 .dependencies = featureSet(&[_]Feature{
399 .SPV_KHR_constant_data,
400 .v1_0,
401 }),
402 };
403 result[@intFromEnum(Feature.cooperative_matrix_khr)] = .{
404 .llvm_name = null,
405 .description = "Enable cooperative_matrix_khr Capability.",
406 .dependencies = featureSet(&[_]Feature{
407 .SPV_KHR_cooperative_matrix,
408 .v1_0,
409 }),
410 };
411 result[@intFromEnum(Feature.cull_distance)] = .{
412 .llvm_name = null,
413 .description = "Enable cull_distance Capability.",
414 .dependencies = featureSet(&[_]Feature{
415 .v1_0,
416 }),
417 };
418 result[@intFromEnum(Feature.demote_to_helper_invocation)] = .{
419 .llvm_name = null,
420 .description = "Enable demote_to_helper_invocation Capability.",
421 .dependencies = featureSet(&[_]Feature{
422 .SPV_EXT_demote_to_helper_invocation,
423 .v1_6,
424 }),
425 };
426 result[@intFromEnum(Feature.denorm_flush_to_zero)] = .{
427 .llvm_name = null,
428 .description = "Enable denorm_flush_to_zero Capability.",
429 .dependencies = featureSet(&[_]Feature{
430 .SPV_KHR_float_controls,
431 .v1_4,
432 }),
433 };
434 result[@intFromEnum(Feature.denorm_preserve)] = .{
435 .llvm_name = null,
436 .description = "Enable denorm_preserve Capability.",
437 .dependencies = featureSet(&[_]Feature{
438 .SPV_KHR_float_controls,
439 .v1_4,
440 }),
441 };
442 result[@intFromEnum(Feature.derivative_control)] = .{
443 .llvm_name = null,
444 .description = "Enable derivative_control Capability.",
445 .dependencies = featureSet(&[_]Feature{
446 .v1_0,
447 }),
448 };
449 result[@intFromEnum(Feature.descriptor_heap_ext)] = .{
450 .llvm_name = null,
451 .description = "Enable descriptor_heap_ext Capability.",
452 .dependencies = featureSet(&[_]Feature{
453 .SPV_EXT_descriptor_heap,
454 .v1_0,
455 }),
456 };
457 result[@intFromEnum(Feature.device_enqueue)] = .{
458 .llvm_name = null,
459 .description = "Enable device_enqueue Capability.",
460 .dependencies = featureSet(&[_]Feature{
461 .v1_0,
462 }),
463 };
464 result[@intFromEnum(Feature.device_group)] = .{
465 .llvm_name = null,
466 .description = "Enable device_group Capability.",
467 .dependencies = featureSet(&[_]Feature{
468 .SPV_KHR_device_group,
469 .v1_3,
470 }),
471 };
472 result[@intFromEnum(Feature.dot_product)] = .{
473 .llvm_name = null,
474 .description = "Enable dot_product Capability.",
475 .dependencies = featureSet(&[_]Feature{
476 .SPV_KHR_integer_dot_product,
477 .v1_6,
478 }),
479 };
480 result[@intFromEnum(Feature.dot_product_input4x8bit)] = .{
481 .llvm_name = null,
482 .description = "Enable dot_product_input4x8bit Capability.",
483 .dependencies = featureSet(&[_]Feature{
484 .SPV_KHR_integer_dot_product,
485 .v1_6,
486 }),
487 };
488 result[@intFromEnum(Feature.dot_product_input4x8bit_packed)] = .{
489 .llvm_name = null,
490 .description = "Enable dot_product_input4x8bit_packed Capability.",
491 .dependencies = featureSet(&[_]Feature{
492 .SPV_KHR_integer_dot_product,
493 .v1_6,
494 }),
495 };
496 result[@intFromEnum(Feature.dot_product_input_all)] = .{
497 .llvm_name = null,
498 .description = "Enable dot_product_input_all Capability.",
499 .dependencies = featureSet(&[_]Feature{
500 .SPV_KHR_integer_dot_product,
501 .v1_6,
502 }),
503 };
504 result[@intFromEnum(Feature.draw_parameters)] = .{
505 .llvm_name = null,
506 .description = "Enable draw_parameters Capability.",
507 .dependencies = featureSet(&[_]Feature{
508 .SPV_KHR_shader_draw_parameters,
509 .v1_3,
510 }),
511 };
512 result[@intFromEnum(Feature.expect_assume_khr)] = .{
513 .llvm_name = null,
514 .description = "Enable expect_assume_khr Capability.",
515 .dependencies = featureSet(&[_]Feature{
516 .SPV_KHR_expect_assume,
517 .v1_0,
518 }),
519 };
520 result[@intFromEnum(Feature.float16)] = .{
521 .llvm_name = null,
522 .description = "Enable float16 Capability.",
523 .dependencies = featureSet(&[_]Feature{
524 .v1_0,
525 }),
526 };
527 result[@intFromEnum(Feature.float16buffer)] = .{
528 .llvm_name = null,
529 .description = "Enable float16buffer Capability.",
530 .dependencies = featureSet(&[_]Feature{
531 .v1_0,
532 }),
533 };
534 result[@intFromEnum(Feature.float64)] = .{
535 .llvm_name = null,
536 .description = "Enable float64 Capability.",
537 .dependencies = featureSet(&[_]Feature{
538 .v1_0,
539 }),
540 };
541 result[@intFromEnum(Feature.float8cooperative_matrix_ext)] = .{
542 .llvm_name = null,
543 .description = "Enable float8cooperative_matrix_ext Capability.",
544 .dependencies = featureSet(&[_]Feature{
545 .SPV_EXT_float8,
546 .v1_0,
547 }),
548 };
549 result[@intFromEnum(Feature.float8ext)] = .{
550 .llvm_name = null,
551 .description = "Enable float8ext Capability.",
552 .dependencies = featureSet(&[_]Feature{
553 .SPV_EXT_float8,
554 .v1_0,
555 }),
556 };
557 result[@intFromEnum(Feature.float_controls2)] = .{
558 .llvm_name = null,
559 .description = "Enable float_controls2 Capability.",
560 .dependencies = featureSet(&[_]Feature{
561 .SPV_KHR_float_controls2,
562 .v1_0,
563 }),
564 };
565 result[@intFromEnum(Feature.fmakhr)] = .{
566 .llvm_name = null,
567 .description = "Enable fmakhr Capability.",
568 .dependencies = featureSet(&[_]Feature{
569 .SPV_KHR_fma,
570 .v1_0,
571 }),
572 };
573 result[@intFromEnum(Feature.fragment_barycentric_khr)] = .{
574 .llvm_name = null,
575 .description = "Enable fragment_barycentric_khr Capability.",
576 .dependencies = featureSet(&[_]Feature{
577 .SPV_KHR_fragment_shader_barycentric,
578 .v1_0,
579 }),
580 };
581 result[@intFromEnum(Feature.fragment_density_ext)] = .{
582 .llvm_name = null,
583 .description = "Enable fragment_density_ext Capability.",
584 .dependencies = featureSet(&[_]Feature{
585 .SPV_EXT_fragment_invocation_density,
586 .v1_0,
587 }),
588 };
589 result[@intFromEnum(Feature.fragment_fully_covered_ext)] = .{
590 .llvm_name = null,
591 .description = "Enable fragment_fully_covered_ext Capability.",
592 .dependencies = featureSet(&[_]Feature{
593 .SPV_EXT_fragment_fully_covered,
594 .v1_0,
595 }),
596 };
597 result[@intFromEnum(Feature.fragment_shader_pixel_interlock_ext)] = .{
598 .llvm_name = null,
599 .description = "Enable fragment_shader_pixel_interlock_ext Capability.",
600 .dependencies = featureSet(&[_]Feature{
601 .SPV_EXT_fragment_shader_interlock,
602 .v1_0,
603 }),
604 };
605 result[@intFromEnum(Feature.fragment_shader_sample_interlock_ext)] = .{
606 .llvm_name = null,
607 .description = "Enable fragment_shader_sample_interlock_ext Capability.",
608 .dependencies = featureSet(&[_]Feature{
609 .SPV_EXT_fragment_shader_interlock,
610 .v1_0,
611 }),
612 };
613 result[@intFromEnum(Feature.fragment_shader_shading_rate_interlock_ext)] = .{
614 .llvm_name = null,
615 .description = "Enable fragment_shader_shading_rate_interlock_ext Capability.",
616 .dependencies = featureSet(&[_]Feature{
617 .SPV_EXT_fragment_shader_interlock,
618 .v1_0,
619 }),
620 };
621 result[@intFromEnum(Feature.fragment_shading_rate_khr)] = .{
622 .llvm_name = null,
623 .description = "Enable fragment_shading_rate_khr Capability.",
624 .dependencies = featureSet(&[_]Feature{
625 .SPV_KHR_fragment_shading_rate,
626 .v1_0,
627 }),
628 };
629 result[@intFromEnum(Feature.generic_pointer)] = .{
630 .llvm_name = null,
631 .description = "Enable generic_pointer Capability.",
632 .dependencies = featureSet(&[_]Feature{
633 .v1_0,
634 }),
635 };
636 result[@intFromEnum(Feature.geometry)] = .{
637 .llvm_name = null,
638 .description = "Enable geometry Capability.",
639 .dependencies = featureSet(&[_]Feature{
640 .v1_0,
641 }),
642 };
643 result[@intFromEnum(Feature.geometry_point_size)] = .{
644 .llvm_name = null,
645 .description = "Enable geometry_point_size Capability.",
646 .dependencies = featureSet(&[_]Feature{
647 .v1_0,
648 }),
649 };
650 result[@intFromEnum(Feature.geometry_streams)] = .{
651 .llvm_name = null,
652 .description = "Enable geometry_streams Capability.",
653 .dependencies = featureSet(&[_]Feature{
654 .v1_0,
655 }),
656 };
657 result[@intFromEnum(Feature.group_non_uniform)] = .{
658 .llvm_name = null,
659 .description = "Enable group_non_uniform Capability.",
660 .dependencies = featureSet(&[_]Feature{
661 .v1_3,
662 }),
663 };
664 result[@intFromEnum(Feature.group_non_uniform_arithmetic)] = .{
665 .llvm_name = null,
666 .description = "Enable group_non_uniform_arithmetic Capability.",
667 .dependencies = featureSet(&[_]Feature{
668 .v1_3,
669 }),
670 };
671 result[@intFromEnum(Feature.group_non_uniform_ballot)] = .{
672 .llvm_name = null,
673 .description = "Enable group_non_uniform_ballot Capability.",
674 .dependencies = featureSet(&[_]Feature{
675 .v1_3,
676 }),
677 };
678 result[@intFromEnum(Feature.group_non_uniform_clustered)] = .{
679 .llvm_name = null,
680 .description = "Enable group_non_uniform_clustered Capability.",
681 .dependencies = featureSet(&[_]Feature{
682 .v1_3,
683 }),
684 };
685 result[@intFromEnum(Feature.group_non_uniform_partitioned_ext)] = .{
686 .llvm_name = null,
687 .description = "Enable group_non_uniform_partitioned_ext Capability.",
688 .dependencies = featureSet(&[_]Feature{
689 .SPV_EXT_shader_subgroup_partitioned,
690 .v1_0,
691 }),
692 };
693 result[@intFromEnum(Feature.group_non_uniform_quad)] = .{
694 .llvm_name = null,
695 .description = "Enable group_non_uniform_quad Capability.",
696 .dependencies = featureSet(&[_]Feature{
697 .v1_3,
698 }),
699 };
700 result[@intFromEnum(Feature.group_non_uniform_rotate_khr)] = .{
701 .llvm_name = null,
702 .description = "Enable group_non_uniform_rotate_khr Capability.",
703 .dependencies = featureSet(&[_]Feature{
704 .SPV_KHR_subgroup_rotate,
705 .v1_0,
706 }),
707 };
708 result[@intFromEnum(Feature.group_non_uniform_shuffle)] = .{
709 .llvm_name = null,
710 .description = "Enable group_non_uniform_shuffle Capability.",
711 .dependencies = featureSet(&[_]Feature{
712 .v1_3,
713 }),
714 };
715 result[@intFromEnum(Feature.group_non_uniform_shuffle_relative)] = .{
716 .llvm_name = null,
717 .description = "Enable group_non_uniform_shuffle_relative Capability.",
718 .dependencies = featureSet(&[_]Feature{
719 .v1_3,
720 }),
721 };
722 result[@intFromEnum(Feature.group_non_uniform_vote)] = .{
723 .llvm_name = null,
724 .description = "Enable group_non_uniform_vote Capability.",
725 .dependencies = featureSet(&[_]Feature{
726 .v1_3,
727 }),
728 };
729 result[@intFromEnum(Feature.group_uniform_arithmetic_khr)] = .{
730 .llvm_name = null,
731 .description = "Enable group_uniform_arithmetic_khr Capability.",
732 .dependencies = featureSet(&[_]Feature{
733 .SPV_KHR_uniform_group_instructions,
734 .v1_0,
735 }),
736 };
737 result[@intFromEnum(Feature.groups)] = .{
738 .llvm_name = null,
739 .description = "Enable groups Capability.",
740 .dependencies = featureSet(&[_]Feature{
741 .v1_0,
742 }),
743 };
744 result[@intFromEnum(Feature.image_basic)] = .{
745 .llvm_name = null,
746 .description = "Enable image_basic Capability.",
747 .dependencies = featureSet(&[_]Feature{
748 .v1_0,
749 }),
750 };
751 result[@intFromEnum(Feature.image_buffer)] = .{
752 .llvm_name = null,
753 .description = "Enable image_buffer Capability.",
754 .dependencies = featureSet(&[_]Feature{
755 .v1_0,
756 }),
757 };
758 result[@intFromEnum(Feature.image_cube_array)] = .{
759 .llvm_name = null,
760 .description = "Enable image_cube_array Capability.",
761 .dependencies = featureSet(&[_]Feature{
762 .v1_0,
763 }),
764 };
765 result[@intFromEnum(Feature.image_gather_extended)] = .{
766 .llvm_name = null,
767 .description = "Enable image_gather_extended Capability.",
768 .dependencies = featureSet(&[_]Feature{
769 .v1_0,
770 }),
771 };
772 result[@intFromEnum(Feature.image_mipmap)] = .{
773 .llvm_name = null,
774 .description = "Enable image_mipmap Capability.",
775 .dependencies = featureSet(&[_]Feature{
776 .v1_0,
777 }),
778 };
779 result[@intFromEnum(Feature.image_ms_array)] = .{
780 .llvm_name = null,
781 .description = "Enable image_ms_array Capability.",
782 .dependencies = featureSet(&[_]Feature{
783 .v1_0,
784 }),
785 };
786 result[@intFromEnum(Feature.image_query)] = .{
787 .llvm_name = null,
788 .description = "Enable image_query Capability.",
789 .dependencies = featureSet(&[_]Feature{
790 .v1_0,
791 }),
792 };
793 result[@intFromEnum(Feature.image_read_write)] = .{
794 .llvm_name = null,
795 .description = "Enable image_read_write Capability.",
796 .dependencies = featureSet(&[_]Feature{
797 .v1_0,
798 }),
799 };
800 result[@intFromEnum(Feature.image_rect)] = .{
801 .llvm_name = null,
802 .description = "Enable image_rect Capability.",
803 .dependencies = featureSet(&[_]Feature{
804 .v1_0,
805 }),
806 };
807 result[@intFromEnum(Feature.input_attachment)] = .{
808 .llvm_name = null,
809 .description = "Enable input_attachment Capability.",
810 .dependencies = featureSet(&[_]Feature{
811 .v1_0,
812 }),
813 };
814 result[@intFromEnum(Feature.input_attachment_array_dynamic_indexing)] = .{
815 .llvm_name = null,
816 .description = "Enable input_attachment_array_dynamic_indexing Capability.",
817 .dependencies = featureSet(&[_]Feature{
818 .SPV_EXT_descriptor_indexing,
819 .v1_5,
820 }),
821 };
822 result[@intFromEnum(Feature.input_attachment_array_non_uniform_indexing)] = .{
823 .llvm_name = null,
824 .description = "Enable input_attachment_array_non_uniform_indexing Capability.",
825 .dependencies = featureSet(&[_]Feature{
826 .SPV_EXT_descriptor_indexing,
827 .v1_5,
828 }),
829 };
830 result[@intFromEnum(Feature.int16)] = .{
831 .llvm_name = null,
832 .description = "Enable int16 Capability.",
833 .dependencies = featureSet(&[_]Feature{
834 .v1_0,
835 }),
836 };
837 result[@intFromEnum(Feature.int64)] = .{
838 .llvm_name = null,
839 .description = "Enable int64 Capability.",
840 .dependencies = featureSet(&[_]Feature{
841 .v1_0,
842 }),
843 };
844 result[@intFromEnum(Feature.int64atomics)] = .{
845 .llvm_name = null,
846 .description = "Enable int64atomics Capability.",
847 .dependencies = featureSet(&[_]Feature{
848 .v1_0,
849 }),
850 };
851 result[@intFromEnum(Feature.int64image_ext)] = .{
852 .llvm_name = null,
853 .description = "Enable int64image_ext Capability.",
854 .dependencies = featureSet(&[_]Feature{
855 .SPV_EXT_shader_image_int64,
856 .v1_0,
857 }),
858 };
859 result[@intFromEnum(Feature.int8)] = .{
860 .llvm_name = null,
861 .description = "Enable int8 Capability.",
862 .dependencies = featureSet(&[_]Feature{
863 .v1_0,
864 }),
865 };
866 result[@intFromEnum(Feature.interpolation_function)] = .{
867 .llvm_name = null,
868 .description = "Enable interpolation_function Capability.",
869 .dependencies = featureSet(&[_]Feature{
870 .v1_0,
871 }),
872 };
873 result[@intFromEnum(Feature.kernel)] = .{
874 .llvm_name = null,
875 .description = "Enable kernel Capability.",
876 .dependencies = featureSet(&[_]Feature{
877 .v1_0,
878 }),
879 };
880 result[@intFromEnum(Feature.linkage)] = .{
881 .llvm_name = null,
882 .description = "Enable linkage Capability.",
883 .dependencies = featureSet(&[_]Feature{
884 .v1_0,
885 }),
886 };
887 result[@intFromEnum(Feature.literal_sampler)] = .{
888 .llvm_name = null,
889 .description = "Enable literal_sampler Capability.",
890 .dependencies = featureSet(&[_]Feature{
891 .v1_0,
892 }),
893 };
894 result[@intFromEnum(Feature.long_vector_ext)] = .{
895 .llvm_name = null,
896 .description = "Enable long_vector_ext Capability.",
897 .dependencies = featureSet(&[_]Feature{
898 .SPV_EXT_long_vector,
899 .v1_0,
900 }),
901 };
902 result[@intFromEnum(Feature.matrix)] = .{
903 .llvm_name = null,
904 .description = "Enable matrix Capability.",
905 .dependencies = featureSet(&[_]Feature{
906 .v1_0,
907 }),
908 };
909 result[@intFromEnum(Feature.mesh_shading_ext)] = .{
910 .llvm_name = null,
911 .description = "Enable mesh_shading_ext Capability.",
912 .dependencies = featureSet(&[_]Feature{
913 .SPV_EXT_mesh_shader,
914 .v1_0,
915 }),
916 };
917 result[@intFromEnum(Feature.min_lod)] = .{
918 .llvm_name = null,
919 .description = "Enable min_lod Capability.",
920 .dependencies = featureSet(&[_]Feature{
921 .v1_0,
922 }),
923 };
924 result[@intFromEnum(Feature.multi_view)] = .{
925 .llvm_name = null,
926 .description = "Enable multi_view Capability.",
927 .dependencies = featureSet(&[_]Feature{
928 .SPV_KHR_multiview,
929 .v1_3,
930 }),
931 };
932 result[@intFromEnum(Feature.multi_viewport)] = .{
933 .llvm_name = null,
934 .description = "Enable multi_viewport Capability.",
935 .dependencies = featureSet(&[_]Feature{
936 .v1_0,
937 }),
938 };
939 result[@intFromEnum(Feature.named_barrier)] = .{
940 .llvm_name = null,
941 .description = "Enable named_barrier Capability.",
942 .dependencies = featureSet(&[_]Feature{
943 .v1_1,
944 }),
945 };
946 result[@intFromEnum(Feature.opt_none_ext)] = .{
947 .llvm_name = null,
948 .description = "Enable opt_none_ext Capability.",
949 .dependencies = featureSet(&[_]Feature{
950 .SPV_EXT_optnone,
951 .v1_0,
952 }),
953 };
954 result[@intFromEnum(Feature.physical_storage_buffer_addresses)] = .{
955 .llvm_name = null,
956 .description = "Enable physical_storage_buffer_addresses Capability.",
957 .dependencies = featureSet(&[_]Feature{
958 .SPV_EXT_physical_storage_buffer,
959 .SPV_KHR_physical_storage_buffer,
960 .v1_5,
961 }),
962 };
963 result[@intFromEnum(Feature.pipe_storage)] = .{
964 .llvm_name = null,
965 .description = "Enable pipe_storage Capability.",
966 .dependencies = featureSet(&[_]Feature{
967 .v1_1,
968 }),
969 };
970 result[@intFromEnum(Feature.pipes)] = .{
971 .llvm_name = null,
972 .description = "Enable pipes Capability.",
973 .dependencies = featureSet(&[_]Feature{
974 .v1_0,
975 }),
976 };
977 result[@intFromEnum(Feature.poison_freeze_khr)] = .{
978 .llvm_name = null,
979 .description = "Enable poison_freeze_khr Capability.",
980 .dependencies = featureSet(&[_]Feature{
981 .SPV_KHR_poison_freeze,
982 .v1_0,
983 }),
984 };
985 result[@intFromEnum(Feature.quad_control_khr)] = .{
986 .llvm_name = null,
987 .description = "Enable quad_control_khr Capability.",
988 .dependencies = featureSet(&[_]Feature{
989 .SPV_KHR_quad_control,
990 .v1_0,
991 }),
992 };
993 result[@intFromEnum(Feature.ray_cull_mask_khr)] = .{
994 .llvm_name = null,
995 .description = "Enable ray_cull_mask_khr Capability.",
996 .dependencies = featureSet(&[_]Feature{
997 .SPV_KHR_ray_cull_mask,
998 .v1_0,
999 }),
1000 };
1001 result[@intFromEnum(Feature.ray_query_khr)] = .{
1002 .llvm_name = null,
1003 .description = "Enable ray_query_khr Capability.",
1004 .dependencies = featureSet(&[_]Feature{
1005 .SPV_KHR_ray_query,
1006 .v1_0,
1007 }),
1008 };
1009 result[@intFromEnum(Feature.ray_query_position_fetch_khr)] = .{
1010 .llvm_name = null,
1011 .description = "Enable ray_query_position_fetch_khr Capability.",
1012 .dependencies = featureSet(&[_]Feature{
1013 .SPV_KHR_ray_tracing_position_fetch,
1014 .v1_0,
1015 }),
1016 };
1017 result[@intFromEnum(Feature.ray_query_provisional_khr)] = .{
1018 .llvm_name = null,
1019 .description = "Enable ray_query_provisional_khr Capability.",
1020 .dependencies = featureSet(&[_]Feature{
1021 .SPV_KHR_ray_query,
1022 .v1_0,
1023 }),
1024 };
1025 result[@intFromEnum(Feature.ray_tracing_khr)] = .{
1026 .llvm_name = null,
1027 .description = "Enable ray_tracing_khr Capability.",
1028 .dependencies = featureSet(&[_]Feature{
1029 .SPV_KHR_ray_tracing,
1030 .v1_0,
1031 }),
1032 };
1033 result[@intFromEnum(Feature.ray_tracing_opacity_micromap_ext)] = .{
1034 .llvm_name = null,
1035 .description = "Enable ray_tracing_opacity_micromap_ext Capability.",
1036 .dependencies = featureSet(&[_]Feature{
1037 .SPV_EXT_opacity_micromap,
1038 .v1_0,
1039 }),
1040 };
1041 result[@intFromEnum(Feature.ray_tracing_position_fetch_khr)] = .{
1042 .llvm_name = null,
1043 .description = "Enable ray_tracing_position_fetch_khr Capability.",
1044 .dependencies = featureSet(&[_]Feature{
1045 .SPV_KHR_ray_tracing_position_fetch,
1046 .v1_0,
1047 }),
1048 };
1049 result[@intFromEnum(Feature.ray_tracing_provisional_khr)] = .{
1050 .llvm_name = null,
1051 .description = "Enable ray_tracing_provisional_khr Capability.",
1052 .dependencies = featureSet(&[_]Feature{
1053 .SPV_KHR_ray_tracing,
1054 .v1_0,
1055 }),
1056 };
1057 result[@intFromEnum(Feature.ray_traversal_primitive_culling_khr)] = .{
1058 .llvm_name = null,
1059 .description = "Enable ray_traversal_primitive_culling_khr Capability.",
1060 .dependencies = featureSet(&[_]Feature{
1061 .SPV_KHR_ray_query,
1062 .SPV_KHR_ray_tracing,
1063 .v1_0,
1064 }),
1065 };
1066 result[@intFromEnum(Feature.replicated_composites_ext)] = .{
1067 .llvm_name = null,
1068 .description = "Enable replicated_composites_ext Capability.",
1069 .dependencies = featureSet(&[_]Feature{
1070 .SPV_EXT_replicated_composites,
1071 .v1_0,
1072 }),
1073 };
1074 result[@intFromEnum(Feature.runtime_descriptor_array)] = .{
1075 .llvm_name = null,
1076 .description = "Enable runtime_descriptor_array Capability.",
1077 .dependencies = featureSet(&[_]Feature{
1078 .SPV_EXT_descriptor_indexing,
1079 .v1_5,
1080 }),
1081 };
1082 result[@intFromEnum(Feature.sample_mask_post_depth_coverage)] = .{
1083 .llvm_name = null,
1084 .description = "Enable sample_mask_post_depth_coverage Capability.",
1085 .dependencies = featureSet(&[_]Feature{
1086 .SPV_KHR_post_depth_coverage,
1087 .v1_0,
1088 }),
1089 };
1090 result[@intFromEnum(Feature.sample_rate_shading)] = .{
1091 .llvm_name = null,
1092 .description = "Enable sample_rate_shading Capability.",
1093 .dependencies = featureSet(&[_]Feature{
1094 .v1_0,
1095 }),
1096 };
1097 result[@intFromEnum(Feature.sampled_buffer)] = .{
1098 .llvm_name = null,
1099 .description = "Enable sampled_buffer Capability.",
1100 .dependencies = featureSet(&[_]Feature{
1101 .v1_0,
1102 }),
1103 };
1104 result[@intFromEnum(Feature.sampled_cube_array)] = .{
1105 .llvm_name = null,
1106 .description = "Enable sampled_cube_array Capability.",
1107 .dependencies = featureSet(&[_]Feature{
1108 .v1_0,
1109 }),
1110 };
1111 result[@intFromEnum(Feature.sampled_image_array_dynamic_indexing)] = .{
1112 .llvm_name = null,
1113 .description = "Enable sampled_image_array_dynamic_indexing Capability.",
1114 .dependencies = featureSet(&[_]Feature{
1115 .v1_0,
1116 }),
1117 };
1118 result[@intFromEnum(Feature.sampled_image_array_non_uniform_indexing)] = .{
1119 .llvm_name = null,
1120 .description = "Enable sampled_image_array_non_uniform_indexing Capability.",
1121 .dependencies = featureSet(&[_]Feature{
1122 .SPV_EXT_descriptor_indexing,
1123 .v1_5,
1124 }),
1125 };
1126 result[@intFromEnum(Feature.sampled_rect)] = .{
1127 .llvm_name = null,
1128 .description = "Enable sampled_rect Capability.",
1129 .dependencies = featureSet(&[_]Feature{
1130 .v1_0,
1131 }),
1132 };
1133 result[@intFromEnum(Feature.shader)] = .{
1134 .llvm_name = null,
1135 .description = "Enable shader Capability.",
1136 .dependencies = featureSet(&[_]Feature{
1137 .v1_0,
1138 }),
1139 };
1140 result[@intFromEnum(Feature.shader64bit_indexing_ext)] = .{
1141 .llvm_name = null,
1142 .description = "Enable shader64bit_indexing_ext Capability.",
1143 .dependencies = featureSet(&[_]Feature{
1144 .SPV_EXT_shader_64bit_indexing,
1145 .v1_0,
1146 }),
1147 };
1148 result[@intFromEnum(Feature.shader_clock_khr)] = .{
1149 .llvm_name = null,
1150 .description = "Enable shader_clock_khr Capability.",
1151 .dependencies = featureSet(&[_]Feature{
1152 .SPV_KHR_shader_clock,
1153 .v1_0,
1154 }),
1155 };
1156 result[@intFromEnum(Feature.shader_invocation_reorder_ext)] = .{
1157 .llvm_name = null,
1158 .description = "Enable shader_invocation_reorder_ext Capability.",
1159 .dependencies = featureSet(&[_]Feature{
1160 .SPV_EXT_shader_invocation_reorder,
1161 .v1_0,
1162 }),
1163 };
1164 result[@intFromEnum(Feature.shader_layer)] = .{
1165 .llvm_name = null,
1166 .description = "Enable shader_layer Capability.",
1167 .dependencies = featureSet(&[_]Feature{
1168 .v1_5,
1169 }),
1170 };
1171 result[@intFromEnum(Feature.shader_non_uniform)] = .{
1172 .llvm_name = null,
1173 .description = "Enable shader_non_uniform Capability.",
1174 .dependencies = featureSet(&[_]Feature{
1175 .SPV_EXT_descriptor_indexing,
1176 .v1_5,
1177 }),
1178 };
1179 result[@intFromEnum(Feature.shader_viewport_index)] = .{
1180 .llvm_name = null,
1181 .description = "Enable shader_viewport_index Capability.",
1182 .dependencies = featureSet(&[_]Feature{
1183 .v1_5,
1184 }),
1185 };
1186 result[@intFromEnum(Feature.shader_viewport_index_layer_ext)] = .{
1187 .llvm_name = null,
1188 .description = "Enable shader_viewport_index_layer_ext Capability.",
1189 .dependencies = featureSet(&[_]Feature{
1190 .SPV_EXT_shader_viewport_index_layer,
1191 .v1_0,
1192 }),
1193 };
1194 result[@intFromEnum(Feature.signed_zero_inf_nan_preserve)] = .{
1195 .llvm_name = null,
1196 .description = "Enable signed_zero_inf_nan_preserve Capability.",
1197 .dependencies = featureSet(&[_]Feature{
1198 .SPV_KHR_float_controls,
1199 .v1_4,
1200 }),
1201 };
1202 result[@intFromEnum(Feature.sparse_residency)] = .{
1203 .llvm_name = null,
1204 .description = "Enable sparse_residency Capability.",
1205 .dependencies = featureSet(&[_]Feature{
1206 .v1_0,
1207 }),
1208 };
1209 result[@intFromEnum(Feature.SPV_EXT_arithmetic_fence)] = .{
1210 .llvm_name = null,
1211 .description = "Enable SPV_EXT_arithmetic_fence Extension.",
1212 .dependencies = featureSet(&[_]Feature{}),
1213 };
1214 result[@intFromEnum(Feature.SPV_EXT_demote_to_helper_invocation)] = .{
1215 .llvm_name = null,
1216 .description = "Enable SPV_EXT_demote_to_helper_invocation Extension.",
1217 .dependencies = featureSet(&[_]Feature{}),
1218 };
1219 result[@intFromEnum(Feature.SPV_EXT_descriptor_heap)] = .{
1220 .llvm_name = null,
1221 .description = "Enable SPV_EXT_descriptor_heap Extension.",
1222 .dependencies = featureSet(&[_]Feature{}),
1223 };
1224 result[@intFromEnum(Feature.SPV_EXT_descriptor_indexing)] = .{
1225 .llvm_name = null,
1226 .description = "Enable SPV_EXT_descriptor_indexing Extension.",
1227 .dependencies = featureSet(&[_]Feature{}),
1228 };
1229 result[@intFromEnum(Feature.SPV_EXT_float8)] = .{
1230 .llvm_name = null,
1231 .description = "Enable SPV_EXT_float8 Extension.",
1232 .dependencies = featureSet(&[_]Feature{}),
1233 };
1234 result[@intFromEnum(Feature.SPV_EXT_fragment_fully_covered)] = .{
1235 .llvm_name = null,
1236 .description = "Enable SPV_EXT_fragment_fully_covered Extension.",
1237 .dependencies = featureSet(&[_]Feature{}),
1238 };
1239 result[@intFromEnum(Feature.SPV_EXT_fragment_invocation_density)] = .{
1240 .llvm_name = null,
1241 .description = "Enable SPV_EXT_fragment_invocation_density Extension.",
1242 .dependencies = featureSet(&[_]Feature{}),
1243 };
1244 result[@intFromEnum(Feature.SPV_EXT_fragment_shader_interlock)] = .{
1245 .llvm_name = null,
1246 .description = "Enable SPV_EXT_fragment_shader_interlock Extension.",
1247 .dependencies = featureSet(&[_]Feature{}),
1248 };
1249 result[@intFromEnum(Feature.SPV_EXT_long_vector)] = .{
1250 .llvm_name = null,
1251 .description = "Enable SPV_EXT_long_vector Extension.",
1252 .dependencies = featureSet(&[_]Feature{}),
1253 };
1254 result[@intFromEnum(Feature.SPV_EXT_mesh_shader)] = .{
1255 .llvm_name = null,
1256 .description = "Enable SPV_EXT_mesh_shader Extension.",
1257 .dependencies = featureSet(&[_]Feature{}),
1258 };
1259 result[@intFromEnum(Feature.SPV_EXT_opacity_micromap)] = .{
1260 .llvm_name = null,
1261 .description = "Enable SPV_EXT_opacity_micromap Extension.",
1262 .dependencies = featureSet(&[_]Feature{}),
1263 };
1264 result[@intFromEnum(Feature.SPV_EXT_optnone)] = .{
1265 .llvm_name = null,
1266 .description = "Enable SPV_EXT_optnone Extension.",
1267 .dependencies = featureSet(&[_]Feature{}),
1268 };
1269 result[@intFromEnum(Feature.SPV_EXT_physical_storage_buffer)] = .{
1270 .llvm_name = null,
1271 .description = "Enable SPV_EXT_physical_storage_buffer Extension.",
1272 .dependencies = featureSet(&[_]Feature{}),
1273 };
1274 result[@intFromEnum(Feature.SPV_EXT_replicated_composites)] = .{
1275 .llvm_name = null,
1276 .description = "Enable SPV_EXT_replicated_composites Extension.",
1277 .dependencies = featureSet(&[_]Feature{}),
1278 };
1279 result[@intFromEnum(Feature.SPV_EXT_shader_64bit_indexing)] = .{
1280 .llvm_name = null,
1281 .description = "Enable SPV_EXT_shader_64bit_indexing Extension.",
1282 .dependencies = featureSet(&[_]Feature{}),
1283 };
1284 result[@intFromEnum(Feature.SPV_EXT_shader_atomic_float16_add)] = .{
1285 .llvm_name = null,
1286 .description = "Enable SPV_EXT_shader_atomic_float16_add Extension.",
1287 .dependencies = featureSet(&[_]Feature{}),
1288 };
1289 result[@intFromEnum(Feature.SPV_EXT_shader_atomic_float_add)] = .{
1290 .llvm_name = null,
1291 .description = "Enable SPV_EXT_shader_atomic_float_add Extension.",
1292 .dependencies = featureSet(&[_]Feature{}),
1293 };
1294 result[@intFromEnum(Feature.SPV_EXT_shader_atomic_float_min_max)] = .{
1295 .llvm_name = null,
1296 .description = "Enable SPV_EXT_shader_atomic_float_min_max Extension.",
1297 .dependencies = featureSet(&[_]Feature{}),
1298 };
1299 result[@intFromEnum(Feature.SPV_EXT_shader_image_int64)] = .{
1300 .llvm_name = null,
1301 .description = "Enable SPV_EXT_shader_image_int64 Extension.",
1302 .dependencies = featureSet(&[_]Feature{}),
1303 };
1304 result[@intFromEnum(Feature.SPV_EXT_shader_invocation_reorder)] = .{
1305 .llvm_name = null,
1306 .description = "Enable SPV_EXT_shader_invocation_reorder Extension.",
1307 .dependencies = featureSet(&[_]Feature{}),
1308 };
1309 result[@intFromEnum(Feature.SPV_EXT_shader_stencil_export)] = .{
1310 .llvm_name = null,
1311 .description = "Enable SPV_EXT_shader_stencil_export Extension.",
1312 .dependencies = featureSet(&[_]Feature{}),
1313 };
1314 result[@intFromEnum(Feature.SPV_EXT_shader_subgroup_partitioned)] = .{
1315 .llvm_name = null,
1316 .description = "Enable SPV_EXT_shader_subgroup_partitioned Extension.",
1317 .dependencies = featureSet(&[_]Feature{}),
1318 };
1319 result[@intFromEnum(Feature.SPV_EXT_shader_tile_image)] = .{
1320 .llvm_name = null,
1321 .description = "Enable SPV_EXT_shader_tile_image Extension.",
1322 .dependencies = featureSet(&[_]Feature{}),
1323 };
1324 result[@intFromEnum(Feature.SPV_EXT_shader_viewport_index_layer)] = .{
1325 .llvm_name = null,
1326 .description = "Enable SPV_EXT_shader_viewport_index_layer Extension.",
1327 .dependencies = featureSet(&[_]Feature{}),
1328 };
1329 result[@intFromEnum(Feature.SPV_KHR_16bit_storage)] = .{
1330 .llvm_name = null,
1331 .description = "Enable SPV_KHR_16bit_storage Extension.",
1332 .dependencies = featureSet(&[_]Feature{}),
1333 };
1334 result[@intFromEnum(Feature.SPV_KHR_8bit_storage)] = .{
1335 .llvm_name = null,
1336 .description = "Enable SPV_KHR_8bit_storage Extension.",
1337 .dependencies = featureSet(&[_]Feature{}),
1338 };
1339 result[@intFromEnum(Feature.SPV_KHR_abort)] = .{
1340 .llvm_name = null,
1341 .description = "Enable SPV_KHR_abort Extension.",
1342 .dependencies = featureSet(&[_]Feature{}),
1343 };
1344 result[@intFromEnum(Feature.SPV_KHR_bfloat16)] = .{
1345 .llvm_name = null,
1346 .description = "Enable SPV_KHR_bfloat16 Extension.",
1347 .dependencies = featureSet(&[_]Feature{}),
1348 };
1349 result[@intFromEnum(Feature.SPV_KHR_bit_instructions)] = .{
1350 .llvm_name = null,
1351 .description = "Enable SPV_KHR_bit_instructions Extension.",
1352 .dependencies = featureSet(&[_]Feature{}),
1353 };
1354 result[@intFromEnum(Feature.SPV_KHR_compute_shader_derivatives)] = .{
1355 .llvm_name = null,
1356 .description = "Enable SPV_KHR_compute_shader_derivatives Extension.",
1357 .dependencies = featureSet(&[_]Feature{}),
1358 };
1359 result[@intFromEnum(Feature.SPV_KHR_constant_data)] = .{
1360 .llvm_name = null,
1361 .description = "Enable SPV_KHR_constant_data Extension.",
1362 .dependencies = featureSet(&[_]Feature{}),
1363 };
1364 result[@intFromEnum(Feature.SPV_KHR_cooperative_matrix)] = .{
1365 .llvm_name = null,
1366 .description = "Enable SPV_KHR_cooperative_matrix Extension.",
1367 .dependencies = featureSet(&[_]Feature{}),
1368 };
1369 result[@intFromEnum(Feature.SPV_KHR_device_group)] = .{
1370 .llvm_name = null,
1371 .description = "Enable SPV_KHR_device_group Extension.",
1372 .dependencies = featureSet(&[_]Feature{}),
1373 };
1374 result[@intFromEnum(Feature.SPV_KHR_expect_assume)] = .{
1375 .llvm_name = null,
1376 .description = "Enable SPV_KHR_expect_assume Extension.",
1377 .dependencies = featureSet(&[_]Feature{}),
1378 };
1379 result[@intFromEnum(Feature.SPV_KHR_float_controls)] = .{
1380 .llvm_name = null,
1381 .description = "Enable SPV_KHR_float_controls Extension.",
1382 .dependencies = featureSet(&[_]Feature{}),
1383 };
1384 result[@intFromEnum(Feature.SPV_KHR_float_controls2)] = .{
1385 .llvm_name = null,
1386 .description = "Enable SPV_KHR_float_controls2 Extension.",
1387 .dependencies = featureSet(&[_]Feature{}),
1388 };
1389 result[@intFromEnum(Feature.SPV_KHR_fma)] = .{
1390 .llvm_name = null,
1391 .description = "Enable SPV_KHR_fma Extension.",
1392 .dependencies = featureSet(&[_]Feature{}),
1393 };
1394 result[@intFromEnum(Feature.SPV_KHR_fragment_shader_barycentric)] = .{
1395 .llvm_name = null,
1396 .description = "Enable SPV_KHR_fragment_shader_barycentric Extension.",
1397 .dependencies = featureSet(&[_]Feature{}),
1398 };
1399 result[@intFromEnum(Feature.SPV_KHR_fragment_shading_rate)] = .{
1400 .llvm_name = null,
1401 .description = "Enable SPV_KHR_fragment_shading_rate Extension.",
1402 .dependencies = featureSet(&[_]Feature{}),
1403 };
1404 result[@intFromEnum(Feature.SPV_KHR_integer_dot_product)] = .{
1405 .llvm_name = null,
1406 .description = "Enable SPV_KHR_integer_dot_product Extension.",
1407 .dependencies = featureSet(&[_]Feature{}),
1408 };
1409 result[@intFromEnum(Feature.SPV_KHR_multiview)] = .{
1410 .llvm_name = null,
1411 .description = "Enable SPV_KHR_multiview Extension.",
1412 .dependencies = featureSet(&[_]Feature{}),
1413 };
1414 result[@intFromEnum(Feature.SPV_KHR_physical_storage_buffer)] = .{
1415 .llvm_name = null,
1416 .description = "Enable SPV_KHR_physical_storage_buffer Extension.",
1417 .dependencies = featureSet(&[_]Feature{}),
1418 };
1419 result[@intFromEnum(Feature.SPV_KHR_poison_freeze)] = .{
1420 .llvm_name = null,
1421 .description = "Enable SPV_KHR_poison_freeze Extension.",
1422 .dependencies = featureSet(&[_]Feature{}),
1423 };
1424 result[@intFromEnum(Feature.SPV_KHR_post_depth_coverage)] = .{
1425 .llvm_name = null,
1426 .description = "Enable SPV_KHR_post_depth_coverage Extension.",
1427 .dependencies = featureSet(&[_]Feature{}),
1428 };
1429 result[@intFromEnum(Feature.SPV_KHR_quad_control)] = .{
1430 .llvm_name = null,
1431 .description = "Enable SPV_KHR_quad_control Extension.",
1432 .dependencies = featureSet(&[_]Feature{}),
1433 };
1434 result[@intFromEnum(Feature.SPV_KHR_ray_cull_mask)] = .{
1435 .llvm_name = null,
1436 .description = "Enable SPV_KHR_ray_cull_mask Extension.",
1437 .dependencies = featureSet(&[_]Feature{}),
1438 };
1439 result[@intFromEnum(Feature.SPV_KHR_ray_query)] = .{
1440 .llvm_name = null,
1441 .description = "Enable SPV_KHR_ray_query Extension.",
1442 .dependencies = featureSet(&[_]Feature{}),
1443 };
1444 result[@intFromEnum(Feature.SPV_KHR_ray_tracing)] = .{
1445 .llvm_name = null,
1446 .description = "Enable SPV_KHR_ray_tracing Extension.",
1447 .dependencies = featureSet(&[_]Feature{}),
1448 };
1449 result[@intFromEnum(Feature.SPV_KHR_ray_tracing_position_fetch)] = .{
1450 .llvm_name = null,
1451 .description = "Enable SPV_KHR_ray_tracing_position_fetch Extension.",
1452 .dependencies = featureSet(&[_]Feature{}),
1453 };
1454 result[@intFromEnum(Feature.SPV_KHR_shader_atomic_counter_ops)] = .{
1455 .llvm_name = null,
1456 .description = "Enable SPV_KHR_shader_atomic_counter_ops Extension.",
1457 .dependencies = featureSet(&[_]Feature{}),
1458 };
1459 result[@intFromEnum(Feature.SPV_KHR_shader_ballot)] = .{
1460 .llvm_name = null,
1461 .description = "Enable SPV_KHR_shader_ballot Extension.",
1462 .dependencies = featureSet(&[_]Feature{}),
1463 };
1464 result[@intFromEnum(Feature.SPV_KHR_shader_clock)] = .{
1465 .llvm_name = null,
1466 .description = "Enable SPV_KHR_shader_clock Extension.",
1467 .dependencies = featureSet(&[_]Feature{}),
1468 };
1469 result[@intFromEnum(Feature.SPV_KHR_shader_draw_parameters)] = .{
1470 .llvm_name = null,
1471 .description = "Enable SPV_KHR_shader_draw_parameters Extension.",
1472 .dependencies = featureSet(&[_]Feature{}),
1473 };
1474 result[@intFromEnum(Feature.SPV_KHR_subgroup_rotate)] = .{
1475 .llvm_name = null,
1476 .description = "Enable SPV_KHR_subgroup_rotate Extension.",
1477 .dependencies = featureSet(&[_]Feature{}),
1478 };
1479 result[@intFromEnum(Feature.SPV_KHR_subgroup_vote)] = .{
1480 .llvm_name = null,
1481 .description = "Enable SPV_KHR_subgroup_vote Extension.",
1482 .dependencies = featureSet(&[_]Feature{}),
1483 };
1484 result[@intFromEnum(Feature.SPV_KHR_uniform_group_instructions)] = .{
1485 .llvm_name = null,
1486 .description = "Enable SPV_KHR_uniform_group_instructions Extension.",
1487 .dependencies = featureSet(&[_]Feature{}),
1488 };
1489 result[@intFromEnum(Feature.SPV_KHR_untyped_pointers)] = .{
1490 .llvm_name = null,
1491 .description = "Enable SPV_KHR_untyped_pointers Extension.",
1492 .dependencies = featureSet(&[_]Feature{}),
1493 };
1494 result[@intFromEnum(Feature.SPV_KHR_variable_pointers)] = .{
1495 .llvm_name = null,
1496 .description = "Enable SPV_KHR_variable_pointers Extension.",
1497 .dependencies = featureSet(&[_]Feature{}),
1498 };
1499 result[@intFromEnum(Feature.SPV_KHR_vulkan_memory_model)] = .{
1500 .llvm_name = null,
1501 .description = "Enable SPV_KHR_vulkan_memory_model Extension.",
1502 .dependencies = featureSet(&[_]Feature{}),
1503 };
1504 result[@intFromEnum(Feature.SPV_KHR_workgroup_memory_explicit_layout)] = .{
1505 .llvm_name = null,
1506 .description = "Enable SPV_KHR_workgroup_memory_explicit_layout Extension.",
1507 .dependencies = featureSet(&[_]Feature{}),
1508 };
1509 result[@intFromEnum(Feature.stencil_export_ext)] = .{
1510 .llvm_name = null,
1511 .description = "Enable stencil_export_ext Capability.",
1512 .dependencies = featureSet(&[_]Feature{
1513 .SPV_EXT_shader_stencil_export,
1514 .v1_0,
1515 }),
1516 };
1517 result[@intFromEnum(Feature.storage_buffer16bit_access)] = .{
1518 .llvm_name = null,
1519 .description = "Enable storage_buffer16bit_access Capability.",
1520 .dependencies = featureSet(&[_]Feature{
1521 .SPV_KHR_16bit_storage,
1522 .v1_3,
1523 }),
1524 };
1525 result[@intFromEnum(Feature.storage_buffer8bit_access)] = .{
1526 .llvm_name = null,
1527 .description = "Enable storage_buffer8bit_access Capability.",
1528 .dependencies = featureSet(&[_]Feature{
1529 .SPV_KHR_8bit_storage,
391530 .v1_5,
401531 }),
411532 };
42 result[@intFromEnum(Feature.float16)] = .{
1533 result[@intFromEnum(Feature.storage_buffer_array_dynamic_indexing)] = .{
431534 .llvm_name = null,
44 .description = "Enable Float16 capability",
1535 .description = "Enable storage_buffer_array_dynamic_indexing Capability.",
451536 .dependencies = featureSet(&[_]Feature{
461537 .v1_0,
471538 }),
481539 };
49 result[@intFromEnum(Feature.float64)] = .{
1540 result[@intFromEnum(Feature.storage_buffer_array_non_uniform_indexing)] = .{
1541 .llvm_name = null,
1542 .description = "Enable storage_buffer_array_non_uniform_indexing Capability.",
1543 .dependencies = featureSet(&[_]Feature{
1544 .SPV_EXT_descriptor_indexing,
1545 .v1_5,
1546 }),
1547 };
1548 result[@intFromEnum(Feature.storage_image_array_dynamic_indexing)] = .{
501549 .llvm_name = null,
51 .description = "Enable Float64 capability",
1550 .description = "Enable storage_image_array_dynamic_indexing Capability.",
521551 .dependencies = featureSet(&[_]Feature{
531552 .v1_0,
541553 }),
551554 };
56 result[@intFromEnum(Feature.generic_pointer)] = .{
1555 result[@intFromEnum(Feature.storage_image_array_non_uniform_indexing)] = .{
571556 .llvm_name = null,
58 .description = "Enable GenericPointer capability",
1557 .description = "Enable storage_image_array_non_uniform_indexing Capability.",
1558 .dependencies = featureSet(&[_]Feature{
1559 .SPV_EXT_descriptor_indexing,
1560 .v1_5,
1561 }),
1562 };
1563 result[@intFromEnum(Feature.storage_image_extended_formats)] = .{
1564 .llvm_name = null,
1565 .description = "Enable storage_image_extended_formats Capability.",
591566 .dependencies = featureSet(&[_]Feature{
601567 .v1_0,
611568 }),
621569 };
63 result[@intFromEnum(Feature.int64)] = .{
1570 result[@intFromEnum(Feature.storage_image_multisample)] = .{
1571 .llvm_name = null,
1572 .description = "Enable storage_image_multisample Capability.",
1573 .dependencies = featureSet(&[_]Feature{
1574 .v1_0,
1575 }),
1576 };
1577 result[@intFromEnum(Feature.storage_image_read_without_format)] = .{
1578 .llvm_name = null,
1579 .description = "Enable storage_image_read_without_format Capability.",
1580 .dependencies = featureSet(&[_]Feature{
1581 .v1_0,
1582 }),
1583 };
1584 result[@intFromEnum(Feature.storage_image_write_without_format)] = .{
641585 .llvm_name = null,
65 .description = "Enable Int64 capability",
1586 .description = "Enable storage_image_write_without_format Capability.",
661587 .dependencies = featureSet(&[_]Feature{
671588 .v1_0,
681589 }),
691590 };
1591 result[@intFromEnum(Feature.storage_input_output16)] = .{
1592 .llvm_name = null,
1593 .description = "Enable storage_input_output16 Capability.",
1594 .dependencies = featureSet(&[_]Feature{
1595 .SPV_KHR_16bit_storage,
1596 .v1_3,
1597 }),
1598 };
701599 result[@intFromEnum(Feature.storage_push_constant16)] = .{
711600 .llvm_name = null,
72 .description = "Enable SPV_KHR_16bit_storage extension and the StoragePushConstant16 capability",
1601 .description = "Enable storage_push_constant16 Capability.",
731602 .dependencies = featureSet(&[_]Feature{
1603 .SPV_KHR_16bit_storage,
741604 .v1_3,
751605 }),
761606 };
77 result[@intFromEnum(Feature.v1_0)] = .{
1607 result[@intFromEnum(Feature.storage_push_constant8)] = .{
781608 .llvm_name = null,
79 .description = "Enable version 1.0",
80 .dependencies = featureSet(&[_]Feature{}),
1609 .description = "Enable storage_push_constant8 Capability.",
1610 .dependencies = featureSet(&[_]Feature{
1611 .SPV_KHR_8bit_storage,
1612 .v1_5,
1613 }),
811614 };
82 result[@intFromEnum(Feature.v1_1)] = .{
1615 result[@intFromEnum(Feature.storage_texel_buffer_array_dynamic_indexing)] = .{
1616 .llvm_name = null,
1617 .description = "Enable storage_texel_buffer_array_dynamic_indexing Capability.",
1618 .dependencies = featureSet(&[_]Feature{
1619 .SPV_EXT_descriptor_indexing,
1620 .v1_5,
1621 }),
1622 };
1623 result[@intFromEnum(Feature.storage_texel_buffer_array_non_uniform_indexing)] = .{
831624 .llvm_name = null,
84 .description = "Enable version 1.1",
1625 .description = "Enable storage_texel_buffer_array_non_uniform_indexing Capability.",
851626 .dependencies = featureSet(&[_]Feature{
1627 .SPV_EXT_descriptor_indexing,
1628 .v1_5,
1629 }),
1630 };
1631 result[@intFromEnum(Feature.subgroup_ballot_khr)] = .{
1632 .llvm_name = null,
1633 .description = "Enable subgroup_ballot_khr Capability.",
1634 .dependencies = featureSet(&[_]Feature{
1635 .SPV_KHR_shader_ballot,
861636 .v1_0,
871637 }),
881638 };
89 result[@intFromEnum(Feature.v1_2)] = .{
1639 result[@intFromEnum(Feature.subgroup_dispatch)] = .{
901640 .llvm_name = null,
91 .description = "Enable version 1.2",
1641 .description = "Enable subgroup_dispatch Capability.",
921642 .dependencies = featureSet(&[_]Feature{
931643 .v1_1,
941644 }),
951645 };
96 result[@intFromEnum(Feature.v1_3)] = .{
1646 result[@intFromEnum(Feature.subgroup_vote_khr)] = .{
971647 .llvm_name = null,
98 .description = "Enable version 1.3",
1648 .description = "Enable subgroup_vote_khr Capability.",
991649 .dependencies = featureSet(&[_]Feature{
100 .v1_2,
1650 .SPV_KHR_subgroup_vote,
1651 .v1_0,
1011652 }),
1021653 };
103 result[@intFromEnum(Feature.v1_4)] = .{
1654 result[@intFromEnum(Feature.tessellation)] = .{
1655 .llvm_name = null,
1656 .description = "Enable tessellation Capability.",
1657 .dependencies = featureSet(&[_]Feature{
1658 .v1_0,
1659 }),
1660 };
1661 result[@intFromEnum(Feature.tessellation_point_size)] = .{
1662 .llvm_name = null,
1663 .description = "Enable tessellation_point_size Capability.",
1664 .dependencies = featureSet(&[_]Feature{
1665 .v1_0,
1666 }),
1667 };
1668 result[@intFromEnum(Feature.tile_image_color_read_access_ext)] = .{
1669 .llvm_name = null,
1670 .description = "Enable tile_image_color_read_access_ext Capability.",
1671 .dependencies = featureSet(&[_]Feature{
1672 .SPV_EXT_shader_tile_image,
1673 .v1_0,
1674 }),
1675 };
1676 result[@intFromEnum(Feature.tile_image_depth_read_access_ext)] = .{
1677 .llvm_name = null,
1678 .description = "Enable tile_image_depth_read_access_ext Capability.",
1679 .dependencies = featureSet(&[_]Feature{
1680 .SPV_EXT_shader_tile_image,
1681 .v1_0,
1682 }),
1683 };
1684 result[@intFromEnum(Feature.tile_image_stencil_read_access_ext)] = .{
1685 .llvm_name = null,
1686 .description = "Enable tile_image_stencil_read_access_ext Capability.",
1687 .dependencies = featureSet(&[_]Feature{
1688 .SPV_EXT_shader_tile_image,
1689 .v1_0,
1690 }),
1691 };
1692 result[@intFromEnum(Feature.transform_feedback)] = .{
1693 .llvm_name = null,
1694 .description = "Enable transform_feedback Capability.",
1695 .dependencies = featureSet(&[_]Feature{
1696 .v1_0,
1697 }),
1698 };
1699 result[@intFromEnum(Feature.uniform_and_storage_buffer16bit_access)] = .{
1041700 .llvm_name = null,
105 .description = "Enable version 1.4",
1701 .description = "Enable uniform_and_storage_buffer16bit_access Capability.",
1061702 .dependencies = featureSet(&[_]Feature{
1703 .SPV_KHR_16bit_storage,
1071704 .v1_3,
1081705 }),
1091706 };
110 result[@intFromEnum(Feature.v1_5)] = .{
1707 result[@intFromEnum(Feature.uniform_and_storage_buffer8bit_access)] = .{
1111708 .llvm_name = null,
112 .description = "Enable version 1.5",
1709 .description = "Enable uniform_and_storage_buffer8bit_access Capability.",
1131710 .dependencies = featureSet(&[_]Feature{
114 .v1_4,
1711 .SPV_KHR_8bit_storage,
1712 .v1_5,
1151713 }),
1161714 };
117 result[@intFromEnum(Feature.v1_6)] = .{
1715 result[@intFromEnum(Feature.uniform_buffer_array_dynamic_indexing)] = .{
1716 .llvm_name = null,
1717 .description = "Enable uniform_buffer_array_dynamic_indexing Capability.",
1718 .dependencies = featureSet(&[_]Feature{
1719 .v1_0,
1720 }),
1721 };
1722 result[@intFromEnum(Feature.uniform_buffer_array_non_uniform_indexing)] = .{
1181723 .llvm_name = null,
119 .description = "Enable version 1.6",
1724 .description = "Enable uniform_buffer_array_non_uniform_indexing Capability.",
1201725 .dependencies = featureSet(&[_]Feature{
1726 .SPV_EXT_descriptor_indexing,
1211727 .v1_5,
1221728 }),
1231729 };
124 result[@intFromEnum(Feature.variable_pointers)] = .{
1730 result[@intFromEnum(Feature.uniform_decoration)] = .{
1731 .llvm_name = null,
1732 .description = "Enable uniform_decoration Capability.",
1733 .dependencies = featureSet(&[_]Feature{
1734 .v1_6,
1735 }),
1736 };
1737 result[@intFromEnum(Feature.uniform_texel_buffer_array_dynamic_indexing)] = .{
1738 .llvm_name = null,
1739 .description = "Enable uniform_texel_buffer_array_dynamic_indexing Capability.",
1740 .dependencies = featureSet(&[_]Feature{
1741 .SPV_EXT_descriptor_indexing,
1742 .v1_5,
1743 }),
1744 };
1745 result[@intFromEnum(Feature.uniform_texel_buffer_array_non_uniform_indexing)] = .{
1746 .llvm_name = null,
1747 .description = "Enable uniform_texel_buffer_array_non_uniform_indexing Capability.",
1748 .dependencies = featureSet(&[_]Feature{
1749 .SPV_EXT_descriptor_indexing,
1750 .v1_5,
1751 }),
1752 };
1753 result[@intFromEnum(Feature.untyped_pointers_khr)] = .{
1251754 .llvm_name = null,
126 .description = "Enable SPV_KHR_variable_pointers extension and the VariablePointers capability",
1755 .description = "Enable untyped_pointers_khr Capability.",
1271756 .dependencies = featureSet(&[_]Feature{
1757 .SPV_KHR_untyped_pointers,
1281758 .v1_0,
1291759 }),
1301760 };
1761 result[@intFromEnum(Feature.v1_0)] = .{
1762 .llvm_name = null,
1763 .description = "Enable v1_0 Extension.",
1764 .dependencies = featureSet(&[_]Feature{}),
1765 };
1766 result[@intFromEnum(Feature.v1_1)] = .{
1767 .llvm_name = null,
1768 .description = "Enable v1_1 Extension.",
1769 .dependencies = featureSet(&[_]Feature{}),
1770 };
1771 result[@intFromEnum(Feature.v1_2)] = .{
1772 .llvm_name = null,
1773 .description = "Enable v1_2 Extension.",
1774 .dependencies = featureSet(&[_]Feature{}),
1775 };
1776 result[@intFromEnum(Feature.v1_3)] = .{
1777 .llvm_name = null,
1778 .description = "Enable v1_3 Extension.",
1779 .dependencies = featureSet(&[_]Feature{}),
1780 };
1781 result[@intFromEnum(Feature.v1_4)] = .{
1782 .llvm_name = null,
1783 .description = "Enable v1_4 Extension.",
1784 .dependencies = featureSet(&[_]Feature{}),
1785 };
1786 result[@intFromEnum(Feature.v1_5)] = .{
1787 .llvm_name = null,
1788 .description = "Enable v1_5 Extension.",
1789 .dependencies = featureSet(&[_]Feature{}),
1790 };
1791 result[@intFromEnum(Feature.v1_6)] = .{
1792 .llvm_name = null,
1793 .description = "Enable v1_6 Extension.",
1794 .dependencies = featureSet(&[_]Feature{}),
1795 };
1796 result[@intFromEnum(Feature.variable_pointers)] = .{
1797 .llvm_name = null,
1798 .description = "Enable variable_pointers Capability.",
1799 .dependencies = featureSet(&[_]Feature{
1800 .SPV_KHR_variable_pointers,
1801 .v1_3,
1802 }),
1803 };
1804 result[@intFromEnum(Feature.variable_pointers_storage_buffer)] = .{
1805 .llvm_name = null,
1806 .description = "Enable variable_pointers_storage_buffer Capability.",
1807 .dependencies = featureSet(&[_]Feature{
1808 .SPV_KHR_variable_pointers,
1809 .v1_3,
1810 }),
1811 };
1311812 result[@intFromEnum(Feature.vector16)] = .{
1321813 .llvm_name = null,
133 .description = "Enable Vector16 capability",
1814 .description = "Enable vector16 Capability.",
1815 .dependencies = featureSet(&[_]Feature{
1816 .v1_0,
1817 }),
1818 };
1819 result[@intFromEnum(Feature.vulkan_memory_model)] = .{
1820 .llvm_name = null,
1821 .description = "Enable vulkan_memory_model Capability.",
1822 .dependencies = featureSet(&[_]Feature{
1823 .SPV_KHR_vulkan_memory_model,
1824 .v1_5,
1825 }),
1826 };
1827 result[@intFromEnum(Feature.vulkan_memory_model_device_scope)] = .{
1828 .llvm_name = null,
1829 .description = "Enable vulkan_memory_model_device_scope Capability.",
1830 .dependencies = featureSet(&[_]Feature{
1831 .SPV_KHR_vulkan_memory_model,
1832 .v1_5,
1833 }),
1834 };
1835 result[@intFromEnum(Feature.workgroup_memory_explicit_layout16bit_access_khr)] = .{
1836 .llvm_name = null,
1837 .description = "Enable workgroup_memory_explicit_layout16bit_access_khr Capability.",
1838 .dependencies = featureSet(&[_]Feature{
1839 .SPV_KHR_workgroup_memory_explicit_layout,
1840 .v1_0,
1841 }),
1842 };
1843 result[@intFromEnum(Feature.workgroup_memory_explicit_layout8bit_access_khr)] = .{
1844 .llvm_name = null,
1845 .description = "Enable workgroup_memory_explicit_layout8bit_access_khr Capability.",
1846 .dependencies = featureSet(&[_]Feature{
1847 .SPV_KHR_workgroup_memory_explicit_layout,
1848 .v1_0,
1849 }),
1850 };
1851 result[@intFromEnum(Feature.workgroup_memory_explicit_layout_khr)] = .{
1852 .llvm_name = null,
1853 .description = "Enable workgroup_memory_explicit_layout_khr Capability.",
1341854 .dependencies = featureSet(&[_]Feature{
1855 .SPV_KHR_workgroup_memory_explicit_layout,
1351856 .v1_0,
1361857 }),
1371858 };
src/codegen/spirv/Assembler.zig+2-9
......@@ -167,15 +167,8 @@ fn processInstruction(ass: *Assembler) !void {
167167 .OpExecutionMode, .OpExecutionModeId => {
168168 return ass.fail(ass.currentToken().start, "cannot set execution mode in assembly", .{});
169169 },
170 .OpCapability => {
171 try module.addCapability(@enumFromInt(ass.inst.operands.items[0].value));
172 return;
173 },
174 .OpExtension => {
175 const ext_name_offset = ass.inst.operands.items[0].string;
176 const ext_name = std.mem.sliceTo(ass.inst.string_bytes.items[ext_name_offset..], 0);
177 try module.addExtension(ext_name);
178 return;
170 .OpCapability, .OpExtension => {
171 return ass.fail(ass.currentToken().start, "cannot declare capabilities or extensions in assembly; use -mcpu instead", .{});
179172 },
180173 .OpExtInstImport => blk: {
181174 const set_name_offset = ass.inst.operands.items[1].string;
src/codegen/spirv/Module.zig+3-286
......@@ -61,8 +61,6 @@ cache: struct {
6161 struct_types: std.array_hash_map.Custom(StructType, Id, StructType.HashContext, true) = .empty,
6262 fn_types: std.array_hash_map.Custom(FnType, Id, FnType.HashContext, true) = .empty,
6363
64 capabilities: std.AutoHashMapUnmanaged(spec.Capability, void) = .empty,
65 extensions: std.StringHashMapUnmanaged(void) = .empty,
6664 extended_instruction_set: std.AutoHashMapUnmanaged(spec.InstructionSet, Id) = .empty,
6765 decorations: std.AutoHashMapUnmanaged(struct { Id, spec.Decoration }, void) = .empty,
6866 builtins: std.AutoHashMapUnmanaged(struct { spec.BuiltIn, spec.StorageClass }, Decl.Index) = .empty,
......@@ -75,8 +73,6 @@ cache: struct {
7573} = .{},
7674/// Module layout, according to SPIR-V Spec section 2.4, "Logical Layout of a Module".
7775sections: struct {
78 capabilities: Section = .{},
79 extensions: Section = .{},
8076 extended_instruction_set: Section = .{},
8177 memory_model: Section = .{},
8278 execution_modes: Section = .{},
......@@ -211,8 +207,6 @@ pub fn deinit(module: *Module) void {
211207 module.intern_map.deinit(module.gpa);
212208 module.ptr_types.deinit(module.gpa);
213209
214 module.sections.capabilities.deinit(module.gpa);
215 module.sections.extensions.deinit(module.gpa);
216210 module.sections.extended_instruction_set.deinit(module.gpa);
217211 module.sections.memory_model.deinit(module.gpa);
218212 module.sections.execution_modes.deinit(module.gpa);
......@@ -230,8 +224,6 @@ pub fn deinit(module: *Module) void {
230224 module.cache.struct_types.deinit(module.gpa);
231225 module.cache.fn_types.deinit(module.gpa);
232226 module.cache.spirv_types.deinit(module.gpa);
233 module.cache.capabilities.deinit(module.gpa);
234 module.cache.extensions.deinit(module.gpa);
235227 module.cache.extended_instruction_set.deinit(module.gpa);
236228 module.cache.decorations.deinit(module.gpa);
237229 module.cache.builtins.deinit(module.gpa);
......@@ -302,270 +294,6 @@ pub fn addEntryPointDeps(
302294 }
303295}
304296
305fn entryPoints(module: *Module) !Section {
306 const target = module.zcu.getTarget();
307
308 var entry_points = Section{};
309 errdefer entry_points.deinit(module.gpa);
310
311 var interface = std.array_list.Managed(Id).init(module.gpa);
312 defer interface.deinit();
313
314 var seen: std.bit_set.Dynamic = try .initEmpty(module.gpa, module.decls.items.len);
315 defer seen.deinit(module.gpa);
316
317 for (module.entry_points.keys(), module.entry_points.values()) |entry_point_id, entry_point| {
318 interface.items.len = 0;
319 seen.setRangeValue(.{ .start = 0, .end = module.decls.items.len }, false);
320
321 const exec_model: spec.ExecutionModel = switch (target.os.tag) {
322 .vulkan, .opengl => switch (entry_point.cc) {
323 .spirv_vertex => .vertex,
324 .spirv_fragment => .fragment,
325 .spirv_kernel => .gl_compute,
326 .spirv_task => .task_ext,
327 .spirv_mesh => .mesh_ext,
328 // TODO: We should integrate with the Linkage capability and export this function
329 .spirv_device => continue,
330 else => unreachable,
331 },
332 .opencl => switch (entry_point.cc) {
333 .spirv_kernel => .kernel,
334 // TODO: We should integrate with the Linkage capability and export this function
335 .spirv_device => continue,
336 else => unreachable,
337 },
338 else => unreachable,
339 };
340 try module.addEntryPointDeps(entry_point.decl_index, &seen, &interface);
341 try entry_points.emit(module.gpa, .OpEntryPoint, .{
342 .execution_model = exec_model,
343 .entry_point = entry_point_id,
344 .name = entry_point.name,
345 .interface = interface.items,
346 });
347
348 switch (entry_point.cc) {
349 .spirv_kernel, .spirv_task => |kernel| {
350 try module.sections.execution_modes.emit(module.gpa, .OpExecutionMode, .{
351 .entry_point = entry_point_id,
352 .mode = .{ .local_size = .{
353 .x_size = kernel.x,
354 .y_size = kernel.y,
355 .z_size = kernel.z,
356 } },
357 });
358 },
359 .spirv_fragment => |fragment| {
360 try module.sections.execution_modes.emit(module.gpa, .OpExecutionMode, .{
361 .entry_point = entry_point_id,
362 .mode = if (target.os.tag == .vulkan) .origin_upper_left else .origin_lower_left,
363 });
364 if (fragment.pixel_centered_integer) {
365 try module.sections.execution_modes.emit(module.gpa, .OpExecutionMode, .{
366 .entry_point = entry_point_id,
367 .mode = .pixel_center_integer,
368 });
369 }
370
371 const exec_mode: ?spec.ExecutionMode.Extended = switch (fragment.depth_assumption) {
372 .none => null,
373 .greater => .depth_greater,
374 .less => .depth_less,
375 .unchanged => .depth_unchanged,
376 };
377 if (exec_mode) |mode| {
378 try module.sections.execution_modes.emit(module.gpa, .OpExecutionMode, .{
379 .entry_point = entry_point_id,
380 .mode = mode,
381 });
382 }
383 },
384 .spirv_mesh => |mesh| {
385 try module.sections.execution_modes.emit(module.gpa, .OpExecutionMode, .{
386 .entry_point = entry_point_id,
387 .mode = .{ .output_vertices = .{ .vertex_count = mesh.max_vertices } },
388 });
389 try module.sections.execution_modes.emit(module.gpa, .OpExecutionMode, .{
390 .entry_point = entry_point_id,
391 .mode = .{ .output_primitives_ext = .{ .primitive_count = mesh.max_primitives } },
392 });
393
394 try module.sections.execution_modes.emit(module.gpa, .OpExecutionMode, .{
395 .entry_point = entry_point_id,
396 .mode = switch (mesh.stage_output) {
397 .output_points => .output_points,
398 .output_lines => .output_lines_ext,
399 .output_triangles => .output_triangles_ext,
400 },
401 });
402 },
403 else => {}, // TODO: should this be unreachable?
404 }
405 }
406
407 return entry_points;
408}
409
410pub fn finalize(module: *Module, gpa: Allocator) ![]Word {
411 const target = module.zcu.getTarget();
412
413 // Emit capabilities and extensions
414 switch (target.os.tag) {
415 .opengl => {
416 try module.addCapability(.shader);
417 try module.addCapability(.matrix);
418 },
419 .vulkan => {
420 try module.addCapability(.shader);
421 try module.addCapability(.matrix);
422 if (target.cpu.arch == .spirv64) {
423 try module.addExtension("SPV_KHR_physical_storage_buffer");
424 try module.addCapability(.physical_storage_buffer_addresses);
425 }
426 },
427 .opencl, .amdhsa => {
428 try module.addCapability(.kernel);
429 try module.addCapability(.addresses);
430 },
431 else => unreachable,
432 }
433 if (target.cpu.arch == .spirv64) try module.addCapability(.int64);
434 if (target.cpu.has(.spirv, .int64)) try module.addCapability(.int64);
435 if (target.cpu.has(.spirv, .float16)) {
436 if (target.os.tag == .opencl) try module.addExtension("cl_khr_fp16");
437 try module.addCapability(.float16);
438 }
439 if (target.cpu.has(.spirv, .float64)) try module.addCapability(.float64);
440 if (target.cpu.has(.spirv, .generic_pointer)) try module.addCapability(.generic_pointer);
441 if (target.cpu.has(.spirv, .vector16)) try module.addCapability(.vector16);
442 if (target.cpu.has(.spirv, .storage_push_constant16)) {
443 try module.addExtension("SPV_KHR_16bit_storage");
444 try module.addCapability(.storage_push_constant16);
445 }
446 if (target.cpu.has(.spirv, .arbitrary_precision_integers)) {
447 try module.addExtension("SPV_INTEL_arbitrary_precision_integers");
448 try module.addCapability(.arbitrary_precision_integers_intel);
449 }
450 if (target.cpu.has(.spirv, .variable_pointers)) {
451 try module.addExtension("SPV_KHR_variable_pointers");
452 try module.addCapability(.variable_pointers_storage_buffer);
453 try module.addCapability(.variable_pointers);
454 }
455 // These are well supported
456 try module.addCapability(.int8);
457 try module.addCapability(.int16);
458
459 // Emit memory model
460 const addressing_model: spec.AddressingModel = switch (target.os.tag) {
461 .opengl => .logical,
462 .vulkan => if (target.cpu.arch == .spirv32) .logical else .physical_storage_buffer64,
463 .opencl => if (target.cpu.arch == .spirv32) .physical32 else .physical64,
464 .amdhsa => .physical64,
465 else => unreachable,
466 };
467 try module.sections.memory_model.emit(module.gpa, .OpMemoryModel, .{
468 .addressing_model = addressing_model,
469 .memory_model = switch (target.os.tag) {
470 .opencl => .open_cl,
471 .vulkan, .opengl => .glsl450,
472 else => unreachable,
473 },
474 });
475
476 var entry_points = try module.entryPoints();
477 defer entry_points.deinit(module.gpa);
478
479 const version: spec.Version = .{
480 .major = 1,
481 .minor = blk: {
482 // Prefer higher versions
483 if (target.cpu.has(.spirv, .v1_6)) break :blk 6;
484 if (target.cpu.has(.spirv, .v1_5)) break :blk 5;
485 if (target.cpu.has(.spirv, .v1_4)) break :blk 4;
486 if (target.cpu.has(.spirv, .v1_3)) break :blk 3;
487 if (target.cpu.has(.spirv, .v1_2)) break :blk 2;
488 if (target.cpu.has(.spirv, .v1_1)) break :blk 1;
489 break :blk 0;
490 },
491 };
492
493 const zig_version = @import("builtin").zig_version;
494 const zig_spirv_compiler_version = comptime (zig_version.major << 12) | (zig_version.minor << 7) | zig_version.patch;
495
496 // A SPIR-V Generator Magic Number is a 32 bit word: The high order 16
497 // bits are a tool ID, which should be unique across all SPIR-V
498 // generators. The low order 16 bits are reserved for use as a tool
499 // version number, or any other purpose the tool supplier chooses.
500 // Only the tool IDs are reserved with Khronos.
501 // See https://github.com/KhronosGroup/SPIRV-Headers/blob/f2e4bd213104fe323a01e935df56557328d37ac8/include/spirv/spir-v.xml#L17C5-L21C54
502 const generator_id: u32 = (spec.zig_generator_id << 16) | zig_spirv_compiler_version;
503
504 const header = [_]Word{
505 spec.magic_number,
506 version.toWord(),
507 generator_id,
508 module.idBound(),
509 0, // Schema (currently reserved for future use)
510 };
511
512 var source = Section{};
513 defer source.deinit(module.gpa);
514 try module.sections.debug_strings.emit(module.gpa, .OpSource, .{
515 .source_language = .zig,
516 .version = zig_spirv_compiler_version,
517 // We cannot emit these because the Khronos translator does not parse this instruction
518 // correctly.
519 // See https://github.com/KhronosGroup/SPIRV-LLVM-Translator/issues/2188
520 .file = null,
521 .source = null,
522 });
523
524 // Note: needs to be kept in order according to section 2.3!
525 const buffers = &[_][]const Word{
526 &header,
527 module.sections.capabilities.toWords(),
528 module.sections.extensions.toWords(),
529 module.sections.extended_instruction_set.toWords(),
530 module.sections.memory_model.toWords(),
531 entry_points.toWords(),
532 module.sections.execution_modes.toWords(),
533 source.toWords(),
534 module.sections.debug_strings.toWords(),
535 module.sections.debug_names.toWords(),
536 module.sections.annotations.toWords(),
537 module.sections.globals.toWords(),
538 module.sections.functions.toWords(),
539 };
540
541 var total_result_size: usize = 0;
542 for (buffers) |buffer| {
543 total_result_size += buffer.len;
544 }
545 const result = try gpa.alloc(Word, total_result_size);
546 errdefer comptime unreachable;
547
548 var offset: usize = 0;
549 for (buffers) |buffer| {
550 @memcpy(result[offset..][0..buffer.len], buffer);
551 offset += buffer.len;
552 }
553
554 return result;
555}
556
557pub fn addCapability(module: *Module, cap: spec.Capability) !void {
558 const entry = try module.cache.capabilities.getOrPut(module.gpa, cap);
559 if (entry.found_existing) return;
560 try module.sections.capabilities.emit(module.gpa, .OpCapability, .{ .capability = cap });
561}
562
563pub fn addExtension(module: *Module, ext: []const u8) !void {
564 const entry = try module.cache.extensions.getOrPut(module.gpa, ext);
565 if (entry.found_existing) return;
566 try module.sections.extensions.emit(module.gpa, .OpExtension, .{ .name = ext });
567}
568
569297/// Imports or returns the existing id of an extended instruction set
570298pub fn importInstructionSet(module: *Module, set: spec.InstructionSet) !Id {
571299 assert(set != .core);
......@@ -622,28 +350,17 @@ pub fn opaqueType(module: *Module, name: []const u8) !Id {
622350pub fn backingIntBits(module: *Module, bits: u16) struct { u16, bool } {
623351 assert(bits != 0);
624352 const target = module.zcu.getTarget();
625
626 if (target.cpu.has(.spirv, .arbitrary_precision_integers) and bits <= 32) {
627 return .{ bits, false };
628 }
629
630 // We require Int8 and Int16 capabilities and benefit Int64 when available.
631 // 32-bit integers are always supported (see spec, 2.16.1, Data rules).
632353 const ints = [_]struct { bits: u16, enabled: bool }{
633 .{ .bits = 8, .enabled = true },
634 .{ .bits = 16, .enabled = true },
354 .{ .bits = 8, .enabled = target.cpu.has(.spirv, .int8) },
355 .{ .bits = 16, .enabled = target.cpu.has(.spirv, .int16) },
635356 .{ .bits = 32, .enabled = true },
636 .{
637 .bits = 64,
638 .enabled = target.cpu.has(.spirv, .int64) or target.cpu.arch == .spirv64,
639 },
357 .{ .bits = 64, .enabled = target.cpu.has(.spirv, .int64) or target.cpu.arch == .spirv64 },
640358 };
641359
642360 for (ints) |int| {
643361 if (bits <= int.bits and int.enabled) return .{ int.bits, false };
644362 }
645363
646 // Big int
647364 return .{ std.mem.alignForward(u16, bits, big_int_bits), true };
648365}
649366
src/codegen/spirv/spec.zig+4242-2811
......@@ -313,16 +313,16 @@ pub const OperandKind = enum {
313313 .{ .name = "IterationMultiple", .value = 0x0040, .parameters = &.{.literal_integer} },
314314 .{ .name = "PeelCount", .value = 0x0080, .parameters = &.{.literal_integer} },
315315 .{ .name = "PartialCount", .value = 0x0100, .parameters = &.{.literal_integer} },
316 .{ .name = "InitiationIntervalINTEL", .value = 0x10000, .parameters = &.{.literal_integer} },
317 .{ .name = "MaxConcurrencyINTEL", .value = 0x20000, .parameters = &.{.literal_integer} },
318 .{ .name = "DependencyArrayINTEL", .value = 0x40000, .parameters = &.{.literal_integer} },
319 .{ .name = "PipelineEnableINTEL", .value = 0x80000, .parameters = &.{.literal_integer} },
320 .{ .name = "LoopCoalesceINTEL", .value = 0x100000, .parameters = &.{.literal_integer} },
321 .{ .name = "MaxInterleavingINTEL", .value = 0x200000, .parameters = &.{.literal_integer} },
322 .{ .name = "SpeculatedIterationsINTEL", .value = 0x400000, .parameters = &.{.literal_integer} },
323 .{ .name = "NoFusionINTEL", .value = 0x800000, .parameters = &.{} },
324 .{ .name = "LoopCountINTEL", .value = 0x1000000, .parameters = &.{.literal_integer} },
325 .{ .name = "MaxReinvocationDelayINTEL", .value = 0x2000000, .parameters = &.{.literal_integer} },
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} },
326326 },
327327 .function_control => &.{
328328 .{ .name = "Inline", .value = 0x0001, .parameters = &.{} },
......@@ -500,6 +500,7 @@ pub const OperandKind = enum {
500500 .{ .name = "QuadDerivativesKHR", .value = 5088, .parameters = &.{} },
501501 .{ .name = "RequireFullQuadsKHR", .value = 5089, .parameters = &.{} },
502502 .{ .name = "SharesInputWithAMDX", .value = 5102, .parameters = &.{ .id_ref, .id_ref } },
503 .{ .name = "ArithmeticPoisonKHR", .value = 5157, .parameters = &.{} },
503504 .{ .name = "OutputLinesEXT", .value = 5269, .parameters = &.{} },
504505 .{ .name = "OutputPrimitivesEXT", .value = 5270, .parameters = &.{.literal_integer} },
505506 .{ .name = "DerivativeGroupQuadsKHR", .value = 5289, .parameters = &.{} },
......@@ -511,6 +512,7 @@ pub const OperandKind = enum {
511512 .{ .name = "SampleInterlockUnorderedEXT", .value = 5369, .parameters = &.{} },
512513 .{ .name = "ShadingRateInterlockOrderedEXT", .value = 5370, .parameters = &.{} },
513514 .{ .name = "ShadingRateInterlockUnorderedEXT", .value = 5371, .parameters = &.{} },
515 .{ .name = "Shader64BitIndexingEXT", .value = 5427, .parameters = &.{} },
514516 .{ .name = "SharedLocalMemorySizeINTEL", .value = 5618, .parameters = &.{.literal_integer} },
515517 .{ .name = "RoundingModeRTPINTEL", .value = 5620, .parameters = &.{.literal_integer} },
516518 .{ .name = "RoundingModeRTNINTEL", .value = 5621, .parameters = &.{.literal_integer} },
......@@ -556,9 +558,10 @@ pub const OperandKind = enum {
556558 .{ .name = "PhysicalStorageBuffer", .value = 5349, .parameters = &.{} },
557559 .{ .name = "HitObjectAttributeNV", .value = 5385, .parameters = &.{} },
558560 .{ .name = "TaskPayloadWorkgroupEXT", .value = 5402, .parameters = &.{} },
561 .{ .name = "HitObjectAttributeEXT", .value = 5411, .parameters = &.{} },
559562 .{ .name = "CodeSectionINTEL", .value = 5605, .parameters = &.{} },
560 .{ .name = "DeviceOnlyINTEL", .value = 5936, .parameters = &.{} },
561 .{ .name = "HostOnlyINTEL", .value = 5937, .parameters = &.{} },
563 .{ .name = "DeviceOnlyALTERA", .value = 5936, .parameters = &.{} },
564 .{ .name = "HostOnlyALTERA", .value = 5937, .parameters = &.{} },
562565 },
563566 .dim => &.{
564567 .{ .name = "1D", .value = 0, .parameters = &.{} },
......@@ -730,7 +733,7 @@ pub const OperandKind = enum {
730733 .{ .name = "NoCapture", .value = 5, .parameters = &.{} },
731734 .{ .name = "NoWrite", .value = 6, .parameters = &.{} },
732735 .{ .name = "NoReadWrite", .value = 7, .parameters = &.{} },
733 .{ .name = "RuntimeAlignedINTEL", .value = 5940, .parameters = &.{} },
736 .{ .name = "RuntimeAlignedALTERA", .value = 5940, .parameters = &.{} },
734737 },
735738 .decoration => &.{
736739 .{ .name = "RelaxedPrecision", .value = 0, .parameters = &.{} },
......@@ -795,6 +798,9 @@ pub const OperandKind = enum {
795798 .{ .name = "PayloadNodeSparseArrayAMDX", .value = 5099, .parameters = &.{} },
796799 .{ .name = "PayloadNodeArraySizeAMDX", .value = 5100, .parameters = &.{.id_ref} },
797800 .{ .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 = &.{} },
798804 .{ .name = "OverrideCoverageNV", .value = 5248, .parameters = &.{} },
799805 .{ .name = "PassthroughNV", .value = 5250, .parameters = &.{} },
800806 .{ .name = "ViewportRelativeNV", .value = 5252, .parameters = &.{} },
......@@ -806,7 +812,10 @@ pub const OperandKind = enum {
806812 .{ .name = "NonUniform", .value = 5300, .parameters = &.{} },
807813 .{ .name = "RestrictPointer", .value = 5355, .parameters = &.{} },
808814 .{ .name = "AliasedPointer", .value = 5356, .parameters = &.{} },
815 .{ .name = "MemberOffsetNV", .value = 5358, .parameters = &.{.literal_integer} },
809816 .{ .name = "HitObjectShaderRecordBufferNV", .value = 5386, .parameters = &.{} },
817 .{ .name = "HitObjectShaderRecordBufferEXT", .value = 5389, .parameters = &.{} },
818 .{ .name = "BankNV", .value = 5397, .parameters = &.{.literal_integer} },
810819 .{ .name = "BindlessSamplerNV", .value = 5398, .parameters = &.{} },
811820 .{ .name = "BindlessImageNV", .value = 5399, .parameters = &.{} },
812821 .{ .name = "BoundSamplerNV", .value = 5400, .parameters = &.{} },
......@@ -825,55 +834,56 @@ pub const OperandKind = enum {
825834 .{ .name = "UserTypeGOOGLE", .value = 5636, .parameters = &.{.literal_string} },
826835 .{ .name = "FunctionRoundingModeINTEL", .value = 5822, .parameters = &.{ .literal_integer, .fp_rounding_mode } },
827836 .{ .name = "FunctionDenormModeINTEL", .value = 5823, .parameters = &.{ .literal_integer, .fp_denorm_mode } },
828 .{ .name = "RegisterINTEL", .value = 5825, .parameters = &.{} },
829 .{ .name = "MemoryINTEL", .value = 5826, .parameters = &.{.literal_string} },
830 .{ .name = "NumbanksINTEL", .value = 5827, .parameters = &.{.literal_integer} },
831 .{ .name = "BankwidthINTEL", .value = 5828, .parameters = &.{.literal_integer} },
832 .{ .name = "MaxPrivateCopiesINTEL", .value = 5829, .parameters = &.{.literal_integer} },
833 .{ .name = "SinglepumpINTEL", .value = 5830, .parameters = &.{} },
834 .{ .name = "DoublepumpINTEL", .value = 5831, .parameters = &.{} },
835 .{ .name = "MaxReplicatesINTEL", .value = 5832, .parameters = &.{.literal_integer} },
836 .{ .name = "SimpleDualPortINTEL", .value = 5833, .parameters = &.{} },
837 .{ .name = "MergeINTEL", .value = 5834, .parameters = &.{ .literal_string, .literal_string } },
838 .{ .name = "BankBitsINTEL", .value = 5835, .parameters = &.{.literal_integer} },
839 .{ .name = "ForcePow2DepthINTEL", .value = 5836, .parameters = &.{.literal_integer} },
840 .{ .name = "StridesizeINTEL", .value = 5883, .parameters = &.{.literal_integer} },
841 .{ .name = "WordsizeINTEL", .value = 5884, .parameters = &.{.literal_integer} },
842 .{ .name = "TrueDualPortINTEL", .value = 5885, .parameters = &.{} },
843 .{ .name = "BurstCoalesceINTEL", .value = 5899, .parameters = &.{} },
844 .{ .name = "CacheSizeINTEL", .value = 5900, .parameters = &.{.literal_integer} },
845 .{ .name = "DontStaticallyCoalesceINTEL", .value = 5901, .parameters = &.{} },
846 .{ .name = "PrefetchINTEL", .value = 5902, .parameters = &.{.literal_integer} },
847 .{ .name = "StallEnableINTEL", .value = 5905, .parameters = &.{} },
848 .{ .name = "FuseLoopsInFunctionINTEL", .value = 5907, .parameters = &.{} },
849 .{ .name = "MathOpDSPModeINTEL", .value = 5909, .parameters = &.{ .literal_integer, .literal_integer } },
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 } },
850859 .{ .name = "AliasScopeINTEL", .value = 5914, .parameters = &.{.id_ref} },
851860 .{ .name = "NoAliasINTEL", .value = 5915, .parameters = &.{.id_ref} },
852 .{ .name = "InitiationIntervalINTEL", .value = 5917, .parameters = &.{.literal_integer} },
853 .{ .name = "MaxConcurrencyINTEL", .value = 5918, .parameters = &.{.literal_integer} },
854 .{ .name = "PipelineEnableINTEL", .value = 5919, .parameters = &.{.literal_integer} },
855 .{ .name = "BufferLocationINTEL", .value = 5921, .parameters = &.{.literal_integer} },
856 .{ .name = "IOPipeStorageINTEL", .value = 5944, .parameters = &.{.literal_integer} },
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} },
857866 .{ .name = "FunctionFloatingPointModeINTEL", .value = 6080, .parameters = &.{ .literal_integer, .fp_operation_mode } },
858867 .{ .name = "SingleElementVectorINTEL", .value = 6085, .parameters = &.{} },
859868 .{ .name = "VectorComputeCallableFunctionINTEL", .value = 6087, .parameters = &.{} },
860869 .{ .name = "MediaBlockIOINTEL", .value = 6140, .parameters = &.{} },
861 .{ .name = "StallFreeINTEL", .value = 6151, .parameters = &.{} },
870 .{ .name = "StallFreeALTERA", .value = 6151, .parameters = &.{} },
862871 .{ .name = "FPMaxErrorDecorationINTEL", .value = 6170, .parameters = &.{.literal_float} },
863 .{ .name = "LatencyControlLabelINTEL", .value = 6172, .parameters = &.{.literal_integer} },
864 .{ .name = "LatencyControlConstraintINTEL", .value = 6173, .parameters = &.{ .literal_integer, .literal_integer, .literal_integer } },
865 .{ .name = "ConduitKernelArgumentINTEL", .value = 6175, .parameters = &.{} },
866 .{ .name = "RegisterMapKernelArgumentINTEL", .value = 6176, .parameters = &.{} },
867 .{ .name = "MMHostInterfaceAddressWidthINTEL", .value = 6177, .parameters = &.{.literal_integer} },
868 .{ .name = "MMHostInterfaceDataWidthINTEL", .value = 6178, .parameters = &.{.literal_integer} },
869 .{ .name = "MMHostInterfaceLatencyINTEL", .value = 6179, .parameters = &.{.literal_integer} },
870 .{ .name = "MMHostInterfaceReadWriteModeINTEL", .value = 6180, .parameters = &.{.access_qualifier} },
871 .{ .name = "MMHostInterfaceMaxBurstINTEL", .value = 6181, .parameters = &.{.literal_integer} },
872 .{ .name = "MMHostInterfaceWaitRequestINTEL", .value = 6182, .parameters = &.{.literal_integer} },
873 .{ .name = "StableKernelArgumentINTEL", .value = 6183, .parameters = &.{} },
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 = &.{} },
874883 .{ .name = "HostAccessINTEL", .value = 6188, .parameters = &.{ .host_access_qualifier, .literal_string } },
875 .{ .name = "InitModeINTEL", .value = 6190, .parameters = &.{.initialization_mode_qualifier} },
876 .{ .name = "ImplementInRegisterMapINTEL", .value = 6191, .parameters = &.{.literal_integer} },
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} },
877887 .{ .name = "CacheControlLoadINTEL", .value = 6442, .parameters = &.{ .literal_integer, .load_cache_control } },
878888 .{ .name = "CacheControlStoreINTEL", .value = 6443, .parameters = &.{ .literal_integer, .store_cache_control } },
879889 },
......@@ -949,6 +959,8 @@ pub const OperandKind = enum {
949959 .{ .name = "FragStencilRefEXT", .value = 5014, .parameters = &.{} },
950960 .{ .name = "RemainingRecursionLevelsAMDX", .value = 5021, .parameters = &.{} },
951961 .{ .name = "ShaderIndexAMDX", .value = 5073, .parameters = &.{} },
962 .{ .name = "SamplerHeapEXT", .value = 5122, .parameters = &.{} },
963 .{ .name = "ResourceHeapEXT", .value = 5123, .parameters = &.{} },
952964 .{ .name = "ViewportMaskNV", .value = 5253, .parameters = &.{} },
953965 .{ .name = "SecondaryPositionNV", .value = 5257, .parameters = &.{} },
954966 .{ .name = "SecondaryViewportMaskNV", .value = 5258, .parameters = &.{} },
......@@ -1019,9 +1031,9 @@ pub const OperandKind = enum {
10191031 .{ .name = "InclusiveScan", .value = 1, .parameters = &.{} },
10201032 .{ .name = "ExclusiveScan", .value = 2, .parameters = &.{} },
10211033 .{ .name = "ClusteredReduce", .value = 3, .parameters = &.{} },
1022 .{ .name = "PartitionedReduceNV", .value = 6, .parameters = &.{} },
1023 .{ .name = "PartitionedInclusiveScanNV", .value = 7, .parameters = &.{} },
1024 .{ .name = "PartitionedExclusiveScanNV", .value = 8, .parameters = &.{} },
1034 .{ .name = "PartitionedReduceEXT", .value = 6, .parameters = &.{} },
1035 .{ .name = "PartitionedInclusiveScanEXT", .value = 7, .parameters = &.{} },
1036 .{ .name = "PartitionedExclusiveScanEXT", .value = 8, .parameters = &.{} },
10251037 },
10261038 .kernel_enqueue_flags => &.{
10271039 .{ .name = "NoWait", .value = 0, .parameters = &.{} },
......@@ -1144,6 +1156,7 @@ pub const OperandKind = enum {
11441156 .{ .name = "TextureBoxFilterQCOM", .value = 4485, .parameters = &.{} },
11451157 .{ .name = "TextureBlockMatchQCOM", .value = 4486, .parameters = &.{} },
11461158 .{ .name = "TileShadingQCOM", .value = 4495, .parameters = &.{} },
1159 .{ .name = "CooperativeMatrixConversionQCOM", .value = 4496, .parameters = &.{} },
11471160 .{ .name = "TextureBlockMatch2QCOM", .value = 4498, .parameters = &.{} },
11481161 .{ .name = "Float16ImageAMD", .value = 5008, .parameters = &.{} },
11491162 .{ .name = "ImageGatherBiasLodAMD", .value = 5009, .parameters = &.{} },
......@@ -1159,6 +1172,10 @@ pub const OperandKind = enum {
11591172 .{ .name = "BFloat16TypeKHR", .value = 5116, .parameters = &.{} },
11601173 .{ .name = "BFloat16DotProductKHR", .value = 5117, .parameters = &.{} },
11611174 .{ .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 = &.{} },
11621179 .{ .name = "SampleMaskOverrideCoverageNV", .value = 5249, .parameters = &.{} },
11631180 .{ .name = "GeometryShaderPassthroughNV", .value = 5251, .parameters = &.{} },
11641181 .{ .name = "ShaderViewportIndexLayerEXT", .value = 5254, .parameters = &.{} },
......@@ -1172,7 +1189,7 @@ pub const OperandKind = enum {
11721189 .{ .name = "FragmentBarycentricKHR", .value = 5284, .parameters = &.{} },
11731190 .{ .name = "ComputeDerivativeGroupQuadsKHR", .value = 5288, .parameters = &.{} },
11741191 .{ .name = "FragmentDensityEXT", .value = 5291, .parameters = &.{} },
1175 .{ .name = "GroupNonUniformPartitionedNV", .value = 5297, .parameters = &.{} },
1192 .{ .name = "GroupNonUniformPartitionedEXT", .value = 5297, .parameters = &.{} },
11761193 .{ .name = "ShaderNonUniform", .value = 5301, .parameters = &.{} },
11771194 .{ .name = "RuntimeDescriptorArray", .value = 5302, .parameters = &.{} },
11781195 .{ .name = "InputAttachmentArrayDynamicIndexing", .value = 5303, .parameters = &.{} },
......@@ -1202,6 +1219,7 @@ pub const OperandKind = enum {
12021219 .{ .name = "DisplacementMicromapNV", .value = 5380, .parameters = &.{} },
12031220 .{ .name = "RayTracingOpacityMicromapEXT", .value = 5381, .parameters = &.{} },
12041221 .{ .name = "ShaderInvocationReorderNV", .value = 5383, .parameters = &.{} },
1222 .{ .name = "ShaderInvocationReorderEXT", .value = 5388, .parameters = &.{} },
12051223 .{ .name = "BindlessTextureNV", .value = 5390, .parameters = &.{} },
12061224 .{ .name = "RayQueryPositionFetchKHR", .value = 5391, .parameters = &.{} },
12071225 .{ .name = "CooperativeVectorNV", .value = 5394, .parameters = &.{} },
......@@ -1210,6 +1228,9 @@ pub const OperandKind = enum {
12101228 .{ .name = "RawAccessChainsNV", .value = 5414, .parameters = &.{} },
12111229 .{ .name = "RayTracingSpheresGeometryNV", .value = 5418, .parameters = &.{} },
12121230 .{ .name = "RayTracingLinearSweptSpheresGeometryNV", .value = 5419, .parameters = &.{} },
1231 .{ .name = "PushConstantBanksNV", .value = 5423, .parameters = &.{} },
1232 .{ .name = "LongVectorEXT", .value = 5425, .parameters = &.{} },
1233 .{ .name = "Shader64BitIndexingEXT", .value = 5426, .parameters = &.{} },
12131234 .{ .name = "CooperativeMatrixReductionsNV", .value = 5430, .parameters = &.{} },
12141235 .{ .name = "CooperativeMatrixConversionsNV", .value = 5431, .parameters = &.{} },
12151236 .{ .name = "CooperativeMatrixPerElementOperationsNV", .value = 5432, .parameters = &.{} },
......@@ -1239,27 +1260,27 @@ pub const OperandKind = enum {
12391260 .{ .name = "SubgroupAvcMotionEstimationChromaINTEL", .value = 5698, .parameters = &.{} },
12401261 .{ .name = "VariableLengthArrayINTEL", .value = 5817, .parameters = &.{} },
12411262 .{ .name = "FunctionFloatControlINTEL", .value = 5821, .parameters = &.{} },
1242 .{ .name = "FPGAMemoryAttributesINTEL", .value = 5824, .parameters = &.{} },
1263 .{ .name = "FPGAMemoryAttributesALTERA", .value = 5824, .parameters = &.{} },
12431264 .{ .name = "FPFastMathModeINTEL", .value = 5837, .parameters = &.{} },
1244 .{ .name = "ArbitraryPrecisionIntegersINTEL", .value = 5844, .parameters = &.{} },
1245 .{ .name = "ArbitraryPrecisionFloatingPointINTEL", .value = 5845, .parameters = &.{} },
1265 .{ .name = "ArbitraryPrecisionIntegersALTERA", .value = 5844, .parameters = &.{} },
1266 .{ .name = "ArbitraryPrecisionFloatingPointALTERA", .value = 5845, .parameters = &.{} },
12461267 .{ .name = "UnstructuredLoopControlsINTEL", .value = 5886, .parameters = &.{} },
1247 .{ .name = "FPGALoopControlsINTEL", .value = 5888, .parameters = &.{} },
1268 .{ .name = "FPGALoopControlsALTERA", .value = 5888, .parameters = &.{} },
12481269 .{ .name = "KernelAttributesINTEL", .value = 5892, .parameters = &.{} },
12491270 .{ .name = "FPGAKernelAttributesINTEL", .value = 5897, .parameters = &.{} },
1250 .{ .name = "FPGAMemoryAccessesINTEL", .value = 5898, .parameters = &.{} },
1251 .{ .name = "FPGAClusterAttributesINTEL", .value = 5904, .parameters = &.{} },
1252 .{ .name = "LoopFuseINTEL", .value = 5906, .parameters = &.{} },
1253 .{ .name = "FPGADSPControlINTEL", .value = 5908, .parameters = &.{} },
1271 .{ .name = "FPGAMemoryAccessesALTERA", .value = 5898, .parameters = &.{} },
1272 .{ .name = "FPGAClusterAttributesALTERA", .value = 5904, .parameters = &.{} },
1273 .{ .name = "LoopFuseALTERA", .value = 5906, .parameters = &.{} },
1274 .{ .name = "FPGADSPControlALTERA", .value = 5908, .parameters = &.{} },
12541275 .{ .name = "MemoryAccessAliasingINTEL", .value = 5910, .parameters = &.{} },
1255 .{ .name = "FPGAInvocationPipeliningAttributesINTEL", .value = 5916, .parameters = &.{} },
1256 .{ .name = "FPGABufferLocationINTEL", .value = 5920, .parameters = &.{} },
1257 .{ .name = "ArbitraryPrecisionFixedPointINTEL", .value = 5922, .parameters = &.{} },
1258 .{ .name = "USMStorageClassesINTEL", .value = 5935, .parameters = &.{} },
1259 .{ .name = "RuntimeAlignedAttributeINTEL", .value = 5939, .parameters = &.{} },
1260 .{ .name = "IOPipesINTEL", .value = 5943, .parameters = &.{} },
1261 .{ .name = "BlockingPipesINTEL", .value = 5945, .parameters = &.{} },
1262 .{ .name = "FPGARegINTEL", .value = 5948, .parameters = &.{} },
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 = &.{} },
12631284 .{ .name = "DotProductInputAll", .value = 6016, .parameters = &.{} },
12641285 .{ .name = "DotProductInput4x8Bit", .value = 6017, .parameters = &.{} },
12651286 .{ .name = "DotProductInput4x8BitPacked", .value = 6018, .parameters = &.{} },
......@@ -1270,6 +1291,7 @@ pub const OperandKind = enum {
12701291 .{ .name = "BitInstructions", .value = 6025, .parameters = &.{} },
12711292 .{ .name = "GroupNonUniformRotateKHR", .value = 6026, .parameters = &.{} },
12721293 .{ .name = "FloatControls2", .value = 6029, .parameters = &.{} },
1294 .{ .name = "FMAKHR", .value = 6030, .parameters = &.{} },
12731295 .{ .name = "AtomicFloat32AddEXT", .value = 6033, .parameters = &.{} },
12741296 .{ .name = "AtomicFloat64AddEXT", .value = 6034, .parameters = &.{} },
12751297 .{ .name = "LongCompositesINTEL", .value = 6089, .parameters = &.{} },
......@@ -1279,26 +1301,33 @@ pub const OperandKind = enum {
12791301 .{ .name = "BFloat16ConversionINTEL", .value = 6115, .parameters = &.{} },
12801302 .{ .name = "SplitBarrierINTEL", .value = 6141, .parameters = &.{} },
12811303 .{ .name = "ArithmeticFenceEXT", .value = 6144, .parameters = &.{} },
1282 .{ .name = "FPGAClusterAttributesV2INTEL", .value = 6150, .parameters = &.{} },
1304 .{ .name = "FPGAClusterAttributesV2ALTERA", .value = 6150, .parameters = &.{} },
12831305 .{ .name = "FPGAKernelAttributesv2INTEL", .value = 6161, .parameters = &.{} },
1284 .{ .name = "TaskSequenceINTEL", .value = 6162, .parameters = &.{} },
1306 .{ .name = "TaskSequenceALTERA", .value = 6162, .parameters = &.{} },
12851307 .{ .name = "FPMaxErrorINTEL", .value = 6169, .parameters = &.{} },
1286 .{ .name = "FPGALatencyControlINTEL", .value = 6171, .parameters = &.{} },
1287 .{ .name = "FPGAArgumentInterfacesINTEL", .value = 6174, .parameters = &.{} },
1308 .{ .name = "FPGALatencyControlALTERA", .value = 6171, .parameters = &.{} },
1309 .{ .name = "FPGAArgumentInterfacesALTERA", .value = 6174, .parameters = &.{} },
12881310 .{ .name = "GlobalVariableHostAccessINTEL", .value = 6187, .parameters = &.{} },
1289 .{ .name = "GlobalVariableFPGADecorationsINTEL", .value = 6189, .parameters = &.{} },
1311 .{ .name = "GlobalVariableFPGADecorationsALTERA", .value = 6189, .parameters = &.{} },
12901312 .{ .name = "SubgroupBufferPrefetchINTEL", .value = 6220, .parameters = &.{} },
12911313 .{ .name = "Subgroup2DBlockIOINTEL", .value = 6228, .parameters = &.{} },
12921314 .{ .name = "Subgroup2DBlockTransformINTEL", .value = 6229, .parameters = &.{} },
12931315 .{ .name = "Subgroup2DBlockTransposeINTEL", .value = 6230, .parameters = &.{} },
12941316 .{ .name = "SubgroupMatrixMultiplyAccumulateINTEL", .value = 6236, .parameters = &.{} },
12951317 .{ .name = "TernaryBitwiseFunctionINTEL", .value = 6241, .parameters = &.{} },
1318 .{ .name = "UntypedVariableLengthArrayINTEL", .value = 6243, .parameters = &.{} },
1319 .{ .name = "SpecConditionalINTEL", .value = 6245, .parameters = &.{} },
1320 .{ .name = "FunctionVariantsINTEL", .value = 6246, .parameters = &.{} },
12961321 .{ .name = "GroupUniformArithmeticKHR", .value = 6400, .parameters = &.{} },
12971322 .{ .name = "TensorFloat32RoundingINTEL", .value = 6425, .parameters = &.{} },
12981323 .{ .name = "MaskedGatherScatterINTEL", .value = 6427, .parameters = &.{} },
12991324 .{ .name = "CacheControlsINTEL", .value = 6441, .parameters = &.{} },
13001325 .{ .name = "RegisterLimitsINTEL", .value = 6460, .parameters = &.{} },
13011326 .{ .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 = &.{} },
13021331 },
13031332 .ray_query_intersection => &.{
13041333 .{ .name = "RayQueryCandidateIntersectionKHR", .value = 0, .parameters = &.{} },
......@@ -1352,8 +1381,8 @@ pub const OperandKind = enum {
13521381 .{ .name = "DecodeFunc", .value = 0x0002, .parameters = &.{.id_ref} },
13531382 },
13541383 .initialization_mode_qualifier => &.{
1355 .{ .name = "InitOnDeviceReprogramINTEL", .value = 0, .parameters = &.{} },
1356 .{ .name = "InitOnDeviceResetINTEL", .value = 1, .parameters = &.{} },
1384 .{ .name = "InitOnDeviceReprogramALTERA", .value = 0, .parameters = &.{} },
1385 .{ .name = "InitOnDeviceResetALTERA", .value = 1, .parameters = &.{} },
13571386 },
13581387 .load_cache_control => &.{
13591388 .{ .name = "UncachedINTEL", .value = 0, .parameters = &.{} },
......@@ -1811,12 +1840,14 @@ pub const Opcode = enum(u16) {
18111840 OpUntypedInBoundsPtrAccessChainKHR = 4424,
18121841 OpUntypedArrayLengthKHR = 4425,
18131842 OpUntypedPrefetchKHR = 4426,
1843 OpFmaKHR = 4427,
18141844 OpSubgroupAllKHR = 4428,
18151845 OpSubgroupAnyKHR = 4429,
18161846 OpSubgroupAllEqualKHR = 4430,
18171847 OpGroupNonUniformRotateKHR = 4431,
18181848 OpSubgroupReadInvocationKHR = 4432,
18191849 OpExtInstWithForwardRefsKHR = 4433,
1850 OpUntypedGroupAsyncCopyKHR = 4434,
18201851 OpTraceRayKHR = 4445,
18211852 OpExecuteCallableKHR = 4446,
18221853 OpConvertUToAccelerationStructureKHR = 4447,
......@@ -1847,10 +1878,14 @@ pub const Opcode = enum(u16) {
18471878 OpImageBoxFilterQCOM = 4481,
18481879 OpImageBlockMatchSSDQCOM = 4482,
18491880 OpImageBlockMatchSADQCOM = 4483,
1881 OpBitCastArrayQCOM = 4497,
18501882 OpImageBlockMatchWindowSSDQCOM = 4500,
18511883 OpImageBlockMatchWindowSADQCOM = 4501,
18521884 OpImageBlockMatchGatherSSDQCOM = 4502,
18531885 OpImageBlockMatchGatherSADQCOM = 4503,
1886 OpCompositeConstructCoopMatQCOM = 4540,
1887 OpCompositeExtractCoopMatQCOM = 4541,
1888 OpExtractSubArrayQCOM = 4542,
18541889 OpGroupIAddNonUniformAMD = 5000,
18551890 OpGroupFAddNonUniformAMD = 5001,
18561891 OpGroupFMinNonUniformAMD = 5002,
......@@ -1872,6 +1907,16 @@ pub const Opcode = enum(u16) {
18721907 OpSpecConstantStringAMDX = 5104,
18731908 OpGroupNonUniformQuadAllKHR = 5110,
18741909 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,
18751920 OpHitObjectRecordHitMotionNV = 5249,
18761921 OpHitObjectRecordHitWithIndexMotionNV = 5250,
18771922 OpHitObjectRecordMissMotionNV = 5251,
......@@ -1906,7 +1951,7 @@ pub const Opcode = enum(u16) {
19061951 OpReorderThreadWithHintNV = 5280,
19071952 OpTypeHitObjectNV = 5281,
19081953 OpImageSampleFootprintNV = 5283,
1909 OpTypeCooperativeVectorNV = 5288,
1954 OpTypeVectorIdEXT = 5288,
19101955 OpCooperativeVectorMatrixMulNV = 5289,
19111956 OpCooperativeVectorOuterProductAccumulateNV = 5290,
19121957 OpCooperativeVectorReduceSumAccumulateNV = 5291,
......@@ -1914,12 +1959,42 @@ pub const Opcode = enum(u16) {
19141959 OpCooperativeMatrixConvertNV = 5293,
19151960 OpEmitMeshTasksEXT = 5294,
19161961 OpSetMeshOutputsEXT = 5295,
1917 OpGroupNonUniformPartitionNV = 5296,
1962 OpGroupNonUniformPartitionEXT = 5296,
19181963 OpWritePackedPrimitiveIndices4x8NV = 5299,
19191964 OpFetchMicroTriangleVertexPositionNV = 5300,
19201965 OpFetchMicroTriangleVertexBarycentricNV = 5301,
19211966 OpCooperativeVectorLoadNV = 5302,
19221967 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,
19231998 OpReportIntersectionKHR = 5334,
19241999 OpIgnoreIntersectionNV = 5335,
19252000 OpTerminateRayNV = 5336,
......@@ -1929,8 +2004,14 @@ pub const Opcode = enum(u16) {
19292004 OpRayQueryGetIntersectionTriangleVertexPositionsKHR = 5340,
19302005 OpTypeAccelerationStructureKHR = 5341,
19312006 OpExecuteCallableNV = 5344,
1932 OpRayQueryGetClusterIdNV = 5345,
2007 OpRayQueryGetIntersectionClusterIdNV = 5345,
19332008 OpHitObjectGetClusterIdNV = 5346,
2009 OpHitObjectGetRayTMinEXT = 5347,
2010 OpHitObjectGetShaderBindingTableRecordIndexEXT = 5348,
2011 OpHitObjectGetShaderRecordBufferHandleEXT = 5349,
2012 OpHitObjectIsEmptyEXT = 5350,
2013 OpHitObjectIsHitEXT = 5351,
2014 OpHitObjectIsMissEXT = 5352,
19342015 OpTypeCooperativeMatrixNV = 5358,
19352016 OpCooperativeMatrixLoadNV = 5359,
19362017 OpCooperativeMatrixStoreNV = 5360,
......@@ -2008,10 +2089,10 @@ pub const Opcode = enum(u16) {
20082089 OpExpectKHR = 5631,
20092090 OpDecorateString = 5632,
20102091 OpMemberDecorateString = 5633,
2092 OpVariableLengthArrayINTEL = 5818,
2093 OpSaveMemoryINTEL = 5819,
2094 OpRestoreMemoryINTEL = 5820,
20112095 OpLoopControlINTEL = 5887,
2012 OpReadPipeBlockingINTEL = 5946,
2013 OpWritePipeBlockingINTEL = 5947,
2014 OpFPGARegINTEL = 5949,
20152096 OpRayQueryGetRayTMinKHR = 6016,
20162097 OpRayQueryGetRayFlagsKHR = 6017,
20172098 OpRayQueryGetIntersectionTKHR = 6018,
......@@ -2040,11 +2121,6 @@ pub const Opcode = enum(u16) {
20402121 OpControlBarrierArriveINTEL = 6142,
20412122 OpControlBarrierWaitINTEL = 6143,
20422123 OpArithmeticFenceEXT = 6145,
2043 OpTaskSequenceCreateINTEL = 6163,
2044 OpTaskSequenceAsyncINTEL = 6164,
2045 OpTaskSequenceGetINTEL = 6165,
2046 OpTaskSequenceReleaseINTEL = 6166,
2047 OpTypeTaskSequenceINTEL = 6199,
20482124 OpSubgroupBlockPrefetchINTEL = 6221,
20492125 OpSubgroup2DBlockLoadINTEL = 6231,
20502126 OpSubgroup2DBlockLoadTransformINTEL = 6232,
......@@ -2053,6 +2129,14 @@ pub const Opcode = enum(u16) {
20532129 OpSubgroup2DBlockStoreINTEL = 6235,
20542130 OpSubgroupMatrixMultiplyAccumulateINTEL = 6237,
20552131 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,
20562140 OpGroupIMulKHR = 6401,
20572141 OpGroupFMulKHR = 6402,
20582142 OpGroupBitwiseAndKHR = 6403,
......@@ -2067,6 +2151,9 @@ pub const Opcode = enum(u16) {
20672151 OpConvertHandleToImageINTEL = 6529,
20682152 OpConvertHandleToSamplerINTEL = 6530,
20692153 OpConvertHandleToSampledImageINTEL = 6531,
2154 OpFDot2MixAcc32VALVE = 6916,
2155 OpFDot2MixAcc16VALVE = 6917,
2156 OpFDot4MixAcc32VALVE = 6918,
20702157
20712158 pub fn Operands(comptime self: Opcode) type {
20722159 return switch (self) {
......@@ -2380,7 +2467,7 @@ pub const Opcode = enum(u16) {
23802467 .OpGroupNonUniformAll => struct { id_result_type: Id, id_result: Id, execution: Id, predicate: Id },
23812468 .OpGroupNonUniformAny => struct { id_result_type: Id, id_result: Id, execution: Id, predicate: Id },
23822469 .OpGroupNonUniformAllEqual => struct { id_result_type: Id, id_result: Id, execution: Id, value: Id },
2383 .OpGroupNonUniformBroadcast => struct { id_result_type: Id, id_result: Id, execution: Id, value: Id, id: Id },
2470 .OpGroupNonUniformBroadcast => struct { id_result_type: Id, id_result: Id, execution: Id, value: Id, invocation_id: Id },
23842471 .OpGroupNonUniformBroadcastFirst => struct { id_result_type: Id, id_result: Id, execution: Id, value: Id },
23852472 .OpGroupNonUniformBallot => struct { id_result_type: Id, id_result: Id, execution: Id, predicate: Id },
23862473 .OpGroupNonUniformInverseBallot => struct { id_result_type: Id, id_result: Id, execution: Id, value: Id },
......@@ -2388,7 +2475,7 @@ pub const Opcode = enum(u16) {
23882475 .OpGroupNonUniformBallotBitCount => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, value: Id },
23892476 .OpGroupNonUniformBallotFindLSB => struct { id_result_type: Id, id_result: Id, execution: Id, value: Id },
23902477 .OpGroupNonUniformBallotFindMSB => struct { id_result_type: Id, id_result: Id, execution: Id, value: Id },
2391 .OpGroupNonUniformShuffle => struct { id_result_type: Id, id_result: Id, execution: Id, value: Id, id: Id },
2478 .OpGroupNonUniformShuffle => struct { id_result_type: Id, id_result: Id, execution: Id, value: Id, invocation_id: Id },
23922479 .OpGroupNonUniformShuffleXor => struct { id_result_type: Id, id_result: Id, execution: Id, value: Id, mask: Id },
23932480 .OpGroupNonUniformShuffleUp => struct { id_result_type: Id, id_result: Id, execution: Id, value: Id, delta: Id },
23942481 .OpGroupNonUniformShuffleDown => struct { id_result_type: Id, id_result: Id, execution: Id, value: Id, delta: Id },
......@@ -2439,12 +2526,14 @@ pub const Opcode = enum(u16) {
24392526 .OpUntypedInBoundsPtrAccessChainKHR => struct { id_result_type: Id, id_result: Id, base_type: Id, base: Id, element: Id, indexes: []const Id = &.{} },
24402527 .OpUntypedArrayLengthKHR => struct { id_result_type: Id, id_result: Id, structure: Id, pointer: Id, array_member: LiteralInteger },
24412528 .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 },
24422530 .OpSubgroupAllKHR => struct { id_result_type: Id, id_result: Id, predicate: Id },
24432531 .OpSubgroupAnyKHR => struct { id_result_type: Id, id_result: Id, predicate: Id },
24442532 .OpSubgroupAllEqualKHR => struct { id_result_type: Id, id_result: Id, predicate: Id },
24452533 .OpGroupNonUniformRotateKHR => struct { id_result_type: Id, id_result: Id, execution: Id, value: Id, delta: Id, cluster_size: ?Id = null },
24462534 .OpSubgroupReadInvocationKHR => struct { id_result_type: Id, id_result: Id, value: Id, index: Id },
24472535 .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 },
24482537 .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 },
24492538 .OpExecuteCallableKHR => struct { sbt_index: Id, callable_data: Id },
24502539 .OpConvertUToAccelerationStructureKHR => struct { id_result_type: Id, id_result: Id, accel: Id },
......@@ -2475,10 +2564,14 @@ pub const Opcode = enum(u16) {
24752564 .OpImageBoxFilterQCOM => struct { id_result_type: Id, id_result: Id, texture: Id, coordinates: Id, box_size: Id },
24762565 .OpImageBlockMatchSSDQCOM => struct { id_result_type: Id, id_result: Id, target: Id, target_coordinates: Id, reference: Id, reference_coordinates: Id, block_size: Id },
24772566 .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 },
24782568 .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 },
24792569 .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 },
24802570 .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 },
24812571 .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 },
24822575 .OpGroupIAddNonUniformAMD => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
24832576 .OpGroupFAddNonUniformAMD => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
24842577 .OpGroupFMinNonUniformAMD => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
......@@ -2500,6 +2593,16 @@ pub const Opcode = enum(u16) {
25002593 .OpSpecConstantStringAMDX => struct { id_result: Id, literal_string: LiteralString },
25012594 .OpGroupNonUniformQuadAllKHR => struct { id_result_type: Id, id_result: Id, predicate: Id },
25022595 .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 },
25032606 .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 },
25042607 .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 },
25052608 .OpHitObjectRecordMissMotionNV => struct { hit_object: Id, sbt_index: Id, origin: Id, t_min: Id, direction: Id, t_max: Id, current_time: Id },
......@@ -2534,7 +2637,7 @@ pub const Opcode = enum(u16) {
25342637 .OpReorderThreadWithHintNV => struct { hint: Id, bits: Id },
25352638 .OpTypeHitObjectNV => struct { id_result: Id },
25362639 .OpImageSampleFootprintNV => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, granularity: Id, coarse: Id, image_operands: ?ImageOperands.Extended = null },
2537 .OpTypeCooperativeVectorNV => struct { id_result: Id, component_type: Id, component_count: Id },
2640 .OpTypeVectorIdEXT => struct { id_result: Id, component_type: Id, component_count: Id },
25382641 .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 },
25392642 .OpCooperativeVectorOuterProductAccumulateNV => struct { pointer: Id, offset: Id, a: Id, b: Id, memory_layout: Id, matrix_interpretation: Id, matrix_stride: ?Id = null },
25402643 .OpCooperativeVectorReduceSumAccumulateNV => struct { pointer: Id, offset: Id, v: Id },
......@@ -2542,12 +2645,42 @@ pub const Opcode = enum(u16) {
25422645 .OpCooperativeMatrixConvertNV => struct { id_result_type: Id, id_result: Id, matrix: Id },
25432646 .OpEmitMeshTasksEXT => struct { group_count_x: Id, group_count_y: Id, group_count_z: Id, payload: ?Id = null },
25442647 .OpSetMeshOutputsEXT => struct { vertex_count: Id, primitive_count: Id },
2545 .OpGroupNonUniformPartitionNV => struct { id_result_type: Id, id_result: Id, value: Id },
2648 .OpGroupNonUniformPartitionEXT => struct { id_result_type: Id, id_result: Id, value: Id },
25462649 .OpWritePackedPrimitiveIndices4x8NV => struct { index_offset: Id, packed_indices: Id },
25472650 .OpFetchMicroTriangleVertexPositionNV => struct { id_result_type: Id, id_result: Id, accel: Id, instance_id: Id, geometry_index: Id, primitive_index: Id, barycentric: Id },
25482651 .OpFetchMicroTriangleVertexBarycentricNV => struct { id_result_type: Id, id_result: Id, accel: Id, instance_id: Id, geometry_index: Id, primitive_index: Id, barycentric: Id },
25492652 .OpCooperativeVectorLoadNV => struct { id_result_type: Id, id_result: Id, pointer: Id, offset: Id, memory_access: ?MemoryAccess.Extended = null },
25502653 .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 },
25512684 .OpReportIntersectionKHR => struct { id_result_type: Id, id_result: Id, hit: Id, hit_kind: Id },
25522685 .OpIgnoreIntersectionNV => void,
25532686 .OpTerminateRayNV => void,
......@@ -2557,8 +2690,14 @@ pub const Opcode = enum(u16) {
25572690 .OpRayQueryGetIntersectionTriangleVertexPositionsKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id },
25582691 .OpTypeAccelerationStructureKHR => struct { id_result: Id },
25592692 .OpExecuteCallableNV => struct { sbt_index: Id, callable_data_id: Id },
2560 .OpRayQueryGetClusterIdNV => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id },
2693 .OpRayQueryGetIntersectionClusterIdNV => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id },
25612694 .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 },
25622701 .OpTypeCooperativeMatrixNV => struct { id_result: Id, component_type: Id, execution: Id, rows: Id, columns: Id },
25632702 .OpCooperativeMatrixLoadNV => struct { id_result_type: Id, id_result: Id, pointer: Id, stride: Id, column_major: Id, memory_access: ?MemoryAccess.Extended = null },
25642703 .OpCooperativeMatrixStoreNV => struct { pointer: Id, object: Id, stride: Id, column_major: Id, memory_access: ?MemoryAccess.Extended = null },
......@@ -2636,10 +2775,10 @@ pub const Opcode = enum(u16) {
26362775 .OpExpectKHR => struct { id_result_type: Id, id_result: Id, value: Id, expected_value: Id },
26372776 .OpDecorateString => struct { target: Id, decoration: Decoration.Extended },
26382777 .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 },
26392781 .OpLoopControlINTEL => struct { loop_control_parameters: []const LiteralInteger = &.{} },
2640 .OpReadPipeBlockingINTEL => struct { id_result_type: Id, id_result: Id, packet_size: Id, packet_alignment: Id },
2641 .OpWritePipeBlockingINTEL => struct { id_result_type: Id, id_result: Id, packet_size: Id, packet_alignment: Id },
2642 .OpFPGARegINTEL => struct { id_result_type: Id, id_result: Id, input: Id },
26432782 .OpRayQueryGetRayTMinKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id },
26442783 .OpRayQueryGetRayFlagsKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id },
26452784 .OpRayQueryGetIntersectionTKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id },
......@@ -2668,11 +2807,6 @@ pub const Opcode = enum(u16) {
26682807 .OpControlBarrierArriveINTEL => struct { execution: Id, memory: Id, semantics: Id },
26692808 .OpControlBarrierWaitINTEL => struct { execution: Id, memory: Id, semantics: Id },
26702809 .OpArithmeticFenceEXT => struct { id_result_type: Id, id_result: Id, target: Id },
2671 .OpTaskSequenceCreateINTEL => struct { id_result_type: Id, id_result: Id, function: Id, pipelined: LiteralInteger, use_stall_enable_clusters: LiteralInteger, get_capacity: LiteralInteger, async_capacity: LiteralInteger },
2672 .OpTaskSequenceAsyncINTEL => struct { sequence: Id, arguments: []const Id = &.{} },
2673 .OpTaskSequenceGetINTEL => struct { id_result_type: Id, id_result: Id, sequence: Id },
2674 .OpTaskSequenceReleaseINTEL => struct { sequence: Id },
2675 .OpTypeTaskSequenceINTEL => struct { id_result: Id },
26762810 .OpSubgroupBlockPrefetchINTEL => struct { ptr: Id, num_bytes: Id, memory_access: ?MemoryAccess.Extended = null },
26772811 .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 },
26782812 .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 },
......@@ -2681,6 +2815,14 @@ pub const Opcode = enum(u16) {
26812815 .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 },
26822816 .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 },
26832817 .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 = &.{} },
26842826 .OpGroupIMulKHR => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
26852827 .OpGroupFMulKHR => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
26862828 .OpGroupBitwiseAndKHR => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
......@@ -2695,6 +2837,9 @@ pub const Opcode = enum(u16) {
26952837 .OpConvertHandleToImageINTEL => struct { id_result_type: Id, id_result: Id, operand: Id },
26962838 .OpConvertHandleToSamplerINTEL => struct { id_result_type: Id, id_result: Id, operand: Id },
26972839 .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 },
26982843 };
26992844 }
27002845 pub fn class(self: Opcode) Class {
......@@ -3068,12 +3213,14 @@ pub const Opcode = enum(u16) {
30683213 .OpUntypedInBoundsPtrAccessChainKHR => .memory,
30693214 .OpUntypedArrayLengthKHR => .memory,
30703215 .OpUntypedPrefetchKHR => .memory,
3216 .OpFmaKHR => .arithmetic,
30713217 .OpSubgroupAllKHR => .group,
30723218 .OpSubgroupAnyKHR => .group,
30733219 .OpSubgroupAllEqualKHR => .group,
30743220 .OpGroupNonUniformRotateKHR => .group,
30753221 .OpSubgroupReadInvocationKHR => .group,
30763222 .OpExtInstWithForwardRefsKHR => .extension,
3223 .OpUntypedGroupAsyncCopyKHR => .group,
30773224 .OpTraceRayKHR => .reserved,
30783225 .OpExecuteCallableKHR => .reserved,
30793226 .OpConvertUToAccelerationStructureKHR => .reserved,
......@@ -3104,10 +3251,14 @@ pub const Opcode = enum(u16) {
31043251 .OpImageBoxFilterQCOM => .image,
31053252 .OpImageBlockMatchSSDQCOM => .image,
31063253 .OpImageBlockMatchSADQCOM => .image,
3254 .OpBitCastArrayQCOM => .conversion,
31073255 .OpImageBlockMatchWindowSSDQCOM => .image,
31083256 .OpImageBlockMatchWindowSADQCOM => .image,
31093257 .OpImageBlockMatchGatherSSDQCOM => .image,
31103258 .OpImageBlockMatchGatherSADQCOM => .image,
3259 .OpCompositeConstructCoopMatQCOM => .composite,
3260 .OpCompositeExtractCoopMatQCOM => .composite,
3261 .OpExtractSubArrayQCOM => .composite,
31113262 .OpGroupIAddNonUniformAMD => .group,
31123263 .OpGroupFAddNonUniformAMD => .group,
31133264 .OpGroupFMinNonUniformAMD => .group,
......@@ -3129,6 +3280,16 @@ pub const Opcode = enum(u16) {
31293280 .OpSpecConstantStringAMDX => .reserved,
31303281 .OpGroupNonUniformQuadAllKHR => .non_uniform,
31313282 .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,
31323293 .OpHitObjectRecordHitMotionNV => .reserved,
31333294 .OpHitObjectRecordHitWithIndexMotionNV => .reserved,
31343295 .OpHitObjectRecordMissMotionNV => .reserved,
......@@ -3163,7 +3324,7 @@ pub const Opcode = enum(u16) {
31633324 .OpReorderThreadWithHintNV => .reserved,
31643325 .OpTypeHitObjectNV => .type_declaration,
31653326 .OpImageSampleFootprintNV => .image,
3166 .OpTypeCooperativeVectorNV => .type_declaration,
3327 .OpTypeVectorIdEXT => .type_declaration,
31673328 .OpCooperativeVectorMatrixMulNV => .reserved,
31683329 .OpCooperativeVectorOuterProductAccumulateNV => .reserved,
31693330 .OpCooperativeVectorReduceSumAccumulateNV => .reserved,
......@@ -3171,12 +3332,42 @@ pub const Opcode = enum(u16) {
31713332 .OpCooperativeMatrixConvertNV => .conversion,
31723333 .OpEmitMeshTasksEXT => .reserved,
31733334 .OpSetMeshOutputsEXT => .reserved,
3174 .OpGroupNonUniformPartitionNV => .non_uniform,
3335 .OpGroupNonUniformPartitionEXT => .non_uniform,
31753336 .OpWritePackedPrimitiveIndices4x8NV => .reserved,
31763337 .OpFetchMicroTriangleVertexPositionNV => .reserved,
31773338 .OpFetchMicroTriangleVertexBarycentricNV => .reserved,
31783339 .OpCooperativeVectorLoadNV => .memory,
31793340 .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,
31803371 .OpReportIntersectionKHR => .reserved,
31813372 .OpIgnoreIntersectionNV => .reserved,
31823373 .OpTerminateRayNV => .reserved,
......@@ -3186,8 +3377,14 @@ pub const Opcode = enum(u16) {
31863377 .OpRayQueryGetIntersectionTriangleVertexPositionsKHR => .reserved,
31873378 .OpTypeAccelerationStructureKHR => .type_declaration,
31883379 .OpExecuteCallableNV => .reserved,
3189 .OpRayQueryGetClusterIdNV => .reserved,
3380 .OpRayQueryGetIntersectionClusterIdNV => .reserved,
31903381 .OpHitObjectGetClusterIdNV => .reserved,
3382 .OpHitObjectGetRayTMinEXT => .reserved,
3383 .OpHitObjectGetShaderBindingTableRecordIndexEXT => .reserved,
3384 .OpHitObjectGetShaderRecordBufferHandleEXT => .reserved,
3385 .OpHitObjectIsEmptyEXT => .reserved,
3386 .OpHitObjectIsHitEXT => .reserved,
3387 .OpHitObjectIsMissEXT => .reserved,
31913388 .OpTypeCooperativeMatrixNV => .type_declaration,
31923389 .OpCooperativeMatrixLoadNV => .reserved,
31933390 .OpCooperativeMatrixStoreNV => .reserved,
......@@ -3265,10 +3462,10 @@ pub const Opcode = enum(u16) {
32653462 .OpExpectKHR => .miscellaneous,
32663463 .OpDecorateString => .annotation,
32673464 .OpMemberDecorateString => .annotation,
3465 .OpVariableLengthArrayINTEL => .memory,
3466 .OpSaveMemoryINTEL => .memory,
3467 .OpRestoreMemoryINTEL => .memory,
32683468 .OpLoopControlINTEL => .reserved,
3269 .OpReadPipeBlockingINTEL => .pipe,
3270 .OpWritePipeBlockingINTEL => .pipe,
3271 .OpFPGARegINTEL => .reserved,
32723469 .OpRayQueryGetRayTMinKHR => .reserved,
32733470 .OpRayQueryGetRayFlagsKHR => .reserved,
32743471 .OpRayQueryGetIntersectionTKHR => .reserved,
......@@ -3297,11 +3494,6 @@ pub const Opcode = enum(u16) {
32973494 .OpControlBarrierArriveINTEL => .barrier,
32983495 .OpControlBarrierWaitINTEL => .barrier,
32993496 .OpArithmeticFenceEXT => .miscellaneous,
3300 .OpTaskSequenceCreateINTEL => .reserved,
3301 .OpTaskSequenceAsyncINTEL => .reserved,
3302 .OpTaskSequenceGetINTEL => .reserved,
3303 .OpTaskSequenceReleaseINTEL => .reserved,
3304 .OpTypeTaskSequenceINTEL => .type_declaration,
33053497 .OpSubgroupBlockPrefetchINTEL => .group,
33063498 .OpSubgroup2DBlockLoadINTEL => .group,
33073499 .OpSubgroup2DBlockLoadTransformINTEL => .group,
......@@ -3310,6 +3502,14 @@ pub const Opcode = enum(u16) {
33103502 .OpSubgroup2DBlockStoreINTEL => .group,
33113503 .OpSubgroupMatrixMultiplyAccumulateINTEL => .group,
33123504 .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,
33133513 .OpGroupIMulKHR => .group,
33143514 .OpGroupFMulKHR => .group,
33153515 .OpGroupBitwiseAndKHR => .group,
......@@ -3324,94 +3524,13 @@ pub const Opcode = enum(u16) {
33243524 .OpConvertHandleToImageINTEL => .image,
33253525 .OpConvertHandleToSamplerINTEL => .image,
33263526 .OpConvertHandleToSampledImageINTEL => .image,
3527 .OpFDot2MixAcc32VALVE => .reserved,
3528 .OpFDot2MixAcc16VALVE => .reserved,
3529 .OpFDot4MixAcc32VALVE => .reserved,
33273530 };
33283531 }
33293532};
33303533
3331pub const GlslOpcode = enum(u16) {
3332 Round = 1,
3333 RoundEven = 2,
3334 Trunc = 3,
3335 FAbs = 4,
3336 SAbs = 5,
3337 FSign = 6,
3338 SSign = 7,
3339 Floor = 8,
3340 Ceil = 9,
3341 Fract = 10,
3342 Radians = 11,
3343 Degrees = 12,
3344 Sin = 13,
3345 Cos = 14,
3346 Tan = 15,
3347 Asin = 16,
3348 Acos = 17,
3349 Atan = 18,
3350 Sinh = 19,
3351 Cosh = 20,
3352 Tanh = 21,
3353 Asinh = 22,
3354 Acosh = 23,
3355 Atanh = 24,
3356 Atan2 = 25,
3357 Pow = 26,
3358 Exp = 27,
3359 Log = 28,
3360 Exp2 = 29,
3361 Log2 = 30,
3362 Sqrt = 31,
3363 InverseSqrt = 32,
3364 Determinant = 33,
3365 MatrixInverse = 34,
3366 Modf = 35,
3367 ModfStruct = 36,
3368 FMin = 37,
3369 UMin = 38,
3370 SMin = 39,
3371 FMax = 40,
3372 UMax = 41,
3373 SMax = 42,
3374 FClamp = 43,
3375 UClamp = 44,
3376 SClamp = 45,
3377 FMix = 46,
3378 IMix = 47,
3379 Step = 48,
3380 SmoothStep = 49,
3381 Fma = 50,
3382 Frexp = 51,
3383 FrexpStruct = 52,
3384 Ldexp = 53,
3385 PackSnorm4x8 = 54,
3386 PackUnorm4x8 = 55,
3387 PackSnorm2x16 = 56,
3388 PackUnorm2x16 = 57,
3389 PackHalf2x16 = 58,
3390 PackDouble2x32 = 59,
3391 UnpackSnorm2x16 = 60,
3392 UnpackUnorm2x16 = 61,
3393 UnpackHalf2x16 = 62,
3394 UnpackSnorm4x8 = 63,
3395 UnpackUnorm4x8 = 64,
3396 UnpackDouble2x32 = 65,
3397 Length = 66,
3398 Distance = 67,
3399 Cross = 68,
3400 Normalize = 69,
3401 FaceForward = 70,
3402 Reflect = 71,
3403 Refract = 72,
3404 FindILsb = 73,
3405 FindSMsb = 74,
3406 FindUMsb = 75,
3407 InterpolateAtCentroid = 76,
3408 InterpolateAtSample = 77,
3409 InterpolateAtOffset = 78,
3410 NMin = 79,
3411 NMax = 80,
3412 NClamp = 81,
3413};
3414
34153534pub const OpenClOpcode = enum(u16) {
34163535 acos = 0,
34173536 acosh = 1,
......@@ -3577,6 +3696,90 @@ pub const OpenClOpcode = enum(u16) {
35773696 u_mad_hi = 204,
35783697};
35793698
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
35803783pub const Zig = enum(u16) {
35813784 InvocationGlobal = 0,
35823785};
......@@ -3734,16 +3937,16 @@ pub const LoopControl = packed struct {
37343937 _reserved_bit_13: bool = false,
37353938 _reserved_bit_14: bool = false,
37363939 _reserved_bit_15: bool = false,
3737 initiation_interval_intel: bool = false,
3738 max_concurrency_intel: bool = false,
3739 dependency_array_intel: bool = false,
3740 pipeline_enable_intel: bool = false,
3741 loop_coalesce_intel: bool = false,
3742 max_interleaving_intel: bool = false,
3743 speculated_iterations_intel: bool = false,
3744 no_fusion_intel: bool = false,
3745 loop_count_intel: bool = false,
3746 max_reinvocation_delay_intel: bool = false,
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,
37473950 _reserved_bit_26: bool = false,
37483951 _reserved_bit_27: bool = false,
37493952 _reserved_bit_28: bool = false,
......@@ -3768,16 +3971,16 @@ pub const LoopControl = packed struct {
37683971 _reserved_bit_13: bool = false,
37693972 _reserved_bit_14: bool = false,
37703973 _reserved_bit_15: bool = false,
3771 initiation_interval_intel: ?struct { literal_integer: LiteralInteger } = null,
3772 max_concurrency_intel: ?struct { literal_integer: LiteralInteger } = null,
3773 dependency_array_intel: ?struct { literal_integer: LiteralInteger } = null,
3774 pipeline_enable_intel: ?struct { literal_integer: LiteralInteger } = null,
3775 loop_coalesce_intel: ?struct { literal_integer: LiteralInteger } = null,
3776 max_interleaving_intel: ?struct { literal_integer: LiteralInteger } = null,
3777 speculated_iterations_intel: ?struct { literal_integer: LiteralInteger } = null,
3778 no_fusion_intel: bool = false,
3779 loop_count_intel: ?struct { literal_integer: LiteralInteger } = null,
3780 max_reinvocation_delay_intel: ?struct { literal_integer: LiteralInteger } = null,
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,
37813984 _reserved_bit_26: bool = false,
37823985 _reserved_bit_27: bool = false,
37833986 _reserved_bit_28: bool = false,
......@@ -4174,6 +4377,7 @@ pub const ExecutionMode = enum(u32) {
41744377 quad_derivatives_khr = 5088,
41754378 require_full_quads_khr = 5089,
41764379 shares_input_with_amdx = 5102,
4380 arithmetic_poison_khr = 5157,
41774381 output_lines_ext = 5269,
41784382 output_primitives_ext = 5270,
41794383 derivative_group_quads_khr = 5289,
......@@ -4185,6 +4389,7 @@ pub const ExecutionMode = enum(u32) {
41854389 sample_interlock_unordered_ext = 5369,
41864390 shading_rate_interlock_ordered_ext = 5370,
41874391 shading_rate_interlock_unordered_ext = 5371,
4392 shader64bit_indexing_ext = 5427,
41884393 shared_local_memory_size_intel = 5618,
41894394 rounding_mode_rtpintel = 5620,
41904395 rounding_mode_rtnintel = 5621,
......@@ -4272,6 +4477,7 @@ pub const ExecutionMode = enum(u32) {
42724477 quad_derivatives_khr,
42734478 require_full_quads_khr,
42744479 shares_input_with_amdx: struct { node_name: Id, shader_index: Id },
4480 arithmetic_poison_khr,
42754481 output_lines_ext,
42764482 output_primitives_ext: struct { primitive_count: LiteralInteger },
42774483 derivative_group_quads_khr,
......@@ -4283,6 +4489,7 @@ pub const ExecutionMode = enum(u32) {
42834489 sample_interlock_unordered_ext,
42844490 shading_rate_interlock_ordered_ext,
42854491 shading_rate_interlock_unordered_ext,
4492 shader64bit_indexing_ext,
42864493 shared_local_memory_size_intel: struct { size: LiteralInteger },
42874494 rounding_mode_rtpintel: struct { target_width: LiteralInteger },
42884495 rounding_mode_rtnintel: struct { target_width: LiteralInteger },
......@@ -4329,9 +4536,10 @@ pub const StorageClass = enum(u32) {
43294536 physical_storage_buffer = 5349,
43304537 hit_object_attribute_nv = 5385,
43314538 task_payload_workgroup_ext = 5402,
4539 hit_object_attribute_ext = 5411,
43324540 code_section_intel = 5605,
4333 device_only_intel = 5936,
4334 host_only_intel = 5937,
4541 device_only_altera = 5936,
4542 host_only_altera = 5937,
43354543};
43364544pub const Dim = enum(u32) {
43374545 @"1d" = 0,
......@@ -4503,7 +4711,7 @@ pub const FunctionParameterAttribute = enum(u32) {
45034711 no_capture = 5,
45044712 no_write = 6,
45054713 no_read_write = 7,
4506 runtime_aligned_intel = 5940,
4714 runtime_aligned_altera = 5940,
45074715};
45084716pub const Decoration = enum(u32) {
45094717 relaxed_precision = 0,
......@@ -4568,6 +4776,9 @@ pub const Decoration = enum(u32) {
45684776 payload_node_sparse_array_amdx = 5099,
45694777 payload_node_array_size_amdx = 5100,
45704778 payload_dispatch_indirect_amdx = 5105,
4779 array_stride_id_ext = 5124,
4780 offset_id_ext = 5125,
4781 utf_encoded_khr = 5145,
45714782 override_coverage_nv = 5248,
45724783 passthrough_nv = 5250,
45734784 viewport_relative_nv = 5252,
......@@ -4579,7 +4790,10 @@ pub const Decoration = enum(u32) {
45794790 non_uniform = 5300,
45804791 restrict_pointer = 5355,
45814792 aliased_pointer = 5356,
4793 member_offset_nv = 5358,
45824794 hit_object_shader_record_buffer_nv = 5386,
4795 hit_object_shader_record_buffer_ext = 5389,
4796 bank_nv = 5397,
45834797 bindless_sampler_nv = 5398,
45844798 bindless_image_nv = 5399,
45854799 bound_sampler_nv = 5400,
......@@ -4598,55 +4812,56 @@ pub const Decoration = enum(u32) {
45984812 user_type_google = 5636,
45994813 function_rounding_mode_intel = 5822,
46004814 function_denorm_mode_intel = 5823,
4601 register_intel = 5825,
4602 memory_intel = 5826,
4603 numbanks_intel = 5827,
4604 bankwidth_intel = 5828,
4605 max_private_copies_intel = 5829,
4606 singlepump_intel = 5830,
4607 doublepump_intel = 5831,
4608 max_replicates_intel = 5832,
4609 simple_dual_port_intel = 5833,
4610 merge_intel = 5834,
4611 bank_bits_intel = 5835,
4612 force_pow2depth_intel = 5836,
4613 stridesize_intel = 5883,
4614 wordsize_intel = 5884,
4615 true_dual_port_intel = 5885,
4616 burst_coalesce_intel = 5899,
4617 cache_size_intel = 5900,
4618 dont_statically_coalesce_intel = 5901,
4619 prefetch_intel = 5902,
4620 stall_enable_intel = 5905,
4621 fuse_loops_in_function_intel = 5907,
4622 math_op_dsp_mode_intel = 5909,
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,
46234837 alias_scope_intel = 5914,
46244838 no_alias_intel = 5915,
4625 initiation_interval_intel = 5917,
4626 max_concurrency_intel = 5918,
4627 pipeline_enable_intel = 5919,
4628 buffer_location_intel = 5921,
4629 io_pipe_storage_intel = 5944,
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,
46304844 function_floating_point_mode_intel = 6080,
46314845 single_element_vector_intel = 6085,
46324846 vector_compute_callable_function_intel = 6087,
46334847 media_block_iointel = 6140,
4634 stall_free_intel = 6151,
4848 stall_free_altera = 6151,
46354849 fp_max_error_decoration_intel = 6170,
4636 latency_control_label_intel = 6172,
4637 latency_control_constraint_intel = 6173,
4638 conduit_kernel_argument_intel = 6175,
4639 register_map_kernel_argument_intel = 6176,
4640 mm_host_interface_address_width_intel = 6177,
4641 mm_host_interface_data_width_intel = 6178,
4642 mm_host_interface_latency_intel = 6179,
4643 mm_host_interface_read_write_mode_intel = 6180,
4644 mm_host_interface_max_burst_intel = 6181,
4645 mm_host_interface_wait_request_intel = 6182,
4646 stable_kernel_argument_intel = 6183,
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,
46474861 host_access_intel = 6188,
4648 init_mode_intel = 6190,
4649 implement_in_register_map_intel = 6191,
4862 init_mode_altera = 6190,
4863 implement_in_register_map_altera = 6191,
4864 conditional_intel = 6247,
46504865 cache_control_load_intel = 6442,
46514866 cache_control_store_intel = 6443,
46524867
......@@ -4713,6 +4928,9 @@ pub const Decoration = enum(u32) {
47134928 payload_node_sparse_array_amdx,
47144929 payload_node_array_size_amdx: struct { array_size: Id },
47154930 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,
47164934 override_coverage_nv,
47174935 passthrough_nv,
47184936 viewport_relative_nv,
......@@ -4724,7 +4942,10 @@ pub const Decoration = enum(u32) {
47244942 non_uniform,
47254943 restrict_pointer,
47264944 aliased_pointer,
4945 member_offset_nv: struct { member_offset: LiteralInteger },
47274946 hit_object_shader_record_buffer_nv,
4947 hit_object_shader_record_buffer_ext,
4948 bank_nv: struct { bank: LiteralInteger },
47284949 bindless_sampler_nv,
47294950 bindless_image_nv,
47304951 bound_sampler_nv,
......@@ -4743,55 +4964,56 @@ pub const Decoration = enum(u32) {
47434964 user_type_google: struct { user_type: LiteralString },
47444965 function_rounding_mode_intel: struct { target_width: LiteralInteger, fp_rounding_mode: FPRoundingMode },
47454966 function_denorm_mode_intel: struct { target_width: LiteralInteger, fp_denorm_mode: FPDenormMode },
4746 register_intel,
4747 memory_intel: struct { memory_type: LiteralString },
4748 numbanks_intel: struct { banks: LiteralInteger },
4749 bankwidth_intel: struct { bank_width: LiteralInteger },
4750 max_private_copies_intel: struct { maximum_copies: LiteralInteger },
4751 singlepump_intel,
4752 doublepump_intel,
4753 max_replicates_intel: struct { maximum_replicates: LiteralInteger },
4754 simple_dual_port_intel,
4755 merge_intel: struct { merge_key: LiteralString, merge_type: LiteralString },
4756 bank_bits_intel: struct { bank_bits: []const LiteralInteger = &.{} },
4757 force_pow2depth_intel: struct { force_key: LiteralInteger },
4758 stridesize_intel: struct { stride_size: LiteralInteger },
4759 wordsize_intel: struct { word_size: LiteralInteger },
4760 true_dual_port_intel,
4761 burst_coalesce_intel,
4762 cache_size_intel: struct { cache_size_in_bytes: LiteralInteger },
4763 dont_statically_coalesce_intel,
4764 prefetch_intel: struct { prefetcher_size_in_bytes: LiteralInteger },
4765 stall_enable_intel,
4766 fuse_loops_in_function_intel,
4767 math_op_dsp_mode_intel: struct { mode: LiteralInteger, propagate: LiteralInteger },
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 },
47684989 alias_scope_intel: struct { aliasing_scopes_list: Id },
47694990 no_alias_intel: struct { aliasing_scopes_list: Id },
4770 initiation_interval_intel: struct { cycles: LiteralInteger },
4771 max_concurrency_intel: struct { invocations: LiteralInteger },
4772 pipeline_enable_intel: struct { enable: LiteralInteger },
4773 buffer_location_intel: struct { buffer_location_id: LiteralInteger },
4774 io_pipe_storage_intel: struct { io_pipe_id: LiteralInteger },
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 },
47754996 function_floating_point_mode_intel: struct { target_width: LiteralInteger, fp_operation_mode: FPOperationMode },
47764997 single_element_vector_intel,
47774998 vector_compute_callable_function_intel,
47784999 media_block_iointel,
4779 stall_free_intel,
5000 stall_free_altera,
47805001 fp_max_error_decoration_intel: struct { max_error: LiteralFloat },
4781 latency_control_label_intel: struct { latency_label: LiteralInteger },
4782 latency_control_constraint_intel: struct { relative_to: LiteralInteger, control_type: LiteralInteger, relative_cycle: LiteralInteger },
4783 conduit_kernel_argument_intel,
4784 register_map_kernel_argument_intel,
4785 mm_host_interface_address_width_intel: struct { address_width: LiteralInteger },
4786 mm_host_interface_data_width_intel: struct { data_width: LiteralInteger },
4787 mm_host_interface_latency_intel: struct { latency: LiteralInteger },
4788 mm_host_interface_read_write_mode_intel: struct { read_write_mode: AccessQualifier },
4789 mm_host_interface_max_burst_intel: struct { max_burst_count: LiteralInteger },
4790 mm_host_interface_wait_request_intel: struct { waitrequest: LiteralInteger },
4791 stable_kernel_argument_intel,
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,
47925013 host_access_intel: struct { access: HostAccessQualifier, name: LiteralString },
4793 init_mode_intel: struct { trigger: InitializationModeQualifier },
4794 implement_in_register_map_intel: struct { value: LiteralInteger },
5014 init_mode_altera: struct { trigger: InitializationModeQualifier },
5015 implement_in_register_map_altera: struct { value: LiteralInteger },
5016 conditional_intel: struct { condition: Id },
47955017 cache_control_load_intel: struct { cache_level: LiteralInteger, cache_control: LoadCacheControl },
47965018 cache_control_store_intel: struct { cache_level: LiteralInteger, cache_control: StoreCacheControl },
47975019 };
......@@ -4868,6 +5090,8 @@ pub const BuiltIn = enum(u32) {
48685090 frag_stencil_ref_ext = 5014,
48695091 remaining_recursion_levels_amdx = 5021,
48705092 shader_index_amdx = 5073,
5093 sampler_heap_ext = 5122,
5094 resource_heap_ext = 5123,
48715095 viewport_mask_nv = 5253,
48725096 secondary_position_nv = 5257,
48735097 secondary_viewport_mask_nv = 5258,
......@@ -4938,9 +5162,9 @@ pub const GroupOperation = enum(u32) {
49385162 inclusive_scan = 1,
49395163 exclusive_scan = 2,
49405164 clustered_reduce = 3,
4941 partitioned_reduce_nv = 6,
4942 partitioned_inclusive_scan_nv = 7,
4943 partitioned_exclusive_scan_nv = 8,
5165 partitioned_reduce_ext = 6,
5166 partitioned_inclusive_scan_ext = 7,
5167 partitioned_exclusive_scan_ext = 8,
49445168};
49455169pub const KernelEnqueueFlags = enum(u32) {
49465170 no_wait = 0,
......@@ -4989,8 +5213,6 @@ pub const Capability = enum(u32) {
49895213 input_attachment = 40,
49905214 sparse_residency = 41,
49915215 min_lod = 42,
4992 sampled1d = 43,
4993 image1d = 44,
49945216 sampled_cube_array = 45,
49955217 sampled_buffer = 46,
49965218 image_buffer = 47,
......@@ -5018,15 +5240,9 @@ pub const Capability = enum(u32) {
50185240 shader_layer = 69,
50195241 shader_viewport_index = 70,
50205242 uniform_decoration = 71,
5021 core_builtins_arm = 4165,
50225243 tile_image_color_read_access_ext = 4166,
50235244 tile_image_depth_read_access_ext = 4167,
50245245 tile_image_stencil_read_access_ext = 4168,
5025 tensors_arm = 4174,
5026 storage_tensor_array_dynamic_indexing_arm = 4175,
5027 storage_tensor_array_non_uniform_indexing_arm = 4176,
5028 graph_arm = 4191,
5029 cooperative_matrix_layouts_arm = 4201,
50305246 float8ext = 4212,
50315247 float8cooperative_matrix_ext = 4213,
50325248 fragment_shading_rate_khr = 4422,
......@@ -5052,46 +5268,29 @@ pub const Capability = enum(u32) {
50525268 denorm_preserve = 4464,
50535269 denorm_flush_to_zero = 4465,
50545270 signed_zero_inf_nan_preserve = 4466,
5055 rounding_mode_rte = 4467,
5056 rounding_mode_rtz = 4468,
50575271 ray_query_provisional_khr = 4471,
50585272 ray_query_khr = 4472,
50595273 untyped_pointers_khr = 4473,
50605274 ray_traversal_primitive_culling_khr = 4478,
50615275 ray_tracing_khr = 4479,
5062 texture_sample_weighted_qcom = 4484,
5063 texture_box_filter_qcom = 4485,
5064 texture_block_match_qcom = 4486,
5065 tile_shading_qcom = 4495,
5066 texture_block_match2qcom = 4498,
5067 float16image_amd = 5008,
5068 image_gather_bias_lod_amd = 5009,
5069 fragment_mask_amd = 5010,
50705276 stencil_export_ext = 5013,
5071 image_read_write_lod_amd = 5015,
50725277 int64image_ext = 5016,
50735278 shader_clock_khr = 5055,
5074 shader_enqueue_amdx = 5067,
50755279 quad_control_khr = 5087,
5076 int4type_intel = 5112,
5077 int4cooperative_matrix_intel = 5114,
50785280 b_float16type_khr = 5116,
50795281 b_float16dot_product_khr = 5117,
50805282 b_float16cooperative_matrix_khr = 5118,
5081 sample_mask_override_coverage_nv = 5249,
5082 geometry_shader_passthrough_nv = 5251,
5283 abort_khr = 5120,
5284 descriptor_heap_ext = 5128,
5285 constant_data_khr = 5146,
5286 poison_freeze_khr = 5156,
50835287 shader_viewport_index_layer_ext = 5254,
5084 shader_viewport_mask_nv = 5255,
5085 shader_stereo_view_nv = 5259,
5086 per_view_attributes_nv = 5260,
50875288 fragment_fully_covered_ext = 5265,
5088 mesh_shading_nv = 5266,
5089 image_footprint_nv = 5282,
50905289 mesh_shading_ext = 5283,
50915290 fragment_barycentric_khr = 5284,
50925291 compute_derivative_group_quads_khr = 5288,
50935292 fragment_density_ext = 5291,
5094 group_non_uniform_partitioned_nv = 5297,
5293 group_non_uniform_partitioned_ext = 5297,
50955294 shader_non_uniform = 5301,
50965295 runtime_descriptor_array = 5302,
50975296 input_attachment_array_dynamic_indexing = 5303,
......@@ -5105,80 +5304,24 @@ pub const Capability = enum(u32) {
51055304 uniform_texel_buffer_array_non_uniform_indexing = 5311,
51065305 storage_texel_buffer_array_non_uniform_indexing = 5312,
51075306 ray_tracing_position_fetch_khr = 5336,
5108 ray_tracing_nv = 5340,
5109 ray_tracing_motion_blur_nv = 5341,
51105307 vulkan_memory_model = 5345,
51115308 vulkan_memory_model_device_scope = 5346,
51125309 physical_storage_buffer_addresses = 5347,
51135310 compute_derivative_group_linear_khr = 5350,
51145311 ray_tracing_provisional_khr = 5353,
5115 cooperative_matrix_nv = 5357,
51165312 fragment_shader_sample_interlock_ext = 5363,
51175313 fragment_shader_shading_rate_interlock_ext = 5372,
5118 shader_sm_builtins_nv = 5373,
51195314 fragment_shader_pixel_interlock_ext = 5378,
51205315 demote_to_helper_invocation = 5379,
5121 displacement_micromap_nv = 5380,
51225316 ray_tracing_opacity_micromap_ext = 5381,
5123 shader_invocation_reorder_nv = 5383,
5124 bindless_texture_nv = 5390,
5317 shader_invocation_reorder_ext = 5388,
51255318 ray_query_position_fetch_khr = 5391,
5126 cooperative_vector_nv = 5394,
5127 atomic_float16vector_nv = 5404,
5128 ray_tracing_displacement_micromap_nv = 5409,
5129 raw_access_chains_nv = 5414,
5130 ray_tracing_spheres_geometry_nv = 5418,
5131 ray_tracing_linear_swept_spheres_geometry_nv = 5419,
5132 cooperative_matrix_reductions_nv = 5430,
5133 cooperative_matrix_conversions_nv = 5431,
5134 cooperative_matrix_per_element_operations_nv = 5432,
5135 cooperative_matrix_tensor_addressing_nv = 5433,
5136 cooperative_matrix_block_loads_nv = 5434,
5137 cooperative_vector_training_nv = 5435,
5138 ray_tracing_cluster_acceleration_structure_nv = 5437,
5139 tensor_addressing_nv = 5439,
5140 subgroup_shuffle_intel = 5568,
5141 subgroup_buffer_block_iointel = 5569,
5142 subgroup_image_block_iointel = 5570,
5143 subgroup_image_media_block_iointel = 5579,
5144 round_to_infinity_intel = 5582,
5145 floating_point_mode_intel = 5583,
5146 integer_functions2intel = 5584,
5147 function_pointers_intel = 5603,
5148 indirect_references_intel = 5604,
5149 asm_intel = 5606,
5319 long_vector_ext = 5425,
5320 shader64bit_indexing_ext = 5426,
51505321 atomic_float32min_max_ext = 5612,
51515322 atomic_float64min_max_ext = 5613,
51525323 atomic_float16min_max_ext = 5616,
5153 vector_compute_intel = 5617,
5154 vector_any_intel = 5619,
51555324 expect_assume_khr = 5629,
5156 subgroup_avc_motion_estimation_intel = 5696,
5157 subgroup_avc_motion_estimation_intra_intel = 5697,
5158 subgroup_avc_motion_estimation_chroma_intel = 5698,
5159 variable_length_array_intel = 5817,
5160 function_float_control_intel = 5821,
5161 fpga_memory_attributes_intel = 5824,
5162 fp_fast_math_mode_intel = 5837,
5163 arbitrary_precision_integers_intel = 5844,
5164 arbitrary_precision_floating_point_intel = 5845,
5165 unstructured_loop_controls_intel = 5886,
5166 fpga_loop_controls_intel = 5888,
5167 kernel_attributes_intel = 5892,
5168 fpga_kernel_attributes_intel = 5897,
5169 fpga_memory_accesses_intel = 5898,
5170 fpga_cluster_attributes_intel = 5904,
5171 loop_fuse_intel = 5906,
5172 fpgadsp_control_intel = 5908,
5173 memory_access_aliasing_intel = 5910,
5174 fpga_invocation_pipelining_attributes_intel = 5916,
5175 fpga_buffer_location_intel = 5920,
5176 arbitrary_precision_fixed_point_intel = 5922,
5177 usm_storage_classes_intel = 5935,
5178 runtime_aligned_attribute_intel = 5939,
5179 io_pipes_intel = 5943,
5180 blocking_pipes_intel = 5945,
5181 fpga_reg_intel = 5948,
51825325 dot_product_input_all = 6016,
51835326 dot_product_input4x8bit = 6017,
51845327 dot_product_input4x8bit_packed = 6018,
......@@ -5189,123 +5332,663 @@ pub const Capability = enum(u32) {
51895332 bit_instructions = 6025,
51905333 group_non_uniform_rotate_khr = 6026,
51915334 float_controls2 = 6029,
5335 fmakhr = 6030,
51925336 atomic_float32add_ext = 6033,
51935337 atomic_float64add_ext = 6034,
5194 long_composites_intel = 6089,
51955338 opt_none_ext = 6094,
51965339 atomic_float16add_ext = 6095,
5197 debug_info_module_intel = 6114,
5198 b_float16conversion_intel = 6115,
5199 split_barrier_intel = 6141,
52005340 arithmetic_fence_ext = 6144,
5201 fpga_cluster_attributes_v2intel = 6150,
5202 fpga_kernel_attributesv2intel = 6161,
5203 task_sequence_intel = 6162,
5204 fp_max_error_intel = 6169,
5205 fpga_latency_control_intel = 6171,
5206 fpga_argument_interfaces_intel = 6174,
5207 global_variable_host_access_intel = 6187,
5208 global_variable_fpga_decorations_intel = 6189,
5209 subgroup_buffer_prefetch_intel = 6220,
5210 subgroup2d_block_iointel = 6228,
5211 subgroup2d_block_transform_intel = 6229,
5212 subgroup2d_block_transpose_intel = 6230,
5213 subgroup_matrix_multiply_accumulate_intel = 6236,
5214 ternary_bitwise_function_intel = 6241,
52155341 group_uniform_arithmetic_khr = 6400,
5216 tensor_float32rounding_intel = 6425,
5217 masked_gather_scatter_intel = 6427,
5218 cache_controls_intel = 6441,
5219 register_limits_intel = 6460,
5220 bindless_images_intel = 6528,
5221};
5222pub const RayQueryIntersection = enum(u32) {
5223 ray_query_candidate_intersection_khr = 0,
5224 ray_query_committed_intersection_khr = 1,
5225};
5226pub const RayQueryCommittedIntersectionType = enum(u32) {
5227 ray_query_committed_intersection_none_khr = 0,
5228 ray_query_committed_intersection_triangle_khr = 1,
5229 ray_query_committed_intersection_generated_khr = 2,
5230};
5231pub const RayQueryCandidateIntersectionType = enum(u32) {
5232 ray_query_candidate_intersection_triangle_khr = 0,
5233 ray_query_candidate_intersection_aabbkhr = 1,
5234};
5235pub const PackedVectorFormat = enum(u32) {
5236 packed_vector_format4x8bit = 0,
5237};
5238pub const CooperativeMatrixOperands = packed struct {
5239 matrix_a_signed_components_khr: bool = false,
5240 matrix_b_signed_components_khr: bool = false,
5241 matrix_c_signed_components_khr: bool = false,
5242 matrix_result_signed_components_khr: bool = false,
5243 saturating_accumulation_khr: bool = false,
5244 _reserved_bit_5: bool = false,
5245 _reserved_bit_6: bool = false,
5246 _reserved_bit_7: bool = false,
5247 _reserved_bit_8: bool = false,
5248 _reserved_bit_9: bool = false,
5249 _reserved_bit_10: bool = false,
5250 _reserved_bit_11: bool = false,
5251 _reserved_bit_12: bool = false,
5252 _reserved_bit_13: bool = false,
5253 _reserved_bit_14: bool = false,
5254 _reserved_bit_15: bool = false,
5255 _reserved_bit_16: bool = false,
5256 _reserved_bit_17: bool = false,
5257 _reserved_bit_18: bool = false,
5258 _reserved_bit_19: bool = false,
5259 _reserved_bit_20: bool = false,
5260 _reserved_bit_21: bool = false,
5261 _reserved_bit_22: bool = false,
5262 _reserved_bit_23: bool = false,
5263 _reserved_bit_24: bool = false,
5264 _reserved_bit_25: bool = false,
5265 _reserved_bit_26: bool = false,
5266 _reserved_bit_27: bool = false,
5267 _reserved_bit_28: bool = false,
5268 _reserved_bit_29: bool = false,
5269 _reserved_bit_30: bool = false,
5270 _reserved_bit_31: bool = false,
5271};
5272pub const CooperativeMatrixLayout = enum(u32) {
5273 row_major_khr = 0,
5274 column_major_khr = 1,
5275 row_blocked_interleaved_arm = 4202,
5276 column_blocked_interleaved_arm = 4203,
5277};
5278pub const CooperativeMatrixUse = enum(u32) {
5279 matrix_akhr = 0,
5280 matrix_bkhr = 1,
5281 matrix_accumulator_khr = 2,
5282};
5283pub const CooperativeMatrixReduce = packed struct {
5284 row: bool = false,
5285 column: bool = false,
5286 @"2x2": bool = false,
5287 _reserved_bit_3: bool = false,
5288 _reserved_bit_4: bool = false,
5289 _reserved_bit_5: bool = false,
5290 _reserved_bit_6: bool = false,
5291 _reserved_bit_7: bool = false,
5292 _reserved_bit_8: bool = false,
5293 _reserved_bit_9: bool = false,
5294 _reserved_bit_10: bool = false,
5295 _reserved_bit_11: bool = false,
5296 _reserved_bit_12: bool = false,
5297 _reserved_bit_13: bool = false,
5298 _reserved_bit_14: bool = false,
5299 _reserved_bit_15: bool = false,
5300 _reserved_bit_16: bool = false,
5301 _reserved_bit_17: bool = false,
5302 _reserved_bit_18: bool = false,
5303 _reserved_bit_19: bool = false,
5304 _reserved_bit_20: bool = false,
5305 _reserved_bit_21: bool = false,
5306 _reserved_bit_22: bool = false,
5307 _reserved_bit_23: bool = false,
5308 _reserved_bit_24: bool = false,
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,
53095992 _reserved_bit_25: bool = false,
53105993 _reserved_bit_26: bool = false,
53115994 _reserved_bit_27: bool = false,
......@@ -5314,17 +5997,21 @@ pub const CooperativeMatrixReduce = packed struct {
53145997 _reserved_bit_30: bool = false,
53155998 _reserved_bit_31: bool = false,
53165999};
5317pub const TensorClampMode = enum(u32) {
5318 undefined = 0,
5319 constant = 1,
5320 clamp_to_edge = 2,
5321 repeat = 3,
5322 repeat_mirrored = 4,
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,
53236005};
5324pub const TensorAddressingOperands = packed struct {
5325 tensor_view: bool = false,
5326 decode_func: bool = false,
5327 _reserved_bit_2: bool = false,
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,
53286015 _reserved_bit_3: bool = false,
53296016 _reserved_bit_4: bool = false,
53306017 _reserved_bit_5: bool = false,
......@@ -5354,24 +6041,65 @@ pub const TensorAddressingOperands = packed struct {
53546041 _reserved_bit_29: bool = false,
53556042 _reserved_bit_30: bool = false,
53566043 _reserved_bit_31: bool = false,
5357
5358 pub const Extended = struct {
5359 tensor_view: ?struct { id_ref: Id } = null,
5360 decode_func: ?struct { id_ref: Id } = null,
5361 _reserved_bit_2: bool = false,
5362 _reserved_bit_3: bool = false,
5363 _reserved_bit_4: bool = false,
5364 _reserved_bit_5: bool = false,
5365 _reserved_bit_6: bool = false,
5366 _reserved_bit_7: bool = false,
5367 _reserved_bit_8: bool = false,
5368 _reserved_bit_9: bool = false,
5369 _reserved_bit_10: bool = false,
5370 _reserved_bit_11: bool = false,
5371 _reserved_bit_12: bool = false,
5372 _reserved_bit_13: bool = false,
5373 _reserved_bit_14: bool = false,
5374 _reserved_bit_15: bool = false,
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,
53756103 _reserved_bit_16: bool = false,
53766104 _reserved_bit_17: bool = false,
53776105 _reserved_bit_18: bool = false,
......@@ -5391,8 +6119,8 @@ pub const TensorAddressingOperands = packed struct {
53916119 };
53926120};
53936121pub const InitializationModeQualifier = enum(u32) {
5394 init_on_device_reprogram_intel = 0,
5395 init_on_device_reset_intel = 1,
6122 init_on_device_reprogram_altera = 0,
6123 init_on_device_reset_altera = 1,
53966124};
53976125pub const LoadCacheControl = enum(u32) {
53986126 uncached_intel = 0,
......@@ -5543,8 +6271,8 @@ pub const TensorOperands = packed struct {
55436271};
55446272pub const InstructionSet = enum {
55456273 core,
5546 @"GLSL.std.450",
55476274 @"OpenCL.std",
6275 @"GLSL.std.450",
55486276 zig,
55496277
55506278 pub fn instructions(self: InstructionSet) []const Instruction {
......@@ -5613,482 +6341,890 @@ pub const InstructionSet = enum {
56136341 },
56146342 },
56156343 .{
5616 .name = "OpLine",
5617 .opcode = 8,
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,
56186708 .operands = &.{
6709 .{ .kind = .id_result_type, .quantifier = .required },
6710 .{ .kind = .id_result, .quantifier = .required },
56196711 .{ .kind = .id_ref, .quantifier = .required },
5620 .{ .kind = .literal_integer, .quantifier = .required },
5621 .{ .kind = .literal_integer, .quantifier = .required },
6712 .{ .kind = .id_ref, .quantifier = .variadic },
56226713 },
56236714 },
56246715 .{
5625 .name = "OpExtension",
5626 .opcode = 10,
6716 .name = "OpVariable",
6717 .opcode = 59,
56276718 .operands = &.{
5628 .{ .kind = .literal_string, .quantifier = .required },
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 },
56296723 },
56306724 },
56316725 .{
5632 .name = "OpExtInstImport",
5633 .opcode = 11,
6726 .name = "OpImageTexelPointer",
6727 .opcode = 60,
56346728 .operands = &.{
6729 .{ .kind = .id_result_type, .quantifier = .required },
56356730 .{ .kind = .id_result, .quantifier = .required },
5636 .{ .kind = .literal_string, .quantifier = .required },
6731 .{ .kind = .id_ref, .quantifier = .required },
6732 .{ .kind = .id_ref, .quantifier = .required },
6733 .{ .kind = .id_ref, .quantifier = .required },
56376734 },
56386735 },
56396736 .{
5640 .name = "OpExtInst",
5641 .opcode = 12,
6737 .name = "OpLoad",
6738 .opcode = 61,
56426739 .operands = &.{
56436740 .{ .kind = .id_result_type, .quantifier = .required },
56446741 .{ .kind = .id_result, .quantifier = .required },
56456742 .{ .kind = .id_ref, .quantifier = .required },
5646 .{ .kind = .literal_ext_inst_integer, .quantifier = .required },
5647 .{ .kind = .id_ref, .quantifier = .variadic },
6743 .{ .kind = .memory_access, .quantifier = .optional },
56486744 },
56496745 },
56506746 .{
5651 .name = "OpMemoryModel",
5652 .opcode = 14,
6747 .name = "OpStore",
6748 .opcode = 62,
56536749 .operands = &.{
5654 .{ .kind = .addressing_model, .quantifier = .required },
5655 .{ .kind = .memory_model, .quantifier = .required },
6750 .{ .kind = .id_ref, .quantifier = .required },
6751 .{ .kind = .id_ref, .quantifier = .required },
6752 .{ .kind = .memory_access, .quantifier = .optional },
56566753 },
56576754 },
56586755 .{
5659 .name = "OpEntryPoint",
5660 .opcode = 15,
6756 .name = "OpCopyMemory",
6757 .opcode = 63,
56616758 .operands = &.{
5662 .{ .kind = .execution_model, .quantifier = .required },
56636759 .{ .kind = .id_ref, .quantifier = .required },
5664 .{ .kind = .literal_string, .quantifier = .required },
5665 .{ .kind = .id_ref, .quantifier = .variadic },
6760 .{ .kind = .id_ref, .quantifier = .required },
6761 .{ .kind = .memory_access, .quantifier = .optional },
6762 .{ .kind = .memory_access, .quantifier = .optional },
56666763 },
56676764 },
56686765 .{
5669 .name = "OpExecutionMode",
5670 .opcode = 16,
6766 .name = "OpCopyMemorySized",
6767 .opcode = 64,
56716768 .operands = &.{
56726769 .{ .kind = .id_ref, .quantifier = .required },
5673 .{ .kind = .execution_mode, .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 },
56746774 },
56756775 },
56766776 .{
5677 .name = "OpCapability",
5678 .opcode = 17,
6777 .name = "OpAccessChain",
6778 .opcode = 65,
56796779 .operands = &.{
5680 .{ .kind = .capability, .quantifier = .required },
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 },
56816784 },
56826785 },
56836786 .{
5684 .name = "OpTypeVoid",
5685 .opcode = 19,
6787 .name = "OpInBoundsAccessChain",
6788 .opcode = 66,
56866789 .operands = &.{
6790 .{ .kind = .id_result_type, .quantifier = .required },
56876791 .{ .kind = .id_result, .quantifier = .required },
6792 .{ .kind = .id_ref, .quantifier = .required },
6793 .{ .kind = .id_ref, .quantifier = .variadic },
56886794 },
56896795 },
56906796 .{
5691 .name = "OpTypeBool",
5692 .opcode = 20,
6797 .name = "OpPtrAccessChain",
6798 .opcode = 67,
56936799 .operands = &.{
6800 .{ .kind = .id_result_type, .quantifier = .required },
56946801 .{ .kind = .id_result, .quantifier = .required },
6802 .{ .kind = .id_ref, .quantifier = .required },
6803 .{ .kind = .id_ref, .quantifier = .required },
6804 .{ .kind = .id_ref, .quantifier = .variadic },
56956805 },
56966806 },
56976807 .{
5698 .name = "OpTypeInt",
5699 .opcode = 21,
6808 .name = "OpArrayLength",
6809 .opcode = 68,
57006810 .operands = &.{
6811 .{ .kind = .id_result_type, .quantifier = .required },
57016812 .{ .kind = .id_result, .quantifier = .required },
5702 .{ .kind = .literal_integer, .quantifier = .required },
6813 .{ .kind = .id_ref, .quantifier = .required },
57036814 .{ .kind = .literal_integer, .quantifier = .required },
57046815 },
57056816 },
57066817 .{
5707 .name = "OpTypeFloat",
5708 .opcode = 22,
6818 .name = "OpGenericPtrMemSemantics",
6819 .opcode = 69,
57096820 .operands = &.{
6821 .{ .kind = .id_result_type, .quantifier = .required },
57106822 .{ .kind = .id_result, .quantifier = .required },
5711 .{ .kind = .literal_integer, .quantifier = .required },
5712 .{ .kind = .fp_encoding, .quantifier = .optional },
6823 .{ .kind = .id_ref, .quantifier = .required },
57136824 },
57146825 },
57156826 .{
5716 .name = "OpTypeVector",
5717 .opcode = 23,
6827 .name = "OpInBoundsPtrAccessChain",
6828 .opcode = 70,
57186829 .operands = &.{
6830 .{ .kind = .id_result_type, .quantifier = .required },
57196831 .{ .kind = .id_result, .quantifier = .required },
57206832 .{ .kind = .id_ref, .quantifier = .required },
5721 .{ .kind = .literal_integer, .quantifier = .required },
6833 .{ .kind = .id_ref, .quantifier = .required },
6834 .{ .kind = .id_ref, .quantifier = .variadic },
57226835 },
57236836 },
57246837 .{
5725 .name = "OpTypeMatrix",
5726 .opcode = 24,
6838 .name = "OpDecorate",
6839 .opcode = 71,
57276840 .operands = &.{
5728 .{ .kind = .id_result, .quantifier = .required },
57296841 .{ .kind = .id_ref, .quantifier = .required },
5730 .{ .kind = .literal_integer, .quantifier = .required },
6842 .{ .kind = .decoration, .quantifier = .required },
57316843 },
57326844 },
57336845 .{
5734 .name = "OpTypeImage",
5735 .opcode = 25,
6846 .name = "OpMemberDecorate",
6847 .opcode = 72,
57366848 .operands = &.{
5737 .{ .kind = .id_result, .quantifier = .required },
57386849 .{ .kind = .id_ref, .quantifier = .required },
5739 .{ .kind = .dim, .quantifier = .required },
57406850 .{ .kind = .literal_integer, .quantifier = .required },
5741 .{ .kind = .literal_integer, .quantifier = .required },
5742 .{ .kind = .literal_integer, .quantifier = .required },
5743 .{ .kind = .literal_integer, .quantifier = .required },
5744 .{ .kind = .image_format, .quantifier = .required },
5745 .{ .kind = .access_qualifier, .quantifier = .optional },
6851 .{ .kind = .decoration, .quantifier = .required },
57466852 },
57476853 },
57486854 .{
5749 .name = "OpTypeSampler",
5750 .opcode = 26,
6855 .name = "OpDecorationGroup",
6856 .opcode = 73,
57516857 .operands = &.{
57526858 .{ .kind = .id_result, .quantifier = .required },
57536859 },
57546860 },
57556861 .{
5756 .name = "OpTypeSampledImage",
5757 .opcode = 27,
6862 .name = "OpGroupDecorate",
6863 .opcode = 74,
57586864 .operands = &.{
5759 .{ .kind = .id_result, .quantifier = .required },
57606865 .{ .kind = .id_ref, .quantifier = .required },
6866 .{ .kind = .id_ref, .quantifier = .variadic },
57616867 },
57626868 },
57636869 .{
5764 .name = "OpTypeArray",
5765 .opcode = 28,
6870 .name = "OpGroupMemberDecorate",
6871 .opcode = 75,
57666872 .operands = &.{
5767 .{ .kind = .id_result, .quantifier = .required },
5768 .{ .kind = .id_ref, .quantifier = .required },
57696873 .{ .kind = .id_ref, .quantifier = .required },
6874 .{ .kind = .pair_id_ref_literal_integer, .quantifier = .variadic },
57706875 },
57716876 },
57726877 .{
5773 .name = "OpTypeRuntimeArray",
5774 .opcode = 29,
6878 .name = "OpVectorExtractDynamic",
6879 .opcode = 77,
57756880 .operands = &.{
6881 .{ .kind = .id_result_type, .quantifier = .required },
57766882 .{ .kind = .id_result, .quantifier = .required },
57776883 .{ .kind = .id_ref, .quantifier = .required },
6884 .{ .kind = .id_ref, .quantifier = .required },
57786885 },
57796886 },
57806887 .{
5781 .name = "OpTypeStruct",
5782 .opcode = 30,
5783 .operands = &.{
5784 .{ .kind = .id_result, .quantifier = .required },
5785 .{ .kind = .id_ref, .quantifier = .variadic },
5786 },
5787 },
5788 .{
5789 .name = "OpTypeOpaque",
5790 .opcode = 31,
6888 .name = "OpVectorInsertDynamic",
6889 .opcode = 78,
57916890 .operands = &.{
6891 .{ .kind = .id_result_type, .quantifier = .required },
57926892 .{ .kind = .id_result, .quantifier = .required },
5793 .{ .kind = .literal_string, .quantifier = .required },
6893 .{ .kind = .id_ref, .quantifier = .required },
6894 .{ .kind = .id_ref, .quantifier = .required },
6895 .{ .kind = .id_ref, .quantifier = .required },
57946896 },
57956897 },
57966898 .{
5797 .name = "OpTypePointer",
5798 .opcode = 32,
6899 .name = "OpVectorShuffle",
6900 .opcode = 79,
57996901 .operands = &.{
6902 .{ .kind = .id_result_type, .quantifier = .required },
58006903 .{ .kind = .id_result, .quantifier = .required },
5801 .{ .kind = .storage_class, .quantifier = .required },
58026904 .{ .kind = .id_ref, .quantifier = .required },
6905 .{ .kind = .id_ref, .quantifier = .required },
6906 .{ .kind = .literal_integer, .quantifier = .variadic },
58036907 },
58046908 },
58056909 .{
5806 .name = "OpTypeFunction",
5807 .opcode = 33,
6910 .name = "OpCompositeConstruct",
6911 .opcode = 80,
58086912 .operands = &.{
6913 .{ .kind = .id_result_type, .quantifier = .required },
58096914 .{ .kind = .id_result, .quantifier = .required },
5810 .{ .kind = .id_ref, .quantifier = .required },
58116915 .{ .kind = .id_ref, .quantifier = .variadic },
58126916 },
58136917 },
58146918 .{
5815 .name = "OpTypeEvent",
5816 .opcode = 34,
6919 .name = "OpCompositeExtract",
6920 .opcode = 81,
58176921 .operands = &.{
6922 .{ .kind = .id_result_type, .quantifier = .required },
58186923 .{ .kind = .id_result, .quantifier = .required },
6924 .{ .kind = .id_ref, .quantifier = .required },
6925 .{ .kind = .literal_integer, .quantifier = .variadic },
58196926 },
58206927 },
58216928 .{
5822 .name = "OpTypeDeviceEvent",
5823 .opcode = 35,
6929 .name = "OpCompositeInsert",
6930 .opcode = 82,
58246931 .operands = &.{
6932 .{ .kind = .id_result_type, .quantifier = .required },
58256933 .{ .kind = .id_result, .quantifier = .required },
6934 .{ .kind = .id_ref, .quantifier = .required },
6935 .{ .kind = .id_ref, .quantifier = .required },
6936 .{ .kind = .literal_integer, .quantifier = .variadic },
58266937 },
58276938 },
58286939 .{
5829 .name = "OpTypeReserveId",
5830 .opcode = 36,
6940 .name = "OpCopyObject",
6941 .opcode = 83,
58316942 .operands = &.{
6943 .{ .kind = .id_result_type, .quantifier = .required },
58326944 .{ .kind = .id_result, .quantifier = .required },
6945 .{ .kind = .id_ref, .quantifier = .required },
58336946 },
58346947 },
58356948 .{
5836 .name = "OpTypeQueue",
5837 .opcode = 37,
6949 .name = "OpTranspose",
6950 .opcode = 84,
58386951 .operands = &.{
6952 .{ .kind = .id_result_type, .quantifier = .required },
58396953 .{ .kind = .id_result, .quantifier = .required },
6954 .{ .kind = .id_ref, .quantifier = .required },
58406955 },
58416956 },
58426957 .{
5843 .name = "OpTypePipe",
5844 .opcode = 38,
6958 .name = "OpSampledImage",
6959 .opcode = 86,
58456960 .operands = &.{
6961 .{ .kind = .id_result_type, .quantifier = .required },
58466962 .{ .kind = .id_result, .quantifier = .required },
5847 .{ .kind = .access_qualifier, .quantifier = .required },
6963 .{ .kind = .id_ref, .quantifier = .required },
6964 .{ .kind = .id_ref, .quantifier = .required },
58486965 },
58496966 },
58506967 .{
5851 .name = "OpTypeForwardPointer",
5852 .opcode = 39,
6968 .name = "OpImageSampleImplicitLod",
6969 .opcode = 87,
58536970 .operands = &.{
6971 .{ .kind = .id_result_type, .quantifier = .required },
6972 .{ .kind = .id_result, .quantifier = .required },
58546973 .{ .kind = .id_ref, .quantifier = .required },
5855 .{ .kind = .storage_class, .quantifier = .required },
6974 .{ .kind = .id_ref, .quantifier = .required },
6975 .{ .kind = .image_operands, .quantifier = .optional },
58566976 },
58576977 },
58586978 .{
5859 .name = "OpConstantTrue",
5860 .opcode = 41,
6979 .name = "OpImageSampleExplicitLod",
6980 .opcode = 88,
58616981 .operands = &.{
58626982 .{ .kind = .id_result_type, .quantifier = .required },
58636983 .{ .kind = .id_result, .quantifier = .required },
6984 .{ .kind = .id_ref, .quantifier = .required },
6985 .{ .kind = .id_ref, .quantifier = .required },
6986 .{ .kind = .image_operands, .quantifier = .required },
58646987 },
58656988 },
58666989 .{
5867 .name = "OpConstantFalse",
5868 .opcode = 42,
6990 .name = "OpImageSampleDrefImplicitLod",
6991 .opcode = 89,
58696992 .operands = &.{
58706993 .{ .kind = .id_result_type, .quantifier = .required },
58716994 .{ .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 },
58726999 },
58737000 },
58747001 .{
5875 .name = "OpConstant",
5876 .opcode = 43,
7002 .name = "OpImageSampleDrefExplicitLod",
7003 .opcode = 90,
58777004 .operands = &.{
58787005 .{ .kind = .id_result_type, .quantifier = .required },
58797006 .{ .kind = .id_result, .quantifier = .required },
5880 .{ .kind = .literal_context_dependent_number, .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 },
58817011 },
58827012 },
58837013 .{
5884 .name = "OpConstantComposite",
5885 .opcode = 44,
7014 .name = "OpImageSampleProjImplicitLod",
7015 .opcode = 91,
58867016 .operands = &.{
58877017 .{ .kind = .id_result_type, .quantifier = .required },
58887018 .{ .kind = .id_result, .quantifier = .required },
5889 .{ .kind = .id_ref, .quantifier = .variadic },
7019 .{ .kind = .id_ref, .quantifier = .required },
7020 .{ .kind = .id_ref, .quantifier = .required },
7021 .{ .kind = .image_operands, .quantifier = .optional },
58907022 },
58917023 },
58927024 .{
5893 .name = "OpConstantSampler",
5894 .opcode = 45,
7025 .name = "OpImageSampleProjExplicitLod",
7026 .opcode = 92,
58957027 .operands = &.{
58967028 .{ .kind = .id_result_type, .quantifier = .required },
58977029 .{ .kind = .id_result, .quantifier = .required },
5898 .{ .kind = .sampler_addressing_mode, .quantifier = .required },
5899 .{ .kind = .literal_integer, .quantifier = .required },
5900 .{ .kind = .sampler_filter_mode, .quantifier = .required },
7030 .{ .kind = .id_ref, .quantifier = .required },
7031 .{ .kind = .id_ref, .quantifier = .required },
7032 .{ .kind = .image_operands, .quantifier = .required },
59017033 },
59027034 },
59037035 .{
5904 .name = "OpConstantNull",
5905 .opcode = 46,
7036 .name = "OpImageSampleProjDrefImplicitLod",
7037 .opcode = 93,
59067038 .operands = &.{
59077039 .{ .kind = .id_result_type, .quantifier = .required },
59087040 .{ .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 },
59097045 },
59107046 },
59117047 .{
5912 .name = "OpSpecConstantTrue",
5913 .opcode = 48,
7048 .name = "OpImageSampleProjDrefExplicitLod",
7049 .opcode = 94,
59147050 .operands = &.{
59157051 .{ .kind = .id_result_type, .quantifier = .required },
59167052 .{ .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 },
59177057 },
59187058 },
59197059 .{
5920 .name = "OpSpecConstantFalse",
5921 .opcode = 49,
7060 .name = "OpImageFetch",
7061 .opcode = 95,
59227062 .operands = &.{
59237063 .{ .kind = .id_result_type, .quantifier = .required },
59247064 .{ .kind = .id_result, .quantifier = .required },
7065 .{ .kind = .id_ref, .quantifier = .required },
7066 .{ .kind = .id_ref, .quantifier = .required },
7067 .{ .kind = .image_operands, .quantifier = .optional },
59257068 },
59267069 },
59277070 .{
5928 .name = "OpSpecConstant",
5929 .opcode = 50,
7071 .name = "OpImageGather",
7072 .opcode = 96,
59307073 .operands = &.{
59317074 .{ .kind = .id_result_type, .quantifier = .required },
59327075 .{ .kind = .id_result, .quantifier = .required },
5933 .{ .kind = .literal_context_dependent_number, .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 },
59347080 },
59357081 },
59367082 .{
5937 .name = "OpSpecConstantComposite",
5938 .opcode = 51,
7083 .name = "OpImageDrefGather",
7084 .opcode = 97,
59397085 .operands = &.{
59407086 .{ .kind = .id_result_type, .quantifier = .required },
59417087 .{ .kind = .id_result, .quantifier = .required },
5942 .{ .kind = .id_ref, .quantifier = .variadic },
7088 .{ .kind = .id_ref, .quantifier = .required },
7089 .{ .kind = .id_ref, .quantifier = .required },
7090 .{ .kind = .id_ref, .quantifier = .required },
7091 .{ .kind = .image_operands, .quantifier = .optional },
59437092 },
59447093 },
59457094 .{
5946 .name = "OpSpecConstantOp",
5947 .opcode = 52,
7095 .name = "OpImageRead",
7096 .opcode = 98,
59487097 .operands = &.{
59497098 .{ .kind = .id_result_type, .quantifier = .required },
59507099 .{ .kind = .id_result, .quantifier = .required },
5951 .{ .kind = .literal_spec_constant_op_integer, .quantifier = .required },
7100 .{ .kind = .id_ref, .quantifier = .required },
7101 .{ .kind = .id_ref, .quantifier = .required },
7102 .{ .kind = .image_operands, .quantifier = .optional },
59527103 },
59537104 },
59547105 .{
5955 .name = "OpFunction",
5956 .opcode = 54,
7106 .name = "OpImageWrite",
7107 .opcode = 99,
59577108 .operands = &.{
5958 .{ .kind = .id_result_type, .quantifier = .required },
5959 .{ .kind = .id_result, .quantifier = .required },
5960 .{ .kind = .function_control, .quantifier = .required },
59617109 .{ .kind = .id_ref, .quantifier = .required },
7110 .{ .kind = .id_ref, .quantifier = .required },
7111 .{ .kind = .id_ref, .quantifier = .required },
7112 .{ .kind = .image_operands, .quantifier = .optional },
59627113 },
59637114 },
59647115 .{
5965 .name = "OpFunctionParameter",
5966 .opcode = 55,
7116 .name = "OpImage",
7117 .opcode = 100,
59677118 .operands = &.{
59687119 .{ .kind = .id_result_type, .quantifier = .required },
59697120 .{ .kind = .id_result, .quantifier = .required },
7121 .{ .kind = .id_ref, .quantifier = .required },
59707122 },
59717123 },
59727124 .{
5973 .name = "OpFunctionEnd",
5974 .opcode = 56,
5975 .operands = &.{},
5976 },
5977 .{
5978 .name = "OpFunctionCall",
5979 .opcode = 57,
7125 .name = "OpImageQueryFormat",
7126 .opcode = 101,
59807127 .operands = &.{
59817128 .{ .kind = .id_result_type, .quantifier = .required },
59827129 .{ .kind = .id_result, .quantifier = .required },
59837130 .{ .kind = .id_ref, .quantifier = .required },
5984 .{ .kind = .id_ref, .quantifier = .variadic },
59857131 },
59867132 },
59877133 .{
5988 .name = "OpVariable",
5989 .opcode = 59,
7134 .name = "OpImageQueryOrder",
7135 .opcode = 102,
59907136 .operands = &.{
59917137 .{ .kind = .id_result_type, .quantifier = .required },
59927138 .{ .kind = .id_result, .quantifier = .required },
5993 .{ .kind = .storage_class, .quantifier = .required },
5994 .{ .kind = .id_ref, .quantifier = .optional },
7139 .{ .kind = .id_ref, .quantifier = .required },
59957140 },
59967141 },
59977142 .{
5998 .name = "OpImageTexelPointer",
5999 .opcode = 60,
7143 .name = "OpImageQuerySizeLod",
7144 .opcode = 103,
60007145 .operands = &.{
60017146 .{ .kind = .id_result_type, .quantifier = .required },
60027147 .{ .kind = .id_result, .quantifier = .required },
60037148 .{ .kind = .id_ref, .quantifier = .required },
60047149 .{ .kind = .id_ref, .quantifier = .required },
6005 .{ .kind = .id_ref, .quantifier = .required },
60067150 },
60077151 },
60087152 .{
6009 .name = "OpLoad",
6010 .opcode = 61,
7153 .name = "OpImageQuerySize",
7154 .opcode = 104,
60117155 .operands = &.{
60127156 .{ .kind = .id_result_type, .quantifier = .required },
60137157 .{ .kind = .id_result, .quantifier = .required },
60147158 .{ .kind = .id_ref, .quantifier = .required },
6015 .{ .kind = .memory_access, .quantifier = .optional },
60167159 },
60177160 },
60187161 .{
6019 .name = "OpStore",
6020 .opcode = 62,
7162 .name = "OpImageQueryLod",
7163 .opcode = 105,
60217164 .operands = &.{
7165 .{ .kind = .id_result_type, .quantifier = .required },
7166 .{ .kind = .id_result, .quantifier = .required },
60227167 .{ .kind = .id_ref, .quantifier = .required },
60237168 .{ .kind = .id_ref, .quantifier = .required },
6024 .{ .kind = .memory_access, .quantifier = .optional },
60257169 },
60267170 },
60277171 .{
6028 .name = "OpCopyMemory",
6029 .opcode = 63,
7172 .name = "OpImageQueryLevels",
7173 .opcode = 106,
60307174 .operands = &.{
7175 .{ .kind = .id_result_type, .quantifier = .required },
7176 .{ .kind = .id_result, .quantifier = .required },
60317177 .{ .kind = .id_ref, .quantifier = .required },
6032 .{ .kind = .id_ref, .quantifier = .required },
6033 .{ .kind = .memory_access, .quantifier = .optional },
6034 .{ .kind = .memory_access, .quantifier = .optional },
60357178 },
60367179 },
60377180 .{
6038 .name = "OpCopyMemorySized",
6039 .opcode = 64,
7181 .name = "OpImageQuerySamples",
7182 .opcode = 107,
60407183 .operands = &.{
7184 .{ .kind = .id_result_type, .quantifier = .required },
7185 .{ .kind = .id_result, .quantifier = .required },
60417186 .{ .kind = .id_ref, .quantifier = .required },
6042 .{ .kind = .id_ref, .quantifier = .required },
6043 .{ .kind = .id_ref, .quantifier = .required },
6044 .{ .kind = .memory_access, .quantifier = .optional },
6045 .{ .kind = .memory_access, .quantifier = .optional },
60467187 },
60477188 },
60487189 .{
6049 .name = "OpAccessChain",
6050 .opcode = 65,
7190 .name = "OpConvertFToU",
7191 .opcode = 109,
60517192 .operands = &.{
60527193 .{ .kind = .id_result_type, .quantifier = .required },
60537194 .{ .kind = .id_result, .quantifier = .required },
60547195 .{ .kind = .id_ref, .quantifier = .required },
6055 .{ .kind = .id_ref, .quantifier = .variadic },
60567196 },
60577197 },
60587198 .{
6059 .name = "OpInBoundsAccessChain",
6060 .opcode = 66,
7199 .name = "OpConvertFToS",
7200 .opcode = 110,
60617201 .operands = &.{
60627202 .{ .kind = .id_result_type, .quantifier = .required },
60637203 .{ .kind = .id_result, .quantifier = .required },
60647204 .{ .kind = .id_ref, .quantifier = .required },
6065 .{ .kind = .id_ref, .quantifier = .variadic },
60667205 },
60677206 },
60687207 .{
6069 .name = "OpPtrAccessChain",
6070 .opcode = 67,
7208 .name = "OpConvertSToF",
7209 .opcode = 111,
60717210 .operands = &.{
60727211 .{ .kind = .id_result_type, .quantifier = .required },
60737212 .{ .kind = .id_result, .quantifier = .required },
60747213 .{ .kind = .id_ref, .quantifier = .required },
6075 .{ .kind = .id_ref, .quantifier = .required },
6076 .{ .kind = .id_ref, .quantifier = .variadic },
60777214 },
60787215 },
60797216 .{
6080 .name = "OpArrayLength",
6081 .opcode = 68,
7217 .name = "OpConvertUToF",
7218 .opcode = 112,
60827219 .operands = &.{
60837220 .{ .kind = .id_result_type, .quantifier = .required },
60847221 .{ .kind = .id_result, .quantifier = .required },
60857222 .{ .kind = .id_ref, .quantifier = .required },
6086 .{ .kind = .literal_integer, .quantifier = .required },
60877223 },
60887224 },
60897225 .{
6090 .name = "OpGenericPtrMemSemantics",
6091 .opcode = 69,
7226 .name = "OpUConvert",
7227 .opcode = 113,
60927228 .operands = &.{
60937229 .{ .kind = .id_result_type, .quantifier = .required },
60947230 .{ .kind = .id_result, .quantifier = .required },
......@@ -6096,139 +7232,146 @@ pub const InstructionSet = enum {
60967232 },
60977233 },
60987234 .{
6099 .name = "OpInBoundsPtrAccessChain",
6100 .opcode = 70,
7235 .name = "OpSConvert",
7236 .opcode = 114,
61017237 .operands = &.{
61027238 .{ .kind = .id_result_type, .quantifier = .required },
61037239 .{ .kind = .id_result, .quantifier = .required },
61047240 .{ .kind = .id_ref, .quantifier = .required },
6105 .{ .kind = .id_ref, .quantifier = .required },
6106 .{ .kind = .id_ref, .quantifier = .variadic },
61077241 },
61087242 },
61097243 .{
6110 .name = "OpDecorate",
6111 .opcode = 71,
7244 .name = "OpFConvert",
7245 .opcode = 115,
61127246 .operands = &.{
7247 .{ .kind = .id_result_type, .quantifier = .required },
7248 .{ .kind = .id_result, .quantifier = .required },
61137249 .{ .kind = .id_ref, .quantifier = .required },
6114 .{ .kind = .decoration, .quantifier = .required },
61157250 },
61167251 },
61177252 .{
6118 .name = "OpMemberDecorate",
6119 .opcode = 72,
7253 .name = "OpQuantizeToF16",
7254 .opcode = 116,
61207255 .operands = &.{
7256 .{ .kind = .id_result_type, .quantifier = .required },
7257 .{ .kind = .id_result, .quantifier = .required },
61217258 .{ .kind = .id_ref, .quantifier = .required },
6122 .{ .kind = .literal_integer, .quantifier = .required },
6123 .{ .kind = .decoration, .quantifier = .required },
61247259 },
61257260 },
61267261 .{
6127 .name = "OpDecorationGroup",
6128 .opcode = 73,
7262 .name = "OpConvertPtrToU",
7263 .opcode = 117,
61297264 .operands = &.{
7265 .{ .kind = .id_result_type, .quantifier = .required },
61307266 .{ .kind = .id_result, .quantifier = .required },
7267 .{ .kind = .id_ref, .quantifier = .required },
61317268 },
61327269 },
61337270 .{
6134 .name = "OpGroupDecorate",
6135 .opcode = 74,
7271 .name = "OpSatConvertSToU",
7272 .opcode = 118,
61367273 .operands = &.{
7274 .{ .kind = .id_result_type, .quantifier = .required },
7275 .{ .kind = .id_result, .quantifier = .required },
61377276 .{ .kind = .id_ref, .quantifier = .required },
6138 .{ .kind = .id_ref, .quantifier = .variadic },
61397277 },
61407278 },
61417279 .{
6142 .name = "OpGroupMemberDecorate",
6143 .opcode = 75,
7280 .name = "OpSatConvertUToS",
7281 .opcode = 119,
61447282 .operands = &.{
7283 .{ .kind = .id_result_type, .quantifier = .required },
7284 .{ .kind = .id_result, .quantifier = .required },
61457285 .{ .kind = .id_ref, .quantifier = .required },
6146 .{ .kind = .pair_id_ref_literal_integer, .quantifier = .variadic },
61477286 },
61487287 },
61497288 .{
6150 .name = "OpVectorExtractDynamic",
6151 .opcode = 77,
7289 .name = "OpConvertUToPtr",
7290 .opcode = 120,
61527291 .operands = &.{
61537292 .{ .kind = .id_result_type, .quantifier = .required },
61547293 .{ .kind = .id_result, .quantifier = .required },
61557294 .{ .kind = .id_ref, .quantifier = .required },
6156 .{ .kind = .id_ref, .quantifier = .required },
61577295 },
61587296 },
61597297 .{
6160 .name = "OpVectorInsertDynamic",
6161 .opcode = 78,
7298 .name = "OpPtrCastToGeneric",
7299 .opcode = 121,
61627300 .operands = &.{
61637301 .{ .kind = .id_result_type, .quantifier = .required },
61647302 .{ .kind = .id_result, .quantifier = .required },
61657303 .{ .kind = .id_ref, .quantifier = .required },
6166 .{ .kind = .id_ref, .quantifier = .required },
6167 .{ .kind = .id_ref, .quantifier = .required },
61687304 },
61697305 },
61707306 .{
6171 .name = "OpVectorShuffle",
6172 .opcode = 79,
7307 .name = "OpGenericCastToPtr",
7308 .opcode = 122,
61737309 .operands = &.{
61747310 .{ .kind = .id_result_type, .quantifier = .required },
61757311 .{ .kind = .id_result, .quantifier = .required },
61767312 .{ .kind = .id_ref, .quantifier = .required },
6177 .{ .kind = .id_ref, .quantifier = .required },
6178 .{ .kind = .literal_integer, .quantifier = .variadic },
61797313 },
61807314 },
61817315 .{
6182 .name = "OpCompositeConstruct",
6183 .opcode = 80,
7316 .name = "OpGenericCastToPtrExplicit",
7317 .opcode = 123,
61847318 .operands = &.{
61857319 .{ .kind = .id_result_type, .quantifier = .required },
61867320 .{ .kind = .id_result, .quantifier = .required },
6187 .{ .kind = .id_ref, .quantifier = .variadic },
7321 .{ .kind = .id_ref, .quantifier = .required },
7322 .{ .kind = .storage_class, .quantifier = .required },
61887323 },
61897324 },
61907325 .{
6191 .name = "OpCompositeExtract",
6192 .opcode = 81,
7326 .name = "OpBitcast",
7327 .opcode = 124,
61937328 .operands = &.{
61947329 .{ .kind = .id_result_type, .quantifier = .required },
61957330 .{ .kind = .id_result, .quantifier = .required },
61967331 .{ .kind = .id_ref, .quantifier = .required },
6197 .{ .kind = .literal_integer, .quantifier = .variadic },
61987332 },
61997333 },
62007334 .{
6201 .name = "OpCompositeInsert",
6202 .opcode = 82,
7335 .name = "OpSNegate",
7336 .opcode = 126,
62037337 .operands = &.{
62047338 .{ .kind = .id_result_type, .quantifier = .required },
62057339 .{ .kind = .id_result, .quantifier = .required },
62067340 .{ .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 },
62077349 .{ .kind = .id_ref, .quantifier = .required },
6208 .{ .kind = .literal_integer, .quantifier = .variadic },
62097350 },
62107351 },
62117352 .{
6212 .name = "OpCopyObject",
6213 .opcode = 83,
7353 .name = "OpIAdd",
7354 .opcode = 128,
62147355 .operands = &.{
62157356 .{ .kind = .id_result_type, .quantifier = .required },
62167357 .{ .kind = .id_result, .quantifier = .required },
62177358 .{ .kind = .id_ref, .quantifier = .required },
7359 .{ .kind = .id_ref, .quantifier = .required },
62187360 },
62197361 },
62207362 .{
6221 .name = "OpTranspose",
6222 .opcode = 84,
7363 .name = "OpFAdd",
7364 .opcode = 129,
62237365 .operands = &.{
62247366 .{ .kind = .id_result_type, .quantifier = .required },
62257367 .{ .kind = .id_result, .quantifier = .required },
62267368 .{ .kind = .id_ref, .quantifier = .required },
7369 .{ .kind = .id_ref, .quantifier = .required },
62277370 },
62287371 },
62297372 .{
6230 .name = "OpSampledImage",
6231 .opcode = 86,
7373 .name = "OpISub",
7374 .opcode = 130,
62327375 .operands = &.{
62337376 .{ .kind = .id_result_type, .quantifier = .required },
62347377 .{ .kind = .id_result, .quantifier = .required },
......@@ -6237,183 +7380,168 @@ pub const InstructionSet = enum {
62377380 },
62387381 },
62397382 .{
6240 .name = "OpImageSampleImplicitLod",
6241 .opcode = 87,
7383 .name = "OpFSub",
7384 .opcode = 131,
62427385 .operands = &.{
62437386 .{ .kind = .id_result_type, .quantifier = .required },
62447387 .{ .kind = .id_result, .quantifier = .required },
62457388 .{ .kind = .id_ref, .quantifier = .required },
62467389 .{ .kind = .id_ref, .quantifier = .required },
6247 .{ .kind = .image_operands, .quantifier = .optional },
62487390 },
62497391 },
62507392 .{
6251 .name = "OpImageSampleExplicitLod",
6252 .opcode = 88,
7393 .name = "OpIMul",
7394 .opcode = 132,
62537395 .operands = &.{
62547396 .{ .kind = .id_result_type, .quantifier = .required },
62557397 .{ .kind = .id_result, .quantifier = .required },
62567398 .{ .kind = .id_ref, .quantifier = .required },
62577399 .{ .kind = .id_ref, .quantifier = .required },
6258 .{ .kind = .image_operands, .quantifier = .required },
62597400 },
62607401 },
62617402 .{
6262 .name = "OpImageSampleDrefImplicitLod",
6263 .opcode = 89,
7403 .name = "OpFMul",
7404 .opcode = 133,
62647405 .operands = &.{
62657406 .{ .kind = .id_result_type, .quantifier = .required },
62667407 .{ .kind = .id_result, .quantifier = .required },
62677408 .{ .kind = .id_ref, .quantifier = .required },
62687409 .{ .kind = .id_ref, .quantifier = .required },
6269 .{ .kind = .id_ref, .quantifier = .required },
6270 .{ .kind = .image_operands, .quantifier = .optional },
62717410 },
62727411 },
62737412 .{
6274 .name = "OpImageSampleDrefExplicitLod",
6275 .opcode = 90,
7413 .name = "OpUDiv",
7414 .opcode = 134,
62767415 .operands = &.{
62777416 .{ .kind = .id_result_type, .quantifier = .required },
62787417 .{ .kind = .id_result, .quantifier = .required },
62797418 .{ .kind = .id_ref, .quantifier = .required },
62807419 .{ .kind = .id_ref, .quantifier = .required },
6281 .{ .kind = .id_ref, .quantifier = .required },
6282 .{ .kind = .image_operands, .quantifier = .required },
62837420 },
62847421 },
62857422 .{
6286 .name = "OpImageSampleProjImplicitLod",
6287 .opcode = 91,
7423 .name = "OpSDiv",
7424 .opcode = 135,
62887425 .operands = &.{
62897426 .{ .kind = .id_result_type, .quantifier = .required },
62907427 .{ .kind = .id_result, .quantifier = .required },
62917428 .{ .kind = .id_ref, .quantifier = .required },
62927429 .{ .kind = .id_ref, .quantifier = .required },
6293 .{ .kind = .image_operands, .quantifier = .optional },
62947430 },
62957431 },
62967432 .{
6297 .name = "OpImageSampleProjExplicitLod",
6298 .opcode = 92,
7433 .name = "OpFDiv",
7434 .opcode = 136,
62997435 .operands = &.{
63007436 .{ .kind = .id_result_type, .quantifier = .required },
63017437 .{ .kind = .id_result, .quantifier = .required },
63027438 .{ .kind = .id_ref, .quantifier = .required },
63037439 .{ .kind = .id_ref, .quantifier = .required },
6304 .{ .kind = .image_operands, .quantifier = .required },
63057440 },
63067441 },
63077442 .{
6308 .name = "OpImageSampleProjDrefImplicitLod",
6309 .opcode = 93,
7443 .name = "OpUMod",
7444 .opcode = 137,
63107445 .operands = &.{
63117446 .{ .kind = .id_result_type, .quantifier = .required },
63127447 .{ .kind = .id_result, .quantifier = .required },
63137448 .{ .kind = .id_ref, .quantifier = .required },
63147449 .{ .kind = .id_ref, .quantifier = .required },
6315 .{ .kind = .id_ref, .quantifier = .required },
6316 .{ .kind = .image_operands, .quantifier = .optional },
63177450 },
63187451 },
63197452 .{
6320 .name = "OpImageSampleProjDrefExplicitLod",
6321 .opcode = 94,
7453 .name = "OpSRem",
7454 .opcode = 138,
63227455 .operands = &.{
63237456 .{ .kind = .id_result_type, .quantifier = .required },
63247457 .{ .kind = .id_result, .quantifier = .required },
63257458 .{ .kind = .id_ref, .quantifier = .required },
63267459 .{ .kind = .id_ref, .quantifier = .required },
6327 .{ .kind = .id_ref, .quantifier = .required },
6328 .{ .kind = .image_operands, .quantifier = .required },
63297460 },
63307461 },
63317462 .{
6332 .name = "OpImageFetch",
6333 .opcode = 95,
7463 .name = "OpSMod",
7464 .opcode = 139,
63347465 .operands = &.{
63357466 .{ .kind = .id_result_type, .quantifier = .required },
63367467 .{ .kind = .id_result, .quantifier = .required },
63377468 .{ .kind = .id_ref, .quantifier = .required },
63387469 .{ .kind = .id_ref, .quantifier = .required },
6339 .{ .kind = .image_operands, .quantifier = .optional },
63407470 },
63417471 },
63427472 .{
6343 .name = "OpImageGather",
6344 .opcode = 96,
7473 .name = "OpFRem",
7474 .opcode = 140,
63457475 .operands = &.{
63467476 .{ .kind = .id_result_type, .quantifier = .required },
63477477 .{ .kind = .id_result, .quantifier = .required },
63487478 .{ .kind = .id_ref, .quantifier = .required },
63497479 .{ .kind = .id_ref, .quantifier = .required },
6350 .{ .kind = .id_ref, .quantifier = .required },
6351 .{ .kind = .image_operands, .quantifier = .optional },
63527480 },
63537481 },
63547482 .{
6355 .name = "OpImageDrefGather",
6356 .opcode = 97,
7483 .name = "OpFMod",
7484 .opcode = 141,
63577485 .operands = &.{
63587486 .{ .kind = .id_result_type, .quantifier = .required },
63597487 .{ .kind = .id_result, .quantifier = .required },
63607488 .{ .kind = .id_ref, .quantifier = .required },
63617489 .{ .kind = .id_ref, .quantifier = .required },
6362 .{ .kind = .id_ref, .quantifier = .required },
6363 .{ .kind = .image_operands, .quantifier = .optional },
63647490 },
63657491 },
63667492 .{
6367 .name = "OpImageRead",
6368 .opcode = 98,
7493 .name = "OpVectorTimesScalar",
7494 .opcode = 142,
63697495 .operands = &.{
63707496 .{ .kind = .id_result_type, .quantifier = .required },
63717497 .{ .kind = .id_result, .quantifier = .required },
63727498 .{ .kind = .id_ref, .quantifier = .required },
63737499 .{ .kind = .id_ref, .quantifier = .required },
6374 .{ .kind = .image_operands, .quantifier = .optional },
63757500 },
63767501 },
63777502 .{
6378 .name = "OpImageWrite",
6379 .opcode = 99,
7503 .name = "OpMatrixTimesScalar",
7504 .opcode = 143,
63807505 .operands = &.{
7506 .{ .kind = .id_result_type, .quantifier = .required },
7507 .{ .kind = .id_result, .quantifier = .required },
63817508 .{ .kind = .id_ref, .quantifier = .required },
63827509 .{ .kind = .id_ref, .quantifier = .required },
6383 .{ .kind = .id_ref, .quantifier = .required },
6384 .{ .kind = .image_operands, .quantifier = .optional },
63857510 },
63867511 },
63877512 .{
6388 .name = "OpImage",
6389 .opcode = 100,
7513 .name = "OpVectorTimesMatrix",
7514 .opcode = 144,
63907515 .operands = &.{
63917516 .{ .kind = .id_result_type, .quantifier = .required },
63927517 .{ .kind = .id_result, .quantifier = .required },
63937518 .{ .kind = .id_ref, .quantifier = .required },
7519 .{ .kind = .id_ref, .quantifier = .required },
63947520 },
63957521 },
63967522 .{
6397 .name = "OpImageQueryFormat",
6398 .opcode = 101,
7523 .name = "OpMatrixTimesVector",
7524 .opcode = 145,
63997525 .operands = &.{
64007526 .{ .kind = .id_result_type, .quantifier = .required },
64017527 .{ .kind = .id_result, .quantifier = .required },
64027528 .{ .kind = .id_ref, .quantifier = .required },
7529 .{ .kind = .id_ref, .quantifier = .required },
64037530 },
64047531 },
64057532 .{
6406 .name = "OpImageQueryOrder",
6407 .opcode = 102,
7533 .name = "OpMatrixTimesMatrix",
7534 .opcode = 146,
64087535 .operands = &.{
64097536 .{ .kind = .id_result_type, .quantifier = .required },
64107537 .{ .kind = .id_result, .quantifier = .required },
64117538 .{ .kind = .id_ref, .quantifier = .required },
7539 .{ .kind = .id_ref, .quantifier = .required },
64127540 },
64137541 },
64147542 .{
6415 .name = "OpImageQuerySizeLod",
6416 .opcode = 103,
7543 .name = "OpOuterProduct",
7544 .opcode = 147,
64177545 .operands = &.{
64187546 .{ .kind = .id_result_type, .quantifier = .required },
64197547 .{ .kind = .id_result, .quantifier = .required },
......@@ -6422,17 +7550,18 @@ pub const InstructionSet = enum {
64227550 },
64237551 },
64247552 .{
6425 .name = "OpImageQuerySize",
6426 .opcode = 104,
7553 .name = "OpDot",
7554 .opcode = 148,
64277555 .operands = &.{
64287556 .{ .kind = .id_result_type, .quantifier = .required },
64297557 .{ .kind = .id_result, .quantifier = .required },
64307558 .{ .kind = .id_ref, .quantifier = .required },
7559 .{ .kind = .id_ref, .quantifier = .required },
64317560 },
64327561 },
64337562 .{
6434 .name = "OpImageQueryLod",
6435 .opcode = 105,
7563 .name = "OpIAddCarry",
7564 .opcode = 149,
64367565 .operands = &.{
64377566 .{ .kind = .id_result_type, .quantifier = .required },
64387567 .{ .kind = .id_result, .quantifier = .required },
......@@ -6441,35 +7570,38 @@ pub const InstructionSet = enum {
64417570 },
64427571 },
64437572 .{
6444 .name = "OpImageQueryLevels",
6445 .opcode = 106,
7573 .name = "OpISubBorrow",
7574 .opcode = 150,
64467575 .operands = &.{
64477576 .{ .kind = .id_result_type, .quantifier = .required },
64487577 .{ .kind = .id_result, .quantifier = .required },
64497578 .{ .kind = .id_ref, .quantifier = .required },
7579 .{ .kind = .id_ref, .quantifier = .required },
64507580 },
64517581 },
64527582 .{
6453 .name = "OpImageQuerySamples",
6454 .opcode = 107,
7583 .name = "OpUMulExtended",
7584 .opcode = 151,
64557585 .operands = &.{
64567586 .{ .kind = .id_result_type, .quantifier = .required },
64577587 .{ .kind = .id_result, .quantifier = .required },
64587588 .{ .kind = .id_ref, .quantifier = .required },
7589 .{ .kind = .id_ref, .quantifier = .required },
64597590 },
64607591 },
64617592 .{
6462 .name = "OpConvertFToU",
6463 .opcode = 109,
7593 .name = "OpSMulExtended",
7594 .opcode = 152,
64647595 .operands = &.{
64657596 .{ .kind = .id_result_type, .quantifier = .required },
64667597 .{ .kind = .id_result, .quantifier = .required },
64677598 .{ .kind = .id_ref, .quantifier = .required },
7599 .{ .kind = .id_ref, .quantifier = .required },
64687600 },
64697601 },
64707602 .{
6471 .name = "OpConvertFToS",
6472 .opcode = 110,
7603 .name = "OpAny",
7604 .opcode = 154,
64737605 .operands = &.{
64747606 .{ .kind = .id_result_type, .quantifier = .required },
64757607 .{ .kind = .id_result, .quantifier = .required },
......@@ -6477,8 +7609,8 @@ pub const InstructionSet = enum {
64777609 },
64787610 },
64797611 .{
6480 .name = "OpConvertSToF",
6481 .opcode = 111,
7612 .name = "OpAll",
7613 .opcode = 155,
64827614 .operands = &.{
64837615 .{ .kind = .id_result_type, .quantifier = .required },
64847616 .{ .kind = .id_result, .quantifier = .required },
......@@ -6486,8 +7618,8 @@ pub const InstructionSet = enum {
64867618 },
64877619 },
64887620 .{
6489 .name = "OpConvertUToF",
6490 .opcode = 112,
7621 .name = "OpIsNan",
7622 .opcode = 156,
64917623 .operands = &.{
64927624 .{ .kind = .id_result_type, .quantifier = .required },
64937625 .{ .kind = .id_result, .quantifier = .required },
......@@ -6495,8 +7627,8 @@ pub const InstructionSet = enum {
64957627 },
64967628 },
64977629 .{
6498 .name = "OpUConvert",
6499 .opcode = 113,
7630 .name = "OpIsInf",
7631 .opcode = 157,
65007632 .operands = &.{
65017633 .{ .kind = .id_result_type, .quantifier = .required },
65027634 .{ .kind = .id_result, .quantifier = .required },
......@@ -6504,8 +7636,8 @@ pub const InstructionSet = enum {
65047636 },
65057637 },
65067638 .{
6507 .name = "OpSConvert",
6508 .opcode = 114,
7639 .name = "OpIsFinite",
7640 .opcode = 158,
65097641 .operands = &.{
65107642 .{ .kind = .id_result_type, .quantifier = .required },
65117643 .{ .kind = .id_result, .quantifier = .required },
......@@ -6513,8 +7645,8 @@ pub const InstructionSet = enum {
65137645 },
65147646 },
65157647 .{
6516 .name = "OpFConvert",
6517 .opcode = 115,
7648 .name = "OpIsNormal",
7649 .opcode = 159,
65187650 .operands = &.{
65197651 .{ .kind = .id_result_type, .quantifier = .required },
65207652 .{ .kind = .id_result, .quantifier = .required },
......@@ -6522,8 +7654,8 @@ pub const InstructionSet = enum {
65227654 },
65237655 },
65247656 .{
6525 .name = "OpQuantizeToF16",
6526 .opcode = 116,
7657 .name = "OpSignBitSet",
7658 .opcode = 160,
65277659 .operands = &.{
65287660 .{ .kind = .id_result_type, .quantifier = .required },
65297661 .{ .kind = .id_result, .quantifier = .required },
......@@ -6531,72 +7663,78 @@ pub const InstructionSet = enum {
65317663 },
65327664 },
65337665 .{
6534 .name = "OpConvertPtrToU",
6535 .opcode = 117,
7666 .name = "OpLessOrGreater",
7667 .opcode = 161,
65367668 .operands = &.{
65377669 .{ .kind = .id_result_type, .quantifier = .required },
65387670 .{ .kind = .id_result, .quantifier = .required },
65397671 .{ .kind = .id_ref, .quantifier = .required },
7672 .{ .kind = .id_ref, .quantifier = .required },
65407673 },
65417674 },
65427675 .{
6543 .name = "OpSatConvertSToU",
6544 .opcode = 118,
7676 .name = "OpOrdered",
7677 .opcode = 162,
65457678 .operands = &.{
65467679 .{ .kind = .id_result_type, .quantifier = .required },
65477680 .{ .kind = .id_result, .quantifier = .required },
65487681 .{ .kind = .id_ref, .quantifier = .required },
7682 .{ .kind = .id_ref, .quantifier = .required },
65497683 },
65507684 },
65517685 .{
6552 .name = "OpSatConvertUToS",
6553 .opcode = 119,
7686 .name = "OpUnordered",
7687 .opcode = 163,
65547688 .operands = &.{
65557689 .{ .kind = .id_result_type, .quantifier = .required },
65567690 .{ .kind = .id_result, .quantifier = .required },
65577691 .{ .kind = .id_ref, .quantifier = .required },
7692 .{ .kind = .id_ref, .quantifier = .required },
65587693 },
65597694 },
65607695 .{
6561 .name = "OpConvertUToPtr",
6562 .opcode = 120,
7696 .name = "OpLogicalEqual",
7697 .opcode = 164,
65637698 .operands = &.{
65647699 .{ .kind = .id_result_type, .quantifier = .required },
65657700 .{ .kind = .id_result, .quantifier = .required },
65667701 .{ .kind = .id_ref, .quantifier = .required },
7702 .{ .kind = .id_ref, .quantifier = .required },
65677703 },
65687704 },
65697705 .{
6570 .name = "OpPtrCastToGeneric",
6571 .opcode = 121,
7706 .name = "OpLogicalNotEqual",
7707 .opcode = 165,
65727708 .operands = &.{
65737709 .{ .kind = .id_result_type, .quantifier = .required },
65747710 .{ .kind = .id_result, .quantifier = .required },
65757711 .{ .kind = .id_ref, .quantifier = .required },
7712 .{ .kind = .id_ref, .quantifier = .required },
65767713 },
65777714 },
65787715 .{
6579 .name = "OpGenericCastToPtr",
6580 .opcode = 122,
7716 .name = "OpLogicalOr",
7717 .opcode = 166,
65817718 .operands = &.{
65827719 .{ .kind = .id_result_type, .quantifier = .required },
65837720 .{ .kind = .id_result, .quantifier = .required },
65847721 .{ .kind = .id_ref, .quantifier = .required },
7722 .{ .kind = .id_ref, .quantifier = .required },
65857723 },
65867724 },
65877725 .{
6588 .name = "OpGenericCastToPtrExplicit",
6589 .opcode = 123,
7726 .name = "OpLogicalAnd",
7727 .opcode = 167,
65907728 .operands = &.{
65917729 .{ .kind = .id_result_type, .quantifier = .required },
65927730 .{ .kind = .id_result, .quantifier = .required },
65937731 .{ .kind = .id_ref, .quantifier = .required },
6594 .{ .kind = .storage_class, .quantifier = .required },
7732 .{ .kind = .id_ref, .quantifier = .required },
65957733 },
65967734 },
65977735 .{
6598 .name = "OpBitcast",
6599 .opcode = 124,
7736 .name = "OpLogicalNot",
7737 .opcode = 168,
66007738 .operands = &.{
66017739 .{ .kind = .id_result_type, .quantifier = .required },
66027740 .{ .kind = .id_result, .quantifier = .required },
......@@ -6604,26 +7742,29 @@ pub const InstructionSet = enum {
66047742 },
66057743 },
66067744 .{
6607 .name = "OpSNegate",
6608 .opcode = 126,
7745 .name = "OpSelect",
7746 .opcode = 169,
66097747 .operands = &.{
66107748 .{ .kind = .id_result_type, .quantifier = .required },
66117749 .{ .kind = .id_result, .quantifier = .required },
66127750 .{ .kind = .id_ref, .quantifier = .required },
7751 .{ .kind = .id_ref, .quantifier = .required },
7752 .{ .kind = .id_ref, .quantifier = .required },
66137753 },
66147754 },
66157755 .{
6616 .name = "OpFNegate",
6617 .opcode = 127,
7756 .name = "OpIEqual",
7757 .opcode = 170,
66187758 .operands = &.{
66197759 .{ .kind = .id_result_type, .quantifier = .required },
66207760 .{ .kind = .id_result, .quantifier = .required },
66217761 .{ .kind = .id_ref, .quantifier = .required },
7762 .{ .kind = .id_ref, .quantifier = .required },
66227763 },
66237764 },
66247765 .{
6625 .name = "OpIAdd",
6626 .opcode = 128,
7766 .name = "OpINotEqual",
7767 .opcode = 171,
66277768 .operands = &.{
66287769 .{ .kind = .id_result_type, .quantifier = .required },
66297770 .{ .kind = .id_result, .quantifier = .required },
......@@ -6632,8 +7773,8 @@ pub const InstructionSet = enum {
66327773 },
66337774 },
66347775 .{
6635 .name = "OpFAdd",
6636 .opcode = 129,
7776 .name = "OpUGreaterThan",
7777 .opcode = 172,
66377778 .operands = &.{
66387779 .{ .kind = .id_result_type, .quantifier = .required },
66397780 .{ .kind = .id_result, .quantifier = .required },
......@@ -6642,8 +7783,8 @@ pub const InstructionSet = enum {
66427783 },
66437784 },
66447785 .{
6645 .name = "OpISub",
6646 .opcode = 130,
7786 .name = "OpSGreaterThan",
7787 .opcode = 173,
66477788 .operands = &.{
66487789 .{ .kind = .id_result_type, .quantifier = .required },
66497790 .{ .kind = .id_result, .quantifier = .required },
......@@ -6652,8 +7793,8 @@ pub const InstructionSet = enum {
66527793 },
66537794 },
66547795 .{
6655 .name = "OpFSub",
6656 .opcode = 131,
7796 .name = "OpUGreaterThanEqual",
7797 .opcode = 174,
66577798 .operands = &.{
66587799 .{ .kind = .id_result_type, .quantifier = .required },
66597800 .{ .kind = .id_result, .quantifier = .required },
......@@ -6662,8 +7803,8 @@ pub const InstructionSet = enum {
66627803 },
66637804 },
66647805 .{
6665 .name = "OpIMul",
6666 .opcode = 132,
7806 .name = "OpSGreaterThanEqual",
7807 .opcode = 175,
66677808 .operands = &.{
66687809 .{ .kind = .id_result_type, .quantifier = .required },
66697810 .{ .kind = .id_result, .quantifier = .required },
......@@ -6672,8 +7813,8 @@ pub const InstructionSet = enum {
66727813 },
66737814 },
66747815 .{
6675 .name = "OpFMul",
6676 .opcode = 133,
7816 .name = "OpULessThan",
7817 .opcode = 176,
66777818 .operands = &.{
66787819 .{ .kind = .id_result_type, .quantifier = .required },
66797820 .{ .kind = .id_result, .quantifier = .required },
......@@ -6682,8 +7823,8 @@ pub const InstructionSet = enum {
66827823 },
66837824 },
66847825 .{
6685 .name = "OpUDiv",
6686 .opcode = 134,
7826 .name = "OpSLessThan",
7827 .opcode = 177,
66877828 .operands = &.{
66887829 .{ .kind = .id_result_type, .quantifier = .required },
66897830 .{ .kind = .id_result, .quantifier = .required },
......@@ -6692,8 +7833,8 @@ pub const InstructionSet = enum {
66927833 },
66937834 },
66947835 .{
6695 .name = "OpSDiv",
6696 .opcode = 135,
7836 .name = "OpULessThanEqual",
7837 .opcode = 178,
66977838 .operands = &.{
66987839 .{ .kind = .id_result_type, .quantifier = .required },
66997840 .{ .kind = .id_result, .quantifier = .required },
......@@ -6702,8 +7843,8 @@ pub const InstructionSet = enum {
67027843 },
67037844 },
67047845 .{
6705 .name = "OpFDiv",
6706 .opcode = 136,
7846 .name = "OpSLessThanEqual",
7847 .opcode = 179,
67077848 .operands = &.{
67087849 .{ .kind = .id_result_type, .quantifier = .required },
67097850 .{ .kind = .id_result, .quantifier = .required },
......@@ -6712,8 +7853,8 @@ pub const InstructionSet = enum {
67127853 },
67137854 },
67147855 .{
6715 .name = "OpUMod",
6716 .opcode = 137,
7856 .name = "OpFOrdEqual",
7857 .opcode = 180,
67177858 .operands = &.{
67187859 .{ .kind = .id_result_type, .quantifier = .required },
67197860 .{ .kind = .id_result, .quantifier = .required },
......@@ -6722,8 +7863,8 @@ pub const InstructionSet = enum {
67227863 },
67237864 },
67247865 .{
6725 .name = "OpSRem",
6726 .opcode = 138,
7866 .name = "OpFUnordEqual",
7867 .opcode = 181,
67277868 .operands = &.{
67287869 .{ .kind = .id_result_type, .quantifier = .required },
67297870 .{ .kind = .id_result, .quantifier = .required },
......@@ -6732,8 +7873,8 @@ pub const InstructionSet = enum {
67327873 },
67337874 },
67347875 .{
6735 .name = "OpSMod",
6736 .opcode = 139,
7876 .name = "OpFOrdNotEqual",
7877 .opcode = 182,
67377878 .operands = &.{
67387879 .{ .kind = .id_result_type, .quantifier = .required },
67397880 .{ .kind = .id_result, .quantifier = .required },
......@@ -6742,8 +7883,8 @@ pub const InstructionSet = enum {
67427883 },
67437884 },
67447885 .{
6745 .name = "OpFRem",
6746 .opcode = 140,
7886 .name = "OpFUnordNotEqual",
7887 .opcode = 183,
67477888 .operands = &.{
67487889 .{ .kind = .id_result_type, .quantifier = .required },
67497890 .{ .kind = .id_result, .quantifier = .required },
......@@ -6752,8 +7893,8 @@ pub const InstructionSet = enum {
67527893 },
67537894 },
67547895 .{
6755 .name = "OpFMod",
6756 .opcode = 141,
7896 .name = "OpFOrdLessThan",
7897 .opcode = 184,
67577898 .operands = &.{
67587899 .{ .kind = .id_result_type, .quantifier = .required },
67597900 .{ .kind = .id_result, .quantifier = .required },
......@@ -6762,8 +7903,8 @@ pub const InstructionSet = enum {
67627903 },
67637904 },
67647905 .{
6765 .name = "OpVectorTimesScalar",
6766 .opcode = 142,
7906 .name = "OpFUnordLessThan",
7907 .opcode = 185,
67677908 .operands = &.{
67687909 .{ .kind = .id_result_type, .quantifier = .required },
67697910 .{ .kind = .id_result, .quantifier = .required },
......@@ -6771,9 +7912,9 @@ pub const InstructionSet = enum {
67717912 .{ .kind = .id_ref, .quantifier = .required },
67727913 },
67737914 },
6774 .{
6775 .name = "OpMatrixTimesScalar",
6776 .opcode = 143,
7915 .{
7916 .name = "OpFOrdGreaterThan",
7917 .opcode = 186,
67777918 .operands = &.{
67787919 .{ .kind = .id_result_type, .quantifier = .required },
67797920 .{ .kind = .id_result, .quantifier = .required },
......@@ -6782,8 +7923,8 @@ pub const InstructionSet = enum {
67827923 },
67837924 },
67847925 .{
6785 .name = "OpVectorTimesMatrix",
6786 .opcode = 144,
7926 .name = "OpFUnordGreaterThan",
7927 .opcode = 187,
67877928 .operands = &.{
67887929 .{ .kind = .id_result_type, .quantifier = .required },
67897930 .{ .kind = .id_result, .quantifier = .required },
......@@ -6792,8 +7933,8 @@ pub const InstructionSet = enum {
67927933 },
67937934 },
67947935 .{
6795 .name = "OpMatrixTimesVector",
6796 .opcode = 145,
7936 .name = "OpFOrdLessThanEqual",
7937 .opcode = 188,
67977938 .operands = &.{
67987939 .{ .kind = .id_result_type, .quantifier = .required },
67997940 .{ .kind = .id_result, .quantifier = .required },
......@@ -6802,8 +7943,8 @@ pub const InstructionSet = enum {
68027943 },
68037944 },
68047945 .{
6805 .name = "OpMatrixTimesMatrix",
6806 .opcode = 146,
7946 .name = "OpFUnordLessThanEqual",
7947 .opcode = 189,
68077948 .operands = &.{
68087949 .{ .kind = .id_result_type, .quantifier = .required },
68097950 .{ .kind = .id_result, .quantifier = .required },
......@@ -6812,8 +7953,8 @@ pub const InstructionSet = enum {
68127953 },
68137954 },
68147955 .{
6815 .name = "OpOuterProduct",
6816 .opcode = 147,
7956 .name = "OpFOrdGreaterThanEqual",
7957 .opcode = 190,
68177958 .operands = &.{
68187959 .{ .kind = .id_result_type, .quantifier = .required },
68197960 .{ .kind = .id_result, .quantifier = .required },
......@@ -6822,8 +7963,8 @@ pub const InstructionSet = enum {
68227963 },
68237964 },
68247965 .{
6825 .name = "OpDot",
6826 .opcode = 148,
7966 .name = "OpFUnordGreaterThanEqual",
7967 .opcode = 191,
68277968 .operands = &.{
68287969 .{ .kind = .id_result_type, .quantifier = .required },
68297970 .{ .kind = .id_result, .quantifier = .required },
......@@ -6832,8 +7973,8 @@ pub const InstructionSet = enum {
68327973 },
68337974 },
68347975 .{
6835 .name = "OpIAddCarry",
6836 .opcode = 149,
7976 .name = "OpShiftRightLogical",
7977 .opcode = 194,
68377978 .operands = &.{
68387979 .{ .kind = .id_result_type, .quantifier = .required },
68397980 .{ .kind = .id_result, .quantifier = .required },
......@@ -6842,8 +7983,8 @@ pub const InstructionSet = enum {
68427983 },
68437984 },
68447985 .{
6845 .name = "OpISubBorrow",
6846 .opcode = 150,
7986 .name = "OpShiftRightArithmetic",
7987 .opcode = 195,
68477988 .operands = &.{
68487989 .{ .kind = .id_result_type, .quantifier = .required },
68497990 .{ .kind = .id_result, .quantifier = .required },
......@@ -6852,8 +7993,8 @@ pub const InstructionSet = enum {
68527993 },
68537994 },
68547995 .{
6855 .name = "OpUMulExtended",
6856 .opcode = 151,
7996 .name = "OpShiftLeftLogical",
7997 .opcode = 196,
68577998 .operands = &.{
68587999 .{ .kind = .id_result_type, .quantifier = .required },
68598000 .{ .kind = .id_result, .quantifier = .required },
......@@ -6862,8 +8003,8 @@ pub const InstructionSet = enum {
68628003 },
68638004 },
68648005 .{
6865 .name = "OpSMulExtended",
6866 .opcode = 152,
8006 .name = "OpBitwiseOr",
8007 .opcode = 197,
68678008 .operands = &.{
68688009 .{ .kind = .id_result_type, .quantifier = .required },
68698010 .{ .kind = .id_result, .quantifier = .required },
......@@ -6872,26 +8013,28 @@ pub const InstructionSet = enum {
68728013 },
68738014 },
68748015 .{
6875 .name = "OpAny",
6876 .opcode = 154,
8016 .name = "OpBitwiseXor",
8017 .opcode = 198,
68778018 .operands = &.{
68788019 .{ .kind = .id_result_type, .quantifier = .required },
68798020 .{ .kind = .id_result, .quantifier = .required },
68808021 .{ .kind = .id_ref, .quantifier = .required },
8022 .{ .kind = .id_ref, .quantifier = .required },
68818023 },
68828024 },
68838025 .{
6884 .name = "OpAll",
6885 .opcode = 155,
8026 .name = "OpBitwiseAnd",
8027 .opcode = 199,
68868028 .operands = &.{
68878029 .{ .kind = .id_result_type, .quantifier = .required },
68888030 .{ .kind = .id_result, .quantifier = .required },
68898031 .{ .kind = .id_ref, .quantifier = .required },
8032 .{ .kind = .id_ref, .quantifier = .required },
68908033 },
68918034 },
68928035 .{
6893 .name = "OpIsNan",
6894 .opcode = 156,
8036 .name = "OpNot",
8037 .opcode = 200,
68958038 .operands = &.{
68968039 .{ .kind = .id_result_type, .quantifier = .required },
68978040 .{ .kind = .id_result, .quantifier = .required },
......@@ -6899,35 +8042,42 @@ pub const InstructionSet = enum {
68998042 },
69008043 },
69018044 .{
6902 .name = "OpIsInf",
6903 .opcode = 157,
8045 .name = "OpBitFieldInsert",
8046 .opcode = 201,
69048047 .operands = &.{
69058048 .{ .kind = .id_result_type, .quantifier = .required },
69068049 .{ .kind = .id_result, .quantifier = .required },
69078050 .{ .kind = .id_ref, .quantifier = .required },
8051 .{ .kind = .id_ref, .quantifier = .required },
8052 .{ .kind = .id_ref, .quantifier = .required },
8053 .{ .kind = .id_ref, .quantifier = .required },
69088054 },
69098055 },
69108056 .{
6911 .name = "OpIsFinite",
6912 .opcode = 158,
8057 .name = "OpBitFieldSExtract",
8058 .opcode = 202,
69138059 .operands = &.{
69148060 .{ .kind = .id_result_type, .quantifier = .required },
69158061 .{ .kind = .id_result, .quantifier = .required },
69168062 .{ .kind = .id_ref, .quantifier = .required },
8063 .{ .kind = .id_ref, .quantifier = .required },
8064 .{ .kind = .id_ref, .quantifier = .required },
69178065 },
69188066 },
69198067 .{
6920 .name = "OpIsNormal",
6921 .opcode = 159,
8068 .name = "OpBitFieldUExtract",
8069 .opcode = 203,
69228070 .operands = &.{
69238071 .{ .kind = .id_result_type, .quantifier = .required },
69248072 .{ .kind = .id_result, .quantifier = .required },
69258073 .{ .kind = .id_ref, .quantifier = .required },
8074 .{ .kind = .id_ref, .quantifier = .required },
8075 .{ .kind = .id_ref, .quantifier = .required },
69268076 },
69278077 },
69288078 .{
6929 .name = "OpSignBitSet",
6930 .opcode = 160,
8079 .name = "OpBitReverse",
8080 .opcode = 204,
69318081 .operands = &.{
69328082 .{ .kind = .id_result_type, .quantifier = .required },
69338083 .{ .kind = .id_result, .quantifier = .required },
......@@ -6935,78 +8085,71 @@ pub const InstructionSet = enum {
69358085 },
69368086 },
69378087 .{
6938 .name = "OpLessOrGreater",
6939 .opcode = 161,
8088 .name = "OpBitCount",
8089 .opcode = 205,
69408090 .operands = &.{
69418091 .{ .kind = .id_result_type, .quantifier = .required },
69428092 .{ .kind = .id_result, .quantifier = .required },
69438093 .{ .kind = .id_ref, .quantifier = .required },
6944 .{ .kind = .id_ref, .quantifier = .required },
69458094 },
69468095 },
69478096 .{
6948 .name = "OpOrdered",
6949 .opcode = 162,
8097 .name = "OpDPdx",
8098 .opcode = 207,
69508099 .operands = &.{
69518100 .{ .kind = .id_result_type, .quantifier = .required },
69528101 .{ .kind = .id_result, .quantifier = .required },
69538102 .{ .kind = .id_ref, .quantifier = .required },
6954 .{ .kind = .id_ref, .quantifier = .required },
69558103 },
69568104 },
69578105 .{
6958 .name = "OpUnordered",
6959 .opcode = 163,
8106 .name = "OpDPdy",
8107 .opcode = 208,
69608108 .operands = &.{
69618109 .{ .kind = .id_result_type, .quantifier = .required },
69628110 .{ .kind = .id_result, .quantifier = .required },
69638111 .{ .kind = .id_ref, .quantifier = .required },
6964 .{ .kind = .id_ref, .quantifier = .required },
69658112 },
69668113 },
69678114 .{
6968 .name = "OpLogicalEqual",
6969 .opcode = 164,
8115 .name = "OpFwidth",
8116 .opcode = 209,
69708117 .operands = &.{
69718118 .{ .kind = .id_result_type, .quantifier = .required },
69728119 .{ .kind = .id_result, .quantifier = .required },
69738120 .{ .kind = .id_ref, .quantifier = .required },
6974 .{ .kind = .id_ref, .quantifier = .required },
69758121 },
69768122 },
69778123 .{
6978 .name = "OpLogicalNotEqual",
6979 .opcode = 165,
8124 .name = "OpDPdxFine",
8125 .opcode = 210,
69808126 .operands = &.{
69818127 .{ .kind = .id_result_type, .quantifier = .required },
69828128 .{ .kind = .id_result, .quantifier = .required },
69838129 .{ .kind = .id_ref, .quantifier = .required },
6984 .{ .kind = .id_ref, .quantifier = .required },
69858130 },
69868131 },
69878132 .{
6988 .name = "OpLogicalOr",
6989 .opcode = 166,
8133 .name = "OpDPdyFine",
8134 .opcode = 211,
69908135 .operands = &.{
69918136 .{ .kind = .id_result_type, .quantifier = .required },
69928137 .{ .kind = .id_result, .quantifier = .required },
69938138 .{ .kind = .id_ref, .quantifier = .required },
6994 .{ .kind = .id_ref, .quantifier = .required },
69958139 },
69968140 },
69978141 .{
6998 .name = "OpLogicalAnd",
6999 .opcode = 167,
8142 .name = "OpFwidthFine",
8143 .opcode = 212,
70008144 .operands = &.{
70018145 .{ .kind = .id_result_type, .quantifier = .required },
70028146 .{ .kind = .id_result, .quantifier = .required },
70038147 .{ .kind = .id_ref, .quantifier = .required },
7004 .{ .kind = .id_ref, .quantifier = .required },
70058148 },
70068149 },
70078150 .{
7008 .name = "OpLogicalNot",
7009 .opcode = 168,
8151 .name = "OpDPdxCoarse",
8152 .opcode = 213,
70108153 .operands = &.{
70118154 .{ .kind = .id_result_type, .quantifier = .required },
70128155 .{ .kind = .id_result, .quantifier = .required },
......@@ -7014,936 +8157,1028 @@ pub const InstructionSet = enum {
70148157 },
70158158 },
70168159 .{
7017 .name = "OpSelect",
7018 .opcode = 169,
8160 .name = "OpDPdyCoarse",
8161 .opcode = 214,
70198162 .operands = &.{
70208163 .{ .kind = .id_result_type, .quantifier = .required },
70218164 .{ .kind = .id_result, .quantifier = .required },
70228165 .{ .kind = .id_ref, .quantifier = .required },
7023 .{ .kind = .id_ref, .quantifier = .required },
7024 .{ .kind = .id_ref, .quantifier = .required },
70258166 },
70268167 },
70278168 .{
7028 .name = "OpIEqual",
7029 .opcode = 170,
8169 .name = "OpFwidthCoarse",
8170 .opcode = 215,
70308171 .operands = &.{
70318172 .{ .kind = .id_result_type, .quantifier = .required },
70328173 .{ .kind = .id_result, .quantifier = .required },
70338174 .{ .kind = .id_ref, .quantifier = .required },
7034 .{ .kind = .id_ref, .quantifier = .required },
70358175 },
70368176 },
70378177 .{
7038 .name = "OpINotEqual",
7039 .opcode = 171,
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,
70408190 .operands = &.{
7041 .{ .kind = .id_result_type, .quantifier = .required },
7042 .{ .kind = .id_result, .quantifier = .required },
7043 .{ .kind = .id_ref, .quantifier = .required },
70448191 .{ .kind = .id_ref, .quantifier = .required },
70458192 },
70468193 },
70478194 .{
7048 .name = "OpUGreaterThan",
7049 .opcode = 172,
8195 .name = "OpEndStreamPrimitive",
8196 .opcode = 221,
70508197 .operands = &.{
7051 .{ .kind = .id_result_type, .quantifier = .required },
7052 .{ .kind = .id_result, .quantifier = .required },
7053 .{ .kind = .id_ref, .quantifier = .required },
70548198 .{ .kind = .id_ref, .quantifier = .required },
70558199 },
70568200 },
70578201 .{
7058 .name = "OpSGreaterThan",
7059 .opcode = 173,
8202 .name = "OpControlBarrier",
8203 .opcode = 224,
70608204 .operands = &.{
7061 .{ .kind = .id_result_type, .quantifier = .required },
7062 .{ .kind = .id_result, .quantifier = .required },
7063 .{ .kind = .id_ref, .quantifier = .required },
7064 .{ .kind = .id_ref, .quantifier = .required },
8205 .{ .kind = .id_scope, .quantifier = .required },
8206 .{ .kind = .id_scope, .quantifier = .required },
8207 .{ .kind = .id_memory_semantics, .quantifier = .required },
70658208 },
70668209 },
70678210 .{
7068 .name = "OpUGreaterThanEqual",
7069 .opcode = 174,
8211 .name = "OpMemoryBarrier",
8212 .opcode = 225,
70708213 .operands = &.{
7071 .{ .kind = .id_result_type, .quantifier = .required },
7072 .{ .kind = .id_result, .quantifier = .required },
7073 .{ .kind = .id_ref, .quantifier = .required },
7074 .{ .kind = .id_ref, .quantifier = .required },
8214 .{ .kind = .id_scope, .quantifier = .required },
8215 .{ .kind = .id_memory_semantics, .quantifier = .required },
70758216 },
70768217 },
70778218 .{
7078 .name = "OpSGreaterThanEqual",
7079 .opcode = 175,
8219 .name = "OpAtomicLoad",
8220 .opcode = 227,
70808221 .operands = &.{
70818222 .{ .kind = .id_result_type, .quantifier = .required },
70828223 .{ .kind = .id_result, .quantifier = .required },
70838224 .{ .kind = .id_ref, .quantifier = .required },
7084 .{ .kind = .id_ref, .quantifier = .required },
8225 .{ .kind = .id_scope, .quantifier = .required },
8226 .{ .kind = .id_memory_semantics, .quantifier = .required },
70858227 },
70868228 },
70878229 .{
7088 .name = "OpULessThan",
7089 .opcode = 176,
8230 .name = "OpAtomicStore",
8231 .opcode = 228,
70908232 .operands = &.{
7091 .{ .kind = .id_result_type, .quantifier = .required },
7092 .{ .kind = .id_result, .quantifier = .required },
70938233 .{ .kind = .id_ref, .quantifier = .required },
8234 .{ .kind = .id_scope, .quantifier = .required },
8235 .{ .kind = .id_memory_semantics, .quantifier = .required },
70948236 .{ .kind = .id_ref, .quantifier = .required },
70958237 },
70968238 },
70978239 .{
7098 .name = "OpSLessThan",
7099 .opcode = 177,
8240 .name = "OpAtomicExchange",
8241 .opcode = 229,
71008242 .operands = &.{
71018243 .{ .kind = .id_result_type, .quantifier = .required },
71028244 .{ .kind = .id_result, .quantifier = .required },
71038245 .{ .kind = .id_ref, .quantifier = .required },
8246 .{ .kind = .id_scope, .quantifier = .required },
8247 .{ .kind = .id_memory_semantics, .quantifier = .required },
71048248 .{ .kind = .id_ref, .quantifier = .required },
71058249 },
71068250 },
71078251 .{
7108 .name = "OpULessThanEqual",
7109 .opcode = 178,
8252 .name = "OpAtomicCompareExchange",
8253 .opcode = 230,
71108254 .operands = &.{
71118255 .{ .kind = .id_result_type, .quantifier = .required },
71128256 .{ .kind = .id_result, .quantifier = .required },
71138257 .{ .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 },
71148262 .{ .kind = .id_ref, .quantifier = .required },
71158263 },
71168264 },
71178265 .{
7118 .name = "OpSLessThanEqual",
7119 .opcode = 179,
8266 .name = "OpAtomicCompareExchangeWeak",
8267 .opcode = 231,
71208268 .operands = &.{
71218269 .{ .kind = .id_result_type, .quantifier = .required },
71228270 .{ .kind = .id_result, .quantifier = .required },
71238271 .{ .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 },
71248276 .{ .kind = .id_ref, .quantifier = .required },
71258277 },
71268278 },
71278279 .{
7128 .name = "OpFOrdEqual",
7129 .opcode = 180,
8280 .name = "OpAtomicIIncrement",
8281 .opcode = 232,
71308282 .operands = &.{
71318283 .{ .kind = .id_result_type, .quantifier = .required },
71328284 .{ .kind = .id_result, .quantifier = .required },
71338285 .{ .kind = .id_ref, .quantifier = .required },
7134 .{ .kind = .id_ref, .quantifier = .required },
8286 .{ .kind = .id_scope, .quantifier = .required },
8287 .{ .kind = .id_memory_semantics, .quantifier = .required },
71358288 },
71368289 },
71378290 .{
7138 .name = "OpFUnordEqual",
7139 .opcode = 181,
8291 .name = "OpAtomicIDecrement",
8292 .opcode = 233,
71408293 .operands = &.{
71418294 .{ .kind = .id_result_type, .quantifier = .required },
71428295 .{ .kind = .id_result, .quantifier = .required },
71438296 .{ .kind = .id_ref, .quantifier = .required },
7144 .{ .kind = .id_ref, .quantifier = .required },
8297 .{ .kind = .id_scope, .quantifier = .required },
8298 .{ .kind = .id_memory_semantics, .quantifier = .required },
71458299 },
71468300 },
71478301 .{
7148 .name = "OpFOrdNotEqual",
7149 .opcode = 182,
8302 .name = "OpAtomicIAdd",
8303 .opcode = 234,
71508304 .operands = &.{
71518305 .{ .kind = .id_result_type, .quantifier = .required },
71528306 .{ .kind = .id_result, .quantifier = .required },
71538307 .{ .kind = .id_ref, .quantifier = .required },
8308 .{ .kind = .id_scope, .quantifier = .required },
8309 .{ .kind = .id_memory_semantics, .quantifier = .required },
71548310 .{ .kind = .id_ref, .quantifier = .required },
71558311 },
71568312 },
71578313 .{
7158 .name = "OpFUnordNotEqual",
7159 .opcode = 183,
8314 .name = "OpAtomicISub",
8315 .opcode = 235,
71608316 .operands = &.{
71618317 .{ .kind = .id_result_type, .quantifier = .required },
71628318 .{ .kind = .id_result, .quantifier = .required },
71638319 .{ .kind = .id_ref, .quantifier = .required },
8320 .{ .kind = .id_scope, .quantifier = .required },
8321 .{ .kind = .id_memory_semantics, .quantifier = .required },
71648322 .{ .kind = .id_ref, .quantifier = .required },
71658323 },
71668324 },
71678325 .{
7168 .name = "OpFOrdLessThan",
7169 .opcode = 184,
8326 .name = "OpAtomicSMin",
8327 .opcode = 236,
71708328 .operands = &.{
71718329 .{ .kind = .id_result_type, .quantifier = .required },
71728330 .{ .kind = .id_result, .quantifier = .required },
71738331 .{ .kind = .id_ref, .quantifier = .required },
8332 .{ .kind = .id_scope, .quantifier = .required },
8333 .{ .kind = .id_memory_semantics, .quantifier = .required },
71748334 .{ .kind = .id_ref, .quantifier = .required },
71758335 },
71768336 },
71778337 .{
7178 .name = "OpFUnordLessThan",
7179 .opcode = 185,
8338 .name = "OpAtomicUMin",
8339 .opcode = 237,
71808340 .operands = &.{
71818341 .{ .kind = .id_result_type, .quantifier = .required },
71828342 .{ .kind = .id_result, .quantifier = .required },
71838343 .{ .kind = .id_ref, .quantifier = .required },
8344 .{ .kind = .id_scope, .quantifier = .required },
8345 .{ .kind = .id_memory_semantics, .quantifier = .required },
71848346 .{ .kind = .id_ref, .quantifier = .required },
71858347 },
71868348 },
71878349 .{
7188 .name = "OpFOrdGreaterThan",
7189 .opcode = 186,
8350 .name = "OpAtomicSMax",
8351 .opcode = 238,
71908352 .operands = &.{
71918353 .{ .kind = .id_result_type, .quantifier = .required },
71928354 .{ .kind = .id_result, .quantifier = .required },
71938355 .{ .kind = .id_ref, .quantifier = .required },
8356 .{ .kind = .id_scope, .quantifier = .required },
8357 .{ .kind = .id_memory_semantics, .quantifier = .required },
71948358 .{ .kind = .id_ref, .quantifier = .required },
71958359 },
71968360 },
71978361 .{
7198 .name = "OpFUnordGreaterThan",
7199 .opcode = 187,
8362 .name = "OpAtomicUMax",
8363 .opcode = 239,
72008364 .operands = &.{
72018365 .{ .kind = .id_result_type, .quantifier = .required },
72028366 .{ .kind = .id_result, .quantifier = .required },
72038367 .{ .kind = .id_ref, .quantifier = .required },
8368 .{ .kind = .id_scope, .quantifier = .required },
8369 .{ .kind = .id_memory_semantics, .quantifier = .required },
72048370 .{ .kind = .id_ref, .quantifier = .required },
72058371 },
72068372 },
72078373 .{
7208 .name = "OpFOrdLessThanEqual",
7209 .opcode = 188,
8374 .name = "OpAtomicAnd",
8375 .opcode = 240,
72108376 .operands = &.{
72118377 .{ .kind = .id_result_type, .quantifier = .required },
72128378 .{ .kind = .id_result, .quantifier = .required },
72138379 .{ .kind = .id_ref, .quantifier = .required },
8380 .{ .kind = .id_scope, .quantifier = .required },
8381 .{ .kind = .id_memory_semantics, .quantifier = .required },
72148382 .{ .kind = .id_ref, .quantifier = .required },
72158383 },
72168384 },
72178385 .{
7218 .name = "OpFUnordLessThanEqual",
7219 .opcode = 189,
8386 .name = "OpAtomicOr",
8387 .opcode = 241,
72208388 .operands = &.{
72218389 .{ .kind = .id_result_type, .quantifier = .required },
72228390 .{ .kind = .id_result, .quantifier = .required },
72238391 .{ .kind = .id_ref, .quantifier = .required },
8392 .{ .kind = .id_scope, .quantifier = .required },
8393 .{ .kind = .id_memory_semantics, .quantifier = .required },
72248394 .{ .kind = .id_ref, .quantifier = .required },
72258395 },
72268396 },
72278397 .{
7228 .name = "OpFOrdGreaterThanEqual",
7229 .opcode = 190,
8398 .name = "OpAtomicXor",
8399 .opcode = 242,
72308400 .operands = &.{
72318401 .{ .kind = .id_result_type, .quantifier = .required },
72328402 .{ .kind = .id_result, .quantifier = .required },
72338403 .{ .kind = .id_ref, .quantifier = .required },
8404 .{ .kind = .id_scope, .quantifier = .required },
8405 .{ .kind = .id_memory_semantics, .quantifier = .required },
72348406 .{ .kind = .id_ref, .quantifier = .required },
72358407 },
72368408 },
72378409 .{
7238 .name = "OpFUnordGreaterThanEqual",
7239 .opcode = 191,
8410 .name = "OpPhi",
8411 .opcode = 245,
72408412 .operands = &.{
72418413 .{ .kind = .id_result_type, .quantifier = .required },
72428414 .{ .kind = .id_result, .quantifier = .required },
7243 .{ .kind = .id_ref, .quantifier = .required },
7244 .{ .kind = .id_ref, .quantifier = .required },
8415 .{ .kind = .pair_id_ref_id_ref, .quantifier = .variadic },
72458416 },
72468417 },
72478418 .{
7248 .name = "OpShiftRightLogical",
7249 .opcode = 194,
8419 .name = "OpLoopMerge",
8420 .opcode = 246,
72508421 .operands = &.{
7251 .{ .kind = .id_result_type, .quantifier = .required },
7252 .{ .kind = .id_result, .quantifier = .required },
72538422 .{ .kind = .id_ref, .quantifier = .required },
72548423 .{ .kind = .id_ref, .quantifier = .required },
8424 .{ .kind = .loop_control, .quantifier = .required },
72558425 },
72568426 },
72578427 .{
7258 .name = "OpShiftRightArithmetic",
7259 .opcode = 195,
8428 .name = "OpSelectionMerge",
8429 .opcode = 247,
72608430 .operands = &.{
7261 .{ .kind = .id_result_type, .quantifier = .required },
7262 .{ .kind = .id_result, .quantifier = .required },
7263 .{ .kind = .id_ref, .quantifier = .required },
72648431 .{ .kind = .id_ref, .quantifier = .required },
8432 .{ .kind = .selection_control, .quantifier = .required },
72658433 },
72668434 },
72678435 .{
7268 .name = "OpShiftLeftLogical",
7269 .opcode = 196,
8436 .name = "OpLabel",
8437 .opcode = 248,
72708438 .operands = &.{
7271 .{ .kind = .id_result_type, .quantifier = .required },
72728439 .{ .kind = .id_result, .quantifier = .required },
7273 .{ .kind = .id_ref, .quantifier = .required },
7274 .{ .kind = .id_ref, .quantifier = .required },
72758440 },
72768441 },
72778442 .{
7278 .name = "OpBitwiseOr",
7279 .opcode = 197,
8443 .name = "OpBranch",
8444 .opcode = 249,
72808445 .operands = &.{
7281 .{ .kind = .id_result_type, .quantifier = .required },
7282 .{ .kind = .id_result, .quantifier = .required },
7283 .{ .kind = .id_ref, .quantifier = .required },
72848446 .{ .kind = .id_ref, .quantifier = .required },
72858447 },
72868448 },
72878449 .{
7288 .name = "OpBitwiseXor",
7289 .opcode = 198,
8450 .name = "OpBranchConditional",
8451 .opcode = 250,
72908452 .operands = &.{
7291 .{ .kind = .id_result_type, .quantifier = .required },
7292 .{ .kind = .id_result, .quantifier = .required },
72938453 .{ .kind = .id_ref, .quantifier = .required },
72948454 .{ .kind = .id_ref, .quantifier = .required },
8455 .{ .kind = .id_ref, .quantifier = .required },
8456 .{ .kind = .literal_integer, .quantifier = .variadic },
72958457 },
72968458 },
72978459 .{
7298 .name = "OpBitwiseAnd",
7299 .opcode = 199,
8460 .name = "OpSwitch",
8461 .opcode = 251,
73008462 .operands = &.{
7301 .{ .kind = .id_result_type, .quantifier = .required },
7302 .{ .kind = .id_result, .quantifier = .required },
73038463 .{ .kind = .id_ref, .quantifier = .required },
73048464 .{ .kind = .id_ref, .quantifier = .required },
8465 .{ .kind = .pair_literal_integer_id_ref, .quantifier = .variadic },
73058466 },
73068467 },
73078468 .{
7308 .name = "OpNot",
7309 .opcode = 200,
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,
73108481 .operands = &.{
7311 .{ .kind = .id_result_type, .quantifier = .required },
7312 .{ .kind = .id_result, .quantifier = .required },
73138482 .{ .kind = .id_ref, .quantifier = .required },
73148483 },
73158484 },
73168485 .{
7317 .name = "OpBitFieldInsert",
7318 .opcode = 201,
8486 .name = "OpUnreachable",
8487 .opcode = 255,
8488 .operands = &.{},
8489 },
8490 .{
8491 .name = "OpLifetimeStart",
8492 .opcode = 256,
73198493 .operands = &.{
7320 .{ .kind = .id_result_type, .quantifier = .required },
7321 .{ .kind = .id_result, .quantifier = .required },
7322 .{ .kind = .id_ref, .quantifier = .required },
7323 .{ .kind = .id_ref, .quantifier = .required },
7324 .{ .kind = .id_ref, .quantifier = .required },
73258494 .{ .kind = .id_ref, .quantifier = .required },
8495 .{ .kind = .literal_integer, .quantifier = .required },
73268496 },
73278497 },
73288498 .{
7329 .name = "OpBitFieldSExtract",
7330 .opcode = 202,
8499 .name = "OpLifetimeStop",
8500 .opcode = 257,
73318501 .operands = &.{
7332 .{ .kind = .id_result_type, .quantifier = .required },
7333 .{ .kind = .id_result, .quantifier = .required },
7334 .{ .kind = .id_ref, .quantifier = .required },
7335 .{ .kind = .id_ref, .quantifier = .required },
73368502 .{ .kind = .id_ref, .quantifier = .required },
8503 .{ .kind = .literal_integer, .quantifier = .required },
73378504 },
73388505 },
73398506 .{
7340 .name = "OpBitFieldUExtract",
7341 .opcode = 203,
8507 .name = "OpGroupAsyncCopy",
8508 .opcode = 259,
73428509 .operands = &.{
73438510 .{ .kind = .id_result_type, .quantifier = .required },
73448511 .{ .kind = .id_result, .quantifier = .required },
8512 .{ .kind = .id_scope, .quantifier = .required },
8513 .{ .kind = .id_ref, .quantifier = .required },
8514 .{ .kind = .id_ref, .quantifier = .required },
73458515 .{ .kind = .id_ref, .quantifier = .required },
73468516 .{ .kind = .id_ref, .quantifier = .required },
73478517 .{ .kind = .id_ref, .quantifier = .required },
73488518 },
73498519 },
73508520 .{
7351 .name = "OpBitReverse",
7352 .opcode = 204,
8521 .name = "OpGroupWaitEvents",
8522 .opcode = 260,
73538523 .operands = &.{
7354 .{ .kind = .id_result_type, .quantifier = .required },
7355 .{ .kind = .id_result, .quantifier = .required },
8524 .{ .kind = .id_scope, .quantifier = .required },
8525 .{ .kind = .id_ref, .quantifier = .required },
73568526 .{ .kind = .id_ref, .quantifier = .required },
73578527 },
73588528 },
73598529 .{
7360 .name = "OpBitCount",
7361 .opcode = 205,
8530 .name = "OpGroupAll",
8531 .opcode = 261,
73628532 .operands = &.{
73638533 .{ .kind = .id_result_type, .quantifier = .required },
73648534 .{ .kind = .id_result, .quantifier = .required },
8535 .{ .kind = .id_scope, .quantifier = .required },
73658536 .{ .kind = .id_ref, .quantifier = .required },
73668537 },
73678538 },
73688539 .{
7369 .name = "OpDPdx",
7370 .opcode = 207,
8540 .name = "OpGroupAny",
8541 .opcode = 262,
73718542 .operands = &.{
73728543 .{ .kind = .id_result_type, .quantifier = .required },
73738544 .{ .kind = .id_result, .quantifier = .required },
8545 .{ .kind = .id_scope, .quantifier = .required },
73748546 .{ .kind = .id_ref, .quantifier = .required },
73758547 },
73768548 },
73778549 .{
7378 .name = "OpDPdy",
7379 .opcode = 208,
8550 .name = "OpGroupBroadcast",
8551 .opcode = 263,
73808552 .operands = &.{
73818553 .{ .kind = .id_result_type, .quantifier = .required },
73828554 .{ .kind = .id_result, .quantifier = .required },
8555 .{ .kind = .id_scope, .quantifier = .required },
8556 .{ .kind = .id_ref, .quantifier = .required },
73838557 .{ .kind = .id_ref, .quantifier = .required },
73848558 },
73858559 },
73868560 .{
7387 .name = "OpFwidth",
7388 .opcode = 209,
8561 .name = "OpGroupIAdd",
8562 .opcode = 264,
73898563 .operands = &.{
73908564 .{ .kind = .id_result_type, .quantifier = .required },
73918565 .{ .kind = .id_result, .quantifier = .required },
8566 .{ .kind = .id_scope, .quantifier = .required },
8567 .{ .kind = .group_operation, .quantifier = .required },
73928568 .{ .kind = .id_ref, .quantifier = .required },
73938569 },
73948570 },
73958571 .{
7396 .name = "OpDPdxFine",
7397 .opcode = 210,
8572 .name = "OpGroupFAdd",
8573 .opcode = 265,
73988574 .operands = &.{
73998575 .{ .kind = .id_result_type, .quantifier = .required },
74008576 .{ .kind = .id_result, .quantifier = .required },
8577 .{ .kind = .id_scope, .quantifier = .required },
8578 .{ .kind = .group_operation, .quantifier = .required },
74018579 .{ .kind = .id_ref, .quantifier = .required },
74028580 },
74038581 },
74048582 .{
7405 .name = "OpDPdyFine",
7406 .opcode = 211,
8583 .name = "OpGroupFMin",
8584 .opcode = 266,
74078585 .operands = &.{
74088586 .{ .kind = .id_result_type, .quantifier = .required },
74098587 .{ .kind = .id_result, .quantifier = .required },
8588 .{ .kind = .id_scope, .quantifier = .required },
8589 .{ .kind = .group_operation, .quantifier = .required },
74108590 .{ .kind = .id_ref, .quantifier = .required },
74118591 },
74128592 },
74138593 .{
7414 .name = "OpFwidthFine",
7415 .opcode = 212,
8594 .name = "OpGroupUMin",
8595 .opcode = 267,
74168596 .operands = &.{
74178597 .{ .kind = .id_result_type, .quantifier = .required },
74188598 .{ .kind = .id_result, .quantifier = .required },
8599 .{ .kind = .id_scope, .quantifier = .required },
8600 .{ .kind = .group_operation, .quantifier = .required },
74198601 .{ .kind = .id_ref, .quantifier = .required },
74208602 },
74218603 },
74228604 .{
7423 .name = "OpDPdxCoarse",
7424 .opcode = 213,
8605 .name = "OpGroupSMin",
8606 .opcode = 268,
74258607 .operands = &.{
74268608 .{ .kind = .id_result_type, .quantifier = .required },
74278609 .{ .kind = .id_result, .quantifier = .required },
8610 .{ .kind = .id_scope, .quantifier = .required },
8611 .{ .kind = .group_operation, .quantifier = .required },
74288612 .{ .kind = .id_ref, .quantifier = .required },
74298613 },
74308614 },
74318615 .{
7432 .name = "OpDPdyCoarse",
7433 .opcode = 214,
8616 .name = "OpGroupFMax",
8617 .opcode = 269,
74348618 .operands = &.{
74358619 .{ .kind = .id_result_type, .quantifier = .required },
74368620 .{ .kind = .id_result, .quantifier = .required },
8621 .{ .kind = .id_scope, .quantifier = .required },
8622 .{ .kind = .group_operation, .quantifier = .required },
74378623 .{ .kind = .id_ref, .quantifier = .required },
74388624 },
74398625 },
74408626 .{
7441 .name = "OpFwidthCoarse",
7442 .opcode = 215,
8627 .name = "OpGroupUMax",
8628 .opcode = 270,
74438629 .operands = &.{
74448630 .{ .kind = .id_result_type, .quantifier = .required },
74458631 .{ .kind = .id_result, .quantifier = .required },
8632 .{ .kind = .id_scope, .quantifier = .required },
8633 .{ .kind = .group_operation, .quantifier = .required },
74468634 .{ .kind = .id_ref, .quantifier = .required },
74478635 },
74488636 },
74498637 .{
7450 .name = "OpEmitVertex",
7451 .opcode = 218,
7452 .operands = &.{},
7453 },
7454 .{
7455 .name = "OpEndPrimitive",
7456 .opcode = 219,
7457 .operands = &.{},
7458 },
7459 .{
7460 .name = "OpEmitStreamVertex",
7461 .opcode = 220,
8638 .name = "OpGroupSMax",
8639 .opcode = 271,
74628640 .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 },
74638645 .{ .kind = .id_ref, .quantifier = .required },
74648646 },
74658647 },
74668648 .{
7467 .name = "OpEndStreamPrimitive",
7468 .opcode = 221,
8649 .name = "OpReadPipe",
8650 .opcode = 274,
74698651 .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 },
74708657 .{ .kind = .id_ref, .quantifier = .required },
74718658 },
74728659 },
74738660 .{
7474 .name = "OpControlBarrier",
7475 .opcode = 224,
8661 .name = "OpWritePipe",
8662 .opcode = 275,
74768663 .operands = &.{
7477 .{ .kind = .id_scope, .quantifier = .required },
7478 .{ .kind = .id_scope, .quantifier = .required },
7479 .{ .kind = .id_memory_semantics, .quantifier = .required },
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 },
74808670 },
74818671 },
74828672 .{
7483 .name = "OpMemoryBarrier",
7484 .opcode = 225,
8673 .name = "OpReservedReadPipe",
8674 .opcode = 276,
74858675 .operands = &.{
7486 .{ .kind = .id_scope, .quantifier = .required },
7487 .{ .kind = .id_memory_semantics, .quantifier = .required },
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 },
74888684 },
74898685 },
74908686 .{
7491 .name = "OpAtomicLoad",
7492 .opcode = 227,
8687 .name = "OpReservedWritePipe",
8688 .opcode = 277,
74938689 .operands = &.{
74948690 .{ .kind = .id_result_type, .quantifier = .required },
74958691 .{ .kind = .id_result, .quantifier = .required },
74968692 .{ .kind = .id_ref, .quantifier = .required },
7497 .{ .kind = .id_scope, .quantifier = .required },
7498 .{ .kind = .id_memory_semantics, .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 },
74998698 },
75008699 },
75018700 .{
7502 .name = "OpAtomicStore",
7503 .opcode = 228,
8701 .name = "OpReserveReadPipePackets",
8702 .opcode = 278,
75048703 .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 },
75058708 .{ .kind = .id_ref, .quantifier = .required },
7506 .{ .kind = .id_scope, .quantifier = .required },
7507 .{ .kind = .id_memory_semantics, .quantifier = .required },
75088709 .{ .kind = .id_ref, .quantifier = .required },
75098710 },
75108711 },
75118712 .{
7512 .name = "OpAtomicExchange",
7513 .opcode = 229,
8713 .name = "OpReserveWritePipePackets",
8714 .opcode = 279,
75148715 .operands = &.{
75158716 .{ .kind = .id_result_type, .quantifier = .required },
75168717 .{ .kind = .id_result, .quantifier = .required },
75178718 .{ .kind = .id_ref, .quantifier = .required },
7518 .{ .kind = .id_scope, .quantifier = .required },
7519 .{ .kind = .id_memory_semantics, .quantifier = .required },
8719 .{ .kind = .id_ref, .quantifier = .required },
8720 .{ .kind = .id_ref, .quantifier = .required },
75208721 .{ .kind = .id_ref, .quantifier = .required },
75218722 },
75228723 },
75238724 .{
7524 .name = "OpAtomicCompareExchange",
7525 .opcode = 230,
8725 .name = "OpCommitReadPipe",
8726 .opcode = 280,
75268727 .operands = &.{
7527 .{ .kind = .id_result_type, .quantifier = .required },
7528 .{ .kind = .id_result, .quantifier = .required },
75298728 .{ .kind = .id_ref, .quantifier = .required },
7530 .{ .kind = .id_scope, .quantifier = .required },
7531 .{ .kind = .id_memory_semantics, .quantifier = .required },
7532 .{ .kind = .id_memory_semantics, .quantifier = .required },
8729 .{ .kind = .id_ref, .quantifier = .required },
75338730 .{ .kind = .id_ref, .quantifier = .required },
75348731 .{ .kind = .id_ref, .quantifier = .required },
75358732 },
75368733 },
75378734 .{
7538 .name = "OpAtomicCompareExchangeWeak",
7539 .opcode = 231,
8735 .name = "OpCommitWritePipe",
8736 .opcode = 281,
75408737 .operands = &.{
7541 .{ .kind = .id_result_type, .quantifier = .required },
7542 .{ .kind = .id_result, .quantifier = .required },
75438738 .{ .kind = .id_ref, .quantifier = .required },
7544 .{ .kind = .id_scope, .quantifier = .required },
7545 .{ .kind = .id_memory_semantics, .quantifier = .required },
7546 .{ .kind = .id_memory_semantics, .quantifier = .required },
8739 .{ .kind = .id_ref, .quantifier = .required },
75478740 .{ .kind = .id_ref, .quantifier = .required },
75488741 .{ .kind = .id_ref, .quantifier = .required },
75498742 },
75508743 },
75518744 .{
7552 .name = "OpAtomicIIncrement",
7553 .opcode = 232,
8745 .name = "OpIsValidReserveId",
8746 .opcode = 282,
75548747 .operands = &.{
75558748 .{ .kind = .id_result_type, .quantifier = .required },
75568749 .{ .kind = .id_result, .quantifier = .required },
75578750 .{ .kind = .id_ref, .quantifier = .required },
7558 .{ .kind = .id_scope, .quantifier = .required },
7559 .{ .kind = .id_memory_semantics, .quantifier = .required },
75608751 },
75618752 },
75628753 .{
7563 .name = "OpAtomicIDecrement",
7564 .opcode = 233,
8754 .name = "OpGetNumPipePackets",
8755 .opcode = 283,
75658756 .operands = &.{
75668757 .{ .kind = .id_result_type, .quantifier = .required },
75678758 .{ .kind = .id_result, .quantifier = .required },
75688759 .{ .kind = .id_ref, .quantifier = .required },
7569 .{ .kind = .id_scope, .quantifier = .required },
7570 .{ .kind = .id_memory_semantics, .quantifier = .required },
8760 .{ .kind = .id_ref, .quantifier = .required },
8761 .{ .kind = .id_ref, .quantifier = .required },
75718762 },
75728763 },
75738764 .{
7574 .name = "OpAtomicIAdd",
7575 .opcode = 234,
8765 .name = "OpGetMaxPipePackets",
8766 .opcode = 284,
75768767 .operands = &.{
75778768 .{ .kind = .id_result_type, .quantifier = .required },
75788769 .{ .kind = .id_result, .quantifier = .required },
75798770 .{ .kind = .id_ref, .quantifier = .required },
7580 .{ .kind = .id_scope, .quantifier = .required },
7581 .{ .kind = .id_memory_semantics, .quantifier = .required },
8771 .{ .kind = .id_ref, .quantifier = .required },
75828772 .{ .kind = .id_ref, .quantifier = .required },
75838773 },
75848774 },
75858775 .{
7586 .name = "OpAtomicISub",
7587 .opcode = 235,
8776 .name = "OpGroupReserveReadPipePackets",
8777 .opcode = 285,
75888778 .operands = &.{
75898779 .{ .kind = .id_result_type, .quantifier = .required },
75908780 .{ .kind = .id_result, .quantifier = .required },
7591 .{ .kind = .id_ref, .quantifier = .required },
75928781 .{ .kind = .id_scope, .quantifier = .required },
7593 .{ .kind = .id_memory_semantics, .quantifier = .required },
8782 .{ .kind = .id_ref, .quantifier = .required },
8783 .{ .kind = .id_ref, .quantifier = .required },
8784 .{ .kind = .id_ref, .quantifier = .required },
75948785 .{ .kind = .id_ref, .quantifier = .required },
75958786 },
75968787 },
75978788 .{
7598 .name = "OpAtomicSMin",
7599 .opcode = 236,
8789 .name = "OpGroupReserveWritePipePackets",
8790 .opcode = 286,
76008791 .operands = &.{
76018792 .{ .kind = .id_result_type, .quantifier = .required },
76028793 .{ .kind = .id_result, .quantifier = .required },
7603 .{ .kind = .id_ref, .quantifier = .required },
76048794 .{ .kind = .id_scope, .quantifier = .required },
7605 .{ .kind = .id_memory_semantics, .quantifier = .required },
8795 .{ .kind = .id_ref, .quantifier = .required },
8796 .{ .kind = .id_ref, .quantifier = .required },
8797 .{ .kind = .id_ref, .quantifier = .required },
76068798 .{ .kind = .id_ref, .quantifier = .required },
76078799 },
76088800 },
76098801 .{
7610 .name = "OpAtomicUMin",
7611 .opcode = 237,
8802 .name = "OpGroupCommitReadPipe",
8803 .opcode = 287,
76128804 .operands = &.{
7613 .{ .kind = .id_result_type, .quantifier = .required },
7614 .{ .kind = .id_result, .quantifier = .required },
8805 .{ .kind = .id_scope, .quantifier = .required },
8806 .{ .kind = .id_ref, .quantifier = .required },
8807 .{ .kind = .id_ref, .quantifier = .required },
8808 .{ .kind = .id_ref, .quantifier = .required },
76158809 .{ .kind = .id_ref, .quantifier = .required },
8810 },
8811 },
8812 .{
8813 .name = "OpGroupCommitWritePipe",
8814 .opcode = 288,
8815 .operands = &.{
76168816 .{ .kind = .id_scope, .quantifier = .required },
7617 .{ .kind = .id_memory_semantics, .quantifier = .required },
8817 .{ .kind = .id_ref, .quantifier = .required },
8818 .{ .kind = .id_ref, .quantifier = .required },
8819 .{ .kind = .id_ref, .quantifier = .required },
76188820 .{ .kind = .id_ref, .quantifier = .required },
76198821 },
76208822 },
76218823 .{
7622 .name = "OpAtomicSMax",
7623 .opcode = 238,
8824 .name = "OpEnqueueMarker",
8825 .opcode = 291,
76248826 .operands = &.{
76258827 .{ .kind = .id_result_type, .quantifier = .required },
76268828 .{ .kind = .id_result, .quantifier = .required },
76278829 .{ .kind = .id_ref, .quantifier = .required },
7628 .{ .kind = .id_scope, .quantifier = .required },
7629 .{ .kind = .id_memory_semantics, .quantifier = .required },
8830 .{ .kind = .id_ref, .quantifier = .required },
8831 .{ .kind = .id_ref, .quantifier = .required },
76308832 .{ .kind = .id_ref, .quantifier = .required },
76318833 },
76328834 },
76338835 .{
7634 .name = "OpAtomicUMax",
7635 .opcode = 239,
8836 .name = "OpEnqueueKernel",
8837 .opcode = 292,
76368838 .operands = &.{
76378839 .{ .kind = .id_result_type, .quantifier = .required },
76388840 .{ .kind = .id_result, .quantifier = .required },
76398841 .{ .kind = .id_ref, .quantifier = .required },
7640 .{ .kind = .id_scope, .quantifier = .required },
7641 .{ .kind = .id_memory_semantics, .quantifier = .required },
76428842 .{ .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 },
76438852 },
76448853 },
76458854 .{
7646 .name = "OpAtomicAnd",
7647 .opcode = 240,
8855 .name = "OpGetKernelNDrangeSubGroupCount",
8856 .opcode = 293,
76488857 .operands = &.{
76498858 .{ .kind = .id_result_type, .quantifier = .required },
76508859 .{ .kind = .id_result, .quantifier = .required },
76518860 .{ .kind = .id_ref, .quantifier = .required },
7652 .{ .kind = .id_scope, .quantifier = .required },
7653 .{ .kind = .id_memory_semantics, .quantifier = .required },
8861 .{ .kind = .id_ref, .quantifier = .required },
8862 .{ .kind = .id_ref, .quantifier = .required },
8863 .{ .kind = .id_ref, .quantifier = .required },
76548864 .{ .kind = .id_ref, .quantifier = .required },
76558865 },
76568866 },
76578867 .{
7658 .name = "OpAtomicOr",
7659 .opcode = 241,
8868 .name = "OpGetKernelNDrangeMaxSubGroupSize",
8869 .opcode = 294,
76608870 .operands = &.{
76618871 .{ .kind = .id_result_type, .quantifier = .required },
76628872 .{ .kind = .id_result, .quantifier = .required },
76638873 .{ .kind = .id_ref, .quantifier = .required },
7664 .{ .kind = .id_scope, .quantifier = .required },
7665 .{ .kind = .id_memory_semantics, .quantifier = .required },
8874 .{ .kind = .id_ref, .quantifier = .required },
8875 .{ .kind = .id_ref, .quantifier = .required },
8876 .{ .kind = .id_ref, .quantifier = .required },
76668877 .{ .kind = .id_ref, .quantifier = .required },
76678878 },
76688879 },
76698880 .{
7670 .name = "OpAtomicXor",
7671 .opcode = 242,
8881 .name = "OpGetKernelWorkGroupSize",
8882 .opcode = 295,
76728883 .operands = &.{
76738884 .{ .kind = .id_result_type, .quantifier = .required },
76748885 .{ .kind = .id_result, .quantifier = .required },
76758886 .{ .kind = .id_ref, .quantifier = .required },
7676 .{ .kind = .id_scope, .quantifier = .required },
7677 .{ .kind = .id_memory_semantics, .quantifier = .required },
8887 .{ .kind = .id_ref, .quantifier = .required },
8888 .{ .kind = .id_ref, .quantifier = .required },
76788889 .{ .kind = .id_ref, .quantifier = .required },
76798890 },
76808891 },
76818892 .{
7682 .name = "OpPhi",
7683 .opcode = 245,
8893 .name = "OpGetKernelPreferredWorkGroupSizeMultiple",
8894 .opcode = 296,
76848895 .operands = &.{
76858896 .{ .kind = .id_result_type, .quantifier = .required },
76868897 .{ .kind = .id_result, .quantifier = .required },
7687 .{ .kind = .pair_id_ref_id_ref, .quantifier = .variadic },
8898 .{ .kind = .id_ref, .quantifier = .required },
8899 .{ .kind = .id_ref, .quantifier = .required },
8900 .{ .kind = .id_ref, .quantifier = .required },
8901 .{ .kind = .id_ref, .quantifier = .required },
76888902 },
76898903 },
76908904 .{
7691 .name = "OpLoopMerge",
7692 .opcode = 246,
8905 .name = "OpRetainEvent",
8906 .opcode = 297,
76938907 .operands = &.{
76948908 .{ .kind = .id_ref, .quantifier = .required },
7695 .{ .kind = .id_ref, .quantifier = .required },
7696 .{ .kind = .loop_control, .quantifier = .required },
76978909 },
76988910 },
76998911 .{
7700 .name = "OpSelectionMerge",
7701 .opcode = 247,
8912 .name = "OpReleaseEvent",
8913 .opcode = 298,
77028914 .operands = &.{
77038915 .{ .kind = .id_ref, .quantifier = .required },
7704 .{ .kind = .selection_control, .quantifier = .required },
77058916 },
77068917 },
77078918 .{
7708 .name = "OpLabel",
7709 .opcode = 248,
8919 .name = "OpCreateUserEvent",
8920 .opcode = 299,
77108921 .operands = &.{
8922 .{ .kind = .id_result_type, .quantifier = .required },
77118923 .{ .kind = .id_result, .quantifier = .required },
77128924 },
77138925 },
77148926 .{
7715 .name = "OpBranch",
7716 .opcode = 249,
8927 .name = "OpIsValidEvent",
8928 .opcode = 300,
77178929 .operands = &.{
8930 .{ .kind = .id_result_type, .quantifier = .required },
8931 .{ .kind = .id_result, .quantifier = .required },
77188932 .{ .kind = .id_ref, .quantifier = .required },
77198933 },
77208934 },
77218935 .{
7722 .name = "OpBranchConditional",
7723 .opcode = 250,
8936 .name = "OpSetUserEventStatus",
8937 .opcode = 301,
77248938 .operands = &.{
77258939 .{ .kind = .id_ref, .quantifier = .required },
77268940 .{ .kind = .id_ref, .quantifier = .required },
7727 .{ .kind = .id_ref, .quantifier = .required },
7728 .{ .kind = .literal_integer, .quantifier = .variadic },
77298941 },
77308942 },
77318943 .{
7732 .name = "OpSwitch",
7733 .opcode = 251,
8944 .name = "OpCaptureEventProfilingInfo",
8945 .opcode = 302,
77348946 .operands = &.{
77358947 .{ .kind = .id_ref, .quantifier = .required },
77368948 .{ .kind = .id_ref, .quantifier = .required },
7737 .{ .kind = .pair_literal_integer_id_ref, .quantifier = .variadic },
8949 .{ .kind = .id_ref, .quantifier = .required },
77388950 },
77398951 },
77408952 .{
7741 .name = "OpKill",
7742 .opcode = 252,
7743 .operands = &.{},
7744 },
7745 .{
7746 .name = "OpReturn",
7747 .opcode = 253,
7748 .operands = &.{},
8953 .name = "OpGetDefaultQueue",
8954 .opcode = 303,
8955 .operands = &.{
8956 .{ .kind = .id_result_type, .quantifier = .required },
8957 .{ .kind = .id_result, .quantifier = .required },
8958 },
77498959 },
77508960 .{
7751 .name = "OpReturnValue",
7752 .opcode = 254,
8961 .name = "OpBuildNDRange",
8962 .opcode = 304,
77538963 .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 },
77548968 .{ .kind = .id_ref, .quantifier = .required },
77558969 },
77568970 },
77578971 .{
7758 .name = "OpUnreachable",
7759 .opcode = 255,
7760 .operands = &.{},
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 },
77618981 },
77628982 .{
7763 .name = "OpLifetimeStart",
7764 .opcode = 256,
8983 .name = "OpImageSparseSampleExplicitLod",
8984 .opcode = 306,
77658985 .operands = &.{
8986 .{ .kind = .id_result_type, .quantifier = .required },
8987 .{ .kind = .id_result, .quantifier = .required },
77668988 .{ .kind = .id_ref, .quantifier = .required },
7767 .{ .kind = .literal_integer, .quantifier = .required },
8989 .{ .kind = .id_ref, .quantifier = .required },
8990 .{ .kind = .image_operands, .quantifier = .required },
77688991 },
77698992 },
77708993 .{
7771 .name = "OpLifetimeStop",
7772 .opcode = 257,
8994 .name = "OpImageSparseSampleDrefImplicitLod",
8995 .opcode = 307,
77738996 .operands = &.{
8997 .{ .kind = .id_result_type, .quantifier = .required },
8998 .{ .kind = .id_result, .quantifier = .required },
77748999 .{ .kind = .id_ref, .quantifier = .required },
7775 .{ .kind = .literal_integer, .quantifier = .required },
9000 .{ .kind = .id_ref, .quantifier = .required },
9001 .{ .kind = .id_ref, .quantifier = .required },
9002 .{ .kind = .image_operands, .quantifier = .optional },
77769003 },
77779004 },
77789005 .{
7779 .name = "OpGroupAsyncCopy",
7780 .opcode = 259,
9006 .name = "OpImageSparseSampleDrefExplicitLod",
9007 .opcode = 308,
77819008 .operands = &.{
77829009 .{ .kind = .id_result_type, .quantifier = .required },
77839010 .{ .kind = .id_result, .quantifier = .required },
7784 .{ .kind = .id_scope, .quantifier = .required },
77859011 .{ .kind = .id_ref, .quantifier = .required },
77869012 .{ .kind = .id_ref, .quantifier = .required },
77879013 .{ .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 },
77889023 .{ .kind = .id_ref, .quantifier = .required },
77899024 .{ .kind = .id_ref, .quantifier = .required },
9025 .{ .kind = .image_operands, .quantifier = .optional },
77909026 },
77919027 },
77929028 .{
7793 .name = "OpGroupWaitEvents",
7794 .opcode = 260,
9029 .name = "OpImageSparseSampleProjExplicitLod",
9030 .opcode = 310,
77959031 .operands = &.{
7796 .{ .kind = .id_scope, .quantifier = .required },
9032 .{ .kind = .id_result_type, .quantifier = .required },
9033 .{ .kind = .id_result, .quantifier = .required },
77979034 .{ .kind = .id_ref, .quantifier = .required },
77989035 .{ .kind = .id_ref, .quantifier = .required },
9036 .{ .kind = .image_operands, .quantifier = .required },
77999037 },
78009038 },
78019039 .{
7802 .name = "OpGroupAll",
7803 .opcode = 261,
9040 .name = "OpImageSparseSampleProjDrefImplicitLod",
9041 .opcode = 311,
78049042 .operands = &.{
78059043 .{ .kind = .id_result_type, .quantifier = .required },
78069044 .{ .kind = .id_result, .quantifier = .required },
7807 .{ .kind = .id_scope, .quantifier = .required },
78089045 .{ .kind = .id_ref, .quantifier = .required },
9046 .{ .kind = .id_ref, .quantifier = .required },
9047 .{ .kind = .id_ref, .quantifier = .required },
9048 .{ .kind = .image_operands, .quantifier = .optional },
78099049 },
78109050 },
78119051 .{
7812 .name = "OpGroupAny",
7813 .opcode = 262,
9052 .name = "OpImageSparseSampleProjDrefExplicitLod",
9053 .opcode = 312,
78149054 .operands = &.{
78159055 .{ .kind = .id_result_type, .quantifier = .required },
78169056 .{ .kind = .id_result, .quantifier = .required },
7817 .{ .kind = .id_scope, .quantifier = .required },
78189057 .{ .kind = .id_ref, .quantifier = .required },
9058 .{ .kind = .id_ref, .quantifier = .required },
9059 .{ .kind = .id_ref, .quantifier = .required },
9060 .{ .kind = .image_operands, .quantifier = .required },
78199061 },
78209062 },
78219063 .{
7822 .name = "OpGroupBroadcast",
7823 .opcode = 263,
9064 .name = "OpImageSparseFetch",
9065 .opcode = 313,
78249066 .operands = &.{
78259067 .{ .kind = .id_result_type, .quantifier = .required },
78269068 .{ .kind = .id_result, .quantifier = .required },
7827 .{ .kind = .id_scope, .quantifier = .required },
78289069 .{ .kind = .id_ref, .quantifier = .required },
78299070 .{ .kind = .id_ref, .quantifier = .required },
9071 .{ .kind = .image_operands, .quantifier = .optional },
78309072 },
78319073 },
78329074 .{
7833 .name = "OpGroupIAdd",
7834 .opcode = 264,
9075 .name = "OpImageSparseGather",
9076 .opcode = 314,
78359077 .operands = &.{
78369078 .{ .kind = .id_result_type, .quantifier = .required },
78379079 .{ .kind = .id_result, .quantifier = .required },
7838 .{ .kind = .id_scope, .quantifier = .required },
7839 .{ .kind = .group_operation, .quantifier = .required },
78409080 .{ .kind = .id_ref, .quantifier = .required },
9081 .{ .kind = .id_ref, .quantifier = .required },
9082 .{ .kind = .id_ref, .quantifier = .required },
9083 .{ .kind = .image_operands, .quantifier = .optional },
78419084 },
78429085 },
78439086 .{
7844 .name = "OpGroupFAdd",
7845 .opcode = 265,
9087 .name = "OpImageSparseDrefGather",
9088 .opcode = 315,
78469089 .operands = &.{
78479090 .{ .kind = .id_result_type, .quantifier = .required },
78489091 .{ .kind = .id_result, .quantifier = .required },
7849 .{ .kind = .id_scope, .quantifier = .required },
7850 .{ .kind = .group_operation, .quantifier = .required },
78519092 .{ .kind = .id_ref, .quantifier = .required },
9093 .{ .kind = .id_ref, .quantifier = .required },
9094 .{ .kind = .id_ref, .quantifier = .required },
9095 .{ .kind = .image_operands, .quantifier = .optional },
78529096 },
78539097 },
78549098 .{
7855 .name = "OpGroupFMin",
7856 .opcode = 266,
9099 .name = "OpImageSparseTexelsResident",
9100 .opcode = 316,
78579101 .operands = &.{
78589102 .{ .kind = .id_result_type, .quantifier = .required },
78599103 .{ .kind = .id_result, .quantifier = .required },
7860 .{ .kind = .id_scope, .quantifier = .required },
7861 .{ .kind = .group_operation, .quantifier = .required },
78629104 .{ .kind = .id_ref, .quantifier = .required },
78639105 },
78649106 },
78659107 .{
7866 .name = "OpGroupUMin",
7867 .opcode = 267,
9108 .name = "OpNoLine",
9109 .opcode = 317,
9110 .operands = &.{},
9111 },
9112 .{
9113 .name = "OpAtomicFlagTestAndSet",
9114 .opcode = 318,
78689115 .operands = &.{
78699116 .{ .kind = .id_result_type, .quantifier = .required },
78709117 .{ .kind = .id_result, .quantifier = .required },
7871 .{ .kind = .id_scope, .quantifier = .required },
7872 .{ .kind = .group_operation, .quantifier = .required },
78739118 .{ .kind = .id_ref, .quantifier = .required },
9119 .{ .kind = .id_scope, .quantifier = .required },
9120 .{ .kind = .id_memory_semantics, .quantifier = .required },
78749121 },
78759122 },
78769123 .{
7877 .name = "OpGroupSMin",
7878 .opcode = 268,
9124 .name = "OpAtomicFlagClear",
9125 .opcode = 319,
78799126 .operands = &.{
7880 .{ .kind = .id_result_type, .quantifier = .required },
7881 .{ .kind = .id_result, .quantifier = .required },
7882 .{ .kind = .id_scope, .quantifier = .required },
7883 .{ .kind = .group_operation, .quantifier = .required },
78849127 .{ .kind = .id_ref, .quantifier = .required },
9128 .{ .kind = .id_scope, .quantifier = .required },
9129 .{ .kind = .id_memory_semantics, .quantifier = .required },
78859130 },
78869131 },
78879132 .{
7888 .name = "OpGroupFMax",
7889 .opcode = 269,
9133 .name = "OpImageSparseRead",
9134 .opcode = 320,
78909135 .operands = &.{
78919136 .{ .kind = .id_result_type, .quantifier = .required },
78929137 .{ .kind = .id_result, .quantifier = .required },
7893 .{ .kind = .id_scope, .quantifier = .required },
7894 .{ .kind = .group_operation, .quantifier = .required },
78959138 .{ .kind = .id_ref, .quantifier = .required },
9139 .{ .kind = .id_ref, .quantifier = .required },
9140 .{ .kind = .image_operands, .quantifier = .optional },
78969141 },
78979142 },
78989143 .{
7899 .name = "OpGroupUMax",
7900 .opcode = 270,
9144 .name = "OpSizeOf",
9145 .opcode = 321,
79019146 .operands = &.{
79029147 .{ .kind = .id_result_type, .quantifier = .required },
79039148 .{ .kind = .id_result, .quantifier = .required },
7904 .{ .kind = .id_scope, .quantifier = .required },
7905 .{ .kind = .group_operation, .quantifier = .required },
79069149 .{ .kind = .id_ref, .quantifier = .required },
79079150 },
79089151 },
79099152 .{
7910 .name = "OpGroupSMax",
7911 .opcode = 271,
9153 .name = "OpTypePipeStorage",
9154 .opcode = 322,
79129155 .operands = &.{
7913 .{ .kind = .id_result_type, .quantifier = .required },
79149156 .{ .kind = .id_result, .quantifier = .required },
7915 .{ .kind = .id_scope, .quantifier = .required },
7916 .{ .kind = .group_operation, .quantifier = .required },
7917 .{ .kind = .id_ref, .quantifier = .required },
79189157 },
79199158 },
79209159 .{
7921 .name = "OpReadPipe",
7922 .opcode = 274,
9160 .name = "OpConstantPipeStorage",
9161 .opcode = 323,
79239162 .operands = &.{
79249163 .{ .kind = .id_result_type, .quantifier = .required },
79259164 .{ .kind = .id_result, .quantifier = .required },
7926 .{ .kind = .id_ref, .quantifier = .required },
7927 .{ .kind = .id_ref, .quantifier = .required },
7928 .{ .kind = .id_ref, .quantifier = .required },
7929 .{ .kind = .id_ref, .quantifier = .required },
9165 .{ .kind = .literal_integer, .quantifier = .required },
9166 .{ .kind = .literal_integer, .quantifier = .required },
9167 .{ .kind = .literal_integer, .quantifier = .required },
79309168 },
79319169 },
79329170 .{
7933 .name = "OpWritePipe",
7934 .opcode = 275,
9171 .name = "OpCreatePipeFromPipeStorage",
9172 .opcode = 324,
79359173 .operands = &.{
79369174 .{ .kind = .id_result_type, .quantifier = .required },
79379175 .{ .kind = .id_result, .quantifier = .required },
79389176 .{ .kind = .id_ref, .quantifier = .required },
7939 .{ .kind = .id_ref, .quantifier = .required },
7940 .{ .kind = .id_ref, .quantifier = .required },
7941 .{ .kind = .id_ref, .quantifier = .required },
79429177 },
79439178 },
79449179 .{
7945 .name = "OpReservedReadPipe",
7946 .opcode = 276,
9180 .name = "OpGetKernelLocalSizeForSubgroupCount",
9181 .opcode = 325,
79479182 .operands = &.{
79489183 .{ .kind = .id_result_type, .quantifier = .required },
79499184 .{ .kind = .id_result, .quantifier = .required },
......@@ -7952,12 +9187,11 @@ pub const InstructionSet = enum {
79529187 .{ .kind = .id_ref, .quantifier = .required },
79539188 .{ .kind = .id_ref, .quantifier = .required },
79549189 .{ .kind = .id_ref, .quantifier = .required },
7955 .{ .kind = .id_ref, .quantifier = .required },
79569190 },
79579191 },
79589192 .{
7959 .name = "OpReservedWritePipe",
7960 .opcode = 277,
9193 .name = "OpGetKernelMaxNumSubgroups",
9194 .opcode = 326,
79619195 .operands = &.{
79629196 .{ .kind = .id_result_type, .quantifier = .required },
79639197 .{ .kind = .id_result, .quantifier = .required },
......@@ -7965,1158 +9199,1110 @@ pub const InstructionSet = enum {
79659199 .{ .kind = .id_ref, .quantifier = .required },
79669200 .{ .kind = .id_ref, .quantifier = .required },
79679201 .{ .kind = .id_ref, .quantifier = .required },
7968 .{ .kind = .id_ref, .quantifier = .required },
7969 .{ .kind = .id_ref, .quantifier = .required },
79709202 },
79719203 },
79729204 .{
7973 .name = "OpReserveReadPipePackets",
7974 .opcode = 278,
9205 .name = "OpTypeNamedBarrier",
9206 .opcode = 327,
79759207 .operands = &.{
7976 .{ .kind = .id_result_type, .quantifier = .required },
79779208 .{ .kind = .id_result, .quantifier = .required },
7978 .{ .kind = .id_ref, .quantifier = .required },
7979 .{ .kind = .id_ref, .quantifier = .required },
7980 .{ .kind = .id_ref, .quantifier = .required },
7981 .{ .kind = .id_ref, .quantifier = .required },
79829209 },
79839210 },
79849211 .{
7985 .name = "OpReserveWritePipePackets",
7986 .opcode = 279,
9212 .name = "OpNamedBarrierInitialize",
9213 .opcode = 328,
79879214 .operands = &.{
79889215 .{ .kind = .id_result_type, .quantifier = .required },
79899216 .{ .kind = .id_result, .quantifier = .required },
79909217 .{ .kind = .id_ref, .quantifier = .required },
7991 .{ .kind = .id_ref, .quantifier = .required },
7992 .{ .kind = .id_ref, .quantifier = .required },
7993 .{ .kind = .id_ref, .quantifier = .required },
79949218 },
79959219 },
79969220 .{
7997 .name = "OpCommitReadPipe",
7998 .opcode = 280,
9221 .name = "OpMemoryNamedBarrier",
9222 .opcode = 329,
79999223 .operands = &.{
80009224 .{ .kind = .id_ref, .quantifier = .required },
8001 .{ .kind = .id_ref, .quantifier = .required },
8002 .{ .kind = .id_ref, .quantifier = .required },
8003 .{ .kind = .id_ref, .quantifier = .required },
9225 .{ .kind = .id_scope, .quantifier = .required },
9226 .{ .kind = .id_memory_semantics, .quantifier = .required },
80049227 },
80059228 },
80069229 .{
8007 .name = "OpCommitWritePipe",
8008 .opcode = 281,
9230 .name = "OpModuleProcessed",
9231 .opcode = 330,
80099232 .operands = &.{
8010 .{ .kind = .id_ref, .quantifier = .required },
8011 .{ .kind = .id_ref, .quantifier = .required },
8012 .{ .kind = .id_ref, .quantifier = .required },
8013 .{ .kind = .id_ref, .quantifier = .required },
9233 .{ .kind = .literal_string, .quantifier = .required },
80149234 },
80159235 },
80169236 .{
8017 .name = "OpIsValidReserveId",
8018 .opcode = 282,
9237 .name = "OpExecutionModeId",
9238 .opcode = 331,
80199239 .operands = &.{
8020 .{ .kind = .id_result_type, .quantifier = .required },
8021 .{ .kind = .id_result, .quantifier = .required },
80229240 .{ .kind = .id_ref, .quantifier = .required },
9241 .{ .kind = .execution_mode, .quantifier = .required },
80239242 },
80249243 },
80259244 .{
8026 .name = "OpGetNumPipePackets",
8027 .opcode = 283,
9245 .name = "OpDecorateId",
9246 .opcode = 332,
80289247 .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 },
80339248 .{ .kind = .id_ref, .quantifier = .required },
9249 .{ .kind = .decoration, .quantifier = .required },
80349250 },
80359251 },
80369252 .{
8037 .name = "OpGetMaxPipePackets",
8038 .opcode = 284,
9253 .name = "OpGroupNonUniformElect",
9254 .opcode = 333,
80399255 .operands = &.{
80409256 .{ .kind = .id_result_type, .quantifier = .required },
80419257 .{ .kind = .id_result, .quantifier = .required },
8042 .{ .kind = .id_ref, .quantifier = .required },
8043 .{ .kind = .id_ref, .quantifier = .required },
8044 .{ .kind = .id_ref, .quantifier = .required },
9258 .{ .kind = .id_scope, .quantifier = .required },
80459259 },
80469260 },
80479261 .{
8048 .name = "OpGroupReserveReadPipePackets",
8049 .opcode = 285,
9262 .name = "OpGroupNonUniformAll",
9263 .opcode = 334,
80509264 .operands = &.{
80519265 .{ .kind = .id_result_type, .quantifier = .required },
80529266 .{ .kind = .id_result, .quantifier = .required },
80539267 .{ .kind = .id_scope, .quantifier = .required },
80549268 .{ .kind = .id_ref, .quantifier = .required },
8055 .{ .kind = .id_ref, .quantifier = .required },
8056 .{ .kind = .id_ref, .quantifier = .required },
8057 .{ .kind = .id_ref, .quantifier = .required },
80589269 },
80599270 },
80609271 .{
8061 .name = "OpGroupReserveWritePipePackets",
8062 .opcode = 286,
9272 .name = "OpGroupNonUniformAny",
9273 .opcode = 335,
80639274 .operands = &.{
80649275 .{ .kind = .id_result_type, .quantifier = .required },
80659276 .{ .kind = .id_result, .quantifier = .required },
80669277 .{ .kind = .id_scope, .quantifier = .required },
80679278 .{ .kind = .id_ref, .quantifier = .required },
8068 .{ .kind = .id_ref, .quantifier = .required },
8069 .{ .kind = .id_ref, .quantifier = .required },
8070 .{ .kind = .id_ref, .quantifier = .required },
8071 },
8072 },
8073 .{
8074 .name = "OpGroupCommitReadPipe",
8075 .opcode = 287,
8076 .operands = &.{
8077 .{ .kind = .id_scope, .quantifier = .required },
8078 .{ .kind = .id_ref, .quantifier = .required },
8079 .{ .kind = .id_ref, .quantifier = .required },
8080 .{ .kind = .id_ref, .quantifier = .required },
8081 .{ .kind = .id_ref, .quantifier = .required },
80829279 },
80839280 },
80849281 .{
8085 .name = "OpGroupCommitWritePipe",
8086 .opcode = 288,
9282 .name = "OpGroupNonUniformAllEqual",
9283 .opcode = 336,
80879284 .operands = &.{
9285 .{ .kind = .id_result_type, .quantifier = .required },
9286 .{ .kind = .id_result, .quantifier = .required },
80889287 .{ .kind = .id_scope, .quantifier = .required },
80899288 .{ .kind = .id_ref, .quantifier = .required },
8090 .{ .kind = .id_ref, .quantifier = .required },
8091 .{ .kind = .id_ref, .quantifier = .required },
8092 .{ .kind = .id_ref, .quantifier = .required },
80939289 },
80949290 },
80959291 .{
8096 .name = "OpEnqueueMarker",
8097 .opcode = 291,
9292 .name = "OpGroupNonUniformBroadcast",
9293 .opcode = 337,
80989294 .operands = &.{
80999295 .{ .kind = .id_result_type, .quantifier = .required },
81009296 .{ .kind = .id_result, .quantifier = .required },
8101 .{ .kind = .id_ref, .quantifier = .required },
8102 .{ .kind = .id_ref, .quantifier = .required },
9297 .{ .kind = .id_scope, .quantifier = .required },
81039298 .{ .kind = .id_ref, .quantifier = .required },
81049299 .{ .kind = .id_ref, .quantifier = .required },
81059300 },
81069301 },
81079302 .{
8108 .name = "OpEnqueueKernel",
8109 .opcode = 292,
9303 .name = "OpGroupNonUniformBroadcastFirst",
9304 .opcode = 338,
81109305 .operands = &.{
81119306 .{ .kind = .id_result_type, .quantifier = .required },
81129307 .{ .kind = .id_result, .quantifier = .required },
9308 .{ .kind = .id_scope, .quantifier = .required },
81139309 .{ .kind = .id_ref, .quantifier = .required },
8114 .{ .kind = .id_ref, .quantifier = .required },
8115 .{ .kind = .id_ref, .quantifier = .required },
8116 .{ .kind = .id_ref, .quantifier = .required },
8117 .{ .kind = .id_ref, .quantifier = .required },
8118 .{ .kind = .id_ref, .quantifier = .required },
8119 .{ .kind = .id_ref, .quantifier = .required },
8120 .{ .kind = .id_ref, .quantifier = .required },
8121 .{ .kind = .id_ref, .quantifier = .required },
8122 .{ .kind = .id_ref, .quantifier = .required },
8123 .{ .kind = .id_ref, .quantifier = .variadic },
81249310 },
81259311 },
81269312 .{
8127 .name = "OpGetKernelNDrangeSubGroupCount",
8128 .opcode = 293,
9313 .name = "OpGroupNonUniformBallot",
9314 .opcode = 339,
81299315 .operands = &.{
81309316 .{ .kind = .id_result_type, .quantifier = .required },
81319317 .{ .kind = .id_result, .quantifier = .required },
8132 .{ .kind = .id_ref, .quantifier = .required },
8133 .{ .kind = .id_ref, .quantifier = .required },
8134 .{ .kind = .id_ref, .quantifier = .required },
8135 .{ .kind = .id_ref, .quantifier = .required },
9318 .{ .kind = .id_scope, .quantifier = .required },
81369319 .{ .kind = .id_ref, .quantifier = .required },
81379320 },
81389321 },
81399322 .{
8140 .name = "OpGetKernelNDrangeMaxSubGroupSize",
8141 .opcode = 294,
9323 .name = "OpGroupNonUniformInverseBallot",
9324 .opcode = 340,
81429325 .operands = &.{
81439326 .{ .kind = .id_result_type, .quantifier = .required },
81449327 .{ .kind = .id_result, .quantifier = .required },
8145 .{ .kind = .id_ref, .quantifier = .required },
8146 .{ .kind = .id_ref, .quantifier = .required },
8147 .{ .kind = .id_ref, .quantifier = .required },
8148 .{ .kind = .id_ref, .quantifier = .required },
9328 .{ .kind = .id_scope, .quantifier = .required },
81499329 .{ .kind = .id_ref, .quantifier = .required },
81509330 },
81519331 },
81529332 .{
8153 .name = "OpGetKernelWorkGroupSize",
8154 .opcode = 295,
9333 .name = "OpGroupNonUniformBallotBitExtract",
9334 .opcode = 341,
81559335 .operands = &.{
81569336 .{ .kind = .id_result_type, .quantifier = .required },
81579337 .{ .kind = .id_result, .quantifier = .required },
8158 .{ .kind = .id_ref, .quantifier = .required },
8159 .{ .kind = .id_ref, .quantifier = .required },
9338 .{ .kind = .id_scope, .quantifier = .required },
81609339 .{ .kind = .id_ref, .quantifier = .required },
81619340 .{ .kind = .id_ref, .quantifier = .required },
81629341 },
81639342 },
81649343 .{
8165 .name = "OpGetKernelPreferredWorkGroupSizeMultiple",
8166 .opcode = 296,
9344 .name = "OpGroupNonUniformBallotBitCount",
9345 .opcode = 342,
81679346 .operands = &.{
81689347 .{ .kind = .id_result_type, .quantifier = .required },
81699348 .{ .kind = .id_result, .quantifier = .required },
8170 .{ .kind = .id_ref, .quantifier = .required },
8171 .{ .kind = .id_ref, .quantifier = .required },
8172 .{ .kind = .id_ref, .quantifier = .required },
9349 .{ .kind = .id_scope, .quantifier = .required },
9350 .{ .kind = .group_operation, .quantifier = .required },
81739351 .{ .kind = .id_ref, .quantifier = .required },
81749352 },
81759353 },
81769354 .{
8177 .name = "OpRetainEvent",
8178 .opcode = 297,
9355 .name = "OpGroupNonUniformBallotFindLSB",
9356 .opcode = 343,
81799357 .operands = &.{
9358 .{ .kind = .id_result_type, .quantifier = .required },
9359 .{ .kind = .id_result, .quantifier = .required },
9360 .{ .kind = .id_scope, .quantifier = .required },
81809361 .{ .kind = .id_ref, .quantifier = .required },
81819362 },
81829363 },
81839364 .{
8184 .name = "OpReleaseEvent",
8185 .opcode = 298,
9365 .name = "OpGroupNonUniformBallotFindMSB",
9366 .opcode = 344,
81869367 .operands = &.{
9368 .{ .kind = .id_result_type, .quantifier = .required },
9369 .{ .kind = .id_result, .quantifier = .required },
9370 .{ .kind = .id_scope, .quantifier = .required },
81879371 .{ .kind = .id_ref, .quantifier = .required },
81889372 },
81899373 },
81909374 .{
8191 .name = "OpCreateUserEvent",
8192 .opcode = 299,
9375 .name = "OpGroupNonUniformShuffle",
9376 .opcode = 345,
81939377 .operands = &.{
81949378 .{ .kind = .id_result_type, .quantifier = .required },
81959379 .{ .kind = .id_result, .quantifier = .required },
9380 .{ .kind = .id_scope, .quantifier = .required },
9381 .{ .kind = .id_ref, .quantifier = .required },
9382 .{ .kind = .id_ref, .quantifier = .required },
81969383 },
81979384 },
81989385 .{
8199 .name = "OpIsValidEvent",
8200 .opcode = 300,
9386 .name = "OpGroupNonUniformShuffleXor",
9387 .opcode = 346,
82019388 .operands = &.{
82029389 .{ .kind = .id_result_type, .quantifier = .required },
82039390 .{ .kind = .id_result, .quantifier = .required },
9391 .{ .kind = .id_scope, .quantifier = .required },
9392 .{ .kind = .id_ref, .quantifier = .required },
82049393 .{ .kind = .id_ref, .quantifier = .required },
82059394 },
82069395 },
82079396 .{
8208 .name = "OpSetUserEventStatus",
8209 .opcode = 301,
9397 .name = "OpGroupNonUniformShuffleUp",
9398 .opcode = 347,
82109399 .operands = &.{
9400 .{ .kind = .id_result_type, .quantifier = .required },
9401 .{ .kind = .id_result, .quantifier = .required },
9402 .{ .kind = .id_scope, .quantifier = .required },
82119403 .{ .kind = .id_ref, .quantifier = .required },
82129404 .{ .kind = .id_ref, .quantifier = .required },
82139405 },
82149406 },
82159407 .{
8216 .name = "OpCaptureEventProfilingInfo",
8217 .opcode = 302,
9408 .name = "OpGroupNonUniformShuffleDown",
9409 .opcode = 348,
82189410 .operands = &.{
8219 .{ .kind = .id_ref, .quantifier = .required },
9411 .{ .kind = .id_result_type, .quantifier = .required },
9412 .{ .kind = .id_result, .quantifier = .required },
9413 .{ .kind = .id_scope, .quantifier = .required },
82209414 .{ .kind = .id_ref, .quantifier = .required },
82219415 .{ .kind = .id_ref, .quantifier = .required },
82229416 },
82239417 },
82249418 .{
8225 .name = "OpGetDefaultQueue",
8226 .opcode = 303,
9419 .name = "OpGroupNonUniformIAdd",
9420 .opcode = 349,
82279421 .operands = &.{
82289422 .{ .kind = .id_result_type, .quantifier = .required },
82299423 .{ .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 },
82309428 },
82319429 },
82329430 .{
8233 .name = "OpBuildNDRange",
8234 .opcode = 304,
9431 .name = "OpGroupNonUniformFAdd",
9432 .opcode = 350,
82359433 .operands = &.{
82369434 .{ .kind = .id_result_type, .quantifier = .required },
82379435 .{ .kind = .id_result, .quantifier = .required },
9436 .{ .kind = .id_scope, .quantifier = .required },
9437 .{ .kind = .group_operation, .quantifier = .required },
82389438 .{ .kind = .id_ref, .quantifier = .required },
8239 .{ .kind = .id_ref, .quantifier = .required },
8240 .{ .kind = .id_ref, .quantifier = .required },
9439 .{ .kind = .id_ref, .quantifier = .optional },
82419440 },
82429441 },
82439442 .{
8244 .name = "OpImageSparseSampleImplicitLod",
8245 .opcode = 305,
9443 .name = "OpGroupNonUniformIMul",
9444 .opcode = 351,
82469445 .operands = &.{
82479446 .{ .kind = .id_result_type, .quantifier = .required },
82489447 .{ .kind = .id_result, .quantifier = .required },
9448 .{ .kind = .id_scope, .quantifier = .required },
9449 .{ .kind = .group_operation, .quantifier = .required },
82499450 .{ .kind = .id_ref, .quantifier = .required },
8250 .{ .kind = .id_ref, .quantifier = .required },
8251 .{ .kind = .image_operands, .quantifier = .optional },
9451 .{ .kind = .id_ref, .quantifier = .optional },
82529452 },
82539453 },
82549454 .{
8255 .name = "OpImageSparseSampleExplicitLod",
8256 .opcode = 306,
9455 .name = "OpGroupNonUniformFMul",
9456 .opcode = 352,
82579457 .operands = &.{
82589458 .{ .kind = .id_result_type, .quantifier = .required },
82599459 .{ .kind = .id_result, .quantifier = .required },
9460 .{ .kind = .id_scope, .quantifier = .required },
9461 .{ .kind = .group_operation, .quantifier = .required },
82609462 .{ .kind = .id_ref, .quantifier = .required },
8261 .{ .kind = .id_ref, .quantifier = .required },
8262 .{ .kind = .image_operands, .quantifier = .required },
9463 .{ .kind = .id_ref, .quantifier = .optional },
82639464 },
82649465 },
82659466 .{
8266 .name = "OpImageSparseSampleDrefImplicitLod",
8267 .opcode = 307,
9467 .name = "OpGroupNonUniformSMin",
9468 .opcode = 353,
82689469 .operands = &.{
82699470 .{ .kind = .id_result_type, .quantifier = .required },
82709471 .{ .kind = .id_result, .quantifier = .required },
9472 .{ .kind = .id_scope, .quantifier = .required },
9473 .{ .kind = .group_operation, .quantifier = .required },
82719474 .{ .kind = .id_ref, .quantifier = .required },
8272 .{ .kind = .id_ref, .quantifier = .required },
8273 .{ .kind = .id_ref, .quantifier = .required },
8274 .{ .kind = .image_operands, .quantifier = .optional },
9475 .{ .kind = .id_ref, .quantifier = .optional },
82759476 },
82769477 },
82779478 .{
8278 .name = "OpImageSparseSampleDrefExplicitLod",
8279 .opcode = 308,
9479 .name = "OpGroupNonUniformUMin",
9480 .opcode = 354,
82809481 .operands = &.{
82819482 .{ .kind = .id_result_type, .quantifier = .required },
82829483 .{ .kind = .id_result, .quantifier = .required },
9484 .{ .kind = .id_scope, .quantifier = .required },
9485 .{ .kind = .group_operation, .quantifier = .required },
82839486 .{ .kind = .id_ref, .quantifier = .required },
8284 .{ .kind = .id_ref, .quantifier = .required },
8285 .{ .kind = .id_ref, .quantifier = .required },
8286 .{ .kind = .image_operands, .quantifier = .required },
9487 .{ .kind = .id_ref, .quantifier = .optional },
82879488 },
82889489 },
82899490 .{
8290 .name = "OpImageSparseSampleProjImplicitLod",
8291 .opcode = 309,
9491 .name = "OpGroupNonUniformFMin",
9492 .opcode = 355,
82929493 .operands = &.{
82939494 .{ .kind = .id_result_type, .quantifier = .required },
82949495 .{ .kind = .id_result, .quantifier = .required },
9496 .{ .kind = .id_scope, .quantifier = .required },
9497 .{ .kind = .group_operation, .quantifier = .required },
82959498 .{ .kind = .id_ref, .quantifier = .required },
8296 .{ .kind = .id_ref, .quantifier = .required },
8297 .{ .kind = .image_operands, .quantifier = .optional },
9499 .{ .kind = .id_ref, .quantifier = .optional },
82989500 },
82999501 },
83009502 .{
8301 .name = "OpImageSparseSampleProjExplicitLod",
8302 .opcode = 310,
9503 .name = "OpGroupNonUniformSMax",
9504 .opcode = 356,
83039505 .operands = &.{
83049506 .{ .kind = .id_result_type, .quantifier = .required },
83059507 .{ .kind = .id_result, .quantifier = .required },
9508 .{ .kind = .id_scope, .quantifier = .required },
9509 .{ .kind = .group_operation, .quantifier = .required },
83069510 .{ .kind = .id_ref, .quantifier = .required },
8307 .{ .kind = .id_ref, .quantifier = .required },
8308 .{ .kind = .image_operands, .quantifier = .required },
9511 .{ .kind = .id_ref, .quantifier = .optional },
83099512 },
83109513 },
83119514 .{
8312 .name = "OpImageSparseSampleProjDrefImplicitLod",
8313 .opcode = 311,
9515 .name = "OpGroupNonUniformUMax",
9516 .opcode = 357,
83149517 .operands = &.{
83159518 .{ .kind = .id_result_type, .quantifier = .required },
83169519 .{ .kind = .id_result, .quantifier = .required },
9520 .{ .kind = .id_scope, .quantifier = .required },
9521 .{ .kind = .group_operation, .quantifier = .required },
83179522 .{ .kind = .id_ref, .quantifier = .required },
8318 .{ .kind = .id_ref, .quantifier = .required },
8319 .{ .kind = .id_ref, .quantifier = .required },
8320 .{ .kind = .image_operands, .quantifier = .optional },
9523 .{ .kind = .id_ref, .quantifier = .optional },
83219524 },
83229525 },
83239526 .{
8324 .name = "OpImageSparseSampleProjDrefExplicitLod",
8325 .opcode = 312,
9527 .name = "OpGroupNonUniformFMax",
9528 .opcode = 358,
83269529 .operands = &.{
83279530 .{ .kind = .id_result_type, .quantifier = .required },
83289531 .{ .kind = .id_result, .quantifier = .required },
9532 .{ .kind = .id_scope, .quantifier = .required },
9533 .{ .kind = .group_operation, .quantifier = .required },
83299534 .{ .kind = .id_ref, .quantifier = .required },
8330 .{ .kind = .id_ref, .quantifier = .required },
8331 .{ .kind = .id_ref, .quantifier = .required },
8332 .{ .kind = .image_operands, .quantifier = .required },
9535 .{ .kind = .id_ref, .quantifier = .optional },
83339536 },
83349537 },
83359538 .{
8336 .name = "OpImageSparseFetch",
8337 .opcode = 313,
9539 .name = "OpGroupNonUniformBitwiseAnd",
9540 .opcode = 359,
83389541 .operands = &.{
83399542 .{ .kind = .id_result_type, .quantifier = .required },
83409543 .{ .kind = .id_result, .quantifier = .required },
9544 .{ .kind = .id_scope, .quantifier = .required },
9545 .{ .kind = .group_operation, .quantifier = .required },
83419546 .{ .kind = .id_ref, .quantifier = .required },
8342 .{ .kind = .id_ref, .quantifier = .required },
8343 .{ .kind = .image_operands, .quantifier = .optional },
9547 .{ .kind = .id_ref, .quantifier = .optional },
83449548 },
83459549 },
83469550 .{
8347 .name = "OpImageSparseGather",
8348 .opcode = 314,
9551 .name = "OpGroupNonUniformBitwiseOr",
9552 .opcode = 360,
83499553 .operands = &.{
83509554 .{ .kind = .id_result_type, .quantifier = .required },
83519555 .{ .kind = .id_result, .quantifier = .required },
9556 .{ .kind = .id_scope, .quantifier = .required },
9557 .{ .kind = .group_operation, .quantifier = .required },
83529558 .{ .kind = .id_ref, .quantifier = .required },
8353 .{ .kind = .id_ref, .quantifier = .required },
8354 .{ .kind = .id_ref, .quantifier = .required },
8355 .{ .kind = .image_operands, .quantifier = .optional },
9559 .{ .kind = .id_ref, .quantifier = .optional },
83569560 },
83579561 },
83589562 .{
8359 .name = "OpImageSparseDrefGather",
8360 .opcode = 315,
9563 .name = "OpGroupNonUniformBitwiseXor",
9564 .opcode = 361,
83619565 .operands = &.{
83629566 .{ .kind = .id_result_type, .quantifier = .required },
83639567 .{ .kind = .id_result, .quantifier = .required },
9568 .{ .kind = .id_scope, .quantifier = .required },
9569 .{ .kind = .group_operation, .quantifier = .required },
83649570 .{ .kind = .id_ref, .quantifier = .required },
8365 .{ .kind = .id_ref, .quantifier = .required },
8366 .{ .kind = .id_ref, .quantifier = .required },
8367 .{ .kind = .image_operands, .quantifier = .optional },
9571 .{ .kind = .id_ref, .quantifier = .optional },
83689572 },
83699573 },
83709574 .{
8371 .name = "OpImageSparseTexelsResident",
8372 .opcode = 316,
9575 .name = "OpGroupNonUniformLogicalAnd",
9576 .opcode = 362,
83739577 .operands = &.{
83749578 .{ .kind = .id_result_type, .quantifier = .required },
83759579 .{ .kind = .id_result, .quantifier = .required },
9580 .{ .kind = .id_scope, .quantifier = .required },
9581 .{ .kind = .group_operation, .quantifier = .required },
83769582 .{ .kind = .id_ref, .quantifier = .required },
9583 .{ .kind = .id_ref, .quantifier = .optional },
83779584 },
83789585 },
83799586 .{
8380 .name = "OpNoLine",
8381 .opcode = 317,
8382 .operands = &.{},
8383 },
8384 .{
8385 .name = "OpAtomicFlagTestAndSet",
8386 .opcode = 318,
9587 .name = "OpGroupNonUniformLogicalOr",
9588 .opcode = 363,
83879589 .operands = &.{
83889590 .{ .kind = .id_result_type, .quantifier = .required },
83899591 .{ .kind = .id_result, .quantifier = .required },
8390 .{ .kind = .id_ref, .quantifier = .required },
83919592 .{ .kind = .id_scope, .quantifier = .required },
8392 .{ .kind = .id_memory_semantics, .quantifier = .required },
9593 .{ .kind = .group_operation, .quantifier = .required },
9594 .{ .kind = .id_ref, .quantifier = .required },
9595 .{ .kind = .id_ref, .quantifier = .optional },
83939596 },
83949597 },
83959598 .{
8396 .name = "OpAtomicFlagClear",
8397 .opcode = 319,
9599 .name = "OpGroupNonUniformLogicalXor",
9600 .opcode = 364,
83989601 .operands = &.{
8399 .{ .kind = .id_ref, .quantifier = .required },
9602 .{ .kind = .id_result_type, .quantifier = .required },
9603 .{ .kind = .id_result, .quantifier = .required },
84009604 .{ .kind = .id_scope, .quantifier = .required },
8401 .{ .kind = .id_memory_semantics, .quantifier = .required },
9605 .{ .kind = .group_operation, .quantifier = .required },
9606 .{ .kind = .id_ref, .quantifier = .required },
9607 .{ .kind = .id_ref, .quantifier = .optional },
84029608 },
84039609 },
84049610 .{
8405 .name = "OpImageSparseRead",
8406 .opcode = 320,
9611 .name = "OpGroupNonUniformQuadBroadcast",
9612 .opcode = 365,
84079613 .operands = &.{
84089614 .{ .kind = .id_result_type, .quantifier = .required },
84099615 .{ .kind = .id_result, .quantifier = .required },
9616 .{ .kind = .id_scope, .quantifier = .required },
84109617 .{ .kind = .id_ref, .quantifier = .required },
84119618 .{ .kind = .id_ref, .quantifier = .required },
8412 .{ .kind = .image_operands, .quantifier = .optional },
84139619 },
84149620 },
84159621 .{
8416 .name = "OpSizeOf",
8417 .opcode = 321,
9622 .name = "OpGroupNonUniformQuadSwap",
9623 .opcode = 366,
84189624 .operands = &.{
84199625 .{ .kind = .id_result_type, .quantifier = .required },
84209626 .{ .kind = .id_result, .quantifier = .required },
9627 .{ .kind = .id_scope, .quantifier = .required },
9628 .{ .kind = .id_ref, .quantifier = .required },
84219629 .{ .kind = .id_ref, .quantifier = .required },
84229630 },
84239631 },
84249632 .{
8425 .name = "OpTypePipeStorage",
8426 .opcode = 322,
9633 .name = "OpCopyLogical",
9634 .opcode = 400,
84279635 .operands = &.{
9636 .{ .kind = .id_result_type, .quantifier = .required },
84289637 .{ .kind = .id_result, .quantifier = .required },
9638 .{ .kind = .id_ref, .quantifier = .required },
84299639 },
84309640 },
84319641 .{
8432 .name = "OpConstantPipeStorage",
8433 .opcode = 323,
9642 .name = "OpPtrEqual",
9643 .opcode = 401,
84349644 .operands = &.{
84359645 .{ .kind = .id_result_type, .quantifier = .required },
84369646 .{ .kind = .id_result, .quantifier = .required },
8437 .{ .kind = .literal_integer, .quantifier = .required },
8438 .{ .kind = .literal_integer, .quantifier = .required },
8439 .{ .kind = .literal_integer, .quantifier = .required },
9647 .{ .kind = .id_ref, .quantifier = .required },
9648 .{ .kind = .id_ref, .quantifier = .required },
84409649 },
84419650 },
84429651 .{
8443 .name = "OpCreatePipeFromPipeStorage",
8444 .opcode = 324,
9652 .name = "OpPtrNotEqual",
9653 .opcode = 402,
84459654 .operands = &.{
84469655 .{ .kind = .id_result_type, .quantifier = .required },
84479656 .{ .kind = .id_result, .quantifier = .required },
84489657 .{ .kind = .id_ref, .quantifier = .required },
9658 .{ .kind = .id_ref, .quantifier = .required },
84499659 },
84509660 },
84519661 .{
8452 .name = "OpGetKernelLocalSizeForSubgroupCount",
8453 .opcode = 325,
9662 .name = "OpPtrDiff",
9663 .opcode = 403,
84549664 .operands = &.{
84559665 .{ .kind = .id_result_type, .quantifier = .required },
84569666 .{ .kind = .id_result, .quantifier = .required },
84579667 .{ .kind = .id_ref, .quantifier = .required },
84589668 .{ .kind = .id_ref, .quantifier = .required },
8459 .{ .kind = .id_ref, .quantifier = .required },
8460 .{ .kind = .id_ref, .quantifier = .required },
8461 .{ .kind = .id_ref, .quantifier = .required },
84629669 },
84639670 },
84649671 .{
8465 .name = "OpGetKernelMaxNumSubgroups",
8466 .opcode = 326,
9672 .name = "OpColorAttachmentReadEXT",
9673 .opcode = 4160,
84679674 .operands = &.{
84689675 .{ .kind = .id_result_type, .quantifier = .required },
84699676 .{ .kind = .id_result, .quantifier = .required },
84709677 .{ .kind = .id_ref, .quantifier = .required },
8471 .{ .kind = .id_ref, .quantifier = .required },
8472 .{ .kind = .id_ref, .quantifier = .required },
8473 .{ .kind = .id_ref, .quantifier = .required },
9678 .{ .kind = .id_ref, .quantifier = .optional },
84749679 },
84759680 },
84769681 .{
8477 .name = "OpTypeNamedBarrier",
8478 .opcode = 327,
9682 .name = "OpDepthAttachmentReadEXT",
9683 .opcode = 4161,
84799684 .operands = &.{
9685 .{ .kind = .id_result_type, .quantifier = .required },
84809686 .{ .kind = .id_result, .quantifier = .required },
9687 .{ .kind = .id_ref, .quantifier = .optional },
84819688 },
84829689 },
84839690 .{
8484 .name = "OpNamedBarrierInitialize",
8485 .opcode = 328,
9691 .name = "OpStencilAttachmentReadEXT",
9692 .opcode = 4162,
84869693 .operands = &.{
84879694 .{ .kind = .id_result_type, .quantifier = .required },
84889695 .{ .kind = .id_result, .quantifier = .required },
8489 .{ .kind = .id_ref, .quantifier = .required },
9696 .{ .kind = .id_ref, .quantifier = .optional },
84909697 },
84919698 },
84929699 .{
8493 .name = "OpMemoryNamedBarrier",
8494 .opcode = 329,
9700 .name = "OpTypeTensorARM",
9701 .opcode = 4163,
84959702 .operands = &.{
9703 .{ .kind = .id_result, .quantifier = .required },
84969704 .{ .kind = .id_ref, .quantifier = .required },
8497 .{ .kind = .id_scope, .quantifier = .required },
8498 .{ .kind = .id_memory_semantics, .quantifier = .required },
9705 .{ .kind = .id_ref, .quantifier = .optional },
9706 .{ .kind = .id_ref, .quantifier = .optional },
84999707 },
85009708 },
85019709 .{
8502 .name = "OpModuleProcessed",
8503 .opcode = 330,
9710 .name = "OpTensorReadARM",
9711 .opcode = 4164,
85049712 .operands = &.{
8505 .{ .kind = .literal_string, .quantifier = .required },
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 },
85069718 },
85079719 },
85089720 .{
8509 .name = "OpExecutionModeId",
8510 .opcode = 331,
9721 .name = "OpTensorWriteARM",
9722 .opcode = 4165,
85119723 .operands = &.{
85129724 .{ .kind = .id_ref, .quantifier = .required },
8513 .{ .kind = .execution_mode, .quantifier = .required },
9725 .{ .kind = .id_ref, .quantifier = .required },
9726 .{ .kind = .id_ref, .quantifier = .required },
9727 .{ .kind = .tensor_operands, .quantifier = .optional },
85149728 },
85159729 },
85169730 .{
8517 .name = "OpDecorateId",
8518 .opcode = 332,
9731 .name = "OpTensorQuerySizeARM",
9732 .opcode = 4166,
85199733 .operands = &.{
9734 .{ .kind = .id_result_type, .quantifier = .required },
9735 .{ .kind = .id_result, .quantifier = .required },
9736 .{ .kind = .id_ref, .quantifier = .required },
85209737 .{ .kind = .id_ref, .quantifier = .required },
8521 .{ .kind = .decoration, .quantifier = .required },
85229738 },
85239739 },
85249740 .{
8525 .name = "OpGroupNonUniformElect",
8526 .opcode = 333,
9741 .name = "OpGraphConstantARM",
9742 .opcode = 4181,
85279743 .operands = &.{
85289744 .{ .kind = .id_result_type, .quantifier = .required },
85299745 .{ .kind = .id_result, .quantifier = .required },
8530 .{ .kind = .id_scope, .quantifier = .required },
9746 .{ .kind = .literal_integer, .quantifier = .required },
85319747 },
85329748 },
85339749 .{
8534 .name = "OpGroupNonUniformAll",
8535 .opcode = 334,
9750 .name = "OpGraphEntryPointARM",
9751 .opcode = 4182,
85369752 .operands = &.{
8537 .{ .kind = .id_result_type, .quantifier = .required },
8538 .{ .kind = .id_result, .quantifier = .required },
8539 .{ .kind = .id_scope, .quantifier = .required },
85409753 .{ .kind = .id_ref, .quantifier = .required },
9754 .{ .kind = .literal_string, .quantifier = .required },
9755 .{ .kind = .id_ref, .quantifier = .variadic },
85419756 },
85429757 },
85439758 .{
8544 .name = "OpGroupNonUniformAny",
8545 .opcode = 335,
9759 .name = "OpGraphARM",
9760 .opcode = 4183,
85469761 .operands = &.{
85479762 .{ .kind = .id_result_type, .quantifier = .required },
85489763 .{ .kind = .id_result, .quantifier = .required },
8549 .{ .kind = .id_scope, .quantifier = .required },
8550 .{ .kind = .id_ref, .quantifier = .required },
85519764 },
85529765 },
85539766 .{
8554 .name = "OpGroupNonUniformAllEqual",
8555 .opcode = 336,
9767 .name = "OpGraphInputARM",
9768 .opcode = 4184,
85569769 .operands = &.{
85579770 .{ .kind = .id_result_type, .quantifier = .required },
85589771 .{ .kind = .id_result, .quantifier = .required },
8559 .{ .kind = .id_scope, .quantifier = .required },
85609772 .{ .kind = .id_ref, .quantifier = .required },
9773 .{ .kind = .id_ref, .quantifier = .variadic },
85619774 },
85629775 },
85639776 .{
8564 .name = "OpGroupNonUniformBroadcast",
8565 .opcode = 337,
9777 .name = "OpGraphSetOutputARM",
9778 .opcode = 4185,
85669779 .operands = &.{
8567 .{ .kind = .id_result_type, .quantifier = .required },
8568 .{ .kind = .id_result, .quantifier = .required },
8569 .{ .kind = .id_scope, .quantifier = .required },
85709780 .{ .kind = .id_ref, .quantifier = .required },
85719781 .{ .kind = .id_ref, .quantifier = .required },
9782 .{ .kind = .id_ref, .quantifier = .variadic },
85729783 },
85739784 },
85749785 .{
8575 .name = "OpGroupNonUniformBroadcastFirst",
8576 .opcode = 338,
9786 .name = "OpGraphEndARM",
9787 .opcode = 4186,
9788 .operands = &.{},
9789 },
9790 .{
9791 .name = "OpTypeGraphARM",
9792 .opcode = 4190,
85779793 .operands = &.{
8578 .{ .kind = .id_result_type, .quantifier = .required },
85799794 .{ .kind = .id_result, .quantifier = .required },
8580 .{ .kind = .id_scope, .quantifier = .required },
8581 .{ .kind = .id_ref, .quantifier = .required },
9795 .{ .kind = .literal_integer, .quantifier = .required },
9796 .{ .kind = .id_ref, .quantifier = .variadic },
85829797 },
85839798 },
85849799 .{
8585 .name = "OpGroupNonUniformBallot",
8586 .opcode = 339,
9800 .name = "OpTerminateInvocation",
9801 .opcode = 4416,
9802 .operands = &.{},
9803 },
9804 .{
9805 .name = "OpTypeUntypedPointerKHR",
9806 .opcode = 4417,
85879807 .operands = &.{
8588 .{ .kind = .id_result_type, .quantifier = .required },
85899808 .{ .kind = .id_result, .quantifier = .required },
8590 .{ .kind = .id_scope, .quantifier = .required },
8591 .{ .kind = .id_ref, .quantifier = .required },
9809 .{ .kind = .storage_class, .quantifier = .required },
85929810 },
85939811 },
85949812 .{
8595 .name = "OpGroupNonUniformInverseBallot",
8596 .opcode = 340,
9813 .name = "OpUntypedVariableKHR",
9814 .opcode = 4418,
85979815 .operands = &.{
85989816 .{ .kind = .id_result_type, .quantifier = .required },
85999817 .{ .kind = .id_result, .quantifier = .required },
8600 .{ .kind = .id_scope, .quantifier = .required },
8601 .{ .kind = .id_ref, .quantifier = .required },
9818 .{ .kind = .storage_class, .quantifier = .required },
9819 .{ .kind = .id_ref, .quantifier = .optional },
9820 .{ .kind = .id_ref, .quantifier = .optional },
86029821 },
86039822 },
86049823 .{
8605 .name = "OpGroupNonUniformBallotBitExtract",
8606 .opcode = 341,
9824 .name = "OpUntypedAccessChainKHR",
9825 .opcode = 4419,
86079826 .operands = &.{
86089827 .{ .kind = .id_result_type, .quantifier = .required },
86099828 .{ .kind = .id_result, .quantifier = .required },
8610 .{ .kind = .id_scope, .quantifier = .required },
86119829 .{ .kind = .id_ref, .quantifier = .required },
86129830 .{ .kind = .id_ref, .quantifier = .required },
9831 .{ .kind = .id_ref, .quantifier = .variadic },
86139832 },
86149833 },
86159834 .{
8616 .name = "OpGroupNonUniformBallotBitCount",
8617 .opcode = 342,
9835 .name = "OpUntypedInBoundsAccessChainKHR",
9836 .opcode = 4420,
86189837 .operands = &.{
86199838 .{ .kind = .id_result_type, .quantifier = .required },
86209839 .{ .kind = .id_result, .quantifier = .required },
8621 .{ .kind = .id_scope, .quantifier = .required },
8622 .{ .kind = .group_operation, .quantifier = .required },
86239840 .{ .kind = .id_ref, .quantifier = .required },
9841 .{ .kind = .id_ref, .quantifier = .required },
9842 .{ .kind = .id_ref, .quantifier = .variadic },
86249843 },
86259844 },
86269845 .{
8627 .name = "OpGroupNonUniformBallotFindLSB",
8628 .opcode = 343,
9846 .name = "OpSubgroupBallotKHR",
9847 .opcode = 4421,
86299848 .operands = &.{
86309849 .{ .kind = .id_result_type, .quantifier = .required },
86319850 .{ .kind = .id_result, .quantifier = .required },
8632 .{ .kind = .id_scope, .quantifier = .required },
86339851 .{ .kind = .id_ref, .quantifier = .required },
86349852 },
86359853 },
86369854 .{
8637 .name = "OpGroupNonUniformBallotFindMSB",
8638 .opcode = 344,
9855 .name = "OpSubgroupFirstInvocationKHR",
9856 .opcode = 4422,
86399857 .operands = &.{
86409858 .{ .kind = .id_result_type, .quantifier = .required },
86419859 .{ .kind = .id_result, .quantifier = .required },
8642 .{ .kind = .id_scope, .quantifier = .required },
86439860 .{ .kind = .id_ref, .quantifier = .required },
86449861 },
86459862 },
86469863 .{
8647 .name = "OpGroupNonUniformShuffle",
8648 .opcode = 345,
9864 .name = "OpUntypedPtrAccessChainKHR",
9865 .opcode = 4423,
86499866 .operands = &.{
86509867 .{ .kind = .id_result_type, .quantifier = .required },
86519868 .{ .kind = .id_result, .quantifier = .required },
8652 .{ .kind = .id_scope, .quantifier = .required },
86539869 .{ .kind = .id_ref, .quantifier = .required },
86549870 .{ .kind = .id_ref, .quantifier = .required },
9871 .{ .kind = .id_ref, .quantifier = .required },
9872 .{ .kind = .id_ref, .quantifier = .variadic },
86559873 },
86569874 },
86579875 .{
8658 .name = "OpGroupNonUniformShuffleXor",
8659 .opcode = 346,
9876 .name = "OpUntypedInBoundsPtrAccessChainKHR",
9877 .opcode = 4424,
86609878 .operands = &.{
86619879 .{ .kind = .id_result_type, .quantifier = .required },
86629880 .{ .kind = .id_result, .quantifier = .required },
8663 .{ .kind = .id_scope, .quantifier = .required },
86649881 .{ .kind = .id_ref, .quantifier = .required },
86659882 .{ .kind = .id_ref, .quantifier = .required },
9883 .{ .kind = .id_ref, .quantifier = .required },
9884 .{ .kind = .id_ref, .quantifier = .variadic },
86669885 },
86679886 },
86689887 .{
8669 .name = "OpGroupNonUniformShuffleUp",
8670 .opcode = 347,
9888 .name = "OpUntypedArrayLengthKHR",
9889 .opcode = 4425,
86719890 .operands = &.{
86729891 .{ .kind = .id_result_type, .quantifier = .required },
86739892 .{ .kind = .id_result, .quantifier = .required },
8674 .{ .kind = .id_scope, .quantifier = .required },
86759893 .{ .kind = .id_ref, .quantifier = .required },
86769894 .{ .kind = .id_ref, .quantifier = .required },
9895 .{ .kind = .literal_integer, .quantifier = .required },
86779896 },
86789897 },
86799898 .{
8680 .name = "OpGroupNonUniformShuffleDown",
8681 .opcode = 348,
9899 .name = "OpUntypedPrefetchKHR",
9900 .opcode = 4426,
86829901 .operands = &.{
8683 .{ .kind = .id_result_type, .quantifier = .required },
8684 .{ .kind = .id_result, .quantifier = .required },
8685 .{ .kind = .id_scope, .quantifier = .required },
86869902 .{ .kind = .id_ref, .quantifier = .required },
86879903 .{ .kind = .id_ref, .quantifier = .required },
9904 .{ .kind = .id_ref, .quantifier = .optional },
9905 .{ .kind = .id_ref, .quantifier = .optional },
9906 .{ .kind = .id_ref, .quantifier = .optional },
86889907 },
86899908 },
86909909 .{
8691 .name = "OpGroupNonUniformIAdd",
8692 .opcode = 349,
9910 .name = "OpFmaKHR",
9911 .opcode = 4427,
86939912 .operands = &.{
86949913 .{ .kind = .id_result_type, .quantifier = .required },
86959914 .{ .kind = .id_result, .quantifier = .required },
8696 .{ .kind = .id_scope, .quantifier = .required },
8697 .{ .kind = .group_operation, .quantifier = .required },
86989915 .{ .kind = .id_ref, .quantifier = .required },
8699 .{ .kind = .id_ref, .quantifier = .optional },
9916 .{ .kind = .id_ref, .quantifier = .required },
9917 .{ .kind = .id_ref, .quantifier = .required },
87009918 },
87019919 },
87029920 .{
8703 .name = "OpGroupNonUniformFAdd",
8704 .opcode = 350,
9921 .name = "OpSubgroupAllKHR",
9922 .opcode = 4428,
87059923 .operands = &.{
87069924 .{ .kind = .id_result_type, .quantifier = .required },
87079925 .{ .kind = .id_result, .quantifier = .required },
8708 .{ .kind = .id_scope, .quantifier = .required },
8709 .{ .kind = .group_operation, .quantifier = .required },
87109926 .{ .kind = .id_ref, .quantifier = .required },
8711 .{ .kind = .id_ref, .quantifier = .optional },
87129927 },
87139928 },
87149929 .{
8715 .name = "OpGroupNonUniformIMul",
8716 .opcode = 351,
9930 .name = "OpSubgroupAnyKHR",
9931 .opcode = 4429,
87179932 .operands = &.{
87189933 .{ .kind = .id_result_type, .quantifier = .required },
87199934 .{ .kind = .id_result, .quantifier = .required },
8720 .{ .kind = .id_scope, .quantifier = .required },
8721 .{ .kind = .group_operation, .quantifier = .required },
87229935 .{ .kind = .id_ref, .quantifier = .required },
8723 .{ .kind = .id_ref, .quantifier = .optional },
87249936 },
87259937 },
87269938 .{
8727 .name = "OpGroupNonUniformFMul",
8728 .opcode = 352,
9939 .name = "OpSubgroupAllEqualKHR",
9940 .opcode = 4430,
87299941 .operands = &.{
87309942 .{ .kind = .id_result_type, .quantifier = .required },
87319943 .{ .kind = .id_result, .quantifier = .required },
8732 .{ .kind = .id_scope, .quantifier = .required },
8733 .{ .kind = .group_operation, .quantifier = .required },
87349944 .{ .kind = .id_ref, .quantifier = .required },
8735 .{ .kind = .id_ref, .quantifier = .optional },
87369945 },
87379946 },
87389947 .{
8739 .name = "OpGroupNonUniformSMin",
8740 .opcode = 353,
9948 .name = "OpGroupNonUniformRotateKHR",
9949 .opcode = 4431,
87419950 .operands = &.{
87429951 .{ .kind = .id_result_type, .quantifier = .required },
87439952 .{ .kind = .id_result, .quantifier = .required },
87449953 .{ .kind = .id_scope, .quantifier = .required },
8745 .{ .kind = .group_operation, .quantifier = .required },
9954 .{ .kind = .id_ref, .quantifier = .required },
87469955 .{ .kind = .id_ref, .quantifier = .required },
87479956 .{ .kind = .id_ref, .quantifier = .optional },
87489957 },
87499958 },
87509959 .{
8751 .name = "OpGroupNonUniformUMin",
8752 .opcode = 354,
9960 .name = "OpSubgroupReadInvocationKHR",
9961 .opcode = 4432,
87539962 .operands = &.{
87549963 .{ .kind = .id_result_type, .quantifier = .required },
87559964 .{ .kind = .id_result, .quantifier = .required },
8756 .{ .kind = .id_scope, .quantifier = .required },
8757 .{ .kind = .group_operation, .quantifier = .required },
87589965 .{ .kind = .id_ref, .quantifier = .required },
8759 .{ .kind = .id_ref, .quantifier = .optional },
9966 .{ .kind = .id_ref, .quantifier = .required },
87609967 },
87619968 },
87629969 .{
8763 .name = "OpGroupNonUniformFMin",
8764 .opcode = 355,
9970 .name = "OpExtInstWithForwardRefsKHR",
9971 .opcode = 4433,
87659972 .operands = &.{
87669973 .{ .kind = .id_result_type, .quantifier = .required },
87679974 .{ .kind = .id_result, .quantifier = .required },
8768 .{ .kind = .id_scope, .quantifier = .required },
8769 .{ .kind = .group_operation, .quantifier = .required },
87709975 .{ .kind = .id_ref, .quantifier = .required },
8771 .{ .kind = .id_ref, .quantifier = .optional },
9976 .{ .kind = .literal_ext_inst_integer, .quantifier = .required },
9977 .{ .kind = .id_ref, .quantifier = .variadic },
87729978 },
87739979 },
87749980 .{
8775 .name = "OpGroupNonUniformSMax",
8776 .opcode = 356,
9981 .name = "OpUntypedGroupAsyncCopyKHR",
9982 .opcode = 4434,
87779983 .operands = &.{
87789984 .{ .kind = .id_result_type, .quantifier = .required },
87799985 .{ .kind = .id_result, .quantifier = .required },
8780 .{ .kind = .id_scope, .quantifier = .required },
8781 .{ .kind = .group_operation, .quantifier = .required },
87829986 .{ .kind = .id_ref, .quantifier = .required },
8783 .{ .kind = .id_ref, .quantifier = .optional },
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 },
87849995 },
87859996 },
87869997 .{
8787 .name = "OpGroupNonUniformUMax",
8788 .opcode = 357,
9998 .name = "OpTraceRayKHR",
9999 .opcode = 4445,
878910000 .operands = &.{
8790 .{ .kind = .id_result_type, .quantifier = .required },
8791 .{ .kind = .id_result, .quantifier = .required },
8792 .{ .kind = .id_scope, .quantifier = .required },
8793 .{ .kind = .group_operation, .quantifier = .required },
879410001 .{ .kind = .id_ref, .quantifier = .required },
8795 .{ .kind = .id_ref, .quantifier = .optional },
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 },
879610012 },
879710013 },
879810014 .{
8799 .name = "OpGroupNonUniformFMax",
8800 .opcode = 358,
10015 .name = "OpExecuteCallableKHR",
10016 .opcode = 4446,
880110017 .operands = &.{
8802 .{ .kind = .id_result_type, .quantifier = .required },
8803 .{ .kind = .id_result, .quantifier = .required },
8804 .{ .kind = .id_scope, .quantifier = .required },
8805 .{ .kind = .group_operation, .quantifier = .required },
880610018 .{ .kind = .id_ref, .quantifier = .required },
8807 .{ .kind = .id_ref, .quantifier = .optional },
10019 .{ .kind = .id_ref, .quantifier = .required },
880810020 },
880910021 },
881010022 .{
8811 .name = "OpGroupNonUniformBitwiseAnd",
8812 .opcode = 359,
10023 .name = "OpConvertUToAccelerationStructureKHR",
10024 .opcode = 4447,
881310025 .operands = &.{
881410026 .{ .kind = .id_result_type, .quantifier = .required },
881510027 .{ .kind = .id_result, .quantifier = .required },
8816 .{ .kind = .id_scope, .quantifier = .required },
8817 .{ .kind = .group_operation, .quantifier = .required },
881810028 .{ .kind = .id_ref, .quantifier = .required },
8819 .{ .kind = .id_ref, .quantifier = .optional },
882010029 },
882110030 },
882210031 .{
8823 .name = "OpGroupNonUniformBitwiseOr",
8824 .opcode = 360,
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,
882510044 .operands = &.{
882610045 .{ .kind = .id_result_type, .quantifier = .required },
882710046 .{ .kind = .id_result, .quantifier = .required },
8828 .{ .kind = .id_scope, .quantifier = .required },
8829 .{ .kind = .group_operation, .quantifier = .required },
883010047 .{ .kind = .id_ref, .quantifier = .required },
8831 .{ .kind = .id_ref, .quantifier = .optional },
10048 .{ .kind = .id_ref, .quantifier = .required },
10049 .{ .kind = .packed_vector_format, .quantifier = .optional },
883210050 },
883310051 },
883410052 .{
8835 .name = "OpGroupNonUniformBitwiseXor",
8836 .opcode = 361,
10053 .name = "OpUDot",
10054 .opcode = 4451,
883710055 .operands = &.{
883810056 .{ .kind = .id_result_type, .quantifier = .required },
883910057 .{ .kind = .id_result, .quantifier = .required },
8840 .{ .kind = .id_scope, .quantifier = .required },
8841 .{ .kind = .group_operation, .quantifier = .required },
884210058 .{ .kind = .id_ref, .quantifier = .required },
8843 .{ .kind = .id_ref, .quantifier = .optional },
10059 .{ .kind = .id_ref, .quantifier = .required },
10060 .{ .kind = .packed_vector_format, .quantifier = .optional },
884410061 },
884510062 },
884610063 .{
8847 .name = "OpGroupNonUniformLogicalAnd",
8848 .opcode = 362,
10064 .name = "OpSUDot",
10065 .opcode = 4452,
884910066 .operands = &.{
885010067 .{ .kind = .id_result_type, .quantifier = .required },
885110068 .{ .kind = .id_result, .quantifier = .required },
8852 .{ .kind = .id_scope, .quantifier = .required },
8853 .{ .kind = .group_operation, .quantifier = .required },
885410069 .{ .kind = .id_ref, .quantifier = .required },
8855 .{ .kind = .id_ref, .quantifier = .optional },
10070 .{ .kind = .id_ref, .quantifier = .required },
10071 .{ .kind = .packed_vector_format, .quantifier = .optional },
885610072 },
885710073 },
885810074 .{
8859 .name = "OpGroupNonUniformLogicalOr",
8860 .opcode = 363,
10075 .name = "OpSDotAccSat",
10076 .opcode = 4453,
886110077 .operands = &.{
886210078 .{ .kind = .id_result_type, .quantifier = .required },
886310079 .{ .kind = .id_result, .quantifier = .required },
8864 .{ .kind = .id_scope, .quantifier = .required },
8865 .{ .kind = .group_operation, .quantifier = .required },
886610080 .{ .kind = .id_ref, .quantifier = .required },
8867 .{ .kind = .id_ref, .quantifier = .optional },
10081 .{ .kind = .id_ref, .quantifier = .required },
10082 .{ .kind = .id_ref, .quantifier = .required },
10083 .{ .kind = .packed_vector_format, .quantifier = .optional },
886810084 },
886910085 },
887010086 .{
8871 .name = "OpGroupNonUniformLogicalXor",
8872 .opcode = 364,
10087 .name = "OpUDotAccSat",
10088 .opcode = 4454,
887310089 .operands = &.{
887410090 .{ .kind = .id_result_type, .quantifier = .required },
887510091 .{ .kind = .id_result, .quantifier = .required },
8876 .{ .kind = .id_scope, .quantifier = .required },
8877 .{ .kind = .group_operation, .quantifier = .required },
887810092 .{ .kind = .id_ref, .quantifier = .required },
8879 .{ .kind = .id_ref, .quantifier = .optional },
10093 .{ .kind = .id_ref, .quantifier = .required },
10094 .{ .kind = .id_ref, .quantifier = .required },
10095 .{ .kind = .packed_vector_format, .quantifier = .optional },
888010096 },
888110097 },
888210098 .{
8883 .name = "OpGroupNonUniformQuadBroadcast",
8884 .opcode = 365,
10099 .name = "OpSUDotAccSat",
10100 .opcode = 4455,
888510101 .operands = &.{
888610102 .{ .kind = .id_result_type, .quantifier = .required },
888710103 .{ .kind = .id_result, .quantifier = .required },
8888 .{ .kind = .id_scope, .quantifier = .required },
888910104 .{ .kind = .id_ref, .quantifier = .required },
889010105 .{ .kind = .id_ref, .quantifier = .required },
10106 .{ .kind = .id_ref, .quantifier = .required },
10107 .{ .kind = .packed_vector_format, .quantifier = .optional },
889110108 },
889210109 },
889310110 .{
8894 .name = "OpGroupNonUniformQuadSwap",
8895 .opcode = 366,
10111 .name = "OpTypeCooperativeMatrixKHR",
10112 .opcode = 4456,
889610113 .operands = &.{
8897 .{ .kind = .id_result_type, .quantifier = .required },
889810114 .{ .kind = .id_result, .quantifier = .required },
10115 .{ .kind = .id_ref, .quantifier = .required },
889910116 .{ .kind = .id_scope, .quantifier = .required },
890010117 .{ .kind = .id_ref, .quantifier = .required },
890110118 .{ .kind = .id_ref, .quantifier = .required },
10119 .{ .kind = .id_ref, .quantifier = .required },
890210120 },
890310121 },
890410122 .{
8905 .name = "OpCopyLogical",
8906 .opcode = 400,
10123 .name = "OpCooperativeMatrixLoadKHR",
10124 .opcode = 4457,
890710125 .operands = &.{
890810126 .{ .kind = .id_result_type, .quantifier = .required },
890910127 .{ .kind = .id_result, .quantifier = .required },
891010128 .{ .kind = .id_ref, .quantifier = .required },
10129 .{ .kind = .id_ref, .quantifier = .required },
10130 .{ .kind = .id_ref, .quantifier = .optional },
10131 .{ .kind = .memory_access, .quantifier = .optional },
891110132 },
891210133 },
891310134 .{
8914 .name = "OpPtrEqual",
8915 .opcode = 401,
10135 .name = "OpCooperativeMatrixStoreKHR",
10136 .opcode = 4458,
891610137 .operands = &.{
8917 .{ .kind = .id_result_type, .quantifier = .required },
8918 .{ .kind = .id_result, .quantifier = .required },
891910138 .{ .kind = .id_ref, .quantifier = .required },
892010139 .{ .kind = .id_ref, .quantifier = .required },
10140 .{ .kind = .id_ref, .quantifier = .required },
10141 .{ .kind = .id_ref, .quantifier = .optional },
10142 .{ .kind = .memory_access, .quantifier = .optional },
892110143 },
892210144 },
892310145 .{
8924 .name = "OpPtrNotEqual",
8925 .opcode = 402,
10146 .name = "OpCooperativeMatrixMulAddKHR",
10147 .opcode = 4459,
892610148 .operands = &.{
892710149 .{ .kind = .id_result_type, .quantifier = .required },
892810150 .{ .kind = .id_result, .quantifier = .required },
892910151 .{ .kind = .id_ref, .quantifier = .required },
893010152 .{ .kind = .id_ref, .quantifier = .required },
10153 .{ .kind = .id_ref, .quantifier = .required },
10154 .{ .kind = .cooperative_matrix_operands, .quantifier = .optional },
893110155 },
893210156 },
893310157 .{
8934 .name = "OpPtrDiff",
8935 .opcode = 403,
10158 .name = "OpCooperativeMatrixLengthKHR",
10159 .opcode = 4460,
893610160 .operands = &.{
893710161 .{ .kind = .id_result_type, .quantifier = .required },
893810162 .{ .kind = .id_result, .quantifier = .required },
893910163 .{ .kind = .id_ref, .quantifier = .required },
8940 .{ .kind = .id_ref, .quantifier = .required },
894110164 },
894210165 },
894310166 .{
8944 .name = "OpColorAttachmentReadEXT",
8945 .opcode = 4160,
10167 .name = "OpConstantCompositeReplicateEXT",
10168 .opcode = 4461,
894610169 .operands = &.{
894710170 .{ .kind = .id_result_type, .quantifier = .required },
894810171 .{ .kind = .id_result, .quantifier = .required },
894910172 .{ .kind = .id_ref, .quantifier = .required },
8950 .{ .kind = .id_ref, .quantifier = .optional },
895110173 },
895210174 },
895310175 .{
8954 .name = "OpDepthAttachmentReadEXT",
8955 .opcode = 4161,
10176 .name = "OpSpecConstantCompositeReplicateEXT",
10177 .opcode = 4462,
895610178 .operands = &.{
895710179 .{ .kind = .id_result_type, .quantifier = .required },
895810180 .{ .kind = .id_result, .quantifier = .required },
8959 .{ .kind = .id_ref, .quantifier = .optional },
10181 .{ .kind = .id_ref, .quantifier = .required },
896010182 },
896110183 },
896210184 .{
8963 .name = "OpStencilAttachmentReadEXT",
8964 .opcode = 4162,
10185 .name = "OpCompositeConstructReplicateEXT",
10186 .opcode = 4463,
896510187 .operands = &.{
896610188 .{ .kind = .id_result_type, .quantifier = .required },
896710189 .{ .kind = .id_result, .quantifier = .required },
8968 .{ .kind = .id_ref, .quantifier = .optional },
10190 .{ .kind = .id_ref, .quantifier = .required },
896910191 },
897010192 },
897110193 .{
8972 .name = "OpTypeTensorARM",
8973 .opcode = 4163,
10194 .name = "OpTypeRayQueryKHR",
10195 .opcode = 4472,
897410196 .operands = &.{
897510197 .{ .kind = .id_result, .quantifier = .required },
8976 .{ .kind = .id_ref, .quantifier = .required },
8977 .{ .kind = .id_ref, .quantifier = .optional },
8978 .{ .kind = .id_ref, .quantifier = .optional },
897910198 },
898010199 },
898110200 .{
8982 .name = "OpTensorReadARM",
8983 .opcode = 4164,
10201 .name = "OpRayQueryInitializeKHR",
10202 .opcode = 4473,
898410203 .operands = &.{
8985 .{ .kind = .id_result_type, .quantifier = .required },
8986 .{ .kind = .id_result, .quantifier = .required },
898710204 .{ .kind = .id_ref, .quantifier = .required },
898810205 .{ .kind = .id_ref, .quantifier = .required },
8989 .{ .kind = .tensor_operands, .quantifier = .optional },
8990 },
8991 },
8992 .{
8993 .name = "OpTensorWriteARM",
8994 .opcode = 4165,
8995 .operands = &.{
899610206 .{ .kind = .id_ref, .quantifier = .required },
899710207 .{ .kind = .id_ref, .quantifier = .required },
899810208 .{ .kind = .id_ref, .quantifier = .required },
8999 .{ .kind = .tensor_operands, .quantifier = .optional },
9000 },
9001 },
9002 .{
9003 .name = "OpTensorQuerySizeARM",
9004 .opcode = 4166,
9005 .operands = &.{
9006 .{ .kind = .id_result_type, .quantifier = .required },
9007 .{ .kind = .id_result, .quantifier = .required },
10209 .{ .kind = .id_ref, .quantifier = .required },
900810210 .{ .kind = .id_ref, .quantifier = .required },
900910211 .{ .kind = .id_ref, .quantifier = .required },
901010212 },
901110213 },
901210214 .{
9013 .name = "OpGraphConstantARM",
9014 .opcode = 4181,
10215 .name = "OpRayQueryTerminateKHR",
10216 .opcode = 4474,
901510217 .operands = &.{
9016 .{ .kind = .id_result_type, .quantifier = .required },
9017 .{ .kind = .id_result, .quantifier = .required },
9018 .{ .kind = .literal_integer, .quantifier = .required },
10218 .{ .kind = .id_ref, .quantifier = .required },
901910219 },
902010220 },
902110221 .{
9022 .name = "OpGraphEntryPointARM",
9023 .opcode = 4182,
10222 .name = "OpRayQueryGenerateIntersectionKHR",
10223 .opcode = 4475,
902410224 .operands = &.{
902510225 .{ .kind = .id_ref, .quantifier = .required },
9026 .{ .kind = .literal_string, .quantifier = .required },
9027 .{ .kind = .id_ref, .quantifier = .variadic },
10226 .{ .kind = .id_ref, .quantifier = .required },
902810227 },
902910228 },
903010229 .{
9031 .name = "OpGraphARM",
9032 .opcode = 4183,
10230 .name = "OpRayQueryConfirmIntersectionKHR",
10231 .opcode = 4476,
903310232 .operands = &.{
9034 .{ .kind = .id_result_type, .quantifier = .required },
9035 .{ .kind = .id_result, .quantifier = .required },
10233 .{ .kind = .id_ref, .quantifier = .required },
903610234 },
903710235 },
903810236 .{
9039 .name = "OpGraphInputARM",
9040 .opcode = 4184,
10237 .name = "OpRayQueryProceedKHR",
10238 .opcode = 4477,
904110239 .operands = &.{
904210240 .{ .kind = .id_result_type, .quantifier = .required },
904310241 .{ .kind = .id_result, .quantifier = .required },
904410242 .{ .kind = .id_ref, .quantifier = .required },
9045 .{ .kind = .id_ref, .quantifier = .variadic },
904610243 },
904710244 },
904810245 .{
9049 .name = "OpGraphSetOutputARM",
9050 .opcode = 4185,
10246 .name = "OpRayQueryGetIntersectionTypeKHR",
10247 .opcode = 4479,
905110248 .operands = &.{
10249 .{ .kind = .id_result_type, .quantifier = .required },
10250 .{ .kind = .id_result, .quantifier = .required },
905210251 .{ .kind = .id_ref, .quantifier = .required },
905310252 .{ .kind = .id_ref, .quantifier = .required },
9054 .{ .kind = .id_ref, .quantifier = .variadic },
9055 },
9056 },
9057 .{
9058 .name = "OpGraphEndARM",
9059 .opcode = 4186,
9060 .operands = &.{},
9061 },
9062 .{
9063 .name = "OpTypeGraphARM",
9064 .opcode = 4190,
9065 .operands = &.{
9066 .{ .kind = .id_result, .quantifier = .required },
9067 .{ .kind = .literal_integer, .quantifier = .required },
9068 .{ .kind = .id_ref, .quantifier = .variadic },
906910253 },
907010254 },
907110255 .{
9072 .name = "OpTerminateInvocation",
9073 .opcode = 4416,
9074 .operands = &.{},
9075 },
9076 .{
9077 .name = "OpTypeUntypedPointerKHR",
9078 .opcode = 4417,
10256 .name = "OpImageSampleWeightedQCOM",
10257 .opcode = 4480,
907910258 .operands = &.{
10259 .{ .kind = .id_result_type, .quantifier = .required },
908010260 .{ .kind = .id_result, .quantifier = .required },
9081 .{ .kind = .storage_class, .quantifier = .required },
10261 .{ .kind = .id_ref, .quantifier = .required },
10262 .{ .kind = .id_ref, .quantifier = .required },
10263 .{ .kind = .id_ref, .quantifier = .required },
908210264 },
908310265 },
908410266 .{
9085 .name = "OpUntypedVariableKHR",
9086 .opcode = 4418,
10267 .name = "OpImageBoxFilterQCOM",
10268 .opcode = 4481,
908710269 .operands = &.{
908810270 .{ .kind = .id_result_type, .quantifier = .required },
908910271 .{ .kind = .id_result, .quantifier = .required },
9090 .{ .kind = .storage_class, .quantifier = .required },
9091 .{ .kind = .id_ref, .quantifier = .optional },
9092 .{ .kind = .id_ref, .quantifier = .optional },
10272 .{ .kind = .id_ref, .quantifier = .required },
10273 .{ .kind = .id_ref, .quantifier = .required },
10274 .{ .kind = .id_ref, .quantifier = .required },
909310275 },
909410276 },
909510277 .{
9096 .name = "OpUntypedAccessChainKHR",
9097 .opcode = 4419,
10278 .name = "OpImageBlockMatchSSDQCOM",
10279 .opcode = 4482,
909810280 .operands = &.{
909910281 .{ .kind = .id_result_type, .quantifier = .required },
910010282 .{ .kind = .id_result, .quantifier = .required },
910110283 .{ .kind = .id_ref, .quantifier = .required },
910210284 .{ .kind = .id_ref, .quantifier = .required },
9103 .{ .kind = .id_ref, .quantifier = .variadic },
10285 .{ .kind = .id_ref, .quantifier = .required },
10286 .{ .kind = .id_ref, .quantifier = .required },
10287 .{ .kind = .id_ref, .quantifier = .required },
910410288 },
910510289 },
910610290 .{
9107 .name = "OpUntypedInBoundsAccessChainKHR",
9108 .opcode = 4420,
10291 .name = "OpImageBlockMatchSADQCOM",
10292 .opcode = 4483,
910910293 .operands = &.{
911010294 .{ .kind = .id_result_type, .quantifier = .required },
911110295 .{ .kind = .id_result, .quantifier = .required },
911210296 .{ .kind = .id_ref, .quantifier = .required },
911310297 .{ .kind = .id_ref, .quantifier = .required },
9114 .{ .kind = .id_ref, .quantifier = .variadic },
10298 .{ .kind = .id_ref, .quantifier = .required },
10299 .{ .kind = .id_ref, .quantifier = .required },
10300 .{ .kind = .id_ref, .quantifier = .required },
911510301 },
911610302 },
911710303 .{
9118 .name = "OpSubgroupBallotKHR",
9119 .opcode = 4421,
10304 .name = "OpBitCastArrayQCOM",
10305 .opcode = 4497,
912010306 .operands = &.{
912110307 .{ .kind = .id_result_type, .quantifier = .required },
912210308 .{ .kind = .id_result, .quantifier = .required },
......@@ -9124,63 +10310,60 @@ pub const InstructionSet = enum {
912410310 },
912510311 },
912610312 .{
9127 .name = "OpSubgroupFirstInvocationKHR",
9128 .opcode = 4422,
10313 .name = "OpImageBlockMatchWindowSSDQCOM",
10314 .opcode = 4500,
912910315 .operands = &.{
913010316 .{ .kind = .id_result_type, .quantifier = .required },
913110317 .{ .kind = .id_result, .quantifier = .required },
913210318 .{ .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 },
913310323 },
913410324 },
913510325 .{
9136 .name = "OpUntypedPtrAccessChainKHR",
9137 .opcode = 4423,
10326 .name = "OpImageBlockMatchWindowSADQCOM",
10327 .opcode = 4501,
913810328 .operands = &.{
913910329 .{ .kind = .id_result_type, .quantifier = .required },
914010330 .{ .kind = .id_result, .quantifier = .required },
914110331 .{ .kind = .id_ref, .quantifier = .required },
914210332 .{ .kind = .id_ref, .quantifier = .required },
914310333 .{ .kind = .id_ref, .quantifier = .required },
9144 .{ .kind = .id_ref, .quantifier = .variadic },
10334 .{ .kind = .id_ref, .quantifier = .required },
10335 .{ .kind = .id_ref, .quantifier = .required },
914510336 },
914610337 },
914710338 .{
9148 .name = "OpUntypedInBoundsPtrAccessChainKHR",
9149 .opcode = 4424,
10339 .name = "OpImageBlockMatchGatherSSDQCOM",
10340 .opcode = 4502,
915010341 .operands = &.{
915110342 .{ .kind = .id_result_type, .quantifier = .required },
915210343 .{ .kind = .id_result, .quantifier = .required },
915310344 .{ .kind = .id_ref, .quantifier = .required },
915410345 .{ .kind = .id_ref, .quantifier = .required },
915510346 .{ .kind = .id_ref, .quantifier = .required },
9156 .{ .kind = .id_ref, .quantifier = .variadic },
10347 .{ .kind = .id_ref, .quantifier = .required },
10348 .{ .kind = .id_ref, .quantifier = .required },
915710349 },
915810350 },
915910351 .{
9160 .name = "OpUntypedArrayLengthKHR",
9161 .opcode = 4425,
10352 .name = "OpImageBlockMatchGatherSADQCOM",
10353 .opcode = 4503,
916210354 .operands = &.{
916310355 .{ .kind = .id_result_type, .quantifier = .required },
916410356 .{ .kind = .id_result, .quantifier = .required },
916510357 .{ .kind = .id_ref, .quantifier = .required },
916610358 .{ .kind = .id_ref, .quantifier = .required },
9167 .{ .kind = .literal_integer, .quantifier = .required },
9168 },
9169 },
9170 .{
9171 .name = "OpUntypedPrefetchKHR",
9172 .opcode = 4426,
9173 .operands = &.{
917410359 .{ .kind = .id_ref, .quantifier = .required },
917510360 .{ .kind = .id_ref, .quantifier = .required },
9176 .{ .kind = .id_ref, .quantifier = .optional },
9177 .{ .kind = .id_ref, .quantifier = .optional },
9178 .{ .kind = .id_ref, .quantifier = .optional },
10361 .{ .kind = .id_ref, .quantifier = .required },
917910362 },
918010363 },
918110364 .{
9182 .name = "OpSubgroupAllKHR",
9183 .opcode = 4428,
10365 .name = "OpCompositeConstructCoopMatQCOM",
10366 .opcode = 4540,
918410367 .operands = &.{
918510368 .{ .kind = .id_result_type, .quantifier = .required },
918610369 .{ .kind = .id_result, .quantifier = .required },
......@@ -9188,8 +10371,8 @@ pub const InstructionSet = enum {
918810371 },
918910372 },
919010373 .{
9191 .name = "OpSubgroupAnyKHR",
9192 .opcode = 4429,
10374 .name = "OpCompositeExtractCoopMatQCOM",
10375 .opcode = 4541,
919310376 .operands = &.{
919410377 .{ .kind = .id_result_type, .quantifier = .required },
919510378 .{ .kind = .id_result, .quantifier = .required },
......@@ -9197,228 +10380,206 @@ pub const InstructionSet = enum {
919710380 },
919810381 },
919910382 .{
9200 .name = "OpSubgroupAllEqualKHR",
9201 .opcode = 4430,
10383 .name = "OpExtractSubArrayQCOM",
10384 .opcode = 4542,
920210385 .operands = &.{
920310386 .{ .kind = .id_result_type, .quantifier = .required },
920410387 .{ .kind = .id_result, .quantifier = .required },
920510388 .{ .kind = .id_ref, .quantifier = .required },
10389 .{ .kind = .id_ref, .quantifier = .required },
920610390 },
920710391 },
920810392 .{
9209 .name = "OpGroupNonUniformRotateKHR",
9210 .opcode = 4431,
10393 .name = "OpGroupIAddNonUniformAMD",
10394 .opcode = 5000,
921110395 .operands = &.{
921210396 .{ .kind = .id_result_type, .quantifier = .required },
921310397 .{ .kind = .id_result, .quantifier = .required },
921410398 .{ .kind = .id_scope, .quantifier = .required },
10399 .{ .kind = .group_operation, .quantifier = .required },
921510400 .{ .kind = .id_ref, .quantifier = .required },
9216 .{ .kind = .id_ref, .quantifier = .required },
9217 .{ .kind = .id_ref, .quantifier = .optional },
921810401 },
921910402 },
922010403 .{
9221 .name = "OpSubgroupReadInvocationKHR",
9222 .opcode = 4432,
10404 .name = "OpGroupFAddNonUniformAMD",
10405 .opcode = 5001,
922310406 .operands = &.{
922410407 .{ .kind = .id_result_type, .quantifier = .required },
922510408 .{ .kind = .id_result, .quantifier = .required },
9226 .{ .kind = .id_ref, .quantifier = .required },
10409 .{ .kind = .id_scope, .quantifier = .required },
10410 .{ .kind = .group_operation, .quantifier = .required },
922710411 .{ .kind = .id_ref, .quantifier = .required },
922810412 },
922910413 },
923010414 .{
9231 .name = "OpExtInstWithForwardRefsKHR",
9232 .opcode = 4433,
10415 .name = "OpGroupFMinNonUniformAMD",
10416 .opcode = 5002,
923310417 .operands = &.{
923410418 .{ .kind = .id_result_type, .quantifier = .required },
923510419 .{ .kind = .id_result, .quantifier = .required },
10420 .{ .kind = .id_scope, .quantifier = .required },
10421 .{ .kind = .group_operation, .quantifier = .required },
923610422 .{ .kind = .id_ref, .quantifier = .required },
9237 .{ .kind = .literal_ext_inst_integer, .quantifier = .required },
9238 .{ .kind = .id_ref, .quantifier = .variadic },
923910423 },
924010424 },
924110425 .{
9242 .name = "OpTraceRayKHR",
9243 .opcode = 4445,
10426 .name = "OpGroupUMinNonUniformAMD",
10427 .opcode = 5003,
924410428 .operands = &.{
9245 .{ .kind = .id_ref, .quantifier = .required },
9246 .{ .kind = .id_ref, .quantifier = .required },
9247 .{ .kind = .id_ref, .quantifier = .required },
9248 .{ .kind = .id_ref, .quantifier = .required },
9249 .{ .kind = .id_ref, .quantifier = .required },
9250 .{ .kind = .id_ref, .quantifier = .required },
9251 .{ .kind = .id_ref, .quantifier = .required },
9252 .{ .kind = .id_ref, .quantifier = .required },
9253 .{ .kind = .id_ref, .quantifier = .required },
9254 .{ .kind = .id_ref, .quantifier = .required },
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 },
925510433 .{ .kind = .id_ref, .quantifier = .required },
925610434 },
925710435 },
925810436 .{
9259 .name = "OpExecuteCallableKHR",
9260 .opcode = 4446,
10437 .name = "OpGroupSMinNonUniformAMD",
10438 .opcode = 5004,
926110439 .operands = &.{
9262 .{ .kind = .id_ref, .quantifier = .required },
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 },
926310444 .{ .kind = .id_ref, .quantifier = .required },
926410445 },
926510446 },
926610447 .{
9267 .name = "OpConvertUToAccelerationStructureKHR",
9268 .opcode = 4447,
10448 .name = "OpGroupFMaxNonUniformAMD",
10449 .opcode = 5005,
926910450 .operands = &.{
927010451 .{ .kind = .id_result_type, .quantifier = .required },
927110452 .{ .kind = .id_result, .quantifier = .required },
10453 .{ .kind = .id_scope, .quantifier = .required },
10454 .{ .kind = .group_operation, .quantifier = .required },
927210455 .{ .kind = .id_ref, .quantifier = .required },
927310456 },
927410457 },
927510458 .{
9276 .name = "OpIgnoreIntersectionKHR",
9277 .opcode = 4448,
9278 .operands = &.{},
9279 },
9280 .{
9281 .name = "OpTerminateRayKHR",
9282 .opcode = 4449,
9283 .operands = &.{},
9284 },
9285 .{
9286 .name = "OpSDot",
9287 .opcode = 4450,
10459 .name = "OpGroupUMaxNonUniformAMD",
10460 .opcode = 5006,
928810461 .operands = &.{
928910462 .{ .kind = .id_result_type, .quantifier = .required },
929010463 .{ .kind = .id_result, .quantifier = .required },
10464 .{ .kind = .id_scope, .quantifier = .required },
10465 .{ .kind = .group_operation, .quantifier = .required },
929110466 .{ .kind = .id_ref, .quantifier = .required },
9292 .{ .kind = .id_ref, .quantifier = .required },
9293 .{ .kind = .packed_vector_format, .quantifier = .optional },
929410467 },
929510468 },
929610469 .{
9297 .name = "OpUDot",
9298 .opcode = 4451,
10470 .name = "OpGroupSMaxNonUniformAMD",
10471 .opcode = 5007,
929910472 .operands = &.{
930010473 .{ .kind = .id_result_type, .quantifier = .required },
930110474 .{ .kind = .id_result, .quantifier = .required },
10475 .{ .kind = .id_scope, .quantifier = .required },
10476 .{ .kind = .group_operation, .quantifier = .required },
930210477 .{ .kind = .id_ref, .quantifier = .required },
9303 .{ .kind = .id_ref, .quantifier = .required },
9304 .{ .kind = .packed_vector_format, .quantifier = .optional },
930510478 },
930610479 },
930710480 .{
9308 .name = "OpSUDot",
9309 .opcode = 4452,
10481 .name = "OpFragmentMaskFetchAMD",
10482 .opcode = 5011,
931010483 .operands = &.{
931110484 .{ .kind = .id_result_type, .quantifier = .required },
931210485 .{ .kind = .id_result, .quantifier = .required },
931310486 .{ .kind = .id_ref, .quantifier = .required },
931410487 .{ .kind = .id_ref, .quantifier = .required },
9315 .{ .kind = .packed_vector_format, .quantifier = .optional },
931610488 },
931710489 },
931810490 .{
9319 .name = "OpSDotAccSat",
9320 .opcode = 4453,
10491 .name = "OpFragmentFetchAMD",
10492 .opcode = 5012,
932110493 .operands = &.{
932210494 .{ .kind = .id_result_type, .quantifier = .required },
932310495 .{ .kind = .id_result, .quantifier = .required },
932410496 .{ .kind = .id_ref, .quantifier = .required },
932510497 .{ .kind = .id_ref, .quantifier = .required },
932610498 .{ .kind = .id_ref, .quantifier = .required },
9327 .{ .kind = .packed_vector_format, .quantifier = .optional },
932810499 },
932910500 },
933010501 .{
9331 .name = "OpUDotAccSat",
9332 .opcode = 4454,
10502 .name = "OpReadClockKHR",
10503 .opcode = 5056,
933310504 .operands = &.{
933410505 .{ .kind = .id_result_type, .quantifier = .required },
933510506 .{ .kind = .id_result, .quantifier = .required },
9336 .{ .kind = .id_ref, .quantifier = .required },
9337 .{ .kind = .id_ref, .quantifier = .required },
9338 .{ .kind = .id_ref, .quantifier = .required },
9339 .{ .kind = .packed_vector_format, .quantifier = .optional },
10507 .{ .kind = .id_scope, .quantifier = .required },
934010508 },
934110509 },
934210510 .{
9343 .name = "OpSUDotAccSat",
9344 .opcode = 4455,
10511 .name = "OpAllocateNodePayloadsAMDX",
10512 .opcode = 5074,
934510513 .operands = &.{
934610514 .{ .kind = .id_result_type, .quantifier = .required },
934710515 .{ .kind = .id_result, .quantifier = .required },
10516 .{ .kind = .id_scope, .quantifier = .required },
934810517 .{ .kind = .id_ref, .quantifier = .required },
934910518 .{ .kind = .id_ref, .quantifier = .required },
10519 },
10520 },
10521 .{
10522 .name = "OpEnqueueNodePayloadsAMDX",
10523 .opcode = 5075,
10524 .operands = &.{
935010525 .{ .kind = .id_ref, .quantifier = .required },
9351 .{ .kind = .packed_vector_format, .quantifier = .optional },
935210526 },
935310527 },
935410528 .{
9355 .name = "OpTypeCooperativeMatrixKHR",
9356 .opcode = 4456,
10529 .name = "OpTypeNodePayloadArrayAMDX",
10530 .opcode = 5076,
935710531 .operands = &.{
935810532 .{ .kind = .id_result, .quantifier = .required },
935910533 .{ .kind = .id_ref, .quantifier = .required },
9360 .{ .kind = .id_scope, .quantifier = .required },
9361 .{ .kind = .id_ref, .quantifier = .required },
9362 .{ .kind = .id_ref, .quantifier = .required },
9363 .{ .kind = .id_ref, .quantifier = .required },
936410534 },
936510535 },
936610536 .{
9367 .name = "OpCooperativeMatrixLoadKHR",
9368 .opcode = 4457,
10537 .name = "OpFinishWritingNodePayloadAMDX",
10538 .opcode = 5078,
936910539 .operands = &.{
937010540 .{ .kind = .id_result_type, .quantifier = .required },
937110541 .{ .kind = .id_result, .quantifier = .required },
937210542 .{ .kind = .id_ref, .quantifier = .required },
9373 .{ .kind = .id_ref, .quantifier = .required },
9374 .{ .kind = .id_ref, .quantifier = .optional },
9375 .{ .kind = .memory_access, .quantifier = .optional },
937610543 },
937710544 },
937810545 .{
9379 .name = "OpCooperativeMatrixStoreKHR",
9380 .opcode = 4458,
10546 .name = "OpNodePayloadArrayLengthAMDX",
10547 .opcode = 5090,
938110548 .operands = &.{
10549 .{ .kind = .id_result_type, .quantifier = .required },
10550 .{ .kind = .id_result, .quantifier = .required },
938210551 .{ .kind = .id_ref, .quantifier = .required },
9383 .{ .kind = .id_ref, .quantifier = .required },
9384 .{ .kind = .id_ref, .quantifier = .required },
9385 .{ .kind = .id_ref, .quantifier = .optional },
9386 .{ .kind = .memory_access, .quantifier = .optional },
938710552 },
938810553 },
938910554 .{
9390 .name = "OpCooperativeMatrixMulAddKHR",
9391 .opcode = 4459,
10555 .name = "OpIsNodePayloadValidAMDX",
10556 .opcode = 5101,
939210557 .operands = &.{
939310558 .{ .kind = .id_result_type, .quantifier = .required },
939410559 .{ .kind = .id_result, .quantifier = .required },
939510560 .{ .kind = .id_ref, .quantifier = .required },
939610561 .{ .kind = .id_ref, .quantifier = .required },
9397 .{ .kind = .id_ref, .quantifier = .required },
9398 .{ .kind = .cooperative_matrix_operands, .quantifier = .optional },
939910562 },
940010563 },
940110564 .{
9402 .name = "OpCooperativeMatrixLengthKHR",
9403 .opcode = 4460,
10565 .name = "OpConstantStringAMDX",
10566 .opcode = 5103,
940410567 .operands = &.{
9405 .{ .kind = .id_result_type, .quantifier = .required },
940610568 .{ .kind = .id_result, .quantifier = .required },
9407 .{ .kind = .id_ref, .quantifier = .required },
10569 .{ .kind = .literal_string, .quantifier = .required },
940810570 },
940910571 },
941010572 .{
9411 .name = "OpConstantCompositeReplicateEXT",
9412 .opcode = 4461,
10573 .name = "OpSpecConstantStringAMDX",
10574 .opcode = 5104,
941310575 .operands = &.{
9414 .{ .kind = .id_result_type, .quantifier = .required },
941510576 .{ .kind = .id_result, .quantifier = .required },
9416 .{ .kind = .id_ref, .quantifier = .required },
10577 .{ .kind = .literal_string, .quantifier = .required },
941710578 },
941810579 },
941910580 .{
9420 .name = "OpSpecConstantCompositeReplicateEXT",
9421 .opcode = 4462,
10581 .name = "OpGroupNonUniformQuadAllKHR",
10582 .opcode = 5110,
942210583 .operands = &.{
942310584 .{ .kind = .id_result_type, .quantifier = .required },
942410585 .{ .kind = .id_result, .quantifier = .required },
......@@ -9426,8 +10587,8 @@ pub const InstructionSet = enum {
942610587 },
942710588 },
942810589 .{
9429 .name = "OpCompositeConstructReplicateEXT",
9430 .opcode = 4463,
10590 .name = "OpGroupNonUniformQuadAnyKHR",
10591 .opcode = 5111,
943110592 .operands = &.{
943210593 .{ .kind = .id_result_type, .quantifier = .required },
943310594 .{ .kind = .id_result, .quantifier = .required },
......@@ -9435,51 +10596,54 @@ pub const InstructionSet = enum {
943510596 },
943610597 },
943710598 .{
9438 .name = "OpTypeRayQueryKHR",
9439 .opcode = 4472,
10599 .name = "OpTypeBufferEXT",
10600 .opcode = 5115,
944010601 .operands = &.{
944110602 .{ .kind = .id_result, .quantifier = .required },
10603 .{ .kind = .storage_class, .quantifier = .required },
944210604 },
944310605 },
944410606 .{
9445 .name = "OpRayQueryInitializeKHR",
9446 .opcode = 4473,
10607 .name = "OpBufferPointerEXT",
10608 .opcode = 5119,
944710609 .operands = &.{
9448 .{ .kind = .id_ref, .quantifier = .required },
9449 .{ .kind = .id_ref, .quantifier = .required },
9450 .{ .kind = .id_ref, .quantifier = .required },
9451 .{ .kind = .id_ref, .quantifier = .required },
9452 .{ .kind = .id_ref, .quantifier = .required },
9453 .{ .kind = .id_ref, .quantifier = .required },
9454 .{ .kind = .id_ref, .quantifier = .required },
10610 .{ .kind = .id_result_type, .quantifier = .required },
10611 .{ .kind = .id_result, .quantifier = .required },
945510612 .{ .kind = .id_ref, .quantifier = .required },
945610613 },
945710614 },
945810615 .{
9459 .name = "OpRayQueryTerminateKHR",
9460 .opcode = 4474,
10616 .name = "OpAbortKHR",
10617 .opcode = 5121,
946110618 .operands = &.{
946210619 .{ .kind = .id_ref, .quantifier = .required },
10620 .{ .kind = .id_ref, .quantifier = .required },
946310621 },
946410622 },
946510623 .{
9466 .name = "OpRayQueryGenerateIntersectionKHR",
9467 .opcode = 4475,
10624 .name = "OpUntypedImageTexelPointerEXT",
10625 .opcode = 5126,
946810626 .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 },
946910631 .{ .kind = .id_ref, .quantifier = .required },
947010632 .{ .kind = .id_ref, .quantifier = .required },
947110633 },
947210634 },
947310635 .{
9474 .name = "OpRayQueryConfirmIntersectionKHR",
9475 .opcode = 4476,
10636 .name = "OpMemberDecorateIdEXT",
10637 .opcode = 5127,
947610638 .operands = &.{
947710639 .{ .kind = .id_ref, .quantifier = .required },
10640 .{ .kind = .literal_integer, .quantifier = .required },
10641 .{ .kind = .decoration, .quantifier = .required },
947810642 },
947910643 },
948010644 .{
9481 .name = "OpRayQueryProceedKHR",
9482 .opcode = 4477,
10645 .name = "OpConstantSizeOfEXT",
10646 .opcode = 5129,
948310647 .operands = &.{
948410648 .{ .kind = .id_result_type, .quantifier = .required },
948510649 .{ .kind = .id_result, .quantifier = .required },
......@@ -9487,69 +10651,53 @@ pub const InstructionSet = enum {
948710651 },
948810652 },
948910653 .{
9490 .name = "OpRayQueryGetIntersectionTypeKHR",
9491 .opcode = 4479,
10654 .name = "OpConstantDataKHR",
10655 .opcode = 5147,
949210656 .operands = &.{
949310657 .{ .kind = .id_result_type, .quantifier = .required },
949410658 .{ .kind = .id_result, .quantifier = .required },
9495 .{ .kind = .id_ref, .quantifier = .required },
9496 .{ .kind = .id_ref, .quantifier = .required },
10659 .{ .kind = .literal_integer, .quantifier = .variadic },
949710660 },
949810661 },
949910662 .{
9500 .name = "OpImageSampleWeightedQCOM",
9501 .opcode = 4480,
10663 .name = "OpSpecConstantDataKHR",
10664 .opcode = 5148,
950210665 .operands = &.{
950310666 .{ .kind = .id_result_type, .quantifier = .required },
950410667 .{ .kind = .id_result, .quantifier = .required },
9505 .{ .kind = .id_ref, .quantifier = .required },
9506 .{ .kind = .id_ref, .quantifier = .required },
9507 .{ .kind = .id_ref, .quantifier = .required },
10668 .{ .kind = .literal_integer, .quantifier = .variadic },
950810669 },
950910670 },
951010671 .{
9511 .name = "OpImageBoxFilterQCOM",
9512 .opcode = 4481,
10672 .name = "OpPoisonKHR",
10673 .opcode = 5158,
951310674 .operands = &.{
951410675 .{ .kind = .id_result_type, .quantifier = .required },
951510676 .{ .kind = .id_result, .quantifier = .required },
9516 .{ .kind = .id_ref, .quantifier = .required },
9517 .{ .kind = .id_ref, .quantifier = .required },
9518 .{ .kind = .id_ref, .quantifier = .required },
951910677 },
952010678 },
952110679 .{
9522 .name = "OpImageBlockMatchSSDQCOM",
9523 .opcode = 4482,
10680 .name = "OpFreezeKHR",
10681 .opcode = 5159,
952410682 .operands = &.{
952510683 .{ .kind = .id_result_type, .quantifier = .required },
952610684 .{ .kind = .id_result, .quantifier = .required },
952710685 .{ .kind = .id_ref, .quantifier = .required },
9528 .{ .kind = .id_ref, .quantifier = .required },
9529 .{ .kind = .id_ref, .quantifier = .required },
9530 .{ .kind = .id_ref, .quantifier = .required },
9531 .{ .kind = .id_ref, .quantifier = .required },
953210686 },
953310687 },
953410688 .{
9535 .name = "OpImageBlockMatchSADQCOM",
9536 .opcode = 4483,
10689 .name = "OpHitObjectRecordHitMotionNV",
10690 .opcode = 5249,
953710691 .operands = &.{
9538 .{ .kind = .id_result_type, .quantifier = .required },
9539 .{ .kind = .id_result, .quantifier = .required },
954010692 .{ .kind = .id_ref, .quantifier = .required },
954110693 .{ .kind = .id_ref, .quantifier = .required },
954210694 .{ .kind = .id_ref, .quantifier = .required },
954310695 .{ .kind = .id_ref, .quantifier = .required },
954410696 .{ .kind = .id_ref, .quantifier = .required },
9545 },
9546 },
9547 .{
9548 .name = "OpImageBlockMatchWindowSSDQCOM",
9549 .opcode = 4500,
9550 .operands = &.{
9551 .{ .kind = .id_result_type, .quantifier = .required },
9552 .{ .kind = .id_result, .quantifier = .required },
10697 .{ .kind = .id_ref, .quantifier = .required },
10698 .{ .kind = .id_ref, .quantifier = .required },
10699 .{ .kind = .id_ref, .quantifier = .required },
10700 .{ .kind = .id_ref, .quantifier = .required },
955310701 .{ .kind = .id_ref, .quantifier = .required },
955410702 .{ .kind = .id_ref, .quantifier = .required },
955510703 .{ .kind = .id_ref, .quantifier = .required },
......@@ -9558,24 +10706,17 @@ pub const InstructionSet = enum {
955810706 },
955910707 },
956010708 .{
9561 .name = "OpImageBlockMatchWindowSADQCOM",
9562 .opcode = 4501,
10709 .name = "OpHitObjectRecordHitWithIndexMotionNV",
10710 .opcode = 5250,
956310711 .operands = &.{
9564 .{ .kind = .id_result_type, .quantifier = .required },
9565 .{ .kind = .id_result, .quantifier = .required },
956610712 .{ .kind = .id_ref, .quantifier = .required },
956710713 .{ .kind = .id_ref, .quantifier = .required },
956810714 .{ .kind = .id_ref, .quantifier = .required },
956910715 .{ .kind = .id_ref, .quantifier = .required },
957010716 .{ .kind = .id_ref, .quantifier = .required },
9571 },
9572 },
9573 .{
9574 .name = "OpImageBlockMatchGatherSSDQCOM",
9575 .opcode = 4502,
9576 .operands = &.{
9577 .{ .kind = .id_result_type, .quantifier = .required },
9578 .{ .kind = .id_result, .quantifier = .required },
10717 .{ .kind = .id_ref, .quantifier = .required },
10718 .{ .kind = .id_ref, .quantifier = .required },
10719 .{ .kind = .id_ref, .quantifier = .required },
957910720 .{ .kind = .id_ref, .quantifier = .required },
958010721 .{ .kind = .id_ref, .quantifier = .required },
958110722 .{ .kind = .id_ref, .quantifier = .required },
......@@ -9584,11 +10725,11 @@ pub const InstructionSet = enum {
958410725 },
958510726 },
958610727 .{
9587 .name = "OpImageBlockMatchGatherSADQCOM",
9588 .opcode = 4503,
10728 .name = "OpHitObjectRecordMissMotionNV",
10729 .opcode = 5251,
958910730 .operands = &.{
9590 .{ .kind = .id_result_type, .quantifier = .required },
9591 .{ .kind = .id_result, .quantifier = .required },
10731 .{ .kind = .id_ref, .quantifier = .required },
10732 .{ .kind = .id_ref, .quantifier = .required },
959210733 .{ .kind = .id_ref, .quantifier = .required },
959310734 .{ .kind = .id_ref, .quantifier = .required },
959410735 .{ .kind = .id_ref, .quantifier = .required },
......@@ -9597,161 +10738,163 @@ pub const InstructionSet = enum {
959710738 },
959810739 },
959910740 .{
9600 .name = "OpGroupIAddNonUniformAMD",
9601 .opcode = 5000,
10741 .name = "OpHitObjectGetWorldToObjectNV",
10742 .opcode = 5252,
960210743 .operands = &.{
960310744 .{ .kind = .id_result_type, .quantifier = .required },
960410745 .{ .kind = .id_result, .quantifier = .required },
9605 .{ .kind = .id_scope, .quantifier = .required },
9606 .{ .kind = .group_operation, .quantifier = .required },
960710746 .{ .kind = .id_ref, .quantifier = .required },
960810747 },
960910748 },
961010749 .{
9611 .name = "OpGroupFAddNonUniformAMD",
9612 .opcode = 5001,
10750 .name = "OpHitObjectGetObjectToWorldNV",
10751 .opcode = 5253,
961310752 .operands = &.{
961410753 .{ .kind = .id_result_type, .quantifier = .required },
961510754 .{ .kind = .id_result, .quantifier = .required },
9616 .{ .kind = .id_scope, .quantifier = .required },
9617 .{ .kind = .group_operation, .quantifier = .required },
961810755 .{ .kind = .id_ref, .quantifier = .required },
961910756 },
962010757 },
962110758 .{
9622 .name = "OpGroupFMinNonUniformAMD",
9623 .opcode = 5002,
10759 .name = "OpHitObjectGetObjectRayDirectionNV",
10760 .opcode = 5254,
962410761 .operands = &.{
962510762 .{ .kind = .id_result_type, .quantifier = .required },
962610763 .{ .kind = .id_result, .quantifier = .required },
9627 .{ .kind = .id_scope, .quantifier = .required },
9628 .{ .kind = .group_operation, .quantifier = .required },
962910764 .{ .kind = .id_ref, .quantifier = .required },
963010765 },
963110766 },
963210767 .{
9633 .name = "OpGroupUMinNonUniformAMD",
9634 .opcode = 5003,
10768 .name = "OpHitObjectGetObjectRayOriginNV",
10769 .opcode = 5255,
963510770 .operands = &.{
963610771 .{ .kind = .id_result_type, .quantifier = .required },
963710772 .{ .kind = .id_result, .quantifier = .required },
9638 .{ .kind = .id_scope, .quantifier = .required },
9639 .{ .kind = .group_operation, .quantifier = .required },
964010773 .{ .kind = .id_ref, .quantifier = .required },
964110774 },
964210775 },
964310776 .{
9644 .name = "OpGroupSMinNonUniformAMD",
9645 .opcode = 5004,
10777 .name = "OpHitObjectTraceRayMotionNV",
10778 .opcode = 5256,
964610779 .operands = &.{
9647 .{ .kind = .id_result_type, .quantifier = .required },
9648 .{ .kind = .id_result, .quantifier = .required },
9649 .{ .kind = .id_scope, .quantifier = .required },
9650 .{ .kind = .group_operation, .quantifier = .required },
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 },
965110792 .{ .kind = .id_ref, .quantifier = .required },
965210793 },
965310794 },
965410795 .{
9655 .name = "OpGroupFMaxNonUniformAMD",
9656 .opcode = 5005,
10796 .name = "OpHitObjectGetShaderRecordBufferHandleNV",
10797 .opcode = 5257,
965710798 .operands = &.{
965810799 .{ .kind = .id_result_type, .quantifier = .required },
965910800 .{ .kind = .id_result, .quantifier = .required },
9660 .{ .kind = .id_scope, .quantifier = .required },
9661 .{ .kind = .group_operation, .quantifier = .required },
966210801 .{ .kind = .id_ref, .quantifier = .required },
966310802 },
966410803 },
966510804 .{
9666 .name = "OpGroupUMaxNonUniformAMD",
9667 .opcode = 5006,
10805 .name = "OpHitObjectGetShaderBindingTableRecordIndexNV",
10806 .opcode = 5258,
966810807 .operands = &.{
966910808 .{ .kind = .id_result_type, .quantifier = .required },
967010809 .{ .kind = .id_result, .quantifier = .required },
9671 .{ .kind = .id_scope, .quantifier = .required },
9672 .{ .kind = .group_operation, .quantifier = .required },
967310810 .{ .kind = .id_ref, .quantifier = .required },
967410811 },
967510812 },
967610813 .{
9677 .name = "OpGroupSMaxNonUniformAMD",
9678 .opcode = 5007,
10814 .name = "OpHitObjectRecordEmptyNV",
10815 .opcode = 5259,
967910816 .operands = &.{
9680 .{ .kind = .id_result_type, .quantifier = .required },
9681 .{ .kind = .id_result, .quantifier = .required },
9682 .{ .kind = .id_scope, .quantifier = .required },
9683 .{ .kind = .group_operation, .quantifier = .required },
968410817 .{ .kind = .id_ref, .quantifier = .required },
968510818 },
968610819 },
968710820 .{
9688 .name = "OpFragmentMaskFetchAMD",
9689 .opcode = 5011,
10821 .name = "OpHitObjectTraceRayNV",
10822 .opcode = 5260,
969010823 .operands = &.{
9691 .{ .kind = .id_result_type, .quantifier = .required },
9692 .{ .kind = .id_result, .quantifier = .required },
969310824 .{ .kind = .id_ref, .quantifier = .required },
969410825 .{ .kind = .id_ref, .quantifier = .required },
9695 },
9696 },
9697 .{
9698 .name = "OpFragmentFetchAMD",
9699 .opcode = 5012,
9700 .operands = &.{
9701 .{ .kind = .id_result_type, .quantifier = .required },
9702 .{ .kind = .id_result, .quantifier = .required },
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 },
970310833 .{ .kind = .id_ref, .quantifier = .required },
970410834 .{ .kind = .id_ref, .quantifier = .required },
970510835 .{ .kind = .id_ref, .quantifier = .required },
970610836 },
970710837 },
970810838 .{
9709 .name = "OpReadClockKHR",
9710 .opcode = 5056,
9711 .operands = &.{
9712 .{ .kind = .id_result_type, .quantifier = .required },
9713 .{ .kind = .id_result, .quantifier = .required },
9714 .{ .kind = .id_scope, .quantifier = .required },
9715 },
9716 },
9717 .{
9718 .name = "OpAllocateNodePayloadsAMDX",
9719 .opcode = 5074,
10839 .name = "OpHitObjectRecordHitNV",
10840 .opcode = 5261,
972010841 .operands = &.{
9721 .{ .kind = .id_result_type, .quantifier = .required },
9722 .{ .kind = .id_result, .quantifier = .required },
9723 .{ .kind = .id_scope, .quantifier = .required },
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 },
972410853 .{ .kind = .id_ref, .quantifier = .required },
972510854 .{ .kind = .id_ref, .quantifier = .required },
972610855 },
972710856 },
972810857 .{
9729 .name = "OpEnqueueNodePayloadsAMDX",
9730 .opcode = 5075,
10858 .name = "OpHitObjectRecordHitWithIndexNV",
10859 .opcode = 5262,
973110860 .operands = &.{
973210861 .{ .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 },
973310873 },
973410874 },
973510875 .{
9736 .name = "OpTypeNodePayloadArrayAMDX",
9737 .opcode = 5076,
10876 .name = "OpHitObjectRecordMissNV",
10877 .opcode = 5263,
973810878 .operands = &.{
9739 .{ .kind = .id_result, .quantifier = .required },
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 },
974010884 .{ .kind = .id_ref, .quantifier = .required },
974110885 },
974210886 },
974310887 .{
9744 .name = "OpFinishWritingNodePayloadAMDX",
9745 .opcode = 5078,
10888 .name = "OpHitObjectExecuteShaderNV",
10889 .opcode = 5264,
974610890 .operands = &.{
9747 .{ .kind = .id_result_type, .quantifier = .required },
9748 .{ .kind = .id_result, .quantifier = .required },
10891 .{ .kind = .id_ref, .quantifier = .required },
974910892 .{ .kind = .id_ref, .quantifier = .required },
975010893 },
975110894 },
975210895 .{
9753 .name = "OpNodePayloadArrayLengthAMDX",
9754 .opcode = 5090,
10896 .name = "OpHitObjectGetCurrentTimeNV",
10897 .opcode = 5265,
975510898 .operands = &.{
975610899 .{ .kind = .id_result_type, .quantifier = .required },
975710900 .{ .kind = .id_result, .quantifier = .required },
......@@ -9759,34 +10902,25 @@ pub const InstructionSet = enum {
975910902 },
976010903 },
976110904 .{
9762 .name = "OpIsNodePayloadValidAMDX",
9763 .opcode = 5101,
10905 .name = "OpHitObjectGetAttributesNV",
10906 .opcode = 5266,
976410907 .operands = &.{
9765 .{ .kind = .id_result_type, .quantifier = .required },
9766 .{ .kind = .id_result, .quantifier = .required },
976710908 .{ .kind = .id_ref, .quantifier = .required },
976810909 .{ .kind = .id_ref, .quantifier = .required },
976910910 },
977010911 },
977110912 .{
9772 .name = "OpConstantStringAMDX",
9773 .opcode = 5103,
9774 .operands = &.{
9775 .{ .kind = .id_result, .quantifier = .required },
9776 .{ .kind = .literal_string, .quantifier = .required },
9777 },
9778 },
9779 .{
9780 .name = "OpSpecConstantStringAMDX",
9781 .opcode = 5104,
10913 .name = "OpHitObjectGetHitKindNV",
10914 .opcode = 5267,
978210915 .operands = &.{
10916 .{ .kind = .id_result_type, .quantifier = .required },
978310917 .{ .kind = .id_result, .quantifier = .required },
9784 .{ .kind = .literal_string, .quantifier = .required },
10918 .{ .kind = .id_ref, .quantifier = .required },
978510919 },
978610920 },
978710921 .{
9788 .name = "OpGroupNonUniformQuadAllKHR",
9789 .opcode = 5110,
10922 .name = "OpHitObjectGetPrimitiveIndexNV",
10923 .opcode = 5268,
979010924 .operands = &.{
979110925 .{ .kind = .id_result_type, .quantifier = .required },
979210926 .{ .kind = .id_result, .quantifier = .required },
......@@ -9794,8 +10928,8 @@ pub const InstructionSet = enum {
979410928 },
979510929 },
979610930 .{
9797 .name = "OpGroupNonUniformQuadAnyKHR",
9798 .opcode = 5111,
10931 .name = "OpHitObjectGetGeometryIndexNV",
10932 .opcode = 5269,
979910933 .operands = &.{
980010934 .{ .kind = .id_result_type, .quantifier = .required },
980110935 .{ .kind = .id_result, .quantifier = .required },
......@@ -9803,60 +10937,35 @@ pub const InstructionSet = enum {
980310937 },
980410938 },
980510939 .{
9806 .name = "OpHitObjectRecordHitMotionNV",
9807 .opcode = 5249,
10940 .name = "OpHitObjectGetInstanceIdNV",
10941 .opcode = 5270,
980810942 .operands = &.{
9809 .{ .kind = .id_ref, .quantifier = .required },
9810 .{ .kind = .id_ref, .quantifier = .required },
9811 .{ .kind = .id_ref, .quantifier = .required },
9812 .{ .kind = .id_ref, .quantifier = .required },
9813 .{ .kind = .id_ref, .quantifier = .required },
9814 .{ .kind = .id_ref, .quantifier = .required },
9815 .{ .kind = .id_ref, .quantifier = .required },
9816 .{ .kind = .id_ref, .quantifier = .required },
9817 .{ .kind = .id_ref, .quantifier = .required },
9818 .{ .kind = .id_ref, .quantifier = .required },
9819 .{ .kind = .id_ref, .quantifier = .required },
9820 .{ .kind = .id_ref, .quantifier = .required },
9821 .{ .kind = .id_ref, .quantifier = .required },
10943 .{ .kind = .id_result_type, .quantifier = .required },
10944 .{ .kind = .id_result, .quantifier = .required },
982210945 .{ .kind = .id_ref, .quantifier = .required },
982310946 },
982410947 },
982510948 .{
9826 .name = "OpHitObjectRecordHitWithIndexMotionNV",
9827 .opcode = 5250,
9828 .operands = &.{
9829 .{ .kind = .id_ref, .quantifier = .required },
9830 .{ .kind = .id_ref, .quantifier = .required },
9831 .{ .kind = .id_ref, .quantifier = .required },
9832 .{ .kind = .id_ref, .quantifier = .required },
9833 .{ .kind = .id_ref, .quantifier = .required },
9834 .{ .kind = .id_ref, .quantifier = .required },
9835 .{ .kind = .id_ref, .quantifier = .required },
9836 .{ .kind = .id_ref, .quantifier = .required },
9837 .{ .kind = .id_ref, .quantifier = .required },
9838 .{ .kind = .id_ref, .quantifier = .required },
9839 .{ .kind = .id_ref, .quantifier = .required },
9840 .{ .kind = .id_ref, .quantifier = .required },
10949 .name = "OpHitObjectGetInstanceCustomIndexNV",
10950 .opcode = 5271,
10951 .operands = &.{
10952 .{ .kind = .id_result_type, .quantifier = .required },
10953 .{ .kind = .id_result, .quantifier = .required },
984110954 .{ .kind = .id_ref, .quantifier = .required },
984210955 },
984310956 },
984410957 .{
9845 .name = "OpHitObjectRecordMissMotionNV",
9846 .opcode = 5251,
10958 .name = "OpHitObjectGetWorldRayDirectionNV",
10959 .opcode = 5272,
984710960 .operands = &.{
9848 .{ .kind = .id_ref, .quantifier = .required },
9849 .{ .kind = .id_ref, .quantifier = .required },
9850 .{ .kind = .id_ref, .quantifier = .required },
9851 .{ .kind = .id_ref, .quantifier = .required },
9852 .{ .kind = .id_ref, .quantifier = .required },
9853 .{ .kind = .id_ref, .quantifier = .required },
10961 .{ .kind = .id_result_type, .quantifier = .required },
10962 .{ .kind = .id_result, .quantifier = .required },
985410963 .{ .kind = .id_ref, .quantifier = .required },
985510964 },
985610965 },
985710966 .{
9858 .name = "OpHitObjectGetWorldToObjectNV",
9859 .opcode = 5252,
10967 .name = "OpHitObjectGetWorldRayOriginNV",
10968 .opcode = 5273,
986010969 .operands = &.{
986110970 .{ .kind = .id_result_type, .quantifier = .required },
986210971 .{ .kind = .id_result, .quantifier = .required },
......@@ -9864,8 +10973,8 @@ pub const InstructionSet = enum {
986410973 },
986510974 },
986610975 .{
9867 .name = "OpHitObjectGetObjectToWorldNV",
9868 .opcode = 5253,
10976 .name = "OpHitObjectGetRayTMaxNV",
10977 .opcode = 5274,
986910978 .operands = &.{
987010979 .{ .kind = .id_result_type, .quantifier = .required },
987110980 .{ .kind = .id_result, .quantifier = .required },
......@@ -9873,8 +10982,8 @@ pub const InstructionSet = enum {
987310982 },
987410983 },
987510984 .{
9876 .name = "OpHitObjectGetObjectRayDirectionNV",
9877 .opcode = 5254,
10985 .name = "OpHitObjectGetRayTMinNV",
10986 .opcode = 5275,
987810987 .operands = &.{
987910988 .{ .kind = .id_result_type, .quantifier = .required },
988010989 .{ .kind = .id_result, .quantifier = .required },
......@@ -9882,8 +10991,8 @@ pub const InstructionSet = enum {
988210991 },
988310992 },
988410993 .{
9885 .name = "OpHitObjectGetObjectRayOriginNV",
9886 .opcode = 5255,
10994 .name = "OpHitObjectIsEmptyNV",
10995 .opcode = 5276,
988710996 .operands = &.{
988810997 .{ .kind = .id_result_type, .quantifier = .required },
988910998 .{ .kind = .id_result, .quantifier = .required },
......@@ -9891,53 +11000,75 @@ pub const InstructionSet = enum {
989111000 },
989211001 },
989311002 .{
9894 .name = "OpHitObjectTraceRayMotionNV",
9895 .opcode = 5256,
11003 .name = "OpHitObjectIsHitNV",
11004 .opcode = 5277,
989611005 .operands = &.{
11006 .{ .kind = .id_result_type, .quantifier = .required },
11007 .{ .kind = .id_result, .quantifier = .required },
989711008 .{ .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 },
989811017 .{ .kind = .id_ref, .quantifier = .required },
11018 },
11019 },
11020 .{
11021 .name = "OpReorderThreadWithHitObjectNV",
11022 .opcode = 5279,
11023 .operands = &.{
989911024 .{ .kind = .id_ref, .quantifier = .required },
9900 .{ .kind = .id_ref, .quantifier = .required },
9901 .{ .kind = .id_ref, .quantifier = .required },
9902 .{ .kind = .id_ref, .quantifier = .required },
9903 .{ .kind = .id_ref, .quantifier = .required },
9904 .{ .kind = .id_ref, .quantifier = .required },
9905 .{ .kind = .id_ref, .quantifier = .required },
9906 .{ .kind = .id_ref, .quantifier = .required },
9907 .{ .kind = .id_ref, .quantifier = .required },
11025 .{ .kind = .id_ref, .quantifier = .optional },
11026 .{ .kind = .id_ref, .quantifier = .optional },
11027 },
11028 },
11029 .{
11030 .name = "OpReorderThreadWithHintNV",
11031 .opcode = 5280,
11032 .operands = &.{
990811033 .{ .kind = .id_ref, .quantifier = .required },
990911034 .{ .kind = .id_ref, .quantifier = .required },
991011035 },
991111036 },
991211037 .{
9913 .name = "OpHitObjectGetShaderRecordBufferHandleNV",
9914 .opcode = 5257,
11038 .name = "OpTypeHitObjectNV",
11039 .opcode = 5281,
991511040 .operands = &.{
9916 .{ .kind = .id_result_type, .quantifier = .required },
991711041 .{ .kind = .id_result, .quantifier = .required },
9918 .{ .kind = .id_ref, .quantifier = .required },
991911042 },
992011043 },
992111044 .{
9922 .name = "OpHitObjectGetShaderBindingTableRecordIndexNV",
9923 .opcode = 5258,
11045 .name = "OpImageSampleFootprintNV",
11046 .opcode = 5283,
992411047 .operands = &.{
992511048 .{ .kind = .id_result_type, .quantifier = .required },
992611049 .{ .kind = .id_result, .quantifier = .required },
992711050 .{ .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 },
992811055 },
992911056 },
993011057 .{
9931 .name = "OpHitObjectRecordEmptyNV",
9932 .opcode = 5259,
11058 .name = "OpTypeVectorIdEXT",
11059 .opcode = 5288,
993311060 .operands = &.{
11061 .{ .kind = .id_result, .quantifier = .required },
11062 .{ .kind = .id_ref, .quantifier = .required },
993411063 .{ .kind = .id_ref, .quantifier = .required },
993511064 },
993611065 },
993711066 .{
9938 .name = "OpHitObjectTraceRayNV",
9939 .opcode = 5260,
11067 .name = "OpCooperativeVectorMatrixMulNV",
11068 .opcode = 5289,
994011069 .operands = &.{
11070 .{ .kind = .id_result_type, .quantifier = .required },
11071 .{ .kind = .id_result, .quantifier = .required },
994111072 .{ .kind = .id_ref, .quantifier = .required },
994211073 .{ .kind = .id_ref, .quantifier = .required },
994311074 .{ .kind = .id_ref, .quantifier = .required },
......@@ -9947,14 +11078,13 @@ pub const InstructionSet = enum {
994711078 .{ .kind = .id_ref, .quantifier = .required },
994811079 .{ .kind = .id_ref, .quantifier = .required },
994911080 .{ .kind = .id_ref, .quantifier = .required },
9950 .{ .kind = .id_ref, .quantifier = .required },
9951 .{ .kind = .id_ref, .quantifier = .required },
9952 .{ .kind = .id_ref, .quantifier = .required },
11081 .{ .kind = .id_ref, .quantifier = .optional },
11082 .{ .kind = .cooperative_matrix_operands, .quantifier = .optional },
995311083 },
995411084 },
995511085 .{
9956 .name = "OpHitObjectRecordHitNV",
9957 .opcode = 5261,
11086 .name = "OpCooperativeVectorOuterProductAccumulateNV",
11087 .opcode = 5290,
995811088 .operands = &.{
995911089 .{ .kind = .id_ref, .quantifier = .required },
996011090 .{ .kind = .id_ref, .quantifier = .required },
......@@ -9962,19 +11092,24 @@ pub const InstructionSet = enum {
996211092 .{ .kind = .id_ref, .quantifier = .required },
996311093 .{ .kind = .id_ref, .quantifier = .required },
996411094 .{ .kind = .id_ref, .quantifier = .required },
9965 .{ .kind = .id_ref, .quantifier = .required },
9966 .{ .kind = .id_ref, .quantifier = .required },
9967 .{ .kind = .id_ref, .quantifier = .required },
9968 .{ .kind = .id_ref, .quantifier = .required },
11095 .{ .kind = .id_ref, .quantifier = .optional },
11096 },
11097 },
11098 .{
11099 .name = "OpCooperativeVectorReduceSumAccumulateNV",
11100 .opcode = 5291,
11101 .operands = &.{
996911102 .{ .kind = .id_ref, .quantifier = .required },
997011103 .{ .kind = .id_ref, .quantifier = .required },
997111104 .{ .kind = .id_ref, .quantifier = .required },
997211105 },
997311106 },
997411107 .{
9975 .name = "OpHitObjectRecordHitWithIndexNV",
9976 .opcode = 5262,
11108 .name = "OpCooperativeVectorMatrixMulAddNV",
11109 .opcode = 5292,
997711110 .operands = &.{
11111 .{ .kind = .id_result_type, .quantifier = .required },
11112 .{ .kind = .id_result, .quantifier = .required },
997811113 .{ .kind = .id_ref, .quantifier = .required },
997911114 .{ .kind = .id_ref, .quantifier = .required },
998011115 .{ .kind = .id_ref, .quantifier = .required },
......@@ -9987,31 +11122,40 @@ pub const InstructionSet = enum {
998711122 .{ .kind = .id_ref, .quantifier = .required },
998811123 .{ .kind = .id_ref, .quantifier = .required },
998911124 .{ .kind = .id_ref, .quantifier = .required },
11125 .{ .kind = .id_ref, .quantifier = .optional },
11126 .{ .kind = .cooperative_matrix_operands, .quantifier = .optional },
999011127 },
999111128 },
999211129 .{
9993 .name = "OpHitObjectRecordMissNV",
9994 .opcode = 5263,
11130 .name = "OpCooperativeMatrixConvertNV",
11131 .opcode = 5293,
999511132 .operands = &.{
11133 .{ .kind = .id_result_type, .quantifier = .required },
11134 .{ .kind = .id_result, .quantifier = .required },
999611135 .{ .kind = .id_ref, .quantifier = .required },
11136 },
11137 },
11138 .{
11139 .name = "OpEmitMeshTasksEXT",
11140 .opcode = 5294,
11141 .operands = &.{
999711142 .{ .kind = .id_ref, .quantifier = .required },
999811143 .{ .kind = .id_ref, .quantifier = .required },
999911144 .{ .kind = .id_ref, .quantifier = .required },
10000 .{ .kind = .id_ref, .quantifier = .required },
10001 .{ .kind = .id_ref, .quantifier = .required },
11145 .{ .kind = .id_ref, .quantifier = .optional },
1000211146 },
1000311147 },
1000411148 .{
10005 .name = "OpHitObjectExecuteShaderNV",
10006 .opcode = 5264,
11149 .name = "OpSetMeshOutputsEXT",
11150 .opcode = 5295,
1000711151 .operands = &.{
1000811152 .{ .kind = .id_ref, .quantifier = .required },
1000911153 .{ .kind = .id_ref, .quantifier = .required },
1001011154 },
1001111155 },
1001211156 .{
10013 .name = "OpHitObjectGetCurrentTimeNV",
10014 .opcode = 5265,
11157 .name = "OpGroupNonUniformPartitionEXT",
11158 .opcode = 5296,
1001511159 .operands = &.{
1001611160 .{ .kind = .id_result_type, .quantifier = .required },
1001711161 .{ .kind = .id_result, .quantifier = .required },
......@@ -10019,88 +11163,100 @@ pub const InstructionSet = enum {
1001911163 },
1002011164 },
1002111165 .{
10022 .name = "OpHitObjectGetAttributesNV",
10023 .opcode = 5266,
11166 .name = "OpWritePackedPrimitiveIndices4x8NV",
11167 .opcode = 5299,
1002411168 .operands = &.{
1002511169 .{ .kind = .id_ref, .quantifier = .required },
1002611170 .{ .kind = .id_ref, .quantifier = .required },
1002711171 },
1002811172 },
1002911173 .{
10030 .name = "OpHitObjectGetHitKindNV",
10031 .opcode = 5267,
11174 .name = "OpFetchMicroTriangleVertexPositionNV",
11175 .opcode = 5300,
1003211176 .operands = &.{
1003311177 .{ .kind = .id_result_type, .quantifier = .required },
1003411178 .{ .kind = .id_result, .quantifier = .required },
1003511179 .{ .kind = .id_ref, .quantifier = .required },
10036 },
10037 },
10038 .{
10039 .name = "OpHitObjectGetPrimitiveIndexNV",
10040 .opcode = 5268,
10041 .operands = &.{
10042 .{ .kind = .id_result_type, .quantifier = .required },
10043 .{ .kind = .id_result, .quantifier = .required },
11180 .{ .kind = .id_ref, .quantifier = .required },
11181 .{ .kind = .id_ref, .quantifier = .required },
11182 .{ .kind = .id_ref, .quantifier = .required },
1004411183 .{ .kind = .id_ref, .quantifier = .required },
1004511184 },
1004611185 },
1004711186 .{
10048 .name = "OpHitObjectGetGeometryIndexNV",
10049 .opcode = 5269,
11187 .name = "OpFetchMicroTriangleVertexBarycentricNV",
11188 .opcode = 5301,
1005011189 .operands = &.{
1005111190 .{ .kind = .id_result_type, .quantifier = .required },
1005211191 .{ .kind = .id_result, .quantifier = .required },
1005311192 .{ .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 },
1005411197 },
1005511198 },
1005611199 .{
10057 .name = "OpHitObjectGetInstanceIdNV",
10058 .opcode = 5270,
11200 .name = "OpCooperativeVectorLoadNV",
11201 .opcode = 5302,
1005911202 .operands = &.{
1006011203 .{ .kind = .id_result_type, .quantifier = .required },
1006111204 .{ .kind = .id_result, .quantifier = .required },
1006211205 .{ .kind = .id_ref, .quantifier = .required },
11206 .{ .kind = .id_ref, .quantifier = .required },
11207 .{ .kind = .memory_access, .quantifier = .optional },
1006311208 },
1006411209 },
1006511210 .{
10066 .name = "OpHitObjectGetInstanceCustomIndexNV",
10067 .opcode = 5271,
11211 .name = "OpCooperativeVectorStoreNV",
11212 .opcode = 5303,
1006811213 .operands = &.{
10069 .{ .kind = .id_result_type, .quantifier = .required },
10070 .{ .kind = .id_result, .quantifier = .required },
1007111214 .{ .kind = .id_ref, .quantifier = .required },
11215 .{ .kind = .id_ref, .quantifier = .required },
11216 .{ .kind = .id_ref, .quantifier = .required },
11217 .{ .kind = .memory_access, .quantifier = .optional },
1007211218 },
1007311219 },
1007411220 .{
10075 .name = "OpHitObjectGetWorldRayDirectionNV",
10076 .opcode = 5272,
11221 .name = "OpHitObjectRecordFromQueryEXT",
11222 .opcode = 5304,
1007711223 .operands = &.{
10078 .{ .kind = .id_result_type, .quantifier = .required },
10079 .{ .kind = .id_result, .quantifier = .required },
11224 .{ .kind = .id_ref, .quantifier = .required },
11225 .{ .kind = .id_ref, .quantifier = .required },
11226 .{ .kind = .id_ref, .quantifier = .required },
1008011227 .{ .kind = .id_ref, .quantifier = .required },
1008111228 },
1008211229 },
1008311230 .{
10084 .name = "OpHitObjectGetWorldRayOriginNV",
10085 .opcode = 5273,
11231 .name = "OpHitObjectRecordMissEXT",
11232 .opcode = 5305,
1008611233 .operands = &.{
10087 .{ .kind = .id_result_type, .quantifier = .required },
10088 .{ .kind = .id_result, .quantifier = .required },
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 },
1008911240 .{ .kind = .id_ref, .quantifier = .required },
1009011241 },
1009111242 },
1009211243 .{
10093 .name = "OpHitObjectGetRayTMaxNV",
10094 .opcode = 5274,
11244 .name = "OpHitObjectRecordMissMotionEXT",
11245 .opcode = 5306,
1009511246 .operands = &.{
10096 .{ .kind = .id_result_type, .quantifier = .required },
10097 .{ .kind = .id_result, .quantifier = .required },
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 },
1009811254 .{ .kind = .id_ref, .quantifier = .required },
1009911255 },
1010011256 },
1010111257 .{
10102 .name = "OpHitObjectGetRayTMinNV",
10103 .opcode = 5275,
11258 .name = "OpHitObjectGetIntersectionTriangleVertexPositionsEXT",
11259 .opcode = 5307,
1010411260 .operands = &.{
1010511261 .{ .kind = .id_result_type, .quantifier = .required },
1010611262 .{ .kind = .id_result, .quantifier = .required },
......@@ -10108,8 +11264,8 @@ pub const InstructionSet = enum {
1010811264 },
1010911265 },
1011011266 .{
10111 .name = "OpHitObjectIsEmptyNV",
10112 .opcode = 5276,
11267 .name = "OpHitObjectGetRayFlagsEXT",
11268 .opcode = 5308,
1011311269 .operands = &.{
1011411270 .{ .kind = .id_result_type, .quantifier = .required },
1011511271 .{ .kind = .id_result, .quantifier = .required },
......@@ -10117,75 +11273,92 @@ pub const InstructionSet = enum {
1011711273 },
1011811274 },
1011911275 .{
10120 .name = "OpHitObjectIsHitNV",
10121 .opcode = 5277,
11276 .name = "OpHitObjectSetShaderBindingTableRecordIndexEXT",
11277 .opcode = 5309,
1012211278 .operands = &.{
10123 .{ .kind = .id_result_type, .quantifier = .required },
10124 .{ .kind = .id_result, .quantifier = .required },
11279 .{ .kind = .id_ref, .quantifier = .required },
1012511280 .{ .kind = .id_ref, .quantifier = .required },
1012611281 },
1012711282 },
1012811283 .{
10129 .name = "OpHitObjectIsMissNV",
10130 .opcode = 5278,
11284 .name = "OpHitObjectReorderExecuteShaderEXT",
11285 .opcode = 5310,
1013111286 .operands = &.{
10132 .{ .kind = .id_result_type, .quantifier = .required },
10133 .{ .kind = .id_result, .quantifier = .required },
1013411287 .{ .kind = .id_ref, .quantifier = .required },
11288 .{ .kind = .id_ref, .quantifier = .required },
11289 .{ .kind = .id_ref, .quantifier = .optional },
11290 .{ .kind = .id_ref, .quantifier = .optional },
1013511291 },
1013611292 },
1013711293 .{
10138 .name = "OpReorderThreadWithHitObjectNV",
10139 .opcode = 5279,
11294 .name = "OpHitObjectTraceReorderExecuteEXT",
11295 .opcode = 5311,
1014011296 .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 },
1014111308 .{ .kind = .id_ref, .quantifier = .required },
1014211309 .{ .kind = .id_ref, .quantifier = .optional },
1014311310 .{ .kind = .id_ref, .quantifier = .optional },
1014411311 },
1014511312 },
1014611313 .{
10147 .name = "OpReorderThreadWithHintNV",
10148 .opcode = 5280,
11314 .name = "OpHitObjectTraceMotionReorderExecuteEXT",
11315 .opcode = 5312,
1014911316 .operands = &.{
1015011317 .{ .kind = .id_ref, .quantifier = .required },
1015111318 .{ .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 },
1015211332 },
1015311333 },
1015411334 .{
10155 .name = "OpTypeHitObjectNV",
10156 .opcode = 5281,
11335 .name = "OpTypeHitObjectEXT",
11336 .opcode = 5313,
1015711337 .operands = &.{
1015811338 .{ .kind = .id_result, .quantifier = .required },
1015911339 },
1016011340 },
1016111341 .{
10162 .name = "OpImageSampleFootprintNV",
10163 .opcode = 5283,
11342 .name = "OpReorderThreadWithHintEXT",
11343 .opcode = 5314,
1016411344 .operands = &.{
10165 .{ .kind = .id_result_type, .quantifier = .required },
10166 .{ .kind = .id_result, .quantifier = .required },
10167 .{ .kind = .id_ref, .quantifier = .required },
10168 .{ .kind = .id_ref, .quantifier = .required },
1016911345 .{ .kind = .id_ref, .quantifier = .required },
1017011346 .{ .kind = .id_ref, .quantifier = .required },
10171 .{ .kind = .image_operands, .quantifier = .optional },
1017211347 },
1017311348 },
1017411349 .{
10175 .name = "OpTypeCooperativeVectorNV",
10176 .opcode = 5288,
11350 .name = "OpReorderThreadWithHitObjectEXT",
11351 .opcode = 5315,
1017711352 .operands = &.{
10178 .{ .kind = .id_result, .quantifier = .required },
10179 .{ .kind = .id_ref, .quantifier = .required },
1018011353 .{ .kind = .id_ref, .quantifier = .required },
11354 .{ .kind = .id_ref, .quantifier = .optional },
11355 .{ .kind = .id_ref, .quantifier = .optional },
1018111356 },
1018211357 },
1018311358 .{
10184 .name = "OpCooperativeVectorMatrixMulNV",
10185 .opcode = 5289,
11359 .name = "OpHitObjectTraceRayEXT",
11360 .opcode = 5316,
1018611361 .operands = &.{
10187 .{ .kind = .id_result_type, .quantifier = .required },
10188 .{ .kind = .id_result, .quantifier = .required },
1018911362 .{ .kind = .id_ref, .quantifier = .required },
1019011363 .{ .kind = .id_ref, .quantifier = .required },
1019111364 .{ .kind = .id_ref, .quantifier = .required },
......@@ -10195,13 +11368,14 @@ pub const InstructionSet = enum {
1019511368 .{ .kind = .id_ref, .quantifier = .required },
1019611369 .{ .kind = .id_ref, .quantifier = .required },
1019711370 .{ .kind = .id_ref, .quantifier = .required },
10198 .{ .kind = .id_ref, .quantifier = .optional },
10199 .{ .kind = .cooperative_matrix_operands, .quantifier = .optional },
11371 .{ .kind = .id_ref, .quantifier = .required },
11372 .{ .kind = .id_ref, .quantifier = .required },
11373 .{ .kind = .id_ref, .quantifier = .required },
1020011374 },
1020111375 },
1020211376 .{
10203 .name = "OpCooperativeVectorOuterProductAccumulateNV",
10204 .opcode = 5290,
11377 .name = "OpHitObjectTraceRayMotionEXT",
11378 .opcode = 5317,
1020511379 .operands = &.{
1020611380 .{ .kind = .id_ref, .quantifier = .required },
1020711381 .{ .kind = .id_ref, .quantifier = .required },
......@@ -10209,43 +11383,50 @@ pub const InstructionSet = enum {
1020911383 .{ .kind = .id_ref, .quantifier = .required },
1021011384 .{ .kind = .id_ref, .quantifier = .required },
1021111385 .{ .kind = .id_ref, .quantifier = .required },
10212 .{ .kind = .id_ref, .quantifier = .optional },
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 },
1021311393 },
1021411394 },
1021511395 .{
10216 .name = "OpCooperativeVectorReduceSumAccumulateNV",
10217 .opcode = 5291,
11396 .name = "OpHitObjectRecordEmptyEXT",
11397 .opcode = 5318,
1021811398 .operands = &.{
1021911399 .{ .kind = .id_ref, .quantifier = .required },
11400 },
11401 },
11402 .{
11403 .name = "OpHitObjectExecuteShaderEXT",
11404 .opcode = 5319,
11405 .operands = &.{
1022011406 .{ .kind = .id_ref, .quantifier = .required },
1022111407 .{ .kind = .id_ref, .quantifier = .required },
1022211408 },
1022311409 },
1022411410 .{
10225 .name = "OpCooperativeVectorMatrixMulAddNV",
10226 .opcode = 5292,
11411 .name = "OpHitObjectGetCurrentTimeEXT",
11412 .opcode = 5320,
1022711413 .operands = &.{
1022811414 .{ .kind = .id_result_type, .quantifier = .required },
1022911415 .{ .kind = .id_result, .quantifier = .required },
1023011416 .{ .kind = .id_ref, .quantifier = .required },
11417 },
11418 },
11419 .{
11420 .name = "OpHitObjectGetAttributesEXT",
11421 .opcode = 5321,
11422 .operands = &.{
1023111423 .{ .kind = .id_ref, .quantifier = .required },
1023211424 .{ .kind = .id_ref, .quantifier = .required },
10233 .{ .kind = .id_ref, .quantifier = .required },
10234 .{ .kind = .id_ref, .quantifier = .required },
10235 .{ .kind = .id_ref, .quantifier = .required },
10236 .{ .kind = .id_ref, .quantifier = .required },
10237 .{ .kind = .id_ref, .quantifier = .required },
10238 .{ .kind = .id_ref, .quantifier = .required },
10239 .{ .kind = .id_ref, .quantifier = .required },
10240 .{ .kind = .id_ref, .quantifier = .required },
10241 .{ .kind = .id_ref, .quantifier = .required },
10242 .{ .kind = .id_ref, .quantifier = .optional },
10243 .{ .kind = .cooperative_matrix_operands, .quantifier = .optional },
1024411425 },
1024511426 },
1024611427 .{
10247 .name = "OpCooperativeMatrixConvertNV",
10248 .opcode = 5293,
11428 .name = "OpHitObjectGetHitKindEXT",
11429 .opcode = 5322,
1024911430 .operands = &.{
1025011431 .{ .kind = .id_result_type, .quantifier = .required },
1025111432 .{ .kind = .id_result, .quantifier = .required },
......@@ -10253,26 +11434,26 @@ pub const InstructionSet = enum {
1025311434 },
1025411435 },
1025511436 .{
10256 .name = "OpEmitMeshTasksEXT",
10257 .opcode = 5294,
11437 .name = "OpHitObjectGetPrimitiveIndexEXT",
11438 .opcode = 5323,
1025811439 .operands = &.{
11440 .{ .kind = .id_result_type, .quantifier = .required },
11441 .{ .kind = .id_result, .quantifier = .required },
1025911442 .{ .kind = .id_ref, .quantifier = .required },
10260 .{ .kind = .id_ref, .quantifier = .required },
10261 .{ .kind = .id_ref, .quantifier = .required },
10262 .{ .kind = .id_ref, .quantifier = .optional },
1026311443 },
1026411444 },
1026511445 .{
10266 .name = "OpSetMeshOutputsEXT",
10267 .opcode = 5295,
11446 .name = "OpHitObjectGetGeometryIndexEXT",
11447 .opcode = 5324,
1026811448 .operands = &.{
10269 .{ .kind = .id_ref, .quantifier = .required },
11449 .{ .kind = .id_result_type, .quantifier = .required },
11450 .{ .kind = .id_result, .quantifier = .required },
1027011451 .{ .kind = .id_ref, .quantifier = .required },
1027111452 },
1027211453 },
1027311454 .{
10274 .name = "OpGroupNonUniformPartitionNV",
10275 .opcode = 5296,
11455 .name = "OpHitObjectGetInstanceIdEXT",
11456 .opcode = 5325,
1027611457 .operands = &.{
1027711458 .{ .kind = .id_result_type, .quantifier = .required },
1027811459 .{ .kind = .id_result, .quantifier = .required },
......@@ -10280,58 +11461,75 @@ pub const InstructionSet = enum {
1028011461 },
1028111462 },
1028211463 .{
10283 .name = "OpWritePackedPrimitiveIndices4x8NV",
10284 .opcode = 5299,
11464 .name = "OpHitObjectGetInstanceCustomIndexEXT",
11465 .opcode = 5326,
1028511466 .operands = &.{
10286 .{ .kind = .id_ref, .quantifier = .required },
11467 .{ .kind = .id_result_type, .quantifier = .required },
11468 .{ .kind = .id_result, .quantifier = .required },
1028711469 .{ .kind = .id_ref, .quantifier = .required },
1028811470 },
1028911471 },
1029011472 .{
10291 .name = "OpFetchMicroTriangleVertexPositionNV",
10292 .opcode = 5300,
11473 .name = "OpHitObjectGetObjectRayOriginEXT",
11474 .opcode = 5327,
1029311475 .operands = &.{
1029411476 .{ .kind = .id_result_type, .quantifier = .required },
1029511477 .{ .kind = .id_result, .quantifier = .required },
1029611478 .{ .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 },
1030111479 },
1030211480 },
1030311481 .{
10304 .name = "OpFetchMicroTriangleVertexBarycentricNV",
10305 .opcode = 5301,
11482 .name = "OpHitObjectGetObjectRayDirectionEXT",
11483 .opcode = 5328,
1030611484 .operands = &.{
1030711485 .{ .kind = .id_result_type, .quantifier = .required },
1030811486 .{ .kind = .id_result, .quantifier = .required },
1030911487 .{ .kind = .id_ref, .quantifier = .required },
10310 .{ .kind = .id_ref, .quantifier = .required },
10311 .{ .kind = .id_ref, .quantifier = .required },
10312 .{ .kind = .id_ref, .quantifier = .required },
10313 .{ .kind = .id_ref, .quantifier = .required },
1031411488 },
1031511489 },
1031611490 .{
10317 .name = "OpCooperativeVectorLoadNV",
10318 .opcode = 5302,
11491 .name = "OpHitObjectGetWorldRayDirectionEXT",
11492 .opcode = 5329,
1031911493 .operands = &.{
1032011494 .{ .kind = .id_result_type, .quantifier = .required },
1032111495 .{ .kind = .id_result, .quantifier = .required },
1032211496 .{ .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 },
1032311505 .{ .kind = .id_ref, .quantifier = .required },
10324 .{ .kind = .memory_access, .quantifier = .optional },
1032511506 },
1032611507 },
1032711508 .{
10328 .name = "OpCooperativeVectorStoreNV",
10329 .opcode = 5303,
11509 .name = "OpHitObjectGetObjectToWorldEXT",
11510 .opcode = 5331,
1033011511 .operands = &.{
11512 .{ .kind = .id_result_type, .quantifier = .required },
11513 .{ .kind = .id_result, .quantifier = .required },
1033111514 .{ .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 },
1033211523 .{ .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 },
1033311532 .{ .kind = .id_ref, .quantifier = .required },
10334 .{ .kind = .memory_access, .quantifier = .optional },
1033511533 },
1033611534 },
1033711535 .{
......@@ -10433,7 +11631,7 @@ pub const InstructionSet = enum {
1043311631 },
1043411632 },
1043511633 .{
10436 .name = "OpRayQueryGetClusterIdNV",
11634 .name = "OpRayQueryGetIntersectionClusterIdNV",
1043711635 .opcode = 5345,
1043811636 .operands = &.{
1043911637 .{ .kind = .id_result_type, .quantifier = .required },
......@@ -10451,6 +11649,60 @@ pub const InstructionSet = enum {
1045111649 .{ .kind = .id_ref, .quantifier = .required },
1045211650 },
1045311651 },
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 },
1045411706 .{
1045511707 .name = "OpTypeCooperativeMatrixNV",
1045611708 .opcode = 5358,
......@@ -12432,7 +13684,7 @@ pub const InstructionSet = enum {
1243213684 },
1243313685 },
1243413686 .{
12435 .name = "OpArbitraryFloatSinCosPiINTEL",
13687 .name = "OpArbitraryFloatSinCosPiALTERA",
1243613688 .opcode = 5840,
1243713689 .operands = &.{
1243813690 .{ .kind = .id_result_type, .quantifier = .required },
......@@ -12446,7 +13698,7 @@ pub const InstructionSet = enum {
1244613698 },
1244713699 },
1244813700 .{
12449 .name = "OpArbitraryFloatCastINTEL",
13701 .name = "OpArbitraryFloatCastALTERA",
1245013702 .opcode = 5841,
1245113703 .operands = &.{
1245213704 .{ .kind = .id_result_type, .quantifier = .required },
......@@ -12460,7 +13712,7 @@ pub const InstructionSet = enum {
1246013712 },
1246113713 },
1246213714 .{
12463 .name = "OpArbitraryFloatCastFromIntINTEL",
13715 .name = "OpArbitraryFloatCastFromIntALTERA",
1246413716 .opcode = 5842,
1246513717 .operands = &.{
1246613718 .{ .kind = .id_result_type, .quantifier = .required },
......@@ -12474,7 +13726,7 @@ pub const InstructionSet = enum {
1247413726 },
1247513727 },
1247613728 .{
12477 .name = "OpArbitraryFloatCastToIntINTEL",
13729 .name = "OpArbitraryFloatCastToIntALTERA",
1247813730 .opcode = 5843,
1247913731 .operands = &.{
1248013732 .{ .kind = .id_result_type, .quantifier = .required },
......@@ -12488,7 +13740,7 @@ pub const InstructionSet = enum {
1248813740 },
1248913741 },
1249013742 .{
12491 .name = "OpArbitraryFloatAddINTEL",
13743 .name = "OpArbitraryFloatAddALTERA",
1249213744 .opcode = 5846,
1249313745 .operands = &.{
1249413746 .{ .kind = .id_result_type, .quantifier = .required },
......@@ -12504,7 +13756,7 @@ pub const InstructionSet = enum {
1250413756 },
1250513757 },
1250613758 .{
12507 .name = "OpArbitraryFloatSubINTEL",
13759 .name = "OpArbitraryFloatSubALTERA",
1250813760 .opcode = 5847,
1250913761 .operands = &.{
1251013762 .{ .kind = .id_result_type, .quantifier = .required },
......@@ -12520,7 +13772,7 @@ pub const InstructionSet = enum {
1252013772 },
1252113773 },
1252213774 .{
12523 .name = "OpArbitraryFloatMulINTEL",
13775 .name = "OpArbitraryFloatMulALTERA",
1252413776 .opcode = 5848,
1252513777 .operands = &.{
1252613778 .{ .kind = .id_result_type, .quantifier = .required },
......@@ -12536,7 +13788,7 @@ pub const InstructionSet = enum {
1253613788 },
1253713789 },
1253813790 .{
12539 .name = "OpArbitraryFloatDivINTEL",
13791 .name = "OpArbitraryFloatDivALTERA",
1254013792 .opcode = 5849,
1254113793 .operands = &.{
1254213794 .{ .kind = .id_result_type, .quantifier = .required },
......@@ -12552,7 +13804,7 @@ pub const InstructionSet = enum {
1255213804 },
1255313805 },
1255413806 .{
12555 .name = "OpArbitraryFloatGTINTEL",
13807 .name = "OpArbitraryFloatGTALTERA",
1255613808 .opcode = 5850,
1255713809 .operands = &.{
1255813810 .{ .kind = .id_result_type, .quantifier = .required },
......@@ -12564,7 +13816,7 @@ pub const InstructionSet = enum {
1256413816 },
1256513817 },
1256613818 .{
12567 .name = "OpArbitraryFloatGEINTEL",
13819 .name = "OpArbitraryFloatGEALTERA",
1256813820 .opcode = 5851,
1256913821 .operands = &.{
1257013822 .{ .kind = .id_result_type, .quantifier = .required },
......@@ -12576,7 +13828,7 @@ pub const InstructionSet = enum {
1257613828 },
1257713829 },
1257813830 .{
12579 .name = "OpArbitraryFloatLTINTEL",
13831 .name = "OpArbitraryFloatLTALTERA",
1258013832 .opcode = 5852,
1258113833 .operands = &.{
1258213834 .{ .kind = .id_result_type, .quantifier = .required },
......@@ -12588,7 +13840,7 @@ pub const InstructionSet = enum {
1258813840 },
1258913841 },
1259013842 .{
12591 .name = "OpArbitraryFloatLEINTEL",
13843 .name = "OpArbitraryFloatLEALTERA",
1259213844 .opcode = 5853,
1259313845 .operands = &.{
1259413846 .{ .kind = .id_result_type, .quantifier = .required },
......@@ -12600,7 +13852,7 @@ pub const InstructionSet = enum {
1260013852 },
1260113853 },
1260213854 .{
12603 .name = "OpArbitraryFloatEQINTEL",
13855 .name = "OpArbitraryFloatEQALTERA",
1260413856 .opcode = 5854,
1260513857 .operands = &.{
1260613858 .{ .kind = .id_result_type, .quantifier = .required },
......@@ -12612,7 +13864,7 @@ pub const InstructionSet = enum {
1261213864 },
1261313865 },
1261413866 .{
12615 .name = "OpArbitraryFloatRecipINTEL",
13867 .name = "OpArbitraryFloatRecipALTERA",
1261613868 .opcode = 5855,
1261713869 .operands = &.{
1261813870 .{ .kind = .id_result_type, .quantifier = .required },
......@@ -12626,7 +13878,7 @@ pub const InstructionSet = enum {
1262613878 },
1262713879 },
1262813880 .{
12629 .name = "OpArbitraryFloatRSqrtINTEL",
13881 .name = "OpArbitraryFloatRSqrtALTERA",
1263013882 .opcode = 5856,
1263113883 .operands = &.{
1263213884 .{ .kind = .id_result_type, .quantifier = .required },
......@@ -12640,7 +13892,7 @@ pub const InstructionSet = enum {
1264013892 },
1264113893 },
1264213894 .{
12643 .name = "OpArbitraryFloatCbrtINTEL",
13895 .name = "OpArbitraryFloatCbrtALTERA",
1264413896 .opcode = 5857,
1264513897 .operands = &.{
1264613898 .{ .kind = .id_result_type, .quantifier = .required },
......@@ -12654,7 +13906,7 @@ pub const InstructionSet = enum {
1265413906 },
1265513907 },
1265613908 .{
12657 .name = "OpArbitraryFloatHypotINTEL",
13909 .name = "OpArbitraryFloatHypotALTERA",
1265813910 .opcode = 5858,
1265913911 .operands = &.{
1266013912 .{ .kind = .id_result_type, .quantifier = .required },
......@@ -12670,7 +13922,7 @@ pub const InstructionSet = enum {
1267013922 },
1267113923 },
1267213924 .{
12673 .name = "OpArbitraryFloatSqrtINTEL",
13925 .name = "OpArbitraryFloatSqrtALTERA",
1267413926 .opcode = 5859,
1267513927 .operands = &.{
1267613928 .{ .kind = .id_result_type, .quantifier = .required },
......@@ -13046,7 +14298,7 @@ pub const InstructionSet = enum {
1304614298 },
1304714299 },
1304814300 .{
13049 .name = "OpFixedSqrtINTEL",
14301 .name = "OpFixedSqrtALTERA",
1305014302 .opcode = 5923,
1305114303 .operands = &.{
1305214304 .{ .kind = .id_result_type, .quantifier = .required },
......@@ -13060,7 +14312,7 @@ pub const InstructionSet = enum {
1306014312 },
1306114313 },
1306214314 .{
13063 .name = "OpFixedRecipINTEL",
14315 .name = "OpFixedRecipALTERA",
1306414316 .opcode = 5924,
1306514317 .operands = &.{
1306614318 .{ .kind = .id_result_type, .quantifier = .required },
......@@ -13074,7 +14326,7 @@ pub const InstructionSet = enum {
1307414326 },
1307514327 },
1307614328 .{
13077 .name = "OpFixedRsqrtINTEL",
14329 .name = "OpFixedRsqrtALTERA",
1307814330 .opcode = 5925,
1307914331 .operands = &.{
1308014332 .{ .kind = .id_result_type, .quantifier = .required },
......@@ -13088,7 +14340,7 @@ pub const InstructionSet = enum {
1308814340 },
1308914341 },
1309014342 .{
13091 .name = "OpFixedSinINTEL",
14343 .name = "OpFixedSinALTERA",
1309214344 .opcode = 5926,
1309314345 .operands = &.{
1309414346 .{ .kind = .id_result_type, .quantifier = .required },
......@@ -13102,7 +14354,7 @@ pub const InstructionSet = enum {
1310214354 },
1310314355 },
1310414356 .{
13105 .name = "OpFixedCosINTEL",
14357 .name = "OpFixedCosALTERA",
1310614358 .opcode = 5927,
1310714359 .operands = &.{
1310814360 .{ .kind = .id_result_type, .quantifier = .required },
......@@ -13116,7 +14368,7 @@ pub const InstructionSet = enum {
1311614368 },
1311714369 },
1311814370 .{
13119 .name = "OpFixedSinCosINTEL",
14371 .name = "OpFixedSinCosALTERA",
1312014372 .opcode = 5928,
1312114373 .operands = &.{
1312214374 .{ .kind = .id_result_type, .quantifier = .required },
......@@ -13130,7 +14382,7 @@ pub const InstructionSet = enum {
1313014382 },
1313114383 },
1313214384 .{
13133 .name = "OpFixedSinPiINTEL",
14385 .name = "OpFixedSinPiALTERA",
1313414386 .opcode = 5929,
1313514387 .operands = &.{
1313614388 .{ .kind = .id_result_type, .quantifier = .required },
......@@ -13144,7 +14396,7 @@ pub const InstructionSet = enum {
1314414396 },
1314514397 },
1314614398 .{
13147 .name = "OpFixedCosPiINTEL",
14399 .name = "OpFixedCosPiALTERA",
1314814400 .opcode = 5930,
1314914401 .operands = &.{
1315014402 .{ .kind = .id_result_type, .quantifier = .required },
......@@ -13158,7 +14410,7 @@ pub const InstructionSet = enum {
1315814410 },
1315914411 },
1316014412 .{
13161 .name = "OpFixedSinCosPiINTEL",
14413 .name = "OpFixedSinCosPiALTERA",
1316214414 .opcode = 5931,
1316314415 .operands = &.{
1316414416 .{ .kind = .id_result_type, .quantifier = .required },
......@@ -13172,7 +14424,7 @@ pub const InstructionSet = enum {
1317214424 },
1317314425 },
1317414426 .{
13175 .name = "OpFixedLogINTEL",
14427 .name = "OpFixedLogALTERA",
1317614428 .opcode = 5932,
1317714429 .operands = &.{
1317814430 .{ .kind = .id_result_type, .quantifier = .required },
......@@ -13186,7 +14438,7 @@ pub const InstructionSet = enum {
1318614438 },
1318714439 },
1318814440 .{
13189 .name = "OpFixedExpINTEL",
14441 .name = "OpFixedExpALTERA",
1319014442 .opcode = 5933,
1319114443 .operands = &.{
1319214444 .{ .kind = .id_result_type, .quantifier = .required },
......@@ -13200,7 +14452,7 @@ pub const InstructionSet = enum {
1320014452 },
1320114453 },
1320214454 .{
13203 .name = "OpPtrCastToCrossWorkgroupINTEL",
14455 .name = "OpPtrCastToCrossWorkgroupALTERA",
1320414456 .opcode = 5934,
1320514457 .operands = &.{
1320614458 .{ .kind = .id_result_type, .quantifier = .required },
......@@ -13209,7 +14461,7 @@ pub const InstructionSet = enum {
1320914461 },
1321014462 },
1321114463 .{
13212 .name = "OpCrossWorkgroupCastToPtrINTEL",
14464 .name = "OpCrossWorkgroupCastToPtrALTERA",
1321314465 .opcode = 5938,
1321414466 .operands = &.{
1321514467 .{ .kind = .id_result_type, .quantifier = .required },
......@@ -13218,7 +14470,7 @@ pub const InstructionSet = enum {
1321814470 },
1321914471 },
1322014472 .{
13221 .name = "OpReadPipeBlockingINTEL",
14473 .name = "OpReadPipeBlockingALTERA",
1322214474 .opcode = 5946,
1322314475 .operands = &.{
1322414476 .{ .kind = .id_result_type, .quantifier = .required },
......@@ -13228,7 +14480,7 @@ pub const InstructionSet = enum {
1322814480 },
1322914481 },
1323014482 .{
13231 .name = "OpWritePipeBlockingINTEL",
14483 .name = "OpWritePipeBlockingALTERA",
1323214484 .opcode = 5947,
1323314485 .operands = &.{
1323414486 .{ .kind = .id_result_type, .quantifier = .required },
......@@ -13238,7 +14490,7 @@ pub const InstructionSet = enum {
1323814490 },
1323914491 },
1324014492 .{
13241 .name = "OpFPGARegINTEL",
14493 .name = "OpFPGARegALTERA",
1324214494 .opcode = 5949,
1324314495 .operands = &.{
1324414496 .{ .kind = .id_result_type, .quantifier = .required },
......@@ -13507,7 +14759,7 @@ pub const InstructionSet = enum {
1350714759 },
1350814760 },
1350914761 .{
13510 .name = "OpTaskSequenceCreateINTEL",
14762 .name = "OpTaskSequenceCreateALTERA",
1351114763 .opcode = 6163,
1351214764 .operands = &.{
1351314765 .{ .kind = .id_result_type, .quantifier = .required },
......@@ -13520,7 +14772,7 @@ pub const InstructionSet = enum {
1352014772 },
1352114773 },
1352214774 .{
13523 .name = "OpTaskSequenceAsyncINTEL",
14775 .name = "OpTaskSequenceAsyncALTERA",
1352414776 .opcode = 6164,
1352514777 .operands = &.{
1352614778 .{ .kind = .id_ref, .quantifier = .required },
......@@ -13528,7 +14780,7 @@ pub const InstructionSet = enum {
1352814780 },
1352914781 },
1353014782 .{
13531 .name = "OpTaskSequenceGetINTEL",
14783 .name = "OpTaskSequenceGetALTERA",
1353214784 .opcode = 6165,
1353314785 .operands = &.{
1353414786 .{ .kind = .id_result_type, .quantifier = .required },
......@@ -13537,14 +14789,14 @@ pub const InstructionSet = enum {
1353714789 },
1353814790 },
1353914791 .{
13540 .name = "OpTaskSequenceReleaseINTEL",
14792 .name = "OpTaskSequenceReleaseALTERA",
1354114793 .opcode = 6166,
1354214794 .operands = &.{
1354314795 .{ .kind = .id_ref, .quantifier = .required },
1354414796 },
1354514797 },
1354614798 .{
13547 .name = "OpTypeTaskSequenceINTEL",
14799 .name = "OpTypeTaskSequenceALTERA",
1354814800 .opcode = 6199,
1354914801 .operands = &.{
1355014802 .{ .kind = .id_result, .quantifier = .required },
......@@ -13663,6 +14915,83 @@ pub const InstructionSet = enum {
1366314915 .{ .kind = .id_ref, .quantifier = .required },
1366414916 },
1366514917 },
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 },
1366614995 .{
1366714996 .name = "OpGroupIMulKHR",
1366814997 .opcode = 6401,
......@@ -13761,406 +15090,447 @@ pub const InstructionSet = enum {
1376115090 },
1376215091 },
1376315092 .{
13764 .name = "OpMaskedGatherINTEL",
13765 .opcode = 6428,
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,
1376615135 .operands = &.{
1376715136 .{ .kind = .id_result_type, .quantifier = .required },
1376815137 .{ .kind = .id_result, .quantifier = .required },
1376915138 .{ .kind = .id_ref, .quantifier = .required },
13770 .{ .kind = .literal_integer, .quantifier = .required },
13771 .{ .kind = .id_ref, .quantifier = .required },
13772 .{ .kind = .id_ref, .quantifier = .required },
1377315139 },
1377415140 },
1377515141 .{
13776 .name = "OpMaskedScatterINTEL",
13777 .opcode = 6429,
15142 .name = "OpFDot2MixAcc32VALVE",
15143 .opcode = 6916,
1377815144 .operands = &.{
15145 .{ .kind = .id_result_type, .quantifier = .required },
15146 .{ .kind = .id_result, .quantifier = .required },
1377915147 .{ .kind = .id_ref, .quantifier = .required },
1378015148 .{ .kind = .id_ref, .quantifier = .required },
13781 .{ .kind = .literal_integer, .quantifier = .required },
1378215149 .{ .kind = .id_ref, .quantifier = .required },
1378315150 },
1378415151 },
1378515152 .{
13786 .name = "OpConvertHandleToImageINTEL",
13787 .opcode = 6529,
15153 .name = "OpFDot2MixAcc16VALVE",
15154 .opcode = 6917,
1378815155 .operands = &.{
1378915156 .{ .kind = .id_result_type, .quantifier = .required },
1379015157 .{ .kind = .id_result, .quantifier = .required },
1379115158 .{ .kind = .id_ref, .quantifier = .required },
15159 .{ .kind = .id_ref, .quantifier = .required },
15160 .{ .kind = .id_ref, .quantifier = .required },
1379215161 },
1379315162 },
1379415163 .{
13795 .name = "OpConvertHandleToSamplerINTEL",
13796 .opcode = 6530,
15164 .name = "OpFDot4MixAcc32VALVE",
15165 .opcode = 6918,
1379715166 .operands = &.{
1379815167 .{ .kind = .id_result_type, .quantifier = .required },
1379915168 .{ .kind = .id_result, .quantifier = .required },
1380015169 .{ .kind = .id_ref, .quantifier = .required },
15170 .{ .kind = .id_ref, .quantifier = .required },
15171 .{ .kind = .id_ref, .quantifier = .required },
1380115172 },
1380215173 },
15174 },
15175 .@"OpenCL.std" => &.{
1380315176 .{
13804 .name = "OpConvertHandleToSampledImageINTEL",
13805 .opcode = 6531,
15177 .name = "acos",
15178 .opcode = 0,
1380615179 .operands = &.{
13807 .{ .kind = .id_result_type, .quantifier = .required },
13808 .{ .kind = .id_result, .quantifier = .required },
1380915180 .{ .kind = .id_ref, .quantifier = .required },
1381015181 },
1381115182 },
13812 },
13813 .@"GLSL.std.450" => &.{
1381415183 .{
13815 .name = "Round",
15184 .name = "acosh",
1381615185 .opcode = 1,
1381715186 .operands = &.{
1381815187 .{ .kind = .id_ref, .quantifier = .required },
1381915188 },
1382015189 },
1382115190 .{
13822 .name = "RoundEven",
15191 .name = "acospi",
1382315192 .opcode = 2,
1382415193 .operands = &.{
1382515194 .{ .kind = .id_ref, .quantifier = .required },
1382615195 },
1382715196 },
1382815197 .{
13829 .name = "Trunc",
15198 .name = "asin",
1383015199 .opcode = 3,
1383115200 .operands = &.{
1383215201 .{ .kind = .id_ref, .quantifier = .required },
1383315202 },
1383415203 },
1383515204 .{
13836 .name = "FAbs",
15205 .name = "asinh",
1383715206 .opcode = 4,
1383815207 .operands = &.{
1383915208 .{ .kind = .id_ref, .quantifier = .required },
1384015209 },
1384115210 },
1384215211 .{
13843 .name = "SAbs",
15212 .name = "asinpi",
1384415213 .opcode = 5,
1384515214 .operands = &.{
1384615215 .{ .kind = .id_ref, .quantifier = .required },
1384715216 },
1384815217 },
1384915218 .{
13850 .name = "FSign",
15219 .name = "atan",
1385115220 .opcode = 6,
1385215221 .operands = &.{
1385315222 .{ .kind = .id_ref, .quantifier = .required },
1385415223 },
1385515224 },
1385615225 .{
13857 .name = "SSign",
15226 .name = "atan2",
1385815227 .opcode = 7,
1385915228 .operands = &.{
1386015229 .{ .kind = .id_ref, .quantifier = .required },
15230 .{ .kind = .id_ref, .quantifier = .required },
1386115231 },
1386215232 },
1386315233 .{
13864 .name = "Floor",
15234 .name = "atanh",
1386515235 .opcode = 8,
1386615236 .operands = &.{
1386715237 .{ .kind = .id_ref, .quantifier = .required },
1386815238 },
1386915239 },
1387015240 .{
13871 .name = "Ceil",
15241 .name = "atanpi",
1387215242 .opcode = 9,
1387315243 .operands = &.{
1387415244 .{ .kind = .id_ref, .quantifier = .required },
1387515245 },
1387615246 },
1387715247 .{
13878 .name = "Fract",
15248 .name = "atan2pi",
1387915249 .opcode = 10,
1388015250 .operands = &.{
1388115251 .{ .kind = .id_ref, .quantifier = .required },
15252 .{ .kind = .id_ref, .quantifier = .required },
1388215253 },
1388315254 },
1388415255 .{
13885 .name = "Radians",
15256 .name = "cbrt",
1388615257 .opcode = 11,
1388715258 .operands = &.{
1388815259 .{ .kind = .id_ref, .quantifier = .required },
1388915260 },
1389015261 },
1389115262 .{
13892 .name = "Degrees",
15263 .name = "ceil",
1389315264 .opcode = 12,
1389415265 .operands = &.{
1389515266 .{ .kind = .id_ref, .quantifier = .required },
1389615267 },
1389715268 },
1389815269 .{
13899 .name = "Sin",
15270 .name = "copysign",
1390015271 .opcode = 13,
1390115272 .operands = &.{
1390215273 .{ .kind = .id_ref, .quantifier = .required },
15274 .{ .kind = .id_ref, .quantifier = .required },
1390315275 },
1390415276 },
1390515277 .{
13906 .name = "Cos",
15278 .name = "cos",
1390715279 .opcode = 14,
1390815280 .operands = &.{
1390915281 .{ .kind = .id_ref, .quantifier = .required },
1391015282 },
1391115283 },
1391215284 .{
13913 .name = "Tan",
15285 .name = "cosh",
1391415286 .opcode = 15,
1391515287 .operands = &.{
1391615288 .{ .kind = .id_ref, .quantifier = .required },
1391715289 },
1391815290 },
1391915291 .{
13920 .name = "Asin",
15292 .name = "cospi",
1392115293 .opcode = 16,
1392215294 .operands = &.{
1392315295 .{ .kind = .id_ref, .quantifier = .required },
1392415296 },
1392515297 },
1392615298 .{
13927 .name = "Acos",
15299 .name = "erfc",
1392815300 .opcode = 17,
1392915301 .operands = &.{
1393015302 .{ .kind = .id_ref, .quantifier = .required },
1393115303 },
1393215304 },
1393315305 .{
13934 .name = "Atan",
15306 .name = "erf",
1393515307 .opcode = 18,
1393615308 .operands = &.{
1393715309 .{ .kind = .id_ref, .quantifier = .required },
1393815310 },
1393915311 },
1394015312 .{
13941 .name = "Sinh",
15313 .name = "exp",
1394215314 .opcode = 19,
1394315315 .operands = &.{
1394415316 .{ .kind = .id_ref, .quantifier = .required },
1394515317 },
1394615318 },
1394715319 .{
13948 .name = "Cosh",
15320 .name = "exp2",
1394915321 .opcode = 20,
1395015322 .operands = &.{
1395115323 .{ .kind = .id_ref, .quantifier = .required },
1395215324 },
1395315325 },
1395415326 .{
13955 .name = "Tanh",
15327 .name = "exp10",
1395615328 .opcode = 21,
1395715329 .operands = &.{
1395815330 .{ .kind = .id_ref, .quantifier = .required },
1395915331 },
1396015332 },
1396115333 .{
13962 .name = "Asinh",
15334 .name = "expm1",
1396315335 .opcode = 22,
1396415336 .operands = &.{
1396515337 .{ .kind = .id_ref, .quantifier = .required },
1396615338 },
1396715339 },
1396815340 .{
13969 .name = "Acosh",
15341 .name = "fabs",
1397015342 .opcode = 23,
1397115343 .operands = &.{
1397215344 .{ .kind = .id_ref, .quantifier = .required },
1397315345 },
1397415346 },
1397515347 .{
13976 .name = "Atanh",
15348 .name = "fdim",
1397715349 .opcode = 24,
1397815350 .operands = &.{
1397915351 .{ .kind = .id_ref, .quantifier = .required },
15352 .{ .kind = .id_ref, .quantifier = .required },
1398015353 },
1398115354 },
1398215355 .{
13983 .name = "Atan2",
15356 .name = "floor",
1398415357 .opcode = 25,
1398515358 .operands = &.{
1398615359 .{ .kind = .id_ref, .quantifier = .required },
13987 .{ .kind = .id_ref, .quantifier = .required },
1398815360 },
1398915361 },
1399015362 .{
13991 .name = "Pow",
15363 .name = "fma",
1399215364 .opcode = 26,
1399315365 .operands = &.{
1399415366 .{ .kind = .id_ref, .quantifier = .required },
1399515367 .{ .kind = .id_ref, .quantifier = .required },
15368 .{ .kind = .id_ref, .quantifier = .required },
1399615369 },
1399715370 },
1399815371 .{
13999 .name = "Exp",
15372 .name = "fmax",
1400015373 .opcode = 27,
1400115374 .operands = &.{
1400215375 .{ .kind = .id_ref, .quantifier = .required },
15376 .{ .kind = .id_ref, .quantifier = .required },
1400315377 },
1400415378 },
1400515379 .{
14006 .name = "Log",
15380 .name = "fmin",
1400715381 .opcode = 28,
1400815382 .operands = &.{
1400915383 .{ .kind = .id_ref, .quantifier = .required },
15384 .{ .kind = .id_ref, .quantifier = .required },
1401015385 },
1401115386 },
1401215387 .{
14013 .name = "Exp2",
15388 .name = "fmod",
1401415389 .opcode = 29,
1401515390 .operands = &.{
1401615391 .{ .kind = .id_ref, .quantifier = .required },
15392 .{ .kind = .id_ref, .quantifier = .required },
1401715393 },
1401815394 },
1401915395 .{
14020 .name = "Log2",
15396 .name = "fract",
1402115397 .opcode = 30,
1402215398 .operands = &.{
1402315399 .{ .kind = .id_ref, .quantifier = .required },
15400 .{ .kind = .id_ref, .quantifier = .required },
1402415401 },
1402515402 },
1402615403 .{
14027 .name = "Sqrt",
15404 .name = "frexp",
1402815405 .opcode = 31,
1402915406 .operands = &.{
1403015407 .{ .kind = .id_ref, .quantifier = .required },
15408 .{ .kind = .id_ref, .quantifier = .required },
1403115409 },
1403215410 },
1403315411 .{
14034 .name = "InverseSqrt",
15412 .name = "hypot",
1403515413 .opcode = 32,
1403615414 .operands = &.{
1403715415 .{ .kind = .id_ref, .quantifier = .required },
15416 .{ .kind = .id_ref, .quantifier = .required },
1403815417 },
1403915418 },
1404015419 .{
14041 .name = "Determinant",
15420 .name = "ilogb",
1404215421 .opcode = 33,
1404315422 .operands = &.{
1404415423 .{ .kind = .id_ref, .quantifier = .required },
1404515424 },
1404615425 },
1404715426 .{
14048 .name = "MatrixInverse",
15427 .name = "ldexp",
1404915428 .opcode = 34,
1405015429 .operands = &.{
1405115430 .{ .kind = .id_ref, .quantifier = .required },
15431 .{ .kind = .id_ref, .quantifier = .required },
1405215432 },
1405315433 },
1405415434 .{
14055 .name = "Modf",
15435 .name = "lgamma",
1405615436 .opcode = 35,
1405715437 .operands = &.{
1405815438 .{ .kind = .id_ref, .quantifier = .required },
14059 .{ .kind = .id_ref, .quantifier = .required },
1406015439 },
1406115440 },
1406215441 .{
14063 .name = "ModfStruct",
15442 .name = "lgamma_r",
1406415443 .opcode = 36,
1406515444 .operands = &.{
1406615445 .{ .kind = .id_ref, .quantifier = .required },
15446 .{ .kind = .id_ref, .quantifier = .required },
1406715447 },
1406815448 },
1406915449 .{
14070 .name = "FMin",
15450 .name = "log",
1407115451 .opcode = 37,
1407215452 .operands = &.{
1407315453 .{ .kind = .id_ref, .quantifier = .required },
14074 .{ .kind = .id_ref, .quantifier = .required },
1407515454 },
1407615455 },
1407715456 .{
14078 .name = "UMin",
15457 .name = "log2",
1407915458 .opcode = 38,
1408015459 .operands = &.{
1408115460 .{ .kind = .id_ref, .quantifier = .required },
14082 .{ .kind = .id_ref, .quantifier = .required },
1408315461 },
1408415462 },
1408515463 .{
14086 .name = "SMin",
15464 .name = "log10",
1408715465 .opcode = 39,
1408815466 .operands = &.{
1408915467 .{ .kind = .id_ref, .quantifier = .required },
14090 .{ .kind = .id_ref, .quantifier = .required },
1409115468 },
1409215469 },
1409315470 .{
14094 .name = "FMax",
15471 .name = "log1p",
1409515472 .opcode = 40,
1409615473 .operands = &.{
1409715474 .{ .kind = .id_ref, .quantifier = .required },
14098 .{ .kind = .id_ref, .quantifier = .required },
1409915475 },
1410015476 },
1410115477 .{
14102 .name = "UMax",
15478 .name = "logb",
1410315479 .opcode = 41,
1410415480 .operands = &.{
1410515481 .{ .kind = .id_ref, .quantifier = .required },
14106 .{ .kind = .id_ref, .quantifier = .required },
1410715482 },
1410815483 },
1410915484 .{
14110 .name = "SMax",
15485 .name = "mad",
1411115486 .opcode = 42,
1411215487 .operands = &.{
1411315488 .{ .kind = .id_ref, .quantifier = .required },
1411415489 .{ .kind = .id_ref, .quantifier = .required },
15490 .{ .kind = .id_ref, .quantifier = .required },
1411515491 },
1411615492 },
1411715493 .{
14118 .name = "FClamp",
15494 .name = "maxmag",
1411915495 .opcode = 43,
1412015496 .operands = &.{
1412115497 .{ .kind = .id_ref, .quantifier = .required },
1412215498 .{ .kind = .id_ref, .quantifier = .required },
14123 .{ .kind = .id_ref, .quantifier = .required },
1412415499 },
1412515500 },
1412615501 .{
14127 .name = "UClamp",
15502 .name = "minmag",
1412815503 .opcode = 44,
1412915504 .operands = &.{
1413015505 .{ .kind = .id_ref, .quantifier = .required },
1413115506 .{ .kind = .id_ref, .quantifier = .required },
14132 .{ .kind = .id_ref, .quantifier = .required },
1413315507 },
1413415508 },
1413515509 .{
14136 .name = "SClamp",
15510 .name = "modf",
1413715511 .opcode = 45,
1413815512 .operands = &.{
1413915513 .{ .kind = .id_ref, .quantifier = .required },
1414015514 .{ .kind = .id_ref, .quantifier = .required },
14141 .{ .kind = .id_ref, .quantifier = .required },
1414215515 },
1414315516 },
1414415517 .{
14145 .name = "FMix",
15518 .name = "nan",
1414615519 .opcode = 46,
1414715520 .operands = &.{
1414815521 .{ .kind = .id_ref, .quantifier = .required },
14149 .{ .kind = .id_ref, .quantifier = .required },
14150 .{ .kind = .id_ref, .quantifier = .required },
1415115522 },
1415215523 },
1415315524 .{
14154 .name = "IMix",
15525 .name = "nextafter",
1415515526 .opcode = 47,
1415615527 .operands = &.{
1415715528 .{ .kind = .id_ref, .quantifier = .required },
1415815529 .{ .kind = .id_ref, .quantifier = .required },
14159 .{ .kind = .id_ref, .quantifier = .required },
1416015530 },
1416115531 },
1416215532 .{
14163 .name = "Step",
15533 .name = "pow",
1416415534 .opcode = 48,
1416515535 .operands = &.{
1416615536 .{ .kind = .id_ref, .quantifier = .required },
......@@ -14168,25 +15538,23 @@ pub const InstructionSet = enum {
1416815538 },
1416915539 },
1417015540 .{
14171 .name = "SmoothStep",
15541 .name = "pown",
1417215542 .opcode = 49,
1417315543 .operands = &.{
1417415544 .{ .kind = .id_ref, .quantifier = .required },
1417515545 .{ .kind = .id_ref, .quantifier = .required },
14176 .{ .kind = .id_ref, .quantifier = .required },
1417715546 },
1417815547 },
1417915548 .{
14180 .name = "Fma",
15549 .name = "powr",
1418115550 .opcode = 50,
1418215551 .operands = &.{
1418315552 .{ .kind = .id_ref, .quantifier = .required },
1418415553 .{ .kind = .id_ref, .quantifier = .required },
14185 .{ .kind = .id_ref, .quantifier = .required },
1418615554 },
1418715555 },
1418815556 .{
14189 .name = "Frexp",
15557 .name = "remainder",
1419015558 .opcode = 51,
1419115559 .operands = &.{
1419215560 .{ .kind = .id_ref, .quantifier = .required },
......@@ -14194,121 +15562,123 @@ pub const InstructionSet = enum {
1419415562 },
1419515563 },
1419615564 .{
14197 .name = "FrexpStruct",
15565 .name = "remquo",
1419815566 .opcode = 52,
1419915567 .operands = &.{
1420015568 .{ .kind = .id_ref, .quantifier = .required },
15569 .{ .kind = .id_ref, .quantifier = .required },
15570 .{ .kind = .id_ref, .quantifier = .required },
1420115571 },
1420215572 },
1420315573 .{
14204 .name = "Ldexp",
15574 .name = "rint",
1420515575 .opcode = 53,
1420615576 .operands = &.{
1420715577 .{ .kind = .id_ref, .quantifier = .required },
14208 .{ .kind = .id_ref, .quantifier = .required },
1420915578 },
1421015579 },
1421115580 .{
14212 .name = "PackSnorm4x8",
15581 .name = "rootn",
1421315582 .opcode = 54,
1421415583 .operands = &.{
1421515584 .{ .kind = .id_ref, .quantifier = .required },
15585 .{ .kind = .id_ref, .quantifier = .required },
1421615586 },
1421715587 },
1421815588 .{
14219 .name = "PackUnorm4x8",
15589 .name = "round",
1422015590 .opcode = 55,
1422115591 .operands = &.{
1422215592 .{ .kind = .id_ref, .quantifier = .required },
1422315593 },
1422415594 },
1422515595 .{
14226 .name = "PackSnorm2x16",
15596 .name = "rsqrt",
1422715597 .opcode = 56,
1422815598 .operands = &.{
1422915599 .{ .kind = .id_ref, .quantifier = .required },
1423015600 },
1423115601 },
1423215602 .{
14233 .name = "PackUnorm2x16",
15603 .name = "sin",
1423415604 .opcode = 57,
1423515605 .operands = &.{
1423615606 .{ .kind = .id_ref, .quantifier = .required },
1423715607 },
1423815608 },
1423915609 .{
14240 .name = "PackHalf2x16",
15610 .name = "sincos",
1424115611 .opcode = 58,
1424215612 .operands = &.{
1424315613 .{ .kind = .id_ref, .quantifier = .required },
15614 .{ .kind = .id_ref, .quantifier = .required },
1424415615 },
1424515616 },
1424615617 .{
14247 .name = "PackDouble2x32",
15618 .name = "sinh",
1424815619 .opcode = 59,
1424915620 .operands = &.{
1425015621 .{ .kind = .id_ref, .quantifier = .required },
1425115622 },
1425215623 },
1425315624 .{
14254 .name = "UnpackSnorm2x16",
15625 .name = "sinpi",
1425515626 .opcode = 60,
1425615627 .operands = &.{
1425715628 .{ .kind = .id_ref, .quantifier = .required },
1425815629 },
1425915630 },
1426015631 .{
14261 .name = "UnpackUnorm2x16",
15632 .name = "sqrt",
1426215633 .opcode = 61,
1426315634 .operands = &.{
1426415635 .{ .kind = .id_ref, .quantifier = .required },
1426515636 },
1426615637 },
1426715638 .{
14268 .name = "UnpackHalf2x16",
15639 .name = "tan",
1426915640 .opcode = 62,
1427015641 .operands = &.{
1427115642 .{ .kind = .id_ref, .quantifier = .required },
1427215643 },
1427315644 },
1427415645 .{
14275 .name = "UnpackSnorm4x8",
15646 .name = "tanh",
1427615647 .opcode = 63,
1427715648 .operands = &.{
1427815649 .{ .kind = .id_ref, .quantifier = .required },
1427915650 },
1428015651 },
1428115652 .{
14282 .name = "UnpackUnorm4x8",
15653 .name = "tanpi",
1428315654 .opcode = 64,
1428415655 .operands = &.{
1428515656 .{ .kind = .id_ref, .quantifier = .required },
1428615657 },
1428715658 },
1428815659 .{
14289 .name = "UnpackDouble2x32",
15660 .name = "tgamma",
1429015661 .opcode = 65,
1429115662 .operands = &.{
1429215663 .{ .kind = .id_ref, .quantifier = .required },
1429315664 },
1429415665 },
1429515666 .{
14296 .name = "Length",
15667 .name = "trunc",
1429715668 .opcode = 66,
1429815669 .operands = &.{
1429915670 .{ .kind = .id_ref, .quantifier = .required },
1430015671 },
1430115672 },
1430215673 .{
14303 .name = "Distance",
15674 .name = "half_cos",
1430415675 .opcode = 67,
1430515676 .operands = &.{
1430615677 .{ .kind = .id_ref, .quantifier = .required },
14307 .{ .kind = .id_ref, .quantifier = .required },
1430815678 },
1430915679 },
1431015680 .{
14311 .name = "Cross",
15681 .name = "half_divide",
1431215682 .opcode = 68,
1431315683 .operands = &.{
1431415684 .{ .kind = .id_ref, .quantifier = .required },
......@@ -14316,420 +15686,412 @@ pub const InstructionSet = enum {
1431615686 },
1431715687 },
1431815688 .{
14319 .name = "Normalize",
15689 .name = "half_exp",
1432015690 .opcode = 69,
1432115691 .operands = &.{
1432215692 .{ .kind = .id_ref, .quantifier = .required },
1432315693 },
1432415694 },
1432515695 .{
14326 .name = "FaceForward",
15696 .name = "half_exp2",
1432715697 .opcode = 70,
1432815698 .operands = &.{
1432915699 .{ .kind = .id_ref, .quantifier = .required },
14330 .{ .kind = .id_ref, .quantifier = .required },
14331 .{ .kind = .id_ref, .quantifier = .required },
1433215700 },
1433315701 },
1433415702 .{
14335 .name = "Reflect",
15703 .name = "half_exp10",
1433615704 .opcode = 71,
1433715705 .operands = &.{
1433815706 .{ .kind = .id_ref, .quantifier = .required },
14339 .{ .kind = .id_ref, .quantifier = .required },
1434015707 },
1434115708 },
1434215709 .{
14343 .name = "Refract",
15710 .name = "half_log",
1434415711 .opcode = 72,
1434515712 .operands = &.{
1434615713 .{ .kind = .id_ref, .quantifier = .required },
14347 .{ .kind = .id_ref, .quantifier = .required },
14348 .{ .kind = .id_ref, .quantifier = .required },
1434915714 },
1435015715 },
1435115716 .{
14352 .name = "FindILsb",
15717 .name = "half_log2",
1435315718 .opcode = 73,
1435415719 .operands = &.{
1435515720 .{ .kind = .id_ref, .quantifier = .required },
1435615721 },
1435715722 },
1435815723 .{
14359 .name = "FindSMsb",
15724 .name = "half_log10",
1436015725 .opcode = 74,
1436115726 .operands = &.{
1436215727 .{ .kind = .id_ref, .quantifier = .required },
1436315728 },
1436415729 },
1436515730 .{
14366 .name = "FindUMsb",
15731 .name = "half_powr",
1436715732 .opcode = 75,
1436815733 .operands = &.{
1436915734 .{ .kind = .id_ref, .quantifier = .required },
15735 .{ .kind = .id_ref, .quantifier = .required },
1437015736 },
1437115737 },
1437215738 .{
14373 .name = "InterpolateAtCentroid",
15739 .name = "half_recip",
1437415740 .opcode = 76,
1437515741 .operands = &.{
1437615742 .{ .kind = .id_ref, .quantifier = .required },
1437715743 },
1437815744 },
1437915745 .{
14380 .name = "InterpolateAtSample",
15746 .name = "half_rsqrt",
1438115747 .opcode = 77,
1438215748 .operands = &.{
1438315749 .{ .kind = .id_ref, .quantifier = .required },
14384 .{ .kind = .id_ref, .quantifier = .required },
1438515750 },
1438615751 },
1438715752 .{
14388 .name = "InterpolateAtOffset",
15753 .name = "half_sin",
1438915754 .opcode = 78,
1439015755 .operands = &.{
1439115756 .{ .kind = .id_ref, .quantifier = .required },
14392 .{ .kind = .id_ref, .quantifier = .required },
1439315757 },
1439415758 },
1439515759 .{
14396 .name = "NMin",
15760 .name = "half_sqrt",
1439715761 .opcode = 79,
1439815762 .operands = &.{
1439915763 .{ .kind = .id_ref, .quantifier = .required },
14400 .{ .kind = .id_ref, .quantifier = .required },
1440115764 },
1440215765 },
1440315766 .{
14404 .name = "NMax",
15767 .name = "half_tan",
1440515768 .opcode = 80,
1440615769 .operands = &.{
1440715770 .{ .kind = .id_ref, .quantifier = .required },
14408 .{ .kind = .id_ref, .quantifier = .required },
1440915771 },
1441015772 },
1441115773 .{
14412 .name = "NClamp",
15774 .name = "native_cos",
1441315775 .opcode = 81,
1441415776 .operands = &.{
1441515777 .{ .kind = .id_ref, .quantifier = .required },
14416 .{ .kind = .id_ref, .quantifier = .required },
14417 .{ .kind = .id_ref, .quantifier = .required },
1441815778 },
1441915779 },
14420 },
14421 .@"OpenCL.std" => &.{
1442215780 .{
14423 .name = "acos",
14424 .opcode = 0,
15781 .name = "native_divide",
15782 .opcode = 82,
1442515783 .operands = &.{
1442615784 .{ .kind = .id_ref, .quantifier = .required },
15785 .{ .kind = .id_ref, .quantifier = .required },
1442715786 },
1442815787 },
1442915788 .{
14430 .name = "acosh",
14431 .opcode = 1,
15789 .name = "native_exp",
15790 .opcode = 83,
1443215791 .operands = &.{
1443315792 .{ .kind = .id_ref, .quantifier = .required },
1443415793 },
1443515794 },
1443615795 .{
14437 .name = "acospi",
14438 .opcode = 2,
15796 .name = "native_exp2",
15797 .opcode = 84,
1443915798 .operands = &.{
1444015799 .{ .kind = .id_ref, .quantifier = .required },
1444115800 },
1444215801 },
1444315802 .{
14444 .name = "asin",
14445 .opcode = 3,
15803 .name = "native_exp10",
15804 .opcode = 85,
1444615805 .operands = &.{
1444715806 .{ .kind = .id_ref, .quantifier = .required },
1444815807 },
1444915808 },
1445015809 .{
14451 .name = "asinh",
14452 .opcode = 4,
15810 .name = "native_log",
15811 .opcode = 86,
1445315812 .operands = &.{
1445415813 .{ .kind = .id_ref, .quantifier = .required },
1445515814 },
1445615815 },
1445715816 .{
14458 .name = "asinpi",
14459 .opcode = 5,
15817 .name = "native_log2",
15818 .opcode = 87,
1446015819 .operands = &.{
1446115820 .{ .kind = .id_ref, .quantifier = .required },
1446215821 },
1446315822 },
1446415823 .{
14465 .name = "atan",
14466 .opcode = 6,
15824 .name = "native_log10",
15825 .opcode = 88,
1446715826 .operands = &.{
1446815827 .{ .kind = .id_ref, .quantifier = .required },
1446915828 },
1447015829 },
1447115830 .{
14472 .name = "atan2",
14473 .opcode = 7,
15831 .name = "native_powr",
15832 .opcode = 89,
1447415833 .operands = &.{
1447515834 .{ .kind = .id_ref, .quantifier = .required },
1447615835 .{ .kind = .id_ref, .quantifier = .required },
1447715836 },
1447815837 },
1447915838 .{
14480 .name = "atanh",
14481 .opcode = 8,
15839 .name = "native_recip",
15840 .opcode = 90,
1448215841 .operands = &.{
1448315842 .{ .kind = .id_ref, .quantifier = .required },
1448415843 },
1448515844 },
1448615845 .{
14487 .name = "atanpi",
14488 .opcode = 9,
15846 .name = "native_rsqrt",
15847 .opcode = 91,
1448915848 .operands = &.{
1449015849 .{ .kind = .id_ref, .quantifier = .required },
1449115850 },
1449215851 },
1449315852 .{
14494 .name = "atan2pi",
14495 .opcode = 10,
15853 .name = "native_sin",
15854 .opcode = 92,
1449615855 .operands = &.{
1449715856 .{ .kind = .id_ref, .quantifier = .required },
14498 .{ .kind = .id_ref, .quantifier = .required },
1449915857 },
1450015858 },
1450115859 .{
14502 .name = "cbrt",
14503 .opcode = 11,
15860 .name = "native_sqrt",
15861 .opcode = 93,
1450415862 .operands = &.{
1450515863 .{ .kind = .id_ref, .quantifier = .required },
1450615864 },
1450715865 },
1450815866 .{
14509 .name = "ceil",
14510 .opcode = 12,
15867 .name = "native_tan",
15868 .opcode = 94,
1451115869 .operands = &.{
1451215870 .{ .kind = .id_ref, .quantifier = .required },
1451315871 },
1451415872 },
1451515873 .{
14516 .name = "copysign",
14517 .opcode = 13,
15874 .name = "fclamp",
15875 .opcode = 95,
1451815876 .operands = &.{
1451915877 .{ .kind = .id_ref, .quantifier = .required },
1452015878 .{ .kind = .id_ref, .quantifier = .required },
14521 },
14522 },
14523 .{
14524 .name = "cos",
14525 .opcode = 14,
14526 .operands = &.{
1452715879 .{ .kind = .id_ref, .quantifier = .required },
1452815880 },
1452915881 },
1453015882 .{
14531 .name = "cosh",
14532 .opcode = 15,
15883 .name = "degrees",
15884 .opcode = 96,
1453315885 .operands = &.{
1453415886 .{ .kind = .id_ref, .quantifier = .required },
1453515887 },
1453615888 },
1453715889 .{
14538 .name = "cospi",
14539 .opcode = 16,
15890 .name = "fmax_common",
15891 .opcode = 97,
1454015892 .operands = &.{
1454115893 .{ .kind = .id_ref, .quantifier = .required },
15894 .{ .kind = .id_ref, .quantifier = .required },
1454215895 },
1454315896 },
1454415897 .{
14545 .name = "erfc",
14546 .opcode = 17,
15898 .name = "fmin_common",
15899 .opcode = 98,
1454715900 .operands = &.{
1454815901 .{ .kind = .id_ref, .quantifier = .required },
15902 .{ .kind = .id_ref, .quantifier = .required },
1454915903 },
1455015904 },
1455115905 .{
14552 .name = "erf",
14553 .opcode = 18,
15906 .name = "mix",
15907 .opcode = 99,
1455415908 .operands = &.{
1455515909 .{ .kind = .id_ref, .quantifier = .required },
15910 .{ .kind = .id_ref, .quantifier = .required },
15911 .{ .kind = .id_ref, .quantifier = .required },
1455615912 },
1455715913 },
1455815914 .{
14559 .name = "exp",
14560 .opcode = 19,
15915 .name = "radians",
15916 .opcode = 100,
1456115917 .operands = &.{
1456215918 .{ .kind = .id_ref, .quantifier = .required },
1456315919 },
1456415920 },
1456515921 .{
14566 .name = "exp2",
14567 .opcode = 20,
15922 .name = "step",
15923 .opcode = 101,
1456815924 .operands = &.{
1456915925 .{ .kind = .id_ref, .quantifier = .required },
15926 .{ .kind = .id_ref, .quantifier = .required },
1457015927 },
1457115928 },
1457215929 .{
14573 .name = "exp10",
14574 .opcode = 21,
15930 .name = "smoothstep",
15931 .opcode = 102,
1457515932 .operands = &.{
1457615933 .{ .kind = .id_ref, .quantifier = .required },
15934 .{ .kind = .id_ref, .quantifier = .required },
15935 .{ .kind = .id_ref, .quantifier = .required },
1457715936 },
1457815937 },
1457915938 .{
14580 .name = "expm1",
14581 .opcode = 22,
15939 .name = "sign",
15940 .opcode = 103,
1458215941 .operands = &.{
1458315942 .{ .kind = .id_ref, .quantifier = .required },
1458415943 },
1458515944 },
1458615945 .{
14587 .name = "fabs",
14588 .opcode = 23,
15946 .name = "cross",
15947 .opcode = 104,
1458915948 .operands = &.{
1459015949 .{ .kind = .id_ref, .quantifier = .required },
15950 .{ .kind = .id_ref, .quantifier = .required },
1459115951 },
1459215952 },
1459315953 .{
14594 .name = "fdim",
14595 .opcode = 24,
15954 .name = "distance",
15955 .opcode = 105,
1459615956 .operands = &.{
1459715957 .{ .kind = .id_ref, .quantifier = .required },
1459815958 .{ .kind = .id_ref, .quantifier = .required },
1459915959 },
1460015960 },
1460115961 .{
14602 .name = "floor",
14603 .opcode = 25,
15962 .name = "length",
15963 .opcode = 106,
1460415964 .operands = &.{
1460515965 .{ .kind = .id_ref, .quantifier = .required },
1460615966 },
1460715967 },
1460815968 .{
14609 .name = "fma",
14610 .opcode = 26,
15969 .name = "normalize",
15970 .opcode = 107,
1461115971 .operands = &.{
1461215972 .{ .kind = .id_ref, .quantifier = .required },
14613 .{ .kind = .id_ref, .quantifier = .required },
14614 .{ .kind = .id_ref, .quantifier = .required },
1461515973 },
1461615974 },
1461715975 .{
14618 .name = "fmax",
14619 .opcode = 27,
15976 .name = "fast_distance",
15977 .opcode = 108,
1462015978 .operands = &.{
1462115979 .{ .kind = .id_ref, .quantifier = .required },
1462215980 .{ .kind = .id_ref, .quantifier = .required },
1462315981 },
1462415982 },
1462515983 .{
14626 .name = "fmin",
14627 .opcode = 28,
15984 .name = "fast_length",
15985 .opcode = 109,
1462815986 .operands = &.{
1462915987 .{ .kind = .id_ref, .quantifier = .required },
14630 .{ .kind = .id_ref, .quantifier = .required },
1463115988 },
1463215989 },
1463315990 .{
14634 .name = "fmod",
14635 .opcode = 29,
15991 .name = "fast_normalize",
15992 .opcode = 110,
1463615993 .operands = &.{
1463715994 .{ .kind = .id_ref, .quantifier = .required },
14638 .{ .kind = .id_ref, .quantifier = .required },
1463915995 },
1464015996 },
1464115997 .{
14642 .name = "fract",
14643 .opcode = 30,
15998 .name = "s_abs",
15999 .opcode = 141,
1464416000 .operands = &.{
1464516001 .{ .kind = .id_ref, .quantifier = .required },
14646 .{ .kind = .id_ref, .quantifier = .required },
1464716002 },
1464816003 },
1464916004 .{
14650 .name = "frexp",
14651 .opcode = 31,
16005 .name = "s_abs_diff",
16006 .opcode = 142,
1465216007 .operands = &.{
1465316008 .{ .kind = .id_ref, .quantifier = .required },
1465416009 .{ .kind = .id_ref, .quantifier = .required },
1465516010 },
1465616011 },
1465716012 .{
14658 .name = "hypot",
14659 .opcode = 32,
16013 .name = "s_add_sat",
16014 .opcode = 143,
1466016015 .operands = &.{
1466116016 .{ .kind = .id_ref, .quantifier = .required },
1466216017 .{ .kind = .id_ref, .quantifier = .required },
1466316018 },
1466416019 },
1466516020 .{
14666 .name = "ilogb",
14667 .opcode = 33,
16021 .name = "u_add_sat",
16022 .opcode = 144,
1466816023 .operands = &.{
1466916024 .{ .kind = .id_ref, .quantifier = .required },
16025 .{ .kind = .id_ref, .quantifier = .required },
1467016026 },
1467116027 },
1467216028 .{
14673 .name = "ldexp",
14674 .opcode = 34,
16029 .name = "s_hadd",
16030 .opcode = 145,
1467516031 .operands = &.{
1467616032 .{ .kind = .id_ref, .quantifier = .required },
1467716033 .{ .kind = .id_ref, .quantifier = .required },
1467816034 },
1467916035 },
1468016036 .{
14681 .name = "lgamma",
14682 .opcode = 35,
16037 .name = "u_hadd",
16038 .opcode = 146,
1468316039 .operands = &.{
1468416040 .{ .kind = .id_ref, .quantifier = .required },
16041 .{ .kind = .id_ref, .quantifier = .required },
1468516042 },
1468616043 },
1468716044 .{
14688 .name = "lgamma_r",
14689 .opcode = 36,
16045 .name = "s_rhadd",
16046 .opcode = 147,
1469016047 .operands = &.{
1469116048 .{ .kind = .id_ref, .quantifier = .required },
1469216049 .{ .kind = .id_ref, .quantifier = .required },
1469316050 },
1469416051 },
1469516052 .{
14696 .name = "log",
14697 .opcode = 37,
16053 .name = "u_rhadd",
16054 .opcode = 148,
1469816055 .operands = &.{
1469916056 .{ .kind = .id_ref, .quantifier = .required },
16057 .{ .kind = .id_ref, .quantifier = .required },
1470016058 },
1470116059 },
1470216060 .{
14703 .name = "log2",
14704 .opcode = 38,
16061 .name = "s_clamp",
16062 .opcode = 149,
1470516063 .operands = &.{
1470616064 .{ .kind = .id_ref, .quantifier = .required },
16065 .{ .kind = .id_ref, .quantifier = .required },
16066 .{ .kind = .id_ref, .quantifier = .required },
1470716067 },
1470816068 },
1470916069 .{
14710 .name = "log10",
14711 .opcode = 39,
16070 .name = "u_clamp",
16071 .opcode = 150,
1471216072 .operands = &.{
1471316073 .{ .kind = .id_ref, .quantifier = .required },
16074 .{ .kind = .id_ref, .quantifier = .required },
16075 .{ .kind = .id_ref, .quantifier = .required },
1471416076 },
1471516077 },
1471616078 .{
14717 .name = "log1p",
14718 .opcode = 40,
16079 .name = "clz",
16080 .opcode = 151,
1471916081 .operands = &.{
1472016082 .{ .kind = .id_ref, .quantifier = .required },
1472116083 },
1472216084 },
1472316085 .{
14724 .name = "logb",
14725 .opcode = 41,
16086 .name = "ctz",
16087 .opcode = 152,
1472616088 .operands = &.{
1472716089 .{ .kind = .id_ref, .quantifier = .required },
1472816090 },
1472916091 },
1473016092 .{
14731 .name = "mad",
14732 .opcode = 42,
16093 .name = "s_mad_hi",
16094 .opcode = 153,
1473316095 .operands = &.{
1473416096 .{ .kind = .id_ref, .quantifier = .required },
1473516097 .{ .kind = .id_ref, .quantifier = .required },
......@@ -14737,607 +16099,636 @@ pub const InstructionSet = enum {
1473716099 },
1473816100 },
1473916101 .{
14740 .name = "maxmag",
14741 .opcode = 43,
16102 .name = "u_mad_sat",
16103 .opcode = 154,
1474216104 .operands = &.{
1474316105 .{ .kind = .id_ref, .quantifier = .required },
1474416106 .{ .kind = .id_ref, .quantifier = .required },
16107 .{ .kind = .id_ref, .quantifier = .required },
1474516108 },
1474616109 },
1474716110 .{
14748 .name = "minmag",
14749 .opcode = 44,
16111 .name = "s_mad_sat",
16112 .opcode = 155,
1475016113 .operands = &.{
1475116114 .{ .kind = .id_ref, .quantifier = .required },
1475216115 .{ .kind = .id_ref, .quantifier = .required },
16116 .{ .kind = .id_ref, .quantifier = .required },
1475316117 },
1475416118 },
1475516119 .{
14756 .name = "modf",
14757 .opcode = 45,
16120 .name = "s_max",
16121 .opcode = 156,
1475816122 .operands = &.{
1475916123 .{ .kind = .id_ref, .quantifier = .required },
1476016124 .{ .kind = .id_ref, .quantifier = .required },
1476116125 },
1476216126 },
1476316127 .{
14764 .name = "nan",
14765 .opcode = 46,
16128 .name = "u_max",
16129 .opcode = 157,
1476616130 .operands = &.{
1476716131 .{ .kind = .id_ref, .quantifier = .required },
16132 .{ .kind = .id_ref, .quantifier = .required },
1476816133 },
1476916134 },
1477016135 .{
14771 .name = "nextafter",
14772 .opcode = 47,
16136 .name = "s_min",
16137 .opcode = 158,
1477316138 .operands = &.{
1477416139 .{ .kind = .id_ref, .quantifier = .required },
1477516140 .{ .kind = .id_ref, .quantifier = .required },
1477616141 },
1477716142 },
1477816143 .{
14779 .name = "pow",
14780 .opcode = 48,
16144 .name = "u_min",
16145 .opcode = 159,
1478116146 .operands = &.{
1478216147 .{ .kind = .id_ref, .quantifier = .required },
1478316148 .{ .kind = .id_ref, .quantifier = .required },
1478416149 },
1478516150 },
1478616151 .{
14787 .name = "pown",
14788 .opcode = 49,
16152 .name = "s_mul_hi",
16153 .opcode = 160,
1478916154 .operands = &.{
1479016155 .{ .kind = .id_ref, .quantifier = .required },
1479116156 .{ .kind = .id_ref, .quantifier = .required },
1479216157 },
1479316158 },
1479416159 .{
14795 .name = "powr",
14796 .opcode = 50,
16160 .name = "rotate",
16161 .opcode = 161,
1479716162 .operands = &.{
1479816163 .{ .kind = .id_ref, .quantifier = .required },
1479916164 .{ .kind = .id_ref, .quantifier = .required },
1480016165 },
1480116166 },
1480216167 .{
14803 .name = "remainder",
14804 .opcode = 51,
16168 .name = "s_sub_sat",
16169 .opcode = 162,
1480516170 .operands = &.{
1480616171 .{ .kind = .id_ref, .quantifier = .required },
1480716172 .{ .kind = .id_ref, .quantifier = .required },
1480816173 },
1480916174 },
1481016175 .{
14811 .name = "remquo",
14812 .opcode = 52,
16176 .name = "u_sub_sat",
16177 .opcode = 163,
1481316178 .operands = &.{
1481416179 .{ .kind = .id_ref, .quantifier = .required },
1481516180 .{ .kind = .id_ref, .quantifier = .required },
14816 .{ .kind = .id_ref, .quantifier = .required },
1481716181 },
1481816182 },
1481916183 .{
14820 .name = "rint",
14821 .opcode = 53,
16184 .name = "u_upsample",
16185 .opcode = 164,
1482216186 .operands = &.{
1482316187 .{ .kind = .id_ref, .quantifier = .required },
16188 .{ .kind = .id_ref, .quantifier = .required },
1482416189 },
1482516190 },
1482616191 .{
14827 .name = "rootn",
14828 .opcode = 54,
16192 .name = "s_upsample",
16193 .opcode = 165,
1482916194 .operands = &.{
1483016195 .{ .kind = .id_ref, .quantifier = .required },
1483116196 .{ .kind = .id_ref, .quantifier = .required },
1483216197 },
1483316198 },
1483416199 .{
14835 .name = "round",
14836 .opcode = 55,
16200 .name = "popcount",
16201 .opcode = 166,
1483716202 .operands = &.{
1483816203 .{ .kind = .id_ref, .quantifier = .required },
1483916204 },
1484016205 },
1484116206 .{
14842 .name = "rsqrt",
14843 .opcode = 56,
16207 .name = "s_mad24",
16208 .opcode = 167,
1484416209 .operands = &.{
1484516210 .{ .kind = .id_ref, .quantifier = .required },
16211 .{ .kind = .id_ref, .quantifier = .required },
16212 .{ .kind = .id_ref, .quantifier = .required },
1484616213 },
1484716214 },
1484816215 .{
14849 .name = "sin",
14850 .opcode = 57,
16216 .name = "u_mad24",
16217 .opcode = 168,
1485116218 .operands = &.{
1485216219 .{ .kind = .id_ref, .quantifier = .required },
16220 .{ .kind = .id_ref, .quantifier = .required },
16221 .{ .kind = .id_ref, .quantifier = .required },
1485316222 },
1485416223 },
1485516224 .{
14856 .name = "sincos",
14857 .opcode = 58,
16225 .name = "s_mul24",
16226 .opcode = 169,
1485816227 .operands = &.{
1485916228 .{ .kind = .id_ref, .quantifier = .required },
1486016229 .{ .kind = .id_ref, .quantifier = .required },
1486116230 },
1486216231 },
1486316232 .{
14864 .name = "sinh",
14865 .opcode = 59,
16233 .name = "u_mul24",
16234 .opcode = 170,
1486616235 .operands = &.{
1486716236 .{ .kind = .id_ref, .quantifier = .required },
16237 .{ .kind = .id_ref, .quantifier = .required },
1486816238 },
1486916239 },
1487016240 .{
14871 .name = "sinpi",
14872 .opcode = 60,
16241 .name = "vloadn",
16242 .opcode = 171,
1487316243 .operands = &.{
1487416244 .{ .kind = .id_ref, .quantifier = .required },
16245 .{ .kind = .id_ref, .quantifier = .required },
16246 .{ .kind = .literal_integer, .quantifier = .required },
1487516247 },
1487616248 },
1487716249 .{
14878 .name = "sqrt",
14879 .opcode = 61,
16250 .name = "vstoren",
16251 .opcode = 172,
1488016252 .operands = &.{
1488116253 .{ .kind = .id_ref, .quantifier = .required },
16254 .{ .kind = .id_ref, .quantifier = .required },
16255 .{ .kind = .id_ref, .quantifier = .required },
1488216256 },
1488316257 },
1488416258 .{
14885 .name = "tan",
14886 .opcode = 62,
16259 .name = "vload_half",
16260 .opcode = 173,
1488716261 .operands = &.{
1488816262 .{ .kind = .id_ref, .quantifier = .required },
16263 .{ .kind = .id_ref, .quantifier = .required },
1488916264 },
1489016265 },
1489116266 .{
14892 .name = "tanh",
14893 .opcode = 63,
16267 .name = "vload_halfn",
16268 .opcode = 174,
1489416269 .operands = &.{
1489516270 .{ .kind = .id_ref, .quantifier = .required },
16271 .{ .kind = .id_ref, .quantifier = .required },
16272 .{ .kind = .literal_integer, .quantifier = .required },
1489616273 },
1489716274 },
1489816275 .{
14899 .name = "tanpi",
14900 .opcode = 64,
16276 .name = "vstore_half",
16277 .opcode = 175,
1490116278 .operands = &.{
1490216279 .{ .kind = .id_ref, .quantifier = .required },
16280 .{ .kind = .id_ref, .quantifier = .required },
16281 .{ .kind = .id_ref, .quantifier = .required },
1490316282 },
1490416283 },
1490516284 .{
14906 .name = "tgamma",
14907 .opcode = 65,
16285 .name = "vstore_half_r",
16286 .opcode = 176,
1490816287 .operands = &.{
1490916288 .{ .kind = .id_ref, .quantifier = .required },
16289 .{ .kind = .id_ref, .quantifier = .required },
16290 .{ .kind = .id_ref, .quantifier = .required },
16291 .{ .kind = .fp_rounding_mode, .quantifier = .required },
1491016292 },
1491116293 },
1491216294 .{
14913 .name = "trunc",
14914 .opcode = 66,
16295 .name = "vstore_halfn",
16296 .opcode = 177,
1491516297 .operands = &.{
1491616298 .{ .kind = .id_ref, .quantifier = .required },
16299 .{ .kind = .id_ref, .quantifier = .required },
16300 .{ .kind = .id_ref, .quantifier = .required },
1491716301 },
1491816302 },
1491916303 .{
14920 .name = "half_cos",
14921 .opcode = 67,
16304 .name = "vstore_halfn_r",
16305 .opcode = 178,
1492216306 .operands = &.{
1492316307 .{ .kind = .id_ref, .quantifier = .required },
16308 .{ .kind = .id_ref, .quantifier = .required },
16309 .{ .kind = .id_ref, .quantifier = .required },
16310 .{ .kind = .fp_rounding_mode, .quantifier = .required },
1492416311 },
1492516312 },
1492616313 .{
14927 .name = "half_divide",
14928 .opcode = 68,
16314 .name = "vloada_halfn",
16315 .opcode = 179,
1492916316 .operands = &.{
1493016317 .{ .kind = .id_ref, .quantifier = .required },
1493116318 .{ .kind = .id_ref, .quantifier = .required },
16319 .{ .kind = .literal_integer, .quantifier = .required },
1493216320 },
1493316321 },
1493416322 .{
14935 .name = "half_exp",
14936 .opcode = 69,
16323 .name = "vstorea_halfn",
16324 .opcode = 180,
1493716325 .operands = &.{
1493816326 .{ .kind = .id_ref, .quantifier = .required },
16327 .{ .kind = .id_ref, .quantifier = .required },
16328 .{ .kind = .id_ref, .quantifier = .required },
1493916329 },
1494016330 },
1494116331 .{
14942 .name = "half_exp2",
14943 .opcode = 70,
16332 .name = "vstorea_halfn_r",
16333 .opcode = 181,
1494416334 .operands = &.{
1494516335 .{ .kind = .id_ref, .quantifier = .required },
16336 .{ .kind = .id_ref, .quantifier = .required },
16337 .{ .kind = .id_ref, .quantifier = .required },
16338 .{ .kind = .fp_rounding_mode, .quantifier = .required },
1494616339 },
1494716340 },
1494816341 .{
14949 .name = "half_exp10",
14950 .opcode = 71,
16342 .name = "shuffle",
16343 .opcode = 182,
1495116344 .operands = &.{
1495216345 .{ .kind = .id_ref, .quantifier = .required },
16346 .{ .kind = .id_ref, .quantifier = .required },
1495316347 },
1495416348 },
1495516349 .{
14956 .name = "half_log",
14957 .opcode = 72,
16350 .name = "shuffle2",
16351 .opcode = 183,
1495816352 .operands = &.{
1495916353 .{ .kind = .id_ref, .quantifier = .required },
16354 .{ .kind = .id_ref, .quantifier = .required },
16355 .{ .kind = .id_ref, .quantifier = .required },
1496016356 },
1496116357 },
1496216358 .{
14963 .name = "half_log2",
14964 .opcode = 73,
16359 .name = "printf",
16360 .opcode = 184,
1496516361 .operands = &.{
1496616362 .{ .kind = .id_ref, .quantifier = .required },
16363 .{ .kind = .id_ref, .quantifier = .variadic },
1496716364 },
1496816365 },
1496916366 .{
14970 .name = "half_log10",
14971 .opcode = 74,
16367 .name = "prefetch",
16368 .opcode = 185,
1497216369 .operands = &.{
1497316370 .{ .kind = .id_ref, .quantifier = .required },
16371 .{ .kind = .id_ref, .quantifier = .required },
1497416372 },
1497516373 },
1497616374 .{
14977 .name = "half_powr",
14978 .opcode = 75,
16375 .name = "bitselect",
16376 .opcode = 186,
1497916377 .operands = &.{
1498016378 .{ .kind = .id_ref, .quantifier = .required },
1498116379 .{ .kind = .id_ref, .quantifier = .required },
16380 .{ .kind = .id_ref, .quantifier = .required },
1498216381 },
1498316382 },
1498416383 .{
14985 .name = "half_recip",
14986 .opcode = 76,
16384 .name = "select",
16385 .opcode = 187,
1498716386 .operands = &.{
1498816387 .{ .kind = .id_ref, .quantifier = .required },
16388 .{ .kind = .id_ref, .quantifier = .required },
16389 .{ .kind = .id_ref, .quantifier = .required },
1498916390 },
1499016391 },
1499116392 .{
14992 .name = "half_rsqrt",
14993 .opcode = 77,
16393 .name = "u_abs",
16394 .opcode = 201,
1499416395 .operands = &.{
1499516396 .{ .kind = .id_ref, .quantifier = .required },
1499616397 },
1499716398 },
1499816399 .{
14999 .name = "half_sin",
15000 .opcode = 78,
16400 .name = "u_abs_diff",
16401 .opcode = 202,
1500116402 .operands = &.{
1500216403 .{ .kind = .id_ref, .quantifier = .required },
16404 .{ .kind = .id_ref, .quantifier = .required },
1500316405 },
1500416406 },
1500516407 .{
15006 .name = "half_sqrt",
15007 .opcode = 79,
16408 .name = "u_mul_hi",
16409 .opcode = 203,
1500816410 .operands = &.{
1500916411 .{ .kind = .id_ref, .quantifier = .required },
16412 .{ .kind = .id_ref, .quantifier = .required },
1501016413 },
1501116414 },
1501216415 .{
15013 .name = "half_tan",
15014 .opcode = 80,
16416 .name = "u_mad_hi",
16417 .opcode = 204,
1501516418 .operands = &.{
1501616419 .{ .kind = .id_ref, .quantifier = .required },
16420 .{ .kind = .id_ref, .quantifier = .required },
16421 .{ .kind = .id_ref, .quantifier = .required },
1501716422 },
1501816423 },
16424 },
16425 .@"GLSL.std.450" => &.{
1501916426 .{
15020 .name = "native_cos",
15021 .opcode = 81,
16427 .name = "Round",
16428 .opcode = 1,
1502216429 .operands = &.{
1502316430 .{ .kind = .id_ref, .quantifier = .required },
1502416431 },
1502516432 },
1502616433 .{
15027 .name = "native_divide",
15028 .opcode = 82,
16434 .name = "RoundEven",
16435 .opcode = 2,
1502916436 .operands = &.{
1503016437 .{ .kind = .id_ref, .quantifier = .required },
15031 .{ .kind = .id_ref, .quantifier = .required },
1503216438 },
1503316439 },
1503416440 .{
15035 .name = "native_exp",
15036 .opcode = 83,
16441 .name = "Trunc",
16442 .opcode = 3,
1503716443 .operands = &.{
1503816444 .{ .kind = .id_ref, .quantifier = .required },
1503916445 },
1504016446 },
1504116447 .{
15042 .name = "native_exp2",
15043 .opcode = 84,
16448 .name = "FAbs",
16449 .opcode = 4,
1504416450 .operands = &.{
1504516451 .{ .kind = .id_ref, .quantifier = .required },
1504616452 },
1504716453 },
1504816454 .{
15049 .name = "native_exp10",
15050 .opcode = 85,
16455 .name = "SAbs",
16456 .opcode = 5,
1505116457 .operands = &.{
1505216458 .{ .kind = .id_ref, .quantifier = .required },
1505316459 },
1505416460 },
1505516461 .{
15056 .name = "native_log",
15057 .opcode = 86,
16462 .name = "FSign",
16463 .opcode = 6,
1505816464 .operands = &.{
1505916465 .{ .kind = .id_ref, .quantifier = .required },
1506016466 },
1506116467 },
1506216468 .{
15063 .name = "native_log2",
15064 .opcode = 87,
16469 .name = "SSign",
16470 .opcode = 7,
1506516471 .operands = &.{
1506616472 .{ .kind = .id_ref, .quantifier = .required },
1506716473 },
1506816474 },
1506916475 .{
15070 .name = "native_log10",
15071 .opcode = 88,
16476 .name = "Floor",
16477 .opcode = 8,
1507216478 .operands = &.{
1507316479 .{ .kind = .id_ref, .quantifier = .required },
1507416480 },
1507516481 },
1507616482 .{
15077 .name = "native_powr",
15078 .opcode = 89,
16483 .name = "Ceil",
16484 .opcode = 9,
1507916485 .operands = &.{
1508016486 .{ .kind = .id_ref, .quantifier = .required },
15081 .{ .kind = .id_ref, .quantifier = .required },
1508216487 },
1508316488 },
1508416489 .{
15085 .name = "native_recip",
15086 .opcode = 90,
16490 .name = "Fract",
16491 .opcode = 10,
1508716492 .operands = &.{
1508816493 .{ .kind = .id_ref, .quantifier = .required },
1508916494 },
1509016495 },
1509116496 .{
15092 .name = "native_rsqrt",
15093 .opcode = 91,
16497 .name = "Radians",
16498 .opcode = 11,
1509416499 .operands = &.{
1509516500 .{ .kind = .id_ref, .quantifier = .required },
1509616501 },
1509716502 },
1509816503 .{
15099 .name = "native_sin",
15100 .opcode = 92,
16504 .name = "Degrees",
16505 .opcode = 12,
1510116506 .operands = &.{
1510216507 .{ .kind = .id_ref, .quantifier = .required },
1510316508 },
1510416509 },
1510516510 .{
15106 .name = "native_sqrt",
15107 .opcode = 93,
16511 .name = "Sin",
16512 .opcode = 13,
1510816513 .operands = &.{
1510916514 .{ .kind = .id_ref, .quantifier = .required },
1511016515 },
1511116516 },
1511216517 .{
15113 .name = "native_tan",
15114 .opcode = 94,
16518 .name = "Cos",
16519 .opcode = 14,
1511516520 .operands = &.{
1511616521 .{ .kind = .id_ref, .quantifier = .required },
1511716522 },
1511816523 },
1511916524 .{
15120 .name = "fclamp",
15121 .opcode = 95,
16525 .name = "Tan",
16526 .opcode = 15,
1512216527 .operands = &.{
1512316528 .{ .kind = .id_ref, .quantifier = .required },
15124 .{ .kind = .id_ref, .quantifier = .required },
15125 .{ .kind = .id_ref, .quantifier = .required },
1512616529 },
1512716530 },
1512816531 .{
15129 .name = "degrees",
15130 .opcode = 96,
16532 .name = "Asin",
16533 .opcode = 16,
1513116534 .operands = &.{
1513216535 .{ .kind = .id_ref, .quantifier = .required },
1513316536 },
1513416537 },
1513516538 .{
15136 .name = "fmax_common",
15137 .opcode = 97,
16539 .name = "Acos",
16540 .opcode = 17,
1513816541 .operands = &.{
1513916542 .{ .kind = .id_ref, .quantifier = .required },
15140 .{ .kind = .id_ref, .quantifier = .required },
1514116543 },
1514216544 },
1514316545 .{
15144 .name = "fmin_common",
15145 .opcode = 98,
16546 .name = "Atan",
16547 .opcode = 18,
1514616548 .operands = &.{
1514716549 .{ .kind = .id_ref, .quantifier = .required },
15148 .{ .kind = .id_ref, .quantifier = .required },
1514916550 },
1515016551 },
1515116552 .{
15152 .name = "mix",
15153 .opcode = 99,
16553 .name = "Sinh",
16554 .opcode = 19,
1515416555 .operands = &.{
1515516556 .{ .kind = .id_ref, .quantifier = .required },
15156 .{ .kind = .id_ref, .quantifier = .required },
15157 .{ .kind = .id_ref, .quantifier = .required },
1515816557 },
1515916558 },
1516016559 .{
15161 .name = "radians",
15162 .opcode = 100,
16560 .name = "Cosh",
16561 .opcode = 20,
1516316562 .operands = &.{
1516416563 .{ .kind = .id_ref, .quantifier = .required },
1516516564 },
1516616565 },
1516716566 .{
15168 .name = "step",
15169 .opcode = 101,
16567 .name = "Tanh",
16568 .opcode = 21,
1517016569 .operands = &.{
1517116570 .{ .kind = .id_ref, .quantifier = .required },
15172 .{ .kind = .id_ref, .quantifier = .required },
1517316571 },
1517416572 },
1517516573 .{
15176 .name = "smoothstep",
15177 .opcode = 102,
16574 .name = "Asinh",
16575 .opcode = 22,
1517816576 .operands = &.{
1517916577 .{ .kind = .id_ref, .quantifier = .required },
15180 .{ .kind = .id_ref, .quantifier = .required },
15181 .{ .kind = .id_ref, .quantifier = .required },
1518216578 },
1518316579 },
1518416580 .{
15185 .name = "sign",
15186 .opcode = 103,
16581 .name = "Acosh",
16582 .opcode = 23,
1518716583 .operands = &.{
1518816584 .{ .kind = .id_ref, .quantifier = .required },
1518916585 },
1519016586 },
1519116587 .{
15192 .name = "cross",
15193 .opcode = 104,
16588 .name = "Atanh",
16589 .opcode = 24,
1519416590 .operands = &.{
1519516591 .{ .kind = .id_ref, .quantifier = .required },
15196 .{ .kind = .id_ref, .quantifier = .required },
1519716592 },
1519816593 },
1519916594 .{
15200 .name = "distance",
15201 .opcode = 105,
16595 .name = "Atan2",
16596 .opcode = 25,
1520216597 .operands = &.{
1520316598 .{ .kind = .id_ref, .quantifier = .required },
1520416599 .{ .kind = .id_ref, .quantifier = .required },
1520516600 },
1520616601 },
1520716602 .{
15208 .name = "length",
15209 .opcode = 106,
16603 .name = "Pow",
16604 .opcode = 26,
1521016605 .operands = &.{
1521116606 .{ .kind = .id_ref, .quantifier = .required },
16607 .{ .kind = .id_ref, .quantifier = .required },
1521216608 },
1521316609 },
1521416610 .{
15215 .name = "normalize",
15216 .opcode = 107,
16611 .name = "Exp",
16612 .opcode = 27,
1521716613 .operands = &.{
1521816614 .{ .kind = .id_ref, .quantifier = .required },
1521916615 },
1522016616 },
1522116617 .{
15222 .name = "fast_distance",
15223 .opcode = 108,
16618 .name = "Log",
16619 .opcode = 28,
1522416620 .operands = &.{
1522516621 .{ .kind = .id_ref, .quantifier = .required },
15226 .{ .kind = .id_ref, .quantifier = .required },
1522716622 },
1522816623 },
1522916624 .{
15230 .name = "fast_length",
15231 .opcode = 109,
16625 .name = "Exp2",
16626 .opcode = 29,
1523216627 .operands = &.{
1523316628 .{ .kind = .id_ref, .quantifier = .required },
1523416629 },
1523516630 },
1523616631 .{
15237 .name = "fast_normalize",
15238 .opcode = 110,
16632 .name = "Log2",
16633 .opcode = 30,
1523916634 .operands = &.{
1524016635 .{ .kind = .id_ref, .quantifier = .required },
1524116636 },
1524216637 },
1524316638 .{
15244 .name = "s_abs",
15245 .opcode = 141,
16639 .name = "Sqrt",
16640 .opcode = 31,
1524616641 .operands = &.{
1524716642 .{ .kind = .id_ref, .quantifier = .required },
1524816643 },
1524916644 },
1525016645 .{
15251 .name = "s_abs_diff",
15252 .opcode = 142,
16646 .name = "InverseSqrt",
16647 .opcode = 32,
1525316648 .operands = &.{
1525416649 .{ .kind = .id_ref, .quantifier = .required },
15255 .{ .kind = .id_ref, .quantifier = .required },
1525616650 },
1525716651 },
1525816652 .{
15259 .name = "s_add_sat",
15260 .opcode = 143,
16653 .name = "Determinant",
16654 .opcode = 33,
1526116655 .operands = &.{
1526216656 .{ .kind = .id_ref, .quantifier = .required },
15263 .{ .kind = .id_ref, .quantifier = .required },
1526416657 },
1526516658 },
1526616659 .{
15267 .name = "u_add_sat",
15268 .opcode = 144,
16660 .name = "MatrixInverse",
16661 .opcode = 34,
1526916662 .operands = &.{
1527016663 .{ .kind = .id_ref, .quantifier = .required },
15271 .{ .kind = .id_ref, .quantifier = .required },
1527216664 },
1527316665 },
1527416666 .{
15275 .name = "s_hadd",
15276 .opcode = 145,
16667 .name = "Modf",
16668 .opcode = 35,
1527716669 .operands = &.{
1527816670 .{ .kind = .id_ref, .quantifier = .required },
1527916671 .{ .kind = .id_ref, .quantifier = .required },
1528016672 },
1528116673 },
1528216674 .{
15283 .name = "u_hadd",
15284 .opcode = 146,
16675 .name = "ModfStruct",
16676 .opcode = 36,
1528516677 .operands = &.{
1528616678 .{ .kind = .id_ref, .quantifier = .required },
15287 .{ .kind = .id_ref, .quantifier = .required },
1528816679 },
1528916680 },
1529016681 .{
15291 .name = "s_rhadd",
15292 .opcode = 147,
16682 .name = "FMin",
16683 .opcode = 37,
1529316684 .operands = &.{
1529416685 .{ .kind = .id_ref, .quantifier = .required },
1529516686 .{ .kind = .id_ref, .quantifier = .required },
1529616687 },
1529716688 },
1529816689 .{
15299 .name = "u_rhadd",
15300 .opcode = 148,
16690 .name = "UMin",
16691 .opcode = 38,
1530116692 .operands = &.{
1530216693 .{ .kind = .id_ref, .quantifier = .required },
1530316694 .{ .kind = .id_ref, .quantifier = .required },
1530416695 },
1530516696 },
1530616697 .{
15307 .name = "s_clamp",
15308 .opcode = 149,
16698 .name = "SMin",
16699 .opcode = 39,
1530916700 .operands = &.{
1531016701 .{ .kind = .id_ref, .quantifier = .required },
1531116702 .{ .kind = .id_ref, .quantifier = .required },
15312 .{ .kind = .id_ref, .quantifier = .required },
1531316703 },
1531416704 },
1531516705 .{
15316 .name = "u_clamp",
15317 .opcode = 150,
16706 .name = "FMax",
16707 .opcode = 40,
1531816708 .operands = &.{
1531916709 .{ .kind = .id_ref, .quantifier = .required },
1532016710 .{ .kind = .id_ref, .quantifier = .required },
15321 .{ .kind = .id_ref, .quantifier = .required },
1532216711 },
1532316712 },
1532416713 .{
15325 .name = "clz",
15326 .opcode = 151,
16714 .name = "UMax",
16715 .opcode = 41,
1532716716 .operands = &.{
1532816717 .{ .kind = .id_ref, .quantifier = .required },
16718 .{ .kind = .id_ref, .quantifier = .required },
1532916719 },
1533016720 },
1533116721 .{
15332 .name = "ctz",
15333 .opcode = 152,
16722 .name = "SMax",
16723 .opcode = 42,
1533416724 .operands = &.{
1533516725 .{ .kind = .id_ref, .quantifier = .required },
16726 .{ .kind = .id_ref, .quantifier = .required },
1533616727 },
1533716728 },
1533816729 .{
15339 .name = "s_mad_hi",
15340 .opcode = 153,
16730 .name = "FClamp",
16731 .opcode = 43,
1534116732 .operands = &.{
1534216733 .{ .kind = .id_ref, .quantifier = .required },
1534316734 .{ .kind = .id_ref, .quantifier = .required },
......@@ -15345,8 +16736,8 @@ pub const InstructionSet = enum {
1534516736 },
1534616737 },
1534716738 .{
15348 .name = "u_mad_sat",
15349 .opcode = 154,
16739 .name = "UClamp",
16740 .opcode = 44,
1535016741 .operands = &.{
1535116742 .{ .kind = .id_ref, .quantifier = .required },
1535216743 .{ .kind = .id_ref, .quantifier = .required },
......@@ -15354,8 +16745,8 @@ pub const InstructionSet = enum {
1535416745 },
1535516746 },
1535616747 .{
15357 .name = "s_mad_sat",
15358 .opcode = 155,
16748 .name = "SClamp",
16749 .opcode = 45,
1535916750 .operands = &.{
1536016751 .{ .kind = .id_ref, .quantifier = .required },
1536116752 .{ .kind = .id_ref, .quantifier = .required },
......@@ -15363,211 +16754,189 @@ pub const InstructionSet = enum {
1536316754 },
1536416755 },
1536516756 .{
15366 .name = "s_max",
15367 .opcode = 156,
16757 .name = "FMix",
16758 .opcode = 46,
1536816759 .operands = &.{
1536916760 .{ .kind = .id_ref, .quantifier = .required },
1537016761 .{ .kind = .id_ref, .quantifier = .required },
16762 .{ .kind = .id_ref, .quantifier = .required },
1537116763 },
1537216764 },
1537316765 .{
15374 .name = "u_max",
15375 .opcode = 157,
16766 .name = "IMix",
16767 .opcode = 47,
1537616768 .operands = &.{
1537716769 .{ .kind = .id_ref, .quantifier = .required },
1537816770 .{ .kind = .id_ref, .quantifier = .required },
16771 .{ .kind = .id_ref, .quantifier = .required },
1537916772 },
1538016773 },
1538116774 .{
15382 .name = "s_min",
15383 .opcode = 158,
16775 .name = "Step",
16776 .opcode = 48,
1538416777 .operands = &.{
1538516778 .{ .kind = .id_ref, .quantifier = .required },
1538616779 .{ .kind = .id_ref, .quantifier = .required },
1538716780 },
1538816781 },
1538916782 .{
15390 .name = "u_min",
15391 .opcode = 159,
16783 .name = "SmoothStep",
16784 .opcode = 49,
1539216785 .operands = &.{
1539316786 .{ .kind = .id_ref, .quantifier = .required },
1539416787 .{ .kind = .id_ref, .quantifier = .required },
16788 .{ .kind = .id_ref, .quantifier = .required },
1539516789 },
1539616790 },
1539716791 .{
15398 .name = "s_mul_hi",
15399 .opcode = 160,
16792 .name = "Fma",
16793 .opcode = 50,
1540016794 .operands = &.{
1540116795 .{ .kind = .id_ref, .quantifier = .required },
1540216796 .{ .kind = .id_ref, .quantifier = .required },
16797 .{ .kind = .id_ref, .quantifier = .required },
1540316798 },
1540416799 },
1540516800 .{
15406 .name = "rotate",
15407 .opcode = 161,
16801 .name = "Frexp",
16802 .opcode = 51,
1540816803 .operands = &.{
1540916804 .{ .kind = .id_ref, .quantifier = .required },
1541016805 .{ .kind = .id_ref, .quantifier = .required },
1541116806 },
1541216807 },
1541316808 .{
15414 .name = "s_sub_sat",
15415 .opcode = 162,
16809 .name = "FrexpStruct",
16810 .opcode = 52,
1541616811 .operands = &.{
1541716812 .{ .kind = .id_ref, .quantifier = .required },
15418 .{ .kind = .id_ref, .quantifier = .required },
1541916813 },
1542016814 },
1542116815 .{
15422 .name = "u_sub_sat",
15423 .opcode = 163,
16816 .name = "Ldexp",
16817 .opcode = 53,
1542416818 .operands = &.{
1542516819 .{ .kind = .id_ref, .quantifier = .required },
1542616820 .{ .kind = .id_ref, .quantifier = .required },
1542716821 },
1542816822 },
1542916823 .{
15430 .name = "u_upsample",
15431 .opcode = 164,
16824 .name = "PackSnorm4x8",
16825 .opcode = 54,
1543216826 .operands = &.{
1543316827 .{ .kind = .id_ref, .quantifier = .required },
15434 .{ .kind = .id_ref, .quantifier = .required },
1543516828 },
1543616829 },
1543716830 .{
15438 .name = "s_upsample",
15439 .opcode = 165,
16831 .name = "PackUnorm4x8",
16832 .opcode = 55,
1544016833 .operands = &.{
1544116834 .{ .kind = .id_ref, .quantifier = .required },
15442 .{ .kind = .id_ref, .quantifier = .required },
1544316835 },
1544416836 },
1544516837 .{
15446 .name = "popcount",
15447 .opcode = 166,
16838 .name = "PackSnorm2x16",
16839 .opcode = 56,
1544816840 .operands = &.{
1544916841 .{ .kind = .id_ref, .quantifier = .required },
1545016842 },
1545116843 },
1545216844 .{
15453 .name = "s_mad24",
15454 .opcode = 167,
16845 .name = "PackUnorm2x16",
16846 .opcode = 57,
1545516847 .operands = &.{
1545616848 .{ .kind = .id_ref, .quantifier = .required },
15457 .{ .kind = .id_ref, .quantifier = .required },
15458 .{ .kind = .id_ref, .quantifier = .required },
1545916849 },
1546016850 },
1546116851 .{
15462 .name = "u_mad24",
15463 .opcode = 168,
16852 .name = "PackHalf2x16",
16853 .opcode = 58,
1546416854 .operands = &.{
1546516855 .{ .kind = .id_ref, .quantifier = .required },
15466 .{ .kind = .id_ref, .quantifier = .required },
15467 .{ .kind = .id_ref, .quantifier = .required },
1546816856 },
1546916857 },
1547016858 .{
15471 .name = "s_mul24",
15472 .opcode = 169,
16859 .name = "PackDouble2x32",
16860 .opcode = 59,
1547316861 .operands = &.{
1547416862 .{ .kind = .id_ref, .quantifier = .required },
15475 .{ .kind = .id_ref, .quantifier = .required },
1547616863 },
1547716864 },
1547816865 .{
15479 .name = "u_mul24",
15480 .opcode = 170,
16866 .name = "UnpackSnorm2x16",
16867 .opcode = 60,
1548116868 .operands = &.{
1548216869 .{ .kind = .id_ref, .quantifier = .required },
15483 .{ .kind = .id_ref, .quantifier = .required },
1548416870 },
1548516871 },
1548616872 .{
15487 .name = "vloadn",
15488 .opcode = 171,
16873 .name = "UnpackUnorm2x16",
16874 .opcode = 61,
1548916875 .operands = &.{
1549016876 .{ .kind = .id_ref, .quantifier = .required },
15491 .{ .kind = .id_ref, .quantifier = .required },
15492 .{ .kind = .literal_integer, .quantifier = .required },
1549316877 },
1549416878 },
1549516879 .{
15496 .name = "vstoren",
15497 .opcode = 172,
16880 .name = "UnpackHalf2x16",
16881 .opcode = 62,
1549816882 .operands = &.{
1549916883 .{ .kind = .id_ref, .quantifier = .required },
15500 .{ .kind = .id_ref, .quantifier = .required },
15501 .{ .kind = .id_ref, .quantifier = .required },
1550216884 },
1550316885 },
1550416886 .{
15505 .name = "vload_half",
15506 .opcode = 173,
16887 .name = "UnpackSnorm4x8",
16888 .opcode = 63,
1550716889 .operands = &.{
1550816890 .{ .kind = .id_ref, .quantifier = .required },
15509 .{ .kind = .id_ref, .quantifier = .required },
1551016891 },
1551116892 },
1551216893 .{
15513 .name = "vload_halfn",
15514 .opcode = 174,
16894 .name = "UnpackUnorm4x8",
16895 .opcode = 64,
1551516896 .operands = &.{
1551616897 .{ .kind = .id_ref, .quantifier = .required },
15517 .{ .kind = .id_ref, .quantifier = .required },
15518 .{ .kind = .literal_integer, .quantifier = .required },
1551916898 },
1552016899 },
1552116900 .{
15522 .name = "vstore_half",
15523 .opcode = 175,
16901 .name = "UnpackDouble2x32",
16902 .opcode = 65,
1552416903 .operands = &.{
1552516904 .{ .kind = .id_ref, .quantifier = .required },
15526 .{ .kind = .id_ref, .quantifier = .required },
15527 .{ .kind = .id_ref, .quantifier = .required },
1552816905 },
1552916906 },
1553016907 .{
15531 .name = "vstore_half_r",
15532 .opcode = 176,
16908 .name = "Length",
16909 .opcode = 66,
1553316910 .operands = &.{
1553416911 .{ .kind = .id_ref, .quantifier = .required },
15535 .{ .kind = .id_ref, .quantifier = .required },
15536 .{ .kind = .id_ref, .quantifier = .required },
15537 .{ .kind = .fp_rounding_mode, .quantifier = .required },
1553816912 },
1553916913 },
1554016914 .{
15541 .name = "vstore_halfn",
15542 .opcode = 177,
16915 .name = "Distance",
16916 .opcode = 67,
1554316917 .operands = &.{
1554416918 .{ .kind = .id_ref, .quantifier = .required },
1554516919 .{ .kind = .id_ref, .quantifier = .required },
15546 .{ .kind = .id_ref, .quantifier = .required },
1554716920 },
1554816921 },
1554916922 .{
15550 .name = "vstore_halfn_r",
15551 .opcode = 178,
16923 .name = "Cross",
16924 .opcode = 68,
1555216925 .operands = &.{
1555316926 .{ .kind = .id_ref, .quantifier = .required },
1555416927 .{ .kind = .id_ref, .quantifier = .required },
15555 .{ .kind = .id_ref, .quantifier = .required },
15556 .{ .kind = .fp_rounding_mode, .quantifier = .required },
1555716928 },
1555816929 },
1555916930 .{
15560 .name = "vloada_halfn",
15561 .opcode = 179,
16931 .name = "Normalize",
16932 .opcode = 69,
1556216933 .operands = &.{
1556316934 .{ .kind = .id_ref, .quantifier = .required },
15564 .{ .kind = .id_ref, .quantifier = .required },
15565 .{ .kind = .literal_integer, .quantifier = .required },
1556616935 },
1556716936 },
1556816937 .{
15569 .name = "vstorea_halfn",
15570 .opcode = 180,
16938 .name = "FaceForward",
16939 .opcode = 70,
1557116940 .operands = &.{
1557216941 .{ .kind = .id_ref, .quantifier = .required },
1557316942 .{ .kind = .id_ref, .quantifier = .required },
......@@ -15575,92 +16944,85 @@ pub const InstructionSet = enum {
1557516944 },
1557616945 },
1557716946 .{
15578 .name = "vstorea_halfn_r",
15579 .opcode = 181,
16947 .name = "Reflect",
16948 .opcode = 71,
1558016949 .operands = &.{
1558116950 .{ .kind = .id_ref, .quantifier = .required },
1558216951 .{ .kind = .id_ref, .quantifier = .required },
15583 .{ .kind = .id_ref, .quantifier = .required },
15584 .{ .kind = .fp_rounding_mode, .quantifier = .required },
1558516952 },
1558616953 },
1558716954 .{
15588 .name = "shuffle",
15589 .opcode = 182,
16955 .name = "Refract",
16956 .opcode = 72,
1559016957 .operands = &.{
1559116958 .{ .kind = .id_ref, .quantifier = .required },
1559216959 .{ .kind = .id_ref, .quantifier = .required },
16960 .{ .kind = .id_ref, .quantifier = .required },
1559316961 },
1559416962 },
1559516963 .{
15596 .name = "shuffle2",
15597 .opcode = 183,
16964 .name = "FindILsb",
16965 .opcode = 73,
1559816966 .operands = &.{
1559916967 .{ .kind = .id_ref, .quantifier = .required },
15600 .{ .kind = .id_ref, .quantifier = .required },
15601 .{ .kind = .id_ref, .quantifier = .required },
1560216968 },
1560316969 },
1560416970 .{
15605 .name = "printf",
15606 .opcode = 184,
16971 .name = "FindSMsb",
16972 .opcode = 74,
1560716973 .operands = &.{
1560816974 .{ .kind = .id_ref, .quantifier = .required },
15609 .{ .kind = .id_ref, .quantifier = .variadic },
1561016975 },
1561116976 },
1561216977 .{
15613 .name = "prefetch",
15614 .opcode = 185,
16978 .name = "FindUMsb",
16979 .opcode = 75,
1561516980 .operands = &.{
1561616981 .{ .kind = .id_ref, .quantifier = .required },
15617 .{ .kind = .id_ref, .quantifier = .required },
1561816982 },
1561916983 },
1562016984 .{
15621 .name = "bitselect",
15622 .opcode = 186,
16985 .name = "InterpolateAtCentroid",
16986 .opcode = 76,
1562316987 .operands = &.{
1562416988 .{ .kind = .id_ref, .quantifier = .required },
15625 .{ .kind = .id_ref, .quantifier = .required },
15626 .{ .kind = .id_ref, .quantifier = .required },
1562716989 },
1562816990 },
1562916991 .{
15630 .name = "select",
15631 .opcode = 187,
16992 .name = "InterpolateAtSample",
16993 .opcode = 77,
1563216994 .operands = &.{
1563316995 .{ .kind = .id_ref, .quantifier = .required },
1563416996 .{ .kind = .id_ref, .quantifier = .required },
15635 .{ .kind = .id_ref, .quantifier = .required },
1563616997 },
1563716998 },
1563816999 .{
15639 .name = "u_abs",
15640 .opcode = 201,
17000 .name = "InterpolateAtOffset",
17001 .opcode = 78,
1564117002 .operands = &.{
1564217003 .{ .kind = .id_ref, .quantifier = .required },
17004 .{ .kind = .id_ref, .quantifier = .required },
1564317005 },
1564417006 },
1564517007 .{
15646 .name = "u_abs_diff",
15647 .opcode = 202,
17008 .name = "NMin",
17009 .opcode = 79,
1564817010 .operands = &.{
1564917011 .{ .kind = .id_ref, .quantifier = .required },
1565017012 .{ .kind = .id_ref, .quantifier = .required },
1565117013 },
1565217014 },
1565317015 .{
15654 .name = "u_mul_hi",
15655 .opcode = 203,
17016 .name = "NMax",
17017 .opcode = 80,
1565617018 .operands = &.{
1565717019 .{ .kind = .id_ref, .quantifier = .required },
1565817020 .{ .kind = .id_ref, .quantifier = .required },
1565917021 },
1566017022 },
1566117023 .{
15662 .name = "u_mad_hi",
15663 .opcode = 204,
17024 .name = "NClamp",
17025 .opcode = 81,
1566417026 .operands = &.{
1566517027 .{ .kind = .id_ref, .quantifier = .required },
1566617028 .{ .kind = .id_ref, .quantifier = .required },
......@@ -15680,3 +17042,72 @@ pub const InstructionSet = enum {
1568017042 };
1568117043 }
1568217044};
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};
src/link/SpirV.zig+52-46
......@@ -12,7 +12,6 @@ const Air = @import("../Air.zig");
1212const Type = @import("../Type.zig");
1313const codegen = @import("../codegen.zig");
1414const CodeGen = @import("../codegen/spirv/CodeGen.zig");
15const Module = @import("../codegen/spirv/Module.zig");
1615const BinaryModule = @import("SpirV/BinaryModule.zig");
1716const lower_invocation_globals = @import("SpirV/lower_invocation_globals.zig");
1817const dedup_types = @import("SpirV/dedup_types.zig");
......@@ -147,6 +146,21 @@ pub fn loadInput(linker: *Linker, input: link.Input) !void {
147146
148147 const id_bound = all_words[3];
149148 const instructions = try gpa.dupe(Word, all_words[5..]);
149 errdefer gpa.free(instructions);
150
151 // OpCapability instructions appear at the top of the module
152 // so we can stop scanning as soon as we hit anything else.
153 var it: BinaryModule.Instruction.Iterator = .init(instructions, 0);
154 const has_linkage = while (it.next()) |inst| switch (inst.opcode) {
155 .OpCapability => {
156 const cap: spec.Capability = @enumFromInt(inst.operands[0]);
157 if (cap == .linkage) break true;
158 },
159 else => break false,
160 } else false;
161 if (!has_linkage) {
162 return diags.fail("SPIR-V object '{f}' is missing the Linkage capability and cannot be linked", .{obj.path});
163 }
150164
151165 try linker.external_objects.append(gpa, .{
152166 .instructions = instructions,
......@@ -594,63 +608,54 @@ fn emitPreamble(
594608 capabilities: *Section,
595609 extensions: *Section,
596610 memory_model: *Section,
597) error{OutOfMemory}!void {
598 try capabilities.emit(gpa, .OpCapability, .{ .capability = .int8 });
599 try capabilities.emit(gpa, .OpCapability, .{ .capability = .int16 });
611) !void {
612 var caps: std.EnumSet(spec.Capability) = .empty;
613 var exts: std.StringHashMapUnmanaged(void) = .empty;
614 defer exts.deinit(gpa);
600615
601616 switch (target.os.tag) {
602 .opengl => {
603 try capabilities.emit(gpa, .OpCapability, .{ .capability = .shader });
604 try capabilities.emit(gpa, .OpCapability, .{ .capability = .matrix });
605 },
606 .vulkan => {
607 try capabilities.emit(gpa, .OpCapability, .{ .capability = .shader });
608 try capabilities.emit(gpa, .OpCapability, .{ .capability = .matrix });
609 if (target.cpu.arch == .spirv64) {
610 try extensions.emit(gpa, .OpExtension, .{ .name = "SPV_KHR_physical_storage_buffer" });
611 try capabilities.emit(gpa, .OpCapability, .{ .capability = .physical_storage_buffer_addresses });
612 }
613 },
617 .opengl, .vulkan => caps.insert(.shader),
614618 .opencl, .amdhsa => {
615 try capabilities.emit(gpa, .OpCapability, .{ .capability = .kernel });
616 try capabilities.emit(gpa, .OpCapability, .{ .capability = .addresses });
619 caps.insert(.kernel);
620 caps.insert(.addresses);
617621 },
618622 else => unreachable,
619623 }
620 if (target.cpu.arch == .spirv64)
621 try capabilities.emit(gpa, .OpCapability, .{ .capability = .int64 });
622 if (target.cpu.has(.spirv, .int64))
623 try capabilities.emit(gpa, .OpCapability, .{ .capability = .int64 });
624 if (target.cpu.has(.spirv, .float16)) {
625 if (target.os.tag == .opencl) try extensions.emit(gpa, .OpExtension, .{ .name = "cl_khr_fp16" });
626 try capabilities.emit(gpa, .OpCapability, .{ .capability = .float16 });
627 }
628 if (target.cpu.has(.spirv, .float64))
629 try capabilities.emit(gpa, .OpCapability, .{ .capability = .float64 });
630 if (target.cpu.has(.spirv, .generic_pointer))
631 try capabilities.emit(gpa, .OpCapability, .{ .capability = .generic_pointer });
632 if (target.cpu.has(.spirv, .vector16))
633 try capabilities.emit(gpa, .OpCapability, .{ .capability = .vector16 });
634 if (target.cpu.has(.spirv, .storage_push_constant16)) {
635 try extensions.emit(gpa, .OpExtension, .{ .name = "SPV_KHR_16bit_storage" });
636 try capabilities.emit(gpa, .OpCapability, .{ .capability = .storage_push_constant16 });
624 if (target.os.tag == .vulkan and target.cpu.arch == .spirv64) {
625 caps.insert(.physical_storage_buffer_addresses);
626 try exts.put(gpa, "SPV_KHR_physical_storage_buffer", {});
637627 }
638 if (target.cpu.has(.spirv, .arbitrary_precision_integers)) {
639 try extensions.emit(gpa, .OpExtension, .{ .name = "SPV_INTEL_arbitrary_precision_integers" });
640 try capabilities.emit(gpa, .OpCapability, .{ .capability = .arbitrary_precision_integers_intel });
628 if (has_linkage) caps.insert(.linkage);
629
630 inline for (@typeInfo(spec.Capability).@"enum".field_names) |cap_name| {
631 if (target.cpu.has(.spirv, @field(std.Target.spirv.Feature, cap_name)))
632 caps.insert(@field(spec.Capability, cap_name));
641633 }
642 if (target.cpu.has(.spirv, .variable_pointers)) {
643 try extensions.emit(gpa, .OpExtension, .{ .name = "SPV_KHR_variable_pointers" });
644 try capabilities.emit(gpa, .OpCapability, .{ .capability = .variable_pointers_storage_buffer });
645 try capabilities.emit(gpa, .OpCapability, .{ .capability = .variable_pointers });
634 inline for (@typeInfo(spec.Extension).@"enum".field_names) |ext_name| {
635 switch (@field(spec.Extension, ext_name)) {
636 .v1_0, .v1_1, .v1_2, .v1_3, .v1_4, .v1_5, .v1_6 => {},
637 else => if (target.cpu.has(.spirv, @field(std.Target.spirv.Feature, ext_name)))
638 try exts.put(gpa, ext_name, {}),
639 }
646640 }
647 if (has_linkage)
648 try capabilities.emit(gpa, .OpCapability, .{ .capability = .linkage });
641
642 var cit = caps.iterator();
643 while (cit.next()) |cap| try capabilities.emit(gpa, .OpCapability, .{ .capability = cap });
644 var eit = exts.iterator();
645 while (eit.next()) |e| try extensions.emit(gpa, .OpExtension, .{ .name = e.key_ptr.* });
649646
650647 const addressing_model: spec.AddressingModel = switch (target.os.tag) {
651648 .opengl => .logical,
652 .vulkan => if (target.cpu.arch == .spirv32) .logical else .physical_storage_buffer64,
653 .opencl => if (target.cpu.arch == .spirv32) .physical32 else .physical64,
649 .vulkan => switch (target.cpu.arch) {
650 .spirv32 => .logical,
651 .spirv64 => .physical_storage_buffer64,
652 else => unreachable,
653 },
654 .opencl => switch (target.cpu.arch) {
655 .spirv32 => .physical32,
656 .spirv64 => .physical64,
657 else => unreachable,
658 },
654659 .amdhsa => .physical64,
655660 else => unreachable,
656661 };
......@@ -659,6 +664,7 @@ fn emitPreamble(
659664 .memory_model = switch (target.os.tag) {
660665 .opencl => .open_cl,
661666 .vulkan, .opengl => .glsl450,
667 .amdhsa => unreachable, // TODO
662668 else => unreachable,
663669 },
664670 });
test/standalone/build.zig+7
......@@ -69,6 +69,13 @@ pub fn build(b: *std.Build) void {
6969 });
7070 tool.root_module.addImport("preprocessor", mingw_preprocessor_mod);
7171 }
72 if (std.mem.endsWith(u8, tool_src_path, "update_cpu_features.zig")) {
73 const spirv_spec = b.createModule(.{
74 .root_source_file = b.path("../../src/codegen/spirv/spec.zig"),
75 .target = tools_target,
76 });
77 tool.root_module.addImport("spirv_spec", spirv_spec);
78 }
7279
7380 tools_tests_step.dependOn(&tool.step);
7481 }
tools/gen_spirv_spec.zig+104
......@@ -13,6 +13,33 @@ const Operand = g.Operand;
1313
1414const ExtendedStructSet = std.StringHashMap(void);
1515
16const allowed_vendors = [_][]const u8{
17 "KHR",
18 "EXT",
19};
20
21fn isAllowedCapability(name: []const u8) bool {
22 // core capabilities (no vendor suffix) end in a lowercase letter or digit.
23 const last = name[name.len - 1];
24 if (std.ascii.isLower(last) or std.ascii.isDigit(last)) return true;
25 for (allowed_vendors) |vendor| {
26 if (std.mem.endsWith(u8, name, vendor)) return true;
27 }
28 return false;
29}
30
31fn isAllowedExtension(name: []const u8) bool {
32 const spv_prefix = "SPV_";
33 if (!std.mem.startsWith(u8, name, spv_prefix)) return false;
34 const tail = name[spv_prefix.len..];
35 for (allowed_vendors) |vendor| {
36 if (std.mem.startsWith(u8, tail, vendor) and
37 tail.len > vendor.len and tail[vendor.len] == '_')
38 return true;
39 }
40 return false;
41}
42
1643const Extension = struct {
1744 name: []const u8,
1845 opcode_name: []const u8,
......@@ -325,6 +352,43 @@ fn render(
325352
326353 try renderOperandKinds(arena, writer, all_operand_kinds.values(), extended_structs);
327354 try renderInstructionSet(writer, registry, extensions, all_operand_kinds);
355 try renderExtension(arena, writer, all_operand_kinds.values());
356}
357
358fn renderExtension(
359 arena: Allocator,
360 writer: *std.Io.Writer,
361 kinds: []const OperandKind,
362) !void {
363 try writer.writeAll(
364 \\pub const Extension = enum {
365 \\v1_0,
366 \\v1_1,
367 \\v1_2,
368 \\v1_3,
369 \\v1_4,
370 \\v1_5,
371 \\v1_6,
372 \\
373 );
374
375 var seen_extensions: std.StringHashMapUnmanaged(void) = .empty;
376 defer seen_extensions.deinit(arena);
377
378 for (kinds) |kind| {
379 if (std.mem.eql(u8, "Capability", kind.kind)) {
380 for (kind.enumerants.?) |enumerant| {
381 if (!isAllowedCapability(enumerant.enumerant)) continue;
382 for (enumerant.extensions) |ext| {
383 if (!isAllowedExtension(ext)) continue;
384 if (seen_extensions.contains(ext)) continue;
385 try seen_extensions.put(arena, ext, {});
386 try writer.print("{s},\n", .{ext});
387 }
388 }
389 }
390 }
391 try writer.writeAll("};\n");
328392}
329393
330394fn renderInstructionSet(
......@@ -687,10 +751,13 @@ fn renderValueEnum(
687751
688752 const enum_indices = enum_map.values();
689753
754 const is_capability = std.mem.eql(u8, "Capability", enumeration.kind);
755
690756 try writer.print("pub const {f} = enum(u32) {{\n", .{std.zig.fmtId(enumeration.kind)});
691757
692758 for (enum_indices) |i| {
693759 const enumerant = enumerants[i];
760 if (is_capability and !isAllowedCapability(enumerant.enumerant)) continue;
694761 // if (enumerant.value != .int) return error.InvalidRegistry;
695762
696763 switch (enumerant.value) {
......@@ -702,6 +769,8 @@ fn renderValueEnum(
702769 try writer.writeByte('\n');
703770
704771 for (aliases.items) |alias| {
772 if (is_capability and (!isAllowedCapability(enumerants[alias.enumerant].enumerant) or
773 !isAllowedCapability(enumerants[alias.alias].enumerant))) continue;
705774 try writer.print("pub const {f} = {f}.{f};\n", .{
706775 formatId(enumerants[alias.enumerant].enumerant),
707776 std.zig.fmtId(enumeration.kind),
......@@ -709,6 +778,41 @@ fn renderValueEnum(
709778 });
710779 }
711780
781 if (is_capability) {
782 try writer.writeAll(
783 \\
784 \\pub fn dependencies(self: Capability) []const Extension {
785 \\ return switch (self) {
786 );
787
788 for (enum_indices) |i| {
789 const enumerant = enumerants[i];
790 if (!isAllowedCapability(enumerant.enumerant)) continue;
791
792 // Convert version to enum.
793 // None is for reserved
794 // Example: "None" -> .v1_0
795 // Example: "1.5" -> .v1_5
796 const enum_version = enumerant.version.?;
797 const version: [4]u8 = .{ 'v', '1', '_', if (enum_version[0] == 'N') '0' else enum_version[2] };
798
799 try writer.print("\n.{f} => &.{{.{s},", .{ formatId(enumerant.enumerant), version });
800 for (enumerant.extensions) |extension| {
801 if (!isAllowedExtension(extension)) continue;
802 try writer.print(".{s},", .{extension});
803 }
804 try writer.writeAll("},");
805 }
806
807 try writer.writeAll(
808 \\};
809 \\}
810 \\};
811 \\
812 );
813 return;
814 }
815
712816 if (!extended_structs.contains(enumeration.kind)) {
713817 try writer.writeAll("};\n");
714818 return;
tools/update_cpu_features.zig+39-77
......@@ -1,4 +1,5 @@
11const builtin = @import("builtin");
2const spirv_spec = @import("spirv_spec");
23
34const std = @import("std");
45const Io = std.Io;
......@@ -49,6 +50,43 @@ const ArchTarget = struct {
4950 branch_quota: ?usize = null,
5051};
5152
53const spirv_extra_features = blk: {
54 const caps_info = @typeInfo(spirv_spec.Capability).@"enum";
55 const exts_info = @typeInfo(spirv_spec.Extension).@"enum";
56 const caps_len = caps_info.field_names.len;
57 const exts_len = exts_info.field_names.len;
58
59 var features: [caps_len + exts_len]Feature = undefined;
60 for (
61 caps_info.field_names,
62 caps_info.field_values,
63 features[0..caps_len],
64 ) |name, value, *feature| {
65 feature.* = .{
66 .zig_name = name,
67 .desc = "Enable " ++ name ++ " capability",
68 .deps = &struct {
69 const extensions = spirv_spec.Capability.dependencies(@enumFromInt(value));
70 const deps: [extensions.len][]const u8 = inner: {
71 var out: [extensions.len][]const u8 = undefined;
72 for (extensions, 0..) |ext, i| out[i] = @tagName(ext);
73 break :inner out;
74 };
75 }.deps,
76 };
77 }
78
79 for (exts_info.field_names, features[caps_len..]) |name, *feature| {
80 feature.* = .{
81 .zig_name = name,
82 .desc = "Enable " ++ name ++ " extension",
83 .deps = &.{},
84 };
85 }
86
87 break :blk features;
88};
89
5290const targets = [_]ArchTarget{
5391 .{
5492 .zig_name = "aarch64",
......@@ -1443,83 +1481,7 @@ const targets = [_]ArchTarget{
14431481 .td_name = "SPIRV",
14441482 },
14451483 .branch_quota = 2000,
1446 .extra_features = &.{
1447 .{
1448 .zig_name = "v1_0",
1449 .desc = "Enable version 1.0",
1450 .deps = &.{},
1451 },
1452 .{
1453 .zig_name = "v1_1",
1454 .desc = "Enable version 1.1",
1455 .deps = &.{"v1_0"},
1456 },
1457 .{
1458 .zig_name = "v1_2",
1459 .desc = "Enable version 1.2",
1460 .deps = &.{"v1_1"},
1461 },
1462 .{
1463 .zig_name = "v1_3",
1464 .desc = "Enable version 1.3",
1465 .deps = &.{"v1_2"},
1466 },
1467 .{
1468 .zig_name = "v1_4",
1469 .desc = "Enable version 1.4",
1470 .deps = &.{"v1_3"},
1471 },
1472 .{
1473 .zig_name = "v1_5",
1474 .desc = "Enable version 1.5",
1475 .deps = &.{"v1_4"},
1476 },
1477 .{
1478 .zig_name = "v1_6",
1479 .desc = "Enable version 1.6",
1480 .deps = &.{"v1_5"},
1481 },
1482 .{
1483 .zig_name = "int64",
1484 .desc = "Enable Int64 capability",
1485 .deps = &.{"v1_0"},
1486 },
1487 .{
1488 .zig_name = "float16",
1489 .desc = "Enable Float16 capability",
1490 .deps = &.{"v1_0"},
1491 },
1492 .{
1493 .zig_name = "float64",
1494 .desc = "Enable Float64 capability",
1495 .deps = &.{"v1_0"},
1496 },
1497 .{
1498 .zig_name = "storage_push_constant16",
1499 .desc = "Enable SPV_KHR_16bit_storage extension and the StoragePushConstant16 capability",
1500 .deps = &.{"v1_3"},
1501 },
1502 .{
1503 .zig_name = "arbitrary_precision_integers",
1504 .desc = "Enable SPV_INTEL_arbitrary_precision_integers extension and the ArbitraryPrecisionIntegersINTEL capability",
1505 .deps = &.{"v1_5"},
1506 },
1507 .{
1508 .zig_name = "generic_pointer",
1509 .desc = "Enable GenericPointer capability",
1510 .deps = &.{"v1_0"},
1511 },
1512 .{
1513 .zig_name = "vector16",
1514 .desc = "Enable Vector16 capability",
1515 .deps = &.{"v1_0"},
1516 },
1517 .{
1518 .zig_name = "variable_pointers",
1519 .desc = "Enable SPV_KHR_variable_pointers extension and the VariablePointers capability",
1520 .deps = &.{"v1_0"},
1521 },
1522 },
1484 .extra_features = &spirv_extra_features,
15231485 .extra_cpus = &.{
15241486 .{
15251487 .llvm_name = null,