From c81c22cf4cdb79c0f2a20040fd8e6777fe335a52 Mon Sep 17 00:00:00 2001 From: Ali Cheraghi Date: Sat, 12 Jul 2025 16:05:45 +0330 Subject: [PATCH] spirv: snake-case the spec --- src/codegen/spirv.zig | 550 +- src/codegen/spirv/Assembler.zig | 47 +- src/codegen/spirv/Module.zig | 138 +- src/codegen/spirv/Section.zig | 10 +- src/codegen/spirv/extinst.zig.grammar.json | 20 +- src/codegen/spirv/spec.zig | 21971 ++++++++++-------- src/link/SpirV.zig | 10 +- src/link/SpirV/BinaryModule.zig | 34 +- src/link/SpirV/deduplicate.zig | 22 +- src/link/SpirV/lower_invocation_globals.zig | 4 +- src/link/SpirV/prune_unused.zig | 20 +- tools/gen_spirv_spec.zig | 300 +- tools/spirv/grammar.zig | 4 + 13 files changed, 12495 insertions(+), 10635 deletions(-) diff --git a/src/codegen/spirv.zig b/src/codegen/spirv.zig index f263e567e8dc..255e957c8b08 100644 --- a/src/codegen/spirv.zig +++ b/src/codegen/spirv.zig @@ -15,9 +15,7 @@ const InternPool = @import("../InternPool.zig"); const spec = @import("spirv/spec.zig"); const Opcode = spec.Opcode; const Word = spec.Word; -const IdRef = spec.IdRef; -const IdResult = spec.IdResult; -const IdResultType = spec.IdResultType; +const Id = spec.Id; const StorageClass = spec.StorageClass; const SpvModule = @import("spirv/Module.zig"); @@ -26,7 +24,7 @@ const IdRange = SpvModule.IdRange; const SpvSection = @import("spirv/Section.zig"); const SpvAssembler = @import("spirv/Assembler.zig"); -const InstMap = std.AutoHashMapUnmanaged(Air.Inst.Index, IdRef); +const InstMap = std.AutoHashMapUnmanaged(Air.Inst.Index, Id); pub fn legalizeFeatures(_: *const std.Target) *const Air.Legalize.Features { return comptime &.initMany(&.{ @@ -42,10 +40,10 @@ pub fn legalizeFeatures(_: *const std.Target) *const Air.Legalize.Features { pub const zig_call_abi_ver = 3; pub const big_int_bits = 32; -const InternMap = std.AutoHashMapUnmanaged(struct { InternPool.Index, NavGen.Repr }, IdResult); +const InternMap = std.AutoHashMapUnmanaged(struct { InternPool.Index, NavGen.Repr }, Id); const PtrTypeMap = std.AutoHashMapUnmanaged( struct { InternPool.Index, StorageClass, NavGen.Repr }, - struct { ty_id: IdRef, fwd_emitted: bool }, + struct { ty_id: Id, fwd_emitted: bool }, ); const ControlFlow = union(enum) { @@ -55,10 +53,10 @@ const ControlFlow = union(enum) { /// inside the block must reach the outside. const Block = union(enum) { const Incoming = struct { - src_label: IdRef, + src_label: Id, /// Instruction that returns an u32 value of the /// `Air.Inst.Index` that control flow should jump to. - next_block: IdRef, + next_block: Id, }; const SelectionMerge = struct { @@ -69,7 +67,7 @@ const ControlFlow = union(enum) { /// The label id of the cond_br's merge block. /// For the top-most element in the stack, this /// value is undefined. - merge_block: IdRef, + merge_block: Id, }; /// For a `selection` type block, we cannot use early exits, and we @@ -100,7 +98,7 @@ const ControlFlow = union(enum) { /// of conditions that jump to the loop exit. merges: std.ArrayListUnmanaged(Incoming) = .empty, /// The label id of the loop's merge block. - merge_block: IdRef, + merge_block: Id, }, fn deinit(self: *Structured.Block, a: Allocator) void { @@ -116,17 +114,17 @@ const ControlFlow = union(enum) { block_stack: std.ArrayListUnmanaged(*Structured.Block) = .empty, /// Maps `block` inst indices to the variable that the block's result /// value must be written to. - block_results: std.AutoHashMapUnmanaged(Air.Inst.Index, IdRef) = .empty, + block_results: std.AutoHashMapUnmanaged(Air.Inst.Index, Id) = .empty, }; const Unstructured = struct { const Incoming = struct { - src_label: IdRef, - break_value_id: IdRef, + src_label: Id, + break_value_id: Id, }; const Block = struct { - label: ?IdRef = null, + label: ?Id = null, incoming_blocks: std.ArrayListUnmanaged(Incoming) = .empty, }; @@ -318,7 +316,7 @@ const NavGen = struct { /// An array of function argument result-ids. Each index corresponds with the /// function argument of the same index. - args: std.ArrayListUnmanaged(IdRef) = .empty, + args: std.ArrayListUnmanaged(Id) = .empty, /// A counter to keep track of how many `arg` instructions we've seen yet. next_arg_index: u32 = 0, @@ -337,7 +335,7 @@ const NavGen = struct { control_flow: ControlFlow, /// The label of the SPIR-V block we are currently generating. - current_block_label: IdRef, + current_block_label: Id, /// The code (prologue and body) for the function we are currently generating code for. func: SpvModule.Fn = .{}, @@ -436,17 +434,17 @@ const NavGen = struct { /// This imports the "default" extended instruction set for the target /// For OpenCL, OpenCL.std.100. For Vulkan and OpenGL, GLSL.std.450. - fn importExtendedSet(self: *NavGen) !IdResult { + fn importExtendedSet(self: *NavGen) !Id { const target = self.spv.target; return switch (target.os.tag) { - .opencl, .amdhsa => try self.spv.importInstructionSet(.@"OpenCL.std"), - .vulkan, .opengl => try self.spv.importInstructionSet(.@"GLSL.std.450"), + .opencl, .amdhsa => try self.spv.importInstructionSet(.open_cl_std), + .vulkan, .opengl => try self.spv.importInstructionSet(.glsl_std_450), else => unreachable, }; } /// Fetch the result-id for a previously generated instruction or constant. - fn resolve(self: *NavGen, inst: Air.Inst.Ref) !IdRef { + fn resolve(self: *NavGen, inst: Air.Inst.Ref) !Id { const pt = self.pt; const zcu = pt.zcu; if (try self.air.value(inst, pt)) |val| { @@ -468,7 +466,7 @@ const NavGen = struct { return self.inst_results.get(index).?; // Assertion means instruction does not dominate usage. } - fn resolveUav(self: *NavGen, val: InternPool.Index) !IdRef { + fn resolveUav(self: *NavGen, val: InternPool.Index) !Id { // TODO: This cannot be a function at this point, but it should probably be handled anyway. const zcu = self.pt.zcu; @@ -476,16 +474,16 @@ const NavGen = struct { const decl_ptr_ty_id = try self.ptrType(ty, self.spvStorageClass(.generic), .indirect); const spv_decl_index = blk: { - const entry = try self.object.uav_link.getOrPut(self.object.gpa, .{ val, .Function }); + const entry = try self.object.uav_link.getOrPut(self.object.gpa, .{ val, .function }); if (entry.found_existing) { - try self.addFunctionDep(entry.value_ptr.*, .Function); + try self.addFunctionDep(entry.value_ptr.*, .function); const result_id = self.spv.declPtr(entry.value_ptr.*).result_id; return try self.castToGeneric(decl_ptr_ty_id, result_id); } const spv_decl_index = try self.spv.allocDecl(.invocation_global); - try self.addFunctionDep(spv_decl_index, .Function); + try self.addFunctionDep(spv_decl_index, .function); entry.value_ptr.* = spv_decl_index; break :blk spv_decl_index; }; @@ -536,7 +534,7 @@ const NavGen = struct { try self.spv.debugNameFmt(initializer_id, "initializer of __anon_{d}", .{@intFromEnum(val)}); - const fn_decl_ptr_ty_id = try self.ptrType(ty, .Function, .indirect); + const fn_decl_ptr_ty_id = try self.ptrType(ty, .function, .indirect); try self.spv.sections.types_globals_constants.emit(self.spv.gpa, .OpExtInst, .{ .id_result_type = fn_decl_ptr_ty_id, .id_result = result_id, @@ -552,7 +550,7 @@ const NavGen = struct { fn addFunctionDep(self: *NavGen, decl_index: SpvModule.Decl.Index, storage_class: StorageClass) !void { if (self.spv.version.minor < 4) { // Before version 1.4, the interface’s storage classes are limited to the Input and Output - if (storage_class == .Input or storage_class == .Output) { + if (storage_class == .input or storage_class == .output) { try self.func.decl_deps.put(self.spv.gpa, decl_index, {}); } } else { @@ -560,7 +558,7 @@ const NavGen = struct { } } - fn castToGeneric(self: *NavGen, type_id: IdRef, ptr_id: IdRef) !IdRef { + fn castToGeneric(self: *NavGen, type_id: Id, ptr_id: Id) !Id { if (self.spv.hasFeature(.generic_pointer)) { const result_id = self.spv.allocId(); try self.func.body.emit(self.spv.gpa, .OpPtrCastToGeneric, .{ @@ -578,7 +576,7 @@ const NavGen = struct { /// block we are currently generating. /// Note that there is no such thing as nested blocks like in ZIR or AIR, so we don't need to /// keep track of the previous block. - fn beginSpvBlock(self: *NavGen, label: IdResult) !void { + fn beginSpvBlock(self: *NavGen, label: Id) !void { try self.func.body.emit(self.spv.gpa, .OpLabel, .{ .id_result = label }); self.current_block_label = label; } @@ -705,7 +703,7 @@ const NavGen = struct { } /// Emits a bool constant in a particular representation. - fn constBool(self: *NavGen, value: bool, repr: Repr) !IdRef { + fn constBool(self: *NavGen, value: bool, repr: Repr) !Id { return switch (repr) { .indirect => self.constInt(Type.u1, @intFromBool(value)), .direct => self.spv.constBool(value), @@ -715,7 +713,7 @@ const NavGen = struct { /// Emits an integer constant. /// This function, unlike SpvModule.constInt, takes care to bitcast /// the value to an unsigned int first for Kernels. - fn constInt(self: *NavGen, ty: Type, value: anytype) !IdRef { + fn constInt(self: *NavGen, ty: Type, value: anytype) !Id { const zcu = self.pt.zcu; const scalar_ty = ty.scalarType(zcu); const int_info = scalar_ty.intInfo(zcu); @@ -773,7 +771,7 @@ const NavGen = struct { return self.constructCompositeSplat(ty, result_id); } - pub fn constructComposite(self: *NavGen, result_ty_id: IdRef, constituents: []const IdRef) !IdRef { + pub fn constructComposite(self: *NavGen, result_ty_id: Id, constituents: []const Id) !Id { const result_id = self.spv.allocId(); try self.func.body.emit(self.gpa, .OpCompositeConstruct, .{ .id_result_type = result_ty_id, @@ -785,11 +783,11 @@ const NavGen = struct { /// Construct a composite at runtime with all lanes set to the same value. /// ty must be an aggregate type. - fn constructCompositeSplat(self: *NavGen, ty: Type, constituent: IdRef) !IdRef { + fn constructCompositeSplat(self: *NavGen, ty: Type, constituent: Id) !Id { const zcu = self.pt.zcu; const n: usize = @intCast(ty.arrayLen(zcu)); - const constituents = try self.gpa.alloc(IdRef, n); + const constituents = try self.gpa.alloc(Id, n); defer self.gpa.free(constituents); @memset(constituents, constituent); @@ -803,7 +801,7 @@ const NavGen = struct { /// is done by emitting a sequence of instructions that initialize the value. // /// This function should only be called during function code generation. - fn constant(self: *NavGen, ty: Type, val: Value, repr: Repr) !IdRef { + fn constant(self: *NavGen, ty: Type, val: Value, repr: Repr) !Id { // Note: Using intern_map can only be used with constants that DO NOT generate any runtime code!! // Ideally that should be all constants in the future, or it should be cleaned up somehow. For // now, only use the intern_map on case-by-case basis by breaking to :cache. @@ -909,7 +907,7 @@ const NavGen = struct { .payload => |payload| payload, }); - var constituents: [2]IdRef = undefined; + var constituents: [2]Id = undefined; var types: [2]Type = undefined; if (eu_layout.error_first) { constituents[0] = try self.constant(err_ty, err_val, .indirect); @@ -967,7 +965,7 @@ const NavGen = struct { inline .array_type, .vector_type => |array_type, tag| { const elem_ty = Type.fromInterned(array_type.child); - const constituents = try self.gpa.alloc(IdRef, @intCast(ty.arrayLenIncludingSentinel(zcu))); + const constituents = try self.gpa.alloc(Id, @intCast(ty.arrayLenIncludingSentinel(zcu))); defer self.gpa.free(constituents); const child_repr: Repr = switch (tag) { @@ -1015,7 +1013,7 @@ const NavGen = struct { var types = std.ArrayList(Type).init(self.gpa); defer types.deinit(); - var constituents = std.ArrayList(IdRef).init(self.gpa); + var constituents = std.ArrayList(Id).init(self.gpa); defer constituents.deinit(); var it = struct_type.iterateRuntimeOrder(ip); @@ -1064,7 +1062,7 @@ const NavGen = struct { return cacheable_id; } - fn constantPtr(self: *NavGen, ptr_val: Value) Error!IdRef { + fn constantPtr(self: *NavGen, ptr_val: Value) Error!Id { const pt = self.pt; if (ptr_val.isUndef(pt.zcu)) { @@ -1080,7 +1078,7 @@ const NavGen = struct { return self.derivePtr(derivation); } - fn derivePtr(self: *NavGen, derivation: Value.PointerDeriveStep) Error!IdRef { + fn derivePtr(self: *NavGen, derivation: Value.PointerDeriveStep) Error!Id { const pt = self.pt; const zcu = pt.zcu; switch (derivation) { @@ -1159,7 +1157,7 @@ const NavGen = struct { self: *NavGen, ty: Type, uav: InternPool.Key.Ptr.BaseAddr.Uav, - ) !IdRef { + ) !Id { // TODO: Merge this function with constantDeclRef. const pt = self.pt; @@ -1182,7 +1180,7 @@ const NavGen = struct { // Uav refs are always generic. assert(ty.ptrAddressSpace(zcu) == .generic); - const decl_ptr_ty_id = try self.ptrType(uav_ty, .Generic, .indirect); + const decl_ptr_ty_id = try self.ptrType(uav_ty, .generic, .indirect); const ptr_id = try self.resolveUav(uav.val); if (decl_ptr_ty_id != ty_id) { @@ -1199,7 +1197,7 @@ const NavGen = struct { } } - fn constantNavRef(self: *NavGen, ty: Type, nav_index: InternPool.Nav.Index) !IdRef { + fn constantNavRef(self: *NavGen, ty: Type, nav_index: InternPool.Nav.Index) !Id { const pt = self.pt; const zcu = pt.zcu; const ip = &zcu.intern_pool; @@ -1240,7 +1238,7 @@ const NavGen = struct { const decl_ptr_ty_id = try self.ptrType(nav_ty, storage_class, .indirect); const ptr_id = switch (storage_class) { - .Generic => try self.castToGeneric(decl_ptr_ty_id, decl_id), + .generic => try self.castToGeneric(decl_ptr_ty_id, decl_id), else => decl_id, }; @@ -1272,7 +1270,7 @@ const NavGen = struct { /// The integer type that is returned by this function is the type that is used to perform /// actual operations (as well as store) a Zig type of a particular number of bits. To create /// a type with an exact size, use SpvModule.intType. - fn intType(self: *NavGen, signedness: std.builtin.Signedness, bits: u16) !IdRef { + fn intType(self: *NavGen, signedness: std.builtin.Signedness, bits: u16) !Id { const backing_bits, const big_int = self.backingIntBits(bits); if (big_int) { if (backing_bits > 64) { @@ -1289,12 +1287,12 @@ const NavGen = struct { }; } - fn arrayType(self: *NavGen, len: u32, child_ty: IdRef) !IdRef { + fn arrayType(self: *NavGen, len: u32, child_ty: Id) !Id { const len_id = try self.constInt(Type.u32, len); return self.spv.arrayType(len_id, child_ty); } - fn ptrType(self: *NavGen, child_ty: Type, storage_class: StorageClass, child_repr: Repr) !IdRef { + fn ptrType(self: *NavGen, child_ty: Type, storage_class: StorageClass, child_repr: Repr) !Id { const zcu = self.pt.zcu; const ip = &zcu.intern_pool; const key = .{ child_ty.toIntern(), storage_class, child_repr }; @@ -1323,7 +1321,7 @@ const NavGen = struct { .vulkan, .opengl => { if (child_ty.zigTypeTag(zcu) == .@"struct") { switch (storage_class) { - .Uniform, .PushConstant => try self.spv.decorate(child_ty_id, .Block), + .uniform, .push_constant => try self.spv.decorate(child_ty_id, .block), else => {}, } } @@ -1331,7 +1329,7 @@ const NavGen = struct { switch (ip.indexToKey(child_ty.toIntern())) { .func_type, .opaque_type => {}, else => { - try self.spv.decorate(result_id, .{ .ArrayStride = .{ .array_stride = @intCast(child_ty.abiSize(zcu)) } }); + try self.spv.decorate(result_id, .{ .array_stride = .{ .array_stride = @intCast(child_ty.abiSize(zcu)) } }); }, } }, @@ -1349,9 +1347,9 @@ const NavGen = struct { return result_id; } - fn functionType(self: *NavGen, return_ty: Type, param_types: []const Type) !IdRef { + fn functionType(self: *NavGen, return_ty: Type, param_types: []const Type) !Id { const return_ty_id = try self.resolveFnReturnType(return_ty); - const param_ids = try self.gpa.alloc(IdRef, param_types.len); + const param_ids = try self.gpa.alloc(Id, param_types.len); defer self.gpa.free(param_ids); for (param_types, param_ids) |param_ty, *param_id| { @@ -1379,7 +1377,7 @@ const NavGen = struct { /// padding: [padding_size]u8, /// } /// If any of the fields' size is 0, it will be omitted. - fn resolveUnionType(self: *NavGen, ty: Type) !IdRef { + fn resolveUnionType(self: *NavGen, ty: Type) !Id { const zcu = self.pt.zcu; const ip = &zcu.intern_pool; const union_obj = zcu.typeToUnion(ty).?; @@ -1394,7 +1392,7 @@ const NavGen = struct { return try self.resolveType(Type.fromInterned(union_obj.enum_tag_ty), .indirect); } - var member_types: [4]IdRef = undefined; + var member_types: [4]Id = undefined; var member_names: [4][]const u8 = undefined; const u8_ty_id = try self.resolveType(Type.u8, .direct); @@ -1433,7 +1431,7 @@ const NavGen = struct { return result_id; } - fn resolveFnReturnType(self: *NavGen, ret_ty: Type) !IdRef { + fn resolveFnReturnType(self: *NavGen, ret_ty: Type) !Id { const zcu = self.pt.zcu; if (!ret_ty.hasRuntimeBitsIgnoreComptime(zcu)) { // If the return type is an error set or an error union, then we make this @@ -1450,7 +1448,7 @@ const NavGen = struct { } /// Turn a Zig type into a SPIR-V Type, and return a reference to it. - fn resolveType(self: *NavGen, ty: Type, repr: Repr) Error!IdRef { + fn resolveType(self: *NavGen, ty: Type, repr: Repr) Error!Id { if (self.intern_map.get(.{ ty.toIntern(), repr })) |id| { return id; } @@ -1460,7 +1458,7 @@ const NavGen = struct { return id; } - fn resolveTypeInner(self: *NavGen, ty: Type, repr: Repr) Error!IdRef { + fn resolveTypeInner(self: *NavGen, ty: Type, repr: Repr) Error!Id { const pt = self.pt; const zcu = pt.zcu; const ip = &zcu.intern_pool; @@ -1564,7 +1562,7 @@ const NavGen = struct { const result_id = try self.arrayType(total_len, elem_ty_id); switch (self.spv.target.os.tag) { .vulkan, .opengl => { - try self.spv.decorate(result_id, .{ .ArrayStride = .{ + try self.spv.decorate(result_id, .{ .array_stride = .{ .array_stride = @intCast(elem_ty.abiSize(zcu)), } }); }, @@ -1604,7 +1602,7 @@ const NavGen = struct { assert(!fn_info.is_var_args); // Note: Logic is different from functionType(). - const param_ty_ids = try self.gpa.alloc(IdRef, fn_info.param_types.len); + const param_ty_ids = try self.gpa.alloc(Id, fn_info.param_types.len); defer self.gpa.free(param_ty_ids); var param_index: usize = 0; for (fn_info.param_types.get(ip)) |param_ty_index| { @@ -1655,7 +1653,7 @@ const NavGen = struct { .@"struct" => { const struct_type = switch (ip.indexToKey(ty.toIntern())) { .tuple_type => |tuple| { - const member_types = try self.gpa.alloc(IdRef, tuple.values.len); + const member_types = try self.gpa.alloc(Id, tuple.values.len); defer self.gpa.free(member_types); var member_index: usize = 0; @@ -1683,7 +1681,7 @@ const NavGen = struct { return try self.resolveType(Type.fromInterned(struct_type.backingIntTypeUnordered(ip)), .direct); } - var member_types = std.ArrayList(IdRef).init(self.gpa); + var member_types = std.ArrayList(Id).init(self.gpa); defer member_types.deinit(); var member_names = std.ArrayList([]const u8).init(self.gpa); @@ -1701,7 +1699,7 @@ const NavGen = struct { switch (self.spv.target.os.tag) { .vulkan, .opengl => { - try self.spv.decorateMember(result_id, index, .{ .Offset = .{ + try self.spv.decorateMember(result_id, index, .{ .offset = .{ .byte_offset = @intCast(ty.structFieldOffset(field_index, zcu)), } }); }, @@ -1765,7 +1763,7 @@ const NavGen = struct { const payload_ty_id = try self.resolveType(payload_ty, .indirect); - var member_types: [2]IdRef = undefined; + var member_types: [2]Id = undefined; var member_names: [2][]const u8 = undefined; if (eu_layout.error_first) { // Put the error first @@ -1809,30 +1807,30 @@ const NavGen = struct { fn spvStorageClass(self: *NavGen, as: std.builtin.AddressSpace) StorageClass { return switch (as) { - .generic => if (self.spv.hasFeature(.generic_pointer)) .Generic else .Function, + .generic => if (self.spv.hasFeature(.generic_pointer)) .generic else .function, .global => switch (self.spv.target.os.tag) { - .opencl, .amdhsa => .CrossWorkgroup, - else => .StorageBuffer, + .opencl, .amdhsa => .cross_workgroup, + else => .storage_buffer, }, .push_constant => { - return .PushConstant; + return .push_constant; }, .output => { - return .Output; + return .output; }, .uniform => { - return .Uniform; + return .uniform; }, .storage_buffer => { - return .StorageBuffer; + return .storage_buffer; }, .physical_storage_buffer => { - return .PhysicalStorageBuffer; + return .physical_storage_buffer; }, - .constant => .UniformConstant, - .shared => .Workgroup, - .local => .Function, - .input => .Input, + .constant => .uniform_constant, + .shared => .workgroup, + .local => .function, + .input => .input, .gs, .fs, .ss, @@ -1980,22 +1978,22 @@ const NavGen = struct { value: Temporary.Value, const Value = union(enum) { - singleton: IdResult, + singleton: Id, exploded_vector: IdRange, }; - fn init(ty: Type, singleton: IdResult) Temporary { + fn init(ty: Type, singleton: Id) Temporary { return .{ .ty = ty, .value = .{ .singleton = singleton } }; } - fn materialize(self: Temporary, ng: *NavGen) !IdResult { + fn materialize(self: Temporary, ng: *NavGen) !Id { const zcu = ng.pt.zcu; switch (self.value) { .singleton => |id| return id, .exploded_vector => |range| { assert(self.ty.isVector(zcu)); assert(self.ty.vectorLen(zcu) == range.len); - const constituents = try ng.gpa.alloc(IdRef, range.len); + const constituents = try ng.gpa.alloc(Id, range.len); defer ng.gpa.free(constituents); for (constituents, 0..range.len) |*id, i| { id.* = range.at(i); @@ -2170,16 +2168,16 @@ const NavGen = struct { /// on the operation and input value. const Value = union(enum) { /// A single scalar value that is used by a scalar operation. - scalar: IdResult, + scalar: Id, /// A single scalar that is broadcasted in an unrolled operation. - scalar_broadcast: IdResult, + scalar_broadcast: Id, /// A vector represented by a consecutive list of IDs that is used in an unrolled operation. vector_exploded: IdRange, }; /// Query the value at a particular index of the operation. Note that /// the index is *not* the component/lane, but the index of the *operation*. - fn at(self: PreparedOperand, i: usize) IdResult { + fn at(self: PreparedOperand, i: usize) Id { switch (self.value) { .scalar => |id| { assert(i == 0); @@ -2253,9 +2251,9 @@ const NavGen = struct { for (0..ops) |i| { try self.func.body.emitRaw(self.spv.gpa, opcode, 3); - self.func.body.writeOperand(spec.IdResultType, op_result_ty_id); - self.func.body.writeOperand(IdResult, results.at(i)); - self.func.body.writeOperand(IdResult, op_src.at(i)); + self.func.body.writeOperand(spec.Id, op_result_ty_id); + self.func.body.writeOperand(Id, results.at(i)); + self.func.body.writeOperand(Id, op_src.at(i)); } return v.finalize(result_ty, results); @@ -2388,10 +2386,10 @@ const NavGen = struct { for (0..ops) |i| { try self.func.body.emitRaw(self.spv.gpa, opcode, 4); - self.func.body.writeOperand(spec.IdResultType, op_result_ty_id); - self.func.body.writeOperand(IdResult, results.at(i)); - self.func.body.writeOperand(IdResult, op_lhs.at(i)); - self.func.body.writeOperand(IdResult, op_rhs.at(i)); + self.func.body.writeOperand(spec.Id, op_result_ty_id); + self.func.body.writeOperand(Id, results.at(i)); + self.func.body.writeOperand(Id, op_lhs.at(i)); + self.func.body.writeOperand(Id, op_rhs.at(i)); } return v.finalize(result_ty, results); @@ -2442,9 +2440,9 @@ const NavGen = struct { }) |opcode| { for (0..ops) |i| { try self.func.body.emitRaw(self.spv.gpa, opcode, 3); - self.func.body.writeOperand(spec.IdResultType, op_result_ty_id); - self.func.body.writeOperand(IdResult, results.at(i)); - self.func.body.writeOperand(IdResult, op_operand.at(i)); + self.func.body.writeOperand(spec.Id, op_result_ty_id); + self.func.body.writeOperand(Id, results.at(i)); + self.func.body.writeOperand(Id, op_operand.at(i)); } } else { const set = try self.importExtendedSet(); @@ -2583,10 +2581,10 @@ const NavGen = struct { }) |opcode| { for (0..ops) |i| { try self.func.body.emitRaw(self.spv.gpa, opcode, 4); - self.func.body.writeOperand(spec.IdResultType, op_result_ty_id); - self.func.body.writeOperand(IdResult, results.at(i)); - self.func.body.writeOperand(IdResult, op_lhs.at(i)); - self.func.body.writeOperand(IdResult, op_rhs.at(i)); + self.func.body.writeOperand(spec.Id, op_result_ty_id); + self.func.body.writeOperand(Id, results.at(i)); + self.func.body.writeOperand(Id, op_lhs.at(i)); + self.func.body.writeOperand(Id, op_rhs.at(i)); } } else { const set = try self.importExtendedSet(); @@ -2702,10 +2700,10 @@ const NavGen = struct { const op_result = self.spv.allocId(); try self.func.body.emitRaw(self.spv.gpa, opcode, 4); - self.func.body.writeOperand(spec.IdResultType, op_result_ty_id); - self.func.body.writeOperand(IdResult, op_result); - self.func.body.writeOperand(IdResult, lhs_op.at(i)); - self.func.body.writeOperand(IdResult, rhs_op.at(i)); + self.func.body.writeOperand(spec.Id, op_result_ty_id); + self.func.body.writeOperand(Id, op_result); + self.func.body.writeOperand(Id, lhs_op.at(i)); + self.func.body.writeOperand(Id, rhs_op.at(i)); // The above operation returns a struct. We might want to expand // Temporary to deal with the fact that these are structs eventually, @@ -2804,8 +2802,8 @@ const NavGen = struct { const buffer_struct_ty_id = self.spv.allocId(); try self.spv.structType(buffer_struct_ty_id, &.{anyerror_ty_id}, &.{"error_out"}); - try self.spv.decorate(buffer_struct_ty_id, .Block); - try self.spv.decorateMember(buffer_struct_ty_id, 0, .{ .Offset = .{ .byte_offset = 0 } }); + try self.spv.decorate(buffer_struct_ty_id, .block); + try self.spv.decorateMember(buffer_struct_ty_id, 0, .{ .offset = .{ .byte_offset = 0 } }); const ptr_buffer_struct_ty_id = self.spv.allocId(); try self.spv.sections.types_globals_constants.emit(self.spv.gpa, .OpTypePointer, .{ @@ -2820,15 +2818,15 @@ const NavGen = struct { .id_result = buffer_struct_id, .storage_class = self.spvStorageClass(.global), }); - try self.spv.decorate(buffer_struct_id, .{ .DescriptorSet = .{ .descriptor_set = 0 } }); - try self.spv.decorate(buffer_struct_id, .{ .Binding = .{ .binding_point = 0 } }); + try self.spv.decorate(buffer_struct_id, .{ .descriptor_set = .{ .descriptor_set = 0 } }); + try self.spv.decorate(buffer_struct_id, .{ .binding = .{ .binding_point = 0 } }); self.object.error_buffer = spv_err_decl_index; } try self.spv.sections.execution_modes.emit(self.spv.gpa, .OpExecutionMode, .{ .entry_point = kernel_id, - .mode = .{ .LocalSize = .{ + .mode = .{ .local_size = .{ .x_size = 1, .y_size = 1, .z_size = 1, @@ -2873,7 +2871,7 @@ const NavGen = struct { .pointer = p_error_id, .object = error_id, .memory_access = .{ - .Aligned = .{ .literal_integer = @intCast(Type.abiAlignment(.anyerror, zcu).toByteUnits().?) }, + .aligned = .{ .literal_integer = @intCast(Type.abiAlignment(.anyerror, zcu).toByteUnits().?) }, }, }); try section.emit(self.spv.gpa, .OpReturn, {}); @@ -2885,8 +2883,8 @@ const NavGen = struct { defer self.gpa.free(test_name); const execution_mode: spec.ExecutionModel = switch (target.os.tag) { - .vulkan, .opengl => .GLCompute, - .opencl, .amdhsa => .Kernel, + .vulkan, .opengl => .gl_compute, + .opencl, .amdhsa => .kernel, else => unreachable, }; @@ -2983,7 +2981,7 @@ const NavGen = struct { assert(maybe_init_val == null); // TODO const storage_class = self.spvStorageClass(nav.getAddrspace()); - assert(storage_class != .Generic); // These should be instance globals + assert(storage_class != .generic); // These should be instance globals const ptr_ty_id = try self.ptrType(ty, storage_class, .indirect); @@ -2993,38 +2991,8 @@ const NavGen = struct { .storage_class = storage_class, }); - if (nav.fqn.eqlSlice("position", ip)) { - try self.spv.decorate(result_id, .{ .BuiltIn = .{ .built_in = .Position } }); - } else if (nav.fqn.eqlSlice("point_size", ip)) { - try self.spv.decorate(result_id, .{ .BuiltIn = .{ .built_in = .PointSize } }); - } else if (nav.fqn.eqlSlice("invocation_id", ip)) { - try self.spv.decorate(result_id, .{ .BuiltIn = .{ .built_in = .InvocationId } }); - } else if (nav.fqn.eqlSlice("frag_coord", ip)) { - try self.spv.decorate(result_id, .{ .BuiltIn = .{ .built_in = .FragCoord } }); - } else if (nav.fqn.eqlSlice("point_coord", ip)) { - try self.spv.decorate(result_id, .{ .BuiltIn = .{ .built_in = .PointCoord } }); - } else if (nav.fqn.eqlSlice("front_facing", ip)) { - try self.spv.decorate(result_id, .{ .BuiltIn = .{ .built_in = .FrontFacing } }); - } else if (nav.fqn.eqlSlice("sample_mask", ip)) { - try self.spv.decorate(result_id, .{ .BuiltIn = .{ .built_in = .SampleMask } }); - } else if (nav.fqn.eqlSlice("frag_depth", ip)) { - try self.spv.decorate(result_id, .{ .BuiltIn = .{ .built_in = .FragDepth } }); - } else if (nav.fqn.eqlSlice("num_workgroups", ip)) { - try self.spv.decorate(result_id, .{ .BuiltIn = .{ .built_in = .NumWorkgroups } }); - } else if (nav.fqn.eqlSlice("workgroup_size", ip)) { - try self.spv.decorate(result_id, .{ .BuiltIn = .{ .built_in = .WorkgroupSize } }); - } else if (nav.fqn.eqlSlice("workgroup_id", ip)) { - try self.spv.decorate(result_id, .{ .BuiltIn = .{ .built_in = .WorkgroupId } }); - } else if (nav.fqn.eqlSlice("local_invocation_id", ip)) { - try self.spv.decorate(result_id, .{ .BuiltIn = .{ .built_in = .LocalInvocationId } }); - } else if (nav.fqn.eqlSlice("global_invocation_id", ip)) { - try self.spv.decorate(result_id, .{ .BuiltIn = .{ .built_in = .GlobalInvocationId } }); - } else if (nav.fqn.eqlSlice("local_invocation_index", ip)) { - try self.spv.decorate(result_id, .{ .BuiltIn = .{ .built_in = .LocalInvocationIndex } }); - } else if (nav.fqn.eqlSlice("vertex_index", ip)) { - try self.spv.decorate(result_id, .{ .BuiltIn = .{ .built_in = .VertexIndex } }); - } else if (nav.fqn.eqlSlice("instance_index", ip)) { - try self.spv.decorate(result_id, .{ .BuiltIn = .{ .built_in = .InstanceIndex } }); + if (std.meta.stringToEnum(spec.BuiltIn, nav.fqn.toSlice(ip))) |builtin| { + try self.spv.decorate(result_id, .{ .built_in = .{ .built_in = builtin } }); } try self.spv.debugName(result_id, nav.fqn.toSlice(ip)); @@ -3040,7 +3008,7 @@ const NavGen = struct { try self.spv.declareDeclDeps(spv_decl_index, &.{}); - const ptr_ty_id = try self.ptrType(ty, .Function, .indirect); + const ptr_ty_id = try self.ptrType(ty, .function, .indirect); if (maybe_init_val) |init_val| { // TODO: Combine with resolveAnonDecl? @@ -3109,7 +3077,7 @@ const NavGen = struct { /// Convert representation from indirect (in memory) to direct (in 'register') /// This converts the argument type from resolveType(ty, .indirect) to resolveType(ty, .direct). - fn convertToDirect(self: *NavGen, ty: Type, operand_id: IdRef) !IdRef { + fn convertToDirect(self: *NavGen, ty: Type, operand_id: Id) !Id { const pt = self.pt; const zcu = pt.zcu; switch (ty.scalarType(zcu).zigTypeTag(zcu)) { @@ -3136,7 +3104,7 @@ const NavGen = struct { /// Convert representation from direct (in 'register) to direct (in memory) /// This converts the argument type from resolveType(ty, .direct) to resolveType(ty, .indirect). - fn convertToIndirect(self: *NavGen, ty: Type, operand_id: IdRef) !IdRef { + fn convertToIndirect(self: *NavGen, ty: Type, operand_id: Id) !Id { const zcu = self.pt.zcu; switch (ty.scalarType(zcu).zigTypeTag(zcu)) { .bool => { @@ -3147,7 +3115,7 @@ const NavGen = struct { } } - fn extractField(self: *NavGen, result_ty: Type, object: IdRef, field: u32) !IdRef { + fn extractField(self: *NavGen, result_ty: Type, object: Id, field: u32) !Id { const result_ty_id = try self.resolveType(result_ty, .indirect); const result_id = self.spv.allocId(); const indexes = [_]u32{field}; @@ -3161,7 +3129,7 @@ const NavGen = struct { return try self.convertToDirect(result_ty, result_id); } - fn extractVectorComponent(self: *NavGen, result_ty: Type, vector_id: IdRef, field: u32) !IdRef { + fn extractVectorComponent(self: *NavGen, result_ty: Type, vector_id: Id, field: u32) !Id { const result_ty_id = try self.resolveType(result_ty, .direct); const result_id = self.spv.allocId(); const indexes = [_]u32{field}; @@ -3179,14 +3147,14 @@ const NavGen = struct { is_volatile: bool = false, }; - fn load(self: *NavGen, value_ty: Type, ptr_id: IdRef, options: MemoryOptions) !IdRef { + fn load(self: *NavGen, value_ty: Type, ptr_id: Id, options: MemoryOptions) !Id { const zcu = self.pt.zcu; const alignment: u32 = @intCast(value_ty.abiAlignment(zcu).toByteUnits().?); const indirect_value_ty_id = try self.resolveType(value_ty, .indirect); const result_id = self.spv.allocId(); - const access = spec.MemoryAccess.Extended{ - .Volatile = options.is_volatile, - .Aligned = .{ .literal_integer = alignment }, + const access: spec.MemoryAccess.Extended = .{ + .@"volatile" = options.is_volatile, + .aligned = .{ .literal_integer = alignment }, }; try self.func.body.emit(self.spv.gpa, .OpLoad, .{ .id_result_type = indirect_value_ty_id, @@ -3197,11 +3165,9 @@ const NavGen = struct { return try self.convertToDirect(value_ty, result_id); } - fn store(self: *NavGen, value_ty: Type, ptr_id: IdRef, value_id: IdRef, options: MemoryOptions) !void { + fn store(self: *NavGen, value_ty: Type, ptr_id: Id, value_id: Id, options: MemoryOptions) !void { const indirect_value_id = try self.convertToIndirect(value_ty, value_id); - const access = spec.MemoryAccess.Extended{ - .Volatile = options.is_volatile, - }; + const access: spec.MemoryAccess.Extended = .{ .@"volatile" = options.is_volatile }; try self.func.body.emit(self.spv.gpa, .OpStore, .{ .pointer = ptr_id, .object = indirect_value_id, @@ -3222,7 +3188,7 @@ const NavGen = struct { return; const air_tags = self.air.instructions.items(.tag); - const maybe_result_id: ?IdRef = switch (air_tags[@intFromEnum(inst)]) { + const maybe_result_id: ?Id = switch (air_tags[@intFromEnum(inst)]) { // zig fmt: off .add, .add_wrap, .add_optimized => try self.airArithOp(inst, .f_add, .i_add, .i_add), .sub, .sub_wrap, .sub_optimized => try self.airArithOp(inst, .f_sub, .i_sub, .i_sub), @@ -3390,7 +3356,7 @@ const NavGen = struct { try self.inst_results.putNoClobber(self.gpa, inst, result_id); } - fn airBinOpSimple(self: *NavGen, inst: Air.Inst.Index, op: BinaryOp) !?IdRef { + fn airBinOpSimple(self: *NavGen, inst: Air.Inst.Index, op: BinaryOp) !?Id { const bin_op = self.air.instructions.items(.data)[@intFromEnum(inst)].bin_op; const lhs = try self.temporary(bin_op.lhs); const rhs = try self.temporary(bin_op.rhs); @@ -3399,7 +3365,7 @@ const NavGen = struct { return try result.materialize(self); } - fn airShift(self: *NavGen, inst: Air.Inst.Index, unsigned: BinaryOp, signed: BinaryOp) !?IdRef { + fn airShift(self: *NavGen, inst: Air.Inst.Index, unsigned: BinaryOp, signed: BinaryOp) !?Id { const zcu = self.pt.zcu; const bin_op = self.air.instructions.items(.data)[@intFromEnum(inst)].bin_op; @@ -3438,7 +3404,7 @@ const NavGen = struct { const MinMax = enum { min, max }; - fn airMinMax(self: *NavGen, inst: Air.Inst.Index, op: MinMax) !?IdRef { + fn airMinMax(self: *NavGen, inst: Air.Inst.Index, op: MinMax) !?Id { const bin_op = self.air.instructions.items(.data)[@intFromEnum(inst)].bin_op; const lhs = try self.temporary(bin_op.lhs); @@ -3503,7 +3469,7 @@ const NavGen = struct { } } - fn airDivFloor(self: *NavGen, inst: Air.Inst.Index) !?IdRef { + fn airDivFloor(self: *NavGen, inst: Air.Inst.Index) !?Id { const bin_op = self.air.instructions.items(.data)[@intFromEnum(inst)].bin_op; const lhs = try self.temporary(bin_op.lhs); @@ -3560,7 +3526,7 @@ const NavGen = struct { } } - fn airDivTrunc(self: *NavGen, inst: Air.Inst.Index) !?IdRef { + fn airDivTrunc(self: *NavGen, inst: Air.Inst.Index) !?Id { const bin_op = self.air.instructions.items(.data)[@intFromEnum(inst)].bin_op; const lhs = try self.temporary(bin_op.lhs); @@ -3588,7 +3554,7 @@ const NavGen = struct { } } - fn airUnOpSimple(self: *NavGen, inst: Air.Inst.Index, op: UnaryOp) !?IdRef { + fn airUnOpSimple(self: *NavGen, inst: Air.Inst.Index, op: UnaryOp) !?Id { const un_op = self.air.instructions.items(.data)[@intFromEnum(inst)].un_op; const operand = try self.temporary(un_op); const result = try self.buildUnary(op, operand); @@ -3601,7 +3567,7 @@ const NavGen = struct { comptime fop: BinaryOp, comptime sop: BinaryOp, comptime uop: BinaryOp, - ) !?IdRef { + ) !?Id { const bin_op = self.air.instructions.items(.data)[@intFromEnum(inst)].bin_op; const lhs = try self.temporary(bin_op.lhs); @@ -3622,7 +3588,7 @@ const NavGen = struct { return try result.materialize(self); } - fn airAbs(self: *NavGen, inst: Air.Inst.Index) !?IdRef { + fn airAbs(self: *NavGen, inst: Air.Inst.Index) !?Id { const ty_op = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_op; const operand = try self.temporary(ty_op.operand); // Note: operand_ty may be signed, while ty is always unsigned! @@ -3662,7 +3628,7 @@ const NavGen = struct { comptime add: BinaryOp, comptime ucmp: CmpPredicate, comptime scmp: CmpPredicate, - ) !?IdRef { + ) !?Id { _ = scmp; // Note: OpIAddCarry and OpISubBorrow are not really useful here: For unsigned numbers, // there is in both cases only one extra operation required. For signed operations, @@ -3725,7 +3691,7 @@ const NavGen = struct { return try self.constructComposite(result_ty_id, &.{ try result.materialize(self), try ov.materialize(self) }); } - fn airMulOverflow(self: *NavGen, inst: Air.Inst.Index) !?IdRef { + fn airMulOverflow(self: *NavGen, inst: Air.Inst.Index) !?Id { const pt = self.pt; const ty_pl = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_pl; @@ -3897,7 +3863,7 @@ const NavGen = struct { return try self.constructComposite(result_ty_id, &.{ try result.materialize(self), try ov.materialize(self) }); } - fn airShlOverflow(self: *NavGen, inst: Air.Inst.Index) !?IdRef { + fn airShlOverflow(self: *NavGen, inst: Air.Inst.Index) !?Id { const zcu = self.pt.zcu; const ty_pl = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_pl; @@ -3938,7 +3904,7 @@ const NavGen = struct { return try self.constructComposite(result_ty_id, &.{ try result.materialize(self), try ov.materialize(self) }); } - fn airMulAdd(self: *NavGen, inst: Air.Inst.Index) !?IdRef { + fn airMulAdd(self: *NavGen, inst: Air.Inst.Index) !?Id { const pl_op = self.air.instructions.items(.data)[@intFromEnum(inst)].pl_op; const extra = self.air.extraData(Air.Bin, pl_op.payload).data; @@ -3954,7 +3920,7 @@ const NavGen = struct { return try result.materialize(self); } - fn airClzCtz(self: *NavGen, inst: Air.Inst.Index, op: UnaryOp) !?IdRef { + fn airClzCtz(self: *NavGen, inst: Air.Inst.Index, op: UnaryOp) !?Id { if (self.liveness.isUnused(inst)) return null; const zcu = self.pt.zcu; @@ -3979,7 +3945,7 @@ const NavGen = struct { return try result.materialize(self); } - fn airSelect(self: *NavGen, inst: Air.Inst.Index) !?IdRef { + fn airSelect(self: *NavGen, inst: Air.Inst.Index) !?Id { const pl_op = self.air.instructions.items(.data)[@intFromEnum(inst)].pl_op; const extra = self.air.extraData(Air.Bin, pl_op.payload).data; const pred = try self.temporary(pl_op.operand); @@ -3990,7 +3956,7 @@ const NavGen = struct { return try result.materialize(self); } - fn airSplat(self: *NavGen, inst: Air.Inst.Index) !?IdRef { + fn airSplat(self: *NavGen, inst: Air.Inst.Index) !?Id { const ty_op = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_op; const operand_id = try self.resolve(ty_op.operand); @@ -3999,7 +3965,7 @@ const NavGen = struct { return try self.constructCompositeSplat(result_ty, operand_id); } - fn airReduce(self: *NavGen, inst: Air.Inst.Index) !?IdRef { + fn airReduce(self: *NavGen, inst: Air.Inst.Index) !?Id { const zcu = self.pt.zcu; const reduce = self.air.instructions.items(.data)[@intFromEnum(inst)].reduce; const operand = try self.resolve(reduce.operand); @@ -4062,16 +4028,16 @@ const NavGen = struct { result_id = self.spv.allocId(); try self.func.body.emitRaw(self.spv.gpa, opcode, 4); - self.func.body.writeOperand(spec.IdResultType, scalar_ty_id); - self.func.body.writeOperand(spec.IdResult, result_id); - self.func.body.writeOperand(spec.IdResultType, lhs); - self.func.body.writeOperand(spec.IdResultType, rhs); + self.func.body.writeOperand(spec.Id, scalar_ty_id); + self.func.body.writeOperand(spec.Id, result_id); + self.func.body.writeOperand(spec.Id, lhs); + self.func.body.writeOperand(spec.Id, rhs); } return result_id; } - fn airShuffleOne(ng: *NavGen, inst: Air.Inst.Index) !?IdRef { + fn airShuffleOne(ng: *NavGen, inst: Air.Inst.Index) !?Id { const pt = ng.pt; const zcu = pt.zcu; const gpa = zcu.gpa; @@ -4082,7 +4048,7 @@ const NavGen = struct { const elem_ty = result_ty.childType(zcu); const operand = try ng.resolve(unwrapped.operand); - const constituents = try gpa.alloc(IdRef, mask.len); + const constituents = try gpa.alloc(Id, mask.len); defer gpa.free(constituents); for (constituents, mask) |*id, mask_elem| { @@ -4096,7 +4062,7 @@ const NavGen = struct { return try ng.constructComposite(result_ty_id, constituents); } - fn airShuffleTwo(ng: *NavGen, inst: Air.Inst.Index) !?IdRef { + fn airShuffleTwo(ng: *NavGen, inst: Air.Inst.Index) !?Id { const pt = ng.pt; const zcu = pt.zcu; const gpa = zcu.gpa; @@ -4109,7 +4075,7 @@ const NavGen = struct { const operand_a = try ng.resolve(unwrapped.operand_a); const operand_b = try ng.resolve(unwrapped.operand_b); - const constituents = try gpa.alloc(IdRef, mask.len); + const constituents = try gpa.alloc(Id, mask.len); defer gpa.free(constituents); for (constituents, mask) |*id, mask_elem| { @@ -4124,8 +4090,8 @@ const NavGen = struct { return try ng.constructComposite(result_ty_id, constituents); } - fn indicesToIds(self: *NavGen, indices: []const u32) ![]IdRef { - const ids = try self.gpa.alloc(IdRef, indices.len); + fn indicesToIds(self: *NavGen, indices: []const u32) ![]Id { + const ids = try self.gpa.alloc(Id, indices.len); errdefer self.gpa.free(ids); for (indices, ids) |index, *id| { id.* = try self.constInt(Type.u32, index); @@ -4136,10 +4102,10 @@ const NavGen = struct { fn accessChainId( self: *NavGen, - result_ty_id: IdRef, - base: IdRef, - indices: []const IdRef, - ) !IdRef { + result_ty_id: Id, + base: Id, + indices: []const Id, + ) !Id { const result_id = self.spv.allocId(); try self.func.body.emit(self.spv.gpa, .OpInBoundsAccessChain, .{ .id_result_type = result_ty_id, @@ -4156,10 +4122,10 @@ const NavGen = struct { /// is the latter and PtrAccessChain is the former. fn accessChain( self: *NavGen, - result_ty_id: IdRef, - base: IdRef, + result_ty_id: Id, + base: Id, indices: []const u32, - ) !IdRef { + ) !Id { const ids = try self.indicesToIds(indices); defer self.gpa.free(ids); return try self.accessChainId(result_ty_id, base, ids); @@ -4167,11 +4133,11 @@ const NavGen = struct { fn ptrAccessChain( self: *NavGen, - result_ty_id: IdRef, - base: IdRef, - element: IdRef, + result_ty_id: Id, + base: Id, + element: Id, indices: []const u32, - ) !IdRef { + ) !Id { const ids = try self.indicesToIds(indices); defer self.gpa.free(ids); @@ -4199,7 +4165,7 @@ const NavGen = struct { return result_id; } - fn ptrAdd(self: *NavGen, result_ty: Type, ptr_ty: Type, ptr_id: IdRef, offset_id: IdRef) !IdRef { + fn ptrAdd(self: *NavGen, result_ty: Type, ptr_ty: Type, ptr_id: Id, offset_id: Id) !Id { const zcu = self.pt.zcu; const result_ty_id = try self.resolveType(result_ty, .direct); @@ -4220,7 +4186,7 @@ const NavGen = struct { } } - fn airPtrAdd(self: *NavGen, inst: Air.Inst.Index) !?IdRef { + fn airPtrAdd(self: *NavGen, inst: Air.Inst.Index) !?Id { const ty_pl = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_pl; const bin_op = self.air.extraData(Air.Bin, ty_pl.payload).data; const ptr_id = try self.resolve(bin_op.lhs); @@ -4231,7 +4197,7 @@ const NavGen = struct { return try self.ptrAdd(result_ty, ptr_ty, ptr_id, offset_id); } - fn airPtrSub(self: *NavGen, inst: Air.Inst.Index) !?IdRef { + fn airPtrSub(self: *NavGen, inst: Air.Inst.Index) !?Id { const ty_pl = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_pl; const bin_op = self.air.extraData(Air.Bin, ty_pl.payload).data; const ptr_id = try self.resolve(bin_op.lhs); @@ -4427,7 +4393,7 @@ const NavGen = struct { self: *NavGen, inst: Air.Inst.Index, comptime op: std.math.CompareOperator, - ) !?IdRef { + ) !?Id { const bin_op = self.air.instructions.items(.data)[@intFromEnum(inst)].bin_op; const lhs = try self.temporary(bin_op.lhs); const rhs = try self.temporary(bin_op.rhs); @@ -4436,7 +4402,7 @@ const NavGen = struct { return try result.materialize(self); } - fn airVectorCmp(self: *NavGen, inst: Air.Inst.Index) !?IdRef { + fn airVectorCmp(self: *NavGen, inst: Air.Inst.Index) !?Id { const ty_pl = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_pl; const vec_cmp = self.air.extraData(Air.VectorCmp, ty_pl.payload).data; const lhs = try self.temporary(vec_cmp.lhs); @@ -4452,8 +4418,8 @@ const NavGen = struct { self: *NavGen, dst_ty: Type, src_ty: Type, - src_id: IdRef, - ) !IdRef { + src_id: Id, + ) !Id { const zcu = self.pt.zcu; const src_ty_id = try self.resolveType(src_ty, .direct); const dst_ty_id = try self.resolveType(dst_ty, .direct); @@ -4489,9 +4455,9 @@ const NavGen = struct { break :blk result_id; } - const dst_ptr_ty_id = try self.ptrType(dst_ty, .Function, .indirect); + const dst_ptr_ty_id = try self.ptrType(dst_ty, .function, .indirect); - const tmp_id = try self.alloc(src_ty, .{ .storage_class = .Function }); + const tmp_id = try self.alloc(src_ty, .{ .storage_class = .function }); try self.store(src_ty, tmp_id, src_id, .{}); const casted_ptr_id = self.spv.allocId(); try self.func.body.emit(self.spv.gpa, .OpBitcast, .{ @@ -4515,7 +4481,7 @@ const NavGen = struct { return result_id; } - fn airBitCast(self: *NavGen, inst: Air.Inst.Index) !?IdRef { + fn airBitCast(self: *NavGen, inst: Air.Inst.Index) !?Id { const ty_op = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_op; const operand_ty = self.typeOf(ty_op.operand); const result_ty = self.typeOfIndex(inst); @@ -4528,7 +4494,7 @@ const NavGen = struct { return try self.bitCast(result_ty, operand_ty, operand_id); } - fn airIntCast(self: *NavGen, inst: Air.Inst.Index) !?IdRef { + fn airIntCast(self: *NavGen, inst: Air.Inst.Index) !?Id { const ty_op = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_op; const src = try self.temporary(ty_op.operand); const dst_ty = self.typeOfIndex(inst); @@ -4554,7 +4520,7 @@ const NavGen = struct { return try result.materialize(self); } - fn intFromPtr(self: *NavGen, operand_id: IdRef) !IdRef { + fn intFromPtr(self: *NavGen, operand_id: Id) !Id { const result_type_id = try self.resolveType(Type.usize, .direct); const result_id = self.spv.allocId(); try self.func.body.emit(self.spv.gpa, .OpConvertPtrToU, .{ @@ -4565,7 +4531,7 @@ const NavGen = struct { return result_id; } - fn airFloatFromInt(self: *NavGen, inst: Air.Inst.Index) !?IdRef { + fn airFloatFromInt(self: *NavGen, inst: Air.Inst.Index) !?Id { const ty_op = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_op; const operand_ty = self.typeOf(ty_op.operand); const operand_id = try self.resolve(ty_op.operand); @@ -4573,7 +4539,7 @@ const NavGen = struct { return try self.floatFromInt(result_ty, operand_ty, operand_id); } - fn floatFromInt(self: *NavGen, result_ty: Type, operand_ty: Type, operand_id: IdRef) !IdRef { + fn floatFromInt(self: *NavGen, result_ty: Type, operand_ty: Type, operand_id: Id) !Id { const operand_info = self.arithmeticTypeInfo(operand_ty); const result_id = self.spv.allocId(); const result_ty_id = try self.resolveType(result_ty, .direct); @@ -4592,14 +4558,14 @@ const NavGen = struct { return result_id; } - fn airIntFromFloat(self: *NavGen, inst: Air.Inst.Index) !?IdRef { + fn airIntFromFloat(self: *NavGen, inst: Air.Inst.Index) !?Id { const ty_op = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_op; const operand_id = try self.resolve(ty_op.operand); const result_ty = self.typeOfIndex(inst); return try self.intFromFloat(result_ty, operand_id); } - fn intFromFloat(self: *NavGen, result_ty: Type, operand_id: IdRef) !IdRef { + fn intFromFloat(self: *NavGen, result_ty: Type, operand_id: Id) !Id { const result_info = self.arithmeticTypeInfo(result_ty); const result_ty_id = try self.resolveType(result_ty, .direct); const result_id = self.spv.allocId(); @@ -4618,7 +4584,7 @@ const NavGen = struct { return result_id; } - fn airFloatCast(self: *NavGen, inst: Air.Inst.Index) !?IdRef { + fn airFloatCast(self: *NavGen, inst: Air.Inst.Index) !?Id { const ty_op = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_op; const operand = try self.temporary(ty_op.operand); const dest_ty = self.typeOfIndex(inst); @@ -4626,7 +4592,7 @@ const NavGen = struct { return try result.materialize(self); } - fn airNot(self: *NavGen, inst: Air.Inst.Index) !?IdRef { + fn airNot(self: *NavGen, inst: Air.Inst.Index) !?Id { const ty_op = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_op; const operand = try self.temporary(ty_op.operand); const result_ty = self.typeOfIndex(inst); @@ -4645,7 +4611,7 @@ const NavGen = struct { return try result.materialize(self); } - fn airArrayToSlice(self: *NavGen, inst: Air.Inst.Index) !?IdRef { + fn airArrayToSlice(self: *NavGen, inst: Air.Inst.Index) !?Id { const pt = self.pt; const zcu = pt.zcu; const ty_op = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_op; @@ -4670,7 +4636,7 @@ const NavGen = struct { return try self.constructComposite(slice_ty_id, &.{ elem_ptr_id, len_id }); } - fn airSlice(self: *NavGen, inst: Air.Inst.Index) !?IdRef { + fn airSlice(self: *NavGen, inst: Air.Inst.Index) !?Id { const ty_pl = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_pl; const bin_op = self.air.extraData(Air.Bin, ty_pl.payload).data; const ptr_id = try self.resolve(bin_op.lhs); @@ -4680,7 +4646,7 @@ const NavGen = struct { return try self.constructComposite(slice_ty_id, &.{ ptr_id, len_id }); } - fn airAggregateInit(self: *NavGen, inst: Air.Inst.Index) !?IdRef { + fn airAggregateInit(self: *NavGen, inst: Air.Inst.Index) !?Id { const pt = self.pt; const zcu = pt.zcu; const ip = &zcu.intern_pool; @@ -4732,7 +4698,7 @@ const NavGen = struct { const types = try self.gpa.alloc(Type, elements.len); defer self.gpa.free(types); - const constituents = try self.gpa.alloc(IdRef, elements.len); + const constituents = try self.gpa.alloc(Id, elements.len); defer self.gpa.free(constituents); var index: usize = 0; @@ -4771,7 +4737,7 @@ const NavGen = struct { }, .vector => { const n_elems = result_ty.vectorLen(zcu); - const elem_ids = try self.gpa.alloc(IdRef, n_elems); + const elem_ids = try self.gpa.alloc(Id, n_elems); defer self.gpa.free(elem_ids); for (elements, 0..) |element, i| { @@ -4784,7 +4750,7 @@ const NavGen = struct { .array => { const array_info = result_ty.arrayInfo(zcu); const n_elems: usize = @intCast(result_ty.arrayLenIncludingSentinel(zcu)); - const elem_ids = try self.gpa.alloc(IdRef, n_elems); + const elem_ids = try self.gpa.alloc(Id, n_elems); defer self.gpa.free(elem_ids); for (elements, 0..) |element, i| { @@ -4803,7 +4769,7 @@ const NavGen = struct { } } - fn sliceOrArrayLen(self: *NavGen, operand_id: IdRef, ty: Type) !IdRef { + fn sliceOrArrayLen(self: *NavGen, operand_id: Id, ty: Type) !Id { const pt = self.pt; const zcu = pt.zcu; switch (ty.ptrSize(zcu)) { @@ -4819,7 +4785,7 @@ const NavGen = struct { } } - fn sliceOrArrayPtr(self: *NavGen, operand_id: IdRef, ty: Type) !IdRef { + fn sliceOrArrayPtr(self: *NavGen, operand_id: Id, ty: Type) !Id { const zcu = self.pt.zcu; if (ty.isSlice(zcu)) { const ptr_ty = ty.slicePtrFieldType(zcu); @@ -4849,14 +4815,14 @@ const NavGen = struct { return self.fail("TODO implement airMemcpy for spirv", .{}); } - fn airSliceField(self: *NavGen, inst: Air.Inst.Index, field: u32) !?IdRef { + fn airSliceField(self: *NavGen, inst: Air.Inst.Index, field: u32) !?Id { const ty_op = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_op; const field_ty = self.typeOfIndex(inst); const operand_id = try self.resolve(ty_op.operand); return try self.extractField(field_ty, operand_id, field); } - fn airSliceElemPtr(self: *NavGen, inst: Air.Inst.Index) !?IdRef { + fn airSliceElemPtr(self: *NavGen, inst: Air.Inst.Index) !?Id { const zcu = self.pt.zcu; const ty_pl = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_pl; const bin_op = self.air.extraData(Air.Bin, ty_pl.payload).data; @@ -4873,7 +4839,7 @@ const NavGen = struct { return try self.ptrAccessChain(ptr_ty_id, slice_ptr, index_id, &.{}); } - fn airSliceElemVal(self: *NavGen, inst: Air.Inst.Index) !?IdRef { + fn airSliceElemVal(self: *NavGen, inst: Air.Inst.Index) !?Id { const zcu = self.pt.zcu; const bin_op = self.air.instructions.items(.data)[@intFromEnum(inst)].bin_op; const slice_ty = self.typeOf(bin_op.lhs); @@ -4890,7 +4856,7 @@ const NavGen = struct { return try self.load(slice_ty.childType(zcu), elem_ptr, .{ .is_volatile = slice_ty.isVolatilePtr(zcu) }); } - fn ptrElemPtr(self: *NavGen, ptr_ty: Type, ptr_id: IdRef, index_id: IdRef) !IdRef { + fn ptrElemPtr(self: *NavGen, ptr_ty: Type, ptr_id: Id, index_id: Id) !Id { const zcu = self.pt.zcu; // Construct new pointer type for the resulting pointer const elem_ty = ptr_ty.elemType2(zcu); // use elemType() so that we get T for *[N]T. @@ -4905,7 +4871,7 @@ const NavGen = struct { } } - fn airPtrElemPtr(self: *NavGen, inst: Air.Inst.Index) !?IdRef { + fn airPtrElemPtr(self: *NavGen, inst: Air.Inst.Index) !?Id { const pt = self.pt; const zcu = pt.zcu; const ty_pl = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_pl; @@ -4923,7 +4889,7 @@ const NavGen = struct { return try self.ptrElemPtr(src_ptr_ty, ptr_id, index_id); } - fn airArrayElemVal(self: *NavGen, inst: Air.Inst.Index) !?IdRef { + fn airArrayElemVal(self: *NavGen, inst: Air.Inst.Index) !?Id { const zcu = self.pt.zcu; const bin_op = self.air.instructions.items(.data)[@intFromEnum(inst)].bin_op; const array_ty = self.typeOf(bin_op.lhs); @@ -4938,14 +4904,14 @@ const NavGen = struct { const is_vector = array_ty.isVector(zcu); const elem_repr: Repr = if (is_vector) .direct else .indirect; - const ptr_array_ty_id = try self.ptrType(array_ty, .Function, .direct); - const ptr_elem_ty_id = try self.ptrType(elem_ty, .Function, elem_repr); + const ptr_array_ty_id = try self.ptrType(array_ty, .function, .direct); + const ptr_elem_ty_id = try self.ptrType(elem_ty, .function, elem_repr); const tmp_id = self.spv.allocId(); try self.func.prologue.emit(self.spv.gpa, .OpVariable, .{ .id_result_type = ptr_array_ty_id, .id_result = tmp_id, - .storage_class = .Function, + .storage_class = .function, }); try self.func.body.emit(self.spv.gpa, .OpStore, .{ @@ -4973,7 +4939,7 @@ const NavGen = struct { return try self.convertToDirect(elem_ty, result_id); } - fn airPtrElemVal(self: *NavGen, inst: Air.Inst.Index) !?IdRef { + fn airPtrElemVal(self: *NavGen, inst: Air.Inst.Index) !?Id { const zcu = self.pt.zcu; const bin_op = self.air.instructions.items(.data)[@intFromEnum(inst)].bin_op; const ptr_ty = self.typeOf(bin_op.lhs); @@ -5029,7 +4995,7 @@ const NavGen = struct { } } - fn airGetUnionTag(self: *NavGen, inst: Air.Inst.Index) !?IdRef { + fn airGetUnionTag(self: *NavGen, inst: Air.Inst.Index) !?Id { const ty_op = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_op; const un_ty = self.typeOf(ty_op.operand); @@ -5048,8 +5014,8 @@ const NavGen = struct { self: *NavGen, ty: Type, active_field: u32, - payload: ?IdRef, - ) !IdRef { + payload: ?Id, + ) !Id { // To initialize a union, generate a temporary variable with the // union type, then get the field pointer and pointer-cast it to the // right type to store it. Finally load the entire union. @@ -5100,20 +5066,20 @@ const NavGen = struct { return try self.constInt(tag_ty, tag_int); } - const tmp_id = try self.alloc(ty, .{ .storage_class = .Function }); + const tmp_id = try self.alloc(ty, .{ .storage_class = .function }); if (layout.tag_size != 0) { - const tag_ptr_ty_id = try self.ptrType(tag_ty, .Function, .indirect); + const tag_ptr_ty_id = try self.ptrType(tag_ty, .function, .indirect); const ptr_id = try self.accessChain(tag_ptr_ty_id, tmp_id, &.{@as(u32, @intCast(layout.tag_index))}); const tag_id = try self.constInt(tag_ty, tag_int); try self.store(tag_ty, ptr_id, tag_id, .{}); } if (payload_ty.hasRuntimeBitsIgnoreComptime(zcu)) { - const pl_ptr_ty_id = try self.ptrType(layout.payload_ty, .Function, .indirect); + const pl_ptr_ty_id = try self.ptrType(layout.payload_ty, .function, .indirect); const pl_ptr_id = try self.accessChain(pl_ptr_ty_id, tmp_id, &.{layout.payload_index}); const active_pl_ptr_id = if (!layout.payload_ty.eql(payload_ty, zcu)) blk: { - const active_pl_ptr_ty_id = try self.ptrType(payload_ty, .Function, .indirect); + const active_pl_ptr_ty_id = try self.ptrType(payload_ty, .function, .indirect); const active_pl_ptr_id = self.spv.allocId(); try self.func.body.emit(self.spv.gpa, .OpBitcast, .{ .id_result_type = active_pl_ptr_ty_id, @@ -5134,7 +5100,7 @@ const NavGen = struct { return try self.load(ty, tmp_id, .{}); } - fn airUnionInit(self: *NavGen, inst: Air.Inst.Index) !?IdRef { + fn airUnionInit(self: *NavGen, inst: Air.Inst.Index) !?Id { const pt = self.pt; const zcu = pt.zcu; const ip = &zcu.intern_pool; @@ -5151,7 +5117,7 @@ const NavGen = struct { return try self.unionInit(ty, extra.field_index, payload); } - fn airStructFieldVal(self: *NavGen, inst: Air.Inst.Index) !?IdRef { + fn airStructFieldVal(self: *NavGen, inst: Air.Inst.Index) !?Id { const pt = self.pt; const zcu = pt.zcu; const ty_pl = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_pl; @@ -5216,13 +5182,13 @@ const NavGen = struct { const layout = self.unionLayout(object_ty); assert(layout.has_payload); - const tmp_id = try self.alloc(object_ty, .{ .storage_class = .Function }); + const tmp_id = try self.alloc(object_ty, .{ .storage_class = .function }); try self.store(object_ty, tmp_id, object_id, .{}); - const pl_ptr_ty_id = try self.ptrType(layout.payload_ty, .Function, .indirect); + const pl_ptr_ty_id = try self.ptrType(layout.payload_ty, .function, .indirect); const pl_ptr_id = try self.accessChain(pl_ptr_ty_id, tmp_id, &.{layout.payload_index}); - const active_pl_ptr_ty_id = try self.ptrType(field_ty, .Function, .indirect); + const active_pl_ptr_ty_id = try self.ptrType(field_ty, .function, .indirect); const active_pl_ptr_id = self.spv.allocId(); try self.func.body.emit(self.spv.gpa, .OpBitcast, .{ .id_result_type = active_pl_ptr_ty_id, @@ -5236,7 +5202,7 @@ const NavGen = struct { } } - fn airFieldParentPtr(self: *NavGen, inst: Air.Inst.Index) !?IdRef { + fn airFieldParentPtr(self: *NavGen, inst: Air.Inst.Index) !?Id { const pt = self.pt; const zcu = pt.zcu; const ty_pl = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_pl; @@ -5273,9 +5239,9 @@ const NavGen = struct { self: *NavGen, result_ptr_ty: Type, object_ptr_ty: Type, - object_ptr: IdRef, + object_ptr: Id, field_index: u32, - ) !IdRef { + ) !Id { const result_ty_id = try self.resolveType(result_ptr_ty, .direct); const zcu = self.pt.zcu; @@ -5318,7 +5284,7 @@ const NavGen = struct { } } - fn airStructFieldPtrIndex(self: *NavGen, inst: Air.Inst.Index, field_index: u32) !?IdRef { + fn airStructFieldPtrIndex(self: *NavGen, inst: Air.Inst.Index, field_index: u32) !?Id { const ty_op = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_op; const struct_ptr = try self.resolve(ty_op.operand); const struct_ptr_ty = self.typeOf(ty_op.operand); @@ -5327,7 +5293,7 @@ const NavGen = struct { } const AllocOptions = struct { - initializer: ?IdRef = null, + initializer: ?Id = null, /// The final storage class of the pointer. This may be either `.Generic` or `.Function`. /// In either case, the local is allocated in the `.Function` storage class, and optionally /// cast back to `.Generic`. @@ -5342,8 +5308,8 @@ const NavGen = struct { self: *NavGen, ty: Type, options: AllocOptions, - ) !IdRef { - const ptr_fn_ty_id = try self.ptrType(ty, .Function, .indirect); + ) !Id { + const ptr_fn_ty_id = try self.ptrType(ty, .function, .indirect); // SPIR-V requires that OpVariable declarations for locals go into the first block, so we are just going to // directly generate them into func.prologue instead of the body. @@ -5351,7 +5317,7 @@ const NavGen = struct { try self.func.prologue.emit(self.spv.gpa, .OpVariable, .{ .id_result_type = ptr_fn_ty_id, .id_result = var_id, - .storage_class = .Function, + .storage_class = .function, .initializer = options.initializer, }); @@ -5361,17 +5327,17 @@ const NavGen = struct { } switch (options.storage_class) { - .Generic => { - const ptr_gn_ty_id = try self.ptrType(ty, .Generic, .indirect); + .generic => { + const ptr_gn_ty_id = try self.ptrType(ty, .generic, .indirect); // Convert to a generic pointer return self.castToGeneric(ptr_gn_ty_id, var_id); }, - .Function => return var_id, + .function => return var_id, else => unreachable, } } - fn airAlloc(self: *NavGen, inst: Air.Inst.Index) !?IdRef { + fn airAlloc(self: *NavGen, inst: Air.Inst.Index) !?Id { const zcu = self.pt.zcu; const ptr_ty = self.typeOfIndex(inst); const child_ty = ptr_ty.childType(zcu); @@ -5380,7 +5346,7 @@ const NavGen = struct { }); } - fn airArg(self: *NavGen) IdRef { + fn airArg(self: *NavGen) Id { defer self.next_arg_index += 1; return self.args.items[self.next_arg_index]; } @@ -5389,14 +5355,14 @@ const NavGen = struct { /// block to jump to. This function emits instructions, so it should be emitted /// inside the merge block of the block. /// This function should only be called with structured control flow generation. - fn structuredNextBlock(self: *NavGen, incoming: []const ControlFlow.Structured.Block.Incoming) !IdRef { + fn structuredNextBlock(self: *NavGen, incoming: []const ControlFlow.Structured.Block.Incoming) !Id { assert(self.control_flow == .structured); const result_id = self.spv.allocId(); const block_id_ty_id = try self.resolveType(Type.u32, .direct); try self.func.body.emitRaw(self.spv.gpa, .OpPhi, @intCast(2 + incoming.len * 2)); // result type + result + variable/parent... - self.func.body.writeOperand(spec.IdResultType, block_id_ty_id); - self.func.body.writeOperand(spec.IdRef, result_id); + self.func.body.writeOperand(spec.Id, block_id_ty_id); + self.func.body.writeOperand(spec.Id, result_id); for (incoming) |incoming_block| { self.func.body.writeOperand(spec.PairIdRefIdRef, .{ incoming_block.next_block, incoming_block.src_label }); @@ -5408,7 +5374,7 @@ const NavGen = struct { /// Jumps to the block with the target block-id. This function must only be called when /// terminating a body, there should be no instructions after it. /// This function should only be called with structured control flow generation. - fn structuredBreak(self: *NavGen, target_block: IdRef) !void { + fn structuredBreak(self: *NavGen, target_block: Id) !void { assert(self.control_flow == .structured); const sblock = self.control_flow.structured.block_stack.getLast(); @@ -5448,12 +5414,12 @@ const NavGen = struct { /// Using loops; loops can be early exited by jumping to the merge block at /// any time. loop: struct { - merge_label: IdRef, - continue_label: IdRef, + merge_label: Id, + continue_label: Id, }, }, body: []const Air.Inst.Index, - ) !IdRef { + ) !Id { assert(self.control_flow == .structured); var sblock: ControlFlow.Structured.Block = switch (block_merge_type) { @@ -5533,13 +5499,13 @@ const NavGen = struct { } } - fn airBlock(self: *NavGen, inst: Air.Inst.Index) !?IdRef { + fn airBlock(self: *NavGen, inst: Air.Inst.Index) !?Id { const inst_datas = self.air.instructions.items(.data); const extra = self.air.extraData(Air.Block, inst_datas[@intFromEnum(inst)].ty_pl.payload); return self.lowerBlock(inst, @ptrCast(self.air.extra.items[extra.end..][0..extra.data.body_len])); } - fn lowerBlock(self: *NavGen, inst: Air.Inst.Index, body: []const Air.Inst.Index) !?IdRef { + fn lowerBlock(self: *NavGen, inst: Air.Inst.Index, body: []const Air.Inst.Index) !?Id { // In AIR, a block doesn't really define an entry point like a block, but // more like a scope that breaks can jump out of and "return" a value from. // This cannot be directly modelled in SPIR-V, so in a block instruction, @@ -5584,8 +5550,8 @@ const NavGen = struct { // result type + result + variable/parent... 2 + @as(u16, @intCast(block.incoming_blocks.items.len * 2)), ); - self.func.body.writeOperand(spec.IdResultType, result_type_id); - self.func.body.writeOperand(spec.IdRef, result_id); + self.func.body.writeOperand(spec.Id, result_type_id); + self.func.body.writeOperand(spec.Id, result_id); for (block.incoming_blocks.items) |incoming| { self.func.body.writeOperand( @@ -5599,7 +5565,7 @@ const NavGen = struct { }; const maybe_block_result_var_id = if (have_block_result) blk: { - const block_result_var_id = try self.alloc(ty, .{ .storage_class = .Function }); + const block_result_var_id = try self.alloc(ty, .{ .storage_class = .function }); try cf.block_results.putNoClobber(self.gpa, inst, block_result_var_id); break :blk block_result_var_id; } else null; @@ -5823,7 +5789,7 @@ const NavGen = struct { } } - fn airLoad(self: *NavGen, inst: Air.Inst.Index) !?IdRef { + fn airLoad(self: *NavGen, inst: Air.Inst.Index) !?Id { const zcu = self.pt.zcu; const ty_op = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_op; const ptr_ty = self.typeOf(ty_op.operand); @@ -5894,7 +5860,7 @@ const NavGen = struct { }); } - fn airTry(self: *NavGen, inst: Air.Inst.Index) !?IdRef { + fn airTry(self: *NavGen, inst: Air.Inst.Index) !?Id { const zcu = self.pt.zcu; const pl_op = self.air.instructions.items(.data)[@intFromEnum(inst)].pl_op; const err_union_id = try self.resolve(pl_op.operand); @@ -5964,7 +5930,7 @@ const NavGen = struct { return try self.extractField(payload_ty, err_union_id, eu_layout.payloadFieldIndex()); } - fn airErrUnionErr(self: *NavGen, inst: Air.Inst.Index) !?IdRef { + fn airErrUnionErr(self: *NavGen, inst: Air.Inst.Index) !?Id { const zcu = self.pt.zcu; const ty_op = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_op; const operand_id = try self.resolve(ty_op.operand); @@ -5987,7 +5953,7 @@ const NavGen = struct { return try self.extractField(Type.anyerror, operand_id, eu_layout.errorFieldIndex()); } - fn airErrUnionPayload(self: *NavGen, inst: Air.Inst.Index) !?IdRef { + fn airErrUnionPayload(self: *NavGen, inst: Air.Inst.Index) !?Id { const ty_op = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_op; const operand_id = try self.resolve(ty_op.operand); const payload_ty = self.typeOfIndex(inst); @@ -6000,7 +5966,7 @@ const NavGen = struct { return try self.extractField(payload_ty, operand_id, eu_layout.payloadFieldIndex()); } - fn airWrapErrUnionErr(self: *NavGen, inst: Air.Inst.Index) !?IdRef { + fn airWrapErrUnionErr(self: *NavGen, inst: Air.Inst.Index) !?Id { const zcu = self.pt.zcu; const ty_op = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_op; const err_union_ty = self.typeOfIndex(inst); @@ -6014,7 +5980,7 @@ const NavGen = struct { const payload_ty_id = try self.resolveType(payload_ty, .indirect); - var members: [2]IdRef = undefined; + var members: [2]Id = undefined; members[eu_layout.errorFieldIndex()] = operand_id; members[eu_layout.payloadFieldIndex()] = try self.spv.constUndef(payload_ty_id); @@ -6026,7 +5992,7 @@ const NavGen = struct { return try self.constructComposite(err_union_ty_id, &members); } - fn airWrapErrUnionPayload(self: *NavGen, inst: Air.Inst.Index) !?IdRef { + fn airWrapErrUnionPayload(self: *NavGen, inst: Air.Inst.Index) !?Id { const ty_op = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_op; const err_union_ty = self.typeOfIndex(inst); const operand_id = try self.resolve(ty_op.operand); @@ -6037,7 +6003,7 @@ const NavGen = struct { return try self.constInt(Type.anyerror, 0); } - var members: [2]IdRef = undefined; + var members: [2]Id = undefined; members[eu_layout.errorFieldIndex()] = try self.constInt(Type.anyerror, 0); members[eu_layout.payloadFieldIndex()] = try self.convertToIndirect(payload_ty, operand_id); @@ -6049,7 +6015,7 @@ const NavGen = struct { return try self.constructComposite(err_union_ty_id, &members); } - fn airIsNull(self: *NavGen, inst: Air.Inst.Index, is_pointer: bool, pred: enum { is_null, is_non_null }) !?IdRef { + fn airIsNull(self: *NavGen, inst: Air.Inst.Index, is_pointer: bool, pred: enum { is_null, is_non_null }) !?Id { const pt = self.pt; const zcu = pt.zcu; const un_op = self.air.instructions.items(.data)[@intFromEnum(inst)].un_op; @@ -6126,7 +6092,7 @@ const NavGen = struct { }; } - fn airIsErr(self: *NavGen, inst: Air.Inst.Index, pred: enum { is_err, is_non_err }) !?IdRef { + fn airIsErr(self: *NavGen, inst: Air.Inst.Index, pred: enum { is_err, is_non_err }) !?Id { const zcu = self.pt.zcu; const un_op = self.air.instructions.items(.data)[@intFromEnum(inst)].un_op; const operand_id = try self.resolve(un_op); @@ -6164,7 +6130,7 @@ const NavGen = struct { return result_id; } - fn airUnwrapOptional(self: *NavGen, inst: Air.Inst.Index) !?IdRef { + fn airUnwrapOptional(self: *NavGen, inst: Air.Inst.Index) !?Id { const pt = self.pt; const zcu = pt.zcu; const ty_op = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_op; @@ -6181,7 +6147,7 @@ const NavGen = struct { return try self.extractField(payload_ty, operand_id, 0); } - fn airUnwrapOptionalPtr(self: *NavGen, inst: Air.Inst.Index) !?IdRef { + fn airUnwrapOptionalPtr(self: *NavGen, inst: Air.Inst.Index) !?Id { const pt = self.pt; const zcu = pt.zcu; const ty_op = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_op; @@ -6206,7 +6172,7 @@ const NavGen = struct { return try self.accessChain(result_ty_id, operand_id, &.{0}); } - fn airWrapOptional(self: *NavGen, inst: Air.Inst.Index) !?IdRef { + fn airWrapOptional(self: *NavGen, inst: Air.Inst.Index) !?Id { const pt = self.pt; const zcu = pt.zcu; const ty_op = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_op; @@ -6224,7 +6190,7 @@ const NavGen = struct { } const payload_id = try self.convertToIndirect(payload_ty, operand_id); - const members = [_]IdRef{ payload_id, try self.constBool(true, .indirect) }; + const members = [_]Id{ payload_id, try self.constBool(true, .indirect) }; const optional_ty_id = try self.resolveType(optional_ty, .direct); return try self.constructComposite(optional_ty_id, &members); } @@ -6294,8 +6260,8 @@ const NavGen = struct { // Emit the instruction before generating the blocks. try self.func.body.emitRaw(self.spv.gpa, .OpSwitch, 2 + (cond_words + 1) * num_conditions); - self.func.body.writeOperand(IdRef, cond_indirect); - self.func.body.writeOperand(IdRef, default); + self.func.body.writeOperand(Id, cond_indirect); + self.func.body.writeOperand(Id, default); // Emit each of the cases { @@ -6322,7 +6288,7 @@ const NavGen = struct { else => unreachable, }; self.func.body.writeOperand(spec.LiteralContextDependentNumber, int_lit); - self.func.body.writeOperand(IdRef, label); + self.func.body.writeOperand(Id, label); } } } @@ -6399,7 +6365,7 @@ const NavGen = struct { }); } - fn airDbgInlineBlock(self: *NavGen, inst: Air.Inst.Index) !?IdRef { + fn airDbgInlineBlock(self: *NavGen, inst: Air.Inst.Index) !?Id { const zcu = self.pt.zcu; const inst_datas = self.air.instructions.items(.data); const extra = self.air.extraData(Air.DbgInlineBlock, inst_datas[@intFromEnum(inst)].ty_pl.payload); @@ -6416,7 +6382,7 @@ const NavGen = struct { try self.spv.debugName(target_id, name.toSlice(self.air)); } - fn airAssembly(self: *NavGen, inst: Air.Inst.Index) !?IdRef { + fn airAssembly(self: *NavGen, inst: Air.Inst.Index) !?Id { const zcu = self.pt.zcu; const ty_pl = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_pl; const extra = self.air.extraData(Air.Asm, ty_pl.payload); @@ -6586,7 +6552,7 @@ const NavGen = struct { return null; } - fn airCall(self: *NavGen, inst: Air.Inst.Index, modifier: std.builtin.CallModifier) !?IdRef { + fn airCall(self: *NavGen, inst: Air.Inst.Index, modifier: std.builtin.CallModifier) !?Id { _ = modifier; const pt = self.pt; @@ -6608,7 +6574,7 @@ const NavGen = struct { const callee_id = try self.resolve(pl_op.operand); comptime assert(zig_call_abi_ver == 3); - const params = try self.gpa.alloc(spec.IdRef, args.len); + const params = try self.gpa.alloc(spec.Id, args.len); defer self.gpa.free(params); var n_params: usize = 0; for (args) |arg| { @@ -6637,7 +6603,7 @@ const NavGen = struct { return result_id; } - fn builtin3D(self: *NavGen, result_ty: Type, builtin: spec.BuiltIn, dimension: u32, out_of_range_value: anytype) !IdRef { + fn builtin3D(self: *NavGen, result_ty: Type, builtin: spec.BuiltIn, dimension: u32, out_of_range_value: anytype) !Id { if (dimension >= 3) { return try self.constInt(result_ty, out_of_range_value); } @@ -6645,7 +6611,7 @@ const NavGen = struct { .len = 3, .child = result_ty.toIntern(), }); - const ptr_ty_id = try self.ptrType(vec_ty, .Input, .indirect); + const ptr_ty_id = try self.ptrType(vec_ty, .input, .indirect); const spv_decl_index = try self.spv.builtin(ptr_ty_id, builtin); try self.func.decl_deps.put(self.spv.gpa, spv_decl_index, {}); const ptr = self.spv.declPtr(spv_decl_index).result_id; @@ -6653,34 +6619,34 @@ const NavGen = struct { return try self.extractVectorComponent(result_ty, vec, dimension); } - fn airWorkItemId(self: *NavGen, inst: Air.Inst.Index) !?IdRef { + fn airWorkItemId(self: *NavGen, inst: Air.Inst.Index) !?Id { if (self.liveness.isUnused(inst)) return null; const pl_op = self.air.instructions.items(.data)[@intFromEnum(inst)].pl_op; const dimension = pl_op.payload; // TODO: Should we make these builtins return usize? - const result_id = try self.builtin3D(Type.u64, .LocalInvocationId, dimension, 0); + const result_id = try self.builtin3D(Type.u64, .local_invocation_id, dimension, 0); const tmp = Temporary.init(Type.u64, result_id); const result = try self.buildConvert(Type.u32, tmp); return try result.materialize(self); } - fn airWorkGroupSize(self: *NavGen, inst: Air.Inst.Index) !?IdRef { + fn airWorkGroupSize(self: *NavGen, inst: Air.Inst.Index) !?Id { if (self.liveness.isUnused(inst)) return null; const pl_op = self.air.instructions.items(.data)[@intFromEnum(inst)].pl_op; const dimension = pl_op.payload; // TODO: Should we make these builtins return usize? - const result_id = try self.builtin3D(Type.u64, .WorkgroupSize, dimension, 0); + const result_id = try self.builtin3D(Type.u64, .workgroup_size, dimension, 0); const tmp = Temporary.init(Type.u64, result_id); const result = try self.buildConvert(Type.u32, tmp); return try result.materialize(self); } - fn airWorkGroupId(self: *NavGen, inst: Air.Inst.Index) !?IdRef { + fn airWorkGroupId(self: *NavGen, inst: Air.Inst.Index) !?Id { if (self.liveness.isUnused(inst)) return null; const pl_op = self.air.instructions.items(.data)[@intFromEnum(inst)].pl_op; const dimension = pl_op.payload; // TODO: Should we make these builtins return usize? - const result_id = try self.builtin3D(Type.u64, .WorkgroupId, dimension, 0); + const result_id = try self.builtin3D(Type.u64, .workgroup_id, dimension, 0); const tmp = Temporary.init(Type.u64, result_id); const result = try self.buildConvert(Type.u32, tmp); return try result.materialize(self); diff --git a/src/codegen/spirv/Assembler.zig b/src/codegen/spirv/Assembler.zig index 2cf336b9c4b7..190c8c2e927c 100644 --- a/src/codegen/spirv/Assembler.zig +++ b/src/codegen/spirv/Assembler.zig @@ -7,8 +7,7 @@ const assert = std.debug.assert; const spec = @import("spec.zig"); const Opcode = spec.Opcode; const Word = spec.Word; -const IdRef = spec.IdRef; -const IdResult = spec.IdResult; +const Id = spec.Id; const StorageClass = spec.StorageClass; const SpvModule = @import("Module.zig"); @@ -127,10 +126,10 @@ const AsmValue = union(enum) { unresolved_forward_reference, /// This result-value is a normal result produced by a different instruction. - value: IdRef, + value: Id, /// This result-value represents a type registered into the module's type system. - ty: IdRef, + ty: Id, /// This is a pre-supplied constant integer value. constant: u32, @@ -141,7 +140,7 @@ const AsmValue = union(enum) { /// Retrieve the result-id of this AsmValue. Asserts that this AsmValue /// is of a variant that allows the result to be obtained (not an unresolved /// forward declaration, not in the process of being declared, etc). - pub fn resultId(self: AsmValue) IdRef { + pub fn resultId(self: AsmValue) Id { return switch (self) { .just_declared, .unresolved_forward_reference, @@ -314,7 +313,7 @@ fn processInstruction(self: *Assembler) !void { return; }, else => switch (self.inst.opcode.class()) { - .TypeDeclaration => try self.processTypeInstruction(), + .type_declaration => try self.processTypeInstruction(), else => (try self.processGenericInstruction()) orelse return, }, }; @@ -392,7 +391,7 @@ fn processTypeInstruction(self: *Assembler) !AsmValue { break :blk result_id; }, .OpTypeStruct => blk: { - const ids = try self.gpa.alloc(IdRef, operands[1..].len); + const ids = try self.gpa.alloc(Id, operands[1..].len); defer self.gpa.free(ids); for (operands[1..], ids) |op, *id| id.* = try self.resolveRefId(op.ref_id); const result_id = self.spv.allocId(); @@ -429,7 +428,7 @@ fn processTypeInstruction(self: *Assembler) !AsmValue { const param_operands = operands[2..]; const return_type = try self.resolveRefId(operands[1].ref_id); - const param_types = try self.spv.gpa.alloc(IdRef, param_operands.len); + const param_types = try self.spv.gpa.alloc(Id, param_operands.len); defer self.spv.gpa.free(param_types); for (param_types, param_operands) |*param, operand| { param.* = try self.resolveRefId(operand.ref_id); @@ -457,17 +456,17 @@ fn processGenericInstruction(self: *Assembler) !?AsmValue { const operands = self.inst.operands.items; var maybe_spv_decl_index: ?SpvModule.Decl.Index = null; const section = switch (self.inst.opcode.class()) { - .ConstantCreation => &self.spv.sections.types_globals_constants, - .Annotation => &self.spv.sections.annotations, - .TypeDeclaration => unreachable, // Handled elsewhere. + .constant_creation => &self.spv.sections.types_globals_constants, + .annotation => &self.spv.sections.annotations, + .type_declaration => unreachable, // Handled elsewhere. else => switch (self.inst.opcode) { .OpEntryPoint => unreachable, .OpExecutionMode, .OpExecutionModeId => &self.spv.sections.execution_modes, .OpVariable => section: { const storage_class: spec.StorageClass = @enumFromInt(operands[2].value); - if (storage_class == .Function) break :section &self.func.prologue; + if (storage_class == .function) break :section &self.func.prologue; maybe_spv_decl_index = try self.spv.allocDecl(.global); - if (self.spv.version.minor < 4 and storage_class != .Input and storage_class != .Output) { + if (self.spv.version.minor < 4 and storage_class != .input and storage_class != .output) { // Before version 1.4, the interface’s storage classes are limited to the Input and Output break :section &self.spv.sections.types_globals_constants; } @@ -481,7 +480,7 @@ fn processGenericInstruction(self: *Assembler) !?AsmValue { }, }; - var maybe_result_id: ?IdResult = null; + var maybe_result_id: ?Id = null; const first_word = section.instructions.items.len; // At this point we're not quite sure how many operands this instruction is going to have, // so insert 0 and patch up the actual opcode word later. @@ -504,12 +503,12 @@ fn processGenericInstruction(self: *Assembler) !?AsmValue { else self.spv.allocId(); try section.ensureUnusedCapacity(self.spv.gpa, 1); - section.writeOperand(IdResult, maybe_result_id.?); + section.writeOperand(Id, maybe_result_id.?); }, .ref_id => |index| { const result = try self.resolveRef(index); try section.ensureUnusedCapacity(self.spv.gpa, 1); - section.writeOperand(spec.IdRef, result.resultId()); + section.writeOperand(spec.Id, result.resultId()); }, .string => |offset| { const text = std.mem.sliceTo(self.inst.string_bytes.items[offset..], 0); @@ -558,7 +557,7 @@ fn resolveRef(self: *Assembler, ref: AsmValue.Ref) !AsmValue { } } -fn resolveRefId(self: *Assembler, ref: AsmValue.Ref) !IdRef { +fn resolveRefId(self: *Assembler, ref: AsmValue.Ref) !Id { const value = try self.resolveRef(ref); return value.resultId(); } @@ -600,7 +599,7 @@ fn parseInstruction(self: *Assembler) !void { const expected_operands = inst.operands; // This is a loop because the result-id is not always the first operand. const requires_lhs_result = for (expected_operands) |op| { - if (op.kind == .IdResult) break true; + if (op.kind == .id_result) break true; } else false; if (requires_lhs_result and maybe_lhs_result == null) { @@ -614,7 +613,7 @@ fn parseInstruction(self: *Assembler) !void { } for (expected_operands) |operand| { - if (operand.kind == .IdResult) { + if (operand.kind == .id_result) { try self.inst.operands.append(self.gpa, .{ .result_id = maybe_lhs_result.? }); continue; } @@ -646,11 +645,11 @@ fn parseOperand(self: *Assembler, kind: spec.OperandKind) Error!void { .value_enum => try self.parseValueEnum(kind), .id => try self.parseRefId(), else => switch (kind) { - .LiteralInteger => try self.parseLiteralInteger(), - .LiteralString => try self.parseString(), - .LiteralContextDependentNumber => try self.parseContextDependentNumber(), - .LiteralExtInstInteger => try self.parseLiteralExtInstInteger(), - .PairIdRefIdRef => try self.parsePhiSource(), + .literal_integer => try self.parseLiteralInteger(), + .literal_string => try self.parseString(), + .literal_context_dependent_number => try self.parseContextDependentNumber(), + .literal_ext_inst_integer => try self.parseLiteralExtInstInteger(), + .pair_id_ref_id_ref => try self.parsePhiSource(), else => return self.todo("parse operand of type {s}", .{@tagName(kind)}), }, } diff --git a/src/codegen/spirv/Module.zig b/src/codegen/spirv/Module.zig index 0b2f1aaab3ef..ffcff0eab444 100644 --- a/src/codegen/spirv/Module.zig +++ b/src/codegen/spirv/Module.zig @@ -15,9 +15,7 @@ const Wyhash = std.hash.Wyhash; const spec = @import("spec.zig"); const Word = spec.Word; -const IdRef = spec.IdRef; -const IdResult = spec.IdResult; -const IdResultType = spec.IdResultType; +const Id = spec.Id; const Section = @import("Section.zig"); @@ -82,7 +80,7 @@ pub const Decl = struct { /// - For `func`, this is the result-id of the associated OpFunction instruction. /// - For `global`, this is the result-id of the associated OpVariable instruction. /// - For `invocation_global`, this is the result-id of the associated InvocationGlobal instruction. - result_id: IdRef, + result_id: Id, /// The offset of the first dependency of this decl in the `decl_deps` array. begin_dep: u32, /// The past-end offset of the dependencies of this decl in the `decl_deps` array. @@ -150,7 +148,7 @@ sections: struct { next_result_id: Word, /// Cache for results of OpString instructions. -strings: std.StringArrayHashMapUnmanaged(IdRef) = .empty, +strings: std.StringArrayHashMapUnmanaged(Id) = .empty, /// Some types shouldn't be emitted more than one time, but cannot be caught by /// the `intern_map` during codegen. Sometimes, IDs are compared to check if @@ -161,20 +159,20 @@ strings: std.StringArrayHashMapUnmanaged(IdRef) = .empty, /// Additionally, this is used for other values which can be cached, for example, /// built-in variables. cache: struct { - bool_type: ?IdRef = null, - void_type: ?IdRef = null, - int_types: std.AutoHashMapUnmanaged(std.builtin.Type.Int, IdRef) = .empty, - float_types: std.AutoHashMapUnmanaged(std.builtin.Type.Float, IdRef) = .empty, - vector_types: std.AutoHashMapUnmanaged(struct { IdRef, u32 }, IdRef) = .empty, - array_types: std.AutoHashMapUnmanaged(struct { IdRef, IdRef }, IdRef) = .empty, + bool_type: ?Id = null, + void_type: ?Id = null, + int_types: std.AutoHashMapUnmanaged(std.builtin.Type.Int, Id) = .empty, + float_types: std.AutoHashMapUnmanaged(std.builtin.Type.Float, Id) = .empty, + vector_types: std.AutoHashMapUnmanaged(struct { Id, u32 }, Id) = .empty, + array_types: std.AutoHashMapUnmanaged(struct { Id, Id }, Id) = .empty, capabilities: std.AutoHashMapUnmanaged(spec.Capability, void) = .empty, extensions: std.StringHashMapUnmanaged(void) = .empty, - extended_instruction_set: std.AutoHashMapUnmanaged(spec.InstructionSet, IdRef) = .empty, - decorations: std.AutoHashMapUnmanaged(struct { IdRef, spec.Decoration }, void) = .empty, - builtins: std.AutoHashMapUnmanaged(struct { IdRef, spec.BuiltIn }, Decl.Index) = .empty, + extended_instruction_set: std.AutoHashMapUnmanaged(spec.InstructionSet, Id) = .empty, + decorations: std.AutoHashMapUnmanaged(struct { Id, spec.Decoration }, void) = .empty, + builtins: std.AutoHashMapUnmanaged(struct { Id, spec.BuiltIn }, Decl.Index) = .empty, - bool_const: [2]?IdRef = .{ null, null }, + bool_const: [2]?Id = .{ null, null }, } = .{}, /// Set of Decls, referred to by Decl.Index. @@ -185,7 +183,7 @@ decls: std.ArrayListUnmanaged(Decl) = .empty, decl_deps: std.ArrayListUnmanaged(Decl.Index) = .empty, /// The list of entry points that should be exported from this module. -entry_points: std.AutoArrayHashMapUnmanaged(IdRef, EntryPoint) = .empty, +entry_points: std.AutoArrayHashMapUnmanaged(Id, EntryPoint) = .empty, pub fn init(gpa: Allocator, target: *const std.Target) Module { const version_minor: u8 = blk: { @@ -245,7 +243,7 @@ pub const IdRange = struct { base: u32, len: u32, - pub fn at(range: IdRange, i: usize) IdResult { + pub fn at(range: IdRange, i: usize) Id { assert(i < range.len); return @enumFromInt(range.base + i); } @@ -259,7 +257,7 @@ pub fn allocIds(self: *Module, n: u32) IdRange { }; } -pub fn allocId(self: *Module) IdResult { +pub fn allocId(self: *Module) Id { return self.allocIds(1).at(0); } @@ -275,7 +273,7 @@ fn addEntryPointDeps( self: *Module, decl_index: Decl.Index, seen: *std.DynamicBitSetUnmanaged, - interface: *std.ArrayList(IdRef), + interface: *std.ArrayList(Id), ) !void { const decl = self.declPtr(decl_index); const deps = self.decl_deps.items[decl.begin_dep..decl.end_dep]; @@ -299,7 +297,7 @@ fn entryPoints(self: *Module) !Section { var entry_points = Section{}; errdefer entry_points.deinit(self.gpa); - var interface = std.ArrayList(IdRef).init(self.gpa); + var interface = std.ArrayList(Id).init(self.gpa); defer interface.deinit(); var seen = try std.DynamicBitSetUnmanaged.initEmpty(self.gpa, self.decls.items.len); @@ -317,12 +315,12 @@ fn entryPoints(self: *Module) !Section { .interface = interface.items, }); - if (entry_point.exec_mode == null and entry_point.exec_model == .Fragment) { + if (entry_point.exec_mode == null and entry_point.exec_model == .fragment) { switch (self.target.os.tag) { .vulkan, .opengl => |tag| { try self.sections.execution_modes.emit(self.gpa, .OpExecutionMode, .{ .entry_point = entry_point_id, - .mode = if (tag == .vulkan) .OriginUpperLeft else .OriginLowerLeft, + .mode = if (tag == .vulkan) .origin_upper_left else .origin_lower_left, }); }, .opencl => {}, @@ -338,59 +336,59 @@ pub fn finalize(self: *Module, a: Allocator) ![]Word { // Emit capabilities and extensions switch (self.target.os.tag) { .opengl => { - try self.addCapability(.Shader); - try self.addCapability(.Matrix); + try self.addCapability(.shader); + try self.addCapability(.matrix); }, .vulkan => { - try self.addCapability(.Shader); - try self.addCapability(.Matrix); + try self.addCapability(.shader); + try self.addCapability(.matrix); if (self.target.cpu.arch == .spirv64) { try self.addExtension("SPV_KHR_physical_storage_buffer"); - try self.addCapability(.PhysicalStorageBufferAddresses); + try self.addCapability(.physical_storage_buffer_addresses); } }, .opencl, .amdhsa => { - try self.addCapability(.Kernel); - try self.addCapability(.Addresses); + try self.addCapability(.kernel); + try self.addCapability(.addresses); }, else => unreachable, } - if (self.target.cpu.arch == .spirv64) try self.addCapability(.Int64); - if (self.target.cpu.has(.spirv, .int64)) try self.addCapability(.Int64); - if (self.target.cpu.has(.spirv, .float16)) try self.addCapability(.Float16); - if (self.target.cpu.has(.spirv, .float64)) try self.addCapability(.Float64); - if (self.target.cpu.has(.spirv, .generic_pointer)) try self.addCapability(.GenericPointer); - if (self.target.cpu.has(.spirv, .vector16)) try self.addCapability(.Vector16); + if (self.target.cpu.arch == .spirv64) try self.addCapability(.int64); + if (self.target.cpu.has(.spirv, .int64)) try self.addCapability(.int64); + if (self.target.cpu.has(.spirv, .float16)) try self.addCapability(.float16); + if (self.target.cpu.has(.spirv, .float64)) try self.addCapability(.float64); + if (self.target.cpu.has(.spirv, .generic_pointer)) try self.addCapability(.generic_pointer); + if (self.target.cpu.has(.spirv, .vector16)) try self.addCapability(.vector16); if (self.target.cpu.has(.spirv, .storage_push_constant16)) { try self.addExtension("SPV_KHR_16bit_storage"); - try self.addCapability(.StoragePushConstant16); + try self.addCapability(.storage_push_constant16); } if (self.target.cpu.has(.spirv, .arbitrary_precision_integers)) { try self.addExtension("SPV_INTEL_arbitrary_precision_integers"); - try self.addCapability(.ArbitraryPrecisionIntegersINTEL); + try self.addCapability(.arbitrary_precision_integers_intel); } if (self.target.cpu.has(.spirv, .variable_pointers)) { try self.addExtension("SPV_KHR_variable_pointers"); - try self.addCapability(.VariablePointersStorageBuffer); - try self.addCapability(.VariablePointers); + try self.addCapability(.variable_pointers_storage_buffer); + try self.addCapability(.variable_pointers); } // These are well supported - try self.addCapability(.Int8); - try self.addCapability(.Int16); + try self.addCapability(.int8); + try self.addCapability(.int16); // Emit memory model const addressing_model: spec.AddressingModel = switch (self.target.os.tag) { - .opengl => .Logical, - .vulkan => if (self.target.cpu.arch == .spirv32) .Logical else .PhysicalStorageBuffer64, - .opencl => if (self.target.cpu.arch == .spirv32) .Physical32 else .Physical64, - .amdhsa => .Physical64, + .opengl => .logical, + .vulkan => if (self.target.cpu.arch == .spirv32) .logical else .physical_storage_buffer64, + .opencl => if (self.target.cpu.arch == .spirv32) .physical32 else .physical64, + .amdhsa => .physical64, else => unreachable, }; try self.sections.memory_model.emit(self.gpa, .OpMemoryModel, .{ .addressing_model = addressing_model, .memory_model = switch (self.target.os.tag) { - .opencl => .OpenCL, - .vulkan, .opengl => .GLSL450, + .opencl => .open_cl, + .vulkan, .opengl => .glsl450, else => unreachable, }, }); @@ -411,7 +409,7 @@ pub fn finalize(self: *Module, a: Allocator) ![]Word { var source = Section{}; defer source.deinit(self.gpa); try self.sections.debug_strings.emit(self.gpa, .OpSource, .{ - .source_language = .Zig, + .source_language = .zig, .version = 0, // We cannot emit these because the Khronos translator does not parse this instruction // correctly. @@ -473,7 +471,7 @@ pub fn addExtension(self: *Module, ext: []const u8) !void { } /// Imports or returns the existing id of an extended instruction set -pub fn importInstructionSet(self: *Module, set: spec.InstructionSet) !IdRef { +pub fn importInstructionSet(self: *Module, set: spec.InstructionSet) !Id { assert(set != .core); const gop = try self.cache.extended_instruction_set.getOrPut(self.gpa, set); @@ -490,7 +488,7 @@ pub fn importInstructionSet(self: *Module, set: spec.InstructionSet) !IdRef { } /// Fetch the result-id of an instruction corresponding to a string. -pub fn resolveString(self: *Module, string: []const u8) !IdRef { +pub fn resolveString(self: *Module, string: []const u8) !Id { if (self.strings.get(string)) |id| { return id; } @@ -506,7 +504,7 @@ pub fn resolveString(self: *Module, string: []const u8) !IdRef { return id; } -pub fn structType(self: *Module, result_id: IdResult, types: []const IdRef, maybe_names: ?[]const []const u8) !void { +pub fn structType(self: *Module, result_id: Id, types: []const Id, maybe_names: ?[]const []const u8) !void { try self.sections.types_globals_constants.emit(self.gpa, .OpTypeStruct, .{ .id_result = result_id, .id_ref = types, @@ -520,7 +518,7 @@ pub fn structType(self: *Module, result_id: IdResult, types: []const IdRef, mayb } } -pub fn boolType(self: *Module) !IdRef { +pub fn boolType(self: *Module) !Id { if (self.cache.bool_type) |id| return id; const result_id = self.allocId(); @@ -531,7 +529,7 @@ pub fn boolType(self: *Module) !IdRef { return result_id; } -pub fn voidType(self: *Module) !IdRef { +pub fn voidType(self: *Module) !Id { if (self.cache.void_type) |id| return id; const result_id = self.allocId(); @@ -543,7 +541,7 @@ pub fn voidType(self: *Module) !IdRef { return result_id; } -pub fn intType(self: *Module, signedness: std.builtin.Signedness, bits: u16) !IdRef { +pub fn intType(self: *Module, signedness: std.builtin.Signedness, bits: u16) !Id { assert(bits > 0); const entry = try self.cache.int_types.getOrPut(self.gpa, .{ .signedness = signedness, .bits = bits }); if (!entry.found_existing) { @@ -566,7 +564,7 @@ pub fn intType(self: *Module, signedness: std.builtin.Signedness, bits: u16) !Id return entry.value_ptr.*; } -pub fn floatType(self: *Module, bits: u16) !IdRef { +pub fn floatType(self: *Module, bits: u16) !Id { assert(bits > 0); const entry = try self.cache.float_types.getOrPut(self.gpa, .{ .bits = bits }); if (!entry.found_existing) { @@ -581,7 +579,7 @@ pub fn floatType(self: *Module, bits: u16) !IdRef { return entry.value_ptr.*; } -pub fn vectorType(self: *Module, len: u32, child_ty_id: IdRef) !IdRef { +pub fn vectorType(self: *Module, len: u32, child_ty_id: Id) !Id { const entry = try self.cache.vector_types.getOrPut(self.gpa, .{ child_ty_id, len }); if (!entry.found_existing) { const result_id = self.allocId(); @@ -595,7 +593,7 @@ pub fn vectorType(self: *Module, len: u32, child_ty_id: IdRef) !IdRef { return entry.value_ptr.*; } -pub fn arrayType(self: *Module, len_id: IdRef, child_ty_id: IdRef) !IdRef { +pub fn arrayType(self: *Module, len_id: Id, child_ty_id: Id) !Id { const entry = try self.cache.array_types.getOrPut(self.gpa, .{ child_ty_id, len_id }); if (!entry.found_existing) { const result_id = self.allocId(); @@ -609,7 +607,7 @@ pub fn arrayType(self: *Module, len_id: IdRef, child_ty_id: IdRef) !IdRef { return entry.value_ptr.*; } -pub fn functionType(self: *Module, return_ty_id: IdRef, param_type_ids: []const IdRef) !IdRef { +pub fn functionType(self: *Module, return_ty_id: Id, param_type_ids: []const Id) !Id { const result_id = self.allocId(); try self.sections.types_globals_constants.emit(self.gpa, .OpTypeFunction, .{ .id_result = result_id, @@ -619,7 +617,7 @@ pub fn functionType(self: *Module, return_ty_id: IdRef, param_type_ids: []const return result_id; } -pub fn constant(self: *Module, result_ty_id: IdRef, value: spec.LiteralContextDependentNumber) !IdRef { +pub fn constant(self: *Module, result_ty_id: Id, value: spec.LiteralContextDependentNumber) !Id { const result_id = self.allocId(); const section = &self.sections.types_globals_constants; try section.emit(self.gpa, .OpConstant, .{ @@ -630,7 +628,7 @@ pub fn constant(self: *Module, result_ty_id: IdRef, value: spec.LiteralContextDe return result_id; } -pub fn constBool(self: *Module, value: bool) !IdRef { +pub fn constBool(self: *Module, value: bool) !Id { if (self.cache.bool_const[@intFromBool(value)]) |b| return b; const result_ty_id = try self.boolType(); @@ -653,7 +651,7 @@ pub fn constBool(self: *Module, value: bool) !IdRef { /// Return a pointer to a builtin variable. `result_ty_id` must be a **pointer** /// with storage class `.Input`. -pub fn builtin(self: *Module, result_ty_id: IdRef, spirv_builtin: spec.BuiltIn) !Decl.Index { +pub fn builtin(self: *Module, result_ty_id: Id, spirv_builtin: spec.BuiltIn) !Decl.Index { const entry = try self.cache.builtins.getOrPut(self.gpa, .{ result_ty_id, spirv_builtin }); if (!entry.found_existing) { const decl_index = try self.allocDecl(.global); @@ -662,15 +660,15 @@ pub fn builtin(self: *Module, result_ty_id: IdRef, spirv_builtin: spec.BuiltIn) try self.sections.types_globals_constants.emit(self.gpa, .OpVariable, .{ .id_result_type = result_ty_id, .id_result = result_id, - .storage_class = .Input, + .storage_class = .input, }); - try self.decorate(result_id, .{ .BuiltIn = .{ .built_in = spirv_builtin } }); + try self.decorate(result_id, .{ .built_in = .{ .built_in = spirv_builtin } }); try self.declareDeclDeps(decl_index, &.{}); } return entry.value_ptr.*; } -pub fn constUndef(self: *Module, ty_id: IdRef) !IdRef { +pub fn constUndef(self: *Module, ty_id: Id) !Id { const result_id = self.allocId(); try self.sections.types_globals_constants.emit(self.gpa, .OpUndef, .{ .id_result_type = ty_id, @@ -679,7 +677,7 @@ pub fn constUndef(self: *Module, ty_id: IdRef) !IdRef { return result_id; } -pub fn constNull(self: *Module, ty_id: IdRef) !IdRef { +pub fn constNull(self: *Module, ty_id: Id) !Id { const result_id = self.allocId(); try self.sections.types_globals_constants.emit(self.gpa, .OpConstantNull, .{ .id_result_type = ty_id, @@ -691,7 +689,7 @@ pub fn constNull(self: *Module, ty_id: IdRef) !IdRef { /// Decorate a result-id. pub fn decorate( self: *Module, - target: IdRef, + target: Id, decoration: spec.Decoration.Extended, ) !void { const entry = try self.cache.decorations.getOrPut(self.gpa, .{ target, decoration }); @@ -707,7 +705,7 @@ pub fn decorate( /// We really don't have to and shouldn't need to cache this. pub fn decorateMember( self: *Module, - structure_type: IdRef, + structure_type: Id, member: u32, decoration: spec.Decoration.Extended, ) !void { @@ -762,20 +760,20 @@ pub fn declareEntryPoint( if (!gop.found_existing) gop.value_ptr.exec_mode = exec_mode; } -pub fn debugName(self: *Module, target: IdResult, name: []const u8) !void { +pub fn debugName(self: *Module, target: Id, name: []const u8) !void { try self.sections.debug_names.emit(self.gpa, .OpName, .{ .target = target, .name = name, }); } -pub fn debugNameFmt(self: *Module, target: IdResult, comptime fmt: []const u8, args: anytype) !void { +pub fn debugNameFmt(self: *Module, target: Id, comptime fmt: []const u8, args: anytype) !void { const name = try std.fmt.allocPrint(self.gpa, fmt, args); defer self.gpa.free(name); try self.debugName(target, name); } -pub fn memberDebugName(self: *Module, target: IdResult, member: u32, name: []const u8) !void { +pub fn memberDebugName(self: *Module, target: Id, member: u32, name: []const u8) !void { try self.sections.debug_names.emit(self.gpa, .OpMemberName, .{ .type = target, .member = member, diff --git a/src/codegen/spirv/Section.zig b/src/codegen/spirv/Section.zig index 5c2a5fde62d0..53fbe66764c0 100644 --- a/src/codegen/spirv/Section.zig +++ b/src/codegen/spirv/Section.zig @@ -79,7 +79,7 @@ pub fn emit( pub fn emitBranch( section: *Section, allocator: Allocator, - target_label: spec.IdRef, + target_label: spec.Id, ) !void { try section.emit(allocator, .OpBranch, .{ .target_label = target_label, @@ -94,8 +94,8 @@ pub fn emitSpecConstantOp( ) !void { const word_count = operandsSize(opcode.Operands(), operands); try section.emitRaw(allocator, .OpSpecConstantOp, 1 + word_count); - section.writeOperand(spec.IdRef, operands.id_result_type); - section.writeOperand(spec.IdRef, operands.id_result); + section.writeOperand(spec.Id, operands.id_result_type); + section.writeOperand(spec.Id, operands.id_result); section.writeOperand(Opcode, opcode); const fields = @typeInfo(opcode.Operands()).@"struct".fields; @@ -134,7 +134,7 @@ fn writeOperands(section: *Section, comptime Operands: type, operands: Operands) pub fn writeOperand(section: *Section, comptime Operand: type, operand: Operand) void { switch (Operand) { - spec.IdResult => section.writeWord(@intFromEnum(operand)), + spec.Id => section.writeWord(@intFromEnum(operand)), spec.LiteralInteger => section.writeWord(operand), @@ -266,7 +266,7 @@ fn operandsSize(comptime Operands: type, operands: Operands) usize { fn operandSize(comptime Operand: type, operand: Operand) usize { return switch (Operand) { - spec.IdResult, + spec.Id, spec.LiteralInteger, spec.LiteralExtInstInteger, => 1, diff --git a/src/codegen/spirv/extinst.zig.grammar.json b/src/codegen/spirv/extinst.zig.grammar.json index 70c290097e38..ea8c5f7729ea 100644 --- a/src/codegen/spirv/extinst.zig.grammar.json +++ b/src/codegen/spirv/extinst.zig.grammar.json @@ -1,13 +1,11 @@ { - "version": 0, - "revision": 0, - "instructions": [ - { - "opname": "InvocationGlobal", - "opcode": 0, - "operands": [ - { "kind": "IdRef", "name": "initializer function" } - ] - } - ] + "version": 0, + "revision": 0, + "instructions": [ + { + "opname": "InvocationGlobal", + "opcode": 0, + "operands": [{ "kind": "IdRef", "name": "initializer function" }] + } + ] } diff --git a/src/codegen/spirv/spec.zig b/src/codegen/spirv/spec.zig index 82ec05ebbaec..a2b18d4db080 100644 --- a/src/codegen/spirv/spec.zig +++ b/src/codegen/spirv/spec.zig @@ -1,7 +1,6 @@ //! This file is auto-generated by tools/gen_spirv_spec.zig. const std = @import("std"); -const assert = std.debug.assert; pub const Version = packed struct(Word) { padding: u8 = 0, @@ -15,22 +14,17 @@ pub const Version = packed struct(Word) { }; pub const Word = u32; -pub const IdResult = enum(Word) { +pub const Id = enum(Word) { none, _, - pub fn format(self: IdResult, writer: *std.io.Writer) std.io.Writer.Error!void { + pub fn format(self: Id, writer: *std.io.Writer) std.io.Writer.Error!void { switch (self) { .none => try writer.writeAll("(none)"), else => try writer.print("%{d}", .{@intFromEnum(self)}), } } }; -pub const IdResultType = IdResult; -pub const IdRef = IdResult; - -pub const IdMemorySemantics = IdRef; -pub const IdScope = IdRef; pub const LiteralInteger = Word; pub const LiteralFloat = Word; @@ -45,9 +39,9 @@ pub const LiteralContextDependentNumber = union(enum) { }; pub const LiteralExtInstInteger = struct { inst: Word }; pub const LiteralSpecConstantOpInteger = struct { opcode: Opcode }; -pub const PairLiteralIntegerIdRef = struct { value: LiteralInteger, label: IdRef }; -pub const PairIdRefLiteralInteger = struct { target: IdRef, member: LiteralInteger }; -pub const PairIdRefIdRef = [2]IdRef; +pub const PairLiteralIntegerIdRef = struct { value: LiteralInteger, label: Id }; +pub const PairIdRefLiteralInteger = struct { target: Id, member: LiteralInteger }; +pub const PairIdRefIdRef = [2]Id; pub const Quantifier = enum { required, @@ -81,1499 +75,1564 @@ pub const Instruction = struct { }; pub const zig_generator_id: Word = 41; -pub const version = Version{ .major = 1, .minor = 6, .patch = 1 }; +pub const version: Version = .{ .major = 1, .minor = 6, .patch = 4 }; pub const magic_number: Word = 0x07230203; pub const Class = enum { - Miscellaneous, - Debug, - Extension, - ModeSetting, - TypeDeclaration, - ConstantCreation, - Function, - Memory, - Annotation, - Composite, - Image, - Conversion, - Arithmetic, - RelationalAndLogical, - Bit, - Derivative, - Primitive, - Barrier, - Atomic, - ControlFlow, - Group, - Pipe, - DeviceSideEnqueue, - NonUniform, - Reserved, + miscellaneous, + debug, + extension, + mode_setting, + type_declaration, + constant_creation, + function, + memory, + annotation, + composite, + image, + conversion, + arithmetic, + relational_and_logical, + bit, + derivative, + primitive, + barrier, + atomic, + control_flow, + group, + pipe, + device_side_enqueue, + non_uniform, + tensor, + graph, + reserved, }; pub const OperandKind = enum { - Opcode, - ImageOperands, - FPFastMathMode, - SelectionControl, - LoopControl, - FunctionControl, - MemorySemantics, - MemoryAccess, - KernelProfilingInfo, - RayFlags, - FragmentShadingRate, - RawAccessChainOperands, - SourceLanguage, - ExecutionModel, - AddressingModel, - MemoryModel, - ExecutionMode, - StorageClass, - Dim, - SamplerAddressingMode, - SamplerFilterMode, - ImageFormat, - ImageChannelOrder, - ImageChannelDataType, - FPRoundingMode, - FPDenormMode, - QuantizationModes, - FPOperationMode, - OverflowModes, - LinkageType, - AccessQualifier, - HostAccessQualifier, - FunctionParameterAttribute, - Decoration, - BuiltIn, - Scope, - GroupOperation, - KernelEnqueueFlags, - Capability, - RayQueryIntersection, - RayQueryCommittedIntersectionType, - RayQueryCandidateIntersectionType, - PackedVectorFormat, - CooperativeMatrixOperands, - CooperativeMatrixLayout, - CooperativeMatrixUse, - InitializationModeQualifier, - LoadCacheControl, - StoreCacheControl, - NamedMaximumNumberOfRegisters, - IdResultType, - IdResult, - IdMemorySemantics, - IdScope, - IdRef, - LiteralInteger, - LiteralString, - LiteralFloat, - LiteralContextDependentNumber, - LiteralExtInstInteger, - LiteralSpecConstantOpInteger, - PairLiteralIntegerIdRef, - PairIdRefLiteralInteger, - PairIdRefIdRef, - @"OpenCL.DebugInfo.100.DebugInfoFlags", - @"OpenCL.DebugInfo.100.DebugBaseTypeAttributeEncoding", - @"OpenCL.DebugInfo.100.DebugCompositeType", - @"OpenCL.DebugInfo.100.DebugTypeQualifier", - @"OpenCL.DebugInfo.100.DebugOperation", - @"OpenCL.DebugInfo.100.DebugImportedEntity", - @"NonSemantic.Shader.DebugInfo.100.DebugInfoFlags", - @"NonSemantic.Shader.DebugInfo.100.BuildIdentifierFlags", - @"NonSemantic.Shader.DebugInfo.100.DebugBaseTypeAttributeEncoding", - @"NonSemantic.Shader.DebugInfo.100.DebugCompositeType", - @"NonSemantic.Shader.DebugInfo.100.DebugTypeQualifier", - @"NonSemantic.Shader.DebugInfo.100.DebugOperation", - @"NonSemantic.Shader.DebugInfo.100.DebugImportedEntity", - @"NonSemantic.ClspvReflection.6.KernelPropertyFlags", - @"DebugInfo.DebugInfoFlags", - @"DebugInfo.DebugBaseTypeAttributeEncoding", - @"DebugInfo.DebugCompositeType", - @"DebugInfo.DebugTypeQualifier", - @"DebugInfo.DebugOperation", + opcode, + image_operands, + fp_fast_math_mode, + selection_control, + loop_control, + function_control, + memory_semantics, + memory_access, + kernel_profiling_info, + ray_flags, + fragment_shading_rate, + raw_access_chain_operands, + source_language, + execution_model, + addressing_model, + memory_model, + execution_mode, + storage_class, + dim, + sampler_addressing_mode, + sampler_filter_mode, + image_format, + image_channel_order, + image_channel_data_type, + fp_rounding_mode, + fp_denorm_mode, + quantization_modes, + fp_operation_mode, + overflow_modes, + linkage_type, + access_qualifier, + host_access_qualifier, + function_parameter_attribute, + decoration, + built_in, + scope, + group_operation, + kernel_enqueue_flags, + capability, + ray_query_intersection, + ray_query_committed_intersection_type, + ray_query_candidate_intersection_type, + packed_vector_format, + cooperative_matrix_operands, + cooperative_matrix_layout, + cooperative_matrix_use, + cooperative_matrix_reduce, + tensor_clamp_mode, + tensor_addressing_operands, + initialization_mode_qualifier, + load_cache_control, + store_cache_control, + named_maximum_number_of_registers, + matrix_multiply_accumulate_operands, + fp_encoding, + cooperative_vector_matrix_layout, + component_type, + id_result_type, + id_result, + id_memory_semantics, + id_scope, + id_ref, + literal_integer, + literal_string, + literal_float, + literal_context_dependent_number, + literal_ext_inst_integer, + literal_spec_constant_op_integer, + pair_literal_integer_id_ref, + pair_id_ref_literal_integer, + pair_id_ref_id_ref, + tensor_operands, + debug_info_debug_info_flags, + debug_info_debug_base_type_attribute_encoding, + debug_info_debug_composite_type, + debug_info_debug_type_qualifier, + debug_info_debug_operation, + open_cl_debug_info_100_debug_info_flags, + open_cl_debug_info_100_debug_base_type_attribute_encoding, + open_cl_debug_info_100_debug_composite_type, + open_cl_debug_info_100_debug_type_qualifier, + open_cl_debug_info_100_debug_operation, + open_cl_debug_info_100_debug_imported_entity, + non_semantic_clspv_reflection_6_kernel_property_flags, + non_semantic_shader_debug_info_100_debug_info_flags, + non_semantic_shader_debug_info_100_build_identifier_flags, + non_semantic_shader_debug_info_100_debug_base_type_attribute_encoding, + non_semantic_shader_debug_info_100_debug_composite_type, + non_semantic_shader_debug_info_100_debug_type_qualifier, + non_semantic_shader_debug_info_100_debug_operation, + non_semantic_shader_debug_info_100_debug_imported_entity, pub fn category(self: OperandKind) OperandCategory { return switch (self) { - .Opcode => .literal, - .ImageOperands => .bit_enum, - .FPFastMathMode => .bit_enum, - .SelectionControl => .bit_enum, - .LoopControl => .bit_enum, - .FunctionControl => .bit_enum, - .MemorySemantics => .bit_enum, - .MemoryAccess => .bit_enum, - .KernelProfilingInfo => .bit_enum, - .RayFlags => .bit_enum, - .FragmentShadingRate => .bit_enum, - .RawAccessChainOperands => .bit_enum, - .SourceLanguage => .value_enum, - .ExecutionModel => .value_enum, - .AddressingModel => .value_enum, - .MemoryModel => .value_enum, - .ExecutionMode => .value_enum, - .StorageClass => .value_enum, - .Dim => .value_enum, - .SamplerAddressingMode => .value_enum, - .SamplerFilterMode => .value_enum, - .ImageFormat => .value_enum, - .ImageChannelOrder => .value_enum, - .ImageChannelDataType => .value_enum, - .FPRoundingMode => .value_enum, - .FPDenormMode => .value_enum, - .QuantizationModes => .value_enum, - .FPOperationMode => .value_enum, - .OverflowModes => .value_enum, - .LinkageType => .value_enum, - .AccessQualifier => .value_enum, - .HostAccessQualifier => .value_enum, - .FunctionParameterAttribute => .value_enum, - .Decoration => .value_enum, - .BuiltIn => .value_enum, - .Scope => .value_enum, - .GroupOperation => .value_enum, - .KernelEnqueueFlags => .value_enum, - .Capability => .value_enum, - .RayQueryIntersection => .value_enum, - .RayQueryCommittedIntersectionType => .value_enum, - .RayQueryCandidateIntersectionType => .value_enum, - .PackedVectorFormat => .value_enum, - .CooperativeMatrixOperands => .bit_enum, - .CooperativeMatrixLayout => .value_enum, - .CooperativeMatrixUse => .value_enum, - .InitializationModeQualifier => .value_enum, - .LoadCacheControl => .value_enum, - .StoreCacheControl => .value_enum, - .NamedMaximumNumberOfRegisters => .value_enum, - .IdResultType => .id, - .IdResult => .id, - .IdMemorySemantics => .id, - .IdScope => .id, - .IdRef => .id, - .LiteralInteger => .literal, - .LiteralString => .literal, - .LiteralFloat => .literal, - .LiteralContextDependentNumber => .literal, - .LiteralExtInstInteger => .literal, - .LiteralSpecConstantOpInteger => .literal, - .PairLiteralIntegerIdRef => .composite, - .PairIdRefLiteralInteger => .composite, - .PairIdRefIdRef => .composite, - .@"OpenCL.DebugInfo.100.DebugInfoFlags" => .bit_enum, - .@"OpenCL.DebugInfo.100.DebugBaseTypeAttributeEncoding" => .value_enum, - .@"OpenCL.DebugInfo.100.DebugCompositeType" => .value_enum, - .@"OpenCL.DebugInfo.100.DebugTypeQualifier" => .value_enum, - .@"OpenCL.DebugInfo.100.DebugOperation" => .value_enum, - .@"OpenCL.DebugInfo.100.DebugImportedEntity" => .value_enum, - .@"NonSemantic.Shader.DebugInfo.100.DebugInfoFlags" => .bit_enum, - .@"NonSemantic.Shader.DebugInfo.100.BuildIdentifierFlags" => .bit_enum, - .@"NonSemantic.Shader.DebugInfo.100.DebugBaseTypeAttributeEncoding" => .value_enum, - .@"NonSemantic.Shader.DebugInfo.100.DebugCompositeType" => .value_enum, - .@"NonSemantic.Shader.DebugInfo.100.DebugTypeQualifier" => .value_enum, - .@"NonSemantic.Shader.DebugInfo.100.DebugOperation" => .value_enum, - .@"NonSemantic.Shader.DebugInfo.100.DebugImportedEntity" => .value_enum, - .@"NonSemantic.ClspvReflection.6.KernelPropertyFlags" => .bit_enum, - .@"DebugInfo.DebugInfoFlags" => .bit_enum, - .@"DebugInfo.DebugBaseTypeAttributeEncoding" => .value_enum, - .@"DebugInfo.DebugCompositeType" => .value_enum, - .@"DebugInfo.DebugTypeQualifier" => .value_enum, - .@"DebugInfo.DebugOperation" => .value_enum, + .opcode => .literal, + .image_operands => .bit_enum, + .fp_fast_math_mode => .bit_enum, + .selection_control => .bit_enum, + .loop_control => .bit_enum, + .function_control => .bit_enum, + .memory_semantics => .bit_enum, + .memory_access => .bit_enum, + .kernel_profiling_info => .bit_enum, + .ray_flags => .bit_enum, + .fragment_shading_rate => .bit_enum, + .raw_access_chain_operands => .bit_enum, + .source_language => .value_enum, + .execution_model => .value_enum, + .addressing_model => .value_enum, + .memory_model => .value_enum, + .execution_mode => .value_enum, + .storage_class => .value_enum, + .dim => .value_enum, + .sampler_addressing_mode => .value_enum, + .sampler_filter_mode => .value_enum, + .image_format => .value_enum, + .image_channel_order => .value_enum, + .image_channel_data_type => .value_enum, + .fp_rounding_mode => .value_enum, + .fp_denorm_mode => .value_enum, + .quantization_modes => .value_enum, + .fp_operation_mode => .value_enum, + .overflow_modes => .value_enum, + .linkage_type => .value_enum, + .access_qualifier => .value_enum, + .host_access_qualifier => .value_enum, + .function_parameter_attribute => .value_enum, + .decoration => .value_enum, + .built_in => .value_enum, + .scope => .value_enum, + .group_operation => .value_enum, + .kernel_enqueue_flags => .value_enum, + .capability => .value_enum, + .ray_query_intersection => .value_enum, + .ray_query_committed_intersection_type => .value_enum, + .ray_query_candidate_intersection_type => .value_enum, + .packed_vector_format => .value_enum, + .cooperative_matrix_operands => .bit_enum, + .cooperative_matrix_layout => .value_enum, + .cooperative_matrix_use => .value_enum, + .cooperative_matrix_reduce => .bit_enum, + .tensor_clamp_mode => .value_enum, + .tensor_addressing_operands => .bit_enum, + .initialization_mode_qualifier => .value_enum, + .load_cache_control => .value_enum, + .store_cache_control => .value_enum, + .named_maximum_number_of_registers => .value_enum, + .matrix_multiply_accumulate_operands => .bit_enum, + .fp_encoding => .value_enum, + .cooperative_vector_matrix_layout => .value_enum, + .component_type => .value_enum, + .id_result_type => .id, + .id_result => .id, + .id_memory_semantics => .id, + .id_scope => .id, + .id_ref => .id, + .literal_integer => .literal, + .literal_string => .literal, + .literal_float => .literal, + .literal_context_dependent_number => .literal, + .literal_ext_inst_integer => .literal, + .literal_spec_constant_op_integer => .literal, + .pair_literal_integer_id_ref => .composite, + .pair_id_ref_literal_integer => .composite, + .pair_id_ref_id_ref => .composite, + .tensor_operands => .bit_enum, + .debug_info_debug_info_flags => .bit_enum, + .debug_info_debug_base_type_attribute_encoding => .value_enum, + .debug_info_debug_composite_type => .value_enum, + .debug_info_debug_type_qualifier => .value_enum, + .debug_info_debug_operation => .value_enum, + .open_cl_debug_info_100_debug_info_flags => .bit_enum, + .open_cl_debug_info_100_debug_base_type_attribute_encoding => .value_enum, + .open_cl_debug_info_100_debug_composite_type => .value_enum, + .open_cl_debug_info_100_debug_type_qualifier => .value_enum, + .open_cl_debug_info_100_debug_operation => .value_enum, + .open_cl_debug_info_100_debug_imported_entity => .value_enum, + .non_semantic_clspv_reflection_6_kernel_property_flags => .bit_enum, + .non_semantic_shader_debug_info_100_debug_info_flags => .bit_enum, + .non_semantic_shader_debug_info_100_build_identifier_flags => .bit_enum, + .non_semantic_shader_debug_info_100_debug_base_type_attribute_encoding => .value_enum, + .non_semantic_shader_debug_info_100_debug_composite_type => .value_enum, + .non_semantic_shader_debug_info_100_debug_type_qualifier => .value_enum, + .non_semantic_shader_debug_info_100_debug_operation => .value_enum, + .non_semantic_shader_debug_info_100_debug_imported_entity => .value_enum, }; } pub fn enumerants(self: OperandKind) []const Enumerant { return switch (self) { - .Opcode => unreachable, - .ImageOperands => &[_]Enumerant{ - .{ .name = "Bias", .value = 0x0001, .parameters = &[_]OperandKind{.IdRef} }, - .{ .name = "Lod", .value = 0x0002, .parameters = &[_]OperandKind{.IdRef} }, - .{ .name = "Grad", .value = 0x0004, .parameters = &[_]OperandKind{ .IdRef, .IdRef } }, - .{ .name = "ConstOffset", .value = 0x0008, .parameters = &[_]OperandKind{.IdRef} }, - .{ .name = "Offset", .value = 0x0010, .parameters = &[_]OperandKind{.IdRef} }, - .{ .name = "ConstOffsets", .value = 0x0020, .parameters = &[_]OperandKind{.IdRef} }, - .{ .name = "Sample", .value = 0x0040, .parameters = &[_]OperandKind{.IdRef} }, - .{ .name = "MinLod", .value = 0x0080, .parameters = &[_]OperandKind{.IdRef} }, - .{ .name = "MakeTexelAvailable", .value = 0x0100, .parameters = &[_]OperandKind{.IdScope} }, - .{ .name = "MakeTexelAvailableKHR", .value = 0x0100, .parameters = &[_]OperandKind{.IdScope} }, - .{ .name = "MakeTexelVisible", .value = 0x0200, .parameters = &[_]OperandKind{.IdScope} }, - .{ .name = "MakeTexelVisibleKHR", .value = 0x0200, .parameters = &[_]OperandKind{.IdScope} }, - .{ .name = "NonPrivateTexel", .value = 0x0400, .parameters = &[_]OperandKind{} }, - .{ .name = "NonPrivateTexelKHR", .value = 0x0400, .parameters = &[_]OperandKind{} }, - .{ .name = "VolatileTexel", .value = 0x0800, .parameters = &[_]OperandKind{} }, - .{ .name = "VolatileTexelKHR", .value = 0x0800, .parameters = &[_]OperandKind{} }, - .{ .name = "SignExtend", .value = 0x1000, .parameters = &[_]OperandKind{} }, - .{ .name = "ZeroExtend", .value = 0x2000, .parameters = &[_]OperandKind{} }, - .{ .name = "Nontemporal", .value = 0x4000, .parameters = &[_]OperandKind{} }, - .{ .name = "Offsets", .value = 0x10000, .parameters = &[_]OperandKind{.IdRef} }, + .opcode => unreachable, + .image_operands => &.{ + .{ .name = "Bias", .value = 0x0001, .parameters = &.{.id_ref} }, + .{ .name = "Lod", .value = 0x0002, .parameters = &.{.id_ref} }, + .{ .name = "Grad", .value = 0x0004, .parameters = &.{ .id_ref, .id_ref } }, + .{ .name = "ConstOffset", .value = 0x0008, .parameters = &.{.id_ref} }, + .{ .name = "Offset", .value = 0x0010, .parameters = &.{.id_ref} }, + .{ .name = "ConstOffsets", .value = 0x0020, .parameters = &.{.id_ref} }, + .{ .name = "Sample", .value = 0x0040, .parameters = &.{.id_ref} }, + .{ .name = "MinLod", .value = 0x0080, .parameters = &.{.id_ref} }, + .{ .name = "MakeTexelAvailable", .value = 0x0100, .parameters = &.{.id_scope} }, + .{ .name = "MakeTexelVisible", .value = 0x0200, .parameters = &.{.id_scope} }, + .{ .name = "NonPrivateTexel", .value = 0x0400, .parameters = &.{} }, + .{ .name = "VolatileTexel", .value = 0x0800, .parameters = &.{} }, + .{ .name = "SignExtend", .value = 0x1000, .parameters = &.{} }, + .{ .name = "ZeroExtend", .value = 0x2000, .parameters = &.{} }, + .{ .name = "Nontemporal", .value = 0x4000, .parameters = &.{} }, + .{ .name = "Offsets", .value = 0x10000, .parameters = &.{.id_ref} }, + }, + .fp_fast_math_mode => &.{ + .{ .name = "NotNaN", .value = 0x0001, .parameters = &.{} }, + .{ .name = "NotInf", .value = 0x0002, .parameters = &.{} }, + .{ .name = "NSZ", .value = 0x0004, .parameters = &.{} }, + .{ .name = "AllowRecip", .value = 0x0008, .parameters = &.{} }, + .{ .name = "Fast", .value = 0x0010, .parameters = &.{} }, + .{ .name = "AllowContract", .value = 0x10000, .parameters = &.{} }, + .{ .name = "AllowReassoc", .value = 0x20000, .parameters = &.{} }, + .{ .name = "AllowTransform", .value = 0x40000, .parameters = &.{} }, + }, + .selection_control => &.{ + .{ .name = "Flatten", .value = 0x0001, .parameters = &.{} }, + .{ .name = "DontFlatten", .value = 0x0002, .parameters = &.{} }, + }, + .loop_control => &.{ + .{ .name = "Unroll", .value = 0x0001, .parameters = &.{} }, + .{ .name = "DontUnroll", .value = 0x0002, .parameters = &.{} }, + .{ .name = "DependencyInfinite", .value = 0x0004, .parameters = &.{} }, + .{ .name = "DependencyLength", .value = 0x0008, .parameters = &.{.literal_integer} }, + .{ .name = "MinIterations", .value = 0x0010, .parameters = &.{.literal_integer} }, + .{ .name = "MaxIterations", .value = 0x0020, .parameters = &.{.literal_integer} }, + .{ .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} }, + }, + .function_control => &.{ + .{ .name = "Inline", .value = 0x0001, .parameters = &.{} }, + .{ .name = "DontInline", .value = 0x0002, .parameters = &.{} }, + .{ .name = "Pure", .value = 0x0004, .parameters = &.{} }, + .{ .name = "Const", .value = 0x0008, .parameters = &.{} }, + .{ .name = "OptNoneEXT", .value = 0x10000, .parameters = &.{} }, + }, + .memory_semantics => &.{ + .{ .name = "Relaxed", .value = 0x0000, .parameters = &.{} }, + .{ .name = "Acquire", .value = 0x0002, .parameters = &.{} }, + .{ .name = "Release", .value = 0x0004, .parameters = &.{} }, + .{ .name = "AcquireRelease", .value = 0x0008, .parameters = &.{} }, + .{ .name = "SequentiallyConsistent", .value = 0x0010, .parameters = &.{} }, + .{ .name = "UniformMemory", .value = 0x0040, .parameters = &.{} }, + .{ .name = "SubgroupMemory", .value = 0x0080, .parameters = &.{} }, + .{ .name = "WorkgroupMemory", .value = 0x0100, .parameters = &.{} }, + .{ .name = "CrossWorkgroupMemory", .value = 0x0200, .parameters = &.{} }, + .{ .name = "AtomicCounterMemory", .value = 0x0400, .parameters = &.{} }, + .{ .name = "ImageMemory", .value = 0x0800, .parameters = &.{} }, + .{ .name = "OutputMemory", .value = 0x1000, .parameters = &.{} }, + .{ .name = "MakeAvailable", .value = 0x2000, .parameters = &.{} }, + .{ .name = "MakeVisible", .value = 0x4000, .parameters = &.{} }, + .{ .name = "Volatile", .value = 0x8000, .parameters = &.{} }, + }, + .memory_access => &.{ + .{ .name = "Volatile", .value = 0x0001, .parameters = &.{} }, + .{ .name = "Aligned", .value = 0x0002, .parameters = &.{.literal_integer} }, + .{ .name = "Nontemporal", .value = 0x0004, .parameters = &.{} }, + .{ .name = "MakePointerAvailable", .value = 0x0008, .parameters = &.{.id_scope} }, + .{ .name = "MakePointerVisible", .value = 0x0010, .parameters = &.{.id_scope} }, + .{ .name = "NonPrivatePointer", .value = 0x0020, .parameters = &.{} }, + .{ .name = "AliasScopeINTELMask", .value = 0x10000, .parameters = &.{.id_ref} }, + .{ .name = "NoAliasINTELMask", .value = 0x20000, .parameters = &.{.id_ref} }, }, - .FPFastMathMode => &[_]Enumerant{ - .{ .name = "NotNaN", .value = 0x0001, .parameters = &[_]OperandKind{} }, - .{ .name = "NotInf", .value = 0x0002, .parameters = &[_]OperandKind{} }, - .{ .name = "NSZ", .value = 0x0004, .parameters = &[_]OperandKind{} }, - .{ .name = "AllowRecip", .value = 0x0008, .parameters = &[_]OperandKind{} }, - .{ .name = "Fast", .value = 0x0010, .parameters = &[_]OperandKind{} }, - .{ .name = "AllowContract", .value = 0x10000, .parameters = &[_]OperandKind{} }, - .{ .name = "AllowContractFastINTEL", .value = 0x10000, .parameters = &[_]OperandKind{} }, - .{ .name = "AllowReassoc", .value = 0x20000, .parameters = &[_]OperandKind{} }, - .{ .name = "AllowReassocINTEL", .value = 0x20000, .parameters = &[_]OperandKind{} }, - .{ .name = "AllowTransform", .value = 0x40000, .parameters = &[_]OperandKind{} }, + .kernel_profiling_info => &.{ + .{ .name = "CmdExecTime", .value = 0x0001, .parameters = &.{} }, }, - .SelectionControl => &[_]Enumerant{ - .{ .name = "Flatten", .value = 0x0001, .parameters = &[_]OperandKind{} }, - .{ .name = "DontFlatten", .value = 0x0002, .parameters = &[_]OperandKind{} }, + .ray_flags => &.{ + .{ .name = "NoneKHR", .value = 0x0000, .parameters = &.{} }, + .{ .name = "OpaqueKHR", .value = 0x0001, .parameters = &.{} }, + .{ .name = "NoOpaqueKHR", .value = 0x0002, .parameters = &.{} }, + .{ .name = "TerminateOnFirstHitKHR", .value = 0x0004, .parameters = &.{} }, + .{ .name = "SkipClosestHitShaderKHR", .value = 0x0008, .parameters = &.{} }, + .{ .name = "CullBackFacingTrianglesKHR", .value = 0x0010, .parameters = &.{} }, + .{ .name = "CullFrontFacingTrianglesKHR", .value = 0x0020, .parameters = &.{} }, + .{ .name = "CullOpaqueKHR", .value = 0x0040, .parameters = &.{} }, + .{ .name = "CullNoOpaqueKHR", .value = 0x0080, .parameters = &.{} }, + .{ .name = "SkipTrianglesKHR", .value = 0x0100, .parameters = &.{} }, + .{ .name = "SkipAABBsKHR", .value = 0x0200, .parameters = &.{} }, + .{ .name = "ForceOpacityMicromap2StateEXT", .value = 0x0400, .parameters = &.{} }, }, - .LoopControl => &[_]Enumerant{ - .{ .name = "Unroll", .value = 0x0001, .parameters = &[_]OperandKind{} }, - .{ .name = "DontUnroll", .value = 0x0002, .parameters = &[_]OperandKind{} }, - .{ .name = "DependencyInfinite", .value = 0x0004, .parameters = &[_]OperandKind{} }, - .{ .name = "DependencyLength", .value = 0x0008, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "MinIterations", .value = 0x0010, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "MaxIterations", .value = 0x0020, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "IterationMultiple", .value = 0x0040, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "PeelCount", .value = 0x0080, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "PartialCount", .value = 0x0100, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "InitiationIntervalINTEL", .value = 0x10000, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "MaxConcurrencyINTEL", .value = 0x20000, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "DependencyArrayINTEL", .value = 0x40000, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "PipelineEnableINTEL", .value = 0x80000, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "LoopCoalesceINTEL", .value = 0x100000, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "MaxInterleavingINTEL", .value = 0x200000, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "SpeculatedIterationsINTEL", .value = 0x400000, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "NoFusionINTEL", .value = 0x800000, .parameters = &[_]OperandKind{} }, - .{ .name = "LoopCountINTEL", .value = 0x1000000, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "MaxReinvocationDelayINTEL", .value = 0x2000000, .parameters = &[_]OperandKind{.LiteralInteger} }, + .fragment_shading_rate => &.{ + .{ .name = "Vertical2Pixels", .value = 0x0001, .parameters = &.{} }, + .{ .name = "Vertical4Pixels", .value = 0x0002, .parameters = &.{} }, + .{ .name = "Horizontal2Pixels", .value = 0x0004, .parameters = &.{} }, + .{ .name = "Horizontal4Pixels", .value = 0x0008, .parameters = &.{} }, }, - .FunctionControl => &[_]Enumerant{ - .{ .name = "Inline", .value = 0x0001, .parameters = &[_]OperandKind{} }, - .{ .name = "DontInline", .value = 0x0002, .parameters = &[_]OperandKind{} }, - .{ .name = "Pure", .value = 0x0004, .parameters = &[_]OperandKind{} }, - .{ .name = "Const", .value = 0x0008, .parameters = &[_]OperandKind{} }, - .{ .name = "OptNoneINTEL", .value = 0x10000, .parameters = &[_]OperandKind{} }, + .raw_access_chain_operands => &.{ + .{ .name = "RobustnessPerComponentNV", .value = 0x0001, .parameters = &.{} }, + .{ .name = "RobustnessPerElementNV", .value = 0x0002, .parameters = &.{} }, }, - .MemorySemantics => &[_]Enumerant{ - .{ .name = "Relaxed", .value = 0x0000, .parameters = &[_]OperandKind{} }, - .{ .name = "Acquire", .value = 0x0002, .parameters = &[_]OperandKind{} }, - .{ .name = "Release", .value = 0x0004, .parameters = &[_]OperandKind{} }, - .{ .name = "AcquireRelease", .value = 0x0008, .parameters = &[_]OperandKind{} }, - .{ .name = "SequentiallyConsistent", .value = 0x0010, .parameters = &[_]OperandKind{} }, - .{ .name = "UniformMemory", .value = 0x0040, .parameters = &[_]OperandKind{} }, - .{ .name = "SubgroupMemory", .value = 0x0080, .parameters = &[_]OperandKind{} }, - .{ .name = "WorkgroupMemory", .value = 0x0100, .parameters = &[_]OperandKind{} }, - .{ .name = "CrossWorkgroupMemory", .value = 0x0200, .parameters = &[_]OperandKind{} }, - .{ .name = "AtomicCounterMemory", .value = 0x0400, .parameters = &[_]OperandKind{} }, - .{ .name = "ImageMemory", .value = 0x0800, .parameters = &[_]OperandKind{} }, - .{ .name = "OutputMemory", .value = 0x1000, .parameters = &[_]OperandKind{} }, - .{ .name = "OutputMemoryKHR", .value = 0x1000, .parameters = &[_]OperandKind{} }, - .{ .name = "MakeAvailable", .value = 0x2000, .parameters = &[_]OperandKind{} }, - .{ .name = "MakeAvailableKHR", .value = 0x2000, .parameters = &[_]OperandKind{} }, - .{ .name = "MakeVisible", .value = 0x4000, .parameters = &[_]OperandKind{} }, - .{ .name = "MakeVisibleKHR", .value = 0x4000, .parameters = &[_]OperandKind{} }, - .{ .name = "Volatile", .value = 0x8000, .parameters = &[_]OperandKind{} }, + .source_language => &.{ + .{ .name = "Unknown", .value = 0, .parameters = &.{} }, + .{ .name = "ESSL", .value = 1, .parameters = &.{} }, + .{ .name = "GLSL", .value = 2, .parameters = &.{} }, + .{ .name = "OpenCL_C", .value = 3, .parameters = &.{} }, + .{ .name = "OpenCL_CPP", .value = 4, .parameters = &.{} }, + .{ .name = "HLSL", .value = 5, .parameters = &.{} }, + .{ .name = "CPP_for_OpenCL", .value = 6, .parameters = &.{} }, + .{ .name = "SYCL", .value = 7, .parameters = &.{} }, + .{ .name = "HERO_C", .value = 8, .parameters = &.{} }, + .{ .name = "NZSL", .value = 9, .parameters = &.{} }, + .{ .name = "WGSL", .value = 10, .parameters = &.{} }, + .{ .name = "Slang", .value = 11, .parameters = &.{} }, + .{ .name = "Zig", .value = 12, .parameters = &.{} }, + .{ .name = "Rust", .value = 13, .parameters = &.{} }, }, - .MemoryAccess => &[_]Enumerant{ - .{ .name = "Volatile", .value = 0x0001, .parameters = &[_]OperandKind{} }, - .{ .name = "Aligned", .value = 0x0002, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "Nontemporal", .value = 0x0004, .parameters = &[_]OperandKind{} }, - .{ .name = "MakePointerAvailable", .value = 0x0008, .parameters = &[_]OperandKind{.IdScope} }, - .{ .name = "MakePointerAvailableKHR", .value = 0x0008, .parameters = &[_]OperandKind{.IdScope} }, - .{ .name = "MakePointerVisible", .value = 0x0010, .parameters = &[_]OperandKind{.IdScope} }, - .{ .name = "MakePointerVisibleKHR", .value = 0x0010, .parameters = &[_]OperandKind{.IdScope} }, - .{ .name = "NonPrivatePointer", .value = 0x0020, .parameters = &[_]OperandKind{} }, - .{ .name = "NonPrivatePointerKHR", .value = 0x0020, .parameters = &[_]OperandKind{} }, - .{ .name = "AliasScopeINTELMask", .value = 0x10000, .parameters = &[_]OperandKind{.IdRef} }, - .{ .name = "NoAliasINTELMask", .value = 0x20000, .parameters = &[_]OperandKind{.IdRef} }, + .execution_model => &.{ + .{ .name = "Vertex", .value = 0, .parameters = &.{} }, + .{ .name = "TessellationControl", .value = 1, .parameters = &.{} }, + .{ .name = "TessellationEvaluation", .value = 2, .parameters = &.{} }, + .{ .name = "Geometry", .value = 3, .parameters = &.{} }, + .{ .name = "Fragment", .value = 4, .parameters = &.{} }, + .{ .name = "GLCompute", .value = 5, .parameters = &.{} }, + .{ .name = "Kernel", .value = 6, .parameters = &.{} }, + .{ .name = "TaskNV", .value = 5267, .parameters = &.{} }, + .{ .name = "MeshNV", .value = 5268, .parameters = &.{} }, + .{ .name = "RayGenerationKHR", .value = 5313, .parameters = &.{} }, + .{ .name = "IntersectionKHR", .value = 5314, .parameters = &.{} }, + .{ .name = "AnyHitKHR", .value = 5315, .parameters = &.{} }, + .{ .name = "ClosestHitKHR", .value = 5316, .parameters = &.{} }, + .{ .name = "MissKHR", .value = 5317, .parameters = &.{} }, + .{ .name = "CallableKHR", .value = 5318, .parameters = &.{} }, + .{ .name = "TaskEXT", .value = 5364, .parameters = &.{} }, + .{ .name = "MeshEXT", .value = 5365, .parameters = &.{} }, }, - .KernelProfilingInfo => &[_]Enumerant{ - .{ .name = "CmdExecTime", .value = 0x0001, .parameters = &[_]OperandKind{} }, + .addressing_model => &.{ + .{ .name = "Logical", .value = 0, .parameters = &.{} }, + .{ .name = "Physical32", .value = 1, .parameters = &.{} }, + .{ .name = "Physical64", .value = 2, .parameters = &.{} }, + .{ .name = "PhysicalStorageBuffer64", .value = 5348, .parameters = &.{} }, }, - .RayFlags => &[_]Enumerant{ - .{ .name = "NoneKHR", .value = 0x0000, .parameters = &[_]OperandKind{} }, - .{ .name = "OpaqueKHR", .value = 0x0001, .parameters = &[_]OperandKind{} }, - .{ .name = "NoOpaqueKHR", .value = 0x0002, .parameters = &[_]OperandKind{} }, - .{ .name = "TerminateOnFirstHitKHR", .value = 0x0004, .parameters = &[_]OperandKind{} }, - .{ .name = "SkipClosestHitShaderKHR", .value = 0x0008, .parameters = &[_]OperandKind{} }, - .{ .name = "CullBackFacingTrianglesKHR", .value = 0x0010, .parameters = &[_]OperandKind{} }, - .{ .name = "CullFrontFacingTrianglesKHR", .value = 0x0020, .parameters = &[_]OperandKind{} }, - .{ .name = "CullOpaqueKHR", .value = 0x0040, .parameters = &[_]OperandKind{} }, - .{ .name = "CullNoOpaqueKHR", .value = 0x0080, .parameters = &[_]OperandKind{} }, - .{ .name = "SkipTrianglesKHR", .value = 0x0100, .parameters = &[_]OperandKind{} }, - .{ .name = "SkipAABBsKHR", .value = 0x0200, .parameters = &[_]OperandKind{} }, - .{ .name = "ForceOpacityMicromap2StateEXT", .value = 0x0400, .parameters = &[_]OperandKind{} }, + .memory_model => &.{ + .{ .name = "Simple", .value = 0, .parameters = &.{} }, + .{ .name = "GLSL450", .value = 1, .parameters = &.{} }, + .{ .name = "OpenCL", .value = 2, .parameters = &.{} }, + .{ .name = "Vulkan", .value = 3, .parameters = &.{} }, }, - .FragmentShadingRate => &[_]Enumerant{ - .{ .name = "Vertical2Pixels", .value = 0x0001, .parameters = &[_]OperandKind{} }, - .{ .name = "Vertical4Pixels", .value = 0x0002, .parameters = &[_]OperandKind{} }, - .{ .name = "Horizontal2Pixels", .value = 0x0004, .parameters = &[_]OperandKind{} }, - .{ .name = "Horizontal4Pixels", .value = 0x0008, .parameters = &[_]OperandKind{} }, + .execution_mode => &.{ + .{ .name = "Invocations", .value = 0, .parameters = &.{.literal_integer} }, + .{ .name = "SpacingEqual", .value = 1, .parameters = &.{} }, + .{ .name = "SpacingFractionalEven", .value = 2, .parameters = &.{} }, + .{ .name = "SpacingFractionalOdd", .value = 3, .parameters = &.{} }, + .{ .name = "VertexOrderCw", .value = 4, .parameters = &.{} }, + .{ .name = "VertexOrderCcw", .value = 5, .parameters = &.{} }, + .{ .name = "PixelCenterInteger", .value = 6, .parameters = &.{} }, + .{ .name = "OriginUpperLeft", .value = 7, .parameters = &.{} }, + .{ .name = "OriginLowerLeft", .value = 8, .parameters = &.{} }, + .{ .name = "EarlyFragmentTests", .value = 9, .parameters = &.{} }, + .{ .name = "PointMode", .value = 10, .parameters = &.{} }, + .{ .name = "Xfb", .value = 11, .parameters = &.{} }, + .{ .name = "DepthReplacing", .value = 12, .parameters = &.{} }, + .{ .name = "DepthGreater", .value = 14, .parameters = &.{} }, + .{ .name = "DepthLess", .value = 15, .parameters = &.{} }, + .{ .name = "DepthUnchanged", .value = 16, .parameters = &.{} }, + .{ .name = "LocalSize", .value = 17, .parameters = &.{ .literal_integer, .literal_integer, .literal_integer } }, + .{ .name = "LocalSizeHint", .value = 18, .parameters = &.{ .literal_integer, .literal_integer, .literal_integer } }, + .{ .name = "InputPoints", .value = 19, .parameters = &.{} }, + .{ .name = "InputLines", .value = 20, .parameters = &.{} }, + .{ .name = "InputLinesAdjacency", .value = 21, .parameters = &.{} }, + .{ .name = "Triangles", .value = 22, .parameters = &.{} }, + .{ .name = "InputTrianglesAdjacency", .value = 23, .parameters = &.{} }, + .{ .name = "Quads", .value = 24, .parameters = &.{} }, + .{ .name = "Isolines", .value = 25, .parameters = &.{} }, + .{ .name = "OutputVertices", .value = 26, .parameters = &.{.literal_integer} }, + .{ .name = "OutputPoints", .value = 27, .parameters = &.{} }, + .{ .name = "OutputLineStrip", .value = 28, .parameters = &.{} }, + .{ .name = "OutputTriangleStrip", .value = 29, .parameters = &.{} }, + .{ .name = "VecTypeHint", .value = 30, .parameters = &.{.literal_integer} }, + .{ .name = "ContractionOff", .value = 31, .parameters = &.{} }, + .{ .name = "Initializer", .value = 33, .parameters = &.{} }, + .{ .name = "Finalizer", .value = 34, .parameters = &.{} }, + .{ .name = "SubgroupSize", .value = 35, .parameters = &.{.literal_integer} }, + .{ .name = "SubgroupsPerWorkgroup", .value = 36, .parameters = &.{.literal_integer} }, + .{ .name = "SubgroupsPerWorkgroupId", .value = 37, .parameters = &.{.id_ref} }, + .{ .name = "LocalSizeId", .value = 38, .parameters = &.{ .id_ref, .id_ref, .id_ref } }, + .{ .name = "LocalSizeHintId", .value = 39, .parameters = &.{ .id_ref, .id_ref, .id_ref } }, + .{ .name = "NonCoherentColorAttachmentReadEXT", .value = 4169, .parameters = &.{} }, + .{ .name = "NonCoherentDepthAttachmentReadEXT", .value = 4170, .parameters = &.{} }, + .{ .name = "NonCoherentStencilAttachmentReadEXT", .value = 4171, .parameters = &.{} }, + .{ .name = "SubgroupUniformControlFlowKHR", .value = 4421, .parameters = &.{} }, + .{ .name = "PostDepthCoverage", .value = 4446, .parameters = &.{} }, + .{ .name = "DenormPreserve", .value = 4459, .parameters = &.{.literal_integer} }, + .{ .name = "DenormFlushToZero", .value = 4460, .parameters = &.{.literal_integer} }, + .{ .name = "SignedZeroInfNanPreserve", .value = 4461, .parameters = &.{.literal_integer} }, + .{ .name = "RoundingModeRTE", .value = 4462, .parameters = &.{.literal_integer} }, + .{ .name = "RoundingModeRTZ", .value = 4463, .parameters = &.{.literal_integer} }, + .{ .name = "NonCoherentTileAttachmentReadQCOM", .value = 4489, .parameters = &.{} }, + .{ .name = "TileShadingRateQCOM", .value = 4490, .parameters = &.{ .literal_integer, .literal_integer, .literal_integer } }, + .{ .name = "EarlyAndLateFragmentTestsAMD", .value = 5017, .parameters = &.{} }, + .{ .name = "StencilRefReplacingEXT", .value = 5027, .parameters = &.{} }, + .{ .name = "CoalescingAMDX", .value = 5069, .parameters = &.{} }, + .{ .name = "IsApiEntryAMDX", .value = 5070, .parameters = &.{.id_ref} }, + .{ .name = "MaxNodeRecursionAMDX", .value = 5071, .parameters = &.{.id_ref} }, + .{ .name = "StaticNumWorkgroupsAMDX", .value = 5072, .parameters = &.{ .id_ref, .id_ref, .id_ref } }, + .{ .name = "ShaderIndexAMDX", .value = 5073, .parameters = &.{.id_ref} }, + .{ .name = "MaxNumWorkgroupsAMDX", .value = 5077, .parameters = &.{ .id_ref, .id_ref, .id_ref } }, + .{ .name = "StencilRefUnchangedFrontAMD", .value = 5079, .parameters = &.{} }, + .{ .name = "StencilRefGreaterFrontAMD", .value = 5080, .parameters = &.{} }, + .{ .name = "StencilRefLessFrontAMD", .value = 5081, .parameters = &.{} }, + .{ .name = "StencilRefUnchangedBackAMD", .value = 5082, .parameters = &.{} }, + .{ .name = "StencilRefGreaterBackAMD", .value = 5083, .parameters = &.{} }, + .{ .name = "StencilRefLessBackAMD", .value = 5084, .parameters = &.{} }, + .{ .name = "QuadDerivativesKHR", .value = 5088, .parameters = &.{} }, + .{ .name = "RequireFullQuadsKHR", .value = 5089, .parameters = &.{} }, + .{ .name = "SharesInputWithAMDX", .value = 5102, .parameters = &.{ .id_ref, .id_ref } }, + .{ .name = "OutputLinesEXT", .value = 5269, .parameters = &.{} }, + .{ .name = "OutputPrimitivesEXT", .value = 5270, .parameters = &.{.literal_integer} }, + .{ .name = "DerivativeGroupQuadsKHR", .value = 5289, .parameters = &.{} }, + .{ .name = "DerivativeGroupLinearKHR", .value = 5290, .parameters = &.{} }, + .{ .name = "OutputTrianglesEXT", .value = 5298, .parameters = &.{} }, + .{ .name = "PixelInterlockOrderedEXT", .value = 5366, .parameters = &.{} }, + .{ .name = "PixelInterlockUnorderedEXT", .value = 5367, .parameters = &.{} }, + .{ .name = "SampleInterlockOrderedEXT", .value = 5368, .parameters = &.{} }, + .{ .name = "SampleInterlockUnorderedEXT", .value = 5369, .parameters = &.{} }, + .{ .name = "ShadingRateInterlockOrderedEXT", .value = 5370, .parameters = &.{} }, + .{ .name = "ShadingRateInterlockUnorderedEXT", .value = 5371, .parameters = &.{} }, + .{ .name = "SharedLocalMemorySizeINTEL", .value = 5618, .parameters = &.{.literal_integer} }, + .{ .name = "RoundingModeRTPINTEL", .value = 5620, .parameters = &.{.literal_integer} }, + .{ .name = "RoundingModeRTNINTEL", .value = 5621, .parameters = &.{.literal_integer} }, + .{ .name = "FloatingPointModeALTINTEL", .value = 5622, .parameters = &.{.literal_integer} }, + .{ .name = "FloatingPointModeIEEEINTEL", .value = 5623, .parameters = &.{.literal_integer} }, + .{ .name = "MaxWorkgroupSizeINTEL", .value = 5893, .parameters = &.{ .literal_integer, .literal_integer, .literal_integer } }, + .{ .name = "MaxWorkDimINTEL", .value = 5894, .parameters = &.{.literal_integer} }, + .{ .name = "NoGlobalOffsetINTEL", .value = 5895, .parameters = &.{} }, + .{ .name = "NumSIMDWorkitemsINTEL", .value = 5896, .parameters = &.{.literal_integer} }, + .{ .name = "SchedulerTargetFmaxMhzINTEL", .value = 5903, .parameters = &.{.literal_integer} }, + .{ .name = "MaximallyReconvergesKHR", .value = 6023, .parameters = &.{} }, + .{ .name = "FPFastMathDefault", .value = 6028, .parameters = &.{ .id_ref, .id_ref } }, + .{ .name = "StreamingInterfaceINTEL", .value = 6154, .parameters = &.{.literal_integer} }, + .{ .name = "RegisterMapInterfaceINTEL", .value = 6160, .parameters = &.{.literal_integer} }, + .{ .name = "NamedBarrierCountINTEL", .value = 6417, .parameters = &.{.literal_integer} }, + .{ .name = "MaximumRegistersINTEL", .value = 6461, .parameters = &.{.literal_integer} }, + .{ .name = "MaximumRegistersIdINTEL", .value = 6462, .parameters = &.{.id_ref} }, + .{ .name = "NamedMaximumRegistersINTEL", .value = 6463, .parameters = &.{.named_maximum_number_of_registers} }, }, - .RawAccessChainOperands => &[_]Enumerant{ - .{ .name = "RobustnessPerComponentNV", .value = 0x0001, .parameters = &[_]OperandKind{} }, - .{ .name = "RobustnessPerElementNV", .value = 0x0002, .parameters = &[_]OperandKind{} }, + .storage_class => &.{ + .{ .name = "UniformConstant", .value = 0, .parameters = &.{} }, + .{ .name = "Input", .value = 1, .parameters = &.{} }, + .{ .name = "Uniform", .value = 2, .parameters = &.{} }, + .{ .name = "Output", .value = 3, .parameters = &.{} }, + .{ .name = "Workgroup", .value = 4, .parameters = &.{} }, + .{ .name = "CrossWorkgroup", .value = 5, .parameters = &.{} }, + .{ .name = "Private", .value = 6, .parameters = &.{} }, + .{ .name = "Function", .value = 7, .parameters = &.{} }, + .{ .name = "Generic", .value = 8, .parameters = &.{} }, + .{ .name = "PushConstant", .value = 9, .parameters = &.{} }, + .{ .name = "AtomicCounter", .value = 10, .parameters = &.{} }, + .{ .name = "Image", .value = 11, .parameters = &.{} }, + .{ .name = "StorageBuffer", .value = 12, .parameters = &.{} }, + .{ .name = "TileImageEXT", .value = 4172, .parameters = &.{} }, + .{ .name = "TileAttachmentQCOM", .value = 4491, .parameters = &.{} }, + .{ .name = "NodePayloadAMDX", .value = 5068, .parameters = &.{} }, + .{ .name = "CallableDataKHR", .value = 5328, .parameters = &.{} }, + .{ .name = "IncomingCallableDataKHR", .value = 5329, .parameters = &.{} }, + .{ .name = "RayPayloadKHR", .value = 5338, .parameters = &.{} }, + .{ .name = "HitAttributeKHR", .value = 5339, .parameters = &.{} }, + .{ .name = "IncomingRayPayloadKHR", .value = 5342, .parameters = &.{} }, + .{ .name = "ShaderRecordBufferKHR", .value = 5343, .parameters = &.{} }, + .{ .name = "PhysicalStorageBuffer", .value = 5349, .parameters = &.{} }, + .{ .name = "HitObjectAttributeNV", .value = 5385, .parameters = &.{} }, + .{ .name = "TaskPayloadWorkgroupEXT", .value = 5402, .parameters = &.{} }, + .{ .name = "CodeSectionINTEL", .value = 5605, .parameters = &.{} }, + .{ .name = "DeviceOnlyINTEL", .value = 5936, .parameters = &.{} }, + .{ .name = "HostOnlyINTEL", .value = 5937, .parameters = &.{} }, }, - .SourceLanguage => &[_]Enumerant{ - .{ .name = "Unknown", .value = 0, .parameters = &[_]OperandKind{} }, - .{ .name = "ESSL", .value = 1, .parameters = &[_]OperandKind{} }, - .{ .name = "GLSL", .value = 2, .parameters = &[_]OperandKind{} }, - .{ .name = "OpenCL_C", .value = 3, .parameters = &[_]OperandKind{} }, - .{ .name = "OpenCL_CPP", .value = 4, .parameters = &[_]OperandKind{} }, - .{ .name = "HLSL", .value = 5, .parameters = &[_]OperandKind{} }, - .{ .name = "CPP_for_OpenCL", .value = 6, .parameters = &[_]OperandKind{} }, - .{ .name = "SYCL", .value = 7, .parameters = &[_]OperandKind{} }, - .{ .name = "HERO_C", .value = 8, .parameters = &[_]OperandKind{} }, - .{ .name = "NZSL", .value = 9, .parameters = &[_]OperandKind{} }, - .{ .name = "WGSL", .value = 10, .parameters = &[_]OperandKind{} }, - .{ .name = "Slang", .value = 11, .parameters = &[_]OperandKind{} }, - .{ .name = "Zig", .value = 12, .parameters = &[_]OperandKind{} }, + .dim => &.{ + .{ .name = "1D", .value = 0, .parameters = &.{} }, + .{ .name = "2D", .value = 1, .parameters = &.{} }, + .{ .name = "3D", .value = 2, .parameters = &.{} }, + .{ .name = "Cube", .value = 3, .parameters = &.{} }, + .{ .name = "Rect", .value = 4, .parameters = &.{} }, + .{ .name = "Buffer", .value = 5, .parameters = &.{} }, + .{ .name = "SubpassData", .value = 6, .parameters = &.{} }, + .{ .name = "TileImageDataEXT", .value = 4173, .parameters = &.{} }, }, - .ExecutionModel => &[_]Enumerant{ - .{ .name = "Vertex", .value = 0, .parameters = &[_]OperandKind{} }, - .{ .name = "TessellationControl", .value = 1, .parameters = &[_]OperandKind{} }, - .{ .name = "TessellationEvaluation", .value = 2, .parameters = &[_]OperandKind{} }, - .{ .name = "Geometry", .value = 3, .parameters = &[_]OperandKind{} }, - .{ .name = "Fragment", .value = 4, .parameters = &[_]OperandKind{} }, - .{ .name = "GLCompute", .value = 5, .parameters = &[_]OperandKind{} }, - .{ .name = "Kernel", .value = 6, .parameters = &[_]OperandKind{} }, - .{ .name = "TaskNV", .value = 5267, .parameters = &[_]OperandKind{} }, - .{ .name = "MeshNV", .value = 5268, .parameters = &[_]OperandKind{} }, - .{ .name = "RayGenerationNV", .value = 5313, .parameters = &[_]OperandKind{} }, - .{ .name = "RayGenerationKHR", .value = 5313, .parameters = &[_]OperandKind{} }, - .{ .name = "IntersectionNV", .value = 5314, .parameters = &[_]OperandKind{} }, - .{ .name = "IntersectionKHR", .value = 5314, .parameters = &[_]OperandKind{} }, - .{ .name = "AnyHitNV", .value = 5315, .parameters = &[_]OperandKind{} }, - .{ .name = "AnyHitKHR", .value = 5315, .parameters = &[_]OperandKind{} }, - .{ .name = "ClosestHitNV", .value = 5316, .parameters = &[_]OperandKind{} }, - .{ .name = "ClosestHitKHR", .value = 5316, .parameters = &[_]OperandKind{} }, - .{ .name = "MissNV", .value = 5317, .parameters = &[_]OperandKind{} }, - .{ .name = "MissKHR", .value = 5317, .parameters = &[_]OperandKind{} }, - .{ .name = "CallableNV", .value = 5318, .parameters = &[_]OperandKind{} }, - .{ .name = "CallableKHR", .value = 5318, .parameters = &[_]OperandKind{} }, - .{ .name = "TaskEXT", .value = 5364, .parameters = &[_]OperandKind{} }, - .{ .name = "MeshEXT", .value = 5365, .parameters = &[_]OperandKind{} }, + .sampler_addressing_mode => &.{ + .{ .name = "None", .value = 0, .parameters = &.{} }, + .{ .name = "ClampToEdge", .value = 1, .parameters = &.{} }, + .{ .name = "Clamp", .value = 2, .parameters = &.{} }, + .{ .name = "Repeat", .value = 3, .parameters = &.{} }, + .{ .name = "RepeatMirrored", .value = 4, .parameters = &.{} }, }, - .AddressingModel => &[_]Enumerant{ - .{ .name = "Logical", .value = 0, .parameters = &[_]OperandKind{} }, - .{ .name = "Physical32", .value = 1, .parameters = &[_]OperandKind{} }, - .{ .name = "Physical64", .value = 2, .parameters = &[_]OperandKind{} }, - .{ .name = "PhysicalStorageBuffer64", .value = 5348, .parameters = &[_]OperandKind{} }, - .{ .name = "PhysicalStorageBuffer64EXT", .value = 5348, .parameters = &[_]OperandKind{} }, + .sampler_filter_mode => &.{ + .{ .name = "Nearest", .value = 0, .parameters = &.{} }, + .{ .name = "Linear", .value = 1, .parameters = &.{} }, }, - .MemoryModel => &[_]Enumerant{ - .{ .name = "Simple", .value = 0, .parameters = &[_]OperandKind{} }, - .{ .name = "GLSL450", .value = 1, .parameters = &[_]OperandKind{} }, - .{ .name = "OpenCL", .value = 2, .parameters = &[_]OperandKind{} }, - .{ .name = "Vulkan", .value = 3, .parameters = &[_]OperandKind{} }, - .{ .name = "VulkanKHR", .value = 3, .parameters = &[_]OperandKind{} }, + .image_format => &.{ + .{ .name = "Unknown", .value = 0, .parameters = &.{} }, + .{ .name = "Rgba32f", .value = 1, .parameters = &.{} }, + .{ .name = "Rgba16f", .value = 2, .parameters = &.{} }, + .{ .name = "R32f", .value = 3, .parameters = &.{} }, + .{ .name = "Rgba8", .value = 4, .parameters = &.{} }, + .{ .name = "Rgba8Snorm", .value = 5, .parameters = &.{} }, + .{ .name = "Rg32f", .value = 6, .parameters = &.{} }, + .{ .name = "Rg16f", .value = 7, .parameters = &.{} }, + .{ .name = "R11fG11fB10f", .value = 8, .parameters = &.{} }, + .{ .name = "R16f", .value = 9, .parameters = &.{} }, + .{ .name = "Rgba16", .value = 10, .parameters = &.{} }, + .{ .name = "Rgb10A2", .value = 11, .parameters = &.{} }, + .{ .name = "Rg16", .value = 12, .parameters = &.{} }, + .{ .name = "Rg8", .value = 13, .parameters = &.{} }, + .{ .name = "R16", .value = 14, .parameters = &.{} }, + .{ .name = "R8", .value = 15, .parameters = &.{} }, + .{ .name = "Rgba16Snorm", .value = 16, .parameters = &.{} }, + .{ .name = "Rg16Snorm", .value = 17, .parameters = &.{} }, + .{ .name = "Rg8Snorm", .value = 18, .parameters = &.{} }, + .{ .name = "R16Snorm", .value = 19, .parameters = &.{} }, + .{ .name = "R8Snorm", .value = 20, .parameters = &.{} }, + .{ .name = "Rgba32i", .value = 21, .parameters = &.{} }, + .{ .name = "Rgba16i", .value = 22, .parameters = &.{} }, + .{ .name = "Rgba8i", .value = 23, .parameters = &.{} }, + .{ .name = "R32i", .value = 24, .parameters = &.{} }, + .{ .name = "Rg32i", .value = 25, .parameters = &.{} }, + .{ .name = "Rg16i", .value = 26, .parameters = &.{} }, + .{ .name = "Rg8i", .value = 27, .parameters = &.{} }, + .{ .name = "R16i", .value = 28, .parameters = &.{} }, + .{ .name = "R8i", .value = 29, .parameters = &.{} }, + .{ .name = "Rgba32ui", .value = 30, .parameters = &.{} }, + .{ .name = "Rgba16ui", .value = 31, .parameters = &.{} }, + .{ .name = "Rgba8ui", .value = 32, .parameters = &.{} }, + .{ .name = "R32ui", .value = 33, .parameters = &.{} }, + .{ .name = "Rgb10a2ui", .value = 34, .parameters = &.{} }, + .{ .name = "Rg32ui", .value = 35, .parameters = &.{} }, + .{ .name = "Rg16ui", .value = 36, .parameters = &.{} }, + .{ .name = "Rg8ui", .value = 37, .parameters = &.{} }, + .{ .name = "R16ui", .value = 38, .parameters = &.{} }, + .{ .name = "R8ui", .value = 39, .parameters = &.{} }, + .{ .name = "R64ui", .value = 40, .parameters = &.{} }, + .{ .name = "R64i", .value = 41, .parameters = &.{} }, }, - .ExecutionMode => &[_]Enumerant{ - .{ .name = "Invocations", .value = 0, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "SpacingEqual", .value = 1, .parameters = &[_]OperandKind{} }, - .{ .name = "SpacingFractionalEven", .value = 2, .parameters = &[_]OperandKind{} }, - .{ .name = "SpacingFractionalOdd", .value = 3, .parameters = &[_]OperandKind{} }, - .{ .name = "VertexOrderCw", .value = 4, .parameters = &[_]OperandKind{} }, - .{ .name = "VertexOrderCcw", .value = 5, .parameters = &[_]OperandKind{} }, - .{ .name = "PixelCenterInteger", .value = 6, .parameters = &[_]OperandKind{} }, - .{ .name = "OriginUpperLeft", .value = 7, .parameters = &[_]OperandKind{} }, - .{ .name = "OriginLowerLeft", .value = 8, .parameters = &[_]OperandKind{} }, - .{ .name = "EarlyFragmentTests", .value = 9, .parameters = &[_]OperandKind{} }, - .{ .name = "PointMode", .value = 10, .parameters = &[_]OperandKind{} }, - .{ .name = "Xfb", .value = 11, .parameters = &[_]OperandKind{} }, - .{ .name = "DepthReplacing", .value = 12, .parameters = &[_]OperandKind{} }, - .{ .name = "DepthGreater", .value = 14, .parameters = &[_]OperandKind{} }, - .{ .name = "DepthLess", .value = 15, .parameters = &[_]OperandKind{} }, - .{ .name = "DepthUnchanged", .value = 16, .parameters = &[_]OperandKind{} }, - .{ .name = "LocalSize", .value = 17, .parameters = &[_]OperandKind{ .LiteralInteger, .LiteralInteger, .LiteralInteger } }, - .{ .name = "LocalSizeHint", .value = 18, .parameters = &[_]OperandKind{ .LiteralInteger, .LiteralInteger, .LiteralInteger } }, - .{ .name = "InputPoints", .value = 19, .parameters = &[_]OperandKind{} }, - .{ .name = "InputLines", .value = 20, .parameters = &[_]OperandKind{} }, - .{ .name = "InputLinesAdjacency", .value = 21, .parameters = &[_]OperandKind{} }, - .{ .name = "Triangles", .value = 22, .parameters = &[_]OperandKind{} }, - .{ .name = "InputTrianglesAdjacency", .value = 23, .parameters = &[_]OperandKind{} }, - .{ .name = "Quads", .value = 24, .parameters = &[_]OperandKind{} }, - .{ .name = "Isolines", .value = 25, .parameters = &[_]OperandKind{} }, - .{ .name = "OutputVertices", .value = 26, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "OutputPoints", .value = 27, .parameters = &[_]OperandKind{} }, - .{ .name = "OutputLineStrip", .value = 28, .parameters = &[_]OperandKind{} }, - .{ .name = "OutputTriangleStrip", .value = 29, .parameters = &[_]OperandKind{} }, - .{ .name = "VecTypeHint", .value = 30, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "ContractionOff", .value = 31, .parameters = &[_]OperandKind{} }, - .{ .name = "Initializer", .value = 33, .parameters = &[_]OperandKind{} }, - .{ .name = "Finalizer", .value = 34, .parameters = &[_]OperandKind{} }, - .{ .name = "SubgroupSize", .value = 35, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "SubgroupsPerWorkgroup", .value = 36, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "SubgroupsPerWorkgroupId", .value = 37, .parameters = &[_]OperandKind{.IdRef} }, - .{ .name = "LocalSizeId", .value = 38, .parameters = &[_]OperandKind{ .IdRef, .IdRef, .IdRef } }, - .{ .name = "LocalSizeHintId", .value = 39, .parameters = &[_]OperandKind{ .IdRef, .IdRef, .IdRef } }, - .{ .name = "NonCoherentColorAttachmentReadEXT", .value = 4169, .parameters = &[_]OperandKind{} }, - .{ .name = "NonCoherentDepthAttachmentReadEXT", .value = 4170, .parameters = &[_]OperandKind{} }, - .{ .name = "NonCoherentStencilAttachmentReadEXT", .value = 4171, .parameters = &[_]OperandKind{} }, - .{ .name = "SubgroupUniformControlFlowKHR", .value = 4421, .parameters = &[_]OperandKind{} }, - .{ .name = "PostDepthCoverage", .value = 4446, .parameters = &[_]OperandKind{} }, - .{ .name = "DenormPreserve", .value = 4459, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "DenormFlushToZero", .value = 4460, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "SignedZeroInfNanPreserve", .value = 4461, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "RoundingModeRTE", .value = 4462, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "RoundingModeRTZ", .value = 4463, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "EarlyAndLateFragmentTestsAMD", .value = 5017, .parameters = &[_]OperandKind{} }, - .{ .name = "StencilRefReplacingEXT", .value = 5027, .parameters = &[_]OperandKind{} }, - .{ .name = "CoalescingAMDX", .value = 5069, .parameters = &[_]OperandKind{} }, - .{ .name = "MaxNodeRecursionAMDX", .value = 5071, .parameters = &[_]OperandKind{.IdRef} }, - .{ .name = "StaticNumWorkgroupsAMDX", .value = 5072, .parameters = &[_]OperandKind{ .IdRef, .IdRef, .IdRef } }, - .{ .name = "ShaderIndexAMDX", .value = 5073, .parameters = &[_]OperandKind{.IdRef} }, - .{ .name = "MaxNumWorkgroupsAMDX", .value = 5077, .parameters = &[_]OperandKind{ .IdRef, .IdRef, .IdRef } }, - .{ .name = "StencilRefUnchangedFrontAMD", .value = 5079, .parameters = &[_]OperandKind{} }, - .{ .name = "StencilRefGreaterFrontAMD", .value = 5080, .parameters = &[_]OperandKind{} }, - .{ .name = "StencilRefLessFrontAMD", .value = 5081, .parameters = &[_]OperandKind{} }, - .{ .name = "StencilRefUnchangedBackAMD", .value = 5082, .parameters = &[_]OperandKind{} }, - .{ .name = "StencilRefGreaterBackAMD", .value = 5083, .parameters = &[_]OperandKind{} }, - .{ .name = "StencilRefLessBackAMD", .value = 5084, .parameters = &[_]OperandKind{} }, - .{ .name = "QuadDerivativesKHR", .value = 5088, .parameters = &[_]OperandKind{} }, - .{ .name = "RequireFullQuadsKHR", .value = 5089, .parameters = &[_]OperandKind{} }, - .{ .name = "OutputLinesNV", .value = 5269, .parameters = &[_]OperandKind{} }, - .{ .name = "OutputLinesEXT", .value = 5269, .parameters = &[_]OperandKind{} }, - .{ .name = "OutputPrimitivesNV", .value = 5270, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "OutputPrimitivesEXT", .value = 5270, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "DerivativeGroupQuadsNV", .value = 5289, .parameters = &[_]OperandKind{} }, - .{ .name = "DerivativeGroupLinearNV", .value = 5290, .parameters = &[_]OperandKind{} }, - .{ .name = "OutputTrianglesNV", .value = 5298, .parameters = &[_]OperandKind{} }, - .{ .name = "OutputTrianglesEXT", .value = 5298, .parameters = &[_]OperandKind{} }, - .{ .name = "PixelInterlockOrderedEXT", .value = 5366, .parameters = &[_]OperandKind{} }, - .{ .name = "PixelInterlockUnorderedEXT", .value = 5367, .parameters = &[_]OperandKind{} }, - .{ .name = "SampleInterlockOrderedEXT", .value = 5368, .parameters = &[_]OperandKind{} }, - .{ .name = "SampleInterlockUnorderedEXT", .value = 5369, .parameters = &[_]OperandKind{} }, - .{ .name = "ShadingRateInterlockOrderedEXT", .value = 5370, .parameters = &[_]OperandKind{} }, - .{ .name = "ShadingRateInterlockUnorderedEXT", .value = 5371, .parameters = &[_]OperandKind{} }, - .{ .name = "SharedLocalMemorySizeINTEL", .value = 5618, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "RoundingModeRTPINTEL", .value = 5620, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "RoundingModeRTNINTEL", .value = 5621, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "FloatingPointModeALTINTEL", .value = 5622, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "FloatingPointModeIEEEINTEL", .value = 5623, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "MaxWorkgroupSizeINTEL", .value = 5893, .parameters = &[_]OperandKind{ .LiteralInteger, .LiteralInteger, .LiteralInteger } }, - .{ .name = "MaxWorkDimINTEL", .value = 5894, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "NoGlobalOffsetINTEL", .value = 5895, .parameters = &[_]OperandKind{} }, - .{ .name = "NumSIMDWorkitemsINTEL", .value = 5896, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "SchedulerTargetFmaxMhzINTEL", .value = 5903, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "MaximallyReconvergesKHR", .value = 6023, .parameters = &[_]OperandKind{} }, - .{ .name = "FPFastMathDefault", .value = 6028, .parameters = &[_]OperandKind{ .IdRef, .IdRef } }, - .{ .name = "StreamingInterfaceINTEL", .value = 6154, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "RegisterMapInterfaceINTEL", .value = 6160, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "NamedBarrierCountINTEL", .value = 6417, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "MaximumRegistersINTEL", .value = 6461, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "MaximumRegistersIdINTEL", .value = 6462, .parameters = &[_]OperandKind{.IdRef} }, - .{ .name = "NamedMaximumRegistersINTEL", .value = 6463, .parameters = &[_]OperandKind{.NamedMaximumNumberOfRegisters} }, + .image_channel_order => &.{ + .{ .name = "R", .value = 0, .parameters = &.{} }, + .{ .name = "A", .value = 1, .parameters = &.{} }, + .{ .name = "RG", .value = 2, .parameters = &.{} }, + .{ .name = "RA", .value = 3, .parameters = &.{} }, + .{ .name = "RGB", .value = 4, .parameters = &.{} }, + .{ .name = "RGBA", .value = 5, .parameters = &.{} }, + .{ .name = "BGRA", .value = 6, .parameters = &.{} }, + .{ .name = "ARGB", .value = 7, .parameters = &.{} }, + .{ .name = "Intensity", .value = 8, .parameters = &.{} }, + .{ .name = "Luminance", .value = 9, .parameters = &.{} }, + .{ .name = "Rx", .value = 10, .parameters = &.{} }, + .{ .name = "RGx", .value = 11, .parameters = &.{} }, + .{ .name = "RGBx", .value = 12, .parameters = &.{} }, + .{ .name = "Depth", .value = 13, .parameters = &.{} }, + .{ .name = "DepthStencil", .value = 14, .parameters = &.{} }, + .{ .name = "sRGB", .value = 15, .parameters = &.{} }, + .{ .name = "sRGBx", .value = 16, .parameters = &.{} }, + .{ .name = "sRGBA", .value = 17, .parameters = &.{} }, + .{ .name = "sBGRA", .value = 18, .parameters = &.{} }, + .{ .name = "ABGR", .value = 19, .parameters = &.{} }, }, - .StorageClass => &[_]Enumerant{ - .{ .name = "UniformConstant", .value = 0, .parameters = &[_]OperandKind{} }, - .{ .name = "Input", .value = 1, .parameters = &[_]OperandKind{} }, - .{ .name = "Uniform", .value = 2, .parameters = &[_]OperandKind{} }, - .{ .name = "Output", .value = 3, .parameters = &[_]OperandKind{} }, - .{ .name = "Workgroup", .value = 4, .parameters = &[_]OperandKind{} }, - .{ .name = "CrossWorkgroup", .value = 5, .parameters = &[_]OperandKind{} }, - .{ .name = "Private", .value = 6, .parameters = &[_]OperandKind{} }, - .{ .name = "Function", .value = 7, .parameters = &[_]OperandKind{} }, - .{ .name = "Generic", .value = 8, .parameters = &[_]OperandKind{} }, - .{ .name = "PushConstant", .value = 9, .parameters = &[_]OperandKind{} }, - .{ .name = "AtomicCounter", .value = 10, .parameters = &[_]OperandKind{} }, - .{ .name = "Image", .value = 11, .parameters = &[_]OperandKind{} }, - .{ .name = "StorageBuffer", .value = 12, .parameters = &[_]OperandKind{} }, - .{ .name = "TileImageEXT", .value = 4172, .parameters = &[_]OperandKind{} }, - .{ .name = "NodePayloadAMDX", .value = 5068, .parameters = &[_]OperandKind{} }, - .{ .name = "NodeOutputPayloadAMDX", .value = 5076, .parameters = &[_]OperandKind{} }, - .{ .name = "CallableDataNV", .value = 5328, .parameters = &[_]OperandKind{} }, - .{ .name = "CallableDataKHR", .value = 5328, .parameters = &[_]OperandKind{} }, - .{ .name = "IncomingCallableDataNV", .value = 5329, .parameters = &[_]OperandKind{} }, - .{ .name = "IncomingCallableDataKHR", .value = 5329, .parameters = &[_]OperandKind{} }, - .{ .name = "RayPayloadNV", .value = 5338, .parameters = &[_]OperandKind{} }, - .{ .name = "RayPayloadKHR", .value = 5338, .parameters = &[_]OperandKind{} }, - .{ .name = "HitAttributeNV", .value = 5339, .parameters = &[_]OperandKind{} }, - .{ .name = "HitAttributeKHR", .value = 5339, .parameters = &[_]OperandKind{} }, - .{ .name = "IncomingRayPayloadNV", .value = 5342, .parameters = &[_]OperandKind{} }, - .{ .name = "IncomingRayPayloadKHR", .value = 5342, .parameters = &[_]OperandKind{} }, - .{ .name = "ShaderRecordBufferNV", .value = 5343, .parameters = &[_]OperandKind{} }, - .{ .name = "ShaderRecordBufferKHR", .value = 5343, .parameters = &[_]OperandKind{} }, - .{ .name = "PhysicalStorageBuffer", .value = 5349, .parameters = &[_]OperandKind{} }, - .{ .name = "PhysicalStorageBufferEXT", .value = 5349, .parameters = &[_]OperandKind{} }, - .{ .name = "HitObjectAttributeNV", .value = 5385, .parameters = &[_]OperandKind{} }, - .{ .name = "TaskPayloadWorkgroupEXT", .value = 5402, .parameters = &[_]OperandKind{} }, - .{ .name = "CodeSectionINTEL", .value = 5605, .parameters = &[_]OperandKind{} }, - .{ .name = "DeviceOnlyINTEL", .value = 5936, .parameters = &[_]OperandKind{} }, - .{ .name = "HostOnlyINTEL", .value = 5937, .parameters = &[_]OperandKind{} }, + .image_channel_data_type => &.{ + .{ .name = "SnormInt8", .value = 0, .parameters = &.{} }, + .{ .name = "SnormInt16", .value = 1, .parameters = &.{} }, + .{ .name = "UnormInt8", .value = 2, .parameters = &.{} }, + .{ .name = "UnormInt16", .value = 3, .parameters = &.{} }, + .{ .name = "UnormShort565", .value = 4, .parameters = &.{} }, + .{ .name = "UnormShort555", .value = 5, .parameters = &.{} }, + .{ .name = "UnormInt101010", .value = 6, .parameters = &.{} }, + .{ .name = "SignedInt8", .value = 7, .parameters = &.{} }, + .{ .name = "SignedInt16", .value = 8, .parameters = &.{} }, + .{ .name = "SignedInt32", .value = 9, .parameters = &.{} }, + .{ .name = "UnsignedInt8", .value = 10, .parameters = &.{} }, + .{ .name = "UnsignedInt16", .value = 11, .parameters = &.{} }, + .{ .name = "UnsignedInt32", .value = 12, .parameters = &.{} }, + .{ .name = "HalfFloat", .value = 13, .parameters = &.{} }, + .{ .name = "Float", .value = 14, .parameters = &.{} }, + .{ .name = "UnormInt24", .value = 15, .parameters = &.{} }, + .{ .name = "UnormInt101010_2", .value = 16, .parameters = &.{} }, + .{ .name = "UnormInt10X6EXT", .value = 17, .parameters = &.{} }, + .{ .name = "UnsignedIntRaw10EXT", .value = 19, .parameters = &.{} }, + .{ .name = "UnsignedIntRaw12EXT", .value = 20, .parameters = &.{} }, + .{ .name = "UnormInt2_101010EXT", .value = 21, .parameters = &.{} }, + .{ .name = "UnsignedInt10X6EXT", .value = 22, .parameters = &.{} }, + .{ .name = "UnsignedInt12X4EXT", .value = 23, .parameters = &.{} }, + .{ .name = "UnsignedInt14X2EXT", .value = 24, .parameters = &.{} }, + .{ .name = "UnormInt12X4EXT", .value = 25, .parameters = &.{} }, + .{ .name = "UnormInt14X2EXT", .value = 26, .parameters = &.{} }, }, - .Dim => &[_]Enumerant{ - .{ .name = "1D", .value = 0, .parameters = &[_]OperandKind{} }, - .{ .name = "2D", .value = 1, .parameters = &[_]OperandKind{} }, - .{ .name = "3D", .value = 2, .parameters = &[_]OperandKind{} }, - .{ .name = "Cube", .value = 3, .parameters = &[_]OperandKind{} }, - .{ .name = "Rect", .value = 4, .parameters = &[_]OperandKind{} }, - .{ .name = "Buffer", .value = 5, .parameters = &[_]OperandKind{} }, - .{ .name = "SubpassData", .value = 6, .parameters = &[_]OperandKind{} }, - .{ .name = "TileImageDataEXT", .value = 4173, .parameters = &[_]OperandKind{} }, + .fp_rounding_mode => &.{ + .{ .name = "RTE", .value = 0, .parameters = &.{} }, + .{ .name = "RTZ", .value = 1, .parameters = &.{} }, + .{ .name = "RTP", .value = 2, .parameters = &.{} }, + .{ .name = "RTN", .value = 3, .parameters = &.{} }, }, - .SamplerAddressingMode => &[_]Enumerant{ - .{ .name = "None", .value = 0, .parameters = &[_]OperandKind{} }, - .{ .name = "ClampToEdge", .value = 1, .parameters = &[_]OperandKind{} }, - .{ .name = "Clamp", .value = 2, .parameters = &[_]OperandKind{} }, - .{ .name = "Repeat", .value = 3, .parameters = &[_]OperandKind{} }, - .{ .name = "RepeatMirrored", .value = 4, .parameters = &[_]OperandKind{} }, + .fp_denorm_mode => &.{ + .{ .name = "Preserve", .value = 0, .parameters = &.{} }, + .{ .name = "FlushToZero", .value = 1, .parameters = &.{} }, }, - .SamplerFilterMode => &[_]Enumerant{ - .{ .name = "Nearest", .value = 0, .parameters = &[_]OperandKind{} }, - .{ .name = "Linear", .value = 1, .parameters = &[_]OperandKind{} }, + .quantization_modes => &.{ + .{ .name = "TRN", .value = 0, .parameters = &.{} }, + .{ .name = "TRN_ZERO", .value = 1, .parameters = &.{} }, + .{ .name = "RND", .value = 2, .parameters = &.{} }, + .{ .name = "RND_ZERO", .value = 3, .parameters = &.{} }, + .{ .name = "RND_INF", .value = 4, .parameters = &.{} }, + .{ .name = "RND_MIN_INF", .value = 5, .parameters = &.{} }, + .{ .name = "RND_CONV", .value = 6, .parameters = &.{} }, + .{ .name = "RND_CONV_ODD", .value = 7, .parameters = &.{} }, }, - .ImageFormat => &[_]Enumerant{ - .{ .name = "Unknown", .value = 0, .parameters = &[_]OperandKind{} }, - .{ .name = "Rgba32f", .value = 1, .parameters = &[_]OperandKind{} }, - .{ .name = "Rgba16f", .value = 2, .parameters = &[_]OperandKind{} }, - .{ .name = "R32f", .value = 3, .parameters = &[_]OperandKind{} }, - .{ .name = "Rgba8", .value = 4, .parameters = &[_]OperandKind{} }, - .{ .name = "Rgba8Snorm", .value = 5, .parameters = &[_]OperandKind{} }, - .{ .name = "Rg32f", .value = 6, .parameters = &[_]OperandKind{} }, - .{ .name = "Rg16f", .value = 7, .parameters = &[_]OperandKind{} }, - .{ .name = "R11fG11fB10f", .value = 8, .parameters = &[_]OperandKind{} }, - .{ .name = "R16f", .value = 9, .parameters = &[_]OperandKind{} }, - .{ .name = "Rgba16", .value = 10, .parameters = &[_]OperandKind{} }, - .{ .name = "Rgb10A2", .value = 11, .parameters = &[_]OperandKind{} }, - .{ .name = "Rg16", .value = 12, .parameters = &[_]OperandKind{} }, - .{ .name = "Rg8", .value = 13, .parameters = &[_]OperandKind{} }, - .{ .name = "R16", .value = 14, .parameters = &[_]OperandKind{} }, - .{ .name = "R8", .value = 15, .parameters = &[_]OperandKind{} }, - .{ .name = "Rgba16Snorm", .value = 16, .parameters = &[_]OperandKind{} }, - .{ .name = "Rg16Snorm", .value = 17, .parameters = &[_]OperandKind{} }, - .{ .name = "Rg8Snorm", .value = 18, .parameters = &[_]OperandKind{} }, - .{ .name = "R16Snorm", .value = 19, .parameters = &[_]OperandKind{} }, - .{ .name = "R8Snorm", .value = 20, .parameters = &[_]OperandKind{} }, - .{ .name = "Rgba32i", .value = 21, .parameters = &[_]OperandKind{} }, - .{ .name = "Rgba16i", .value = 22, .parameters = &[_]OperandKind{} }, - .{ .name = "Rgba8i", .value = 23, .parameters = &[_]OperandKind{} }, - .{ .name = "R32i", .value = 24, .parameters = &[_]OperandKind{} }, - .{ .name = "Rg32i", .value = 25, .parameters = &[_]OperandKind{} }, - .{ .name = "Rg16i", .value = 26, .parameters = &[_]OperandKind{} }, - .{ .name = "Rg8i", .value = 27, .parameters = &[_]OperandKind{} }, - .{ .name = "R16i", .value = 28, .parameters = &[_]OperandKind{} }, - .{ .name = "R8i", .value = 29, .parameters = &[_]OperandKind{} }, - .{ .name = "Rgba32ui", .value = 30, .parameters = &[_]OperandKind{} }, - .{ .name = "Rgba16ui", .value = 31, .parameters = &[_]OperandKind{} }, - .{ .name = "Rgba8ui", .value = 32, .parameters = &[_]OperandKind{} }, - .{ .name = "R32ui", .value = 33, .parameters = &[_]OperandKind{} }, - .{ .name = "Rgb10a2ui", .value = 34, .parameters = &[_]OperandKind{} }, - .{ .name = "Rg32ui", .value = 35, .parameters = &[_]OperandKind{} }, - .{ .name = "Rg16ui", .value = 36, .parameters = &[_]OperandKind{} }, - .{ .name = "Rg8ui", .value = 37, .parameters = &[_]OperandKind{} }, - .{ .name = "R16ui", .value = 38, .parameters = &[_]OperandKind{} }, - .{ .name = "R8ui", .value = 39, .parameters = &[_]OperandKind{} }, - .{ .name = "R64ui", .value = 40, .parameters = &[_]OperandKind{} }, - .{ .name = "R64i", .value = 41, .parameters = &[_]OperandKind{} }, + .fp_operation_mode => &.{ + .{ .name = "IEEE", .value = 0, .parameters = &.{} }, + .{ .name = "ALT", .value = 1, .parameters = &.{} }, }, - .ImageChannelOrder => &[_]Enumerant{ - .{ .name = "R", .value = 0, .parameters = &[_]OperandKind{} }, - .{ .name = "A", .value = 1, .parameters = &[_]OperandKind{} }, - .{ .name = "RG", .value = 2, .parameters = &[_]OperandKind{} }, - .{ .name = "RA", .value = 3, .parameters = &[_]OperandKind{} }, - .{ .name = "RGB", .value = 4, .parameters = &[_]OperandKind{} }, - .{ .name = "RGBA", .value = 5, .parameters = &[_]OperandKind{} }, - .{ .name = "BGRA", .value = 6, .parameters = &[_]OperandKind{} }, - .{ .name = "ARGB", .value = 7, .parameters = &[_]OperandKind{} }, - .{ .name = "Intensity", .value = 8, .parameters = &[_]OperandKind{} }, - .{ .name = "Luminance", .value = 9, .parameters = &[_]OperandKind{} }, - .{ .name = "Rx", .value = 10, .parameters = &[_]OperandKind{} }, - .{ .name = "RGx", .value = 11, .parameters = &[_]OperandKind{} }, - .{ .name = "RGBx", .value = 12, .parameters = &[_]OperandKind{} }, - .{ .name = "Depth", .value = 13, .parameters = &[_]OperandKind{} }, - .{ .name = "DepthStencil", .value = 14, .parameters = &[_]OperandKind{} }, - .{ .name = "sRGB", .value = 15, .parameters = &[_]OperandKind{} }, - .{ .name = "sRGBx", .value = 16, .parameters = &[_]OperandKind{} }, - .{ .name = "sRGBA", .value = 17, .parameters = &[_]OperandKind{} }, - .{ .name = "sBGRA", .value = 18, .parameters = &[_]OperandKind{} }, - .{ .name = "ABGR", .value = 19, .parameters = &[_]OperandKind{} }, + .overflow_modes => &.{ + .{ .name = "WRAP", .value = 0, .parameters = &.{} }, + .{ .name = "SAT", .value = 1, .parameters = &.{} }, + .{ .name = "SAT_ZERO", .value = 2, .parameters = &.{} }, + .{ .name = "SAT_SYM", .value = 3, .parameters = &.{} }, }, - .ImageChannelDataType => &[_]Enumerant{ - .{ .name = "SnormInt8", .value = 0, .parameters = &[_]OperandKind{} }, - .{ .name = "SnormInt16", .value = 1, .parameters = &[_]OperandKind{} }, - .{ .name = "UnormInt8", .value = 2, .parameters = &[_]OperandKind{} }, - .{ .name = "UnormInt16", .value = 3, .parameters = &[_]OperandKind{} }, - .{ .name = "UnormShort565", .value = 4, .parameters = &[_]OperandKind{} }, - .{ .name = "UnormShort555", .value = 5, .parameters = &[_]OperandKind{} }, - .{ .name = "UnormInt101010", .value = 6, .parameters = &[_]OperandKind{} }, - .{ .name = "SignedInt8", .value = 7, .parameters = &[_]OperandKind{} }, - .{ .name = "SignedInt16", .value = 8, .parameters = &[_]OperandKind{} }, - .{ .name = "SignedInt32", .value = 9, .parameters = &[_]OperandKind{} }, - .{ .name = "UnsignedInt8", .value = 10, .parameters = &[_]OperandKind{} }, - .{ .name = "UnsignedInt16", .value = 11, .parameters = &[_]OperandKind{} }, - .{ .name = "UnsignedInt32", .value = 12, .parameters = &[_]OperandKind{} }, - .{ .name = "HalfFloat", .value = 13, .parameters = &[_]OperandKind{} }, - .{ .name = "Float", .value = 14, .parameters = &[_]OperandKind{} }, - .{ .name = "UnormInt24", .value = 15, .parameters = &[_]OperandKind{} }, - .{ .name = "UnormInt101010_2", .value = 16, .parameters = &[_]OperandKind{} }, - .{ .name = "UnsignedIntRaw10EXT", .value = 19, .parameters = &[_]OperandKind{} }, - .{ .name = "UnsignedIntRaw12EXT", .value = 20, .parameters = &[_]OperandKind{} }, + .linkage_type => &.{ + .{ .name = "Export", .value = 0, .parameters = &.{} }, + .{ .name = "Import", .value = 1, .parameters = &.{} }, + .{ .name = "LinkOnceODR", .value = 2, .parameters = &.{} }, }, - .FPRoundingMode => &[_]Enumerant{ - .{ .name = "RTE", .value = 0, .parameters = &[_]OperandKind{} }, - .{ .name = "RTZ", .value = 1, .parameters = &[_]OperandKind{} }, - .{ .name = "RTP", .value = 2, .parameters = &[_]OperandKind{} }, - .{ .name = "RTN", .value = 3, .parameters = &[_]OperandKind{} }, + .access_qualifier => &.{ + .{ .name = "ReadOnly", .value = 0, .parameters = &.{} }, + .{ .name = "WriteOnly", .value = 1, .parameters = &.{} }, + .{ .name = "ReadWrite", .value = 2, .parameters = &.{} }, }, - .FPDenormMode => &[_]Enumerant{ - .{ .name = "Preserve", .value = 0, .parameters = &[_]OperandKind{} }, - .{ .name = "FlushToZero", .value = 1, .parameters = &[_]OperandKind{} }, + .host_access_qualifier => &.{ + .{ .name = "NoneINTEL", .value = 0, .parameters = &.{} }, + .{ .name = "ReadINTEL", .value = 1, .parameters = &.{} }, + .{ .name = "WriteINTEL", .value = 2, .parameters = &.{} }, + .{ .name = "ReadWriteINTEL", .value = 3, .parameters = &.{} }, }, - .QuantizationModes => &[_]Enumerant{ - .{ .name = "TRN", .value = 0, .parameters = &[_]OperandKind{} }, - .{ .name = "TRN_ZERO", .value = 1, .parameters = &[_]OperandKind{} }, - .{ .name = "RND", .value = 2, .parameters = &[_]OperandKind{} }, - .{ .name = "RND_ZERO", .value = 3, .parameters = &[_]OperandKind{} }, - .{ .name = "RND_INF", .value = 4, .parameters = &[_]OperandKind{} }, - .{ .name = "RND_MIN_INF", .value = 5, .parameters = &[_]OperandKind{} }, - .{ .name = "RND_CONV", .value = 6, .parameters = &[_]OperandKind{} }, - .{ .name = "RND_CONV_ODD", .value = 7, .parameters = &[_]OperandKind{} }, + .function_parameter_attribute => &.{ + .{ .name = "Zext", .value = 0, .parameters = &.{} }, + .{ .name = "Sext", .value = 1, .parameters = &.{} }, + .{ .name = "ByVal", .value = 2, .parameters = &.{} }, + .{ .name = "Sret", .value = 3, .parameters = &.{} }, + .{ .name = "NoAlias", .value = 4, .parameters = &.{} }, + .{ .name = "NoCapture", .value = 5, .parameters = &.{} }, + .{ .name = "NoWrite", .value = 6, .parameters = &.{} }, + .{ .name = "NoReadWrite", .value = 7, .parameters = &.{} }, + .{ .name = "RuntimeAlignedINTEL", .value = 5940, .parameters = &.{} }, }, - .FPOperationMode => &[_]Enumerant{ - .{ .name = "IEEE", .value = 0, .parameters = &[_]OperandKind{} }, - .{ .name = "ALT", .value = 1, .parameters = &[_]OperandKind{} }, + .decoration => &.{ + .{ .name = "RelaxedPrecision", .value = 0, .parameters = &.{} }, + .{ .name = "SpecId", .value = 1, .parameters = &.{.literal_integer} }, + .{ .name = "Block", .value = 2, .parameters = &.{} }, + .{ .name = "BufferBlock", .value = 3, .parameters = &.{} }, + .{ .name = "RowMajor", .value = 4, .parameters = &.{} }, + .{ .name = "ColMajor", .value = 5, .parameters = &.{} }, + .{ .name = "ArrayStride", .value = 6, .parameters = &.{.literal_integer} }, + .{ .name = "MatrixStride", .value = 7, .parameters = &.{.literal_integer} }, + .{ .name = "GLSLShared", .value = 8, .parameters = &.{} }, + .{ .name = "GLSLPacked", .value = 9, .parameters = &.{} }, + .{ .name = "CPacked", .value = 10, .parameters = &.{} }, + .{ .name = "BuiltIn", .value = 11, .parameters = &.{.built_in} }, + .{ .name = "NoPerspective", .value = 13, .parameters = &.{} }, + .{ .name = "Flat", .value = 14, .parameters = &.{} }, + .{ .name = "Patch", .value = 15, .parameters = &.{} }, + .{ .name = "Centroid", .value = 16, .parameters = &.{} }, + .{ .name = "Sample", .value = 17, .parameters = &.{} }, + .{ .name = "Invariant", .value = 18, .parameters = &.{} }, + .{ .name = "Restrict", .value = 19, .parameters = &.{} }, + .{ .name = "Aliased", .value = 20, .parameters = &.{} }, + .{ .name = "Volatile", .value = 21, .parameters = &.{} }, + .{ .name = "Constant", .value = 22, .parameters = &.{} }, + .{ .name = "Coherent", .value = 23, .parameters = &.{} }, + .{ .name = "NonWritable", .value = 24, .parameters = &.{} }, + .{ .name = "NonReadable", .value = 25, .parameters = &.{} }, + .{ .name = "Uniform", .value = 26, .parameters = &.{} }, + .{ .name = "UniformId", .value = 27, .parameters = &.{.id_scope} }, + .{ .name = "SaturatedConversion", .value = 28, .parameters = &.{} }, + .{ .name = "Stream", .value = 29, .parameters = &.{.literal_integer} }, + .{ .name = "Location", .value = 30, .parameters = &.{.literal_integer} }, + .{ .name = "Component", .value = 31, .parameters = &.{.literal_integer} }, + .{ .name = "Index", .value = 32, .parameters = &.{.literal_integer} }, + .{ .name = "Binding", .value = 33, .parameters = &.{.literal_integer} }, + .{ .name = "DescriptorSet", .value = 34, .parameters = &.{.literal_integer} }, + .{ .name = "Offset", .value = 35, .parameters = &.{.literal_integer} }, + .{ .name = "XfbBuffer", .value = 36, .parameters = &.{.literal_integer} }, + .{ .name = "XfbStride", .value = 37, .parameters = &.{.literal_integer} }, + .{ .name = "FuncParamAttr", .value = 38, .parameters = &.{.function_parameter_attribute} }, + .{ .name = "FPRoundingMode", .value = 39, .parameters = &.{.fp_rounding_mode} }, + .{ .name = "FPFastMathMode", .value = 40, .parameters = &.{.fp_fast_math_mode} }, + .{ .name = "LinkageAttributes", .value = 41, .parameters = &.{ .literal_string, .linkage_type } }, + .{ .name = "NoContraction", .value = 42, .parameters = &.{} }, + .{ .name = "InputAttachmentIndex", .value = 43, .parameters = &.{.literal_integer} }, + .{ .name = "Alignment", .value = 44, .parameters = &.{.literal_integer} }, + .{ .name = "MaxByteOffset", .value = 45, .parameters = &.{.literal_integer} }, + .{ .name = "AlignmentId", .value = 46, .parameters = &.{.id_ref} }, + .{ .name = "MaxByteOffsetId", .value = 47, .parameters = &.{.id_ref} }, + .{ .name = "SaturatedToLargestFloat8NormalConversionEXT", .value = 4216, .parameters = &.{} }, + .{ .name = "NoSignedWrap", .value = 4469, .parameters = &.{} }, + .{ .name = "NoUnsignedWrap", .value = 4470, .parameters = &.{} }, + .{ .name = "WeightTextureQCOM", .value = 4487, .parameters = &.{} }, + .{ .name = "BlockMatchTextureQCOM", .value = 4488, .parameters = &.{} }, + .{ .name = "BlockMatchSamplerQCOM", .value = 4499, .parameters = &.{} }, + .{ .name = "ExplicitInterpAMD", .value = 4999, .parameters = &.{} }, + .{ .name = "NodeSharesPayloadLimitsWithAMDX", .value = 5019, .parameters = &.{.id_ref} }, + .{ .name = "NodeMaxPayloadsAMDX", .value = 5020, .parameters = &.{.id_ref} }, + .{ .name = "TrackFinishWritingAMDX", .value = 5078, .parameters = &.{} }, + .{ .name = "PayloadNodeNameAMDX", .value = 5091, .parameters = &.{.id_ref} }, + .{ .name = "PayloadNodeBaseIndexAMDX", .value = 5098, .parameters = &.{.id_ref} }, + .{ .name = "PayloadNodeSparseArrayAMDX", .value = 5099, .parameters = &.{} }, + .{ .name = "PayloadNodeArraySizeAMDX", .value = 5100, .parameters = &.{.id_ref} }, + .{ .name = "PayloadDispatchIndirectAMDX", .value = 5105, .parameters = &.{} }, + .{ .name = "OverrideCoverageNV", .value = 5248, .parameters = &.{} }, + .{ .name = "PassthroughNV", .value = 5250, .parameters = &.{} }, + .{ .name = "ViewportRelativeNV", .value = 5252, .parameters = &.{} }, + .{ .name = "SecondaryViewportRelativeNV", .value = 5256, .parameters = &.{.literal_integer} }, + .{ .name = "PerPrimitiveEXT", .value = 5271, .parameters = &.{} }, + .{ .name = "PerViewNV", .value = 5272, .parameters = &.{} }, + .{ .name = "PerTaskNV", .value = 5273, .parameters = &.{} }, + .{ .name = "PerVertexKHR", .value = 5285, .parameters = &.{} }, + .{ .name = "NonUniform", .value = 5300, .parameters = &.{} }, + .{ .name = "RestrictPointer", .value = 5355, .parameters = &.{} }, + .{ .name = "AliasedPointer", .value = 5356, .parameters = &.{} }, + .{ .name = "HitObjectShaderRecordBufferNV", .value = 5386, .parameters = &.{} }, + .{ .name = "BindlessSamplerNV", .value = 5398, .parameters = &.{} }, + .{ .name = "BindlessImageNV", .value = 5399, .parameters = &.{} }, + .{ .name = "BoundSamplerNV", .value = 5400, .parameters = &.{} }, + .{ .name = "BoundImageNV", .value = 5401, .parameters = &.{} }, + .{ .name = "SIMTCallINTEL", .value = 5599, .parameters = &.{.literal_integer} }, + .{ .name = "ReferencedIndirectlyINTEL", .value = 5602, .parameters = &.{} }, + .{ .name = "ClobberINTEL", .value = 5607, .parameters = &.{.literal_string} }, + .{ .name = "SideEffectsINTEL", .value = 5608, .parameters = &.{} }, + .{ .name = "VectorComputeVariableINTEL", .value = 5624, .parameters = &.{} }, + .{ .name = "FuncParamIOKindINTEL", .value = 5625, .parameters = &.{.literal_integer} }, + .{ .name = "VectorComputeFunctionINTEL", .value = 5626, .parameters = &.{} }, + .{ .name = "StackCallINTEL", .value = 5627, .parameters = &.{} }, + .{ .name = "GlobalVariableOffsetINTEL", .value = 5628, .parameters = &.{.literal_integer} }, + .{ .name = "CounterBuffer", .value = 5634, .parameters = &.{.id_ref} }, + .{ .name = "UserSemantic", .value = 5635, .parameters = &.{.literal_string} }, + .{ .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 = "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 = "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 = "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 = "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 = "CacheControlLoadINTEL", .value = 6442, .parameters = &.{ .literal_integer, .load_cache_control } }, + .{ .name = "CacheControlStoreINTEL", .value = 6443, .parameters = &.{ .literal_integer, .store_cache_control } }, }, - .OverflowModes => &[_]Enumerant{ - .{ .name = "WRAP", .value = 0, .parameters = &[_]OperandKind{} }, - .{ .name = "SAT", .value = 1, .parameters = &[_]OperandKind{} }, - .{ .name = "SAT_ZERO", .value = 2, .parameters = &[_]OperandKind{} }, - .{ .name = "SAT_SYM", .value = 3, .parameters = &[_]OperandKind{} }, + .built_in => &.{ + .{ .name = "Position", .value = 0, .parameters = &.{} }, + .{ .name = "PointSize", .value = 1, .parameters = &.{} }, + .{ .name = "ClipDistance", .value = 3, .parameters = &.{} }, + .{ .name = "CullDistance", .value = 4, .parameters = &.{} }, + .{ .name = "VertexId", .value = 5, .parameters = &.{} }, + .{ .name = "InstanceId", .value = 6, .parameters = &.{} }, + .{ .name = "PrimitiveId", .value = 7, .parameters = &.{} }, + .{ .name = "InvocationId", .value = 8, .parameters = &.{} }, + .{ .name = "Layer", .value = 9, .parameters = &.{} }, + .{ .name = "ViewportIndex", .value = 10, .parameters = &.{} }, + .{ .name = "TessLevelOuter", .value = 11, .parameters = &.{} }, + .{ .name = "TessLevelInner", .value = 12, .parameters = &.{} }, + .{ .name = "TessCoord", .value = 13, .parameters = &.{} }, + .{ .name = "PatchVertices", .value = 14, .parameters = &.{} }, + .{ .name = "FragCoord", .value = 15, .parameters = &.{} }, + .{ .name = "PointCoord", .value = 16, .parameters = &.{} }, + .{ .name = "FrontFacing", .value = 17, .parameters = &.{} }, + .{ .name = "SampleId", .value = 18, .parameters = &.{} }, + .{ .name = "SamplePosition", .value = 19, .parameters = &.{} }, + .{ .name = "SampleMask", .value = 20, .parameters = &.{} }, + .{ .name = "FragDepth", .value = 22, .parameters = &.{} }, + .{ .name = "HelperInvocation", .value = 23, .parameters = &.{} }, + .{ .name = "NumWorkgroups", .value = 24, .parameters = &.{} }, + .{ .name = "WorkgroupSize", .value = 25, .parameters = &.{} }, + .{ .name = "WorkgroupId", .value = 26, .parameters = &.{} }, + .{ .name = "LocalInvocationId", .value = 27, .parameters = &.{} }, + .{ .name = "GlobalInvocationId", .value = 28, .parameters = &.{} }, + .{ .name = "LocalInvocationIndex", .value = 29, .parameters = &.{} }, + .{ .name = "WorkDim", .value = 30, .parameters = &.{} }, + .{ .name = "GlobalSize", .value = 31, .parameters = &.{} }, + .{ .name = "EnqueuedWorkgroupSize", .value = 32, .parameters = &.{} }, + .{ .name = "GlobalOffset", .value = 33, .parameters = &.{} }, + .{ .name = "GlobalLinearId", .value = 34, .parameters = &.{} }, + .{ .name = "SubgroupSize", .value = 36, .parameters = &.{} }, + .{ .name = "SubgroupMaxSize", .value = 37, .parameters = &.{} }, + .{ .name = "NumSubgroups", .value = 38, .parameters = &.{} }, + .{ .name = "NumEnqueuedSubgroups", .value = 39, .parameters = &.{} }, + .{ .name = "SubgroupId", .value = 40, .parameters = &.{} }, + .{ .name = "SubgroupLocalInvocationId", .value = 41, .parameters = &.{} }, + .{ .name = "VertexIndex", .value = 42, .parameters = &.{} }, + .{ .name = "InstanceIndex", .value = 43, .parameters = &.{} }, + .{ .name = "CoreIDARM", .value = 4160, .parameters = &.{} }, + .{ .name = "CoreCountARM", .value = 4161, .parameters = &.{} }, + .{ .name = "CoreMaxIDARM", .value = 4162, .parameters = &.{} }, + .{ .name = "WarpIDARM", .value = 4163, .parameters = &.{} }, + .{ .name = "WarpMaxIDARM", .value = 4164, .parameters = &.{} }, + .{ .name = "SubgroupEqMask", .value = 4416, .parameters = &.{} }, + .{ .name = "SubgroupGeMask", .value = 4417, .parameters = &.{} }, + .{ .name = "SubgroupGtMask", .value = 4418, .parameters = &.{} }, + .{ .name = "SubgroupLeMask", .value = 4419, .parameters = &.{} }, + .{ .name = "SubgroupLtMask", .value = 4420, .parameters = &.{} }, + .{ .name = "BaseVertex", .value = 4424, .parameters = &.{} }, + .{ .name = "BaseInstance", .value = 4425, .parameters = &.{} }, + .{ .name = "DrawIndex", .value = 4426, .parameters = &.{} }, + .{ .name = "PrimitiveShadingRateKHR", .value = 4432, .parameters = &.{} }, + .{ .name = "DeviceIndex", .value = 4438, .parameters = &.{} }, + .{ .name = "ViewIndex", .value = 4440, .parameters = &.{} }, + .{ .name = "ShadingRateKHR", .value = 4444, .parameters = &.{} }, + .{ .name = "TileOffsetQCOM", .value = 4492, .parameters = &.{} }, + .{ .name = "TileDimensionQCOM", .value = 4493, .parameters = &.{} }, + .{ .name = "TileApronSizeQCOM", .value = 4494, .parameters = &.{} }, + .{ .name = "BaryCoordNoPerspAMD", .value = 4992, .parameters = &.{} }, + .{ .name = "BaryCoordNoPerspCentroidAMD", .value = 4993, .parameters = &.{} }, + .{ .name = "BaryCoordNoPerspSampleAMD", .value = 4994, .parameters = &.{} }, + .{ .name = "BaryCoordSmoothAMD", .value = 4995, .parameters = &.{} }, + .{ .name = "BaryCoordSmoothCentroidAMD", .value = 4996, .parameters = &.{} }, + .{ .name = "BaryCoordSmoothSampleAMD", .value = 4997, .parameters = &.{} }, + .{ .name = "BaryCoordPullModelAMD", .value = 4998, .parameters = &.{} }, + .{ .name = "FragStencilRefEXT", .value = 5014, .parameters = &.{} }, + .{ .name = "RemainingRecursionLevelsAMDX", .value = 5021, .parameters = &.{} }, + .{ .name = "ShaderIndexAMDX", .value = 5073, .parameters = &.{} }, + .{ .name = "ViewportMaskNV", .value = 5253, .parameters = &.{} }, + .{ .name = "SecondaryPositionNV", .value = 5257, .parameters = &.{} }, + .{ .name = "SecondaryViewportMaskNV", .value = 5258, .parameters = &.{} }, + .{ .name = "PositionPerViewNV", .value = 5261, .parameters = &.{} }, + .{ .name = "ViewportMaskPerViewNV", .value = 5262, .parameters = &.{} }, + .{ .name = "FullyCoveredEXT", .value = 5264, .parameters = &.{} }, + .{ .name = "TaskCountNV", .value = 5274, .parameters = &.{} }, + .{ .name = "PrimitiveCountNV", .value = 5275, .parameters = &.{} }, + .{ .name = "PrimitiveIndicesNV", .value = 5276, .parameters = &.{} }, + .{ .name = "ClipDistancePerViewNV", .value = 5277, .parameters = &.{} }, + .{ .name = "CullDistancePerViewNV", .value = 5278, .parameters = &.{} }, + .{ .name = "LayerPerViewNV", .value = 5279, .parameters = &.{} }, + .{ .name = "MeshViewCountNV", .value = 5280, .parameters = &.{} }, + .{ .name = "MeshViewIndicesNV", .value = 5281, .parameters = &.{} }, + .{ .name = "BaryCoordKHR", .value = 5286, .parameters = &.{} }, + .{ .name = "BaryCoordNoPerspKHR", .value = 5287, .parameters = &.{} }, + .{ .name = "FragSizeEXT", .value = 5292, .parameters = &.{} }, + .{ .name = "FragInvocationCountEXT", .value = 5293, .parameters = &.{} }, + .{ .name = "PrimitivePointIndicesEXT", .value = 5294, .parameters = &.{} }, + .{ .name = "PrimitiveLineIndicesEXT", .value = 5295, .parameters = &.{} }, + .{ .name = "PrimitiveTriangleIndicesEXT", .value = 5296, .parameters = &.{} }, + .{ .name = "CullPrimitiveEXT", .value = 5299, .parameters = &.{} }, + .{ .name = "LaunchIdKHR", .value = 5319, .parameters = &.{} }, + .{ .name = "LaunchSizeKHR", .value = 5320, .parameters = &.{} }, + .{ .name = "WorldRayOriginKHR", .value = 5321, .parameters = &.{} }, + .{ .name = "WorldRayDirectionKHR", .value = 5322, .parameters = &.{} }, + .{ .name = "ObjectRayOriginKHR", .value = 5323, .parameters = &.{} }, + .{ .name = "ObjectRayDirectionKHR", .value = 5324, .parameters = &.{} }, + .{ .name = "RayTminKHR", .value = 5325, .parameters = &.{} }, + .{ .name = "RayTmaxKHR", .value = 5326, .parameters = &.{} }, + .{ .name = "InstanceCustomIndexKHR", .value = 5327, .parameters = &.{} }, + .{ .name = "ObjectToWorldKHR", .value = 5330, .parameters = &.{} }, + .{ .name = "WorldToObjectKHR", .value = 5331, .parameters = &.{} }, + .{ .name = "HitTNV", .value = 5332, .parameters = &.{} }, + .{ .name = "HitKindKHR", .value = 5333, .parameters = &.{} }, + .{ .name = "CurrentRayTimeNV", .value = 5334, .parameters = &.{} }, + .{ .name = "HitTriangleVertexPositionsKHR", .value = 5335, .parameters = &.{} }, + .{ .name = "HitMicroTriangleVertexPositionsNV", .value = 5337, .parameters = &.{} }, + .{ .name = "HitMicroTriangleVertexBarycentricsNV", .value = 5344, .parameters = &.{} }, + .{ .name = "IncomingRayFlagsKHR", .value = 5351, .parameters = &.{} }, + .{ .name = "RayGeometryIndexKHR", .value = 5352, .parameters = &.{} }, + .{ .name = "HitIsSphereNV", .value = 5359, .parameters = &.{} }, + .{ .name = "HitIsLSSNV", .value = 5360, .parameters = &.{} }, + .{ .name = "HitSpherePositionNV", .value = 5361, .parameters = &.{} }, + .{ .name = "WarpsPerSMNV", .value = 5374, .parameters = &.{} }, + .{ .name = "SMCountNV", .value = 5375, .parameters = &.{} }, + .{ .name = "WarpIDNV", .value = 5376, .parameters = &.{} }, + .{ .name = "SMIDNV", .value = 5377, .parameters = &.{} }, + .{ .name = "HitLSSPositionsNV", .value = 5396, .parameters = &.{} }, + .{ .name = "HitKindFrontFacingMicroTriangleNV", .value = 5405, .parameters = &.{} }, + .{ .name = "HitKindBackFacingMicroTriangleNV", .value = 5406, .parameters = &.{} }, + .{ .name = "HitSphereRadiusNV", .value = 5420, .parameters = &.{} }, + .{ .name = "HitLSSRadiiNV", .value = 5421, .parameters = &.{} }, + .{ .name = "ClusterIDNV", .value = 5436, .parameters = &.{} }, + .{ .name = "CullMaskKHR", .value = 6021, .parameters = &.{} }, }, - .LinkageType => &[_]Enumerant{ - .{ .name = "Export", .value = 0, .parameters = &[_]OperandKind{} }, - .{ .name = "Import", .value = 1, .parameters = &[_]OperandKind{} }, - .{ .name = "LinkOnceODR", .value = 2, .parameters = &[_]OperandKind{} }, + .scope => &.{ + .{ .name = "CrossDevice", .value = 0, .parameters = &.{} }, + .{ .name = "Device", .value = 1, .parameters = &.{} }, + .{ .name = "Workgroup", .value = 2, .parameters = &.{} }, + .{ .name = "Subgroup", .value = 3, .parameters = &.{} }, + .{ .name = "Invocation", .value = 4, .parameters = &.{} }, + .{ .name = "QueueFamily", .value = 5, .parameters = &.{} }, + .{ .name = "ShaderCallKHR", .value = 6, .parameters = &.{} }, }, - .AccessQualifier => &[_]Enumerant{ - .{ .name = "ReadOnly", .value = 0, .parameters = &[_]OperandKind{} }, - .{ .name = "WriteOnly", .value = 1, .parameters = &[_]OperandKind{} }, - .{ .name = "ReadWrite", .value = 2, .parameters = &[_]OperandKind{} }, + .group_operation => &.{ + .{ .name = "Reduce", .value = 0, .parameters = &.{} }, + .{ .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 = &.{} }, }, - .HostAccessQualifier => &[_]Enumerant{ - .{ .name = "NoneINTEL", .value = 0, .parameters = &[_]OperandKind{} }, - .{ .name = "ReadINTEL", .value = 1, .parameters = &[_]OperandKind{} }, - .{ .name = "WriteINTEL", .value = 2, .parameters = &[_]OperandKind{} }, - .{ .name = "ReadWriteINTEL", .value = 3, .parameters = &[_]OperandKind{} }, + .kernel_enqueue_flags => &.{ + .{ .name = "NoWait", .value = 0, .parameters = &.{} }, + .{ .name = "WaitKernel", .value = 1, .parameters = &.{} }, + .{ .name = "WaitWorkGroup", .value = 2, .parameters = &.{} }, }, - .FunctionParameterAttribute => &[_]Enumerant{ - .{ .name = "Zext", .value = 0, .parameters = &[_]OperandKind{} }, - .{ .name = "Sext", .value = 1, .parameters = &[_]OperandKind{} }, - .{ .name = "ByVal", .value = 2, .parameters = &[_]OperandKind{} }, - .{ .name = "Sret", .value = 3, .parameters = &[_]OperandKind{} }, - .{ .name = "NoAlias", .value = 4, .parameters = &[_]OperandKind{} }, - .{ .name = "NoCapture", .value = 5, .parameters = &[_]OperandKind{} }, - .{ .name = "NoWrite", .value = 6, .parameters = &[_]OperandKind{} }, - .{ .name = "NoReadWrite", .value = 7, .parameters = &[_]OperandKind{} }, - .{ .name = "RuntimeAlignedINTEL", .value = 5940, .parameters = &[_]OperandKind{} }, + .capability => &.{ + .{ .name = "Matrix", .value = 0, .parameters = &.{} }, + .{ .name = "Shader", .value = 1, .parameters = &.{} }, + .{ .name = "Geometry", .value = 2, .parameters = &.{} }, + .{ .name = "Tessellation", .value = 3, .parameters = &.{} }, + .{ .name = "Addresses", .value = 4, .parameters = &.{} }, + .{ .name = "Linkage", .value = 5, .parameters = &.{} }, + .{ .name = "Kernel", .value = 6, .parameters = &.{} }, + .{ .name = "Vector16", .value = 7, .parameters = &.{} }, + .{ .name = "Float16Buffer", .value = 8, .parameters = &.{} }, + .{ .name = "Float16", .value = 9, .parameters = &.{} }, + .{ .name = "Float64", .value = 10, .parameters = &.{} }, + .{ .name = "Int64", .value = 11, .parameters = &.{} }, + .{ .name = "Int64Atomics", .value = 12, .parameters = &.{} }, + .{ .name = "ImageBasic", .value = 13, .parameters = &.{} }, + .{ .name = "ImageReadWrite", .value = 14, .parameters = &.{} }, + .{ .name = "ImageMipmap", .value = 15, .parameters = &.{} }, + .{ .name = "Pipes", .value = 17, .parameters = &.{} }, + .{ .name = "Groups", .value = 18, .parameters = &.{} }, + .{ .name = "DeviceEnqueue", .value = 19, .parameters = &.{} }, + .{ .name = "LiteralSampler", .value = 20, .parameters = &.{} }, + .{ .name = "AtomicStorage", .value = 21, .parameters = &.{} }, + .{ .name = "Int16", .value = 22, .parameters = &.{} }, + .{ .name = "TessellationPointSize", .value = 23, .parameters = &.{} }, + .{ .name = "GeometryPointSize", .value = 24, .parameters = &.{} }, + .{ .name = "ImageGatherExtended", .value = 25, .parameters = &.{} }, + .{ .name = "StorageImageMultisample", .value = 27, .parameters = &.{} }, + .{ .name = "UniformBufferArrayDynamicIndexing", .value = 28, .parameters = &.{} }, + .{ .name = "SampledImageArrayDynamicIndexing", .value = 29, .parameters = &.{} }, + .{ .name = "StorageBufferArrayDynamicIndexing", .value = 30, .parameters = &.{} }, + .{ .name = "StorageImageArrayDynamicIndexing", .value = 31, .parameters = &.{} }, + .{ .name = "ClipDistance", .value = 32, .parameters = &.{} }, + .{ .name = "CullDistance", .value = 33, .parameters = &.{} }, + .{ .name = "ImageCubeArray", .value = 34, .parameters = &.{} }, + .{ .name = "SampleRateShading", .value = 35, .parameters = &.{} }, + .{ .name = "ImageRect", .value = 36, .parameters = &.{} }, + .{ .name = "SampledRect", .value = 37, .parameters = &.{} }, + .{ .name = "GenericPointer", .value = 38, .parameters = &.{} }, + .{ .name = "Int8", .value = 39, .parameters = &.{} }, + .{ .name = "InputAttachment", .value = 40, .parameters = &.{} }, + .{ .name = "SparseResidency", .value = 41, .parameters = &.{} }, + .{ .name = "MinLod", .value = 42, .parameters = &.{} }, + .{ .name = "Sampled1D", .value = 43, .parameters = &.{} }, + .{ .name = "Image1D", .value = 44, .parameters = &.{} }, + .{ .name = "SampledCubeArray", .value = 45, .parameters = &.{} }, + .{ .name = "SampledBuffer", .value = 46, .parameters = &.{} }, + .{ .name = "ImageBuffer", .value = 47, .parameters = &.{} }, + .{ .name = "ImageMSArray", .value = 48, .parameters = &.{} }, + .{ .name = "StorageImageExtendedFormats", .value = 49, .parameters = &.{} }, + .{ .name = "ImageQuery", .value = 50, .parameters = &.{} }, + .{ .name = "DerivativeControl", .value = 51, .parameters = &.{} }, + .{ .name = "InterpolationFunction", .value = 52, .parameters = &.{} }, + .{ .name = "TransformFeedback", .value = 53, .parameters = &.{} }, + .{ .name = "GeometryStreams", .value = 54, .parameters = &.{} }, + .{ .name = "StorageImageReadWithoutFormat", .value = 55, .parameters = &.{} }, + .{ .name = "StorageImageWriteWithoutFormat", .value = 56, .parameters = &.{} }, + .{ .name = "MultiViewport", .value = 57, .parameters = &.{} }, + .{ .name = "SubgroupDispatch", .value = 58, .parameters = &.{} }, + .{ .name = "NamedBarrier", .value = 59, .parameters = &.{} }, + .{ .name = "PipeStorage", .value = 60, .parameters = &.{} }, + .{ .name = "GroupNonUniform", .value = 61, .parameters = &.{} }, + .{ .name = "GroupNonUniformVote", .value = 62, .parameters = &.{} }, + .{ .name = "GroupNonUniformArithmetic", .value = 63, .parameters = &.{} }, + .{ .name = "GroupNonUniformBallot", .value = 64, .parameters = &.{} }, + .{ .name = "GroupNonUniformShuffle", .value = 65, .parameters = &.{} }, + .{ .name = "GroupNonUniformShuffleRelative", .value = 66, .parameters = &.{} }, + .{ .name = "GroupNonUniformClustered", .value = 67, .parameters = &.{} }, + .{ .name = "GroupNonUniformQuad", .value = 68, .parameters = &.{} }, + .{ .name = "ShaderLayer", .value = 69, .parameters = &.{} }, + .{ .name = "ShaderViewportIndex", .value = 70, .parameters = &.{} }, + .{ .name = "UniformDecoration", .value = 71, .parameters = &.{} }, + .{ .name = "CoreBuiltinsARM", .value = 4165, .parameters = &.{} }, + .{ .name = "TileImageColorReadAccessEXT", .value = 4166, .parameters = &.{} }, + .{ .name = "TileImageDepthReadAccessEXT", .value = 4167, .parameters = &.{} }, + .{ .name = "TileImageStencilReadAccessEXT", .value = 4168, .parameters = &.{} }, + .{ .name = "TensorsARM", .value = 4174, .parameters = &.{} }, + .{ .name = "StorageTensorArrayDynamicIndexingARM", .value = 4175, .parameters = &.{} }, + .{ .name = "StorageTensorArrayNonUniformIndexingARM", .value = 4176, .parameters = &.{} }, + .{ .name = "GraphARM", .value = 4191, .parameters = &.{} }, + .{ .name = "CooperativeMatrixLayoutsARM", .value = 4201, .parameters = &.{} }, + .{ .name = "Float8EXT", .value = 4212, .parameters = &.{} }, + .{ .name = "Float8CooperativeMatrixEXT", .value = 4213, .parameters = &.{} }, + .{ .name = "FragmentShadingRateKHR", .value = 4422, .parameters = &.{} }, + .{ .name = "SubgroupBallotKHR", .value = 4423, .parameters = &.{} }, + .{ .name = "DrawParameters", .value = 4427, .parameters = &.{} }, + .{ .name = "WorkgroupMemoryExplicitLayoutKHR", .value = 4428, .parameters = &.{} }, + .{ .name = "WorkgroupMemoryExplicitLayout8BitAccessKHR", .value = 4429, .parameters = &.{} }, + .{ .name = "WorkgroupMemoryExplicitLayout16BitAccessKHR", .value = 4430, .parameters = &.{} }, + .{ .name = "SubgroupVoteKHR", .value = 4431, .parameters = &.{} }, + .{ .name = "StorageBuffer16BitAccess", .value = 4433, .parameters = &.{} }, + .{ .name = "UniformAndStorageBuffer16BitAccess", .value = 4434, .parameters = &.{} }, + .{ .name = "StoragePushConstant16", .value = 4435, .parameters = &.{} }, + .{ .name = "StorageInputOutput16", .value = 4436, .parameters = &.{} }, + .{ .name = "DeviceGroup", .value = 4437, .parameters = &.{} }, + .{ .name = "MultiView", .value = 4439, .parameters = &.{} }, + .{ .name = "VariablePointersStorageBuffer", .value = 4441, .parameters = &.{} }, + .{ .name = "VariablePointers", .value = 4442, .parameters = &.{} }, + .{ .name = "AtomicStorageOps", .value = 4445, .parameters = &.{} }, + .{ .name = "SampleMaskPostDepthCoverage", .value = 4447, .parameters = &.{} }, + .{ .name = "StorageBuffer8BitAccess", .value = 4448, .parameters = &.{} }, + .{ .name = "UniformAndStorageBuffer8BitAccess", .value = 4449, .parameters = &.{} }, + .{ .name = "StoragePushConstant8", .value = 4450, .parameters = &.{} }, + .{ .name = "DenormPreserve", .value = 4464, .parameters = &.{} }, + .{ .name = "DenormFlushToZero", .value = 4465, .parameters = &.{} }, + .{ .name = "SignedZeroInfNanPreserve", .value = 4466, .parameters = &.{} }, + .{ .name = "RoundingModeRTE", .value = 4467, .parameters = &.{} }, + .{ .name = "RoundingModeRTZ", .value = 4468, .parameters = &.{} }, + .{ .name = "RayQueryProvisionalKHR", .value = 4471, .parameters = &.{} }, + .{ .name = "RayQueryKHR", .value = 4472, .parameters = &.{} }, + .{ .name = "UntypedPointersKHR", .value = 4473, .parameters = &.{} }, + .{ .name = "RayTraversalPrimitiveCullingKHR", .value = 4478, .parameters = &.{} }, + .{ .name = "RayTracingKHR", .value = 4479, .parameters = &.{} }, + .{ .name = "TextureSampleWeightedQCOM", .value = 4484, .parameters = &.{} }, + .{ .name = "TextureBoxFilterQCOM", .value = 4485, .parameters = &.{} }, + .{ .name = "TextureBlockMatchQCOM", .value = 4486, .parameters = &.{} }, + .{ .name = "TileShadingQCOM", .value = 4495, .parameters = &.{} }, + .{ .name = "TextureBlockMatch2QCOM", .value = 4498, .parameters = &.{} }, + .{ .name = "Float16ImageAMD", .value = 5008, .parameters = &.{} }, + .{ .name = "ImageGatherBiasLodAMD", .value = 5009, .parameters = &.{} }, + .{ .name = "FragmentMaskAMD", .value = 5010, .parameters = &.{} }, + .{ .name = "StencilExportEXT", .value = 5013, .parameters = &.{} }, + .{ .name = "ImageReadWriteLodAMD", .value = 5015, .parameters = &.{} }, + .{ .name = "Int64ImageEXT", .value = 5016, .parameters = &.{} }, + .{ .name = "ShaderClockKHR", .value = 5055, .parameters = &.{} }, + .{ .name = "ShaderEnqueueAMDX", .value = 5067, .parameters = &.{} }, + .{ .name = "QuadControlKHR", .value = 5087, .parameters = &.{} }, + .{ .name = "Int4TypeINTEL", .value = 5112, .parameters = &.{} }, + .{ .name = "Int4CooperativeMatrixINTEL", .value = 5114, .parameters = &.{} }, + .{ .name = "BFloat16TypeKHR", .value = 5116, .parameters = &.{} }, + .{ .name = "BFloat16DotProductKHR", .value = 5117, .parameters = &.{} }, + .{ .name = "BFloat16CooperativeMatrixKHR", .value = 5118, .parameters = &.{} }, + .{ .name = "SampleMaskOverrideCoverageNV", .value = 5249, .parameters = &.{} }, + .{ .name = "GeometryShaderPassthroughNV", .value = 5251, .parameters = &.{} }, + .{ .name = "ShaderViewportIndexLayerEXT", .value = 5254, .parameters = &.{} }, + .{ .name = "ShaderViewportMaskNV", .value = 5255, .parameters = &.{} }, + .{ .name = "ShaderStereoViewNV", .value = 5259, .parameters = &.{} }, + .{ .name = "PerViewAttributesNV", .value = 5260, .parameters = &.{} }, + .{ .name = "FragmentFullyCoveredEXT", .value = 5265, .parameters = &.{} }, + .{ .name = "MeshShadingNV", .value = 5266, .parameters = &.{} }, + .{ .name = "ImageFootprintNV", .value = 5282, .parameters = &.{} }, + .{ .name = "MeshShadingEXT", .value = 5283, .parameters = &.{} }, + .{ .name = "FragmentBarycentricKHR", .value = 5284, .parameters = &.{} }, + .{ .name = "ComputeDerivativeGroupQuadsKHR", .value = 5288, .parameters = &.{} }, + .{ .name = "FragmentDensityEXT", .value = 5291, .parameters = &.{} }, + .{ .name = "GroupNonUniformPartitionedNV", .value = 5297, .parameters = &.{} }, + .{ .name = "ShaderNonUniform", .value = 5301, .parameters = &.{} }, + .{ .name = "RuntimeDescriptorArray", .value = 5302, .parameters = &.{} }, + .{ .name = "InputAttachmentArrayDynamicIndexing", .value = 5303, .parameters = &.{} }, + .{ .name = "UniformTexelBufferArrayDynamicIndexing", .value = 5304, .parameters = &.{} }, + .{ .name = "StorageTexelBufferArrayDynamicIndexing", .value = 5305, .parameters = &.{} }, + .{ .name = "UniformBufferArrayNonUniformIndexing", .value = 5306, .parameters = &.{} }, + .{ .name = "SampledImageArrayNonUniformIndexing", .value = 5307, .parameters = &.{} }, + .{ .name = "StorageBufferArrayNonUniformIndexing", .value = 5308, .parameters = &.{} }, + .{ .name = "StorageImageArrayNonUniformIndexing", .value = 5309, .parameters = &.{} }, + .{ .name = "InputAttachmentArrayNonUniformIndexing", .value = 5310, .parameters = &.{} }, + .{ .name = "UniformTexelBufferArrayNonUniformIndexing", .value = 5311, .parameters = &.{} }, + .{ .name = "StorageTexelBufferArrayNonUniformIndexing", .value = 5312, .parameters = &.{} }, + .{ .name = "RayTracingPositionFetchKHR", .value = 5336, .parameters = &.{} }, + .{ .name = "RayTracingNV", .value = 5340, .parameters = &.{} }, + .{ .name = "RayTracingMotionBlurNV", .value = 5341, .parameters = &.{} }, + .{ .name = "VulkanMemoryModel", .value = 5345, .parameters = &.{} }, + .{ .name = "VulkanMemoryModelDeviceScope", .value = 5346, .parameters = &.{} }, + .{ .name = "PhysicalStorageBufferAddresses", .value = 5347, .parameters = &.{} }, + .{ .name = "ComputeDerivativeGroupLinearKHR", .value = 5350, .parameters = &.{} }, + .{ .name = "RayTracingProvisionalKHR", .value = 5353, .parameters = &.{} }, + .{ .name = "CooperativeMatrixNV", .value = 5357, .parameters = &.{} }, + .{ .name = "FragmentShaderSampleInterlockEXT", .value = 5363, .parameters = &.{} }, + .{ .name = "FragmentShaderShadingRateInterlockEXT", .value = 5372, .parameters = &.{} }, + .{ .name = "ShaderSMBuiltinsNV", .value = 5373, .parameters = &.{} }, + .{ .name = "FragmentShaderPixelInterlockEXT", .value = 5378, .parameters = &.{} }, + .{ .name = "DemoteToHelperInvocation", .value = 5379, .parameters = &.{} }, + .{ .name = "DisplacementMicromapNV", .value = 5380, .parameters = &.{} }, + .{ .name = "RayTracingOpacityMicromapEXT", .value = 5381, .parameters = &.{} }, + .{ .name = "ShaderInvocationReorderNV", .value = 5383, .parameters = &.{} }, + .{ .name = "BindlessTextureNV", .value = 5390, .parameters = &.{} }, + .{ .name = "RayQueryPositionFetchKHR", .value = 5391, .parameters = &.{} }, + .{ .name = "CooperativeVectorNV", .value = 5394, .parameters = &.{} }, + .{ .name = "AtomicFloat16VectorNV", .value = 5404, .parameters = &.{} }, + .{ .name = "RayTracingDisplacementMicromapNV", .value = 5409, .parameters = &.{} }, + .{ .name = "RawAccessChainsNV", .value = 5414, .parameters = &.{} }, + .{ .name = "RayTracingSpheresGeometryNV", .value = 5418, .parameters = &.{} }, + .{ .name = "RayTracingLinearSweptSpheresGeometryNV", .value = 5419, .parameters = &.{} }, + .{ .name = "CooperativeMatrixReductionsNV", .value = 5430, .parameters = &.{} }, + .{ .name = "CooperativeMatrixConversionsNV", .value = 5431, .parameters = &.{} }, + .{ .name = "CooperativeMatrixPerElementOperationsNV", .value = 5432, .parameters = &.{} }, + .{ .name = "CooperativeMatrixTensorAddressingNV", .value = 5433, .parameters = &.{} }, + .{ .name = "CooperativeMatrixBlockLoadsNV", .value = 5434, .parameters = &.{} }, + .{ .name = "CooperativeVectorTrainingNV", .value = 5435, .parameters = &.{} }, + .{ .name = "RayTracingClusterAccelerationStructureNV", .value = 5437, .parameters = &.{} }, + .{ .name = "TensorAddressingNV", .value = 5439, .parameters = &.{} }, + .{ .name = "SubgroupShuffleINTEL", .value = 5568, .parameters = &.{} }, + .{ .name = "SubgroupBufferBlockIOINTEL", .value = 5569, .parameters = &.{} }, + .{ .name = "SubgroupImageBlockIOINTEL", .value = 5570, .parameters = &.{} }, + .{ .name = "SubgroupImageMediaBlockIOINTEL", .value = 5579, .parameters = &.{} }, + .{ .name = "RoundToInfinityINTEL", .value = 5582, .parameters = &.{} }, + .{ .name = "FloatingPointModeINTEL", .value = 5583, .parameters = &.{} }, + .{ .name = "IntegerFunctions2INTEL", .value = 5584, .parameters = &.{} }, + .{ .name = "FunctionPointersINTEL", .value = 5603, .parameters = &.{} }, + .{ .name = "IndirectReferencesINTEL", .value = 5604, .parameters = &.{} }, + .{ .name = "AsmINTEL", .value = 5606, .parameters = &.{} }, + .{ .name = "AtomicFloat32MinMaxEXT", .value = 5612, .parameters = &.{} }, + .{ .name = "AtomicFloat64MinMaxEXT", .value = 5613, .parameters = &.{} }, + .{ .name = "AtomicFloat16MinMaxEXT", .value = 5616, .parameters = &.{} }, + .{ .name = "VectorComputeINTEL", .value = 5617, .parameters = &.{} }, + .{ .name = "VectorAnyINTEL", .value = 5619, .parameters = &.{} }, + .{ .name = "ExpectAssumeKHR", .value = 5629, .parameters = &.{} }, + .{ .name = "SubgroupAvcMotionEstimationINTEL", .value = 5696, .parameters = &.{} }, + .{ .name = "SubgroupAvcMotionEstimationIntraINTEL", .value = 5697, .parameters = &.{} }, + .{ .name = "SubgroupAvcMotionEstimationChromaINTEL", .value = 5698, .parameters = &.{} }, + .{ .name = "VariableLengthArrayINTEL", .value = 5817, .parameters = &.{} }, + .{ .name = "FunctionFloatControlINTEL", .value = 5821, .parameters = &.{} }, + .{ .name = "FPGAMemoryAttributesINTEL", .value = 5824, .parameters = &.{} }, + .{ .name = "FPFastMathModeINTEL", .value = 5837, .parameters = &.{} }, + .{ .name = "ArbitraryPrecisionIntegersINTEL", .value = 5844, .parameters = &.{} }, + .{ .name = "ArbitraryPrecisionFloatingPointINTEL", .value = 5845, .parameters = &.{} }, + .{ .name = "UnstructuredLoopControlsINTEL", .value = 5886, .parameters = &.{} }, + .{ .name = "FPGALoopControlsINTEL", .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 = "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 = "DotProductInputAll", .value = 6016, .parameters = &.{} }, + .{ .name = "DotProductInput4x8Bit", .value = 6017, .parameters = &.{} }, + .{ .name = "DotProductInput4x8BitPacked", .value = 6018, .parameters = &.{} }, + .{ .name = "DotProduct", .value = 6019, .parameters = &.{} }, + .{ .name = "RayCullMaskKHR", .value = 6020, .parameters = &.{} }, + .{ .name = "CooperativeMatrixKHR", .value = 6022, .parameters = &.{} }, + .{ .name = "ReplicatedCompositesEXT", .value = 6024, .parameters = &.{} }, + .{ .name = "BitInstructions", .value = 6025, .parameters = &.{} }, + .{ .name = "GroupNonUniformRotateKHR", .value = 6026, .parameters = &.{} }, + .{ .name = "FloatControls2", .value = 6029, .parameters = &.{} }, + .{ .name = "AtomicFloat32AddEXT", .value = 6033, .parameters = &.{} }, + .{ .name = "AtomicFloat64AddEXT", .value = 6034, .parameters = &.{} }, + .{ .name = "LongCompositesINTEL", .value = 6089, .parameters = &.{} }, + .{ .name = "OptNoneEXT", .value = 6094, .parameters = &.{} }, + .{ .name = "AtomicFloat16AddEXT", .value = 6095, .parameters = &.{} }, + .{ .name = "DebugInfoModuleINTEL", .value = 6114, .parameters = &.{} }, + .{ .name = "BFloat16ConversionINTEL", .value = 6115, .parameters = &.{} }, + .{ .name = "SplitBarrierINTEL", .value = 6141, .parameters = &.{} }, + .{ .name = "ArithmeticFenceEXT", .value = 6144, .parameters = &.{} }, + .{ .name = "FPGAClusterAttributesV2INTEL", .value = 6150, .parameters = &.{} }, + .{ .name = "FPGAKernelAttributesv2INTEL", .value = 6161, .parameters = &.{} }, + .{ .name = "TaskSequenceINTEL", .value = 6162, .parameters = &.{} }, + .{ .name = "FPMaxErrorINTEL", .value = 6169, .parameters = &.{} }, + .{ .name = "FPGALatencyControlINTEL", .value = 6171, .parameters = &.{} }, + .{ .name = "FPGAArgumentInterfacesINTEL", .value = 6174, .parameters = &.{} }, + .{ .name = "GlobalVariableHostAccessINTEL", .value = 6187, .parameters = &.{} }, + .{ .name = "GlobalVariableFPGADecorationsINTEL", .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 = "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 = &.{} }, }, - .Decoration => &[_]Enumerant{ - .{ .name = "RelaxedPrecision", .value = 0, .parameters = &[_]OperandKind{} }, - .{ .name = "SpecId", .value = 1, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "Block", .value = 2, .parameters = &[_]OperandKind{} }, - .{ .name = "BufferBlock", .value = 3, .parameters = &[_]OperandKind{} }, - .{ .name = "RowMajor", .value = 4, .parameters = &[_]OperandKind{} }, - .{ .name = "ColMajor", .value = 5, .parameters = &[_]OperandKind{} }, - .{ .name = "ArrayStride", .value = 6, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "MatrixStride", .value = 7, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "GLSLShared", .value = 8, .parameters = &[_]OperandKind{} }, - .{ .name = "GLSLPacked", .value = 9, .parameters = &[_]OperandKind{} }, - .{ .name = "CPacked", .value = 10, .parameters = &[_]OperandKind{} }, - .{ .name = "BuiltIn", .value = 11, .parameters = &[_]OperandKind{.BuiltIn} }, - .{ .name = "NoPerspective", .value = 13, .parameters = &[_]OperandKind{} }, - .{ .name = "Flat", .value = 14, .parameters = &[_]OperandKind{} }, - .{ .name = "Patch", .value = 15, .parameters = &[_]OperandKind{} }, - .{ .name = "Centroid", .value = 16, .parameters = &[_]OperandKind{} }, - .{ .name = "Sample", .value = 17, .parameters = &[_]OperandKind{} }, - .{ .name = "Invariant", .value = 18, .parameters = &[_]OperandKind{} }, - .{ .name = "Restrict", .value = 19, .parameters = &[_]OperandKind{} }, - .{ .name = "Aliased", .value = 20, .parameters = &[_]OperandKind{} }, - .{ .name = "Volatile", .value = 21, .parameters = &[_]OperandKind{} }, - .{ .name = "Constant", .value = 22, .parameters = &[_]OperandKind{} }, - .{ .name = "Coherent", .value = 23, .parameters = &[_]OperandKind{} }, - .{ .name = "NonWritable", .value = 24, .parameters = &[_]OperandKind{} }, - .{ .name = "NonReadable", .value = 25, .parameters = &[_]OperandKind{} }, - .{ .name = "Uniform", .value = 26, .parameters = &[_]OperandKind{} }, - .{ .name = "UniformId", .value = 27, .parameters = &[_]OperandKind{.IdScope} }, - .{ .name = "SaturatedConversion", .value = 28, .parameters = &[_]OperandKind{} }, - .{ .name = "Stream", .value = 29, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "Location", .value = 30, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "Component", .value = 31, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "Index", .value = 32, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "Binding", .value = 33, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "DescriptorSet", .value = 34, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "Offset", .value = 35, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "XfbBuffer", .value = 36, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "XfbStride", .value = 37, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "FuncParamAttr", .value = 38, .parameters = &[_]OperandKind{.FunctionParameterAttribute} }, - .{ .name = "FPRoundingMode", .value = 39, .parameters = &[_]OperandKind{.FPRoundingMode} }, - .{ .name = "FPFastMathMode", .value = 40, .parameters = &[_]OperandKind{.FPFastMathMode} }, - .{ .name = "LinkageAttributes", .value = 41, .parameters = &[_]OperandKind{ .LiteralString, .LinkageType } }, - .{ .name = "NoContraction", .value = 42, .parameters = &[_]OperandKind{} }, - .{ .name = "InputAttachmentIndex", .value = 43, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "Alignment", .value = 44, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "MaxByteOffset", .value = 45, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "AlignmentId", .value = 46, .parameters = &[_]OperandKind{.IdRef} }, - .{ .name = "MaxByteOffsetId", .value = 47, .parameters = &[_]OperandKind{.IdRef} }, - .{ .name = "NoSignedWrap", .value = 4469, .parameters = &[_]OperandKind{} }, - .{ .name = "NoUnsignedWrap", .value = 4470, .parameters = &[_]OperandKind{} }, - .{ .name = "WeightTextureQCOM", .value = 4487, .parameters = &[_]OperandKind{} }, - .{ .name = "BlockMatchTextureQCOM", .value = 4488, .parameters = &[_]OperandKind{} }, - .{ .name = "BlockMatchSamplerQCOM", .value = 4499, .parameters = &[_]OperandKind{} }, - .{ .name = "ExplicitInterpAMD", .value = 4999, .parameters = &[_]OperandKind{} }, - .{ .name = "NodeSharesPayloadLimitsWithAMDX", .value = 5019, .parameters = &[_]OperandKind{.IdRef} }, - .{ .name = "NodeMaxPayloadsAMDX", .value = 5020, .parameters = &[_]OperandKind{.IdRef} }, - .{ .name = "TrackFinishWritingAMDX", .value = 5078, .parameters = &[_]OperandKind{} }, - .{ .name = "PayloadNodeNameAMDX", .value = 5091, .parameters = &[_]OperandKind{.LiteralString} }, - .{ .name = "OverrideCoverageNV", .value = 5248, .parameters = &[_]OperandKind{} }, - .{ .name = "PassthroughNV", .value = 5250, .parameters = &[_]OperandKind{} }, - .{ .name = "ViewportRelativeNV", .value = 5252, .parameters = &[_]OperandKind{} }, - .{ .name = "SecondaryViewportRelativeNV", .value = 5256, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "PerPrimitiveNV", .value = 5271, .parameters = &[_]OperandKind{} }, - .{ .name = "PerPrimitiveEXT", .value = 5271, .parameters = &[_]OperandKind{} }, - .{ .name = "PerViewNV", .value = 5272, .parameters = &[_]OperandKind{} }, - .{ .name = "PerTaskNV", .value = 5273, .parameters = &[_]OperandKind{} }, - .{ .name = "PerVertexKHR", .value = 5285, .parameters = &[_]OperandKind{} }, - .{ .name = "PerVertexNV", .value = 5285, .parameters = &[_]OperandKind{} }, - .{ .name = "NonUniform", .value = 5300, .parameters = &[_]OperandKind{} }, - .{ .name = "NonUniformEXT", .value = 5300, .parameters = &[_]OperandKind{} }, - .{ .name = "RestrictPointer", .value = 5355, .parameters = &[_]OperandKind{} }, - .{ .name = "RestrictPointerEXT", .value = 5355, .parameters = &[_]OperandKind{} }, - .{ .name = "AliasedPointer", .value = 5356, .parameters = &[_]OperandKind{} }, - .{ .name = "AliasedPointerEXT", .value = 5356, .parameters = &[_]OperandKind{} }, - .{ .name = "HitObjectShaderRecordBufferNV", .value = 5386, .parameters = &[_]OperandKind{} }, - .{ .name = "BindlessSamplerNV", .value = 5398, .parameters = &[_]OperandKind{} }, - .{ .name = "BindlessImageNV", .value = 5399, .parameters = &[_]OperandKind{} }, - .{ .name = "BoundSamplerNV", .value = 5400, .parameters = &[_]OperandKind{} }, - .{ .name = "BoundImageNV", .value = 5401, .parameters = &[_]OperandKind{} }, - .{ .name = "SIMTCallINTEL", .value = 5599, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "ReferencedIndirectlyINTEL", .value = 5602, .parameters = &[_]OperandKind{} }, - .{ .name = "ClobberINTEL", .value = 5607, .parameters = &[_]OperandKind{.LiteralString} }, - .{ .name = "SideEffectsINTEL", .value = 5608, .parameters = &[_]OperandKind{} }, - .{ .name = "VectorComputeVariableINTEL", .value = 5624, .parameters = &[_]OperandKind{} }, - .{ .name = "FuncParamIOKindINTEL", .value = 5625, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "VectorComputeFunctionINTEL", .value = 5626, .parameters = &[_]OperandKind{} }, - .{ .name = "StackCallINTEL", .value = 5627, .parameters = &[_]OperandKind{} }, - .{ .name = "GlobalVariableOffsetINTEL", .value = 5628, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "CounterBuffer", .value = 5634, .parameters = &[_]OperandKind{.IdRef} }, - .{ .name = "HlslCounterBufferGOOGLE", .value = 5634, .parameters = &[_]OperandKind{.IdRef} }, - .{ .name = "UserSemantic", .value = 5635, .parameters = &[_]OperandKind{.LiteralString} }, - .{ .name = "HlslSemanticGOOGLE", .value = 5635, .parameters = &[_]OperandKind{.LiteralString} }, - .{ .name = "UserTypeGOOGLE", .value = 5636, .parameters = &[_]OperandKind{.LiteralString} }, - .{ .name = "FunctionRoundingModeINTEL", .value = 5822, .parameters = &[_]OperandKind{ .LiteralInteger, .FPRoundingMode } }, - .{ .name = "FunctionDenormModeINTEL", .value = 5823, .parameters = &[_]OperandKind{ .LiteralInteger, .FPDenormMode } }, - .{ .name = "RegisterINTEL", .value = 5825, .parameters = &[_]OperandKind{} }, - .{ .name = "MemoryINTEL", .value = 5826, .parameters = &[_]OperandKind{.LiteralString} }, - .{ .name = "NumbanksINTEL", .value = 5827, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "BankwidthINTEL", .value = 5828, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "MaxPrivateCopiesINTEL", .value = 5829, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "SinglepumpINTEL", .value = 5830, .parameters = &[_]OperandKind{} }, - .{ .name = "DoublepumpINTEL", .value = 5831, .parameters = &[_]OperandKind{} }, - .{ .name = "MaxReplicatesINTEL", .value = 5832, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "SimpleDualPortINTEL", .value = 5833, .parameters = &[_]OperandKind{} }, - .{ .name = "MergeINTEL", .value = 5834, .parameters = &[_]OperandKind{ .LiteralString, .LiteralString } }, - .{ .name = "BankBitsINTEL", .value = 5835, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "ForcePow2DepthINTEL", .value = 5836, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "StridesizeINTEL", .value = 5883, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "WordsizeINTEL", .value = 5884, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "TrueDualPortINTEL", .value = 5885, .parameters = &[_]OperandKind{} }, - .{ .name = "BurstCoalesceINTEL", .value = 5899, .parameters = &[_]OperandKind{} }, - .{ .name = "CacheSizeINTEL", .value = 5900, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "DontStaticallyCoalesceINTEL", .value = 5901, .parameters = &[_]OperandKind{} }, - .{ .name = "PrefetchINTEL", .value = 5902, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "StallEnableINTEL", .value = 5905, .parameters = &[_]OperandKind{} }, - .{ .name = "FuseLoopsInFunctionINTEL", .value = 5907, .parameters = &[_]OperandKind{} }, - .{ .name = "MathOpDSPModeINTEL", .value = 5909, .parameters = &[_]OperandKind{ .LiteralInteger, .LiteralInteger } }, - .{ .name = "AliasScopeINTEL", .value = 5914, .parameters = &[_]OperandKind{.IdRef} }, - .{ .name = "NoAliasINTEL", .value = 5915, .parameters = &[_]OperandKind{.IdRef} }, - .{ .name = "InitiationIntervalINTEL", .value = 5917, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "MaxConcurrencyINTEL", .value = 5918, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "PipelineEnableINTEL", .value = 5919, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "BufferLocationINTEL", .value = 5921, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "IOPipeStorageINTEL", .value = 5944, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "FunctionFloatingPointModeINTEL", .value = 6080, .parameters = &[_]OperandKind{ .LiteralInteger, .FPOperationMode } }, - .{ .name = "SingleElementVectorINTEL", .value = 6085, .parameters = &[_]OperandKind{} }, - .{ .name = "VectorComputeCallableFunctionINTEL", .value = 6087, .parameters = &[_]OperandKind{} }, - .{ .name = "MediaBlockIOINTEL", .value = 6140, .parameters = &[_]OperandKind{} }, - .{ .name = "StallFreeINTEL", .value = 6151, .parameters = &[_]OperandKind{} }, - .{ .name = "FPMaxErrorDecorationINTEL", .value = 6170, .parameters = &[_]OperandKind{.LiteralFloat} }, - .{ .name = "LatencyControlLabelINTEL", .value = 6172, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "LatencyControlConstraintINTEL", .value = 6173, .parameters = &[_]OperandKind{ .LiteralInteger, .LiteralInteger, .LiteralInteger } }, - .{ .name = "ConduitKernelArgumentINTEL", .value = 6175, .parameters = &[_]OperandKind{} }, - .{ .name = "RegisterMapKernelArgumentINTEL", .value = 6176, .parameters = &[_]OperandKind{} }, - .{ .name = "MMHostInterfaceAddressWidthINTEL", .value = 6177, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "MMHostInterfaceDataWidthINTEL", .value = 6178, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "MMHostInterfaceLatencyINTEL", .value = 6179, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "MMHostInterfaceReadWriteModeINTEL", .value = 6180, .parameters = &[_]OperandKind{.AccessQualifier} }, - .{ .name = "MMHostInterfaceMaxBurstINTEL", .value = 6181, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "MMHostInterfaceWaitRequestINTEL", .value = 6182, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "StableKernelArgumentINTEL", .value = 6183, .parameters = &[_]OperandKind{} }, - .{ .name = "HostAccessINTEL", .value = 6188, .parameters = &[_]OperandKind{ .HostAccessQualifier, .LiteralString } }, - .{ .name = "InitModeINTEL", .value = 6190, .parameters = &[_]OperandKind{.InitializationModeQualifier} }, - .{ .name = "ImplementInRegisterMapINTEL", .value = 6191, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "CacheControlLoadINTEL", .value = 6442, .parameters = &[_]OperandKind{ .LiteralInteger, .LoadCacheControl } }, - .{ .name = "CacheControlStoreINTEL", .value = 6443, .parameters = &[_]OperandKind{ .LiteralInteger, .StoreCacheControl } }, + .ray_query_intersection => &.{ + .{ .name = "RayQueryCandidateIntersectionKHR", .value = 0, .parameters = &.{} }, + .{ .name = "RayQueryCommittedIntersectionKHR", .value = 1, .parameters = &.{} }, }, - .BuiltIn => &[_]Enumerant{ - .{ .name = "Position", .value = 0, .parameters = &[_]OperandKind{} }, - .{ .name = "PointSize", .value = 1, .parameters = &[_]OperandKind{} }, - .{ .name = "ClipDistance", .value = 3, .parameters = &[_]OperandKind{} }, - .{ .name = "CullDistance", .value = 4, .parameters = &[_]OperandKind{} }, - .{ .name = "VertexId", .value = 5, .parameters = &[_]OperandKind{} }, - .{ .name = "InstanceId", .value = 6, .parameters = &[_]OperandKind{} }, - .{ .name = "PrimitiveId", .value = 7, .parameters = &[_]OperandKind{} }, - .{ .name = "InvocationId", .value = 8, .parameters = &[_]OperandKind{} }, - .{ .name = "Layer", .value = 9, .parameters = &[_]OperandKind{} }, - .{ .name = "ViewportIndex", .value = 10, .parameters = &[_]OperandKind{} }, - .{ .name = "TessLevelOuter", .value = 11, .parameters = &[_]OperandKind{} }, - .{ .name = "TessLevelInner", .value = 12, .parameters = &[_]OperandKind{} }, - .{ .name = "TessCoord", .value = 13, .parameters = &[_]OperandKind{} }, - .{ .name = "PatchVertices", .value = 14, .parameters = &[_]OperandKind{} }, - .{ .name = "FragCoord", .value = 15, .parameters = &[_]OperandKind{} }, - .{ .name = "PointCoord", .value = 16, .parameters = &[_]OperandKind{} }, - .{ .name = "FrontFacing", .value = 17, .parameters = &[_]OperandKind{} }, - .{ .name = "SampleId", .value = 18, .parameters = &[_]OperandKind{} }, - .{ .name = "SamplePosition", .value = 19, .parameters = &[_]OperandKind{} }, - .{ .name = "SampleMask", .value = 20, .parameters = &[_]OperandKind{} }, - .{ .name = "FragDepth", .value = 22, .parameters = &[_]OperandKind{} }, - .{ .name = "HelperInvocation", .value = 23, .parameters = &[_]OperandKind{} }, - .{ .name = "NumWorkgroups", .value = 24, .parameters = &[_]OperandKind{} }, - .{ .name = "WorkgroupSize", .value = 25, .parameters = &[_]OperandKind{} }, - .{ .name = "WorkgroupId", .value = 26, .parameters = &[_]OperandKind{} }, - .{ .name = "LocalInvocationId", .value = 27, .parameters = &[_]OperandKind{} }, - .{ .name = "GlobalInvocationId", .value = 28, .parameters = &[_]OperandKind{} }, - .{ .name = "LocalInvocationIndex", .value = 29, .parameters = &[_]OperandKind{} }, - .{ .name = "WorkDim", .value = 30, .parameters = &[_]OperandKind{} }, - .{ .name = "GlobalSize", .value = 31, .parameters = &[_]OperandKind{} }, - .{ .name = "EnqueuedWorkgroupSize", .value = 32, .parameters = &[_]OperandKind{} }, - .{ .name = "GlobalOffset", .value = 33, .parameters = &[_]OperandKind{} }, - .{ .name = "GlobalLinearId", .value = 34, .parameters = &[_]OperandKind{} }, - .{ .name = "SubgroupSize", .value = 36, .parameters = &[_]OperandKind{} }, - .{ .name = "SubgroupMaxSize", .value = 37, .parameters = &[_]OperandKind{} }, - .{ .name = "NumSubgroups", .value = 38, .parameters = &[_]OperandKind{} }, - .{ .name = "NumEnqueuedSubgroups", .value = 39, .parameters = &[_]OperandKind{} }, - .{ .name = "SubgroupId", .value = 40, .parameters = &[_]OperandKind{} }, - .{ .name = "SubgroupLocalInvocationId", .value = 41, .parameters = &[_]OperandKind{} }, - .{ .name = "VertexIndex", .value = 42, .parameters = &[_]OperandKind{} }, - .{ .name = "InstanceIndex", .value = 43, .parameters = &[_]OperandKind{} }, - .{ .name = "CoreIDARM", .value = 4160, .parameters = &[_]OperandKind{} }, - .{ .name = "CoreCountARM", .value = 4161, .parameters = &[_]OperandKind{} }, - .{ .name = "CoreMaxIDARM", .value = 4162, .parameters = &[_]OperandKind{} }, - .{ .name = "WarpIDARM", .value = 4163, .parameters = &[_]OperandKind{} }, - .{ .name = "WarpMaxIDARM", .value = 4164, .parameters = &[_]OperandKind{} }, - .{ .name = "SubgroupEqMask", .value = 4416, .parameters = &[_]OperandKind{} }, - .{ .name = "SubgroupEqMaskKHR", .value = 4416, .parameters = &[_]OperandKind{} }, - .{ .name = "SubgroupGeMask", .value = 4417, .parameters = &[_]OperandKind{} }, - .{ .name = "SubgroupGeMaskKHR", .value = 4417, .parameters = &[_]OperandKind{} }, - .{ .name = "SubgroupGtMask", .value = 4418, .parameters = &[_]OperandKind{} }, - .{ .name = "SubgroupGtMaskKHR", .value = 4418, .parameters = &[_]OperandKind{} }, - .{ .name = "SubgroupLeMask", .value = 4419, .parameters = &[_]OperandKind{} }, - .{ .name = "SubgroupLeMaskKHR", .value = 4419, .parameters = &[_]OperandKind{} }, - .{ .name = "SubgroupLtMask", .value = 4420, .parameters = &[_]OperandKind{} }, - .{ .name = "SubgroupLtMaskKHR", .value = 4420, .parameters = &[_]OperandKind{} }, - .{ .name = "BaseVertex", .value = 4424, .parameters = &[_]OperandKind{} }, - .{ .name = "BaseInstance", .value = 4425, .parameters = &[_]OperandKind{} }, - .{ .name = "DrawIndex", .value = 4426, .parameters = &[_]OperandKind{} }, - .{ .name = "PrimitiveShadingRateKHR", .value = 4432, .parameters = &[_]OperandKind{} }, - .{ .name = "DeviceIndex", .value = 4438, .parameters = &[_]OperandKind{} }, - .{ .name = "ViewIndex", .value = 4440, .parameters = &[_]OperandKind{} }, - .{ .name = "ShadingRateKHR", .value = 4444, .parameters = &[_]OperandKind{} }, - .{ .name = "BaryCoordNoPerspAMD", .value = 4992, .parameters = &[_]OperandKind{} }, - .{ .name = "BaryCoordNoPerspCentroidAMD", .value = 4993, .parameters = &[_]OperandKind{} }, - .{ .name = "BaryCoordNoPerspSampleAMD", .value = 4994, .parameters = &[_]OperandKind{} }, - .{ .name = "BaryCoordSmoothAMD", .value = 4995, .parameters = &[_]OperandKind{} }, - .{ .name = "BaryCoordSmoothCentroidAMD", .value = 4996, .parameters = &[_]OperandKind{} }, - .{ .name = "BaryCoordSmoothSampleAMD", .value = 4997, .parameters = &[_]OperandKind{} }, - .{ .name = "BaryCoordPullModelAMD", .value = 4998, .parameters = &[_]OperandKind{} }, - .{ .name = "FragStencilRefEXT", .value = 5014, .parameters = &[_]OperandKind{} }, - .{ .name = "CoalescedInputCountAMDX", .value = 5021, .parameters = &[_]OperandKind{} }, - .{ .name = "ShaderIndexAMDX", .value = 5073, .parameters = &[_]OperandKind{} }, - .{ .name = "ViewportMaskNV", .value = 5253, .parameters = &[_]OperandKind{} }, - .{ .name = "SecondaryPositionNV", .value = 5257, .parameters = &[_]OperandKind{} }, - .{ .name = "SecondaryViewportMaskNV", .value = 5258, .parameters = &[_]OperandKind{} }, - .{ .name = "PositionPerViewNV", .value = 5261, .parameters = &[_]OperandKind{} }, - .{ .name = "ViewportMaskPerViewNV", .value = 5262, .parameters = &[_]OperandKind{} }, - .{ .name = "FullyCoveredEXT", .value = 5264, .parameters = &[_]OperandKind{} }, - .{ .name = "TaskCountNV", .value = 5274, .parameters = &[_]OperandKind{} }, - .{ .name = "PrimitiveCountNV", .value = 5275, .parameters = &[_]OperandKind{} }, - .{ .name = "PrimitiveIndicesNV", .value = 5276, .parameters = &[_]OperandKind{} }, - .{ .name = "ClipDistancePerViewNV", .value = 5277, .parameters = &[_]OperandKind{} }, - .{ .name = "CullDistancePerViewNV", .value = 5278, .parameters = &[_]OperandKind{} }, - .{ .name = "LayerPerViewNV", .value = 5279, .parameters = &[_]OperandKind{} }, - .{ .name = "MeshViewCountNV", .value = 5280, .parameters = &[_]OperandKind{} }, - .{ .name = "MeshViewIndicesNV", .value = 5281, .parameters = &[_]OperandKind{} }, - .{ .name = "BaryCoordKHR", .value = 5286, .parameters = &[_]OperandKind{} }, - .{ .name = "BaryCoordNV", .value = 5286, .parameters = &[_]OperandKind{} }, - .{ .name = "BaryCoordNoPerspKHR", .value = 5287, .parameters = &[_]OperandKind{} }, - .{ .name = "BaryCoordNoPerspNV", .value = 5287, .parameters = &[_]OperandKind{} }, - .{ .name = "FragSizeEXT", .value = 5292, .parameters = &[_]OperandKind{} }, - .{ .name = "FragmentSizeNV", .value = 5292, .parameters = &[_]OperandKind{} }, - .{ .name = "FragInvocationCountEXT", .value = 5293, .parameters = &[_]OperandKind{} }, - .{ .name = "InvocationsPerPixelNV", .value = 5293, .parameters = &[_]OperandKind{} }, - .{ .name = "PrimitivePointIndicesEXT", .value = 5294, .parameters = &[_]OperandKind{} }, - .{ .name = "PrimitiveLineIndicesEXT", .value = 5295, .parameters = &[_]OperandKind{} }, - .{ .name = "PrimitiveTriangleIndicesEXT", .value = 5296, .parameters = &[_]OperandKind{} }, - .{ .name = "CullPrimitiveEXT", .value = 5299, .parameters = &[_]OperandKind{} }, - .{ .name = "LaunchIdNV", .value = 5319, .parameters = &[_]OperandKind{} }, - .{ .name = "LaunchIdKHR", .value = 5319, .parameters = &[_]OperandKind{} }, - .{ .name = "LaunchSizeNV", .value = 5320, .parameters = &[_]OperandKind{} }, - .{ .name = "LaunchSizeKHR", .value = 5320, .parameters = &[_]OperandKind{} }, - .{ .name = "WorldRayOriginNV", .value = 5321, .parameters = &[_]OperandKind{} }, - .{ .name = "WorldRayOriginKHR", .value = 5321, .parameters = &[_]OperandKind{} }, - .{ .name = "WorldRayDirectionNV", .value = 5322, .parameters = &[_]OperandKind{} }, - .{ .name = "WorldRayDirectionKHR", .value = 5322, .parameters = &[_]OperandKind{} }, - .{ .name = "ObjectRayOriginNV", .value = 5323, .parameters = &[_]OperandKind{} }, - .{ .name = "ObjectRayOriginKHR", .value = 5323, .parameters = &[_]OperandKind{} }, - .{ .name = "ObjectRayDirectionNV", .value = 5324, .parameters = &[_]OperandKind{} }, - .{ .name = "ObjectRayDirectionKHR", .value = 5324, .parameters = &[_]OperandKind{} }, - .{ .name = "RayTminNV", .value = 5325, .parameters = &[_]OperandKind{} }, - .{ .name = "RayTminKHR", .value = 5325, .parameters = &[_]OperandKind{} }, - .{ .name = "RayTmaxNV", .value = 5326, .parameters = &[_]OperandKind{} }, - .{ .name = "RayTmaxKHR", .value = 5326, .parameters = &[_]OperandKind{} }, - .{ .name = "InstanceCustomIndexNV", .value = 5327, .parameters = &[_]OperandKind{} }, - .{ .name = "InstanceCustomIndexKHR", .value = 5327, .parameters = &[_]OperandKind{} }, - .{ .name = "ObjectToWorldNV", .value = 5330, .parameters = &[_]OperandKind{} }, - .{ .name = "ObjectToWorldKHR", .value = 5330, .parameters = &[_]OperandKind{} }, - .{ .name = "WorldToObjectNV", .value = 5331, .parameters = &[_]OperandKind{} }, - .{ .name = "WorldToObjectKHR", .value = 5331, .parameters = &[_]OperandKind{} }, - .{ .name = "HitTNV", .value = 5332, .parameters = &[_]OperandKind{} }, - .{ .name = "HitKindNV", .value = 5333, .parameters = &[_]OperandKind{} }, - .{ .name = "HitKindKHR", .value = 5333, .parameters = &[_]OperandKind{} }, - .{ .name = "CurrentRayTimeNV", .value = 5334, .parameters = &[_]OperandKind{} }, - .{ .name = "HitTriangleVertexPositionsKHR", .value = 5335, .parameters = &[_]OperandKind{} }, - .{ .name = "HitMicroTriangleVertexPositionsNV", .value = 5337, .parameters = &[_]OperandKind{} }, - .{ .name = "HitMicroTriangleVertexBarycentricsNV", .value = 5344, .parameters = &[_]OperandKind{} }, - .{ .name = "IncomingRayFlagsNV", .value = 5351, .parameters = &[_]OperandKind{} }, - .{ .name = "IncomingRayFlagsKHR", .value = 5351, .parameters = &[_]OperandKind{} }, - .{ .name = "RayGeometryIndexKHR", .value = 5352, .parameters = &[_]OperandKind{} }, - .{ .name = "WarpsPerSMNV", .value = 5374, .parameters = &[_]OperandKind{} }, - .{ .name = "SMCountNV", .value = 5375, .parameters = &[_]OperandKind{} }, - .{ .name = "WarpIDNV", .value = 5376, .parameters = &[_]OperandKind{} }, - .{ .name = "SMIDNV", .value = 5377, .parameters = &[_]OperandKind{} }, - .{ .name = "HitKindFrontFacingMicroTriangleNV", .value = 5405, .parameters = &[_]OperandKind{} }, - .{ .name = "HitKindBackFacingMicroTriangleNV", .value = 5406, .parameters = &[_]OperandKind{} }, - .{ .name = "CullMaskKHR", .value = 6021, .parameters = &[_]OperandKind{} }, + .ray_query_committed_intersection_type => &.{ + .{ .name = "RayQueryCommittedIntersectionNoneKHR", .value = 0, .parameters = &.{} }, + .{ .name = "RayQueryCommittedIntersectionTriangleKHR", .value = 1, .parameters = &.{} }, + .{ .name = "RayQueryCommittedIntersectionGeneratedKHR", .value = 2, .parameters = &.{} }, }, - .Scope => &[_]Enumerant{ - .{ .name = "CrossDevice", .value = 0, .parameters = &[_]OperandKind{} }, - .{ .name = "Device", .value = 1, .parameters = &[_]OperandKind{} }, - .{ .name = "Workgroup", .value = 2, .parameters = &[_]OperandKind{} }, - .{ .name = "Subgroup", .value = 3, .parameters = &[_]OperandKind{} }, - .{ .name = "Invocation", .value = 4, .parameters = &[_]OperandKind{} }, - .{ .name = "QueueFamily", .value = 5, .parameters = &[_]OperandKind{} }, - .{ .name = "QueueFamilyKHR", .value = 5, .parameters = &[_]OperandKind{} }, - .{ .name = "ShaderCallKHR", .value = 6, .parameters = &[_]OperandKind{} }, + .ray_query_candidate_intersection_type => &.{ + .{ .name = "RayQueryCandidateIntersectionTriangleKHR", .value = 0, .parameters = &.{} }, + .{ .name = "RayQueryCandidateIntersectionAABBKHR", .value = 1, .parameters = &.{} }, }, - .GroupOperation => &[_]Enumerant{ - .{ .name = "Reduce", .value = 0, .parameters = &[_]OperandKind{} }, - .{ .name = "InclusiveScan", .value = 1, .parameters = &[_]OperandKind{} }, - .{ .name = "ExclusiveScan", .value = 2, .parameters = &[_]OperandKind{} }, - .{ .name = "ClusteredReduce", .value = 3, .parameters = &[_]OperandKind{} }, - .{ .name = "PartitionedReduceNV", .value = 6, .parameters = &[_]OperandKind{} }, - .{ .name = "PartitionedInclusiveScanNV", .value = 7, .parameters = &[_]OperandKind{} }, - .{ .name = "PartitionedExclusiveScanNV", .value = 8, .parameters = &[_]OperandKind{} }, + .packed_vector_format => &.{ + .{ .name = "PackedVectorFormat4x8Bit", .value = 0, .parameters = &.{} }, }, - .KernelEnqueueFlags => &[_]Enumerant{ - .{ .name = "NoWait", .value = 0, .parameters = &[_]OperandKind{} }, - .{ .name = "WaitKernel", .value = 1, .parameters = &[_]OperandKind{} }, - .{ .name = "WaitWorkGroup", .value = 2, .parameters = &[_]OperandKind{} }, + .cooperative_matrix_operands => &.{ + .{ .name = "NoneKHR", .value = 0x0000, .parameters = &.{} }, + .{ .name = "MatrixASignedComponentsKHR", .value = 0x0001, .parameters = &.{} }, + .{ .name = "MatrixBSignedComponentsKHR", .value = 0x0002, .parameters = &.{} }, + .{ .name = "MatrixCSignedComponentsKHR", .value = 0x0004, .parameters = &.{} }, + .{ .name = "MatrixResultSignedComponentsKHR", .value = 0x0008, .parameters = &.{} }, + .{ .name = "SaturatingAccumulationKHR", .value = 0x0010, .parameters = &.{} }, }, - .Capability => &[_]Enumerant{ - .{ .name = "Matrix", .value = 0, .parameters = &[_]OperandKind{} }, - .{ .name = "Shader", .value = 1, .parameters = &[_]OperandKind{} }, - .{ .name = "Geometry", .value = 2, .parameters = &[_]OperandKind{} }, - .{ .name = "Tessellation", .value = 3, .parameters = &[_]OperandKind{} }, - .{ .name = "Addresses", .value = 4, .parameters = &[_]OperandKind{} }, - .{ .name = "Linkage", .value = 5, .parameters = &[_]OperandKind{} }, - .{ .name = "Kernel", .value = 6, .parameters = &[_]OperandKind{} }, - .{ .name = "Vector16", .value = 7, .parameters = &[_]OperandKind{} }, - .{ .name = "Float16Buffer", .value = 8, .parameters = &[_]OperandKind{} }, - .{ .name = "Float16", .value = 9, .parameters = &[_]OperandKind{} }, - .{ .name = "Float64", .value = 10, .parameters = &[_]OperandKind{} }, - .{ .name = "Int64", .value = 11, .parameters = &[_]OperandKind{} }, - .{ .name = "Int64Atomics", .value = 12, .parameters = &[_]OperandKind{} }, - .{ .name = "ImageBasic", .value = 13, .parameters = &[_]OperandKind{} }, - .{ .name = "ImageReadWrite", .value = 14, .parameters = &[_]OperandKind{} }, - .{ .name = "ImageMipmap", .value = 15, .parameters = &[_]OperandKind{} }, - .{ .name = "Pipes", .value = 17, .parameters = &[_]OperandKind{} }, - .{ .name = "Groups", .value = 18, .parameters = &[_]OperandKind{} }, - .{ .name = "DeviceEnqueue", .value = 19, .parameters = &[_]OperandKind{} }, - .{ .name = "LiteralSampler", .value = 20, .parameters = &[_]OperandKind{} }, - .{ .name = "AtomicStorage", .value = 21, .parameters = &[_]OperandKind{} }, - .{ .name = "Int16", .value = 22, .parameters = &[_]OperandKind{} }, - .{ .name = "TessellationPointSize", .value = 23, .parameters = &[_]OperandKind{} }, - .{ .name = "GeometryPointSize", .value = 24, .parameters = &[_]OperandKind{} }, - .{ .name = "ImageGatherExtended", .value = 25, .parameters = &[_]OperandKind{} }, - .{ .name = "StorageImageMultisample", .value = 27, .parameters = &[_]OperandKind{} }, - .{ .name = "UniformBufferArrayDynamicIndexing", .value = 28, .parameters = &[_]OperandKind{} }, - .{ .name = "SampledImageArrayDynamicIndexing", .value = 29, .parameters = &[_]OperandKind{} }, - .{ .name = "StorageBufferArrayDynamicIndexing", .value = 30, .parameters = &[_]OperandKind{} }, - .{ .name = "StorageImageArrayDynamicIndexing", .value = 31, .parameters = &[_]OperandKind{} }, - .{ .name = "ClipDistance", .value = 32, .parameters = &[_]OperandKind{} }, - .{ .name = "CullDistance", .value = 33, .parameters = &[_]OperandKind{} }, - .{ .name = "ImageCubeArray", .value = 34, .parameters = &[_]OperandKind{} }, - .{ .name = "SampleRateShading", .value = 35, .parameters = &[_]OperandKind{} }, - .{ .name = "ImageRect", .value = 36, .parameters = &[_]OperandKind{} }, - .{ .name = "SampledRect", .value = 37, .parameters = &[_]OperandKind{} }, - .{ .name = "GenericPointer", .value = 38, .parameters = &[_]OperandKind{} }, - .{ .name = "Int8", .value = 39, .parameters = &[_]OperandKind{} }, - .{ .name = "InputAttachment", .value = 40, .parameters = &[_]OperandKind{} }, - .{ .name = "SparseResidency", .value = 41, .parameters = &[_]OperandKind{} }, - .{ .name = "MinLod", .value = 42, .parameters = &[_]OperandKind{} }, - .{ .name = "Sampled1D", .value = 43, .parameters = &[_]OperandKind{} }, - .{ .name = "Image1D", .value = 44, .parameters = &[_]OperandKind{} }, - .{ .name = "SampledCubeArray", .value = 45, .parameters = &[_]OperandKind{} }, - .{ .name = "SampledBuffer", .value = 46, .parameters = &[_]OperandKind{} }, - .{ .name = "ImageBuffer", .value = 47, .parameters = &[_]OperandKind{} }, - .{ .name = "ImageMSArray", .value = 48, .parameters = &[_]OperandKind{} }, - .{ .name = "StorageImageExtendedFormats", .value = 49, .parameters = &[_]OperandKind{} }, - .{ .name = "ImageQuery", .value = 50, .parameters = &[_]OperandKind{} }, - .{ .name = "DerivativeControl", .value = 51, .parameters = &[_]OperandKind{} }, - .{ .name = "InterpolationFunction", .value = 52, .parameters = &[_]OperandKind{} }, - .{ .name = "TransformFeedback", .value = 53, .parameters = &[_]OperandKind{} }, - .{ .name = "GeometryStreams", .value = 54, .parameters = &[_]OperandKind{} }, - .{ .name = "StorageImageReadWithoutFormat", .value = 55, .parameters = &[_]OperandKind{} }, - .{ .name = "StorageImageWriteWithoutFormat", .value = 56, .parameters = &[_]OperandKind{} }, - .{ .name = "MultiViewport", .value = 57, .parameters = &[_]OperandKind{} }, - .{ .name = "SubgroupDispatch", .value = 58, .parameters = &[_]OperandKind{} }, - .{ .name = "NamedBarrier", .value = 59, .parameters = &[_]OperandKind{} }, - .{ .name = "PipeStorage", .value = 60, .parameters = &[_]OperandKind{} }, - .{ .name = "GroupNonUniform", .value = 61, .parameters = &[_]OperandKind{} }, - .{ .name = "GroupNonUniformVote", .value = 62, .parameters = &[_]OperandKind{} }, - .{ .name = "GroupNonUniformArithmetic", .value = 63, .parameters = &[_]OperandKind{} }, - .{ .name = "GroupNonUniformBallot", .value = 64, .parameters = &[_]OperandKind{} }, - .{ .name = "GroupNonUniformShuffle", .value = 65, .parameters = &[_]OperandKind{} }, - .{ .name = "GroupNonUniformShuffleRelative", .value = 66, .parameters = &[_]OperandKind{} }, - .{ .name = "GroupNonUniformClustered", .value = 67, .parameters = &[_]OperandKind{} }, - .{ .name = "GroupNonUniformQuad", .value = 68, .parameters = &[_]OperandKind{} }, - .{ .name = "ShaderLayer", .value = 69, .parameters = &[_]OperandKind{} }, - .{ .name = "ShaderViewportIndex", .value = 70, .parameters = &[_]OperandKind{} }, - .{ .name = "UniformDecoration", .value = 71, .parameters = &[_]OperandKind{} }, - .{ .name = "CoreBuiltinsARM", .value = 4165, .parameters = &[_]OperandKind{} }, - .{ .name = "TileImageColorReadAccessEXT", .value = 4166, .parameters = &[_]OperandKind{} }, - .{ .name = "TileImageDepthReadAccessEXT", .value = 4167, .parameters = &[_]OperandKind{} }, - .{ .name = "TileImageStencilReadAccessEXT", .value = 4168, .parameters = &[_]OperandKind{} }, - .{ .name = "FragmentShadingRateKHR", .value = 4422, .parameters = &[_]OperandKind{} }, - .{ .name = "SubgroupBallotKHR", .value = 4423, .parameters = &[_]OperandKind{} }, - .{ .name = "DrawParameters", .value = 4427, .parameters = &[_]OperandKind{} }, - .{ .name = "WorkgroupMemoryExplicitLayoutKHR", .value = 4428, .parameters = &[_]OperandKind{} }, - .{ .name = "WorkgroupMemoryExplicitLayout8BitAccessKHR", .value = 4429, .parameters = &[_]OperandKind{} }, - .{ .name = "WorkgroupMemoryExplicitLayout16BitAccessKHR", .value = 4430, .parameters = &[_]OperandKind{} }, - .{ .name = "SubgroupVoteKHR", .value = 4431, .parameters = &[_]OperandKind{} }, - .{ .name = "StorageBuffer16BitAccess", .value = 4433, .parameters = &[_]OperandKind{} }, - .{ .name = "StorageUniformBufferBlock16", .value = 4433, .parameters = &[_]OperandKind{} }, - .{ .name = "UniformAndStorageBuffer16BitAccess", .value = 4434, .parameters = &[_]OperandKind{} }, - .{ .name = "StorageUniform16", .value = 4434, .parameters = &[_]OperandKind{} }, - .{ .name = "StoragePushConstant16", .value = 4435, .parameters = &[_]OperandKind{} }, - .{ .name = "StorageInputOutput16", .value = 4436, .parameters = &[_]OperandKind{} }, - .{ .name = "DeviceGroup", .value = 4437, .parameters = &[_]OperandKind{} }, - .{ .name = "MultiView", .value = 4439, .parameters = &[_]OperandKind{} }, - .{ .name = "VariablePointersStorageBuffer", .value = 4441, .parameters = &[_]OperandKind{} }, - .{ .name = "VariablePointers", .value = 4442, .parameters = &[_]OperandKind{} }, - .{ .name = "AtomicStorageOps", .value = 4445, .parameters = &[_]OperandKind{} }, - .{ .name = "SampleMaskPostDepthCoverage", .value = 4447, .parameters = &[_]OperandKind{} }, - .{ .name = "StorageBuffer8BitAccess", .value = 4448, .parameters = &[_]OperandKind{} }, - .{ .name = "UniformAndStorageBuffer8BitAccess", .value = 4449, .parameters = &[_]OperandKind{} }, - .{ .name = "StoragePushConstant8", .value = 4450, .parameters = &[_]OperandKind{} }, - .{ .name = "DenormPreserve", .value = 4464, .parameters = &[_]OperandKind{} }, - .{ .name = "DenormFlushToZero", .value = 4465, .parameters = &[_]OperandKind{} }, - .{ .name = "SignedZeroInfNanPreserve", .value = 4466, .parameters = &[_]OperandKind{} }, - .{ .name = "RoundingModeRTE", .value = 4467, .parameters = &[_]OperandKind{} }, - .{ .name = "RoundingModeRTZ", .value = 4468, .parameters = &[_]OperandKind{} }, - .{ .name = "RayQueryProvisionalKHR", .value = 4471, .parameters = &[_]OperandKind{} }, - .{ .name = "RayQueryKHR", .value = 4472, .parameters = &[_]OperandKind{} }, - .{ .name = "RayTraversalPrimitiveCullingKHR", .value = 4478, .parameters = &[_]OperandKind{} }, - .{ .name = "RayTracingKHR", .value = 4479, .parameters = &[_]OperandKind{} }, - .{ .name = "TextureSampleWeightedQCOM", .value = 4484, .parameters = &[_]OperandKind{} }, - .{ .name = "TextureBoxFilterQCOM", .value = 4485, .parameters = &[_]OperandKind{} }, - .{ .name = "TextureBlockMatchQCOM", .value = 4486, .parameters = &[_]OperandKind{} }, - .{ .name = "TextureBlockMatch2QCOM", .value = 4498, .parameters = &[_]OperandKind{} }, - .{ .name = "Float16ImageAMD", .value = 5008, .parameters = &[_]OperandKind{} }, - .{ .name = "ImageGatherBiasLodAMD", .value = 5009, .parameters = &[_]OperandKind{} }, - .{ .name = "FragmentMaskAMD", .value = 5010, .parameters = &[_]OperandKind{} }, - .{ .name = "StencilExportEXT", .value = 5013, .parameters = &[_]OperandKind{} }, - .{ .name = "ImageReadWriteLodAMD", .value = 5015, .parameters = &[_]OperandKind{} }, - .{ .name = "Int64ImageEXT", .value = 5016, .parameters = &[_]OperandKind{} }, - .{ .name = "ShaderClockKHR", .value = 5055, .parameters = &[_]OperandKind{} }, - .{ .name = "ShaderEnqueueAMDX", .value = 5067, .parameters = &[_]OperandKind{} }, - .{ .name = "QuadControlKHR", .value = 5087, .parameters = &[_]OperandKind{} }, - .{ .name = "SampleMaskOverrideCoverageNV", .value = 5249, .parameters = &[_]OperandKind{} }, - .{ .name = "GeometryShaderPassthroughNV", .value = 5251, .parameters = &[_]OperandKind{} }, - .{ .name = "ShaderViewportIndexLayerEXT", .value = 5254, .parameters = &[_]OperandKind{} }, - .{ .name = "ShaderViewportIndexLayerNV", .value = 5254, .parameters = &[_]OperandKind{} }, - .{ .name = "ShaderViewportMaskNV", .value = 5255, .parameters = &[_]OperandKind{} }, - .{ .name = "ShaderStereoViewNV", .value = 5259, .parameters = &[_]OperandKind{} }, - .{ .name = "PerViewAttributesNV", .value = 5260, .parameters = &[_]OperandKind{} }, - .{ .name = "FragmentFullyCoveredEXT", .value = 5265, .parameters = &[_]OperandKind{} }, - .{ .name = "MeshShadingNV", .value = 5266, .parameters = &[_]OperandKind{} }, - .{ .name = "ImageFootprintNV", .value = 5282, .parameters = &[_]OperandKind{} }, - .{ .name = "MeshShadingEXT", .value = 5283, .parameters = &[_]OperandKind{} }, - .{ .name = "FragmentBarycentricKHR", .value = 5284, .parameters = &[_]OperandKind{} }, - .{ .name = "FragmentBarycentricNV", .value = 5284, .parameters = &[_]OperandKind{} }, - .{ .name = "ComputeDerivativeGroupQuadsNV", .value = 5288, .parameters = &[_]OperandKind{} }, - .{ .name = "FragmentDensityEXT", .value = 5291, .parameters = &[_]OperandKind{} }, - .{ .name = "ShadingRateNV", .value = 5291, .parameters = &[_]OperandKind{} }, - .{ .name = "GroupNonUniformPartitionedNV", .value = 5297, .parameters = &[_]OperandKind{} }, - .{ .name = "ShaderNonUniform", .value = 5301, .parameters = &[_]OperandKind{} }, - .{ .name = "ShaderNonUniformEXT", .value = 5301, .parameters = &[_]OperandKind{} }, - .{ .name = "RuntimeDescriptorArray", .value = 5302, .parameters = &[_]OperandKind{} }, - .{ .name = "RuntimeDescriptorArrayEXT", .value = 5302, .parameters = &[_]OperandKind{} }, - .{ .name = "InputAttachmentArrayDynamicIndexing", .value = 5303, .parameters = &[_]OperandKind{} }, - .{ .name = "InputAttachmentArrayDynamicIndexingEXT", .value = 5303, .parameters = &[_]OperandKind{} }, - .{ .name = "UniformTexelBufferArrayDynamicIndexing", .value = 5304, .parameters = &[_]OperandKind{} }, - .{ .name = "UniformTexelBufferArrayDynamicIndexingEXT", .value = 5304, .parameters = &[_]OperandKind{} }, - .{ .name = "StorageTexelBufferArrayDynamicIndexing", .value = 5305, .parameters = &[_]OperandKind{} }, - .{ .name = "StorageTexelBufferArrayDynamicIndexingEXT", .value = 5305, .parameters = &[_]OperandKind{} }, - .{ .name = "UniformBufferArrayNonUniformIndexing", .value = 5306, .parameters = &[_]OperandKind{} }, - .{ .name = "UniformBufferArrayNonUniformIndexingEXT", .value = 5306, .parameters = &[_]OperandKind{} }, - .{ .name = "SampledImageArrayNonUniformIndexing", .value = 5307, .parameters = &[_]OperandKind{} }, - .{ .name = "SampledImageArrayNonUniformIndexingEXT", .value = 5307, .parameters = &[_]OperandKind{} }, - .{ .name = "StorageBufferArrayNonUniformIndexing", .value = 5308, .parameters = &[_]OperandKind{} }, - .{ .name = "StorageBufferArrayNonUniformIndexingEXT", .value = 5308, .parameters = &[_]OperandKind{} }, - .{ .name = "StorageImageArrayNonUniformIndexing", .value = 5309, .parameters = &[_]OperandKind{} }, - .{ .name = "StorageImageArrayNonUniformIndexingEXT", .value = 5309, .parameters = &[_]OperandKind{} }, - .{ .name = "InputAttachmentArrayNonUniformIndexing", .value = 5310, .parameters = &[_]OperandKind{} }, - .{ .name = "InputAttachmentArrayNonUniformIndexingEXT", .value = 5310, .parameters = &[_]OperandKind{} }, - .{ .name = "UniformTexelBufferArrayNonUniformIndexing", .value = 5311, .parameters = &[_]OperandKind{} }, - .{ .name = "UniformTexelBufferArrayNonUniformIndexingEXT", .value = 5311, .parameters = &[_]OperandKind{} }, - .{ .name = "StorageTexelBufferArrayNonUniformIndexing", .value = 5312, .parameters = &[_]OperandKind{} }, - .{ .name = "StorageTexelBufferArrayNonUniformIndexingEXT", .value = 5312, .parameters = &[_]OperandKind{} }, - .{ .name = "RayTracingPositionFetchKHR", .value = 5336, .parameters = &[_]OperandKind{} }, - .{ .name = "RayTracingNV", .value = 5340, .parameters = &[_]OperandKind{} }, - .{ .name = "RayTracingMotionBlurNV", .value = 5341, .parameters = &[_]OperandKind{} }, - .{ .name = "VulkanMemoryModel", .value = 5345, .parameters = &[_]OperandKind{} }, - .{ .name = "VulkanMemoryModelKHR", .value = 5345, .parameters = &[_]OperandKind{} }, - .{ .name = "VulkanMemoryModelDeviceScope", .value = 5346, .parameters = &[_]OperandKind{} }, - .{ .name = "VulkanMemoryModelDeviceScopeKHR", .value = 5346, .parameters = &[_]OperandKind{} }, - .{ .name = "PhysicalStorageBufferAddresses", .value = 5347, .parameters = &[_]OperandKind{} }, - .{ .name = "PhysicalStorageBufferAddressesEXT", .value = 5347, .parameters = &[_]OperandKind{} }, - .{ .name = "ComputeDerivativeGroupLinearNV", .value = 5350, .parameters = &[_]OperandKind{} }, - .{ .name = "RayTracingProvisionalKHR", .value = 5353, .parameters = &[_]OperandKind{} }, - .{ .name = "CooperativeMatrixNV", .value = 5357, .parameters = &[_]OperandKind{} }, - .{ .name = "FragmentShaderSampleInterlockEXT", .value = 5363, .parameters = &[_]OperandKind{} }, - .{ .name = "FragmentShaderShadingRateInterlockEXT", .value = 5372, .parameters = &[_]OperandKind{} }, - .{ .name = "ShaderSMBuiltinsNV", .value = 5373, .parameters = &[_]OperandKind{} }, - .{ .name = "FragmentShaderPixelInterlockEXT", .value = 5378, .parameters = &[_]OperandKind{} }, - .{ .name = "DemoteToHelperInvocation", .value = 5379, .parameters = &[_]OperandKind{} }, - .{ .name = "DemoteToHelperInvocationEXT", .value = 5379, .parameters = &[_]OperandKind{} }, - .{ .name = "DisplacementMicromapNV", .value = 5380, .parameters = &[_]OperandKind{} }, - .{ .name = "RayTracingOpacityMicromapEXT", .value = 5381, .parameters = &[_]OperandKind{} }, - .{ .name = "ShaderInvocationReorderNV", .value = 5383, .parameters = &[_]OperandKind{} }, - .{ .name = "BindlessTextureNV", .value = 5390, .parameters = &[_]OperandKind{} }, - .{ .name = "RayQueryPositionFetchKHR", .value = 5391, .parameters = &[_]OperandKind{} }, - .{ .name = "AtomicFloat16VectorNV", .value = 5404, .parameters = &[_]OperandKind{} }, - .{ .name = "RayTracingDisplacementMicromapNV", .value = 5409, .parameters = &[_]OperandKind{} }, - .{ .name = "RawAccessChainsNV", .value = 5414, .parameters = &[_]OperandKind{} }, - .{ .name = "SubgroupShuffleINTEL", .value = 5568, .parameters = &[_]OperandKind{} }, - .{ .name = "SubgroupBufferBlockIOINTEL", .value = 5569, .parameters = &[_]OperandKind{} }, - .{ .name = "SubgroupImageBlockIOINTEL", .value = 5570, .parameters = &[_]OperandKind{} }, - .{ .name = "SubgroupImageMediaBlockIOINTEL", .value = 5579, .parameters = &[_]OperandKind{} }, - .{ .name = "RoundToInfinityINTEL", .value = 5582, .parameters = &[_]OperandKind{} }, - .{ .name = "FloatingPointModeINTEL", .value = 5583, .parameters = &[_]OperandKind{} }, - .{ .name = "IntegerFunctions2INTEL", .value = 5584, .parameters = &[_]OperandKind{} }, - .{ .name = "FunctionPointersINTEL", .value = 5603, .parameters = &[_]OperandKind{} }, - .{ .name = "IndirectReferencesINTEL", .value = 5604, .parameters = &[_]OperandKind{} }, - .{ .name = "AsmINTEL", .value = 5606, .parameters = &[_]OperandKind{} }, - .{ .name = "AtomicFloat32MinMaxEXT", .value = 5612, .parameters = &[_]OperandKind{} }, - .{ .name = "AtomicFloat64MinMaxEXT", .value = 5613, .parameters = &[_]OperandKind{} }, - .{ .name = "AtomicFloat16MinMaxEXT", .value = 5616, .parameters = &[_]OperandKind{} }, - .{ .name = "VectorComputeINTEL", .value = 5617, .parameters = &[_]OperandKind{} }, - .{ .name = "VectorAnyINTEL", .value = 5619, .parameters = &[_]OperandKind{} }, - .{ .name = "ExpectAssumeKHR", .value = 5629, .parameters = &[_]OperandKind{} }, - .{ .name = "SubgroupAvcMotionEstimationINTEL", .value = 5696, .parameters = &[_]OperandKind{} }, - .{ .name = "SubgroupAvcMotionEstimationIntraINTEL", .value = 5697, .parameters = &[_]OperandKind{} }, - .{ .name = "SubgroupAvcMotionEstimationChromaINTEL", .value = 5698, .parameters = &[_]OperandKind{} }, - .{ .name = "VariableLengthArrayINTEL", .value = 5817, .parameters = &[_]OperandKind{} }, - .{ .name = "FunctionFloatControlINTEL", .value = 5821, .parameters = &[_]OperandKind{} }, - .{ .name = "FPGAMemoryAttributesINTEL", .value = 5824, .parameters = &[_]OperandKind{} }, - .{ .name = "FPFastMathModeINTEL", .value = 5837, .parameters = &[_]OperandKind{} }, - .{ .name = "ArbitraryPrecisionIntegersINTEL", .value = 5844, .parameters = &[_]OperandKind{} }, - .{ .name = "ArbitraryPrecisionFloatingPointINTEL", .value = 5845, .parameters = &[_]OperandKind{} }, - .{ .name = "UnstructuredLoopControlsINTEL", .value = 5886, .parameters = &[_]OperandKind{} }, - .{ .name = "FPGALoopControlsINTEL", .value = 5888, .parameters = &[_]OperandKind{} }, - .{ .name = "KernelAttributesINTEL", .value = 5892, .parameters = &[_]OperandKind{} }, - .{ .name = "FPGAKernelAttributesINTEL", .value = 5897, .parameters = &[_]OperandKind{} }, - .{ .name = "FPGAMemoryAccessesINTEL", .value = 5898, .parameters = &[_]OperandKind{} }, - .{ .name = "FPGAClusterAttributesINTEL", .value = 5904, .parameters = &[_]OperandKind{} }, - .{ .name = "LoopFuseINTEL", .value = 5906, .parameters = &[_]OperandKind{} }, - .{ .name = "FPGADSPControlINTEL", .value = 5908, .parameters = &[_]OperandKind{} }, - .{ .name = "MemoryAccessAliasingINTEL", .value = 5910, .parameters = &[_]OperandKind{} }, - .{ .name = "FPGAInvocationPipeliningAttributesINTEL", .value = 5916, .parameters = &[_]OperandKind{} }, - .{ .name = "FPGABufferLocationINTEL", .value = 5920, .parameters = &[_]OperandKind{} }, - .{ .name = "ArbitraryPrecisionFixedPointINTEL", .value = 5922, .parameters = &[_]OperandKind{} }, - .{ .name = "USMStorageClassesINTEL", .value = 5935, .parameters = &[_]OperandKind{} }, - .{ .name = "RuntimeAlignedAttributeINTEL", .value = 5939, .parameters = &[_]OperandKind{} }, - .{ .name = "IOPipesINTEL", .value = 5943, .parameters = &[_]OperandKind{} }, - .{ .name = "BlockingPipesINTEL", .value = 5945, .parameters = &[_]OperandKind{} }, - .{ .name = "FPGARegINTEL", .value = 5948, .parameters = &[_]OperandKind{} }, - .{ .name = "DotProductInputAll", .value = 6016, .parameters = &[_]OperandKind{} }, - .{ .name = "DotProductInputAllKHR", .value = 6016, .parameters = &[_]OperandKind{} }, - .{ .name = "DotProductInput4x8Bit", .value = 6017, .parameters = &[_]OperandKind{} }, - .{ .name = "DotProductInput4x8BitKHR", .value = 6017, .parameters = &[_]OperandKind{} }, - .{ .name = "DotProductInput4x8BitPacked", .value = 6018, .parameters = &[_]OperandKind{} }, - .{ .name = "DotProductInput4x8BitPackedKHR", .value = 6018, .parameters = &[_]OperandKind{} }, - .{ .name = "DotProduct", .value = 6019, .parameters = &[_]OperandKind{} }, - .{ .name = "DotProductKHR", .value = 6019, .parameters = &[_]OperandKind{} }, - .{ .name = "RayCullMaskKHR", .value = 6020, .parameters = &[_]OperandKind{} }, - .{ .name = "CooperativeMatrixKHR", .value = 6022, .parameters = &[_]OperandKind{} }, - .{ .name = "BitInstructions", .value = 6025, .parameters = &[_]OperandKind{} }, - .{ .name = "GroupNonUniformRotateKHR", .value = 6026, .parameters = &[_]OperandKind{} }, - .{ .name = "FloatControls2", .value = 6029, .parameters = &[_]OperandKind{} }, - .{ .name = "AtomicFloat32AddEXT", .value = 6033, .parameters = &[_]OperandKind{} }, - .{ .name = "AtomicFloat64AddEXT", .value = 6034, .parameters = &[_]OperandKind{} }, - .{ .name = "LongCompositesINTEL", .value = 6089, .parameters = &[_]OperandKind{} }, - .{ .name = "OptNoneINTEL", .value = 6094, .parameters = &[_]OperandKind{} }, - .{ .name = "AtomicFloat16AddEXT", .value = 6095, .parameters = &[_]OperandKind{} }, - .{ .name = "DebugInfoModuleINTEL", .value = 6114, .parameters = &[_]OperandKind{} }, - .{ .name = "BFloat16ConversionINTEL", .value = 6115, .parameters = &[_]OperandKind{} }, - .{ .name = "SplitBarrierINTEL", .value = 6141, .parameters = &[_]OperandKind{} }, - .{ .name = "FPGAClusterAttributesV2INTEL", .value = 6150, .parameters = &[_]OperandKind{} }, - .{ .name = "FPGAKernelAttributesv2INTEL", .value = 6161, .parameters = &[_]OperandKind{} }, - .{ .name = "FPMaxErrorINTEL", .value = 6169, .parameters = &[_]OperandKind{} }, - .{ .name = "FPGALatencyControlINTEL", .value = 6171, .parameters = &[_]OperandKind{} }, - .{ .name = "FPGAArgumentInterfacesINTEL", .value = 6174, .parameters = &[_]OperandKind{} }, - .{ .name = "GlobalVariableHostAccessINTEL", .value = 6187, .parameters = &[_]OperandKind{} }, - .{ .name = "GlobalVariableFPGADecorationsINTEL", .value = 6189, .parameters = &[_]OperandKind{} }, - .{ .name = "GroupUniformArithmeticKHR", .value = 6400, .parameters = &[_]OperandKind{} }, - .{ .name = "MaskedGatherScatterINTEL", .value = 6427, .parameters = &[_]OperandKind{} }, - .{ .name = "CacheControlsINTEL", .value = 6441, .parameters = &[_]OperandKind{} }, - .{ .name = "RegisterLimitsINTEL", .value = 6460, .parameters = &[_]OperandKind{} }, + .cooperative_matrix_layout => &.{ + .{ .name = "RowMajorKHR", .value = 0, .parameters = &.{} }, + .{ .name = "ColumnMajorKHR", .value = 1, .parameters = &.{} }, + .{ .name = "RowBlockedInterleavedARM", .value = 4202, .parameters = &.{} }, + .{ .name = "ColumnBlockedInterleavedARM", .value = 4203, .parameters = &.{} }, }, - .RayQueryIntersection => &[_]Enumerant{ - .{ .name = "RayQueryCandidateIntersectionKHR", .value = 0, .parameters = &[_]OperandKind{} }, - .{ .name = "RayQueryCommittedIntersectionKHR", .value = 1, .parameters = &[_]OperandKind{} }, + .cooperative_matrix_use => &.{ + .{ .name = "MatrixAKHR", .value = 0, .parameters = &.{} }, + .{ .name = "MatrixBKHR", .value = 1, .parameters = &.{} }, + .{ .name = "MatrixAccumulatorKHR", .value = 2, .parameters = &.{} }, }, - .RayQueryCommittedIntersectionType => &[_]Enumerant{ - .{ .name = "RayQueryCommittedIntersectionNoneKHR", .value = 0, .parameters = &[_]OperandKind{} }, - .{ .name = "RayQueryCommittedIntersectionTriangleKHR", .value = 1, .parameters = &[_]OperandKind{} }, - .{ .name = "RayQueryCommittedIntersectionGeneratedKHR", .value = 2, .parameters = &[_]OperandKind{} }, + .cooperative_matrix_reduce => &.{ + .{ .name = "Row", .value = 0x0001, .parameters = &.{} }, + .{ .name = "Column", .value = 0x0002, .parameters = &.{} }, + .{ .name = "2x2", .value = 0x0004, .parameters = &.{} }, }, - .RayQueryCandidateIntersectionType => &[_]Enumerant{ - .{ .name = "RayQueryCandidateIntersectionTriangleKHR", .value = 0, .parameters = &[_]OperandKind{} }, - .{ .name = "RayQueryCandidateIntersectionAABBKHR", .value = 1, .parameters = &[_]OperandKind{} }, + .tensor_clamp_mode => &.{ + .{ .name = "Undefined", .value = 0, .parameters = &.{} }, + .{ .name = "Constant", .value = 1, .parameters = &.{} }, + .{ .name = "ClampToEdge", .value = 2, .parameters = &.{} }, + .{ .name = "Repeat", .value = 3, .parameters = &.{} }, + .{ .name = "RepeatMirrored", .value = 4, .parameters = &.{} }, }, - .PackedVectorFormat => &[_]Enumerant{ - .{ .name = "PackedVectorFormat4x8Bit", .value = 0, .parameters = &[_]OperandKind{} }, - .{ .name = "PackedVectorFormat4x8BitKHR", .value = 0, .parameters = &[_]OperandKind{} }, + .tensor_addressing_operands => &.{ + .{ .name = "TensorView", .value = 0x0001, .parameters = &.{.id_ref} }, + .{ .name = "DecodeFunc", .value = 0x0002, .parameters = &.{.id_ref} }, }, - .CooperativeMatrixOperands => &[_]Enumerant{ - .{ .name = "NoneKHR", .value = 0x0000, .parameters = &[_]OperandKind{} }, - .{ .name = "MatrixASignedComponentsKHR", .value = 0x0001, .parameters = &[_]OperandKind{} }, - .{ .name = "MatrixBSignedComponentsKHR", .value = 0x0002, .parameters = &[_]OperandKind{} }, - .{ .name = "MatrixCSignedComponentsKHR", .value = 0x0004, .parameters = &[_]OperandKind{} }, - .{ .name = "MatrixResultSignedComponentsKHR", .value = 0x0008, .parameters = &[_]OperandKind{} }, - .{ .name = "SaturatingAccumulationKHR", .value = 0x0010, .parameters = &[_]OperandKind{} }, + .initialization_mode_qualifier => &.{ + .{ .name = "InitOnDeviceReprogramINTEL", .value = 0, .parameters = &.{} }, + .{ .name = "InitOnDeviceResetINTEL", .value = 1, .parameters = &.{} }, }, - .CooperativeMatrixLayout => &[_]Enumerant{ - .{ .name = "RowMajorKHR", .value = 0, .parameters = &[_]OperandKind{} }, - .{ .name = "ColumnMajorKHR", .value = 1, .parameters = &[_]OperandKind{} }, + .load_cache_control => &.{ + .{ .name = "UncachedINTEL", .value = 0, .parameters = &.{} }, + .{ .name = "CachedINTEL", .value = 1, .parameters = &.{} }, + .{ .name = "StreamingINTEL", .value = 2, .parameters = &.{} }, + .{ .name = "InvalidateAfterReadINTEL", .value = 3, .parameters = &.{} }, + .{ .name = "ConstCachedINTEL", .value = 4, .parameters = &.{} }, }, - .CooperativeMatrixUse => &[_]Enumerant{ - .{ .name = "MatrixAKHR", .value = 0, .parameters = &[_]OperandKind{} }, - .{ .name = "MatrixBKHR", .value = 1, .parameters = &[_]OperandKind{} }, - .{ .name = "MatrixAccumulatorKHR", .value = 2, .parameters = &[_]OperandKind{} }, + .store_cache_control => &.{ + .{ .name = "UncachedINTEL", .value = 0, .parameters = &.{} }, + .{ .name = "WriteThroughINTEL", .value = 1, .parameters = &.{} }, + .{ .name = "WriteBackINTEL", .value = 2, .parameters = &.{} }, + .{ .name = "StreamingINTEL", .value = 3, .parameters = &.{} }, }, - .InitializationModeQualifier => &[_]Enumerant{ - .{ .name = "InitOnDeviceReprogramINTEL", .value = 0, .parameters = &[_]OperandKind{} }, - .{ .name = "InitOnDeviceResetINTEL", .value = 1, .parameters = &[_]OperandKind{} }, + .named_maximum_number_of_registers => &.{ + .{ .name = "AutoINTEL", .value = 0, .parameters = &.{} }, }, - .LoadCacheControl => &[_]Enumerant{ - .{ .name = "UncachedINTEL", .value = 0, .parameters = &[_]OperandKind{} }, - .{ .name = "CachedINTEL", .value = 1, .parameters = &[_]OperandKind{} }, - .{ .name = "StreamingINTEL", .value = 2, .parameters = &[_]OperandKind{} }, - .{ .name = "InvalidateAfterReadINTEL", .value = 3, .parameters = &[_]OperandKind{} }, - .{ .name = "ConstCachedINTEL", .value = 4, .parameters = &[_]OperandKind{} }, + .matrix_multiply_accumulate_operands => &.{ + .{ .name = "MatrixASignedComponentsINTEL", .value = 0x1, .parameters = &.{} }, + .{ .name = "MatrixBSignedComponentsINTEL", .value = 0x2, .parameters = &.{} }, + .{ .name = "MatrixCBFloat16INTEL", .value = 0x4, .parameters = &.{} }, + .{ .name = "MatrixResultBFloat16INTEL", .value = 0x8, .parameters = &.{} }, + .{ .name = "MatrixAPackedInt8INTEL", .value = 0x10, .parameters = &.{} }, + .{ .name = "MatrixBPackedInt8INTEL", .value = 0x20, .parameters = &.{} }, + .{ .name = "MatrixAPackedInt4INTEL", .value = 0x40, .parameters = &.{} }, + .{ .name = "MatrixBPackedInt4INTEL", .value = 0x80, .parameters = &.{} }, + .{ .name = "MatrixATF32INTEL", .value = 0x100, .parameters = &.{} }, + .{ .name = "MatrixBTF32INTEL", .value = 0x200, .parameters = &.{} }, + .{ .name = "MatrixAPackedFloat16INTEL", .value = 0x400, .parameters = &.{} }, + .{ .name = "MatrixBPackedFloat16INTEL", .value = 0x800, .parameters = &.{} }, + .{ .name = "MatrixAPackedBFloat16INTEL", .value = 0x1000, .parameters = &.{} }, + .{ .name = "MatrixBPackedBFloat16INTEL", .value = 0x2000, .parameters = &.{} }, }, - .StoreCacheControl => &[_]Enumerant{ - .{ .name = "UncachedINTEL", .value = 0, .parameters = &[_]OperandKind{} }, - .{ .name = "WriteThroughINTEL", .value = 1, .parameters = &[_]OperandKind{} }, - .{ .name = "WriteBackINTEL", .value = 2, .parameters = &[_]OperandKind{} }, - .{ .name = "StreamingINTEL", .value = 3, .parameters = &[_]OperandKind{} }, + .fp_encoding => &.{ + .{ .name = "BFloat16KHR", .value = 0, .parameters = &.{} }, + .{ .name = "Float8E4M3EXT", .value = 4214, .parameters = &.{} }, + .{ .name = "Float8E5M2EXT", .value = 4215, .parameters = &.{} }, }, - .NamedMaximumNumberOfRegisters => &[_]Enumerant{ - .{ .name = "AutoINTEL", .value = 0, .parameters = &[_]OperandKind{} }, + .cooperative_vector_matrix_layout => &.{ + .{ .name = "RowMajorNV", .value = 0, .parameters = &.{} }, + .{ .name = "ColumnMajorNV", .value = 1, .parameters = &.{} }, + .{ .name = "InferencingOptimalNV", .value = 2, .parameters = &.{} }, + .{ .name = "TrainingOptimalNV", .value = 3, .parameters = &.{} }, }, - .IdResultType => unreachable, - .IdResult => unreachable, - .IdMemorySemantics => unreachable, - .IdScope => unreachable, - .IdRef => unreachable, - .LiteralInteger => unreachable, - .LiteralString => unreachable, - .LiteralFloat => unreachable, - .LiteralContextDependentNumber => unreachable, - .LiteralExtInstInteger => unreachable, - .LiteralSpecConstantOpInteger => unreachable, - .PairLiteralIntegerIdRef => unreachable, - .PairIdRefLiteralInteger => unreachable, - .PairIdRefIdRef => unreachable, - .@"OpenCL.DebugInfo.100.DebugInfoFlags" => &[_]Enumerant{ - .{ .name = "FlagIsProtected", .value = 0x01, .parameters = &[_]OperandKind{} }, - .{ .name = "FlagIsPrivate", .value = 0x02, .parameters = &[_]OperandKind{} }, - .{ .name = "FlagIsPublic", .value = 0x03, .parameters = &[_]OperandKind{} }, - .{ .name = "FlagIsLocal", .value = 0x04, .parameters = &[_]OperandKind{} }, - .{ .name = "FlagIsDefinition", .value = 0x08, .parameters = &[_]OperandKind{} }, - .{ .name = "FlagFwdDecl", .value = 0x10, .parameters = &[_]OperandKind{} }, - .{ .name = "FlagArtificial", .value = 0x20, .parameters = &[_]OperandKind{} }, - .{ .name = "FlagExplicit", .value = 0x40, .parameters = &[_]OperandKind{} }, - .{ .name = "FlagPrototyped", .value = 0x80, .parameters = &[_]OperandKind{} }, - .{ .name = "FlagObjectPointer", .value = 0x100, .parameters = &[_]OperandKind{} }, - .{ .name = "FlagStaticMember", .value = 0x200, .parameters = &[_]OperandKind{} }, - .{ .name = "FlagIndirectVariable", .value = 0x400, .parameters = &[_]OperandKind{} }, - .{ .name = "FlagLValueReference", .value = 0x800, .parameters = &[_]OperandKind{} }, - .{ .name = "FlagRValueReference", .value = 0x1000, .parameters = &[_]OperandKind{} }, - .{ .name = "FlagIsOptimized", .value = 0x2000, .parameters = &[_]OperandKind{} }, - .{ .name = "FlagIsEnumClass", .value = 0x4000, .parameters = &[_]OperandKind{} }, - .{ .name = "FlagTypePassByValue", .value = 0x8000, .parameters = &[_]OperandKind{} }, - .{ .name = "FlagTypePassByReference", .value = 0x10000, .parameters = &[_]OperandKind{} }, + .component_type => &.{ + .{ .name = "Float16NV", .value = 0, .parameters = &.{} }, + .{ .name = "Float32NV", .value = 1, .parameters = &.{} }, + .{ .name = "Float64NV", .value = 2, .parameters = &.{} }, + .{ .name = "SignedInt8NV", .value = 3, .parameters = &.{} }, + .{ .name = "SignedInt16NV", .value = 4, .parameters = &.{} }, + .{ .name = "SignedInt32NV", .value = 5, .parameters = &.{} }, + .{ .name = "SignedInt64NV", .value = 6, .parameters = &.{} }, + .{ .name = "UnsignedInt8NV", .value = 7, .parameters = &.{} }, + .{ .name = "UnsignedInt16NV", .value = 8, .parameters = &.{} }, + .{ .name = "UnsignedInt32NV", .value = 9, .parameters = &.{} }, + .{ .name = "UnsignedInt64NV", .value = 10, .parameters = &.{} }, + .{ .name = "SignedInt8PackedNV", .value = 1000491000, .parameters = &.{} }, + .{ .name = "UnsignedInt8PackedNV", .value = 1000491001, .parameters = &.{} }, + .{ .name = "FloatE4M3NV", .value = 1000491002, .parameters = &.{} }, + .{ .name = "FloatE5M2NV", .value = 1000491003, .parameters = &.{} }, }, - .@"OpenCL.DebugInfo.100.DebugBaseTypeAttributeEncoding" => &[_]Enumerant{ - .{ .name = "Unspecified", .value = 0, .parameters = &[_]OperandKind{} }, - .{ .name = "Address", .value = 1, .parameters = &[_]OperandKind{} }, - .{ .name = "Boolean", .value = 2, .parameters = &[_]OperandKind{} }, - .{ .name = "Float", .value = 3, .parameters = &[_]OperandKind{} }, - .{ .name = "Signed", .value = 4, .parameters = &[_]OperandKind{} }, - .{ .name = "SignedChar", .value = 5, .parameters = &[_]OperandKind{} }, - .{ .name = "Unsigned", .value = 6, .parameters = &[_]OperandKind{} }, - .{ .name = "UnsignedChar", .value = 7, .parameters = &[_]OperandKind{} }, + .id_result_type => unreachable, + .id_result => unreachable, + .id_memory_semantics => unreachable, + .id_scope => unreachable, + .id_ref => unreachable, + .literal_integer => unreachable, + .literal_string => unreachable, + .literal_float => unreachable, + .literal_context_dependent_number => unreachable, + .literal_ext_inst_integer => unreachable, + .literal_spec_constant_op_integer => unreachable, + .pair_literal_integer_id_ref => unreachable, + .pair_id_ref_literal_integer => unreachable, + .pair_id_ref_id_ref => unreachable, + .tensor_operands => &.{ + .{ .name = "NoneARM", .value = 0x0000, .parameters = &.{} }, + .{ .name = "NontemporalARM", .value = 0x0001, .parameters = &.{} }, + .{ .name = "OutOfBoundsValueARM", .value = 0x0002, .parameters = &.{.id_ref} }, + .{ .name = "MakeElementAvailableARM", .value = 0x0004, .parameters = &.{.id_ref} }, + .{ .name = "MakeElementVisibleARM", .value = 0x0008, .parameters = &.{.id_ref} }, + .{ .name = "NonPrivateElementARM", .value = 0x0010, .parameters = &.{} }, }, - .@"OpenCL.DebugInfo.100.DebugCompositeType" => &[_]Enumerant{ - .{ .name = "Class", .value = 0, .parameters = &[_]OperandKind{} }, - .{ .name = "Structure", .value = 1, .parameters = &[_]OperandKind{} }, - .{ .name = "Union", .value = 2, .parameters = &[_]OperandKind{} }, + .debug_info_debug_info_flags => &.{ + .{ .name = "FlagIsProtected", .value = 0x01, .parameters = &.{} }, + .{ .name = "FlagIsPrivate", .value = 0x02, .parameters = &.{} }, + .{ .name = "FlagIsPublic", .value = 0x03, .parameters = &.{} }, + .{ .name = "FlagIsLocal", .value = 0x04, .parameters = &.{} }, + .{ .name = "FlagIsDefinition", .value = 0x08, .parameters = &.{} }, + .{ .name = "FlagFwdDecl", .value = 0x10, .parameters = &.{} }, + .{ .name = "FlagArtificial", .value = 0x20, .parameters = &.{} }, + .{ .name = "FlagExplicit", .value = 0x40, .parameters = &.{} }, + .{ .name = "FlagPrototyped", .value = 0x80, .parameters = &.{} }, + .{ .name = "FlagObjectPointer", .value = 0x100, .parameters = &.{} }, + .{ .name = "FlagStaticMember", .value = 0x200, .parameters = &.{} }, + .{ .name = "FlagIndirectVariable", .value = 0x400, .parameters = &.{} }, + .{ .name = "FlagLValueReference", .value = 0x800, .parameters = &.{} }, + .{ .name = "FlagRValueReference", .value = 0x1000, .parameters = &.{} }, + .{ .name = "FlagIsOptimized", .value = 0x2000, .parameters = &.{} }, }, - .@"OpenCL.DebugInfo.100.DebugTypeQualifier" => &[_]Enumerant{ - .{ .name = "ConstType", .value = 0, .parameters = &[_]OperandKind{} }, - .{ .name = "VolatileType", .value = 1, .parameters = &[_]OperandKind{} }, - .{ .name = "RestrictType", .value = 2, .parameters = &[_]OperandKind{} }, - .{ .name = "AtomicType", .value = 3, .parameters = &[_]OperandKind{} }, + .debug_info_debug_base_type_attribute_encoding => &.{ + .{ .name = "Unspecified", .value = 0, .parameters = &.{} }, + .{ .name = "Address", .value = 1, .parameters = &.{} }, + .{ .name = "Boolean", .value = 2, .parameters = &.{} }, + .{ .name = "Float", .value = 4, .parameters = &.{} }, + .{ .name = "Signed", .value = 5, .parameters = &.{} }, + .{ .name = "SignedChar", .value = 6, .parameters = &.{} }, + .{ .name = "Unsigned", .value = 7, .parameters = &.{} }, + .{ .name = "UnsignedChar", .value = 8, .parameters = &.{} }, }, - .@"OpenCL.DebugInfo.100.DebugOperation" => &[_]Enumerant{ - .{ .name = "Deref", .value = 0, .parameters = &[_]OperandKind{} }, - .{ .name = "Plus", .value = 1, .parameters = &[_]OperandKind{} }, - .{ .name = "Minus", .value = 2, .parameters = &[_]OperandKind{} }, - .{ .name = "PlusUconst", .value = 3, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "BitPiece", .value = 4, .parameters = &[_]OperandKind{ .LiteralInteger, .LiteralInteger } }, - .{ .name = "Swap", .value = 5, .parameters = &[_]OperandKind{} }, - .{ .name = "Xderef", .value = 6, .parameters = &[_]OperandKind{} }, - .{ .name = "StackValue", .value = 7, .parameters = &[_]OperandKind{} }, - .{ .name = "Constu", .value = 8, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "Fragment", .value = 9, .parameters = &[_]OperandKind{ .LiteralInteger, .LiteralInteger } }, + .debug_info_debug_composite_type => &.{ + .{ .name = "Class", .value = 0, .parameters = &.{} }, + .{ .name = "Structure", .value = 1, .parameters = &.{} }, + .{ .name = "Union", .value = 2, .parameters = &.{} }, }, - .@"OpenCL.DebugInfo.100.DebugImportedEntity" => &[_]Enumerant{ - .{ .name = "ImportedModule", .value = 0, .parameters = &[_]OperandKind{} }, - .{ .name = "ImportedDeclaration", .value = 1, .parameters = &[_]OperandKind{} }, + .debug_info_debug_type_qualifier => &.{ + .{ .name = "ConstType", .value = 0, .parameters = &.{} }, + .{ .name = "VolatileType", .value = 1, .parameters = &.{} }, + .{ .name = "RestrictType", .value = 2, .parameters = &.{} }, }, - .@"NonSemantic.Shader.DebugInfo.100.DebugInfoFlags" => &[_]Enumerant{ - .{ .name = "FlagIsProtected", .value = 0x01, .parameters = &[_]OperandKind{} }, - .{ .name = "FlagIsPrivate", .value = 0x02, .parameters = &[_]OperandKind{} }, - .{ .name = "FlagIsPublic", .value = 0x03, .parameters = &[_]OperandKind{} }, - .{ .name = "FlagIsLocal", .value = 0x04, .parameters = &[_]OperandKind{} }, - .{ .name = "FlagIsDefinition", .value = 0x08, .parameters = &[_]OperandKind{} }, - .{ .name = "FlagFwdDecl", .value = 0x10, .parameters = &[_]OperandKind{} }, - .{ .name = "FlagArtificial", .value = 0x20, .parameters = &[_]OperandKind{} }, - .{ .name = "FlagExplicit", .value = 0x40, .parameters = &[_]OperandKind{} }, - .{ .name = "FlagPrototyped", .value = 0x80, .parameters = &[_]OperandKind{} }, - .{ .name = "FlagObjectPointer", .value = 0x100, .parameters = &[_]OperandKind{} }, - .{ .name = "FlagStaticMember", .value = 0x200, .parameters = &[_]OperandKind{} }, - .{ .name = "FlagIndirectVariable", .value = 0x400, .parameters = &[_]OperandKind{} }, - .{ .name = "FlagLValueReference", .value = 0x800, .parameters = &[_]OperandKind{} }, - .{ .name = "FlagRValueReference", .value = 0x1000, .parameters = &[_]OperandKind{} }, - .{ .name = "FlagIsOptimized", .value = 0x2000, .parameters = &[_]OperandKind{} }, - .{ .name = "FlagIsEnumClass", .value = 0x4000, .parameters = &[_]OperandKind{} }, - .{ .name = "FlagTypePassByValue", .value = 0x8000, .parameters = &[_]OperandKind{} }, - .{ .name = "FlagTypePassByReference", .value = 0x10000, .parameters = &[_]OperandKind{} }, - .{ .name = "FlagUnknownPhysicalLayout", .value = 0x20000, .parameters = &[_]OperandKind{} }, + .debug_info_debug_operation => &.{ + .{ .name = "Deref", .value = 0, .parameters = &.{} }, + .{ .name = "Plus", .value = 1, .parameters = &.{} }, + .{ .name = "Minus", .value = 2, .parameters = &.{} }, + .{ .name = "PlusUconst", .value = 3, .parameters = &.{.literal_integer} }, + .{ .name = "BitPiece", .value = 4, .parameters = &.{ .literal_integer, .literal_integer } }, + .{ .name = "Swap", .value = 5, .parameters = &.{} }, + .{ .name = "Xderef", .value = 6, .parameters = &.{} }, + .{ .name = "StackValue", .value = 7, .parameters = &.{} }, + .{ .name = "Constu", .value = 8, .parameters = &.{.literal_integer} }, }, - .@"NonSemantic.Shader.DebugInfo.100.BuildIdentifierFlags" => &[_]Enumerant{ - .{ .name = "IdentifierPossibleDuplicates", .value = 0x01, .parameters = &[_]OperandKind{} }, + .open_cl_debug_info_100_debug_info_flags => &.{ + .{ .name = "FlagIsProtected", .value = 0x01, .parameters = &.{} }, + .{ .name = "FlagIsPrivate", .value = 0x02, .parameters = &.{} }, + .{ .name = "FlagIsPublic", .value = 0x03, .parameters = &.{} }, + .{ .name = "FlagIsLocal", .value = 0x04, .parameters = &.{} }, + .{ .name = "FlagIsDefinition", .value = 0x08, .parameters = &.{} }, + .{ .name = "FlagFwdDecl", .value = 0x10, .parameters = &.{} }, + .{ .name = "FlagArtificial", .value = 0x20, .parameters = &.{} }, + .{ .name = "FlagExplicit", .value = 0x40, .parameters = &.{} }, + .{ .name = "FlagPrototyped", .value = 0x80, .parameters = &.{} }, + .{ .name = "FlagObjectPointer", .value = 0x100, .parameters = &.{} }, + .{ .name = "FlagStaticMember", .value = 0x200, .parameters = &.{} }, + .{ .name = "FlagIndirectVariable", .value = 0x400, .parameters = &.{} }, + .{ .name = "FlagLValueReference", .value = 0x800, .parameters = &.{} }, + .{ .name = "FlagRValueReference", .value = 0x1000, .parameters = &.{} }, + .{ .name = "FlagIsOptimized", .value = 0x2000, .parameters = &.{} }, + .{ .name = "FlagIsEnumClass", .value = 0x4000, .parameters = &.{} }, + .{ .name = "FlagTypePassByValue", .value = 0x8000, .parameters = &.{} }, + .{ .name = "FlagTypePassByReference", .value = 0x10000, .parameters = &.{} }, }, - .@"NonSemantic.Shader.DebugInfo.100.DebugBaseTypeAttributeEncoding" => &[_]Enumerant{ - .{ .name = "Unspecified", .value = 0, .parameters = &[_]OperandKind{} }, - .{ .name = "Address", .value = 1, .parameters = &[_]OperandKind{} }, - .{ .name = "Boolean", .value = 2, .parameters = &[_]OperandKind{} }, - .{ .name = "Float", .value = 3, .parameters = &[_]OperandKind{} }, - .{ .name = "Signed", .value = 4, .parameters = &[_]OperandKind{} }, - .{ .name = "SignedChar", .value = 5, .parameters = &[_]OperandKind{} }, - .{ .name = "Unsigned", .value = 6, .parameters = &[_]OperandKind{} }, - .{ .name = "UnsignedChar", .value = 7, .parameters = &[_]OperandKind{} }, + .open_cl_debug_info_100_debug_base_type_attribute_encoding => &.{ + .{ .name = "Unspecified", .value = 0, .parameters = &.{} }, + .{ .name = "Address", .value = 1, .parameters = &.{} }, + .{ .name = "Boolean", .value = 2, .parameters = &.{} }, + .{ .name = "Float", .value = 3, .parameters = &.{} }, + .{ .name = "Signed", .value = 4, .parameters = &.{} }, + .{ .name = "SignedChar", .value = 5, .parameters = &.{} }, + .{ .name = "Unsigned", .value = 6, .parameters = &.{} }, + .{ .name = "UnsignedChar", .value = 7, .parameters = &.{} }, }, - .@"NonSemantic.Shader.DebugInfo.100.DebugCompositeType" => &[_]Enumerant{ - .{ .name = "Class", .value = 0, .parameters = &[_]OperandKind{} }, - .{ .name = "Structure", .value = 1, .parameters = &[_]OperandKind{} }, - .{ .name = "Union", .value = 2, .parameters = &[_]OperandKind{} }, + .open_cl_debug_info_100_debug_composite_type => &.{ + .{ .name = "Class", .value = 0, .parameters = &.{} }, + .{ .name = "Structure", .value = 1, .parameters = &.{} }, + .{ .name = "Union", .value = 2, .parameters = &.{} }, }, - .@"NonSemantic.Shader.DebugInfo.100.DebugTypeQualifier" => &[_]Enumerant{ - .{ .name = "ConstType", .value = 0, .parameters = &[_]OperandKind{} }, - .{ .name = "VolatileType", .value = 1, .parameters = &[_]OperandKind{} }, - .{ .name = "RestrictType", .value = 2, .parameters = &[_]OperandKind{} }, - .{ .name = "AtomicType", .value = 3, .parameters = &[_]OperandKind{} }, + .open_cl_debug_info_100_debug_type_qualifier => &.{ + .{ .name = "ConstType", .value = 0, .parameters = &.{} }, + .{ .name = "VolatileType", .value = 1, .parameters = &.{} }, + .{ .name = "RestrictType", .value = 2, .parameters = &.{} }, + .{ .name = "AtomicType", .value = 3, .parameters = &.{} }, }, - .@"NonSemantic.Shader.DebugInfo.100.DebugOperation" => &[_]Enumerant{ - .{ .name = "Deref", .value = 0, .parameters = &[_]OperandKind{} }, - .{ .name = "Plus", .value = 1, .parameters = &[_]OperandKind{} }, - .{ .name = "Minus", .value = 2, .parameters = &[_]OperandKind{} }, - .{ .name = "PlusUconst", .value = 3, .parameters = &[_]OperandKind{.IdRef} }, - .{ .name = "BitPiece", .value = 4, .parameters = &[_]OperandKind{ .IdRef, .IdRef } }, - .{ .name = "Swap", .value = 5, .parameters = &[_]OperandKind{} }, - .{ .name = "Xderef", .value = 6, .parameters = &[_]OperandKind{} }, - .{ .name = "StackValue", .value = 7, .parameters = &[_]OperandKind{} }, - .{ .name = "Constu", .value = 8, .parameters = &[_]OperandKind{.IdRef} }, - .{ .name = "Fragment", .value = 9, .parameters = &[_]OperandKind{ .IdRef, .IdRef } }, + .open_cl_debug_info_100_debug_operation => &.{ + .{ .name = "Deref", .value = 0, .parameters = &.{} }, + .{ .name = "Plus", .value = 1, .parameters = &.{} }, + .{ .name = "Minus", .value = 2, .parameters = &.{} }, + .{ .name = "PlusUconst", .value = 3, .parameters = &.{.literal_integer} }, + .{ .name = "BitPiece", .value = 4, .parameters = &.{ .literal_integer, .literal_integer } }, + .{ .name = "Swap", .value = 5, .parameters = &.{} }, + .{ .name = "Xderef", .value = 6, .parameters = &.{} }, + .{ .name = "StackValue", .value = 7, .parameters = &.{} }, + .{ .name = "Constu", .value = 8, .parameters = &.{.literal_integer} }, + .{ .name = "Fragment", .value = 9, .parameters = &.{ .literal_integer, .literal_integer } }, }, - .@"NonSemantic.Shader.DebugInfo.100.DebugImportedEntity" => &[_]Enumerant{ - .{ .name = "ImportedModule", .value = 0, .parameters = &[_]OperandKind{} }, - .{ .name = "ImportedDeclaration", .value = 1, .parameters = &[_]OperandKind{} }, + .open_cl_debug_info_100_debug_imported_entity => &.{ + .{ .name = "ImportedModule", .value = 0, .parameters = &.{} }, + .{ .name = "ImportedDeclaration", .value = 1, .parameters = &.{} }, }, - .@"NonSemantic.ClspvReflection.6.KernelPropertyFlags" => &[_]Enumerant{ - .{ .name = "MayUsePrintf", .value = 0x1, .parameters = &[_]OperandKind{} }, + .non_semantic_clspv_reflection_6_kernel_property_flags => &.{ + .{ .name = "MayUsePrintf", .value = 0x1, .parameters = &.{} }, }, - .@"DebugInfo.DebugInfoFlags" => &[_]Enumerant{ - .{ .name = "FlagIsProtected", .value = 0x01, .parameters = &[_]OperandKind{} }, - .{ .name = "FlagIsPrivate", .value = 0x02, .parameters = &[_]OperandKind{} }, - .{ .name = "FlagIsPublic", .value = 0x03, .parameters = &[_]OperandKind{} }, - .{ .name = "FlagIsLocal", .value = 0x04, .parameters = &[_]OperandKind{} }, - .{ .name = "FlagIsDefinition", .value = 0x08, .parameters = &[_]OperandKind{} }, - .{ .name = "FlagFwdDecl", .value = 0x10, .parameters = &[_]OperandKind{} }, - .{ .name = "FlagArtificial", .value = 0x20, .parameters = &[_]OperandKind{} }, - .{ .name = "FlagExplicit", .value = 0x40, .parameters = &[_]OperandKind{} }, - .{ .name = "FlagPrototyped", .value = 0x80, .parameters = &[_]OperandKind{} }, - .{ .name = "FlagObjectPointer", .value = 0x100, .parameters = &[_]OperandKind{} }, - .{ .name = "FlagStaticMember", .value = 0x200, .parameters = &[_]OperandKind{} }, - .{ .name = "FlagIndirectVariable", .value = 0x400, .parameters = &[_]OperandKind{} }, - .{ .name = "FlagLValueReference", .value = 0x800, .parameters = &[_]OperandKind{} }, - .{ .name = "FlagRValueReference", .value = 0x1000, .parameters = &[_]OperandKind{} }, - .{ .name = "FlagIsOptimized", .value = 0x2000, .parameters = &[_]OperandKind{} }, + .non_semantic_shader_debug_info_100_debug_info_flags => &.{ + .{ .name = "FlagIsProtected", .value = 0x01, .parameters = &.{} }, + .{ .name = "FlagIsPrivate", .value = 0x02, .parameters = &.{} }, + .{ .name = "FlagIsPublic", .value = 0x03, .parameters = &.{} }, + .{ .name = "FlagIsLocal", .value = 0x04, .parameters = &.{} }, + .{ .name = "FlagIsDefinition", .value = 0x08, .parameters = &.{} }, + .{ .name = "FlagFwdDecl", .value = 0x10, .parameters = &.{} }, + .{ .name = "FlagArtificial", .value = 0x20, .parameters = &.{} }, + .{ .name = "FlagExplicit", .value = 0x40, .parameters = &.{} }, + .{ .name = "FlagPrototyped", .value = 0x80, .parameters = &.{} }, + .{ .name = "FlagObjectPointer", .value = 0x100, .parameters = &.{} }, + .{ .name = "FlagStaticMember", .value = 0x200, .parameters = &.{} }, + .{ .name = "FlagIndirectVariable", .value = 0x400, .parameters = &.{} }, + .{ .name = "FlagLValueReference", .value = 0x800, .parameters = &.{} }, + .{ .name = "FlagRValueReference", .value = 0x1000, .parameters = &.{} }, + .{ .name = "FlagIsOptimized", .value = 0x2000, .parameters = &.{} }, + .{ .name = "FlagIsEnumClass", .value = 0x4000, .parameters = &.{} }, + .{ .name = "FlagTypePassByValue", .value = 0x8000, .parameters = &.{} }, + .{ .name = "FlagTypePassByReference", .value = 0x10000, .parameters = &.{} }, + .{ .name = "FlagUnknownPhysicalLayout", .value = 0x20000, .parameters = &.{} }, }, - .@"DebugInfo.DebugBaseTypeAttributeEncoding" => &[_]Enumerant{ - .{ .name = "Unspecified", .value = 0, .parameters = &[_]OperandKind{} }, - .{ .name = "Address", .value = 1, .parameters = &[_]OperandKind{} }, - .{ .name = "Boolean", .value = 2, .parameters = &[_]OperandKind{} }, - .{ .name = "Float", .value = 4, .parameters = &[_]OperandKind{} }, - .{ .name = "Signed", .value = 5, .parameters = &[_]OperandKind{} }, - .{ .name = "SignedChar", .value = 6, .parameters = &[_]OperandKind{} }, - .{ .name = "Unsigned", .value = 7, .parameters = &[_]OperandKind{} }, - .{ .name = "UnsignedChar", .value = 8, .parameters = &[_]OperandKind{} }, + .non_semantic_shader_debug_info_100_build_identifier_flags => &.{ + .{ .name = "IdentifierPossibleDuplicates", .value = 0x01, .parameters = &.{} }, }, - .@"DebugInfo.DebugCompositeType" => &[_]Enumerant{ - .{ .name = "Class", .value = 0, .parameters = &[_]OperandKind{} }, - .{ .name = "Structure", .value = 1, .parameters = &[_]OperandKind{} }, - .{ .name = "Union", .value = 2, .parameters = &[_]OperandKind{} }, + .non_semantic_shader_debug_info_100_debug_base_type_attribute_encoding => &.{ + .{ .name = "Unspecified", .value = 0, .parameters = &.{} }, + .{ .name = "Address", .value = 1, .parameters = &.{} }, + .{ .name = "Boolean", .value = 2, .parameters = &.{} }, + .{ .name = "Float", .value = 3, .parameters = &.{} }, + .{ .name = "Signed", .value = 4, .parameters = &.{} }, + .{ .name = "SignedChar", .value = 5, .parameters = &.{} }, + .{ .name = "Unsigned", .value = 6, .parameters = &.{} }, + .{ .name = "UnsignedChar", .value = 7, .parameters = &.{} }, }, - .@"DebugInfo.DebugTypeQualifier" => &[_]Enumerant{ - .{ .name = "ConstType", .value = 0, .parameters = &[_]OperandKind{} }, - .{ .name = "VolatileType", .value = 1, .parameters = &[_]OperandKind{} }, - .{ .name = "RestrictType", .value = 2, .parameters = &[_]OperandKind{} }, + .non_semantic_shader_debug_info_100_debug_composite_type => &.{ + .{ .name = "Class", .value = 0, .parameters = &.{} }, + .{ .name = "Structure", .value = 1, .parameters = &.{} }, + .{ .name = "Union", .value = 2, .parameters = &.{} }, }, - .@"DebugInfo.DebugOperation" => &[_]Enumerant{ - .{ .name = "Deref", .value = 0, .parameters = &[_]OperandKind{} }, - .{ .name = "Plus", .value = 1, .parameters = &[_]OperandKind{} }, - .{ .name = "Minus", .value = 2, .parameters = &[_]OperandKind{} }, - .{ .name = "PlusUconst", .value = 3, .parameters = &[_]OperandKind{.LiteralInteger} }, - .{ .name = "BitPiece", .value = 4, .parameters = &[_]OperandKind{ .LiteralInteger, .LiteralInteger } }, - .{ .name = "Swap", .value = 5, .parameters = &[_]OperandKind{} }, - .{ .name = "Xderef", .value = 6, .parameters = &[_]OperandKind{} }, - .{ .name = "StackValue", .value = 7, .parameters = &[_]OperandKind{} }, - .{ .name = "Constu", .value = 8, .parameters = &[_]OperandKind{.LiteralInteger} }, + .non_semantic_shader_debug_info_100_debug_type_qualifier => &.{ + .{ .name = "ConstType", .value = 0, .parameters = &.{} }, + .{ .name = "VolatileType", .value = 1, .parameters = &.{} }, + .{ .name = "RestrictType", .value = 2, .parameters = &.{} }, + .{ .name = "AtomicType", .value = 3, .parameters = &.{} }, + }, + .non_semantic_shader_debug_info_100_debug_operation => &.{ + .{ .name = "Deref", .value = 0, .parameters = &.{} }, + .{ .name = "Plus", .value = 1, .parameters = &.{} }, + .{ .name = "Minus", .value = 2, .parameters = &.{} }, + .{ .name = "PlusUconst", .value = 3, .parameters = &.{.id_ref} }, + .{ .name = "BitPiece", .value = 4, .parameters = &.{ .id_ref, .id_ref } }, + .{ .name = "Swap", .value = 5, .parameters = &.{} }, + .{ .name = "Xderef", .value = 6, .parameters = &.{} }, + .{ .name = "StackValue", .value = 7, .parameters = &.{} }, + .{ .name = "Constu", .value = 8, .parameters = &.{.id_ref} }, + .{ .name = "Fragment", .value = 9, .parameters = &.{ .id_ref, .id_ref } }, + }, + .non_semantic_shader_debug_info_100_debug_imported_entity => &.{ + .{ .name = "ImportedModule", .value = 0, .parameters = &.{} }, + .{ .name = "ImportedDeclaration", .value = 1, .parameters = &.{} }, }, }; } @@ -1926,14 +1985,34 @@ pub const Opcode = enum(u16) { OpColorAttachmentReadEXT = 4160, OpDepthAttachmentReadEXT = 4161, OpStencilAttachmentReadEXT = 4162, + OpTypeTensorARM = 4163, + OpTensorReadARM = 4164, + OpTensorWriteARM = 4165, + OpTensorQuerySizeARM = 4166, + OpGraphConstantARM = 4181, + OpGraphEntryPointARM = 4182, + OpGraphARM = 4183, + OpGraphInputARM = 4184, + OpGraphSetOutputARM = 4185, + OpGraphEndARM = 4186, + OpTypeGraphARM = 4190, OpTerminateInvocation = 4416, + OpTypeUntypedPointerKHR = 4417, + OpUntypedVariableKHR = 4418, + OpUntypedAccessChainKHR = 4419, + OpUntypedInBoundsAccessChainKHR = 4420, OpSubgroupBallotKHR = 4421, OpSubgroupFirstInvocationKHR = 4422, + OpUntypedPtrAccessChainKHR = 4423, + OpUntypedInBoundsPtrAccessChainKHR = 4424, + OpUntypedArrayLengthKHR = 4425, + OpUntypedPrefetchKHR = 4426, OpSubgroupAllKHR = 4428, OpSubgroupAnyKHR = 4429, OpSubgroupAllEqualKHR = 4430, OpGroupNonUniformRotateKHR = 4431, OpSubgroupReadInvocationKHR = 4432, + OpExtInstWithForwardRefsKHR = 4433, OpTraceRayKHR = 4445, OpExecuteCallableKHR = 4446, OpConvertUToAccelerationStructureKHR = 4447, @@ -1950,6 +2029,9 @@ pub const Opcode = enum(u16) { OpCooperativeMatrixStoreKHR = 4458, OpCooperativeMatrixMulAddKHR = 4459, OpCooperativeMatrixLengthKHR = 4460, + OpConstantCompositeReplicateEXT = 4461, + OpSpecConstantCompositeReplicateEXT = 4462, + OpCompositeConstructReplicateEXT = 4463, OpTypeRayQueryKHR = 4472, OpRayQueryInitializeKHR = 4473, OpRayQueryTerminateKHR = 4474, @@ -1976,9 +2058,14 @@ pub const Opcode = enum(u16) { OpFragmentMaskFetchAMD = 5011, OpFragmentFetchAMD = 5012, OpReadClockKHR = 5056, - OpFinalizeNodePayloadsAMDX = 5075, + OpAllocateNodePayloadsAMDX = 5074, + OpEnqueueNodePayloadsAMDX = 5075, + OpTypeNodePayloadArrayAMDX = 5076, OpFinishWritingNodePayloadAMDX = 5078, - OpInitializeNodePayloadsAMDX = 5090, + OpNodePayloadArrayLengthAMDX = 5090, + OpIsNodePayloadValidAMDX = 5101, + OpConstantStringAMDX = 5103, + OpSpecConstantStringAMDX = 5104, OpGroupNonUniformQuadAllKHR = 5110, OpGroupNonUniformQuadAnyKHR = 5111, OpHitObjectRecordHitMotionNV = 5249, @@ -2015,12 +2102,20 @@ pub const Opcode = enum(u16) { OpReorderThreadWithHintNV = 5280, OpTypeHitObjectNV = 5281, OpImageSampleFootprintNV = 5283, + OpTypeCooperativeVectorNV = 5288, + OpCooperativeVectorMatrixMulNV = 5289, + OpCooperativeVectorOuterProductAccumulateNV = 5290, + OpCooperativeVectorReduceSumAccumulateNV = 5291, + OpCooperativeVectorMatrixMulAddNV = 5292, + OpCooperativeMatrixConvertNV = 5293, OpEmitMeshTasksEXT = 5294, OpSetMeshOutputsEXT = 5295, OpGroupNonUniformPartitionNV = 5296, OpWritePackedPrimitiveIndices4x8NV = 5299, OpFetchMicroTriangleVertexPositionNV = 5300, OpFetchMicroTriangleVertexBarycentricNV = 5301, + OpCooperativeVectorLoadNV = 5302, + OpCooperativeVectorStoreNV = 5303, OpReportIntersectionKHR = 5334, OpIgnoreIntersectionNV = 5335, OpTerminateRayNV = 5336, @@ -2030,6 +2125,8 @@ pub const Opcode = enum(u16) { OpRayQueryGetIntersectionTriangleVertexPositionsKHR = 5340, OpTypeAccelerationStructureKHR = 5341, OpExecuteCallableNV = 5344, + OpRayQueryGetClusterIdNV = 5345, + OpHitObjectGetClusterIdNV = 5346, OpTypeCooperativeMatrixNV = 5358, OpCooperativeMatrixLoadNV = 5359, OpCooperativeMatrixStoreNV = 5360, @@ -2037,8 +2134,25 @@ pub const Opcode = enum(u16) { OpCooperativeMatrixLengthNV = 5362, OpBeginInvocationInterlockEXT = 5364, OpEndInvocationInterlockEXT = 5365, + OpCooperativeMatrixReduceNV = 5366, + OpCooperativeMatrixLoadTensorNV = 5367, + OpCooperativeMatrixStoreTensorNV = 5368, + OpCooperativeMatrixPerElementOpNV = 5369, + OpTypeTensorLayoutNV = 5370, + OpTypeTensorViewNV = 5371, + OpCreateTensorLayoutNV = 5372, + OpTensorLayoutSetDimensionNV = 5373, + OpTensorLayoutSetStrideNV = 5374, + OpTensorLayoutSliceNV = 5375, + OpTensorLayoutSetClampValueNV = 5376, + OpCreateTensorViewNV = 5377, + OpTensorViewSetDimensionNV = 5378, + OpTensorViewSetStrideNV = 5379, OpDemoteToHelperInvocation = 5380, OpIsHelperInvocationEXT = 5381, + OpTensorViewSetClipNV = 5382, + OpTensorLayoutSetBlockSizeNV = 5384, + OpCooperativeMatrixTransposeNV = 5390, OpConvertUToImageNV = 5391, OpConvertUToSamplerNV = 5392, OpConvertImageToUNV = 5393, @@ -2047,6 +2161,19 @@ pub const Opcode = enum(u16) { OpConvertSampledImageToUNV = 5396, OpSamplerImageAddressingModeNV = 5397, OpRawAccessChainNV = 5398, + OpRayQueryGetIntersectionSpherePositionNV = 5427, + OpRayQueryGetIntersectionSphereRadiusNV = 5428, + OpRayQueryGetIntersectionLSSPositionsNV = 5429, + OpRayQueryGetIntersectionLSSRadiiNV = 5430, + OpRayQueryGetIntersectionLSSHitValueNV = 5431, + OpHitObjectGetSpherePositionNV = 5432, + OpHitObjectGetSphereRadiusNV = 5433, + OpHitObjectGetLSSPositionsNV = 5434, + OpHitObjectGetLSSRadiiNV = 5435, + OpHitObjectIsSphereHitNV = 5436, + OpHitObjectIsLSSHitNV = 5437, + OpRayQueryIsSphereHitNV = 5438, + OpRayQueryIsLSSHitNV = 5439, OpSubgroupShuffleINTEL = 5571, OpSubgroupShuffleDownINTEL = 5572, OpSubgroupShuffleUpINTEL = 5573, @@ -2108,6 +2235,20 @@ pub const Opcode = enum(u16) { OpConvertBF16ToFINTEL = 6117, OpControlBarrierArriveINTEL = 6142, OpControlBarrierWaitINTEL = 6143, + OpArithmeticFenceEXT = 6145, + OpTaskSequenceCreateINTEL = 6163, + OpTaskSequenceAsyncINTEL = 6164, + OpTaskSequenceGetINTEL = 6165, + OpTaskSequenceReleaseINTEL = 6166, + OpTypeTaskSequenceINTEL = 6199, + OpSubgroupBlockPrefetchINTEL = 6221, + OpSubgroup2DBlockLoadINTEL = 6231, + OpSubgroup2DBlockLoadTransformINTEL = 6232, + OpSubgroup2DBlockLoadTransposeINTEL = 6233, + OpSubgroup2DBlockPrefetchINTEL = 6234, + OpSubgroup2DBlockStoreINTEL = 6235, + OpSubgroupMatrixMultiplyAccumulateINTEL = 6237, + OpBitwiseFunctionINTEL = 6242, OpGroupIMulKHR = 6401, OpGroupFMulKHR = 6402, OpGroupBitwiseAndKHR = 6403, @@ -2116,1125 +2257,1290 @@ pub const Opcode = enum(u16) { OpGroupLogicalAndKHR = 6406, OpGroupLogicalOrKHR = 6407, OpGroupLogicalXorKHR = 6408, + OpRoundFToTF32INTEL = 6426, OpMaskedGatherINTEL = 6428, OpMaskedScatterINTEL = 6429, - pub const OpSDotKHR = Opcode.OpSDot; - pub const OpUDotKHR = Opcode.OpUDot; - pub const OpSUDotKHR = Opcode.OpSUDot; - pub const OpSDotAccSatKHR = Opcode.OpSDotAccSat; - pub const OpUDotAccSatKHR = Opcode.OpUDotAccSat; - pub const OpSUDotAccSatKHR = Opcode.OpSUDotAccSat; - pub const OpReportIntersectionNV = Opcode.OpReportIntersectionKHR; - pub const OpTypeAccelerationStructureNV = Opcode.OpTypeAccelerationStructureKHR; - pub const OpDemoteToHelperInvocationEXT = Opcode.OpDemoteToHelperInvocation; - pub const OpDecorateStringGOOGLE = Opcode.OpDecorateString; - pub const OpMemberDecorateStringGOOGLE = Opcode.OpMemberDecorateString; + OpConvertHandleToImageINTEL = 6529, + OpConvertHandleToSamplerINTEL = 6530, + OpConvertHandleToSampledImageINTEL = 6531, pub fn Operands(comptime self: Opcode) type { return switch (self) { .OpNop => void, - .OpUndef => struct { id_result_type: IdResultType, id_result: IdResult }, + .OpUndef => struct { id_result_type: Id, id_result: Id }, .OpSourceContinued => struct { continued_source: LiteralString }, - .OpSource => struct { source_language: SourceLanguage, version: LiteralInteger, file: ?IdRef = null, source: ?LiteralString = null }, + .OpSource => struct { source_language: SourceLanguage, version: LiteralInteger, file: ?Id = null, source: ?LiteralString = null }, .OpSourceExtension => struct { extension: LiteralString }, - .OpName => struct { target: IdRef, name: LiteralString }, - .OpMemberName => struct { type: IdRef, member: LiteralInteger, name: LiteralString }, - .OpString => struct { id_result: IdResult, string: LiteralString }, - .OpLine => struct { file: IdRef, line: LiteralInteger, column: LiteralInteger }, + .OpName => struct { target: Id, name: LiteralString }, + .OpMemberName => struct { type: Id, member: LiteralInteger, name: LiteralString }, + .OpString => struct { id_result: Id, string: LiteralString }, + .OpLine => struct { file: Id, line: LiteralInteger, column: LiteralInteger }, .OpExtension => struct { name: LiteralString }, - .OpExtInstImport => struct { id_result: IdResult, name: LiteralString }, - .OpExtInst => struct { id_result_type: IdResultType, id_result: IdResult, set: IdRef, instruction: LiteralExtInstInteger, id_ref_4: []const IdRef = &.{} }, + .OpExtInstImport => struct { id_result: Id, name: LiteralString }, + .OpExtInst => struct { id_result_type: Id, id_result: Id, set: Id, instruction: LiteralExtInstInteger, id_ref_4: []const Id = &.{} }, .OpMemoryModel => struct { addressing_model: AddressingModel, memory_model: MemoryModel }, - .OpEntryPoint => struct { execution_model: ExecutionModel, entry_point: IdRef, name: LiteralString, interface: []const IdRef = &.{} }, - .OpExecutionMode => struct { entry_point: IdRef, mode: ExecutionMode.Extended }, + .OpEntryPoint => struct { execution_model: ExecutionModel, entry_point: Id, name: LiteralString, interface: []const Id = &.{} }, + .OpExecutionMode => struct { entry_point: Id, mode: ExecutionMode.Extended }, .OpCapability => struct { capability: Capability }, - .OpTypeVoid => struct { id_result: IdResult }, - .OpTypeBool => struct { id_result: IdResult }, - .OpTypeInt => struct { id_result: IdResult, width: LiteralInteger, signedness: LiteralInteger }, - .OpTypeFloat => struct { id_result: IdResult, width: LiteralInteger }, - .OpTypeVector => struct { id_result: IdResult, component_type: IdRef, component_count: LiteralInteger }, - .OpTypeMatrix => struct { id_result: IdResult, column_type: IdRef, column_count: LiteralInteger }, - .OpTypeImage => struct { id_result: IdResult, sampled_type: IdRef, dim: Dim, depth: LiteralInteger, arrayed: LiteralInteger, ms: LiteralInteger, sampled: LiteralInteger, image_format: ImageFormat, access_qualifier: ?AccessQualifier = null }, - .OpTypeSampler => struct { id_result: IdResult }, - .OpTypeSampledImage => struct { id_result: IdResult, image_type: IdRef }, - .OpTypeArray => struct { id_result: IdResult, element_type: IdRef, length: IdRef }, - .OpTypeRuntimeArray => struct { id_result: IdResult, element_type: IdRef }, - .OpTypeStruct => struct { id_result: IdResult, id_ref: []const IdRef = &.{} }, - .OpTypeOpaque => struct { id_result: IdResult, literal_string: LiteralString }, - .OpTypePointer => struct { id_result: IdResult, storage_class: StorageClass, type: IdRef }, - .OpTypeFunction => struct { id_result: IdResult, return_type: IdRef, id_ref_2: []const IdRef = &.{} }, - .OpTypeEvent => struct { id_result: IdResult }, - .OpTypeDeviceEvent => struct { id_result: IdResult }, - .OpTypeReserveId => struct { id_result: IdResult }, - .OpTypeQueue => struct { id_result: IdResult }, - .OpTypePipe => struct { id_result: IdResult, qualifier: AccessQualifier }, - .OpTypeForwardPointer => struct { pointer_type: IdRef, storage_class: StorageClass }, - .OpConstantTrue => struct { id_result_type: IdResultType, id_result: IdResult }, - .OpConstantFalse => struct { id_result_type: IdResultType, id_result: IdResult }, - .OpConstant => struct { id_result_type: IdResultType, id_result: IdResult, value: LiteralContextDependentNumber }, - .OpConstantComposite => struct { id_result_type: IdResultType, id_result: IdResult, constituents: []const IdRef = &.{} }, - .OpConstantSampler => struct { id_result_type: IdResultType, id_result: IdResult, sampler_addressing_mode: SamplerAddressingMode, param: LiteralInteger, sampler_filter_mode: SamplerFilterMode }, - .OpConstantNull => struct { id_result_type: IdResultType, id_result: IdResult }, - .OpSpecConstantTrue => struct { id_result_type: IdResultType, id_result: IdResult }, - .OpSpecConstantFalse => struct { id_result_type: IdResultType, id_result: IdResult }, - .OpSpecConstant => struct { id_result_type: IdResultType, id_result: IdResult, value: LiteralContextDependentNumber }, - .OpSpecConstantComposite => struct { id_result_type: IdResultType, id_result: IdResult, constituents: []const IdRef = &.{} }, - .OpSpecConstantOp => struct { id_result_type: IdResultType, id_result: IdResult, opcode: LiteralSpecConstantOpInteger }, - .OpFunction => struct { id_result_type: IdResultType, id_result: IdResult, function_control: FunctionControl, function_type: IdRef }, - .OpFunctionParameter => struct { id_result_type: IdResultType, id_result: IdResult }, + .OpTypeVoid => struct { id_result: Id }, + .OpTypeBool => struct { id_result: Id }, + .OpTypeInt => struct { id_result: Id, width: LiteralInteger, signedness: LiteralInteger }, + .OpTypeFloat => struct { id_result: Id, width: LiteralInteger, floating_point_encoding: ?FPEncoding = null }, + .OpTypeVector => struct { id_result: Id, component_type: Id, component_count: LiteralInteger }, + .OpTypeMatrix => struct { id_result: Id, column_type: Id, column_count: LiteralInteger }, + .OpTypeImage => struct { id_result: Id, sampled_type: Id, dim: Dim, depth: LiteralInteger, arrayed: LiteralInteger, ms: LiteralInteger, sampled: LiteralInteger, image_format: ImageFormat, access_qualifier: ?AccessQualifier = null }, + .OpTypeSampler => struct { id_result: Id }, + .OpTypeSampledImage => struct { id_result: Id, image_type: Id }, + .OpTypeArray => struct { id_result: Id, element_type: Id, length: Id }, + .OpTypeRuntimeArray => struct { id_result: Id, element_type: Id }, + .OpTypeStruct => struct { id_result: Id, id_ref: []const Id = &.{} }, + .OpTypeOpaque => struct { id_result: Id, literal_string: LiteralString }, + .OpTypePointer => struct { id_result: Id, storage_class: StorageClass, type: Id }, + .OpTypeFunction => struct { id_result: Id, return_type: Id, id_ref_2: []const Id = &.{} }, + .OpTypeEvent => struct { id_result: Id }, + .OpTypeDeviceEvent => struct { id_result: Id }, + .OpTypeReserveId => struct { id_result: Id }, + .OpTypeQueue => struct { id_result: Id }, + .OpTypePipe => struct { id_result: Id, qualifier: AccessQualifier }, + .OpTypeForwardPointer => struct { pointer_type: Id, storage_class: StorageClass }, + .OpConstantTrue => struct { id_result_type: Id, id_result: Id }, + .OpConstantFalse => struct { id_result_type: Id, id_result: Id }, + .OpConstant => struct { id_result_type: Id, id_result: Id, value: LiteralContextDependentNumber }, + .OpConstantComposite => struct { id_result_type: Id, id_result: Id, constituents: []const Id = &.{} }, + .OpConstantSampler => struct { id_result_type: Id, id_result: Id, sampler_addressing_mode: SamplerAddressingMode, param: LiteralInteger, sampler_filter_mode: SamplerFilterMode }, + .OpConstantNull => struct { id_result_type: Id, id_result: Id }, + .OpSpecConstantTrue => struct { id_result_type: Id, id_result: Id }, + .OpSpecConstantFalse => struct { id_result_type: Id, id_result: Id }, + .OpSpecConstant => struct { id_result_type: Id, id_result: Id, value: LiteralContextDependentNumber }, + .OpSpecConstantComposite => struct { id_result_type: Id, id_result: Id, constituents: []const Id = &.{} }, + .OpSpecConstantOp => struct { id_result_type: Id, id_result: Id, opcode: LiteralSpecConstantOpInteger }, + .OpFunction => struct { id_result_type: Id, id_result: Id, function_control: FunctionControl, function_type: Id }, + .OpFunctionParameter => struct { id_result_type: Id, id_result: Id }, .OpFunctionEnd => void, - .OpFunctionCall => struct { id_result_type: IdResultType, id_result: IdResult, function: IdRef, id_ref_3: []const IdRef = &.{} }, - .OpVariable => struct { id_result_type: IdResultType, id_result: IdResult, storage_class: StorageClass, initializer: ?IdRef = null }, - .OpImageTexelPointer => struct { id_result_type: IdResultType, id_result: IdResult, image: IdRef, coordinate: IdRef, sample: IdRef }, - .OpLoad => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef, memory_access: ?MemoryAccess.Extended = null }, - .OpStore => struct { pointer: IdRef, object: IdRef, memory_access: ?MemoryAccess.Extended = null }, - .OpCopyMemory => struct { target: IdRef, source: IdRef, memory_access_2: ?MemoryAccess.Extended = null, memory_access_3: ?MemoryAccess.Extended = null }, - .OpCopyMemorySized => struct { target: IdRef, source: IdRef, size: IdRef, memory_access_3: ?MemoryAccess.Extended = null, memory_access_4: ?MemoryAccess.Extended = null }, - .OpAccessChain => struct { id_result_type: IdResultType, id_result: IdResult, base: IdRef, indexes: []const IdRef = &.{} }, - .OpInBoundsAccessChain => struct { id_result_type: IdResultType, id_result: IdResult, base: IdRef, indexes: []const IdRef = &.{} }, - .OpPtrAccessChain => struct { id_result_type: IdResultType, id_result: IdResult, base: IdRef, element: IdRef, indexes: []const IdRef = &.{} }, - .OpArrayLength => struct { id_result_type: IdResultType, id_result: IdResult, structure: IdRef, array_member: LiteralInteger }, - .OpGenericPtrMemSemantics => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef }, - .OpInBoundsPtrAccessChain => struct { id_result_type: IdResultType, id_result: IdResult, base: IdRef, element: IdRef, indexes: []const IdRef = &.{} }, - .OpDecorate => struct { target: IdRef, decoration: Decoration.Extended }, - .OpMemberDecorate => struct { structure_type: IdRef, member: LiteralInteger, decoration: Decoration.Extended }, - .OpDecorationGroup => struct { id_result: IdResult }, - .OpGroupDecorate => struct { decoration_group: IdRef, targets: []const IdRef = &.{} }, - .OpGroupMemberDecorate => struct { decoration_group: IdRef, targets: []const PairIdRefLiteralInteger = &.{} }, - .OpVectorExtractDynamic => struct { id_result_type: IdResultType, id_result: IdResult, vector: IdRef, index: IdRef }, - .OpVectorInsertDynamic => struct { id_result_type: IdResultType, id_result: IdResult, vector: IdRef, component: IdRef, index: IdRef }, - .OpVectorShuffle => struct { id_result_type: IdResultType, id_result: IdResult, vector_1: IdRef, vector_2: IdRef, components: []const LiteralInteger = &.{} }, - .OpCompositeConstruct => struct { id_result_type: IdResultType, id_result: IdResult, constituents: []const IdRef = &.{} }, - .OpCompositeExtract => struct { id_result_type: IdResultType, id_result: IdResult, composite: IdRef, indexes: []const LiteralInteger = &.{} }, - .OpCompositeInsert => struct { id_result_type: IdResultType, id_result: IdResult, object: IdRef, composite: IdRef, indexes: []const LiteralInteger = &.{} }, - .OpCopyObject => struct { id_result_type: IdResultType, id_result: IdResult, operand: IdRef }, - .OpTranspose => struct { id_result_type: IdResultType, id_result: IdResult, matrix: IdRef }, - .OpSampledImage => struct { id_result_type: IdResultType, id_result: IdResult, image: IdRef, sampler: IdRef }, - .OpImageSampleImplicitLod => struct { id_result_type: IdResultType, id_result: IdResult, sampled_image: IdRef, coordinate: IdRef, image_operands: ?ImageOperands.Extended = null }, - .OpImageSampleExplicitLod => struct { id_result_type: IdResultType, id_result: IdResult, sampled_image: IdRef, coordinate: IdRef, image_operands: ImageOperands.Extended }, - .OpImageSampleDrefImplicitLod => struct { id_result_type: IdResultType, id_result: IdResult, sampled_image: IdRef, coordinate: IdRef, d_ref: IdRef, image_operands: ?ImageOperands.Extended = null }, - .OpImageSampleDrefExplicitLod => struct { id_result_type: IdResultType, id_result: IdResult, sampled_image: IdRef, coordinate: IdRef, d_ref: IdRef, image_operands: ImageOperands.Extended }, - .OpImageSampleProjImplicitLod => struct { id_result_type: IdResultType, id_result: IdResult, sampled_image: IdRef, coordinate: IdRef, image_operands: ?ImageOperands.Extended = null }, - .OpImageSampleProjExplicitLod => struct { id_result_type: IdResultType, id_result: IdResult, sampled_image: IdRef, coordinate: IdRef, image_operands: ImageOperands.Extended }, - .OpImageSampleProjDrefImplicitLod => struct { id_result_type: IdResultType, id_result: IdResult, sampled_image: IdRef, coordinate: IdRef, d_ref: IdRef, image_operands: ?ImageOperands.Extended = null }, - .OpImageSampleProjDrefExplicitLod => struct { id_result_type: IdResultType, id_result: IdResult, sampled_image: IdRef, coordinate: IdRef, d_ref: IdRef, image_operands: ImageOperands.Extended }, - .OpImageFetch => struct { id_result_type: IdResultType, id_result: IdResult, image: IdRef, coordinate: IdRef, image_operands: ?ImageOperands.Extended = null }, - .OpImageGather => struct { id_result_type: IdResultType, id_result: IdResult, sampled_image: IdRef, coordinate: IdRef, component: IdRef, image_operands: ?ImageOperands.Extended = null }, - .OpImageDrefGather => struct { id_result_type: IdResultType, id_result: IdResult, sampled_image: IdRef, coordinate: IdRef, d_ref: IdRef, image_operands: ?ImageOperands.Extended = null }, - .OpImageRead => struct { id_result_type: IdResultType, id_result: IdResult, image: IdRef, coordinate: IdRef, image_operands: ?ImageOperands.Extended = null }, - .OpImageWrite => struct { image: IdRef, coordinate: IdRef, texel: IdRef, image_operands: ?ImageOperands.Extended = null }, - .OpImage => struct { id_result_type: IdResultType, id_result: IdResult, sampled_image: IdRef }, - .OpImageQueryFormat => struct { id_result_type: IdResultType, id_result: IdResult, image: IdRef }, - .OpImageQueryOrder => struct { id_result_type: IdResultType, id_result: IdResult, image: IdRef }, - .OpImageQuerySizeLod => struct { id_result_type: IdResultType, id_result: IdResult, image: IdRef, level_of_detail: IdRef }, - .OpImageQuerySize => struct { id_result_type: IdResultType, id_result: IdResult, image: IdRef }, - .OpImageQueryLod => struct { id_result_type: IdResultType, id_result: IdResult, sampled_image: IdRef, coordinate: IdRef }, - .OpImageQueryLevels => struct { id_result_type: IdResultType, id_result: IdResult, image: IdRef }, - .OpImageQuerySamples => struct { id_result_type: IdResultType, id_result: IdResult, image: IdRef }, - .OpConvertFToU => struct { id_result_type: IdResultType, id_result: IdResult, float_value: IdRef }, - .OpConvertFToS => struct { id_result_type: IdResultType, id_result: IdResult, float_value: IdRef }, - .OpConvertSToF => struct { id_result_type: IdResultType, id_result: IdResult, signed_value: IdRef }, - .OpConvertUToF => struct { id_result_type: IdResultType, id_result: IdResult, unsigned_value: IdRef }, - .OpUConvert => struct { id_result_type: IdResultType, id_result: IdResult, unsigned_value: IdRef }, - .OpSConvert => struct { id_result_type: IdResultType, id_result: IdResult, signed_value: IdRef }, - .OpFConvert => struct { id_result_type: IdResultType, id_result: IdResult, float_value: IdRef }, - .OpQuantizeToF16 => struct { id_result_type: IdResultType, id_result: IdResult, value: IdRef }, - .OpConvertPtrToU => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef }, - .OpSatConvertSToU => struct { id_result_type: IdResultType, id_result: IdResult, signed_value: IdRef }, - .OpSatConvertUToS => struct { id_result_type: IdResultType, id_result: IdResult, unsigned_value: IdRef }, - .OpConvertUToPtr => struct { id_result_type: IdResultType, id_result: IdResult, integer_value: IdRef }, - .OpPtrCastToGeneric => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef }, - .OpGenericCastToPtr => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef }, - .OpGenericCastToPtrExplicit => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef, storage: StorageClass }, - .OpBitcast => struct { id_result_type: IdResultType, id_result: IdResult, operand: IdRef }, - .OpSNegate => struct { id_result_type: IdResultType, id_result: IdResult, operand: IdRef }, - .OpFNegate => struct { id_result_type: IdResultType, id_result: IdResult, operand: IdRef }, - .OpIAdd => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, - .OpFAdd => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, - .OpISub => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, - .OpFSub => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, - .OpIMul => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, - .OpFMul => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, - .OpUDiv => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, - .OpSDiv => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, - .OpFDiv => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, - .OpUMod => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, - .OpSRem => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, - .OpSMod => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, - .OpFRem => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, - .OpFMod => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, - .OpVectorTimesScalar => struct { id_result_type: IdResultType, id_result: IdResult, vector: IdRef, scalar: IdRef }, - .OpMatrixTimesScalar => struct { id_result_type: IdResultType, id_result: IdResult, matrix: IdRef, scalar: IdRef }, - .OpVectorTimesMatrix => struct { id_result_type: IdResultType, id_result: IdResult, vector: IdRef, matrix: IdRef }, - .OpMatrixTimesVector => struct { id_result_type: IdResultType, id_result: IdResult, matrix: IdRef, vector: IdRef }, - .OpMatrixTimesMatrix => struct { id_result_type: IdResultType, id_result: IdResult, leftmatrix: IdRef, rightmatrix: IdRef }, - .OpOuterProduct => struct { id_result_type: IdResultType, id_result: IdResult, vector_1: IdRef, vector_2: IdRef }, - .OpDot => struct { id_result_type: IdResultType, id_result: IdResult, vector_1: IdRef, vector_2: IdRef }, - .OpIAddCarry => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, - .OpISubBorrow => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, - .OpUMulExtended => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, - .OpSMulExtended => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, - .OpAny => struct { id_result_type: IdResultType, id_result: IdResult, vector: IdRef }, - .OpAll => struct { id_result_type: IdResultType, id_result: IdResult, vector: IdRef }, - .OpIsNan => struct { id_result_type: IdResultType, id_result: IdResult, x: IdRef }, - .OpIsInf => struct { id_result_type: IdResultType, id_result: IdResult, x: IdRef }, - .OpIsFinite => struct { id_result_type: IdResultType, id_result: IdResult, x: IdRef }, - .OpIsNormal => struct { id_result_type: IdResultType, id_result: IdResult, x: IdRef }, - .OpSignBitSet => struct { id_result_type: IdResultType, id_result: IdResult, x: IdRef }, - .OpLessOrGreater => struct { id_result_type: IdResultType, id_result: IdResult, x: IdRef, y: IdRef }, - .OpOrdered => struct { id_result_type: IdResultType, id_result: IdResult, x: IdRef, y: IdRef }, - .OpUnordered => struct { id_result_type: IdResultType, id_result: IdResult, x: IdRef, y: IdRef }, - .OpLogicalEqual => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, - .OpLogicalNotEqual => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, - .OpLogicalOr => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, - .OpLogicalAnd => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, - .OpLogicalNot => struct { id_result_type: IdResultType, id_result: IdResult, operand: IdRef }, - .OpSelect => struct { id_result_type: IdResultType, id_result: IdResult, condition: IdRef, object_1: IdRef, object_2: IdRef }, - .OpIEqual => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, - .OpINotEqual => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, - .OpUGreaterThan => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, - .OpSGreaterThan => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, - .OpUGreaterThanEqual => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, - .OpSGreaterThanEqual => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, - .OpULessThan => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, - .OpSLessThan => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, - .OpULessThanEqual => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, - .OpSLessThanEqual => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, - .OpFOrdEqual => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, - .OpFUnordEqual => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, - .OpFOrdNotEqual => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, - .OpFUnordNotEqual => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, - .OpFOrdLessThan => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, - .OpFUnordLessThan => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, - .OpFOrdGreaterThan => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, - .OpFUnordGreaterThan => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, - .OpFOrdLessThanEqual => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, - .OpFUnordLessThanEqual => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, - .OpFOrdGreaterThanEqual => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, - .OpFUnordGreaterThanEqual => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, - .OpShiftRightLogical => struct { id_result_type: IdResultType, id_result: IdResult, base: IdRef, shift: IdRef }, - .OpShiftRightArithmetic => struct { id_result_type: IdResultType, id_result: IdResult, base: IdRef, shift: IdRef }, - .OpShiftLeftLogical => struct { id_result_type: IdResultType, id_result: IdResult, base: IdRef, shift: IdRef }, - .OpBitwiseOr => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, - .OpBitwiseXor => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, - .OpBitwiseAnd => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, - .OpNot => struct { id_result_type: IdResultType, id_result: IdResult, operand: IdRef }, - .OpBitFieldInsert => struct { id_result_type: IdResultType, id_result: IdResult, base: IdRef, insert: IdRef, offset: IdRef, count: IdRef }, - .OpBitFieldSExtract => struct { id_result_type: IdResultType, id_result: IdResult, base: IdRef, offset: IdRef, count: IdRef }, - .OpBitFieldUExtract => struct { id_result_type: IdResultType, id_result: IdResult, base: IdRef, offset: IdRef, count: IdRef }, - .OpBitReverse => struct { id_result_type: IdResultType, id_result: IdResult, base: IdRef }, - .OpBitCount => struct { id_result_type: IdResultType, id_result: IdResult, base: IdRef }, - .OpDPdx => struct { id_result_type: IdResultType, id_result: IdResult, p: IdRef }, - .OpDPdy => struct { id_result_type: IdResultType, id_result: IdResult, p: IdRef }, - .OpFwidth => struct { id_result_type: IdResultType, id_result: IdResult, p: IdRef }, - .OpDPdxFine => struct { id_result_type: IdResultType, id_result: IdResult, p: IdRef }, - .OpDPdyFine => struct { id_result_type: IdResultType, id_result: IdResult, p: IdRef }, - .OpFwidthFine => struct { id_result_type: IdResultType, id_result: IdResult, p: IdRef }, - .OpDPdxCoarse => struct { id_result_type: IdResultType, id_result: IdResult, p: IdRef }, - .OpDPdyCoarse => struct { id_result_type: IdResultType, id_result: IdResult, p: IdRef }, - .OpFwidthCoarse => struct { id_result_type: IdResultType, id_result: IdResult, p: IdRef }, + .OpFunctionCall => struct { id_result_type: Id, id_result: Id, function: Id, id_ref_3: []const Id = &.{} }, + .OpVariable => struct { id_result_type: Id, id_result: Id, storage_class: StorageClass, initializer: ?Id = null }, + .OpImageTexelPointer => struct { id_result_type: Id, id_result: Id, image: Id, coordinate: Id, sample: Id }, + .OpLoad => struct { id_result_type: Id, id_result: Id, pointer: Id, memory_access: ?MemoryAccess.Extended = null }, + .OpStore => struct { pointer: Id, object: Id, memory_access: ?MemoryAccess.Extended = null }, + .OpCopyMemory => struct { target: Id, source: Id, memory_access_2: ?MemoryAccess.Extended = null, memory_access_3: ?MemoryAccess.Extended = null }, + .OpCopyMemorySized => struct { target: Id, source: Id, size: Id, memory_access_3: ?MemoryAccess.Extended = null, memory_access_4: ?MemoryAccess.Extended = null }, + .OpAccessChain => struct { id_result_type: Id, id_result: Id, base: Id, indexes: []const Id = &.{} }, + .OpInBoundsAccessChain => struct { id_result_type: Id, id_result: Id, base: Id, indexes: []const Id = &.{} }, + .OpPtrAccessChain => struct { id_result_type: Id, id_result: Id, base: Id, element: Id, indexes: []const Id = &.{} }, + .OpArrayLength => struct { id_result_type: Id, id_result: Id, structure: Id, array_member: LiteralInteger }, + .OpGenericPtrMemSemantics => struct { id_result_type: Id, id_result: Id, pointer: Id }, + .OpInBoundsPtrAccessChain => struct { id_result_type: Id, id_result: Id, base: Id, element: Id, indexes: []const Id = &.{} }, + .OpDecorate => struct { target: Id, decoration: Decoration.Extended }, + .OpMemberDecorate => struct { structure_type: Id, member: LiteralInteger, decoration: Decoration.Extended }, + .OpDecorationGroup => struct { id_result: Id }, + .OpGroupDecorate => struct { decoration_group: Id, targets: []const Id = &.{} }, + .OpGroupMemberDecorate => struct { decoration_group: Id, targets: []const PairIdRefLiteralInteger = &.{} }, + .OpVectorExtractDynamic => struct { id_result_type: Id, id_result: Id, vector: Id, index: Id }, + .OpVectorInsertDynamic => struct { id_result_type: Id, id_result: Id, vector: Id, component: Id, index: Id }, + .OpVectorShuffle => struct { id_result_type: Id, id_result: Id, vector_1: Id, vector_2: Id, components: []const LiteralInteger = &.{} }, + .OpCompositeConstruct => struct { id_result_type: Id, id_result: Id, constituents: []const Id = &.{} }, + .OpCompositeExtract => struct { id_result_type: Id, id_result: Id, composite: Id, indexes: []const LiteralInteger = &.{} }, + .OpCompositeInsert => struct { id_result_type: Id, id_result: Id, object: Id, composite: Id, indexes: []const LiteralInteger = &.{} }, + .OpCopyObject => struct { id_result_type: Id, id_result: Id, operand: Id }, + .OpTranspose => struct { id_result_type: Id, id_result: Id, matrix: Id }, + .OpSampledImage => struct { id_result_type: Id, id_result: Id, image: Id, sampler: Id }, + .OpImageSampleImplicitLod => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, image_operands: ?ImageOperands.Extended = null }, + .OpImageSampleExplicitLod => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, image_operands: ImageOperands.Extended }, + .OpImageSampleDrefImplicitLod => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, d_ref: Id, image_operands: ?ImageOperands.Extended = null }, + .OpImageSampleDrefExplicitLod => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, d_ref: Id, image_operands: ImageOperands.Extended }, + .OpImageSampleProjImplicitLod => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, image_operands: ?ImageOperands.Extended = null }, + .OpImageSampleProjExplicitLod => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, image_operands: ImageOperands.Extended }, + .OpImageSampleProjDrefImplicitLod => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, d_ref: Id, image_operands: ?ImageOperands.Extended = null }, + .OpImageSampleProjDrefExplicitLod => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, d_ref: Id, image_operands: ImageOperands.Extended }, + .OpImageFetch => struct { id_result_type: Id, id_result: Id, image: Id, coordinate: Id, image_operands: ?ImageOperands.Extended = null }, + .OpImageGather => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, component: Id, image_operands: ?ImageOperands.Extended = null }, + .OpImageDrefGather => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, d_ref: Id, image_operands: ?ImageOperands.Extended = null }, + .OpImageRead => struct { id_result_type: Id, id_result: Id, image: Id, coordinate: Id, image_operands: ?ImageOperands.Extended = null }, + .OpImageWrite => struct { image: Id, coordinate: Id, texel: Id, image_operands: ?ImageOperands.Extended = null }, + .OpImage => struct { id_result_type: Id, id_result: Id, sampled_image: Id }, + .OpImageQueryFormat => struct { id_result_type: Id, id_result: Id, image: Id }, + .OpImageQueryOrder => struct { id_result_type: Id, id_result: Id, image: Id }, + .OpImageQuerySizeLod => struct { id_result_type: Id, id_result: Id, image: Id, level_of_detail: Id }, + .OpImageQuerySize => struct { id_result_type: Id, id_result: Id, image: Id }, + .OpImageQueryLod => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id }, + .OpImageQueryLevels => struct { id_result_type: Id, id_result: Id, image: Id }, + .OpImageQuerySamples => struct { id_result_type: Id, id_result: Id, image: Id }, + .OpConvertFToU => struct { id_result_type: Id, id_result: Id, float_value: Id }, + .OpConvertFToS => struct { id_result_type: Id, id_result: Id, float_value: Id }, + .OpConvertSToF => struct { id_result_type: Id, id_result: Id, signed_value: Id }, + .OpConvertUToF => struct { id_result_type: Id, id_result: Id, unsigned_value: Id }, + .OpUConvert => struct { id_result_type: Id, id_result: Id, unsigned_value: Id }, + .OpSConvert => struct { id_result_type: Id, id_result: Id, signed_value: Id }, + .OpFConvert => struct { id_result_type: Id, id_result: Id, float_value: Id }, + .OpQuantizeToF16 => struct { id_result_type: Id, id_result: Id, value: Id }, + .OpConvertPtrToU => struct { id_result_type: Id, id_result: Id, pointer: Id }, + .OpSatConvertSToU => struct { id_result_type: Id, id_result: Id, signed_value: Id }, + .OpSatConvertUToS => struct { id_result_type: Id, id_result: Id, unsigned_value: Id }, + .OpConvertUToPtr => struct { id_result_type: Id, id_result: Id, integer_value: Id }, + .OpPtrCastToGeneric => struct { id_result_type: Id, id_result: Id, pointer: Id }, + .OpGenericCastToPtr => struct { id_result_type: Id, id_result: Id, pointer: Id }, + .OpGenericCastToPtrExplicit => struct { id_result_type: Id, id_result: Id, pointer: Id, storage: StorageClass }, + .OpBitcast => struct { id_result_type: Id, id_result: Id, operand: Id }, + .OpSNegate => struct { id_result_type: Id, id_result: Id, operand: Id }, + .OpFNegate => struct { id_result_type: Id, id_result: Id, operand: Id }, + .OpIAdd => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id }, + .OpFAdd => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id }, + .OpISub => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id }, + .OpFSub => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id }, + .OpIMul => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id }, + .OpFMul => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id }, + .OpUDiv => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id }, + .OpSDiv => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id }, + .OpFDiv => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id }, + .OpUMod => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id }, + .OpSRem => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id }, + .OpSMod => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id }, + .OpFRem => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id }, + .OpFMod => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id }, + .OpVectorTimesScalar => struct { id_result_type: Id, id_result: Id, vector: Id, scalar: Id }, + .OpMatrixTimesScalar => struct { id_result_type: Id, id_result: Id, matrix: Id, scalar: Id }, + .OpVectorTimesMatrix => struct { id_result_type: Id, id_result: Id, vector: Id, matrix: Id }, + .OpMatrixTimesVector => struct { id_result_type: Id, id_result: Id, matrix: Id, vector: Id }, + .OpMatrixTimesMatrix => struct { id_result_type: Id, id_result: Id, left_matrix: Id, right_matrix: Id }, + .OpOuterProduct => struct { id_result_type: Id, id_result: Id, vector_1: Id, vector_2: Id }, + .OpDot => struct { id_result_type: Id, id_result: Id, vector_1: Id, vector_2: Id }, + .OpIAddCarry => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id }, + .OpISubBorrow => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id }, + .OpUMulExtended => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id }, + .OpSMulExtended => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id }, + .OpAny => struct { id_result_type: Id, id_result: Id, vector: Id }, + .OpAll => struct { id_result_type: Id, id_result: Id, vector: Id }, + .OpIsNan => struct { id_result_type: Id, id_result: Id, x: Id }, + .OpIsInf => struct { id_result_type: Id, id_result: Id, x: Id }, + .OpIsFinite => struct { id_result_type: Id, id_result: Id, x: Id }, + .OpIsNormal => struct { id_result_type: Id, id_result: Id, x: Id }, + .OpSignBitSet => struct { id_result_type: Id, id_result: Id, x: Id }, + .OpLessOrGreater => struct { id_result_type: Id, id_result: Id, x: Id, y: Id }, + .OpOrdered => struct { id_result_type: Id, id_result: Id, x: Id, y: Id }, + .OpUnordered => struct { id_result_type: Id, id_result: Id, x: Id, y: Id }, + .OpLogicalEqual => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id }, + .OpLogicalNotEqual => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id }, + .OpLogicalOr => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id }, + .OpLogicalAnd => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id }, + .OpLogicalNot => struct { id_result_type: Id, id_result: Id, operand: Id }, + .OpSelect => struct { id_result_type: Id, id_result: Id, condition: Id, object_1: Id, object_2: Id }, + .OpIEqual => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id }, + .OpINotEqual => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id }, + .OpUGreaterThan => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id }, + .OpSGreaterThan => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id }, + .OpUGreaterThanEqual => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id }, + .OpSGreaterThanEqual => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id }, + .OpULessThan => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id }, + .OpSLessThan => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id }, + .OpULessThanEqual => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id }, + .OpSLessThanEqual => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id }, + .OpFOrdEqual => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id }, + .OpFUnordEqual => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id }, + .OpFOrdNotEqual => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id }, + .OpFUnordNotEqual => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id }, + .OpFOrdLessThan => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id }, + .OpFUnordLessThan => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id }, + .OpFOrdGreaterThan => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id }, + .OpFUnordGreaterThan => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id }, + .OpFOrdLessThanEqual => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id }, + .OpFUnordLessThanEqual => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id }, + .OpFOrdGreaterThanEqual => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id }, + .OpFUnordGreaterThanEqual => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id }, + .OpShiftRightLogical => struct { id_result_type: Id, id_result: Id, base: Id, shift: Id }, + .OpShiftRightArithmetic => struct { id_result_type: Id, id_result: Id, base: Id, shift: Id }, + .OpShiftLeftLogical => struct { id_result_type: Id, id_result: Id, base: Id, shift: Id }, + .OpBitwiseOr => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id }, + .OpBitwiseXor => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id }, + .OpBitwiseAnd => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id }, + .OpNot => struct { id_result_type: Id, id_result: Id, operand: Id }, + .OpBitFieldInsert => struct { id_result_type: Id, id_result: Id, base: Id, insert: Id, offset: Id, count: Id }, + .OpBitFieldSExtract => struct { id_result_type: Id, id_result: Id, base: Id, offset: Id, count: Id }, + .OpBitFieldUExtract => struct { id_result_type: Id, id_result: Id, base: Id, offset: Id, count: Id }, + .OpBitReverse => struct { id_result_type: Id, id_result: Id, base: Id }, + .OpBitCount => struct { id_result_type: Id, id_result: Id, base: Id }, + .OpDPdx => struct { id_result_type: Id, id_result: Id, p: Id }, + .OpDPdy => struct { id_result_type: Id, id_result: Id, p: Id }, + .OpFwidth => struct { id_result_type: Id, id_result: Id, p: Id }, + .OpDPdxFine => struct { id_result_type: Id, id_result: Id, p: Id }, + .OpDPdyFine => struct { id_result_type: Id, id_result: Id, p: Id }, + .OpFwidthFine => struct { id_result_type: Id, id_result: Id, p: Id }, + .OpDPdxCoarse => struct { id_result_type: Id, id_result: Id, p: Id }, + .OpDPdyCoarse => struct { id_result_type: Id, id_result: Id, p: Id }, + .OpFwidthCoarse => struct { id_result_type: Id, id_result: Id, p: Id }, .OpEmitVertex => void, .OpEndPrimitive => void, - .OpEmitStreamVertex => struct { stream: IdRef }, - .OpEndStreamPrimitive => struct { stream: IdRef }, - .OpControlBarrier => struct { execution: IdScope, memory: IdScope, semantics: IdMemorySemantics }, - .OpMemoryBarrier => struct { memory: IdScope, semantics: IdMemorySemantics }, - .OpAtomicLoad => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef, memory: IdScope, semantics: IdMemorySemantics }, - .OpAtomicStore => struct { pointer: IdRef, memory: IdScope, semantics: IdMemorySemantics, value: IdRef }, - .OpAtomicExchange => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef, memory: IdScope, semantics: IdMemorySemantics, value: IdRef }, - .OpAtomicCompareExchange => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef, memory: IdScope, equal: IdMemorySemantics, unequal: IdMemorySemantics, value: IdRef, comparator: IdRef }, - .OpAtomicCompareExchangeWeak => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef, memory: IdScope, equal: IdMemorySemantics, unequal: IdMemorySemantics, value: IdRef, comparator: IdRef }, - .OpAtomicIIncrement => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef, memory: IdScope, semantics: IdMemorySemantics }, - .OpAtomicIDecrement => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef, memory: IdScope, semantics: IdMemorySemantics }, - .OpAtomicIAdd => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef, memory: IdScope, semantics: IdMemorySemantics, value: IdRef }, - .OpAtomicISub => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef, memory: IdScope, semantics: IdMemorySemantics, value: IdRef }, - .OpAtomicSMin => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef, memory: IdScope, semantics: IdMemorySemantics, value: IdRef }, - .OpAtomicUMin => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef, memory: IdScope, semantics: IdMemorySemantics, value: IdRef }, - .OpAtomicSMax => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef, memory: IdScope, semantics: IdMemorySemantics, value: IdRef }, - .OpAtomicUMax => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef, memory: IdScope, semantics: IdMemorySemantics, value: IdRef }, - .OpAtomicAnd => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef, memory: IdScope, semantics: IdMemorySemantics, value: IdRef }, - .OpAtomicOr => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef, memory: IdScope, semantics: IdMemorySemantics, value: IdRef }, - .OpAtomicXor => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef, memory: IdScope, semantics: IdMemorySemantics, value: IdRef }, - .OpPhi => struct { id_result_type: IdResultType, id_result: IdResult, pair_id_ref_id_ref: []const PairIdRefIdRef = &.{} }, - .OpLoopMerge => struct { merge_block: IdRef, continue_target: IdRef, loop_control: LoopControl.Extended }, - .OpSelectionMerge => struct { merge_block: IdRef, selection_control: SelectionControl }, - .OpLabel => struct { id_result: IdResult }, - .OpBranch => struct { target_label: IdRef }, - .OpBranchConditional => struct { condition: IdRef, true_label: IdRef, false_label: IdRef, branch_weights: []const LiteralInteger = &.{} }, - .OpSwitch => struct { selector: IdRef, default: IdRef, target: []const PairLiteralIntegerIdRef = &.{} }, + .OpEmitStreamVertex => struct { stream: Id }, + .OpEndStreamPrimitive => struct { stream: Id }, + .OpControlBarrier => struct { execution: Id, memory: Id, semantics: Id }, + .OpMemoryBarrier => struct { memory: Id, semantics: Id }, + .OpAtomicLoad => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, semantics: Id }, + .OpAtomicStore => struct { pointer: Id, memory: Id, semantics: Id, value: Id }, + .OpAtomicExchange => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, semantics: Id, value: Id }, + .OpAtomicCompareExchange => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, equal: Id, unequal: Id, value: Id, comparator: Id }, + .OpAtomicCompareExchangeWeak => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, equal: Id, unequal: Id, value: Id, comparator: Id }, + .OpAtomicIIncrement => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, semantics: Id }, + .OpAtomicIDecrement => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, semantics: Id }, + .OpAtomicIAdd => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, semantics: Id, value: Id }, + .OpAtomicISub => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, semantics: Id, value: Id }, + .OpAtomicSMin => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, semantics: Id, value: Id }, + .OpAtomicUMin => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, semantics: Id, value: Id }, + .OpAtomicSMax => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, semantics: Id, value: Id }, + .OpAtomicUMax => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, semantics: Id, value: Id }, + .OpAtomicAnd => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, semantics: Id, value: Id }, + .OpAtomicOr => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, semantics: Id, value: Id }, + .OpAtomicXor => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, semantics: Id, value: Id }, + .OpPhi => struct { id_result_type: Id, id_result: Id, pair_id_ref_id_ref: []const PairIdRefIdRef = &.{} }, + .OpLoopMerge => struct { merge_block: Id, continue_target: Id, loop_control: LoopControl.Extended }, + .OpSelectionMerge => struct { merge_block: Id, selection_control: SelectionControl }, + .OpLabel => struct { id_result: Id }, + .OpBranch => struct { target_label: Id }, + .OpBranchConditional => struct { condition: Id, true_label: Id, false_label: Id, branch_weights: []const LiteralInteger = &.{} }, + .OpSwitch => struct { selector: Id, default: Id, target: []const PairLiteralIntegerIdRef = &.{} }, .OpKill => void, .OpReturn => void, - .OpReturnValue => struct { value: IdRef }, + .OpReturnValue => struct { value: Id }, .OpUnreachable => void, - .OpLifetimeStart => struct { pointer: IdRef, size: LiteralInteger }, - .OpLifetimeStop => struct { pointer: IdRef, size: LiteralInteger }, - .OpGroupAsyncCopy => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, destination: IdRef, source: IdRef, num_elements: IdRef, stride: IdRef, event: IdRef }, - .OpGroupWaitEvents => struct { execution: IdScope, num_events: IdRef, events_list: IdRef }, - .OpGroupAll => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, predicate: IdRef }, - .OpGroupAny => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, predicate: IdRef }, - .OpGroupBroadcast => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, value: IdRef, localid: IdRef }, - .OpGroupIAdd => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, x: IdRef }, - .OpGroupFAdd => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, x: IdRef }, - .OpGroupFMin => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, x: IdRef }, - .OpGroupUMin => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, x: IdRef }, - .OpGroupSMin => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, x: IdRef }, - .OpGroupFMax => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, x: IdRef }, - .OpGroupUMax => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, x: IdRef }, - .OpGroupSMax => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, x: IdRef }, - .OpReadPipe => struct { id_result_type: IdResultType, id_result: IdResult, pipe: IdRef, pointer: IdRef, packet_size: IdRef, packet_alignment: IdRef }, - .OpWritePipe => struct { id_result_type: IdResultType, id_result: IdResult, pipe: IdRef, pointer: IdRef, packet_size: IdRef, packet_alignment: IdRef }, - .OpReservedReadPipe => struct { id_result_type: IdResultType, id_result: IdResult, pipe: IdRef, reserve_id: IdRef, index: IdRef, pointer: IdRef, packet_size: IdRef, packet_alignment: IdRef }, - .OpReservedWritePipe => struct { id_result_type: IdResultType, id_result: IdResult, pipe: IdRef, reserve_id: IdRef, index: IdRef, pointer: IdRef, packet_size: IdRef, packet_alignment: IdRef }, - .OpReserveReadPipePackets => struct { id_result_type: IdResultType, id_result: IdResult, pipe: IdRef, num_packets: IdRef, packet_size: IdRef, packet_alignment: IdRef }, - .OpReserveWritePipePackets => struct { id_result_type: IdResultType, id_result: IdResult, pipe: IdRef, num_packets: IdRef, packet_size: IdRef, packet_alignment: IdRef }, - .OpCommitReadPipe => struct { pipe: IdRef, reserve_id: IdRef, packet_size: IdRef, packet_alignment: IdRef }, - .OpCommitWritePipe => struct { pipe: IdRef, reserve_id: IdRef, packet_size: IdRef, packet_alignment: IdRef }, - .OpIsValidReserveId => struct { id_result_type: IdResultType, id_result: IdResult, reserve_id: IdRef }, - .OpGetNumPipePackets => struct { id_result_type: IdResultType, id_result: IdResult, pipe: IdRef, packet_size: IdRef, packet_alignment: IdRef }, - .OpGetMaxPipePackets => struct { id_result_type: IdResultType, id_result: IdResult, pipe: IdRef, packet_size: IdRef, packet_alignment: IdRef }, - .OpGroupReserveReadPipePackets => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, pipe: IdRef, num_packets: IdRef, packet_size: IdRef, packet_alignment: IdRef }, - .OpGroupReserveWritePipePackets => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, pipe: IdRef, num_packets: IdRef, packet_size: IdRef, packet_alignment: IdRef }, - .OpGroupCommitReadPipe => struct { execution: IdScope, pipe: IdRef, reserve_id: IdRef, packet_size: IdRef, packet_alignment: IdRef }, - .OpGroupCommitWritePipe => struct { execution: IdScope, pipe: IdRef, reserve_id: IdRef, packet_size: IdRef, packet_alignment: IdRef }, - .OpEnqueueMarker => struct { id_result_type: IdResultType, id_result: IdResult, queue: IdRef, num_events: IdRef, wait_events: IdRef, ret_event: IdRef }, - .OpEnqueueKernel => struct { id_result_type: IdResultType, id_result: IdResult, queue: IdRef, flags: IdRef, nd_range: IdRef, num_events: IdRef, wait_events: IdRef, ret_event: IdRef, invoke: IdRef, param: IdRef, param_size: IdRef, param_align: IdRef, local_size: []const IdRef = &.{} }, - .OpGetKernelNDrangeSubGroupCount => struct { id_result_type: IdResultType, id_result: IdResult, nd_range: IdRef, invoke: IdRef, param: IdRef, param_size: IdRef, param_align: IdRef }, - .OpGetKernelNDrangeMaxSubGroupSize => struct { id_result_type: IdResultType, id_result: IdResult, nd_range: IdRef, invoke: IdRef, param: IdRef, param_size: IdRef, param_align: IdRef }, - .OpGetKernelWorkGroupSize => struct { id_result_type: IdResultType, id_result: IdResult, invoke: IdRef, param: IdRef, param_size: IdRef, param_align: IdRef }, - .OpGetKernelPreferredWorkGroupSizeMultiple => struct { id_result_type: IdResultType, id_result: IdResult, invoke: IdRef, param: IdRef, param_size: IdRef, param_align: IdRef }, - .OpRetainEvent => struct { event: IdRef }, - .OpReleaseEvent => struct { event: IdRef }, - .OpCreateUserEvent => struct { id_result_type: IdResultType, id_result: IdResult }, - .OpIsValidEvent => struct { id_result_type: IdResultType, id_result: IdResult, event: IdRef }, - .OpSetUserEventStatus => struct { event: IdRef, status: IdRef }, - .OpCaptureEventProfilingInfo => struct { event: IdRef, profiling_info: IdRef, value: IdRef }, - .OpGetDefaultQueue => struct { id_result_type: IdResultType, id_result: IdResult }, - .OpBuildNDRange => struct { id_result_type: IdResultType, id_result: IdResult, globalworksize: IdRef, localworksize: IdRef, globalworkoffset: IdRef }, - .OpImageSparseSampleImplicitLod => struct { id_result_type: IdResultType, id_result: IdResult, sampled_image: IdRef, coordinate: IdRef, image_operands: ?ImageOperands.Extended = null }, - .OpImageSparseSampleExplicitLod => struct { id_result_type: IdResultType, id_result: IdResult, sampled_image: IdRef, coordinate: IdRef, image_operands: ImageOperands.Extended }, - .OpImageSparseSampleDrefImplicitLod => struct { id_result_type: IdResultType, id_result: IdResult, sampled_image: IdRef, coordinate: IdRef, d_ref: IdRef, image_operands: ?ImageOperands.Extended = null }, - .OpImageSparseSampleDrefExplicitLod => struct { id_result_type: IdResultType, id_result: IdResult, sampled_image: IdRef, coordinate: IdRef, d_ref: IdRef, image_operands: ImageOperands.Extended }, - .OpImageSparseSampleProjImplicitLod => struct { id_result_type: IdResultType, id_result: IdResult, sampled_image: IdRef, coordinate: IdRef, image_operands: ?ImageOperands.Extended = null }, - .OpImageSparseSampleProjExplicitLod => struct { id_result_type: IdResultType, id_result: IdResult, sampled_image: IdRef, coordinate: IdRef, image_operands: ImageOperands.Extended }, - .OpImageSparseSampleProjDrefImplicitLod => struct { id_result_type: IdResultType, id_result: IdResult, sampled_image: IdRef, coordinate: IdRef, d_ref: IdRef, image_operands: ?ImageOperands.Extended = null }, - .OpImageSparseSampleProjDrefExplicitLod => struct { id_result_type: IdResultType, id_result: IdResult, sampled_image: IdRef, coordinate: IdRef, d_ref: IdRef, image_operands: ImageOperands.Extended }, - .OpImageSparseFetch => struct { id_result_type: IdResultType, id_result: IdResult, image: IdRef, coordinate: IdRef, image_operands: ?ImageOperands.Extended = null }, - .OpImageSparseGather => struct { id_result_type: IdResultType, id_result: IdResult, sampled_image: IdRef, coordinate: IdRef, component: IdRef, image_operands: ?ImageOperands.Extended = null }, - .OpImageSparseDrefGather => struct { id_result_type: IdResultType, id_result: IdResult, sampled_image: IdRef, coordinate: IdRef, d_ref: IdRef, image_operands: ?ImageOperands.Extended = null }, - .OpImageSparseTexelsResident => struct { id_result_type: IdResultType, id_result: IdResult, resident_code: IdRef }, + .OpLifetimeStart => struct { pointer: Id, size: LiteralInteger }, + .OpLifetimeStop => struct { pointer: Id, size: LiteralInteger }, + .OpGroupAsyncCopy => struct { id_result_type: Id, id_result: Id, execution: Id, destination: Id, source: Id, num_elements: Id, stride: Id, event: Id }, + .OpGroupWaitEvents => struct { execution: Id, num_events: Id, events_list: Id }, + .OpGroupAll => struct { id_result_type: Id, id_result: Id, execution: Id, predicate: Id }, + .OpGroupAny => struct { id_result_type: Id, id_result: Id, execution: Id, predicate: Id }, + .OpGroupBroadcast => struct { id_result_type: Id, id_result: Id, execution: Id, value: Id, local_id: Id }, + .OpGroupIAdd => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id }, + .OpGroupFAdd => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id }, + .OpGroupFMin => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id }, + .OpGroupUMin => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id }, + .OpGroupSMin => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id }, + .OpGroupFMax => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id }, + .OpGroupUMax => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id }, + .OpGroupSMax => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id }, + .OpReadPipe => struct { id_result_type: Id, id_result: Id, pipe: Id, pointer: Id, packet_size: Id, packet_alignment: Id }, + .OpWritePipe => struct { id_result_type: Id, id_result: Id, pipe: Id, pointer: Id, packet_size: Id, packet_alignment: Id }, + .OpReservedReadPipe => struct { id_result_type: Id, id_result: Id, pipe: Id, reserve_id: Id, index: Id, pointer: Id, packet_size: Id, packet_alignment: Id }, + .OpReservedWritePipe => struct { id_result_type: Id, id_result: Id, pipe: Id, reserve_id: Id, index: Id, pointer: Id, packet_size: Id, packet_alignment: Id }, + .OpReserveReadPipePackets => struct { id_result_type: Id, id_result: Id, pipe: Id, num_packets: Id, packet_size: Id, packet_alignment: Id }, + .OpReserveWritePipePackets => struct { id_result_type: Id, id_result: Id, pipe: Id, num_packets: Id, packet_size: Id, packet_alignment: Id }, + .OpCommitReadPipe => struct { pipe: Id, reserve_id: Id, packet_size: Id, packet_alignment: Id }, + .OpCommitWritePipe => struct { pipe: Id, reserve_id: Id, packet_size: Id, packet_alignment: Id }, + .OpIsValidReserveId => struct { id_result_type: Id, id_result: Id, reserve_id: Id }, + .OpGetNumPipePackets => struct { id_result_type: Id, id_result: Id, pipe: Id, packet_size: Id, packet_alignment: Id }, + .OpGetMaxPipePackets => struct { id_result_type: Id, id_result: Id, pipe: Id, packet_size: Id, packet_alignment: Id }, + .OpGroupReserveReadPipePackets => struct { id_result_type: Id, id_result: Id, execution: Id, pipe: Id, num_packets: Id, packet_size: Id, packet_alignment: Id }, + .OpGroupReserveWritePipePackets => struct { id_result_type: Id, id_result: Id, execution: Id, pipe: Id, num_packets: Id, packet_size: Id, packet_alignment: Id }, + .OpGroupCommitReadPipe => struct { execution: Id, pipe: Id, reserve_id: Id, packet_size: Id, packet_alignment: Id }, + .OpGroupCommitWritePipe => struct { execution: Id, pipe: Id, reserve_id: Id, packet_size: Id, packet_alignment: Id }, + .OpEnqueueMarker => struct { id_result_type: Id, id_result: Id, queue: Id, num_events: Id, wait_events: Id, ret_event: Id }, + .OpEnqueueKernel => struct { id_result_type: Id, id_result: Id, queue: Id, flags: Id, nd_range: Id, num_events: Id, wait_events: Id, ret_event: Id, invoke: Id, param: Id, param_size: Id, param_align: Id, local_size: []const Id = &.{} }, + .OpGetKernelNDrangeSubGroupCount => struct { id_result_type: Id, id_result: Id, nd_range: Id, invoke: Id, param: Id, param_size: Id, param_align: Id }, + .OpGetKernelNDrangeMaxSubGroupSize => struct { id_result_type: Id, id_result: Id, nd_range: Id, invoke: Id, param: Id, param_size: Id, param_align: Id }, + .OpGetKernelWorkGroupSize => struct { id_result_type: Id, id_result: Id, invoke: Id, param: Id, param_size: Id, param_align: Id }, + .OpGetKernelPreferredWorkGroupSizeMultiple => struct { id_result_type: Id, id_result: Id, invoke: Id, param: Id, param_size: Id, param_align: Id }, + .OpRetainEvent => struct { event: Id }, + .OpReleaseEvent => struct { event: Id }, + .OpCreateUserEvent => struct { id_result_type: Id, id_result: Id }, + .OpIsValidEvent => struct { id_result_type: Id, id_result: Id, event: Id }, + .OpSetUserEventStatus => struct { event: Id, status: Id }, + .OpCaptureEventProfilingInfo => struct { event: Id, profiling_info: Id, value: Id }, + .OpGetDefaultQueue => struct { id_result_type: Id, id_result: Id }, + .OpBuildNDRange => struct { id_result_type: Id, id_result: Id, global_work_size: Id, local_work_size: Id, global_work_offset: Id }, + .OpImageSparseSampleImplicitLod => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, image_operands: ?ImageOperands.Extended = null }, + .OpImageSparseSampleExplicitLod => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, image_operands: ImageOperands.Extended }, + .OpImageSparseSampleDrefImplicitLod => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, d_ref: Id, image_operands: ?ImageOperands.Extended = null }, + .OpImageSparseSampleDrefExplicitLod => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, d_ref: Id, image_operands: ImageOperands.Extended }, + .OpImageSparseSampleProjImplicitLod => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, image_operands: ?ImageOperands.Extended = null }, + .OpImageSparseSampleProjExplicitLod => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, image_operands: ImageOperands.Extended }, + .OpImageSparseSampleProjDrefImplicitLod => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, d_ref: Id, image_operands: ?ImageOperands.Extended = null }, + .OpImageSparseSampleProjDrefExplicitLod => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, d_ref: Id, image_operands: ImageOperands.Extended }, + .OpImageSparseFetch => struct { id_result_type: Id, id_result: Id, image: Id, coordinate: Id, image_operands: ?ImageOperands.Extended = null }, + .OpImageSparseGather => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, component: Id, image_operands: ?ImageOperands.Extended = null }, + .OpImageSparseDrefGather => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, d_ref: Id, image_operands: ?ImageOperands.Extended = null }, + .OpImageSparseTexelsResident => struct { id_result_type: Id, id_result: Id, resident_code: Id }, .OpNoLine => void, - .OpAtomicFlagTestAndSet => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef, memory: IdScope, semantics: IdMemorySemantics }, - .OpAtomicFlagClear => struct { pointer: IdRef, memory: IdScope, semantics: IdMemorySemantics }, - .OpImageSparseRead => struct { id_result_type: IdResultType, id_result: IdResult, image: IdRef, coordinate: IdRef, image_operands: ?ImageOperands.Extended = null }, - .OpSizeOf => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef }, - .OpTypePipeStorage => struct { id_result: IdResult }, - .OpConstantPipeStorage => struct { id_result_type: IdResultType, id_result: IdResult, packet_size: LiteralInteger, packet_alignment: LiteralInteger, capacity: LiteralInteger }, - .OpCreatePipeFromPipeStorage => struct { id_result_type: IdResultType, id_result: IdResult, pipe_storage: IdRef }, - .OpGetKernelLocalSizeForSubgroupCount => struct { id_result_type: IdResultType, id_result: IdResult, subgroup_count: IdRef, invoke: IdRef, param: IdRef, param_size: IdRef, param_align: IdRef }, - .OpGetKernelMaxNumSubgroups => struct { id_result_type: IdResultType, id_result: IdResult, invoke: IdRef, param: IdRef, param_size: IdRef, param_align: IdRef }, - .OpTypeNamedBarrier => struct { id_result: IdResult }, - .OpNamedBarrierInitialize => struct { id_result_type: IdResultType, id_result: IdResult, subgroup_count: IdRef }, - .OpMemoryNamedBarrier => struct { named_barrier: IdRef, memory: IdScope, semantics: IdMemorySemantics }, + .OpAtomicFlagTestAndSet => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, semantics: Id }, + .OpAtomicFlagClear => struct { pointer: Id, memory: Id, semantics: Id }, + .OpImageSparseRead => struct { id_result_type: Id, id_result: Id, image: Id, coordinate: Id, image_operands: ?ImageOperands.Extended = null }, + .OpSizeOf => struct { id_result_type: Id, id_result: Id, pointer: Id }, + .OpTypePipeStorage => struct { id_result: Id }, + .OpConstantPipeStorage => struct { id_result_type: Id, id_result: Id, packet_size: LiteralInteger, packet_alignment: LiteralInteger, capacity: LiteralInteger }, + .OpCreatePipeFromPipeStorage => struct { id_result_type: Id, id_result: Id, pipe_storage: Id }, + .OpGetKernelLocalSizeForSubgroupCount => struct { id_result_type: Id, id_result: Id, subgroup_count: Id, invoke: Id, param: Id, param_size: Id, param_align: Id }, + .OpGetKernelMaxNumSubgroups => struct { id_result_type: Id, id_result: Id, invoke: Id, param: Id, param_size: Id, param_align: Id }, + .OpTypeNamedBarrier => struct { id_result: Id }, + .OpNamedBarrierInitialize => struct { id_result_type: Id, id_result: Id, subgroup_count: Id }, + .OpMemoryNamedBarrier => struct { named_barrier: Id, memory: Id, semantics: Id }, .OpModuleProcessed => struct { process: LiteralString }, - .OpExecutionModeId => struct { entry_point: IdRef, mode: ExecutionMode.Extended }, - .OpDecorateId => struct { target: IdRef, decoration: Decoration.Extended }, - .OpGroupNonUniformElect => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope }, - .OpGroupNonUniformAll => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, predicate: IdRef }, - .OpGroupNonUniformAny => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, predicate: IdRef }, - .OpGroupNonUniformAllEqual => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, value: IdRef }, - .OpGroupNonUniformBroadcast => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, value: IdRef, id: IdRef }, - .OpGroupNonUniformBroadcastFirst => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, value: IdRef }, - .OpGroupNonUniformBallot => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, predicate: IdRef }, - .OpGroupNonUniformInverseBallot => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, value: IdRef }, - .OpGroupNonUniformBallotBitExtract => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, value: IdRef, index: IdRef }, - .OpGroupNonUniformBallotBitCount => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, value: IdRef }, - .OpGroupNonUniformBallotFindLSB => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, value: IdRef }, - .OpGroupNonUniformBallotFindMSB => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, value: IdRef }, - .OpGroupNonUniformShuffle => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, value: IdRef, id: IdRef }, - .OpGroupNonUniformShuffleXor => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, value: IdRef, mask: IdRef }, - .OpGroupNonUniformShuffleUp => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, value: IdRef, delta: IdRef }, - .OpGroupNonUniformShuffleDown => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, value: IdRef, delta: IdRef }, - .OpGroupNonUniformIAdd => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, value: IdRef, clustersize: ?IdRef = null }, - .OpGroupNonUniformFAdd => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, value: IdRef, clustersize: ?IdRef = null }, - .OpGroupNonUniformIMul => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, value: IdRef, clustersize: ?IdRef = null }, - .OpGroupNonUniformFMul => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, value: IdRef, clustersize: ?IdRef = null }, - .OpGroupNonUniformSMin => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, value: IdRef, clustersize: ?IdRef = null }, - .OpGroupNonUniformUMin => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, value: IdRef, clustersize: ?IdRef = null }, - .OpGroupNonUniformFMin => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, value: IdRef, clustersize: ?IdRef = null }, - .OpGroupNonUniformSMax => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, value: IdRef, clustersize: ?IdRef = null }, - .OpGroupNonUniformUMax => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, value: IdRef, clustersize: ?IdRef = null }, - .OpGroupNonUniformFMax => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, value: IdRef, clustersize: ?IdRef = null }, - .OpGroupNonUniformBitwiseAnd => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, value: IdRef, clustersize: ?IdRef = null }, - .OpGroupNonUniformBitwiseOr => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, value: IdRef, clustersize: ?IdRef = null }, - .OpGroupNonUniformBitwiseXor => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, value: IdRef, clustersize: ?IdRef = null }, - .OpGroupNonUniformLogicalAnd => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, value: IdRef, clustersize: ?IdRef = null }, - .OpGroupNonUniformLogicalOr => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, value: IdRef, clustersize: ?IdRef = null }, - .OpGroupNonUniformLogicalXor => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, value: IdRef, clustersize: ?IdRef = null }, - .OpGroupNonUniformQuadBroadcast => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, value: IdRef, index: IdRef }, - .OpGroupNonUniformQuadSwap => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, value: IdRef, direction: IdRef }, - .OpCopyLogical => struct { id_result_type: IdResultType, id_result: IdResult, operand: IdRef }, - .OpPtrEqual => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, - .OpPtrNotEqual => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, - .OpPtrDiff => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, - .OpColorAttachmentReadEXT => struct { id_result_type: IdResultType, id_result: IdResult, attachment: IdRef, sample: ?IdRef = null }, - .OpDepthAttachmentReadEXT => struct { id_result_type: IdResultType, id_result: IdResult, sample: ?IdRef = null }, - .OpStencilAttachmentReadEXT => struct { id_result_type: IdResultType, id_result: IdResult, sample: ?IdRef = null }, + .OpExecutionModeId => struct { entry_point: Id, mode: ExecutionMode.Extended }, + .OpDecorateId => struct { target: Id, decoration: Decoration.Extended }, + .OpGroupNonUniformElect => struct { id_result_type: Id, id_result: Id, execution: Id }, + .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 }, + .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 }, + .OpGroupNonUniformBallotBitExtract => struct { id_result_type: Id, id_result: Id, execution: Id, value: Id, index: Id }, + .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 }, + .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 }, + .OpGroupNonUniformIAdd => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, value: Id, cluster_size: ?Id = null }, + .OpGroupNonUniformFAdd => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, value: Id, cluster_size: ?Id = null }, + .OpGroupNonUniformIMul => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, value: Id, cluster_size: ?Id = null }, + .OpGroupNonUniformFMul => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, value: Id, cluster_size: ?Id = null }, + .OpGroupNonUniformSMin => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, value: Id, cluster_size: ?Id = null }, + .OpGroupNonUniformUMin => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, value: Id, cluster_size: ?Id = null }, + .OpGroupNonUniformFMin => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, value: Id, cluster_size: ?Id = null }, + .OpGroupNonUniformSMax => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, value: Id, cluster_size: ?Id = null }, + .OpGroupNonUniformUMax => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, value: Id, cluster_size: ?Id = null }, + .OpGroupNonUniformFMax => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, value: Id, cluster_size: ?Id = null }, + .OpGroupNonUniformBitwiseAnd => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, value: Id, cluster_size: ?Id = null }, + .OpGroupNonUniformBitwiseOr => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, value: Id, cluster_size: ?Id = null }, + .OpGroupNonUniformBitwiseXor => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, value: Id, cluster_size: ?Id = null }, + .OpGroupNonUniformLogicalAnd => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, value: Id, cluster_size: ?Id = null }, + .OpGroupNonUniformLogicalOr => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, value: Id, cluster_size: ?Id = null }, + .OpGroupNonUniformLogicalXor => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, value: Id, cluster_size: ?Id = null }, + .OpGroupNonUniformQuadBroadcast => struct { id_result_type: Id, id_result: Id, execution: Id, value: Id, index: Id }, + .OpGroupNonUniformQuadSwap => struct { id_result_type: Id, id_result: Id, execution: Id, value: Id, direction: Id }, + .OpCopyLogical => struct { id_result_type: Id, id_result: Id, operand: Id }, + .OpPtrEqual => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id }, + .OpPtrNotEqual => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id }, + .OpPtrDiff => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id }, + .OpColorAttachmentReadEXT => struct { id_result_type: Id, id_result: Id, attachment: Id, sample: ?Id = null }, + .OpDepthAttachmentReadEXT => struct { id_result_type: Id, id_result: Id, sample: ?Id = null }, + .OpStencilAttachmentReadEXT => struct { id_result_type: Id, id_result: Id, sample: ?Id = null }, + .OpTypeTensorARM => struct { id_result: Id, element_type: Id, rank: ?Id = null, shape: ?Id = null }, + .OpTensorReadARM => struct { id_result_type: Id, id_result: Id, tensor: Id, coordinates: Id, tensor_operands: ?TensorOperands.Extended = null }, + .OpTensorWriteARM => struct { tensor: Id, coordinates: Id, object: Id, tensor_operands: ?TensorOperands.Extended = null }, + .OpTensorQuerySizeARM => struct { id_result_type: Id, id_result: Id, tensor: Id, dimension: Id }, + .OpGraphConstantARM => struct { id_result_type: Id, id_result: Id, graph_constant_id: LiteralInteger }, + .OpGraphEntryPointARM => struct { graph: Id, name: LiteralString, interface: []const Id = &.{} }, + .OpGraphARM => struct { id_result_type: Id, id_result: Id }, + .OpGraphInputARM => struct { id_result_type: Id, id_result: Id, input_index: Id, element_index: []const Id = &.{} }, + .OpGraphSetOutputARM => struct { value: Id, output_index: Id, element_index: []const Id = &.{} }, + .OpGraphEndARM => void, + .OpTypeGraphARM => struct { id_result: Id, num_inputs: LiteralInteger, in_out_types: []const Id = &.{} }, .OpTerminateInvocation => void, - .OpSubgroupBallotKHR => struct { id_result_type: IdResultType, id_result: IdResult, predicate: IdRef }, - .OpSubgroupFirstInvocationKHR => struct { id_result_type: IdResultType, id_result: IdResult, value: IdRef }, - .OpSubgroupAllKHR => struct { id_result_type: IdResultType, id_result: IdResult, predicate: IdRef }, - .OpSubgroupAnyKHR => struct { id_result_type: IdResultType, id_result: IdResult, predicate: IdRef }, - .OpSubgroupAllEqualKHR => struct { id_result_type: IdResultType, id_result: IdResult, predicate: IdRef }, - .OpGroupNonUniformRotateKHR => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, value: IdRef, delta: IdRef, clustersize: ?IdRef = null }, - .OpSubgroupReadInvocationKHR => struct { id_result_type: IdResultType, id_result: IdResult, value: IdRef, index: IdRef }, - .OpTraceRayKHR => struct { accel: IdRef, ray_flags: IdRef, cull_mask: IdRef, sbt_offset: IdRef, sbt_stride: IdRef, miss_index: IdRef, ray_origin: IdRef, ray_tmin: IdRef, ray_direction: IdRef, ray_tmax: IdRef, payload: IdRef }, - .OpExecuteCallableKHR => struct { sbt_index: IdRef, callable_data: IdRef }, - .OpConvertUToAccelerationStructureKHR => struct { id_result_type: IdResultType, id_result: IdResult, accel: IdRef }, + .OpTypeUntypedPointerKHR => struct { id_result: Id, storage_class: StorageClass }, + .OpUntypedVariableKHR => struct { id_result_type: Id, id_result: Id, storage_class: StorageClass, data_type: ?Id = null, initializer: ?Id = null }, + .OpUntypedAccessChainKHR => struct { id_result_type: Id, id_result: Id, base_type: Id, base: Id, indexes: []const Id = &.{} }, + .OpUntypedInBoundsAccessChainKHR => struct { id_result_type: Id, id_result: Id, base_type: Id, base: Id, indexes: []const Id = &.{} }, + .OpSubgroupBallotKHR => struct { id_result_type: Id, id_result: Id, predicate: Id }, + .OpSubgroupFirstInvocationKHR => struct { id_result_type: Id, id_result: Id, value: Id }, + .OpUntypedPtrAccessChainKHR => struct { id_result_type: Id, id_result: Id, base_type: Id, base: Id, element: Id, indexes: []const Id = &.{} }, + .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 }, + .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 = &.{} }, + .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 }, .OpIgnoreIntersectionKHR => void, .OpTerminateRayKHR => void, - .OpSDot => struct { id_result_type: IdResultType, id_result: IdResult, vector_1: IdRef, vector_2: IdRef, packed_vector_format: ?PackedVectorFormat = null }, - .OpUDot => struct { id_result_type: IdResultType, id_result: IdResult, vector_1: IdRef, vector_2: IdRef, packed_vector_format: ?PackedVectorFormat = null }, - .OpSUDot => struct { id_result_type: IdResultType, id_result: IdResult, vector_1: IdRef, vector_2: IdRef, packed_vector_format: ?PackedVectorFormat = null }, - .OpSDotAccSat => struct { id_result_type: IdResultType, id_result: IdResult, vector_1: IdRef, vector_2: IdRef, accumulator: IdRef, packed_vector_format: ?PackedVectorFormat = null }, - .OpUDotAccSat => struct { id_result_type: IdResultType, id_result: IdResult, vector_1: IdRef, vector_2: IdRef, accumulator: IdRef, packed_vector_format: ?PackedVectorFormat = null }, - .OpSUDotAccSat => struct { id_result_type: IdResultType, id_result: IdResult, vector_1: IdRef, vector_2: IdRef, accumulator: IdRef, packed_vector_format: ?PackedVectorFormat = null }, - .OpTypeCooperativeMatrixKHR => struct { id_result: IdResult, component_type: IdRef, scope: IdScope, rows: IdRef, columns: IdRef, use: IdRef }, - .OpCooperativeMatrixLoadKHR => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef, memorylayout: IdRef, stride: ?IdRef = null, memory_operand: ?MemoryAccess.Extended = null }, - .OpCooperativeMatrixStoreKHR => struct { pointer: IdRef, object: IdRef, memorylayout: IdRef, stride: ?IdRef = null, memory_operand: ?MemoryAccess.Extended = null }, - .OpCooperativeMatrixMulAddKHR => struct { id_result_type: IdResultType, id_result: IdResult, a: IdRef, b: IdRef, c: IdRef, cooperative_matrix_operands: ?CooperativeMatrixOperands = null }, - .OpCooperativeMatrixLengthKHR => struct { id_result_type: IdResultType, id_result: IdResult, type: IdRef }, - .OpTypeRayQueryKHR => struct { id_result: IdResult }, - .OpRayQueryInitializeKHR => struct { rayquery: IdRef, accel: IdRef, rayflags: IdRef, cullmask: IdRef, rayorigin: IdRef, raytmin: IdRef, raydirection: IdRef, raytmax: IdRef }, - .OpRayQueryTerminateKHR => struct { rayquery: IdRef }, - .OpRayQueryGenerateIntersectionKHR => struct { rayquery: IdRef, hitt: IdRef }, - .OpRayQueryConfirmIntersectionKHR => struct { rayquery: IdRef }, - .OpRayQueryProceedKHR => struct { id_result_type: IdResultType, id_result: IdResult, rayquery: IdRef }, - .OpRayQueryGetIntersectionTypeKHR => struct { id_result_type: IdResultType, id_result: IdResult, rayquery: IdRef, intersection: IdRef }, - .OpImageSampleWeightedQCOM => struct { id_result_type: IdResultType, id_result: IdResult, texture: IdRef, coordinates: IdRef, weights: IdRef }, - .OpImageBoxFilterQCOM => struct { id_result_type: IdResultType, id_result: IdResult, texture: IdRef, coordinates: IdRef, box_size: IdRef }, - .OpImageBlockMatchSSDQCOM => struct { id_result_type: IdResultType, id_result: IdResult, target: IdRef, target_coordinates: IdRef, reference: IdRef, reference_coordinates: IdRef, block_size: IdRef }, - .OpImageBlockMatchSADQCOM => struct { id_result_type: IdResultType, id_result: IdResult, target: IdRef, target_coordinates: IdRef, reference: IdRef, reference_coordinates: IdRef, block_size: IdRef }, - .OpImageBlockMatchWindowSSDQCOM => struct { id_result_type: IdResultType, id_result: IdResult, target_sampled_image: IdRef, target_coordinates: IdRef, reference_sampled_image: IdRef, reference_coordinates: IdRef, block_size: IdRef }, - .OpImageBlockMatchWindowSADQCOM => struct { id_result_type: IdResultType, id_result: IdResult, target_sampled_image: IdRef, target_coordinates: IdRef, reference_sampled_image: IdRef, reference_coordinates: IdRef, block_size: IdRef }, - .OpImageBlockMatchGatherSSDQCOM => struct { id_result_type: IdResultType, id_result: IdResult, target_sampled_image: IdRef, target_coordinates: IdRef, reference_sampled_image: IdRef, reference_coordinates: IdRef, block_size: IdRef }, - .OpImageBlockMatchGatherSADQCOM => struct { id_result_type: IdResultType, id_result: IdResult, target_sampled_image: IdRef, target_coordinates: IdRef, reference_sampled_image: IdRef, reference_coordinates: IdRef, block_size: IdRef }, - .OpGroupIAddNonUniformAMD => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, x: IdRef }, - .OpGroupFAddNonUniformAMD => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, x: IdRef }, - .OpGroupFMinNonUniformAMD => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, x: IdRef }, - .OpGroupUMinNonUniformAMD => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, x: IdRef }, - .OpGroupSMinNonUniformAMD => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, x: IdRef }, - .OpGroupFMaxNonUniformAMD => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, x: IdRef }, - .OpGroupUMaxNonUniformAMD => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, x: IdRef }, - .OpGroupSMaxNonUniformAMD => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, x: IdRef }, - .OpFragmentMaskFetchAMD => struct { id_result_type: IdResultType, id_result: IdResult, image: IdRef, coordinate: IdRef }, - .OpFragmentFetchAMD => struct { id_result_type: IdResultType, id_result: IdResult, image: IdRef, coordinate: IdRef, fragment_index: IdRef }, - .OpReadClockKHR => struct { id_result_type: IdResultType, id_result: IdResult, scope: IdScope }, - .OpFinalizeNodePayloadsAMDX => struct { payload_array: IdRef }, - .OpFinishWritingNodePayloadAMDX => struct { id_result_type: IdResultType, id_result: IdResult, payload: IdRef }, - .OpInitializeNodePayloadsAMDX => struct { payload_array: IdRef, visibility: IdScope, payload_count: IdRef, node_index: IdRef }, - .OpGroupNonUniformQuadAllKHR => struct { id_result_type: IdResultType, id_result: IdResult, predicate: IdRef }, - .OpGroupNonUniformQuadAnyKHR => struct { id_result_type: IdResultType, id_result: IdResult, predicate: IdRef }, - .OpHitObjectRecordHitMotionNV => struct { hit_object: IdRef, acceleration_structure: IdRef, instanceid: IdRef, primitiveid: IdRef, geometryindex: IdRef, hit_kind: IdRef, sbt_record_offset: IdRef, sbt_record_stride: IdRef, origin: IdRef, tmin: IdRef, direction: IdRef, tmax: IdRef, current_time: IdRef, hitobject_attributes: IdRef }, - .OpHitObjectRecordHitWithIndexMotionNV => struct { hit_object: IdRef, acceleration_structure: IdRef, instanceid: IdRef, primitiveid: IdRef, geometryindex: IdRef, hit_kind: IdRef, sbt_record_index: IdRef, origin: IdRef, tmin: IdRef, direction: IdRef, tmax: IdRef, current_time: IdRef, hitobject_attributes: IdRef }, - .OpHitObjectRecordMissMotionNV => struct { hit_object: IdRef, sbt_index: IdRef, origin: IdRef, tmin: IdRef, direction: IdRef, tmax: IdRef, current_time: IdRef }, - .OpHitObjectGetWorldToObjectNV => struct { id_result_type: IdResultType, id_result: IdResult, hit_object: IdRef }, - .OpHitObjectGetObjectToWorldNV => struct { id_result_type: IdResultType, id_result: IdResult, hit_object: IdRef }, - .OpHitObjectGetObjectRayDirectionNV => struct { id_result_type: IdResultType, id_result: IdResult, hit_object: IdRef }, - .OpHitObjectGetObjectRayOriginNV => struct { id_result_type: IdResultType, id_result: IdResult, hit_object: IdRef }, - .OpHitObjectTraceRayMotionNV => struct { hit_object: IdRef, acceleration_structure: IdRef, rayflags: IdRef, cullmask: IdRef, sbt_record_offset: IdRef, sbt_record_stride: IdRef, miss_index: IdRef, origin: IdRef, tmin: IdRef, direction: IdRef, tmax: IdRef, time: IdRef, payload: IdRef }, - .OpHitObjectGetShaderRecordBufferHandleNV => struct { id_result_type: IdResultType, id_result: IdResult, hit_object: IdRef }, - .OpHitObjectGetShaderBindingTableRecordIndexNV => struct { id_result_type: IdResultType, id_result: IdResult, hit_object: IdRef }, - .OpHitObjectRecordEmptyNV => struct { hit_object: IdRef }, - .OpHitObjectTraceRayNV => struct { hit_object: IdRef, acceleration_structure: IdRef, rayflags: IdRef, cullmask: IdRef, sbt_record_offset: IdRef, sbt_record_stride: IdRef, miss_index: IdRef, origin: IdRef, tmin: IdRef, direction: IdRef, tmax: IdRef, payload: IdRef }, - .OpHitObjectRecordHitNV => struct { hit_object: IdRef, acceleration_structure: IdRef, instanceid: IdRef, primitiveid: IdRef, geometryindex: IdRef, hit_kind: IdRef, sbt_record_offset: IdRef, sbt_record_stride: IdRef, origin: IdRef, tmin: IdRef, direction: IdRef, tmax: IdRef, hitobject_attributes: IdRef }, - .OpHitObjectRecordHitWithIndexNV => struct { hit_object: IdRef, acceleration_structure: IdRef, instanceid: IdRef, primitiveid: IdRef, geometryindex: IdRef, hit_kind: IdRef, sbt_record_index: IdRef, origin: IdRef, tmin: IdRef, direction: IdRef, tmax: IdRef, hitobject_attributes: IdRef }, - .OpHitObjectRecordMissNV => struct { hit_object: IdRef, sbt_index: IdRef, origin: IdRef, tmin: IdRef, direction: IdRef, tmax: IdRef }, - .OpHitObjectExecuteShaderNV => struct { hit_object: IdRef, payload: IdRef }, - .OpHitObjectGetCurrentTimeNV => struct { id_result_type: IdResultType, id_result: IdResult, hit_object: IdRef }, - .OpHitObjectGetAttributesNV => struct { hit_object: IdRef, hit_object_attribute: IdRef }, - .OpHitObjectGetHitKindNV => struct { id_result_type: IdResultType, id_result: IdResult, hit_object: IdRef }, - .OpHitObjectGetPrimitiveIndexNV => struct { id_result_type: IdResultType, id_result: IdResult, hit_object: IdRef }, - .OpHitObjectGetGeometryIndexNV => struct { id_result_type: IdResultType, id_result: IdResult, hit_object: IdRef }, - .OpHitObjectGetInstanceIdNV => struct { id_result_type: IdResultType, id_result: IdResult, hit_object: IdRef }, - .OpHitObjectGetInstanceCustomIndexNV => struct { id_result_type: IdResultType, id_result: IdResult, hit_object: IdRef }, - .OpHitObjectGetWorldRayDirectionNV => struct { id_result_type: IdResultType, id_result: IdResult, hit_object: IdRef }, - .OpHitObjectGetWorldRayOriginNV => struct { id_result_type: IdResultType, id_result: IdResult, hit_object: IdRef }, - .OpHitObjectGetRayTMaxNV => struct { id_result_type: IdResultType, id_result: IdResult, hit_object: IdRef }, - .OpHitObjectGetRayTMinNV => struct { id_result_type: IdResultType, id_result: IdResult, hit_object: IdRef }, - .OpHitObjectIsEmptyNV => struct { id_result_type: IdResultType, id_result: IdResult, hit_object: IdRef }, - .OpHitObjectIsHitNV => struct { id_result_type: IdResultType, id_result: IdResult, hit_object: IdRef }, - .OpHitObjectIsMissNV => struct { id_result_type: IdResultType, id_result: IdResult, hit_object: IdRef }, - .OpReorderThreadWithHitObjectNV => struct { hit_object: IdRef, hint: ?IdRef = null, bits: ?IdRef = null }, - .OpReorderThreadWithHintNV => struct { hint: IdRef, bits: IdRef }, - .OpTypeHitObjectNV => struct { id_result: IdResult }, - .OpImageSampleFootprintNV => struct { id_result_type: IdResultType, id_result: IdResult, sampled_image: IdRef, coordinate: IdRef, granularity: IdRef, coarse: IdRef, image_operands: ?ImageOperands.Extended = null }, - .OpEmitMeshTasksEXT => struct { group_count_x: IdRef, group_count_y: IdRef, group_count_z: IdRef, payload: ?IdRef = null }, - .OpSetMeshOutputsEXT => struct { vertex_count: IdRef, primitive_count: IdRef }, - .OpGroupNonUniformPartitionNV => struct { id_result_type: IdResultType, id_result: IdResult, value: IdRef }, - .OpWritePackedPrimitiveIndices4x8NV => struct { index_offset: IdRef, packed_indices: IdRef }, - .OpFetchMicroTriangleVertexPositionNV => struct { id_result_type: IdResultType, id_result: IdResult, accel: IdRef, instance_id: IdRef, geometry_index: IdRef, primitive_index: IdRef, barycentric: IdRef }, - .OpFetchMicroTriangleVertexBarycentricNV => struct { id_result_type: IdResultType, id_result: IdResult, accel: IdRef, instance_id: IdRef, geometry_index: IdRef, primitive_index: IdRef, barycentric: IdRef }, - .OpReportIntersectionKHR => struct { id_result_type: IdResultType, id_result: IdResult, hit: IdRef, hitkind: IdRef }, + .OpSDot => struct { id_result_type: Id, id_result: Id, vector_1: Id, vector_2: Id, packed_vector_format: ?PackedVectorFormat = null }, + .OpUDot => struct { id_result_type: Id, id_result: Id, vector_1: Id, vector_2: Id, packed_vector_format: ?PackedVectorFormat = null }, + .OpSUDot => struct { id_result_type: Id, id_result: Id, vector_1: Id, vector_2: Id, packed_vector_format: ?PackedVectorFormat = null }, + .OpSDotAccSat => struct { id_result_type: Id, id_result: Id, vector_1: Id, vector_2: Id, accumulator: Id, packed_vector_format: ?PackedVectorFormat = null }, + .OpUDotAccSat => struct { id_result_type: Id, id_result: Id, vector_1: Id, vector_2: Id, accumulator: Id, packed_vector_format: ?PackedVectorFormat = null }, + .OpSUDotAccSat => struct { id_result_type: Id, id_result: Id, vector_1: Id, vector_2: Id, accumulator: Id, packed_vector_format: ?PackedVectorFormat = null }, + .OpTypeCooperativeMatrixKHR => struct { id_result: Id, component_type: Id, scope: Id, rows: Id, columns: Id, use: Id }, + .OpCooperativeMatrixLoadKHR => struct { id_result_type: Id, id_result: Id, pointer: Id, memory_layout: Id, stride: ?Id = null, memory_operand: ?MemoryAccess.Extended = null }, + .OpCooperativeMatrixStoreKHR => struct { pointer: Id, object: Id, memory_layout: Id, stride: ?Id = null, memory_operand: ?MemoryAccess.Extended = null }, + .OpCooperativeMatrixMulAddKHR => struct { id_result_type: Id, id_result: Id, a: Id, b: Id, c: Id, cooperative_matrix_operands: ?CooperativeMatrixOperands = null }, + .OpCooperativeMatrixLengthKHR => struct { id_result_type: Id, id_result: Id, type: Id }, + .OpConstantCompositeReplicateEXT => struct { id_result_type: Id, id_result: Id, value: Id }, + .OpSpecConstantCompositeReplicateEXT => struct { id_result_type: Id, id_result: Id, value: Id }, + .OpCompositeConstructReplicateEXT => struct { id_result_type: Id, id_result: Id, value: Id }, + .OpTypeRayQueryKHR => struct { id_result: Id }, + .OpRayQueryInitializeKHR => struct { ray_query: Id, accel: Id, ray_flags: Id, cull_mask: Id, ray_origin: Id, ray_t_min: Id, ray_direction: Id, ray_t_max: Id }, + .OpRayQueryTerminateKHR => struct { ray_query: Id }, + .OpRayQueryGenerateIntersectionKHR => struct { ray_query: Id, hit_t: Id }, + .OpRayQueryConfirmIntersectionKHR => struct { ray_query: Id }, + .OpRayQueryProceedKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id }, + .OpRayQueryGetIntersectionTypeKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id }, + .OpImageSampleWeightedQCOM => struct { id_result_type: Id, id_result: Id, texture: Id, coordinates: Id, weights: Id }, + .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 }, + .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 }, + .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 }, + .OpGroupUMinNonUniformAMD => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id }, + .OpGroupSMinNonUniformAMD => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id }, + .OpGroupFMaxNonUniformAMD => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id }, + .OpGroupUMaxNonUniformAMD => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id }, + .OpGroupSMaxNonUniformAMD => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id }, + .OpFragmentMaskFetchAMD => struct { id_result_type: Id, id_result: Id, image: Id, coordinate: Id }, + .OpFragmentFetchAMD => struct { id_result_type: Id, id_result: Id, image: Id, coordinate: Id, fragment_index: Id }, + .OpReadClockKHR => struct { id_result_type: Id, id_result: Id, scope: Id }, + .OpAllocateNodePayloadsAMDX => struct { id_result_type: Id, id_result: Id, visibility: Id, payload_count: Id, node_index: Id }, + .OpEnqueueNodePayloadsAMDX => struct { payload_array: Id }, + .OpTypeNodePayloadArrayAMDX => struct { id_result: Id, payload_type: Id }, + .OpFinishWritingNodePayloadAMDX => struct { id_result_type: Id, id_result: Id, payload: Id }, + .OpNodePayloadArrayLengthAMDX => struct { id_result_type: Id, id_result: Id, payload_array: Id }, + .OpIsNodePayloadValidAMDX => struct { id_result_type: Id, id_result: Id, payload_type: Id, node_index: Id }, + .OpConstantStringAMDX => struct { id_result: Id, literal_string: LiteralString }, + .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 }, + .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 }, + .OpHitObjectGetWorldToObjectNV => struct { id_result_type: Id, id_result: Id, hit_object: Id }, + .OpHitObjectGetObjectToWorldNV => struct { id_result_type: Id, id_result: Id, hit_object: Id }, + .OpHitObjectGetObjectRayDirectionNV => struct { id_result_type: Id, id_result: Id, hit_object: Id }, + .OpHitObjectGetObjectRayOriginNV => struct { id_result_type: Id, id_result: Id, hit_object: Id }, + .OpHitObjectTraceRayMotionNV => struct { hit_object: Id, acceleration_structure: Id, ray_flags: Id, cullmask: Id, sbt_record_offset: Id, sbt_record_stride: Id, miss_index: Id, origin: Id, t_min: Id, direction: Id, t_max: Id, time: Id, payload: Id }, + .OpHitObjectGetShaderRecordBufferHandleNV => struct { id_result_type: Id, id_result: Id, hit_object: Id }, + .OpHitObjectGetShaderBindingTableRecordIndexNV => struct { id_result_type: Id, id_result: Id, hit_object: Id }, + .OpHitObjectRecordEmptyNV => struct { hit_object: Id }, + .OpHitObjectTraceRayNV => struct { hit_object: Id, acceleration_structure: Id, ray_flags: Id, cullmask: Id, sbt_record_offset: Id, sbt_record_stride: Id, miss_index: Id, origin: Id, t_min: Id, direction: Id, t_max: Id, payload: Id }, + .OpHitObjectRecordHitNV => struct { hit_object: Id, acceleration_structure: Id, instance_id: Id, primitive_id: Id, geometry_index: Id, hit_kind: Id, sbt_record_offset: Id, sbt_record_stride: Id, origin: Id, t_min: Id, direction: Id, t_max: Id, hit_object_attributes: Id }, + .OpHitObjectRecordHitWithIndexNV => struct { hit_object: Id, acceleration_structure: Id, instance_id: Id, primitive_id: Id, geometry_index: Id, hit_kind: Id, sbt_record_index: Id, origin: Id, t_min: Id, direction: Id, t_max: Id, hit_object_attributes: Id }, + .OpHitObjectRecordMissNV => struct { hit_object: Id, sbt_index: Id, origin: Id, t_min: Id, direction: Id, t_max: Id }, + .OpHitObjectExecuteShaderNV => struct { hit_object: Id, payload: Id }, + .OpHitObjectGetCurrentTimeNV => struct { id_result_type: Id, id_result: Id, hit_object: Id }, + .OpHitObjectGetAttributesNV => struct { hit_object: Id, hit_object_attribute: Id }, + .OpHitObjectGetHitKindNV => struct { id_result_type: Id, id_result: Id, hit_object: Id }, + .OpHitObjectGetPrimitiveIndexNV => struct { id_result_type: Id, id_result: Id, hit_object: Id }, + .OpHitObjectGetGeometryIndexNV => struct { id_result_type: Id, id_result: Id, hit_object: Id }, + .OpHitObjectGetInstanceIdNV => struct { id_result_type: Id, id_result: Id, hit_object: Id }, + .OpHitObjectGetInstanceCustomIndexNV => struct { id_result_type: Id, id_result: Id, hit_object: Id }, + .OpHitObjectGetWorldRayDirectionNV => struct { id_result_type: Id, id_result: Id, hit_object: Id }, + .OpHitObjectGetWorldRayOriginNV => struct { id_result_type: Id, id_result: Id, hit_object: Id }, + .OpHitObjectGetRayTMaxNV => struct { id_result_type: Id, id_result: Id, hit_object: Id }, + .OpHitObjectGetRayTMinNV => struct { id_result_type: Id, id_result: Id, hit_object: Id }, + .OpHitObjectIsEmptyNV => struct { id_result_type: Id, id_result: Id, hit_object: Id }, + .OpHitObjectIsHitNV => struct { id_result_type: Id, id_result: Id, hit_object: Id }, + .OpHitObjectIsMissNV => struct { id_result_type: Id, id_result: Id, hit_object: Id }, + .OpReorderThreadWithHitObjectNV => struct { hit_object: Id, hint: ?Id = null, bits: ?Id = null }, + .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 }, + .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 }, + .OpCooperativeVectorMatrixMulAddNV => struct { id_result_type: Id, id_result: Id, input: Id, input_interpretation: Id, matrix: Id, matrix_offset: Id, matrix_interpretation: Id, bias: Id, bias_offset: Id, bias_interpretation: Id, m: Id, k: Id, memory_layout: Id, transpose: Id, matrix_stride: ?Id = null, cooperative_matrix_operands: ?CooperativeMatrixOperands = null }, + .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 }, + .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 }, + .OpReportIntersectionKHR => struct { id_result_type: Id, id_result: Id, hit: Id, hit_kind: Id }, .OpIgnoreIntersectionNV => void, .OpTerminateRayNV => void, - .OpTraceNV => struct { accel: IdRef, ray_flags: IdRef, cull_mask: IdRef, sbt_offset: IdRef, sbt_stride: IdRef, miss_index: IdRef, ray_origin: IdRef, ray_tmin: IdRef, ray_direction: IdRef, ray_tmax: IdRef, payloadid: IdRef }, - .OpTraceMotionNV => struct { accel: IdRef, ray_flags: IdRef, cull_mask: IdRef, sbt_offset: IdRef, sbt_stride: IdRef, miss_index: IdRef, ray_origin: IdRef, ray_tmin: IdRef, ray_direction: IdRef, ray_tmax: IdRef, time: IdRef, payloadid: IdRef }, - .OpTraceRayMotionNV => struct { accel: IdRef, ray_flags: IdRef, cull_mask: IdRef, sbt_offset: IdRef, sbt_stride: IdRef, miss_index: IdRef, ray_origin: IdRef, ray_tmin: IdRef, ray_direction: IdRef, ray_tmax: IdRef, time: IdRef, payload: IdRef }, - .OpRayQueryGetIntersectionTriangleVertexPositionsKHR => struct { id_result_type: IdResultType, id_result: IdResult, rayquery: IdRef, intersection: IdRef }, - .OpTypeAccelerationStructureKHR => struct { id_result: IdResult }, - .OpExecuteCallableNV => struct { sbt_index: IdRef, callable_dataid: IdRef }, - .OpTypeCooperativeMatrixNV => struct { id_result: IdResult, component_type: IdRef, execution: IdScope, rows: IdRef, columns: IdRef }, - .OpCooperativeMatrixLoadNV => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef, stride: IdRef, column_major: IdRef, memory_access: ?MemoryAccess.Extended = null }, - .OpCooperativeMatrixStoreNV => struct { pointer: IdRef, object: IdRef, stride: IdRef, column_major: IdRef, memory_access: ?MemoryAccess.Extended = null }, - .OpCooperativeMatrixMulAddNV => struct { id_result_type: IdResultType, id_result: IdResult, a: IdRef, b: IdRef, c: IdRef }, - .OpCooperativeMatrixLengthNV => struct { id_result_type: IdResultType, id_result: IdResult, type: IdRef }, + .OpTraceNV => struct { accel: Id, ray_flags: Id, cull_mask: Id, sbt_offset: Id, sbt_stride: Id, miss_index: Id, ray_origin: Id, ray_tmin: Id, ray_direction: Id, ray_tmax: Id, payload_id: Id }, + .OpTraceMotionNV => struct { accel: Id, ray_flags: Id, cull_mask: Id, sbt_offset: Id, sbt_stride: Id, miss_index: Id, ray_origin: Id, ray_tmin: Id, ray_direction: Id, ray_tmax: Id, time: Id, payload_id: Id }, + .OpTraceRayMotionNV => struct { accel: Id, ray_flags: Id, cull_mask: Id, sbt_offset: Id, sbt_stride: Id, miss_index: Id, ray_origin: Id, ray_tmin: Id, ray_direction: Id, ray_tmax: Id, time: Id, payload: Id }, + .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 }, + .OpHitObjectGetClusterIdNV => 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 }, + .OpCooperativeMatrixMulAddNV => struct { id_result_type: Id, id_result: Id, a: Id, b: Id, c: Id }, + .OpCooperativeMatrixLengthNV => struct { id_result_type: Id, id_result: Id, type: Id }, .OpBeginInvocationInterlockEXT => void, .OpEndInvocationInterlockEXT => void, + .OpCooperativeMatrixReduceNV => struct { id_result_type: Id, id_result: Id, matrix: Id, reduce: CooperativeMatrixReduce, combine_func: Id }, + .OpCooperativeMatrixLoadTensorNV => struct { id_result_type: Id, id_result: Id, pointer: Id, object: Id, tensor_layout: Id, memory_operand: MemoryAccess.Extended, tensor_addressing_operands: TensorAddressingOperands.Extended }, + .OpCooperativeMatrixStoreTensorNV => struct { pointer: Id, object: Id, tensor_layout: Id, memory_operand: MemoryAccess.Extended, tensor_addressing_operands: TensorAddressingOperands.Extended }, + .OpCooperativeMatrixPerElementOpNV => struct { id_result_type: Id, id_result: Id, matrix: Id, func: Id, operands: []const Id = &.{} }, + .OpTypeTensorLayoutNV => struct { id_result: Id, dim: Id, clamp_mode: Id }, + .OpTypeTensorViewNV => struct { id_result: Id, dim: Id, has_dimensions: Id, p: []const Id = &.{} }, + .OpCreateTensorLayoutNV => struct { id_result_type: Id, id_result: Id }, + .OpTensorLayoutSetDimensionNV => struct { id_result_type: Id, id_result: Id, tensor_layout: Id, dim: []const Id = &.{} }, + .OpTensorLayoutSetStrideNV => struct { id_result_type: Id, id_result: Id, tensor_layout: Id, stride: []const Id = &.{} }, + .OpTensorLayoutSliceNV => struct { id_result_type: Id, id_result: Id, tensor_layout: Id, operands: []const Id = &.{} }, + .OpTensorLayoutSetClampValueNV => struct { id_result_type: Id, id_result: Id, tensor_layout: Id, value: Id }, + .OpCreateTensorViewNV => struct { id_result_type: Id, id_result: Id }, + .OpTensorViewSetDimensionNV => struct { id_result_type: Id, id_result: Id, tensor_view: Id, dim: []const Id = &.{} }, + .OpTensorViewSetStrideNV => struct { id_result_type: Id, id_result: Id, tensor_view: Id, stride: []const Id = &.{} }, .OpDemoteToHelperInvocation => void, - .OpIsHelperInvocationEXT => struct { id_result_type: IdResultType, id_result: IdResult }, - .OpConvertUToImageNV => struct { id_result_type: IdResultType, id_result: IdResult, operand: IdRef }, - .OpConvertUToSamplerNV => struct { id_result_type: IdResultType, id_result: IdResult, operand: IdRef }, - .OpConvertImageToUNV => struct { id_result_type: IdResultType, id_result: IdResult, operand: IdRef }, - .OpConvertSamplerToUNV => struct { id_result_type: IdResultType, id_result: IdResult, operand: IdRef }, - .OpConvertUToSampledImageNV => struct { id_result_type: IdResultType, id_result: IdResult, operand: IdRef }, - .OpConvertSampledImageToUNV => struct { id_result_type: IdResultType, id_result: IdResult, operand: IdRef }, + .OpIsHelperInvocationEXT => struct { id_result_type: Id, id_result: Id }, + .OpTensorViewSetClipNV => struct { id_result_type: Id, id_result: Id, tensor_view: Id, clip_row_offset: Id, clip_row_span: Id, clip_col_offset: Id, clip_col_span: Id }, + .OpTensorLayoutSetBlockSizeNV => struct { id_result_type: Id, id_result: Id, tensor_layout: Id, block_size: []const Id = &.{} }, + .OpCooperativeMatrixTransposeNV => struct { id_result_type: Id, id_result: Id, matrix: Id }, + .OpConvertUToImageNV => struct { id_result_type: Id, id_result: Id, operand: Id }, + .OpConvertUToSamplerNV => struct { id_result_type: Id, id_result: Id, operand: Id }, + .OpConvertImageToUNV => struct { id_result_type: Id, id_result: Id, operand: Id }, + .OpConvertSamplerToUNV => struct { id_result_type: Id, id_result: Id, operand: Id }, + .OpConvertUToSampledImageNV => struct { id_result_type: Id, id_result: Id, operand: Id }, + .OpConvertSampledImageToUNV => struct { id_result_type: Id, id_result: Id, operand: Id }, .OpSamplerImageAddressingModeNV => struct { bit_width: LiteralInteger }, - .OpRawAccessChainNV => struct { id_result_type: IdResultType, id_result: IdResult, base: IdRef, byte_stride: IdRef, element_index: IdRef, byte_offset: IdRef, raw_access_chain_operands: ?RawAccessChainOperands = null }, - .OpSubgroupShuffleINTEL => struct { id_result_type: IdResultType, id_result: IdResult, data: IdRef, invocationid: IdRef }, - .OpSubgroupShuffleDownINTEL => struct { id_result_type: IdResultType, id_result: IdResult, current: IdRef, next: IdRef, delta: IdRef }, - .OpSubgroupShuffleUpINTEL => struct { id_result_type: IdResultType, id_result: IdResult, previous: IdRef, current: IdRef, delta: IdRef }, - .OpSubgroupShuffleXorINTEL => struct { id_result_type: IdResultType, id_result: IdResult, data: IdRef, value: IdRef }, - .OpSubgroupBlockReadINTEL => struct { id_result_type: IdResultType, id_result: IdResult, ptr: IdRef }, - .OpSubgroupBlockWriteINTEL => struct { ptr: IdRef, data: IdRef }, - .OpSubgroupImageBlockReadINTEL => struct { id_result_type: IdResultType, id_result: IdResult, image: IdRef, coordinate: IdRef }, - .OpSubgroupImageBlockWriteINTEL => struct { image: IdRef, coordinate: IdRef, data: IdRef }, - .OpSubgroupImageMediaBlockReadINTEL => struct { id_result_type: IdResultType, id_result: IdResult, image: IdRef, coordinate: IdRef, width: IdRef, height: IdRef }, - .OpSubgroupImageMediaBlockWriteINTEL => struct { image: IdRef, coordinate: IdRef, width: IdRef, height: IdRef, data: IdRef }, - .OpUCountLeadingZerosINTEL => struct { id_result_type: IdResultType, id_result: IdResult, operand: IdRef }, - .OpUCountTrailingZerosINTEL => struct { id_result_type: IdResultType, id_result: IdResult, operand: IdRef }, - .OpAbsISubINTEL => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, - .OpAbsUSubINTEL => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, - .OpIAddSatINTEL => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, - .OpUAddSatINTEL => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, - .OpIAverageINTEL => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, - .OpUAverageINTEL => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, - .OpIAverageRoundedINTEL => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, - .OpUAverageRoundedINTEL => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, - .OpISubSatINTEL => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, - .OpUSubSatINTEL => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, - .OpIMul32x16INTEL => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, - .OpUMul32x16INTEL => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef }, - .OpAtomicFMinEXT => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef, memory: IdScope, semantics: IdMemorySemantics, value: IdRef }, - .OpAtomicFMaxEXT => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef, memory: IdScope, semantics: IdMemorySemantics, value: IdRef }, - .OpAssumeTrueKHR => struct { condition: IdRef }, - .OpExpectKHR => struct { id_result_type: IdResultType, id_result: IdResult, value: IdRef, expectedvalue: IdRef }, - .OpDecorateString => struct { target: IdRef, decoration: Decoration.Extended }, - .OpMemberDecorateString => struct { struct_type: IdRef, member: LiteralInteger, decoration: Decoration.Extended }, + .OpRawAccessChainNV => struct { id_result_type: Id, id_result: Id, base: Id, byte_stride: Id, element_index: Id, byte_offset: Id, raw_access_chain_operands: ?RawAccessChainOperands = null }, + .OpRayQueryGetIntersectionSpherePositionNV => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id }, + .OpRayQueryGetIntersectionSphereRadiusNV => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id }, + .OpRayQueryGetIntersectionLSSPositionsNV => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id }, + .OpRayQueryGetIntersectionLSSRadiiNV => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id }, + .OpRayQueryGetIntersectionLSSHitValueNV => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id }, + .OpHitObjectGetSpherePositionNV => struct { id_result_type: Id, id_result: Id, hit_object: Id }, + .OpHitObjectGetSphereRadiusNV => struct { id_result_type: Id, id_result: Id, hit_object: Id }, + .OpHitObjectGetLSSPositionsNV => struct { id_result_type: Id, id_result: Id, hit_object: Id }, + .OpHitObjectGetLSSRadiiNV => struct { id_result_type: Id, id_result: Id, hit_object: Id }, + .OpHitObjectIsSphereHitNV => struct { id_result_type: Id, id_result: Id, hit_object: Id }, + .OpHitObjectIsLSSHitNV => struct { id_result_type: Id, id_result: Id, hit_object: Id }, + .OpRayQueryIsSphereHitNV => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id }, + .OpRayQueryIsLSSHitNV => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id }, + .OpSubgroupShuffleINTEL => struct { id_result_type: Id, id_result: Id, data: Id, invocation_id: Id }, + .OpSubgroupShuffleDownINTEL => struct { id_result_type: Id, id_result: Id, current: Id, next: Id, delta: Id }, + .OpSubgroupShuffleUpINTEL => struct { id_result_type: Id, id_result: Id, previous: Id, current: Id, delta: Id }, + .OpSubgroupShuffleXorINTEL => struct { id_result_type: Id, id_result: Id, data: Id, value: Id }, + .OpSubgroupBlockReadINTEL => struct { id_result_type: Id, id_result: Id, ptr: Id }, + .OpSubgroupBlockWriteINTEL => struct { ptr: Id, data: Id }, + .OpSubgroupImageBlockReadINTEL => struct { id_result_type: Id, id_result: Id, image: Id, coordinate: Id }, + .OpSubgroupImageBlockWriteINTEL => struct { image: Id, coordinate: Id, data: Id }, + .OpSubgroupImageMediaBlockReadINTEL => struct { id_result_type: Id, id_result: Id, image: Id, coordinate: Id, width: Id, height: Id }, + .OpSubgroupImageMediaBlockWriteINTEL => struct { image: Id, coordinate: Id, width: Id, height: Id, data: Id }, + .OpUCountLeadingZerosINTEL => struct { id_result_type: Id, id_result: Id, operand: Id }, + .OpUCountTrailingZerosINTEL => struct { id_result_type: Id, id_result: Id, operand: Id }, + .OpAbsISubINTEL => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id }, + .OpAbsUSubINTEL => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id }, + .OpIAddSatINTEL => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id }, + .OpUAddSatINTEL => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id }, + .OpIAverageINTEL => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id }, + .OpUAverageINTEL => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id }, + .OpIAverageRoundedINTEL => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id }, + .OpUAverageRoundedINTEL => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id }, + .OpISubSatINTEL => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id }, + .OpUSubSatINTEL => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id }, + .OpIMul32x16INTEL => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id }, + .OpUMul32x16INTEL => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id }, + .OpAtomicFMinEXT => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, semantics: Id, value: Id }, + .OpAtomicFMaxEXT => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, semantics: Id, value: Id }, + .OpAssumeTrueKHR => struct { condition: Id }, + .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 }, .OpLoopControlINTEL => struct { loop_control_parameters: []const LiteralInteger = &.{} }, - .OpReadPipeBlockingINTEL => struct { id_result_type: IdResultType, id_result: IdResult, packet_size: IdRef, packet_alignment: IdRef }, - .OpWritePipeBlockingINTEL => struct { id_result_type: IdResultType, id_result: IdResult, packet_size: IdRef, packet_alignment: IdRef }, - .OpFPGARegINTEL => struct { id_result_type: IdResultType, id_result: IdResult, result: IdRef, input: IdRef }, - .OpRayQueryGetRayTMinKHR => struct { id_result_type: IdResultType, id_result: IdResult, rayquery: IdRef }, - .OpRayQueryGetRayFlagsKHR => struct { id_result_type: IdResultType, id_result: IdResult, rayquery: IdRef }, - .OpRayQueryGetIntersectionTKHR => struct { id_result_type: IdResultType, id_result: IdResult, rayquery: IdRef, intersection: IdRef }, - .OpRayQueryGetIntersectionInstanceCustomIndexKHR => struct { id_result_type: IdResultType, id_result: IdResult, rayquery: IdRef, intersection: IdRef }, - .OpRayQueryGetIntersectionInstanceIdKHR => struct { id_result_type: IdResultType, id_result: IdResult, rayquery: IdRef, intersection: IdRef }, - .OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR => struct { id_result_type: IdResultType, id_result: IdResult, rayquery: IdRef, intersection: IdRef }, - .OpRayQueryGetIntersectionGeometryIndexKHR => struct { id_result_type: IdResultType, id_result: IdResult, rayquery: IdRef, intersection: IdRef }, - .OpRayQueryGetIntersectionPrimitiveIndexKHR => struct { id_result_type: IdResultType, id_result: IdResult, rayquery: IdRef, intersection: IdRef }, - .OpRayQueryGetIntersectionBarycentricsKHR => struct { id_result_type: IdResultType, id_result: IdResult, rayquery: IdRef, intersection: IdRef }, - .OpRayQueryGetIntersectionFrontFaceKHR => struct { id_result_type: IdResultType, id_result: IdResult, rayquery: IdRef, intersection: IdRef }, - .OpRayQueryGetIntersectionCandidateAABBOpaqueKHR => struct { id_result_type: IdResultType, id_result: IdResult, rayquery: IdRef }, - .OpRayQueryGetIntersectionObjectRayDirectionKHR => struct { id_result_type: IdResultType, id_result: IdResult, rayquery: IdRef, intersection: IdRef }, - .OpRayQueryGetIntersectionObjectRayOriginKHR => struct { id_result_type: IdResultType, id_result: IdResult, rayquery: IdRef, intersection: IdRef }, - .OpRayQueryGetWorldRayDirectionKHR => struct { id_result_type: IdResultType, id_result: IdResult, rayquery: IdRef }, - .OpRayQueryGetWorldRayOriginKHR => struct { id_result_type: IdResultType, id_result: IdResult, rayquery: IdRef }, - .OpRayQueryGetIntersectionObjectToWorldKHR => struct { id_result_type: IdResultType, id_result: IdResult, rayquery: IdRef, intersection: IdRef }, - .OpRayQueryGetIntersectionWorldToObjectKHR => struct { id_result_type: IdResultType, id_result: IdResult, rayquery: IdRef, intersection: IdRef }, - .OpAtomicFAddEXT => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef, memory: IdScope, semantics: IdMemorySemantics, value: IdRef }, - .OpTypeBufferSurfaceINTEL => struct { id_result: IdResult, accessqualifier: AccessQualifier }, - .OpTypeStructContinuedINTEL => struct { id_ref: []const IdRef = &.{} }, - .OpConstantCompositeContinuedINTEL => struct { constituents: []const IdRef = &.{} }, - .OpSpecConstantCompositeContinuedINTEL => struct { constituents: []const IdRef = &.{} }, - .OpCompositeConstructContinuedINTEL => struct { id_result_type: IdResultType, id_result: IdResult, constituents: []const IdRef = &.{} }, - .OpConvertFToBF16INTEL => struct { id_result_type: IdResultType, id_result: IdResult, float_value: IdRef }, - .OpConvertBF16ToFINTEL => struct { id_result_type: IdResultType, id_result: IdResult, bfloat16_value: IdRef }, - .OpControlBarrierArriveINTEL => struct { execution: IdScope, memory: IdScope, semantics: IdMemorySemantics }, - .OpControlBarrierWaitINTEL => struct { execution: IdScope, memory: IdScope, semantics: IdMemorySemantics }, - .OpGroupIMulKHR => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, x: IdRef }, - .OpGroupFMulKHR => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, x: IdRef }, - .OpGroupBitwiseAndKHR => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, x: IdRef }, - .OpGroupBitwiseOrKHR => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, x: IdRef }, - .OpGroupBitwiseXorKHR => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, x: IdRef }, - .OpGroupLogicalAndKHR => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, x: IdRef }, - .OpGroupLogicalOrKHR => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, x: IdRef }, - .OpGroupLogicalXorKHR => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, x: IdRef }, - .OpMaskedGatherINTEL => struct { id_result_type: IdResultType, id_result: IdResult, ptrvector: IdRef, alignment: LiteralInteger, mask: IdRef, fillempty: IdRef }, - .OpMaskedScatterINTEL => struct { inputvector: IdRef, ptrvector: IdRef, alignment: LiteralInteger, mask: IdRef }, + .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 }, + .OpRayQueryGetIntersectionInstanceCustomIndexKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id }, + .OpRayQueryGetIntersectionInstanceIdKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id }, + .OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id }, + .OpRayQueryGetIntersectionGeometryIndexKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id }, + .OpRayQueryGetIntersectionPrimitiveIndexKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id }, + .OpRayQueryGetIntersectionBarycentricsKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id }, + .OpRayQueryGetIntersectionFrontFaceKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id }, + .OpRayQueryGetIntersectionCandidateAABBOpaqueKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id }, + .OpRayQueryGetIntersectionObjectRayDirectionKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id }, + .OpRayQueryGetIntersectionObjectRayOriginKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id }, + .OpRayQueryGetWorldRayDirectionKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id }, + .OpRayQueryGetWorldRayOriginKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id }, + .OpRayQueryGetIntersectionObjectToWorldKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id }, + .OpRayQueryGetIntersectionWorldToObjectKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id }, + .OpAtomicFAddEXT => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, semantics: Id, value: Id }, + .OpTypeBufferSurfaceINTEL => struct { id_result: Id, access_qualifier: AccessQualifier }, + .OpTypeStructContinuedINTEL => struct { id_ref: []const Id = &.{} }, + .OpConstantCompositeContinuedINTEL => struct { constituents: []const Id = &.{} }, + .OpSpecConstantCompositeContinuedINTEL => struct { constituents: []const Id = &.{} }, + .OpCompositeConstructContinuedINTEL => struct { id_result_type: Id, id_result: Id, constituents: []const Id = &.{} }, + .OpConvertFToBF16INTEL => struct { id_result_type: Id, id_result: Id, float_value: Id }, + .OpConvertBF16ToFINTEL => struct { id_result_type: Id, id_result: Id, b_float16_value: Id }, + .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 }, + .OpSubgroup2DBlockLoadTransposeINTEL => struct { element_size: Id, block_width: Id, block_height: Id, block_count: Id, src_base_pointer: Id, memory_width: Id, memory_height: Id, memory_pitch: Id, coordinate: Id, dst_pointer: Id }, + .OpSubgroup2DBlockPrefetchINTEL => struct { element_size: Id, block_width: Id, block_height: Id, block_count: Id, src_base_pointer: Id, memory_width: Id, memory_height: Id, memory_pitch: Id, coordinate: Id }, + .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 }, + .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 }, + .OpGroupBitwiseOrKHR => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id }, + .OpGroupBitwiseXorKHR => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id }, + .OpGroupLogicalAndKHR => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id }, + .OpGroupLogicalOrKHR => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id }, + .OpGroupLogicalXorKHR => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id }, + .OpRoundFToTF32INTEL => struct { id_result_type: Id, id_result: Id, float_value: Id }, + .OpMaskedGatherINTEL => struct { id_result_type: Id, id_result: Id, ptr_vector: Id, alignment: LiteralInteger, mask: Id, fill_empty: Id }, + .OpMaskedScatterINTEL => struct { input_vector: Id, ptr_vector: Id, alignment: LiteralInteger, mask: Id }, + .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 }, }; } pub fn class(self: Opcode) Class { return switch (self) { - .OpNop => .Miscellaneous, - .OpUndef => .Miscellaneous, - .OpSourceContinued => .Debug, - .OpSource => .Debug, - .OpSourceExtension => .Debug, - .OpName => .Debug, - .OpMemberName => .Debug, - .OpString => .Debug, - .OpLine => .Debug, - .OpExtension => .Extension, - .OpExtInstImport => .Extension, - .OpExtInst => .Extension, - .OpMemoryModel => .ModeSetting, - .OpEntryPoint => .ModeSetting, - .OpExecutionMode => .ModeSetting, - .OpCapability => .ModeSetting, - .OpTypeVoid => .TypeDeclaration, - .OpTypeBool => .TypeDeclaration, - .OpTypeInt => .TypeDeclaration, - .OpTypeFloat => .TypeDeclaration, - .OpTypeVector => .TypeDeclaration, - .OpTypeMatrix => .TypeDeclaration, - .OpTypeImage => .TypeDeclaration, - .OpTypeSampler => .TypeDeclaration, - .OpTypeSampledImage => .TypeDeclaration, - .OpTypeArray => .TypeDeclaration, - .OpTypeRuntimeArray => .TypeDeclaration, - .OpTypeStruct => .TypeDeclaration, - .OpTypeOpaque => .TypeDeclaration, - .OpTypePointer => .TypeDeclaration, - .OpTypeFunction => .TypeDeclaration, - .OpTypeEvent => .TypeDeclaration, - .OpTypeDeviceEvent => .TypeDeclaration, - .OpTypeReserveId => .TypeDeclaration, - .OpTypeQueue => .TypeDeclaration, - .OpTypePipe => .TypeDeclaration, - .OpTypeForwardPointer => .TypeDeclaration, - .OpConstantTrue => .ConstantCreation, - .OpConstantFalse => .ConstantCreation, - .OpConstant => .ConstantCreation, - .OpConstantComposite => .ConstantCreation, - .OpConstantSampler => .ConstantCreation, - .OpConstantNull => .ConstantCreation, - .OpSpecConstantTrue => .ConstantCreation, - .OpSpecConstantFalse => .ConstantCreation, - .OpSpecConstant => .ConstantCreation, - .OpSpecConstantComposite => .ConstantCreation, - .OpSpecConstantOp => .ConstantCreation, - .OpFunction => .Function, - .OpFunctionParameter => .Function, - .OpFunctionEnd => .Function, - .OpFunctionCall => .Function, - .OpVariable => .Memory, - .OpImageTexelPointer => .Memory, - .OpLoad => .Memory, - .OpStore => .Memory, - .OpCopyMemory => .Memory, - .OpCopyMemorySized => .Memory, - .OpAccessChain => .Memory, - .OpInBoundsAccessChain => .Memory, - .OpPtrAccessChain => .Memory, - .OpArrayLength => .Memory, - .OpGenericPtrMemSemantics => .Memory, - .OpInBoundsPtrAccessChain => .Memory, - .OpDecorate => .Annotation, - .OpMemberDecorate => .Annotation, - .OpDecorationGroup => .Annotation, - .OpGroupDecorate => .Annotation, - .OpGroupMemberDecorate => .Annotation, - .OpVectorExtractDynamic => .Composite, - .OpVectorInsertDynamic => .Composite, - .OpVectorShuffle => .Composite, - .OpCompositeConstruct => .Composite, - .OpCompositeExtract => .Composite, - .OpCompositeInsert => .Composite, - .OpCopyObject => .Composite, - .OpTranspose => .Composite, - .OpSampledImage => .Image, - .OpImageSampleImplicitLod => .Image, - .OpImageSampleExplicitLod => .Image, - .OpImageSampleDrefImplicitLod => .Image, - .OpImageSampleDrefExplicitLod => .Image, - .OpImageSampleProjImplicitLod => .Image, - .OpImageSampleProjExplicitLod => .Image, - .OpImageSampleProjDrefImplicitLod => .Image, - .OpImageSampleProjDrefExplicitLod => .Image, - .OpImageFetch => .Image, - .OpImageGather => .Image, - .OpImageDrefGather => .Image, - .OpImageRead => .Image, - .OpImageWrite => .Image, - .OpImage => .Image, - .OpImageQueryFormat => .Image, - .OpImageQueryOrder => .Image, - .OpImageQuerySizeLod => .Image, - .OpImageQuerySize => .Image, - .OpImageQueryLod => .Image, - .OpImageQueryLevels => .Image, - .OpImageQuerySamples => .Image, - .OpConvertFToU => .Conversion, - .OpConvertFToS => .Conversion, - .OpConvertSToF => .Conversion, - .OpConvertUToF => .Conversion, - .OpUConvert => .Conversion, - .OpSConvert => .Conversion, - .OpFConvert => .Conversion, - .OpQuantizeToF16 => .Conversion, - .OpConvertPtrToU => .Conversion, - .OpSatConvertSToU => .Conversion, - .OpSatConvertUToS => .Conversion, - .OpConvertUToPtr => .Conversion, - .OpPtrCastToGeneric => .Conversion, - .OpGenericCastToPtr => .Conversion, - .OpGenericCastToPtrExplicit => .Conversion, - .OpBitcast => .Conversion, - .OpSNegate => .Arithmetic, - .OpFNegate => .Arithmetic, - .OpIAdd => .Arithmetic, - .OpFAdd => .Arithmetic, - .OpISub => .Arithmetic, - .OpFSub => .Arithmetic, - .OpIMul => .Arithmetic, - .OpFMul => .Arithmetic, - .OpUDiv => .Arithmetic, - .OpSDiv => .Arithmetic, - .OpFDiv => .Arithmetic, - .OpUMod => .Arithmetic, - .OpSRem => .Arithmetic, - .OpSMod => .Arithmetic, - .OpFRem => .Arithmetic, - .OpFMod => .Arithmetic, - .OpVectorTimesScalar => .Arithmetic, - .OpMatrixTimesScalar => .Arithmetic, - .OpVectorTimesMatrix => .Arithmetic, - .OpMatrixTimesVector => .Arithmetic, - .OpMatrixTimesMatrix => .Arithmetic, - .OpOuterProduct => .Arithmetic, - .OpDot => .Arithmetic, - .OpIAddCarry => .Arithmetic, - .OpISubBorrow => .Arithmetic, - .OpUMulExtended => .Arithmetic, - .OpSMulExtended => .Arithmetic, - .OpAny => .RelationalAndLogical, - .OpAll => .RelationalAndLogical, - .OpIsNan => .RelationalAndLogical, - .OpIsInf => .RelationalAndLogical, - .OpIsFinite => .RelationalAndLogical, - .OpIsNormal => .RelationalAndLogical, - .OpSignBitSet => .RelationalAndLogical, - .OpLessOrGreater => .RelationalAndLogical, - .OpOrdered => .RelationalAndLogical, - .OpUnordered => .RelationalAndLogical, - .OpLogicalEqual => .RelationalAndLogical, - .OpLogicalNotEqual => .RelationalAndLogical, - .OpLogicalOr => .RelationalAndLogical, - .OpLogicalAnd => .RelationalAndLogical, - .OpLogicalNot => .RelationalAndLogical, - .OpSelect => .RelationalAndLogical, - .OpIEqual => .RelationalAndLogical, - .OpINotEqual => .RelationalAndLogical, - .OpUGreaterThan => .RelationalAndLogical, - .OpSGreaterThan => .RelationalAndLogical, - .OpUGreaterThanEqual => .RelationalAndLogical, - .OpSGreaterThanEqual => .RelationalAndLogical, - .OpULessThan => .RelationalAndLogical, - .OpSLessThan => .RelationalAndLogical, - .OpULessThanEqual => .RelationalAndLogical, - .OpSLessThanEqual => .RelationalAndLogical, - .OpFOrdEqual => .RelationalAndLogical, - .OpFUnordEqual => .RelationalAndLogical, - .OpFOrdNotEqual => .RelationalAndLogical, - .OpFUnordNotEqual => .RelationalAndLogical, - .OpFOrdLessThan => .RelationalAndLogical, - .OpFUnordLessThan => .RelationalAndLogical, - .OpFOrdGreaterThan => .RelationalAndLogical, - .OpFUnordGreaterThan => .RelationalAndLogical, - .OpFOrdLessThanEqual => .RelationalAndLogical, - .OpFUnordLessThanEqual => .RelationalAndLogical, - .OpFOrdGreaterThanEqual => .RelationalAndLogical, - .OpFUnordGreaterThanEqual => .RelationalAndLogical, - .OpShiftRightLogical => .Bit, - .OpShiftRightArithmetic => .Bit, - .OpShiftLeftLogical => .Bit, - .OpBitwiseOr => .Bit, - .OpBitwiseXor => .Bit, - .OpBitwiseAnd => .Bit, - .OpNot => .Bit, - .OpBitFieldInsert => .Bit, - .OpBitFieldSExtract => .Bit, - .OpBitFieldUExtract => .Bit, - .OpBitReverse => .Bit, - .OpBitCount => .Bit, - .OpDPdx => .Derivative, - .OpDPdy => .Derivative, - .OpFwidth => .Derivative, - .OpDPdxFine => .Derivative, - .OpDPdyFine => .Derivative, - .OpFwidthFine => .Derivative, - .OpDPdxCoarse => .Derivative, - .OpDPdyCoarse => .Derivative, - .OpFwidthCoarse => .Derivative, - .OpEmitVertex => .Primitive, - .OpEndPrimitive => .Primitive, - .OpEmitStreamVertex => .Primitive, - .OpEndStreamPrimitive => .Primitive, - .OpControlBarrier => .Barrier, - .OpMemoryBarrier => .Barrier, - .OpAtomicLoad => .Atomic, - .OpAtomicStore => .Atomic, - .OpAtomicExchange => .Atomic, - .OpAtomicCompareExchange => .Atomic, - .OpAtomicCompareExchangeWeak => .Atomic, - .OpAtomicIIncrement => .Atomic, - .OpAtomicIDecrement => .Atomic, - .OpAtomicIAdd => .Atomic, - .OpAtomicISub => .Atomic, - .OpAtomicSMin => .Atomic, - .OpAtomicUMin => .Atomic, - .OpAtomicSMax => .Atomic, - .OpAtomicUMax => .Atomic, - .OpAtomicAnd => .Atomic, - .OpAtomicOr => .Atomic, - .OpAtomicXor => .Atomic, - .OpPhi => .ControlFlow, - .OpLoopMerge => .ControlFlow, - .OpSelectionMerge => .ControlFlow, - .OpLabel => .ControlFlow, - .OpBranch => .ControlFlow, - .OpBranchConditional => .ControlFlow, - .OpSwitch => .ControlFlow, - .OpKill => .ControlFlow, - .OpReturn => .ControlFlow, - .OpReturnValue => .ControlFlow, - .OpUnreachable => .ControlFlow, - .OpLifetimeStart => .ControlFlow, - .OpLifetimeStop => .ControlFlow, - .OpGroupAsyncCopy => .Group, - .OpGroupWaitEvents => .Group, - .OpGroupAll => .Group, - .OpGroupAny => .Group, - .OpGroupBroadcast => .Group, - .OpGroupIAdd => .Group, - .OpGroupFAdd => .Group, - .OpGroupFMin => .Group, - .OpGroupUMin => .Group, - .OpGroupSMin => .Group, - .OpGroupFMax => .Group, - .OpGroupUMax => .Group, - .OpGroupSMax => .Group, - .OpReadPipe => .Pipe, - .OpWritePipe => .Pipe, - .OpReservedReadPipe => .Pipe, - .OpReservedWritePipe => .Pipe, - .OpReserveReadPipePackets => .Pipe, - .OpReserveWritePipePackets => .Pipe, - .OpCommitReadPipe => .Pipe, - .OpCommitWritePipe => .Pipe, - .OpIsValidReserveId => .Pipe, - .OpGetNumPipePackets => .Pipe, - .OpGetMaxPipePackets => .Pipe, - .OpGroupReserveReadPipePackets => .Pipe, - .OpGroupReserveWritePipePackets => .Pipe, - .OpGroupCommitReadPipe => .Pipe, - .OpGroupCommitWritePipe => .Pipe, - .OpEnqueueMarker => .DeviceSideEnqueue, - .OpEnqueueKernel => .DeviceSideEnqueue, - .OpGetKernelNDrangeSubGroupCount => .DeviceSideEnqueue, - .OpGetKernelNDrangeMaxSubGroupSize => .DeviceSideEnqueue, - .OpGetKernelWorkGroupSize => .DeviceSideEnqueue, - .OpGetKernelPreferredWorkGroupSizeMultiple => .DeviceSideEnqueue, - .OpRetainEvent => .DeviceSideEnqueue, - .OpReleaseEvent => .DeviceSideEnqueue, - .OpCreateUserEvent => .DeviceSideEnqueue, - .OpIsValidEvent => .DeviceSideEnqueue, - .OpSetUserEventStatus => .DeviceSideEnqueue, - .OpCaptureEventProfilingInfo => .DeviceSideEnqueue, - .OpGetDefaultQueue => .DeviceSideEnqueue, - .OpBuildNDRange => .DeviceSideEnqueue, - .OpImageSparseSampleImplicitLod => .Image, - .OpImageSparseSampleExplicitLod => .Image, - .OpImageSparseSampleDrefImplicitLod => .Image, - .OpImageSparseSampleDrefExplicitLod => .Image, - .OpImageSparseSampleProjImplicitLod => .Image, - .OpImageSparseSampleProjExplicitLod => .Image, - .OpImageSparseSampleProjDrefImplicitLod => .Image, - .OpImageSparseSampleProjDrefExplicitLod => .Image, - .OpImageSparseFetch => .Image, - .OpImageSparseGather => .Image, - .OpImageSparseDrefGather => .Image, - .OpImageSparseTexelsResident => .Image, - .OpNoLine => .Debug, - .OpAtomicFlagTestAndSet => .Atomic, - .OpAtomicFlagClear => .Atomic, - .OpImageSparseRead => .Image, - .OpSizeOf => .Miscellaneous, - .OpTypePipeStorage => .TypeDeclaration, - .OpConstantPipeStorage => .Pipe, - .OpCreatePipeFromPipeStorage => .Pipe, - .OpGetKernelLocalSizeForSubgroupCount => .DeviceSideEnqueue, - .OpGetKernelMaxNumSubgroups => .DeviceSideEnqueue, - .OpTypeNamedBarrier => .TypeDeclaration, - .OpNamedBarrierInitialize => .Barrier, - .OpMemoryNamedBarrier => .Barrier, - .OpModuleProcessed => .Debug, - .OpExecutionModeId => .ModeSetting, - .OpDecorateId => .Annotation, - .OpGroupNonUniformElect => .NonUniform, - .OpGroupNonUniformAll => .NonUniform, - .OpGroupNonUniformAny => .NonUniform, - .OpGroupNonUniformAllEqual => .NonUniform, - .OpGroupNonUniformBroadcast => .NonUniform, - .OpGroupNonUniformBroadcastFirst => .NonUniform, - .OpGroupNonUniformBallot => .NonUniform, - .OpGroupNonUniformInverseBallot => .NonUniform, - .OpGroupNonUniformBallotBitExtract => .NonUniform, - .OpGroupNonUniformBallotBitCount => .NonUniform, - .OpGroupNonUniformBallotFindLSB => .NonUniform, - .OpGroupNonUniformBallotFindMSB => .NonUniform, - .OpGroupNonUniformShuffle => .NonUniform, - .OpGroupNonUniformShuffleXor => .NonUniform, - .OpGroupNonUniformShuffleUp => .NonUniform, - .OpGroupNonUniformShuffleDown => .NonUniform, - .OpGroupNonUniformIAdd => .NonUniform, - .OpGroupNonUniformFAdd => .NonUniform, - .OpGroupNonUniformIMul => .NonUniform, - .OpGroupNonUniformFMul => .NonUniform, - .OpGroupNonUniformSMin => .NonUniform, - .OpGroupNonUniformUMin => .NonUniform, - .OpGroupNonUniformFMin => .NonUniform, - .OpGroupNonUniformSMax => .NonUniform, - .OpGroupNonUniformUMax => .NonUniform, - .OpGroupNonUniformFMax => .NonUniform, - .OpGroupNonUniformBitwiseAnd => .NonUniform, - .OpGroupNonUniformBitwiseOr => .NonUniform, - .OpGroupNonUniformBitwiseXor => .NonUniform, - .OpGroupNonUniformLogicalAnd => .NonUniform, - .OpGroupNonUniformLogicalOr => .NonUniform, - .OpGroupNonUniformLogicalXor => .NonUniform, - .OpGroupNonUniformQuadBroadcast => .NonUniform, - .OpGroupNonUniformQuadSwap => .NonUniform, - .OpCopyLogical => .Composite, - .OpPtrEqual => .Memory, - .OpPtrNotEqual => .Memory, - .OpPtrDiff => .Memory, - .OpColorAttachmentReadEXT => .Image, - .OpDepthAttachmentReadEXT => .Image, - .OpStencilAttachmentReadEXT => .Image, - .OpTerminateInvocation => .ControlFlow, - .OpSubgroupBallotKHR => .Group, - .OpSubgroupFirstInvocationKHR => .Group, - .OpSubgroupAllKHR => .Group, - .OpSubgroupAnyKHR => .Group, - .OpSubgroupAllEqualKHR => .Group, - .OpGroupNonUniformRotateKHR => .Group, - .OpSubgroupReadInvocationKHR => .Group, - .OpTraceRayKHR => .Reserved, - .OpExecuteCallableKHR => .Reserved, - .OpConvertUToAccelerationStructureKHR => .Reserved, - .OpIgnoreIntersectionKHR => .Reserved, - .OpTerminateRayKHR => .Reserved, - .OpSDot => .Arithmetic, - .OpUDot => .Arithmetic, - .OpSUDot => .Arithmetic, - .OpSDotAccSat => .Arithmetic, - .OpUDotAccSat => .Arithmetic, - .OpSUDotAccSat => .Arithmetic, - .OpTypeCooperativeMatrixKHR => .TypeDeclaration, - .OpCooperativeMatrixLoadKHR => .Memory, - .OpCooperativeMatrixStoreKHR => .Memory, - .OpCooperativeMatrixMulAddKHR => .Arithmetic, - .OpCooperativeMatrixLengthKHR => .Miscellaneous, - .OpTypeRayQueryKHR => .TypeDeclaration, - .OpRayQueryInitializeKHR => .Reserved, - .OpRayQueryTerminateKHR => .Reserved, - .OpRayQueryGenerateIntersectionKHR => .Reserved, - .OpRayQueryConfirmIntersectionKHR => .Reserved, - .OpRayQueryProceedKHR => .Reserved, - .OpRayQueryGetIntersectionTypeKHR => .Reserved, - .OpImageSampleWeightedQCOM => .Image, - .OpImageBoxFilterQCOM => .Image, - .OpImageBlockMatchSSDQCOM => .Image, - .OpImageBlockMatchSADQCOM => .Image, - .OpImageBlockMatchWindowSSDQCOM => .Image, - .OpImageBlockMatchWindowSADQCOM => .Image, - .OpImageBlockMatchGatherSSDQCOM => .Image, - .OpImageBlockMatchGatherSADQCOM => .Image, - .OpGroupIAddNonUniformAMD => .Group, - .OpGroupFAddNonUniformAMD => .Group, - .OpGroupFMinNonUniformAMD => .Group, - .OpGroupUMinNonUniformAMD => .Group, - .OpGroupSMinNonUniformAMD => .Group, - .OpGroupFMaxNonUniformAMD => .Group, - .OpGroupUMaxNonUniformAMD => .Group, - .OpGroupSMaxNonUniformAMD => .Group, - .OpFragmentMaskFetchAMD => .Reserved, - .OpFragmentFetchAMD => .Reserved, - .OpReadClockKHR => .Reserved, - .OpFinalizeNodePayloadsAMDX => .Reserved, - .OpFinishWritingNodePayloadAMDX => .Reserved, - .OpInitializeNodePayloadsAMDX => .Reserved, - .OpGroupNonUniformQuadAllKHR => .NonUniform, - .OpGroupNonUniformQuadAnyKHR => .NonUniform, - .OpHitObjectRecordHitMotionNV => .Reserved, - .OpHitObjectRecordHitWithIndexMotionNV => .Reserved, - .OpHitObjectRecordMissMotionNV => .Reserved, - .OpHitObjectGetWorldToObjectNV => .Reserved, - .OpHitObjectGetObjectToWorldNV => .Reserved, - .OpHitObjectGetObjectRayDirectionNV => .Reserved, - .OpHitObjectGetObjectRayOriginNV => .Reserved, - .OpHitObjectTraceRayMotionNV => .Reserved, - .OpHitObjectGetShaderRecordBufferHandleNV => .Reserved, - .OpHitObjectGetShaderBindingTableRecordIndexNV => .Reserved, - .OpHitObjectRecordEmptyNV => .Reserved, - .OpHitObjectTraceRayNV => .Reserved, - .OpHitObjectRecordHitNV => .Reserved, - .OpHitObjectRecordHitWithIndexNV => .Reserved, - .OpHitObjectRecordMissNV => .Reserved, - .OpHitObjectExecuteShaderNV => .Reserved, - .OpHitObjectGetCurrentTimeNV => .Reserved, - .OpHitObjectGetAttributesNV => .Reserved, - .OpHitObjectGetHitKindNV => .Reserved, - .OpHitObjectGetPrimitiveIndexNV => .Reserved, - .OpHitObjectGetGeometryIndexNV => .Reserved, - .OpHitObjectGetInstanceIdNV => .Reserved, - .OpHitObjectGetInstanceCustomIndexNV => .Reserved, - .OpHitObjectGetWorldRayDirectionNV => .Reserved, - .OpHitObjectGetWorldRayOriginNV => .Reserved, - .OpHitObjectGetRayTMaxNV => .Reserved, - .OpHitObjectGetRayTMinNV => .Reserved, - .OpHitObjectIsEmptyNV => .Reserved, - .OpHitObjectIsHitNV => .Reserved, - .OpHitObjectIsMissNV => .Reserved, - .OpReorderThreadWithHitObjectNV => .Reserved, - .OpReorderThreadWithHintNV => .Reserved, - .OpTypeHitObjectNV => .TypeDeclaration, - .OpImageSampleFootprintNV => .Image, - .OpEmitMeshTasksEXT => .Reserved, - .OpSetMeshOutputsEXT => .Reserved, - .OpGroupNonUniformPartitionNV => .NonUniform, - .OpWritePackedPrimitiveIndices4x8NV => .Reserved, - .OpFetchMicroTriangleVertexPositionNV => .Reserved, - .OpFetchMicroTriangleVertexBarycentricNV => .Reserved, - .OpReportIntersectionKHR => .Reserved, - .OpIgnoreIntersectionNV => .Reserved, - .OpTerminateRayNV => .Reserved, - .OpTraceNV => .Reserved, - .OpTraceMotionNV => .Reserved, - .OpTraceRayMotionNV => .Reserved, - .OpRayQueryGetIntersectionTriangleVertexPositionsKHR => .Reserved, - .OpTypeAccelerationStructureKHR => .TypeDeclaration, - .OpExecuteCallableNV => .Reserved, - .OpTypeCooperativeMatrixNV => .TypeDeclaration, - .OpCooperativeMatrixLoadNV => .Reserved, - .OpCooperativeMatrixStoreNV => .Reserved, - .OpCooperativeMatrixMulAddNV => .Reserved, - .OpCooperativeMatrixLengthNV => .Reserved, - .OpBeginInvocationInterlockEXT => .Reserved, - .OpEndInvocationInterlockEXT => .Reserved, - .OpDemoteToHelperInvocation => .ControlFlow, - .OpIsHelperInvocationEXT => .Reserved, - .OpConvertUToImageNV => .Reserved, - .OpConvertUToSamplerNV => .Reserved, - .OpConvertImageToUNV => .Reserved, - .OpConvertSamplerToUNV => .Reserved, - .OpConvertUToSampledImageNV => .Reserved, - .OpConvertSampledImageToUNV => .Reserved, - .OpSamplerImageAddressingModeNV => .Reserved, - .OpRawAccessChainNV => .Memory, - .OpSubgroupShuffleINTEL => .Group, - .OpSubgroupShuffleDownINTEL => .Group, - .OpSubgroupShuffleUpINTEL => .Group, - .OpSubgroupShuffleXorINTEL => .Group, - .OpSubgroupBlockReadINTEL => .Group, - .OpSubgroupBlockWriteINTEL => .Group, - .OpSubgroupImageBlockReadINTEL => .Group, - .OpSubgroupImageBlockWriteINTEL => .Group, - .OpSubgroupImageMediaBlockReadINTEL => .Group, - .OpSubgroupImageMediaBlockWriteINTEL => .Group, - .OpUCountLeadingZerosINTEL => .Reserved, - .OpUCountTrailingZerosINTEL => .Reserved, - .OpAbsISubINTEL => .Reserved, - .OpAbsUSubINTEL => .Reserved, - .OpIAddSatINTEL => .Reserved, - .OpUAddSatINTEL => .Reserved, - .OpIAverageINTEL => .Reserved, - .OpUAverageINTEL => .Reserved, - .OpIAverageRoundedINTEL => .Reserved, - .OpUAverageRoundedINTEL => .Reserved, - .OpISubSatINTEL => .Reserved, - .OpUSubSatINTEL => .Reserved, - .OpIMul32x16INTEL => .Reserved, - .OpUMul32x16INTEL => .Reserved, - .OpAtomicFMinEXT => .Atomic, - .OpAtomicFMaxEXT => .Atomic, - .OpAssumeTrueKHR => .Miscellaneous, - .OpExpectKHR => .Miscellaneous, - .OpDecorateString => .Annotation, - .OpMemberDecorateString => .Annotation, - .OpLoopControlINTEL => .Reserved, - .OpReadPipeBlockingINTEL => .Pipe, - .OpWritePipeBlockingINTEL => .Pipe, - .OpFPGARegINTEL => .Reserved, - .OpRayQueryGetRayTMinKHR => .Reserved, - .OpRayQueryGetRayFlagsKHR => .Reserved, - .OpRayQueryGetIntersectionTKHR => .Reserved, - .OpRayQueryGetIntersectionInstanceCustomIndexKHR => .Reserved, - .OpRayQueryGetIntersectionInstanceIdKHR => .Reserved, - .OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR => .Reserved, - .OpRayQueryGetIntersectionGeometryIndexKHR => .Reserved, - .OpRayQueryGetIntersectionPrimitiveIndexKHR => .Reserved, - .OpRayQueryGetIntersectionBarycentricsKHR => .Reserved, - .OpRayQueryGetIntersectionFrontFaceKHR => .Reserved, - .OpRayQueryGetIntersectionCandidateAABBOpaqueKHR => .Reserved, - .OpRayQueryGetIntersectionObjectRayDirectionKHR => .Reserved, - .OpRayQueryGetIntersectionObjectRayOriginKHR => .Reserved, - .OpRayQueryGetWorldRayDirectionKHR => .Reserved, - .OpRayQueryGetWorldRayOriginKHR => .Reserved, - .OpRayQueryGetIntersectionObjectToWorldKHR => .Reserved, - .OpRayQueryGetIntersectionWorldToObjectKHR => .Reserved, - .OpAtomicFAddEXT => .Atomic, - .OpTypeBufferSurfaceINTEL => .TypeDeclaration, - .OpTypeStructContinuedINTEL => .TypeDeclaration, - .OpConstantCompositeContinuedINTEL => .ConstantCreation, - .OpSpecConstantCompositeContinuedINTEL => .ConstantCreation, - .OpCompositeConstructContinuedINTEL => .Composite, - .OpConvertFToBF16INTEL => .Conversion, - .OpConvertBF16ToFINTEL => .Conversion, - .OpControlBarrierArriveINTEL => .Barrier, - .OpControlBarrierWaitINTEL => .Barrier, - .OpGroupIMulKHR => .Group, - .OpGroupFMulKHR => .Group, - .OpGroupBitwiseAndKHR => .Group, - .OpGroupBitwiseOrKHR => .Group, - .OpGroupBitwiseXorKHR => .Group, - .OpGroupLogicalAndKHR => .Group, - .OpGroupLogicalOrKHR => .Group, - .OpGroupLogicalXorKHR => .Group, - .OpMaskedGatherINTEL => .Memory, - .OpMaskedScatterINTEL => .Memory, + .OpNop => .miscellaneous, + .OpUndef => .miscellaneous, + .OpSourceContinued => .debug, + .OpSource => .debug, + .OpSourceExtension => .debug, + .OpName => .debug, + .OpMemberName => .debug, + .OpString => .debug, + .OpLine => .debug, + .OpExtension => .extension, + .OpExtInstImport => .extension, + .OpExtInst => .extension, + .OpMemoryModel => .mode_setting, + .OpEntryPoint => .mode_setting, + .OpExecutionMode => .mode_setting, + .OpCapability => .mode_setting, + .OpTypeVoid => .type_declaration, + .OpTypeBool => .type_declaration, + .OpTypeInt => .type_declaration, + .OpTypeFloat => .type_declaration, + .OpTypeVector => .type_declaration, + .OpTypeMatrix => .type_declaration, + .OpTypeImage => .type_declaration, + .OpTypeSampler => .type_declaration, + .OpTypeSampledImage => .type_declaration, + .OpTypeArray => .type_declaration, + .OpTypeRuntimeArray => .type_declaration, + .OpTypeStruct => .type_declaration, + .OpTypeOpaque => .type_declaration, + .OpTypePointer => .type_declaration, + .OpTypeFunction => .type_declaration, + .OpTypeEvent => .type_declaration, + .OpTypeDeviceEvent => .type_declaration, + .OpTypeReserveId => .type_declaration, + .OpTypeQueue => .type_declaration, + .OpTypePipe => .type_declaration, + .OpTypeForwardPointer => .type_declaration, + .OpConstantTrue => .constant_creation, + .OpConstantFalse => .constant_creation, + .OpConstant => .constant_creation, + .OpConstantComposite => .constant_creation, + .OpConstantSampler => .constant_creation, + .OpConstantNull => .constant_creation, + .OpSpecConstantTrue => .constant_creation, + .OpSpecConstantFalse => .constant_creation, + .OpSpecConstant => .constant_creation, + .OpSpecConstantComposite => .constant_creation, + .OpSpecConstantOp => .constant_creation, + .OpFunction => .function, + .OpFunctionParameter => .function, + .OpFunctionEnd => .function, + .OpFunctionCall => .function, + .OpVariable => .memory, + .OpImageTexelPointer => .memory, + .OpLoad => .memory, + .OpStore => .memory, + .OpCopyMemory => .memory, + .OpCopyMemorySized => .memory, + .OpAccessChain => .memory, + .OpInBoundsAccessChain => .memory, + .OpPtrAccessChain => .memory, + .OpArrayLength => .memory, + .OpGenericPtrMemSemantics => .memory, + .OpInBoundsPtrAccessChain => .memory, + .OpDecorate => .annotation, + .OpMemberDecorate => .annotation, + .OpDecorationGroup => .annotation, + .OpGroupDecorate => .annotation, + .OpGroupMemberDecorate => .annotation, + .OpVectorExtractDynamic => .composite, + .OpVectorInsertDynamic => .composite, + .OpVectorShuffle => .composite, + .OpCompositeConstruct => .composite, + .OpCompositeExtract => .composite, + .OpCompositeInsert => .composite, + .OpCopyObject => .composite, + .OpTranspose => .composite, + .OpSampledImage => .image, + .OpImageSampleImplicitLod => .image, + .OpImageSampleExplicitLod => .image, + .OpImageSampleDrefImplicitLod => .image, + .OpImageSampleDrefExplicitLod => .image, + .OpImageSampleProjImplicitLod => .image, + .OpImageSampleProjExplicitLod => .image, + .OpImageSampleProjDrefImplicitLod => .image, + .OpImageSampleProjDrefExplicitLod => .image, + .OpImageFetch => .image, + .OpImageGather => .image, + .OpImageDrefGather => .image, + .OpImageRead => .image, + .OpImageWrite => .image, + .OpImage => .image, + .OpImageQueryFormat => .image, + .OpImageQueryOrder => .image, + .OpImageQuerySizeLod => .image, + .OpImageQuerySize => .image, + .OpImageQueryLod => .image, + .OpImageQueryLevels => .image, + .OpImageQuerySamples => .image, + .OpConvertFToU => .conversion, + .OpConvertFToS => .conversion, + .OpConvertSToF => .conversion, + .OpConvertUToF => .conversion, + .OpUConvert => .conversion, + .OpSConvert => .conversion, + .OpFConvert => .conversion, + .OpQuantizeToF16 => .conversion, + .OpConvertPtrToU => .conversion, + .OpSatConvertSToU => .conversion, + .OpSatConvertUToS => .conversion, + .OpConvertUToPtr => .conversion, + .OpPtrCastToGeneric => .conversion, + .OpGenericCastToPtr => .conversion, + .OpGenericCastToPtrExplicit => .conversion, + .OpBitcast => .conversion, + .OpSNegate => .arithmetic, + .OpFNegate => .arithmetic, + .OpIAdd => .arithmetic, + .OpFAdd => .arithmetic, + .OpISub => .arithmetic, + .OpFSub => .arithmetic, + .OpIMul => .arithmetic, + .OpFMul => .arithmetic, + .OpUDiv => .arithmetic, + .OpSDiv => .arithmetic, + .OpFDiv => .arithmetic, + .OpUMod => .arithmetic, + .OpSRem => .arithmetic, + .OpSMod => .arithmetic, + .OpFRem => .arithmetic, + .OpFMod => .arithmetic, + .OpVectorTimesScalar => .arithmetic, + .OpMatrixTimesScalar => .arithmetic, + .OpVectorTimesMatrix => .arithmetic, + .OpMatrixTimesVector => .arithmetic, + .OpMatrixTimesMatrix => .arithmetic, + .OpOuterProduct => .arithmetic, + .OpDot => .arithmetic, + .OpIAddCarry => .arithmetic, + .OpISubBorrow => .arithmetic, + .OpUMulExtended => .arithmetic, + .OpSMulExtended => .arithmetic, + .OpAny => .relational_and_logical, + .OpAll => .relational_and_logical, + .OpIsNan => .relational_and_logical, + .OpIsInf => .relational_and_logical, + .OpIsFinite => .relational_and_logical, + .OpIsNormal => .relational_and_logical, + .OpSignBitSet => .relational_and_logical, + .OpLessOrGreater => .relational_and_logical, + .OpOrdered => .relational_and_logical, + .OpUnordered => .relational_and_logical, + .OpLogicalEqual => .relational_and_logical, + .OpLogicalNotEqual => .relational_and_logical, + .OpLogicalOr => .relational_and_logical, + .OpLogicalAnd => .relational_and_logical, + .OpLogicalNot => .relational_and_logical, + .OpSelect => .relational_and_logical, + .OpIEqual => .relational_and_logical, + .OpINotEqual => .relational_and_logical, + .OpUGreaterThan => .relational_and_logical, + .OpSGreaterThan => .relational_and_logical, + .OpUGreaterThanEqual => .relational_and_logical, + .OpSGreaterThanEqual => .relational_and_logical, + .OpULessThan => .relational_and_logical, + .OpSLessThan => .relational_and_logical, + .OpULessThanEqual => .relational_and_logical, + .OpSLessThanEqual => .relational_and_logical, + .OpFOrdEqual => .relational_and_logical, + .OpFUnordEqual => .relational_and_logical, + .OpFOrdNotEqual => .relational_and_logical, + .OpFUnordNotEqual => .relational_and_logical, + .OpFOrdLessThan => .relational_and_logical, + .OpFUnordLessThan => .relational_and_logical, + .OpFOrdGreaterThan => .relational_and_logical, + .OpFUnordGreaterThan => .relational_and_logical, + .OpFOrdLessThanEqual => .relational_and_logical, + .OpFUnordLessThanEqual => .relational_and_logical, + .OpFOrdGreaterThanEqual => .relational_and_logical, + .OpFUnordGreaterThanEqual => .relational_and_logical, + .OpShiftRightLogical => .bit, + .OpShiftRightArithmetic => .bit, + .OpShiftLeftLogical => .bit, + .OpBitwiseOr => .bit, + .OpBitwiseXor => .bit, + .OpBitwiseAnd => .bit, + .OpNot => .bit, + .OpBitFieldInsert => .bit, + .OpBitFieldSExtract => .bit, + .OpBitFieldUExtract => .bit, + .OpBitReverse => .bit, + .OpBitCount => .bit, + .OpDPdx => .derivative, + .OpDPdy => .derivative, + .OpFwidth => .derivative, + .OpDPdxFine => .derivative, + .OpDPdyFine => .derivative, + .OpFwidthFine => .derivative, + .OpDPdxCoarse => .derivative, + .OpDPdyCoarse => .derivative, + .OpFwidthCoarse => .derivative, + .OpEmitVertex => .primitive, + .OpEndPrimitive => .primitive, + .OpEmitStreamVertex => .primitive, + .OpEndStreamPrimitive => .primitive, + .OpControlBarrier => .barrier, + .OpMemoryBarrier => .barrier, + .OpAtomicLoad => .atomic, + .OpAtomicStore => .atomic, + .OpAtomicExchange => .atomic, + .OpAtomicCompareExchange => .atomic, + .OpAtomicCompareExchangeWeak => .atomic, + .OpAtomicIIncrement => .atomic, + .OpAtomicIDecrement => .atomic, + .OpAtomicIAdd => .atomic, + .OpAtomicISub => .atomic, + .OpAtomicSMin => .atomic, + .OpAtomicUMin => .atomic, + .OpAtomicSMax => .atomic, + .OpAtomicUMax => .atomic, + .OpAtomicAnd => .atomic, + .OpAtomicOr => .atomic, + .OpAtomicXor => .atomic, + .OpPhi => .control_flow, + .OpLoopMerge => .control_flow, + .OpSelectionMerge => .control_flow, + .OpLabel => .control_flow, + .OpBranch => .control_flow, + .OpBranchConditional => .control_flow, + .OpSwitch => .control_flow, + .OpKill => .control_flow, + .OpReturn => .control_flow, + .OpReturnValue => .control_flow, + .OpUnreachable => .control_flow, + .OpLifetimeStart => .control_flow, + .OpLifetimeStop => .control_flow, + .OpGroupAsyncCopy => .group, + .OpGroupWaitEvents => .group, + .OpGroupAll => .group, + .OpGroupAny => .group, + .OpGroupBroadcast => .group, + .OpGroupIAdd => .group, + .OpGroupFAdd => .group, + .OpGroupFMin => .group, + .OpGroupUMin => .group, + .OpGroupSMin => .group, + .OpGroupFMax => .group, + .OpGroupUMax => .group, + .OpGroupSMax => .group, + .OpReadPipe => .pipe, + .OpWritePipe => .pipe, + .OpReservedReadPipe => .pipe, + .OpReservedWritePipe => .pipe, + .OpReserveReadPipePackets => .pipe, + .OpReserveWritePipePackets => .pipe, + .OpCommitReadPipe => .pipe, + .OpCommitWritePipe => .pipe, + .OpIsValidReserveId => .pipe, + .OpGetNumPipePackets => .pipe, + .OpGetMaxPipePackets => .pipe, + .OpGroupReserveReadPipePackets => .pipe, + .OpGroupReserveWritePipePackets => .pipe, + .OpGroupCommitReadPipe => .pipe, + .OpGroupCommitWritePipe => .pipe, + .OpEnqueueMarker => .device_side_enqueue, + .OpEnqueueKernel => .device_side_enqueue, + .OpGetKernelNDrangeSubGroupCount => .device_side_enqueue, + .OpGetKernelNDrangeMaxSubGroupSize => .device_side_enqueue, + .OpGetKernelWorkGroupSize => .device_side_enqueue, + .OpGetKernelPreferredWorkGroupSizeMultiple => .device_side_enqueue, + .OpRetainEvent => .device_side_enqueue, + .OpReleaseEvent => .device_side_enqueue, + .OpCreateUserEvent => .device_side_enqueue, + .OpIsValidEvent => .device_side_enqueue, + .OpSetUserEventStatus => .device_side_enqueue, + .OpCaptureEventProfilingInfo => .device_side_enqueue, + .OpGetDefaultQueue => .device_side_enqueue, + .OpBuildNDRange => .device_side_enqueue, + .OpImageSparseSampleImplicitLod => .image, + .OpImageSparseSampleExplicitLod => .image, + .OpImageSparseSampleDrefImplicitLod => .image, + .OpImageSparseSampleDrefExplicitLod => .image, + .OpImageSparseSampleProjImplicitLod => .image, + .OpImageSparseSampleProjExplicitLod => .image, + .OpImageSparseSampleProjDrefImplicitLod => .image, + .OpImageSparseSampleProjDrefExplicitLod => .image, + .OpImageSparseFetch => .image, + .OpImageSparseGather => .image, + .OpImageSparseDrefGather => .image, + .OpImageSparseTexelsResident => .image, + .OpNoLine => .debug, + .OpAtomicFlagTestAndSet => .atomic, + .OpAtomicFlagClear => .atomic, + .OpImageSparseRead => .image, + .OpSizeOf => .miscellaneous, + .OpTypePipeStorage => .type_declaration, + .OpConstantPipeStorage => .pipe, + .OpCreatePipeFromPipeStorage => .pipe, + .OpGetKernelLocalSizeForSubgroupCount => .device_side_enqueue, + .OpGetKernelMaxNumSubgroups => .device_side_enqueue, + .OpTypeNamedBarrier => .type_declaration, + .OpNamedBarrierInitialize => .barrier, + .OpMemoryNamedBarrier => .barrier, + .OpModuleProcessed => .debug, + .OpExecutionModeId => .mode_setting, + .OpDecorateId => .annotation, + .OpGroupNonUniformElect => .non_uniform, + .OpGroupNonUniformAll => .non_uniform, + .OpGroupNonUniformAny => .non_uniform, + .OpGroupNonUniformAllEqual => .non_uniform, + .OpGroupNonUniformBroadcast => .non_uniform, + .OpGroupNonUniformBroadcastFirst => .non_uniform, + .OpGroupNonUniformBallot => .non_uniform, + .OpGroupNonUniformInverseBallot => .non_uniform, + .OpGroupNonUniformBallotBitExtract => .non_uniform, + .OpGroupNonUniformBallotBitCount => .non_uniform, + .OpGroupNonUniformBallotFindLSB => .non_uniform, + .OpGroupNonUniformBallotFindMSB => .non_uniform, + .OpGroupNonUniformShuffle => .non_uniform, + .OpGroupNonUniformShuffleXor => .non_uniform, + .OpGroupNonUniformShuffleUp => .non_uniform, + .OpGroupNonUniformShuffleDown => .non_uniform, + .OpGroupNonUniformIAdd => .non_uniform, + .OpGroupNonUniformFAdd => .non_uniform, + .OpGroupNonUniformIMul => .non_uniform, + .OpGroupNonUniformFMul => .non_uniform, + .OpGroupNonUniformSMin => .non_uniform, + .OpGroupNonUniformUMin => .non_uniform, + .OpGroupNonUniformFMin => .non_uniform, + .OpGroupNonUniformSMax => .non_uniform, + .OpGroupNonUniformUMax => .non_uniform, + .OpGroupNonUniformFMax => .non_uniform, + .OpGroupNonUniformBitwiseAnd => .non_uniform, + .OpGroupNonUniformBitwiseOr => .non_uniform, + .OpGroupNonUniformBitwiseXor => .non_uniform, + .OpGroupNonUniformLogicalAnd => .non_uniform, + .OpGroupNonUniformLogicalOr => .non_uniform, + .OpGroupNonUniformLogicalXor => .non_uniform, + .OpGroupNonUniformQuadBroadcast => .non_uniform, + .OpGroupNonUniformQuadSwap => .non_uniform, + .OpCopyLogical => .composite, + .OpPtrEqual => .memory, + .OpPtrNotEqual => .memory, + .OpPtrDiff => .memory, + .OpColorAttachmentReadEXT => .image, + .OpDepthAttachmentReadEXT => .image, + .OpStencilAttachmentReadEXT => .image, + .OpTypeTensorARM => .type_declaration, + .OpTensorReadARM => .tensor, + .OpTensorWriteARM => .tensor, + .OpTensorQuerySizeARM => .tensor, + .OpGraphConstantARM => .graph, + .OpGraphEntryPointARM => .graph, + .OpGraphARM => .graph, + .OpGraphInputARM => .graph, + .OpGraphSetOutputARM => .graph, + .OpGraphEndARM => .graph, + .OpTypeGraphARM => .type_declaration, + .OpTerminateInvocation => .control_flow, + .OpTypeUntypedPointerKHR => .type_declaration, + .OpUntypedVariableKHR => .memory, + .OpUntypedAccessChainKHR => .memory, + .OpUntypedInBoundsAccessChainKHR => .memory, + .OpSubgroupBallotKHR => .group, + .OpSubgroupFirstInvocationKHR => .group, + .OpUntypedPtrAccessChainKHR => .memory, + .OpUntypedInBoundsPtrAccessChainKHR => .memory, + .OpUntypedArrayLengthKHR => .memory, + .OpUntypedPrefetchKHR => .memory, + .OpSubgroupAllKHR => .group, + .OpSubgroupAnyKHR => .group, + .OpSubgroupAllEqualKHR => .group, + .OpGroupNonUniformRotateKHR => .group, + .OpSubgroupReadInvocationKHR => .group, + .OpExtInstWithForwardRefsKHR => .extension, + .OpTraceRayKHR => .reserved, + .OpExecuteCallableKHR => .reserved, + .OpConvertUToAccelerationStructureKHR => .reserved, + .OpIgnoreIntersectionKHR => .reserved, + .OpTerminateRayKHR => .reserved, + .OpSDot => .arithmetic, + .OpUDot => .arithmetic, + .OpSUDot => .arithmetic, + .OpSDotAccSat => .arithmetic, + .OpUDotAccSat => .arithmetic, + .OpSUDotAccSat => .arithmetic, + .OpTypeCooperativeMatrixKHR => .type_declaration, + .OpCooperativeMatrixLoadKHR => .memory, + .OpCooperativeMatrixStoreKHR => .memory, + .OpCooperativeMatrixMulAddKHR => .arithmetic, + .OpCooperativeMatrixLengthKHR => .miscellaneous, + .OpConstantCompositeReplicateEXT => .constant_creation, + .OpSpecConstantCompositeReplicateEXT => .constant_creation, + .OpCompositeConstructReplicateEXT => .composite, + .OpTypeRayQueryKHR => .type_declaration, + .OpRayQueryInitializeKHR => .reserved, + .OpRayQueryTerminateKHR => .reserved, + .OpRayQueryGenerateIntersectionKHR => .reserved, + .OpRayQueryConfirmIntersectionKHR => .reserved, + .OpRayQueryProceedKHR => .reserved, + .OpRayQueryGetIntersectionTypeKHR => .reserved, + .OpImageSampleWeightedQCOM => .image, + .OpImageBoxFilterQCOM => .image, + .OpImageBlockMatchSSDQCOM => .image, + .OpImageBlockMatchSADQCOM => .image, + .OpImageBlockMatchWindowSSDQCOM => .image, + .OpImageBlockMatchWindowSADQCOM => .image, + .OpImageBlockMatchGatherSSDQCOM => .image, + .OpImageBlockMatchGatherSADQCOM => .image, + .OpGroupIAddNonUniformAMD => .group, + .OpGroupFAddNonUniformAMD => .group, + .OpGroupFMinNonUniformAMD => .group, + .OpGroupUMinNonUniformAMD => .group, + .OpGroupSMinNonUniformAMD => .group, + .OpGroupFMaxNonUniformAMD => .group, + .OpGroupUMaxNonUniformAMD => .group, + .OpGroupSMaxNonUniformAMD => .group, + .OpFragmentMaskFetchAMD => .reserved, + .OpFragmentFetchAMD => .reserved, + .OpReadClockKHR => .reserved, + .OpAllocateNodePayloadsAMDX => .reserved, + .OpEnqueueNodePayloadsAMDX => .reserved, + .OpTypeNodePayloadArrayAMDX => .reserved, + .OpFinishWritingNodePayloadAMDX => .reserved, + .OpNodePayloadArrayLengthAMDX => .reserved, + .OpIsNodePayloadValidAMDX => .reserved, + .OpConstantStringAMDX => .reserved, + .OpSpecConstantStringAMDX => .reserved, + .OpGroupNonUniformQuadAllKHR => .non_uniform, + .OpGroupNonUniformQuadAnyKHR => .non_uniform, + .OpHitObjectRecordHitMotionNV => .reserved, + .OpHitObjectRecordHitWithIndexMotionNV => .reserved, + .OpHitObjectRecordMissMotionNV => .reserved, + .OpHitObjectGetWorldToObjectNV => .reserved, + .OpHitObjectGetObjectToWorldNV => .reserved, + .OpHitObjectGetObjectRayDirectionNV => .reserved, + .OpHitObjectGetObjectRayOriginNV => .reserved, + .OpHitObjectTraceRayMotionNV => .reserved, + .OpHitObjectGetShaderRecordBufferHandleNV => .reserved, + .OpHitObjectGetShaderBindingTableRecordIndexNV => .reserved, + .OpHitObjectRecordEmptyNV => .reserved, + .OpHitObjectTraceRayNV => .reserved, + .OpHitObjectRecordHitNV => .reserved, + .OpHitObjectRecordHitWithIndexNV => .reserved, + .OpHitObjectRecordMissNV => .reserved, + .OpHitObjectExecuteShaderNV => .reserved, + .OpHitObjectGetCurrentTimeNV => .reserved, + .OpHitObjectGetAttributesNV => .reserved, + .OpHitObjectGetHitKindNV => .reserved, + .OpHitObjectGetPrimitiveIndexNV => .reserved, + .OpHitObjectGetGeometryIndexNV => .reserved, + .OpHitObjectGetInstanceIdNV => .reserved, + .OpHitObjectGetInstanceCustomIndexNV => .reserved, + .OpHitObjectGetWorldRayDirectionNV => .reserved, + .OpHitObjectGetWorldRayOriginNV => .reserved, + .OpHitObjectGetRayTMaxNV => .reserved, + .OpHitObjectGetRayTMinNV => .reserved, + .OpHitObjectIsEmptyNV => .reserved, + .OpHitObjectIsHitNV => .reserved, + .OpHitObjectIsMissNV => .reserved, + .OpReorderThreadWithHitObjectNV => .reserved, + .OpReorderThreadWithHintNV => .reserved, + .OpTypeHitObjectNV => .type_declaration, + .OpImageSampleFootprintNV => .image, + .OpTypeCooperativeVectorNV => .type_declaration, + .OpCooperativeVectorMatrixMulNV => .reserved, + .OpCooperativeVectorOuterProductAccumulateNV => .reserved, + .OpCooperativeVectorReduceSumAccumulateNV => .reserved, + .OpCooperativeVectorMatrixMulAddNV => .reserved, + .OpCooperativeMatrixConvertNV => .conversion, + .OpEmitMeshTasksEXT => .reserved, + .OpSetMeshOutputsEXT => .reserved, + .OpGroupNonUniformPartitionNV => .non_uniform, + .OpWritePackedPrimitiveIndices4x8NV => .reserved, + .OpFetchMicroTriangleVertexPositionNV => .reserved, + .OpFetchMicroTriangleVertexBarycentricNV => .reserved, + .OpCooperativeVectorLoadNV => .memory, + .OpCooperativeVectorStoreNV => .memory, + .OpReportIntersectionKHR => .reserved, + .OpIgnoreIntersectionNV => .reserved, + .OpTerminateRayNV => .reserved, + .OpTraceNV => .reserved, + .OpTraceMotionNV => .reserved, + .OpTraceRayMotionNV => .reserved, + .OpRayQueryGetIntersectionTriangleVertexPositionsKHR => .reserved, + .OpTypeAccelerationStructureKHR => .type_declaration, + .OpExecuteCallableNV => .reserved, + .OpRayQueryGetClusterIdNV => .reserved, + .OpHitObjectGetClusterIdNV => .reserved, + .OpTypeCooperativeMatrixNV => .type_declaration, + .OpCooperativeMatrixLoadNV => .reserved, + .OpCooperativeMatrixStoreNV => .reserved, + .OpCooperativeMatrixMulAddNV => .reserved, + .OpCooperativeMatrixLengthNV => .reserved, + .OpBeginInvocationInterlockEXT => .reserved, + .OpEndInvocationInterlockEXT => .reserved, + .OpCooperativeMatrixReduceNV => .arithmetic, + .OpCooperativeMatrixLoadTensorNV => .memory, + .OpCooperativeMatrixStoreTensorNV => .memory, + .OpCooperativeMatrixPerElementOpNV => .function, + .OpTypeTensorLayoutNV => .type_declaration, + .OpTypeTensorViewNV => .type_declaration, + .OpCreateTensorLayoutNV => .reserved, + .OpTensorLayoutSetDimensionNV => .reserved, + .OpTensorLayoutSetStrideNV => .reserved, + .OpTensorLayoutSliceNV => .reserved, + .OpTensorLayoutSetClampValueNV => .reserved, + .OpCreateTensorViewNV => .reserved, + .OpTensorViewSetDimensionNV => .reserved, + .OpTensorViewSetStrideNV => .reserved, + .OpDemoteToHelperInvocation => .control_flow, + .OpIsHelperInvocationEXT => .reserved, + .OpTensorViewSetClipNV => .reserved, + .OpTensorLayoutSetBlockSizeNV => .reserved, + .OpCooperativeMatrixTransposeNV => .conversion, + .OpConvertUToImageNV => .reserved, + .OpConvertUToSamplerNV => .reserved, + .OpConvertImageToUNV => .reserved, + .OpConvertSamplerToUNV => .reserved, + .OpConvertUToSampledImageNV => .reserved, + .OpConvertSampledImageToUNV => .reserved, + .OpSamplerImageAddressingModeNV => .reserved, + .OpRawAccessChainNV => .memory, + .OpRayQueryGetIntersectionSpherePositionNV => .reserved, + .OpRayQueryGetIntersectionSphereRadiusNV => .reserved, + .OpRayQueryGetIntersectionLSSPositionsNV => .reserved, + .OpRayQueryGetIntersectionLSSRadiiNV => .reserved, + .OpRayQueryGetIntersectionLSSHitValueNV => .reserved, + .OpHitObjectGetSpherePositionNV => .reserved, + .OpHitObjectGetSphereRadiusNV => .reserved, + .OpHitObjectGetLSSPositionsNV => .reserved, + .OpHitObjectGetLSSRadiiNV => .reserved, + .OpHitObjectIsSphereHitNV => .reserved, + .OpHitObjectIsLSSHitNV => .reserved, + .OpRayQueryIsSphereHitNV => .reserved, + .OpRayQueryIsLSSHitNV => .reserved, + .OpSubgroupShuffleINTEL => .group, + .OpSubgroupShuffleDownINTEL => .group, + .OpSubgroupShuffleUpINTEL => .group, + .OpSubgroupShuffleXorINTEL => .group, + .OpSubgroupBlockReadINTEL => .group, + .OpSubgroupBlockWriteINTEL => .group, + .OpSubgroupImageBlockReadINTEL => .group, + .OpSubgroupImageBlockWriteINTEL => .group, + .OpSubgroupImageMediaBlockReadINTEL => .group, + .OpSubgroupImageMediaBlockWriteINTEL => .group, + .OpUCountLeadingZerosINTEL => .reserved, + .OpUCountTrailingZerosINTEL => .reserved, + .OpAbsISubINTEL => .reserved, + .OpAbsUSubINTEL => .reserved, + .OpIAddSatINTEL => .reserved, + .OpUAddSatINTEL => .reserved, + .OpIAverageINTEL => .reserved, + .OpUAverageINTEL => .reserved, + .OpIAverageRoundedINTEL => .reserved, + .OpUAverageRoundedINTEL => .reserved, + .OpISubSatINTEL => .reserved, + .OpUSubSatINTEL => .reserved, + .OpIMul32x16INTEL => .reserved, + .OpUMul32x16INTEL => .reserved, + .OpAtomicFMinEXT => .atomic, + .OpAtomicFMaxEXT => .atomic, + .OpAssumeTrueKHR => .miscellaneous, + .OpExpectKHR => .miscellaneous, + .OpDecorateString => .annotation, + .OpMemberDecorateString => .annotation, + .OpLoopControlINTEL => .reserved, + .OpReadPipeBlockingINTEL => .pipe, + .OpWritePipeBlockingINTEL => .pipe, + .OpFPGARegINTEL => .reserved, + .OpRayQueryGetRayTMinKHR => .reserved, + .OpRayQueryGetRayFlagsKHR => .reserved, + .OpRayQueryGetIntersectionTKHR => .reserved, + .OpRayQueryGetIntersectionInstanceCustomIndexKHR => .reserved, + .OpRayQueryGetIntersectionInstanceIdKHR => .reserved, + .OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR => .reserved, + .OpRayQueryGetIntersectionGeometryIndexKHR => .reserved, + .OpRayQueryGetIntersectionPrimitiveIndexKHR => .reserved, + .OpRayQueryGetIntersectionBarycentricsKHR => .reserved, + .OpRayQueryGetIntersectionFrontFaceKHR => .reserved, + .OpRayQueryGetIntersectionCandidateAABBOpaqueKHR => .reserved, + .OpRayQueryGetIntersectionObjectRayDirectionKHR => .reserved, + .OpRayQueryGetIntersectionObjectRayOriginKHR => .reserved, + .OpRayQueryGetWorldRayDirectionKHR => .reserved, + .OpRayQueryGetWorldRayOriginKHR => .reserved, + .OpRayQueryGetIntersectionObjectToWorldKHR => .reserved, + .OpRayQueryGetIntersectionWorldToObjectKHR => .reserved, + .OpAtomicFAddEXT => .atomic, + .OpTypeBufferSurfaceINTEL => .type_declaration, + .OpTypeStructContinuedINTEL => .type_declaration, + .OpConstantCompositeContinuedINTEL => .constant_creation, + .OpSpecConstantCompositeContinuedINTEL => .constant_creation, + .OpCompositeConstructContinuedINTEL => .composite, + .OpConvertFToBF16INTEL => .conversion, + .OpConvertBF16ToFINTEL => .conversion, + .OpControlBarrierArriveINTEL => .barrier, + .OpControlBarrierWaitINTEL => .barrier, + .OpArithmeticFenceEXT => .miscellaneous, + .OpTaskSequenceCreateINTEL => .reserved, + .OpTaskSequenceAsyncINTEL => .reserved, + .OpTaskSequenceGetINTEL => .reserved, + .OpTaskSequenceReleaseINTEL => .reserved, + .OpTypeTaskSequenceINTEL => .type_declaration, + .OpSubgroupBlockPrefetchINTEL => .group, + .OpSubgroup2DBlockLoadINTEL => .group, + .OpSubgroup2DBlockLoadTransformINTEL => .group, + .OpSubgroup2DBlockLoadTransposeINTEL => .group, + .OpSubgroup2DBlockPrefetchINTEL => .group, + .OpSubgroup2DBlockStoreINTEL => .group, + .OpSubgroupMatrixMultiplyAccumulateINTEL => .group, + .OpBitwiseFunctionINTEL => .bit, + .OpGroupIMulKHR => .group, + .OpGroupFMulKHR => .group, + .OpGroupBitwiseAndKHR => .group, + .OpGroupBitwiseOrKHR => .group, + .OpGroupBitwiseXorKHR => .group, + .OpGroupLogicalAndKHR => .group, + .OpGroupLogicalOrKHR => .group, + .OpGroupLogicalXorKHR => .group, + .OpRoundFToTF32INTEL => .conversion, + .OpMaskedGatherINTEL => .memory, + .OpMaskedScatterINTEL => .memory, + .OpConvertHandleToImageINTEL => .image, + .OpConvertHandleToSamplerINTEL => .image, + .OpConvertHandleToSampledImageINTEL => .image, }; } }; pub const ImageOperands = packed struct { - Bias: bool = false, - Lod: bool = false, - Grad: bool = false, - ConstOffset: bool = false, - Offset: bool = false, - ConstOffsets: bool = false, - Sample: bool = false, - MinLod: bool = false, - MakeTexelAvailable: bool = false, - MakeTexelVisible: bool = false, - NonPrivateTexel: bool = false, - VolatileTexel: bool = false, - SignExtend: bool = false, - ZeroExtend: bool = false, - Nontemporal: bool = false, + bias: bool = false, + lod: bool = false, + grad: bool = false, + const_offset: bool = false, + offset: bool = false, + const_offsets: bool = false, + sample: bool = false, + min_lod: bool = false, + make_texel_available: bool = false, + make_texel_visible: bool = false, + non_private_texel: bool = false, + volatile_texel: bool = false, + sign_extend: bool = false, + zero_extend: bool = false, + nontemporal: bool = false, _reserved_bit_15: bool = false, - Offsets: bool = false, + offsets: bool = false, _reserved_bit_17: bool = false, _reserved_bit_18: bool = false, _reserved_bit_19: bool = false, @@ -3251,29 +3557,24 @@ pub const ImageOperands = packed struct { _reserved_bit_30: bool = false, _reserved_bit_31: bool = false, - pub const MakeTexelAvailableKHR: ImageOperands = .{ .MakeTexelAvailable = true }; - pub const MakeTexelVisibleKHR: ImageOperands = .{ .MakeTexelVisible = true }; - pub const NonPrivateTexelKHR: ImageOperands = .{ .NonPrivateTexel = true }; - pub const VolatileTexelKHR: ImageOperands = .{ .VolatileTexel = true }; - pub const Extended = struct { - Bias: ?struct { id_ref: IdRef } = null, - Lod: ?struct { id_ref: IdRef } = null, - Grad: ?struct { id_ref_0: IdRef, id_ref_1: IdRef } = null, - ConstOffset: ?struct { id_ref: IdRef } = null, - Offset: ?struct { id_ref: IdRef } = null, - ConstOffsets: ?struct { id_ref: IdRef } = null, - Sample: ?struct { id_ref: IdRef } = null, - MinLod: ?struct { id_ref: IdRef } = null, - MakeTexelAvailable: ?struct { id_scope: IdScope } = null, - MakeTexelVisible: ?struct { id_scope: IdScope } = null, - NonPrivateTexel: bool = false, - VolatileTexel: bool = false, - SignExtend: bool = false, - ZeroExtend: bool = false, - Nontemporal: bool = false, + bias: ?struct { id_ref: Id } = null, + lod: ?struct { id_ref: Id } = null, + grad: ?struct { id_ref_0: Id, id_ref_1: Id } = null, + const_offset: ?struct { id_ref: Id } = null, + offset: ?struct { id_ref: Id } = null, + const_offsets: ?struct { id_ref: Id } = null, + sample: ?struct { id_ref: Id } = null, + min_lod: ?struct { id_ref: Id } = null, + make_texel_available: ?struct { id_scope: Id } = null, + make_texel_visible: ?struct { id_scope: Id } = null, + non_private_texel: bool = false, + volatile_texel: bool = false, + sign_extend: bool = false, + zero_extend: bool = false, + nontemporal: bool = false, _reserved_bit_15: bool = false, - Offsets: ?struct { id_ref: IdRef } = null, + offsets: ?struct { id_ref: Id } = null, _reserved_bit_17: bool = false, _reserved_bit_18: bool = false, _reserved_bit_19: bool = false, @@ -3292,11 +3593,11 @@ pub const ImageOperands = packed struct { }; }; pub const FPFastMathMode = packed struct { - NotNaN: bool = false, - NotInf: bool = false, - NSZ: bool = false, - AllowRecip: bool = false, - Fast: bool = false, + not_na_n: bool = false, + not_inf: bool = false, + nsz: bool = false, + allow_recip: bool = false, + fast: bool = false, _reserved_bit_5: bool = false, _reserved_bit_6: bool = false, _reserved_bit_7: bool = false, @@ -3308,9 +3609,9 @@ pub const FPFastMathMode = packed struct { _reserved_bit_13: bool = false, _reserved_bit_14: bool = false, _reserved_bit_15: bool = false, - AllowContract: bool = false, - AllowReassoc: bool = false, - AllowTransform: bool = false, + allow_contract: bool = false, + allow_reassoc: bool = false, + allow_transform: bool = false, _reserved_bit_19: bool = false, _reserved_bit_20: bool = false, _reserved_bit_21: bool = false, @@ -3324,13 +3625,10 @@ pub const FPFastMathMode = packed struct { _reserved_bit_29: bool = false, _reserved_bit_30: bool = false, _reserved_bit_31: bool = false, - - pub const AllowContractFastINTEL: FPFastMathMode = .{ .AllowContract = true }; - pub const AllowReassocINTEL: FPFastMathMode = .{ .AllowReassoc = true }; }; pub const SelectionControl = packed struct { - Flatten: bool = false, - DontFlatten: bool = false, + flatten: bool = false, + dont_flatten: bool = false, _reserved_bit_2: bool = false, _reserved_bit_3: bool = false, _reserved_bit_4: bool = false, @@ -3363,15 +3661,15 @@ pub const SelectionControl = packed struct { _reserved_bit_31: bool = false, }; pub const LoopControl = packed struct { - Unroll: bool = false, - DontUnroll: bool = false, - DependencyInfinite: bool = false, - DependencyLength: bool = false, - MinIterations: bool = false, - MaxIterations: bool = false, - IterationMultiple: bool = false, - PeelCount: bool = false, - PartialCount: bool = false, + unroll: bool = false, + dont_unroll: bool = false, + dependency_infinite: bool = false, + dependency_length: bool = false, + min_iterations: bool = false, + max_iterations: bool = false, + iteration_multiple: bool = false, + peel_count: bool = false, + partial_count: bool = false, _reserved_bit_9: bool = false, _reserved_bit_10: bool = false, _reserved_bit_11: bool = false, @@ -3379,16 +3677,16 @@ pub const LoopControl = packed struct { _reserved_bit_13: bool = false, _reserved_bit_14: bool = false, _reserved_bit_15: bool = false, - InitiationIntervalINTEL: bool = false, - MaxConcurrencyINTEL: bool = false, - DependencyArrayINTEL: bool = false, - PipelineEnableINTEL: bool = false, - LoopCoalesceINTEL: bool = false, - MaxInterleavingINTEL: bool = false, - SpeculatedIterationsINTEL: bool = false, - NoFusionINTEL: bool = false, - LoopCountINTEL: bool = false, - MaxReinvocationDelayINTEL: 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, _reserved_bit_26: bool = false, _reserved_bit_27: bool = false, _reserved_bit_28: bool = false, @@ -3397,15 +3695,15 @@ pub const LoopControl = packed struct { _reserved_bit_31: bool = false, pub const Extended = struct { - Unroll: bool = false, - DontUnroll: bool = false, - DependencyInfinite: bool = false, - DependencyLength: ?struct { literal_integer: LiteralInteger } = null, - MinIterations: ?struct { literal_integer: LiteralInteger } = null, - MaxIterations: ?struct { literal_integer: LiteralInteger } = null, - IterationMultiple: ?struct { literal_integer: LiteralInteger } = null, - PeelCount: ?struct { literal_integer: LiteralInteger } = null, - PartialCount: ?struct { literal_integer: LiteralInteger } = null, + unroll: bool = false, + dont_unroll: bool = false, + dependency_infinite: bool = false, + dependency_length: ?struct { literal_integer: LiteralInteger } = null, + min_iterations: ?struct { literal_integer: LiteralInteger } = null, + max_iterations: ?struct { literal_integer: LiteralInteger } = null, + iteration_multiple: ?struct { literal_integer: LiteralInteger } = null, + peel_count: ?struct { literal_integer: LiteralInteger } = null, + partial_count: ?struct { literal_integer: LiteralInteger } = null, _reserved_bit_9: bool = false, _reserved_bit_10: bool = false, _reserved_bit_11: bool = false, @@ -3413,16 +3711,16 @@ pub const LoopControl = packed struct { _reserved_bit_13: bool = false, _reserved_bit_14: bool = false, _reserved_bit_15: bool = false, - InitiationIntervalINTEL: ?struct { literal_integer: LiteralInteger } = null, - MaxConcurrencyINTEL: ?struct { literal_integer: LiteralInteger } = null, - DependencyArrayINTEL: ?struct { literal_integer: LiteralInteger } = null, - PipelineEnableINTEL: ?struct { literal_integer: LiteralInteger } = null, - LoopCoalesceINTEL: ?struct { literal_integer: LiteralInteger } = null, - MaxInterleavingINTEL: ?struct { literal_integer: LiteralInteger } = null, - SpeculatedIterationsINTEL: ?struct { literal_integer: LiteralInteger } = null, - NoFusionINTEL: bool = false, - LoopCountINTEL: ?struct { literal_integer: LiteralInteger } = null, - MaxReinvocationDelayINTEL: ?struct { literal_integer: LiteralInteger } = null, + 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, _reserved_bit_26: bool = false, _reserved_bit_27: bool = false, _reserved_bit_28: bool = false, @@ -3432,10 +3730,10 @@ pub const LoopControl = packed struct { }; }; pub const FunctionControl = packed struct { - Inline: bool = false, - DontInline: bool = false, - Pure: bool = false, - Const: bool = false, + @"inline": bool = false, + dont_inline: bool = false, + pure: bool = false, + @"const": bool = false, _reserved_bit_4: bool = false, _reserved_bit_5: bool = false, _reserved_bit_6: bool = false, @@ -3448,7 +3746,7 @@ pub const FunctionControl = packed struct { _reserved_bit_13: bool = false, _reserved_bit_14: bool = false, _reserved_bit_15: bool = false, - OptNoneINTEL: bool = false, + opt_none_ext: bool = false, _reserved_bit_17: bool = false, _reserved_bit_18: bool = false, _reserved_bit_19: bool = false, @@ -3467,21 +3765,21 @@ pub const FunctionControl = packed struct { }; pub const MemorySemantics = packed struct { _reserved_bit_0: bool = false, - Acquire: bool = false, - Release: bool = false, - AcquireRelease: bool = false, - SequentiallyConsistent: bool = false, + acquire: bool = false, + release: bool = false, + acquire_release: bool = false, + sequentially_consistent: bool = false, _reserved_bit_5: bool = false, - UniformMemory: bool = false, - SubgroupMemory: bool = false, - WorkgroupMemory: bool = false, - CrossWorkgroupMemory: bool = false, - AtomicCounterMemory: bool = false, - ImageMemory: bool = false, - OutputMemory: bool = false, - MakeAvailable: bool = false, - MakeVisible: bool = false, - Volatile: bool = false, + uniform_memory: bool = false, + subgroup_memory: bool = false, + workgroup_memory: bool = false, + cross_workgroup_memory: bool = false, + atomic_counter_memory: bool = false, + image_memory: bool = false, + output_memory: bool = false, + make_available: bool = false, + make_visible: bool = false, + @"volatile": bool = false, _reserved_bit_16: bool = false, _reserved_bit_17: bool = false, _reserved_bit_18: bool = false, @@ -3498,18 +3796,14 @@ pub const MemorySemantics = packed struct { _reserved_bit_29: bool = false, _reserved_bit_30: bool = false, _reserved_bit_31: bool = false, - - pub const OutputMemoryKHR: MemorySemantics = .{ .OutputMemory = true }; - pub const MakeAvailableKHR: MemorySemantics = .{ .MakeAvailable = true }; - pub const MakeVisibleKHR: MemorySemantics = .{ .MakeVisible = true }; }; pub const MemoryAccess = packed struct { - Volatile: bool = false, - Aligned: bool = false, - Nontemporal: bool = false, - MakePointerAvailable: bool = false, - MakePointerVisible: bool = false, - NonPrivatePointer: bool = false, + @"volatile": bool = false, + aligned: bool = false, + nontemporal: bool = false, + make_pointer_available: bool = false, + make_pointer_visible: bool = false, + non_private_pointer: bool = false, _reserved_bit_6: bool = false, _reserved_bit_7: bool = false, _reserved_bit_8: bool = false, @@ -3520,8 +3814,8 @@ pub const MemoryAccess = packed struct { _reserved_bit_13: bool = false, _reserved_bit_14: bool = false, _reserved_bit_15: bool = false, - AliasScopeINTELMask: bool = false, - NoAliasINTELMask: bool = false, + alias_scope_intel_mask: bool = false, + no_alias_intel_mask: bool = false, _reserved_bit_18: bool = false, _reserved_bit_19: bool = false, _reserved_bit_20: bool = false, @@ -3537,17 +3831,13 @@ pub const MemoryAccess = packed struct { _reserved_bit_30: bool = false, _reserved_bit_31: bool = false, - pub const MakePointerAvailableKHR: MemoryAccess = .{ .MakePointerAvailable = true }; - pub const MakePointerVisibleKHR: MemoryAccess = .{ .MakePointerVisible = true }; - pub const NonPrivatePointerKHR: MemoryAccess = .{ .NonPrivatePointer = true }; - pub const Extended = struct { - Volatile: bool = false, - Aligned: ?struct { literal_integer: LiteralInteger } = null, - Nontemporal: bool = false, - MakePointerAvailable: ?struct { id_scope: IdScope } = null, - MakePointerVisible: ?struct { id_scope: IdScope } = null, - NonPrivatePointer: bool = false, + @"volatile": bool = false, + aligned: ?struct { literal_integer: LiteralInteger } = null, + nontemporal: bool = false, + make_pointer_available: ?struct { id_scope: Id } = null, + make_pointer_visible: ?struct { id_scope: Id } = null, + non_private_pointer: bool = false, _reserved_bit_6: bool = false, _reserved_bit_7: bool = false, _reserved_bit_8: bool = false, @@ -3558,8 +3848,8 @@ pub const MemoryAccess = packed struct { _reserved_bit_13: bool = false, _reserved_bit_14: bool = false, _reserved_bit_15: bool = false, - AliasScopeINTELMask: ?struct { id_ref: IdRef } = null, - NoAliasINTELMask: ?struct { id_ref: IdRef } = null, + alias_scope_intel_mask: ?struct { id_ref: Id } = null, + no_alias_intel_mask: ?struct { id_ref: Id } = null, _reserved_bit_18: bool = false, _reserved_bit_19: bool = false, _reserved_bit_20: bool = false, @@ -3577,7 +3867,7 @@ pub const MemoryAccess = packed struct { }; }; pub const KernelProfilingInfo = packed struct { - CmdExecTime: bool = false, + cmd_exec_time: bool = false, _reserved_bit_1: bool = false, _reserved_bit_2: bool = false, _reserved_bit_3: bool = false, @@ -3611,17 +3901,17 @@ pub const KernelProfilingInfo = packed struct { _reserved_bit_31: bool = false, }; pub const RayFlags = packed struct { - OpaqueKHR: bool = false, - NoOpaqueKHR: bool = false, - TerminateOnFirstHitKHR: bool = false, - SkipClosestHitShaderKHR: bool = false, - CullBackFacingTrianglesKHR: bool = false, - CullFrontFacingTrianglesKHR: bool = false, - CullOpaqueKHR: bool = false, - CullNoOpaqueKHR: bool = false, - SkipTrianglesKHR: bool = false, - SkipAABBsKHR: bool = false, - ForceOpacityMicromap2StateEXT: bool = false, + opaque_khr: bool = false, + no_opaque_khr: bool = false, + terminate_on_first_hit_khr: bool = false, + skip_closest_hit_shader_khr: bool = false, + cull_back_facing_triangles_khr: bool = false, + cull_front_facing_triangles_khr: bool = false, + cull_opaque_khr: bool = false, + cull_no_opaque_khr: bool = false, + skip_triangles_khr: bool = false, + skip_aab_bs_khr: bool = false, + force_opacity_micromap2state_ext: bool = false, _reserved_bit_11: bool = false, _reserved_bit_12: bool = false, _reserved_bit_13: bool = false, @@ -3645,10 +3935,10 @@ pub const RayFlags = packed struct { _reserved_bit_31: bool = false, }; pub const FragmentShadingRate = packed struct { - Vertical2Pixels: bool = false, - Vertical4Pixels: bool = false, - Horizontal2Pixels: bool = false, - Horizontal4Pixels: bool = false, + vertical2pixels: bool = false, + vertical4pixels: bool = false, + horizontal2pixels: bool = false, + horizontal4pixels: bool = false, _reserved_bit_4: bool = false, _reserved_bit_5: bool = false, _reserved_bit_6: bool = false, @@ -3679,8 +3969,8 @@ pub const FragmentShadingRate = packed struct { _reserved_bit_31: bool = false, }; pub const RawAccessChainOperands = packed struct { - RobustnessPerComponentNV: bool = false, - RobustnessPerElementNV: bool = false, + robustness_per_component_nv: bool = false, + robustness_per_element_nv: bool = false, _reserved_bit_2: bool = false, _reserved_bit_3: bool = false, _reserved_bit_4: bool = false, @@ -3713,1199 +4003,1187 @@ pub const RawAccessChainOperands = packed struct { _reserved_bit_31: bool = false, }; pub const SourceLanguage = enum(u32) { - Unknown = 0, - ESSL = 1, - GLSL = 2, - OpenCL_C = 3, - OpenCL_CPP = 4, - HLSL = 5, - CPP_for_OpenCL = 6, - SYCL = 7, - HERO_C = 8, - NZSL = 9, - WGSL = 10, - Slang = 11, - Zig = 12, + unknown = 0, + essl = 1, + glsl = 2, + open_cl_c = 3, + open_cl_cpp = 4, + hlsl = 5, + cpp_for_open_cl = 6, + sycl = 7, + hero_c = 8, + nzsl = 9, + wgsl = 10, + slang = 11, + zig = 12, + rust = 13, }; pub const ExecutionModel = enum(u32) { - Vertex = 0, - TessellationControl = 1, - TessellationEvaluation = 2, - Geometry = 3, - Fragment = 4, - GLCompute = 5, - Kernel = 6, - TaskNV = 5267, - MeshNV = 5268, - RayGenerationKHR = 5313, - IntersectionKHR = 5314, - AnyHitKHR = 5315, - ClosestHitKHR = 5316, - MissKHR = 5317, - CallableKHR = 5318, - TaskEXT = 5364, - MeshEXT = 5365, - - pub const RayGenerationNV = ExecutionModel.RayGenerationKHR; - pub const IntersectionNV = ExecutionModel.IntersectionKHR; - pub const AnyHitNV = ExecutionModel.AnyHitKHR; - pub const ClosestHitNV = ExecutionModel.ClosestHitKHR; - pub const MissNV = ExecutionModel.MissKHR; - pub const CallableNV = ExecutionModel.CallableKHR; + vertex = 0, + tessellation_control = 1, + tessellation_evaluation = 2, + geometry = 3, + fragment = 4, + gl_compute = 5, + kernel = 6, + task_nv = 5267, + mesh_nv = 5268, + ray_generation_khr = 5313, + intersection_khr = 5314, + any_hit_khr = 5315, + closest_hit_khr = 5316, + miss_khr = 5317, + callable_khr = 5318, + task_ext = 5364, + mesh_ext = 5365, }; pub const AddressingModel = enum(u32) { - Logical = 0, - Physical32 = 1, - Physical64 = 2, - PhysicalStorageBuffer64 = 5348, - - pub const PhysicalStorageBuffer64EXT = AddressingModel.PhysicalStorageBuffer64; + logical = 0, + physical32 = 1, + physical64 = 2, + physical_storage_buffer64 = 5348, }; pub const MemoryModel = enum(u32) { - Simple = 0, - GLSL450 = 1, - OpenCL = 2, - Vulkan = 3, - - pub const VulkanKHR = MemoryModel.Vulkan; + simple = 0, + glsl450 = 1, + open_cl = 2, + vulkan = 3, }; pub const ExecutionMode = enum(u32) { - Invocations = 0, - SpacingEqual = 1, - SpacingFractionalEven = 2, - SpacingFractionalOdd = 3, - VertexOrderCw = 4, - VertexOrderCcw = 5, - PixelCenterInteger = 6, - OriginUpperLeft = 7, - OriginLowerLeft = 8, - EarlyFragmentTests = 9, - PointMode = 10, - Xfb = 11, - DepthReplacing = 12, - DepthGreater = 14, - DepthLess = 15, - DepthUnchanged = 16, - LocalSize = 17, - LocalSizeHint = 18, - InputPoints = 19, - InputLines = 20, - InputLinesAdjacency = 21, - Triangles = 22, - InputTrianglesAdjacency = 23, - Quads = 24, - Isolines = 25, - OutputVertices = 26, - OutputPoints = 27, - OutputLineStrip = 28, - OutputTriangleStrip = 29, - VecTypeHint = 30, - ContractionOff = 31, - Initializer = 33, - Finalizer = 34, - SubgroupSize = 35, - SubgroupsPerWorkgroup = 36, - SubgroupsPerWorkgroupId = 37, - LocalSizeId = 38, - LocalSizeHintId = 39, - NonCoherentColorAttachmentReadEXT = 4169, - NonCoherentDepthAttachmentReadEXT = 4170, - NonCoherentStencilAttachmentReadEXT = 4171, - SubgroupUniformControlFlowKHR = 4421, - PostDepthCoverage = 4446, - DenormPreserve = 4459, - DenormFlushToZero = 4460, - SignedZeroInfNanPreserve = 4461, - RoundingModeRTE = 4462, - RoundingModeRTZ = 4463, - EarlyAndLateFragmentTestsAMD = 5017, - StencilRefReplacingEXT = 5027, - CoalescingAMDX = 5069, - MaxNodeRecursionAMDX = 5071, - StaticNumWorkgroupsAMDX = 5072, - ShaderIndexAMDX = 5073, - MaxNumWorkgroupsAMDX = 5077, - StencilRefUnchangedFrontAMD = 5079, - StencilRefGreaterFrontAMD = 5080, - StencilRefLessFrontAMD = 5081, - StencilRefUnchangedBackAMD = 5082, - StencilRefGreaterBackAMD = 5083, - StencilRefLessBackAMD = 5084, - QuadDerivativesKHR = 5088, - RequireFullQuadsKHR = 5089, - OutputLinesEXT = 5269, - OutputPrimitivesEXT = 5270, - DerivativeGroupQuadsNV = 5289, - DerivativeGroupLinearNV = 5290, - OutputTrianglesEXT = 5298, - PixelInterlockOrderedEXT = 5366, - PixelInterlockUnorderedEXT = 5367, - SampleInterlockOrderedEXT = 5368, - SampleInterlockUnorderedEXT = 5369, - ShadingRateInterlockOrderedEXT = 5370, - ShadingRateInterlockUnorderedEXT = 5371, - SharedLocalMemorySizeINTEL = 5618, - RoundingModeRTPINTEL = 5620, - RoundingModeRTNINTEL = 5621, - FloatingPointModeALTINTEL = 5622, - FloatingPointModeIEEEINTEL = 5623, - MaxWorkgroupSizeINTEL = 5893, - MaxWorkDimINTEL = 5894, - NoGlobalOffsetINTEL = 5895, - NumSIMDWorkitemsINTEL = 5896, - SchedulerTargetFmaxMhzINTEL = 5903, - MaximallyReconvergesKHR = 6023, - FPFastMathDefault = 6028, - StreamingInterfaceINTEL = 6154, - RegisterMapInterfaceINTEL = 6160, - NamedBarrierCountINTEL = 6417, - MaximumRegistersINTEL = 6461, - MaximumRegistersIdINTEL = 6462, - NamedMaximumRegistersINTEL = 6463, - - pub const OutputLinesNV = ExecutionMode.OutputLinesEXT; - pub const OutputPrimitivesNV = ExecutionMode.OutputPrimitivesEXT; - pub const OutputTrianglesNV = ExecutionMode.OutputTrianglesEXT; + invocations = 0, + spacing_equal = 1, + spacing_fractional_even = 2, + spacing_fractional_odd = 3, + vertex_order_cw = 4, + vertex_order_ccw = 5, + pixel_center_integer = 6, + origin_upper_left = 7, + origin_lower_left = 8, + early_fragment_tests = 9, + point_mode = 10, + xfb = 11, + depth_replacing = 12, + depth_greater = 14, + depth_less = 15, + depth_unchanged = 16, + local_size = 17, + local_size_hint = 18, + input_points = 19, + input_lines = 20, + input_lines_adjacency = 21, + triangles = 22, + input_triangles_adjacency = 23, + quads = 24, + isolines = 25, + output_vertices = 26, + output_points = 27, + output_line_strip = 28, + output_triangle_strip = 29, + vec_type_hint = 30, + contraction_off = 31, + initializer = 33, + finalizer = 34, + subgroup_size = 35, + subgroups_per_workgroup = 36, + subgroups_per_workgroup_id = 37, + local_size_id = 38, + local_size_hint_id = 39, + non_coherent_color_attachment_read_ext = 4169, + non_coherent_depth_attachment_read_ext = 4170, + non_coherent_stencil_attachment_read_ext = 4171, + subgroup_uniform_control_flow_khr = 4421, + post_depth_coverage = 4446, + denorm_preserve = 4459, + denorm_flush_to_zero = 4460, + signed_zero_inf_nan_preserve = 4461, + rounding_mode_rte = 4462, + rounding_mode_rtz = 4463, + non_coherent_tile_attachment_read_qcom = 4489, + tile_shading_rate_qcom = 4490, + early_and_late_fragment_tests_amd = 5017, + stencil_ref_replacing_ext = 5027, + coalescing_amdx = 5069, + is_api_entry_amdx = 5070, + max_node_recursion_amdx = 5071, + static_num_workgroups_amdx = 5072, + shader_index_amdx = 5073, + max_num_workgroups_amdx = 5077, + stencil_ref_unchanged_front_amd = 5079, + stencil_ref_greater_front_amd = 5080, + stencil_ref_less_front_amd = 5081, + stencil_ref_unchanged_back_amd = 5082, + stencil_ref_greater_back_amd = 5083, + stencil_ref_less_back_amd = 5084, + quad_derivatives_khr = 5088, + require_full_quads_khr = 5089, + shares_input_with_amdx = 5102, + output_lines_ext = 5269, + output_primitives_ext = 5270, + derivative_group_quads_khr = 5289, + derivative_group_linear_khr = 5290, + output_triangles_ext = 5298, + pixel_interlock_ordered_ext = 5366, + pixel_interlock_unordered_ext = 5367, + sample_interlock_ordered_ext = 5368, + sample_interlock_unordered_ext = 5369, + shading_rate_interlock_ordered_ext = 5370, + shading_rate_interlock_unordered_ext = 5371, + shared_local_memory_size_intel = 5618, + rounding_mode_rtpintel = 5620, + rounding_mode_rtnintel = 5621, + floating_point_mode_altintel = 5622, + floating_point_mode_ieeeintel = 5623, + max_workgroup_size_intel = 5893, + max_work_dim_intel = 5894, + no_global_offset_intel = 5895, + num_simd_workitems_intel = 5896, + scheduler_target_fmax_mhz_intel = 5903, + maximally_reconverges_khr = 6023, + fp_fast_math_default = 6028, + streaming_interface_intel = 6154, + register_map_interface_intel = 6160, + named_barrier_count_intel = 6417, + maximum_registers_intel = 6461, + maximum_registers_id_intel = 6462, + named_maximum_registers_intel = 6463, pub const Extended = union(ExecutionMode) { - Invocations: struct { literal_integer: LiteralInteger }, - SpacingEqual, - SpacingFractionalEven, - SpacingFractionalOdd, - VertexOrderCw, - VertexOrderCcw, - PixelCenterInteger, - OriginUpperLeft, - OriginLowerLeft, - EarlyFragmentTests, - PointMode, - Xfb, - DepthReplacing, - DepthGreater, - DepthLess, - DepthUnchanged, - LocalSize: struct { x_size: LiteralInteger, y_size: LiteralInteger, z_size: LiteralInteger }, - LocalSizeHint: struct { x_size: LiteralInteger, y_size: LiteralInteger, z_size: LiteralInteger }, - InputPoints, - InputLines, - InputLinesAdjacency, - Triangles, - InputTrianglesAdjacency, - Quads, - Isolines, - OutputVertices: struct { vertex_count: LiteralInteger }, - OutputPoints, - OutputLineStrip, - OutputTriangleStrip, - VecTypeHint: struct { vector_type: LiteralInteger }, - ContractionOff, - Initializer, - Finalizer, - SubgroupSize: struct { subgroup_size: LiteralInteger }, - SubgroupsPerWorkgroup: struct { subgroups_per_workgroup: LiteralInteger }, - SubgroupsPerWorkgroupId: struct { subgroups_per_workgroup: IdRef }, - LocalSizeId: struct { x_size: IdRef, y_size: IdRef, z_size: IdRef }, - LocalSizeHintId: struct { x_size_hint: IdRef, y_size_hint: IdRef, z_size_hint: IdRef }, - NonCoherentColorAttachmentReadEXT, - NonCoherentDepthAttachmentReadEXT, - NonCoherentStencilAttachmentReadEXT, - SubgroupUniformControlFlowKHR, - PostDepthCoverage, - DenormPreserve: struct { target_width: LiteralInteger }, - DenormFlushToZero: struct { target_width: LiteralInteger }, - SignedZeroInfNanPreserve: struct { target_width: LiteralInteger }, - RoundingModeRTE: struct { target_width: LiteralInteger }, - RoundingModeRTZ: struct { target_width: LiteralInteger }, - EarlyAndLateFragmentTestsAMD, - StencilRefReplacingEXT, - CoalescingAMDX, - MaxNodeRecursionAMDX: struct { number_of_recursions: IdRef }, - StaticNumWorkgroupsAMDX: struct { x_size: IdRef, y_size: IdRef, z_size: IdRef }, - ShaderIndexAMDX: struct { shader_index: IdRef }, - MaxNumWorkgroupsAMDX: struct { x_size: IdRef, y_size: IdRef, z_size: IdRef }, - StencilRefUnchangedFrontAMD, - StencilRefGreaterFrontAMD, - StencilRefLessFrontAMD, - StencilRefUnchangedBackAMD, - StencilRefGreaterBackAMD, - StencilRefLessBackAMD, - QuadDerivativesKHR, - RequireFullQuadsKHR, - OutputLinesEXT, - OutputPrimitivesEXT: struct { primitive_count: LiteralInteger }, - DerivativeGroupQuadsNV, - DerivativeGroupLinearNV, - OutputTrianglesEXT, - PixelInterlockOrderedEXT, - PixelInterlockUnorderedEXT, - SampleInterlockOrderedEXT, - SampleInterlockUnorderedEXT, - ShadingRateInterlockOrderedEXT, - ShadingRateInterlockUnorderedEXT, - SharedLocalMemorySizeINTEL: struct { size: LiteralInteger }, - RoundingModeRTPINTEL: struct { target_width: LiteralInteger }, - RoundingModeRTNINTEL: struct { target_width: LiteralInteger }, - FloatingPointModeALTINTEL: struct { target_width: LiteralInteger }, - FloatingPointModeIEEEINTEL: struct { target_width: LiteralInteger }, - MaxWorkgroupSizeINTEL: struct { literal_integer_0: LiteralInteger, literal_integer_1: LiteralInteger, literal_integer_2: LiteralInteger }, - MaxWorkDimINTEL: struct { literal_integer: LiteralInteger }, - NoGlobalOffsetINTEL, - NumSIMDWorkitemsINTEL: struct { literal_integer: LiteralInteger }, - SchedulerTargetFmaxMhzINTEL: struct { literal_integer: LiteralInteger }, - MaximallyReconvergesKHR, - FPFastMathDefault: struct { target_type: IdRef, id_ref_1: IdRef }, - StreamingInterfaceINTEL: struct { stallfreereturn: LiteralInteger }, - RegisterMapInterfaceINTEL: struct { waitfordonewrite: LiteralInteger }, - NamedBarrierCountINTEL: struct { barrier_count: LiteralInteger }, - MaximumRegistersINTEL: struct { number_of_registers: LiteralInteger }, - MaximumRegistersIdINTEL: struct { number_of_registers: IdRef }, - NamedMaximumRegistersINTEL: struct { named_maximum_number_of_registers: NamedMaximumNumberOfRegisters }, + invocations: struct { literal_integer: LiteralInteger }, + spacing_equal, + spacing_fractional_even, + spacing_fractional_odd, + vertex_order_cw, + vertex_order_ccw, + pixel_center_integer, + origin_upper_left, + origin_lower_left, + early_fragment_tests, + point_mode, + xfb, + depth_replacing, + depth_greater, + depth_less, + depth_unchanged, + local_size: struct { x_size: LiteralInteger, y_size: LiteralInteger, z_size: LiteralInteger }, + local_size_hint: struct { x_size: LiteralInteger, y_size: LiteralInteger, z_size: LiteralInteger }, + input_points, + input_lines, + input_lines_adjacency, + triangles, + input_triangles_adjacency, + quads, + isolines, + output_vertices: struct { vertex_count: LiteralInteger }, + output_points, + output_line_strip, + output_triangle_strip, + vec_type_hint: struct { vector_type: LiteralInteger }, + contraction_off, + initializer, + finalizer, + subgroup_size: struct { subgroup_size: LiteralInteger }, + subgroups_per_workgroup: struct { subgroups_per_workgroup: LiteralInteger }, + subgroups_per_workgroup_id: struct { subgroups_per_workgroup: Id }, + local_size_id: struct { x_size: Id, y_size: Id, z_size: Id }, + local_size_hint_id: struct { x_size_hint: Id, y_size_hint: Id, z_size_hint: Id }, + non_coherent_color_attachment_read_ext, + non_coherent_depth_attachment_read_ext, + non_coherent_stencil_attachment_read_ext, + subgroup_uniform_control_flow_khr, + post_depth_coverage, + denorm_preserve: struct { target_width: LiteralInteger }, + denorm_flush_to_zero: struct { target_width: LiteralInteger }, + signed_zero_inf_nan_preserve: struct { target_width: LiteralInteger }, + rounding_mode_rte: struct { target_width: LiteralInteger }, + rounding_mode_rtz: struct { target_width: LiteralInteger }, + non_coherent_tile_attachment_read_qcom, + tile_shading_rate_qcom: struct { x_rate: LiteralInteger, y_rate: LiteralInteger, z_rate: LiteralInteger }, + early_and_late_fragment_tests_amd, + stencil_ref_replacing_ext, + coalescing_amdx, + is_api_entry_amdx: struct { is_entry: Id }, + max_node_recursion_amdx: struct { number_of_recursions: Id }, + static_num_workgroups_amdx: struct { x_size: Id, y_size: Id, z_size: Id }, + shader_index_amdx: struct { shader_index: Id }, + max_num_workgroups_amdx: struct { x_size: Id, y_size: Id, z_size: Id }, + stencil_ref_unchanged_front_amd, + stencil_ref_greater_front_amd, + stencil_ref_less_front_amd, + stencil_ref_unchanged_back_amd, + stencil_ref_greater_back_amd, + stencil_ref_less_back_amd, + quad_derivatives_khr, + require_full_quads_khr, + shares_input_with_amdx: struct { node_name: Id, shader_index: Id }, + output_lines_ext, + output_primitives_ext: struct { primitive_count: LiteralInteger }, + derivative_group_quads_khr, + derivative_group_linear_khr, + output_triangles_ext, + pixel_interlock_ordered_ext, + pixel_interlock_unordered_ext, + sample_interlock_ordered_ext, + sample_interlock_unordered_ext, + shading_rate_interlock_ordered_ext, + shading_rate_interlock_unordered_ext, + shared_local_memory_size_intel: struct { size: LiteralInteger }, + rounding_mode_rtpintel: struct { target_width: LiteralInteger }, + rounding_mode_rtnintel: struct { target_width: LiteralInteger }, + floating_point_mode_altintel: struct { target_width: LiteralInteger }, + floating_point_mode_ieeeintel: struct { target_width: LiteralInteger }, + max_workgroup_size_intel: struct { literal_integer_0: LiteralInteger, literal_integer_1: LiteralInteger, literal_integer_2: LiteralInteger }, + max_work_dim_intel: struct { literal_integer: LiteralInteger }, + no_global_offset_intel, + num_simd_workitems_intel: struct { literal_integer: LiteralInteger }, + scheduler_target_fmax_mhz_intel: struct { literal_integer: LiteralInteger }, + maximally_reconverges_khr, + fp_fast_math_default: struct { target_type: Id, id_ref_1: Id }, + streaming_interface_intel: struct { stall_free_return: LiteralInteger }, + register_map_interface_intel: struct { wait_for_done_write: LiteralInteger }, + named_barrier_count_intel: struct { barrier_count: LiteralInteger }, + maximum_registers_intel: struct { number_of_registers: LiteralInteger }, + maximum_registers_id_intel: struct { number_of_registers: Id }, + named_maximum_registers_intel: struct { named_maximum_number_of_registers: NamedMaximumNumberOfRegisters }, }; }; pub const StorageClass = enum(u32) { - UniformConstant = 0, - Input = 1, - Uniform = 2, - Output = 3, - Workgroup = 4, - CrossWorkgroup = 5, - Private = 6, - Function = 7, - Generic = 8, - PushConstant = 9, - AtomicCounter = 10, - Image = 11, - StorageBuffer = 12, - TileImageEXT = 4172, - NodePayloadAMDX = 5068, - NodeOutputPayloadAMDX = 5076, - CallableDataKHR = 5328, - IncomingCallableDataKHR = 5329, - RayPayloadKHR = 5338, - HitAttributeKHR = 5339, - IncomingRayPayloadKHR = 5342, - ShaderRecordBufferKHR = 5343, - PhysicalStorageBuffer = 5349, - HitObjectAttributeNV = 5385, - TaskPayloadWorkgroupEXT = 5402, - CodeSectionINTEL = 5605, - DeviceOnlyINTEL = 5936, - HostOnlyINTEL = 5937, - - pub const CallableDataNV = StorageClass.CallableDataKHR; - pub const IncomingCallableDataNV = StorageClass.IncomingCallableDataKHR; - pub const RayPayloadNV = StorageClass.RayPayloadKHR; - pub const HitAttributeNV = StorageClass.HitAttributeKHR; - pub const IncomingRayPayloadNV = StorageClass.IncomingRayPayloadKHR; - pub const ShaderRecordBufferNV = StorageClass.ShaderRecordBufferKHR; - pub const PhysicalStorageBufferEXT = StorageClass.PhysicalStorageBuffer; + uniform_constant = 0, + input = 1, + uniform = 2, + output = 3, + workgroup = 4, + cross_workgroup = 5, + private = 6, + function = 7, + generic = 8, + push_constant = 9, + atomic_counter = 10, + image = 11, + storage_buffer = 12, + tile_image_ext = 4172, + tile_attachment_qcom = 4491, + node_payload_amdx = 5068, + callable_data_khr = 5328, + incoming_callable_data_khr = 5329, + ray_payload_khr = 5338, + hit_attribute_khr = 5339, + incoming_ray_payload_khr = 5342, + shader_record_buffer_khr = 5343, + physical_storage_buffer = 5349, + hit_object_attribute_nv = 5385, + task_payload_workgroup_ext = 5402, + code_section_intel = 5605, + device_only_intel = 5936, + host_only_intel = 5937, }; pub const Dim = enum(u32) { - @"1D" = 0, - @"2D" = 1, - @"3D" = 2, - Cube = 3, - Rect = 4, - Buffer = 5, - SubpassData = 6, - TileImageDataEXT = 4173, + @"1d" = 0, + @"2d" = 1, + @"3d" = 2, + cube = 3, + rect = 4, + buffer = 5, + subpass_data = 6, + tile_image_data_ext = 4173, }; pub const SamplerAddressingMode = enum(u32) { - None = 0, - ClampToEdge = 1, - Clamp = 2, - Repeat = 3, - RepeatMirrored = 4, + none = 0, + clamp_to_edge = 1, + clamp = 2, + repeat = 3, + repeat_mirrored = 4, }; pub const SamplerFilterMode = enum(u32) { - Nearest = 0, - Linear = 1, + nearest = 0, + linear = 1, }; pub const ImageFormat = enum(u32) { - Unknown = 0, - Rgba32f = 1, - Rgba16f = 2, - R32f = 3, - Rgba8 = 4, - Rgba8Snorm = 5, - Rg32f = 6, - Rg16f = 7, - R11fG11fB10f = 8, - R16f = 9, - Rgba16 = 10, - Rgb10A2 = 11, - Rg16 = 12, - Rg8 = 13, - R16 = 14, - R8 = 15, - Rgba16Snorm = 16, - Rg16Snorm = 17, - Rg8Snorm = 18, - R16Snorm = 19, - R8Snorm = 20, - Rgba32i = 21, - Rgba16i = 22, - Rgba8i = 23, - R32i = 24, - Rg32i = 25, - Rg16i = 26, - Rg8i = 27, - R16i = 28, - R8i = 29, - Rgba32ui = 30, - Rgba16ui = 31, - Rgba8ui = 32, - R32ui = 33, - Rgb10a2ui = 34, - Rg32ui = 35, - Rg16ui = 36, - Rg8ui = 37, - R16ui = 38, - R8ui = 39, - R64ui = 40, - R64i = 41, + unknown = 0, + rgba32f = 1, + rgba16f = 2, + r32f = 3, + rgba8 = 4, + rgba8snorm = 5, + rg32f = 6, + rg16f = 7, + r11f_g11f_b10f = 8, + r16f = 9, + rgba16 = 10, + rgb10a2 = 11, + rg16 = 12, + rg8 = 13, + r16 = 14, + r8 = 15, + rgba16snorm = 16, + rg16snorm = 17, + rg8snorm = 18, + r16snorm = 19, + r8snorm = 20, + rgba32i = 21, + rgba16i = 22, + rgba8i = 23, + r32i = 24, + rg32i = 25, + rg16i = 26, + rg8i = 27, + r16i = 28, + r8i = 29, + rgba32ui = 30, + rgba16ui = 31, + rgba8ui = 32, + r32ui = 33, + rgb10a2ui = 34, + rg32ui = 35, + rg16ui = 36, + rg8ui = 37, + r16ui = 38, + r8ui = 39, + r64ui = 40, + r64i = 41, }; pub const ImageChannelOrder = enum(u32) { - R = 0, - A = 1, - RG = 2, - RA = 3, - RGB = 4, - RGBA = 5, - BGRA = 6, - ARGB = 7, - Intensity = 8, - Luminance = 9, - Rx = 10, - RGx = 11, - RGBx = 12, - Depth = 13, - DepthStencil = 14, - sRGB = 15, - sRGBx = 16, - sRGBA = 17, - sBGRA = 18, - ABGR = 19, + r = 0, + a = 1, + rg = 2, + ra = 3, + rgb = 4, + rgba = 5, + bgra = 6, + argb = 7, + intensity = 8, + luminance = 9, + rx = 10, + r_gx = 11, + rg_bx = 12, + depth = 13, + depth_stencil = 14, + s_rgb = 15, + s_rg_bx = 16, + s_rgba = 17, + s_bgra = 18, + abgr = 19, }; pub const ImageChannelDataType = enum(u32) { - SnormInt8 = 0, - SnormInt16 = 1, - UnormInt8 = 2, - UnormInt16 = 3, - UnormShort565 = 4, - UnormShort555 = 5, - UnormInt101010 = 6, - SignedInt8 = 7, - SignedInt16 = 8, - SignedInt32 = 9, - UnsignedInt8 = 10, - UnsignedInt16 = 11, - UnsignedInt32 = 12, - HalfFloat = 13, - Float = 14, - UnormInt24 = 15, - UnormInt101010_2 = 16, - UnsignedIntRaw10EXT = 19, - UnsignedIntRaw12EXT = 20, + snorm_int8 = 0, + snorm_int16 = 1, + unorm_int8 = 2, + unorm_int16 = 3, + unorm_short565 = 4, + unorm_short555 = 5, + unorm_int101010 = 6, + signed_int8 = 7, + signed_int16 = 8, + signed_int32 = 9, + unsigned_int8 = 10, + unsigned_int16 = 11, + unsigned_int32 = 12, + half_float = 13, + float = 14, + unorm_int24 = 15, + unorm_int101010_2 = 16, + unorm_int10x6ext = 17, + unsigned_int_raw10ext = 19, + unsigned_int_raw12ext = 20, + unorm_int2_101010ext = 21, + unsigned_int10x6ext = 22, + unsigned_int12x4ext = 23, + unsigned_int14x2ext = 24, + unorm_int12x4ext = 25, + unorm_int14x2ext = 26, }; pub const FPRoundingMode = enum(u32) { - RTE = 0, - RTZ = 1, - RTP = 2, - RTN = 3, + rte = 0, + rtz = 1, + rtp = 2, + rtn = 3, }; pub const FPDenormMode = enum(u32) { - Preserve = 0, - FlushToZero = 1, + preserve = 0, + flush_to_zero = 1, }; pub const QuantizationModes = enum(u32) { - TRN = 0, - TRN_ZERO = 1, - RND = 2, - RND_ZERO = 3, - RND_INF = 4, - RND_MIN_INF = 5, - RND_CONV = 6, - RND_CONV_ODD = 7, + trn = 0, + trn_zero = 1, + rnd = 2, + rnd_zero = 3, + rnd_inf = 4, + rnd_min_inf = 5, + rnd_conv = 6, + rnd_conv_odd = 7, }; pub const FPOperationMode = enum(u32) { - IEEE = 0, - ALT = 1, + ieee = 0, + alt = 1, }; pub const OverflowModes = enum(u32) { - WRAP = 0, - SAT = 1, - SAT_ZERO = 2, - SAT_SYM = 3, + wrap = 0, + sat = 1, + sat_zero = 2, + sat_sym = 3, }; pub const LinkageType = enum(u32) { - Export = 0, - Import = 1, - LinkOnceODR = 2, + @"export" = 0, + import = 1, + link_once_odr = 2, }; pub const AccessQualifier = enum(u32) { - ReadOnly = 0, - WriteOnly = 1, - ReadWrite = 2, + read_only = 0, + write_only = 1, + read_write = 2, }; pub const HostAccessQualifier = enum(u32) { - NoneINTEL = 0, - ReadINTEL = 1, - WriteINTEL = 2, - ReadWriteINTEL = 3, + none_intel = 0, + read_intel = 1, + write_intel = 2, + read_write_intel = 3, }; pub const FunctionParameterAttribute = enum(u32) { - Zext = 0, - Sext = 1, - ByVal = 2, - Sret = 3, - NoAlias = 4, - NoCapture = 5, - NoWrite = 6, - NoReadWrite = 7, - RuntimeAlignedINTEL = 5940, + zext = 0, + sext = 1, + by_val = 2, + sret = 3, + no_alias = 4, + no_capture = 5, + no_write = 6, + no_read_write = 7, + runtime_aligned_intel = 5940, }; pub const Decoration = enum(u32) { - RelaxedPrecision = 0, - SpecId = 1, - Block = 2, - BufferBlock = 3, - RowMajor = 4, - ColMajor = 5, - ArrayStride = 6, - MatrixStride = 7, - GLSLShared = 8, - GLSLPacked = 9, - CPacked = 10, - BuiltIn = 11, - NoPerspective = 13, - Flat = 14, - Patch = 15, - Centroid = 16, - Sample = 17, - Invariant = 18, - Restrict = 19, - Aliased = 20, - Volatile = 21, - Constant = 22, - Coherent = 23, - NonWritable = 24, - NonReadable = 25, - Uniform = 26, - UniformId = 27, - SaturatedConversion = 28, - Stream = 29, - Location = 30, - Component = 31, - Index = 32, - Binding = 33, - DescriptorSet = 34, - Offset = 35, - XfbBuffer = 36, - XfbStride = 37, - FuncParamAttr = 38, - FPRoundingMode = 39, - FPFastMathMode = 40, - LinkageAttributes = 41, - NoContraction = 42, - InputAttachmentIndex = 43, - Alignment = 44, - MaxByteOffset = 45, - AlignmentId = 46, - MaxByteOffsetId = 47, - NoSignedWrap = 4469, - NoUnsignedWrap = 4470, - WeightTextureQCOM = 4487, - BlockMatchTextureQCOM = 4488, - BlockMatchSamplerQCOM = 4499, - ExplicitInterpAMD = 4999, - NodeSharesPayloadLimitsWithAMDX = 5019, - NodeMaxPayloadsAMDX = 5020, - TrackFinishWritingAMDX = 5078, - PayloadNodeNameAMDX = 5091, - OverrideCoverageNV = 5248, - PassthroughNV = 5250, - ViewportRelativeNV = 5252, - SecondaryViewportRelativeNV = 5256, - PerPrimitiveEXT = 5271, - PerViewNV = 5272, - PerTaskNV = 5273, - PerVertexKHR = 5285, - NonUniform = 5300, - RestrictPointer = 5355, - AliasedPointer = 5356, - HitObjectShaderRecordBufferNV = 5386, - BindlessSamplerNV = 5398, - BindlessImageNV = 5399, - BoundSamplerNV = 5400, - BoundImageNV = 5401, - SIMTCallINTEL = 5599, - ReferencedIndirectlyINTEL = 5602, - ClobberINTEL = 5607, - SideEffectsINTEL = 5608, - VectorComputeVariableINTEL = 5624, - FuncParamIOKindINTEL = 5625, - VectorComputeFunctionINTEL = 5626, - StackCallINTEL = 5627, - GlobalVariableOffsetINTEL = 5628, - CounterBuffer = 5634, - UserSemantic = 5635, - UserTypeGOOGLE = 5636, - FunctionRoundingModeINTEL = 5822, - FunctionDenormModeINTEL = 5823, - RegisterINTEL = 5825, - MemoryINTEL = 5826, - NumbanksINTEL = 5827, - BankwidthINTEL = 5828, - MaxPrivateCopiesINTEL = 5829, - SinglepumpINTEL = 5830, - DoublepumpINTEL = 5831, - MaxReplicatesINTEL = 5832, - SimpleDualPortINTEL = 5833, - MergeINTEL = 5834, - BankBitsINTEL = 5835, - ForcePow2DepthINTEL = 5836, - StridesizeINTEL = 5883, - WordsizeINTEL = 5884, - TrueDualPortINTEL = 5885, - BurstCoalesceINTEL = 5899, - CacheSizeINTEL = 5900, - DontStaticallyCoalesceINTEL = 5901, - PrefetchINTEL = 5902, - StallEnableINTEL = 5905, - FuseLoopsInFunctionINTEL = 5907, - MathOpDSPModeINTEL = 5909, - AliasScopeINTEL = 5914, - NoAliasINTEL = 5915, - InitiationIntervalINTEL = 5917, - MaxConcurrencyINTEL = 5918, - PipelineEnableINTEL = 5919, - BufferLocationINTEL = 5921, - IOPipeStorageINTEL = 5944, - FunctionFloatingPointModeINTEL = 6080, - SingleElementVectorINTEL = 6085, - VectorComputeCallableFunctionINTEL = 6087, - MediaBlockIOINTEL = 6140, - StallFreeINTEL = 6151, - FPMaxErrorDecorationINTEL = 6170, - LatencyControlLabelINTEL = 6172, - LatencyControlConstraintINTEL = 6173, - ConduitKernelArgumentINTEL = 6175, - RegisterMapKernelArgumentINTEL = 6176, - MMHostInterfaceAddressWidthINTEL = 6177, - MMHostInterfaceDataWidthINTEL = 6178, - MMHostInterfaceLatencyINTEL = 6179, - MMHostInterfaceReadWriteModeINTEL = 6180, - MMHostInterfaceMaxBurstINTEL = 6181, - MMHostInterfaceWaitRequestINTEL = 6182, - StableKernelArgumentINTEL = 6183, - HostAccessINTEL = 6188, - InitModeINTEL = 6190, - ImplementInRegisterMapINTEL = 6191, - CacheControlLoadINTEL = 6442, - CacheControlStoreINTEL = 6443, - - pub const PerPrimitiveNV = Decoration.PerPrimitiveEXT; - pub const PerVertexNV = Decoration.PerVertexKHR; - pub const NonUniformEXT = Decoration.NonUniform; - pub const RestrictPointerEXT = Decoration.RestrictPointer; - pub const AliasedPointerEXT = Decoration.AliasedPointer; - pub const HlslCounterBufferGOOGLE = Decoration.CounterBuffer; - pub const HlslSemanticGOOGLE = Decoration.UserSemantic; + relaxed_precision = 0, + spec_id = 1, + block = 2, + buffer_block = 3, + row_major = 4, + col_major = 5, + array_stride = 6, + matrix_stride = 7, + glsl_shared = 8, + glsl_packed = 9, + c_packed = 10, + built_in = 11, + no_perspective = 13, + flat = 14, + patch = 15, + centroid = 16, + sample = 17, + invariant = 18, + restrict = 19, + aliased = 20, + @"volatile" = 21, + constant = 22, + coherent = 23, + non_writable = 24, + non_readable = 25, + uniform = 26, + uniform_id = 27, + saturated_conversion = 28, + stream = 29, + location = 30, + component = 31, + index = 32, + binding = 33, + descriptor_set = 34, + offset = 35, + xfb_buffer = 36, + xfb_stride = 37, + func_param_attr = 38, + fp_rounding_mode = 39, + fp_fast_math_mode = 40, + linkage_attributes = 41, + no_contraction = 42, + input_attachment_index = 43, + alignment = 44, + max_byte_offset = 45, + alignment_id = 46, + max_byte_offset_id = 47, + saturated_to_largest_float8normal_conversion_ext = 4216, + no_signed_wrap = 4469, + no_unsigned_wrap = 4470, + weight_texture_qcom = 4487, + block_match_texture_qcom = 4488, + block_match_sampler_qcom = 4499, + explicit_interp_amd = 4999, + node_shares_payload_limits_with_amdx = 5019, + node_max_payloads_amdx = 5020, + track_finish_writing_amdx = 5078, + payload_node_name_amdx = 5091, + payload_node_base_index_amdx = 5098, + payload_node_sparse_array_amdx = 5099, + payload_node_array_size_amdx = 5100, + payload_dispatch_indirect_amdx = 5105, + override_coverage_nv = 5248, + passthrough_nv = 5250, + viewport_relative_nv = 5252, + secondary_viewport_relative_nv = 5256, + per_primitive_ext = 5271, + per_view_nv = 5272, + per_task_nv = 5273, + per_vertex_khr = 5285, + non_uniform = 5300, + restrict_pointer = 5355, + aliased_pointer = 5356, + hit_object_shader_record_buffer_nv = 5386, + bindless_sampler_nv = 5398, + bindless_image_nv = 5399, + bound_sampler_nv = 5400, + bound_image_nv = 5401, + simt_call_intel = 5599, + referenced_indirectly_intel = 5602, + clobber_intel = 5607, + side_effects_intel = 5608, + vector_compute_variable_intel = 5624, + func_param_io_kind_intel = 5625, + vector_compute_function_intel = 5626, + stack_call_intel = 5627, + global_variable_offset_intel = 5628, + counter_buffer = 5634, + user_semantic = 5635, + 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, + 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, + 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, + 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, + host_access_intel = 6188, + init_mode_intel = 6190, + implement_in_register_map_intel = 6191, + cache_control_load_intel = 6442, + cache_control_store_intel = 6443, pub const Extended = union(Decoration) { - RelaxedPrecision, - SpecId: struct { specialization_constant_id: LiteralInteger }, - Block, - BufferBlock, - RowMajor, - ColMajor, - ArrayStride: struct { array_stride: LiteralInteger }, - MatrixStride: struct { matrix_stride: LiteralInteger }, - GLSLShared, - GLSLPacked, - CPacked, - BuiltIn: struct { built_in: BuiltIn }, - NoPerspective, - Flat, - Patch, - Centroid, - Sample, - Invariant, - Restrict, - Aliased, - Volatile, - Constant, - Coherent, - NonWritable, - NonReadable, - Uniform, - UniformId: struct { execution: IdScope }, - SaturatedConversion, - Stream: struct { stream_number: LiteralInteger }, - Location: struct { location: LiteralInteger }, - Component: struct { component: LiteralInteger }, - Index: struct { index: LiteralInteger }, - Binding: struct { binding_point: LiteralInteger }, - DescriptorSet: struct { descriptor_set: LiteralInteger }, - Offset: struct { byte_offset: LiteralInteger }, - XfbBuffer: struct { xfb_buffer_number: LiteralInteger }, - XfbStride: struct { xfb_stride: LiteralInteger }, - FuncParamAttr: struct { function_parameter_attribute: FunctionParameterAttribute }, - FPRoundingMode: struct { fprounding_mode: FPRoundingMode }, - FPFastMathMode: struct { fpfast_math_mode: FPFastMathMode }, - LinkageAttributes: struct { name: LiteralString, linkage_type: LinkageType }, - NoContraction, - InputAttachmentIndex: struct { attachment_index: LiteralInteger }, - Alignment: struct { alignment: LiteralInteger }, - MaxByteOffset: struct { max_byte_offset: LiteralInteger }, - AlignmentId: struct { alignment: IdRef }, - MaxByteOffsetId: struct { max_byte_offset: IdRef }, - NoSignedWrap, - NoUnsignedWrap, - WeightTextureQCOM, - BlockMatchTextureQCOM, - BlockMatchSamplerQCOM, - ExplicitInterpAMD, - NodeSharesPayloadLimitsWithAMDX: struct { payload_array: IdRef }, - NodeMaxPayloadsAMDX: struct { max_number_of_payloads: IdRef }, - TrackFinishWritingAMDX, - PayloadNodeNameAMDX: struct { node_name: LiteralString }, - OverrideCoverageNV, - PassthroughNV, - ViewportRelativeNV, - SecondaryViewportRelativeNV: struct { offset: LiteralInteger }, - PerPrimitiveEXT, - PerViewNV, - PerTaskNV, - PerVertexKHR, - NonUniform, - RestrictPointer, - AliasedPointer, - HitObjectShaderRecordBufferNV, - BindlessSamplerNV, - BindlessImageNV, - BoundSamplerNV, - BoundImageNV, - SIMTCallINTEL: struct { n: LiteralInteger }, - ReferencedIndirectlyINTEL, - ClobberINTEL: struct { register: LiteralString }, - SideEffectsINTEL, - VectorComputeVariableINTEL, - FuncParamIOKindINTEL: struct { kind: LiteralInteger }, - VectorComputeFunctionINTEL, - StackCallINTEL, - GlobalVariableOffsetINTEL: struct { offset: LiteralInteger }, - CounterBuffer: struct { counter_buffer: IdRef }, - UserSemantic: struct { semantic: LiteralString }, - UserTypeGOOGLE: struct { user_type: LiteralString }, - FunctionRoundingModeINTEL: struct { target_width: LiteralInteger, fp_rounding_mode: FPRoundingMode }, - FunctionDenormModeINTEL: struct { target_width: LiteralInteger, fp_denorm_mode: FPDenormMode }, - RegisterINTEL, - MemoryINTEL: struct { memory_type: LiteralString }, - NumbanksINTEL: struct { banks: LiteralInteger }, - BankwidthINTEL: struct { bank_width: LiteralInteger }, - MaxPrivateCopiesINTEL: struct { maximum_copies: LiteralInteger }, - SinglepumpINTEL, - DoublepumpINTEL, - MaxReplicatesINTEL: struct { maximum_replicates: LiteralInteger }, - SimpleDualPortINTEL, - MergeINTEL: struct { merge_key: LiteralString, merge_type: LiteralString }, - BankBitsINTEL: struct { bank_bits: []const LiteralInteger = &.{} }, - ForcePow2DepthINTEL: struct { force_key: LiteralInteger }, - StridesizeINTEL: struct { stride_size: LiteralInteger }, - WordsizeINTEL: struct { word_size: LiteralInteger }, - TrueDualPortINTEL, - BurstCoalesceINTEL, - CacheSizeINTEL: struct { cache_size_in_bytes: LiteralInteger }, - DontStaticallyCoalesceINTEL, - PrefetchINTEL: struct { prefetcher_size_in_bytes: LiteralInteger }, - StallEnableINTEL, - FuseLoopsInFunctionINTEL, - MathOpDSPModeINTEL: struct { mode: LiteralInteger, propagate: LiteralInteger }, - AliasScopeINTEL: struct { aliasing_scopes_list: IdRef }, - NoAliasINTEL: struct { aliasing_scopes_list: IdRef }, - InitiationIntervalINTEL: struct { cycles: LiteralInteger }, - MaxConcurrencyINTEL: struct { invocations: LiteralInteger }, - PipelineEnableINTEL: struct { enable: LiteralInteger }, - BufferLocationINTEL: struct { buffer_location_id: LiteralInteger }, - IOPipeStorageINTEL: struct { io_pipe_id: LiteralInteger }, - FunctionFloatingPointModeINTEL: struct { target_width: LiteralInteger, fp_operation_mode: FPOperationMode }, - SingleElementVectorINTEL, - VectorComputeCallableFunctionINTEL, - MediaBlockIOINTEL, - StallFreeINTEL, - FPMaxErrorDecorationINTEL: struct { max_error: LiteralFloat }, - LatencyControlLabelINTEL: struct { latency_label: LiteralInteger }, - LatencyControlConstraintINTEL: struct { relative_to: LiteralInteger, control_type: LiteralInteger, relative_cycle: LiteralInteger }, - ConduitKernelArgumentINTEL, - RegisterMapKernelArgumentINTEL, - MMHostInterfaceAddressWidthINTEL: struct { addresswidth: LiteralInteger }, - MMHostInterfaceDataWidthINTEL: struct { datawidth: LiteralInteger }, - MMHostInterfaceLatencyINTEL: struct { latency: LiteralInteger }, - MMHostInterfaceReadWriteModeINTEL: struct { readwritemode: AccessQualifier }, - MMHostInterfaceMaxBurstINTEL: struct { maxburstcount: LiteralInteger }, - MMHostInterfaceWaitRequestINTEL: struct { waitrequest: LiteralInteger }, - StableKernelArgumentINTEL, - HostAccessINTEL: struct { access: HostAccessQualifier, name: LiteralString }, - InitModeINTEL: struct { trigger: InitializationModeQualifier }, - ImplementInRegisterMapINTEL: struct { value: LiteralInteger }, - CacheControlLoadINTEL: struct { cache_level: LiteralInteger, cache_control: LoadCacheControl }, - CacheControlStoreINTEL: struct { cache_level: LiteralInteger, cache_control: StoreCacheControl }, + relaxed_precision, + spec_id: struct { specialization_constant_id: LiteralInteger }, + block, + buffer_block, + row_major, + col_major, + array_stride: struct { array_stride: LiteralInteger }, + matrix_stride: struct { matrix_stride: LiteralInteger }, + glsl_shared, + glsl_packed, + c_packed, + built_in: struct { built_in: BuiltIn }, + no_perspective, + flat, + patch, + centroid, + sample, + invariant, + restrict, + aliased, + @"volatile", + constant, + coherent, + non_writable, + non_readable, + uniform, + uniform_id: struct { execution: Id }, + saturated_conversion, + stream: struct { stream_number: LiteralInteger }, + location: struct { location: LiteralInteger }, + component: struct { component: LiteralInteger }, + index: struct { index: LiteralInteger }, + binding: struct { binding_point: LiteralInteger }, + descriptor_set: struct { descriptor_set: LiteralInteger }, + offset: struct { byte_offset: LiteralInteger }, + xfb_buffer: struct { xfb_buffer_number: LiteralInteger }, + xfb_stride: struct { xfb_stride: LiteralInteger }, + func_param_attr: struct { function_parameter_attribute: FunctionParameterAttribute }, + fp_rounding_mode: struct { fp_rounding_mode: FPRoundingMode }, + fp_fast_math_mode: struct { fp_fast_math_mode: FPFastMathMode }, + linkage_attributes: struct { name: LiteralString, linkage_type: LinkageType }, + no_contraction, + input_attachment_index: struct { attachment_index: LiteralInteger }, + alignment: struct { alignment: LiteralInteger }, + max_byte_offset: struct { max_byte_offset: LiteralInteger }, + alignment_id: struct { alignment: Id }, + max_byte_offset_id: struct { max_byte_offset: Id }, + saturated_to_largest_float8normal_conversion_ext, + no_signed_wrap, + no_unsigned_wrap, + weight_texture_qcom, + block_match_texture_qcom, + block_match_sampler_qcom, + explicit_interp_amd, + node_shares_payload_limits_with_amdx: struct { payload_type: Id }, + node_max_payloads_amdx: struct { max_number_of_payloads: Id }, + track_finish_writing_amdx, + payload_node_name_amdx: struct { node_name: Id }, + payload_node_base_index_amdx: struct { base_index: Id }, + payload_node_sparse_array_amdx, + payload_node_array_size_amdx: struct { array_size: Id }, + payload_dispatch_indirect_amdx, + override_coverage_nv, + passthrough_nv, + viewport_relative_nv, + secondary_viewport_relative_nv: struct { offset: LiteralInteger }, + per_primitive_ext, + per_view_nv, + per_task_nv, + per_vertex_khr, + non_uniform, + restrict_pointer, + aliased_pointer, + hit_object_shader_record_buffer_nv, + bindless_sampler_nv, + bindless_image_nv, + bound_sampler_nv, + bound_image_nv, + simt_call_intel: struct { n: LiteralInteger }, + referenced_indirectly_intel, + clobber_intel: struct { register: LiteralString }, + side_effects_intel, + vector_compute_variable_intel, + func_param_io_kind_intel: struct { kind: LiteralInteger }, + vector_compute_function_intel, + stack_call_intel, + global_variable_offset_intel: struct { offset: LiteralInteger }, + counter_buffer: struct { counter_buffer: Id }, + user_semantic: struct { semantic: LiteralString }, + 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 }, + 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 }, + 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, + 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, + host_access_intel: struct { access: HostAccessQualifier, name: LiteralString }, + init_mode_intel: struct { trigger: InitializationModeQualifier }, + implement_in_register_map_intel: struct { value: LiteralInteger }, + cache_control_load_intel: struct { cache_level: LiteralInteger, cache_control: LoadCacheControl }, + cache_control_store_intel: struct { cache_level: LiteralInteger, cache_control: StoreCacheControl }, }; }; pub const BuiltIn = enum(u32) { - Position = 0, - PointSize = 1, - ClipDistance = 3, - CullDistance = 4, - VertexId = 5, - InstanceId = 6, - PrimitiveId = 7, - InvocationId = 8, - Layer = 9, - ViewportIndex = 10, - TessLevelOuter = 11, - TessLevelInner = 12, - TessCoord = 13, - PatchVertices = 14, - FragCoord = 15, - PointCoord = 16, - FrontFacing = 17, - SampleId = 18, - SamplePosition = 19, - SampleMask = 20, - FragDepth = 22, - HelperInvocation = 23, - NumWorkgroups = 24, - WorkgroupSize = 25, - WorkgroupId = 26, - LocalInvocationId = 27, - GlobalInvocationId = 28, - LocalInvocationIndex = 29, - WorkDim = 30, - GlobalSize = 31, - EnqueuedWorkgroupSize = 32, - GlobalOffset = 33, - GlobalLinearId = 34, - SubgroupSize = 36, - SubgroupMaxSize = 37, - NumSubgroups = 38, - NumEnqueuedSubgroups = 39, - SubgroupId = 40, - SubgroupLocalInvocationId = 41, - VertexIndex = 42, - InstanceIndex = 43, - CoreIDARM = 4160, - CoreCountARM = 4161, - CoreMaxIDARM = 4162, - WarpIDARM = 4163, - WarpMaxIDARM = 4164, - SubgroupEqMask = 4416, - SubgroupGeMask = 4417, - SubgroupGtMask = 4418, - SubgroupLeMask = 4419, - SubgroupLtMask = 4420, - BaseVertex = 4424, - BaseInstance = 4425, - DrawIndex = 4426, - PrimitiveShadingRateKHR = 4432, - DeviceIndex = 4438, - ViewIndex = 4440, - ShadingRateKHR = 4444, - BaryCoordNoPerspAMD = 4992, - BaryCoordNoPerspCentroidAMD = 4993, - BaryCoordNoPerspSampleAMD = 4994, - BaryCoordSmoothAMD = 4995, - BaryCoordSmoothCentroidAMD = 4996, - BaryCoordSmoothSampleAMD = 4997, - BaryCoordPullModelAMD = 4998, - FragStencilRefEXT = 5014, - CoalescedInputCountAMDX = 5021, - ShaderIndexAMDX = 5073, - ViewportMaskNV = 5253, - SecondaryPositionNV = 5257, - SecondaryViewportMaskNV = 5258, - PositionPerViewNV = 5261, - ViewportMaskPerViewNV = 5262, - FullyCoveredEXT = 5264, - TaskCountNV = 5274, - PrimitiveCountNV = 5275, - PrimitiveIndicesNV = 5276, - ClipDistancePerViewNV = 5277, - CullDistancePerViewNV = 5278, - LayerPerViewNV = 5279, - MeshViewCountNV = 5280, - MeshViewIndicesNV = 5281, - BaryCoordKHR = 5286, - BaryCoordNoPerspKHR = 5287, - FragSizeEXT = 5292, - FragInvocationCountEXT = 5293, - PrimitivePointIndicesEXT = 5294, - PrimitiveLineIndicesEXT = 5295, - PrimitiveTriangleIndicesEXT = 5296, - CullPrimitiveEXT = 5299, - LaunchIdKHR = 5319, - LaunchSizeKHR = 5320, - WorldRayOriginKHR = 5321, - WorldRayDirectionKHR = 5322, - ObjectRayOriginKHR = 5323, - ObjectRayDirectionKHR = 5324, - RayTminKHR = 5325, - RayTmaxKHR = 5326, - InstanceCustomIndexKHR = 5327, - ObjectToWorldKHR = 5330, - WorldToObjectKHR = 5331, - HitTNV = 5332, - HitKindKHR = 5333, - CurrentRayTimeNV = 5334, - HitTriangleVertexPositionsKHR = 5335, - HitMicroTriangleVertexPositionsNV = 5337, - HitMicroTriangleVertexBarycentricsNV = 5344, - IncomingRayFlagsKHR = 5351, - RayGeometryIndexKHR = 5352, - WarpsPerSMNV = 5374, - SMCountNV = 5375, - WarpIDNV = 5376, - SMIDNV = 5377, - HitKindFrontFacingMicroTriangleNV = 5405, - HitKindBackFacingMicroTriangleNV = 5406, - CullMaskKHR = 6021, - - pub const SubgroupEqMaskKHR = BuiltIn.SubgroupEqMask; - pub const SubgroupGeMaskKHR = BuiltIn.SubgroupGeMask; - pub const SubgroupGtMaskKHR = BuiltIn.SubgroupGtMask; - pub const SubgroupLeMaskKHR = BuiltIn.SubgroupLeMask; - pub const SubgroupLtMaskKHR = BuiltIn.SubgroupLtMask; - pub const BaryCoordNV = BuiltIn.BaryCoordKHR; - pub const BaryCoordNoPerspNV = BuiltIn.BaryCoordNoPerspKHR; - pub const FragmentSizeNV = BuiltIn.FragSizeEXT; - pub const InvocationsPerPixelNV = BuiltIn.FragInvocationCountEXT; - pub const LaunchIdNV = BuiltIn.LaunchIdKHR; - pub const LaunchSizeNV = BuiltIn.LaunchSizeKHR; - pub const WorldRayOriginNV = BuiltIn.WorldRayOriginKHR; - pub const WorldRayDirectionNV = BuiltIn.WorldRayDirectionKHR; - pub const ObjectRayOriginNV = BuiltIn.ObjectRayOriginKHR; - pub const ObjectRayDirectionNV = BuiltIn.ObjectRayDirectionKHR; - pub const RayTminNV = BuiltIn.RayTminKHR; - pub const RayTmaxNV = BuiltIn.RayTmaxKHR; - pub const InstanceCustomIndexNV = BuiltIn.InstanceCustomIndexKHR; - pub const ObjectToWorldNV = BuiltIn.ObjectToWorldKHR; - pub const WorldToObjectNV = BuiltIn.WorldToObjectKHR; - pub const HitKindNV = BuiltIn.HitKindKHR; - pub const IncomingRayFlagsNV = BuiltIn.IncomingRayFlagsKHR; + position = 0, + point_size = 1, + clip_distance = 3, + cull_distance = 4, + vertex_id = 5, + instance_id = 6, + primitive_id = 7, + invocation_id = 8, + layer = 9, + viewport_index = 10, + tess_level_outer = 11, + tess_level_inner = 12, + tess_coord = 13, + patch_vertices = 14, + frag_coord = 15, + point_coord = 16, + front_facing = 17, + sample_id = 18, + sample_position = 19, + sample_mask = 20, + frag_depth = 22, + helper_invocation = 23, + num_workgroups = 24, + workgroup_size = 25, + workgroup_id = 26, + local_invocation_id = 27, + global_invocation_id = 28, + local_invocation_index = 29, + work_dim = 30, + global_size = 31, + enqueued_workgroup_size = 32, + global_offset = 33, + global_linear_id = 34, + subgroup_size = 36, + subgroup_max_size = 37, + num_subgroups = 38, + num_enqueued_subgroups = 39, + subgroup_id = 40, + subgroup_local_invocation_id = 41, + vertex_index = 42, + instance_index = 43, + core_idarm = 4160, + core_count_arm = 4161, + core_max_idarm = 4162, + warp_idarm = 4163, + warp_max_idarm = 4164, + subgroup_eq_mask = 4416, + subgroup_ge_mask = 4417, + subgroup_gt_mask = 4418, + subgroup_le_mask = 4419, + subgroup_lt_mask = 4420, + base_vertex = 4424, + base_instance = 4425, + draw_index = 4426, + primitive_shading_rate_khr = 4432, + device_index = 4438, + view_index = 4440, + shading_rate_khr = 4444, + tile_offset_qcom = 4492, + tile_dimension_qcom = 4493, + tile_apron_size_qcom = 4494, + bary_coord_no_persp_amd = 4992, + bary_coord_no_persp_centroid_amd = 4993, + bary_coord_no_persp_sample_amd = 4994, + bary_coord_smooth_amd = 4995, + bary_coord_smooth_centroid_amd = 4996, + bary_coord_smooth_sample_amd = 4997, + bary_coord_pull_model_amd = 4998, + frag_stencil_ref_ext = 5014, + remaining_recursion_levels_amdx = 5021, + shader_index_amdx = 5073, + viewport_mask_nv = 5253, + secondary_position_nv = 5257, + secondary_viewport_mask_nv = 5258, + position_per_view_nv = 5261, + viewport_mask_per_view_nv = 5262, + fully_covered_ext = 5264, + task_count_nv = 5274, + primitive_count_nv = 5275, + primitive_indices_nv = 5276, + clip_distance_per_view_nv = 5277, + cull_distance_per_view_nv = 5278, + layer_per_view_nv = 5279, + mesh_view_count_nv = 5280, + mesh_view_indices_nv = 5281, + bary_coord_khr = 5286, + bary_coord_no_persp_khr = 5287, + frag_size_ext = 5292, + frag_invocation_count_ext = 5293, + primitive_point_indices_ext = 5294, + primitive_line_indices_ext = 5295, + primitive_triangle_indices_ext = 5296, + cull_primitive_ext = 5299, + launch_id_khr = 5319, + launch_size_khr = 5320, + world_ray_origin_khr = 5321, + world_ray_direction_khr = 5322, + object_ray_origin_khr = 5323, + object_ray_direction_khr = 5324, + ray_tmin_khr = 5325, + ray_tmax_khr = 5326, + instance_custom_index_khr = 5327, + object_to_world_khr = 5330, + world_to_object_khr = 5331, + hit_tnv = 5332, + hit_kind_khr = 5333, + current_ray_time_nv = 5334, + hit_triangle_vertex_positions_khr = 5335, + hit_micro_triangle_vertex_positions_nv = 5337, + hit_micro_triangle_vertex_barycentrics_nv = 5344, + incoming_ray_flags_khr = 5351, + ray_geometry_index_khr = 5352, + hit_is_sphere_nv = 5359, + hit_is_lssnv = 5360, + hit_sphere_position_nv = 5361, + warps_per_smnv = 5374, + sm_count_nv = 5375, + warp_idnv = 5376, + smidnv = 5377, + hit_lss_positions_nv = 5396, + hit_kind_front_facing_micro_triangle_nv = 5405, + hit_kind_back_facing_micro_triangle_nv = 5406, + hit_sphere_radius_nv = 5420, + hit_lss_radii_nv = 5421, + cluster_idnv = 5436, + cull_mask_khr = 6021, }; pub const Scope = enum(u32) { - CrossDevice = 0, - Device = 1, - Workgroup = 2, - Subgroup = 3, - Invocation = 4, - QueueFamily = 5, - ShaderCallKHR = 6, - - pub const QueueFamilyKHR = Scope.QueueFamily; + cross_device = 0, + device = 1, + workgroup = 2, + subgroup = 3, + invocation = 4, + queue_family = 5, + shader_call_khr = 6, }; pub const GroupOperation = enum(u32) { - Reduce = 0, - InclusiveScan = 1, - ExclusiveScan = 2, - ClusteredReduce = 3, - PartitionedReduceNV = 6, - PartitionedInclusiveScanNV = 7, - PartitionedExclusiveScanNV = 8, + reduce = 0, + inclusive_scan = 1, + exclusive_scan = 2, + clustered_reduce = 3, + partitioned_reduce_nv = 6, + partitioned_inclusive_scan_nv = 7, + partitioned_exclusive_scan_nv = 8, }; pub const KernelEnqueueFlags = enum(u32) { - NoWait = 0, - WaitKernel = 1, - WaitWorkGroup = 2, + no_wait = 0, + wait_kernel = 1, + wait_work_group = 2, }; pub const Capability = enum(u32) { - Matrix = 0, - Shader = 1, - Geometry = 2, - Tessellation = 3, - Addresses = 4, - Linkage = 5, - Kernel = 6, - Vector16 = 7, - Float16Buffer = 8, - Float16 = 9, - Float64 = 10, - Int64 = 11, - Int64Atomics = 12, - ImageBasic = 13, - ImageReadWrite = 14, - ImageMipmap = 15, - Pipes = 17, - Groups = 18, - DeviceEnqueue = 19, - LiteralSampler = 20, - AtomicStorage = 21, - Int16 = 22, - TessellationPointSize = 23, - GeometryPointSize = 24, - ImageGatherExtended = 25, - StorageImageMultisample = 27, - UniformBufferArrayDynamicIndexing = 28, - SampledImageArrayDynamicIndexing = 29, - StorageBufferArrayDynamicIndexing = 30, - StorageImageArrayDynamicIndexing = 31, - ClipDistance = 32, - CullDistance = 33, - ImageCubeArray = 34, - SampleRateShading = 35, - ImageRect = 36, - SampledRect = 37, - GenericPointer = 38, - Int8 = 39, - InputAttachment = 40, - SparseResidency = 41, - MinLod = 42, - Sampled1D = 43, - Image1D = 44, - SampledCubeArray = 45, - SampledBuffer = 46, - ImageBuffer = 47, - ImageMSArray = 48, - StorageImageExtendedFormats = 49, - ImageQuery = 50, - DerivativeControl = 51, - InterpolationFunction = 52, - TransformFeedback = 53, - GeometryStreams = 54, - StorageImageReadWithoutFormat = 55, - StorageImageWriteWithoutFormat = 56, - MultiViewport = 57, - SubgroupDispatch = 58, - NamedBarrier = 59, - PipeStorage = 60, - GroupNonUniform = 61, - GroupNonUniformVote = 62, - GroupNonUniformArithmetic = 63, - GroupNonUniformBallot = 64, - GroupNonUniformShuffle = 65, - GroupNonUniformShuffleRelative = 66, - GroupNonUniformClustered = 67, - GroupNonUniformQuad = 68, - ShaderLayer = 69, - ShaderViewportIndex = 70, - UniformDecoration = 71, - CoreBuiltinsARM = 4165, - TileImageColorReadAccessEXT = 4166, - TileImageDepthReadAccessEXT = 4167, - TileImageStencilReadAccessEXT = 4168, - FragmentShadingRateKHR = 4422, - SubgroupBallotKHR = 4423, - DrawParameters = 4427, - WorkgroupMemoryExplicitLayoutKHR = 4428, - WorkgroupMemoryExplicitLayout8BitAccessKHR = 4429, - WorkgroupMemoryExplicitLayout16BitAccessKHR = 4430, - SubgroupVoteKHR = 4431, - StorageBuffer16BitAccess = 4433, - UniformAndStorageBuffer16BitAccess = 4434, - StoragePushConstant16 = 4435, - StorageInputOutput16 = 4436, - DeviceGroup = 4437, - MultiView = 4439, - VariablePointersStorageBuffer = 4441, - VariablePointers = 4442, - AtomicStorageOps = 4445, - SampleMaskPostDepthCoverage = 4447, - StorageBuffer8BitAccess = 4448, - UniformAndStorageBuffer8BitAccess = 4449, - StoragePushConstant8 = 4450, - DenormPreserve = 4464, - DenormFlushToZero = 4465, - SignedZeroInfNanPreserve = 4466, - RoundingModeRTE = 4467, - RoundingModeRTZ = 4468, - RayQueryProvisionalKHR = 4471, - RayQueryKHR = 4472, - RayTraversalPrimitiveCullingKHR = 4478, - RayTracingKHR = 4479, - TextureSampleWeightedQCOM = 4484, - TextureBoxFilterQCOM = 4485, - TextureBlockMatchQCOM = 4486, - TextureBlockMatch2QCOM = 4498, - Float16ImageAMD = 5008, - ImageGatherBiasLodAMD = 5009, - FragmentMaskAMD = 5010, - StencilExportEXT = 5013, - ImageReadWriteLodAMD = 5015, - Int64ImageEXT = 5016, - ShaderClockKHR = 5055, - ShaderEnqueueAMDX = 5067, - QuadControlKHR = 5087, - SampleMaskOverrideCoverageNV = 5249, - GeometryShaderPassthroughNV = 5251, - ShaderViewportIndexLayerEXT = 5254, - ShaderViewportMaskNV = 5255, - ShaderStereoViewNV = 5259, - PerViewAttributesNV = 5260, - FragmentFullyCoveredEXT = 5265, - MeshShadingNV = 5266, - ImageFootprintNV = 5282, - MeshShadingEXT = 5283, - FragmentBarycentricKHR = 5284, - ComputeDerivativeGroupQuadsNV = 5288, - FragmentDensityEXT = 5291, - GroupNonUniformPartitionedNV = 5297, - ShaderNonUniform = 5301, - RuntimeDescriptorArray = 5302, - InputAttachmentArrayDynamicIndexing = 5303, - UniformTexelBufferArrayDynamicIndexing = 5304, - StorageTexelBufferArrayDynamicIndexing = 5305, - UniformBufferArrayNonUniformIndexing = 5306, - SampledImageArrayNonUniformIndexing = 5307, - StorageBufferArrayNonUniformIndexing = 5308, - StorageImageArrayNonUniformIndexing = 5309, - InputAttachmentArrayNonUniformIndexing = 5310, - UniformTexelBufferArrayNonUniformIndexing = 5311, - StorageTexelBufferArrayNonUniformIndexing = 5312, - RayTracingPositionFetchKHR = 5336, - RayTracingNV = 5340, - RayTracingMotionBlurNV = 5341, - VulkanMemoryModel = 5345, - VulkanMemoryModelDeviceScope = 5346, - PhysicalStorageBufferAddresses = 5347, - ComputeDerivativeGroupLinearNV = 5350, - RayTracingProvisionalKHR = 5353, - CooperativeMatrixNV = 5357, - FragmentShaderSampleInterlockEXT = 5363, - FragmentShaderShadingRateInterlockEXT = 5372, - ShaderSMBuiltinsNV = 5373, - FragmentShaderPixelInterlockEXT = 5378, - DemoteToHelperInvocation = 5379, - DisplacementMicromapNV = 5380, - RayTracingOpacityMicromapEXT = 5381, - ShaderInvocationReorderNV = 5383, - BindlessTextureNV = 5390, - RayQueryPositionFetchKHR = 5391, - AtomicFloat16VectorNV = 5404, - RayTracingDisplacementMicromapNV = 5409, - RawAccessChainsNV = 5414, - SubgroupShuffleINTEL = 5568, - SubgroupBufferBlockIOINTEL = 5569, - SubgroupImageBlockIOINTEL = 5570, - SubgroupImageMediaBlockIOINTEL = 5579, - RoundToInfinityINTEL = 5582, - FloatingPointModeINTEL = 5583, - IntegerFunctions2INTEL = 5584, - FunctionPointersINTEL = 5603, - IndirectReferencesINTEL = 5604, - AsmINTEL = 5606, - AtomicFloat32MinMaxEXT = 5612, - AtomicFloat64MinMaxEXT = 5613, - AtomicFloat16MinMaxEXT = 5616, - VectorComputeINTEL = 5617, - VectorAnyINTEL = 5619, - ExpectAssumeKHR = 5629, - SubgroupAvcMotionEstimationINTEL = 5696, - SubgroupAvcMotionEstimationIntraINTEL = 5697, - SubgroupAvcMotionEstimationChromaINTEL = 5698, - VariableLengthArrayINTEL = 5817, - FunctionFloatControlINTEL = 5821, - FPGAMemoryAttributesINTEL = 5824, - FPFastMathModeINTEL = 5837, - ArbitraryPrecisionIntegersINTEL = 5844, - ArbitraryPrecisionFloatingPointINTEL = 5845, - UnstructuredLoopControlsINTEL = 5886, - FPGALoopControlsINTEL = 5888, - KernelAttributesINTEL = 5892, - FPGAKernelAttributesINTEL = 5897, - FPGAMemoryAccessesINTEL = 5898, - FPGAClusterAttributesINTEL = 5904, - LoopFuseINTEL = 5906, - FPGADSPControlINTEL = 5908, - MemoryAccessAliasingINTEL = 5910, - FPGAInvocationPipeliningAttributesINTEL = 5916, - FPGABufferLocationINTEL = 5920, - ArbitraryPrecisionFixedPointINTEL = 5922, - USMStorageClassesINTEL = 5935, - RuntimeAlignedAttributeINTEL = 5939, - IOPipesINTEL = 5943, - BlockingPipesINTEL = 5945, - FPGARegINTEL = 5948, - DotProductInputAll = 6016, - DotProductInput4x8Bit = 6017, - DotProductInput4x8BitPacked = 6018, - DotProduct = 6019, - RayCullMaskKHR = 6020, - CooperativeMatrixKHR = 6022, - BitInstructions = 6025, - GroupNonUniformRotateKHR = 6026, - FloatControls2 = 6029, - AtomicFloat32AddEXT = 6033, - AtomicFloat64AddEXT = 6034, - LongCompositesINTEL = 6089, - OptNoneINTEL = 6094, - AtomicFloat16AddEXT = 6095, - DebugInfoModuleINTEL = 6114, - BFloat16ConversionINTEL = 6115, - SplitBarrierINTEL = 6141, - FPGAClusterAttributesV2INTEL = 6150, - FPGAKernelAttributesv2INTEL = 6161, - FPMaxErrorINTEL = 6169, - FPGALatencyControlINTEL = 6171, - FPGAArgumentInterfacesINTEL = 6174, - GlobalVariableHostAccessINTEL = 6187, - GlobalVariableFPGADecorationsINTEL = 6189, - GroupUniformArithmeticKHR = 6400, - MaskedGatherScatterINTEL = 6427, - CacheControlsINTEL = 6441, - RegisterLimitsINTEL = 6460, - - pub const StorageUniformBufferBlock16 = Capability.StorageBuffer16BitAccess; - pub const StorageUniform16 = Capability.UniformAndStorageBuffer16BitAccess; - pub const ShaderViewportIndexLayerNV = Capability.ShaderViewportIndexLayerEXT; - pub const FragmentBarycentricNV = Capability.FragmentBarycentricKHR; - pub const ShadingRateNV = Capability.FragmentDensityEXT; - pub const ShaderNonUniformEXT = Capability.ShaderNonUniform; - pub const RuntimeDescriptorArrayEXT = Capability.RuntimeDescriptorArray; - pub const InputAttachmentArrayDynamicIndexingEXT = Capability.InputAttachmentArrayDynamicIndexing; - pub const UniformTexelBufferArrayDynamicIndexingEXT = Capability.UniformTexelBufferArrayDynamicIndexing; - pub const StorageTexelBufferArrayDynamicIndexingEXT = Capability.StorageTexelBufferArrayDynamicIndexing; - pub const UniformBufferArrayNonUniformIndexingEXT = Capability.UniformBufferArrayNonUniformIndexing; - pub const SampledImageArrayNonUniformIndexingEXT = Capability.SampledImageArrayNonUniformIndexing; - pub const StorageBufferArrayNonUniformIndexingEXT = Capability.StorageBufferArrayNonUniformIndexing; - pub const StorageImageArrayNonUniformIndexingEXT = Capability.StorageImageArrayNonUniformIndexing; - pub const InputAttachmentArrayNonUniformIndexingEXT = Capability.InputAttachmentArrayNonUniformIndexing; - pub const UniformTexelBufferArrayNonUniformIndexingEXT = Capability.UniformTexelBufferArrayNonUniformIndexing; - pub const StorageTexelBufferArrayNonUniformIndexingEXT = Capability.StorageTexelBufferArrayNonUniformIndexing; - pub const VulkanMemoryModelKHR = Capability.VulkanMemoryModel; - pub const VulkanMemoryModelDeviceScopeKHR = Capability.VulkanMemoryModelDeviceScope; - pub const PhysicalStorageBufferAddressesEXT = Capability.PhysicalStorageBufferAddresses; - pub const DemoteToHelperInvocationEXT = Capability.DemoteToHelperInvocation; - pub const DotProductInputAllKHR = Capability.DotProductInputAll; - pub const DotProductInput4x8BitKHR = Capability.DotProductInput4x8Bit; - pub const DotProductInput4x8BitPackedKHR = Capability.DotProductInput4x8BitPacked; - pub const DotProductKHR = Capability.DotProduct; + matrix = 0, + shader = 1, + geometry = 2, + tessellation = 3, + addresses = 4, + linkage = 5, + kernel = 6, + vector16 = 7, + float16buffer = 8, + float16 = 9, + float64 = 10, + int64 = 11, + int64atomics = 12, + image_basic = 13, + image_read_write = 14, + image_mipmap = 15, + pipes = 17, + groups = 18, + device_enqueue = 19, + literal_sampler = 20, + atomic_storage = 21, + int16 = 22, + tessellation_point_size = 23, + geometry_point_size = 24, + image_gather_extended = 25, + storage_image_multisample = 27, + uniform_buffer_array_dynamic_indexing = 28, + sampled_image_array_dynamic_indexing = 29, + storage_buffer_array_dynamic_indexing = 30, + storage_image_array_dynamic_indexing = 31, + clip_distance = 32, + cull_distance = 33, + image_cube_array = 34, + sample_rate_shading = 35, + image_rect = 36, + sampled_rect = 37, + generic_pointer = 38, + int8 = 39, + input_attachment = 40, + sparse_residency = 41, + min_lod = 42, + sampled1d = 43, + image1d = 44, + sampled_cube_array = 45, + sampled_buffer = 46, + image_buffer = 47, + image_ms_array = 48, + storage_image_extended_formats = 49, + image_query = 50, + derivative_control = 51, + interpolation_function = 52, + transform_feedback = 53, + geometry_streams = 54, + storage_image_read_without_format = 55, + storage_image_write_without_format = 56, + multi_viewport = 57, + subgroup_dispatch = 58, + named_barrier = 59, + pipe_storage = 60, + group_non_uniform = 61, + group_non_uniform_vote = 62, + group_non_uniform_arithmetic = 63, + group_non_uniform_ballot = 64, + group_non_uniform_shuffle = 65, + group_non_uniform_shuffle_relative = 66, + group_non_uniform_clustered = 67, + group_non_uniform_quad = 68, + 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, + subgroup_ballot_khr = 4423, + draw_parameters = 4427, + workgroup_memory_explicit_layout_khr = 4428, + workgroup_memory_explicit_layout8bit_access_khr = 4429, + workgroup_memory_explicit_layout16bit_access_khr = 4430, + subgroup_vote_khr = 4431, + storage_buffer16bit_access = 4433, + uniform_and_storage_buffer16bit_access = 4434, + storage_push_constant16 = 4435, + storage_input_output16 = 4436, + device_group = 4437, + multi_view = 4439, + variable_pointers_storage_buffer = 4441, + variable_pointers = 4442, + atomic_storage_ops = 4445, + sample_mask_post_depth_coverage = 4447, + storage_buffer8bit_access = 4448, + uniform_and_storage_buffer8bit_access = 4449, + storage_push_constant8 = 4450, + 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, + 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, + shader_non_uniform = 5301, + runtime_descriptor_array = 5302, + input_attachment_array_dynamic_indexing = 5303, + uniform_texel_buffer_array_dynamic_indexing = 5304, + storage_texel_buffer_array_dynamic_indexing = 5305, + uniform_buffer_array_non_uniform_indexing = 5306, + sampled_image_array_non_uniform_indexing = 5307, + storage_buffer_array_non_uniform_indexing = 5308, + storage_image_array_non_uniform_indexing = 5309, + input_attachment_array_non_uniform_indexing = 5310, + 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, + 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, + 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, + dot_product = 6019, + ray_cull_mask_khr = 6020, + cooperative_matrix_khr = 6022, + replicated_composites_ext = 6024, + bit_instructions = 6025, + group_non_uniform_rotate_khr = 6026, + float_controls2 = 6029, + 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) { - RayQueryCandidateIntersectionKHR = 0, - RayQueryCommittedIntersectionKHR = 1, + ray_query_candidate_intersection_khr = 0, + ray_query_committed_intersection_khr = 1, }; pub const RayQueryCommittedIntersectionType = enum(u32) { - RayQueryCommittedIntersectionNoneKHR = 0, - RayQueryCommittedIntersectionTriangleKHR = 1, - RayQueryCommittedIntersectionGeneratedKHR = 2, + 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) { - RayQueryCandidateIntersectionTriangleKHR = 0, - RayQueryCandidateIntersectionAABBKHR = 1, + ray_query_candidate_intersection_triangle_khr = 0, + ray_query_candidate_intersection_aabbkhr = 1, }; pub const PackedVectorFormat = enum(u32) { - PackedVectorFormat4x8Bit = 0, - - pub const PackedVectorFormat4x8BitKHR = PackedVectorFormat.PackedVectorFormat4x8Bit; + packed_vector_format4x8bit = 0, }; pub const CooperativeMatrixOperands = packed struct { - MatrixASignedComponentsKHR: bool = false, - MatrixBSignedComponentsKHR: bool = false, - MatrixCSignedComponentsKHR: bool = false, - MatrixResultSignedComponentsKHR: bool = false, - SaturatingAccumulationKHR: bool = false, + 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, @@ -4935,52 +5213,75 @@ pub const CooperativeMatrixOperands = packed struct { _reserved_bit_31: bool = false, }; pub const CooperativeMatrixLayout = enum(u32) { - RowMajorKHR = 0, - ColumnMajorKHR = 1, + row_major_khr = 0, + column_major_khr = 1, + row_blocked_interleaved_arm = 4202, + column_blocked_interleaved_arm = 4203, }; pub const CooperativeMatrixUse = enum(u32) { - MatrixAKHR = 0, - MatrixBKHR = 1, - MatrixAccumulatorKHR = 2, + matrix_akhr = 0, + matrix_bkhr = 1, + matrix_accumulator_khr = 2, }; -pub const InitializationModeQualifier = enum(u32) { - InitOnDeviceReprogramINTEL = 0, - InitOnDeviceResetINTEL = 1, -}; -pub const LoadCacheControl = enum(u32) { - UncachedINTEL = 0, - CachedINTEL = 1, - StreamingINTEL = 2, - InvalidateAfterReadINTEL = 3, - ConstCachedINTEL = 4, -}; -pub const StoreCacheControl = enum(u32) { - UncachedINTEL = 0, - WriteThroughINTEL = 1, - WriteBackINTEL = 2, - StreamingINTEL = 3, +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, + _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 NamedMaximumNumberOfRegisters = enum(u32) { - AutoINTEL = 0, +pub const TensorClampMode = enum(u32) { + undefined = 0, + constant = 1, + clamp_to_edge = 2, + repeat = 3, + repeat_mirrored = 4, }; -pub const @"OpenCL.DebugInfo.100.DebugInfoFlags" = packed struct { - FlagIsProtected: bool = false, - FlagIsPrivate: bool = false, - FlagIsLocal: bool = false, - FlagIsDefinition: bool = false, - FlagFwdDecl: bool = false, - FlagArtificial: bool = false, - FlagExplicit: bool = false, - FlagPrototyped: bool = false, - FlagObjectPointer: bool = false, - FlagStaticMember: bool = false, - FlagIndirectVariable: bool = false, - FlagLValueReference: bool = false, - FlagRValueReference: bool = false, - FlagIsOptimized: bool = false, - FlagIsEnumClass: bool = false, - FlagTypePassByValue: bool = false, - FlagTypePassByReference: bool = false, +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, @@ -4996,76 +5297,81 @@ pub const @"OpenCL.DebugInfo.100.DebugInfoFlags" = 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, + _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 @"OpenCL.DebugInfo.100.DebugBaseTypeAttributeEncoding" = enum(u32) { - Unspecified = 0, - Address = 1, - Boolean = 2, - Float = 3, - Signed = 4, - SignedChar = 5, - Unsigned = 6, - UnsignedChar = 7, -}; -pub const @"OpenCL.DebugInfo.100.DebugCompositeType" = enum(u32) { - Class = 0, - Structure = 1, - Union = 2, +pub const InitializationModeQualifier = enum(u32) { + init_on_device_reprogram_intel = 0, + init_on_device_reset_intel = 1, }; -pub const @"OpenCL.DebugInfo.100.DebugTypeQualifier" = enum(u32) { - ConstType = 0, - VolatileType = 1, - RestrictType = 2, - AtomicType = 3, +pub const LoadCacheControl = enum(u32) { + uncached_intel = 0, + cached_intel = 1, + streaming_intel = 2, + invalidate_after_read_intel = 3, + const_cached_intel = 4, }; -pub const @"OpenCL.DebugInfo.100.DebugOperation" = enum(u32) { - Deref = 0, - Plus = 1, - Minus = 2, - PlusUconst = 3, - BitPiece = 4, - Swap = 5, - Xderef = 6, - StackValue = 7, - Constu = 8, - Fragment = 9, - - pub const Extended = union(@"OpenCL.DebugInfo.100.DebugOperation") { - Deref, - Plus, - Minus, - PlusUconst: struct { literal_integer: LiteralInteger }, - BitPiece: struct { literal_integer_0: LiteralInteger, literal_integer_1: LiteralInteger }, - Swap, - Xderef, - StackValue, - Constu: struct { literal_integer: LiteralInteger }, - Fragment: struct { literal_integer_0: LiteralInteger, literal_integer_1: LiteralInteger }, - }; +pub const StoreCacheControl = enum(u32) { + uncached_intel = 0, + write_through_intel = 1, + write_back_intel = 2, + streaming_intel = 3, }; -pub const @"OpenCL.DebugInfo.100.DebugImportedEntity" = enum(u32) { - ImportedModule = 0, - ImportedDeclaration = 1, +pub const NamedMaximumNumberOfRegisters = enum(u32) { + auto_intel = 0, }; -pub const @"NonSemantic.Shader.DebugInfo.100.DebugInfoFlags" = packed struct { - FlagIsProtected: bool = false, - FlagIsPrivate: bool = false, - FlagIsLocal: bool = false, - FlagIsDefinition: bool = false, - FlagFwdDecl: bool = false, - FlagArtificial: bool = false, - FlagExplicit: bool = false, - FlagPrototyped: bool = false, - FlagObjectPointer: bool = false, - FlagStaticMember: bool = false, - FlagIndirectVariable: bool = false, - FlagLValueReference: bool = false, - FlagRValueReference: bool = false, - FlagIsOptimized: bool = false, - FlagIsEnumClass: bool = false, - FlagTypePassByValue: bool = false, - FlagTypePassByReference: bool = false, - FlagUnknownPhysicalLayout: bool = false, +pub const MatrixMultiplyAccumulateOperands = packed struct { + matrix_a_signed_components_intel: bool = false, + matrix_b_signed_components_intel: bool = false, + matrix_cb_float16intel: bool = false, + matrix_result_b_float16intel: bool = false, + matrix_a_packed_int8intel: bool = false, + matrix_b_packed_int8intel: bool = false, + matrix_a_packed_int4intel: bool = false, + matrix_b_packed_int4intel: bool = false, + matrix_atf32intel: bool = false, + matrix_btf32intel: bool = false, + matrix_a_packed_float16intel: bool = false, + matrix_b_packed_float16intel: bool = false, + matrix_a_packed_b_float16intel: bool = false, + matrix_b_packed_b_float16intel: 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, @@ -5081,12 +5387,40 @@ pub const @"NonSemantic.Shader.DebugInfo.100.DebugInfoFlags" = packed struct { _reserved_bit_30: bool = false, _reserved_bit_31: bool = false, }; -pub const @"NonSemantic.Shader.DebugInfo.100.BuildIdentifierFlags" = packed struct { - IdentifierPossibleDuplicates: bool = false, - _reserved_bit_1: bool = false, - _reserved_bit_2: bool = false, - _reserved_bit_3: bool = false, - _reserved_bit_4: bool = false, +pub const FPEncoding = enum(u32) { + b_float16khr = 0, + float8e4m3ext = 4214, + float8e5m2ext = 4215, +}; +pub const CooperativeVectorMatrixLayout = enum(u32) { + row_major_nv = 0, + column_major_nv = 1, + inferencing_optimal_nv = 2, + training_optimal_nv = 3, +}; +pub const ComponentType = enum(u32) { + float16nv = 0, + float32nv = 1, + float64nv = 2, + signed_int8nv = 3, + signed_int16nv = 4, + signed_int32nv = 5, + signed_int64nv = 6, + unsigned_int8nv = 7, + unsigned_int16nv = 8, + unsigned_int32nv = 9, + unsigned_int64nv = 10, + signed_int8packed_nv = 1000491000, + unsigned_int8packed_nv = 1000491001, + float_e4m3nv = 1000491002, + float_e5m2nv = 1000491003, +}; +pub const TensorOperands = packed struct { + nontemporal_arm: bool = false, + out_of_bounds_value_arm: bool = false, + make_element_available_arm: bool = false, + make_element_visible_arm: bool = false, + non_private_element_arm: bool = false, _reserved_bit_5: bool = false, _reserved_bit_6: bool = false, _reserved_bit_7: bool = false, @@ -5114,59 +5448,205 @@ pub const @"NonSemantic.Shader.DebugInfo.100.BuildIdentifierFlags" = packed stru _reserved_bit_29: bool = false, _reserved_bit_30: bool = false, _reserved_bit_31: bool = false, + + pub const Extended = struct { + nontemporal_arm: bool = false, + out_of_bounds_value_arm: ?struct { id_ref: Id } = null, + make_element_available_arm: ?struct { id_ref: Id } = null, + make_element_visible_arm: ?struct { id_ref: Id } = null, + non_private_element_arm: 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 @"NonSemantic.Shader.DebugInfo.100.DebugBaseTypeAttributeEncoding" = enum(u32) { - Unspecified = 0, - Address = 1, - Boolean = 2, - Float = 3, - Signed = 4, - SignedChar = 5, - Unsigned = 6, - UnsignedChar = 7, +pub const @"DebugInfo.DebugInfoFlags" = packed struct { + flag_is_protected: bool = false, + flag_is_private: bool = false, + flag_is_local: bool = false, + flag_is_definition: bool = false, + flag_fwd_decl: bool = false, + flag_artificial: bool = false, + flag_explicit: bool = false, + flag_prototyped: bool = false, + flag_object_pointer: bool = false, + flag_static_member: bool = false, + flag_indirect_variable: bool = false, + flag_l_value_reference: bool = false, + flag_r_value_reference: bool = false, + flag_is_optimized: 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 @"NonSemantic.Shader.DebugInfo.100.DebugCompositeType" = enum(u32) { - Class = 0, - Structure = 1, - Union = 2, +pub const @"DebugInfo.DebugBaseTypeAttributeEncoding" = enum(u32) { + unspecified = 0, + address = 1, + boolean = 2, + float = 4, + signed = 5, + signed_char = 6, + unsigned = 7, + unsigned_char = 8, }; -pub const @"NonSemantic.Shader.DebugInfo.100.DebugTypeQualifier" = enum(u32) { - ConstType = 0, - VolatileType = 1, - RestrictType = 2, - AtomicType = 3, +pub const @"DebugInfo.DebugCompositeType" = enum(u32) { + class = 0, + structure = 1, + @"union" = 2, }; -pub const @"NonSemantic.Shader.DebugInfo.100.DebugOperation" = enum(u32) { - Deref = 0, - Plus = 1, - Minus = 2, - PlusUconst = 3, - BitPiece = 4, - Swap = 5, - Xderef = 6, - StackValue = 7, - Constu = 8, - Fragment = 9, +pub const @"DebugInfo.DebugTypeQualifier" = enum(u32) { + const_type = 0, + volatile_type = 1, + restrict_type = 2, +}; +pub const @"DebugInfo.DebugOperation" = enum(u32) { + deref = 0, + plus = 1, + minus = 2, + plus_uconst = 3, + bit_piece = 4, + swap = 5, + xderef = 6, + stack_value = 7, + constu = 8, - pub const Extended = union(@"NonSemantic.Shader.DebugInfo.100.DebugOperation") { - Deref, - Plus, - Minus, - PlusUconst: struct { id_ref: IdRef }, - BitPiece: struct { id_ref_0: IdRef, id_ref_1: IdRef }, - Swap, - Xderef, - StackValue, - Constu: struct { id_ref: IdRef }, - Fragment: struct { id_ref_0: IdRef, id_ref_1: IdRef }, + pub const Extended = union(@"DebugInfo.DebugOperation") { + deref, + plus, + minus, + plus_uconst: struct { literal_integer: LiteralInteger }, + bit_piece: struct { literal_integer_0: LiteralInteger, literal_integer_1: LiteralInteger }, + swap, + xderef, + stack_value, + constu: struct { literal_integer: LiteralInteger }, }; }; -pub const @"NonSemantic.Shader.DebugInfo.100.DebugImportedEntity" = enum(u32) { - ImportedModule = 0, - ImportedDeclaration = 1, +pub const @"OpenCL.DebugInfo.100.DebugInfoFlags" = packed struct { + flag_is_protected: bool = false, + flag_is_private: bool = false, + flag_is_local: bool = false, + flag_is_definition: bool = false, + flag_fwd_decl: bool = false, + flag_artificial: bool = false, + flag_explicit: bool = false, + flag_prototyped: bool = false, + flag_object_pointer: bool = false, + flag_static_member: bool = false, + flag_indirect_variable: bool = false, + flag_l_value_reference: bool = false, + flag_r_value_reference: bool = false, + flag_is_optimized: bool = false, + flag_is_enum_class: bool = false, + flag_type_pass_by_value: bool = false, + flag_type_pass_by_reference: 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 @"OpenCL.DebugInfo.100.DebugBaseTypeAttributeEncoding" = enum(u32) { + unspecified = 0, + address = 1, + boolean = 2, + float = 3, + signed = 4, + signed_char = 5, + unsigned = 6, + unsigned_char = 7, +}; +pub const @"OpenCL.DebugInfo.100.DebugCompositeType" = enum(u32) { + class = 0, + structure = 1, + @"union" = 2, +}; +pub const @"OpenCL.DebugInfo.100.DebugTypeQualifier" = enum(u32) { + const_type = 0, + volatile_type = 1, + restrict_type = 2, + atomic_type = 3, +}; +pub const @"OpenCL.DebugInfo.100.DebugOperation" = enum(u32) { + deref = 0, + plus = 1, + minus = 2, + plus_uconst = 3, + bit_piece = 4, + swap = 5, + xderef = 6, + stack_value = 7, + constu = 8, + fragment = 9, + + pub const Extended = union(@"OpenCL.DebugInfo.100.DebugOperation") { + deref, + plus, + minus, + plus_uconst: struct { literal_integer: LiteralInteger }, + bit_piece: struct { literal_integer_0: LiteralInteger, literal_integer_1: LiteralInteger }, + swap, + xderef, + stack_value, + constu: struct { literal_integer: LiteralInteger }, + fragment: struct { literal_integer_0: LiteralInteger, literal_integer_1: LiteralInteger }, + }; +}; +pub const @"OpenCL.DebugInfo.100.DebugImportedEntity" = enum(u32) { + imported_module = 0, + imported_declaration = 1, }; pub const @"NonSemantic.ClspvReflection.6.KernelPropertyFlags" = packed struct { - MayUsePrintf: bool = false, + may_use_printf: bool = false, _reserved_bit_1: bool = false, _reserved_bit_2: bool = false, _reserved_bit_3: bool = false, @@ -5199,21 +5679,55 @@ pub const @"NonSemantic.ClspvReflection.6.KernelPropertyFlags" = packed struct { _reserved_bit_30: bool = false, _reserved_bit_31: bool = false, }; -pub const @"DebugInfo.DebugInfoFlags" = packed struct { - FlagIsProtected: bool = false, - FlagIsPrivate: bool = false, - FlagIsLocal: bool = false, - FlagIsDefinition: bool = false, - FlagFwdDecl: bool = false, - FlagArtificial: bool = false, - FlagExplicit: bool = false, - FlagPrototyped: bool = false, - FlagObjectPointer: bool = false, - FlagStaticMember: bool = false, - FlagIndirectVariable: bool = false, - FlagLValueReference: bool = false, - FlagRValueReference: bool = false, - FlagIsOptimized: bool = false, +pub const @"NonSemantic.Shader.DebugInfo.100.DebugInfoFlags" = packed struct { + flag_is_protected: bool = false, + flag_is_private: bool = false, + flag_is_local: bool = false, + flag_is_definition: bool = false, + flag_fwd_decl: bool = false, + flag_artificial: bool = false, + flag_explicit: bool = false, + flag_prototyped: bool = false, + flag_object_pointer: bool = false, + flag_static_member: bool = false, + flag_indirect_variable: bool = false, + flag_l_value_reference: bool = false, + flag_r_value_reference: bool = false, + flag_is_optimized: bool = false, + flag_is_enum_class: bool = false, + flag_type_pass_by_value: bool = false, + flag_type_pass_by_reference: bool = false, + flag_unknown_physical_layout: 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 @"NonSemantic.Shader.DebugInfo.100.BuildIdentifierFlags" = packed struct { + identifier_possible_duplicates: bool = false, + _reserved_bit_1: 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, @@ -5233,11298 +5747,12669 @@ pub const @"DebugInfo.DebugInfoFlags" = packed struct { _reserved_bit_30: bool = false, _reserved_bit_31: bool = false, }; -pub const @"DebugInfo.DebugBaseTypeAttributeEncoding" = enum(u32) { - Unspecified = 0, - Address = 1, - Boolean = 2, - Float = 4, - Signed = 5, - SignedChar = 6, - Unsigned = 7, - UnsignedChar = 8, +pub const @"NonSemantic.Shader.DebugInfo.100.DebugBaseTypeAttributeEncoding" = enum(u32) { + unspecified = 0, + address = 1, + boolean = 2, + float = 3, + signed = 4, + signed_char = 5, + unsigned = 6, + unsigned_char = 7, }; -pub const @"DebugInfo.DebugCompositeType" = enum(u32) { - Class = 0, - Structure = 1, - Union = 2, +pub const @"NonSemantic.Shader.DebugInfo.100.DebugCompositeType" = enum(u32) { + class = 0, + structure = 1, + @"union" = 2, }; -pub const @"DebugInfo.DebugTypeQualifier" = enum(u32) { - ConstType = 0, - VolatileType = 1, - RestrictType = 2, +pub const @"NonSemantic.Shader.DebugInfo.100.DebugTypeQualifier" = enum(u32) { + const_type = 0, + volatile_type = 1, + restrict_type = 2, + atomic_type = 3, }; -pub const @"DebugInfo.DebugOperation" = enum(u32) { - Deref = 0, - Plus = 1, - Minus = 2, - PlusUconst = 3, - BitPiece = 4, - Swap = 5, - Xderef = 6, - StackValue = 7, - Constu = 8, +pub const @"NonSemantic.Shader.DebugInfo.100.DebugOperation" = enum(u32) { + deref = 0, + plus = 1, + minus = 2, + plus_uconst = 3, + bit_piece = 4, + swap = 5, + xderef = 6, + stack_value = 7, + constu = 8, + fragment = 9, - pub const Extended = union(@"DebugInfo.DebugOperation") { - Deref, - Plus, - Minus, - PlusUconst: struct { literal_integer: LiteralInteger }, - BitPiece: struct { literal_integer_0: LiteralInteger, literal_integer_1: LiteralInteger }, - Swap, - Xderef, - StackValue, - Constu: struct { literal_integer: LiteralInteger }, + pub const Extended = union(@"NonSemantic.Shader.DebugInfo.100.DebugOperation") { + deref, + plus, + minus, + plus_uconst: struct { id_ref: Id }, + bit_piece: struct { id_ref_0: Id, id_ref_1: Id }, + swap, + xderef, + stack_value, + constu: struct { id_ref: Id }, + fragment: struct { id_ref_0: Id, id_ref_1: Id }, }; }; +pub const @"NonSemantic.Shader.DebugInfo.100.DebugImportedEntity" = enum(u32) { + imported_module = 0, + imported_declaration = 1, +}; pub const InstructionSet = enum { core, - @"OpenCL.std", - @"GLSL.std.450", - @"OpenCL.DebugInfo.100", - SPV_AMD_shader_ballot, - @"NonSemantic.Shader.DebugInfo.100", - @"NonSemantic.VkspReflection", - @"NonSemantic.ClspvReflection.6", - SPV_AMD_gcn_shader, - SPV_AMD_shader_trinary_minmax, - DebugInfo, - @"NonSemantic.DebugPrintf", - SPV_AMD_shader_explicit_vertex_parameter, - @"NonSemantic.DebugBreak", + spv_amd_shader_trinary_minmax, + spv_ext_inst_type_tosa_001000_1, + non_semantic_vksp_reflection, + spv_amd_shader_explicit_vertex_parameter, + debug_info, + non_semantic_debug_break, + open_cl_debug_info_100, + non_semantic_clspv_reflection_6, + glsl_std_450, + spv_amd_shader_ballot, + non_semantic_debug_printf, + spv_amd_gcn_shader, + open_cl_std, + non_semantic_shader_debug_info_100, zig, pub fn instructions(self: InstructionSet) []const Instruction { return switch (self) { - .core => &[_]Instruction{ + .core => &.{ .{ .name = "OpNop", .opcode = 0, - .operands = &[_]Operand{}, + .operands = &.{}, }, .{ .name = "OpUndef", .opcode = 1, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, }, }, .{ .name = "OpSourceContinued", .opcode = 2, - .operands = &[_]Operand{ - .{ .kind = .LiteralString, .quantifier = .required }, + .operands = &.{ + .{ .kind = .literal_string, .quantifier = .required }, }, }, .{ .name = "OpSource", .opcode = 3, - .operands = &[_]Operand{ - .{ .kind = .SourceLanguage, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .optional }, - .{ .kind = .LiteralString, .quantifier = .optional }, + .operands = &.{ + .{ .kind = .source_language, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .optional }, + .{ .kind = .literal_string, .quantifier = .optional }, }, }, .{ .name = "OpSourceExtension", .opcode = 4, - .operands = &[_]Operand{ - .{ .kind = .LiteralString, .quantifier = .required }, + .operands = &.{ + .{ .kind = .literal_string, .quantifier = .required }, }, }, .{ .name = "OpName", .opcode = 5, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralString, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .literal_string, .quantifier = .required }, }, }, .{ .name = "OpMemberName", .opcode = 6, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralString, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_string, .quantifier = .required }, }, }, .{ .name = "OpString", .opcode = 7, - .operands = &[_]Operand{ - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .LiteralString, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .literal_string, .quantifier = .required }, }, }, .{ .name = "OpLine", .opcode = 8, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, }, }, .{ .name = "OpExtension", .opcode = 10, - .operands = &[_]Operand{ - .{ .kind = .LiteralString, .quantifier = .required }, + .operands = &.{ + .{ .kind = .literal_string, .quantifier = .required }, }, }, .{ .name = "OpExtInstImport", .opcode = 11, - .operands = &[_]Operand{ - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .LiteralString, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .literal_string, .quantifier = .required }, }, }, .{ .name = "OpExtInst", .opcode = 12, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralExtInstInteger, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .variadic }, + .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 = &[_]Operand{ - .{ .kind = .AddressingModel, .quantifier = .required }, - .{ .kind = .MemoryModel, .quantifier = .required }, + .operands = &.{ + .{ .kind = .addressing_model, .quantifier = .required }, + .{ .kind = .memory_model, .quantifier = .required }, }, }, .{ .name = "OpEntryPoint", .opcode = 15, - .operands = &[_]Operand{ - .{ .kind = .ExecutionModel, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralString, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .variadic }, + .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 = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .ExecutionMode, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .execution_mode, .quantifier = .required }, }, }, .{ .name = "OpCapability", .opcode = 17, - .operands = &[_]Operand{ - .{ .kind = .Capability, .quantifier = .required }, + .operands = &.{ + .{ .kind = .capability, .quantifier = .required }, }, }, .{ .name = "OpTypeVoid", .opcode = 19, - .operands = &[_]Operand{ - .{ .kind = .IdResult, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result, .quantifier = .required }, }, }, .{ .name = "OpTypeBool", .opcode = 20, - .operands = &[_]Operand{ - .{ .kind = .IdResult, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result, .quantifier = .required }, }, }, .{ .name = "OpTypeInt", .opcode = 21, - .operands = &[_]Operand{ - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, }, }, .{ .name = "OpTypeFloat", .opcode = 22, - .operands = &[_]Operand{ - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .fp_encoding, .quantifier = .optional }, }, }, .{ .name = "OpTypeVector", .opcode = 23, - .operands = &[_]Operand{ - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, }, }, .{ .name = "OpTypeMatrix", .opcode = 24, - .operands = &[_]Operand{ - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, }, }, .{ .name = "OpTypeImage", .opcode = 25, - .operands = &[_]Operand{ - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .Dim, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .ImageFormat, .quantifier = .required }, - .{ .kind = .AccessQualifier, .quantifier = .optional }, + .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 = &[_]Operand{ - .{ .kind = .IdResult, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result, .quantifier = .required }, }, }, .{ .name = "OpTypeSampledImage", .opcode = 27, - .operands = &[_]Operand{ - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpTypeArray", .opcode = 28, - .operands = &[_]Operand{ - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpTypeRuntimeArray", .opcode = 29, - .operands = &[_]Operand{ - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpTypeStruct", .opcode = 30, - .operands = &[_]Operand{ - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .variadic }, + .operands = &.{ + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .variadic }, }, }, .{ .name = "OpTypeOpaque", .opcode = 31, - .operands = &[_]Operand{ - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .LiteralString, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .literal_string, .quantifier = .required }, }, }, .{ .name = "OpTypePointer", .opcode = 32, - .operands = &[_]Operand{ - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .StorageClass, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .storage_class, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpTypeFunction", .opcode = 33, - .operands = &[_]Operand{ - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .variadic }, + .operands = &.{ + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .variadic }, }, }, .{ .name = "OpTypeEvent", .opcode = 34, - .operands = &[_]Operand{ - .{ .kind = .IdResult, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result, .quantifier = .required }, }, }, .{ .name = "OpTypeDeviceEvent", .opcode = 35, - .operands = &[_]Operand{ - .{ .kind = .IdResult, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result, .quantifier = .required }, }, }, .{ .name = "OpTypeReserveId", .opcode = 36, - .operands = &[_]Operand{ - .{ .kind = .IdResult, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result, .quantifier = .required }, }, }, .{ .name = "OpTypeQueue", .opcode = 37, - .operands = &[_]Operand{ - .{ .kind = .IdResult, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result, .quantifier = .required }, }, }, .{ .name = "OpTypePipe", .opcode = 38, - .operands = &[_]Operand{ - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .AccessQualifier, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .access_qualifier, .quantifier = .required }, }, }, .{ .name = "OpTypeForwardPointer", .opcode = 39, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .StorageClass, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .storage_class, .quantifier = .required }, }, }, .{ .name = "OpConstantTrue", .opcode = 41, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, }, }, .{ .name = "OpConstantFalse", .opcode = 42, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, }, }, .{ .name = "OpConstant", .opcode = 43, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .LiteralContextDependentNumber, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .literal_context_dependent_number, .quantifier = .required }, }, }, .{ .name = "OpConstantComposite", .opcode = 44, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .variadic }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .variadic }, }, }, .{ .name = "OpConstantSampler", .opcode = 45, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .SamplerAddressingMode, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .SamplerFilterMode, .quantifier = .required }, + .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 = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, }, }, .{ .name = "OpSpecConstantTrue", .opcode = 48, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, }, }, .{ .name = "OpSpecConstantFalse", .opcode = 49, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, }, }, .{ .name = "OpSpecConstant", .opcode = 50, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .LiteralContextDependentNumber, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .literal_context_dependent_number, .quantifier = .required }, }, }, .{ .name = "OpSpecConstantComposite", .opcode = 51, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .variadic }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .variadic }, }, }, .{ .name = "OpSpecConstantOp", .opcode = 52, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .LiteralSpecConstantOpInteger, .quantifier = .required }, + .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 = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .FunctionControl, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, }, }, .{ .name = "OpFunctionEnd", .opcode = 56, - .operands = &[_]Operand{}, + .operands = &.{}, }, .{ .name = "OpFunctionCall", .opcode = 57, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .variadic }, + .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, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .StorageClass, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .optional }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .storage_class, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .optional }, }, }, .{ .name = "OpImageTexelPointer", .opcode = 60, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .MemoryAccess, .quantifier = .optional }, + .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, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .MemoryAccess, .quantifier = .optional }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .memory_access, .quantifier = .optional }, }, }, .{ .name = "OpCopyMemory", .opcode = 63, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .MemoryAccess, .quantifier = .optional }, - .{ .kind = .MemoryAccess, .quantifier = .optional }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .memory_access, .quantifier = .optional }, + .{ .kind = .memory_access, .quantifier = .optional }, }, }, .{ .name = "OpCopyMemorySized", .opcode = 64, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .MemoryAccess, .quantifier = .optional }, - .{ .kind = .MemoryAccess, .quantifier = .optional }, + .operands = &.{ + .{ .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, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .variadic }, + .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, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .variadic }, + .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, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .variadic }, + .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, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .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, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpInBoundsPtrAccessChain", .opcode = 70, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .variadic }, + .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, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .Decoration, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .decoration, .quantifier = .required }, }, }, .{ .name = "OpMemberDecorate", .opcode = 72, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .Decoration, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .decoration, .quantifier = .required }, }, }, .{ .name = "OpDecorationGroup", .opcode = 73, - .operands = &[_]Operand{ - .{ .kind = .IdResult, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result, .quantifier = .required }, }, }, .{ .name = "OpGroupDecorate", .opcode = 74, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .variadic }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .variadic }, }, }, .{ .name = "OpGroupMemberDecorate", .opcode = 75, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .PairIdRefLiteralInteger, .quantifier = .variadic }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .pair_id_ref_literal_integer, .quantifier = .variadic }, }, }, .{ .name = "OpVectorExtractDynamic", .opcode = 77, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .variadic }, + .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, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .variadic }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .variadic }, }, }, .{ .name = "OpCompositeExtract", .opcode = 81, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .variadic }, + .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, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .variadic }, + .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 = "OpCopyObject", .opcode = 83, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpTranspose", .opcode = 84, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSampledImage", .opcode = 86, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpImageSampleImplicitLod", .opcode = 87, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .ImageOperands, .quantifier = .optional }, + .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, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .ImageOperands, .quantifier = .required }, + .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, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .ImageOperands, .quantifier = .optional }, + .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, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .ImageOperands, .quantifier = .required }, + .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, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .ImageOperands, .quantifier = .optional }, + .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, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .ImageOperands, .quantifier = .required }, + .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, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .ImageOperands, .quantifier = .optional }, + .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, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .ImageOperands, .quantifier = .required }, + .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, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .ImageOperands, .quantifier = .optional }, + .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, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .ImageOperands, .quantifier = .optional }, + .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, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .ImageOperands, .quantifier = .optional }, + .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, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .ImageOperands, .quantifier = .optional }, + .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, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .ImageOperands, .quantifier = .optional }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .image_operands, .quantifier = .optional }, }, }, .{ .name = "OpImage", .opcode = 100, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpImageQueryFormat", .opcode = 101, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpImageQueryOrder", .opcode = 102, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpImageQuerySizeLod", .opcode = 103, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpImageQuerySize", .opcode = 104, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpImageQueryLod", .opcode = 105, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpImageQueryLevels", .opcode = 106, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpImageQuerySamples", .opcode = 107, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpConvertFToU", .opcode = 109, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpConvertFToS", .opcode = 110, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpConvertSToF", .opcode = 111, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpConvertUToF", .opcode = 112, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpUConvert", .opcode = 113, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSConvert", .opcode = 114, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpFConvert", .opcode = 115, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpQuantizeToF16", .opcode = 116, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpConvertPtrToU", .opcode = 117, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSatConvertSToU", .opcode = 118, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSatConvertUToS", .opcode = 119, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpConvertUToPtr", .opcode = 120, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpPtrCastToGeneric", .opcode = 121, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpGenericCastToPtr", .opcode = 122, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpGenericCastToPtrExplicit", .opcode = 123, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .StorageClass, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .storage_class, .quantifier = .required }, }, }, .{ .name = "OpBitcast", .opcode = 124, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSNegate", .opcode = 126, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpFNegate", .opcode = 127, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpIAdd", .opcode = 128, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpFAdd", .opcode = 129, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpISub", .opcode = 130, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpFSub", .opcode = 131, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpIMul", .opcode = 132, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpFMul", .opcode = 133, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpUDiv", .opcode = 134, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSDiv", .opcode = 135, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpFDiv", .opcode = 136, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpUMod", .opcode = 137, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSRem", .opcode = 138, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSMod", .opcode = 139, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpFRem", .opcode = 140, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpFMod", .opcode = 141, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpVectorTimesScalar", .opcode = 142, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpMatrixTimesScalar", .opcode = 143, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpVectorTimesMatrix", .opcode = 144, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpMatrixTimesVector", .opcode = 145, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpMatrixTimesMatrix", .opcode = 146, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpOuterProduct", .opcode = 147, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpDot", .opcode = 148, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpIAddCarry", .opcode = 149, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpISubBorrow", .opcode = 150, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpUMulExtended", .opcode = 151, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSMulExtended", .opcode = 152, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpAny", .opcode = 154, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpAll", .opcode = 155, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpIsNan", .opcode = 156, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpIsInf", .opcode = 157, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpIsFinite", .opcode = 158, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpIsNormal", .opcode = 159, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSignBitSet", .opcode = 160, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpLessOrGreater", .opcode = 161, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSelect", .opcode = 169, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpUGreaterThanEqual", .opcode = 174, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSGreaterThanEqual", .opcode = 175, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpULessThan", .opcode = 176, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSLessThan", .opcode = 177, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpULessThanEqual", .opcode = 178, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSLessThanEqual", .opcode = 179, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpFOrdEqual", .opcode = 180, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpFUnordEqual", .opcode = 181, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpFOrdNotEqual", .opcode = 182, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpFUnordNotEqual", .opcode = 183, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpFOrdLessThan", .opcode = 184, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpFUnordLessThan", .opcode = 185, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpFOrdGreaterThan", .opcode = 186, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpFUnordGreaterThan", .opcode = 187, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpFOrdLessThanEqual", .opcode = 188, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpFUnordLessThanEqual", .opcode = 189, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpFOrdGreaterThanEqual", .opcode = 190, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpFUnordGreaterThanEqual", .opcode = 191, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpShiftRightLogical", .opcode = 194, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpShiftRightArithmetic", .opcode = 195, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpShiftLeftLogical", .opcode = 196, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpBitwiseAnd", .opcode = 199, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpNot", .opcode = 200, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpBitFieldInsert", .opcode = 201, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpBitFieldSExtract", .opcode = 202, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpBitFieldUExtract", .opcode = 203, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpBitReverse", .opcode = 204, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpBitCount", .opcode = 205, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpDPdx", .opcode = 207, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpDPdy", .opcode = 208, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpFwidth", .opcode = 209, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpDPdxFine", .opcode = 210, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpDPdyFine", .opcode = 211, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpFwidthFine", .opcode = 212, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpDPdxCoarse", .opcode = 213, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpDPdyCoarse", .opcode = 214, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpFwidthCoarse", .opcode = 215, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpEmitVertex", .opcode = 218, - .operands = &[_]Operand{}, + .operands = &.{}, }, .{ .name = "OpEndPrimitive", .opcode = 219, - .operands = &[_]Operand{}, + .operands = &.{}, }, .{ .name = "OpEmitStreamVertex", .opcode = 220, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpEndStreamPrimitive", .opcode = 221, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpControlBarrier", .opcode = 224, - .operands = &[_]Operand{ - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .IdMemorySemantics, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_scope, .quantifier = .required }, + .{ .kind = .id_scope, .quantifier = .required }, + .{ .kind = .id_memory_semantics, .quantifier = .required }, }, }, .{ .name = "OpMemoryBarrier", .opcode = 225, - .operands = &[_]Operand{ - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .IdMemorySemantics, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_scope, .quantifier = .required }, + .{ .kind = .id_memory_semantics, .quantifier = .required }, }, }, .{ .name = "OpAtomicLoad", .opcode = 227, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .IdMemorySemantics, .quantifier = .required }, + .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 = "OpAtomicStore", .opcode = 228, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .IdMemorySemantics, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .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, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .IdMemorySemantics, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpAtomicCompareExchange", .opcode = 230, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .IdMemorySemantics, .quantifier = .required }, - .{ .kind = .IdMemorySemantics, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpAtomicCompareExchangeWeak", .opcode = 231, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .IdMemorySemantics, .quantifier = .required }, - .{ .kind = .IdMemorySemantics, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpAtomicIIncrement", .opcode = 232, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .IdMemorySemantics, .quantifier = .required }, + .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, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .IdMemorySemantics, .quantifier = .required }, + .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 = "OpAtomicIAdd", .opcode = 234, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .IdMemorySemantics, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpAtomicISub", .opcode = 235, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .IdMemorySemantics, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpAtomicSMin", .opcode = 236, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .IdMemorySemantics, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpAtomicUMin", .opcode = 237, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .IdMemorySemantics, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpAtomicSMax", .opcode = 238, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .IdMemorySemantics, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpAtomicUMax", .opcode = 239, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .IdMemorySemantics, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpAtomicAnd", .opcode = 240, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .IdMemorySemantics, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpAtomicOr", .opcode = 241, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .IdMemorySemantics, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpAtomicXor", .opcode = 242, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .IdMemorySemantics, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpPhi", .opcode = 245, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .PairIdRefIdRef, .quantifier = .variadic }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .pair_id_ref_id_ref, .quantifier = .variadic }, }, }, .{ .name = "OpLoopMerge", .opcode = 246, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LoopControl, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .loop_control, .quantifier = .required }, }, }, .{ .name = "OpSelectionMerge", .opcode = 247, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .SelectionControl, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .selection_control, .quantifier = .required }, }, }, .{ .name = "OpLabel", .opcode = 248, - .operands = &[_]Operand{ - .{ .kind = .IdResult, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result, .quantifier = .required }, }, }, .{ .name = "OpBranch", .opcode = 249, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpBranchConditional", .opcode = 250, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .variadic }, + .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, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .PairLiteralIntegerIdRef, .quantifier = .variadic }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .pair_literal_integer_id_ref, .quantifier = .variadic }, }, }, .{ .name = "OpKill", .opcode = 252, - .operands = &[_]Operand{}, + .operands = &.{}, }, .{ .name = "OpReturn", .opcode = 253, - .operands = &[_]Operand{}, + .operands = &.{}, }, .{ .name = "OpReturnValue", .opcode = 254, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpUnreachable", .opcode = 255, - .operands = &[_]Operand{}, + .operands = &.{}, }, .{ .name = "OpLifetimeStart", .opcode = 256, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, }, }, .{ .name = "OpLifetimeStop", .opcode = 257, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, }, }, .{ .name = "OpGroupAsyncCopy", .opcode = 259, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpGroupWaitEvents", .opcode = 260, - .operands = &[_]Operand{ - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_scope, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpGroupAll", .opcode = 261, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_scope, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpGroupAny", .opcode = 262, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_scope, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpGroupBroadcast", .opcode = 263, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpGroupIAdd", .opcode = 264, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .GroupOperation, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpGroupFAdd", .opcode = 265, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .GroupOperation, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpGroupFMin", .opcode = 266, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .GroupOperation, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .GroupOperation, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpGroupSMin", .opcode = 268, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .GroupOperation, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpGroupFMax", .opcode = 269, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .GroupOperation, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpGroupUMax", .opcode = 270, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .GroupOperation, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .GroupOperation, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpWritePipe", .opcode = 275, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 }, }, }, .{ .name = "OpReservedWritePipe", .opcode = 277, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 }, }, }, .{ .name = "OpReserveReadPipePackets", .opcode = 278, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpCommitWritePipe", .opcode = 281, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpIsValidReserveId", .opcode = 282, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpGetNumPipePackets", .opcode = 283, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpGetMaxPipePackets", .opcode = 284, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpGroupReserveReadPipePackets", .opcode = 285, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = &[_]Operand{ - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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, - .operands = &[_]Operand{ - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpEnqueueMarker", .opcode = 291, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpEnqueueKernel", .opcode = 292, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .variadic }, + .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 }, + .{ .kind = .id_ref, .quantifier = .variadic }, }, }, .{ .name = "OpGetKernelNDrangeSubGroupCount", .opcode = 293, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpGetKernelNDrangeMaxSubGroupSize", .opcode = 294, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpGetKernelWorkGroupSize", .opcode = 295, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpGetKernelPreferredWorkGroupSizeMultiple", .opcode = 296, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpRetainEvent", .opcode = 297, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpReleaseEvent", .opcode = 298, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpCreateUserEvent", .opcode = 299, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, }, }, .{ .name = "OpIsValidEvent", .opcode = 300, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSetUserEventStatus", .opcode = 301, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpCaptureEventProfilingInfo", .opcode = 302, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpGetDefaultQueue", .opcode = 303, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, }, }, .{ .name = "OpBuildNDRange", .opcode = 304, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpImageSparseSampleImplicitLod", .opcode = 305, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .ImageOperands, .quantifier = .optional }, + .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 = "OpImageSparseSampleExplicitLod", .opcode = 306, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .ImageOperands, .quantifier = .required }, + .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 = "OpImageSparseSampleDrefImplicitLod", .opcode = 307, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .ImageOperands, .quantifier = .optional }, + .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 = "OpImageSparseSampleDrefExplicitLod", .opcode = 308, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .ImageOperands, .quantifier = .required }, + .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 = "OpImageSparseSampleProjImplicitLod", .opcode = 309, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .ImageOperands, .quantifier = .optional }, + .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 = "OpImageSparseSampleProjExplicitLod", .opcode = 310, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .ImageOperands, .quantifier = .required }, + .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 = "OpImageSparseSampleProjDrefImplicitLod", .opcode = 311, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .ImageOperands, .quantifier = .optional }, + .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 = "OpImageSparseSampleProjDrefExplicitLod", .opcode = 312, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .ImageOperands, .quantifier = .required }, + .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 = "OpImageSparseFetch", .opcode = 313, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .ImageOperands, .quantifier = .optional }, + .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 = "OpImageSparseGather", .opcode = 314, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .ImageOperands, .quantifier = .optional }, + .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 = "OpImageSparseDrefGather", .opcode = 315, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .ImageOperands, .quantifier = .optional }, + .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 = "OpImageSparseTexelsResident", .opcode = 316, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpNoLine", .opcode = 317, - .operands = &[_]Operand{}, + .operands = &.{}, }, .{ .name = "OpAtomicFlagTestAndSet", .opcode = 318, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .IdMemorySemantics, .quantifier = .required }, + .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 = "OpAtomicFlagClear", .opcode = 319, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .IdMemorySemantics, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_scope, .quantifier = .required }, + .{ .kind = .id_memory_semantics, .quantifier = .required }, }, }, .{ .name = "OpImageSparseRead", .opcode = 320, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .ImageOperands, .quantifier = .optional }, + .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 = "OpSizeOf", .opcode = 321, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpTypePipeStorage", .opcode = 322, - .operands = &[_]Operand{ - .{ .kind = .IdResult, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result, .quantifier = .required }, }, }, .{ .name = "OpConstantPipeStorage", .opcode = 323, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .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 }, }, }, .{ .name = "OpCreatePipeFromPipeStorage", .opcode = 324, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpGetKernelLocalSizeForSubgroupCount", .opcode = 325, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpTypeNamedBarrier", .opcode = 327, - .operands = &[_]Operand{ - .{ .kind = .IdResult, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result, .quantifier = .required }, }, }, .{ .name = "OpNamedBarrierInitialize", .opcode = 328, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpMemoryNamedBarrier", .opcode = 329, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .IdMemorySemantics, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_scope, .quantifier = .required }, + .{ .kind = .id_memory_semantics, .quantifier = .required }, }, }, .{ .name = "OpModuleProcessed", .opcode = 330, - .operands = &[_]Operand{ - .{ .kind = .LiteralString, .quantifier = .required }, + .operands = &.{ + .{ .kind = .literal_string, .quantifier = .required }, }, }, .{ .name = "OpExecutionModeId", .opcode = 331, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .ExecutionMode, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .execution_mode, .quantifier = .required }, }, }, .{ .name = "OpDecorateId", .opcode = 332, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .Decoration, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .decoration, .quantifier = .required }, }, }, .{ .name = "OpGroupNonUniformElect", .opcode = 333, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_scope, .quantifier = .required }, }, }, .{ .name = "OpGroupNonUniformAll", .opcode = 334, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_scope, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpGroupNonUniformAny", .opcode = 335, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_scope, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpGroupNonUniformBroadcast", .opcode = 337, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpGroupNonUniformBroadcastFirst", .opcode = 338, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_scope, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpGroupNonUniformBallot", .opcode = 339, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_scope, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpGroupNonUniformInverseBallot", .opcode = 340, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_scope, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpGroupNonUniformBallotBitExtract", .opcode = 341, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpGroupNonUniformBallotBitCount", .opcode = 342, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .GroupOperation, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpGroupNonUniformBallotFindLSB", .opcode = 343, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpGroupNonUniformShuffleXor", .opcode = 346, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpGroupNonUniformShuffleUp", .opcode = 347, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpGroupNonUniformShuffleDown", .opcode = 348, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpGroupNonUniformIAdd", .opcode = 349, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .GroupOperation, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .optional }, + .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 = "OpGroupNonUniformFAdd", .opcode = 350, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .GroupOperation, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .optional }, + .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, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .GroupOperation, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .optional }, + .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, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .GroupOperation, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .optional }, + .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, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .GroupOperation, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .optional }, + .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 = "OpGroupNonUniformUMin", .opcode = 354, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .GroupOperation, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .optional }, + .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 = "OpGroupNonUniformFMin", .opcode = 355, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .GroupOperation, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .optional }, + .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 = "OpGroupNonUniformSMax", .opcode = 356, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .GroupOperation, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .optional }, + .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 = "OpGroupNonUniformUMax", .opcode = 357, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .GroupOperation, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .optional }, + .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 = "OpGroupNonUniformFMax", .opcode = 358, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .GroupOperation, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .optional }, + .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 = "OpGroupNonUniformBitwiseAnd", .opcode = 359, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .GroupOperation, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .optional }, + .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, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .GroupOperation, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .optional }, + .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 = "OpGroupNonUniformBitwiseXor", .opcode = 361, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .GroupOperation, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .optional }, + .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 = "OpGroupNonUniformLogicalAnd", .opcode = 362, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .GroupOperation, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .optional }, + .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 = "OpGroupNonUniformLogicalOr", .opcode = 363, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .GroupOperation, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .optional }, + .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 = "OpGroupNonUniformLogicalXor", .opcode = 364, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .GroupOperation, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .optional }, + .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 = "OpGroupNonUniformQuadBroadcast", .opcode = 365, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpGroupNonUniformQuadSwap", .opcode = 366, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpCopyLogical", .opcode = 400, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpPtrEqual", .opcode = 401, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpPtrNotEqual", .opcode = 402, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpPtrDiff", .opcode = 403, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .optional }, + .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, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .optional }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .optional }, }, }, .{ .name = "OpStencilAttachmentReadEXT", .opcode = 4162, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .optional }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .optional }, + }, + }, + .{ + .name = "OpTypeTensorARM", + .opcode = 4163, + .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, + .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 }, + }, + }, + .{ + .name = "OpGraphConstantARM", + .opcode = 4181, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + }, + }, + .{ + .name = "OpGraphEntryPointARM", + .opcode = 4182, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .literal_string, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .variadic }, + }, + }, + .{ + .name = "OpGraphARM", + .opcode = 4183, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + }, + }, + .{ + .name = "OpGraphInputARM", + .opcode = 4184, + .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, + .operands = &.{ + .{ .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 = &[_]Operand{}, + .operands = &.{}, + }, + .{ + .name = "OpTypeUntypedPointerKHR", + .opcode = 4417, + .operands = &.{ + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .storage_class, .quantifier = .required }, + }, + }, + .{ + .name = "OpUntypedVariableKHR", + .opcode = 4418, + .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 }, + }, + }, + .{ + .name = "OpUntypedAccessChainKHR", + .opcode = 4419, + .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 = "OpUntypedInBoundsAccessChainKHR", + .opcode = 4420, + .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 = "OpSubgroupBallotKHR", .opcode = 4421, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupFirstInvocationKHR", .opcode = 4422, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + }, + }, + .{ + .name = "OpUntypedPtrAccessChainKHR", + .opcode = 4423, + .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 }, + }, + }, + .{ + .name = "OpUntypedInBoundsPtrAccessChainKHR", + .opcode = 4424, + .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 }, + }, + }, + .{ + .name = "OpUntypedArrayLengthKHR", + .opcode = 4425, + .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 }, }, }, .{ .name = "OpSubgroupAllKHR", .opcode = 4428, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupAnyKHR", .opcode = 4429, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupAllEqualKHR", .opcode = 4430, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpGroupNonUniformRotateKHR", .opcode = 4431, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .optional }, + .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 }, }, }, .{ .name = "OpSubgroupReadInvocationKHR", .opcode = 4432, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + }, + }, + .{ + .name = "OpExtInstWithForwardRefsKHR", + .opcode = 4433, + .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 = "OpTraceRayKHR", .opcode = 4445, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 }, }, }, .{ .name = "OpExecuteCallableKHR", .opcode = 4446, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpConvertUToAccelerationStructureKHR", .opcode = 4447, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpIgnoreIntersectionKHR", .opcode = 4448, - .operands = &[_]Operand{}, + .operands = &.{}, }, .{ .name = "OpTerminateRayKHR", .opcode = 4449, - .operands = &[_]Operand{}, + .operands = &.{}, }, .{ .name = "OpSDot", .opcode = 4450, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .PackedVectorFormat, .quantifier = .optional }, - }, - }, - .{ - .name = "OpSDotKHR", - .opcode = 4450, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .PackedVectorFormat, .quantifier = .optional }, + .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 = "OpUDot", .opcode = 4451, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .PackedVectorFormat, .quantifier = .optional }, - }, - }, - .{ - .name = "OpUDotKHR", - .opcode = 4451, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .PackedVectorFormat, .quantifier = .optional }, + .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 = "OpSUDot", .opcode = 4452, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .PackedVectorFormat, .quantifier = .optional }, - }, - }, - .{ - .name = "OpSUDotKHR", - .opcode = 4452, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .PackedVectorFormat, .quantifier = .optional }, + .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, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .PackedVectorFormat, .quantifier = .optional }, - }, - }, - .{ - .name = "OpSDotAccSatKHR", - .opcode = 4453, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .PackedVectorFormat, .quantifier = .optional }, + .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, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .PackedVectorFormat, .quantifier = .optional }, - }, - }, - .{ - .name = "OpUDotAccSatKHR", - .opcode = 4454, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .PackedVectorFormat, .quantifier = .optional }, + .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 = "OpSUDotAccSat", .opcode = 4455, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .PackedVectorFormat, .quantifier = .optional }, - }, - }, - .{ - .name = "OpSUDotAccSatKHR", - .opcode = 4455, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .PackedVectorFormat, .quantifier = .optional }, + .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 = "OpTypeCooperativeMatrixKHR", .opcode = 4456, - .operands = &[_]Operand{ - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .optional }, - .{ .kind = .MemoryAccess, .quantifier = .optional }, + .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, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .optional }, - .{ .kind = .MemoryAccess, .quantifier = .optional }, + .operands = &.{ + .{ .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, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .CooperativeMatrixOperands, .quantifier = .optional }, + .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, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + }, + }, + .{ + .name = "OpConstantCompositeReplicateEXT", + .opcode = 4461, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + }, + }, + .{ + .name = "OpSpecConstantCompositeReplicateEXT", + .opcode = 4462, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + }, + }, + .{ + .name = "OpCompositeConstructReplicateEXT", + .opcode = 4463, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpTypeRayQueryKHR", .opcode = 4472, - .operands = &[_]Operand{ - .{ .kind = .IdResult, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result, .quantifier = .required }, }, }, .{ .name = "OpRayQueryInitializeKHR", .opcode = 4473, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 }, }, }, .{ .name = "OpRayQueryTerminateKHR", .opcode = 4474, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpRayQueryGenerateIntersectionKHR", .opcode = 4475, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpRayQueryConfirmIntersectionKHR", .opcode = 4476, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpRayQueryProceedKHR", .opcode = 4477, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpRayQueryGetIntersectionTypeKHR", .opcode = 4479, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpImageSampleWeightedQCOM", .opcode = 4480, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpImageBoxFilterQCOM", .opcode = 4481, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpImageBlockMatchWindowSADQCOM", .opcode = 4501, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpImageBlockMatchGatherSADQCOM", .opcode = 4503, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpGroupIAddNonUniformAMD", .opcode = 5000, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .GroupOperation, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .GroupOperation, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .GroupOperation, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .GroupOperation, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .GroupOperation, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpGroupFMaxNonUniformAMD", .opcode = 5005, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .GroupOperation, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .GroupOperation, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .GroupOperation, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpReadClockKHR", .opcode = 5056, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_scope, .quantifier = .required }, }, }, .{ - .name = "OpFinalizeNodePayloadsAMDX", + .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 = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + }, + }, + .{ + .name = "OpTypeNodePayloadArrayAMDX", + .opcode = 5076, + .operands = &.{ + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpFinishWritingNodePayloadAMDX", .opcode = 5078, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "OpInitializeNodePayloadsAMDX", + .name = "OpNodePayloadArrayLengthAMDX", .opcode = 5090, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + }, + }, + .{ + .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 }, + }, + }, + .{ + .name = "OpConstantStringAMDX", + .opcode = 5103, + .operands = &.{ + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .literal_string, .quantifier = .required }, + }, + }, + .{ + .name = "OpSpecConstantStringAMDX", + .opcode = 5104, + .operands = &.{ + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .literal_string, .quantifier = .required }, }, }, .{ .name = "OpGroupNonUniformQuadAllKHR", .opcode = 5110, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpGroupNonUniformQuadAnyKHR", .opcode = 5111, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpHitObjectRecordHitMotionNV", .opcode = 5249, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = .required }, }, }, .{ .name = "OpHitObjectRecordHitWithIndexMotionNV", .opcode = 5250, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 }, }, }, .{ .name = "OpHitObjectRecordMissMotionNV", .opcode = 5251, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 }, }, }, .{ .name = "OpHitObjectGetWorldToObjectNV", .opcode = 5252, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpHitObjectGetObjectToWorldNV", .opcode = 5253, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpHitObjectGetObjectRayDirectionNV", .opcode = 5254, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpHitObjectGetObjectRayOriginNV", .opcode = 5255, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpHitObjectTraceRayMotionNV", .opcode = 5256, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 }, }, }, .{ .name = "OpHitObjectGetShaderRecordBufferHandleNV", .opcode = 5257, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpHitObjectGetShaderBindingTableRecordIndexNV", .opcode = 5258, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpHitObjectRecordEmptyNV", .opcode = 5259, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpHitObjectTraceRayNV", .opcode = 5260, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpHitObjectRecordHitNV", .opcode = 5261, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 }, }, }, .{ .name = "OpHitObjectRecordHitWithIndexNV", .opcode = 5262, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpHitObjectRecordMissNV", .opcode = 5263, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 }, }, }, .{ .name = "OpHitObjectExecuteShaderNV", .opcode = 5264, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpHitObjectGetCurrentTimeNV", .opcode = 5265, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpHitObjectGetAttributesNV", .opcode = 5266, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpHitObjectGetHitKindNV", .opcode = 5267, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpHitObjectGetPrimitiveIndexNV", .opcode = 5268, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpHitObjectGetGeometryIndexNV", .opcode = 5269, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpHitObjectGetInstanceIdNV", .opcode = 5270, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpHitObjectGetInstanceCustomIndexNV", .opcode = 5271, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpHitObjectGetWorldRayDirectionNV", .opcode = 5272, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpHitObjectGetWorldRayOriginNV", .opcode = 5273, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpHitObjectGetRayTMaxNV", .opcode = 5274, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpHitObjectGetRayTMinNV", .opcode = 5275, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpHitObjectIsEmptyNV", .opcode = 5276, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpHitObjectIsHitNV", .opcode = 5277, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpHitObjectIsMissNV", .opcode = 5278, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpReorderThreadWithHitObjectNV", .opcode = 5279, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .optional }, - .{ .kind = .IdRef, .quantifier = .optional }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .optional }, + .{ .kind = .id_ref, .quantifier = .optional }, }, }, .{ .name = "OpReorderThreadWithHintNV", .opcode = 5280, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpTypeHitObjectNV", .opcode = 5281, - .operands = &[_]Operand{ - .{ .kind = .IdResult, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result, .quantifier = .required }, }, }, .{ .name = "OpImageSampleFootprintNV", .opcode = 5283, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .ImageOperands, .quantifier = .optional }, + .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, + .operands = &.{ + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + }, + }, + .{ + .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 }, + .{ .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 = "OpCooperativeVectorOuterProductAccumulateNV", + .opcode = 5290, + .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 = .optional }, + }, + }, + .{ + .name = "OpCooperativeVectorReduceSumAccumulateNV", + .opcode = 5291, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + }, + }, + .{ + .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 }, + .{ .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, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpEmitMeshTasksEXT", .opcode = 5294, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .optional }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .optional }, }, }, .{ .name = "OpSetMeshOutputsEXT", .opcode = 5295, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpGroupNonUniformPartitionNV", .opcode = 5296, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpWritePackedPrimitiveIndices4x8NV", .opcode = 5299, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpFetchMicroTriangleVertexPositionNV", .opcode = 5300, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpReportIntersectionNV", - .opcode = 5334, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpCooperativeVectorStoreNV", + .opcode = 5303, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .memory_access, .quantifier = .optional }, }, }, .{ .name = "OpReportIntersectionKHR", .opcode = 5334, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpIgnoreIntersectionNV", .opcode = 5335, - .operands = &[_]Operand{}, + .operands = &.{}, }, .{ .name = "OpTerminateRayNV", .opcode = 5336, - .operands = &[_]Operand{}, + .operands = &.{}, }, .{ .name = "OpTraceNV", .opcode = 5337, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 }, }, }, .{ .name = "OpTraceMotionNV", .opcode = 5338, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpTraceRayMotionNV", .opcode = 5339, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpRayQueryGetIntersectionTriangleVertexPositionsKHR", .opcode = 5340, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - }, - }, - .{ - .name = "OpTypeAccelerationStructureNV", - .opcode = 5341, - .operands = &[_]Operand{ - .{ .kind = .IdResult, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpTypeAccelerationStructureKHR", .opcode = 5341, - .operands = &[_]Operand{ - .{ .kind = .IdResult, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result, .quantifier = .required }, }, }, .{ .name = "OpExecuteCallableNV", .opcode = 5344, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + }, + }, + .{ + .name = "OpRayQueryGetClusterIdNV", + .opcode = 5345, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + }, + }, + .{ + .name = "OpHitObjectGetClusterIdNV", + .opcode = 5346, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpTypeCooperativeMatrixNV", .opcode = 5358, - .operands = &[_]Operand{ - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 }, }, }, .{ .name = "OpCooperativeMatrixLoadNV", .opcode = 5359, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .MemoryAccess, .quantifier = .optional }, + .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 = "OpCooperativeMatrixStoreNV", .opcode = 5360, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .MemoryAccess, .quantifier = .optional }, + .operands = &.{ + .{ .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 }, }, }, .{ .name = "OpCooperativeMatrixMulAddNV", .opcode = 5361, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpCooperativeMatrixLengthNV", .opcode = 5362, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpBeginInvocationInterlockEXT", .opcode = 5364, - .operands = &[_]Operand{}, + .operands = &.{}, }, .{ .name = "OpEndInvocationInterlockEXT", .opcode = 5365, - .operands = &[_]Operand{}, + .operands = &.{}, }, .{ - .name = "OpDemoteToHelperInvocation", - .opcode = 5380, - .operands = &[_]Operand{}, + .name = "OpCooperativeMatrixReduceNV", + .opcode = 5366, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .cooperative_matrix_reduce, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + }, }, .{ - .name = "OpDemoteToHelperInvocationEXT", + .name = "OpCooperativeMatrixLoadTensorNV", + .opcode = 5367, + .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 = .required }, + .{ .kind = .tensor_addressing_operands, .quantifier = .required }, + }, + }, + .{ + .name = "OpCooperativeMatrixStoreTensorNV", + .opcode = 5368, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .memory_access, .quantifier = .required }, + .{ .kind = .tensor_addressing_operands, .quantifier = .required }, + }, + }, + .{ + .name = "OpCooperativeMatrixPerElementOpNV", + .opcode = 5369, + .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 = "OpTypeTensorLayoutNV", + .opcode = 5370, + .operands = &.{ + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + }, + }, + .{ + .name = "OpTypeTensorViewNV", + .opcode = 5371, + .operands = &.{ + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .variadic }, + }, + }, + .{ + .name = "OpCreateTensorLayoutNV", + .opcode = 5372, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + }, + }, + .{ + .name = "OpTensorLayoutSetDimensionNV", + .opcode = 5373, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .variadic }, + }, + }, + .{ + .name = "OpTensorLayoutSetStrideNV", + .opcode = 5374, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .variadic }, + }, + }, + .{ + .name = "OpTensorLayoutSliceNV", + .opcode = 5375, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .variadic }, + }, + }, + .{ + .name = "OpTensorLayoutSetClampValueNV", + .opcode = 5376, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + }, + }, + .{ + .name = "OpCreateTensorViewNV", + .opcode = 5377, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + }, + }, + .{ + .name = "OpTensorViewSetDimensionNV", + .opcode = 5378, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .variadic }, + }, + }, + .{ + .name = "OpTensorViewSetStrideNV", + .opcode = 5379, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .variadic }, + }, + }, + .{ + .name = "OpDemoteToHelperInvocation", .opcode = 5380, - .operands = &[_]Operand{}, + .operands = &.{}, }, .{ .name = "OpIsHelperInvocationEXT", .opcode = 5381, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + }, + }, + .{ + .name = "OpTensorViewSetClipNV", + .opcode = 5382, + .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 = "OpTensorLayoutSetBlockSizeNV", + .opcode = 5384, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .variadic }, + }, + }, + .{ + .name = "OpCooperativeMatrixTransposeNV", + .opcode = 5390, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpConvertUToImageNV", .opcode = 5391, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpConvertUToSamplerNV", .opcode = 5392, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpConvertImageToUNV", .opcode = 5393, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpConvertSamplerToUNV", .opcode = 5394, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpConvertUToSampledImageNV", .opcode = 5395, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpConvertSampledImageToUNV", .opcode = 5396, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSamplerImageAddressingModeNV", .opcode = 5397, - .operands = &[_]Operand{ - .{ .kind = .LiteralInteger, .quantifier = .required }, + .operands = &.{ + .{ .kind = .literal_integer, .quantifier = .required }, }, }, .{ .name = "OpRawAccessChainNV", .opcode = 5398, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .RawAccessChainOperands, .quantifier = .optional }, + .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 = .raw_access_chain_operands, .quantifier = .optional }, + }, + }, + .{ + .name = "OpRayQueryGetIntersectionSpherePositionNV", + .opcode = 5427, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + }, + }, + .{ + .name = "OpRayQueryGetIntersectionSphereRadiusNV", + .opcode = 5428, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + }, + }, + .{ + .name = "OpRayQueryGetIntersectionLSSPositionsNV", + .opcode = 5429, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + }, + }, + .{ + .name = "OpRayQueryGetIntersectionLSSRadiiNV", + .opcode = 5430, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + }, + }, + .{ + .name = "OpRayQueryGetIntersectionLSSHitValueNV", + .opcode = 5431, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + }, + }, + .{ + .name = "OpHitObjectGetSpherePositionNV", + .opcode = 5432, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + }, + }, + .{ + .name = "OpHitObjectGetSphereRadiusNV", + .opcode = 5433, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + }, + }, + .{ + .name = "OpHitObjectGetLSSPositionsNV", + .opcode = 5434, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + }, + }, + .{ + .name = "OpHitObjectGetLSSRadiiNV", + .opcode = 5435, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + }, + }, + .{ + .name = "OpHitObjectIsSphereHitNV", + .opcode = 5436, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + }, + }, + .{ + .name = "OpHitObjectIsLSSHitNV", + .opcode = 5437, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + }, + }, + .{ + .name = "OpRayQueryIsSphereHitNV", + .opcode = 5438, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + }, + }, + .{ + .name = "OpRayQueryIsLSSHitNV", + .opcode = 5439, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupShuffleINTEL", .opcode = 5571, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupShuffleDownINTEL", .opcode = 5572, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpSubgroupShuffleUpINTEL", .opcode = 5573, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpSubgroupShuffleXorINTEL", .opcode = 5574, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupBlockReadINTEL", .opcode = 5575, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupBlockWriteINTEL", .opcode = 5576, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupImageBlockReadINTEL", .opcode = 5577, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupImageBlockWriteINTEL", .opcode = 5578, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupImageMediaBlockReadINTEL", .opcode = 5580, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpSubgroupImageMediaBlockWriteINTEL", .opcode = 5581, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 }, }, }, .{ .name = "OpUCountLeadingZerosINTEL", .opcode = 5585, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpUCountTrailingZerosINTEL", .opcode = 5586, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpAbsISubINTEL", .opcode = 5587, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpAbsUSubINTEL", .opcode = 5588, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpIAddSatINTEL", .opcode = 5589, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpUAddSatINTEL", .opcode = 5590, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpIAverageINTEL", .opcode = 5591, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpUAverageINTEL", .opcode = 5592, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpIAverageRoundedINTEL", .opcode = 5593, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpUAverageRoundedINTEL", .opcode = 5594, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpISubSatINTEL", .opcode = 5595, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpUSubSatINTEL", .opcode = 5596, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpIMul32x16INTEL", .opcode = 5597, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpUMul32x16INTEL", .opcode = 5598, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpConstantFunctionPointerINTEL", .opcode = 5600, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpFunctionPointerCallINTEL", .opcode = 5601, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .variadic }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .variadic }, }, }, .{ .name = "OpAsmTargetINTEL", .opcode = 5609, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .LiteralString, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .literal_string, .quantifier = .required }, }, }, .{ .name = "OpAsmINTEL", .opcode = 5610, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralString, .quantifier = .required }, - .{ .kind = .LiteralString, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .literal_string, .quantifier = .required }, + .{ .kind = .literal_string, .quantifier = .required }, }, }, .{ .name = "OpAsmCallINTEL", .opcode = 5611, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .variadic }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .variadic }, }, }, .{ .name = "OpAtomicFMinEXT", .opcode = 5614, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .IdMemorySemantics, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpAtomicFMaxEXT", .opcode = 5615, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .IdMemorySemantics, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpAssumeTrueKHR", .opcode = 5630, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpExpectKHR", .opcode = 5631, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpDecorateString", .opcode = 5632, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .Decoration, .quantifier = .required }, - }, - }, - .{ - .name = "OpDecorateStringGOOGLE", - .opcode = 5632, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .Decoration, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .decoration, .quantifier = .required }, }, }, .{ .name = "OpMemberDecorateString", .opcode = 5633, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .Decoration, .quantifier = .required }, - }, - }, - .{ - .name = "OpMemberDecorateStringGOOGLE", - .opcode = 5633, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .Decoration, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .decoration, .quantifier = .required }, }, }, .{ .name = "OpVmeImageINTEL", .opcode = 5699, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpTypeVmeImageINTEL", .opcode = 5700, - .operands = &[_]Operand{ - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpTypeAvcImePayloadINTEL", .opcode = 5701, - .operands = &[_]Operand{ - .{ .kind = .IdResult, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result, .quantifier = .required }, }, }, .{ .name = "OpTypeAvcRefPayloadINTEL", .opcode = 5702, - .operands = &[_]Operand{ - .{ .kind = .IdResult, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result, .quantifier = .required }, }, }, .{ .name = "OpTypeAvcSicPayloadINTEL", .opcode = 5703, - .operands = &[_]Operand{ - .{ .kind = .IdResult, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result, .quantifier = .required }, }, }, .{ .name = "OpTypeAvcMcePayloadINTEL", .opcode = 5704, - .operands = &[_]Operand{ - .{ .kind = .IdResult, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result, .quantifier = .required }, }, }, .{ .name = "OpTypeAvcMceResultINTEL", .opcode = 5705, - .operands = &[_]Operand{ - .{ .kind = .IdResult, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result, .quantifier = .required }, }, }, .{ .name = "OpTypeAvcImeResultINTEL", .opcode = 5706, - .operands = &[_]Operand{ - .{ .kind = .IdResult, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result, .quantifier = .required }, }, }, .{ .name = "OpTypeAvcImeResultSingleReferenceStreamoutINTEL", .opcode = 5707, - .operands = &[_]Operand{ - .{ .kind = .IdResult, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result, .quantifier = .required }, }, }, .{ .name = "OpTypeAvcImeResultDualReferenceStreamoutINTEL", .opcode = 5708, - .operands = &[_]Operand{ - .{ .kind = .IdResult, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result, .quantifier = .required }, }, }, .{ .name = "OpTypeAvcImeSingleReferenceStreaminINTEL", .opcode = 5709, - .operands = &[_]Operand{ - .{ .kind = .IdResult, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result, .quantifier = .required }, }, }, .{ .name = "OpTypeAvcImeDualReferenceStreaminINTEL", .opcode = 5710, - .operands = &[_]Operand{ - .{ .kind = .IdResult, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result, .quantifier = .required }, }, }, .{ .name = "OpTypeAvcRefResultINTEL", .opcode = 5711, - .operands = &[_]Operand{ - .{ .kind = .IdResult, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result, .quantifier = .required }, }, }, .{ .name = "OpTypeAvcSicResultINTEL", .opcode = 5712, - .operands = &[_]Operand{ - .{ .kind = .IdResult, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result, .quantifier = .required }, }, }, .{ .name = "OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL", .opcode = 5713, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL", .opcode = 5714, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL", .opcode = 5715, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupAvcMceSetInterShapePenaltyINTEL", .opcode = 5716, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL", .opcode = 5717, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupAvcMceSetInterDirectionPenaltyINTEL", .opcode = 5718, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL", .opcode = 5719, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL", .opcode = 5720, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL", .opcode = 5721, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, }, }, .{ .name = "OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL", .opcode = 5722, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, }, }, .{ .name = "OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL", .opcode = 5723, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, }, }, .{ .name = "OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL", .opcode = 5724, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL", .opcode = 5725, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL", .opcode = 5726, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, }, }, .{ .name = "OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL", .opcode = 5727, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, }, }, .{ .name = "OpSubgroupAvcMceSetAcOnlyHaarINTEL", .opcode = 5728, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL", .opcode = 5729, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL", .opcode = 5730, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL", .opcode = 5731, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpSubgroupAvcMceConvertToImePayloadINTEL", .opcode = 5732, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupAvcMceConvertToImeResultINTEL", .opcode = 5733, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupAvcMceConvertToRefPayloadINTEL", .opcode = 5734, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupAvcMceConvertToRefResultINTEL", .opcode = 5735, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupAvcMceConvertToSicPayloadINTEL", .opcode = 5736, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupAvcMceConvertToSicResultINTEL", .opcode = 5737, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupAvcMceGetMotionVectorsINTEL", .opcode = 5738, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupAvcMceGetInterDistortionsINTEL", .opcode = 5739, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupAvcMceGetBestInterDistortionsINTEL", .opcode = 5740, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupAvcMceGetInterMajorShapeINTEL", .opcode = 5741, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupAvcMceGetInterMinorShapeINTEL", .opcode = 5742, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupAvcMceGetInterDirectionsINTEL", .opcode = 5743, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupAvcMceGetInterMotionVectorCountINTEL", .opcode = 5744, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupAvcMceGetInterReferenceIdsINTEL", .opcode = 5745, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL", .opcode = 5746, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpSubgroupAvcImeInitializeINTEL", .opcode = 5747, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpSubgroupAvcImeSetSingleReferenceINTEL", .opcode = 5748, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpSubgroupAvcImeSetDualReferenceINTEL", .opcode = 5749, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpSubgroupAvcImeRefWindowSizeINTEL", .opcode = 5750, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupAvcImeAdjustRefOffsetINTEL", .opcode = 5751, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpSubgroupAvcImeConvertToMcePayloadINTEL", .opcode = 5752, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupAvcImeSetMaxMotionVectorCountINTEL", .opcode = 5753, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL", .opcode = 5754, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL", .opcode = 5755, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupAvcImeSetWeightedSadINTEL", .opcode = 5756, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL", .opcode = 5757, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpSubgroupAvcImeEvaluateWithDualReferenceINTEL", .opcode = 5758, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL", .opcode = 5759, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL", .opcode = 5760, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL", .opcode = 5761, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL", .opcode = 5762, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL", .opcode = 5763, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL", .opcode = 5764, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpSubgroupAvcImeConvertToMceResultINTEL", .opcode = 5765, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupAvcImeGetSingleReferenceStreaminINTEL", .opcode = 5766, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupAvcImeGetDualReferenceStreaminINTEL", .opcode = 5767, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL", .opcode = 5768, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupAvcImeStripDualReferenceStreamoutINTEL", .opcode = 5769, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL", .opcode = 5770, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL", .opcode = 5771, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL", .opcode = 5772, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL", .opcode = 5773, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL", .opcode = 5774, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL", .opcode = 5775, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpSubgroupAvcImeGetBorderReachedINTEL", .opcode = 5776, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL", .opcode = 5777, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL", .opcode = 5778, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL", .opcode = 5779, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL", .opcode = 5780, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupAvcFmeInitializeINTEL", .opcode = 5781, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpSubgroupAvcBmeInitializeINTEL", .opcode = 5782, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpSubgroupAvcRefConvertToMcePayloadINTEL", .opcode = 5783, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupAvcRefSetBidirectionalMixDisableINTEL", .opcode = 5784, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupAvcRefSetBilinearFilterEnableINTEL", .opcode = 5785, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL", .opcode = 5786, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpSubgroupAvcRefEvaluateWithDualReferenceINTEL", .opcode = 5787, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL", .opcode = 5788, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL", .opcode = 5789, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpSubgroupAvcRefConvertToMceResultINTEL", .opcode = 5790, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupAvcSicInitializeINTEL", .opcode = 5791, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupAvcSicConfigureSkcINTEL", .opcode = 5792, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 }, }, }, .{ .name = "OpSubgroupAvcSicConfigureIpeLumaINTEL", .opcode = 5793, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpSubgroupAvcSicConfigureIpeLumaChromaINTEL", .opcode = 5794, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupAvcSicGetMotionVectorMaskINTEL", .opcode = 5795, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupAvcSicConvertToMcePayloadINTEL", .opcode = 5796, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL", .opcode = 5797, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL", .opcode = 5798, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL", .opcode = 5799, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupAvcSicSetBilinearFilterEnableINTEL", .opcode = 5800, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL", .opcode = 5801, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL", .opcode = 5802, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupAvcSicEvaluateIpeINTEL", .opcode = 5803, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL", .opcode = 5804, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpSubgroupAvcSicEvaluateWithDualReferenceINTEL", .opcode = 5805, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL", .opcode = 5806, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL", .opcode = 5807, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpSubgroupAvcSicConvertToMceResultINTEL", .opcode = 5808, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupAvcSicGetIpeLumaShapeINTEL", .opcode = 5809, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL", .opcode = 5810, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL", .opcode = 5811, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupAvcSicGetPackedIpeLumaModesINTEL", .opcode = 5812, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupAvcSicGetIpeChromaModeINTEL", .opcode = 5813, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL", .opcode = 5814, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL", .opcode = 5815, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSubgroupAvcSicGetInterRawSadsINTEL", .opcode = 5816, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpVariableLengthArrayINTEL", .opcode = 5818, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpSaveMemoryINTEL", .opcode = 5819, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, }, }, .{ .name = "OpRestoreMemoryINTEL", .opcode = 5820, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpArbitraryFloatSinCosPiINTEL", .opcode = 5840, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .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 = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, }, }, .{ .name = "OpArbitraryFloatCastINTEL", .opcode = 5841, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .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 = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, }, }, .{ .name = "OpArbitraryFloatCastFromIntINTEL", .opcode = 5842, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .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 = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, }, }, .{ .name = "OpArbitraryFloatCastToIntINTEL", .opcode = 5843, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .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 = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, }, }, .{ .name = "OpArbitraryFloatAddINTEL", .opcode = 5846, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .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 = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, }, }, .{ .name = "OpArbitraryFloatSubINTEL", .opcode = 5847, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .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 = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, }, }, .{ .name = "OpArbitraryFloatMulINTEL", .opcode = 5848, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .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 = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, }, }, .{ .name = "OpArbitraryFloatDivINTEL", .opcode = 5849, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .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 = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, }, }, .{ .name = "OpArbitraryFloatGTINTEL", .opcode = 5850, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .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 = .literal_integer, .quantifier = .required }, }, }, .{ .name = "OpArbitraryFloatGEINTEL", .opcode = 5851, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .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 = .literal_integer, .quantifier = .required }, }, }, .{ .name = "OpArbitraryFloatLTINTEL", .opcode = 5852, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .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 = .literal_integer, .quantifier = .required }, }, }, .{ .name = "OpArbitraryFloatLEINTEL", .opcode = 5853, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .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 = .literal_integer, .quantifier = .required }, }, }, .{ .name = "OpArbitraryFloatEQINTEL", .opcode = 5854, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .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 = .literal_integer, .quantifier = .required }, }, }, .{ .name = "OpArbitraryFloatRecipINTEL", .opcode = 5855, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .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 = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, }, }, .{ .name = "OpArbitraryFloatRSqrtINTEL", .opcode = 5856, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .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 = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, }, }, .{ .name = "OpArbitraryFloatCbrtINTEL", .opcode = 5857, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .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 = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, }, }, .{ .name = "OpArbitraryFloatHypotINTEL", .opcode = 5858, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .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 = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, }, }, .{ .name = "OpArbitraryFloatSqrtINTEL", .opcode = 5859, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .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 = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, }, }, .{ .name = "OpArbitraryFloatLogINTEL", .opcode = 5860, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .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 = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, }, }, .{ .name = "OpArbitraryFloatLog2INTEL", .opcode = 5861, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .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 = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, }, }, .{ .name = "OpArbitraryFloatLog10INTEL", .opcode = 5862, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .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 = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, }, }, .{ .name = "OpArbitraryFloatLog1pINTEL", .opcode = 5863, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .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 = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, }, }, .{ .name = "OpArbitraryFloatExpINTEL", .opcode = 5864, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .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 = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, }, }, .{ .name = "OpArbitraryFloatExp2INTEL", .opcode = 5865, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .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 = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, }, }, .{ .name = "OpArbitraryFloatExp10INTEL", .opcode = 5866, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .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 = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, }, }, .{ .name = "OpArbitraryFloatExpm1INTEL", .opcode = 5867, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .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 = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, }, }, .{ .name = "OpArbitraryFloatSinINTEL", .opcode = 5868, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .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 = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, }, }, .{ .name = "OpArbitraryFloatCosINTEL", .opcode = 5869, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .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 = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, }, }, .{ .name = "OpArbitraryFloatSinCosINTEL", .opcode = 5870, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .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 = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, }, }, .{ .name = "OpArbitraryFloatSinPiINTEL", .opcode = 5871, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .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 = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, }, }, .{ .name = "OpArbitraryFloatCosPiINTEL", .opcode = 5872, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .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 = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, }, }, .{ .name = "OpArbitraryFloatASinINTEL", .opcode = 5873, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .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 = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, }, }, .{ .name = "OpArbitraryFloatASinPiINTEL", .opcode = 5874, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .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 = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, }, }, .{ .name = "OpArbitraryFloatACosINTEL", .opcode = 5875, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .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 = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, }, }, .{ .name = "OpArbitraryFloatACosPiINTEL", .opcode = 5876, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .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 = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, }, }, .{ .name = "OpArbitraryFloatATanINTEL", .opcode = 5877, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .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 = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, }, }, .{ .name = "OpArbitraryFloatATanPiINTEL", .opcode = 5878, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .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 = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, }, }, .{ .name = "OpArbitraryFloatATan2INTEL", .opcode = 5879, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .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 = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, }, }, .{ .name = "OpArbitraryFloatPowINTEL", .opcode = 5880, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .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 = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, }, }, .{ .name = "OpArbitraryFloatPowRINTEL", .opcode = 5881, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .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 = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, }, }, .{ .name = "OpArbitraryFloatPowNINTEL", .opcode = 5882, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .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 = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, }, }, .{ .name = "OpLoopControlINTEL", .opcode = 5887, - .operands = &[_]Operand{ - .{ .kind = .LiteralInteger, .quantifier = .variadic }, + .operands = &.{ + .{ .kind = .literal_integer, .quantifier = .variadic }, }, }, .{ .name = "OpAliasDomainDeclINTEL", .opcode = 5911, - .operands = &[_]Operand{ - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .optional }, + .operands = &.{ + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .optional }, }, }, .{ .name = "OpAliasScopeDeclINTEL", .opcode = 5912, - .operands = &[_]Operand{ - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .optional }, + .operands = &.{ + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .optional }, }, }, .{ .name = "OpAliasScopeListDeclINTEL", .opcode = 5913, - .operands = &[_]Operand{ - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .variadic }, + .operands = &.{ + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .variadic }, }, }, .{ .name = "OpFixedSqrtINTEL", .opcode = 5923, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .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 = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, }, }, .{ .name = "OpFixedRecipINTEL", .opcode = 5924, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .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 = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, }, }, .{ .name = "OpFixedRsqrtINTEL", .opcode = 5925, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .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 = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, }, }, .{ .name = "OpFixedSinINTEL", .opcode = 5926, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .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 = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, }, }, .{ .name = "OpFixedCosINTEL", .opcode = 5927, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .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 = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, }, }, .{ .name = "OpFixedSinCosINTEL", .opcode = 5928, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .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 = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, }, }, .{ .name = "OpFixedSinPiINTEL", .opcode = 5929, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .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 = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, }, }, .{ .name = "OpFixedCosPiINTEL", .opcode = 5930, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .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 = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, }, }, .{ .name = "OpFixedSinCosPiINTEL", .opcode = 5931, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .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 = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, }, }, .{ .name = "OpFixedLogINTEL", .opcode = 5932, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .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 = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, }, }, .{ .name = "OpFixedExpINTEL", .opcode = 5933, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .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 = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, }, }, .{ .name = "OpPtrCastToCrossWorkgroupINTEL", .opcode = 5934, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpCrossWorkgroupCastToPtrINTEL", .opcode = 5938, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpReadPipeBlockingINTEL", .opcode = 5946, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpWritePipeBlockingINTEL", .opcode = 5947, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpFPGARegINTEL", .opcode = 5949, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpRayQueryGetRayTMinKHR", .opcode = 6016, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpRayQueryGetRayFlagsKHR", .opcode = 6017, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpRayQueryGetIntersectionTKHR", .opcode = 6018, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpRayQueryGetIntersectionInstanceCustomIndexKHR", .opcode = 6019, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpRayQueryGetIntersectionInstanceIdKHR", .opcode = 6020, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR", .opcode = 6021, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpRayQueryGetIntersectionGeometryIndexKHR", .opcode = 6022, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpRayQueryGetIntersectionPrimitiveIndexKHR", .opcode = 6023, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpRayQueryGetIntersectionBarycentricsKHR", .opcode = 6024, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpRayQueryGetIntersectionFrontFaceKHR", .opcode = 6025, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpRayQueryGetIntersectionCandidateAABBOpaqueKHR", .opcode = 6026, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpRayQueryGetIntersectionObjectRayDirectionKHR", .opcode = 6027, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpRayQueryGetIntersectionObjectRayOriginKHR", .opcode = 6028, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpRayQueryGetWorldRayDirectionKHR", .opcode = 6029, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpRayQueryGetWorldRayOriginKHR", .opcode = 6030, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpRayQueryGetIntersectionObjectToWorldKHR", .opcode = 6031, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpRayQueryGetIntersectionWorldToObjectKHR", .opcode = 6032, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpAtomicFAddEXT", .opcode = 6035, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .IdMemorySemantics, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "OpTypeBufferSurfaceINTEL", .opcode = 6086, - .operands = &[_]Operand{ - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .AccessQualifier, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .access_qualifier, .quantifier = .required }, }, }, .{ .name = "OpTypeStructContinuedINTEL", .opcode = 6090, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .variadic }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .variadic }, }, }, .{ .name = "OpConstantCompositeContinuedINTEL", .opcode = 6091, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .variadic }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .variadic }, }, }, .{ .name = "OpSpecConstantCompositeContinuedINTEL", .opcode = 6092, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .variadic }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .variadic }, }, }, .{ .name = "OpCompositeConstructContinuedINTEL", .opcode = 6096, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .variadic }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .variadic }, }, }, .{ .name = "OpConvertFToBF16INTEL", .opcode = 6116, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpConvertBF16ToFINTEL", .opcode = 6117, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "OpControlBarrierArriveINTEL", .opcode = 6142, - .operands = &[_]Operand{ - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .IdMemorySemantics, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_scope, .quantifier = .required }, + .{ .kind = .id_scope, .quantifier = .required }, + .{ .kind = .id_memory_semantics, .quantifier = .required }, }, }, .{ .name = "OpControlBarrierWaitINTEL", .opcode = 6143, - .operands = &[_]Operand{ - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .IdMemorySemantics, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_scope, .quantifier = .required }, + .{ .kind = .id_scope, .quantifier = .required }, + .{ .kind = .id_memory_semantics, .quantifier = .required }, }, }, .{ - .name = "OpGroupIMulKHR", - .opcode = 6401, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .GroupOperation, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "OpArithmeticFenceEXT", + .opcode = 6145, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "OpGroupFMulKHR", - .opcode = 6402, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .GroupOperation, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "OpTaskSequenceCreateINTEL", + .opcode = 6163, + .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 = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, }, }, .{ - .name = "OpGroupBitwiseAndKHR", - .opcode = 6403, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .GroupOperation, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "OpTaskSequenceAsyncINTEL", + .opcode = 6164, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .variadic }, }, }, .{ - .name = "OpGroupBitwiseOrKHR", - .opcode = 6404, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .GroupOperation, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "OpTaskSequenceGetINTEL", + .opcode = 6165, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "OpGroupBitwiseXorKHR", - .opcode = 6405, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .GroupOperation, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "OpTaskSequenceReleaseINTEL", + .opcode = 6166, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "OpGroupLogicalAndKHR", - .opcode = 6406, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .GroupOperation, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "OpTypeTaskSequenceINTEL", + .opcode = 6199, + .operands = &.{ + .{ .kind = .id_result, .quantifier = .required }, }, }, .{ - .name = "OpGroupLogicalOrKHR", - .opcode = 6407, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .GroupOperation, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "OpSubgroupBlockPrefetchINTEL", + .opcode = 6221, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .memory_access, .quantifier = .optional }, }, }, .{ - .name = "OpGroupLogicalXorKHR", - .opcode = 6408, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdScope, .quantifier = .required }, - .{ .kind = .GroupOperation, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "OpSubgroup2DBlockLoadINTEL", + .opcode = 6231, + .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 }, }, }, .{ - .name = "OpMaskedGatherINTEL", - .opcode = 6428, - .operands = &[_]Operand{ - .{ .kind = .IdResultType, .quantifier = .required }, - .{ .kind = .IdResult, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "OpSubgroup2DBlockLoadTransformINTEL", + .opcode = 6232, + .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 }, }, }, .{ - .name = "OpMaskedScatterINTEL", - .opcode = 6429, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "OpSubgroup2DBlockLoadTransposeINTEL", + .opcode = 6233, + .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 }, }, }, - }, - .@"OpenCL.std" => &[_]Instruction{ .{ - .name = "acos", - .opcode = 0, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .name = "OpSubgroup2DBlockPrefetchINTEL", + .opcode = 6234, + .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 }, }, }, .{ - .name = "acosh", - .opcode = 1, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .name = "OpSubgroup2DBlockStoreINTEL", + .opcode = 6235, + .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 }, + }, + }, + .{ + .name = "OpSubgroupMatrixMultiplyAccumulateINTEL", + .opcode = 6237, + .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 = .matrix_multiply_accumulate_operands, .quantifier = .optional }, + }, + }, + .{ + .name = "OpBitwiseFunctionINTEL", + .opcode = 6242, + .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 = "acospi", - .opcode = 2, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .name = "OpGroupIMulKHR", + .opcode = 6401, + .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 = "asin", - .opcode = 3, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - }, + .name = "OpGroupFMulKHR", + .opcode = 6402, + .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 = "asinh", + .name = "OpGroupBitwiseAndKHR", + .opcode = 6403, + .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 = "OpGroupBitwiseOrKHR", + .opcode = 6404, + .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 = "OpGroupBitwiseXorKHR", + .opcode = 6405, + .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 = "OpGroupLogicalAndKHR", + .opcode = 6406, + .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 = "OpGroupLogicalOrKHR", + .opcode = 6407, + .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 = "OpGroupLogicalXorKHR", + .opcode = 6408, + .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 = "OpRoundFToTF32INTEL", + .opcode = 6426, + .operands = &.{ + .{ .kind = .id_result_type, .quantifier = .required }, + .{ .kind = .id_result, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + }, + }, + .{ + .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 }, + }, + }, + }, + .spv_amd_shader_trinary_minmax => &.{ + .{ + .name = "FMin3AMD", + .opcode = 1, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + }, + }, + .{ + .name = "UMin3AMD", + .opcode = 2, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + }, + }, + .{ + .name = "SMin3AMD", + .opcode = 3, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + }, + }, + .{ + .name = "FMax3AMD", .opcode = 4, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "asinpi", + .name = "UMax3AMD", .opcode = 5, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "atan", + .name = "SMax3AMD", .opcode = 6, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "atan2", + .name = "FMid3AMD", .opcode = 7, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "atanh", + .name = "UMid3AMD", .opcode = 8, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "atanpi", + .name = "SMid3AMD", .opcode = 9, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, + }, + .spv_ext_inst_type_tosa_001000_1 => &.{ .{ - .name = "atan2pi", + .name = "ARGMAX", + .opcode = 0, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + }, + }, + .{ + .name = "AVG_POOL2D", + .opcode = 1, + .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 }, + }, + }, + .{ + .name = "CONV2D", + .opcode = 2, + .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 }, + }, + }, + .{ + .name = "CONV3D", + .opcode = 3, + .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 }, + }, + }, + .{ + .name = "DEPTHWISE_CONV2D", + .opcode = 4, + .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 }, + }, + }, + .{ + .name = "FFT2D", + .opcode = 5, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + }, + }, + .{ + .name = "MATMUL", + .opcode = 6, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + }, + }, + .{ + .name = "MAX_POOL2D", + .opcode = 7, + .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 }, + }, + }, + .{ + .name = "RFFT2D", + .opcode = 8, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + }, + }, + .{ + .name = "TRANSPOSE_CONV2D", + .opcode = 9, + .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 }, + }, + }, + .{ + .name = "CLAMP", .opcode = 10, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "cbrt", + .name = "ERF", .opcode = 11, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "ceil", + .name = "SIGMOID", .opcode = 12, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "copysign", + .name = "TANH", .opcode = 13, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "cos", + .name = "ADD", .opcode = 14, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "cosh", + .name = "ARITHMETIC_RIGHT_SHIFT", .opcode = 15, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "cospi", + .name = "BITWISE_AND", .opcode = 16, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "erfc", + .name = "BITWISE_OR", .opcode = 17, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "erf", + .name = "BITWISE_XOR", .opcode = 18, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "exp", + .name = "INTDIV", .opcode = 19, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "exp2", + .name = "LOGICAL_AND", .opcode = 20, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "exp10", + .name = "LOGICAL_LEFT_SHIFT", .opcode = 21, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "expm1", + .name = "LOGICAL_RIGHT_SHIFT", .opcode = 22, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "fabs", + .name = "LOGICAL_OR", .opcode = 23, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "fdim", + .name = "LOGICAL_XOR", .opcode = 24, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "floor", + .name = "MAXIMUM", .opcode = 25, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "fma", + .name = "MINIMUM", .opcode = 26, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "fmax", + .name = "MUL", .opcode = 27, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "fmin", + .name = "POW", .opcode = 28, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "fmod", + .name = "SUB", .opcode = 29, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "fract", + .name = "TABLE", .opcode = 30, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "frexp", + .name = "ABS", .opcode = 31, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "hypot", + .name = "BITWISE_NOT", .opcode = 32, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "ilogb", + .name = "CEIL", .opcode = 33, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "ldexp", + .name = "CLZ", .opcode = 34, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "lgamma", + .name = "COS", .opcode = 35, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "lgamma_r", + .name = "EXP", .opcode = 36, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "log", + .name = "FLOOR", .opcode = 37, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "log2", + .name = "LOG", .opcode = 38, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "log10", + .name = "LOGICAL_NOT", .opcode = 39, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "log1p", + .name = "NEGATE", .opcode = 40, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "logb", + .name = "RECIPROCAL", .opcode = 41, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "mad", + .name = "RSQRT", .opcode = 42, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "maxmag", + .name = "SIN", .opcode = 43, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "minmag", + .name = "SELECT", .opcode = 44, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "modf", + .name = "EQUAL", .opcode = 45, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "nan", + .name = "GREATER", .opcode = 46, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "nextafter", + .name = "GREATER_EQUAL", .opcode = 47, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "pow", + .name = "REDUCE_ALL", .opcode = 48, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "pown", + .name = "REDUCE_ANY", .opcode = 49, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "powr", + .name = "REDUCE_MAX", .opcode = 50, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "remainder", + .name = "REDUCE_MIN", .opcode = 51, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "remquo", + .name = "REDUCE_PRODUCT", .opcode = 52, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "rint", + .name = "REDUCE_SUM", .opcode = 53, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "rootn", + .name = "CONCAT", .opcode = 54, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .variadic }, }, }, .{ - .name = "round", + .name = "PAD", .opcode = 55, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "rsqrt", + .name = "RESHAPE", .opcode = 56, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "sin", + .name = "REVERSE", .opcode = 57, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "sincos", + .name = "SLICE", .opcode = 58, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "sinh", + .name = "TILE", .opcode = 59, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "sinpi", + .name = "TRANSPOSE", .opcode = 60, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "sqrt", + .name = "GATHER", .opcode = 61, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "tan", + .name = "SCATTER", .opcode = 62, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "tanh", + .name = "RESIZE", .opcode = 63, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .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 }, }, }, .{ - .name = "tanpi", + .name = "CAST", .opcode = 64, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "tgamma", + .name = "RESCALE", .opcode = 65, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .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 }, }, }, + }, + .non_semantic_vksp_reflection => &.{ .{ - .name = "trunc", - .opcode = 66, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .name = "Configuration", + .opcode = 1, + .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 }, }, }, .{ - .name = "half_cos", - .opcode = 67, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .name = "StartCounter", + .opcode = 2, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "half_divide", - .opcode = 68, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "StopCounter", + .opcode = 3, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "half_exp", - .opcode = 69, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .name = "PushConstants", + .opcode = 4, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "half_exp2", - .opcode = 70, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .name = "SpecializationMapEntry", + .opcode = 5, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "half_exp10", - .opcode = 71, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .name = "DescriptorSetBuffer", + .opcode = 6, + .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 = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "half_log", - .opcode = 72, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .name = "DescriptorSetImage", + .opcode = 7, + .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 = .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 }, + .{ .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 = "half_log2", - .opcode = 73, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .name = "DescriptorSetSampler", + .opcode = 8, + .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 = .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 }, }, }, + }, + .spv_amd_shader_explicit_vertex_parameter => &.{ .{ - .name = "half_log10", - .opcode = 74, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .name = "InterpolateAtVertexAMD", + .opcode = 1, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, + }, + .debug_info => &.{ .{ - .name = "half_powr", - .opcode = 75, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - }, + .name = "DebugInfoNone", + .opcode = 0, + .operands = &.{}, }, .{ - .name = "half_recip", - .opcode = 76, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .name = "DebugCompilationUnit", + .opcode = 1, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, }, }, .{ - .name = "half_rsqrt", - .opcode = 77, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .name = "DebugTypeBasic", + .opcode = 2, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .debug_info_debug_base_type_attribute_encoding, .quantifier = .required }, }, }, .{ - .name = "half_sin", - .opcode = 78, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .name = "DebugTypePointer", + .opcode = 3, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .storage_class, .quantifier = .required }, + .{ .kind = .debug_info_debug_info_flags, .quantifier = .required }, }, }, .{ - .name = "half_sqrt", - .opcode = 79, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .name = "DebugTypeQualifier", + .opcode = 4, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .debug_info_debug_type_qualifier, .quantifier = .required }, }, }, .{ - .name = "half_tan", - .opcode = 80, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .name = "DebugTypeArray", + .opcode = 5, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .variadic }, }, }, .{ - .name = "native_cos", - .opcode = 81, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .name = "DebugTypeVector", + .opcode = 6, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, }, }, .{ - .name = "native_divide", - .opcode = 82, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "DebugTypedef", + .opcode = 7, + .operands = &.{ + .{ .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 = .id_ref, .quantifier = .required }, }, }, .{ - .name = "native_exp", - .opcode = 83, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .name = "DebugTypeFunction", + .opcode = 8, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .variadic }, }, }, .{ - .name = "native_exp2", - .opcode = 84, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .name = "DebugTypeEnum", + .opcode = 9, + .operands = &.{ + .{ .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 = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .debug_info_debug_info_flags, .quantifier = .required }, + .{ .kind = .pair_id_ref_id_ref, .quantifier = .variadic }, }, }, .{ - .name = "native_exp10", - .opcode = 85, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .name = "DebugTypeComposite", + .opcode = 10, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .debug_info_debug_composite_type, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .debug_info_debug_info_flags, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .variadic }, }, }, .{ - .name = "native_log", - .opcode = 86, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .name = "DebugTypeMember", + .opcode = 11, + .operands = &.{ + .{ .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 = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .debug_info_debug_info_flags, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .optional }, }, }, .{ - .name = "native_log2", - .opcode = 87, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .name = "DebugTypeInheritance", + .opcode = 12, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .debug_info_debug_info_flags, .quantifier = .required }, }, }, .{ - .name = "native_log10", - .opcode = 88, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .name = "DebugTypePtrToMember", + .opcode = 13, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "native_powr", - .opcode = 89, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "DebugTypeTemplate", + .opcode = 14, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .variadic }, }, }, .{ - .name = "native_recip", - .opcode = 90, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .name = "DebugTypeTemplateParameter", + .opcode = 15, + .operands = &.{ + .{ .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 }, }, }, .{ - .name = "native_rsqrt", - .opcode = 91, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .name = "DebugTypeTemplateTemplateParameter", + .opcode = 16, + .operands = &.{ + .{ .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 }, }, }, .{ - .name = "native_sin", - .opcode = 92, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .name = "DebugTypeTemplateParameterPack", + .opcode = 17, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .variadic }, }, }, .{ - .name = "native_sqrt", - .opcode = 93, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .name = "DebugGlobalVariable", + .opcode = 18, + .operands = &.{ + .{ .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 = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .debug_info_debug_info_flags, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .optional }, }, }, .{ - .name = "native_tan", - .opcode = 94, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .name = "DebugFunctionDeclaration", + .opcode = 19, + .operands = &.{ + .{ .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 = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .debug_info_debug_info_flags, .quantifier = .required }, }, }, .{ - .name = "fclamp", - .opcode = 95, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "DebugFunction", + .opcode = 20, + .operands = &.{ + .{ .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 = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .debug_info_debug_info_flags, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .optional }, }, }, .{ - .name = "degrees", - .opcode = 96, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .name = "DebugLexicalBlock", + .opcode = 21, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .optional }, }, }, .{ - .name = "fmax_common", - .opcode = 97, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "DebugLexicalBlockDiscriminator", + .opcode = 22, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "fmin_common", - .opcode = 98, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "DebugScope", + .opcode = 23, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .optional }, }, }, .{ - .name = "mix", - .opcode = 99, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "DebugNoScope", + .opcode = 24, + .operands = &.{}, + }, + .{ + .name = "DebugInlinedAt", + .opcode = 25, + .operands = &.{ + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .optional }, }, }, .{ - .name = "radians", - .opcode = 100, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .name = "DebugLocalVariable", + .opcode = 26, + .operands = &.{ + .{ .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 = .id_ref, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .optional }, }, }, .{ - .name = "step", - .opcode = 101, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "DebugInlinedVariable", + .opcode = 27, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "smoothstep", - .opcode = 102, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "DebugDeclare", + .opcode = 28, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "sign", - .opcode = 103, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .name = "DebugValue", + .opcode = 29, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .variadic }, }, }, .{ - .name = "cross", - .opcode = 104, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "DebugOperation", + .opcode = 30, + .operands = &.{ + .{ .kind = .debug_info_debug_operation, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .variadic }, }, }, .{ - .name = "distance", - .opcode = 105, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "DebugExpression", + .opcode = 31, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .variadic }, }, }, .{ - .name = "length", - .opcode = 106, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .name = "DebugMacroDef", + .opcode = 32, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .optional }, }, }, .{ - .name = "normalize", - .opcode = 107, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .name = "DebugMacroUndef", + .opcode = 33, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, + }, + .non_semantic_debug_break => &.{ .{ - .name = "fast_distance", - .opcode = 108, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "DebugBreak", + .opcode = 1, + .operands = &.{}, + }, + }, + .open_cl_debug_info_100 => &.{ + .{ + .name = "DebugInfoNone", + .opcode = 0, + .operands = &.{}, + }, + .{ + .name = "DebugCompilationUnit", + .opcode = 1, + .operands = &.{ + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .source_language, .quantifier = .required }, }, }, .{ - .name = "fast_length", - .opcode = 109, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .name = "DebugTypeBasic", + .opcode = 2, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .open_cl_debug_info_100_debug_base_type_attribute_encoding, .quantifier = .required }, }, }, .{ - .name = "fast_normalize", - .opcode = 110, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .name = "DebugTypePointer", + .opcode = 3, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .storage_class, .quantifier = .required }, + .{ .kind = .open_cl_debug_info_100_debug_info_flags, .quantifier = .required }, }, }, .{ - .name = "s_abs", - .opcode = 141, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .name = "DebugTypeQualifier", + .opcode = 4, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .open_cl_debug_info_100_debug_type_qualifier, .quantifier = .required }, }, }, .{ - .name = "s_abs_diff", - .opcode = 142, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "DebugTypeArray", + .opcode = 5, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .variadic }, }, }, .{ - .name = "s_add_sat", - .opcode = 143, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "DebugTypeVector", + .opcode = 6, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, }, }, .{ - .name = "u_add_sat", - .opcode = 144, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "DebugTypedef", + .opcode = 7, + .operands = &.{ + .{ .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 = .id_ref, .quantifier = .required }, }, }, .{ - .name = "s_hadd", - .opcode = 145, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "DebugTypeFunction", + .opcode = 8, + .operands = &.{ + .{ .kind = .open_cl_debug_info_100_debug_info_flags, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .variadic }, }, }, .{ - .name = "u_hadd", - .opcode = 146, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "DebugTypeEnum", + .opcode = 9, + .operands = &.{ + .{ .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 = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .open_cl_debug_info_100_debug_info_flags, .quantifier = .required }, + .{ .kind = .pair_id_ref_id_ref, .quantifier = .variadic }, }, }, .{ - .name = "s_rhadd", - .opcode = 147, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "DebugTypeComposite", + .opcode = 10, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .open_cl_debug_info_100_debug_composite_type, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .open_cl_debug_info_100_debug_info_flags, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .variadic }, }, }, .{ - .name = "u_rhadd", - .opcode = 148, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "DebugTypeMember", + .opcode = 11, + .operands = &.{ + .{ .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 = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .open_cl_debug_info_100_debug_info_flags, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .optional }, }, }, .{ - .name = "s_clamp", - .opcode = 149, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "DebugTypeInheritance", + .opcode = 12, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .open_cl_debug_info_100_debug_info_flags, .quantifier = .required }, }, }, .{ - .name = "u_clamp", - .opcode = 150, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "DebugTypePtrToMember", + .opcode = 13, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "clz", - .opcode = 151, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .name = "DebugTypeTemplate", + .opcode = 14, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .variadic }, }, }, .{ - .name = "ctz", - .opcode = 152, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .name = "DebugTypeTemplateParameter", + .opcode = 15, + .operands = &.{ + .{ .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 }, }, }, .{ - .name = "s_mad_hi", - .opcode = 153, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "DebugTypeTemplateTemplateParameter", + .opcode = 16, + .operands = &.{ + .{ .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 }, }, }, .{ - .name = "u_mad_sat", - .opcode = 154, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "DebugTypeTemplateParameterPack", + .opcode = 17, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .variadic }, }, }, .{ - .name = "s_mad_sat", - .opcode = 155, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "DebugGlobalVariable", + .opcode = 18, + .operands = &.{ + .{ .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 = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .open_cl_debug_info_100_debug_info_flags, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .optional }, }, }, .{ - .name = "s_max", - .opcode = 156, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "DebugFunctionDeclaration", + .opcode = 19, + .operands = &.{ + .{ .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 = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .open_cl_debug_info_100_debug_info_flags, .quantifier = .required }, }, }, .{ - .name = "u_max", - .opcode = 157, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "DebugFunction", + .opcode = 20, + .operands = &.{ + .{ .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 = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .open_cl_debug_info_100_debug_info_flags, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .optional }, }, }, .{ - .name = "s_min", - .opcode = 158, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "DebugLexicalBlock", + .opcode = 21, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .optional }, }, }, .{ - .name = "u_min", - .opcode = 159, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "DebugLexicalBlockDiscriminator", + .opcode = 22, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "s_mul_hi", - .opcode = 160, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "DebugScope", + .opcode = 23, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .optional }, }, }, .{ - .name = "rotate", - .opcode = 161, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "DebugNoScope", + .opcode = 24, + .operands = &.{}, + }, + .{ + .name = "DebugInlinedAt", + .opcode = 25, + .operands = &.{ + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .optional }, }, }, .{ - .name = "s_sub_sat", - .opcode = 162, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "DebugLocalVariable", + .opcode = 26, + .operands = &.{ + .{ .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 = .id_ref, .quantifier = .required }, + .{ .kind = .open_cl_debug_info_100_debug_info_flags, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .optional }, }, }, .{ - .name = "u_sub_sat", - .opcode = 163, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "DebugInlinedVariable", + .opcode = 27, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "u_upsample", - .opcode = 164, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "DebugDeclare", + .opcode = 28, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "s_upsample", - .opcode = 165, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "DebugValue", + .opcode = 29, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .variadic }, }, }, .{ - .name = "popcount", - .opcode = 166, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .name = "DebugOperation", + .opcode = 30, + .operands = &.{ + .{ .kind = .open_cl_debug_info_100_debug_operation, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .variadic }, }, }, .{ - .name = "s_mad24", - .opcode = 167, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "DebugExpression", + .opcode = 31, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .variadic }, }, }, .{ - .name = "u_mad24", - .opcode = 168, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "DebugMacroDef", + .opcode = 32, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .optional }, }, }, .{ - .name = "s_mul24", - .opcode = 169, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "DebugMacroUndef", + .opcode = 33, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "u_mul24", - .opcode = 170, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "DebugImportedEntity", + .opcode = 34, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .open_cl_debug_info_100_debug_imported_entity, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "vloadn", - .opcode = 171, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .name = "DebugSource", + .opcode = 35, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .optional }, }, }, .{ - .name = "vstoren", - .opcode = 172, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "DebugModuleINTEL", + .opcode = 36, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, }, }, + }, + .non_semantic_clspv_reflection_6 => &.{ .{ - .name = "vload_half", - .opcode = 173, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "Kernel", + .opcode = 1, + .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 }, }, }, .{ - .name = "vload_halfn", - .opcode = 174, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .name = "ArgumentInfo", + .opcode = 2, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .optional }, + .{ .kind = .id_ref, .quantifier = .optional }, + .{ .kind = .id_ref, .quantifier = .optional }, + .{ .kind = .id_ref, .quantifier = .optional }, }, }, .{ - .name = "vstore_half", - .opcode = 175, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "ArgumentStorageBuffer", + .opcode = 3, + .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 = .optional }, }, }, .{ - .name = "vstore_half_r", - .opcode = 176, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .FPRoundingMode, .quantifier = .required }, + .name = "ArgumentUniform", + .opcode = 4, + .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 = .optional }, + }, + }, + .{ + .name = "ArgumentPodStorageBuffer", + .opcode = 5, + .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 = .optional }, + }, + }, + .{ + .name = "ArgumentPodUniform", + .opcode = 6, + .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 = .optional }, + }, + }, + .{ + .name = "ArgumentPodPushConstant", + .opcode = 7, + .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 = .optional }, + }, + }, + .{ + .name = "ArgumentSampledImage", + .opcode = 8, + .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 = .optional }, + }, + }, + .{ + .name = "ArgumentStorageImage", + .opcode = 9, + .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 = .optional }, + }, + }, + .{ + .name = "ArgumentSampler", + .opcode = 10, + .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 = .optional }, + }, + }, + .{ + .name = "ArgumentWorkgroup", + .opcode = 11, + .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 = .optional }, + }, + }, + .{ + .name = "SpecConstantWorkgroupSize", + .opcode = 12, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + }, + }, + .{ + .name = "SpecConstantGlobalOffset", + .opcode = 13, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + }, + }, + .{ + .name = "SpecConstantWorkDim", + .opcode = 14, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + }, + }, + .{ + .name = "PushConstantGlobalOffset", + .opcode = 15, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + }, + }, + .{ + .name = "PushConstantEnqueuedLocalSize", + .opcode = 16, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + }, + }, + .{ + .name = "PushConstantGlobalSize", + .opcode = 17, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + }, + }, + .{ + .name = "PushConstantRegionOffset", + .opcode = 18, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + }, + }, + .{ + .name = "PushConstantNumWorkgroups", + .opcode = 19, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + }, + }, + .{ + .name = "PushConstantRegionGroupOffset", + .opcode = 20, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + }, + }, + .{ + .name = "ConstantDataStorageBuffer", + .opcode = 21, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + }, + }, + .{ + .name = "ConstantDataUniform", + .opcode = 22, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + }, + }, + .{ + .name = "LiteralSampler", + .opcode = 23, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + }, + }, + .{ + .name = "PropertyRequiredWorkgroupSize", + .opcode = 24, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + }, + }, + .{ + .name = "SpecConstantSubgroupMaxSize", + .opcode = 25, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + }, + }, + .{ + .name = "ArgumentPointerPushConstant", + .opcode = 26, + .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 = .optional }, + }, + }, + .{ + .name = "ArgumentPointerUniform", + .opcode = 27, + .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 = .optional }, }, }, .{ - .name = "vstore_halfn", - .opcode = 177, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "ProgramScopeVariablesStorageBuffer", + .opcode = 28, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "vstore_halfn_r", - .opcode = 178, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .FPRoundingMode, .quantifier = .required }, + .name = "ProgramScopeVariablePointerRelocation", + .opcode = 29, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "vloada_halfn", - .opcode = 179, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .name = "ImageArgumentInfoChannelOrderPushConstant", + .opcode = 30, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "vstorea_halfn", - .opcode = 180, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "ImageArgumentInfoChannelDataTypePushConstant", + .opcode = 31, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "vstorea_halfn_r", - .opcode = 181, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .FPRoundingMode, .quantifier = .required }, + .name = "ImageArgumentInfoChannelOrderUniform", + .opcode = 32, + .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 }, }, }, .{ - .name = "shuffle", - .opcode = 182, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "ImageArgumentInfoChannelDataTypeUniform", + .opcode = 33, + .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 }, }, }, .{ - .name = "shuffle2", - .opcode = 183, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "ArgumentStorageTexelBuffer", + .opcode = 34, + .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 = .optional }, }, }, .{ - .name = "printf", - .opcode = 184, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .variadic }, + .name = "ArgumentUniformTexelBuffer", + .opcode = 35, + .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 = .optional }, }, }, .{ - .name = "prefetch", - .opcode = 185, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "ConstantDataPointerPushConstant", + .opcode = 36, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "bitselect", - .opcode = 186, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "ProgramScopeVariablePointerPushConstant", + .opcode = 37, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "select", - .opcode = 187, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "PrintfInfo", + .opcode = 38, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .variadic }, }, }, .{ - .name = "u_abs", - .opcode = 201, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .name = "PrintfBufferStorageBuffer", + .opcode = 39, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "u_abs_diff", - .opcode = 202, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "PrintfBufferPointerPushConstant", + .opcode = 40, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "u_mul_hi", - .opcode = 203, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "NormalizedSamplerMaskPushConstant", + .opcode = 41, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "u_mad_hi", - .opcode = 204, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "WorkgroupVariableSize", + .opcode = 42, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, }, - .@"GLSL.std.450" => &[_]Instruction{ + .glsl_std_450 => &.{ .{ .name = "Round", .opcode = 1, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "RoundEven", .opcode = 2, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "Trunc", .opcode = 3, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "FAbs", .opcode = 4, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "SAbs", .opcode = 5, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "FSign", .opcode = 6, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "SSign", .opcode = 7, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "Floor", .opcode = 8, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "Ceil", .opcode = 9, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "Fract", .opcode = 10, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "Radians", .opcode = 11, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "Degrees", .opcode = 12, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "Sin", .opcode = 13, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "Cos", .opcode = 14, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "Tan", .opcode = 15, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "Asin", .opcode = 16, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "Acos", .opcode = 17, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "Atan", .opcode = 18, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "Sinh", .opcode = 19, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "Cosh", .opcode = 20, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "Tanh", .opcode = 21, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "Asinh", .opcode = 22, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "Acosh", .opcode = 23, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "Atanh", .opcode = 24, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "Atan2", .opcode = 25, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "Pow", .opcode = 26, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "Exp", .opcode = 27, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "Log", .opcode = 28, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "Exp2", .opcode = 29, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "Log2", .opcode = 30, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "Sqrt", .opcode = 31, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "InverseSqrt", .opcode = 32, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "Determinant", .opcode = 33, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "MatrixInverse", .opcode = 34, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "Modf", .opcode = 35, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "ModfStruct", .opcode = 36, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "FMin", .opcode = 37, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "UMin", .opcode = 38, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "SMin", .opcode = 39, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "FMax", .opcode = 40, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "UMax", .opcode = 41, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "SMax", .opcode = 42, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "FClamp", .opcode = 43, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "UClamp", .opcode = 44, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "SClamp", .opcode = 45, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "FMix", .opcode = 46, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "IMix", .opcode = 47, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "Step", .opcode = 48, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "SmoothStep", .opcode = 49, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "Fma", .opcode = 50, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "Frexp", .opcode = 51, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "FrexpStruct", .opcode = 52, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "Ldexp", .opcode = 53, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "PackSnorm4x8", .opcode = 54, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "PackUnorm4x8", .opcode = 55, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "PackSnorm2x16", .opcode = 56, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "PackUnorm2x16", .opcode = 57, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "PackHalf2x16", .opcode = 58, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "PackDouble2x32", .opcode = 59, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "UnpackSnorm2x16", .opcode = 60, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "UnpackUnorm2x16", .opcode = 61, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "UnpackHalf2x16", .opcode = 62, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "UnpackSnorm4x8", .opcode = 63, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "UnpackUnorm4x8", .opcode = 64, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "UnpackDouble2x32", .opcode = 65, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "Length", .opcode = 66, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "Distance", .opcode = 67, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "Cross", .opcode = 68, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "Normalize", .opcode = 69, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "FaceForward", .opcode = 70, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "Reflect", .opcode = 71, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "Refract", .opcode = 72, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "FindILsb", .opcode = 73, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "FindSMsb", .opcode = 74, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "FindUMsb", .opcode = 75, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "InterpolateAtCentroid", .opcode = 76, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "InterpolateAtSample", .opcode = 77, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "InterpolateAtOffset", .opcode = 78, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "NMin", .opcode = 79, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "NMax", .opcode = 80, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "NClamp", .opcode = 81, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, }, - .@"OpenCL.DebugInfo.100" => &[_]Instruction{ + .spv_amd_shader_ballot => &.{ .{ - .name = "DebugInfoNone", + .name = "SwizzleInvocationsAMD", + .opcode = 1, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + }, + }, + .{ + .name = "SwizzleInvocationsMaskedAMD", + .opcode = 2, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + }, + }, + .{ + .name = "WriteInvocationAMD", + .opcode = 3, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + }, + }, + .{ + .name = "MbcntAMD", + .opcode = 4, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + }, + }, + }, + .non_semantic_debug_printf => &.{ + .{ + .name = "DebugPrintf", + .opcode = 1, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .variadic }, + }, + }, + }, + .spv_amd_gcn_shader => &.{ + .{ + .name = "CubeFaceIndexAMD", + .opcode = 1, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + }, + }, + .{ + .name = "CubeFaceCoordAMD", + .opcode = 2, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + }, + }, + .{ + .name = "TimeAMD", + .opcode = 3, + .operands = &.{}, + }, + }, + .open_cl_std => &.{ + .{ + .name = "acos", .opcode = 0, - .operands = &[_]Operand{}, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + }, }, .{ - .name = "DebugCompilationUnit", + .name = "acosh", .opcode = 1, - .operands = &[_]Operand{ - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .SourceLanguage, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DebugTypeBasic", + .name = "acospi", .opcode = 2, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .@"OpenCL.DebugInfo.100.DebugBaseTypeAttributeEncoding", .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DebugTypePointer", + .name = "asin", .opcode = 3, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .StorageClass, .quantifier = .required }, - .{ .kind = .@"OpenCL.DebugInfo.100.DebugInfoFlags", .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DebugTypeQualifier", + .name = "asinh", .opcode = 4, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .@"OpenCL.DebugInfo.100.DebugTypeQualifier", .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DebugTypeArray", + .name = "asinpi", .opcode = 5, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .variadic }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DebugTypeVector", + .name = "atan", .opcode = 6, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DebugTypedef", + .name = "atan2", .opcode = 7, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DebugTypeFunction", + .name = "atanh", .opcode = 8, - .operands = &[_]Operand{ - .{ .kind = .@"OpenCL.DebugInfo.100.DebugInfoFlags", .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .variadic }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DebugTypeEnum", + .name = "atanpi", .opcode = 9, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .@"OpenCL.DebugInfo.100.DebugInfoFlags", .quantifier = .required }, - .{ .kind = .PairIdRefIdRef, .quantifier = .variadic }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DebugTypeComposite", + .name = "atan2pi", .opcode = 10, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .@"OpenCL.DebugInfo.100.DebugCompositeType", .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .@"OpenCL.DebugInfo.100.DebugInfoFlags", .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .variadic }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DebugTypeMember", + .name = "cbrt", .opcode = 11, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .@"OpenCL.DebugInfo.100.DebugInfoFlags", .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .optional }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DebugTypeInheritance", + .name = "ceil", .opcode = 12, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .@"OpenCL.DebugInfo.100.DebugInfoFlags", .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DebugTypePtrToMember", + .name = "copysign", .opcode = 13, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DebugTypeTemplate", + .name = "cos", .opcode = 14, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .variadic }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DebugTypeTemplateParameter", + .name = "cosh", .opcode = 15, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DebugTypeTemplateTemplateParameter", + .name = "cospi", .opcode = 16, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DebugTypeTemplateParameterPack", + .name = "erfc", .opcode = 17, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .variadic }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DebugGlobalVariable", + .name = "erf", .opcode = 18, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .@"OpenCL.DebugInfo.100.DebugInfoFlags", .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .optional }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DebugFunctionDeclaration", + .name = "exp", .opcode = 19, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .@"OpenCL.DebugInfo.100.DebugInfoFlags", .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DebugFunction", + .name = "exp2", .opcode = 20, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .@"OpenCL.DebugInfo.100.DebugInfoFlags", .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .optional }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DebugLexicalBlock", + .name = "exp10", .opcode = 21, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .optional }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DebugLexicalBlockDiscriminator", + .name = "expm1", .opcode = 22, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DebugScope", + .name = "fabs", .opcode = 23, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .optional }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DebugNoScope", + .name = "fdim", .opcode = 24, - .operands = &[_]Operand{}, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + }, }, .{ - .name = "DebugInlinedAt", + .name = "floor", .opcode = 25, - .operands = &[_]Operand{ - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .optional }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DebugLocalVariable", + .name = "fma", .opcode = 26, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .@"OpenCL.DebugInfo.100.DebugInfoFlags", .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .optional }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DebugInlinedVariable", + .name = "fmax", .opcode = 27, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DebugDeclare", + .name = "fmin", .opcode = 28, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DebugValue", + .name = "fmod", .opcode = 29, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .variadic }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DebugOperation", + .name = "fract", .opcode = 30, - .operands = &[_]Operand{ - .{ .kind = .@"OpenCL.DebugInfo.100.DebugOperation", .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .variadic }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DebugExpression", + .name = "frexp", .opcode = 31, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .variadic }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DebugMacroDef", + .name = "hypot", .opcode = 32, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .optional }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + }, + }, + .{ + .name = "ilogb", + .opcode = 33, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + }, + }, + .{ + .name = "ldexp", + .opcode = 34, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + }, + }, + .{ + .name = "lgamma", + .opcode = 35, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + }, + }, + .{ + .name = "lgamma_r", + .opcode = 36, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + }, + }, + .{ + .name = "log", + .opcode = 37, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + }, + }, + .{ + .name = "log2", + .opcode = 38, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + }, + }, + .{ + .name = "log10", + .opcode = 39, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + }, + }, + .{ + .name = "log1p", + .opcode = 40, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + }, + }, + .{ + .name = "logb", + .opcode = 41, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + }, + }, + .{ + .name = "mad", + .opcode = 42, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + }, + }, + .{ + .name = "maxmag", + .opcode = 43, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + }, + }, + .{ + .name = "minmag", + .opcode = 44, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + }, + }, + .{ + .name = "modf", + .opcode = 45, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + }, + }, + .{ + .name = "nan", + .opcode = 46, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + }, + }, + .{ + .name = "nextafter", + .opcode = 47, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + }, + }, + .{ + .name = "pow", + .opcode = 48, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + }, + }, + .{ + .name = "pown", + .opcode = 49, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DebugMacroUndef", - .opcode = 33, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "powr", + .opcode = 50, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DebugImportedEntity", - .opcode = 34, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .@"OpenCL.DebugInfo.100.DebugImportedEntity", .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "remainder", + .opcode = 51, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DebugSource", - .opcode = 35, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .optional }, + .name = "remquo", + .opcode = 52, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DebugModuleINTEL", - .opcode = 36, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .name = "rint", + .opcode = 53, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, - }, - .SPV_AMD_shader_ballot => &[_]Instruction{ .{ - .name = "SwizzleInvocationsAMD", - .opcode = 1, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "rootn", + .opcode = 54, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "SwizzleInvocationsMaskedAMD", - .opcode = 2, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "round", + .opcode = 55, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "WriteInvocationAMD", - .opcode = 3, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "rsqrt", + .opcode = 56, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "MbcntAMD", - .opcode = 4, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .name = "sin", + .opcode = 57, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, - }, - .@"NonSemantic.Shader.DebugInfo.100" => &[_]Instruction{ .{ - .name = "DebugInfoNone", - .opcode = 0, - .operands = &[_]Operand{}, + .name = "sincos", + .opcode = 58, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + }, }, .{ - .name = "DebugCompilationUnit", - .opcode = 1, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "sinh", + .opcode = 59, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DebugTypeBasic", - .opcode = 2, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "sinpi", + .opcode = 60, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DebugTypePointer", - .opcode = 3, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "sqrt", + .opcode = 61, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DebugTypeQualifier", - .opcode = 4, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "tan", + .opcode = 62, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DebugTypeArray", - .opcode = 5, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .variadic }, + .name = "tanh", + .opcode = 63, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DebugTypeVector", - .opcode = 6, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "tanpi", + .opcode = 64, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DebugTypedef", - .opcode = 7, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "tgamma", + .opcode = 65, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DebugTypeFunction", - .opcode = 8, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .variadic }, + .name = "trunc", + .opcode = 66, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DebugTypeEnum", - .opcode = 9, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .PairIdRefIdRef, .quantifier = .variadic }, + .name = "half_cos", + .opcode = 67, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DebugTypeComposite", - .opcode = 10, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .variadic }, + .name = "half_divide", + .opcode = 68, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DebugTypeMember", - .opcode = 11, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .optional }, + .name = "half_exp", + .opcode = 69, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DebugTypeInheritance", - .opcode = 12, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "half_exp2", + .opcode = 70, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DebugTypePtrToMember", - .opcode = 13, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "half_exp10", + .opcode = 71, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DebugTypeTemplate", - .opcode = 14, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .variadic }, + .name = "half_log", + .opcode = 72, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DebugTypeTemplateParameter", - .opcode = 15, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "half_log2", + .opcode = 73, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DebugTypeTemplateTemplateParameter", - .opcode = 16, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "half_log10", + .opcode = 74, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DebugTypeTemplateParameterPack", - .opcode = 17, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .variadic }, + .name = "half_powr", + .opcode = 75, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DebugGlobalVariable", - .opcode = 18, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .optional }, + .name = "half_recip", + .opcode = 76, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DebugFunctionDeclaration", - .opcode = 19, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "half_rsqrt", + .opcode = 77, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DebugFunction", - .opcode = 20, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .optional }, + .name = "half_sin", + .opcode = 78, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DebugLexicalBlock", - .opcode = 21, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .optional }, + .name = "half_sqrt", + .opcode = 79, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DebugLexicalBlockDiscriminator", - .opcode = 22, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "half_tan", + .opcode = 80, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DebugScope", - .opcode = 23, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .optional }, + .name = "native_cos", + .opcode = 81, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DebugNoScope", - .opcode = 24, - .operands = &[_]Operand{}, + .name = "native_divide", + .opcode = 82, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + }, }, .{ - .name = "DebugInlinedAt", - .opcode = 25, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .optional }, + .name = "native_exp", + .opcode = 83, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DebugLocalVariable", - .opcode = 26, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .optional }, + .name = "native_exp2", + .opcode = 84, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DebugInlinedVariable", - .opcode = 27, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "native_exp10", + .opcode = 85, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DebugDeclare", - .opcode = 28, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .variadic }, + .name = "native_log", + .opcode = 86, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DebugValue", - .opcode = 29, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .variadic }, + .name = "native_log2", + .opcode = 87, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DebugOperation", - .opcode = 30, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .variadic }, + .name = "native_log10", + .opcode = 88, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DebugExpression", - .opcode = 31, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .variadic }, + .name = "native_powr", + .opcode = 89, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DebugMacroDef", - .opcode = 32, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .optional }, + .name = "native_recip", + .opcode = 90, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DebugMacroUndef", - .opcode = 33, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "native_rsqrt", + .opcode = 91, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DebugImportedEntity", - .opcode = 34, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "native_sin", + .opcode = 92, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DebugSource", - .opcode = 35, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .optional }, + .name = "native_sqrt", + .opcode = 93, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DebugFunctionDefinition", - .opcode = 101, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "native_tan", + .opcode = 94, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DebugSourceContinued", - .opcode = 102, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .name = "fclamp", + .opcode = 95, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DebugLine", - .opcode = 103, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "degrees", + .opcode = 96, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DebugNoLine", - .opcode = 104, - .operands = &[_]Operand{}, + .name = "fmax_common", + .opcode = 97, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + }, }, .{ - .name = "DebugBuildIdentifier", - .opcode = 105, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "fmin_common", + .opcode = 98, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DebugStoragePath", - .opcode = 106, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .name = "mix", + .opcode = 99, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DebugEntryPoint", - .opcode = 107, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "radians", + .opcode = 100, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DebugTypeMatrix", - .opcode = 108, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "step", + .opcode = 101, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, - }, - .@"NonSemantic.VkspReflection" => &[_]Instruction{ .{ - .name = "Configuration", - .opcode = 1, - .operands = &[_]Operand{ - .{ .kind = .LiteralString, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralString, .quantifier = .required }, - .{ .kind = .LiteralString, .quantifier = .required }, - .{ .kind = .LiteralString, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .name = "smoothstep", + .opcode = 102, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "StartCounter", - .opcode = 2, - .operands = &[_]Operand{ - .{ .kind = .LiteralString, .quantifier = .required }, + .name = "sign", + .opcode = 103, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "StopCounter", - .opcode = 3, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .name = "cross", + .opcode = 104, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "PushConstants", - .opcode = 4, - .operands = &[_]Operand{ - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralString, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .name = "distance", + .opcode = 105, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "SpecializationMapEntry", - .opcode = 5, - .operands = &[_]Operand{ - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .name = "length", + .opcode = 106, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DescriptorSetBuffer", - .opcode = 6, - .operands = &[_]Operand{ - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .name = "normalize", + .opcode = 107, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DescriptorSetImage", - .opcode = 7, - .operands = &[_]Operand{ - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .name = "fast_distance", + .opcode = 108, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "DescriptorSetSampler", - .opcode = 8, - .operands = &[_]Operand{ - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralFloat, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralFloat, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralFloat, .quantifier = .required }, - .{ .kind = .LiteralFloat, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .name = "fast_length", + .opcode = 109, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, - }, - .@"NonSemantic.ClspvReflection.6" => &[_]Instruction{ .{ - .name = "Kernel", - .opcode = 1, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .optional }, - .{ .kind = .IdRef, .quantifier = .optional }, - .{ .kind = .IdRef, .quantifier = .optional }, + .name = "fast_normalize", + .opcode = 110, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "ArgumentInfo", - .opcode = 2, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .optional }, - .{ .kind = .IdRef, .quantifier = .optional }, - .{ .kind = .IdRef, .quantifier = .optional }, - .{ .kind = .IdRef, .quantifier = .optional }, + .name = "s_abs", + .opcode = 141, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "ArgumentStorageBuffer", - .opcode = 3, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .optional }, + .name = "s_abs_diff", + .opcode = 142, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "ArgumentUniform", - .opcode = 4, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .optional }, + .name = "s_add_sat", + .opcode = 143, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "ArgumentPodStorageBuffer", - .opcode = 5, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .optional }, + .name = "u_add_sat", + .opcode = 144, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "ArgumentPodUniform", - .opcode = 6, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .optional }, + .name = "s_hadd", + .opcode = 145, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "ArgumentPodPushConstant", - .opcode = 7, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .optional }, + .name = "u_hadd", + .opcode = 146, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "ArgumentSampledImage", - .opcode = 8, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .optional }, + .name = "s_rhadd", + .opcode = 147, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "ArgumentStorageImage", - .opcode = 9, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .optional }, + .name = "u_rhadd", + .opcode = 148, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "ArgumentSampler", - .opcode = 10, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .optional }, + .name = "s_clamp", + .opcode = 149, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "ArgumentWorkgroup", - .opcode = 11, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .optional }, + .name = "u_clamp", + .opcode = 150, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "SpecConstantWorkgroupSize", - .opcode = 12, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "clz", + .opcode = 151, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "SpecConstantGlobalOffset", - .opcode = 13, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "ctz", + .opcode = 152, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "SpecConstantWorkDim", - .opcode = 14, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .name = "s_mad_hi", + .opcode = 153, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "PushConstantGlobalOffset", - .opcode = 15, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "u_mad_sat", + .opcode = 154, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "PushConstantEnqueuedLocalSize", - .opcode = 16, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "s_mad_sat", + .opcode = 155, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "PushConstantGlobalSize", - .opcode = 17, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "s_max", + .opcode = 156, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "PushConstantRegionOffset", - .opcode = 18, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "u_max", + .opcode = 157, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "PushConstantNumWorkgroups", - .opcode = 19, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "s_min", + .opcode = 158, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "PushConstantRegionGroupOffset", - .opcode = 20, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "u_min", + .opcode = 159, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "ConstantDataStorageBuffer", - .opcode = 21, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "s_mul_hi", + .opcode = 160, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "ConstantDataUniform", - .opcode = 22, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "rotate", + .opcode = 161, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "LiteralSampler", - .opcode = 23, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "s_sub_sat", + .opcode = 162, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "PropertyRequiredWorkgroupSize", - .opcode = 24, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "u_sub_sat", + .opcode = 163, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "SpecConstantSubgroupMaxSize", - .opcode = 25, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .name = "u_upsample", + .opcode = 164, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "ArgumentPointerPushConstant", - .opcode = 26, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .optional }, + .name = "s_upsample", + .opcode = 165, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "ArgumentPointerUniform", - .opcode = 27, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .optional }, + .name = "popcount", + .opcode = 166, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "ProgramScopeVariablesStorageBuffer", - .opcode = 28, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "s_mad24", + .opcode = 167, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "ProgramScopeVariablePointerRelocation", - .opcode = 29, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "u_mad24", + .opcode = 168, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "ImageArgumentInfoChannelOrderPushConstant", - .opcode = 30, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "s_mul24", + .opcode = 169, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "ImageArgumentInfoChannelDataTypePushConstant", - .opcode = 31, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "u_mul24", + .opcode = 170, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "ImageArgumentInfoChannelOrderUniform", - .opcode = 32, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "vloadn", + .opcode = 171, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, }, }, .{ - .name = "ImageArgumentInfoChannelDataTypeUniform", - .opcode = 33, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "vstoren", + .opcode = 172, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "ArgumentStorageTexelBuffer", - .opcode = 34, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .optional }, + .name = "vload_half", + .opcode = 173, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "ArgumentUniformTexelBuffer", - .opcode = 35, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .optional }, + .name = "vload_halfn", + .opcode = 174, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, }, }, .{ - .name = "ConstantDataPointerPushConstant", - .opcode = 36, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "vstore_half", + .opcode = 175, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "ProgramScopeVariablePointerPushConstant", - .opcode = 37, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "PrintfInfo", - .opcode = 38, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .variadic }, + .name = "vstore_halfn", + .opcode = 177, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "PrintfBufferStorageBuffer", - .opcode = 39, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "PrintfBufferPointerPushConstant", - .opcode = 40, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "vloada_halfn", + .opcode = 179, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .literal_integer, .quantifier = .required }, }, }, .{ - .name = "NormalizedSamplerMaskPushConstant", - .opcode = 41, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "vstorea_halfn", + .opcode = 180, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, - }, - .SPV_AMD_gcn_shader => &[_]Instruction{ .{ - .name = "CubeFaceIndexAMD", - .opcode = 1, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .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 = "CubeFaceCoordAMD", - .opcode = 2, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .name = "shuffle", + .opcode = 182, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "TimeAMD", - .opcode = 3, - .operands = &[_]Operand{}, - }, - }, - .SPV_AMD_shader_trinary_minmax => &[_]Instruction{ - .{ - .name = "FMin3AMD", - .opcode = 1, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "shuffle2", + .opcode = 183, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "UMin3AMD", - .opcode = 2, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "printf", + .opcode = 184, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .variadic }, }, }, .{ - .name = "SMin3AMD", - .opcode = 3, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "prefetch", + .opcode = 185, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "FMax3AMD", - .opcode = 4, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "bitselect", + .opcode = 186, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "UMax3AMD", - .opcode = 5, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "select", + .opcode = 187, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "SMax3AMD", - .opcode = 6, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "u_abs", + .opcode = 201, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "FMid3AMD", - .opcode = 7, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "u_abs_diff", + .opcode = 202, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "UMid3AMD", - .opcode = 8, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "u_mul_hi", + .opcode = 203, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ - .name = "SMid3AMD", - .opcode = 9, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "u_mad_hi", + .opcode = 204, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, }, - .DebugInfo => &[_]Instruction{ + .non_semantic_shader_debug_info_100 => &.{ .{ .name = "DebugInfoNone", .opcode = 0, - .operands = &[_]Operand{}, + .operands = &.{}, }, .{ .name = "DebugCompilationUnit", .opcode = 1, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "DebugTypeBasic", .opcode = 2, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .@"DebugInfo.DebugBaseTypeAttributeEncoding", .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "DebugTypePointer", .opcode = 3, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .StorageClass, .quantifier = .required }, - .{ .kind = .@"DebugInfo.DebugInfoFlags", .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "DebugTypeQualifier", .opcode = 4, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .@"DebugInfo.DebugTypeQualifier", .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "DebugTypeArray", .opcode = 5, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .variadic }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .variadic }, }, }, .{ .name = "DebugTypeVector", .opcode = 6, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "DebugTypedef", .opcode = 7, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .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 }, }, }, .{ .name = "DebugTypeFunction", .opcode = 8, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .variadic }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .variadic }, }, }, .{ .name = "DebugTypeEnum", .opcode = 9, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .@"DebugInfo.DebugInfoFlags", .quantifier = .required }, - .{ .kind = .PairIdRefIdRef, .quantifier = .variadic }, + .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 = .pair_id_ref_id_ref, .quantifier = .variadic }, }, }, .{ .name = "DebugTypeComposite", .opcode = 10, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .@"DebugInfo.DebugCompositeType", .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .@"DebugInfo.DebugInfoFlags", .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .variadic }, + .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 = .variadic }, }, }, .{ .name = "DebugTypeMember", .opcode = 11, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .@"DebugInfo.DebugInfoFlags", .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .optional }, + .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 = .optional }, }, }, .{ .name = "DebugTypeInheritance", .opcode = 12, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .@"DebugInfo.DebugInfoFlags", .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "DebugTypePtrToMember", .opcode = 13, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "DebugTypeTemplate", .opcode = 14, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .variadic }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .variadic }, }, }, .{ .name = "DebugTypeTemplateParameter", .opcode = 15, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .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 }, }, }, .{ .name = "DebugTypeTemplateTemplateParameter", .opcode = 16, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, + .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 }, }, }, .{ .name = "DebugTypeTemplateParameterPack", .opcode = 17, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .variadic }, + .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 = .variadic }, }, }, .{ .name = "DebugGlobalVariable", .opcode = 18, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .@"DebugInfo.DebugInfoFlags", .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .optional }, + .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 }, }, }, .{ .name = "DebugFunctionDeclaration", .opcode = 19, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .@"DebugInfo.DebugInfoFlags", .quantifier = .required }, + .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 }, }, }, .{ .name = "DebugFunction", .opcode = 20, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .@"DebugInfo.DebugInfoFlags", .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .optional }, + .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 }, }, }, .{ .name = "DebugLexicalBlock", .opcode = 21, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .optional }, + .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 = .optional }, }, }, .{ .name = "DebugLexicalBlockDiscriminator", .opcode = 22, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "DebugScope", .opcode = 23, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .optional }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .optional }, }, }, .{ .name = "DebugNoScope", .opcode = 24, - .operands = &[_]Operand{}, + .operands = &.{}, }, .{ .name = "DebugInlinedAt", .opcode = 25, - .operands = &[_]Operand{ - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .optional }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .optional }, }, }, .{ .name = "DebugLocalVariable", .opcode = 26, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .optional }, + .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 = .optional }, }, }, .{ .name = "DebugInlinedVariable", .opcode = 27, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, .{ .name = "DebugDeclare", .opcode = 28, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .variadic }, }, }, .{ .name = "DebugValue", .opcode = 29, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .variadic }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .variadic }, }, }, .{ .name = "DebugOperation", .opcode = 30, - .operands = &[_]Operand{ - .{ .kind = .@"DebugInfo.DebugOperation", .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .variadic }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .variadic }, }, }, .{ .name = "DebugExpression", .opcode = 31, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .variadic }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .variadic }, }, }, .{ .name = "DebugMacroDef", .opcode = 32, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .optional }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .optional }, }, }, .{ .name = "DebugMacroUndef", .opcode = 33, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .LiteralInteger, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, }, }, - }, - .@"NonSemantic.DebugPrintf" => &[_]Instruction{ .{ - .name = "DebugPrintf", - .opcode = 1, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .variadic }, + .name = "DebugImportedEntity", + .opcode = 34, + .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 }, }, }, - }, - .SPV_AMD_shader_explicit_vertex_parameter => &[_]Instruction{ .{ - .name = "InterpolateAtVertexAMD", - .opcode = 1, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, - .{ .kind = .IdRef, .quantifier = .required }, + .name = "DebugSource", + .opcode = 35, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .optional }, }, }, - }, - .@"NonSemantic.DebugBreak" => &[_]Instruction{ .{ - .name = "DebugBreak", - .opcode = 1, - .operands = &[_]Operand{}, + .name = "DebugFunctionDefinition", + .opcode = 101, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + }, + }, + .{ + .name = "DebugSourceContinued", + .opcode = 102, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + }, + }, + .{ + .name = "DebugLine", + .opcode = 103, + .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 }, + }, + }, + .{ + .name = "DebugNoLine", + .opcode = 104, + .operands = &.{}, + }, + .{ + .name = "DebugBuildIdentifier", + .opcode = 105, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + }, + }, + .{ + .name = "DebugStoragePath", + .opcode = 106, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + }, + }, + .{ + .name = "DebugEntryPoint", + .opcode = 107, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + }, + }, + .{ + .name = "DebugTypeMatrix", + .opcode = 108, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + .{ .kind = .id_ref, .quantifier = .required }, + }, }, }, - .zig => &[_]Instruction{ + .zig => &.{ .{ .name = "InvocationGlobal", .opcode = 0, - .operands = &[_]Operand{ - .{ .kind = .IdRef, .quantifier = .required }, + .operands = &.{ + .{ .kind = .id_ref, .quantifier = .required }, }, }, }, diff --git a/src/link/SpirV.zig b/src/link/SpirV.zig index 93f70004013b..01e88ce2d9fd 100644 --- a/src/link/SpirV.zig +++ b/src/link/SpirV.zig @@ -42,7 +42,7 @@ const Value = @import("../Value.zig"); const SpvModule = @import("../codegen/spirv/Module.zig"); const Section = @import("../codegen/spirv/Section.zig"); const spec = @import("../codegen/spirv/spec.zig"); -const IdResult = spec.IdResult; +const Id = spec.Id; const Word = spec.Word; const BinaryModule = @import("SpirV/BinaryModule.zig"); @@ -144,15 +144,15 @@ pub fn updateExports( const cc = Type.fromInterned(nav_ty).fnCallingConvention(zcu); const exec_model: spec.ExecutionModel = switch (target.os.tag) { .vulkan, .opengl => switch (cc) { - .spirv_vertex => .Vertex, - .spirv_fragment => .Fragment, - .spirv_kernel => .GLCompute, + .spirv_vertex => .vertex, + .spirv_fragment => .fragment, + .spirv_kernel => .gl_compute, // TODO: We should integrate with the Linkage capability and export this function .spirv_device => return, else => unreachable, }, .opencl => switch (cc) { - .spirv_kernel => .Kernel, + .spirv_kernel => .kernel, // TODO: We should integrate with the Linkage capability and export this function .spirv_device => return, else => unreachable, diff --git a/src/link/SpirV/BinaryModule.zig b/src/link/SpirV/BinaryModule.zig index c80bf9b06ae0..7ba9e80bdcc1 100644 --- a/src/link/SpirV/BinaryModule.zig +++ b/src/link/SpirV/BinaryModule.zig @@ -7,7 +7,7 @@ const spec = @import("../../codegen/spirv/spec.zig"); const Opcode = spec.Opcode; const Word = spec.Word; const InstructionSet = spec.InstructionSet; -const ResultId = spec.IdResult; +const ResultId = spec.Id; const BinaryModule = @This(); @@ -254,8 +254,8 @@ pub const Parser = struct { // with ALL operations that return an int or float. const spec_operands = inst_spec.operands; if (spec_operands.len >= 2 and - spec_operands[0].kind == .IdResultType and - spec_operands[1].kind == .IdResult) + spec_operands[0].kind == .id_result_type and + spec_operands[1].kind == .id_result) { if (operands.len < 2) return error.InvalidOperands; if (binary.arith_type_width.get(@enumFromInt(operands[0]))) |width| { @@ -288,8 +288,8 @@ pub const Parser = struct { var offset: usize = 0; switch (inst.opcode) { .OpSpecConstantOp => { - assert(operands[0].kind == .IdResultType); - assert(operands[1].kind == .IdResult); + assert(operands[0].kind == .id_result_type); + assert(operands[1].kind == .id_result); offset = try self.parseOperandsResultIds(binary, inst, operands[0..2], offset, offsets); if (offset >= inst.operands.len) return error.InvalidPhysicalFormat; @@ -297,13 +297,13 @@ pub const Parser = struct { const spec_index = self.opcode_table.get(mapSetAndOpcode(.core, spec_opcode)) orelse return error.InvalidPhysicalFormat; const spec_operands = InstructionSet.core.instructions()[spec_index].operands; - assert(spec_operands[0].kind == .IdResultType); - assert(spec_operands[1].kind == .IdResult); + assert(spec_operands[0].kind == .id_result_type); + assert(spec_operands[1].kind == .id_result); offset = try self.parseOperandsResultIds(binary, inst, spec_operands[2..], offset + 1, offsets); }, .OpExtInst => { - assert(operands[0].kind == .IdResultType); - assert(operands[1].kind == .IdResult); + assert(operands[0].kind == .id_result_type); + assert(operands[1].kind == .id_result); offset = try self.parseOperandsResultIds(binary, inst, operands[0..2], offset, offsets); if (offset + 1 >= inst.operands.len) return error.InvalidPhysicalFormat; @@ -405,8 +405,8 @@ pub const Parser = struct { offset += 1; }, else => switch (kind) { - .LiteralInteger, .LiteralFloat => offset += 1, - .LiteralString => while (true) { + .literal_integer, .literal_float => offset += 1, + .literal_string => while (true) { if (offset >= inst.operands.len) return error.InvalidPhysicalFormat; const word = inst.operands[offset]; offset += 1; @@ -419,7 +419,7 @@ pub const Parser = struct { break; } }, - .LiteralContextDependentNumber => { + .literal_context_dependent_number => { assert(inst.opcode == .OpConstant or inst.opcode == .OpSpecConstantOp); const bit_width = binary.arith_type_width.get(@enumFromInt(inst.operands[0])) orelse { log.err("invalid LiteralContextDependentNumber type {}", .{inst.operands[0]}); @@ -431,9 +431,9 @@ pub const Parser = struct { else => unreachable, }; }, - .LiteralExtInstInteger => unreachable, - .LiteralSpecConstantOpInteger => unreachable, - .PairLiteralIntegerIdRef => { // Switch case + .literal_ext_inst_integer => unreachable, + .literal_spec_constant_op_integer => unreachable, + .pair_literal_integer_id_ref => { // Switch case assert(inst.opcode == .OpSwitch); const bit_width = binary.arith_type_width.get(@enumFromInt(inst.operands[0])) orelse { log.err("invalid OpSwitch type {}", .{inst.operands[0]}); @@ -447,11 +447,11 @@ pub const Parser = struct { try offsets.append(@intCast(offset)); offset += 1; }, - .PairIdRefLiteralInteger => { + .pair_id_ref_literal_integer => { try offsets.append(@intCast(offset)); offset += 2; }, - .PairIdRefIdRef => { + .pair_id_ref_id_ref => { try offsets.append(@intCast(offset)); try offsets.append(@intCast(offset + 1)); offset += 2; diff --git a/src/link/SpirV/deduplicate.zig b/src/link/SpirV/deduplicate.zig index 46b9642458dc..04b916e13022 100644 --- a/src/link/SpirV/deduplicate.zig +++ b/src/link/SpirV/deduplicate.zig @@ -7,7 +7,7 @@ const BinaryModule = @import("BinaryModule.zig"); const Section = @import("../../codegen/spirv/Section.zig"); const spec = @import("../../codegen/spirv/spec.zig"); const Opcode = spec.Opcode; -const ResultId = spec.IdResult; +const ResultId = spec.Id; const Word = spec.Word; fn canDeduplicate(opcode: Opcode) bool { @@ -20,9 +20,9 @@ fn canDeduplicate(opcode: Opcode) bool { // Debug decoration-style instructions .OpName, .OpMemberName => true, else => switch (opcode.class()) { - .TypeDeclaration, - .ConstantCreation, - .Annotation, + .type_declaration, + .constant_creation, + .annotation, => true, else => false, }, @@ -86,8 +86,8 @@ const ModuleInfo = struct { if (!canDeduplicate(inst.opcode)) continue; const result_id_index: u16 = switch (inst.opcode.class()) { - .TypeDeclaration, .Annotation, .Debug => 0, - .ConstantCreation => 1, + .type_declaration, .annotation, .debug => 0, + .constant_creation => 1, else => unreachable, }; @@ -101,13 +101,13 @@ const ModuleInfo = struct { }; switch (inst.opcode.class()) { - .Annotation, .Debug => { + .annotation, .debug => { try decorations.append(arena, .{ .target_id = result_id, .entity = entity, }); }, - .TypeDeclaration, .ConstantCreation => { + .type_declaration, .constant_creation => { const entry = try entities.getOrPut(result_id); if (entry.found_existing) { log.err("type or constant {f} has duplicate definition", .{result_id}); @@ -469,7 +469,7 @@ pub fn run(parser: *BinaryModule.Parser, binary: *BinaryModule, progress: std.Pr const inst_spec = parser.getInstSpec(inst.opcode).?; const maybe_result_id_offset: ?u16 = for (0..2) |i| { - if (inst_spec.operands.len > i and inst_spec.operands[i].kind == .IdResult) { + if (inst_spec.operands.len > i and inst_spec.operands[i].kind == .id_result) { break @intCast(i); } } else null; @@ -488,7 +488,7 @@ pub fn run(parser: *BinaryModule.Parser, binary: *BinaryModule, progress: std.Pr } switch (inst.opcode.class()) { - .Annotation, .Debug => { + .annotation, .debug => { // For decoration-style instructions, only emit them // if the target is not removed. const target: ResultId = @enumFromInt(inst.operands[0]); @@ -515,7 +515,7 @@ pub fn run(parser: *BinaryModule.Parser, binary: *BinaryModule, progress: std.Pr // Debug and Annotation instructions don't need the forward pointer, and it // messes up the logical layout of the module. switch (inst.opcode.class()) { - .TypeDeclaration, .ConstantCreation, .Memory => {}, + .type_declaration, .constant_creation, .memory => {}, else => continue, } diff --git a/src/link/SpirV/lower_invocation_globals.zig b/src/link/SpirV/lower_invocation_globals.zig index 5a64f38a357b..8136baf3050a 100644 --- a/src/link/SpirV/lower_invocation_globals.zig +++ b/src/link/SpirV/lower_invocation_globals.zig @@ -6,7 +6,7 @@ const log = std.log.scoped(.spirv_link); const BinaryModule = @import("BinaryModule.zig"); const Section = @import("../../codegen/spirv/Section.zig"); const spec = @import("../../codegen/spirv/spec.zig"); -const ResultId = spec.IdResult; +const ResultId = spec.Id; const Word = spec.Word; /// This structure contains all the stuff that we need to parse from the module in @@ -626,7 +626,7 @@ const ModuleBuilder = struct { try self.section.emit(self.arena, .OpVariable, .{ .id_result_type = global_info.ty, .id_result = id, - .storage_class = .Function, + .storage_class = .function, .initializer = null, }); } diff --git a/src/link/SpirV/prune_unused.zig b/src/link/SpirV/prune_unused.zig index 275458564ead..87fb047f5328 100644 --- a/src/link/SpirV/prune_unused.zig +++ b/src/link/SpirV/prune_unused.zig @@ -15,14 +15,14 @@ const BinaryModule = @import("BinaryModule.zig"); const Section = @import("../../codegen/spirv/Section.zig"); const spec = @import("../../codegen/spirv/spec.zig"); const Opcode = spec.Opcode; -const ResultId = spec.IdResult; +const ResultId = spec.Id; const Word = spec.Word; /// Return whether a particular opcode's instruction can be pruned. /// These are idempotent instructions at globals scope and instructions /// within functions that do not have any side effects. /// The opcodes that return true here do not necessarily need to -/// have an .IdResult. If they don't, then they are regarded +/// have an .Id. If they don't, then they are regarded /// as 'decoration'-style instructions that don't keep their /// operands alive, but will be emitted if they are. fn canPrune(op: Opcode) bool { @@ -34,12 +34,12 @@ fn canPrune(op: Opcode) bool { // instruction has any non-trivial side effects (like OpLoad // with the Volatile memory semantics). return switch (op.class()) { - .TypeDeclaration, - .Conversion, - .Arithmetic, - .RelationalAndLogical, - .Bit, - .Annotation, + .type_declaration, + .conversion, + .arithmetic, + .relational_and_logical, + .bit, + .annotation, => true, else => switch (op) { .OpFunction, @@ -111,7 +111,7 @@ const ModuleInfo = struct { // Result-id can only be the first or second operand const maybe_result_id: ?ResultId = for (0..2) |i| { - if (inst_spec.operands.len > i and inst_spec.operands[i].kind == .IdResult) { + if (inst_spec.operands.len > i and inst_spec.operands[i].kind == .id_result) { break @enumFromInt(inst.operands[i]); } } else null; @@ -305,7 +305,7 @@ pub fn run(parser: *BinaryModule.Parser, binary: *BinaryModule, progress: std.Pr // Result-id can only be the first or second operand const result_id: ResultId = for (0..2) |i| { - if (inst_spec.operands.len > i and inst_spec.operands[i].kind == .IdResult) { + if (inst_spec.operands.len > i and inst_spec.operands[i].kind == .id_result) { break @enumFromInt(inst.operands[i]); } } else { diff --git a/tools/gen_spirv_spec.zig b/tools/gen_spirv_spec.zig index a772d99660af..8840a476c4e4 100644 --- a/tools/gen_spirv_spec.zig +++ b/tools/gen_spirv_spec.zig @@ -59,26 +59,28 @@ const set_names = std.StaticStringMap([]const u8).initComptime(.{ .{ "nonsemantic.debugprintf", "NonSemantic.DebugPrintf" }, .{ "spv-amd-shader-explicit-vertex-parameter", "SPV_AMD_shader_explicit_vertex_parameter" }, .{ "nonsemantic.debugbreak", "NonSemantic.DebugBreak" }, + .{ "tosa.001000.1", "SPV_EXT_INST_TYPE_TOSA_001000_1" }, .{ "zig", "zig" }, }); +var arena = std.heap.ArenaAllocator.init(std.heap.smp_allocator); +const allocator = arena.allocator(); + pub fn main() !void { - var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator); defer arena.deinit(); - const a = arena.allocator(); - const args = try std.process.argsAlloc(a); + const args = try std.process.argsAlloc(allocator); if (args.len != 3) { usageAndExit(args[0], 1); } - const json_path = try std.fs.path.join(a, &.{ args[1], "include/spirv/unified1/" }); + const json_path = try std.fs.path.join(allocator, &.{ args[1], "include/spirv/unified1/" }); const dir = try std.fs.cwd().openDir(json_path, .{ .iterate = true }); - const core_spec = try readRegistry(CoreRegistry, a, dir, "spirv.core.grammar.json"); + const core_spec = try readRegistry(CoreRegistry, dir, "spirv.core.grammar.json"); std.sort.block(Instruction, core_spec.instructions, CmpInst{}, CmpInst.lt); - var exts = std.ArrayList(Extension).init(a); + var exts = std.ArrayList(Extension).init(allocator); var it = dir.iterate(); while (try it.next()) |entry| { @@ -86,18 +88,43 @@ pub fn main() !void { continue; } - try readExtRegistry(&exts, a, dir, entry.name); + try readExtRegistry(&exts, dir, entry.name); } - try readExtRegistry(&exts, a, std.fs.cwd(), args[2]); + try readExtRegistry(&exts, std.fs.cwd(), args[2]); + + const output_buf = try allocator.alloc(u8, 1024 * 1024); + var fbs = std.io.fixedBufferStream(output_buf); + var adapter = fbs.writer().adaptToNewApi(); + const w = &adapter.new_interface; + try render(w, core_spec, exts.items); + var output: [:0]u8 = @ptrCast(fbs.getWritten()); + output[output.len] = 0; + + var tree = try std.zig.Ast.parse(allocator, output, .zig); + var color: std.zig.Color = .on; - var buffer: [4000]u8 = undefined; - var w = std.fs.File.stdout().writerStreaming(&buffer); - try render(&w, a, core_spec, exts.items); - try w.flush(); + if (tree.errors.len != 0) { + try std.zig.printAstErrorsToStderr(allocator, tree, "", color); + return; + } + + var zir = try std.zig.AstGen.generate(allocator, tree); + if (zir.hasCompileErrors()) { + var wip_errors: std.zig.ErrorBundle.Wip = undefined; + try wip_errors.init(allocator); + defer wip_errors.deinit(); + try wip_errors.addZirErrorMessages(zir, tree, output, ""); + var error_bundle = try wip_errors.toOwnedBundle(""); + defer error_bundle.deinit(allocator); + error_bundle.renderToStdErr(color.renderOptions()); + } + + const formatted_output = try tree.render(allocator); + _ = try std.fs.File.stdout().write(formatted_output); } -fn readExtRegistry(exts: *std.ArrayList(Extension), a: Allocator, dir: std.fs.Dir, sub_path: []const u8) !void { +fn readExtRegistry(exts: *std.ArrayList(Extension), dir: std.fs.Dir, sub_path: []const u8) !void { const filename = std.fs.path.basename(sub_path); if (!std.mem.startsWith(u8, filename, "extinst.")) { return; @@ -105,22 +132,22 @@ fn readExtRegistry(exts: *std.ArrayList(Extension), a: Allocator, dir: std.fs.Di std.debug.assert(std.mem.endsWith(u8, filename, ".grammar.json")); const name = filename["extinst.".len .. filename.len - ".grammar.json".len]; - const spec = try readRegistry(ExtensionRegistry, a, dir, sub_path); + const spec = try readRegistry(ExtensionRegistry, dir, sub_path); std.sort.block(Instruction, spec.instructions, CmpInst{}, CmpInst.lt); try exts.append(.{ .name = set_names.get(name).?, .spec = spec }); } -fn readRegistry(comptime RegistryType: type, a: Allocator, dir: std.fs.Dir, path: []const u8) !RegistryType { - const spec = try dir.readFileAlloc(a, path, std.math.maxInt(usize)); +fn readRegistry(comptime RegistryType: type, dir: std.fs.Dir, path: []const u8) !RegistryType { + const spec = try dir.readFileAlloc(allocator, path, std.math.maxInt(usize)); // Required for json parsing. @setEvalBranchQuota(10000); - var scanner = std.json.Scanner.initCompleteInput(a, spec); + var scanner = std.json.Scanner.initCompleteInput(allocator, spec); var diagnostics = std.json.Diagnostics{}; scanner.enableDiagnostics(&diagnostics); - const parsed = std.json.parseFromTokenSource(RegistryType, a, &scanner, .{}) catch |err| { + const parsed = std.json.parseFromTokenSource(RegistryType, allocator, &scanner, .{}) catch |err| { std.debug.print("{s}:{}:{}:\n", .{ path, diagnostics.getLine(), diagnostics.getColumn() }); return err; }; @@ -129,11 +156,8 @@ fn readRegistry(comptime RegistryType: type, a: Allocator, dir: std.fs.Dir, path /// Returns a set with types that require an extra struct for the `Instruction` interface /// to the spir-v spec, or whether the original type can be used. -fn extendedStructs( - a: Allocator, - kinds: []const OperandKind, -) !ExtendedStructSet { - var map = ExtendedStructSet.init(a); +fn extendedStructs(kinds: []const OperandKind) !ExtendedStructSet { + var map = ExtendedStructSet.init(allocator); try map.ensureTotalCapacity(@as(u32, @intCast(kinds.len))); for (kinds) |kind| { @@ -167,7 +191,7 @@ fn tagPriorityScore(tag: []const u8) usize { } } -fn render(writer: *std.io.Writer, a: Allocator, registry: CoreRegistry, extensions: []const Extension) !void { +fn render(writer: *std.io.Writer, registry: CoreRegistry, extensions: []const Extension) !void { try writer.writeAll( \\//! This file is auto-generated by tools/gen_spirv_spec.zig. \\ @@ -185,22 +209,17 @@ fn render(writer: *std.io.Writer, a: Allocator, registry: CoreRegistry, extensio \\}; \\ \\pub const Word = u32; - \\pub const IdResult = enum(Word) { + \\pub const Id = enum(Word) { \\ none, \\ _, \\ - \\ pub fn format(self: IdResult, writer: *std.io.Writer) std.io.Writer.Error!void { + \\ pub fn format(self: Id, writer: *std.io.Writer) std.io.Writer.Error!void { \\ switch (self) { \\ .none => try writer.writeAll("(none)"), \\ else => try writer.print("%{d}", .{@intFromEnum(self)}), \\ } \\ } \\}; - \\pub const IdResultType = IdResult; - \\pub const IdRef = IdResult; - \\ - \\pub const IdMemorySemantics = IdRef; - \\pub const IdScope = IdRef; \\ \\pub const LiteralInteger = Word; \\pub const LiteralFloat = Word; @@ -215,9 +234,9 @@ fn render(writer: *std.io.Writer, a: Allocator, registry: CoreRegistry, extensio \\}; \\pub const LiteralExtInstInteger = struct{ inst: Word }; \\pub const LiteralSpecConstantOpInteger = struct { opcode: Opcode }; - \\pub const PairLiteralIntegerIdRef = struct { value: LiteralInteger, label: IdRef }; - \\pub const PairIdRefLiteralInteger = struct { target: IdRef, member: LiteralInteger }; - \\pub const PairIdRefIdRef = [2]IdRef; + \\pub const PairLiteralIntegerIdRef = struct { value: LiteralInteger, label: Id }; + \\pub const PairIdRefLiteralInteger = struct { target: Id, member: LiteralInteger }; + \\pub const PairIdRefIdRef = [2]Id; \\ \\pub const Quantifier = enum { \\ required, @@ -255,7 +274,7 @@ fn render(writer: *std.io.Writer, a: Allocator, registry: CoreRegistry, extensio ); try writer.print( - \\pub const version = Version{{ .major = {}, .minor = {}, .patch = {} }}; + \\pub const version: Version = .{{ .major = {}, .minor = {}, .patch = {} }}; \\pub const magic_number: Word = {s}; \\ \\ @@ -266,7 +285,7 @@ fn render(writer: *std.io.Writer, a: Allocator, registry: CoreRegistry, extensio // Merge the operand kinds from all extensions together. // var all_operand_kinds = std.ArrayList(OperandKind).init(a); // try all_operand_kinds.appendSlice(registry.operand_kinds); - var all_operand_kinds = OperandKindMap.init(a); + var all_operand_kinds = OperandKindMap.init(allocator); for (registry.operand_kinds) |kind| { try all_operand_kinds.putNoClobber(.{ "core", kind.kind }, kind); } @@ -279,35 +298,33 @@ fn render(writer: *std.io.Writer, a: Allocator, registry: CoreRegistry, extensio try all_operand_kinds.ensureUnusedCapacity(ext.spec.operand_kinds.len); for (ext.spec.operand_kinds) |kind| { var new_kind = kind; - new_kind.kind = try std.mem.join(a, ".", &.{ ext.name, kind.kind }); + new_kind.kind = try std.mem.join(allocator, ".", &.{ ext.name, kind.kind }); try all_operand_kinds.putNoClobber(.{ ext.name, kind.kind }, new_kind); } } - const extended_structs = try extendedStructs(a, all_operand_kinds.values()); + const extended_structs = try extendedStructs(all_operand_kinds.values()); // Note: extensions don't seem to have class. - try renderClass(writer, a, registry.instructions); + try renderClass(writer, registry.instructions); try renderOperandKind(writer, all_operand_kinds.values()); - try renderOpcodes(writer, a, registry.instructions, extended_structs); - try renderOperandKinds(writer, a, all_operand_kinds.values(), extended_structs); - try renderInstructionSet(writer, a, registry, extensions, all_operand_kinds); + try renderOpcodes(writer, registry.instructions, extended_structs); + try renderOperandKinds(writer, all_operand_kinds.values(), extended_structs); + try renderInstructionSet(writer, registry, extensions, all_operand_kinds); } fn renderInstructionSet( writer: anytype, - a: Allocator, core: CoreRegistry, extensions: []const Extension, all_operand_kinds: OperandKindMap, ) !void { - _ = a; try writer.writeAll( \\pub const InstructionSet = enum { \\ core, ); for (extensions) |ext| { - try writer.print("{p},\n", .{std.zig.fmtId(ext.name)}); + try writer.print("{f},\n", .{formatId(ext.name)}); } try writer.writeAll( @@ -340,14 +357,14 @@ fn renderInstructionsCase( // but there aren't so many total aliases and that would add more overhead in total. We will // just filter those out when needed. - try writer.print(".{p_} => &[_]Instruction{{\n", .{std.zig.fmtId(set_name)}); + try writer.print(".{f} => &.{{\n", .{formatId(set_name)}); for (instructions) |inst| { try writer.print( \\.{{ \\ .name = "{s}", \\ .opcode = {}, - \\ .operands = &[_]Operand{{ + \\ .operands = &.{{ \\ , .{ inst.opname, inst.opcode }); @@ -362,7 +379,7 @@ fn renderInstructionsCase( const kind = all_operand_kinds.get(.{ set_name, operand.kind }) orelse all_operand_kinds.get(.{ "core", operand.kind }).?; - try writer.print(".{{.kind = .{p_}, .quantifier = .{s}}},\n", .{ std.zig.fmtId(kind.kind), quantifier }); + try writer.print(".{{.kind = .{f}, .quantifier = .{s}}},\n", .{ formatId(kind.kind), quantifier }); } try writer.writeAll( @@ -378,54 +395,69 @@ fn renderInstructionsCase( ); } -fn renderClass(writer: anytype, a: Allocator, instructions: []const Instruction) !void { - var class_map = std.StringArrayHashMap(void).init(a); +fn renderClass(writer: anytype, instructions: []const Instruction) !void { + var class_map = std.StringArrayHashMap(void).init(allocator); for (instructions) |inst| { - if (std.mem.eql(u8, inst.class.?, "@exclude")) { - continue; - } + if (std.mem.eql(u8, inst.class.?, "@exclude")) continue; try class_map.put(inst.class.?, {}); } try writer.writeAll("pub const Class = enum {\n"); for (class_map.keys()) |class| { - try renderInstructionClass(writer, class); - try writer.writeAll(",\n"); + try writer.print("{f},\n", .{formatId(class)}); } try writer.writeAll("};\n\n"); } -fn renderInstructionClass(writer: anytype, class: []const u8) !void { - // Just assume that these wont clobber zig builtin types. - var prev_was_sep = true; - for (class) |c| { - switch (c) { - '-', '_' => prev_was_sep = true, - else => if (prev_was_sep) { - try writer.writeByte(std.ascii.toUpper(c)); - prev_was_sep = false; - } else { - try writer.writeByte(std.ascii.toLower(c)); - }, +const Formatter = struct { + data: []const u8, + + fn format(f: Formatter, writer: *std.io.Writer) std.io.Writer.Error!void { + var id_buf: [128]u8 = undefined; + var fbs = std.io.fixedBufferStream(&id_buf); + const fw = fbs.writer(); + for (f.data, 0..) |c, i| { + switch (c) { + '-', '_', '.', '~', ' ' => fw.writeByte('_') catch return error.WriteFailed, + 'a'...'z', '0'...'9' => fw.writeByte(c) catch return error.WriteFailed, + 'A'...'Z' => { + if ((i > 0 and std.ascii.isLower(f.data[i - 1])) or + (i > 0 and std.ascii.isUpper(f.data[i - 1]) and + i + 1 < f.data.len and std.ascii.isLower(f.data[i + 1]))) + { + _ = fw.write(&.{ '_', std.ascii.toLower(c) }) catch return error.WriteFailed; + } else { + fw.writeByte(std.ascii.toLower(c)) catch return error.WriteFailed; + } + }, + else => unreachable, + } } + + // make sure that this won't clobber with zig keywords + try writer.print("{f}", .{std.zig.fmtId(fbs.getWritten())}); } +}; + +fn formatId(identifier: []const u8) std.fmt.Alt(Formatter, Formatter.format) { + return .{ .data = .{ .data = identifier } }; } fn renderOperandKind(writer: anytype, operands: []const OperandKind) !void { try writer.writeAll( \\pub const OperandKind = enum { - \\ Opcode, + \\ opcode, \\ ); for (operands) |operand| { - try writer.print("{p},\n", .{std.zig.fmtId(operand.kind)}); + try writer.print("{f},\n", .{formatId(operand.kind)}); } try writer.writeAll( \\ \\pub fn category(self: OperandKind) OperandCategory { \\ return switch (self) { - \\ .Opcode => .literal, + \\ .opcode => .literal, \\ ); for (operands) |operand| { @@ -436,26 +468,26 @@ fn renderOperandKind(writer: anytype, operands: []const OperandKind) !void { .Literal => "literal", .Composite => "composite", }; - try writer.print(".{p_} => .{s},\n", .{ std.zig.fmtId(operand.kind), cat }); + try writer.print(".{f} => .{s},\n", .{ formatId(operand.kind), cat }); } try writer.writeAll( \\ }; \\} \\pub fn enumerants(self: OperandKind) []const Enumerant { \\ return switch (self) { - \\ .Opcode => unreachable, + \\ .opcode => unreachable, \\ ); for (operands) |operand| { switch (operand.category) { .BitEnum, .ValueEnum => {}, else => { - try writer.print(".{p_} => unreachable,\n", .{std.zig.fmtId(operand.kind)}); + try writer.print(".{f} => unreachable,\n", .{formatId(operand.kind)}); continue; }, } - try writer.print(".{p_} => &[_]Enumerant{{", .{std.zig.fmtId(operand.kind)}); + try writer.print(".{f} => &.{{", .{formatId(operand.kind)}); for (operand.enumerants.?) |enumerant| { if (enumerant.value == .bitflag and std.mem.eql(u8, enumerant.enumerant, "None")) { continue; @@ -474,32 +506,30 @@ fn renderEnumerant(writer: anytype, enumerant: Enumerant) !void { .bitflag => |flag| try writer.writeAll(flag), .int => |int| try writer.print("{}", .{int}), } - try writer.writeAll(", .parameters = &[_]OperandKind{"); + try writer.writeAll(", .parameters = &.{"); for (enumerant.parameters, 0..) |param, i| { if (i != 0) try writer.writeAll(", "); // Note, param.quantifier will always be one. - try writer.print(".{p_}", .{std.zig.fmtId(param.kind)}); + try writer.print(".{f}", .{formatId(param.kind)}); } try writer.writeAll("}}"); } fn renderOpcodes( writer: anytype, - a: Allocator, instructions: []const Instruction, extended_structs: ExtendedStructSet, ) !void { - var inst_map = std.AutoArrayHashMap(u32, usize).init(a); + var inst_map = std.AutoArrayHashMap(u32, usize).init(allocator); try inst_map.ensureTotalCapacity(instructions.len); - var aliases = std.ArrayList(struct { inst: usize, alias: usize }).init(a); + var aliases = std.ArrayList(struct { inst: usize, alias: usize }).init(allocator); try aliases.ensureTotalCapacity(instructions.len); for (instructions, 0..) |inst, i| { - if (std.mem.eql(u8, inst.class.?, "@exclude")) { - continue; - } + if (std.mem.eql(u8, inst.class.?, "@exclude")) continue; + const result = inst_map.getOrPutAssumeCapacity(inst.opcode); if (!result.found_existing) { result.value_ptr.* = i; @@ -525,7 +555,7 @@ fn renderOpcodes( try writer.writeAll("pub const Opcode = enum(u16) {\n"); for (instructions_indices) |i| { const inst = instructions[i]; - try writer.print("{p} = {},\n", .{ std.zig.fmtId(inst.opname), inst.opcode }); + try writer.print("{f} = {},\n", .{ std.zig.fmtId(inst.opname), inst.opcode }); } try writer.writeAll( @@ -533,9 +563,9 @@ fn renderOpcodes( ); for (aliases.items) |alias| { - try writer.print("pub const {} = Opcode.{p_};\n", .{ - std.zig.fmtId(instructions[alias.inst].opname), - std.zig.fmtId(instructions[alias.alias].opname), + try writer.print("pub const {f} = Opcode.{f};\n", .{ + formatId(instructions[alias.inst].opname), + formatId(instructions[alias.alias].opname), }); } @@ -548,7 +578,7 @@ fn renderOpcodes( for (instructions_indices) |i| { const inst = instructions[i]; - try renderOperand(writer, .instruction, inst.opname, inst.operands, extended_structs); + try renderOperand(writer, .instruction, inst.opname, inst.operands, extended_structs, false); } try writer.writeAll( @@ -561,9 +591,7 @@ fn renderOpcodes( for (instructions_indices) |i| { const inst = instructions[i]; - try writer.print(".{p_} => .", .{std.zig.fmtId(inst.opname)}); - try renderInstructionClass(writer, inst.class.?); - try writer.writeAll(",\n"); + try writer.print(".{f} => .{f},\n", .{ std.zig.fmtId(inst.opname), formatId(inst.class.?) }); } try writer.writeAll( @@ -576,14 +604,13 @@ fn renderOpcodes( fn renderOperandKinds( writer: anytype, - a: Allocator, kinds: []const OperandKind, extended_structs: ExtendedStructSet, ) !void { for (kinds) |kind| { switch (kind.category) { - .ValueEnum => try renderValueEnum(writer, a, kind, extended_structs), - .BitEnum => try renderBitEnum(writer, a, kind, extended_structs), + .ValueEnum => try renderValueEnum(writer, kind, extended_structs), + .BitEnum => try renderBitEnum(writer, kind, extended_structs), else => {}, } } @@ -591,20 +618,18 @@ fn renderOperandKinds( fn renderValueEnum( writer: anytype, - a: Allocator, enumeration: OperandKind, extended_structs: ExtendedStructSet, ) !void { const enumerants = enumeration.enumerants orelse return error.InvalidRegistry; - var enum_map = std.AutoArrayHashMap(u32, usize).init(a); + var enum_map = std.AutoArrayHashMap(u32, usize).init(allocator); try enum_map.ensureTotalCapacity(enumerants.len); - var aliases = std.ArrayList(struct { enumerant: usize, alias: usize }).init(a); + var aliases = std.ArrayList(struct { enumerant: usize, alias: usize }).init(allocator); try aliases.ensureTotalCapacity(enumerants.len); for (enumerants, 0..) |enumerant, i| { - try writer.context.flush(); const value: u31 = switch (enumerant.value) { .int => |value| value, // Some extensions declare ints as string @@ -632,25 +657,25 @@ fn renderValueEnum( const enum_indices = enum_map.values(); - try writer.print("pub const {} = enum(u32) {{\n", .{std.zig.fmtId(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 (enumerant.value != .int) return error.InvalidRegistry; switch (enumerant.value) { - .int => |value| try writer.print("{p} = {},\n", .{ std.zig.fmtId(enumerant.enumerant), value }), - .bitflag => |value| try writer.print("{p} = {s},\n", .{ std.zig.fmtId(enumerant.enumerant), value }), + .int => |value| try writer.print("{f} = {},\n", .{ formatId(enumerant.enumerant), value }), + .bitflag => |value| try writer.print("{f} = {s},\n", .{ formatId(enumerant.enumerant), value }), } } try writer.writeByte('\n'); for (aliases.items) |alias| { - try writer.print("pub const {} = {}.{p_};\n", .{ - std.zig.fmtId(enumerants[alias.enumerant].enumerant), + try writer.print("pub const {f} = {f}.{f};\n", .{ + formatId(enumerants[alias.enumerant].enumerant), std.zig.fmtId(enumeration.kind), - std.zig.fmtId(enumerants[alias.alias].enumerant), + formatId(enumerants[alias.alias].enumerant), }); } @@ -659,11 +684,11 @@ fn renderValueEnum( return; } - try writer.print("\npub const Extended = union({}) {{\n", .{std.zig.fmtId(enumeration.kind)}); + try writer.print("\npub const Extended = union({f}) {{\n", .{std.zig.fmtId(enumeration.kind)}); for (enum_indices) |i| { const enumerant = enumerants[i]; - try renderOperand(writer, .@"union", enumerant.enumerant, enumerant.parameters, extended_structs); + try renderOperand(writer, .@"union", enumerant.enumerant, enumerant.parameters, extended_structs, true); } try writer.writeAll("};\n};\n"); @@ -671,16 +696,15 @@ fn renderValueEnum( fn renderBitEnum( writer: anytype, - a: Allocator, enumeration: OperandKind, extended_structs: ExtendedStructSet, ) !void { - try writer.print("pub const {} = packed struct {{\n", .{std.zig.fmtId(enumeration.kind)}); + try writer.print("pub const {f} = packed struct {{\n", .{std.zig.fmtId(enumeration.kind)}); var flags_by_bitpos = [_]?usize{null} ** 32; const enumerants = enumeration.enumerants orelse return error.InvalidRegistry; - var aliases = std.ArrayList(struct { flag: usize, alias: u5 }).init(a); + var aliases = std.ArrayList(struct { flag: usize, alias: u5 }).init(allocator); try aliases.ensureTotalCapacity(enumerants.len); for (enumerants, 0..) |enumerant, i| { @@ -715,7 +739,7 @@ fn renderBitEnum( for (flags_by_bitpos, 0..) |maybe_flag_index, bitpos| { if (maybe_flag_index) |flag_index| { - try writer.print("{p_}", .{std.zig.fmtId(enumerants[flag_index].enumerant)}); + try writer.print("{f}", .{formatId(enumerants[flag_index].enumerant)}); } else { try writer.print("_reserved_bit_{}", .{bitpos}); } @@ -726,10 +750,10 @@ fn renderBitEnum( try writer.writeByte('\n'); for (aliases.items) |alias| { - try writer.print("pub const {}: {} = .{{.{p_} = true}};\n", .{ - std.zig.fmtId(enumerants[alias.flag].enumerant), + try writer.print("pub const {f}: {f} = .{{.{f} = true}};\n", .{ + formatId(enumerants[alias.flag].enumerant), std.zig.fmtId(enumeration.kind), - std.zig.fmtId(enumerants[flags_by_bitpos[alias.alias].?].enumerant), + formatId(enumerants[flags_by_bitpos[alias.alias].?].enumerant), }); } @@ -747,7 +771,7 @@ fn renderBitEnum( }; const enumerant = enumerants[flag_index]; - try renderOperand(writer, .mask, enumerant.enumerant, enumerant.parameters, extended_structs); + try renderOperand(writer, .mask, enumerant.enumerant, enumerant.parameters, extended_structs, true); } try writer.writeAll("};\n};\n"); @@ -763,11 +787,18 @@ fn renderOperand( field_name: []const u8, parameters: []const Operand, extended_structs: ExtendedStructSet, + snake_case: bool, ) !void { if (kind == .instruction) { try writer.writeByte('.'); } - try writer.print("{}", .{std.zig.fmtId(field_name)}); + + if (snake_case) { + try writer.print("{f}", .{formatId(field_name)}); + } else { + try writer.print("{f}", .{std.zig.fmtId(field_name)}); + } + if (parameters.len == 0) { switch (kind) { .@"union" => try writer.writeAll(",\n"), @@ -787,7 +818,7 @@ fn renderOperand( try writer.writeByte('?'); } - try writer.writeAll("struct{"); + try writer.writeAll("struct {"); for (parameters, 0..) |param, j| { if (j != 0) { @@ -804,7 +835,11 @@ fn renderOperand( } } - try writer.print("{}", .{std.zig.fmtId(param.kind)}); + if (std.mem.startsWith(u8, param.kind, "Id")) { + _ = try writer.write("Id"); + } else { + try writer.print("{f}", .{std.zig.fmtId(param.kind)}); + } if (extended_structs.contains(param.kind)) { try writer.writeAll(".Extended"); @@ -830,49 +865,24 @@ fn renderOperand( fn renderFieldName(writer: anytype, operands: []const Operand, field_index: usize) !void { const operand = operands[field_index]; - // Should be enough for all names - adjust as needed. - var name_backing_buffer: [64]u8 = undefined; - var name_buffer = std.ArrayListUnmanaged(u8).initBuffer(&name_backing_buffer); - derive_from_kind: { // Operand names are often in the json encoded as "'Name'" (with two sets of quotes). // Additionally, some operands have ~ in them at the end (D~ref~). const name = std.mem.trim(u8, operand.name, "'~"); - if (name.len == 0) { - break :derive_from_kind; - } + if (name.len == 0) break :derive_from_kind; - // Some names have weird characters in them (like newlines) - skip any such ones. - // Use the same loop to transform to snake-case. for (name) |c| { switch (c) { - 'a'...'z', '0'...'9' => name_buffer.appendAssumeCapacity(c), - 'A'...'Z' => name_buffer.appendAssumeCapacity(std.ascii.toLower(c)), - ' ', '~' => name_buffer.appendAssumeCapacity('_'), + 'a'...'z', '0'...'9', 'A'...'Z', ' ', '~' => continue, else => break :derive_from_kind, } } - // Assume there are no duplicate 'name' fields. - try writer.print("{p_}", .{std.zig.fmtId(name_buffer.items)}); + try writer.print("{f}", .{formatId(name)}); return; } - // Translate to snake case. - name_buffer.items.len = 0; - for (operand.kind, 0..) |c, i| { - switch (c) { - 'a'...'z', '0'...'9' => name_buffer.appendAssumeCapacity(c), - 'A'...'Z' => if (i > 0 and std.ascii.isLower(operand.kind[i - 1])) { - name_buffer.appendSliceAssumeCapacity(&[_]u8{ '_', std.ascii.toLower(c) }); - } else { - name_buffer.appendAssumeCapacity(std.ascii.toLower(c)); - }, - else => unreachable, // Assume that the name is valid C-syntax (and contains no underscores). - } - } - - try writer.print("{p_}", .{std.zig.fmtId(name_buffer.items)}); + try writer.print("{f}", .{formatId(operand.kind)}); // For fields derived from type name, there could be any amount. // Simply check against all other fields, and if another similar one exists, add a number. diff --git a/tools/spirv/grammar.zig b/tools/spirv/grammar.zig index c077d6e7e471..93bbf561fd4c 100644 --- a/tools/spirv/grammar.zig +++ b/tools/spirv/grammar.zig @@ -37,9 +37,11 @@ pub const InstructionPrintingClass = struct { pub const Instruction = struct { opname: []const u8, class: ?[]const u8 = null, // Note: Only available in the core registry. + aliases: [][]const u8 = &[_][]const u8{}, opcode: u32, operands: []Operand = &[_]Operand{}, capabilities: [][]const u8 = &[_][]const u8{}, + provisional: bool = false, // DebugModuleINTEL has this... capability: ?[]const u8 = null, extensions: [][]const u8 = &[_][]const u8{}, @@ -81,6 +83,7 @@ pub const OperandKind = struct { pub const Enumerant = struct { enumerant: []const u8, + aliases: [][]const u8 = &[_][]const u8{}, value: union(enum) { bitflag: []const u8, // Hexadecimal representation of the value int: u31, @@ -100,6 +103,7 @@ pub const Enumerant = struct { pub const jsonStringify = @compileError("not supported"); }, capabilities: [][]const u8 = &[_][]const u8{}, + provisional: bool = false, /// Valid for .ValueEnum and .BitEnum extensions: [][]const u8 = &[_][]const u8{}, /// `quantifier` will always be `null`.