commit 3a48f4bb40d219efc9b96df44850bcedf83f6285 (tree)
parent f4462c0cd74c052ec58e13394c6862955b17b214
Author: Ali Cheraghi <alichraghi@proton.me>
Date: Thu, 18 Jun 2026 18:51:47 +0330
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
Diffstat:
9 files changed, 6222 insertions(+), 3261 deletions(-)
diff --git a/build.zig b/build.zig
@@ -70,6 +70,23 @@ pub fn build(b: *std.Build) !void {
b.getInstallStep().dependOn(&install_std_docs.step);
}
+ const update_cpu_features = b.addExecutable(.{
+ .name = "update-cpu-features",
+ .root_module = b.createModule(.{
+ .root_source_file = b.path("tools/update_cpu_features.zig"),
+ .target = b.graph.host,
+ .imports = &.{.{
+ .name = "spirv_spec",
+ .module = b.createModule(.{
+ .root_source_file = b.path("src/codegen/spirv/spec.zig"),
+ .target = b.graph.host,
+ }),
+ }},
+ }),
+ });
+ const run_update_cpu_features = b.addRunArtifact(update_cpu_features);
+ run_update_cpu_features.addPassthruArgs();
+
if (flat) {
b.installFile("LICENSE", "LICENSE");
b.installFile("README.md", "README.md");
@@ -85,6 +102,9 @@ pub fn build(b: *std.Build) !void {
docs_step.dependOn(langref_step);
docs_step.dependOn(std_docs_step);
+ const update_cpu_features_step = b.step("update-cpu-features", "Update CPU Features");
+ update_cpu_features_step.dependOn(&run_update_cpu_features.step);
+
const no_matrix = b.option(bool, "no-matrix", "Limit test matrix to exactly one target configuration") orelse false;
const fuzz_only = b.option(bool, "fuzz-only", "Limit test matrix to one target suitable for fuzzing") orelse false;
const skip_debug = b.option(bool, "skip-debug", "Main test suite skips debug builds") orelse false;
diff --git a/lib/std/Target/spirv.zig b/lib/std/Target/spirv.zig
@@ -5,12 +5,225 @@ const CpuFeature = std.Target.Cpu.Feature;
const CpuModel = std.Target.Cpu.Model;
pub const Feature = enum {
- arbitrary_precision_integers,
+ abort_khr,
+ addresses,
+ arithmetic_fence_ext,
+ atomic_float16add_ext,
+ atomic_float16min_max_ext,
+ atomic_float32add_ext,
+ atomic_float32min_max_ext,
+ atomic_float64add_ext,
+ atomic_float64min_max_ext,
+ atomic_storage,
+ atomic_storage_ops,
+ b_float16cooperative_matrix_khr,
+ b_float16dot_product_khr,
+ b_float16type_khr,
+ bit_instructions,
+ clip_distance,
+ compute_derivative_group_linear_khr,
+ compute_derivative_group_quads_khr,
+ constant_data_khr,
+ cooperative_matrix_khr,
+ cull_distance,
+ demote_to_helper_invocation,
+ denorm_flush_to_zero,
+ denorm_preserve,
+ derivative_control,
+ descriptor_heap_ext,
+ device_enqueue,
+ device_group,
+ dot_product,
+ dot_product_input4x8bit,
+ dot_product_input4x8bit_packed,
+ dot_product_input_all,
+ draw_parameters,
+ expect_assume_khr,
float16,
+ float16buffer,
float64,
+ float8cooperative_matrix_ext,
+ float8ext,
+ float_controls2,
+ fmakhr,
+ fragment_barycentric_khr,
+ fragment_density_ext,
+ fragment_fully_covered_ext,
+ fragment_shader_pixel_interlock_ext,
+ fragment_shader_sample_interlock_ext,
+ fragment_shader_shading_rate_interlock_ext,
+ fragment_shading_rate_khr,
generic_pointer,
+ geometry,
+ geometry_point_size,
+ geometry_streams,
+ group_non_uniform,
+ group_non_uniform_arithmetic,
+ group_non_uniform_ballot,
+ group_non_uniform_clustered,
+ group_non_uniform_partitioned_ext,
+ group_non_uniform_quad,
+ group_non_uniform_rotate_khr,
+ group_non_uniform_shuffle,
+ group_non_uniform_shuffle_relative,
+ group_non_uniform_vote,
+ group_uniform_arithmetic_khr,
+ groups,
+ image_basic,
+ image_buffer,
+ image_cube_array,
+ image_gather_extended,
+ image_mipmap,
+ image_ms_array,
+ image_query,
+ image_read_write,
+ image_rect,
+ input_attachment,
+ input_attachment_array_dynamic_indexing,
+ input_attachment_array_non_uniform_indexing,
+ int16,
int64,
+ int64atomics,
+ int64image_ext,
+ int8,
+ interpolation_function,
+ kernel,
+ linkage,
+ literal_sampler,
+ long_vector_ext,
+ matrix,
+ mesh_shading_ext,
+ min_lod,
+ multi_view,
+ multi_viewport,
+ named_barrier,
+ opt_none_ext,
+ physical_storage_buffer_addresses,
+ pipe_storage,
+ pipes,
+ poison_freeze_khr,
+ quad_control_khr,
+ ray_cull_mask_khr,
+ ray_query_khr,
+ ray_query_position_fetch_khr,
+ ray_query_provisional_khr,
+ ray_tracing_khr,
+ ray_tracing_opacity_micromap_ext,
+ ray_tracing_position_fetch_khr,
+ ray_tracing_provisional_khr,
+ ray_traversal_primitive_culling_khr,
+ replicated_composites_ext,
+ runtime_descriptor_array,
+ sample_mask_post_depth_coverage,
+ sample_rate_shading,
+ sampled_buffer,
+ sampled_cube_array,
+ sampled_image_array_dynamic_indexing,
+ sampled_image_array_non_uniform_indexing,
+ sampled_rect,
+ shader,
+ shader64bit_indexing_ext,
+ shader_clock_khr,
+ shader_invocation_reorder_ext,
+ shader_layer,
+ shader_non_uniform,
+ shader_viewport_index,
+ shader_viewport_index_layer_ext,
+ signed_zero_inf_nan_preserve,
+ sparse_residency,
+ SPV_EXT_arithmetic_fence,
+ SPV_EXT_demote_to_helper_invocation,
+ SPV_EXT_descriptor_heap,
+ SPV_EXT_descriptor_indexing,
+ SPV_EXT_float8,
+ SPV_EXT_fragment_fully_covered,
+ SPV_EXT_fragment_invocation_density,
+ SPV_EXT_fragment_shader_interlock,
+ SPV_EXT_long_vector,
+ SPV_EXT_mesh_shader,
+ SPV_EXT_opacity_micromap,
+ SPV_EXT_optnone,
+ SPV_EXT_physical_storage_buffer,
+ SPV_EXT_replicated_composites,
+ SPV_EXT_shader_64bit_indexing,
+ SPV_EXT_shader_atomic_float16_add,
+ SPV_EXT_shader_atomic_float_add,
+ SPV_EXT_shader_atomic_float_min_max,
+ SPV_EXT_shader_image_int64,
+ SPV_EXT_shader_invocation_reorder,
+ SPV_EXT_shader_stencil_export,
+ SPV_EXT_shader_subgroup_partitioned,
+ SPV_EXT_shader_tile_image,
+ SPV_EXT_shader_viewport_index_layer,
+ SPV_KHR_16bit_storage,
+ SPV_KHR_8bit_storage,
+ SPV_KHR_abort,
+ SPV_KHR_bfloat16,
+ SPV_KHR_bit_instructions,
+ SPV_KHR_compute_shader_derivatives,
+ SPV_KHR_constant_data,
+ SPV_KHR_cooperative_matrix,
+ SPV_KHR_device_group,
+ SPV_KHR_expect_assume,
+ SPV_KHR_float_controls,
+ SPV_KHR_float_controls2,
+ SPV_KHR_fma,
+ SPV_KHR_fragment_shader_barycentric,
+ SPV_KHR_fragment_shading_rate,
+ SPV_KHR_integer_dot_product,
+ SPV_KHR_multiview,
+ SPV_KHR_physical_storage_buffer,
+ SPV_KHR_poison_freeze,
+ SPV_KHR_post_depth_coverage,
+ SPV_KHR_quad_control,
+ SPV_KHR_ray_cull_mask,
+ SPV_KHR_ray_query,
+ SPV_KHR_ray_tracing,
+ SPV_KHR_ray_tracing_position_fetch,
+ SPV_KHR_shader_atomic_counter_ops,
+ SPV_KHR_shader_ballot,
+ SPV_KHR_shader_clock,
+ SPV_KHR_shader_draw_parameters,
+ SPV_KHR_subgroup_rotate,
+ SPV_KHR_subgroup_vote,
+ SPV_KHR_uniform_group_instructions,
+ SPV_KHR_untyped_pointers,
+ SPV_KHR_variable_pointers,
+ SPV_KHR_vulkan_memory_model,
+ SPV_KHR_workgroup_memory_explicit_layout,
+ stencil_export_ext,
+ storage_buffer16bit_access,
+ storage_buffer8bit_access,
+ storage_buffer_array_dynamic_indexing,
+ storage_buffer_array_non_uniform_indexing,
+ storage_image_array_dynamic_indexing,
+ storage_image_array_non_uniform_indexing,
+ storage_image_extended_formats,
+ storage_image_multisample,
+ storage_image_read_without_format,
+ storage_image_write_without_format,
+ storage_input_output16,
storage_push_constant16,
+ storage_push_constant8,
+ storage_texel_buffer_array_dynamic_indexing,
+ storage_texel_buffer_array_non_uniform_indexing,
+ subgroup_ballot_khr,
+ subgroup_dispatch,
+ subgroup_vote_khr,
+ tessellation,
+ tessellation_point_size,
+ tile_image_color_read_access_ext,
+ tile_image_depth_read_access_ext,
+ tile_image_stencil_read_access_ext,
+ transform_feedback,
+ uniform_and_storage_buffer16bit_access,
+ uniform_and_storage_buffer8bit_access,
+ uniform_buffer_array_dynamic_indexing,
+ uniform_buffer_array_non_uniform_indexing,
+ uniform_decoration,
+ uniform_texel_buffer_array_dynamic_indexing,
+ uniform_texel_buffer_array_non_uniform_indexing,
+ untyped_pointers_khr,
v1_0,
v1_1,
v1_2,
@@ -19,7 +232,13 @@ pub const Feature = enum {
v1_5,
v1_6,
variable_pointers,
+ variable_pointers_storage_buffer,
vector16,
+ vulkan_memory_model,
+ vulkan_memory_model_device_scope,
+ workgroup_memory_explicit_layout16bit_access_khr,
+ workgroup_memory_explicit_layout8bit_access_khr,
+ workgroup_memory_explicit_layout_khr,
};
pub const featureSet = CpuFeature.FeatureSetFns(Feature).featureSet;
@@ -32,106 +251,1608 @@ pub const all_features = blk: {
const len = @typeInfo(Feature).@"enum".field_names.len;
std.debug.assert(len <= CpuFeature.Set.needed_bit_count);
var result: [len]CpuFeature = undefined;
- result[@intFromEnum(Feature.arbitrary_precision_integers)] = .{
+ result[@intFromEnum(Feature.abort_khr)] = .{
.llvm_name = null,
- .description = "Enable SPV_INTEL_arbitrary_precision_integers extension and the ArbitraryPrecisionIntegersINTEL capability",
+ .description = "Enable abort_khr Capability.",
.dependencies = featureSet(&[_]Feature{
+ .SPV_KHR_abort,
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.addresses)] = .{
+ .llvm_name = null,
+ .description = "Enable addresses Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.arithmetic_fence_ext)] = .{
+ .llvm_name = null,
+ .description = "Enable arithmetic_fence_ext Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_EXT_arithmetic_fence,
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.atomic_float16add_ext)] = .{
+ .llvm_name = null,
+ .description = "Enable atomic_float16add_ext Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_EXT_shader_atomic_float16_add,
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.atomic_float16min_max_ext)] = .{
+ .llvm_name = null,
+ .description = "Enable atomic_float16min_max_ext Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_EXT_shader_atomic_float_min_max,
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.atomic_float32add_ext)] = .{
+ .llvm_name = null,
+ .description = "Enable atomic_float32add_ext Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_EXT_shader_atomic_float_add,
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.atomic_float32min_max_ext)] = .{
+ .llvm_name = null,
+ .description = "Enable atomic_float32min_max_ext Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_EXT_shader_atomic_float_min_max,
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.atomic_float64add_ext)] = .{
+ .llvm_name = null,
+ .description = "Enable atomic_float64add_ext Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_EXT_shader_atomic_float_add,
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.atomic_float64min_max_ext)] = .{
+ .llvm_name = null,
+ .description = "Enable atomic_float64min_max_ext Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_EXT_shader_atomic_float_min_max,
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.atomic_storage)] = .{
+ .llvm_name = null,
+ .description = "Enable atomic_storage Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.atomic_storage_ops)] = .{
+ .llvm_name = null,
+ .description = "Enable atomic_storage_ops Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_KHR_shader_atomic_counter_ops,
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.b_float16cooperative_matrix_khr)] = .{
+ .llvm_name = null,
+ .description = "Enable b_float16cooperative_matrix_khr Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_KHR_bfloat16,
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.b_float16dot_product_khr)] = .{
+ .llvm_name = null,
+ .description = "Enable b_float16dot_product_khr Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_KHR_bfloat16,
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.b_float16type_khr)] = .{
+ .llvm_name = null,
+ .description = "Enable b_float16type_khr Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_KHR_bfloat16,
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.bit_instructions)] = .{
+ .llvm_name = null,
+ .description = "Enable bit_instructions Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_KHR_bit_instructions,
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.clip_distance)] = .{
+ .llvm_name = null,
+ .description = "Enable clip_distance Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.compute_derivative_group_linear_khr)] = .{
+ .llvm_name = null,
+ .description = "Enable compute_derivative_group_linear_khr Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_KHR_compute_shader_derivatives,
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.compute_derivative_group_quads_khr)] = .{
+ .llvm_name = null,
+ .description = "Enable compute_derivative_group_quads_khr Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_KHR_compute_shader_derivatives,
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.constant_data_khr)] = .{
+ .llvm_name = null,
+ .description = "Enable constant_data_khr Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_KHR_constant_data,
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.cooperative_matrix_khr)] = .{
+ .llvm_name = null,
+ .description = "Enable cooperative_matrix_khr Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_KHR_cooperative_matrix,
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.cull_distance)] = .{
+ .llvm_name = null,
+ .description = "Enable cull_distance Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.demote_to_helper_invocation)] = .{
+ .llvm_name = null,
+ .description = "Enable demote_to_helper_invocation Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_EXT_demote_to_helper_invocation,
+ .v1_6,
+ }),
+ };
+ result[@intFromEnum(Feature.denorm_flush_to_zero)] = .{
+ .llvm_name = null,
+ .description = "Enable denorm_flush_to_zero Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_KHR_float_controls,
+ .v1_4,
+ }),
+ };
+ result[@intFromEnum(Feature.denorm_preserve)] = .{
+ .llvm_name = null,
+ .description = "Enable denorm_preserve Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_KHR_float_controls,
+ .v1_4,
+ }),
+ };
+ result[@intFromEnum(Feature.derivative_control)] = .{
+ .llvm_name = null,
+ .description = "Enable derivative_control Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.descriptor_heap_ext)] = .{
+ .llvm_name = null,
+ .description = "Enable descriptor_heap_ext Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_EXT_descriptor_heap,
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.device_enqueue)] = .{
+ .llvm_name = null,
+ .description = "Enable device_enqueue Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.device_group)] = .{
+ .llvm_name = null,
+ .description = "Enable device_group Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_KHR_device_group,
+ .v1_3,
+ }),
+ };
+ result[@intFromEnum(Feature.dot_product)] = .{
+ .llvm_name = null,
+ .description = "Enable dot_product Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_KHR_integer_dot_product,
+ .v1_6,
+ }),
+ };
+ result[@intFromEnum(Feature.dot_product_input4x8bit)] = .{
+ .llvm_name = null,
+ .description = "Enable dot_product_input4x8bit Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_KHR_integer_dot_product,
+ .v1_6,
+ }),
+ };
+ result[@intFromEnum(Feature.dot_product_input4x8bit_packed)] = .{
+ .llvm_name = null,
+ .description = "Enable dot_product_input4x8bit_packed Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_KHR_integer_dot_product,
+ .v1_6,
+ }),
+ };
+ result[@intFromEnum(Feature.dot_product_input_all)] = .{
+ .llvm_name = null,
+ .description = "Enable dot_product_input_all Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_KHR_integer_dot_product,
+ .v1_6,
+ }),
+ };
+ result[@intFromEnum(Feature.draw_parameters)] = .{
+ .llvm_name = null,
+ .description = "Enable draw_parameters Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_KHR_shader_draw_parameters,
+ .v1_3,
+ }),
+ };
+ result[@intFromEnum(Feature.expect_assume_khr)] = .{
+ .llvm_name = null,
+ .description = "Enable expect_assume_khr Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_KHR_expect_assume,
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.float16)] = .{
+ .llvm_name = null,
+ .description = "Enable float16 Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.float16buffer)] = .{
+ .llvm_name = null,
+ .description = "Enable float16buffer Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.float64)] = .{
+ .llvm_name = null,
+ .description = "Enable float64 Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.float8cooperative_matrix_ext)] = .{
+ .llvm_name = null,
+ .description = "Enable float8cooperative_matrix_ext Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_EXT_float8,
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.float8ext)] = .{
+ .llvm_name = null,
+ .description = "Enable float8ext Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_EXT_float8,
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.float_controls2)] = .{
+ .llvm_name = null,
+ .description = "Enable float_controls2 Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_KHR_float_controls2,
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.fmakhr)] = .{
+ .llvm_name = null,
+ .description = "Enable fmakhr Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_KHR_fma,
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.fragment_barycentric_khr)] = .{
+ .llvm_name = null,
+ .description = "Enable fragment_barycentric_khr Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_KHR_fragment_shader_barycentric,
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.fragment_density_ext)] = .{
+ .llvm_name = null,
+ .description = "Enable fragment_density_ext Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_EXT_fragment_invocation_density,
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.fragment_fully_covered_ext)] = .{
+ .llvm_name = null,
+ .description = "Enable fragment_fully_covered_ext Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_EXT_fragment_fully_covered,
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.fragment_shader_pixel_interlock_ext)] = .{
+ .llvm_name = null,
+ .description = "Enable fragment_shader_pixel_interlock_ext Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_EXT_fragment_shader_interlock,
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.fragment_shader_sample_interlock_ext)] = .{
+ .llvm_name = null,
+ .description = "Enable fragment_shader_sample_interlock_ext Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_EXT_fragment_shader_interlock,
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.fragment_shader_shading_rate_interlock_ext)] = .{
+ .llvm_name = null,
+ .description = "Enable fragment_shader_shading_rate_interlock_ext Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_EXT_fragment_shader_interlock,
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.fragment_shading_rate_khr)] = .{
+ .llvm_name = null,
+ .description = "Enable fragment_shading_rate_khr Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_KHR_fragment_shading_rate,
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.generic_pointer)] = .{
+ .llvm_name = null,
+ .description = "Enable generic_pointer Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.geometry)] = .{
+ .llvm_name = null,
+ .description = "Enable geometry Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.geometry_point_size)] = .{
+ .llvm_name = null,
+ .description = "Enable geometry_point_size Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.geometry_streams)] = .{
+ .llvm_name = null,
+ .description = "Enable geometry_streams Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.group_non_uniform)] = .{
+ .llvm_name = null,
+ .description = "Enable group_non_uniform Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .v1_3,
+ }),
+ };
+ result[@intFromEnum(Feature.group_non_uniform_arithmetic)] = .{
+ .llvm_name = null,
+ .description = "Enable group_non_uniform_arithmetic Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .v1_3,
+ }),
+ };
+ result[@intFromEnum(Feature.group_non_uniform_ballot)] = .{
+ .llvm_name = null,
+ .description = "Enable group_non_uniform_ballot Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .v1_3,
+ }),
+ };
+ result[@intFromEnum(Feature.group_non_uniform_clustered)] = .{
+ .llvm_name = null,
+ .description = "Enable group_non_uniform_clustered Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .v1_3,
+ }),
+ };
+ result[@intFromEnum(Feature.group_non_uniform_partitioned_ext)] = .{
+ .llvm_name = null,
+ .description = "Enable group_non_uniform_partitioned_ext Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_EXT_shader_subgroup_partitioned,
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.group_non_uniform_quad)] = .{
+ .llvm_name = null,
+ .description = "Enable group_non_uniform_quad Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .v1_3,
+ }),
+ };
+ result[@intFromEnum(Feature.group_non_uniform_rotate_khr)] = .{
+ .llvm_name = null,
+ .description = "Enable group_non_uniform_rotate_khr Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_KHR_subgroup_rotate,
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.group_non_uniform_shuffle)] = .{
+ .llvm_name = null,
+ .description = "Enable group_non_uniform_shuffle Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .v1_3,
+ }),
+ };
+ result[@intFromEnum(Feature.group_non_uniform_shuffle_relative)] = .{
+ .llvm_name = null,
+ .description = "Enable group_non_uniform_shuffle_relative Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .v1_3,
+ }),
+ };
+ result[@intFromEnum(Feature.group_non_uniform_vote)] = .{
+ .llvm_name = null,
+ .description = "Enable group_non_uniform_vote Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .v1_3,
+ }),
+ };
+ result[@intFromEnum(Feature.group_uniform_arithmetic_khr)] = .{
+ .llvm_name = null,
+ .description = "Enable group_uniform_arithmetic_khr Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_KHR_uniform_group_instructions,
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.groups)] = .{
+ .llvm_name = null,
+ .description = "Enable groups Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.image_basic)] = .{
+ .llvm_name = null,
+ .description = "Enable image_basic Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.image_buffer)] = .{
+ .llvm_name = null,
+ .description = "Enable image_buffer Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.image_cube_array)] = .{
+ .llvm_name = null,
+ .description = "Enable image_cube_array Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.image_gather_extended)] = .{
+ .llvm_name = null,
+ .description = "Enable image_gather_extended Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.image_mipmap)] = .{
+ .llvm_name = null,
+ .description = "Enable image_mipmap Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.image_ms_array)] = .{
+ .llvm_name = null,
+ .description = "Enable image_ms_array Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.image_query)] = .{
+ .llvm_name = null,
+ .description = "Enable image_query Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.image_read_write)] = .{
+ .llvm_name = null,
+ .description = "Enable image_read_write Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.image_rect)] = .{
+ .llvm_name = null,
+ .description = "Enable image_rect Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.input_attachment)] = .{
+ .llvm_name = null,
+ .description = "Enable input_attachment Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.input_attachment_array_dynamic_indexing)] = .{
+ .llvm_name = null,
+ .description = "Enable input_attachment_array_dynamic_indexing Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_EXT_descriptor_indexing,
+ .v1_5,
+ }),
+ };
+ result[@intFromEnum(Feature.input_attachment_array_non_uniform_indexing)] = .{
+ .llvm_name = null,
+ .description = "Enable input_attachment_array_non_uniform_indexing Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_EXT_descriptor_indexing,
+ .v1_5,
+ }),
+ };
+ result[@intFromEnum(Feature.int16)] = .{
+ .llvm_name = null,
+ .description = "Enable int16 Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.int64)] = .{
+ .llvm_name = null,
+ .description = "Enable int64 Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.int64atomics)] = .{
+ .llvm_name = null,
+ .description = "Enable int64atomics Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.int64image_ext)] = .{
+ .llvm_name = null,
+ .description = "Enable int64image_ext Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_EXT_shader_image_int64,
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.int8)] = .{
+ .llvm_name = null,
+ .description = "Enable int8 Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.interpolation_function)] = .{
+ .llvm_name = null,
+ .description = "Enable interpolation_function Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.kernel)] = .{
+ .llvm_name = null,
+ .description = "Enable kernel Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.linkage)] = .{
+ .llvm_name = null,
+ .description = "Enable linkage Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.literal_sampler)] = .{
+ .llvm_name = null,
+ .description = "Enable literal_sampler Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.long_vector_ext)] = .{
+ .llvm_name = null,
+ .description = "Enable long_vector_ext Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_EXT_long_vector,
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.matrix)] = .{
+ .llvm_name = null,
+ .description = "Enable matrix Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.mesh_shading_ext)] = .{
+ .llvm_name = null,
+ .description = "Enable mesh_shading_ext Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_EXT_mesh_shader,
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.min_lod)] = .{
+ .llvm_name = null,
+ .description = "Enable min_lod Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.multi_view)] = .{
+ .llvm_name = null,
+ .description = "Enable multi_view Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_KHR_multiview,
+ .v1_3,
+ }),
+ };
+ result[@intFromEnum(Feature.multi_viewport)] = .{
+ .llvm_name = null,
+ .description = "Enable multi_viewport Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.named_barrier)] = .{
+ .llvm_name = null,
+ .description = "Enable named_barrier Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .v1_1,
+ }),
+ };
+ result[@intFromEnum(Feature.opt_none_ext)] = .{
+ .llvm_name = null,
+ .description = "Enable opt_none_ext Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_EXT_optnone,
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.physical_storage_buffer_addresses)] = .{
+ .llvm_name = null,
+ .description = "Enable physical_storage_buffer_addresses Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_EXT_physical_storage_buffer,
+ .SPV_KHR_physical_storage_buffer,
+ .v1_5,
+ }),
+ };
+ result[@intFromEnum(Feature.pipe_storage)] = .{
+ .llvm_name = null,
+ .description = "Enable pipe_storage Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .v1_1,
+ }),
+ };
+ result[@intFromEnum(Feature.pipes)] = .{
+ .llvm_name = null,
+ .description = "Enable pipes Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.poison_freeze_khr)] = .{
+ .llvm_name = null,
+ .description = "Enable poison_freeze_khr Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_KHR_poison_freeze,
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.quad_control_khr)] = .{
+ .llvm_name = null,
+ .description = "Enable quad_control_khr Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_KHR_quad_control,
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.ray_cull_mask_khr)] = .{
+ .llvm_name = null,
+ .description = "Enable ray_cull_mask_khr Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_KHR_ray_cull_mask,
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.ray_query_khr)] = .{
+ .llvm_name = null,
+ .description = "Enable ray_query_khr Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_KHR_ray_query,
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.ray_query_position_fetch_khr)] = .{
+ .llvm_name = null,
+ .description = "Enable ray_query_position_fetch_khr Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_KHR_ray_tracing_position_fetch,
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.ray_query_provisional_khr)] = .{
+ .llvm_name = null,
+ .description = "Enable ray_query_provisional_khr Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_KHR_ray_query,
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.ray_tracing_khr)] = .{
+ .llvm_name = null,
+ .description = "Enable ray_tracing_khr Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_KHR_ray_tracing,
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.ray_tracing_opacity_micromap_ext)] = .{
+ .llvm_name = null,
+ .description = "Enable ray_tracing_opacity_micromap_ext Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_EXT_opacity_micromap,
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.ray_tracing_position_fetch_khr)] = .{
+ .llvm_name = null,
+ .description = "Enable ray_tracing_position_fetch_khr Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_KHR_ray_tracing_position_fetch,
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.ray_tracing_provisional_khr)] = .{
+ .llvm_name = null,
+ .description = "Enable ray_tracing_provisional_khr Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_KHR_ray_tracing,
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.ray_traversal_primitive_culling_khr)] = .{
+ .llvm_name = null,
+ .description = "Enable ray_traversal_primitive_culling_khr Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_KHR_ray_query,
+ .SPV_KHR_ray_tracing,
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.replicated_composites_ext)] = .{
+ .llvm_name = null,
+ .description = "Enable replicated_composites_ext Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_EXT_replicated_composites,
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.runtime_descriptor_array)] = .{
+ .llvm_name = null,
+ .description = "Enable runtime_descriptor_array Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_EXT_descriptor_indexing,
+ .v1_5,
+ }),
+ };
+ result[@intFromEnum(Feature.sample_mask_post_depth_coverage)] = .{
+ .llvm_name = null,
+ .description = "Enable sample_mask_post_depth_coverage Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_KHR_post_depth_coverage,
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.sample_rate_shading)] = .{
+ .llvm_name = null,
+ .description = "Enable sample_rate_shading Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.sampled_buffer)] = .{
+ .llvm_name = null,
+ .description = "Enable sampled_buffer Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.sampled_cube_array)] = .{
+ .llvm_name = null,
+ .description = "Enable sampled_cube_array Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.sampled_image_array_dynamic_indexing)] = .{
+ .llvm_name = null,
+ .description = "Enable sampled_image_array_dynamic_indexing Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.sampled_image_array_non_uniform_indexing)] = .{
+ .llvm_name = null,
+ .description = "Enable sampled_image_array_non_uniform_indexing Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_EXT_descriptor_indexing,
+ .v1_5,
+ }),
+ };
+ result[@intFromEnum(Feature.sampled_rect)] = .{
+ .llvm_name = null,
+ .description = "Enable sampled_rect Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.shader)] = .{
+ .llvm_name = null,
+ .description = "Enable shader Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.shader64bit_indexing_ext)] = .{
+ .llvm_name = null,
+ .description = "Enable shader64bit_indexing_ext Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_EXT_shader_64bit_indexing,
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.shader_clock_khr)] = .{
+ .llvm_name = null,
+ .description = "Enable shader_clock_khr Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_KHR_shader_clock,
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.shader_invocation_reorder_ext)] = .{
+ .llvm_name = null,
+ .description = "Enable shader_invocation_reorder_ext Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_EXT_shader_invocation_reorder,
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.shader_layer)] = .{
+ .llvm_name = null,
+ .description = "Enable shader_layer Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .v1_5,
+ }),
+ };
+ result[@intFromEnum(Feature.shader_non_uniform)] = .{
+ .llvm_name = null,
+ .description = "Enable shader_non_uniform Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_EXT_descriptor_indexing,
+ .v1_5,
+ }),
+ };
+ result[@intFromEnum(Feature.shader_viewport_index)] = .{
+ .llvm_name = null,
+ .description = "Enable shader_viewport_index Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .v1_5,
+ }),
+ };
+ result[@intFromEnum(Feature.shader_viewport_index_layer_ext)] = .{
+ .llvm_name = null,
+ .description = "Enable shader_viewport_index_layer_ext Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_EXT_shader_viewport_index_layer,
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.signed_zero_inf_nan_preserve)] = .{
+ .llvm_name = null,
+ .description = "Enable signed_zero_inf_nan_preserve Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_KHR_float_controls,
+ .v1_4,
+ }),
+ };
+ result[@intFromEnum(Feature.sparse_residency)] = .{
+ .llvm_name = null,
+ .description = "Enable sparse_residency Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.SPV_EXT_arithmetic_fence)] = .{
+ .llvm_name = null,
+ .description = "Enable SPV_EXT_arithmetic_fence Extension.",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.SPV_EXT_demote_to_helper_invocation)] = .{
+ .llvm_name = null,
+ .description = "Enable SPV_EXT_demote_to_helper_invocation Extension.",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.SPV_EXT_descriptor_heap)] = .{
+ .llvm_name = null,
+ .description = "Enable SPV_EXT_descriptor_heap Extension.",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.SPV_EXT_descriptor_indexing)] = .{
+ .llvm_name = null,
+ .description = "Enable SPV_EXT_descriptor_indexing Extension.",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.SPV_EXT_float8)] = .{
+ .llvm_name = null,
+ .description = "Enable SPV_EXT_float8 Extension.",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.SPV_EXT_fragment_fully_covered)] = .{
+ .llvm_name = null,
+ .description = "Enable SPV_EXT_fragment_fully_covered Extension.",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.SPV_EXT_fragment_invocation_density)] = .{
+ .llvm_name = null,
+ .description = "Enable SPV_EXT_fragment_invocation_density Extension.",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.SPV_EXT_fragment_shader_interlock)] = .{
+ .llvm_name = null,
+ .description = "Enable SPV_EXT_fragment_shader_interlock Extension.",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.SPV_EXT_long_vector)] = .{
+ .llvm_name = null,
+ .description = "Enable SPV_EXT_long_vector Extension.",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.SPV_EXT_mesh_shader)] = .{
+ .llvm_name = null,
+ .description = "Enable SPV_EXT_mesh_shader Extension.",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.SPV_EXT_opacity_micromap)] = .{
+ .llvm_name = null,
+ .description = "Enable SPV_EXT_opacity_micromap Extension.",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.SPV_EXT_optnone)] = .{
+ .llvm_name = null,
+ .description = "Enable SPV_EXT_optnone Extension.",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.SPV_EXT_physical_storage_buffer)] = .{
+ .llvm_name = null,
+ .description = "Enable SPV_EXT_physical_storage_buffer Extension.",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.SPV_EXT_replicated_composites)] = .{
+ .llvm_name = null,
+ .description = "Enable SPV_EXT_replicated_composites Extension.",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.SPV_EXT_shader_64bit_indexing)] = .{
+ .llvm_name = null,
+ .description = "Enable SPV_EXT_shader_64bit_indexing Extension.",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.SPV_EXT_shader_atomic_float16_add)] = .{
+ .llvm_name = null,
+ .description = "Enable SPV_EXT_shader_atomic_float16_add Extension.",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.SPV_EXT_shader_atomic_float_add)] = .{
+ .llvm_name = null,
+ .description = "Enable SPV_EXT_shader_atomic_float_add Extension.",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.SPV_EXT_shader_atomic_float_min_max)] = .{
+ .llvm_name = null,
+ .description = "Enable SPV_EXT_shader_atomic_float_min_max Extension.",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.SPV_EXT_shader_image_int64)] = .{
+ .llvm_name = null,
+ .description = "Enable SPV_EXT_shader_image_int64 Extension.",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.SPV_EXT_shader_invocation_reorder)] = .{
+ .llvm_name = null,
+ .description = "Enable SPV_EXT_shader_invocation_reorder Extension.",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.SPV_EXT_shader_stencil_export)] = .{
+ .llvm_name = null,
+ .description = "Enable SPV_EXT_shader_stencil_export Extension.",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.SPV_EXT_shader_subgroup_partitioned)] = .{
+ .llvm_name = null,
+ .description = "Enable SPV_EXT_shader_subgroup_partitioned Extension.",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.SPV_EXT_shader_tile_image)] = .{
+ .llvm_name = null,
+ .description = "Enable SPV_EXT_shader_tile_image Extension.",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.SPV_EXT_shader_viewport_index_layer)] = .{
+ .llvm_name = null,
+ .description = "Enable SPV_EXT_shader_viewport_index_layer Extension.",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.SPV_KHR_16bit_storage)] = .{
+ .llvm_name = null,
+ .description = "Enable SPV_KHR_16bit_storage Extension.",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.SPV_KHR_8bit_storage)] = .{
+ .llvm_name = null,
+ .description = "Enable SPV_KHR_8bit_storage Extension.",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.SPV_KHR_abort)] = .{
+ .llvm_name = null,
+ .description = "Enable SPV_KHR_abort Extension.",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.SPV_KHR_bfloat16)] = .{
+ .llvm_name = null,
+ .description = "Enable SPV_KHR_bfloat16 Extension.",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.SPV_KHR_bit_instructions)] = .{
+ .llvm_name = null,
+ .description = "Enable SPV_KHR_bit_instructions Extension.",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.SPV_KHR_compute_shader_derivatives)] = .{
+ .llvm_name = null,
+ .description = "Enable SPV_KHR_compute_shader_derivatives Extension.",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.SPV_KHR_constant_data)] = .{
+ .llvm_name = null,
+ .description = "Enable SPV_KHR_constant_data Extension.",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.SPV_KHR_cooperative_matrix)] = .{
+ .llvm_name = null,
+ .description = "Enable SPV_KHR_cooperative_matrix Extension.",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.SPV_KHR_device_group)] = .{
+ .llvm_name = null,
+ .description = "Enable SPV_KHR_device_group Extension.",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.SPV_KHR_expect_assume)] = .{
+ .llvm_name = null,
+ .description = "Enable SPV_KHR_expect_assume Extension.",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.SPV_KHR_float_controls)] = .{
+ .llvm_name = null,
+ .description = "Enable SPV_KHR_float_controls Extension.",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.SPV_KHR_float_controls2)] = .{
+ .llvm_name = null,
+ .description = "Enable SPV_KHR_float_controls2 Extension.",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.SPV_KHR_fma)] = .{
+ .llvm_name = null,
+ .description = "Enable SPV_KHR_fma Extension.",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.SPV_KHR_fragment_shader_barycentric)] = .{
+ .llvm_name = null,
+ .description = "Enable SPV_KHR_fragment_shader_barycentric Extension.",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.SPV_KHR_fragment_shading_rate)] = .{
+ .llvm_name = null,
+ .description = "Enable SPV_KHR_fragment_shading_rate Extension.",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.SPV_KHR_integer_dot_product)] = .{
+ .llvm_name = null,
+ .description = "Enable SPV_KHR_integer_dot_product Extension.",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.SPV_KHR_multiview)] = .{
+ .llvm_name = null,
+ .description = "Enable SPV_KHR_multiview Extension.",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.SPV_KHR_physical_storage_buffer)] = .{
+ .llvm_name = null,
+ .description = "Enable SPV_KHR_physical_storage_buffer Extension.",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.SPV_KHR_poison_freeze)] = .{
+ .llvm_name = null,
+ .description = "Enable SPV_KHR_poison_freeze Extension.",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.SPV_KHR_post_depth_coverage)] = .{
+ .llvm_name = null,
+ .description = "Enable SPV_KHR_post_depth_coverage Extension.",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.SPV_KHR_quad_control)] = .{
+ .llvm_name = null,
+ .description = "Enable SPV_KHR_quad_control Extension.",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.SPV_KHR_ray_cull_mask)] = .{
+ .llvm_name = null,
+ .description = "Enable SPV_KHR_ray_cull_mask Extension.",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.SPV_KHR_ray_query)] = .{
+ .llvm_name = null,
+ .description = "Enable SPV_KHR_ray_query Extension.",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.SPV_KHR_ray_tracing)] = .{
+ .llvm_name = null,
+ .description = "Enable SPV_KHR_ray_tracing Extension.",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.SPV_KHR_ray_tracing_position_fetch)] = .{
+ .llvm_name = null,
+ .description = "Enable SPV_KHR_ray_tracing_position_fetch Extension.",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.SPV_KHR_shader_atomic_counter_ops)] = .{
+ .llvm_name = null,
+ .description = "Enable SPV_KHR_shader_atomic_counter_ops Extension.",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.SPV_KHR_shader_ballot)] = .{
+ .llvm_name = null,
+ .description = "Enable SPV_KHR_shader_ballot Extension.",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.SPV_KHR_shader_clock)] = .{
+ .llvm_name = null,
+ .description = "Enable SPV_KHR_shader_clock Extension.",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.SPV_KHR_shader_draw_parameters)] = .{
+ .llvm_name = null,
+ .description = "Enable SPV_KHR_shader_draw_parameters Extension.",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.SPV_KHR_subgroup_rotate)] = .{
+ .llvm_name = null,
+ .description = "Enable SPV_KHR_subgroup_rotate Extension.",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.SPV_KHR_subgroup_vote)] = .{
+ .llvm_name = null,
+ .description = "Enable SPV_KHR_subgroup_vote Extension.",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.SPV_KHR_uniform_group_instructions)] = .{
+ .llvm_name = null,
+ .description = "Enable SPV_KHR_uniform_group_instructions Extension.",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.SPV_KHR_untyped_pointers)] = .{
+ .llvm_name = null,
+ .description = "Enable SPV_KHR_untyped_pointers Extension.",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.SPV_KHR_variable_pointers)] = .{
+ .llvm_name = null,
+ .description = "Enable SPV_KHR_variable_pointers Extension.",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.SPV_KHR_vulkan_memory_model)] = .{
+ .llvm_name = null,
+ .description = "Enable SPV_KHR_vulkan_memory_model Extension.",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.SPV_KHR_workgroup_memory_explicit_layout)] = .{
+ .llvm_name = null,
+ .description = "Enable SPV_KHR_workgroup_memory_explicit_layout Extension.",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.stencil_export_ext)] = .{
+ .llvm_name = null,
+ .description = "Enable stencil_export_ext Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_EXT_shader_stencil_export,
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.storage_buffer16bit_access)] = .{
+ .llvm_name = null,
+ .description = "Enable storage_buffer16bit_access Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_KHR_16bit_storage,
+ .v1_3,
+ }),
+ };
+ result[@intFromEnum(Feature.storage_buffer8bit_access)] = .{
+ .llvm_name = null,
+ .description = "Enable storage_buffer8bit_access Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_KHR_8bit_storage,
.v1_5,
}),
};
- result[@intFromEnum(Feature.float16)] = .{
+ result[@intFromEnum(Feature.storage_buffer_array_dynamic_indexing)] = .{
.llvm_name = null,
- .description = "Enable Float16 capability",
+ .description = "Enable storage_buffer_array_dynamic_indexing Capability.",
.dependencies = featureSet(&[_]Feature{
.v1_0,
}),
};
- result[@intFromEnum(Feature.float64)] = .{
+ result[@intFromEnum(Feature.storage_buffer_array_non_uniform_indexing)] = .{
+ .llvm_name = null,
+ .description = "Enable storage_buffer_array_non_uniform_indexing Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_EXT_descriptor_indexing,
+ .v1_5,
+ }),
+ };
+ result[@intFromEnum(Feature.storage_image_array_dynamic_indexing)] = .{
.llvm_name = null,
- .description = "Enable Float64 capability",
+ .description = "Enable storage_image_array_dynamic_indexing Capability.",
.dependencies = featureSet(&[_]Feature{
.v1_0,
}),
};
- result[@intFromEnum(Feature.generic_pointer)] = .{
+ result[@intFromEnum(Feature.storage_image_array_non_uniform_indexing)] = .{
.llvm_name = null,
- .description = "Enable GenericPointer capability",
+ .description = "Enable storage_image_array_non_uniform_indexing Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_EXT_descriptor_indexing,
+ .v1_5,
+ }),
+ };
+ result[@intFromEnum(Feature.storage_image_extended_formats)] = .{
+ .llvm_name = null,
+ .description = "Enable storage_image_extended_formats Capability.",
.dependencies = featureSet(&[_]Feature{
.v1_0,
}),
};
- result[@intFromEnum(Feature.int64)] = .{
+ result[@intFromEnum(Feature.storage_image_multisample)] = .{
+ .llvm_name = null,
+ .description = "Enable storage_image_multisample Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.storage_image_read_without_format)] = .{
+ .llvm_name = null,
+ .description = "Enable storage_image_read_without_format Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.storage_image_write_without_format)] = .{
.llvm_name = null,
- .description = "Enable Int64 capability",
+ .description = "Enable storage_image_write_without_format Capability.",
.dependencies = featureSet(&[_]Feature{
.v1_0,
}),
};
+ result[@intFromEnum(Feature.storage_input_output16)] = .{
+ .llvm_name = null,
+ .description = "Enable storage_input_output16 Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_KHR_16bit_storage,
+ .v1_3,
+ }),
+ };
result[@intFromEnum(Feature.storage_push_constant16)] = .{
.llvm_name = null,
- .description = "Enable SPV_KHR_16bit_storage extension and the StoragePushConstant16 capability",
+ .description = "Enable storage_push_constant16 Capability.",
.dependencies = featureSet(&[_]Feature{
+ .SPV_KHR_16bit_storage,
.v1_3,
}),
};
- result[@intFromEnum(Feature.v1_0)] = .{
+ result[@intFromEnum(Feature.storage_push_constant8)] = .{
.llvm_name = null,
- .description = "Enable version 1.0",
- .dependencies = featureSet(&[_]Feature{}),
+ .description = "Enable storage_push_constant8 Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_KHR_8bit_storage,
+ .v1_5,
+ }),
};
- result[@intFromEnum(Feature.v1_1)] = .{
+ result[@intFromEnum(Feature.storage_texel_buffer_array_dynamic_indexing)] = .{
+ .llvm_name = null,
+ .description = "Enable storage_texel_buffer_array_dynamic_indexing Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_EXT_descriptor_indexing,
+ .v1_5,
+ }),
+ };
+ result[@intFromEnum(Feature.storage_texel_buffer_array_non_uniform_indexing)] = .{
.llvm_name = null,
- .description = "Enable version 1.1",
+ .description = "Enable storage_texel_buffer_array_non_uniform_indexing Capability.",
.dependencies = featureSet(&[_]Feature{
+ .SPV_EXT_descriptor_indexing,
+ .v1_5,
+ }),
+ };
+ result[@intFromEnum(Feature.subgroup_ballot_khr)] = .{
+ .llvm_name = null,
+ .description = "Enable subgroup_ballot_khr Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_KHR_shader_ballot,
.v1_0,
}),
};
- result[@intFromEnum(Feature.v1_2)] = .{
+ result[@intFromEnum(Feature.subgroup_dispatch)] = .{
.llvm_name = null,
- .description = "Enable version 1.2",
+ .description = "Enable subgroup_dispatch Capability.",
.dependencies = featureSet(&[_]Feature{
.v1_1,
}),
};
- result[@intFromEnum(Feature.v1_3)] = .{
+ result[@intFromEnum(Feature.subgroup_vote_khr)] = .{
.llvm_name = null,
- .description = "Enable version 1.3",
+ .description = "Enable subgroup_vote_khr Capability.",
.dependencies = featureSet(&[_]Feature{
- .v1_2,
+ .SPV_KHR_subgroup_vote,
+ .v1_0,
}),
};
- result[@intFromEnum(Feature.v1_4)] = .{
+ result[@intFromEnum(Feature.tessellation)] = .{
+ .llvm_name = null,
+ .description = "Enable tessellation Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.tessellation_point_size)] = .{
+ .llvm_name = null,
+ .description = "Enable tessellation_point_size Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.tile_image_color_read_access_ext)] = .{
+ .llvm_name = null,
+ .description = "Enable tile_image_color_read_access_ext Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_EXT_shader_tile_image,
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.tile_image_depth_read_access_ext)] = .{
+ .llvm_name = null,
+ .description = "Enable tile_image_depth_read_access_ext Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_EXT_shader_tile_image,
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.tile_image_stencil_read_access_ext)] = .{
+ .llvm_name = null,
+ .description = "Enable tile_image_stencil_read_access_ext Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_EXT_shader_tile_image,
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.transform_feedback)] = .{
+ .llvm_name = null,
+ .description = "Enable transform_feedback Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.uniform_and_storage_buffer16bit_access)] = .{
.llvm_name = null,
- .description = "Enable version 1.4",
+ .description = "Enable uniform_and_storage_buffer16bit_access Capability.",
.dependencies = featureSet(&[_]Feature{
+ .SPV_KHR_16bit_storage,
.v1_3,
}),
};
- result[@intFromEnum(Feature.v1_5)] = .{
+ result[@intFromEnum(Feature.uniform_and_storage_buffer8bit_access)] = .{
.llvm_name = null,
- .description = "Enable version 1.5",
+ .description = "Enable uniform_and_storage_buffer8bit_access Capability.",
.dependencies = featureSet(&[_]Feature{
- .v1_4,
+ .SPV_KHR_8bit_storage,
+ .v1_5,
}),
};
- result[@intFromEnum(Feature.v1_6)] = .{
+ result[@intFromEnum(Feature.uniform_buffer_array_dynamic_indexing)] = .{
+ .llvm_name = null,
+ .description = "Enable uniform_buffer_array_dynamic_indexing Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.uniform_buffer_array_non_uniform_indexing)] = .{
.llvm_name = null,
- .description = "Enable version 1.6",
+ .description = "Enable uniform_buffer_array_non_uniform_indexing Capability.",
.dependencies = featureSet(&[_]Feature{
+ .SPV_EXT_descriptor_indexing,
.v1_5,
}),
};
- result[@intFromEnum(Feature.variable_pointers)] = .{
+ result[@intFromEnum(Feature.uniform_decoration)] = .{
+ .llvm_name = null,
+ .description = "Enable uniform_decoration Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .v1_6,
+ }),
+ };
+ result[@intFromEnum(Feature.uniform_texel_buffer_array_dynamic_indexing)] = .{
+ .llvm_name = null,
+ .description = "Enable uniform_texel_buffer_array_dynamic_indexing Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_EXT_descriptor_indexing,
+ .v1_5,
+ }),
+ };
+ result[@intFromEnum(Feature.uniform_texel_buffer_array_non_uniform_indexing)] = .{
+ .llvm_name = null,
+ .description = "Enable uniform_texel_buffer_array_non_uniform_indexing Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_EXT_descriptor_indexing,
+ .v1_5,
+ }),
+ };
+ result[@intFromEnum(Feature.untyped_pointers_khr)] = .{
.llvm_name = null,
- .description = "Enable SPV_KHR_variable_pointers extension and the VariablePointers capability",
+ .description = "Enable untyped_pointers_khr Capability.",
.dependencies = featureSet(&[_]Feature{
+ .SPV_KHR_untyped_pointers,
.v1_0,
}),
};
+ result[@intFromEnum(Feature.v1_0)] = .{
+ .llvm_name = null,
+ .description = "Enable v1_0 Extension.",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.v1_1)] = .{
+ .llvm_name = null,
+ .description = "Enable v1_1 Extension.",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.v1_2)] = .{
+ .llvm_name = null,
+ .description = "Enable v1_2 Extension.",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.v1_3)] = .{
+ .llvm_name = null,
+ .description = "Enable v1_3 Extension.",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.v1_4)] = .{
+ .llvm_name = null,
+ .description = "Enable v1_4 Extension.",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.v1_5)] = .{
+ .llvm_name = null,
+ .description = "Enable v1_5 Extension.",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.v1_6)] = .{
+ .llvm_name = null,
+ .description = "Enable v1_6 Extension.",
+ .dependencies = featureSet(&[_]Feature{}),
+ };
+ result[@intFromEnum(Feature.variable_pointers)] = .{
+ .llvm_name = null,
+ .description = "Enable variable_pointers Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_KHR_variable_pointers,
+ .v1_3,
+ }),
+ };
+ result[@intFromEnum(Feature.variable_pointers_storage_buffer)] = .{
+ .llvm_name = null,
+ .description = "Enable variable_pointers_storage_buffer Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_KHR_variable_pointers,
+ .v1_3,
+ }),
+ };
result[@intFromEnum(Feature.vector16)] = .{
.llvm_name = null,
- .description = "Enable Vector16 capability",
+ .description = "Enable vector16 Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.vulkan_memory_model)] = .{
+ .llvm_name = null,
+ .description = "Enable vulkan_memory_model Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_KHR_vulkan_memory_model,
+ .v1_5,
+ }),
+ };
+ result[@intFromEnum(Feature.vulkan_memory_model_device_scope)] = .{
+ .llvm_name = null,
+ .description = "Enable vulkan_memory_model_device_scope Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_KHR_vulkan_memory_model,
+ .v1_5,
+ }),
+ };
+ result[@intFromEnum(Feature.workgroup_memory_explicit_layout16bit_access_khr)] = .{
+ .llvm_name = null,
+ .description = "Enable workgroup_memory_explicit_layout16bit_access_khr Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_KHR_workgroup_memory_explicit_layout,
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.workgroup_memory_explicit_layout8bit_access_khr)] = .{
+ .llvm_name = null,
+ .description = "Enable workgroup_memory_explicit_layout8bit_access_khr Capability.",
+ .dependencies = featureSet(&[_]Feature{
+ .SPV_KHR_workgroup_memory_explicit_layout,
+ .v1_0,
+ }),
+ };
+ result[@intFromEnum(Feature.workgroup_memory_explicit_layout_khr)] = .{
+ .llvm_name = null,
+ .description = "Enable workgroup_memory_explicit_layout_khr Capability.",
.dependencies = featureSet(&[_]Feature{
+ .SPV_KHR_workgroup_memory_explicit_layout,
.v1_0,
}),
};
diff --git a/src/codegen/spirv/Assembler.zig b/src/codegen/spirv/Assembler.zig
@@ -167,15 +167,8 @@ fn processInstruction(ass: *Assembler) !void {
.OpExecutionMode, .OpExecutionModeId => {
return ass.fail(ass.currentToken().start, "cannot set execution mode in assembly", .{});
},
- .OpCapability => {
- try module.addCapability(@enumFromInt(ass.inst.operands.items[0].value));
- return;
- },
- .OpExtension => {
- const ext_name_offset = ass.inst.operands.items[0].string;
- const ext_name = std.mem.sliceTo(ass.inst.string_bytes.items[ext_name_offset..], 0);
- try module.addExtension(ext_name);
- return;
+ .OpCapability, .OpExtension => {
+ return ass.fail(ass.currentToken().start, "cannot declare capabilities or extensions in assembly; use -mcpu instead", .{});
},
.OpExtInstImport => blk: {
const set_name_offset = ass.inst.operands.items[1].string;
diff --git a/src/codegen/spirv/Module.zig b/src/codegen/spirv/Module.zig
@@ -61,8 +61,6 @@ cache: struct {
struct_types: std.array_hash_map.Custom(StructType, Id, StructType.HashContext, true) = .empty,
fn_types: std.array_hash_map.Custom(FnType, Id, FnType.HashContext, true) = .empty,
- capabilities: std.AutoHashMapUnmanaged(spec.Capability, void) = .empty,
- extensions: std.StringHashMapUnmanaged(void) = .empty,
extended_instruction_set: std.AutoHashMapUnmanaged(spec.InstructionSet, Id) = .empty,
decorations: std.AutoHashMapUnmanaged(struct { Id, spec.Decoration }, void) = .empty,
builtins: std.AutoHashMapUnmanaged(struct { spec.BuiltIn, spec.StorageClass }, Decl.Index) = .empty,
@@ -75,8 +73,6 @@ cache: struct {
} = .{},
/// Module layout, according to SPIR-V Spec section 2.4, "Logical Layout of a Module".
sections: struct {
- capabilities: Section = .{},
- extensions: Section = .{},
extended_instruction_set: Section = .{},
memory_model: Section = .{},
execution_modes: Section = .{},
@@ -211,8 +207,6 @@ pub fn deinit(module: *Module) void {
module.intern_map.deinit(module.gpa);
module.ptr_types.deinit(module.gpa);
- module.sections.capabilities.deinit(module.gpa);
- module.sections.extensions.deinit(module.gpa);
module.sections.extended_instruction_set.deinit(module.gpa);
module.sections.memory_model.deinit(module.gpa);
module.sections.execution_modes.deinit(module.gpa);
@@ -230,8 +224,6 @@ pub fn deinit(module: *Module) void {
module.cache.struct_types.deinit(module.gpa);
module.cache.fn_types.deinit(module.gpa);
module.cache.spirv_types.deinit(module.gpa);
- module.cache.capabilities.deinit(module.gpa);
- module.cache.extensions.deinit(module.gpa);
module.cache.extended_instruction_set.deinit(module.gpa);
module.cache.decorations.deinit(module.gpa);
module.cache.builtins.deinit(module.gpa);
@@ -302,270 +294,6 @@ pub fn addEntryPointDeps(
}
}
-fn entryPoints(module: *Module) !Section {
- const target = module.zcu.getTarget();
-
- var entry_points = Section{};
- errdefer entry_points.deinit(module.gpa);
-
- var interface = std.array_list.Managed(Id).init(module.gpa);
- defer interface.deinit();
-
- var seen: std.bit_set.Dynamic = try .initEmpty(module.gpa, module.decls.items.len);
- defer seen.deinit(module.gpa);
-
- for (module.entry_points.keys(), module.entry_points.values()) |entry_point_id, entry_point| {
- interface.items.len = 0;
- seen.setRangeValue(.{ .start = 0, .end = module.decls.items.len }, false);
-
- const exec_model: spec.ExecutionModel = switch (target.os.tag) {
- .vulkan, .opengl => switch (entry_point.cc) {
- .spirv_vertex => .vertex,
- .spirv_fragment => .fragment,
- .spirv_kernel => .gl_compute,
- .spirv_task => .task_ext,
- .spirv_mesh => .mesh_ext,
- // TODO: We should integrate with the Linkage capability and export this function
- .spirv_device => continue,
- else => unreachable,
- },
- .opencl => switch (entry_point.cc) {
- .spirv_kernel => .kernel,
- // TODO: We should integrate with the Linkage capability and export this function
- .spirv_device => continue,
- else => unreachable,
- },
- else => unreachable,
- };
- try module.addEntryPointDeps(entry_point.decl_index, &seen, &interface);
- try entry_points.emit(module.gpa, .OpEntryPoint, .{
- .execution_model = exec_model,
- .entry_point = entry_point_id,
- .name = entry_point.name,
- .interface = interface.items,
- });
-
- switch (entry_point.cc) {
- .spirv_kernel, .spirv_task => |kernel| {
- try module.sections.execution_modes.emit(module.gpa, .OpExecutionMode, .{
- .entry_point = entry_point_id,
- .mode = .{ .local_size = .{
- .x_size = kernel.x,
- .y_size = kernel.y,
- .z_size = kernel.z,
- } },
- });
- },
- .spirv_fragment => |fragment| {
- try module.sections.execution_modes.emit(module.gpa, .OpExecutionMode, .{
- .entry_point = entry_point_id,
- .mode = if (target.os.tag == .vulkan) .origin_upper_left else .origin_lower_left,
- });
- if (fragment.pixel_centered_integer) {
- try module.sections.execution_modes.emit(module.gpa, .OpExecutionMode, .{
- .entry_point = entry_point_id,
- .mode = .pixel_center_integer,
- });
- }
-
- const exec_mode: ?spec.ExecutionMode.Extended = switch (fragment.depth_assumption) {
- .none => null,
- .greater => .depth_greater,
- .less => .depth_less,
- .unchanged => .depth_unchanged,
- };
- if (exec_mode) |mode| {
- try module.sections.execution_modes.emit(module.gpa, .OpExecutionMode, .{
- .entry_point = entry_point_id,
- .mode = mode,
- });
- }
- },
- .spirv_mesh => |mesh| {
- try module.sections.execution_modes.emit(module.gpa, .OpExecutionMode, .{
- .entry_point = entry_point_id,
- .mode = .{ .output_vertices = .{ .vertex_count = mesh.max_vertices } },
- });
- try module.sections.execution_modes.emit(module.gpa, .OpExecutionMode, .{
- .entry_point = entry_point_id,
- .mode = .{ .output_primitives_ext = .{ .primitive_count = mesh.max_primitives } },
- });
-
- try module.sections.execution_modes.emit(module.gpa, .OpExecutionMode, .{
- .entry_point = entry_point_id,
- .mode = switch (mesh.stage_output) {
- .output_points => .output_points,
- .output_lines => .output_lines_ext,
- .output_triangles => .output_triangles_ext,
- },
- });
- },
- else => {}, // TODO: should this be unreachable?
- }
- }
-
- return entry_points;
-}
-
-pub fn finalize(module: *Module, gpa: Allocator) ![]Word {
- const target = module.zcu.getTarget();
-
- // Emit capabilities and extensions
- switch (target.os.tag) {
- .opengl => {
- try module.addCapability(.shader);
- try module.addCapability(.matrix);
- },
- .vulkan => {
- try module.addCapability(.shader);
- try module.addCapability(.matrix);
- if (target.cpu.arch == .spirv64) {
- try module.addExtension("SPV_KHR_physical_storage_buffer");
- try module.addCapability(.physical_storage_buffer_addresses);
- }
- },
- .opencl, .amdhsa => {
- try module.addCapability(.kernel);
- try module.addCapability(.addresses);
- },
- else => unreachable,
- }
- if (target.cpu.arch == .spirv64) try module.addCapability(.int64);
- if (target.cpu.has(.spirv, .int64)) try module.addCapability(.int64);
- if (target.cpu.has(.spirv, .float16)) {
- if (target.os.tag == .opencl) try module.addExtension("cl_khr_fp16");
- try module.addCapability(.float16);
- }
- if (target.cpu.has(.spirv, .float64)) try module.addCapability(.float64);
- if (target.cpu.has(.spirv, .generic_pointer)) try module.addCapability(.generic_pointer);
- if (target.cpu.has(.spirv, .vector16)) try module.addCapability(.vector16);
- if (target.cpu.has(.spirv, .storage_push_constant16)) {
- try module.addExtension("SPV_KHR_16bit_storage");
- try module.addCapability(.storage_push_constant16);
- }
- if (target.cpu.has(.spirv, .arbitrary_precision_integers)) {
- try module.addExtension("SPV_INTEL_arbitrary_precision_integers");
- try module.addCapability(.arbitrary_precision_integers_intel);
- }
- if (target.cpu.has(.spirv, .variable_pointers)) {
- try module.addExtension("SPV_KHR_variable_pointers");
- try module.addCapability(.variable_pointers_storage_buffer);
- try module.addCapability(.variable_pointers);
- }
- // These are well supported
- try module.addCapability(.int8);
- try module.addCapability(.int16);
-
- // Emit memory model
- const addressing_model: spec.AddressingModel = switch (target.os.tag) {
- .opengl => .logical,
- .vulkan => if (target.cpu.arch == .spirv32) .logical else .physical_storage_buffer64,
- .opencl => if (target.cpu.arch == .spirv32) .physical32 else .physical64,
- .amdhsa => .physical64,
- else => unreachable,
- };
- try module.sections.memory_model.emit(module.gpa, .OpMemoryModel, .{
- .addressing_model = addressing_model,
- .memory_model = switch (target.os.tag) {
- .opencl => .open_cl,
- .vulkan, .opengl => .glsl450,
- else => unreachable,
- },
- });
-
- var entry_points = try module.entryPoints();
- defer entry_points.deinit(module.gpa);
-
- const version: spec.Version = .{
- .major = 1,
- .minor = blk: {
- // Prefer higher versions
- if (target.cpu.has(.spirv, .v1_6)) break :blk 6;
- if (target.cpu.has(.spirv, .v1_5)) break :blk 5;
- if (target.cpu.has(.spirv, .v1_4)) break :blk 4;
- if (target.cpu.has(.spirv, .v1_3)) break :blk 3;
- if (target.cpu.has(.spirv, .v1_2)) break :blk 2;
- if (target.cpu.has(.spirv, .v1_1)) break :blk 1;
- break :blk 0;
- },
- };
-
- const zig_version = @import("builtin").zig_version;
- const zig_spirv_compiler_version = comptime (zig_version.major << 12) | (zig_version.minor << 7) | zig_version.patch;
-
- // A SPIR-V Generator Magic Number is a 32 bit word: The high order 16
- // bits are a tool ID, which should be unique across all SPIR-V
- // generators. The low order 16 bits are reserved for use as a tool
- // version number, or any other purpose the tool supplier chooses.
- // Only the tool IDs are reserved with Khronos.
- // See https://github.com/KhronosGroup/SPIRV-Headers/blob/f2e4bd213104fe323a01e935df56557328d37ac8/include/spirv/spir-v.xml#L17C5-L21C54
- const generator_id: u32 = (spec.zig_generator_id << 16) | zig_spirv_compiler_version;
-
- const header = [_]Word{
- spec.magic_number,
- version.toWord(),
- generator_id,
- module.idBound(),
- 0, // Schema (currently reserved for future use)
- };
-
- var source = Section{};
- defer source.deinit(module.gpa);
- try module.sections.debug_strings.emit(module.gpa, .OpSource, .{
- .source_language = .zig,
- .version = zig_spirv_compiler_version,
- // We cannot emit these because the Khronos translator does not parse this instruction
- // correctly.
- // See https://github.com/KhronosGroup/SPIRV-LLVM-Translator/issues/2188
- .file = null,
- .source = null,
- });
-
- // Note: needs to be kept in order according to section 2.3!
- const buffers = &[_][]const Word{
- &header,
- module.sections.capabilities.toWords(),
- module.sections.extensions.toWords(),
- module.sections.extended_instruction_set.toWords(),
- module.sections.memory_model.toWords(),
- entry_points.toWords(),
- module.sections.execution_modes.toWords(),
- source.toWords(),
- module.sections.debug_strings.toWords(),
- module.sections.debug_names.toWords(),
- module.sections.annotations.toWords(),
- module.sections.globals.toWords(),
- module.sections.functions.toWords(),
- };
-
- var total_result_size: usize = 0;
- for (buffers) |buffer| {
- total_result_size += buffer.len;
- }
- const result = try gpa.alloc(Word, total_result_size);
- errdefer comptime unreachable;
-
- var offset: usize = 0;
- for (buffers) |buffer| {
- @memcpy(result[offset..][0..buffer.len], buffer);
- offset += buffer.len;
- }
-
- return result;
-}
-
-pub fn addCapability(module: *Module, cap: spec.Capability) !void {
- const entry = try module.cache.capabilities.getOrPut(module.gpa, cap);
- if (entry.found_existing) return;
- try module.sections.capabilities.emit(module.gpa, .OpCapability, .{ .capability = cap });
-}
-
-pub fn addExtension(module: *Module, ext: []const u8) !void {
- const entry = try module.cache.extensions.getOrPut(module.gpa, ext);
- if (entry.found_existing) return;
- try module.sections.extensions.emit(module.gpa, .OpExtension, .{ .name = ext });
-}
-
/// Imports or returns the existing id of an extended instruction set
pub fn importInstructionSet(module: *Module, set: spec.InstructionSet) !Id {
assert(set != .core);
@@ -622,28 +350,17 @@ pub fn opaqueType(module: *Module, name: []const u8) !Id {
pub fn backingIntBits(module: *Module, bits: u16) struct { u16, bool } {
assert(bits != 0);
const target = module.zcu.getTarget();
-
- if (target.cpu.has(.spirv, .arbitrary_precision_integers) and bits <= 32) {
- return .{ bits, false };
- }
-
- // We require Int8 and Int16 capabilities and benefit Int64 when available.
- // 32-bit integers are always supported (see spec, 2.16.1, Data rules).
const ints = [_]struct { bits: u16, enabled: bool }{
- .{ .bits = 8, .enabled = true },
- .{ .bits = 16, .enabled = true },
+ .{ .bits = 8, .enabled = target.cpu.has(.spirv, .int8) },
+ .{ .bits = 16, .enabled = target.cpu.has(.spirv, .int16) },
.{ .bits = 32, .enabled = true },
- .{
- .bits = 64,
- .enabled = target.cpu.has(.spirv, .int64) or target.cpu.arch == .spirv64,
- },
+ .{ .bits = 64, .enabled = target.cpu.has(.spirv, .int64) or target.cpu.arch == .spirv64 },
};
for (ints) |int| {
if (bits <= int.bits and int.enabled) return .{ int.bits, false };
}
- // Big int
return .{ std.mem.alignForward(u16, bits, big_int_bits), true };
}
diff --git a/src/codegen/spirv/spec.zig b/src/codegen/spirv/spec.zig
@@ -313,16 +313,16 @@ pub const OperandKind = enum {
.{ .name = "IterationMultiple", .value = 0x0040, .parameters = &.{.literal_integer} },
.{ .name = "PeelCount", .value = 0x0080, .parameters = &.{.literal_integer} },
.{ .name = "PartialCount", .value = 0x0100, .parameters = &.{.literal_integer} },
- .{ .name = "InitiationIntervalINTEL", .value = 0x10000, .parameters = &.{.literal_integer} },
- .{ .name = "MaxConcurrencyINTEL", .value = 0x20000, .parameters = &.{.literal_integer} },
- .{ .name = "DependencyArrayINTEL", .value = 0x40000, .parameters = &.{.literal_integer} },
- .{ .name = "PipelineEnableINTEL", .value = 0x80000, .parameters = &.{.literal_integer} },
- .{ .name = "LoopCoalesceINTEL", .value = 0x100000, .parameters = &.{.literal_integer} },
- .{ .name = "MaxInterleavingINTEL", .value = 0x200000, .parameters = &.{.literal_integer} },
- .{ .name = "SpeculatedIterationsINTEL", .value = 0x400000, .parameters = &.{.literal_integer} },
- .{ .name = "NoFusionINTEL", .value = 0x800000, .parameters = &.{} },
- .{ .name = "LoopCountINTEL", .value = 0x1000000, .parameters = &.{.literal_integer} },
- .{ .name = "MaxReinvocationDelayINTEL", .value = 0x2000000, .parameters = &.{.literal_integer} },
+ .{ .name = "InitiationIntervalALTERA", .value = 0x10000, .parameters = &.{.literal_integer} },
+ .{ .name = "MaxConcurrencyALTERA", .value = 0x20000, .parameters = &.{.literal_integer} },
+ .{ .name = "DependencyArrayALTERA", .value = 0x40000, .parameters = &.{.literal_integer} },
+ .{ .name = "PipelineEnableALTERA", .value = 0x80000, .parameters = &.{.literal_integer} },
+ .{ .name = "LoopCoalesceALTERA", .value = 0x100000, .parameters = &.{.literal_integer} },
+ .{ .name = "MaxInterleavingALTERA", .value = 0x200000, .parameters = &.{.literal_integer} },
+ .{ .name = "SpeculatedIterationsALTERA", .value = 0x400000, .parameters = &.{.literal_integer} },
+ .{ .name = "NoFusionALTERA", .value = 0x800000, .parameters = &.{} },
+ .{ .name = "LoopCountALTERA", .value = 0x1000000, .parameters = &.{.literal_integer} },
+ .{ .name = "MaxReinvocationDelayALTERA", .value = 0x2000000, .parameters = &.{.literal_integer} },
},
.function_control => &.{
.{ .name = "Inline", .value = 0x0001, .parameters = &.{} },
@@ -500,6 +500,7 @@ pub const OperandKind = enum {
.{ .name = "QuadDerivativesKHR", .value = 5088, .parameters = &.{} },
.{ .name = "RequireFullQuadsKHR", .value = 5089, .parameters = &.{} },
.{ .name = "SharesInputWithAMDX", .value = 5102, .parameters = &.{ .id_ref, .id_ref } },
+ .{ .name = "ArithmeticPoisonKHR", .value = 5157, .parameters = &.{} },
.{ .name = "OutputLinesEXT", .value = 5269, .parameters = &.{} },
.{ .name = "OutputPrimitivesEXT", .value = 5270, .parameters = &.{.literal_integer} },
.{ .name = "DerivativeGroupQuadsKHR", .value = 5289, .parameters = &.{} },
@@ -511,6 +512,7 @@ pub const OperandKind = enum {
.{ .name = "SampleInterlockUnorderedEXT", .value = 5369, .parameters = &.{} },
.{ .name = "ShadingRateInterlockOrderedEXT", .value = 5370, .parameters = &.{} },
.{ .name = "ShadingRateInterlockUnorderedEXT", .value = 5371, .parameters = &.{} },
+ .{ .name = "Shader64BitIndexingEXT", .value = 5427, .parameters = &.{} },
.{ .name = "SharedLocalMemorySizeINTEL", .value = 5618, .parameters = &.{.literal_integer} },
.{ .name = "RoundingModeRTPINTEL", .value = 5620, .parameters = &.{.literal_integer} },
.{ .name = "RoundingModeRTNINTEL", .value = 5621, .parameters = &.{.literal_integer} },
@@ -556,9 +558,10 @@ pub const OperandKind = enum {
.{ .name = "PhysicalStorageBuffer", .value = 5349, .parameters = &.{} },
.{ .name = "HitObjectAttributeNV", .value = 5385, .parameters = &.{} },
.{ .name = "TaskPayloadWorkgroupEXT", .value = 5402, .parameters = &.{} },
+ .{ .name = "HitObjectAttributeEXT", .value = 5411, .parameters = &.{} },
.{ .name = "CodeSectionINTEL", .value = 5605, .parameters = &.{} },
- .{ .name = "DeviceOnlyINTEL", .value = 5936, .parameters = &.{} },
- .{ .name = "HostOnlyINTEL", .value = 5937, .parameters = &.{} },
+ .{ .name = "DeviceOnlyALTERA", .value = 5936, .parameters = &.{} },
+ .{ .name = "HostOnlyALTERA", .value = 5937, .parameters = &.{} },
},
.dim => &.{
.{ .name = "1D", .value = 0, .parameters = &.{} },
@@ -730,7 +733,7 @@ pub const OperandKind = enum {
.{ .name = "NoCapture", .value = 5, .parameters = &.{} },
.{ .name = "NoWrite", .value = 6, .parameters = &.{} },
.{ .name = "NoReadWrite", .value = 7, .parameters = &.{} },
- .{ .name = "RuntimeAlignedINTEL", .value = 5940, .parameters = &.{} },
+ .{ .name = "RuntimeAlignedALTERA", .value = 5940, .parameters = &.{} },
},
.decoration => &.{
.{ .name = "RelaxedPrecision", .value = 0, .parameters = &.{} },
@@ -795,6 +798,9 @@ pub const OperandKind = enum {
.{ .name = "PayloadNodeSparseArrayAMDX", .value = 5099, .parameters = &.{} },
.{ .name = "PayloadNodeArraySizeAMDX", .value = 5100, .parameters = &.{.id_ref} },
.{ .name = "PayloadDispatchIndirectAMDX", .value = 5105, .parameters = &.{} },
+ .{ .name = "ArrayStrideIdEXT", .value = 5124, .parameters = &.{.id_ref} },
+ .{ .name = "OffsetIdEXT", .value = 5125, .parameters = &.{.id_ref} },
+ .{ .name = "UTFEncodedKHR", .value = 5145, .parameters = &.{} },
.{ .name = "OverrideCoverageNV", .value = 5248, .parameters = &.{} },
.{ .name = "PassthroughNV", .value = 5250, .parameters = &.{} },
.{ .name = "ViewportRelativeNV", .value = 5252, .parameters = &.{} },
@@ -806,7 +812,10 @@ pub const OperandKind = enum {
.{ .name = "NonUniform", .value = 5300, .parameters = &.{} },
.{ .name = "RestrictPointer", .value = 5355, .parameters = &.{} },
.{ .name = "AliasedPointer", .value = 5356, .parameters = &.{} },
+ .{ .name = "MemberOffsetNV", .value = 5358, .parameters = &.{.literal_integer} },
.{ .name = "HitObjectShaderRecordBufferNV", .value = 5386, .parameters = &.{} },
+ .{ .name = "HitObjectShaderRecordBufferEXT", .value = 5389, .parameters = &.{} },
+ .{ .name = "BankNV", .value = 5397, .parameters = &.{.literal_integer} },
.{ .name = "BindlessSamplerNV", .value = 5398, .parameters = &.{} },
.{ .name = "BindlessImageNV", .value = 5399, .parameters = &.{} },
.{ .name = "BoundSamplerNV", .value = 5400, .parameters = &.{} },
@@ -825,55 +834,56 @@ pub const OperandKind = enum {
.{ .name = "UserTypeGOOGLE", .value = 5636, .parameters = &.{.literal_string} },
.{ .name = "FunctionRoundingModeINTEL", .value = 5822, .parameters = &.{ .literal_integer, .fp_rounding_mode } },
.{ .name = "FunctionDenormModeINTEL", .value = 5823, .parameters = &.{ .literal_integer, .fp_denorm_mode } },
- .{ .name = "RegisterINTEL", .value = 5825, .parameters = &.{} },
- .{ .name = "MemoryINTEL", .value = 5826, .parameters = &.{.literal_string} },
- .{ .name = "NumbanksINTEL", .value = 5827, .parameters = &.{.literal_integer} },
- .{ .name = "BankwidthINTEL", .value = 5828, .parameters = &.{.literal_integer} },
- .{ .name = "MaxPrivateCopiesINTEL", .value = 5829, .parameters = &.{.literal_integer} },
- .{ .name = "SinglepumpINTEL", .value = 5830, .parameters = &.{} },
- .{ .name = "DoublepumpINTEL", .value = 5831, .parameters = &.{} },
- .{ .name = "MaxReplicatesINTEL", .value = 5832, .parameters = &.{.literal_integer} },
- .{ .name = "SimpleDualPortINTEL", .value = 5833, .parameters = &.{} },
- .{ .name = "MergeINTEL", .value = 5834, .parameters = &.{ .literal_string, .literal_string } },
- .{ .name = "BankBitsINTEL", .value = 5835, .parameters = &.{.literal_integer} },
- .{ .name = "ForcePow2DepthINTEL", .value = 5836, .parameters = &.{.literal_integer} },
- .{ .name = "StridesizeINTEL", .value = 5883, .parameters = &.{.literal_integer} },
- .{ .name = "WordsizeINTEL", .value = 5884, .parameters = &.{.literal_integer} },
- .{ .name = "TrueDualPortINTEL", .value = 5885, .parameters = &.{} },
- .{ .name = "BurstCoalesceINTEL", .value = 5899, .parameters = &.{} },
- .{ .name = "CacheSizeINTEL", .value = 5900, .parameters = &.{.literal_integer} },
- .{ .name = "DontStaticallyCoalesceINTEL", .value = 5901, .parameters = &.{} },
- .{ .name = "PrefetchINTEL", .value = 5902, .parameters = &.{.literal_integer} },
- .{ .name = "StallEnableINTEL", .value = 5905, .parameters = &.{} },
- .{ .name = "FuseLoopsInFunctionINTEL", .value = 5907, .parameters = &.{} },
- .{ .name = "MathOpDSPModeINTEL", .value = 5909, .parameters = &.{ .literal_integer, .literal_integer } },
+ .{ .name = "RegisterALTERA", .value = 5825, .parameters = &.{} },
+ .{ .name = "MemoryALTERA", .value = 5826, .parameters = &.{.literal_string} },
+ .{ .name = "NumbanksALTERA", .value = 5827, .parameters = &.{.literal_integer} },
+ .{ .name = "BankwidthALTERA", .value = 5828, .parameters = &.{.literal_integer} },
+ .{ .name = "MaxPrivateCopiesALTERA", .value = 5829, .parameters = &.{.literal_integer} },
+ .{ .name = "SinglepumpALTERA", .value = 5830, .parameters = &.{} },
+ .{ .name = "DoublepumpALTERA", .value = 5831, .parameters = &.{} },
+ .{ .name = "MaxReplicatesALTERA", .value = 5832, .parameters = &.{.literal_integer} },
+ .{ .name = "SimpleDualPortALTERA", .value = 5833, .parameters = &.{} },
+ .{ .name = "MergeALTERA", .value = 5834, .parameters = &.{ .literal_string, .literal_string } },
+ .{ .name = "BankBitsALTERA", .value = 5835, .parameters = &.{.literal_integer} },
+ .{ .name = "ForcePow2DepthALTERA", .value = 5836, .parameters = &.{.literal_integer} },
+ .{ .name = "StridesizeALTERA", .value = 5883, .parameters = &.{.literal_integer} },
+ .{ .name = "WordsizeALTERA", .value = 5884, .parameters = &.{.literal_integer} },
+ .{ .name = "TrueDualPortALTERA", .value = 5885, .parameters = &.{} },
+ .{ .name = "BurstCoalesceALTERA", .value = 5899, .parameters = &.{} },
+ .{ .name = "CacheSizeALTERA", .value = 5900, .parameters = &.{.literal_integer} },
+ .{ .name = "DontStaticallyCoalesceALTERA", .value = 5901, .parameters = &.{} },
+ .{ .name = "PrefetchALTERA", .value = 5902, .parameters = &.{.literal_integer} },
+ .{ .name = "StallEnableALTERA", .value = 5905, .parameters = &.{} },
+ .{ .name = "FuseLoopsInFunctionALTERA", .value = 5907, .parameters = &.{} },
+ .{ .name = "MathOpDSPModeALTERA", .value = 5909, .parameters = &.{ .literal_integer, .literal_integer } },
.{ .name = "AliasScopeINTEL", .value = 5914, .parameters = &.{.id_ref} },
.{ .name = "NoAliasINTEL", .value = 5915, .parameters = &.{.id_ref} },
- .{ .name = "InitiationIntervalINTEL", .value = 5917, .parameters = &.{.literal_integer} },
- .{ .name = "MaxConcurrencyINTEL", .value = 5918, .parameters = &.{.literal_integer} },
- .{ .name = "PipelineEnableINTEL", .value = 5919, .parameters = &.{.literal_integer} },
- .{ .name = "BufferLocationINTEL", .value = 5921, .parameters = &.{.literal_integer} },
- .{ .name = "IOPipeStorageINTEL", .value = 5944, .parameters = &.{.literal_integer} },
+ .{ .name = "InitiationIntervalALTERA", .value = 5917, .parameters = &.{.literal_integer} },
+ .{ .name = "MaxConcurrencyALTERA", .value = 5918, .parameters = &.{.literal_integer} },
+ .{ .name = "PipelineEnableALTERA", .value = 5919, .parameters = &.{.literal_integer} },
+ .{ .name = "BufferLocationALTERA", .value = 5921, .parameters = &.{.literal_integer} },
+ .{ .name = "IOPipeStorageALTERA", .value = 5944, .parameters = &.{.literal_integer} },
.{ .name = "FunctionFloatingPointModeINTEL", .value = 6080, .parameters = &.{ .literal_integer, .fp_operation_mode } },
.{ .name = "SingleElementVectorINTEL", .value = 6085, .parameters = &.{} },
.{ .name = "VectorComputeCallableFunctionINTEL", .value = 6087, .parameters = &.{} },
.{ .name = "MediaBlockIOINTEL", .value = 6140, .parameters = &.{} },
- .{ .name = "StallFreeINTEL", .value = 6151, .parameters = &.{} },
+ .{ .name = "StallFreeALTERA", .value = 6151, .parameters = &.{} },
.{ .name = "FPMaxErrorDecorationINTEL", .value = 6170, .parameters = &.{.literal_float} },
- .{ .name = "LatencyControlLabelINTEL", .value = 6172, .parameters = &.{.literal_integer} },
- .{ .name = "LatencyControlConstraintINTEL", .value = 6173, .parameters = &.{ .literal_integer, .literal_integer, .literal_integer } },
- .{ .name = "ConduitKernelArgumentINTEL", .value = 6175, .parameters = &.{} },
- .{ .name = "RegisterMapKernelArgumentINTEL", .value = 6176, .parameters = &.{} },
- .{ .name = "MMHostInterfaceAddressWidthINTEL", .value = 6177, .parameters = &.{.literal_integer} },
- .{ .name = "MMHostInterfaceDataWidthINTEL", .value = 6178, .parameters = &.{.literal_integer} },
- .{ .name = "MMHostInterfaceLatencyINTEL", .value = 6179, .parameters = &.{.literal_integer} },
- .{ .name = "MMHostInterfaceReadWriteModeINTEL", .value = 6180, .parameters = &.{.access_qualifier} },
- .{ .name = "MMHostInterfaceMaxBurstINTEL", .value = 6181, .parameters = &.{.literal_integer} },
- .{ .name = "MMHostInterfaceWaitRequestINTEL", .value = 6182, .parameters = &.{.literal_integer} },
- .{ .name = "StableKernelArgumentINTEL", .value = 6183, .parameters = &.{} },
+ .{ .name = "LatencyControlLabelALTERA", .value = 6172, .parameters = &.{.literal_integer} },
+ .{ .name = "LatencyControlConstraintALTERA", .value = 6173, .parameters = &.{ .literal_integer, .literal_integer, .literal_integer } },
+ .{ .name = "ConduitKernelArgumentALTERA", .value = 6175, .parameters = &.{} },
+ .{ .name = "RegisterMapKernelArgumentALTERA", .value = 6176, .parameters = &.{} },
+ .{ .name = "MMHostInterfaceAddressWidthALTERA", .value = 6177, .parameters = &.{.literal_integer} },
+ .{ .name = "MMHostInterfaceDataWidthALTERA", .value = 6178, .parameters = &.{.literal_integer} },
+ .{ .name = "MMHostInterfaceLatencyALTERA", .value = 6179, .parameters = &.{.literal_integer} },
+ .{ .name = "MMHostInterfaceReadWriteModeALTERA", .value = 6180, .parameters = &.{.access_qualifier} },
+ .{ .name = "MMHostInterfaceMaxBurstALTERA", .value = 6181, .parameters = &.{.literal_integer} },
+ .{ .name = "MMHostInterfaceWaitRequestALTERA", .value = 6182, .parameters = &.{.literal_integer} },
+ .{ .name = "StableKernelArgumentALTERA", .value = 6183, .parameters = &.{} },
.{ .name = "HostAccessINTEL", .value = 6188, .parameters = &.{ .host_access_qualifier, .literal_string } },
- .{ .name = "InitModeINTEL", .value = 6190, .parameters = &.{.initialization_mode_qualifier} },
- .{ .name = "ImplementInRegisterMapINTEL", .value = 6191, .parameters = &.{.literal_integer} },
+ .{ .name = "InitModeALTERA", .value = 6190, .parameters = &.{.initialization_mode_qualifier} },
+ .{ .name = "ImplementInRegisterMapALTERA", .value = 6191, .parameters = &.{.literal_integer} },
+ .{ .name = "ConditionalINTEL", .value = 6247, .parameters = &.{.id_ref} },
.{ .name = "CacheControlLoadINTEL", .value = 6442, .parameters = &.{ .literal_integer, .load_cache_control } },
.{ .name = "CacheControlStoreINTEL", .value = 6443, .parameters = &.{ .literal_integer, .store_cache_control } },
},
@@ -949,6 +959,8 @@ pub const OperandKind = enum {
.{ .name = "FragStencilRefEXT", .value = 5014, .parameters = &.{} },
.{ .name = "RemainingRecursionLevelsAMDX", .value = 5021, .parameters = &.{} },
.{ .name = "ShaderIndexAMDX", .value = 5073, .parameters = &.{} },
+ .{ .name = "SamplerHeapEXT", .value = 5122, .parameters = &.{} },
+ .{ .name = "ResourceHeapEXT", .value = 5123, .parameters = &.{} },
.{ .name = "ViewportMaskNV", .value = 5253, .parameters = &.{} },
.{ .name = "SecondaryPositionNV", .value = 5257, .parameters = &.{} },
.{ .name = "SecondaryViewportMaskNV", .value = 5258, .parameters = &.{} },
@@ -1019,9 +1031,9 @@ pub const OperandKind = enum {
.{ .name = "InclusiveScan", .value = 1, .parameters = &.{} },
.{ .name = "ExclusiveScan", .value = 2, .parameters = &.{} },
.{ .name = "ClusteredReduce", .value = 3, .parameters = &.{} },
- .{ .name = "PartitionedReduceNV", .value = 6, .parameters = &.{} },
- .{ .name = "PartitionedInclusiveScanNV", .value = 7, .parameters = &.{} },
- .{ .name = "PartitionedExclusiveScanNV", .value = 8, .parameters = &.{} },
+ .{ .name = "PartitionedReduceEXT", .value = 6, .parameters = &.{} },
+ .{ .name = "PartitionedInclusiveScanEXT", .value = 7, .parameters = &.{} },
+ .{ .name = "PartitionedExclusiveScanEXT", .value = 8, .parameters = &.{} },
},
.kernel_enqueue_flags => &.{
.{ .name = "NoWait", .value = 0, .parameters = &.{} },
@@ -1144,6 +1156,7 @@ pub const OperandKind = enum {
.{ .name = "TextureBoxFilterQCOM", .value = 4485, .parameters = &.{} },
.{ .name = "TextureBlockMatchQCOM", .value = 4486, .parameters = &.{} },
.{ .name = "TileShadingQCOM", .value = 4495, .parameters = &.{} },
+ .{ .name = "CooperativeMatrixConversionQCOM", .value = 4496, .parameters = &.{} },
.{ .name = "TextureBlockMatch2QCOM", .value = 4498, .parameters = &.{} },
.{ .name = "Float16ImageAMD", .value = 5008, .parameters = &.{} },
.{ .name = "ImageGatherBiasLodAMD", .value = 5009, .parameters = &.{} },
@@ -1159,6 +1172,10 @@ pub const OperandKind = enum {
.{ .name = "BFloat16TypeKHR", .value = 5116, .parameters = &.{} },
.{ .name = "BFloat16DotProductKHR", .value = 5117, .parameters = &.{} },
.{ .name = "BFloat16CooperativeMatrixKHR", .value = 5118, .parameters = &.{} },
+ .{ .name = "AbortKHR", .value = 5120, .parameters = &.{} },
+ .{ .name = "DescriptorHeapEXT", .value = 5128, .parameters = &.{} },
+ .{ .name = "ConstantDataKHR", .value = 5146, .parameters = &.{} },
+ .{ .name = "PoisonFreezeKHR", .value = 5156, .parameters = &.{} },
.{ .name = "SampleMaskOverrideCoverageNV", .value = 5249, .parameters = &.{} },
.{ .name = "GeometryShaderPassthroughNV", .value = 5251, .parameters = &.{} },
.{ .name = "ShaderViewportIndexLayerEXT", .value = 5254, .parameters = &.{} },
@@ -1172,7 +1189,7 @@ pub const OperandKind = enum {
.{ .name = "FragmentBarycentricKHR", .value = 5284, .parameters = &.{} },
.{ .name = "ComputeDerivativeGroupQuadsKHR", .value = 5288, .parameters = &.{} },
.{ .name = "FragmentDensityEXT", .value = 5291, .parameters = &.{} },
- .{ .name = "GroupNonUniformPartitionedNV", .value = 5297, .parameters = &.{} },
+ .{ .name = "GroupNonUniformPartitionedEXT", .value = 5297, .parameters = &.{} },
.{ .name = "ShaderNonUniform", .value = 5301, .parameters = &.{} },
.{ .name = "RuntimeDescriptorArray", .value = 5302, .parameters = &.{} },
.{ .name = "InputAttachmentArrayDynamicIndexing", .value = 5303, .parameters = &.{} },
@@ -1202,6 +1219,7 @@ pub const OperandKind = enum {
.{ .name = "DisplacementMicromapNV", .value = 5380, .parameters = &.{} },
.{ .name = "RayTracingOpacityMicromapEXT", .value = 5381, .parameters = &.{} },
.{ .name = "ShaderInvocationReorderNV", .value = 5383, .parameters = &.{} },
+ .{ .name = "ShaderInvocationReorderEXT", .value = 5388, .parameters = &.{} },
.{ .name = "BindlessTextureNV", .value = 5390, .parameters = &.{} },
.{ .name = "RayQueryPositionFetchKHR", .value = 5391, .parameters = &.{} },
.{ .name = "CooperativeVectorNV", .value = 5394, .parameters = &.{} },
@@ -1210,6 +1228,9 @@ pub const OperandKind = enum {
.{ .name = "RawAccessChainsNV", .value = 5414, .parameters = &.{} },
.{ .name = "RayTracingSpheresGeometryNV", .value = 5418, .parameters = &.{} },
.{ .name = "RayTracingLinearSweptSpheresGeometryNV", .value = 5419, .parameters = &.{} },
+ .{ .name = "PushConstantBanksNV", .value = 5423, .parameters = &.{} },
+ .{ .name = "LongVectorEXT", .value = 5425, .parameters = &.{} },
+ .{ .name = "Shader64BitIndexingEXT", .value = 5426, .parameters = &.{} },
.{ .name = "CooperativeMatrixReductionsNV", .value = 5430, .parameters = &.{} },
.{ .name = "CooperativeMatrixConversionsNV", .value = 5431, .parameters = &.{} },
.{ .name = "CooperativeMatrixPerElementOperationsNV", .value = 5432, .parameters = &.{} },
@@ -1239,27 +1260,27 @@ pub const OperandKind = enum {
.{ .name = "SubgroupAvcMotionEstimationChromaINTEL", .value = 5698, .parameters = &.{} },
.{ .name = "VariableLengthArrayINTEL", .value = 5817, .parameters = &.{} },
.{ .name = "FunctionFloatControlINTEL", .value = 5821, .parameters = &.{} },
- .{ .name = "FPGAMemoryAttributesINTEL", .value = 5824, .parameters = &.{} },
+ .{ .name = "FPGAMemoryAttributesALTERA", .value = 5824, .parameters = &.{} },
.{ .name = "FPFastMathModeINTEL", .value = 5837, .parameters = &.{} },
- .{ .name = "ArbitraryPrecisionIntegersINTEL", .value = 5844, .parameters = &.{} },
- .{ .name = "ArbitraryPrecisionFloatingPointINTEL", .value = 5845, .parameters = &.{} },
+ .{ .name = "ArbitraryPrecisionIntegersALTERA", .value = 5844, .parameters = &.{} },
+ .{ .name = "ArbitraryPrecisionFloatingPointALTERA", .value = 5845, .parameters = &.{} },
.{ .name = "UnstructuredLoopControlsINTEL", .value = 5886, .parameters = &.{} },
- .{ .name = "FPGALoopControlsINTEL", .value = 5888, .parameters = &.{} },
+ .{ .name = "FPGALoopControlsALTERA", .value = 5888, .parameters = &.{} },
.{ .name = "KernelAttributesINTEL", .value = 5892, .parameters = &.{} },
.{ .name = "FPGAKernelAttributesINTEL", .value = 5897, .parameters = &.{} },
- .{ .name = "FPGAMemoryAccessesINTEL", .value = 5898, .parameters = &.{} },
- .{ .name = "FPGAClusterAttributesINTEL", .value = 5904, .parameters = &.{} },
- .{ .name = "LoopFuseINTEL", .value = 5906, .parameters = &.{} },
- .{ .name = "FPGADSPControlINTEL", .value = 5908, .parameters = &.{} },
+ .{ .name = "FPGAMemoryAccessesALTERA", .value = 5898, .parameters = &.{} },
+ .{ .name = "FPGAClusterAttributesALTERA", .value = 5904, .parameters = &.{} },
+ .{ .name = "LoopFuseALTERA", .value = 5906, .parameters = &.{} },
+ .{ .name = "FPGADSPControlALTERA", .value = 5908, .parameters = &.{} },
.{ .name = "MemoryAccessAliasingINTEL", .value = 5910, .parameters = &.{} },
- .{ .name = "FPGAInvocationPipeliningAttributesINTEL", .value = 5916, .parameters = &.{} },
- .{ .name = "FPGABufferLocationINTEL", .value = 5920, .parameters = &.{} },
- .{ .name = "ArbitraryPrecisionFixedPointINTEL", .value = 5922, .parameters = &.{} },
- .{ .name = "USMStorageClassesINTEL", .value = 5935, .parameters = &.{} },
- .{ .name = "RuntimeAlignedAttributeINTEL", .value = 5939, .parameters = &.{} },
- .{ .name = "IOPipesINTEL", .value = 5943, .parameters = &.{} },
- .{ .name = "BlockingPipesINTEL", .value = 5945, .parameters = &.{} },
- .{ .name = "FPGARegINTEL", .value = 5948, .parameters = &.{} },
+ .{ .name = "FPGAInvocationPipeliningAttributesALTERA", .value = 5916, .parameters = &.{} },
+ .{ .name = "FPGABufferLocationALTERA", .value = 5920, .parameters = &.{} },
+ .{ .name = "ArbitraryPrecisionFixedPointALTERA", .value = 5922, .parameters = &.{} },
+ .{ .name = "USMStorageClassesALTERA", .value = 5935, .parameters = &.{} },
+ .{ .name = "RuntimeAlignedAttributeALTERA", .value = 5939, .parameters = &.{} },
+ .{ .name = "IOPipesALTERA", .value = 5943, .parameters = &.{} },
+ .{ .name = "BlockingPipesALTERA", .value = 5945, .parameters = &.{} },
+ .{ .name = "FPGARegALTERA", .value = 5948, .parameters = &.{} },
.{ .name = "DotProductInputAll", .value = 6016, .parameters = &.{} },
.{ .name = "DotProductInput4x8Bit", .value = 6017, .parameters = &.{} },
.{ .name = "DotProductInput4x8BitPacked", .value = 6018, .parameters = &.{} },
@@ -1270,6 +1291,7 @@ pub const OperandKind = enum {
.{ .name = "BitInstructions", .value = 6025, .parameters = &.{} },
.{ .name = "GroupNonUniformRotateKHR", .value = 6026, .parameters = &.{} },
.{ .name = "FloatControls2", .value = 6029, .parameters = &.{} },
+ .{ .name = "FMAKHR", .value = 6030, .parameters = &.{} },
.{ .name = "AtomicFloat32AddEXT", .value = 6033, .parameters = &.{} },
.{ .name = "AtomicFloat64AddEXT", .value = 6034, .parameters = &.{} },
.{ .name = "LongCompositesINTEL", .value = 6089, .parameters = &.{} },
@@ -1279,26 +1301,33 @@ pub const OperandKind = enum {
.{ .name = "BFloat16ConversionINTEL", .value = 6115, .parameters = &.{} },
.{ .name = "SplitBarrierINTEL", .value = 6141, .parameters = &.{} },
.{ .name = "ArithmeticFenceEXT", .value = 6144, .parameters = &.{} },
- .{ .name = "FPGAClusterAttributesV2INTEL", .value = 6150, .parameters = &.{} },
+ .{ .name = "FPGAClusterAttributesV2ALTERA", .value = 6150, .parameters = &.{} },
.{ .name = "FPGAKernelAttributesv2INTEL", .value = 6161, .parameters = &.{} },
- .{ .name = "TaskSequenceINTEL", .value = 6162, .parameters = &.{} },
+ .{ .name = "TaskSequenceALTERA", .value = 6162, .parameters = &.{} },
.{ .name = "FPMaxErrorINTEL", .value = 6169, .parameters = &.{} },
- .{ .name = "FPGALatencyControlINTEL", .value = 6171, .parameters = &.{} },
- .{ .name = "FPGAArgumentInterfacesINTEL", .value = 6174, .parameters = &.{} },
+ .{ .name = "FPGALatencyControlALTERA", .value = 6171, .parameters = &.{} },
+ .{ .name = "FPGAArgumentInterfacesALTERA", .value = 6174, .parameters = &.{} },
.{ .name = "GlobalVariableHostAccessINTEL", .value = 6187, .parameters = &.{} },
- .{ .name = "GlobalVariableFPGADecorationsINTEL", .value = 6189, .parameters = &.{} },
+ .{ .name = "GlobalVariableFPGADecorationsALTERA", .value = 6189, .parameters = &.{} },
.{ .name = "SubgroupBufferPrefetchINTEL", .value = 6220, .parameters = &.{} },
.{ .name = "Subgroup2DBlockIOINTEL", .value = 6228, .parameters = &.{} },
.{ .name = "Subgroup2DBlockTransformINTEL", .value = 6229, .parameters = &.{} },
.{ .name = "Subgroup2DBlockTransposeINTEL", .value = 6230, .parameters = &.{} },
.{ .name = "SubgroupMatrixMultiplyAccumulateINTEL", .value = 6236, .parameters = &.{} },
.{ .name = "TernaryBitwiseFunctionINTEL", .value = 6241, .parameters = &.{} },
+ .{ .name = "UntypedVariableLengthArrayINTEL", .value = 6243, .parameters = &.{} },
+ .{ .name = "SpecConditionalINTEL", .value = 6245, .parameters = &.{} },
+ .{ .name = "FunctionVariantsINTEL", .value = 6246, .parameters = &.{} },
.{ .name = "GroupUniformArithmeticKHR", .value = 6400, .parameters = &.{} },
.{ .name = "TensorFloat32RoundingINTEL", .value = 6425, .parameters = &.{} },
.{ .name = "MaskedGatherScatterINTEL", .value = 6427, .parameters = &.{} },
.{ .name = "CacheControlsINTEL", .value = 6441, .parameters = &.{} },
.{ .name = "RegisterLimitsINTEL", .value = 6460, .parameters = &.{} },
.{ .name = "BindlessImagesINTEL", .value = 6528, .parameters = &.{} },
+ .{ .name = "DotProductFloat16AccFloat32VALVE", .value = 6912, .parameters = &.{} },
+ .{ .name = "DotProductFloat16AccFloat16VALVE", .value = 6913, .parameters = &.{} },
+ .{ .name = "DotProductBFloat16AccVALVE", .value = 6914, .parameters = &.{} },
+ .{ .name = "DotProductFloat8AccFloat32VALVE", .value = 6915, .parameters = &.{} },
},
.ray_query_intersection => &.{
.{ .name = "RayQueryCandidateIntersectionKHR", .value = 0, .parameters = &.{} },
@@ -1352,8 +1381,8 @@ pub const OperandKind = enum {
.{ .name = "DecodeFunc", .value = 0x0002, .parameters = &.{.id_ref} },
},
.initialization_mode_qualifier => &.{
- .{ .name = "InitOnDeviceReprogramINTEL", .value = 0, .parameters = &.{} },
- .{ .name = "InitOnDeviceResetINTEL", .value = 1, .parameters = &.{} },
+ .{ .name = "InitOnDeviceReprogramALTERA", .value = 0, .parameters = &.{} },
+ .{ .name = "InitOnDeviceResetALTERA", .value = 1, .parameters = &.{} },
},
.load_cache_control => &.{
.{ .name = "UncachedINTEL", .value = 0, .parameters = &.{} },
@@ -1811,12 +1840,14 @@ pub const Opcode = enum(u16) {
OpUntypedInBoundsPtrAccessChainKHR = 4424,
OpUntypedArrayLengthKHR = 4425,
OpUntypedPrefetchKHR = 4426,
+ OpFmaKHR = 4427,
OpSubgroupAllKHR = 4428,
OpSubgroupAnyKHR = 4429,
OpSubgroupAllEqualKHR = 4430,
OpGroupNonUniformRotateKHR = 4431,
OpSubgroupReadInvocationKHR = 4432,
OpExtInstWithForwardRefsKHR = 4433,
+ OpUntypedGroupAsyncCopyKHR = 4434,
OpTraceRayKHR = 4445,
OpExecuteCallableKHR = 4446,
OpConvertUToAccelerationStructureKHR = 4447,
@@ -1847,10 +1878,14 @@ pub const Opcode = enum(u16) {
OpImageBoxFilterQCOM = 4481,
OpImageBlockMatchSSDQCOM = 4482,
OpImageBlockMatchSADQCOM = 4483,
+ OpBitCastArrayQCOM = 4497,
OpImageBlockMatchWindowSSDQCOM = 4500,
OpImageBlockMatchWindowSADQCOM = 4501,
OpImageBlockMatchGatherSSDQCOM = 4502,
OpImageBlockMatchGatherSADQCOM = 4503,
+ OpCompositeConstructCoopMatQCOM = 4540,
+ OpCompositeExtractCoopMatQCOM = 4541,
+ OpExtractSubArrayQCOM = 4542,
OpGroupIAddNonUniformAMD = 5000,
OpGroupFAddNonUniformAMD = 5001,
OpGroupFMinNonUniformAMD = 5002,
@@ -1872,6 +1907,16 @@ pub const Opcode = enum(u16) {
OpSpecConstantStringAMDX = 5104,
OpGroupNonUniformQuadAllKHR = 5110,
OpGroupNonUniformQuadAnyKHR = 5111,
+ OpTypeBufferEXT = 5115,
+ OpBufferPointerEXT = 5119,
+ OpAbortKHR = 5121,
+ OpUntypedImageTexelPointerEXT = 5126,
+ OpMemberDecorateIdEXT = 5127,
+ OpConstantSizeOfEXT = 5129,
+ OpConstantDataKHR = 5147,
+ OpSpecConstantDataKHR = 5148,
+ OpPoisonKHR = 5158,
+ OpFreezeKHR = 5159,
OpHitObjectRecordHitMotionNV = 5249,
OpHitObjectRecordHitWithIndexMotionNV = 5250,
OpHitObjectRecordMissMotionNV = 5251,
@@ -1906,7 +1951,7 @@ pub const Opcode = enum(u16) {
OpReorderThreadWithHintNV = 5280,
OpTypeHitObjectNV = 5281,
OpImageSampleFootprintNV = 5283,
- OpTypeCooperativeVectorNV = 5288,
+ OpTypeVectorIdEXT = 5288,
OpCooperativeVectorMatrixMulNV = 5289,
OpCooperativeVectorOuterProductAccumulateNV = 5290,
OpCooperativeVectorReduceSumAccumulateNV = 5291,
@@ -1914,12 +1959,42 @@ pub const Opcode = enum(u16) {
OpCooperativeMatrixConvertNV = 5293,
OpEmitMeshTasksEXT = 5294,
OpSetMeshOutputsEXT = 5295,
- OpGroupNonUniformPartitionNV = 5296,
+ OpGroupNonUniformPartitionEXT = 5296,
OpWritePackedPrimitiveIndices4x8NV = 5299,
OpFetchMicroTriangleVertexPositionNV = 5300,
OpFetchMicroTriangleVertexBarycentricNV = 5301,
OpCooperativeVectorLoadNV = 5302,
OpCooperativeVectorStoreNV = 5303,
+ OpHitObjectRecordFromQueryEXT = 5304,
+ OpHitObjectRecordMissEXT = 5305,
+ OpHitObjectRecordMissMotionEXT = 5306,
+ OpHitObjectGetIntersectionTriangleVertexPositionsEXT = 5307,
+ OpHitObjectGetRayFlagsEXT = 5308,
+ OpHitObjectSetShaderBindingTableRecordIndexEXT = 5309,
+ OpHitObjectReorderExecuteShaderEXT = 5310,
+ OpHitObjectTraceReorderExecuteEXT = 5311,
+ OpHitObjectTraceMotionReorderExecuteEXT = 5312,
+ OpTypeHitObjectEXT = 5313,
+ OpReorderThreadWithHintEXT = 5314,
+ OpReorderThreadWithHitObjectEXT = 5315,
+ OpHitObjectTraceRayEXT = 5316,
+ OpHitObjectTraceRayMotionEXT = 5317,
+ OpHitObjectRecordEmptyEXT = 5318,
+ OpHitObjectExecuteShaderEXT = 5319,
+ OpHitObjectGetCurrentTimeEXT = 5320,
+ OpHitObjectGetAttributesEXT = 5321,
+ OpHitObjectGetHitKindEXT = 5322,
+ OpHitObjectGetPrimitiveIndexEXT = 5323,
+ OpHitObjectGetGeometryIndexEXT = 5324,
+ OpHitObjectGetInstanceIdEXT = 5325,
+ OpHitObjectGetInstanceCustomIndexEXT = 5326,
+ OpHitObjectGetObjectRayOriginEXT = 5327,
+ OpHitObjectGetObjectRayDirectionEXT = 5328,
+ OpHitObjectGetWorldRayDirectionEXT = 5329,
+ OpHitObjectGetWorldRayOriginEXT = 5330,
+ OpHitObjectGetObjectToWorldEXT = 5331,
+ OpHitObjectGetWorldToObjectEXT = 5332,
+ OpHitObjectGetRayTMaxEXT = 5333,
OpReportIntersectionKHR = 5334,
OpIgnoreIntersectionNV = 5335,
OpTerminateRayNV = 5336,
@@ -1929,8 +2004,14 @@ pub const Opcode = enum(u16) {
OpRayQueryGetIntersectionTriangleVertexPositionsKHR = 5340,
OpTypeAccelerationStructureKHR = 5341,
OpExecuteCallableNV = 5344,
- OpRayQueryGetClusterIdNV = 5345,
+ OpRayQueryGetIntersectionClusterIdNV = 5345,
OpHitObjectGetClusterIdNV = 5346,
+ OpHitObjectGetRayTMinEXT = 5347,
+ OpHitObjectGetShaderBindingTableRecordIndexEXT = 5348,
+ OpHitObjectGetShaderRecordBufferHandleEXT = 5349,
+ OpHitObjectIsEmptyEXT = 5350,
+ OpHitObjectIsHitEXT = 5351,
+ OpHitObjectIsMissEXT = 5352,
OpTypeCooperativeMatrixNV = 5358,
OpCooperativeMatrixLoadNV = 5359,
OpCooperativeMatrixStoreNV = 5360,
@@ -2008,10 +2089,10 @@ pub const Opcode = enum(u16) {
OpExpectKHR = 5631,
OpDecorateString = 5632,
OpMemberDecorateString = 5633,
+ OpVariableLengthArrayINTEL = 5818,
+ OpSaveMemoryINTEL = 5819,
+ OpRestoreMemoryINTEL = 5820,
OpLoopControlINTEL = 5887,
- OpReadPipeBlockingINTEL = 5946,
- OpWritePipeBlockingINTEL = 5947,
- OpFPGARegINTEL = 5949,
OpRayQueryGetRayTMinKHR = 6016,
OpRayQueryGetRayFlagsKHR = 6017,
OpRayQueryGetIntersectionTKHR = 6018,
@@ -2040,11 +2121,6 @@ pub const Opcode = enum(u16) {
OpControlBarrierArriveINTEL = 6142,
OpControlBarrierWaitINTEL = 6143,
OpArithmeticFenceEXT = 6145,
- OpTaskSequenceCreateINTEL = 6163,
- OpTaskSequenceAsyncINTEL = 6164,
- OpTaskSequenceGetINTEL = 6165,
- OpTaskSequenceReleaseINTEL = 6166,
- OpTypeTaskSequenceINTEL = 6199,
OpSubgroupBlockPrefetchINTEL = 6221,
OpSubgroup2DBlockLoadINTEL = 6231,
OpSubgroup2DBlockLoadTransformINTEL = 6232,
@@ -2053,6 +2129,14 @@ pub const Opcode = enum(u16) {
OpSubgroup2DBlockStoreINTEL = 6235,
OpSubgroupMatrixMultiplyAccumulateINTEL = 6237,
OpBitwiseFunctionINTEL = 6242,
+ OpUntypedVariableLengthArrayINTEL = 6244,
+ OpConditionalExtensionINTEL = 6248,
+ OpConditionalEntryPointINTEL = 6249,
+ OpConditionalCapabilityINTEL = 6250,
+ OpSpecConstantTargetINTEL = 6251,
+ OpSpecConstantArchitectureINTEL = 6252,
+ OpSpecConstantCapabilitiesINTEL = 6253,
+ OpConditionalCopyObjectINTEL = 6254,
OpGroupIMulKHR = 6401,
OpGroupFMulKHR = 6402,
OpGroupBitwiseAndKHR = 6403,
@@ -2067,6 +2151,9 @@ pub const Opcode = enum(u16) {
OpConvertHandleToImageINTEL = 6529,
OpConvertHandleToSamplerINTEL = 6530,
OpConvertHandleToSampledImageINTEL = 6531,
+ OpFDot2MixAcc32VALVE = 6916,
+ OpFDot2MixAcc16VALVE = 6917,
+ OpFDot4MixAcc32VALVE = 6918,
pub fn Operands(comptime self: Opcode) type {
return switch (self) {
@@ -2380,7 +2467,7 @@ pub const Opcode = enum(u16) {
.OpGroupNonUniformAll => struct { id_result_type: Id, id_result: Id, execution: Id, predicate: Id },
.OpGroupNonUniformAny => struct { id_result_type: Id, id_result: Id, execution: Id, predicate: Id },
.OpGroupNonUniformAllEqual => struct { id_result_type: Id, id_result: Id, execution: Id, value: Id },
- .OpGroupNonUniformBroadcast => struct { id_result_type: Id, id_result: Id, execution: Id, value: Id, id: Id },
+ .OpGroupNonUniformBroadcast => struct { id_result_type: Id, id_result: Id, execution: Id, value: Id, invocation_id: Id },
.OpGroupNonUniformBroadcastFirst => struct { id_result_type: Id, id_result: Id, execution: Id, value: Id },
.OpGroupNonUniformBallot => struct { id_result_type: Id, id_result: Id, execution: Id, predicate: Id },
.OpGroupNonUniformInverseBallot => struct { id_result_type: Id, id_result: Id, execution: Id, value: Id },
@@ -2388,7 +2475,7 @@ pub const Opcode = enum(u16) {
.OpGroupNonUniformBallotBitCount => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, value: Id },
.OpGroupNonUniformBallotFindLSB => struct { id_result_type: Id, id_result: Id, execution: Id, value: Id },
.OpGroupNonUniformBallotFindMSB => struct { id_result_type: Id, id_result: Id, execution: Id, value: Id },
- .OpGroupNonUniformShuffle => struct { id_result_type: Id, id_result: Id, execution: Id, value: Id, id: Id },
+ .OpGroupNonUniformShuffle => struct { id_result_type: Id, id_result: Id, execution: Id, value: Id, invocation_id: Id },
.OpGroupNonUniformShuffleXor => struct { id_result_type: Id, id_result: Id, execution: Id, value: Id, mask: Id },
.OpGroupNonUniformShuffleUp => struct { id_result_type: Id, id_result: Id, execution: Id, value: Id, delta: Id },
.OpGroupNonUniformShuffleDown => struct { id_result_type: Id, id_result: Id, execution: Id, value: Id, delta: Id },
@@ -2439,12 +2526,14 @@ pub const Opcode = enum(u16) {
.OpUntypedInBoundsPtrAccessChainKHR => struct { id_result_type: Id, id_result: Id, base_type: Id, base: Id, element: Id, indexes: []const Id = &.{} },
.OpUntypedArrayLengthKHR => struct { id_result_type: Id, id_result: Id, structure: Id, pointer: Id, array_member: LiteralInteger },
.OpUntypedPrefetchKHR => struct { pointer_type: Id, num_bytes: Id, rw: ?Id = null, locality: ?Id = null, cache_type: ?Id = null },
+ .OpFmaKHR => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id, operand_3: Id },
.OpSubgroupAllKHR => struct { id_result_type: Id, id_result: Id, predicate: Id },
.OpSubgroupAnyKHR => struct { id_result_type: Id, id_result: Id, predicate: Id },
.OpSubgroupAllEqualKHR => struct { id_result_type: Id, id_result: Id, predicate: Id },
.OpGroupNonUniformRotateKHR => struct { id_result_type: Id, id_result: Id, execution: Id, value: Id, delta: Id, cluster_size: ?Id = null },
.OpSubgroupReadInvocationKHR => struct { id_result_type: Id, id_result: Id, value: Id, index: Id },
.OpExtInstWithForwardRefsKHR => struct { id_result_type: Id, id_result: Id, set: Id, instruction: LiteralExtInstInteger, id_ref_4: []const Id = &.{} },
+ .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 },
.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 },
.OpExecuteCallableKHR => struct { sbt_index: Id, callable_data: Id },
.OpConvertUToAccelerationStructureKHR => struct { id_result_type: Id, id_result: Id, accel: Id },
@@ -2475,10 +2564,14 @@ pub const Opcode = enum(u16) {
.OpImageBoxFilterQCOM => struct { id_result_type: Id, id_result: Id, texture: Id, coordinates: Id, box_size: Id },
.OpImageBlockMatchSSDQCOM => struct { id_result_type: Id, id_result: Id, target: Id, target_coordinates: Id, reference: Id, reference_coordinates: Id, block_size: Id },
.OpImageBlockMatchSADQCOM => struct { id_result_type: Id, id_result: Id, target: Id, target_coordinates: Id, reference: Id, reference_coordinates: Id, block_size: Id },
+ .OpBitCastArrayQCOM => struct { id_result_type: Id, id_result: Id, source_array: Id },
.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 },
.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 },
.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 },
.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 },
+ .OpCompositeConstructCoopMatQCOM => struct { id_result_type: Id, id_result: Id, source_array: Id },
+ .OpCompositeExtractCoopMatQCOM => struct { id_result_type: Id, id_result: Id, source_cooperative_matrix: Id },
+ .OpExtractSubArrayQCOM => struct { id_result_type: Id, id_result: Id, source_array: Id, index: Id },
.OpGroupIAddNonUniformAMD => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
.OpGroupFAddNonUniformAMD => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
.OpGroupFMinNonUniformAMD => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
@@ -2500,6 +2593,16 @@ pub const Opcode = enum(u16) {
.OpSpecConstantStringAMDX => struct { id_result: Id, literal_string: LiteralString },
.OpGroupNonUniformQuadAllKHR => struct { id_result_type: Id, id_result: Id, predicate: Id },
.OpGroupNonUniformQuadAnyKHR => struct { id_result_type: Id, id_result: Id, predicate: Id },
+ .OpTypeBufferEXT => struct { id_result: Id, storage_class: StorageClass },
+ .OpBufferPointerEXT => struct { id_result_type: Id, id_result: Id, buffer: Id },
+ .OpAbortKHR => struct { message_type: Id, message: Id },
+ .OpUntypedImageTexelPointerEXT => struct { id_result_type: Id, id_result: Id, image_type: Id, image: Id, coordinate: Id, sample: Id },
+ .OpMemberDecorateIdEXT => struct { structure_type: Id, member: LiteralInteger, decoration: Decoration.Extended },
+ .OpConstantSizeOfEXT => struct { id_result_type: Id, id_result: Id, type: Id },
+ .OpConstantDataKHR => struct { id_result_type: Id, id_result: Id, data: []const LiteralInteger = &.{} },
+ .OpSpecConstantDataKHR => struct { id_result_type: Id, id_result: Id, data: []const LiteralInteger = &.{} },
+ .OpPoisonKHR => struct { id_result_type: Id, id_result: Id },
+ .OpFreezeKHR => struct { id_result_type: Id, id_result: Id, value: Id },
.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 },
.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 },
.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) {
.OpReorderThreadWithHintNV => struct { hint: Id, bits: Id },
.OpTypeHitObjectNV => struct { id_result: Id },
.OpImageSampleFootprintNV => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, granularity: Id, coarse: Id, image_operands: ?ImageOperands.Extended = null },
- .OpTypeCooperativeVectorNV => struct { id_result: Id, component_type: Id, component_count: Id },
+ .OpTypeVectorIdEXT => struct { id_result: Id, component_type: Id, component_count: Id },
.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 },
.OpCooperativeVectorOuterProductAccumulateNV => struct { pointer: Id, offset: Id, a: Id, b: Id, memory_layout: Id, matrix_interpretation: Id, matrix_stride: ?Id = null },
.OpCooperativeVectorReduceSumAccumulateNV => struct { pointer: Id, offset: Id, v: Id },
@@ -2542,12 +2645,42 @@ pub const Opcode = enum(u16) {
.OpCooperativeMatrixConvertNV => struct { id_result_type: Id, id_result: Id, matrix: Id },
.OpEmitMeshTasksEXT => struct { group_count_x: Id, group_count_y: Id, group_count_z: Id, payload: ?Id = null },
.OpSetMeshOutputsEXT => struct { vertex_count: Id, primitive_count: Id },
- .OpGroupNonUniformPartitionNV => struct { id_result_type: Id, id_result: Id, value: Id },
+ .OpGroupNonUniformPartitionEXT => struct { id_result_type: Id, id_result: Id, value: Id },
.OpWritePackedPrimitiveIndices4x8NV => struct { index_offset: Id, packed_indices: Id },
.OpFetchMicroTriangleVertexPositionNV => struct { id_result_type: Id, id_result: Id, accel: Id, instance_id: Id, geometry_index: Id, primitive_index: Id, barycentric: Id },
.OpFetchMicroTriangleVertexBarycentricNV => struct { id_result_type: Id, id_result: Id, accel: Id, instance_id: Id, geometry_index: Id, primitive_index: Id, barycentric: Id },
.OpCooperativeVectorLoadNV => struct { id_result_type: Id, id_result: Id, pointer: Id, offset: Id, memory_access: ?MemoryAccess.Extended = null },
.OpCooperativeVectorStoreNV => struct { pointer: Id, offset: Id, object: Id, memory_access: ?MemoryAccess.Extended = null },
+ .OpHitObjectRecordFromQueryEXT => struct { hit_object: Id, ray_query: Id, sbt_record_index: Id, hit_object_attributes: Id },
+ .OpHitObjectRecordMissEXT => struct { hit_object: Id, ray_flags: Id, miss_index: Id, ray_origin: Id, ray_tmin: Id, ray_direction: Id, ray_tmax: Id },
+ .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 },
+ .OpHitObjectGetIntersectionTriangleVertexPositionsEXT => struct { id_result_type: Id, id_result: Id, hit_object: Id },
+ .OpHitObjectGetRayFlagsEXT => struct { id_result_type: Id, id_result: Id, hit_object: Id },
+ .OpHitObjectSetShaderBindingTableRecordIndexEXT => struct { hit_object: Id, sbt_record_index: Id },
+ .OpHitObjectReorderExecuteShaderEXT => struct { hit_object: Id, payload: Id, hint: ?Id = null, bits: ?Id = null },
+ .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 },
+ .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 },
+ .OpTypeHitObjectEXT => struct { id_result: Id },
+ .OpReorderThreadWithHintEXT => struct { hint: Id, bits: Id },
+ .OpReorderThreadWithHitObjectEXT => struct { hit_object: Id, hint: ?Id = null, bits: ?Id = null },
+ .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 },
+ .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 },
+ .OpHitObjectRecordEmptyEXT => struct { hit_object: Id },
+ .OpHitObjectExecuteShaderEXT => struct { hit_object: Id, payload: Id },
+ .OpHitObjectGetCurrentTimeEXT => struct { id_result_type: Id, id_result: Id, hit_object: Id },
+ .OpHitObjectGetAttributesEXT => struct { hit_object: Id, hit_object_attribute: Id },
+ .OpHitObjectGetHitKindEXT => struct { id_result_type: Id, id_result: Id, hit_object: Id },
+ .OpHitObjectGetPrimitiveIndexEXT => struct { id_result_type: Id, id_result: Id, hit_object: Id },
+ .OpHitObjectGetGeometryIndexEXT => struct { id_result_type: Id, id_result: Id, hit_object: Id },
+ .OpHitObjectGetInstanceIdEXT => struct { id_result_type: Id, id_result: Id, hit_object: Id },
+ .OpHitObjectGetInstanceCustomIndexEXT => struct { id_result_type: Id, id_result: Id, hit_object: Id },
+ .OpHitObjectGetObjectRayOriginEXT => struct { id_result_type: Id, id_result: Id, hit_object: Id },
+ .OpHitObjectGetObjectRayDirectionEXT => struct { id_result_type: Id, id_result: Id, hit_object: Id },
+ .OpHitObjectGetWorldRayDirectionEXT => struct { id_result_type: Id, id_result: Id, hit_object: Id },
+ .OpHitObjectGetWorldRayOriginEXT => struct { id_result_type: Id, id_result: Id, hit_object: Id },
+ .OpHitObjectGetObjectToWorldEXT => struct { id_result_type: Id, id_result: Id, hit_object: Id },
+ .OpHitObjectGetWorldToObjectEXT => struct { id_result_type: Id, id_result: Id, hit_object: Id },
+ .OpHitObjectGetRayTMaxEXT => struct { id_result_type: Id, id_result: Id, hit_object: Id },
.OpReportIntersectionKHR => struct { id_result_type: Id, id_result: Id, hit: Id, hit_kind: Id },
.OpIgnoreIntersectionNV => void,
.OpTerminateRayNV => void,
@@ -2557,8 +2690,14 @@ pub const Opcode = enum(u16) {
.OpRayQueryGetIntersectionTriangleVertexPositionsKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id },
.OpTypeAccelerationStructureKHR => struct { id_result: Id },
.OpExecuteCallableNV => struct { sbt_index: Id, callable_data_id: Id },
- .OpRayQueryGetClusterIdNV => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id },
+ .OpRayQueryGetIntersectionClusterIdNV => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id },
.OpHitObjectGetClusterIdNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
+ .OpHitObjectGetRayTMinEXT => struct { id_result_type: Id, id_result: Id, hit_object: Id },
+ .OpHitObjectGetShaderBindingTableRecordIndexEXT => struct { id_result_type: Id, id_result: Id, hit_object: Id },
+ .OpHitObjectGetShaderRecordBufferHandleEXT => struct { id_result_type: Id, id_result: Id, hit_object: Id },
+ .OpHitObjectIsEmptyEXT => struct { id_result_type: Id, id_result: Id, hit_object: Id },
+ .OpHitObjectIsHitEXT => struct { id_result_type: Id, id_result: Id, hit_object: Id },
+ .OpHitObjectIsMissEXT => struct { id_result_type: Id, id_result: Id, hit_object: Id },
.OpTypeCooperativeMatrixNV => struct { id_result: Id, component_type: Id, execution: Id, rows: Id, columns: Id },
.OpCooperativeMatrixLoadNV => struct { id_result_type: Id, id_result: Id, pointer: Id, stride: Id, column_major: Id, memory_access: ?MemoryAccess.Extended = null },
.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) {
.OpExpectKHR => struct { id_result_type: Id, id_result: Id, value: Id, expected_value: Id },
.OpDecorateString => struct { target: Id, decoration: Decoration.Extended },
.OpMemberDecorateString => struct { struct_type: Id, member: LiteralInteger, decoration: Decoration.Extended },
+ .OpVariableLengthArrayINTEL => struct { id_result_type: Id, id_result: Id, length: Id },
+ .OpSaveMemoryINTEL => struct { id_result_type: Id, id_result: Id },
+ .OpRestoreMemoryINTEL => struct { ptr: Id },
.OpLoopControlINTEL => struct { loop_control_parameters: []const LiteralInteger = &.{} },
- .OpReadPipeBlockingINTEL => struct { id_result_type: Id, id_result: Id, packet_size: Id, packet_alignment: Id },
- .OpWritePipeBlockingINTEL => struct { id_result_type: Id, id_result: Id, packet_size: Id, packet_alignment: Id },
- .OpFPGARegINTEL => struct { id_result_type: Id, id_result: Id, input: Id },
.OpRayQueryGetRayTMinKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id },
.OpRayQueryGetRayFlagsKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id },
.OpRayQueryGetIntersectionTKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id },
@@ -2668,11 +2807,6 @@ pub const Opcode = enum(u16) {
.OpControlBarrierArriveINTEL => struct { execution: Id, memory: Id, semantics: Id },
.OpControlBarrierWaitINTEL => struct { execution: Id, memory: Id, semantics: Id },
.OpArithmeticFenceEXT => struct { id_result_type: Id, id_result: Id, target: Id },
- .OpTaskSequenceCreateINTEL => struct { id_result_type: Id, id_result: Id, function: Id, pipelined: LiteralInteger, use_stall_enable_clusters: LiteralInteger, get_capacity: LiteralInteger, async_capacity: LiteralInteger },
- .OpTaskSequenceAsyncINTEL => struct { sequence: Id, arguments: []const Id = &.{} },
- .OpTaskSequenceGetINTEL => struct { id_result_type: Id, id_result: Id, sequence: Id },
- .OpTaskSequenceReleaseINTEL => struct { sequence: Id },
- .OpTypeTaskSequenceINTEL => struct { id_result: Id },
.OpSubgroupBlockPrefetchINTEL => struct { ptr: Id, num_bytes: Id, memory_access: ?MemoryAccess.Extended = null },
.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 },
.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) {
.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 },
.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 },
.OpBitwiseFunctionINTEL => struct { id_result_type: Id, id_result: Id, a: Id, b: Id, c: Id, lut_index: Id },
+ .OpUntypedVariableLengthArrayINTEL => struct { id_result_type: Id, id_result: Id, element_type: Id, length: Id },
+ .OpConditionalExtensionINTEL => struct { condition: Id, name: LiteralString },
+ .OpConditionalEntryPointINTEL => struct { condition: Id, execution_model: ExecutionModel, entry_point: Id, name: LiteralString, interface: []const Id = &.{} },
+ .OpConditionalCapabilityINTEL => struct { condition: Id, capability: Capability },
+ .OpSpecConstantTargetINTEL => struct { id_result_type: Id, id_result: Id, target: LiteralInteger, features: []const LiteralInteger = &.{} },
+ .OpSpecConstantArchitectureINTEL => struct { id_result_type: Id, id_result: Id, category: LiteralInteger, family: LiteralInteger, opcode: LiteralInteger, architecture: LiteralInteger },
+ .OpSpecConstantCapabilitiesINTEL => struct { id_result_type: Id, id_result: Id, capabilities: []const Capability = &.{} },
+ .OpConditionalCopyObjectINTEL => struct { id_result_type: Id, id_result: Id, id_ref: []const Id = &.{} },
.OpGroupIMulKHR => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
.OpGroupFMulKHR => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
.OpGroupBitwiseAndKHR => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
@@ -2695,6 +2837,9 @@ pub const Opcode = enum(u16) {
.OpConvertHandleToImageINTEL => struct { id_result_type: Id, id_result: Id, operand: Id },
.OpConvertHandleToSamplerINTEL => struct { id_result_type: Id, id_result: Id, operand: Id },
.OpConvertHandleToSampledImageINTEL => struct { id_result_type: Id, id_result: Id, operand: Id },
+ .OpFDot2MixAcc32VALVE => struct { id_result_type: Id, id_result: Id, vector_1: Id, vector_2: Id, accumulator: Id },
+ .OpFDot2MixAcc16VALVE => struct { id_result_type: Id, id_result: Id, vector_1: Id, vector_2: Id, accumulator: Id },
+ .OpFDot4MixAcc32VALVE => struct { id_result_type: Id, id_result: Id, vector_1: Id, vector_2: Id, accumulator: Id },
};
}
pub fn class(self: Opcode) Class {
@@ -3068,12 +3213,14 @@ pub const Opcode = enum(u16) {
.OpUntypedInBoundsPtrAccessChainKHR => .memory,
.OpUntypedArrayLengthKHR => .memory,
.OpUntypedPrefetchKHR => .memory,
+ .OpFmaKHR => .arithmetic,
.OpSubgroupAllKHR => .group,
.OpSubgroupAnyKHR => .group,
.OpSubgroupAllEqualKHR => .group,
.OpGroupNonUniformRotateKHR => .group,
.OpSubgroupReadInvocationKHR => .group,
.OpExtInstWithForwardRefsKHR => .extension,
+ .OpUntypedGroupAsyncCopyKHR => .group,
.OpTraceRayKHR => .reserved,
.OpExecuteCallableKHR => .reserved,
.OpConvertUToAccelerationStructureKHR => .reserved,
@@ -3104,10 +3251,14 @@ pub const Opcode = enum(u16) {
.OpImageBoxFilterQCOM => .image,
.OpImageBlockMatchSSDQCOM => .image,
.OpImageBlockMatchSADQCOM => .image,
+ .OpBitCastArrayQCOM => .conversion,
.OpImageBlockMatchWindowSSDQCOM => .image,
.OpImageBlockMatchWindowSADQCOM => .image,
.OpImageBlockMatchGatherSSDQCOM => .image,
.OpImageBlockMatchGatherSADQCOM => .image,
+ .OpCompositeConstructCoopMatQCOM => .composite,
+ .OpCompositeExtractCoopMatQCOM => .composite,
+ .OpExtractSubArrayQCOM => .composite,
.OpGroupIAddNonUniformAMD => .group,
.OpGroupFAddNonUniformAMD => .group,
.OpGroupFMinNonUniformAMD => .group,
@@ -3129,6 +3280,16 @@ pub const Opcode = enum(u16) {
.OpSpecConstantStringAMDX => .reserved,
.OpGroupNonUniformQuadAllKHR => .non_uniform,
.OpGroupNonUniformQuadAnyKHR => .non_uniform,
+ .OpTypeBufferEXT => .type_declaration,
+ .OpBufferPointerEXT => .memory,
+ .OpAbortKHR => .control_flow,
+ .OpUntypedImageTexelPointerEXT => .memory,
+ .OpMemberDecorateIdEXT => .annotation,
+ .OpConstantSizeOfEXT => .constant_creation,
+ .OpConstantDataKHR => .constant_creation,
+ .OpSpecConstantDataKHR => .constant_creation,
+ .OpPoisonKHR => .miscellaneous,
+ .OpFreezeKHR => .miscellaneous,
.OpHitObjectRecordHitMotionNV => .reserved,
.OpHitObjectRecordHitWithIndexMotionNV => .reserved,
.OpHitObjectRecordMissMotionNV => .reserved,
@@ -3163,7 +3324,7 @@ pub const Opcode = enum(u16) {
.OpReorderThreadWithHintNV => .reserved,
.OpTypeHitObjectNV => .type_declaration,
.OpImageSampleFootprintNV => .image,
- .OpTypeCooperativeVectorNV => .type_declaration,
+ .OpTypeVectorIdEXT => .type_declaration,
.OpCooperativeVectorMatrixMulNV => .reserved,
.OpCooperativeVectorOuterProductAccumulateNV => .reserved,
.OpCooperativeVectorReduceSumAccumulateNV => .reserved,
@@ -3171,12 +3332,42 @@ pub const Opcode = enum(u16) {
.OpCooperativeMatrixConvertNV => .conversion,
.OpEmitMeshTasksEXT => .reserved,
.OpSetMeshOutputsEXT => .reserved,
- .OpGroupNonUniformPartitionNV => .non_uniform,
+ .OpGroupNonUniformPartitionEXT => .non_uniform,
.OpWritePackedPrimitiveIndices4x8NV => .reserved,
.OpFetchMicroTriangleVertexPositionNV => .reserved,
.OpFetchMicroTriangleVertexBarycentricNV => .reserved,
.OpCooperativeVectorLoadNV => .memory,
.OpCooperativeVectorStoreNV => .memory,
+ .OpHitObjectRecordFromQueryEXT => .reserved,
+ .OpHitObjectRecordMissEXT => .reserved,
+ .OpHitObjectRecordMissMotionEXT => .reserved,
+ .OpHitObjectGetIntersectionTriangleVertexPositionsEXT => .reserved,
+ .OpHitObjectGetRayFlagsEXT => .reserved,
+ .OpHitObjectSetShaderBindingTableRecordIndexEXT => .reserved,
+ .OpHitObjectReorderExecuteShaderEXT => .reserved,
+ .OpHitObjectTraceReorderExecuteEXT => .reserved,
+ .OpHitObjectTraceMotionReorderExecuteEXT => .reserved,
+ .OpTypeHitObjectEXT => .type_declaration,
+ .OpReorderThreadWithHintEXT => .reserved,
+ .OpReorderThreadWithHitObjectEXT => .reserved,
+ .OpHitObjectTraceRayEXT => .reserved,
+ .OpHitObjectTraceRayMotionEXT => .reserved,
+ .OpHitObjectRecordEmptyEXT => .reserved,
+ .OpHitObjectExecuteShaderEXT => .reserved,
+ .OpHitObjectGetCurrentTimeEXT => .reserved,
+ .OpHitObjectGetAttributesEXT => .reserved,
+ .OpHitObjectGetHitKindEXT => .reserved,
+ .OpHitObjectGetPrimitiveIndexEXT => .reserved,
+ .OpHitObjectGetGeometryIndexEXT => .reserved,
+ .OpHitObjectGetInstanceIdEXT => .reserved,
+ .OpHitObjectGetInstanceCustomIndexEXT => .reserved,
+ .OpHitObjectGetObjectRayOriginEXT => .reserved,
+ .OpHitObjectGetObjectRayDirectionEXT => .reserved,
+ .OpHitObjectGetWorldRayDirectionEXT => .reserved,
+ .OpHitObjectGetWorldRayOriginEXT => .reserved,
+ .OpHitObjectGetObjectToWorldEXT => .reserved,
+ .OpHitObjectGetWorldToObjectEXT => .reserved,
+ .OpHitObjectGetRayTMaxEXT => .reserved,
.OpReportIntersectionKHR => .reserved,
.OpIgnoreIntersectionNV => .reserved,
.OpTerminateRayNV => .reserved,
@@ -3186,8 +3377,14 @@ pub const Opcode = enum(u16) {
.OpRayQueryGetIntersectionTriangleVertexPositionsKHR => .reserved,
.OpTypeAccelerationStructureKHR => .type_declaration,
.OpExecuteCallableNV => .reserved,
- .OpRayQueryGetClusterIdNV => .reserved,
+ .OpRayQueryGetIntersectionClusterIdNV => .reserved,
.OpHitObjectGetClusterIdNV => .reserved,
+ .OpHitObjectGetRayTMinEXT => .reserved,
+ .OpHitObjectGetShaderBindingTableRecordIndexEXT => .reserved,
+ .OpHitObjectGetShaderRecordBufferHandleEXT => .reserved,
+ .OpHitObjectIsEmptyEXT => .reserved,
+ .OpHitObjectIsHitEXT => .reserved,
+ .OpHitObjectIsMissEXT => .reserved,
.OpTypeCooperativeMatrixNV => .type_declaration,
.OpCooperativeMatrixLoadNV => .reserved,
.OpCooperativeMatrixStoreNV => .reserved,
@@ -3265,10 +3462,10 @@ pub const Opcode = enum(u16) {
.OpExpectKHR => .miscellaneous,
.OpDecorateString => .annotation,
.OpMemberDecorateString => .annotation,
+ .OpVariableLengthArrayINTEL => .memory,
+ .OpSaveMemoryINTEL => .memory,
+ .OpRestoreMemoryINTEL => .memory,
.OpLoopControlINTEL => .reserved,
- .OpReadPipeBlockingINTEL => .pipe,
- .OpWritePipeBlockingINTEL => .pipe,
- .OpFPGARegINTEL => .reserved,
.OpRayQueryGetRayTMinKHR => .reserved,
.OpRayQueryGetRayFlagsKHR => .reserved,
.OpRayQueryGetIntersectionTKHR => .reserved,
@@ -3297,11 +3494,6 @@ pub const Opcode = enum(u16) {
.OpControlBarrierArriveINTEL => .barrier,
.OpControlBarrierWaitINTEL => .barrier,
.OpArithmeticFenceEXT => .miscellaneous,
- .OpTaskSequenceCreateINTEL => .reserved,
- .OpTaskSequenceAsyncINTEL => .reserved,
- .OpTaskSequenceGetINTEL => .reserved,
- .OpTaskSequenceReleaseINTEL => .reserved,
- .OpTypeTaskSequenceINTEL => .type_declaration,
.OpSubgroupBlockPrefetchINTEL => .group,
.OpSubgroup2DBlockLoadINTEL => .group,
.OpSubgroup2DBlockLoadTransformINTEL => .group,
@@ -3310,6 +3502,14 @@ pub const Opcode = enum(u16) {
.OpSubgroup2DBlockStoreINTEL => .group,
.OpSubgroupMatrixMultiplyAccumulateINTEL => .group,
.OpBitwiseFunctionINTEL => .bit,
+ .OpUntypedVariableLengthArrayINTEL => .memory,
+ .OpConditionalExtensionINTEL => .extension,
+ .OpConditionalEntryPointINTEL => .mode_setting,
+ .OpConditionalCapabilityINTEL => .mode_setting,
+ .OpSpecConstantTargetINTEL => .constant_creation,
+ .OpSpecConstantArchitectureINTEL => .constant_creation,
+ .OpSpecConstantCapabilitiesINTEL => .constant_creation,
+ .OpConditionalCopyObjectINTEL => .composite,
.OpGroupIMulKHR => .group,
.OpGroupFMulKHR => .group,
.OpGroupBitwiseAndKHR => .group,
@@ -3324,94 +3524,13 @@ pub const Opcode = enum(u16) {
.OpConvertHandleToImageINTEL => .image,
.OpConvertHandleToSamplerINTEL => .image,
.OpConvertHandleToSampledImageINTEL => .image,
+ .OpFDot2MixAcc32VALVE => .reserved,
+ .OpFDot2MixAcc16VALVE => .reserved,
+ .OpFDot4MixAcc32VALVE => .reserved,
};
}
};
-pub const GlslOpcode = enum(u16) {
- Round = 1,
- RoundEven = 2,
- Trunc = 3,
- FAbs = 4,
- SAbs = 5,
- FSign = 6,
- SSign = 7,
- Floor = 8,
- Ceil = 9,
- Fract = 10,
- Radians = 11,
- Degrees = 12,
- Sin = 13,
- Cos = 14,
- Tan = 15,
- Asin = 16,
- Acos = 17,
- Atan = 18,
- Sinh = 19,
- Cosh = 20,
- Tanh = 21,
- Asinh = 22,
- Acosh = 23,
- Atanh = 24,
- Atan2 = 25,
- Pow = 26,
- Exp = 27,
- Log = 28,
- Exp2 = 29,
- Log2 = 30,
- Sqrt = 31,
- InverseSqrt = 32,
- Determinant = 33,
- MatrixInverse = 34,
- Modf = 35,
- ModfStruct = 36,
- FMin = 37,
- UMin = 38,
- SMin = 39,
- FMax = 40,
- UMax = 41,
- SMax = 42,
- FClamp = 43,
- UClamp = 44,
- SClamp = 45,
- FMix = 46,
- IMix = 47,
- Step = 48,
- SmoothStep = 49,
- Fma = 50,
- Frexp = 51,
- FrexpStruct = 52,
- Ldexp = 53,
- PackSnorm4x8 = 54,
- PackUnorm4x8 = 55,
- PackSnorm2x16 = 56,
- PackUnorm2x16 = 57,
- PackHalf2x16 = 58,
- PackDouble2x32 = 59,
- UnpackSnorm2x16 = 60,
- UnpackUnorm2x16 = 61,
- UnpackHalf2x16 = 62,
- UnpackSnorm4x8 = 63,
- UnpackUnorm4x8 = 64,
- UnpackDouble2x32 = 65,
- Length = 66,
- Distance = 67,
- Cross = 68,
- Normalize = 69,
- FaceForward = 70,
- Reflect = 71,
- Refract = 72,
- FindILsb = 73,
- FindSMsb = 74,
- FindUMsb = 75,
- InterpolateAtCentroid = 76,
- InterpolateAtSample = 77,
- InterpolateAtOffset = 78,
- NMin = 79,
- NMax = 80,
- NClamp = 81,
-};
-
pub const OpenClOpcode = enum(u16) {
acos = 0,
acosh = 1,
@@ -3577,6 +3696,90 @@ pub const OpenClOpcode = enum(u16) {
u_mad_hi = 204,
};
+pub const GlslOpcode = enum(u16) {
+ Round = 1,
+ RoundEven = 2,
+ Trunc = 3,
+ FAbs = 4,
+ SAbs = 5,
+ FSign = 6,
+ SSign = 7,
+ Floor = 8,
+ Ceil = 9,
+ Fract = 10,
+ Radians = 11,
+ Degrees = 12,
+ Sin = 13,
+ Cos = 14,
+ Tan = 15,
+ Asin = 16,
+ Acos = 17,
+ Atan = 18,
+ Sinh = 19,
+ Cosh = 20,
+ Tanh = 21,
+ Asinh = 22,
+ Acosh = 23,
+ Atanh = 24,
+ Atan2 = 25,
+ Pow = 26,
+ Exp = 27,
+ Log = 28,
+ Exp2 = 29,
+ Log2 = 30,
+ Sqrt = 31,
+ InverseSqrt = 32,
+ Determinant = 33,
+ MatrixInverse = 34,
+ Modf = 35,
+ ModfStruct = 36,
+ FMin = 37,
+ UMin = 38,
+ SMin = 39,
+ FMax = 40,
+ UMax = 41,
+ SMax = 42,
+ FClamp = 43,
+ UClamp = 44,
+ SClamp = 45,
+ FMix = 46,
+ IMix = 47,
+ Step = 48,
+ SmoothStep = 49,
+ Fma = 50,
+ Frexp = 51,
+ FrexpStruct = 52,
+ Ldexp = 53,
+ PackSnorm4x8 = 54,
+ PackUnorm4x8 = 55,
+ PackSnorm2x16 = 56,
+ PackUnorm2x16 = 57,
+ PackHalf2x16 = 58,
+ PackDouble2x32 = 59,
+ UnpackSnorm2x16 = 60,
+ UnpackUnorm2x16 = 61,
+ UnpackHalf2x16 = 62,
+ UnpackSnorm4x8 = 63,
+ UnpackUnorm4x8 = 64,
+ UnpackDouble2x32 = 65,
+ Length = 66,
+ Distance = 67,
+ Cross = 68,
+ Normalize = 69,
+ FaceForward = 70,
+ Reflect = 71,
+ Refract = 72,
+ FindILsb = 73,
+ FindSMsb = 74,
+ FindUMsb = 75,
+ InterpolateAtCentroid = 76,
+ InterpolateAtSample = 77,
+ InterpolateAtOffset = 78,
+ NMin = 79,
+ NMax = 80,
+ NClamp = 81,
+};
+
pub const Zig = enum(u16) {
InvocationGlobal = 0,
};
@@ -3734,16 +3937,16 @@ pub const LoopControl = packed struct {
_reserved_bit_13: bool = false,
_reserved_bit_14: bool = false,
_reserved_bit_15: bool = false,
- initiation_interval_intel: bool = false,
- max_concurrency_intel: bool = false,
- dependency_array_intel: bool = false,
- pipeline_enable_intel: bool = false,
- loop_coalesce_intel: bool = false,
- max_interleaving_intel: bool = false,
- speculated_iterations_intel: bool = false,
- no_fusion_intel: bool = false,
- loop_count_intel: bool = false,
- max_reinvocation_delay_intel: bool = false,
+ initiation_interval_altera: bool = false,
+ max_concurrency_altera: bool = false,
+ dependency_array_altera: bool = false,
+ pipeline_enable_altera: bool = false,
+ loop_coalesce_altera: bool = false,
+ max_interleaving_altera: bool = false,
+ speculated_iterations_altera: bool = false,
+ no_fusion_altera: bool = false,
+ loop_count_altera: bool = false,
+ max_reinvocation_delay_altera: bool = false,
_reserved_bit_26: bool = false,
_reserved_bit_27: bool = false,
_reserved_bit_28: bool = false,
@@ -3768,16 +3971,16 @@ pub const LoopControl = packed struct {
_reserved_bit_13: bool = false,
_reserved_bit_14: bool = false,
_reserved_bit_15: bool = false,
- initiation_interval_intel: ?struct { literal_integer: LiteralInteger } = null,
- max_concurrency_intel: ?struct { literal_integer: LiteralInteger } = null,
- dependency_array_intel: ?struct { literal_integer: LiteralInteger } = null,
- pipeline_enable_intel: ?struct { literal_integer: LiteralInteger } = null,
- loop_coalesce_intel: ?struct { literal_integer: LiteralInteger } = null,
- max_interleaving_intel: ?struct { literal_integer: LiteralInteger } = null,
- speculated_iterations_intel: ?struct { literal_integer: LiteralInteger } = null,
- no_fusion_intel: bool = false,
- loop_count_intel: ?struct { literal_integer: LiteralInteger } = null,
- max_reinvocation_delay_intel: ?struct { literal_integer: LiteralInteger } = null,
+ initiation_interval_altera: ?struct { literal_integer: LiteralInteger } = null,
+ max_concurrency_altera: ?struct { literal_integer: LiteralInteger } = null,
+ dependency_array_altera: ?struct { literal_integer: LiteralInteger } = null,
+ pipeline_enable_altera: ?struct { literal_integer: LiteralInteger } = null,
+ loop_coalesce_altera: ?struct { literal_integer: LiteralInteger } = null,
+ max_interleaving_altera: ?struct { literal_integer: LiteralInteger } = null,
+ speculated_iterations_altera: ?struct { literal_integer: LiteralInteger } = null,
+ no_fusion_altera: bool = false,
+ loop_count_altera: ?struct { literal_integer: LiteralInteger } = null,
+ max_reinvocation_delay_altera: ?struct { literal_integer: LiteralInteger } = null,
_reserved_bit_26: bool = false,
_reserved_bit_27: bool = false,
_reserved_bit_28: bool = false,
@@ -4174,6 +4377,7 @@ pub const ExecutionMode = enum(u32) {
quad_derivatives_khr = 5088,
require_full_quads_khr = 5089,
shares_input_with_amdx = 5102,
+ arithmetic_poison_khr = 5157,
output_lines_ext = 5269,
output_primitives_ext = 5270,
derivative_group_quads_khr = 5289,
@@ -4185,6 +4389,7 @@ pub const ExecutionMode = enum(u32) {
sample_interlock_unordered_ext = 5369,
shading_rate_interlock_ordered_ext = 5370,
shading_rate_interlock_unordered_ext = 5371,
+ shader64bit_indexing_ext = 5427,
shared_local_memory_size_intel = 5618,
rounding_mode_rtpintel = 5620,
rounding_mode_rtnintel = 5621,
@@ -4272,6 +4477,7 @@ pub const ExecutionMode = enum(u32) {
quad_derivatives_khr,
require_full_quads_khr,
shares_input_with_amdx: struct { node_name: Id, shader_index: Id },
+ arithmetic_poison_khr,
output_lines_ext,
output_primitives_ext: struct { primitive_count: LiteralInteger },
derivative_group_quads_khr,
@@ -4283,6 +4489,7 @@ pub const ExecutionMode = enum(u32) {
sample_interlock_unordered_ext,
shading_rate_interlock_ordered_ext,
shading_rate_interlock_unordered_ext,
+ shader64bit_indexing_ext,
shared_local_memory_size_intel: struct { size: LiteralInteger },
rounding_mode_rtpintel: struct { target_width: LiteralInteger },
rounding_mode_rtnintel: struct { target_width: LiteralInteger },
@@ -4329,9 +4536,10 @@ pub const StorageClass = enum(u32) {
physical_storage_buffer = 5349,
hit_object_attribute_nv = 5385,
task_payload_workgroup_ext = 5402,
+ hit_object_attribute_ext = 5411,
code_section_intel = 5605,
- device_only_intel = 5936,
- host_only_intel = 5937,
+ device_only_altera = 5936,
+ host_only_altera = 5937,
};
pub const Dim = enum(u32) {
@"1d" = 0,
@@ -4503,7 +4711,7 @@ pub const FunctionParameterAttribute = enum(u32) {
no_capture = 5,
no_write = 6,
no_read_write = 7,
- runtime_aligned_intel = 5940,
+ runtime_aligned_altera = 5940,
};
pub const Decoration = enum(u32) {
relaxed_precision = 0,
@@ -4568,6 +4776,9 @@ pub const Decoration = enum(u32) {
payload_node_sparse_array_amdx = 5099,
payload_node_array_size_amdx = 5100,
payload_dispatch_indirect_amdx = 5105,
+ array_stride_id_ext = 5124,
+ offset_id_ext = 5125,
+ utf_encoded_khr = 5145,
override_coverage_nv = 5248,
passthrough_nv = 5250,
viewport_relative_nv = 5252,
@@ -4579,7 +4790,10 @@ pub const Decoration = enum(u32) {
non_uniform = 5300,
restrict_pointer = 5355,
aliased_pointer = 5356,
+ member_offset_nv = 5358,
hit_object_shader_record_buffer_nv = 5386,
+ hit_object_shader_record_buffer_ext = 5389,
+ bank_nv = 5397,
bindless_sampler_nv = 5398,
bindless_image_nv = 5399,
bound_sampler_nv = 5400,
@@ -4598,55 +4812,56 @@ pub const Decoration = enum(u32) {
user_type_google = 5636,
function_rounding_mode_intel = 5822,
function_denorm_mode_intel = 5823,
- register_intel = 5825,
- memory_intel = 5826,
- numbanks_intel = 5827,
- bankwidth_intel = 5828,
- max_private_copies_intel = 5829,
- singlepump_intel = 5830,
- doublepump_intel = 5831,
- max_replicates_intel = 5832,
- simple_dual_port_intel = 5833,
- merge_intel = 5834,
- bank_bits_intel = 5835,
- force_pow2depth_intel = 5836,
- stridesize_intel = 5883,
- wordsize_intel = 5884,
- true_dual_port_intel = 5885,
- burst_coalesce_intel = 5899,
- cache_size_intel = 5900,
- dont_statically_coalesce_intel = 5901,
- prefetch_intel = 5902,
- stall_enable_intel = 5905,
- fuse_loops_in_function_intel = 5907,
- math_op_dsp_mode_intel = 5909,
+ register_altera = 5825,
+ memory_altera = 5826,
+ numbanks_altera = 5827,
+ bankwidth_altera = 5828,
+ max_private_copies_altera = 5829,
+ singlepump_altera = 5830,
+ doublepump_altera = 5831,
+ max_replicates_altera = 5832,
+ simple_dual_port_altera = 5833,
+ merge_altera = 5834,
+ bank_bits_altera = 5835,
+ force_pow2depth_altera = 5836,
+ stridesize_altera = 5883,
+ wordsize_altera = 5884,
+ true_dual_port_altera = 5885,
+ burst_coalesce_altera = 5899,
+ cache_size_altera = 5900,
+ dont_statically_coalesce_altera = 5901,
+ prefetch_altera = 5902,
+ stall_enable_altera = 5905,
+ fuse_loops_in_function_altera = 5907,
+ math_op_dsp_mode_altera = 5909,
alias_scope_intel = 5914,
no_alias_intel = 5915,
- initiation_interval_intel = 5917,
- max_concurrency_intel = 5918,
- pipeline_enable_intel = 5919,
- buffer_location_intel = 5921,
- io_pipe_storage_intel = 5944,
+ initiation_interval_altera = 5917,
+ max_concurrency_altera = 5918,
+ pipeline_enable_altera = 5919,
+ buffer_location_altera = 5921,
+ io_pipe_storage_altera = 5944,
function_floating_point_mode_intel = 6080,
single_element_vector_intel = 6085,
vector_compute_callable_function_intel = 6087,
media_block_iointel = 6140,
- stall_free_intel = 6151,
+ stall_free_altera = 6151,
fp_max_error_decoration_intel = 6170,
- latency_control_label_intel = 6172,
- latency_control_constraint_intel = 6173,
- conduit_kernel_argument_intel = 6175,
- register_map_kernel_argument_intel = 6176,
- mm_host_interface_address_width_intel = 6177,
- mm_host_interface_data_width_intel = 6178,
- mm_host_interface_latency_intel = 6179,
- mm_host_interface_read_write_mode_intel = 6180,
- mm_host_interface_max_burst_intel = 6181,
- mm_host_interface_wait_request_intel = 6182,
- stable_kernel_argument_intel = 6183,
+ latency_control_label_altera = 6172,
+ latency_control_constraint_altera = 6173,
+ conduit_kernel_argument_altera = 6175,
+ register_map_kernel_argument_altera = 6176,
+ mm_host_interface_address_width_altera = 6177,
+ mm_host_interface_data_width_altera = 6178,
+ mm_host_interface_latency_altera = 6179,
+ mm_host_interface_read_write_mode_altera = 6180,
+ mm_host_interface_max_burst_altera = 6181,
+ mm_host_interface_wait_request_altera = 6182,
+ stable_kernel_argument_altera = 6183,
host_access_intel = 6188,
- init_mode_intel = 6190,
- implement_in_register_map_intel = 6191,
+ init_mode_altera = 6190,
+ implement_in_register_map_altera = 6191,
+ conditional_intel = 6247,
cache_control_load_intel = 6442,
cache_control_store_intel = 6443,
@@ -4713,6 +4928,9 @@ pub const Decoration = enum(u32) {
payload_node_sparse_array_amdx,
payload_node_array_size_amdx: struct { array_size: Id },
payload_dispatch_indirect_amdx,
+ array_stride_id_ext: struct { array_stride: Id },
+ offset_id_ext: struct { byte_offset: Id },
+ utf_encoded_khr,
override_coverage_nv,
passthrough_nv,
viewport_relative_nv,
@@ -4724,7 +4942,10 @@ pub const Decoration = enum(u32) {
non_uniform,
restrict_pointer,
aliased_pointer,
+ member_offset_nv: struct { member_offset: LiteralInteger },
hit_object_shader_record_buffer_nv,
+ hit_object_shader_record_buffer_ext,
+ bank_nv: struct { bank: LiteralInteger },
bindless_sampler_nv,
bindless_image_nv,
bound_sampler_nv,
@@ -4743,55 +4964,56 @@ pub const Decoration = enum(u32) {
user_type_google: struct { user_type: LiteralString },
function_rounding_mode_intel: struct { target_width: LiteralInteger, fp_rounding_mode: FPRoundingMode },
function_denorm_mode_intel: struct { target_width: LiteralInteger, fp_denorm_mode: FPDenormMode },
- register_intel,
- memory_intel: struct { memory_type: LiteralString },
- numbanks_intel: struct { banks: LiteralInteger },
- bankwidth_intel: struct { bank_width: LiteralInteger },
- max_private_copies_intel: struct { maximum_copies: LiteralInteger },
- singlepump_intel,
- doublepump_intel,
- max_replicates_intel: struct { maximum_replicates: LiteralInteger },
- simple_dual_port_intel,
- merge_intel: struct { merge_key: LiteralString, merge_type: LiteralString },
- bank_bits_intel: struct { bank_bits: []const LiteralInteger = &.{} },
- force_pow2depth_intel: struct { force_key: LiteralInteger },
- stridesize_intel: struct { stride_size: LiteralInteger },
- wordsize_intel: struct { word_size: LiteralInteger },
- true_dual_port_intel,
- burst_coalesce_intel,
- cache_size_intel: struct { cache_size_in_bytes: LiteralInteger },
- dont_statically_coalesce_intel,
- prefetch_intel: struct { prefetcher_size_in_bytes: LiteralInteger },
- stall_enable_intel,
- fuse_loops_in_function_intel,
- math_op_dsp_mode_intel: struct { mode: LiteralInteger, propagate: LiteralInteger },
+ register_altera,
+ memory_altera: struct { memory_type: LiteralString },
+ numbanks_altera: struct { banks: LiteralInteger },
+ bankwidth_altera: struct { bank_width: LiteralInteger },
+ max_private_copies_altera: struct { maximum_copies: LiteralInteger },
+ singlepump_altera,
+ doublepump_altera,
+ max_replicates_altera: struct { maximum_replicates: LiteralInteger },
+ simple_dual_port_altera,
+ merge_altera: struct { merge_key: LiteralString, merge_type: LiteralString },
+ bank_bits_altera: struct { bank_bits: []const LiteralInteger = &.{} },
+ force_pow2depth_altera: struct { force_key: LiteralInteger },
+ stridesize_altera: struct { stride_size: LiteralInteger },
+ wordsize_altera: struct { word_size: LiteralInteger },
+ true_dual_port_altera,
+ burst_coalesce_altera,
+ cache_size_altera: struct { cache_size_in_bytes: LiteralInteger },
+ dont_statically_coalesce_altera,
+ prefetch_altera: struct { prefetcher_size_in_bytes: LiteralInteger },
+ stall_enable_altera,
+ fuse_loops_in_function_altera,
+ math_op_dsp_mode_altera: struct { mode: LiteralInteger, propagate: LiteralInteger },
alias_scope_intel: struct { aliasing_scopes_list: Id },
no_alias_intel: struct { aliasing_scopes_list: Id },
- initiation_interval_intel: struct { cycles: LiteralInteger },
- max_concurrency_intel: struct { invocations: LiteralInteger },
- pipeline_enable_intel: struct { enable: LiteralInteger },
- buffer_location_intel: struct { buffer_location_id: LiteralInteger },
- io_pipe_storage_intel: struct { io_pipe_id: LiteralInteger },
+ initiation_interval_altera: struct { cycles: LiteralInteger },
+ max_concurrency_altera: struct { invocations: LiteralInteger },
+ pipeline_enable_altera: struct { enable: LiteralInteger },
+ buffer_location_altera: struct { buffer_location_id: LiteralInteger },
+ io_pipe_storage_altera: struct { io_pipe_id: LiteralInteger },
function_floating_point_mode_intel: struct { target_width: LiteralInteger, fp_operation_mode: FPOperationMode },
single_element_vector_intel,
vector_compute_callable_function_intel,
media_block_iointel,
- stall_free_intel,
+ stall_free_altera,
fp_max_error_decoration_intel: struct { max_error: LiteralFloat },
- latency_control_label_intel: struct { latency_label: LiteralInteger },
- latency_control_constraint_intel: struct { relative_to: LiteralInteger, control_type: LiteralInteger, relative_cycle: LiteralInteger },
- conduit_kernel_argument_intel,
- register_map_kernel_argument_intel,
- mm_host_interface_address_width_intel: struct { address_width: LiteralInteger },
- mm_host_interface_data_width_intel: struct { data_width: LiteralInteger },
- mm_host_interface_latency_intel: struct { latency: LiteralInteger },
- mm_host_interface_read_write_mode_intel: struct { read_write_mode: AccessQualifier },
- mm_host_interface_max_burst_intel: struct { max_burst_count: LiteralInteger },
- mm_host_interface_wait_request_intel: struct { waitrequest: LiteralInteger },
- stable_kernel_argument_intel,
+ latency_control_label_altera: struct { latency_label: LiteralInteger },
+ latency_control_constraint_altera: struct { relative_to: LiteralInteger, control_type: LiteralInteger, relative_cycle: LiteralInteger },
+ conduit_kernel_argument_altera,
+ register_map_kernel_argument_altera,
+ mm_host_interface_address_width_altera: struct { address_width: LiteralInteger },
+ mm_host_interface_data_width_altera: struct { data_width: LiteralInteger },
+ mm_host_interface_latency_altera: struct { latency: LiteralInteger },
+ mm_host_interface_read_write_mode_altera: struct { read_write_mode: AccessQualifier },
+ mm_host_interface_max_burst_altera: struct { max_burst_count: LiteralInteger },
+ mm_host_interface_wait_request_altera: struct { waitrequest: LiteralInteger },
+ stable_kernel_argument_altera,
host_access_intel: struct { access: HostAccessQualifier, name: LiteralString },
- init_mode_intel: struct { trigger: InitializationModeQualifier },
- implement_in_register_map_intel: struct { value: LiteralInteger },
+ init_mode_altera: struct { trigger: InitializationModeQualifier },
+ implement_in_register_map_altera: struct { value: LiteralInteger },
+ conditional_intel: struct { condition: Id },
cache_control_load_intel: struct { cache_level: LiteralInteger, cache_control: LoadCacheControl },
cache_control_store_intel: struct { cache_level: LiteralInteger, cache_control: StoreCacheControl },
};
@@ -4868,6 +5090,8 @@ pub const BuiltIn = enum(u32) {
frag_stencil_ref_ext = 5014,
remaining_recursion_levels_amdx = 5021,
shader_index_amdx = 5073,
+ sampler_heap_ext = 5122,
+ resource_heap_ext = 5123,
viewport_mask_nv = 5253,
secondary_position_nv = 5257,
secondary_viewport_mask_nv = 5258,
@@ -4938,9 +5162,9 @@ pub const GroupOperation = enum(u32) {
inclusive_scan = 1,
exclusive_scan = 2,
clustered_reduce = 3,
- partitioned_reduce_nv = 6,
- partitioned_inclusive_scan_nv = 7,
- partitioned_exclusive_scan_nv = 8,
+ partitioned_reduce_ext = 6,
+ partitioned_inclusive_scan_ext = 7,
+ partitioned_exclusive_scan_ext = 8,
};
pub const KernelEnqueueFlags = enum(u32) {
no_wait = 0,
@@ -4989,8 +5213,6 @@ pub const Capability = enum(u32) {
input_attachment = 40,
sparse_residency = 41,
min_lod = 42,
- sampled1d = 43,
- image1d = 44,
sampled_cube_array = 45,
sampled_buffer = 46,
image_buffer = 47,
@@ -5018,15 +5240,9 @@ pub const Capability = enum(u32) {
shader_layer = 69,
shader_viewport_index = 70,
uniform_decoration = 71,
- core_builtins_arm = 4165,
tile_image_color_read_access_ext = 4166,
tile_image_depth_read_access_ext = 4167,
tile_image_stencil_read_access_ext = 4168,
- tensors_arm = 4174,
- storage_tensor_array_dynamic_indexing_arm = 4175,
- storage_tensor_array_non_uniform_indexing_arm = 4176,
- graph_arm = 4191,
- cooperative_matrix_layouts_arm = 4201,
float8ext = 4212,
float8cooperative_matrix_ext = 4213,
fragment_shading_rate_khr = 4422,
@@ -5052,46 +5268,29 @@ pub const Capability = enum(u32) {
denorm_preserve = 4464,
denorm_flush_to_zero = 4465,
signed_zero_inf_nan_preserve = 4466,
- rounding_mode_rte = 4467,
- rounding_mode_rtz = 4468,
ray_query_provisional_khr = 4471,
ray_query_khr = 4472,
untyped_pointers_khr = 4473,
ray_traversal_primitive_culling_khr = 4478,
ray_tracing_khr = 4479,
- texture_sample_weighted_qcom = 4484,
- texture_box_filter_qcom = 4485,
- texture_block_match_qcom = 4486,
- tile_shading_qcom = 4495,
- texture_block_match2qcom = 4498,
- float16image_amd = 5008,
- image_gather_bias_lod_amd = 5009,
- fragment_mask_amd = 5010,
stencil_export_ext = 5013,
- image_read_write_lod_amd = 5015,
int64image_ext = 5016,
shader_clock_khr = 5055,
- shader_enqueue_amdx = 5067,
quad_control_khr = 5087,
- int4type_intel = 5112,
- int4cooperative_matrix_intel = 5114,
b_float16type_khr = 5116,
b_float16dot_product_khr = 5117,
b_float16cooperative_matrix_khr = 5118,
- sample_mask_override_coverage_nv = 5249,
- geometry_shader_passthrough_nv = 5251,
+ abort_khr = 5120,
+ descriptor_heap_ext = 5128,
+ constant_data_khr = 5146,
+ poison_freeze_khr = 5156,
shader_viewport_index_layer_ext = 5254,
- shader_viewport_mask_nv = 5255,
- shader_stereo_view_nv = 5259,
- per_view_attributes_nv = 5260,
fragment_fully_covered_ext = 5265,
- mesh_shading_nv = 5266,
- image_footprint_nv = 5282,
mesh_shading_ext = 5283,
fragment_barycentric_khr = 5284,
compute_derivative_group_quads_khr = 5288,
fragment_density_ext = 5291,
- group_non_uniform_partitioned_nv = 5297,
+ group_non_uniform_partitioned_ext = 5297,
shader_non_uniform = 5301,
runtime_descriptor_array = 5302,
input_attachment_array_dynamic_indexing = 5303,
@@ -5105,80 +5304,24 @@ pub const Capability = enum(u32) {
uniform_texel_buffer_array_non_uniform_indexing = 5311,
storage_texel_buffer_array_non_uniform_indexing = 5312,
ray_tracing_position_fetch_khr = 5336,
- ray_tracing_nv = 5340,
- ray_tracing_motion_blur_nv = 5341,
vulkan_memory_model = 5345,
vulkan_memory_model_device_scope = 5346,
physical_storage_buffer_addresses = 5347,
compute_derivative_group_linear_khr = 5350,
ray_tracing_provisional_khr = 5353,
- cooperative_matrix_nv = 5357,
fragment_shader_sample_interlock_ext = 5363,
fragment_shader_shading_rate_interlock_ext = 5372,
- shader_sm_builtins_nv = 5373,
fragment_shader_pixel_interlock_ext = 5378,
demote_to_helper_invocation = 5379,
- displacement_micromap_nv = 5380,
ray_tracing_opacity_micromap_ext = 5381,
- shader_invocation_reorder_nv = 5383,
- bindless_texture_nv = 5390,
+ shader_invocation_reorder_ext = 5388,
ray_query_position_fetch_khr = 5391,
- cooperative_vector_nv = 5394,
- atomic_float16vector_nv = 5404,
- ray_tracing_displacement_micromap_nv = 5409,
- raw_access_chains_nv = 5414,
- ray_tracing_spheres_geometry_nv = 5418,
- ray_tracing_linear_swept_spheres_geometry_nv = 5419,
- cooperative_matrix_reductions_nv = 5430,
- cooperative_matrix_conversions_nv = 5431,
- cooperative_matrix_per_element_operations_nv = 5432,
- cooperative_matrix_tensor_addressing_nv = 5433,
- cooperative_matrix_block_loads_nv = 5434,
- cooperative_vector_training_nv = 5435,
- ray_tracing_cluster_acceleration_structure_nv = 5437,
- tensor_addressing_nv = 5439,
- subgroup_shuffle_intel = 5568,
- subgroup_buffer_block_iointel = 5569,
- subgroup_image_block_iointel = 5570,
- subgroup_image_media_block_iointel = 5579,
- round_to_infinity_intel = 5582,
- floating_point_mode_intel = 5583,
- integer_functions2intel = 5584,
- function_pointers_intel = 5603,
- indirect_references_intel = 5604,
- asm_intel = 5606,
+ long_vector_ext = 5425,
+ shader64bit_indexing_ext = 5426,
atomic_float32min_max_ext = 5612,
atomic_float64min_max_ext = 5613,
atomic_float16min_max_ext = 5616,
- vector_compute_intel = 5617,
- vector_any_intel = 5619,
expect_assume_khr = 5629,
- subgroup_avc_motion_estimation_intel = 5696,
- subgroup_avc_motion_estimation_intra_intel = 5697,
- subgroup_avc_motion_estimation_chroma_intel = 5698,
- variable_length_array_intel = 5817,
- function_float_control_intel = 5821,
- fpga_memory_attributes_intel = 5824,
- fp_fast_math_mode_intel = 5837,
- arbitrary_precision_integers_intel = 5844,
- arbitrary_precision_floating_point_intel = 5845,
- unstructured_loop_controls_intel = 5886,
- fpga_loop_controls_intel = 5888,
- kernel_attributes_intel = 5892,
- fpga_kernel_attributes_intel = 5897,
- fpga_memory_accesses_intel = 5898,
- fpga_cluster_attributes_intel = 5904,
- loop_fuse_intel = 5906,
- fpgadsp_control_intel = 5908,
- memory_access_aliasing_intel = 5910,
- fpga_invocation_pipelining_attributes_intel = 5916,
- fpga_buffer_location_intel = 5920,
- arbitrary_precision_fixed_point_intel = 5922,
- usm_storage_classes_intel = 5935,
- runtime_aligned_attribute_intel = 5939,
- io_pipes_intel = 5943,
- blocking_pipes_intel = 5945,
- fpga_reg_intel = 5948,
dot_product_input_all = 6016,
dot_product_input4x8bit = 6017,
dot_product_input4x8bit_packed = 6018,
@@ -5189,123 +5332,663 @@ pub const Capability = enum(u32) {
bit_instructions = 6025,
group_non_uniform_rotate_khr = 6026,
float_controls2 = 6029,
+ fmakhr = 6030,
atomic_float32add_ext = 6033,
atomic_float64add_ext = 6034,
- long_composites_intel = 6089,
opt_none_ext = 6094,
atomic_float16add_ext = 6095,
- debug_info_module_intel = 6114,
- b_float16conversion_intel = 6115,
- split_barrier_intel = 6141,
arithmetic_fence_ext = 6144,
- fpga_cluster_attributes_v2intel = 6150,
- fpga_kernel_attributesv2intel = 6161,
- task_sequence_intel = 6162,
- fp_max_error_intel = 6169,
- fpga_latency_control_intel = 6171,
- fpga_argument_interfaces_intel = 6174,
- global_variable_host_access_intel = 6187,
- global_variable_fpga_decorations_intel = 6189,
- subgroup_buffer_prefetch_intel = 6220,
- subgroup2d_block_iointel = 6228,
- subgroup2d_block_transform_intel = 6229,
- subgroup2d_block_transpose_intel = 6230,
- subgroup_matrix_multiply_accumulate_intel = 6236,
- ternary_bitwise_function_intel = 6241,
group_uniform_arithmetic_khr = 6400,
- tensor_float32rounding_intel = 6425,
- masked_gather_scatter_intel = 6427,
- cache_controls_intel = 6441,
- register_limits_intel = 6460,
- bindless_images_intel = 6528,
-};
-pub const RayQueryIntersection = enum(u32) {
- ray_query_candidate_intersection_khr = 0,
- ray_query_committed_intersection_khr = 1,
-};
-pub const RayQueryCommittedIntersectionType = enum(u32) {
- ray_query_committed_intersection_none_khr = 0,
- ray_query_committed_intersection_triangle_khr = 1,
- ray_query_committed_intersection_generated_khr = 2,
-};
-pub const RayQueryCandidateIntersectionType = enum(u32) {
- ray_query_candidate_intersection_triangle_khr = 0,
- ray_query_candidate_intersection_aabbkhr = 1,
-};
-pub const PackedVectorFormat = enum(u32) {
- packed_vector_format4x8bit = 0,
-};
-pub const CooperativeMatrixOperands = packed struct {
- matrix_a_signed_components_khr: bool = false,
- matrix_b_signed_components_khr: bool = false,
- matrix_c_signed_components_khr: bool = false,
- matrix_result_signed_components_khr: bool = false,
- saturating_accumulation_khr: bool = false,
- _reserved_bit_5: bool = false,
- _reserved_bit_6: bool = false,
- _reserved_bit_7: bool = false,
- _reserved_bit_8: bool = false,
- _reserved_bit_9: bool = false,
- _reserved_bit_10: bool = false,
- _reserved_bit_11: bool = false,
- _reserved_bit_12: bool = false,
- _reserved_bit_13: bool = false,
- _reserved_bit_14: bool = false,
- _reserved_bit_15: bool = false,
- _reserved_bit_16: bool = false,
- _reserved_bit_17: bool = false,
- _reserved_bit_18: bool = false,
- _reserved_bit_19: bool = false,
- _reserved_bit_20: bool = false,
- _reserved_bit_21: bool = false,
- _reserved_bit_22: bool = false,
- _reserved_bit_23: bool = false,
- _reserved_bit_24: bool = false,
- _reserved_bit_25: bool = false,
- _reserved_bit_26: bool = false,
- _reserved_bit_27: bool = false,
- _reserved_bit_28: bool = false,
- _reserved_bit_29: bool = false,
- _reserved_bit_30: bool = false,
- _reserved_bit_31: bool = false,
-};
-pub const CooperativeMatrixLayout = enum(u32) {
- row_major_khr = 0,
- column_major_khr = 1,
- row_blocked_interleaved_arm = 4202,
- column_blocked_interleaved_arm = 4203,
-};
-pub const CooperativeMatrixUse = enum(u32) {
- matrix_akhr = 0,
- matrix_bkhr = 1,
- matrix_accumulator_khr = 2,
-};
-pub const CooperativeMatrixReduce = packed struct {
- row: bool = false,
- column: bool = false,
- @"2x2": bool = false,
- _reserved_bit_3: bool = false,
- _reserved_bit_4: bool = false,
- _reserved_bit_5: bool = false,
- _reserved_bit_6: bool = false,
- _reserved_bit_7: bool = false,
- _reserved_bit_8: bool = false,
- _reserved_bit_9: bool = false,
- _reserved_bit_10: bool = false,
- _reserved_bit_11: bool = false,
- _reserved_bit_12: bool = false,
- _reserved_bit_13: bool = false,
- _reserved_bit_14: bool = false,
- _reserved_bit_15: bool = false,
- _reserved_bit_16: bool = false,
- _reserved_bit_17: bool = false,
- _reserved_bit_18: bool = false,
- _reserved_bit_19: bool = false,
- _reserved_bit_20: bool = false,
- _reserved_bit_21: bool = false,
- _reserved_bit_22: bool = false,
- _reserved_bit_23: bool = false,
- _reserved_bit_24: bool = false,
+
+ pub fn dependencies(self: Capability) []const Extension {
+ return switch (self) {
+ .matrix => &.{
+ .v1_0,
+ },
+ .shader => &.{
+ .v1_0,
+ },
+ .geometry => &.{
+ .v1_0,
+ },
+ .tessellation => &.{
+ .v1_0,
+ },
+ .addresses => &.{
+ .v1_0,
+ },
+ .linkage => &.{
+ .v1_0,
+ },
+ .kernel => &.{
+ .v1_0,
+ },
+ .vector16 => &.{
+ .v1_0,
+ },
+ .float16buffer => &.{
+ .v1_0,
+ },
+ .float16 => &.{
+ .v1_0,
+ },
+ .float64 => &.{
+ .v1_0,
+ },
+ .int64 => &.{
+ .v1_0,
+ },
+ .int64atomics => &.{
+ .v1_0,
+ },
+ .image_basic => &.{
+ .v1_0,
+ },
+ .image_read_write => &.{
+ .v1_0,
+ },
+ .image_mipmap => &.{
+ .v1_0,
+ },
+ .pipes => &.{
+ .v1_0,
+ },
+ .groups => &.{
+ .v1_0,
+ },
+ .device_enqueue => &.{
+ .v1_0,
+ },
+ .literal_sampler => &.{
+ .v1_0,
+ },
+ .atomic_storage => &.{
+ .v1_0,
+ },
+ .int16 => &.{
+ .v1_0,
+ },
+ .tessellation_point_size => &.{
+ .v1_0,
+ },
+ .geometry_point_size => &.{
+ .v1_0,
+ },
+ .image_gather_extended => &.{
+ .v1_0,
+ },
+ .storage_image_multisample => &.{
+ .v1_0,
+ },
+ .uniform_buffer_array_dynamic_indexing => &.{
+ .v1_0,
+ },
+ .sampled_image_array_dynamic_indexing => &.{
+ .v1_0,
+ },
+ .storage_buffer_array_dynamic_indexing => &.{
+ .v1_0,
+ },
+ .storage_image_array_dynamic_indexing => &.{
+ .v1_0,
+ },
+ .clip_distance => &.{
+ .v1_0,
+ },
+ .cull_distance => &.{
+ .v1_0,
+ },
+ .image_cube_array => &.{
+ .v1_0,
+ },
+ .sample_rate_shading => &.{
+ .v1_0,
+ },
+ .image_rect => &.{
+ .v1_0,
+ },
+ .sampled_rect => &.{
+ .v1_0,
+ },
+ .generic_pointer => &.{
+ .v1_0,
+ },
+ .int8 => &.{
+ .v1_0,
+ },
+ .input_attachment => &.{
+ .v1_0,
+ },
+ .sparse_residency => &.{
+ .v1_0,
+ },
+ .min_lod => &.{
+ .v1_0,
+ },
+ .sampled_cube_array => &.{
+ .v1_0,
+ },
+ .sampled_buffer => &.{
+ .v1_0,
+ },
+ .image_buffer => &.{
+ .v1_0,
+ },
+ .image_ms_array => &.{
+ .v1_0,
+ },
+ .storage_image_extended_formats => &.{
+ .v1_0,
+ },
+ .image_query => &.{
+ .v1_0,
+ },
+ .derivative_control => &.{
+ .v1_0,
+ },
+ .interpolation_function => &.{
+ .v1_0,
+ },
+ .transform_feedback => &.{
+ .v1_0,
+ },
+ .geometry_streams => &.{
+ .v1_0,
+ },
+ .storage_image_read_without_format => &.{
+ .v1_0,
+ },
+ .storage_image_write_without_format => &.{
+ .v1_0,
+ },
+ .multi_viewport => &.{
+ .v1_0,
+ },
+ .subgroup_dispatch => &.{
+ .v1_1,
+ },
+ .named_barrier => &.{
+ .v1_1,
+ },
+ .pipe_storage => &.{
+ .v1_1,
+ },
+ .group_non_uniform => &.{
+ .v1_3,
+ },
+ .group_non_uniform_vote => &.{
+ .v1_3,
+ },
+ .group_non_uniform_arithmetic => &.{
+ .v1_3,
+ },
+ .group_non_uniform_ballot => &.{
+ .v1_3,
+ },
+ .group_non_uniform_shuffle => &.{
+ .v1_3,
+ },
+ .group_non_uniform_shuffle_relative => &.{
+ .v1_3,
+ },
+ .group_non_uniform_clustered => &.{
+ .v1_3,
+ },
+ .group_non_uniform_quad => &.{
+ .v1_3,
+ },
+ .shader_layer => &.{
+ .v1_5,
+ },
+ .shader_viewport_index => &.{
+ .v1_5,
+ },
+ .uniform_decoration => &.{
+ .v1_6,
+ },
+ .tile_image_color_read_access_ext => &.{
+ .v1_0,
+ .SPV_EXT_shader_tile_image,
+ },
+ .tile_image_depth_read_access_ext => &.{
+ .v1_0,
+ .SPV_EXT_shader_tile_image,
+ },
+ .tile_image_stencil_read_access_ext => &.{
+ .v1_0,
+ .SPV_EXT_shader_tile_image,
+ },
+ .float8ext => &.{
+ .v1_0,
+ .SPV_EXT_float8,
+ },
+ .float8cooperative_matrix_ext => &.{
+ .v1_0,
+ .SPV_EXT_float8,
+ },
+ .fragment_shading_rate_khr => &.{
+ .v1_0,
+ .SPV_KHR_fragment_shading_rate,
+ },
+ .subgroup_ballot_khr => &.{
+ .v1_0,
+ .SPV_KHR_shader_ballot,
+ },
+ .draw_parameters => &.{
+ .v1_3,
+ .SPV_KHR_shader_draw_parameters,
+ },
+ .workgroup_memory_explicit_layout_khr => &.{
+ .v1_0,
+ .SPV_KHR_workgroup_memory_explicit_layout,
+ },
+ .workgroup_memory_explicit_layout8bit_access_khr => &.{
+ .v1_0,
+ .SPV_KHR_workgroup_memory_explicit_layout,
+ },
+ .workgroup_memory_explicit_layout16bit_access_khr => &.{
+ .v1_0,
+ .SPV_KHR_workgroup_memory_explicit_layout,
+ },
+ .subgroup_vote_khr => &.{
+ .v1_0,
+ .SPV_KHR_subgroup_vote,
+ },
+ .storage_buffer16bit_access => &.{
+ .v1_3,
+ .SPV_KHR_16bit_storage,
+ },
+ .uniform_and_storage_buffer16bit_access => &.{
+ .v1_3,
+ .SPV_KHR_16bit_storage,
+ },
+ .storage_push_constant16 => &.{
+ .v1_3,
+ .SPV_KHR_16bit_storage,
+ },
+ .storage_input_output16 => &.{
+ .v1_3,
+ .SPV_KHR_16bit_storage,
+ },
+ .device_group => &.{
+ .v1_3,
+ .SPV_KHR_device_group,
+ },
+ .multi_view => &.{
+ .v1_3,
+ .SPV_KHR_multiview,
+ },
+ .variable_pointers_storage_buffer => &.{
+ .v1_3,
+ .SPV_KHR_variable_pointers,
+ },
+ .variable_pointers => &.{
+ .v1_3,
+ .SPV_KHR_variable_pointers,
+ },
+ .atomic_storage_ops => &.{
+ .v1_0,
+ .SPV_KHR_shader_atomic_counter_ops,
+ },
+ .sample_mask_post_depth_coverage => &.{
+ .v1_0,
+ .SPV_KHR_post_depth_coverage,
+ },
+ .storage_buffer8bit_access => &.{
+ .v1_5,
+ .SPV_KHR_8bit_storage,
+ },
+ .uniform_and_storage_buffer8bit_access => &.{
+ .v1_5,
+ .SPV_KHR_8bit_storage,
+ },
+ .storage_push_constant8 => &.{
+ .v1_5,
+ .SPV_KHR_8bit_storage,
+ },
+ .denorm_preserve => &.{
+ .v1_4,
+ .SPV_KHR_float_controls,
+ },
+ .denorm_flush_to_zero => &.{
+ .v1_4,
+ .SPV_KHR_float_controls,
+ },
+ .signed_zero_inf_nan_preserve => &.{
+ .v1_4,
+ .SPV_KHR_float_controls,
+ },
+ .ray_query_provisional_khr => &.{
+ .v1_0,
+ .SPV_KHR_ray_query,
+ },
+ .ray_query_khr => &.{
+ .v1_0,
+ .SPV_KHR_ray_query,
+ },
+ .untyped_pointers_khr => &.{
+ .v1_0,
+ .SPV_KHR_untyped_pointers,
+ },
+ .ray_traversal_primitive_culling_khr => &.{
+ .v1_0,
+ .SPV_KHR_ray_query,
+ .SPV_KHR_ray_tracing,
+ },
+ .ray_tracing_khr => &.{
+ .v1_0,
+ .SPV_KHR_ray_tracing,
+ },
+ .stencil_export_ext => &.{
+ .v1_0,
+ .SPV_EXT_shader_stencil_export,
+ },
+ .int64image_ext => &.{
+ .v1_0,
+ .SPV_EXT_shader_image_int64,
+ },
+ .shader_clock_khr => &.{
+ .v1_0,
+ .SPV_KHR_shader_clock,
+ },
+ .quad_control_khr => &.{
+ .v1_0,
+ .SPV_KHR_quad_control,
+ },
+ .b_float16type_khr => &.{
+ .v1_0,
+ .SPV_KHR_bfloat16,
+ },
+ .b_float16dot_product_khr => &.{
+ .v1_0,
+ .SPV_KHR_bfloat16,
+ },
+ .b_float16cooperative_matrix_khr => &.{
+ .v1_0,
+ .SPV_KHR_bfloat16,
+ },
+ .abort_khr => &.{
+ .v1_0,
+ .SPV_KHR_abort,
+ },
+ .descriptor_heap_ext => &.{
+ .v1_0,
+ .SPV_EXT_descriptor_heap,
+ },
+ .constant_data_khr => &.{
+ .v1_0,
+ .SPV_KHR_constant_data,
+ },
+ .poison_freeze_khr => &.{
+ .v1_0,
+ .SPV_KHR_poison_freeze,
+ },
+ .shader_viewport_index_layer_ext => &.{
+ .v1_0,
+ .SPV_EXT_shader_viewport_index_layer,
+ },
+ .fragment_fully_covered_ext => &.{
+ .v1_0,
+ .SPV_EXT_fragment_fully_covered,
+ },
+ .mesh_shading_ext => &.{
+ .v1_0,
+ .SPV_EXT_mesh_shader,
+ },
+ .fragment_barycentric_khr => &.{
+ .v1_0,
+ .SPV_KHR_fragment_shader_barycentric,
+ },
+ .compute_derivative_group_quads_khr => &.{
+ .v1_0,
+ .SPV_KHR_compute_shader_derivatives,
+ },
+ .fragment_density_ext => &.{
+ .v1_0,
+ .SPV_EXT_fragment_invocation_density,
+ },
+ .group_non_uniform_partitioned_ext => &.{
+ .v1_0,
+ .SPV_EXT_shader_subgroup_partitioned,
+ },
+ .shader_non_uniform => &.{
+ .v1_5,
+ .SPV_EXT_descriptor_indexing,
+ },
+ .runtime_descriptor_array => &.{
+ .v1_5,
+ .SPV_EXT_descriptor_indexing,
+ },
+ .input_attachment_array_dynamic_indexing => &.{
+ .v1_5,
+ .SPV_EXT_descriptor_indexing,
+ },
+ .uniform_texel_buffer_array_dynamic_indexing => &.{
+ .v1_5,
+ .SPV_EXT_descriptor_indexing,
+ },
+ .storage_texel_buffer_array_dynamic_indexing => &.{
+ .v1_5,
+ .SPV_EXT_descriptor_indexing,
+ },
+ .uniform_buffer_array_non_uniform_indexing => &.{
+ .v1_5,
+ .SPV_EXT_descriptor_indexing,
+ },
+ .sampled_image_array_non_uniform_indexing => &.{
+ .v1_5,
+ .SPV_EXT_descriptor_indexing,
+ },
+ .storage_buffer_array_non_uniform_indexing => &.{
+ .v1_5,
+ .SPV_EXT_descriptor_indexing,
+ },
+ .storage_image_array_non_uniform_indexing => &.{
+ .v1_5,
+ .SPV_EXT_descriptor_indexing,
+ },
+ .input_attachment_array_non_uniform_indexing => &.{
+ .v1_5,
+ .SPV_EXT_descriptor_indexing,
+ },
+ .uniform_texel_buffer_array_non_uniform_indexing => &.{
+ .v1_5,
+ .SPV_EXT_descriptor_indexing,
+ },
+ .storage_texel_buffer_array_non_uniform_indexing => &.{
+ .v1_5,
+ .SPV_EXT_descriptor_indexing,
+ },
+ .ray_tracing_position_fetch_khr => &.{
+ .v1_0,
+ .SPV_KHR_ray_tracing_position_fetch,
+ },
+ .vulkan_memory_model => &.{
+ .v1_5,
+ .SPV_KHR_vulkan_memory_model,
+ },
+ .vulkan_memory_model_device_scope => &.{
+ .v1_5,
+ .SPV_KHR_vulkan_memory_model,
+ },
+ .physical_storage_buffer_addresses => &.{
+ .v1_5,
+ .SPV_EXT_physical_storage_buffer,
+ .SPV_KHR_physical_storage_buffer,
+ },
+ .compute_derivative_group_linear_khr => &.{
+ .v1_0,
+ .SPV_KHR_compute_shader_derivatives,
+ },
+ .ray_tracing_provisional_khr => &.{
+ .v1_0,
+ .SPV_KHR_ray_tracing,
+ },
+ .fragment_shader_sample_interlock_ext => &.{
+ .v1_0,
+ .SPV_EXT_fragment_shader_interlock,
+ },
+ .fragment_shader_shading_rate_interlock_ext => &.{
+ .v1_0,
+ .SPV_EXT_fragment_shader_interlock,
+ },
+ .fragment_shader_pixel_interlock_ext => &.{
+ .v1_0,
+ .SPV_EXT_fragment_shader_interlock,
+ },
+ .demote_to_helper_invocation => &.{
+ .v1_6,
+ .SPV_EXT_demote_to_helper_invocation,
+ },
+ .ray_tracing_opacity_micromap_ext => &.{
+ .v1_0,
+ .SPV_EXT_opacity_micromap,
+ },
+ .shader_invocation_reorder_ext => &.{
+ .v1_0,
+ .SPV_EXT_shader_invocation_reorder,
+ },
+ .ray_query_position_fetch_khr => &.{
+ .v1_0,
+ .SPV_KHR_ray_tracing_position_fetch,
+ },
+ .long_vector_ext => &.{
+ .v1_0,
+ .SPV_EXT_long_vector,
+ },
+ .shader64bit_indexing_ext => &.{
+ .v1_0,
+ .SPV_EXT_shader_64bit_indexing,
+ },
+ .atomic_float32min_max_ext => &.{
+ .v1_0,
+ .SPV_EXT_shader_atomic_float_min_max,
+ },
+ .atomic_float64min_max_ext => &.{
+ .v1_0,
+ .SPV_EXT_shader_atomic_float_min_max,
+ },
+ .atomic_float16min_max_ext => &.{
+ .v1_0,
+ .SPV_EXT_shader_atomic_float_min_max,
+ },
+ .expect_assume_khr => &.{
+ .v1_0,
+ .SPV_KHR_expect_assume,
+ },
+ .dot_product_input_all => &.{
+ .v1_6,
+ .SPV_KHR_integer_dot_product,
+ },
+ .dot_product_input4x8bit => &.{
+ .v1_6,
+ .SPV_KHR_integer_dot_product,
+ },
+ .dot_product_input4x8bit_packed => &.{
+ .v1_6,
+ .SPV_KHR_integer_dot_product,
+ },
+ .dot_product => &.{
+ .v1_6,
+ .SPV_KHR_integer_dot_product,
+ },
+ .ray_cull_mask_khr => &.{
+ .v1_0,
+ .SPV_KHR_ray_cull_mask,
+ },
+ .cooperative_matrix_khr => &.{
+ .v1_0,
+ .SPV_KHR_cooperative_matrix,
+ },
+ .replicated_composites_ext => &.{
+ .v1_0,
+ .SPV_EXT_replicated_composites,
+ },
+ .bit_instructions => &.{
+ .v1_0,
+ .SPV_KHR_bit_instructions,
+ },
+ .group_non_uniform_rotate_khr => &.{
+ .v1_0,
+ .SPV_KHR_subgroup_rotate,
+ },
+ .float_controls2 => &.{
+ .v1_0,
+ .SPV_KHR_float_controls2,
+ },
+ .fmakhr => &.{
+ .v1_0,
+ .SPV_KHR_fma,
+ },
+ .atomic_float32add_ext => &.{
+ .v1_0,
+ .SPV_EXT_shader_atomic_float_add,
+ },
+ .atomic_float64add_ext => &.{
+ .v1_0,
+ .SPV_EXT_shader_atomic_float_add,
+ },
+ .opt_none_ext => &.{
+ .v1_0,
+ .SPV_EXT_optnone,
+ },
+ .atomic_float16add_ext => &.{
+ .v1_0,
+ .SPV_EXT_shader_atomic_float16_add,
+ },
+ .arithmetic_fence_ext => &.{
+ .v1_0,
+ .SPV_EXT_arithmetic_fence,
+ },
+ .group_uniform_arithmetic_khr => &.{
+ .v1_0,
+ .SPV_KHR_uniform_group_instructions,
+ },
+ };
+ }
+};
+pub const RayQueryIntersection = enum(u32) {
+ ray_query_candidate_intersection_khr = 0,
+ ray_query_committed_intersection_khr = 1,
+};
+pub const RayQueryCommittedIntersectionType = enum(u32) {
+ ray_query_committed_intersection_none_khr = 0,
+ ray_query_committed_intersection_triangle_khr = 1,
+ ray_query_committed_intersection_generated_khr = 2,
+};
+pub const RayQueryCandidateIntersectionType = enum(u32) {
+ ray_query_candidate_intersection_triangle_khr = 0,
+ ray_query_candidate_intersection_aabbkhr = 1,
+};
+pub const PackedVectorFormat = enum(u32) {
+ packed_vector_format4x8bit = 0,
+};
+pub const CooperativeMatrixOperands = packed struct {
+ matrix_a_signed_components_khr: bool = false,
+ matrix_b_signed_components_khr: bool = false,
+ matrix_c_signed_components_khr: bool = false,
+ matrix_result_signed_components_khr: bool = false,
+ saturating_accumulation_khr: bool = false,
+ _reserved_bit_5: bool = false,
+ _reserved_bit_6: bool = false,
+ _reserved_bit_7: bool = false,
+ _reserved_bit_8: bool = false,
+ _reserved_bit_9: bool = false,
+ _reserved_bit_10: bool = false,
+ _reserved_bit_11: bool = false,
+ _reserved_bit_12: bool = false,
+ _reserved_bit_13: bool = false,
+ _reserved_bit_14: bool = false,
+ _reserved_bit_15: bool = false,
+ _reserved_bit_16: bool = false,
+ _reserved_bit_17: bool = false,
+ _reserved_bit_18: bool = false,
+ _reserved_bit_19: bool = false,
+ _reserved_bit_20: bool = false,
+ _reserved_bit_21: bool = false,
+ _reserved_bit_22: bool = false,
+ _reserved_bit_23: bool = false,
+ _reserved_bit_24: bool = false,
_reserved_bit_25: bool = false,
_reserved_bit_26: bool = false,
_reserved_bit_27: bool = false,
@@ -5314,17 +5997,21 @@ pub const CooperativeMatrixReduce = packed struct {
_reserved_bit_30: bool = false,
_reserved_bit_31: bool = false,
};
-pub const TensorClampMode = enum(u32) {
- undefined = 0,
- constant = 1,
- clamp_to_edge = 2,
- repeat = 3,
- repeat_mirrored = 4,
+pub const CooperativeMatrixLayout = enum(u32) {
+ row_major_khr = 0,
+ column_major_khr = 1,
+ row_blocked_interleaved_arm = 4202,
+ column_blocked_interleaved_arm = 4203,
};
-pub const TensorAddressingOperands = packed struct {
- tensor_view: bool = false,
- decode_func: bool = false,
- _reserved_bit_2: bool = false,
+pub const CooperativeMatrixUse = enum(u32) {
+ matrix_akhr = 0,
+ matrix_bkhr = 1,
+ matrix_accumulator_khr = 2,
+};
+pub const CooperativeMatrixReduce = packed struct {
+ row: bool = false,
+ column: bool = false,
+ @"2x2": bool = false,
_reserved_bit_3: bool = false,
_reserved_bit_4: bool = false,
_reserved_bit_5: bool = false,
@@ -5354,24 +6041,65 @@ pub const TensorAddressingOperands = packed struct {
_reserved_bit_29: bool = false,
_reserved_bit_30: bool = false,
_reserved_bit_31: bool = false,
-
- pub const Extended = struct {
- tensor_view: ?struct { id_ref: Id } = null,
- decode_func: ?struct { id_ref: Id } = null,
- _reserved_bit_2: bool = false,
- _reserved_bit_3: bool = false,
- _reserved_bit_4: bool = false,
- _reserved_bit_5: bool = false,
- _reserved_bit_6: bool = false,
- _reserved_bit_7: bool = false,
- _reserved_bit_8: bool = false,
- _reserved_bit_9: bool = false,
- _reserved_bit_10: bool = false,
- _reserved_bit_11: bool = false,
- _reserved_bit_12: bool = false,
- _reserved_bit_13: bool = false,
- _reserved_bit_14: bool = false,
- _reserved_bit_15: bool = false,
+};
+pub const TensorClampMode = enum(u32) {
+ undefined = 0,
+ constant = 1,
+ clamp_to_edge = 2,
+ repeat = 3,
+ repeat_mirrored = 4,
+};
+pub const TensorAddressingOperands = packed struct {
+ tensor_view: bool = false,
+ decode_func: bool = false,
+ _reserved_bit_2: bool = false,
+ _reserved_bit_3: bool = false,
+ _reserved_bit_4: bool = false,
+ _reserved_bit_5: bool = false,
+ _reserved_bit_6: bool = false,
+ _reserved_bit_7: bool = false,
+ _reserved_bit_8: bool = false,
+ _reserved_bit_9: bool = false,
+ _reserved_bit_10: bool = false,
+ _reserved_bit_11: bool = false,
+ _reserved_bit_12: bool = false,
+ _reserved_bit_13: bool = false,
+ _reserved_bit_14: bool = false,
+ _reserved_bit_15: bool = false,
+ _reserved_bit_16: bool = false,
+ _reserved_bit_17: bool = false,
+ _reserved_bit_18: bool = false,
+ _reserved_bit_19: bool = false,
+ _reserved_bit_20: bool = false,
+ _reserved_bit_21: bool = false,
+ _reserved_bit_22: bool = false,
+ _reserved_bit_23: bool = false,
+ _reserved_bit_24: bool = false,
+ _reserved_bit_25: bool = false,
+ _reserved_bit_26: bool = false,
+ _reserved_bit_27: bool = false,
+ _reserved_bit_28: bool = false,
+ _reserved_bit_29: bool = false,
+ _reserved_bit_30: bool = false,
+ _reserved_bit_31: bool = false,
+
+ pub const Extended = struct {
+ tensor_view: ?struct { id_ref: Id } = null,
+ decode_func: ?struct { id_ref: Id } = null,
+ _reserved_bit_2: bool = false,
+ _reserved_bit_3: bool = false,
+ _reserved_bit_4: bool = false,
+ _reserved_bit_5: bool = false,
+ _reserved_bit_6: bool = false,
+ _reserved_bit_7: bool = false,
+ _reserved_bit_8: bool = false,
+ _reserved_bit_9: bool = false,
+ _reserved_bit_10: bool = false,
+ _reserved_bit_11: bool = false,
+ _reserved_bit_12: bool = false,
+ _reserved_bit_13: bool = false,
+ _reserved_bit_14: bool = false,
+ _reserved_bit_15: bool = false,
_reserved_bit_16: bool = false,
_reserved_bit_17: bool = false,
_reserved_bit_18: bool = false,
@@ -5391,8 +6119,8 @@ pub const TensorAddressingOperands = packed struct {
};
};
pub const InitializationModeQualifier = enum(u32) {
- init_on_device_reprogram_intel = 0,
- init_on_device_reset_intel = 1,
+ init_on_device_reprogram_altera = 0,
+ init_on_device_reset_altera = 1,
};
pub const LoadCacheControl = enum(u32) {
uncached_intel = 0,
@@ -5543,8 +6271,8 @@ pub const TensorOperands = packed struct {
};
pub const InstructionSet = enum {
core,
- @"GLSL.std.450",
@"OpenCL.std",
+ @"GLSL.std.450",
zig,
pub fn instructions(self: InstructionSet) []const Instruction {
@@ -5613,482 +6341,890 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpLine",
- .opcode = 8,
+ .name = "OpLine",
+ .opcode = 8,
+ .operands = &.{
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .literal_integer, .quantifier = .required },
+ .{ .kind = .literal_integer, .quantifier = .required },
+ },
+ },
+ .{
+ .name = "OpExtension",
+ .opcode = 10,
+ .operands = &.{
+ .{ .kind = .literal_string, .quantifier = .required },
+ },
+ },
+ .{
+ .name = "OpExtInstImport",
+ .opcode = 11,
+ .operands = &.{
+ .{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .literal_string, .quantifier = .required },
+ },
+ },
+ .{
+ .name = "OpExtInst",
+ .opcode = 12,
+ .operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .literal_ext_inst_integer, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .variadic },
+ },
+ },
+ .{
+ .name = "OpMemoryModel",
+ .opcode = 14,
+ .operands = &.{
+ .{ .kind = .addressing_model, .quantifier = .required },
+ .{ .kind = .memory_model, .quantifier = .required },
+ },
+ },
+ .{
+ .name = "OpEntryPoint",
+ .opcode = 15,
+ .operands = &.{
+ .{ .kind = .execution_model, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .literal_string, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .variadic },
+ },
+ },
+ .{
+ .name = "OpExecutionMode",
+ .opcode = 16,
+ .operands = &.{
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .execution_mode, .quantifier = .required },
+ },
+ },
+ .{
+ .name = "OpCapability",
+ .opcode = 17,
+ .operands = &.{
+ .{ .kind = .capability, .quantifier = .required },
+ },
+ },
+ .{
+ .name = "OpTypeVoid",
+ .opcode = 19,
+ .operands = &.{
+ .{ .kind = .id_result, .quantifier = .required },
+ },
+ },
+ .{
+ .name = "OpTypeBool",
+ .opcode = 20,
+ .operands = &.{
+ .{ .kind = .id_result, .quantifier = .required },
+ },
+ },
+ .{
+ .name = "OpTypeInt",
+ .opcode = 21,
+ .operands = &.{
+ .{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .literal_integer, .quantifier = .required },
+ .{ .kind = .literal_integer, .quantifier = .required },
+ },
+ },
+ .{
+ .name = "OpTypeFloat",
+ .opcode = 22,
+ .operands = &.{
+ .{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .literal_integer, .quantifier = .required },
+ .{ .kind = .fp_encoding, .quantifier = .optional },
+ },
+ },
+ .{
+ .name = "OpTypeVector",
+ .opcode = 23,
+ .operands = &.{
+ .{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .literal_integer, .quantifier = .required },
+ },
+ },
+ .{
+ .name = "OpTypeMatrix",
+ .opcode = 24,
+ .operands = &.{
+ .{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .literal_integer, .quantifier = .required },
+ },
+ },
+ .{
+ .name = "OpTypeImage",
+ .opcode = 25,
+ .operands = &.{
+ .{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .dim, .quantifier = .required },
+ .{ .kind = .literal_integer, .quantifier = .required },
+ .{ .kind = .literal_integer, .quantifier = .required },
+ .{ .kind = .literal_integer, .quantifier = .required },
+ .{ .kind = .literal_integer, .quantifier = .required },
+ .{ .kind = .image_format, .quantifier = .required },
+ .{ .kind = .access_qualifier, .quantifier = .optional },
+ },
+ },
+ .{
+ .name = "OpTypeSampler",
+ .opcode = 26,
+ .operands = &.{
+ .{ .kind = .id_result, .quantifier = .required },
+ },
+ },
+ .{
+ .name = "OpTypeSampledImage",
+ .opcode = 27,
+ .operands = &.{
+ .{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ },
+ },
+ .{
+ .name = "OpTypeArray",
+ .opcode = 28,
+ .operands = &.{
+ .{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ },
+ },
+ .{
+ .name = "OpTypeRuntimeArray",
+ .opcode = 29,
+ .operands = &.{
+ .{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ },
+ },
+ .{
+ .name = "OpTypeStruct",
+ .opcode = 30,
+ .operands = &.{
+ .{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .variadic },
+ },
+ },
+ .{
+ .name = "OpTypeOpaque",
+ .opcode = 31,
+ .operands = &.{
+ .{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .literal_string, .quantifier = .required },
+ },
+ },
+ .{
+ .name = "OpTypePointer",
+ .opcode = 32,
+ .operands = &.{
+ .{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .storage_class, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ },
+ },
+ .{
+ .name = "OpTypeFunction",
+ .opcode = 33,
+ .operands = &.{
+ .{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .variadic },
+ },
+ },
+ .{
+ .name = "OpTypeEvent",
+ .opcode = 34,
+ .operands = &.{
+ .{ .kind = .id_result, .quantifier = .required },
+ },
+ },
+ .{
+ .name = "OpTypeDeviceEvent",
+ .opcode = 35,
+ .operands = &.{
+ .{ .kind = .id_result, .quantifier = .required },
+ },
+ },
+ .{
+ .name = "OpTypeReserveId",
+ .opcode = 36,
+ .operands = &.{
+ .{ .kind = .id_result, .quantifier = .required },
+ },
+ },
+ .{
+ .name = "OpTypeQueue",
+ .opcode = 37,
+ .operands = &.{
+ .{ .kind = .id_result, .quantifier = .required },
+ },
+ },
+ .{
+ .name = "OpTypePipe",
+ .opcode = 38,
+ .operands = &.{
+ .{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .access_qualifier, .quantifier = .required },
+ },
+ },
+ .{
+ .name = "OpTypeForwardPointer",
+ .opcode = 39,
+ .operands = &.{
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .storage_class, .quantifier = .required },
+ },
+ },
+ .{
+ .name = "OpConstantTrue",
+ .opcode = 41,
+ .operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
+ },
+ },
+ .{
+ .name = "OpConstantFalse",
+ .opcode = 42,
+ .operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
+ },
+ },
+ .{
+ .name = "OpConstant",
+ .opcode = 43,
+ .operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .literal_context_dependent_number, .quantifier = .required },
+ },
+ },
+ .{
+ .name = "OpConstantComposite",
+ .opcode = 44,
+ .operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .variadic },
+ },
+ },
+ .{
+ .name = "OpConstantSampler",
+ .opcode = 45,
+ .operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .sampler_addressing_mode, .quantifier = .required },
+ .{ .kind = .literal_integer, .quantifier = .required },
+ .{ .kind = .sampler_filter_mode, .quantifier = .required },
+ },
+ },
+ .{
+ .name = "OpConstantNull",
+ .opcode = 46,
+ .operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
+ },
+ },
+ .{
+ .name = "OpSpecConstantTrue",
+ .opcode = 48,
+ .operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
+ },
+ },
+ .{
+ .name = "OpSpecConstantFalse",
+ .opcode = 49,
+ .operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
+ },
+ },
+ .{
+ .name = "OpSpecConstant",
+ .opcode = 50,
+ .operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .literal_context_dependent_number, .quantifier = .required },
+ },
+ },
+ .{
+ .name = "OpSpecConstantComposite",
+ .opcode = 51,
+ .operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .variadic },
+ },
+ },
+ .{
+ .name = "OpSpecConstantOp",
+ .opcode = 52,
+ .operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .literal_spec_constant_op_integer, .quantifier = .required },
+ },
+ },
+ .{
+ .name = "OpFunction",
+ .opcode = 54,
+ .operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .function_control, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ },
+ },
+ .{
+ .name = "OpFunctionParameter",
+ .opcode = 55,
+ .operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
+ },
+ },
+ .{
+ .name = "OpFunctionEnd",
+ .opcode = 56,
+ .operands = &.{},
+ },
+ .{
+ .name = "OpFunctionCall",
+ .opcode = 57,
.operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .literal_integer, .quantifier = .required },
- .{ .kind = .literal_integer, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .variadic },
},
},
.{
- .name = "OpExtension",
- .opcode = 10,
+ .name = "OpVariable",
+ .opcode = 59,
.operands = &.{
- .{ .kind = .literal_string, .quantifier = .required },
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .storage_class, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .optional },
},
},
.{
- .name = "OpExtInstImport",
- .opcode = 11,
+ .name = "OpImageTexelPointer",
+ .opcode = 60,
.operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .literal_string, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpExtInst",
- .opcode = 12,
+ .name = "OpLoad",
+ .opcode = 61,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .literal_ext_inst_integer, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .variadic },
+ .{ .kind = .memory_access, .quantifier = .optional },
},
},
.{
- .name = "OpMemoryModel",
- .opcode = 14,
+ .name = "OpStore",
+ .opcode = 62,
.operands = &.{
- .{ .kind = .addressing_model, .quantifier = .required },
- .{ .kind = .memory_model, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .memory_access, .quantifier = .optional },
},
},
.{
- .name = "OpEntryPoint",
- .opcode = 15,
+ .name = "OpCopyMemory",
+ .opcode = 63,
.operands = &.{
- .{ .kind = .execution_model, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .literal_string, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .variadic },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .memory_access, .quantifier = .optional },
+ .{ .kind = .memory_access, .quantifier = .optional },
},
},
.{
- .name = "OpExecutionMode",
- .opcode = 16,
+ .name = "OpCopyMemorySized",
+ .opcode = 64,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .execution_mode, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .memory_access, .quantifier = .optional },
+ .{ .kind = .memory_access, .quantifier = .optional },
},
},
.{
- .name = "OpCapability",
- .opcode = 17,
+ .name = "OpAccessChain",
+ .opcode = 65,
.operands = &.{
- .{ .kind = .capability, .quantifier = .required },
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .variadic },
},
},
.{
- .name = "OpTypeVoid",
- .opcode = 19,
+ .name = "OpInBoundsAccessChain",
+ .opcode = 66,
.operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .variadic },
},
},
.{
- .name = "OpTypeBool",
- .opcode = 20,
+ .name = "OpPtrAccessChain",
+ .opcode = 67,
.operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .variadic },
},
},
.{
- .name = "OpTypeInt",
- .opcode = 21,
+ .name = "OpArrayLength",
+ .opcode = 68,
.operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .literal_integer, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .literal_integer, .quantifier = .required },
},
},
.{
- .name = "OpTypeFloat",
- .opcode = 22,
+ .name = "OpGenericPtrMemSemantics",
+ .opcode = 69,
.operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .literal_integer, .quantifier = .required },
- .{ .kind = .fp_encoding, .quantifier = .optional },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpTypeVector",
- .opcode = 23,
+ .name = "OpInBoundsPtrAccessChain",
+ .opcode = 70,
.operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .literal_integer, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .variadic },
},
},
.{
- .name = "OpTypeMatrix",
- .opcode = 24,
+ .name = "OpDecorate",
+ .opcode = 71,
.operands = &.{
- .{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .literal_integer, .quantifier = .required },
+ .{ .kind = .decoration, .quantifier = .required },
},
},
.{
- .name = "OpTypeImage",
- .opcode = 25,
+ .name = "OpMemberDecorate",
+ .opcode = 72,
.operands = &.{
- .{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .dim, .quantifier = .required },
.{ .kind = .literal_integer, .quantifier = .required },
- .{ .kind = .literal_integer, .quantifier = .required },
- .{ .kind = .literal_integer, .quantifier = .required },
- .{ .kind = .literal_integer, .quantifier = .required },
- .{ .kind = .image_format, .quantifier = .required },
- .{ .kind = .access_qualifier, .quantifier = .optional },
+ .{ .kind = .decoration, .quantifier = .required },
},
},
.{
- .name = "OpTypeSampler",
- .opcode = 26,
+ .name = "OpDecorationGroup",
+ .opcode = 73,
.operands = &.{
.{ .kind = .id_result, .quantifier = .required },
},
},
.{
- .name = "OpTypeSampledImage",
- .opcode = 27,
+ .name = "OpGroupDecorate",
+ .opcode = 74,
.operands = &.{
- .{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .variadic },
},
},
.{
- .name = "OpTypeArray",
- .opcode = 28,
+ .name = "OpGroupMemberDecorate",
+ .opcode = 75,
.operands = &.{
- .{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .pair_id_ref_literal_integer, .quantifier = .variadic },
},
},
.{
- .name = "OpTypeRuntimeArray",
- .opcode = 29,
+ .name = "OpVectorExtractDynamic",
+ .opcode = 77,
.operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpTypeStruct",
- .opcode = 30,
- .operands = &.{
- .{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .variadic },
- },
- },
- .{
- .name = "OpTypeOpaque",
- .opcode = 31,
+ .name = "OpVectorInsertDynamic",
+ .opcode = 78,
.operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .literal_string, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpTypePointer",
- .opcode = 32,
+ .name = "OpVectorShuffle",
+ .opcode = 79,
.operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .storage_class, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .literal_integer, .quantifier = .variadic },
},
},
.{
- .name = "OpTypeFunction",
- .opcode = 33,
+ .name = "OpCompositeConstruct",
+ .opcode = 80,
.operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .variadic },
},
},
.{
- .name = "OpTypeEvent",
- .opcode = 34,
+ .name = "OpCompositeExtract",
+ .opcode = 81,
.operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .literal_integer, .quantifier = .variadic },
},
},
.{
- .name = "OpTypeDeviceEvent",
- .opcode = 35,
+ .name = "OpCompositeInsert",
+ .opcode = 82,
.operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .literal_integer, .quantifier = .variadic },
},
},
.{
- .name = "OpTypeReserveId",
- .opcode = 36,
+ .name = "OpCopyObject",
+ .opcode = 83,
.operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpTypeQueue",
- .opcode = 37,
+ .name = "OpTranspose",
+ .opcode = 84,
.operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpTypePipe",
- .opcode = 38,
+ .name = "OpSampledImage",
+ .opcode = 86,
.operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .access_qualifier, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpTypeForwardPointer",
- .opcode = 39,
+ .name = "OpImageSampleImplicitLod",
+ .opcode = 87,
.operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .storage_class, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .image_operands, .quantifier = .optional },
},
},
.{
- .name = "OpConstantTrue",
- .opcode = 41,
+ .name = "OpImageSampleExplicitLod",
+ .opcode = 88,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .image_operands, .quantifier = .required },
},
},
.{
- .name = "OpConstantFalse",
- .opcode = 42,
+ .name = "OpImageSampleDrefImplicitLod",
+ .opcode = 89,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .image_operands, .quantifier = .optional },
},
},
.{
- .name = "OpConstant",
- .opcode = 43,
+ .name = "OpImageSampleDrefExplicitLod",
+ .opcode = 90,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .literal_context_dependent_number, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .image_operands, .quantifier = .required },
},
},
.{
- .name = "OpConstantComposite",
- .opcode = 44,
+ .name = "OpImageSampleProjImplicitLod",
+ .opcode = 91,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .variadic },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .image_operands, .quantifier = .optional },
},
},
.{
- .name = "OpConstantSampler",
- .opcode = 45,
+ .name = "OpImageSampleProjExplicitLod",
+ .opcode = 92,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .sampler_addressing_mode, .quantifier = .required },
- .{ .kind = .literal_integer, .quantifier = .required },
- .{ .kind = .sampler_filter_mode, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .image_operands, .quantifier = .required },
},
},
.{
- .name = "OpConstantNull",
- .opcode = 46,
+ .name = "OpImageSampleProjDrefImplicitLod",
+ .opcode = 93,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .image_operands, .quantifier = .optional },
},
},
.{
- .name = "OpSpecConstantTrue",
- .opcode = 48,
+ .name = "OpImageSampleProjDrefExplicitLod",
+ .opcode = 94,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .image_operands, .quantifier = .required },
},
},
.{
- .name = "OpSpecConstantFalse",
- .opcode = 49,
+ .name = "OpImageFetch",
+ .opcode = 95,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .image_operands, .quantifier = .optional },
},
},
.{
- .name = "OpSpecConstant",
- .opcode = 50,
+ .name = "OpImageGather",
+ .opcode = 96,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .literal_context_dependent_number, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .image_operands, .quantifier = .optional },
},
},
.{
- .name = "OpSpecConstantComposite",
- .opcode = 51,
+ .name = "OpImageDrefGather",
+ .opcode = 97,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .variadic },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .image_operands, .quantifier = .optional },
},
},
.{
- .name = "OpSpecConstantOp",
- .opcode = 52,
+ .name = "OpImageRead",
+ .opcode = 98,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .literal_spec_constant_op_integer, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .image_operands, .quantifier = .optional },
},
},
.{
- .name = "OpFunction",
- .opcode = 54,
+ .name = "OpImageWrite",
+ .opcode = 99,
.operands = &.{
- .{ .kind = .id_result_type, .quantifier = .required },
- .{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .function_control, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .image_operands, .quantifier = .optional },
},
},
.{
- .name = "OpFunctionParameter",
- .opcode = 55,
+ .name = "OpImage",
+ .opcode = 100,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpFunctionEnd",
- .opcode = 56,
- .operands = &.{},
- },
- .{
- .name = "OpFunctionCall",
- .opcode = 57,
+ .name = "OpImageQueryFormat",
+ .opcode = 101,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .variadic },
},
},
.{
- .name = "OpVariable",
- .opcode = 59,
+ .name = "OpImageQueryOrder",
+ .opcode = 102,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .storage_class, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .optional },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpImageTexelPointer",
- .opcode = 60,
+ .name = "OpImageQuerySizeLod",
+ .opcode = 103,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpLoad",
- .opcode = 61,
+ .name = "OpImageQuerySize",
+ .opcode = 104,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .memory_access, .quantifier = .optional },
},
},
.{
- .name = "OpStore",
- .opcode = 62,
+ .name = "OpImageQueryLod",
+ .opcode = 105,
.operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .memory_access, .quantifier = .optional },
},
},
.{
- .name = "OpCopyMemory",
- .opcode = 63,
+ .name = "OpImageQueryLevels",
+ .opcode = 106,
.operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .memory_access, .quantifier = .optional },
- .{ .kind = .memory_access, .quantifier = .optional },
},
},
.{
- .name = "OpCopyMemorySized",
- .opcode = 64,
+ .name = "OpImageQuerySamples",
+ .opcode = 107,
.operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .memory_access, .quantifier = .optional },
- .{ .kind = .memory_access, .quantifier = .optional },
},
},
.{
- .name = "OpAccessChain",
- .opcode = 65,
+ .name = "OpConvertFToU",
+ .opcode = 109,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .variadic },
},
},
.{
- .name = "OpInBoundsAccessChain",
- .opcode = 66,
+ .name = "OpConvertFToS",
+ .opcode = 110,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .variadic },
},
},
.{
- .name = "OpPtrAccessChain",
- .opcode = 67,
+ .name = "OpConvertSToF",
+ .opcode = 111,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .variadic },
},
},
.{
- .name = "OpArrayLength",
- .opcode = 68,
+ .name = "OpConvertUToF",
+ .opcode = 112,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .literal_integer, .quantifier = .required },
},
},
.{
- .name = "OpGenericPtrMemSemantics",
- .opcode = 69,
+ .name = "OpUConvert",
+ .opcode = 113,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
@@ -6096,139 +7232,146 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpInBoundsPtrAccessChain",
- .opcode = 70,
+ .name = "OpSConvert",
+ .opcode = 114,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .variadic },
},
},
.{
- .name = "OpDecorate",
- .opcode = 71,
+ .name = "OpFConvert",
+ .opcode = 115,
.operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .decoration, .quantifier = .required },
},
},
.{
- .name = "OpMemberDecorate",
- .opcode = 72,
+ .name = "OpQuantizeToF16",
+ .opcode = 116,
.operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .literal_integer, .quantifier = .required },
- .{ .kind = .decoration, .quantifier = .required },
},
},
.{
- .name = "OpDecorationGroup",
- .opcode = 73,
+ .name = "OpConvertPtrToU",
+ .opcode = 117,
.operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpGroupDecorate",
- .opcode = 74,
+ .name = "OpSatConvertSToU",
+ .opcode = 118,
.operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .variadic },
},
},
.{
- .name = "OpGroupMemberDecorate",
- .opcode = 75,
+ .name = "OpSatConvertUToS",
+ .opcode = 119,
.operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .pair_id_ref_literal_integer, .quantifier = .variadic },
},
},
.{
- .name = "OpVectorExtractDynamic",
- .opcode = 77,
+ .name = "OpConvertUToPtr",
+ .opcode = 120,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpVectorInsertDynamic",
- .opcode = 78,
+ .name = "OpPtrCastToGeneric",
+ .opcode = 121,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpVectorShuffle",
- .opcode = 79,
+ .name = "OpGenericCastToPtr",
+ .opcode = 122,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .literal_integer, .quantifier = .variadic },
},
},
.{
- .name = "OpCompositeConstruct",
- .opcode = 80,
+ .name = "OpGenericCastToPtrExplicit",
+ .opcode = 123,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .variadic },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .storage_class, .quantifier = .required },
},
},
.{
- .name = "OpCompositeExtract",
- .opcode = 81,
+ .name = "OpBitcast",
+ .opcode = 124,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .literal_integer, .quantifier = .variadic },
},
},
.{
- .name = "OpCompositeInsert",
- .opcode = 82,
+ .name = "OpSNegate",
+ .opcode = 126,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ },
+ },
+ .{
+ .name = "OpFNegate",
+ .opcode = 127,
+ .operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .literal_integer, .quantifier = .variadic },
},
},
.{
- .name = "OpCopyObject",
- .opcode = 83,
+ .name = "OpIAdd",
+ .opcode = 128,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpTranspose",
- .opcode = 84,
+ .name = "OpFAdd",
+ .opcode = 129,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpSampledImage",
- .opcode = 86,
+ .name = "OpISub",
+ .opcode = 130,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
@@ -6237,183 +7380,168 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpImageSampleImplicitLod",
- .opcode = 87,
+ .name = "OpFSub",
+ .opcode = 131,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .image_operands, .quantifier = .optional },
},
},
.{
- .name = "OpImageSampleExplicitLod",
- .opcode = 88,
+ .name = "OpIMul",
+ .opcode = 132,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .image_operands, .quantifier = .required },
},
},
.{
- .name = "OpImageSampleDrefImplicitLod",
- .opcode = 89,
+ .name = "OpFMul",
+ .opcode = 133,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .image_operands, .quantifier = .optional },
},
},
.{
- .name = "OpImageSampleDrefExplicitLod",
- .opcode = 90,
+ .name = "OpUDiv",
+ .opcode = 134,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .image_operands, .quantifier = .required },
},
},
.{
- .name = "OpImageSampleProjImplicitLod",
- .opcode = 91,
+ .name = "OpSDiv",
+ .opcode = 135,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .image_operands, .quantifier = .optional },
},
},
.{
- .name = "OpImageSampleProjExplicitLod",
- .opcode = 92,
+ .name = "OpFDiv",
+ .opcode = 136,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .image_operands, .quantifier = .required },
},
},
.{
- .name = "OpImageSampleProjDrefImplicitLod",
- .opcode = 93,
+ .name = "OpUMod",
+ .opcode = 137,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .image_operands, .quantifier = .optional },
},
},
.{
- .name = "OpImageSampleProjDrefExplicitLod",
- .opcode = 94,
+ .name = "OpSRem",
+ .opcode = 138,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .image_operands, .quantifier = .required },
},
},
.{
- .name = "OpImageFetch",
- .opcode = 95,
+ .name = "OpSMod",
+ .opcode = 139,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .image_operands, .quantifier = .optional },
},
},
.{
- .name = "OpImageGather",
- .opcode = 96,
+ .name = "OpFRem",
+ .opcode = 140,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .image_operands, .quantifier = .optional },
},
},
.{
- .name = "OpImageDrefGather",
- .opcode = 97,
+ .name = "OpFMod",
+ .opcode = 141,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .image_operands, .quantifier = .optional },
},
},
.{
- .name = "OpImageRead",
- .opcode = 98,
+ .name = "OpVectorTimesScalar",
+ .opcode = 142,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .image_operands, .quantifier = .optional },
},
},
.{
- .name = "OpImageWrite",
- .opcode = 99,
+ .name = "OpMatrixTimesScalar",
+ .opcode = 143,
.operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .image_operands, .quantifier = .optional },
},
},
.{
- .name = "OpImage",
- .opcode = 100,
+ .name = "OpVectorTimesMatrix",
+ .opcode = 144,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpImageQueryFormat",
- .opcode = 101,
+ .name = "OpMatrixTimesVector",
+ .opcode = 145,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpImageQueryOrder",
- .opcode = 102,
+ .name = "OpMatrixTimesMatrix",
+ .opcode = 146,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpImageQuerySizeLod",
- .opcode = 103,
+ .name = "OpOuterProduct",
+ .opcode = 147,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
@@ -6422,17 +7550,18 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpImageQuerySize",
- .opcode = 104,
+ .name = "OpDot",
+ .opcode = 148,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpImageQueryLod",
- .opcode = 105,
+ .name = "OpIAddCarry",
+ .opcode = 149,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
@@ -6441,35 +7570,38 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpImageQueryLevels",
- .opcode = 106,
+ .name = "OpISubBorrow",
+ .opcode = 150,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpImageQuerySamples",
- .opcode = 107,
+ .name = "OpUMulExtended",
+ .opcode = 151,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpConvertFToU",
- .opcode = 109,
+ .name = "OpSMulExtended",
+ .opcode = 152,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpConvertFToS",
- .opcode = 110,
+ .name = "OpAny",
+ .opcode = 154,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
@@ -6477,8 +7609,8 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpConvertSToF",
- .opcode = 111,
+ .name = "OpAll",
+ .opcode = 155,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
@@ -6486,8 +7618,8 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpConvertUToF",
- .opcode = 112,
+ .name = "OpIsNan",
+ .opcode = 156,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
@@ -6495,8 +7627,8 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpUConvert",
- .opcode = 113,
+ .name = "OpIsInf",
+ .opcode = 157,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
@@ -6504,8 +7636,8 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpSConvert",
- .opcode = 114,
+ .name = "OpIsFinite",
+ .opcode = 158,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
@@ -6513,8 +7645,8 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpFConvert",
- .opcode = 115,
+ .name = "OpIsNormal",
+ .opcode = 159,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
@@ -6522,8 +7654,8 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpQuantizeToF16",
- .opcode = 116,
+ .name = "OpSignBitSet",
+ .opcode = 160,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
@@ -6531,72 +7663,78 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpConvertPtrToU",
- .opcode = 117,
+ .name = "OpLessOrGreater",
+ .opcode = 161,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpSatConvertSToU",
- .opcode = 118,
+ .name = "OpOrdered",
+ .opcode = 162,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpSatConvertUToS",
- .opcode = 119,
+ .name = "OpUnordered",
+ .opcode = 163,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpConvertUToPtr",
- .opcode = 120,
+ .name = "OpLogicalEqual",
+ .opcode = 164,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpPtrCastToGeneric",
- .opcode = 121,
+ .name = "OpLogicalNotEqual",
+ .opcode = 165,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpGenericCastToPtr",
- .opcode = 122,
+ .name = "OpLogicalOr",
+ .opcode = 166,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpGenericCastToPtrExplicit",
- .opcode = 123,
+ .name = "OpLogicalAnd",
+ .opcode = 167,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .storage_class, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpBitcast",
- .opcode = 124,
+ .name = "OpLogicalNot",
+ .opcode = 168,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
@@ -6604,26 +7742,29 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpSNegate",
- .opcode = 126,
+ .name = "OpSelect",
+ .opcode = 169,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpFNegate",
- .opcode = 127,
+ .name = "OpIEqual",
+ .opcode = 170,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpIAdd",
- .opcode = 128,
+ .name = "OpINotEqual",
+ .opcode = 171,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
@@ -6632,8 +7773,8 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpFAdd",
- .opcode = 129,
+ .name = "OpUGreaterThan",
+ .opcode = 172,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
@@ -6642,8 +7783,8 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpISub",
- .opcode = 130,
+ .name = "OpSGreaterThan",
+ .opcode = 173,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
@@ -6652,8 +7793,8 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpFSub",
- .opcode = 131,
+ .name = "OpUGreaterThanEqual",
+ .opcode = 174,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
@@ -6662,8 +7803,8 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpIMul",
- .opcode = 132,
+ .name = "OpSGreaterThanEqual",
+ .opcode = 175,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
@@ -6672,8 +7813,8 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpFMul",
- .opcode = 133,
+ .name = "OpULessThan",
+ .opcode = 176,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
@@ -6682,8 +7823,8 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpUDiv",
- .opcode = 134,
+ .name = "OpSLessThan",
+ .opcode = 177,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
@@ -6692,8 +7833,8 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpSDiv",
- .opcode = 135,
+ .name = "OpULessThanEqual",
+ .opcode = 178,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
@@ -6702,8 +7843,8 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpFDiv",
- .opcode = 136,
+ .name = "OpSLessThanEqual",
+ .opcode = 179,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
@@ -6712,8 +7853,8 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpUMod",
- .opcode = 137,
+ .name = "OpFOrdEqual",
+ .opcode = 180,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
@@ -6722,8 +7863,8 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpSRem",
- .opcode = 138,
+ .name = "OpFUnordEqual",
+ .opcode = 181,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
@@ -6732,8 +7873,8 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpSMod",
- .opcode = 139,
+ .name = "OpFOrdNotEqual",
+ .opcode = 182,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
@@ -6742,8 +7883,8 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpFRem",
- .opcode = 140,
+ .name = "OpFUnordNotEqual",
+ .opcode = 183,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
@@ -6752,8 +7893,8 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpFMod",
- .opcode = 141,
+ .name = "OpFOrdLessThan",
+ .opcode = 184,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
@@ -6762,8 +7903,8 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpVectorTimesScalar",
- .opcode = 142,
+ .name = "OpFUnordLessThan",
+ .opcode = 185,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
@@ -6771,9 +7912,9 @@ pub const InstructionSet = enum {
.{ .kind = .id_ref, .quantifier = .required },
},
},
- .{
- .name = "OpMatrixTimesScalar",
- .opcode = 143,
+ .{
+ .name = "OpFOrdGreaterThan",
+ .opcode = 186,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
@@ -6782,8 +7923,8 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpVectorTimesMatrix",
- .opcode = 144,
+ .name = "OpFUnordGreaterThan",
+ .opcode = 187,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
@@ -6792,8 +7933,8 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpMatrixTimesVector",
- .opcode = 145,
+ .name = "OpFOrdLessThanEqual",
+ .opcode = 188,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
@@ -6802,8 +7943,8 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpMatrixTimesMatrix",
- .opcode = 146,
+ .name = "OpFUnordLessThanEqual",
+ .opcode = 189,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
@@ -6812,8 +7953,8 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpOuterProduct",
- .opcode = 147,
+ .name = "OpFOrdGreaterThanEqual",
+ .opcode = 190,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
@@ -6822,8 +7963,8 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpDot",
- .opcode = 148,
+ .name = "OpFUnordGreaterThanEqual",
+ .opcode = 191,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
@@ -6832,8 +7973,8 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpIAddCarry",
- .opcode = 149,
+ .name = "OpShiftRightLogical",
+ .opcode = 194,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
@@ -6842,8 +7983,8 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpISubBorrow",
- .opcode = 150,
+ .name = "OpShiftRightArithmetic",
+ .opcode = 195,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
@@ -6852,8 +7993,8 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpUMulExtended",
- .opcode = 151,
+ .name = "OpShiftLeftLogical",
+ .opcode = 196,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
@@ -6862,8 +8003,8 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpSMulExtended",
- .opcode = 152,
+ .name = "OpBitwiseOr",
+ .opcode = 197,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
@@ -6872,26 +8013,28 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpAny",
- .opcode = 154,
+ .name = "OpBitwiseXor",
+ .opcode = 198,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpAll",
- .opcode = 155,
+ .name = "OpBitwiseAnd",
+ .opcode = 199,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpIsNan",
- .opcode = 156,
+ .name = "OpNot",
+ .opcode = 200,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
@@ -6899,35 +8042,42 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpIsInf",
- .opcode = 157,
+ .name = "OpBitFieldInsert",
+ .opcode = 201,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpIsFinite",
- .opcode = 158,
+ .name = "OpBitFieldSExtract",
+ .opcode = 202,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpIsNormal",
- .opcode = 159,
+ .name = "OpBitFieldUExtract",
+ .opcode = 203,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpSignBitSet",
- .opcode = 160,
+ .name = "OpBitReverse",
+ .opcode = 204,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
@@ -6935,78 +8085,71 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpLessOrGreater",
- .opcode = 161,
+ .name = "OpBitCount",
+ .opcode = 205,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpOrdered",
- .opcode = 162,
+ .name = "OpDPdx",
+ .opcode = 207,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpUnordered",
- .opcode = 163,
+ .name = "OpDPdy",
+ .opcode = 208,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpLogicalEqual",
- .opcode = 164,
+ .name = "OpFwidth",
+ .opcode = 209,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpLogicalNotEqual",
- .opcode = 165,
+ .name = "OpDPdxFine",
+ .opcode = 210,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpLogicalOr",
- .opcode = 166,
+ .name = "OpDPdyFine",
+ .opcode = 211,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpLogicalAnd",
- .opcode = 167,
+ .name = "OpFwidthFine",
+ .opcode = 212,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpLogicalNot",
- .opcode = 168,
+ .name = "OpDPdxCoarse",
+ .opcode = 213,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
@@ -7014,936 +8157,1028 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpSelect",
- .opcode = 169,
+ .name = "OpDPdyCoarse",
+ .opcode = 214,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpIEqual",
- .opcode = 170,
+ .name = "OpFwidthCoarse",
+ .opcode = 215,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpINotEqual",
- .opcode = 171,
+ .name = "OpEmitVertex",
+ .opcode = 218,
+ .operands = &.{},
+ },
+ .{
+ .name = "OpEndPrimitive",
+ .opcode = 219,
+ .operands = &.{},
+ },
+ .{
+ .name = "OpEmitStreamVertex",
+ .opcode = 220,
.operands = &.{
- .{ .kind = .id_result_type, .quantifier = .required },
- .{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpUGreaterThan",
- .opcode = 172,
+ .name = "OpEndStreamPrimitive",
+ .opcode = 221,
.operands = &.{
- .{ .kind = .id_result_type, .quantifier = .required },
- .{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpSGreaterThan",
- .opcode = 173,
+ .name = "OpControlBarrier",
+ .opcode = 224,
.operands = &.{
- .{ .kind = .id_result_type, .quantifier = .required },
- .{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_scope, .quantifier = .required },
+ .{ .kind = .id_scope, .quantifier = .required },
+ .{ .kind = .id_memory_semantics, .quantifier = .required },
},
},
.{
- .name = "OpUGreaterThanEqual",
- .opcode = 174,
+ .name = "OpMemoryBarrier",
+ .opcode = 225,
.operands = &.{
- .{ .kind = .id_result_type, .quantifier = .required },
- .{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_scope, .quantifier = .required },
+ .{ .kind = .id_memory_semantics, .quantifier = .required },
},
},
.{
- .name = "OpSGreaterThanEqual",
- .opcode = 175,
+ .name = "OpAtomicLoad",
+ .opcode = 227,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_scope, .quantifier = .required },
+ .{ .kind = .id_memory_semantics, .quantifier = .required },
},
},
.{
- .name = "OpULessThan",
- .opcode = 176,
+ .name = "OpAtomicStore",
+ .opcode = 228,
.operands = &.{
- .{ .kind = .id_result_type, .quantifier = .required },
- .{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_scope, .quantifier = .required },
+ .{ .kind = .id_memory_semantics, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpSLessThan",
- .opcode = 177,
+ .name = "OpAtomicExchange",
+ .opcode = 229,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_scope, .quantifier = .required },
+ .{ .kind = .id_memory_semantics, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpULessThanEqual",
- .opcode = 178,
+ .name = "OpAtomicCompareExchange",
+ .opcode = 230,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_scope, .quantifier = .required },
+ .{ .kind = .id_memory_semantics, .quantifier = .required },
+ .{ .kind = .id_memory_semantics, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpSLessThanEqual",
- .opcode = 179,
+ .name = "OpAtomicCompareExchangeWeak",
+ .opcode = 231,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_scope, .quantifier = .required },
+ .{ .kind = .id_memory_semantics, .quantifier = .required },
+ .{ .kind = .id_memory_semantics, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpFOrdEqual",
- .opcode = 180,
+ .name = "OpAtomicIIncrement",
+ .opcode = 232,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_scope, .quantifier = .required },
+ .{ .kind = .id_memory_semantics, .quantifier = .required },
},
},
.{
- .name = "OpFUnordEqual",
- .opcode = 181,
+ .name = "OpAtomicIDecrement",
+ .opcode = 233,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_scope, .quantifier = .required },
+ .{ .kind = .id_memory_semantics, .quantifier = .required },
},
},
.{
- .name = "OpFOrdNotEqual",
- .opcode = 182,
+ .name = "OpAtomicIAdd",
+ .opcode = 234,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_scope, .quantifier = .required },
+ .{ .kind = .id_memory_semantics, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpFUnordNotEqual",
- .opcode = 183,
+ .name = "OpAtomicISub",
+ .opcode = 235,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_scope, .quantifier = .required },
+ .{ .kind = .id_memory_semantics, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpFOrdLessThan",
- .opcode = 184,
+ .name = "OpAtomicSMin",
+ .opcode = 236,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_scope, .quantifier = .required },
+ .{ .kind = .id_memory_semantics, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpFUnordLessThan",
- .opcode = 185,
+ .name = "OpAtomicUMin",
+ .opcode = 237,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_scope, .quantifier = .required },
+ .{ .kind = .id_memory_semantics, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpFOrdGreaterThan",
- .opcode = 186,
+ .name = "OpAtomicSMax",
+ .opcode = 238,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_scope, .quantifier = .required },
+ .{ .kind = .id_memory_semantics, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpFUnordGreaterThan",
- .opcode = 187,
+ .name = "OpAtomicUMax",
+ .opcode = 239,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_scope, .quantifier = .required },
+ .{ .kind = .id_memory_semantics, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpFOrdLessThanEqual",
- .opcode = 188,
+ .name = "OpAtomicAnd",
+ .opcode = 240,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_scope, .quantifier = .required },
+ .{ .kind = .id_memory_semantics, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpFUnordLessThanEqual",
- .opcode = 189,
+ .name = "OpAtomicOr",
+ .opcode = 241,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_scope, .quantifier = .required },
+ .{ .kind = .id_memory_semantics, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpFOrdGreaterThanEqual",
- .opcode = 190,
+ .name = "OpAtomicXor",
+ .opcode = 242,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_scope, .quantifier = .required },
+ .{ .kind = .id_memory_semantics, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpFUnordGreaterThanEqual",
- .opcode = 191,
+ .name = "OpPhi",
+ .opcode = 245,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .pair_id_ref_id_ref, .quantifier = .variadic },
},
},
.{
- .name = "OpShiftRightLogical",
- .opcode = 194,
+ .name = "OpLoopMerge",
+ .opcode = 246,
.operands = &.{
- .{ .kind = .id_result_type, .quantifier = .required },
- .{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .loop_control, .quantifier = .required },
},
},
.{
- .name = "OpShiftRightArithmetic",
- .opcode = 195,
+ .name = "OpSelectionMerge",
+ .opcode = 247,
.operands = &.{
- .{ .kind = .id_result_type, .quantifier = .required },
- .{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .selection_control, .quantifier = .required },
},
},
.{
- .name = "OpShiftLeftLogical",
- .opcode = 196,
+ .name = "OpLabel",
+ .opcode = 248,
.operands = &.{
- .{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpBitwiseOr",
- .opcode = 197,
+ .name = "OpBranch",
+ .opcode = 249,
.operands = &.{
- .{ .kind = .id_result_type, .quantifier = .required },
- .{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpBitwiseXor",
- .opcode = 198,
+ .name = "OpBranchConditional",
+ .opcode = 250,
.operands = &.{
- .{ .kind = .id_result_type, .quantifier = .required },
- .{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .literal_integer, .quantifier = .variadic },
},
},
.{
- .name = "OpBitwiseAnd",
- .opcode = 199,
+ .name = "OpSwitch",
+ .opcode = 251,
.operands = &.{
- .{ .kind = .id_result_type, .quantifier = .required },
- .{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .pair_literal_integer_id_ref, .quantifier = .variadic },
},
},
.{
- .name = "OpNot",
- .opcode = 200,
+ .name = "OpKill",
+ .opcode = 252,
+ .operands = &.{},
+ },
+ .{
+ .name = "OpReturn",
+ .opcode = 253,
+ .operands = &.{},
+ },
+ .{
+ .name = "OpReturnValue",
+ .opcode = 254,
.operands = &.{
- .{ .kind = .id_result_type, .quantifier = .required },
- .{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpBitFieldInsert",
- .opcode = 201,
+ .name = "OpUnreachable",
+ .opcode = 255,
+ .operands = &.{},
+ },
+ .{
+ .name = "OpLifetimeStart",
+ .opcode = 256,
.operands = &.{
- .{ .kind = .id_result_type, .quantifier = .required },
- .{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .literal_integer, .quantifier = .required },
},
},
.{
- .name = "OpBitFieldSExtract",
- .opcode = 202,
+ .name = "OpLifetimeStop",
+ .opcode = 257,
.operands = &.{
- .{ .kind = .id_result_type, .quantifier = .required },
- .{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .literal_integer, .quantifier = .required },
},
},
.{
- .name = "OpBitFieldUExtract",
- .opcode = 203,
+ .name = "OpGroupAsyncCopy",
+ .opcode = 259,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_scope, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpBitReverse",
- .opcode = 204,
+ .name = "OpGroupWaitEvents",
+ .opcode = 260,
.operands = &.{
- .{ .kind = .id_result_type, .quantifier = .required },
- .{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_scope, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpBitCount",
- .opcode = 205,
+ .name = "OpGroupAll",
+ .opcode = 261,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_scope, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpDPdx",
- .opcode = 207,
+ .name = "OpGroupAny",
+ .opcode = 262,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_scope, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpDPdy",
- .opcode = 208,
+ .name = "OpGroupBroadcast",
+ .opcode = 263,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_scope, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpFwidth",
- .opcode = 209,
+ .name = "OpGroupIAdd",
+ .opcode = 264,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_scope, .quantifier = .required },
+ .{ .kind = .group_operation, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpDPdxFine",
- .opcode = 210,
+ .name = "OpGroupFAdd",
+ .opcode = 265,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_scope, .quantifier = .required },
+ .{ .kind = .group_operation, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpDPdyFine",
- .opcode = 211,
+ .name = "OpGroupFMin",
+ .opcode = 266,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_scope, .quantifier = .required },
+ .{ .kind = .group_operation, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpFwidthFine",
- .opcode = 212,
+ .name = "OpGroupUMin",
+ .opcode = 267,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_scope, .quantifier = .required },
+ .{ .kind = .group_operation, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpDPdxCoarse",
- .opcode = 213,
+ .name = "OpGroupSMin",
+ .opcode = 268,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_scope, .quantifier = .required },
+ .{ .kind = .group_operation, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpDPdyCoarse",
- .opcode = 214,
+ .name = "OpGroupFMax",
+ .opcode = 269,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_scope, .quantifier = .required },
+ .{ .kind = .group_operation, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpFwidthCoarse",
- .opcode = 215,
+ .name = "OpGroupUMax",
+ .opcode = 270,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_scope, .quantifier = .required },
+ .{ .kind = .group_operation, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpEmitVertex",
- .opcode = 218,
- .operands = &.{},
- },
- .{
- .name = "OpEndPrimitive",
- .opcode = 219,
- .operands = &.{},
- },
- .{
- .name = "OpEmitStreamVertex",
- .opcode = 220,
+ .name = "OpGroupSMax",
+ .opcode = 271,
.operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_scope, .quantifier = .required },
+ .{ .kind = .group_operation, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpEndStreamPrimitive",
- .opcode = 221,
+ .name = "OpReadPipe",
+ .opcode = 274,
.operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpControlBarrier",
- .opcode = 224,
+ .name = "OpWritePipe",
+ .opcode = 275,
.operands = &.{
- .{ .kind = .id_scope, .quantifier = .required },
- .{ .kind = .id_scope, .quantifier = .required },
- .{ .kind = .id_memory_semantics, .quantifier = .required },
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpMemoryBarrier",
- .opcode = 225,
+ .name = "OpReservedReadPipe",
+ .opcode = 276,
.operands = &.{
- .{ .kind = .id_scope, .quantifier = .required },
- .{ .kind = .id_memory_semantics, .quantifier = .required },
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpAtomicLoad",
- .opcode = 227,
+ .name = "OpReservedWritePipe",
+ .opcode = 277,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_scope, .quantifier = .required },
- .{ .kind = .id_memory_semantics, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpAtomicStore",
- .opcode = 228,
+ .name = "OpReserveReadPipePackets",
+ .opcode = 278,
.operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_scope, .quantifier = .required },
- .{ .kind = .id_memory_semantics, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpAtomicExchange",
- .opcode = 229,
+ .name = "OpReserveWritePipePackets",
+ .opcode = 279,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_scope, .quantifier = .required },
- .{ .kind = .id_memory_semantics, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpAtomicCompareExchange",
- .opcode = 230,
+ .name = "OpCommitReadPipe",
+ .opcode = 280,
.operands = &.{
- .{ .kind = .id_result_type, .quantifier = .required },
- .{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_scope, .quantifier = .required },
- .{ .kind = .id_memory_semantics, .quantifier = .required },
- .{ .kind = .id_memory_semantics, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpAtomicCompareExchangeWeak",
- .opcode = 231,
+ .name = "OpCommitWritePipe",
+ .opcode = 281,
.operands = &.{
- .{ .kind = .id_result_type, .quantifier = .required },
- .{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_scope, .quantifier = .required },
- .{ .kind = .id_memory_semantics, .quantifier = .required },
- .{ .kind = .id_memory_semantics, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpAtomicIIncrement",
- .opcode = 232,
+ .name = "OpIsValidReserveId",
+ .opcode = 282,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_scope, .quantifier = .required },
- .{ .kind = .id_memory_semantics, .quantifier = .required },
},
},
.{
- .name = "OpAtomicIDecrement",
- .opcode = 233,
+ .name = "OpGetNumPipePackets",
+ .opcode = 283,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_scope, .quantifier = .required },
- .{ .kind = .id_memory_semantics, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpAtomicIAdd",
- .opcode = 234,
+ .name = "OpGetMaxPipePackets",
+ .opcode = 284,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_scope, .quantifier = .required },
- .{ .kind = .id_memory_semantics, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpAtomicISub",
- .opcode = 235,
+ .name = "OpGroupReserveReadPipePackets",
+ .opcode = 285,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_scope, .quantifier = .required },
- .{ .kind = .id_memory_semantics, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpAtomicSMin",
- .opcode = 236,
+ .name = "OpGroupReserveWritePipePackets",
+ .opcode = 286,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_scope, .quantifier = .required },
- .{ .kind = .id_memory_semantics, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpAtomicUMin",
- .opcode = 237,
+ .name = "OpGroupCommitReadPipe",
+ .opcode = 287,
.operands = &.{
- .{ .kind = .id_result_type, .quantifier = .required },
- .{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_scope, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ },
+ },
+ .{
+ .name = "OpGroupCommitWritePipe",
+ .opcode = 288,
+ .operands = &.{
.{ .kind = .id_scope, .quantifier = .required },
- .{ .kind = .id_memory_semantics, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpAtomicSMax",
- .opcode = 238,
+ .name = "OpEnqueueMarker",
+ .opcode = 291,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_scope, .quantifier = .required },
- .{ .kind = .id_memory_semantics, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpAtomicUMax",
- .opcode = 239,
+ .name = "OpEnqueueKernel",
+ .opcode = 292,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_scope, .quantifier = .required },
- .{ .kind = .id_memory_semantics, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .variadic },
},
},
.{
- .name = "OpAtomicAnd",
- .opcode = 240,
+ .name = "OpGetKernelNDrangeSubGroupCount",
+ .opcode = 293,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_scope, .quantifier = .required },
- .{ .kind = .id_memory_semantics, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpAtomicOr",
- .opcode = 241,
+ .name = "OpGetKernelNDrangeMaxSubGroupSize",
+ .opcode = 294,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_scope, .quantifier = .required },
- .{ .kind = .id_memory_semantics, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpAtomicXor",
- .opcode = 242,
+ .name = "OpGetKernelWorkGroupSize",
+ .opcode = 295,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_scope, .quantifier = .required },
- .{ .kind = .id_memory_semantics, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpPhi",
- .opcode = 245,
+ .name = "OpGetKernelPreferredWorkGroupSizeMultiple",
+ .opcode = 296,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .pair_id_ref_id_ref, .quantifier = .variadic },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpLoopMerge",
- .opcode = 246,
+ .name = "OpRetainEvent",
+ .opcode = 297,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .loop_control, .quantifier = .required },
},
},
.{
- .name = "OpSelectionMerge",
- .opcode = 247,
+ .name = "OpReleaseEvent",
+ .opcode = 298,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .selection_control, .quantifier = .required },
},
},
.{
- .name = "OpLabel",
- .opcode = 248,
+ .name = "OpCreateUserEvent",
+ .opcode = 299,
.operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
},
},
.{
- .name = "OpBranch",
- .opcode = 249,
+ .name = "OpIsValidEvent",
+ .opcode = 300,
.operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpBranchConditional",
- .opcode = 250,
+ .name = "OpSetUserEventStatus",
+ .opcode = 301,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .literal_integer, .quantifier = .variadic },
},
},
.{
- .name = "OpSwitch",
- .opcode = 251,
+ .name = "OpCaptureEventProfilingInfo",
+ .opcode = 302,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .pair_literal_integer_id_ref, .quantifier = .variadic },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpKill",
- .opcode = 252,
- .operands = &.{},
- },
- .{
- .name = "OpReturn",
- .opcode = 253,
- .operands = &.{},
+ .name = "OpGetDefaultQueue",
+ .opcode = 303,
+ .operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
+ },
},
.{
- .name = "OpReturnValue",
- .opcode = 254,
+ .name = "OpBuildNDRange",
+ .opcode = 304,
.operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpUnreachable",
- .opcode = 255,
- .operands = &.{},
+ .name = "OpImageSparseSampleImplicitLod",
+ .opcode = 305,
+ .operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .image_operands, .quantifier = .optional },
+ },
},
.{
- .name = "OpLifetimeStart",
- .opcode = 256,
+ .name = "OpImageSparseSampleExplicitLod",
+ .opcode = 306,
.operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .literal_integer, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .image_operands, .quantifier = .required },
},
},
.{
- .name = "OpLifetimeStop",
- .opcode = 257,
+ .name = "OpImageSparseSampleDrefImplicitLod",
+ .opcode = 307,
.operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .literal_integer, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .image_operands, .quantifier = .optional },
},
},
.{
- .name = "OpGroupAsyncCopy",
- .opcode = 259,
+ .name = "OpImageSparseSampleDrefExplicitLod",
+ .opcode = 308,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_scope, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .image_operands, .quantifier = .required },
+ },
+ },
+ .{
+ .name = "OpImageSparseSampleProjImplicitLod",
+ .opcode = 309,
+ .operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .image_operands, .quantifier = .optional },
},
},
.{
- .name = "OpGroupWaitEvents",
- .opcode = 260,
+ .name = "OpImageSparseSampleProjExplicitLod",
+ .opcode = 310,
.operands = &.{
- .{ .kind = .id_scope, .quantifier = .required },
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .image_operands, .quantifier = .required },
},
},
.{
- .name = "OpGroupAll",
- .opcode = 261,
+ .name = "OpImageSparseSampleProjDrefImplicitLod",
+ .opcode = 311,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_scope, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .image_operands, .quantifier = .optional },
},
},
.{
- .name = "OpGroupAny",
- .opcode = 262,
+ .name = "OpImageSparseSampleProjDrefExplicitLod",
+ .opcode = 312,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_scope, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .image_operands, .quantifier = .required },
},
},
.{
- .name = "OpGroupBroadcast",
- .opcode = 263,
+ .name = "OpImageSparseFetch",
+ .opcode = 313,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_scope, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .image_operands, .quantifier = .optional },
},
},
.{
- .name = "OpGroupIAdd",
- .opcode = 264,
+ .name = "OpImageSparseGather",
+ .opcode = 314,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_scope, .quantifier = .required },
- .{ .kind = .group_operation, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .image_operands, .quantifier = .optional },
},
},
.{
- .name = "OpGroupFAdd",
- .opcode = 265,
+ .name = "OpImageSparseDrefGather",
+ .opcode = 315,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_scope, .quantifier = .required },
- .{ .kind = .group_operation, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .image_operands, .quantifier = .optional },
},
},
.{
- .name = "OpGroupFMin",
- .opcode = 266,
+ .name = "OpImageSparseTexelsResident",
+ .opcode = 316,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_scope, .quantifier = .required },
- .{ .kind = .group_operation, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpGroupUMin",
- .opcode = 267,
+ .name = "OpNoLine",
+ .opcode = 317,
+ .operands = &.{},
+ },
+ .{
+ .name = "OpAtomicFlagTestAndSet",
+ .opcode = 318,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_scope, .quantifier = .required },
- .{ .kind = .group_operation, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_scope, .quantifier = .required },
+ .{ .kind = .id_memory_semantics, .quantifier = .required },
},
},
.{
- .name = "OpGroupSMin",
- .opcode = 268,
+ .name = "OpAtomicFlagClear",
+ .opcode = 319,
.operands = &.{
- .{ .kind = .id_result_type, .quantifier = .required },
- .{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_scope, .quantifier = .required },
- .{ .kind = .group_operation, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_scope, .quantifier = .required },
+ .{ .kind = .id_memory_semantics, .quantifier = .required },
},
},
.{
- .name = "OpGroupFMax",
- .opcode = 269,
+ .name = "OpImageSparseRead",
+ .opcode = 320,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_scope, .quantifier = .required },
- .{ .kind = .group_operation, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .image_operands, .quantifier = .optional },
},
},
.{
- .name = "OpGroupUMax",
- .opcode = 270,
+ .name = "OpSizeOf",
+ .opcode = 321,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_scope, .quantifier = .required },
- .{ .kind = .group_operation, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpGroupSMax",
- .opcode = 271,
+ .name = "OpTypePipeStorage",
+ .opcode = 322,
.operands = &.{
- .{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_scope, .quantifier = .required },
- .{ .kind = .group_operation, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpReadPipe",
- .opcode = 274,
+ .name = "OpConstantPipeStorage",
+ .opcode = 323,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .literal_integer, .quantifier = .required },
+ .{ .kind = .literal_integer, .quantifier = .required },
+ .{ .kind = .literal_integer, .quantifier = .required },
},
},
.{
- .name = "OpWritePipe",
- .opcode = 275,
+ .name = "OpCreatePipeFromPipeStorage",
+ .opcode = 324,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpReservedReadPipe",
- .opcode = 276,
+ .name = "OpGetKernelLocalSizeForSubgroupCount",
+ .opcode = 325,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
@@ -7952,12 +9187,11 @@ pub const InstructionSet = enum {
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpReservedWritePipe",
- .opcode = 277,
+ .name = "OpGetKernelMaxNumSubgroups",
+ .opcode = 326,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
@@ -7965,1158 +9199,1110 @@ pub const InstructionSet = enum {
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpReserveReadPipePackets",
- .opcode = 278,
+ .name = "OpTypeNamedBarrier",
+ .opcode = 327,
.operands = &.{
- .{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpReserveWritePipePackets",
- .opcode = 279,
+ .name = "OpNamedBarrierInitialize",
+ .opcode = 328,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpCommitReadPipe",
- .opcode = 280,
+ .name = "OpMemoryNamedBarrier",
+ .opcode = 329,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_scope, .quantifier = .required },
+ .{ .kind = .id_memory_semantics, .quantifier = .required },
},
},
.{
- .name = "OpCommitWritePipe",
- .opcode = 281,
+ .name = "OpModuleProcessed",
+ .opcode = 330,
.operands = &.{
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .literal_string, .quantifier = .required },
},
},
.{
- .name = "OpIsValidReserveId",
- .opcode = 282,
+ .name = "OpExecutionModeId",
+ .opcode = 331,
.operands = &.{
- .{ .kind = .id_result_type, .quantifier = .required },
- .{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .execution_mode, .quantifier = .required },
},
},
.{
- .name = "OpGetNumPipePackets",
- .opcode = 283,
+ .name = "OpDecorateId",
+ .opcode = 332,
.operands = &.{
- .{ .kind = .id_result_type, .quantifier = .required },
- .{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .decoration, .quantifier = .required },
},
},
.{
- .name = "OpGetMaxPipePackets",
- .opcode = 284,
+ .name = "OpGroupNonUniformElect",
+ .opcode = 333,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_scope, .quantifier = .required },
},
},
.{
- .name = "OpGroupReserveReadPipePackets",
- .opcode = 285,
+ .name = "OpGroupNonUniformAll",
+ .opcode = 334,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_scope, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpGroupReserveWritePipePackets",
- .opcode = 286,
+ .name = "OpGroupNonUniformAny",
+ .opcode = 335,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_scope, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- },
- },
- .{
- .name = "OpGroupCommitReadPipe",
- .opcode = 287,
- .operands = &.{
- .{ .kind = .id_scope, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpGroupCommitWritePipe",
- .opcode = 288,
+ .name = "OpGroupNonUniformAllEqual",
+ .opcode = 336,
.operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_scope, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpEnqueueMarker",
- .opcode = 291,
+ .name = "OpGroupNonUniformBroadcast",
+ .opcode = 337,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_scope, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpEnqueueKernel",
- .opcode = 292,
+ .name = "OpGroupNonUniformBroadcastFirst",
+ .opcode = 338,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_scope, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .variadic },
},
},
.{
- .name = "OpGetKernelNDrangeSubGroupCount",
- .opcode = 293,
+ .name = "OpGroupNonUniformBallot",
+ .opcode = 339,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_scope, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpGetKernelNDrangeMaxSubGroupSize",
- .opcode = 294,
+ .name = "OpGroupNonUniformInverseBallot",
+ .opcode = 340,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_scope, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpGetKernelWorkGroupSize",
- .opcode = 295,
+ .name = "OpGroupNonUniformBallotBitExtract",
+ .opcode = 341,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_scope, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpGetKernelPreferredWorkGroupSizeMultiple",
- .opcode = 296,
+ .name = "OpGroupNonUniformBallotBitCount",
+ .opcode = 342,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_scope, .quantifier = .required },
+ .{ .kind = .group_operation, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpRetainEvent",
- .opcode = 297,
+ .name = "OpGroupNonUniformBallotFindLSB",
+ .opcode = 343,
.operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_scope, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpReleaseEvent",
- .opcode = 298,
+ .name = "OpGroupNonUniformBallotFindMSB",
+ .opcode = 344,
.operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_scope, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpCreateUserEvent",
- .opcode = 299,
+ .name = "OpGroupNonUniformShuffle",
+ .opcode = 345,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_scope, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpIsValidEvent",
- .opcode = 300,
+ .name = "OpGroupNonUniformShuffleXor",
+ .opcode = 346,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_scope, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpSetUserEventStatus",
- .opcode = 301,
+ .name = "OpGroupNonUniformShuffleUp",
+ .opcode = 347,
.operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_scope, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpCaptureEventProfilingInfo",
- .opcode = 302,
+ .name = "OpGroupNonUniformShuffleDown",
+ .opcode = 348,
.operands = &.{
- .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_scope, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpGetDefaultQueue",
- .opcode = 303,
+ .name = "OpGroupNonUniformIAdd",
+ .opcode = 349,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_scope, .quantifier = .required },
+ .{ .kind = .group_operation, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .optional },
},
},
.{
- .name = "OpBuildNDRange",
- .opcode = 304,
+ .name = "OpGroupNonUniformFAdd",
+ .opcode = 350,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_scope, .quantifier = .required },
+ .{ .kind = .group_operation, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .optional },
},
},
.{
- .name = "OpImageSparseSampleImplicitLod",
- .opcode = 305,
+ .name = "OpGroupNonUniformIMul",
+ .opcode = 351,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_scope, .quantifier = .required },
+ .{ .kind = .group_operation, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .image_operands, .quantifier = .optional },
+ .{ .kind = .id_ref, .quantifier = .optional },
},
},
.{
- .name = "OpImageSparseSampleExplicitLod",
- .opcode = 306,
+ .name = "OpGroupNonUniformFMul",
+ .opcode = 352,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_scope, .quantifier = .required },
+ .{ .kind = .group_operation, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .image_operands, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .optional },
},
},
.{
- .name = "OpImageSparseSampleDrefImplicitLod",
- .opcode = 307,
+ .name = "OpGroupNonUniformSMin",
+ .opcode = 353,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_scope, .quantifier = .required },
+ .{ .kind = .group_operation, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .image_operands, .quantifier = .optional },
+ .{ .kind = .id_ref, .quantifier = .optional },
},
},
.{
- .name = "OpImageSparseSampleDrefExplicitLod",
- .opcode = 308,
+ .name = "OpGroupNonUniformUMin",
+ .opcode = 354,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_scope, .quantifier = .required },
+ .{ .kind = .group_operation, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .image_operands, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .optional },
},
},
.{
- .name = "OpImageSparseSampleProjImplicitLod",
- .opcode = 309,
+ .name = "OpGroupNonUniformFMin",
+ .opcode = 355,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_scope, .quantifier = .required },
+ .{ .kind = .group_operation, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .image_operands, .quantifier = .optional },
+ .{ .kind = .id_ref, .quantifier = .optional },
},
},
.{
- .name = "OpImageSparseSampleProjExplicitLod",
- .opcode = 310,
+ .name = "OpGroupNonUniformSMax",
+ .opcode = 356,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_scope, .quantifier = .required },
+ .{ .kind = .group_operation, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .image_operands, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .optional },
},
},
.{
- .name = "OpImageSparseSampleProjDrefImplicitLod",
- .opcode = 311,
+ .name = "OpGroupNonUniformUMax",
+ .opcode = 357,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_scope, .quantifier = .required },
+ .{ .kind = .group_operation, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .image_operands, .quantifier = .optional },
+ .{ .kind = .id_ref, .quantifier = .optional },
},
},
.{
- .name = "OpImageSparseSampleProjDrefExplicitLod",
- .opcode = 312,
+ .name = "OpGroupNonUniformFMax",
+ .opcode = 358,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_scope, .quantifier = .required },
+ .{ .kind = .group_operation, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .image_operands, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .optional },
},
},
.{
- .name = "OpImageSparseFetch",
- .opcode = 313,
+ .name = "OpGroupNonUniformBitwiseAnd",
+ .opcode = 359,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_scope, .quantifier = .required },
+ .{ .kind = .group_operation, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .image_operands, .quantifier = .optional },
+ .{ .kind = .id_ref, .quantifier = .optional },
},
},
.{
- .name = "OpImageSparseGather",
- .opcode = 314,
+ .name = "OpGroupNonUniformBitwiseOr",
+ .opcode = 360,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_scope, .quantifier = .required },
+ .{ .kind = .group_operation, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .image_operands, .quantifier = .optional },
+ .{ .kind = .id_ref, .quantifier = .optional },
},
},
.{
- .name = "OpImageSparseDrefGather",
- .opcode = 315,
+ .name = "OpGroupNonUniformBitwiseXor",
+ .opcode = 361,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_scope, .quantifier = .required },
+ .{ .kind = .group_operation, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .image_operands, .quantifier = .optional },
+ .{ .kind = .id_ref, .quantifier = .optional },
},
},
.{
- .name = "OpImageSparseTexelsResident",
- .opcode = 316,
+ .name = "OpGroupNonUniformLogicalAnd",
+ .opcode = 362,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_scope, .quantifier = .required },
+ .{ .kind = .group_operation, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .optional },
},
},
.{
- .name = "OpNoLine",
- .opcode = 317,
- .operands = &.{},
- },
- .{
- .name = "OpAtomicFlagTestAndSet",
- .opcode = 318,
+ .name = "OpGroupNonUniformLogicalOr",
+ .opcode = 363,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_scope, .quantifier = .required },
- .{ .kind = .id_memory_semantics, .quantifier = .required },
+ .{ .kind = .group_operation, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .optional },
},
},
.{
- .name = "OpAtomicFlagClear",
- .opcode = 319,
+ .name = "OpGroupNonUniformLogicalXor",
+ .opcode = 364,
.operands = &.{
- .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_scope, .quantifier = .required },
- .{ .kind = .id_memory_semantics, .quantifier = .required },
+ .{ .kind = .group_operation, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .optional },
},
},
.{
- .name = "OpImageSparseRead",
- .opcode = 320,
+ .name = "OpGroupNonUniformQuadBroadcast",
+ .opcode = 365,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_scope, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .image_operands, .quantifier = .optional },
},
},
.{
- .name = "OpSizeOf",
- .opcode = 321,
+ .name = "OpGroupNonUniformQuadSwap",
+ .opcode = 366,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_scope, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpTypePipeStorage",
- .opcode = 322,
+ .name = "OpCopyLogical",
+ .opcode = 400,
.operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpConstantPipeStorage",
- .opcode = 323,
+ .name = "OpPtrEqual",
+ .opcode = 401,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .literal_integer, .quantifier = .required },
- .{ .kind = .literal_integer, .quantifier = .required },
- .{ .kind = .literal_integer, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpCreatePipeFromPipeStorage",
- .opcode = 324,
+ .name = "OpPtrNotEqual",
+ .opcode = 402,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpGetKernelLocalSizeForSubgroupCount",
- .opcode = 325,
+ .name = "OpPtrDiff",
+ .opcode = 403,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpGetKernelMaxNumSubgroups",
- .opcode = 326,
+ .name = "OpColorAttachmentReadEXT",
+ .opcode = 4160,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .optional },
},
},
.{
- .name = "OpTypeNamedBarrier",
- .opcode = 327,
+ .name = "OpDepthAttachmentReadEXT",
+ .opcode = 4161,
.operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .optional },
},
},
.{
- .name = "OpNamedBarrierInitialize",
- .opcode = 328,
+ .name = "OpStencilAttachmentReadEXT",
+ .opcode = 4162,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .optional },
},
},
.{
- .name = "OpMemoryNamedBarrier",
- .opcode = 329,
+ .name = "OpTypeTensorARM",
+ .opcode = 4163,
.operands = &.{
+ .{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_scope, .quantifier = .required },
- .{ .kind = .id_memory_semantics, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .optional },
+ .{ .kind = .id_ref, .quantifier = .optional },
},
},
.{
- .name = "OpModuleProcessed",
- .opcode = 330,
+ .name = "OpTensorReadARM",
+ .opcode = 4164,
.operands = &.{
- .{ .kind = .literal_string, .quantifier = .required },
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .tensor_operands, .quantifier = .optional },
},
},
.{
- .name = "OpExecutionModeId",
- .opcode = 331,
+ .name = "OpTensorWriteARM",
+ .opcode = 4165,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .execution_mode, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .tensor_operands, .quantifier = .optional },
},
},
.{
- .name = "OpDecorateId",
- .opcode = 332,
+ .name = "OpTensorQuerySizeARM",
+ .opcode = 4166,
.operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .decoration, .quantifier = .required },
},
},
.{
- .name = "OpGroupNonUniformElect",
- .opcode = 333,
+ .name = "OpGraphConstantARM",
+ .opcode = 4181,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_scope, .quantifier = .required },
+ .{ .kind = .literal_integer, .quantifier = .required },
},
},
.{
- .name = "OpGroupNonUniformAll",
- .opcode = 334,
+ .name = "OpGraphEntryPointARM",
+ .opcode = 4182,
.operands = &.{
- .{ .kind = .id_result_type, .quantifier = .required },
- .{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_scope, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .literal_string, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .variadic },
},
},
.{
- .name = "OpGroupNonUniformAny",
- .opcode = 335,
+ .name = "OpGraphARM",
+ .opcode = 4183,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_scope, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpGroupNonUniformAllEqual",
- .opcode = 336,
+ .name = "OpGraphInputARM",
+ .opcode = 4184,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_scope, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .variadic },
},
},
.{
- .name = "OpGroupNonUniformBroadcast",
- .opcode = 337,
+ .name = "OpGraphSetOutputARM",
+ .opcode = 4185,
.operands = &.{
- .{ .kind = .id_result_type, .quantifier = .required },
- .{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_scope, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .variadic },
},
},
.{
- .name = "OpGroupNonUniformBroadcastFirst",
- .opcode = 338,
+ .name = "OpGraphEndARM",
+ .opcode = 4186,
+ .operands = &.{},
+ },
+ .{
+ .name = "OpTypeGraphARM",
+ .opcode = 4190,
.operands = &.{
- .{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_scope, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .literal_integer, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .variadic },
},
},
.{
- .name = "OpGroupNonUniformBallot",
- .opcode = 339,
+ .name = "OpTerminateInvocation",
+ .opcode = 4416,
+ .operands = &.{},
+ },
+ .{
+ .name = "OpTypeUntypedPointerKHR",
+ .opcode = 4417,
.operands = &.{
- .{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_scope, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .storage_class, .quantifier = .required },
},
},
.{
- .name = "OpGroupNonUniformInverseBallot",
- .opcode = 340,
+ .name = "OpUntypedVariableKHR",
+ .opcode = 4418,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_scope, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .storage_class, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .optional },
+ .{ .kind = .id_ref, .quantifier = .optional },
},
},
.{
- .name = "OpGroupNonUniformBallotBitExtract",
- .opcode = 341,
+ .name = "OpUntypedAccessChainKHR",
+ .opcode = 4419,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_scope, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .variadic },
},
},
.{
- .name = "OpGroupNonUniformBallotBitCount",
- .opcode = 342,
+ .name = "OpUntypedInBoundsAccessChainKHR",
+ .opcode = 4420,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_scope, .quantifier = .required },
- .{ .kind = .group_operation, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .variadic },
},
},
.{
- .name = "OpGroupNonUniformBallotFindLSB",
- .opcode = 343,
+ .name = "OpSubgroupBallotKHR",
+ .opcode = 4421,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_scope, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpGroupNonUniformBallotFindMSB",
- .opcode = 344,
+ .name = "OpSubgroupFirstInvocationKHR",
+ .opcode = 4422,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_scope, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpGroupNonUniformShuffle",
- .opcode = 345,
+ .name = "OpUntypedPtrAccessChainKHR",
+ .opcode = 4423,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_scope, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .variadic },
},
},
.{
- .name = "OpGroupNonUniformShuffleXor",
- .opcode = 346,
+ .name = "OpUntypedInBoundsPtrAccessChainKHR",
+ .opcode = 4424,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_scope, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .variadic },
},
},
.{
- .name = "OpGroupNonUniformShuffleUp",
- .opcode = 347,
+ .name = "OpUntypedArrayLengthKHR",
+ .opcode = 4425,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_scope, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .literal_integer, .quantifier = .required },
},
},
.{
- .name = "OpGroupNonUniformShuffleDown",
- .opcode = 348,
+ .name = "OpUntypedPrefetchKHR",
+ .opcode = 4426,
.operands = &.{
- .{ .kind = .id_result_type, .quantifier = .required },
- .{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_scope, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .optional },
+ .{ .kind = .id_ref, .quantifier = .optional },
+ .{ .kind = .id_ref, .quantifier = .optional },
},
},
.{
- .name = "OpGroupNonUniformIAdd",
- .opcode = 349,
+ .name = "OpFmaKHR",
+ .opcode = 4427,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_scope, .quantifier = .required },
- .{ .kind = .group_operation, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .optional },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpGroupNonUniformFAdd",
- .opcode = 350,
+ .name = "OpSubgroupAllKHR",
+ .opcode = 4428,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_scope, .quantifier = .required },
- .{ .kind = .group_operation, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .optional },
},
},
.{
- .name = "OpGroupNonUniformIMul",
- .opcode = 351,
+ .name = "OpSubgroupAnyKHR",
+ .opcode = 4429,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_scope, .quantifier = .required },
- .{ .kind = .group_operation, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .optional },
},
},
.{
- .name = "OpGroupNonUniformFMul",
- .opcode = 352,
+ .name = "OpSubgroupAllEqualKHR",
+ .opcode = 4430,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_scope, .quantifier = .required },
- .{ .kind = .group_operation, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .optional },
},
},
.{
- .name = "OpGroupNonUniformSMin",
- .opcode = 353,
+ .name = "OpGroupNonUniformRotateKHR",
+ .opcode = 4431,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_scope, .quantifier = .required },
- .{ .kind = .group_operation, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .optional },
},
},
.{
- .name = "OpGroupNonUniformUMin",
- .opcode = 354,
+ .name = "OpSubgroupReadInvocationKHR",
+ .opcode = 4432,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_scope, .quantifier = .required },
- .{ .kind = .group_operation, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .optional },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpGroupNonUniformFMin",
- .opcode = 355,
+ .name = "OpExtInstWithForwardRefsKHR",
+ .opcode = 4433,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_scope, .quantifier = .required },
- .{ .kind = .group_operation, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .optional },
+ .{ .kind = .literal_ext_inst_integer, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .variadic },
},
},
.{
- .name = "OpGroupNonUniformSMax",
- .opcode = 356,
+ .name = "OpUntypedGroupAsyncCopyKHR",
+ .opcode = 4434,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_scope, .quantifier = .required },
- .{ .kind = .group_operation, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .optional },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .memory_access, .quantifier = .optional },
+ .{ .kind = .memory_access, .quantifier = .optional },
},
},
.{
- .name = "OpGroupNonUniformUMax",
- .opcode = 357,
+ .name = "OpTraceRayKHR",
+ .opcode = 4445,
.operands = &.{
- .{ .kind = .id_result_type, .quantifier = .required },
- .{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_scope, .quantifier = .required },
- .{ .kind = .group_operation, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .optional },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpGroupNonUniformFMax",
- .opcode = 358,
+ .name = "OpExecuteCallableKHR",
+ .opcode = 4446,
.operands = &.{
- .{ .kind = .id_result_type, .quantifier = .required },
- .{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_scope, .quantifier = .required },
- .{ .kind = .group_operation, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .optional },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpGroupNonUniformBitwiseAnd",
- .opcode = 359,
+ .name = "OpConvertUToAccelerationStructureKHR",
+ .opcode = 4447,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_scope, .quantifier = .required },
- .{ .kind = .group_operation, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .optional },
},
},
.{
- .name = "OpGroupNonUniformBitwiseOr",
- .opcode = 360,
+ .name = "OpIgnoreIntersectionKHR",
+ .opcode = 4448,
+ .operands = &.{},
+ },
+ .{
+ .name = "OpTerminateRayKHR",
+ .opcode = 4449,
+ .operands = &.{},
+ },
+ .{
+ .name = "OpSDot",
+ .opcode = 4450,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_scope, .quantifier = .required },
- .{ .kind = .group_operation, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .optional },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .packed_vector_format, .quantifier = .optional },
},
},
.{
- .name = "OpGroupNonUniformBitwiseXor",
- .opcode = 361,
+ .name = "OpUDot",
+ .opcode = 4451,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_scope, .quantifier = .required },
- .{ .kind = .group_operation, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .optional },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .packed_vector_format, .quantifier = .optional },
},
},
.{
- .name = "OpGroupNonUniformLogicalAnd",
- .opcode = 362,
+ .name = "OpSUDot",
+ .opcode = 4452,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_scope, .quantifier = .required },
- .{ .kind = .group_operation, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .optional },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .packed_vector_format, .quantifier = .optional },
},
},
.{
- .name = "OpGroupNonUniformLogicalOr",
- .opcode = 363,
+ .name = "OpSDotAccSat",
+ .opcode = 4453,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_scope, .quantifier = .required },
- .{ .kind = .group_operation, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .optional },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .packed_vector_format, .quantifier = .optional },
},
},
.{
- .name = "OpGroupNonUniformLogicalXor",
- .opcode = 364,
+ .name = "OpUDotAccSat",
+ .opcode = 4454,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_scope, .quantifier = .required },
- .{ .kind = .group_operation, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .optional },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .packed_vector_format, .quantifier = .optional },
},
},
.{
- .name = "OpGroupNonUniformQuadBroadcast",
- .opcode = 365,
+ .name = "OpSUDotAccSat",
+ .opcode = 4455,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_scope, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .packed_vector_format, .quantifier = .optional },
},
},
.{
- .name = "OpGroupNonUniformQuadSwap",
- .opcode = 366,
+ .name = "OpTypeCooperativeMatrixKHR",
+ .opcode = 4456,
.operands = &.{
- .{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_scope, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpCopyLogical",
- .opcode = 400,
+ .name = "OpCooperativeMatrixLoadKHR",
+ .opcode = 4457,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .optional },
+ .{ .kind = .memory_access, .quantifier = .optional },
},
},
.{
- .name = "OpPtrEqual",
- .opcode = 401,
+ .name = "OpCooperativeMatrixStoreKHR",
+ .opcode = 4458,
.operands = &.{
- .{ .kind = .id_result_type, .quantifier = .required },
- .{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .optional },
+ .{ .kind = .memory_access, .quantifier = .optional },
},
},
.{
- .name = "OpPtrNotEqual",
- .opcode = 402,
+ .name = "OpCooperativeMatrixMulAddKHR",
+ .opcode = 4459,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .cooperative_matrix_operands, .quantifier = .optional },
},
},
.{
- .name = "OpPtrDiff",
- .opcode = 403,
+ .name = "OpCooperativeMatrixLengthKHR",
+ .opcode = 4460,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpColorAttachmentReadEXT",
- .opcode = 4160,
+ .name = "OpConstantCompositeReplicateEXT",
+ .opcode = 4461,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .optional },
},
},
.{
- .name = "OpDepthAttachmentReadEXT",
- .opcode = 4161,
+ .name = "OpSpecConstantCompositeReplicateEXT",
+ .opcode = 4462,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .optional },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpStencilAttachmentReadEXT",
- .opcode = 4162,
+ .name = "OpCompositeConstructReplicateEXT",
+ .opcode = 4463,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .optional },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpTypeTensorARM",
- .opcode = 4163,
+ .name = "OpTypeRayQueryKHR",
+ .opcode = 4472,
.operands = &.{
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .optional },
- .{ .kind = .id_ref, .quantifier = .optional },
},
},
.{
- .name = "OpTensorReadARM",
- .opcode = 4164,
+ .name = "OpRayQueryInitializeKHR",
+ .opcode = 4473,
.operands = &.{
- .{ .kind = .id_result_type, .quantifier = .required },
- .{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .tensor_operands, .quantifier = .optional },
- },
- },
- .{
- .name = "OpTensorWriteARM",
- .opcode = 4165,
- .operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .tensor_operands, .quantifier = .optional },
- },
- },
- .{
- .name = "OpTensorQuerySizeARM",
- .opcode = 4166,
- .operands = &.{
- .{ .kind = .id_result_type, .quantifier = .required },
- .{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpGraphConstantARM",
- .opcode = 4181,
+ .name = "OpRayQueryTerminateKHR",
+ .opcode = 4474,
.operands = &.{
- .{ .kind = .id_result_type, .quantifier = .required },
- .{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .literal_integer, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpGraphEntryPointARM",
- .opcode = 4182,
+ .name = "OpRayQueryGenerateIntersectionKHR",
+ .opcode = 4475,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .literal_string, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .variadic },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpGraphARM",
- .opcode = 4183,
+ .name = "OpRayQueryConfirmIntersectionKHR",
+ .opcode = 4476,
.operands = &.{
- .{ .kind = .id_result_type, .quantifier = .required },
- .{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpGraphInputARM",
- .opcode = 4184,
+ .name = "OpRayQueryProceedKHR",
+ .opcode = 4477,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .variadic },
},
},
.{
- .name = "OpGraphSetOutputARM",
- .opcode = 4185,
+ .name = "OpRayQueryGetIntersectionTypeKHR",
+ .opcode = 4479,
.operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .variadic },
- },
- },
- .{
- .name = "OpGraphEndARM",
- .opcode = 4186,
- .operands = &.{},
- },
- .{
- .name = "OpTypeGraphARM",
- .opcode = 4190,
- .operands = &.{
- .{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .literal_integer, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .variadic },
},
},
.{
- .name = "OpTerminateInvocation",
- .opcode = 4416,
- .operands = &.{},
- },
- .{
- .name = "OpTypeUntypedPointerKHR",
- .opcode = 4417,
+ .name = "OpImageSampleWeightedQCOM",
+ .opcode = 4480,
.operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .storage_class, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpUntypedVariableKHR",
- .opcode = 4418,
+ .name = "OpImageBoxFilterQCOM",
+ .opcode = 4481,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .storage_class, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .optional },
- .{ .kind = .id_ref, .quantifier = .optional },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpUntypedAccessChainKHR",
- .opcode = 4419,
+ .name = "OpImageBlockMatchSSDQCOM",
+ .opcode = 4482,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .variadic },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpUntypedInBoundsAccessChainKHR",
- .opcode = 4420,
+ .name = "OpImageBlockMatchSADQCOM",
+ .opcode = 4483,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .variadic },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpSubgroupBallotKHR",
- .opcode = 4421,
+ .name = "OpBitCastArrayQCOM",
+ .opcode = 4497,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
@@ -9124,63 +10310,60 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpSubgroupFirstInvocationKHR",
- .opcode = 4422,
+ .name = "OpImageBlockMatchWindowSSDQCOM",
+ .opcode = 4500,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpUntypedPtrAccessChainKHR",
- .opcode = 4423,
+ .name = "OpImageBlockMatchWindowSADQCOM",
+ .opcode = 4501,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .variadic },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpUntypedInBoundsPtrAccessChainKHR",
- .opcode = 4424,
+ .name = "OpImageBlockMatchGatherSSDQCOM",
+ .opcode = 4502,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .variadic },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpUntypedArrayLengthKHR",
- .opcode = 4425,
+ .name = "OpImageBlockMatchGatherSADQCOM",
+ .opcode = 4503,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .literal_integer, .quantifier = .required },
- },
- },
- .{
- .name = "OpUntypedPrefetchKHR",
- .opcode = 4426,
- .operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .optional },
- .{ .kind = .id_ref, .quantifier = .optional },
- .{ .kind = .id_ref, .quantifier = .optional },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpSubgroupAllKHR",
- .opcode = 4428,
+ .name = "OpCompositeConstructCoopMatQCOM",
+ .opcode = 4540,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
@@ -9188,8 +10371,8 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpSubgroupAnyKHR",
- .opcode = 4429,
+ .name = "OpCompositeExtractCoopMatQCOM",
+ .opcode = 4541,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
@@ -9197,228 +10380,206 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpSubgroupAllEqualKHR",
- .opcode = 4430,
+ .name = "OpExtractSubArrayQCOM",
+ .opcode = 4542,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpGroupNonUniformRotateKHR",
- .opcode = 4431,
+ .name = "OpGroupIAddNonUniformAMD",
+ .opcode = 5000,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_scope, .quantifier = .required },
+ .{ .kind = .group_operation, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .optional },
},
},
.{
- .name = "OpSubgroupReadInvocationKHR",
- .opcode = 4432,
+ .name = "OpGroupFAddNonUniformAMD",
+ .opcode = 5001,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_scope, .quantifier = .required },
+ .{ .kind = .group_operation, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpExtInstWithForwardRefsKHR",
- .opcode = 4433,
+ .name = "OpGroupFMinNonUniformAMD",
+ .opcode = 5002,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_scope, .quantifier = .required },
+ .{ .kind = .group_operation, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .literal_ext_inst_integer, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .variadic },
},
},
.{
- .name = "OpTraceRayKHR",
- .opcode = 4445,
+ .name = "OpGroupUMinNonUniformAMD",
+ .opcode = 5003,
.operands = &.{
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_scope, .quantifier = .required },
+ .{ .kind = .group_operation, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpExecuteCallableKHR",
- .opcode = 4446,
+ .name = "OpGroupSMinNonUniformAMD",
+ .opcode = 5004,
.operands = &.{
- .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_scope, .quantifier = .required },
+ .{ .kind = .group_operation, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpConvertUToAccelerationStructureKHR",
- .opcode = 4447,
+ .name = "OpGroupFMaxNonUniformAMD",
+ .opcode = 5005,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_scope, .quantifier = .required },
+ .{ .kind = .group_operation, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpIgnoreIntersectionKHR",
- .opcode = 4448,
- .operands = &.{},
- },
- .{
- .name = "OpTerminateRayKHR",
- .opcode = 4449,
- .operands = &.{},
- },
- .{
- .name = "OpSDot",
- .opcode = 4450,
+ .name = "OpGroupUMaxNonUniformAMD",
+ .opcode = 5006,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_scope, .quantifier = .required },
+ .{ .kind = .group_operation, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .packed_vector_format, .quantifier = .optional },
},
},
.{
- .name = "OpUDot",
- .opcode = 4451,
+ .name = "OpGroupSMaxNonUniformAMD",
+ .opcode = 5007,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_scope, .quantifier = .required },
+ .{ .kind = .group_operation, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .packed_vector_format, .quantifier = .optional },
},
},
.{
- .name = "OpSUDot",
- .opcode = 4452,
+ .name = "OpFragmentMaskFetchAMD",
+ .opcode = 5011,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .packed_vector_format, .quantifier = .optional },
},
},
.{
- .name = "OpSDotAccSat",
- .opcode = 4453,
+ .name = "OpFragmentFetchAMD",
+ .opcode = 5012,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .packed_vector_format, .quantifier = .optional },
},
},
.{
- .name = "OpUDotAccSat",
- .opcode = 4454,
+ .name = "OpReadClockKHR",
+ .opcode = 5056,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .packed_vector_format, .quantifier = .optional },
+ .{ .kind = .id_scope, .quantifier = .required },
},
},
.{
- .name = "OpSUDotAccSat",
- .opcode = 4455,
+ .name = "OpAllocateNodePayloadsAMDX",
+ .opcode = 5074,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_scope, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ },
+ },
+ .{
+ .name = "OpEnqueueNodePayloadsAMDX",
+ .opcode = 5075,
+ .operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .packed_vector_format, .quantifier = .optional },
},
},
.{
- .name = "OpTypeCooperativeMatrixKHR",
- .opcode = 4456,
+ .name = "OpTypeNodePayloadArrayAMDX",
+ .opcode = 5076,
.operands = &.{
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_scope, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpCooperativeMatrixLoadKHR",
- .opcode = 4457,
+ .name = "OpFinishWritingNodePayloadAMDX",
+ .opcode = 5078,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .optional },
- .{ .kind = .memory_access, .quantifier = .optional },
},
},
.{
- .name = "OpCooperativeMatrixStoreKHR",
- .opcode = 4458,
+ .name = "OpNodePayloadArrayLengthAMDX",
+ .opcode = 5090,
.operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .optional },
- .{ .kind = .memory_access, .quantifier = .optional },
},
},
.{
- .name = "OpCooperativeMatrixMulAddKHR",
- .opcode = 4459,
+ .name = "OpIsNodePayloadValidAMDX",
+ .opcode = 5101,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .cooperative_matrix_operands, .quantifier = .optional },
},
},
.{
- .name = "OpCooperativeMatrixLengthKHR",
- .opcode = 4460,
+ .name = "OpConstantStringAMDX",
+ .opcode = 5103,
.operands = &.{
- .{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .literal_string, .quantifier = .required },
},
},
.{
- .name = "OpConstantCompositeReplicateEXT",
- .opcode = 4461,
+ .name = "OpSpecConstantStringAMDX",
+ .opcode = 5104,
.operands = &.{
- .{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .literal_string, .quantifier = .required },
},
},
.{
- .name = "OpSpecConstantCompositeReplicateEXT",
- .opcode = 4462,
+ .name = "OpGroupNonUniformQuadAllKHR",
+ .opcode = 5110,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
@@ -9426,8 +10587,8 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpCompositeConstructReplicateEXT",
- .opcode = 4463,
+ .name = "OpGroupNonUniformQuadAnyKHR",
+ .opcode = 5111,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
@@ -9435,51 +10596,54 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpTypeRayQueryKHR",
- .opcode = 4472,
+ .name = "OpTypeBufferEXT",
+ .opcode = 5115,
.operands = &.{
.{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .storage_class, .quantifier = .required },
},
},
.{
- .name = "OpRayQueryInitializeKHR",
- .opcode = 4473,
+ .name = "OpBufferPointerEXT",
+ .opcode = 5119,
.operands = &.{
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpRayQueryTerminateKHR",
- .opcode = 4474,
+ .name = "OpAbortKHR",
+ .opcode = 5121,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpRayQueryGenerateIntersectionKHR",
- .opcode = 4475,
+ .name = "OpUntypedImageTexelPointerEXT",
+ .opcode = 5126,
.operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpRayQueryConfirmIntersectionKHR",
- .opcode = 4476,
+ .name = "OpMemberDecorateIdEXT",
+ .opcode = 5127,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .literal_integer, .quantifier = .required },
+ .{ .kind = .decoration, .quantifier = .required },
},
},
.{
- .name = "OpRayQueryProceedKHR",
- .opcode = 4477,
+ .name = "OpConstantSizeOfEXT",
+ .opcode = 5129,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
@@ -9487,69 +10651,53 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpRayQueryGetIntersectionTypeKHR",
- .opcode = 4479,
+ .name = "OpConstantDataKHR",
+ .opcode = 5147,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .literal_integer, .quantifier = .variadic },
},
},
.{
- .name = "OpImageSampleWeightedQCOM",
- .opcode = 4480,
+ .name = "OpSpecConstantDataKHR",
+ .opcode = 5148,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .literal_integer, .quantifier = .variadic },
},
},
.{
- .name = "OpImageBoxFilterQCOM",
- .opcode = 4481,
+ .name = "OpPoisonKHR",
+ .opcode = 5158,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpImageBlockMatchSSDQCOM",
- .opcode = 4482,
+ .name = "OpFreezeKHR",
+ .opcode = 5159,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpImageBlockMatchSADQCOM",
- .opcode = 4483,
+ .name = "OpHitObjectRecordHitMotionNV",
+ .opcode = 5249,
.operands = &.{
- .{ .kind = .id_result_type, .quantifier = .required },
- .{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- },
- },
- .{
- .name = "OpImageBlockMatchWindowSSDQCOM",
- .opcode = 4500,
- .operands = &.{
- .{ .kind = .id_result_type, .quantifier = .required },
- .{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
@@ -9558,24 +10706,17 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpImageBlockMatchWindowSADQCOM",
- .opcode = 4501,
+ .name = "OpHitObjectRecordHitWithIndexMotionNV",
+ .opcode = 5250,
.operands = &.{
- .{ .kind = .id_result_type, .quantifier = .required },
- .{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- },
- },
- .{
- .name = "OpImageBlockMatchGatherSSDQCOM",
- .opcode = 4502,
- .operands = &.{
- .{ .kind = .id_result_type, .quantifier = .required },
- .{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
@@ -9584,11 +10725,11 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpImageBlockMatchGatherSADQCOM",
- .opcode = 4503,
+ .name = "OpHitObjectRecordMissMotionNV",
+ .opcode = 5251,
.operands = &.{
- .{ .kind = .id_result_type, .quantifier = .required },
- .{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
@@ -9597,161 +10738,163 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpGroupIAddNonUniformAMD",
- .opcode = 5000,
+ .name = "OpHitObjectGetWorldToObjectNV",
+ .opcode = 5252,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_scope, .quantifier = .required },
- .{ .kind = .group_operation, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpGroupFAddNonUniformAMD",
- .opcode = 5001,
+ .name = "OpHitObjectGetObjectToWorldNV",
+ .opcode = 5253,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_scope, .quantifier = .required },
- .{ .kind = .group_operation, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpGroupFMinNonUniformAMD",
- .opcode = 5002,
+ .name = "OpHitObjectGetObjectRayDirectionNV",
+ .opcode = 5254,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_scope, .quantifier = .required },
- .{ .kind = .group_operation, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpGroupUMinNonUniformAMD",
- .opcode = 5003,
+ .name = "OpHitObjectGetObjectRayOriginNV",
+ .opcode = 5255,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_scope, .quantifier = .required },
- .{ .kind = .group_operation, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpGroupSMinNonUniformAMD",
- .opcode = 5004,
+ .name = "OpHitObjectTraceRayMotionNV",
+ .opcode = 5256,
.operands = &.{
- .{ .kind = .id_result_type, .quantifier = .required },
- .{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_scope, .quantifier = .required },
- .{ .kind = .group_operation, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpGroupFMaxNonUniformAMD",
- .opcode = 5005,
+ .name = "OpHitObjectGetShaderRecordBufferHandleNV",
+ .opcode = 5257,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_scope, .quantifier = .required },
- .{ .kind = .group_operation, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpGroupUMaxNonUniformAMD",
- .opcode = 5006,
+ .name = "OpHitObjectGetShaderBindingTableRecordIndexNV",
+ .opcode = 5258,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_scope, .quantifier = .required },
- .{ .kind = .group_operation, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpGroupSMaxNonUniformAMD",
- .opcode = 5007,
+ .name = "OpHitObjectRecordEmptyNV",
+ .opcode = 5259,
.operands = &.{
- .{ .kind = .id_result_type, .quantifier = .required },
- .{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_scope, .quantifier = .required },
- .{ .kind = .group_operation, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpFragmentMaskFetchAMD",
- .opcode = 5011,
+ .name = "OpHitObjectTraceRayNV",
+ .opcode = 5260,
.operands = &.{
- .{ .kind = .id_result_type, .quantifier = .required },
- .{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- },
- },
- .{
- .name = "OpFragmentFetchAMD",
- .opcode = 5012,
- .operands = &.{
- .{ .kind = .id_result_type, .quantifier = .required },
- .{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpReadClockKHR",
- .opcode = 5056,
- .operands = &.{
- .{ .kind = .id_result_type, .quantifier = .required },
- .{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_scope, .quantifier = .required },
- },
- },
- .{
- .name = "OpAllocateNodePayloadsAMDX",
- .opcode = 5074,
+ .name = "OpHitObjectRecordHitNV",
+ .opcode = 5261,
.operands = &.{
- .{ .kind = .id_result_type, .quantifier = .required },
- .{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_scope, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpEnqueueNodePayloadsAMDX",
- .opcode = 5075,
+ .name = "OpHitObjectRecordHitWithIndexNV",
+ .opcode = 5262,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpTypeNodePayloadArrayAMDX",
- .opcode = 5076,
+ .name = "OpHitObjectRecordMissNV",
+ .opcode = 5263,
.operands = &.{
- .{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpFinishWritingNodePayloadAMDX",
- .opcode = 5078,
+ .name = "OpHitObjectExecuteShaderNV",
+ .opcode = 5264,
.operands = &.{
- .{ .kind = .id_result_type, .quantifier = .required },
- .{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpNodePayloadArrayLengthAMDX",
- .opcode = 5090,
+ .name = "OpHitObjectGetCurrentTimeNV",
+ .opcode = 5265,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
@@ -9759,34 +10902,25 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpIsNodePayloadValidAMDX",
- .opcode = 5101,
+ .name = "OpHitObjectGetAttributesNV",
+ .opcode = 5266,
.operands = &.{
- .{ .kind = .id_result_type, .quantifier = .required },
- .{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpConstantStringAMDX",
- .opcode = 5103,
- .operands = &.{
- .{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .literal_string, .quantifier = .required },
- },
- },
- .{
- .name = "OpSpecConstantStringAMDX",
- .opcode = 5104,
+ .name = "OpHitObjectGetHitKindNV",
+ .opcode = 5267,
.operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .literal_string, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpGroupNonUniformQuadAllKHR",
- .opcode = 5110,
+ .name = "OpHitObjectGetPrimitiveIndexNV",
+ .opcode = 5268,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
@@ -9794,8 +10928,8 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpGroupNonUniformQuadAnyKHR",
- .opcode = 5111,
+ .name = "OpHitObjectGetGeometryIndexNV",
+ .opcode = 5269,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
@@ -9803,60 +10937,35 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpHitObjectRecordHitMotionNV",
- .opcode = 5249,
+ .name = "OpHitObjectGetInstanceIdNV",
+ .opcode = 5270,
.operands = &.{
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpHitObjectRecordHitWithIndexMotionNV",
- .opcode = 5250,
- .operands = &.{
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
+ .name = "OpHitObjectGetInstanceCustomIndexNV",
+ .opcode = 5271,
+ .operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpHitObjectRecordMissMotionNV",
- .opcode = 5251,
+ .name = "OpHitObjectGetWorldRayDirectionNV",
+ .opcode = 5272,
.operands = &.{
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpHitObjectGetWorldToObjectNV",
- .opcode = 5252,
+ .name = "OpHitObjectGetWorldRayOriginNV",
+ .opcode = 5273,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
@@ -9864,8 +10973,8 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpHitObjectGetObjectToWorldNV",
- .opcode = 5253,
+ .name = "OpHitObjectGetRayTMaxNV",
+ .opcode = 5274,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
@@ -9873,8 +10982,8 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpHitObjectGetObjectRayDirectionNV",
- .opcode = 5254,
+ .name = "OpHitObjectGetRayTMinNV",
+ .opcode = 5275,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
@@ -9882,8 +10991,8 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpHitObjectGetObjectRayOriginNV",
- .opcode = 5255,
+ .name = "OpHitObjectIsEmptyNV",
+ .opcode = 5276,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
@@ -9891,53 +11000,75 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpHitObjectTraceRayMotionNV",
- .opcode = 5256,
+ .name = "OpHitObjectIsHitNV",
+ .opcode = 5277,
.operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ },
+ },
+ .{
+ .name = "OpHitObjectIsMissNV",
+ .opcode = 5278,
+ .operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ },
+ },
+ .{
+ .name = "OpReorderThreadWithHitObjectNV",
+ .opcode = 5279,
+ .operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .optional },
+ .{ .kind = .id_ref, .quantifier = .optional },
+ },
+ },
+ .{
+ .name = "OpReorderThreadWithHintNV",
+ .opcode = 5280,
+ .operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpHitObjectGetShaderRecordBufferHandleNV",
- .opcode = 5257,
+ .name = "OpTypeHitObjectNV",
+ .opcode = 5281,
.operands = &.{
- .{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpHitObjectGetShaderBindingTableRecordIndexNV",
- .opcode = 5258,
+ .name = "OpImageSampleFootprintNV",
+ .opcode = 5283,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .image_operands, .quantifier = .optional },
},
},
.{
- .name = "OpHitObjectRecordEmptyNV",
- .opcode = 5259,
+ .name = "OpTypeVectorIdEXT",
+ .opcode = 5288,
.operands = &.{
+ .{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpHitObjectTraceRayNV",
- .opcode = 5260,
+ .name = "OpCooperativeVectorMatrixMulNV",
+ .opcode = 5289,
.operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
@@ -9947,14 +11078,13 @@ pub const InstructionSet = enum {
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .optional },
+ .{ .kind = .cooperative_matrix_operands, .quantifier = .optional },
},
},
.{
- .name = "OpHitObjectRecordHitNV",
- .opcode = 5261,
+ .name = "OpCooperativeVectorOuterProductAccumulateNV",
+ .opcode = 5290,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
@@ -9962,19 +11092,24 @@ pub const InstructionSet = enum {
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .optional },
+ },
+ },
+ .{
+ .name = "OpCooperativeVectorReduceSumAccumulateNV",
+ .opcode = 5291,
+ .operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpHitObjectRecordHitWithIndexNV",
- .opcode = 5262,
+ .name = "OpCooperativeVectorMatrixMulAddNV",
+ .opcode = 5292,
.operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
@@ -9987,31 +11122,40 @@ pub const InstructionSet = enum {
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .optional },
+ .{ .kind = .cooperative_matrix_operands, .quantifier = .optional },
},
},
.{
- .name = "OpHitObjectRecordMissNV",
- .opcode = 5263,
+ .name = "OpCooperativeMatrixConvertNV",
+ .opcode = 5293,
.operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ },
+ },
+ .{
+ .name = "OpEmitMeshTasksEXT",
+ .opcode = 5294,
+ .operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .optional },
},
},
.{
- .name = "OpHitObjectExecuteShaderNV",
- .opcode = 5264,
+ .name = "OpSetMeshOutputsEXT",
+ .opcode = 5295,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpHitObjectGetCurrentTimeNV",
- .opcode = 5265,
+ .name = "OpGroupNonUniformPartitionEXT",
+ .opcode = 5296,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
@@ -10019,88 +11163,100 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpHitObjectGetAttributesNV",
- .opcode = 5266,
+ .name = "OpWritePackedPrimitiveIndices4x8NV",
+ .opcode = 5299,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpHitObjectGetHitKindNV",
- .opcode = 5267,
+ .name = "OpFetchMicroTriangleVertexPositionNV",
+ .opcode = 5300,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- },
- },
- .{
- .name = "OpHitObjectGetPrimitiveIndexNV",
- .opcode = 5268,
- .operands = &.{
- .{ .kind = .id_result_type, .quantifier = .required },
- .{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpHitObjectGetGeometryIndexNV",
- .opcode = 5269,
+ .name = "OpFetchMicroTriangleVertexBarycentricNV",
+ .opcode = 5301,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpHitObjectGetInstanceIdNV",
- .opcode = 5270,
+ .name = "OpCooperativeVectorLoadNV",
+ .opcode = 5302,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .memory_access, .quantifier = .optional },
},
},
.{
- .name = "OpHitObjectGetInstanceCustomIndexNV",
- .opcode = 5271,
+ .name = "OpCooperativeVectorStoreNV",
+ .opcode = 5303,
.operands = &.{
- .{ .kind = .id_result_type, .quantifier = .required },
- .{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .memory_access, .quantifier = .optional },
},
},
.{
- .name = "OpHitObjectGetWorldRayDirectionNV",
- .opcode = 5272,
+ .name = "OpHitObjectRecordFromQueryEXT",
+ .opcode = 5304,
.operands = &.{
- .{ .kind = .id_result_type, .quantifier = .required },
- .{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpHitObjectGetWorldRayOriginNV",
- .opcode = 5273,
+ .name = "OpHitObjectRecordMissEXT",
+ .opcode = 5305,
.operands = &.{
- .{ .kind = .id_result_type, .quantifier = .required },
- .{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpHitObjectGetRayTMaxNV",
- .opcode = 5274,
+ .name = "OpHitObjectRecordMissMotionEXT",
+ .opcode = 5306,
.operands = &.{
- .{ .kind = .id_result_type, .quantifier = .required },
- .{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpHitObjectGetRayTMinNV",
- .opcode = 5275,
+ .name = "OpHitObjectGetIntersectionTriangleVertexPositionsEXT",
+ .opcode = 5307,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
@@ -10108,8 +11264,8 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpHitObjectIsEmptyNV",
- .opcode = 5276,
+ .name = "OpHitObjectGetRayFlagsEXT",
+ .opcode = 5308,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
@@ -10117,75 +11273,92 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpHitObjectIsHitNV",
- .opcode = 5277,
+ .name = "OpHitObjectSetShaderBindingTableRecordIndexEXT",
+ .opcode = 5309,
.operands = &.{
- .{ .kind = .id_result_type, .quantifier = .required },
- .{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpHitObjectIsMissNV",
- .opcode = 5278,
+ .name = "OpHitObjectReorderExecuteShaderEXT",
+ .opcode = 5310,
.operands = &.{
- .{ .kind = .id_result_type, .quantifier = .required },
- .{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .optional },
+ .{ .kind = .id_ref, .quantifier = .optional },
},
},
.{
- .name = "OpReorderThreadWithHitObjectNV",
- .opcode = 5279,
+ .name = "OpHitObjectTraceReorderExecuteEXT",
+ .opcode = 5311,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .optional },
.{ .kind = .id_ref, .quantifier = .optional },
},
},
.{
- .name = "OpReorderThreadWithHintNV",
- .opcode = 5280,
+ .name = "OpHitObjectTraceMotionReorderExecuteEXT",
+ .opcode = 5312,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .optional },
+ .{ .kind = .id_ref, .quantifier = .optional },
},
},
.{
- .name = "OpTypeHitObjectNV",
- .opcode = 5281,
+ .name = "OpTypeHitObjectEXT",
+ .opcode = 5313,
.operands = &.{
.{ .kind = .id_result, .quantifier = .required },
},
},
.{
- .name = "OpImageSampleFootprintNV",
- .opcode = 5283,
+ .name = "OpReorderThreadWithHintEXT",
+ .opcode = 5314,
.operands = &.{
- .{ .kind = .id_result_type, .quantifier = .required },
- .{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .image_operands, .quantifier = .optional },
},
},
.{
- .name = "OpTypeCooperativeVectorNV",
- .opcode = 5288,
+ .name = "OpReorderThreadWithHitObjectEXT",
+ .opcode = 5315,
.operands = &.{
- .{ .kind = .id_result, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .optional },
+ .{ .kind = .id_ref, .quantifier = .optional },
},
},
.{
- .name = "OpCooperativeVectorMatrixMulNV",
- .opcode = 5289,
+ .name = "OpHitObjectTraceRayEXT",
+ .opcode = 5316,
.operands = &.{
- .{ .kind = .id_result_type, .quantifier = .required },
- .{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
@@ -10195,13 +11368,14 @@ pub const InstructionSet = enum {
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .optional },
- .{ .kind = .cooperative_matrix_operands, .quantifier = .optional },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpCooperativeVectorOuterProductAccumulateNV",
- .opcode = 5290,
+ .name = "OpHitObjectTraceRayMotionEXT",
+ .opcode = 5317,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
@@ -10209,43 +11383,50 @@ pub const InstructionSet = enum {
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .optional },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpCooperativeVectorReduceSumAccumulateNV",
- .opcode = 5291,
+ .name = "OpHitObjectRecordEmptyEXT",
+ .opcode = 5318,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
+ },
+ },
+ .{
+ .name = "OpHitObjectExecuteShaderEXT",
+ .opcode = 5319,
+ .operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpCooperativeVectorMatrixMulAddNV",
- .opcode = 5292,
+ .name = "OpHitObjectGetCurrentTimeEXT",
+ .opcode = 5320,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ },
+ },
+ .{
+ .name = "OpHitObjectGetAttributesEXT",
+ .opcode = 5321,
+ .operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .optional },
- .{ .kind = .cooperative_matrix_operands, .quantifier = .optional },
},
},
.{
- .name = "OpCooperativeMatrixConvertNV",
- .opcode = 5293,
+ .name = "OpHitObjectGetHitKindEXT",
+ .opcode = 5322,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
@@ -10253,26 +11434,26 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpEmitMeshTasksEXT",
- .opcode = 5294,
+ .name = "OpHitObjectGetPrimitiveIndexEXT",
+ .opcode = 5323,
.operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .optional },
},
},
.{
- .name = "OpSetMeshOutputsEXT",
- .opcode = 5295,
+ .name = "OpHitObjectGetGeometryIndexEXT",
+ .opcode = 5324,
.operands = &.{
- .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpGroupNonUniformPartitionNV",
- .opcode = 5296,
+ .name = "OpHitObjectGetInstanceIdEXT",
+ .opcode = 5325,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
@@ -10280,58 +11461,75 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpWritePackedPrimitiveIndices4x8NV",
- .opcode = 5299,
+ .name = "OpHitObjectGetInstanceCustomIndexEXT",
+ .opcode = 5326,
.operands = &.{
- .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpFetchMicroTriangleVertexPositionNV",
- .opcode = 5300,
+ .name = "OpHitObjectGetObjectRayOriginEXT",
+ .opcode = 5327,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpFetchMicroTriangleVertexBarycentricNV",
- .opcode = 5301,
+ .name = "OpHitObjectGetObjectRayDirectionEXT",
+ .opcode = 5328,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpCooperativeVectorLoadNV",
- .opcode = 5302,
+ .name = "OpHitObjectGetWorldRayDirectionEXT",
+ .opcode = 5329,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ },
+ },
+ .{
+ .name = "OpHitObjectGetWorldRayOriginEXT",
+ .opcode = 5330,
+ .operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .memory_access, .quantifier = .optional },
},
},
.{
- .name = "OpCooperativeVectorStoreNV",
- .opcode = 5303,
+ .name = "OpHitObjectGetObjectToWorldEXT",
+ .opcode = 5331,
.operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ },
+ },
+ .{
+ .name = "OpHitObjectGetWorldToObjectEXT",
+ .opcode = 5332,
+ .operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ },
+ },
+ .{
+ .name = "OpHitObjectGetRayTMaxEXT",
+ .opcode = 5333,
+ .operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .memory_access, .quantifier = .optional },
},
},
.{
@@ -10433,7 +11631,7 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpRayQueryGetClusterIdNV",
+ .name = "OpRayQueryGetIntersectionClusterIdNV",
.opcode = 5345,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
@@ -10452,6 +11650,60 @@ pub const InstructionSet = enum {
},
},
.{
+ .name = "OpHitObjectGetRayTMinEXT",
+ .opcode = 5347,
+ .operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ },
+ },
+ .{
+ .name = "OpHitObjectGetShaderBindingTableRecordIndexEXT",
+ .opcode = 5348,
+ .operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ },
+ },
+ .{
+ .name = "OpHitObjectGetShaderRecordBufferHandleEXT",
+ .opcode = 5349,
+ .operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ },
+ },
+ .{
+ .name = "OpHitObjectIsEmptyEXT",
+ .opcode = 5350,
+ .operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ },
+ },
+ .{
+ .name = "OpHitObjectIsHitEXT",
+ .opcode = 5351,
+ .operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ },
+ },
+ .{
+ .name = "OpHitObjectIsMissEXT",
+ .opcode = 5352,
+ .operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ },
+ },
+ .{
.name = "OpTypeCooperativeMatrixNV",
.opcode = 5358,
.operands = &.{
@@ -12432,7 +13684,7 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpArbitraryFloatSinCosPiINTEL",
+ .name = "OpArbitraryFloatSinCosPiALTERA",
.opcode = 5840,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
@@ -12446,7 +13698,7 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpArbitraryFloatCastINTEL",
+ .name = "OpArbitraryFloatCastALTERA",
.opcode = 5841,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
@@ -12460,7 +13712,7 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpArbitraryFloatCastFromIntINTEL",
+ .name = "OpArbitraryFloatCastFromIntALTERA",
.opcode = 5842,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
@@ -12474,7 +13726,7 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpArbitraryFloatCastToIntINTEL",
+ .name = "OpArbitraryFloatCastToIntALTERA",
.opcode = 5843,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
@@ -12488,7 +13740,7 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpArbitraryFloatAddINTEL",
+ .name = "OpArbitraryFloatAddALTERA",
.opcode = 5846,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
@@ -12504,7 +13756,7 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpArbitraryFloatSubINTEL",
+ .name = "OpArbitraryFloatSubALTERA",
.opcode = 5847,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
@@ -12520,7 +13772,7 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpArbitraryFloatMulINTEL",
+ .name = "OpArbitraryFloatMulALTERA",
.opcode = 5848,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
@@ -12536,7 +13788,7 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpArbitraryFloatDivINTEL",
+ .name = "OpArbitraryFloatDivALTERA",
.opcode = 5849,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
@@ -12552,7 +13804,7 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpArbitraryFloatGTINTEL",
+ .name = "OpArbitraryFloatGTALTERA",
.opcode = 5850,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
@@ -12564,7 +13816,7 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpArbitraryFloatGEINTEL",
+ .name = "OpArbitraryFloatGEALTERA",
.opcode = 5851,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
@@ -12576,7 +13828,7 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpArbitraryFloatLTINTEL",
+ .name = "OpArbitraryFloatLTALTERA",
.opcode = 5852,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
@@ -12588,7 +13840,7 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpArbitraryFloatLEINTEL",
+ .name = "OpArbitraryFloatLEALTERA",
.opcode = 5853,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
@@ -12600,7 +13852,7 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpArbitraryFloatEQINTEL",
+ .name = "OpArbitraryFloatEQALTERA",
.opcode = 5854,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
@@ -12612,7 +13864,7 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpArbitraryFloatRecipINTEL",
+ .name = "OpArbitraryFloatRecipALTERA",
.opcode = 5855,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
@@ -12626,7 +13878,7 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpArbitraryFloatRSqrtINTEL",
+ .name = "OpArbitraryFloatRSqrtALTERA",
.opcode = 5856,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
@@ -12640,7 +13892,7 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpArbitraryFloatCbrtINTEL",
+ .name = "OpArbitraryFloatCbrtALTERA",
.opcode = 5857,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
@@ -12654,7 +13906,7 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpArbitraryFloatHypotINTEL",
+ .name = "OpArbitraryFloatHypotALTERA",
.opcode = 5858,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
@@ -12670,7 +13922,7 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpArbitraryFloatSqrtINTEL",
+ .name = "OpArbitraryFloatSqrtALTERA",
.opcode = 5859,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
@@ -13046,7 +14298,7 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpFixedSqrtINTEL",
+ .name = "OpFixedSqrtALTERA",
.opcode = 5923,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
@@ -13060,7 +14312,7 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpFixedRecipINTEL",
+ .name = "OpFixedRecipALTERA",
.opcode = 5924,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
@@ -13074,7 +14326,7 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpFixedRsqrtINTEL",
+ .name = "OpFixedRsqrtALTERA",
.opcode = 5925,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
@@ -13088,7 +14340,7 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpFixedSinINTEL",
+ .name = "OpFixedSinALTERA",
.opcode = 5926,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
@@ -13102,7 +14354,7 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpFixedCosINTEL",
+ .name = "OpFixedCosALTERA",
.opcode = 5927,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
@@ -13116,7 +14368,7 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpFixedSinCosINTEL",
+ .name = "OpFixedSinCosALTERA",
.opcode = 5928,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
@@ -13130,7 +14382,7 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpFixedSinPiINTEL",
+ .name = "OpFixedSinPiALTERA",
.opcode = 5929,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
@@ -13144,7 +14396,7 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpFixedCosPiINTEL",
+ .name = "OpFixedCosPiALTERA",
.opcode = 5930,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
@@ -13158,7 +14410,7 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpFixedSinCosPiINTEL",
+ .name = "OpFixedSinCosPiALTERA",
.opcode = 5931,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
@@ -13172,7 +14424,7 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpFixedLogINTEL",
+ .name = "OpFixedLogALTERA",
.opcode = 5932,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
@@ -13186,7 +14438,7 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpFixedExpINTEL",
+ .name = "OpFixedExpALTERA",
.opcode = 5933,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
@@ -13200,7 +14452,7 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpPtrCastToCrossWorkgroupINTEL",
+ .name = "OpPtrCastToCrossWorkgroupALTERA",
.opcode = 5934,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
@@ -13209,7 +14461,7 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpCrossWorkgroupCastToPtrINTEL",
+ .name = "OpCrossWorkgroupCastToPtrALTERA",
.opcode = 5938,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
@@ -13218,7 +14470,7 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpReadPipeBlockingINTEL",
+ .name = "OpReadPipeBlockingALTERA",
.opcode = 5946,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
@@ -13228,7 +14480,7 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpWritePipeBlockingINTEL",
+ .name = "OpWritePipeBlockingALTERA",
.opcode = 5947,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
@@ -13238,7 +14490,7 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpFPGARegINTEL",
+ .name = "OpFPGARegALTERA",
.opcode = 5949,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
@@ -13507,7 +14759,7 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpTaskSequenceCreateINTEL",
+ .name = "OpTaskSequenceCreateALTERA",
.opcode = 6163,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
@@ -13520,7 +14772,7 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpTaskSequenceAsyncINTEL",
+ .name = "OpTaskSequenceAsyncALTERA",
.opcode = 6164,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
@@ -13528,7 +14780,7 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpTaskSequenceGetINTEL",
+ .name = "OpTaskSequenceGetALTERA",
.opcode = 6165,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
@@ -13537,14 +14789,14 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpTaskSequenceReleaseINTEL",
+ .name = "OpTaskSequenceReleaseALTERA",
.opcode = 6166,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpTypeTaskSequenceINTEL",
+ .name = "OpTypeTaskSequenceALTERA",
.opcode = 6199,
.operands = &.{
.{ .kind = .id_result, .quantifier = .required },
@@ -13664,6 +14916,83 @@ pub const InstructionSet = enum {
},
},
.{
+ .name = "OpUntypedVariableLengthArrayINTEL",
+ .opcode = 6244,
+ .operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ },
+ },
+ .{
+ .name = "OpConditionalExtensionINTEL",
+ .opcode = 6248,
+ .operands = &.{
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .literal_string, .quantifier = .required },
+ },
+ },
+ .{
+ .name = "OpConditionalEntryPointINTEL",
+ .opcode = 6249,
+ .operands = &.{
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .execution_model, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .literal_string, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .variadic },
+ },
+ },
+ .{
+ .name = "OpConditionalCapabilityINTEL",
+ .opcode = 6250,
+ .operands = &.{
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .capability, .quantifier = .required },
+ },
+ },
+ .{
+ .name = "OpSpecConstantTargetINTEL",
+ .opcode = 6251,
+ .operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .literal_integer, .quantifier = .required },
+ .{ .kind = .literal_integer, .quantifier = .variadic },
+ },
+ },
+ .{
+ .name = "OpSpecConstantArchitectureINTEL",
+ .opcode = 6252,
+ .operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .literal_integer, .quantifier = .required },
+ .{ .kind = .literal_integer, .quantifier = .required },
+ .{ .kind = .literal_integer, .quantifier = .required },
+ .{ .kind = .literal_integer, .quantifier = .required },
+ },
+ },
+ .{
+ .name = "OpSpecConstantCapabilitiesINTEL",
+ .opcode = 6253,
+ .operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .capability, .quantifier = .variadic },
+ },
+ },
+ .{
+ .name = "OpConditionalCopyObjectINTEL",
+ .opcode = 6254,
+ .operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .variadic },
+ },
+ },
+ .{
.name = "OpGroupIMulKHR",
.opcode = 6401,
.operands = &.{
@@ -13761,406 +15090,447 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "OpMaskedGatherINTEL",
- .opcode = 6428,
+ .name = "OpMaskedGatherINTEL",
+ .opcode = 6428,
+ .operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .literal_integer, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ },
+ },
+ .{
+ .name = "OpMaskedScatterINTEL",
+ .opcode = 6429,
+ .operands = &.{
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .literal_integer, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ },
+ },
+ .{
+ .name = "OpConvertHandleToImageINTEL",
+ .opcode = 6529,
+ .operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ },
+ },
+ .{
+ .name = "OpConvertHandleToSamplerINTEL",
+ .opcode = 6530,
+ .operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ },
+ },
+ .{
+ .name = "OpConvertHandleToSampledImageINTEL",
+ .opcode = 6531,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .literal_integer, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpMaskedScatterINTEL",
- .opcode = 6429,
+ .name = "OpFDot2MixAcc32VALVE",
+ .opcode = 6916,
.operands = &.{
+ .{ .kind = .id_result_type, .quantifier = .required },
+ .{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .literal_integer, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpConvertHandleToImageINTEL",
- .opcode = 6529,
+ .name = "OpFDot2MixAcc16VALVE",
+ .opcode = 6917,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "OpConvertHandleToSamplerINTEL",
- .opcode = 6530,
+ .name = "OpFDot4MixAcc32VALVE",
+ .opcode = 6918,
.operands = &.{
.{ .kind = .id_result_type, .quantifier = .required },
.{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
+ },
+ .@"OpenCL.std" => &.{
.{
- .name = "OpConvertHandleToSampledImageINTEL",
- .opcode = 6531,
+ .name = "acos",
+ .opcode = 0,
.operands = &.{
- .{ .kind = .id_result_type, .quantifier = .required },
- .{ .kind = .id_result, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
- },
- .@"GLSL.std.450" => &.{
.{
- .name = "Round",
+ .name = "acosh",
.opcode = 1,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "RoundEven",
+ .name = "acospi",
.opcode = 2,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "Trunc",
+ .name = "asin",
.opcode = 3,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "FAbs",
+ .name = "asinh",
.opcode = 4,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "SAbs",
+ .name = "asinpi",
.opcode = 5,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "FSign",
+ .name = "atan",
.opcode = 6,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "SSign",
+ .name = "atan2",
.opcode = 7,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "Floor",
+ .name = "atanh",
.opcode = 8,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "Ceil",
+ .name = "atanpi",
.opcode = 9,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "Fract",
+ .name = "atan2pi",
.opcode = 10,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "Radians",
+ .name = "cbrt",
.opcode = 11,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "Degrees",
+ .name = "ceil",
.opcode = 12,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "Sin",
+ .name = "copysign",
.opcode = 13,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "Cos",
+ .name = "cos",
.opcode = 14,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "Tan",
+ .name = "cosh",
.opcode = 15,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "Asin",
+ .name = "cospi",
.opcode = 16,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "Acos",
+ .name = "erfc",
.opcode = 17,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "Atan",
+ .name = "erf",
.opcode = 18,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "Sinh",
+ .name = "exp",
.opcode = 19,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "Cosh",
+ .name = "exp2",
.opcode = 20,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "Tanh",
+ .name = "exp10",
.opcode = 21,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "Asinh",
+ .name = "expm1",
.opcode = 22,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "Acosh",
+ .name = "fabs",
.opcode = 23,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "Atanh",
+ .name = "fdim",
.opcode = 24,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "Atan2",
+ .name = "floor",
.opcode = 25,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "Pow",
+ .name = "fma",
.opcode = 26,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "Exp",
+ .name = "fmax",
.opcode = 27,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "Log",
+ .name = "fmin",
.opcode = 28,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "Exp2",
+ .name = "fmod",
.opcode = 29,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "Log2",
+ .name = "fract",
.opcode = 30,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "Sqrt",
+ .name = "frexp",
.opcode = 31,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "InverseSqrt",
+ .name = "hypot",
.opcode = 32,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "Determinant",
+ .name = "ilogb",
.opcode = 33,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "MatrixInverse",
+ .name = "ldexp",
.opcode = 34,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "Modf",
+ .name = "lgamma",
.opcode = 35,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "ModfStruct",
+ .name = "lgamma_r",
.opcode = 36,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "FMin",
+ .name = "log",
.opcode = 37,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "UMin",
+ .name = "log2",
.opcode = 38,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "SMin",
+ .name = "log10",
.opcode = 39,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "FMax",
+ .name = "log1p",
.opcode = 40,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "UMax",
+ .name = "logb",
.opcode = 41,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "SMax",
+ .name = "mad",
.opcode = 42,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "FClamp",
+ .name = "maxmag",
.opcode = 43,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "UClamp",
+ .name = "minmag",
.opcode = 44,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "SClamp",
+ .name = "modf",
.opcode = 45,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "FMix",
+ .name = "nan",
.opcode = 46,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "IMix",
+ .name = "nextafter",
.opcode = 47,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "Step",
+ .name = "pow",
.opcode = 48,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
@@ -14168,25 +15538,23 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "SmoothStep",
+ .name = "pown",
.opcode = 49,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "Fma",
+ .name = "powr",
.opcode = 50,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "Frexp",
+ .name = "remainder",
.opcode = 51,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
@@ -14194,121 +15562,123 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "FrexpStruct",
+ .name = "remquo",
.opcode = 52,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "Ldexp",
+ .name = "rint",
.opcode = 53,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "PackSnorm4x8",
+ .name = "rootn",
.opcode = 54,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "PackUnorm4x8",
+ .name = "round",
.opcode = 55,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "PackSnorm2x16",
+ .name = "rsqrt",
.opcode = 56,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "PackUnorm2x16",
+ .name = "sin",
.opcode = 57,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "PackHalf2x16",
+ .name = "sincos",
.opcode = 58,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "PackDouble2x32",
+ .name = "sinh",
.opcode = 59,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "UnpackSnorm2x16",
+ .name = "sinpi",
.opcode = 60,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "UnpackUnorm2x16",
+ .name = "sqrt",
.opcode = 61,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "UnpackHalf2x16",
+ .name = "tan",
.opcode = 62,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "UnpackSnorm4x8",
+ .name = "tanh",
.opcode = 63,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "UnpackUnorm4x8",
+ .name = "tanpi",
.opcode = 64,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "UnpackDouble2x32",
+ .name = "tgamma",
.opcode = 65,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "Length",
+ .name = "trunc",
.opcode = 66,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "Distance",
+ .name = "half_cos",
.opcode = 67,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "Cross",
+ .name = "half_divide",
.opcode = 68,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
@@ -14316,420 +15686,412 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "Normalize",
+ .name = "half_exp",
.opcode = 69,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "FaceForward",
+ .name = "half_exp2",
.opcode = 70,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "Reflect",
+ .name = "half_exp10",
.opcode = 71,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "Refract",
+ .name = "half_log",
.opcode = 72,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "FindILsb",
+ .name = "half_log2",
.opcode = 73,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "FindSMsb",
+ .name = "half_log10",
.opcode = 74,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "FindUMsb",
+ .name = "half_powr",
.opcode = 75,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "InterpolateAtCentroid",
+ .name = "half_recip",
.opcode = 76,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "InterpolateAtSample",
+ .name = "half_rsqrt",
.opcode = 77,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "InterpolateAtOffset",
+ .name = "half_sin",
.opcode = 78,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "NMin",
+ .name = "half_sqrt",
.opcode = 79,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "NMax",
+ .name = "half_tan",
.opcode = 80,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "NClamp",
+ .name = "native_cos",
.opcode = 81,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
- },
- .@"OpenCL.std" => &.{
.{
- .name = "acos",
- .opcode = 0,
+ .name = "native_divide",
+ .opcode = 82,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "acosh",
- .opcode = 1,
+ .name = "native_exp",
+ .opcode = 83,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "acospi",
- .opcode = 2,
+ .name = "native_exp2",
+ .opcode = 84,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "asin",
- .opcode = 3,
+ .name = "native_exp10",
+ .opcode = 85,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "asinh",
- .opcode = 4,
+ .name = "native_log",
+ .opcode = 86,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "asinpi",
- .opcode = 5,
+ .name = "native_log2",
+ .opcode = 87,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "atan",
- .opcode = 6,
+ .name = "native_log10",
+ .opcode = 88,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "atan2",
- .opcode = 7,
+ .name = "native_powr",
+ .opcode = 89,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "atanh",
- .opcode = 8,
+ .name = "native_recip",
+ .opcode = 90,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "atanpi",
- .opcode = 9,
+ .name = "native_rsqrt",
+ .opcode = 91,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "atan2pi",
- .opcode = 10,
+ .name = "native_sin",
+ .opcode = 92,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "cbrt",
- .opcode = 11,
+ .name = "native_sqrt",
+ .opcode = 93,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "ceil",
- .opcode = 12,
+ .name = "native_tan",
+ .opcode = 94,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "copysign",
- .opcode = 13,
+ .name = "fclamp",
+ .opcode = 95,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- },
- },
- .{
- .name = "cos",
- .opcode = 14,
- .operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "cosh",
- .opcode = 15,
+ .name = "degrees",
+ .opcode = 96,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "cospi",
- .opcode = 16,
+ .name = "fmax_common",
+ .opcode = 97,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "erfc",
- .opcode = 17,
+ .name = "fmin_common",
+ .opcode = 98,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "erf",
- .opcode = 18,
+ .name = "mix",
+ .opcode = 99,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "exp",
- .opcode = 19,
+ .name = "radians",
+ .opcode = 100,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "exp2",
- .opcode = 20,
+ .name = "step",
+ .opcode = 101,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "exp10",
- .opcode = 21,
+ .name = "smoothstep",
+ .opcode = 102,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "expm1",
- .opcode = 22,
+ .name = "sign",
+ .opcode = 103,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "fabs",
- .opcode = 23,
+ .name = "cross",
+ .opcode = 104,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "fdim",
- .opcode = 24,
+ .name = "distance",
+ .opcode = 105,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "floor",
- .opcode = 25,
+ .name = "length",
+ .opcode = 106,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "fma",
- .opcode = 26,
+ .name = "normalize",
+ .opcode = 107,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "fmax",
- .opcode = 27,
+ .name = "fast_distance",
+ .opcode = 108,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "fmin",
- .opcode = 28,
+ .name = "fast_length",
+ .opcode = 109,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "fmod",
- .opcode = 29,
+ .name = "fast_normalize",
+ .opcode = 110,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "fract",
- .opcode = 30,
+ .name = "s_abs",
+ .opcode = 141,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "frexp",
- .opcode = 31,
+ .name = "s_abs_diff",
+ .opcode = 142,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "hypot",
- .opcode = 32,
+ .name = "s_add_sat",
+ .opcode = 143,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "ilogb",
- .opcode = 33,
+ .name = "u_add_sat",
+ .opcode = 144,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "ldexp",
- .opcode = 34,
+ .name = "s_hadd",
+ .opcode = 145,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "lgamma",
- .opcode = 35,
+ .name = "u_hadd",
+ .opcode = 146,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "lgamma_r",
- .opcode = 36,
+ .name = "s_rhadd",
+ .opcode = 147,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "log",
- .opcode = 37,
+ .name = "u_rhadd",
+ .opcode = 148,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "log2",
- .opcode = 38,
+ .name = "s_clamp",
+ .opcode = 149,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "log10",
- .opcode = 39,
+ .name = "u_clamp",
+ .opcode = 150,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "log1p",
- .opcode = 40,
+ .name = "clz",
+ .opcode = 151,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "logb",
- .opcode = 41,
+ .name = "ctz",
+ .opcode = 152,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "mad",
- .opcode = 42,
+ .name = "s_mad_hi",
+ .opcode = 153,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
@@ -14737,607 +16099,636 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "maxmag",
- .opcode = 43,
+ .name = "u_mad_sat",
+ .opcode = 154,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "minmag",
- .opcode = 44,
+ .name = "s_mad_sat",
+ .opcode = 155,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "modf",
- .opcode = 45,
+ .name = "s_max",
+ .opcode = 156,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "nan",
- .opcode = 46,
+ .name = "u_max",
+ .opcode = 157,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "nextafter",
- .opcode = 47,
+ .name = "s_min",
+ .opcode = 158,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "pow",
- .opcode = 48,
+ .name = "u_min",
+ .opcode = 159,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "pown",
- .opcode = 49,
+ .name = "s_mul_hi",
+ .opcode = 160,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "powr",
- .opcode = 50,
+ .name = "rotate",
+ .opcode = 161,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "remainder",
- .opcode = 51,
+ .name = "s_sub_sat",
+ .opcode = 162,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "remquo",
- .opcode = 52,
+ .name = "u_sub_sat",
+ .opcode = 163,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "rint",
- .opcode = 53,
+ .name = "u_upsample",
+ .opcode = 164,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "rootn",
- .opcode = 54,
+ .name = "s_upsample",
+ .opcode = 165,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "round",
- .opcode = 55,
+ .name = "popcount",
+ .opcode = 166,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "rsqrt",
- .opcode = 56,
+ .name = "s_mad24",
+ .opcode = 167,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "sin",
- .opcode = 57,
+ .name = "u_mad24",
+ .opcode = 168,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "sincos",
- .opcode = 58,
+ .name = "s_mul24",
+ .opcode = 169,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "sinh",
- .opcode = 59,
+ .name = "u_mul24",
+ .opcode = 170,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "sinpi",
- .opcode = 60,
+ .name = "vloadn",
+ .opcode = 171,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .literal_integer, .quantifier = .required },
},
},
.{
- .name = "sqrt",
- .opcode = 61,
+ .name = "vstoren",
+ .opcode = 172,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "tan",
- .opcode = 62,
+ .name = "vload_half",
+ .opcode = 173,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "tanh",
- .opcode = 63,
+ .name = "vload_halfn",
+ .opcode = 174,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .literal_integer, .quantifier = .required },
},
},
.{
- .name = "tanpi",
- .opcode = 64,
+ .name = "vstore_half",
+ .opcode = 175,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "tgamma",
- .opcode = 65,
+ .name = "vstore_half_r",
+ .opcode = 176,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .fp_rounding_mode, .quantifier = .required },
},
},
.{
- .name = "trunc",
- .opcode = 66,
+ .name = "vstore_halfn",
+ .opcode = 177,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "half_cos",
- .opcode = 67,
+ .name = "vstore_halfn_r",
+ .opcode = 178,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .fp_rounding_mode, .quantifier = .required },
},
},
.{
- .name = "half_divide",
- .opcode = 68,
+ .name = "vloada_halfn",
+ .opcode = 179,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .literal_integer, .quantifier = .required },
},
},
.{
- .name = "half_exp",
- .opcode = 69,
+ .name = "vstorea_halfn",
+ .opcode = 180,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "half_exp2",
- .opcode = 70,
+ .name = "vstorea_halfn_r",
+ .opcode = 181,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .fp_rounding_mode, .quantifier = .required },
},
},
.{
- .name = "half_exp10",
- .opcode = 71,
+ .name = "shuffle",
+ .opcode = 182,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "half_log",
- .opcode = 72,
+ .name = "shuffle2",
+ .opcode = 183,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "half_log2",
- .opcode = 73,
+ .name = "printf",
+ .opcode = 184,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .variadic },
},
},
.{
- .name = "half_log10",
- .opcode = 74,
+ .name = "prefetch",
+ .opcode = 185,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "half_powr",
- .opcode = 75,
+ .name = "bitselect",
+ .opcode = 186,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "half_recip",
- .opcode = 76,
+ .name = "select",
+ .opcode = 187,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "half_rsqrt",
- .opcode = 77,
+ .name = "u_abs",
+ .opcode = 201,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "half_sin",
- .opcode = 78,
+ .name = "u_abs_diff",
+ .opcode = 202,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "half_sqrt",
- .opcode = 79,
+ .name = "u_mul_hi",
+ .opcode = 203,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "half_tan",
- .opcode = 80,
+ .name = "u_mad_hi",
+ .opcode = 204,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
+ },
+ .@"GLSL.std.450" => &.{
.{
- .name = "native_cos",
- .opcode = 81,
+ .name = "Round",
+ .opcode = 1,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "native_divide",
- .opcode = 82,
+ .name = "RoundEven",
+ .opcode = 2,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "native_exp",
- .opcode = 83,
+ .name = "Trunc",
+ .opcode = 3,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "native_exp2",
- .opcode = 84,
+ .name = "FAbs",
+ .opcode = 4,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "native_exp10",
- .opcode = 85,
+ .name = "SAbs",
+ .opcode = 5,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "native_log",
- .opcode = 86,
+ .name = "FSign",
+ .opcode = 6,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "native_log2",
- .opcode = 87,
+ .name = "SSign",
+ .opcode = 7,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "native_log10",
- .opcode = 88,
+ .name = "Floor",
+ .opcode = 8,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "native_powr",
- .opcode = 89,
+ .name = "Ceil",
+ .opcode = 9,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "native_recip",
- .opcode = 90,
+ .name = "Fract",
+ .opcode = 10,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "native_rsqrt",
- .opcode = 91,
+ .name = "Radians",
+ .opcode = 11,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "native_sin",
- .opcode = 92,
+ .name = "Degrees",
+ .opcode = 12,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "native_sqrt",
- .opcode = 93,
+ .name = "Sin",
+ .opcode = 13,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "native_tan",
- .opcode = 94,
+ .name = "Cos",
+ .opcode = 14,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "fclamp",
- .opcode = 95,
+ .name = "Tan",
+ .opcode = 15,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "degrees",
- .opcode = 96,
+ .name = "Asin",
+ .opcode = 16,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "fmax_common",
- .opcode = 97,
+ .name = "Acos",
+ .opcode = 17,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "fmin_common",
- .opcode = 98,
+ .name = "Atan",
+ .opcode = 18,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "mix",
- .opcode = 99,
+ .name = "Sinh",
+ .opcode = 19,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "radians",
- .opcode = 100,
+ .name = "Cosh",
+ .opcode = 20,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "step",
- .opcode = 101,
+ .name = "Tanh",
+ .opcode = 21,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "smoothstep",
- .opcode = 102,
+ .name = "Asinh",
+ .opcode = 22,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "sign",
- .opcode = 103,
+ .name = "Acosh",
+ .opcode = 23,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "cross",
- .opcode = 104,
+ .name = "Atanh",
+ .opcode = 24,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "distance",
- .opcode = 105,
+ .name = "Atan2",
+ .opcode = 25,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "length",
- .opcode = 106,
+ .name = "Pow",
+ .opcode = 26,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "normalize",
- .opcode = 107,
+ .name = "Exp",
+ .opcode = 27,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "fast_distance",
- .opcode = 108,
+ .name = "Log",
+ .opcode = 28,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "fast_length",
- .opcode = 109,
+ .name = "Exp2",
+ .opcode = 29,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "fast_normalize",
- .opcode = 110,
+ .name = "Log2",
+ .opcode = 30,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "s_abs",
- .opcode = 141,
+ .name = "Sqrt",
+ .opcode = 31,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "s_abs_diff",
- .opcode = 142,
+ .name = "InverseSqrt",
+ .opcode = 32,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "s_add_sat",
- .opcode = 143,
+ .name = "Determinant",
+ .opcode = 33,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "u_add_sat",
- .opcode = 144,
+ .name = "MatrixInverse",
+ .opcode = 34,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "s_hadd",
- .opcode = 145,
+ .name = "Modf",
+ .opcode = 35,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "u_hadd",
- .opcode = 146,
+ .name = "ModfStruct",
+ .opcode = 36,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "s_rhadd",
- .opcode = 147,
+ .name = "FMin",
+ .opcode = 37,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "u_rhadd",
- .opcode = 148,
+ .name = "UMin",
+ .opcode = 38,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "s_clamp",
- .opcode = 149,
+ .name = "SMin",
+ .opcode = 39,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "u_clamp",
- .opcode = 150,
+ .name = "FMax",
+ .opcode = 40,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "clz",
- .opcode = 151,
+ .name = "UMax",
+ .opcode = 41,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "ctz",
- .opcode = 152,
+ .name = "SMax",
+ .opcode = 42,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "s_mad_hi",
- .opcode = 153,
+ .name = "FClamp",
+ .opcode = 43,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
@@ -15345,8 +16736,8 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "u_mad_sat",
- .opcode = 154,
+ .name = "UClamp",
+ .opcode = 44,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
@@ -15354,8 +16745,8 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "s_mad_sat",
- .opcode = 155,
+ .name = "SClamp",
+ .opcode = 45,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
@@ -15363,211 +16754,189 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "s_max",
- .opcode = 156,
+ .name = "FMix",
+ .opcode = 46,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "u_max",
- .opcode = 157,
+ .name = "IMix",
+ .opcode = 47,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "s_min",
- .opcode = 158,
+ .name = "Step",
+ .opcode = 48,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "u_min",
- .opcode = 159,
+ .name = "SmoothStep",
+ .opcode = 49,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "s_mul_hi",
- .opcode = 160,
+ .name = "Fma",
+ .opcode = 50,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "rotate",
- .opcode = 161,
+ .name = "Frexp",
+ .opcode = 51,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "s_sub_sat",
- .opcode = 162,
+ .name = "FrexpStruct",
+ .opcode = 52,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "u_sub_sat",
- .opcode = 163,
+ .name = "Ldexp",
+ .opcode = 53,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "u_upsample",
- .opcode = 164,
+ .name = "PackSnorm4x8",
+ .opcode = 54,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "s_upsample",
- .opcode = 165,
+ .name = "PackUnorm4x8",
+ .opcode = 55,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "popcount",
- .opcode = 166,
+ .name = "PackSnorm2x16",
+ .opcode = 56,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "s_mad24",
- .opcode = 167,
+ .name = "PackUnorm2x16",
+ .opcode = 57,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "u_mad24",
- .opcode = 168,
+ .name = "PackHalf2x16",
+ .opcode = 58,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "s_mul24",
- .opcode = 169,
+ .name = "PackDouble2x32",
+ .opcode = 59,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "u_mul24",
- .opcode = 170,
+ .name = "UnpackSnorm2x16",
+ .opcode = 60,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "vloadn",
- .opcode = 171,
+ .name = "UnpackUnorm2x16",
+ .opcode = 61,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .literal_integer, .quantifier = .required },
},
},
.{
- .name = "vstoren",
- .opcode = 172,
+ .name = "UnpackHalf2x16",
+ .opcode = 62,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "vload_half",
- .opcode = 173,
+ .name = "UnpackSnorm4x8",
+ .opcode = 63,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "vload_halfn",
- .opcode = 174,
+ .name = "UnpackUnorm4x8",
+ .opcode = 64,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .literal_integer, .quantifier = .required },
},
},
.{
- .name = "vstore_half",
- .opcode = 175,
+ .name = "UnpackDouble2x32",
+ .opcode = 65,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "vstore_half_r",
- .opcode = 176,
+ .name = "Length",
+ .opcode = 66,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .fp_rounding_mode, .quantifier = .required },
},
},
.{
- .name = "vstore_halfn",
- .opcode = 177,
+ .name = "Distance",
+ .opcode = 67,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "vstore_halfn_r",
- .opcode = 178,
+ .name = "Cross",
+ .opcode = 68,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .fp_rounding_mode, .quantifier = .required },
},
},
.{
- .name = "vloada_halfn",
- .opcode = 179,
+ .name = "Normalize",
+ .opcode = 69,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .literal_integer, .quantifier = .required },
},
},
.{
- .name = "vstorea_halfn",
- .opcode = 180,
+ .name = "FaceForward",
+ .opcode = 70,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
@@ -15575,92 +16944,85 @@ pub const InstructionSet = enum {
},
},
.{
- .name = "vstorea_halfn_r",
- .opcode = 181,
+ .name = "Reflect",
+ .opcode = 71,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .fp_rounding_mode, .quantifier = .required },
},
},
.{
- .name = "shuffle",
- .opcode = 182,
+ .name = "Refract",
+ .opcode = 72,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "shuffle2",
- .opcode = 183,
+ .name = "FindILsb",
+ .opcode = 73,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "printf",
- .opcode = 184,
+ .name = "FindSMsb",
+ .opcode = 74,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .variadic },
},
},
.{
- .name = "prefetch",
- .opcode = 185,
+ .name = "FindUMsb",
+ .opcode = 75,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "bitselect",
- .opcode = 186,
+ .name = "InterpolateAtCentroid",
+ .opcode = 76,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "select",
- .opcode = 187,
+ .name = "InterpolateAtSample",
+ .opcode = 77,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
- .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "u_abs",
- .opcode = 201,
+ .name = "InterpolateAtOffset",
+ .opcode = 78,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
+ .{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "u_abs_diff",
- .opcode = 202,
+ .name = "NMin",
+ .opcode = 79,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "u_mul_hi",
- .opcode = 203,
+ .name = "NMax",
+ .opcode = 80,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
},
},
.{
- .name = "u_mad_hi",
- .opcode = 204,
+ .name = "NClamp",
+ .opcode = 81,
.operands = &.{
.{ .kind = .id_ref, .quantifier = .required },
.{ .kind = .id_ref, .quantifier = .required },
@@ -15680,3 +17042,72 @@ pub const InstructionSet = enum {
};
}
};
+pub const Extension = enum {
+ v1_0,
+ v1_1,
+ v1_2,
+ v1_3,
+ v1_4,
+ v1_5,
+ v1_6,
+ SPV_EXT_shader_tile_image,
+ SPV_EXT_float8,
+ SPV_KHR_fragment_shading_rate,
+ SPV_KHR_shader_ballot,
+ SPV_KHR_shader_draw_parameters,
+ SPV_KHR_workgroup_memory_explicit_layout,
+ SPV_KHR_subgroup_vote,
+ SPV_KHR_16bit_storage,
+ SPV_KHR_device_group,
+ SPV_KHR_multiview,
+ SPV_KHR_variable_pointers,
+ SPV_KHR_shader_atomic_counter_ops,
+ SPV_KHR_post_depth_coverage,
+ SPV_KHR_8bit_storage,
+ SPV_KHR_float_controls,
+ SPV_KHR_ray_query,
+ SPV_KHR_untyped_pointers,
+ SPV_KHR_ray_tracing,
+ SPV_EXT_shader_stencil_export,
+ SPV_EXT_shader_image_int64,
+ SPV_KHR_shader_clock,
+ SPV_KHR_quad_control,
+ SPV_KHR_bfloat16,
+ SPV_KHR_abort,
+ SPV_EXT_descriptor_heap,
+ SPV_KHR_constant_data,
+ SPV_KHR_poison_freeze,
+ SPV_EXT_shader_viewport_index_layer,
+ SPV_EXT_fragment_fully_covered,
+ SPV_EXT_mesh_shader,
+ SPV_KHR_fragment_shader_barycentric,
+ SPV_KHR_compute_shader_derivatives,
+ SPV_EXT_fragment_invocation_density,
+ SPV_EXT_shader_subgroup_partitioned,
+ SPV_EXT_descriptor_indexing,
+ SPV_KHR_ray_tracing_position_fetch,
+ SPV_KHR_vulkan_memory_model,
+ SPV_EXT_physical_storage_buffer,
+ SPV_KHR_physical_storage_buffer,
+ SPV_EXT_fragment_shader_interlock,
+ SPV_EXT_demote_to_helper_invocation,
+ SPV_EXT_opacity_micromap,
+ SPV_EXT_shader_invocation_reorder,
+ SPV_EXT_long_vector,
+ SPV_EXT_shader_64bit_indexing,
+ SPV_EXT_shader_atomic_float_min_max,
+ SPV_KHR_expect_assume,
+ SPV_KHR_integer_dot_product,
+ SPV_KHR_ray_cull_mask,
+ SPV_KHR_cooperative_matrix,
+ SPV_EXT_replicated_composites,
+ SPV_KHR_bit_instructions,
+ SPV_KHR_subgroup_rotate,
+ SPV_KHR_float_controls2,
+ SPV_KHR_fma,
+ SPV_EXT_shader_atomic_float_add,
+ SPV_EXT_optnone,
+ SPV_EXT_shader_atomic_float16_add,
+ SPV_EXT_arithmetic_fence,
+ SPV_KHR_uniform_group_instructions,
+};
diff --git a/src/link/SpirV.zig b/src/link/SpirV.zig
@@ -12,7 +12,6 @@ const Air = @import("../Air.zig");
const Type = @import("../Type.zig");
const codegen = @import("../codegen.zig");
const CodeGen = @import("../codegen/spirv/CodeGen.zig");
-const Module = @import("../codegen/spirv/Module.zig");
const BinaryModule = @import("SpirV/BinaryModule.zig");
const lower_invocation_globals = @import("SpirV/lower_invocation_globals.zig");
const dedup_types = @import("SpirV/dedup_types.zig");
@@ -147,6 +146,21 @@ pub fn loadInput(linker: *Linker, input: link.Input) !void {
const id_bound = all_words[3];
const instructions = try gpa.dupe(Word, all_words[5..]);
+ errdefer gpa.free(instructions);
+
+ // OpCapability instructions appear at the top of the module
+ // so we can stop scanning as soon as we hit anything else.
+ var it: BinaryModule.Instruction.Iterator = .init(instructions, 0);
+ const has_linkage = while (it.next()) |inst| switch (inst.opcode) {
+ .OpCapability => {
+ const cap: spec.Capability = @enumFromInt(inst.operands[0]);
+ if (cap == .linkage) break true;
+ },
+ else => break false,
+ } else false;
+ if (!has_linkage) {
+ return diags.fail("SPIR-V object '{f}' is missing the Linkage capability and cannot be linked", .{obj.path});
+ }
try linker.external_objects.append(gpa, .{
.instructions = instructions,
@@ -594,63 +608,54 @@ fn emitPreamble(
capabilities: *Section,
extensions: *Section,
memory_model: *Section,
-) error{OutOfMemory}!void {
- try capabilities.emit(gpa, .OpCapability, .{ .capability = .int8 });
- try capabilities.emit(gpa, .OpCapability, .{ .capability = .int16 });
+) !void {
+ var caps: std.EnumSet(spec.Capability) = .empty;
+ var exts: std.StringHashMapUnmanaged(void) = .empty;
+ defer exts.deinit(gpa);
switch (target.os.tag) {
- .opengl => {
- try capabilities.emit(gpa, .OpCapability, .{ .capability = .shader });
- try capabilities.emit(gpa, .OpCapability, .{ .capability = .matrix });
- },
- .vulkan => {
- try capabilities.emit(gpa, .OpCapability, .{ .capability = .shader });
- try capabilities.emit(gpa, .OpCapability, .{ .capability = .matrix });
- if (target.cpu.arch == .spirv64) {
- try extensions.emit(gpa, .OpExtension, .{ .name = "SPV_KHR_physical_storage_buffer" });
- try capabilities.emit(gpa, .OpCapability, .{ .capability = .physical_storage_buffer_addresses });
- }
- },
+ .opengl, .vulkan => caps.insert(.shader),
.opencl, .amdhsa => {
- try capabilities.emit(gpa, .OpCapability, .{ .capability = .kernel });
- try capabilities.emit(gpa, .OpCapability, .{ .capability = .addresses });
+ caps.insert(.kernel);
+ caps.insert(.addresses);
},
else => unreachable,
}
- if (target.cpu.arch == .spirv64)
- try capabilities.emit(gpa, .OpCapability, .{ .capability = .int64 });
- if (target.cpu.has(.spirv, .int64))
- try capabilities.emit(gpa, .OpCapability, .{ .capability = .int64 });
- if (target.cpu.has(.spirv, .float16)) {
- if (target.os.tag == .opencl) try extensions.emit(gpa, .OpExtension, .{ .name = "cl_khr_fp16" });
- try capabilities.emit(gpa, .OpCapability, .{ .capability = .float16 });
- }
- if (target.cpu.has(.spirv, .float64))
- try capabilities.emit(gpa, .OpCapability, .{ .capability = .float64 });
- if (target.cpu.has(.spirv, .generic_pointer))
- try capabilities.emit(gpa, .OpCapability, .{ .capability = .generic_pointer });
- if (target.cpu.has(.spirv, .vector16))
- try capabilities.emit(gpa, .OpCapability, .{ .capability = .vector16 });
- if (target.cpu.has(.spirv, .storage_push_constant16)) {
- try extensions.emit(gpa, .OpExtension, .{ .name = "SPV_KHR_16bit_storage" });
- try capabilities.emit(gpa, .OpCapability, .{ .capability = .storage_push_constant16 });
+ if (target.os.tag == .vulkan and target.cpu.arch == .spirv64) {
+ caps.insert(.physical_storage_buffer_addresses);
+ try exts.put(gpa, "SPV_KHR_physical_storage_buffer", {});
}
- if (target.cpu.has(.spirv, .arbitrary_precision_integers)) {
- try extensions.emit(gpa, .OpExtension, .{ .name = "SPV_INTEL_arbitrary_precision_integers" });
- try capabilities.emit(gpa, .OpCapability, .{ .capability = .arbitrary_precision_integers_intel });
+ if (has_linkage) caps.insert(.linkage);
+
+ inline for (@typeInfo(spec.Capability).@"enum".field_names) |cap_name| {
+ if (target.cpu.has(.spirv, @field(std.Target.spirv.Feature, cap_name)))
+ caps.insert(@field(spec.Capability, cap_name));
}
- if (target.cpu.has(.spirv, .variable_pointers)) {
- try extensions.emit(gpa, .OpExtension, .{ .name = "SPV_KHR_variable_pointers" });
- try capabilities.emit(gpa, .OpCapability, .{ .capability = .variable_pointers_storage_buffer });
- try capabilities.emit(gpa, .OpCapability, .{ .capability = .variable_pointers });
+ inline for (@typeInfo(spec.Extension).@"enum".field_names) |ext_name| {
+ switch (@field(spec.Extension, ext_name)) {
+ .v1_0, .v1_1, .v1_2, .v1_3, .v1_4, .v1_5, .v1_6 => {},
+ else => if (target.cpu.has(.spirv, @field(std.Target.spirv.Feature, ext_name)))
+ try exts.put(gpa, ext_name, {}),
+ }
}
- if (has_linkage)
- try capabilities.emit(gpa, .OpCapability, .{ .capability = .linkage });
+
+ var cit = caps.iterator();
+ while (cit.next()) |cap| try capabilities.emit(gpa, .OpCapability, .{ .capability = cap });
+ var eit = exts.iterator();
+ while (eit.next()) |e| try extensions.emit(gpa, .OpExtension, .{ .name = e.key_ptr.* });
const addressing_model: spec.AddressingModel = switch (target.os.tag) {
.opengl => .logical,
- .vulkan => if (target.cpu.arch == .spirv32) .logical else .physical_storage_buffer64,
- .opencl => if (target.cpu.arch == .spirv32) .physical32 else .physical64,
+ .vulkan => switch (target.cpu.arch) {
+ .spirv32 => .logical,
+ .spirv64 => .physical_storage_buffer64,
+ else => unreachable,
+ },
+ .opencl => switch (target.cpu.arch) {
+ .spirv32 => .physical32,
+ .spirv64 => .physical64,
+ else => unreachable,
+ },
.amdhsa => .physical64,
else => unreachable,
};
@@ -659,6 +664,7 @@ fn emitPreamble(
.memory_model = switch (target.os.tag) {
.opencl => .open_cl,
.vulkan, .opengl => .glsl450,
+ .amdhsa => unreachable, // TODO
else => unreachable,
},
});
diff --git a/test/standalone/build.zig b/test/standalone/build.zig
@@ -69,6 +69,13 @@ pub fn build(b: *std.Build) void {
});
tool.root_module.addImport("preprocessor", mingw_preprocessor_mod);
}
+ if (std.mem.endsWith(u8, tool_src_path, "update_cpu_features.zig")) {
+ const spirv_spec = b.createModule(.{
+ .root_source_file = b.path("../../src/codegen/spirv/spec.zig"),
+ .target = tools_target,
+ });
+ tool.root_module.addImport("spirv_spec", spirv_spec);
+ }
tools_tests_step.dependOn(&tool.step);
}
diff --git a/tools/gen_spirv_spec.zig b/tools/gen_spirv_spec.zig
@@ -13,6 +13,33 @@ const Operand = g.Operand;
const ExtendedStructSet = std.StringHashMap(void);
+const allowed_vendors = [_][]const u8{
+ "KHR",
+ "EXT",
+};
+
+fn isAllowedCapability(name: []const u8) bool {
+ // core capabilities (no vendor suffix) end in a lowercase letter or digit.
+ const last = name[name.len - 1];
+ if (std.ascii.isLower(last) or std.ascii.isDigit(last)) return true;
+ for (allowed_vendors) |vendor| {
+ if (std.mem.endsWith(u8, name, vendor)) return true;
+ }
+ return false;
+}
+
+fn isAllowedExtension(name: []const u8) bool {
+ const spv_prefix = "SPV_";
+ if (!std.mem.startsWith(u8, name, spv_prefix)) return false;
+ const tail = name[spv_prefix.len..];
+ for (allowed_vendors) |vendor| {
+ if (std.mem.startsWith(u8, tail, vendor) and
+ tail.len > vendor.len and tail[vendor.len] == '_')
+ return true;
+ }
+ return false;
+}
+
const Extension = struct {
name: []const u8,
opcode_name: []const u8,
@@ -325,6 +352,43 @@ fn render(
try renderOperandKinds(arena, writer, all_operand_kinds.values(), extended_structs);
try renderInstructionSet(writer, registry, extensions, all_operand_kinds);
+ try renderExtension(arena, writer, all_operand_kinds.values());
+}
+
+fn renderExtension(
+ arena: Allocator,
+ writer: *std.Io.Writer,
+ kinds: []const OperandKind,
+) !void {
+ try writer.writeAll(
+ \\pub const Extension = enum {
+ \\v1_0,
+ \\v1_1,
+ \\v1_2,
+ \\v1_3,
+ \\v1_4,
+ \\v1_5,
+ \\v1_6,
+ \\
+ );
+
+ var seen_extensions: std.StringHashMapUnmanaged(void) = .empty;
+ defer seen_extensions.deinit(arena);
+
+ for (kinds) |kind| {
+ if (std.mem.eql(u8, "Capability", kind.kind)) {
+ for (kind.enumerants.?) |enumerant| {
+ if (!isAllowedCapability(enumerant.enumerant)) continue;
+ for (enumerant.extensions) |ext| {
+ if (!isAllowedExtension(ext)) continue;
+ if (seen_extensions.contains(ext)) continue;
+ try seen_extensions.put(arena, ext, {});
+ try writer.print("{s},\n", .{ext});
+ }
+ }
+ }
+ }
+ try writer.writeAll("};\n");
}
fn renderInstructionSet(
@@ -687,10 +751,13 @@ fn renderValueEnum(
const enum_indices = enum_map.values();
+ const is_capability = std.mem.eql(u8, "Capability", enumeration.kind);
+
try writer.print("pub const {f} = enum(u32) {{\n", .{std.zig.fmtId(enumeration.kind)});
for (enum_indices) |i| {
const enumerant = enumerants[i];
+ if (is_capability and !isAllowedCapability(enumerant.enumerant)) continue;
// if (enumerant.value != .int) return error.InvalidRegistry;
switch (enumerant.value) {
@@ -702,6 +769,8 @@ fn renderValueEnum(
try writer.writeByte('\n');
for (aliases.items) |alias| {
+ if (is_capability and (!isAllowedCapability(enumerants[alias.enumerant].enumerant) or
+ !isAllowedCapability(enumerants[alias.alias].enumerant))) continue;
try writer.print("pub const {f} = {f}.{f};\n", .{
formatId(enumerants[alias.enumerant].enumerant),
std.zig.fmtId(enumeration.kind),
@@ -709,6 +778,41 @@ fn renderValueEnum(
});
}
+ if (is_capability) {
+ try writer.writeAll(
+ \\
+ \\pub fn dependencies(self: Capability) []const Extension {
+ \\ return switch (self) {
+ );
+
+ for (enum_indices) |i| {
+ const enumerant = enumerants[i];
+ if (!isAllowedCapability(enumerant.enumerant)) continue;
+
+ // Convert version to enum.
+ // None is for reserved
+ // Example: "None" -> .v1_0
+ // Example: "1.5" -> .v1_5
+ const enum_version = enumerant.version.?;
+ const version: [4]u8 = .{ 'v', '1', '_', if (enum_version[0] == 'N') '0' else enum_version[2] };
+
+ try writer.print("\n.{f} => &.{{.{s},", .{ formatId(enumerant.enumerant), version });
+ for (enumerant.extensions) |extension| {
+ if (!isAllowedExtension(extension)) continue;
+ try writer.print(".{s},", .{extension});
+ }
+ try writer.writeAll("},");
+ }
+
+ try writer.writeAll(
+ \\};
+ \\}
+ \\};
+ \\
+ );
+ return;
+ }
+
if (!extended_structs.contains(enumeration.kind)) {
try writer.writeAll("};\n");
return;
diff --git a/tools/update_cpu_features.zig b/tools/update_cpu_features.zig
@@ -1,4 +1,5 @@
const builtin = @import("builtin");
+const spirv_spec = @import("spirv_spec");
const std = @import("std");
const Io = std.Io;
@@ -49,6 +50,43 @@ const ArchTarget = struct {
branch_quota: ?usize = null,
};
+const spirv_extra_features = blk: {
+ const caps_info = @typeInfo(spirv_spec.Capability).@"enum";
+ const exts_info = @typeInfo(spirv_spec.Extension).@"enum";
+ const caps_len = caps_info.field_names.len;
+ const exts_len = exts_info.field_names.len;
+
+ var features: [caps_len + exts_len]Feature = undefined;
+ for (
+ caps_info.field_names,
+ caps_info.field_values,
+ features[0..caps_len],
+ ) |name, value, *feature| {
+ feature.* = .{
+ .zig_name = name,
+ .desc = "Enable " ++ name ++ " capability",
+ .deps = &struct {
+ const extensions = spirv_spec.Capability.dependencies(@enumFromInt(value));
+ const deps: [extensions.len][]const u8 = inner: {
+ var out: [extensions.len][]const u8 = undefined;
+ for (extensions, 0..) |ext, i| out[i] = @tagName(ext);
+ break :inner out;
+ };
+ }.deps,
+ };
+ }
+
+ for (exts_info.field_names, features[caps_len..]) |name, *feature| {
+ feature.* = .{
+ .zig_name = name,
+ .desc = "Enable " ++ name ++ " extension",
+ .deps = &.{},
+ };
+ }
+
+ break :blk features;
+};
+
const targets = [_]ArchTarget{
.{
.zig_name = "aarch64",
@@ -1443,83 +1481,7 @@ const targets = [_]ArchTarget{
.td_name = "SPIRV",
},
.branch_quota = 2000,
- .extra_features = &.{
- .{
- .zig_name = "v1_0",
- .desc = "Enable version 1.0",
- .deps = &.{},
- },
- .{
- .zig_name = "v1_1",
- .desc = "Enable version 1.1",
- .deps = &.{"v1_0"},
- },
- .{
- .zig_name = "v1_2",
- .desc = "Enable version 1.2",
- .deps = &.{"v1_1"},
- },
- .{
- .zig_name = "v1_3",
- .desc = "Enable version 1.3",
- .deps = &.{"v1_2"},
- },
- .{
- .zig_name = "v1_4",
- .desc = "Enable version 1.4",
- .deps = &.{"v1_3"},
- },
- .{
- .zig_name = "v1_5",
- .desc = "Enable version 1.5",
- .deps = &.{"v1_4"},
- },
- .{
- .zig_name = "v1_6",
- .desc = "Enable version 1.6",
- .deps = &.{"v1_5"},
- },
- .{
- .zig_name = "int64",
- .desc = "Enable Int64 capability",
- .deps = &.{"v1_0"},
- },
- .{
- .zig_name = "float16",
- .desc = "Enable Float16 capability",
- .deps = &.{"v1_0"},
- },
- .{
- .zig_name = "float64",
- .desc = "Enable Float64 capability",
- .deps = &.{"v1_0"},
- },
- .{
- .zig_name = "storage_push_constant16",
- .desc = "Enable SPV_KHR_16bit_storage extension and the StoragePushConstant16 capability",
- .deps = &.{"v1_3"},
- },
- .{
- .zig_name = "arbitrary_precision_integers",
- .desc = "Enable SPV_INTEL_arbitrary_precision_integers extension and the ArbitraryPrecisionIntegersINTEL capability",
- .deps = &.{"v1_5"},
- },
- .{
- .zig_name = "generic_pointer",
- .desc = "Enable GenericPointer capability",
- .deps = &.{"v1_0"},
- },
- .{
- .zig_name = "vector16",
- .desc = "Enable Vector16 capability",
- .deps = &.{"v1_0"},
- },
- .{
- .zig_name = "variable_pointers",
- .desc = "Enable SPV_KHR_variable_pointers extension and the VariablePointers capability",
- .deps = &.{"v1_0"},
- },
- },
+ .extra_features = &spirv_extra_features,
.extra_cpus = &.{
.{
.llvm_name = null,