authorgravatar for alichraghi@proton.meAli Chraghi <alichraghi@proton.me> 2025-07-12 16:05:45+03:30
committergravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2025-07-14 15:16:17+02:00
logf43f89a70588c2add2a7c84d12eef2852d215f51
tree66e0201ce0f63295879fc05e20e3819736a71505
parent2f3cd175d3fc74be8318c07d943c8d5d067085b3

spirv: snake-case the spec


13 files changed, 12495 insertions(+), 10635 deletions(-)

src/codegen/spirv.zig+258-292
......@@ -15,9 +15,7 @@ const InternPool = @import("../InternPool.zig");
1515const spec = @import("spirv/spec.zig");
1616const Opcode = spec.Opcode;
1717const Word = spec.Word;
18const IdRef = spec.IdRef;
19const IdResult = spec.IdResult;
20const IdResultType = spec.IdResultType;
18const Id = spec.Id;
2119const StorageClass = spec.StorageClass;
2220
2321const SpvModule = @import("spirv/Module.zig");
......@@ -26,7 +24,7 @@ const IdRange = SpvModule.IdRange;
2624const SpvSection = @import("spirv/Section.zig");
2725const SpvAssembler = @import("spirv/Assembler.zig");
2826
29const InstMap = std.AutoHashMapUnmanaged(Air.Inst.Index, IdRef);
27const InstMap = std.AutoHashMapUnmanaged(Air.Inst.Index, Id);
3028
3129pub fn legalizeFeatures(_: *const std.Target) *const Air.Legalize.Features {
3230 return comptime &.initMany(&.{
......@@ -42,10 +40,10 @@ pub fn legalizeFeatures(_: *const std.Target) *const Air.Legalize.Features {
4240pub const zig_call_abi_ver = 3;
4341pub const big_int_bits = 32;
4442
45const InternMap = std.AutoHashMapUnmanaged(struct { InternPool.Index, NavGen.Repr }, IdResult);
43const InternMap = std.AutoHashMapUnmanaged(struct { InternPool.Index, NavGen.Repr }, Id);
4644const PtrTypeMap = std.AutoHashMapUnmanaged(
4745 struct { InternPool.Index, StorageClass, NavGen.Repr },
48 struct { ty_id: IdRef, fwd_emitted: bool },
46 struct { ty_id: Id, fwd_emitted: bool },
4947);
5048
5149const ControlFlow = union(enum) {
......@@ -55,10 +53,10 @@ const ControlFlow = union(enum) {
5553 /// inside the block must reach the outside.
5654 const Block = union(enum) {
5755 const Incoming = struct {
58 src_label: IdRef,
56 src_label: Id,
5957 /// Instruction that returns an u32 value of the
6058 /// `Air.Inst.Index` that control flow should jump to.
61 next_block: IdRef,
59 next_block: Id,
6260 };
6361
6462 const SelectionMerge = struct {
......@@ -69,7 +67,7 @@ const ControlFlow = union(enum) {
6967 /// The label id of the cond_br's merge block.
7068 /// For the top-most element in the stack, this
7169 /// value is undefined.
72 merge_block: IdRef,
70 merge_block: Id,
7371 };
7472
7573 /// For a `selection` type block, we cannot use early exits, and we
......@@ -100,7 +98,7 @@ const ControlFlow = union(enum) {
10098 /// of conditions that jump to the loop exit.
10199 merges: std.ArrayListUnmanaged(Incoming) = .empty,
102100 /// The label id of the loop's merge block.
103 merge_block: IdRef,
101 merge_block: Id,
104102 },
105103
106104 fn deinit(self: *Structured.Block, a: Allocator) void {
......@@ -116,17 +114,17 @@ const ControlFlow = union(enum) {
116114 block_stack: std.ArrayListUnmanaged(*Structured.Block) = .empty,
117115 /// Maps `block` inst indices to the variable that the block's result
118116 /// value must be written to.
119 block_results: std.AutoHashMapUnmanaged(Air.Inst.Index, IdRef) = .empty,
117 block_results: std.AutoHashMapUnmanaged(Air.Inst.Index, Id) = .empty,
120118 };
121119
122120 const Unstructured = struct {
123121 const Incoming = struct {
124 src_label: IdRef,
125 break_value_id: IdRef,
122 src_label: Id,
123 break_value_id: Id,
126124 };
127125
128126 const Block = struct {
129 label: ?IdRef = null,
127 label: ?Id = null,
130128 incoming_blocks: std.ArrayListUnmanaged(Incoming) = .empty,
131129 };
132130
......@@ -318,7 +316,7 @@ const NavGen = struct {
318316
319317 /// An array of function argument result-ids. Each index corresponds with the
320318 /// function argument of the same index.
321 args: std.ArrayListUnmanaged(IdRef) = .empty,
319 args: std.ArrayListUnmanaged(Id) = .empty,
322320
323321 /// A counter to keep track of how many `arg` instructions we've seen yet.
324322 next_arg_index: u32 = 0,
......@@ -337,7 +335,7 @@ const NavGen = struct {
337335 control_flow: ControlFlow,
338336
339337 /// The label of the SPIR-V block we are currently generating.
340 current_block_label: IdRef,
338 current_block_label: Id,
341339
342340 /// The code (prologue and body) for the function we are currently generating code for.
343341 func: SpvModule.Fn = .{},
......@@ -436,17 +434,17 @@ const NavGen = struct {
436434
437435 /// This imports the "default" extended instruction set for the target
438436 /// For OpenCL, OpenCL.std.100. For Vulkan and OpenGL, GLSL.std.450.
439 fn importExtendedSet(self: *NavGen) !IdResult {
437 fn importExtendedSet(self: *NavGen) !Id {
440438 const target = self.spv.target;
441439 return switch (target.os.tag) {
442 .opencl, .amdhsa => try self.spv.importInstructionSet(.@"OpenCL.std"),
443 .vulkan, .opengl => try self.spv.importInstructionSet(.@"GLSL.std.450"),
440 .opencl, .amdhsa => try self.spv.importInstructionSet(.open_cl_std),
441 .vulkan, .opengl => try self.spv.importInstructionSet(.glsl_std_450),
444442 else => unreachable,
445443 };
446444 }
447445
448446 /// Fetch the result-id for a previously generated instruction or constant.
449 fn resolve(self: *NavGen, inst: Air.Inst.Ref) !IdRef {
447 fn resolve(self: *NavGen, inst: Air.Inst.Ref) !Id {
450448 const pt = self.pt;
451449 const zcu = pt.zcu;
452450 if (try self.air.value(inst, pt)) |val| {
......@@ -468,7 +466,7 @@ const NavGen = struct {
468466 return self.inst_results.get(index).?; // Assertion means instruction does not dominate usage.
469467 }
470468
471 fn resolveUav(self: *NavGen, val: InternPool.Index) !IdRef {
469 fn resolveUav(self: *NavGen, val: InternPool.Index) !Id {
472470 // TODO: This cannot be a function at this point, but it should probably be handled anyway.
473471
474472 const zcu = self.pt.zcu;
......@@ -476,16 +474,16 @@ const NavGen = struct {
476474 const decl_ptr_ty_id = try self.ptrType(ty, self.spvStorageClass(.generic), .indirect);
477475
478476 const spv_decl_index = blk: {
479 const entry = try self.object.uav_link.getOrPut(self.object.gpa, .{ val, .Function });
477 const entry = try self.object.uav_link.getOrPut(self.object.gpa, .{ val, .function });
480478 if (entry.found_existing) {
481 try self.addFunctionDep(entry.value_ptr.*, .Function);
479 try self.addFunctionDep(entry.value_ptr.*, .function);
482480
483481 const result_id = self.spv.declPtr(entry.value_ptr.*).result_id;
484482 return try self.castToGeneric(decl_ptr_ty_id, result_id);
485483 }
486484
487485 const spv_decl_index = try self.spv.allocDecl(.invocation_global);
488 try self.addFunctionDep(spv_decl_index, .Function);
486 try self.addFunctionDep(spv_decl_index, .function);
489487 entry.value_ptr.* = spv_decl_index;
490488 break :blk spv_decl_index;
491489 };
......@@ -536,7 +534,7 @@ const NavGen = struct {
536534
537535 try self.spv.debugNameFmt(initializer_id, "initializer of __anon_{d}", .{@intFromEnum(val)});
538536
539 const fn_decl_ptr_ty_id = try self.ptrType(ty, .Function, .indirect);
537 const fn_decl_ptr_ty_id = try self.ptrType(ty, .function, .indirect);
540538 try self.spv.sections.types_globals_constants.emit(self.spv.gpa, .OpExtInst, .{
541539 .id_result_type = fn_decl_ptr_ty_id,
542540 .id_result = result_id,
......@@ -552,7 +550,7 @@ const NavGen = struct {
552550 fn addFunctionDep(self: *NavGen, decl_index: SpvModule.Decl.Index, storage_class: StorageClass) !void {
553551 if (self.spv.version.minor < 4) {
554552 // Before version 1.4, the interface’s storage classes are limited to the Input and Output
555 if (storage_class == .Input or storage_class == .Output) {
553 if (storage_class == .input or storage_class == .output) {
556554 try self.func.decl_deps.put(self.spv.gpa, decl_index, {});
557555 }
558556 } else {
......@@ -560,7 +558,7 @@ const NavGen = struct {
560558 }
561559 }
562560
563 fn castToGeneric(self: *NavGen, type_id: IdRef, ptr_id: IdRef) !IdRef {
561 fn castToGeneric(self: *NavGen, type_id: Id, ptr_id: Id) !Id {
564562 if (self.spv.hasFeature(.generic_pointer)) {
565563 const result_id = self.spv.allocId();
566564 try self.func.body.emit(self.spv.gpa, .OpPtrCastToGeneric, .{
......@@ -578,7 +576,7 @@ const NavGen = struct {
578576 /// block we are currently generating.
579577 /// Note that there is no such thing as nested blocks like in ZIR or AIR, so we don't need to
580578 /// keep track of the previous block.
581 fn beginSpvBlock(self: *NavGen, label: IdResult) !void {
579 fn beginSpvBlock(self: *NavGen, label: Id) !void {
582580 try self.func.body.emit(self.spv.gpa, .OpLabel, .{ .id_result = label });
583581 self.current_block_label = label;
584582 }
......@@ -705,7 +703,7 @@ const NavGen = struct {
705703 }
706704
707705 /// Emits a bool constant in a particular representation.
708 fn constBool(self: *NavGen, value: bool, repr: Repr) !IdRef {
706 fn constBool(self: *NavGen, value: bool, repr: Repr) !Id {
709707 return switch (repr) {
710708 .indirect => self.constInt(Type.u1, @intFromBool(value)),
711709 .direct => self.spv.constBool(value),
......@@ -715,7 +713,7 @@ const NavGen = struct {
715713 /// Emits an integer constant.
716714 /// This function, unlike SpvModule.constInt, takes care to bitcast
717715 /// the value to an unsigned int first for Kernels.
718 fn constInt(self: *NavGen, ty: Type, value: anytype) !IdRef {
716 fn constInt(self: *NavGen, ty: Type, value: anytype) !Id {
719717 const zcu = self.pt.zcu;
720718 const scalar_ty = ty.scalarType(zcu);
721719 const int_info = scalar_ty.intInfo(zcu);
......@@ -773,7 +771,7 @@ const NavGen = struct {
773771 return self.constructCompositeSplat(ty, result_id);
774772 }
775773
776 pub fn constructComposite(self: *NavGen, result_ty_id: IdRef, constituents: []const IdRef) !IdRef {
774 pub fn constructComposite(self: *NavGen, result_ty_id: Id, constituents: []const Id) !Id {
777775 const result_id = self.spv.allocId();
778776 try self.func.body.emit(self.gpa, .OpCompositeConstruct, .{
779777 .id_result_type = result_ty_id,
......@@ -785,11 +783,11 @@ const NavGen = struct {
785783
786784 /// Construct a composite at runtime with all lanes set to the same value.
787785 /// ty must be an aggregate type.
788 fn constructCompositeSplat(self: *NavGen, ty: Type, constituent: IdRef) !IdRef {
786 fn constructCompositeSplat(self: *NavGen, ty: Type, constituent: Id) !Id {
789787 const zcu = self.pt.zcu;
790788 const n: usize = @intCast(ty.arrayLen(zcu));
791789
792 const constituents = try self.gpa.alloc(IdRef, n);
790 const constituents = try self.gpa.alloc(Id, n);
793791 defer self.gpa.free(constituents);
794792 @memset(constituents, constituent);
795793
......@@ -803,7 +801,7 @@ const NavGen = struct {
803801 /// is done by emitting a sequence of instructions that initialize the value.
804802 //
805803 /// This function should only be called during function code generation.
806 fn constant(self: *NavGen, ty: Type, val: Value, repr: Repr) !IdRef {
804 fn constant(self: *NavGen, ty: Type, val: Value, repr: Repr) !Id {
807805 // Note: Using intern_map can only be used with constants that DO NOT generate any runtime code!!
808806 // Ideally that should be all constants in the future, or it should be cleaned up somehow. For
809807 // now, only use the intern_map on case-by-case basis by breaking to :cache.
......@@ -909,7 +907,7 @@ const NavGen = struct {
909907 .payload => |payload| payload,
910908 });
911909
912 var constituents: [2]IdRef = undefined;
910 var constituents: [2]Id = undefined;
913911 var types: [2]Type = undefined;
914912 if (eu_layout.error_first) {
915913 constituents[0] = try self.constant(err_ty, err_val, .indirect);
......@@ -967,7 +965,7 @@ const NavGen = struct {
967965 inline .array_type, .vector_type => |array_type, tag| {
968966 const elem_ty = Type.fromInterned(array_type.child);
969967
970 const constituents = try self.gpa.alloc(IdRef, @intCast(ty.arrayLenIncludingSentinel(zcu)));
968 const constituents = try self.gpa.alloc(Id, @intCast(ty.arrayLenIncludingSentinel(zcu)));
971969 defer self.gpa.free(constituents);
972970
973971 const child_repr: Repr = switch (tag) {
......@@ -1015,7 +1013,7 @@ const NavGen = struct {
10151013 var types = std.ArrayList(Type).init(self.gpa);
10161014 defer types.deinit();
10171015
1018 var constituents = std.ArrayList(IdRef).init(self.gpa);
1016 var constituents = std.ArrayList(Id).init(self.gpa);
10191017 defer constituents.deinit();
10201018
10211019 var it = struct_type.iterateRuntimeOrder(ip);
......@@ -1064,7 +1062,7 @@ const NavGen = struct {
10641062 return cacheable_id;
10651063 }
10661064
1067 fn constantPtr(self: *NavGen, ptr_val: Value) Error!IdRef {
1065 fn constantPtr(self: *NavGen, ptr_val: Value) Error!Id {
10681066 const pt = self.pt;
10691067
10701068 if (ptr_val.isUndef(pt.zcu)) {
......@@ -1080,7 +1078,7 @@ const NavGen = struct {
10801078 return self.derivePtr(derivation);
10811079 }
10821080
1083 fn derivePtr(self: *NavGen, derivation: Value.PointerDeriveStep) Error!IdRef {
1081 fn derivePtr(self: *NavGen, derivation: Value.PointerDeriveStep) Error!Id {
10841082 const pt = self.pt;
10851083 const zcu = pt.zcu;
10861084 switch (derivation) {
......@@ -1159,7 +1157,7 @@ const NavGen = struct {
11591157 self: *NavGen,
11601158 ty: Type,
11611159 uav: InternPool.Key.Ptr.BaseAddr.Uav,
1162 ) !IdRef {
1160 ) !Id {
11631161 // TODO: Merge this function with constantDeclRef.
11641162
11651163 const pt = self.pt;
......@@ -1182,7 +1180,7 @@ const NavGen = struct {
11821180
11831181 // Uav refs are always generic.
11841182 assert(ty.ptrAddressSpace(zcu) == .generic);
1185 const decl_ptr_ty_id = try self.ptrType(uav_ty, .Generic, .indirect);
1183 const decl_ptr_ty_id = try self.ptrType(uav_ty, .generic, .indirect);
11861184 const ptr_id = try self.resolveUav(uav.val);
11871185
11881186 if (decl_ptr_ty_id != ty_id) {
......@@ -1199,7 +1197,7 @@ const NavGen = struct {
11991197 }
12001198 }
12011199
1202 fn constantNavRef(self: *NavGen, ty: Type, nav_index: InternPool.Nav.Index) !IdRef {
1200 fn constantNavRef(self: *NavGen, ty: Type, nav_index: InternPool.Nav.Index) !Id {
12031201 const pt = self.pt;
12041202 const zcu = pt.zcu;
12051203 const ip = &zcu.intern_pool;
......@@ -1240,7 +1238,7 @@ const NavGen = struct {
12401238 const decl_ptr_ty_id = try self.ptrType(nav_ty, storage_class, .indirect);
12411239
12421240 const ptr_id = switch (storage_class) {
1243 .Generic => try self.castToGeneric(decl_ptr_ty_id, decl_id),
1241 .generic => try self.castToGeneric(decl_ptr_ty_id, decl_id),
12441242 else => decl_id,
12451243 };
12461244
......@@ -1272,7 +1270,7 @@ const NavGen = struct {
12721270 /// The integer type that is returned by this function is the type that is used to perform
12731271 /// actual operations (as well as store) a Zig type of a particular number of bits. To create
12741272 /// a type with an exact size, use SpvModule.intType.
1275 fn intType(self: *NavGen, signedness: std.builtin.Signedness, bits: u16) !IdRef {
1273 fn intType(self: *NavGen, signedness: std.builtin.Signedness, bits: u16) !Id {
12761274 const backing_bits, const big_int = self.backingIntBits(bits);
12771275 if (big_int) {
12781276 if (backing_bits > 64) {
......@@ -1289,12 +1287,12 @@ const NavGen = struct {
12891287 };
12901288 }
12911289
1292 fn arrayType(self: *NavGen, len: u32, child_ty: IdRef) !IdRef {
1290 fn arrayType(self: *NavGen, len: u32, child_ty: Id) !Id {
12931291 const len_id = try self.constInt(Type.u32, len);
12941292 return self.spv.arrayType(len_id, child_ty);
12951293 }
12961294
1297 fn ptrType(self: *NavGen, child_ty: Type, storage_class: StorageClass, child_repr: Repr) !IdRef {
1295 fn ptrType(self: *NavGen, child_ty: Type, storage_class: StorageClass, child_repr: Repr) !Id {
12981296 const zcu = self.pt.zcu;
12991297 const ip = &zcu.intern_pool;
13001298 const key = .{ child_ty.toIntern(), storage_class, child_repr };
......@@ -1323,7 +1321,7 @@ const NavGen = struct {
13231321 .vulkan, .opengl => {
13241322 if (child_ty.zigTypeTag(zcu) == .@"struct") {
13251323 switch (storage_class) {
1326 .Uniform, .PushConstant => try self.spv.decorate(child_ty_id, .Block),
1324 .uniform, .push_constant => try self.spv.decorate(child_ty_id, .block),
13271325 else => {},
13281326 }
13291327 }
......@@ -1331,7 +1329,7 @@ const NavGen = struct {
13311329 switch (ip.indexToKey(child_ty.toIntern())) {
13321330 .func_type, .opaque_type => {},
13331331 else => {
1334 try self.spv.decorate(result_id, .{ .ArrayStride = .{ .array_stride = @intCast(child_ty.abiSize(zcu)) } });
1332 try self.spv.decorate(result_id, .{ .array_stride = .{ .array_stride = @intCast(child_ty.abiSize(zcu)) } });
13351333 },
13361334 }
13371335 },
......@@ -1349,9 +1347,9 @@ const NavGen = struct {
13491347 return result_id;
13501348 }
13511349
1352 fn functionType(self: *NavGen, return_ty: Type, param_types: []const Type) !IdRef {
1350 fn functionType(self: *NavGen, return_ty: Type, param_types: []const Type) !Id {
13531351 const return_ty_id = try self.resolveFnReturnType(return_ty);
1354 const param_ids = try self.gpa.alloc(IdRef, param_types.len);
1352 const param_ids = try self.gpa.alloc(Id, param_types.len);
13551353 defer self.gpa.free(param_ids);
13561354
13571355 for (param_types, param_ids) |param_ty, *param_id| {
......@@ -1379,7 +1377,7 @@ const NavGen = struct {
13791377 /// padding: [padding_size]u8,
13801378 /// }
13811379 /// If any of the fields' size is 0, it will be omitted.
1382 fn resolveUnionType(self: *NavGen, ty: Type) !IdRef {
1380 fn resolveUnionType(self: *NavGen, ty: Type) !Id {
13831381 const zcu = self.pt.zcu;
13841382 const ip = &zcu.intern_pool;
13851383 const union_obj = zcu.typeToUnion(ty).?;
......@@ -1394,7 +1392,7 @@ const NavGen = struct {
13941392 return try self.resolveType(Type.fromInterned(union_obj.enum_tag_ty), .indirect);
13951393 }
13961394
1397 var member_types: [4]IdRef = undefined;
1395 var member_types: [4]Id = undefined;
13981396 var member_names: [4][]const u8 = undefined;
13991397
14001398 const u8_ty_id = try self.resolveType(Type.u8, .direct);
......@@ -1433,7 +1431,7 @@ const NavGen = struct {
14331431 return result_id;
14341432 }
14351433
1436 fn resolveFnReturnType(self: *NavGen, ret_ty: Type) !IdRef {
1434 fn resolveFnReturnType(self: *NavGen, ret_ty: Type) !Id {
14371435 const zcu = self.pt.zcu;
14381436 if (!ret_ty.hasRuntimeBitsIgnoreComptime(zcu)) {
14391437 // If the return type is an error set or an error union, then we make this
......@@ -1450,7 +1448,7 @@ const NavGen = struct {
14501448 }
14511449
14521450 /// Turn a Zig type into a SPIR-V Type, and return a reference to it.
1453 fn resolveType(self: *NavGen, ty: Type, repr: Repr) Error!IdRef {
1451 fn resolveType(self: *NavGen, ty: Type, repr: Repr) Error!Id {
14541452 if (self.intern_map.get(.{ ty.toIntern(), repr })) |id| {
14551453 return id;
14561454 }
......@@ -1460,7 +1458,7 @@ const NavGen = struct {
14601458 return id;
14611459 }
14621460
1463 fn resolveTypeInner(self: *NavGen, ty: Type, repr: Repr) Error!IdRef {
1461 fn resolveTypeInner(self: *NavGen, ty: Type, repr: Repr) Error!Id {
14641462 const pt = self.pt;
14651463 const zcu = pt.zcu;
14661464 const ip = &zcu.intern_pool;
......@@ -1564,7 +1562,7 @@ const NavGen = struct {
15641562 const result_id = try self.arrayType(total_len, elem_ty_id);
15651563 switch (self.spv.target.os.tag) {
15661564 .vulkan, .opengl => {
1567 try self.spv.decorate(result_id, .{ .ArrayStride = .{
1565 try self.spv.decorate(result_id, .{ .array_stride = .{
15681566 .array_stride = @intCast(elem_ty.abiSize(zcu)),
15691567 } });
15701568 },
......@@ -1604,7 +1602,7 @@ const NavGen = struct {
16041602 assert(!fn_info.is_var_args);
16051603
16061604 // Note: Logic is different from functionType().
1607 const param_ty_ids = try self.gpa.alloc(IdRef, fn_info.param_types.len);
1605 const param_ty_ids = try self.gpa.alloc(Id, fn_info.param_types.len);
16081606 defer self.gpa.free(param_ty_ids);
16091607 var param_index: usize = 0;
16101608 for (fn_info.param_types.get(ip)) |param_ty_index| {
......@@ -1655,7 +1653,7 @@ const NavGen = struct {
16551653 .@"struct" => {
16561654 const struct_type = switch (ip.indexToKey(ty.toIntern())) {
16571655 .tuple_type => |tuple| {
1658 const member_types = try self.gpa.alloc(IdRef, tuple.values.len);
1656 const member_types = try self.gpa.alloc(Id, tuple.values.len);
16591657 defer self.gpa.free(member_types);
16601658
16611659 var member_index: usize = 0;
......@@ -1683,7 +1681,7 @@ const NavGen = struct {
16831681 return try self.resolveType(Type.fromInterned(struct_type.backingIntTypeUnordered(ip)), .direct);
16841682 }
16851683
1686 var member_types = std.ArrayList(IdRef).init(self.gpa);
1684 var member_types = std.ArrayList(Id).init(self.gpa);
16871685 defer member_types.deinit();
16881686
16891687 var member_names = std.ArrayList([]const u8).init(self.gpa);
......@@ -1701,7 +1699,7 @@ const NavGen = struct {
17011699
17021700 switch (self.spv.target.os.tag) {
17031701 .vulkan, .opengl => {
1704 try self.spv.decorateMember(result_id, index, .{ .Offset = .{
1702 try self.spv.decorateMember(result_id, index, .{ .offset = .{
17051703 .byte_offset = @intCast(ty.structFieldOffset(field_index, zcu)),
17061704 } });
17071705 },
......@@ -1765,7 +1763,7 @@ const NavGen = struct {
17651763
17661764 const payload_ty_id = try self.resolveType(payload_ty, .indirect);
17671765
1768 var member_types: [2]IdRef = undefined;
1766 var member_types: [2]Id = undefined;
17691767 var member_names: [2][]const u8 = undefined;
17701768 if (eu_layout.error_first) {
17711769 // Put the error first
......@@ -1809,30 +1807,30 @@ const NavGen = struct {
18091807
18101808 fn spvStorageClass(self: *NavGen, as: std.builtin.AddressSpace) StorageClass {
18111809 return switch (as) {
1812 .generic => if (self.spv.hasFeature(.generic_pointer)) .Generic else .Function,
1810 .generic => if (self.spv.hasFeature(.generic_pointer)) .generic else .function,
18131811 .global => switch (self.spv.target.os.tag) {
1814 .opencl, .amdhsa => .CrossWorkgroup,
1815 else => .StorageBuffer,
1812 .opencl, .amdhsa => .cross_workgroup,
1813 else => .storage_buffer,
18161814 },
18171815 .push_constant => {
1818 return .PushConstant;
1816 return .push_constant;
18191817 },
18201818 .output => {
1821 return .Output;
1819 return .output;
18221820 },
18231821 .uniform => {
1824 return .Uniform;
1822 return .uniform;
18251823 },
18261824 .storage_buffer => {
1827 return .StorageBuffer;
1825 return .storage_buffer;
18281826 },
18291827 .physical_storage_buffer => {
1830 return .PhysicalStorageBuffer;
1828 return .physical_storage_buffer;
18311829 },
1832 .constant => .UniformConstant,
1833 .shared => .Workgroup,
1834 .local => .Function,
1835 .input => .Input,
1830 .constant => .uniform_constant,
1831 .shared => .workgroup,
1832 .local => .function,
1833 .input => .input,
18361834 .gs,
18371835 .fs,
18381836 .ss,
......@@ -1980,22 +1978,22 @@ const NavGen = struct {
19801978 value: Temporary.Value,
19811979
19821980 const Value = union(enum) {
1983 singleton: IdResult,
1981 singleton: Id,
19841982 exploded_vector: IdRange,
19851983 };
19861984
1987 fn init(ty: Type, singleton: IdResult) Temporary {
1985 fn init(ty: Type, singleton: Id) Temporary {
19881986 return .{ .ty = ty, .value = .{ .singleton = singleton } };
19891987 }
19901988
1991 fn materialize(self: Temporary, ng: *NavGen) !IdResult {
1989 fn materialize(self: Temporary, ng: *NavGen) !Id {
19921990 const zcu = ng.pt.zcu;
19931991 switch (self.value) {
19941992 .singleton => |id| return id,
19951993 .exploded_vector => |range| {
19961994 assert(self.ty.isVector(zcu));
19971995 assert(self.ty.vectorLen(zcu) == range.len);
1998 const constituents = try ng.gpa.alloc(IdRef, range.len);
1996 const constituents = try ng.gpa.alloc(Id, range.len);
19991997 defer ng.gpa.free(constituents);
20001998 for (constituents, 0..range.len) |*id, i| {
20011999 id.* = range.at(i);
......@@ -2170,16 +2168,16 @@ const NavGen = struct {
21702168 /// on the operation and input value.
21712169 const Value = union(enum) {
21722170 /// A single scalar value that is used by a scalar operation.
2173 scalar: IdResult,
2171 scalar: Id,
21742172 /// A single scalar that is broadcasted in an unrolled operation.
2175 scalar_broadcast: IdResult,
2173 scalar_broadcast: Id,
21762174 /// A vector represented by a consecutive list of IDs that is used in an unrolled operation.
21772175 vector_exploded: IdRange,
21782176 };
21792177
21802178 /// Query the value at a particular index of the operation. Note that
21812179 /// the index is *not* the component/lane, but the index of the *operation*.
2182 fn at(self: PreparedOperand, i: usize) IdResult {
2180 fn at(self: PreparedOperand, i: usize) Id {
21832181 switch (self.value) {
21842182 .scalar => |id| {
21852183 assert(i == 0);
......@@ -2253,9 +2251,9 @@ const NavGen = struct {
22532251
22542252 for (0..ops) |i| {
22552253 try self.func.body.emitRaw(self.spv.gpa, opcode, 3);
2256 self.func.body.writeOperand(spec.IdResultType, op_result_ty_id);
2257 self.func.body.writeOperand(IdResult, results.at(i));
2258 self.func.body.writeOperand(IdResult, op_src.at(i));
2254 self.func.body.writeOperand(spec.Id, op_result_ty_id);
2255 self.func.body.writeOperand(Id, results.at(i));
2256 self.func.body.writeOperand(Id, op_src.at(i));
22592257 }
22602258
22612259 return v.finalize(result_ty, results);
......@@ -2388,10 +2386,10 @@ const NavGen = struct {
23882386
23892387 for (0..ops) |i| {
23902388 try self.func.body.emitRaw(self.spv.gpa, opcode, 4);
2391 self.func.body.writeOperand(spec.IdResultType, op_result_ty_id);
2392 self.func.body.writeOperand(IdResult, results.at(i));
2393 self.func.body.writeOperand(IdResult, op_lhs.at(i));
2394 self.func.body.writeOperand(IdResult, op_rhs.at(i));
2389 self.func.body.writeOperand(spec.Id, op_result_ty_id);
2390 self.func.body.writeOperand(Id, results.at(i));
2391 self.func.body.writeOperand(Id, op_lhs.at(i));
2392 self.func.body.writeOperand(Id, op_rhs.at(i));
23952393 }
23962394
23972395 return v.finalize(result_ty, results);
......@@ -2442,9 +2440,9 @@ const NavGen = struct {
24422440 }) |opcode| {
24432441 for (0..ops) |i| {
24442442 try self.func.body.emitRaw(self.spv.gpa, opcode, 3);
2445 self.func.body.writeOperand(spec.IdResultType, op_result_ty_id);
2446 self.func.body.writeOperand(IdResult, results.at(i));
2447 self.func.body.writeOperand(IdResult, op_operand.at(i));
2443 self.func.body.writeOperand(spec.Id, op_result_ty_id);
2444 self.func.body.writeOperand(Id, results.at(i));
2445 self.func.body.writeOperand(Id, op_operand.at(i));
24482446 }
24492447 } else {
24502448 const set = try self.importExtendedSet();
......@@ -2583,10 +2581,10 @@ const NavGen = struct {
25832581 }) |opcode| {
25842582 for (0..ops) |i| {
25852583 try self.func.body.emitRaw(self.spv.gpa, opcode, 4);
2586 self.func.body.writeOperand(spec.IdResultType, op_result_ty_id);
2587 self.func.body.writeOperand(IdResult, results.at(i));
2588 self.func.body.writeOperand(IdResult, op_lhs.at(i));
2589 self.func.body.writeOperand(IdResult, op_rhs.at(i));
2584 self.func.body.writeOperand(spec.Id, op_result_ty_id);
2585 self.func.body.writeOperand(Id, results.at(i));
2586 self.func.body.writeOperand(Id, op_lhs.at(i));
2587 self.func.body.writeOperand(Id, op_rhs.at(i));
25902588 }
25912589 } else {
25922590 const set = try self.importExtendedSet();
......@@ -2702,10 +2700,10 @@ const NavGen = struct {
27022700 const op_result = self.spv.allocId();
27032701
27042702 try self.func.body.emitRaw(self.spv.gpa, opcode, 4);
2705 self.func.body.writeOperand(spec.IdResultType, op_result_ty_id);
2706 self.func.body.writeOperand(IdResult, op_result);
2707 self.func.body.writeOperand(IdResult, lhs_op.at(i));
2708 self.func.body.writeOperand(IdResult, rhs_op.at(i));
2703 self.func.body.writeOperand(spec.Id, op_result_ty_id);
2704 self.func.body.writeOperand(Id, op_result);
2705 self.func.body.writeOperand(Id, lhs_op.at(i));
2706 self.func.body.writeOperand(Id, rhs_op.at(i));
27092707
27102708 // The above operation returns a struct. We might want to expand
27112709 // Temporary to deal with the fact that these are structs eventually,
......@@ -2804,8 +2802,8 @@ const NavGen = struct {
28042802
28052803 const buffer_struct_ty_id = self.spv.allocId();
28062804 try self.spv.structType(buffer_struct_ty_id, &.{anyerror_ty_id}, &.{"error_out"});
2807 try self.spv.decorate(buffer_struct_ty_id, .Block);
2808 try self.spv.decorateMember(buffer_struct_ty_id, 0, .{ .Offset = .{ .byte_offset = 0 } });
2805 try self.spv.decorate(buffer_struct_ty_id, .block);
2806 try self.spv.decorateMember(buffer_struct_ty_id, 0, .{ .offset = .{ .byte_offset = 0 } });
28092807
28102808 const ptr_buffer_struct_ty_id = self.spv.allocId();
28112809 try self.spv.sections.types_globals_constants.emit(self.spv.gpa, .OpTypePointer, .{
......@@ -2820,15 +2818,15 @@ const NavGen = struct {
28202818 .id_result = buffer_struct_id,
28212819 .storage_class = self.spvStorageClass(.global),
28222820 });
2823 try self.spv.decorate(buffer_struct_id, .{ .DescriptorSet = .{ .descriptor_set = 0 } });
2824 try self.spv.decorate(buffer_struct_id, .{ .Binding = .{ .binding_point = 0 } });
2821 try self.spv.decorate(buffer_struct_id, .{ .descriptor_set = .{ .descriptor_set = 0 } });
2822 try self.spv.decorate(buffer_struct_id, .{ .binding = .{ .binding_point = 0 } });
28252823
28262824 self.object.error_buffer = spv_err_decl_index;
28272825 }
28282826
28292827 try self.spv.sections.execution_modes.emit(self.spv.gpa, .OpExecutionMode, .{
28302828 .entry_point = kernel_id,
2831 .mode = .{ .LocalSize = .{
2829 .mode = .{ .local_size = .{
28322830 .x_size = 1,
28332831 .y_size = 1,
28342832 .z_size = 1,
......@@ -2873,7 +2871,7 @@ const NavGen = struct {
28732871 .pointer = p_error_id,
28742872 .object = error_id,
28752873 .memory_access = .{
2876 .Aligned = .{ .literal_integer = @intCast(Type.abiAlignment(.anyerror, zcu).toByteUnits().?) },
2874 .aligned = .{ .literal_integer = @intCast(Type.abiAlignment(.anyerror, zcu).toByteUnits().?) },
28772875 },
28782876 });
28792877 try section.emit(self.spv.gpa, .OpReturn, {});
......@@ -2885,8 +2883,8 @@ const NavGen = struct {
28852883 defer self.gpa.free(test_name);
28862884
28872885 const execution_mode: spec.ExecutionModel = switch (target.os.tag) {
2888 .vulkan, .opengl => .GLCompute,
2889 .opencl, .amdhsa => .Kernel,
2886 .vulkan, .opengl => .gl_compute,
2887 .opencl, .amdhsa => .kernel,
28902888 else => unreachable,
28912889 };
28922890
......@@ -2983,7 +2981,7 @@ const NavGen = struct {
29832981 assert(maybe_init_val == null); // TODO
29842982
29852983 const storage_class = self.spvStorageClass(nav.getAddrspace());
2986 assert(storage_class != .Generic); // These should be instance globals
2984 assert(storage_class != .generic); // These should be instance globals
29872985
29882986 const ptr_ty_id = try self.ptrType(ty, storage_class, .indirect);
29892987
......@@ -2993,38 +2991,8 @@ const NavGen = struct {
29932991 .storage_class = storage_class,
29942992 });
29952993
2996 if (nav.fqn.eqlSlice("position", ip)) {
2997 try self.spv.decorate(result_id, .{ .BuiltIn = .{ .built_in = .Position } });
2998 } else if (nav.fqn.eqlSlice("point_size", ip)) {
2999 try self.spv.decorate(result_id, .{ .BuiltIn = .{ .built_in = .PointSize } });
3000 } else if (nav.fqn.eqlSlice("invocation_id", ip)) {
3001 try self.spv.decorate(result_id, .{ .BuiltIn = .{ .built_in = .InvocationId } });
3002 } else if (nav.fqn.eqlSlice("frag_coord", ip)) {
3003 try self.spv.decorate(result_id, .{ .BuiltIn = .{ .built_in = .FragCoord } });
3004 } else if (nav.fqn.eqlSlice("point_coord", ip)) {
3005 try self.spv.decorate(result_id, .{ .BuiltIn = .{ .built_in = .PointCoord } });
3006 } else if (nav.fqn.eqlSlice("front_facing", ip)) {
3007 try self.spv.decorate(result_id, .{ .BuiltIn = .{ .built_in = .FrontFacing } });
3008 } else if (nav.fqn.eqlSlice("sample_mask", ip)) {
3009 try self.spv.decorate(result_id, .{ .BuiltIn = .{ .built_in = .SampleMask } });
3010 } else if (nav.fqn.eqlSlice("frag_depth", ip)) {
3011 try self.spv.decorate(result_id, .{ .BuiltIn = .{ .built_in = .FragDepth } });
3012 } else if (nav.fqn.eqlSlice("num_workgroups", ip)) {
3013 try self.spv.decorate(result_id, .{ .BuiltIn = .{ .built_in = .NumWorkgroups } });
3014 } else if (nav.fqn.eqlSlice("workgroup_size", ip)) {
3015 try self.spv.decorate(result_id, .{ .BuiltIn = .{ .built_in = .WorkgroupSize } });
3016 } else if (nav.fqn.eqlSlice("workgroup_id", ip)) {
3017 try self.spv.decorate(result_id, .{ .BuiltIn = .{ .built_in = .WorkgroupId } });
3018 } else if (nav.fqn.eqlSlice("local_invocation_id", ip)) {
3019 try self.spv.decorate(result_id, .{ .BuiltIn = .{ .built_in = .LocalInvocationId } });
3020 } else if (nav.fqn.eqlSlice("global_invocation_id", ip)) {
3021 try self.spv.decorate(result_id, .{ .BuiltIn = .{ .built_in = .GlobalInvocationId } });
3022 } else if (nav.fqn.eqlSlice("local_invocation_index", ip)) {
3023 try self.spv.decorate(result_id, .{ .BuiltIn = .{ .built_in = .LocalInvocationIndex } });
3024 } else if (nav.fqn.eqlSlice("vertex_index", ip)) {
3025 try self.spv.decorate(result_id, .{ .BuiltIn = .{ .built_in = .VertexIndex } });
3026 } else if (nav.fqn.eqlSlice("instance_index", ip)) {
3027 try self.spv.decorate(result_id, .{ .BuiltIn = .{ .built_in = .InstanceIndex } });
2994 if (std.meta.stringToEnum(spec.BuiltIn, nav.fqn.toSlice(ip))) |builtin| {
2995 try self.spv.decorate(result_id, .{ .built_in = .{ .built_in = builtin } });
30282996 }
30292997
30302998 try self.spv.debugName(result_id, nav.fqn.toSlice(ip));
......@@ -3040,7 +3008,7 @@ const NavGen = struct {
30403008
30413009 try self.spv.declareDeclDeps(spv_decl_index, &.{});
30423010
3043 const ptr_ty_id = try self.ptrType(ty, .Function, .indirect);
3011 const ptr_ty_id = try self.ptrType(ty, .function, .indirect);
30443012
30453013 if (maybe_init_val) |init_val| {
30463014 // TODO: Combine with resolveAnonDecl?
......@@ -3109,7 +3077,7 @@ const NavGen = struct {
31093077
31103078 /// Convert representation from indirect (in memory) to direct (in 'register')
31113079 /// This converts the argument type from resolveType(ty, .indirect) to resolveType(ty, .direct).
3112 fn convertToDirect(self: *NavGen, ty: Type, operand_id: IdRef) !IdRef {
3080 fn convertToDirect(self: *NavGen, ty: Type, operand_id: Id) !Id {
31133081 const pt = self.pt;
31143082 const zcu = pt.zcu;
31153083 switch (ty.scalarType(zcu).zigTypeTag(zcu)) {
......@@ -3136,7 +3104,7 @@ const NavGen = struct {
31363104
31373105 /// Convert representation from direct (in 'register) to direct (in memory)
31383106 /// This converts the argument type from resolveType(ty, .direct) to resolveType(ty, .indirect).
3139 fn convertToIndirect(self: *NavGen, ty: Type, operand_id: IdRef) !IdRef {
3107 fn convertToIndirect(self: *NavGen, ty: Type, operand_id: Id) !Id {
31403108 const zcu = self.pt.zcu;
31413109 switch (ty.scalarType(zcu).zigTypeTag(zcu)) {
31423110 .bool => {
......@@ -3147,7 +3115,7 @@ const NavGen = struct {
31473115 }
31483116 }
31493117
3150 fn extractField(self: *NavGen, result_ty: Type, object: IdRef, field: u32) !IdRef {
3118 fn extractField(self: *NavGen, result_ty: Type, object: Id, field: u32) !Id {
31513119 const result_ty_id = try self.resolveType(result_ty, .indirect);
31523120 const result_id = self.spv.allocId();
31533121 const indexes = [_]u32{field};
......@@ -3161,7 +3129,7 @@ const NavGen = struct {
31613129 return try self.convertToDirect(result_ty, result_id);
31623130 }
31633131
3164 fn extractVectorComponent(self: *NavGen, result_ty: Type, vector_id: IdRef, field: u32) !IdRef {
3132 fn extractVectorComponent(self: *NavGen, result_ty: Type, vector_id: Id, field: u32) !Id {
31653133 const result_ty_id = try self.resolveType(result_ty, .direct);
31663134 const result_id = self.spv.allocId();
31673135 const indexes = [_]u32{field};
......@@ -3179,14 +3147,14 @@ const NavGen = struct {
31793147 is_volatile: bool = false,
31803148 };
31813149
3182 fn load(self: *NavGen, value_ty: Type, ptr_id: IdRef, options: MemoryOptions) !IdRef {
3150 fn load(self: *NavGen, value_ty: Type, ptr_id: Id, options: MemoryOptions) !Id {
31833151 const zcu = self.pt.zcu;
31843152 const alignment: u32 = @intCast(value_ty.abiAlignment(zcu).toByteUnits().?);
31853153 const indirect_value_ty_id = try self.resolveType(value_ty, .indirect);
31863154 const result_id = self.spv.allocId();
3187 const access = spec.MemoryAccess.Extended{
3188 .Volatile = options.is_volatile,
3189 .Aligned = .{ .literal_integer = alignment },
3155 const access: spec.MemoryAccess.Extended = .{
3156 .@"volatile" = options.is_volatile,
3157 .aligned = .{ .literal_integer = alignment },
31903158 };
31913159 try self.func.body.emit(self.spv.gpa, .OpLoad, .{
31923160 .id_result_type = indirect_value_ty_id,
......@@ -3197,11 +3165,9 @@ const NavGen = struct {
31973165 return try self.convertToDirect(value_ty, result_id);
31983166 }
31993167
3200 fn store(self: *NavGen, value_ty: Type, ptr_id: IdRef, value_id: IdRef, options: MemoryOptions) !void {
3168 fn store(self: *NavGen, value_ty: Type, ptr_id: Id, value_id: Id, options: MemoryOptions) !void {
32013169 const indirect_value_id = try self.convertToIndirect(value_ty, value_id);
3202 const access = spec.MemoryAccess.Extended{
3203 .Volatile = options.is_volatile,
3204 };
3170 const access: spec.MemoryAccess.Extended = .{ .@"volatile" = options.is_volatile };
32053171 try self.func.body.emit(self.spv.gpa, .OpStore, .{
32063172 .pointer = ptr_id,
32073173 .object = indirect_value_id,
......@@ -3222,7 +3188,7 @@ const NavGen = struct {
32223188 return;
32233189
32243190 const air_tags = self.air.instructions.items(.tag);
3225 const maybe_result_id: ?IdRef = switch (air_tags[@intFromEnum(inst)]) {
3191 const maybe_result_id: ?Id = switch (air_tags[@intFromEnum(inst)]) {
32263192 // zig fmt: off
32273193 .add, .add_wrap, .add_optimized => try self.airArithOp(inst, .f_add, .i_add, .i_add),
32283194 .sub, .sub_wrap, .sub_optimized => try self.airArithOp(inst, .f_sub, .i_sub, .i_sub),
......@@ -3390,7 +3356,7 @@ const NavGen = struct {
33903356 try self.inst_results.putNoClobber(self.gpa, inst, result_id);
33913357 }
33923358
3393 fn airBinOpSimple(self: *NavGen, inst: Air.Inst.Index, op: BinaryOp) !?IdRef {
3359 fn airBinOpSimple(self: *NavGen, inst: Air.Inst.Index, op: BinaryOp) !?Id {
33943360 const bin_op = self.air.instructions.items(.data)[@intFromEnum(inst)].bin_op;
33953361 const lhs = try self.temporary(bin_op.lhs);
33963362 const rhs = try self.temporary(bin_op.rhs);
......@@ -3399,7 +3365,7 @@ const NavGen = struct {
33993365 return try result.materialize(self);
34003366 }
34013367
3402 fn airShift(self: *NavGen, inst: Air.Inst.Index, unsigned: BinaryOp, signed: BinaryOp) !?IdRef {
3368 fn airShift(self: *NavGen, inst: Air.Inst.Index, unsigned: BinaryOp, signed: BinaryOp) !?Id {
34033369 const zcu = self.pt.zcu;
34043370 const bin_op = self.air.instructions.items(.data)[@intFromEnum(inst)].bin_op;
34053371
......@@ -3438,7 +3404,7 @@ const NavGen = struct {
34383404
34393405 const MinMax = enum { min, max };
34403406
3441 fn airMinMax(self: *NavGen, inst: Air.Inst.Index, op: MinMax) !?IdRef {
3407 fn airMinMax(self: *NavGen, inst: Air.Inst.Index, op: MinMax) !?Id {
34423408 const bin_op = self.air.instructions.items(.data)[@intFromEnum(inst)].bin_op;
34433409
34443410 const lhs = try self.temporary(bin_op.lhs);
......@@ -3503,7 +3469,7 @@ const NavGen = struct {
35033469 }
35043470 }
35053471
3506 fn airDivFloor(self: *NavGen, inst: Air.Inst.Index) !?IdRef {
3472 fn airDivFloor(self: *NavGen, inst: Air.Inst.Index) !?Id {
35073473 const bin_op = self.air.instructions.items(.data)[@intFromEnum(inst)].bin_op;
35083474
35093475 const lhs = try self.temporary(bin_op.lhs);
......@@ -3560,7 +3526,7 @@ const NavGen = struct {
35603526 }
35613527 }
35623528
3563 fn airDivTrunc(self: *NavGen, inst: Air.Inst.Index) !?IdRef {
3529 fn airDivTrunc(self: *NavGen, inst: Air.Inst.Index) !?Id {
35643530 const bin_op = self.air.instructions.items(.data)[@intFromEnum(inst)].bin_op;
35653531
35663532 const lhs = try self.temporary(bin_op.lhs);
......@@ -3588,7 +3554,7 @@ const NavGen = struct {
35883554 }
35893555 }
35903556
3591 fn airUnOpSimple(self: *NavGen, inst: Air.Inst.Index, op: UnaryOp) !?IdRef {
3557 fn airUnOpSimple(self: *NavGen, inst: Air.Inst.Index, op: UnaryOp) !?Id {
35923558 const un_op = self.air.instructions.items(.data)[@intFromEnum(inst)].un_op;
35933559 const operand = try self.temporary(un_op);
35943560 const result = try self.buildUnary(op, operand);
......@@ -3601,7 +3567,7 @@ const NavGen = struct {
36013567 comptime fop: BinaryOp,
36023568 comptime sop: BinaryOp,
36033569 comptime uop: BinaryOp,
3604 ) !?IdRef {
3570 ) !?Id {
36053571 const bin_op = self.air.instructions.items(.data)[@intFromEnum(inst)].bin_op;
36063572
36073573 const lhs = try self.temporary(bin_op.lhs);
......@@ -3622,7 +3588,7 @@ const NavGen = struct {
36223588 return try result.materialize(self);
36233589 }
36243590
3625 fn airAbs(self: *NavGen, inst: Air.Inst.Index) !?IdRef {
3591 fn airAbs(self: *NavGen, inst: Air.Inst.Index) !?Id {
36263592 const ty_op = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_op;
36273593 const operand = try self.temporary(ty_op.operand);
36283594 // Note: operand_ty may be signed, while ty is always unsigned!
......@@ -3662,7 +3628,7 @@ const NavGen = struct {
36623628 comptime add: BinaryOp,
36633629 comptime ucmp: CmpPredicate,
36643630 comptime scmp: CmpPredicate,
3665 ) !?IdRef {
3631 ) !?Id {
36663632 _ = scmp;
36673633 // Note: OpIAddCarry and OpISubBorrow are not really useful here: For unsigned numbers,
36683634 // there is in both cases only one extra operation required. For signed operations,
......@@ -3725,7 +3691,7 @@ const NavGen = struct {
37253691 return try self.constructComposite(result_ty_id, &.{ try result.materialize(self), try ov.materialize(self) });
37263692 }
37273693
3728 fn airMulOverflow(self: *NavGen, inst: Air.Inst.Index) !?IdRef {
3694 fn airMulOverflow(self: *NavGen, inst: Air.Inst.Index) !?Id {
37293695 const pt = self.pt;
37303696
37313697 const ty_pl = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_pl;
......@@ -3897,7 +3863,7 @@ const NavGen = struct {
38973863 return try self.constructComposite(result_ty_id, &.{ try result.materialize(self), try ov.materialize(self) });
38983864 }
38993865
3900 fn airShlOverflow(self: *NavGen, inst: Air.Inst.Index) !?IdRef {
3866 fn airShlOverflow(self: *NavGen, inst: Air.Inst.Index) !?Id {
39013867 const zcu = self.pt.zcu;
39023868
39033869 const ty_pl = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_pl;
......@@ -3938,7 +3904,7 @@ const NavGen = struct {
39383904 return try self.constructComposite(result_ty_id, &.{ try result.materialize(self), try ov.materialize(self) });
39393905 }
39403906
3941 fn airMulAdd(self: *NavGen, inst: Air.Inst.Index) !?IdRef {
3907 fn airMulAdd(self: *NavGen, inst: Air.Inst.Index) !?Id {
39423908 const pl_op = self.air.instructions.items(.data)[@intFromEnum(inst)].pl_op;
39433909 const extra = self.air.extraData(Air.Bin, pl_op.payload).data;
39443910
......@@ -3954,7 +3920,7 @@ const NavGen = struct {
39543920 return try result.materialize(self);
39553921 }
39563922
3957 fn airClzCtz(self: *NavGen, inst: Air.Inst.Index, op: UnaryOp) !?IdRef {
3923 fn airClzCtz(self: *NavGen, inst: Air.Inst.Index, op: UnaryOp) !?Id {
39583924 if (self.liveness.isUnused(inst)) return null;
39593925
39603926 const zcu = self.pt.zcu;
......@@ -3979,7 +3945,7 @@ const NavGen = struct {
39793945 return try result.materialize(self);
39803946 }
39813947
3982 fn airSelect(self: *NavGen, inst: Air.Inst.Index) !?IdRef {
3948 fn airSelect(self: *NavGen, inst: Air.Inst.Index) !?Id {
39833949 const pl_op = self.air.instructions.items(.data)[@intFromEnum(inst)].pl_op;
39843950 const extra = self.air.extraData(Air.Bin, pl_op.payload).data;
39853951 const pred = try self.temporary(pl_op.operand);
......@@ -3990,7 +3956,7 @@ const NavGen = struct {
39903956 return try result.materialize(self);
39913957 }
39923958
3993 fn airSplat(self: *NavGen, inst: Air.Inst.Index) !?IdRef {
3959 fn airSplat(self: *NavGen, inst: Air.Inst.Index) !?Id {
39943960 const ty_op = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_op;
39953961
39963962 const operand_id = try self.resolve(ty_op.operand);
......@@ -3999,7 +3965,7 @@ const NavGen = struct {
39993965 return try self.constructCompositeSplat(result_ty, operand_id);
40003966 }
40013967
4002 fn airReduce(self: *NavGen, inst: Air.Inst.Index) !?IdRef {
3968 fn airReduce(self: *NavGen, inst: Air.Inst.Index) !?Id {
40033969 const zcu = self.pt.zcu;
40043970 const reduce = self.air.instructions.items(.data)[@intFromEnum(inst)].reduce;
40053971 const operand = try self.resolve(reduce.operand);
......@@ -4062,16 +4028,16 @@ const NavGen = struct {
40624028 result_id = self.spv.allocId();
40634029
40644030 try self.func.body.emitRaw(self.spv.gpa, opcode, 4);
4065 self.func.body.writeOperand(spec.IdResultType, scalar_ty_id);
4066 self.func.body.writeOperand(spec.IdResult, result_id);
4067 self.func.body.writeOperand(spec.IdResultType, lhs);
4068 self.func.body.writeOperand(spec.IdResultType, rhs);
4031 self.func.body.writeOperand(spec.Id, scalar_ty_id);
4032 self.func.body.writeOperand(spec.Id, result_id);
4033 self.func.body.writeOperand(spec.Id, lhs);
4034 self.func.body.writeOperand(spec.Id, rhs);
40694035 }
40704036
40714037 return result_id;
40724038 }
40734039
4074 fn airShuffleOne(ng: *NavGen, inst: Air.Inst.Index) !?IdRef {
4040 fn airShuffleOne(ng: *NavGen, inst: Air.Inst.Index) !?Id {
40754041 const pt = ng.pt;
40764042 const zcu = pt.zcu;
40774043 const gpa = zcu.gpa;
......@@ -4082,7 +4048,7 @@ const NavGen = struct {
40824048 const elem_ty = result_ty.childType(zcu);
40834049 const operand = try ng.resolve(unwrapped.operand);
40844050
4085 const constituents = try gpa.alloc(IdRef, mask.len);
4051 const constituents = try gpa.alloc(Id, mask.len);
40864052 defer gpa.free(constituents);
40874053
40884054 for (constituents, mask) |*id, mask_elem| {
......@@ -4096,7 +4062,7 @@ const NavGen = struct {
40964062 return try ng.constructComposite(result_ty_id, constituents);
40974063 }
40984064
4099 fn airShuffleTwo(ng: *NavGen, inst: Air.Inst.Index) !?IdRef {
4065 fn airShuffleTwo(ng: *NavGen, inst: Air.Inst.Index) !?Id {
41004066 const pt = ng.pt;
41014067 const zcu = pt.zcu;
41024068 const gpa = zcu.gpa;
......@@ -4109,7 +4075,7 @@ const NavGen = struct {
41094075 const operand_a = try ng.resolve(unwrapped.operand_a);
41104076 const operand_b = try ng.resolve(unwrapped.operand_b);
41114077
4112 const constituents = try gpa.alloc(IdRef, mask.len);
4078 const constituents = try gpa.alloc(Id, mask.len);
41134079 defer gpa.free(constituents);
41144080
41154081 for (constituents, mask) |*id, mask_elem| {
......@@ -4124,8 +4090,8 @@ const NavGen = struct {
41244090 return try ng.constructComposite(result_ty_id, constituents);
41254091 }
41264092
4127 fn indicesToIds(self: *NavGen, indices: []const u32) ![]IdRef {
4128 const ids = try self.gpa.alloc(IdRef, indices.len);
4093 fn indicesToIds(self: *NavGen, indices: []const u32) ![]Id {
4094 const ids = try self.gpa.alloc(Id, indices.len);
41294095 errdefer self.gpa.free(ids);
41304096 for (indices, ids) |index, *id| {
41314097 id.* = try self.constInt(Type.u32, index);
......@@ -4136,10 +4102,10 @@ const NavGen = struct {
41364102
41374103 fn accessChainId(
41384104 self: *NavGen,
4139 result_ty_id: IdRef,
4140 base: IdRef,
4141 indices: []const IdRef,
4142 ) !IdRef {
4105 result_ty_id: Id,
4106 base: Id,
4107 indices: []const Id,
4108 ) !Id {
41434109 const result_id = self.spv.allocId();
41444110 try self.func.body.emit(self.spv.gpa, .OpInBoundsAccessChain, .{
41454111 .id_result_type = result_ty_id,
......@@ -4156,10 +4122,10 @@ const NavGen = struct {
41564122 /// is the latter and PtrAccessChain is the former.
41574123 fn accessChain(
41584124 self: *NavGen,
4159 result_ty_id: IdRef,
4160 base: IdRef,
4125 result_ty_id: Id,
4126 base: Id,
41614127 indices: []const u32,
4162 ) !IdRef {
4128 ) !Id {
41634129 const ids = try self.indicesToIds(indices);
41644130 defer self.gpa.free(ids);
41654131 return try self.accessChainId(result_ty_id, base, ids);
......@@ -4167,11 +4133,11 @@ const NavGen = struct {
41674133
41684134 fn ptrAccessChain(
41694135 self: *NavGen,
4170 result_ty_id: IdRef,
4171 base: IdRef,
4172 element: IdRef,
4136 result_ty_id: Id,
4137 base: Id,
4138 element: Id,
41734139 indices: []const u32,
4174 ) !IdRef {
4140 ) !Id {
41754141 const ids = try self.indicesToIds(indices);
41764142 defer self.gpa.free(ids);
41774143
......@@ -4199,7 +4165,7 @@ const NavGen = struct {
41994165 return result_id;
42004166 }
42014167
4202 fn ptrAdd(self: *NavGen, result_ty: Type, ptr_ty: Type, ptr_id: IdRef, offset_id: IdRef) !IdRef {
4168 fn ptrAdd(self: *NavGen, result_ty: Type, ptr_ty: Type, ptr_id: Id, offset_id: Id) !Id {
42034169 const zcu = self.pt.zcu;
42044170 const result_ty_id = try self.resolveType(result_ty, .direct);
42054171
......@@ -4220,7 +4186,7 @@ const NavGen = struct {
42204186 }
42214187 }
42224188
4223 fn airPtrAdd(self: *NavGen, inst: Air.Inst.Index) !?IdRef {
4189 fn airPtrAdd(self: *NavGen, inst: Air.Inst.Index) !?Id {
42244190 const ty_pl = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_pl;
42254191 const bin_op = self.air.extraData(Air.Bin, ty_pl.payload).data;
42264192 const ptr_id = try self.resolve(bin_op.lhs);
......@@ -4231,7 +4197,7 @@ const NavGen = struct {
42314197 return try self.ptrAdd(result_ty, ptr_ty, ptr_id, offset_id);
42324198 }
42334199
4234 fn airPtrSub(self: *NavGen, inst: Air.Inst.Index) !?IdRef {
4200 fn airPtrSub(self: *NavGen, inst: Air.Inst.Index) !?Id {
42354201 const ty_pl = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_pl;
42364202 const bin_op = self.air.extraData(Air.Bin, ty_pl.payload).data;
42374203 const ptr_id = try self.resolve(bin_op.lhs);
......@@ -4427,7 +4393,7 @@ const NavGen = struct {
44274393 self: *NavGen,
44284394 inst: Air.Inst.Index,
44294395 comptime op: std.math.CompareOperator,
4430 ) !?IdRef {
4396 ) !?Id {
44314397 const bin_op = self.air.instructions.items(.data)[@intFromEnum(inst)].bin_op;
44324398 const lhs = try self.temporary(bin_op.lhs);
44334399 const rhs = try self.temporary(bin_op.rhs);
......@@ -4436,7 +4402,7 @@ const NavGen = struct {
44364402 return try result.materialize(self);
44374403 }
44384404
4439 fn airVectorCmp(self: *NavGen, inst: Air.Inst.Index) !?IdRef {
4405 fn airVectorCmp(self: *NavGen, inst: Air.Inst.Index) !?Id {
44404406 const ty_pl = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_pl;
44414407 const vec_cmp = self.air.extraData(Air.VectorCmp, ty_pl.payload).data;
44424408 const lhs = try self.temporary(vec_cmp.lhs);
......@@ -4452,8 +4418,8 @@ const NavGen = struct {
44524418 self: *NavGen,
44534419 dst_ty: Type,
44544420 src_ty: Type,
4455 src_id: IdRef,
4456 ) !IdRef {
4421 src_id: Id,
4422 ) !Id {
44574423 const zcu = self.pt.zcu;
44584424 const src_ty_id = try self.resolveType(src_ty, .direct);
44594425 const dst_ty_id = try self.resolveType(dst_ty, .direct);
......@@ -4489,9 +4455,9 @@ const NavGen = struct {
44894455 break :blk result_id;
44904456 }
44914457
4492 const dst_ptr_ty_id = try self.ptrType(dst_ty, .Function, .indirect);
4458 const dst_ptr_ty_id = try self.ptrType(dst_ty, .function, .indirect);
44934459
4494 const tmp_id = try self.alloc(src_ty, .{ .storage_class = .Function });
4460 const tmp_id = try self.alloc(src_ty, .{ .storage_class = .function });
44954461 try self.store(src_ty, tmp_id, src_id, .{});
44964462 const casted_ptr_id = self.spv.allocId();
44974463 try self.func.body.emit(self.spv.gpa, .OpBitcast, .{
......@@ -4515,7 +4481,7 @@ const NavGen = struct {
45154481 return result_id;
45164482 }
45174483
4518 fn airBitCast(self: *NavGen, inst: Air.Inst.Index) !?IdRef {
4484 fn airBitCast(self: *NavGen, inst: Air.Inst.Index) !?Id {
45194485 const ty_op = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_op;
45204486 const operand_ty = self.typeOf(ty_op.operand);
45214487 const result_ty = self.typeOfIndex(inst);
......@@ -4528,7 +4494,7 @@ const NavGen = struct {
45284494 return try self.bitCast(result_ty, operand_ty, operand_id);
45294495 }
45304496
4531 fn airIntCast(self: *NavGen, inst: Air.Inst.Index) !?IdRef {
4497 fn airIntCast(self: *NavGen, inst: Air.Inst.Index) !?Id {
45324498 const ty_op = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_op;
45334499 const src = try self.temporary(ty_op.operand);
45344500 const dst_ty = self.typeOfIndex(inst);
......@@ -4554,7 +4520,7 @@ const NavGen = struct {
45544520 return try result.materialize(self);
45554521 }
45564522
4557 fn intFromPtr(self: *NavGen, operand_id: IdRef) !IdRef {
4523 fn intFromPtr(self: *NavGen, operand_id: Id) !Id {
45584524 const result_type_id = try self.resolveType(Type.usize, .direct);
45594525 const result_id = self.spv.allocId();
45604526 try self.func.body.emit(self.spv.gpa, .OpConvertPtrToU, .{
......@@ -4565,7 +4531,7 @@ const NavGen = struct {
45654531 return result_id;
45664532 }
45674533
4568 fn airFloatFromInt(self: *NavGen, inst: Air.Inst.Index) !?IdRef {
4534 fn airFloatFromInt(self: *NavGen, inst: Air.Inst.Index) !?Id {
45694535 const ty_op = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_op;
45704536 const operand_ty = self.typeOf(ty_op.operand);
45714537 const operand_id = try self.resolve(ty_op.operand);
......@@ -4573,7 +4539,7 @@ const NavGen = struct {
45734539 return try self.floatFromInt(result_ty, operand_ty, operand_id);
45744540 }
45754541
4576 fn floatFromInt(self: *NavGen, result_ty: Type, operand_ty: Type, operand_id: IdRef) !IdRef {
4542 fn floatFromInt(self: *NavGen, result_ty: Type, operand_ty: Type, operand_id: Id) !Id {
45774543 const operand_info = self.arithmeticTypeInfo(operand_ty);
45784544 const result_id = self.spv.allocId();
45794545 const result_ty_id = try self.resolveType(result_ty, .direct);
......@@ -4592,14 +4558,14 @@ const NavGen = struct {
45924558 return result_id;
45934559 }
45944560
4595 fn airIntFromFloat(self: *NavGen, inst: Air.Inst.Index) !?IdRef {
4561 fn airIntFromFloat(self: *NavGen, inst: Air.Inst.Index) !?Id {
45964562 const ty_op = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_op;
45974563 const operand_id = try self.resolve(ty_op.operand);
45984564 const result_ty = self.typeOfIndex(inst);
45994565 return try self.intFromFloat(result_ty, operand_id);
46004566 }
46014567
4602 fn intFromFloat(self: *NavGen, result_ty: Type, operand_id: IdRef) !IdRef {
4568 fn intFromFloat(self: *NavGen, result_ty: Type, operand_id: Id) !Id {
46034569 const result_info = self.arithmeticTypeInfo(result_ty);
46044570 const result_ty_id = try self.resolveType(result_ty, .direct);
46054571 const result_id = self.spv.allocId();
......@@ -4618,7 +4584,7 @@ const NavGen = struct {
46184584 return result_id;
46194585 }
46204586
4621 fn airFloatCast(self: *NavGen, inst: Air.Inst.Index) !?IdRef {
4587 fn airFloatCast(self: *NavGen, inst: Air.Inst.Index) !?Id {
46224588 const ty_op = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_op;
46234589 const operand = try self.temporary(ty_op.operand);
46244590 const dest_ty = self.typeOfIndex(inst);
......@@ -4626,7 +4592,7 @@ const NavGen = struct {
46264592 return try result.materialize(self);
46274593 }
46284594
4629 fn airNot(self: *NavGen, inst: Air.Inst.Index) !?IdRef {
4595 fn airNot(self: *NavGen, inst: Air.Inst.Index) !?Id {
46304596 const ty_op = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_op;
46314597 const operand = try self.temporary(ty_op.operand);
46324598 const result_ty = self.typeOfIndex(inst);
......@@ -4645,7 +4611,7 @@ const NavGen = struct {
46454611 return try result.materialize(self);
46464612 }
46474613
4648 fn airArrayToSlice(self: *NavGen, inst: Air.Inst.Index) !?IdRef {
4614 fn airArrayToSlice(self: *NavGen, inst: Air.Inst.Index) !?Id {
46494615 const pt = self.pt;
46504616 const zcu = pt.zcu;
46514617 const ty_op = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_op;
......@@ -4670,7 +4636,7 @@ const NavGen = struct {
46704636 return try self.constructComposite(slice_ty_id, &.{ elem_ptr_id, len_id });
46714637 }
46724638
4673 fn airSlice(self: *NavGen, inst: Air.Inst.Index) !?IdRef {
4639 fn airSlice(self: *NavGen, inst: Air.Inst.Index) !?Id {
46744640 const ty_pl = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_pl;
46754641 const bin_op = self.air.extraData(Air.Bin, ty_pl.payload).data;
46764642 const ptr_id = try self.resolve(bin_op.lhs);
......@@ -4680,7 +4646,7 @@ const NavGen = struct {
46804646 return try self.constructComposite(slice_ty_id, &.{ ptr_id, len_id });
46814647 }
46824648
4683 fn airAggregateInit(self: *NavGen, inst: Air.Inst.Index) !?IdRef {
4649 fn airAggregateInit(self: *NavGen, inst: Air.Inst.Index) !?Id {
46844650 const pt = self.pt;
46854651 const zcu = pt.zcu;
46864652 const ip = &zcu.intern_pool;
......@@ -4732,7 +4698,7 @@ const NavGen = struct {
47324698
47334699 const types = try self.gpa.alloc(Type, elements.len);
47344700 defer self.gpa.free(types);
4735 const constituents = try self.gpa.alloc(IdRef, elements.len);
4701 const constituents = try self.gpa.alloc(Id, elements.len);
47364702 defer self.gpa.free(constituents);
47374703 var index: usize = 0;
47384704
......@@ -4771,7 +4737,7 @@ const NavGen = struct {
47714737 },
47724738 .vector => {
47734739 const n_elems = result_ty.vectorLen(zcu);
4774 const elem_ids = try self.gpa.alloc(IdRef, n_elems);
4740 const elem_ids = try self.gpa.alloc(Id, n_elems);
47754741 defer self.gpa.free(elem_ids);
47764742
47774743 for (elements, 0..) |element, i| {
......@@ -4784,7 +4750,7 @@ const NavGen = struct {
47844750 .array => {
47854751 const array_info = result_ty.arrayInfo(zcu);
47864752 const n_elems: usize = @intCast(result_ty.arrayLenIncludingSentinel(zcu));
4787 const elem_ids = try self.gpa.alloc(IdRef, n_elems);
4753 const elem_ids = try self.gpa.alloc(Id, n_elems);
47884754 defer self.gpa.free(elem_ids);
47894755
47904756 for (elements, 0..) |element, i| {
......@@ -4803,7 +4769,7 @@ const NavGen = struct {
48034769 }
48044770 }
48054771
4806 fn sliceOrArrayLen(self: *NavGen, operand_id: IdRef, ty: Type) !IdRef {
4772 fn sliceOrArrayLen(self: *NavGen, operand_id: Id, ty: Type) !Id {
48074773 const pt = self.pt;
48084774 const zcu = pt.zcu;
48094775 switch (ty.ptrSize(zcu)) {
......@@ -4819,7 +4785,7 @@ const NavGen = struct {
48194785 }
48204786 }
48214787
4822 fn sliceOrArrayPtr(self: *NavGen, operand_id: IdRef, ty: Type) !IdRef {
4788 fn sliceOrArrayPtr(self: *NavGen, operand_id: Id, ty: Type) !Id {
48234789 const zcu = self.pt.zcu;
48244790 if (ty.isSlice(zcu)) {
48254791 const ptr_ty = ty.slicePtrFieldType(zcu);
......@@ -4849,14 +4815,14 @@ const NavGen = struct {
48494815 return self.fail("TODO implement airMemcpy for spirv", .{});
48504816 }
48514817
4852 fn airSliceField(self: *NavGen, inst: Air.Inst.Index, field: u32) !?IdRef {
4818 fn airSliceField(self: *NavGen, inst: Air.Inst.Index, field: u32) !?Id {
48534819 const ty_op = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_op;
48544820 const field_ty = self.typeOfIndex(inst);
48554821 const operand_id = try self.resolve(ty_op.operand);
48564822 return try self.extractField(field_ty, operand_id, field);
48574823 }
48584824
4859 fn airSliceElemPtr(self: *NavGen, inst: Air.Inst.Index) !?IdRef {
4825 fn airSliceElemPtr(self: *NavGen, inst: Air.Inst.Index) !?Id {
48604826 const zcu = self.pt.zcu;
48614827 const ty_pl = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_pl;
48624828 const bin_op = self.air.extraData(Air.Bin, ty_pl.payload).data;
......@@ -4873,7 +4839,7 @@ const NavGen = struct {
48734839 return try self.ptrAccessChain(ptr_ty_id, slice_ptr, index_id, &.{});
48744840 }
48754841
4876 fn airSliceElemVal(self: *NavGen, inst: Air.Inst.Index) !?IdRef {
4842 fn airSliceElemVal(self: *NavGen, inst: Air.Inst.Index) !?Id {
48774843 const zcu = self.pt.zcu;
48784844 const bin_op = self.air.instructions.items(.data)[@intFromEnum(inst)].bin_op;
48794845 const slice_ty = self.typeOf(bin_op.lhs);
......@@ -4890,7 +4856,7 @@ const NavGen = struct {
48904856 return try self.load(slice_ty.childType(zcu), elem_ptr, .{ .is_volatile = slice_ty.isVolatilePtr(zcu) });
48914857 }
48924858
4893 fn ptrElemPtr(self: *NavGen, ptr_ty: Type, ptr_id: IdRef, index_id: IdRef) !IdRef {
4859 fn ptrElemPtr(self: *NavGen, ptr_ty: Type, ptr_id: Id, index_id: Id) !Id {
48944860 const zcu = self.pt.zcu;
48954861 // Construct new pointer type for the resulting pointer
48964862 const elem_ty = ptr_ty.elemType2(zcu); // use elemType() so that we get T for *[N]T.
......@@ -4905,7 +4871,7 @@ const NavGen = struct {
49054871 }
49064872 }
49074873
4908 fn airPtrElemPtr(self: *NavGen, inst: Air.Inst.Index) !?IdRef {
4874 fn airPtrElemPtr(self: *NavGen, inst: Air.Inst.Index) !?Id {
49094875 const pt = self.pt;
49104876 const zcu = pt.zcu;
49114877 const ty_pl = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_pl;
......@@ -4923,7 +4889,7 @@ const NavGen = struct {
49234889 return try self.ptrElemPtr(src_ptr_ty, ptr_id, index_id);
49244890 }
49254891
4926 fn airArrayElemVal(self: *NavGen, inst: Air.Inst.Index) !?IdRef {
4892 fn airArrayElemVal(self: *NavGen, inst: Air.Inst.Index) !?Id {
49274893 const zcu = self.pt.zcu;
49284894 const bin_op = self.air.instructions.items(.data)[@intFromEnum(inst)].bin_op;
49294895 const array_ty = self.typeOf(bin_op.lhs);
......@@ -4938,14 +4904,14 @@ const NavGen = struct {
49384904 const is_vector = array_ty.isVector(zcu);
49394905
49404906 const elem_repr: Repr = if (is_vector) .direct else .indirect;
4941 const ptr_array_ty_id = try self.ptrType(array_ty, .Function, .direct);
4942 const ptr_elem_ty_id = try self.ptrType(elem_ty, .Function, elem_repr);
4907 const ptr_array_ty_id = try self.ptrType(array_ty, .function, .direct);
4908 const ptr_elem_ty_id = try self.ptrType(elem_ty, .function, elem_repr);
49434909
49444910 const tmp_id = self.spv.allocId();
49454911 try self.func.prologue.emit(self.spv.gpa, .OpVariable, .{
49464912 .id_result_type = ptr_array_ty_id,
49474913 .id_result = tmp_id,
4948 .storage_class = .Function,
4914 .storage_class = .function,
49494915 });
49504916
49514917 try self.func.body.emit(self.spv.gpa, .OpStore, .{
......@@ -4973,7 +4939,7 @@ const NavGen = struct {
49734939 return try self.convertToDirect(elem_ty, result_id);
49744940 }
49754941
4976 fn airPtrElemVal(self: *NavGen, inst: Air.Inst.Index) !?IdRef {
4942 fn airPtrElemVal(self: *NavGen, inst: Air.Inst.Index) !?Id {
49774943 const zcu = self.pt.zcu;
49784944 const bin_op = self.air.instructions.items(.data)[@intFromEnum(inst)].bin_op;
49794945 const ptr_ty = self.typeOf(bin_op.lhs);
......@@ -5029,7 +4995,7 @@ const NavGen = struct {
50294995 }
50304996 }
50314997
5032 fn airGetUnionTag(self: *NavGen, inst: Air.Inst.Index) !?IdRef {
4998 fn airGetUnionTag(self: *NavGen, inst: Air.Inst.Index) !?Id {
50334999 const ty_op = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_op;
50345000 const un_ty = self.typeOf(ty_op.operand);
50355001
......@@ -5048,8 +5014,8 @@ const NavGen = struct {
50485014 self: *NavGen,
50495015 ty: Type,
50505016 active_field: u32,
5051 payload: ?IdRef,
5052 ) !IdRef {
5017 payload: ?Id,
5018 ) !Id {
50535019 // To initialize a union, generate a temporary variable with the
50545020 // union type, then get the field pointer and pointer-cast it to the
50555021 // right type to store it. Finally load the entire union.
......@@ -5100,20 +5066,20 @@ const NavGen = struct {
51005066 return try self.constInt(tag_ty, tag_int);
51015067 }
51025068
5103 const tmp_id = try self.alloc(ty, .{ .storage_class = .Function });
5069 const tmp_id = try self.alloc(ty, .{ .storage_class = .function });
51045070
51055071 if (layout.tag_size != 0) {
5106 const tag_ptr_ty_id = try self.ptrType(tag_ty, .Function, .indirect);
5072 const tag_ptr_ty_id = try self.ptrType(tag_ty, .function, .indirect);
51075073 const ptr_id = try self.accessChain(tag_ptr_ty_id, tmp_id, &.{@as(u32, @intCast(layout.tag_index))});
51085074 const tag_id = try self.constInt(tag_ty, tag_int);
51095075 try self.store(tag_ty, ptr_id, tag_id, .{});
51105076 }
51115077
51125078 if (payload_ty.hasRuntimeBitsIgnoreComptime(zcu)) {
5113 const pl_ptr_ty_id = try self.ptrType(layout.payload_ty, .Function, .indirect);
5079 const pl_ptr_ty_id = try self.ptrType(layout.payload_ty, .function, .indirect);
51145080 const pl_ptr_id = try self.accessChain(pl_ptr_ty_id, tmp_id, &.{layout.payload_index});
51155081 const active_pl_ptr_id = if (!layout.payload_ty.eql(payload_ty, zcu)) blk: {
5116 const active_pl_ptr_ty_id = try self.ptrType(payload_ty, .Function, .indirect);
5082 const active_pl_ptr_ty_id = try self.ptrType(payload_ty, .function, .indirect);
51175083 const active_pl_ptr_id = self.spv.allocId();
51185084 try self.func.body.emit(self.spv.gpa, .OpBitcast, .{
51195085 .id_result_type = active_pl_ptr_ty_id,
......@@ -5134,7 +5100,7 @@ const NavGen = struct {
51345100 return try self.load(ty, tmp_id, .{});
51355101 }
51365102
5137 fn airUnionInit(self: *NavGen, inst: Air.Inst.Index) !?IdRef {
5103 fn airUnionInit(self: *NavGen, inst: Air.Inst.Index) !?Id {
51385104 const pt = self.pt;
51395105 const zcu = pt.zcu;
51405106 const ip = &zcu.intern_pool;
......@@ -5151,7 +5117,7 @@ const NavGen = struct {
51515117 return try self.unionInit(ty, extra.field_index, payload);
51525118 }
51535119
5154 fn airStructFieldVal(self: *NavGen, inst: Air.Inst.Index) !?IdRef {
5120 fn airStructFieldVal(self: *NavGen, inst: Air.Inst.Index) !?Id {
51555121 const pt = self.pt;
51565122 const zcu = pt.zcu;
51575123 const ty_pl = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_pl;
......@@ -5216,13 +5182,13 @@ const NavGen = struct {
52165182 const layout = self.unionLayout(object_ty);
52175183 assert(layout.has_payload);
52185184
5219 const tmp_id = try self.alloc(object_ty, .{ .storage_class = .Function });
5185 const tmp_id = try self.alloc(object_ty, .{ .storage_class = .function });
52205186 try self.store(object_ty, tmp_id, object_id, .{});
52215187
5222 const pl_ptr_ty_id = try self.ptrType(layout.payload_ty, .Function, .indirect);
5188 const pl_ptr_ty_id = try self.ptrType(layout.payload_ty, .function, .indirect);
52235189 const pl_ptr_id = try self.accessChain(pl_ptr_ty_id, tmp_id, &.{layout.payload_index});
52245190
5225 const active_pl_ptr_ty_id = try self.ptrType(field_ty, .Function, .indirect);
5191 const active_pl_ptr_ty_id = try self.ptrType(field_ty, .function, .indirect);
52265192 const active_pl_ptr_id = self.spv.allocId();
52275193 try self.func.body.emit(self.spv.gpa, .OpBitcast, .{
52285194 .id_result_type = active_pl_ptr_ty_id,
......@@ -5236,7 +5202,7 @@ const NavGen = struct {
52365202 }
52375203 }
52385204
5239 fn airFieldParentPtr(self: *NavGen, inst: Air.Inst.Index) !?IdRef {
5205 fn airFieldParentPtr(self: *NavGen, inst: Air.Inst.Index) !?Id {
52405206 const pt = self.pt;
52415207 const zcu = pt.zcu;
52425208 const ty_pl = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_pl;
......@@ -5273,9 +5239,9 @@ const NavGen = struct {
52735239 self: *NavGen,
52745240 result_ptr_ty: Type,
52755241 object_ptr_ty: Type,
5276 object_ptr: IdRef,
5242 object_ptr: Id,
52775243 field_index: u32,
5278 ) !IdRef {
5244 ) !Id {
52795245 const result_ty_id = try self.resolveType(result_ptr_ty, .direct);
52805246
52815247 const zcu = self.pt.zcu;
......@@ -5318,7 +5284,7 @@ const NavGen = struct {
53185284 }
53195285 }
53205286
5321 fn airStructFieldPtrIndex(self: *NavGen, inst: Air.Inst.Index, field_index: u32) !?IdRef {
5287 fn airStructFieldPtrIndex(self: *NavGen, inst: Air.Inst.Index, field_index: u32) !?Id {
53225288 const ty_op = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_op;
53235289 const struct_ptr = try self.resolve(ty_op.operand);
53245290 const struct_ptr_ty = self.typeOf(ty_op.operand);
......@@ -5327,7 +5293,7 @@ const NavGen = struct {
53275293 }
53285294
53295295 const AllocOptions = struct {
5330 initializer: ?IdRef = null,
5296 initializer: ?Id = null,
53315297 /// The final storage class of the pointer. This may be either `.Generic` or `.Function`.
53325298 /// In either case, the local is allocated in the `.Function` storage class, and optionally
53335299 /// cast back to `.Generic`.
......@@ -5342,8 +5308,8 @@ const NavGen = struct {
53425308 self: *NavGen,
53435309 ty: Type,
53445310 options: AllocOptions,
5345 ) !IdRef {
5346 const ptr_fn_ty_id = try self.ptrType(ty, .Function, .indirect);
5311 ) !Id {
5312 const ptr_fn_ty_id = try self.ptrType(ty, .function, .indirect);
53475313
53485314 // SPIR-V requires that OpVariable declarations for locals go into the first block, so we are just going to
53495315 // directly generate them into func.prologue instead of the body.
......@@ -5351,7 +5317,7 @@ const NavGen = struct {
53515317 try self.func.prologue.emit(self.spv.gpa, .OpVariable, .{
53525318 .id_result_type = ptr_fn_ty_id,
53535319 .id_result = var_id,
5354 .storage_class = .Function,
5320 .storage_class = .function,
53555321 .initializer = options.initializer,
53565322 });
53575323
......@@ -5361,17 +5327,17 @@ const NavGen = struct {
53615327 }
53625328
53635329 switch (options.storage_class) {
5364 .Generic => {
5365 const ptr_gn_ty_id = try self.ptrType(ty, .Generic, .indirect);
5330 .generic => {
5331 const ptr_gn_ty_id = try self.ptrType(ty, .generic, .indirect);
53665332 // Convert to a generic pointer
53675333 return self.castToGeneric(ptr_gn_ty_id, var_id);
53685334 },
5369 .Function => return var_id,
5335 .function => return var_id,
53705336 else => unreachable,
53715337 }
53725338 }
53735339
5374 fn airAlloc(self: *NavGen, inst: Air.Inst.Index) !?IdRef {
5340 fn airAlloc(self: *NavGen, inst: Air.Inst.Index) !?Id {
53755341 const zcu = self.pt.zcu;
53765342 const ptr_ty = self.typeOfIndex(inst);
53775343 const child_ty = ptr_ty.childType(zcu);
......@@ -5380,7 +5346,7 @@ const NavGen = struct {
53805346 });
53815347 }
53825348
5383 fn airArg(self: *NavGen) IdRef {
5349 fn airArg(self: *NavGen) Id {
53845350 defer self.next_arg_index += 1;
53855351 return self.args.items[self.next_arg_index];
53865352 }
......@@ -5389,14 +5355,14 @@ const NavGen = struct {
53895355 /// block to jump to. This function emits instructions, so it should be emitted
53905356 /// inside the merge block of the block.
53915357 /// This function should only be called with structured control flow generation.
5392 fn structuredNextBlock(self: *NavGen, incoming: []const ControlFlow.Structured.Block.Incoming) !IdRef {
5358 fn structuredNextBlock(self: *NavGen, incoming: []const ControlFlow.Structured.Block.Incoming) !Id {
53935359 assert(self.control_flow == .structured);
53945360
53955361 const result_id = self.spv.allocId();
53965362 const block_id_ty_id = try self.resolveType(Type.u32, .direct);
53975363 try self.func.body.emitRaw(self.spv.gpa, .OpPhi, @intCast(2 + incoming.len * 2)); // result type + result + variable/parent...
5398 self.func.body.writeOperand(spec.IdResultType, block_id_ty_id);
5399 self.func.body.writeOperand(spec.IdRef, result_id);
5364 self.func.body.writeOperand(spec.Id, block_id_ty_id);
5365 self.func.body.writeOperand(spec.Id, result_id);
54005366
54015367 for (incoming) |incoming_block| {
54025368 self.func.body.writeOperand(spec.PairIdRefIdRef, .{ incoming_block.next_block, incoming_block.src_label });
......@@ -5408,7 +5374,7 @@ const NavGen = struct {
54085374 /// Jumps to the block with the target block-id. This function must only be called when
54095375 /// terminating a body, there should be no instructions after it.
54105376 /// This function should only be called with structured control flow generation.
5411 fn structuredBreak(self: *NavGen, target_block: IdRef) !void {
5377 fn structuredBreak(self: *NavGen, target_block: Id) !void {
54125378 assert(self.control_flow == .structured);
54135379
54145380 const sblock = self.control_flow.structured.block_stack.getLast();
......@@ -5448,12 +5414,12 @@ const NavGen = struct {
54485414 /// Using loops; loops can be early exited by jumping to the merge block at
54495415 /// any time.
54505416 loop: struct {
5451 merge_label: IdRef,
5452 continue_label: IdRef,
5417 merge_label: Id,
5418 continue_label: Id,
54535419 },
54545420 },
54555421 body: []const Air.Inst.Index,
5456 ) !IdRef {
5422 ) !Id {
54575423 assert(self.control_flow == .structured);
54585424
54595425 var sblock: ControlFlow.Structured.Block = switch (block_merge_type) {
......@@ -5533,13 +5499,13 @@ const NavGen = struct {
55335499 }
55345500 }
55355501
5536 fn airBlock(self: *NavGen, inst: Air.Inst.Index) !?IdRef {
5502 fn airBlock(self: *NavGen, inst: Air.Inst.Index) !?Id {
55375503 const inst_datas = self.air.instructions.items(.data);
55385504 const extra = self.air.extraData(Air.Block, inst_datas[@intFromEnum(inst)].ty_pl.payload);
55395505 return self.lowerBlock(inst, @ptrCast(self.air.extra.items[extra.end..][0..extra.data.body_len]));
55405506 }
55415507
5542 fn lowerBlock(self: *NavGen, inst: Air.Inst.Index, body: []const Air.Inst.Index) !?IdRef {
5508 fn lowerBlock(self: *NavGen, inst: Air.Inst.Index, body: []const Air.Inst.Index) !?Id {
55435509 // In AIR, a block doesn't really define an entry point like a block, but
55445510 // more like a scope that breaks can jump out of and "return" a value from.
55455511 // This cannot be directly modelled in SPIR-V, so in a block instruction,
......@@ -5584,8 +5550,8 @@ const NavGen = struct {
55845550 // result type + result + variable/parent...
55855551 2 + @as(u16, @intCast(block.incoming_blocks.items.len * 2)),
55865552 );
5587 self.func.body.writeOperand(spec.IdResultType, result_type_id);
5588 self.func.body.writeOperand(spec.IdRef, result_id);
5553 self.func.body.writeOperand(spec.Id, result_type_id);
5554 self.func.body.writeOperand(spec.Id, result_id);
55895555
55905556 for (block.incoming_blocks.items) |incoming| {
55915557 self.func.body.writeOperand(
......@@ -5599,7 +5565,7 @@ const NavGen = struct {
55995565 };
56005566
56015567 const maybe_block_result_var_id = if (have_block_result) blk: {
5602 const block_result_var_id = try self.alloc(ty, .{ .storage_class = .Function });
5568 const block_result_var_id = try self.alloc(ty, .{ .storage_class = .function });
56035569 try cf.block_results.putNoClobber(self.gpa, inst, block_result_var_id);
56045570 break :blk block_result_var_id;
56055571 } else null;
......@@ -5823,7 +5789,7 @@ const NavGen = struct {
58235789 }
58245790 }
58255791
5826 fn airLoad(self: *NavGen, inst: Air.Inst.Index) !?IdRef {
5792 fn airLoad(self: *NavGen, inst: Air.Inst.Index) !?Id {
58275793 const zcu = self.pt.zcu;
58285794 const ty_op = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_op;
58295795 const ptr_ty = self.typeOf(ty_op.operand);
......@@ -5894,7 +5860,7 @@ const NavGen = struct {
58945860 });
58955861 }
58965862
5897 fn airTry(self: *NavGen, inst: Air.Inst.Index) !?IdRef {
5863 fn airTry(self: *NavGen, inst: Air.Inst.Index) !?Id {
58985864 const zcu = self.pt.zcu;
58995865 const pl_op = self.air.instructions.items(.data)[@intFromEnum(inst)].pl_op;
59005866 const err_union_id = try self.resolve(pl_op.operand);
......@@ -5964,7 +5930,7 @@ const NavGen = struct {
59645930 return try self.extractField(payload_ty, err_union_id, eu_layout.payloadFieldIndex());
59655931 }
59665932
5967 fn airErrUnionErr(self: *NavGen, inst: Air.Inst.Index) !?IdRef {
5933 fn airErrUnionErr(self: *NavGen, inst: Air.Inst.Index) !?Id {
59685934 const zcu = self.pt.zcu;
59695935 const ty_op = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_op;
59705936 const operand_id = try self.resolve(ty_op.operand);
......@@ -5987,7 +5953,7 @@ const NavGen = struct {
59875953 return try self.extractField(Type.anyerror, operand_id, eu_layout.errorFieldIndex());
59885954 }
59895955
5990 fn airErrUnionPayload(self: *NavGen, inst: Air.Inst.Index) !?IdRef {
5956 fn airErrUnionPayload(self: *NavGen, inst: Air.Inst.Index) !?Id {
59915957 const ty_op = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_op;
59925958 const operand_id = try self.resolve(ty_op.operand);
59935959 const payload_ty = self.typeOfIndex(inst);
......@@ -6000,7 +5966,7 @@ const NavGen = struct {
60005966 return try self.extractField(payload_ty, operand_id, eu_layout.payloadFieldIndex());
60015967 }
60025968
6003 fn airWrapErrUnionErr(self: *NavGen, inst: Air.Inst.Index) !?IdRef {
5969 fn airWrapErrUnionErr(self: *NavGen, inst: Air.Inst.Index) !?Id {
60045970 const zcu = self.pt.zcu;
60055971 const ty_op = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_op;
60065972 const err_union_ty = self.typeOfIndex(inst);
......@@ -6014,7 +5980,7 @@ const NavGen = struct {
60145980
60155981 const payload_ty_id = try self.resolveType(payload_ty, .indirect);
60165982
6017 var members: [2]IdRef = undefined;
5983 var members: [2]Id = undefined;
60185984 members[eu_layout.errorFieldIndex()] = operand_id;
60195985 members[eu_layout.payloadFieldIndex()] = try self.spv.constUndef(payload_ty_id);
60205986
......@@ -6026,7 +5992,7 @@ const NavGen = struct {
60265992 return try self.constructComposite(err_union_ty_id, &members);
60275993 }
60285994
6029 fn airWrapErrUnionPayload(self: *NavGen, inst: Air.Inst.Index) !?IdRef {
5995 fn airWrapErrUnionPayload(self: *NavGen, inst: Air.Inst.Index) !?Id {
60305996 const ty_op = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_op;
60315997 const err_union_ty = self.typeOfIndex(inst);
60325998 const operand_id = try self.resolve(ty_op.operand);
......@@ -6037,7 +6003,7 @@ const NavGen = struct {
60376003 return try self.constInt(Type.anyerror, 0);
60386004 }
60396005
6040 var members: [2]IdRef = undefined;
6006 var members: [2]Id = undefined;
60416007 members[eu_layout.errorFieldIndex()] = try self.constInt(Type.anyerror, 0);
60426008 members[eu_layout.payloadFieldIndex()] = try self.convertToIndirect(payload_ty, operand_id);
60436009
......@@ -6049,7 +6015,7 @@ const NavGen = struct {
60496015 return try self.constructComposite(err_union_ty_id, &members);
60506016 }
60516017
6052 fn airIsNull(self: *NavGen, inst: Air.Inst.Index, is_pointer: bool, pred: enum { is_null, is_non_null }) !?IdRef {
6018 fn airIsNull(self: *NavGen, inst: Air.Inst.Index, is_pointer: bool, pred: enum { is_null, is_non_null }) !?Id {
60536019 const pt = self.pt;
60546020 const zcu = pt.zcu;
60556021 const un_op = self.air.instructions.items(.data)[@intFromEnum(inst)].un_op;
......@@ -6126,7 +6092,7 @@ const NavGen = struct {
61266092 };
61276093 }
61286094
6129 fn airIsErr(self: *NavGen, inst: Air.Inst.Index, pred: enum { is_err, is_non_err }) !?IdRef {
6095 fn airIsErr(self: *NavGen, inst: Air.Inst.Index, pred: enum { is_err, is_non_err }) !?Id {
61306096 const zcu = self.pt.zcu;
61316097 const un_op = self.air.instructions.items(.data)[@intFromEnum(inst)].un_op;
61326098 const operand_id = try self.resolve(un_op);
......@@ -6164,7 +6130,7 @@ const NavGen = struct {
61646130 return result_id;
61656131 }
61666132
6167 fn airUnwrapOptional(self: *NavGen, inst: Air.Inst.Index) !?IdRef {
6133 fn airUnwrapOptional(self: *NavGen, inst: Air.Inst.Index) !?Id {
61686134 const pt = self.pt;
61696135 const zcu = pt.zcu;
61706136 const ty_op = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_op;
......@@ -6181,7 +6147,7 @@ const NavGen = struct {
61816147 return try self.extractField(payload_ty, operand_id, 0);
61826148 }
61836149
6184 fn airUnwrapOptionalPtr(self: *NavGen, inst: Air.Inst.Index) !?IdRef {
6150 fn airUnwrapOptionalPtr(self: *NavGen, inst: Air.Inst.Index) !?Id {
61856151 const pt = self.pt;
61866152 const zcu = pt.zcu;
61876153 const ty_op = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_op;
......@@ -6206,7 +6172,7 @@ const NavGen = struct {
62066172 return try self.accessChain(result_ty_id, operand_id, &.{0});
62076173 }
62086174
6209 fn airWrapOptional(self: *NavGen, inst: Air.Inst.Index) !?IdRef {
6175 fn airWrapOptional(self: *NavGen, inst: Air.Inst.Index) !?Id {
62106176 const pt = self.pt;
62116177 const zcu = pt.zcu;
62126178 const ty_op = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_op;
......@@ -6224,7 +6190,7 @@ const NavGen = struct {
62246190 }
62256191
62266192 const payload_id = try self.convertToIndirect(payload_ty, operand_id);
6227 const members = [_]IdRef{ payload_id, try self.constBool(true, .indirect) };
6193 const members = [_]Id{ payload_id, try self.constBool(true, .indirect) };
62286194 const optional_ty_id = try self.resolveType(optional_ty, .direct);
62296195 return try self.constructComposite(optional_ty_id, &members);
62306196 }
......@@ -6294,8 +6260,8 @@ const NavGen = struct {
62946260
62956261 // Emit the instruction before generating the blocks.
62966262 try self.func.body.emitRaw(self.spv.gpa, .OpSwitch, 2 + (cond_words + 1) * num_conditions);
6297 self.func.body.writeOperand(IdRef, cond_indirect);
6298 self.func.body.writeOperand(IdRef, default);
6263 self.func.body.writeOperand(Id, cond_indirect);
6264 self.func.body.writeOperand(Id, default);
62996265
63006266 // Emit each of the cases
63016267 {
......@@ -6322,7 +6288,7 @@ const NavGen = struct {
63226288 else => unreachable,
63236289 };
63246290 self.func.body.writeOperand(spec.LiteralContextDependentNumber, int_lit);
6325 self.func.body.writeOperand(IdRef, label);
6291 self.func.body.writeOperand(Id, label);
63266292 }
63276293 }
63286294 }
......@@ -6399,7 +6365,7 @@ const NavGen = struct {
63996365 });
64006366 }
64016367
6402 fn airDbgInlineBlock(self: *NavGen, inst: Air.Inst.Index) !?IdRef {
6368 fn airDbgInlineBlock(self: *NavGen, inst: Air.Inst.Index) !?Id {
64036369 const zcu = self.pt.zcu;
64046370 const inst_datas = self.air.instructions.items(.data);
64056371 const extra = self.air.extraData(Air.DbgInlineBlock, inst_datas[@intFromEnum(inst)].ty_pl.payload);
......@@ -6416,7 +6382,7 @@ const NavGen = struct {
64166382 try self.spv.debugName(target_id, name.toSlice(self.air));
64176383 }
64186384
6419 fn airAssembly(self: *NavGen, inst: Air.Inst.Index) !?IdRef {
6385 fn airAssembly(self: *NavGen, inst: Air.Inst.Index) !?Id {
64206386 const zcu = self.pt.zcu;
64216387 const ty_pl = self.air.instructions.items(.data)[@intFromEnum(inst)].ty_pl;
64226388 const extra = self.air.extraData(Air.Asm, ty_pl.payload);
......@@ -6586,7 +6552,7 @@ const NavGen = struct {
65866552 return null;
65876553 }
65886554
6589 fn airCall(self: *NavGen, inst: Air.Inst.Index, modifier: std.builtin.CallModifier) !?IdRef {
6555 fn airCall(self: *NavGen, inst: Air.Inst.Index, modifier: std.builtin.CallModifier) !?Id {
65906556 _ = modifier;
65916557
65926558 const pt = self.pt;
......@@ -6608,7 +6574,7 @@ const NavGen = struct {
66086574 const callee_id = try self.resolve(pl_op.operand);
66096575
66106576 comptime assert(zig_call_abi_ver == 3);
6611 const params = try self.gpa.alloc(spec.IdRef, args.len);
6577 const params = try self.gpa.alloc(spec.Id, args.len);
66126578 defer self.gpa.free(params);
66136579 var n_params: usize = 0;
66146580 for (args) |arg| {
......@@ -6637,7 +6603,7 @@ const NavGen = struct {
66376603 return result_id;
66386604 }
66396605
6640 fn builtin3D(self: *NavGen, result_ty: Type, builtin: spec.BuiltIn, dimension: u32, out_of_range_value: anytype) !IdRef {
6606 fn builtin3D(self: *NavGen, result_ty: Type, builtin: spec.BuiltIn, dimension: u32, out_of_range_value: anytype) !Id {
66416607 if (dimension >= 3) {
66426608 return try self.constInt(result_ty, out_of_range_value);
66436609 }
......@@ -6645,7 +6611,7 @@ const NavGen = struct {
66456611 .len = 3,
66466612 .child = result_ty.toIntern(),
66476613 });
6648 const ptr_ty_id = try self.ptrType(vec_ty, .Input, .indirect);
6614 const ptr_ty_id = try self.ptrType(vec_ty, .input, .indirect);
66496615 const spv_decl_index = try self.spv.builtin(ptr_ty_id, builtin);
66506616 try self.func.decl_deps.put(self.spv.gpa, spv_decl_index, {});
66516617 const ptr = self.spv.declPtr(spv_decl_index).result_id;
......@@ -6653,34 +6619,34 @@ const NavGen = struct {
66536619 return try self.extractVectorComponent(result_ty, vec, dimension);
66546620 }
66556621
6656 fn airWorkItemId(self: *NavGen, inst: Air.Inst.Index) !?IdRef {
6622 fn airWorkItemId(self: *NavGen, inst: Air.Inst.Index) !?Id {
66576623 if (self.liveness.isUnused(inst)) return null;
66586624 const pl_op = self.air.instructions.items(.data)[@intFromEnum(inst)].pl_op;
66596625 const dimension = pl_op.payload;
66606626 // TODO: Should we make these builtins return usize?
6661 const result_id = try self.builtin3D(Type.u64, .LocalInvocationId, dimension, 0);
6627 const result_id = try self.builtin3D(Type.u64, .local_invocation_id, dimension, 0);
66626628 const tmp = Temporary.init(Type.u64, result_id);
66636629 const result = try self.buildConvert(Type.u32, tmp);
66646630 return try result.materialize(self);
66656631 }
66666632
6667 fn airWorkGroupSize(self: *NavGen, inst: Air.Inst.Index) !?IdRef {
6633 fn airWorkGroupSize(self: *NavGen, inst: Air.Inst.Index) !?Id {
66686634 if (self.liveness.isUnused(inst)) return null;
66696635 const pl_op = self.air.instructions.items(.data)[@intFromEnum(inst)].pl_op;
66706636 const dimension = pl_op.payload;
66716637 // TODO: Should we make these builtins return usize?
6672 const result_id = try self.builtin3D(Type.u64, .WorkgroupSize, dimension, 0);
6638 const result_id = try self.builtin3D(Type.u64, .workgroup_size, dimension, 0);
66736639 const tmp = Temporary.init(Type.u64, result_id);
66746640 const result = try self.buildConvert(Type.u32, tmp);
66756641 return try result.materialize(self);
66766642 }
66776643
6678 fn airWorkGroupId(self: *NavGen, inst: Air.Inst.Index) !?IdRef {
6644 fn airWorkGroupId(self: *NavGen, inst: Air.Inst.Index) !?Id {
66796645 if (self.liveness.isUnused(inst)) return null;
66806646 const pl_op = self.air.instructions.items(.data)[@intFromEnum(inst)].pl_op;
66816647 const dimension = pl_op.payload;
66826648 // TODO: Should we make these builtins return usize?
6683 const result_id = try self.builtin3D(Type.u64, .WorkgroupId, dimension, 0);
6649 const result_id = try self.builtin3D(Type.u64, .workgroup_id, dimension, 0);
66846650 const tmp = Temporary.init(Type.u64, result_id);
66856651 const result = try self.buildConvert(Type.u32, tmp);
66866652 return try result.materialize(self);
src/codegen/spirv/Assembler.zig+23-24
......@@ -7,8 +7,7 @@ const assert = std.debug.assert;
77const spec = @import("spec.zig");
88const Opcode = spec.Opcode;
99const Word = spec.Word;
10const IdRef = spec.IdRef;
11const IdResult = spec.IdResult;
10const Id = spec.Id;
1211const StorageClass = spec.StorageClass;
1312
1413const SpvModule = @import("Module.zig");
......@@ -127,10 +126,10 @@ const AsmValue = union(enum) {
127126 unresolved_forward_reference,
128127
129128 /// This result-value is a normal result produced by a different instruction.
130 value: IdRef,
129 value: Id,
131130
132131 /// This result-value represents a type registered into the module's type system.
133 ty: IdRef,
132 ty: Id,
134133
135134 /// This is a pre-supplied constant integer value.
136135 constant: u32,
......@@ -141,7 +140,7 @@ const AsmValue = union(enum) {
141140 /// Retrieve the result-id of this AsmValue. Asserts that this AsmValue
142141 /// is of a variant that allows the result to be obtained (not an unresolved
143142 /// forward declaration, not in the process of being declared, etc).
144 pub fn resultId(self: AsmValue) IdRef {
143 pub fn resultId(self: AsmValue) Id {
145144 return switch (self) {
146145 .just_declared,
147146 .unresolved_forward_reference,
......@@ -314,7 +313,7 @@ fn processInstruction(self: *Assembler) !void {
314313 return;
315314 },
316315 else => switch (self.inst.opcode.class()) {
317 .TypeDeclaration => try self.processTypeInstruction(),
316 .type_declaration => try self.processTypeInstruction(),
318317 else => (try self.processGenericInstruction()) orelse return,
319318 },
320319 };
......@@ -392,7 +391,7 @@ fn processTypeInstruction(self: *Assembler) !AsmValue {
392391 break :blk result_id;
393392 },
394393 .OpTypeStruct => blk: {
395 const ids = try self.gpa.alloc(IdRef, operands[1..].len);
394 const ids = try self.gpa.alloc(Id, operands[1..].len);
396395 defer self.gpa.free(ids);
397396 for (operands[1..], ids) |op, *id| id.* = try self.resolveRefId(op.ref_id);
398397 const result_id = self.spv.allocId();
......@@ -429,7 +428,7 @@ fn processTypeInstruction(self: *Assembler) !AsmValue {
429428 const param_operands = operands[2..];
430429 const return_type = try self.resolveRefId(operands[1].ref_id);
431430
432 const param_types = try self.spv.gpa.alloc(IdRef, param_operands.len);
431 const param_types = try self.spv.gpa.alloc(Id, param_operands.len);
433432 defer self.spv.gpa.free(param_types);
434433 for (param_types, param_operands) |*param, operand| {
435434 param.* = try self.resolveRefId(operand.ref_id);
......@@ -457,17 +456,17 @@ fn processGenericInstruction(self: *Assembler) !?AsmValue {
457456 const operands = self.inst.operands.items;
458457 var maybe_spv_decl_index: ?SpvModule.Decl.Index = null;
459458 const section = switch (self.inst.opcode.class()) {
460 .ConstantCreation => &self.spv.sections.types_globals_constants,
461 .Annotation => &self.spv.sections.annotations,
462 .TypeDeclaration => unreachable, // Handled elsewhere.
459 .constant_creation => &self.spv.sections.types_globals_constants,
460 .annotation => &self.spv.sections.annotations,
461 .type_declaration => unreachable, // Handled elsewhere.
463462 else => switch (self.inst.opcode) {
464463 .OpEntryPoint => unreachable,
465464 .OpExecutionMode, .OpExecutionModeId => &self.spv.sections.execution_modes,
466465 .OpVariable => section: {
467466 const storage_class: spec.StorageClass = @enumFromInt(operands[2].value);
468 if (storage_class == .Function) break :section &self.func.prologue;
467 if (storage_class == .function) break :section &self.func.prologue;
469468 maybe_spv_decl_index = try self.spv.allocDecl(.global);
470 if (self.spv.version.minor < 4 and storage_class != .Input and storage_class != .Output) {
469 if (self.spv.version.minor < 4 and storage_class != .input and storage_class != .output) {
471470 // Before version 1.4, the interface’s storage classes are limited to the Input and Output
472471 break :section &self.spv.sections.types_globals_constants;
473472 }
......@@ -481,7 +480,7 @@ fn processGenericInstruction(self: *Assembler) !?AsmValue {
481480 },
482481 };
483482
484 var maybe_result_id: ?IdResult = null;
483 var maybe_result_id: ?Id = null;
485484 const first_word = section.instructions.items.len;
486485 // At this point we're not quite sure how many operands this instruction is going to have,
487486 // so insert 0 and patch up the actual opcode word later.
......@@ -504,12 +503,12 @@ fn processGenericInstruction(self: *Assembler) !?AsmValue {
504503 else
505504 self.spv.allocId();
506505 try section.ensureUnusedCapacity(self.spv.gpa, 1);
507 section.writeOperand(IdResult, maybe_result_id.?);
506 section.writeOperand(Id, maybe_result_id.?);
508507 },
509508 .ref_id => |index| {
510509 const result = try self.resolveRef(index);
511510 try section.ensureUnusedCapacity(self.spv.gpa, 1);
512 section.writeOperand(spec.IdRef, result.resultId());
511 section.writeOperand(spec.Id, result.resultId());
513512 },
514513 .string => |offset| {
515514 const text = std.mem.sliceTo(self.inst.string_bytes.items[offset..], 0);
......@@ -558,7 +557,7 @@ fn resolveRef(self: *Assembler, ref: AsmValue.Ref) !AsmValue {
558557 }
559558}
560559
561fn resolveRefId(self: *Assembler, ref: AsmValue.Ref) !IdRef {
560fn resolveRefId(self: *Assembler, ref: AsmValue.Ref) !Id {
562561 const value = try self.resolveRef(ref);
563562 return value.resultId();
564563}
......@@ -600,7 +599,7 @@ fn parseInstruction(self: *Assembler) !void {
600599 const expected_operands = inst.operands;
601600 // This is a loop because the result-id is not always the first operand.
602601 const requires_lhs_result = for (expected_operands) |op| {
603 if (op.kind == .IdResult) break true;
602 if (op.kind == .id_result) break true;
604603 } else false;
605604
606605 if (requires_lhs_result and maybe_lhs_result == null) {
......@@ -614,7 +613,7 @@ fn parseInstruction(self: *Assembler) !void {
614613 }
615614
616615 for (expected_operands) |operand| {
617 if (operand.kind == .IdResult) {
616 if (operand.kind == .id_result) {
618617 try self.inst.operands.append(self.gpa, .{ .result_id = maybe_lhs_result.? });
619618 continue;
620619 }
......@@ -646,11 +645,11 @@ fn parseOperand(self: *Assembler, kind: spec.OperandKind) Error!void {
646645 .value_enum => try self.parseValueEnum(kind),
647646 .id => try self.parseRefId(),
648647 else => switch (kind) {
649 .LiteralInteger => try self.parseLiteralInteger(),
650 .LiteralString => try self.parseString(),
651 .LiteralContextDependentNumber => try self.parseContextDependentNumber(),
652 .LiteralExtInstInteger => try self.parseLiteralExtInstInteger(),
653 .PairIdRefIdRef => try self.parsePhiSource(),
648 .literal_integer => try self.parseLiteralInteger(),
649 .literal_string => try self.parseString(),
650 .literal_context_dependent_number => try self.parseContextDependentNumber(),
651 .literal_ext_inst_integer => try self.parseLiteralExtInstInteger(),
652 .pair_id_ref_id_ref => try self.parsePhiSource(),
654653 else => return self.todo("parse operand of type {s}", .{@tagName(kind)}),
655654 },
656655 }
src/codegen/spirv/Module.zig+68-70
......@@ -15,9 +15,7 @@ const Wyhash = std.hash.Wyhash;
1515
1616const spec = @import("spec.zig");
1717const Word = spec.Word;
18const IdRef = spec.IdRef;
19const IdResult = spec.IdResult;
20const IdResultType = spec.IdResultType;
18const Id = spec.Id;
2119
2220const Section = @import("Section.zig");
2321
......@@ -82,7 +80,7 @@ pub const Decl = struct {
8280 /// - For `func`, this is the result-id of the associated OpFunction instruction.
8381 /// - For `global`, this is the result-id of the associated OpVariable instruction.
8482 /// - For `invocation_global`, this is the result-id of the associated InvocationGlobal instruction.
85 result_id: IdRef,
83 result_id: Id,
8684 /// The offset of the first dependency of this decl in the `decl_deps` array.
8785 begin_dep: u32,
8886 /// The past-end offset of the dependencies of this decl in the `decl_deps` array.
......@@ -150,7 +148,7 @@ sections: struct {
150148next_result_id: Word,
151149
152150/// Cache for results of OpString instructions.
153strings: std.StringArrayHashMapUnmanaged(IdRef) = .empty,
151strings: std.StringArrayHashMapUnmanaged(Id) = .empty,
154152
155153/// Some types shouldn't be emitted more than one time, but cannot be caught by
156154/// the `intern_map` during codegen. Sometimes, IDs are compared to check if
......@@ -161,20 +159,20 @@ strings: std.StringArrayHashMapUnmanaged(IdRef) = .empty,
161159/// Additionally, this is used for other values which can be cached, for example,
162160/// built-in variables.
163161cache: struct {
164 bool_type: ?IdRef = null,
165 void_type: ?IdRef = null,
166 int_types: std.AutoHashMapUnmanaged(std.builtin.Type.Int, IdRef) = .empty,
167 float_types: std.AutoHashMapUnmanaged(std.builtin.Type.Float, IdRef) = .empty,
168 vector_types: std.AutoHashMapUnmanaged(struct { IdRef, u32 }, IdRef) = .empty,
169 array_types: std.AutoHashMapUnmanaged(struct { IdRef, IdRef }, IdRef) = .empty,
162 bool_type: ?Id = null,
163 void_type: ?Id = null,
164 int_types: std.AutoHashMapUnmanaged(std.builtin.Type.Int, Id) = .empty,
165 float_types: std.AutoHashMapUnmanaged(std.builtin.Type.Float, Id) = .empty,
166 vector_types: std.AutoHashMapUnmanaged(struct { Id, u32 }, Id) = .empty,
167 array_types: std.AutoHashMapUnmanaged(struct { Id, Id }, Id) = .empty,
170168
171169 capabilities: std.AutoHashMapUnmanaged(spec.Capability, void) = .empty,
172170 extensions: std.StringHashMapUnmanaged(void) = .empty,
173 extended_instruction_set: std.AutoHashMapUnmanaged(spec.InstructionSet, IdRef) = .empty,
174 decorations: std.AutoHashMapUnmanaged(struct { IdRef, spec.Decoration }, void) = .empty,
175 builtins: std.AutoHashMapUnmanaged(struct { IdRef, spec.BuiltIn }, Decl.Index) = .empty,
171 extended_instruction_set: std.AutoHashMapUnmanaged(spec.InstructionSet, Id) = .empty,
172 decorations: std.AutoHashMapUnmanaged(struct { Id, spec.Decoration }, void) = .empty,
173 builtins: std.AutoHashMapUnmanaged(struct { Id, spec.BuiltIn }, Decl.Index) = .empty,
176174
177 bool_const: [2]?IdRef = .{ null, null },
175 bool_const: [2]?Id = .{ null, null },
178176} = .{},
179177
180178/// Set of Decls, referred to by Decl.Index.
......@@ -185,7 +183,7 @@ decls: std.ArrayListUnmanaged(Decl) = .empty,
185183decl_deps: std.ArrayListUnmanaged(Decl.Index) = .empty,
186184
187185/// The list of entry points that should be exported from this module.
188entry_points: std.AutoArrayHashMapUnmanaged(IdRef, EntryPoint) = .empty,
186entry_points: std.AutoArrayHashMapUnmanaged(Id, EntryPoint) = .empty,
189187
190188pub fn init(gpa: Allocator, target: *const std.Target) Module {
191189 const version_minor: u8 = blk: {
......@@ -245,7 +243,7 @@ pub const IdRange = struct {
245243 base: u32,
246244 len: u32,
247245
248 pub fn at(range: IdRange, i: usize) IdResult {
246 pub fn at(range: IdRange, i: usize) Id {
249247 assert(i < range.len);
250248 return @enumFromInt(range.base + i);
251249 }
......@@ -259,7 +257,7 @@ pub fn allocIds(self: *Module, n: u32) IdRange {
259257 };
260258}
261259
262pub fn allocId(self: *Module) IdResult {
260pub fn allocId(self: *Module) Id {
263261 return self.allocIds(1).at(0);
264262}
265263
......@@ -275,7 +273,7 @@ fn addEntryPointDeps(
275273 self: *Module,
276274 decl_index: Decl.Index,
277275 seen: *std.DynamicBitSetUnmanaged,
278 interface: *std.ArrayList(IdRef),
276 interface: *std.ArrayList(Id),
279277) !void {
280278 const decl = self.declPtr(decl_index);
281279 const deps = self.decl_deps.items[decl.begin_dep..decl.end_dep];
......@@ -299,7 +297,7 @@ fn entryPoints(self: *Module) !Section {
299297 var entry_points = Section{};
300298 errdefer entry_points.deinit(self.gpa);
301299
302 var interface = std.ArrayList(IdRef).init(self.gpa);
300 var interface = std.ArrayList(Id).init(self.gpa);
303301 defer interface.deinit();
304302
305303 var seen = try std.DynamicBitSetUnmanaged.initEmpty(self.gpa, self.decls.items.len);
......@@ -317,12 +315,12 @@ fn entryPoints(self: *Module) !Section {
317315 .interface = interface.items,
318316 });
319317
320 if (entry_point.exec_mode == null and entry_point.exec_model == .Fragment) {
318 if (entry_point.exec_mode == null and entry_point.exec_model == .fragment) {
321319 switch (self.target.os.tag) {
322320 .vulkan, .opengl => |tag| {
323321 try self.sections.execution_modes.emit(self.gpa, .OpExecutionMode, .{
324322 .entry_point = entry_point_id,
325 .mode = if (tag == .vulkan) .OriginUpperLeft else .OriginLowerLeft,
323 .mode = if (tag == .vulkan) .origin_upper_left else .origin_lower_left,
326324 });
327325 },
328326 .opencl => {},
......@@ -338,59 +336,59 @@ pub fn finalize(self: *Module, a: Allocator) ![]Word {
338336 // Emit capabilities and extensions
339337 switch (self.target.os.tag) {
340338 .opengl => {
341 try self.addCapability(.Shader);
342 try self.addCapability(.Matrix);
339 try self.addCapability(.shader);
340 try self.addCapability(.matrix);
343341 },
344342 .vulkan => {
345 try self.addCapability(.Shader);
346 try self.addCapability(.Matrix);
343 try self.addCapability(.shader);
344 try self.addCapability(.matrix);
347345 if (self.target.cpu.arch == .spirv64) {
348346 try self.addExtension("SPV_KHR_physical_storage_buffer");
349 try self.addCapability(.PhysicalStorageBufferAddresses);
347 try self.addCapability(.physical_storage_buffer_addresses);
350348 }
351349 },
352350 .opencl, .amdhsa => {
353 try self.addCapability(.Kernel);
354 try self.addCapability(.Addresses);
351 try self.addCapability(.kernel);
352 try self.addCapability(.addresses);
355353 },
356354 else => unreachable,
357355 }
358 if (self.target.cpu.arch == .spirv64) try self.addCapability(.Int64);
359 if (self.target.cpu.has(.spirv, .int64)) try self.addCapability(.Int64);
360 if (self.target.cpu.has(.spirv, .float16)) try self.addCapability(.Float16);
361 if (self.target.cpu.has(.spirv, .float64)) try self.addCapability(.Float64);
362 if (self.target.cpu.has(.spirv, .generic_pointer)) try self.addCapability(.GenericPointer);
363 if (self.target.cpu.has(.spirv, .vector16)) try self.addCapability(.Vector16);
356 if (self.target.cpu.arch == .spirv64) try self.addCapability(.int64);
357 if (self.target.cpu.has(.spirv, .int64)) try self.addCapability(.int64);
358 if (self.target.cpu.has(.spirv, .float16)) try self.addCapability(.float16);
359 if (self.target.cpu.has(.spirv, .float64)) try self.addCapability(.float64);
360 if (self.target.cpu.has(.spirv, .generic_pointer)) try self.addCapability(.generic_pointer);
361 if (self.target.cpu.has(.spirv, .vector16)) try self.addCapability(.vector16);
364362 if (self.target.cpu.has(.spirv, .storage_push_constant16)) {
365363 try self.addExtension("SPV_KHR_16bit_storage");
366 try self.addCapability(.StoragePushConstant16);
364 try self.addCapability(.storage_push_constant16);
367365 }
368366 if (self.target.cpu.has(.spirv, .arbitrary_precision_integers)) {
369367 try self.addExtension("SPV_INTEL_arbitrary_precision_integers");
370 try self.addCapability(.ArbitraryPrecisionIntegersINTEL);
368 try self.addCapability(.arbitrary_precision_integers_intel);
371369 }
372370 if (self.target.cpu.has(.spirv, .variable_pointers)) {
373371 try self.addExtension("SPV_KHR_variable_pointers");
374 try self.addCapability(.VariablePointersStorageBuffer);
375 try self.addCapability(.VariablePointers);
372 try self.addCapability(.variable_pointers_storage_buffer);
373 try self.addCapability(.variable_pointers);
376374 }
377375 // These are well supported
378 try self.addCapability(.Int8);
379 try self.addCapability(.Int16);
376 try self.addCapability(.int8);
377 try self.addCapability(.int16);
380378
381379 // Emit memory model
382380 const addressing_model: spec.AddressingModel = switch (self.target.os.tag) {
383 .opengl => .Logical,
384 .vulkan => if (self.target.cpu.arch == .spirv32) .Logical else .PhysicalStorageBuffer64,
385 .opencl => if (self.target.cpu.arch == .spirv32) .Physical32 else .Physical64,
386 .amdhsa => .Physical64,
381 .opengl => .logical,
382 .vulkan => if (self.target.cpu.arch == .spirv32) .logical else .physical_storage_buffer64,
383 .opencl => if (self.target.cpu.arch == .spirv32) .physical32 else .physical64,
384 .amdhsa => .physical64,
387385 else => unreachable,
388386 };
389387 try self.sections.memory_model.emit(self.gpa, .OpMemoryModel, .{
390388 .addressing_model = addressing_model,
391389 .memory_model = switch (self.target.os.tag) {
392 .opencl => .OpenCL,
393 .vulkan, .opengl => .GLSL450,
390 .opencl => .open_cl,
391 .vulkan, .opengl => .glsl450,
394392 else => unreachable,
395393 },
396394 });
......@@ -411,7 +409,7 @@ pub fn finalize(self: *Module, a: Allocator) ![]Word {
411409 var source = Section{};
412410 defer source.deinit(self.gpa);
413411 try self.sections.debug_strings.emit(self.gpa, .OpSource, .{
414 .source_language = .Zig,
412 .source_language = .zig,
415413 .version = 0,
416414 // We cannot emit these because the Khronos translator does not parse this instruction
417415 // correctly.
......@@ -473,7 +471,7 @@ pub fn addExtension(self: *Module, ext: []const u8) !void {
473471}
474472
475473/// Imports or returns the existing id of an extended instruction set
476pub fn importInstructionSet(self: *Module, set: spec.InstructionSet) !IdRef {
474pub fn importInstructionSet(self: *Module, set: spec.InstructionSet) !Id {
477475 assert(set != .core);
478476
479477 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 {
490488}
491489
492490/// Fetch the result-id of an instruction corresponding to a string.
493pub fn resolveString(self: *Module, string: []const u8) !IdRef {
491pub fn resolveString(self: *Module, string: []const u8) !Id {
494492 if (self.strings.get(string)) |id| {
495493 return id;
496494 }
......@@ -506,7 +504,7 @@ pub fn resolveString(self: *Module, string: []const u8) !IdRef {
506504 return id;
507505}
508506
509pub fn structType(self: *Module, result_id: IdResult, types: []const IdRef, maybe_names: ?[]const []const u8) !void {
507pub fn structType(self: *Module, result_id: Id, types: []const Id, maybe_names: ?[]const []const u8) !void {
510508 try self.sections.types_globals_constants.emit(self.gpa, .OpTypeStruct, .{
511509 .id_result = result_id,
512510 .id_ref = types,
......@@ -520,7 +518,7 @@ pub fn structType(self: *Module, result_id: IdResult, types: []const IdRef, mayb
520518 }
521519}
522520
523pub fn boolType(self: *Module) !IdRef {
521pub fn boolType(self: *Module) !Id {
524522 if (self.cache.bool_type) |id| return id;
525523
526524 const result_id = self.allocId();
......@@ -531,7 +529,7 @@ pub fn boolType(self: *Module) !IdRef {
531529 return result_id;
532530}
533531
534pub fn voidType(self: *Module) !IdRef {
532pub fn voidType(self: *Module) !Id {
535533 if (self.cache.void_type) |id| return id;
536534
537535 const result_id = self.allocId();
......@@ -543,7 +541,7 @@ pub fn voidType(self: *Module) !IdRef {
543541 return result_id;
544542}
545543
546pub fn intType(self: *Module, signedness: std.builtin.Signedness, bits: u16) !IdRef {
544pub fn intType(self: *Module, signedness: std.builtin.Signedness, bits: u16) !Id {
547545 assert(bits > 0);
548546 const entry = try self.cache.int_types.getOrPut(self.gpa, .{ .signedness = signedness, .bits = bits });
549547 if (!entry.found_existing) {
......@@ -566,7 +564,7 @@ pub fn intType(self: *Module, signedness: std.builtin.Signedness, bits: u16) !Id
566564 return entry.value_ptr.*;
567565}
568566
569pub fn floatType(self: *Module, bits: u16) !IdRef {
567pub fn floatType(self: *Module, bits: u16) !Id {
570568 assert(bits > 0);
571569 const entry = try self.cache.float_types.getOrPut(self.gpa, .{ .bits = bits });
572570 if (!entry.found_existing) {
......@@ -581,7 +579,7 @@ pub fn floatType(self: *Module, bits: u16) !IdRef {
581579 return entry.value_ptr.*;
582580}
583581
584pub fn vectorType(self: *Module, len: u32, child_ty_id: IdRef) !IdRef {
582pub fn vectorType(self: *Module, len: u32, child_ty_id: Id) !Id {
585583 const entry = try self.cache.vector_types.getOrPut(self.gpa, .{ child_ty_id, len });
586584 if (!entry.found_existing) {
587585 const result_id = self.allocId();
......@@ -595,7 +593,7 @@ pub fn vectorType(self: *Module, len: u32, child_ty_id: IdRef) !IdRef {
595593 return entry.value_ptr.*;
596594}
597595
598pub fn arrayType(self: *Module, len_id: IdRef, child_ty_id: IdRef) !IdRef {
596pub fn arrayType(self: *Module, len_id: Id, child_ty_id: Id) !Id {
599597 const entry = try self.cache.array_types.getOrPut(self.gpa, .{ child_ty_id, len_id });
600598 if (!entry.found_existing) {
601599 const result_id = self.allocId();
......@@ -609,7 +607,7 @@ pub fn arrayType(self: *Module, len_id: IdRef, child_ty_id: IdRef) !IdRef {
609607 return entry.value_ptr.*;
610608}
611609
612pub fn functionType(self: *Module, return_ty_id: IdRef, param_type_ids: []const IdRef) !IdRef {
610pub fn functionType(self: *Module, return_ty_id: Id, param_type_ids: []const Id) !Id {
613611 const result_id = self.allocId();
614612 try self.sections.types_globals_constants.emit(self.gpa, .OpTypeFunction, .{
615613 .id_result = result_id,
......@@ -619,7 +617,7 @@ pub fn functionType(self: *Module, return_ty_id: IdRef, param_type_ids: []const
619617 return result_id;
620618}
621619
622pub fn constant(self: *Module, result_ty_id: IdRef, value: spec.LiteralContextDependentNumber) !IdRef {
620pub fn constant(self: *Module, result_ty_id: Id, value: spec.LiteralContextDependentNumber) !Id {
623621 const result_id = self.allocId();
624622 const section = &self.sections.types_globals_constants;
625623 try section.emit(self.gpa, .OpConstant, .{
......@@ -630,7 +628,7 @@ pub fn constant(self: *Module, result_ty_id: IdRef, value: spec.LiteralContextDe
630628 return result_id;
631629}
632630
633pub fn constBool(self: *Module, value: bool) !IdRef {
631pub fn constBool(self: *Module, value: bool) !Id {
634632 if (self.cache.bool_const[@intFromBool(value)]) |b| return b;
635633
636634 const result_ty_id = try self.boolType();
......@@ -653,7 +651,7 @@ pub fn constBool(self: *Module, value: bool) !IdRef {
653651
654652/// Return a pointer to a builtin variable. `result_ty_id` must be a **pointer**
655653/// with storage class `.Input`.
656pub fn builtin(self: *Module, result_ty_id: IdRef, spirv_builtin: spec.BuiltIn) !Decl.Index {
654pub fn builtin(self: *Module, result_ty_id: Id, spirv_builtin: spec.BuiltIn) !Decl.Index {
657655 const entry = try self.cache.builtins.getOrPut(self.gpa, .{ result_ty_id, spirv_builtin });
658656 if (!entry.found_existing) {
659657 const decl_index = try self.allocDecl(.global);
......@@ -662,15 +660,15 @@ pub fn builtin(self: *Module, result_ty_id: IdRef, spirv_builtin: spec.BuiltIn)
662660 try self.sections.types_globals_constants.emit(self.gpa, .OpVariable, .{
663661 .id_result_type = result_ty_id,
664662 .id_result = result_id,
665 .storage_class = .Input,
663 .storage_class = .input,
666664 });
667 try self.decorate(result_id, .{ .BuiltIn = .{ .built_in = spirv_builtin } });
665 try self.decorate(result_id, .{ .built_in = .{ .built_in = spirv_builtin } });
668666 try self.declareDeclDeps(decl_index, &.{});
669667 }
670668 return entry.value_ptr.*;
671669}
672670
673pub fn constUndef(self: *Module, ty_id: IdRef) !IdRef {
671pub fn constUndef(self: *Module, ty_id: Id) !Id {
674672 const result_id = self.allocId();
675673 try self.sections.types_globals_constants.emit(self.gpa, .OpUndef, .{
676674 .id_result_type = ty_id,
......@@ -679,7 +677,7 @@ pub fn constUndef(self: *Module, ty_id: IdRef) !IdRef {
679677 return result_id;
680678}
681679
682pub fn constNull(self: *Module, ty_id: IdRef) !IdRef {
680pub fn constNull(self: *Module, ty_id: Id) !Id {
683681 const result_id = self.allocId();
684682 try self.sections.types_globals_constants.emit(self.gpa, .OpConstantNull, .{
685683 .id_result_type = ty_id,
......@@ -691,7 +689,7 @@ pub fn constNull(self: *Module, ty_id: IdRef) !IdRef {
691689/// Decorate a result-id.
692690pub fn decorate(
693691 self: *Module,
694 target: IdRef,
692 target: Id,
695693 decoration: spec.Decoration.Extended,
696694) !void {
697695 const entry = try self.cache.decorations.getOrPut(self.gpa, .{ target, decoration });
......@@ -707,7 +705,7 @@ pub fn decorate(
707705/// We really don't have to and shouldn't need to cache this.
708706pub fn decorateMember(
709707 self: *Module,
710 structure_type: IdRef,
708 structure_type: Id,
711709 member: u32,
712710 decoration: spec.Decoration.Extended,
713711) !void {
......@@ -762,20 +760,20 @@ pub fn declareEntryPoint(
762760 if (!gop.found_existing) gop.value_ptr.exec_mode = exec_mode;
763761}
764762
765pub fn debugName(self: *Module, target: IdResult, name: []const u8) !void {
763pub fn debugName(self: *Module, target: Id, name: []const u8) !void {
766764 try self.sections.debug_names.emit(self.gpa, .OpName, .{
767765 .target = target,
768766 .name = name,
769767 });
770768}
771769
772pub fn debugNameFmt(self: *Module, target: IdResult, comptime fmt: []const u8, args: anytype) !void {
770pub fn debugNameFmt(self: *Module, target: Id, comptime fmt: []const u8, args: anytype) !void {
773771 const name = try std.fmt.allocPrint(self.gpa, fmt, args);
774772 defer self.gpa.free(name);
775773 try self.debugName(target, name);
776774}
777775
778pub fn memberDebugName(self: *Module, target: IdResult, member: u32, name: []const u8) !void {
776pub fn memberDebugName(self: *Module, target: Id, member: u32, name: []const u8) !void {
779777 try self.sections.debug_names.emit(self.gpa, .OpMemberName, .{
780778 .type = target,
781779 .member = member,
src/codegen/spirv/Section.zig+5-5
......@@ -79,7 +79,7 @@ pub fn emit(
7979pub fn emitBranch(
8080 section: *Section,
8181 allocator: Allocator,
82 target_label: spec.IdRef,
82 target_label: spec.Id,
8383) !void {
8484 try section.emit(allocator, .OpBranch, .{
8585 .target_label = target_label,
......@@ -94,8 +94,8 @@ pub fn emitSpecConstantOp(
9494) !void {
9595 const word_count = operandsSize(opcode.Operands(), operands);
9696 try section.emitRaw(allocator, .OpSpecConstantOp, 1 + word_count);
97 section.writeOperand(spec.IdRef, operands.id_result_type);
98 section.writeOperand(spec.IdRef, operands.id_result);
97 section.writeOperand(spec.Id, operands.id_result_type);
98 section.writeOperand(spec.Id, operands.id_result);
9999 section.writeOperand(Opcode, opcode);
100100
101101 const fields = @typeInfo(opcode.Operands()).@"struct".fields;
......@@ -134,7 +134,7 @@ fn writeOperands(section: *Section, comptime Operands: type, operands: Operands)
134134
135135pub fn writeOperand(section: *Section, comptime Operand: type, operand: Operand) void {
136136 switch (Operand) {
137 spec.IdResult => section.writeWord(@intFromEnum(operand)),
137 spec.Id => section.writeWord(@intFromEnum(operand)),
138138
139139 spec.LiteralInteger => section.writeWord(operand),
140140
......@@ -266,7 +266,7 @@ fn operandsSize(comptime Operands: type, operands: Operands) usize {
266266
267267fn operandSize(comptime Operand: type, operand: Operand) usize {
268268 return switch (Operand) {
269 spec.IdResult,
269 spec.Id,
270270 spec.LiteralInteger,
271271 spec.LiteralExtInstInteger,
272272 => 1,
src/codegen/spirv/extinst.zig.grammar.json+9-11
......@@ -1,13 +1,11 @@
11{
2 "version": 0,
3 "revision": 0,
4 "instructions": [
5 {
6 "opname": "InvocationGlobal",
7 "opcode": 0,
8 "operands": [
9 { "kind": "IdRef", "name": "initializer function" }
10 ]
11 }
12 ]
2 "version": 0,
3 "revision": 0,
4 "instructions": [
5 {
6 "opname": "InvocationGlobal",
7 "opcode": 0,
8 "operands": [{ "kind": "IdRef", "name": "initializer function" }]
9 }
10 ]
1311}
src/codegen/spirv/spec.zig+11928-10043
......@@ -1,7 +1,6 @@
11//! This file is auto-generated by tools/gen_spirv_spec.zig.
22
33const std = @import("std");
4const assert = std.debug.assert;
54
65pub const Version = packed struct(Word) {
76 padding: u8 = 0,
......@@ -15,22 +14,17 @@ pub const Version = packed struct(Word) {
1514};
1615
1716pub const Word = u32;
18pub const IdResult = enum(Word) {
17pub const Id = enum(Word) {
1918 none,
2019 _,
2120
22 pub fn format(self: IdResult, writer: *std.io.Writer) std.io.Writer.Error!void {
21 pub fn format(self: Id, writer: *std.io.Writer) std.io.Writer.Error!void {
2322 switch (self) {
2423 .none => try writer.writeAll("(none)"),
2524 else => try writer.print("%{d}", .{@intFromEnum(self)}),
2625 }
2726 }
2827};
29pub const IdResultType = IdResult;
30pub const IdRef = IdResult;
31
32pub const IdMemorySemantics = IdRef;
33pub const IdScope = IdRef;
3428
3529pub const LiteralInteger = Word;
3630pub const LiteralFloat = Word;
......@@ -45,9 +39,9 @@ pub const LiteralContextDependentNumber = union(enum) {
4539};
4640pub const LiteralExtInstInteger = struct { inst: Word };
4741pub const LiteralSpecConstantOpInteger = struct { opcode: Opcode };
48pub const PairLiteralIntegerIdRef = struct { value: LiteralInteger, label: IdRef };
49pub const PairIdRefLiteralInteger = struct { target: IdRef, member: LiteralInteger };
50pub const PairIdRefIdRef = [2]IdRef;
42pub const PairLiteralIntegerIdRef = struct { value: LiteralInteger, label: Id };
43pub const PairIdRefLiteralInteger = struct { target: Id, member: LiteralInteger };
44pub const PairIdRefIdRef = [2]Id;
5145
5246pub const Quantifier = enum {
5347 required,
......@@ -81,1499 +75,1564 @@ pub const Instruction = struct {
8175};
8276
8377pub const zig_generator_id: Word = 41;
84pub const version = Version{ .major = 1, .minor = 6, .patch = 1 };
78pub const version: Version = .{ .major = 1, .minor = 6, .patch = 4 };
8579pub const magic_number: Word = 0x07230203;
8680
8781pub const Class = enum {
88 Miscellaneous,
89 Debug,
90 Extension,
91 ModeSetting,
92 TypeDeclaration,
93 ConstantCreation,
94 Function,
95 Memory,
96 Annotation,
97 Composite,
98 Image,
99 Conversion,
100 Arithmetic,
101 RelationalAndLogical,
102 Bit,
103 Derivative,
104 Primitive,
105 Barrier,
106 Atomic,
107 ControlFlow,
108 Group,
109 Pipe,
110 DeviceSideEnqueue,
111 NonUniform,
112 Reserved,
82 miscellaneous,
83 debug,
84 extension,
85 mode_setting,
86 type_declaration,
87 constant_creation,
88 function,
89 memory,
90 annotation,
91 composite,
92 image,
93 conversion,
94 arithmetic,
95 relational_and_logical,
96 bit,
97 derivative,
98 primitive,
99 barrier,
100 atomic,
101 control_flow,
102 group,
103 pipe,
104 device_side_enqueue,
105 non_uniform,
106 tensor,
107 graph,
108 reserved,
113109};
114110
115111pub const OperandKind = enum {
116 Opcode,
117 ImageOperands,
118 FPFastMathMode,
119 SelectionControl,
120 LoopControl,
121 FunctionControl,
122 MemorySemantics,
123 MemoryAccess,
124 KernelProfilingInfo,
125 RayFlags,
126 FragmentShadingRate,
127 RawAccessChainOperands,
128 SourceLanguage,
129 ExecutionModel,
130 AddressingModel,
131 MemoryModel,
132 ExecutionMode,
133 StorageClass,
134 Dim,
135 SamplerAddressingMode,
136 SamplerFilterMode,
137 ImageFormat,
138 ImageChannelOrder,
139 ImageChannelDataType,
140 FPRoundingMode,
141 FPDenormMode,
142 QuantizationModes,
143 FPOperationMode,
144 OverflowModes,
145 LinkageType,
146 AccessQualifier,
147 HostAccessQualifier,
148 FunctionParameterAttribute,
149 Decoration,
150 BuiltIn,
151 Scope,
152 GroupOperation,
153 KernelEnqueueFlags,
154 Capability,
155 RayQueryIntersection,
156 RayQueryCommittedIntersectionType,
157 RayQueryCandidateIntersectionType,
158 PackedVectorFormat,
159 CooperativeMatrixOperands,
160 CooperativeMatrixLayout,
161 CooperativeMatrixUse,
162 InitializationModeQualifier,
163 LoadCacheControl,
164 StoreCacheControl,
165 NamedMaximumNumberOfRegisters,
166 IdResultType,
167 IdResult,
168 IdMemorySemantics,
169 IdScope,
170 IdRef,
171 LiteralInteger,
172 LiteralString,
173 LiteralFloat,
174 LiteralContextDependentNumber,
175 LiteralExtInstInteger,
176 LiteralSpecConstantOpInteger,
177 PairLiteralIntegerIdRef,
178 PairIdRefLiteralInteger,
179 PairIdRefIdRef,
180 @"OpenCL.DebugInfo.100.DebugInfoFlags",
181 @"OpenCL.DebugInfo.100.DebugBaseTypeAttributeEncoding",
182 @"OpenCL.DebugInfo.100.DebugCompositeType",
183 @"OpenCL.DebugInfo.100.DebugTypeQualifier",
184 @"OpenCL.DebugInfo.100.DebugOperation",
185 @"OpenCL.DebugInfo.100.DebugImportedEntity",
186 @"NonSemantic.Shader.DebugInfo.100.DebugInfoFlags",
187 @"NonSemantic.Shader.DebugInfo.100.BuildIdentifierFlags",
188 @"NonSemantic.Shader.DebugInfo.100.DebugBaseTypeAttributeEncoding",
189 @"NonSemantic.Shader.DebugInfo.100.DebugCompositeType",
190 @"NonSemantic.Shader.DebugInfo.100.DebugTypeQualifier",
191 @"NonSemantic.Shader.DebugInfo.100.DebugOperation",
192 @"NonSemantic.Shader.DebugInfo.100.DebugImportedEntity",
193 @"NonSemantic.ClspvReflection.6.KernelPropertyFlags",
194 @"DebugInfo.DebugInfoFlags",
195 @"DebugInfo.DebugBaseTypeAttributeEncoding",
196 @"DebugInfo.DebugCompositeType",
197 @"DebugInfo.DebugTypeQualifier",
198 @"DebugInfo.DebugOperation",
112 opcode,
113 image_operands,
114 fp_fast_math_mode,
115 selection_control,
116 loop_control,
117 function_control,
118 memory_semantics,
119 memory_access,
120 kernel_profiling_info,
121 ray_flags,
122 fragment_shading_rate,
123 raw_access_chain_operands,
124 source_language,
125 execution_model,
126 addressing_model,
127 memory_model,
128 execution_mode,
129 storage_class,
130 dim,
131 sampler_addressing_mode,
132 sampler_filter_mode,
133 image_format,
134 image_channel_order,
135 image_channel_data_type,
136 fp_rounding_mode,
137 fp_denorm_mode,
138 quantization_modes,
139 fp_operation_mode,
140 overflow_modes,
141 linkage_type,
142 access_qualifier,
143 host_access_qualifier,
144 function_parameter_attribute,
145 decoration,
146 built_in,
147 scope,
148 group_operation,
149 kernel_enqueue_flags,
150 capability,
151 ray_query_intersection,
152 ray_query_committed_intersection_type,
153 ray_query_candidate_intersection_type,
154 packed_vector_format,
155 cooperative_matrix_operands,
156 cooperative_matrix_layout,
157 cooperative_matrix_use,
158 cooperative_matrix_reduce,
159 tensor_clamp_mode,
160 tensor_addressing_operands,
161 initialization_mode_qualifier,
162 load_cache_control,
163 store_cache_control,
164 named_maximum_number_of_registers,
165 matrix_multiply_accumulate_operands,
166 fp_encoding,
167 cooperative_vector_matrix_layout,
168 component_type,
169 id_result_type,
170 id_result,
171 id_memory_semantics,
172 id_scope,
173 id_ref,
174 literal_integer,
175 literal_string,
176 literal_float,
177 literal_context_dependent_number,
178 literal_ext_inst_integer,
179 literal_spec_constant_op_integer,
180 pair_literal_integer_id_ref,
181 pair_id_ref_literal_integer,
182 pair_id_ref_id_ref,
183 tensor_operands,
184 debug_info_debug_info_flags,
185 debug_info_debug_base_type_attribute_encoding,
186 debug_info_debug_composite_type,
187 debug_info_debug_type_qualifier,
188 debug_info_debug_operation,
189 open_cl_debug_info_100_debug_info_flags,
190 open_cl_debug_info_100_debug_base_type_attribute_encoding,
191 open_cl_debug_info_100_debug_composite_type,
192 open_cl_debug_info_100_debug_type_qualifier,
193 open_cl_debug_info_100_debug_operation,
194 open_cl_debug_info_100_debug_imported_entity,
195 non_semantic_clspv_reflection_6_kernel_property_flags,
196 non_semantic_shader_debug_info_100_debug_info_flags,
197 non_semantic_shader_debug_info_100_build_identifier_flags,
198 non_semantic_shader_debug_info_100_debug_base_type_attribute_encoding,
199 non_semantic_shader_debug_info_100_debug_composite_type,
200 non_semantic_shader_debug_info_100_debug_type_qualifier,
201 non_semantic_shader_debug_info_100_debug_operation,
202 non_semantic_shader_debug_info_100_debug_imported_entity,
199203
200204 pub fn category(self: OperandKind) OperandCategory {
201205 return switch (self) {
202 .Opcode => .literal,
203 .ImageOperands => .bit_enum,
204 .FPFastMathMode => .bit_enum,
205 .SelectionControl => .bit_enum,
206 .LoopControl => .bit_enum,
207 .FunctionControl => .bit_enum,
208 .MemorySemantics => .bit_enum,
209 .MemoryAccess => .bit_enum,
210 .KernelProfilingInfo => .bit_enum,
211 .RayFlags => .bit_enum,
212 .FragmentShadingRate => .bit_enum,
213 .RawAccessChainOperands => .bit_enum,
214 .SourceLanguage => .value_enum,
215 .ExecutionModel => .value_enum,
216 .AddressingModel => .value_enum,
217 .MemoryModel => .value_enum,
218 .ExecutionMode => .value_enum,
219 .StorageClass => .value_enum,
220 .Dim => .value_enum,
221 .SamplerAddressingMode => .value_enum,
222 .SamplerFilterMode => .value_enum,
223 .ImageFormat => .value_enum,
224 .ImageChannelOrder => .value_enum,
225 .ImageChannelDataType => .value_enum,
226 .FPRoundingMode => .value_enum,
227 .FPDenormMode => .value_enum,
228 .QuantizationModes => .value_enum,
229 .FPOperationMode => .value_enum,
230 .OverflowModes => .value_enum,
231 .LinkageType => .value_enum,
232 .AccessQualifier => .value_enum,
233 .HostAccessQualifier => .value_enum,
234 .FunctionParameterAttribute => .value_enum,
235 .Decoration => .value_enum,
236 .BuiltIn => .value_enum,
237 .Scope => .value_enum,
238 .GroupOperation => .value_enum,
239 .KernelEnqueueFlags => .value_enum,
240 .Capability => .value_enum,
241 .RayQueryIntersection => .value_enum,
242 .RayQueryCommittedIntersectionType => .value_enum,
243 .RayQueryCandidateIntersectionType => .value_enum,
244 .PackedVectorFormat => .value_enum,
245 .CooperativeMatrixOperands => .bit_enum,
246 .CooperativeMatrixLayout => .value_enum,
247 .CooperativeMatrixUse => .value_enum,
248 .InitializationModeQualifier => .value_enum,
249 .LoadCacheControl => .value_enum,
250 .StoreCacheControl => .value_enum,
251 .NamedMaximumNumberOfRegisters => .value_enum,
252 .IdResultType => .id,
253 .IdResult => .id,
254 .IdMemorySemantics => .id,
255 .IdScope => .id,
256 .IdRef => .id,
257 .LiteralInteger => .literal,
258 .LiteralString => .literal,
259 .LiteralFloat => .literal,
260 .LiteralContextDependentNumber => .literal,
261 .LiteralExtInstInteger => .literal,
262 .LiteralSpecConstantOpInteger => .literal,
263 .PairLiteralIntegerIdRef => .composite,
264 .PairIdRefLiteralInteger => .composite,
265 .PairIdRefIdRef => .composite,
266 .@"OpenCL.DebugInfo.100.DebugInfoFlags" => .bit_enum,
267 .@"OpenCL.DebugInfo.100.DebugBaseTypeAttributeEncoding" => .value_enum,
268 .@"OpenCL.DebugInfo.100.DebugCompositeType" => .value_enum,
269 .@"OpenCL.DebugInfo.100.DebugTypeQualifier" => .value_enum,
270 .@"OpenCL.DebugInfo.100.DebugOperation" => .value_enum,
271 .@"OpenCL.DebugInfo.100.DebugImportedEntity" => .value_enum,
272 .@"NonSemantic.Shader.DebugInfo.100.DebugInfoFlags" => .bit_enum,
273 .@"NonSemantic.Shader.DebugInfo.100.BuildIdentifierFlags" => .bit_enum,
274 .@"NonSemantic.Shader.DebugInfo.100.DebugBaseTypeAttributeEncoding" => .value_enum,
275 .@"NonSemantic.Shader.DebugInfo.100.DebugCompositeType" => .value_enum,
276 .@"NonSemantic.Shader.DebugInfo.100.DebugTypeQualifier" => .value_enum,
277 .@"NonSemantic.Shader.DebugInfo.100.DebugOperation" => .value_enum,
278 .@"NonSemantic.Shader.DebugInfo.100.DebugImportedEntity" => .value_enum,
279 .@"NonSemantic.ClspvReflection.6.KernelPropertyFlags" => .bit_enum,
280 .@"DebugInfo.DebugInfoFlags" => .bit_enum,
281 .@"DebugInfo.DebugBaseTypeAttributeEncoding" => .value_enum,
282 .@"DebugInfo.DebugCompositeType" => .value_enum,
283 .@"DebugInfo.DebugTypeQualifier" => .value_enum,
284 .@"DebugInfo.DebugOperation" => .value_enum,
206 .opcode => .literal,
207 .image_operands => .bit_enum,
208 .fp_fast_math_mode => .bit_enum,
209 .selection_control => .bit_enum,
210 .loop_control => .bit_enum,
211 .function_control => .bit_enum,
212 .memory_semantics => .bit_enum,
213 .memory_access => .bit_enum,
214 .kernel_profiling_info => .bit_enum,
215 .ray_flags => .bit_enum,
216 .fragment_shading_rate => .bit_enum,
217 .raw_access_chain_operands => .bit_enum,
218 .source_language => .value_enum,
219 .execution_model => .value_enum,
220 .addressing_model => .value_enum,
221 .memory_model => .value_enum,
222 .execution_mode => .value_enum,
223 .storage_class => .value_enum,
224 .dim => .value_enum,
225 .sampler_addressing_mode => .value_enum,
226 .sampler_filter_mode => .value_enum,
227 .image_format => .value_enum,
228 .image_channel_order => .value_enum,
229 .image_channel_data_type => .value_enum,
230 .fp_rounding_mode => .value_enum,
231 .fp_denorm_mode => .value_enum,
232 .quantization_modes => .value_enum,
233 .fp_operation_mode => .value_enum,
234 .overflow_modes => .value_enum,
235 .linkage_type => .value_enum,
236 .access_qualifier => .value_enum,
237 .host_access_qualifier => .value_enum,
238 .function_parameter_attribute => .value_enum,
239 .decoration => .value_enum,
240 .built_in => .value_enum,
241 .scope => .value_enum,
242 .group_operation => .value_enum,
243 .kernel_enqueue_flags => .value_enum,
244 .capability => .value_enum,
245 .ray_query_intersection => .value_enum,
246 .ray_query_committed_intersection_type => .value_enum,
247 .ray_query_candidate_intersection_type => .value_enum,
248 .packed_vector_format => .value_enum,
249 .cooperative_matrix_operands => .bit_enum,
250 .cooperative_matrix_layout => .value_enum,
251 .cooperative_matrix_use => .value_enum,
252 .cooperative_matrix_reduce => .bit_enum,
253 .tensor_clamp_mode => .value_enum,
254 .tensor_addressing_operands => .bit_enum,
255 .initialization_mode_qualifier => .value_enum,
256 .load_cache_control => .value_enum,
257 .store_cache_control => .value_enum,
258 .named_maximum_number_of_registers => .value_enum,
259 .matrix_multiply_accumulate_operands => .bit_enum,
260 .fp_encoding => .value_enum,
261 .cooperative_vector_matrix_layout => .value_enum,
262 .component_type => .value_enum,
263 .id_result_type => .id,
264 .id_result => .id,
265 .id_memory_semantics => .id,
266 .id_scope => .id,
267 .id_ref => .id,
268 .literal_integer => .literal,
269 .literal_string => .literal,
270 .literal_float => .literal,
271 .literal_context_dependent_number => .literal,
272 .literal_ext_inst_integer => .literal,
273 .literal_spec_constant_op_integer => .literal,
274 .pair_literal_integer_id_ref => .composite,
275 .pair_id_ref_literal_integer => .composite,
276 .pair_id_ref_id_ref => .composite,
277 .tensor_operands => .bit_enum,
278 .debug_info_debug_info_flags => .bit_enum,
279 .debug_info_debug_base_type_attribute_encoding => .value_enum,
280 .debug_info_debug_composite_type => .value_enum,
281 .debug_info_debug_type_qualifier => .value_enum,
282 .debug_info_debug_operation => .value_enum,
283 .open_cl_debug_info_100_debug_info_flags => .bit_enum,
284 .open_cl_debug_info_100_debug_base_type_attribute_encoding => .value_enum,
285 .open_cl_debug_info_100_debug_composite_type => .value_enum,
286 .open_cl_debug_info_100_debug_type_qualifier => .value_enum,
287 .open_cl_debug_info_100_debug_operation => .value_enum,
288 .open_cl_debug_info_100_debug_imported_entity => .value_enum,
289 .non_semantic_clspv_reflection_6_kernel_property_flags => .bit_enum,
290 .non_semantic_shader_debug_info_100_debug_info_flags => .bit_enum,
291 .non_semantic_shader_debug_info_100_build_identifier_flags => .bit_enum,
292 .non_semantic_shader_debug_info_100_debug_base_type_attribute_encoding => .value_enum,
293 .non_semantic_shader_debug_info_100_debug_composite_type => .value_enum,
294 .non_semantic_shader_debug_info_100_debug_type_qualifier => .value_enum,
295 .non_semantic_shader_debug_info_100_debug_operation => .value_enum,
296 .non_semantic_shader_debug_info_100_debug_imported_entity => .value_enum,
285297 };
286298 }
287299 pub fn enumerants(self: OperandKind) []const Enumerant {
288300 return switch (self) {
289 .Opcode => unreachable,
290 .ImageOperands => &[_]Enumerant{
291 .{ .name = "Bias", .value = 0x0001, .parameters = &[_]OperandKind{.IdRef} },
292 .{ .name = "Lod", .value = 0x0002, .parameters = &[_]OperandKind{.IdRef} },
293 .{ .name = "Grad", .value = 0x0004, .parameters = &[_]OperandKind{ .IdRef, .IdRef } },
294 .{ .name = "ConstOffset", .value = 0x0008, .parameters = &[_]OperandKind{.IdRef} },
295 .{ .name = "Offset", .value = 0x0010, .parameters = &[_]OperandKind{.IdRef} },
296 .{ .name = "ConstOffsets", .value = 0x0020, .parameters = &[_]OperandKind{.IdRef} },
297 .{ .name = "Sample", .value = 0x0040, .parameters = &[_]OperandKind{.IdRef} },
298 .{ .name = "MinLod", .value = 0x0080, .parameters = &[_]OperandKind{.IdRef} },
299 .{ .name = "MakeTexelAvailable", .value = 0x0100, .parameters = &[_]OperandKind{.IdScope} },
300 .{ .name = "MakeTexelAvailableKHR", .value = 0x0100, .parameters = &[_]OperandKind{.IdScope} },
301 .{ .name = "MakeTexelVisible", .value = 0x0200, .parameters = &[_]OperandKind{.IdScope} },
302 .{ .name = "MakeTexelVisibleKHR", .value = 0x0200, .parameters = &[_]OperandKind{.IdScope} },
303 .{ .name = "NonPrivateTexel", .value = 0x0400, .parameters = &[_]OperandKind{} },
304 .{ .name = "NonPrivateTexelKHR", .value = 0x0400, .parameters = &[_]OperandKind{} },
305 .{ .name = "VolatileTexel", .value = 0x0800, .parameters = &[_]OperandKind{} },
306 .{ .name = "VolatileTexelKHR", .value = 0x0800, .parameters = &[_]OperandKind{} },
307 .{ .name = "SignExtend", .value = 0x1000, .parameters = &[_]OperandKind{} },
308 .{ .name = "ZeroExtend", .value = 0x2000, .parameters = &[_]OperandKind{} },
309 .{ .name = "Nontemporal", .value = 0x4000, .parameters = &[_]OperandKind{} },
310 .{ .name = "Offsets", .value = 0x10000, .parameters = &[_]OperandKind{.IdRef} },
301 .opcode => unreachable,
302 .image_operands => &.{
303 .{ .name = "Bias", .value = 0x0001, .parameters = &.{.id_ref} },
304 .{ .name = "Lod", .value = 0x0002, .parameters = &.{.id_ref} },
305 .{ .name = "Grad", .value = 0x0004, .parameters = &.{ .id_ref, .id_ref } },
306 .{ .name = "ConstOffset", .value = 0x0008, .parameters = &.{.id_ref} },
307 .{ .name = "Offset", .value = 0x0010, .parameters = &.{.id_ref} },
308 .{ .name = "ConstOffsets", .value = 0x0020, .parameters = &.{.id_ref} },
309 .{ .name = "Sample", .value = 0x0040, .parameters = &.{.id_ref} },
310 .{ .name = "MinLod", .value = 0x0080, .parameters = &.{.id_ref} },
311 .{ .name = "MakeTexelAvailable", .value = 0x0100, .parameters = &.{.id_scope} },
312 .{ .name = "MakeTexelVisible", .value = 0x0200, .parameters = &.{.id_scope} },
313 .{ .name = "NonPrivateTexel", .value = 0x0400, .parameters = &.{} },
314 .{ .name = "VolatileTexel", .value = 0x0800, .parameters = &.{} },
315 .{ .name = "SignExtend", .value = 0x1000, .parameters = &.{} },
316 .{ .name = "ZeroExtend", .value = 0x2000, .parameters = &.{} },
317 .{ .name = "Nontemporal", .value = 0x4000, .parameters = &.{} },
318 .{ .name = "Offsets", .value = 0x10000, .parameters = &.{.id_ref} },
319 },
320 .fp_fast_math_mode => &.{
321 .{ .name = "NotNaN", .value = 0x0001, .parameters = &.{} },
322 .{ .name = "NotInf", .value = 0x0002, .parameters = &.{} },
323 .{ .name = "NSZ", .value = 0x0004, .parameters = &.{} },
324 .{ .name = "AllowRecip", .value = 0x0008, .parameters = &.{} },
325 .{ .name = "Fast", .value = 0x0010, .parameters = &.{} },
326 .{ .name = "AllowContract", .value = 0x10000, .parameters = &.{} },
327 .{ .name = "AllowReassoc", .value = 0x20000, .parameters = &.{} },
328 .{ .name = "AllowTransform", .value = 0x40000, .parameters = &.{} },
329 },
330 .selection_control => &.{
331 .{ .name = "Flatten", .value = 0x0001, .parameters = &.{} },
332 .{ .name = "DontFlatten", .value = 0x0002, .parameters = &.{} },
333 },
334 .loop_control => &.{
335 .{ .name = "Unroll", .value = 0x0001, .parameters = &.{} },
336 .{ .name = "DontUnroll", .value = 0x0002, .parameters = &.{} },
337 .{ .name = "DependencyInfinite", .value = 0x0004, .parameters = &.{} },
338 .{ .name = "DependencyLength", .value = 0x0008, .parameters = &.{.literal_integer} },
339 .{ .name = "MinIterations", .value = 0x0010, .parameters = &.{.literal_integer} },
340 .{ .name = "MaxIterations", .value = 0x0020, .parameters = &.{.literal_integer} },
341 .{ .name = "IterationMultiple", .value = 0x0040, .parameters = &.{.literal_integer} },
342 .{ .name = "PeelCount", .value = 0x0080, .parameters = &.{.literal_integer} },
343 .{ .name = "PartialCount", .value = 0x0100, .parameters = &.{.literal_integer} },
344 .{ .name = "InitiationIntervalINTEL", .value = 0x10000, .parameters = &.{.literal_integer} },
345 .{ .name = "MaxConcurrencyINTEL", .value = 0x20000, .parameters = &.{.literal_integer} },
346 .{ .name = "DependencyArrayINTEL", .value = 0x40000, .parameters = &.{.literal_integer} },
347 .{ .name = "PipelineEnableINTEL", .value = 0x80000, .parameters = &.{.literal_integer} },
348 .{ .name = "LoopCoalesceINTEL", .value = 0x100000, .parameters = &.{.literal_integer} },
349 .{ .name = "MaxInterleavingINTEL", .value = 0x200000, .parameters = &.{.literal_integer} },
350 .{ .name = "SpeculatedIterationsINTEL", .value = 0x400000, .parameters = &.{.literal_integer} },
351 .{ .name = "NoFusionINTEL", .value = 0x800000, .parameters = &.{} },
352 .{ .name = "LoopCountINTEL", .value = 0x1000000, .parameters = &.{.literal_integer} },
353 .{ .name = "MaxReinvocationDelayINTEL", .value = 0x2000000, .parameters = &.{.literal_integer} },
354 },
355 .function_control => &.{
356 .{ .name = "Inline", .value = 0x0001, .parameters = &.{} },
357 .{ .name = "DontInline", .value = 0x0002, .parameters = &.{} },
358 .{ .name = "Pure", .value = 0x0004, .parameters = &.{} },
359 .{ .name = "Const", .value = 0x0008, .parameters = &.{} },
360 .{ .name = "OptNoneEXT", .value = 0x10000, .parameters = &.{} },
361 },
362 .memory_semantics => &.{
363 .{ .name = "Relaxed", .value = 0x0000, .parameters = &.{} },
364 .{ .name = "Acquire", .value = 0x0002, .parameters = &.{} },
365 .{ .name = "Release", .value = 0x0004, .parameters = &.{} },
366 .{ .name = "AcquireRelease", .value = 0x0008, .parameters = &.{} },
367 .{ .name = "SequentiallyConsistent", .value = 0x0010, .parameters = &.{} },
368 .{ .name = "UniformMemory", .value = 0x0040, .parameters = &.{} },
369 .{ .name = "SubgroupMemory", .value = 0x0080, .parameters = &.{} },
370 .{ .name = "WorkgroupMemory", .value = 0x0100, .parameters = &.{} },
371 .{ .name = "CrossWorkgroupMemory", .value = 0x0200, .parameters = &.{} },
372 .{ .name = "AtomicCounterMemory", .value = 0x0400, .parameters = &.{} },
373 .{ .name = "ImageMemory", .value = 0x0800, .parameters = &.{} },
374 .{ .name = "OutputMemory", .value = 0x1000, .parameters = &.{} },
375 .{ .name = "MakeAvailable", .value = 0x2000, .parameters = &.{} },
376 .{ .name = "MakeVisible", .value = 0x4000, .parameters = &.{} },
377 .{ .name = "Volatile", .value = 0x8000, .parameters = &.{} },
378 },
379 .memory_access => &.{
380 .{ .name = "Volatile", .value = 0x0001, .parameters = &.{} },
381 .{ .name = "Aligned", .value = 0x0002, .parameters = &.{.literal_integer} },
382 .{ .name = "Nontemporal", .value = 0x0004, .parameters = &.{} },
383 .{ .name = "MakePointerAvailable", .value = 0x0008, .parameters = &.{.id_scope} },
384 .{ .name = "MakePointerVisible", .value = 0x0010, .parameters = &.{.id_scope} },
385 .{ .name = "NonPrivatePointer", .value = 0x0020, .parameters = &.{} },
386 .{ .name = "AliasScopeINTELMask", .value = 0x10000, .parameters = &.{.id_ref} },
387 .{ .name = "NoAliasINTELMask", .value = 0x20000, .parameters = &.{.id_ref} },
311388 },
312 .FPFastMathMode => &[_]Enumerant{
313 .{ .name = "NotNaN", .value = 0x0001, .parameters = &[_]OperandKind{} },
314 .{ .name = "NotInf", .value = 0x0002, .parameters = &[_]OperandKind{} },
315 .{ .name = "NSZ", .value = 0x0004, .parameters = &[_]OperandKind{} },
316 .{ .name = "AllowRecip", .value = 0x0008, .parameters = &[_]OperandKind{} },
317 .{ .name = "Fast", .value = 0x0010, .parameters = &[_]OperandKind{} },
318 .{ .name = "AllowContract", .value = 0x10000, .parameters = &[_]OperandKind{} },
319 .{ .name = "AllowContractFastINTEL", .value = 0x10000, .parameters = &[_]OperandKind{} },
320 .{ .name = "AllowReassoc", .value = 0x20000, .parameters = &[_]OperandKind{} },
321 .{ .name = "AllowReassocINTEL", .value = 0x20000, .parameters = &[_]OperandKind{} },
322 .{ .name = "AllowTransform", .value = 0x40000, .parameters = &[_]OperandKind{} },
389 .kernel_profiling_info => &.{
390 .{ .name = "CmdExecTime", .value = 0x0001, .parameters = &.{} },
323391 },
324 .SelectionControl => &[_]Enumerant{
325 .{ .name = "Flatten", .value = 0x0001, .parameters = &[_]OperandKind{} },
326 .{ .name = "DontFlatten", .value = 0x0002, .parameters = &[_]OperandKind{} },
392 .ray_flags => &.{
393 .{ .name = "NoneKHR", .value = 0x0000, .parameters = &.{} },
394 .{ .name = "OpaqueKHR", .value = 0x0001, .parameters = &.{} },
395 .{ .name = "NoOpaqueKHR", .value = 0x0002, .parameters = &.{} },
396 .{ .name = "TerminateOnFirstHitKHR", .value = 0x0004, .parameters = &.{} },
397 .{ .name = "SkipClosestHitShaderKHR", .value = 0x0008, .parameters = &.{} },
398 .{ .name = "CullBackFacingTrianglesKHR", .value = 0x0010, .parameters = &.{} },
399 .{ .name = "CullFrontFacingTrianglesKHR", .value = 0x0020, .parameters = &.{} },
400 .{ .name = "CullOpaqueKHR", .value = 0x0040, .parameters = &.{} },
401 .{ .name = "CullNoOpaqueKHR", .value = 0x0080, .parameters = &.{} },
402 .{ .name = "SkipTrianglesKHR", .value = 0x0100, .parameters = &.{} },
403 .{ .name = "SkipAABBsKHR", .value = 0x0200, .parameters = &.{} },
404 .{ .name = "ForceOpacityMicromap2StateEXT", .value = 0x0400, .parameters = &.{} },
327405 },
328 .LoopControl => &[_]Enumerant{
329 .{ .name = "Unroll", .value = 0x0001, .parameters = &[_]OperandKind{} },
330 .{ .name = "DontUnroll", .value = 0x0002, .parameters = &[_]OperandKind{} },
331 .{ .name = "DependencyInfinite", .value = 0x0004, .parameters = &[_]OperandKind{} },
332 .{ .name = "DependencyLength", .value = 0x0008, .parameters = &[_]OperandKind{.LiteralInteger} },
333 .{ .name = "MinIterations", .value = 0x0010, .parameters = &[_]OperandKind{.LiteralInteger} },
334 .{ .name = "MaxIterations", .value = 0x0020, .parameters = &[_]OperandKind{.LiteralInteger} },
335 .{ .name = "IterationMultiple", .value = 0x0040, .parameters = &[_]OperandKind{.LiteralInteger} },
336 .{ .name = "PeelCount", .value = 0x0080, .parameters = &[_]OperandKind{.LiteralInteger} },
337 .{ .name = "PartialCount", .value = 0x0100, .parameters = &[_]OperandKind{.LiteralInteger} },
338 .{ .name = "InitiationIntervalINTEL", .value = 0x10000, .parameters = &[_]OperandKind{.LiteralInteger} },
339 .{ .name = "MaxConcurrencyINTEL", .value = 0x20000, .parameters = &[_]OperandKind{.LiteralInteger} },
340 .{ .name = "DependencyArrayINTEL", .value = 0x40000, .parameters = &[_]OperandKind{.LiteralInteger} },
341 .{ .name = "PipelineEnableINTEL", .value = 0x80000, .parameters = &[_]OperandKind{.LiteralInteger} },
342 .{ .name = "LoopCoalesceINTEL", .value = 0x100000, .parameters = &[_]OperandKind{.LiteralInteger} },
343 .{ .name = "MaxInterleavingINTEL", .value = 0x200000, .parameters = &[_]OperandKind{.LiteralInteger} },
344 .{ .name = "SpeculatedIterationsINTEL", .value = 0x400000, .parameters = &[_]OperandKind{.LiteralInteger} },
345 .{ .name = "NoFusionINTEL", .value = 0x800000, .parameters = &[_]OperandKind{} },
346 .{ .name = "LoopCountINTEL", .value = 0x1000000, .parameters = &[_]OperandKind{.LiteralInteger} },
347 .{ .name = "MaxReinvocationDelayINTEL", .value = 0x2000000, .parameters = &[_]OperandKind{.LiteralInteger} },
406 .fragment_shading_rate => &.{
407 .{ .name = "Vertical2Pixels", .value = 0x0001, .parameters = &.{} },
408 .{ .name = "Vertical4Pixels", .value = 0x0002, .parameters = &.{} },
409 .{ .name = "Horizontal2Pixels", .value = 0x0004, .parameters = &.{} },
410 .{ .name = "Horizontal4Pixels", .value = 0x0008, .parameters = &.{} },
348411 },
349 .FunctionControl => &[_]Enumerant{
350 .{ .name = "Inline", .value = 0x0001, .parameters = &[_]OperandKind{} },
351 .{ .name = "DontInline", .value = 0x0002, .parameters = &[_]OperandKind{} },
352 .{ .name = "Pure", .value = 0x0004, .parameters = &[_]OperandKind{} },
353 .{ .name = "Const", .value = 0x0008, .parameters = &[_]OperandKind{} },
354 .{ .name = "OptNoneINTEL", .value = 0x10000, .parameters = &[_]OperandKind{} },
412 .raw_access_chain_operands => &.{
413 .{ .name = "RobustnessPerComponentNV", .value = 0x0001, .parameters = &.{} },
414 .{ .name = "RobustnessPerElementNV", .value = 0x0002, .parameters = &.{} },
355415 },
356 .MemorySemantics => &[_]Enumerant{
357 .{ .name = "Relaxed", .value = 0x0000, .parameters = &[_]OperandKind{} },
358 .{ .name = "Acquire", .value = 0x0002, .parameters = &[_]OperandKind{} },
359 .{ .name = "Release", .value = 0x0004, .parameters = &[_]OperandKind{} },
360 .{ .name = "AcquireRelease", .value = 0x0008, .parameters = &[_]OperandKind{} },
361 .{ .name = "SequentiallyConsistent", .value = 0x0010, .parameters = &[_]OperandKind{} },
362 .{ .name = "UniformMemory", .value = 0x0040, .parameters = &[_]OperandKind{} },
363 .{ .name = "SubgroupMemory", .value = 0x0080, .parameters = &[_]OperandKind{} },
364 .{ .name = "WorkgroupMemory", .value = 0x0100, .parameters = &[_]OperandKind{} },
365 .{ .name = "CrossWorkgroupMemory", .value = 0x0200, .parameters = &[_]OperandKind{} },
366 .{ .name = "AtomicCounterMemory", .value = 0x0400, .parameters = &[_]OperandKind{} },
367 .{ .name = "ImageMemory", .value = 0x0800, .parameters = &[_]OperandKind{} },
368 .{ .name = "OutputMemory", .value = 0x1000, .parameters = &[_]OperandKind{} },
369 .{ .name = "OutputMemoryKHR", .value = 0x1000, .parameters = &[_]OperandKind{} },
370 .{ .name = "MakeAvailable", .value = 0x2000, .parameters = &[_]OperandKind{} },
371 .{ .name = "MakeAvailableKHR", .value = 0x2000, .parameters = &[_]OperandKind{} },
372 .{ .name = "MakeVisible", .value = 0x4000, .parameters = &[_]OperandKind{} },
373 .{ .name = "MakeVisibleKHR", .value = 0x4000, .parameters = &[_]OperandKind{} },
374 .{ .name = "Volatile", .value = 0x8000, .parameters = &[_]OperandKind{} },
416 .source_language => &.{
417 .{ .name = "Unknown", .value = 0, .parameters = &.{} },
418 .{ .name = "ESSL", .value = 1, .parameters = &.{} },
419 .{ .name = "GLSL", .value = 2, .parameters = &.{} },
420 .{ .name = "OpenCL_C", .value = 3, .parameters = &.{} },
421 .{ .name = "OpenCL_CPP", .value = 4, .parameters = &.{} },
422 .{ .name = "HLSL", .value = 5, .parameters = &.{} },
423 .{ .name = "CPP_for_OpenCL", .value = 6, .parameters = &.{} },
424 .{ .name = "SYCL", .value = 7, .parameters = &.{} },
425 .{ .name = "HERO_C", .value = 8, .parameters = &.{} },
426 .{ .name = "NZSL", .value = 9, .parameters = &.{} },
427 .{ .name = "WGSL", .value = 10, .parameters = &.{} },
428 .{ .name = "Slang", .value = 11, .parameters = &.{} },
429 .{ .name = "Zig", .value = 12, .parameters = &.{} },
430 .{ .name = "Rust", .value = 13, .parameters = &.{} },
375431 },
376 .MemoryAccess => &[_]Enumerant{
377 .{ .name = "Volatile", .value = 0x0001, .parameters = &[_]OperandKind{} },
378 .{ .name = "Aligned", .value = 0x0002, .parameters = &[_]OperandKind{.LiteralInteger} },
379 .{ .name = "Nontemporal", .value = 0x0004, .parameters = &[_]OperandKind{} },
380 .{ .name = "MakePointerAvailable", .value = 0x0008, .parameters = &[_]OperandKind{.IdScope} },
381 .{ .name = "MakePointerAvailableKHR", .value = 0x0008, .parameters = &[_]OperandKind{.IdScope} },
382 .{ .name = "MakePointerVisible", .value = 0x0010, .parameters = &[_]OperandKind{.IdScope} },
383 .{ .name = "MakePointerVisibleKHR", .value = 0x0010, .parameters = &[_]OperandKind{.IdScope} },
384 .{ .name = "NonPrivatePointer", .value = 0x0020, .parameters = &[_]OperandKind{} },
385 .{ .name = "NonPrivatePointerKHR", .value = 0x0020, .parameters = &[_]OperandKind{} },
386 .{ .name = "AliasScopeINTELMask", .value = 0x10000, .parameters = &[_]OperandKind{.IdRef} },
387 .{ .name = "NoAliasINTELMask", .value = 0x20000, .parameters = &[_]OperandKind{.IdRef} },
432 .execution_model => &.{
433 .{ .name = "Vertex", .value = 0, .parameters = &.{} },
434 .{ .name = "TessellationControl", .value = 1, .parameters = &.{} },
435 .{ .name = "TessellationEvaluation", .value = 2, .parameters = &.{} },
436 .{ .name = "Geometry", .value = 3, .parameters = &.{} },
437 .{ .name = "Fragment", .value = 4, .parameters = &.{} },
438 .{ .name = "GLCompute", .value = 5, .parameters = &.{} },
439 .{ .name = "Kernel", .value = 6, .parameters = &.{} },
440 .{ .name = "TaskNV", .value = 5267, .parameters = &.{} },
441 .{ .name = "MeshNV", .value = 5268, .parameters = &.{} },
442 .{ .name = "RayGenerationKHR", .value = 5313, .parameters = &.{} },
443 .{ .name = "IntersectionKHR", .value = 5314, .parameters = &.{} },
444 .{ .name = "AnyHitKHR", .value = 5315, .parameters = &.{} },
445 .{ .name = "ClosestHitKHR", .value = 5316, .parameters = &.{} },
446 .{ .name = "MissKHR", .value = 5317, .parameters = &.{} },
447 .{ .name = "CallableKHR", .value = 5318, .parameters = &.{} },
448 .{ .name = "TaskEXT", .value = 5364, .parameters = &.{} },
449 .{ .name = "MeshEXT", .value = 5365, .parameters = &.{} },
388450 },
389 .KernelProfilingInfo => &[_]Enumerant{
390 .{ .name = "CmdExecTime", .value = 0x0001, .parameters = &[_]OperandKind{} },
451 .addressing_model => &.{
452 .{ .name = "Logical", .value = 0, .parameters = &.{} },
453 .{ .name = "Physical32", .value = 1, .parameters = &.{} },
454 .{ .name = "Physical64", .value = 2, .parameters = &.{} },
455 .{ .name = "PhysicalStorageBuffer64", .value = 5348, .parameters = &.{} },
391456 },
392 .RayFlags => &[_]Enumerant{
393 .{ .name = "NoneKHR", .value = 0x0000, .parameters = &[_]OperandKind{} },
394 .{ .name = "OpaqueKHR", .value = 0x0001, .parameters = &[_]OperandKind{} },
395 .{ .name = "NoOpaqueKHR", .value = 0x0002, .parameters = &[_]OperandKind{} },
396 .{ .name = "TerminateOnFirstHitKHR", .value = 0x0004, .parameters = &[_]OperandKind{} },
397 .{ .name = "SkipClosestHitShaderKHR", .value = 0x0008, .parameters = &[_]OperandKind{} },
398 .{ .name = "CullBackFacingTrianglesKHR", .value = 0x0010, .parameters = &[_]OperandKind{} },
399 .{ .name = "CullFrontFacingTrianglesKHR", .value = 0x0020, .parameters = &[_]OperandKind{} },
400 .{ .name = "CullOpaqueKHR", .value = 0x0040, .parameters = &[_]OperandKind{} },
401 .{ .name = "CullNoOpaqueKHR", .value = 0x0080, .parameters = &[_]OperandKind{} },
402 .{ .name = "SkipTrianglesKHR", .value = 0x0100, .parameters = &[_]OperandKind{} },
403 .{ .name = "SkipAABBsKHR", .value = 0x0200, .parameters = &[_]OperandKind{} },
404 .{ .name = "ForceOpacityMicromap2StateEXT", .value = 0x0400, .parameters = &[_]OperandKind{} },
457 .memory_model => &.{
458 .{ .name = "Simple", .value = 0, .parameters = &.{} },
459 .{ .name = "GLSL450", .value = 1, .parameters = &.{} },
460 .{ .name = "OpenCL", .value = 2, .parameters = &.{} },
461 .{ .name = "Vulkan", .value = 3, .parameters = &.{} },
405462 },
406 .FragmentShadingRate => &[_]Enumerant{
407 .{ .name = "Vertical2Pixels", .value = 0x0001, .parameters = &[_]OperandKind{} },
408 .{ .name = "Vertical4Pixels", .value = 0x0002, .parameters = &[_]OperandKind{} },
409 .{ .name = "Horizontal2Pixels", .value = 0x0004, .parameters = &[_]OperandKind{} },
410 .{ .name = "Horizontal4Pixels", .value = 0x0008, .parameters = &[_]OperandKind{} },
463 .execution_mode => &.{
464 .{ .name = "Invocations", .value = 0, .parameters = &.{.literal_integer} },
465 .{ .name = "SpacingEqual", .value = 1, .parameters = &.{} },
466 .{ .name = "SpacingFractionalEven", .value = 2, .parameters = &.{} },
467 .{ .name = "SpacingFractionalOdd", .value = 3, .parameters = &.{} },
468 .{ .name = "VertexOrderCw", .value = 4, .parameters = &.{} },
469 .{ .name = "VertexOrderCcw", .value = 5, .parameters = &.{} },
470 .{ .name = "PixelCenterInteger", .value = 6, .parameters = &.{} },
471 .{ .name = "OriginUpperLeft", .value = 7, .parameters = &.{} },
472 .{ .name = "OriginLowerLeft", .value = 8, .parameters = &.{} },
473 .{ .name = "EarlyFragmentTests", .value = 9, .parameters = &.{} },
474 .{ .name = "PointMode", .value = 10, .parameters = &.{} },
475 .{ .name = "Xfb", .value = 11, .parameters = &.{} },
476 .{ .name = "DepthReplacing", .value = 12, .parameters = &.{} },
477 .{ .name = "DepthGreater", .value = 14, .parameters = &.{} },
478 .{ .name = "DepthLess", .value = 15, .parameters = &.{} },
479 .{ .name = "DepthUnchanged", .value = 16, .parameters = &.{} },
480 .{ .name = "LocalSize", .value = 17, .parameters = &.{ .literal_integer, .literal_integer, .literal_integer } },
481 .{ .name = "LocalSizeHint", .value = 18, .parameters = &.{ .literal_integer, .literal_integer, .literal_integer } },
482 .{ .name = "InputPoints", .value = 19, .parameters = &.{} },
483 .{ .name = "InputLines", .value = 20, .parameters = &.{} },
484 .{ .name = "InputLinesAdjacency", .value = 21, .parameters = &.{} },
485 .{ .name = "Triangles", .value = 22, .parameters = &.{} },
486 .{ .name = "InputTrianglesAdjacency", .value = 23, .parameters = &.{} },
487 .{ .name = "Quads", .value = 24, .parameters = &.{} },
488 .{ .name = "Isolines", .value = 25, .parameters = &.{} },
489 .{ .name = "OutputVertices", .value = 26, .parameters = &.{.literal_integer} },
490 .{ .name = "OutputPoints", .value = 27, .parameters = &.{} },
491 .{ .name = "OutputLineStrip", .value = 28, .parameters = &.{} },
492 .{ .name = "OutputTriangleStrip", .value = 29, .parameters = &.{} },
493 .{ .name = "VecTypeHint", .value = 30, .parameters = &.{.literal_integer} },
494 .{ .name = "ContractionOff", .value = 31, .parameters = &.{} },
495 .{ .name = "Initializer", .value = 33, .parameters = &.{} },
496 .{ .name = "Finalizer", .value = 34, .parameters = &.{} },
497 .{ .name = "SubgroupSize", .value = 35, .parameters = &.{.literal_integer} },
498 .{ .name = "SubgroupsPerWorkgroup", .value = 36, .parameters = &.{.literal_integer} },
499 .{ .name = "SubgroupsPerWorkgroupId", .value = 37, .parameters = &.{.id_ref} },
500 .{ .name = "LocalSizeId", .value = 38, .parameters = &.{ .id_ref, .id_ref, .id_ref } },
501 .{ .name = "LocalSizeHintId", .value = 39, .parameters = &.{ .id_ref, .id_ref, .id_ref } },
502 .{ .name = "NonCoherentColorAttachmentReadEXT", .value = 4169, .parameters = &.{} },
503 .{ .name = "NonCoherentDepthAttachmentReadEXT", .value = 4170, .parameters = &.{} },
504 .{ .name = "NonCoherentStencilAttachmentReadEXT", .value = 4171, .parameters = &.{} },
505 .{ .name = "SubgroupUniformControlFlowKHR", .value = 4421, .parameters = &.{} },
506 .{ .name = "PostDepthCoverage", .value = 4446, .parameters = &.{} },
507 .{ .name = "DenormPreserve", .value = 4459, .parameters = &.{.literal_integer} },
508 .{ .name = "DenormFlushToZero", .value = 4460, .parameters = &.{.literal_integer} },
509 .{ .name = "SignedZeroInfNanPreserve", .value = 4461, .parameters = &.{.literal_integer} },
510 .{ .name = "RoundingModeRTE", .value = 4462, .parameters = &.{.literal_integer} },
511 .{ .name = "RoundingModeRTZ", .value = 4463, .parameters = &.{.literal_integer} },
512 .{ .name = "NonCoherentTileAttachmentReadQCOM", .value = 4489, .parameters = &.{} },
513 .{ .name = "TileShadingRateQCOM", .value = 4490, .parameters = &.{ .literal_integer, .literal_integer, .literal_integer } },
514 .{ .name = "EarlyAndLateFragmentTestsAMD", .value = 5017, .parameters = &.{} },
515 .{ .name = "StencilRefReplacingEXT", .value = 5027, .parameters = &.{} },
516 .{ .name = "CoalescingAMDX", .value = 5069, .parameters = &.{} },
517 .{ .name = "IsApiEntryAMDX", .value = 5070, .parameters = &.{.id_ref} },
518 .{ .name = "MaxNodeRecursionAMDX", .value = 5071, .parameters = &.{.id_ref} },
519 .{ .name = "StaticNumWorkgroupsAMDX", .value = 5072, .parameters = &.{ .id_ref, .id_ref, .id_ref } },
520 .{ .name = "ShaderIndexAMDX", .value = 5073, .parameters = &.{.id_ref} },
521 .{ .name = "MaxNumWorkgroupsAMDX", .value = 5077, .parameters = &.{ .id_ref, .id_ref, .id_ref } },
522 .{ .name = "StencilRefUnchangedFrontAMD", .value = 5079, .parameters = &.{} },
523 .{ .name = "StencilRefGreaterFrontAMD", .value = 5080, .parameters = &.{} },
524 .{ .name = "StencilRefLessFrontAMD", .value = 5081, .parameters = &.{} },
525 .{ .name = "StencilRefUnchangedBackAMD", .value = 5082, .parameters = &.{} },
526 .{ .name = "StencilRefGreaterBackAMD", .value = 5083, .parameters = &.{} },
527 .{ .name = "StencilRefLessBackAMD", .value = 5084, .parameters = &.{} },
528 .{ .name = "QuadDerivativesKHR", .value = 5088, .parameters = &.{} },
529 .{ .name = "RequireFullQuadsKHR", .value = 5089, .parameters = &.{} },
530 .{ .name = "SharesInputWithAMDX", .value = 5102, .parameters = &.{ .id_ref, .id_ref } },
531 .{ .name = "OutputLinesEXT", .value = 5269, .parameters = &.{} },
532 .{ .name = "OutputPrimitivesEXT", .value = 5270, .parameters = &.{.literal_integer} },
533 .{ .name = "DerivativeGroupQuadsKHR", .value = 5289, .parameters = &.{} },
534 .{ .name = "DerivativeGroupLinearKHR", .value = 5290, .parameters = &.{} },
535 .{ .name = "OutputTrianglesEXT", .value = 5298, .parameters = &.{} },
536 .{ .name = "PixelInterlockOrderedEXT", .value = 5366, .parameters = &.{} },
537 .{ .name = "PixelInterlockUnorderedEXT", .value = 5367, .parameters = &.{} },
538 .{ .name = "SampleInterlockOrderedEXT", .value = 5368, .parameters = &.{} },
539 .{ .name = "SampleInterlockUnorderedEXT", .value = 5369, .parameters = &.{} },
540 .{ .name = "ShadingRateInterlockOrderedEXT", .value = 5370, .parameters = &.{} },
541 .{ .name = "ShadingRateInterlockUnorderedEXT", .value = 5371, .parameters = &.{} },
542 .{ .name = "SharedLocalMemorySizeINTEL", .value = 5618, .parameters = &.{.literal_integer} },
543 .{ .name = "RoundingModeRTPINTEL", .value = 5620, .parameters = &.{.literal_integer} },
544 .{ .name = "RoundingModeRTNINTEL", .value = 5621, .parameters = &.{.literal_integer} },
545 .{ .name = "FloatingPointModeALTINTEL", .value = 5622, .parameters = &.{.literal_integer} },
546 .{ .name = "FloatingPointModeIEEEINTEL", .value = 5623, .parameters = &.{.literal_integer} },
547 .{ .name = "MaxWorkgroupSizeINTEL", .value = 5893, .parameters = &.{ .literal_integer, .literal_integer, .literal_integer } },
548 .{ .name = "MaxWorkDimINTEL", .value = 5894, .parameters = &.{.literal_integer} },
549 .{ .name = "NoGlobalOffsetINTEL", .value = 5895, .parameters = &.{} },
550 .{ .name = "NumSIMDWorkitemsINTEL", .value = 5896, .parameters = &.{.literal_integer} },
551 .{ .name = "SchedulerTargetFmaxMhzINTEL", .value = 5903, .parameters = &.{.literal_integer} },
552 .{ .name = "MaximallyReconvergesKHR", .value = 6023, .parameters = &.{} },
553 .{ .name = "FPFastMathDefault", .value = 6028, .parameters = &.{ .id_ref, .id_ref } },
554 .{ .name = "StreamingInterfaceINTEL", .value = 6154, .parameters = &.{.literal_integer} },
555 .{ .name = "RegisterMapInterfaceINTEL", .value = 6160, .parameters = &.{.literal_integer} },
556 .{ .name = "NamedBarrierCountINTEL", .value = 6417, .parameters = &.{.literal_integer} },
557 .{ .name = "MaximumRegistersINTEL", .value = 6461, .parameters = &.{.literal_integer} },
558 .{ .name = "MaximumRegistersIdINTEL", .value = 6462, .parameters = &.{.id_ref} },
559 .{ .name = "NamedMaximumRegistersINTEL", .value = 6463, .parameters = &.{.named_maximum_number_of_registers} },
411560 },
412 .RawAccessChainOperands => &[_]Enumerant{
413 .{ .name = "RobustnessPerComponentNV", .value = 0x0001, .parameters = &[_]OperandKind{} },
414 .{ .name = "RobustnessPerElementNV", .value = 0x0002, .parameters = &[_]OperandKind{} },
561 .storage_class => &.{
562 .{ .name = "UniformConstant", .value = 0, .parameters = &.{} },
563 .{ .name = "Input", .value = 1, .parameters = &.{} },
564 .{ .name = "Uniform", .value = 2, .parameters = &.{} },
565 .{ .name = "Output", .value = 3, .parameters = &.{} },
566 .{ .name = "Workgroup", .value = 4, .parameters = &.{} },
567 .{ .name = "CrossWorkgroup", .value = 5, .parameters = &.{} },
568 .{ .name = "Private", .value = 6, .parameters = &.{} },
569 .{ .name = "Function", .value = 7, .parameters = &.{} },
570 .{ .name = "Generic", .value = 8, .parameters = &.{} },
571 .{ .name = "PushConstant", .value = 9, .parameters = &.{} },
572 .{ .name = "AtomicCounter", .value = 10, .parameters = &.{} },
573 .{ .name = "Image", .value = 11, .parameters = &.{} },
574 .{ .name = "StorageBuffer", .value = 12, .parameters = &.{} },
575 .{ .name = "TileImageEXT", .value = 4172, .parameters = &.{} },
576 .{ .name = "TileAttachmentQCOM", .value = 4491, .parameters = &.{} },
577 .{ .name = "NodePayloadAMDX", .value = 5068, .parameters = &.{} },
578 .{ .name = "CallableDataKHR", .value = 5328, .parameters = &.{} },
579 .{ .name = "IncomingCallableDataKHR", .value = 5329, .parameters = &.{} },
580 .{ .name = "RayPayloadKHR", .value = 5338, .parameters = &.{} },
581 .{ .name = "HitAttributeKHR", .value = 5339, .parameters = &.{} },
582 .{ .name = "IncomingRayPayloadKHR", .value = 5342, .parameters = &.{} },
583 .{ .name = "ShaderRecordBufferKHR", .value = 5343, .parameters = &.{} },
584 .{ .name = "PhysicalStorageBuffer", .value = 5349, .parameters = &.{} },
585 .{ .name = "HitObjectAttributeNV", .value = 5385, .parameters = &.{} },
586 .{ .name = "TaskPayloadWorkgroupEXT", .value = 5402, .parameters = &.{} },
587 .{ .name = "CodeSectionINTEL", .value = 5605, .parameters = &.{} },
588 .{ .name = "DeviceOnlyINTEL", .value = 5936, .parameters = &.{} },
589 .{ .name = "HostOnlyINTEL", .value = 5937, .parameters = &.{} },
415590 },
416 .SourceLanguage => &[_]Enumerant{
417 .{ .name = "Unknown", .value = 0, .parameters = &[_]OperandKind{} },
418 .{ .name = "ESSL", .value = 1, .parameters = &[_]OperandKind{} },
419 .{ .name = "GLSL", .value = 2, .parameters = &[_]OperandKind{} },
420 .{ .name = "OpenCL_C", .value = 3, .parameters = &[_]OperandKind{} },
421 .{ .name = "OpenCL_CPP", .value = 4, .parameters = &[_]OperandKind{} },
422 .{ .name = "HLSL", .value = 5, .parameters = &[_]OperandKind{} },
423 .{ .name = "CPP_for_OpenCL", .value = 6, .parameters = &[_]OperandKind{} },
424 .{ .name = "SYCL", .value = 7, .parameters = &[_]OperandKind{} },
425 .{ .name = "HERO_C", .value = 8, .parameters = &[_]OperandKind{} },
426 .{ .name = "NZSL", .value = 9, .parameters = &[_]OperandKind{} },
427 .{ .name = "WGSL", .value = 10, .parameters = &[_]OperandKind{} },
428 .{ .name = "Slang", .value = 11, .parameters = &[_]OperandKind{} },
429 .{ .name = "Zig", .value = 12, .parameters = &[_]OperandKind{} },
591 .dim => &.{
592 .{ .name = "1D", .value = 0, .parameters = &.{} },
593 .{ .name = "2D", .value = 1, .parameters = &.{} },
594 .{ .name = "3D", .value = 2, .parameters = &.{} },
595 .{ .name = "Cube", .value = 3, .parameters = &.{} },
596 .{ .name = "Rect", .value = 4, .parameters = &.{} },
597 .{ .name = "Buffer", .value = 5, .parameters = &.{} },
598 .{ .name = "SubpassData", .value = 6, .parameters = &.{} },
599 .{ .name = "TileImageDataEXT", .value = 4173, .parameters = &.{} },
430600 },
431 .ExecutionModel => &[_]Enumerant{
432 .{ .name = "Vertex", .value = 0, .parameters = &[_]OperandKind{} },
433 .{ .name = "TessellationControl", .value = 1, .parameters = &[_]OperandKind{} },
434 .{ .name = "TessellationEvaluation", .value = 2, .parameters = &[_]OperandKind{} },
435 .{ .name = "Geometry", .value = 3, .parameters = &[_]OperandKind{} },
436 .{ .name = "Fragment", .value = 4, .parameters = &[_]OperandKind{} },
437 .{ .name = "GLCompute", .value = 5, .parameters = &[_]OperandKind{} },
438 .{ .name = "Kernel", .value = 6, .parameters = &[_]OperandKind{} },
439 .{ .name = "TaskNV", .value = 5267, .parameters = &[_]OperandKind{} },
440 .{ .name = "MeshNV", .value = 5268, .parameters = &[_]OperandKind{} },
441 .{ .name = "RayGenerationNV", .value = 5313, .parameters = &[_]OperandKind{} },
442 .{ .name = "RayGenerationKHR", .value = 5313, .parameters = &[_]OperandKind{} },
443 .{ .name = "IntersectionNV", .value = 5314, .parameters = &[_]OperandKind{} },
444 .{ .name = "IntersectionKHR", .value = 5314, .parameters = &[_]OperandKind{} },
445 .{ .name = "AnyHitNV", .value = 5315, .parameters = &[_]OperandKind{} },
446 .{ .name = "AnyHitKHR", .value = 5315, .parameters = &[_]OperandKind{} },
447 .{ .name = "ClosestHitNV", .value = 5316, .parameters = &[_]OperandKind{} },
448 .{ .name = "ClosestHitKHR", .value = 5316, .parameters = &[_]OperandKind{} },
449 .{ .name = "MissNV", .value = 5317, .parameters = &[_]OperandKind{} },
450 .{ .name = "MissKHR", .value = 5317, .parameters = &[_]OperandKind{} },
451 .{ .name = "CallableNV", .value = 5318, .parameters = &[_]OperandKind{} },
452 .{ .name = "CallableKHR", .value = 5318, .parameters = &[_]OperandKind{} },
453 .{ .name = "TaskEXT", .value = 5364, .parameters = &[_]OperandKind{} },
454 .{ .name = "MeshEXT", .value = 5365, .parameters = &[_]OperandKind{} },
601 .sampler_addressing_mode => &.{
602 .{ .name = "None", .value = 0, .parameters = &.{} },
603 .{ .name = "ClampToEdge", .value = 1, .parameters = &.{} },
604 .{ .name = "Clamp", .value = 2, .parameters = &.{} },
605 .{ .name = "Repeat", .value = 3, .parameters = &.{} },
606 .{ .name = "RepeatMirrored", .value = 4, .parameters = &.{} },
455607 },
456 .AddressingModel => &[_]Enumerant{
457 .{ .name = "Logical", .value = 0, .parameters = &[_]OperandKind{} },
458 .{ .name = "Physical32", .value = 1, .parameters = &[_]OperandKind{} },
459 .{ .name = "Physical64", .value = 2, .parameters = &[_]OperandKind{} },
460 .{ .name = "PhysicalStorageBuffer64", .value = 5348, .parameters = &[_]OperandKind{} },
461 .{ .name = "PhysicalStorageBuffer64EXT", .value = 5348, .parameters = &[_]OperandKind{} },
608 .sampler_filter_mode => &.{
609 .{ .name = "Nearest", .value = 0, .parameters = &.{} },
610 .{ .name = "Linear", .value = 1, .parameters = &.{} },
462611 },
463 .MemoryModel => &[_]Enumerant{
464 .{ .name = "Simple", .value = 0, .parameters = &[_]OperandKind{} },
465 .{ .name = "GLSL450", .value = 1, .parameters = &[_]OperandKind{} },
466 .{ .name = "OpenCL", .value = 2, .parameters = &[_]OperandKind{} },
467 .{ .name = "Vulkan", .value = 3, .parameters = &[_]OperandKind{} },
468 .{ .name = "VulkanKHR", .value = 3, .parameters = &[_]OperandKind{} },
612 .image_format => &.{
613 .{ .name = "Unknown", .value = 0, .parameters = &.{} },
614 .{ .name = "Rgba32f", .value = 1, .parameters = &.{} },
615 .{ .name = "Rgba16f", .value = 2, .parameters = &.{} },
616 .{ .name = "R32f", .value = 3, .parameters = &.{} },
617 .{ .name = "Rgba8", .value = 4, .parameters = &.{} },
618 .{ .name = "Rgba8Snorm", .value = 5, .parameters = &.{} },
619 .{ .name = "Rg32f", .value = 6, .parameters = &.{} },
620 .{ .name = "Rg16f", .value = 7, .parameters = &.{} },
621 .{ .name = "R11fG11fB10f", .value = 8, .parameters = &.{} },
622 .{ .name = "R16f", .value = 9, .parameters = &.{} },
623 .{ .name = "Rgba16", .value = 10, .parameters = &.{} },
624 .{ .name = "Rgb10A2", .value = 11, .parameters = &.{} },
625 .{ .name = "Rg16", .value = 12, .parameters = &.{} },
626 .{ .name = "Rg8", .value = 13, .parameters = &.{} },
627 .{ .name = "R16", .value = 14, .parameters = &.{} },
628 .{ .name = "R8", .value = 15, .parameters = &.{} },
629 .{ .name = "Rgba16Snorm", .value = 16, .parameters = &.{} },
630 .{ .name = "Rg16Snorm", .value = 17, .parameters = &.{} },
631 .{ .name = "Rg8Snorm", .value = 18, .parameters = &.{} },
632 .{ .name = "R16Snorm", .value = 19, .parameters = &.{} },
633 .{ .name = "R8Snorm", .value = 20, .parameters = &.{} },
634 .{ .name = "Rgba32i", .value = 21, .parameters = &.{} },
635 .{ .name = "Rgba16i", .value = 22, .parameters = &.{} },
636 .{ .name = "Rgba8i", .value = 23, .parameters = &.{} },
637 .{ .name = "R32i", .value = 24, .parameters = &.{} },
638 .{ .name = "Rg32i", .value = 25, .parameters = &.{} },
639 .{ .name = "Rg16i", .value = 26, .parameters = &.{} },
640 .{ .name = "Rg8i", .value = 27, .parameters = &.{} },
641 .{ .name = "R16i", .value = 28, .parameters = &.{} },
642 .{ .name = "R8i", .value = 29, .parameters = &.{} },
643 .{ .name = "Rgba32ui", .value = 30, .parameters = &.{} },
644 .{ .name = "Rgba16ui", .value = 31, .parameters = &.{} },
645 .{ .name = "Rgba8ui", .value = 32, .parameters = &.{} },
646 .{ .name = "R32ui", .value = 33, .parameters = &.{} },
647 .{ .name = "Rgb10a2ui", .value = 34, .parameters = &.{} },
648 .{ .name = "Rg32ui", .value = 35, .parameters = &.{} },
649 .{ .name = "Rg16ui", .value = 36, .parameters = &.{} },
650 .{ .name = "Rg8ui", .value = 37, .parameters = &.{} },
651 .{ .name = "R16ui", .value = 38, .parameters = &.{} },
652 .{ .name = "R8ui", .value = 39, .parameters = &.{} },
653 .{ .name = "R64ui", .value = 40, .parameters = &.{} },
654 .{ .name = "R64i", .value = 41, .parameters = &.{} },
469655 },
470 .ExecutionMode => &[_]Enumerant{
471 .{ .name = "Invocations", .value = 0, .parameters = &[_]OperandKind{.LiteralInteger} },
472 .{ .name = "SpacingEqual", .value = 1, .parameters = &[_]OperandKind{} },
473 .{ .name = "SpacingFractionalEven", .value = 2, .parameters = &[_]OperandKind{} },
474 .{ .name = "SpacingFractionalOdd", .value = 3, .parameters = &[_]OperandKind{} },
475 .{ .name = "VertexOrderCw", .value = 4, .parameters = &[_]OperandKind{} },
476 .{ .name = "VertexOrderCcw", .value = 5, .parameters = &[_]OperandKind{} },
477 .{ .name = "PixelCenterInteger", .value = 6, .parameters = &[_]OperandKind{} },
478 .{ .name = "OriginUpperLeft", .value = 7, .parameters = &[_]OperandKind{} },
479 .{ .name = "OriginLowerLeft", .value = 8, .parameters = &[_]OperandKind{} },
480 .{ .name = "EarlyFragmentTests", .value = 9, .parameters = &[_]OperandKind{} },
481 .{ .name = "PointMode", .value = 10, .parameters = &[_]OperandKind{} },
482 .{ .name = "Xfb", .value = 11, .parameters = &[_]OperandKind{} },
483 .{ .name = "DepthReplacing", .value = 12, .parameters = &[_]OperandKind{} },
484 .{ .name = "DepthGreater", .value = 14, .parameters = &[_]OperandKind{} },
485 .{ .name = "DepthLess", .value = 15, .parameters = &[_]OperandKind{} },
486 .{ .name = "DepthUnchanged", .value = 16, .parameters = &[_]OperandKind{} },
487 .{ .name = "LocalSize", .value = 17, .parameters = &[_]OperandKind{ .LiteralInteger, .LiteralInteger, .LiteralInteger } },
488 .{ .name = "LocalSizeHint", .value = 18, .parameters = &[_]OperandKind{ .LiteralInteger, .LiteralInteger, .LiteralInteger } },
489 .{ .name = "InputPoints", .value = 19, .parameters = &[_]OperandKind{} },
490 .{ .name = "InputLines", .value = 20, .parameters = &[_]OperandKind{} },
491 .{ .name = "InputLinesAdjacency", .value = 21, .parameters = &[_]OperandKind{} },
492 .{ .name = "Triangles", .value = 22, .parameters = &[_]OperandKind{} },
493 .{ .name = "InputTrianglesAdjacency", .value = 23, .parameters = &[_]OperandKind{} },
494 .{ .name = "Quads", .value = 24, .parameters = &[_]OperandKind{} },
495 .{ .name = "Isolines", .value = 25, .parameters = &[_]OperandKind{} },
496 .{ .name = "OutputVertices", .value = 26, .parameters = &[_]OperandKind{.LiteralInteger} },
497 .{ .name = "OutputPoints", .value = 27, .parameters = &[_]OperandKind{} },
498 .{ .name = "OutputLineStrip", .value = 28, .parameters = &[_]OperandKind{} },
499 .{ .name = "OutputTriangleStrip", .value = 29, .parameters = &[_]OperandKind{} },
500 .{ .name = "VecTypeHint", .value = 30, .parameters = &[_]OperandKind{.LiteralInteger} },
501 .{ .name = "ContractionOff", .value = 31, .parameters = &[_]OperandKind{} },
502 .{ .name = "Initializer", .value = 33, .parameters = &[_]OperandKind{} },
503 .{ .name = "Finalizer", .value = 34, .parameters = &[_]OperandKind{} },
504 .{ .name = "SubgroupSize", .value = 35, .parameters = &[_]OperandKind{.LiteralInteger} },
505 .{ .name = "SubgroupsPerWorkgroup", .value = 36, .parameters = &[_]OperandKind{.LiteralInteger} },
506 .{ .name = "SubgroupsPerWorkgroupId", .value = 37, .parameters = &[_]OperandKind{.IdRef} },
507 .{ .name = "LocalSizeId", .value = 38, .parameters = &[_]OperandKind{ .IdRef, .IdRef, .IdRef } },
508 .{ .name = "LocalSizeHintId", .value = 39, .parameters = &[_]OperandKind{ .IdRef, .IdRef, .IdRef } },
509 .{ .name = "NonCoherentColorAttachmentReadEXT", .value = 4169, .parameters = &[_]OperandKind{} },
510 .{ .name = "NonCoherentDepthAttachmentReadEXT", .value = 4170, .parameters = &[_]OperandKind{} },
511 .{ .name = "NonCoherentStencilAttachmentReadEXT", .value = 4171, .parameters = &[_]OperandKind{} },
512 .{ .name = "SubgroupUniformControlFlowKHR", .value = 4421, .parameters = &[_]OperandKind{} },
513 .{ .name = "PostDepthCoverage", .value = 4446, .parameters = &[_]OperandKind{} },
514 .{ .name = "DenormPreserve", .value = 4459, .parameters = &[_]OperandKind{.LiteralInteger} },
515 .{ .name = "DenormFlushToZero", .value = 4460, .parameters = &[_]OperandKind{.LiteralInteger} },
516 .{ .name = "SignedZeroInfNanPreserve", .value = 4461, .parameters = &[_]OperandKind{.LiteralInteger} },
517 .{ .name = "RoundingModeRTE", .value = 4462, .parameters = &[_]OperandKind{.LiteralInteger} },
518 .{ .name = "RoundingModeRTZ", .value = 4463, .parameters = &[_]OperandKind{.LiteralInteger} },
519 .{ .name = "EarlyAndLateFragmentTestsAMD", .value = 5017, .parameters = &[_]OperandKind{} },
520 .{ .name = "StencilRefReplacingEXT", .value = 5027, .parameters = &[_]OperandKind{} },
521 .{ .name = "CoalescingAMDX", .value = 5069, .parameters = &[_]OperandKind{} },
522 .{ .name = "MaxNodeRecursionAMDX", .value = 5071, .parameters = &[_]OperandKind{.IdRef} },
523 .{ .name = "StaticNumWorkgroupsAMDX", .value = 5072, .parameters = &[_]OperandKind{ .IdRef, .IdRef, .IdRef } },
524 .{ .name = "ShaderIndexAMDX", .value = 5073, .parameters = &[_]OperandKind{.IdRef} },
525 .{ .name = "MaxNumWorkgroupsAMDX", .value = 5077, .parameters = &[_]OperandKind{ .IdRef, .IdRef, .IdRef } },
526 .{ .name = "StencilRefUnchangedFrontAMD", .value = 5079, .parameters = &[_]OperandKind{} },
527 .{ .name = "StencilRefGreaterFrontAMD", .value = 5080, .parameters = &[_]OperandKind{} },
528 .{ .name = "StencilRefLessFrontAMD", .value = 5081, .parameters = &[_]OperandKind{} },
529 .{ .name = "StencilRefUnchangedBackAMD", .value = 5082, .parameters = &[_]OperandKind{} },
530 .{ .name = "StencilRefGreaterBackAMD", .value = 5083, .parameters = &[_]OperandKind{} },
531 .{ .name = "StencilRefLessBackAMD", .value = 5084, .parameters = &[_]OperandKind{} },
532 .{ .name = "QuadDerivativesKHR", .value = 5088, .parameters = &[_]OperandKind{} },
533 .{ .name = "RequireFullQuadsKHR", .value = 5089, .parameters = &[_]OperandKind{} },
534 .{ .name = "OutputLinesNV", .value = 5269, .parameters = &[_]OperandKind{} },
535 .{ .name = "OutputLinesEXT", .value = 5269, .parameters = &[_]OperandKind{} },
536 .{ .name = "OutputPrimitivesNV", .value = 5270, .parameters = &[_]OperandKind{.LiteralInteger} },
537 .{ .name = "OutputPrimitivesEXT", .value = 5270, .parameters = &[_]OperandKind{.LiteralInteger} },
538 .{ .name = "DerivativeGroupQuadsNV", .value = 5289, .parameters = &[_]OperandKind{} },
539 .{ .name = "DerivativeGroupLinearNV", .value = 5290, .parameters = &[_]OperandKind{} },
540 .{ .name = "OutputTrianglesNV", .value = 5298, .parameters = &[_]OperandKind{} },
541 .{ .name = "OutputTrianglesEXT", .value = 5298, .parameters = &[_]OperandKind{} },
542 .{ .name = "PixelInterlockOrderedEXT", .value = 5366, .parameters = &[_]OperandKind{} },
543 .{ .name = "PixelInterlockUnorderedEXT", .value = 5367, .parameters = &[_]OperandKind{} },
544 .{ .name = "SampleInterlockOrderedEXT", .value = 5368, .parameters = &[_]OperandKind{} },
545 .{ .name = "SampleInterlockUnorderedEXT", .value = 5369, .parameters = &[_]OperandKind{} },
546 .{ .name = "ShadingRateInterlockOrderedEXT", .value = 5370, .parameters = &[_]OperandKind{} },
547 .{ .name = "ShadingRateInterlockUnorderedEXT", .value = 5371, .parameters = &[_]OperandKind{} },
548 .{ .name = "SharedLocalMemorySizeINTEL", .value = 5618, .parameters = &[_]OperandKind{.LiteralInteger} },
549 .{ .name = "RoundingModeRTPINTEL", .value = 5620, .parameters = &[_]OperandKind{.LiteralInteger} },
550 .{ .name = "RoundingModeRTNINTEL", .value = 5621, .parameters = &[_]OperandKind{.LiteralInteger} },
551 .{ .name = "FloatingPointModeALTINTEL", .value = 5622, .parameters = &[_]OperandKind{.LiteralInteger} },
552 .{ .name = "FloatingPointModeIEEEINTEL", .value = 5623, .parameters = &[_]OperandKind{.LiteralInteger} },
553 .{ .name = "MaxWorkgroupSizeINTEL", .value = 5893, .parameters = &[_]OperandKind{ .LiteralInteger, .LiteralInteger, .LiteralInteger } },
554 .{ .name = "MaxWorkDimINTEL", .value = 5894, .parameters = &[_]OperandKind{.LiteralInteger} },
555 .{ .name = "NoGlobalOffsetINTEL", .value = 5895, .parameters = &[_]OperandKind{} },
556 .{ .name = "NumSIMDWorkitemsINTEL", .value = 5896, .parameters = &[_]OperandKind{.LiteralInteger} },
557 .{ .name = "SchedulerTargetFmaxMhzINTEL", .value = 5903, .parameters = &[_]OperandKind{.LiteralInteger} },
558 .{ .name = "MaximallyReconvergesKHR", .value = 6023, .parameters = &[_]OperandKind{} },
559 .{ .name = "FPFastMathDefault", .value = 6028, .parameters = &[_]OperandKind{ .IdRef, .IdRef } },
560 .{ .name = "StreamingInterfaceINTEL", .value = 6154, .parameters = &[_]OperandKind{.LiteralInteger} },
561 .{ .name = "RegisterMapInterfaceINTEL", .value = 6160, .parameters = &[_]OperandKind{.LiteralInteger} },
562 .{ .name = "NamedBarrierCountINTEL", .value = 6417, .parameters = &[_]OperandKind{.LiteralInteger} },
563 .{ .name = "MaximumRegistersINTEL", .value = 6461, .parameters = &[_]OperandKind{.LiteralInteger} },
564 .{ .name = "MaximumRegistersIdINTEL", .value = 6462, .parameters = &[_]OperandKind{.IdRef} },
565 .{ .name = "NamedMaximumRegistersINTEL", .value = 6463, .parameters = &[_]OperandKind{.NamedMaximumNumberOfRegisters} },
656 .image_channel_order => &.{
657 .{ .name = "R", .value = 0, .parameters = &.{} },
658 .{ .name = "A", .value = 1, .parameters = &.{} },
659 .{ .name = "RG", .value = 2, .parameters = &.{} },
660 .{ .name = "RA", .value = 3, .parameters = &.{} },
661 .{ .name = "RGB", .value = 4, .parameters = &.{} },
662 .{ .name = "RGBA", .value = 5, .parameters = &.{} },
663 .{ .name = "BGRA", .value = 6, .parameters = &.{} },
664 .{ .name = "ARGB", .value = 7, .parameters = &.{} },
665 .{ .name = "Intensity", .value = 8, .parameters = &.{} },
666 .{ .name = "Luminance", .value = 9, .parameters = &.{} },
667 .{ .name = "Rx", .value = 10, .parameters = &.{} },
668 .{ .name = "RGx", .value = 11, .parameters = &.{} },
669 .{ .name = "RGBx", .value = 12, .parameters = &.{} },
670 .{ .name = "Depth", .value = 13, .parameters = &.{} },
671 .{ .name = "DepthStencil", .value = 14, .parameters = &.{} },
672 .{ .name = "sRGB", .value = 15, .parameters = &.{} },
673 .{ .name = "sRGBx", .value = 16, .parameters = &.{} },
674 .{ .name = "sRGBA", .value = 17, .parameters = &.{} },
675 .{ .name = "sBGRA", .value = 18, .parameters = &.{} },
676 .{ .name = "ABGR", .value = 19, .parameters = &.{} },
566677 },
567 .StorageClass => &[_]Enumerant{
568 .{ .name = "UniformConstant", .value = 0, .parameters = &[_]OperandKind{} },
569 .{ .name = "Input", .value = 1, .parameters = &[_]OperandKind{} },
570 .{ .name = "Uniform", .value = 2, .parameters = &[_]OperandKind{} },
571 .{ .name = "Output", .value = 3, .parameters = &[_]OperandKind{} },
572 .{ .name = "Workgroup", .value = 4, .parameters = &[_]OperandKind{} },
573 .{ .name = "CrossWorkgroup", .value = 5, .parameters = &[_]OperandKind{} },
574 .{ .name = "Private", .value = 6, .parameters = &[_]OperandKind{} },
575 .{ .name = "Function", .value = 7, .parameters = &[_]OperandKind{} },
576 .{ .name = "Generic", .value = 8, .parameters = &[_]OperandKind{} },
577 .{ .name = "PushConstant", .value = 9, .parameters = &[_]OperandKind{} },
578 .{ .name = "AtomicCounter", .value = 10, .parameters = &[_]OperandKind{} },
579 .{ .name = "Image", .value = 11, .parameters = &[_]OperandKind{} },
580 .{ .name = "StorageBuffer", .value = 12, .parameters = &[_]OperandKind{} },
581 .{ .name = "TileImageEXT", .value = 4172, .parameters = &[_]OperandKind{} },
582 .{ .name = "NodePayloadAMDX", .value = 5068, .parameters = &[_]OperandKind{} },
583 .{ .name = "NodeOutputPayloadAMDX", .value = 5076, .parameters = &[_]OperandKind{} },
584 .{ .name = "CallableDataNV", .value = 5328, .parameters = &[_]OperandKind{} },
585 .{ .name = "CallableDataKHR", .value = 5328, .parameters = &[_]OperandKind{} },
586 .{ .name = "IncomingCallableDataNV", .value = 5329, .parameters = &[_]OperandKind{} },
587 .{ .name = "IncomingCallableDataKHR", .value = 5329, .parameters = &[_]OperandKind{} },
588 .{ .name = "RayPayloadNV", .value = 5338, .parameters = &[_]OperandKind{} },
589 .{ .name = "RayPayloadKHR", .value = 5338, .parameters = &[_]OperandKind{} },
590 .{ .name = "HitAttributeNV", .value = 5339, .parameters = &[_]OperandKind{} },
591 .{ .name = "HitAttributeKHR", .value = 5339, .parameters = &[_]OperandKind{} },
592 .{ .name = "IncomingRayPayloadNV", .value = 5342, .parameters = &[_]OperandKind{} },
593 .{ .name = "IncomingRayPayloadKHR", .value = 5342, .parameters = &[_]OperandKind{} },
594 .{ .name = "ShaderRecordBufferNV", .value = 5343, .parameters = &[_]OperandKind{} },
595 .{ .name = "ShaderRecordBufferKHR", .value = 5343, .parameters = &[_]OperandKind{} },
596 .{ .name = "PhysicalStorageBuffer", .value = 5349, .parameters = &[_]OperandKind{} },
597 .{ .name = "PhysicalStorageBufferEXT", .value = 5349, .parameters = &[_]OperandKind{} },
598 .{ .name = "HitObjectAttributeNV", .value = 5385, .parameters = &[_]OperandKind{} },
599 .{ .name = "TaskPayloadWorkgroupEXT", .value = 5402, .parameters = &[_]OperandKind{} },
600 .{ .name = "CodeSectionINTEL", .value = 5605, .parameters = &[_]OperandKind{} },
601 .{ .name = "DeviceOnlyINTEL", .value = 5936, .parameters = &[_]OperandKind{} },
602 .{ .name = "HostOnlyINTEL", .value = 5937, .parameters = &[_]OperandKind{} },
678 .image_channel_data_type => &.{
679 .{ .name = "SnormInt8", .value = 0, .parameters = &.{} },
680 .{ .name = "SnormInt16", .value = 1, .parameters = &.{} },
681 .{ .name = "UnormInt8", .value = 2, .parameters = &.{} },
682 .{ .name = "UnormInt16", .value = 3, .parameters = &.{} },
683 .{ .name = "UnormShort565", .value = 4, .parameters = &.{} },
684 .{ .name = "UnormShort555", .value = 5, .parameters = &.{} },
685 .{ .name = "UnormInt101010", .value = 6, .parameters = &.{} },
686 .{ .name = "SignedInt8", .value = 7, .parameters = &.{} },
687 .{ .name = "SignedInt16", .value = 8, .parameters = &.{} },
688 .{ .name = "SignedInt32", .value = 9, .parameters = &.{} },
689 .{ .name = "UnsignedInt8", .value = 10, .parameters = &.{} },
690 .{ .name = "UnsignedInt16", .value = 11, .parameters = &.{} },
691 .{ .name = "UnsignedInt32", .value = 12, .parameters = &.{} },
692 .{ .name = "HalfFloat", .value = 13, .parameters = &.{} },
693 .{ .name = "Float", .value = 14, .parameters = &.{} },
694 .{ .name = "UnormInt24", .value = 15, .parameters = &.{} },
695 .{ .name = "UnormInt101010_2", .value = 16, .parameters = &.{} },
696 .{ .name = "UnormInt10X6EXT", .value = 17, .parameters = &.{} },
697 .{ .name = "UnsignedIntRaw10EXT", .value = 19, .parameters = &.{} },
698 .{ .name = "UnsignedIntRaw12EXT", .value = 20, .parameters = &.{} },
699 .{ .name = "UnormInt2_101010EXT", .value = 21, .parameters = &.{} },
700 .{ .name = "UnsignedInt10X6EXT", .value = 22, .parameters = &.{} },
701 .{ .name = "UnsignedInt12X4EXT", .value = 23, .parameters = &.{} },
702 .{ .name = "UnsignedInt14X2EXT", .value = 24, .parameters = &.{} },
703 .{ .name = "UnormInt12X4EXT", .value = 25, .parameters = &.{} },
704 .{ .name = "UnormInt14X2EXT", .value = 26, .parameters = &.{} },
603705 },
604 .Dim => &[_]Enumerant{
605 .{ .name = "1D", .value = 0, .parameters = &[_]OperandKind{} },
606 .{ .name = "2D", .value = 1, .parameters = &[_]OperandKind{} },
607 .{ .name = "3D", .value = 2, .parameters = &[_]OperandKind{} },
608 .{ .name = "Cube", .value = 3, .parameters = &[_]OperandKind{} },
609 .{ .name = "Rect", .value = 4, .parameters = &[_]OperandKind{} },
610 .{ .name = "Buffer", .value = 5, .parameters = &[_]OperandKind{} },
611 .{ .name = "SubpassData", .value = 6, .parameters = &[_]OperandKind{} },
612 .{ .name = "TileImageDataEXT", .value = 4173, .parameters = &[_]OperandKind{} },
706 .fp_rounding_mode => &.{
707 .{ .name = "RTE", .value = 0, .parameters = &.{} },
708 .{ .name = "RTZ", .value = 1, .parameters = &.{} },
709 .{ .name = "RTP", .value = 2, .parameters = &.{} },
710 .{ .name = "RTN", .value = 3, .parameters = &.{} },
613711 },
614 .SamplerAddressingMode => &[_]Enumerant{
615 .{ .name = "None", .value = 0, .parameters = &[_]OperandKind{} },
616 .{ .name = "ClampToEdge", .value = 1, .parameters = &[_]OperandKind{} },
617 .{ .name = "Clamp", .value = 2, .parameters = &[_]OperandKind{} },
618 .{ .name = "Repeat", .value = 3, .parameters = &[_]OperandKind{} },
619 .{ .name = "RepeatMirrored", .value = 4, .parameters = &[_]OperandKind{} },
712 .fp_denorm_mode => &.{
713 .{ .name = "Preserve", .value = 0, .parameters = &.{} },
714 .{ .name = "FlushToZero", .value = 1, .parameters = &.{} },
620715 },
621 .SamplerFilterMode => &[_]Enumerant{
622 .{ .name = "Nearest", .value = 0, .parameters = &[_]OperandKind{} },
623 .{ .name = "Linear", .value = 1, .parameters = &[_]OperandKind{} },
716 .quantization_modes => &.{
717 .{ .name = "TRN", .value = 0, .parameters = &.{} },
718 .{ .name = "TRN_ZERO", .value = 1, .parameters = &.{} },
719 .{ .name = "RND", .value = 2, .parameters = &.{} },
720 .{ .name = "RND_ZERO", .value = 3, .parameters = &.{} },
721 .{ .name = "RND_INF", .value = 4, .parameters = &.{} },
722 .{ .name = "RND_MIN_INF", .value = 5, .parameters = &.{} },
723 .{ .name = "RND_CONV", .value = 6, .parameters = &.{} },
724 .{ .name = "RND_CONV_ODD", .value = 7, .parameters = &.{} },
624725 },
625 .ImageFormat => &[_]Enumerant{
626 .{ .name = "Unknown", .value = 0, .parameters = &[_]OperandKind{} },
627 .{ .name = "Rgba32f", .value = 1, .parameters = &[_]OperandKind{} },
628 .{ .name = "Rgba16f", .value = 2, .parameters = &[_]OperandKind{} },
629 .{ .name = "R32f", .value = 3, .parameters = &[_]OperandKind{} },
630 .{ .name = "Rgba8", .value = 4, .parameters = &[_]OperandKind{} },
631 .{ .name = "Rgba8Snorm", .value = 5, .parameters = &[_]OperandKind{} },
632 .{ .name = "Rg32f", .value = 6, .parameters = &[_]OperandKind{} },
633 .{ .name = "Rg16f", .value = 7, .parameters = &[_]OperandKind{} },
634 .{ .name = "R11fG11fB10f", .value = 8, .parameters = &[_]OperandKind{} },
635 .{ .name = "R16f", .value = 9, .parameters = &[_]OperandKind{} },
636 .{ .name = "Rgba16", .value = 10, .parameters = &[_]OperandKind{} },
637 .{ .name = "Rgb10A2", .value = 11, .parameters = &[_]OperandKind{} },
638 .{ .name = "Rg16", .value = 12, .parameters = &[_]OperandKind{} },
639 .{ .name = "Rg8", .value = 13, .parameters = &[_]OperandKind{} },
640 .{ .name = "R16", .value = 14, .parameters = &[_]OperandKind{} },
641 .{ .name = "R8", .value = 15, .parameters = &[_]OperandKind{} },
642 .{ .name = "Rgba16Snorm", .value = 16, .parameters = &[_]OperandKind{} },
643 .{ .name = "Rg16Snorm", .value = 17, .parameters = &[_]OperandKind{} },
644 .{ .name = "Rg8Snorm", .value = 18, .parameters = &[_]OperandKind{} },
645 .{ .name = "R16Snorm", .value = 19, .parameters = &[_]OperandKind{} },
646 .{ .name = "R8Snorm", .value = 20, .parameters = &[_]OperandKind{} },
647 .{ .name = "Rgba32i", .value = 21, .parameters = &[_]OperandKind{} },
648 .{ .name = "Rgba16i", .value = 22, .parameters = &[_]OperandKind{} },
649 .{ .name = "Rgba8i", .value = 23, .parameters = &[_]OperandKind{} },
650 .{ .name = "R32i", .value = 24, .parameters = &[_]OperandKind{} },
651 .{ .name = "Rg32i", .value = 25, .parameters = &[_]OperandKind{} },
652 .{ .name = "Rg16i", .value = 26, .parameters = &[_]OperandKind{} },
653 .{ .name = "Rg8i", .value = 27, .parameters = &[_]OperandKind{} },
654 .{ .name = "R16i", .value = 28, .parameters = &[_]OperandKind{} },
655 .{ .name = "R8i", .value = 29, .parameters = &[_]OperandKind{} },
656 .{ .name = "Rgba32ui", .value = 30, .parameters = &[_]OperandKind{} },
657 .{ .name = "Rgba16ui", .value = 31, .parameters = &[_]OperandKind{} },
658 .{ .name = "Rgba8ui", .value = 32, .parameters = &[_]OperandKind{} },
659 .{ .name = "R32ui", .value = 33, .parameters = &[_]OperandKind{} },
660 .{ .name = "Rgb10a2ui", .value = 34, .parameters = &[_]OperandKind{} },
661 .{ .name = "Rg32ui", .value = 35, .parameters = &[_]OperandKind{} },
662 .{ .name = "Rg16ui", .value = 36, .parameters = &[_]OperandKind{} },
663 .{ .name = "Rg8ui", .value = 37, .parameters = &[_]OperandKind{} },
664 .{ .name = "R16ui", .value = 38, .parameters = &[_]OperandKind{} },
665 .{ .name = "R8ui", .value = 39, .parameters = &[_]OperandKind{} },
666 .{ .name = "R64ui", .value = 40, .parameters = &[_]OperandKind{} },
667 .{ .name = "R64i", .value = 41, .parameters = &[_]OperandKind{} },
726 .fp_operation_mode => &.{
727 .{ .name = "IEEE", .value = 0, .parameters = &.{} },
728 .{ .name = "ALT", .value = 1, .parameters = &.{} },
668729 },
669 .ImageChannelOrder => &[_]Enumerant{
670 .{ .name = "R", .value = 0, .parameters = &[_]OperandKind{} },
671 .{ .name = "A", .value = 1, .parameters = &[_]OperandKind{} },
672 .{ .name = "RG", .value = 2, .parameters = &[_]OperandKind{} },
673 .{ .name = "RA", .value = 3, .parameters = &[_]OperandKind{} },
674 .{ .name = "RGB", .value = 4, .parameters = &[_]OperandKind{} },
675 .{ .name = "RGBA", .value = 5, .parameters = &[_]OperandKind{} },
676 .{ .name = "BGRA", .value = 6, .parameters = &[_]OperandKind{} },
677 .{ .name = "ARGB", .value = 7, .parameters = &[_]OperandKind{} },
678 .{ .name = "Intensity", .value = 8, .parameters = &[_]OperandKind{} },
679 .{ .name = "Luminance", .value = 9, .parameters = &[_]OperandKind{} },
680 .{ .name = "Rx", .value = 10, .parameters = &[_]OperandKind{} },
681 .{ .name = "RGx", .value = 11, .parameters = &[_]OperandKind{} },
682 .{ .name = "RGBx", .value = 12, .parameters = &[_]OperandKind{} },
683 .{ .name = "Depth", .value = 13, .parameters = &[_]OperandKind{} },
684 .{ .name = "DepthStencil", .value = 14, .parameters = &[_]OperandKind{} },
685 .{ .name = "sRGB", .value = 15, .parameters = &[_]OperandKind{} },
686 .{ .name = "sRGBx", .value = 16, .parameters = &[_]OperandKind{} },
687 .{ .name = "sRGBA", .value = 17, .parameters = &[_]OperandKind{} },
688 .{ .name = "sBGRA", .value = 18, .parameters = &[_]OperandKind{} },
689 .{ .name = "ABGR", .value = 19, .parameters = &[_]OperandKind{} },
730 .overflow_modes => &.{
731 .{ .name = "WRAP", .value = 0, .parameters = &.{} },
732 .{ .name = "SAT", .value = 1, .parameters = &.{} },
733 .{ .name = "SAT_ZERO", .value = 2, .parameters = &.{} },
734 .{ .name = "SAT_SYM", .value = 3, .parameters = &.{} },
690735 },
691 .ImageChannelDataType => &[_]Enumerant{
692 .{ .name = "SnormInt8", .value = 0, .parameters = &[_]OperandKind{} },
693 .{ .name = "SnormInt16", .value = 1, .parameters = &[_]OperandKind{} },
694 .{ .name = "UnormInt8", .value = 2, .parameters = &[_]OperandKind{} },
695 .{ .name = "UnormInt16", .value = 3, .parameters = &[_]OperandKind{} },
696 .{ .name = "UnormShort565", .value = 4, .parameters = &[_]OperandKind{} },
697 .{ .name = "UnormShort555", .value = 5, .parameters = &[_]OperandKind{} },
698 .{ .name = "UnormInt101010", .value = 6, .parameters = &[_]OperandKind{} },
699 .{ .name = "SignedInt8", .value = 7, .parameters = &[_]OperandKind{} },
700 .{ .name = "SignedInt16", .value = 8, .parameters = &[_]OperandKind{} },
701 .{ .name = "SignedInt32", .value = 9, .parameters = &[_]OperandKind{} },
702 .{ .name = "UnsignedInt8", .value = 10, .parameters = &[_]OperandKind{} },
703 .{ .name = "UnsignedInt16", .value = 11, .parameters = &[_]OperandKind{} },
704 .{ .name = "UnsignedInt32", .value = 12, .parameters = &[_]OperandKind{} },
705 .{ .name = "HalfFloat", .value = 13, .parameters = &[_]OperandKind{} },
706 .{ .name = "Float", .value = 14, .parameters = &[_]OperandKind{} },
707 .{ .name = "UnormInt24", .value = 15, .parameters = &[_]OperandKind{} },
708 .{ .name = "UnormInt101010_2", .value = 16, .parameters = &[_]OperandKind{} },
709 .{ .name = "UnsignedIntRaw10EXT", .value = 19, .parameters = &[_]OperandKind{} },
710 .{ .name = "UnsignedIntRaw12EXT", .value = 20, .parameters = &[_]OperandKind{} },
736 .linkage_type => &.{
737 .{ .name = "Export", .value = 0, .parameters = &.{} },
738 .{ .name = "Import", .value = 1, .parameters = &.{} },
739 .{ .name = "LinkOnceODR", .value = 2, .parameters = &.{} },
711740 },
712 .FPRoundingMode => &[_]Enumerant{
713 .{ .name = "RTE", .value = 0, .parameters = &[_]OperandKind{} },
714 .{ .name = "RTZ", .value = 1, .parameters = &[_]OperandKind{} },
715 .{ .name = "RTP", .value = 2, .parameters = &[_]OperandKind{} },
716 .{ .name = "RTN", .value = 3, .parameters = &[_]OperandKind{} },
741 .access_qualifier => &.{
742 .{ .name = "ReadOnly", .value = 0, .parameters = &.{} },
743 .{ .name = "WriteOnly", .value = 1, .parameters = &.{} },
744 .{ .name = "ReadWrite", .value = 2, .parameters = &.{} },
717745 },
718 .FPDenormMode => &[_]Enumerant{
719 .{ .name = "Preserve", .value = 0, .parameters = &[_]OperandKind{} },
720 .{ .name = "FlushToZero", .value = 1, .parameters = &[_]OperandKind{} },
746 .host_access_qualifier => &.{
747 .{ .name = "NoneINTEL", .value = 0, .parameters = &.{} },
748 .{ .name = "ReadINTEL", .value = 1, .parameters = &.{} },
749 .{ .name = "WriteINTEL", .value = 2, .parameters = &.{} },
750 .{ .name = "ReadWriteINTEL", .value = 3, .parameters = &.{} },
721751 },
722 .QuantizationModes => &[_]Enumerant{
723 .{ .name = "TRN", .value = 0, .parameters = &[_]OperandKind{} },
724 .{ .name = "TRN_ZERO", .value = 1, .parameters = &[_]OperandKind{} },
725 .{ .name = "RND", .value = 2, .parameters = &[_]OperandKind{} },
726 .{ .name = "RND_ZERO", .value = 3, .parameters = &[_]OperandKind{} },
727 .{ .name = "RND_INF", .value = 4, .parameters = &[_]OperandKind{} },
728 .{ .name = "RND_MIN_INF", .value = 5, .parameters = &[_]OperandKind{} },
729 .{ .name = "RND_CONV", .value = 6, .parameters = &[_]OperandKind{} },
730 .{ .name = "RND_CONV_ODD", .value = 7, .parameters = &[_]OperandKind{} },
752 .function_parameter_attribute => &.{
753 .{ .name = "Zext", .value = 0, .parameters = &.{} },
754 .{ .name = "Sext", .value = 1, .parameters = &.{} },
755 .{ .name = "ByVal", .value = 2, .parameters = &.{} },
756 .{ .name = "Sret", .value = 3, .parameters = &.{} },
757 .{ .name = "NoAlias", .value = 4, .parameters = &.{} },
758 .{ .name = "NoCapture", .value = 5, .parameters = &.{} },
759 .{ .name = "NoWrite", .value = 6, .parameters = &.{} },
760 .{ .name = "NoReadWrite", .value = 7, .parameters = &.{} },
761 .{ .name = "RuntimeAlignedINTEL", .value = 5940, .parameters = &.{} },
731762 },
732 .FPOperationMode => &[_]Enumerant{
733 .{ .name = "IEEE", .value = 0, .parameters = &[_]OperandKind{} },
734 .{ .name = "ALT", .value = 1, .parameters = &[_]OperandKind{} },
763 .decoration => &.{
764 .{ .name = "RelaxedPrecision", .value = 0, .parameters = &.{} },
765 .{ .name = "SpecId", .value = 1, .parameters = &.{.literal_integer} },
766 .{ .name = "Block", .value = 2, .parameters = &.{} },
767 .{ .name = "BufferBlock", .value = 3, .parameters = &.{} },
768 .{ .name = "RowMajor", .value = 4, .parameters = &.{} },
769 .{ .name = "ColMajor", .value = 5, .parameters = &.{} },
770 .{ .name = "ArrayStride", .value = 6, .parameters = &.{.literal_integer} },
771 .{ .name = "MatrixStride", .value = 7, .parameters = &.{.literal_integer} },
772 .{ .name = "GLSLShared", .value = 8, .parameters = &.{} },
773 .{ .name = "GLSLPacked", .value = 9, .parameters = &.{} },
774 .{ .name = "CPacked", .value = 10, .parameters = &.{} },
775 .{ .name = "BuiltIn", .value = 11, .parameters = &.{.built_in} },
776 .{ .name = "NoPerspective", .value = 13, .parameters = &.{} },
777 .{ .name = "Flat", .value = 14, .parameters = &.{} },
778 .{ .name = "Patch", .value = 15, .parameters = &.{} },
779 .{ .name = "Centroid", .value = 16, .parameters = &.{} },
780 .{ .name = "Sample", .value = 17, .parameters = &.{} },
781 .{ .name = "Invariant", .value = 18, .parameters = &.{} },
782 .{ .name = "Restrict", .value = 19, .parameters = &.{} },
783 .{ .name = "Aliased", .value = 20, .parameters = &.{} },
784 .{ .name = "Volatile", .value = 21, .parameters = &.{} },
785 .{ .name = "Constant", .value = 22, .parameters = &.{} },
786 .{ .name = "Coherent", .value = 23, .parameters = &.{} },
787 .{ .name = "NonWritable", .value = 24, .parameters = &.{} },
788 .{ .name = "NonReadable", .value = 25, .parameters = &.{} },
789 .{ .name = "Uniform", .value = 26, .parameters = &.{} },
790 .{ .name = "UniformId", .value = 27, .parameters = &.{.id_scope} },
791 .{ .name = "SaturatedConversion", .value = 28, .parameters = &.{} },
792 .{ .name = "Stream", .value = 29, .parameters = &.{.literal_integer} },
793 .{ .name = "Location", .value = 30, .parameters = &.{.literal_integer} },
794 .{ .name = "Component", .value = 31, .parameters = &.{.literal_integer} },
795 .{ .name = "Index", .value = 32, .parameters = &.{.literal_integer} },
796 .{ .name = "Binding", .value = 33, .parameters = &.{.literal_integer} },
797 .{ .name = "DescriptorSet", .value = 34, .parameters = &.{.literal_integer} },
798 .{ .name = "Offset", .value = 35, .parameters = &.{.literal_integer} },
799 .{ .name = "XfbBuffer", .value = 36, .parameters = &.{.literal_integer} },
800 .{ .name = "XfbStride", .value = 37, .parameters = &.{.literal_integer} },
801 .{ .name = "FuncParamAttr", .value = 38, .parameters = &.{.function_parameter_attribute} },
802 .{ .name = "FPRoundingMode", .value = 39, .parameters = &.{.fp_rounding_mode} },
803 .{ .name = "FPFastMathMode", .value = 40, .parameters = &.{.fp_fast_math_mode} },
804 .{ .name = "LinkageAttributes", .value = 41, .parameters = &.{ .literal_string, .linkage_type } },
805 .{ .name = "NoContraction", .value = 42, .parameters = &.{} },
806 .{ .name = "InputAttachmentIndex", .value = 43, .parameters = &.{.literal_integer} },
807 .{ .name = "Alignment", .value = 44, .parameters = &.{.literal_integer} },
808 .{ .name = "MaxByteOffset", .value = 45, .parameters = &.{.literal_integer} },
809 .{ .name = "AlignmentId", .value = 46, .parameters = &.{.id_ref} },
810 .{ .name = "MaxByteOffsetId", .value = 47, .parameters = &.{.id_ref} },
811 .{ .name = "SaturatedToLargestFloat8NormalConversionEXT", .value = 4216, .parameters = &.{} },
812 .{ .name = "NoSignedWrap", .value = 4469, .parameters = &.{} },
813 .{ .name = "NoUnsignedWrap", .value = 4470, .parameters = &.{} },
814 .{ .name = "WeightTextureQCOM", .value = 4487, .parameters = &.{} },
815 .{ .name = "BlockMatchTextureQCOM", .value = 4488, .parameters = &.{} },
816 .{ .name = "BlockMatchSamplerQCOM", .value = 4499, .parameters = &.{} },
817 .{ .name = "ExplicitInterpAMD", .value = 4999, .parameters = &.{} },
818 .{ .name = "NodeSharesPayloadLimitsWithAMDX", .value = 5019, .parameters = &.{.id_ref} },
819 .{ .name = "NodeMaxPayloadsAMDX", .value = 5020, .parameters = &.{.id_ref} },
820 .{ .name = "TrackFinishWritingAMDX", .value = 5078, .parameters = &.{} },
821 .{ .name = "PayloadNodeNameAMDX", .value = 5091, .parameters = &.{.id_ref} },
822 .{ .name = "PayloadNodeBaseIndexAMDX", .value = 5098, .parameters = &.{.id_ref} },
823 .{ .name = "PayloadNodeSparseArrayAMDX", .value = 5099, .parameters = &.{} },
824 .{ .name = "PayloadNodeArraySizeAMDX", .value = 5100, .parameters = &.{.id_ref} },
825 .{ .name = "PayloadDispatchIndirectAMDX", .value = 5105, .parameters = &.{} },
826 .{ .name = "OverrideCoverageNV", .value = 5248, .parameters = &.{} },
827 .{ .name = "PassthroughNV", .value = 5250, .parameters = &.{} },
828 .{ .name = "ViewportRelativeNV", .value = 5252, .parameters = &.{} },
829 .{ .name = "SecondaryViewportRelativeNV", .value = 5256, .parameters = &.{.literal_integer} },
830 .{ .name = "PerPrimitiveEXT", .value = 5271, .parameters = &.{} },
831 .{ .name = "PerViewNV", .value = 5272, .parameters = &.{} },
832 .{ .name = "PerTaskNV", .value = 5273, .parameters = &.{} },
833 .{ .name = "PerVertexKHR", .value = 5285, .parameters = &.{} },
834 .{ .name = "NonUniform", .value = 5300, .parameters = &.{} },
835 .{ .name = "RestrictPointer", .value = 5355, .parameters = &.{} },
836 .{ .name = "AliasedPointer", .value = 5356, .parameters = &.{} },
837 .{ .name = "HitObjectShaderRecordBufferNV", .value = 5386, .parameters = &.{} },
838 .{ .name = "BindlessSamplerNV", .value = 5398, .parameters = &.{} },
839 .{ .name = "BindlessImageNV", .value = 5399, .parameters = &.{} },
840 .{ .name = "BoundSamplerNV", .value = 5400, .parameters = &.{} },
841 .{ .name = "BoundImageNV", .value = 5401, .parameters = &.{} },
842 .{ .name = "SIMTCallINTEL", .value = 5599, .parameters = &.{.literal_integer} },
843 .{ .name = "ReferencedIndirectlyINTEL", .value = 5602, .parameters = &.{} },
844 .{ .name = "ClobberINTEL", .value = 5607, .parameters = &.{.literal_string} },
845 .{ .name = "SideEffectsINTEL", .value = 5608, .parameters = &.{} },
846 .{ .name = "VectorComputeVariableINTEL", .value = 5624, .parameters = &.{} },
847 .{ .name = "FuncParamIOKindINTEL", .value = 5625, .parameters = &.{.literal_integer} },
848 .{ .name = "VectorComputeFunctionINTEL", .value = 5626, .parameters = &.{} },
849 .{ .name = "StackCallINTEL", .value = 5627, .parameters = &.{} },
850 .{ .name = "GlobalVariableOffsetINTEL", .value = 5628, .parameters = &.{.literal_integer} },
851 .{ .name = "CounterBuffer", .value = 5634, .parameters = &.{.id_ref} },
852 .{ .name = "UserSemantic", .value = 5635, .parameters = &.{.literal_string} },
853 .{ .name = "UserTypeGOOGLE", .value = 5636, .parameters = &.{.literal_string} },
854 .{ .name = "FunctionRoundingModeINTEL", .value = 5822, .parameters = &.{ .literal_integer, .fp_rounding_mode } },
855 .{ .name = "FunctionDenormModeINTEL", .value = 5823, .parameters = &.{ .literal_integer, .fp_denorm_mode } },
856 .{ .name = "RegisterINTEL", .value = 5825, .parameters = &.{} },
857 .{ .name = "MemoryINTEL", .value = 5826, .parameters = &.{.literal_string} },
858 .{ .name = "NumbanksINTEL", .value = 5827, .parameters = &.{.literal_integer} },
859 .{ .name = "BankwidthINTEL", .value = 5828, .parameters = &.{.literal_integer} },
860 .{ .name = "MaxPrivateCopiesINTEL", .value = 5829, .parameters = &.{.literal_integer} },
861 .{ .name = "SinglepumpINTEL", .value = 5830, .parameters = &.{} },
862 .{ .name = "DoublepumpINTEL", .value = 5831, .parameters = &.{} },
863 .{ .name = "MaxReplicatesINTEL", .value = 5832, .parameters = &.{.literal_integer} },
864 .{ .name = "SimpleDualPortINTEL", .value = 5833, .parameters = &.{} },
865 .{ .name = "MergeINTEL", .value = 5834, .parameters = &.{ .literal_string, .literal_string } },
866 .{ .name = "BankBitsINTEL", .value = 5835, .parameters = &.{.literal_integer} },
867 .{ .name = "ForcePow2DepthINTEL", .value = 5836, .parameters = &.{.literal_integer} },
868 .{ .name = "StridesizeINTEL", .value = 5883, .parameters = &.{.literal_integer} },
869 .{ .name = "WordsizeINTEL", .value = 5884, .parameters = &.{.literal_integer} },
870 .{ .name = "TrueDualPortINTEL", .value = 5885, .parameters = &.{} },
871 .{ .name = "BurstCoalesceINTEL", .value = 5899, .parameters = &.{} },
872 .{ .name = "CacheSizeINTEL", .value = 5900, .parameters = &.{.literal_integer} },
873 .{ .name = "DontStaticallyCoalesceINTEL", .value = 5901, .parameters = &.{} },
874 .{ .name = "PrefetchINTEL", .value = 5902, .parameters = &.{.literal_integer} },
875 .{ .name = "StallEnableINTEL", .value = 5905, .parameters = &.{} },
876 .{ .name = "FuseLoopsInFunctionINTEL", .value = 5907, .parameters = &.{} },
877 .{ .name = "MathOpDSPModeINTEL", .value = 5909, .parameters = &.{ .literal_integer, .literal_integer } },
878 .{ .name = "AliasScopeINTEL", .value = 5914, .parameters = &.{.id_ref} },
879 .{ .name = "NoAliasINTEL", .value = 5915, .parameters = &.{.id_ref} },
880 .{ .name = "InitiationIntervalINTEL", .value = 5917, .parameters = &.{.literal_integer} },
881 .{ .name = "MaxConcurrencyINTEL", .value = 5918, .parameters = &.{.literal_integer} },
882 .{ .name = "PipelineEnableINTEL", .value = 5919, .parameters = &.{.literal_integer} },
883 .{ .name = "BufferLocationINTEL", .value = 5921, .parameters = &.{.literal_integer} },
884 .{ .name = "IOPipeStorageINTEL", .value = 5944, .parameters = &.{.literal_integer} },
885 .{ .name = "FunctionFloatingPointModeINTEL", .value = 6080, .parameters = &.{ .literal_integer, .fp_operation_mode } },
886 .{ .name = "SingleElementVectorINTEL", .value = 6085, .parameters = &.{} },
887 .{ .name = "VectorComputeCallableFunctionINTEL", .value = 6087, .parameters = &.{} },
888 .{ .name = "MediaBlockIOINTEL", .value = 6140, .parameters = &.{} },
889 .{ .name = "StallFreeINTEL", .value = 6151, .parameters = &.{} },
890 .{ .name = "FPMaxErrorDecorationINTEL", .value = 6170, .parameters = &.{.literal_float} },
891 .{ .name = "LatencyControlLabelINTEL", .value = 6172, .parameters = &.{.literal_integer} },
892 .{ .name = "LatencyControlConstraintINTEL", .value = 6173, .parameters = &.{ .literal_integer, .literal_integer, .literal_integer } },
893 .{ .name = "ConduitKernelArgumentINTEL", .value = 6175, .parameters = &.{} },
894 .{ .name = "RegisterMapKernelArgumentINTEL", .value = 6176, .parameters = &.{} },
895 .{ .name = "MMHostInterfaceAddressWidthINTEL", .value = 6177, .parameters = &.{.literal_integer} },
896 .{ .name = "MMHostInterfaceDataWidthINTEL", .value = 6178, .parameters = &.{.literal_integer} },
897 .{ .name = "MMHostInterfaceLatencyINTEL", .value = 6179, .parameters = &.{.literal_integer} },
898 .{ .name = "MMHostInterfaceReadWriteModeINTEL", .value = 6180, .parameters = &.{.access_qualifier} },
899 .{ .name = "MMHostInterfaceMaxBurstINTEL", .value = 6181, .parameters = &.{.literal_integer} },
900 .{ .name = "MMHostInterfaceWaitRequestINTEL", .value = 6182, .parameters = &.{.literal_integer} },
901 .{ .name = "StableKernelArgumentINTEL", .value = 6183, .parameters = &.{} },
902 .{ .name = "HostAccessINTEL", .value = 6188, .parameters = &.{ .host_access_qualifier, .literal_string } },
903 .{ .name = "InitModeINTEL", .value = 6190, .parameters = &.{.initialization_mode_qualifier} },
904 .{ .name = "ImplementInRegisterMapINTEL", .value = 6191, .parameters = &.{.literal_integer} },
905 .{ .name = "CacheControlLoadINTEL", .value = 6442, .parameters = &.{ .literal_integer, .load_cache_control } },
906 .{ .name = "CacheControlStoreINTEL", .value = 6443, .parameters = &.{ .literal_integer, .store_cache_control } },
735907 },
736 .OverflowModes => &[_]Enumerant{
737 .{ .name = "WRAP", .value = 0, .parameters = &[_]OperandKind{} },
738 .{ .name = "SAT", .value = 1, .parameters = &[_]OperandKind{} },
739 .{ .name = "SAT_ZERO", .value = 2, .parameters = &[_]OperandKind{} },
740 .{ .name = "SAT_SYM", .value = 3, .parameters = &[_]OperandKind{} },
908 .built_in => &.{
909 .{ .name = "Position", .value = 0, .parameters = &.{} },
910 .{ .name = "PointSize", .value = 1, .parameters = &.{} },
911 .{ .name = "ClipDistance", .value = 3, .parameters = &.{} },
912 .{ .name = "CullDistance", .value = 4, .parameters = &.{} },
913 .{ .name = "VertexId", .value = 5, .parameters = &.{} },
914 .{ .name = "InstanceId", .value = 6, .parameters = &.{} },
915 .{ .name = "PrimitiveId", .value = 7, .parameters = &.{} },
916 .{ .name = "InvocationId", .value = 8, .parameters = &.{} },
917 .{ .name = "Layer", .value = 9, .parameters = &.{} },
918 .{ .name = "ViewportIndex", .value = 10, .parameters = &.{} },
919 .{ .name = "TessLevelOuter", .value = 11, .parameters = &.{} },
920 .{ .name = "TessLevelInner", .value = 12, .parameters = &.{} },
921 .{ .name = "TessCoord", .value = 13, .parameters = &.{} },
922 .{ .name = "PatchVertices", .value = 14, .parameters = &.{} },
923 .{ .name = "FragCoord", .value = 15, .parameters = &.{} },
924 .{ .name = "PointCoord", .value = 16, .parameters = &.{} },
925 .{ .name = "FrontFacing", .value = 17, .parameters = &.{} },
926 .{ .name = "SampleId", .value = 18, .parameters = &.{} },
927 .{ .name = "SamplePosition", .value = 19, .parameters = &.{} },
928 .{ .name = "SampleMask", .value = 20, .parameters = &.{} },
929 .{ .name = "FragDepth", .value = 22, .parameters = &.{} },
930 .{ .name = "HelperInvocation", .value = 23, .parameters = &.{} },
931 .{ .name = "NumWorkgroups", .value = 24, .parameters = &.{} },
932 .{ .name = "WorkgroupSize", .value = 25, .parameters = &.{} },
933 .{ .name = "WorkgroupId", .value = 26, .parameters = &.{} },
934 .{ .name = "LocalInvocationId", .value = 27, .parameters = &.{} },
935 .{ .name = "GlobalInvocationId", .value = 28, .parameters = &.{} },
936 .{ .name = "LocalInvocationIndex", .value = 29, .parameters = &.{} },
937 .{ .name = "WorkDim", .value = 30, .parameters = &.{} },
938 .{ .name = "GlobalSize", .value = 31, .parameters = &.{} },
939 .{ .name = "EnqueuedWorkgroupSize", .value = 32, .parameters = &.{} },
940 .{ .name = "GlobalOffset", .value = 33, .parameters = &.{} },
941 .{ .name = "GlobalLinearId", .value = 34, .parameters = &.{} },
942 .{ .name = "SubgroupSize", .value = 36, .parameters = &.{} },
943 .{ .name = "SubgroupMaxSize", .value = 37, .parameters = &.{} },
944 .{ .name = "NumSubgroups", .value = 38, .parameters = &.{} },
945 .{ .name = "NumEnqueuedSubgroups", .value = 39, .parameters = &.{} },
946 .{ .name = "SubgroupId", .value = 40, .parameters = &.{} },
947 .{ .name = "SubgroupLocalInvocationId", .value = 41, .parameters = &.{} },
948 .{ .name = "VertexIndex", .value = 42, .parameters = &.{} },
949 .{ .name = "InstanceIndex", .value = 43, .parameters = &.{} },
950 .{ .name = "CoreIDARM", .value = 4160, .parameters = &.{} },
951 .{ .name = "CoreCountARM", .value = 4161, .parameters = &.{} },
952 .{ .name = "CoreMaxIDARM", .value = 4162, .parameters = &.{} },
953 .{ .name = "WarpIDARM", .value = 4163, .parameters = &.{} },
954 .{ .name = "WarpMaxIDARM", .value = 4164, .parameters = &.{} },
955 .{ .name = "SubgroupEqMask", .value = 4416, .parameters = &.{} },
956 .{ .name = "SubgroupGeMask", .value = 4417, .parameters = &.{} },
957 .{ .name = "SubgroupGtMask", .value = 4418, .parameters = &.{} },
958 .{ .name = "SubgroupLeMask", .value = 4419, .parameters = &.{} },
959 .{ .name = "SubgroupLtMask", .value = 4420, .parameters = &.{} },
960 .{ .name = "BaseVertex", .value = 4424, .parameters = &.{} },
961 .{ .name = "BaseInstance", .value = 4425, .parameters = &.{} },
962 .{ .name = "DrawIndex", .value = 4426, .parameters = &.{} },
963 .{ .name = "PrimitiveShadingRateKHR", .value = 4432, .parameters = &.{} },
964 .{ .name = "DeviceIndex", .value = 4438, .parameters = &.{} },
965 .{ .name = "ViewIndex", .value = 4440, .parameters = &.{} },
966 .{ .name = "ShadingRateKHR", .value = 4444, .parameters = &.{} },
967 .{ .name = "TileOffsetQCOM", .value = 4492, .parameters = &.{} },
968 .{ .name = "TileDimensionQCOM", .value = 4493, .parameters = &.{} },
969 .{ .name = "TileApronSizeQCOM", .value = 4494, .parameters = &.{} },
970 .{ .name = "BaryCoordNoPerspAMD", .value = 4992, .parameters = &.{} },
971 .{ .name = "BaryCoordNoPerspCentroidAMD", .value = 4993, .parameters = &.{} },
972 .{ .name = "BaryCoordNoPerspSampleAMD", .value = 4994, .parameters = &.{} },
973 .{ .name = "BaryCoordSmoothAMD", .value = 4995, .parameters = &.{} },
974 .{ .name = "BaryCoordSmoothCentroidAMD", .value = 4996, .parameters = &.{} },
975 .{ .name = "BaryCoordSmoothSampleAMD", .value = 4997, .parameters = &.{} },
976 .{ .name = "BaryCoordPullModelAMD", .value = 4998, .parameters = &.{} },
977 .{ .name = "FragStencilRefEXT", .value = 5014, .parameters = &.{} },
978 .{ .name = "RemainingRecursionLevelsAMDX", .value = 5021, .parameters = &.{} },
979 .{ .name = "ShaderIndexAMDX", .value = 5073, .parameters = &.{} },
980 .{ .name = "ViewportMaskNV", .value = 5253, .parameters = &.{} },
981 .{ .name = "SecondaryPositionNV", .value = 5257, .parameters = &.{} },
982 .{ .name = "SecondaryViewportMaskNV", .value = 5258, .parameters = &.{} },
983 .{ .name = "PositionPerViewNV", .value = 5261, .parameters = &.{} },
984 .{ .name = "ViewportMaskPerViewNV", .value = 5262, .parameters = &.{} },
985 .{ .name = "FullyCoveredEXT", .value = 5264, .parameters = &.{} },
986 .{ .name = "TaskCountNV", .value = 5274, .parameters = &.{} },
987 .{ .name = "PrimitiveCountNV", .value = 5275, .parameters = &.{} },
988 .{ .name = "PrimitiveIndicesNV", .value = 5276, .parameters = &.{} },
989 .{ .name = "ClipDistancePerViewNV", .value = 5277, .parameters = &.{} },
990 .{ .name = "CullDistancePerViewNV", .value = 5278, .parameters = &.{} },
991 .{ .name = "LayerPerViewNV", .value = 5279, .parameters = &.{} },
992 .{ .name = "MeshViewCountNV", .value = 5280, .parameters = &.{} },
993 .{ .name = "MeshViewIndicesNV", .value = 5281, .parameters = &.{} },
994 .{ .name = "BaryCoordKHR", .value = 5286, .parameters = &.{} },
995 .{ .name = "BaryCoordNoPerspKHR", .value = 5287, .parameters = &.{} },
996 .{ .name = "FragSizeEXT", .value = 5292, .parameters = &.{} },
997 .{ .name = "FragInvocationCountEXT", .value = 5293, .parameters = &.{} },
998 .{ .name = "PrimitivePointIndicesEXT", .value = 5294, .parameters = &.{} },
999 .{ .name = "PrimitiveLineIndicesEXT", .value = 5295, .parameters = &.{} },
1000 .{ .name = "PrimitiveTriangleIndicesEXT", .value = 5296, .parameters = &.{} },
1001 .{ .name = "CullPrimitiveEXT", .value = 5299, .parameters = &.{} },
1002 .{ .name = "LaunchIdKHR", .value = 5319, .parameters = &.{} },
1003 .{ .name = "LaunchSizeKHR", .value = 5320, .parameters = &.{} },
1004 .{ .name = "WorldRayOriginKHR", .value = 5321, .parameters = &.{} },
1005 .{ .name = "WorldRayDirectionKHR", .value = 5322, .parameters = &.{} },
1006 .{ .name = "ObjectRayOriginKHR", .value = 5323, .parameters = &.{} },
1007 .{ .name = "ObjectRayDirectionKHR", .value = 5324, .parameters = &.{} },
1008 .{ .name = "RayTminKHR", .value = 5325, .parameters = &.{} },
1009 .{ .name = "RayTmaxKHR", .value = 5326, .parameters = &.{} },
1010 .{ .name = "InstanceCustomIndexKHR", .value = 5327, .parameters = &.{} },
1011 .{ .name = "ObjectToWorldKHR", .value = 5330, .parameters = &.{} },
1012 .{ .name = "WorldToObjectKHR", .value = 5331, .parameters = &.{} },
1013 .{ .name = "HitTNV", .value = 5332, .parameters = &.{} },
1014 .{ .name = "HitKindKHR", .value = 5333, .parameters = &.{} },
1015 .{ .name = "CurrentRayTimeNV", .value = 5334, .parameters = &.{} },
1016 .{ .name = "HitTriangleVertexPositionsKHR", .value = 5335, .parameters = &.{} },
1017 .{ .name = "HitMicroTriangleVertexPositionsNV", .value = 5337, .parameters = &.{} },
1018 .{ .name = "HitMicroTriangleVertexBarycentricsNV", .value = 5344, .parameters = &.{} },
1019 .{ .name = "IncomingRayFlagsKHR", .value = 5351, .parameters = &.{} },
1020 .{ .name = "RayGeometryIndexKHR", .value = 5352, .parameters = &.{} },
1021 .{ .name = "HitIsSphereNV", .value = 5359, .parameters = &.{} },
1022 .{ .name = "HitIsLSSNV", .value = 5360, .parameters = &.{} },
1023 .{ .name = "HitSpherePositionNV", .value = 5361, .parameters = &.{} },
1024 .{ .name = "WarpsPerSMNV", .value = 5374, .parameters = &.{} },
1025 .{ .name = "SMCountNV", .value = 5375, .parameters = &.{} },
1026 .{ .name = "WarpIDNV", .value = 5376, .parameters = &.{} },
1027 .{ .name = "SMIDNV", .value = 5377, .parameters = &.{} },
1028 .{ .name = "HitLSSPositionsNV", .value = 5396, .parameters = &.{} },
1029 .{ .name = "HitKindFrontFacingMicroTriangleNV", .value = 5405, .parameters = &.{} },
1030 .{ .name = "HitKindBackFacingMicroTriangleNV", .value = 5406, .parameters = &.{} },
1031 .{ .name = "HitSphereRadiusNV", .value = 5420, .parameters = &.{} },
1032 .{ .name = "HitLSSRadiiNV", .value = 5421, .parameters = &.{} },
1033 .{ .name = "ClusterIDNV", .value = 5436, .parameters = &.{} },
1034 .{ .name = "CullMaskKHR", .value = 6021, .parameters = &.{} },
7411035 },
742 .LinkageType => &[_]Enumerant{
743 .{ .name = "Export", .value = 0, .parameters = &[_]OperandKind{} },
744 .{ .name = "Import", .value = 1, .parameters = &[_]OperandKind{} },
745 .{ .name = "LinkOnceODR", .value = 2, .parameters = &[_]OperandKind{} },
1036 .scope => &.{
1037 .{ .name = "CrossDevice", .value = 0, .parameters = &.{} },
1038 .{ .name = "Device", .value = 1, .parameters = &.{} },
1039 .{ .name = "Workgroup", .value = 2, .parameters = &.{} },
1040 .{ .name = "Subgroup", .value = 3, .parameters = &.{} },
1041 .{ .name = "Invocation", .value = 4, .parameters = &.{} },
1042 .{ .name = "QueueFamily", .value = 5, .parameters = &.{} },
1043 .{ .name = "ShaderCallKHR", .value = 6, .parameters = &.{} },
7461044 },
747 .AccessQualifier => &[_]Enumerant{
748 .{ .name = "ReadOnly", .value = 0, .parameters = &[_]OperandKind{} },
749 .{ .name = "WriteOnly", .value = 1, .parameters = &[_]OperandKind{} },
750 .{ .name = "ReadWrite", .value = 2, .parameters = &[_]OperandKind{} },
1045 .group_operation => &.{
1046 .{ .name = "Reduce", .value = 0, .parameters = &.{} },
1047 .{ .name = "InclusiveScan", .value = 1, .parameters = &.{} },
1048 .{ .name = "ExclusiveScan", .value = 2, .parameters = &.{} },
1049 .{ .name = "ClusteredReduce", .value = 3, .parameters = &.{} },
1050 .{ .name = "PartitionedReduceNV", .value = 6, .parameters = &.{} },
1051 .{ .name = "PartitionedInclusiveScanNV", .value = 7, .parameters = &.{} },
1052 .{ .name = "PartitionedExclusiveScanNV", .value = 8, .parameters = &.{} },
7511053 },
752 .HostAccessQualifier => &[_]Enumerant{
753 .{ .name = "NoneINTEL", .value = 0, .parameters = &[_]OperandKind{} },
754 .{ .name = "ReadINTEL", .value = 1, .parameters = &[_]OperandKind{} },
755 .{ .name = "WriteINTEL", .value = 2, .parameters = &[_]OperandKind{} },
756 .{ .name = "ReadWriteINTEL", .value = 3, .parameters = &[_]OperandKind{} },
1054 .kernel_enqueue_flags => &.{
1055 .{ .name = "NoWait", .value = 0, .parameters = &.{} },
1056 .{ .name = "WaitKernel", .value = 1, .parameters = &.{} },
1057 .{ .name = "WaitWorkGroup", .value = 2, .parameters = &.{} },
7571058 },
758 .FunctionParameterAttribute => &[_]Enumerant{
759 .{ .name = "Zext", .value = 0, .parameters = &[_]OperandKind{} },
760 .{ .name = "Sext", .value = 1, .parameters = &[_]OperandKind{} },
761 .{ .name = "ByVal", .value = 2, .parameters = &[_]OperandKind{} },
762 .{ .name = "Sret", .value = 3, .parameters = &[_]OperandKind{} },
763 .{ .name = "NoAlias", .value = 4, .parameters = &[_]OperandKind{} },
764 .{ .name = "NoCapture", .value = 5, .parameters = &[_]OperandKind{} },
765 .{ .name = "NoWrite", .value = 6, .parameters = &[_]OperandKind{} },
766 .{ .name = "NoReadWrite", .value = 7, .parameters = &[_]OperandKind{} },
767 .{ .name = "RuntimeAlignedINTEL", .value = 5940, .parameters = &[_]OperandKind{} },
1059 .capability => &.{
1060 .{ .name = "Matrix", .value = 0, .parameters = &.{} },
1061 .{ .name = "Shader", .value = 1, .parameters = &.{} },
1062 .{ .name = "Geometry", .value = 2, .parameters = &.{} },
1063 .{ .name = "Tessellation", .value = 3, .parameters = &.{} },
1064 .{ .name = "Addresses", .value = 4, .parameters = &.{} },
1065 .{ .name = "Linkage", .value = 5, .parameters = &.{} },
1066 .{ .name = "Kernel", .value = 6, .parameters = &.{} },
1067 .{ .name = "Vector16", .value = 7, .parameters = &.{} },
1068 .{ .name = "Float16Buffer", .value = 8, .parameters = &.{} },
1069 .{ .name = "Float16", .value = 9, .parameters = &.{} },
1070 .{ .name = "Float64", .value = 10, .parameters = &.{} },
1071 .{ .name = "Int64", .value = 11, .parameters = &.{} },
1072 .{ .name = "Int64Atomics", .value = 12, .parameters = &.{} },
1073 .{ .name = "ImageBasic", .value = 13, .parameters = &.{} },
1074 .{ .name = "ImageReadWrite", .value = 14, .parameters = &.{} },
1075 .{ .name = "ImageMipmap", .value = 15, .parameters = &.{} },
1076 .{ .name = "Pipes", .value = 17, .parameters = &.{} },
1077 .{ .name = "Groups", .value = 18, .parameters = &.{} },
1078 .{ .name = "DeviceEnqueue", .value = 19, .parameters = &.{} },
1079 .{ .name = "LiteralSampler", .value = 20, .parameters = &.{} },
1080 .{ .name = "AtomicStorage", .value = 21, .parameters = &.{} },
1081 .{ .name = "Int16", .value = 22, .parameters = &.{} },
1082 .{ .name = "TessellationPointSize", .value = 23, .parameters = &.{} },
1083 .{ .name = "GeometryPointSize", .value = 24, .parameters = &.{} },
1084 .{ .name = "ImageGatherExtended", .value = 25, .parameters = &.{} },
1085 .{ .name = "StorageImageMultisample", .value = 27, .parameters = &.{} },
1086 .{ .name = "UniformBufferArrayDynamicIndexing", .value = 28, .parameters = &.{} },
1087 .{ .name = "SampledImageArrayDynamicIndexing", .value = 29, .parameters = &.{} },
1088 .{ .name = "StorageBufferArrayDynamicIndexing", .value = 30, .parameters = &.{} },
1089 .{ .name = "StorageImageArrayDynamicIndexing", .value = 31, .parameters = &.{} },
1090 .{ .name = "ClipDistance", .value = 32, .parameters = &.{} },
1091 .{ .name = "CullDistance", .value = 33, .parameters = &.{} },
1092 .{ .name = "ImageCubeArray", .value = 34, .parameters = &.{} },
1093 .{ .name = "SampleRateShading", .value = 35, .parameters = &.{} },
1094 .{ .name = "ImageRect", .value = 36, .parameters = &.{} },
1095 .{ .name = "SampledRect", .value = 37, .parameters = &.{} },
1096 .{ .name = "GenericPointer", .value = 38, .parameters = &.{} },
1097 .{ .name = "Int8", .value = 39, .parameters = &.{} },
1098 .{ .name = "InputAttachment", .value = 40, .parameters = &.{} },
1099 .{ .name = "SparseResidency", .value = 41, .parameters = &.{} },
1100 .{ .name = "MinLod", .value = 42, .parameters = &.{} },
1101 .{ .name = "Sampled1D", .value = 43, .parameters = &.{} },
1102 .{ .name = "Image1D", .value = 44, .parameters = &.{} },
1103 .{ .name = "SampledCubeArray", .value = 45, .parameters = &.{} },
1104 .{ .name = "SampledBuffer", .value = 46, .parameters = &.{} },
1105 .{ .name = "ImageBuffer", .value = 47, .parameters = &.{} },
1106 .{ .name = "ImageMSArray", .value = 48, .parameters = &.{} },
1107 .{ .name = "StorageImageExtendedFormats", .value = 49, .parameters = &.{} },
1108 .{ .name = "ImageQuery", .value = 50, .parameters = &.{} },
1109 .{ .name = "DerivativeControl", .value = 51, .parameters = &.{} },
1110 .{ .name = "InterpolationFunction", .value = 52, .parameters = &.{} },
1111 .{ .name = "TransformFeedback", .value = 53, .parameters = &.{} },
1112 .{ .name = "GeometryStreams", .value = 54, .parameters = &.{} },
1113 .{ .name = "StorageImageReadWithoutFormat", .value = 55, .parameters = &.{} },
1114 .{ .name = "StorageImageWriteWithoutFormat", .value = 56, .parameters = &.{} },
1115 .{ .name = "MultiViewport", .value = 57, .parameters = &.{} },
1116 .{ .name = "SubgroupDispatch", .value = 58, .parameters = &.{} },
1117 .{ .name = "NamedBarrier", .value = 59, .parameters = &.{} },
1118 .{ .name = "PipeStorage", .value = 60, .parameters = &.{} },
1119 .{ .name = "GroupNonUniform", .value = 61, .parameters = &.{} },
1120 .{ .name = "GroupNonUniformVote", .value = 62, .parameters = &.{} },
1121 .{ .name = "GroupNonUniformArithmetic", .value = 63, .parameters = &.{} },
1122 .{ .name = "GroupNonUniformBallot", .value = 64, .parameters = &.{} },
1123 .{ .name = "GroupNonUniformShuffle", .value = 65, .parameters = &.{} },
1124 .{ .name = "GroupNonUniformShuffleRelative", .value = 66, .parameters = &.{} },
1125 .{ .name = "GroupNonUniformClustered", .value = 67, .parameters = &.{} },
1126 .{ .name = "GroupNonUniformQuad", .value = 68, .parameters = &.{} },
1127 .{ .name = "ShaderLayer", .value = 69, .parameters = &.{} },
1128 .{ .name = "ShaderViewportIndex", .value = 70, .parameters = &.{} },
1129 .{ .name = "UniformDecoration", .value = 71, .parameters = &.{} },
1130 .{ .name = "CoreBuiltinsARM", .value = 4165, .parameters = &.{} },
1131 .{ .name = "TileImageColorReadAccessEXT", .value = 4166, .parameters = &.{} },
1132 .{ .name = "TileImageDepthReadAccessEXT", .value = 4167, .parameters = &.{} },
1133 .{ .name = "TileImageStencilReadAccessEXT", .value = 4168, .parameters = &.{} },
1134 .{ .name = "TensorsARM", .value = 4174, .parameters = &.{} },
1135 .{ .name = "StorageTensorArrayDynamicIndexingARM", .value = 4175, .parameters = &.{} },
1136 .{ .name = "StorageTensorArrayNonUniformIndexingARM", .value = 4176, .parameters = &.{} },
1137 .{ .name = "GraphARM", .value = 4191, .parameters = &.{} },
1138 .{ .name = "CooperativeMatrixLayoutsARM", .value = 4201, .parameters = &.{} },
1139 .{ .name = "Float8EXT", .value = 4212, .parameters = &.{} },
1140 .{ .name = "Float8CooperativeMatrixEXT", .value = 4213, .parameters = &.{} },
1141 .{ .name = "FragmentShadingRateKHR", .value = 4422, .parameters = &.{} },
1142 .{ .name = "SubgroupBallotKHR", .value = 4423, .parameters = &.{} },
1143 .{ .name = "DrawParameters", .value = 4427, .parameters = &.{} },
1144 .{ .name = "WorkgroupMemoryExplicitLayoutKHR", .value = 4428, .parameters = &.{} },
1145 .{ .name = "WorkgroupMemoryExplicitLayout8BitAccessKHR", .value = 4429, .parameters = &.{} },
1146 .{ .name = "WorkgroupMemoryExplicitLayout16BitAccessKHR", .value = 4430, .parameters = &.{} },
1147 .{ .name = "SubgroupVoteKHR", .value = 4431, .parameters = &.{} },
1148 .{ .name = "StorageBuffer16BitAccess", .value = 4433, .parameters = &.{} },
1149 .{ .name = "UniformAndStorageBuffer16BitAccess", .value = 4434, .parameters = &.{} },
1150 .{ .name = "StoragePushConstant16", .value = 4435, .parameters = &.{} },
1151 .{ .name = "StorageInputOutput16", .value = 4436, .parameters = &.{} },
1152 .{ .name = "DeviceGroup", .value = 4437, .parameters = &.{} },
1153 .{ .name = "MultiView", .value = 4439, .parameters = &.{} },
1154 .{ .name = "VariablePointersStorageBuffer", .value = 4441, .parameters = &.{} },
1155 .{ .name = "VariablePointers", .value = 4442, .parameters = &.{} },
1156 .{ .name = "AtomicStorageOps", .value = 4445, .parameters = &.{} },
1157 .{ .name = "SampleMaskPostDepthCoverage", .value = 4447, .parameters = &.{} },
1158 .{ .name = "StorageBuffer8BitAccess", .value = 4448, .parameters = &.{} },
1159 .{ .name = "UniformAndStorageBuffer8BitAccess", .value = 4449, .parameters = &.{} },
1160 .{ .name = "StoragePushConstant8", .value = 4450, .parameters = &.{} },
1161 .{ .name = "DenormPreserve", .value = 4464, .parameters = &.{} },
1162 .{ .name = "DenormFlushToZero", .value = 4465, .parameters = &.{} },
1163 .{ .name = "SignedZeroInfNanPreserve", .value = 4466, .parameters = &.{} },
1164 .{ .name = "RoundingModeRTE", .value = 4467, .parameters = &.{} },
1165 .{ .name = "RoundingModeRTZ", .value = 4468, .parameters = &.{} },
1166 .{ .name = "RayQueryProvisionalKHR", .value = 4471, .parameters = &.{} },
1167 .{ .name = "RayQueryKHR", .value = 4472, .parameters = &.{} },
1168 .{ .name = "UntypedPointersKHR", .value = 4473, .parameters = &.{} },
1169 .{ .name = "RayTraversalPrimitiveCullingKHR", .value = 4478, .parameters = &.{} },
1170 .{ .name = "RayTracingKHR", .value = 4479, .parameters = &.{} },
1171 .{ .name = "TextureSampleWeightedQCOM", .value = 4484, .parameters = &.{} },
1172 .{ .name = "TextureBoxFilterQCOM", .value = 4485, .parameters = &.{} },
1173 .{ .name = "TextureBlockMatchQCOM", .value = 4486, .parameters = &.{} },
1174 .{ .name = "TileShadingQCOM", .value = 4495, .parameters = &.{} },
1175 .{ .name = "TextureBlockMatch2QCOM", .value = 4498, .parameters = &.{} },
1176 .{ .name = "Float16ImageAMD", .value = 5008, .parameters = &.{} },
1177 .{ .name = "ImageGatherBiasLodAMD", .value = 5009, .parameters = &.{} },
1178 .{ .name = "FragmentMaskAMD", .value = 5010, .parameters = &.{} },
1179 .{ .name = "StencilExportEXT", .value = 5013, .parameters = &.{} },
1180 .{ .name = "ImageReadWriteLodAMD", .value = 5015, .parameters = &.{} },
1181 .{ .name = "Int64ImageEXT", .value = 5016, .parameters = &.{} },
1182 .{ .name = "ShaderClockKHR", .value = 5055, .parameters = &.{} },
1183 .{ .name = "ShaderEnqueueAMDX", .value = 5067, .parameters = &.{} },
1184 .{ .name = "QuadControlKHR", .value = 5087, .parameters = &.{} },
1185 .{ .name = "Int4TypeINTEL", .value = 5112, .parameters = &.{} },
1186 .{ .name = "Int4CooperativeMatrixINTEL", .value = 5114, .parameters = &.{} },
1187 .{ .name = "BFloat16TypeKHR", .value = 5116, .parameters = &.{} },
1188 .{ .name = "BFloat16DotProductKHR", .value = 5117, .parameters = &.{} },
1189 .{ .name = "BFloat16CooperativeMatrixKHR", .value = 5118, .parameters = &.{} },
1190 .{ .name = "SampleMaskOverrideCoverageNV", .value = 5249, .parameters = &.{} },
1191 .{ .name = "GeometryShaderPassthroughNV", .value = 5251, .parameters = &.{} },
1192 .{ .name = "ShaderViewportIndexLayerEXT", .value = 5254, .parameters = &.{} },
1193 .{ .name = "ShaderViewportMaskNV", .value = 5255, .parameters = &.{} },
1194 .{ .name = "ShaderStereoViewNV", .value = 5259, .parameters = &.{} },
1195 .{ .name = "PerViewAttributesNV", .value = 5260, .parameters = &.{} },
1196 .{ .name = "FragmentFullyCoveredEXT", .value = 5265, .parameters = &.{} },
1197 .{ .name = "MeshShadingNV", .value = 5266, .parameters = &.{} },
1198 .{ .name = "ImageFootprintNV", .value = 5282, .parameters = &.{} },
1199 .{ .name = "MeshShadingEXT", .value = 5283, .parameters = &.{} },
1200 .{ .name = "FragmentBarycentricKHR", .value = 5284, .parameters = &.{} },
1201 .{ .name = "ComputeDerivativeGroupQuadsKHR", .value = 5288, .parameters = &.{} },
1202 .{ .name = "FragmentDensityEXT", .value = 5291, .parameters = &.{} },
1203 .{ .name = "GroupNonUniformPartitionedNV", .value = 5297, .parameters = &.{} },
1204 .{ .name = "ShaderNonUniform", .value = 5301, .parameters = &.{} },
1205 .{ .name = "RuntimeDescriptorArray", .value = 5302, .parameters = &.{} },
1206 .{ .name = "InputAttachmentArrayDynamicIndexing", .value = 5303, .parameters = &.{} },
1207 .{ .name = "UniformTexelBufferArrayDynamicIndexing", .value = 5304, .parameters = &.{} },
1208 .{ .name = "StorageTexelBufferArrayDynamicIndexing", .value = 5305, .parameters = &.{} },
1209 .{ .name = "UniformBufferArrayNonUniformIndexing", .value = 5306, .parameters = &.{} },
1210 .{ .name = "SampledImageArrayNonUniformIndexing", .value = 5307, .parameters = &.{} },
1211 .{ .name = "StorageBufferArrayNonUniformIndexing", .value = 5308, .parameters = &.{} },
1212 .{ .name = "StorageImageArrayNonUniformIndexing", .value = 5309, .parameters = &.{} },
1213 .{ .name = "InputAttachmentArrayNonUniformIndexing", .value = 5310, .parameters = &.{} },
1214 .{ .name = "UniformTexelBufferArrayNonUniformIndexing", .value = 5311, .parameters = &.{} },
1215 .{ .name = "StorageTexelBufferArrayNonUniformIndexing", .value = 5312, .parameters = &.{} },
1216 .{ .name = "RayTracingPositionFetchKHR", .value = 5336, .parameters = &.{} },
1217 .{ .name = "RayTracingNV", .value = 5340, .parameters = &.{} },
1218 .{ .name = "RayTracingMotionBlurNV", .value = 5341, .parameters = &.{} },
1219 .{ .name = "VulkanMemoryModel", .value = 5345, .parameters = &.{} },
1220 .{ .name = "VulkanMemoryModelDeviceScope", .value = 5346, .parameters = &.{} },
1221 .{ .name = "PhysicalStorageBufferAddresses", .value = 5347, .parameters = &.{} },
1222 .{ .name = "ComputeDerivativeGroupLinearKHR", .value = 5350, .parameters = &.{} },
1223 .{ .name = "RayTracingProvisionalKHR", .value = 5353, .parameters = &.{} },
1224 .{ .name = "CooperativeMatrixNV", .value = 5357, .parameters = &.{} },
1225 .{ .name = "FragmentShaderSampleInterlockEXT", .value = 5363, .parameters = &.{} },
1226 .{ .name = "FragmentShaderShadingRateInterlockEXT", .value = 5372, .parameters = &.{} },
1227 .{ .name = "ShaderSMBuiltinsNV", .value = 5373, .parameters = &.{} },
1228 .{ .name = "FragmentShaderPixelInterlockEXT", .value = 5378, .parameters = &.{} },
1229 .{ .name = "DemoteToHelperInvocation", .value = 5379, .parameters = &.{} },
1230 .{ .name = "DisplacementMicromapNV", .value = 5380, .parameters = &.{} },
1231 .{ .name = "RayTracingOpacityMicromapEXT", .value = 5381, .parameters = &.{} },
1232 .{ .name = "ShaderInvocationReorderNV", .value = 5383, .parameters = &.{} },
1233 .{ .name = "BindlessTextureNV", .value = 5390, .parameters = &.{} },
1234 .{ .name = "RayQueryPositionFetchKHR", .value = 5391, .parameters = &.{} },
1235 .{ .name = "CooperativeVectorNV", .value = 5394, .parameters = &.{} },
1236 .{ .name = "AtomicFloat16VectorNV", .value = 5404, .parameters = &.{} },
1237 .{ .name = "RayTracingDisplacementMicromapNV", .value = 5409, .parameters = &.{} },
1238 .{ .name = "RawAccessChainsNV", .value = 5414, .parameters = &.{} },
1239 .{ .name = "RayTracingSpheresGeometryNV", .value = 5418, .parameters = &.{} },
1240 .{ .name = "RayTracingLinearSweptSpheresGeometryNV", .value = 5419, .parameters = &.{} },
1241 .{ .name = "CooperativeMatrixReductionsNV", .value = 5430, .parameters = &.{} },
1242 .{ .name = "CooperativeMatrixConversionsNV", .value = 5431, .parameters = &.{} },
1243 .{ .name = "CooperativeMatrixPerElementOperationsNV", .value = 5432, .parameters = &.{} },
1244 .{ .name = "CooperativeMatrixTensorAddressingNV", .value = 5433, .parameters = &.{} },
1245 .{ .name = "CooperativeMatrixBlockLoadsNV", .value = 5434, .parameters = &.{} },
1246 .{ .name = "CooperativeVectorTrainingNV", .value = 5435, .parameters = &.{} },
1247 .{ .name = "RayTracingClusterAccelerationStructureNV", .value = 5437, .parameters = &.{} },
1248 .{ .name = "TensorAddressingNV", .value = 5439, .parameters = &.{} },
1249 .{ .name = "SubgroupShuffleINTEL", .value = 5568, .parameters = &.{} },
1250 .{ .name = "SubgroupBufferBlockIOINTEL", .value = 5569, .parameters = &.{} },
1251 .{ .name = "SubgroupImageBlockIOINTEL", .value = 5570, .parameters = &.{} },
1252 .{ .name = "SubgroupImageMediaBlockIOINTEL", .value = 5579, .parameters = &.{} },
1253 .{ .name = "RoundToInfinityINTEL", .value = 5582, .parameters = &.{} },
1254 .{ .name = "FloatingPointModeINTEL", .value = 5583, .parameters = &.{} },
1255 .{ .name = "IntegerFunctions2INTEL", .value = 5584, .parameters = &.{} },
1256 .{ .name = "FunctionPointersINTEL", .value = 5603, .parameters = &.{} },
1257 .{ .name = "IndirectReferencesINTEL", .value = 5604, .parameters = &.{} },
1258 .{ .name = "AsmINTEL", .value = 5606, .parameters = &.{} },
1259 .{ .name = "AtomicFloat32MinMaxEXT", .value = 5612, .parameters = &.{} },
1260 .{ .name = "AtomicFloat64MinMaxEXT", .value = 5613, .parameters = &.{} },
1261 .{ .name = "AtomicFloat16MinMaxEXT", .value = 5616, .parameters = &.{} },
1262 .{ .name = "VectorComputeINTEL", .value = 5617, .parameters = &.{} },
1263 .{ .name = "VectorAnyINTEL", .value = 5619, .parameters = &.{} },
1264 .{ .name = "ExpectAssumeKHR", .value = 5629, .parameters = &.{} },
1265 .{ .name = "SubgroupAvcMotionEstimationINTEL", .value = 5696, .parameters = &.{} },
1266 .{ .name = "SubgroupAvcMotionEstimationIntraINTEL", .value = 5697, .parameters = &.{} },
1267 .{ .name = "SubgroupAvcMotionEstimationChromaINTEL", .value = 5698, .parameters = &.{} },
1268 .{ .name = "VariableLengthArrayINTEL", .value = 5817, .parameters = &.{} },
1269 .{ .name = "FunctionFloatControlINTEL", .value = 5821, .parameters = &.{} },
1270 .{ .name = "FPGAMemoryAttributesINTEL", .value = 5824, .parameters = &.{} },
1271 .{ .name = "FPFastMathModeINTEL", .value = 5837, .parameters = &.{} },
1272 .{ .name = "ArbitraryPrecisionIntegersINTEL", .value = 5844, .parameters = &.{} },
1273 .{ .name = "ArbitraryPrecisionFloatingPointINTEL", .value = 5845, .parameters = &.{} },
1274 .{ .name = "UnstructuredLoopControlsINTEL", .value = 5886, .parameters = &.{} },
1275 .{ .name = "FPGALoopControlsINTEL", .value = 5888, .parameters = &.{} },
1276 .{ .name = "KernelAttributesINTEL", .value = 5892, .parameters = &.{} },
1277 .{ .name = "FPGAKernelAttributesINTEL", .value = 5897, .parameters = &.{} },
1278 .{ .name = "FPGAMemoryAccessesINTEL", .value = 5898, .parameters = &.{} },
1279 .{ .name = "FPGAClusterAttributesINTEL", .value = 5904, .parameters = &.{} },
1280 .{ .name = "LoopFuseINTEL", .value = 5906, .parameters = &.{} },
1281 .{ .name = "FPGADSPControlINTEL", .value = 5908, .parameters = &.{} },
1282 .{ .name = "MemoryAccessAliasingINTEL", .value = 5910, .parameters = &.{} },
1283 .{ .name = "FPGAInvocationPipeliningAttributesINTEL", .value = 5916, .parameters = &.{} },
1284 .{ .name = "FPGABufferLocationINTEL", .value = 5920, .parameters = &.{} },
1285 .{ .name = "ArbitraryPrecisionFixedPointINTEL", .value = 5922, .parameters = &.{} },
1286 .{ .name = "USMStorageClassesINTEL", .value = 5935, .parameters = &.{} },
1287 .{ .name = "RuntimeAlignedAttributeINTEL", .value = 5939, .parameters = &.{} },
1288 .{ .name = "IOPipesINTEL", .value = 5943, .parameters = &.{} },
1289 .{ .name = "BlockingPipesINTEL", .value = 5945, .parameters = &.{} },
1290 .{ .name = "FPGARegINTEL", .value = 5948, .parameters = &.{} },
1291 .{ .name = "DotProductInputAll", .value = 6016, .parameters = &.{} },
1292 .{ .name = "DotProductInput4x8Bit", .value = 6017, .parameters = &.{} },
1293 .{ .name = "DotProductInput4x8BitPacked", .value = 6018, .parameters = &.{} },
1294 .{ .name = "DotProduct", .value = 6019, .parameters = &.{} },
1295 .{ .name = "RayCullMaskKHR", .value = 6020, .parameters = &.{} },
1296 .{ .name = "CooperativeMatrixKHR", .value = 6022, .parameters = &.{} },
1297 .{ .name = "ReplicatedCompositesEXT", .value = 6024, .parameters = &.{} },
1298 .{ .name = "BitInstructions", .value = 6025, .parameters = &.{} },
1299 .{ .name = "GroupNonUniformRotateKHR", .value = 6026, .parameters = &.{} },
1300 .{ .name = "FloatControls2", .value = 6029, .parameters = &.{} },
1301 .{ .name = "AtomicFloat32AddEXT", .value = 6033, .parameters = &.{} },
1302 .{ .name = "AtomicFloat64AddEXT", .value = 6034, .parameters = &.{} },
1303 .{ .name = "LongCompositesINTEL", .value = 6089, .parameters = &.{} },
1304 .{ .name = "OptNoneEXT", .value = 6094, .parameters = &.{} },
1305 .{ .name = "AtomicFloat16AddEXT", .value = 6095, .parameters = &.{} },
1306 .{ .name = "DebugInfoModuleINTEL", .value = 6114, .parameters = &.{} },
1307 .{ .name = "BFloat16ConversionINTEL", .value = 6115, .parameters = &.{} },
1308 .{ .name = "SplitBarrierINTEL", .value = 6141, .parameters = &.{} },
1309 .{ .name = "ArithmeticFenceEXT", .value = 6144, .parameters = &.{} },
1310 .{ .name = "FPGAClusterAttributesV2INTEL", .value = 6150, .parameters = &.{} },
1311 .{ .name = "FPGAKernelAttributesv2INTEL", .value = 6161, .parameters = &.{} },
1312 .{ .name = "TaskSequenceINTEL", .value = 6162, .parameters = &.{} },
1313 .{ .name = "FPMaxErrorINTEL", .value = 6169, .parameters = &.{} },
1314 .{ .name = "FPGALatencyControlINTEL", .value = 6171, .parameters = &.{} },
1315 .{ .name = "FPGAArgumentInterfacesINTEL", .value = 6174, .parameters = &.{} },
1316 .{ .name = "GlobalVariableHostAccessINTEL", .value = 6187, .parameters = &.{} },
1317 .{ .name = "GlobalVariableFPGADecorationsINTEL", .value = 6189, .parameters = &.{} },
1318 .{ .name = "SubgroupBufferPrefetchINTEL", .value = 6220, .parameters = &.{} },
1319 .{ .name = "Subgroup2DBlockIOINTEL", .value = 6228, .parameters = &.{} },
1320 .{ .name = "Subgroup2DBlockTransformINTEL", .value = 6229, .parameters = &.{} },
1321 .{ .name = "Subgroup2DBlockTransposeINTEL", .value = 6230, .parameters = &.{} },
1322 .{ .name = "SubgroupMatrixMultiplyAccumulateINTEL", .value = 6236, .parameters = &.{} },
1323 .{ .name = "TernaryBitwiseFunctionINTEL", .value = 6241, .parameters = &.{} },
1324 .{ .name = "GroupUniformArithmeticKHR", .value = 6400, .parameters = &.{} },
1325 .{ .name = "TensorFloat32RoundingINTEL", .value = 6425, .parameters = &.{} },
1326 .{ .name = "MaskedGatherScatterINTEL", .value = 6427, .parameters = &.{} },
1327 .{ .name = "CacheControlsINTEL", .value = 6441, .parameters = &.{} },
1328 .{ .name = "RegisterLimitsINTEL", .value = 6460, .parameters = &.{} },
1329 .{ .name = "BindlessImagesINTEL", .value = 6528, .parameters = &.{} },
7681330 },
769 .Decoration => &[_]Enumerant{
770 .{ .name = "RelaxedPrecision", .value = 0, .parameters = &[_]OperandKind{} },
771 .{ .name = "SpecId", .value = 1, .parameters = &[_]OperandKind{.LiteralInteger} },
772 .{ .name = "Block", .value = 2, .parameters = &[_]OperandKind{} },
773 .{ .name = "BufferBlock", .value = 3, .parameters = &[_]OperandKind{} },
774 .{ .name = "RowMajor", .value = 4, .parameters = &[_]OperandKind{} },
775 .{ .name = "ColMajor", .value = 5, .parameters = &[_]OperandKind{} },
776 .{ .name = "ArrayStride", .value = 6, .parameters = &[_]OperandKind{.LiteralInteger} },
777 .{ .name = "MatrixStride", .value = 7, .parameters = &[_]OperandKind{.LiteralInteger} },
778 .{ .name = "GLSLShared", .value = 8, .parameters = &[_]OperandKind{} },
779 .{ .name = "GLSLPacked", .value = 9, .parameters = &[_]OperandKind{} },
780 .{ .name = "CPacked", .value = 10, .parameters = &[_]OperandKind{} },
781 .{ .name = "BuiltIn", .value = 11, .parameters = &[_]OperandKind{.BuiltIn} },
782 .{ .name = "NoPerspective", .value = 13, .parameters = &[_]OperandKind{} },
783 .{ .name = "Flat", .value = 14, .parameters = &[_]OperandKind{} },
784 .{ .name = "Patch", .value = 15, .parameters = &[_]OperandKind{} },
785 .{ .name = "Centroid", .value = 16, .parameters = &[_]OperandKind{} },
786 .{ .name = "Sample", .value = 17, .parameters = &[_]OperandKind{} },
787 .{ .name = "Invariant", .value = 18, .parameters = &[_]OperandKind{} },
788 .{ .name = "Restrict", .value = 19, .parameters = &[_]OperandKind{} },
789 .{ .name = "Aliased", .value = 20, .parameters = &[_]OperandKind{} },
790 .{ .name = "Volatile", .value = 21, .parameters = &[_]OperandKind{} },
791 .{ .name = "Constant", .value = 22, .parameters = &[_]OperandKind{} },
792 .{ .name = "Coherent", .value = 23, .parameters = &[_]OperandKind{} },
793 .{ .name = "NonWritable", .value = 24, .parameters = &[_]OperandKind{} },
794 .{ .name = "NonReadable", .value = 25, .parameters = &[_]OperandKind{} },
795 .{ .name = "Uniform", .value = 26, .parameters = &[_]OperandKind{} },
796 .{ .name = "UniformId", .value = 27, .parameters = &[_]OperandKind{.IdScope} },
797 .{ .name = "SaturatedConversion", .value = 28, .parameters = &[_]OperandKind{} },
798 .{ .name = "Stream", .value = 29, .parameters = &[_]OperandKind{.LiteralInteger} },
799 .{ .name = "Location", .value = 30, .parameters = &[_]OperandKind{.LiteralInteger} },
800 .{ .name = "Component", .value = 31, .parameters = &[_]OperandKind{.LiteralInteger} },
801 .{ .name = "Index", .value = 32, .parameters = &[_]OperandKind{.LiteralInteger} },
802 .{ .name = "Binding", .value = 33, .parameters = &[_]OperandKind{.LiteralInteger} },
803 .{ .name = "DescriptorSet", .value = 34, .parameters = &[_]OperandKind{.LiteralInteger} },
804 .{ .name = "Offset", .value = 35, .parameters = &[_]OperandKind{.LiteralInteger} },
805 .{ .name = "XfbBuffer", .value = 36, .parameters = &[_]OperandKind{.LiteralInteger} },
806 .{ .name = "XfbStride", .value = 37, .parameters = &[_]OperandKind{.LiteralInteger} },
807 .{ .name = "FuncParamAttr", .value = 38, .parameters = &[_]OperandKind{.FunctionParameterAttribute} },
808 .{ .name = "FPRoundingMode", .value = 39, .parameters = &[_]OperandKind{.FPRoundingMode} },
809 .{ .name = "FPFastMathMode", .value = 40, .parameters = &[_]OperandKind{.FPFastMathMode} },
810 .{ .name = "LinkageAttributes", .value = 41, .parameters = &[_]OperandKind{ .LiteralString, .LinkageType } },
811 .{ .name = "NoContraction", .value = 42, .parameters = &[_]OperandKind{} },
812 .{ .name = "InputAttachmentIndex", .value = 43, .parameters = &[_]OperandKind{.LiteralInteger} },
813 .{ .name = "Alignment", .value = 44, .parameters = &[_]OperandKind{.LiteralInteger} },
814 .{ .name = "MaxByteOffset", .value = 45, .parameters = &[_]OperandKind{.LiteralInteger} },
815 .{ .name = "AlignmentId", .value = 46, .parameters = &[_]OperandKind{.IdRef} },
816 .{ .name = "MaxByteOffsetId", .value = 47, .parameters = &[_]OperandKind{.IdRef} },
817 .{ .name = "NoSignedWrap", .value = 4469, .parameters = &[_]OperandKind{} },
818 .{ .name = "NoUnsignedWrap", .value = 4470, .parameters = &[_]OperandKind{} },
819 .{ .name = "WeightTextureQCOM", .value = 4487, .parameters = &[_]OperandKind{} },
820 .{ .name = "BlockMatchTextureQCOM", .value = 4488, .parameters = &[_]OperandKind{} },
821 .{ .name = "BlockMatchSamplerQCOM", .value = 4499, .parameters = &[_]OperandKind{} },
822 .{ .name = "ExplicitInterpAMD", .value = 4999, .parameters = &[_]OperandKind{} },
823 .{ .name = "NodeSharesPayloadLimitsWithAMDX", .value = 5019, .parameters = &[_]OperandKind{.IdRef} },
824 .{ .name = "NodeMaxPayloadsAMDX", .value = 5020, .parameters = &[_]OperandKind{.IdRef} },
825 .{ .name = "TrackFinishWritingAMDX", .value = 5078, .parameters = &[_]OperandKind{} },
826 .{ .name = "PayloadNodeNameAMDX", .value = 5091, .parameters = &[_]OperandKind{.LiteralString} },
827 .{ .name = "OverrideCoverageNV", .value = 5248, .parameters = &[_]OperandKind{} },
828 .{ .name = "PassthroughNV", .value = 5250, .parameters = &[_]OperandKind{} },
829 .{ .name = "ViewportRelativeNV", .value = 5252, .parameters = &[_]OperandKind{} },
830 .{ .name = "SecondaryViewportRelativeNV", .value = 5256, .parameters = &[_]OperandKind{.LiteralInteger} },
831 .{ .name = "PerPrimitiveNV", .value = 5271, .parameters = &[_]OperandKind{} },
832 .{ .name = "PerPrimitiveEXT", .value = 5271, .parameters = &[_]OperandKind{} },
833 .{ .name = "PerViewNV", .value = 5272, .parameters = &[_]OperandKind{} },
834 .{ .name = "PerTaskNV", .value = 5273, .parameters = &[_]OperandKind{} },
835 .{ .name = "PerVertexKHR", .value = 5285, .parameters = &[_]OperandKind{} },
836 .{ .name = "PerVertexNV", .value = 5285, .parameters = &[_]OperandKind{} },
837 .{ .name = "NonUniform", .value = 5300, .parameters = &[_]OperandKind{} },
838 .{ .name = "NonUniformEXT", .value = 5300, .parameters = &[_]OperandKind{} },
839 .{ .name = "RestrictPointer", .value = 5355, .parameters = &[_]OperandKind{} },
840 .{ .name = "RestrictPointerEXT", .value = 5355, .parameters = &[_]OperandKind{} },
841 .{ .name = "AliasedPointer", .value = 5356, .parameters = &[_]OperandKind{} },
842 .{ .name = "AliasedPointerEXT", .value = 5356, .parameters = &[_]OperandKind{} },
843 .{ .name = "HitObjectShaderRecordBufferNV", .value = 5386, .parameters = &[_]OperandKind{} },
844 .{ .name = "BindlessSamplerNV", .value = 5398, .parameters = &[_]OperandKind{} },
845 .{ .name = "BindlessImageNV", .value = 5399, .parameters = &[_]OperandKind{} },
846 .{ .name = "BoundSamplerNV", .value = 5400, .parameters = &[_]OperandKind{} },
847 .{ .name = "BoundImageNV", .value = 5401, .parameters = &[_]OperandKind{} },
848 .{ .name = "SIMTCallINTEL", .value = 5599, .parameters = &[_]OperandKind{.LiteralInteger} },
849 .{ .name = "ReferencedIndirectlyINTEL", .value = 5602, .parameters = &[_]OperandKind{} },
850 .{ .name = "ClobberINTEL", .value = 5607, .parameters = &[_]OperandKind{.LiteralString} },
851 .{ .name = "SideEffectsINTEL", .value = 5608, .parameters = &[_]OperandKind{} },
852 .{ .name = "VectorComputeVariableINTEL", .value = 5624, .parameters = &[_]OperandKind{} },
853 .{ .name = "FuncParamIOKindINTEL", .value = 5625, .parameters = &[_]OperandKind{.LiteralInteger} },
854 .{ .name = "VectorComputeFunctionINTEL", .value = 5626, .parameters = &[_]OperandKind{} },
855 .{ .name = "StackCallINTEL", .value = 5627, .parameters = &[_]OperandKind{} },
856 .{ .name = "GlobalVariableOffsetINTEL", .value = 5628, .parameters = &[_]OperandKind{.LiteralInteger} },
857 .{ .name = "CounterBuffer", .value = 5634, .parameters = &[_]OperandKind{.IdRef} },
858 .{ .name = "HlslCounterBufferGOOGLE", .value = 5634, .parameters = &[_]OperandKind{.IdRef} },
859 .{ .name = "UserSemantic", .value = 5635, .parameters = &[_]OperandKind{.LiteralString} },
860 .{ .name = "HlslSemanticGOOGLE", .value = 5635, .parameters = &[_]OperandKind{.LiteralString} },
861 .{ .name = "UserTypeGOOGLE", .value = 5636, .parameters = &[_]OperandKind{.LiteralString} },
862 .{ .name = "FunctionRoundingModeINTEL", .value = 5822, .parameters = &[_]OperandKind{ .LiteralInteger, .FPRoundingMode } },
863 .{ .name = "FunctionDenormModeINTEL", .value = 5823, .parameters = &[_]OperandKind{ .LiteralInteger, .FPDenormMode } },
864 .{ .name = "RegisterINTEL", .value = 5825, .parameters = &[_]OperandKind{} },
865 .{ .name = "MemoryINTEL", .value = 5826, .parameters = &[_]OperandKind{.LiteralString} },
866 .{ .name = "NumbanksINTEL", .value = 5827, .parameters = &[_]OperandKind{.LiteralInteger} },
867 .{ .name = "BankwidthINTEL", .value = 5828, .parameters = &[_]OperandKind{.LiteralInteger} },
868 .{ .name = "MaxPrivateCopiesINTEL", .value = 5829, .parameters = &[_]OperandKind{.LiteralInteger} },
869 .{ .name = "SinglepumpINTEL", .value = 5830, .parameters = &[_]OperandKind{} },
870 .{ .name = "DoublepumpINTEL", .value = 5831, .parameters = &[_]OperandKind{} },
871 .{ .name = "MaxReplicatesINTEL", .value = 5832, .parameters = &[_]OperandKind{.LiteralInteger} },
872 .{ .name = "SimpleDualPortINTEL", .value = 5833, .parameters = &[_]OperandKind{} },
873 .{ .name = "MergeINTEL", .value = 5834, .parameters = &[_]OperandKind{ .LiteralString, .LiteralString } },
874 .{ .name = "BankBitsINTEL", .value = 5835, .parameters = &[_]OperandKind{.LiteralInteger} },
875 .{ .name = "ForcePow2DepthINTEL", .value = 5836, .parameters = &[_]OperandKind{.LiteralInteger} },
876 .{ .name = "StridesizeINTEL", .value = 5883, .parameters = &[_]OperandKind{.LiteralInteger} },
877 .{ .name = "WordsizeINTEL", .value = 5884, .parameters = &[_]OperandKind{.LiteralInteger} },
878 .{ .name = "TrueDualPortINTEL", .value = 5885, .parameters = &[_]OperandKind{} },
879 .{ .name = "BurstCoalesceINTEL", .value = 5899, .parameters = &[_]OperandKind{} },
880 .{ .name = "CacheSizeINTEL", .value = 5900, .parameters = &[_]OperandKind{.LiteralInteger} },
881 .{ .name = "DontStaticallyCoalesceINTEL", .value = 5901, .parameters = &[_]OperandKind{} },
882 .{ .name = "PrefetchINTEL", .value = 5902, .parameters = &[_]OperandKind{.LiteralInteger} },
883 .{ .name = "StallEnableINTEL", .value = 5905, .parameters = &[_]OperandKind{} },
884 .{ .name = "FuseLoopsInFunctionINTEL", .value = 5907, .parameters = &[_]OperandKind{} },
885 .{ .name = "MathOpDSPModeINTEL", .value = 5909, .parameters = &[_]OperandKind{ .LiteralInteger, .LiteralInteger } },
886 .{ .name = "AliasScopeINTEL", .value = 5914, .parameters = &[_]OperandKind{.IdRef} },
887 .{ .name = "NoAliasINTEL", .value = 5915, .parameters = &[_]OperandKind{.IdRef} },
888 .{ .name = "InitiationIntervalINTEL", .value = 5917, .parameters = &[_]OperandKind{.LiteralInteger} },
889 .{ .name = "MaxConcurrencyINTEL", .value = 5918, .parameters = &[_]OperandKind{.LiteralInteger} },
890 .{ .name = "PipelineEnableINTEL", .value = 5919, .parameters = &[_]OperandKind{.LiteralInteger} },
891 .{ .name = "BufferLocationINTEL", .value = 5921, .parameters = &[_]OperandKind{.LiteralInteger} },
892 .{ .name = "IOPipeStorageINTEL", .value = 5944, .parameters = &[_]OperandKind{.LiteralInteger} },
893 .{ .name = "FunctionFloatingPointModeINTEL", .value = 6080, .parameters = &[_]OperandKind{ .LiteralInteger, .FPOperationMode } },
894 .{ .name = "SingleElementVectorINTEL", .value = 6085, .parameters = &[_]OperandKind{} },
895 .{ .name = "VectorComputeCallableFunctionINTEL", .value = 6087, .parameters = &[_]OperandKind{} },
896 .{ .name = "MediaBlockIOINTEL", .value = 6140, .parameters = &[_]OperandKind{} },
897 .{ .name = "StallFreeINTEL", .value = 6151, .parameters = &[_]OperandKind{} },
898 .{ .name = "FPMaxErrorDecorationINTEL", .value = 6170, .parameters = &[_]OperandKind{.LiteralFloat} },
899 .{ .name = "LatencyControlLabelINTEL", .value = 6172, .parameters = &[_]OperandKind{.LiteralInteger} },
900 .{ .name = "LatencyControlConstraintINTEL", .value = 6173, .parameters = &[_]OperandKind{ .LiteralInteger, .LiteralInteger, .LiteralInteger } },
901 .{ .name = "ConduitKernelArgumentINTEL", .value = 6175, .parameters = &[_]OperandKind{} },
902 .{ .name = "RegisterMapKernelArgumentINTEL", .value = 6176, .parameters = &[_]OperandKind{} },
903 .{ .name = "MMHostInterfaceAddressWidthINTEL", .value = 6177, .parameters = &[_]OperandKind{.LiteralInteger} },
904 .{ .name = "MMHostInterfaceDataWidthINTEL", .value = 6178, .parameters = &[_]OperandKind{.LiteralInteger} },
905 .{ .name = "MMHostInterfaceLatencyINTEL", .value = 6179, .parameters = &[_]OperandKind{.LiteralInteger} },
906 .{ .name = "MMHostInterfaceReadWriteModeINTEL", .value = 6180, .parameters = &[_]OperandKind{.AccessQualifier} },
907 .{ .name = "MMHostInterfaceMaxBurstINTEL", .value = 6181, .parameters = &[_]OperandKind{.LiteralInteger} },
908 .{ .name = "MMHostInterfaceWaitRequestINTEL", .value = 6182, .parameters = &[_]OperandKind{.LiteralInteger} },
909 .{ .name = "StableKernelArgumentINTEL", .value = 6183, .parameters = &[_]OperandKind{} },
910 .{ .name = "HostAccessINTEL", .value = 6188, .parameters = &[_]OperandKind{ .HostAccessQualifier, .LiteralString } },
911 .{ .name = "InitModeINTEL", .value = 6190, .parameters = &[_]OperandKind{.InitializationModeQualifier} },
912 .{ .name = "ImplementInRegisterMapINTEL", .value = 6191, .parameters = &[_]OperandKind{.LiteralInteger} },
913 .{ .name = "CacheControlLoadINTEL", .value = 6442, .parameters = &[_]OperandKind{ .LiteralInteger, .LoadCacheControl } },
914 .{ .name = "CacheControlStoreINTEL", .value = 6443, .parameters = &[_]OperandKind{ .LiteralInteger, .StoreCacheControl } },
1331 .ray_query_intersection => &.{
1332 .{ .name = "RayQueryCandidateIntersectionKHR", .value = 0, .parameters = &.{} },
1333 .{ .name = "RayQueryCommittedIntersectionKHR", .value = 1, .parameters = &.{} },
9151334 },
916 .BuiltIn => &[_]Enumerant{
917 .{ .name = "Position", .value = 0, .parameters = &[_]OperandKind{} },
918 .{ .name = "PointSize", .value = 1, .parameters = &[_]OperandKind{} },
919 .{ .name = "ClipDistance", .value = 3, .parameters = &[_]OperandKind{} },
920 .{ .name = "CullDistance", .value = 4, .parameters = &[_]OperandKind{} },
921 .{ .name = "VertexId", .value = 5, .parameters = &[_]OperandKind{} },
922 .{ .name = "InstanceId", .value = 6, .parameters = &[_]OperandKind{} },
923 .{ .name = "PrimitiveId", .value = 7, .parameters = &[_]OperandKind{} },
924 .{ .name = "InvocationId", .value = 8, .parameters = &[_]OperandKind{} },
925 .{ .name = "Layer", .value = 9, .parameters = &[_]OperandKind{} },
926 .{ .name = "ViewportIndex", .value = 10, .parameters = &[_]OperandKind{} },
927 .{ .name = "TessLevelOuter", .value = 11, .parameters = &[_]OperandKind{} },
928 .{ .name = "TessLevelInner", .value = 12, .parameters = &[_]OperandKind{} },
929 .{ .name = "TessCoord", .value = 13, .parameters = &[_]OperandKind{} },
930 .{ .name = "PatchVertices", .value = 14, .parameters = &[_]OperandKind{} },
931 .{ .name = "FragCoord", .value = 15, .parameters = &[_]OperandKind{} },
932 .{ .name = "PointCoord", .value = 16, .parameters = &[_]OperandKind{} },
933 .{ .name = "FrontFacing", .value = 17, .parameters = &[_]OperandKind{} },
934 .{ .name = "SampleId", .value = 18, .parameters = &[_]OperandKind{} },
935 .{ .name = "SamplePosition", .value = 19, .parameters = &[_]OperandKind{} },
936 .{ .name = "SampleMask", .value = 20, .parameters = &[_]OperandKind{} },
937 .{ .name = "FragDepth", .value = 22, .parameters = &[_]OperandKind{} },
938 .{ .name = "HelperInvocation", .value = 23, .parameters = &[_]OperandKind{} },
939 .{ .name = "NumWorkgroups", .value = 24, .parameters = &[_]OperandKind{} },
940 .{ .name = "WorkgroupSize", .value = 25, .parameters = &[_]OperandKind{} },
941 .{ .name = "WorkgroupId", .value = 26, .parameters = &[_]OperandKind{} },
942 .{ .name = "LocalInvocationId", .value = 27, .parameters = &[_]OperandKind{} },
943 .{ .name = "GlobalInvocationId", .value = 28, .parameters = &[_]OperandKind{} },
944 .{ .name = "LocalInvocationIndex", .value = 29, .parameters = &[_]OperandKind{} },
945 .{ .name = "WorkDim", .value = 30, .parameters = &[_]OperandKind{} },
946 .{ .name = "GlobalSize", .value = 31, .parameters = &[_]OperandKind{} },
947 .{ .name = "EnqueuedWorkgroupSize", .value = 32, .parameters = &[_]OperandKind{} },
948 .{ .name = "GlobalOffset", .value = 33, .parameters = &[_]OperandKind{} },
949 .{ .name = "GlobalLinearId", .value = 34, .parameters = &[_]OperandKind{} },
950 .{ .name = "SubgroupSize", .value = 36, .parameters = &[_]OperandKind{} },
951 .{ .name = "SubgroupMaxSize", .value = 37, .parameters = &[_]OperandKind{} },
952 .{ .name = "NumSubgroups", .value = 38, .parameters = &[_]OperandKind{} },
953 .{ .name = "NumEnqueuedSubgroups", .value = 39, .parameters = &[_]OperandKind{} },
954 .{ .name = "SubgroupId", .value = 40, .parameters = &[_]OperandKind{} },
955 .{ .name = "SubgroupLocalInvocationId", .value = 41, .parameters = &[_]OperandKind{} },
956 .{ .name = "VertexIndex", .value = 42, .parameters = &[_]OperandKind{} },
957 .{ .name = "InstanceIndex", .value = 43, .parameters = &[_]OperandKind{} },
958 .{ .name = "CoreIDARM", .value = 4160, .parameters = &[_]OperandKind{} },
959 .{ .name = "CoreCountARM", .value = 4161, .parameters = &[_]OperandKind{} },
960 .{ .name = "CoreMaxIDARM", .value = 4162, .parameters = &[_]OperandKind{} },
961 .{ .name = "WarpIDARM", .value = 4163, .parameters = &[_]OperandKind{} },
962 .{ .name = "WarpMaxIDARM", .value = 4164, .parameters = &[_]OperandKind{} },
963 .{ .name = "SubgroupEqMask", .value = 4416, .parameters = &[_]OperandKind{} },
964 .{ .name = "SubgroupEqMaskKHR", .value = 4416, .parameters = &[_]OperandKind{} },
965 .{ .name = "SubgroupGeMask", .value = 4417, .parameters = &[_]OperandKind{} },
966 .{ .name = "SubgroupGeMaskKHR", .value = 4417, .parameters = &[_]OperandKind{} },
967 .{ .name = "SubgroupGtMask", .value = 4418, .parameters = &[_]OperandKind{} },
968 .{ .name = "SubgroupGtMaskKHR", .value = 4418, .parameters = &[_]OperandKind{} },
969 .{ .name = "SubgroupLeMask", .value = 4419, .parameters = &[_]OperandKind{} },
970 .{ .name = "SubgroupLeMaskKHR", .value = 4419, .parameters = &[_]OperandKind{} },
971 .{ .name = "SubgroupLtMask", .value = 4420, .parameters = &[_]OperandKind{} },
972 .{ .name = "SubgroupLtMaskKHR", .value = 4420, .parameters = &[_]OperandKind{} },
973 .{ .name = "BaseVertex", .value = 4424, .parameters = &[_]OperandKind{} },
974 .{ .name = "BaseInstance", .value = 4425, .parameters = &[_]OperandKind{} },
975 .{ .name = "DrawIndex", .value = 4426, .parameters = &[_]OperandKind{} },
976 .{ .name = "PrimitiveShadingRateKHR", .value = 4432, .parameters = &[_]OperandKind{} },
977 .{ .name = "DeviceIndex", .value = 4438, .parameters = &[_]OperandKind{} },
978 .{ .name = "ViewIndex", .value = 4440, .parameters = &[_]OperandKind{} },
979 .{ .name = "ShadingRateKHR", .value = 4444, .parameters = &[_]OperandKind{} },
980 .{ .name = "BaryCoordNoPerspAMD", .value = 4992, .parameters = &[_]OperandKind{} },
981 .{ .name = "BaryCoordNoPerspCentroidAMD", .value = 4993, .parameters = &[_]OperandKind{} },
982 .{ .name = "BaryCoordNoPerspSampleAMD", .value = 4994, .parameters = &[_]OperandKind{} },
983 .{ .name = "BaryCoordSmoothAMD", .value = 4995, .parameters = &[_]OperandKind{} },
984 .{ .name = "BaryCoordSmoothCentroidAMD", .value = 4996, .parameters = &[_]OperandKind{} },
985 .{ .name = "BaryCoordSmoothSampleAMD", .value = 4997, .parameters = &[_]OperandKind{} },
986 .{ .name = "BaryCoordPullModelAMD", .value = 4998, .parameters = &[_]OperandKind{} },
987 .{ .name = "FragStencilRefEXT", .value = 5014, .parameters = &[_]OperandKind{} },
988 .{ .name = "CoalescedInputCountAMDX", .value = 5021, .parameters = &[_]OperandKind{} },
989 .{ .name = "ShaderIndexAMDX", .value = 5073, .parameters = &[_]OperandKind{} },
990 .{ .name = "ViewportMaskNV", .value = 5253, .parameters = &[_]OperandKind{} },
991 .{ .name = "SecondaryPositionNV", .value = 5257, .parameters = &[_]OperandKind{} },
992 .{ .name = "SecondaryViewportMaskNV", .value = 5258, .parameters = &[_]OperandKind{} },
993 .{ .name = "PositionPerViewNV", .value = 5261, .parameters = &[_]OperandKind{} },
994 .{ .name = "ViewportMaskPerViewNV", .value = 5262, .parameters = &[_]OperandKind{} },
995 .{ .name = "FullyCoveredEXT", .value = 5264, .parameters = &[_]OperandKind{} },
996 .{ .name = "TaskCountNV", .value = 5274, .parameters = &[_]OperandKind{} },
997 .{ .name = "PrimitiveCountNV", .value = 5275, .parameters = &[_]OperandKind{} },
998 .{ .name = "PrimitiveIndicesNV", .value = 5276, .parameters = &[_]OperandKind{} },
999 .{ .name = "ClipDistancePerViewNV", .value = 5277, .parameters = &[_]OperandKind{} },
1000 .{ .name = "CullDistancePerViewNV", .value = 5278, .parameters = &[_]OperandKind{} },
1001 .{ .name = "LayerPerViewNV", .value = 5279, .parameters = &[_]OperandKind{} },
1002 .{ .name = "MeshViewCountNV", .value = 5280, .parameters = &[_]OperandKind{} },
1003 .{ .name = "MeshViewIndicesNV", .value = 5281, .parameters = &[_]OperandKind{} },
1004 .{ .name = "BaryCoordKHR", .value = 5286, .parameters = &[_]OperandKind{} },
1005 .{ .name = "BaryCoordNV", .value = 5286, .parameters = &[_]OperandKind{} },
1006 .{ .name = "BaryCoordNoPerspKHR", .value = 5287, .parameters = &[_]OperandKind{} },
1007 .{ .name = "BaryCoordNoPerspNV", .value = 5287, .parameters = &[_]OperandKind{} },
1008 .{ .name = "FragSizeEXT", .value = 5292, .parameters = &[_]OperandKind{} },
1009 .{ .name = "FragmentSizeNV", .value = 5292, .parameters = &[_]OperandKind{} },
1010 .{ .name = "FragInvocationCountEXT", .value = 5293, .parameters = &[_]OperandKind{} },
1011 .{ .name = "InvocationsPerPixelNV", .value = 5293, .parameters = &[_]OperandKind{} },
1012 .{ .name = "PrimitivePointIndicesEXT", .value = 5294, .parameters = &[_]OperandKind{} },
1013 .{ .name = "PrimitiveLineIndicesEXT", .value = 5295, .parameters = &[_]OperandKind{} },
1014 .{ .name = "PrimitiveTriangleIndicesEXT", .value = 5296, .parameters = &[_]OperandKind{} },
1015 .{ .name = "CullPrimitiveEXT", .value = 5299, .parameters = &[_]OperandKind{} },
1016 .{ .name = "LaunchIdNV", .value = 5319, .parameters = &[_]OperandKind{} },
1017 .{ .name = "LaunchIdKHR", .value = 5319, .parameters = &[_]OperandKind{} },
1018 .{ .name = "LaunchSizeNV", .value = 5320, .parameters = &[_]OperandKind{} },
1019 .{ .name = "LaunchSizeKHR", .value = 5320, .parameters = &[_]OperandKind{} },
1020 .{ .name = "WorldRayOriginNV", .value = 5321, .parameters = &[_]OperandKind{} },
1021 .{ .name = "WorldRayOriginKHR", .value = 5321, .parameters = &[_]OperandKind{} },
1022 .{ .name = "WorldRayDirectionNV", .value = 5322, .parameters = &[_]OperandKind{} },
1023 .{ .name = "WorldRayDirectionKHR", .value = 5322, .parameters = &[_]OperandKind{} },
1024 .{ .name = "ObjectRayOriginNV", .value = 5323, .parameters = &[_]OperandKind{} },
1025 .{ .name = "ObjectRayOriginKHR", .value = 5323, .parameters = &[_]OperandKind{} },
1026 .{ .name = "ObjectRayDirectionNV", .value = 5324, .parameters = &[_]OperandKind{} },
1027 .{ .name = "ObjectRayDirectionKHR", .value = 5324, .parameters = &[_]OperandKind{} },
1028 .{ .name = "RayTminNV", .value = 5325, .parameters = &[_]OperandKind{} },
1029 .{ .name = "RayTminKHR", .value = 5325, .parameters = &[_]OperandKind{} },
1030 .{ .name = "RayTmaxNV", .value = 5326, .parameters = &[_]OperandKind{} },
1031 .{ .name = "RayTmaxKHR", .value = 5326, .parameters = &[_]OperandKind{} },
1032 .{ .name = "InstanceCustomIndexNV", .value = 5327, .parameters = &[_]OperandKind{} },
1033 .{ .name = "InstanceCustomIndexKHR", .value = 5327, .parameters = &[_]OperandKind{} },
1034 .{ .name = "ObjectToWorldNV", .value = 5330, .parameters = &[_]OperandKind{} },
1035 .{ .name = "ObjectToWorldKHR", .value = 5330, .parameters = &[_]OperandKind{} },
1036 .{ .name = "WorldToObjectNV", .value = 5331, .parameters = &[_]OperandKind{} },
1037 .{ .name = "WorldToObjectKHR", .value = 5331, .parameters = &[_]OperandKind{} },
1038 .{ .name = "HitTNV", .value = 5332, .parameters = &[_]OperandKind{} },
1039 .{ .name = "HitKindNV", .value = 5333, .parameters = &[_]OperandKind{} },
1040 .{ .name = "HitKindKHR", .value = 5333, .parameters = &[_]OperandKind{} },
1041 .{ .name = "CurrentRayTimeNV", .value = 5334, .parameters = &[_]OperandKind{} },
1042 .{ .name = "HitTriangleVertexPositionsKHR", .value = 5335, .parameters = &[_]OperandKind{} },
1043 .{ .name = "HitMicroTriangleVertexPositionsNV", .value = 5337, .parameters = &[_]OperandKind{} },
1044 .{ .name = "HitMicroTriangleVertexBarycentricsNV", .value = 5344, .parameters = &[_]OperandKind{} },
1045 .{ .name = "IncomingRayFlagsNV", .value = 5351, .parameters = &[_]OperandKind{} },
1046 .{ .name = "IncomingRayFlagsKHR", .value = 5351, .parameters = &[_]OperandKind{} },
1047 .{ .name = "RayGeometryIndexKHR", .value = 5352, .parameters = &[_]OperandKind{} },
1048 .{ .name = "WarpsPerSMNV", .value = 5374, .parameters = &[_]OperandKind{} },
1049 .{ .name = "SMCountNV", .value = 5375, .parameters = &[_]OperandKind{} },
1050 .{ .name = "WarpIDNV", .value = 5376, .parameters = &[_]OperandKind{} },
1051 .{ .name = "SMIDNV", .value = 5377, .parameters = &[_]OperandKind{} },
1052 .{ .name = "HitKindFrontFacingMicroTriangleNV", .value = 5405, .parameters = &[_]OperandKind{} },
1053 .{ .name = "HitKindBackFacingMicroTriangleNV", .value = 5406, .parameters = &[_]OperandKind{} },
1054 .{ .name = "CullMaskKHR", .value = 6021, .parameters = &[_]OperandKind{} },
1335 .ray_query_committed_intersection_type => &.{
1336 .{ .name = "RayQueryCommittedIntersectionNoneKHR", .value = 0, .parameters = &.{} },
1337 .{ .name = "RayQueryCommittedIntersectionTriangleKHR", .value = 1, .parameters = &.{} },
1338 .{ .name = "RayQueryCommittedIntersectionGeneratedKHR", .value = 2, .parameters = &.{} },
10551339 },
1056 .Scope => &[_]Enumerant{
1057 .{ .name = "CrossDevice", .value = 0, .parameters = &[_]OperandKind{} },
1058 .{ .name = "Device", .value = 1, .parameters = &[_]OperandKind{} },
1059 .{ .name = "Workgroup", .value = 2, .parameters = &[_]OperandKind{} },
1060 .{ .name = "Subgroup", .value = 3, .parameters = &[_]OperandKind{} },
1061 .{ .name = "Invocation", .value = 4, .parameters = &[_]OperandKind{} },
1062 .{ .name = "QueueFamily", .value = 5, .parameters = &[_]OperandKind{} },
1063 .{ .name = "QueueFamilyKHR", .value = 5, .parameters = &[_]OperandKind{} },
1064 .{ .name = "ShaderCallKHR", .value = 6, .parameters = &[_]OperandKind{} },
1340 .ray_query_candidate_intersection_type => &.{
1341 .{ .name = "RayQueryCandidateIntersectionTriangleKHR", .value = 0, .parameters = &.{} },
1342 .{ .name = "RayQueryCandidateIntersectionAABBKHR", .value = 1, .parameters = &.{} },
10651343 },
1066 .GroupOperation => &[_]Enumerant{
1067 .{ .name = "Reduce", .value = 0, .parameters = &[_]OperandKind{} },
1068 .{ .name = "InclusiveScan", .value = 1, .parameters = &[_]OperandKind{} },
1069 .{ .name = "ExclusiveScan", .value = 2, .parameters = &[_]OperandKind{} },
1070 .{ .name = "ClusteredReduce", .value = 3, .parameters = &[_]OperandKind{} },
1071 .{ .name = "PartitionedReduceNV", .value = 6, .parameters = &[_]OperandKind{} },
1072 .{ .name = "PartitionedInclusiveScanNV", .value = 7, .parameters = &[_]OperandKind{} },
1073 .{ .name = "PartitionedExclusiveScanNV", .value = 8, .parameters = &[_]OperandKind{} },
1344 .packed_vector_format => &.{
1345 .{ .name = "PackedVectorFormat4x8Bit", .value = 0, .parameters = &.{} },
10741346 },
1075 .KernelEnqueueFlags => &[_]Enumerant{
1076 .{ .name = "NoWait", .value = 0, .parameters = &[_]OperandKind{} },
1077 .{ .name = "WaitKernel", .value = 1, .parameters = &[_]OperandKind{} },
1078 .{ .name = "WaitWorkGroup", .value = 2, .parameters = &[_]OperandKind{} },
1347 .cooperative_matrix_operands => &.{
1348 .{ .name = "NoneKHR", .value = 0x0000, .parameters = &.{} },
1349 .{ .name = "MatrixASignedComponentsKHR", .value = 0x0001, .parameters = &.{} },
1350 .{ .name = "MatrixBSignedComponentsKHR", .value = 0x0002, .parameters = &.{} },
1351 .{ .name = "MatrixCSignedComponentsKHR", .value = 0x0004, .parameters = &.{} },
1352 .{ .name = "MatrixResultSignedComponentsKHR", .value = 0x0008, .parameters = &.{} },
1353 .{ .name = "SaturatingAccumulationKHR", .value = 0x0010, .parameters = &.{} },
10791354 },
1080 .Capability => &[_]Enumerant{
1081 .{ .name = "Matrix", .value = 0, .parameters = &[_]OperandKind{} },
1082 .{ .name = "Shader", .value = 1, .parameters = &[_]OperandKind{} },
1083 .{ .name = "Geometry", .value = 2, .parameters = &[_]OperandKind{} },
1084 .{ .name = "Tessellation", .value = 3, .parameters = &[_]OperandKind{} },
1085 .{ .name = "Addresses", .value = 4, .parameters = &[_]OperandKind{} },
1086 .{ .name = "Linkage", .value = 5, .parameters = &[_]OperandKind{} },
1087 .{ .name = "Kernel", .value = 6, .parameters = &[_]OperandKind{} },
1088 .{ .name = "Vector16", .value = 7, .parameters = &[_]OperandKind{} },
1089 .{ .name = "Float16Buffer", .value = 8, .parameters = &[_]OperandKind{} },
1090 .{ .name = "Float16", .value = 9, .parameters = &[_]OperandKind{} },
1091 .{ .name = "Float64", .value = 10, .parameters = &[_]OperandKind{} },
1092 .{ .name = "Int64", .value = 11, .parameters = &[_]OperandKind{} },
1093 .{ .name = "Int64Atomics", .value = 12, .parameters = &[_]OperandKind{} },
1094 .{ .name = "ImageBasic", .value = 13, .parameters = &[_]OperandKind{} },
1095 .{ .name = "ImageReadWrite", .value = 14, .parameters = &[_]OperandKind{} },
1096 .{ .name = "ImageMipmap", .value = 15, .parameters = &[_]OperandKind{} },
1097 .{ .name = "Pipes", .value = 17, .parameters = &[_]OperandKind{} },
1098 .{ .name = "Groups", .value = 18, .parameters = &[_]OperandKind{} },
1099 .{ .name = "DeviceEnqueue", .value = 19, .parameters = &[_]OperandKind{} },
1100 .{ .name = "LiteralSampler", .value = 20, .parameters = &[_]OperandKind{} },
1101 .{ .name = "AtomicStorage", .value = 21, .parameters = &[_]OperandKind{} },
1102 .{ .name = "Int16", .value = 22, .parameters = &[_]OperandKind{} },
1103 .{ .name = "TessellationPointSize", .value = 23, .parameters = &[_]OperandKind{} },
1104 .{ .name = "GeometryPointSize", .value = 24, .parameters = &[_]OperandKind{} },
1105 .{ .name = "ImageGatherExtended", .value = 25, .parameters = &[_]OperandKind{} },
1106 .{ .name = "StorageImageMultisample", .value = 27, .parameters = &[_]OperandKind{} },
1107 .{ .name = "UniformBufferArrayDynamicIndexing", .value = 28, .parameters = &[_]OperandKind{} },
1108 .{ .name = "SampledImageArrayDynamicIndexing", .value = 29, .parameters = &[_]OperandKind{} },
1109 .{ .name = "StorageBufferArrayDynamicIndexing", .value = 30, .parameters = &[_]OperandKind{} },
1110 .{ .name = "StorageImageArrayDynamicIndexing", .value = 31, .parameters = &[_]OperandKind{} },
1111 .{ .name = "ClipDistance", .value = 32, .parameters = &[_]OperandKind{} },
1112 .{ .name = "CullDistance", .value = 33, .parameters = &[_]OperandKind{} },
1113 .{ .name = "ImageCubeArray", .value = 34, .parameters = &[_]OperandKind{} },
1114 .{ .name = "SampleRateShading", .value = 35, .parameters = &[_]OperandKind{} },
1115 .{ .name = "ImageRect", .value = 36, .parameters = &[_]OperandKind{} },
1116 .{ .name = "SampledRect", .value = 37, .parameters = &[_]OperandKind{} },
1117 .{ .name = "GenericPointer", .value = 38, .parameters = &[_]OperandKind{} },
1118 .{ .name = "Int8", .value = 39, .parameters = &[_]OperandKind{} },
1119 .{ .name = "InputAttachment", .value = 40, .parameters = &[_]OperandKind{} },
1120 .{ .name = "SparseResidency", .value = 41, .parameters = &[_]OperandKind{} },
1121 .{ .name = "MinLod", .value = 42, .parameters = &[_]OperandKind{} },
1122 .{ .name = "Sampled1D", .value = 43, .parameters = &[_]OperandKind{} },
1123 .{ .name = "Image1D", .value = 44, .parameters = &[_]OperandKind{} },
1124 .{ .name = "SampledCubeArray", .value = 45, .parameters = &[_]OperandKind{} },
1125 .{ .name = "SampledBuffer", .value = 46, .parameters = &[_]OperandKind{} },
1126 .{ .name = "ImageBuffer", .value = 47, .parameters = &[_]OperandKind{} },
1127 .{ .name = "ImageMSArray", .value = 48, .parameters = &[_]OperandKind{} },
1128 .{ .name = "StorageImageExtendedFormats", .value = 49, .parameters = &[_]OperandKind{} },
1129 .{ .name = "ImageQuery", .value = 50, .parameters = &[_]OperandKind{} },
1130 .{ .name = "DerivativeControl", .value = 51, .parameters = &[_]OperandKind{} },
1131 .{ .name = "InterpolationFunction", .value = 52, .parameters = &[_]OperandKind{} },
1132 .{ .name = "TransformFeedback", .value = 53, .parameters = &[_]OperandKind{} },
1133 .{ .name = "GeometryStreams", .value = 54, .parameters = &[_]OperandKind{} },
1134 .{ .name = "StorageImageReadWithoutFormat", .value = 55, .parameters = &[_]OperandKind{} },
1135 .{ .name = "StorageImageWriteWithoutFormat", .value = 56, .parameters = &[_]OperandKind{} },
1136 .{ .name = "MultiViewport", .value = 57, .parameters = &[_]OperandKind{} },
1137 .{ .name = "SubgroupDispatch", .value = 58, .parameters = &[_]OperandKind{} },
1138 .{ .name = "NamedBarrier", .value = 59, .parameters = &[_]OperandKind{} },
1139 .{ .name = "PipeStorage", .value = 60, .parameters = &[_]OperandKind{} },
1140 .{ .name = "GroupNonUniform", .value = 61, .parameters = &[_]OperandKind{} },
1141 .{ .name = "GroupNonUniformVote", .value = 62, .parameters = &[_]OperandKind{} },
1142 .{ .name = "GroupNonUniformArithmetic", .value = 63, .parameters = &[_]OperandKind{} },
1143 .{ .name = "GroupNonUniformBallot", .value = 64, .parameters = &[_]OperandKind{} },
1144 .{ .name = "GroupNonUniformShuffle", .value = 65, .parameters = &[_]OperandKind{} },
1145 .{ .name = "GroupNonUniformShuffleRelative", .value = 66, .parameters = &[_]OperandKind{} },
1146 .{ .name = "GroupNonUniformClustered", .value = 67, .parameters = &[_]OperandKind{} },
1147 .{ .name = "GroupNonUniformQuad", .value = 68, .parameters = &[_]OperandKind{} },
1148 .{ .name = "ShaderLayer", .value = 69, .parameters = &[_]OperandKind{} },
1149 .{ .name = "ShaderViewportIndex", .value = 70, .parameters = &[_]OperandKind{} },
1150 .{ .name = "UniformDecoration", .value = 71, .parameters = &[_]OperandKind{} },
1151 .{ .name = "CoreBuiltinsARM", .value = 4165, .parameters = &[_]OperandKind{} },
1152 .{ .name = "TileImageColorReadAccessEXT", .value = 4166, .parameters = &[_]OperandKind{} },
1153 .{ .name = "TileImageDepthReadAccessEXT", .value = 4167, .parameters = &[_]OperandKind{} },
1154 .{ .name = "TileImageStencilReadAccessEXT", .value = 4168, .parameters = &[_]OperandKind{} },
1155 .{ .name = "FragmentShadingRateKHR", .value = 4422, .parameters = &[_]OperandKind{} },
1156 .{ .name = "SubgroupBallotKHR", .value = 4423, .parameters = &[_]OperandKind{} },
1157 .{ .name = "DrawParameters", .value = 4427, .parameters = &[_]OperandKind{} },
1158 .{ .name = "WorkgroupMemoryExplicitLayoutKHR", .value = 4428, .parameters = &[_]OperandKind{} },
1159 .{ .name = "WorkgroupMemoryExplicitLayout8BitAccessKHR", .value = 4429, .parameters = &[_]OperandKind{} },
1160 .{ .name = "WorkgroupMemoryExplicitLayout16BitAccessKHR", .value = 4430, .parameters = &[_]OperandKind{} },
1161 .{ .name = "SubgroupVoteKHR", .value = 4431, .parameters = &[_]OperandKind{} },
1162 .{ .name = "StorageBuffer16BitAccess", .value = 4433, .parameters = &[_]OperandKind{} },
1163 .{ .name = "StorageUniformBufferBlock16", .value = 4433, .parameters = &[_]OperandKind{} },
1164 .{ .name = "UniformAndStorageBuffer16BitAccess", .value = 4434, .parameters = &[_]OperandKind{} },
1165 .{ .name = "StorageUniform16", .value = 4434, .parameters = &[_]OperandKind{} },
1166 .{ .name = "StoragePushConstant16", .value = 4435, .parameters = &[_]OperandKind{} },
1167 .{ .name = "StorageInputOutput16", .value = 4436, .parameters = &[_]OperandKind{} },
1168 .{ .name = "DeviceGroup", .value = 4437, .parameters = &[_]OperandKind{} },
1169 .{ .name = "MultiView", .value = 4439, .parameters = &[_]OperandKind{} },
1170 .{ .name = "VariablePointersStorageBuffer", .value = 4441, .parameters = &[_]OperandKind{} },
1171 .{ .name = "VariablePointers", .value = 4442, .parameters = &[_]OperandKind{} },
1172 .{ .name = "AtomicStorageOps", .value = 4445, .parameters = &[_]OperandKind{} },
1173 .{ .name = "SampleMaskPostDepthCoverage", .value = 4447, .parameters = &[_]OperandKind{} },
1174 .{ .name = "StorageBuffer8BitAccess", .value = 4448, .parameters = &[_]OperandKind{} },
1175 .{ .name = "UniformAndStorageBuffer8BitAccess", .value = 4449, .parameters = &[_]OperandKind{} },
1176 .{ .name = "StoragePushConstant8", .value = 4450, .parameters = &[_]OperandKind{} },
1177 .{ .name = "DenormPreserve", .value = 4464, .parameters = &[_]OperandKind{} },
1178 .{ .name = "DenormFlushToZero", .value = 4465, .parameters = &[_]OperandKind{} },
1179 .{ .name = "SignedZeroInfNanPreserve", .value = 4466, .parameters = &[_]OperandKind{} },
1180 .{ .name = "RoundingModeRTE", .value = 4467, .parameters = &[_]OperandKind{} },
1181 .{ .name = "RoundingModeRTZ", .value = 4468, .parameters = &[_]OperandKind{} },
1182 .{ .name = "RayQueryProvisionalKHR", .value = 4471, .parameters = &[_]OperandKind{} },
1183 .{ .name = "RayQueryKHR", .value = 4472, .parameters = &[_]OperandKind{} },
1184 .{ .name = "RayTraversalPrimitiveCullingKHR", .value = 4478, .parameters = &[_]OperandKind{} },
1185 .{ .name = "RayTracingKHR", .value = 4479, .parameters = &[_]OperandKind{} },
1186 .{ .name = "TextureSampleWeightedQCOM", .value = 4484, .parameters = &[_]OperandKind{} },
1187 .{ .name = "TextureBoxFilterQCOM", .value = 4485, .parameters = &[_]OperandKind{} },
1188 .{ .name = "TextureBlockMatchQCOM", .value = 4486, .parameters = &[_]OperandKind{} },
1189 .{ .name = "TextureBlockMatch2QCOM", .value = 4498, .parameters = &[_]OperandKind{} },
1190 .{ .name = "Float16ImageAMD", .value = 5008, .parameters = &[_]OperandKind{} },
1191 .{ .name = "ImageGatherBiasLodAMD", .value = 5009, .parameters = &[_]OperandKind{} },
1192 .{ .name = "FragmentMaskAMD", .value = 5010, .parameters = &[_]OperandKind{} },
1193 .{ .name = "StencilExportEXT", .value = 5013, .parameters = &[_]OperandKind{} },
1194 .{ .name = "ImageReadWriteLodAMD", .value = 5015, .parameters = &[_]OperandKind{} },
1195 .{ .name = "Int64ImageEXT", .value = 5016, .parameters = &[_]OperandKind{} },
1196 .{ .name = "ShaderClockKHR", .value = 5055, .parameters = &[_]OperandKind{} },
1197 .{ .name = "ShaderEnqueueAMDX", .value = 5067, .parameters = &[_]OperandKind{} },
1198 .{ .name = "QuadControlKHR", .value = 5087, .parameters = &[_]OperandKind{} },
1199 .{ .name = "SampleMaskOverrideCoverageNV", .value = 5249, .parameters = &[_]OperandKind{} },
1200 .{ .name = "GeometryShaderPassthroughNV", .value = 5251, .parameters = &[_]OperandKind{} },
1201 .{ .name = "ShaderViewportIndexLayerEXT", .value = 5254, .parameters = &[_]OperandKind{} },
1202 .{ .name = "ShaderViewportIndexLayerNV", .value = 5254, .parameters = &[_]OperandKind{} },
1203 .{ .name = "ShaderViewportMaskNV", .value = 5255, .parameters = &[_]OperandKind{} },
1204 .{ .name = "ShaderStereoViewNV", .value = 5259, .parameters = &[_]OperandKind{} },
1205 .{ .name = "PerViewAttributesNV", .value = 5260, .parameters = &[_]OperandKind{} },
1206 .{ .name = "FragmentFullyCoveredEXT", .value = 5265, .parameters = &[_]OperandKind{} },
1207 .{ .name = "MeshShadingNV", .value = 5266, .parameters = &[_]OperandKind{} },
1208 .{ .name = "ImageFootprintNV", .value = 5282, .parameters = &[_]OperandKind{} },
1209 .{ .name = "MeshShadingEXT", .value = 5283, .parameters = &[_]OperandKind{} },
1210 .{ .name = "FragmentBarycentricKHR", .value = 5284, .parameters = &[_]OperandKind{} },
1211 .{ .name = "FragmentBarycentricNV", .value = 5284, .parameters = &[_]OperandKind{} },
1212 .{ .name = "ComputeDerivativeGroupQuadsNV", .value = 5288, .parameters = &[_]OperandKind{} },
1213 .{ .name = "FragmentDensityEXT", .value = 5291, .parameters = &[_]OperandKind{} },
1214 .{ .name = "ShadingRateNV", .value = 5291, .parameters = &[_]OperandKind{} },
1215 .{ .name = "GroupNonUniformPartitionedNV", .value = 5297, .parameters = &[_]OperandKind{} },
1216 .{ .name = "ShaderNonUniform", .value = 5301, .parameters = &[_]OperandKind{} },
1217 .{ .name = "ShaderNonUniformEXT", .value = 5301, .parameters = &[_]OperandKind{} },
1218 .{ .name = "RuntimeDescriptorArray", .value = 5302, .parameters = &[_]OperandKind{} },
1219 .{ .name = "RuntimeDescriptorArrayEXT", .value = 5302, .parameters = &[_]OperandKind{} },
1220 .{ .name = "InputAttachmentArrayDynamicIndexing", .value = 5303, .parameters = &[_]OperandKind{} },
1221 .{ .name = "InputAttachmentArrayDynamicIndexingEXT", .value = 5303, .parameters = &[_]OperandKind{} },
1222 .{ .name = "UniformTexelBufferArrayDynamicIndexing", .value = 5304, .parameters = &[_]OperandKind{} },
1223 .{ .name = "UniformTexelBufferArrayDynamicIndexingEXT", .value = 5304, .parameters = &[_]OperandKind{} },
1224 .{ .name = "StorageTexelBufferArrayDynamicIndexing", .value = 5305, .parameters = &[_]OperandKind{} },
1225 .{ .name = "StorageTexelBufferArrayDynamicIndexingEXT", .value = 5305, .parameters = &[_]OperandKind{} },
1226 .{ .name = "UniformBufferArrayNonUniformIndexing", .value = 5306, .parameters = &[_]OperandKind{} },
1227 .{ .name = "UniformBufferArrayNonUniformIndexingEXT", .value = 5306, .parameters = &[_]OperandKind{} },
1228 .{ .name = "SampledImageArrayNonUniformIndexing", .value = 5307, .parameters = &[_]OperandKind{} },
1229 .{ .name = "SampledImageArrayNonUniformIndexingEXT", .value = 5307, .parameters = &[_]OperandKind{} },
1230 .{ .name = "StorageBufferArrayNonUniformIndexing", .value = 5308, .parameters = &[_]OperandKind{} },
1231 .{ .name = "StorageBufferArrayNonUniformIndexingEXT", .value = 5308, .parameters = &[_]OperandKind{} },
1232 .{ .name = "StorageImageArrayNonUniformIndexing", .value = 5309, .parameters = &[_]OperandKind{} },
1233 .{ .name = "StorageImageArrayNonUniformIndexingEXT", .value = 5309, .parameters = &[_]OperandKind{} },
1234 .{ .name = "InputAttachmentArrayNonUniformIndexing", .value = 5310, .parameters = &[_]OperandKind{} },
1235 .{ .name = "InputAttachmentArrayNonUniformIndexingEXT", .value = 5310, .parameters = &[_]OperandKind{} },
1236 .{ .name = "UniformTexelBufferArrayNonUniformIndexing", .value = 5311, .parameters = &[_]OperandKind{} },
1237 .{ .name = "UniformTexelBufferArrayNonUniformIndexingEXT", .value = 5311, .parameters = &[_]OperandKind{} },
1238 .{ .name = "StorageTexelBufferArrayNonUniformIndexing", .value = 5312, .parameters = &[_]OperandKind{} },
1239 .{ .name = "StorageTexelBufferArrayNonUniformIndexingEXT", .value = 5312, .parameters = &[_]OperandKind{} },
1240 .{ .name = "RayTracingPositionFetchKHR", .value = 5336, .parameters = &[_]OperandKind{} },
1241 .{ .name = "RayTracingNV", .value = 5340, .parameters = &[_]OperandKind{} },
1242 .{ .name = "RayTracingMotionBlurNV", .value = 5341, .parameters = &[_]OperandKind{} },
1243 .{ .name = "VulkanMemoryModel", .value = 5345, .parameters = &[_]OperandKind{} },
1244 .{ .name = "VulkanMemoryModelKHR", .value = 5345, .parameters = &[_]OperandKind{} },
1245 .{ .name = "VulkanMemoryModelDeviceScope", .value = 5346, .parameters = &[_]OperandKind{} },
1246 .{ .name = "VulkanMemoryModelDeviceScopeKHR", .value = 5346, .parameters = &[_]OperandKind{} },
1247 .{ .name = "PhysicalStorageBufferAddresses", .value = 5347, .parameters = &[_]OperandKind{} },
1248 .{ .name = "PhysicalStorageBufferAddressesEXT", .value = 5347, .parameters = &[_]OperandKind{} },
1249 .{ .name = "ComputeDerivativeGroupLinearNV", .value = 5350, .parameters = &[_]OperandKind{} },
1250 .{ .name = "RayTracingProvisionalKHR", .value = 5353, .parameters = &[_]OperandKind{} },
1251 .{ .name = "CooperativeMatrixNV", .value = 5357, .parameters = &[_]OperandKind{} },
1252 .{ .name = "FragmentShaderSampleInterlockEXT", .value = 5363, .parameters = &[_]OperandKind{} },
1253 .{ .name = "FragmentShaderShadingRateInterlockEXT", .value = 5372, .parameters = &[_]OperandKind{} },
1254 .{ .name = "ShaderSMBuiltinsNV", .value = 5373, .parameters = &[_]OperandKind{} },
1255 .{ .name = "FragmentShaderPixelInterlockEXT", .value = 5378, .parameters = &[_]OperandKind{} },
1256 .{ .name = "DemoteToHelperInvocation", .value = 5379, .parameters = &[_]OperandKind{} },
1257 .{ .name = "DemoteToHelperInvocationEXT", .value = 5379, .parameters = &[_]OperandKind{} },
1258 .{ .name = "DisplacementMicromapNV", .value = 5380, .parameters = &[_]OperandKind{} },
1259 .{ .name = "RayTracingOpacityMicromapEXT", .value = 5381, .parameters = &[_]OperandKind{} },
1260 .{ .name = "ShaderInvocationReorderNV", .value = 5383, .parameters = &[_]OperandKind{} },
1261 .{ .name = "BindlessTextureNV", .value = 5390, .parameters = &[_]OperandKind{} },
1262 .{ .name = "RayQueryPositionFetchKHR", .value = 5391, .parameters = &[_]OperandKind{} },
1263 .{ .name = "AtomicFloat16VectorNV", .value = 5404, .parameters = &[_]OperandKind{} },
1264 .{ .name = "RayTracingDisplacementMicromapNV", .value = 5409, .parameters = &[_]OperandKind{} },
1265 .{ .name = "RawAccessChainsNV", .value = 5414, .parameters = &[_]OperandKind{} },
1266 .{ .name = "SubgroupShuffleINTEL", .value = 5568, .parameters = &[_]OperandKind{} },
1267 .{ .name = "SubgroupBufferBlockIOINTEL", .value = 5569, .parameters = &[_]OperandKind{} },
1268 .{ .name = "SubgroupImageBlockIOINTEL", .value = 5570, .parameters = &[_]OperandKind{} },
1269 .{ .name = "SubgroupImageMediaBlockIOINTEL", .value = 5579, .parameters = &[_]OperandKind{} },
1270 .{ .name = "RoundToInfinityINTEL", .value = 5582, .parameters = &[_]OperandKind{} },
1271 .{ .name = "FloatingPointModeINTEL", .value = 5583, .parameters = &[_]OperandKind{} },
1272 .{ .name = "IntegerFunctions2INTEL", .value = 5584, .parameters = &[_]OperandKind{} },
1273 .{ .name = "FunctionPointersINTEL", .value = 5603, .parameters = &[_]OperandKind{} },
1274 .{ .name = "IndirectReferencesINTEL", .value = 5604, .parameters = &[_]OperandKind{} },
1275 .{ .name = "AsmINTEL", .value = 5606, .parameters = &[_]OperandKind{} },
1276 .{ .name = "AtomicFloat32MinMaxEXT", .value = 5612, .parameters = &[_]OperandKind{} },
1277 .{ .name = "AtomicFloat64MinMaxEXT", .value = 5613, .parameters = &[_]OperandKind{} },
1278 .{ .name = "AtomicFloat16MinMaxEXT", .value = 5616, .parameters = &[_]OperandKind{} },
1279 .{ .name = "VectorComputeINTEL", .value = 5617, .parameters = &[_]OperandKind{} },
1280 .{ .name = "VectorAnyINTEL", .value = 5619, .parameters = &[_]OperandKind{} },
1281 .{ .name = "ExpectAssumeKHR", .value = 5629, .parameters = &[_]OperandKind{} },
1282 .{ .name = "SubgroupAvcMotionEstimationINTEL", .value = 5696, .parameters = &[_]OperandKind{} },
1283 .{ .name = "SubgroupAvcMotionEstimationIntraINTEL", .value = 5697, .parameters = &[_]OperandKind{} },
1284 .{ .name = "SubgroupAvcMotionEstimationChromaINTEL", .value = 5698, .parameters = &[_]OperandKind{} },
1285 .{ .name = "VariableLengthArrayINTEL", .value = 5817, .parameters = &[_]OperandKind{} },
1286 .{ .name = "FunctionFloatControlINTEL", .value = 5821, .parameters = &[_]OperandKind{} },
1287 .{ .name = "FPGAMemoryAttributesINTEL", .value = 5824, .parameters = &[_]OperandKind{} },
1288 .{ .name = "FPFastMathModeINTEL", .value = 5837, .parameters = &[_]OperandKind{} },
1289 .{ .name = "ArbitraryPrecisionIntegersINTEL", .value = 5844, .parameters = &[_]OperandKind{} },
1290 .{ .name = "ArbitraryPrecisionFloatingPointINTEL", .value = 5845, .parameters = &[_]OperandKind{} },
1291 .{ .name = "UnstructuredLoopControlsINTEL", .value = 5886, .parameters = &[_]OperandKind{} },
1292 .{ .name = "FPGALoopControlsINTEL", .value = 5888, .parameters = &[_]OperandKind{} },
1293 .{ .name = "KernelAttributesINTEL", .value = 5892, .parameters = &[_]OperandKind{} },
1294 .{ .name = "FPGAKernelAttributesINTEL", .value = 5897, .parameters = &[_]OperandKind{} },
1295 .{ .name = "FPGAMemoryAccessesINTEL", .value = 5898, .parameters = &[_]OperandKind{} },
1296 .{ .name = "FPGAClusterAttributesINTEL", .value = 5904, .parameters = &[_]OperandKind{} },
1297 .{ .name = "LoopFuseINTEL", .value = 5906, .parameters = &[_]OperandKind{} },
1298 .{ .name = "FPGADSPControlINTEL", .value = 5908, .parameters = &[_]OperandKind{} },
1299 .{ .name = "MemoryAccessAliasingINTEL", .value = 5910, .parameters = &[_]OperandKind{} },
1300 .{ .name = "FPGAInvocationPipeliningAttributesINTEL", .value = 5916, .parameters = &[_]OperandKind{} },
1301 .{ .name = "FPGABufferLocationINTEL", .value = 5920, .parameters = &[_]OperandKind{} },
1302 .{ .name = "ArbitraryPrecisionFixedPointINTEL", .value = 5922, .parameters = &[_]OperandKind{} },
1303 .{ .name = "USMStorageClassesINTEL", .value = 5935, .parameters = &[_]OperandKind{} },
1304 .{ .name = "RuntimeAlignedAttributeINTEL", .value = 5939, .parameters = &[_]OperandKind{} },
1305 .{ .name = "IOPipesINTEL", .value = 5943, .parameters = &[_]OperandKind{} },
1306 .{ .name = "BlockingPipesINTEL", .value = 5945, .parameters = &[_]OperandKind{} },
1307 .{ .name = "FPGARegINTEL", .value = 5948, .parameters = &[_]OperandKind{} },
1308 .{ .name = "DotProductInputAll", .value = 6016, .parameters = &[_]OperandKind{} },
1309 .{ .name = "DotProductInputAllKHR", .value = 6016, .parameters = &[_]OperandKind{} },
1310 .{ .name = "DotProductInput4x8Bit", .value = 6017, .parameters = &[_]OperandKind{} },
1311 .{ .name = "DotProductInput4x8BitKHR", .value = 6017, .parameters = &[_]OperandKind{} },
1312 .{ .name = "DotProductInput4x8BitPacked", .value = 6018, .parameters = &[_]OperandKind{} },
1313 .{ .name = "DotProductInput4x8BitPackedKHR", .value = 6018, .parameters = &[_]OperandKind{} },
1314 .{ .name = "DotProduct", .value = 6019, .parameters = &[_]OperandKind{} },
1315 .{ .name = "DotProductKHR", .value = 6019, .parameters = &[_]OperandKind{} },
1316 .{ .name = "RayCullMaskKHR", .value = 6020, .parameters = &[_]OperandKind{} },
1317 .{ .name = "CooperativeMatrixKHR", .value = 6022, .parameters = &[_]OperandKind{} },
1318 .{ .name = "BitInstructions", .value = 6025, .parameters = &[_]OperandKind{} },
1319 .{ .name = "GroupNonUniformRotateKHR", .value = 6026, .parameters = &[_]OperandKind{} },
1320 .{ .name = "FloatControls2", .value = 6029, .parameters = &[_]OperandKind{} },
1321 .{ .name = "AtomicFloat32AddEXT", .value = 6033, .parameters = &[_]OperandKind{} },
1322 .{ .name = "AtomicFloat64AddEXT", .value = 6034, .parameters = &[_]OperandKind{} },
1323 .{ .name = "LongCompositesINTEL", .value = 6089, .parameters = &[_]OperandKind{} },
1324 .{ .name = "OptNoneINTEL", .value = 6094, .parameters = &[_]OperandKind{} },
1325 .{ .name = "AtomicFloat16AddEXT", .value = 6095, .parameters = &[_]OperandKind{} },
1326 .{ .name = "DebugInfoModuleINTEL", .value = 6114, .parameters = &[_]OperandKind{} },
1327 .{ .name = "BFloat16ConversionINTEL", .value = 6115, .parameters = &[_]OperandKind{} },
1328 .{ .name = "SplitBarrierINTEL", .value = 6141, .parameters = &[_]OperandKind{} },
1329 .{ .name = "FPGAClusterAttributesV2INTEL", .value = 6150, .parameters = &[_]OperandKind{} },
1330 .{ .name = "FPGAKernelAttributesv2INTEL", .value = 6161, .parameters = &[_]OperandKind{} },
1331 .{ .name = "FPMaxErrorINTEL", .value = 6169, .parameters = &[_]OperandKind{} },
1332 .{ .name = "FPGALatencyControlINTEL", .value = 6171, .parameters = &[_]OperandKind{} },
1333 .{ .name = "FPGAArgumentInterfacesINTEL", .value = 6174, .parameters = &[_]OperandKind{} },
1334 .{ .name = "GlobalVariableHostAccessINTEL", .value = 6187, .parameters = &[_]OperandKind{} },
1335 .{ .name = "GlobalVariableFPGADecorationsINTEL", .value = 6189, .parameters = &[_]OperandKind{} },
1336 .{ .name = "GroupUniformArithmeticKHR", .value = 6400, .parameters = &[_]OperandKind{} },
1337 .{ .name = "MaskedGatherScatterINTEL", .value = 6427, .parameters = &[_]OperandKind{} },
1338 .{ .name = "CacheControlsINTEL", .value = 6441, .parameters = &[_]OperandKind{} },
1339 .{ .name = "RegisterLimitsINTEL", .value = 6460, .parameters = &[_]OperandKind{} },
1355 .cooperative_matrix_layout => &.{
1356 .{ .name = "RowMajorKHR", .value = 0, .parameters = &.{} },
1357 .{ .name = "ColumnMajorKHR", .value = 1, .parameters = &.{} },
1358 .{ .name = "RowBlockedInterleavedARM", .value = 4202, .parameters = &.{} },
1359 .{ .name = "ColumnBlockedInterleavedARM", .value = 4203, .parameters = &.{} },
13401360 },
1341 .RayQueryIntersection => &[_]Enumerant{
1342 .{ .name = "RayQueryCandidateIntersectionKHR", .value = 0, .parameters = &[_]OperandKind{} },
1343 .{ .name = "RayQueryCommittedIntersectionKHR", .value = 1, .parameters = &[_]OperandKind{} },
1361 .cooperative_matrix_use => &.{
1362 .{ .name = "MatrixAKHR", .value = 0, .parameters = &.{} },
1363 .{ .name = "MatrixBKHR", .value = 1, .parameters = &.{} },
1364 .{ .name = "MatrixAccumulatorKHR", .value = 2, .parameters = &.{} },
13441365 },
1345 .RayQueryCommittedIntersectionType => &[_]Enumerant{
1346 .{ .name = "RayQueryCommittedIntersectionNoneKHR", .value = 0, .parameters = &[_]OperandKind{} },
1347 .{ .name = "RayQueryCommittedIntersectionTriangleKHR", .value = 1, .parameters = &[_]OperandKind{} },
1348 .{ .name = "RayQueryCommittedIntersectionGeneratedKHR", .value = 2, .parameters = &[_]OperandKind{} },
1366 .cooperative_matrix_reduce => &.{
1367 .{ .name = "Row", .value = 0x0001, .parameters = &.{} },
1368 .{ .name = "Column", .value = 0x0002, .parameters = &.{} },
1369 .{ .name = "2x2", .value = 0x0004, .parameters = &.{} },
13491370 },
1350 .RayQueryCandidateIntersectionType => &[_]Enumerant{
1351 .{ .name = "RayQueryCandidateIntersectionTriangleKHR", .value = 0, .parameters = &[_]OperandKind{} },
1352 .{ .name = "RayQueryCandidateIntersectionAABBKHR", .value = 1, .parameters = &[_]OperandKind{} },
1371 .tensor_clamp_mode => &.{
1372 .{ .name = "Undefined", .value = 0, .parameters = &.{} },
1373 .{ .name = "Constant", .value = 1, .parameters = &.{} },
1374 .{ .name = "ClampToEdge", .value = 2, .parameters = &.{} },
1375 .{ .name = "Repeat", .value = 3, .parameters = &.{} },
1376 .{ .name = "RepeatMirrored", .value = 4, .parameters = &.{} },
13531377 },
1354 .PackedVectorFormat => &[_]Enumerant{
1355 .{ .name = "PackedVectorFormat4x8Bit", .value = 0, .parameters = &[_]OperandKind{} },
1356 .{ .name = "PackedVectorFormat4x8BitKHR", .value = 0, .parameters = &[_]OperandKind{} },
1378 .tensor_addressing_operands => &.{
1379 .{ .name = "TensorView", .value = 0x0001, .parameters = &.{.id_ref} },
1380 .{ .name = "DecodeFunc", .value = 0x0002, .parameters = &.{.id_ref} },
13571381 },
1358 .CooperativeMatrixOperands => &[_]Enumerant{
1359 .{ .name = "NoneKHR", .value = 0x0000, .parameters = &[_]OperandKind{} },
1360 .{ .name = "MatrixASignedComponentsKHR", .value = 0x0001, .parameters = &[_]OperandKind{} },
1361 .{ .name = "MatrixBSignedComponentsKHR", .value = 0x0002, .parameters = &[_]OperandKind{} },
1362 .{ .name = "MatrixCSignedComponentsKHR", .value = 0x0004, .parameters = &[_]OperandKind{} },
1363 .{ .name = "MatrixResultSignedComponentsKHR", .value = 0x0008, .parameters = &[_]OperandKind{} },
1364 .{ .name = "SaturatingAccumulationKHR", .value = 0x0010, .parameters = &[_]OperandKind{} },
1382 .initialization_mode_qualifier => &.{
1383 .{ .name = "InitOnDeviceReprogramINTEL", .value = 0, .parameters = &.{} },
1384 .{ .name = "InitOnDeviceResetINTEL", .value = 1, .parameters = &.{} },
13651385 },
1366 .CooperativeMatrixLayout => &[_]Enumerant{
1367 .{ .name = "RowMajorKHR", .value = 0, .parameters = &[_]OperandKind{} },
1368 .{ .name = "ColumnMajorKHR", .value = 1, .parameters = &[_]OperandKind{} },
1386 .load_cache_control => &.{
1387 .{ .name = "UncachedINTEL", .value = 0, .parameters = &.{} },
1388 .{ .name = "CachedINTEL", .value = 1, .parameters = &.{} },
1389 .{ .name = "StreamingINTEL", .value = 2, .parameters = &.{} },
1390 .{ .name = "InvalidateAfterReadINTEL", .value = 3, .parameters = &.{} },
1391 .{ .name = "ConstCachedINTEL", .value = 4, .parameters = &.{} },
13691392 },
1370 .CooperativeMatrixUse => &[_]Enumerant{
1371 .{ .name = "MatrixAKHR", .value = 0, .parameters = &[_]OperandKind{} },
1372 .{ .name = "MatrixBKHR", .value = 1, .parameters = &[_]OperandKind{} },
1373 .{ .name = "MatrixAccumulatorKHR", .value = 2, .parameters = &[_]OperandKind{} },
1393 .store_cache_control => &.{
1394 .{ .name = "UncachedINTEL", .value = 0, .parameters = &.{} },
1395 .{ .name = "WriteThroughINTEL", .value = 1, .parameters = &.{} },
1396 .{ .name = "WriteBackINTEL", .value = 2, .parameters = &.{} },
1397 .{ .name = "StreamingINTEL", .value = 3, .parameters = &.{} },
13741398 },
1375 .InitializationModeQualifier => &[_]Enumerant{
1376 .{ .name = "InitOnDeviceReprogramINTEL", .value = 0, .parameters = &[_]OperandKind{} },
1377 .{ .name = "InitOnDeviceResetINTEL", .value = 1, .parameters = &[_]OperandKind{} },
1399 .named_maximum_number_of_registers => &.{
1400 .{ .name = "AutoINTEL", .value = 0, .parameters = &.{} },
13781401 },
1379 .LoadCacheControl => &[_]Enumerant{
1380 .{ .name = "UncachedINTEL", .value = 0, .parameters = &[_]OperandKind{} },
1381 .{ .name = "CachedINTEL", .value = 1, .parameters = &[_]OperandKind{} },
1382 .{ .name = "StreamingINTEL", .value = 2, .parameters = &[_]OperandKind{} },
1383 .{ .name = "InvalidateAfterReadINTEL", .value = 3, .parameters = &[_]OperandKind{} },
1384 .{ .name = "ConstCachedINTEL", .value = 4, .parameters = &[_]OperandKind{} },
1402 .matrix_multiply_accumulate_operands => &.{
1403 .{ .name = "MatrixASignedComponentsINTEL", .value = 0x1, .parameters = &.{} },
1404 .{ .name = "MatrixBSignedComponentsINTEL", .value = 0x2, .parameters = &.{} },
1405 .{ .name = "MatrixCBFloat16INTEL", .value = 0x4, .parameters = &.{} },
1406 .{ .name = "MatrixResultBFloat16INTEL", .value = 0x8, .parameters = &.{} },
1407 .{ .name = "MatrixAPackedInt8INTEL", .value = 0x10, .parameters = &.{} },
1408 .{ .name = "MatrixBPackedInt8INTEL", .value = 0x20, .parameters = &.{} },
1409 .{ .name = "MatrixAPackedInt4INTEL", .value = 0x40, .parameters = &.{} },
1410 .{ .name = "MatrixBPackedInt4INTEL", .value = 0x80, .parameters = &.{} },
1411 .{ .name = "MatrixATF32INTEL", .value = 0x100, .parameters = &.{} },
1412 .{ .name = "MatrixBTF32INTEL", .value = 0x200, .parameters = &.{} },
1413 .{ .name = "MatrixAPackedFloat16INTEL", .value = 0x400, .parameters = &.{} },
1414 .{ .name = "MatrixBPackedFloat16INTEL", .value = 0x800, .parameters = &.{} },
1415 .{ .name = "MatrixAPackedBFloat16INTEL", .value = 0x1000, .parameters = &.{} },
1416 .{ .name = "MatrixBPackedBFloat16INTEL", .value = 0x2000, .parameters = &.{} },
13851417 },
1386 .StoreCacheControl => &[_]Enumerant{
1387 .{ .name = "UncachedINTEL", .value = 0, .parameters = &[_]OperandKind{} },
1388 .{ .name = "WriteThroughINTEL", .value = 1, .parameters = &[_]OperandKind{} },
1389 .{ .name = "WriteBackINTEL", .value = 2, .parameters = &[_]OperandKind{} },
1390 .{ .name = "StreamingINTEL", .value = 3, .parameters = &[_]OperandKind{} },
1418 .fp_encoding => &.{
1419 .{ .name = "BFloat16KHR", .value = 0, .parameters = &.{} },
1420 .{ .name = "Float8E4M3EXT", .value = 4214, .parameters = &.{} },
1421 .{ .name = "Float8E5M2EXT", .value = 4215, .parameters = &.{} },
13911422 },
1392 .NamedMaximumNumberOfRegisters => &[_]Enumerant{
1393 .{ .name = "AutoINTEL", .value = 0, .parameters = &[_]OperandKind{} },
1423 .cooperative_vector_matrix_layout => &.{
1424 .{ .name = "RowMajorNV", .value = 0, .parameters = &.{} },
1425 .{ .name = "ColumnMajorNV", .value = 1, .parameters = &.{} },
1426 .{ .name = "InferencingOptimalNV", .value = 2, .parameters = &.{} },
1427 .{ .name = "TrainingOptimalNV", .value = 3, .parameters = &.{} },
13941428 },
1395 .IdResultType => unreachable,
1396 .IdResult => unreachable,
1397 .IdMemorySemantics => unreachable,
1398 .IdScope => unreachable,
1399 .IdRef => unreachable,
1400 .LiteralInteger => unreachable,
1401 .LiteralString => unreachable,
1402 .LiteralFloat => unreachable,
1403 .LiteralContextDependentNumber => unreachable,
1404 .LiteralExtInstInteger => unreachable,
1405 .LiteralSpecConstantOpInteger => unreachable,
1406 .PairLiteralIntegerIdRef => unreachable,
1407 .PairIdRefLiteralInteger => unreachable,
1408 .PairIdRefIdRef => unreachable,
1409 .@"OpenCL.DebugInfo.100.DebugInfoFlags" => &[_]Enumerant{
1410 .{ .name = "FlagIsProtected", .value = 0x01, .parameters = &[_]OperandKind{} },
1411 .{ .name = "FlagIsPrivate", .value = 0x02, .parameters = &[_]OperandKind{} },
1412 .{ .name = "FlagIsPublic", .value = 0x03, .parameters = &[_]OperandKind{} },
1413 .{ .name = "FlagIsLocal", .value = 0x04, .parameters = &[_]OperandKind{} },
1414 .{ .name = "FlagIsDefinition", .value = 0x08, .parameters = &[_]OperandKind{} },
1415 .{ .name = "FlagFwdDecl", .value = 0x10, .parameters = &[_]OperandKind{} },
1416 .{ .name = "FlagArtificial", .value = 0x20, .parameters = &[_]OperandKind{} },
1417 .{ .name = "FlagExplicit", .value = 0x40, .parameters = &[_]OperandKind{} },
1418 .{ .name = "FlagPrototyped", .value = 0x80, .parameters = &[_]OperandKind{} },
1419 .{ .name = "FlagObjectPointer", .value = 0x100, .parameters = &[_]OperandKind{} },
1420 .{ .name = "FlagStaticMember", .value = 0x200, .parameters = &[_]OperandKind{} },
1421 .{ .name = "FlagIndirectVariable", .value = 0x400, .parameters = &[_]OperandKind{} },
1422 .{ .name = "FlagLValueReference", .value = 0x800, .parameters = &[_]OperandKind{} },
1423 .{ .name = "FlagRValueReference", .value = 0x1000, .parameters = &[_]OperandKind{} },
1424 .{ .name = "FlagIsOptimized", .value = 0x2000, .parameters = &[_]OperandKind{} },
1425 .{ .name = "FlagIsEnumClass", .value = 0x4000, .parameters = &[_]OperandKind{} },
1426 .{ .name = "FlagTypePassByValue", .value = 0x8000, .parameters = &[_]OperandKind{} },
1427 .{ .name = "FlagTypePassByReference", .value = 0x10000, .parameters = &[_]OperandKind{} },
1429 .component_type => &.{
1430 .{ .name = "Float16NV", .value = 0, .parameters = &.{} },
1431 .{ .name = "Float32NV", .value = 1, .parameters = &.{} },
1432 .{ .name = "Float64NV", .value = 2, .parameters = &.{} },
1433 .{ .name = "SignedInt8NV", .value = 3, .parameters = &.{} },
1434 .{ .name = "SignedInt16NV", .value = 4, .parameters = &.{} },
1435 .{ .name = "SignedInt32NV", .value = 5, .parameters = &.{} },
1436 .{ .name = "SignedInt64NV", .value = 6, .parameters = &.{} },
1437 .{ .name = "UnsignedInt8NV", .value = 7, .parameters = &.{} },
1438 .{ .name = "UnsignedInt16NV", .value = 8, .parameters = &.{} },
1439 .{ .name = "UnsignedInt32NV", .value = 9, .parameters = &.{} },
1440 .{ .name = "UnsignedInt64NV", .value = 10, .parameters = &.{} },
1441 .{ .name = "SignedInt8PackedNV", .value = 1000491000, .parameters = &.{} },
1442 .{ .name = "UnsignedInt8PackedNV", .value = 1000491001, .parameters = &.{} },
1443 .{ .name = "FloatE4M3NV", .value = 1000491002, .parameters = &.{} },
1444 .{ .name = "FloatE5M2NV", .value = 1000491003, .parameters = &.{} },
14281445 },
1429 .@"OpenCL.DebugInfo.100.DebugBaseTypeAttributeEncoding" => &[_]Enumerant{
1430 .{ .name = "Unspecified", .value = 0, .parameters = &[_]OperandKind{} },
1431 .{ .name = "Address", .value = 1, .parameters = &[_]OperandKind{} },
1432 .{ .name = "Boolean", .value = 2, .parameters = &[_]OperandKind{} },
1433 .{ .name = "Float", .value = 3, .parameters = &[_]OperandKind{} },
1434 .{ .name = "Signed", .value = 4, .parameters = &[_]OperandKind{} },
1435 .{ .name = "SignedChar", .value = 5, .parameters = &[_]OperandKind{} },
1436 .{ .name = "Unsigned", .value = 6, .parameters = &[_]OperandKind{} },
1437 .{ .name = "UnsignedChar", .value = 7, .parameters = &[_]OperandKind{} },
1446 .id_result_type => unreachable,
1447 .id_result => unreachable,
1448 .id_memory_semantics => unreachable,
1449 .id_scope => unreachable,
1450 .id_ref => unreachable,
1451 .literal_integer => unreachable,
1452 .literal_string => unreachable,
1453 .literal_float => unreachable,
1454 .literal_context_dependent_number => unreachable,
1455 .literal_ext_inst_integer => unreachable,
1456 .literal_spec_constant_op_integer => unreachable,
1457 .pair_literal_integer_id_ref => unreachable,
1458 .pair_id_ref_literal_integer => unreachable,
1459 .pair_id_ref_id_ref => unreachable,
1460 .tensor_operands => &.{
1461 .{ .name = "NoneARM", .value = 0x0000, .parameters = &.{} },
1462 .{ .name = "NontemporalARM", .value = 0x0001, .parameters = &.{} },
1463 .{ .name = "OutOfBoundsValueARM", .value = 0x0002, .parameters = &.{.id_ref} },
1464 .{ .name = "MakeElementAvailableARM", .value = 0x0004, .parameters = &.{.id_ref} },
1465 .{ .name = "MakeElementVisibleARM", .value = 0x0008, .parameters = &.{.id_ref} },
1466 .{ .name = "NonPrivateElementARM", .value = 0x0010, .parameters = &.{} },
14381467 },
1439 .@"OpenCL.DebugInfo.100.DebugCompositeType" => &[_]Enumerant{
1440 .{ .name = "Class", .value = 0, .parameters = &[_]OperandKind{} },
1441 .{ .name = "Structure", .value = 1, .parameters = &[_]OperandKind{} },
1442 .{ .name = "Union", .value = 2, .parameters = &[_]OperandKind{} },
1468 .debug_info_debug_info_flags => &.{
1469 .{ .name = "FlagIsProtected", .value = 0x01, .parameters = &.{} },
1470 .{ .name = "FlagIsPrivate", .value = 0x02, .parameters = &.{} },
1471 .{ .name = "FlagIsPublic", .value = 0x03, .parameters = &.{} },
1472 .{ .name = "FlagIsLocal", .value = 0x04, .parameters = &.{} },
1473 .{ .name = "FlagIsDefinition", .value = 0x08, .parameters = &.{} },
1474 .{ .name = "FlagFwdDecl", .value = 0x10, .parameters = &.{} },
1475 .{ .name = "FlagArtificial", .value = 0x20, .parameters = &.{} },
1476 .{ .name = "FlagExplicit", .value = 0x40, .parameters = &.{} },
1477 .{ .name = "FlagPrototyped", .value = 0x80, .parameters = &.{} },
1478 .{ .name = "FlagObjectPointer", .value = 0x100, .parameters = &.{} },
1479 .{ .name = "FlagStaticMember", .value = 0x200, .parameters = &.{} },
1480 .{ .name = "FlagIndirectVariable", .value = 0x400, .parameters = &.{} },
1481 .{ .name = "FlagLValueReference", .value = 0x800, .parameters = &.{} },
1482 .{ .name = "FlagRValueReference", .value = 0x1000, .parameters = &.{} },
1483 .{ .name = "FlagIsOptimized", .value = 0x2000, .parameters = &.{} },
14431484 },
1444 .@"OpenCL.DebugInfo.100.DebugTypeQualifier" => &[_]Enumerant{
1445 .{ .name = "ConstType", .value = 0, .parameters = &[_]OperandKind{} },
1446 .{ .name = "VolatileType", .value = 1, .parameters = &[_]OperandKind{} },
1447 .{ .name = "RestrictType", .value = 2, .parameters = &[_]OperandKind{} },
1448 .{ .name = "AtomicType", .value = 3, .parameters = &[_]OperandKind{} },
1485 .debug_info_debug_base_type_attribute_encoding => &.{
1486 .{ .name = "Unspecified", .value = 0, .parameters = &.{} },
1487 .{ .name = "Address", .value = 1, .parameters = &.{} },
1488 .{ .name = "Boolean", .value = 2, .parameters = &.{} },
1489 .{ .name = "Float", .value = 4, .parameters = &.{} },
1490 .{ .name = "Signed", .value = 5, .parameters = &.{} },
1491 .{ .name = "SignedChar", .value = 6, .parameters = &.{} },
1492 .{ .name = "Unsigned", .value = 7, .parameters = &.{} },
1493 .{ .name = "UnsignedChar", .value = 8, .parameters = &.{} },
14491494 },
1450 .@"OpenCL.DebugInfo.100.DebugOperation" => &[_]Enumerant{
1451 .{ .name = "Deref", .value = 0, .parameters = &[_]OperandKind{} },
1452 .{ .name = "Plus", .value = 1, .parameters = &[_]OperandKind{} },
1453 .{ .name = "Minus", .value = 2, .parameters = &[_]OperandKind{} },
1454 .{ .name = "PlusUconst", .value = 3, .parameters = &[_]OperandKind{.LiteralInteger} },
1455 .{ .name = "BitPiece", .value = 4, .parameters = &[_]OperandKind{ .LiteralInteger, .LiteralInteger } },
1456 .{ .name = "Swap", .value = 5, .parameters = &[_]OperandKind{} },
1457 .{ .name = "Xderef", .value = 6, .parameters = &[_]OperandKind{} },
1458 .{ .name = "StackValue", .value = 7, .parameters = &[_]OperandKind{} },
1459 .{ .name = "Constu", .value = 8, .parameters = &[_]OperandKind{.LiteralInteger} },
1460 .{ .name = "Fragment", .value = 9, .parameters = &[_]OperandKind{ .LiteralInteger, .LiteralInteger } },
1495 .debug_info_debug_composite_type => &.{
1496 .{ .name = "Class", .value = 0, .parameters = &.{} },
1497 .{ .name = "Structure", .value = 1, .parameters = &.{} },
1498 .{ .name = "Union", .value = 2, .parameters = &.{} },
14611499 },
1462 .@"OpenCL.DebugInfo.100.DebugImportedEntity" => &[_]Enumerant{
1463 .{ .name = "ImportedModule", .value = 0, .parameters = &[_]OperandKind{} },
1464 .{ .name = "ImportedDeclaration", .value = 1, .parameters = &[_]OperandKind{} },
1500 .debug_info_debug_type_qualifier => &.{
1501 .{ .name = "ConstType", .value = 0, .parameters = &.{} },
1502 .{ .name = "VolatileType", .value = 1, .parameters = &.{} },
1503 .{ .name = "RestrictType", .value = 2, .parameters = &.{} },
14651504 },
1466 .@"NonSemantic.Shader.DebugInfo.100.DebugInfoFlags" => &[_]Enumerant{
1467 .{ .name = "FlagIsProtected", .value = 0x01, .parameters = &[_]OperandKind{} },
1468 .{ .name = "FlagIsPrivate", .value = 0x02, .parameters = &[_]OperandKind{} },
1469 .{ .name = "FlagIsPublic", .value = 0x03, .parameters = &[_]OperandKind{} },
1470 .{ .name = "FlagIsLocal", .value = 0x04, .parameters = &[_]OperandKind{} },
1471 .{ .name = "FlagIsDefinition", .value = 0x08, .parameters = &[_]OperandKind{} },
1472 .{ .name = "FlagFwdDecl", .value = 0x10, .parameters = &[_]OperandKind{} },
1473 .{ .name = "FlagArtificial", .value = 0x20, .parameters = &[_]OperandKind{} },
1474 .{ .name = "FlagExplicit", .value = 0x40, .parameters = &[_]OperandKind{} },
1475 .{ .name = "FlagPrototyped", .value = 0x80, .parameters = &[_]OperandKind{} },
1476 .{ .name = "FlagObjectPointer", .value = 0x100, .parameters = &[_]OperandKind{} },
1477 .{ .name = "FlagStaticMember", .value = 0x200, .parameters = &[_]OperandKind{} },
1478 .{ .name = "FlagIndirectVariable", .value = 0x400, .parameters = &[_]OperandKind{} },
1479 .{ .name = "FlagLValueReference", .value = 0x800, .parameters = &[_]OperandKind{} },
1480 .{ .name = "FlagRValueReference", .value = 0x1000, .parameters = &[_]OperandKind{} },
1481 .{ .name = "FlagIsOptimized", .value = 0x2000, .parameters = &[_]OperandKind{} },
1482 .{ .name = "FlagIsEnumClass", .value = 0x4000, .parameters = &[_]OperandKind{} },
1483 .{ .name = "FlagTypePassByValue", .value = 0x8000, .parameters = &[_]OperandKind{} },
1484 .{ .name = "FlagTypePassByReference", .value = 0x10000, .parameters = &[_]OperandKind{} },
1485 .{ .name = "FlagUnknownPhysicalLayout", .value = 0x20000, .parameters = &[_]OperandKind{} },
1505 .debug_info_debug_operation => &.{
1506 .{ .name = "Deref", .value = 0, .parameters = &.{} },
1507 .{ .name = "Plus", .value = 1, .parameters = &.{} },
1508 .{ .name = "Minus", .value = 2, .parameters = &.{} },
1509 .{ .name = "PlusUconst", .value = 3, .parameters = &.{.literal_integer} },
1510 .{ .name = "BitPiece", .value = 4, .parameters = &.{ .literal_integer, .literal_integer } },
1511 .{ .name = "Swap", .value = 5, .parameters = &.{} },
1512 .{ .name = "Xderef", .value = 6, .parameters = &.{} },
1513 .{ .name = "StackValue", .value = 7, .parameters = &.{} },
1514 .{ .name = "Constu", .value = 8, .parameters = &.{.literal_integer} },
14861515 },
1487 .@"NonSemantic.Shader.DebugInfo.100.BuildIdentifierFlags" => &[_]Enumerant{
1488 .{ .name = "IdentifierPossibleDuplicates", .value = 0x01, .parameters = &[_]OperandKind{} },
1516 .open_cl_debug_info_100_debug_info_flags => &.{
1517 .{ .name = "FlagIsProtected", .value = 0x01, .parameters = &.{} },
1518 .{ .name = "FlagIsPrivate", .value = 0x02, .parameters = &.{} },
1519 .{ .name = "FlagIsPublic", .value = 0x03, .parameters = &.{} },
1520 .{ .name = "FlagIsLocal", .value = 0x04, .parameters = &.{} },
1521 .{ .name = "FlagIsDefinition", .value = 0x08, .parameters = &.{} },
1522 .{ .name = "FlagFwdDecl", .value = 0x10, .parameters = &.{} },
1523 .{ .name = "FlagArtificial", .value = 0x20, .parameters = &.{} },
1524 .{ .name = "FlagExplicit", .value = 0x40, .parameters = &.{} },
1525 .{ .name = "FlagPrototyped", .value = 0x80, .parameters = &.{} },
1526 .{ .name = "FlagObjectPointer", .value = 0x100, .parameters = &.{} },
1527 .{ .name = "FlagStaticMember", .value = 0x200, .parameters = &.{} },
1528 .{ .name = "FlagIndirectVariable", .value = 0x400, .parameters = &.{} },
1529 .{ .name = "FlagLValueReference", .value = 0x800, .parameters = &.{} },
1530 .{ .name = "FlagRValueReference", .value = 0x1000, .parameters = &.{} },
1531 .{ .name = "FlagIsOptimized", .value = 0x2000, .parameters = &.{} },
1532 .{ .name = "FlagIsEnumClass", .value = 0x4000, .parameters = &.{} },
1533 .{ .name = "FlagTypePassByValue", .value = 0x8000, .parameters = &.{} },
1534 .{ .name = "FlagTypePassByReference", .value = 0x10000, .parameters = &.{} },
14891535 },
1490 .@"NonSemantic.Shader.DebugInfo.100.DebugBaseTypeAttributeEncoding" => &[_]Enumerant{
1491 .{ .name = "Unspecified", .value = 0, .parameters = &[_]OperandKind{} },
1492 .{ .name = "Address", .value = 1, .parameters = &[_]OperandKind{} },
1493 .{ .name = "Boolean", .value = 2, .parameters = &[_]OperandKind{} },
1494 .{ .name = "Float", .value = 3, .parameters = &[_]OperandKind{} },
1495 .{ .name = "Signed", .value = 4, .parameters = &[_]OperandKind{} },
1496 .{ .name = "SignedChar", .value = 5, .parameters = &[_]OperandKind{} },
1497 .{ .name = "Unsigned", .value = 6, .parameters = &[_]OperandKind{} },
1498 .{ .name = "UnsignedChar", .value = 7, .parameters = &[_]OperandKind{} },
1536 .open_cl_debug_info_100_debug_base_type_attribute_encoding => &.{
1537 .{ .name = "Unspecified", .value = 0, .parameters = &.{} },
1538 .{ .name = "Address", .value = 1, .parameters = &.{} },
1539 .{ .name = "Boolean", .value = 2, .parameters = &.{} },
1540 .{ .name = "Float", .value = 3, .parameters = &.{} },
1541 .{ .name = "Signed", .value = 4, .parameters = &.{} },
1542 .{ .name = "SignedChar", .value = 5, .parameters = &.{} },
1543 .{ .name = "Unsigned", .value = 6, .parameters = &.{} },
1544 .{ .name = "UnsignedChar", .value = 7, .parameters = &.{} },
14991545 },
1500 .@"NonSemantic.Shader.DebugInfo.100.DebugCompositeType" => &[_]Enumerant{
1501 .{ .name = "Class", .value = 0, .parameters = &[_]OperandKind{} },
1502 .{ .name = "Structure", .value = 1, .parameters = &[_]OperandKind{} },
1503 .{ .name = "Union", .value = 2, .parameters = &[_]OperandKind{} },
1546 .open_cl_debug_info_100_debug_composite_type => &.{
1547 .{ .name = "Class", .value = 0, .parameters = &.{} },
1548 .{ .name = "Structure", .value = 1, .parameters = &.{} },
1549 .{ .name = "Union", .value = 2, .parameters = &.{} },
15041550 },
1505 .@"NonSemantic.Shader.DebugInfo.100.DebugTypeQualifier" => &[_]Enumerant{
1506 .{ .name = "ConstType", .value = 0, .parameters = &[_]OperandKind{} },
1507 .{ .name = "VolatileType", .value = 1, .parameters = &[_]OperandKind{} },
1508 .{ .name = "RestrictType", .value = 2, .parameters = &[_]OperandKind{} },
1509 .{ .name = "AtomicType", .value = 3, .parameters = &[_]OperandKind{} },
1551 .open_cl_debug_info_100_debug_type_qualifier => &.{
1552 .{ .name = "ConstType", .value = 0, .parameters = &.{} },
1553 .{ .name = "VolatileType", .value = 1, .parameters = &.{} },
1554 .{ .name = "RestrictType", .value = 2, .parameters = &.{} },
1555 .{ .name = "AtomicType", .value = 3, .parameters = &.{} },
15101556 },
1511 .@"NonSemantic.Shader.DebugInfo.100.DebugOperation" => &[_]Enumerant{
1512 .{ .name = "Deref", .value = 0, .parameters = &[_]OperandKind{} },
1513 .{ .name = "Plus", .value = 1, .parameters = &[_]OperandKind{} },
1514 .{ .name = "Minus", .value = 2, .parameters = &[_]OperandKind{} },
1515 .{ .name = "PlusUconst", .value = 3, .parameters = &[_]OperandKind{.IdRef} },
1516 .{ .name = "BitPiece", .value = 4, .parameters = &[_]OperandKind{ .IdRef, .IdRef } },
1517 .{ .name = "Swap", .value = 5, .parameters = &[_]OperandKind{} },
1518 .{ .name = "Xderef", .value = 6, .parameters = &[_]OperandKind{} },
1519 .{ .name = "StackValue", .value = 7, .parameters = &[_]OperandKind{} },
1520 .{ .name = "Constu", .value = 8, .parameters = &[_]OperandKind{.IdRef} },
1521 .{ .name = "Fragment", .value = 9, .parameters = &[_]OperandKind{ .IdRef, .IdRef } },
1557 .open_cl_debug_info_100_debug_operation => &.{
1558 .{ .name = "Deref", .value = 0, .parameters = &.{} },
1559 .{ .name = "Plus", .value = 1, .parameters = &.{} },
1560 .{ .name = "Minus", .value = 2, .parameters = &.{} },
1561 .{ .name = "PlusUconst", .value = 3, .parameters = &.{.literal_integer} },
1562 .{ .name = "BitPiece", .value = 4, .parameters = &.{ .literal_integer, .literal_integer } },
1563 .{ .name = "Swap", .value = 5, .parameters = &.{} },
1564 .{ .name = "Xderef", .value = 6, .parameters = &.{} },
1565 .{ .name = "StackValue", .value = 7, .parameters = &.{} },
1566 .{ .name = "Constu", .value = 8, .parameters = &.{.literal_integer} },
1567 .{ .name = "Fragment", .value = 9, .parameters = &.{ .literal_integer, .literal_integer } },
15221568 },
1523 .@"NonSemantic.Shader.DebugInfo.100.DebugImportedEntity" => &[_]Enumerant{
1524 .{ .name = "ImportedModule", .value = 0, .parameters = &[_]OperandKind{} },
1525 .{ .name = "ImportedDeclaration", .value = 1, .parameters = &[_]OperandKind{} },
1569 .open_cl_debug_info_100_debug_imported_entity => &.{
1570 .{ .name = "ImportedModule", .value = 0, .parameters = &.{} },
1571 .{ .name = "ImportedDeclaration", .value = 1, .parameters = &.{} },
15261572 },
1527 .@"NonSemantic.ClspvReflection.6.KernelPropertyFlags" => &[_]Enumerant{
1528 .{ .name = "MayUsePrintf", .value = 0x1, .parameters = &[_]OperandKind{} },
1573 .non_semantic_clspv_reflection_6_kernel_property_flags => &.{
1574 .{ .name = "MayUsePrintf", .value = 0x1, .parameters = &.{} },
15291575 },
1530 .@"DebugInfo.DebugInfoFlags" => &[_]Enumerant{
1531 .{ .name = "FlagIsProtected", .value = 0x01, .parameters = &[_]OperandKind{} },
1532 .{ .name = "FlagIsPrivate", .value = 0x02, .parameters = &[_]OperandKind{} },
1533 .{ .name = "FlagIsPublic", .value = 0x03, .parameters = &[_]OperandKind{} },
1534 .{ .name = "FlagIsLocal", .value = 0x04, .parameters = &[_]OperandKind{} },
1535 .{ .name = "FlagIsDefinition", .value = 0x08, .parameters = &[_]OperandKind{} },
1536 .{ .name = "FlagFwdDecl", .value = 0x10, .parameters = &[_]OperandKind{} },
1537 .{ .name = "FlagArtificial", .value = 0x20, .parameters = &[_]OperandKind{} },
1538 .{ .name = "FlagExplicit", .value = 0x40, .parameters = &[_]OperandKind{} },
1539 .{ .name = "FlagPrototyped", .value = 0x80, .parameters = &[_]OperandKind{} },
1540 .{ .name = "FlagObjectPointer", .value = 0x100, .parameters = &[_]OperandKind{} },
1541 .{ .name = "FlagStaticMember", .value = 0x200, .parameters = &[_]OperandKind{} },
1542 .{ .name = "FlagIndirectVariable", .value = 0x400, .parameters = &[_]OperandKind{} },
1543 .{ .name = "FlagLValueReference", .value = 0x800, .parameters = &[_]OperandKind{} },
1544 .{ .name = "FlagRValueReference", .value = 0x1000, .parameters = &[_]OperandKind{} },
1545 .{ .name = "FlagIsOptimized", .value = 0x2000, .parameters = &[_]OperandKind{} },
1576 .non_semantic_shader_debug_info_100_debug_info_flags => &.{
1577 .{ .name = "FlagIsProtected", .value = 0x01, .parameters = &.{} },
1578 .{ .name = "FlagIsPrivate", .value = 0x02, .parameters = &.{} },
1579 .{ .name = "FlagIsPublic", .value = 0x03, .parameters = &.{} },
1580 .{ .name = "FlagIsLocal", .value = 0x04, .parameters = &.{} },
1581 .{ .name = "FlagIsDefinition", .value = 0x08, .parameters = &.{} },
1582 .{ .name = "FlagFwdDecl", .value = 0x10, .parameters = &.{} },
1583 .{ .name = "FlagArtificial", .value = 0x20, .parameters = &.{} },
1584 .{ .name = "FlagExplicit", .value = 0x40, .parameters = &.{} },
1585 .{ .name = "FlagPrototyped", .value = 0x80, .parameters = &.{} },
1586 .{ .name = "FlagObjectPointer", .value = 0x100, .parameters = &.{} },
1587 .{ .name = "FlagStaticMember", .value = 0x200, .parameters = &.{} },
1588 .{ .name = "FlagIndirectVariable", .value = 0x400, .parameters = &.{} },
1589 .{ .name = "FlagLValueReference", .value = 0x800, .parameters = &.{} },
1590 .{ .name = "FlagRValueReference", .value = 0x1000, .parameters = &.{} },
1591 .{ .name = "FlagIsOptimized", .value = 0x2000, .parameters = &.{} },
1592 .{ .name = "FlagIsEnumClass", .value = 0x4000, .parameters = &.{} },
1593 .{ .name = "FlagTypePassByValue", .value = 0x8000, .parameters = &.{} },
1594 .{ .name = "FlagTypePassByReference", .value = 0x10000, .parameters = &.{} },
1595 .{ .name = "FlagUnknownPhysicalLayout", .value = 0x20000, .parameters = &.{} },
15461596 },
1547 .@"DebugInfo.DebugBaseTypeAttributeEncoding" => &[_]Enumerant{
1548 .{ .name = "Unspecified", .value = 0, .parameters = &[_]OperandKind{} },
1549 .{ .name = "Address", .value = 1, .parameters = &[_]OperandKind{} },
1550 .{ .name = "Boolean", .value = 2, .parameters = &[_]OperandKind{} },
1551 .{ .name = "Float", .value = 4, .parameters = &[_]OperandKind{} },
1552 .{ .name = "Signed", .value = 5, .parameters = &[_]OperandKind{} },
1553 .{ .name = "SignedChar", .value = 6, .parameters = &[_]OperandKind{} },
1554 .{ .name = "Unsigned", .value = 7, .parameters = &[_]OperandKind{} },
1555 .{ .name = "UnsignedChar", .value = 8, .parameters = &[_]OperandKind{} },
1597 .non_semantic_shader_debug_info_100_build_identifier_flags => &.{
1598 .{ .name = "IdentifierPossibleDuplicates", .value = 0x01, .parameters = &.{} },
15561599 },
1557 .@"DebugInfo.DebugCompositeType" => &[_]Enumerant{
1558 .{ .name = "Class", .value = 0, .parameters = &[_]OperandKind{} },
1559 .{ .name = "Structure", .value = 1, .parameters = &[_]OperandKind{} },
1560 .{ .name = "Union", .value = 2, .parameters = &[_]OperandKind{} },
1600 .non_semantic_shader_debug_info_100_debug_base_type_attribute_encoding => &.{
1601 .{ .name = "Unspecified", .value = 0, .parameters = &.{} },
1602 .{ .name = "Address", .value = 1, .parameters = &.{} },
1603 .{ .name = "Boolean", .value = 2, .parameters = &.{} },
1604 .{ .name = "Float", .value = 3, .parameters = &.{} },
1605 .{ .name = "Signed", .value = 4, .parameters = &.{} },
1606 .{ .name = "SignedChar", .value = 5, .parameters = &.{} },
1607 .{ .name = "Unsigned", .value = 6, .parameters = &.{} },
1608 .{ .name = "UnsignedChar", .value = 7, .parameters = &.{} },
15611609 },
1562 .@"DebugInfo.DebugTypeQualifier" => &[_]Enumerant{
1563 .{ .name = "ConstType", .value = 0, .parameters = &[_]OperandKind{} },
1564 .{ .name = "VolatileType", .value = 1, .parameters = &[_]OperandKind{} },
1565 .{ .name = "RestrictType", .value = 2, .parameters = &[_]OperandKind{} },
1610 .non_semantic_shader_debug_info_100_debug_composite_type => &.{
1611 .{ .name = "Class", .value = 0, .parameters = &.{} },
1612 .{ .name = "Structure", .value = 1, .parameters = &.{} },
1613 .{ .name = "Union", .value = 2, .parameters = &.{} },
15661614 },
1567 .@"DebugInfo.DebugOperation" => &[_]Enumerant{
1568 .{ .name = "Deref", .value = 0, .parameters = &[_]OperandKind{} },
1569 .{ .name = "Plus", .value = 1, .parameters = &[_]OperandKind{} },
1570 .{ .name = "Minus", .value = 2, .parameters = &[_]OperandKind{} },
1571 .{ .name = "PlusUconst", .value = 3, .parameters = &[_]OperandKind{.LiteralInteger} },
1572 .{ .name = "BitPiece", .value = 4, .parameters = &[_]OperandKind{ .LiteralInteger, .LiteralInteger } },
1573 .{ .name = "Swap", .value = 5, .parameters = &[_]OperandKind{} },
1574 .{ .name = "Xderef", .value = 6, .parameters = &[_]OperandKind{} },
1575 .{ .name = "StackValue", .value = 7, .parameters = &[_]OperandKind{} },
1576 .{ .name = "Constu", .value = 8, .parameters = &[_]OperandKind{.LiteralInteger} },
1615 .non_semantic_shader_debug_info_100_debug_type_qualifier => &.{
1616 .{ .name = "ConstType", .value = 0, .parameters = &.{} },
1617 .{ .name = "VolatileType", .value = 1, .parameters = &.{} },
1618 .{ .name = "RestrictType", .value = 2, .parameters = &.{} },
1619 .{ .name = "AtomicType", .value = 3, .parameters = &.{} },
1620 },
1621 .non_semantic_shader_debug_info_100_debug_operation => &.{
1622 .{ .name = "Deref", .value = 0, .parameters = &.{} },
1623 .{ .name = "Plus", .value = 1, .parameters = &.{} },
1624 .{ .name = "Minus", .value = 2, .parameters = &.{} },
1625 .{ .name = "PlusUconst", .value = 3, .parameters = &.{.id_ref} },
1626 .{ .name = "BitPiece", .value = 4, .parameters = &.{ .id_ref, .id_ref } },
1627 .{ .name = "Swap", .value = 5, .parameters = &.{} },
1628 .{ .name = "Xderef", .value = 6, .parameters = &.{} },
1629 .{ .name = "StackValue", .value = 7, .parameters = &.{} },
1630 .{ .name = "Constu", .value = 8, .parameters = &.{.id_ref} },
1631 .{ .name = "Fragment", .value = 9, .parameters = &.{ .id_ref, .id_ref } },
1632 },
1633 .non_semantic_shader_debug_info_100_debug_imported_entity => &.{
1634 .{ .name = "ImportedModule", .value = 0, .parameters = &.{} },
1635 .{ .name = "ImportedDeclaration", .value = 1, .parameters = &.{} },
15771636 },
15781637 };
15791638 }
......@@ -1926,14 +1985,34 @@ pub const Opcode = enum(u16) {
19261985 OpColorAttachmentReadEXT = 4160,
19271986 OpDepthAttachmentReadEXT = 4161,
19281987 OpStencilAttachmentReadEXT = 4162,
1988 OpTypeTensorARM = 4163,
1989 OpTensorReadARM = 4164,
1990 OpTensorWriteARM = 4165,
1991 OpTensorQuerySizeARM = 4166,
1992 OpGraphConstantARM = 4181,
1993 OpGraphEntryPointARM = 4182,
1994 OpGraphARM = 4183,
1995 OpGraphInputARM = 4184,
1996 OpGraphSetOutputARM = 4185,
1997 OpGraphEndARM = 4186,
1998 OpTypeGraphARM = 4190,
19291999 OpTerminateInvocation = 4416,
2000 OpTypeUntypedPointerKHR = 4417,
2001 OpUntypedVariableKHR = 4418,
2002 OpUntypedAccessChainKHR = 4419,
2003 OpUntypedInBoundsAccessChainKHR = 4420,
19302004 OpSubgroupBallotKHR = 4421,
19312005 OpSubgroupFirstInvocationKHR = 4422,
2006 OpUntypedPtrAccessChainKHR = 4423,
2007 OpUntypedInBoundsPtrAccessChainKHR = 4424,
2008 OpUntypedArrayLengthKHR = 4425,
2009 OpUntypedPrefetchKHR = 4426,
19322010 OpSubgroupAllKHR = 4428,
19332011 OpSubgroupAnyKHR = 4429,
19342012 OpSubgroupAllEqualKHR = 4430,
19352013 OpGroupNonUniformRotateKHR = 4431,
19362014 OpSubgroupReadInvocationKHR = 4432,
2015 OpExtInstWithForwardRefsKHR = 4433,
19372016 OpTraceRayKHR = 4445,
19382017 OpExecuteCallableKHR = 4446,
19392018 OpConvertUToAccelerationStructureKHR = 4447,
......@@ -1950,6 +2029,9 @@ pub const Opcode = enum(u16) {
19502029 OpCooperativeMatrixStoreKHR = 4458,
19512030 OpCooperativeMatrixMulAddKHR = 4459,
19522031 OpCooperativeMatrixLengthKHR = 4460,
2032 OpConstantCompositeReplicateEXT = 4461,
2033 OpSpecConstantCompositeReplicateEXT = 4462,
2034 OpCompositeConstructReplicateEXT = 4463,
19532035 OpTypeRayQueryKHR = 4472,
19542036 OpRayQueryInitializeKHR = 4473,
19552037 OpRayQueryTerminateKHR = 4474,
......@@ -1976,9 +2058,14 @@ pub const Opcode = enum(u16) {
19762058 OpFragmentMaskFetchAMD = 5011,
19772059 OpFragmentFetchAMD = 5012,
19782060 OpReadClockKHR = 5056,
1979 OpFinalizeNodePayloadsAMDX = 5075,
2061 OpAllocateNodePayloadsAMDX = 5074,
2062 OpEnqueueNodePayloadsAMDX = 5075,
2063 OpTypeNodePayloadArrayAMDX = 5076,
19802064 OpFinishWritingNodePayloadAMDX = 5078,
1981 OpInitializeNodePayloadsAMDX = 5090,
2065 OpNodePayloadArrayLengthAMDX = 5090,
2066 OpIsNodePayloadValidAMDX = 5101,
2067 OpConstantStringAMDX = 5103,
2068 OpSpecConstantStringAMDX = 5104,
19822069 OpGroupNonUniformQuadAllKHR = 5110,
19832070 OpGroupNonUniformQuadAnyKHR = 5111,
19842071 OpHitObjectRecordHitMotionNV = 5249,
......@@ -2015,12 +2102,20 @@ pub const Opcode = enum(u16) {
20152102 OpReorderThreadWithHintNV = 5280,
20162103 OpTypeHitObjectNV = 5281,
20172104 OpImageSampleFootprintNV = 5283,
2105 OpTypeCooperativeVectorNV = 5288,
2106 OpCooperativeVectorMatrixMulNV = 5289,
2107 OpCooperativeVectorOuterProductAccumulateNV = 5290,
2108 OpCooperativeVectorReduceSumAccumulateNV = 5291,
2109 OpCooperativeVectorMatrixMulAddNV = 5292,
2110 OpCooperativeMatrixConvertNV = 5293,
20182111 OpEmitMeshTasksEXT = 5294,
20192112 OpSetMeshOutputsEXT = 5295,
20202113 OpGroupNonUniformPartitionNV = 5296,
20212114 OpWritePackedPrimitiveIndices4x8NV = 5299,
20222115 OpFetchMicroTriangleVertexPositionNV = 5300,
20232116 OpFetchMicroTriangleVertexBarycentricNV = 5301,
2117 OpCooperativeVectorLoadNV = 5302,
2118 OpCooperativeVectorStoreNV = 5303,
20242119 OpReportIntersectionKHR = 5334,
20252120 OpIgnoreIntersectionNV = 5335,
20262121 OpTerminateRayNV = 5336,
......@@ -2030,6 +2125,8 @@ pub const Opcode = enum(u16) {
20302125 OpRayQueryGetIntersectionTriangleVertexPositionsKHR = 5340,
20312126 OpTypeAccelerationStructureKHR = 5341,
20322127 OpExecuteCallableNV = 5344,
2128 OpRayQueryGetClusterIdNV = 5345,
2129 OpHitObjectGetClusterIdNV = 5346,
20332130 OpTypeCooperativeMatrixNV = 5358,
20342131 OpCooperativeMatrixLoadNV = 5359,
20352132 OpCooperativeMatrixStoreNV = 5360,
......@@ -2037,8 +2134,25 @@ pub const Opcode = enum(u16) {
20372134 OpCooperativeMatrixLengthNV = 5362,
20382135 OpBeginInvocationInterlockEXT = 5364,
20392136 OpEndInvocationInterlockEXT = 5365,
2137 OpCooperativeMatrixReduceNV = 5366,
2138 OpCooperativeMatrixLoadTensorNV = 5367,
2139 OpCooperativeMatrixStoreTensorNV = 5368,
2140 OpCooperativeMatrixPerElementOpNV = 5369,
2141 OpTypeTensorLayoutNV = 5370,
2142 OpTypeTensorViewNV = 5371,
2143 OpCreateTensorLayoutNV = 5372,
2144 OpTensorLayoutSetDimensionNV = 5373,
2145 OpTensorLayoutSetStrideNV = 5374,
2146 OpTensorLayoutSliceNV = 5375,
2147 OpTensorLayoutSetClampValueNV = 5376,
2148 OpCreateTensorViewNV = 5377,
2149 OpTensorViewSetDimensionNV = 5378,
2150 OpTensorViewSetStrideNV = 5379,
20402151 OpDemoteToHelperInvocation = 5380,
20412152 OpIsHelperInvocationEXT = 5381,
2153 OpTensorViewSetClipNV = 5382,
2154 OpTensorLayoutSetBlockSizeNV = 5384,
2155 OpCooperativeMatrixTransposeNV = 5390,
20422156 OpConvertUToImageNV = 5391,
20432157 OpConvertUToSamplerNV = 5392,
20442158 OpConvertImageToUNV = 5393,
......@@ -2047,6 +2161,19 @@ pub const Opcode = enum(u16) {
20472161 OpConvertSampledImageToUNV = 5396,
20482162 OpSamplerImageAddressingModeNV = 5397,
20492163 OpRawAccessChainNV = 5398,
2164 OpRayQueryGetIntersectionSpherePositionNV = 5427,
2165 OpRayQueryGetIntersectionSphereRadiusNV = 5428,
2166 OpRayQueryGetIntersectionLSSPositionsNV = 5429,
2167 OpRayQueryGetIntersectionLSSRadiiNV = 5430,
2168 OpRayQueryGetIntersectionLSSHitValueNV = 5431,
2169 OpHitObjectGetSpherePositionNV = 5432,
2170 OpHitObjectGetSphereRadiusNV = 5433,
2171 OpHitObjectGetLSSPositionsNV = 5434,
2172 OpHitObjectGetLSSRadiiNV = 5435,
2173 OpHitObjectIsSphereHitNV = 5436,
2174 OpHitObjectIsLSSHitNV = 5437,
2175 OpRayQueryIsSphereHitNV = 5438,
2176 OpRayQueryIsLSSHitNV = 5439,
20502177 OpSubgroupShuffleINTEL = 5571,
20512178 OpSubgroupShuffleDownINTEL = 5572,
20522179 OpSubgroupShuffleUpINTEL = 5573,
......@@ -2108,6 +2235,20 @@ pub const Opcode = enum(u16) {
21082235 OpConvertBF16ToFINTEL = 6117,
21092236 OpControlBarrierArriveINTEL = 6142,
21102237 OpControlBarrierWaitINTEL = 6143,
2238 OpArithmeticFenceEXT = 6145,
2239 OpTaskSequenceCreateINTEL = 6163,
2240 OpTaskSequenceAsyncINTEL = 6164,
2241 OpTaskSequenceGetINTEL = 6165,
2242 OpTaskSequenceReleaseINTEL = 6166,
2243 OpTypeTaskSequenceINTEL = 6199,
2244 OpSubgroupBlockPrefetchINTEL = 6221,
2245 OpSubgroup2DBlockLoadINTEL = 6231,
2246 OpSubgroup2DBlockLoadTransformINTEL = 6232,
2247 OpSubgroup2DBlockLoadTransposeINTEL = 6233,
2248 OpSubgroup2DBlockPrefetchINTEL = 6234,
2249 OpSubgroup2DBlockStoreINTEL = 6235,
2250 OpSubgroupMatrixMultiplyAccumulateINTEL = 6237,
2251 OpBitwiseFunctionINTEL = 6242,
21112252 OpGroupIMulKHR = 6401,
21122253 OpGroupFMulKHR = 6402,
21132254 OpGroupBitwiseAndKHR = 6403,
......@@ -2116,1125 +2257,1290 @@ pub const Opcode = enum(u16) {
21162257 OpGroupLogicalAndKHR = 6406,
21172258 OpGroupLogicalOrKHR = 6407,
21182259 OpGroupLogicalXorKHR = 6408,
2260 OpRoundFToTF32INTEL = 6426,
21192261 OpMaskedGatherINTEL = 6428,
21202262 OpMaskedScatterINTEL = 6429,
2121 pub const OpSDotKHR = Opcode.OpSDot;
2122 pub const OpUDotKHR = Opcode.OpUDot;
2123 pub const OpSUDotKHR = Opcode.OpSUDot;
2124 pub const OpSDotAccSatKHR = Opcode.OpSDotAccSat;
2125 pub const OpUDotAccSatKHR = Opcode.OpUDotAccSat;
2126 pub const OpSUDotAccSatKHR = Opcode.OpSUDotAccSat;
2127 pub const OpReportIntersectionNV = Opcode.OpReportIntersectionKHR;
2128 pub const OpTypeAccelerationStructureNV = Opcode.OpTypeAccelerationStructureKHR;
2129 pub const OpDemoteToHelperInvocationEXT = Opcode.OpDemoteToHelperInvocation;
2130 pub const OpDecorateStringGOOGLE = Opcode.OpDecorateString;
2131 pub const OpMemberDecorateStringGOOGLE = Opcode.OpMemberDecorateString;
2263 OpConvertHandleToImageINTEL = 6529,
2264 OpConvertHandleToSamplerINTEL = 6530,
2265 OpConvertHandleToSampledImageINTEL = 6531,
21322266
21332267 pub fn Operands(comptime self: Opcode) type {
21342268 return switch (self) {
21352269 .OpNop => void,
2136 .OpUndef => struct { id_result_type: IdResultType, id_result: IdResult },
2270 .OpUndef => struct { id_result_type: Id, id_result: Id },
21372271 .OpSourceContinued => struct { continued_source: LiteralString },
2138 .OpSource => struct { source_language: SourceLanguage, version: LiteralInteger, file: ?IdRef = null, source: ?LiteralString = null },
2272 .OpSource => struct { source_language: SourceLanguage, version: LiteralInteger, file: ?Id = null, source: ?LiteralString = null },
21392273 .OpSourceExtension => struct { extension: LiteralString },
2140 .OpName => struct { target: IdRef, name: LiteralString },
2141 .OpMemberName => struct { type: IdRef, member: LiteralInteger, name: LiteralString },
2142 .OpString => struct { id_result: IdResult, string: LiteralString },
2143 .OpLine => struct { file: IdRef, line: LiteralInteger, column: LiteralInteger },
2274 .OpName => struct { target: Id, name: LiteralString },
2275 .OpMemberName => struct { type: Id, member: LiteralInteger, name: LiteralString },
2276 .OpString => struct { id_result: Id, string: LiteralString },
2277 .OpLine => struct { file: Id, line: LiteralInteger, column: LiteralInteger },
21442278 .OpExtension => struct { name: LiteralString },
2145 .OpExtInstImport => struct { id_result: IdResult, name: LiteralString },
2146 .OpExtInst => struct { id_result_type: IdResultType, id_result: IdResult, set: IdRef, instruction: LiteralExtInstInteger, id_ref_4: []const IdRef = &.{} },
2279 .OpExtInstImport => struct { id_result: Id, name: LiteralString },
2280 .OpExtInst => struct { id_result_type: Id, id_result: Id, set: Id, instruction: LiteralExtInstInteger, id_ref_4: []const Id = &.{} },
21472281 .OpMemoryModel => struct { addressing_model: AddressingModel, memory_model: MemoryModel },
2148 .OpEntryPoint => struct { execution_model: ExecutionModel, entry_point: IdRef, name: LiteralString, interface: []const IdRef = &.{} },
2149 .OpExecutionMode => struct { entry_point: IdRef, mode: ExecutionMode.Extended },
2282 .OpEntryPoint => struct { execution_model: ExecutionModel, entry_point: Id, name: LiteralString, interface: []const Id = &.{} },
2283 .OpExecutionMode => struct { entry_point: Id, mode: ExecutionMode.Extended },
21502284 .OpCapability => struct { capability: Capability },
2151 .OpTypeVoid => struct { id_result: IdResult },
2152 .OpTypeBool => struct { id_result: IdResult },
2153 .OpTypeInt => struct { id_result: IdResult, width: LiteralInteger, signedness: LiteralInteger },
2154 .OpTypeFloat => struct { id_result: IdResult, width: LiteralInteger },
2155 .OpTypeVector => struct { id_result: IdResult, component_type: IdRef, component_count: LiteralInteger },
2156 .OpTypeMatrix => struct { id_result: IdResult, column_type: IdRef, column_count: LiteralInteger },
2157 .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 },
2158 .OpTypeSampler => struct { id_result: IdResult },
2159 .OpTypeSampledImage => struct { id_result: IdResult, image_type: IdRef },
2160 .OpTypeArray => struct { id_result: IdResult, element_type: IdRef, length: IdRef },
2161 .OpTypeRuntimeArray => struct { id_result: IdResult, element_type: IdRef },
2162 .OpTypeStruct => struct { id_result: IdResult, id_ref: []const IdRef = &.{} },
2163 .OpTypeOpaque => struct { id_result: IdResult, literal_string: LiteralString },
2164 .OpTypePointer => struct { id_result: IdResult, storage_class: StorageClass, type: IdRef },
2165 .OpTypeFunction => struct { id_result: IdResult, return_type: IdRef, id_ref_2: []const IdRef = &.{} },
2166 .OpTypeEvent => struct { id_result: IdResult },
2167 .OpTypeDeviceEvent => struct { id_result: IdResult },
2168 .OpTypeReserveId => struct { id_result: IdResult },
2169 .OpTypeQueue => struct { id_result: IdResult },
2170 .OpTypePipe => struct { id_result: IdResult, qualifier: AccessQualifier },
2171 .OpTypeForwardPointer => struct { pointer_type: IdRef, storage_class: StorageClass },
2172 .OpConstantTrue => struct { id_result_type: IdResultType, id_result: IdResult },
2173 .OpConstantFalse => struct { id_result_type: IdResultType, id_result: IdResult },
2174 .OpConstant => struct { id_result_type: IdResultType, id_result: IdResult, value: LiteralContextDependentNumber },
2175 .OpConstantComposite => struct { id_result_type: IdResultType, id_result: IdResult, constituents: []const IdRef = &.{} },
2176 .OpConstantSampler => struct { id_result_type: IdResultType, id_result: IdResult, sampler_addressing_mode: SamplerAddressingMode, param: LiteralInteger, sampler_filter_mode: SamplerFilterMode },
2177 .OpConstantNull => struct { id_result_type: IdResultType, id_result: IdResult },
2178 .OpSpecConstantTrue => struct { id_result_type: IdResultType, id_result: IdResult },
2179 .OpSpecConstantFalse => struct { id_result_type: IdResultType, id_result: IdResult },
2180 .OpSpecConstant => struct { id_result_type: IdResultType, id_result: IdResult, value: LiteralContextDependentNumber },
2181 .OpSpecConstantComposite => struct { id_result_type: IdResultType, id_result: IdResult, constituents: []const IdRef = &.{} },
2182 .OpSpecConstantOp => struct { id_result_type: IdResultType, id_result: IdResult, opcode: LiteralSpecConstantOpInteger },
2183 .OpFunction => struct { id_result_type: IdResultType, id_result: IdResult, function_control: FunctionControl, function_type: IdRef },
2184 .OpFunctionParameter => struct { id_result_type: IdResultType, id_result: IdResult },
2285 .OpTypeVoid => struct { id_result: Id },
2286 .OpTypeBool => struct { id_result: Id },
2287 .OpTypeInt => struct { id_result: Id, width: LiteralInteger, signedness: LiteralInteger },
2288 .OpTypeFloat => struct { id_result: Id, width: LiteralInteger, floating_point_encoding: ?FPEncoding = null },
2289 .OpTypeVector => struct { id_result: Id, component_type: Id, component_count: LiteralInteger },
2290 .OpTypeMatrix => struct { id_result: Id, column_type: Id, column_count: LiteralInteger },
2291 .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 },
2292 .OpTypeSampler => struct { id_result: Id },
2293 .OpTypeSampledImage => struct { id_result: Id, image_type: Id },
2294 .OpTypeArray => struct { id_result: Id, element_type: Id, length: Id },
2295 .OpTypeRuntimeArray => struct { id_result: Id, element_type: Id },
2296 .OpTypeStruct => struct { id_result: Id, id_ref: []const Id = &.{} },
2297 .OpTypeOpaque => struct { id_result: Id, literal_string: LiteralString },
2298 .OpTypePointer => struct { id_result: Id, storage_class: StorageClass, type: Id },
2299 .OpTypeFunction => struct { id_result: Id, return_type: Id, id_ref_2: []const Id = &.{} },
2300 .OpTypeEvent => struct { id_result: Id },
2301 .OpTypeDeviceEvent => struct { id_result: Id },
2302 .OpTypeReserveId => struct { id_result: Id },
2303 .OpTypeQueue => struct { id_result: Id },
2304 .OpTypePipe => struct { id_result: Id, qualifier: AccessQualifier },
2305 .OpTypeForwardPointer => struct { pointer_type: Id, storage_class: StorageClass },
2306 .OpConstantTrue => struct { id_result_type: Id, id_result: Id },
2307 .OpConstantFalse => struct { id_result_type: Id, id_result: Id },
2308 .OpConstant => struct { id_result_type: Id, id_result: Id, value: LiteralContextDependentNumber },
2309 .OpConstantComposite => struct { id_result_type: Id, id_result: Id, constituents: []const Id = &.{} },
2310 .OpConstantSampler => struct { id_result_type: Id, id_result: Id, sampler_addressing_mode: SamplerAddressingMode, param: LiteralInteger, sampler_filter_mode: SamplerFilterMode },
2311 .OpConstantNull => struct { id_result_type: Id, id_result: Id },
2312 .OpSpecConstantTrue => struct { id_result_type: Id, id_result: Id },
2313 .OpSpecConstantFalse => struct { id_result_type: Id, id_result: Id },
2314 .OpSpecConstant => struct { id_result_type: Id, id_result: Id, value: LiteralContextDependentNumber },
2315 .OpSpecConstantComposite => struct { id_result_type: Id, id_result: Id, constituents: []const Id = &.{} },
2316 .OpSpecConstantOp => struct { id_result_type: Id, id_result: Id, opcode: LiteralSpecConstantOpInteger },
2317 .OpFunction => struct { id_result_type: Id, id_result: Id, function_control: FunctionControl, function_type: Id },
2318 .OpFunctionParameter => struct { id_result_type: Id, id_result: Id },
21852319 .OpFunctionEnd => void,
2186 .OpFunctionCall => struct { id_result_type: IdResultType, id_result: IdResult, function: IdRef, id_ref_3: []const IdRef = &.{} },
2187 .OpVariable => struct { id_result_type: IdResultType, id_result: IdResult, storage_class: StorageClass, initializer: ?IdRef = null },
2188 .OpImageTexelPointer => struct { id_result_type: IdResultType, id_result: IdResult, image: IdRef, coordinate: IdRef, sample: IdRef },
2189 .OpLoad => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef, memory_access: ?MemoryAccess.Extended = null },
2190 .OpStore => struct { pointer: IdRef, object: IdRef, memory_access: ?MemoryAccess.Extended = null },
2191 .OpCopyMemory => struct { target: IdRef, source: IdRef, memory_access_2: ?MemoryAccess.Extended = null, memory_access_3: ?MemoryAccess.Extended = null },
2192 .OpCopyMemorySized => struct { target: IdRef, source: IdRef, size: IdRef, memory_access_3: ?MemoryAccess.Extended = null, memory_access_4: ?MemoryAccess.Extended = null },
2193 .OpAccessChain => struct { id_result_type: IdResultType, id_result: IdResult, base: IdRef, indexes: []const IdRef = &.{} },
2194 .OpInBoundsAccessChain => struct { id_result_type: IdResultType, id_result: IdResult, base: IdRef, indexes: []const IdRef = &.{} },
2195 .OpPtrAccessChain => struct { id_result_type: IdResultType, id_result: IdResult, base: IdRef, element: IdRef, indexes: []const IdRef = &.{} },
2196 .OpArrayLength => struct { id_result_type: IdResultType, id_result: IdResult, structure: IdRef, array_member: LiteralInteger },
2197 .OpGenericPtrMemSemantics => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef },
2198 .OpInBoundsPtrAccessChain => struct { id_result_type: IdResultType, id_result: IdResult, base: IdRef, element: IdRef, indexes: []const IdRef = &.{} },
2199 .OpDecorate => struct { target: IdRef, decoration: Decoration.Extended },
2200 .OpMemberDecorate => struct { structure_type: IdRef, member: LiteralInteger, decoration: Decoration.Extended },
2201 .OpDecorationGroup => struct { id_result: IdResult },
2202 .OpGroupDecorate => struct { decoration_group: IdRef, targets: []const IdRef = &.{} },
2203 .OpGroupMemberDecorate => struct { decoration_group: IdRef, targets: []const PairIdRefLiteralInteger = &.{} },
2204 .OpVectorExtractDynamic => struct { id_result_type: IdResultType, id_result: IdResult, vector: IdRef, index: IdRef },
2205 .OpVectorInsertDynamic => struct { id_result_type: IdResultType, id_result: IdResult, vector: IdRef, component: IdRef, index: IdRef },
2206 .OpVectorShuffle => struct { id_result_type: IdResultType, id_result: IdResult, vector_1: IdRef, vector_2: IdRef, components: []const LiteralInteger = &.{} },
2207 .OpCompositeConstruct => struct { id_result_type: IdResultType, id_result: IdResult, constituents: []const IdRef = &.{} },
2208 .OpCompositeExtract => struct { id_result_type: IdResultType, id_result: IdResult, composite: IdRef, indexes: []const LiteralInteger = &.{} },
2209 .OpCompositeInsert => struct { id_result_type: IdResultType, id_result: IdResult, object: IdRef, composite: IdRef, indexes: []const LiteralInteger = &.{} },
2210 .OpCopyObject => struct { id_result_type: IdResultType, id_result: IdResult, operand: IdRef },
2211 .OpTranspose => struct { id_result_type: IdResultType, id_result: IdResult, matrix: IdRef },
2212 .OpSampledImage => struct { id_result_type: IdResultType, id_result: IdResult, image: IdRef, sampler: IdRef },
2213 .OpImageSampleImplicitLod => struct { id_result_type: IdResultType, id_result: IdResult, sampled_image: IdRef, coordinate: IdRef, image_operands: ?ImageOperands.Extended = null },
2214 .OpImageSampleExplicitLod => struct { id_result_type: IdResultType, id_result: IdResult, sampled_image: IdRef, coordinate: IdRef, image_operands: ImageOperands.Extended },
2215 .OpImageSampleDrefImplicitLod => struct { id_result_type: IdResultType, id_result: IdResult, sampled_image: IdRef, coordinate: IdRef, d_ref: IdRef, image_operands: ?ImageOperands.Extended = null },
2216 .OpImageSampleDrefExplicitLod => struct { id_result_type: IdResultType, id_result: IdResult, sampled_image: IdRef, coordinate: IdRef, d_ref: IdRef, image_operands: ImageOperands.Extended },
2217 .OpImageSampleProjImplicitLod => struct { id_result_type: IdResultType, id_result: IdResult, sampled_image: IdRef, coordinate: IdRef, image_operands: ?ImageOperands.Extended = null },
2218 .OpImageSampleProjExplicitLod => struct { id_result_type: IdResultType, id_result: IdResult, sampled_image: IdRef, coordinate: IdRef, image_operands: ImageOperands.Extended },
2219 .OpImageSampleProjDrefImplicitLod => struct { id_result_type: IdResultType, id_result: IdResult, sampled_image: IdRef, coordinate: IdRef, d_ref: IdRef, image_operands: ?ImageOperands.Extended = null },
2220 .OpImageSampleProjDrefExplicitLod => struct { id_result_type: IdResultType, id_result: IdResult, sampled_image: IdRef, coordinate: IdRef, d_ref: IdRef, image_operands: ImageOperands.Extended },
2221 .OpImageFetch => struct { id_result_type: IdResultType, id_result: IdResult, image: IdRef, coordinate: IdRef, image_operands: ?ImageOperands.Extended = null },
2222 .OpImageGather => struct { id_result_type: IdResultType, id_result: IdResult, sampled_image: IdRef, coordinate: IdRef, component: IdRef, image_operands: ?ImageOperands.Extended = null },
2223 .OpImageDrefGather => struct { id_result_type: IdResultType, id_result: IdResult, sampled_image: IdRef, coordinate: IdRef, d_ref: IdRef, image_operands: ?ImageOperands.Extended = null },
2224 .OpImageRead => struct { id_result_type: IdResultType, id_result: IdResult, image: IdRef, coordinate: IdRef, image_operands: ?ImageOperands.Extended = null },
2225 .OpImageWrite => struct { image: IdRef, coordinate: IdRef, texel: IdRef, image_operands: ?ImageOperands.Extended = null },
2226 .OpImage => struct { id_result_type: IdResultType, id_result: IdResult, sampled_image: IdRef },
2227 .OpImageQueryFormat => struct { id_result_type: IdResultType, id_result: IdResult, image: IdRef },
2228 .OpImageQueryOrder => struct { id_result_type: IdResultType, id_result: IdResult, image: IdRef },
2229 .OpImageQuerySizeLod => struct { id_result_type: IdResultType, id_result: IdResult, image: IdRef, level_of_detail: IdRef },
2230 .OpImageQuerySize => struct { id_result_type: IdResultType, id_result: IdResult, image: IdRef },
2231 .OpImageQueryLod => struct { id_result_type: IdResultType, id_result: IdResult, sampled_image: IdRef, coordinate: IdRef },
2232 .OpImageQueryLevels => struct { id_result_type: IdResultType, id_result: IdResult, image: IdRef },
2233 .OpImageQuerySamples => struct { id_result_type: IdResultType, id_result: IdResult, image: IdRef },
2234 .OpConvertFToU => struct { id_result_type: IdResultType, id_result: IdResult, float_value: IdRef },
2235 .OpConvertFToS => struct { id_result_type: IdResultType, id_result: IdResult, float_value: IdRef },
2236 .OpConvertSToF => struct { id_result_type: IdResultType, id_result: IdResult, signed_value: IdRef },
2237 .OpConvertUToF => struct { id_result_type: IdResultType, id_result: IdResult, unsigned_value: IdRef },
2238 .OpUConvert => struct { id_result_type: IdResultType, id_result: IdResult, unsigned_value: IdRef },
2239 .OpSConvert => struct { id_result_type: IdResultType, id_result: IdResult, signed_value: IdRef },
2240 .OpFConvert => struct { id_result_type: IdResultType, id_result: IdResult, float_value: IdRef },
2241 .OpQuantizeToF16 => struct { id_result_type: IdResultType, id_result: IdResult, value: IdRef },
2242 .OpConvertPtrToU => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef },
2243 .OpSatConvertSToU => struct { id_result_type: IdResultType, id_result: IdResult, signed_value: IdRef },
2244 .OpSatConvertUToS => struct { id_result_type: IdResultType, id_result: IdResult, unsigned_value: IdRef },
2245 .OpConvertUToPtr => struct { id_result_type: IdResultType, id_result: IdResult, integer_value: IdRef },
2246 .OpPtrCastToGeneric => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef },
2247 .OpGenericCastToPtr => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef },
2248 .OpGenericCastToPtrExplicit => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef, storage: StorageClass },
2249 .OpBitcast => struct { id_result_type: IdResultType, id_result: IdResult, operand: IdRef },
2250 .OpSNegate => struct { id_result_type: IdResultType, id_result: IdResult, operand: IdRef },
2251 .OpFNegate => struct { id_result_type: IdResultType, id_result: IdResult, operand: IdRef },
2252 .OpIAdd => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef },
2253 .OpFAdd => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef },
2254 .OpISub => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef },
2255 .OpFSub => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef },
2256 .OpIMul => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef },
2257 .OpFMul => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef },
2258 .OpUDiv => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef },
2259 .OpSDiv => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef },
2260 .OpFDiv => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef },
2261 .OpUMod => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef },
2262 .OpSRem => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef },
2263 .OpSMod => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef },
2264 .OpFRem => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef },
2265 .OpFMod => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef },
2266 .OpVectorTimesScalar => struct { id_result_type: IdResultType, id_result: IdResult, vector: IdRef, scalar: IdRef },
2267 .OpMatrixTimesScalar => struct { id_result_type: IdResultType, id_result: IdResult, matrix: IdRef, scalar: IdRef },
2268 .OpVectorTimesMatrix => struct { id_result_type: IdResultType, id_result: IdResult, vector: IdRef, matrix: IdRef },
2269 .OpMatrixTimesVector => struct { id_result_type: IdResultType, id_result: IdResult, matrix: IdRef, vector: IdRef },
2270 .OpMatrixTimesMatrix => struct { id_result_type: IdResultType, id_result: IdResult, leftmatrix: IdRef, rightmatrix: IdRef },
2271 .OpOuterProduct => struct { id_result_type: IdResultType, id_result: IdResult, vector_1: IdRef, vector_2: IdRef },
2272 .OpDot => struct { id_result_type: IdResultType, id_result: IdResult, vector_1: IdRef, vector_2: IdRef },
2273 .OpIAddCarry => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef },
2274 .OpISubBorrow => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef },
2275 .OpUMulExtended => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef },
2276 .OpSMulExtended => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef },
2277 .OpAny => struct { id_result_type: IdResultType, id_result: IdResult, vector: IdRef },
2278 .OpAll => struct { id_result_type: IdResultType, id_result: IdResult, vector: IdRef },
2279 .OpIsNan => struct { id_result_type: IdResultType, id_result: IdResult, x: IdRef },
2280 .OpIsInf => struct { id_result_type: IdResultType, id_result: IdResult, x: IdRef },
2281 .OpIsFinite => struct { id_result_type: IdResultType, id_result: IdResult, x: IdRef },
2282 .OpIsNormal => struct { id_result_type: IdResultType, id_result: IdResult, x: IdRef },
2283 .OpSignBitSet => struct { id_result_type: IdResultType, id_result: IdResult, x: IdRef },
2284 .OpLessOrGreater => struct { id_result_type: IdResultType, id_result: IdResult, x: IdRef, y: IdRef },
2285 .OpOrdered => struct { id_result_type: IdResultType, id_result: IdResult, x: IdRef, y: IdRef },
2286 .OpUnordered => struct { id_result_type: IdResultType, id_result: IdResult, x: IdRef, y: IdRef },
2287 .OpLogicalEqual => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef },
2288 .OpLogicalNotEqual => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef },
2289 .OpLogicalOr => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef },
2290 .OpLogicalAnd => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef },
2291 .OpLogicalNot => struct { id_result_type: IdResultType, id_result: IdResult, operand: IdRef },
2292 .OpSelect => struct { id_result_type: IdResultType, id_result: IdResult, condition: IdRef, object_1: IdRef, object_2: IdRef },
2293 .OpIEqual => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef },
2294 .OpINotEqual => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef },
2295 .OpUGreaterThan => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef },
2296 .OpSGreaterThan => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef },
2297 .OpUGreaterThanEqual => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef },
2298 .OpSGreaterThanEqual => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef },
2299 .OpULessThan => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef },
2300 .OpSLessThan => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef },
2301 .OpULessThanEqual => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef },
2302 .OpSLessThanEqual => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef },
2303 .OpFOrdEqual => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef },
2304 .OpFUnordEqual => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef },
2305 .OpFOrdNotEqual => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef },
2306 .OpFUnordNotEqual => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef },
2307 .OpFOrdLessThan => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef },
2308 .OpFUnordLessThan => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef },
2309 .OpFOrdGreaterThan => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef },
2310 .OpFUnordGreaterThan => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef },
2311 .OpFOrdLessThanEqual => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef },
2312 .OpFUnordLessThanEqual => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef },
2313 .OpFOrdGreaterThanEqual => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef },
2314 .OpFUnordGreaterThanEqual => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef },
2315 .OpShiftRightLogical => struct { id_result_type: IdResultType, id_result: IdResult, base: IdRef, shift: IdRef },
2316 .OpShiftRightArithmetic => struct { id_result_type: IdResultType, id_result: IdResult, base: IdRef, shift: IdRef },
2317 .OpShiftLeftLogical => struct { id_result_type: IdResultType, id_result: IdResult, base: IdRef, shift: IdRef },
2318 .OpBitwiseOr => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef },
2319 .OpBitwiseXor => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef },
2320 .OpBitwiseAnd => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef },
2321 .OpNot => struct { id_result_type: IdResultType, id_result: IdResult, operand: IdRef },
2322 .OpBitFieldInsert => struct { id_result_type: IdResultType, id_result: IdResult, base: IdRef, insert: IdRef, offset: IdRef, count: IdRef },
2323 .OpBitFieldSExtract => struct { id_result_type: IdResultType, id_result: IdResult, base: IdRef, offset: IdRef, count: IdRef },
2324 .OpBitFieldUExtract => struct { id_result_type: IdResultType, id_result: IdResult, base: IdRef, offset: IdRef, count: IdRef },
2325 .OpBitReverse => struct { id_result_type: IdResultType, id_result: IdResult, base: IdRef },
2326 .OpBitCount => struct { id_result_type: IdResultType, id_result: IdResult, base: IdRef },
2327 .OpDPdx => struct { id_result_type: IdResultType, id_result: IdResult, p: IdRef },
2328 .OpDPdy => struct { id_result_type: IdResultType, id_result: IdResult, p: IdRef },
2329 .OpFwidth => struct { id_result_type: IdResultType, id_result: IdResult, p: IdRef },
2330 .OpDPdxFine => struct { id_result_type: IdResultType, id_result: IdResult, p: IdRef },
2331 .OpDPdyFine => struct { id_result_type: IdResultType, id_result: IdResult, p: IdRef },
2332 .OpFwidthFine => struct { id_result_type: IdResultType, id_result: IdResult, p: IdRef },
2333 .OpDPdxCoarse => struct { id_result_type: IdResultType, id_result: IdResult, p: IdRef },
2334 .OpDPdyCoarse => struct { id_result_type: IdResultType, id_result: IdResult, p: IdRef },
2335 .OpFwidthCoarse => struct { id_result_type: IdResultType, id_result: IdResult, p: IdRef },
2320 .OpFunctionCall => struct { id_result_type: Id, id_result: Id, function: Id, id_ref_3: []const Id = &.{} },
2321 .OpVariable => struct { id_result_type: Id, id_result: Id, storage_class: StorageClass, initializer: ?Id = null },
2322 .OpImageTexelPointer => struct { id_result_type: Id, id_result: Id, image: Id, coordinate: Id, sample: Id },
2323 .OpLoad => struct { id_result_type: Id, id_result: Id, pointer: Id, memory_access: ?MemoryAccess.Extended = null },
2324 .OpStore => struct { pointer: Id, object: Id, memory_access: ?MemoryAccess.Extended = null },
2325 .OpCopyMemory => struct { target: Id, source: Id, memory_access_2: ?MemoryAccess.Extended = null, memory_access_3: ?MemoryAccess.Extended = null },
2326 .OpCopyMemorySized => struct { target: Id, source: Id, size: Id, memory_access_3: ?MemoryAccess.Extended = null, memory_access_4: ?MemoryAccess.Extended = null },
2327 .OpAccessChain => struct { id_result_type: Id, id_result: Id, base: Id, indexes: []const Id = &.{} },
2328 .OpInBoundsAccessChain => struct { id_result_type: Id, id_result: Id, base: Id, indexes: []const Id = &.{} },
2329 .OpPtrAccessChain => struct { id_result_type: Id, id_result: Id, base: Id, element: Id, indexes: []const Id = &.{} },
2330 .OpArrayLength => struct { id_result_type: Id, id_result: Id, structure: Id, array_member: LiteralInteger },
2331 .OpGenericPtrMemSemantics => struct { id_result_type: Id, id_result: Id, pointer: Id },
2332 .OpInBoundsPtrAccessChain => struct { id_result_type: Id, id_result: Id, base: Id, element: Id, indexes: []const Id = &.{} },
2333 .OpDecorate => struct { target: Id, decoration: Decoration.Extended },
2334 .OpMemberDecorate => struct { structure_type: Id, member: LiteralInteger, decoration: Decoration.Extended },
2335 .OpDecorationGroup => struct { id_result: Id },
2336 .OpGroupDecorate => struct { decoration_group: Id, targets: []const Id = &.{} },
2337 .OpGroupMemberDecorate => struct { decoration_group: Id, targets: []const PairIdRefLiteralInteger = &.{} },
2338 .OpVectorExtractDynamic => struct { id_result_type: Id, id_result: Id, vector: Id, index: Id },
2339 .OpVectorInsertDynamic => struct { id_result_type: Id, id_result: Id, vector: Id, component: Id, index: Id },
2340 .OpVectorShuffle => struct { id_result_type: Id, id_result: Id, vector_1: Id, vector_2: Id, components: []const LiteralInteger = &.{} },
2341 .OpCompositeConstruct => struct { id_result_type: Id, id_result: Id, constituents: []const Id = &.{} },
2342 .OpCompositeExtract => struct { id_result_type: Id, id_result: Id, composite: Id, indexes: []const LiteralInteger = &.{} },
2343 .OpCompositeInsert => struct { id_result_type: Id, id_result: Id, object: Id, composite: Id, indexes: []const LiteralInteger = &.{} },
2344 .OpCopyObject => struct { id_result_type: Id, id_result: Id, operand: Id },
2345 .OpTranspose => struct { id_result_type: Id, id_result: Id, matrix: Id },
2346 .OpSampledImage => struct { id_result_type: Id, id_result: Id, image: Id, sampler: Id },
2347 .OpImageSampleImplicitLod => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, image_operands: ?ImageOperands.Extended = null },
2348 .OpImageSampleExplicitLod => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, image_operands: ImageOperands.Extended },
2349 .OpImageSampleDrefImplicitLod => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, d_ref: Id, image_operands: ?ImageOperands.Extended = null },
2350 .OpImageSampleDrefExplicitLod => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, d_ref: Id, image_operands: ImageOperands.Extended },
2351 .OpImageSampleProjImplicitLod => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, image_operands: ?ImageOperands.Extended = null },
2352 .OpImageSampleProjExplicitLod => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, image_operands: ImageOperands.Extended },
2353 .OpImageSampleProjDrefImplicitLod => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, d_ref: Id, image_operands: ?ImageOperands.Extended = null },
2354 .OpImageSampleProjDrefExplicitLod => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, d_ref: Id, image_operands: ImageOperands.Extended },
2355 .OpImageFetch => struct { id_result_type: Id, id_result: Id, image: Id, coordinate: Id, image_operands: ?ImageOperands.Extended = null },
2356 .OpImageGather => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, component: Id, image_operands: ?ImageOperands.Extended = null },
2357 .OpImageDrefGather => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, d_ref: Id, image_operands: ?ImageOperands.Extended = null },
2358 .OpImageRead => struct { id_result_type: Id, id_result: Id, image: Id, coordinate: Id, image_operands: ?ImageOperands.Extended = null },
2359 .OpImageWrite => struct { image: Id, coordinate: Id, texel: Id, image_operands: ?ImageOperands.Extended = null },
2360 .OpImage => struct { id_result_type: Id, id_result: Id, sampled_image: Id },
2361 .OpImageQueryFormat => struct { id_result_type: Id, id_result: Id, image: Id },
2362 .OpImageQueryOrder => struct { id_result_type: Id, id_result: Id, image: Id },
2363 .OpImageQuerySizeLod => struct { id_result_type: Id, id_result: Id, image: Id, level_of_detail: Id },
2364 .OpImageQuerySize => struct { id_result_type: Id, id_result: Id, image: Id },
2365 .OpImageQueryLod => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id },
2366 .OpImageQueryLevels => struct { id_result_type: Id, id_result: Id, image: Id },
2367 .OpImageQuerySamples => struct { id_result_type: Id, id_result: Id, image: Id },
2368 .OpConvertFToU => struct { id_result_type: Id, id_result: Id, float_value: Id },
2369 .OpConvertFToS => struct { id_result_type: Id, id_result: Id, float_value: Id },
2370 .OpConvertSToF => struct { id_result_type: Id, id_result: Id, signed_value: Id },
2371 .OpConvertUToF => struct { id_result_type: Id, id_result: Id, unsigned_value: Id },
2372 .OpUConvert => struct { id_result_type: Id, id_result: Id, unsigned_value: Id },
2373 .OpSConvert => struct { id_result_type: Id, id_result: Id, signed_value: Id },
2374 .OpFConvert => struct { id_result_type: Id, id_result: Id, float_value: Id },
2375 .OpQuantizeToF16 => struct { id_result_type: Id, id_result: Id, value: Id },
2376 .OpConvertPtrToU => struct { id_result_type: Id, id_result: Id, pointer: Id },
2377 .OpSatConvertSToU => struct { id_result_type: Id, id_result: Id, signed_value: Id },
2378 .OpSatConvertUToS => struct { id_result_type: Id, id_result: Id, unsigned_value: Id },
2379 .OpConvertUToPtr => struct { id_result_type: Id, id_result: Id, integer_value: Id },
2380 .OpPtrCastToGeneric => struct { id_result_type: Id, id_result: Id, pointer: Id },
2381 .OpGenericCastToPtr => struct { id_result_type: Id, id_result: Id, pointer: Id },
2382 .OpGenericCastToPtrExplicit => struct { id_result_type: Id, id_result: Id, pointer: Id, storage: StorageClass },
2383 .OpBitcast => struct { id_result_type: Id, id_result: Id, operand: Id },
2384 .OpSNegate => struct { id_result_type: Id, id_result: Id, operand: Id },
2385 .OpFNegate => struct { id_result_type: Id, id_result: Id, operand: Id },
2386 .OpIAdd => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2387 .OpFAdd => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2388 .OpISub => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2389 .OpFSub => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2390 .OpIMul => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2391 .OpFMul => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2392 .OpUDiv => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2393 .OpSDiv => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2394 .OpFDiv => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2395 .OpUMod => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2396 .OpSRem => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2397 .OpSMod => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2398 .OpFRem => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2399 .OpFMod => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2400 .OpVectorTimesScalar => struct { id_result_type: Id, id_result: Id, vector: Id, scalar: Id },
2401 .OpMatrixTimesScalar => struct { id_result_type: Id, id_result: Id, matrix: Id, scalar: Id },
2402 .OpVectorTimesMatrix => struct { id_result_type: Id, id_result: Id, vector: Id, matrix: Id },
2403 .OpMatrixTimesVector => struct { id_result_type: Id, id_result: Id, matrix: Id, vector: Id },
2404 .OpMatrixTimesMatrix => struct { id_result_type: Id, id_result: Id, left_matrix: Id, right_matrix: Id },
2405 .OpOuterProduct => struct { id_result_type: Id, id_result: Id, vector_1: Id, vector_2: Id },
2406 .OpDot => struct { id_result_type: Id, id_result: Id, vector_1: Id, vector_2: Id },
2407 .OpIAddCarry => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2408 .OpISubBorrow => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2409 .OpUMulExtended => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2410 .OpSMulExtended => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2411 .OpAny => struct { id_result_type: Id, id_result: Id, vector: Id },
2412 .OpAll => struct { id_result_type: Id, id_result: Id, vector: Id },
2413 .OpIsNan => struct { id_result_type: Id, id_result: Id, x: Id },
2414 .OpIsInf => struct { id_result_type: Id, id_result: Id, x: Id },
2415 .OpIsFinite => struct { id_result_type: Id, id_result: Id, x: Id },
2416 .OpIsNormal => struct { id_result_type: Id, id_result: Id, x: Id },
2417 .OpSignBitSet => struct { id_result_type: Id, id_result: Id, x: Id },
2418 .OpLessOrGreater => struct { id_result_type: Id, id_result: Id, x: Id, y: Id },
2419 .OpOrdered => struct { id_result_type: Id, id_result: Id, x: Id, y: Id },
2420 .OpUnordered => struct { id_result_type: Id, id_result: Id, x: Id, y: Id },
2421 .OpLogicalEqual => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2422 .OpLogicalNotEqual => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2423 .OpLogicalOr => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2424 .OpLogicalAnd => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2425 .OpLogicalNot => struct { id_result_type: Id, id_result: Id, operand: Id },
2426 .OpSelect => struct { id_result_type: Id, id_result: Id, condition: Id, object_1: Id, object_2: Id },
2427 .OpIEqual => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2428 .OpINotEqual => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2429 .OpUGreaterThan => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2430 .OpSGreaterThan => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2431 .OpUGreaterThanEqual => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2432 .OpSGreaterThanEqual => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2433 .OpULessThan => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2434 .OpSLessThan => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2435 .OpULessThanEqual => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2436 .OpSLessThanEqual => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2437 .OpFOrdEqual => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2438 .OpFUnordEqual => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2439 .OpFOrdNotEqual => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2440 .OpFUnordNotEqual => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2441 .OpFOrdLessThan => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2442 .OpFUnordLessThan => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2443 .OpFOrdGreaterThan => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2444 .OpFUnordGreaterThan => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2445 .OpFOrdLessThanEqual => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2446 .OpFUnordLessThanEqual => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2447 .OpFOrdGreaterThanEqual => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2448 .OpFUnordGreaterThanEqual => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2449 .OpShiftRightLogical => struct { id_result_type: Id, id_result: Id, base: Id, shift: Id },
2450 .OpShiftRightArithmetic => struct { id_result_type: Id, id_result: Id, base: Id, shift: Id },
2451 .OpShiftLeftLogical => struct { id_result_type: Id, id_result: Id, base: Id, shift: Id },
2452 .OpBitwiseOr => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2453 .OpBitwiseXor => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2454 .OpBitwiseAnd => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2455 .OpNot => struct { id_result_type: Id, id_result: Id, operand: Id },
2456 .OpBitFieldInsert => struct { id_result_type: Id, id_result: Id, base: Id, insert: Id, offset: Id, count: Id },
2457 .OpBitFieldSExtract => struct { id_result_type: Id, id_result: Id, base: Id, offset: Id, count: Id },
2458 .OpBitFieldUExtract => struct { id_result_type: Id, id_result: Id, base: Id, offset: Id, count: Id },
2459 .OpBitReverse => struct { id_result_type: Id, id_result: Id, base: Id },
2460 .OpBitCount => struct { id_result_type: Id, id_result: Id, base: Id },
2461 .OpDPdx => struct { id_result_type: Id, id_result: Id, p: Id },
2462 .OpDPdy => struct { id_result_type: Id, id_result: Id, p: Id },
2463 .OpFwidth => struct { id_result_type: Id, id_result: Id, p: Id },
2464 .OpDPdxFine => struct { id_result_type: Id, id_result: Id, p: Id },
2465 .OpDPdyFine => struct { id_result_type: Id, id_result: Id, p: Id },
2466 .OpFwidthFine => struct { id_result_type: Id, id_result: Id, p: Id },
2467 .OpDPdxCoarse => struct { id_result_type: Id, id_result: Id, p: Id },
2468 .OpDPdyCoarse => struct { id_result_type: Id, id_result: Id, p: Id },
2469 .OpFwidthCoarse => struct { id_result_type: Id, id_result: Id, p: Id },
23362470 .OpEmitVertex => void,
23372471 .OpEndPrimitive => void,
2338 .OpEmitStreamVertex => struct { stream: IdRef },
2339 .OpEndStreamPrimitive => struct { stream: IdRef },
2340 .OpControlBarrier => struct { execution: IdScope, memory: IdScope, semantics: IdMemorySemantics },
2341 .OpMemoryBarrier => struct { memory: IdScope, semantics: IdMemorySemantics },
2342 .OpAtomicLoad => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef, memory: IdScope, semantics: IdMemorySemantics },
2343 .OpAtomicStore => struct { pointer: IdRef, memory: IdScope, semantics: IdMemorySemantics, value: IdRef },
2344 .OpAtomicExchange => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef, memory: IdScope, semantics: IdMemorySemantics, value: IdRef },
2345 .OpAtomicCompareExchange => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef, memory: IdScope, equal: IdMemorySemantics, unequal: IdMemorySemantics, value: IdRef, comparator: IdRef },
2346 .OpAtomicCompareExchangeWeak => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef, memory: IdScope, equal: IdMemorySemantics, unequal: IdMemorySemantics, value: IdRef, comparator: IdRef },
2347 .OpAtomicIIncrement => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef, memory: IdScope, semantics: IdMemorySemantics },
2348 .OpAtomicIDecrement => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef, memory: IdScope, semantics: IdMemorySemantics },
2349 .OpAtomicIAdd => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef, memory: IdScope, semantics: IdMemorySemantics, value: IdRef },
2350 .OpAtomicISub => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef, memory: IdScope, semantics: IdMemorySemantics, value: IdRef },
2351 .OpAtomicSMin => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef, memory: IdScope, semantics: IdMemorySemantics, value: IdRef },
2352 .OpAtomicUMin => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef, memory: IdScope, semantics: IdMemorySemantics, value: IdRef },
2353 .OpAtomicSMax => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef, memory: IdScope, semantics: IdMemorySemantics, value: IdRef },
2354 .OpAtomicUMax => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef, memory: IdScope, semantics: IdMemorySemantics, value: IdRef },
2355 .OpAtomicAnd => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef, memory: IdScope, semantics: IdMemorySemantics, value: IdRef },
2356 .OpAtomicOr => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef, memory: IdScope, semantics: IdMemorySemantics, value: IdRef },
2357 .OpAtomicXor => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef, memory: IdScope, semantics: IdMemorySemantics, value: IdRef },
2358 .OpPhi => struct { id_result_type: IdResultType, id_result: IdResult, pair_id_ref_id_ref: []const PairIdRefIdRef = &.{} },
2359 .OpLoopMerge => struct { merge_block: IdRef, continue_target: IdRef, loop_control: LoopControl.Extended },
2360 .OpSelectionMerge => struct { merge_block: IdRef, selection_control: SelectionControl },
2361 .OpLabel => struct { id_result: IdResult },
2362 .OpBranch => struct { target_label: IdRef },
2363 .OpBranchConditional => struct { condition: IdRef, true_label: IdRef, false_label: IdRef, branch_weights: []const LiteralInteger = &.{} },
2364 .OpSwitch => struct { selector: IdRef, default: IdRef, target: []const PairLiteralIntegerIdRef = &.{} },
2472 .OpEmitStreamVertex => struct { stream: Id },
2473 .OpEndStreamPrimitive => struct { stream: Id },
2474 .OpControlBarrier => struct { execution: Id, memory: Id, semantics: Id },
2475 .OpMemoryBarrier => struct { memory: Id, semantics: Id },
2476 .OpAtomicLoad => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, semantics: Id },
2477 .OpAtomicStore => struct { pointer: Id, memory: Id, semantics: Id, value: Id },
2478 .OpAtomicExchange => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, semantics: Id, value: Id },
2479 .OpAtomicCompareExchange => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, equal: Id, unequal: Id, value: Id, comparator: Id },
2480 .OpAtomicCompareExchangeWeak => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, equal: Id, unequal: Id, value: Id, comparator: Id },
2481 .OpAtomicIIncrement => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, semantics: Id },
2482 .OpAtomicIDecrement => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, semantics: Id },
2483 .OpAtomicIAdd => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, semantics: Id, value: Id },
2484 .OpAtomicISub => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, semantics: Id, value: Id },
2485 .OpAtomicSMin => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, semantics: Id, value: Id },
2486 .OpAtomicUMin => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, semantics: Id, value: Id },
2487 .OpAtomicSMax => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, semantics: Id, value: Id },
2488 .OpAtomicUMax => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, semantics: Id, value: Id },
2489 .OpAtomicAnd => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, semantics: Id, value: Id },
2490 .OpAtomicOr => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, semantics: Id, value: Id },
2491 .OpAtomicXor => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, semantics: Id, value: Id },
2492 .OpPhi => struct { id_result_type: Id, id_result: Id, pair_id_ref_id_ref: []const PairIdRefIdRef = &.{} },
2493 .OpLoopMerge => struct { merge_block: Id, continue_target: Id, loop_control: LoopControl.Extended },
2494 .OpSelectionMerge => struct { merge_block: Id, selection_control: SelectionControl },
2495 .OpLabel => struct { id_result: Id },
2496 .OpBranch => struct { target_label: Id },
2497 .OpBranchConditional => struct { condition: Id, true_label: Id, false_label: Id, branch_weights: []const LiteralInteger = &.{} },
2498 .OpSwitch => struct { selector: Id, default: Id, target: []const PairLiteralIntegerIdRef = &.{} },
23652499 .OpKill => void,
23662500 .OpReturn => void,
2367 .OpReturnValue => struct { value: IdRef },
2501 .OpReturnValue => struct { value: Id },
23682502 .OpUnreachable => void,
2369 .OpLifetimeStart => struct { pointer: IdRef, size: LiteralInteger },
2370 .OpLifetimeStop => struct { pointer: IdRef, size: LiteralInteger },
2371 .OpGroupAsyncCopy => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, destination: IdRef, source: IdRef, num_elements: IdRef, stride: IdRef, event: IdRef },
2372 .OpGroupWaitEvents => struct { execution: IdScope, num_events: IdRef, events_list: IdRef },
2373 .OpGroupAll => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, predicate: IdRef },
2374 .OpGroupAny => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, predicate: IdRef },
2375 .OpGroupBroadcast => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, value: IdRef, localid: IdRef },
2376 .OpGroupIAdd => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, x: IdRef },
2377 .OpGroupFAdd => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, x: IdRef },
2378 .OpGroupFMin => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, x: IdRef },
2379 .OpGroupUMin => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, x: IdRef },
2380 .OpGroupSMin => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, x: IdRef },
2381 .OpGroupFMax => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, x: IdRef },
2382 .OpGroupUMax => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, x: IdRef },
2383 .OpGroupSMax => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, x: IdRef },
2384 .OpReadPipe => struct { id_result_type: IdResultType, id_result: IdResult, pipe: IdRef, pointer: IdRef, packet_size: IdRef, packet_alignment: IdRef },
2385 .OpWritePipe => struct { id_result_type: IdResultType, id_result: IdResult, pipe: IdRef, pointer: IdRef, packet_size: IdRef, packet_alignment: IdRef },
2386 .OpReservedReadPipe => struct { id_result_type: IdResultType, id_result: IdResult, pipe: IdRef, reserve_id: IdRef, index: IdRef, pointer: IdRef, packet_size: IdRef, packet_alignment: IdRef },
2387 .OpReservedWritePipe => struct { id_result_type: IdResultType, id_result: IdResult, pipe: IdRef, reserve_id: IdRef, index: IdRef, pointer: IdRef, packet_size: IdRef, packet_alignment: IdRef },
2388 .OpReserveReadPipePackets => struct { id_result_type: IdResultType, id_result: IdResult, pipe: IdRef, num_packets: IdRef, packet_size: IdRef, packet_alignment: IdRef },
2389 .OpReserveWritePipePackets => struct { id_result_type: IdResultType, id_result: IdResult, pipe: IdRef, num_packets: IdRef, packet_size: IdRef, packet_alignment: IdRef },
2390 .OpCommitReadPipe => struct { pipe: IdRef, reserve_id: IdRef, packet_size: IdRef, packet_alignment: IdRef },
2391 .OpCommitWritePipe => struct { pipe: IdRef, reserve_id: IdRef, packet_size: IdRef, packet_alignment: IdRef },
2392 .OpIsValidReserveId => struct { id_result_type: IdResultType, id_result: IdResult, reserve_id: IdRef },
2393 .OpGetNumPipePackets => struct { id_result_type: IdResultType, id_result: IdResult, pipe: IdRef, packet_size: IdRef, packet_alignment: IdRef },
2394 .OpGetMaxPipePackets => struct { id_result_type: IdResultType, id_result: IdResult, pipe: IdRef, packet_size: IdRef, packet_alignment: IdRef },
2395 .OpGroupReserveReadPipePackets => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, pipe: IdRef, num_packets: IdRef, packet_size: IdRef, packet_alignment: IdRef },
2396 .OpGroupReserveWritePipePackets => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, pipe: IdRef, num_packets: IdRef, packet_size: IdRef, packet_alignment: IdRef },
2397 .OpGroupCommitReadPipe => struct { execution: IdScope, pipe: IdRef, reserve_id: IdRef, packet_size: IdRef, packet_alignment: IdRef },
2398 .OpGroupCommitWritePipe => struct { execution: IdScope, pipe: IdRef, reserve_id: IdRef, packet_size: IdRef, packet_alignment: IdRef },
2399 .OpEnqueueMarker => struct { id_result_type: IdResultType, id_result: IdResult, queue: IdRef, num_events: IdRef, wait_events: IdRef, ret_event: IdRef },
2400 .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 = &.{} },
2401 .OpGetKernelNDrangeSubGroupCount => struct { id_result_type: IdResultType, id_result: IdResult, nd_range: IdRef, invoke: IdRef, param: IdRef, param_size: IdRef, param_align: IdRef },
2402 .OpGetKernelNDrangeMaxSubGroupSize => struct { id_result_type: IdResultType, id_result: IdResult, nd_range: IdRef, invoke: IdRef, param: IdRef, param_size: IdRef, param_align: IdRef },
2403 .OpGetKernelWorkGroupSize => struct { id_result_type: IdResultType, id_result: IdResult, invoke: IdRef, param: IdRef, param_size: IdRef, param_align: IdRef },
2404 .OpGetKernelPreferredWorkGroupSizeMultiple => struct { id_result_type: IdResultType, id_result: IdResult, invoke: IdRef, param: IdRef, param_size: IdRef, param_align: IdRef },
2405 .OpRetainEvent => struct { event: IdRef },
2406 .OpReleaseEvent => struct { event: IdRef },
2407 .OpCreateUserEvent => struct { id_result_type: IdResultType, id_result: IdResult },
2408 .OpIsValidEvent => struct { id_result_type: IdResultType, id_result: IdResult, event: IdRef },
2409 .OpSetUserEventStatus => struct { event: IdRef, status: IdRef },
2410 .OpCaptureEventProfilingInfo => struct { event: IdRef, profiling_info: IdRef, value: IdRef },
2411 .OpGetDefaultQueue => struct { id_result_type: IdResultType, id_result: IdResult },
2412 .OpBuildNDRange => struct { id_result_type: IdResultType, id_result: IdResult, globalworksize: IdRef, localworksize: IdRef, globalworkoffset: IdRef },
2413 .OpImageSparseSampleImplicitLod => struct { id_result_type: IdResultType, id_result: IdResult, sampled_image: IdRef, coordinate: IdRef, image_operands: ?ImageOperands.Extended = null },
2414 .OpImageSparseSampleExplicitLod => struct { id_result_type: IdResultType, id_result: IdResult, sampled_image: IdRef, coordinate: IdRef, image_operands: ImageOperands.Extended },
2415 .OpImageSparseSampleDrefImplicitLod => struct { id_result_type: IdResultType, id_result: IdResult, sampled_image: IdRef, coordinate: IdRef, d_ref: IdRef, image_operands: ?ImageOperands.Extended = null },
2416 .OpImageSparseSampleDrefExplicitLod => struct { id_result_type: IdResultType, id_result: IdResult, sampled_image: IdRef, coordinate: IdRef, d_ref: IdRef, image_operands: ImageOperands.Extended },
2417 .OpImageSparseSampleProjImplicitLod => struct { id_result_type: IdResultType, id_result: IdResult, sampled_image: IdRef, coordinate: IdRef, image_operands: ?ImageOperands.Extended = null },
2418 .OpImageSparseSampleProjExplicitLod => struct { id_result_type: IdResultType, id_result: IdResult, sampled_image: IdRef, coordinate: IdRef, image_operands: ImageOperands.Extended },
2419 .OpImageSparseSampleProjDrefImplicitLod => struct { id_result_type: IdResultType, id_result: IdResult, sampled_image: IdRef, coordinate: IdRef, d_ref: IdRef, image_operands: ?ImageOperands.Extended = null },
2420 .OpImageSparseSampleProjDrefExplicitLod => struct { id_result_type: IdResultType, id_result: IdResult, sampled_image: IdRef, coordinate: IdRef, d_ref: IdRef, image_operands: ImageOperands.Extended },
2421 .OpImageSparseFetch => struct { id_result_type: IdResultType, id_result: IdResult, image: IdRef, coordinate: IdRef, image_operands: ?ImageOperands.Extended = null },
2422 .OpImageSparseGather => struct { id_result_type: IdResultType, id_result: IdResult, sampled_image: IdRef, coordinate: IdRef, component: IdRef, image_operands: ?ImageOperands.Extended = null },
2423 .OpImageSparseDrefGather => struct { id_result_type: IdResultType, id_result: IdResult, sampled_image: IdRef, coordinate: IdRef, d_ref: IdRef, image_operands: ?ImageOperands.Extended = null },
2424 .OpImageSparseTexelsResident => struct { id_result_type: IdResultType, id_result: IdResult, resident_code: IdRef },
2503 .OpLifetimeStart => struct { pointer: Id, size: LiteralInteger },
2504 .OpLifetimeStop => struct { pointer: Id, size: LiteralInteger },
2505 .OpGroupAsyncCopy => struct { id_result_type: Id, id_result: Id, execution: Id, destination: Id, source: Id, num_elements: Id, stride: Id, event: Id },
2506 .OpGroupWaitEvents => struct { execution: Id, num_events: Id, events_list: Id },
2507 .OpGroupAll => struct { id_result_type: Id, id_result: Id, execution: Id, predicate: Id },
2508 .OpGroupAny => struct { id_result_type: Id, id_result: Id, execution: Id, predicate: Id },
2509 .OpGroupBroadcast => struct { id_result_type: Id, id_result: Id, execution: Id, value: Id, local_id: Id },
2510 .OpGroupIAdd => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
2511 .OpGroupFAdd => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
2512 .OpGroupFMin => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
2513 .OpGroupUMin => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
2514 .OpGroupSMin => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
2515 .OpGroupFMax => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
2516 .OpGroupUMax => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
2517 .OpGroupSMax => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
2518 .OpReadPipe => struct { id_result_type: Id, id_result: Id, pipe: Id, pointer: Id, packet_size: Id, packet_alignment: Id },
2519 .OpWritePipe => struct { id_result_type: Id, id_result: Id, pipe: Id, pointer: Id, packet_size: Id, packet_alignment: Id },
2520 .OpReservedReadPipe => struct { id_result_type: Id, id_result: Id, pipe: Id, reserve_id: Id, index: Id, pointer: Id, packet_size: Id, packet_alignment: Id },
2521 .OpReservedWritePipe => struct { id_result_type: Id, id_result: Id, pipe: Id, reserve_id: Id, index: Id, pointer: Id, packet_size: Id, packet_alignment: Id },
2522 .OpReserveReadPipePackets => struct { id_result_type: Id, id_result: Id, pipe: Id, num_packets: Id, packet_size: Id, packet_alignment: Id },
2523 .OpReserveWritePipePackets => struct { id_result_type: Id, id_result: Id, pipe: Id, num_packets: Id, packet_size: Id, packet_alignment: Id },
2524 .OpCommitReadPipe => struct { pipe: Id, reserve_id: Id, packet_size: Id, packet_alignment: Id },
2525 .OpCommitWritePipe => struct { pipe: Id, reserve_id: Id, packet_size: Id, packet_alignment: Id },
2526 .OpIsValidReserveId => struct { id_result_type: Id, id_result: Id, reserve_id: Id },
2527 .OpGetNumPipePackets => struct { id_result_type: Id, id_result: Id, pipe: Id, packet_size: Id, packet_alignment: Id },
2528 .OpGetMaxPipePackets => struct { id_result_type: Id, id_result: Id, pipe: Id, packet_size: Id, packet_alignment: Id },
2529 .OpGroupReserveReadPipePackets => struct { id_result_type: Id, id_result: Id, execution: Id, pipe: Id, num_packets: Id, packet_size: Id, packet_alignment: Id },
2530 .OpGroupReserveWritePipePackets => struct { id_result_type: Id, id_result: Id, execution: Id, pipe: Id, num_packets: Id, packet_size: Id, packet_alignment: Id },
2531 .OpGroupCommitReadPipe => struct { execution: Id, pipe: Id, reserve_id: Id, packet_size: Id, packet_alignment: Id },
2532 .OpGroupCommitWritePipe => struct { execution: Id, pipe: Id, reserve_id: Id, packet_size: Id, packet_alignment: Id },
2533 .OpEnqueueMarker => struct { id_result_type: Id, id_result: Id, queue: Id, num_events: Id, wait_events: Id, ret_event: Id },
2534 .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 = &.{} },
2535 .OpGetKernelNDrangeSubGroupCount => struct { id_result_type: Id, id_result: Id, nd_range: Id, invoke: Id, param: Id, param_size: Id, param_align: Id },
2536 .OpGetKernelNDrangeMaxSubGroupSize => struct { id_result_type: Id, id_result: Id, nd_range: Id, invoke: Id, param: Id, param_size: Id, param_align: Id },
2537 .OpGetKernelWorkGroupSize => struct { id_result_type: Id, id_result: Id, invoke: Id, param: Id, param_size: Id, param_align: Id },
2538 .OpGetKernelPreferredWorkGroupSizeMultiple => struct { id_result_type: Id, id_result: Id, invoke: Id, param: Id, param_size: Id, param_align: Id },
2539 .OpRetainEvent => struct { event: Id },
2540 .OpReleaseEvent => struct { event: Id },
2541 .OpCreateUserEvent => struct { id_result_type: Id, id_result: Id },
2542 .OpIsValidEvent => struct { id_result_type: Id, id_result: Id, event: Id },
2543 .OpSetUserEventStatus => struct { event: Id, status: Id },
2544 .OpCaptureEventProfilingInfo => struct { event: Id, profiling_info: Id, value: Id },
2545 .OpGetDefaultQueue => struct { id_result_type: Id, id_result: Id },
2546 .OpBuildNDRange => struct { id_result_type: Id, id_result: Id, global_work_size: Id, local_work_size: Id, global_work_offset: Id },
2547 .OpImageSparseSampleImplicitLod => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, image_operands: ?ImageOperands.Extended = null },
2548 .OpImageSparseSampleExplicitLod => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, image_operands: ImageOperands.Extended },
2549 .OpImageSparseSampleDrefImplicitLod => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, d_ref: Id, image_operands: ?ImageOperands.Extended = null },
2550 .OpImageSparseSampleDrefExplicitLod => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, d_ref: Id, image_operands: ImageOperands.Extended },
2551 .OpImageSparseSampleProjImplicitLod => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, image_operands: ?ImageOperands.Extended = null },
2552 .OpImageSparseSampleProjExplicitLod => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, image_operands: ImageOperands.Extended },
2553 .OpImageSparseSampleProjDrefImplicitLod => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, d_ref: Id, image_operands: ?ImageOperands.Extended = null },
2554 .OpImageSparseSampleProjDrefExplicitLod => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, d_ref: Id, image_operands: ImageOperands.Extended },
2555 .OpImageSparseFetch => struct { id_result_type: Id, id_result: Id, image: Id, coordinate: Id, image_operands: ?ImageOperands.Extended = null },
2556 .OpImageSparseGather => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, component: Id, image_operands: ?ImageOperands.Extended = null },
2557 .OpImageSparseDrefGather => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, d_ref: Id, image_operands: ?ImageOperands.Extended = null },
2558 .OpImageSparseTexelsResident => struct { id_result_type: Id, id_result: Id, resident_code: Id },
24252559 .OpNoLine => void,
2426 .OpAtomicFlagTestAndSet => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef, memory: IdScope, semantics: IdMemorySemantics },
2427 .OpAtomicFlagClear => struct { pointer: IdRef, memory: IdScope, semantics: IdMemorySemantics },
2428 .OpImageSparseRead => struct { id_result_type: IdResultType, id_result: IdResult, image: IdRef, coordinate: IdRef, image_operands: ?ImageOperands.Extended = null },
2429 .OpSizeOf => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef },
2430 .OpTypePipeStorage => struct { id_result: IdResult },
2431 .OpConstantPipeStorage => struct { id_result_type: IdResultType, id_result: IdResult, packet_size: LiteralInteger, packet_alignment: LiteralInteger, capacity: LiteralInteger },
2432 .OpCreatePipeFromPipeStorage => struct { id_result_type: IdResultType, id_result: IdResult, pipe_storage: IdRef },
2433 .OpGetKernelLocalSizeForSubgroupCount => struct { id_result_type: IdResultType, id_result: IdResult, subgroup_count: IdRef, invoke: IdRef, param: IdRef, param_size: IdRef, param_align: IdRef },
2434 .OpGetKernelMaxNumSubgroups => struct { id_result_type: IdResultType, id_result: IdResult, invoke: IdRef, param: IdRef, param_size: IdRef, param_align: IdRef },
2435 .OpTypeNamedBarrier => struct { id_result: IdResult },
2436 .OpNamedBarrierInitialize => struct { id_result_type: IdResultType, id_result: IdResult, subgroup_count: IdRef },
2437 .OpMemoryNamedBarrier => struct { named_barrier: IdRef, memory: IdScope, semantics: IdMemorySemantics },
2560 .OpAtomicFlagTestAndSet => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, semantics: Id },
2561 .OpAtomicFlagClear => struct { pointer: Id, memory: Id, semantics: Id },
2562 .OpImageSparseRead => struct { id_result_type: Id, id_result: Id, image: Id, coordinate: Id, image_operands: ?ImageOperands.Extended = null },
2563 .OpSizeOf => struct { id_result_type: Id, id_result: Id, pointer: Id },
2564 .OpTypePipeStorage => struct { id_result: Id },
2565 .OpConstantPipeStorage => struct { id_result_type: Id, id_result: Id, packet_size: LiteralInteger, packet_alignment: LiteralInteger, capacity: LiteralInteger },
2566 .OpCreatePipeFromPipeStorage => struct { id_result_type: Id, id_result: Id, pipe_storage: Id },
2567 .OpGetKernelLocalSizeForSubgroupCount => struct { id_result_type: Id, id_result: Id, subgroup_count: Id, invoke: Id, param: Id, param_size: Id, param_align: Id },
2568 .OpGetKernelMaxNumSubgroups => struct { id_result_type: Id, id_result: Id, invoke: Id, param: Id, param_size: Id, param_align: Id },
2569 .OpTypeNamedBarrier => struct { id_result: Id },
2570 .OpNamedBarrierInitialize => struct { id_result_type: Id, id_result: Id, subgroup_count: Id },
2571 .OpMemoryNamedBarrier => struct { named_barrier: Id, memory: Id, semantics: Id },
24382572 .OpModuleProcessed => struct { process: LiteralString },
2439 .OpExecutionModeId => struct { entry_point: IdRef, mode: ExecutionMode.Extended },
2440 .OpDecorateId => struct { target: IdRef, decoration: Decoration.Extended },
2441 .OpGroupNonUniformElect => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope },
2442 .OpGroupNonUniformAll => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, predicate: IdRef },
2443 .OpGroupNonUniformAny => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, predicate: IdRef },
2444 .OpGroupNonUniformAllEqual => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, value: IdRef },
2445 .OpGroupNonUniformBroadcast => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, value: IdRef, id: IdRef },
2446 .OpGroupNonUniformBroadcastFirst => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, value: IdRef },
2447 .OpGroupNonUniformBallot => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, predicate: IdRef },
2448 .OpGroupNonUniformInverseBallot => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, value: IdRef },
2449 .OpGroupNonUniformBallotBitExtract => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, value: IdRef, index: IdRef },
2450 .OpGroupNonUniformBallotBitCount => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, value: IdRef },
2451 .OpGroupNonUniformBallotFindLSB => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, value: IdRef },
2452 .OpGroupNonUniformBallotFindMSB => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, value: IdRef },
2453 .OpGroupNonUniformShuffle => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, value: IdRef, id: IdRef },
2454 .OpGroupNonUniformShuffleXor => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, value: IdRef, mask: IdRef },
2455 .OpGroupNonUniformShuffleUp => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, value: IdRef, delta: IdRef },
2456 .OpGroupNonUniformShuffleDown => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, value: IdRef, delta: IdRef },
2457 .OpGroupNonUniformIAdd => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, value: IdRef, clustersize: ?IdRef = null },
2458 .OpGroupNonUniformFAdd => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, value: IdRef, clustersize: ?IdRef = null },
2459 .OpGroupNonUniformIMul => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, value: IdRef, clustersize: ?IdRef = null },
2460 .OpGroupNonUniformFMul => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, value: IdRef, clustersize: ?IdRef = null },
2461 .OpGroupNonUniformSMin => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, value: IdRef, clustersize: ?IdRef = null },
2462 .OpGroupNonUniformUMin => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, value: IdRef, clustersize: ?IdRef = null },
2463 .OpGroupNonUniformFMin => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, value: IdRef, clustersize: ?IdRef = null },
2464 .OpGroupNonUniformSMax => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, value: IdRef, clustersize: ?IdRef = null },
2465 .OpGroupNonUniformUMax => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, value: IdRef, clustersize: ?IdRef = null },
2466 .OpGroupNonUniformFMax => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, value: IdRef, clustersize: ?IdRef = null },
2467 .OpGroupNonUniformBitwiseAnd => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, value: IdRef, clustersize: ?IdRef = null },
2468 .OpGroupNonUniformBitwiseOr => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, value: IdRef, clustersize: ?IdRef = null },
2469 .OpGroupNonUniformBitwiseXor => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, value: IdRef, clustersize: ?IdRef = null },
2470 .OpGroupNonUniformLogicalAnd => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, value: IdRef, clustersize: ?IdRef = null },
2471 .OpGroupNonUniformLogicalOr => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, value: IdRef, clustersize: ?IdRef = null },
2472 .OpGroupNonUniformLogicalXor => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, value: IdRef, clustersize: ?IdRef = null },
2473 .OpGroupNonUniformQuadBroadcast => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, value: IdRef, index: IdRef },
2474 .OpGroupNonUniformQuadSwap => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, value: IdRef, direction: IdRef },
2475 .OpCopyLogical => struct { id_result_type: IdResultType, id_result: IdResult, operand: IdRef },
2476 .OpPtrEqual => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef },
2477 .OpPtrNotEqual => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef },
2478 .OpPtrDiff => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef },
2479 .OpColorAttachmentReadEXT => struct { id_result_type: IdResultType, id_result: IdResult, attachment: IdRef, sample: ?IdRef = null },
2480 .OpDepthAttachmentReadEXT => struct { id_result_type: IdResultType, id_result: IdResult, sample: ?IdRef = null },
2481 .OpStencilAttachmentReadEXT => struct { id_result_type: IdResultType, id_result: IdResult, sample: ?IdRef = null },
2573 .OpExecutionModeId => struct { entry_point: Id, mode: ExecutionMode.Extended },
2574 .OpDecorateId => struct { target: Id, decoration: Decoration.Extended },
2575 .OpGroupNonUniformElect => struct { id_result_type: Id, id_result: Id, execution: Id },
2576 .OpGroupNonUniformAll => struct { id_result_type: Id, id_result: Id, execution: Id, predicate: Id },
2577 .OpGroupNonUniformAny => struct { id_result_type: Id, id_result: Id, execution: Id, predicate: Id },
2578 .OpGroupNonUniformAllEqual => struct { id_result_type: Id, id_result: Id, execution: Id, value: Id },
2579 .OpGroupNonUniformBroadcast => struct { id_result_type: Id, id_result: Id, execution: Id, value: Id, id: Id },
2580 .OpGroupNonUniformBroadcastFirst => struct { id_result_type: Id, id_result: Id, execution: Id, value: Id },
2581 .OpGroupNonUniformBallot => struct { id_result_type: Id, id_result: Id, execution: Id, predicate: Id },
2582 .OpGroupNonUniformInverseBallot => struct { id_result_type: Id, id_result: Id, execution: Id, value: Id },
2583 .OpGroupNonUniformBallotBitExtract => struct { id_result_type: Id, id_result: Id, execution: Id, value: Id, index: Id },
2584 .OpGroupNonUniformBallotBitCount => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, value: Id },
2585 .OpGroupNonUniformBallotFindLSB => struct { id_result_type: Id, id_result: Id, execution: Id, value: Id },
2586 .OpGroupNonUniformBallotFindMSB => struct { id_result_type: Id, id_result: Id, execution: Id, value: Id },
2587 .OpGroupNonUniformShuffle => struct { id_result_type: Id, id_result: Id, execution: Id, value: Id, id: Id },
2588 .OpGroupNonUniformShuffleXor => struct { id_result_type: Id, id_result: Id, execution: Id, value: Id, mask: Id },
2589 .OpGroupNonUniformShuffleUp => struct { id_result_type: Id, id_result: Id, execution: Id, value: Id, delta: Id },
2590 .OpGroupNonUniformShuffleDown => struct { id_result_type: Id, id_result: Id, execution: Id, value: Id, delta: Id },
2591 .OpGroupNonUniformIAdd => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, value: Id, cluster_size: ?Id = null },
2592 .OpGroupNonUniformFAdd => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, value: Id, cluster_size: ?Id = null },
2593 .OpGroupNonUniformIMul => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, value: Id, cluster_size: ?Id = null },
2594 .OpGroupNonUniformFMul => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, value: Id, cluster_size: ?Id = null },
2595 .OpGroupNonUniformSMin => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, value: Id, cluster_size: ?Id = null },
2596 .OpGroupNonUniformUMin => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, value: Id, cluster_size: ?Id = null },
2597 .OpGroupNonUniformFMin => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, value: Id, cluster_size: ?Id = null },
2598 .OpGroupNonUniformSMax => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, value: Id, cluster_size: ?Id = null },
2599 .OpGroupNonUniformUMax => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, value: Id, cluster_size: ?Id = null },
2600 .OpGroupNonUniformFMax => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, value: Id, cluster_size: ?Id = null },
2601 .OpGroupNonUniformBitwiseAnd => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, value: Id, cluster_size: ?Id = null },
2602 .OpGroupNonUniformBitwiseOr => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, value: Id, cluster_size: ?Id = null },
2603 .OpGroupNonUniformBitwiseXor => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, value: Id, cluster_size: ?Id = null },
2604 .OpGroupNonUniformLogicalAnd => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, value: Id, cluster_size: ?Id = null },
2605 .OpGroupNonUniformLogicalOr => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, value: Id, cluster_size: ?Id = null },
2606 .OpGroupNonUniformLogicalXor => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, value: Id, cluster_size: ?Id = null },
2607 .OpGroupNonUniformQuadBroadcast => struct { id_result_type: Id, id_result: Id, execution: Id, value: Id, index: Id },
2608 .OpGroupNonUniformQuadSwap => struct { id_result_type: Id, id_result: Id, execution: Id, value: Id, direction: Id },
2609 .OpCopyLogical => struct { id_result_type: Id, id_result: Id, operand: Id },
2610 .OpPtrEqual => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2611 .OpPtrNotEqual => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2612 .OpPtrDiff => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2613 .OpColorAttachmentReadEXT => struct { id_result_type: Id, id_result: Id, attachment: Id, sample: ?Id = null },
2614 .OpDepthAttachmentReadEXT => struct { id_result_type: Id, id_result: Id, sample: ?Id = null },
2615 .OpStencilAttachmentReadEXT => struct { id_result_type: Id, id_result: Id, sample: ?Id = null },
2616 .OpTypeTensorARM => struct { id_result: Id, element_type: Id, rank: ?Id = null, shape: ?Id = null },
2617 .OpTensorReadARM => struct { id_result_type: Id, id_result: Id, tensor: Id, coordinates: Id, tensor_operands: ?TensorOperands.Extended = null },
2618 .OpTensorWriteARM => struct { tensor: Id, coordinates: Id, object: Id, tensor_operands: ?TensorOperands.Extended = null },
2619 .OpTensorQuerySizeARM => struct { id_result_type: Id, id_result: Id, tensor: Id, dimension: Id },
2620 .OpGraphConstantARM => struct { id_result_type: Id, id_result: Id, graph_constant_id: LiteralInteger },
2621 .OpGraphEntryPointARM => struct { graph: Id, name: LiteralString, interface: []const Id = &.{} },
2622 .OpGraphARM => struct { id_result_type: Id, id_result: Id },
2623 .OpGraphInputARM => struct { id_result_type: Id, id_result: Id, input_index: Id, element_index: []const Id = &.{} },
2624 .OpGraphSetOutputARM => struct { value: Id, output_index: Id, element_index: []const Id = &.{} },
2625 .OpGraphEndARM => void,
2626 .OpTypeGraphARM => struct { id_result: Id, num_inputs: LiteralInteger, in_out_types: []const Id = &.{} },
24822627 .OpTerminateInvocation => void,
2483 .OpSubgroupBallotKHR => struct { id_result_type: IdResultType, id_result: IdResult, predicate: IdRef },
2484 .OpSubgroupFirstInvocationKHR => struct { id_result_type: IdResultType, id_result: IdResult, value: IdRef },
2485 .OpSubgroupAllKHR => struct { id_result_type: IdResultType, id_result: IdResult, predicate: IdRef },
2486 .OpSubgroupAnyKHR => struct { id_result_type: IdResultType, id_result: IdResult, predicate: IdRef },
2487 .OpSubgroupAllEqualKHR => struct { id_result_type: IdResultType, id_result: IdResult, predicate: IdRef },
2488 .OpGroupNonUniformRotateKHR => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, value: IdRef, delta: IdRef, clustersize: ?IdRef = null },
2489 .OpSubgroupReadInvocationKHR => struct { id_result_type: IdResultType, id_result: IdResult, value: IdRef, index: IdRef },
2490 .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 },
2491 .OpExecuteCallableKHR => struct { sbt_index: IdRef, callable_data: IdRef },
2492 .OpConvertUToAccelerationStructureKHR => struct { id_result_type: IdResultType, id_result: IdResult, accel: IdRef },
2628 .OpTypeUntypedPointerKHR => struct { id_result: Id, storage_class: StorageClass },
2629 .OpUntypedVariableKHR => struct { id_result_type: Id, id_result: Id, storage_class: StorageClass, data_type: ?Id = null, initializer: ?Id = null },
2630 .OpUntypedAccessChainKHR => struct { id_result_type: Id, id_result: Id, base_type: Id, base: Id, indexes: []const Id = &.{} },
2631 .OpUntypedInBoundsAccessChainKHR => struct { id_result_type: Id, id_result: Id, base_type: Id, base: Id, indexes: []const Id = &.{} },
2632 .OpSubgroupBallotKHR => struct { id_result_type: Id, id_result: Id, predicate: Id },
2633 .OpSubgroupFirstInvocationKHR => struct { id_result_type: Id, id_result: Id, value: Id },
2634 .OpUntypedPtrAccessChainKHR => struct { id_result_type: Id, id_result: Id, base_type: Id, base: Id, element: Id, indexes: []const Id = &.{} },
2635 .OpUntypedInBoundsPtrAccessChainKHR => struct { id_result_type: Id, id_result: Id, base_type: Id, base: Id, element: Id, indexes: []const Id = &.{} },
2636 .OpUntypedArrayLengthKHR => struct { id_result_type: Id, id_result: Id, structure: Id, pointer: Id, array_member: LiteralInteger },
2637 .OpUntypedPrefetchKHR => struct { pointer_type: Id, num_bytes: Id, rw: ?Id = null, locality: ?Id = null, cache_type: ?Id = null },
2638 .OpSubgroupAllKHR => struct { id_result_type: Id, id_result: Id, predicate: Id },
2639 .OpSubgroupAnyKHR => struct { id_result_type: Id, id_result: Id, predicate: Id },
2640 .OpSubgroupAllEqualKHR => struct { id_result_type: Id, id_result: Id, predicate: Id },
2641 .OpGroupNonUniformRotateKHR => struct { id_result_type: Id, id_result: Id, execution: Id, value: Id, delta: Id, cluster_size: ?Id = null },
2642 .OpSubgroupReadInvocationKHR => struct { id_result_type: Id, id_result: Id, value: Id, index: Id },
2643 .OpExtInstWithForwardRefsKHR => struct { id_result_type: Id, id_result: Id, set: Id, instruction: LiteralExtInstInteger, id_ref_4: []const Id = &.{} },
2644 .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 },
2645 .OpExecuteCallableKHR => struct { sbt_index: Id, callable_data: Id },
2646 .OpConvertUToAccelerationStructureKHR => struct { id_result_type: Id, id_result: Id, accel: Id },
24932647 .OpIgnoreIntersectionKHR => void,
24942648 .OpTerminateRayKHR => void,
2495 .OpSDot => struct { id_result_type: IdResultType, id_result: IdResult, vector_1: IdRef, vector_2: IdRef, packed_vector_format: ?PackedVectorFormat = null },
2496 .OpUDot => struct { id_result_type: IdResultType, id_result: IdResult, vector_1: IdRef, vector_2: IdRef, packed_vector_format: ?PackedVectorFormat = null },
2497 .OpSUDot => struct { id_result_type: IdResultType, id_result: IdResult, vector_1: IdRef, vector_2: IdRef, packed_vector_format: ?PackedVectorFormat = null },
2498 .OpSDotAccSat => struct { id_result_type: IdResultType, id_result: IdResult, vector_1: IdRef, vector_2: IdRef, accumulator: IdRef, packed_vector_format: ?PackedVectorFormat = null },
2499 .OpUDotAccSat => struct { id_result_type: IdResultType, id_result: IdResult, vector_1: IdRef, vector_2: IdRef, accumulator: IdRef, packed_vector_format: ?PackedVectorFormat = null },
2500 .OpSUDotAccSat => struct { id_result_type: IdResultType, id_result: IdResult, vector_1: IdRef, vector_2: IdRef, accumulator: IdRef, packed_vector_format: ?PackedVectorFormat = null },
2501 .OpTypeCooperativeMatrixKHR => struct { id_result: IdResult, component_type: IdRef, scope: IdScope, rows: IdRef, columns: IdRef, use: IdRef },
2502 .OpCooperativeMatrixLoadKHR => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef, memorylayout: IdRef, stride: ?IdRef = null, memory_operand: ?MemoryAccess.Extended = null },
2503 .OpCooperativeMatrixStoreKHR => struct { pointer: IdRef, object: IdRef, memorylayout: IdRef, stride: ?IdRef = null, memory_operand: ?MemoryAccess.Extended = null },
2504 .OpCooperativeMatrixMulAddKHR => struct { id_result_type: IdResultType, id_result: IdResult, a: IdRef, b: IdRef, c: IdRef, cooperative_matrix_operands: ?CooperativeMatrixOperands = null },
2505 .OpCooperativeMatrixLengthKHR => struct { id_result_type: IdResultType, id_result: IdResult, type: IdRef },
2506 .OpTypeRayQueryKHR => struct { id_result: IdResult },
2507 .OpRayQueryInitializeKHR => struct { rayquery: IdRef, accel: IdRef, rayflags: IdRef, cullmask: IdRef, rayorigin: IdRef, raytmin: IdRef, raydirection: IdRef, raytmax: IdRef },
2508 .OpRayQueryTerminateKHR => struct { rayquery: IdRef },
2509 .OpRayQueryGenerateIntersectionKHR => struct { rayquery: IdRef, hitt: IdRef },
2510 .OpRayQueryConfirmIntersectionKHR => struct { rayquery: IdRef },
2511 .OpRayQueryProceedKHR => struct { id_result_type: IdResultType, id_result: IdResult, rayquery: IdRef },
2512 .OpRayQueryGetIntersectionTypeKHR => struct { id_result_type: IdResultType, id_result: IdResult, rayquery: IdRef, intersection: IdRef },
2513 .OpImageSampleWeightedQCOM => struct { id_result_type: IdResultType, id_result: IdResult, texture: IdRef, coordinates: IdRef, weights: IdRef },
2514 .OpImageBoxFilterQCOM => struct { id_result_type: IdResultType, id_result: IdResult, texture: IdRef, coordinates: IdRef, box_size: IdRef },
2515 .OpImageBlockMatchSSDQCOM => struct { id_result_type: IdResultType, id_result: IdResult, target: IdRef, target_coordinates: IdRef, reference: IdRef, reference_coordinates: IdRef, block_size: IdRef },
2516 .OpImageBlockMatchSADQCOM => struct { id_result_type: IdResultType, id_result: IdResult, target: IdRef, target_coordinates: IdRef, reference: IdRef, reference_coordinates: IdRef, block_size: IdRef },
2517 .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 },
2518 .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 },
2519 .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 },
2520 .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 },
2521 .OpGroupIAddNonUniformAMD => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, x: IdRef },
2522 .OpGroupFAddNonUniformAMD => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, x: IdRef },
2523 .OpGroupFMinNonUniformAMD => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, x: IdRef },
2524 .OpGroupUMinNonUniformAMD => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, x: IdRef },
2525 .OpGroupSMinNonUniformAMD => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, x: IdRef },
2526 .OpGroupFMaxNonUniformAMD => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, x: IdRef },
2527 .OpGroupUMaxNonUniformAMD => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, x: IdRef },
2528 .OpGroupSMaxNonUniformAMD => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, x: IdRef },
2529 .OpFragmentMaskFetchAMD => struct { id_result_type: IdResultType, id_result: IdResult, image: IdRef, coordinate: IdRef },
2530 .OpFragmentFetchAMD => struct { id_result_type: IdResultType, id_result: IdResult, image: IdRef, coordinate: IdRef, fragment_index: IdRef },
2531 .OpReadClockKHR => struct { id_result_type: IdResultType, id_result: IdResult, scope: IdScope },
2532 .OpFinalizeNodePayloadsAMDX => struct { payload_array: IdRef },
2533 .OpFinishWritingNodePayloadAMDX => struct { id_result_type: IdResultType, id_result: IdResult, payload: IdRef },
2534 .OpInitializeNodePayloadsAMDX => struct { payload_array: IdRef, visibility: IdScope, payload_count: IdRef, node_index: IdRef },
2535 .OpGroupNonUniformQuadAllKHR => struct { id_result_type: IdResultType, id_result: IdResult, predicate: IdRef },
2536 .OpGroupNonUniformQuadAnyKHR => struct { id_result_type: IdResultType, id_result: IdResult, predicate: IdRef },
2537 .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 },
2538 .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 },
2539 .OpHitObjectRecordMissMotionNV => struct { hit_object: IdRef, sbt_index: IdRef, origin: IdRef, tmin: IdRef, direction: IdRef, tmax: IdRef, current_time: IdRef },
2540 .OpHitObjectGetWorldToObjectNV => struct { id_result_type: IdResultType, id_result: IdResult, hit_object: IdRef },
2541 .OpHitObjectGetObjectToWorldNV => struct { id_result_type: IdResultType, id_result: IdResult, hit_object: IdRef },
2542 .OpHitObjectGetObjectRayDirectionNV => struct { id_result_type: IdResultType, id_result: IdResult, hit_object: IdRef },
2543 .OpHitObjectGetObjectRayOriginNV => struct { id_result_type: IdResultType, id_result: IdResult, hit_object: IdRef },
2544 .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 },
2545 .OpHitObjectGetShaderRecordBufferHandleNV => struct { id_result_type: IdResultType, id_result: IdResult, hit_object: IdRef },
2546 .OpHitObjectGetShaderBindingTableRecordIndexNV => struct { id_result_type: IdResultType, id_result: IdResult, hit_object: IdRef },
2547 .OpHitObjectRecordEmptyNV => struct { hit_object: IdRef },
2548 .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 },
2549 .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 },
2550 .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 },
2551 .OpHitObjectRecordMissNV => struct { hit_object: IdRef, sbt_index: IdRef, origin: IdRef, tmin: IdRef, direction: IdRef, tmax: IdRef },
2552 .OpHitObjectExecuteShaderNV => struct { hit_object: IdRef, payload: IdRef },
2553 .OpHitObjectGetCurrentTimeNV => struct { id_result_type: IdResultType, id_result: IdResult, hit_object: IdRef },
2554 .OpHitObjectGetAttributesNV => struct { hit_object: IdRef, hit_object_attribute: IdRef },
2555 .OpHitObjectGetHitKindNV => struct { id_result_type: IdResultType, id_result: IdResult, hit_object: IdRef },
2556 .OpHitObjectGetPrimitiveIndexNV => struct { id_result_type: IdResultType, id_result: IdResult, hit_object: IdRef },
2557 .OpHitObjectGetGeometryIndexNV => struct { id_result_type: IdResultType, id_result: IdResult, hit_object: IdRef },
2558 .OpHitObjectGetInstanceIdNV => struct { id_result_type: IdResultType, id_result: IdResult, hit_object: IdRef },
2559 .OpHitObjectGetInstanceCustomIndexNV => struct { id_result_type: IdResultType, id_result: IdResult, hit_object: IdRef },
2560 .OpHitObjectGetWorldRayDirectionNV => struct { id_result_type: IdResultType, id_result: IdResult, hit_object: IdRef },
2561 .OpHitObjectGetWorldRayOriginNV => struct { id_result_type: IdResultType, id_result: IdResult, hit_object: IdRef },
2562 .OpHitObjectGetRayTMaxNV => struct { id_result_type: IdResultType, id_result: IdResult, hit_object: IdRef },
2563 .OpHitObjectGetRayTMinNV => struct { id_result_type: IdResultType, id_result: IdResult, hit_object: IdRef },
2564 .OpHitObjectIsEmptyNV => struct { id_result_type: IdResultType, id_result: IdResult, hit_object: IdRef },
2565 .OpHitObjectIsHitNV => struct { id_result_type: IdResultType, id_result: IdResult, hit_object: IdRef },
2566 .OpHitObjectIsMissNV => struct { id_result_type: IdResultType, id_result: IdResult, hit_object: IdRef },
2567 .OpReorderThreadWithHitObjectNV => struct { hit_object: IdRef, hint: ?IdRef = null, bits: ?IdRef = null },
2568 .OpReorderThreadWithHintNV => struct { hint: IdRef, bits: IdRef },
2569 .OpTypeHitObjectNV => struct { id_result: IdResult },
2570 .OpImageSampleFootprintNV => struct { id_result_type: IdResultType, id_result: IdResult, sampled_image: IdRef, coordinate: IdRef, granularity: IdRef, coarse: IdRef, image_operands: ?ImageOperands.Extended = null },
2571 .OpEmitMeshTasksEXT => struct { group_count_x: IdRef, group_count_y: IdRef, group_count_z: IdRef, payload: ?IdRef = null },
2572 .OpSetMeshOutputsEXT => struct { vertex_count: IdRef, primitive_count: IdRef },
2573 .OpGroupNonUniformPartitionNV => struct { id_result_type: IdResultType, id_result: IdResult, value: IdRef },
2574 .OpWritePackedPrimitiveIndices4x8NV => struct { index_offset: IdRef, packed_indices: IdRef },
2575 .OpFetchMicroTriangleVertexPositionNV => struct { id_result_type: IdResultType, id_result: IdResult, accel: IdRef, instance_id: IdRef, geometry_index: IdRef, primitive_index: IdRef, barycentric: IdRef },
2576 .OpFetchMicroTriangleVertexBarycentricNV => struct { id_result_type: IdResultType, id_result: IdResult, accel: IdRef, instance_id: IdRef, geometry_index: IdRef, primitive_index: IdRef, barycentric: IdRef },
2577 .OpReportIntersectionKHR => struct { id_result_type: IdResultType, id_result: IdResult, hit: IdRef, hitkind: IdRef },
2649 .OpSDot => struct { id_result_type: Id, id_result: Id, vector_1: Id, vector_2: Id, packed_vector_format: ?PackedVectorFormat = null },
2650 .OpUDot => struct { id_result_type: Id, id_result: Id, vector_1: Id, vector_2: Id, packed_vector_format: ?PackedVectorFormat = null },
2651 .OpSUDot => struct { id_result_type: Id, id_result: Id, vector_1: Id, vector_2: Id, packed_vector_format: ?PackedVectorFormat = null },
2652 .OpSDotAccSat => struct { id_result_type: Id, id_result: Id, vector_1: Id, vector_2: Id, accumulator: Id, packed_vector_format: ?PackedVectorFormat = null },
2653 .OpUDotAccSat => struct { id_result_type: Id, id_result: Id, vector_1: Id, vector_2: Id, accumulator: Id, packed_vector_format: ?PackedVectorFormat = null },
2654 .OpSUDotAccSat => struct { id_result_type: Id, id_result: Id, vector_1: Id, vector_2: Id, accumulator: Id, packed_vector_format: ?PackedVectorFormat = null },
2655 .OpTypeCooperativeMatrixKHR => struct { id_result: Id, component_type: Id, scope: Id, rows: Id, columns: Id, use: Id },
2656 .OpCooperativeMatrixLoadKHR => struct { id_result_type: Id, id_result: Id, pointer: Id, memory_layout: Id, stride: ?Id = null, memory_operand: ?MemoryAccess.Extended = null },
2657 .OpCooperativeMatrixStoreKHR => struct { pointer: Id, object: Id, memory_layout: Id, stride: ?Id = null, memory_operand: ?MemoryAccess.Extended = null },
2658 .OpCooperativeMatrixMulAddKHR => struct { id_result_type: Id, id_result: Id, a: Id, b: Id, c: Id, cooperative_matrix_operands: ?CooperativeMatrixOperands = null },
2659 .OpCooperativeMatrixLengthKHR => struct { id_result_type: Id, id_result: Id, type: Id },
2660 .OpConstantCompositeReplicateEXT => struct { id_result_type: Id, id_result: Id, value: Id },
2661 .OpSpecConstantCompositeReplicateEXT => struct { id_result_type: Id, id_result: Id, value: Id },
2662 .OpCompositeConstructReplicateEXT => struct { id_result_type: Id, id_result: Id, value: Id },
2663 .OpTypeRayQueryKHR => struct { id_result: Id },
2664 .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 },
2665 .OpRayQueryTerminateKHR => struct { ray_query: Id },
2666 .OpRayQueryGenerateIntersectionKHR => struct { ray_query: Id, hit_t: Id },
2667 .OpRayQueryConfirmIntersectionKHR => struct { ray_query: Id },
2668 .OpRayQueryProceedKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id },
2669 .OpRayQueryGetIntersectionTypeKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id },
2670 .OpImageSampleWeightedQCOM => struct { id_result_type: Id, id_result: Id, texture: Id, coordinates: Id, weights: Id },
2671 .OpImageBoxFilterQCOM => struct { id_result_type: Id, id_result: Id, texture: Id, coordinates: Id, box_size: Id },
2672 .OpImageBlockMatchSSDQCOM => struct { id_result_type: Id, id_result: Id, target: Id, target_coordinates: Id, reference: Id, reference_coordinates: Id, block_size: Id },
2673 .OpImageBlockMatchSADQCOM => struct { id_result_type: Id, id_result: Id, target: Id, target_coordinates: Id, reference: Id, reference_coordinates: Id, block_size: Id },
2674 .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 },
2675 .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 },
2676 .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 },
2677 .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 },
2678 .OpGroupIAddNonUniformAMD => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
2679 .OpGroupFAddNonUniformAMD => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
2680 .OpGroupFMinNonUniformAMD => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
2681 .OpGroupUMinNonUniformAMD => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
2682 .OpGroupSMinNonUniformAMD => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
2683 .OpGroupFMaxNonUniformAMD => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
2684 .OpGroupUMaxNonUniformAMD => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
2685 .OpGroupSMaxNonUniformAMD => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
2686 .OpFragmentMaskFetchAMD => struct { id_result_type: Id, id_result: Id, image: Id, coordinate: Id },
2687 .OpFragmentFetchAMD => struct { id_result_type: Id, id_result: Id, image: Id, coordinate: Id, fragment_index: Id },
2688 .OpReadClockKHR => struct { id_result_type: Id, id_result: Id, scope: Id },
2689 .OpAllocateNodePayloadsAMDX => struct { id_result_type: Id, id_result: Id, visibility: Id, payload_count: Id, node_index: Id },
2690 .OpEnqueueNodePayloadsAMDX => struct { payload_array: Id },
2691 .OpTypeNodePayloadArrayAMDX => struct { id_result: Id, payload_type: Id },
2692 .OpFinishWritingNodePayloadAMDX => struct { id_result_type: Id, id_result: Id, payload: Id },
2693 .OpNodePayloadArrayLengthAMDX => struct { id_result_type: Id, id_result: Id, payload_array: Id },
2694 .OpIsNodePayloadValidAMDX => struct { id_result_type: Id, id_result: Id, payload_type: Id, node_index: Id },
2695 .OpConstantStringAMDX => struct { id_result: Id, literal_string: LiteralString },
2696 .OpSpecConstantStringAMDX => struct { id_result: Id, literal_string: LiteralString },
2697 .OpGroupNonUniformQuadAllKHR => struct { id_result_type: Id, id_result: Id, predicate: Id },
2698 .OpGroupNonUniformQuadAnyKHR => struct { id_result_type: Id, id_result: Id, predicate: Id },
2699 .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 },
2700 .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 },
2701 .OpHitObjectRecordMissMotionNV => struct { hit_object: Id, sbt_index: Id, origin: Id, t_min: Id, direction: Id, t_max: Id, current_time: Id },
2702 .OpHitObjectGetWorldToObjectNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2703 .OpHitObjectGetObjectToWorldNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2704 .OpHitObjectGetObjectRayDirectionNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2705 .OpHitObjectGetObjectRayOriginNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2706 .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 },
2707 .OpHitObjectGetShaderRecordBufferHandleNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2708 .OpHitObjectGetShaderBindingTableRecordIndexNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2709 .OpHitObjectRecordEmptyNV => struct { hit_object: Id },
2710 .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 },
2711 .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 },
2712 .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 },
2713 .OpHitObjectRecordMissNV => struct { hit_object: Id, sbt_index: Id, origin: Id, t_min: Id, direction: Id, t_max: Id },
2714 .OpHitObjectExecuteShaderNV => struct { hit_object: Id, payload: Id },
2715 .OpHitObjectGetCurrentTimeNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2716 .OpHitObjectGetAttributesNV => struct { hit_object: Id, hit_object_attribute: Id },
2717 .OpHitObjectGetHitKindNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2718 .OpHitObjectGetPrimitiveIndexNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2719 .OpHitObjectGetGeometryIndexNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2720 .OpHitObjectGetInstanceIdNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2721 .OpHitObjectGetInstanceCustomIndexNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2722 .OpHitObjectGetWorldRayDirectionNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2723 .OpHitObjectGetWorldRayOriginNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2724 .OpHitObjectGetRayTMaxNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2725 .OpHitObjectGetRayTMinNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2726 .OpHitObjectIsEmptyNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2727 .OpHitObjectIsHitNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2728 .OpHitObjectIsMissNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2729 .OpReorderThreadWithHitObjectNV => struct { hit_object: Id, hint: ?Id = null, bits: ?Id = null },
2730 .OpReorderThreadWithHintNV => struct { hint: Id, bits: Id },
2731 .OpTypeHitObjectNV => struct { id_result: Id },
2732 .OpImageSampleFootprintNV => struct { id_result_type: Id, id_result: Id, sampled_image: Id, coordinate: Id, granularity: Id, coarse: Id, image_operands: ?ImageOperands.Extended = null },
2733 .OpTypeCooperativeVectorNV => struct { id_result: Id, component_type: Id, component_count: Id },
2734 .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 },
2735 .OpCooperativeVectorOuterProductAccumulateNV => struct { pointer: Id, offset: Id, a: Id, b: Id, memory_layout: Id, matrix_interpretation: Id, matrix_stride: ?Id = null },
2736 .OpCooperativeVectorReduceSumAccumulateNV => struct { pointer: Id, offset: Id, v: Id },
2737 .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 },
2738 .OpCooperativeMatrixConvertNV => struct { id_result_type: Id, id_result: Id, matrix: Id },
2739 .OpEmitMeshTasksEXT => struct { group_count_x: Id, group_count_y: Id, group_count_z: Id, payload: ?Id = null },
2740 .OpSetMeshOutputsEXT => struct { vertex_count: Id, primitive_count: Id },
2741 .OpGroupNonUniformPartitionNV => struct { id_result_type: Id, id_result: Id, value: Id },
2742 .OpWritePackedPrimitiveIndices4x8NV => struct { index_offset: Id, packed_indices: Id },
2743 .OpFetchMicroTriangleVertexPositionNV => struct { id_result_type: Id, id_result: Id, accel: Id, instance_id: Id, geometry_index: Id, primitive_index: Id, barycentric: Id },
2744 .OpFetchMicroTriangleVertexBarycentricNV => struct { id_result_type: Id, id_result: Id, accel: Id, instance_id: Id, geometry_index: Id, primitive_index: Id, barycentric: Id },
2745 .OpCooperativeVectorLoadNV => struct { id_result_type: Id, id_result: Id, pointer: Id, offset: Id, memory_access: ?MemoryAccess.Extended = null },
2746 .OpCooperativeVectorStoreNV => struct { pointer: Id, offset: Id, object: Id, memory_access: ?MemoryAccess.Extended = null },
2747 .OpReportIntersectionKHR => struct { id_result_type: Id, id_result: Id, hit: Id, hit_kind: Id },
25782748 .OpIgnoreIntersectionNV => void,
25792749 .OpTerminateRayNV => void,
2580 .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 },
2581 .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 },
2582 .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 },
2583 .OpRayQueryGetIntersectionTriangleVertexPositionsKHR => struct { id_result_type: IdResultType, id_result: IdResult, rayquery: IdRef, intersection: IdRef },
2584 .OpTypeAccelerationStructureKHR => struct { id_result: IdResult },
2585 .OpExecuteCallableNV => struct { sbt_index: IdRef, callable_dataid: IdRef },
2586 .OpTypeCooperativeMatrixNV => struct { id_result: IdResult, component_type: IdRef, execution: IdScope, rows: IdRef, columns: IdRef },
2587 .OpCooperativeMatrixLoadNV => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef, stride: IdRef, column_major: IdRef, memory_access: ?MemoryAccess.Extended = null },
2588 .OpCooperativeMatrixStoreNV => struct { pointer: IdRef, object: IdRef, stride: IdRef, column_major: IdRef, memory_access: ?MemoryAccess.Extended = null },
2589 .OpCooperativeMatrixMulAddNV => struct { id_result_type: IdResultType, id_result: IdResult, a: IdRef, b: IdRef, c: IdRef },
2590 .OpCooperativeMatrixLengthNV => struct { id_result_type: IdResultType, id_result: IdResult, type: IdRef },
2750 .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 },
2751 .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 },
2752 .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 },
2753 .OpRayQueryGetIntersectionTriangleVertexPositionsKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id },
2754 .OpTypeAccelerationStructureKHR => struct { id_result: Id },
2755 .OpExecuteCallableNV => struct { sbt_index: Id, callable_data_id: Id },
2756 .OpRayQueryGetClusterIdNV => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id },
2757 .OpHitObjectGetClusterIdNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2758 .OpTypeCooperativeMatrixNV => struct { id_result: Id, component_type: Id, execution: Id, rows: Id, columns: Id },
2759 .OpCooperativeMatrixLoadNV => struct { id_result_type: Id, id_result: Id, pointer: Id, stride: Id, column_major: Id, memory_access: ?MemoryAccess.Extended = null },
2760 .OpCooperativeMatrixStoreNV => struct { pointer: Id, object: Id, stride: Id, column_major: Id, memory_access: ?MemoryAccess.Extended = null },
2761 .OpCooperativeMatrixMulAddNV => struct { id_result_type: Id, id_result: Id, a: Id, b: Id, c: Id },
2762 .OpCooperativeMatrixLengthNV => struct { id_result_type: Id, id_result: Id, type: Id },
25912763 .OpBeginInvocationInterlockEXT => void,
25922764 .OpEndInvocationInterlockEXT => void,
2765 .OpCooperativeMatrixReduceNV => struct { id_result_type: Id, id_result: Id, matrix: Id, reduce: CooperativeMatrixReduce, combine_func: Id },
2766 .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 },
2767 .OpCooperativeMatrixStoreTensorNV => struct { pointer: Id, object: Id, tensor_layout: Id, memory_operand: MemoryAccess.Extended, tensor_addressing_operands: TensorAddressingOperands.Extended },
2768 .OpCooperativeMatrixPerElementOpNV => struct { id_result_type: Id, id_result: Id, matrix: Id, func: Id, operands: []const Id = &.{} },
2769 .OpTypeTensorLayoutNV => struct { id_result: Id, dim: Id, clamp_mode: Id },
2770 .OpTypeTensorViewNV => struct { id_result: Id, dim: Id, has_dimensions: Id, p: []const Id = &.{} },
2771 .OpCreateTensorLayoutNV => struct { id_result_type: Id, id_result: Id },
2772 .OpTensorLayoutSetDimensionNV => struct { id_result_type: Id, id_result: Id, tensor_layout: Id, dim: []const Id = &.{} },
2773 .OpTensorLayoutSetStrideNV => struct { id_result_type: Id, id_result: Id, tensor_layout: Id, stride: []const Id = &.{} },
2774 .OpTensorLayoutSliceNV => struct { id_result_type: Id, id_result: Id, tensor_layout: Id, operands: []const Id = &.{} },
2775 .OpTensorLayoutSetClampValueNV => struct { id_result_type: Id, id_result: Id, tensor_layout: Id, value: Id },
2776 .OpCreateTensorViewNV => struct { id_result_type: Id, id_result: Id },
2777 .OpTensorViewSetDimensionNV => struct { id_result_type: Id, id_result: Id, tensor_view: Id, dim: []const Id = &.{} },
2778 .OpTensorViewSetStrideNV => struct { id_result_type: Id, id_result: Id, tensor_view: Id, stride: []const Id = &.{} },
25932779 .OpDemoteToHelperInvocation => void,
2594 .OpIsHelperInvocationEXT => struct { id_result_type: IdResultType, id_result: IdResult },
2595 .OpConvertUToImageNV => struct { id_result_type: IdResultType, id_result: IdResult, operand: IdRef },
2596 .OpConvertUToSamplerNV => struct { id_result_type: IdResultType, id_result: IdResult, operand: IdRef },
2597 .OpConvertImageToUNV => struct { id_result_type: IdResultType, id_result: IdResult, operand: IdRef },
2598 .OpConvertSamplerToUNV => struct { id_result_type: IdResultType, id_result: IdResult, operand: IdRef },
2599 .OpConvertUToSampledImageNV => struct { id_result_type: IdResultType, id_result: IdResult, operand: IdRef },
2600 .OpConvertSampledImageToUNV => struct { id_result_type: IdResultType, id_result: IdResult, operand: IdRef },
2780 .OpIsHelperInvocationEXT => struct { id_result_type: Id, id_result: Id },
2781 .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 },
2782 .OpTensorLayoutSetBlockSizeNV => struct { id_result_type: Id, id_result: Id, tensor_layout: Id, block_size: []const Id = &.{} },
2783 .OpCooperativeMatrixTransposeNV => struct { id_result_type: Id, id_result: Id, matrix: Id },
2784 .OpConvertUToImageNV => struct { id_result_type: Id, id_result: Id, operand: Id },
2785 .OpConvertUToSamplerNV => struct { id_result_type: Id, id_result: Id, operand: Id },
2786 .OpConvertImageToUNV => struct { id_result_type: Id, id_result: Id, operand: Id },
2787 .OpConvertSamplerToUNV => struct { id_result_type: Id, id_result: Id, operand: Id },
2788 .OpConvertUToSampledImageNV => struct { id_result_type: Id, id_result: Id, operand: Id },
2789 .OpConvertSampledImageToUNV => struct { id_result_type: Id, id_result: Id, operand: Id },
26012790 .OpSamplerImageAddressingModeNV => struct { bit_width: LiteralInteger },
2602 .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 },
2603 .OpSubgroupShuffleINTEL => struct { id_result_type: IdResultType, id_result: IdResult, data: IdRef, invocationid: IdRef },
2604 .OpSubgroupShuffleDownINTEL => struct { id_result_type: IdResultType, id_result: IdResult, current: IdRef, next: IdRef, delta: IdRef },
2605 .OpSubgroupShuffleUpINTEL => struct { id_result_type: IdResultType, id_result: IdResult, previous: IdRef, current: IdRef, delta: IdRef },
2606 .OpSubgroupShuffleXorINTEL => struct { id_result_type: IdResultType, id_result: IdResult, data: IdRef, value: IdRef },
2607 .OpSubgroupBlockReadINTEL => struct { id_result_type: IdResultType, id_result: IdResult, ptr: IdRef },
2608 .OpSubgroupBlockWriteINTEL => struct { ptr: IdRef, data: IdRef },
2609 .OpSubgroupImageBlockReadINTEL => struct { id_result_type: IdResultType, id_result: IdResult, image: IdRef, coordinate: IdRef },
2610 .OpSubgroupImageBlockWriteINTEL => struct { image: IdRef, coordinate: IdRef, data: IdRef },
2611 .OpSubgroupImageMediaBlockReadINTEL => struct { id_result_type: IdResultType, id_result: IdResult, image: IdRef, coordinate: IdRef, width: IdRef, height: IdRef },
2612 .OpSubgroupImageMediaBlockWriteINTEL => struct { image: IdRef, coordinate: IdRef, width: IdRef, height: IdRef, data: IdRef },
2613 .OpUCountLeadingZerosINTEL => struct { id_result_type: IdResultType, id_result: IdResult, operand: IdRef },
2614 .OpUCountTrailingZerosINTEL => struct { id_result_type: IdResultType, id_result: IdResult, operand: IdRef },
2615 .OpAbsISubINTEL => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef },
2616 .OpAbsUSubINTEL => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef },
2617 .OpIAddSatINTEL => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef },
2618 .OpUAddSatINTEL => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef },
2619 .OpIAverageINTEL => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef },
2620 .OpUAverageINTEL => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef },
2621 .OpIAverageRoundedINTEL => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef },
2622 .OpUAverageRoundedINTEL => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef },
2623 .OpISubSatINTEL => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef },
2624 .OpUSubSatINTEL => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef },
2625 .OpIMul32x16INTEL => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef },
2626 .OpUMul32x16INTEL => struct { id_result_type: IdResultType, id_result: IdResult, operand_1: IdRef, operand_2: IdRef },
2627 .OpAtomicFMinEXT => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef, memory: IdScope, semantics: IdMemorySemantics, value: IdRef },
2628 .OpAtomicFMaxEXT => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef, memory: IdScope, semantics: IdMemorySemantics, value: IdRef },
2629 .OpAssumeTrueKHR => struct { condition: IdRef },
2630 .OpExpectKHR => struct { id_result_type: IdResultType, id_result: IdResult, value: IdRef, expectedvalue: IdRef },
2631 .OpDecorateString => struct { target: IdRef, decoration: Decoration.Extended },
2632 .OpMemberDecorateString => struct { struct_type: IdRef, member: LiteralInteger, decoration: Decoration.Extended },
2791 .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 },
2792 .OpRayQueryGetIntersectionSpherePositionNV => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id },
2793 .OpRayQueryGetIntersectionSphereRadiusNV => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id },
2794 .OpRayQueryGetIntersectionLSSPositionsNV => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id },
2795 .OpRayQueryGetIntersectionLSSRadiiNV => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id },
2796 .OpRayQueryGetIntersectionLSSHitValueNV => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id },
2797 .OpHitObjectGetSpherePositionNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2798 .OpHitObjectGetSphereRadiusNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2799 .OpHitObjectGetLSSPositionsNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2800 .OpHitObjectGetLSSRadiiNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2801 .OpHitObjectIsSphereHitNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2802 .OpHitObjectIsLSSHitNV => struct { id_result_type: Id, id_result: Id, hit_object: Id },
2803 .OpRayQueryIsSphereHitNV => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id },
2804 .OpRayQueryIsLSSHitNV => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id },
2805 .OpSubgroupShuffleINTEL => struct { id_result_type: Id, id_result: Id, data: Id, invocation_id: Id },
2806 .OpSubgroupShuffleDownINTEL => struct { id_result_type: Id, id_result: Id, current: Id, next: Id, delta: Id },
2807 .OpSubgroupShuffleUpINTEL => struct { id_result_type: Id, id_result: Id, previous: Id, current: Id, delta: Id },
2808 .OpSubgroupShuffleXorINTEL => struct { id_result_type: Id, id_result: Id, data: Id, value: Id },
2809 .OpSubgroupBlockReadINTEL => struct { id_result_type: Id, id_result: Id, ptr: Id },
2810 .OpSubgroupBlockWriteINTEL => struct { ptr: Id, data: Id },
2811 .OpSubgroupImageBlockReadINTEL => struct { id_result_type: Id, id_result: Id, image: Id, coordinate: Id },
2812 .OpSubgroupImageBlockWriteINTEL => struct { image: Id, coordinate: Id, data: Id },
2813 .OpSubgroupImageMediaBlockReadINTEL => struct { id_result_type: Id, id_result: Id, image: Id, coordinate: Id, width: Id, height: Id },
2814 .OpSubgroupImageMediaBlockWriteINTEL => struct { image: Id, coordinate: Id, width: Id, height: Id, data: Id },
2815 .OpUCountLeadingZerosINTEL => struct { id_result_type: Id, id_result: Id, operand: Id },
2816 .OpUCountTrailingZerosINTEL => struct { id_result_type: Id, id_result: Id, operand: Id },
2817 .OpAbsISubINTEL => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2818 .OpAbsUSubINTEL => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2819 .OpIAddSatINTEL => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2820 .OpUAddSatINTEL => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2821 .OpIAverageINTEL => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2822 .OpUAverageINTEL => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2823 .OpIAverageRoundedINTEL => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2824 .OpUAverageRoundedINTEL => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2825 .OpISubSatINTEL => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2826 .OpUSubSatINTEL => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2827 .OpIMul32x16INTEL => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2828 .OpUMul32x16INTEL => struct { id_result_type: Id, id_result: Id, operand_1: Id, operand_2: Id },
2829 .OpAtomicFMinEXT => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, semantics: Id, value: Id },
2830 .OpAtomicFMaxEXT => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, semantics: Id, value: Id },
2831 .OpAssumeTrueKHR => struct { condition: Id },
2832 .OpExpectKHR => struct { id_result_type: Id, id_result: Id, value: Id, expected_value: Id },
2833 .OpDecorateString => struct { target: Id, decoration: Decoration.Extended },
2834 .OpMemberDecorateString => struct { struct_type: Id, member: LiteralInteger, decoration: Decoration.Extended },
26332835 .OpLoopControlINTEL => struct { loop_control_parameters: []const LiteralInteger = &.{} },
2634 .OpReadPipeBlockingINTEL => struct { id_result_type: IdResultType, id_result: IdResult, packet_size: IdRef, packet_alignment: IdRef },
2635 .OpWritePipeBlockingINTEL => struct { id_result_type: IdResultType, id_result: IdResult, packet_size: IdRef, packet_alignment: IdRef },
2636 .OpFPGARegINTEL => struct { id_result_type: IdResultType, id_result: IdResult, result: IdRef, input: IdRef },
2637 .OpRayQueryGetRayTMinKHR => struct { id_result_type: IdResultType, id_result: IdResult, rayquery: IdRef },
2638 .OpRayQueryGetRayFlagsKHR => struct { id_result_type: IdResultType, id_result: IdResult, rayquery: IdRef },
2639 .OpRayQueryGetIntersectionTKHR => struct { id_result_type: IdResultType, id_result: IdResult, rayquery: IdRef, intersection: IdRef },
2640 .OpRayQueryGetIntersectionInstanceCustomIndexKHR => struct { id_result_type: IdResultType, id_result: IdResult, rayquery: IdRef, intersection: IdRef },
2641 .OpRayQueryGetIntersectionInstanceIdKHR => struct { id_result_type: IdResultType, id_result: IdResult, rayquery: IdRef, intersection: IdRef },
2642 .OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR => struct { id_result_type: IdResultType, id_result: IdResult, rayquery: IdRef, intersection: IdRef },
2643 .OpRayQueryGetIntersectionGeometryIndexKHR => struct { id_result_type: IdResultType, id_result: IdResult, rayquery: IdRef, intersection: IdRef },
2644 .OpRayQueryGetIntersectionPrimitiveIndexKHR => struct { id_result_type: IdResultType, id_result: IdResult, rayquery: IdRef, intersection: IdRef },
2645 .OpRayQueryGetIntersectionBarycentricsKHR => struct { id_result_type: IdResultType, id_result: IdResult, rayquery: IdRef, intersection: IdRef },
2646 .OpRayQueryGetIntersectionFrontFaceKHR => struct { id_result_type: IdResultType, id_result: IdResult, rayquery: IdRef, intersection: IdRef },
2647 .OpRayQueryGetIntersectionCandidateAABBOpaqueKHR => struct { id_result_type: IdResultType, id_result: IdResult, rayquery: IdRef },
2648 .OpRayQueryGetIntersectionObjectRayDirectionKHR => struct { id_result_type: IdResultType, id_result: IdResult, rayquery: IdRef, intersection: IdRef },
2649 .OpRayQueryGetIntersectionObjectRayOriginKHR => struct { id_result_type: IdResultType, id_result: IdResult, rayquery: IdRef, intersection: IdRef },
2650 .OpRayQueryGetWorldRayDirectionKHR => struct { id_result_type: IdResultType, id_result: IdResult, rayquery: IdRef },
2651 .OpRayQueryGetWorldRayOriginKHR => struct { id_result_type: IdResultType, id_result: IdResult, rayquery: IdRef },
2652 .OpRayQueryGetIntersectionObjectToWorldKHR => struct { id_result_type: IdResultType, id_result: IdResult, rayquery: IdRef, intersection: IdRef },
2653 .OpRayQueryGetIntersectionWorldToObjectKHR => struct { id_result_type: IdResultType, id_result: IdResult, rayquery: IdRef, intersection: IdRef },
2654 .OpAtomicFAddEXT => struct { id_result_type: IdResultType, id_result: IdResult, pointer: IdRef, memory: IdScope, semantics: IdMemorySemantics, value: IdRef },
2655 .OpTypeBufferSurfaceINTEL => struct { id_result: IdResult, accessqualifier: AccessQualifier },
2656 .OpTypeStructContinuedINTEL => struct { id_ref: []const IdRef = &.{} },
2657 .OpConstantCompositeContinuedINTEL => struct { constituents: []const IdRef = &.{} },
2658 .OpSpecConstantCompositeContinuedINTEL => struct { constituents: []const IdRef = &.{} },
2659 .OpCompositeConstructContinuedINTEL => struct { id_result_type: IdResultType, id_result: IdResult, constituents: []const IdRef = &.{} },
2660 .OpConvertFToBF16INTEL => struct { id_result_type: IdResultType, id_result: IdResult, float_value: IdRef },
2661 .OpConvertBF16ToFINTEL => struct { id_result_type: IdResultType, id_result: IdResult, bfloat16_value: IdRef },
2662 .OpControlBarrierArriveINTEL => struct { execution: IdScope, memory: IdScope, semantics: IdMemorySemantics },
2663 .OpControlBarrierWaitINTEL => struct { execution: IdScope, memory: IdScope, semantics: IdMemorySemantics },
2664 .OpGroupIMulKHR => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, x: IdRef },
2665 .OpGroupFMulKHR => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, x: IdRef },
2666 .OpGroupBitwiseAndKHR => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, x: IdRef },
2667 .OpGroupBitwiseOrKHR => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, x: IdRef },
2668 .OpGroupBitwiseXorKHR => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, x: IdRef },
2669 .OpGroupLogicalAndKHR => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, x: IdRef },
2670 .OpGroupLogicalOrKHR => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, x: IdRef },
2671 .OpGroupLogicalXorKHR => struct { id_result_type: IdResultType, id_result: IdResult, execution: IdScope, operation: GroupOperation, x: IdRef },
2672 .OpMaskedGatherINTEL => struct { id_result_type: IdResultType, id_result: IdResult, ptrvector: IdRef, alignment: LiteralInteger, mask: IdRef, fillempty: IdRef },
2673 .OpMaskedScatterINTEL => struct { inputvector: IdRef, ptrvector: IdRef, alignment: LiteralInteger, mask: IdRef },
2836 .OpReadPipeBlockingINTEL => struct { id_result_type: Id, id_result: Id, packet_size: Id, packet_alignment: Id },
2837 .OpWritePipeBlockingINTEL => struct { id_result_type: Id, id_result: Id, packet_size: Id, packet_alignment: Id },
2838 .OpFPGARegINTEL => struct { id_result_type: Id, id_result: Id, input: Id },
2839 .OpRayQueryGetRayTMinKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id },
2840 .OpRayQueryGetRayFlagsKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id },
2841 .OpRayQueryGetIntersectionTKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id },
2842 .OpRayQueryGetIntersectionInstanceCustomIndexKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id },
2843 .OpRayQueryGetIntersectionInstanceIdKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id },
2844 .OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id },
2845 .OpRayQueryGetIntersectionGeometryIndexKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id },
2846 .OpRayQueryGetIntersectionPrimitiveIndexKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id },
2847 .OpRayQueryGetIntersectionBarycentricsKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id },
2848 .OpRayQueryGetIntersectionFrontFaceKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id },
2849 .OpRayQueryGetIntersectionCandidateAABBOpaqueKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id },
2850 .OpRayQueryGetIntersectionObjectRayDirectionKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id },
2851 .OpRayQueryGetIntersectionObjectRayOriginKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id },
2852 .OpRayQueryGetWorldRayDirectionKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id },
2853 .OpRayQueryGetWorldRayOriginKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id },
2854 .OpRayQueryGetIntersectionObjectToWorldKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id },
2855 .OpRayQueryGetIntersectionWorldToObjectKHR => struct { id_result_type: Id, id_result: Id, ray_query: Id, intersection: Id },
2856 .OpAtomicFAddEXT => struct { id_result_type: Id, id_result: Id, pointer: Id, memory: Id, semantics: Id, value: Id },
2857 .OpTypeBufferSurfaceINTEL => struct { id_result: Id, access_qualifier: AccessQualifier },
2858 .OpTypeStructContinuedINTEL => struct { id_ref: []const Id = &.{} },
2859 .OpConstantCompositeContinuedINTEL => struct { constituents: []const Id = &.{} },
2860 .OpSpecConstantCompositeContinuedINTEL => struct { constituents: []const Id = &.{} },
2861 .OpCompositeConstructContinuedINTEL => struct { id_result_type: Id, id_result: Id, constituents: []const Id = &.{} },
2862 .OpConvertFToBF16INTEL => struct { id_result_type: Id, id_result: Id, float_value: Id },
2863 .OpConvertBF16ToFINTEL => struct { id_result_type: Id, id_result: Id, b_float16_value: Id },
2864 .OpControlBarrierArriveINTEL => struct { execution: Id, memory: Id, semantics: Id },
2865 .OpControlBarrierWaitINTEL => struct { execution: Id, memory: Id, semantics: Id },
2866 .OpArithmeticFenceEXT => struct { id_result_type: Id, id_result: Id, target: Id },
2867 .OpTaskSequenceCreateINTEL => struct { id_result_type: Id, id_result: Id, function: Id, pipelined: LiteralInteger, use_stall_enable_clusters: LiteralInteger, get_capacity: LiteralInteger, async_capacity: LiteralInteger },
2868 .OpTaskSequenceAsyncINTEL => struct { sequence: Id, arguments: []const Id = &.{} },
2869 .OpTaskSequenceGetINTEL => struct { id_result_type: Id, id_result: Id, sequence: Id },
2870 .OpTaskSequenceReleaseINTEL => struct { sequence: Id },
2871 .OpTypeTaskSequenceINTEL => struct { id_result: Id },
2872 .OpSubgroupBlockPrefetchINTEL => struct { ptr: Id, num_bytes: Id, memory_access: ?MemoryAccess.Extended = null },
2873 .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 },
2874 .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 },
2875 .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 },
2876 .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 },
2877 .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 },
2878 .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 },
2879 .OpBitwiseFunctionINTEL => struct { id_result_type: Id, id_result: Id, a: Id, b: Id, c: Id, lut_index: Id },
2880 .OpGroupIMulKHR => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
2881 .OpGroupFMulKHR => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
2882 .OpGroupBitwiseAndKHR => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
2883 .OpGroupBitwiseOrKHR => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
2884 .OpGroupBitwiseXorKHR => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
2885 .OpGroupLogicalAndKHR => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
2886 .OpGroupLogicalOrKHR => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
2887 .OpGroupLogicalXorKHR => struct { id_result_type: Id, id_result: Id, execution: Id, operation: GroupOperation, x: Id },
2888 .OpRoundFToTF32INTEL => struct { id_result_type: Id, id_result: Id, float_value: Id },
2889 .OpMaskedGatherINTEL => struct { id_result_type: Id, id_result: Id, ptr_vector: Id, alignment: LiteralInteger, mask: Id, fill_empty: Id },
2890 .OpMaskedScatterINTEL => struct { input_vector: Id, ptr_vector: Id, alignment: LiteralInteger, mask: Id },
2891 .OpConvertHandleToImageINTEL => struct { id_result_type: Id, id_result: Id, operand: Id },
2892 .OpConvertHandleToSamplerINTEL => struct { id_result_type: Id, id_result: Id, operand: Id },
2893 .OpConvertHandleToSampledImageINTEL => struct { id_result_type: Id, id_result: Id, operand: Id },
26742894 };
26752895 }
26762896 pub fn class(self: Opcode) Class {
26772897 return switch (self) {
2678 .OpNop => .Miscellaneous,
2679 .OpUndef => .Miscellaneous,
2680 .OpSourceContinued => .Debug,
2681 .OpSource => .Debug,
2682 .OpSourceExtension => .Debug,
2683 .OpName => .Debug,
2684 .OpMemberName => .Debug,
2685 .OpString => .Debug,
2686 .OpLine => .Debug,
2687 .OpExtension => .Extension,
2688 .OpExtInstImport => .Extension,
2689 .OpExtInst => .Extension,
2690 .OpMemoryModel => .ModeSetting,
2691 .OpEntryPoint => .ModeSetting,
2692 .OpExecutionMode => .ModeSetting,
2693 .OpCapability => .ModeSetting,
2694 .OpTypeVoid => .TypeDeclaration,
2695 .OpTypeBool => .TypeDeclaration,
2696 .OpTypeInt => .TypeDeclaration,
2697 .OpTypeFloat => .TypeDeclaration,
2698 .OpTypeVector => .TypeDeclaration,
2699 .OpTypeMatrix => .TypeDeclaration,
2700 .OpTypeImage => .TypeDeclaration,
2701 .OpTypeSampler => .TypeDeclaration,
2702 .OpTypeSampledImage => .TypeDeclaration,
2703 .OpTypeArray => .TypeDeclaration,
2704 .OpTypeRuntimeArray => .TypeDeclaration,
2705 .OpTypeStruct => .TypeDeclaration,
2706 .OpTypeOpaque => .TypeDeclaration,
2707 .OpTypePointer => .TypeDeclaration,
2708 .OpTypeFunction => .TypeDeclaration,
2709 .OpTypeEvent => .TypeDeclaration,
2710 .OpTypeDeviceEvent => .TypeDeclaration,
2711 .OpTypeReserveId => .TypeDeclaration,
2712 .OpTypeQueue => .TypeDeclaration,
2713 .OpTypePipe => .TypeDeclaration,
2714 .OpTypeForwardPointer => .TypeDeclaration,
2715 .OpConstantTrue => .ConstantCreation,
2716 .OpConstantFalse => .ConstantCreation,
2717 .OpConstant => .ConstantCreation,
2718 .OpConstantComposite => .ConstantCreation,
2719 .OpConstantSampler => .ConstantCreation,
2720 .OpConstantNull => .ConstantCreation,
2721 .OpSpecConstantTrue => .ConstantCreation,
2722 .OpSpecConstantFalse => .ConstantCreation,
2723 .OpSpecConstant => .ConstantCreation,
2724 .OpSpecConstantComposite => .ConstantCreation,
2725 .OpSpecConstantOp => .ConstantCreation,
2726 .OpFunction => .Function,
2727 .OpFunctionParameter => .Function,
2728 .OpFunctionEnd => .Function,
2729 .OpFunctionCall => .Function,
2730 .OpVariable => .Memory,
2731 .OpImageTexelPointer => .Memory,
2732 .OpLoad => .Memory,
2733 .OpStore => .Memory,
2734 .OpCopyMemory => .Memory,
2735 .OpCopyMemorySized => .Memory,
2736 .OpAccessChain => .Memory,
2737 .OpInBoundsAccessChain => .Memory,
2738 .OpPtrAccessChain => .Memory,
2739 .OpArrayLength => .Memory,
2740 .OpGenericPtrMemSemantics => .Memory,
2741 .OpInBoundsPtrAccessChain => .Memory,
2742 .OpDecorate => .Annotation,
2743 .OpMemberDecorate => .Annotation,
2744 .OpDecorationGroup => .Annotation,
2745 .OpGroupDecorate => .Annotation,
2746 .OpGroupMemberDecorate => .Annotation,
2747 .OpVectorExtractDynamic => .Composite,
2748 .OpVectorInsertDynamic => .Composite,
2749 .OpVectorShuffle => .Composite,
2750 .OpCompositeConstruct => .Composite,
2751 .OpCompositeExtract => .Composite,
2752 .OpCompositeInsert => .Composite,
2753 .OpCopyObject => .Composite,
2754 .OpTranspose => .Composite,
2755 .OpSampledImage => .Image,
2756 .OpImageSampleImplicitLod => .Image,
2757 .OpImageSampleExplicitLod => .Image,
2758 .OpImageSampleDrefImplicitLod => .Image,
2759 .OpImageSampleDrefExplicitLod => .Image,
2760 .OpImageSampleProjImplicitLod => .Image,
2761 .OpImageSampleProjExplicitLod => .Image,
2762 .OpImageSampleProjDrefImplicitLod => .Image,
2763 .OpImageSampleProjDrefExplicitLod => .Image,
2764 .OpImageFetch => .Image,
2765 .OpImageGather => .Image,
2766 .OpImageDrefGather => .Image,
2767 .OpImageRead => .Image,
2768 .OpImageWrite => .Image,
2769 .OpImage => .Image,
2770 .OpImageQueryFormat => .Image,
2771 .OpImageQueryOrder => .Image,
2772 .OpImageQuerySizeLod => .Image,
2773 .OpImageQuerySize => .Image,
2774 .OpImageQueryLod => .Image,
2775 .OpImageQueryLevels => .Image,
2776 .OpImageQuerySamples => .Image,
2777 .OpConvertFToU => .Conversion,
2778 .OpConvertFToS => .Conversion,
2779 .OpConvertSToF => .Conversion,
2780 .OpConvertUToF => .Conversion,
2781 .OpUConvert => .Conversion,
2782 .OpSConvert => .Conversion,
2783 .OpFConvert => .Conversion,
2784 .OpQuantizeToF16 => .Conversion,
2785 .OpConvertPtrToU => .Conversion,
2786 .OpSatConvertSToU => .Conversion,
2787 .OpSatConvertUToS => .Conversion,
2788 .OpConvertUToPtr => .Conversion,
2789 .OpPtrCastToGeneric => .Conversion,
2790 .OpGenericCastToPtr => .Conversion,
2791 .OpGenericCastToPtrExplicit => .Conversion,
2792 .OpBitcast => .Conversion,
2793 .OpSNegate => .Arithmetic,
2794 .OpFNegate => .Arithmetic,
2795 .OpIAdd => .Arithmetic,
2796 .OpFAdd => .Arithmetic,
2797 .OpISub => .Arithmetic,
2798 .OpFSub => .Arithmetic,
2799 .OpIMul => .Arithmetic,
2800 .OpFMul => .Arithmetic,
2801 .OpUDiv => .Arithmetic,
2802 .OpSDiv => .Arithmetic,
2803 .OpFDiv => .Arithmetic,
2804 .OpUMod => .Arithmetic,
2805 .OpSRem => .Arithmetic,
2806 .OpSMod => .Arithmetic,
2807 .OpFRem => .Arithmetic,
2808 .OpFMod => .Arithmetic,
2809 .OpVectorTimesScalar => .Arithmetic,
2810 .OpMatrixTimesScalar => .Arithmetic,
2811 .OpVectorTimesMatrix => .Arithmetic,
2812 .OpMatrixTimesVector => .Arithmetic,
2813 .OpMatrixTimesMatrix => .Arithmetic,
2814 .OpOuterProduct => .Arithmetic,
2815 .OpDot => .Arithmetic,
2816 .OpIAddCarry => .Arithmetic,
2817 .OpISubBorrow => .Arithmetic,
2818 .OpUMulExtended => .Arithmetic,
2819 .OpSMulExtended => .Arithmetic,
2820 .OpAny => .RelationalAndLogical,
2821 .OpAll => .RelationalAndLogical,
2822 .OpIsNan => .RelationalAndLogical,
2823 .OpIsInf => .RelationalAndLogical,
2824 .OpIsFinite => .RelationalAndLogical,
2825 .OpIsNormal => .RelationalAndLogical,
2826 .OpSignBitSet => .RelationalAndLogical,
2827 .OpLessOrGreater => .RelationalAndLogical,
2828 .OpOrdered => .RelationalAndLogical,
2829 .OpUnordered => .RelationalAndLogical,
2830 .OpLogicalEqual => .RelationalAndLogical,
2831 .OpLogicalNotEqual => .RelationalAndLogical,
2832 .OpLogicalOr => .RelationalAndLogical,
2833 .OpLogicalAnd => .RelationalAndLogical,
2834 .OpLogicalNot => .RelationalAndLogical,
2835 .OpSelect => .RelationalAndLogical,
2836 .OpIEqual => .RelationalAndLogical,
2837 .OpINotEqual => .RelationalAndLogical,
2838 .OpUGreaterThan => .RelationalAndLogical,
2839 .OpSGreaterThan => .RelationalAndLogical,
2840 .OpUGreaterThanEqual => .RelationalAndLogical,
2841 .OpSGreaterThanEqual => .RelationalAndLogical,
2842 .OpULessThan => .RelationalAndLogical,
2843 .OpSLessThan => .RelationalAndLogical,
2844 .OpULessThanEqual => .RelationalAndLogical,
2845 .OpSLessThanEqual => .RelationalAndLogical,
2846 .OpFOrdEqual => .RelationalAndLogical,
2847 .OpFUnordEqual => .RelationalAndLogical,
2848 .OpFOrdNotEqual => .RelationalAndLogical,
2849 .OpFUnordNotEqual => .RelationalAndLogical,
2850 .OpFOrdLessThan => .RelationalAndLogical,
2851 .OpFUnordLessThan => .RelationalAndLogical,
2852 .OpFOrdGreaterThan => .RelationalAndLogical,
2853 .OpFUnordGreaterThan => .RelationalAndLogical,
2854 .OpFOrdLessThanEqual => .RelationalAndLogical,
2855 .OpFUnordLessThanEqual => .RelationalAndLogical,
2856 .OpFOrdGreaterThanEqual => .RelationalAndLogical,
2857 .OpFUnordGreaterThanEqual => .RelationalAndLogical,
2858 .OpShiftRightLogical => .Bit,
2859 .OpShiftRightArithmetic => .Bit,
2860 .OpShiftLeftLogical => .Bit,
2861 .OpBitwiseOr => .Bit,
2862 .OpBitwiseXor => .Bit,
2863 .OpBitwiseAnd => .Bit,
2864 .OpNot => .Bit,
2865 .OpBitFieldInsert => .Bit,
2866 .OpBitFieldSExtract => .Bit,
2867 .OpBitFieldUExtract => .Bit,
2868 .OpBitReverse => .Bit,
2869 .OpBitCount => .Bit,
2870 .OpDPdx => .Derivative,
2871 .OpDPdy => .Derivative,
2872 .OpFwidth => .Derivative,
2873 .OpDPdxFine => .Derivative,
2874 .OpDPdyFine => .Derivative,
2875 .OpFwidthFine => .Derivative,
2876 .OpDPdxCoarse => .Derivative,
2877 .OpDPdyCoarse => .Derivative,
2878 .OpFwidthCoarse => .Derivative,
2879 .OpEmitVertex => .Primitive,
2880 .OpEndPrimitive => .Primitive,
2881 .OpEmitStreamVertex => .Primitive,
2882 .OpEndStreamPrimitive => .Primitive,
2883 .OpControlBarrier => .Barrier,
2884 .OpMemoryBarrier => .Barrier,
2885 .OpAtomicLoad => .Atomic,
2886 .OpAtomicStore => .Atomic,
2887 .OpAtomicExchange => .Atomic,
2888 .OpAtomicCompareExchange => .Atomic,
2889 .OpAtomicCompareExchangeWeak => .Atomic,
2890 .OpAtomicIIncrement => .Atomic,
2891 .OpAtomicIDecrement => .Atomic,
2892 .OpAtomicIAdd => .Atomic,
2893 .OpAtomicISub => .Atomic,
2894 .OpAtomicSMin => .Atomic,
2895 .OpAtomicUMin => .Atomic,
2896 .OpAtomicSMax => .Atomic,
2897 .OpAtomicUMax => .Atomic,
2898 .OpAtomicAnd => .Atomic,
2899 .OpAtomicOr => .Atomic,
2900 .OpAtomicXor => .Atomic,
2901 .OpPhi => .ControlFlow,
2902 .OpLoopMerge => .ControlFlow,
2903 .OpSelectionMerge => .ControlFlow,
2904 .OpLabel => .ControlFlow,
2905 .OpBranch => .ControlFlow,
2906 .OpBranchConditional => .ControlFlow,
2907 .OpSwitch => .ControlFlow,
2908 .OpKill => .ControlFlow,
2909 .OpReturn => .ControlFlow,
2910 .OpReturnValue => .ControlFlow,
2911 .OpUnreachable => .ControlFlow,
2912 .OpLifetimeStart => .ControlFlow,
2913 .OpLifetimeStop => .ControlFlow,
2914 .OpGroupAsyncCopy => .Group,
2915 .OpGroupWaitEvents => .Group,
2916 .OpGroupAll => .Group,
2917 .OpGroupAny => .Group,
2918 .OpGroupBroadcast => .Group,
2919 .OpGroupIAdd => .Group,
2920 .OpGroupFAdd => .Group,
2921 .OpGroupFMin => .Group,
2922 .OpGroupUMin => .Group,
2923 .OpGroupSMin => .Group,
2924 .OpGroupFMax => .Group,
2925 .OpGroupUMax => .Group,
2926 .OpGroupSMax => .Group,
2927 .OpReadPipe => .Pipe,
2928 .OpWritePipe => .Pipe,
2929 .OpReservedReadPipe => .Pipe,
2930 .OpReservedWritePipe => .Pipe,
2931 .OpReserveReadPipePackets => .Pipe,
2932 .OpReserveWritePipePackets => .Pipe,
2933 .OpCommitReadPipe => .Pipe,
2934 .OpCommitWritePipe => .Pipe,
2935 .OpIsValidReserveId => .Pipe,
2936 .OpGetNumPipePackets => .Pipe,
2937 .OpGetMaxPipePackets => .Pipe,
2938 .OpGroupReserveReadPipePackets => .Pipe,
2939 .OpGroupReserveWritePipePackets => .Pipe,
2940 .OpGroupCommitReadPipe => .Pipe,
2941 .OpGroupCommitWritePipe => .Pipe,
2942 .OpEnqueueMarker => .DeviceSideEnqueue,
2943 .OpEnqueueKernel => .DeviceSideEnqueue,
2944 .OpGetKernelNDrangeSubGroupCount => .DeviceSideEnqueue,
2945 .OpGetKernelNDrangeMaxSubGroupSize => .DeviceSideEnqueue,
2946 .OpGetKernelWorkGroupSize => .DeviceSideEnqueue,
2947 .OpGetKernelPreferredWorkGroupSizeMultiple => .DeviceSideEnqueue,
2948 .OpRetainEvent => .DeviceSideEnqueue,
2949 .OpReleaseEvent => .DeviceSideEnqueue,
2950 .OpCreateUserEvent => .DeviceSideEnqueue,
2951 .OpIsValidEvent => .DeviceSideEnqueue,
2952 .OpSetUserEventStatus => .DeviceSideEnqueue,
2953 .OpCaptureEventProfilingInfo => .DeviceSideEnqueue,
2954 .OpGetDefaultQueue => .DeviceSideEnqueue,
2955 .OpBuildNDRange => .DeviceSideEnqueue,
2956 .OpImageSparseSampleImplicitLod => .Image,
2957 .OpImageSparseSampleExplicitLod => .Image,
2958 .OpImageSparseSampleDrefImplicitLod => .Image,
2959 .OpImageSparseSampleDrefExplicitLod => .Image,
2960 .OpImageSparseSampleProjImplicitLod => .Image,
2961 .OpImageSparseSampleProjExplicitLod => .Image,
2962 .OpImageSparseSampleProjDrefImplicitLod => .Image,
2963 .OpImageSparseSampleProjDrefExplicitLod => .Image,
2964 .OpImageSparseFetch => .Image,
2965 .OpImageSparseGather => .Image,
2966 .OpImageSparseDrefGather => .Image,
2967 .OpImageSparseTexelsResident => .Image,
2968 .OpNoLine => .Debug,
2969 .OpAtomicFlagTestAndSet => .Atomic,
2970 .OpAtomicFlagClear => .Atomic,
2971 .OpImageSparseRead => .Image,
2972 .OpSizeOf => .Miscellaneous,
2973 .OpTypePipeStorage => .TypeDeclaration,
2974 .OpConstantPipeStorage => .Pipe,
2975 .OpCreatePipeFromPipeStorage => .Pipe,
2976 .OpGetKernelLocalSizeForSubgroupCount => .DeviceSideEnqueue,
2977 .OpGetKernelMaxNumSubgroups => .DeviceSideEnqueue,
2978 .OpTypeNamedBarrier => .TypeDeclaration,
2979 .OpNamedBarrierInitialize => .Barrier,
2980 .OpMemoryNamedBarrier => .Barrier,
2981 .OpModuleProcessed => .Debug,
2982 .OpExecutionModeId => .ModeSetting,
2983 .OpDecorateId => .Annotation,
2984 .OpGroupNonUniformElect => .NonUniform,
2985 .OpGroupNonUniformAll => .NonUniform,
2986 .OpGroupNonUniformAny => .NonUniform,
2987 .OpGroupNonUniformAllEqual => .NonUniform,
2988 .OpGroupNonUniformBroadcast => .NonUniform,
2989 .OpGroupNonUniformBroadcastFirst => .NonUniform,
2990 .OpGroupNonUniformBallot => .NonUniform,
2991 .OpGroupNonUniformInverseBallot => .NonUniform,
2992 .OpGroupNonUniformBallotBitExtract => .NonUniform,
2993 .OpGroupNonUniformBallotBitCount => .NonUniform,
2994 .OpGroupNonUniformBallotFindLSB => .NonUniform,
2995 .OpGroupNonUniformBallotFindMSB => .NonUniform,
2996 .OpGroupNonUniformShuffle => .NonUniform,
2997 .OpGroupNonUniformShuffleXor => .NonUniform,
2998 .OpGroupNonUniformShuffleUp => .NonUniform,
2999 .OpGroupNonUniformShuffleDown => .NonUniform,
3000 .OpGroupNonUniformIAdd => .NonUniform,
3001 .OpGroupNonUniformFAdd => .NonUniform,
3002 .OpGroupNonUniformIMul => .NonUniform,
3003 .OpGroupNonUniformFMul => .NonUniform,
3004 .OpGroupNonUniformSMin => .NonUniform,
3005 .OpGroupNonUniformUMin => .NonUniform,
3006 .OpGroupNonUniformFMin => .NonUniform,
3007 .OpGroupNonUniformSMax => .NonUniform,
3008 .OpGroupNonUniformUMax => .NonUniform,
3009 .OpGroupNonUniformFMax => .NonUniform,
3010 .OpGroupNonUniformBitwiseAnd => .NonUniform,
3011 .OpGroupNonUniformBitwiseOr => .NonUniform,
3012 .OpGroupNonUniformBitwiseXor => .NonUniform,
3013 .OpGroupNonUniformLogicalAnd => .NonUniform,
3014 .OpGroupNonUniformLogicalOr => .NonUniform,
3015 .OpGroupNonUniformLogicalXor => .NonUniform,
3016 .OpGroupNonUniformQuadBroadcast => .NonUniform,
3017 .OpGroupNonUniformQuadSwap => .NonUniform,
3018 .OpCopyLogical => .Composite,
3019 .OpPtrEqual => .Memory,
3020 .OpPtrNotEqual => .Memory,
3021 .OpPtrDiff => .Memory,
3022 .OpColorAttachmentReadEXT => .Image,
3023 .OpDepthAttachmentReadEXT => .Image,
3024 .OpStencilAttachmentReadEXT => .Image,
3025 .OpTerminateInvocation => .ControlFlow,
3026 .OpSubgroupBallotKHR => .Group,
3027 .OpSubgroupFirstInvocationKHR => .Group,
3028 .OpSubgroupAllKHR => .Group,
3029 .OpSubgroupAnyKHR => .Group,
3030 .OpSubgroupAllEqualKHR => .Group,
3031 .OpGroupNonUniformRotateKHR => .Group,
3032 .OpSubgroupReadInvocationKHR => .Group,
3033 .OpTraceRayKHR => .Reserved,
3034 .OpExecuteCallableKHR => .Reserved,
3035 .OpConvertUToAccelerationStructureKHR => .Reserved,
3036 .OpIgnoreIntersectionKHR => .Reserved,
3037 .OpTerminateRayKHR => .Reserved,
3038 .OpSDot => .Arithmetic,
3039 .OpUDot => .Arithmetic,
3040 .OpSUDot => .Arithmetic,
3041 .OpSDotAccSat => .Arithmetic,
3042 .OpUDotAccSat => .Arithmetic,
3043 .OpSUDotAccSat => .Arithmetic,
3044 .OpTypeCooperativeMatrixKHR => .TypeDeclaration,
3045 .OpCooperativeMatrixLoadKHR => .Memory,
3046 .OpCooperativeMatrixStoreKHR => .Memory,
3047 .OpCooperativeMatrixMulAddKHR => .Arithmetic,
3048 .OpCooperativeMatrixLengthKHR => .Miscellaneous,
3049 .OpTypeRayQueryKHR => .TypeDeclaration,
3050 .OpRayQueryInitializeKHR => .Reserved,
3051 .OpRayQueryTerminateKHR => .Reserved,
3052 .OpRayQueryGenerateIntersectionKHR => .Reserved,
3053 .OpRayQueryConfirmIntersectionKHR => .Reserved,
3054 .OpRayQueryProceedKHR => .Reserved,
3055 .OpRayQueryGetIntersectionTypeKHR => .Reserved,
3056 .OpImageSampleWeightedQCOM => .Image,
3057 .OpImageBoxFilterQCOM => .Image,
3058 .OpImageBlockMatchSSDQCOM => .Image,
3059 .OpImageBlockMatchSADQCOM => .Image,
3060 .OpImageBlockMatchWindowSSDQCOM => .Image,
3061 .OpImageBlockMatchWindowSADQCOM => .Image,
3062 .OpImageBlockMatchGatherSSDQCOM => .Image,
3063 .OpImageBlockMatchGatherSADQCOM => .Image,
3064 .OpGroupIAddNonUniformAMD => .Group,
3065 .OpGroupFAddNonUniformAMD => .Group,
3066 .OpGroupFMinNonUniformAMD => .Group,
3067 .OpGroupUMinNonUniformAMD => .Group,
3068 .OpGroupSMinNonUniformAMD => .Group,
3069 .OpGroupFMaxNonUniformAMD => .Group,
3070 .OpGroupUMaxNonUniformAMD => .Group,
3071 .OpGroupSMaxNonUniformAMD => .Group,
3072 .OpFragmentMaskFetchAMD => .Reserved,
3073 .OpFragmentFetchAMD => .Reserved,
3074 .OpReadClockKHR => .Reserved,
3075 .OpFinalizeNodePayloadsAMDX => .Reserved,
3076 .OpFinishWritingNodePayloadAMDX => .Reserved,
3077 .OpInitializeNodePayloadsAMDX => .Reserved,
3078 .OpGroupNonUniformQuadAllKHR => .NonUniform,
3079 .OpGroupNonUniformQuadAnyKHR => .NonUniform,
3080 .OpHitObjectRecordHitMotionNV => .Reserved,
3081 .OpHitObjectRecordHitWithIndexMotionNV => .Reserved,
3082 .OpHitObjectRecordMissMotionNV => .Reserved,
3083 .OpHitObjectGetWorldToObjectNV => .Reserved,
3084 .OpHitObjectGetObjectToWorldNV => .Reserved,
3085 .OpHitObjectGetObjectRayDirectionNV => .Reserved,
3086 .OpHitObjectGetObjectRayOriginNV => .Reserved,
3087 .OpHitObjectTraceRayMotionNV => .Reserved,
3088 .OpHitObjectGetShaderRecordBufferHandleNV => .Reserved,
3089 .OpHitObjectGetShaderBindingTableRecordIndexNV => .Reserved,
3090 .OpHitObjectRecordEmptyNV => .Reserved,
3091 .OpHitObjectTraceRayNV => .Reserved,
3092 .OpHitObjectRecordHitNV => .Reserved,
3093 .OpHitObjectRecordHitWithIndexNV => .Reserved,
3094 .OpHitObjectRecordMissNV => .Reserved,
3095 .OpHitObjectExecuteShaderNV => .Reserved,
3096 .OpHitObjectGetCurrentTimeNV => .Reserved,
3097 .OpHitObjectGetAttributesNV => .Reserved,
3098 .OpHitObjectGetHitKindNV => .Reserved,
3099 .OpHitObjectGetPrimitiveIndexNV => .Reserved,
3100 .OpHitObjectGetGeometryIndexNV => .Reserved,
3101 .OpHitObjectGetInstanceIdNV => .Reserved,
3102 .OpHitObjectGetInstanceCustomIndexNV => .Reserved,
3103 .OpHitObjectGetWorldRayDirectionNV => .Reserved,
3104 .OpHitObjectGetWorldRayOriginNV => .Reserved,
3105 .OpHitObjectGetRayTMaxNV => .Reserved,
3106 .OpHitObjectGetRayTMinNV => .Reserved,
3107 .OpHitObjectIsEmptyNV => .Reserved,
3108 .OpHitObjectIsHitNV => .Reserved,
3109 .OpHitObjectIsMissNV => .Reserved,
3110 .OpReorderThreadWithHitObjectNV => .Reserved,
3111 .OpReorderThreadWithHintNV => .Reserved,
3112 .OpTypeHitObjectNV => .TypeDeclaration,
3113 .OpImageSampleFootprintNV => .Image,
3114 .OpEmitMeshTasksEXT => .Reserved,
3115 .OpSetMeshOutputsEXT => .Reserved,
3116 .OpGroupNonUniformPartitionNV => .NonUniform,
3117 .OpWritePackedPrimitiveIndices4x8NV => .Reserved,
3118 .OpFetchMicroTriangleVertexPositionNV => .Reserved,
3119 .OpFetchMicroTriangleVertexBarycentricNV => .Reserved,
3120 .OpReportIntersectionKHR => .Reserved,
3121 .OpIgnoreIntersectionNV => .Reserved,
3122 .OpTerminateRayNV => .Reserved,
3123 .OpTraceNV => .Reserved,
3124 .OpTraceMotionNV => .Reserved,
3125 .OpTraceRayMotionNV => .Reserved,
3126 .OpRayQueryGetIntersectionTriangleVertexPositionsKHR => .Reserved,
3127 .OpTypeAccelerationStructureKHR => .TypeDeclaration,
3128 .OpExecuteCallableNV => .Reserved,
3129 .OpTypeCooperativeMatrixNV => .TypeDeclaration,
3130 .OpCooperativeMatrixLoadNV => .Reserved,
3131 .OpCooperativeMatrixStoreNV => .Reserved,
3132 .OpCooperativeMatrixMulAddNV => .Reserved,
3133 .OpCooperativeMatrixLengthNV => .Reserved,
3134 .OpBeginInvocationInterlockEXT => .Reserved,
3135 .OpEndInvocationInterlockEXT => .Reserved,
3136 .OpDemoteToHelperInvocation => .ControlFlow,
3137 .OpIsHelperInvocationEXT => .Reserved,
3138 .OpConvertUToImageNV => .Reserved,
3139 .OpConvertUToSamplerNV => .Reserved,
3140 .OpConvertImageToUNV => .Reserved,
3141 .OpConvertSamplerToUNV => .Reserved,
3142 .OpConvertUToSampledImageNV => .Reserved,
3143 .OpConvertSampledImageToUNV => .Reserved,
3144 .OpSamplerImageAddressingModeNV => .Reserved,
3145 .OpRawAccessChainNV => .Memory,
3146 .OpSubgroupShuffleINTEL => .Group,
3147 .OpSubgroupShuffleDownINTEL => .Group,
3148 .OpSubgroupShuffleUpINTEL => .Group,
3149 .OpSubgroupShuffleXorINTEL => .Group,
3150 .OpSubgroupBlockReadINTEL => .Group,
3151 .OpSubgroupBlockWriteINTEL => .Group,
3152 .OpSubgroupImageBlockReadINTEL => .Group,
3153 .OpSubgroupImageBlockWriteINTEL => .Group,
3154 .OpSubgroupImageMediaBlockReadINTEL => .Group,
3155 .OpSubgroupImageMediaBlockWriteINTEL => .Group,
3156 .OpUCountLeadingZerosINTEL => .Reserved,
3157 .OpUCountTrailingZerosINTEL => .Reserved,
3158 .OpAbsISubINTEL => .Reserved,
3159 .OpAbsUSubINTEL => .Reserved,
3160 .OpIAddSatINTEL => .Reserved,
3161 .OpUAddSatINTEL => .Reserved,
3162 .OpIAverageINTEL => .Reserved,
3163 .OpUAverageINTEL => .Reserved,
3164 .OpIAverageRoundedINTEL => .Reserved,
3165 .OpUAverageRoundedINTEL => .Reserved,
3166 .OpISubSatINTEL => .Reserved,
3167 .OpUSubSatINTEL => .Reserved,
3168 .OpIMul32x16INTEL => .Reserved,
3169 .OpUMul32x16INTEL => .Reserved,
3170 .OpAtomicFMinEXT => .Atomic,
3171 .OpAtomicFMaxEXT => .Atomic,
3172 .OpAssumeTrueKHR => .Miscellaneous,
3173 .OpExpectKHR => .Miscellaneous,
3174 .OpDecorateString => .Annotation,
3175 .OpMemberDecorateString => .Annotation,
3176 .OpLoopControlINTEL => .Reserved,
3177 .OpReadPipeBlockingINTEL => .Pipe,
3178 .OpWritePipeBlockingINTEL => .Pipe,
3179 .OpFPGARegINTEL => .Reserved,
3180 .OpRayQueryGetRayTMinKHR => .Reserved,
3181 .OpRayQueryGetRayFlagsKHR => .Reserved,
3182 .OpRayQueryGetIntersectionTKHR => .Reserved,
3183 .OpRayQueryGetIntersectionInstanceCustomIndexKHR => .Reserved,
3184 .OpRayQueryGetIntersectionInstanceIdKHR => .Reserved,
3185 .OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR => .Reserved,
3186 .OpRayQueryGetIntersectionGeometryIndexKHR => .Reserved,
3187 .OpRayQueryGetIntersectionPrimitiveIndexKHR => .Reserved,
3188 .OpRayQueryGetIntersectionBarycentricsKHR => .Reserved,
3189 .OpRayQueryGetIntersectionFrontFaceKHR => .Reserved,
3190 .OpRayQueryGetIntersectionCandidateAABBOpaqueKHR => .Reserved,
3191 .OpRayQueryGetIntersectionObjectRayDirectionKHR => .Reserved,
3192 .OpRayQueryGetIntersectionObjectRayOriginKHR => .Reserved,
3193 .OpRayQueryGetWorldRayDirectionKHR => .Reserved,
3194 .OpRayQueryGetWorldRayOriginKHR => .Reserved,
3195 .OpRayQueryGetIntersectionObjectToWorldKHR => .Reserved,
3196 .OpRayQueryGetIntersectionWorldToObjectKHR => .Reserved,
3197 .OpAtomicFAddEXT => .Atomic,
3198 .OpTypeBufferSurfaceINTEL => .TypeDeclaration,
3199 .OpTypeStructContinuedINTEL => .TypeDeclaration,
3200 .OpConstantCompositeContinuedINTEL => .ConstantCreation,
3201 .OpSpecConstantCompositeContinuedINTEL => .ConstantCreation,
3202 .OpCompositeConstructContinuedINTEL => .Composite,
3203 .OpConvertFToBF16INTEL => .Conversion,
3204 .OpConvertBF16ToFINTEL => .Conversion,
3205 .OpControlBarrierArriveINTEL => .Barrier,
3206 .OpControlBarrierWaitINTEL => .Barrier,
3207 .OpGroupIMulKHR => .Group,
3208 .OpGroupFMulKHR => .Group,
3209 .OpGroupBitwiseAndKHR => .Group,
3210 .OpGroupBitwiseOrKHR => .Group,
3211 .OpGroupBitwiseXorKHR => .Group,
3212 .OpGroupLogicalAndKHR => .Group,
3213 .OpGroupLogicalOrKHR => .Group,
3214 .OpGroupLogicalXorKHR => .Group,
3215 .OpMaskedGatherINTEL => .Memory,
3216 .OpMaskedScatterINTEL => .Memory,
2898 .OpNop => .miscellaneous,
2899 .OpUndef => .miscellaneous,
2900 .OpSourceContinued => .debug,
2901 .OpSource => .debug,
2902 .OpSourceExtension => .debug,
2903 .OpName => .debug,
2904 .OpMemberName => .debug,
2905 .OpString => .debug,
2906 .OpLine => .debug,
2907 .OpExtension => .extension,
2908 .OpExtInstImport => .extension,
2909 .OpExtInst => .extension,
2910 .OpMemoryModel => .mode_setting,
2911 .OpEntryPoint => .mode_setting,
2912 .OpExecutionMode => .mode_setting,
2913 .OpCapability => .mode_setting,
2914 .OpTypeVoid => .type_declaration,
2915 .OpTypeBool => .type_declaration,
2916 .OpTypeInt => .type_declaration,
2917 .OpTypeFloat => .type_declaration,
2918 .OpTypeVector => .type_declaration,
2919 .OpTypeMatrix => .type_declaration,
2920 .OpTypeImage => .type_declaration,
2921 .OpTypeSampler => .type_declaration,
2922 .OpTypeSampledImage => .type_declaration,
2923 .OpTypeArray => .type_declaration,
2924 .OpTypeRuntimeArray => .type_declaration,
2925 .OpTypeStruct => .type_declaration,
2926 .OpTypeOpaque => .type_declaration,
2927 .OpTypePointer => .type_declaration,
2928 .OpTypeFunction => .type_declaration,
2929 .OpTypeEvent => .type_declaration,
2930 .OpTypeDeviceEvent => .type_declaration,
2931 .OpTypeReserveId => .type_declaration,
2932 .OpTypeQueue => .type_declaration,
2933 .OpTypePipe => .type_declaration,
2934 .OpTypeForwardPointer => .type_declaration,
2935 .OpConstantTrue => .constant_creation,
2936 .OpConstantFalse => .constant_creation,
2937 .OpConstant => .constant_creation,
2938 .OpConstantComposite => .constant_creation,
2939 .OpConstantSampler => .constant_creation,
2940 .OpConstantNull => .constant_creation,
2941 .OpSpecConstantTrue => .constant_creation,
2942 .OpSpecConstantFalse => .constant_creation,
2943 .OpSpecConstant => .constant_creation,
2944 .OpSpecConstantComposite => .constant_creation,
2945 .OpSpecConstantOp => .constant_creation,
2946 .OpFunction => .function,
2947 .OpFunctionParameter => .function,
2948 .OpFunctionEnd => .function,
2949 .OpFunctionCall => .function,
2950 .OpVariable => .memory,
2951 .OpImageTexelPointer => .memory,
2952 .OpLoad => .memory,
2953 .OpStore => .memory,
2954 .OpCopyMemory => .memory,
2955 .OpCopyMemorySized => .memory,
2956 .OpAccessChain => .memory,
2957 .OpInBoundsAccessChain => .memory,
2958 .OpPtrAccessChain => .memory,
2959 .OpArrayLength => .memory,
2960 .OpGenericPtrMemSemantics => .memory,
2961 .OpInBoundsPtrAccessChain => .memory,
2962 .OpDecorate => .annotation,
2963 .OpMemberDecorate => .annotation,
2964 .OpDecorationGroup => .annotation,
2965 .OpGroupDecorate => .annotation,
2966 .OpGroupMemberDecorate => .annotation,
2967 .OpVectorExtractDynamic => .composite,
2968 .OpVectorInsertDynamic => .composite,
2969 .OpVectorShuffle => .composite,
2970 .OpCompositeConstruct => .composite,
2971 .OpCompositeExtract => .composite,
2972 .OpCompositeInsert => .composite,
2973 .OpCopyObject => .composite,
2974 .OpTranspose => .composite,
2975 .OpSampledImage => .image,
2976 .OpImageSampleImplicitLod => .image,
2977 .OpImageSampleExplicitLod => .image,
2978 .OpImageSampleDrefImplicitLod => .image,
2979 .OpImageSampleDrefExplicitLod => .image,
2980 .OpImageSampleProjImplicitLod => .image,
2981 .OpImageSampleProjExplicitLod => .image,
2982 .OpImageSampleProjDrefImplicitLod => .image,
2983 .OpImageSampleProjDrefExplicitLod => .image,
2984 .OpImageFetch => .image,
2985 .OpImageGather => .image,
2986 .OpImageDrefGather => .image,
2987 .OpImageRead => .image,
2988 .OpImageWrite => .image,
2989 .OpImage => .image,
2990 .OpImageQueryFormat => .image,
2991 .OpImageQueryOrder => .image,
2992 .OpImageQuerySizeLod => .image,
2993 .OpImageQuerySize => .image,
2994 .OpImageQueryLod => .image,
2995 .OpImageQueryLevels => .image,
2996 .OpImageQuerySamples => .image,
2997 .OpConvertFToU => .conversion,
2998 .OpConvertFToS => .conversion,
2999 .OpConvertSToF => .conversion,
3000 .OpConvertUToF => .conversion,
3001 .OpUConvert => .conversion,
3002 .OpSConvert => .conversion,
3003 .OpFConvert => .conversion,
3004 .OpQuantizeToF16 => .conversion,
3005 .OpConvertPtrToU => .conversion,
3006 .OpSatConvertSToU => .conversion,
3007 .OpSatConvertUToS => .conversion,
3008 .OpConvertUToPtr => .conversion,
3009 .OpPtrCastToGeneric => .conversion,
3010 .OpGenericCastToPtr => .conversion,
3011 .OpGenericCastToPtrExplicit => .conversion,
3012 .OpBitcast => .conversion,
3013 .OpSNegate => .arithmetic,
3014 .OpFNegate => .arithmetic,
3015 .OpIAdd => .arithmetic,
3016 .OpFAdd => .arithmetic,
3017 .OpISub => .arithmetic,
3018 .OpFSub => .arithmetic,
3019 .OpIMul => .arithmetic,
3020 .OpFMul => .arithmetic,
3021 .OpUDiv => .arithmetic,
3022 .OpSDiv => .arithmetic,
3023 .OpFDiv => .arithmetic,
3024 .OpUMod => .arithmetic,
3025 .OpSRem => .arithmetic,
3026 .OpSMod => .arithmetic,
3027 .OpFRem => .arithmetic,
3028 .OpFMod => .arithmetic,
3029 .OpVectorTimesScalar => .arithmetic,
3030 .OpMatrixTimesScalar => .arithmetic,
3031 .OpVectorTimesMatrix => .arithmetic,
3032 .OpMatrixTimesVector => .arithmetic,
3033 .OpMatrixTimesMatrix => .arithmetic,
3034 .OpOuterProduct => .arithmetic,
3035 .OpDot => .arithmetic,
3036 .OpIAddCarry => .arithmetic,
3037 .OpISubBorrow => .arithmetic,
3038 .OpUMulExtended => .arithmetic,
3039 .OpSMulExtended => .arithmetic,
3040 .OpAny => .relational_and_logical,
3041 .OpAll => .relational_and_logical,
3042 .OpIsNan => .relational_and_logical,
3043 .OpIsInf => .relational_and_logical,
3044 .OpIsFinite => .relational_and_logical,
3045 .OpIsNormal => .relational_and_logical,
3046 .OpSignBitSet => .relational_and_logical,
3047 .OpLessOrGreater => .relational_and_logical,
3048 .OpOrdered => .relational_and_logical,
3049 .OpUnordered => .relational_and_logical,
3050 .OpLogicalEqual => .relational_and_logical,
3051 .OpLogicalNotEqual => .relational_and_logical,
3052 .OpLogicalOr => .relational_and_logical,
3053 .OpLogicalAnd => .relational_and_logical,
3054 .OpLogicalNot => .relational_and_logical,
3055 .OpSelect => .relational_and_logical,
3056 .OpIEqual => .relational_and_logical,
3057 .OpINotEqual => .relational_and_logical,
3058 .OpUGreaterThan => .relational_and_logical,
3059 .OpSGreaterThan => .relational_and_logical,
3060 .OpUGreaterThanEqual => .relational_and_logical,
3061 .OpSGreaterThanEqual => .relational_and_logical,
3062 .OpULessThan => .relational_and_logical,
3063 .OpSLessThan => .relational_and_logical,
3064 .OpULessThanEqual => .relational_and_logical,
3065 .OpSLessThanEqual => .relational_and_logical,
3066 .OpFOrdEqual => .relational_and_logical,
3067 .OpFUnordEqual => .relational_and_logical,
3068 .OpFOrdNotEqual => .relational_and_logical,
3069 .OpFUnordNotEqual => .relational_and_logical,
3070 .OpFOrdLessThan => .relational_and_logical,
3071 .OpFUnordLessThan => .relational_and_logical,
3072 .OpFOrdGreaterThan => .relational_and_logical,
3073 .OpFUnordGreaterThan => .relational_and_logical,
3074 .OpFOrdLessThanEqual => .relational_and_logical,
3075 .OpFUnordLessThanEqual => .relational_and_logical,
3076 .OpFOrdGreaterThanEqual => .relational_and_logical,
3077 .OpFUnordGreaterThanEqual => .relational_and_logical,
3078 .OpShiftRightLogical => .bit,
3079 .OpShiftRightArithmetic => .bit,
3080 .OpShiftLeftLogical => .bit,
3081 .OpBitwiseOr => .bit,
3082 .OpBitwiseXor => .bit,
3083 .OpBitwiseAnd => .bit,
3084 .OpNot => .bit,
3085 .OpBitFieldInsert => .bit,
3086 .OpBitFieldSExtract => .bit,
3087 .OpBitFieldUExtract => .bit,
3088 .OpBitReverse => .bit,
3089 .OpBitCount => .bit,
3090 .OpDPdx => .derivative,
3091 .OpDPdy => .derivative,
3092 .OpFwidth => .derivative,
3093 .OpDPdxFine => .derivative,
3094 .OpDPdyFine => .derivative,
3095 .OpFwidthFine => .derivative,
3096 .OpDPdxCoarse => .derivative,
3097 .OpDPdyCoarse => .derivative,
3098 .OpFwidthCoarse => .derivative,
3099 .OpEmitVertex => .primitive,
3100 .OpEndPrimitive => .primitive,
3101 .OpEmitStreamVertex => .primitive,
3102 .OpEndStreamPrimitive => .primitive,
3103 .OpControlBarrier => .barrier,
3104 .OpMemoryBarrier => .barrier,
3105 .OpAtomicLoad => .atomic,
3106 .OpAtomicStore => .atomic,
3107 .OpAtomicExchange => .atomic,
3108 .OpAtomicCompareExchange => .atomic,
3109 .OpAtomicCompareExchangeWeak => .atomic,
3110 .OpAtomicIIncrement => .atomic,
3111 .OpAtomicIDecrement => .atomic,
3112 .OpAtomicIAdd => .atomic,
3113 .OpAtomicISub => .atomic,
3114 .OpAtomicSMin => .atomic,
3115 .OpAtomicUMin => .atomic,
3116 .OpAtomicSMax => .atomic,
3117 .OpAtomicUMax => .atomic,
3118 .OpAtomicAnd => .atomic,
3119 .OpAtomicOr => .atomic,
3120 .OpAtomicXor => .atomic,
3121 .OpPhi => .control_flow,
3122 .OpLoopMerge => .control_flow,
3123 .OpSelectionMerge => .control_flow,
3124 .OpLabel => .control_flow,
3125 .OpBranch => .control_flow,
3126 .OpBranchConditional => .control_flow,
3127 .OpSwitch => .control_flow,
3128 .OpKill => .control_flow,
3129 .OpReturn => .control_flow,
3130 .OpReturnValue => .control_flow,
3131 .OpUnreachable => .control_flow,
3132 .OpLifetimeStart => .control_flow,
3133 .OpLifetimeStop => .control_flow,
3134 .OpGroupAsyncCopy => .group,
3135 .OpGroupWaitEvents => .group,
3136 .OpGroupAll => .group,
3137 .OpGroupAny => .group,
3138 .OpGroupBroadcast => .group,
3139 .OpGroupIAdd => .group,
3140 .OpGroupFAdd => .group,
3141 .OpGroupFMin => .group,
3142 .OpGroupUMin => .group,
3143 .OpGroupSMin => .group,
3144 .OpGroupFMax => .group,
3145 .OpGroupUMax => .group,
3146 .OpGroupSMax => .group,
3147 .OpReadPipe => .pipe,
3148 .OpWritePipe => .pipe,
3149 .OpReservedReadPipe => .pipe,
3150 .OpReservedWritePipe => .pipe,
3151 .OpReserveReadPipePackets => .pipe,
3152 .OpReserveWritePipePackets => .pipe,
3153 .OpCommitReadPipe => .pipe,
3154 .OpCommitWritePipe => .pipe,
3155 .OpIsValidReserveId => .pipe,
3156 .OpGetNumPipePackets => .pipe,
3157 .OpGetMaxPipePackets => .pipe,
3158 .OpGroupReserveReadPipePackets => .pipe,
3159 .OpGroupReserveWritePipePackets => .pipe,
3160 .OpGroupCommitReadPipe => .pipe,
3161 .OpGroupCommitWritePipe => .pipe,
3162 .OpEnqueueMarker => .device_side_enqueue,
3163 .OpEnqueueKernel => .device_side_enqueue,
3164 .OpGetKernelNDrangeSubGroupCount => .device_side_enqueue,
3165 .OpGetKernelNDrangeMaxSubGroupSize => .device_side_enqueue,
3166 .OpGetKernelWorkGroupSize => .device_side_enqueue,
3167 .OpGetKernelPreferredWorkGroupSizeMultiple => .device_side_enqueue,
3168 .OpRetainEvent => .device_side_enqueue,
3169 .OpReleaseEvent => .device_side_enqueue,
3170 .OpCreateUserEvent => .device_side_enqueue,
3171 .OpIsValidEvent => .device_side_enqueue,
3172 .OpSetUserEventStatus => .device_side_enqueue,
3173 .OpCaptureEventProfilingInfo => .device_side_enqueue,
3174 .OpGetDefaultQueue => .device_side_enqueue,
3175 .OpBuildNDRange => .device_side_enqueue,
3176 .OpImageSparseSampleImplicitLod => .image,
3177 .OpImageSparseSampleExplicitLod => .image,
3178 .OpImageSparseSampleDrefImplicitLod => .image,
3179 .OpImageSparseSampleDrefExplicitLod => .image,
3180 .OpImageSparseSampleProjImplicitLod => .image,
3181 .OpImageSparseSampleProjExplicitLod => .image,
3182 .OpImageSparseSampleProjDrefImplicitLod => .image,
3183 .OpImageSparseSampleProjDrefExplicitLod => .image,
3184 .OpImageSparseFetch => .image,
3185 .OpImageSparseGather => .image,
3186 .OpImageSparseDrefGather => .image,
3187 .OpImageSparseTexelsResident => .image,
3188 .OpNoLine => .debug,
3189 .OpAtomicFlagTestAndSet => .atomic,
3190 .OpAtomicFlagClear => .atomic,
3191 .OpImageSparseRead => .image,
3192 .OpSizeOf => .miscellaneous,
3193 .OpTypePipeStorage => .type_declaration,
3194 .OpConstantPipeStorage => .pipe,
3195 .OpCreatePipeFromPipeStorage => .pipe,
3196 .OpGetKernelLocalSizeForSubgroupCount => .device_side_enqueue,
3197 .OpGetKernelMaxNumSubgroups => .device_side_enqueue,
3198 .OpTypeNamedBarrier => .type_declaration,
3199 .OpNamedBarrierInitialize => .barrier,
3200 .OpMemoryNamedBarrier => .barrier,
3201 .OpModuleProcessed => .debug,
3202 .OpExecutionModeId => .mode_setting,
3203 .OpDecorateId => .annotation,
3204 .OpGroupNonUniformElect => .non_uniform,
3205 .OpGroupNonUniformAll => .non_uniform,
3206 .OpGroupNonUniformAny => .non_uniform,
3207 .OpGroupNonUniformAllEqual => .non_uniform,
3208 .OpGroupNonUniformBroadcast => .non_uniform,
3209 .OpGroupNonUniformBroadcastFirst => .non_uniform,
3210 .OpGroupNonUniformBallot => .non_uniform,
3211 .OpGroupNonUniformInverseBallot => .non_uniform,
3212 .OpGroupNonUniformBallotBitExtract => .non_uniform,
3213 .OpGroupNonUniformBallotBitCount => .non_uniform,
3214 .OpGroupNonUniformBallotFindLSB => .non_uniform,
3215 .OpGroupNonUniformBallotFindMSB => .non_uniform,
3216 .OpGroupNonUniformShuffle => .non_uniform,
3217 .OpGroupNonUniformShuffleXor => .non_uniform,
3218 .OpGroupNonUniformShuffleUp => .non_uniform,
3219 .OpGroupNonUniformShuffleDown => .non_uniform,
3220 .OpGroupNonUniformIAdd => .non_uniform,
3221 .OpGroupNonUniformFAdd => .non_uniform,
3222 .OpGroupNonUniformIMul => .non_uniform,
3223 .OpGroupNonUniformFMul => .non_uniform,
3224 .OpGroupNonUniformSMin => .non_uniform,
3225 .OpGroupNonUniformUMin => .non_uniform,
3226 .OpGroupNonUniformFMin => .non_uniform,
3227 .OpGroupNonUniformSMax => .non_uniform,
3228 .OpGroupNonUniformUMax => .non_uniform,
3229 .OpGroupNonUniformFMax => .non_uniform,
3230 .OpGroupNonUniformBitwiseAnd => .non_uniform,
3231 .OpGroupNonUniformBitwiseOr => .non_uniform,
3232 .OpGroupNonUniformBitwiseXor => .non_uniform,
3233 .OpGroupNonUniformLogicalAnd => .non_uniform,
3234 .OpGroupNonUniformLogicalOr => .non_uniform,
3235 .OpGroupNonUniformLogicalXor => .non_uniform,
3236 .OpGroupNonUniformQuadBroadcast => .non_uniform,
3237 .OpGroupNonUniformQuadSwap => .non_uniform,
3238 .OpCopyLogical => .composite,
3239 .OpPtrEqual => .memory,
3240 .OpPtrNotEqual => .memory,
3241 .OpPtrDiff => .memory,
3242 .OpColorAttachmentReadEXT => .image,
3243 .OpDepthAttachmentReadEXT => .image,
3244 .OpStencilAttachmentReadEXT => .image,
3245 .OpTypeTensorARM => .type_declaration,
3246 .OpTensorReadARM => .tensor,
3247 .OpTensorWriteARM => .tensor,
3248 .OpTensorQuerySizeARM => .tensor,
3249 .OpGraphConstantARM => .graph,
3250 .OpGraphEntryPointARM => .graph,
3251 .OpGraphARM => .graph,
3252 .OpGraphInputARM => .graph,
3253 .OpGraphSetOutputARM => .graph,
3254 .OpGraphEndARM => .graph,
3255 .OpTypeGraphARM => .type_declaration,
3256 .OpTerminateInvocation => .control_flow,
3257 .OpTypeUntypedPointerKHR => .type_declaration,
3258 .OpUntypedVariableKHR => .memory,
3259 .OpUntypedAccessChainKHR => .memory,
3260 .OpUntypedInBoundsAccessChainKHR => .memory,
3261 .OpSubgroupBallotKHR => .group,
3262 .OpSubgroupFirstInvocationKHR => .group,
3263 .OpUntypedPtrAccessChainKHR => .memory,
3264 .OpUntypedInBoundsPtrAccessChainKHR => .memory,
3265 .OpUntypedArrayLengthKHR => .memory,
3266 .OpUntypedPrefetchKHR => .memory,
3267 .OpSubgroupAllKHR => .group,
3268 .OpSubgroupAnyKHR => .group,
3269 .OpSubgroupAllEqualKHR => .group,
3270 .OpGroupNonUniformRotateKHR => .group,
3271 .OpSubgroupReadInvocationKHR => .group,
3272 .OpExtInstWithForwardRefsKHR => .extension,
3273 .OpTraceRayKHR => .reserved,
3274 .OpExecuteCallableKHR => .reserved,
3275 .OpConvertUToAccelerationStructureKHR => .reserved,
3276 .OpIgnoreIntersectionKHR => .reserved,
3277 .OpTerminateRayKHR => .reserved,
3278 .OpSDot => .arithmetic,
3279 .OpUDot => .arithmetic,
3280 .OpSUDot => .arithmetic,
3281 .OpSDotAccSat => .arithmetic,
3282 .OpUDotAccSat => .arithmetic,
3283 .OpSUDotAccSat => .arithmetic,
3284 .OpTypeCooperativeMatrixKHR => .type_declaration,
3285 .OpCooperativeMatrixLoadKHR => .memory,
3286 .OpCooperativeMatrixStoreKHR => .memory,
3287 .OpCooperativeMatrixMulAddKHR => .arithmetic,
3288 .OpCooperativeMatrixLengthKHR => .miscellaneous,
3289 .OpConstantCompositeReplicateEXT => .constant_creation,
3290 .OpSpecConstantCompositeReplicateEXT => .constant_creation,
3291 .OpCompositeConstructReplicateEXT => .composite,
3292 .OpTypeRayQueryKHR => .type_declaration,
3293 .OpRayQueryInitializeKHR => .reserved,
3294 .OpRayQueryTerminateKHR => .reserved,
3295 .OpRayQueryGenerateIntersectionKHR => .reserved,
3296 .OpRayQueryConfirmIntersectionKHR => .reserved,
3297 .OpRayQueryProceedKHR => .reserved,
3298 .OpRayQueryGetIntersectionTypeKHR => .reserved,
3299 .OpImageSampleWeightedQCOM => .image,
3300 .OpImageBoxFilterQCOM => .image,
3301 .OpImageBlockMatchSSDQCOM => .image,
3302 .OpImageBlockMatchSADQCOM => .image,
3303 .OpImageBlockMatchWindowSSDQCOM => .image,
3304 .OpImageBlockMatchWindowSADQCOM => .image,
3305 .OpImageBlockMatchGatherSSDQCOM => .image,
3306 .OpImageBlockMatchGatherSADQCOM => .image,
3307 .OpGroupIAddNonUniformAMD => .group,
3308 .OpGroupFAddNonUniformAMD => .group,
3309 .OpGroupFMinNonUniformAMD => .group,
3310 .OpGroupUMinNonUniformAMD => .group,
3311 .OpGroupSMinNonUniformAMD => .group,
3312 .OpGroupFMaxNonUniformAMD => .group,
3313 .OpGroupUMaxNonUniformAMD => .group,
3314 .OpGroupSMaxNonUniformAMD => .group,
3315 .OpFragmentMaskFetchAMD => .reserved,
3316 .OpFragmentFetchAMD => .reserved,
3317 .OpReadClockKHR => .reserved,
3318 .OpAllocateNodePayloadsAMDX => .reserved,
3319 .OpEnqueueNodePayloadsAMDX => .reserved,
3320 .OpTypeNodePayloadArrayAMDX => .reserved,
3321 .OpFinishWritingNodePayloadAMDX => .reserved,
3322 .OpNodePayloadArrayLengthAMDX => .reserved,
3323 .OpIsNodePayloadValidAMDX => .reserved,
3324 .OpConstantStringAMDX => .reserved,
3325 .OpSpecConstantStringAMDX => .reserved,
3326 .OpGroupNonUniformQuadAllKHR => .non_uniform,
3327 .OpGroupNonUniformQuadAnyKHR => .non_uniform,
3328 .OpHitObjectRecordHitMotionNV => .reserved,
3329 .OpHitObjectRecordHitWithIndexMotionNV => .reserved,
3330 .OpHitObjectRecordMissMotionNV => .reserved,
3331 .OpHitObjectGetWorldToObjectNV => .reserved,
3332 .OpHitObjectGetObjectToWorldNV => .reserved,
3333 .OpHitObjectGetObjectRayDirectionNV => .reserved,
3334 .OpHitObjectGetObjectRayOriginNV => .reserved,
3335 .OpHitObjectTraceRayMotionNV => .reserved,
3336 .OpHitObjectGetShaderRecordBufferHandleNV => .reserved,
3337 .OpHitObjectGetShaderBindingTableRecordIndexNV => .reserved,
3338 .OpHitObjectRecordEmptyNV => .reserved,
3339 .OpHitObjectTraceRayNV => .reserved,
3340 .OpHitObjectRecordHitNV => .reserved,
3341 .OpHitObjectRecordHitWithIndexNV => .reserved,
3342 .OpHitObjectRecordMissNV => .reserved,
3343 .OpHitObjectExecuteShaderNV => .reserved,
3344 .OpHitObjectGetCurrentTimeNV => .reserved,
3345 .OpHitObjectGetAttributesNV => .reserved,
3346 .OpHitObjectGetHitKindNV => .reserved,
3347 .OpHitObjectGetPrimitiveIndexNV => .reserved,
3348 .OpHitObjectGetGeometryIndexNV => .reserved,
3349 .OpHitObjectGetInstanceIdNV => .reserved,
3350 .OpHitObjectGetInstanceCustomIndexNV => .reserved,
3351 .OpHitObjectGetWorldRayDirectionNV => .reserved,
3352 .OpHitObjectGetWorldRayOriginNV => .reserved,
3353 .OpHitObjectGetRayTMaxNV => .reserved,
3354 .OpHitObjectGetRayTMinNV => .reserved,
3355 .OpHitObjectIsEmptyNV => .reserved,
3356 .OpHitObjectIsHitNV => .reserved,
3357 .OpHitObjectIsMissNV => .reserved,
3358 .OpReorderThreadWithHitObjectNV => .reserved,
3359 .OpReorderThreadWithHintNV => .reserved,
3360 .OpTypeHitObjectNV => .type_declaration,
3361 .OpImageSampleFootprintNV => .image,
3362 .OpTypeCooperativeVectorNV => .type_declaration,
3363 .OpCooperativeVectorMatrixMulNV => .reserved,
3364 .OpCooperativeVectorOuterProductAccumulateNV => .reserved,
3365 .OpCooperativeVectorReduceSumAccumulateNV => .reserved,
3366 .OpCooperativeVectorMatrixMulAddNV => .reserved,
3367 .OpCooperativeMatrixConvertNV => .conversion,
3368 .OpEmitMeshTasksEXT => .reserved,
3369 .OpSetMeshOutputsEXT => .reserved,
3370 .OpGroupNonUniformPartitionNV => .non_uniform,
3371 .OpWritePackedPrimitiveIndices4x8NV => .reserved,
3372 .OpFetchMicroTriangleVertexPositionNV => .reserved,
3373 .OpFetchMicroTriangleVertexBarycentricNV => .reserved,
3374 .OpCooperativeVectorLoadNV => .memory,
3375 .OpCooperativeVectorStoreNV => .memory,
3376 .OpReportIntersectionKHR => .reserved,
3377 .OpIgnoreIntersectionNV => .reserved,
3378 .OpTerminateRayNV => .reserved,
3379 .OpTraceNV => .reserved,
3380 .OpTraceMotionNV => .reserved,
3381 .OpTraceRayMotionNV => .reserved,
3382 .OpRayQueryGetIntersectionTriangleVertexPositionsKHR => .reserved,
3383 .OpTypeAccelerationStructureKHR => .type_declaration,
3384 .OpExecuteCallableNV => .reserved,
3385 .OpRayQueryGetClusterIdNV => .reserved,
3386 .OpHitObjectGetClusterIdNV => .reserved,
3387 .OpTypeCooperativeMatrixNV => .type_declaration,
3388 .OpCooperativeMatrixLoadNV => .reserved,
3389 .OpCooperativeMatrixStoreNV => .reserved,
3390 .OpCooperativeMatrixMulAddNV => .reserved,
3391 .OpCooperativeMatrixLengthNV => .reserved,
3392 .OpBeginInvocationInterlockEXT => .reserved,
3393 .OpEndInvocationInterlockEXT => .reserved,
3394 .OpCooperativeMatrixReduceNV => .arithmetic,
3395 .OpCooperativeMatrixLoadTensorNV => .memory,
3396 .OpCooperativeMatrixStoreTensorNV => .memory,
3397 .OpCooperativeMatrixPerElementOpNV => .function,
3398 .OpTypeTensorLayoutNV => .type_declaration,
3399 .OpTypeTensorViewNV => .type_declaration,
3400 .OpCreateTensorLayoutNV => .reserved,
3401 .OpTensorLayoutSetDimensionNV => .reserved,
3402 .OpTensorLayoutSetStrideNV => .reserved,
3403 .OpTensorLayoutSliceNV => .reserved,
3404 .OpTensorLayoutSetClampValueNV => .reserved,
3405 .OpCreateTensorViewNV => .reserved,
3406 .OpTensorViewSetDimensionNV => .reserved,
3407 .OpTensorViewSetStrideNV => .reserved,
3408 .OpDemoteToHelperInvocation => .control_flow,
3409 .OpIsHelperInvocationEXT => .reserved,
3410 .OpTensorViewSetClipNV => .reserved,
3411 .OpTensorLayoutSetBlockSizeNV => .reserved,
3412 .OpCooperativeMatrixTransposeNV => .conversion,
3413 .OpConvertUToImageNV => .reserved,
3414 .OpConvertUToSamplerNV => .reserved,
3415 .OpConvertImageToUNV => .reserved,
3416 .OpConvertSamplerToUNV => .reserved,
3417 .OpConvertUToSampledImageNV => .reserved,
3418 .OpConvertSampledImageToUNV => .reserved,
3419 .OpSamplerImageAddressingModeNV => .reserved,
3420 .OpRawAccessChainNV => .memory,
3421 .OpRayQueryGetIntersectionSpherePositionNV => .reserved,
3422 .OpRayQueryGetIntersectionSphereRadiusNV => .reserved,
3423 .OpRayQueryGetIntersectionLSSPositionsNV => .reserved,
3424 .OpRayQueryGetIntersectionLSSRadiiNV => .reserved,
3425 .OpRayQueryGetIntersectionLSSHitValueNV => .reserved,
3426 .OpHitObjectGetSpherePositionNV => .reserved,
3427 .OpHitObjectGetSphereRadiusNV => .reserved,
3428 .OpHitObjectGetLSSPositionsNV => .reserved,
3429 .OpHitObjectGetLSSRadiiNV => .reserved,
3430 .OpHitObjectIsSphereHitNV => .reserved,
3431 .OpHitObjectIsLSSHitNV => .reserved,
3432 .OpRayQueryIsSphereHitNV => .reserved,
3433 .OpRayQueryIsLSSHitNV => .reserved,
3434 .OpSubgroupShuffleINTEL => .group,
3435 .OpSubgroupShuffleDownINTEL => .group,
3436 .OpSubgroupShuffleUpINTEL => .group,
3437 .OpSubgroupShuffleXorINTEL => .group,
3438 .OpSubgroupBlockReadINTEL => .group,
3439 .OpSubgroupBlockWriteINTEL => .group,
3440 .OpSubgroupImageBlockReadINTEL => .group,
3441 .OpSubgroupImageBlockWriteINTEL => .group,
3442 .OpSubgroupImageMediaBlockReadINTEL => .group,
3443 .OpSubgroupImageMediaBlockWriteINTEL => .group,
3444 .OpUCountLeadingZerosINTEL => .reserved,
3445 .OpUCountTrailingZerosINTEL => .reserved,
3446 .OpAbsISubINTEL => .reserved,
3447 .OpAbsUSubINTEL => .reserved,
3448 .OpIAddSatINTEL => .reserved,
3449 .OpUAddSatINTEL => .reserved,
3450 .OpIAverageINTEL => .reserved,
3451 .OpUAverageINTEL => .reserved,
3452 .OpIAverageRoundedINTEL => .reserved,
3453 .OpUAverageRoundedINTEL => .reserved,
3454 .OpISubSatINTEL => .reserved,
3455 .OpUSubSatINTEL => .reserved,
3456 .OpIMul32x16INTEL => .reserved,
3457 .OpUMul32x16INTEL => .reserved,
3458 .OpAtomicFMinEXT => .atomic,
3459 .OpAtomicFMaxEXT => .atomic,
3460 .OpAssumeTrueKHR => .miscellaneous,
3461 .OpExpectKHR => .miscellaneous,
3462 .OpDecorateString => .annotation,
3463 .OpMemberDecorateString => .annotation,
3464 .OpLoopControlINTEL => .reserved,
3465 .OpReadPipeBlockingINTEL => .pipe,
3466 .OpWritePipeBlockingINTEL => .pipe,
3467 .OpFPGARegINTEL => .reserved,
3468 .OpRayQueryGetRayTMinKHR => .reserved,
3469 .OpRayQueryGetRayFlagsKHR => .reserved,
3470 .OpRayQueryGetIntersectionTKHR => .reserved,
3471 .OpRayQueryGetIntersectionInstanceCustomIndexKHR => .reserved,
3472 .OpRayQueryGetIntersectionInstanceIdKHR => .reserved,
3473 .OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR => .reserved,
3474 .OpRayQueryGetIntersectionGeometryIndexKHR => .reserved,
3475 .OpRayQueryGetIntersectionPrimitiveIndexKHR => .reserved,
3476 .OpRayQueryGetIntersectionBarycentricsKHR => .reserved,
3477 .OpRayQueryGetIntersectionFrontFaceKHR => .reserved,
3478 .OpRayQueryGetIntersectionCandidateAABBOpaqueKHR => .reserved,
3479 .OpRayQueryGetIntersectionObjectRayDirectionKHR => .reserved,
3480 .OpRayQueryGetIntersectionObjectRayOriginKHR => .reserved,
3481 .OpRayQueryGetWorldRayDirectionKHR => .reserved,
3482 .OpRayQueryGetWorldRayOriginKHR => .reserved,
3483 .OpRayQueryGetIntersectionObjectToWorldKHR => .reserved,
3484 .OpRayQueryGetIntersectionWorldToObjectKHR => .reserved,
3485 .OpAtomicFAddEXT => .atomic,
3486 .OpTypeBufferSurfaceINTEL => .type_declaration,
3487 .OpTypeStructContinuedINTEL => .type_declaration,
3488 .OpConstantCompositeContinuedINTEL => .constant_creation,
3489 .OpSpecConstantCompositeContinuedINTEL => .constant_creation,
3490 .OpCompositeConstructContinuedINTEL => .composite,
3491 .OpConvertFToBF16INTEL => .conversion,
3492 .OpConvertBF16ToFINTEL => .conversion,
3493 .OpControlBarrierArriveINTEL => .barrier,
3494 .OpControlBarrierWaitINTEL => .barrier,
3495 .OpArithmeticFenceEXT => .miscellaneous,
3496 .OpTaskSequenceCreateINTEL => .reserved,
3497 .OpTaskSequenceAsyncINTEL => .reserved,
3498 .OpTaskSequenceGetINTEL => .reserved,
3499 .OpTaskSequenceReleaseINTEL => .reserved,
3500 .OpTypeTaskSequenceINTEL => .type_declaration,
3501 .OpSubgroupBlockPrefetchINTEL => .group,
3502 .OpSubgroup2DBlockLoadINTEL => .group,
3503 .OpSubgroup2DBlockLoadTransformINTEL => .group,
3504 .OpSubgroup2DBlockLoadTransposeINTEL => .group,
3505 .OpSubgroup2DBlockPrefetchINTEL => .group,
3506 .OpSubgroup2DBlockStoreINTEL => .group,
3507 .OpSubgroupMatrixMultiplyAccumulateINTEL => .group,
3508 .OpBitwiseFunctionINTEL => .bit,
3509 .OpGroupIMulKHR => .group,
3510 .OpGroupFMulKHR => .group,
3511 .OpGroupBitwiseAndKHR => .group,
3512 .OpGroupBitwiseOrKHR => .group,
3513 .OpGroupBitwiseXorKHR => .group,
3514 .OpGroupLogicalAndKHR => .group,
3515 .OpGroupLogicalOrKHR => .group,
3516 .OpGroupLogicalXorKHR => .group,
3517 .OpRoundFToTF32INTEL => .conversion,
3518 .OpMaskedGatherINTEL => .memory,
3519 .OpMaskedScatterINTEL => .memory,
3520 .OpConvertHandleToImageINTEL => .image,
3521 .OpConvertHandleToSamplerINTEL => .image,
3522 .OpConvertHandleToSampledImageINTEL => .image,
32173523 };
32183524 }
32193525};
32203526pub const ImageOperands = packed struct {
3221 Bias: bool = false,
3222 Lod: bool = false,
3223 Grad: bool = false,
3224 ConstOffset: bool = false,
3225 Offset: bool = false,
3226 ConstOffsets: bool = false,
3227 Sample: bool = false,
3228 MinLod: bool = false,
3229 MakeTexelAvailable: bool = false,
3230 MakeTexelVisible: bool = false,
3231 NonPrivateTexel: bool = false,
3232 VolatileTexel: bool = false,
3233 SignExtend: bool = false,
3234 ZeroExtend: bool = false,
3235 Nontemporal: bool = false,
3527 bias: bool = false,
3528 lod: bool = false,
3529 grad: bool = false,
3530 const_offset: bool = false,
3531 offset: bool = false,
3532 const_offsets: bool = false,
3533 sample: bool = false,
3534 min_lod: bool = false,
3535 make_texel_available: bool = false,
3536 make_texel_visible: bool = false,
3537 non_private_texel: bool = false,
3538 volatile_texel: bool = false,
3539 sign_extend: bool = false,
3540 zero_extend: bool = false,
3541 nontemporal: bool = false,
32363542 _reserved_bit_15: bool = false,
3237 Offsets: bool = false,
3543 offsets: bool = false,
32383544 _reserved_bit_17: bool = false,
32393545 _reserved_bit_18: bool = false,
32403546 _reserved_bit_19: bool = false,
......@@ -3251,29 +3557,24 @@ pub const ImageOperands = packed struct {
32513557 _reserved_bit_30: bool = false,
32523558 _reserved_bit_31: bool = false,
32533559
3254 pub const MakeTexelAvailableKHR: ImageOperands = .{ .MakeTexelAvailable = true };
3255 pub const MakeTexelVisibleKHR: ImageOperands = .{ .MakeTexelVisible = true };
3256 pub const NonPrivateTexelKHR: ImageOperands = .{ .NonPrivateTexel = true };
3257 pub const VolatileTexelKHR: ImageOperands = .{ .VolatileTexel = true };
3258
32593560 pub const Extended = struct {
3260 Bias: ?struct { id_ref: IdRef } = null,
3261 Lod: ?struct { id_ref: IdRef } = null,
3262 Grad: ?struct { id_ref_0: IdRef, id_ref_1: IdRef } = null,
3263 ConstOffset: ?struct { id_ref: IdRef } = null,
3264 Offset: ?struct { id_ref: IdRef } = null,
3265 ConstOffsets: ?struct { id_ref: IdRef } = null,
3266 Sample: ?struct { id_ref: IdRef } = null,
3267 MinLod: ?struct { id_ref: IdRef } = null,
3268 MakeTexelAvailable: ?struct { id_scope: IdScope } = null,
3269 MakeTexelVisible: ?struct { id_scope: IdScope } = null,
3270 NonPrivateTexel: bool = false,
3271 VolatileTexel: bool = false,
3272 SignExtend: bool = false,
3273 ZeroExtend: bool = false,
3274 Nontemporal: bool = false,
3561 bias: ?struct { id_ref: Id } = null,
3562 lod: ?struct { id_ref: Id } = null,
3563 grad: ?struct { id_ref_0: Id, id_ref_1: Id } = null,
3564 const_offset: ?struct { id_ref: Id } = null,
3565 offset: ?struct { id_ref: Id } = null,
3566 const_offsets: ?struct { id_ref: Id } = null,
3567 sample: ?struct { id_ref: Id } = null,
3568 min_lod: ?struct { id_ref: Id } = null,
3569 make_texel_available: ?struct { id_scope: Id } = null,
3570 make_texel_visible: ?struct { id_scope: Id } = null,
3571 non_private_texel: bool = false,
3572 volatile_texel: bool = false,
3573 sign_extend: bool = false,
3574 zero_extend: bool = false,
3575 nontemporal: bool = false,
32753576 _reserved_bit_15: bool = false,
3276 Offsets: ?struct { id_ref: IdRef } = null,
3577 offsets: ?struct { id_ref: Id } = null,
32773578 _reserved_bit_17: bool = false,
32783579 _reserved_bit_18: bool = false,
32793580 _reserved_bit_19: bool = false,
......@@ -3292,11 +3593,11 @@ pub const ImageOperands = packed struct {
32923593 };
32933594};
32943595pub const FPFastMathMode = packed struct {
3295 NotNaN: bool = false,
3296 NotInf: bool = false,
3297 NSZ: bool = false,
3298 AllowRecip: bool = false,
3299 Fast: bool = false,
3596 not_na_n: bool = false,
3597 not_inf: bool = false,
3598 nsz: bool = false,
3599 allow_recip: bool = false,
3600 fast: bool = false,
33003601 _reserved_bit_5: bool = false,
33013602 _reserved_bit_6: bool = false,
33023603 _reserved_bit_7: bool = false,
......@@ -3308,9 +3609,9 @@ pub const FPFastMathMode = packed struct {
33083609 _reserved_bit_13: bool = false,
33093610 _reserved_bit_14: bool = false,
33103611 _reserved_bit_15: bool = false,
3311 AllowContract: bool = false,
3312 AllowReassoc: bool = false,
3313 AllowTransform: bool = false,
3612 allow_contract: bool = false,
3613 allow_reassoc: bool = false,
3614 allow_transform: bool = false,
33143615 _reserved_bit_19: bool = false,
33153616 _reserved_bit_20: bool = false,
33163617 _reserved_bit_21: bool = false,
......@@ -3324,13 +3625,10 @@ pub const FPFastMathMode = packed struct {
33243625 _reserved_bit_29: bool = false,
33253626 _reserved_bit_30: bool = false,
33263627 _reserved_bit_31: bool = false,
3327
3328 pub const AllowContractFastINTEL: FPFastMathMode = .{ .AllowContract = true };
3329 pub const AllowReassocINTEL: FPFastMathMode = .{ .AllowReassoc = true };
33303628};
33313629pub const SelectionControl = packed struct {
3332 Flatten: bool = false,
3333 DontFlatten: bool = false,
3630 flatten: bool = false,
3631 dont_flatten: bool = false,
33343632 _reserved_bit_2: bool = false,
33353633 _reserved_bit_3: bool = false,
33363634 _reserved_bit_4: bool = false,
......@@ -3363,15 +3661,15 @@ pub const SelectionControl = packed struct {
33633661 _reserved_bit_31: bool = false,
33643662};
33653663pub const LoopControl = packed struct {
3366 Unroll: bool = false,
3367 DontUnroll: bool = false,
3368 DependencyInfinite: bool = false,
3369 DependencyLength: bool = false,
3370 MinIterations: bool = false,
3371 MaxIterations: bool = false,
3372 IterationMultiple: bool = false,
3373 PeelCount: bool = false,
3374 PartialCount: bool = false,
3664 unroll: bool = false,
3665 dont_unroll: bool = false,
3666 dependency_infinite: bool = false,
3667 dependency_length: bool = false,
3668 min_iterations: bool = false,
3669 max_iterations: bool = false,
3670 iteration_multiple: bool = false,
3671 peel_count: bool = false,
3672 partial_count: bool = false,
33753673 _reserved_bit_9: bool = false,
33763674 _reserved_bit_10: bool = false,
33773675 _reserved_bit_11: bool = false,
......@@ -3379,16 +3677,16 @@ pub const LoopControl = packed struct {
33793677 _reserved_bit_13: bool = false,
33803678 _reserved_bit_14: bool = false,
33813679 _reserved_bit_15: bool = false,
3382 InitiationIntervalINTEL: bool = false,
3383 MaxConcurrencyINTEL: bool = false,
3384 DependencyArrayINTEL: bool = false,
3385 PipelineEnableINTEL: bool = false,
3386 LoopCoalesceINTEL: bool = false,
3387 MaxInterleavingINTEL: bool = false,
3388 SpeculatedIterationsINTEL: bool = false,
3389 NoFusionINTEL: bool = false,
3390 LoopCountINTEL: bool = false,
3391 MaxReinvocationDelayINTEL: bool = false,
3680 initiation_interval_intel: bool = false,
3681 max_concurrency_intel: bool = false,
3682 dependency_array_intel: bool = false,
3683 pipeline_enable_intel: bool = false,
3684 loop_coalesce_intel: bool = false,
3685 max_interleaving_intel: bool = false,
3686 speculated_iterations_intel: bool = false,
3687 no_fusion_intel: bool = false,
3688 loop_count_intel: bool = false,
3689 max_reinvocation_delay_intel: bool = false,
33923690 _reserved_bit_26: bool = false,
33933691 _reserved_bit_27: bool = false,
33943692 _reserved_bit_28: bool = false,
......@@ -3397,15 +3695,15 @@ pub const LoopControl = packed struct {
33973695 _reserved_bit_31: bool = false,
33983696
33993697 pub const Extended = struct {
3400 Unroll: bool = false,
3401 DontUnroll: bool = false,
3402 DependencyInfinite: bool = false,
3403 DependencyLength: ?struct { literal_integer: LiteralInteger } = null,
3404 MinIterations: ?struct { literal_integer: LiteralInteger } = null,
3405 MaxIterations: ?struct { literal_integer: LiteralInteger } = null,
3406 IterationMultiple: ?struct { literal_integer: LiteralInteger } = null,
3407 PeelCount: ?struct { literal_integer: LiteralInteger } = null,
3408 PartialCount: ?struct { literal_integer: LiteralInteger } = null,
3698 unroll: bool = false,
3699 dont_unroll: bool = false,
3700 dependency_infinite: bool = false,
3701 dependency_length: ?struct { literal_integer: LiteralInteger } = null,
3702 min_iterations: ?struct { literal_integer: LiteralInteger } = null,
3703 max_iterations: ?struct { literal_integer: LiteralInteger } = null,
3704 iteration_multiple: ?struct { literal_integer: LiteralInteger } = null,
3705 peel_count: ?struct { literal_integer: LiteralInteger } = null,
3706 partial_count: ?struct { literal_integer: LiteralInteger } = null,
34093707 _reserved_bit_9: bool = false,
34103708 _reserved_bit_10: bool = false,
34113709 _reserved_bit_11: bool = false,
......@@ -3413,16 +3711,16 @@ pub const LoopControl = packed struct {
34133711 _reserved_bit_13: bool = false,
34143712 _reserved_bit_14: bool = false,
34153713 _reserved_bit_15: bool = false,
3416 InitiationIntervalINTEL: ?struct { literal_integer: LiteralInteger } = null,
3417 MaxConcurrencyINTEL: ?struct { literal_integer: LiteralInteger } = null,
3418 DependencyArrayINTEL: ?struct { literal_integer: LiteralInteger } = null,
3419 PipelineEnableINTEL: ?struct { literal_integer: LiteralInteger } = null,
3420 LoopCoalesceINTEL: ?struct { literal_integer: LiteralInteger } = null,
3421 MaxInterleavingINTEL: ?struct { literal_integer: LiteralInteger } = null,
3422 SpeculatedIterationsINTEL: ?struct { literal_integer: LiteralInteger } = null,
3423 NoFusionINTEL: bool = false,
3424 LoopCountINTEL: ?struct { literal_integer: LiteralInteger } = null,
3425 MaxReinvocationDelayINTEL: ?struct { literal_integer: LiteralInteger } = null,
3714 initiation_interval_intel: ?struct { literal_integer: LiteralInteger } = null,
3715 max_concurrency_intel: ?struct { literal_integer: LiteralInteger } = null,
3716 dependency_array_intel: ?struct { literal_integer: LiteralInteger } = null,
3717 pipeline_enable_intel: ?struct { literal_integer: LiteralInteger } = null,
3718 loop_coalesce_intel: ?struct { literal_integer: LiteralInteger } = null,
3719 max_interleaving_intel: ?struct { literal_integer: LiteralInteger } = null,
3720 speculated_iterations_intel: ?struct { literal_integer: LiteralInteger } = null,
3721 no_fusion_intel: bool = false,
3722 loop_count_intel: ?struct { literal_integer: LiteralInteger } = null,
3723 max_reinvocation_delay_intel: ?struct { literal_integer: LiteralInteger } = null,
34263724 _reserved_bit_26: bool = false,
34273725 _reserved_bit_27: bool = false,
34283726 _reserved_bit_28: bool = false,
......@@ -3432,10 +3730,10 @@ pub const LoopControl = packed struct {
34323730 };
34333731};
34343732pub const FunctionControl = packed struct {
3435 Inline: bool = false,
3436 DontInline: bool = false,
3437 Pure: bool = false,
3438 Const: bool = false,
3733 @"inline": bool = false,
3734 dont_inline: bool = false,
3735 pure: bool = false,
3736 @"const": bool = false,
34393737 _reserved_bit_4: bool = false,
34403738 _reserved_bit_5: bool = false,
34413739 _reserved_bit_6: bool = false,
......@@ -3448,7 +3746,7 @@ pub const FunctionControl = packed struct {
34483746 _reserved_bit_13: bool = false,
34493747 _reserved_bit_14: bool = false,
34503748 _reserved_bit_15: bool = false,
3451 OptNoneINTEL: bool = false,
3749 opt_none_ext: bool = false,
34523750 _reserved_bit_17: bool = false,
34533751 _reserved_bit_18: bool = false,
34543752 _reserved_bit_19: bool = false,
......@@ -3467,21 +3765,21 @@ pub const FunctionControl = packed struct {
34673765};
34683766pub const MemorySemantics = packed struct {
34693767 _reserved_bit_0: bool = false,
3470 Acquire: bool = false,
3471 Release: bool = false,
3472 AcquireRelease: bool = false,
3473 SequentiallyConsistent: bool = false,
3768 acquire: bool = false,
3769 release: bool = false,
3770 acquire_release: bool = false,
3771 sequentially_consistent: bool = false,
34743772 _reserved_bit_5: bool = false,
3475 UniformMemory: bool = false,
3476 SubgroupMemory: bool = false,
3477 WorkgroupMemory: bool = false,
3478 CrossWorkgroupMemory: bool = false,
3479 AtomicCounterMemory: bool = false,
3480 ImageMemory: bool = false,
3481 OutputMemory: bool = false,
3482 MakeAvailable: bool = false,
3483 MakeVisible: bool = false,
3484 Volatile: bool = false,
3773 uniform_memory: bool = false,
3774 subgroup_memory: bool = false,
3775 workgroup_memory: bool = false,
3776 cross_workgroup_memory: bool = false,
3777 atomic_counter_memory: bool = false,
3778 image_memory: bool = false,
3779 output_memory: bool = false,
3780 make_available: bool = false,
3781 make_visible: bool = false,
3782 @"volatile": bool = false,
34853783 _reserved_bit_16: bool = false,
34863784 _reserved_bit_17: bool = false,
34873785 _reserved_bit_18: bool = false,
......@@ -3498,18 +3796,14 @@ pub const MemorySemantics = packed struct {
34983796 _reserved_bit_29: bool = false,
34993797 _reserved_bit_30: bool = false,
35003798 _reserved_bit_31: bool = false,
3501
3502 pub const OutputMemoryKHR: MemorySemantics = .{ .OutputMemory = true };
3503 pub const MakeAvailableKHR: MemorySemantics = .{ .MakeAvailable = true };
3504 pub const MakeVisibleKHR: MemorySemantics = .{ .MakeVisible = true };
35053799};
35063800pub const MemoryAccess = packed struct {
3507 Volatile: bool = false,
3508 Aligned: bool = false,
3509 Nontemporal: bool = false,
3510 MakePointerAvailable: bool = false,
3511 MakePointerVisible: bool = false,
3512 NonPrivatePointer: bool = false,
3801 @"volatile": bool = false,
3802 aligned: bool = false,
3803 nontemporal: bool = false,
3804 make_pointer_available: bool = false,
3805 make_pointer_visible: bool = false,
3806 non_private_pointer: bool = false,
35133807 _reserved_bit_6: bool = false,
35143808 _reserved_bit_7: bool = false,
35153809 _reserved_bit_8: bool = false,
......@@ -3520,8 +3814,8 @@ pub const MemoryAccess = packed struct {
35203814 _reserved_bit_13: bool = false,
35213815 _reserved_bit_14: bool = false,
35223816 _reserved_bit_15: bool = false,
3523 AliasScopeINTELMask: bool = false,
3524 NoAliasINTELMask: bool = false,
3817 alias_scope_intel_mask: bool = false,
3818 no_alias_intel_mask: bool = false,
35253819 _reserved_bit_18: bool = false,
35263820 _reserved_bit_19: bool = false,
35273821 _reserved_bit_20: bool = false,
......@@ -3537,17 +3831,13 @@ pub const MemoryAccess = packed struct {
35373831 _reserved_bit_30: bool = false,
35383832 _reserved_bit_31: bool = false,
35393833
3540 pub const MakePointerAvailableKHR: MemoryAccess = .{ .MakePointerAvailable = true };
3541 pub const MakePointerVisibleKHR: MemoryAccess = .{ .MakePointerVisible = true };
3542 pub const NonPrivatePointerKHR: MemoryAccess = .{ .NonPrivatePointer = true };
3543
35443834 pub const Extended = struct {
3545 Volatile: bool = false,
3546 Aligned: ?struct { literal_integer: LiteralInteger } = null,
3547 Nontemporal: bool = false,
3548 MakePointerAvailable: ?struct { id_scope: IdScope } = null,
3549 MakePointerVisible: ?struct { id_scope: IdScope } = null,
3550 NonPrivatePointer: bool = false,
3835 @"volatile": bool = false,
3836 aligned: ?struct { literal_integer: LiteralInteger } = null,
3837 nontemporal: bool = false,
3838 make_pointer_available: ?struct { id_scope: Id } = null,
3839 make_pointer_visible: ?struct { id_scope: Id } = null,
3840 non_private_pointer: bool = false,
35513841 _reserved_bit_6: bool = false,
35523842 _reserved_bit_7: bool = false,
35533843 _reserved_bit_8: bool = false,
......@@ -3558,8 +3848,8 @@ pub const MemoryAccess = packed struct {
35583848 _reserved_bit_13: bool = false,
35593849 _reserved_bit_14: bool = false,
35603850 _reserved_bit_15: bool = false,
3561 AliasScopeINTELMask: ?struct { id_ref: IdRef } = null,
3562 NoAliasINTELMask: ?struct { id_ref: IdRef } = null,
3851 alias_scope_intel_mask: ?struct { id_ref: Id } = null,
3852 no_alias_intel_mask: ?struct { id_ref: Id } = null,
35633853 _reserved_bit_18: bool = false,
35643854 _reserved_bit_19: bool = false,
35653855 _reserved_bit_20: bool = false,
......@@ -3577,7 +3867,7 @@ pub const MemoryAccess = packed struct {
35773867 };
35783868};
35793869pub const KernelProfilingInfo = packed struct {
3580 CmdExecTime: bool = false,
3870 cmd_exec_time: bool = false,
35813871 _reserved_bit_1: bool = false,
35823872 _reserved_bit_2: bool = false,
35833873 _reserved_bit_3: bool = false,
......@@ -3611,17 +3901,17 @@ pub const KernelProfilingInfo = packed struct {
36113901 _reserved_bit_31: bool = false,
36123902};
36133903pub const RayFlags = packed struct {
3614 OpaqueKHR: bool = false,
3615 NoOpaqueKHR: bool = false,
3616 TerminateOnFirstHitKHR: bool = false,
3617 SkipClosestHitShaderKHR: bool = false,
3618 CullBackFacingTrianglesKHR: bool = false,
3619 CullFrontFacingTrianglesKHR: bool = false,
3620 CullOpaqueKHR: bool = false,
3621 CullNoOpaqueKHR: bool = false,
3622 SkipTrianglesKHR: bool = false,
3623 SkipAABBsKHR: bool = false,
3624 ForceOpacityMicromap2StateEXT: bool = false,
3904 opaque_khr: bool = false,
3905 no_opaque_khr: bool = false,
3906 terminate_on_first_hit_khr: bool = false,
3907 skip_closest_hit_shader_khr: bool = false,
3908 cull_back_facing_triangles_khr: bool = false,
3909 cull_front_facing_triangles_khr: bool = false,
3910 cull_opaque_khr: bool = false,
3911 cull_no_opaque_khr: bool = false,
3912 skip_triangles_khr: bool = false,
3913 skip_aab_bs_khr: bool = false,
3914 force_opacity_micromap2state_ext: bool = false,
36253915 _reserved_bit_11: bool = false,
36263916 _reserved_bit_12: bool = false,
36273917 _reserved_bit_13: bool = false,
......@@ -3645,10 +3935,10 @@ pub const RayFlags = packed struct {
36453935 _reserved_bit_31: bool = false,
36463936};
36473937pub const FragmentShadingRate = packed struct {
3648 Vertical2Pixels: bool = false,
3649 Vertical4Pixels: bool = false,
3650 Horizontal2Pixels: bool = false,
3651 Horizontal4Pixels: bool = false,
3938 vertical2pixels: bool = false,
3939 vertical4pixels: bool = false,
3940 horizontal2pixels: bool = false,
3941 horizontal4pixels: bool = false,
36523942 _reserved_bit_4: bool = false,
36533943 _reserved_bit_5: bool = false,
36543944 _reserved_bit_6: bool = false,
......@@ -3679,8 +3969,8 @@ pub const FragmentShadingRate = packed struct {
36793969 _reserved_bit_31: bool = false,
36803970};
36813971pub const RawAccessChainOperands = packed struct {
3682 RobustnessPerComponentNV: bool = false,
3683 RobustnessPerElementNV: bool = false,
3972 robustness_per_component_nv: bool = false,
3973 robustness_per_element_nv: bool = false,
36843974 _reserved_bit_2: bool = false,
36853975 _reserved_bit_3: bool = false,
36863976 _reserved_bit_4: bool = false,
......@@ -3713,1199 +4003,1187 @@ pub const RawAccessChainOperands = packed struct {
37134003 _reserved_bit_31: bool = false,
37144004};
37154005pub const SourceLanguage = enum(u32) {
3716 Unknown = 0,
3717 ESSL = 1,
3718 GLSL = 2,
3719 OpenCL_C = 3,
3720 OpenCL_CPP = 4,
3721 HLSL = 5,
3722 CPP_for_OpenCL = 6,
3723 SYCL = 7,
3724 HERO_C = 8,
3725 NZSL = 9,
3726 WGSL = 10,
3727 Slang = 11,
3728 Zig = 12,
4006 unknown = 0,
4007 essl = 1,
4008 glsl = 2,
4009 open_cl_c = 3,
4010 open_cl_cpp = 4,
4011 hlsl = 5,
4012 cpp_for_open_cl = 6,
4013 sycl = 7,
4014 hero_c = 8,
4015 nzsl = 9,
4016 wgsl = 10,
4017 slang = 11,
4018 zig = 12,
4019 rust = 13,
37294020};
37304021pub const ExecutionModel = enum(u32) {
3731 Vertex = 0,
3732 TessellationControl = 1,
3733 TessellationEvaluation = 2,
3734 Geometry = 3,
3735 Fragment = 4,
3736 GLCompute = 5,
3737 Kernel = 6,
3738 TaskNV = 5267,
3739 MeshNV = 5268,
3740 RayGenerationKHR = 5313,
3741 IntersectionKHR = 5314,
3742 AnyHitKHR = 5315,
3743 ClosestHitKHR = 5316,
3744 MissKHR = 5317,
3745 CallableKHR = 5318,
3746 TaskEXT = 5364,
3747 MeshEXT = 5365,
3748
3749 pub const RayGenerationNV = ExecutionModel.RayGenerationKHR;
3750 pub const IntersectionNV = ExecutionModel.IntersectionKHR;
3751 pub const AnyHitNV = ExecutionModel.AnyHitKHR;
3752 pub const ClosestHitNV = ExecutionModel.ClosestHitKHR;
3753 pub const MissNV = ExecutionModel.MissKHR;
3754 pub const CallableNV = ExecutionModel.CallableKHR;
4022 vertex = 0,
4023 tessellation_control = 1,
4024 tessellation_evaluation = 2,
4025 geometry = 3,
4026 fragment = 4,
4027 gl_compute = 5,
4028 kernel = 6,
4029 task_nv = 5267,
4030 mesh_nv = 5268,
4031 ray_generation_khr = 5313,
4032 intersection_khr = 5314,
4033 any_hit_khr = 5315,
4034 closest_hit_khr = 5316,
4035 miss_khr = 5317,
4036 callable_khr = 5318,
4037 task_ext = 5364,
4038 mesh_ext = 5365,
37554039};
37564040pub const AddressingModel = enum(u32) {
3757 Logical = 0,
3758 Physical32 = 1,
3759 Physical64 = 2,
3760 PhysicalStorageBuffer64 = 5348,
3761
3762 pub const PhysicalStorageBuffer64EXT = AddressingModel.PhysicalStorageBuffer64;
4041 logical = 0,
4042 physical32 = 1,
4043 physical64 = 2,
4044 physical_storage_buffer64 = 5348,
37634045};
37644046pub const MemoryModel = enum(u32) {
3765 Simple = 0,
3766 GLSL450 = 1,
3767 OpenCL = 2,
3768 Vulkan = 3,
3769
3770 pub const VulkanKHR = MemoryModel.Vulkan;
4047 simple = 0,
4048 glsl450 = 1,
4049 open_cl = 2,
4050 vulkan = 3,
37714051};
37724052pub const ExecutionMode = enum(u32) {
3773 Invocations = 0,
3774 SpacingEqual = 1,
3775 SpacingFractionalEven = 2,
3776 SpacingFractionalOdd = 3,
3777 VertexOrderCw = 4,
3778 VertexOrderCcw = 5,
3779 PixelCenterInteger = 6,
3780 OriginUpperLeft = 7,
3781 OriginLowerLeft = 8,
3782 EarlyFragmentTests = 9,
3783 PointMode = 10,
3784 Xfb = 11,
3785 DepthReplacing = 12,
3786 DepthGreater = 14,
3787 DepthLess = 15,
3788 DepthUnchanged = 16,
3789 LocalSize = 17,
3790 LocalSizeHint = 18,
3791 InputPoints = 19,
3792 InputLines = 20,
3793 InputLinesAdjacency = 21,
3794 Triangles = 22,
3795 InputTrianglesAdjacency = 23,
3796 Quads = 24,
3797 Isolines = 25,
3798 OutputVertices = 26,
3799 OutputPoints = 27,
3800 OutputLineStrip = 28,
3801 OutputTriangleStrip = 29,
3802 VecTypeHint = 30,
3803 ContractionOff = 31,
3804 Initializer = 33,
3805 Finalizer = 34,
3806 SubgroupSize = 35,
3807 SubgroupsPerWorkgroup = 36,
3808 SubgroupsPerWorkgroupId = 37,
3809 LocalSizeId = 38,
3810 LocalSizeHintId = 39,
3811 NonCoherentColorAttachmentReadEXT = 4169,
3812 NonCoherentDepthAttachmentReadEXT = 4170,
3813 NonCoherentStencilAttachmentReadEXT = 4171,
3814 SubgroupUniformControlFlowKHR = 4421,
3815 PostDepthCoverage = 4446,
3816 DenormPreserve = 4459,
3817 DenormFlushToZero = 4460,
3818 SignedZeroInfNanPreserve = 4461,
3819 RoundingModeRTE = 4462,
3820 RoundingModeRTZ = 4463,
3821 EarlyAndLateFragmentTestsAMD = 5017,
3822 StencilRefReplacingEXT = 5027,
3823 CoalescingAMDX = 5069,
3824 MaxNodeRecursionAMDX = 5071,
3825 StaticNumWorkgroupsAMDX = 5072,
3826 ShaderIndexAMDX = 5073,
3827 MaxNumWorkgroupsAMDX = 5077,
3828 StencilRefUnchangedFrontAMD = 5079,
3829 StencilRefGreaterFrontAMD = 5080,
3830 StencilRefLessFrontAMD = 5081,
3831 StencilRefUnchangedBackAMD = 5082,
3832 StencilRefGreaterBackAMD = 5083,
3833 StencilRefLessBackAMD = 5084,
3834 QuadDerivativesKHR = 5088,
3835 RequireFullQuadsKHR = 5089,
3836 OutputLinesEXT = 5269,
3837 OutputPrimitivesEXT = 5270,
3838 DerivativeGroupQuadsNV = 5289,
3839 DerivativeGroupLinearNV = 5290,
3840 OutputTrianglesEXT = 5298,
3841 PixelInterlockOrderedEXT = 5366,
3842 PixelInterlockUnorderedEXT = 5367,
3843 SampleInterlockOrderedEXT = 5368,
3844 SampleInterlockUnorderedEXT = 5369,
3845 ShadingRateInterlockOrderedEXT = 5370,
3846 ShadingRateInterlockUnorderedEXT = 5371,
3847 SharedLocalMemorySizeINTEL = 5618,
3848 RoundingModeRTPINTEL = 5620,
3849 RoundingModeRTNINTEL = 5621,
3850 FloatingPointModeALTINTEL = 5622,
3851 FloatingPointModeIEEEINTEL = 5623,
3852 MaxWorkgroupSizeINTEL = 5893,
3853 MaxWorkDimINTEL = 5894,
3854 NoGlobalOffsetINTEL = 5895,
3855 NumSIMDWorkitemsINTEL = 5896,
3856 SchedulerTargetFmaxMhzINTEL = 5903,
3857 MaximallyReconvergesKHR = 6023,
3858 FPFastMathDefault = 6028,
3859 StreamingInterfaceINTEL = 6154,
3860 RegisterMapInterfaceINTEL = 6160,
3861 NamedBarrierCountINTEL = 6417,
3862 MaximumRegistersINTEL = 6461,
3863 MaximumRegistersIdINTEL = 6462,
3864 NamedMaximumRegistersINTEL = 6463,
3865
3866 pub const OutputLinesNV = ExecutionMode.OutputLinesEXT;
3867 pub const OutputPrimitivesNV = ExecutionMode.OutputPrimitivesEXT;
3868 pub const OutputTrianglesNV = ExecutionMode.OutputTrianglesEXT;
4053 invocations = 0,
4054 spacing_equal = 1,
4055 spacing_fractional_even = 2,
4056 spacing_fractional_odd = 3,
4057 vertex_order_cw = 4,
4058 vertex_order_ccw = 5,
4059 pixel_center_integer = 6,
4060 origin_upper_left = 7,
4061 origin_lower_left = 8,
4062 early_fragment_tests = 9,
4063 point_mode = 10,
4064 xfb = 11,
4065 depth_replacing = 12,
4066 depth_greater = 14,
4067 depth_less = 15,
4068 depth_unchanged = 16,
4069 local_size = 17,
4070 local_size_hint = 18,
4071 input_points = 19,
4072 input_lines = 20,
4073 input_lines_adjacency = 21,
4074 triangles = 22,
4075 input_triangles_adjacency = 23,
4076 quads = 24,
4077 isolines = 25,
4078 output_vertices = 26,
4079 output_points = 27,
4080 output_line_strip = 28,
4081 output_triangle_strip = 29,
4082 vec_type_hint = 30,
4083 contraction_off = 31,
4084 initializer = 33,
4085 finalizer = 34,
4086 subgroup_size = 35,
4087 subgroups_per_workgroup = 36,
4088 subgroups_per_workgroup_id = 37,
4089 local_size_id = 38,
4090 local_size_hint_id = 39,
4091 non_coherent_color_attachment_read_ext = 4169,
4092 non_coherent_depth_attachment_read_ext = 4170,
4093 non_coherent_stencil_attachment_read_ext = 4171,
4094 subgroup_uniform_control_flow_khr = 4421,
4095 post_depth_coverage = 4446,
4096 denorm_preserve = 4459,
4097 denorm_flush_to_zero = 4460,
4098 signed_zero_inf_nan_preserve = 4461,
4099 rounding_mode_rte = 4462,
4100 rounding_mode_rtz = 4463,
4101 non_coherent_tile_attachment_read_qcom = 4489,
4102 tile_shading_rate_qcom = 4490,
4103 early_and_late_fragment_tests_amd = 5017,
4104 stencil_ref_replacing_ext = 5027,
4105 coalescing_amdx = 5069,
4106 is_api_entry_amdx = 5070,
4107 max_node_recursion_amdx = 5071,
4108 static_num_workgroups_amdx = 5072,
4109 shader_index_amdx = 5073,
4110 max_num_workgroups_amdx = 5077,
4111 stencil_ref_unchanged_front_amd = 5079,
4112 stencil_ref_greater_front_amd = 5080,
4113 stencil_ref_less_front_amd = 5081,
4114 stencil_ref_unchanged_back_amd = 5082,
4115 stencil_ref_greater_back_amd = 5083,
4116 stencil_ref_less_back_amd = 5084,
4117 quad_derivatives_khr = 5088,
4118 require_full_quads_khr = 5089,
4119 shares_input_with_amdx = 5102,
4120 output_lines_ext = 5269,
4121 output_primitives_ext = 5270,
4122 derivative_group_quads_khr = 5289,
4123 derivative_group_linear_khr = 5290,
4124 output_triangles_ext = 5298,
4125 pixel_interlock_ordered_ext = 5366,
4126 pixel_interlock_unordered_ext = 5367,
4127 sample_interlock_ordered_ext = 5368,
4128 sample_interlock_unordered_ext = 5369,
4129 shading_rate_interlock_ordered_ext = 5370,
4130 shading_rate_interlock_unordered_ext = 5371,
4131 shared_local_memory_size_intel = 5618,
4132 rounding_mode_rtpintel = 5620,
4133 rounding_mode_rtnintel = 5621,
4134 floating_point_mode_altintel = 5622,
4135 floating_point_mode_ieeeintel = 5623,
4136 max_workgroup_size_intel = 5893,
4137 max_work_dim_intel = 5894,
4138 no_global_offset_intel = 5895,
4139 num_simd_workitems_intel = 5896,
4140 scheduler_target_fmax_mhz_intel = 5903,
4141 maximally_reconverges_khr = 6023,
4142 fp_fast_math_default = 6028,
4143 streaming_interface_intel = 6154,
4144 register_map_interface_intel = 6160,
4145 named_barrier_count_intel = 6417,
4146 maximum_registers_intel = 6461,
4147 maximum_registers_id_intel = 6462,
4148 named_maximum_registers_intel = 6463,
38694149
38704150 pub const Extended = union(ExecutionMode) {
3871 Invocations: struct { literal_integer: LiteralInteger },
3872 SpacingEqual,
3873 SpacingFractionalEven,
3874 SpacingFractionalOdd,
3875 VertexOrderCw,
3876 VertexOrderCcw,
3877 PixelCenterInteger,
3878 OriginUpperLeft,
3879 OriginLowerLeft,
3880 EarlyFragmentTests,
3881 PointMode,
3882 Xfb,
3883 DepthReplacing,
3884 DepthGreater,
3885 DepthLess,
3886 DepthUnchanged,
3887 LocalSize: struct { x_size: LiteralInteger, y_size: LiteralInteger, z_size: LiteralInteger },
3888 LocalSizeHint: struct { x_size: LiteralInteger, y_size: LiteralInteger, z_size: LiteralInteger },
3889 InputPoints,
3890 InputLines,
3891 InputLinesAdjacency,
3892 Triangles,
3893 InputTrianglesAdjacency,
3894 Quads,
3895 Isolines,
3896 OutputVertices: struct { vertex_count: LiteralInteger },
3897 OutputPoints,
3898 OutputLineStrip,
3899 OutputTriangleStrip,
3900 VecTypeHint: struct { vector_type: LiteralInteger },
3901 ContractionOff,
3902 Initializer,
3903 Finalizer,
3904 SubgroupSize: struct { subgroup_size: LiteralInteger },
3905 SubgroupsPerWorkgroup: struct { subgroups_per_workgroup: LiteralInteger },
3906 SubgroupsPerWorkgroupId: struct { subgroups_per_workgroup: IdRef },
3907 LocalSizeId: struct { x_size: IdRef, y_size: IdRef, z_size: IdRef },
3908 LocalSizeHintId: struct { x_size_hint: IdRef, y_size_hint: IdRef, z_size_hint: IdRef },
3909 NonCoherentColorAttachmentReadEXT,
3910 NonCoherentDepthAttachmentReadEXT,
3911 NonCoherentStencilAttachmentReadEXT,
3912 SubgroupUniformControlFlowKHR,
3913 PostDepthCoverage,
3914 DenormPreserve: struct { target_width: LiteralInteger },
3915 DenormFlushToZero: struct { target_width: LiteralInteger },
3916 SignedZeroInfNanPreserve: struct { target_width: LiteralInteger },
3917 RoundingModeRTE: struct { target_width: LiteralInteger },
3918 RoundingModeRTZ: struct { target_width: LiteralInteger },
3919 EarlyAndLateFragmentTestsAMD,
3920 StencilRefReplacingEXT,
3921 CoalescingAMDX,
3922 MaxNodeRecursionAMDX: struct { number_of_recursions: IdRef },
3923 StaticNumWorkgroupsAMDX: struct { x_size: IdRef, y_size: IdRef, z_size: IdRef },
3924 ShaderIndexAMDX: struct { shader_index: IdRef },
3925 MaxNumWorkgroupsAMDX: struct { x_size: IdRef, y_size: IdRef, z_size: IdRef },
3926 StencilRefUnchangedFrontAMD,
3927 StencilRefGreaterFrontAMD,
3928 StencilRefLessFrontAMD,
3929 StencilRefUnchangedBackAMD,
3930 StencilRefGreaterBackAMD,
3931 StencilRefLessBackAMD,
3932 QuadDerivativesKHR,
3933 RequireFullQuadsKHR,
3934 OutputLinesEXT,
3935 OutputPrimitivesEXT: struct { primitive_count: LiteralInteger },
3936 DerivativeGroupQuadsNV,
3937 DerivativeGroupLinearNV,
3938 OutputTrianglesEXT,
3939 PixelInterlockOrderedEXT,
3940 PixelInterlockUnorderedEXT,
3941 SampleInterlockOrderedEXT,
3942 SampleInterlockUnorderedEXT,
3943 ShadingRateInterlockOrderedEXT,
3944 ShadingRateInterlockUnorderedEXT,
3945 SharedLocalMemorySizeINTEL: struct { size: LiteralInteger },
3946 RoundingModeRTPINTEL: struct { target_width: LiteralInteger },
3947 RoundingModeRTNINTEL: struct { target_width: LiteralInteger },
3948 FloatingPointModeALTINTEL: struct { target_width: LiteralInteger },
3949 FloatingPointModeIEEEINTEL: struct { target_width: LiteralInteger },
3950 MaxWorkgroupSizeINTEL: struct { literal_integer_0: LiteralInteger, literal_integer_1: LiteralInteger, literal_integer_2: LiteralInteger },
3951 MaxWorkDimINTEL: struct { literal_integer: LiteralInteger },
3952 NoGlobalOffsetINTEL,
3953 NumSIMDWorkitemsINTEL: struct { literal_integer: LiteralInteger },
3954 SchedulerTargetFmaxMhzINTEL: struct { literal_integer: LiteralInteger },
3955 MaximallyReconvergesKHR,
3956 FPFastMathDefault: struct { target_type: IdRef, id_ref_1: IdRef },
3957 StreamingInterfaceINTEL: struct { stallfreereturn: LiteralInteger },
3958 RegisterMapInterfaceINTEL: struct { waitfordonewrite: LiteralInteger },
3959 NamedBarrierCountINTEL: struct { barrier_count: LiteralInteger },
3960 MaximumRegistersINTEL: struct { number_of_registers: LiteralInteger },
3961 MaximumRegistersIdINTEL: struct { number_of_registers: IdRef },
3962 NamedMaximumRegistersINTEL: struct { named_maximum_number_of_registers: NamedMaximumNumberOfRegisters },
4151 invocations: struct { literal_integer: LiteralInteger },
4152 spacing_equal,
4153 spacing_fractional_even,
4154 spacing_fractional_odd,
4155 vertex_order_cw,
4156 vertex_order_ccw,
4157 pixel_center_integer,
4158 origin_upper_left,
4159 origin_lower_left,
4160 early_fragment_tests,
4161 point_mode,
4162 xfb,
4163 depth_replacing,
4164 depth_greater,
4165 depth_less,
4166 depth_unchanged,
4167 local_size: struct { x_size: LiteralInteger, y_size: LiteralInteger, z_size: LiteralInteger },
4168 local_size_hint: struct { x_size: LiteralInteger, y_size: LiteralInteger, z_size: LiteralInteger },
4169 input_points,
4170 input_lines,
4171 input_lines_adjacency,
4172 triangles,
4173 input_triangles_adjacency,
4174 quads,
4175 isolines,
4176 output_vertices: struct { vertex_count: LiteralInteger },
4177 output_points,
4178 output_line_strip,
4179 output_triangle_strip,
4180 vec_type_hint: struct { vector_type: LiteralInteger },
4181 contraction_off,
4182 initializer,
4183 finalizer,
4184 subgroup_size: struct { subgroup_size: LiteralInteger },
4185 subgroups_per_workgroup: struct { subgroups_per_workgroup: LiteralInteger },
4186 subgroups_per_workgroup_id: struct { subgroups_per_workgroup: Id },
4187 local_size_id: struct { x_size: Id, y_size: Id, z_size: Id },
4188 local_size_hint_id: struct { x_size_hint: Id, y_size_hint: Id, z_size_hint: Id },
4189 non_coherent_color_attachment_read_ext,
4190 non_coherent_depth_attachment_read_ext,
4191 non_coherent_stencil_attachment_read_ext,
4192 subgroup_uniform_control_flow_khr,
4193 post_depth_coverage,
4194 denorm_preserve: struct { target_width: LiteralInteger },
4195 denorm_flush_to_zero: struct { target_width: LiteralInteger },
4196 signed_zero_inf_nan_preserve: struct { target_width: LiteralInteger },
4197 rounding_mode_rte: struct { target_width: LiteralInteger },
4198 rounding_mode_rtz: struct { target_width: LiteralInteger },
4199 non_coherent_tile_attachment_read_qcom,
4200 tile_shading_rate_qcom: struct { x_rate: LiteralInteger, y_rate: LiteralInteger, z_rate: LiteralInteger },
4201 early_and_late_fragment_tests_amd,
4202 stencil_ref_replacing_ext,
4203 coalescing_amdx,
4204 is_api_entry_amdx: struct { is_entry: Id },
4205 max_node_recursion_amdx: struct { number_of_recursions: Id },
4206 static_num_workgroups_amdx: struct { x_size: Id, y_size: Id, z_size: Id },
4207 shader_index_amdx: struct { shader_index: Id },
4208 max_num_workgroups_amdx: struct { x_size: Id, y_size: Id, z_size: Id },
4209 stencil_ref_unchanged_front_amd,
4210 stencil_ref_greater_front_amd,
4211 stencil_ref_less_front_amd,
4212 stencil_ref_unchanged_back_amd,
4213 stencil_ref_greater_back_amd,
4214 stencil_ref_less_back_amd,
4215 quad_derivatives_khr,
4216 require_full_quads_khr,
4217 shares_input_with_amdx: struct { node_name: Id, shader_index: Id },
4218 output_lines_ext,
4219 output_primitives_ext: struct { primitive_count: LiteralInteger },
4220 derivative_group_quads_khr,
4221 derivative_group_linear_khr,
4222 output_triangles_ext,
4223 pixel_interlock_ordered_ext,
4224 pixel_interlock_unordered_ext,
4225 sample_interlock_ordered_ext,
4226 sample_interlock_unordered_ext,
4227 shading_rate_interlock_ordered_ext,
4228 shading_rate_interlock_unordered_ext,
4229 shared_local_memory_size_intel: struct { size: LiteralInteger },
4230 rounding_mode_rtpintel: struct { target_width: LiteralInteger },
4231 rounding_mode_rtnintel: struct { target_width: LiteralInteger },
4232 floating_point_mode_altintel: struct { target_width: LiteralInteger },
4233 floating_point_mode_ieeeintel: struct { target_width: LiteralInteger },
4234 max_workgroup_size_intel: struct { literal_integer_0: LiteralInteger, literal_integer_1: LiteralInteger, literal_integer_2: LiteralInteger },
4235 max_work_dim_intel: struct { literal_integer: LiteralInteger },
4236 no_global_offset_intel,
4237 num_simd_workitems_intel: struct { literal_integer: LiteralInteger },
4238 scheduler_target_fmax_mhz_intel: struct { literal_integer: LiteralInteger },
4239 maximally_reconverges_khr,
4240 fp_fast_math_default: struct { target_type: Id, id_ref_1: Id },
4241 streaming_interface_intel: struct { stall_free_return: LiteralInteger },
4242 register_map_interface_intel: struct { wait_for_done_write: LiteralInteger },
4243 named_barrier_count_intel: struct { barrier_count: LiteralInteger },
4244 maximum_registers_intel: struct { number_of_registers: LiteralInteger },
4245 maximum_registers_id_intel: struct { number_of_registers: Id },
4246 named_maximum_registers_intel: struct { named_maximum_number_of_registers: NamedMaximumNumberOfRegisters },
39634247 };
39644248};
39654249pub const StorageClass = enum(u32) {
3966 UniformConstant = 0,
3967 Input = 1,
3968 Uniform = 2,
3969 Output = 3,
3970 Workgroup = 4,
3971 CrossWorkgroup = 5,
3972 Private = 6,
3973 Function = 7,
3974 Generic = 8,
3975 PushConstant = 9,
3976 AtomicCounter = 10,
3977 Image = 11,
3978 StorageBuffer = 12,
3979 TileImageEXT = 4172,
3980 NodePayloadAMDX = 5068,
3981 NodeOutputPayloadAMDX = 5076,
3982 CallableDataKHR = 5328,
3983 IncomingCallableDataKHR = 5329,
3984 RayPayloadKHR = 5338,
3985 HitAttributeKHR = 5339,
3986 IncomingRayPayloadKHR = 5342,
3987 ShaderRecordBufferKHR = 5343,
3988 PhysicalStorageBuffer = 5349,
3989 HitObjectAttributeNV = 5385,
3990 TaskPayloadWorkgroupEXT = 5402,
3991 CodeSectionINTEL = 5605,
3992 DeviceOnlyINTEL = 5936,
3993 HostOnlyINTEL = 5937,
3994
3995 pub const CallableDataNV = StorageClass.CallableDataKHR;
3996 pub const IncomingCallableDataNV = StorageClass.IncomingCallableDataKHR;
3997 pub const RayPayloadNV = StorageClass.RayPayloadKHR;
3998 pub const HitAttributeNV = StorageClass.HitAttributeKHR;
3999 pub const IncomingRayPayloadNV = StorageClass.IncomingRayPayloadKHR;
4000 pub const ShaderRecordBufferNV = StorageClass.ShaderRecordBufferKHR;
4001 pub const PhysicalStorageBufferEXT = StorageClass.PhysicalStorageBuffer;
4250 uniform_constant = 0,
4251 input = 1,
4252 uniform = 2,
4253 output = 3,
4254 workgroup = 4,
4255 cross_workgroup = 5,
4256 private = 6,
4257 function = 7,
4258 generic = 8,
4259 push_constant = 9,
4260 atomic_counter = 10,
4261 image = 11,
4262 storage_buffer = 12,
4263 tile_image_ext = 4172,
4264 tile_attachment_qcom = 4491,
4265 node_payload_amdx = 5068,
4266 callable_data_khr = 5328,
4267 incoming_callable_data_khr = 5329,
4268 ray_payload_khr = 5338,
4269 hit_attribute_khr = 5339,
4270 incoming_ray_payload_khr = 5342,
4271 shader_record_buffer_khr = 5343,
4272 physical_storage_buffer = 5349,
4273 hit_object_attribute_nv = 5385,
4274 task_payload_workgroup_ext = 5402,
4275 code_section_intel = 5605,
4276 device_only_intel = 5936,
4277 host_only_intel = 5937,
40024278};
40034279pub const Dim = enum(u32) {
4004 @"1D" = 0,
4005 @"2D" = 1,
4006 @"3D" = 2,
4007 Cube = 3,
4008 Rect = 4,
4009 Buffer = 5,
4010 SubpassData = 6,
4011 TileImageDataEXT = 4173,
4280 @"1d" = 0,
4281 @"2d" = 1,
4282 @"3d" = 2,
4283 cube = 3,
4284 rect = 4,
4285 buffer = 5,
4286 subpass_data = 6,
4287 tile_image_data_ext = 4173,
40124288};
40134289pub const SamplerAddressingMode = enum(u32) {
4014 None = 0,
4015 ClampToEdge = 1,
4016 Clamp = 2,
4017 Repeat = 3,
4018 RepeatMirrored = 4,
4290 none = 0,
4291 clamp_to_edge = 1,
4292 clamp = 2,
4293 repeat = 3,
4294 repeat_mirrored = 4,
40194295};
40204296pub const SamplerFilterMode = enum(u32) {
4021 Nearest = 0,
4022 Linear = 1,
4297 nearest = 0,
4298 linear = 1,
40234299};
40244300pub const ImageFormat = enum(u32) {
4025 Unknown = 0,
4026 Rgba32f = 1,
4027 Rgba16f = 2,
4028 R32f = 3,
4029 Rgba8 = 4,
4030 Rgba8Snorm = 5,
4031 Rg32f = 6,
4032 Rg16f = 7,
4033 R11fG11fB10f = 8,
4034 R16f = 9,
4035 Rgba16 = 10,
4036 Rgb10A2 = 11,
4037 Rg16 = 12,
4038 Rg8 = 13,
4039 R16 = 14,
4040 R8 = 15,
4041 Rgba16Snorm = 16,
4042 Rg16Snorm = 17,
4043 Rg8Snorm = 18,
4044 R16Snorm = 19,
4045 R8Snorm = 20,
4046 Rgba32i = 21,
4047 Rgba16i = 22,
4048 Rgba8i = 23,
4049 R32i = 24,
4050 Rg32i = 25,
4051 Rg16i = 26,
4052 Rg8i = 27,
4053 R16i = 28,
4054 R8i = 29,
4055 Rgba32ui = 30,
4056 Rgba16ui = 31,
4057 Rgba8ui = 32,
4058 R32ui = 33,
4059 Rgb10a2ui = 34,
4060 Rg32ui = 35,
4061 Rg16ui = 36,
4062 Rg8ui = 37,
4063 R16ui = 38,
4064 R8ui = 39,
4065 R64ui = 40,
4066 R64i = 41,
4301 unknown = 0,
4302 rgba32f = 1,
4303 rgba16f = 2,
4304 r32f = 3,
4305 rgba8 = 4,
4306 rgba8snorm = 5,
4307 rg32f = 6,
4308 rg16f = 7,
4309 r11f_g11f_b10f = 8,
4310 r16f = 9,
4311 rgba16 = 10,
4312 rgb10a2 = 11,
4313 rg16 = 12,
4314 rg8 = 13,
4315 r16 = 14,
4316 r8 = 15,
4317 rgba16snorm = 16,
4318 rg16snorm = 17,
4319 rg8snorm = 18,
4320 r16snorm = 19,
4321 r8snorm = 20,
4322 rgba32i = 21,
4323 rgba16i = 22,
4324 rgba8i = 23,
4325 r32i = 24,
4326 rg32i = 25,
4327 rg16i = 26,
4328 rg8i = 27,
4329 r16i = 28,
4330 r8i = 29,
4331 rgba32ui = 30,
4332 rgba16ui = 31,
4333 rgba8ui = 32,
4334 r32ui = 33,
4335 rgb10a2ui = 34,
4336 rg32ui = 35,
4337 rg16ui = 36,
4338 rg8ui = 37,
4339 r16ui = 38,
4340 r8ui = 39,
4341 r64ui = 40,
4342 r64i = 41,
40674343};
40684344pub const ImageChannelOrder = enum(u32) {
4069 R = 0,
4070 A = 1,
4071 RG = 2,
4072 RA = 3,
4073 RGB = 4,
4074 RGBA = 5,
4075 BGRA = 6,
4076 ARGB = 7,
4077 Intensity = 8,
4078 Luminance = 9,
4079 Rx = 10,
4080 RGx = 11,
4081 RGBx = 12,
4082 Depth = 13,
4083 DepthStencil = 14,
4084 sRGB = 15,
4085 sRGBx = 16,
4086 sRGBA = 17,
4087 sBGRA = 18,
4088 ABGR = 19,
4345 r = 0,
4346 a = 1,
4347 rg = 2,
4348 ra = 3,
4349 rgb = 4,
4350 rgba = 5,
4351 bgra = 6,
4352 argb = 7,
4353 intensity = 8,
4354 luminance = 9,
4355 rx = 10,
4356 r_gx = 11,
4357 rg_bx = 12,
4358 depth = 13,
4359 depth_stencil = 14,
4360 s_rgb = 15,
4361 s_rg_bx = 16,
4362 s_rgba = 17,
4363 s_bgra = 18,
4364 abgr = 19,
40894365};
40904366pub const ImageChannelDataType = enum(u32) {
4091 SnormInt8 = 0,
4092 SnormInt16 = 1,
4093 UnormInt8 = 2,
4094 UnormInt16 = 3,
4095 UnormShort565 = 4,
4096 UnormShort555 = 5,
4097 UnormInt101010 = 6,
4098 SignedInt8 = 7,
4099 SignedInt16 = 8,
4100 SignedInt32 = 9,
4101 UnsignedInt8 = 10,
4102 UnsignedInt16 = 11,
4103 UnsignedInt32 = 12,
4104 HalfFloat = 13,
4105 Float = 14,
4106 UnormInt24 = 15,
4107 UnormInt101010_2 = 16,
4108 UnsignedIntRaw10EXT = 19,
4109 UnsignedIntRaw12EXT = 20,
4367 snorm_int8 = 0,
4368 snorm_int16 = 1,
4369 unorm_int8 = 2,
4370 unorm_int16 = 3,
4371 unorm_short565 = 4,
4372 unorm_short555 = 5,
4373 unorm_int101010 = 6,
4374 signed_int8 = 7,
4375 signed_int16 = 8,
4376 signed_int32 = 9,
4377 unsigned_int8 = 10,
4378 unsigned_int16 = 11,
4379 unsigned_int32 = 12,
4380 half_float = 13,
4381 float = 14,
4382 unorm_int24 = 15,
4383 unorm_int101010_2 = 16,
4384 unorm_int10x6ext = 17,
4385 unsigned_int_raw10ext = 19,
4386 unsigned_int_raw12ext = 20,
4387 unorm_int2_101010ext = 21,
4388 unsigned_int10x6ext = 22,
4389 unsigned_int12x4ext = 23,
4390 unsigned_int14x2ext = 24,
4391 unorm_int12x4ext = 25,
4392 unorm_int14x2ext = 26,
41104393};
41114394pub const FPRoundingMode = enum(u32) {
4112 RTE = 0,
4113 RTZ = 1,
4114 RTP = 2,
4115 RTN = 3,
4395 rte = 0,
4396 rtz = 1,
4397 rtp = 2,
4398 rtn = 3,
41164399};
41174400pub const FPDenormMode = enum(u32) {
4118 Preserve = 0,
4119 FlushToZero = 1,
4401 preserve = 0,
4402 flush_to_zero = 1,
41204403};
41214404pub const QuantizationModes = enum(u32) {
4122 TRN = 0,
4123 TRN_ZERO = 1,
4124 RND = 2,
4125 RND_ZERO = 3,
4126 RND_INF = 4,
4127 RND_MIN_INF = 5,
4128 RND_CONV = 6,
4129 RND_CONV_ODD = 7,
4405 trn = 0,
4406 trn_zero = 1,
4407 rnd = 2,
4408 rnd_zero = 3,
4409 rnd_inf = 4,
4410 rnd_min_inf = 5,
4411 rnd_conv = 6,
4412 rnd_conv_odd = 7,
41304413};
41314414pub const FPOperationMode = enum(u32) {
4132 IEEE = 0,
4133 ALT = 1,
4415 ieee = 0,
4416 alt = 1,
41344417};
41354418pub const OverflowModes = enum(u32) {
4136 WRAP = 0,
4137 SAT = 1,
4138 SAT_ZERO = 2,
4139 SAT_SYM = 3,
4419 wrap = 0,
4420 sat = 1,
4421 sat_zero = 2,
4422 sat_sym = 3,
41404423};
41414424pub const LinkageType = enum(u32) {
4142 Export = 0,
4143 Import = 1,
4144 LinkOnceODR = 2,
4425 @"export" = 0,
4426 import = 1,
4427 link_once_odr = 2,
41454428};
41464429pub const AccessQualifier = enum(u32) {
4147 ReadOnly = 0,
4148 WriteOnly = 1,
4149 ReadWrite = 2,
4430 read_only = 0,
4431 write_only = 1,
4432 read_write = 2,
41504433};
41514434pub const HostAccessQualifier = enum(u32) {
4152 NoneINTEL = 0,
4153 ReadINTEL = 1,
4154 WriteINTEL = 2,
4155 ReadWriteINTEL = 3,
4435 none_intel = 0,
4436 read_intel = 1,
4437 write_intel = 2,
4438 read_write_intel = 3,
41564439};
41574440pub const FunctionParameterAttribute = enum(u32) {
4158 Zext = 0,
4159 Sext = 1,
4160 ByVal = 2,
4161 Sret = 3,
4162 NoAlias = 4,
4163 NoCapture = 5,
4164 NoWrite = 6,
4165 NoReadWrite = 7,
4166 RuntimeAlignedINTEL = 5940,
4441 zext = 0,
4442 sext = 1,
4443 by_val = 2,
4444 sret = 3,
4445 no_alias = 4,
4446 no_capture = 5,
4447 no_write = 6,
4448 no_read_write = 7,
4449 runtime_aligned_intel = 5940,
41674450};
41684451pub const Decoration = enum(u32) {
4169 RelaxedPrecision = 0,
4170 SpecId = 1,
4171 Block = 2,
4172 BufferBlock = 3,
4173 RowMajor = 4,
4174 ColMajor = 5,
4175 ArrayStride = 6,
4176 MatrixStride = 7,
4177 GLSLShared = 8,
4178 GLSLPacked = 9,
4179 CPacked = 10,
4180 BuiltIn = 11,
4181 NoPerspective = 13,
4182 Flat = 14,
4183 Patch = 15,
4184 Centroid = 16,
4185 Sample = 17,
4186 Invariant = 18,
4187 Restrict = 19,
4188 Aliased = 20,
4189 Volatile = 21,
4190 Constant = 22,
4191 Coherent = 23,
4192 NonWritable = 24,
4193 NonReadable = 25,
4194 Uniform = 26,
4195 UniformId = 27,
4196 SaturatedConversion = 28,
4197 Stream = 29,
4198 Location = 30,
4199 Component = 31,
4200 Index = 32,
4201 Binding = 33,
4202 DescriptorSet = 34,
4203 Offset = 35,
4204 XfbBuffer = 36,
4205 XfbStride = 37,
4206 FuncParamAttr = 38,
4207 FPRoundingMode = 39,
4208 FPFastMathMode = 40,
4209 LinkageAttributes = 41,
4210 NoContraction = 42,
4211 InputAttachmentIndex = 43,
4212 Alignment = 44,
4213 MaxByteOffset = 45,
4214 AlignmentId = 46,
4215 MaxByteOffsetId = 47,
4216 NoSignedWrap = 4469,
4217 NoUnsignedWrap = 4470,
4218 WeightTextureQCOM = 4487,
4219 BlockMatchTextureQCOM = 4488,
4220 BlockMatchSamplerQCOM = 4499,
4221 ExplicitInterpAMD = 4999,
4222 NodeSharesPayloadLimitsWithAMDX = 5019,
4223 NodeMaxPayloadsAMDX = 5020,
4224 TrackFinishWritingAMDX = 5078,
4225 PayloadNodeNameAMDX = 5091,
4226 OverrideCoverageNV = 5248,
4227 PassthroughNV = 5250,
4228 ViewportRelativeNV = 5252,
4229 SecondaryViewportRelativeNV = 5256,
4230 PerPrimitiveEXT = 5271,
4231 PerViewNV = 5272,
4232 PerTaskNV = 5273,
4233 PerVertexKHR = 5285,
4234 NonUniform = 5300,
4235 RestrictPointer = 5355,
4236 AliasedPointer = 5356,
4237 HitObjectShaderRecordBufferNV = 5386,
4238 BindlessSamplerNV = 5398,
4239 BindlessImageNV = 5399,
4240 BoundSamplerNV = 5400,
4241 BoundImageNV = 5401,
4242 SIMTCallINTEL = 5599,
4243 ReferencedIndirectlyINTEL = 5602,
4244 ClobberINTEL = 5607,
4245 SideEffectsINTEL = 5608,
4246 VectorComputeVariableINTEL = 5624,
4247 FuncParamIOKindINTEL = 5625,
4248 VectorComputeFunctionINTEL = 5626,
4249 StackCallINTEL = 5627,
4250 GlobalVariableOffsetINTEL = 5628,
4251 CounterBuffer = 5634,
4252 UserSemantic = 5635,
4253 UserTypeGOOGLE = 5636,
4254 FunctionRoundingModeINTEL = 5822,
4255 FunctionDenormModeINTEL = 5823,
4256 RegisterINTEL = 5825,
4257 MemoryINTEL = 5826,
4258 NumbanksINTEL = 5827,
4259 BankwidthINTEL = 5828,
4260 MaxPrivateCopiesINTEL = 5829,
4261 SinglepumpINTEL = 5830,
4262 DoublepumpINTEL = 5831,
4263 MaxReplicatesINTEL = 5832,
4264 SimpleDualPortINTEL = 5833,
4265 MergeINTEL = 5834,
4266 BankBitsINTEL = 5835,
4267 ForcePow2DepthINTEL = 5836,
4268 StridesizeINTEL = 5883,
4269 WordsizeINTEL = 5884,
4270 TrueDualPortINTEL = 5885,
4271 BurstCoalesceINTEL = 5899,
4272 CacheSizeINTEL = 5900,
4273 DontStaticallyCoalesceINTEL = 5901,
4274 PrefetchINTEL = 5902,
4275 StallEnableINTEL = 5905,
4276 FuseLoopsInFunctionINTEL = 5907,
4277 MathOpDSPModeINTEL = 5909,
4278 AliasScopeINTEL = 5914,
4279 NoAliasINTEL = 5915,
4280 InitiationIntervalINTEL = 5917,
4281 MaxConcurrencyINTEL = 5918,
4282 PipelineEnableINTEL = 5919,
4283 BufferLocationINTEL = 5921,
4284 IOPipeStorageINTEL = 5944,
4285 FunctionFloatingPointModeINTEL = 6080,
4286 SingleElementVectorINTEL = 6085,
4287 VectorComputeCallableFunctionINTEL = 6087,
4288 MediaBlockIOINTEL = 6140,
4289 StallFreeINTEL = 6151,
4290 FPMaxErrorDecorationINTEL = 6170,
4291 LatencyControlLabelINTEL = 6172,
4292 LatencyControlConstraintINTEL = 6173,
4293 ConduitKernelArgumentINTEL = 6175,
4294 RegisterMapKernelArgumentINTEL = 6176,
4295 MMHostInterfaceAddressWidthINTEL = 6177,
4296 MMHostInterfaceDataWidthINTEL = 6178,
4297 MMHostInterfaceLatencyINTEL = 6179,
4298 MMHostInterfaceReadWriteModeINTEL = 6180,
4299 MMHostInterfaceMaxBurstINTEL = 6181,
4300 MMHostInterfaceWaitRequestINTEL = 6182,
4301 StableKernelArgumentINTEL = 6183,
4302 HostAccessINTEL = 6188,
4303 InitModeINTEL = 6190,
4304 ImplementInRegisterMapINTEL = 6191,
4305 CacheControlLoadINTEL = 6442,
4306 CacheControlStoreINTEL = 6443,
4307
4308 pub const PerPrimitiveNV = Decoration.PerPrimitiveEXT;
4309 pub const PerVertexNV = Decoration.PerVertexKHR;
4310 pub const NonUniformEXT = Decoration.NonUniform;
4311 pub const RestrictPointerEXT = Decoration.RestrictPointer;
4312 pub const AliasedPointerEXT = Decoration.AliasedPointer;
4313 pub const HlslCounterBufferGOOGLE = Decoration.CounterBuffer;
4314 pub const HlslSemanticGOOGLE = Decoration.UserSemantic;
4452 relaxed_precision = 0,
4453 spec_id = 1,
4454 block = 2,
4455 buffer_block = 3,
4456 row_major = 4,
4457 col_major = 5,
4458 array_stride = 6,
4459 matrix_stride = 7,
4460 glsl_shared = 8,
4461 glsl_packed = 9,
4462 c_packed = 10,
4463 built_in = 11,
4464 no_perspective = 13,
4465 flat = 14,
4466 patch = 15,
4467 centroid = 16,
4468 sample = 17,
4469 invariant = 18,
4470 restrict = 19,
4471 aliased = 20,
4472 @"volatile" = 21,
4473 constant = 22,
4474 coherent = 23,
4475 non_writable = 24,
4476 non_readable = 25,
4477 uniform = 26,
4478 uniform_id = 27,
4479 saturated_conversion = 28,
4480 stream = 29,
4481 location = 30,
4482 component = 31,
4483 index = 32,
4484 binding = 33,
4485 descriptor_set = 34,
4486 offset = 35,
4487 xfb_buffer = 36,
4488 xfb_stride = 37,
4489 func_param_attr = 38,
4490 fp_rounding_mode = 39,
4491 fp_fast_math_mode = 40,
4492 linkage_attributes = 41,
4493 no_contraction = 42,
4494 input_attachment_index = 43,
4495 alignment = 44,
4496 max_byte_offset = 45,
4497 alignment_id = 46,
4498 max_byte_offset_id = 47,
4499 saturated_to_largest_float8normal_conversion_ext = 4216,
4500 no_signed_wrap = 4469,
4501 no_unsigned_wrap = 4470,
4502 weight_texture_qcom = 4487,
4503 block_match_texture_qcom = 4488,
4504 block_match_sampler_qcom = 4499,
4505 explicit_interp_amd = 4999,
4506 node_shares_payload_limits_with_amdx = 5019,
4507 node_max_payloads_amdx = 5020,
4508 track_finish_writing_amdx = 5078,
4509 payload_node_name_amdx = 5091,
4510 payload_node_base_index_amdx = 5098,
4511 payload_node_sparse_array_amdx = 5099,
4512 payload_node_array_size_amdx = 5100,
4513 payload_dispatch_indirect_amdx = 5105,
4514 override_coverage_nv = 5248,
4515 passthrough_nv = 5250,
4516 viewport_relative_nv = 5252,
4517 secondary_viewport_relative_nv = 5256,
4518 per_primitive_ext = 5271,
4519 per_view_nv = 5272,
4520 per_task_nv = 5273,
4521 per_vertex_khr = 5285,
4522 non_uniform = 5300,
4523 restrict_pointer = 5355,
4524 aliased_pointer = 5356,
4525 hit_object_shader_record_buffer_nv = 5386,
4526 bindless_sampler_nv = 5398,
4527 bindless_image_nv = 5399,
4528 bound_sampler_nv = 5400,
4529 bound_image_nv = 5401,
4530 simt_call_intel = 5599,
4531 referenced_indirectly_intel = 5602,
4532 clobber_intel = 5607,
4533 side_effects_intel = 5608,
4534 vector_compute_variable_intel = 5624,
4535 func_param_io_kind_intel = 5625,
4536 vector_compute_function_intel = 5626,
4537 stack_call_intel = 5627,
4538 global_variable_offset_intel = 5628,
4539 counter_buffer = 5634,
4540 user_semantic = 5635,
4541 user_type_google = 5636,
4542 function_rounding_mode_intel = 5822,
4543 function_denorm_mode_intel = 5823,
4544 register_intel = 5825,
4545 memory_intel = 5826,
4546 numbanks_intel = 5827,
4547 bankwidth_intel = 5828,
4548 max_private_copies_intel = 5829,
4549 singlepump_intel = 5830,
4550 doublepump_intel = 5831,
4551 max_replicates_intel = 5832,
4552 simple_dual_port_intel = 5833,
4553 merge_intel = 5834,
4554 bank_bits_intel = 5835,
4555 force_pow2depth_intel = 5836,
4556 stridesize_intel = 5883,
4557 wordsize_intel = 5884,
4558 true_dual_port_intel = 5885,
4559 burst_coalesce_intel = 5899,
4560 cache_size_intel = 5900,
4561 dont_statically_coalesce_intel = 5901,
4562 prefetch_intel = 5902,
4563 stall_enable_intel = 5905,
4564 fuse_loops_in_function_intel = 5907,
4565 math_op_dsp_mode_intel = 5909,
4566 alias_scope_intel = 5914,
4567 no_alias_intel = 5915,
4568 initiation_interval_intel = 5917,
4569 max_concurrency_intel = 5918,
4570 pipeline_enable_intel = 5919,
4571 buffer_location_intel = 5921,
4572 io_pipe_storage_intel = 5944,
4573 function_floating_point_mode_intel = 6080,
4574 single_element_vector_intel = 6085,
4575 vector_compute_callable_function_intel = 6087,
4576 media_block_iointel = 6140,
4577 stall_free_intel = 6151,
4578 fp_max_error_decoration_intel = 6170,
4579 latency_control_label_intel = 6172,
4580 latency_control_constraint_intel = 6173,
4581 conduit_kernel_argument_intel = 6175,
4582 register_map_kernel_argument_intel = 6176,
4583 mm_host_interface_address_width_intel = 6177,
4584 mm_host_interface_data_width_intel = 6178,
4585 mm_host_interface_latency_intel = 6179,
4586 mm_host_interface_read_write_mode_intel = 6180,
4587 mm_host_interface_max_burst_intel = 6181,
4588 mm_host_interface_wait_request_intel = 6182,
4589 stable_kernel_argument_intel = 6183,
4590 host_access_intel = 6188,
4591 init_mode_intel = 6190,
4592 implement_in_register_map_intel = 6191,
4593 cache_control_load_intel = 6442,
4594 cache_control_store_intel = 6443,
43154595
43164596 pub const Extended = union(Decoration) {
4317 RelaxedPrecision,
4318 SpecId: struct { specialization_constant_id: LiteralInteger },
4319 Block,
4320 BufferBlock,
4321 RowMajor,
4322 ColMajor,
4323 ArrayStride: struct { array_stride: LiteralInteger },
4324 MatrixStride: struct { matrix_stride: LiteralInteger },
4325 GLSLShared,
4326 GLSLPacked,
4327 CPacked,
4328 BuiltIn: struct { built_in: BuiltIn },
4329 NoPerspective,
4330 Flat,
4331 Patch,
4332 Centroid,
4333 Sample,
4334 Invariant,
4335 Restrict,
4336 Aliased,
4337 Volatile,
4338 Constant,
4339 Coherent,
4340 NonWritable,
4341 NonReadable,
4342 Uniform,
4343 UniformId: struct { execution: IdScope },
4344 SaturatedConversion,
4345 Stream: struct { stream_number: LiteralInteger },
4346 Location: struct { location: LiteralInteger },
4347 Component: struct { component: LiteralInteger },
4348 Index: struct { index: LiteralInteger },
4349 Binding: struct { binding_point: LiteralInteger },
4350 DescriptorSet: struct { descriptor_set: LiteralInteger },
4351 Offset: struct { byte_offset: LiteralInteger },
4352 XfbBuffer: struct { xfb_buffer_number: LiteralInteger },
4353 XfbStride: struct { xfb_stride: LiteralInteger },
4354 FuncParamAttr: struct { function_parameter_attribute: FunctionParameterAttribute },
4355 FPRoundingMode: struct { fprounding_mode: FPRoundingMode },
4356 FPFastMathMode: struct { fpfast_math_mode: FPFastMathMode },
4357 LinkageAttributes: struct { name: LiteralString, linkage_type: LinkageType },
4358 NoContraction,
4359 InputAttachmentIndex: struct { attachment_index: LiteralInteger },
4360 Alignment: struct { alignment: LiteralInteger },
4361 MaxByteOffset: struct { max_byte_offset: LiteralInteger },
4362 AlignmentId: struct { alignment: IdRef },
4363 MaxByteOffsetId: struct { max_byte_offset: IdRef },
4364 NoSignedWrap,
4365 NoUnsignedWrap,
4366 WeightTextureQCOM,
4367 BlockMatchTextureQCOM,
4368 BlockMatchSamplerQCOM,
4369 ExplicitInterpAMD,
4370 NodeSharesPayloadLimitsWithAMDX: struct { payload_array: IdRef },
4371 NodeMaxPayloadsAMDX: struct { max_number_of_payloads: IdRef },
4372 TrackFinishWritingAMDX,
4373 PayloadNodeNameAMDX: struct { node_name: LiteralString },
4374 OverrideCoverageNV,
4375 PassthroughNV,
4376 ViewportRelativeNV,
4377 SecondaryViewportRelativeNV: struct { offset: LiteralInteger },
4378 PerPrimitiveEXT,
4379 PerViewNV,
4380 PerTaskNV,
4381 PerVertexKHR,
4382 NonUniform,
4383 RestrictPointer,
4384 AliasedPointer,
4385 HitObjectShaderRecordBufferNV,
4386 BindlessSamplerNV,
4387 BindlessImageNV,
4388 BoundSamplerNV,
4389 BoundImageNV,
4390 SIMTCallINTEL: struct { n: LiteralInteger },
4391 ReferencedIndirectlyINTEL,
4392 ClobberINTEL: struct { register: LiteralString },
4393 SideEffectsINTEL,
4394 VectorComputeVariableINTEL,
4395 FuncParamIOKindINTEL: struct { kind: LiteralInteger },
4396 VectorComputeFunctionINTEL,
4397 StackCallINTEL,
4398 GlobalVariableOffsetINTEL: struct { offset: LiteralInteger },
4399 CounterBuffer: struct { counter_buffer: IdRef },
4400 UserSemantic: struct { semantic: LiteralString },
4401 UserTypeGOOGLE: struct { user_type: LiteralString },
4402 FunctionRoundingModeINTEL: struct { target_width: LiteralInteger, fp_rounding_mode: FPRoundingMode },
4403 FunctionDenormModeINTEL: struct { target_width: LiteralInteger, fp_denorm_mode: FPDenormMode },
4404 RegisterINTEL,
4405 MemoryINTEL: struct { memory_type: LiteralString },
4406 NumbanksINTEL: struct { banks: LiteralInteger },
4407 BankwidthINTEL: struct { bank_width: LiteralInteger },
4408 MaxPrivateCopiesINTEL: struct { maximum_copies: LiteralInteger },
4409 SinglepumpINTEL,
4410 DoublepumpINTEL,
4411 MaxReplicatesINTEL: struct { maximum_replicates: LiteralInteger },
4412 SimpleDualPortINTEL,
4413 MergeINTEL: struct { merge_key: LiteralString, merge_type: LiteralString },
4414 BankBitsINTEL: struct { bank_bits: []const LiteralInteger = &.{} },
4415 ForcePow2DepthINTEL: struct { force_key: LiteralInteger },
4416 StridesizeINTEL: struct { stride_size: LiteralInteger },
4417 WordsizeINTEL: struct { word_size: LiteralInteger },
4418 TrueDualPortINTEL,
4419 BurstCoalesceINTEL,
4420 CacheSizeINTEL: struct { cache_size_in_bytes: LiteralInteger },
4421 DontStaticallyCoalesceINTEL,
4422 PrefetchINTEL: struct { prefetcher_size_in_bytes: LiteralInteger },
4423 StallEnableINTEL,
4424 FuseLoopsInFunctionINTEL,
4425 MathOpDSPModeINTEL: struct { mode: LiteralInteger, propagate: LiteralInteger },
4426 AliasScopeINTEL: struct { aliasing_scopes_list: IdRef },
4427 NoAliasINTEL: struct { aliasing_scopes_list: IdRef },
4428 InitiationIntervalINTEL: struct { cycles: LiteralInteger },
4429 MaxConcurrencyINTEL: struct { invocations: LiteralInteger },
4430 PipelineEnableINTEL: struct { enable: LiteralInteger },
4431 BufferLocationINTEL: struct { buffer_location_id: LiteralInteger },
4432 IOPipeStorageINTEL: struct { io_pipe_id: LiteralInteger },
4433 FunctionFloatingPointModeINTEL: struct { target_width: LiteralInteger, fp_operation_mode: FPOperationMode },
4434 SingleElementVectorINTEL,
4435 VectorComputeCallableFunctionINTEL,
4436 MediaBlockIOINTEL,
4437 StallFreeINTEL,
4438 FPMaxErrorDecorationINTEL: struct { max_error: LiteralFloat },
4439 LatencyControlLabelINTEL: struct { latency_label: LiteralInteger },
4440 LatencyControlConstraintINTEL: struct { relative_to: LiteralInteger, control_type: LiteralInteger, relative_cycle: LiteralInteger },
4441 ConduitKernelArgumentINTEL,
4442 RegisterMapKernelArgumentINTEL,
4443 MMHostInterfaceAddressWidthINTEL: struct { addresswidth: LiteralInteger },
4444 MMHostInterfaceDataWidthINTEL: struct { datawidth: LiteralInteger },
4445 MMHostInterfaceLatencyINTEL: struct { latency: LiteralInteger },
4446 MMHostInterfaceReadWriteModeINTEL: struct { readwritemode: AccessQualifier },
4447 MMHostInterfaceMaxBurstINTEL: struct { maxburstcount: LiteralInteger },
4448 MMHostInterfaceWaitRequestINTEL: struct { waitrequest: LiteralInteger },
4449 StableKernelArgumentINTEL,
4450 HostAccessINTEL: struct { access: HostAccessQualifier, name: LiteralString },
4451 InitModeINTEL: struct { trigger: InitializationModeQualifier },
4452 ImplementInRegisterMapINTEL: struct { value: LiteralInteger },
4453 CacheControlLoadINTEL: struct { cache_level: LiteralInteger, cache_control: LoadCacheControl },
4454 CacheControlStoreINTEL: struct { cache_level: LiteralInteger, cache_control: StoreCacheControl },
4597 relaxed_precision,
4598 spec_id: struct { specialization_constant_id: LiteralInteger },
4599 block,
4600 buffer_block,
4601 row_major,
4602 col_major,
4603 array_stride: struct { array_stride: LiteralInteger },
4604 matrix_stride: struct { matrix_stride: LiteralInteger },
4605 glsl_shared,
4606 glsl_packed,
4607 c_packed,
4608 built_in: struct { built_in: BuiltIn },
4609 no_perspective,
4610 flat,
4611 patch,
4612 centroid,
4613 sample,
4614 invariant,
4615 restrict,
4616 aliased,
4617 @"volatile",
4618 constant,
4619 coherent,
4620 non_writable,
4621 non_readable,
4622 uniform,
4623 uniform_id: struct { execution: Id },
4624 saturated_conversion,
4625 stream: struct { stream_number: LiteralInteger },
4626 location: struct { location: LiteralInteger },
4627 component: struct { component: LiteralInteger },
4628 index: struct { index: LiteralInteger },
4629 binding: struct { binding_point: LiteralInteger },
4630 descriptor_set: struct { descriptor_set: LiteralInteger },
4631 offset: struct { byte_offset: LiteralInteger },
4632 xfb_buffer: struct { xfb_buffer_number: LiteralInteger },
4633 xfb_stride: struct { xfb_stride: LiteralInteger },
4634 func_param_attr: struct { function_parameter_attribute: FunctionParameterAttribute },
4635 fp_rounding_mode: struct { fp_rounding_mode: FPRoundingMode },
4636 fp_fast_math_mode: struct { fp_fast_math_mode: FPFastMathMode },
4637 linkage_attributes: struct { name: LiteralString, linkage_type: LinkageType },
4638 no_contraction,
4639 input_attachment_index: struct { attachment_index: LiteralInteger },
4640 alignment: struct { alignment: LiteralInteger },
4641 max_byte_offset: struct { max_byte_offset: LiteralInteger },
4642 alignment_id: struct { alignment: Id },
4643 max_byte_offset_id: struct { max_byte_offset: Id },
4644 saturated_to_largest_float8normal_conversion_ext,
4645 no_signed_wrap,
4646 no_unsigned_wrap,
4647 weight_texture_qcom,
4648 block_match_texture_qcom,
4649 block_match_sampler_qcom,
4650 explicit_interp_amd,
4651 node_shares_payload_limits_with_amdx: struct { payload_type: Id },
4652 node_max_payloads_amdx: struct { max_number_of_payloads: Id },
4653 track_finish_writing_amdx,
4654 payload_node_name_amdx: struct { node_name: Id },
4655 payload_node_base_index_amdx: struct { base_index: Id },
4656 payload_node_sparse_array_amdx,
4657 payload_node_array_size_amdx: struct { array_size: Id },
4658 payload_dispatch_indirect_amdx,
4659 override_coverage_nv,
4660 passthrough_nv,
4661 viewport_relative_nv,
4662 secondary_viewport_relative_nv: struct { offset: LiteralInteger },
4663 per_primitive_ext,
4664 per_view_nv,
4665 per_task_nv,
4666 per_vertex_khr,
4667 non_uniform,
4668 restrict_pointer,
4669 aliased_pointer,
4670 hit_object_shader_record_buffer_nv,
4671 bindless_sampler_nv,
4672 bindless_image_nv,
4673 bound_sampler_nv,
4674 bound_image_nv,
4675 simt_call_intel: struct { n: LiteralInteger },
4676 referenced_indirectly_intel,
4677 clobber_intel: struct { register: LiteralString },
4678 side_effects_intel,
4679 vector_compute_variable_intel,
4680 func_param_io_kind_intel: struct { kind: LiteralInteger },
4681 vector_compute_function_intel,
4682 stack_call_intel,
4683 global_variable_offset_intel: struct { offset: LiteralInteger },
4684 counter_buffer: struct { counter_buffer: Id },
4685 user_semantic: struct { semantic: LiteralString },
4686 user_type_google: struct { user_type: LiteralString },
4687 function_rounding_mode_intel: struct { target_width: LiteralInteger, fp_rounding_mode: FPRoundingMode },
4688 function_denorm_mode_intel: struct { target_width: LiteralInteger, fp_denorm_mode: FPDenormMode },
4689 register_intel,
4690 memory_intel: struct { memory_type: LiteralString },
4691 numbanks_intel: struct { banks: LiteralInteger },
4692 bankwidth_intel: struct { bank_width: LiteralInteger },
4693 max_private_copies_intel: struct { maximum_copies: LiteralInteger },
4694 singlepump_intel,
4695 doublepump_intel,
4696 max_replicates_intel: struct { maximum_replicates: LiteralInteger },
4697 simple_dual_port_intel,
4698 merge_intel: struct { merge_key: LiteralString, merge_type: LiteralString },
4699 bank_bits_intel: struct { bank_bits: []const LiteralInteger = &.{} },
4700 force_pow2depth_intel: struct { force_key: LiteralInteger },
4701 stridesize_intel: struct { stride_size: LiteralInteger },
4702 wordsize_intel: struct { word_size: LiteralInteger },
4703 true_dual_port_intel,
4704 burst_coalesce_intel,
4705 cache_size_intel: struct { cache_size_in_bytes: LiteralInteger },
4706 dont_statically_coalesce_intel,
4707 prefetch_intel: struct { prefetcher_size_in_bytes: LiteralInteger },
4708 stall_enable_intel,
4709 fuse_loops_in_function_intel,
4710 math_op_dsp_mode_intel: struct { mode: LiteralInteger, propagate: LiteralInteger },
4711 alias_scope_intel: struct { aliasing_scopes_list: Id },
4712 no_alias_intel: struct { aliasing_scopes_list: Id },
4713 initiation_interval_intel: struct { cycles: LiteralInteger },
4714 max_concurrency_intel: struct { invocations: LiteralInteger },
4715 pipeline_enable_intel: struct { enable: LiteralInteger },
4716 buffer_location_intel: struct { buffer_location_id: LiteralInteger },
4717 io_pipe_storage_intel: struct { io_pipe_id: LiteralInteger },
4718 function_floating_point_mode_intel: struct { target_width: LiteralInteger, fp_operation_mode: FPOperationMode },
4719 single_element_vector_intel,
4720 vector_compute_callable_function_intel,
4721 media_block_iointel,
4722 stall_free_intel,
4723 fp_max_error_decoration_intel: struct { max_error: LiteralFloat },
4724 latency_control_label_intel: struct { latency_label: LiteralInteger },
4725 latency_control_constraint_intel: struct { relative_to: LiteralInteger, control_type: LiteralInteger, relative_cycle: LiteralInteger },
4726 conduit_kernel_argument_intel,
4727 register_map_kernel_argument_intel,
4728 mm_host_interface_address_width_intel: struct { address_width: LiteralInteger },
4729 mm_host_interface_data_width_intel: struct { data_width: LiteralInteger },
4730 mm_host_interface_latency_intel: struct { latency: LiteralInteger },
4731 mm_host_interface_read_write_mode_intel: struct { read_write_mode: AccessQualifier },
4732 mm_host_interface_max_burst_intel: struct { max_burst_count: LiteralInteger },
4733 mm_host_interface_wait_request_intel: struct { waitrequest: LiteralInteger },
4734 stable_kernel_argument_intel,
4735 host_access_intel: struct { access: HostAccessQualifier, name: LiteralString },
4736 init_mode_intel: struct { trigger: InitializationModeQualifier },
4737 implement_in_register_map_intel: struct { value: LiteralInteger },
4738 cache_control_load_intel: struct { cache_level: LiteralInteger, cache_control: LoadCacheControl },
4739 cache_control_store_intel: struct { cache_level: LiteralInteger, cache_control: StoreCacheControl },
44554740 };
44564741};
44574742pub const BuiltIn = enum(u32) {
4458 Position = 0,
4459 PointSize = 1,
4460 ClipDistance = 3,
4461 CullDistance = 4,
4462 VertexId = 5,
4463 InstanceId = 6,
4464 PrimitiveId = 7,
4465 InvocationId = 8,
4466 Layer = 9,
4467 ViewportIndex = 10,
4468 TessLevelOuter = 11,
4469 TessLevelInner = 12,
4470 TessCoord = 13,
4471 PatchVertices = 14,
4472 FragCoord = 15,
4473 PointCoord = 16,
4474 FrontFacing = 17,
4475 SampleId = 18,
4476 SamplePosition = 19,
4477 SampleMask = 20,
4478 FragDepth = 22,
4479 HelperInvocation = 23,
4480 NumWorkgroups = 24,
4481 WorkgroupSize = 25,
4482 WorkgroupId = 26,
4483 LocalInvocationId = 27,
4484 GlobalInvocationId = 28,
4485 LocalInvocationIndex = 29,
4486 WorkDim = 30,
4487 GlobalSize = 31,
4488 EnqueuedWorkgroupSize = 32,
4489 GlobalOffset = 33,
4490 GlobalLinearId = 34,
4491 SubgroupSize = 36,
4492 SubgroupMaxSize = 37,
4493 NumSubgroups = 38,
4494 NumEnqueuedSubgroups = 39,
4495 SubgroupId = 40,
4496 SubgroupLocalInvocationId = 41,
4497 VertexIndex = 42,
4498 InstanceIndex = 43,
4499 CoreIDARM = 4160,
4500 CoreCountARM = 4161,
4501 CoreMaxIDARM = 4162,
4502 WarpIDARM = 4163,
4503 WarpMaxIDARM = 4164,
4504 SubgroupEqMask = 4416,
4505 SubgroupGeMask = 4417,
4506 SubgroupGtMask = 4418,
4507 SubgroupLeMask = 4419,
4508 SubgroupLtMask = 4420,
4509 BaseVertex = 4424,
4510 BaseInstance = 4425,
4511 DrawIndex = 4426,
4512 PrimitiveShadingRateKHR = 4432,
4513 DeviceIndex = 4438,
4514 ViewIndex = 4440,
4515 ShadingRateKHR = 4444,
4516 BaryCoordNoPerspAMD = 4992,
4517 BaryCoordNoPerspCentroidAMD = 4993,
4518 BaryCoordNoPerspSampleAMD = 4994,
4519 BaryCoordSmoothAMD = 4995,
4520 BaryCoordSmoothCentroidAMD = 4996,
4521 BaryCoordSmoothSampleAMD = 4997,
4522 BaryCoordPullModelAMD = 4998,
4523 FragStencilRefEXT = 5014,
4524 CoalescedInputCountAMDX = 5021,
4525 ShaderIndexAMDX = 5073,
4526 ViewportMaskNV = 5253,
4527 SecondaryPositionNV = 5257,
4528 SecondaryViewportMaskNV = 5258,
4529 PositionPerViewNV = 5261,
4530 ViewportMaskPerViewNV = 5262,
4531 FullyCoveredEXT = 5264,
4532 TaskCountNV = 5274,
4533 PrimitiveCountNV = 5275,
4534 PrimitiveIndicesNV = 5276,
4535 ClipDistancePerViewNV = 5277,
4536 CullDistancePerViewNV = 5278,
4537 LayerPerViewNV = 5279,
4538 MeshViewCountNV = 5280,
4539 MeshViewIndicesNV = 5281,
4540 BaryCoordKHR = 5286,
4541 BaryCoordNoPerspKHR = 5287,
4542 FragSizeEXT = 5292,
4543 FragInvocationCountEXT = 5293,
4544 PrimitivePointIndicesEXT = 5294,
4545 PrimitiveLineIndicesEXT = 5295,
4546 PrimitiveTriangleIndicesEXT = 5296,
4547 CullPrimitiveEXT = 5299,
4548 LaunchIdKHR = 5319,
4549 LaunchSizeKHR = 5320,
4550 WorldRayOriginKHR = 5321,
4551 WorldRayDirectionKHR = 5322,
4552 ObjectRayOriginKHR = 5323,
4553 ObjectRayDirectionKHR = 5324,
4554 RayTminKHR = 5325,
4555 RayTmaxKHR = 5326,
4556 InstanceCustomIndexKHR = 5327,
4557 ObjectToWorldKHR = 5330,
4558 WorldToObjectKHR = 5331,
4559 HitTNV = 5332,
4560 HitKindKHR = 5333,
4561 CurrentRayTimeNV = 5334,
4562 HitTriangleVertexPositionsKHR = 5335,
4563 HitMicroTriangleVertexPositionsNV = 5337,
4564 HitMicroTriangleVertexBarycentricsNV = 5344,
4565 IncomingRayFlagsKHR = 5351,
4566 RayGeometryIndexKHR = 5352,
4567 WarpsPerSMNV = 5374,
4568 SMCountNV = 5375,
4569 WarpIDNV = 5376,
4570 SMIDNV = 5377,
4571 HitKindFrontFacingMicroTriangleNV = 5405,
4572 HitKindBackFacingMicroTriangleNV = 5406,
4573 CullMaskKHR = 6021,
4574
4575 pub const SubgroupEqMaskKHR = BuiltIn.SubgroupEqMask;
4576 pub const SubgroupGeMaskKHR = BuiltIn.SubgroupGeMask;
4577 pub const SubgroupGtMaskKHR = BuiltIn.SubgroupGtMask;
4578 pub const SubgroupLeMaskKHR = BuiltIn.SubgroupLeMask;
4579 pub const SubgroupLtMaskKHR = BuiltIn.SubgroupLtMask;
4580 pub const BaryCoordNV = BuiltIn.BaryCoordKHR;
4581 pub const BaryCoordNoPerspNV = BuiltIn.BaryCoordNoPerspKHR;
4582 pub const FragmentSizeNV = BuiltIn.FragSizeEXT;
4583 pub const InvocationsPerPixelNV = BuiltIn.FragInvocationCountEXT;
4584 pub const LaunchIdNV = BuiltIn.LaunchIdKHR;
4585 pub const LaunchSizeNV = BuiltIn.LaunchSizeKHR;
4586 pub const WorldRayOriginNV = BuiltIn.WorldRayOriginKHR;
4587 pub const WorldRayDirectionNV = BuiltIn.WorldRayDirectionKHR;
4588 pub const ObjectRayOriginNV = BuiltIn.ObjectRayOriginKHR;
4589 pub const ObjectRayDirectionNV = BuiltIn.ObjectRayDirectionKHR;
4590 pub const RayTminNV = BuiltIn.RayTminKHR;
4591 pub const RayTmaxNV = BuiltIn.RayTmaxKHR;
4592 pub const InstanceCustomIndexNV = BuiltIn.InstanceCustomIndexKHR;
4593 pub const ObjectToWorldNV = BuiltIn.ObjectToWorldKHR;
4594 pub const WorldToObjectNV = BuiltIn.WorldToObjectKHR;
4595 pub const HitKindNV = BuiltIn.HitKindKHR;
4596 pub const IncomingRayFlagsNV = BuiltIn.IncomingRayFlagsKHR;
4743 position = 0,
4744 point_size = 1,
4745 clip_distance = 3,
4746 cull_distance = 4,
4747 vertex_id = 5,
4748 instance_id = 6,
4749 primitive_id = 7,
4750 invocation_id = 8,
4751 layer = 9,
4752 viewport_index = 10,
4753 tess_level_outer = 11,
4754 tess_level_inner = 12,
4755 tess_coord = 13,
4756 patch_vertices = 14,
4757 frag_coord = 15,
4758 point_coord = 16,
4759 front_facing = 17,
4760 sample_id = 18,
4761 sample_position = 19,
4762 sample_mask = 20,
4763 frag_depth = 22,
4764 helper_invocation = 23,
4765 num_workgroups = 24,
4766 workgroup_size = 25,
4767 workgroup_id = 26,
4768 local_invocation_id = 27,
4769 global_invocation_id = 28,
4770 local_invocation_index = 29,
4771 work_dim = 30,
4772 global_size = 31,
4773 enqueued_workgroup_size = 32,
4774 global_offset = 33,
4775 global_linear_id = 34,
4776 subgroup_size = 36,
4777 subgroup_max_size = 37,
4778 num_subgroups = 38,
4779 num_enqueued_subgroups = 39,
4780 subgroup_id = 40,
4781 subgroup_local_invocation_id = 41,
4782 vertex_index = 42,
4783 instance_index = 43,
4784 core_idarm = 4160,
4785 core_count_arm = 4161,
4786 core_max_idarm = 4162,
4787 warp_idarm = 4163,
4788 warp_max_idarm = 4164,
4789 subgroup_eq_mask = 4416,
4790 subgroup_ge_mask = 4417,
4791 subgroup_gt_mask = 4418,
4792 subgroup_le_mask = 4419,
4793 subgroup_lt_mask = 4420,
4794 base_vertex = 4424,
4795 base_instance = 4425,
4796 draw_index = 4426,
4797 primitive_shading_rate_khr = 4432,
4798 device_index = 4438,
4799 view_index = 4440,
4800 shading_rate_khr = 4444,
4801 tile_offset_qcom = 4492,
4802 tile_dimension_qcom = 4493,
4803 tile_apron_size_qcom = 4494,
4804 bary_coord_no_persp_amd = 4992,
4805 bary_coord_no_persp_centroid_amd = 4993,
4806 bary_coord_no_persp_sample_amd = 4994,
4807 bary_coord_smooth_amd = 4995,
4808 bary_coord_smooth_centroid_amd = 4996,
4809 bary_coord_smooth_sample_amd = 4997,
4810 bary_coord_pull_model_amd = 4998,
4811 frag_stencil_ref_ext = 5014,
4812 remaining_recursion_levels_amdx = 5021,
4813 shader_index_amdx = 5073,
4814 viewport_mask_nv = 5253,
4815 secondary_position_nv = 5257,
4816 secondary_viewport_mask_nv = 5258,
4817 position_per_view_nv = 5261,
4818 viewport_mask_per_view_nv = 5262,
4819 fully_covered_ext = 5264,
4820 task_count_nv = 5274,
4821 primitive_count_nv = 5275,
4822 primitive_indices_nv = 5276,
4823 clip_distance_per_view_nv = 5277,
4824 cull_distance_per_view_nv = 5278,
4825 layer_per_view_nv = 5279,
4826 mesh_view_count_nv = 5280,
4827 mesh_view_indices_nv = 5281,
4828 bary_coord_khr = 5286,
4829 bary_coord_no_persp_khr = 5287,
4830 frag_size_ext = 5292,
4831 frag_invocation_count_ext = 5293,
4832 primitive_point_indices_ext = 5294,
4833 primitive_line_indices_ext = 5295,
4834 primitive_triangle_indices_ext = 5296,
4835 cull_primitive_ext = 5299,
4836 launch_id_khr = 5319,
4837 launch_size_khr = 5320,
4838 world_ray_origin_khr = 5321,
4839 world_ray_direction_khr = 5322,
4840 object_ray_origin_khr = 5323,
4841 object_ray_direction_khr = 5324,
4842 ray_tmin_khr = 5325,
4843 ray_tmax_khr = 5326,
4844 instance_custom_index_khr = 5327,
4845 object_to_world_khr = 5330,
4846 world_to_object_khr = 5331,
4847 hit_tnv = 5332,
4848 hit_kind_khr = 5333,
4849 current_ray_time_nv = 5334,
4850 hit_triangle_vertex_positions_khr = 5335,
4851 hit_micro_triangle_vertex_positions_nv = 5337,
4852 hit_micro_triangle_vertex_barycentrics_nv = 5344,
4853 incoming_ray_flags_khr = 5351,
4854 ray_geometry_index_khr = 5352,
4855 hit_is_sphere_nv = 5359,
4856 hit_is_lssnv = 5360,
4857 hit_sphere_position_nv = 5361,
4858 warps_per_smnv = 5374,
4859 sm_count_nv = 5375,
4860 warp_idnv = 5376,
4861 smidnv = 5377,
4862 hit_lss_positions_nv = 5396,
4863 hit_kind_front_facing_micro_triangle_nv = 5405,
4864 hit_kind_back_facing_micro_triangle_nv = 5406,
4865 hit_sphere_radius_nv = 5420,
4866 hit_lss_radii_nv = 5421,
4867 cluster_idnv = 5436,
4868 cull_mask_khr = 6021,
45974869};
45984870pub const Scope = enum(u32) {
4599 CrossDevice = 0,
4600 Device = 1,
4601 Workgroup = 2,
4602 Subgroup = 3,
4603 Invocation = 4,
4604 QueueFamily = 5,
4605 ShaderCallKHR = 6,
4606
4607 pub const QueueFamilyKHR = Scope.QueueFamily;
4871 cross_device = 0,
4872 device = 1,
4873 workgroup = 2,
4874 subgroup = 3,
4875 invocation = 4,
4876 queue_family = 5,
4877 shader_call_khr = 6,
46084878};
46094879pub const GroupOperation = enum(u32) {
4610 Reduce = 0,
4611 InclusiveScan = 1,
4612 ExclusiveScan = 2,
4613 ClusteredReduce = 3,
4614 PartitionedReduceNV = 6,
4615 PartitionedInclusiveScanNV = 7,
4616 PartitionedExclusiveScanNV = 8,
4880 reduce = 0,
4881 inclusive_scan = 1,
4882 exclusive_scan = 2,
4883 clustered_reduce = 3,
4884 partitioned_reduce_nv = 6,
4885 partitioned_inclusive_scan_nv = 7,
4886 partitioned_exclusive_scan_nv = 8,
46174887};
46184888pub const KernelEnqueueFlags = enum(u32) {
4619 NoWait = 0,
4620 WaitKernel = 1,
4621 WaitWorkGroup = 2,
4889 no_wait = 0,
4890 wait_kernel = 1,
4891 wait_work_group = 2,
46224892};
46234893pub const Capability = enum(u32) {
4624 Matrix = 0,
4625 Shader = 1,
4626 Geometry = 2,
4627 Tessellation = 3,
4628 Addresses = 4,
4629 Linkage = 5,
4630 Kernel = 6,
4631 Vector16 = 7,
4632 Float16Buffer = 8,
4633 Float16 = 9,
4634 Float64 = 10,
4635 Int64 = 11,
4636 Int64Atomics = 12,
4637 ImageBasic = 13,
4638 ImageReadWrite = 14,
4639 ImageMipmap = 15,
4640 Pipes = 17,
4641 Groups = 18,
4642 DeviceEnqueue = 19,
4643 LiteralSampler = 20,
4644 AtomicStorage = 21,
4645 Int16 = 22,
4646 TessellationPointSize = 23,
4647 GeometryPointSize = 24,
4648 ImageGatherExtended = 25,
4649 StorageImageMultisample = 27,
4650 UniformBufferArrayDynamicIndexing = 28,
4651 SampledImageArrayDynamicIndexing = 29,
4652 StorageBufferArrayDynamicIndexing = 30,
4653 StorageImageArrayDynamicIndexing = 31,
4654 ClipDistance = 32,
4655 CullDistance = 33,
4656 ImageCubeArray = 34,
4657 SampleRateShading = 35,
4658 ImageRect = 36,
4659 SampledRect = 37,
4660 GenericPointer = 38,
4661 Int8 = 39,
4662 InputAttachment = 40,
4663 SparseResidency = 41,
4664 MinLod = 42,
4665 Sampled1D = 43,
4666 Image1D = 44,
4667 SampledCubeArray = 45,
4668 SampledBuffer = 46,
4669 ImageBuffer = 47,
4670 ImageMSArray = 48,
4671 StorageImageExtendedFormats = 49,
4672 ImageQuery = 50,
4673 DerivativeControl = 51,
4674 InterpolationFunction = 52,
4675 TransformFeedback = 53,
4676 GeometryStreams = 54,
4677 StorageImageReadWithoutFormat = 55,
4678 StorageImageWriteWithoutFormat = 56,
4679 MultiViewport = 57,
4680 SubgroupDispatch = 58,
4681 NamedBarrier = 59,
4682 PipeStorage = 60,
4683 GroupNonUniform = 61,
4684 GroupNonUniformVote = 62,
4685 GroupNonUniformArithmetic = 63,
4686 GroupNonUniformBallot = 64,
4687 GroupNonUniformShuffle = 65,
4688 GroupNonUniformShuffleRelative = 66,
4689 GroupNonUniformClustered = 67,
4690 GroupNonUniformQuad = 68,
4691 ShaderLayer = 69,
4692 ShaderViewportIndex = 70,
4693 UniformDecoration = 71,
4694 CoreBuiltinsARM = 4165,
4695 TileImageColorReadAccessEXT = 4166,
4696 TileImageDepthReadAccessEXT = 4167,
4697 TileImageStencilReadAccessEXT = 4168,
4698 FragmentShadingRateKHR = 4422,
4699 SubgroupBallotKHR = 4423,
4700 DrawParameters = 4427,
4701 WorkgroupMemoryExplicitLayoutKHR = 4428,
4702 WorkgroupMemoryExplicitLayout8BitAccessKHR = 4429,
4703 WorkgroupMemoryExplicitLayout16BitAccessKHR = 4430,
4704 SubgroupVoteKHR = 4431,
4705 StorageBuffer16BitAccess = 4433,
4706 UniformAndStorageBuffer16BitAccess = 4434,
4707 StoragePushConstant16 = 4435,
4708 StorageInputOutput16 = 4436,
4709 DeviceGroup = 4437,
4710 MultiView = 4439,
4711 VariablePointersStorageBuffer = 4441,
4712 VariablePointers = 4442,
4713 AtomicStorageOps = 4445,
4714 SampleMaskPostDepthCoverage = 4447,
4715 StorageBuffer8BitAccess = 4448,
4716 UniformAndStorageBuffer8BitAccess = 4449,
4717 StoragePushConstant8 = 4450,
4718 DenormPreserve = 4464,
4719 DenormFlushToZero = 4465,
4720 SignedZeroInfNanPreserve = 4466,
4721 RoundingModeRTE = 4467,
4722 RoundingModeRTZ = 4468,
4723 RayQueryProvisionalKHR = 4471,
4724 RayQueryKHR = 4472,
4725 RayTraversalPrimitiveCullingKHR = 4478,
4726 RayTracingKHR = 4479,
4727 TextureSampleWeightedQCOM = 4484,
4728 TextureBoxFilterQCOM = 4485,
4729 TextureBlockMatchQCOM = 4486,
4730 TextureBlockMatch2QCOM = 4498,
4731 Float16ImageAMD = 5008,
4732 ImageGatherBiasLodAMD = 5009,
4733 FragmentMaskAMD = 5010,
4734 StencilExportEXT = 5013,
4735 ImageReadWriteLodAMD = 5015,
4736 Int64ImageEXT = 5016,
4737 ShaderClockKHR = 5055,
4738 ShaderEnqueueAMDX = 5067,
4739 QuadControlKHR = 5087,
4740 SampleMaskOverrideCoverageNV = 5249,
4741 GeometryShaderPassthroughNV = 5251,
4742 ShaderViewportIndexLayerEXT = 5254,
4743 ShaderViewportMaskNV = 5255,
4744 ShaderStereoViewNV = 5259,
4745 PerViewAttributesNV = 5260,
4746 FragmentFullyCoveredEXT = 5265,
4747 MeshShadingNV = 5266,
4748 ImageFootprintNV = 5282,
4749 MeshShadingEXT = 5283,
4750 FragmentBarycentricKHR = 5284,
4751 ComputeDerivativeGroupQuadsNV = 5288,
4752 FragmentDensityEXT = 5291,
4753 GroupNonUniformPartitionedNV = 5297,
4754 ShaderNonUniform = 5301,
4755 RuntimeDescriptorArray = 5302,
4756 InputAttachmentArrayDynamicIndexing = 5303,
4757 UniformTexelBufferArrayDynamicIndexing = 5304,
4758 StorageTexelBufferArrayDynamicIndexing = 5305,
4759 UniformBufferArrayNonUniformIndexing = 5306,
4760 SampledImageArrayNonUniformIndexing = 5307,
4761 StorageBufferArrayNonUniformIndexing = 5308,
4762 StorageImageArrayNonUniformIndexing = 5309,
4763 InputAttachmentArrayNonUniformIndexing = 5310,
4764 UniformTexelBufferArrayNonUniformIndexing = 5311,
4765 StorageTexelBufferArrayNonUniformIndexing = 5312,
4766 RayTracingPositionFetchKHR = 5336,
4767 RayTracingNV = 5340,
4768 RayTracingMotionBlurNV = 5341,
4769 VulkanMemoryModel = 5345,
4770 VulkanMemoryModelDeviceScope = 5346,
4771 PhysicalStorageBufferAddresses = 5347,
4772 ComputeDerivativeGroupLinearNV = 5350,
4773 RayTracingProvisionalKHR = 5353,
4774 CooperativeMatrixNV = 5357,
4775 FragmentShaderSampleInterlockEXT = 5363,
4776 FragmentShaderShadingRateInterlockEXT = 5372,
4777 ShaderSMBuiltinsNV = 5373,
4778 FragmentShaderPixelInterlockEXT = 5378,
4779 DemoteToHelperInvocation = 5379,
4780 DisplacementMicromapNV = 5380,
4781 RayTracingOpacityMicromapEXT = 5381,
4782 ShaderInvocationReorderNV = 5383,
4783 BindlessTextureNV = 5390,
4784 RayQueryPositionFetchKHR = 5391,
4785 AtomicFloat16VectorNV = 5404,
4786 RayTracingDisplacementMicromapNV = 5409,
4787 RawAccessChainsNV = 5414,
4788 SubgroupShuffleINTEL = 5568,
4789 SubgroupBufferBlockIOINTEL = 5569,
4790 SubgroupImageBlockIOINTEL = 5570,
4791 SubgroupImageMediaBlockIOINTEL = 5579,
4792 RoundToInfinityINTEL = 5582,
4793 FloatingPointModeINTEL = 5583,
4794 IntegerFunctions2INTEL = 5584,
4795 FunctionPointersINTEL = 5603,
4796 IndirectReferencesINTEL = 5604,
4797 AsmINTEL = 5606,
4798 AtomicFloat32MinMaxEXT = 5612,
4799 AtomicFloat64MinMaxEXT = 5613,
4800 AtomicFloat16MinMaxEXT = 5616,
4801 VectorComputeINTEL = 5617,
4802 VectorAnyINTEL = 5619,
4803 ExpectAssumeKHR = 5629,
4804 SubgroupAvcMotionEstimationINTEL = 5696,
4805 SubgroupAvcMotionEstimationIntraINTEL = 5697,
4806 SubgroupAvcMotionEstimationChromaINTEL = 5698,
4807 VariableLengthArrayINTEL = 5817,
4808 FunctionFloatControlINTEL = 5821,
4809 FPGAMemoryAttributesINTEL = 5824,
4810 FPFastMathModeINTEL = 5837,
4811 ArbitraryPrecisionIntegersINTEL = 5844,
4812 ArbitraryPrecisionFloatingPointINTEL = 5845,
4813 UnstructuredLoopControlsINTEL = 5886,
4814 FPGALoopControlsINTEL = 5888,
4815 KernelAttributesINTEL = 5892,
4816 FPGAKernelAttributesINTEL = 5897,
4817 FPGAMemoryAccessesINTEL = 5898,
4818 FPGAClusterAttributesINTEL = 5904,
4819 LoopFuseINTEL = 5906,
4820 FPGADSPControlINTEL = 5908,
4821 MemoryAccessAliasingINTEL = 5910,
4822 FPGAInvocationPipeliningAttributesINTEL = 5916,
4823 FPGABufferLocationINTEL = 5920,
4824 ArbitraryPrecisionFixedPointINTEL = 5922,
4825 USMStorageClassesINTEL = 5935,
4826 RuntimeAlignedAttributeINTEL = 5939,
4827 IOPipesINTEL = 5943,
4828 BlockingPipesINTEL = 5945,
4829 FPGARegINTEL = 5948,
4830 DotProductInputAll = 6016,
4831 DotProductInput4x8Bit = 6017,
4832 DotProductInput4x8BitPacked = 6018,
4833 DotProduct = 6019,
4834 RayCullMaskKHR = 6020,
4835 CooperativeMatrixKHR = 6022,
4836 BitInstructions = 6025,
4837 GroupNonUniformRotateKHR = 6026,
4838 FloatControls2 = 6029,
4839 AtomicFloat32AddEXT = 6033,
4840 AtomicFloat64AddEXT = 6034,
4841 LongCompositesINTEL = 6089,
4842 OptNoneINTEL = 6094,
4843 AtomicFloat16AddEXT = 6095,
4844 DebugInfoModuleINTEL = 6114,
4845 BFloat16ConversionINTEL = 6115,
4846 SplitBarrierINTEL = 6141,
4847 FPGAClusterAttributesV2INTEL = 6150,
4848 FPGAKernelAttributesv2INTEL = 6161,
4849 FPMaxErrorINTEL = 6169,
4850 FPGALatencyControlINTEL = 6171,
4851 FPGAArgumentInterfacesINTEL = 6174,
4852 GlobalVariableHostAccessINTEL = 6187,
4853 GlobalVariableFPGADecorationsINTEL = 6189,
4854 GroupUniformArithmeticKHR = 6400,
4855 MaskedGatherScatterINTEL = 6427,
4856 CacheControlsINTEL = 6441,
4857 RegisterLimitsINTEL = 6460,
4858
4859 pub const StorageUniformBufferBlock16 = Capability.StorageBuffer16BitAccess;
4860 pub const StorageUniform16 = Capability.UniformAndStorageBuffer16BitAccess;
4861 pub const ShaderViewportIndexLayerNV = Capability.ShaderViewportIndexLayerEXT;
4862 pub const FragmentBarycentricNV = Capability.FragmentBarycentricKHR;
4863 pub const ShadingRateNV = Capability.FragmentDensityEXT;
4864 pub const ShaderNonUniformEXT = Capability.ShaderNonUniform;
4865 pub const RuntimeDescriptorArrayEXT = Capability.RuntimeDescriptorArray;
4866 pub const InputAttachmentArrayDynamicIndexingEXT = Capability.InputAttachmentArrayDynamicIndexing;
4867 pub const UniformTexelBufferArrayDynamicIndexingEXT = Capability.UniformTexelBufferArrayDynamicIndexing;
4868 pub const StorageTexelBufferArrayDynamicIndexingEXT = Capability.StorageTexelBufferArrayDynamicIndexing;
4869 pub const UniformBufferArrayNonUniformIndexingEXT = Capability.UniformBufferArrayNonUniformIndexing;
4870 pub const SampledImageArrayNonUniformIndexingEXT = Capability.SampledImageArrayNonUniformIndexing;
4871 pub const StorageBufferArrayNonUniformIndexingEXT = Capability.StorageBufferArrayNonUniformIndexing;
4872 pub const StorageImageArrayNonUniformIndexingEXT = Capability.StorageImageArrayNonUniformIndexing;
4873 pub const InputAttachmentArrayNonUniformIndexingEXT = Capability.InputAttachmentArrayNonUniformIndexing;
4874 pub const UniformTexelBufferArrayNonUniformIndexingEXT = Capability.UniformTexelBufferArrayNonUniformIndexing;
4875 pub const StorageTexelBufferArrayNonUniformIndexingEXT = Capability.StorageTexelBufferArrayNonUniformIndexing;
4876 pub const VulkanMemoryModelKHR = Capability.VulkanMemoryModel;
4877 pub const VulkanMemoryModelDeviceScopeKHR = Capability.VulkanMemoryModelDeviceScope;
4878 pub const PhysicalStorageBufferAddressesEXT = Capability.PhysicalStorageBufferAddresses;
4879 pub const DemoteToHelperInvocationEXT = Capability.DemoteToHelperInvocation;
4880 pub const DotProductInputAllKHR = Capability.DotProductInputAll;
4881 pub const DotProductInput4x8BitKHR = Capability.DotProductInput4x8Bit;
4882 pub const DotProductInput4x8BitPackedKHR = Capability.DotProductInput4x8BitPacked;
4883 pub const DotProductKHR = Capability.DotProduct;
4894 matrix = 0,
4895 shader = 1,
4896 geometry = 2,
4897 tessellation = 3,
4898 addresses = 4,
4899 linkage = 5,
4900 kernel = 6,
4901 vector16 = 7,
4902 float16buffer = 8,
4903 float16 = 9,
4904 float64 = 10,
4905 int64 = 11,
4906 int64atomics = 12,
4907 image_basic = 13,
4908 image_read_write = 14,
4909 image_mipmap = 15,
4910 pipes = 17,
4911 groups = 18,
4912 device_enqueue = 19,
4913 literal_sampler = 20,
4914 atomic_storage = 21,
4915 int16 = 22,
4916 tessellation_point_size = 23,
4917 geometry_point_size = 24,
4918 image_gather_extended = 25,
4919 storage_image_multisample = 27,
4920 uniform_buffer_array_dynamic_indexing = 28,
4921 sampled_image_array_dynamic_indexing = 29,
4922 storage_buffer_array_dynamic_indexing = 30,
4923 storage_image_array_dynamic_indexing = 31,
4924 clip_distance = 32,
4925 cull_distance = 33,
4926 image_cube_array = 34,
4927 sample_rate_shading = 35,
4928 image_rect = 36,
4929 sampled_rect = 37,
4930 generic_pointer = 38,
4931 int8 = 39,
4932 input_attachment = 40,
4933 sparse_residency = 41,
4934 min_lod = 42,
4935 sampled1d = 43,
4936 image1d = 44,
4937 sampled_cube_array = 45,
4938 sampled_buffer = 46,
4939 image_buffer = 47,
4940 image_ms_array = 48,
4941 storage_image_extended_formats = 49,
4942 image_query = 50,
4943 derivative_control = 51,
4944 interpolation_function = 52,
4945 transform_feedback = 53,
4946 geometry_streams = 54,
4947 storage_image_read_without_format = 55,
4948 storage_image_write_without_format = 56,
4949 multi_viewport = 57,
4950 subgroup_dispatch = 58,
4951 named_barrier = 59,
4952 pipe_storage = 60,
4953 group_non_uniform = 61,
4954 group_non_uniform_vote = 62,
4955 group_non_uniform_arithmetic = 63,
4956 group_non_uniform_ballot = 64,
4957 group_non_uniform_shuffle = 65,
4958 group_non_uniform_shuffle_relative = 66,
4959 group_non_uniform_clustered = 67,
4960 group_non_uniform_quad = 68,
4961 shader_layer = 69,
4962 shader_viewport_index = 70,
4963 uniform_decoration = 71,
4964 core_builtins_arm = 4165,
4965 tile_image_color_read_access_ext = 4166,
4966 tile_image_depth_read_access_ext = 4167,
4967 tile_image_stencil_read_access_ext = 4168,
4968 tensors_arm = 4174,
4969 storage_tensor_array_dynamic_indexing_arm = 4175,
4970 storage_tensor_array_non_uniform_indexing_arm = 4176,
4971 graph_arm = 4191,
4972 cooperative_matrix_layouts_arm = 4201,
4973 float8ext = 4212,
4974 float8cooperative_matrix_ext = 4213,
4975 fragment_shading_rate_khr = 4422,
4976 subgroup_ballot_khr = 4423,
4977 draw_parameters = 4427,
4978 workgroup_memory_explicit_layout_khr = 4428,
4979 workgroup_memory_explicit_layout8bit_access_khr = 4429,
4980 workgroup_memory_explicit_layout16bit_access_khr = 4430,
4981 subgroup_vote_khr = 4431,
4982 storage_buffer16bit_access = 4433,
4983 uniform_and_storage_buffer16bit_access = 4434,
4984 storage_push_constant16 = 4435,
4985 storage_input_output16 = 4436,
4986 device_group = 4437,
4987 multi_view = 4439,
4988 variable_pointers_storage_buffer = 4441,
4989 variable_pointers = 4442,
4990 atomic_storage_ops = 4445,
4991 sample_mask_post_depth_coverage = 4447,
4992 storage_buffer8bit_access = 4448,
4993 uniform_and_storage_buffer8bit_access = 4449,
4994 storage_push_constant8 = 4450,
4995 denorm_preserve = 4464,
4996 denorm_flush_to_zero = 4465,
4997 signed_zero_inf_nan_preserve = 4466,
4998 rounding_mode_rte = 4467,
4999 rounding_mode_rtz = 4468,
5000 ray_query_provisional_khr = 4471,
5001 ray_query_khr = 4472,
5002 untyped_pointers_khr = 4473,
5003 ray_traversal_primitive_culling_khr = 4478,
5004 ray_tracing_khr = 4479,
5005 texture_sample_weighted_qcom = 4484,
5006 texture_box_filter_qcom = 4485,
5007 texture_block_match_qcom = 4486,
5008 tile_shading_qcom = 4495,
5009 texture_block_match2qcom = 4498,
5010 float16image_amd = 5008,
5011 image_gather_bias_lod_amd = 5009,
5012 fragment_mask_amd = 5010,
5013 stencil_export_ext = 5013,
5014 image_read_write_lod_amd = 5015,
5015 int64image_ext = 5016,
5016 shader_clock_khr = 5055,
5017 shader_enqueue_amdx = 5067,
5018 quad_control_khr = 5087,
5019 int4type_intel = 5112,
5020 int4cooperative_matrix_intel = 5114,
5021 b_float16type_khr = 5116,
5022 b_float16dot_product_khr = 5117,
5023 b_float16cooperative_matrix_khr = 5118,
5024 sample_mask_override_coverage_nv = 5249,
5025 geometry_shader_passthrough_nv = 5251,
5026 shader_viewport_index_layer_ext = 5254,
5027 shader_viewport_mask_nv = 5255,
5028 shader_stereo_view_nv = 5259,
5029 per_view_attributes_nv = 5260,
5030 fragment_fully_covered_ext = 5265,
5031 mesh_shading_nv = 5266,
5032 image_footprint_nv = 5282,
5033 mesh_shading_ext = 5283,
5034 fragment_barycentric_khr = 5284,
5035 compute_derivative_group_quads_khr = 5288,
5036 fragment_density_ext = 5291,
5037 group_non_uniform_partitioned_nv = 5297,
5038 shader_non_uniform = 5301,
5039 runtime_descriptor_array = 5302,
5040 input_attachment_array_dynamic_indexing = 5303,
5041 uniform_texel_buffer_array_dynamic_indexing = 5304,
5042 storage_texel_buffer_array_dynamic_indexing = 5305,
5043 uniform_buffer_array_non_uniform_indexing = 5306,
5044 sampled_image_array_non_uniform_indexing = 5307,
5045 storage_buffer_array_non_uniform_indexing = 5308,
5046 storage_image_array_non_uniform_indexing = 5309,
5047 input_attachment_array_non_uniform_indexing = 5310,
5048 uniform_texel_buffer_array_non_uniform_indexing = 5311,
5049 storage_texel_buffer_array_non_uniform_indexing = 5312,
5050 ray_tracing_position_fetch_khr = 5336,
5051 ray_tracing_nv = 5340,
5052 ray_tracing_motion_blur_nv = 5341,
5053 vulkan_memory_model = 5345,
5054 vulkan_memory_model_device_scope = 5346,
5055 physical_storage_buffer_addresses = 5347,
5056 compute_derivative_group_linear_khr = 5350,
5057 ray_tracing_provisional_khr = 5353,
5058 cooperative_matrix_nv = 5357,
5059 fragment_shader_sample_interlock_ext = 5363,
5060 fragment_shader_shading_rate_interlock_ext = 5372,
5061 shader_sm_builtins_nv = 5373,
5062 fragment_shader_pixel_interlock_ext = 5378,
5063 demote_to_helper_invocation = 5379,
5064 displacement_micromap_nv = 5380,
5065 ray_tracing_opacity_micromap_ext = 5381,
5066 shader_invocation_reorder_nv = 5383,
5067 bindless_texture_nv = 5390,
5068 ray_query_position_fetch_khr = 5391,
5069 cooperative_vector_nv = 5394,
5070 atomic_float16vector_nv = 5404,
5071 ray_tracing_displacement_micromap_nv = 5409,
5072 raw_access_chains_nv = 5414,
5073 ray_tracing_spheres_geometry_nv = 5418,
5074 ray_tracing_linear_swept_spheres_geometry_nv = 5419,
5075 cooperative_matrix_reductions_nv = 5430,
5076 cooperative_matrix_conversions_nv = 5431,
5077 cooperative_matrix_per_element_operations_nv = 5432,
5078 cooperative_matrix_tensor_addressing_nv = 5433,
5079 cooperative_matrix_block_loads_nv = 5434,
5080 cooperative_vector_training_nv = 5435,
5081 ray_tracing_cluster_acceleration_structure_nv = 5437,
5082 tensor_addressing_nv = 5439,
5083 subgroup_shuffle_intel = 5568,
5084 subgroup_buffer_block_iointel = 5569,
5085 subgroup_image_block_iointel = 5570,
5086 subgroup_image_media_block_iointel = 5579,
5087 round_to_infinity_intel = 5582,
5088 floating_point_mode_intel = 5583,
5089 integer_functions2intel = 5584,
5090 function_pointers_intel = 5603,
5091 indirect_references_intel = 5604,
5092 asm_intel = 5606,
5093 atomic_float32min_max_ext = 5612,
5094 atomic_float64min_max_ext = 5613,
5095 atomic_float16min_max_ext = 5616,
5096 vector_compute_intel = 5617,
5097 vector_any_intel = 5619,
5098 expect_assume_khr = 5629,
5099 subgroup_avc_motion_estimation_intel = 5696,
5100 subgroup_avc_motion_estimation_intra_intel = 5697,
5101 subgroup_avc_motion_estimation_chroma_intel = 5698,
5102 variable_length_array_intel = 5817,
5103 function_float_control_intel = 5821,
5104 fpga_memory_attributes_intel = 5824,
5105 fp_fast_math_mode_intel = 5837,
5106 arbitrary_precision_integers_intel = 5844,
5107 arbitrary_precision_floating_point_intel = 5845,
5108 unstructured_loop_controls_intel = 5886,
5109 fpga_loop_controls_intel = 5888,
5110 kernel_attributes_intel = 5892,
5111 fpga_kernel_attributes_intel = 5897,
5112 fpga_memory_accesses_intel = 5898,
5113 fpga_cluster_attributes_intel = 5904,
5114 loop_fuse_intel = 5906,
5115 fpgadsp_control_intel = 5908,
5116 memory_access_aliasing_intel = 5910,
5117 fpga_invocation_pipelining_attributes_intel = 5916,
5118 fpga_buffer_location_intel = 5920,
5119 arbitrary_precision_fixed_point_intel = 5922,
5120 usm_storage_classes_intel = 5935,
5121 runtime_aligned_attribute_intel = 5939,
5122 io_pipes_intel = 5943,
5123 blocking_pipes_intel = 5945,
5124 fpga_reg_intel = 5948,
5125 dot_product_input_all = 6016,
5126 dot_product_input4x8bit = 6017,
5127 dot_product_input4x8bit_packed = 6018,
5128 dot_product = 6019,
5129 ray_cull_mask_khr = 6020,
5130 cooperative_matrix_khr = 6022,
5131 replicated_composites_ext = 6024,
5132 bit_instructions = 6025,
5133 group_non_uniform_rotate_khr = 6026,
5134 float_controls2 = 6029,
5135 atomic_float32add_ext = 6033,
5136 atomic_float64add_ext = 6034,
5137 long_composites_intel = 6089,
5138 opt_none_ext = 6094,
5139 atomic_float16add_ext = 6095,
5140 debug_info_module_intel = 6114,
5141 b_float16conversion_intel = 6115,
5142 split_barrier_intel = 6141,
5143 arithmetic_fence_ext = 6144,
5144 fpga_cluster_attributes_v2intel = 6150,
5145 fpga_kernel_attributesv2intel = 6161,
5146 task_sequence_intel = 6162,
5147 fp_max_error_intel = 6169,
5148 fpga_latency_control_intel = 6171,
5149 fpga_argument_interfaces_intel = 6174,
5150 global_variable_host_access_intel = 6187,
5151 global_variable_fpga_decorations_intel = 6189,
5152 subgroup_buffer_prefetch_intel = 6220,
5153 subgroup2d_block_iointel = 6228,
5154 subgroup2d_block_transform_intel = 6229,
5155 subgroup2d_block_transpose_intel = 6230,
5156 subgroup_matrix_multiply_accumulate_intel = 6236,
5157 ternary_bitwise_function_intel = 6241,
5158 group_uniform_arithmetic_khr = 6400,
5159 tensor_float32rounding_intel = 6425,
5160 masked_gather_scatter_intel = 6427,
5161 cache_controls_intel = 6441,
5162 register_limits_intel = 6460,
5163 bindless_images_intel = 6528,
48845164};
48855165pub const RayQueryIntersection = enum(u32) {
4886 RayQueryCandidateIntersectionKHR = 0,
4887 RayQueryCommittedIntersectionKHR = 1,
5166 ray_query_candidate_intersection_khr = 0,
5167 ray_query_committed_intersection_khr = 1,
48885168};
48895169pub const RayQueryCommittedIntersectionType = enum(u32) {
4890 RayQueryCommittedIntersectionNoneKHR = 0,
4891 RayQueryCommittedIntersectionTriangleKHR = 1,
4892 RayQueryCommittedIntersectionGeneratedKHR = 2,
5170 ray_query_committed_intersection_none_khr = 0,
5171 ray_query_committed_intersection_triangle_khr = 1,
5172 ray_query_committed_intersection_generated_khr = 2,
48935173};
48945174pub const RayQueryCandidateIntersectionType = enum(u32) {
4895 RayQueryCandidateIntersectionTriangleKHR = 0,
4896 RayQueryCandidateIntersectionAABBKHR = 1,
5175 ray_query_candidate_intersection_triangle_khr = 0,
5176 ray_query_candidate_intersection_aabbkhr = 1,
48975177};
48985178pub const PackedVectorFormat = enum(u32) {
4899 PackedVectorFormat4x8Bit = 0,
4900
4901 pub const PackedVectorFormat4x8BitKHR = PackedVectorFormat.PackedVectorFormat4x8Bit;
5179 packed_vector_format4x8bit = 0,
49025180};
49035181pub const CooperativeMatrixOperands = packed struct {
4904 MatrixASignedComponentsKHR: bool = false,
4905 MatrixBSignedComponentsKHR: bool = false,
4906 MatrixCSignedComponentsKHR: bool = false,
4907 MatrixResultSignedComponentsKHR: bool = false,
4908 SaturatingAccumulationKHR: bool = false,
5182 matrix_a_signed_components_khr: bool = false,
5183 matrix_b_signed_components_khr: bool = false,
5184 matrix_c_signed_components_khr: bool = false,
5185 matrix_result_signed_components_khr: bool = false,
5186 saturating_accumulation_khr: bool = false,
49095187 _reserved_bit_5: bool = false,
49105188 _reserved_bit_6: bool = false,
49115189 _reserved_bit_7: bool = false,
......@@ -4935,52 +5213,75 @@ pub const CooperativeMatrixOperands = packed struct {
49355213 _reserved_bit_31: bool = false,
49365214};
49375215pub const CooperativeMatrixLayout = enum(u32) {
4938 RowMajorKHR = 0,
4939 ColumnMajorKHR = 1,
5216 row_major_khr = 0,
5217 column_major_khr = 1,
5218 row_blocked_interleaved_arm = 4202,
5219 column_blocked_interleaved_arm = 4203,
49405220};
49415221pub const CooperativeMatrixUse = enum(u32) {
4942 MatrixAKHR = 0,
4943 MatrixBKHR = 1,
4944 MatrixAccumulatorKHR = 2,
5222 matrix_akhr = 0,
5223 matrix_bkhr = 1,
5224 matrix_accumulator_khr = 2,
49455225};
4946pub const InitializationModeQualifier = enum(u32) {
4947 InitOnDeviceReprogramINTEL = 0,
4948 InitOnDeviceResetINTEL = 1,
4949};
4950pub const LoadCacheControl = enum(u32) {
4951 UncachedINTEL = 0,
4952 CachedINTEL = 1,
4953 StreamingINTEL = 2,
4954 InvalidateAfterReadINTEL = 3,
4955 ConstCachedINTEL = 4,
4956};
4957pub const StoreCacheControl = enum(u32) {
4958 UncachedINTEL = 0,
4959 WriteThroughINTEL = 1,
4960 WriteBackINTEL = 2,
4961 StreamingINTEL = 3,
5226pub const CooperativeMatrixReduce = packed struct {
5227 row: bool = false,
5228 column: bool = false,
5229 @"2x2": bool = false,
5230 _reserved_bit_3: bool = false,
5231 _reserved_bit_4: bool = false,
5232 _reserved_bit_5: bool = false,
5233 _reserved_bit_6: bool = false,
5234 _reserved_bit_7: bool = false,
5235 _reserved_bit_8: bool = false,
5236 _reserved_bit_9: bool = false,
5237 _reserved_bit_10: bool = false,
5238 _reserved_bit_11: bool = false,
5239 _reserved_bit_12: bool = false,
5240 _reserved_bit_13: bool = false,
5241 _reserved_bit_14: bool = false,
5242 _reserved_bit_15: bool = false,
5243 _reserved_bit_16: bool = false,
5244 _reserved_bit_17: bool = false,
5245 _reserved_bit_18: bool = false,
5246 _reserved_bit_19: bool = false,
5247 _reserved_bit_20: bool = false,
5248 _reserved_bit_21: bool = false,
5249 _reserved_bit_22: bool = false,
5250 _reserved_bit_23: bool = false,
5251 _reserved_bit_24: bool = false,
5252 _reserved_bit_25: bool = false,
5253 _reserved_bit_26: bool = false,
5254 _reserved_bit_27: bool = false,
5255 _reserved_bit_28: bool = false,
5256 _reserved_bit_29: bool = false,
5257 _reserved_bit_30: bool = false,
5258 _reserved_bit_31: bool = false,
49625259};
4963pub const NamedMaximumNumberOfRegisters = enum(u32) {
4964 AutoINTEL = 0,
5260pub const TensorClampMode = enum(u32) {
5261 undefined = 0,
5262 constant = 1,
5263 clamp_to_edge = 2,
5264 repeat = 3,
5265 repeat_mirrored = 4,
49655266};
4966pub const @"OpenCL.DebugInfo.100.DebugInfoFlags" = packed struct {
4967 FlagIsProtected: bool = false,
4968 FlagIsPrivate: bool = false,
4969 FlagIsLocal: bool = false,
4970 FlagIsDefinition: bool = false,
4971 FlagFwdDecl: bool = false,
4972 FlagArtificial: bool = false,
4973 FlagExplicit: bool = false,
4974 FlagPrototyped: bool = false,
4975 FlagObjectPointer: bool = false,
4976 FlagStaticMember: bool = false,
4977 FlagIndirectVariable: bool = false,
4978 FlagLValueReference: bool = false,
4979 FlagRValueReference: bool = false,
4980 FlagIsOptimized: bool = false,
4981 FlagIsEnumClass: bool = false,
4982 FlagTypePassByValue: bool = false,
4983 FlagTypePassByReference: bool = false,
5267pub const TensorAddressingOperands = packed struct {
5268 tensor_view: bool = false,
5269 decode_func: bool = false,
5270 _reserved_bit_2: bool = false,
5271 _reserved_bit_3: bool = false,
5272 _reserved_bit_4: bool = false,
5273 _reserved_bit_5: bool = false,
5274 _reserved_bit_6: bool = false,
5275 _reserved_bit_7: bool = false,
5276 _reserved_bit_8: bool = false,
5277 _reserved_bit_9: bool = false,
5278 _reserved_bit_10: bool = false,
5279 _reserved_bit_11: bool = false,
5280 _reserved_bit_12: bool = false,
5281 _reserved_bit_13: bool = false,
5282 _reserved_bit_14: bool = false,
5283 _reserved_bit_15: bool = false,
5284 _reserved_bit_16: bool = false,
49845285 _reserved_bit_17: bool = false,
49855286 _reserved_bit_18: bool = false,
49865287 _reserved_bit_19: bool = false,
......@@ -4996,76 +5297,81 @@ pub const @"OpenCL.DebugInfo.100.DebugInfoFlags" = packed struct {
49965297 _reserved_bit_29: bool = false,
49975298 _reserved_bit_30: bool = false,
49985299 _reserved_bit_31: bool = false,
5300
5301 pub const Extended = struct {
5302 tensor_view: ?struct { id_ref: Id } = null,
5303 decode_func: ?struct { id_ref: Id } = null,
5304 _reserved_bit_2: bool = false,
5305 _reserved_bit_3: bool = false,
5306 _reserved_bit_4: bool = false,
5307 _reserved_bit_5: bool = false,
5308 _reserved_bit_6: bool = false,
5309 _reserved_bit_7: bool = false,
5310 _reserved_bit_8: bool = false,
5311 _reserved_bit_9: bool = false,
5312 _reserved_bit_10: bool = false,
5313 _reserved_bit_11: bool = false,
5314 _reserved_bit_12: bool = false,
5315 _reserved_bit_13: bool = false,
5316 _reserved_bit_14: bool = false,
5317 _reserved_bit_15: bool = false,
5318 _reserved_bit_16: bool = false,
5319 _reserved_bit_17: bool = false,
5320 _reserved_bit_18: bool = false,
5321 _reserved_bit_19: bool = false,
5322 _reserved_bit_20: bool = false,
5323 _reserved_bit_21: bool = false,
5324 _reserved_bit_22: bool = false,
5325 _reserved_bit_23: bool = false,
5326 _reserved_bit_24: bool = false,
5327 _reserved_bit_25: bool = false,
5328 _reserved_bit_26: bool = false,
5329 _reserved_bit_27: bool = false,
5330 _reserved_bit_28: bool = false,
5331 _reserved_bit_29: bool = false,
5332 _reserved_bit_30: bool = false,
5333 _reserved_bit_31: bool = false,
5334 };
49995335};
5000pub const @"OpenCL.DebugInfo.100.DebugBaseTypeAttributeEncoding" = enum(u32) {
5001 Unspecified = 0,
5002 Address = 1,
5003 Boolean = 2,
5004 Float = 3,
5005 Signed = 4,
5006 SignedChar = 5,
5007 Unsigned = 6,
5008 UnsignedChar = 7,
5009};
5010pub const @"OpenCL.DebugInfo.100.DebugCompositeType" = enum(u32) {
5011 Class = 0,
5012 Structure = 1,
5013 Union = 2,
5336pub const InitializationModeQualifier = enum(u32) {
5337 init_on_device_reprogram_intel = 0,
5338 init_on_device_reset_intel = 1,
50145339};
5015pub const @"OpenCL.DebugInfo.100.DebugTypeQualifier" = enum(u32) {
5016 ConstType = 0,
5017 VolatileType = 1,
5018 RestrictType = 2,
5019 AtomicType = 3,
5340pub const LoadCacheControl = enum(u32) {
5341 uncached_intel = 0,
5342 cached_intel = 1,
5343 streaming_intel = 2,
5344 invalidate_after_read_intel = 3,
5345 const_cached_intel = 4,
50205346};
5021pub const @"OpenCL.DebugInfo.100.DebugOperation" = enum(u32) {
5022 Deref = 0,
5023 Plus = 1,
5024 Minus = 2,
5025 PlusUconst = 3,
5026 BitPiece = 4,
5027 Swap = 5,
5028 Xderef = 6,
5029 StackValue = 7,
5030 Constu = 8,
5031 Fragment = 9,
5032
5033 pub const Extended = union(@"OpenCL.DebugInfo.100.DebugOperation") {
5034 Deref,
5035 Plus,
5036 Minus,
5037 PlusUconst: struct { literal_integer: LiteralInteger },
5038 BitPiece: struct { literal_integer_0: LiteralInteger, literal_integer_1: LiteralInteger },
5039 Swap,
5040 Xderef,
5041 StackValue,
5042 Constu: struct { literal_integer: LiteralInteger },
5043 Fragment: struct { literal_integer_0: LiteralInteger, literal_integer_1: LiteralInteger },
5044 };
5347pub const StoreCacheControl = enum(u32) {
5348 uncached_intel = 0,
5349 write_through_intel = 1,
5350 write_back_intel = 2,
5351 streaming_intel = 3,
50455352};
5046pub const @"OpenCL.DebugInfo.100.DebugImportedEntity" = enum(u32) {
5047 ImportedModule = 0,
5048 ImportedDeclaration = 1,
5353pub const NamedMaximumNumberOfRegisters = enum(u32) {
5354 auto_intel = 0,
50495355};
5050pub const @"NonSemantic.Shader.DebugInfo.100.DebugInfoFlags" = packed struct {
5051 FlagIsProtected: bool = false,
5052 FlagIsPrivate: bool = false,
5053 FlagIsLocal: bool = false,
5054 FlagIsDefinition: bool = false,
5055 FlagFwdDecl: bool = false,
5056 FlagArtificial: bool = false,
5057 FlagExplicit: bool = false,
5058 FlagPrototyped: bool = false,
5059 FlagObjectPointer: bool = false,
5060 FlagStaticMember: bool = false,
5061 FlagIndirectVariable: bool = false,
5062 FlagLValueReference: bool = false,
5063 FlagRValueReference: bool = false,
5064 FlagIsOptimized: bool = false,
5065 FlagIsEnumClass: bool = false,
5066 FlagTypePassByValue: bool = false,
5067 FlagTypePassByReference: bool = false,
5068 FlagUnknownPhysicalLayout: bool = false,
5356pub const MatrixMultiplyAccumulateOperands = packed struct {
5357 matrix_a_signed_components_intel: bool = false,
5358 matrix_b_signed_components_intel: bool = false,
5359 matrix_cb_float16intel: bool = false,
5360 matrix_result_b_float16intel: bool = false,
5361 matrix_a_packed_int8intel: bool = false,
5362 matrix_b_packed_int8intel: bool = false,
5363 matrix_a_packed_int4intel: bool = false,
5364 matrix_b_packed_int4intel: bool = false,
5365 matrix_atf32intel: bool = false,
5366 matrix_btf32intel: bool = false,
5367 matrix_a_packed_float16intel: bool = false,
5368 matrix_b_packed_float16intel: bool = false,
5369 matrix_a_packed_b_float16intel: bool = false,
5370 matrix_b_packed_b_float16intel: bool = false,
5371 _reserved_bit_14: bool = false,
5372 _reserved_bit_15: bool = false,
5373 _reserved_bit_16: bool = false,
5374 _reserved_bit_17: bool = false,
50695375 _reserved_bit_18: bool = false,
50705376 _reserved_bit_19: bool = false,
50715377 _reserved_bit_20: bool = false,
......@@ -5081,12 +5387,40 @@ pub const @"NonSemantic.Shader.DebugInfo.100.DebugInfoFlags" = packed struct {
50815387 _reserved_bit_30: bool = false,
50825388 _reserved_bit_31: bool = false,
50835389};
5084pub const @"NonSemantic.Shader.DebugInfo.100.BuildIdentifierFlags" = packed struct {
5085 IdentifierPossibleDuplicates: bool = false,
5086 _reserved_bit_1: bool = false,
5087 _reserved_bit_2: bool = false,
5088 _reserved_bit_3: bool = false,
5089 _reserved_bit_4: bool = false,
5390pub const FPEncoding = enum(u32) {
5391 b_float16khr = 0,
5392 float8e4m3ext = 4214,
5393 float8e5m2ext = 4215,
5394};
5395pub const CooperativeVectorMatrixLayout = enum(u32) {
5396 row_major_nv = 0,
5397 column_major_nv = 1,
5398 inferencing_optimal_nv = 2,
5399 training_optimal_nv = 3,
5400};
5401pub const ComponentType = enum(u32) {
5402 float16nv = 0,
5403 float32nv = 1,
5404 float64nv = 2,
5405 signed_int8nv = 3,
5406 signed_int16nv = 4,
5407 signed_int32nv = 5,
5408 signed_int64nv = 6,
5409 unsigned_int8nv = 7,
5410 unsigned_int16nv = 8,
5411 unsigned_int32nv = 9,
5412 unsigned_int64nv = 10,
5413 signed_int8packed_nv = 1000491000,
5414 unsigned_int8packed_nv = 1000491001,
5415 float_e4m3nv = 1000491002,
5416 float_e5m2nv = 1000491003,
5417};
5418pub const TensorOperands = packed struct {
5419 nontemporal_arm: bool = false,
5420 out_of_bounds_value_arm: bool = false,
5421 make_element_available_arm: bool = false,
5422 make_element_visible_arm: bool = false,
5423 non_private_element_arm: bool = false,
50905424 _reserved_bit_5: bool = false,
50915425 _reserved_bit_6: bool = false,
50925426 _reserved_bit_7: bool = false,
......@@ -5114,59 +5448,205 @@ pub const @"NonSemantic.Shader.DebugInfo.100.BuildIdentifierFlags" = packed stru
51145448 _reserved_bit_29: bool = false,
51155449 _reserved_bit_30: bool = false,
51165450 _reserved_bit_31: bool = false,
5451
5452 pub const Extended = struct {
5453 nontemporal_arm: bool = false,
5454 out_of_bounds_value_arm: ?struct { id_ref: Id } = null,
5455 make_element_available_arm: ?struct { id_ref: Id } = null,
5456 make_element_visible_arm: ?struct { id_ref: Id } = null,
5457 non_private_element_arm: bool = false,
5458 _reserved_bit_5: bool = false,
5459 _reserved_bit_6: bool = false,
5460 _reserved_bit_7: bool = false,
5461 _reserved_bit_8: bool = false,
5462 _reserved_bit_9: bool = false,
5463 _reserved_bit_10: bool = false,
5464 _reserved_bit_11: bool = false,
5465 _reserved_bit_12: bool = false,
5466 _reserved_bit_13: bool = false,
5467 _reserved_bit_14: bool = false,
5468 _reserved_bit_15: bool = false,
5469 _reserved_bit_16: bool = false,
5470 _reserved_bit_17: bool = false,
5471 _reserved_bit_18: bool = false,
5472 _reserved_bit_19: bool = false,
5473 _reserved_bit_20: bool = false,
5474 _reserved_bit_21: bool = false,
5475 _reserved_bit_22: bool = false,
5476 _reserved_bit_23: bool = false,
5477 _reserved_bit_24: bool = false,
5478 _reserved_bit_25: bool = false,
5479 _reserved_bit_26: bool = false,
5480 _reserved_bit_27: bool = false,
5481 _reserved_bit_28: bool = false,
5482 _reserved_bit_29: bool = false,
5483 _reserved_bit_30: bool = false,
5484 _reserved_bit_31: bool = false,
5485 };
51175486};
5118pub const @"NonSemantic.Shader.DebugInfo.100.DebugBaseTypeAttributeEncoding" = enum(u32) {
5119 Unspecified = 0,
5120 Address = 1,
5121 Boolean = 2,
5122 Float = 3,
5123 Signed = 4,
5124 SignedChar = 5,
5125 Unsigned = 6,
5126 UnsignedChar = 7,
5487pub const @"DebugInfo.DebugInfoFlags" = packed struct {
5488 flag_is_protected: bool = false,
5489 flag_is_private: bool = false,
5490 flag_is_local: bool = false,
5491 flag_is_definition: bool = false,
5492 flag_fwd_decl: bool = false,
5493 flag_artificial: bool = false,
5494 flag_explicit: bool = false,
5495 flag_prototyped: bool = false,
5496 flag_object_pointer: bool = false,
5497 flag_static_member: bool = false,
5498 flag_indirect_variable: bool = false,
5499 flag_l_value_reference: bool = false,
5500 flag_r_value_reference: bool = false,
5501 flag_is_optimized: bool = false,
5502 _reserved_bit_14: bool = false,
5503 _reserved_bit_15: bool = false,
5504 _reserved_bit_16: bool = false,
5505 _reserved_bit_17: bool = false,
5506 _reserved_bit_18: bool = false,
5507 _reserved_bit_19: bool = false,
5508 _reserved_bit_20: bool = false,
5509 _reserved_bit_21: bool = false,
5510 _reserved_bit_22: bool = false,
5511 _reserved_bit_23: bool = false,
5512 _reserved_bit_24: bool = false,
5513 _reserved_bit_25: bool = false,
5514 _reserved_bit_26: bool = false,
5515 _reserved_bit_27: bool = false,
5516 _reserved_bit_28: bool = false,
5517 _reserved_bit_29: bool = false,
5518 _reserved_bit_30: bool = false,
5519 _reserved_bit_31: bool = false,
51275520};
5128pub const @"NonSemantic.Shader.DebugInfo.100.DebugCompositeType" = enum(u32) {
5129 Class = 0,
5130 Structure = 1,
5131 Union = 2,
5521pub const @"DebugInfo.DebugBaseTypeAttributeEncoding" = enum(u32) {
5522 unspecified = 0,
5523 address = 1,
5524 boolean = 2,
5525 float = 4,
5526 signed = 5,
5527 signed_char = 6,
5528 unsigned = 7,
5529 unsigned_char = 8,
51325530};
5133pub const @"NonSemantic.Shader.DebugInfo.100.DebugTypeQualifier" = enum(u32) {
5134 ConstType = 0,
5135 VolatileType = 1,
5136 RestrictType = 2,
5137 AtomicType = 3,
5531pub const @"DebugInfo.DebugCompositeType" = enum(u32) {
5532 class = 0,
5533 structure = 1,
5534 @"union" = 2,
51385535};
5139pub const @"NonSemantic.Shader.DebugInfo.100.DebugOperation" = enum(u32) {
5140 Deref = 0,
5141 Plus = 1,
5142 Minus = 2,
5143 PlusUconst = 3,
5144 BitPiece = 4,
5145 Swap = 5,
5146 Xderef = 6,
5147 StackValue = 7,
5148 Constu = 8,
5149 Fragment = 9,
5536pub const @"DebugInfo.DebugTypeQualifier" = enum(u32) {
5537 const_type = 0,
5538 volatile_type = 1,
5539 restrict_type = 2,
5540};
5541pub const @"DebugInfo.DebugOperation" = enum(u32) {
5542 deref = 0,
5543 plus = 1,
5544 minus = 2,
5545 plus_uconst = 3,
5546 bit_piece = 4,
5547 swap = 5,
5548 xderef = 6,
5549 stack_value = 7,
5550 constu = 8,
51505551
5151 pub const Extended = union(@"NonSemantic.Shader.DebugInfo.100.DebugOperation") {
5152 Deref,
5153 Plus,
5154 Minus,
5155 PlusUconst: struct { id_ref: IdRef },
5156 BitPiece: struct { id_ref_0: IdRef, id_ref_1: IdRef },
5157 Swap,
5158 Xderef,
5159 StackValue,
5160 Constu: struct { id_ref: IdRef },
5161 Fragment: struct { id_ref_0: IdRef, id_ref_1: IdRef },
5552 pub const Extended = union(@"DebugInfo.DebugOperation") {
5553 deref,
5554 plus,
5555 minus,
5556 plus_uconst: struct { literal_integer: LiteralInteger },
5557 bit_piece: struct { literal_integer_0: LiteralInteger, literal_integer_1: LiteralInteger },
5558 swap,
5559 xderef,
5560 stack_value,
5561 constu: struct { literal_integer: LiteralInteger },
51625562 };
51635563};
5164pub const @"NonSemantic.Shader.DebugInfo.100.DebugImportedEntity" = enum(u32) {
5165 ImportedModule = 0,
5166 ImportedDeclaration = 1,
5564pub const @"OpenCL.DebugInfo.100.DebugInfoFlags" = packed struct {
5565 flag_is_protected: bool = false,
5566 flag_is_private: bool = false,
5567 flag_is_local: bool = false,
5568 flag_is_definition: bool = false,
5569 flag_fwd_decl: bool = false,
5570 flag_artificial: bool = false,
5571 flag_explicit: bool = false,
5572 flag_prototyped: bool = false,
5573 flag_object_pointer: bool = false,
5574 flag_static_member: bool = false,
5575 flag_indirect_variable: bool = false,
5576 flag_l_value_reference: bool = false,
5577 flag_r_value_reference: bool = false,
5578 flag_is_optimized: bool = false,
5579 flag_is_enum_class: bool = false,
5580 flag_type_pass_by_value: bool = false,
5581 flag_type_pass_by_reference: bool = false,
5582 _reserved_bit_17: bool = false,
5583 _reserved_bit_18: bool = false,
5584 _reserved_bit_19: bool = false,
5585 _reserved_bit_20: bool = false,
5586 _reserved_bit_21: bool = false,
5587 _reserved_bit_22: bool = false,
5588 _reserved_bit_23: bool = false,
5589 _reserved_bit_24: bool = false,
5590 _reserved_bit_25: bool = false,
5591 _reserved_bit_26: bool = false,
5592 _reserved_bit_27: bool = false,
5593 _reserved_bit_28: bool = false,
5594 _reserved_bit_29: bool = false,
5595 _reserved_bit_30: bool = false,
5596 _reserved_bit_31: bool = false,
5597};
5598pub const @"OpenCL.DebugInfo.100.DebugBaseTypeAttributeEncoding" = enum(u32) {
5599 unspecified = 0,
5600 address = 1,
5601 boolean = 2,
5602 float = 3,
5603 signed = 4,
5604 signed_char = 5,
5605 unsigned = 6,
5606 unsigned_char = 7,
5607};
5608pub const @"OpenCL.DebugInfo.100.DebugCompositeType" = enum(u32) {
5609 class = 0,
5610 structure = 1,
5611 @"union" = 2,
5612};
5613pub const @"OpenCL.DebugInfo.100.DebugTypeQualifier" = enum(u32) {
5614 const_type = 0,
5615 volatile_type = 1,
5616 restrict_type = 2,
5617 atomic_type = 3,
5618};
5619pub const @"OpenCL.DebugInfo.100.DebugOperation" = enum(u32) {
5620 deref = 0,
5621 plus = 1,
5622 minus = 2,
5623 plus_uconst = 3,
5624 bit_piece = 4,
5625 swap = 5,
5626 xderef = 6,
5627 stack_value = 7,
5628 constu = 8,
5629 fragment = 9,
5630
5631 pub const Extended = union(@"OpenCL.DebugInfo.100.DebugOperation") {
5632 deref,
5633 plus,
5634 minus,
5635 plus_uconst: struct { literal_integer: LiteralInteger },
5636 bit_piece: struct { literal_integer_0: LiteralInteger, literal_integer_1: LiteralInteger },
5637 swap,
5638 xderef,
5639 stack_value,
5640 constu: struct { literal_integer: LiteralInteger },
5641 fragment: struct { literal_integer_0: LiteralInteger, literal_integer_1: LiteralInteger },
5642 };
5643};
5644pub const @"OpenCL.DebugInfo.100.DebugImportedEntity" = enum(u32) {
5645 imported_module = 0,
5646 imported_declaration = 1,
51675647};
51685648pub const @"NonSemantic.ClspvReflection.6.KernelPropertyFlags" = packed struct {
5169 MayUsePrintf: bool = false,
5649 may_use_printf: bool = false,
51705650 _reserved_bit_1: bool = false,
51715651 _reserved_bit_2: bool = false,
51725652 _reserved_bit_3: bool = false,
......@@ -5199,21 +5679,55 @@ pub const @"NonSemantic.ClspvReflection.6.KernelPropertyFlags" = packed struct {
51995679 _reserved_bit_30: bool = false,
52005680 _reserved_bit_31: bool = false,
52015681};
5202pub const @"DebugInfo.DebugInfoFlags" = packed struct {
5203 FlagIsProtected: bool = false,
5204 FlagIsPrivate: bool = false,
5205 FlagIsLocal: bool = false,
5206 FlagIsDefinition: bool = false,
5207 FlagFwdDecl: bool = false,
5208 FlagArtificial: bool = false,
5209 FlagExplicit: bool = false,
5210 FlagPrototyped: bool = false,
5211 FlagObjectPointer: bool = false,
5212 FlagStaticMember: bool = false,
5213 FlagIndirectVariable: bool = false,
5214 FlagLValueReference: bool = false,
5215 FlagRValueReference: bool = false,
5216 FlagIsOptimized: bool = false,
5682pub const @"NonSemantic.Shader.DebugInfo.100.DebugInfoFlags" = packed struct {
5683 flag_is_protected: bool = false,
5684 flag_is_private: bool = false,
5685 flag_is_local: bool = false,
5686 flag_is_definition: bool = false,
5687 flag_fwd_decl: bool = false,
5688 flag_artificial: bool = false,
5689 flag_explicit: bool = false,
5690 flag_prototyped: bool = false,
5691 flag_object_pointer: bool = false,
5692 flag_static_member: bool = false,
5693 flag_indirect_variable: bool = false,
5694 flag_l_value_reference: bool = false,
5695 flag_r_value_reference: bool = false,
5696 flag_is_optimized: bool = false,
5697 flag_is_enum_class: bool = false,
5698 flag_type_pass_by_value: bool = false,
5699 flag_type_pass_by_reference: bool = false,
5700 flag_unknown_physical_layout: bool = false,
5701 _reserved_bit_18: bool = false,
5702 _reserved_bit_19: bool = false,
5703 _reserved_bit_20: bool = false,
5704 _reserved_bit_21: bool = false,
5705 _reserved_bit_22: bool = false,
5706 _reserved_bit_23: bool = false,
5707 _reserved_bit_24: bool = false,
5708 _reserved_bit_25: bool = false,
5709 _reserved_bit_26: bool = false,
5710 _reserved_bit_27: bool = false,
5711 _reserved_bit_28: bool = false,
5712 _reserved_bit_29: bool = false,
5713 _reserved_bit_30: bool = false,
5714 _reserved_bit_31: bool = false,
5715};
5716pub const @"NonSemantic.Shader.DebugInfo.100.BuildIdentifierFlags" = packed struct {
5717 identifier_possible_duplicates: bool = false,
5718 _reserved_bit_1: bool = false,
5719 _reserved_bit_2: bool = false,
5720 _reserved_bit_3: bool = false,
5721 _reserved_bit_4: bool = false,
5722 _reserved_bit_5: bool = false,
5723 _reserved_bit_6: bool = false,
5724 _reserved_bit_7: bool = false,
5725 _reserved_bit_8: bool = false,
5726 _reserved_bit_9: bool = false,
5727 _reserved_bit_10: bool = false,
5728 _reserved_bit_11: bool = false,
5729 _reserved_bit_12: bool = false,
5730 _reserved_bit_13: bool = false,
52175731 _reserved_bit_14: bool = false,
52185732 _reserved_bit_15: bool = false,
52195733 _reserved_bit_16: bool = false,
......@@ -5233,11298 +5747,12669 @@ pub const @"DebugInfo.DebugInfoFlags" = packed struct {
52335747 _reserved_bit_30: bool = false,
52345748 _reserved_bit_31: bool = false,
52355749};
5236pub const @"DebugInfo.DebugBaseTypeAttributeEncoding" = enum(u32) {
5237 Unspecified = 0,
5238 Address = 1,
5239 Boolean = 2,
5240 Float = 4,
5241 Signed = 5,
5242 SignedChar = 6,
5243 Unsigned = 7,
5244 UnsignedChar = 8,
5750pub const @"NonSemantic.Shader.DebugInfo.100.DebugBaseTypeAttributeEncoding" = enum(u32) {
5751 unspecified = 0,
5752 address = 1,
5753 boolean = 2,
5754 float = 3,
5755 signed = 4,
5756 signed_char = 5,
5757 unsigned = 6,
5758 unsigned_char = 7,
52455759};
5246pub const @"DebugInfo.DebugCompositeType" = enum(u32) {
5247 Class = 0,
5248 Structure = 1,
5249 Union = 2,
5760pub const @"NonSemantic.Shader.DebugInfo.100.DebugCompositeType" = enum(u32) {
5761 class = 0,
5762 structure = 1,
5763 @"union" = 2,
52505764};
5251pub const @"DebugInfo.DebugTypeQualifier" = enum(u32) {
5252 ConstType = 0,
5253 VolatileType = 1,
5254 RestrictType = 2,
5765pub const @"NonSemantic.Shader.DebugInfo.100.DebugTypeQualifier" = enum(u32) {
5766 const_type = 0,
5767 volatile_type = 1,
5768 restrict_type = 2,
5769 atomic_type = 3,
52555770};
5256pub const @"DebugInfo.DebugOperation" = enum(u32) {
5257 Deref = 0,
5258 Plus = 1,
5259 Minus = 2,
5260 PlusUconst = 3,
5261 BitPiece = 4,
5262 Swap = 5,
5263 Xderef = 6,
5264 StackValue = 7,
5265 Constu = 8,
5771pub const @"NonSemantic.Shader.DebugInfo.100.DebugOperation" = enum(u32) {
5772 deref = 0,
5773 plus = 1,
5774 minus = 2,
5775 plus_uconst = 3,
5776 bit_piece = 4,
5777 swap = 5,
5778 xderef = 6,
5779 stack_value = 7,
5780 constu = 8,
5781 fragment = 9,
52665782
5267 pub const Extended = union(@"DebugInfo.DebugOperation") {
5268 Deref,
5269 Plus,
5270 Minus,
5271 PlusUconst: struct { literal_integer: LiteralInteger },
5272 BitPiece: struct { literal_integer_0: LiteralInteger, literal_integer_1: LiteralInteger },
5273 Swap,
5274 Xderef,
5275 StackValue,
5276 Constu: struct { literal_integer: LiteralInteger },
5783 pub const Extended = union(@"NonSemantic.Shader.DebugInfo.100.DebugOperation") {
5784 deref,
5785 plus,
5786 minus,
5787 plus_uconst: struct { id_ref: Id },
5788 bit_piece: struct { id_ref_0: Id, id_ref_1: Id },
5789 swap,
5790 xderef,
5791 stack_value,
5792 constu: struct { id_ref: Id },
5793 fragment: struct { id_ref_0: Id, id_ref_1: Id },
52775794 };
52785795};
5796pub const @"NonSemantic.Shader.DebugInfo.100.DebugImportedEntity" = enum(u32) {
5797 imported_module = 0,
5798 imported_declaration = 1,
5799};
52795800pub const InstructionSet = enum {
52805801 core,
5281 @"OpenCL.std",
5282 @"GLSL.std.450",
5283 @"OpenCL.DebugInfo.100",
5284 SPV_AMD_shader_ballot,
5285 @"NonSemantic.Shader.DebugInfo.100",
5286 @"NonSemantic.VkspReflection",
5287 @"NonSemantic.ClspvReflection.6",
5288 SPV_AMD_gcn_shader,
5289 SPV_AMD_shader_trinary_minmax,
5290 DebugInfo,
5291 @"NonSemantic.DebugPrintf",
5292 SPV_AMD_shader_explicit_vertex_parameter,
5293 @"NonSemantic.DebugBreak",
5802 spv_amd_shader_trinary_minmax,
5803 spv_ext_inst_type_tosa_001000_1,
5804 non_semantic_vksp_reflection,
5805 spv_amd_shader_explicit_vertex_parameter,
5806 debug_info,
5807 non_semantic_debug_break,
5808 open_cl_debug_info_100,
5809 non_semantic_clspv_reflection_6,
5810 glsl_std_450,
5811 spv_amd_shader_ballot,
5812 non_semantic_debug_printf,
5813 spv_amd_gcn_shader,
5814 open_cl_std,
5815 non_semantic_shader_debug_info_100,
52945816 zig,
52955817
52965818 pub fn instructions(self: InstructionSet) []const Instruction {
52975819 return switch (self) {
5298 .core => &[_]Instruction{
5820 .core => &.{
52995821 .{
53005822 .name = "OpNop",
53015823 .opcode = 0,
5302 .operands = &[_]Operand{},
5824 .operands = &.{},
53035825 },
53045826 .{
53055827 .name = "OpUndef",
53065828 .opcode = 1,
5307 .operands = &[_]Operand{
5308 .{ .kind = .IdResultType, .quantifier = .required },
5309 .{ .kind = .IdResult, .quantifier = .required },
5829 .operands = &.{
5830 .{ .kind = .id_result_type, .quantifier = .required },
5831 .{ .kind = .id_result, .quantifier = .required },
53105832 },
53115833 },
53125834 .{
53135835 .name = "OpSourceContinued",
53145836 .opcode = 2,
5315 .operands = &[_]Operand{
5316 .{ .kind = .LiteralString, .quantifier = .required },
5837 .operands = &.{
5838 .{ .kind = .literal_string, .quantifier = .required },
53175839 },
53185840 },
53195841 .{
53205842 .name = "OpSource",
53215843 .opcode = 3,
5322 .operands = &[_]Operand{
5323 .{ .kind = .SourceLanguage, .quantifier = .required },
5324 .{ .kind = .LiteralInteger, .quantifier = .required },
5325 .{ .kind = .IdRef, .quantifier = .optional },
5326 .{ .kind = .LiteralString, .quantifier = .optional },
5844 .operands = &.{
5845 .{ .kind = .source_language, .quantifier = .required },
5846 .{ .kind = .literal_integer, .quantifier = .required },
5847 .{ .kind = .id_ref, .quantifier = .optional },
5848 .{ .kind = .literal_string, .quantifier = .optional },
53275849 },
53285850 },
53295851 .{
53305852 .name = "OpSourceExtension",
53315853 .opcode = 4,
5332 .operands = &[_]Operand{
5333 .{ .kind = .LiteralString, .quantifier = .required },
5854 .operands = &.{
5855 .{ .kind = .literal_string, .quantifier = .required },
53345856 },
53355857 },
53365858 .{
53375859 .name = "OpName",
53385860 .opcode = 5,
5339 .operands = &[_]Operand{
5340 .{ .kind = .IdRef, .quantifier = .required },
5341 .{ .kind = .LiteralString, .quantifier = .required },
5861 .operands = &.{
5862 .{ .kind = .id_ref, .quantifier = .required },
5863 .{ .kind = .literal_string, .quantifier = .required },
53425864 },
53435865 },
53445866 .{
53455867 .name = "OpMemberName",
53465868 .opcode = 6,
5347 .operands = &[_]Operand{
5348 .{ .kind = .IdRef, .quantifier = .required },
5349 .{ .kind = .LiteralInteger, .quantifier = .required },
5350 .{ .kind = .LiteralString, .quantifier = .required },
5869 .operands = &.{
5870 .{ .kind = .id_ref, .quantifier = .required },
5871 .{ .kind = .literal_integer, .quantifier = .required },
5872 .{ .kind = .literal_string, .quantifier = .required },
53515873 },
53525874 },
53535875 .{
53545876 .name = "OpString",
53555877 .opcode = 7,
5356 .operands = &[_]Operand{
5357 .{ .kind = .IdResult, .quantifier = .required },
5358 .{ .kind = .LiteralString, .quantifier = .required },
5878 .operands = &.{
5879 .{ .kind = .id_result, .quantifier = .required },
5880 .{ .kind = .literal_string, .quantifier = .required },
53595881 },
53605882 },
53615883 .{
53625884 .name = "OpLine",
53635885 .opcode = 8,
5364 .operands = &[_]Operand{
5365 .{ .kind = .IdRef, .quantifier = .required },
5366 .{ .kind = .LiteralInteger, .quantifier = .required },
5367 .{ .kind = .LiteralInteger, .quantifier = .required },
5886 .operands = &.{
5887 .{ .kind = .id_ref, .quantifier = .required },
5888 .{ .kind = .literal_integer, .quantifier = .required },
5889 .{ .kind = .literal_integer, .quantifier = .required },
53685890 },
53695891 },
53705892 .{
53715893 .name = "OpExtension",
53725894 .opcode = 10,
5373 .operands = &[_]Operand{
5374 .{ .kind = .LiteralString, .quantifier = .required },
5895 .operands = &.{
5896 .{ .kind = .literal_string, .quantifier = .required },
53755897 },
53765898 },
53775899 .{
53785900 .name = "OpExtInstImport",
53795901 .opcode = 11,
5380 .operands = &[_]Operand{
5381 .{ .kind = .IdResult, .quantifier = .required },
5382 .{ .kind = .LiteralString, .quantifier = .required },
5902 .operands = &.{
5903 .{ .kind = .id_result, .quantifier = .required },
5904 .{ .kind = .literal_string, .quantifier = .required },
53835905 },
53845906 },
53855907 .{
53865908 .name = "OpExtInst",
53875909 .opcode = 12,
5388 .operands = &[_]Operand{
5389 .{ .kind = .IdResultType, .quantifier = .required },
5390 .{ .kind = .IdResult, .quantifier = .required },
5391 .{ .kind = .IdRef, .quantifier = .required },
5392 .{ .kind = .LiteralExtInstInteger, .quantifier = .required },
5393 .{ .kind = .IdRef, .quantifier = .variadic },
5910 .operands = &.{
5911 .{ .kind = .id_result_type, .quantifier = .required },
5912 .{ .kind = .id_result, .quantifier = .required },
5913 .{ .kind = .id_ref, .quantifier = .required },
5914 .{ .kind = .literal_ext_inst_integer, .quantifier = .required },
5915 .{ .kind = .id_ref, .quantifier = .variadic },
53945916 },
53955917 },
53965918 .{
53975919 .name = "OpMemoryModel",
53985920 .opcode = 14,
5399 .operands = &[_]Operand{
5400 .{ .kind = .AddressingModel, .quantifier = .required },
5401 .{ .kind = .MemoryModel, .quantifier = .required },
5921 .operands = &.{
5922 .{ .kind = .addressing_model, .quantifier = .required },
5923 .{ .kind = .memory_model, .quantifier = .required },
54025924 },
54035925 },
54045926 .{
54055927 .name = "OpEntryPoint",
54065928 .opcode = 15,
5407 .operands = &[_]Operand{
5408 .{ .kind = .ExecutionModel, .quantifier = .required },
5409 .{ .kind = .IdRef, .quantifier = .required },
5410 .{ .kind = .LiteralString, .quantifier = .required },
5411 .{ .kind = .IdRef, .quantifier = .variadic },
5929 .operands = &.{
5930 .{ .kind = .execution_model, .quantifier = .required },
5931 .{ .kind = .id_ref, .quantifier = .required },
5932 .{ .kind = .literal_string, .quantifier = .required },
5933 .{ .kind = .id_ref, .quantifier = .variadic },
54125934 },
54135935 },
54145936 .{
54155937 .name = "OpExecutionMode",
54165938 .opcode = 16,
5417 .operands = &[_]Operand{
5418 .{ .kind = .IdRef, .quantifier = .required },
5419 .{ .kind = .ExecutionMode, .quantifier = .required },
5939 .operands = &.{
5940 .{ .kind = .id_ref, .quantifier = .required },
5941 .{ .kind = .execution_mode, .quantifier = .required },
54205942 },
54215943 },
54225944 .{
54235945 .name = "OpCapability",
54245946 .opcode = 17,
5425 .operands = &[_]Operand{
5426 .{ .kind = .Capability, .quantifier = .required },
5947 .operands = &.{
5948 .{ .kind = .capability, .quantifier = .required },
54275949 },
54285950 },
54295951 .{
54305952 .name = "OpTypeVoid",
54315953 .opcode = 19,
5432 .operands = &[_]Operand{
5433 .{ .kind = .IdResult, .quantifier = .required },
5954 .operands = &.{
5955 .{ .kind = .id_result, .quantifier = .required },
54345956 },
54355957 },
54365958 .{
54375959 .name = "OpTypeBool",
54385960 .opcode = 20,
5439 .operands = &[_]Operand{
5440 .{ .kind = .IdResult, .quantifier = .required },
5961 .operands = &.{
5962 .{ .kind = .id_result, .quantifier = .required },
54415963 },
54425964 },
54435965 .{
54445966 .name = "OpTypeInt",
54455967 .opcode = 21,
5446 .operands = &[_]Operand{
5447 .{ .kind = .IdResult, .quantifier = .required },
5448 .{ .kind = .LiteralInteger, .quantifier = .required },
5449 .{ .kind = .LiteralInteger, .quantifier = .required },
5968 .operands = &.{
5969 .{ .kind = .id_result, .quantifier = .required },
5970 .{ .kind = .literal_integer, .quantifier = .required },
5971 .{ .kind = .literal_integer, .quantifier = .required },
54505972 },
54515973 },
54525974 .{
54535975 .name = "OpTypeFloat",
54545976 .opcode = 22,
5455 .operands = &[_]Operand{
5456 .{ .kind = .IdResult, .quantifier = .required },
5457 .{ .kind = .LiteralInteger, .quantifier = .required },
5977 .operands = &.{
5978 .{ .kind = .id_result, .quantifier = .required },
5979 .{ .kind = .literal_integer, .quantifier = .required },
5980 .{ .kind = .fp_encoding, .quantifier = .optional },
54585981 },
54595982 },
54605983 .{
54615984 .name = "OpTypeVector",
54625985 .opcode = 23,
5463 .operands = &[_]Operand{
5464 .{ .kind = .IdResult, .quantifier = .required },
5465 .{ .kind = .IdRef, .quantifier = .required },
5466 .{ .kind = .LiteralInteger, .quantifier = .required },
5986 .operands = &.{
5987 .{ .kind = .id_result, .quantifier = .required },
5988 .{ .kind = .id_ref, .quantifier = .required },
5989 .{ .kind = .literal_integer, .quantifier = .required },
54675990 },
54685991 },
54695992 .{
54705993 .name = "OpTypeMatrix",
54715994 .opcode = 24,
5472 .operands = &[_]Operand{
5473 .{ .kind = .IdResult, .quantifier = .required },
5474 .{ .kind = .IdRef, .quantifier = .required },
5475 .{ .kind = .LiteralInteger, .quantifier = .required },
5995 .operands = &.{
5996 .{ .kind = .id_result, .quantifier = .required },
5997 .{ .kind = .id_ref, .quantifier = .required },
5998 .{ .kind = .literal_integer, .quantifier = .required },
54765999 },
54776000 },
54786001 .{
54796002 .name = "OpTypeImage",
54806003 .opcode = 25,
5481 .operands = &[_]Operand{
5482 .{ .kind = .IdResult, .quantifier = .required },
5483 .{ .kind = .IdRef, .quantifier = .required },
5484 .{ .kind = .Dim, .quantifier = .required },
5485 .{ .kind = .LiteralInteger, .quantifier = .required },
5486 .{ .kind = .LiteralInteger, .quantifier = .required },
5487 .{ .kind = .LiteralInteger, .quantifier = .required },
5488 .{ .kind = .LiteralInteger, .quantifier = .required },
5489 .{ .kind = .ImageFormat, .quantifier = .required },
5490 .{ .kind = .AccessQualifier, .quantifier = .optional },
6004 .operands = &.{
6005 .{ .kind = .id_result, .quantifier = .required },
6006 .{ .kind = .id_ref, .quantifier = .required },
6007 .{ .kind = .dim, .quantifier = .required },
6008 .{ .kind = .literal_integer, .quantifier = .required },
6009 .{ .kind = .literal_integer, .quantifier = .required },
6010 .{ .kind = .literal_integer, .quantifier = .required },
6011 .{ .kind = .literal_integer, .quantifier = .required },
6012 .{ .kind = .image_format, .quantifier = .required },
6013 .{ .kind = .access_qualifier, .quantifier = .optional },
54916014 },
54926015 },
54936016 .{
54946017 .name = "OpTypeSampler",
54956018 .opcode = 26,
5496 .operands = &[_]Operand{
5497 .{ .kind = .IdResult, .quantifier = .required },
6019 .operands = &.{
6020 .{ .kind = .id_result, .quantifier = .required },
54986021 },
54996022 },
55006023 .{
55016024 .name = "OpTypeSampledImage",
55026025 .opcode = 27,
5503 .operands = &[_]Operand{
5504 .{ .kind = .IdResult, .quantifier = .required },
5505 .{ .kind = .IdRef, .quantifier = .required },
6026 .operands = &.{
6027 .{ .kind = .id_result, .quantifier = .required },
6028 .{ .kind = .id_ref, .quantifier = .required },
55066029 },
55076030 },
55086031 .{
55096032 .name = "OpTypeArray",
55106033 .opcode = 28,
5511 .operands = &[_]Operand{
5512 .{ .kind = .IdResult, .quantifier = .required },
5513 .{ .kind = .IdRef, .quantifier = .required },
5514 .{ .kind = .IdRef, .quantifier = .required },
6034 .operands = &.{
6035 .{ .kind = .id_result, .quantifier = .required },
6036 .{ .kind = .id_ref, .quantifier = .required },
6037 .{ .kind = .id_ref, .quantifier = .required },
55156038 },
55166039 },
55176040 .{
55186041 .name = "OpTypeRuntimeArray",
55196042 .opcode = 29,
5520 .operands = &[_]Operand{
5521 .{ .kind = .IdResult, .quantifier = .required },
5522 .{ .kind = .IdRef, .quantifier = .required },
6043 .operands = &.{
6044 .{ .kind = .id_result, .quantifier = .required },
6045 .{ .kind = .id_ref, .quantifier = .required },
55236046 },
55246047 },
55256048 .{
55266049 .name = "OpTypeStruct",
55276050 .opcode = 30,
5528 .operands = &[_]Operand{
5529 .{ .kind = .IdResult, .quantifier = .required },
5530 .{ .kind = .IdRef, .quantifier = .variadic },
6051 .operands = &.{
6052 .{ .kind = .id_result, .quantifier = .required },
6053 .{ .kind = .id_ref, .quantifier = .variadic },
55316054 },
55326055 },
55336056 .{
55346057 .name = "OpTypeOpaque",
55356058 .opcode = 31,
5536 .operands = &[_]Operand{
5537 .{ .kind = .IdResult, .quantifier = .required },
5538 .{ .kind = .LiteralString, .quantifier = .required },
6059 .operands = &.{
6060 .{ .kind = .id_result, .quantifier = .required },
6061 .{ .kind = .literal_string, .quantifier = .required },
55396062 },
55406063 },
55416064 .{
55426065 .name = "OpTypePointer",
55436066 .opcode = 32,
5544 .operands = &[_]Operand{
5545 .{ .kind = .IdResult, .quantifier = .required },
5546 .{ .kind = .StorageClass, .quantifier = .required },
5547 .{ .kind = .IdRef, .quantifier = .required },
6067 .operands = &.{
6068 .{ .kind = .id_result, .quantifier = .required },
6069 .{ .kind = .storage_class, .quantifier = .required },
6070 .{ .kind = .id_ref, .quantifier = .required },
55486071 },
55496072 },
55506073 .{
55516074 .name = "OpTypeFunction",
55526075 .opcode = 33,
5553 .operands = &[_]Operand{
5554 .{ .kind = .IdResult, .quantifier = .required },
5555 .{ .kind = .IdRef, .quantifier = .required },
5556 .{ .kind = .IdRef, .quantifier = .variadic },
6076 .operands = &.{
6077 .{ .kind = .id_result, .quantifier = .required },
6078 .{ .kind = .id_ref, .quantifier = .required },
6079 .{ .kind = .id_ref, .quantifier = .variadic },
55576080 },
55586081 },
55596082 .{
55606083 .name = "OpTypeEvent",
55616084 .opcode = 34,
5562 .operands = &[_]Operand{
5563 .{ .kind = .IdResult, .quantifier = .required },
6085 .operands = &.{
6086 .{ .kind = .id_result, .quantifier = .required },
55646087 },
55656088 },
55666089 .{
55676090 .name = "OpTypeDeviceEvent",
55686091 .opcode = 35,
5569 .operands = &[_]Operand{
5570 .{ .kind = .IdResult, .quantifier = .required },
6092 .operands = &.{
6093 .{ .kind = .id_result, .quantifier = .required },
55716094 },
55726095 },
55736096 .{
55746097 .name = "OpTypeReserveId",
55756098 .opcode = 36,
5576 .operands = &[_]Operand{
5577 .{ .kind = .IdResult, .quantifier = .required },
6099 .operands = &.{
6100 .{ .kind = .id_result, .quantifier = .required },
55786101 },
55796102 },
55806103 .{
55816104 .name = "OpTypeQueue",
55826105 .opcode = 37,
5583 .operands = &[_]Operand{
5584 .{ .kind = .IdResult, .quantifier = .required },
6106 .operands = &.{
6107 .{ .kind = .id_result, .quantifier = .required },
55856108 },
55866109 },
55876110 .{
55886111 .name = "OpTypePipe",
55896112 .opcode = 38,
5590 .operands = &[_]Operand{
5591 .{ .kind = .IdResult, .quantifier = .required },
5592 .{ .kind = .AccessQualifier, .quantifier = .required },
6113 .operands = &.{
6114 .{ .kind = .id_result, .quantifier = .required },
6115 .{ .kind = .access_qualifier, .quantifier = .required },
55936116 },
55946117 },
55956118 .{
55966119 .name = "OpTypeForwardPointer",
55976120 .opcode = 39,
5598 .operands = &[_]Operand{
5599 .{ .kind = .IdRef, .quantifier = .required },
5600 .{ .kind = .StorageClass, .quantifier = .required },
6121 .operands = &.{
6122 .{ .kind = .id_ref, .quantifier = .required },
6123 .{ .kind = .storage_class, .quantifier = .required },
56016124 },
56026125 },
56036126 .{
56046127 .name = "OpConstantTrue",
56056128 .opcode = 41,
5606 .operands = &[_]Operand{
5607 .{ .kind = .IdResultType, .quantifier = .required },
5608 .{ .kind = .IdResult, .quantifier = .required },
6129 .operands = &.{
6130 .{ .kind = .id_result_type, .quantifier = .required },
6131 .{ .kind = .id_result, .quantifier = .required },
56096132 },
56106133 },
56116134 .{
56126135 .name = "OpConstantFalse",
56136136 .opcode = 42,
5614 .operands = &[_]Operand{
5615 .{ .kind = .IdResultType, .quantifier = .required },
5616 .{ .kind = .IdResult, .quantifier = .required },
6137 .operands = &.{
6138 .{ .kind = .id_result_type, .quantifier = .required },
6139 .{ .kind = .id_result, .quantifier = .required },
56176140 },
56186141 },
56196142 .{
56206143 .name = "OpConstant",
56216144 .opcode = 43,
5622 .operands = &[_]Operand{
5623 .{ .kind = .IdResultType, .quantifier = .required },
5624 .{ .kind = .IdResult, .quantifier = .required },
5625 .{ .kind = .LiteralContextDependentNumber, .quantifier = .required },
6145 .operands = &.{
6146 .{ .kind = .id_result_type, .quantifier = .required },
6147 .{ .kind = .id_result, .quantifier = .required },
6148 .{ .kind = .literal_context_dependent_number, .quantifier = .required },
56266149 },
56276150 },
56286151 .{
56296152 .name = "OpConstantComposite",
56306153 .opcode = 44,
5631 .operands = &[_]Operand{
5632 .{ .kind = .IdResultType, .quantifier = .required },
5633 .{ .kind = .IdResult, .quantifier = .required },
5634 .{ .kind = .IdRef, .quantifier = .variadic },
6154 .operands = &.{
6155 .{ .kind = .id_result_type, .quantifier = .required },
6156 .{ .kind = .id_result, .quantifier = .required },
6157 .{ .kind = .id_ref, .quantifier = .variadic },
56356158 },
56366159 },
56376160 .{
56386161 .name = "OpConstantSampler",
56396162 .opcode = 45,
5640 .operands = &[_]Operand{
5641 .{ .kind = .IdResultType, .quantifier = .required },
5642 .{ .kind = .IdResult, .quantifier = .required },
5643 .{ .kind = .SamplerAddressingMode, .quantifier = .required },
5644 .{ .kind = .LiteralInteger, .quantifier = .required },
5645 .{ .kind = .SamplerFilterMode, .quantifier = .required },
6163 .operands = &.{
6164 .{ .kind = .id_result_type, .quantifier = .required },
6165 .{ .kind = .id_result, .quantifier = .required },
6166 .{ .kind = .sampler_addressing_mode, .quantifier = .required },
6167 .{ .kind = .literal_integer, .quantifier = .required },
6168 .{ .kind = .sampler_filter_mode, .quantifier = .required },
56466169 },
56476170 },
56486171 .{
56496172 .name = "OpConstantNull",
56506173 .opcode = 46,
5651 .operands = &[_]Operand{
5652 .{ .kind = .IdResultType, .quantifier = .required },
5653 .{ .kind = .IdResult, .quantifier = .required },
6174 .operands = &.{
6175 .{ .kind = .id_result_type, .quantifier = .required },
6176 .{ .kind = .id_result, .quantifier = .required },
56546177 },
56556178 },
56566179 .{
56576180 .name = "OpSpecConstantTrue",
56586181 .opcode = 48,
5659 .operands = &[_]Operand{
5660 .{ .kind = .IdResultType, .quantifier = .required },
5661 .{ .kind = .IdResult, .quantifier = .required },
6182 .operands = &.{
6183 .{ .kind = .id_result_type, .quantifier = .required },
6184 .{ .kind = .id_result, .quantifier = .required },
56626185 },
56636186 },
56646187 .{
56656188 .name = "OpSpecConstantFalse",
56666189 .opcode = 49,
5667 .operands = &[_]Operand{
5668 .{ .kind = .IdResultType, .quantifier = .required },
5669 .{ .kind = .IdResult, .quantifier = .required },
6190 .operands = &.{
6191 .{ .kind = .id_result_type, .quantifier = .required },
6192 .{ .kind = .id_result, .quantifier = .required },
56706193 },
56716194 },
56726195 .{
56736196 .name = "OpSpecConstant",
56746197 .opcode = 50,
5675 .operands = &[_]Operand{
5676 .{ .kind = .IdResultType, .quantifier = .required },
5677 .{ .kind = .IdResult, .quantifier = .required },
5678 .{ .kind = .LiteralContextDependentNumber, .quantifier = .required },
6198 .operands = &.{
6199 .{ .kind = .id_result_type, .quantifier = .required },
6200 .{ .kind = .id_result, .quantifier = .required },
6201 .{ .kind = .literal_context_dependent_number, .quantifier = .required },
56796202 },
56806203 },
56816204 .{
56826205 .name = "OpSpecConstantComposite",
56836206 .opcode = 51,
5684 .operands = &[_]Operand{
5685 .{ .kind = .IdResultType, .quantifier = .required },
5686 .{ .kind = .IdResult, .quantifier = .required },
5687 .{ .kind = .IdRef, .quantifier = .variadic },
6207 .operands = &.{
6208 .{ .kind = .id_result_type, .quantifier = .required },
6209 .{ .kind = .id_result, .quantifier = .required },
6210 .{ .kind = .id_ref, .quantifier = .variadic },
56886211 },
56896212 },
56906213 .{
56916214 .name = "OpSpecConstantOp",
56926215 .opcode = 52,
5693 .operands = &[_]Operand{
5694 .{ .kind = .IdResultType, .quantifier = .required },
5695 .{ .kind = .IdResult, .quantifier = .required },
5696 .{ .kind = .LiteralSpecConstantOpInteger, .quantifier = .required },
6216 .operands = &.{
6217 .{ .kind = .id_result_type, .quantifier = .required },
6218 .{ .kind = .id_result, .quantifier = .required },
6219 .{ .kind = .literal_spec_constant_op_integer, .quantifier = .required },
56976220 },
56986221 },
56996222 .{
57006223 .name = "OpFunction",
57016224 .opcode = 54,
5702 .operands = &[_]Operand{
5703 .{ .kind = .IdResultType, .quantifier = .required },
5704 .{ .kind = .IdResult, .quantifier = .required },
5705 .{ .kind = .FunctionControl, .quantifier = .required },
5706 .{ .kind = .IdRef, .quantifier = .required },
6225 .operands = &.{
6226 .{ .kind = .id_result_type, .quantifier = .required },
6227 .{ .kind = .id_result, .quantifier = .required },
6228 .{ .kind = .function_control, .quantifier = .required },
6229 .{ .kind = .id_ref, .quantifier = .required },
57076230 },
57086231 },
57096232 .{
57106233 .name = "OpFunctionParameter",
57116234 .opcode = 55,
5712 .operands = &[_]Operand{
5713 .{ .kind = .IdResultType, .quantifier = .required },
5714 .{ .kind = .IdResult, .quantifier = .required },
6235 .operands = &.{
6236 .{ .kind = .id_result_type, .quantifier = .required },
6237 .{ .kind = .id_result, .quantifier = .required },
57156238 },
57166239 },
57176240 .{
57186241 .name = "OpFunctionEnd",
57196242 .opcode = 56,
5720 .operands = &[_]Operand{},
6243 .operands = &.{},
57216244 },
57226245 .{
57236246 .name = "OpFunctionCall",
57246247 .opcode = 57,
5725 .operands = &[_]Operand{
5726 .{ .kind = .IdResultType, .quantifier = .required },
5727 .{ .kind = .IdResult, .quantifier = .required },
5728 .{ .kind = .IdRef, .quantifier = .required },
5729 .{ .kind = .IdRef, .quantifier = .variadic },
6248 .operands = &.{
6249 .{ .kind = .id_result_type, .quantifier = .required },
6250 .{ .kind = .id_result, .quantifier = .required },
6251 .{ .kind = .id_ref, .quantifier = .required },
6252 .{ .kind = .id_ref, .quantifier = .variadic },
57306253 },
57316254 },
57326255 .{
57336256 .name = "OpVariable",
57346257 .opcode = 59,
5735 .operands = &[_]Operand{
5736 .{ .kind = .IdResultType, .quantifier = .required },
5737 .{ .kind = .IdResult, .quantifier = .required },
5738 .{ .kind = .StorageClass, .quantifier = .required },
5739 .{ .kind = .IdRef, .quantifier = .optional },
6258 .operands = &.{
6259 .{ .kind = .id_result_type, .quantifier = .required },
6260 .{ .kind = .id_result, .quantifier = .required },
6261 .{ .kind = .storage_class, .quantifier = .required },
6262 .{ .kind = .id_ref, .quantifier = .optional },
57406263 },
57416264 },
57426265 .{
57436266 .name = "OpImageTexelPointer",
57446267 .opcode = 60,
5745 .operands = &[_]Operand{
5746 .{ .kind = .IdResultType, .quantifier = .required },
5747 .{ .kind = .IdResult, .quantifier = .required },
5748 .{ .kind = .IdRef, .quantifier = .required },
5749 .{ .kind = .IdRef, .quantifier = .required },
5750 .{ .kind = .IdRef, .quantifier = .required },
6268 .operands = &.{
6269 .{ .kind = .id_result_type, .quantifier = .required },
6270 .{ .kind = .id_result, .quantifier = .required },
6271 .{ .kind = .id_ref, .quantifier = .required },
6272 .{ .kind = .id_ref, .quantifier = .required },
6273 .{ .kind = .id_ref, .quantifier = .required },
57516274 },
57526275 },
57536276 .{
57546277 .name = "OpLoad",
57556278 .opcode = 61,
5756 .operands = &[_]Operand{
5757 .{ .kind = .IdResultType, .quantifier = .required },
5758 .{ .kind = .IdResult, .quantifier = .required },
5759 .{ .kind = .IdRef, .quantifier = .required },
5760 .{ .kind = .MemoryAccess, .quantifier = .optional },
6279 .operands = &.{
6280 .{ .kind = .id_result_type, .quantifier = .required },
6281 .{ .kind = .id_result, .quantifier = .required },
6282 .{ .kind = .id_ref, .quantifier = .required },
6283 .{ .kind = .memory_access, .quantifier = .optional },
57616284 },
57626285 },
57636286 .{
57646287 .name = "OpStore",
57656288 .opcode = 62,
5766 .operands = &[_]Operand{
5767 .{ .kind = .IdRef, .quantifier = .required },
5768 .{ .kind = .IdRef, .quantifier = .required },
5769 .{ .kind = .MemoryAccess, .quantifier = .optional },
6289 .operands = &.{
6290 .{ .kind = .id_ref, .quantifier = .required },
6291 .{ .kind = .id_ref, .quantifier = .required },
6292 .{ .kind = .memory_access, .quantifier = .optional },
57706293 },
57716294 },
57726295 .{
57736296 .name = "OpCopyMemory",
57746297 .opcode = 63,
5775 .operands = &[_]Operand{
5776 .{ .kind = .IdRef, .quantifier = .required },
5777 .{ .kind = .IdRef, .quantifier = .required },
5778 .{ .kind = .MemoryAccess, .quantifier = .optional },
5779 .{ .kind = .MemoryAccess, .quantifier = .optional },
6298 .operands = &.{
6299 .{ .kind = .id_ref, .quantifier = .required },
6300 .{ .kind = .id_ref, .quantifier = .required },
6301 .{ .kind = .memory_access, .quantifier = .optional },
6302 .{ .kind = .memory_access, .quantifier = .optional },
57806303 },
57816304 },
57826305 .{
57836306 .name = "OpCopyMemorySized",
57846307 .opcode = 64,
5785 .operands = &[_]Operand{
5786 .{ .kind = .IdRef, .quantifier = .required },
5787 .{ .kind = .IdRef, .quantifier = .required },
5788 .{ .kind = .IdRef, .quantifier = .required },
5789 .{ .kind = .MemoryAccess, .quantifier = .optional },
5790 .{ .kind = .MemoryAccess, .quantifier = .optional },
6308 .operands = &.{
6309 .{ .kind = .id_ref, .quantifier = .required },
6310 .{ .kind = .id_ref, .quantifier = .required },
6311 .{ .kind = .id_ref, .quantifier = .required },
6312 .{ .kind = .memory_access, .quantifier = .optional },
6313 .{ .kind = .memory_access, .quantifier = .optional },
57916314 },
57926315 },
57936316 .{
57946317 .name = "OpAccessChain",
57956318 .opcode = 65,
5796 .operands = &[_]Operand{
5797 .{ .kind = .IdResultType, .quantifier = .required },
5798 .{ .kind = .IdResult, .quantifier = .required },
5799 .{ .kind = .IdRef, .quantifier = .required },
5800 .{ .kind = .IdRef, .quantifier = .variadic },
6319 .operands = &.{
6320 .{ .kind = .id_result_type, .quantifier = .required },
6321 .{ .kind = .id_result, .quantifier = .required },
6322 .{ .kind = .id_ref, .quantifier = .required },
6323 .{ .kind = .id_ref, .quantifier = .variadic },
58016324 },
58026325 },
58036326 .{
58046327 .name = "OpInBoundsAccessChain",
58056328 .opcode = 66,
5806 .operands = &[_]Operand{
5807 .{ .kind = .IdResultType, .quantifier = .required },
5808 .{ .kind = .IdResult, .quantifier = .required },
5809 .{ .kind = .IdRef, .quantifier = .required },
5810 .{ .kind = .IdRef, .quantifier = .variadic },
6329 .operands = &.{
6330 .{ .kind = .id_result_type, .quantifier = .required },
6331 .{ .kind = .id_result, .quantifier = .required },
6332 .{ .kind = .id_ref, .quantifier = .required },
6333 .{ .kind = .id_ref, .quantifier = .variadic },
58116334 },
58126335 },
58136336 .{
58146337 .name = "OpPtrAccessChain",
58156338 .opcode = 67,
5816 .operands = &[_]Operand{
5817 .{ .kind = .IdResultType, .quantifier = .required },
5818 .{ .kind = .IdResult, .quantifier = .required },
5819 .{ .kind = .IdRef, .quantifier = .required },
5820 .{ .kind = .IdRef, .quantifier = .required },
5821 .{ .kind = .IdRef, .quantifier = .variadic },
6339 .operands = &.{
6340 .{ .kind = .id_result_type, .quantifier = .required },
6341 .{ .kind = .id_result, .quantifier = .required },
6342 .{ .kind = .id_ref, .quantifier = .required },
6343 .{ .kind = .id_ref, .quantifier = .required },
6344 .{ .kind = .id_ref, .quantifier = .variadic },
58226345 },
58236346 },
58246347 .{
58256348 .name = "OpArrayLength",
58266349 .opcode = 68,
5827 .operands = &[_]Operand{
5828 .{ .kind = .IdResultType, .quantifier = .required },
5829 .{ .kind = .IdResult, .quantifier = .required },
5830 .{ .kind = .IdRef, .quantifier = .required },
5831 .{ .kind = .LiteralInteger, .quantifier = .required },
6350 .operands = &.{
6351 .{ .kind = .id_result_type, .quantifier = .required },
6352 .{ .kind = .id_result, .quantifier = .required },
6353 .{ .kind = .id_ref, .quantifier = .required },
6354 .{ .kind = .literal_integer, .quantifier = .required },
58326355 },
58336356 },
58346357 .{
58356358 .name = "OpGenericPtrMemSemantics",
58366359 .opcode = 69,
5837 .operands = &[_]Operand{
5838 .{ .kind = .IdResultType, .quantifier = .required },
5839 .{ .kind = .IdResult, .quantifier = .required },
5840 .{ .kind = .IdRef, .quantifier = .required },
6360 .operands = &.{
6361 .{ .kind = .id_result_type, .quantifier = .required },
6362 .{ .kind = .id_result, .quantifier = .required },
6363 .{ .kind = .id_ref, .quantifier = .required },
58416364 },
58426365 },
58436366 .{
58446367 .name = "OpInBoundsPtrAccessChain",
58456368 .opcode = 70,
5846 .operands = &[_]Operand{
5847 .{ .kind = .IdResultType, .quantifier = .required },
5848 .{ .kind = .IdResult, .quantifier = .required },
5849 .{ .kind = .IdRef, .quantifier = .required },
5850 .{ .kind = .IdRef, .quantifier = .required },
5851 .{ .kind = .IdRef, .quantifier = .variadic },
6369 .operands = &.{
6370 .{ .kind = .id_result_type, .quantifier = .required },
6371 .{ .kind = .id_result, .quantifier = .required },
6372 .{ .kind = .id_ref, .quantifier = .required },
6373 .{ .kind = .id_ref, .quantifier = .required },
6374 .{ .kind = .id_ref, .quantifier = .variadic },
58526375 },
58536376 },
58546377 .{
58556378 .name = "OpDecorate",
58566379 .opcode = 71,
5857 .operands = &[_]Operand{
5858 .{ .kind = .IdRef, .quantifier = .required },
5859 .{ .kind = .Decoration, .quantifier = .required },
6380 .operands = &.{
6381 .{ .kind = .id_ref, .quantifier = .required },
6382 .{ .kind = .decoration, .quantifier = .required },
58606383 },
58616384 },
58626385 .{
58636386 .name = "OpMemberDecorate",
58646387 .opcode = 72,
5865 .operands = &[_]Operand{
5866 .{ .kind = .IdRef, .quantifier = .required },
5867 .{ .kind = .LiteralInteger, .quantifier = .required },
5868 .{ .kind = .Decoration, .quantifier = .required },
6388 .operands = &.{
6389 .{ .kind = .id_ref, .quantifier = .required },
6390 .{ .kind = .literal_integer, .quantifier = .required },
6391 .{ .kind = .decoration, .quantifier = .required },
58696392 },
58706393 },
58716394 .{
58726395 .name = "OpDecorationGroup",
58736396 .opcode = 73,
5874 .operands = &[_]Operand{
5875 .{ .kind = .IdResult, .quantifier = .required },
6397 .operands = &.{
6398 .{ .kind = .id_result, .quantifier = .required },
58766399 },
58776400 },
58786401 .{
58796402 .name = "OpGroupDecorate",
58806403 .opcode = 74,
5881 .operands = &[_]Operand{
5882 .{ .kind = .IdRef, .quantifier = .required },
5883 .{ .kind = .IdRef, .quantifier = .variadic },
6404 .operands = &.{
6405 .{ .kind = .id_ref, .quantifier = .required },
6406 .{ .kind = .id_ref, .quantifier = .variadic },
58846407 },
58856408 },
58866409 .{
58876410 .name = "OpGroupMemberDecorate",
58886411 .opcode = 75,
5889 .operands = &[_]Operand{
5890 .{ .kind = .IdRef, .quantifier = .required },
5891 .{ .kind = .PairIdRefLiteralInteger, .quantifier = .variadic },
6412 .operands = &.{
6413 .{ .kind = .id_ref, .quantifier = .required },
6414 .{ .kind = .pair_id_ref_literal_integer, .quantifier = .variadic },
58926415 },
58936416 },
58946417 .{
58956418 .name = "OpVectorExtractDynamic",
58966419 .opcode = 77,
5897 .operands = &[_]Operand{
5898 .{ .kind = .IdResultType, .quantifier = .required },
5899 .{ .kind = .IdResult, .quantifier = .required },
5900 .{ .kind = .IdRef, .quantifier = .required },
5901 .{ .kind = .IdRef, .quantifier = .required },
6420 .operands = &.{
6421 .{ .kind = .id_result_type, .quantifier = .required },
6422 .{ .kind = .id_result, .quantifier = .required },
6423 .{ .kind = .id_ref, .quantifier = .required },
6424 .{ .kind = .id_ref, .quantifier = .required },
59026425 },
59036426 },
59046427 .{
59056428 .name = "OpVectorInsertDynamic",
59066429 .opcode = 78,
5907 .operands = &[_]Operand{
5908 .{ .kind = .IdResultType, .quantifier = .required },
5909 .{ .kind = .IdResult, .quantifier = .required },
5910 .{ .kind = .IdRef, .quantifier = .required },
5911 .{ .kind = .IdRef, .quantifier = .required },
5912 .{ .kind = .IdRef, .quantifier = .required },
6430 .operands = &.{
6431 .{ .kind = .id_result_type, .quantifier = .required },
6432 .{ .kind = .id_result, .quantifier = .required },
6433 .{ .kind = .id_ref, .quantifier = .required },
6434 .{ .kind = .id_ref, .quantifier = .required },
6435 .{ .kind = .id_ref, .quantifier = .required },
59136436 },
59146437 },
59156438 .{
59166439 .name = "OpVectorShuffle",
59176440 .opcode = 79,
5918 .operands = &[_]Operand{
5919 .{ .kind = .IdResultType, .quantifier = .required },
5920 .{ .kind = .IdResult, .quantifier = .required },
5921 .{ .kind = .IdRef, .quantifier = .required },
5922 .{ .kind = .IdRef, .quantifier = .required },
5923 .{ .kind = .LiteralInteger, .quantifier = .variadic },
6441 .operands = &.{
6442 .{ .kind = .id_result_type, .quantifier = .required },
6443 .{ .kind = .id_result, .quantifier = .required },
6444 .{ .kind = .id_ref, .quantifier = .required },
6445 .{ .kind = .id_ref, .quantifier = .required },
6446 .{ .kind = .literal_integer, .quantifier = .variadic },
59246447 },
59256448 },
59266449 .{
59276450 .name = "OpCompositeConstruct",
59286451 .opcode = 80,
5929 .operands = &[_]Operand{
5930 .{ .kind = .IdResultType, .quantifier = .required },
5931 .{ .kind = .IdResult, .quantifier = .required },
5932 .{ .kind = .IdRef, .quantifier = .variadic },
6452 .operands = &.{
6453 .{ .kind = .id_result_type, .quantifier = .required },
6454 .{ .kind = .id_result, .quantifier = .required },
6455 .{ .kind = .id_ref, .quantifier = .variadic },
59336456 },
59346457 },
59356458 .{
59366459 .name = "OpCompositeExtract",
59376460 .opcode = 81,
5938 .operands = &[_]Operand{
5939 .{ .kind = .IdResultType, .quantifier = .required },
5940 .{ .kind = .IdResult, .quantifier = .required },
5941 .{ .kind = .IdRef, .quantifier = .required },
5942 .{ .kind = .LiteralInteger, .quantifier = .variadic },
6461 .operands = &.{
6462 .{ .kind = .id_result_type, .quantifier = .required },
6463 .{ .kind = .id_result, .quantifier = .required },
6464 .{ .kind = .id_ref, .quantifier = .required },
6465 .{ .kind = .literal_integer, .quantifier = .variadic },
59436466 },
59446467 },
59456468 .{
59466469 .name = "OpCompositeInsert",
59476470 .opcode = 82,
5948 .operands = &[_]Operand{
5949 .{ .kind = .IdResultType, .quantifier = .required },
5950 .{ .kind = .IdResult, .quantifier = .required },
5951 .{ .kind = .IdRef, .quantifier = .required },
5952 .{ .kind = .IdRef, .quantifier = .required },
5953 .{ .kind = .LiteralInteger, .quantifier = .variadic },
6471 .operands = &.{
6472 .{ .kind = .id_result_type, .quantifier = .required },
6473 .{ .kind = .id_result, .quantifier = .required },
6474 .{ .kind = .id_ref, .quantifier = .required },
6475 .{ .kind = .id_ref, .quantifier = .required },
6476 .{ .kind = .literal_integer, .quantifier = .variadic },
59546477 },
59556478 },
59566479 .{
59576480 .name = "OpCopyObject",
59586481 .opcode = 83,
5959 .operands = &[_]Operand{
5960 .{ .kind = .IdResultType, .quantifier = .required },
5961 .{ .kind = .IdResult, .quantifier = .required },
5962 .{ .kind = .IdRef, .quantifier = .required },
6482 .operands = &.{
6483 .{ .kind = .id_result_type, .quantifier = .required },
6484 .{ .kind = .id_result, .quantifier = .required },
6485 .{ .kind = .id_ref, .quantifier = .required },
59636486 },
59646487 },
59656488 .{
59666489 .name = "OpTranspose",
59676490 .opcode = 84,
5968 .operands = &[_]Operand{
5969 .{ .kind = .IdResultType, .quantifier = .required },
5970 .{ .kind = .IdResult, .quantifier = .required },
5971 .{ .kind = .IdRef, .quantifier = .required },
6491 .operands = &.{
6492 .{ .kind = .id_result_type, .quantifier = .required },
6493 .{ .kind = .id_result, .quantifier = .required },
6494 .{ .kind = .id_ref, .quantifier = .required },
59726495 },
59736496 },
59746497 .{
59756498 .name = "OpSampledImage",
59766499 .opcode = 86,
5977 .operands = &[_]Operand{
5978 .{ .kind = .IdResultType, .quantifier = .required },
5979 .{ .kind = .IdResult, .quantifier = .required },
5980 .{ .kind = .IdRef, .quantifier = .required },
5981 .{ .kind = .IdRef, .quantifier = .required },
6500 .operands = &.{
6501 .{ .kind = .id_result_type, .quantifier = .required },
6502 .{ .kind = .id_result, .quantifier = .required },
6503 .{ .kind = .id_ref, .quantifier = .required },
6504 .{ .kind = .id_ref, .quantifier = .required },
59826505 },
59836506 },
59846507 .{
59856508 .name = "OpImageSampleImplicitLod",
59866509 .opcode = 87,
5987 .operands = &[_]Operand{
5988 .{ .kind = .IdResultType, .quantifier = .required },
5989 .{ .kind = .IdResult, .quantifier = .required },
5990 .{ .kind = .IdRef, .quantifier = .required },
5991 .{ .kind = .IdRef, .quantifier = .required },
5992 .{ .kind = .ImageOperands, .quantifier = .optional },
6510 .operands = &.{
6511 .{ .kind = .id_result_type, .quantifier = .required },
6512 .{ .kind = .id_result, .quantifier = .required },
6513 .{ .kind = .id_ref, .quantifier = .required },
6514 .{ .kind = .id_ref, .quantifier = .required },
6515 .{ .kind = .image_operands, .quantifier = .optional },
59936516 },
59946517 },
59956518 .{
59966519 .name = "OpImageSampleExplicitLod",
59976520 .opcode = 88,
5998 .operands = &[_]Operand{
5999 .{ .kind = .IdResultType, .quantifier = .required },
6000 .{ .kind = .IdResult, .quantifier = .required },
6001 .{ .kind = .IdRef, .quantifier = .required },
6002 .{ .kind = .IdRef, .quantifier = .required },
6003 .{ .kind = .ImageOperands, .quantifier = .required },
6521 .operands = &.{
6522 .{ .kind = .id_result_type, .quantifier = .required },
6523 .{ .kind = .id_result, .quantifier = .required },
6524 .{ .kind = .id_ref, .quantifier = .required },
6525 .{ .kind = .id_ref, .quantifier = .required },
6526 .{ .kind = .image_operands, .quantifier = .required },
60046527 },
60056528 },
60066529 .{
60076530 .name = "OpImageSampleDrefImplicitLod",
60086531 .opcode = 89,
6009 .operands = &[_]Operand{
6010 .{ .kind = .IdResultType, .quantifier = .required },
6011 .{ .kind = .IdResult, .quantifier = .required },
6012 .{ .kind = .IdRef, .quantifier = .required },
6013 .{ .kind = .IdRef, .quantifier = .required },
6014 .{ .kind = .IdRef, .quantifier = .required },
6015 .{ .kind = .ImageOperands, .quantifier = .optional },
6532 .operands = &.{
6533 .{ .kind = .id_result_type, .quantifier = .required },
6534 .{ .kind = .id_result, .quantifier = .required },
6535 .{ .kind = .id_ref, .quantifier = .required },
6536 .{ .kind = .id_ref, .quantifier = .required },
6537 .{ .kind = .id_ref, .quantifier = .required },
6538 .{ .kind = .image_operands, .quantifier = .optional },
60166539 },
60176540 },
60186541 .{
60196542 .name = "OpImageSampleDrefExplicitLod",
60206543 .opcode = 90,
6021 .operands = &[_]Operand{
6022 .{ .kind = .IdResultType, .quantifier = .required },
6023 .{ .kind = .IdResult, .quantifier = .required },
6024 .{ .kind = .IdRef, .quantifier = .required },
6025 .{ .kind = .IdRef, .quantifier = .required },
6026 .{ .kind = .IdRef, .quantifier = .required },
6027 .{ .kind = .ImageOperands, .quantifier = .required },
6544 .operands = &.{
6545 .{ .kind = .id_result_type, .quantifier = .required },
6546 .{ .kind = .id_result, .quantifier = .required },
6547 .{ .kind = .id_ref, .quantifier = .required },
6548 .{ .kind = .id_ref, .quantifier = .required },
6549 .{ .kind = .id_ref, .quantifier = .required },
6550 .{ .kind = .image_operands, .quantifier = .required },
60286551 },
60296552 },
60306553 .{
60316554 .name = "OpImageSampleProjImplicitLod",
60326555 .opcode = 91,
6033 .operands = &[_]Operand{
6034 .{ .kind = .IdResultType, .quantifier = .required },
6035 .{ .kind = .IdResult, .quantifier = .required },
6036 .{ .kind = .IdRef, .quantifier = .required },
6037 .{ .kind = .IdRef, .quantifier = .required },
6038 .{ .kind = .ImageOperands, .quantifier = .optional },
6556 .operands = &.{
6557 .{ .kind = .id_result_type, .quantifier = .required },
6558 .{ .kind = .id_result, .quantifier = .required },
6559 .{ .kind = .id_ref, .quantifier = .required },
6560 .{ .kind = .id_ref, .quantifier = .required },
6561 .{ .kind = .image_operands, .quantifier = .optional },
60396562 },
60406563 },
60416564 .{
60426565 .name = "OpImageSampleProjExplicitLod",
60436566 .opcode = 92,
6044 .operands = &[_]Operand{
6045 .{ .kind = .IdResultType, .quantifier = .required },
6046 .{ .kind = .IdResult, .quantifier = .required },
6047 .{ .kind = .IdRef, .quantifier = .required },
6048 .{ .kind = .IdRef, .quantifier = .required },
6049 .{ .kind = .ImageOperands, .quantifier = .required },
6567 .operands = &.{
6568 .{ .kind = .id_result_type, .quantifier = .required },
6569 .{ .kind = .id_result, .quantifier = .required },
6570 .{ .kind = .id_ref, .quantifier = .required },
6571 .{ .kind = .id_ref, .quantifier = .required },
6572 .{ .kind = .image_operands, .quantifier = .required },
60506573 },
60516574 },
60526575 .{
60536576 .name = "OpImageSampleProjDrefImplicitLod",
60546577 .opcode = 93,
6055 .operands = &[_]Operand{
6056 .{ .kind = .IdResultType, .quantifier = .required },
6057 .{ .kind = .IdResult, .quantifier = .required },
6058 .{ .kind = .IdRef, .quantifier = .required },
6059 .{ .kind = .IdRef, .quantifier = .required },
6060 .{ .kind = .IdRef, .quantifier = .required },
6061 .{ .kind = .ImageOperands, .quantifier = .optional },
6578 .operands = &.{
6579 .{ .kind = .id_result_type, .quantifier = .required },
6580 .{ .kind = .id_result, .quantifier = .required },
6581 .{ .kind = .id_ref, .quantifier = .required },
6582 .{ .kind = .id_ref, .quantifier = .required },
6583 .{ .kind = .id_ref, .quantifier = .required },
6584 .{ .kind = .image_operands, .quantifier = .optional },
60626585 },
60636586 },
60646587 .{
60656588 .name = "OpImageSampleProjDrefExplicitLod",
60666589 .opcode = 94,
6067 .operands = &[_]Operand{
6068 .{ .kind = .IdResultType, .quantifier = .required },
6069 .{ .kind = .IdResult, .quantifier = .required },
6070 .{ .kind = .IdRef, .quantifier = .required },
6071 .{ .kind = .IdRef, .quantifier = .required },
6072 .{ .kind = .IdRef, .quantifier = .required },
6073 .{ .kind = .ImageOperands, .quantifier = .required },
6590 .operands = &.{
6591 .{ .kind = .id_result_type, .quantifier = .required },
6592 .{ .kind = .id_result, .quantifier = .required },
6593 .{ .kind = .id_ref, .quantifier = .required },
6594 .{ .kind = .id_ref, .quantifier = .required },
6595 .{ .kind = .id_ref, .quantifier = .required },
6596 .{ .kind = .image_operands, .quantifier = .required },
60746597 },
60756598 },
60766599 .{
60776600 .name = "OpImageFetch",
60786601 .opcode = 95,
6079 .operands = &[_]Operand{
6080 .{ .kind = .IdResultType, .quantifier = .required },
6081 .{ .kind = .IdResult, .quantifier = .required },
6082 .{ .kind = .IdRef, .quantifier = .required },
6083 .{ .kind = .IdRef, .quantifier = .required },
6084 .{ .kind = .ImageOperands, .quantifier = .optional },
6602 .operands = &.{
6603 .{ .kind = .id_result_type, .quantifier = .required },
6604 .{ .kind = .id_result, .quantifier = .required },
6605 .{ .kind = .id_ref, .quantifier = .required },
6606 .{ .kind = .id_ref, .quantifier = .required },
6607 .{ .kind = .image_operands, .quantifier = .optional },
60856608 },
60866609 },
60876610 .{
60886611 .name = "OpImageGather",
60896612 .opcode = 96,
6090 .operands = &[_]Operand{
6091 .{ .kind = .IdResultType, .quantifier = .required },
6092 .{ .kind = .IdResult, .quantifier = .required },
6093 .{ .kind = .IdRef, .quantifier = .required },
6094 .{ .kind = .IdRef, .quantifier = .required },
6095 .{ .kind = .IdRef, .quantifier = .required },
6096 .{ .kind = .ImageOperands, .quantifier = .optional },
6613 .operands = &.{
6614 .{ .kind = .id_result_type, .quantifier = .required },
6615 .{ .kind = .id_result, .quantifier = .required },
6616 .{ .kind = .id_ref, .quantifier = .required },
6617 .{ .kind = .id_ref, .quantifier = .required },
6618 .{ .kind = .id_ref, .quantifier = .required },
6619 .{ .kind = .image_operands, .quantifier = .optional },
60976620 },
60986621 },
60996622 .{
61006623 .name = "OpImageDrefGather",
61016624 .opcode = 97,
6102 .operands = &[_]Operand{
6103 .{ .kind = .IdResultType, .quantifier = .required },
6104 .{ .kind = .IdResult, .quantifier = .required },
6105 .{ .kind = .IdRef, .quantifier = .required },
6106 .{ .kind = .IdRef, .quantifier = .required },
6107 .{ .kind = .IdRef, .quantifier = .required },
6108 .{ .kind = .ImageOperands, .quantifier = .optional },
6625 .operands = &.{
6626 .{ .kind = .id_result_type, .quantifier = .required },
6627 .{ .kind = .id_result, .quantifier = .required },
6628 .{ .kind = .id_ref, .quantifier = .required },
6629 .{ .kind = .id_ref, .quantifier = .required },
6630 .{ .kind = .id_ref, .quantifier = .required },
6631 .{ .kind = .image_operands, .quantifier = .optional },
61096632 },
61106633 },
61116634 .{
61126635 .name = "OpImageRead",
61136636 .opcode = 98,
6114 .operands = &[_]Operand{
6115 .{ .kind = .IdResultType, .quantifier = .required },
6116 .{ .kind = .IdResult, .quantifier = .required },
6117 .{ .kind = .IdRef, .quantifier = .required },
6118 .{ .kind = .IdRef, .quantifier = .required },
6119 .{ .kind = .ImageOperands, .quantifier = .optional },
6637 .operands = &.{
6638 .{ .kind = .id_result_type, .quantifier = .required },
6639 .{ .kind = .id_result, .quantifier = .required },
6640 .{ .kind = .id_ref, .quantifier = .required },
6641 .{ .kind = .id_ref, .quantifier = .required },
6642 .{ .kind = .image_operands, .quantifier = .optional },
61206643 },
61216644 },
61226645 .{
61236646 .name = "OpImageWrite",
61246647 .opcode = 99,
6125 .operands = &[_]Operand{
6126 .{ .kind = .IdRef, .quantifier = .required },
6127 .{ .kind = .IdRef, .quantifier = .required },
6128 .{ .kind = .IdRef, .quantifier = .required },
6129 .{ .kind = .ImageOperands, .quantifier = .optional },
6648 .operands = &.{
6649 .{ .kind = .id_ref, .quantifier = .required },
6650 .{ .kind = .id_ref, .quantifier = .required },
6651 .{ .kind = .id_ref, .quantifier = .required },
6652 .{ .kind = .image_operands, .quantifier = .optional },
61306653 },
61316654 },
61326655 .{
61336656 .name = "OpImage",
61346657 .opcode = 100,
6135 .operands = &[_]Operand{
6136 .{ .kind = .IdResultType, .quantifier = .required },
6137 .{ .kind = .IdResult, .quantifier = .required },
6138 .{ .kind = .IdRef, .quantifier = .required },
6658 .operands = &.{
6659 .{ .kind = .id_result_type, .quantifier = .required },
6660 .{ .kind = .id_result, .quantifier = .required },
6661 .{ .kind = .id_ref, .quantifier = .required },
61396662 },
61406663 },
61416664 .{
61426665 .name = "OpImageQueryFormat",
61436666 .opcode = 101,
6144 .operands = &[_]Operand{
6145 .{ .kind = .IdResultType, .quantifier = .required },
6146 .{ .kind = .IdResult, .quantifier = .required },
6147 .{ .kind = .IdRef, .quantifier = .required },
6667 .operands = &.{
6668 .{ .kind = .id_result_type, .quantifier = .required },
6669 .{ .kind = .id_result, .quantifier = .required },
6670 .{ .kind = .id_ref, .quantifier = .required },
61486671 },
61496672 },
61506673 .{
61516674 .name = "OpImageQueryOrder",
61526675 .opcode = 102,
6153 .operands = &[_]Operand{
6154 .{ .kind = .IdResultType, .quantifier = .required },
6155 .{ .kind = .IdResult, .quantifier = .required },
6156 .{ .kind = .IdRef, .quantifier = .required },
6676 .operands = &.{
6677 .{ .kind = .id_result_type, .quantifier = .required },
6678 .{ .kind = .id_result, .quantifier = .required },
6679 .{ .kind = .id_ref, .quantifier = .required },
61576680 },
61586681 },
61596682 .{
61606683 .name = "OpImageQuerySizeLod",
61616684 .opcode = 103,
6162 .operands = &[_]Operand{
6163 .{ .kind = .IdResultType, .quantifier = .required },
6164 .{ .kind = .IdResult, .quantifier = .required },
6165 .{ .kind = .IdRef, .quantifier = .required },
6166 .{ .kind = .IdRef, .quantifier = .required },
6685 .operands = &.{
6686 .{ .kind = .id_result_type, .quantifier = .required },
6687 .{ .kind = .id_result, .quantifier = .required },
6688 .{ .kind = .id_ref, .quantifier = .required },
6689 .{ .kind = .id_ref, .quantifier = .required },
61676690 },
61686691 },
61696692 .{
61706693 .name = "OpImageQuerySize",
61716694 .opcode = 104,
6172 .operands = &[_]Operand{
6173 .{ .kind = .IdResultType, .quantifier = .required },
6174 .{ .kind = .IdResult, .quantifier = .required },
6175 .{ .kind = .IdRef, .quantifier = .required },
6695 .operands = &.{
6696 .{ .kind = .id_result_type, .quantifier = .required },
6697 .{ .kind = .id_result, .quantifier = .required },
6698 .{ .kind = .id_ref, .quantifier = .required },
61766699 },
61776700 },
61786701 .{
61796702 .name = "OpImageQueryLod",
61806703 .opcode = 105,
6181 .operands = &[_]Operand{
6182 .{ .kind = .IdResultType, .quantifier = .required },
6183 .{ .kind = .IdResult, .quantifier = .required },
6184 .{ .kind = .IdRef, .quantifier = .required },
6185 .{ .kind = .IdRef, .quantifier = .required },
6704 .operands = &.{
6705 .{ .kind = .id_result_type, .quantifier = .required },
6706 .{ .kind = .id_result, .quantifier = .required },
6707 .{ .kind = .id_ref, .quantifier = .required },
6708 .{ .kind = .id_ref, .quantifier = .required },
61866709 },
61876710 },
61886711 .{
61896712 .name = "OpImageQueryLevels",
61906713 .opcode = 106,
6191 .operands = &[_]Operand{
6192 .{ .kind = .IdResultType, .quantifier = .required },
6193 .{ .kind = .IdResult, .quantifier = .required },
6194 .{ .kind = .IdRef, .quantifier = .required },
6714 .operands = &.{
6715 .{ .kind = .id_result_type, .quantifier = .required },
6716 .{ .kind = .id_result, .quantifier = .required },
6717 .{ .kind = .id_ref, .quantifier = .required },
61956718 },
61966719 },
61976720 .{
61986721 .name = "OpImageQuerySamples",
61996722 .opcode = 107,
6200 .operands = &[_]Operand{
6201 .{ .kind = .IdResultType, .quantifier = .required },
6202 .{ .kind = .IdResult, .quantifier = .required },
6203 .{ .kind = .IdRef, .quantifier = .required },
6723 .operands = &.{
6724 .{ .kind = .id_result_type, .quantifier = .required },
6725 .{ .kind = .id_result, .quantifier = .required },
6726 .{ .kind = .id_ref, .quantifier = .required },
62046727 },
62056728 },
62066729 .{
62076730 .name = "OpConvertFToU",
62086731 .opcode = 109,
6209 .operands = &[_]Operand{
6210 .{ .kind = .IdResultType, .quantifier = .required },
6211 .{ .kind = .IdResult, .quantifier = .required },
6212 .{ .kind = .IdRef, .quantifier = .required },
6732 .operands = &.{
6733 .{ .kind = .id_result_type, .quantifier = .required },
6734 .{ .kind = .id_result, .quantifier = .required },
6735 .{ .kind = .id_ref, .quantifier = .required },
62136736 },
62146737 },
62156738 .{
62166739 .name = "OpConvertFToS",
62176740 .opcode = 110,
6218 .operands = &[_]Operand{
6219 .{ .kind = .IdResultType, .quantifier = .required },
6220 .{ .kind = .IdResult, .quantifier = .required },
6221 .{ .kind = .IdRef, .quantifier = .required },
6741 .operands = &.{
6742 .{ .kind = .id_result_type, .quantifier = .required },
6743 .{ .kind = .id_result, .quantifier = .required },
6744 .{ .kind = .id_ref, .quantifier = .required },
62226745 },
62236746 },
62246747 .{
62256748 .name = "OpConvertSToF",
62266749 .opcode = 111,
6227 .operands = &[_]Operand{
6228 .{ .kind = .IdResultType, .quantifier = .required },
6229 .{ .kind = .IdResult, .quantifier = .required },
6230 .{ .kind = .IdRef, .quantifier = .required },
6750 .operands = &.{
6751 .{ .kind = .id_result_type, .quantifier = .required },
6752 .{ .kind = .id_result, .quantifier = .required },
6753 .{ .kind = .id_ref, .quantifier = .required },
62316754 },
62326755 },
62336756 .{
62346757 .name = "OpConvertUToF",
62356758 .opcode = 112,
6236 .operands = &[_]Operand{
6237 .{ .kind = .IdResultType, .quantifier = .required },
6238 .{ .kind = .IdResult, .quantifier = .required },
6239 .{ .kind = .IdRef, .quantifier = .required },
6759 .operands = &.{
6760 .{ .kind = .id_result_type, .quantifier = .required },
6761 .{ .kind = .id_result, .quantifier = .required },
6762 .{ .kind = .id_ref, .quantifier = .required },
62406763 },
62416764 },
62426765 .{
62436766 .name = "OpUConvert",
62446767 .opcode = 113,
6245 .operands = &[_]Operand{
6246 .{ .kind = .IdResultType, .quantifier = .required },
6247 .{ .kind = .IdResult, .quantifier = .required },
6248 .{ .kind = .IdRef, .quantifier = .required },
6768 .operands = &.{
6769 .{ .kind = .id_result_type, .quantifier = .required },
6770 .{ .kind = .id_result, .quantifier = .required },
6771 .{ .kind = .id_ref, .quantifier = .required },
62496772 },
62506773 },
62516774 .{
62526775 .name = "OpSConvert",
62536776 .opcode = 114,
6254 .operands = &[_]Operand{
6255 .{ .kind = .IdResultType, .quantifier = .required },
6256 .{ .kind = .IdResult, .quantifier = .required },
6257 .{ .kind = .IdRef, .quantifier = .required },
6777 .operands = &.{
6778 .{ .kind = .id_result_type, .quantifier = .required },
6779 .{ .kind = .id_result, .quantifier = .required },
6780 .{ .kind = .id_ref, .quantifier = .required },
62586781 },
62596782 },
62606783 .{
62616784 .name = "OpFConvert",
62626785 .opcode = 115,
6263 .operands = &[_]Operand{
6264 .{ .kind = .IdResultType, .quantifier = .required },
6265 .{ .kind = .IdResult, .quantifier = .required },
6266 .{ .kind = .IdRef, .quantifier = .required },
6786 .operands = &.{
6787 .{ .kind = .id_result_type, .quantifier = .required },
6788 .{ .kind = .id_result, .quantifier = .required },
6789 .{ .kind = .id_ref, .quantifier = .required },
62676790 },
62686791 },
62696792 .{
62706793 .name = "OpQuantizeToF16",
62716794 .opcode = 116,
6272 .operands = &[_]Operand{
6273 .{ .kind = .IdResultType, .quantifier = .required },
6274 .{ .kind = .IdResult, .quantifier = .required },
6275 .{ .kind = .IdRef, .quantifier = .required },
6795 .operands = &.{
6796 .{ .kind = .id_result_type, .quantifier = .required },
6797 .{ .kind = .id_result, .quantifier = .required },
6798 .{ .kind = .id_ref, .quantifier = .required },
62766799 },
62776800 },
62786801 .{
62796802 .name = "OpConvertPtrToU",
62806803 .opcode = 117,
6281 .operands = &[_]Operand{
6282 .{ .kind = .IdResultType, .quantifier = .required },
6283 .{ .kind = .IdResult, .quantifier = .required },
6284 .{ .kind = .IdRef, .quantifier = .required },
6804 .operands = &.{
6805 .{ .kind = .id_result_type, .quantifier = .required },
6806 .{ .kind = .id_result, .quantifier = .required },
6807 .{ .kind = .id_ref, .quantifier = .required },
62856808 },
62866809 },
62876810 .{
62886811 .name = "OpSatConvertSToU",
62896812 .opcode = 118,
6290 .operands = &[_]Operand{
6291 .{ .kind = .IdResultType, .quantifier = .required },
6292 .{ .kind = .IdResult, .quantifier = .required },
6293 .{ .kind = .IdRef, .quantifier = .required },
6813 .operands = &.{
6814 .{ .kind = .id_result_type, .quantifier = .required },
6815 .{ .kind = .id_result, .quantifier = .required },
6816 .{ .kind = .id_ref, .quantifier = .required },
62946817 },
62956818 },
62966819 .{
62976820 .name = "OpSatConvertUToS",
62986821 .opcode = 119,
6299 .operands = &[_]Operand{
6300 .{ .kind = .IdResultType, .quantifier = .required },
6301 .{ .kind = .IdResult, .quantifier = .required },
6302 .{ .kind = .IdRef, .quantifier = .required },
6822 .operands = &.{
6823 .{ .kind = .id_result_type, .quantifier = .required },
6824 .{ .kind = .id_result, .quantifier = .required },
6825 .{ .kind = .id_ref, .quantifier = .required },
63036826 },
63046827 },
63056828 .{
63066829 .name = "OpConvertUToPtr",
63076830 .opcode = 120,
6308 .operands = &[_]Operand{
6309 .{ .kind = .IdResultType, .quantifier = .required },
6310 .{ .kind = .IdResult, .quantifier = .required },
6311 .{ .kind = .IdRef, .quantifier = .required },
6831 .operands = &.{
6832 .{ .kind = .id_result_type, .quantifier = .required },
6833 .{ .kind = .id_result, .quantifier = .required },
6834 .{ .kind = .id_ref, .quantifier = .required },
63126835 },
63136836 },
63146837 .{
63156838 .name = "OpPtrCastToGeneric",
63166839 .opcode = 121,
6317 .operands = &[_]Operand{
6318 .{ .kind = .IdResultType, .quantifier = .required },
6319 .{ .kind = .IdResult, .quantifier = .required },
6320 .{ .kind = .IdRef, .quantifier = .required },
6840 .operands = &.{
6841 .{ .kind = .id_result_type, .quantifier = .required },
6842 .{ .kind = .id_result, .quantifier = .required },
6843 .{ .kind = .id_ref, .quantifier = .required },
63216844 },
63226845 },
63236846 .{
63246847 .name = "OpGenericCastToPtr",
63256848 .opcode = 122,
6326 .operands = &[_]Operand{
6327 .{ .kind = .IdResultType, .quantifier = .required },
6328 .{ .kind = .IdResult, .quantifier = .required },
6329 .{ .kind = .IdRef, .quantifier = .required },
6849 .operands = &.{
6850 .{ .kind = .id_result_type, .quantifier = .required },
6851 .{ .kind = .id_result, .quantifier = .required },
6852 .{ .kind = .id_ref, .quantifier = .required },
63306853 },
63316854 },
63326855 .{
63336856 .name = "OpGenericCastToPtrExplicit",
63346857 .opcode = 123,
6335 .operands = &[_]Operand{
6336 .{ .kind = .IdResultType, .quantifier = .required },
6337 .{ .kind = .IdResult, .quantifier = .required },
6338 .{ .kind = .IdRef, .quantifier = .required },
6339 .{ .kind = .StorageClass, .quantifier = .required },
6858 .operands = &.{
6859 .{ .kind = .id_result_type, .quantifier = .required },
6860 .{ .kind = .id_result, .quantifier = .required },
6861 .{ .kind = .id_ref, .quantifier = .required },
6862 .{ .kind = .storage_class, .quantifier = .required },
63406863 },
63416864 },
63426865 .{
63436866 .name = "OpBitcast",
63446867 .opcode = 124,
6345 .operands = &[_]Operand{
6346 .{ .kind = .IdResultType, .quantifier = .required },
6347 .{ .kind = .IdResult, .quantifier = .required },
6348 .{ .kind = .IdRef, .quantifier = .required },
6868 .operands = &.{
6869 .{ .kind = .id_result_type, .quantifier = .required },
6870 .{ .kind = .id_result, .quantifier = .required },
6871 .{ .kind = .id_ref, .quantifier = .required },
63496872 },
63506873 },
63516874 .{
63526875 .name = "OpSNegate",
63536876 .opcode = 126,
6354 .operands = &[_]Operand{
6355 .{ .kind = .IdResultType, .quantifier = .required },
6356 .{ .kind = .IdResult, .quantifier = .required },
6357 .{ .kind = .IdRef, .quantifier = .required },
6877 .operands = &.{
6878 .{ .kind = .id_result_type, .quantifier = .required },
6879 .{ .kind = .id_result, .quantifier = .required },
6880 .{ .kind = .id_ref, .quantifier = .required },
63586881 },
63596882 },
63606883 .{
63616884 .name = "OpFNegate",
63626885 .opcode = 127,
6363 .operands = &[_]Operand{
6364 .{ .kind = .IdResultType, .quantifier = .required },
6365 .{ .kind = .IdResult, .quantifier = .required },
6366 .{ .kind = .IdRef, .quantifier = .required },
6886 .operands = &.{
6887 .{ .kind = .id_result_type, .quantifier = .required },
6888 .{ .kind = .id_result, .quantifier = .required },
6889 .{ .kind = .id_ref, .quantifier = .required },
63676890 },
63686891 },
63696892 .{
63706893 .name = "OpIAdd",
63716894 .opcode = 128,
6372 .operands = &[_]Operand{
6373 .{ .kind = .IdResultType, .quantifier = .required },
6374 .{ .kind = .IdResult, .quantifier = .required },
6375 .{ .kind = .IdRef, .quantifier = .required },
6376 .{ .kind = .IdRef, .quantifier = .required },
6895 .operands = &.{
6896 .{ .kind = .id_result_type, .quantifier = .required },
6897 .{ .kind = .id_result, .quantifier = .required },
6898 .{ .kind = .id_ref, .quantifier = .required },
6899 .{ .kind = .id_ref, .quantifier = .required },
63776900 },
63786901 },
63796902 .{
63806903 .name = "OpFAdd",
63816904 .opcode = 129,
6382 .operands = &[_]Operand{
6383 .{ .kind = .IdResultType, .quantifier = .required },
6384 .{ .kind = .IdResult, .quantifier = .required },
6385 .{ .kind = .IdRef, .quantifier = .required },
6386 .{ .kind = .IdRef, .quantifier = .required },
6905 .operands = &.{
6906 .{ .kind = .id_result_type, .quantifier = .required },
6907 .{ .kind = .id_result, .quantifier = .required },
6908 .{ .kind = .id_ref, .quantifier = .required },
6909 .{ .kind = .id_ref, .quantifier = .required },
63876910 },
63886911 },
63896912 .{
63906913 .name = "OpISub",
63916914 .opcode = 130,
6392 .operands = &[_]Operand{
6393 .{ .kind = .IdResultType, .quantifier = .required },
6394 .{ .kind = .IdResult, .quantifier = .required },
6395 .{ .kind = .IdRef, .quantifier = .required },
6396 .{ .kind = .IdRef, .quantifier = .required },
6915 .operands = &.{
6916 .{ .kind = .id_result_type, .quantifier = .required },
6917 .{ .kind = .id_result, .quantifier = .required },
6918 .{ .kind = .id_ref, .quantifier = .required },
6919 .{ .kind = .id_ref, .quantifier = .required },
63976920 },
63986921 },
63996922 .{
64006923 .name = "OpFSub",
64016924 .opcode = 131,
6402 .operands = &[_]Operand{
6403 .{ .kind = .IdResultType, .quantifier = .required },
6404 .{ .kind = .IdResult, .quantifier = .required },
6405 .{ .kind = .IdRef, .quantifier = .required },
6406 .{ .kind = .IdRef, .quantifier = .required },
6925 .operands = &.{
6926 .{ .kind = .id_result_type, .quantifier = .required },
6927 .{ .kind = .id_result, .quantifier = .required },
6928 .{ .kind = .id_ref, .quantifier = .required },
6929 .{ .kind = .id_ref, .quantifier = .required },
64076930 },
64086931 },
64096932 .{
64106933 .name = "OpIMul",
64116934 .opcode = 132,
6412 .operands = &[_]Operand{
6413 .{ .kind = .IdResultType, .quantifier = .required },
6414 .{ .kind = .IdResult, .quantifier = .required },
6415 .{ .kind = .IdRef, .quantifier = .required },
6416 .{ .kind = .IdRef, .quantifier = .required },
6935 .operands = &.{
6936 .{ .kind = .id_result_type, .quantifier = .required },
6937 .{ .kind = .id_result, .quantifier = .required },
6938 .{ .kind = .id_ref, .quantifier = .required },
6939 .{ .kind = .id_ref, .quantifier = .required },
64176940 },
64186941 },
64196942 .{
64206943 .name = "OpFMul",
64216944 .opcode = 133,
6422 .operands = &[_]Operand{
6423 .{ .kind = .IdResultType, .quantifier = .required },
6424 .{ .kind = .IdResult, .quantifier = .required },
6425 .{ .kind = .IdRef, .quantifier = .required },
6426 .{ .kind = .IdRef, .quantifier = .required },
6945 .operands = &.{
6946 .{ .kind = .id_result_type, .quantifier = .required },
6947 .{ .kind = .id_result, .quantifier = .required },
6948 .{ .kind = .id_ref, .quantifier = .required },
6949 .{ .kind = .id_ref, .quantifier = .required },
64276950 },
64286951 },
64296952 .{
64306953 .name = "OpUDiv",
64316954 .opcode = 134,
6432 .operands = &[_]Operand{
6433 .{ .kind = .IdResultType, .quantifier = .required },
6434 .{ .kind = .IdResult, .quantifier = .required },
6435 .{ .kind = .IdRef, .quantifier = .required },
6436 .{ .kind = .IdRef, .quantifier = .required },
6955 .operands = &.{
6956 .{ .kind = .id_result_type, .quantifier = .required },
6957 .{ .kind = .id_result, .quantifier = .required },
6958 .{ .kind = .id_ref, .quantifier = .required },
6959 .{ .kind = .id_ref, .quantifier = .required },
64376960 },
64386961 },
64396962 .{
64406963 .name = "OpSDiv",
64416964 .opcode = 135,
6442 .operands = &[_]Operand{
6443 .{ .kind = .IdResultType, .quantifier = .required },
6444 .{ .kind = .IdResult, .quantifier = .required },
6445 .{ .kind = .IdRef, .quantifier = .required },
6446 .{ .kind = .IdRef, .quantifier = .required },
6965 .operands = &.{
6966 .{ .kind = .id_result_type, .quantifier = .required },
6967 .{ .kind = .id_result, .quantifier = .required },
6968 .{ .kind = .id_ref, .quantifier = .required },
6969 .{ .kind = .id_ref, .quantifier = .required },
64476970 },
64486971 },
64496972 .{
64506973 .name = "OpFDiv",
64516974 .opcode = 136,
6452 .operands = &[_]Operand{
6453 .{ .kind = .IdResultType, .quantifier = .required },
6454 .{ .kind = .IdResult, .quantifier = .required },
6455 .{ .kind = .IdRef, .quantifier = .required },
6456 .{ .kind = .IdRef, .quantifier = .required },
6975 .operands = &.{
6976 .{ .kind = .id_result_type, .quantifier = .required },
6977 .{ .kind = .id_result, .quantifier = .required },
6978 .{ .kind = .id_ref, .quantifier = .required },
6979 .{ .kind = .id_ref, .quantifier = .required },
64576980 },
64586981 },
64596982 .{
64606983 .name = "OpUMod",
64616984 .opcode = 137,
6462 .operands = &[_]Operand{
6463 .{ .kind = .IdResultType, .quantifier = .required },
6464 .{ .kind = .IdResult, .quantifier = .required },
6465 .{ .kind = .IdRef, .quantifier = .required },
6466 .{ .kind = .IdRef, .quantifier = .required },
6985 .operands = &.{
6986 .{ .kind = .id_result_type, .quantifier = .required },
6987 .{ .kind = .id_result, .quantifier = .required },
6988 .{ .kind = .id_ref, .quantifier = .required },
6989 .{ .kind = .id_ref, .quantifier = .required },
64676990 },
64686991 },
64696992 .{
64706993 .name = "OpSRem",
64716994 .opcode = 138,
6472 .operands = &[_]Operand{
6473 .{ .kind = .IdResultType, .quantifier = .required },
6474 .{ .kind = .IdResult, .quantifier = .required },
6475 .{ .kind = .IdRef, .quantifier = .required },
6476 .{ .kind = .IdRef, .quantifier = .required },
6995 .operands = &.{
6996 .{ .kind = .id_result_type, .quantifier = .required },
6997 .{ .kind = .id_result, .quantifier = .required },
6998 .{ .kind = .id_ref, .quantifier = .required },
6999 .{ .kind = .id_ref, .quantifier = .required },
64777000 },
64787001 },
64797002 .{
64807003 .name = "OpSMod",
64817004 .opcode = 139,
6482 .operands = &[_]Operand{
6483 .{ .kind = .IdResultType, .quantifier = .required },
6484 .{ .kind = .IdResult, .quantifier = .required },
6485 .{ .kind = .IdRef, .quantifier = .required },
6486 .{ .kind = .IdRef, .quantifier = .required },
7005 .operands = &.{
7006 .{ .kind = .id_result_type, .quantifier = .required },
7007 .{ .kind = .id_result, .quantifier = .required },
7008 .{ .kind = .id_ref, .quantifier = .required },
7009 .{ .kind = .id_ref, .quantifier = .required },
64877010 },
64887011 },
64897012 .{
64907013 .name = "OpFRem",
64917014 .opcode = 140,
6492 .operands = &[_]Operand{
6493 .{ .kind = .IdResultType, .quantifier = .required },
6494 .{ .kind = .IdResult, .quantifier = .required },
6495 .{ .kind = .IdRef, .quantifier = .required },
6496 .{ .kind = .IdRef, .quantifier = .required },
7015 .operands = &.{
7016 .{ .kind = .id_result_type, .quantifier = .required },
7017 .{ .kind = .id_result, .quantifier = .required },
7018 .{ .kind = .id_ref, .quantifier = .required },
7019 .{ .kind = .id_ref, .quantifier = .required },
64977020 },
64987021 },
64997022 .{
65007023 .name = "OpFMod",
65017024 .opcode = 141,
6502 .operands = &[_]Operand{
6503 .{ .kind = .IdResultType, .quantifier = .required },
6504 .{ .kind = .IdResult, .quantifier = .required },
6505 .{ .kind = .IdRef, .quantifier = .required },
6506 .{ .kind = .IdRef, .quantifier = .required },
7025 .operands = &.{
7026 .{ .kind = .id_result_type, .quantifier = .required },
7027 .{ .kind = .id_result, .quantifier = .required },
7028 .{ .kind = .id_ref, .quantifier = .required },
7029 .{ .kind = .id_ref, .quantifier = .required },
65077030 },
65087031 },
65097032 .{
65107033 .name = "OpVectorTimesScalar",
65117034 .opcode = 142,
6512 .operands = &[_]Operand{
6513 .{ .kind = .IdResultType, .quantifier = .required },
6514 .{ .kind = .IdResult, .quantifier = .required },
6515 .{ .kind = .IdRef, .quantifier = .required },
6516 .{ .kind = .IdRef, .quantifier = .required },
7035 .operands = &.{
7036 .{ .kind = .id_result_type, .quantifier = .required },
7037 .{ .kind = .id_result, .quantifier = .required },
7038 .{ .kind = .id_ref, .quantifier = .required },
7039 .{ .kind = .id_ref, .quantifier = .required },
65177040 },
65187041 },
65197042 .{
65207043 .name = "OpMatrixTimesScalar",
65217044 .opcode = 143,
6522 .operands = &[_]Operand{
6523 .{ .kind = .IdResultType, .quantifier = .required },
6524 .{ .kind = .IdResult, .quantifier = .required },
6525 .{ .kind = .IdRef, .quantifier = .required },
6526 .{ .kind = .IdRef, .quantifier = .required },
7045 .operands = &.{
7046 .{ .kind = .id_result_type, .quantifier = .required },
7047 .{ .kind = .id_result, .quantifier = .required },
7048 .{ .kind = .id_ref, .quantifier = .required },
7049 .{ .kind = .id_ref, .quantifier = .required },
65277050 },
65287051 },
65297052 .{
65307053 .name = "OpVectorTimesMatrix",
65317054 .opcode = 144,
6532 .operands = &[_]Operand{
6533 .{ .kind = .IdResultType, .quantifier = .required },
6534 .{ .kind = .IdResult, .quantifier = .required },
6535 .{ .kind = .IdRef, .quantifier = .required },
6536 .{ .kind = .IdRef, .quantifier = .required },
7055 .operands = &.{
7056 .{ .kind = .id_result_type, .quantifier = .required },
7057 .{ .kind = .id_result, .quantifier = .required },
7058 .{ .kind = .id_ref, .quantifier = .required },
7059 .{ .kind = .id_ref, .quantifier = .required },
65377060 },
65387061 },
65397062 .{
65407063 .name = "OpMatrixTimesVector",
65417064 .opcode = 145,
6542 .operands = &[_]Operand{
6543 .{ .kind = .IdResultType, .quantifier = .required },
6544 .{ .kind = .IdResult, .quantifier = .required },
6545 .{ .kind = .IdRef, .quantifier = .required },
6546 .{ .kind = .IdRef, .quantifier = .required },
7065 .operands = &.{
7066 .{ .kind = .id_result_type, .quantifier = .required },
7067 .{ .kind = .id_result, .quantifier = .required },
7068 .{ .kind = .id_ref, .quantifier = .required },
7069 .{ .kind = .id_ref, .quantifier = .required },
65477070 },
65487071 },
65497072 .{
65507073 .name = "OpMatrixTimesMatrix",
65517074 .opcode = 146,
6552 .operands = &[_]Operand{
6553 .{ .kind = .IdResultType, .quantifier = .required },
6554 .{ .kind = .IdResult, .quantifier = .required },
6555 .{ .kind = .IdRef, .quantifier = .required },
6556 .{ .kind = .IdRef, .quantifier = .required },
7075 .operands = &.{
7076 .{ .kind = .id_result_type, .quantifier = .required },
7077 .{ .kind = .id_result, .quantifier = .required },
7078 .{ .kind = .id_ref, .quantifier = .required },
7079 .{ .kind = .id_ref, .quantifier = .required },
65577080 },
65587081 },
65597082 .{
65607083 .name = "OpOuterProduct",
65617084 .opcode = 147,
6562 .operands = &[_]Operand{
6563 .{ .kind = .IdResultType, .quantifier = .required },
6564 .{ .kind = .IdResult, .quantifier = .required },
6565 .{ .kind = .IdRef, .quantifier = .required },
6566 .{ .kind = .IdRef, .quantifier = .required },
7085 .operands = &.{
7086 .{ .kind = .id_result_type, .quantifier = .required },
7087 .{ .kind = .id_result, .quantifier = .required },
7088 .{ .kind = .id_ref, .quantifier = .required },
7089 .{ .kind = .id_ref, .quantifier = .required },
65677090 },
65687091 },
65697092 .{
65707093 .name = "OpDot",
65717094 .opcode = 148,
6572 .operands = &[_]Operand{
6573 .{ .kind = .IdResultType, .quantifier = .required },
6574 .{ .kind = .IdResult, .quantifier = .required },
6575 .{ .kind = .IdRef, .quantifier = .required },
6576 .{ .kind = .IdRef, .quantifier = .required },
7095 .operands = &.{
7096 .{ .kind = .id_result_type, .quantifier = .required },
7097 .{ .kind = .id_result, .quantifier = .required },
7098 .{ .kind = .id_ref, .quantifier = .required },
7099 .{ .kind = .id_ref, .quantifier = .required },
65777100 },
65787101 },
65797102 .{
65807103 .name = "OpIAddCarry",
65817104 .opcode = 149,
6582 .operands = &[_]Operand{
6583 .{ .kind = .IdResultType, .quantifier = .required },
6584 .{ .kind = .IdResult, .quantifier = .required },
6585 .{ .kind = .IdRef, .quantifier = .required },
6586 .{ .kind = .IdRef, .quantifier = .required },
7105 .operands = &.{
7106 .{ .kind = .id_result_type, .quantifier = .required },
7107 .{ .kind = .id_result, .quantifier = .required },
7108 .{ .kind = .id_ref, .quantifier = .required },
7109 .{ .kind = .id_ref, .quantifier = .required },
65877110 },
65887111 },
65897112 .{
65907113 .name = "OpISubBorrow",
65917114 .opcode = 150,
6592 .operands = &[_]Operand{
6593 .{ .kind = .IdResultType, .quantifier = .required },
6594 .{ .kind = .IdResult, .quantifier = .required },
6595 .{ .kind = .IdRef, .quantifier = .required },
6596 .{ .kind = .IdRef, .quantifier = .required },
7115 .operands = &.{
7116 .{ .kind = .id_result_type, .quantifier = .required },
7117 .{ .kind = .id_result, .quantifier = .required },
7118 .{ .kind = .id_ref, .quantifier = .required },
7119 .{ .kind = .id_ref, .quantifier = .required },
65977120 },
65987121 },
65997122 .{
66007123 .name = "OpUMulExtended",
66017124 .opcode = 151,
6602 .operands = &[_]Operand{
6603 .{ .kind = .IdResultType, .quantifier = .required },
6604 .{ .kind = .IdResult, .quantifier = .required },
6605 .{ .kind = .IdRef, .quantifier = .required },
6606 .{ .kind = .IdRef, .quantifier = .required },
7125 .operands = &.{
7126 .{ .kind = .id_result_type, .quantifier = .required },
7127 .{ .kind = .id_result, .quantifier = .required },
7128 .{ .kind = .id_ref, .quantifier = .required },
7129 .{ .kind = .id_ref, .quantifier = .required },
66077130 },
66087131 },
66097132 .{
66107133 .name = "OpSMulExtended",
66117134 .opcode = 152,
6612 .operands = &[_]Operand{
6613 .{ .kind = .IdResultType, .quantifier = .required },
6614 .{ .kind = .IdResult, .quantifier = .required },
6615 .{ .kind = .IdRef, .quantifier = .required },
6616 .{ .kind = .IdRef, .quantifier = .required },
7135 .operands = &.{
7136 .{ .kind = .id_result_type, .quantifier = .required },
7137 .{ .kind = .id_result, .quantifier = .required },
7138 .{ .kind = .id_ref, .quantifier = .required },
7139 .{ .kind = .id_ref, .quantifier = .required },
66177140 },
66187141 },
66197142 .{
66207143 .name = "OpAny",
66217144 .opcode = 154,
6622 .operands = &[_]Operand{
6623 .{ .kind = .IdResultType, .quantifier = .required },
6624 .{ .kind = .IdResult, .quantifier = .required },
6625 .{ .kind = .IdRef, .quantifier = .required },
7145 .operands = &.{
7146 .{ .kind = .id_result_type, .quantifier = .required },
7147 .{ .kind = .id_result, .quantifier = .required },
7148 .{ .kind = .id_ref, .quantifier = .required },
66267149 },
66277150 },
66287151 .{
66297152 .name = "OpAll",
66307153 .opcode = 155,
6631 .operands = &[_]Operand{
6632 .{ .kind = .IdResultType, .quantifier = .required },
6633 .{ .kind = .IdResult, .quantifier = .required },
6634 .{ .kind = .IdRef, .quantifier = .required },
7154 .operands = &.{
7155 .{ .kind = .id_result_type, .quantifier = .required },
7156 .{ .kind = .id_result, .quantifier = .required },
7157 .{ .kind = .id_ref, .quantifier = .required },
66357158 },
66367159 },
66377160 .{
66387161 .name = "OpIsNan",
66397162 .opcode = 156,
6640 .operands = &[_]Operand{
6641 .{ .kind = .IdResultType, .quantifier = .required },
6642 .{ .kind = .IdResult, .quantifier = .required },
6643 .{ .kind = .IdRef, .quantifier = .required },
7163 .operands = &.{
7164 .{ .kind = .id_result_type, .quantifier = .required },
7165 .{ .kind = .id_result, .quantifier = .required },
7166 .{ .kind = .id_ref, .quantifier = .required },
66447167 },
66457168 },
66467169 .{
66477170 .name = "OpIsInf",
66487171 .opcode = 157,
6649 .operands = &[_]Operand{
6650 .{ .kind = .IdResultType, .quantifier = .required },
6651 .{ .kind = .IdResult, .quantifier = .required },
6652 .{ .kind = .IdRef, .quantifier = .required },
7172 .operands = &.{
7173 .{ .kind = .id_result_type, .quantifier = .required },
7174 .{ .kind = .id_result, .quantifier = .required },
7175 .{ .kind = .id_ref, .quantifier = .required },
66537176 },
66547177 },
66557178 .{
66567179 .name = "OpIsFinite",
66577180 .opcode = 158,
6658 .operands = &[_]Operand{
6659 .{ .kind = .IdResultType, .quantifier = .required },
6660 .{ .kind = .IdResult, .quantifier = .required },
6661 .{ .kind = .IdRef, .quantifier = .required },
7181 .operands = &.{
7182 .{ .kind = .id_result_type, .quantifier = .required },
7183 .{ .kind = .id_result, .quantifier = .required },
7184 .{ .kind = .id_ref, .quantifier = .required },
66627185 },
66637186 },
66647187 .{
66657188 .name = "OpIsNormal",
66667189 .opcode = 159,
6667 .operands = &[_]Operand{
6668 .{ .kind = .IdResultType, .quantifier = .required },
6669 .{ .kind = .IdResult, .quantifier = .required },
6670 .{ .kind = .IdRef, .quantifier = .required },
7190 .operands = &.{
7191 .{ .kind = .id_result_type, .quantifier = .required },
7192 .{ .kind = .id_result, .quantifier = .required },
7193 .{ .kind = .id_ref, .quantifier = .required },
66717194 },
66727195 },
66737196 .{
66747197 .name = "OpSignBitSet",
66757198 .opcode = 160,
6676 .operands = &[_]Operand{
6677 .{ .kind = .IdResultType, .quantifier = .required },
6678 .{ .kind = .IdResult, .quantifier = .required },
6679 .{ .kind = .IdRef, .quantifier = .required },
7199 .operands = &.{
7200 .{ .kind = .id_result_type, .quantifier = .required },
7201 .{ .kind = .id_result, .quantifier = .required },
7202 .{ .kind = .id_ref, .quantifier = .required },
66807203 },
66817204 },
66827205 .{
66837206 .name = "OpLessOrGreater",
66847207 .opcode = 161,
6685 .operands = &[_]Operand{
6686 .{ .kind = .IdResultType, .quantifier = .required },
6687 .{ .kind = .IdResult, .quantifier = .required },
6688 .{ .kind = .IdRef, .quantifier = .required },
6689 .{ .kind = .IdRef, .quantifier = .required },
7208 .operands = &.{
7209 .{ .kind = .id_result_type, .quantifier = .required },
7210 .{ .kind = .id_result, .quantifier = .required },
7211 .{ .kind = .id_ref, .quantifier = .required },
7212 .{ .kind = .id_ref, .quantifier = .required },
66907213 },
66917214 },
66927215 .{
66937216 .name = "OpOrdered",
66947217 .opcode = 162,
6695 .operands = &[_]Operand{
6696 .{ .kind = .IdResultType, .quantifier = .required },
6697 .{ .kind = .IdResult, .quantifier = .required },
6698 .{ .kind = .IdRef, .quantifier = .required },
6699 .{ .kind = .IdRef, .quantifier = .required },
7218 .operands = &.{
7219 .{ .kind = .id_result_type, .quantifier = .required },
7220 .{ .kind = .id_result, .quantifier = .required },
7221 .{ .kind = .id_ref, .quantifier = .required },
7222 .{ .kind = .id_ref, .quantifier = .required },
67007223 },
67017224 },
67027225 .{
67037226 .name = "OpUnordered",
67047227 .opcode = 163,
6705 .operands = &[_]Operand{
6706 .{ .kind = .IdResultType, .quantifier = .required },
6707 .{ .kind = .IdResult, .quantifier = .required },
6708 .{ .kind = .IdRef, .quantifier = .required },
6709 .{ .kind = .IdRef, .quantifier = .required },
7228 .operands = &.{
7229 .{ .kind = .id_result_type, .quantifier = .required },
7230 .{ .kind = .id_result, .quantifier = .required },
7231 .{ .kind = .id_ref, .quantifier = .required },
7232 .{ .kind = .id_ref, .quantifier = .required },
67107233 },
67117234 },
67127235 .{
67137236 .name = "OpLogicalEqual",
67147237 .opcode = 164,
6715 .operands = &[_]Operand{
6716 .{ .kind = .IdResultType, .quantifier = .required },
6717 .{ .kind = .IdResult, .quantifier = .required },
6718 .{ .kind = .IdRef, .quantifier = .required },
6719 .{ .kind = .IdRef, .quantifier = .required },
7238 .operands = &.{
7239 .{ .kind = .id_result_type, .quantifier = .required },
7240 .{ .kind = .id_result, .quantifier = .required },
7241 .{ .kind = .id_ref, .quantifier = .required },
7242 .{ .kind = .id_ref, .quantifier = .required },
67207243 },
67217244 },
67227245 .{
67237246 .name = "OpLogicalNotEqual",
67247247 .opcode = 165,
6725 .operands = &[_]Operand{
6726 .{ .kind = .IdResultType, .quantifier = .required },
6727 .{ .kind = .IdResult, .quantifier = .required },
6728 .{ .kind = .IdRef, .quantifier = .required },
6729 .{ .kind = .IdRef, .quantifier = .required },
7248 .operands = &.{
7249 .{ .kind = .id_result_type, .quantifier = .required },
7250 .{ .kind = .id_result, .quantifier = .required },
7251 .{ .kind = .id_ref, .quantifier = .required },
7252 .{ .kind = .id_ref, .quantifier = .required },
67307253 },
67317254 },
67327255 .{
67337256 .name = "OpLogicalOr",
67347257 .opcode = 166,
6735 .operands = &[_]Operand{
6736 .{ .kind = .IdResultType, .quantifier = .required },
6737 .{ .kind = .IdResult, .quantifier = .required },
6738 .{ .kind = .IdRef, .quantifier = .required },
6739 .{ .kind = .IdRef, .quantifier = .required },
7258 .operands = &.{
7259 .{ .kind = .id_result_type, .quantifier = .required },
7260 .{ .kind = .id_result, .quantifier = .required },
7261 .{ .kind = .id_ref, .quantifier = .required },
7262 .{ .kind = .id_ref, .quantifier = .required },
67407263 },
67417264 },
67427265 .{
67437266 .name = "OpLogicalAnd",
67447267 .opcode = 167,
6745 .operands = &[_]Operand{
6746 .{ .kind = .IdResultType, .quantifier = .required },
6747 .{ .kind = .IdResult, .quantifier = .required },
6748 .{ .kind = .IdRef, .quantifier = .required },
6749 .{ .kind = .IdRef, .quantifier = .required },
7268 .operands = &.{
7269 .{ .kind = .id_result_type, .quantifier = .required },
7270 .{ .kind = .id_result, .quantifier = .required },
7271 .{ .kind = .id_ref, .quantifier = .required },
7272 .{ .kind = .id_ref, .quantifier = .required },
67507273 },
67517274 },
67527275 .{
67537276 .name = "OpLogicalNot",
67547277 .opcode = 168,
6755 .operands = &[_]Operand{
6756 .{ .kind = .IdResultType, .quantifier = .required },
6757 .{ .kind = .IdResult, .quantifier = .required },
6758 .{ .kind = .IdRef, .quantifier = .required },
7278 .operands = &.{
7279 .{ .kind = .id_result_type, .quantifier = .required },
7280 .{ .kind = .id_result, .quantifier = .required },
7281 .{ .kind = .id_ref, .quantifier = .required },
67597282 },
67607283 },
67617284 .{
67627285 .name = "OpSelect",
67637286 .opcode = 169,
6764 .operands = &[_]Operand{
6765 .{ .kind = .IdResultType, .quantifier = .required },
6766 .{ .kind = .IdResult, .quantifier = .required },
6767 .{ .kind = .IdRef, .quantifier = .required },
6768 .{ .kind = .IdRef, .quantifier = .required },
6769 .{ .kind = .IdRef, .quantifier = .required },
7287 .operands = &.{
7288 .{ .kind = .id_result_type, .quantifier = .required },
7289 .{ .kind = .id_result, .quantifier = .required },
7290 .{ .kind = .id_ref, .quantifier = .required },
7291 .{ .kind = .id_ref, .quantifier = .required },
7292 .{ .kind = .id_ref, .quantifier = .required },
67707293 },
67717294 },
67727295 .{
67737296 .name = "OpIEqual",
67747297 .opcode = 170,
6775 .operands = &[_]Operand{
6776 .{ .kind = .IdResultType, .quantifier = .required },
6777 .{ .kind = .IdResult, .quantifier = .required },
6778 .{ .kind = .IdRef, .quantifier = .required },
6779 .{ .kind = .IdRef, .quantifier = .required },
7298 .operands = &.{
7299 .{ .kind = .id_result_type, .quantifier = .required },
7300 .{ .kind = .id_result, .quantifier = .required },
7301 .{ .kind = .id_ref, .quantifier = .required },
7302 .{ .kind = .id_ref, .quantifier = .required },
67807303 },
67817304 },
67827305 .{
67837306 .name = "OpINotEqual",
67847307 .opcode = 171,
6785 .operands = &[_]Operand{
6786 .{ .kind = .IdResultType, .quantifier = .required },
6787 .{ .kind = .IdResult, .quantifier = .required },
6788 .{ .kind = .IdRef, .quantifier = .required },
6789 .{ .kind = .IdRef, .quantifier = .required },
7308 .operands = &.{
7309 .{ .kind = .id_result_type, .quantifier = .required },
7310 .{ .kind = .id_result, .quantifier = .required },
7311 .{ .kind = .id_ref, .quantifier = .required },
7312 .{ .kind = .id_ref, .quantifier = .required },
67907313 },
67917314 },
67927315 .{
67937316 .name = "OpUGreaterThan",
67947317 .opcode = 172,
6795 .operands = &[_]Operand{
6796 .{ .kind = .IdResultType, .quantifier = .required },
6797 .{ .kind = .IdResult, .quantifier = .required },
6798 .{ .kind = .IdRef, .quantifier = .required },
6799 .{ .kind = .IdRef, .quantifier = .required },
7318 .operands = &.{
7319 .{ .kind = .id_result_type, .quantifier = .required },
7320 .{ .kind = .id_result, .quantifier = .required },
7321 .{ .kind = .id_ref, .quantifier = .required },
7322 .{ .kind = .id_ref, .quantifier = .required },
68007323 },
68017324 },
68027325 .{
68037326 .name = "OpSGreaterThan",
68047327 .opcode = 173,
6805 .operands = &[_]Operand{
6806 .{ .kind = .IdResultType, .quantifier = .required },
6807 .{ .kind = .IdResult, .quantifier = .required },
6808 .{ .kind = .IdRef, .quantifier = .required },
6809 .{ .kind = .IdRef, .quantifier = .required },
7328 .operands = &.{
7329 .{ .kind = .id_result_type, .quantifier = .required },
7330 .{ .kind = .id_result, .quantifier = .required },
7331 .{ .kind = .id_ref, .quantifier = .required },
7332 .{ .kind = .id_ref, .quantifier = .required },
68107333 },
68117334 },
68127335 .{
68137336 .name = "OpUGreaterThanEqual",
68147337 .opcode = 174,
6815 .operands = &[_]Operand{
6816 .{ .kind = .IdResultType, .quantifier = .required },
6817 .{ .kind = .IdResult, .quantifier = .required },
6818 .{ .kind = .IdRef, .quantifier = .required },
6819 .{ .kind = .IdRef, .quantifier = .required },
7338 .operands = &.{
7339 .{ .kind = .id_result_type, .quantifier = .required },
7340 .{ .kind = .id_result, .quantifier = .required },
7341 .{ .kind = .id_ref, .quantifier = .required },
7342 .{ .kind = .id_ref, .quantifier = .required },
68207343 },
68217344 },
68227345 .{
68237346 .name = "OpSGreaterThanEqual",
68247347 .opcode = 175,
6825 .operands = &[_]Operand{
6826 .{ .kind = .IdResultType, .quantifier = .required },
6827 .{ .kind = .IdResult, .quantifier = .required },
6828 .{ .kind = .IdRef, .quantifier = .required },
6829 .{ .kind = .IdRef, .quantifier = .required },
7348 .operands = &.{
7349 .{ .kind = .id_result_type, .quantifier = .required },
7350 .{ .kind = .id_result, .quantifier = .required },
7351 .{ .kind = .id_ref, .quantifier = .required },
7352 .{ .kind = .id_ref, .quantifier = .required },
68307353 },
68317354 },
68327355 .{
68337356 .name = "OpULessThan",
68347357 .opcode = 176,
6835 .operands = &[_]Operand{
6836 .{ .kind = .IdResultType, .quantifier = .required },
6837 .{ .kind = .IdResult, .quantifier = .required },
6838 .{ .kind = .IdRef, .quantifier = .required },
6839 .{ .kind = .IdRef, .quantifier = .required },
7358 .operands = &.{
7359 .{ .kind = .id_result_type, .quantifier = .required },
7360 .{ .kind = .id_result, .quantifier = .required },
7361 .{ .kind = .id_ref, .quantifier = .required },
7362 .{ .kind = .id_ref, .quantifier = .required },
68407363 },
68417364 },
68427365 .{
68437366 .name = "OpSLessThan",
68447367 .opcode = 177,
6845 .operands = &[_]Operand{
6846 .{ .kind = .IdResultType, .quantifier = .required },
6847 .{ .kind = .IdResult, .quantifier = .required },
6848 .{ .kind = .IdRef, .quantifier = .required },
6849 .{ .kind = .IdRef, .quantifier = .required },
7368 .operands = &.{
7369 .{ .kind = .id_result_type, .quantifier = .required },
7370 .{ .kind = .id_result, .quantifier = .required },
7371 .{ .kind = .id_ref, .quantifier = .required },
7372 .{ .kind = .id_ref, .quantifier = .required },
68507373 },
68517374 },
68527375 .{
68537376 .name = "OpULessThanEqual",
68547377 .opcode = 178,
6855 .operands = &[_]Operand{
6856 .{ .kind = .IdResultType, .quantifier = .required },
6857 .{ .kind = .IdResult, .quantifier = .required },
6858 .{ .kind = .IdRef, .quantifier = .required },
6859 .{ .kind = .IdRef, .quantifier = .required },
7378 .operands = &.{
7379 .{ .kind = .id_result_type, .quantifier = .required },
7380 .{ .kind = .id_result, .quantifier = .required },
7381 .{ .kind = .id_ref, .quantifier = .required },
7382 .{ .kind = .id_ref, .quantifier = .required },
68607383 },
68617384 },
68627385 .{
68637386 .name = "OpSLessThanEqual",
68647387 .opcode = 179,
6865 .operands = &[_]Operand{
6866 .{ .kind = .IdResultType, .quantifier = .required },
6867 .{ .kind = .IdResult, .quantifier = .required },
6868 .{ .kind = .IdRef, .quantifier = .required },
6869 .{ .kind = .IdRef, .quantifier = .required },
7388 .operands = &.{
7389 .{ .kind = .id_result_type, .quantifier = .required },
7390 .{ .kind = .id_result, .quantifier = .required },
7391 .{ .kind = .id_ref, .quantifier = .required },
7392 .{ .kind = .id_ref, .quantifier = .required },
68707393 },
68717394 },
68727395 .{
68737396 .name = "OpFOrdEqual",
68747397 .opcode = 180,
6875 .operands = &[_]Operand{
6876 .{ .kind = .IdResultType, .quantifier = .required },
6877 .{ .kind = .IdResult, .quantifier = .required },
6878 .{ .kind = .IdRef, .quantifier = .required },
6879 .{ .kind = .IdRef, .quantifier = .required },
7398 .operands = &.{
7399 .{ .kind = .id_result_type, .quantifier = .required },
7400 .{ .kind = .id_result, .quantifier = .required },
7401 .{ .kind = .id_ref, .quantifier = .required },
7402 .{ .kind = .id_ref, .quantifier = .required },
68807403 },
68817404 },
68827405 .{
68837406 .name = "OpFUnordEqual",
68847407 .opcode = 181,
6885 .operands = &[_]Operand{
6886 .{ .kind = .IdResultType, .quantifier = .required },
6887 .{ .kind = .IdResult, .quantifier = .required },
6888 .{ .kind = .IdRef, .quantifier = .required },
6889 .{ .kind = .IdRef, .quantifier = .required },
7408 .operands = &.{
7409 .{ .kind = .id_result_type, .quantifier = .required },
7410 .{ .kind = .id_result, .quantifier = .required },
7411 .{ .kind = .id_ref, .quantifier = .required },
7412 .{ .kind = .id_ref, .quantifier = .required },
68907413 },
68917414 },
68927415 .{
68937416 .name = "OpFOrdNotEqual",
68947417 .opcode = 182,
6895 .operands = &[_]Operand{
6896 .{ .kind = .IdResultType, .quantifier = .required },
6897 .{ .kind = .IdResult, .quantifier = .required },
6898 .{ .kind = .IdRef, .quantifier = .required },
6899 .{ .kind = .IdRef, .quantifier = .required },
7418 .operands = &.{
7419 .{ .kind = .id_result_type, .quantifier = .required },
7420 .{ .kind = .id_result, .quantifier = .required },
7421 .{ .kind = .id_ref, .quantifier = .required },
7422 .{ .kind = .id_ref, .quantifier = .required },
69007423 },
69017424 },
69027425 .{
69037426 .name = "OpFUnordNotEqual",
69047427 .opcode = 183,
6905 .operands = &[_]Operand{
6906 .{ .kind = .IdResultType, .quantifier = .required },
6907 .{ .kind = .IdResult, .quantifier = .required },
6908 .{ .kind = .IdRef, .quantifier = .required },
6909 .{ .kind = .IdRef, .quantifier = .required },
7428 .operands = &.{
7429 .{ .kind = .id_result_type, .quantifier = .required },
7430 .{ .kind = .id_result, .quantifier = .required },
7431 .{ .kind = .id_ref, .quantifier = .required },
7432 .{ .kind = .id_ref, .quantifier = .required },
69107433 },
69117434 },
69127435 .{
69137436 .name = "OpFOrdLessThan",
69147437 .opcode = 184,
6915 .operands = &[_]Operand{
6916 .{ .kind = .IdResultType, .quantifier = .required },
6917 .{ .kind = .IdResult, .quantifier = .required },
6918 .{ .kind = .IdRef, .quantifier = .required },
6919 .{ .kind = .IdRef, .quantifier = .required },
7438 .operands = &.{
7439 .{ .kind = .id_result_type, .quantifier = .required },
7440 .{ .kind = .id_result, .quantifier = .required },
7441 .{ .kind = .id_ref, .quantifier = .required },
7442 .{ .kind = .id_ref, .quantifier = .required },
69207443 },
69217444 },
69227445 .{
69237446 .name = "OpFUnordLessThan",
69247447 .opcode = 185,
6925 .operands = &[_]Operand{
6926 .{ .kind = .IdResultType, .quantifier = .required },
6927 .{ .kind = .IdResult, .quantifier = .required },
6928 .{ .kind = .IdRef, .quantifier = .required },
6929 .{ .kind = .IdRef, .quantifier = .required },
7448 .operands = &.{
7449 .{ .kind = .id_result_type, .quantifier = .required },
7450 .{ .kind = .id_result, .quantifier = .required },
7451 .{ .kind = .id_ref, .quantifier = .required },
7452 .{ .kind = .id_ref, .quantifier = .required },
69307453 },
69317454 },
69327455 .{
69337456 .name = "OpFOrdGreaterThan",
69347457 .opcode = 186,
6935 .operands = &[_]Operand{
6936 .{ .kind = .IdResultType, .quantifier = .required },
6937 .{ .kind = .IdResult, .quantifier = .required },
6938 .{ .kind = .IdRef, .quantifier = .required },
6939 .{ .kind = .IdRef, .quantifier = .required },
7458 .operands = &.{
7459 .{ .kind = .id_result_type, .quantifier = .required },
7460 .{ .kind = .id_result, .quantifier = .required },
7461 .{ .kind = .id_ref, .quantifier = .required },
7462 .{ .kind = .id_ref, .quantifier = .required },
69407463 },
69417464 },
69427465 .{
69437466 .name = "OpFUnordGreaterThan",
69447467 .opcode = 187,
6945 .operands = &[_]Operand{
6946 .{ .kind = .IdResultType, .quantifier = .required },
6947 .{ .kind = .IdResult, .quantifier = .required },
6948 .{ .kind = .IdRef, .quantifier = .required },
6949 .{ .kind = .IdRef, .quantifier = .required },
7468 .operands = &.{
7469 .{ .kind = .id_result_type, .quantifier = .required },
7470 .{ .kind = .id_result, .quantifier = .required },
7471 .{ .kind = .id_ref, .quantifier = .required },
7472 .{ .kind = .id_ref, .quantifier = .required },
69507473 },
69517474 },
69527475 .{
69537476 .name = "OpFOrdLessThanEqual",
69547477 .opcode = 188,
6955 .operands = &[_]Operand{
6956 .{ .kind = .IdResultType, .quantifier = .required },
6957 .{ .kind = .IdResult, .quantifier = .required },
6958 .{ .kind = .IdRef, .quantifier = .required },
6959 .{ .kind = .IdRef, .quantifier = .required },
7478 .operands = &.{
7479 .{ .kind = .id_result_type, .quantifier = .required },
7480 .{ .kind = .id_result, .quantifier = .required },
7481 .{ .kind = .id_ref, .quantifier = .required },
7482 .{ .kind = .id_ref, .quantifier = .required },
69607483 },
69617484 },
69627485 .{
69637486 .name = "OpFUnordLessThanEqual",
69647487 .opcode = 189,
6965 .operands = &[_]Operand{
6966 .{ .kind = .IdResultType, .quantifier = .required },
6967 .{ .kind = .IdResult, .quantifier = .required },
6968 .{ .kind = .IdRef, .quantifier = .required },
6969 .{ .kind = .IdRef, .quantifier = .required },
7488 .operands = &.{
7489 .{ .kind = .id_result_type, .quantifier = .required },
7490 .{ .kind = .id_result, .quantifier = .required },
7491 .{ .kind = .id_ref, .quantifier = .required },
7492 .{ .kind = .id_ref, .quantifier = .required },
69707493 },
69717494 },
69727495 .{
69737496 .name = "OpFOrdGreaterThanEqual",
69747497 .opcode = 190,
6975 .operands = &[_]Operand{
6976 .{ .kind = .IdResultType, .quantifier = .required },
6977 .{ .kind = .IdResult, .quantifier = .required },
6978 .{ .kind = .IdRef, .quantifier = .required },
6979 .{ .kind = .IdRef, .quantifier = .required },
7498 .operands = &.{
7499 .{ .kind = .id_result_type, .quantifier = .required },
7500 .{ .kind = .id_result, .quantifier = .required },
7501 .{ .kind = .id_ref, .quantifier = .required },
7502 .{ .kind = .id_ref, .quantifier = .required },
69807503 },
69817504 },
69827505 .{
69837506 .name = "OpFUnordGreaterThanEqual",
69847507 .opcode = 191,
6985 .operands = &[_]Operand{
6986 .{ .kind = .IdResultType, .quantifier = .required },
6987 .{ .kind = .IdResult, .quantifier = .required },
6988 .{ .kind = .IdRef, .quantifier = .required },
6989 .{ .kind = .IdRef, .quantifier = .required },
7508 .operands = &.{
7509 .{ .kind = .id_result_type, .quantifier = .required },
7510 .{ .kind = .id_result, .quantifier = .required },
7511 .{ .kind = .id_ref, .quantifier = .required },
7512 .{ .kind = .id_ref, .quantifier = .required },
69907513 },
69917514 },
69927515 .{
69937516 .name = "OpShiftRightLogical",
69947517 .opcode = 194,
6995 .operands = &[_]Operand{
6996 .{ .kind = .IdResultType, .quantifier = .required },
6997 .{ .kind = .IdResult, .quantifier = .required },
6998 .{ .kind = .IdRef, .quantifier = .required },
6999 .{ .kind = .IdRef, .quantifier = .required },
7518 .operands = &.{
7519 .{ .kind = .id_result_type, .quantifier = .required },
7520 .{ .kind = .id_result, .quantifier = .required },
7521 .{ .kind = .id_ref, .quantifier = .required },
7522 .{ .kind = .id_ref, .quantifier = .required },
70007523 },
70017524 },
70027525 .{
70037526 .name = "OpShiftRightArithmetic",
70047527 .opcode = 195,
7005 .operands = &[_]Operand{
7006 .{ .kind = .IdResultType, .quantifier = .required },
7007 .{ .kind = .IdResult, .quantifier = .required },
7008 .{ .kind = .IdRef, .quantifier = .required },
7009 .{ .kind = .IdRef, .quantifier = .required },
7528 .operands = &.{
7529 .{ .kind = .id_result_type, .quantifier = .required },
7530 .{ .kind = .id_result, .quantifier = .required },
7531 .{ .kind = .id_ref, .quantifier = .required },
7532 .{ .kind = .id_ref, .quantifier = .required },
70107533 },
70117534 },
70127535 .{
70137536 .name = "OpShiftLeftLogical",
70147537 .opcode = 196,
7015 .operands = &[_]Operand{
7016 .{ .kind = .IdResultType, .quantifier = .required },
7017 .{ .kind = .IdResult, .quantifier = .required },
7018 .{ .kind = .IdRef, .quantifier = .required },
7019 .{ .kind = .IdRef, .quantifier = .required },
7538 .operands = &.{
7539 .{ .kind = .id_result_type, .quantifier = .required },
7540 .{ .kind = .id_result, .quantifier = .required },
7541 .{ .kind = .id_ref, .quantifier = .required },
7542 .{ .kind = .id_ref, .quantifier = .required },
70207543 },
70217544 },
70227545 .{
70237546 .name = "OpBitwiseOr",
70247547 .opcode = 197,
7025 .operands = &[_]Operand{
7026 .{ .kind = .IdResultType, .quantifier = .required },
7027 .{ .kind = .IdResult, .quantifier = .required },
7028 .{ .kind = .IdRef, .quantifier = .required },
7029 .{ .kind = .IdRef, .quantifier = .required },
7548 .operands = &.{
7549 .{ .kind = .id_result_type, .quantifier = .required },
7550 .{ .kind = .id_result, .quantifier = .required },
7551 .{ .kind = .id_ref, .quantifier = .required },
7552 .{ .kind = .id_ref, .quantifier = .required },
70307553 },
70317554 },
70327555 .{
70337556 .name = "OpBitwiseXor",
70347557 .opcode = 198,
7035 .operands = &[_]Operand{
7036 .{ .kind = .IdResultType, .quantifier = .required },
7037 .{ .kind = .IdResult, .quantifier = .required },
7038 .{ .kind = .IdRef, .quantifier = .required },
7039 .{ .kind = .IdRef, .quantifier = .required },
7558 .operands = &.{
7559 .{ .kind = .id_result_type, .quantifier = .required },
7560 .{ .kind = .id_result, .quantifier = .required },
7561 .{ .kind = .id_ref, .quantifier = .required },
7562 .{ .kind = .id_ref, .quantifier = .required },
70407563 },
70417564 },
70427565 .{
70437566 .name = "OpBitwiseAnd",
70447567 .opcode = 199,
7045 .operands = &[_]Operand{
7046 .{ .kind = .IdResultType, .quantifier = .required },
7047 .{ .kind = .IdResult, .quantifier = .required },
7048 .{ .kind = .IdRef, .quantifier = .required },
7049 .{ .kind = .IdRef, .quantifier = .required },
7568 .operands = &.{
7569 .{ .kind = .id_result_type, .quantifier = .required },
7570 .{ .kind = .id_result, .quantifier = .required },
7571 .{ .kind = .id_ref, .quantifier = .required },
7572 .{ .kind = .id_ref, .quantifier = .required },
70507573 },
70517574 },
70527575 .{
70537576 .name = "OpNot",
70547577 .opcode = 200,
7055 .operands = &[_]Operand{
7056 .{ .kind = .IdResultType, .quantifier = .required },
7057 .{ .kind = .IdResult, .quantifier = .required },
7058 .{ .kind = .IdRef, .quantifier = .required },
7578 .operands = &.{
7579 .{ .kind = .id_result_type, .quantifier = .required },
7580 .{ .kind = .id_result, .quantifier = .required },
7581 .{ .kind = .id_ref, .quantifier = .required },
70597582 },
70607583 },
70617584 .{
70627585 .name = "OpBitFieldInsert",
70637586 .opcode = 201,
7064 .operands = &[_]Operand{
7065 .{ .kind = .IdResultType, .quantifier = .required },
7066 .{ .kind = .IdResult, .quantifier = .required },
7067 .{ .kind = .IdRef, .quantifier = .required },
7068 .{ .kind = .IdRef, .quantifier = .required },
7069 .{ .kind = .IdRef, .quantifier = .required },
7070 .{ .kind = .IdRef, .quantifier = .required },
7587 .operands = &.{
7588 .{ .kind = .id_result_type, .quantifier = .required },
7589 .{ .kind = .id_result, .quantifier = .required },
7590 .{ .kind = .id_ref, .quantifier = .required },
7591 .{ .kind = .id_ref, .quantifier = .required },
7592 .{ .kind = .id_ref, .quantifier = .required },
7593 .{ .kind = .id_ref, .quantifier = .required },
70717594 },
70727595 },
70737596 .{
70747597 .name = "OpBitFieldSExtract",
70757598 .opcode = 202,
7076 .operands = &[_]Operand{
7077 .{ .kind = .IdResultType, .quantifier = .required },
7078 .{ .kind = .IdResult, .quantifier = .required },
7079 .{ .kind = .IdRef, .quantifier = .required },
7080 .{ .kind = .IdRef, .quantifier = .required },
7081 .{ .kind = .IdRef, .quantifier = .required },
7599 .operands = &.{
7600 .{ .kind = .id_result_type, .quantifier = .required },
7601 .{ .kind = .id_result, .quantifier = .required },
7602 .{ .kind = .id_ref, .quantifier = .required },
7603 .{ .kind = .id_ref, .quantifier = .required },
7604 .{ .kind = .id_ref, .quantifier = .required },
70827605 },
70837606 },
70847607 .{
70857608 .name = "OpBitFieldUExtract",
70867609 .opcode = 203,
7087 .operands = &[_]Operand{
7088 .{ .kind = .IdResultType, .quantifier = .required },
7089 .{ .kind = .IdResult, .quantifier = .required },
7090 .{ .kind = .IdRef, .quantifier = .required },
7091 .{ .kind = .IdRef, .quantifier = .required },
7092 .{ .kind = .IdRef, .quantifier = .required },
7610 .operands = &.{
7611 .{ .kind = .id_result_type, .quantifier = .required },
7612 .{ .kind = .id_result, .quantifier = .required },
7613 .{ .kind = .id_ref, .quantifier = .required },
7614 .{ .kind = .id_ref, .quantifier = .required },
7615 .{ .kind = .id_ref, .quantifier = .required },
70937616 },
70947617 },
70957618 .{
70967619 .name = "OpBitReverse",
70977620 .opcode = 204,
7098 .operands = &[_]Operand{
7099 .{ .kind = .IdResultType, .quantifier = .required },
7100 .{ .kind = .IdResult, .quantifier = .required },
7101 .{ .kind = .IdRef, .quantifier = .required },
7621 .operands = &.{
7622 .{ .kind = .id_result_type, .quantifier = .required },
7623 .{ .kind = .id_result, .quantifier = .required },
7624 .{ .kind = .id_ref, .quantifier = .required },
71027625 },
71037626 },
71047627 .{
71057628 .name = "OpBitCount",
71067629 .opcode = 205,
7107 .operands = &[_]Operand{
7108 .{ .kind = .IdResultType, .quantifier = .required },
7109 .{ .kind = .IdResult, .quantifier = .required },
7110 .{ .kind = .IdRef, .quantifier = .required },
7630 .operands = &.{
7631 .{ .kind = .id_result_type, .quantifier = .required },
7632 .{ .kind = .id_result, .quantifier = .required },
7633 .{ .kind = .id_ref, .quantifier = .required },
71117634 },
71127635 },
71137636 .{
71147637 .name = "OpDPdx",
71157638 .opcode = 207,
7116 .operands = &[_]Operand{
7117 .{ .kind = .IdResultType, .quantifier = .required },
7118 .{ .kind = .IdResult, .quantifier = .required },
7119 .{ .kind = .IdRef, .quantifier = .required },
7639 .operands = &.{
7640 .{ .kind = .id_result_type, .quantifier = .required },
7641 .{ .kind = .id_result, .quantifier = .required },
7642 .{ .kind = .id_ref, .quantifier = .required },
71207643 },
71217644 },
71227645 .{
71237646 .name = "OpDPdy",
71247647 .opcode = 208,
7125 .operands = &[_]Operand{
7126 .{ .kind = .IdResultType, .quantifier = .required },
7127 .{ .kind = .IdResult, .quantifier = .required },
7128 .{ .kind = .IdRef, .quantifier = .required },
7648 .operands = &.{
7649 .{ .kind = .id_result_type, .quantifier = .required },
7650 .{ .kind = .id_result, .quantifier = .required },
7651 .{ .kind = .id_ref, .quantifier = .required },
71297652 },
71307653 },
71317654 .{
71327655 .name = "OpFwidth",
71337656 .opcode = 209,
7134 .operands = &[_]Operand{
7135 .{ .kind = .IdResultType, .quantifier = .required },
7136 .{ .kind = .IdResult, .quantifier = .required },
7137 .{ .kind = .IdRef, .quantifier = .required },
7657 .operands = &.{
7658 .{ .kind = .id_result_type, .quantifier = .required },
7659 .{ .kind = .id_result, .quantifier = .required },
7660 .{ .kind = .id_ref, .quantifier = .required },
71387661 },
71397662 },
71407663 .{
71417664 .name = "OpDPdxFine",
71427665 .opcode = 210,
7143 .operands = &[_]Operand{
7144 .{ .kind = .IdResultType, .quantifier = .required },
7145 .{ .kind = .IdResult, .quantifier = .required },
7146 .{ .kind = .IdRef, .quantifier = .required },
7666 .operands = &.{
7667 .{ .kind = .id_result_type, .quantifier = .required },
7668 .{ .kind = .id_result, .quantifier = .required },
7669 .{ .kind = .id_ref, .quantifier = .required },
71477670 },
71487671 },
71497672 .{
71507673 .name = "OpDPdyFine",
71517674 .opcode = 211,
7152 .operands = &[_]Operand{
7153 .{ .kind = .IdResultType, .quantifier = .required },
7154 .{ .kind = .IdResult, .quantifier = .required },
7155 .{ .kind = .IdRef, .quantifier = .required },
7675 .operands = &.{
7676 .{ .kind = .id_result_type, .quantifier = .required },
7677 .{ .kind = .id_result, .quantifier = .required },
7678 .{ .kind = .id_ref, .quantifier = .required },
71567679 },
71577680 },
71587681 .{
71597682 .name = "OpFwidthFine",
71607683 .opcode = 212,
7161 .operands = &[_]Operand{
7162 .{ .kind = .IdResultType, .quantifier = .required },
7163 .{ .kind = .IdResult, .quantifier = .required },
7164 .{ .kind = .IdRef, .quantifier = .required },
7684 .operands = &.{
7685 .{ .kind = .id_result_type, .quantifier = .required },
7686 .{ .kind = .id_result, .quantifier = .required },
7687 .{ .kind = .id_ref, .quantifier = .required },
71657688 },
71667689 },
71677690 .{
71687691 .name = "OpDPdxCoarse",
71697692 .opcode = 213,
7170 .operands = &[_]Operand{
7171 .{ .kind = .IdResultType, .quantifier = .required },
7172 .{ .kind = .IdResult, .quantifier = .required },
7173 .{ .kind = .IdRef, .quantifier = .required },
7693 .operands = &.{
7694 .{ .kind = .id_result_type, .quantifier = .required },
7695 .{ .kind = .id_result, .quantifier = .required },
7696 .{ .kind = .id_ref, .quantifier = .required },
71747697 },
71757698 },
71767699 .{
71777700 .name = "OpDPdyCoarse",
71787701 .opcode = 214,
7179 .operands = &[_]Operand{
7180 .{ .kind = .IdResultType, .quantifier = .required },
7181 .{ .kind = .IdResult, .quantifier = .required },
7182 .{ .kind = .IdRef, .quantifier = .required },
7702 .operands = &.{
7703 .{ .kind = .id_result_type, .quantifier = .required },
7704 .{ .kind = .id_result, .quantifier = .required },
7705 .{ .kind = .id_ref, .quantifier = .required },
71837706 },
71847707 },
71857708 .{
71867709 .name = "OpFwidthCoarse",
71877710 .opcode = 215,
7188 .operands = &[_]Operand{
7189 .{ .kind = .IdResultType, .quantifier = .required },
7190 .{ .kind = .IdResult, .quantifier = .required },
7191 .{ .kind = .IdRef, .quantifier = .required },
7711 .operands = &.{
7712 .{ .kind = .id_result_type, .quantifier = .required },
7713 .{ .kind = .id_result, .quantifier = .required },
7714 .{ .kind = .id_ref, .quantifier = .required },
71927715 },
71937716 },
71947717 .{
71957718 .name = "OpEmitVertex",
71967719 .opcode = 218,
7197 .operands = &[_]Operand{},
7720 .operands = &.{},
71987721 },
71997722 .{
72007723 .name = "OpEndPrimitive",
72017724 .opcode = 219,
7202 .operands = &[_]Operand{},
7725 .operands = &.{},
72037726 },
72047727 .{
72057728 .name = "OpEmitStreamVertex",
72067729 .opcode = 220,
7207 .operands = &[_]Operand{
7208 .{ .kind = .IdRef, .quantifier = .required },
7730 .operands = &.{
7731 .{ .kind = .id_ref, .quantifier = .required },
72097732 },
72107733 },
72117734 .{
72127735 .name = "OpEndStreamPrimitive",
72137736 .opcode = 221,
7214 .operands = &[_]Operand{
7215 .{ .kind = .IdRef, .quantifier = .required },
7737 .operands = &.{
7738 .{ .kind = .id_ref, .quantifier = .required },
72167739 },
72177740 },
72187741 .{
72197742 .name = "OpControlBarrier",
72207743 .opcode = 224,
7221 .operands = &[_]Operand{
7222 .{ .kind = .IdScope, .quantifier = .required },
7223 .{ .kind = .IdScope, .quantifier = .required },
7224 .{ .kind = .IdMemorySemantics, .quantifier = .required },
7744 .operands = &.{
7745 .{ .kind = .id_scope, .quantifier = .required },
7746 .{ .kind = .id_scope, .quantifier = .required },
7747 .{ .kind = .id_memory_semantics, .quantifier = .required },
72257748 },
72267749 },
72277750 .{
72287751 .name = "OpMemoryBarrier",
72297752 .opcode = 225,
7230 .operands = &[_]Operand{
7231 .{ .kind = .IdScope, .quantifier = .required },
7232 .{ .kind = .IdMemorySemantics, .quantifier = .required },
7753 .operands = &.{
7754 .{ .kind = .id_scope, .quantifier = .required },
7755 .{ .kind = .id_memory_semantics, .quantifier = .required },
72337756 },
72347757 },
72357758 .{
72367759 .name = "OpAtomicLoad",
72377760 .opcode = 227,
7238 .operands = &[_]Operand{
7239 .{ .kind = .IdResultType, .quantifier = .required },
7240 .{ .kind = .IdResult, .quantifier = .required },
7241 .{ .kind = .IdRef, .quantifier = .required },
7242 .{ .kind = .IdScope, .quantifier = .required },
7243 .{ .kind = .IdMemorySemantics, .quantifier = .required },
7761 .operands = &.{
7762 .{ .kind = .id_result_type, .quantifier = .required },
7763 .{ .kind = .id_result, .quantifier = .required },
7764 .{ .kind = .id_ref, .quantifier = .required },
7765 .{ .kind = .id_scope, .quantifier = .required },
7766 .{ .kind = .id_memory_semantics, .quantifier = .required },
72447767 },
72457768 },
72467769 .{
72477770 .name = "OpAtomicStore",
72487771 .opcode = 228,
7249 .operands = &[_]Operand{
7250 .{ .kind = .IdRef, .quantifier = .required },
7251 .{ .kind = .IdScope, .quantifier = .required },
7252 .{ .kind = .IdMemorySemantics, .quantifier = .required },
7253 .{ .kind = .IdRef, .quantifier = .required },
7772 .operands = &.{
7773 .{ .kind = .id_ref, .quantifier = .required },
7774 .{ .kind = .id_scope, .quantifier = .required },
7775 .{ .kind = .id_memory_semantics, .quantifier = .required },
7776 .{ .kind = .id_ref, .quantifier = .required },
72547777 },
72557778 },
72567779 .{
72577780 .name = "OpAtomicExchange",
72587781 .opcode = 229,
7259 .operands = &[_]Operand{
7260 .{ .kind = .IdResultType, .quantifier = .required },
7261 .{ .kind = .IdResult, .quantifier = .required },
7262 .{ .kind = .IdRef, .quantifier = .required },
7263 .{ .kind = .IdScope, .quantifier = .required },
7264 .{ .kind = .IdMemorySemantics, .quantifier = .required },
7265 .{ .kind = .IdRef, .quantifier = .required },
7782 .operands = &.{
7783 .{ .kind = .id_result_type, .quantifier = .required },
7784 .{ .kind = .id_result, .quantifier = .required },
7785 .{ .kind = .id_ref, .quantifier = .required },
7786 .{ .kind = .id_scope, .quantifier = .required },
7787 .{ .kind = .id_memory_semantics, .quantifier = .required },
7788 .{ .kind = .id_ref, .quantifier = .required },
72667789 },
72677790 },
72687791 .{
72697792 .name = "OpAtomicCompareExchange",
72707793 .opcode = 230,
7271 .operands = &[_]Operand{
7272 .{ .kind = .IdResultType, .quantifier = .required },
7273 .{ .kind = .IdResult, .quantifier = .required },
7274 .{ .kind = .IdRef, .quantifier = .required },
7275 .{ .kind = .IdScope, .quantifier = .required },
7276 .{ .kind = .IdMemorySemantics, .quantifier = .required },
7277 .{ .kind = .IdMemorySemantics, .quantifier = .required },
7278 .{ .kind = .IdRef, .quantifier = .required },
7279 .{ .kind = .IdRef, .quantifier = .required },
7794 .operands = &.{
7795 .{ .kind = .id_result_type, .quantifier = .required },
7796 .{ .kind = .id_result, .quantifier = .required },
7797 .{ .kind = .id_ref, .quantifier = .required },
7798 .{ .kind = .id_scope, .quantifier = .required },
7799 .{ .kind = .id_memory_semantics, .quantifier = .required },
7800 .{ .kind = .id_memory_semantics, .quantifier = .required },
7801 .{ .kind = .id_ref, .quantifier = .required },
7802 .{ .kind = .id_ref, .quantifier = .required },
72807803 },
72817804 },
72827805 .{
72837806 .name = "OpAtomicCompareExchangeWeak",
72847807 .opcode = 231,
7285 .operands = &[_]Operand{
7286 .{ .kind = .IdResultType, .quantifier = .required },
7287 .{ .kind = .IdResult, .quantifier = .required },
7288 .{ .kind = .IdRef, .quantifier = .required },
7289 .{ .kind = .IdScope, .quantifier = .required },
7290 .{ .kind = .IdMemorySemantics, .quantifier = .required },
7291 .{ .kind = .IdMemorySemantics, .quantifier = .required },
7292 .{ .kind = .IdRef, .quantifier = .required },
7293 .{ .kind = .IdRef, .quantifier = .required },
7808 .operands = &.{
7809 .{ .kind = .id_result_type, .quantifier = .required },
7810 .{ .kind = .id_result, .quantifier = .required },
7811 .{ .kind = .id_ref, .quantifier = .required },
7812 .{ .kind = .id_scope, .quantifier = .required },
7813 .{ .kind = .id_memory_semantics, .quantifier = .required },
7814 .{ .kind = .id_memory_semantics, .quantifier = .required },
7815 .{ .kind = .id_ref, .quantifier = .required },
7816 .{ .kind = .id_ref, .quantifier = .required },
72947817 },
72957818 },
72967819 .{
72977820 .name = "OpAtomicIIncrement",
72987821 .opcode = 232,
7299 .operands = &[_]Operand{
7300 .{ .kind = .IdResultType, .quantifier = .required },
7301 .{ .kind = .IdResult, .quantifier = .required },
7302 .{ .kind = .IdRef, .quantifier = .required },
7303 .{ .kind = .IdScope, .quantifier = .required },
7304 .{ .kind = .IdMemorySemantics, .quantifier = .required },
7822 .operands = &.{
7823 .{ .kind = .id_result_type, .quantifier = .required },
7824 .{ .kind = .id_result, .quantifier = .required },
7825 .{ .kind = .id_ref, .quantifier = .required },
7826 .{ .kind = .id_scope, .quantifier = .required },
7827 .{ .kind = .id_memory_semantics, .quantifier = .required },
73057828 },
73067829 },
73077830 .{
73087831 .name = "OpAtomicIDecrement",
73097832 .opcode = 233,
7310 .operands = &[_]Operand{
7311 .{ .kind = .IdResultType, .quantifier = .required },
7312 .{ .kind = .IdResult, .quantifier = .required },
7313 .{ .kind = .IdRef, .quantifier = .required },
7314 .{ .kind = .IdScope, .quantifier = .required },
7315 .{ .kind = .IdMemorySemantics, .quantifier = .required },
7833 .operands = &.{
7834 .{ .kind = .id_result_type, .quantifier = .required },
7835 .{ .kind = .id_result, .quantifier = .required },
7836 .{ .kind = .id_ref, .quantifier = .required },
7837 .{ .kind = .id_scope, .quantifier = .required },
7838 .{ .kind = .id_memory_semantics, .quantifier = .required },
73167839 },
73177840 },
73187841 .{
73197842 .name = "OpAtomicIAdd",
73207843 .opcode = 234,
7321 .operands = &[_]Operand{
7322 .{ .kind = .IdResultType, .quantifier = .required },
7323 .{ .kind = .IdResult, .quantifier = .required },
7324 .{ .kind = .IdRef, .quantifier = .required },
7325 .{ .kind = .IdScope, .quantifier = .required },
7326 .{ .kind = .IdMemorySemantics, .quantifier = .required },
7327 .{ .kind = .IdRef, .quantifier = .required },
7844 .operands = &.{
7845 .{ .kind = .id_result_type, .quantifier = .required },
7846 .{ .kind = .id_result, .quantifier = .required },
7847 .{ .kind = .id_ref, .quantifier = .required },
7848 .{ .kind = .id_scope, .quantifier = .required },
7849 .{ .kind = .id_memory_semantics, .quantifier = .required },
7850 .{ .kind = .id_ref, .quantifier = .required },
73287851 },
73297852 },
73307853 .{
73317854 .name = "OpAtomicISub",
73327855 .opcode = 235,
7333 .operands = &[_]Operand{
7334 .{ .kind = .IdResultType, .quantifier = .required },
7335 .{ .kind = .IdResult, .quantifier = .required },
7336 .{ .kind = .IdRef, .quantifier = .required },
7337 .{ .kind = .IdScope, .quantifier = .required },
7338 .{ .kind = .IdMemorySemantics, .quantifier = .required },
7339 .{ .kind = .IdRef, .quantifier = .required },
7856 .operands = &.{
7857 .{ .kind = .id_result_type, .quantifier = .required },
7858 .{ .kind = .id_result, .quantifier = .required },
7859 .{ .kind = .id_ref, .quantifier = .required },
7860 .{ .kind = .id_scope, .quantifier = .required },
7861 .{ .kind = .id_memory_semantics, .quantifier = .required },
7862 .{ .kind = .id_ref, .quantifier = .required },
73407863 },
73417864 },
73427865 .{
73437866 .name = "OpAtomicSMin",
73447867 .opcode = 236,
7345 .operands = &[_]Operand{
7346 .{ .kind = .IdResultType, .quantifier = .required },
7347 .{ .kind = .IdResult, .quantifier = .required },
7348 .{ .kind = .IdRef, .quantifier = .required },
7349 .{ .kind = .IdScope, .quantifier = .required },
7350 .{ .kind = .IdMemorySemantics, .quantifier = .required },
7351 .{ .kind = .IdRef, .quantifier = .required },
7868 .operands = &.{
7869 .{ .kind = .id_result_type, .quantifier = .required },
7870 .{ .kind = .id_result, .quantifier = .required },
7871 .{ .kind = .id_ref, .quantifier = .required },
7872 .{ .kind = .id_scope, .quantifier = .required },
7873 .{ .kind = .id_memory_semantics, .quantifier = .required },
7874 .{ .kind = .id_ref, .quantifier = .required },
73527875 },
73537876 },
73547877 .{
73557878 .name = "OpAtomicUMin",
73567879 .opcode = 237,
7357 .operands = &[_]Operand{
7358 .{ .kind = .IdResultType, .quantifier = .required },
7359 .{ .kind = .IdResult, .quantifier = .required },
7360 .{ .kind = .IdRef, .quantifier = .required },
7361 .{ .kind = .IdScope, .quantifier = .required },
7362 .{ .kind = .IdMemorySemantics, .quantifier = .required },
7363 .{ .kind = .IdRef, .quantifier = .required },
7880 .operands = &.{
7881 .{ .kind = .id_result_type, .quantifier = .required },
7882 .{ .kind = .id_result, .quantifier = .required },
7883 .{ .kind = .id_ref, .quantifier = .required },
7884 .{ .kind = .id_scope, .quantifier = .required },
7885 .{ .kind = .id_memory_semantics, .quantifier = .required },
7886 .{ .kind = .id_ref, .quantifier = .required },
73647887 },
73657888 },
73667889 .{
73677890 .name = "OpAtomicSMax",
73687891 .opcode = 238,
7369 .operands = &[_]Operand{
7370 .{ .kind = .IdResultType, .quantifier = .required },
7371 .{ .kind = .IdResult, .quantifier = .required },
7372 .{ .kind = .IdRef, .quantifier = .required },
7373 .{ .kind = .IdScope, .quantifier = .required },
7374 .{ .kind = .IdMemorySemantics, .quantifier = .required },
7375 .{ .kind = .IdRef, .quantifier = .required },
7892 .operands = &.{
7893 .{ .kind = .id_result_type, .quantifier = .required },
7894 .{ .kind = .id_result, .quantifier = .required },
7895 .{ .kind = .id_ref, .quantifier = .required },
7896 .{ .kind = .id_scope, .quantifier = .required },
7897 .{ .kind = .id_memory_semantics, .quantifier = .required },
7898 .{ .kind = .id_ref, .quantifier = .required },
73767899 },
73777900 },
73787901 .{
73797902 .name = "OpAtomicUMax",
73807903 .opcode = 239,
7381 .operands = &[_]Operand{
7382 .{ .kind = .IdResultType, .quantifier = .required },
7383 .{ .kind = .IdResult, .quantifier = .required },
7384 .{ .kind = .IdRef, .quantifier = .required },
7385 .{ .kind = .IdScope, .quantifier = .required },
7386 .{ .kind = .IdMemorySemantics, .quantifier = .required },
7387 .{ .kind = .IdRef, .quantifier = .required },
7904 .operands = &.{
7905 .{ .kind = .id_result_type, .quantifier = .required },
7906 .{ .kind = .id_result, .quantifier = .required },
7907 .{ .kind = .id_ref, .quantifier = .required },
7908 .{ .kind = .id_scope, .quantifier = .required },
7909 .{ .kind = .id_memory_semantics, .quantifier = .required },
7910 .{ .kind = .id_ref, .quantifier = .required },
73887911 },
73897912 },
73907913 .{
73917914 .name = "OpAtomicAnd",
73927915 .opcode = 240,
7393 .operands = &[_]Operand{
7394 .{ .kind = .IdResultType, .quantifier = .required },
7395 .{ .kind = .IdResult, .quantifier = .required },
7396 .{ .kind = .IdRef, .quantifier = .required },
7397 .{ .kind = .IdScope, .quantifier = .required },
7398 .{ .kind = .IdMemorySemantics, .quantifier = .required },
7399 .{ .kind = .IdRef, .quantifier = .required },
7916 .operands = &.{
7917 .{ .kind = .id_result_type, .quantifier = .required },
7918 .{ .kind = .id_result, .quantifier = .required },
7919 .{ .kind = .id_ref, .quantifier = .required },
7920 .{ .kind = .id_scope, .quantifier = .required },
7921 .{ .kind = .id_memory_semantics, .quantifier = .required },
7922 .{ .kind = .id_ref, .quantifier = .required },
74007923 },
74017924 },
74027925 .{
74037926 .name = "OpAtomicOr",
74047927 .opcode = 241,
7405 .operands = &[_]Operand{
7406 .{ .kind = .IdResultType, .quantifier = .required },
7407 .{ .kind = .IdResult, .quantifier = .required },
7408 .{ .kind = .IdRef, .quantifier = .required },
7409 .{ .kind = .IdScope, .quantifier = .required },
7410 .{ .kind = .IdMemorySemantics, .quantifier = .required },
7411 .{ .kind = .IdRef, .quantifier = .required },
7928 .operands = &.{
7929 .{ .kind = .id_result_type, .quantifier = .required },
7930 .{ .kind = .id_result, .quantifier = .required },
7931 .{ .kind = .id_ref, .quantifier = .required },
7932 .{ .kind = .id_scope, .quantifier = .required },
7933 .{ .kind = .id_memory_semantics, .quantifier = .required },
7934 .{ .kind = .id_ref, .quantifier = .required },
74127935 },
74137936 },
74147937 .{
74157938 .name = "OpAtomicXor",
74167939 .opcode = 242,
7417 .operands = &[_]Operand{
7418 .{ .kind = .IdResultType, .quantifier = .required },
7419 .{ .kind = .IdResult, .quantifier = .required },
7420 .{ .kind = .IdRef, .quantifier = .required },
7421 .{ .kind = .IdScope, .quantifier = .required },
7422 .{ .kind = .IdMemorySemantics, .quantifier = .required },
7423 .{ .kind = .IdRef, .quantifier = .required },
7940 .operands = &.{
7941 .{ .kind = .id_result_type, .quantifier = .required },
7942 .{ .kind = .id_result, .quantifier = .required },
7943 .{ .kind = .id_ref, .quantifier = .required },
7944 .{ .kind = .id_scope, .quantifier = .required },
7945 .{ .kind = .id_memory_semantics, .quantifier = .required },
7946 .{ .kind = .id_ref, .quantifier = .required },
74247947 },
74257948 },
74267949 .{
74277950 .name = "OpPhi",
74287951 .opcode = 245,
7429 .operands = &[_]Operand{
7430 .{ .kind = .IdResultType, .quantifier = .required },
7431 .{ .kind = .IdResult, .quantifier = .required },
7432 .{ .kind = .PairIdRefIdRef, .quantifier = .variadic },
7952 .operands = &.{
7953 .{ .kind = .id_result_type, .quantifier = .required },
7954 .{ .kind = .id_result, .quantifier = .required },
7955 .{ .kind = .pair_id_ref_id_ref, .quantifier = .variadic },
74337956 },
74347957 },
74357958 .{
74367959 .name = "OpLoopMerge",
74377960 .opcode = 246,
7438 .operands = &[_]Operand{
7439 .{ .kind = .IdRef, .quantifier = .required },
7440 .{ .kind = .IdRef, .quantifier = .required },
7441 .{ .kind = .LoopControl, .quantifier = .required },
7961 .operands = &.{
7962 .{ .kind = .id_ref, .quantifier = .required },
7963 .{ .kind = .id_ref, .quantifier = .required },
7964 .{ .kind = .loop_control, .quantifier = .required },
74427965 },
74437966 },
74447967 .{
74457968 .name = "OpSelectionMerge",
74467969 .opcode = 247,
7447 .operands = &[_]Operand{
7448 .{ .kind = .IdRef, .quantifier = .required },
7449 .{ .kind = .SelectionControl, .quantifier = .required },
7970 .operands = &.{
7971 .{ .kind = .id_ref, .quantifier = .required },
7972 .{ .kind = .selection_control, .quantifier = .required },
74507973 },
74517974 },
74527975 .{
74537976 .name = "OpLabel",
74547977 .opcode = 248,
7455 .operands = &[_]Operand{
7456 .{ .kind = .IdResult, .quantifier = .required },
7978 .operands = &.{
7979 .{ .kind = .id_result, .quantifier = .required },
74577980 },
74587981 },
74597982 .{
74607983 .name = "OpBranch",
74617984 .opcode = 249,
7462 .operands = &[_]Operand{
7463 .{ .kind = .IdRef, .quantifier = .required },
7985 .operands = &.{
7986 .{ .kind = .id_ref, .quantifier = .required },
74647987 },
74657988 },
74667989 .{
74677990 .name = "OpBranchConditional",
74687991 .opcode = 250,
7469 .operands = &[_]Operand{
7470 .{ .kind = .IdRef, .quantifier = .required },
7471 .{ .kind = .IdRef, .quantifier = .required },
7472 .{ .kind = .IdRef, .quantifier = .required },
7473 .{ .kind = .LiteralInteger, .quantifier = .variadic },
7992 .operands = &.{
7993 .{ .kind = .id_ref, .quantifier = .required },
7994 .{ .kind = .id_ref, .quantifier = .required },
7995 .{ .kind = .id_ref, .quantifier = .required },
7996 .{ .kind = .literal_integer, .quantifier = .variadic },
74747997 },
74757998 },
74767999 .{
74778000 .name = "OpSwitch",
74788001 .opcode = 251,
7479 .operands = &[_]Operand{
7480 .{ .kind = .IdRef, .quantifier = .required },
7481 .{ .kind = .IdRef, .quantifier = .required },
7482 .{ .kind = .PairLiteralIntegerIdRef, .quantifier = .variadic },
8002 .operands = &.{
8003 .{ .kind = .id_ref, .quantifier = .required },
8004 .{ .kind = .id_ref, .quantifier = .required },
8005 .{ .kind = .pair_literal_integer_id_ref, .quantifier = .variadic },
74838006 },
74848007 },
74858008 .{
74868009 .name = "OpKill",
74878010 .opcode = 252,
7488 .operands = &[_]Operand{},
8011 .operands = &.{},
74898012 },
74908013 .{
74918014 .name = "OpReturn",
74928015 .opcode = 253,
7493 .operands = &[_]Operand{},
8016 .operands = &.{},
74948017 },
74958018 .{
74968019 .name = "OpReturnValue",
74978020 .opcode = 254,
7498 .operands = &[_]Operand{
7499 .{ .kind = .IdRef, .quantifier = .required },
8021 .operands = &.{
8022 .{ .kind = .id_ref, .quantifier = .required },
75008023 },
75018024 },
75028025 .{
75038026 .name = "OpUnreachable",
75048027 .opcode = 255,
7505 .operands = &[_]Operand{},
8028 .operands = &.{},
75068029 },
75078030 .{
75088031 .name = "OpLifetimeStart",
75098032 .opcode = 256,
7510 .operands = &[_]Operand{
7511 .{ .kind = .IdRef, .quantifier = .required },
7512 .{ .kind = .LiteralInteger, .quantifier = .required },
8033 .operands = &.{
8034 .{ .kind = .id_ref, .quantifier = .required },
8035 .{ .kind = .literal_integer, .quantifier = .required },
75138036 },
75148037 },
75158038 .{
75168039 .name = "OpLifetimeStop",
75178040 .opcode = 257,
7518 .operands = &[_]Operand{
7519 .{ .kind = .IdRef, .quantifier = .required },
7520 .{ .kind = .LiteralInteger, .quantifier = .required },
8041 .operands = &.{
8042 .{ .kind = .id_ref, .quantifier = .required },
8043 .{ .kind = .literal_integer, .quantifier = .required },
75218044 },
75228045 },
75238046 .{
75248047 .name = "OpGroupAsyncCopy",
75258048 .opcode = 259,
7526 .operands = &[_]Operand{
7527 .{ .kind = .IdResultType, .quantifier = .required },
7528 .{ .kind = .IdResult, .quantifier = .required },
7529 .{ .kind = .IdScope, .quantifier = .required },
7530 .{ .kind = .IdRef, .quantifier = .required },
7531 .{ .kind = .IdRef, .quantifier = .required },
7532 .{ .kind = .IdRef, .quantifier = .required },
7533 .{ .kind = .IdRef, .quantifier = .required },
7534 .{ .kind = .IdRef, .quantifier = .required },
8049 .operands = &.{
8050 .{ .kind = .id_result_type, .quantifier = .required },
8051 .{ .kind = .id_result, .quantifier = .required },
8052 .{ .kind = .id_scope, .quantifier = .required },
8053 .{ .kind = .id_ref, .quantifier = .required },
8054 .{ .kind = .id_ref, .quantifier = .required },
8055 .{ .kind = .id_ref, .quantifier = .required },
8056 .{ .kind = .id_ref, .quantifier = .required },
8057 .{ .kind = .id_ref, .quantifier = .required },
75358058 },
75368059 },
75378060 .{
75388061 .name = "OpGroupWaitEvents",
75398062 .opcode = 260,
7540 .operands = &[_]Operand{
7541 .{ .kind = .IdScope, .quantifier = .required },
7542 .{ .kind = .IdRef, .quantifier = .required },
7543 .{ .kind = .IdRef, .quantifier = .required },
8063 .operands = &.{
8064 .{ .kind = .id_scope, .quantifier = .required },
8065 .{ .kind = .id_ref, .quantifier = .required },
8066 .{ .kind = .id_ref, .quantifier = .required },
75448067 },
75458068 },
75468069 .{
75478070 .name = "OpGroupAll",
75488071 .opcode = 261,
7549 .operands = &[_]Operand{
7550 .{ .kind = .IdResultType, .quantifier = .required },
7551 .{ .kind = .IdResult, .quantifier = .required },
7552 .{ .kind = .IdScope, .quantifier = .required },
7553 .{ .kind = .IdRef, .quantifier = .required },
8072 .operands = &.{
8073 .{ .kind = .id_result_type, .quantifier = .required },
8074 .{ .kind = .id_result, .quantifier = .required },
8075 .{ .kind = .id_scope, .quantifier = .required },
8076 .{ .kind = .id_ref, .quantifier = .required },
75548077 },
75558078 },
75568079 .{
75578080 .name = "OpGroupAny",
75588081 .opcode = 262,
7559 .operands = &[_]Operand{
7560 .{ .kind = .IdResultType, .quantifier = .required },
7561 .{ .kind = .IdResult, .quantifier = .required },
7562 .{ .kind = .IdScope, .quantifier = .required },
7563 .{ .kind = .IdRef, .quantifier = .required },
8082 .operands = &.{
8083 .{ .kind = .id_result_type, .quantifier = .required },
8084 .{ .kind = .id_result, .quantifier = .required },
8085 .{ .kind = .id_scope, .quantifier = .required },
8086 .{ .kind = .id_ref, .quantifier = .required },
75648087 },
75658088 },
75668089 .{
75678090 .name = "OpGroupBroadcast",
75688091 .opcode = 263,
7569 .operands = &[_]Operand{
7570 .{ .kind = .IdResultType, .quantifier = .required },
7571 .{ .kind = .IdResult, .quantifier = .required },
7572 .{ .kind = .IdScope, .quantifier = .required },
7573 .{ .kind = .IdRef, .quantifier = .required },
7574 .{ .kind = .IdRef, .quantifier = .required },
8092 .operands = &.{
8093 .{ .kind = .id_result_type, .quantifier = .required },
8094 .{ .kind = .id_result, .quantifier = .required },
8095 .{ .kind = .id_scope, .quantifier = .required },
8096 .{ .kind = .id_ref, .quantifier = .required },
8097 .{ .kind = .id_ref, .quantifier = .required },
75758098 },
75768099 },
75778100 .{
75788101 .name = "OpGroupIAdd",
75798102 .opcode = 264,
7580 .operands = &[_]Operand{
7581 .{ .kind = .IdResultType, .quantifier = .required },
7582 .{ .kind = .IdResult, .quantifier = .required },
7583 .{ .kind = .IdScope, .quantifier = .required },
7584 .{ .kind = .GroupOperation, .quantifier = .required },
7585 .{ .kind = .IdRef, .quantifier = .required },
8103 .operands = &.{
8104 .{ .kind = .id_result_type, .quantifier = .required },
8105 .{ .kind = .id_result, .quantifier = .required },
8106 .{ .kind = .id_scope, .quantifier = .required },
8107 .{ .kind = .group_operation, .quantifier = .required },
8108 .{ .kind = .id_ref, .quantifier = .required },
75868109 },
75878110 },
75888111 .{
75898112 .name = "OpGroupFAdd",
75908113 .opcode = 265,
7591 .operands = &[_]Operand{
7592 .{ .kind = .IdResultType, .quantifier = .required },
7593 .{ .kind = .IdResult, .quantifier = .required },
7594 .{ .kind = .IdScope, .quantifier = .required },
7595 .{ .kind = .GroupOperation, .quantifier = .required },
7596 .{ .kind = .IdRef, .quantifier = .required },
8114 .operands = &.{
8115 .{ .kind = .id_result_type, .quantifier = .required },
8116 .{ .kind = .id_result, .quantifier = .required },
8117 .{ .kind = .id_scope, .quantifier = .required },
8118 .{ .kind = .group_operation, .quantifier = .required },
8119 .{ .kind = .id_ref, .quantifier = .required },
75978120 },
75988121 },
75998122 .{
76008123 .name = "OpGroupFMin",
76018124 .opcode = 266,
7602 .operands = &[_]Operand{
7603 .{ .kind = .IdResultType, .quantifier = .required },
7604 .{ .kind = .IdResult, .quantifier = .required },
7605 .{ .kind = .IdScope, .quantifier = .required },
7606 .{ .kind = .GroupOperation, .quantifier = .required },
7607 .{ .kind = .IdRef, .quantifier = .required },
8125 .operands = &.{
8126 .{ .kind = .id_result_type, .quantifier = .required },
8127 .{ .kind = .id_result, .quantifier = .required },
8128 .{ .kind = .id_scope, .quantifier = .required },
8129 .{ .kind = .group_operation, .quantifier = .required },
8130 .{ .kind = .id_ref, .quantifier = .required },
76088131 },
76098132 },
76108133 .{
76118134 .name = "OpGroupUMin",
76128135 .opcode = 267,
7613 .operands = &[_]Operand{
7614 .{ .kind = .IdResultType, .quantifier = .required },
7615 .{ .kind = .IdResult, .quantifier = .required },
7616 .{ .kind = .IdScope, .quantifier = .required },
7617 .{ .kind = .GroupOperation, .quantifier = .required },
7618 .{ .kind = .IdRef, .quantifier = .required },
8136 .operands = &.{
8137 .{ .kind = .id_result_type, .quantifier = .required },
8138 .{ .kind = .id_result, .quantifier = .required },
8139 .{ .kind = .id_scope, .quantifier = .required },
8140 .{ .kind = .group_operation, .quantifier = .required },
8141 .{ .kind = .id_ref, .quantifier = .required },
76198142 },
76208143 },
76218144 .{
76228145 .name = "OpGroupSMin",
76238146 .opcode = 268,
7624 .operands = &[_]Operand{
7625 .{ .kind = .IdResultType, .quantifier = .required },
7626 .{ .kind = .IdResult, .quantifier = .required },
7627 .{ .kind = .IdScope, .quantifier = .required },
7628 .{ .kind = .GroupOperation, .quantifier = .required },
7629 .{ .kind = .IdRef, .quantifier = .required },
8147 .operands = &.{
8148 .{ .kind = .id_result_type, .quantifier = .required },
8149 .{ .kind = .id_result, .quantifier = .required },
8150 .{ .kind = .id_scope, .quantifier = .required },
8151 .{ .kind = .group_operation, .quantifier = .required },
8152 .{ .kind = .id_ref, .quantifier = .required },
76308153 },
76318154 },
76328155 .{
76338156 .name = "OpGroupFMax",
76348157 .opcode = 269,
7635 .operands = &[_]Operand{
7636 .{ .kind = .IdResultType, .quantifier = .required },
7637 .{ .kind = .IdResult, .quantifier = .required },
7638 .{ .kind = .IdScope, .quantifier = .required },
7639 .{ .kind = .GroupOperation, .quantifier = .required },
7640 .{ .kind = .IdRef, .quantifier = .required },
8158 .operands = &.{
8159 .{ .kind = .id_result_type, .quantifier = .required },
8160 .{ .kind = .id_result, .quantifier = .required },
8161 .{ .kind = .id_scope, .quantifier = .required },
8162 .{ .kind = .group_operation, .quantifier = .required },
8163 .{ .kind = .id_ref, .quantifier = .required },
76418164 },
76428165 },
76438166 .{
76448167 .name = "OpGroupUMax",
76458168 .opcode = 270,
7646 .operands = &[_]Operand{
7647 .{ .kind = .IdResultType, .quantifier = .required },
7648 .{ .kind = .IdResult, .quantifier = .required },
7649 .{ .kind = .IdScope, .quantifier = .required },
7650 .{ .kind = .GroupOperation, .quantifier = .required },
7651 .{ .kind = .IdRef, .quantifier = .required },
8169 .operands = &.{
8170 .{ .kind = .id_result_type, .quantifier = .required },
8171 .{ .kind = .id_result, .quantifier = .required },
8172 .{ .kind = .id_scope, .quantifier = .required },
8173 .{ .kind = .group_operation, .quantifier = .required },
8174 .{ .kind = .id_ref, .quantifier = .required },
76528175 },
76538176 },
76548177 .{
76558178 .name = "OpGroupSMax",
76568179 .opcode = 271,
7657 .operands = &[_]Operand{
7658 .{ .kind = .IdResultType, .quantifier = .required },
7659 .{ .kind = .IdResult, .quantifier = .required },
7660 .{ .kind = .IdScope, .quantifier = .required },
7661 .{ .kind = .GroupOperation, .quantifier = .required },
7662 .{ .kind = .IdRef, .quantifier = .required },
8180 .operands = &.{
8181 .{ .kind = .id_result_type, .quantifier = .required },
8182 .{ .kind = .id_result, .quantifier = .required },
8183 .{ .kind = .id_scope, .quantifier = .required },
8184 .{ .kind = .group_operation, .quantifier = .required },
8185 .{ .kind = .id_ref, .quantifier = .required },
76638186 },
76648187 },
76658188 .{
76668189 .name = "OpReadPipe",
76678190 .opcode = 274,
7668 .operands = &[_]Operand{
7669 .{ .kind = .IdResultType, .quantifier = .required },
7670 .{ .kind = .IdResult, .quantifier = .required },
7671 .{ .kind = .IdRef, .quantifier = .required },
7672 .{ .kind = .IdRef, .quantifier = .required },
7673 .{ .kind = .IdRef, .quantifier = .required },
7674 .{ .kind = .IdRef, .quantifier = .required },
8191 .operands = &.{
8192 .{ .kind = .id_result_type, .quantifier = .required },
8193 .{ .kind = .id_result, .quantifier = .required },
8194 .{ .kind = .id_ref, .quantifier = .required },
8195 .{ .kind = .id_ref, .quantifier = .required },
8196 .{ .kind = .id_ref, .quantifier = .required },
8197 .{ .kind = .id_ref, .quantifier = .required },
76758198 },
76768199 },
76778200 .{
76788201 .name = "OpWritePipe",
76798202 .opcode = 275,
7680 .operands = &[_]Operand{
7681 .{ .kind = .IdResultType, .quantifier = .required },
7682 .{ .kind = .IdResult, .quantifier = .required },
7683 .{ .kind = .IdRef, .quantifier = .required },
7684 .{ .kind = .IdRef, .quantifier = .required },
7685 .{ .kind = .IdRef, .quantifier = .required },
7686 .{ .kind = .IdRef, .quantifier = .required },
8203 .operands = &.{
8204 .{ .kind = .id_result_type, .quantifier = .required },
8205 .{ .kind = .id_result, .quantifier = .required },
8206 .{ .kind = .id_ref, .quantifier = .required },
8207 .{ .kind = .id_ref, .quantifier = .required },
8208 .{ .kind = .id_ref, .quantifier = .required },
8209 .{ .kind = .id_ref, .quantifier = .required },
76878210 },
76888211 },
76898212 .{
76908213 .name = "OpReservedReadPipe",
76918214 .opcode = 276,
7692 .operands = &[_]Operand{
7693 .{ .kind = .IdResultType, .quantifier = .required },
7694 .{ .kind = .IdResult, .quantifier = .required },
7695 .{ .kind = .IdRef, .quantifier = .required },
7696 .{ .kind = .IdRef, .quantifier = .required },
7697 .{ .kind = .IdRef, .quantifier = .required },
7698 .{ .kind = .IdRef, .quantifier = .required },
7699 .{ .kind = .IdRef, .quantifier = .required },
7700 .{ .kind = .IdRef, .quantifier = .required },
8215 .operands = &.{
8216 .{ .kind = .id_result_type, .quantifier = .required },
8217 .{ .kind = .id_result, .quantifier = .required },
8218 .{ .kind = .id_ref, .quantifier = .required },
8219 .{ .kind = .id_ref, .quantifier = .required },
8220 .{ .kind = .id_ref, .quantifier = .required },
8221 .{ .kind = .id_ref, .quantifier = .required },
8222 .{ .kind = .id_ref, .quantifier = .required },
8223 .{ .kind = .id_ref, .quantifier = .required },
77018224 },
77028225 },
77038226 .{
77048227 .name = "OpReservedWritePipe",
77058228 .opcode = 277,
7706 .operands = &[_]Operand{
7707 .{ .kind = .IdResultType, .quantifier = .required },
7708 .{ .kind = .IdResult, .quantifier = .required },
7709 .{ .kind = .IdRef, .quantifier = .required },
7710 .{ .kind = .IdRef, .quantifier = .required },
7711 .{ .kind = .IdRef, .quantifier = .required },
7712 .{ .kind = .IdRef, .quantifier = .required },
7713 .{ .kind = .IdRef, .quantifier = .required },
7714 .{ .kind = .IdRef, .quantifier = .required },
8229 .operands = &.{
8230 .{ .kind = .id_result_type, .quantifier = .required },
8231 .{ .kind = .id_result, .quantifier = .required },
8232 .{ .kind = .id_ref, .quantifier = .required },
8233 .{ .kind = .id_ref, .quantifier = .required },
8234 .{ .kind = .id_ref, .quantifier = .required },
8235 .{ .kind = .id_ref, .quantifier = .required },
8236 .{ .kind = .id_ref, .quantifier = .required },
8237 .{ .kind = .id_ref, .quantifier = .required },
77158238 },
77168239 },
77178240 .{
77188241 .name = "OpReserveReadPipePackets",
77198242 .opcode = 278,
7720 .operands = &[_]Operand{
7721 .{ .kind = .IdResultType, .quantifier = .required },
7722 .{ .kind = .IdResult, .quantifier = .required },
7723 .{ .kind = .IdRef, .quantifier = .required },
7724 .{ .kind = .IdRef, .quantifier = .required },
7725 .{ .kind = .IdRef, .quantifier = .required },
7726 .{ .kind = .IdRef, .quantifier = .required },
8243 .operands = &.{
8244 .{ .kind = .id_result_type, .quantifier = .required },
8245 .{ .kind = .id_result, .quantifier = .required },
8246 .{ .kind = .id_ref, .quantifier = .required },
8247 .{ .kind = .id_ref, .quantifier = .required },
8248 .{ .kind = .id_ref, .quantifier = .required },
8249 .{ .kind = .id_ref, .quantifier = .required },
77278250 },
77288251 },
77298252 .{
77308253 .name = "OpReserveWritePipePackets",
77318254 .opcode = 279,
7732 .operands = &[_]Operand{
7733 .{ .kind = .IdResultType, .quantifier = .required },
7734 .{ .kind = .IdResult, .quantifier = .required },
7735 .{ .kind = .IdRef, .quantifier = .required },
7736 .{ .kind = .IdRef, .quantifier = .required },
7737 .{ .kind = .IdRef, .quantifier = .required },
7738 .{ .kind = .IdRef, .quantifier = .required },
8255 .operands = &.{
8256 .{ .kind = .id_result_type, .quantifier = .required },
8257 .{ .kind = .id_result, .quantifier = .required },
8258 .{ .kind = .id_ref, .quantifier = .required },
8259 .{ .kind = .id_ref, .quantifier = .required },
8260 .{ .kind = .id_ref, .quantifier = .required },
8261 .{ .kind = .id_ref, .quantifier = .required },
77398262 },
77408263 },
77418264 .{
77428265 .name = "OpCommitReadPipe",
77438266 .opcode = 280,
7744 .operands = &[_]Operand{
7745 .{ .kind = .IdRef, .quantifier = .required },
7746 .{ .kind = .IdRef, .quantifier = .required },
7747 .{ .kind = .IdRef, .quantifier = .required },
7748 .{ .kind = .IdRef, .quantifier = .required },
8267 .operands = &.{
8268 .{ .kind = .id_ref, .quantifier = .required },
8269 .{ .kind = .id_ref, .quantifier = .required },
8270 .{ .kind = .id_ref, .quantifier = .required },
8271 .{ .kind = .id_ref, .quantifier = .required },
77498272 },
77508273 },
77518274 .{
77528275 .name = "OpCommitWritePipe",
77538276 .opcode = 281,
7754 .operands = &[_]Operand{
7755 .{ .kind = .IdRef, .quantifier = .required },
7756 .{ .kind = .IdRef, .quantifier = .required },
7757 .{ .kind = .IdRef, .quantifier = .required },
7758 .{ .kind = .IdRef, .quantifier = .required },
8277 .operands = &.{
8278 .{ .kind = .id_ref, .quantifier = .required },
8279 .{ .kind = .id_ref, .quantifier = .required },
8280 .{ .kind = .id_ref, .quantifier = .required },
8281 .{ .kind = .id_ref, .quantifier = .required },
77598282 },
77608283 },
77618284 .{
77628285 .name = "OpIsValidReserveId",
77638286 .opcode = 282,
7764 .operands = &[_]Operand{
7765 .{ .kind = .IdResultType, .quantifier = .required },
7766 .{ .kind = .IdResult, .quantifier = .required },
7767 .{ .kind = .IdRef, .quantifier = .required },
8287 .operands = &.{
8288 .{ .kind = .id_result_type, .quantifier = .required },
8289 .{ .kind = .id_result, .quantifier = .required },
8290 .{ .kind = .id_ref, .quantifier = .required },
77688291 },
77698292 },
77708293 .{
77718294 .name = "OpGetNumPipePackets",
77728295 .opcode = 283,
7773 .operands = &[_]Operand{
7774 .{ .kind = .IdResultType, .quantifier = .required },
7775 .{ .kind = .IdResult, .quantifier = .required },
7776 .{ .kind = .IdRef, .quantifier = .required },
7777 .{ .kind = .IdRef, .quantifier = .required },
7778 .{ .kind = .IdRef, .quantifier = .required },
8296 .operands = &.{
8297 .{ .kind = .id_result_type, .quantifier = .required },
8298 .{ .kind = .id_result, .quantifier = .required },
8299 .{ .kind = .id_ref, .quantifier = .required },
8300 .{ .kind = .id_ref, .quantifier = .required },
8301 .{ .kind = .id_ref, .quantifier = .required },
77798302 },
77808303 },
77818304 .{
77828305 .name = "OpGetMaxPipePackets",
77838306 .opcode = 284,
7784 .operands = &[_]Operand{
7785 .{ .kind = .IdResultType, .quantifier = .required },
7786 .{ .kind = .IdResult, .quantifier = .required },
7787 .{ .kind = .IdRef, .quantifier = .required },
7788 .{ .kind = .IdRef, .quantifier = .required },
7789 .{ .kind = .IdRef, .quantifier = .required },
8307 .operands = &.{
8308 .{ .kind = .id_result_type, .quantifier = .required },
8309 .{ .kind = .id_result, .quantifier = .required },
8310 .{ .kind = .id_ref, .quantifier = .required },
8311 .{ .kind = .id_ref, .quantifier = .required },
8312 .{ .kind = .id_ref, .quantifier = .required },
77908313 },
77918314 },
77928315 .{
77938316 .name = "OpGroupReserveReadPipePackets",
77948317 .opcode = 285,
7795 .operands = &[_]Operand{
7796 .{ .kind = .IdResultType, .quantifier = .required },
7797 .{ .kind = .IdResult, .quantifier = .required },
7798 .{ .kind = .IdScope, .quantifier = .required },
7799 .{ .kind = .IdRef, .quantifier = .required },
7800 .{ .kind = .IdRef, .quantifier = .required },
7801 .{ .kind = .IdRef, .quantifier = .required },
7802 .{ .kind = .IdRef, .quantifier = .required },
8318 .operands = &.{
8319 .{ .kind = .id_result_type, .quantifier = .required },
8320 .{ .kind = .id_result, .quantifier = .required },
8321 .{ .kind = .id_scope, .quantifier = .required },
8322 .{ .kind = .id_ref, .quantifier = .required },
8323 .{ .kind = .id_ref, .quantifier = .required },
8324 .{ .kind = .id_ref, .quantifier = .required },
8325 .{ .kind = .id_ref, .quantifier = .required },
78038326 },
78048327 },
78058328 .{
78068329 .name = "OpGroupReserveWritePipePackets",
78078330 .opcode = 286,
7808 .operands = &[_]Operand{
7809 .{ .kind = .IdResultType, .quantifier = .required },
7810 .{ .kind = .IdResult, .quantifier = .required },
7811 .{ .kind = .IdScope, .quantifier = .required },
7812 .{ .kind = .IdRef, .quantifier = .required },
7813 .{ .kind = .IdRef, .quantifier = .required },
7814 .{ .kind = .IdRef, .quantifier = .required },
7815 .{ .kind = .IdRef, .quantifier = .required },
8331 .operands = &.{
8332 .{ .kind = .id_result_type, .quantifier = .required },
8333 .{ .kind = .id_result, .quantifier = .required },
8334 .{ .kind = .id_scope, .quantifier = .required },
8335 .{ .kind = .id_ref, .quantifier = .required },
8336 .{ .kind = .id_ref, .quantifier = .required },
8337 .{ .kind = .id_ref, .quantifier = .required },
8338 .{ .kind = .id_ref, .quantifier = .required },
78168339 },
78178340 },
78188341 .{
78198342 .name = "OpGroupCommitReadPipe",
78208343 .opcode = 287,
7821 .operands = &[_]Operand{
7822 .{ .kind = .IdScope, .quantifier = .required },
7823 .{ .kind = .IdRef, .quantifier = .required },
7824 .{ .kind = .IdRef, .quantifier = .required },
7825 .{ .kind = .IdRef, .quantifier = .required },
7826 .{ .kind = .IdRef, .quantifier = .required },
8344 .operands = &.{
8345 .{ .kind = .id_scope, .quantifier = .required },
8346 .{ .kind = .id_ref, .quantifier = .required },
8347 .{ .kind = .id_ref, .quantifier = .required },
8348 .{ .kind = .id_ref, .quantifier = .required },
8349 .{ .kind = .id_ref, .quantifier = .required },
78278350 },
78288351 },
78298352 .{
78308353 .name = "OpGroupCommitWritePipe",
78318354 .opcode = 288,
7832 .operands = &[_]Operand{
7833 .{ .kind = .IdScope, .quantifier = .required },
7834 .{ .kind = .IdRef, .quantifier = .required },
7835 .{ .kind = .IdRef, .quantifier = .required },
7836 .{ .kind = .IdRef, .quantifier = .required },
7837 .{ .kind = .IdRef, .quantifier = .required },
8355 .operands = &.{
8356 .{ .kind = .id_scope, .quantifier = .required },
8357 .{ .kind = .id_ref, .quantifier = .required },
8358 .{ .kind = .id_ref, .quantifier = .required },
8359 .{ .kind = .id_ref, .quantifier = .required },
8360 .{ .kind = .id_ref, .quantifier = .required },
78388361 },
78398362 },
78408363 .{
78418364 .name = "OpEnqueueMarker",
78428365 .opcode = 291,
7843 .operands = &[_]Operand{
7844 .{ .kind = .IdResultType, .quantifier = .required },
7845 .{ .kind = .IdResult, .quantifier = .required },
7846 .{ .kind = .IdRef, .quantifier = .required },
7847 .{ .kind = .IdRef, .quantifier = .required },
7848 .{ .kind = .IdRef, .quantifier = .required },
7849 .{ .kind = .IdRef, .quantifier = .required },
8366 .operands = &.{
8367 .{ .kind = .id_result_type, .quantifier = .required },
8368 .{ .kind = .id_result, .quantifier = .required },
8369 .{ .kind = .id_ref, .quantifier = .required },
8370 .{ .kind = .id_ref, .quantifier = .required },
8371 .{ .kind = .id_ref, .quantifier = .required },
8372 .{ .kind = .id_ref, .quantifier = .required },
78508373 },
78518374 },
78528375 .{
78538376 .name = "OpEnqueueKernel",
78548377 .opcode = 292,
7855 .operands = &[_]Operand{
7856 .{ .kind = .IdResultType, .quantifier = .required },
7857 .{ .kind = .IdResult, .quantifier = .required },
7858 .{ .kind = .IdRef, .quantifier = .required },
7859 .{ .kind = .IdRef, .quantifier = .required },
7860 .{ .kind = .IdRef, .quantifier = .required },
7861 .{ .kind = .IdRef, .quantifier = .required },
7862 .{ .kind = .IdRef, .quantifier = .required },
7863 .{ .kind = .IdRef, .quantifier = .required },
7864 .{ .kind = .IdRef, .quantifier = .required },
7865 .{ .kind = .IdRef, .quantifier = .required },
7866 .{ .kind = .IdRef, .quantifier = .required },
7867 .{ .kind = .IdRef, .quantifier = .required },
7868 .{ .kind = .IdRef, .quantifier = .variadic },
8378 .operands = &.{
8379 .{ .kind = .id_result_type, .quantifier = .required },
8380 .{ .kind = .id_result, .quantifier = .required },
8381 .{ .kind = .id_ref, .quantifier = .required },
8382 .{ .kind = .id_ref, .quantifier = .required },
8383 .{ .kind = .id_ref, .quantifier = .required },
8384 .{ .kind = .id_ref, .quantifier = .required },
8385 .{ .kind = .id_ref, .quantifier = .required },
8386 .{ .kind = .id_ref, .quantifier = .required },
8387 .{ .kind = .id_ref, .quantifier = .required },
8388 .{ .kind = .id_ref, .quantifier = .required },
8389 .{ .kind = .id_ref, .quantifier = .required },
8390 .{ .kind = .id_ref, .quantifier = .required },
8391 .{ .kind = .id_ref, .quantifier = .variadic },
78698392 },
78708393 },
78718394 .{
78728395 .name = "OpGetKernelNDrangeSubGroupCount",
78738396 .opcode = 293,
7874 .operands = &[_]Operand{
7875 .{ .kind = .IdResultType, .quantifier = .required },
7876 .{ .kind = .IdResult, .quantifier = .required },
7877 .{ .kind = .IdRef, .quantifier = .required },
7878 .{ .kind = .IdRef, .quantifier = .required },
7879 .{ .kind = .IdRef, .quantifier = .required },
7880 .{ .kind = .IdRef, .quantifier = .required },
7881 .{ .kind = .IdRef, .quantifier = .required },
8397 .operands = &.{
8398 .{ .kind = .id_result_type, .quantifier = .required },
8399 .{ .kind = .id_result, .quantifier = .required },
8400 .{ .kind = .id_ref, .quantifier = .required },
8401 .{ .kind = .id_ref, .quantifier = .required },
8402 .{ .kind = .id_ref, .quantifier = .required },
8403 .{ .kind = .id_ref, .quantifier = .required },
8404 .{ .kind = .id_ref, .quantifier = .required },
78828405 },
78838406 },
78848407 .{
78858408 .name = "OpGetKernelNDrangeMaxSubGroupSize",
78868409 .opcode = 294,
7887 .operands = &[_]Operand{
7888 .{ .kind = .IdResultType, .quantifier = .required },
7889 .{ .kind = .IdResult, .quantifier = .required },
7890 .{ .kind = .IdRef, .quantifier = .required },
7891 .{ .kind = .IdRef, .quantifier = .required },
7892 .{ .kind = .IdRef, .quantifier = .required },
7893 .{ .kind = .IdRef, .quantifier = .required },
7894 .{ .kind = .IdRef, .quantifier = .required },
8410 .operands = &.{
8411 .{ .kind = .id_result_type, .quantifier = .required },
8412 .{ .kind = .id_result, .quantifier = .required },
8413 .{ .kind = .id_ref, .quantifier = .required },
8414 .{ .kind = .id_ref, .quantifier = .required },
8415 .{ .kind = .id_ref, .quantifier = .required },
8416 .{ .kind = .id_ref, .quantifier = .required },
8417 .{ .kind = .id_ref, .quantifier = .required },
78958418 },
78968419 },
78978420 .{
78988421 .name = "OpGetKernelWorkGroupSize",
78998422 .opcode = 295,
7900 .operands = &[_]Operand{
7901 .{ .kind = .IdResultType, .quantifier = .required },
7902 .{ .kind = .IdResult, .quantifier = .required },
7903 .{ .kind = .IdRef, .quantifier = .required },
7904 .{ .kind = .IdRef, .quantifier = .required },
7905 .{ .kind = .IdRef, .quantifier = .required },
7906 .{ .kind = .IdRef, .quantifier = .required },
8423 .operands = &.{
8424 .{ .kind = .id_result_type, .quantifier = .required },
8425 .{ .kind = .id_result, .quantifier = .required },
8426 .{ .kind = .id_ref, .quantifier = .required },
8427 .{ .kind = .id_ref, .quantifier = .required },
8428 .{ .kind = .id_ref, .quantifier = .required },
8429 .{ .kind = .id_ref, .quantifier = .required },
79078430 },
79088431 },
79098432 .{
79108433 .name = "OpGetKernelPreferredWorkGroupSizeMultiple",
79118434 .opcode = 296,
7912 .operands = &[_]Operand{
7913 .{ .kind = .IdResultType, .quantifier = .required },
7914 .{ .kind = .IdResult, .quantifier = .required },
7915 .{ .kind = .IdRef, .quantifier = .required },
7916 .{ .kind = .IdRef, .quantifier = .required },
7917 .{ .kind = .IdRef, .quantifier = .required },
7918 .{ .kind = .IdRef, .quantifier = .required },
8435 .operands = &.{
8436 .{ .kind = .id_result_type, .quantifier = .required },
8437 .{ .kind = .id_result, .quantifier = .required },
8438 .{ .kind = .id_ref, .quantifier = .required },
8439 .{ .kind = .id_ref, .quantifier = .required },
8440 .{ .kind = .id_ref, .quantifier = .required },
8441 .{ .kind = .id_ref, .quantifier = .required },
79198442 },
79208443 },
79218444 .{
79228445 .name = "OpRetainEvent",
79238446 .opcode = 297,
7924 .operands = &[_]Operand{
7925 .{ .kind = .IdRef, .quantifier = .required },
8447 .operands = &.{
8448 .{ .kind = .id_ref, .quantifier = .required },
79268449 },
79278450 },
79288451 .{
79298452 .name = "OpReleaseEvent",
79308453 .opcode = 298,
7931 .operands = &[_]Operand{
7932 .{ .kind = .IdRef, .quantifier = .required },
8454 .operands = &.{
8455 .{ .kind = .id_ref, .quantifier = .required },
79338456 },
79348457 },
79358458 .{
79368459 .name = "OpCreateUserEvent",
79378460 .opcode = 299,
7938 .operands = &[_]Operand{
7939 .{ .kind = .IdResultType, .quantifier = .required },
7940 .{ .kind = .IdResult, .quantifier = .required },
8461 .operands = &.{
8462 .{ .kind = .id_result_type, .quantifier = .required },
8463 .{ .kind = .id_result, .quantifier = .required },
79418464 },
79428465 },
79438466 .{
79448467 .name = "OpIsValidEvent",
79458468 .opcode = 300,
7946 .operands = &[_]Operand{
7947 .{ .kind = .IdResultType, .quantifier = .required },
7948 .{ .kind = .IdResult, .quantifier = .required },
7949 .{ .kind = .IdRef, .quantifier = .required },
8469 .operands = &.{
8470 .{ .kind = .id_result_type, .quantifier = .required },
8471 .{ .kind = .id_result, .quantifier = .required },
8472 .{ .kind = .id_ref, .quantifier = .required },
79508473 },
79518474 },
79528475 .{
79538476 .name = "OpSetUserEventStatus",
79548477 .opcode = 301,
7955 .operands = &[_]Operand{
7956 .{ .kind = .IdRef, .quantifier = .required },
7957 .{ .kind = .IdRef, .quantifier = .required },
8478 .operands = &.{
8479 .{ .kind = .id_ref, .quantifier = .required },
8480 .{ .kind = .id_ref, .quantifier = .required },
79588481 },
79598482 },
79608483 .{
79618484 .name = "OpCaptureEventProfilingInfo",
79628485 .opcode = 302,
7963 .operands = &[_]Operand{
7964 .{ .kind = .IdRef, .quantifier = .required },
7965 .{ .kind = .IdRef, .quantifier = .required },
7966 .{ .kind = .IdRef, .quantifier = .required },
8486 .operands = &.{
8487 .{ .kind = .id_ref, .quantifier = .required },
8488 .{ .kind = .id_ref, .quantifier = .required },
8489 .{ .kind = .id_ref, .quantifier = .required },
79678490 },
79688491 },
79698492 .{
79708493 .name = "OpGetDefaultQueue",
79718494 .opcode = 303,
7972 .operands = &[_]Operand{
7973 .{ .kind = .IdResultType, .quantifier = .required },
7974 .{ .kind = .IdResult, .quantifier = .required },
8495 .operands = &.{
8496 .{ .kind = .id_result_type, .quantifier = .required },
8497 .{ .kind = .id_result, .quantifier = .required },
79758498 },
79768499 },
79778500 .{
79788501 .name = "OpBuildNDRange",
79798502 .opcode = 304,
7980 .operands = &[_]Operand{
7981 .{ .kind = .IdResultType, .quantifier = .required },
7982 .{ .kind = .IdResult, .quantifier = .required },
7983 .{ .kind = .IdRef, .quantifier = .required },
7984 .{ .kind = .IdRef, .quantifier = .required },
7985 .{ .kind = .IdRef, .quantifier = .required },
8503 .operands = &.{
8504 .{ .kind = .id_result_type, .quantifier = .required },
8505 .{ .kind = .id_result, .quantifier = .required },
8506 .{ .kind = .id_ref, .quantifier = .required },
8507 .{ .kind = .id_ref, .quantifier = .required },
8508 .{ .kind = .id_ref, .quantifier = .required },
79868509 },
79878510 },
79888511 .{
79898512 .name = "OpImageSparseSampleImplicitLod",
79908513 .opcode = 305,
7991 .operands = &[_]Operand{
7992 .{ .kind = .IdResultType, .quantifier = .required },
7993 .{ .kind = .IdResult, .quantifier = .required },
7994 .{ .kind = .IdRef, .quantifier = .required },
7995 .{ .kind = .IdRef, .quantifier = .required },
7996 .{ .kind = .ImageOperands, .quantifier = .optional },
8514 .operands = &.{
8515 .{ .kind = .id_result_type, .quantifier = .required },
8516 .{ .kind = .id_result, .quantifier = .required },
8517 .{ .kind = .id_ref, .quantifier = .required },
8518 .{ .kind = .id_ref, .quantifier = .required },
8519 .{ .kind = .image_operands, .quantifier = .optional },
79978520 },
79988521 },
79998522 .{
80008523 .name = "OpImageSparseSampleExplicitLod",
80018524 .opcode = 306,
8002 .operands = &[_]Operand{
8003 .{ .kind = .IdResultType, .quantifier = .required },
8004 .{ .kind = .IdResult, .quantifier = .required },
8005 .{ .kind = .IdRef, .quantifier = .required },
8006 .{ .kind = .IdRef, .quantifier = .required },
8007 .{ .kind = .ImageOperands, .quantifier = .required },
8525 .operands = &.{
8526 .{ .kind = .id_result_type, .quantifier = .required },
8527 .{ .kind = .id_result, .quantifier = .required },
8528 .{ .kind = .id_ref, .quantifier = .required },
8529 .{ .kind = .id_ref, .quantifier = .required },
8530 .{ .kind = .image_operands, .quantifier = .required },
80088531 },
80098532 },
80108533 .{
80118534 .name = "OpImageSparseSampleDrefImplicitLod",
80128535 .opcode = 307,
8013 .operands = &[_]Operand{
8014 .{ .kind = .IdResultType, .quantifier = .required },
8015 .{ .kind = .IdResult, .quantifier = .required },
8016 .{ .kind = .IdRef, .quantifier = .required },
8017 .{ .kind = .IdRef, .quantifier = .required },
8018 .{ .kind = .IdRef, .quantifier = .required },
8019 .{ .kind = .ImageOperands, .quantifier = .optional },
8536 .operands = &.{
8537 .{ .kind = .id_result_type, .quantifier = .required },
8538 .{ .kind = .id_result, .quantifier = .required },
8539 .{ .kind = .id_ref, .quantifier = .required },
8540 .{ .kind = .id_ref, .quantifier = .required },
8541 .{ .kind = .id_ref, .quantifier = .required },
8542 .{ .kind = .image_operands, .quantifier = .optional },
80208543 },
80218544 },
80228545 .{
80238546 .name = "OpImageSparseSampleDrefExplicitLod",
80248547 .opcode = 308,
8025 .operands = &[_]Operand{
8026 .{ .kind = .IdResultType, .quantifier = .required },
8027 .{ .kind = .IdResult, .quantifier = .required },
8028 .{ .kind = .IdRef, .quantifier = .required },
8029 .{ .kind = .IdRef, .quantifier = .required },
8030 .{ .kind = .IdRef, .quantifier = .required },
8031 .{ .kind = .ImageOperands, .quantifier = .required },
8548 .operands = &.{
8549 .{ .kind = .id_result_type, .quantifier = .required },
8550 .{ .kind = .id_result, .quantifier = .required },
8551 .{ .kind = .id_ref, .quantifier = .required },
8552 .{ .kind = .id_ref, .quantifier = .required },
8553 .{ .kind = .id_ref, .quantifier = .required },
8554 .{ .kind = .image_operands, .quantifier = .required },
80328555 },
80338556 },
80348557 .{
80358558 .name = "OpImageSparseSampleProjImplicitLod",
80368559 .opcode = 309,
8037 .operands = &[_]Operand{
8038 .{ .kind = .IdResultType, .quantifier = .required },
8039 .{ .kind = .IdResult, .quantifier = .required },
8040 .{ .kind = .IdRef, .quantifier = .required },
8041 .{ .kind = .IdRef, .quantifier = .required },
8042 .{ .kind = .ImageOperands, .quantifier = .optional },
8560 .operands = &.{
8561 .{ .kind = .id_result_type, .quantifier = .required },
8562 .{ .kind = .id_result, .quantifier = .required },
8563 .{ .kind = .id_ref, .quantifier = .required },
8564 .{ .kind = .id_ref, .quantifier = .required },
8565 .{ .kind = .image_operands, .quantifier = .optional },
80438566 },
80448567 },
80458568 .{
80468569 .name = "OpImageSparseSampleProjExplicitLod",
80478570 .opcode = 310,
8048 .operands = &[_]Operand{
8049 .{ .kind = .IdResultType, .quantifier = .required },
8050 .{ .kind = .IdResult, .quantifier = .required },
8051 .{ .kind = .IdRef, .quantifier = .required },
8052 .{ .kind = .IdRef, .quantifier = .required },
8053 .{ .kind = .ImageOperands, .quantifier = .required },
8571 .operands = &.{
8572 .{ .kind = .id_result_type, .quantifier = .required },
8573 .{ .kind = .id_result, .quantifier = .required },
8574 .{ .kind = .id_ref, .quantifier = .required },
8575 .{ .kind = .id_ref, .quantifier = .required },
8576 .{ .kind = .image_operands, .quantifier = .required },
80548577 },
80558578 },
80568579 .{
80578580 .name = "OpImageSparseSampleProjDrefImplicitLod",
80588581 .opcode = 311,
8059 .operands = &[_]Operand{
8060 .{ .kind = .IdResultType, .quantifier = .required },
8061 .{ .kind = .IdResult, .quantifier = .required },
8062 .{ .kind = .IdRef, .quantifier = .required },
8063 .{ .kind = .IdRef, .quantifier = .required },
8064 .{ .kind = .IdRef, .quantifier = .required },
8065 .{ .kind = .ImageOperands, .quantifier = .optional },
8582 .operands = &.{
8583 .{ .kind = .id_result_type, .quantifier = .required },
8584 .{ .kind = .id_result, .quantifier = .required },
8585 .{ .kind = .id_ref, .quantifier = .required },
8586 .{ .kind = .id_ref, .quantifier = .required },
8587 .{ .kind = .id_ref, .quantifier = .required },
8588 .{ .kind = .image_operands, .quantifier = .optional },
80668589 },
80678590 },
80688591 .{
80698592 .name = "OpImageSparseSampleProjDrefExplicitLod",
80708593 .opcode = 312,
8071 .operands = &[_]Operand{
8072 .{ .kind = .IdResultType, .quantifier = .required },
8073 .{ .kind = .IdResult, .quantifier = .required },
8074 .{ .kind = .IdRef, .quantifier = .required },
8075 .{ .kind = .IdRef, .quantifier = .required },
8076 .{ .kind = .IdRef, .quantifier = .required },
8077 .{ .kind = .ImageOperands, .quantifier = .required },
8594 .operands = &.{
8595 .{ .kind = .id_result_type, .quantifier = .required },
8596 .{ .kind = .id_result, .quantifier = .required },
8597 .{ .kind = .id_ref, .quantifier = .required },
8598 .{ .kind = .id_ref, .quantifier = .required },
8599 .{ .kind = .id_ref, .quantifier = .required },
8600 .{ .kind = .image_operands, .quantifier = .required },
80788601 },
80798602 },
80808603 .{
80818604 .name = "OpImageSparseFetch",
80828605 .opcode = 313,
8083 .operands = &[_]Operand{
8084 .{ .kind = .IdResultType, .quantifier = .required },
8085 .{ .kind = .IdResult, .quantifier = .required },
8086 .{ .kind = .IdRef, .quantifier = .required },
8087 .{ .kind = .IdRef, .quantifier = .required },
8088 .{ .kind = .ImageOperands, .quantifier = .optional },
8606 .operands = &.{
8607 .{ .kind = .id_result_type, .quantifier = .required },
8608 .{ .kind = .id_result, .quantifier = .required },
8609 .{ .kind = .id_ref, .quantifier = .required },
8610 .{ .kind = .id_ref, .quantifier = .required },
8611 .{ .kind = .image_operands, .quantifier = .optional },
80898612 },
80908613 },
80918614 .{
80928615 .name = "OpImageSparseGather",
80938616 .opcode = 314,
8094 .operands = &[_]Operand{
8095 .{ .kind = .IdResultType, .quantifier = .required },
8096 .{ .kind = .IdResult, .quantifier = .required },
8097 .{ .kind = .IdRef, .quantifier = .required },
8098 .{ .kind = .IdRef, .quantifier = .required },
8099 .{ .kind = .IdRef, .quantifier = .required },
8100 .{ .kind = .ImageOperands, .quantifier = .optional },
8617 .operands = &.{
8618 .{ .kind = .id_result_type, .quantifier = .required },
8619 .{ .kind = .id_result, .quantifier = .required },
8620 .{ .kind = .id_ref, .quantifier = .required },
8621 .{ .kind = .id_ref, .quantifier = .required },
8622 .{ .kind = .id_ref, .quantifier = .required },
8623 .{ .kind = .image_operands, .quantifier = .optional },
81018624 },
81028625 },
81038626 .{
81048627 .name = "OpImageSparseDrefGather",
81058628 .opcode = 315,
8106 .operands = &[_]Operand{
8107 .{ .kind = .IdResultType, .quantifier = .required },
8108 .{ .kind = .IdResult, .quantifier = .required },
8109 .{ .kind = .IdRef, .quantifier = .required },
8110 .{ .kind = .IdRef, .quantifier = .required },
8111 .{ .kind = .IdRef, .quantifier = .required },
8112 .{ .kind = .ImageOperands, .quantifier = .optional },
8629 .operands = &.{
8630 .{ .kind = .id_result_type, .quantifier = .required },
8631 .{ .kind = .id_result, .quantifier = .required },
8632 .{ .kind = .id_ref, .quantifier = .required },
8633 .{ .kind = .id_ref, .quantifier = .required },
8634 .{ .kind = .id_ref, .quantifier = .required },
8635 .{ .kind = .image_operands, .quantifier = .optional },
81138636 },
81148637 },
81158638 .{
81168639 .name = "OpImageSparseTexelsResident",
81178640 .opcode = 316,
8118 .operands = &[_]Operand{
8119 .{ .kind = .IdResultType, .quantifier = .required },
8120 .{ .kind = .IdResult, .quantifier = .required },
8121 .{ .kind = .IdRef, .quantifier = .required },
8641 .operands = &.{
8642 .{ .kind = .id_result_type, .quantifier = .required },
8643 .{ .kind = .id_result, .quantifier = .required },
8644 .{ .kind = .id_ref, .quantifier = .required },
81228645 },
81238646 },
81248647 .{
81258648 .name = "OpNoLine",
81268649 .opcode = 317,
8127 .operands = &[_]Operand{},
8650 .operands = &.{},
81288651 },
81298652 .{
81308653 .name = "OpAtomicFlagTestAndSet",
81318654 .opcode = 318,
8132 .operands = &[_]Operand{
8133 .{ .kind = .IdResultType, .quantifier = .required },
8134 .{ .kind = .IdResult, .quantifier = .required },
8135 .{ .kind = .IdRef, .quantifier = .required },
8136 .{ .kind = .IdScope, .quantifier = .required },
8137 .{ .kind = .IdMemorySemantics, .quantifier = .required },
8655 .operands = &.{
8656 .{ .kind = .id_result_type, .quantifier = .required },
8657 .{ .kind = .id_result, .quantifier = .required },
8658 .{ .kind = .id_ref, .quantifier = .required },
8659 .{ .kind = .id_scope, .quantifier = .required },
8660 .{ .kind = .id_memory_semantics, .quantifier = .required },
81388661 },
81398662 },
81408663 .{
81418664 .name = "OpAtomicFlagClear",
81428665 .opcode = 319,
8143 .operands = &[_]Operand{
8144 .{ .kind = .IdRef, .quantifier = .required },
8145 .{ .kind = .IdScope, .quantifier = .required },
8146 .{ .kind = .IdMemorySemantics, .quantifier = .required },
8666 .operands = &.{
8667 .{ .kind = .id_ref, .quantifier = .required },
8668 .{ .kind = .id_scope, .quantifier = .required },
8669 .{ .kind = .id_memory_semantics, .quantifier = .required },
81478670 },
81488671 },
81498672 .{
81508673 .name = "OpImageSparseRead",
81518674 .opcode = 320,
8152 .operands = &[_]Operand{
8153 .{ .kind = .IdResultType, .quantifier = .required },
8154 .{ .kind = .IdResult, .quantifier = .required },
8155 .{ .kind = .IdRef, .quantifier = .required },
8156 .{ .kind = .IdRef, .quantifier = .required },
8157 .{ .kind = .ImageOperands, .quantifier = .optional },
8675 .operands = &.{
8676 .{ .kind = .id_result_type, .quantifier = .required },
8677 .{ .kind = .id_result, .quantifier = .required },
8678 .{ .kind = .id_ref, .quantifier = .required },
8679 .{ .kind = .id_ref, .quantifier = .required },
8680 .{ .kind = .image_operands, .quantifier = .optional },
81588681 },
81598682 },
81608683 .{
81618684 .name = "OpSizeOf",
81628685 .opcode = 321,
8163 .operands = &[_]Operand{
8164 .{ .kind = .IdResultType, .quantifier = .required },
8165 .{ .kind = .IdResult, .quantifier = .required },
8166 .{ .kind = .IdRef, .quantifier = .required },
8686 .operands = &.{
8687 .{ .kind = .id_result_type, .quantifier = .required },
8688 .{ .kind = .id_result, .quantifier = .required },
8689 .{ .kind = .id_ref, .quantifier = .required },
81678690 },
81688691 },
81698692 .{
81708693 .name = "OpTypePipeStorage",
81718694 .opcode = 322,
8172 .operands = &[_]Operand{
8173 .{ .kind = .IdResult, .quantifier = .required },
8695 .operands = &.{
8696 .{ .kind = .id_result, .quantifier = .required },
81748697 },
81758698 },
81768699 .{
81778700 .name = "OpConstantPipeStorage",
81788701 .opcode = 323,
8179 .operands = &[_]Operand{
8180 .{ .kind = .IdResultType, .quantifier = .required },
8181 .{ .kind = .IdResult, .quantifier = .required },
8182 .{ .kind = .LiteralInteger, .quantifier = .required },
8183 .{ .kind = .LiteralInteger, .quantifier = .required },
8184 .{ .kind = .LiteralInteger, .quantifier = .required },
8702 .operands = &.{
8703 .{ .kind = .id_result_type, .quantifier = .required },
8704 .{ .kind = .id_result, .quantifier = .required },
8705 .{ .kind = .literal_integer, .quantifier = .required },
8706 .{ .kind = .literal_integer, .quantifier = .required },
8707 .{ .kind = .literal_integer, .quantifier = .required },
81858708 },
81868709 },
81878710 .{
81888711 .name = "OpCreatePipeFromPipeStorage",
81898712 .opcode = 324,
8190 .operands = &[_]Operand{
8191 .{ .kind = .IdResultType, .quantifier = .required },
8192 .{ .kind = .IdResult, .quantifier = .required },
8193 .{ .kind = .IdRef, .quantifier = .required },
8713 .operands = &.{
8714 .{ .kind = .id_result_type, .quantifier = .required },
8715 .{ .kind = .id_result, .quantifier = .required },
8716 .{ .kind = .id_ref, .quantifier = .required },
81948717 },
81958718 },
81968719 .{
81978720 .name = "OpGetKernelLocalSizeForSubgroupCount",
81988721 .opcode = 325,
8199 .operands = &[_]Operand{
8200 .{ .kind = .IdResultType, .quantifier = .required },
8201 .{ .kind = .IdResult, .quantifier = .required },
8202 .{ .kind = .IdRef, .quantifier = .required },
8203 .{ .kind = .IdRef, .quantifier = .required },
8204 .{ .kind = .IdRef, .quantifier = .required },
8205 .{ .kind = .IdRef, .quantifier = .required },
8206 .{ .kind = .IdRef, .quantifier = .required },
8722 .operands = &.{
8723 .{ .kind = .id_result_type, .quantifier = .required },
8724 .{ .kind = .id_result, .quantifier = .required },
8725 .{ .kind = .id_ref, .quantifier = .required },
8726 .{ .kind = .id_ref, .quantifier = .required },
8727 .{ .kind = .id_ref, .quantifier = .required },
8728 .{ .kind = .id_ref, .quantifier = .required },
8729 .{ .kind = .id_ref, .quantifier = .required },
82078730 },
82088731 },
82098732 .{
82108733 .name = "OpGetKernelMaxNumSubgroups",
82118734 .opcode = 326,
8212 .operands = &[_]Operand{
8213 .{ .kind = .IdResultType, .quantifier = .required },
8214 .{ .kind = .IdResult, .quantifier = .required },
8215 .{ .kind = .IdRef, .quantifier = .required },
8216 .{ .kind = .IdRef, .quantifier = .required },
8217 .{ .kind = .IdRef, .quantifier = .required },
8218 .{ .kind = .IdRef, .quantifier = .required },
8735 .operands = &.{
8736 .{ .kind = .id_result_type, .quantifier = .required },
8737 .{ .kind = .id_result, .quantifier = .required },
8738 .{ .kind = .id_ref, .quantifier = .required },
8739 .{ .kind = .id_ref, .quantifier = .required },
8740 .{ .kind = .id_ref, .quantifier = .required },
8741 .{ .kind = .id_ref, .quantifier = .required },
82198742 },
82208743 },
82218744 .{
82228745 .name = "OpTypeNamedBarrier",
82238746 .opcode = 327,
8224 .operands = &[_]Operand{
8225 .{ .kind = .IdResult, .quantifier = .required },
8747 .operands = &.{
8748 .{ .kind = .id_result, .quantifier = .required },
82268749 },
82278750 },
82288751 .{
82298752 .name = "OpNamedBarrierInitialize",
82308753 .opcode = 328,
8231 .operands = &[_]Operand{
8232 .{ .kind = .IdResultType, .quantifier = .required },
8233 .{ .kind = .IdResult, .quantifier = .required },
8234 .{ .kind = .IdRef, .quantifier = .required },
8754 .operands = &.{
8755 .{ .kind = .id_result_type, .quantifier = .required },
8756 .{ .kind = .id_result, .quantifier = .required },
8757 .{ .kind = .id_ref, .quantifier = .required },
82358758 },
82368759 },
82378760 .{
82388761 .name = "OpMemoryNamedBarrier",
82398762 .opcode = 329,
8240 .operands = &[_]Operand{
8241 .{ .kind = .IdRef, .quantifier = .required },
8242 .{ .kind = .IdScope, .quantifier = .required },
8243 .{ .kind = .IdMemorySemantics, .quantifier = .required },
8763 .operands = &.{
8764 .{ .kind = .id_ref, .quantifier = .required },
8765 .{ .kind = .id_scope, .quantifier = .required },
8766 .{ .kind = .id_memory_semantics, .quantifier = .required },
82448767 },
82458768 },
82468769 .{
82478770 .name = "OpModuleProcessed",
82488771 .opcode = 330,
8249 .operands = &[_]Operand{
8250 .{ .kind = .LiteralString, .quantifier = .required },
8772 .operands = &.{
8773 .{ .kind = .literal_string, .quantifier = .required },
82518774 },
82528775 },
82538776 .{
82548777 .name = "OpExecutionModeId",
82558778 .opcode = 331,
8256 .operands = &[_]Operand{
8257 .{ .kind = .IdRef, .quantifier = .required },
8258 .{ .kind = .ExecutionMode, .quantifier = .required },
8779 .operands = &.{
8780 .{ .kind = .id_ref, .quantifier = .required },
8781 .{ .kind = .execution_mode, .quantifier = .required },
82598782 },
82608783 },
82618784 .{
82628785 .name = "OpDecorateId",
82638786 .opcode = 332,
8264 .operands = &[_]Operand{
8265 .{ .kind = .IdRef, .quantifier = .required },
8266 .{ .kind = .Decoration, .quantifier = .required },
8787 .operands = &.{
8788 .{ .kind = .id_ref, .quantifier = .required },
8789 .{ .kind = .decoration, .quantifier = .required },
82678790 },
82688791 },
82698792 .{
82708793 .name = "OpGroupNonUniformElect",
82718794 .opcode = 333,
8272 .operands = &[_]Operand{
8273 .{ .kind = .IdResultType, .quantifier = .required },
8274 .{ .kind = .IdResult, .quantifier = .required },
8275 .{ .kind = .IdScope, .quantifier = .required },
8795 .operands = &.{
8796 .{ .kind = .id_result_type, .quantifier = .required },
8797 .{ .kind = .id_result, .quantifier = .required },
8798 .{ .kind = .id_scope, .quantifier = .required },
82768799 },
82778800 },
82788801 .{
82798802 .name = "OpGroupNonUniformAll",
82808803 .opcode = 334,
8281 .operands = &[_]Operand{
8282 .{ .kind = .IdResultType, .quantifier = .required },
8283 .{ .kind = .IdResult, .quantifier = .required },
8284 .{ .kind = .IdScope, .quantifier = .required },
8285 .{ .kind = .IdRef, .quantifier = .required },
8804 .operands = &.{
8805 .{ .kind = .id_result_type, .quantifier = .required },
8806 .{ .kind = .id_result, .quantifier = .required },
8807 .{ .kind = .id_scope, .quantifier = .required },
8808 .{ .kind = .id_ref, .quantifier = .required },
82868809 },
82878810 },
82888811 .{
82898812 .name = "OpGroupNonUniformAny",
82908813 .opcode = 335,
8291 .operands = &[_]Operand{
8292 .{ .kind = .IdResultType, .quantifier = .required },
8293 .{ .kind = .IdResult, .quantifier = .required },
8294 .{ .kind = .IdScope, .quantifier = .required },
8295 .{ .kind = .IdRef, .quantifier = .required },
8814 .operands = &.{
8815 .{ .kind = .id_result_type, .quantifier = .required },
8816 .{ .kind = .id_result, .quantifier = .required },
8817 .{ .kind = .id_scope, .quantifier = .required },
8818 .{ .kind = .id_ref, .quantifier = .required },
82968819 },
82978820 },
82988821 .{
82998822 .name = "OpGroupNonUniformAllEqual",
83008823 .opcode = 336,
8301 .operands = &[_]Operand{
8302 .{ .kind = .IdResultType, .quantifier = .required },
8303 .{ .kind = .IdResult, .quantifier = .required },
8304 .{ .kind = .IdScope, .quantifier = .required },
8305 .{ .kind = .IdRef, .quantifier = .required },
8824 .operands = &.{
8825 .{ .kind = .id_result_type, .quantifier = .required },
8826 .{ .kind = .id_result, .quantifier = .required },
8827 .{ .kind = .id_scope, .quantifier = .required },
8828 .{ .kind = .id_ref, .quantifier = .required },
83068829 },
83078830 },
83088831 .{
83098832 .name = "OpGroupNonUniformBroadcast",
83108833 .opcode = 337,
8311 .operands = &[_]Operand{
8312 .{ .kind = .IdResultType, .quantifier = .required },
8313 .{ .kind = .IdResult, .quantifier = .required },
8314 .{ .kind = .IdScope, .quantifier = .required },
8315 .{ .kind = .IdRef, .quantifier = .required },
8316 .{ .kind = .IdRef, .quantifier = .required },
8834 .operands = &.{
8835 .{ .kind = .id_result_type, .quantifier = .required },
8836 .{ .kind = .id_result, .quantifier = .required },
8837 .{ .kind = .id_scope, .quantifier = .required },
8838 .{ .kind = .id_ref, .quantifier = .required },
8839 .{ .kind = .id_ref, .quantifier = .required },
83178840 },
83188841 },
83198842 .{
83208843 .name = "OpGroupNonUniformBroadcastFirst",
83218844 .opcode = 338,
8322 .operands = &[_]Operand{
8323 .{ .kind = .IdResultType, .quantifier = .required },
8324 .{ .kind = .IdResult, .quantifier = .required },
8325 .{ .kind = .IdScope, .quantifier = .required },
8326 .{ .kind = .IdRef, .quantifier = .required },
8845 .operands = &.{
8846 .{ .kind = .id_result_type, .quantifier = .required },
8847 .{ .kind = .id_result, .quantifier = .required },
8848 .{ .kind = .id_scope, .quantifier = .required },
8849 .{ .kind = .id_ref, .quantifier = .required },
83278850 },
83288851 },
83298852 .{
83308853 .name = "OpGroupNonUniformBallot",
83318854 .opcode = 339,
8332 .operands = &[_]Operand{
8333 .{ .kind = .IdResultType, .quantifier = .required },
8334 .{ .kind = .IdResult, .quantifier = .required },
8335 .{ .kind = .IdScope, .quantifier = .required },
8336 .{ .kind = .IdRef, .quantifier = .required },
8855 .operands = &.{
8856 .{ .kind = .id_result_type, .quantifier = .required },
8857 .{ .kind = .id_result, .quantifier = .required },
8858 .{ .kind = .id_scope, .quantifier = .required },
8859 .{ .kind = .id_ref, .quantifier = .required },
83378860 },
83388861 },
83398862 .{
83408863 .name = "OpGroupNonUniformInverseBallot",
83418864 .opcode = 340,
8342 .operands = &[_]Operand{
8343 .{ .kind = .IdResultType, .quantifier = .required },
8344 .{ .kind = .IdResult, .quantifier = .required },
8345 .{ .kind = .IdScope, .quantifier = .required },
8346 .{ .kind = .IdRef, .quantifier = .required },
8865 .operands = &.{
8866 .{ .kind = .id_result_type, .quantifier = .required },
8867 .{ .kind = .id_result, .quantifier = .required },
8868 .{ .kind = .id_scope, .quantifier = .required },
8869 .{ .kind = .id_ref, .quantifier = .required },
83478870 },
83488871 },
83498872 .{
83508873 .name = "OpGroupNonUniformBallotBitExtract",
83518874 .opcode = 341,
8352 .operands = &[_]Operand{
8353 .{ .kind = .IdResultType, .quantifier = .required },
8354 .{ .kind = .IdResult, .quantifier = .required },
8355 .{ .kind = .IdScope, .quantifier = .required },
8356 .{ .kind = .IdRef, .quantifier = .required },
8357 .{ .kind = .IdRef, .quantifier = .required },
8875 .operands = &.{
8876 .{ .kind = .id_result_type, .quantifier = .required },
8877 .{ .kind = .id_result, .quantifier = .required },
8878 .{ .kind = .id_scope, .quantifier = .required },
8879 .{ .kind = .id_ref, .quantifier = .required },
8880 .{ .kind = .id_ref, .quantifier = .required },
83588881 },
83598882 },
83608883 .{
83618884 .name = "OpGroupNonUniformBallotBitCount",
83628885 .opcode = 342,
8363 .operands = &[_]Operand{
8364 .{ .kind = .IdResultType, .quantifier = .required },
8365 .{ .kind = .IdResult, .quantifier = .required },
8366 .{ .kind = .IdScope, .quantifier = .required },
8367 .{ .kind = .GroupOperation, .quantifier = .required },
8368 .{ .kind = .IdRef, .quantifier = .required },
8886 .operands = &.{
8887 .{ .kind = .id_result_type, .quantifier = .required },
8888 .{ .kind = .id_result, .quantifier = .required },
8889 .{ .kind = .id_scope, .quantifier = .required },
8890 .{ .kind = .group_operation, .quantifier = .required },
8891 .{ .kind = .id_ref, .quantifier = .required },
83698892 },
83708893 },
83718894 .{
83728895 .name = "OpGroupNonUniformBallotFindLSB",
83738896 .opcode = 343,
8374 .operands = &[_]Operand{
8375 .{ .kind = .IdResultType, .quantifier = .required },
8376 .{ .kind = .IdResult, .quantifier = .required },
8377 .{ .kind = .IdScope, .quantifier = .required },
8378 .{ .kind = .IdRef, .quantifier = .required },
8897 .operands = &.{
8898 .{ .kind = .id_result_type, .quantifier = .required },
8899 .{ .kind = .id_result, .quantifier = .required },
8900 .{ .kind = .id_scope, .quantifier = .required },
8901 .{ .kind = .id_ref, .quantifier = .required },
83798902 },
83808903 },
83818904 .{
83828905 .name = "OpGroupNonUniformBallotFindMSB",
83838906 .opcode = 344,
8384 .operands = &[_]Operand{
8385 .{ .kind = .IdResultType, .quantifier = .required },
8386 .{ .kind = .IdResult, .quantifier = .required },
8387 .{ .kind = .IdScope, .quantifier = .required },
8388 .{ .kind = .IdRef, .quantifier = .required },
8907 .operands = &.{
8908 .{ .kind = .id_result_type, .quantifier = .required },
8909 .{ .kind = .id_result, .quantifier = .required },
8910 .{ .kind = .id_scope, .quantifier = .required },
8911 .{ .kind = .id_ref, .quantifier = .required },
83898912 },
83908913 },
83918914 .{
83928915 .name = "OpGroupNonUniformShuffle",
83938916 .opcode = 345,
8394 .operands = &[_]Operand{
8395 .{ .kind = .IdResultType, .quantifier = .required },
8396 .{ .kind = .IdResult, .quantifier = .required },
8397 .{ .kind = .IdScope, .quantifier = .required },
8398 .{ .kind = .IdRef, .quantifier = .required },
8399 .{ .kind = .IdRef, .quantifier = .required },
8917 .operands = &.{
8918 .{ .kind = .id_result_type, .quantifier = .required },
8919 .{ .kind = .id_result, .quantifier = .required },
8920 .{ .kind = .id_scope, .quantifier = .required },
8921 .{ .kind = .id_ref, .quantifier = .required },
8922 .{ .kind = .id_ref, .quantifier = .required },
84008923 },
84018924 },
84028925 .{
84038926 .name = "OpGroupNonUniformShuffleXor",
84048927 .opcode = 346,
8405 .operands = &[_]Operand{
8406 .{ .kind = .IdResultType, .quantifier = .required },
8407 .{ .kind = .IdResult, .quantifier = .required },
8408 .{ .kind = .IdScope, .quantifier = .required },
8409 .{ .kind = .IdRef, .quantifier = .required },
8410 .{ .kind = .IdRef, .quantifier = .required },
8928 .operands = &.{
8929 .{ .kind = .id_result_type, .quantifier = .required },
8930 .{ .kind = .id_result, .quantifier = .required },
8931 .{ .kind = .id_scope, .quantifier = .required },
8932 .{ .kind = .id_ref, .quantifier = .required },
8933 .{ .kind = .id_ref, .quantifier = .required },
84118934 },
84128935 },
84138936 .{
84148937 .name = "OpGroupNonUniformShuffleUp",
84158938 .opcode = 347,
8416 .operands = &[_]Operand{
8417 .{ .kind = .IdResultType, .quantifier = .required },
8418 .{ .kind = .IdResult, .quantifier = .required },
8419 .{ .kind = .IdScope, .quantifier = .required },
8420 .{ .kind = .IdRef, .quantifier = .required },
8421 .{ .kind = .IdRef, .quantifier = .required },
8939 .operands = &.{
8940 .{ .kind = .id_result_type, .quantifier = .required },
8941 .{ .kind = .id_result, .quantifier = .required },
8942 .{ .kind = .id_scope, .quantifier = .required },
8943 .{ .kind = .id_ref, .quantifier = .required },
8944 .{ .kind = .id_ref, .quantifier = .required },
84228945 },
84238946 },
84248947 .{
84258948 .name = "OpGroupNonUniformShuffleDown",
84268949 .opcode = 348,
8427 .operands = &[_]Operand{
8428 .{ .kind = .IdResultType, .quantifier = .required },
8429 .{ .kind = .IdResult, .quantifier = .required },
8430 .{ .kind = .IdScope, .quantifier = .required },
8431 .{ .kind = .IdRef, .quantifier = .required },
8432 .{ .kind = .IdRef, .quantifier = .required },
8950 .operands = &.{
8951 .{ .kind = .id_result_type, .quantifier = .required },
8952 .{ .kind = .id_result, .quantifier = .required },
8953 .{ .kind = .id_scope, .quantifier = .required },
8954 .{ .kind = .id_ref, .quantifier = .required },
8955 .{ .kind = .id_ref, .quantifier = .required },
84338956 },
84348957 },
84358958 .{
84368959 .name = "OpGroupNonUniformIAdd",
84378960 .opcode = 349,
8438 .operands = &[_]Operand{
8439 .{ .kind = .IdResultType, .quantifier = .required },
8440 .{ .kind = .IdResult, .quantifier = .required },
8441 .{ .kind = .IdScope, .quantifier = .required },
8442 .{ .kind = .GroupOperation, .quantifier = .required },
8443 .{ .kind = .IdRef, .quantifier = .required },
8444 .{ .kind = .IdRef, .quantifier = .optional },
8961 .operands = &.{
8962 .{ .kind = .id_result_type, .quantifier = .required },
8963 .{ .kind = .id_result, .quantifier = .required },
8964 .{ .kind = .id_scope, .quantifier = .required },
8965 .{ .kind = .group_operation, .quantifier = .required },
8966 .{ .kind = .id_ref, .quantifier = .required },
8967 .{ .kind = .id_ref, .quantifier = .optional },
84458968 },
84468969 },
84478970 .{
84488971 .name = "OpGroupNonUniformFAdd",
84498972 .opcode = 350,
8450 .operands = &[_]Operand{
8451 .{ .kind = .IdResultType, .quantifier = .required },
8452 .{ .kind = .IdResult, .quantifier = .required },
8453 .{ .kind = .IdScope, .quantifier = .required },
8454 .{ .kind = .GroupOperation, .quantifier = .required },
8455 .{ .kind = .IdRef, .quantifier = .required },
8456 .{ .kind = .IdRef, .quantifier = .optional },
8973 .operands = &.{
8974 .{ .kind = .id_result_type, .quantifier = .required },
8975 .{ .kind = .id_result, .quantifier = .required },
8976 .{ .kind = .id_scope, .quantifier = .required },
8977 .{ .kind = .group_operation, .quantifier = .required },
8978 .{ .kind = .id_ref, .quantifier = .required },
8979 .{ .kind = .id_ref, .quantifier = .optional },
84578980 },
84588981 },
84598982 .{
84608983 .name = "OpGroupNonUniformIMul",
84618984 .opcode = 351,
8462 .operands = &[_]Operand{
8463 .{ .kind = .IdResultType, .quantifier = .required },
8464 .{ .kind = .IdResult, .quantifier = .required },
8465 .{ .kind = .IdScope, .quantifier = .required },
8466 .{ .kind = .GroupOperation, .quantifier = .required },
8467 .{ .kind = .IdRef, .quantifier = .required },
8468 .{ .kind = .IdRef, .quantifier = .optional },
8985 .operands = &.{
8986 .{ .kind = .id_result_type, .quantifier = .required },
8987 .{ .kind = .id_result, .quantifier = .required },
8988 .{ .kind = .id_scope, .quantifier = .required },
8989 .{ .kind = .group_operation, .quantifier = .required },
8990 .{ .kind = .id_ref, .quantifier = .required },
8991 .{ .kind = .id_ref, .quantifier = .optional },
84698992 },
84708993 },
84718994 .{
84728995 .name = "OpGroupNonUniformFMul",
84738996 .opcode = 352,
8474 .operands = &[_]Operand{
8475 .{ .kind = .IdResultType, .quantifier = .required },
8476 .{ .kind = .IdResult, .quantifier = .required },
8477 .{ .kind = .IdScope, .quantifier = .required },
8478 .{ .kind = .GroupOperation, .quantifier = .required },
8479 .{ .kind = .IdRef, .quantifier = .required },
8480 .{ .kind = .IdRef, .quantifier = .optional },
8997 .operands = &.{
8998 .{ .kind = .id_result_type, .quantifier = .required },
8999 .{ .kind = .id_result, .quantifier = .required },
9000 .{ .kind = .id_scope, .quantifier = .required },
9001 .{ .kind = .group_operation, .quantifier = .required },
9002 .{ .kind = .id_ref, .quantifier = .required },
9003 .{ .kind = .id_ref, .quantifier = .optional },
84819004 },
84829005 },
84839006 .{
84849007 .name = "OpGroupNonUniformSMin",
84859008 .opcode = 353,
8486 .operands = &[_]Operand{
8487 .{ .kind = .IdResultType, .quantifier = .required },
8488 .{ .kind = .IdResult, .quantifier = .required },
8489 .{ .kind = .IdScope, .quantifier = .required },
8490 .{ .kind = .GroupOperation, .quantifier = .required },
8491 .{ .kind = .IdRef, .quantifier = .required },
8492 .{ .kind = .IdRef, .quantifier = .optional },
9009 .operands = &.{
9010 .{ .kind = .id_result_type, .quantifier = .required },
9011 .{ .kind = .id_result, .quantifier = .required },
9012 .{ .kind = .id_scope, .quantifier = .required },
9013 .{ .kind = .group_operation, .quantifier = .required },
9014 .{ .kind = .id_ref, .quantifier = .required },
9015 .{ .kind = .id_ref, .quantifier = .optional },
84939016 },
84949017 },
84959018 .{
84969019 .name = "OpGroupNonUniformUMin",
84979020 .opcode = 354,
8498 .operands = &[_]Operand{
8499 .{ .kind = .IdResultType, .quantifier = .required },
8500 .{ .kind = .IdResult, .quantifier = .required },
8501 .{ .kind = .IdScope, .quantifier = .required },
8502 .{ .kind = .GroupOperation, .quantifier = .required },
8503 .{ .kind = .IdRef, .quantifier = .required },
8504 .{ .kind = .IdRef, .quantifier = .optional },
9021 .operands = &.{
9022 .{ .kind = .id_result_type, .quantifier = .required },
9023 .{ .kind = .id_result, .quantifier = .required },
9024 .{ .kind = .id_scope, .quantifier = .required },
9025 .{ .kind = .group_operation, .quantifier = .required },
9026 .{ .kind = .id_ref, .quantifier = .required },
9027 .{ .kind = .id_ref, .quantifier = .optional },
85059028 },
85069029 },
85079030 .{
85089031 .name = "OpGroupNonUniformFMin",
85099032 .opcode = 355,
8510 .operands = &[_]Operand{
8511 .{ .kind = .IdResultType, .quantifier = .required },
8512 .{ .kind = .IdResult, .quantifier = .required },
8513 .{ .kind = .IdScope, .quantifier = .required },
8514 .{ .kind = .GroupOperation, .quantifier = .required },
8515 .{ .kind = .IdRef, .quantifier = .required },
8516 .{ .kind = .IdRef, .quantifier = .optional },
9033 .operands = &.{
9034 .{ .kind = .id_result_type, .quantifier = .required },
9035 .{ .kind = .id_result, .quantifier = .required },
9036 .{ .kind = .id_scope, .quantifier = .required },
9037 .{ .kind = .group_operation, .quantifier = .required },
9038 .{ .kind = .id_ref, .quantifier = .required },
9039 .{ .kind = .id_ref, .quantifier = .optional },
85179040 },
85189041 },
85199042 .{
85209043 .name = "OpGroupNonUniformSMax",
85219044 .opcode = 356,
8522 .operands = &[_]Operand{
8523 .{ .kind = .IdResultType, .quantifier = .required },
8524 .{ .kind = .IdResult, .quantifier = .required },
8525 .{ .kind = .IdScope, .quantifier = .required },
8526 .{ .kind = .GroupOperation, .quantifier = .required },
8527 .{ .kind = .IdRef, .quantifier = .required },
8528 .{ .kind = .IdRef, .quantifier = .optional },
9045 .operands = &.{
9046 .{ .kind = .id_result_type, .quantifier = .required },
9047 .{ .kind = .id_result, .quantifier = .required },
9048 .{ .kind = .id_scope, .quantifier = .required },
9049 .{ .kind = .group_operation, .quantifier = .required },
9050 .{ .kind = .id_ref, .quantifier = .required },
9051 .{ .kind = .id_ref, .quantifier = .optional },
85299052 },
85309053 },
85319054 .{
85329055 .name = "OpGroupNonUniformUMax",
85339056 .opcode = 357,
8534 .operands = &[_]Operand{
8535 .{ .kind = .IdResultType, .quantifier = .required },
8536 .{ .kind = .IdResult, .quantifier = .required },
8537 .{ .kind = .IdScope, .quantifier = .required },
8538 .{ .kind = .GroupOperation, .quantifier = .required },
8539 .{ .kind = .IdRef, .quantifier = .required },
8540 .{ .kind = .IdRef, .quantifier = .optional },
9057 .operands = &.{
9058 .{ .kind = .id_result_type, .quantifier = .required },
9059 .{ .kind = .id_result, .quantifier = .required },
9060 .{ .kind = .id_scope, .quantifier = .required },
9061 .{ .kind = .group_operation, .quantifier = .required },
9062 .{ .kind = .id_ref, .quantifier = .required },
9063 .{ .kind = .id_ref, .quantifier = .optional },
85419064 },
85429065 },
85439066 .{
85449067 .name = "OpGroupNonUniformFMax",
85459068 .opcode = 358,
8546 .operands = &[_]Operand{
8547 .{ .kind = .IdResultType, .quantifier = .required },
8548 .{ .kind = .IdResult, .quantifier = .required },
8549 .{ .kind = .IdScope, .quantifier = .required },
8550 .{ .kind = .GroupOperation, .quantifier = .required },
8551 .{ .kind = .IdRef, .quantifier = .required },
8552 .{ .kind = .IdRef, .quantifier = .optional },
9069 .operands = &.{
9070 .{ .kind = .id_result_type, .quantifier = .required },
9071 .{ .kind = .id_result, .quantifier = .required },
9072 .{ .kind = .id_scope, .quantifier = .required },
9073 .{ .kind = .group_operation, .quantifier = .required },
9074 .{ .kind = .id_ref, .quantifier = .required },
9075 .{ .kind = .id_ref, .quantifier = .optional },
85539076 },
85549077 },
85559078 .{
85569079 .name = "OpGroupNonUniformBitwiseAnd",
85579080 .opcode = 359,
8558 .operands = &[_]Operand{
8559 .{ .kind = .IdResultType, .quantifier = .required },
8560 .{ .kind = .IdResult, .quantifier = .required },
8561 .{ .kind = .IdScope, .quantifier = .required },
8562 .{ .kind = .GroupOperation, .quantifier = .required },
8563 .{ .kind = .IdRef, .quantifier = .required },
8564 .{ .kind = .IdRef, .quantifier = .optional },
9081 .operands = &.{
9082 .{ .kind = .id_result_type, .quantifier = .required },
9083 .{ .kind = .id_result, .quantifier = .required },
9084 .{ .kind = .id_scope, .quantifier = .required },
9085 .{ .kind = .group_operation, .quantifier = .required },
9086 .{ .kind = .id_ref, .quantifier = .required },
9087 .{ .kind = .id_ref, .quantifier = .optional },
85659088 },
85669089 },
85679090 .{
85689091 .name = "OpGroupNonUniformBitwiseOr",
85699092 .opcode = 360,
8570 .operands = &[_]Operand{
8571 .{ .kind = .IdResultType, .quantifier = .required },
8572 .{ .kind = .IdResult, .quantifier = .required },
8573 .{ .kind = .IdScope, .quantifier = .required },
8574 .{ .kind = .GroupOperation, .quantifier = .required },
8575 .{ .kind = .IdRef, .quantifier = .required },
8576 .{ .kind = .IdRef, .quantifier = .optional },
9093 .operands = &.{
9094 .{ .kind = .id_result_type, .quantifier = .required },
9095 .{ .kind = .id_result, .quantifier = .required },
9096 .{ .kind = .id_scope, .quantifier = .required },
9097 .{ .kind = .group_operation, .quantifier = .required },
9098 .{ .kind = .id_ref, .quantifier = .required },
9099 .{ .kind = .id_ref, .quantifier = .optional },
85779100 },
85789101 },
85799102 .{
85809103 .name = "OpGroupNonUniformBitwiseXor",
85819104 .opcode = 361,
8582 .operands = &[_]Operand{
8583 .{ .kind = .IdResultType, .quantifier = .required },
8584 .{ .kind = .IdResult, .quantifier = .required },
8585 .{ .kind = .IdScope, .quantifier = .required },
8586 .{ .kind = .GroupOperation, .quantifier = .required },
8587 .{ .kind = .IdRef, .quantifier = .required },
8588 .{ .kind = .IdRef, .quantifier = .optional },
9105 .operands = &.{
9106 .{ .kind = .id_result_type, .quantifier = .required },
9107 .{ .kind = .id_result, .quantifier = .required },
9108 .{ .kind = .id_scope, .quantifier = .required },
9109 .{ .kind = .group_operation, .quantifier = .required },
9110 .{ .kind = .id_ref, .quantifier = .required },
9111 .{ .kind = .id_ref, .quantifier = .optional },
85899112 },
85909113 },
85919114 .{
85929115 .name = "OpGroupNonUniformLogicalAnd",
85939116 .opcode = 362,
8594 .operands = &[_]Operand{
8595 .{ .kind = .IdResultType, .quantifier = .required },
8596 .{ .kind = .IdResult, .quantifier = .required },
8597 .{ .kind = .IdScope, .quantifier = .required },
8598 .{ .kind = .GroupOperation, .quantifier = .required },
8599 .{ .kind = .IdRef, .quantifier = .required },
8600 .{ .kind = .IdRef, .quantifier = .optional },
9117 .operands = &.{
9118 .{ .kind = .id_result_type, .quantifier = .required },
9119 .{ .kind = .id_result, .quantifier = .required },
9120 .{ .kind = .id_scope, .quantifier = .required },
9121 .{ .kind = .group_operation, .quantifier = .required },
9122 .{ .kind = .id_ref, .quantifier = .required },
9123 .{ .kind = .id_ref, .quantifier = .optional },
86019124 },
86029125 },
86039126 .{
86049127 .name = "OpGroupNonUniformLogicalOr",
86059128 .opcode = 363,
8606 .operands = &[_]Operand{
8607 .{ .kind = .IdResultType, .quantifier = .required },
8608 .{ .kind = .IdResult, .quantifier = .required },
8609 .{ .kind = .IdScope, .quantifier = .required },
8610 .{ .kind = .GroupOperation, .quantifier = .required },
8611 .{ .kind = .IdRef, .quantifier = .required },
8612 .{ .kind = .IdRef, .quantifier = .optional },
9129 .operands = &.{
9130 .{ .kind = .id_result_type, .quantifier = .required },
9131 .{ .kind = .id_result, .quantifier = .required },
9132 .{ .kind = .id_scope, .quantifier = .required },
9133 .{ .kind = .group_operation, .quantifier = .required },
9134 .{ .kind = .id_ref, .quantifier = .required },
9135 .{ .kind = .id_ref, .quantifier = .optional },
86139136 },
86149137 },
86159138 .{
86169139 .name = "OpGroupNonUniformLogicalXor",
86179140 .opcode = 364,
8618 .operands = &[_]Operand{
8619 .{ .kind = .IdResultType, .quantifier = .required },
8620 .{ .kind = .IdResult, .quantifier = .required },
8621 .{ .kind = .IdScope, .quantifier = .required },
8622 .{ .kind = .GroupOperation, .quantifier = .required },
8623 .{ .kind = .IdRef, .quantifier = .required },
8624 .{ .kind = .IdRef, .quantifier = .optional },
9141 .operands = &.{
9142 .{ .kind = .id_result_type, .quantifier = .required },
9143 .{ .kind = .id_result, .quantifier = .required },
9144 .{ .kind = .id_scope, .quantifier = .required },
9145 .{ .kind = .group_operation, .quantifier = .required },
9146 .{ .kind = .id_ref, .quantifier = .required },
9147 .{ .kind = .id_ref, .quantifier = .optional },
86259148 },
86269149 },
86279150 .{
86289151 .name = "OpGroupNonUniformQuadBroadcast",
86299152 .opcode = 365,
8630 .operands = &[_]Operand{
8631 .{ .kind = .IdResultType, .quantifier = .required },
8632 .{ .kind = .IdResult, .quantifier = .required },
8633 .{ .kind = .IdScope, .quantifier = .required },
8634 .{ .kind = .IdRef, .quantifier = .required },
8635 .{ .kind = .IdRef, .quantifier = .required },
9153 .operands = &.{
9154 .{ .kind = .id_result_type, .quantifier = .required },
9155 .{ .kind = .id_result, .quantifier = .required },
9156 .{ .kind = .id_scope, .quantifier = .required },
9157 .{ .kind = .id_ref, .quantifier = .required },
9158 .{ .kind = .id_ref, .quantifier = .required },
86369159 },
86379160 },
86389161 .{
86399162 .name = "OpGroupNonUniformQuadSwap",
86409163 .opcode = 366,
8641 .operands = &[_]Operand{
8642 .{ .kind = .IdResultType, .quantifier = .required },
8643 .{ .kind = .IdResult, .quantifier = .required },
8644 .{ .kind = .IdScope, .quantifier = .required },
8645 .{ .kind = .IdRef, .quantifier = .required },
8646 .{ .kind = .IdRef, .quantifier = .required },
9164 .operands = &.{
9165 .{ .kind = .id_result_type, .quantifier = .required },
9166 .{ .kind = .id_result, .quantifier = .required },
9167 .{ .kind = .id_scope, .quantifier = .required },
9168 .{ .kind = .id_ref, .quantifier = .required },
9169 .{ .kind = .id_ref, .quantifier = .required },
86479170 },
86489171 },
86499172 .{
86509173 .name = "OpCopyLogical",
86519174 .opcode = 400,
8652 .operands = &[_]Operand{
8653 .{ .kind = .IdResultType, .quantifier = .required },
8654 .{ .kind = .IdResult, .quantifier = .required },
8655 .{ .kind = .IdRef, .quantifier = .required },
9175 .operands = &.{
9176 .{ .kind = .id_result_type, .quantifier = .required },
9177 .{ .kind = .id_result, .quantifier = .required },
9178 .{ .kind = .id_ref, .quantifier = .required },
86569179 },
86579180 },
86589181 .{
86599182 .name = "OpPtrEqual",
86609183 .opcode = 401,
8661 .operands = &[_]Operand{
8662 .{ .kind = .IdResultType, .quantifier = .required },
8663 .{ .kind = .IdResult, .quantifier = .required },
8664 .{ .kind = .IdRef, .quantifier = .required },
8665 .{ .kind = .IdRef, .quantifier = .required },
9184 .operands = &.{
9185 .{ .kind = .id_result_type, .quantifier = .required },
9186 .{ .kind = .id_result, .quantifier = .required },
9187 .{ .kind = .id_ref, .quantifier = .required },
9188 .{ .kind = .id_ref, .quantifier = .required },
86669189 },
86679190 },
86689191 .{
86699192 .name = "OpPtrNotEqual",
86709193 .opcode = 402,
8671 .operands = &[_]Operand{
8672 .{ .kind = .IdResultType, .quantifier = .required },
8673 .{ .kind = .IdResult, .quantifier = .required },
8674 .{ .kind = .IdRef, .quantifier = .required },
8675 .{ .kind = .IdRef, .quantifier = .required },
9194 .operands = &.{
9195 .{ .kind = .id_result_type, .quantifier = .required },
9196 .{ .kind = .id_result, .quantifier = .required },
9197 .{ .kind = .id_ref, .quantifier = .required },
9198 .{ .kind = .id_ref, .quantifier = .required },
86769199 },
86779200 },
86789201 .{
86799202 .name = "OpPtrDiff",
86809203 .opcode = 403,
8681 .operands = &[_]Operand{
8682 .{ .kind = .IdResultType, .quantifier = .required },
8683 .{ .kind = .IdResult, .quantifier = .required },
8684 .{ .kind = .IdRef, .quantifier = .required },
8685 .{ .kind = .IdRef, .quantifier = .required },
9204 .operands = &.{
9205 .{ .kind = .id_result_type, .quantifier = .required },
9206 .{ .kind = .id_result, .quantifier = .required },
9207 .{ .kind = .id_ref, .quantifier = .required },
9208 .{ .kind = .id_ref, .quantifier = .required },
86869209 },
86879210 },
86889211 .{
86899212 .name = "OpColorAttachmentReadEXT",
86909213 .opcode = 4160,
8691 .operands = &[_]Operand{
8692 .{ .kind = .IdResultType, .quantifier = .required },
8693 .{ .kind = .IdResult, .quantifier = .required },
8694 .{ .kind = .IdRef, .quantifier = .required },
8695 .{ .kind = .IdRef, .quantifier = .optional },
9214 .operands = &.{
9215 .{ .kind = .id_result_type, .quantifier = .required },
9216 .{ .kind = .id_result, .quantifier = .required },
9217 .{ .kind = .id_ref, .quantifier = .required },
9218 .{ .kind = .id_ref, .quantifier = .optional },
86969219 },
86979220 },
86989221 .{
86999222 .name = "OpDepthAttachmentReadEXT",
87009223 .opcode = 4161,
8701 .operands = &[_]Operand{
8702 .{ .kind = .IdResultType, .quantifier = .required },
8703 .{ .kind = .IdResult, .quantifier = .required },
8704 .{ .kind = .IdRef, .quantifier = .optional },
9224 .operands = &.{
9225 .{ .kind = .id_result_type, .quantifier = .required },
9226 .{ .kind = .id_result, .quantifier = .required },
9227 .{ .kind = .id_ref, .quantifier = .optional },
87059228 },
87069229 },
87079230 .{
87089231 .name = "OpStencilAttachmentReadEXT",
87099232 .opcode = 4162,
8710 .operands = &[_]Operand{
8711 .{ .kind = .IdResultType, .quantifier = .required },
8712 .{ .kind = .IdResult, .quantifier = .required },
8713 .{ .kind = .IdRef, .quantifier = .optional },
9233 .operands = &.{
9234 .{ .kind = .id_result_type, .quantifier = .required },
9235 .{ .kind = .id_result, .quantifier = .required },
9236 .{ .kind = .id_ref, .quantifier = .optional },
9237 },
9238 },
9239 .{
9240 .name = "OpTypeTensorARM",
9241 .opcode = 4163,
9242 .operands = &.{
9243 .{ .kind = .id_result, .quantifier = .required },
9244 .{ .kind = .id_ref, .quantifier = .required },
9245 .{ .kind = .id_ref, .quantifier = .optional },
9246 .{ .kind = .id_ref, .quantifier = .optional },
9247 },
9248 },
9249 .{
9250 .name = "OpTensorReadARM",
9251 .opcode = 4164,
9252 .operands = &.{
9253 .{ .kind = .id_result_type, .quantifier = .required },
9254 .{ .kind = .id_result, .quantifier = .required },
9255 .{ .kind = .id_ref, .quantifier = .required },
9256 .{ .kind = .id_ref, .quantifier = .required },
9257 .{ .kind = .tensor_operands, .quantifier = .optional },
9258 },
9259 },
9260 .{
9261 .name = "OpTensorWriteARM",
9262 .opcode = 4165,
9263 .operands = &.{
9264 .{ .kind = .id_ref, .quantifier = .required },
9265 .{ .kind = .id_ref, .quantifier = .required },
9266 .{ .kind = .id_ref, .quantifier = .required },
9267 .{ .kind = .tensor_operands, .quantifier = .optional },
9268 },
9269 },
9270 .{
9271 .name = "OpTensorQuerySizeARM",
9272 .opcode = 4166,
9273 .operands = &.{
9274 .{ .kind = .id_result_type, .quantifier = .required },
9275 .{ .kind = .id_result, .quantifier = .required },
9276 .{ .kind = .id_ref, .quantifier = .required },
9277 .{ .kind = .id_ref, .quantifier = .required },
9278 },
9279 },
9280 .{
9281 .name = "OpGraphConstantARM",
9282 .opcode = 4181,
9283 .operands = &.{
9284 .{ .kind = .id_result_type, .quantifier = .required },
9285 .{ .kind = .id_result, .quantifier = .required },
9286 .{ .kind = .literal_integer, .quantifier = .required },
9287 },
9288 },
9289 .{
9290 .name = "OpGraphEntryPointARM",
9291 .opcode = 4182,
9292 .operands = &.{
9293 .{ .kind = .id_ref, .quantifier = .required },
9294 .{ .kind = .literal_string, .quantifier = .required },
9295 .{ .kind = .id_ref, .quantifier = .variadic },
9296 },
9297 },
9298 .{
9299 .name = "OpGraphARM",
9300 .opcode = 4183,
9301 .operands = &.{
9302 .{ .kind = .id_result_type, .quantifier = .required },
9303 .{ .kind = .id_result, .quantifier = .required },
9304 },
9305 },
9306 .{
9307 .name = "OpGraphInputARM",
9308 .opcode = 4184,
9309 .operands = &.{
9310 .{ .kind = .id_result_type, .quantifier = .required },
9311 .{ .kind = .id_result, .quantifier = .required },
9312 .{ .kind = .id_ref, .quantifier = .required },
9313 .{ .kind = .id_ref, .quantifier = .variadic },
9314 },
9315 },
9316 .{
9317 .name = "OpGraphSetOutputARM",
9318 .opcode = 4185,
9319 .operands = &.{
9320 .{ .kind = .id_ref, .quantifier = .required },
9321 .{ .kind = .id_ref, .quantifier = .required },
9322 .{ .kind = .id_ref, .quantifier = .variadic },
9323 },
9324 },
9325 .{
9326 .name = "OpGraphEndARM",
9327 .opcode = 4186,
9328 .operands = &.{},
9329 },
9330 .{
9331 .name = "OpTypeGraphARM",
9332 .opcode = 4190,
9333 .operands = &.{
9334 .{ .kind = .id_result, .quantifier = .required },
9335 .{ .kind = .literal_integer, .quantifier = .required },
9336 .{ .kind = .id_ref, .quantifier = .variadic },
87149337 },
87159338 },
87169339 .{
87179340 .name = "OpTerminateInvocation",
87189341 .opcode = 4416,
8719 .operands = &[_]Operand{},
9342 .operands = &.{},
9343 },
9344 .{
9345 .name = "OpTypeUntypedPointerKHR",
9346 .opcode = 4417,
9347 .operands = &.{
9348 .{ .kind = .id_result, .quantifier = .required },
9349 .{ .kind = .storage_class, .quantifier = .required },
9350 },
9351 },
9352 .{
9353 .name = "OpUntypedVariableKHR",
9354 .opcode = 4418,
9355 .operands = &.{
9356 .{ .kind = .id_result_type, .quantifier = .required },
9357 .{ .kind = .id_result, .quantifier = .required },
9358 .{ .kind = .storage_class, .quantifier = .required },
9359 .{ .kind = .id_ref, .quantifier = .optional },
9360 .{ .kind = .id_ref, .quantifier = .optional },
9361 },
9362 },
9363 .{
9364 .name = "OpUntypedAccessChainKHR",
9365 .opcode = 4419,
9366 .operands = &.{
9367 .{ .kind = .id_result_type, .quantifier = .required },
9368 .{ .kind = .id_result, .quantifier = .required },
9369 .{ .kind = .id_ref, .quantifier = .required },
9370 .{ .kind = .id_ref, .quantifier = .required },
9371 .{ .kind = .id_ref, .quantifier = .variadic },
9372 },
9373 },
9374 .{
9375 .name = "OpUntypedInBoundsAccessChainKHR",
9376 .opcode = 4420,
9377 .operands = &.{
9378 .{ .kind = .id_result_type, .quantifier = .required },
9379 .{ .kind = .id_result, .quantifier = .required },
9380 .{ .kind = .id_ref, .quantifier = .required },
9381 .{ .kind = .id_ref, .quantifier = .required },
9382 .{ .kind = .id_ref, .quantifier = .variadic },
9383 },
87209384 },
87219385 .{
87229386 .name = "OpSubgroupBallotKHR",
87239387 .opcode = 4421,
8724 .operands = &[_]Operand{
8725 .{ .kind = .IdResultType, .quantifier = .required },
8726 .{ .kind = .IdResult, .quantifier = .required },
8727 .{ .kind = .IdRef, .quantifier = .required },
9388 .operands = &.{
9389 .{ .kind = .id_result_type, .quantifier = .required },
9390 .{ .kind = .id_result, .quantifier = .required },
9391 .{ .kind = .id_ref, .quantifier = .required },
87289392 },
87299393 },
87309394 .{
87319395 .name = "OpSubgroupFirstInvocationKHR",
87329396 .opcode = 4422,
8733 .operands = &[_]Operand{
8734 .{ .kind = .IdResultType, .quantifier = .required },
8735 .{ .kind = .IdResult, .quantifier = .required },
8736 .{ .kind = .IdRef, .quantifier = .required },
9397 .operands = &.{
9398 .{ .kind = .id_result_type, .quantifier = .required },
9399 .{ .kind = .id_result, .quantifier = .required },
9400 .{ .kind = .id_ref, .quantifier = .required },
9401 },
9402 },
9403 .{
9404 .name = "OpUntypedPtrAccessChainKHR",
9405 .opcode = 4423,
9406 .operands = &.{
9407 .{ .kind = .id_result_type, .quantifier = .required },
9408 .{ .kind = .id_result, .quantifier = .required },
9409 .{ .kind = .id_ref, .quantifier = .required },
9410 .{ .kind = .id_ref, .quantifier = .required },
9411 .{ .kind = .id_ref, .quantifier = .required },
9412 .{ .kind = .id_ref, .quantifier = .variadic },
9413 },
9414 },
9415 .{
9416 .name = "OpUntypedInBoundsPtrAccessChainKHR",
9417 .opcode = 4424,
9418 .operands = &.{
9419 .{ .kind = .id_result_type, .quantifier = .required },
9420 .{ .kind = .id_result, .quantifier = .required },
9421 .{ .kind = .id_ref, .quantifier = .required },
9422 .{ .kind = .id_ref, .quantifier = .required },
9423 .{ .kind = .id_ref, .quantifier = .required },
9424 .{ .kind = .id_ref, .quantifier = .variadic },
9425 },
9426 },
9427 .{
9428 .name = "OpUntypedArrayLengthKHR",
9429 .opcode = 4425,
9430 .operands = &.{
9431 .{ .kind = .id_result_type, .quantifier = .required },
9432 .{ .kind = .id_result, .quantifier = .required },
9433 .{ .kind = .id_ref, .quantifier = .required },
9434 .{ .kind = .id_ref, .quantifier = .required },
9435 .{ .kind = .literal_integer, .quantifier = .required },
9436 },
9437 },
9438 .{
9439 .name = "OpUntypedPrefetchKHR",
9440 .opcode = 4426,
9441 .operands = &.{
9442 .{ .kind = .id_ref, .quantifier = .required },
9443 .{ .kind = .id_ref, .quantifier = .required },
9444 .{ .kind = .id_ref, .quantifier = .optional },
9445 .{ .kind = .id_ref, .quantifier = .optional },
9446 .{ .kind = .id_ref, .quantifier = .optional },
87379447 },
87389448 },
87399449 .{
87409450 .name = "OpSubgroupAllKHR",
87419451 .opcode = 4428,
8742 .operands = &[_]Operand{
8743 .{ .kind = .IdResultType, .quantifier = .required },
8744 .{ .kind = .IdResult, .quantifier = .required },
8745 .{ .kind = .IdRef, .quantifier = .required },
9452 .operands = &.{
9453 .{ .kind = .id_result_type, .quantifier = .required },
9454 .{ .kind = .id_result, .quantifier = .required },
9455 .{ .kind = .id_ref, .quantifier = .required },
87469456 },
87479457 },
87489458 .{
87499459 .name = "OpSubgroupAnyKHR",
87509460 .opcode = 4429,
8751 .operands = &[_]Operand{
8752 .{ .kind = .IdResultType, .quantifier = .required },
8753 .{ .kind = .IdResult, .quantifier = .required },
8754 .{ .kind = .IdRef, .quantifier = .required },
9461 .operands = &.{
9462 .{ .kind = .id_result_type, .quantifier = .required },
9463 .{ .kind = .id_result, .quantifier = .required },
9464 .{ .kind = .id_ref, .quantifier = .required },
87559465 },
87569466 },
87579467 .{
87589468 .name = "OpSubgroupAllEqualKHR",
87599469 .opcode = 4430,
8760 .operands = &[_]Operand{
8761 .{ .kind = .IdResultType, .quantifier = .required },
8762 .{ .kind = .IdResult, .quantifier = .required },
8763 .{ .kind = .IdRef, .quantifier = .required },
9470 .operands = &.{
9471 .{ .kind = .id_result_type, .quantifier = .required },
9472 .{ .kind = .id_result, .quantifier = .required },
9473 .{ .kind = .id_ref, .quantifier = .required },
87649474 },
87659475 },
87669476 .{
87679477 .name = "OpGroupNonUniformRotateKHR",
87689478 .opcode = 4431,
8769 .operands = &[_]Operand{
8770 .{ .kind = .IdResultType, .quantifier = .required },
8771 .{ .kind = .IdResult, .quantifier = .required },
8772 .{ .kind = .IdScope, .quantifier = .required },
8773 .{ .kind = .IdRef, .quantifier = .required },
8774 .{ .kind = .IdRef, .quantifier = .required },
8775 .{ .kind = .IdRef, .quantifier = .optional },
9479 .operands = &.{
9480 .{ .kind = .id_result_type, .quantifier = .required },
9481 .{ .kind = .id_result, .quantifier = .required },
9482 .{ .kind = .id_scope, .quantifier = .required },
9483 .{ .kind = .id_ref, .quantifier = .required },
9484 .{ .kind = .id_ref, .quantifier = .required },
9485 .{ .kind = .id_ref, .quantifier = .optional },
87769486 },
87779487 },
87789488 .{
87799489 .name = "OpSubgroupReadInvocationKHR",
87809490 .opcode = 4432,
8781 .operands = &[_]Operand{
8782 .{ .kind = .IdResultType, .quantifier = .required },
8783 .{ .kind = .IdResult, .quantifier = .required },
8784 .{ .kind = .IdRef, .quantifier = .required },
8785 .{ .kind = .IdRef, .quantifier = .required },
9491 .operands = &.{
9492 .{ .kind = .id_result_type, .quantifier = .required },
9493 .{ .kind = .id_result, .quantifier = .required },
9494 .{ .kind = .id_ref, .quantifier = .required },
9495 .{ .kind = .id_ref, .quantifier = .required },
9496 },
9497 },
9498 .{
9499 .name = "OpExtInstWithForwardRefsKHR",
9500 .opcode = 4433,
9501 .operands = &.{
9502 .{ .kind = .id_result_type, .quantifier = .required },
9503 .{ .kind = .id_result, .quantifier = .required },
9504 .{ .kind = .id_ref, .quantifier = .required },
9505 .{ .kind = .literal_ext_inst_integer, .quantifier = .required },
9506 .{ .kind = .id_ref, .quantifier = .variadic },
87869507 },
87879508 },
87889509 .{
87899510 .name = "OpTraceRayKHR",
87909511 .opcode = 4445,
8791 .operands = &[_]Operand{
8792 .{ .kind = .IdRef, .quantifier = .required },
8793 .{ .kind = .IdRef, .quantifier = .required },
8794 .{ .kind = .IdRef, .quantifier = .required },
8795 .{ .kind = .IdRef, .quantifier = .required },
8796 .{ .kind = .IdRef, .quantifier = .required },
8797 .{ .kind = .IdRef, .quantifier = .required },
8798 .{ .kind = .IdRef, .quantifier = .required },
8799 .{ .kind = .IdRef, .quantifier = .required },
8800 .{ .kind = .IdRef, .quantifier = .required },
8801 .{ .kind = .IdRef, .quantifier = .required },
8802 .{ .kind = .IdRef, .quantifier = .required },
9512 .operands = &.{
9513 .{ .kind = .id_ref, .quantifier = .required },
9514 .{ .kind = .id_ref, .quantifier = .required },
9515 .{ .kind = .id_ref, .quantifier = .required },
9516 .{ .kind = .id_ref, .quantifier = .required },
9517 .{ .kind = .id_ref, .quantifier = .required },
9518 .{ .kind = .id_ref, .quantifier = .required },
9519 .{ .kind = .id_ref, .quantifier = .required },
9520 .{ .kind = .id_ref, .quantifier = .required },
9521 .{ .kind = .id_ref, .quantifier = .required },
9522 .{ .kind = .id_ref, .quantifier = .required },
9523 .{ .kind = .id_ref, .quantifier = .required },
88039524 },
88049525 },
88059526 .{
88069527 .name = "OpExecuteCallableKHR",
88079528 .opcode = 4446,
8808 .operands = &[_]Operand{
8809 .{ .kind = .IdRef, .quantifier = .required },
8810 .{ .kind = .IdRef, .quantifier = .required },
9529 .operands = &.{
9530 .{ .kind = .id_ref, .quantifier = .required },
9531 .{ .kind = .id_ref, .quantifier = .required },
88119532 },
88129533 },
88139534 .{
88149535 .name = "OpConvertUToAccelerationStructureKHR",
88159536 .opcode = 4447,
8816 .operands = &[_]Operand{
8817 .{ .kind = .IdResultType, .quantifier = .required },
8818 .{ .kind = .IdResult, .quantifier = .required },
8819 .{ .kind = .IdRef, .quantifier = .required },
9537 .operands = &.{
9538 .{ .kind = .id_result_type, .quantifier = .required },
9539 .{ .kind = .id_result, .quantifier = .required },
9540 .{ .kind = .id_ref, .quantifier = .required },
88209541 },
88219542 },
88229543 .{
88239544 .name = "OpIgnoreIntersectionKHR",
88249545 .opcode = 4448,
8825 .operands = &[_]Operand{},
9546 .operands = &.{},
88269547 },
88279548 .{
88289549 .name = "OpTerminateRayKHR",
88299550 .opcode = 4449,
8830 .operands = &[_]Operand{},
9551 .operands = &.{},
88319552 },
88329553 .{
88339554 .name = "OpSDot",
88349555 .opcode = 4450,
8835 .operands = &[_]Operand{
8836 .{ .kind = .IdResultType, .quantifier = .required },
8837 .{ .kind = .IdResult, .quantifier = .required },
8838 .{ .kind = .IdRef, .quantifier = .required },
8839 .{ .kind = .IdRef, .quantifier = .required },
8840 .{ .kind = .PackedVectorFormat, .quantifier = .optional },
8841 },
8842 },
8843 .{
8844 .name = "OpSDotKHR",
8845 .opcode = 4450,
8846 .operands = &[_]Operand{
8847 .{ .kind = .IdResultType, .quantifier = .required },
8848 .{ .kind = .IdResult, .quantifier = .required },
8849 .{ .kind = .IdRef, .quantifier = .required },
8850 .{ .kind = .IdRef, .quantifier = .required },
8851 .{ .kind = .PackedVectorFormat, .quantifier = .optional },
9556 .operands = &.{
9557 .{ .kind = .id_result_type, .quantifier = .required },
9558 .{ .kind = .id_result, .quantifier = .required },
9559 .{ .kind = .id_ref, .quantifier = .required },
9560 .{ .kind = .id_ref, .quantifier = .required },
9561 .{ .kind = .packed_vector_format, .quantifier = .optional },
88529562 },
88539563 },
88549564 .{
88559565 .name = "OpUDot",
88569566 .opcode = 4451,
8857 .operands = &[_]Operand{
8858 .{ .kind = .IdResultType, .quantifier = .required },
8859 .{ .kind = .IdResult, .quantifier = .required },
8860 .{ .kind = .IdRef, .quantifier = .required },
8861 .{ .kind = .IdRef, .quantifier = .required },
8862 .{ .kind = .PackedVectorFormat, .quantifier = .optional },
8863 },
8864 },
8865 .{
8866 .name = "OpUDotKHR",
8867 .opcode = 4451,
8868 .operands = &[_]Operand{
8869 .{ .kind = .IdResultType, .quantifier = .required },
8870 .{ .kind = .IdResult, .quantifier = .required },
8871 .{ .kind = .IdRef, .quantifier = .required },
8872 .{ .kind = .IdRef, .quantifier = .required },
8873 .{ .kind = .PackedVectorFormat, .quantifier = .optional },
9567 .operands = &.{
9568 .{ .kind = .id_result_type, .quantifier = .required },
9569 .{ .kind = .id_result, .quantifier = .required },
9570 .{ .kind = .id_ref, .quantifier = .required },
9571 .{ .kind = .id_ref, .quantifier = .required },
9572 .{ .kind = .packed_vector_format, .quantifier = .optional },
88749573 },
88759574 },
88769575 .{
88779576 .name = "OpSUDot",
88789577 .opcode = 4452,
8879 .operands = &[_]Operand{
8880 .{ .kind = .IdResultType, .quantifier = .required },
8881 .{ .kind = .IdResult, .quantifier = .required },
8882 .{ .kind = .IdRef, .quantifier = .required },
8883 .{ .kind = .IdRef, .quantifier = .required },
8884 .{ .kind = .PackedVectorFormat, .quantifier = .optional },
8885 },
8886 },
8887 .{
8888 .name = "OpSUDotKHR",
8889 .opcode = 4452,
8890 .operands = &[_]Operand{
8891 .{ .kind = .IdResultType, .quantifier = .required },
8892 .{ .kind = .IdResult, .quantifier = .required },
8893 .{ .kind = .IdRef, .quantifier = .required },
8894 .{ .kind = .IdRef, .quantifier = .required },
8895 .{ .kind = .PackedVectorFormat, .quantifier = .optional },
9578 .operands = &.{
9579 .{ .kind = .id_result_type, .quantifier = .required },
9580 .{ .kind = .id_result, .quantifier = .required },
9581 .{ .kind = .id_ref, .quantifier = .required },
9582 .{ .kind = .id_ref, .quantifier = .required },
9583 .{ .kind = .packed_vector_format, .quantifier = .optional },
88969584 },
88979585 },
88989586 .{
88999587 .name = "OpSDotAccSat",
89009588 .opcode = 4453,
8901 .operands = &[_]Operand{
8902 .{ .kind = .IdResultType, .quantifier = .required },
8903 .{ .kind = .IdResult, .quantifier = .required },
8904 .{ .kind = .IdRef, .quantifier = .required },
8905 .{ .kind = .IdRef, .quantifier = .required },
8906 .{ .kind = .IdRef, .quantifier = .required },
8907 .{ .kind = .PackedVectorFormat, .quantifier = .optional },
8908 },
8909 },
8910 .{
8911 .name = "OpSDotAccSatKHR",
8912 .opcode = 4453,
8913 .operands = &[_]Operand{
8914 .{ .kind = .IdResultType, .quantifier = .required },
8915 .{ .kind = .IdResult, .quantifier = .required },
8916 .{ .kind = .IdRef, .quantifier = .required },
8917 .{ .kind = .IdRef, .quantifier = .required },
8918 .{ .kind = .IdRef, .quantifier = .required },
8919 .{ .kind = .PackedVectorFormat, .quantifier = .optional },
9589 .operands = &.{
9590 .{ .kind = .id_result_type, .quantifier = .required },
9591 .{ .kind = .id_result, .quantifier = .required },
9592 .{ .kind = .id_ref, .quantifier = .required },
9593 .{ .kind = .id_ref, .quantifier = .required },
9594 .{ .kind = .id_ref, .quantifier = .required },
9595 .{ .kind = .packed_vector_format, .quantifier = .optional },
89209596 },
89219597 },
89229598 .{
89239599 .name = "OpUDotAccSat",
89249600 .opcode = 4454,
8925 .operands = &[_]Operand{
8926 .{ .kind = .IdResultType, .quantifier = .required },
8927 .{ .kind = .IdResult, .quantifier = .required },
8928 .{ .kind = .IdRef, .quantifier = .required },
8929 .{ .kind = .IdRef, .quantifier = .required },
8930 .{ .kind = .IdRef, .quantifier = .required },
8931 .{ .kind = .PackedVectorFormat, .quantifier = .optional },
8932 },
8933 },
8934 .{
8935 .name = "OpUDotAccSatKHR",
8936 .opcode = 4454,
8937 .operands = &[_]Operand{
8938 .{ .kind = .IdResultType, .quantifier = .required },
8939 .{ .kind = .IdResult, .quantifier = .required },
8940 .{ .kind = .IdRef, .quantifier = .required },
8941 .{ .kind = .IdRef, .quantifier = .required },
8942 .{ .kind = .IdRef, .quantifier = .required },
8943 .{ .kind = .PackedVectorFormat, .quantifier = .optional },
9601 .operands = &.{
9602 .{ .kind = .id_result_type, .quantifier = .required },
9603 .{ .kind = .id_result, .quantifier = .required },
9604 .{ .kind = .id_ref, .quantifier = .required },
9605 .{ .kind = .id_ref, .quantifier = .required },
9606 .{ .kind = .id_ref, .quantifier = .required },
9607 .{ .kind = .packed_vector_format, .quantifier = .optional },
89449608 },
89459609 },
89469610 .{
89479611 .name = "OpSUDotAccSat",
89489612 .opcode = 4455,
8949 .operands = &[_]Operand{
8950 .{ .kind = .IdResultType, .quantifier = .required },
8951 .{ .kind = .IdResult, .quantifier = .required },
8952 .{ .kind = .IdRef, .quantifier = .required },
8953 .{ .kind = .IdRef, .quantifier = .required },
8954 .{ .kind = .IdRef, .quantifier = .required },
8955 .{ .kind = .PackedVectorFormat, .quantifier = .optional },
8956 },
8957 },
8958 .{
8959 .name = "OpSUDotAccSatKHR",
8960 .opcode = 4455,
8961 .operands = &[_]Operand{
8962 .{ .kind = .IdResultType, .quantifier = .required },
8963 .{ .kind = .IdResult, .quantifier = .required },
8964 .{ .kind = .IdRef, .quantifier = .required },
8965 .{ .kind = .IdRef, .quantifier = .required },
8966 .{ .kind = .IdRef, .quantifier = .required },
8967 .{ .kind = .PackedVectorFormat, .quantifier = .optional },
9613 .operands = &.{
9614 .{ .kind = .id_result_type, .quantifier = .required },
9615 .{ .kind = .id_result, .quantifier = .required },
9616 .{ .kind = .id_ref, .quantifier = .required },
9617 .{ .kind = .id_ref, .quantifier = .required },
9618 .{ .kind = .id_ref, .quantifier = .required },
9619 .{ .kind = .packed_vector_format, .quantifier = .optional },
89689620 },
89699621 },
89709622 .{
89719623 .name = "OpTypeCooperativeMatrixKHR",
89729624 .opcode = 4456,
8973 .operands = &[_]Operand{
8974 .{ .kind = .IdResult, .quantifier = .required },
8975 .{ .kind = .IdRef, .quantifier = .required },
8976 .{ .kind = .IdScope, .quantifier = .required },
8977 .{ .kind = .IdRef, .quantifier = .required },
8978 .{ .kind = .IdRef, .quantifier = .required },
8979 .{ .kind = .IdRef, .quantifier = .required },
9625 .operands = &.{
9626 .{ .kind = .id_result, .quantifier = .required },
9627 .{ .kind = .id_ref, .quantifier = .required },
9628 .{ .kind = .id_scope, .quantifier = .required },
9629 .{ .kind = .id_ref, .quantifier = .required },
9630 .{ .kind = .id_ref, .quantifier = .required },
9631 .{ .kind = .id_ref, .quantifier = .required },
89809632 },
89819633 },
89829634 .{
89839635 .name = "OpCooperativeMatrixLoadKHR",
89849636 .opcode = 4457,
8985 .operands = &[_]Operand{
8986 .{ .kind = .IdResultType, .quantifier = .required },
8987 .{ .kind = .IdResult, .quantifier = .required },
8988 .{ .kind = .IdRef, .quantifier = .required },
8989 .{ .kind = .IdRef, .quantifier = .required },
8990 .{ .kind = .IdRef, .quantifier = .optional },
8991 .{ .kind = .MemoryAccess, .quantifier = .optional },
9637 .operands = &.{
9638 .{ .kind = .id_result_type, .quantifier = .required },
9639 .{ .kind = .id_result, .quantifier = .required },
9640 .{ .kind = .id_ref, .quantifier = .required },
9641 .{ .kind = .id_ref, .quantifier = .required },
9642 .{ .kind = .id_ref, .quantifier = .optional },
9643 .{ .kind = .memory_access, .quantifier = .optional },
89929644 },
89939645 },
89949646 .{
89959647 .name = "OpCooperativeMatrixStoreKHR",
89969648 .opcode = 4458,
8997 .operands = &[_]Operand{
8998 .{ .kind = .IdRef, .quantifier = .required },
8999 .{ .kind = .IdRef, .quantifier = .required },
9000 .{ .kind = .IdRef, .quantifier = .required },
9001 .{ .kind = .IdRef, .quantifier = .optional },
9002 .{ .kind = .MemoryAccess, .quantifier = .optional },
9649 .operands = &.{
9650 .{ .kind = .id_ref, .quantifier = .required },
9651 .{ .kind = .id_ref, .quantifier = .required },
9652 .{ .kind = .id_ref, .quantifier = .required },
9653 .{ .kind = .id_ref, .quantifier = .optional },
9654 .{ .kind = .memory_access, .quantifier = .optional },
90039655 },
90049656 },
90059657 .{
90069658 .name = "OpCooperativeMatrixMulAddKHR",
90079659 .opcode = 4459,
9008 .operands = &[_]Operand{
9009 .{ .kind = .IdResultType, .quantifier = .required },
9010 .{ .kind = .IdResult, .quantifier = .required },
9011 .{ .kind = .IdRef, .quantifier = .required },
9012 .{ .kind = .IdRef, .quantifier = .required },
9013 .{ .kind = .IdRef, .quantifier = .required },
9014 .{ .kind = .CooperativeMatrixOperands, .quantifier = .optional },
9660 .operands = &.{
9661 .{ .kind = .id_result_type, .quantifier = .required },
9662 .{ .kind = .id_result, .quantifier = .required },
9663 .{ .kind = .id_ref, .quantifier = .required },
9664 .{ .kind = .id_ref, .quantifier = .required },
9665 .{ .kind = .id_ref, .quantifier = .required },
9666 .{ .kind = .cooperative_matrix_operands, .quantifier = .optional },
90159667 },
90169668 },
90179669 .{
90189670 .name = "OpCooperativeMatrixLengthKHR",
90199671 .opcode = 4460,
9020 .operands = &[_]Operand{
9021 .{ .kind = .IdResultType, .quantifier = .required },
9022 .{ .kind = .IdResult, .quantifier = .required },
9023 .{ .kind = .IdRef, .quantifier = .required },
9672 .operands = &.{
9673 .{ .kind = .id_result_type, .quantifier = .required },
9674 .{ .kind = .id_result, .quantifier = .required },
9675 .{ .kind = .id_ref, .quantifier = .required },
9676 },
9677 },
9678 .{
9679 .name = "OpConstantCompositeReplicateEXT",
9680 .opcode = 4461,
9681 .operands = &.{
9682 .{ .kind = .id_result_type, .quantifier = .required },
9683 .{ .kind = .id_result, .quantifier = .required },
9684 .{ .kind = .id_ref, .quantifier = .required },
9685 },
9686 },
9687 .{
9688 .name = "OpSpecConstantCompositeReplicateEXT",
9689 .opcode = 4462,
9690 .operands = &.{
9691 .{ .kind = .id_result_type, .quantifier = .required },
9692 .{ .kind = .id_result, .quantifier = .required },
9693 .{ .kind = .id_ref, .quantifier = .required },
9694 },
9695 },
9696 .{
9697 .name = "OpCompositeConstructReplicateEXT",
9698 .opcode = 4463,
9699 .operands = &.{
9700 .{ .kind = .id_result_type, .quantifier = .required },
9701 .{ .kind = .id_result, .quantifier = .required },
9702 .{ .kind = .id_ref, .quantifier = .required },
90249703 },
90259704 },
90269705 .{
90279706 .name = "OpTypeRayQueryKHR",
90289707 .opcode = 4472,
9029 .operands = &[_]Operand{
9030 .{ .kind = .IdResult, .quantifier = .required },
9708 .operands = &.{
9709 .{ .kind = .id_result, .quantifier = .required },
90319710 },
90329711 },
90339712 .{
90349713 .name = "OpRayQueryInitializeKHR",
90359714 .opcode = 4473,
9036 .operands = &[_]Operand{
9037 .{ .kind = .IdRef, .quantifier = .required },
9038 .{ .kind = .IdRef, .quantifier = .required },
9039 .{ .kind = .IdRef, .quantifier = .required },
9040 .{ .kind = .IdRef, .quantifier = .required },
9041 .{ .kind = .IdRef, .quantifier = .required },
9042 .{ .kind = .IdRef, .quantifier = .required },
9043 .{ .kind = .IdRef, .quantifier = .required },
9044 .{ .kind = .IdRef, .quantifier = .required },
9715 .operands = &.{
9716 .{ .kind = .id_ref, .quantifier = .required },
9717 .{ .kind = .id_ref, .quantifier = .required },
9718 .{ .kind = .id_ref, .quantifier = .required },
9719 .{ .kind = .id_ref, .quantifier = .required },
9720 .{ .kind = .id_ref, .quantifier = .required },
9721 .{ .kind = .id_ref, .quantifier = .required },
9722 .{ .kind = .id_ref, .quantifier = .required },
9723 .{ .kind = .id_ref, .quantifier = .required },
90459724 },
90469725 },
90479726 .{
90489727 .name = "OpRayQueryTerminateKHR",
90499728 .opcode = 4474,
9050 .operands = &[_]Operand{
9051 .{ .kind = .IdRef, .quantifier = .required },
9729 .operands = &.{
9730 .{ .kind = .id_ref, .quantifier = .required },
90529731 },
90539732 },
90549733 .{
90559734 .name = "OpRayQueryGenerateIntersectionKHR",
90569735 .opcode = 4475,
9057 .operands = &[_]Operand{
9058 .{ .kind = .IdRef, .quantifier = .required },
9059 .{ .kind = .IdRef, .quantifier = .required },
9736 .operands = &.{
9737 .{ .kind = .id_ref, .quantifier = .required },
9738 .{ .kind = .id_ref, .quantifier = .required },
90609739 },
90619740 },
90629741 .{
90639742 .name = "OpRayQueryConfirmIntersectionKHR",
90649743 .opcode = 4476,
9065 .operands = &[_]Operand{
9066 .{ .kind = .IdRef, .quantifier = .required },
9744 .operands = &.{
9745 .{ .kind = .id_ref, .quantifier = .required },
90679746 },
90689747 },
90699748 .{
90709749 .name = "OpRayQueryProceedKHR",
90719750 .opcode = 4477,
9072 .operands = &[_]Operand{
9073 .{ .kind = .IdResultType, .quantifier = .required },
9074 .{ .kind = .IdResult, .quantifier = .required },
9075 .{ .kind = .IdRef, .quantifier = .required },
9751 .operands = &.{
9752 .{ .kind = .id_result_type, .quantifier = .required },
9753 .{ .kind = .id_result, .quantifier = .required },
9754 .{ .kind = .id_ref, .quantifier = .required },
90769755 },
90779756 },
90789757 .{
90799758 .name = "OpRayQueryGetIntersectionTypeKHR",
90809759 .opcode = 4479,
9081 .operands = &[_]Operand{
9082 .{ .kind = .IdResultType, .quantifier = .required },
9083 .{ .kind = .IdResult, .quantifier = .required },
9084 .{ .kind = .IdRef, .quantifier = .required },
9085 .{ .kind = .IdRef, .quantifier = .required },
9760 .operands = &.{
9761 .{ .kind = .id_result_type, .quantifier = .required },
9762 .{ .kind = .id_result, .quantifier = .required },
9763 .{ .kind = .id_ref, .quantifier = .required },
9764 .{ .kind = .id_ref, .quantifier = .required },
90869765 },
90879766 },
90889767 .{
90899768 .name = "OpImageSampleWeightedQCOM",
90909769 .opcode = 4480,
9091 .operands = &[_]Operand{
9092 .{ .kind = .IdResultType, .quantifier = .required },
9093 .{ .kind = .IdResult, .quantifier = .required },
9094 .{ .kind = .IdRef, .quantifier = .required },
9095 .{ .kind = .IdRef, .quantifier = .required },
9096 .{ .kind = .IdRef, .quantifier = .required },
9770 .operands = &.{
9771 .{ .kind = .id_result_type, .quantifier = .required },
9772 .{ .kind = .id_result, .quantifier = .required },
9773 .{ .kind = .id_ref, .quantifier = .required },
9774 .{ .kind = .id_ref, .quantifier = .required },
9775 .{ .kind = .id_ref, .quantifier = .required },
90979776 },
90989777 },
90999778 .{
91009779 .name = "OpImageBoxFilterQCOM",
91019780 .opcode = 4481,
9102 .operands = &[_]Operand{
9103 .{ .kind = .IdResultType, .quantifier = .required },
9104 .{ .kind = .IdResult, .quantifier = .required },
9105 .{ .kind = .IdRef, .quantifier = .required },
9106 .{ .kind = .IdRef, .quantifier = .required },
9107 .{ .kind = .IdRef, .quantifier = .required },
9781 .operands = &.{
9782 .{ .kind = .id_result_type, .quantifier = .required },
9783 .{ .kind = .id_result, .quantifier = .required },
9784 .{ .kind = .id_ref, .quantifier = .required },
9785 .{ .kind = .id_ref, .quantifier = .required },
9786 .{ .kind = .id_ref, .quantifier = .required },
91089787 },
91099788 },
91109789 .{
91119790 .name = "OpImageBlockMatchSSDQCOM",
91129791 .opcode = 4482,
9113 .operands = &[_]Operand{
9114 .{ .kind = .IdResultType, .quantifier = .required },
9115 .{ .kind = .IdResult, .quantifier = .required },
9116 .{ .kind = .IdRef, .quantifier = .required },
9117 .{ .kind = .IdRef, .quantifier = .required },
9118 .{ .kind = .IdRef, .quantifier = .required },
9119 .{ .kind = .IdRef, .quantifier = .required },
9120 .{ .kind = .IdRef, .quantifier = .required },
9792 .operands = &.{
9793 .{ .kind = .id_result_type, .quantifier = .required },
9794 .{ .kind = .id_result, .quantifier = .required },
9795 .{ .kind = .id_ref, .quantifier = .required },
9796 .{ .kind = .id_ref, .quantifier = .required },
9797 .{ .kind = .id_ref, .quantifier = .required },
9798 .{ .kind = .id_ref, .quantifier = .required },
9799 .{ .kind = .id_ref, .quantifier = .required },
91219800 },
91229801 },
91239802 .{
91249803 .name = "OpImageBlockMatchSADQCOM",
91259804 .opcode = 4483,
9126 .operands = &[_]Operand{
9127 .{ .kind = .IdResultType, .quantifier = .required },
9128 .{ .kind = .IdResult, .quantifier = .required },
9129 .{ .kind = .IdRef, .quantifier = .required },
9130 .{ .kind = .IdRef, .quantifier = .required },
9131 .{ .kind = .IdRef, .quantifier = .required },
9132 .{ .kind = .IdRef, .quantifier = .required },
9133 .{ .kind = .IdRef, .quantifier = .required },
9805 .operands = &.{
9806 .{ .kind = .id_result_type, .quantifier = .required },
9807 .{ .kind = .id_result, .quantifier = .required },
9808 .{ .kind = .id_ref, .quantifier = .required },
9809 .{ .kind = .id_ref, .quantifier = .required },
9810 .{ .kind = .id_ref, .quantifier = .required },
9811 .{ .kind = .id_ref, .quantifier = .required },
9812 .{ .kind = .id_ref, .quantifier = .required },
91349813 },
91359814 },
91369815 .{
91379816 .name = "OpImageBlockMatchWindowSSDQCOM",
91389817 .opcode = 4500,
9139 .operands = &[_]Operand{
9140 .{ .kind = .IdResultType, .quantifier = .required },
9141 .{ .kind = .IdResult, .quantifier = .required },
9142 .{ .kind = .IdRef, .quantifier = .required },
9143 .{ .kind = .IdRef, .quantifier = .required },
9144 .{ .kind = .IdRef, .quantifier = .required },
9145 .{ .kind = .IdRef, .quantifier = .required },
9146 .{ .kind = .IdRef, .quantifier = .required },
9818 .operands = &.{
9819 .{ .kind = .id_result_type, .quantifier = .required },
9820 .{ .kind = .id_result, .quantifier = .required },
9821 .{ .kind = .id_ref, .quantifier = .required },
9822 .{ .kind = .id_ref, .quantifier = .required },
9823 .{ .kind = .id_ref, .quantifier = .required },
9824 .{ .kind = .id_ref, .quantifier = .required },
9825 .{ .kind = .id_ref, .quantifier = .required },
91479826 },
91489827 },
91499828 .{
91509829 .name = "OpImageBlockMatchWindowSADQCOM",
91519830 .opcode = 4501,
9152 .operands = &[_]Operand{
9153 .{ .kind = .IdResultType, .quantifier = .required },
9154 .{ .kind = .IdResult, .quantifier = .required },
9155 .{ .kind = .IdRef, .quantifier = .required },
9156 .{ .kind = .IdRef, .quantifier = .required },
9157 .{ .kind = .IdRef, .quantifier = .required },
9158 .{ .kind = .IdRef, .quantifier = .required },
9159 .{ .kind = .IdRef, .quantifier = .required },
9831 .operands = &.{
9832 .{ .kind = .id_result_type, .quantifier = .required },
9833 .{ .kind = .id_result, .quantifier = .required },
9834 .{ .kind = .id_ref, .quantifier = .required },
9835 .{ .kind = .id_ref, .quantifier = .required },
9836 .{ .kind = .id_ref, .quantifier = .required },
9837 .{ .kind = .id_ref, .quantifier = .required },
9838 .{ .kind = .id_ref, .quantifier = .required },
91609839 },
91619840 },
91629841 .{
91639842 .name = "OpImageBlockMatchGatherSSDQCOM",
91649843 .opcode = 4502,
9165 .operands = &[_]Operand{
9166 .{ .kind = .IdResultType, .quantifier = .required },
9167 .{ .kind = .IdResult, .quantifier = .required },
9168 .{ .kind = .IdRef, .quantifier = .required },
9169 .{ .kind = .IdRef, .quantifier = .required },
9170 .{ .kind = .IdRef, .quantifier = .required },
9171 .{ .kind = .IdRef, .quantifier = .required },
9172 .{ .kind = .IdRef, .quantifier = .required },
9844 .operands = &.{
9845 .{ .kind = .id_result_type, .quantifier = .required },
9846 .{ .kind = .id_result, .quantifier = .required },
9847 .{ .kind = .id_ref, .quantifier = .required },
9848 .{ .kind = .id_ref, .quantifier = .required },
9849 .{ .kind = .id_ref, .quantifier = .required },
9850 .{ .kind = .id_ref, .quantifier = .required },
9851 .{ .kind = .id_ref, .quantifier = .required },
91739852 },
91749853 },
91759854 .{
91769855 .name = "OpImageBlockMatchGatherSADQCOM",
91779856 .opcode = 4503,
9178 .operands = &[_]Operand{
9179 .{ .kind = .IdResultType, .quantifier = .required },
9180 .{ .kind = .IdResult, .quantifier = .required },
9181 .{ .kind = .IdRef, .quantifier = .required },
9182 .{ .kind = .IdRef, .quantifier = .required },
9183 .{ .kind = .IdRef, .quantifier = .required },
9184 .{ .kind = .IdRef, .quantifier = .required },
9185 .{ .kind = .IdRef, .quantifier = .required },
9857 .operands = &.{
9858 .{ .kind = .id_result_type, .quantifier = .required },
9859 .{ .kind = .id_result, .quantifier = .required },
9860 .{ .kind = .id_ref, .quantifier = .required },
9861 .{ .kind = .id_ref, .quantifier = .required },
9862 .{ .kind = .id_ref, .quantifier = .required },
9863 .{ .kind = .id_ref, .quantifier = .required },
9864 .{ .kind = .id_ref, .quantifier = .required },
91869865 },
91879866 },
91889867 .{
91899868 .name = "OpGroupIAddNonUniformAMD",
91909869 .opcode = 5000,
9191 .operands = &[_]Operand{
9192 .{ .kind = .IdResultType, .quantifier = .required },
9193 .{ .kind = .IdResult, .quantifier = .required },
9194 .{ .kind = .IdScope, .quantifier = .required },
9195 .{ .kind = .GroupOperation, .quantifier = .required },
9196 .{ .kind = .IdRef, .quantifier = .required },
9870 .operands = &.{
9871 .{ .kind = .id_result_type, .quantifier = .required },
9872 .{ .kind = .id_result, .quantifier = .required },
9873 .{ .kind = .id_scope, .quantifier = .required },
9874 .{ .kind = .group_operation, .quantifier = .required },
9875 .{ .kind = .id_ref, .quantifier = .required },
91979876 },
91989877 },
91999878 .{
92009879 .name = "OpGroupFAddNonUniformAMD",
92019880 .opcode = 5001,
9202 .operands = &[_]Operand{
9203 .{ .kind = .IdResultType, .quantifier = .required },
9204 .{ .kind = .IdResult, .quantifier = .required },
9205 .{ .kind = .IdScope, .quantifier = .required },
9206 .{ .kind = .GroupOperation, .quantifier = .required },
9207 .{ .kind = .IdRef, .quantifier = .required },
9881 .operands = &.{
9882 .{ .kind = .id_result_type, .quantifier = .required },
9883 .{ .kind = .id_result, .quantifier = .required },
9884 .{ .kind = .id_scope, .quantifier = .required },
9885 .{ .kind = .group_operation, .quantifier = .required },
9886 .{ .kind = .id_ref, .quantifier = .required },
92089887 },
92099888 },
92109889 .{
92119890 .name = "OpGroupFMinNonUniformAMD",
92129891 .opcode = 5002,
9213 .operands = &[_]Operand{
9214 .{ .kind = .IdResultType, .quantifier = .required },
9215 .{ .kind = .IdResult, .quantifier = .required },
9216 .{ .kind = .IdScope, .quantifier = .required },
9217 .{ .kind = .GroupOperation, .quantifier = .required },
9218 .{ .kind = .IdRef, .quantifier = .required },
9892 .operands = &.{
9893 .{ .kind = .id_result_type, .quantifier = .required },
9894 .{ .kind = .id_result, .quantifier = .required },
9895 .{ .kind = .id_scope, .quantifier = .required },
9896 .{ .kind = .group_operation, .quantifier = .required },
9897 .{ .kind = .id_ref, .quantifier = .required },
92199898 },
92209899 },
92219900 .{
92229901 .name = "OpGroupUMinNonUniformAMD",
92239902 .opcode = 5003,
9224 .operands = &[_]Operand{
9225 .{ .kind = .IdResultType, .quantifier = .required },
9226 .{ .kind = .IdResult, .quantifier = .required },
9227 .{ .kind = .IdScope, .quantifier = .required },
9228 .{ .kind = .GroupOperation, .quantifier = .required },
9229 .{ .kind = .IdRef, .quantifier = .required },
9903 .operands = &.{
9904 .{ .kind = .id_result_type, .quantifier = .required },
9905 .{ .kind = .id_result, .quantifier = .required },
9906 .{ .kind = .id_scope, .quantifier = .required },
9907 .{ .kind = .group_operation, .quantifier = .required },
9908 .{ .kind = .id_ref, .quantifier = .required },
92309909 },
92319910 },
92329911 .{
92339912 .name = "OpGroupSMinNonUniformAMD",
92349913 .opcode = 5004,
9235 .operands = &[_]Operand{
9236 .{ .kind = .IdResultType, .quantifier = .required },
9237 .{ .kind = .IdResult, .quantifier = .required },
9238 .{ .kind = .IdScope, .quantifier = .required },
9239 .{ .kind = .GroupOperation, .quantifier = .required },
9240 .{ .kind = .IdRef, .quantifier = .required },
9914 .operands = &.{
9915 .{ .kind = .id_result_type, .quantifier = .required },
9916 .{ .kind = .id_result, .quantifier = .required },
9917 .{ .kind = .id_scope, .quantifier = .required },
9918 .{ .kind = .group_operation, .quantifier = .required },
9919 .{ .kind = .id_ref, .quantifier = .required },
92419920 },
92429921 },
92439922 .{
92449923 .name = "OpGroupFMaxNonUniformAMD",
92459924 .opcode = 5005,
9246 .operands = &[_]Operand{
9247 .{ .kind = .IdResultType, .quantifier = .required },
9248 .{ .kind = .IdResult, .quantifier = .required },
9249 .{ .kind = .IdScope, .quantifier = .required },
9250 .{ .kind = .GroupOperation, .quantifier = .required },
9251 .{ .kind = .IdRef, .quantifier = .required },
9925 .operands = &.{
9926 .{ .kind = .id_result_type, .quantifier = .required },
9927 .{ .kind = .id_result, .quantifier = .required },
9928 .{ .kind = .id_scope, .quantifier = .required },
9929 .{ .kind = .group_operation, .quantifier = .required },
9930 .{ .kind = .id_ref, .quantifier = .required },
92529931 },
92539932 },
92549933 .{
92559934 .name = "OpGroupUMaxNonUniformAMD",
92569935 .opcode = 5006,
9257 .operands = &[_]Operand{
9258 .{ .kind = .IdResultType, .quantifier = .required },
9259 .{ .kind = .IdResult, .quantifier = .required },
9260 .{ .kind = .IdScope, .quantifier = .required },
9261 .{ .kind = .GroupOperation, .quantifier = .required },
9262 .{ .kind = .IdRef, .quantifier = .required },
9936 .operands = &.{
9937 .{ .kind = .id_result_type, .quantifier = .required },
9938 .{ .kind = .id_result, .quantifier = .required },
9939 .{ .kind = .id_scope, .quantifier = .required },
9940 .{ .kind = .group_operation, .quantifier = .required },
9941 .{ .kind = .id_ref, .quantifier = .required },
92639942 },
92649943 },
92659944 .{
92669945 .name = "OpGroupSMaxNonUniformAMD",
92679946 .opcode = 5007,
9268 .operands = &[_]Operand{
9269 .{ .kind = .IdResultType, .quantifier = .required },
9270 .{ .kind = .IdResult, .quantifier = .required },
9271 .{ .kind = .IdScope, .quantifier = .required },
9272 .{ .kind = .GroupOperation, .quantifier = .required },
9273 .{ .kind = .IdRef, .quantifier = .required },
9947 .operands = &.{
9948 .{ .kind = .id_result_type, .quantifier = .required },
9949 .{ .kind = .id_result, .quantifier = .required },
9950 .{ .kind = .id_scope, .quantifier = .required },
9951 .{ .kind = .group_operation, .quantifier = .required },
9952 .{ .kind = .id_ref, .quantifier = .required },
92749953 },
92759954 },
92769955 .{
92779956 .name = "OpFragmentMaskFetchAMD",
92789957 .opcode = 5011,
9279 .operands = &[_]Operand{
9280 .{ .kind = .IdResultType, .quantifier = .required },
9281 .{ .kind = .IdResult, .quantifier = .required },
9282 .{ .kind = .IdRef, .quantifier = .required },
9283 .{ .kind = .IdRef, .quantifier = .required },
9958 .operands = &.{
9959 .{ .kind = .id_result_type, .quantifier = .required },
9960 .{ .kind = .id_result, .quantifier = .required },
9961 .{ .kind = .id_ref, .quantifier = .required },
9962 .{ .kind = .id_ref, .quantifier = .required },
92849963 },
92859964 },
92869965 .{
92879966 .name = "OpFragmentFetchAMD",
92889967 .opcode = 5012,
9289 .operands = &[_]Operand{
9290 .{ .kind = .IdResultType, .quantifier = .required },
9291 .{ .kind = .IdResult, .quantifier = .required },
9292 .{ .kind = .IdRef, .quantifier = .required },
9293 .{ .kind = .IdRef, .quantifier = .required },
9294 .{ .kind = .IdRef, .quantifier = .required },
9968 .operands = &.{
9969 .{ .kind = .id_result_type, .quantifier = .required },
9970 .{ .kind = .id_result, .quantifier = .required },
9971 .{ .kind = .id_ref, .quantifier = .required },
9972 .{ .kind = .id_ref, .quantifier = .required },
9973 .{ .kind = .id_ref, .quantifier = .required },
92959974 },
92969975 },
92979976 .{
92989977 .name = "OpReadClockKHR",
92999978 .opcode = 5056,
9300 .operands = &[_]Operand{
9301 .{ .kind = .IdResultType, .quantifier = .required },
9302 .{ .kind = .IdResult, .quantifier = .required },
9303 .{ .kind = .IdScope, .quantifier = .required },
9979 .operands = &.{
9980 .{ .kind = .id_result_type, .quantifier = .required },
9981 .{ .kind = .id_result, .quantifier = .required },
9982 .{ .kind = .id_scope, .quantifier = .required },
93049983 },
93059984 },
93069985 .{
9307 .name = "OpFinalizeNodePayloadsAMDX",
9986 .name = "OpAllocateNodePayloadsAMDX",
9987 .opcode = 5074,
9988 .operands = &.{
9989 .{ .kind = .id_result_type, .quantifier = .required },
9990 .{ .kind = .id_result, .quantifier = .required },
9991 .{ .kind = .id_scope, .quantifier = .required },
9992 .{ .kind = .id_ref, .quantifier = .required },
9993 .{ .kind = .id_ref, .quantifier = .required },
9994 },
9995 },
9996 .{
9997 .name = "OpEnqueueNodePayloadsAMDX",
93089998 .opcode = 5075,
9309 .operands = &[_]Operand{
9310 .{ .kind = .IdRef, .quantifier = .required },
9999 .operands = &.{
10000 .{ .kind = .id_ref, .quantifier = .required },
10001 },
10002 },
10003 .{
10004 .name = "OpTypeNodePayloadArrayAMDX",
10005 .opcode = 5076,
10006 .operands = &.{
10007 .{ .kind = .id_result, .quantifier = .required },
10008 .{ .kind = .id_ref, .quantifier = .required },
931110009 },
931210010 },
931310011 .{
931410012 .name = "OpFinishWritingNodePayloadAMDX",
931510013 .opcode = 5078,
9316 .operands = &[_]Operand{
9317 .{ .kind = .IdResultType, .quantifier = .required },
9318 .{ .kind = .IdResult, .quantifier = .required },
9319 .{ .kind = .IdRef, .quantifier = .required },
10014 .operands = &.{
10015 .{ .kind = .id_result_type, .quantifier = .required },
10016 .{ .kind = .id_result, .quantifier = .required },
10017 .{ .kind = .id_ref, .quantifier = .required },
932010018 },
932110019 },
932210020 .{
9323 .name = "OpInitializeNodePayloadsAMDX",
10021 .name = "OpNodePayloadArrayLengthAMDX",
932410022 .opcode = 5090,
9325 .operands = &[_]Operand{
9326 .{ .kind = .IdRef, .quantifier = .required },
9327 .{ .kind = .IdScope, .quantifier = .required },
9328 .{ .kind = .IdRef, .quantifier = .required },
9329 .{ .kind = .IdRef, .quantifier = .required },
10023 .operands = &.{
10024 .{ .kind = .id_result_type, .quantifier = .required },
10025 .{ .kind = .id_result, .quantifier = .required },
10026 .{ .kind = .id_ref, .quantifier = .required },
10027 },
10028 },
10029 .{
10030 .name = "OpIsNodePayloadValidAMDX",
10031 .opcode = 5101,
10032 .operands = &.{
10033 .{ .kind = .id_result_type, .quantifier = .required },
10034 .{ .kind = .id_result, .quantifier = .required },
10035 .{ .kind = .id_ref, .quantifier = .required },
10036 .{ .kind = .id_ref, .quantifier = .required },
10037 },
10038 },
10039 .{
10040 .name = "OpConstantStringAMDX",
10041 .opcode = 5103,
10042 .operands = &.{
10043 .{ .kind = .id_result, .quantifier = .required },
10044 .{ .kind = .literal_string, .quantifier = .required },
10045 },
10046 },
10047 .{
10048 .name = "OpSpecConstantStringAMDX",
10049 .opcode = 5104,
10050 .operands = &.{
10051 .{ .kind = .id_result, .quantifier = .required },
10052 .{ .kind = .literal_string, .quantifier = .required },
933010053 },
933110054 },
933210055 .{
933310056 .name = "OpGroupNonUniformQuadAllKHR",
933410057 .opcode = 5110,
9335 .operands = &[_]Operand{
9336 .{ .kind = .IdResultType, .quantifier = .required },
9337 .{ .kind = .IdResult, .quantifier = .required },
9338 .{ .kind = .IdRef, .quantifier = .required },
10058 .operands = &.{
10059 .{ .kind = .id_result_type, .quantifier = .required },
10060 .{ .kind = .id_result, .quantifier = .required },
10061 .{ .kind = .id_ref, .quantifier = .required },
933910062 },
934010063 },
934110064 .{
934210065 .name = "OpGroupNonUniformQuadAnyKHR",
934310066 .opcode = 5111,
9344 .operands = &[_]Operand{
9345 .{ .kind = .IdResultType, .quantifier = .required },
9346 .{ .kind = .IdResult, .quantifier = .required },
9347 .{ .kind = .IdRef, .quantifier = .required },
10067 .operands = &.{
10068 .{ .kind = .id_result_type, .quantifier = .required },
10069 .{ .kind = .id_result, .quantifier = .required },
10070 .{ .kind = .id_ref, .quantifier = .required },
934810071 },
934910072 },
935010073 .{
935110074 .name = "OpHitObjectRecordHitMotionNV",
935210075 .opcode = 5249,
9353 .operands = &[_]Operand{
9354 .{ .kind = .IdRef, .quantifier = .required },
9355 .{ .kind = .IdRef, .quantifier = .required },
9356 .{ .kind = .IdRef, .quantifier = .required },
9357 .{ .kind = .IdRef, .quantifier = .required },
9358 .{ .kind = .IdRef, .quantifier = .required },
9359 .{ .kind = .IdRef, .quantifier = .required },
9360 .{ .kind = .IdRef, .quantifier = .required },
9361 .{ .kind = .IdRef, .quantifier = .required },
9362 .{ .kind = .IdRef, .quantifier = .required },
9363 .{ .kind = .IdRef, .quantifier = .required },
9364 .{ .kind = .IdRef, .quantifier = .required },
9365 .{ .kind = .IdRef, .quantifier = .required },
9366 .{ .kind = .IdRef, .quantifier = .required },
9367 .{ .kind = .IdRef, .quantifier = .required },
10076 .operands = &.{
10077 .{ .kind = .id_ref, .quantifier = .required },
10078 .{ .kind = .id_ref, .quantifier = .required },
10079 .{ .kind = .id_ref, .quantifier = .required },
10080 .{ .kind = .id_ref, .quantifier = .required },
10081 .{ .kind = .id_ref, .quantifier = .required },
10082 .{ .kind = .id_ref, .quantifier = .required },
10083 .{ .kind = .id_ref, .quantifier = .required },
10084 .{ .kind = .id_ref, .quantifier = .required },
10085 .{ .kind = .id_ref, .quantifier = .required },
10086 .{ .kind = .id_ref, .quantifier = .required },
10087 .{ .kind = .id_ref, .quantifier = .required },
10088 .{ .kind = .id_ref, .quantifier = .required },
10089 .{ .kind = .id_ref, .quantifier = .required },
10090 .{ .kind = .id_ref, .quantifier = .required },
936810091 },
936910092 },
937010093 .{
937110094 .name = "OpHitObjectRecordHitWithIndexMotionNV",
937210095 .opcode = 5250,
9373 .operands = &[_]Operand{
9374 .{ .kind = .IdRef, .quantifier = .required },
9375 .{ .kind = .IdRef, .quantifier = .required },
9376 .{ .kind = .IdRef, .quantifier = .required },
9377 .{ .kind = .IdRef, .quantifier = .required },
9378 .{ .kind = .IdRef, .quantifier = .required },
9379 .{ .kind = .IdRef, .quantifier = .required },
9380 .{ .kind = .IdRef, .quantifier = .required },
9381 .{ .kind = .IdRef, .quantifier = .required },
9382 .{ .kind = .IdRef, .quantifier = .required },
9383 .{ .kind = .IdRef, .quantifier = .required },
9384 .{ .kind = .IdRef, .quantifier = .required },
9385 .{ .kind = .IdRef, .quantifier = .required },
9386 .{ .kind = .IdRef, .quantifier = .required },
10096 .operands = &.{
10097 .{ .kind = .id_ref, .quantifier = .required },
10098 .{ .kind = .id_ref, .quantifier = .required },
10099 .{ .kind = .id_ref, .quantifier = .required },
10100 .{ .kind = .id_ref, .quantifier = .required },
10101 .{ .kind = .id_ref, .quantifier = .required },
10102 .{ .kind = .id_ref, .quantifier = .required },
10103 .{ .kind = .id_ref, .quantifier = .required },
10104 .{ .kind = .id_ref, .quantifier = .required },
10105 .{ .kind = .id_ref, .quantifier = .required },
10106 .{ .kind = .id_ref, .quantifier = .required },
10107 .{ .kind = .id_ref, .quantifier = .required },
10108 .{ .kind = .id_ref, .quantifier = .required },
10109 .{ .kind = .id_ref, .quantifier = .required },
938710110 },
938810111 },
938910112 .{
939010113 .name = "OpHitObjectRecordMissMotionNV",
939110114 .opcode = 5251,
9392 .operands = &[_]Operand{
9393 .{ .kind = .IdRef, .quantifier = .required },
9394 .{ .kind = .IdRef, .quantifier = .required },
9395 .{ .kind = .IdRef, .quantifier = .required },
9396 .{ .kind = .IdRef, .quantifier = .required },
9397 .{ .kind = .IdRef, .quantifier = .required },
9398 .{ .kind = .IdRef, .quantifier = .required },
9399 .{ .kind = .IdRef, .quantifier = .required },
10115 .operands = &.{
10116 .{ .kind = .id_ref, .quantifier = .required },
10117 .{ .kind = .id_ref, .quantifier = .required },
10118 .{ .kind = .id_ref, .quantifier = .required },
10119 .{ .kind = .id_ref, .quantifier = .required },
10120 .{ .kind = .id_ref, .quantifier = .required },
10121 .{ .kind = .id_ref, .quantifier = .required },
10122 .{ .kind = .id_ref, .quantifier = .required },
940010123 },
940110124 },
940210125 .{
940310126 .name = "OpHitObjectGetWorldToObjectNV",
940410127 .opcode = 5252,
9405 .operands = &[_]Operand{
9406 .{ .kind = .IdResultType, .quantifier = .required },
9407 .{ .kind = .IdResult, .quantifier = .required },
9408 .{ .kind = .IdRef, .quantifier = .required },
10128 .operands = &.{
10129 .{ .kind = .id_result_type, .quantifier = .required },
10130 .{ .kind = .id_result, .quantifier = .required },
10131 .{ .kind = .id_ref, .quantifier = .required },
940910132 },
941010133 },
941110134 .{
941210135 .name = "OpHitObjectGetObjectToWorldNV",
941310136 .opcode = 5253,
9414 .operands = &[_]Operand{
9415 .{ .kind = .IdResultType, .quantifier = .required },
9416 .{ .kind = .IdResult, .quantifier = .required },
9417 .{ .kind = .IdRef, .quantifier = .required },
10137 .operands = &.{
10138 .{ .kind = .id_result_type, .quantifier = .required },
10139 .{ .kind = .id_result, .quantifier = .required },
10140 .{ .kind = .id_ref, .quantifier = .required },
941810141 },
941910142 },
942010143 .{
942110144 .name = "OpHitObjectGetObjectRayDirectionNV",
942210145 .opcode = 5254,
9423 .operands = &[_]Operand{
9424 .{ .kind = .IdResultType, .quantifier = .required },
9425 .{ .kind = .IdResult, .quantifier = .required },
9426 .{ .kind = .IdRef, .quantifier = .required },
10146 .operands = &.{
10147 .{ .kind = .id_result_type, .quantifier = .required },
10148 .{ .kind = .id_result, .quantifier = .required },
10149 .{ .kind = .id_ref, .quantifier = .required },
942710150 },
942810151 },
942910152 .{
943010153 .name = "OpHitObjectGetObjectRayOriginNV",
943110154 .opcode = 5255,
9432 .operands = &[_]Operand{
9433 .{ .kind = .IdResultType, .quantifier = .required },
9434 .{ .kind = .IdResult, .quantifier = .required },
9435 .{ .kind = .IdRef, .quantifier = .required },
10155 .operands = &.{
10156 .{ .kind = .id_result_type, .quantifier = .required },
10157 .{ .kind = .id_result, .quantifier = .required },
10158 .{ .kind = .id_ref, .quantifier = .required },
943610159 },
943710160 },
943810161 .{
943910162 .name = "OpHitObjectTraceRayMotionNV",
944010163 .opcode = 5256,
9441 .operands = &[_]Operand{
9442 .{ .kind = .IdRef, .quantifier = .required },
9443 .{ .kind = .IdRef, .quantifier = .required },
9444 .{ .kind = .IdRef, .quantifier = .required },
9445 .{ .kind = .IdRef, .quantifier = .required },
9446 .{ .kind = .IdRef, .quantifier = .required },
9447 .{ .kind = .IdRef, .quantifier = .required },
9448 .{ .kind = .IdRef, .quantifier = .required },
9449 .{ .kind = .IdRef, .quantifier = .required },
9450 .{ .kind = .IdRef, .quantifier = .required },
9451 .{ .kind = .IdRef, .quantifier = .required },
9452 .{ .kind = .IdRef, .quantifier = .required },
9453 .{ .kind = .IdRef, .quantifier = .required },
9454 .{ .kind = .IdRef, .quantifier = .required },
10164 .operands = &.{
10165 .{ .kind = .id_ref, .quantifier = .required },
10166 .{ .kind = .id_ref, .quantifier = .required },
10167 .{ .kind = .id_ref, .quantifier = .required },
10168 .{ .kind = .id_ref, .quantifier = .required },
10169 .{ .kind = .id_ref, .quantifier = .required },
10170 .{ .kind = .id_ref, .quantifier = .required },
10171 .{ .kind = .id_ref, .quantifier = .required },
10172 .{ .kind = .id_ref, .quantifier = .required },
10173 .{ .kind = .id_ref, .quantifier = .required },
10174 .{ .kind = .id_ref, .quantifier = .required },
10175 .{ .kind = .id_ref, .quantifier = .required },
10176 .{ .kind = .id_ref, .quantifier = .required },
10177 .{ .kind = .id_ref, .quantifier = .required },
945510178 },
945610179 },
945710180 .{
945810181 .name = "OpHitObjectGetShaderRecordBufferHandleNV",
945910182 .opcode = 5257,
9460 .operands = &[_]Operand{
9461 .{ .kind = .IdResultType, .quantifier = .required },
9462 .{ .kind = .IdResult, .quantifier = .required },
9463 .{ .kind = .IdRef, .quantifier = .required },
10183 .operands = &.{
10184 .{ .kind = .id_result_type, .quantifier = .required },
10185 .{ .kind = .id_result, .quantifier = .required },
10186 .{ .kind = .id_ref, .quantifier = .required },
946410187 },
946510188 },
946610189 .{
946710190 .name = "OpHitObjectGetShaderBindingTableRecordIndexNV",
946810191 .opcode = 5258,
9469 .operands = &[_]Operand{
9470 .{ .kind = .IdResultType, .quantifier = .required },
9471 .{ .kind = .IdResult, .quantifier = .required },
9472 .{ .kind = .IdRef, .quantifier = .required },
10192 .operands = &.{
10193 .{ .kind = .id_result_type, .quantifier = .required },
10194 .{ .kind = .id_result, .quantifier = .required },
10195 .{ .kind = .id_ref, .quantifier = .required },
947310196 },
947410197 },
947510198 .{
947610199 .name = "OpHitObjectRecordEmptyNV",
947710200 .opcode = 5259,
9478 .operands = &[_]Operand{
9479 .{ .kind = .IdRef, .quantifier = .required },
10201 .operands = &.{
10202 .{ .kind = .id_ref, .quantifier = .required },
948010203 },
948110204 },
948210205 .{
948310206 .name = "OpHitObjectTraceRayNV",
948410207 .opcode = 5260,
9485 .operands = &[_]Operand{
9486 .{ .kind = .IdRef, .quantifier = .required },
9487 .{ .kind = .IdRef, .quantifier = .required },
9488 .{ .kind = .IdRef, .quantifier = .required },
9489 .{ .kind = .IdRef, .quantifier = .required },
9490 .{ .kind = .IdRef, .quantifier = .required },
9491 .{ .kind = .IdRef, .quantifier = .required },
9492 .{ .kind = .IdRef, .quantifier = .required },
9493 .{ .kind = .IdRef, .quantifier = .required },
9494 .{ .kind = .IdRef, .quantifier = .required },
9495 .{ .kind = .IdRef, .quantifier = .required },
9496 .{ .kind = .IdRef, .quantifier = .required },
9497 .{ .kind = .IdRef, .quantifier = .required },
10208 .operands = &.{
10209 .{ .kind = .id_ref, .quantifier = .required },
10210 .{ .kind = .id_ref, .quantifier = .required },
10211 .{ .kind = .id_ref, .quantifier = .required },
10212 .{ .kind = .id_ref, .quantifier = .required },
10213 .{ .kind = .id_ref, .quantifier = .required },
10214 .{ .kind = .id_ref, .quantifier = .required },
10215 .{ .kind = .id_ref, .quantifier = .required },
10216 .{ .kind = .id_ref, .quantifier = .required },
10217 .{ .kind = .id_ref, .quantifier = .required },
10218 .{ .kind = .id_ref, .quantifier = .required },
10219 .{ .kind = .id_ref, .quantifier = .required },
10220 .{ .kind = .id_ref, .quantifier = .required },
949810221 },
949910222 },
950010223 .{
950110224 .name = "OpHitObjectRecordHitNV",
950210225 .opcode = 5261,
9503 .operands = &[_]Operand{
9504 .{ .kind = .IdRef, .quantifier = .required },
9505 .{ .kind = .IdRef, .quantifier = .required },
9506 .{ .kind = .IdRef, .quantifier = .required },
9507 .{ .kind = .IdRef, .quantifier = .required },
9508 .{ .kind = .IdRef, .quantifier = .required },
9509 .{ .kind = .IdRef, .quantifier = .required },
9510 .{ .kind = .IdRef, .quantifier = .required },
9511 .{ .kind = .IdRef, .quantifier = .required },
9512 .{ .kind = .IdRef, .quantifier = .required },
9513 .{ .kind = .IdRef, .quantifier = .required },
9514 .{ .kind = .IdRef, .quantifier = .required },
9515 .{ .kind = .IdRef, .quantifier = .required },
9516 .{ .kind = .IdRef, .quantifier = .required },
10226 .operands = &.{
10227 .{ .kind = .id_ref, .quantifier = .required },
10228 .{ .kind = .id_ref, .quantifier = .required },
10229 .{ .kind = .id_ref, .quantifier = .required },
10230 .{ .kind = .id_ref, .quantifier = .required },
10231 .{ .kind = .id_ref, .quantifier = .required },
10232 .{ .kind = .id_ref, .quantifier = .required },
10233 .{ .kind = .id_ref, .quantifier = .required },
10234 .{ .kind = .id_ref, .quantifier = .required },
10235 .{ .kind = .id_ref, .quantifier = .required },
10236 .{ .kind = .id_ref, .quantifier = .required },
10237 .{ .kind = .id_ref, .quantifier = .required },
10238 .{ .kind = .id_ref, .quantifier = .required },
10239 .{ .kind = .id_ref, .quantifier = .required },
951710240 },
951810241 },
951910242 .{
952010243 .name = "OpHitObjectRecordHitWithIndexNV",
952110244 .opcode = 5262,
9522 .operands = &[_]Operand{
9523 .{ .kind = .IdRef, .quantifier = .required },
9524 .{ .kind = .IdRef, .quantifier = .required },
9525 .{ .kind = .IdRef, .quantifier = .required },
9526 .{ .kind = .IdRef, .quantifier = .required },
9527 .{ .kind = .IdRef, .quantifier = .required },
9528 .{ .kind = .IdRef, .quantifier = .required },
9529 .{ .kind = .IdRef, .quantifier = .required },
9530 .{ .kind = .IdRef, .quantifier = .required },
9531 .{ .kind = .IdRef, .quantifier = .required },
9532 .{ .kind = .IdRef, .quantifier = .required },
9533 .{ .kind = .IdRef, .quantifier = .required },
9534 .{ .kind = .IdRef, .quantifier = .required },
10245 .operands = &.{
10246 .{ .kind = .id_ref, .quantifier = .required },
10247 .{ .kind = .id_ref, .quantifier = .required },
10248 .{ .kind = .id_ref, .quantifier = .required },
10249 .{ .kind = .id_ref, .quantifier = .required },
10250 .{ .kind = .id_ref, .quantifier = .required },
10251 .{ .kind = .id_ref, .quantifier = .required },
10252 .{ .kind = .id_ref, .quantifier = .required },
10253 .{ .kind = .id_ref, .quantifier = .required },
10254 .{ .kind = .id_ref, .quantifier = .required },
10255 .{ .kind = .id_ref, .quantifier = .required },
10256 .{ .kind = .id_ref, .quantifier = .required },
10257 .{ .kind = .id_ref, .quantifier = .required },
953510258 },
953610259 },
953710260 .{
953810261 .name = "OpHitObjectRecordMissNV",
953910262 .opcode = 5263,
9540 .operands = &[_]Operand{
9541 .{ .kind = .IdRef, .quantifier = .required },
9542 .{ .kind = .IdRef, .quantifier = .required },
9543 .{ .kind = .IdRef, .quantifier = .required },
9544 .{ .kind = .IdRef, .quantifier = .required },
9545 .{ .kind = .IdRef, .quantifier = .required },
9546 .{ .kind = .IdRef, .quantifier = .required },
10263 .operands = &.{
10264 .{ .kind = .id_ref, .quantifier = .required },
10265 .{ .kind = .id_ref, .quantifier = .required },
10266 .{ .kind = .id_ref, .quantifier = .required },
10267 .{ .kind = .id_ref, .quantifier = .required },
10268 .{ .kind = .id_ref, .quantifier = .required },
10269 .{ .kind = .id_ref, .quantifier = .required },
954710270 },
954810271 },
954910272 .{
955010273 .name = "OpHitObjectExecuteShaderNV",
955110274 .opcode = 5264,
9552 .operands = &[_]Operand{
9553 .{ .kind = .IdRef, .quantifier = .required },
9554 .{ .kind = .IdRef, .quantifier = .required },
10275 .operands = &.{
10276 .{ .kind = .id_ref, .quantifier = .required },
10277 .{ .kind = .id_ref, .quantifier = .required },
955510278 },
955610279 },
955710280 .{
955810281 .name = "OpHitObjectGetCurrentTimeNV",
955910282 .opcode = 5265,
9560 .operands = &[_]Operand{
9561 .{ .kind = .IdResultType, .quantifier = .required },
9562 .{ .kind = .IdResult, .quantifier = .required },
9563 .{ .kind = .IdRef, .quantifier = .required },
10283 .operands = &.{
10284 .{ .kind = .id_result_type, .quantifier = .required },
10285 .{ .kind = .id_result, .quantifier = .required },
10286 .{ .kind = .id_ref, .quantifier = .required },
956410287 },
956510288 },
956610289 .{
956710290 .name = "OpHitObjectGetAttributesNV",
956810291 .opcode = 5266,
9569 .operands = &[_]Operand{
9570 .{ .kind = .IdRef, .quantifier = .required },
9571 .{ .kind = .IdRef, .quantifier = .required },
10292 .operands = &.{
10293 .{ .kind = .id_ref, .quantifier = .required },
10294 .{ .kind = .id_ref, .quantifier = .required },
957210295 },
957310296 },
957410297 .{
957510298 .name = "OpHitObjectGetHitKindNV",
957610299 .opcode = 5267,
9577 .operands = &[_]Operand{
9578 .{ .kind = .IdResultType, .quantifier = .required },
9579 .{ .kind = .IdResult, .quantifier = .required },
9580 .{ .kind = .IdRef, .quantifier = .required },
10300 .operands = &.{
10301 .{ .kind = .id_result_type, .quantifier = .required },
10302 .{ .kind = .id_result, .quantifier = .required },
10303 .{ .kind = .id_ref, .quantifier = .required },
958110304 },
958210305 },
958310306 .{
958410307 .name = "OpHitObjectGetPrimitiveIndexNV",
958510308 .opcode = 5268,
9586 .operands = &[_]Operand{
9587 .{ .kind = .IdResultType, .quantifier = .required },
9588 .{ .kind = .IdResult, .quantifier = .required },
9589 .{ .kind = .IdRef, .quantifier = .required },
10309 .operands = &.{
10310 .{ .kind = .id_result_type, .quantifier = .required },
10311 .{ .kind = .id_result, .quantifier = .required },
10312 .{ .kind = .id_ref, .quantifier = .required },
959010313 },
959110314 },
959210315 .{
959310316 .name = "OpHitObjectGetGeometryIndexNV",
959410317 .opcode = 5269,
9595 .operands = &[_]Operand{
9596 .{ .kind = .IdResultType, .quantifier = .required },
9597 .{ .kind = .IdResult, .quantifier = .required },
9598 .{ .kind = .IdRef, .quantifier = .required },
10318 .operands = &.{
10319 .{ .kind = .id_result_type, .quantifier = .required },
10320 .{ .kind = .id_result, .quantifier = .required },
10321 .{ .kind = .id_ref, .quantifier = .required },
959910322 },
960010323 },
960110324 .{
960210325 .name = "OpHitObjectGetInstanceIdNV",
960310326 .opcode = 5270,
9604 .operands = &[_]Operand{
9605 .{ .kind = .IdResultType, .quantifier = .required },
9606 .{ .kind = .IdResult, .quantifier = .required },
9607 .{ .kind = .IdRef, .quantifier = .required },
10327 .operands = &.{
10328 .{ .kind = .id_result_type, .quantifier = .required },
10329 .{ .kind = .id_result, .quantifier = .required },
10330 .{ .kind = .id_ref, .quantifier = .required },
960810331 },
960910332 },
961010333 .{
961110334 .name = "OpHitObjectGetInstanceCustomIndexNV",
961210335 .opcode = 5271,
9613 .operands = &[_]Operand{
9614 .{ .kind = .IdResultType, .quantifier = .required },
9615 .{ .kind = .IdResult, .quantifier = .required },
9616 .{ .kind = .IdRef, .quantifier = .required },
10336 .operands = &.{
10337 .{ .kind = .id_result_type, .quantifier = .required },
10338 .{ .kind = .id_result, .quantifier = .required },
10339 .{ .kind = .id_ref, .quantifier = .required },
961710340 },
961810341 },
961910342 .{
962010343 .name = "OpHitObjectGetWorldRayDirectionNV",
962110344 .opcode = 5272,
9622 .operands = &[_]Operand{
9623 .{ .kind = .IdResultType, .quantifier = .required },
9624 .{ .kind = .IdResult, .quantifier = .required },
9625 .{ .kind = .IdRef, .quantifier = .required },
10345 .operands = &.{
10346 .{ .kind = .id_result_type, .quantifier = .required },
10347 .{ .kind = .id_result, .quantifier = .required },
10348 .{ .kind = .id_ref, .quantifier = .required },
962610349 },
962710350 },
962810351 .{
962910352 .name = "OpHitObjectGetWorldRayOriginNV",
963010353 .opcode = 5273,
9631 .operands = &[_]Operand{
9632 .{ .kind = .IdResultType, .quantifier = .required },
9633 .{ .kind = .IdResult, .quantifier = .required },
9634 .{ .kind = .IdRef, .quantifier = .required },
10354 .operands = &.{
10355 .{ .kind = .id_result_type, .quantifier = .required },
10356 .{ .kind = .id_result, .quantifier = .required },
10357 .{ .kind = .id_ref, .quantifier = .required },
963510358 },
963610359 },
963710360 .{
963810361 .name = "OpHitObjectGetRayTMaxNV",
963910362 .opcode = 5274,
9640 .operands = &[_]Operand{
9641 .{ .kind = .IdResultType, .quantifier = .required },
9642 .{ .kind = .IdResult, .quantifier = .required },
9643 .{ .kind = .IdRef, .quantifier = .required },
10363 .operands = &.{
10364 .{ .kind = .id_result_type, .quantifier = .required },
10365 .{ .kind = .id_result, .quantifier = .required },
10366 .{ .kind = .id_ref, .quantifier = .required },
964410367 },
964510368 },
964610369 .{
964710370 .name = "OpHitObjectGetRayTMinNV",
964810371 .opcode = 5275,
9649 .operands = &[_]Operand{
9650 .{ .kind = .IdResultType, .quantifier = .required },
9651 .{ .kind = .IdResult, .quantifier = .required },
9652 .{ .kind = .IdRef, .quantifier = .required },
10372 .operands = &.{
10373 .{ .kind = .id_result_type, .quantifier = .required },
10374 .{ .kind = .id_result, .quantifier = .required },
10375 .{ .kind = .id_ref, .quantifier = .required },
965310376 },
965410377 },
965510378 .{
965610379 .name = "OpHitObjectIsEmptyNV",
965710380 .opcode = 5276,
9658 .operands = &[_]Operand{
9659 .{ .kind = .IdResultType, .quantifier = .required },
9660 .{ .kind = .IdResult, .quantifier = .required },
9661 .{ .kind = .IdRef, .quantifier = .required },
10381 .operands = &.{
10382 .{ .kind = .id_result_type, .quantifier = .required },
10383 .{ .kind = .id_result, .quantifier = .required },
10384 .{ .kind = .id_ref, .quantifier = .required },
966210385 },
966310386 },
966410387 .{
966510388 .name = "OpHitObjectIsHitNV",
966610389 .opcode = 5277,
9667 .operands = &[_]Operand{
9668 .{ .kind = .IdResultType, .quantifier = .required },
9669 .{ .kind = .IdResult, .quantifier = .required },
9670 .{ .kind = .IdRef, .quantifier = .required },
10390 .operands = &.{
10391 .{ .kind = .id_result_type, .quantifier = .required },
10392 .{ .kind = .id_result, .quantifier = .required },
10393 .{ .kind = .id_ref, .quantifier = .required },
967110394 },
967210395 },
967310396 .{
967410397 .name = "OpHitObjectIsMissNV",
967510398 .opcode = 5278,
9676 .operands = &[_]Operand{
9677 .{ .kind = .IdResultType, .quantifier = .required },
9678 .{ .kind = .IdResult, .quantifier = .required },
9679 .{ .kind = .IdRef, .quantifier = .required },
10399 .operands = &.{
10400 .{ .kind = .id_result_type, .quantifier = .required },
10401 .{ .kind = .id_result, .quantifier = .required },
10402 .{ .kind = .id_ref, .quantifier = .required },
968010403 },
968110404 },
968210405 .{
968310406 .name = "OpReorderThreadWithHitObjectNV",
968410407 .opcode = 5279,
9685 .operands = &[_]Operand{
9686 .{ .kind = .IdRef, .quantifier = .required },
9687 .{ .kind = .IdRef, .quantifier = .optional },
9688 .{ .kind = .IdRef, .quantifier = .optional },
10408 .operands = &.{
10409 .{ .kind = .id_ref, .quantifier = .required },
10410 .{ .kind = .id_ref, .quantifier = .optional },
10411 .{ .kind = .id_ref, .quantifier = .optional },
968910412 },
969010413 },
969110414 .{
969210415 .name = "OpReorderThreadWithHintNV",
969310416 .opcode = 5280,
9694 .operands = &[_]Operand{
9695 .{ .kind = .IdRef, .quantifier = .required },
9696 .{ .kind = .IdRef, .quantifier = .required },
10417 .operands = &.{
10418 .{ .kind = .id_ref, .quantifier = .required },
10419 .{ .kind = .id_ref, .quantifier = .required },
969710420 },
969810421 },
969910422 .{
970010423 .name = "OpTypeHitObjectNV",
970110424 .opcode = 5281,
9702 .operands = &[_]Operand{
9703 .{ .kind = .IdResult, .quantifier = .required },
10425 .operands = &.{
10426 .{ .kind = .id_result, .quantifier = .required },
970410427 },
970510428 },
970610429 .{
970710430 .name = "OpImageSampleFootprintNV",
970810431 .opcode = 5283,
9709 .operands = &[_]Operand{
9710 .{ .kind = .IdResultType, .quantifier = .required },
9711 .{ .kind = .IdResult, .quantifier = .required },
9712 .{ .kind = .IdRef, .quantifier = .required },
9713 .{ .kind = .IdRef, .quantifier = .required },
9714 .{ .kind = .IdRef, .quantifier = .required },
9715 .{ .kind = .IdRef, .quantifier = .required },
9716 .{ .kind = .ImageOperands, .quantifier = .optional },
10432 .operands = &.{
10433 .{ .kind = .id_result_type, .quantifier = .required },
10434 .{ .kind = .id_result, .quantifier = .required },
10435 .{ .kind = .id_ref, .quantifier = .required },
10436 .{ .kind = .id_ref, .quantifier = .required },
10437 .{ .kind = .id_ref, .quantifier = .required },
10438 .{ .kind = .id_ref, .quantifier = .required },
10439 .{ .kind = .image_operands, .quantifier = .optional },
10440 },
10441 },
10442 .{
10443 .name = "OpTypeCooperativeVectorNV",
10444 .opcode = 5288,
10445 .operands = &.{
10446 .{ .kind = .id_result, .quantifier = .required },
10447 .{ .kind = .id_ref, .quantifier = .required },
10448 .{ .kind = .id_ref, .quantifier = .required },
10449 },
10450 },
10451 .{
10452 .name = "OpCooperativeVectorMatrixMulNV",
10453 .opcode = 5289,
10454 .operands = &.{
10455 .{ .kind = .id_result_type, .quantifier = .required },
10456 .{ .kind = .id_result, .quantifier = .required },
10457 .{ .kind = .id_ref, .quantifier = .required },
10458 .{ .kind = .id_ref, .quantifier = .required },
10459 .{ .kind = .id_ref, .quantifier = .required },
10460 .{ .kind = .id_ref, .quantifier = .required },
10461 .{ .kind = .id_ref, .quantifier = .required },
10462 .{ .kind = .id_ref, .quantifier = .required },
10463 .{ .kind = .id_ref, .quantifier = .required },
10464 .{ .kind = .id_ref, .quantifier = .required },
10465 .{ .kind = .id_ref, .quantifier = .required },
10466 .{ .kind = .id_ref, .quantifier = .optional },
10467 .{ .kind = .cooperative_matrix_operands, .quantifier = .optional },
10468 },
10469 },
10470 .{
10471 .name = "OpCooperativeVectorOuterProductAccumulateNV",
10472 .opcode = 5290,
10473 .operands = &.{
10474 .{ .kind = .id_ref, .quantifier = .required },
10475 .{ .kind = .id_ref, .quantifier = .required },
10476 .{ .kind = .id_ref, .quantifier = .required },
10477 .{ .kind = .id_ref, .quantifier = .required },
10478 .{ .kind = .id_ref, .quantifier = .required },
10479 .{ .kind = .id_ref, .quantifier = .required },
10480 .{ .kind = .id_ref, .quantifier = .optional },
10481 },
10482 },
10483 .{
10484 .name = "OpCooperativeVectorReduceSumAccumulateNV",
10485 .opcode = 5291,
10486 .operands = &.{
10487 .{ .kind = .id_ref, .quantifier = .required },
10488 .{ .kind = .id_ref, .quantifier = .required },
10489 .{ .kind = .id_ref, .quantifier = .required },
10490 },
10491 },
10492 .{
10493 .name = "OpCooperativeVectorMatrixMulAddNV",
10494 .opcode = 5292,
10495 .operands = &.{
10496 .{ .kind = .id_result_type, .quantifier = .required },
10497 .{ .kind = .id_result, .quantifier = .required },
10498 .{ .kind = .id_ref, .quantifier = .required },
10499 .{ .kind = .id_ref, .quantifier = .required },
10500 .{ .kind = .id_ref, .quantifier = .required },
10501 .{ .kind = .id_ref, .quantifier = .required },
10502 .{ .kind = .id_ref, .quantifier = .required },
10503 .{ .kind = .id_ref, .quantifier = .required },
10504 .{ .kind = .id_ref, .quantifier = .required },
10505 .{ .kind = .id_ref, .quantifier = .required },
10506 .{ .kind = .id_ref, .quantifier = .required },
10507 .{ .kind = .id_ref, .quantifier = .required },
10508 .{ .kind = .id_ref, .quantifier = .required },
10509 .{ .kind = .id_ref, .quantifier = .required },
10510 .{ .kind = .id_ref, .quantifier = .optional },
10511 .{ .kind = .cooperative_matrix_operands, .quantifier = .optional },
10512 },
10513 },
10514 .{
10515 .name = "OpCooperativeMatrixConvertNV",
10516 .opcode = 5293,
10517 .operands = &.{
10518 .{ .kind = .id_result_type, .quantifier = .required },
10519 .{ .kind = .id_result, .quantifier = .required },
10520 .{ .kind = .id_ref, .quantifier = .required },
971710521 },
971810522 },
971910523 .{
972010524 .name = "OpEmitMeshTasksEXT",
972110525 .opcode = 5294,
9722 .operands = &[_]Operand{
9723 .{ .kind = .IdRef, .quantifier = .required },
9724 .{ .kind = .IdRef, .quantifier = .required },
9725 .{ .kind = .IdRef, .quantifier = .required },
9726 .{ .kind = .IdRef, .quantifier = .optional },
10526 .operands = &.{
10527 .{ .kind = .id_ref, .quantifier = .required },
10528 .{ .kind = .id_ref, .quantifier = .required },
10529 .{ .kind = .id_ref, .quantifier = .required },
10530 .{ .kind = .id_ref, .quantifier = .optional },
972710531 },
972810532 },
972910533 .{
973010534 .name = "OpSetMeshOutputsEXT",
973110535 .opcode = 5295,
9732 .operands = &[_]Operand{
9733 .{ .kind = .IdRef, .quantifier = .required },
9734 .{ .kind = .IdRef, .quantifier = .required },
10536 .operands = &.{
10537 .{ .kind = .id_ref, .quantifier = .required },
10538 .{ .kind = .id_ref, .quantifier = .required },
973510539 },
973610540 },
973710541 .{
973810542 .name = "OpGroupNonUniformPartitionNV",
973910543 .opcode = 5296,
9740 .operands = &[_]Operand{
9741 .{ .kind = .IdResultType, .quantifier = .required },
9742 .{ .kind = .IdResult, .quantifier = .required },
9743 .{ .kind = .IdRef, .quantifier = .required },
10544 .operands = &.{
10545 .{ .kind = .id_result_type, .quantifier = .required },
10546 .{ .kind = .id_result, .quantifier = .required },
10547 .{ .kind = .id_ref, .quantifier = .required },
974410548 },
974510549 },
974610550 .{
974710551 .name = "OpWritePackedPrimitiveIndices4x8NV",
974810552 .opcode = 5299,
9749 .operands = &[_]Operand{
9750 .{ .kind = .IdRef, .quantifier = .required },
9751 .{ .kind = .IdRef, .quantifier = .required },
10553 .operands = &.{
10554 .{ .kind = .id_ref, .quantifier = .required },
10555 .{ .kind = .id_ref, .quantifier = .required },
975210556 },
975310557 },
975410558 .{
975510559 .name = "OpFetchMicroTriangleVertexPositionNV",
975610560 .opcode = 5300,
9757 .operands = &[_]Operand{
9758 .{ .kind = .IdResultType, .quantifier = .required },
9759 .{ .kind = .IdResult, .quantifier = .required },
9760 .{ .kind = .IdRef, .quantifier = .required },
9761 .{ .kind = .IdRef, .quantifier = .required },
9762 .{ .kind = .IdRef, .quantifier = .required },
9763 .{ .kind = .IdRef, .quantifier = .required },
9764 .{ .kind = .IdRef, .quantifier = .required },
10561 .operands = &.{
10562 .{ .kind = .id_result_type, .quantifier = .required },
10563 .{ .kind = .id_result, .quantifier = .required },
10564 .{ .kind = .id_ref, .quantifier = .required },
10565 .{ .kind = .id_ref, .quantifier = .required },
10566 .{ .kind = .id_ref, .quantifier = .required },
10567 .{ .kind = .id_ref, .quantifier = .required },
10568 .{ .kind = .id_ref, .quantifier = .required },
976510569 },
976610570 },
976710571 .{
976810572 .name = "OpFetchMicroTriangleVertexBarycentricNV",
976910573 .opcode = 5301,
9770 .operands = &[_]Operand{
9771 .{ .kind = .IdResultType, .quantifier = .required },
9772 .{ .kind = .IdResult, .quantifier = .required },
9773 .{ .kind = .IdRef, .quantifier = .required },
9774 .{ .kind = .IdRef, .quantifier = .required },
9775 .{ .kind = .IdRef, .quantifier = .required },
9776 .{ .kind = .IdRef, .quantifier = .required },
9777 .{ .kind = .IdRef, .quantifier = .required },
10574 .operands = &.{
10575 .{ .kind = .id_result_type, .quantifier = .required },
10576 .{ .kind = .id_result, .quantifier = .required },
10577 .{ .kind = .id_ref, .quantifier = .required },
10578 .{ .kind = .id_ref, .quantifier = .required },
10579 .{ .kind = .id_ref, .quantifier = .required },
10580 .{ .kind = .id_ref, .quantifier = .required },
10581 .{ .kind = .id_ref, .quantifier = .required },
977810582 },
977910583 },
978010584 .{
9781 .name = "OpReportIntersectionNV",
9782 .opcode = 5334,
9783 .operands = &[_]Operand{
9784 .{ .kind = .IdResultType, .quantifier = .required },
9785 .{ .kind = .IdResult, .quantifier = .required },
9786 .{ .kind = .IdRef, .quantifier = .required },
9787 .{ .kind = .IdRef, .quantifier = .required },
10585 .name = "OpCooperativeVectorLoadNV",
10586 .opcode = 5302,
10587 .operands = &.{
10588 .{ .kind = .id_result_type, .quantifier = .required },
10589 .{ .kind = .id_result, .quantifier = .required },
10590 .{ .kind = .id_ref, .quantifier = .required },
10591 .{ .kind = .id_ref, .quantifier = .required },
10592 .{ .kind = .memory_access, .quantifier = .optional },
10593 },
10594 },
10595 .{
10596 .name = "OpCooperativeVectorStoreNV",
10597 .opcode = 5303,
10598 .operands = &.{
10599 .{ .kind = .id_ref, .quantifier = .required },
10600 .{ .kind = .id_ref, .quantifier = .required },
10601 .{ .kind = .id_ref, .quantifier = .required },
10602 .{ .kind = .memory_access, .quantifier = .optional },
978810603 },
978910604 },
979010605 .{
979110606 .name = "OpReportIntersectionKHR",
979210607 .opcode = 5334,
9793 .operands = &[_]Operand{
9794 .{ .kind = .IdResultType, .quantifier = .required },
9795 .{ .kind = .IdResult, .quantifier = .required },
9796 .{ .kind = .IdRef, .quantifier = .required },
9797 .{ .kind = .IdRef, .quantifier = .required },
10608 .operands = &.{
10609 .{ .kind = .id_result_type, .quantifier = .required },
10610 .{ .kind = .id_result, .quantifier = .required },
10611 .{ .kind = .id_ref, .quantifier = .required },
10612 .{ .kind = .id_ref, .quantifier = .required },
979810613 },
979910614 },
980010615 .{
980110616 .name = "OpIgnoreIntersectionNV",
980210617 .opcode = 5335,
9803 .operands = &[_]Operand{},
10618 .operands = &.{},
980410619 },
980510620 .{
980610621 .name = "OpTerminateRayNV",
980710622 .opcode = 5336,
9808 .operands = &[_]Operand{},
10623 .operands = &.{},
980910624 },
981010625 .{
981110626 .name = "OpTraceNV",
981210627 .opcode = 5337,
9813 .operands = &[_]Operand{
9814 .{ .kind = .IdRef, .quantifier = .required },
9815 .{ .kind = .IdRef, .quantifier = .required },
9816 .{ .kind = .IdRef, .quantifier = .required },
9817 .{ .kind = .IdRef, .quantifier = .required },
9818 .{ .kind = .IdRef, .quantifier = .required },
9819 .{ .kind = .IdRef, .quantifier = .required },
9820 .{ .kind = .IdRef, .quantifier = .required },
9821 .{ .kind = .IdRef, .quantifier = .required },
9822 .{ .kind = .IdRef, .quantifier = .required },
9823 .{ .kind = .IdRef, .quantifier = .required },
9824 .{ .kind = .IdRef, .quantifier = .required },
10628 .operands = &.{
10629 .{ .kind = .id_ref, .quantifier = .required },
10630 .{ .kind = .id_ref, .quantifier = .required },
10631 .{ .kind = .id_ref, .quantifier = .required },
10632 .{ .kind = .id_ref, .quantifier = .required },
10633 .{ .kind = .id_ref, .quantifier = .required },
10634 .{ .kind = .id_ref, .quantifier = .required },
10635 .{ .kind = .id_ref, .quantifier = .required },
10636 .{ .kind = .id_ref, .quantifier = .required },
10637 .{ .kind = .id_ref, .quantifier = .required },
10638 .{ .kind = .id_ref, .quantifier = .required },
10639 .{ .kind = .id_ref, .quantifier = .required },
982510640 },
982610641 },
982710642 .{
982810643 .name = "OpTraceMotionNV",
982910644 .opcode = 5338,
9830 .operands = &[_]Operand{
9831 .{ .kind = .IdRef, .quantifier = .required },
9832 .{ .kind = .IdRef, .quantifier = .required },
9833 .{ .kind = .IdRef, .quantifier = .required },
9834 .{ .kind = .IdRef, .quantifier = .required },
9835 .{ .kind = .IdRef, .quantifier = .required },
9836 .{ .kind = .IdRef, .quantifier = .required },
9837 .{ .kind = .IdRef, .quantifier = .required },
9838 .{ .kind = .IdRef, .quantifier = .required },
9839 .{ .kind = .IdRef, .quantifier = .required },
9840 .{ .kind = .IdRef, .quantifier = .required },
9841 .{ .kind = .IdRef, .quantifier = .required },
9842 .{ .kind = .IdRef, .quantifier = .required },
10645 .operands = &.{
10646 .{ .kind = .id_ref, .quantifier = .required },
10647 .{ .kind = .id_ref, .quantifier = .required },
10648 .{ .kind = .id_ref, .quantifier = .required },
10649 .{ .kind = .id_ref, .quantifier = .required },
10650 .{ .kind = .id_ref, .quantifier = .required },
10651 .{ .kind = .id_ref, .quantifier = .required },
10652 .{ .kind = .id_ref, .quantifier = .required },
10653 .{ .kind = .id_ref, .quantifier = .required },
10654 .{ .kind = .id_ref, .quantifier = .required },
10655 .{ .kind = .id_ref, .quantifier = .required },
10656 .{ .kind = .id_ref, .quantifier = .required },
10657 .{ .kind = .id_ref, .quantifier = .required },
984310658 },
984410659 },
984510660 .{
984610661 .name = "OpTraceRayMotionNV",
984710662 .opcode = 5339,
9848 .operands = &[_]Operand{
9849 .{ .kind = .IdRef, .quantifier = .required },
9850 .{ .kind = .IdRef, .quantifier = .required },
9851 .{ .kind = .IdRef, .quantifier = .required },
9852 .{ .kind = .IdRef, .quantifier = .required },
9853 .{ .kind = .IdRef, .quantifier = .required },
9854 .{ .kind = .IdRef, .quantifier = .required },
9855 .{ .kind = .IdRef, .quantifier = .required },
9856 .{ .kind = .IdRef, .quantifier = .required },
9857 .{ .kind = .IdRef, .quantifier = .required },
9858 .{ .kind = .IdRef, .quantifier = .required },
9859 .{ .kind = .IdRef, .quantifier = .required },
9860 .{ .kind = .IdRef, .quantifier = .required },
10663 .operands = &.{
10664 .{ .kind = .id_ref, .quantifier = .required },
10665 .{ .kind = .id_ref, .quantifier = .required },
10666 .{ .kind = .id_ref, .quantifier = .required },
10667 .{ .kind = .id_ref, .quantifier = .required },
10668 .{ .kind = .id_ref, .quantifier = .required },
10669 .{ .kind = .id_ref, .quantifier = .required },
10670 .{ .kind = .id_ref, .quantifier = .required },
10671 .{ .kind = .id_ref, .quantifier = .required },
10672 .{ .kind = .id_ref, .quantifier = .required },
10673 .{ .kind = .id_ref, .quantifier = .required },
10674 .{ .kind = .id_ref, .quantifier = .required },
10675 .{ .kind = .id_ref, .quantifier = .required },
986110676 },
986210677 },
986310678 .{
986410679 .name = "OpRayQueryGetIntersectionTriangleVertexPositionsKHR",
986510680 .opcode = 5340,
9866 .operands = &[_]Operand{
9867 .{ .kind = .IdResultType, .quantifier = .required },
9868 .{ .kind = .IdResult, .quantifier = .required },
9869 .{ .kind = .IdRef, .quantifier = .required },
9870 .{ .kind = .IdRef, .quantifier = .required },
9871 },
9872 },
9873 .{
9874 .name = "OpTypeAccelerationStructureNV",
9875 .opcode = 5341,
9876 .operands = &[_]Operand{
9877 .{ .kind = .IdResult, .quantifier = .required },
10681 .operands = &.{
10682 .{ .kind = .id_result_type, .quantifier = .required },
10683 .{ .kind = .id_result, .quantifier = .required },
10684 .{ .kind = .id_ref, .quantifier = .required },
10685 .{ .kind = .id_ref, .quantifier = .required },
987810686 },
987910687 },
988010688 .{
988110689 .name = "OpTypeAccelerationStructureKHR",
988210690 .opcode = 5341,
9883 .operands = &[_]Operand{
9884 .{ .kind = .IdResult, .quantifier = .required },
10691 .operands = &.{
10692 .{ .kind = .id_result, .quantifier = .required },
988510693 },
988610694 },
988710695 .{
988810696 .name = "OpExecuteCallableNV",
988910697 .opcode = 5344,
9890 .operands = &[_]Operand{
9891 .{ .kind = .IdRef, .quantifier = .required },
9892 .{ .kind = .IdRef, .quantifier = .required },
10698 .operands = &.{
10699 .{ .kind = .id_ref, .quantifier = .required },
10700 .{ .kind = .id_ref, .quantifier = .required },
10701 },
10702 },
10703 .{
10704 .name = "OpRayQueryGetClusterIdNV",
10705 .opcode = 5345,
10706 .operands = &.{
10707 .{ .kind = .id_result_type, .quantifier = .required },
10708 .{ .kind = .id_result, .quantifier = .required },
10709 .{ .kind = .id_ref, .quantifier = .required },
10710 .{ .kind = .id_ref, .quantifier = .required },
10711 },
10712 },
10713 .{
10714 .name = "OpHitObjectGetClusterIdNV",
10715 .opcode = 5346,
10716 .operands = &.{
10717 .{ .kind = .id_result_type, .quantifier = .required },
10718 .{ .kind = .id_result, .quantifier = .required },
10719 .{ .kind = .id_ref, .quantifier = .required },
989310720 },
989410721 },
989510722 .{
989610723 .name = "OpTypeCooperativeMatrixNV",
989710724 .opcode = 5358,
9898 .operands = &[_]Operand{
9899 .{ .kind = .IdResult, .quantifier = .required },
9900 .{ .kind = .IdRef, .quantifier = .required },
9901 .{ .kind = .IdScope, .quantifier = .required },
9902 .{ .kind = .IdRef, .quantifier = .required },
9903 .{ .kind = .IdRef, .quantifier = .required },
10725 .operands = &.{
10726 .{ .kind = .id_result, .quantifier = .required },
10727 .{ .kind = .id_ref, .quantifier = .required },
10728 .{ .kind = .id_scope, .quantifier = .required },
10729 .{ .kind = .id_ref, .quantifier = .required },
10730 .{ .kind = .id_ref, .quantifier = .required },
990410731 },
990510732 },
990610733 .{
990710734 .name = "OpCooperativeMatrixLoadNV",
990810735 .opcode = 5359,
9909 .operands = &[_]Operand{
9910 .{ .kind = .IdResultType, .quantifier = .required },
9911 .{ .kind = .IdResult, .quantifier = .required },
9912 .{ .kind = .IdRef, .quantifier = .required },
9913 .{ .kind = .IdRef, .quantifier = .required },
9914 .{ .kind = .IdRef, .quantifier = .required },
9915 .{ .kind = .MemoryAccess, .quantifier = .optional },
10736 .operands = &.{
10737 .{ .kind = .id_result_type, .quantifier = .required },
10738 .{ .kind = .id_result, .quantifier = .required },
10739 .{ .kind = .id_ref, .quantifier = .required },
10740 .{ .kind = .id_ref, .quantifier = .required },
10741 .{ .kind = .id_ref, .quantifier = .required },
10742 .{ .kind = .memory_access, .quantifier = .optional },
991610743 },
991710744 },
991810745 .{
991910746 .name = "OpCooperativeMatrixStoreNV",
992010747 .opcode = 5360,
9921 .operands = &[_]Operand{
9922 .{ .kind = .IdRef, .quantifier = .required },
9923 .{ .kind = .IdRef, .quantifier = .required },
9924 .{ .kind = .IdRef, .quantifier = .required },
9925 .{ .kind = .IdRef, .quantifier = .required },
9926 .{ .kind = .MemoryAccess, .quantifier = .optional },
10748 .operands = &.{
10749 .{ .kind = .id_ref, .quantifier = .required },
10750 .{ .kind = .id_ref, .quantifier = .required },
10751 .{ .kind = .id_ref, .quantifier = .required },
10752 .{ .kind = .id_ref, .quantifier = .required },
10753 .{ .kind = .memory_access, .quantifier = .optional },
992710754 },
992810755 },
992910756 .{
993010757 .name = "OpCooperativeMatrixMulAddNV",
993110758 .opcode = 5361,
9932 .operands = &[_]Operand{
9933 .{ .kind = .IdResultType, .quantifier = .required },
9934 .{ .kind = .IdResult, .quantifier = .required },
9935 .{ .kind = .IdRef, .quantifier = .required },
9936 .{ .kind = .IdRef, .quantifier = .required },
9937 .{ .kind = .IdRef, .quantifier = .required },
10759 .operands = &.{
10760 .{ .kind = .id_result_type, .quantifier = .required },
10761 .{ .kind = .id_result, .quantifier = .required },
10762 .{ .kind = .id_ref, .quantifier = .required },
10763 .{ .kind = .id_ref, .quantifier = .required },
10764 .{ .kind = .id_ref, .quantifier = .required },
993810765 },
993910766 },
994010767 .{
994110768 .name = "OpCooperativeMatrixLengthNV",
994210769 .opcode = 5362,
9943 .operands = &[_]Operand{
9944 .{ .kind = .IdResultType, .quantifier = .required },
9945 .{ .kind = .IdResult, .quantifier = .required },
9946 .{ .kind = .IdRef, .quantifier = .required },
10770 .operands = &.{
10771 .{ .kind = .id_result_type, .quantifier = .required },
10772 .{ .kind = .id_result, .quantifier = .required },
10773 .{ .kind = .id_ref, .quantifier = .required },
994710774 },
994810775 },
994910776 .{
995010777 .name = "OpBeginInvocationInterlockEXT",
995110778 .opcode = 5364,
9952 .operands = &[_]Operand{},
10779 .operands = &.{},
995310780 },
995410781 .{
995510782 .name = "OpEndInvocationInterlockEXT",
995610783 .opcode = 5365,
9957 .operands = &[_]Operand{},
10784 .operands = &.{},
995810785 },
995910786 .{
9960 .name = "OpDemoteToHelperInvocation",
9961 .opcode = 5380,
9962 .operands = &[_]Operand{},
10787 .name = "OpCooperativeMatrixReduceNV",
10788 .opcode = 5366,
10789 .operands = &.{
10790 .{ .kind = .id_result_type, .quantifier = .required },
10791 .{ .kind = .id_result, .quantifier = .required },
10792 .{ .kind = .id_ref, .quantifier = .required },
10793 .{ .kind = .cooperative_matrix_reduce, .quantifier = .required },
10794 .{ .kind = .id_ref, .quantifier = .required },
10795 },
996310796 },
996410797 .{
9965 .name = "OpDemoteToHelperInvocationEXT",
10798 .name = "OpCooperativeMatrixLoadTensorNV",
10799 .opcode = 5367,
10800 .operands = &.{
10801 .{ .kind = .id_result_type, .quantifier = .required },
10802 .{ .kind = .id_result, .quantifier = .required },
10803 .{ .kind = .id_ref, .quantifier = .required },
10804 .{ .kind = .id_ref, .quantifier = .required },
10805 .{ .kind = .id_ref, .quantifier = .required },
10806 .{ .kind = .memory_access, .quantifier = .required },
10807 .{ .kind = .tensor_addressing_operands, .quantifier = .required },
10808 },
10809 },
10810 .{
10811 .name = "OpCooperativeMatrixStoreTensorNV",
10812 .opcode = 5368,
10813 .operands = &.{
10814 .{ .kind = .id_ref, .quantifier = .required },
10815 .{ .kind = .id_ref, .quantifier = .required },
10816 .{ .kind = .id_ref, .quantifier = .required },
10817 .{ .kind = .memory_access, .quantifier = .required },
10818 .{ .kind = .tensor_addressing_operands, .quantifier = .required },
10819 },
10820 },
10821 .{
10822 .name = "OpCooperativeMatrixPerElementOpNV",
10823 .opcode = 5369,
10824 .operands = &.{
10825 .{ .kind = .id_result_type, .quantifier = .required },
10826 .{ .kind = .id_result, .quantifier = .required },
10827 .{ .kind = .id_ref, .quantifier = .required },
10828 .{ .kind = .id_ref, .quantifier = .required },
10829 .{ .kind = .id_ref, .quantifier = .variadic },
10830 },
10831 },
10832 .{
10833 .name = "OpTypeTensorLayoutNV",
10834 .opcode = 5370,
10835 .operands = &.{
10836 .{ .kind = .id_result, .quantifier = .required },
10837 .{ .kind = .id_ref, .quantifier = .required },
10838 .{ .kind = .id_ref, .quantifier = .required },
10839 },
10840 },
10841 .{
10842 .name = "OpTypeTensorViewNV",
10843 .opcode = 5371,
10844 .operands = &.{
10845 .{ .kind = .id_result, .quantifier = .required },
10846 .{ .kind = .id_ref, .quantifier = .required },
10847 .{ .kind = .id_ref, .quantifier = .required },
10848 .{ .kind = .id_ref, .quantifier = .variadic },
10849 },
10850 },
10851 .{
10852 .name = "OpCreateTensorLayoutNV",
10853 .opcode = 5372,
10854 .operands = &.{
10855 .{ .kind = .id_result_type, .quantifier = .required },
10856 .{ .kind = .id_result, .quantifier = .required },
10857 },
10858 },
10859 .{
10860 .name = "OpTensorLayoutSetDimensionNV",
10861 .opcode = 5373,
10862 .operands = &.{
10863 .{ .kind = .id_result_type, .quantifier = .required },
10864 .{ .kind = .id_result, .quantifier = .required },
10865 .{ .kind = .id_ref, .quantifier = .required },
10866 .{ .kind = .id_ref, .quantifier = .variadic },
10867 },
10868 },
10869 .{
10870 .name = "OpTensorLayoutSetStrideNV",
10871 .opcode = 5374,
10872 .operands = &.{
10873 .{ .kind = .id_result_type, .quantifier = .required },
10874 .{ .kind = .id_result, .quantifier = .required },
10875 .{ .kind = .id_ref, .quantifier = .required },
10876 .{ .kind = .id_ref, .quantifier = .variadic },
10877 },
10878 },
10879 .{
10880 .name = "OpTensorLayoutSliceNV",
10881 .opcode = 5375,
10882 .operands = &.{
10883 .{ .kind = .id_result_type, .quantifier = .required },
10884 .{ .kind = .id_result, .quantifier = .required },
10885 .{ .kind = .id_ref, .quantifier = .required },
10886 .{ .kind = .id_ref, .quantifier = .variadic },
10887 },
10888 },
10889 .{
10890 .name = "OpTensorLayoutSetClampValueNV",
10891 .opcode = 5376,
10892 .operands = &.{
10893 .{ .kind = .id_result_type, .quantifier = .required },
10894 .{ .kind = .id_result, .quantifier = .required },
10895 .{ .kind = .id_ref, .quantifier = .required },
10896 .{ .kind = .id_ref, .quantifier = .required },
10897 },
10898 },
10899 .{
10900 .name = "OpCreateTensorViewNV",
10901 .opcode = 5377,
10902 .operands = &.{
10903 .{ .kind = .id_result_type, .quantifier = .required },
10904 .{ .kind = .id_result, .quantifier = .required },
10905 },
10906 },
10907 .{
10908 .name = "OpTensorViewSetDimensionNV",
10909 .opcode = 5378,
10910 .operands = &.{
10911 .{ .kind = .id_result_type, .quantifier = .required },
10912 .{ .kind = .id_result, .quantifier = .required },
10913 .{ .kind = .id_ref, .quantifier = .required },
10914 .{ .kind = .id_ref, .quantifier = .variadic },
10915 },
10916 },
10917 .{
10918 .name = "OpTensorViewSetStrideNV",
10919 .opcode = 5379,
10920 .operands = &.{
10921 .{ .kind = .id_result_type, .quantifier = .required },
10922 .{ .kind = .id_result, .quantifier = .required },
10923 .{ .kind = .id_ref, .quantifier = .required },
10924 .{ .kind = .id_ref, .quantifier = .variadic },
10925 },
10926 },
10927 .{
10928 .name = "OpDemoteToHelperInvocation",
996610929 .opcode = 5380,
9967 .operands = &[_]Operand{},
10930 .operands = &.{},
996810931 },
996910932 .{
997010933 .name = "OpIsHelperInvocationEXT",
997110934 .opcode = 5381,
9972 .operands = &[_]Operand{
9973 .{ .kind = .IdResultType, .quantifier = .required },
9974 .{ .kind = .IdResult, .quantifier = .required },
10935 .operands = &.{
10936 .{ .kind = .id_result_type, .quantifier = .required },
10937 .{ .kind = .id_result, .quantifier = .required },
10938 },
10939 },
10940 .{
10941 .name = "OpTensorViewSetClipNV",
10942 .opcode = 5382,
10943 .operands = &.{
10944 .{ .kind = .id_result_type, .quantifier = .required },
10945 .{ .kind = .id_result, .quantifier = .required },
10946 .{ .kind = .id_ref, .quantifier = .required },
10947 .{ .kind = .id_ref, .quantifier = .required },
10948 .{ .kind = .id_ref, .quantifier = .required },
10949 .{ .kind = .id_ref, .quantifier = .required },
10950 .{ .kind = .id_ref, .quantifier = .required },
10951 },
10952 },
10953 .{
10954 .name = "OpTensorLayoutSetBlockSizeNV",
10955 .opcode = 5384,
10956 .operands = &.{
10957 .{ .kind = .id_result_type, .quantifier = .required },
10958 .{ .kind = .id_result, .quantifier = .required },
10959 .{ .kind = .id_ref, .quantifier = .required },
10960 .{ .kind = .id_ref, .quantifier = .variadic },
10961 },
10962 },
10963 .{
10964 .name = "OpCooperativeMatrixTransposeNV",
10965 .opcode = 5390,
10966 .operands = &.{
10967 .{ .kind = .id_result_type, .quantifier = .required },
10968 .{ .kind = .id_result, .quantifier = .required },
10969 .{ .kind = .id_ref, .quantifier = .required },
997510970 },
997610971 },
997710972 .{
997810973 .name = "OpConvertUToImageNV",
997910974 .opcode = 5391,
9980 .operands = &[_]Operand{
9981 .{ .kind = .IdResultType, .quantifier = .required },
9982 .{ .kind = .IdResult, .quantifier = .required },
9983 .{ .kind = .IdRef, .quantifier = .required },
10975 .operands = &.{
10976 .{ .kind = .id_result_type, .quantifier = .required },
10977 .{ .kind = .id_result, .quantifier = .required },
10978 .{ .kind = .id_ref, .quantifier = .required },
998410979 },
998510980 },
998610981 .{
998710982 .name = "OpConvertUToSamplerNV",
998810983 .opcode = 5392,
9989 .operands = &[_]Operand{
9990 .{ .kind = .IdResultType, .quantifier = .required },
9991 .{ .kind = .IdResult, .quantifier = .required },
9992 .{ .kind = .IdRef, .quantifier = .required },
10984 .operands = &.{
10985 .{ .kind = .id_result_type, .quantifier = .required },
10986 .{ .kind = .id_result, .quantifier = .required },
10987 .{ .kind = .id_ref, .quantifier = .required },
999310988 },
999410989 },
999510990 .{
999610991 .name = "OpConvertImageToUNV",
999710992 .opcode = 5393,
9998 .operands = &[_]Operand{
9999 .{ .kind = .IdResultType, .quantifier = .required },
10000 .{ .kind = .IdResult, .quantifier = .required },
10001 .{ .kind = .IdRef, .quantifier = .required },
10993 .operands = &.{
10994 .{ .kind = .id_result_type, .quantifier = .required },
10995 .{ .kind = .id_result, .quantifier = .required },
10996 .{ .kind = .id_ref, .quantifier = .required },
1000210997 },
1000310998 },
1000410999 .{
1000511000 .name = "OpConvertSamplerToUNV",
1000611001 .opcode = 5394,
10007 .operands = &[_]Operand{
10008 .{ .kind = .IdResultType, .quantifier = .required },
10009 .{ .kind = .IdResult, .quantifier = .required },
10010 .{ .kind = .IdRef, .quantifier = .required },
11002 .operands = &.{
11003 .{ .kind = .id_result_type, .quantifier = .required },
11004 .{ .kind = .id_result, .quantifier = .required },
11005 .{ .kind = .id_ref, .quantifier = .required },
1001111006 },
1001211007 },
1001311008 .{
1001411009 .name = "OpConvertUToSampledImageNV",
1001511010 .opcode = 5395,
10016 .operands = &[_]Operand{
10017 .{ .kind = .IdResultType, .quantifier = .required },
10018 .{ .kind = .IdResult, .quantifier = .required },
10019 .{ .kind = .IdRef, .quantifier = .required },
11011 .operands = &.{
11012 .{ .kind = .id_result_type, .quantifier = .required },
11013 .{ .kind = .id_result, .quantifier = .required },
11014 .{ .kind = .id_ref, .quantifier = .required },
1002011015 },
1002111016 },
1002211017 .{
1002311018 .name = "OpConvertSampledImageToUNV",
1002411019 .opcode = 5396,
10025 .operands = &[_]Operand{
10026 .{ .kind = .IdResultType, .quantifier = .required },
10027 .{ .kind = .IdResult, .quantifier = .required },
10028 .{ .kind = .IdRef, .quantifier = .required },
11020 .operands = &.{
11021 .{ .kind = .id_result_type, .quantifier = .required },
11022 .{ .kind = .id_result, .quantifier = .required },
11023 .{ .kind = .id_ref, .quantifier = .required },
1002911024 },
1003011025 },
1003111026 .{
1003211027 .name = "OpSamplerImageAddressingModeNV",
1003311028 .opcode = 5397,
10034 .operands = &[_]Operand{
10035 .{ .kind = .LiteralInteger, .quantifier = .required },
11029 .operands = &.{
11030 .{ .kind = .literal_integer, .quantifier = .required },
1003611031 },
1003711032 },
1003811033 .{
1003911034 .name = "OpRawAccessChainNV",
1004011035 .opcode = 5398,
10041 .operands = &[_]Operand{
10042 .{ .kind = .IdResultType, .quantifier = .required },
10043 .{ .kind = .IdResult, .quantifier = .required },
10044 .{ .kind = .IdRef, .quantifier = .required },
10045 .{ .kind = .IdRef, .quantifier = .required },
10046 .{ .kind = .IdRef, .quantifier = .required },
10047 .{ .kind = .IdRef, .quantifier = .required },
10048 .{ .kind = .RawAccessChainOperands, .quantifier = .optional },
11036 .operands = &.{
11037 .{ .kind = .id_result_type, .quantifier = .required },
11038 .{ .kind = .id_result, .quantifier = .required },
11039 .{ .kind = .id_ref, .quantifier = .required },
11040 .{ .kind = .id_ref, .quantifier = .required },
11041 .{ .kind = .id_ref, .quantifier = .required },
11042 .{ .kind = .id_ref, .quantifier = .required },
11043 .{ .kind = .raw_access_chain_operands, .quantifier = .optional },
11044 },
11045 },
11046 .{
11047 .name = "OpRayQueryGetIntersectionSpherePositionNV",
11048 .opcode = 5427,
11049 .operands = &.{
11050 .{ .kind = .id_result_type, .quantifier = .required },
11051 .{ .kind = .id_result, .quantifier = .required },
11052 .{ .kind = .id_ref, .quantifier = .required },
11053 .{ .kind = .id_ref, .quantifier = .required },
11054 },
11055 },
11056 .{
11057 .name = "OpRayQueryGetIntersectionSphereRadiusNV",
11058 .opcode = 5428,
11059 .operands = &.{
11060 .{ .kind = .id_result_type, .quantifier = .required },
11061 .{ .kind = .id_result, .quantifier = .required },
11062 .{ .kind = .id_ref, .quantifier = .required },
11063 .{ .kind = .id_ref, .quantifier = .required },
11064 },
11065 },
11066 .{
11067 .name = "OpRayQueryGetIntersectionLSSPositionsNV",
11068 .opcode = 5429,
11069 .operands = &.{
11070 .{ .kind = .id_result_type, .quantifier = .required },
11071 .{ .kind = .id_result, .quantifier = .required },
11072 .{ .kind = .id_ref, .quantifier = .required },
11073 .{ .kind = .id_ref, .quantifier = .required },
11074 },
11075 },
11076 .{
11077 .name = "OpRayQueryGetIntersectionLSSRadiiNV",
11078 .opcode = 5430,
11079 .operands = &.{
11080 .{ .kind = .id_result_type, .quantifier = .required },
11081 .{ .kind = .id_result, .quantifier = .required },
11082 .{ .kind = .id_ref, .quantifier = .required },
11083 .{ .kind = .id_ref, .quantifier = .required },
11084 },
11085 },
11086 .{
11087 .name = "OpRayQueryGetIntersectionLSSHitValueNV",
11088 .opcode = 5431,
11089 .operands = &.{
11090 .{ .kind = .id_result_type, .quantifier = .required },
11091 .{ .kind = .id_result, .quantifier = .required },
11092 .{ .kind = .id_ref, .quantifier = .required },
11093 .{ .kind = .id_ref, .quantifier = .required },
11094 },
11095 },
11096 .{
11097 .name = "OpHitObjectGetSpherePositionNV",
11098 .opcode = 5432,
11099 .operands = &.{
11100 .{ .kind = .id_result_type, .quantifier = .required },
11101 .{ .kind = .id_result, .quantifier = .required },
11102 .{ .kind = .id_ref, .quantifier = .required },
11103 },
11104 },
11105 .{
11106 .name = "OpHitObjectGetSphereRadiusNV",
11107 .opcode = 5433,
11108 .operands = &.{
11109 .{ .kind = .id_result_type, .quantifier = .required },
11110 .{ .kind = .id_result, .quantifier = .required },
11111 .{ .kind = .id_ref, .quantifier = .required },
11112 },
11113 },
11114 .{
11115 .name = "OpHitObjectGetLSSPositionsNV",
11116 .opcode = 5434,
11117 .operands = &.{
11118 .{ .kind = .id_result_type, .quantifier = .required },
11119 .{ .kind = .id_result, .quantifier = .required },
11120 .{ .kind = .id_ref, .quantifier = .required },
11121 },
11122 },
11123 .{
11124 .name = "OpHitObjectGetLSSRadiiNV",
11125 .opcode = 5435,
11126 .operands = &.{
11127 .{ .kind = .id_result_type, .quantifier = .required },
11128 .{ .kind = .id_result, .quantifier = .required },
11129 .{ .kind = .id_ref, .quantifier = .required },
11130 },
11131 },
11132 .{
11133 .name = "OpHitObjectIsSphereHitNV",
11134 .opcode = 5436,
11135 .operands = &.{
11136 .{ .kind = .id_result_type, .quantifier = .required },
11137 .{ .kind = .id_result, .quantifier = .required },
11138 .{ .kind = .id_ref, .quantifier = .required },
11139 },
11140 },
11141 .{
11142 .name = "OpHitObjectIsLSSHitNV",
11143 .opcode = 5437,
11144 .operands = &.{
11145 .{ .kind = .id_result_type, .quantifier = .required },
11146 .{ .kind = .id_result, .quantifier = .required },
11147 .{ .kind = .id_ref, .quantifier = .required },
11148 },
11149 },
11150 .{
11151 .name = "OpRayQueryIsSphereHitNV",
11152 .opcode = 5438,
11153 .operands = &.{
11154 .{ .kind = .id_result_type, .quantifier = .required },
11155 .{ .kind = .id_result, .quantifier = .required },
11156 .{ .kind = .id_ref, .quantifier = .required },
11157 .{ .kind = .id_ref, .quantifier = .required },
11158 },
11159 },
11160 .{
11161 .name = "OpRayQueryIsLSSHitNV",
11162 .opcode = 5439,
11163 .operands = &.{
11164 .{ .kind = .id_result_type, .quantifier = .required },
11165 .{ .kind = .id_result, .quantifier = .required },
11166 .{ .kind = .id_ref, .quantifier = .required },
11167 .{ .kind = .id_ref, .quantifier = .required },
1004911168 },
1005011169 },
1005111170 .{
1005211171 .name = "OpSubgroupShuffleINTEL",
1005311172 .opcode = 5571,
10054 .operands = &[_]Operand{
10055 .{ .kind = .IdResultType, .quantifier = .required },
10056 .{ .kind = .IdResult, .quantifier = .required },
10057 .{ .kind = .IdRef, .quantifier = .required },
10058 .{ .kind = .IdRef, .quantifier = .required },
11173 .operands = &.{
11174 .{ .kind = .id_result_type, .quantifier = .required },
11175 .{ .kind = .id_result, .quantifier = .required },
11176 .{ .kind = .id_ref, .quantifier = .required },
11177 .{ .kind = .id_ref, .quantifier = .required },
1005911178 },
1006011179 },
1006111180 .{
1006211181 .name = "OpSubgroupShuffleDownINTEL",
1006311182 .opcode = 5572,
10064 .operands = &[_]Operand{
10065 .{ .kind = .IdResultType, .quantifier = .required },
10066 .{ .kind = .IdResult, .quantifier = .required },
10067 .{ .kind = .IdRef, .quantifier = .required },
10068 .{ .kind = .IdRef, .quantifier = .required },
10069 .{ .kind = .IdRef, .quantifier = .required },
11183 .operands = &.{
11184 .{ .kind = .id_result_type, .quantifier = .required },
11185 .{ .kind = .id_result, .quantifier = .required },
11186 .{ .kind = .id_ref, .quantifier = .required },
11187 .{ .kind = .id_ref, .quantifier = .required },
11188 .{ .kind = .id_ref, .quantifier = .required },
1007011189 },
1007111190 },
1007211191 .{
1007311192 .name = "OpSubgroupShuffleUpINTEL",
1007411193 .opcode = 5573,
10075 .operands = &[_]Operand{
10076 .{ .kind = .IdResultType, .quantifier = .required },
10077 .{ .kind = .IdResult, .quantifier = .required },
10078 .{ .kind = .IdRef, .quantifier = .required },
10079 .{ .kind = .IdRef, .quantifier = .required },
10080 .{ .kind = .IdRef, .quantifier = .required },
11194 .operands = &.{
11195 .{ .kind = .id_result_type, .quantifier = .required },
11196 .{ .kind = .id_result, .quantifier = .required },
11197 .{ .kind = .id_ref, .quantifier = .required },
11198 .{ .kind = .id_ref, .quantifier = .required },
11199 .{ .kind = .id_ref, .quantifier = .required },
1008111200 },
1008211201 },
1008311202 .{
1008411203 .name = "OpSubgroupShuffleXorINTEL",
1008511204 .opcode = 5574,
10086 .operands = &[_]Operand{
10087 .{ .kind = .IdResultType, .quantifier = .required },
10088 .{ .kind = .IdResult, .quantifier = .required },
10089 .{ .kind = .IdRef, .quantifier = .required },
10090 .{ .kind = .IdRef, .quantifier = .required },
11205 .operands = &.{
11206 .{ .kind = .id_result_type, .quantifier = .required },
11207 .{ .kind = .id_result, .quantifier = .required },
11208 .{ .kind = .id_ref, .quantifier = .required },
11209 .{ .kind = .id_ref, .quantifier = .required },
1009111210 },
1009211211 },
1009311212 .{
1009411213 .name = "OpSubgroupBlockReadINTEL",
1009511214 .opcode = 5575,
10096 .operands = &[_]Operand{
10097 .{ .kind = .IdResultType, .quantifier = .required },
10098 .{ .kind = .IdResult, .quantifier = .required },
10099 .{ .kind = .IdRef, .quantifier = .required },
11215 .operands = &.{
11216 .{ .kind = .id_result_type, .quantifier = .required },
11217 .{ .kind = .id_result, .quantifier = .required },
11218 .{ .kind = .id_ref, .quantifier = .required },
1010011219 },
1010111220 },
1010211221 .{
1010311222 .name = "OpSubgroupBlockWriteINTEL",
1010411223 .opcode = 5576,
10105 .operands = &[_]Operand{
10106 .{ .kind = .IdRef, .quantifier = .required },
10107 .{ .kind = .IdRef, .quantifier = .required },
11224 .operands = &.{
11225 .{ .kind = .id_ref, .quantifier = .required },
11226 .{ .kind = .id_ref, .quantifier = .required },
1010811227 },
1010911228 },
1011011229 .{
1011111230 .name = "OpSubgroupImageBlockReadINTEL",
1011211231 .opcode = 5577,
10113 .operands = &[_]Operand{
10114 .{ .kind = .IdResultType, .quantifier = .required },
10115 .{ .kind = .IdResult, .quantifier = .required },
10116 .{ .kind = .IdRef, .quantifier = .required },
10117 .{ .kind = .IdRef, .quantifier = .required },
11232 .operands = &.{
11233 .{ .kind = .id_result_type, .quantifier = .required },
11234 .{ .kind = .id_result, .quantifier = .required },
11235 .{ .kind = .id_ref, .quantifier = .required },
11236 .{ .kind = .id_ref, .quantifier = .required },
1011811237 },
1011911238 },
1012011239 .{
1012111240 .name = "OpSubgroupImageBlockWriteINTEL",
1012211241 .opcode = 5578,
10123 .operands = &[_]Operand{
10124 .{ .kind = .IdRef, .quantifier = .required },
10125 .{ .kind = .IdRef, .quantifier = .required },
10126 .{ .kind = .IdRef, .quantifier = .required },
11242 .operands = &.{
11243 .{ .kind = .id_ref, .quantifier = .required },
11244 .{ .kind = .id_ref, .quantifier = .required },
11245 .{ .kind = .id_ref, .quantifier = .required },
1012711246 },
1012811247 },
1012911248 .{
1013011249 .name = "OpSubgroupImageMediaBlockReadINTEL",
1013111250 .opcode = 5580,
10132 .operands = &[_]Operand{
10133 .{ .kind = .IdResultType, .quantifier = .required },
10134 .{ .kind = .IdResult, .quantifier = .required },
10135 .{ .kind = .IdRef, .quantifier = .required },
10136 .{ .kind = .IdRef, .quantifier = .required },
10137 .{ .kind = .IdRef, .quantifier = .required },
10138 .{ .kind = .IdRef, .quantifier = .required },
11251 .operands = &.{
11252 .{ .kind = .id_result_type, .quantifier = .required },
11253 .{ .kind = .id_result, .quantifier = .required },
11254 .{ .kind = .id_ref, .quantifier = .required },
11255 .{ .kind = .id_ref, .quantifier = .required },
11256 .{ .kind = .id_ref, .quantifier = .required },
11257 .{ .kind = .id_ref, .quantifier = .required },
1013911258 },
1014011259 },
1014111260 .{
1014211261 .name = "OpSubgroupImageMediaBlockWriteINTEL",
1014311262 .opcode = 5581,
10144 .operands = &[_]Operand{
10145 .{ .kind = .IdRef, .quantifier = .required },
10146 .{ .kind = .IdRef, .quantifier = .required },
10147 .{ .kind = .IdRef, .quantifier = .required },
10148 .{ .kind = .IdRef, .quantifier = .required },
10149 .{ .kind = .IdRef, .quantifier = .required },
11263 .operands = &.{
11264 .{ .kind = .id_ref, .quantifier = .required },
11265 .{ .kind = .id_ref, .quantifier = .required },
11266 .{ .kind = .id_ref, .quantifier = .required },
11267 .{ .kind = .id_ref, .quantifier = .required },
11268 .{ .kind = .id_ref, .quantifier = .required },
1015011269 },
1015111270 },
1015211271 .{
1015311272 .name = "OpUCountLeadingZerosINTEL",
1015411273 .opcode = 5585,
10155 .operands = &[_]Operand{
10156 .{ .kind = .IdResultType, .quantifier = .required },
10157 .{ .kind = .IdResult, .quantifier = .required },
10158 .{ .kind = .IdRef, .quantifier = .required },
11274 .operands = &.{
11275 .{ .kind = .id_result_type, .quantifier = .required },
11276 .{ .kind = .id_result, .quantifier = .required },
11277 .{ .kind = .id_ref, .quantifier = .required },
1015911278 },
1016011279 },
1016111280 .{
1016211281 .name = "OpUCountTrailingZerosINTEL",
1016311282 .opcode = 5586,
10164 .operands = &[_]Operand{
10165 .{ .kind = .IdResultType, .quantifier = .required },
10166 .{ .kind = .IdResult, .quantifier = .required },
10167 .{ .kind = .IdRef, .quantifier = .required },
11283 .operands = &.{
11284 .{ .kind = .id_result_type, .quantifier = .required },
11285 .{ .kind = .id_result, .quantifier = .required },
11286 .{ .kind = .id_ref, .quantifier = .required },
1016811287 },
1016911288 },
1017011289 .{
1017111290 .name = "OpAbsISubINTEL",
1017211291 .opcode = 5587,
10173 .operands = &[_]Operand{
10174 .{ .kind = .IdResultType, .quantifier = .required },
10175 .{ .kind = .IdResult, .quantifier = .required },
10176 .{ .kind = .IdRef, .quantifier = .required },
10177 .{ .kind = .IdRef, .quantifier = .required },
11292 .operands = &.{
11293 .{ .kind = .id_result_type, .quantifier = .required },
11294 .{ .kind = .id_result, .quantifier = .required },
11295 .{ .kind = .id_ref, .quantifier = .required },
11296 .{ .kind = .id_ref, .quantifier = .required },
1017811297 },
1017911298 },
1018011299 .{
1018111300 .name = "OpAbsUSubINTEL",
1018211301 .opcode = 5588,
10183 .operands = &[_]Operand{
10184 .{ .kind = .IdResultType, .quantifier = .required },
10185 .{ .kind = .IdResult, .quantifier = .required },
10186 .{ .kind = .IdRef, .quantifier = .required },
10187 .{ .kind = .IdRef, .quantifier = .required },
11302 .operands = &.{
11303 .{ .kind = .id_result_type, .quantifier = .required },
11304 .{ .kind = .id_result, .quantifier = .required },
11305 .{ .kind = .id_ref, .quantifier = .required },
11306 .{ .kind = .id_ref, .quantifier = .required },
1018811307 },
1018911308 },
1019011309 .{
1019111310 .name = "OpIAddSatINTEL",
1019211311 .opcode = 5589,
10193 .operands = &[_]Operand{
10194 .{ .kind = .IdResultType, .quantifier = .required },
10195 .{ .kind = .IdResult, .quantifier = .required },
10196 .{ .kind = .IdRef, .quantifier = .required },
10197 .{ .kind = .IdRef, .quantifier = .required },
11312 .operands = &.{
11313 .{ .kind = .id_result_type, .quantifier = .required },
11314 .{ .kind = .id_result, .quantifier = .required },
11315 .{ .kind = .id_ref, .quantifier = .required },
11316 .{ .kind = .id_ref, .quantifier = .required },
1019811317 },
1019911318 },
1020011319 .{
1020111320 .name = "OpUAddSatINTEL",
1020211321 .opcode = 5590,
10203 .operands = &[_]Operand{
10204 .{ .kind = .IdResultType, .quantifier = .required },
10205 .{ .kind = .IdResult, .quantifier = .required },
10206 .{ .kind = .IdRef, .quantifier = .required },
10207 .{ .kind = .IdRef, .quantifier = .required },
11322 .operands = &.{
11323 .{ .kind = .id_result_type, .quantifier = .required },
11324 .{ .kind = .id_result, .quantifier = .required },
11325 .{ .kind = .id_ref, .quantifier = .required },
11326 .{ .kind = .id_ref, .quantifier = .required },
1020811327 },
1020911328 },
1021011329 .{
1021111330 .name = "OpIAverageINTEL",
1021211331 .opcode = 5591,
10213 .operands = &[_]Operand{
10214 .{ .kind = .IdResultType, .quantifier = .required },
10215 .{ .kind = .IdResult, .quantifier = .required },
10216 .{ .kind = .IdRef, .quantifier = .required },
10217 .{ .kind = .IdRef, .quantifier = .required },
11332 .operands = &.{
11333 .{ .kind = .id_result_type, .quantifier = .required },
11334 .{ .kind = .id_result, .quantifier = .required },
11335 .{ .kind = .id_ref, .quantifier = .required },
11336 .{ .kind = .id_ref, .quantifier = .required },
1021811337 },
1021911338 },
1022011339 .{
1022111340 .name = "OpUAverageINTEL",
1022211341 .opcode = 5592,
10223 .operands = &[_]Operand{
10224 .{ .kind = .IdResultType, .quantifier = .required },
10225 .{ .kind = .IdResult, .quantifier = .required },
10226 .{ .kind = .IdRef, .quantifier = .required },
10227 .{ .kind = .IdRef, .quantifier = .required },
11342 .operands = &.{
11343 .{ .kind = .id_result_type, .quantifier = .required },
11344 .{ .kind = .id_result, .quantifier = .required },
11345 .{ .kind = .id_ref, .quantifier = .required },
11346 .{ .kind = .id_ref, .quantifier = .required },
1022811347 },
1022911348 },
1023011349 .{
1023111350 .name = "OpIAverageRoundedINTEL",
1023211351 .opcode = 5593,
10233 .operands = &[_]Operand{
10234 .{ .kind = .IdResultType, .quantifier = .required },
10235 .{ .kind = .IdResult, .quantifier = .required },
10236 .{ .kind = .IdRef, .quantifier = .required },
10237 .{ .kind = .IdRef, .quantifier = .required },
11352 .operands = &.{
11353 .{ .kind = .id_result_type, .quantifier = .required },
11354 .{ .kind = .id_result, .quantifier = .required },
11355 .{ .kind = .id_ref, .quantifier = .required },
11356 .{ .kind = .id_ref, .quantifier = .required },
1023811357 },
1023911358 },
1024011359 .{
1024111360 .name = "OpUAverageRoundedINTEL",
1024211361 .opcode = 5594,
10243 .operands = &[_]Operand{
10244 .{ .kind = .IdResultType, .quantifier = .required },
10245 .{ .kind = .IdResult, .quantifier = .required },
10246 .{ .kind = .IdRef, .quantifier = .required },
10247 .{ .kind = .IdRef, .quantifier = .required },
11362 .operands = &.{
11363 .{ .kind = .id_result_type, .quantifier = .required },
11364 .{ .kind = .id_result, .quantifier = .required },
11365 .{ .kind = .id_ref, .quantifier = .required },
11366 .{ .kind = .id_ref, .quantifier = .required },
1024811367 },
1024911368 },
1025011369 .{
1025111370 .name = "OpISubSatINTEL",
1025211371 .opcode = 5595,
10253 .operands = &[_]Operand{
10254 .{ .kind = .IdResultType, .quantifier = .required },
10255 .{ .kind = .IdResult, .quantifier = .required },
10256 .{ .kind = .IdRef, .quantifier = .required },
10257 .{ .kind = .IdRef, .quantifier = .required },
11372 .operands = &.{
11373 .{ .kind = .id_result_type, .quantifier = .required },
11374 .{ .kind = .id_result, .quantifier = .required },
11375 .{ .kind = .id_ref, .quantifier = .required },
11376 .{ .kind = .id_ref, .quantifier = .required },
1025811377 },
1025911378 },
1026011379 .{
1026111380 .name = "OpUSubSatINTEL",
1026211381 .opcode = 5596,
10263 .operands = &[_]Operand{
10264 .{ .kind = .IdResultType, .quantifier = .required },
10265 .{ .kind = .IdResult, .quantifier = .required },
10266 .{ .kind = .IdRef, .quantifier = .required },
10267 .{ .kind = .IdRef, .quantifier = .required },
11382 .operands = &.{
11383 .{ .kind = .id_result_type, .quantifier = .required },
11384 .{ .kind = .id_result, .quantifier = .required },
11385 .{ .kind = .id_ref, .quantifier = .required },
11386 .{ .kind = .id_ref, .quantifier = .required },
1026811387 },
1026911388 },
1027011389 .{
1027111390 .name = "OpIMul32x16INTEL",
1027211391 .opcode = 5597,
10273 .operands = &[_]Operand{
10274 .{ .kind = .IdResultType, .quantifier = .required },
10275 .{ .kind = .IdResult, .quantifier = .required },
10276 .{ .kind = .IdRef, .quantifier = .required },
10277 .{ .kind = .IdRef, .quantifier = .required },
11392 .operands = &.{
11393 .{ .kind = .id_result_type, .quantifier = .required },
11394 .{ .kind = .id_result, .quantifier = .required },
11395 .{ .kind = .id_ref, .quantifier = .required },
11396 .{ .kind = .id_ref, .quantifier = .required },
1027811397 },
1027911398 },
1028011399 .{
1028111400 .name = "OpUMul32x16INTEL",
1028211401 .opcode = 5598,
10283 .operands = &[_]Operand{
10284 .{ .kind = .IdResultType, .quantifier = .required },
10285 .{ .kind = .IdResult, .quantifier = .required },
10286 .{ .kind = .IdRef, .quantifier = .required },
10287 .{ .kind = .IdRef, .quantifier = .required },
11402 .operands = &.{
11403 .{ .kind = .id_result_type, .quantifier = .required },
11404 .{ .kind = .id_result, .quantifier = .required },
11405 .{ .kind = .id_ref, .quantifier = .required },
11406 .{ .kind = .id_ref, .quantifier = .required },
1028811407 },
1028911408 },
1029011409 .{
1029111410 .name = "OpConstantFunctionPointerINTEL",
1029211411 .opcode = 5600,
10293 .operands = &[_]Operand{
10294 .{ .kind = .IdResultType, .quantifier = .required },
10295 .{ .kind = .IdResult, .quantifier = .required },
10296 .{ .kind = .IdRef, .quantifier = .required },
11412 .operands = &.{
11413 .{ .kind = .id_result_type, .quantifier = .required },
11414 .{ .kind = .id_result, .quantifier = .required },
11415 .{ .kind = .id_ref, .quantifier = .required },
1029711416 },
1029811417 },
1029911418 .{
1030011419 .name = "OpFunctionPointerCallINTEL",
1030111420 .opcode = 5601,
10302 .operands = &[_]Operand{
10303 .{ .kind = .IdResultType, .quantifier = .required },
10304 .{ .kind = .IdResult, .quantifier = .required },
10305 .{ .kind = .IdRef, .quantifier = .variadic },
11421 .operands = &.{
11422 .{ .kind = .id_result_type, .quantifier = .required },
11423 .{ .kind = .id_result, .quantifier = .required },
11424 .{ .kind = .id_ref, .quantifier = .variadic },
1030611425 },
1030711426 },
1030811427 .{
1030911428 .name = "OpAsmTargetINTEL",
1031011429 .opcode = 5609,
10311 .operands = &[_]Operand{
10312 .{ .kind = .IdResultType, .quantifier = .required },
10313 .{ .kind = .IdResult, .quantifier = .required },
10314 .{ .kind = .LiteralString, .quantifier = .required },
11430 .operands = &.{
11431 .{ .kind = .id_result, .quantifier = .required },
11432 .{ .kind = .literal_string, .quantifier = .required },
1031511433 },
1031611434 },
1031711435 .{
1031811436 .name = "OpAsmINTEL",
1031911437 .opcode = 5610,
10320 .operands = &[_]Operand{
10321 .{ .kind = .IdResultType, .quantifier = .required },
10322 .{ .kind = .IdResult, .quantifier = .required },
10323 .{ .kind = .IdRef, .quantifier = .required },
10324 .{ .kind = .IdRef, .quantifier = .required },
10325 .{ .kind = .LiteralString, .quantifier = .required },
10326 .{ .kind = .LiteralString, .quantifier = .required },
11438 .operands = &.{
11439 .{ .kind = .id_result_type, .quantifier = .required },
11440 .{ .kind = .id_result, .quantifier = .required },
11441 .{ .kind = .id_ref, .quantifier = .required },
11442 .{ .kind = .id_ref, .quantifier = .required },
11443 .{ .kind = .literal_string, .quantifier = .required },
11444 .{ .kind = .literal_string, .quantifier = .required },
1032711445 },
1032811446 },
1032911447 .{
1033011448 .name = "OpAsmCallINTEL",
1033111449 .opcode = 5611,
10332 .operands = &[_]Operand{
10333 .{ .kind = .IdResultType, .quantifier = .required },
10334 .{ .kind = .IdResult, .quantifier = .required },
10335 .{ .kind = .IdRef, .quantifier = .required },
10336 .{ .kind = .IdRef, .quantifier = .variadic },
11450 .operands = &.{
11451 .{ .kind = .id_result_type, .quantifier = .required },
11452 .{ .kind = .id_result, .quantifier = .required },
11453 .{ .kind = .id_ref, .quantifier = .required },
11454 .{ .kind = .id_ref, .quantifier = .variadic },
1033711455 },
1033811456 },
1033911457 .{
1034011458 .name = "OpAtomicFMinEXT",
1034111459 .opcode = 5614,
10342 .operands = &[_]Operand{
10343 .{ .kind = .IdResultType, .quantifier = .required },
10344 .{ .kind = .IdResult, .quantifier = .required },
10345 .{ .kind = .IdRef, .quantifier = .required },
10346 .{ .kind = .IdScope, .quantifier = .required },
10347 .{ .kind = .IdMemorySemantics, .quantifier = .required },
10348 .{ .kind = .IdRef, .quantifier = .required },
11460 .operands = &.{
11461 .{ .kind = .id_result_type, .quantifier = .required },
11462 .{ .kind = .id_result, .quantifier = .required },
11463 .{ .kind = .id_ref, .quantifier = .required },
11464 .{ .kind = .id_scope, .quantifier = .required },
11465 .{ .kind = .id_memory_semantics, .quantifier = .required },
11466 .{ .kind = .id_ref, .quantifier = .required },
1034911467 },
1035011468 },
1035111469 .{
1035211470 .name = "OpAtomicFMaxEXT",
1035311471 .opcode = 5615,
10354 .operands = &[_]Operand{
10355 .{ .kind = .IdResultType, .quantifier = .required },
10356 .{ .kind = .IdResult, .quantifier = .required },
10357 .{ .kind = .IdRef, .quantifier = .required },
10358 .{ .kind = .IdScope, .quantifier = .required },
10359 .{ .kind = .IdMemorySemantics, .quantifier = .required },
10360 .{ .kind = .IdRef, .quantifier = .required },
11472 .operands = &.{
11473 .{ .kind = .id_result_type, .quantifier = .required },
11474 .{ .kind = .id_result, .quantifier = .required },
11475 .{ .kind = .id_ref, .quantifier = .required },
11476 .{ .kind = .id_scope, .quantifier = .required },
11477 .{ .kind = .id_memory_semantics, .quantifier = .required },
11478 .{ .kind = .id_ref, .quantifier = .required },
1036111479 },
1036211480 },
1036311481 .{
1036411482 .name = "OpAssumeTrueKHR",
1036511483 .opcode = 5630,
10366 .operands = &[_]Operand{
10367 .{ .kind = .IdRef, .quantifier = .required },
11484 .operands = &.{
11485 .{ .kind = .id_ref, .quantifier = .required },
1036811486 },
1036911487 },
1037011488 .{
1037111489 .name = "OpExpectKHR",
1037211490 .opcode = 5631,
10373 .operands = &[_]Operand{
10374 .{ .kind = .IdResultType, .quantifier = .required },
10375 .{ .kind = .IdResult, .quantifier = .required },
10376 .{ .kind = .IdRef, .quantifier = .required },
10377 .{ .kind = .IdRef, .quantifier = .required },
11491 .operands = &.{
11492 .{ .kind = .id_result_type, .quantifier = .required },
11493 .{ .kind = .id_result, .quantifier = .required },
11494 .{ .kind = .id_ref, .quantifier = .required },
11495 .{ .kind = .id_ref, .quantifier = .required },
1037811496 },
1037911497 },
1038011498 .{
1038111499 .name = "OpDecorateString",
1038211500 .opcode = 5632,
10383 .operands = &[_]Operand{
10384 .{ .kind = .IdRef, .quantifier = .required },
10385 .{ .kind = .Decoration, .quantifier = .required },
10386 },
10387 },
10388 .{
10389 .name = "OpDecorateStringGOOGLE",
10390 .opcode = 5632,
10391 .operands = &[_]Operand{
10392 .{ .kind = .IdRef, .quantifier = .required },
10393 .{ .kind = .Decoration, .quantifier = .required },
11501 .operands = &.{
11502 .{ .kind = .id_ref, .quantifier = .required },
11503 .{ .kind = .decoration, .quantifier = .required },
1039411504 },
1039511505 },
1039611506 .{
1039711507 .name = "OpMemberDecorateString",
1039811508 .opcode = 5633,
10399 .operands = &[_]Operand{
10400 .{ .kind = .IdRef, .quantifier = .required },
10401 .{ .kind = .LiteralInteger, .quantifier = .required },
10402 .{ .kind = .Decoration, .quantifier = .required },
10403 },
10404 },
10405 .{
10406 .name = "OpMemberDecorateStringGOOGLE",
10407 .opcode = 5633,
10408 .operands = &[_]Operand{
10409 .{ .kind = .IdRef, .quantifier = .required },
10410 .{ .kind = .LiteralInteger, .quantifier = .required },
10411 .{ .kind = .Decoration, .quantifier = .required },
11509 .operands = &.{
11510 .{ .kind = .id_ref, .quantifier = .required },
11511 .{ .kind = .literal_integer, .quantifier = .required },
11512 .{ .kind = .decoration, .quantifier = .required },
1041211513 },
1041311514 },
1041411515 .{
1041511516 .name = "OpVmeImageINTEL",
1041611517 .opcode = 5699,
10417 .operands = &[_]Operand{
10418 .{ .kind = .IdResultType, .quantifier = .required },
10419 .{ .kind = .IdResult, .quantifier = .required },
10420 .{ .kind = .IdRef, .quantifier = .required },
10421 .{ .kind = .IdRef, .quantifier = .required },
11518 .operands = &.{
11519 .{ .kind = .id_result_type, .quantifier = .required },
11520 .{ .kind = .id_result, .quantifier = .required },
11521 .{ .kind = .id_ref, .quantifier = .required },
11522 .{ .kind = .id_ref, .quantifier = .required },
1042211523 },
1042311524 },
1042411525 .{
1042511526 .name = "OpTypeVmeImageINTEL",
1042611527 .opcode = 5700,
10427 .operands = &[_]Operand{
10428 .{ .kind = .IdResult, .quantifier = .required },
10429 .{ .kind = .IdRef, .quantifier = .required },
11528 .operands = &.{
11529 .{ .kind = .id_result, .quantifier = .required },
11530 .{ .kind = .id_ref, .quantifier = .required },
1043011531 },
1043111532 },
1043211533 .{
1043311534 .name = "OpTypeAvcImePayloadINTEL",
1043411535 .opcode = 5701,
10435 .operands = &[_]Operand{
10436 .{ .kind = .IdResult, .quantifier = .required },
11536 .operands = &.{
11537 .{ .kind = .id_result, .quantifier = .required },
1043711538 },
1043811539 },
1043911540 .{
1044011541 .name = "OpTypeAvcRefPayloadINTEL",
1044111542 .opcode = 5702,
10442 .operands = &[_]Operand{
10443 .{ .kind = .IdResult, .quantifier = .required },
11543 .operands = &.{
11544 .{ .kind = .id_result, .quantifier = .required },
1044411545 },
1044511546 },
1044611547 .{
1044711548 .name = "OpTypeAvcSicPayloadINTEL",
1044811549 .opcode = 5703,
10449 .operands = &[_]Operand{
10450 .{ .kind = .IdResult, .quantifier = .required },
11550 .operands = &.{
11551 .{ .kind = .id_result, .quantifier = .required },
1045111552 },
1045211553 },
1045311554 .{
1045411555 .name = "OpTypeAvcMcePayloadINTEL",
1045511556 .opcode = 5704,
10456 .operands = &[_]Operand{
10457 .{ .kind = .IdResult, .quantifier = .required },
11557 .operands = &.{
11558 .{ .kind = .id_result, .quantifier = .required },
1045811559 },
1045911560 },
1046011561 .{
1046111562 .name = "OpTypeAvcMceResultINTEL",
1046211563 .opcode = 5705,
10463 .operands = &[_]Operand{
10464 .{ .kind = .IdResult, .quantifier = .required },
11564 .operands = &.{
11565 .{ .kind = .id_result, .quantifier = .required },
1046511566 },
1046611567 },
1046711568 .{
1046811569 .name = "OpTypeAvcImeResultINTEL",
1046911570 .opcode = 5706,
10470 .operands = &[_]Operand{
10471 .{ .kind = .IdResult, .quantifier = .required },
11571 .operands = &.{
11572 .{ .kind = .id_result, .quantifier = .required },
1047211573 },
1047311574 },
1047411575 .{
1047511576 .name = "OpTypeAvcImeResultSingleReferenceStreamoutINTEL",
1047611577 .opcode = 5707,
10477 .operands = &[_]Operand{
10478 .{ .kind = .IdResult, .quantifier = .required },
11578 .operands = &.{
11579 .{ .kind = .id_result, .quantifier = .required },
1047911580 },
1048011581 },
1048111582 .{
1048211583 .name = "OpTypeAvcImeResultDualReferenceStreamoutINTEL",
1048311584 .opcode = 5708,
10484 .operands = &[_]Operand{
10485 .{ .kind = .IdResult, .quantifier = .required },
11585 .operands = &.{
11586 .{ .kind = .id_result, .quantifier = .required },
1048611587 },
1048711588 },
1048811589 .{
1048911590 .name = "OpTypeAvcImeSingleReferenceStreaminINTEL",
1049011591 .opcode = 5709,
10491 .operands = &[_]Operand{
10492 .{ .kind = .IdResult, .quantifier = .required },
11592 .operands = &.{
11593 .{ .kind = .id_result, .quantifier = .required },
1049311594 },
1049411595 },
1049511596 .{
1049611597 .name = "OpTypeAvcImeDualReferenceStreaminINTEL",
1049711598 .opcode = 5710,
10498 .operands = &[_]Operand{
10499 .{ .kind = .IdResult, .quantifier = .required },
11599 .operands = &.{
11600 .{ .kind = .id_result, .quantifier = .required },
1050011601 },
1050111602 },
1050211603 .{
1050311604 .name = "OpTypeAvcRefResultINTEL",
1050411605 .opcode = 5711,
10505 .operands = &[_]Operand{
10506 .{ .kind = .IdResult, .quantifier = .required },
11606 .operands = &.{
11607 .{ .kind = .id_result, .quantifier = .required },
1050711608 },
1050811609 },
1050911610 .{
1051011611 .name = "OpTypeAvcSicResultINTEL",
1051111612 .opcode = 5712,
10512 .operands = &[_]Operand{
10513 .{ .kind = .IdResult, .quantifier = .required },
11613 .operands = &.{
11614 .{ .kind = .id_result, .quantifier = .required },
1051411615 },
1051511616 },
1051611617 .{
1051711618 .name = "OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL",
1051811619 .opcode = 5713,
10519 .operands = &[_]Operand{
10520 .{ .kind = .IdResultType, .quantifier = .required },
10521 .{ .kind = .IdResult, .quantifier = .required },
10522 .{ .kind = .IdRef, .quantifier = .required },
10523 .{ .kind = .IdRef, .quantifier = .required },
11620 .operands = &.{
11621 .{ .kind = .id_result_type, .quantifier = .required },
11622 .{ .kind = .id_result, .quantifier = .required },
11623 .{ .kind = .id_ref, .quantifier = .required },
11624 .{ .kind = .id_ref, .quantifier = .required },
1052411625 },
1052511626 },
1052611627 .{
1052711628 .name = "OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL",
1052811629 .opcode = 5714,
10529 .operands = &[_]Operand{
10530 .{ .kind = .IdResultType, .quantifier = .required },
10531 .{ .kind = .IdResult, .quantifier = .required },
10532 .{ .kind = .IdRef, .quantifier = .required },
10533 .{ .kind = .IdRef, .quantifier = .required },
11630 .operands = &.{
11631 .{ .kind = .id_result_type, .quantifier = .required },
11632 .{ .kind = .id_result, .quantifier = .required },
11633 .{ .kind = .id_ref, .quantifier = .required },
11634 .{ .kind = .id_ref, .quantifier = .required },
1053411635 },
1053511636 },
1053611637 .{
1053711638 .name = "OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL",
1053811639 .opcode = 5715,
10539 .operands = &[_]Operand{
10540 .{ .kind = .IdResultType, .quantifier = .required },
10541 .{ .kind = .IdResult, .quantifier = .required },
10542 .{ .kind = .IdRef, .quantifier = .required },
10543 .{ .kind = .IdRef, .quantifier = .required },
11640 .operands = &.{
11641 .{ .kind = .id_result_type, .quantifier = .required },
11642 .{ .kind = .id_result, .quantifier = .required },
11643 .{ .kind = .id_ref, .quantifier = .required },
11644 .{ .kind = .id_ref, .quantifier = .required },
1054411645 },
1054511646 },
1054611647 .{
1054711648 .name = "OpSubgroupAvcMceSetInterShapePenaltyINTEL",
1054811649 .opcode = 5716,
10549 .operands = &[_]Operand{
10550 .{ .kind = .IdResultType, .quantifier = .required },
10551 .{ .kind = .IdResult, .quantifier = .required },
10552 .{ .kind = .IdRef, .quantifier = .required },
10553 .{ .kind = .IdRef, .quantifier = .required },
11650 .operands = &.{
11651 .{ .kind = .id_result_type, .quantifier = .required },
11652 .{ .kind = .id_result, .quantifier = .required },
11653 .{ .kind = .id_ref, .quantifier = .required },
11654 .{ .kind = .id_ref, .quantifier = .required },
1055411655 },
1055511656 },
1055611657 .{
1055711658 .name = "OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL",
1055811659 .opcode = 5717,
10559 .operands = &[_]Operand{
10560 .{ .kind = .IdResultType, .quantifier = .required },
10561 .{ .kind = .IdResult, .quantifier = .required },
10562 .{ .kind = .IdRef, .quantifier = .required },
10563 .{ .kind = .IdRef, .quantifier = .required },
11660 .operands = &.{
11661 .{ .kind = .id_result_type, .quantifier = .required },
11662 .{ .kind = .id_result, .quantifier = .required },
11663 .{ .kind = .id_ref, .quantifier = .required },
11664 .{ .kind = .id_ref, .quantifier = .required },
1056411665 },
1056511666 },
1056611667 .{
1056711668 .name = "OpSubgroupAvcMceSetInterDirectionPenaltyINTEL",
1056811669 .opcode = 5718,
10569 .operands = &[_]Operand{
10570 .{ .kind = .IdResultType, .quantifier = .required },
10571 .{ .kind = .IdResult, .quantifier = .required },
10572 .{ .kind = .IdRef, .quantifier = .required },
10573 .{ .kind = .IdRef, .quantifier = .required },
11670 .operands = &.{
11671 .{ .kind = .id_result_type, .quantifier = .required },
11672 .{ .kind = .id_result, .quantifier = .required },
11673 .{ .kind = .id_ref, .quantifier = .required },
11674 .{ .kind = .id_ref, .quantifier = .required },
1057411675 },
1057511676 },
1057611677 .{
1057711678 .name = "OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL",
1057811679 .opcode = 5719,
10579 .operands = &[_]Operand{
10580 .{ .kind = .IdResultType, .quantifier = .required },
10581 .{ .kind = .IdResult, .quantifier = .required },
10582 .{ .kind = .IdRef, .quantifier = .required },
10583 .{ .kind = .IdRef, .quantifier = .required },
11680 .operands = &.{
11681 .{ .kind = .id_result_type, .quantifier = .required },
11682 .{ .kind = .id_result, .quantifier = .required },
11683 .{ .kind = .id_ref, .quantifier = .required },
11684 .{ .kind = .id_ref, .quantifier = .required },
1058411685 },
1058511686 },
1058611687 .{
1058711688 .name = "OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL",
1058811689 .opcode = 5720,
10589 .operands = &[_]Operand{
10590 .{ .kind = .IdResultType, .quantifier = .required },
10591 .{ .kind = .IdResult, .quantifier = .required },
10592 .{ .kind = .IdRef, .quantifier = .required },
10593 .{ .kind = .IdRef, .quantifier = .required },
11690 .operands = &.{
11691 .{ .kind = .id_result_type, .quantifier = .required },
11692 .{ .kind = .id_result, .quantifier = .required },
11693 .{ .kind = .id_ref, .quantifier = .required },
11694 .{ .kind = .id_ref, .quantifier = .required },
1059411695 },
1059511696 },
1059611697 .{
1059711698 .name = "OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL",
1059811699 .opcode = 5721,
10599 .operands = &[_]Operand{
10600 .{ .kind = .IdResultType, .quantifier = .required },
10601 .{ .kind = .IdResult, .quantifier = .required },
11700 .operands = &.{
11701 .{ .kind = .id_result_type, .quantifier = .required },
11702 .{ .kind = .id_result, .quantifier = .required },
1060211703 },
1060311704 },
1060411705 .{
1060511706 .name = "OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL",
1060611707 .opcode = 5722,
10607 .operands = &[_]Operand{
10608 .{ .kind = .IdResultType, .quantifier = .required },
10609 .{ .kind = .IdResult, .quantifier = .required },
11708 .operands = &.{
11709 .{ .kind = .id_result_type, .quantifier = .required },
11710 .{ .kind = .id_result, .quantifier = .required },
1061011711 },
1061111712 },
1061211713 .{
1061311714 .name = "OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL",
1061411715 .opcode = 5723,
10615 .operands = &[_]Operand{
10616 .{ .kind = .IdResultType, .quantifier = .required },
10617 .{ .kind = .IdResult, .quantifier = .required },
11716 .operands = &.{
11717 .{ .kind = .id_result_type, .quantifier = .required },
11718 .{ .kind = .id_result, .quantifier = .required },
1061811719 },
1061911720 },
1062011721 .{
1062111722 .name = "OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL",
1062211723 .opcode = 5724,
10623 .operands = &[_]Operand{
10624 .{ .kind = .IdResultType, .quantifier = .required },
10625 .{ .kind = .IdResult, .quantifier = .required },
10626 .{ .kind = .IdRef, .quantifier = .required },
10627 .{ .kind = .IdRef, .quantifier = .required },
10628 .{ .kind = .IdRef, .quantifier = .required },
10629 .{ .kind = .IdRef, .quantifier = .required },
11724 .operands = &.{
11725 .{ .kind = .id_result_type, .quantifier = .required },
11726 .{ .kind = .id_result, .quantifier = .required },
11727 .{ .kind = .id_ref, .quantifier = .required },
11728 .{ .kind = .id_ref, .quantifier = .required },
11729 .{ .kind = .id_ref, .quantifier = .required },
11730 .{ .kind = .id_ref, .quantifier = .required },
1063011731 },
1063111732 },
1063211733 .{
1063311734 .name = "OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL",
1063411735 .opcode = 5725,
10635 .operands = &[_]Operand{
10636 .{ .kind = .IdResultType, .quantifier = .required },
10637 .{ .kind = .IdResult, .quantifier = .required },
10638 .{ .kind = .IdRef, .quantifier = .required },
10639 .{ .kind = .IdRef, .quantifier = .required },
11736 .operands = &.{
11737 .{ .kind = .id_result_type, .quantifier = .required },
11738 .{ .kind = .id_result, .quantifier = .required },
11739 .{ .kind = .id_ref, .quantifier = .required },
11740 .{ .kind = .id_ref, .quantifier = .required },
1064011741 },
1064111742 },
1064211743 .{
1064311744 .name = "OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL",
1064411745 .opcode = 5726,
10645 .operands = &[_]Operand{
10646 .{ .kind = .IdResultType, .quantifier = .required },
10647 .{ .kind = .IdResult, .quantifier = .required },
11746 .operands = &.{
11747 .{ .kind = .id_result_type, .quantifier = .required },
11748 .{ .kind = .id_result, .quantifier = .required },
1064811749 },
1064911750 },
1065011751 .{
1065111752 .name = "OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL",
1065211753 .opcode = 5727,
10653 .operands = &[_]Operand{
10654 .{ .kind = .IdResultType, .quantifier = .required },
10655 .{ .kind = .IdResult, .quantifier = .required },
11754 .operands = &.{
11755 .{ .kind = .id_result_type, .quantifier = .required },
11756 .{ .kind = .id_result, .quantifier = .required },
1065611757 },
1065711758 },
1065811759 .{
1065911760 .name = "OpSubgroupAvcMceSetAcOnlyHaarINTEL",
1066011761 .opcode = 5728,
10661 .operands = &[_]Operand{
10662 .{ .kind = .IdResultType, .quantifier = .required },
10663 .{ .kind = .IdResult, .quantifier = .required },
10664 .{ .kind = .IdRef, .quantifier = .required },
11762 .operands = &.{
11763 .{ .kind = .id_result_type, .quantifier = .required },
11764 .{ .kind = .id_result, .quantifier = .required },
11765 .{ .kind = .id_ref, .quantifier = .required },
1066511766 },
1066611767 },
1066711768 .{
1066811769 .name = "OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL",
1066911770 .opcode = 5729,
10670 .operands = &[_]Operand{
10671 .{ .kind = .IdResultType, .quantifier = .required },
10672 .{ .kind = .IdResult, .quantifier = .required },
10673 .{ .kind = .IdRef, .quantifier = .required },
10674 .{ .kind = .IdRef, .quantifier = .required },
11771 .operands = &.{
11772 .{ .kind = .id_result_type, .quantifier = .required },
11773 .{ .kind = .id_result, .quantifier = .required },
11774 .{ .kind = .id_ref, .quantifier = .required },
11775 .{ .kind = .id_ref, .quantifier = .required },
1067511776 },
1067611777 },
1067711778 .{
1067811779 .name = "OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL",
1067911780 .opcode = 5730,
10680 .operands = &[_]Operand{
10681 .{ .kind = .IdResultType, .quantifier = .required },
10682 .{ .kind = .IdResult, .quantifier = .required },
10683 .{ .kind = .IdRef, .quantifier = .required },
10684 .{ .kind = .IdRef, .quantifier = .required },
11781 .operands = &.{
11782 .{ .kind = .id_result_type, .quantifier = .required },
11783 .{ .kind = .id_result, .quantifier = .required },
11784 .{ .kind = .id_ref, .quantifier = .required },
11785 .{ .kind = .id_ref, .quantifier = .required },
1068511786 },
1068611787 },
1068711788 .{
1068811789 .name = "OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL",
1068911790 .opcode = 5731,
10690 .operands = &[_]Operand{
10691 .{ .kind = .IdResultType, .quantifier = .required },
10692 .{ .kind = .IdResult, .quantifier = .required },
10693 .{ .kind = .IdRef, .quantifier = .required },
10694 .{ .kind = .IdRef, .quantifier = .required },
10695 .{ .kind = .IdRef, .quantifier = .required },
11791 .operands = &.{
11792 .{ .kind = .id_result_type, .quantifier = .required },
11793 .{ .kind = .id_result, .quantifier = .required },
11794 .{ .kind = .id_ref, .quantifier = .required },
11795 .{ .kind = .id_ref, .quantifier = .required },
11796 .{ .kind = .id_ref, .quantifier = .required },
1069611797 },
1069711798 },
1069811799 .{
1069911800 .name = "OpSubgroupAvcMceConvertToImePayloadINTEL",
1070011801 .opcode = 5732,
10701 .operands = &[_]Operand{
10702 .{ .kind = .IdResultType, .quantifier = .required },
10703 .{ .kind = .IdResult, .quantifier = .required },
10704 .{ .kind = .IdRef, .quantifier = .required },
11802 .operands = &.{
11803 .{ .kind = .id_result_type, .quantifier = .required },
11804 .{ .kind = .id_result, .quantifier = .required },
11805 .{ .kind = .id_ref, .quantifier = .required },
1070511806 },
1070611807 },
1070711808 .{
1070811809 .name = "OpSubgroupAvcMceConvertToImeResultINTEL",
1070911810 .opcode = 5733,
10710 .operands = &[_]Operand{
10711 .{ .kind = .IdResultType, .quantifier = .required },
10712 .{ .kind = .IdResult, .quantifier = .required },
10713 .{ .kind = .IdRef, .quantifier = .required },
11811 .operands = &.{
11812 .{ .kind = .id_result_type, .quantifier = .required },
11813 .{ .kind = .id_result, .quantifier = .required },
11814 .{ .kind = .id_ref, .quantifier = .required },
1071411815 },
1071511816 },
1071611817 .{
1071711818 .name = "OpSubgroupAvcMceConvertToRefPayloadINTEL",
1071811819 .opcode = 5734,
10719 .operands = &[_]Operand{
10720 .{ .kind = .IdResultType, .quantifier = .required },
10721 .{ .kind = .IdResult, .quantifier = .required },
10722 .{ .kind = .IdRef, .quantifier = .required },
11820 .operands = &.{
11821 .{ .kind = .id_result_type, .quantifier = .required },
11822 .{ .kind = .id_result, .quantifier = .required },
11823 .{ .kind = .id_ref, .quantifier = .required },
1072311824 },
1072411825 },
1072511826 .{
1072611827 .name = "OpSubgroupAvcMceConvertToRefResultINTEL",
1072711828 .opcode = 5735,
10728 .operands = &[_]Operand{
10729 .{ .kind = .IdResultType, .quantifier = .required },
10730 .{ .kind = .IdResult, .quantifier = .required },
10731 .{ .kind = .IdRef, .quantifier = .required },
11829 .operands = &.{
11830 .{ .kind = .id_result_type, .quantifier = .required },
11831 .{ .kind = .id_result, .quantifier = .required },
11832 .{ .kind = .id_ref, .quantifier = .required },
1073211833 },
1073311834 },
1073411835 .{
1073511836 .name = "OpSubgroupAvcMceConvertToSicPayloadINTEL",
1073611837 .opcode = 5736,
10737 .operands = &[_]Operand{
10738 .{ .kind = .IdResultType, .quantifier = .required },
10739 .{ .kind = .IdResult, .quantifier = .required },
10740 .{ .kind = .IdRef, .quantifier = .required },
11838 .operands = &.{
11839 .{ .kind = .id_result_type, .quantifier = .required },
11840 .{ .kind = .id_result, .quantifier = .required },
11841 .{ .kind = .id_ref, .quantifier = .required },
1074111842 },
1074211843 },
1074311844 .{
1074411845 .name = "OpSubgroupAvcMceConvertToSicResultINTEL",
1074511846 .opcode = 5737,
10746 .operands = &[_]Operand{
10747 .{ .kind = .IdResultType, .quantifier = .required },
10748 .{ .kind = .IdResult, .quantifier = .required },
10749 .{ .kind = .IdRef, .quantifier = .required },
11847 .operands = &.{
11848 .{ .kind = .id_result_type, .quantifier = .required },
11849 .{ .kind = .id_result, .quantifier = .required },
11850 .{ .kind = .id_ref, .quantifier = .required },
1075011851 },
1075111852 },
1075211853 .{
1075311854 .name = "OpSubgroupAvcMceGetMotionVectorsINTEL",
1075411855 .opcode = 5738,
10755 .operands = &[_]Operand{
10756 .{ .kind = .IdResultType, .quantifier = .required },
10757 .{ .kind = .IdResult, .quantifier = .required },
10758 .{ .kind = .IdRef, .quantifier = .required },
11856 .operands = &.{
11857 .{ .kind = .id_result_type, .quantifier = .required },
11858 .{ .kind = .id_result, .quantifier = .required },
11859 .{ .kind = .id_ref, .quantifier = .required },
1075911860 },
1076011861 },
1076111862 .{
1076211863 .name = "OpSubgroupAvcMceGetInterDistortionsINTEL",
1076311864 .opcode = 5739,
10764 .operands = &[_]Operand{
10765 .{ .kind = .IdResultType, .quantifier = .required },
10766 .{ .kind = .IdResult, .quantifier = .required },
10767 .{ .kind = .IdRef, .quantifier = .required },
11865 .operands = &.{
11866 .{ .kind = .id_result_type, .quantifier = .required },
11867 .{ .kind = .id_result, .quantifier = .required },
11868 .{ .kind = .id_ref, .quantifier = .required },
1076811869 },
1076911870 },
1077011871 .{
1077111872 .name = "OpSubgroupAvcMceGetBestInterDistortionsINTEL",
1077211873 .opcode = 5740,
10773 .operands = &[_]Operand{
10774 .{ .kind = .IdResultType, .quantifier = .required },
10775 .{ .kind = .IdResult, .quantifier = .required },
10776 .{ .kind = .IdRef, .quantifier = .required },
11874 .operands = &.{
11875 .{ .kind = .id_result_type, .quantifier = .required },
11876 .{ .kind = .id_result, .quantifier = .required },
11877 .{ .kind = .id_ref, .quantifier = .required },
1077711878 },
1077811879 },
1077911880 .{
1078011881 .name = "OpSubgroupAvcMceGetInterMajorShapeINTEL",
1078111882 .opcode = 5741,
10782 .operands = &[_]Operand{
10783 .{ .kind = .IdResultType, .quantifier = .required },
10784 .{ .kind = .IdResult, .quantifier = .required },
10785 .{ .kind = .IdRef, .quantifier = .required },
11883 .operands = &.{
11884 .{ .kind = .id_result_type, .quantifier = .required },
11885 .{ .kind = .id_result, .quantifier = .required },
11886 .{ .kind = .id_ref, .quantifier = .required },
1078611887 },
1078711888 },
1078811889 .{
1078911890 .name = "OpSubgroupAvcMceGetInterMinorShapeINTEL",
1079011891 .opcode = 5742,
10791 .operands = &[_]Operand{
10792 .{ .kind = .IdResultType, .quantifier = .required },
10793 .{ .kind = .IdResult, .quantifier = .required },
10794 .{ .kind = .IdRef, .quantifier = .required },
11892 .operands = &.{
11893 .{ .kind = .id_result_type, .quantifier = .required },
11894 .{ .kind = .id_result, .quantifier = .required },
11895 .{ .kind = .id_ref, .quantifier = .required },
1079511896 },
1079611897 },
1079711898 .{
1079811899 .name = "OpSubgroupAvcMceGetInterDirectionsINTEL",
1079911900 .opcode = 5743,
10800 .operands = &[_]Operand{
10801 .{ .kind = .IdResultType, .quantifier = .required },
10802 .{ .kind = .IdResult, .quantifier = .required },
10803 .{ .kind = .IdRef, .quantifier = .required },
11901 .operands = &.{
11902 .{ .kind = .id_result_type, .quantifier = .required },
11903 .{ .kind = .id_result, .quantifier = .required },
11904 .{ .kind = .id_ref, .quantifier = .required },
1080411905 },
1080511906 },
1080611907 .{
1080711908 .name = "OpSubgroupAvcMceGetInterMotionVectorCountINTEL",
1080811909 .opcode = 5744,
10809 .operands = &[_]Operand{
10810 .{ .kind = .IdResultType, .quantifier = .required },
10811 .{ .kind = .IdResult, .quantifier = .required },
10812 .{ .kind = .IdRef, .quantifier = .required },
11910 .operands = &.{
11911 .{ .kind = .id_result_type, .quantifier = .required },
11912 .{ .kind = .id_result, .quantifier = .required },
11913 .{ .kind = .id_ref, .quantifier = .required },
1081311914 },
1081411915 },
1081511916 .{
1081611917 .name = "OpSubgroupAvcMceGetInterReferenceIdsINTEL",
1081711918 .opcode = 5745,
10818 .operands = &[_]Operand{
10819 .{ .kind = .IdResultType, .quantifier = .required },
10820 .{ .kind = .IdResult, .quantifier = .required },
10821 .{ .kind = .IdRef, .quantifier = .required },
11919 .operands = &.{
11920 .{ .kind = .id_result_type, .quantifier = .required },
11921 .{ .kind = .id_result, .quantifier = .required },
11922 .{ .kind = .id_ref, .quantifier = .required },
1082211923 },
1082311924 },
1082411925 .{
1082511926 .name = "OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL",
1082611927 .opcode = 5746,
10827 .operands = &[_]Operand{
10828 .{ .kind = .IdResultType, .quantifier = .required },
10829 .{ .kind = .IdResult, .quantifier = .required },
10830 .{ .kind = .IdRef, .quantifier = .required },
10831 .{ .kind = .IdRef, .quantifier = .required },
10832 .{ .kind = .IdRef, .quantifier = .required },
11928 .operands = &.{
11929 .{ .kind = .id_result_type, .quantifier = .required },
11930 .{ .kind = .id_result, .quantifier = .required },
11931 .{ .kind = .id_ref, .quantifier = .required },
11932 .{ .kind = .id_ref, .quantifier = .required },
11933 .{ .kind = .id_ref, .quantifier = .required },
1083311934 },
1083411935 },
1083511936 .{
1083611937 .name = "OpSubgroupAvcImeInitializeINTEL",
1083711938 .opcode = 5747,
10838 .operands = &[_]Operand{
10839 .{ .kind = .IdResultType, .quantifier = .required },
10840 .{ .kind = .IdResult, .quantifier = .required },
10841 .{ .kind = .IdRef, .quantifier = .required },
10842 .{ .kind = .IdRef, .quantifier = .required },
10843 .{ .kind = .IdRef, .quantifier = .required },
11939 .operands = &.{
11940 .{ .kind = .id_result_type, .quantifier = .required },
11941 .{ .kind = .id_result, .quantifier = .required },
11942 .{ .kind = .id_ref, .quantifier = .required },
11943 .{ .kind = .id_ref, .quantifier = .required },
11944 .{ .kind = .id_ref, .quantifier = .required },
1084411945 },
1084511946 },
1084611947 .{
1084711948 .name = "OpSubgroupAvcImeSetSingleReferenceINTEL",
1084811949 .opcode = 5748,
10849 .operands = &[_]Operand{
10850 .{ .kind = .IdResultType, .quantifier = .required },
10851 .{ .kind = .IdResult, .quantifier = .required },
10852 .{ .kind = .IdRef, .quantifier = .required },
10853 .{ .kind = .IdRef, .quantifier = .required },
10854 .{ .kind = .IdRef, .quantifier = .required },
11950 .operands = &.{
11951 .{ .kind = .id_result_type, .quantifier = .required },
11952 .{ .kind = .id_result, .quantifier = .required },
11953 .{ .kind = .id_ref, .quantifier = .required },
11954 .{ .kind = .id_ref, .quantifier = .required },
11955 .{ .kind = .id_ref, .quantifier = .required },
1085511956 },
1085611957 },
1085711958 .{
1085811959 .name = "OpSubgroupAvcImeSetDualReferenceINTEL",
1085911960 .opcode = 5749,
10860 .operands = &[_]Operand{
10861 .{ .kind = .IdResultType, .quantifier = .required },
10862 .{ .kind = .IdResult, .quantifier = .required },
10863 .{ .kind = .IdRef, .quantifier = .required },
10864 .{ .kind = .IdRef, .quantifier = .required },
10865 .{ .kind = .IdRef, .quantifier = .required },
10866 .{ .kind = .IdRef, .quantifier = .required },
11961 .operands = &.{
11962 .{ .kind = .id_result_type, .quantifier = .required },
11963 .{ .kind = .id_result, .quantifier = .required },
11964 .{ .kind = .id_ref, .quantifier = .required },
11965 .{ .kind = .id_ref, .quantifier = .required },
11966 .{ .kind = .id_ref, .quantifier = .required },
11967 .{ .kind = .id_ref, .quantifier = .required },
1086711968 },
1086811969 },
1086911970 .{
1087011971 .name = "OpSubgroupAvcImeRefWindowSizeINTEL",
1087111972 .opcode = 5750,
10872 .operands = &[_]Operand{
10873 .{ .kind = .IdResultType, .quantifier = .required },
10874 .{ .kind = .IdResult, .quantifier = .required },
10875 .{ .kind = .IdRef, .quantifier = .required },
10876 .{ .kind = .IdRef, .quantifier = .required },
11973 .operands = &.{
11974 .{ .kind = .id_result_type, .quantifier = .required },
11975 .{ .kind = .id_result, .quantifier = .required },
11976 .{ .kind = .id_ref, .quantifier = .required },
11977 .{ .kind = .id_ref, .quantifier = .required },
1087711978 },
1087811979 },
1087911980 .{
1088011981 .name = "OpSubgroupAvcImeAdjustRefOffsetINTEL",
1088111982 .opcode = 5751,
10882 .operands = &[_]Operand{
10883 .{ .kind = .IdResultType, .quantifier = .required },
10884 .{ .kind = .IdResult, .quantifier = .required },
10885 .{ .kind = .IdRef, .quantifier = .required },
10886 .{ .kind = .IdRef, .quantifier = .required },
10887 .{ .kind = .IdRef, .quantifier = .required },
10888 .{ .kind = .IdRef, .quantifier = .required },
11983 .operands = &.{
11984 .{ .kind = .id_result_type, .quantifier = .required },
11985 .{ .kind = .id_result, .quantifier = .required },
11986 .{ .kind = .id_ref, .quantifier = .required },
11987 .{ .kind = .id_ref, .quantifier = .required },
11988 .{ .kind = .id_ref, .quantifier = .required },
11989 .{ .kind = .id_ref, .quantifier = .required },
1088911990 },
1089011991 },
1089111992 .{
1089211993 .name = "OpSubgroupAvcImeConvertToMcePayloadINTEL",
1089311994 .opcode = 5752,
10894 .operands = &[_]Operand{
10895 .{ .kind = .IdResultType, .quantifier = .required },
10896 .{ .kind = .IdResult, .quantifier = .required },
10897 .{ .kind = .IdRef, .quantifier = .required },
11995 .operands = &.{
11996 .{ .kind = .id_result_type, .quantifier = .required },
11997 .{ .kind = .id_result, .quantifier = .required },
11998 .{ .kind = .id_ref, .quantifier = .required },
1089811999 },
1089912000 },
1090012001 .{
1090112002 .name = "OpSubgroupAvcImeSetMaxMotionVectorCountINTEL",
1090212003 .opcode = 5753,
10903 .operands = &[_]Operand{
10904 .{ .kind = .IdResultType, .quantifier = .required },
10905 .{ .kind = .IdResult, .quantifier = .required },
10906 .{ .kind = .IdRef, .quantifier = .required },
10907 .{ .kind = .IdRef, .quantifier = .required },
12004 .operands = &.{
12005 .{ .kind = .id_result_type, .quantifier = .required },
12006 .{ .kind = .id_result, .quantifier = .required },
12007 .{ .kind = .id_ref, .quantifier = .required },
12008 .{ .kind = .id_ref, .quantifier = .required },
1090812009 },
1090912010 },
1091012011 .{
1091112012 .name = "OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL",
1091212013 .opcode = 5754,
10913 .operands = &[_]Operand{
10914 .{ .kind = .IdResultType, .quantifier = .required },
10915 .{ .kind = .IdResult, .quantifier = .required },
10916 .{ .kind = .IdRef, .quantifier = .required },
12014 .operands = &.{
12015 .{ .kind = .id_result_type, .quantifier = .required },
12016 .{ .kind = .id_result, .quantifier = .required },
12017 .{ .kind = .id_ref, .quantifier = .required },
1091712018 },
1091812019 },
1091912020 .{
1092012021 .name = "OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL",
1092112022 .opcode = 5755,
10922 .operands = &[_]Operand{
10923 .{ .kind = .IdResultType, .quantifier = .required },
10924 .{ .kind = .IdResult, .quantifier = .required },
10925 .{ .kind = .IdRef, .quantifier = .required },
10926 .{ .kind = .IdRef, .quantifier = .required },
12023 .operands = &.{
12024 .{ .kind = .id_result_type, .quantifier = .required },
12025 .{ .kind = .id_result, .quantifier = .required },
12026 .{ .kind = .id_ref, .quantifier = .required },
12027 .{ .kind = .id_ref, .quantifier = .required },
1092712028 },
1092812029 },
1092912030 .{
1093012031 .name = "OpSubgroupAvcImeSetWeightedSadINTEL",
1093112032 .opcode = 5756,
10932 .operands = &[_]Operand{
10933 .{ .kind = .IdResultType, .quantifier = .required },
10934 .{ .kind = .IdResult, .quantifier = .required },
10935 .{ .kind = .IdRef, .quantifier = .required },
10936 .{ .kind = .IdRef, .quantifier = .required },
12033 .operands = &.{
12034 .{ .kind = .id_result_type, .quantifier = .required },
12035 .{ .kind = .id_result, .quantifier = .required },
12036 .{ .kind = .id_ref, .quantifier = .required },
12037 .{ .kind = .id_ref, .quantifier = .required },
1093712038 },
1093812039 },
1093912040 .{
1094012041 .name = "OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL",
1094112042 .opcode = 5757,
10942 .operands = &[_]Operand{
10943 .{ .kind = .IdResultType, .quantifier = .required },
10944 .{ .kind = .IdResult, .quantifier = .required },
10945 .{ .kind = .IdRef, .quantifier = .required },
10946 .{ .kind = .IdRef, .quantifier = .required },
10947 .{ .kind = .IdRef, .quantifier = .required },
12043 .operands = &.{
12044 .{ .kind = .id_result_type, .quantifier = .required },
12045 .{ .kind = .id_result, .quantifier = .required },
12046 .{ .kind = .id_ref, .quantifier = .required },
12047 .{ .kind = .id_ref, .quantifier = .required },
12048 .{ .kind = .id_ref, .quantifier = .required },
1094812049 },
1094912050 },
1095012051 .{
1095112052 .name = "OpSubgroupAvcImeEvaluateWithDualReferenceINTEL",
1095212053 .opcode = 5758,
10953 .operands = &[_]Operand{
10954 .{ .kind = .IdResultType, .quantifier = .required },
10955 .{ .kind = .IdResult, .quantifier = .required },
10956 .{ .kind = .IdRef, .quantifier = .required },
10957 .{ .kind = .IdRef, .quantifier = .required },
10958 .{ .kind = .IdRef, .quantifier = .required },
10959 .{ .kind = .IdRef, .quantifier = .required },
12054 .operands = &.{
12055 .{ .kind = .id_result_type, .quantifier = .required },
12056 .{ .kind = .id_result, .quantifier = .required },
12057 .{ .kind = .id_ref, .quantifier = .required },
12058 .{ .kind = .id_ref, .quantifier = .required },
12059 .{ .kind = .id_ref, .quantifier = .required },
12060 .{ .kind = .id_ref, .quantifier = .required },
1096012061 },
1096112062 },
1096212063 .{
1096312064 .name = "OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL",
1096412065 .opcode = 5759,
10965 .operands = &[_]Operand{
10966 .{ .kind = .IdResultType, .quantifier = .required },
10967 .{ .kind = .IdResult, .quantifier = .required },
10968 .{ .kind = .IdRef, .quantifier = .required },
10969 .{ .kind = .IdRef, .quantifier = .required },
10970 .{ .kind = .IdRef, .quantifier = .required },
10971 .{ .kind = .IdRef, .quantifier = .required },
12066 .operands = &.{
12067 .{ .kind = .id_result_type, .quantifier = .required },
12068 .{ .kind = .id_result, .quantifier = .required },
12069 .{ .kind = .id_ref, .quantifier = .required },
12070 .{ .kind = .id_ref, .quantifier = .required },
12071 .{ .kind = .id_ref, .quantifier = .required },
12072 .{ .kind = .id_ref, .quantifier = .required },
1097212073 },
1097312074 },
1097412075 .{
1097512076 .name = "OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL",
1097612077 .opcode = 5760,
10977 .operands = &[_]Operand{
10978 .{ .kind = .IdResultType, .quantifier = .required },
10979 .{ .kind = .IdResult, .quantifier = .required },
10980 .{ .kind = .IdRef, .quantifier = .required },
10981 .{ .kind = .IdRef, .quantifier = .required },
10982 .{ .kind = .IdRef, .quantifier = .required },
10983 .{ .kind = .IdRef, .quantifier = .required },
10984 .{ .kind = .IdRef, .quantifier = .required },
12078 .operands = &.{
12079 .{ .kind = .id_result_type, .quantifier = .required },
12080 .{ .kind = .id_result, .quantifier = .required },
12081 .{ .kind = .id_ref, .quantifier = .required },
12082 .{ .kind = .id_ref, .quantifier = .required },
12083 .{ .kind = .id_ref, .quantifier = .required },
12084 .{ .kind = .id_ref, .quantifier = .required },
12085 .{ .kind = .id_ref, .quantifier = .required },
1098512086 },
1098612087 },
1098712088 .{
1098812089 .name = "OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL",
1098912090 .opcode = 5761,
10990 .operands = &[_]Operand{
10991 .{ .kind = .IdResultType, .quantifier = .required },
10992 .{ .kind = .IdResult, .quantifier = .required },
10993 .{ .kind = .IdRef, .quantifier = .required },
10994 .{ .kind = .IdRef, .quantifier = .required },
10995 .{ .kind = .IdRef, .quantifier = .required },
12091 .operands = &.{
12092 .{ .kind = .id_result_type, .quantifier = .required },
12093 .{ .kind = .id_result, .quantifier = .required },
12094 .{ .kind = .id_ref, .quantifier = .required },
12095 .{ .kind = .id_ref, .quantifier = .required },
12096 .{ .kind = .id_ref, .quantifier = .required },
1099612097 },
1099712098 },
1099812099 .{
1099912100 .name = "OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL",
1100012101 .opcode = 5762,
11001 .operands = &[_]Operand{
11002 .{ .kind = .IdResultType, .quantifier = .required },
11003 .{ .kind = .IdResult, .quantifier = .required },
11004 .{ .kind = .IdRef, .quantifier = .required },
11005 .{ .kind = .IdRef, .quantifier = .required },
11006 .{ .kind = .IdRef, .quantifier = .required },
11007 .{ .kind = .IdRef, .quantifier = .required },
12102 .operands = &.{
12103 .{ .kind = .id_result_type, .quantifier = .required },
12104 .{ .kind = .id_result, .quantifier = .required },
12105 .{ .kind = .id_ref, .quantifier = .required },
12106 .{ .kind = .id_ref, .quantifier = .required },
12107 .{ .kind = .id_ref, .quantifier = .required },
12108 .{ .kind = .id_ref, .quantifier = .required },
1100812109 },
1100912110 },
1101012111 .{
1101112112 .name = "OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL",
1101212113 .opcode = 5763,
11013 .operands = &[_]Operand{
11014 .{ .kind = .IdResultType, .quantifier = .required },
11015 .{ .kind = .IdResult, .quantifier = .required },
11016 .{ .kind = .IdRef, .quantifier = .required },
11017 .{ .kind = .IdRef, .quantifier = .required },
11018 .{ .kind = .IdRef, .quantifier = .required },
11019 .{ .kind = .IdRef, .quantifier = .required },
12114 .operands = &.{
12115 .{ .kind = .id_result_type, .quantifier = .required },
12116 .{ .kind = .id_result, .quantifier = .required },
12117 .{ .kind = .id_ref, .quantifier = .required },
12118 .{ .kind = .id_ref, .quantifier = .required },
12119 .{ .kind = .id_ref, .quantifier = .required },
12120 .{ .kind = .id_ref, .quantifier = .required },
1102012121 },
1102112122 },
1102212123 .{
1102312124 .name = "OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL",
1102412125 .opcode = 5764,
11025 .operands = &[_]Operand{
11026 .{ .kind = .IdResultType, .quantifier = .required },
11027 .{ .kind = .IdResult, .quantifier = .required },
11028 .{ .kind = .IdRef, .quantifier = .required },
11029 .{ .kind = .IdRef, .quantifier = .required },
11030 .{ .kind = .IdRef, .quantifier = .required },
11031 .{ .kind = .IdRef, .quantifier = .required },
11032 .{ .kind = .IdRef, .quantifier = .required },
12126 .operands = &.{
12127 .{ .kind = .id_result_type, .quantifier = .required },
12128 .{ .kind = .id_result, .quantifier = .required },
12129 .{ .kind = .id_ref, .quantifier = .required },
12130 .{ .kind = .id_ref, .quantifier = .required },
12131 .{ .kind = .id_ref, .quantifier = .required },
12132 .{ .kind = .id_ref, .quantifier = .required },
12133 .{ .kind = .id_ref, .quantifier = .required },
1103312134 },
1103412135 },
1103512136 .{
1103612137 .name = "OpSubgroupAvcImeConvertToMceResultINTEL",
1103712138 .opcode = 5765,
11038 .operands = &[_]Operand{
11039 .{ .kind = .IdResultType, .quantifier = .required },
11040 .{ .kind = .IdResult, .quantifier = .required },
11041 .{ .kind = .IdRef, .quantifier = .required },
12139 .operands = &.{
12140 .{ .kind = .id_result_type, .quantifier = .required },
12141 .{ .kind = .id_result, .quantifier = .required },
12142 .{ .kind = .id_ref, .quantifier = .required },
1104212143 },
1104312144 },
1104412145 .{
1104512146 .name = "OpSubgroupAvcImeGetSingleReferenceStreaminINTEL",
1104612147 .opcode = 5766,
11047 .operands = &[_]Operand{
11048 .{ .kind = .IdResultType, .quantifier = .required },
11049 .{ .kind = .IdResult, .quantifier = .required },
11050 .{ .kind = .IdRef, .quantifier = .required },
12148 .operands = &.{
12149 .{ .kind = .id_result_type, .quantifier = .required },
12150 .{ .kind = .id_result, .quantifier = .required },
12151 .{ .kind = .id_ref, .quantifier = .required },
1105112152 },
1105212153 },
1105312154 .{
1105412155 .name = "OpSubgroupAvcImeGetDualReferenceStreaminINTEL",
1105512156 .opcode = 5767,
11056 .operands = &[_]Operand{
11057 .{ .kind = .IdResultType, .quantifier = .required },
11058 .{ .kind = .IdResult, .quantifier = .required },
11059 .{ .kind = .IdRef, .quantifier = .required },
12157 .operands = &.{
12158 .{ .kind = .id_result_type, .quantifier = .required },
12159 .{ .kind = .id_result, .quantifier = .required },
12160 .{ .kind = .id_ref, .quantifier = .required },
1106012161 },
1106112162 },
1106212163 .{
1106312164 .name = "OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL",
1106412165 .opcode = 5768,
11065 .operands = &[_]Operand{
11066 .{ .kind = .IdResultType, .quantifier = .required },
11067 .{ .kind = .IdResult, .quantifier = .required },
11068 .{ .kind = .IdRef, .quantifier = .required },
12166 .operands = &.{
12167 .{ .kind = .id_result_type, .quantifier = .required },
12168 .{ .kind = .id_result, .quantifier = .required },
12169 .{ .kind = .id_ref, .quantifier = .required },
1106912170 },
1107012171 },
1107112172 .{
1107212173 .name = "OpSubgroupAvcImeStripDualReferenceStreamoutINTEL",
1107312174 .opcode = 5769,
11074 .operands = &[_]Operand{
11075 .{ .kind = .IdResultType, .quantifier = .required },
11076 .{ .kind = .IdResult, .quantifier = .required },
11077 .{ .kind = .IdRef, .quantifier = .required },
12175 .operands = &.{
12176 .{ .kind = .id_result_type, .quantifier = .required },
12177 .{ .kind = .id_result, .quantifier = .required },
12178 .{ .kind = .id_ref, .quantifier = .required },
1107812179 },
1107912180 },
1108012181 .{
1108112182 .name = "OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL",
1108212183 .opcode = 5770,
11083 .operands = &[_]Operand{
11084 .{ .kind = .IdResultType, .quantifier = .required },
11085 .{ .kind = .IdResult, .quantifier = .required },
11086 .{ .kind = .IdRef, .quantifier = .required },
11087 .{ .kind = .IdRef, .quantifier = .required },
12184 .operands = &.{
12185 .{ .kind = .id_result_type, .quantifier = .required },
12186 .{ .kind = .id_result, .quantifier = .required },
12187 .{ .kind = .id_ref, .quantifier = .required },
12188 .{ .kind = .id_ref, .quantifier = .required },
1108812189 },
1108912190 },
1109012191 .{
1109112192 .name = "OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL",
1109212193 .opcode = 5771,
11093 .operands = &[_]Operand{
11094 .{ .kind = .IdResultType, .quantifier = .required },
11095 .{ .kind = .IdResult, .quantifier = .required },
11096 .{ .kind = .IdRef, .quantifier = .required },
11097 .{ .kind = .IdRef, .quantifier = .required },
12194 .operands = &.{
12195 .{ .kind = .id_result_type, .quantifier = .required },
12196 .{ .kind = .id_result, .quantifier = .required },
12197 .{ .kind = .id_ref, .quantifier = .required },
12198 .{ .kind = .id_ref, .quantifier = .required },
1109812199 },
1109912200 },
1110012201 .{
1110112202 .name = "OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL",
1110212203 .opcode = 5772,
11103 .operands = &[_]Operand{
11104 .{ .kind = .IdResultType, .quantifier = .required },
11105 .{ .kind = .IdResult, .quantifier = .required },
11106 .{ .kind = .IdRef, .quantifier = .required },
11107 .{ .kind = .IdRef, .quantifier = .required },
12204 .operands = &.{
12205 .{ .kind = .id_result_type, .quantifier = .required },
12206 .{ .kind = .id_result, .quantifier = .required },
12207 .{ .kind = .id_ref, .quantifier = .required },
12208 .{ .kind = .id_ref, .quantifier = .required },
1110812209 },
1110912210 },
1111012211 .{
1111112212 .name = "OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL",
1111212213 .opcode = 5773,
11113 .operands = &[_]Operand{
11114 .{ .kind = .IdResultType, .quantifier = .required },
11115 .{ .kind = .IdResult, .quantifier = .required },
11116 .{ .kind = .IdRef, .quantifier = .required },
11117 .{ .kind = .IdRef, .quantifier = .required },
11118 .{ .kind = .IdRef, .quantifier = .required },
12214 .operands = &.{
12215 .{ .kind = .id_result_type, .quantifier = .required },
12216 .{ .kind = .id_result, .quantifier = .required },
12217 .{ .kind = .id_ref, .quantifier = .required },
12218 .{ .kind = .id_ref, .quantifier = .required },
12219 .{ .kind = .id_ref, .quantifier = .required },
1111912220 },
1112012221 },
1112112222 .{
1112212223 .name = "OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL",
1112312224 .opcode = 5774,
11124 .operands = &[_]Operand{
11125 .{ .kind = .IdResultType, .quantifier = .required },
11126 .{ .kind = .IdResult, .quantifier = .required },
11127 .{ .kind = .IdRef, .quantifier = .required },
11128 .{ .kind = .IdRef, .quantifier = .required },
11129 .{ .kind = .IdRef, .quantifier = .required },
12225 .operands = &.{
12226 .{ .kind = .id_result_type, .quantifier = .required },
12227 .{ .kind = .id_result, .quantifier = .required },
12228 .{ .kind = .id_ref, .quantifier = .required },
12229 .{ .kind = .id_ref, .quantifier = .required },
12230 .{ .kind = .id_ref, .quantifier = .required },
1113012231 },
1113112232 },
1113212233 .{
1113312234 .name = "OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL",
1113412235 .opcode = 5775,
11135 .operands = &[_]Operand{
11136 .{ .kind = .IdResultType, .quantifier = .required },
11137 .{ .kind = .IdResult, .quantifier = .required },
11138 .{ .kind = .IdRef, .quantifier = .required },
11139 .{ .kind = .IdRef, .quantifier = .required },
11140 .{ .kind = .IdRef, .quantifier = .required },
12236 .operands = &.{
12237 .{ .kind = .id_result_type, .quantifier = .required },
12238 .{ .kind = .id_result, .quantifier = .required },
12239 .{ .kind = .id_ref, .quantifier = .required },
12240 .{ .kind = .id_ref, .quantifier = .required },
12241 .{ .kind = .id_ref, .quantifier = .required },
1114112242 },
1114212243 },
1114312244 .{
1114412245 .name = "OpSubgroupAvcImeGetBorderReachedINTEL",
1114512246 .opcode = 5776,
11146 .operands = &[_]Operand{
11147 .{ .kind = .IdResultType, .quantifier = .required },
11148 .{ .kind = .IdResult, .quantifier = .required },
11149 .{ .kind = .IdRef, .quantifier = .required },
11150 .{ .kind = .IdRef, .quantifier = .required },
12247 .operands = &.{
12248 .{ .kind = .id_result_type, .quantifier = .required },
12249 .{ .kind = .id_result, .quantifier = .required },
12250 .{ .kind = .id_ref, .quantifier = .required },
12251 .{ .kind = .id_ref, .quantifier = .required },
1115112252 },
1115212253 },
1115312254 .{
1115412255 .name = "OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL",
1115512256 .opcode = 5777,
11156 .operands = &[_]Operand{
11157 .{ .kind = .IdResultType, .quantifier = .required },
11158 .{ .kind = .IdResult, .quantifier = .required },
11159 .{ .kind = .IdRef, .quantifier = .required },
12257 .operands = &.{
12258 .{ .kind = .id_result_type, .quantifier = .required },
12259 .{ .kind = .id_result, .quantifier = .required },
12260 .{ .kind = .id_ref, .quantifier = .required },
1116012261 },
1116112262 },
1116212263 .{
1116312264 .name = "OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL",
1116412265 .opcode = 5778,
11165 .operands = &[_]Operand{
11166 .{ .kind = .IdResultType, .quantifier = .required },
11167 .{ .kind = .IdResult, .quantifier = .required },
11168 .{ .kind = .IdRef, .quantifier = .required },
12266 .operands = &.{
12267 .{ .kind = .id_result_type, .quantifier = .required },
12268 .{ .kind = .id_result, .quantifier = .required },
12269 .{ .kind = .id_ref, .quantifier = .required },
1116912270 },
1117012271 },
1117112272 .{
1117212273 .name = "OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL",
1117312274 .opcode = 5779,
11174 .operands = &[_]Operand{
11175 .{ .kind = .IdResultType, .quantifier = .required },
11176 .{ .kind = .IdResult, .quantifier = .required },
11177 .{ .kind = .IdRef, .quantifier = .required },
12275 .operands = &.{
12276 .{ .kind = .id_result_type, .quantifier = .required },
12277 .{ .kind = .id_result, .quantifier = .required },
12278 .{ .kind = .id_ref, .quantifier = .required },
1117812279 },
1117912280 },
1118012281 .{
1118112282 .name = "OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL",
1118212283 .opcode = 5780,
11183 .operands = &[_]Operand{
11184 .{ .kind = .IdResultType, .quantifier = .required },
11185 .{ .kind = .IdResult, .quantifier = .required },
11186 .{ .kind = .IdRef, .quantifier = .required },
12284 .operands = &.{
12285 .{ .kind = .id_result_type, .quantifier = .required },
12286 .{ .kind = .id_result, .quantifier = .required },
12287 .{ .kind = .id_ref, .quantifier = .required },
1118712288 },
1118812289 },
1118912290 .{
1119012291 .name = "OpSubgroupAvcFmeInitializeINTEL",
1119112292 .opcode = 5781,
11192 .operands = &[_]Operand{
11193 .{ .kind = .IdResultType, .quantifier = .required },
11194 .{ .kind = .IdResult, .quantifier = .required },
11195 .{ .kind = .IdRef, .quantifier = .required },
11196 .{ .kind = .IdRef, .quantifier = .required },
11197 .{ .kind = .IdRef, .quantifier = .required },
11198 .{ .kind = .IdRef, .quantifier = .required },
11199 .{ .kind = .IdRef, .quantifier = .required },
11200 .{ .kind = .IdRef, .quantifier = .required },
11201 .{ .kind = .IdRef, .quantifier = .required },
12293 .operands = &.{
12294 .{ .kind = .id_result_type, .quantifier = .required },
12295 .{ .kind = .id_result, .quantifier = .required },
12296 .{ .kind = .id_ref, .quantifier = .required },
12297 .{ .kind = .id_ref, .quantifier = .required },
12298 .{ .kind = .id_ref, .quantifier = .required },
12299 .{ .kind = .id_ref, .quantifier = .required },
12300 .{ .kind = .id_ref, .quantifier = .required },
12301 .{ .kind = .id_ref, .quantifier = .required },
12302 .{ .kind = .id_ref, .quantifier = .required },
1120212303 },
1120312304 },
1120412305 .{
1120512306 .name = "OpSubgroupAvcBmeInitializeINTEL",
1120612307 .opcode = 5782,
11207 .operands = &[_]Operand{
11208 .{ .kind = .IdResultType, .quantifier = .required },
11209 .{ .kind = .IdResult, .quantifier = .required },
11210 .{ .kind = .IdRef, .quantifier = .required },
11211 .{ .kind = .IdRef, .quantifier = .required },
11212 .{ .kind = .IdRef, .quantifier = .required },
11213 .{ .kind = .IdRef, .quantifier = .required },
11214 .{ .kind = .IdRef, .quantifier = .required },
11215 .{ .kind = .IdRef, .quantifier = .required },
11216 .{ .kind = .IdRef, .quantifier = .required },
11217 .{ .kind = .IdRef, .quantifier = .required },
12308 .operands = &.{
12309 .{ .kind = .id_result_type, .quantifier = .required },
12310 .{ .kind = .id_result, .quantifier = .required },
12311 .{ .kind = .id_ref, .quantifier = .required },
12312 .{ .kind = .id_ref, .quantifier = .required },
12313 .{ .kind = .id_ref, .quantifier = .required },
12314 .{ .kind = .id_ref, .quantifier = .required },
12315 .{ .kind = .id_ref, .quantifier = .required },
12316 .{ .kind = .id_ref, .quantifier = .required },
12317 .{ .kind = .id_ref, .quantifier = .required },
12318 .{ .kind = .id_ref, .quantifier = .required },
1121812319 },
1121912320 },
1122012321 .{
1122112322 .name = "OpSubgroupAvcRefConvertToMcePayloadINTEL",
1122212323 .opcode = 5783,
11223 .operands = &[_]Operand{
11224 .{ .kind = .IdResultType, .quantifier = .required },
11225 .{ .kind = .IdResult, .quantifier = .required },
11226 .{ .kind = .IdRef, .quantifier = .required },
12324 .operands = &.{
12325 .{ .kind = .id_result_type, .quantifier = .required },
12326 .{ .kind = .id_result, .quantifier = .required },
12327 .{ .kind = .id_ref, .quantifier = .required },
1122712328 },
1122812329 },
1122912330 .{
1123012331 .name = "OpSubgroupAvcRefSetBidirectionalMixDisableINTEL",
1123112332 .opcode = 5784,
11232 .operands = &[_]Operand{
11233 .{ .kind = .IdResultType, .quantifier = .required },
11234 .{ .kind = .IdResult, .quantifier = .required },
11235 .{ .kind = .IdRef, .quantifier = .required },
12333 .operands = &.{
12334 .{ .kind = .id_result_type, .quantifier = .required },
12335 .{ .kind = .id_result, .quantifier = .required },
12336 .{ .kind = .id_ref, .quantifier = .required },
1123612337 },
1123712338 },
1123812339 .{
1123912340 .name = "OpSubgroupAvcRefSetBilinearFilterEnableINTEL",
1124012341 .opcode = 5785,
11241 .operands = &[_]Operand{
11242 .{ .kind = .IdResultType, .quantifier = .required },
11243 .{ .kind = .IdResult, .quantifier = .required },
11244 .{ .kind = .IdRef, .quantifier = .required },
12342 .operands = &.{
12343 .{ .kind = .id_result_type, .quantifier = .required },
12344 .{ .kind = .id_result, .quantifier = .required },
12345 .{ .kind = .id_ref, .quantifier = .required },
1124512346 },
1124612347 },
1124712348 .{
1124812349 .name = "OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL",
1124912350 .opcode = 5786,
11250 .operands = &[_]Operand{
11251 .{ .kind = .IdResultType, .quantifier = .required },
11252 .{ .kind = .IdResult, .quantifier = .required },
11253 .{ .kind = .IdRef, .quantifier = .required },
11254 .{ .kind = .IdRef, .quantifier = .required },
11255 .{ .kind = .IdRef, .quantifier = .required },
12351 .operands = &.{
12352 .{ .kind = .id_result_type, .quantifier = .required },
12353 .{ .kind = .id_result, .quantifier = .required },
12354 .{ .kind = .id_ref, .quantifier = .required },
12355 .{ .kind = .id_ref, .quantifier = .required },
12356 .{ .kind = .id_ref, .quantifier = .required },
1125612357 },
1125712358 },
1125812359 .{
1125912360 .name = "OpSubgroupAvcRefEvaluateWithDualReferenceINTEL",
1126012361 .opcode = 5787,
11261 .operands = &[_]Operand{
11262 .{ .kind = .IdResultType, .quantifier = .required },
11263 .{ .kind = .IdResult, .quantifier = .required },
11264 .{ .kind = .IdRef, .quantifier = .required },
11265 .{ .kind = .IdRef, .quantifier = .required },
11266 .{ .kind = .IdRef, .quantifier = .required },
11267 .{ .kind = .IdRef, .quantifier = .required },
12362 .operands = &.{
12363 .{ .kind = .id_result_type, .quantifier = .required },
12364 .{ .kind = .id_result, .quantifier = .required },
12365 .{ .kind = .id_ref, .quantifier = .required },
12366 .{ .kind = .id_ref, .quantifier = .required },
12367 .{ .kind = .id_ref, .quantifier = .required },
12368 .{ .kind = .id_ref, .quantifier = .required },
1126812369 },
1126912370 },
1127012371 .{
1127112372 .name = "OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL",
1127212373 .opcode = 5788,
11273 .operands = &[_]Operand{
11274 .{ .kind = .IdResultType, .quantifier = .required },
11275 .{ .kind = .IdResult, .quantifier = .required },
11276 .{ .kind = .IdRef, .quantifier = .required },
11277 .{ .kind = .IdRef, .quantifier = .required },
11278 .{ .kind = .IdRef, .quantifier = .required },
12374 .operands = &.{
12375 .{ .kind = .id_result_type, .quantifier = .required },
12376 .{ .kind = .id_result, .quantifier = .required },
12377 .{ .kind = .id_ref, .quantifier = .required },
12378 .{ .kind = .id_ref, .quantifier = .required },
12379 .{ .kind = .id_ref, .quantifier = .required },
1127912380 },
1128012381 },
1128112382 .{
1128212383 .name = "OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL",
1128312384 .opcode = 5789,
11284 .operands = &[_]Operand{
11285 .{ .kind = .IdResultType, .quantifier = .required },
11286 .{ .kind = .IdResult, .quantifier = .required },
11287 .{ .kind = .IdRef, .quantifier = .required },
11288 .{ .kind = .IdRef, .quantifier = .required },
11289 .{ .kind = .IdRef, .quantifier = .required },
11290 .{ .kind = .IdRef, .quantifier = .required },
12385 .operands = &.{
12386 .{ .kind = .id_result_type, .quantifier = .required },
12387 .{ .kind = .id_result, .quantifier = .required },
12388 .{ .kind = .id_ref, .quantifier = .required },
12389 .{ .kind = .id_ref, .quantifier = .required },
12390 .{ .kind = .id_ref, .quantifier = .required },
12391 .{ .kind = .id_ref, .quantifier = .required },
1129112392 },
1129212393 },
1129312394 .{
1129412395 .name = "OpSubgroupAvcRefConvertToMceResultINTEL",
1129512396 .opcode = 5790,
11296 .operands = &[_]Operand{
11297 .{ .kind = .IdResultType, .quantifier = .required },
11298 .{ .kind = .IdResult, .quantifier = .required },
11299 .{ .kind = .IdRef, .quantifier = .required },
12397 .operands = &.{
12398 .{ .kind = .id_result_type, .quantifier = .required },
12399 .{ .kind = .id_result, .quantifier = .required },
12400 .{ .kind = .id_ref, .quantifier = .required },
1130012401 },
1130112402 },
1130212403 .{
1130312404 .name = "OpSubgroupAvcSicInitializeINTEL",
1130412405 .opcode = 5791,
11305 .operands = &[_]Operand{
11306 .{ .kind = .IdResultType, .quantifier = .required },
11307 .{ .kind = .IdResult, .quantifier = .required },
11308 .{ .kind = .IdRef, .quantifier = .required },
12406 .operands = &.{
12407 .{ .kind = .id_result_type, .quantifier = .required },
12408 .{ .kind = .id_result, .quantifier = .required },
12409 .{ .kind = .id_ref, .quantifier = .required },
1130912410 },
1131012411 },
1131112412 .{
1131212413 .name = "OpSubgroupAvcSicConfigureSkcINTEL",
1131312414 .opcode = 5792,
11314 .operands = &[_]Operand{
11315 .{ .kind = .IdResultType, .quantifier = .required },
11316 .{ .kind = .IdResult, .quantifier = .required },
11317 .{ .kind = .IdRef, .quantifier = .required },
11318 .{ .kind = .IdRef, .quantifier = .required },
11319 .{ .kind = .IdRef, .quantifier = .required },
11320 .{ .kind = .IdRef, .quantifier = .required },
11321 .{ .kind = .IdRef, .quantifier = .required },
11322 .{ .kind = .IdRef, .quantifier = .required },
12415 .operands = &.{
12416 .{ .kind = .id_result_type, .quantifier = .required },
12417 .{ .kind = .id_result, .quantifier = .required },
12418 .{ .kind = .id_ref, .quantifier = .required },
12419 .{ .kind = .id_ref, .quantifier = .required },
12420 .{ .kind = .id_ref, .quantifier = .required },
12421 .{ .kind = .id_ref, .quantifier = .required },
12422 .{ .kind = .id_ref, .quantifier = .required },
12423 .{ .kind = .id_ref, .quantifier = .required },
1132312424 },
1132412425 },
1132512426 .{
1132612427 .name = "OpSubgroupAvcSicConfigureIpeLumaINTEL",
1132712428 .opcode = 5793,
11328 .operands = &[_]Operand{
11329 .{ .kind = .IdResultType, .quantifier = .required },
11330 .{ .kind = .IdResult, .quantifier = .required },
11331 .{ .kind = .IdRef, .quantifier = .required },
11332 .{ .kind = .IdRef, .quantifier = .required },
11333 .{ .kind = .IdRef, .quantifier = .required },
11334 .{ .kind = .IdRef, .quantifier = .required },
11335 .{ .kind = .IdRef, .quantifier = .required },
11336 .{ .kind = .IdRef, .quantifier = .required },
11337 .{ .kind = .IdRef, .quantifier = .required },
11338 .{ .kind = .IdRef, .quantifier = .required },
12429 .operands = &.{
12430 .{ .kind = .id_result_type, .quantifier = .required },
12431 .{ .kind = .id_result, .quantifier = .required },
12432 .{ .kind = .id_ref, .quantifier = .required },
12433 .{ .kind = .id_ref, .quantifier = .required },
12434 .{ .kind = .id_ref, .quantifier = .required },
12435 .{ .kind = .id_ref, .quantifier = .required },
12436 .{ .kind = .id_ref, .quantifier = .required },
12437 .{ .kind = .id_ref, .quantifier = .required },
12438 .{ .kind = .id_ref, .quantifier = .required },
12439 .{ .kind = .id_ref, .quantifier = .required },
1133912440 },
1134012441 },
1134112442 .{
1134212443 .name = "OpSubgroupAvcSicConfigureIpeLumaChromaINTEL",
1134312444 .opcode = 5794,
11344 .operands = &[_]Operand{
11345 .{ .kind = .IdResultType, .quantifier = .required },
11346 .{ .kind = .IdResult, .quantifier = .required },
11347 .{ .kind = .IdRef, .quantifier = .required },
11348 .{ .kind = .IdRef, .quantifier = .required },
11349 .{ .kind = .IdRef, .quantifier = .required },
11350 .{ .kind = .IdRef, .quantifier = .required },
11351 .{ .kind = .IdRef, .quantifier = .required },
11352 .{ .kind = .IdRef, .quantifier = .required },
11353 .{ .kind = .IdRef, .quantifier = .required },
11354 .{ .kind = .IdRef, .quantifier = .required },
11355 .{ .kind = .IdRef, .quantifier = .required },
11356 .{ .kind = .IdRef, .quantifier = .required },
11357 .{ .kind = .IdRef, .quantifier = .required },
12445 .operands = &.{
12446 .{ .kind = .id_result_type, .quantifier = .required },
12447 .{ .kind = .id_result, .quantifier = .required },
12448 .{ .kind = .id_ref, .quantifier = .required },
12449 .{ .kind = .id_ref, .quantifier = .required },
12450 .{ .kind = .id_ref, .quantifier = .required },
12451 .{ .kind = .id_ref, .quantifier = .required },
12452 .{ .kind = .id_ref, .quantifier = .required },
12453 .{ .kind = .id_ref, .quantifier = .required },
12454 .{ .kind = .id_ref, .quantifier = .required },
12455 .{ .kind = .id_ref, .quantifier = .required },
12456 .{ .kind = .id_ref, .quantifier = .required },
12457 .{ .kind = .id_ref, .quantifier = .required },
12458 .{ .kind = .id_ref, .quantifier = .required },
1135812459 },
1135912460 },
1136012461 .{
1136112462 .name = "OpSubgroupAvcSicGetMotionVectorMaskINTEL",
1136212463 .opcode = 5795,
11363 .operands = &[_]Operand{
11364 .{ .kind = .IdResultType, .quantifier = .required },
11365 .{ .kind = .IdResult, .quantifier = .required },
11366 .{ .kind = .IdRef, .quantifier = .required },
11367 .{ .kind = .IdRef, .quantifier = .required },
12464 .operands = &.{
12465 .{ .kind = .id_result_type, .quantifier = .required },
12466 .{ .kind = .id_result, .quantifier = .required },
12467 .{ .kind = .id_ref, .quantifier = .required },
12468 .{ .kind = .id_ref, .quantifier = .required },
1136812469 },
1136912470 },
1137012471 .{
1137112472 .name = "OpSubgroupAvcSicConvertToMcePayloadINTEL",
1137212473 .opcode = 5796,
11373 .operands = &[_]Operand{
11374 .{ .kind = .IdResultType, .quantifier = .required },
11375 .{ .kind = .IdResult, .quantifier = .required },
11376 .{ .kind = .IdRef, .quantifier = .required },
12474 .operands = &.{
12475 .{ .kind = .id_result_type, .quantifier = .required },
12476 .{ .kind = .id_result, .quantifier = .required },
12477 .{ .kind = .id_ref, .quantifier = .required },
1137712478 },
1137812479 },
1137912480 .{
1138012481 .name = "OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL",
1138112482 .opcode = 5797,
11382 .operands = &[_]Operand{
11383 .{ .kind = .IdResultType, .quantifier = .required },
11384 .{ .kind = .IdResult, .quantifier = .required },
11385 .{ .kind = .IdRef, .quantifier = .required },
11386 .{ .kind = .IdRef, .quantifier = .required },
12483 .operands = &.{
12484 .{ .kind = .id_result_type, .quantifier = .required },
12485 .{ .kind = .id_result, .quantifier = .required },
12486 .{ .kind = .id_ref, .quantifier = .required },
12487 .{ .kind = .id_ref, .quantifier = .required },
1138712488 },
1138812489 },
1138912490 .{
1139012491 .name = "OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL",
1139112492 .opcode = 5798,
11392 .operands = &[_]Operand{
11393 .{ .kind = .IdResultType, .quantifier = .required },
11394 .{ .kind = .IdResult, .quantifier = .required },
11395 .{ .kind = .IdRef, .quantifier = .required },
11396 .{ .kind = .IdRef, .quantifier = .required },
11397 .{ .kind = .IdRef, .quantifier = .required },
11398 .{ .kind = .IdRef, .quantifier = .required },
12493 .operands = &.{
12494 .{ .kind = .id_result_type, .quantifier = .required },
12495 .{ .kind = .id_result, .quantifier = .required },
12496 .{ .kind = .id_ref, .quantifier = .required },
12497 .{ .kind = .id_ref, .quantifier = .required },
12498 .{ .kind = .id_ref, .quantifier = .required },
12499 .{ .kind = .id_ref, .quantifier = .required },
1139912500 },
1140012501 },
1140112502 .{
1140212503 .name = "OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL",
1140312504 .opcode = 5799,
11404 .operands = &[_]Operand{
11405 .{ .kind = .IdResultType, .quantifier = .required },
11406 .{ .kind = .IdResult, .quantifier = .required },
11407 .{ .kind = .IdRef, .quantifier = .required },
11408 .{ .kind = .IdRef, .quantifier = .required },
12505 .operands = &.{
12506 .{ .kind = .id_result_type, .quantifier = .required },
12507 .{ .kind = .id_result, .quantifier = .required },
12508 .{ .kind = .id_ref, .quantifier = .required },
12509 .{ .kind = .id_ref, .quantifier = .required },
1140912510 },
1141012511 },
1141112512 .{
1141212513 .name = "OpSubgroupAvcSicSetBilinearFilterEnableINTEL",
1141312514 .opcode = 5800,
11414 .operands = &[_]Operand{
11415 .{ .kind = .IdResultType, .quantifier = .required },
11416 .{ .kind = .IdResult, .quantifier = .required },
11417 .{ .kind = .IdRef, .quantifier = .required },
12515 .operands = &.{
12516 .{ .kind = .id_result_type, .quantifier = .required },
12517 .{ .kind = .id_result, .quantifier = .required },
12518 .{ .kind = .id_ref, .quantifier = .required },
1141812519 },
1141912520 },
1142012521 .{
1142112522 .name = "OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL",
1142212523 .opcode = 5801,
11423 .operands = &[_]Operand{
11424 .{ .kind = .IdResultType, .quantifier = .required },
11425 .{ .kind = .IdResult, .quantifier = .required },
11426 .{ .kind = .IdRef, .quantifier = .required },
11427 .{ .kind = .IdRef, .quantifier = .required },
12524 .operands = &.{
12525 .{ .kind = .id_result_type, .quantifier = .required },
12526 .{ .kind = .id_result, .quantifier = .required },
12527 .{ .kind = .id_ref, .quantifier = .required },
12528 .{ .kind = .id_ref, .quantifier = .required },
1142812529 },
1142912530 },
1143012531 .{
1143112532 .name = "OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL",
1143212533 .opcode = 5802,
11433 .operands = &[_]Operand{
11434 .{ .kind = .IdResultType, .quantifier = .required },
11435 .{ .kind = .IdResult, .quantifier = .required },
11436 .{ .kind = .IdRef, .quantifier = .required },
11437 .{ .kind = .IdRef, .quantifier = .required },
12534 .operands = &.{
12535 .{ .kind = .id_result_type, .quantifier = .required },
12536 .{ .kind = .id_result, .quantifier = .required },
12537 .{ .kind = .id_ref, .quantifier = .required },
12538 .{ .kind = .id_ref, .quantifier = .required },
1143812539 },
1143912540 },
1144012541 .{
1144112542 .name = "OpSubgroupAvcSicEvaluateIpeINTEL",
1144212543 .opcode = 5803,
11443 .operands = &[_]Operand{
11444 .{ .kind = .IdResultType, .quantifier = .required },
11445 .{ .kind = .IdResult, .quantifier = .required },
11446 .{ .kind = .IdRef, .quantifier = .required },
11447 .{ .kind = .IdRef, .quantifier = .required },
12544 .operands = &.{
12545 .{ .kind = .id_result_type, .quantifier = .required },
12546 .{ .kind = .id_result, .quantifier = .required },
12547 .{ .kind = .id_ref, .quantifier = .required },
12548 .{ .kind = .id_ref, .quantifier = .required },
1144812549 },
1144912550 },
1145012551 .{
1145112552 .name = "OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL",
1145212553 .opcode = 5804,
11453 .operands = &[_]Operand{
11454 .{ .kind = .IdResultType, .quantifier = .required },
11455 .{ .kind = .IdResult, .quantifier = .required },
11456 .{ .kind = .IdRef, .quantifier = .required },
11457 .{ .kind = .IdRef, .quantifier = .required },
11458 .{ .kind = .IdRef, .quantifier = .required },
12554 .operands = &.{
12555 .{ .kind = .id_result_type, .quantifier = .required },
12556 .{ .kind = .id_result, .quantifier = .required },
12557 .{ .kind = .id_ref, .quantifier = .required },
12558 .{ .kind = .id_ref, .quantifier = .required },
12559 .{ .kind = .id_ref, .quantifier = .required },
1145912560 },
1146012561 },
1146112562 .{
1146212563 .name = "OpSubgroupAvcSicEvaluateWithDualReferenceINTEL",
1146312564 .opcode = 5805,
11464 .operands = &[_]Operand{
11465 .{ .kind = .IdResultType, .quantifier = .required },
11466 .{ .kind = .IdResult, .quantifier = .required },
11467 .{ .kind = .IdRef, .quantifier = .required },
11468 .{ .kind = .IdRef, .quantifier = .required },
11469 .{ .kind = .IdRef, .quantifier = .required },
11470 .{ .kind = .IdRef, .quantifier = .required },
12565 .operands = &.{
12566 .{ .kind = .id_result_type, .quantifier = .required },
12567 .{ .kind = .id_result, .quantifier = .required },
12568 .{ .kind = .id_ref, .quantifier = .required },
12569 .{ .kind = .id_ref, .quantifier = .required },
12570 .{ .kind = .id_ref, .quantifier = .required },
12571 .{ .kind = .id_ref, .quantifier = .required },
1147112572 },
1147212573 },
1147312574 .{
1147412575 .name = "OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL",
1147512576 .opcode = 5806,
11476 .operands = &[_]Operand{
11477 .{ .kind = .IdResultType, .quantifier = .required },
11478 .{ .kind = .IdResult, .quantifier = .required },
11479 .{ .kind = .IdRef, .quantifier = .required },
11480 .{ .kind = .IdRef, .quantifier = .required },
11481 .{ .kind = .IdRef, .quantifier = .required },
12577 .operands = &.{
12578 .{ .kind = .id_result_type, .quantifier = .required },
12579 .{ .kind = .id_result, .quantifier = .required },
12580 .{ .kind = .id_ref, .quantifier = .required },
12581 .{ .kind = .id_ref, .quantifier = .required },
12582 .{ .kind = .id_ref, .quantifier = .required },
1148212583 },
1148312584 },
1148412585 .{
1148512586 .name = "OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL",
1148612587 .opcode = 5807,
11487 .operands = &[_]Operand{
11488 .{ .kind = .IdResultType, .quantifier = .required },
11489 .{ .kind = .IdResult, .quantifier = .required },
11490 .{ .kind = .IdRef, .quantifier = .required },
11491 .{ .kind = .IdRef, .quantifier = .required },
11492 .{ .kind = .IdRef, .quantifier = .required },
11493 .{ .kind = .IdRef, .quantifier = .required },
12588 .operands = &.{
12589 .{ .kind = .id_result_type, .quantifier = .required },
12590 .{ .kind = .id_result, .quantifier = .required },
12591 .{ .kind = .id_ref, .quantifier = .required },
12592 .{ .kind = .id_ref, .quantifier = .required },
12593 .{ .kind = .id_ref, .quantifier = .required },
12594 .{ .kind = .id_ref, .quantifier = .required },
1149412595 },
1149512596 },
1149612597 .{
1149712598 .name = "OpSubgroupAvcSicConvertToMceResultINTEL",
1149812599 .opcode = 5808,
11499 .operands = &[_]Operand{
11500 .{ .kind = .IdResultType, .quantifier = .required },
11501 .{ .kind = .IdResult, .quantifier = .required },
11502 .{ .kind = .IdRef, .quantifier = .required },
12600 .operands = &.{
12601 .{ .kind = .id_result_type, .quantifier = .required },
12602 .{ .kind = .id_result, .quantifier = .required },
12603 .{ .kind = .id_ref, .quantifier = .required },
1150312604 },
1150412605 },
1150512606 .{
1150612607 .name = "OpSubgroupAvcSicGetIpeLumaShapeINTEL",
1150712608 .opcode = 5809,
11508 .operands = &[_]Operand{
11509 .{ .kind = .IdResultType, .quantifier = .required },
11510 .{ .kind = .IdResult, .quantifier = .required },
11511 .{ .kind = .IdRef, .quantifier = .required },
12609 .operands = &.{
12610 .{ .kind = .id_result_type, .quantifier = .required },
12611 .{ .kind = .id_result, .quantifier = .required },
12612 .{ .kind = .id_ref, .quantifier = .required },
1151212613 },
1151312614 },
1151412615 .{
1151512616 .name = "OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL",
1151612617 .opcode = 5810,
11517 .operands = &[_]Operand{
11518 .{ .kind = .IdResultType, .quantifier = .required },
11519 .{ .kind = .IdResult, .quantifier = .required },
11520 .{ .kind = .IdRef, .quantifier = .required },
12618 .operands = &.{
12619 .{ .kind = .id_result_type, .quantifier = .required },
12620 .{ .kind = .id_result, .quantifier = .required },
12621 .{ .kind = .id_ref, .quantifier = .required },
1152112622 },
1152212623 },
1152312624 .{
1152412625 .name = "OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL",
1152512626 .opcode = 5811,
11526 .operands = &[_]Operand{
11527 .{ .kind = .IdResultType, .quantifier = .required },
11528 .{ .kind = .IdResult, .quantifier = .required },
11529 .{ .kind = .IdRef, .quantifier = .required },
12627 .operands = &.{
12628 .{ .kind = .id_result_type, .quantifier = .required },
12629 .{ .kind = .id_result, .quantifier = .required },
12630 .{ .kind = .id_ref, .quantifier = .required },
1153012631 },
1153112632 },
1153212633 .{
1153312634 .name = "OpSubgroupAvcSicGetPackedIpeLumaModesINTEL",
1153412635 .opcode = 5812,
11535 .operands = &[_]Operand{
11536 .{ .kind = .IdResultType, .quantifier = .required },
11537 .{ .kind = .IdResult, .quantifier = .required },
11538 .{ .kind = .IdRef, .quantifier = .required },
12636 .operands = &.{
12637 .{ .kind = .id_result_type, .quantifier = .required },
12638 .{ .kind = .id_result, .quantifier = .required },
12639 .{ .kind = .id_ref, .quantifier = .required },
1153912640 },
1154012641 },
1154112642 .{
1154212643 .name = "OpSubgroupAvcSicGetIpeChromaModeINTEL",
1154312644 .opcode = 5813,
11544 .operands = &[_]Operand{
11545 .{ .kind = .IdResultType, .quantifier = .required },
11546 .{ .kind = .IdResult, .quantifier = .required },
11547 .{ .kind = .IdRef, .quantifier = .required },
12645 .operands = &.{
12646 .{ .kind = .id_result_type, .quantifier = .required },
12647 .{ .kind = .id_result, .quantifier = .required },
12648 .{ .kind = .id_ref, .quantifier = .required },
1154812649 },
1154912650 },
1155012651 .{
1155112652 .name = "OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL",
1155212653 .opcode = 5814,
11553 .operands = &[_]Operand{
11554 .{ .kind = .IdResultType, .quantifier = .required },
11555 .{ .kind = .IdResult, .quantifier = .required },
11556 .{ .kind = .IdRef, .quantifier = .required },
12654 .operands = &.{
12655 .{ .kind = .id_result_type, .quantifier = .required },
12656 .{ .kind = .id_result, .quantifier = .required },
12657 .{ .kind = .id_ref, .quantifier = .required },
1155712658 },
1155812659 },
1155912660 .{
1156012661 .name = "OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL",
1156112662 .opcode = 5815,
11562 .operands = &[_]Operand{
11563 .{ .kind = .IdResultType, .quantifier = .required },
11564 .{ .kind = .IdResult, .quantifier = .required },
11565 .{ .kind = .IdRef, .quantifier = .required },
12663 .operands = &.{
12664 .{ .kind = .id_result_type, .quantifier = .required },
12665 .{ .kind = .id_result, .quantifier = .required },
12666 .{ .kind = .id_ref, .quantifier = .required },
1156612667 },
1156712668 },
1156812669 .{
1156912670 .name = "OpSubgroupAvcSicGetInterRawSadsINTEL",
1157012671 .opcode = 5816,
11571 .operands = &[_]Operand{
11572 .{ .kind = .IdResultType, .quantifier = .required },
11573 .{ .kind = .IdResult, .quantifier = .required },
11574 .{ .kind = .IdRef, .quantifier = .required },
12672 .operands = &.{
12673 .{ .kind = .id_result_type, .quantifier = .required },
12674 .{ .kind = .id_result, .quantifier = .required },
12675 .{ .kind = .id_ref, .quantifier = .required },
1157512676 },
1157612677 },
1157712678 .{
1157812679 .name = "OpVariableLengthArrayINTEL",
1157912680 .opcode = 5818,
11580 .operands = &[_]Operand{
11581 .{ .kind = .IdResultType, .quantifier = .required },
11582 .{ .kind = .IdResult, .quantifier = .required },
11583 .{ .kind = .IdRef, .quantifier = .required },
12681 .operands = &.{
12682 .{ .kind = .id_result_type, .quantifier = .required },
12683 .{ .kind = .id_result, .quantifier = .required },
12684 .{ .kind = .id_ref, .quantifier = .required },
1158412685 },
1158512686 },
1158612687 .{
1158712688 .name = "OpSaveMemoryINTEL",
1158812689 .opcode = 5819,
11589 .operands = &[_]Operand{
11590 .{ .kind = .IdResultType, .quantifier = .required },
11591 .{ .kind = .IdResult, .quantifier = .required },
12690 .operands = &.{
12691 .{ .kind = .id_result_type, .quantifier = .required },
12692 .{ .kind = .id_result, .quantifier = .required },
1159212693 },
1159312694 },
1159412695 .{
1159512696 .name = "OpRestoreMemoryINTEL",
1159612697 .opcode = 5820,
11597 .operands = &[_]Operand{
11598 .{ .kind = .IdRef, .quantifier = .required },
12698 .operands = &.{
12699 .{ .kind = .id_ref, .quantifier = .required },
1159912700 },
1160012701 },
1160112702 .{
1160212703 .name = "OpArbitraryFloatSinCosPiINTEL",
1160312704 .opcode = 5840,
11604 .operands = &[_]Operand{
11605 .{ .kind = .IdResultType, .quantifier = .required },
11606 .{ .kind = .IdResult, .quantifier = .required },
11607 .{ .kind = .IdRef, .quantifier = .required },
11608 .{ .kind = .LiteralInteger, .quantifier = .required },
11609 .{ .kind = .LiteralInteger, .quantifier = .required },
11610 .{ .kind = .LiteralInteger, .quantifier = .required },
11611 .{ .kind = .LiteralInteger, .quantifier = .required },
11612 .{ .kind = .LiteralInteger, .quantifier = .required },
11613 .{ .kind = .LiteralInteger, .quantifier = .required },
12705 .operands = &.{
12706 .{ .kind = .id_result_type, .quantifier = .required },
12707 .{ .kind = .id_result, .quantifier = .required },
12708 .{ .kind = .id_ref, .quantifier = .required },
12709 .{ .kind = .literal_integer, .quantifier = .required },
12710 .{ .kind = .literal_integer, .quantifier = .required },
12711 .{ .kind = .literal_integer, .quantifier = .required },
12712 .{ .kind = .literal_integer, .quantifier = .required },
12713 .{ .kind = .literal_integer, .quantifier = .required },
1161412714 },
1161512715 },
1161612716 .{
1161712717 .name = "OpArbitraryFloatCastINTEL",
1161812718 .opcode = 5841,
11619 .operands = &[_]Operand{
11620 .{ .kind = .IdResultType, .quantifier = .required },
11621 .{ .kind = .IdResult, .quantifier = .required },
11622 .{ .kind = .IdRef, .quantifier = .required },
11623 .{ .kind = .LiteralInteger, .quantifier = .required },
11624 .{ .kind = .LiteralInteger, .quantifier = .required },
11625 .{ .kind = .LiteralInteger, .quantifier = .required },
11626 .{ .kind = .LiteralInteger, .quantifier = .required },
11627 .{ .kind = .LiteralInteger, .quantifier = .required },
12719 .operands = &.{
12720 .{ .kind = .id_result_type, .quantifier = .required },
12721 .{ .kind = .id_result, .quantifier = .required },
12722 .{ .kind = .id_ref, .quantifier = .required },
12723 .{ .kind = .literal_integer, .quantifier = .required },
12724 .{ .kind = .literal_integer, .quantifier = .required },
12725 .{ .kind = .literal_integer, .quantifier = .required },
12726 .{ .kind = .literal_integer, .quantifier = .required },
12727 .{ .kind = .literal_integer, .quantifier = .required },
1162812728 },
1162912729 },
1163012730 .{
1163112731 .name = "OpArbitraryFloatCastFromIntINTEL",
1163212732 .opcode = 5842,
11633 .operands = &[_]Operand{
11634 .{ .kind = .IdResultType, .quantifier = .required },
11635 .{ .kind = .IdResult, .quantifier = .required },
11636 .{ .kind = .IdRef, .quantifier = .required },
11637 .{ .kind = .LiteralInteger, .quantifier = .required },
11638 .{ .kind = .LiteralInteger, .quantifier = .required },
11639 .{ .kind = .LiteralInteger, .quantifier = .required },
11640 .{ .kind = .LiteralInteger, .quantifier = .required },
11641 .{ .kind = .LiteralInteger, .quantifier = .required },
12733 .operands = &.{
12734 .{ .kind = .id_result_type, .quantifier = .required },
12735 .{ .kind = .id_result, .quantifier = .required },
12736 .{ .kind = .id_ref, .quantifier = .required },
12737 .{ .kind = .literal_integer, .quantifier = .required },
12738 .{ .kind = .literal_integer, .quantifier = .required },
12739 .{ .kind = .literal_integer, .quantifier = .required },
12740 .{ .kind = .literal_integer, .quantifier = .required },
12741 .{ .kind = .literal_integer, .quantifier = .required },
1164212742 },
1164312743 },
1164412744 .{
1164512745 .name = "OpArbitraryFloatCastToIntINTEL",
1164612746 .opcode = 5843,
11647 .operands = &[_]Operand{
11648 .{ .kind = .IdResultType, .quantifier = .required },
11649 .{ .kind = .IdResult, .quantifier = .required },
11650 .{ .kind = .IdRef, .quantifier = .required },
11651 .{ .kind = .LiteralInteger, .quantifier = .required },
11652 .{ .kind = .LiteralInteger, .quantifier = .required },
11653 .{ .kind = .LiteralInteger, .quantifier = .required },
11654 .{ .kind = .LiteralInteger, .quantifier = .required },
12747 .operands = &.{
12748 .{ .kind = .id_result_type, .quantifier = .required },
12749 .{ .kind = .id_result, .quantifier = .required },
12750 .{ .kind = .id_ref, .quantifier = .required },
12751 .{ .kind = .literal_integer, .quantifier = .required },
12752 .{ .kind = .literal_integer, .quantifier = .required },
12753 .{ .kind = .literal_integer, .quantifier = .required },
12754 .{ .kind = .literal_integer, .quantifier = .required },
12755 .{ .kind = .literal_integer, .quantifier = .required },
1165512756 },
1165612757 },
1165712758 .{
1165812759 .name = "OpArbitraryFloatAddINTEL",
1165912760 .opcode = 5846,
11660 .operands = &[_]Operand{
11661 .{ .kind = .IdResultType, .quantifier = .required },
11662 .{ .kind = .IdResult, .quantifier = .required },
11663 .{ .kind = .IdRef, .quantifier = .required },
11664 .{ .kind = .LiteralInteger, .quantifier = .required },
11665 .{ .kind = .IdRef, .quantifier = .required },
11666 .{ .kind = .LiteralInteger, .quantifier = .required },
11667 .{ .kind = .LiteralInteger, .quantifier = .required },
11668 .{ .kind = .LiteralInteger, .quantifier = .required },
11669 .{ .kind = .LiteralInteger, .quantifier = .required },
11670 .{ .kind = .LiteralInteger, .quantifier = .required },
12761 .operands = &.{
12762 .{ .kind = .id_result_type, .quantifier = .required },
12763 .{ .kind = .id_result, .quantifier = .required },
12764 .{ .kind = .id_ref, .quantifier = .required },
12765 .{ .kind = .literal_integer, .quantifier = .required },
12766 .{ .kind = .id_ref, .quantifier = .required },
12767 .{ .kind = .literal_integer, .quantifier = .required },
12768 .{ .kind = .literal_integer, .quantifier = .required },
12769 .{ .kind = .literal_integer, .quantifier = .required },
12770 .{ .kind = .literal_integer, .quantifier = .required },
12771 .{ .kind = .literal_integer, .quantifier = .required },
1167112772 },
1167212773 },
1167312774 .{
1167412775 .name = "OpArbitraryFloatSubINTEL",
1167512776 .opcode = 5847,
11676 .operands = &[_]Operand{
11677 .{ .kind = .IdResultType, .quantifier = .required },
11678 .{ .kind = .IdResult, .quantifier = .required },
11679 .{ .kind = .IdRef, .quantifier = .required },
11680 .{ .kind = .LiteralInteger, .quantifier = .required },
11681 .{ .kind = .IdRef, .quantifier = .required },
11682 .{ .kind = .LiteralInteger, .quantifier = .required },
11683 .{ .kind = .LiteralInteger, .quantifier = .required },
11684 .{ .kind = .LiteralInteger, .quantifier = .required },
11685 .{ .kind = .LiteralInteger, .quantifier = .required },
11686 .{ .kind = .LiteralInteger, .quantifier = .required },
12777 .operands = &.{
12778 .{ .kind = .id_result_type, .quantifier = .required },
12779 .{ .kind = .id_result, .quantifier = .required },
12780 .{ .kind = .id_ref, .quantifier = .required },
12781 .{ .kind = .literal_integer, .quantifier = .required },
12782 .{ .kind = .id_ref, .quantifier = .required },
12783 .{ .kind = .literal_integer, .quantifier = .required },
12784 .{ .kind = .literal_integer, .quantifier = .required },
12785 .{ .kind = .literal_integer, .quantifier = .required },
12786 .{ .kind = .literal_integer, .quantifier = .required },
12787 .{ .kind = .literal_integer, .quantifier = .required },
1168712788 },
1168812789 },
1168912790 .{
1169012791 .name = "OpArbitraryFloatMulINTEL",
1169112792 .opcode = 5848,
11692 .operands = &[_]Operand{
11693 .{ .kind = .IdResultType, .quantifier = .required },
11694 .{ .kind = .IdResult, .quantifier = .required },
11695 .{ .kind = .IdRef, .quantifier = .required },
11696 .{ .kind = .LiteralInteger, .quantifier = .required },
11697 .{ .kind = .IdRef, .quantifier = .required },
11698 .{ .kind = .LiteralInteger, .quantifier = .required },
11699 .{ .kind = .LiteralInteger, .quantifier = .required },
11700 .{ .kind = .LiteralInteger, .quantifier = .required },
11701 .{ .kind = .LiteralInteger, .quantifier = .required },
11702 .{ .kind = .LiteralInteger, .quantifier = .required },
12793 .operands = &.{
12794 .{ .kind = .id_result_type, .quantifier = .required },
12795 .{ .kind = .id_result, .quantifier = .required },
12796 .{ .kind = .id_ref, .quantifier = .required },
12797 .{ .kind = .literal_integer, .quantifier = .required },
12798 .{ .kind = .id_ref, .quantifier = .required },
12799 .{ .kind = .literal_integer, .quantifier = .required },
12800 .{ .kind = .literal_integer, .quantifier = .required },
12801 .{ .kind = .literal_integer, .quantifier = .required },
12802 .{ .kind = .literal_integer, .quantifier = .required },
12803 .{ .kind = .literal_integer, .quantifier = .required },
1170312804 },
1170412805 },
1170512806 .{
1170612807 .name = "OpArbitraryFloatDivINTEL",
1170712808 .opcode = 5849,
11708 .operands = &[_]Operand{
11709 .{ .kind = .IdResultType, .quantifier = .required },
11710 .{ .kind = .IdResult, .quantifier = .required },
11711 .{ .kind = .IdRef, .quantifier = .required },
11712 .{ .kind = .LiteralInteger, .quantifier = .required },
11713 .{ .kind = .IdRef, .quantifier = .required },
11714 .{ .kind = .LiteralInteger, .quantifier = .required },
11715 .{ .kind = .LiteralInteger, .quantifier = .required },
11716 .{ .kind = .LiteralInteger, .quantifier = .required },
11717 .{ .kind = .LiteralInteger, .quantifier = .required },
11718 .{ .kind = .LiteralInteger, .quantifier = .required },
12809 .operands = &.{
12810 .{ .kind = .id_result_type, .quantifier = .required },
12811 .{ .kind = .id_result, .quantifier = .required },
12812 .{ .kind = .id_ref, .quantifier = .required },
12813 .{ .kind = .literal_integer, .quantifier = .required },
12814 .{ .kind = .id_ref, .quantifier = .required },
12815 .{ .kind = .literal_integer, .quantifier = .required },
12816 .{ .kind = .literal_integer, .quantifier = .required },
12817 .{ .kind = .literal_integer, .quantifier = .required },
12818 .{ .kind = .literal_integer, .quantifier = .required },
12819 .{ .kind = .literal_integer, .quantifier = .required },
1171912820 },
1172012821 },
1172112822 .{
1172212823 .name = "OpArbitraryFloatGTINTEL",
1172312824 .opcode = 5850,
11724 .operands = &[_]Operand{
11725 .{ .kind = .IdResultType, .quantifier = .required },
11726 .{ .kind = .IdResult, .quantifier = .required },
11727 .{ .kind = .IdRef, .quantifier = .required },
11728 .{ .kind = .LiteralInteger, .quantifier = .required },
11729 .{ .kind = .IdRef, .quantifier = .required },
11730 .{ .kind = .LiteralInteger, .quantifier = .required },
12825 .operands = &.{
12826 .{ .kind = .id_result_type, .quantifier = .required },
12827 .{ .kind = .id_result, .quantifier = .required },
12828 .{ .kind = .id_ref, .quantifier = .required },
12829 .{ .kind = .literal_integer, .quantifier = .required },
12830 .{ .kind = .id_ref, .quantifier = .required },
12831 .{ .kind = .literal_integer, .quantifier = .required },
1173112832 },
1173212833 },
1173312834 .{
1173412835 .name = "OpArbitraryFloatGEINTEL",
1173512836 .opcode = 5851,
11736 .operands = &[_]Operand{
11737 .{ .kind = .IdResultType, .quantifier = .required },
11738 .{ .kind = .IdResult, .quantifier = .required },
11739 .{ .kind = .IdRef, .quantifier = .required },
11740 .{ .kind = .LiteralInteger, .quantifier = .required },
11741 .{ .kind = .IdRef, .quantifier = .required },
11742 .{ .kind = .LiteralInteger, .quantifier = .required },
12837 .operands = &.{
12838 .{ .kind = .id_result_type, .quantifier = .required },
12839 .{ .kind = .id_result, .quantifier = .required },
12840 .{ .kind = .id_ref, .quantifier = .required },
12841 .{ .kind = .literal_integer, .quantifier = .required },
12842 .{ .kind = .id_ref, .quantifier = .required },
12843 .{ .kind = .literal_integer, .quantifier = .required },
1174312844 },
1174412845 },
1174512846 .{
1174612847 .name = "OpArbitraryFloatLTINTEL",
1174712848 .opcode = 5852,
11748 .operands = &[_]Operand{
11749 .{ .kind = .IdResultType, .quantifier = .required },
11750 .{ .kind = .IdResult, .quantifier = .required },
11751 .{ .kind = .IdRef, .quantifier = .required },
11752 .{ .kind = .LiteralInteger, .quantifier = .required },
11753 .{ .kind = .IdRef, .quantifier = .required },
11754 .{ .kind = .LiteralInteger, .quantifier = .required },
12849 .operands = &.{
12850 .{ .kind = .id_result_type, .quantifier = .required },
12851 .{ .kind = .id_result, .quantifier = .required },
12852 .{ .kind = .id_ref, .quantifier = .required },
12853 .{ .kind = .literal_integer, .quantifier = .required },
12854 .{ .kind = .id_ref, .quantifier = .required },
12855 .{ .kind = .literal_integer, .quantifier = .required },
1175512856 },
1175612857 },
1175712858 .{
1175812859 .name = "OpArbitraryFloatLEINTEL",
1175912860 .opcode = 5853,
11760 .operands = &[_]Operand{
11761 .{ .kind = .IdResultType, .quantifier = .required },
11762 .{ .kind = .IdResult, .quantifier = .required },
11763 .{ .kind = .IdRef, .quantifier = .required },
11764 .{ .kind = .LiteralInteger, .quantifier = .required },
11765 .{ .kind = .IdRef, .quantifier = .required },
11766 .{ .kind = .LiteralInteger, .quantifier = .required },
12861 .operands = &.{
12862 .{ .kind = .id_result_type, .quantifier = .required },
12863 .{ .kind = .id_result, .quantifier = .required },
12864 .{ .kind = .id_ref, .quantifier = .required },
12865 .{ .kind = .literal_integer, .quantifier = .required },
12866 .{ .kind = .id_ref, .quantifier = .required },
12867 .{ .kind = .literal_integer, .quantifier = .required },
1176712868 },
1176812869 },
1176912870 .{
1177012871 .name = "OpArbitraryFloatEQINTEL",
1177112872 .opcode = 5854,
11772 .operands = &[_]Operand{
11773 .{ .kind = .IdResultType, .quantifier = .required },
11774 .{ .kind = .IdResult, .quantifier = .required },
11775 .{ .kind = .IdRef, .quantifier = .required },
11776 .{ .kind = .LiteralInteger, .quantifier = .required },
11777 .{ .kind = .IdRef, .quantifier = .required },
11778 .{ .kind = .LiteralInteger, .quantifier = .required },
12873 .operands = &.{
12874 .{ .kind = .id_result_type, .quantifier = .required },
12875 .{ .kind = .id_result, .quantifier = .required },
12876 .{ .kind = .id_ref, .quantifier = .required },
12877 .{ .kind = .literal_integer, .quantifier = .required },
12878 .{ .kind = .id_ref, .quantifier = .required },
12879 .{ .kind = .literal_integer, .quantifier = .required },
1177912880 },
1178012881 },
1178112882 .{
1178212883 .name = "OpArbitraryFloatRecipINTEL",
1178312884 .opcode = 5855,
11784 .operands = &[_]Operand{
11785 .{ .kind = .IdResultType, .quantifier = .required },
11786 .{ .kind = .IdResult, .quantifier = .required },
11787 .{ .kind = .IdRef, .quantifier = .required },
11788 .{ .kind = .LiteralInteger, .quantifier = .required },
11789 .{ .kind = .LiteralInteger, .quantifier = .required },
11790 .{ .kind = .LiteralInteger, .quantifier = .required },
11791 .{ .kind = .LiteralInteger, .quantifier = .required },
11792 .{ .kind = .LiteralInteger, .quantifier = .required },
12885 .operands = &.{
12886 .{ .kind = .id_result_type, .quantifier = .required },
12887 .{ .kind = .id_result, .quantifier = .required },
12888 .{ .kind = .id_ref, .quantifier = .required },
12889 .{ .kind = .literal_integer, .quantifier = .required },
12890 .{ .kind = .literal_integer, .quantifier = .required },
12891 .{ .kind = .literal_integer, .quantifier = .required },
12892 .{ .kind = .literal_integer, .quantifier = .required },
12893 .{ .kind = .literal_integer, .quantifier = .required },
1179312894 },
1179412895 },
1179512896 .{
1179612897 .name = "OpArbitraryFloatRSqrtINTEL",
1179712898 .opcode = 5856,
11798 .operands = &[_]Operand{
11799 .{ .kind = .IdResultType, .quantifier = .required },
11800 .{ .kind = .IdResult, .quantifier = .required },
11801 .{ .kind = .IdRef, .quantifier = .required },
11802 .{ .kind = .LiteralInteger, .quantifier = .required },
11803 .{ .kind = .LiteralInteger, .quantifier = .required },
11804 .{ .kind = .LiteralInteger, .quantifier = .required },
11805 .{ .kind = .LiteralInteger, .quantifier = .required },
11806 .{ .kind = .LiteralInteger, .quantifier = .required },
12899 .operands = &.{
12900 .{ .kind = .id_result_type, .quantifier = .required },
12901 .{ .kind = .id_result, .quantifier = .required },
12902 .{ .kind = .id_ref, .quantifier = .required },
12903 .{ .kind = .literal_integer, .quantifier = .required },
12904 .{ .kind = .literal_integer, .quantifier = .required },
12905 .{ .kind = .literal_integer, .quantifier = .required },
12906 .{ .kind = .literal_integer, .quantifier = .required },
12907 .{ .kind = .literal_integer, .quantifier = .required },
1180712908 },
1180812909 },
1180912910 .{
1181012911 .name = "OpArbitraryFloatCbrtINTEL",
1181112912 .opcode = 5857,
11812 .operands = &[_]Operand{
11813 .{ .kind = .IdResultType, .quantifier = .required },
11814 .{ .kind = .IdResult, .quantifier = .required },
11815 .{ .kind = .IdRef, .quantifier = .required },
11816 .{ .kind = .LiteralInteger, .quantifier = .required },
11817 .{ .kind = .LiteralInteger, .quantifier = .required },
11818 .{ .kind = .LiteralInteger, .quantifier = .required },
11819 .{ .kind = .LiteralInteger, .quantifier = .required },
11820 .{ .kind = .LiteralInteger, .quantifier = .required },
12913 .operands = &.{
12914 .{ .kind = .id_result_type, .quantifier = .required },
12915 .{ .kind = .id_result, .quantifier = .required },
12916 .{ .kind = .id_ref, .quantifier = .required },
12917 .{ .kind = .literal_integer, .quantifier = .required },
12918 .{ .kind = .literal_integer, .quantifier = .required },
12919 .{ .kind = .literal_integer, .quantifier = .required },
12920 .{ .kind = .literal_integer, .quantifier = .required },
12921 .{ .kind = .literal_integer, .quantifier = .required },
1182112922 },
1182212923 },
1182312924 .{
1182412925 .name = "OpArbitraryFloatHypotINTEL",
1182512926 .opcode = 5858,
11826 .operands = &[_]Operand{
11827 .{ .kind = .IdResultType, .quantifier = .required },
11828 .{ .kind = .IdResult, .quantifier = .required },
11829 .{ .kind = .IdRef, .quantifier = .required },
11830 .{ .kind = .LiteralInteger, .quantifier = .required },
11831 .{ .kind = .IdRef, .quantifier = .required },
11832 .{ .kind = .LiteralInteger, .quantifier = .required },
11833 .{ .kind = .LiteralInteger, .quantifier = .required },
11834 .{ .kind = .LiteralInteger, .quantifier = .required },
11835 .{ .kind = .LiteralInteger, .quantifier = .required },
11836 .{ .kind = .LiteralInteger, .quantifier = .required },
12927 .operands = &.{
12928 .{ .kind = .id_result_type, .quantifier = .required },
12929 .{ .kind = .id_result, .quantifier = .required },
12930 .{ .kind = .id_ref, .quantifier = .required },
12931 .{ .kind = .literal_integer, .quantifier = .required },
12932 .{ .kind = .id_ref, .quantifier = .required },
12933 .{ .kind = .literal_integer, .quantifier = .required },
12934 .{ .kind = .literal_integer, .quantifier = .required },
12935 .{ .kind = .literal_integer, .quantifier = .required },
12936 .{ .kind = .literal_integer, .quantifier = .required },
12937 .{ .kind = .literal_integer, .quantifier = .required },
1183712938 },
1183812939 },
1183912940 .{
1184012941 .name = "OpArbitraryFloatSqrtINTEL",
1184112942 .opcode = 5859,
11842 .operands = &[_]Operand{
11843 .{ .kind = .IdResultType, .quantifier = .required },
11844 .{ .kind = .IdResult, .quantifier = .required },
11845 .{ .kind = .IdRef, .quantifier = .required },
11846 .{ .kind = .LiteralInteger, .quantifier = .required },
11847 .{ .kind = .LiteralInteger, .quantifier = .required },
11848 .{ .kind = .LiteralInteger, .quantifier = .required },
11849 .{ .kind = .LiteralInteger, .quantifier = .required },
11850 .{ .kind = .LiteralInteger, .quantifier = .required },
12943 .operands = &.{
12944 .{ .kind = .id_result_type, .quantifier = .required },
12945 .{ .kind = .id_result, .quantifier = .required },
12946 .{ .kind = .id_ref, .quantifier = .required },
12947 .{ .kind = .literal_integer, .quantifier = .required },
12948 .{ .kind = .literal_integer, .quantifier = .required },
12949 .{ .kind = .literal_integer, .quantifier = .required },
12950 .{ .kind = .literal_integer, .quantifier = .required },
12951 .{ .kind = .literal_integer, .quantifier = .required },
1185112952 },
1185212953 },
1185312954 .{
1185412955 .name = "OpArbitraryFloatLogINTEL",
1185512956 .opcode = 5860,
11856 .operands = &[_]Operand{
11857 .{ .kind = .IdResultType, .quantifier = .required },
11858 .{ .kind = .IdResult, .quantifier = .required },
11859 .{ .kind = .IdRef, .quantifier = .required },
11860 .{ .kind = .LiteralInteger, .quantifier = .required },
11861 .{ .kind = .LiteralInteger, .quantifier = .required },
11862 .{ .kind = .LiteralInteger, .quantifier = .required },
11863 .{ .kind = .LiteralInteger, .quantifier = .required },
11864 .{ .kind = .LiteralInteger, .quantifier = .required },
12957 .operands = &.{
12958 .{ .kind = .id_result_type, .quantifier = .required },
12959 .{ .kind = .id_result, .quantifier = .required },
12960 .{ .kind = .id_ref, .quantifier = .required },
12961 .{ .kind = .literal_integer, .quantifier = .required },
12962 .{ .kind = .literal_integer, .quantifier = .required },
12963 .{ .kind = .literal_integer, .quantifier = .required },
12964 .{ .kind = .literal_integer, .quantifier = .required },
12965 .{ .kind = .literal_integer, .quantifier = .required },
1186512966 },
1186612967 },
1186712968 .{
1186812969 .name = "OpArbitraryFloatLog2INTEL",
1186912970 .opcode = 5861,
11870 .operands = &[_]Operand{
11871 .{ .kind = .IdResultType, .quantifier = .required },
11872 .{ .kind = .IdResult, .quantifier = .required },
11873 .{ .kind = .IdRef, .quantifier = .required },
11874 .{ .kind = .LiteralInteger, .quantifier = .required },
11875 .{ .kind = .LiteralInteger, .quantifier = .required },
11876 .{ .kind = .LiteralInteger, .quantifier = .required },
11877 .{ .kind = .LiteralInteger, .quantifier = .required },
11878 .{ .kind = .LiteralInteger, .quantifier = .required },
12971 .operands = &.{
12972 .{ .kind = .id_result_type, .quantifier = .required },
12973 .{ .kind = .id_result, .quantifier = .required },
12974 .{ .kind = .id_ref, .quantifier = .required },
12975 .{ .kind = .literal_integer, .quantifier = .required },
12976 .{ .kind = .literal_integer, .quantifier = .required },
12977 .{ .kind = .literal_integer, .quantifier = .required },
12978 .{ .kind = .literal_integer, .quantifier = .required },
12979 .{ .kind = .literal_integer, .quantifier = .required },
1187912980 },
1188012981 },
1188112982 .{
1188212983 .name = "OpArbitraryFloatLog10INTEL",
1188312984 .opcode = 5862,
11884 .operands = &[_]Operand{
11885 .{ .kind = .IdResultType, .quantifier = .required },
11886 .{ .kind = .IdResult, .quantifier = .required },
11887 .{ .kind = .IdRef, .quantifier = .required },
11888 .{ .kind = .LiteralInteger, .quantifier = .required },
11889 .{ .kind = .LiteralInteger, .quantifier = .required },
11890 .{ .kind = .LiteralInteger, .quantifier = .required },
11891 .{ .kind = .LiteralInteger, .quantifier = .required },
11892 .{ .kind = .LiteralInteger, .quantifier = .required },
12985 .operands = &.{
12986 .{ .kind = .id_result_type, .quantifier = .required },
12987 .{ .kind = .id_result, .quantifier = .required },
12988 .{ .kind = .id_ref, .quantifier = .required },
12989 .{ .kind = .literal_integer, .quantifier = .required },
12990 .{ .kind = .literal_integer, .quantifier = .required },
12991 .{ .kind = .literal_integer, .quantifier = .required },
12992 .{ .kind = .literal_integer, .quantifier = .required },
12993 .{ .kind = .literal_integer, .quantifier = .required },
1189312994 },
1189412995 },
1189512996 .{
1189612997 .name = "OpArbitraryFloatLog1pINTEL",
1189712998 .opcode = 5863,
11898 .operands = &[_]Operand{
11899 .{ .kind = .IdResultType, .quantifier = .required },
11900 .{ .kind = .IdResult, .quantifier = .required },
11901 .{ .kind = .IdRef, .quantifier = .required },
11902 .{ .kind = .LiteralInteger, .quantifier = .required },
11903 .{ .kind = .LiteralInteger, .quantifier = .required },
11904 .{ .kind = .LiteralInteger, .quantifier = .required },
11905 .{ .kind = .LiteralInteger, .quantifier = .required },
11906 .{ .kind = .LiteralInteger, .quantifier = .required },
12999 .operands = &.{
13000 .{ .kind = .id_result_type, .quantifier = .required },
13001 .{ .kind = .id_result, .quantifier = .required },
13002 .{ .kind = .id_ref, .quantifier = .required },
13003 .{ .kind = .literal_integer, .quantifier = .required },
13004 .{ .kind = .literal_integer, .quantifier = .required },
13005 .{ .kind = .literal_integer, .quantifier = .required },
13006 .{ .kind = .literal_integer, .quantifier = .required },
13007 .{ .kind = .literal_integer, .quantifier = .required },
1190713008 },
1190813009 },
1190913010 .{
1191013011 .name = "OpArbitraryFloatExpINTEL",
1191113012 .opcode = 5864,
11912 .operands = &[_]Operand{
11913 .{ .kind = .IdResultType, .quantifier = .required },
11914 .{ .kind = .IdResult, .quantifier = .required },
11915 .{ .kind = .IdRef, .quantifier = .required },
11916 .{ .kind = .LiteralInteger, .quantifier = .required },
11917 .{ .kind = .LiteralInteger, .quantifier = .required },
11918 .{ .kind = .LiteralInteger, .quantifier = .required },
11919 .{ .kind = .LiteralInteger, .quantifier = .required },
11920 .{ .kind = .LiteralInteger, .quantifier = .required },
13013 .operands = &.{
13014 .{ .kind = .id_result_type, .quantifier = .required },
13015 .{ .kind = .id_result, .quantifier = .required },
13016 .{ .kind = .id_ref, .quantifier = .required },
13017 .{ .kind = .literal_integer, .quantifier = .required },
13018 .{ .kind = .literal_integer, .quantifier = .required },
13019 .{ .kind = .literal_integer, .quantifier = .required },
13020 .{ .kind = .literal_integer, .quantifier = .required },
13021 .{ .kind = .literal_integer, .quantifier = .required },
1192113022 },
1192213023 },
1192313024 .{
1192413025 .name = "OpArbitraryFloatExp2INTEL",
1192513026 .opcode = 5865,
11926 .operands = &[_]Operand{
11927 .{ .kind = .IdResultType, .quantifier = .required },
11928 .{ .kind = .IdResult, .quantifier = .required },
11929 .{ .kind = .IdRef, .quantifier = .required },
11930 .{ .kind = .LiteralInteger, .quantifier = .required },
11931 .{ .kind = .LiteralInteger, .quantifier = .required },
11932 .{ .kind = .LiteralInteger, .quantifier = .required },
11933 .{ .kind = .LiteralInteger, .quantifier = .required },
11934 .{ .kind = .LiteralInteger, .quantifier = .required },
13027 .operands = &.{
13028 .{ .kind = .id_result_type, .quantifier = .required },
13029 .{ .kind = .id_result, .quantifier = .required },
13030 .{ .kind = .id_ref, .quantifier = .required },
13031 .{ .kind = .literal_integer, .quantifier = .required },
13032 .{ .kind = .literal_integer, .quantifier = .required },
13033 .{ .kind = .literal_integer, .quantifier = .required },
13034 .{ .kind = .literal_integer, .quantifier = .required },
13035 .{ .kind = .literal_integer, .quantifier = .required },
1193513036 },
1193613037 },
1193713038 .{
1193813039 .name = "OpArbitraryFloatExp10INTEL",
1193913040 .opcode = 5866,
11940 .operands = &[_]Operand{
11941 .{ .kind = .IdResultType, .quantifier = .required },
11942 .{ .kind = .IdResult, .quantifier = .required },
11943 .{ .kind = .IdRef, .quantifier = .required },
11944 .{ .kind = .LiteralInteger, .quantifier = .required },
11945 .{ .kind = .LiteralInteger, .quantifier = .required },
11946 .{ .kind = .LiteralInteger, .quantifier = .required },
11947 .{ .kind = .LiteralInteger, .quantifier = .required },
11948 .{ .kind = .LiteralInteger, .quantifier = .required },
13041 .operands = &.{
13042 .{ .kind = .id_result_type, .quantifier = .required },
13043 .{ .kind = .id_result, .quantifier = .required },
13044 .{ .kind = .id_ref, .quantifier = .required },
13045 .{ .kind = .literal_integer, .quantifier = .required },
13046 .{ .kind = .literal_integer, .quantifier = .required },
13047 .{ .kind = .literal_integer, .quantifier = .required },
13048 .{ .kind = .literal_integer, .quantifier = .required },
13049 .{ .kind = .literal_integer, .quantifier = .required },
1194913050 },
1195013051 },
1195113052 .{
1195213053 .name = "OpArbitraryFloatExpm1INTEL",
1195313054 .opcode = 5867,
11954 .operands = &[_]Operand{
11955 .{ .kind = .IdResultType, .quantifier = .required },
11956 .{ .kind = .IdResult, .quantifier = .required },
11957 .{ .kind = .IdRef, .quantifier = .required },
11958 .{ .kind = .LiteralInteger, .quantifier = .required },
11959 .{ .kind = .LiteralInteger, .quantifier = .required },
11960 .{ .kind = .LiteralInteger, .quantifier = .required },
11961 .{ .kind = .LiteralInteger, .quantifier = .required },
11962 .{ .kind = .LiteralInteger, .quantifier = .required },
13055 .operands = &.{
13056 .{ .kind = .id_result_type, .quantifier = .required },
13057 .{ .kind = .id_result, .quantifier = .required },
13058 .{ .kind = .id_ref, .quantifier = .required },
13059 .{ .kind = .literal_integer, .quantifier = .required },
13060 .{ .kind = .literal_integer, .quantifier = .required },
13061 .{ .kind = .literal_integer, .quantifier = .required },
13062 .{ .kind = .literal_integer, .quantifier = .required },
13063 .{ .kind = .literal_integer, .quantifier = .required },
1196313064 },
1196413065 },
1196513066 .{
1196613067 .name = "OpArbitraryFloatSinINTEL",
1196713068 .opcode = 5868,
11968 .operands = &[_]Operand{
11969 .{ .kind = .IdResultType, .quantifier = .required },
11970 .{ .kind = .IdResult, .quantifier = .required },
11971 .{ .kind = .IdRef, .quantifier = .required },
11972 .{ .kind = .LiteralInteger, .quantifier = .required },
11973 .{ .kind = .LiteralInteger, .quantifier = .required },
11974 .{ .kind = .LiteralInteger, .quantifier = .required },
11975 .{ .kind = .LiteralInteger, .quantifier = .required },
11976 .{ .kind = .LiteralInteger, .quantifier = .required },
13069 .operands = &.{
13070 .{ .kind = .id_result_type, .quantifier = .required },
13071 .{ .kind = .id_result, .quantifier = .required },
13072 .{ .kind = .id_ref, .quantifier = .required },
13073 .{ .kind = .literal_integer, .quantifier = .required },
13074 .{ .kind = .literal_integer, .quantifier = .required },
13075 .{ .kind = .literal_integer, .quantifier = .required },
13076 .{ .kind = .literal_integer, .quantifier = .required },
13077 .{ .kind = .literal_integer, .quantifier = .required },
1197713078 },
1197813079 },
1197913080 .{
1198013081 .name = "OpArbitraryFloatCosINTEL",
1198113082 .opcode = 5869,
11982 .operands = &[_]Operand{
11983 .{ .kind = .IdResultType, .quantifier = .required },
11984 .{ .kind = .IdResult, .quantifier = .required },
11985 .{ .kind = .IdRef, .quantifier = .required },
11986 .{ .kind = .LiteralInteger, .quantifier = .required },
11987 .{ .kind = .LiteralInteger, .quantifier = .required },
11988 .{ .kind = .LiteralInteger, .quantifier = .required },
11989 .{ .kind = .LiteralInteger, .quantifier = .required },
11990 .{ .kind = .LiteralInteger, .quantifier = .required },
13083 .operands = &.{
13084 .{ .kind = .id_result_type, .quantifier = .required },
13085 .{ .kind = .id_result, .quantifier = .required },
13086 .{ .kind = .id_ref, .quantifier = .required },
13087 .{ .kind = .literal_integer, .quantifier = .required },
13088 .{ .kind = .literal_integer, .quantifier = .required },
13089 .{ .kind = .literal_integer, .quantifier = .required },
13090 .{ .kind = .literal_integer, .quantifier = .required },
13091 .{ .kind = .literal_integer, .quantifier = .required },
1199113092 },
1199213093 },
1199313094 .{
1199413095 .name = "OpArbitraryFloatSinCosINTEL",
1199513096 .opcode = 5870,
11996 .operands = &[_]Operand{
11997 .{ .kind = .IdResultType, .quantifier = .required },
11998 .{ .kind = .IdResult, .quantifier = .required },
11999 .{ .kind = .IdRef, .quantifier = .required },
12000 .{ .kind = .LiteralInteger, .quantifier = .required },
12001 .{ .kind = .LiteralInteger, .quantifier = .required },
12002 .{ .kind = .LiteralInteger, .quantifier = .required },
12003 .{ .kind = .LiteralInteger, .quantifier = .required },
12004 .{ .kind = .LiteralInteger, .quantifier = .required },
13097 .operands = &.{
13098 .{ .kind = .id_result_type, .quantifier = .required },
13099 .{ .kind = .id_result, .quantifier = .required },
13100 .{ .kind = .id_ref, .quantifier = .required },
13101 .{ .kind = .literal_integer, .quantifier = .required },
13102 .{ .kind = .literal_integer, .quantifier = .required },
13103 .{ .kind = .literal_integer, .quantifier = .required },
13104 .{ .kind = .literal_integer, .quantifier = .required },
13105 .{ .kind = .literal_integer, .quantifier = .required },
1200513106 },
1200613107 },
1200713108 .{
1200813109 .name = "OpArbitraryFloatSinPiINTEL",
1200913110 .opcode = 5871,
12010 .operands = &[_]Operand{
12011 .{ .kind = .IdResultType, .quantifier = .required },
12012 .{ .kind = .IdResult, .quantifier = .required },
12013 .{ .kind = .IdRef, .quantifier = .required },
12014 .{ .kind = .LiteralInteger, .quantifier = .required },
12015 .{ .kind = .LiteralInteger, .quantifier = .required },
12016 .{ .kind = .LiteralInteger, .quantifier = .required },
12017 .{ .kind = .LiteralInteger, .quantifier = .required },
12018 .{ .kind = .LiteralInteger, .quantifier = .required },
13111 .operands = &.{
13112 .{ .kind = .id_result_type, .quantifier = .required },
13113 .{ .kind = .id_result, .quantifier = .required },
13114 .{ .kind = .id_ref, .quantifier = .required },
13115 .{ .kind = .literal_integer, .quantifier = .required },
13116 .{ .kind = .literal_integer, .quantifier = .required },
13117 .{ .kind = .literal_integer, .quantifier = .required },
13118 .{ .kind = .literal_integer, .quantifier = .required },
13119 .{ .kind = .literal_integer, .quantifier = .required },
1201913120 },
1202013121 },
1202113122 .{
1202213123 .name = "OpArbitraryFloatCosPiINTEL",
1202313124 .opcode = 5872,
12024 .operands = &[_]Operand{
12025 .{ .kind = .IdResultType, .quantifier = .required },
12026 .{ .kind = .IdResult, .quantifier = .required },
12027 .{ .kind = .IdRef, .quantifier = .required },
12028 .{ .kind = .LiteralInteger, .quantifier = .required },
12029 .{ .kind = .LiteralInteger, .quantifier = .required },
12030 .{ .kind = .LiteralInteger, .quantifier = .required },
12031 .{ .kind = .LiteralInteger, .quantifier = .required },
12032 .{ .kind = .LiteralInteger, .quantifier = .required },
13125 .operands = &.{
13126 .{ .kind = .id_result_type, .quantifier = .required },
13127 .{ .kind = .id_result, .quantifier = .required },
13128 .{ .kind = .id_ref, .quantifier = .required },
13129 .{ .kind = .literal_integer, .quantifier = .required },
13130 .{ .kind = .literal_integer, .quantifier = .required },
13131 .{ .kind = .literal_integer, .quantifier = .required },
13132 .{ .kind = .literal_integer, .quantifier = .required },
13133 .{ .kind = .literal_integer, .quantifier = .required },
1203313134 },
1203413135 },
1203513136 .{
1203613137 .name = "OpArbitraryFloatASinINTEL",
1203713138 .opcode = 5873,
12038 .operands = &[_]Operand{
12039 .{ .kind = .IdResultType, .quantifier = .required },
12040 .{ .kind = .IdResult, .quantifier = .required },
12041 .{ .kind = .IdRef, .quantifier = .required },
12042 .{ .kind = .LiteralInteger, .quantifier = .required },
12043 .{ .kind = .LiteralInteger, .quantifier = .required },
12044 .{ .kind = .LiteralInteger, .quantifier = .required },
12045 .{ .kind = .LiteralInteger, .quantifier = .required },
12046 .{ .kind = .LiteralInteger, .quantifier = .required },
13139 .operands = &.{
13140 .{ .kind = .id_result_type, .quantifier = .required },
13141 .{ .kind = .id_result, .quantifier = .required },
13142 .{ .kind = .id_ref, .quantifier = .required },
13143 .{ .kind = .literal_integer, .quantifier = .required },
13144 .{ .kind = .literal_integer, .quantifier = .required },
13145 .{ .kind = .literal_integer, .quantifier = .required },
13146 .{ .kind = .literal_integer, .quantifier = .required },
13147 .{ .kind = .literal_integer, .quantifier = .required },
1204713148 },
1204813149 },
1204913150 .{
1205013151 .name = "OpArbitraryFloatASinPiINTEL",
1205113152 .opcode = 5874,
12052 .operands = &[_]Operand{
12053 .{ .kind = .IdResultType, .quantifier = .required },
12054 .{ .kind = .IdResult, .quantifier = .required },
12055 .{ .kind = .IdRef, .quantifier = .required },
12056 .{ .kind = .LiteralInteger, .quantifier = .required },
12057 .{ .kind = .LiteralInteger, .quantifier = .required },
12058 .{ .kind = .LiteralInteger, .quantifier = .required },
12059 .{ .kind = .LiteralInteger, .quantifier = .required },
12060 .{ .kind = .LiteralInteger, .quantifier = .required },
13153 .operands = &.{
13154 .{ .kind = .id_result_type, .quantifier = .required },
13155 .{ .kind = .id_result, .quantifier = .required },
13156 .{ .kind = .id_ref, .quantifier = .required },
13157 .{ .kind = .literal_integer, .quantifier = .required },
13158 .{ .kind = .literal_integer, .quantifier = .required },
13159 .{ .kind = .literal_integer, .quantifier = .required },
13160 .{ .kind = .literal_integer, .quantifier = .required },
13161 .{ .kind = .literal_integer, .quantifier = .required },
1206113162 },
1206213163 },
1206313164 .{
1206413165 .name = "OpArbitraryFloatACosINTEL",
1206513166 .opcode = 5875,
12066 .operands = &[_]Operand{
12067 .{ .kind = .IdResultType, .quantifier = .required },
12068 .{ .kind = .IdResult, .quantifier = .required },
12069 .{ .kind = .IdRef, .quantifier = .required },
12070 .{ .kind = .LiteralInteger, .quantifier = .required },
12071 .{ .kind = .LiteralInteger, .quantifier = .required },
12072 .{ .kind = .LiteralInteger, .quantifier = .required },
12073 .{ .kind = .LiteralInteger, .quantifier = .required },
12074 .{ .kind = .LiteralInteger, .quantifier = .required },
13167 .operands = &.{
13168 .{ .kind = .id_result_type, .quantifier = .required },
13169 .{ .kind = .id_result, .quantifier = .required },
13170 .{ .kind = .id_ref, .quantifier = .required },
13171 .{ .kind = .literal_integer, .quantifier = .required },
13172 .{ .kind = .literal_integer, .quantifier = .required },
13173 .{ .kind = .literal_integer, .quantifier = .required },
13174 .{ .kind = .literal_integer, .quantifier = .required },
13175 .{ .kind = .literal_integer, .quantifier = .required },
1207513176 },
1207613177 },
1207713178 .{
1207813179 .name = "OpArbitraryFloatACosPiINTEL",
1207913180 .opcode = 5876,
12080 .operands = &[_]Operand{
12081 .{ .kind = .IdResultType, .quantifier = .required },
12082 .{ .kind = .IdResult, .quantifier = .required },
12083 .{ .kind = .IdRef, .quantifier = .required },
12084 .{ .kind = .LiteralInteger, .quantifier = .required },
12085 .{ .kind = .LiteralInteger, .quantifier = .required },
12086 .{ .kind = .LiteralInteger, .quantifier = .required },
12087 .{ .kind = .LiteralInteger, .quantifier = .required },
12088 .{ .kind = .LiteralInteger, .quantifier = .required },
13181 .operands = &.{
13182 .{ .kind = .id_result_type, .quantifier = .required },
13183 .{ .kind = .id_result, .quantifier = .required },
13184 .{ .kind = .id_ref, .quantifier = .required },
13185 .{ .kind = .literal_integer, .quantifier = .required },
13186 .{ .kind = .literal_integer, .quantifier = .required },
13187 .{ .kind = .literal_integer, .quantifier = .required },
13188 .{ .kind = .literal_integer, .quantifier = .required },
13189 .{ .kind = .literal_integer, .quantifier = .required },
1208913190 },
1209013191 },
1209113192 .{
1209213193 .name = "OpArbitraryFloatATanINTEL",
1209313194 .opcode = 5877,
12094 .operands = &[_]Operand{
12095 .{ .kind = .IdResultType, .quantifier = .required },
12096 .{ .kind = .IdResult, .quantifier = .required },
12097 .{ .kind = .IdRef, .quantifier = .required },
12098 .{ .kind = .LiteralInteger, .quantifier = .required },
12099 .{ .kind = .LiteralInteger, .quantifier = .required },
12100 .{ .kind = .LiteralInteger, .quantifier = .required },
12101 .{ .kind = .LiteralInteger, .quantifier = .required },
12102 .{ .kind = .LiteralInteger, .quantifier = .required },
13195 .operands = &.{
13196 .{ .kind = .id_result_type, .quantifier = .required },
13197 .{ .kind = .id_result, .quantifier = .required },
13198 .{ .kind = .id_ref, .quantifier = .required },
13199 .{ .kind = .literal_integer, .quantifier = .required },
13200 .{ .kind = .literal_integer, .quantifier = .required },
13201 .{ .kind = .literal_integer, .quantifier = .required },
13202 .{ .kind = .literal_integer, .quantifier = .required },
13203 .{ .kind = .literal_integer, .quantifier = .required },
1210313204 },
1210413205 },
1210513206 .{
1210613207 .name = "OpArbitraryFloatATanPiINTEL",
1210713208 .opcode = 5878,
12108 .operands = &[_]Operand{
12109 .{ .kind = .IdResultType, .quantifier = .required },
12110 .{ .kind = .IdResult, .quantifier = .required },
12111 .{ .kind = .IdRef, .quantifier = .required },
12112 .{ .kind = .LiteralInteger, .quantifier = .required },
12113 .{ .kind = .LiteralInteger, .quantifier = .required },
12114 .{ .kind = .LiteralInteger, .quantifier = .required },
12115 .{ .kind = .LiteralInteger, .quantifier = .required },
12116 .{ .kind = .LiteralInteger, .quantifier = .required },
13209 .operands = &.{
13210 .{ .kind = .id_result_type, .quantifier = .required },
13211 .{ .kind = .id_result, .quantifier = .required },
13212 .{ .kind = .id_ref, .quantifier = .required },
13213 .{ .kind = .literal_integer, .quantifier = .required },
13214 .{ .kind = .literal_integer, .quantifier = .required },
13215 .{ .kind = .literal_integer, .quantifier = .required },
13216 .{ .kind = .literal_integer, .quantifier = .required },
13217 .{ .kind = .literal_integer, .quantifier = .required },
1211713218 },
1211813219 },
1211913220 .{
1212013221 .name = "OpArbitraryFloatATan2INTEL",
1212113222 .opcode = 5879,
12122 .operands = &[_]Operand{
12123 .{ .kind = .IdResultType, .quantifier = .required },
12124 .{ .kind = .IdResult, .quantifier = .required },
12125 .{ .kind = .IdRef, .quantifier = .required },
12126 .{ .kind = .LiteralInteger, .quantifier = .required },
12127 .{ .kind = .IdRef, .quantifier = .required },
12128 .{ .kind = .LiteralInteger, .quantifier = .required },
12129 .{ .kind = .LiteralInteger, .quantifier = .required },
12130 .{ .kind = .LiteralInteger, .quantifier = .required },
12131 .{ .kind = .LiteralInteger, .quantifier = .required },
12132 .{ .kind = .LiteralInteger, .quantifier = .required },
13223 .operands = &.{
13224 .{ .kind = .id_result_type, .quantifier = .required },
13225 .{ .kind = .id_result, .quantifier = .required },
13226 .{ .kind = .id_ref, .quantifier = .required },
13227 .{ .kind = .literal_integer, .quantifier = .required },
13228 .{ .kind = .id_ref, .quantifier = .required },
13229 .{ .kind = .literal_integer, .quantifier = .required },
13230 .{ .kind = .literal_integer, .quantifier = .required },
13231 .{ .kind = .literal_integer, .quantifier = .required },
13232 .{ .kind = .literal_integer, .quantifier = .required },
13233 .{ .kind = .literal_integer, .quantifier = .required },
1213313234 },
1213413235 },
1213513236 .{
1213613237 .name = "OpArbitraryFloatPowINTEL",
1213713238 .opcode = 5880,
12138 .operands = &[_]Operand{
12139 .{ .kind = .IdResultType, .quantifier = .required },
12140 .{ .kind = .IdResult, .quantifier = .required },
12141 .{ .kind = .IdRef, .quantifier = .required },
12142 .{ .kind = .LiteralInteger, .quantifier = .required },
12143 .{ .kind = .IdRef, .quantifier = .required },
12144 .{ .kind = .LiteralInteger, .quantifier = .required },
12145 .{ .kind = .LiteralInteger, .quantifier = .required },
12146 .{ .kind = .LiteralInteger, .quantifier = .required },
12147 .{ .kind = .LiteralInteger, .quantifier = .required },
12148 .{ .kind = .LiteralInteger, .quantifier = .required },
13239 .operands = &.{
13240 .{ .kind = .id_result_type, .quantifier = .required },
13241 .{ .kind = .id_result, .quantifier = .required },
13242 .{ .kind = .id_ref, .quantifier = .required },
13243 .{ .kind = .literal_integer, .quantifier = .required },
13244 .{ .kind = .id_ref, .quantifier = .required },
13245 .{ .kind = .literal_integer, .quantifier = .required },
13246 .{ .kind = .literal_integer, .quantifier = .required },
13247 .{ .kind = .literal_integer, .quantifier = .required },
13248 .{ .kind = .literal_integer, .quantifier = .required },
13249 .{ .kind = .literal_integer, .quantifier = .required },
1214913250 },
1215013251 },
1215113252 .{
1215213253 .name = "OpArbitraryFloatPowRINTEL",
1215313254 .opcode = 5881,
12154 .operands = &[_]Operand{
12155 .{ .kind = .IdResultType, .quantifier = .required },
12156 .{ .kind = .IdResult, .quantifier = .required },
12157 .{ .kind = .IdRef, .quantifier = .required },
12158 .{ .kind = .LiteralInteger, .quantifier = .required },
12159 .{ .kind = .IdRef, .quantifier = .required },
12160 .{ .kind = .LiteralInteger, .quantifier = .required },
12161 .{ .kind = .LiteralInteger, .quantifier = .required },
12162 .{ .kind = .LiteralInteger, .quantifier = .required },
12163 .{ .kind = .LiteralInteger, .quantifier = .required },
12164 .{ .kind = .LiteralInteger, .quantifier = .required },
13255 .operands = &.{
13256 .{ .kind = .id_result_type, .quantifier = .required },
13257 .{ .kind = .id_result, .quantifier = .required },
13258 .{ .kind = .id_ref, .quantifier = .required },
13259 .{ .kind = .literal_integer, .quantifier = .required },
13260 .{ .kind = .id_ref, .quantifier = .required },
13261 .{ .kind = .literal_integer, .quantifier = .required },
13262 .{ .kind = .literal_integer, .quantifier = .required },
13263 .{ .kind = .literal_integer, .quantifier = .required },
13264 .{ .kind = .literal_integer, .quantifier = .required },
13265 .{ .kind = .literal_integer, .quantifier = .required },
1216513266 },
1216613267 },
1216713268 .{
1216813269 .name = "OpArbitraryFloatPowNINTEL",
1216913270 .opcode = 5882,
12170 .operands = &[_]Operand{
12171 .{ .kind = .IdResultType, .quantifier = .required },
12172 .{ .kind = .IdResult, .quantifier = .required },
12173 .{ .kind = .IdRef, .quantifier = .required },
12174 .{ .kind = .LiteralInteger, .quantifier = .required },
12175 .{ .kind = .IdRef, .quantifier = .required },
12176 .{ .kind = .LiteralInteger, .quantifier = .required },
12177 .{ .kind = .LiteralInteger, .quantifier = .required },
12178 .{ .kind = .LiteralInteger, .quantifier = .required },
12179 .{ .kind = .LiteralInteger, .quantifier = .required },
13271 .operands = &.{
13272 .{ .kind = .id_result_type, .quantifier = .required },
13273 .{ .kind = .id_result, .quantifier = .required },
13274 .{ .kind = .id_ref, .quantifier = .required },
13275 .{ .kind = .literal_integer, .quantifier = .required },
13276 .{ .kind = .id_ref, .quantifier = .required },
13277 .{ .kind = .literal_integer, .quantifier = .required },
13278 .{ .kind = .literal_integer, .quantifier = .required },
13279 .{ .kind = .literal_integer, .quantifier = .required },
13280 .{ .kind = .literal_integer, .quantifier = .required },
13281 .{ .kind = .literal_integer, .quantifier = .required },
1218013282 },
1218113283 },
1218213284 .{
1218313285 .name = "OpLoopControlINTEL",
1218413286 .opcode = 5887,
12185 .operands = &[_]Operand{
12186 .{ .kind = .LiteralInteger, .quantifier = .variadic },
13287 .operands = &.{
13288 .{ .kind = .literal_integer, .quantifier = .variadic },
1218713289 },
1218813290 },
1218913291 .{
1219013292 .name = "OpAliasDomainDeclINTEL",
1219113293 .opcode = 5911,
12192 .operands = &[_]Operand{
12193 .{ .kind = .IdResult, .quantifier = .required },
12194 .{ .kind = .IdRef, .quantifier = .optional },
13294 .operands = &.{
13295 .{ .kind = .id_result, .quantifier = .required },
13296 .{ .kind = .id_ref, .quantifier = .optional },
1219513297 },
1219613298 },
1219713299 .{
1219813300 .name = "OpAliasScopeDeclINTEL",
1219913301 .opcode = 5912,
12200 .operands = &[_]Operand{
12201 .{ .kind = .IdResult, .quantifier = .required },
12202 .{ .kind = .IdRef, .quantifier = .required },
12203 .{ .kind = .IdRef, .quantifier = .optional },
13302 .operands = &.{
13303 .{ .kind = .id_result, .quantifier = .required },
13304 .{ .kind = .id_ref, .quantifier = .required },
13305 .{ .kind = .id_ref, .quantifier = .optional },
1220413306 },
1220513307 },
1220613308 .{
1220713309 .name = "OpAliasScopeListDeclINTEL",
1220813310 .opcode = 5913,
12209 .operands = &[_]Operand{
12210 .{ .kind = .IdResult, .quantifier = .required },
12211 .{ .kind = .IdRef, .quantifier = .variadic },
13311 .operands = &.{
13312 .{ .kind = .id_result, .quantifier = .required },
13313 .{ .kind = .id_ref, .quantifier = .variadic },
1221213314 },
1221313315 },
1221413316 .{
1221513317 .name = "OpFixedSqrtINTEL",
1221613318 .opcode = 5923,
12217 .operands = &[_]Operand{
12218 .{ .kind = .IdResultType, .quantifier = .required },
12219 .{ .kind = .IdResult, .quantifier = .required },
12220 .{ .kind = .IdRef, .quantifier = .required },
12221 .{ .kind = .IdRef, .quantifier = .required },
12222 .{ .kind = .LiteralInteger, .quantifier = .required },
12223 .{ .kind = .LiteralInteger, .quantifier = .required },
12224 .{ .kind = .LiteralInteger, .quantifier = .required },
12225 .{ .kind = .LiteralInteger, .quantifier = .required },
12226 .{ .kind = .LiteralInteger, .quantifier = .required },
13319 .operands = &.{
13320 .{ .kind = .id_result_type, .quantifier = .required },
13321 .{ .kind = .id_result, .quantifier = .required },
13322 .{ .kind = .id_ref, .quantifier = .required },
13323 .{ .kind = .literal_integer, .quantifier = .required },
13324 .{ .kind = .literal_integer, .quantifier = .required },
13325 .{ .kind = .literal_integer, .quantifier = .required },
13326 .{ .kind = .literal_integer, .quantifier = .required },
13327 .{ .kind = .literal_integer, .quantifier = .required },
1222713328 },
1222813329 },
1222913330 .{
1223013331 .name = "OpFixedRecipINTEL",
1223113332 .opcode = 5924,
12232 .operands = &[_]Operand{
12233 .{ .kind = .IdResultType, .quantifier = .required },
12234 .{ .kind = .IdResult, .quantifier = .required },
12235 .{ .kind = .IdRef, .quantifier = .required },
12236 .{ .kind = .IdRef, .quantifier = .required },
12237 .{ .kind = .LiteralInteger, .quantifier = .required },
12238 .{ .kind = .LiteralInteger, .quantifier = .required },
12239 .{ .kind = .LiteralInteger, .quantifier = .required },
12240 .{ .kind = .LiteralInteger, .quantifier = .required },
12241 .{ .kind = .LiteralInteger, .quantifier = .required },
13333 .operands = &.{
13334 .{ .kind = .id_result_type, .quantifier = .required },
13335 .{ .kind = .id_result, .quantifier = .required },
13336 .{ .kind = .id_ref, .quantifier = .required },
13337 .{ .kind = .literal_integer, .quantifier = .required },
13338 .{ .kind = .literal_integer, .quantifier = .required },
13339 .{ .kind = .literal_integer, .quantifier = .required },
13340 .{ .kind = .literal_integer, .quantifier = .required },
13341 .{ .kind = .literal_integer, .quantifier = .required },
1224213342 },
1224313343 },
1224413344 .{
1224513345 .name = "OpFixedRsqrtINTEL",
1224613346 .opcode = 5925,
12247 .operands = &[_]Operand{
12248 .{ .kind = .IdResultType, .quantifier = .required },
12249 .{ .kind = .IdResult, .quantifier = .required },
12250 .{ .kind = .IdRef, .quantifier = .required },
12251 .{ .kind = .IdRef, .quantifier = .required },
12252 .{ .kind = .LiteralInteger, .quantifier = .required },
12253 .{ .kind = .LiteralInteger, .quantifier = .required },
12254 .{ .kind = .LiteralInteger, .quantifier = .required },
12255 .{ .kind = .LiteralInteger, .quantifier = .required },
12256 .{ .kind = .LiteralInteger, .quantifier = .required },
13347 .operands = &.{
13348 .{ .kind = .id_result_type, .quantifier = .required },
13349 .{ .kind = .id_result, .quantifier = .required },
13350 .{ .kind = .id_ref, .quantifier = .required },
13351 .{ .kind = .literal_integer, .quantifier = .required },
13352 .{ .kind = .literal_integer, .quantifier = .required },
13353 .{ .kind = .literal_integer, .quantifier = .required },
13354 .{ .kind = .literal_integer, .quantifier = .required },
13355 .{ .kind = .literal_integer, .quantifier = .required },
1225713356 },
1225813357 },
1225913358 .{
1226013359 .name = "OpFixedSinINTEL",
1226113360 .opcode = 5926,
12262 .operands = &[_]Operand{
12263 .{ .kind = .IdResultType, .quantifier = .required },
12264 .{ .kind = .IdResult, .quantifier = .required },
12265 .{ .kind = .IdRef, .quantifier = .required },
12266 .{ .kind = .IdRef, .quantifier = .required },
12267 .{ .kind = .LiteralInteger, .quantifier = .required },
12268 .{ .kind = .LiteralInteger, .quantifier = .required },
12269 .{ .kind = .LiteralInteger, .quantifier = .required },
12270 .{ .kind = .LiteralInteger, .quantifier = .required },
12271 .{ .kind = .LiteralInteger, .quantifier = .required },
13361 .operands = &.{
13362 .{ .kind = .id_result_type, .quantifier = .required },
13363 .{ .kind = .id_result, .quantifier = .required },
13364 .{ .kind = .id_ref, .quantifier = .required },
13365 .{ .kind = .literal_integer, .quantifier = .required },
13366 .{ .kind = .literal_integer, .quantifier = .required },
13367 .{ .kind = .literal_integer, .quantifier = .required },
13368 .{ .kind = .literal_integer, .quantifier = .required },
13369 .{ .kind = .literal_integer, .quantifier = .required },
1227213370 },
1227313371 },
1227413372 .{
1227513373 .name = "OpFixedCosINTEL",
1227613374 .opcode = 5927,
12277 .operands = &[_]Operand{
12278 .{ .kind = .IdResultType, .quantifier = .required },
12279 .{ .kind = .IdResult, .quantifier = .required },
12280 .{ .kind = .IdRef, .quantifier = .required },
12281 .{ .kind = .IdRef, .quantifier = .required },
12282 .{ .kind = .LiteralInteger, .quantifier = .required },
12283 .{ .kind = .LiteralInteger, .quantifier = .required },
12284 .{ .kind = .LiteralInteger, .quantifier = .required },
12285 .{ .kind = .LiteralInteger, .quantifier = .required },
12286 .{ .kind = .LiteralInteger, .quantifier = .required },
13375 .operands = &.{
13376 .{ .kind = .id_result_type, .quantifier = .required },
13377 .{ .kind = .id_result, .quantifier = .required },
13378 .{ .kind = .id_ref, .quantifier = .required },
13379 .{ .kind = .literal_integer, .quantifier = .required },
13380 .{ .kind = .literal_integer, .quantifier = .required },
13381 .{ .kind = .literal_integer, .quantifier = .required },
13382 .{ .kind = .literal_integer, .quantifier = .required },
13383 .{ .kind = .literal_integer, .quantifier = .required },
1228713384 },
1228813385 },
1228913386 .{
1229013387 .name = "OpFixedSinCosINTEL",
1229113388 .opcode = 5928,
12292 .operands = &[_]Operand{
12293 .{ .kind = .IdResultType, .quantifier = .required },
12294 .{ .kind = .IdResult, .quantifier = .required },
12295 .{ .kind = .IdRef, .quantifier = .required },
12296 .{ .kind = .IdRef, .quantifier = .required },
12297 .{ .kind = .LiteralInteger, .quantifier = .required },
12298 .{ .kind = .LiteralInteger, .quantifier = .required },
12299 .{ .kind = .LiteralInteger, .quantifier = .required },
12300 .{ .kind = .LiteralInteger, .quantifier = .required },
12301 .{ .kind = .LiteralInteger, .quantifier = .required },
13389 .operands = &.{
13390 .{ .kind = .id_result_type, .quantifier = .required },
13391 .{ .kind = .id_result, .quantifier = .required },
13392 .{ .kind = .id_ref, .quantifier = .required },
13393 .{ .kind = .literal_integer, .quantifier = .required },
13394 .{ .kind = .literal_integer, .quantifier = .required },
13395 .{ .kind = .literal_integer, .quantifier = .required },
13396 .{ .kind = .literal_integer, .quantifier = .required },
13397 .{ .kind = .literal_integer, .quantifier = .required },
1230213398 },
1230313399 },
1230413400 .{
1230513401 .name = "OpFixedSinPiINTEL",
1230613402 .opcode = 5929,
12307 .operands = &[_]Operand{
12308 .{ .kind = .IdResultType, .quantifier = .required },
12309 .{ .kind = .IdResult, .quantifier = .required },
12310 .{ .kind = .IdRef, .quantifier = .required },
12311 .{ .kind = .IdRef, .quantifier = .required },
12312 .{ .kind = .LiteralInteger, .quantifier = .required },
12313 .{ .kind = .LiteralInteger, .quantifier = .required },
12314 .{ .kind = .LiteralInteger, .quantifier = .required },
12315 .{ .kind = .LiteralInteger, .quantifier = .required },
12316 .{ .kind = .LiteralInteger, .quantifier = .required },
13403 .operands = &.{
13404 .{ .kind = .id_result_type, .quantifier = .required },
13405 .{ .kind = .id_result, .quantifier = .required },
13406 .{ .kind = .id_ref, .quantifier = .required },
13407 .{ .kind = .literal_integer, .quantifier = .required },
13408 .{ .kind = .literal_integer, .quantifier = .required },
13409 .{ .kind = .literal_integer, .quantifier = .required },
13410 .{ .kind = .literal_integer, .quantifier = .required },
13411 .{ .kind = .literal_integer, .quantifier = .required },
1231713412 },
1231813413 },
1231913414 .{
1232013415 .name = "OpFixedCosPiINTEL",
1232113416 .opcode = 5930,
12322 .operands = &[_]Operand{
12323 .{ .kind = .IdResultType, .quantifier = .required },
12324 .{ .kind = .IdResult, .quantifier = .required },
12325 .{ .kind = .IdRef, .quantifier = .required },
12326 .{ .kind = .IdRef, .quantifier = .required },
12327 .{ .kind = .LiteralInteger, .quantifier = .required },
12328 .{ .kind = .LiteralInteger, .quantifier = .required },
12329 .{ .kind = .LiteralInteger, .quantifier = .required },
12330 .{ .kind = .LiteralInteger, .quantifier = .required },
12331 .{ .kind = .LiteralInteger, .quantifier = .required },
13417 .operands = &.{
13418 .{ .kind = .id_result_type, .quantifier = .required },
13419 .{ .kind = .id_result, .quantifier = .required },
13420 .{ .kind = .id_ref, .quantifier = .required },
13421 .{ .kind = .literal_integer, .quantifier = .required },
13422 .{ .kind = .literal_integer, .quantifier = .required },
13423 .{ .kind = .literal_integer, .quantifier = .required },
13424 .{ .kind = .literal_integer, .quantifier = .required },
13425 .{ .kind = .literal_integer, .quantifier = .required },
1233213426 },
1233313427 },
1233413428 .{
1233513429 .name = "OpFixedSinCosPiINTEL",
1233613430 .opcode = 5931,
12337 .operands = &[_]Operand{
12338 .{ .kind = .IdResultType, .quantifier = .required },
12339 .{ .kind = .IdResult, .quantifier = .required },
12340 .{ .kind = .IdRef, .quantifier = .required },
12341 .{ .kind = .IdRef, .quantifier = .required },
12342 .{ .kind = .LiteralInteger, .quantifier = .required },
12343 .{ .kind = .LiteralInteger, .quantifier = .required },
12344 .{ .kind = .LiteralInteger, .quantifier = .required },
12345 .{ .kind = .LiteralInteger, .quantifier = .required },
12346 .{ .kind = .LiteralInteger, .quantifier = .required },
13431 .operands = &.{
13432 .{ .kind = .id_result_type, .quantifier = .required },
13433 .{ .kind = .id_result, .quantifier = .required },
13434 .{ .kind = .id_ref, .quantifier = .required },
13435 .{ .kind = .literal_integer, .quantifier = .required },
13436 .{ .kind = .literal_integer, .quantifier = .required },
13437 .{ .kind = .literal_integer, .quantifier = .required },
13438 .{ .kind = .literal_integer, .quantifier = .required },
13439 .{ .kind = .literal_integer, .quantifier = .required },
1234713440 },
1234813441 },
1234913442 .{
1235013443 .name = "OpFixedLogINTEL",
1235113444 .opcode = 5932,
12352 .operands = &[_]Operand{
12353 .{ .kind = .IdResultType, .quantifier = .required },
12354 .{ .kind = .IdResult, .quantifier = .required },
12355 .{ .kind = .IdRef, .quantifier = .required },
12356 .{ .kind = .IdRef, .quantifier = .required },
12357 .{ .kind = .LiteralInteger, .quantifier = .required },
12358 .{ .kind = .LiteralInteger, .quantifier = .required },
12359 .{ .kind = .LiteralInteger, .quantifier = .required },
12360 .{ .kind = .LiteralInteger, .quantifier = .required },
12361 .{ .kind = .LiteralInteger, .quantifier = .required },
13445 .operands = &.{
13446 .{ .kind = .id_result_type, .quantifier = .required },
13447 .{ .kind = .id_result, .quantifier = .required },
13448 .{ .kind = .id_ref, .quantifier = .required },
13449 .{ .kind = .literal_integer, .quantifier = .required },
13450 .{ .kind = .literal_integer, .quantifier = .required },
13451 .{ .kind = .literal_integer, .quantifier = .required },
13452 .{ .kind = .literal_integer, .quantifier = .required },
13453 .{ .kind = .literal_integer, .quantifier = .required },
1236213454 },
1236313455 },
1236413456 .{
1236513457 .name = "OpFixedExpINTEL",
1236613458 .opcode = 5933,
12367 .operands = &[_]Operand{
12368 .{ .kind = .IdResultType, .quantifier = .required },
12369 .{ .kind = .IdResult, .quantifier = .required },
12370 .{ .kind = .IdRef, .quantifier = .required },
12371 .{ .kind = .IdRef, .quantifier = .required },
12372 .{ .kind = .LiteralInteger, .quantifier = .required },
12373 .{ .kind = .LiteralInteger, .quantifier = .required },
12374 .{ .kind = .LiteralInteger, .quantifier = .required },
12375 .{ .kind = .LiteralInteger, .quantifier = .required },
12376 .{ .kind = .LiteralInteger, .quantifier = .required },
13459 .operands = &.{
13460 .{ .kind = .id_result_type, .quantifier = .required },
13461 .{ .kind = .id_result, .quantifier = .required },
13462 .{ .kind = .id_ref, .quantifier = .required },
13463 .{ .kind = .literal_integer, .quantifier = .required },
13464 .{ .kind = .literal_integer, .quantifier = .required },
13465 .{ .kind = .literal_integer, .quantifier = .required },
13466 .{ .kind = .literal_integer, .quantifier = .required },
13467 .{ .kind = .literal_integer, .quantifier = .required },
1237713468 },
1237813469 },
1237913470 .{
1238013471 .name = "OpPtrCastToCrossWorkgroupINTEL",
1238113472 .opcode = 5934,
12382 .operands = &[_]Operand{
12383 .{ .kind = .IdResultType, .quantifier = .required },
12384 .{ .kind = .IdResult, .quantifier = .required },
12385 .{ .kind = .IdRef, .quantifier = .required },
13473 .operands = &.{
13474 .{ .kind = .id_result_type, .quantifier = .required },
13475 .{ .kind = .id_result, .quantifier = .required },
13476 .{ .kind = .id_ref, .quantifier = .required },
1238613477 },
1238713478 },
1238813479 .{
1238913480 .name = "OpCrossWorkgroupCastToPtrINTEL",
1239013481 .opcode = 5938,
12391 .operands = &[_]Operand{
12392 .{ .kind = .IdResultType, .quantifier = .required },
12393 .{ .kind = .IdResult, .quantifier = .required },
12394 .{ .kind = .IdRef, .quantifier = .required },
13482 .operands = &.{
13483 .{ .kind = .id_result_type, .quantifier = .required },
13484 .{ .kind = .id_result, .quantifier = .required },
13485 .{ .kind = .id_ref, .quantifier = .required },
1239513486 },
1239613487 },
1239713488 .{
1239813489 .name = "OpReadPipeBlockingINTEL",
1239913490 .opcode = 5946,
12400 .operands = &[_]Operand{
12401 .{ .kind = .IdResultType, .quantifier = .required },
12402 .{ .kind = .IdResult, .quantifier = .required },
12403 .{ .kind = .IdRef, .quantifier = .required },
12404 .{ .kind = .IdRef, .quantifier = .required },
13491 .operands = &.{
13492 .{ .kind = .id_result_type, .quantifier = .required },
13493 .{ .kind = .id_result, .quantifier = .required },
13494 .{ .kind = .id_ref, .quantifier = .required },
13495 .{ .kind = .id_ref, .quantifier = .required },
1240513496 },
1240613497 },
1240713498 .{
1240813499 .name = "OpWritePipeBlockingINTEL",
1240913500 .opcode = 5947,
12410 .operands = &[_]Operand{
12411 .{ .kind = .IdResultType, .quantifier = .required },
12412 .{ .kind = .IdResult, .quantifier = .required },
12413 .{ .kind = .IdRef, .quantifier = .required },
12414 .{ .kind = .IdRef, .quantifier = .required },
13501 .operands = &.{
13502 .{ .kind = .id_result_type, .quantifier = .required },
13503 .{ .kind = .id_result, .quantifier = .required },
13504 .{ .kind = .id_ref, .quantifier = .required },
13505 .{ .kind = .id_ref, .quantifier = .required },
1241513506 },
1241613507 },
1241713508 .{
1241813509 .name = "OpFPGARegINTEL",
1241913510 .opcode = 5949,
12420 .operands = &[_]Operand{
12421 .{ .kind = .IdResultType, .quantifier = .required },
12422 .{ .kind = .IdResult, .quantifier = .required },
12423 .{ .kind = .IdRef, .quantifier = .required },
12424 .{ .kind = .IdRef, .quantifier = .required },
13511 .operands = &.{
13512 .{ .kind = .id_result_type, .quantifier = .required },
13513 .{ .kind = .id_result, .quantifier = .required },
13514 .{ .kind = .id_ref, .quantifier = .required },
1242513515 },
1242613516 },
1242713517 .{
1242813518 .name = "OpRayQueryGetRayTMinKHR",
1242913519 .opcode = 6016,
12430 .operands = &[_]Operand{
12431 .{ .kind = .IdResultType, .quantifier = .required },
12432 .{ .kind = .IdResult, .quantifier = .required },
12433 .{ .kind = .IdRef, .quantifier = .required },
13520 .operands = &.{
13521 .{ .kind = .id_result_type, .quantifier = .required },
13522 .{ .kind = .id_result, .quantifier = .required },
13523 .{ .kind = .id_ref, .quantifier = .required },
1243413524 },
1243513525 },
1243613526 .{
1243713527 .name = "OpRayQueryGetRayFlagsKHR",
1243813528 .opcode = 6017,
12439 .operands = &[_]Operand{
12440 .{ .kind = .IdResultType, .quantifier = .required },
12441 .{ .kind = .IdResult, .quantifier = .required },
12442 .{ .kind = .IdRef, .quantifier = .required },
13529 .operands = &.{
13530 .{ .kind = .id_result_type, .quantifier = .required },
13531 .{ .kind = .id_result, .quantifier = .required },
13532 .{ .kind = .id_ref, .quantifier = .required },
1244313533 },
1244413534 },
1244513535 .{
1244613536 .name = "OpRayQueryGetIntersectionTKHR",
1244713537 .opcode = 6018,
12448 .operands = &[_]Operand{
12449 .{ .kind = .IdResultType, .quantifier = .required },
12450 .{ .kind = .IdResult, .quantifier = .required },
12451 .{ .kind = .IdRef, .quantifier = .required },
12452 .{ .kind = .IdRef, .quantifier = .required },
13538 .operands = &.{
13539 .{ .kind = .id_result_type, .quantifier = .required },
13540 .{ .kind = .id_result, .quantifier = .required },
13541 .{ .kind = .id_ref, .quantifier = .required },
13542 .{ .kind = .id_ref, .quantifier = .required },
1245313543 },
1245413544 },
1245513545 .{
1245613546 .name = "OpRayQueryGetIntersectionInstanceCustomIndexKHR",
1245713547 .opcode = 6019,
12458 .operands = &[_]Operand{
12459 .{ .kind = .IdResultType, .quantifier = .required },
12460 .{ .kind = .IdResult, .quantifier = .required },
12461 .{ .kind = .IdRef, .quantifier = .required },
12462 .{ .kind = .IdRef, .quantifier = .required },
13548 .operands = &.{
13549 .{ .kind = .id_result_type, .quantifier = .required },
13550 .{ .kind = .id_result, .quantifier = .required },
13551 .{ .kind = .id_ref, .quantifier = .required },
13552 .{ .kind = .id_ref, .quantifier = .required },
1246313553 },
1246413554 },
1246513555 .{
1246613556 .name = "OpRayQueryGetIntersectionInstanceIdKHR",
1246713557 .opcode = 6020,
12468 .operands = &[_]Operand{
12469 .{ .kind = .IdResultType, .quantifier = .required },
12470 .{ .kind = .IdResult, .quantifier = .required },
12471 .{ .kind = .IdRef, .quantifier = .required },
12472 .{ .kind = .IdRef, .quantifier = .required },
13558 .operands = &.{
13559 .{ .kind = .id_result_type, .quantifier = .required },
13560 .{ .kind = .id_result, .quantifier = .required },
13561 .{ .kind = .id_ref, .quantifier = .required },
13562 .{ .kind = .id_ref, .quantifier = .required },
1247313563 },
1247413564 },
1247513565 .{
1247613566 .name = "OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR",
1247713567 .opcode = 6021,
12478 .operands = &[_]Operand{
12479 .{ .kind = .IdResultType, .quantifier = .required },
12480 .{ .kind = .IdResult, .quantifier = .required },
12481 .{ .kind = .IdRef, .quantifier = .required },
12482 .{ .kind = .IdRef, .quantifier = .required },
13568 .operands = &.{
13569 .{ .kind = .id_result_type, .quantifier = .required },
13570 .{ .kind = .id_result, .quantifier = .required },
13571 .{ .kind = .id_ref, .quantifier = .required },
13572 .{ .kind = .id_ref, .quantifier = .required },
1248313573 },
1248413574 },
1248513575 .{
1248613576 .name = "OpRayQueryGetIntersectionGeometryIndexKHR",
1248713577 .opcode = 6022,
12488 .operands = &[_]Operand{
12489 .{ .kind = .IdResultType, .quantifier = .required },
12490 .{ .kind = .IdResult, .quantifier = .required },
12491 .{ .kind = .IdRef, .quantifier = .required },
12492 .{ .kind = .IdRef, .quantifier = .required },
13578 .operands = &.{
13579 .{ .kind = .id_result_type, .quantifier = .required },
13580 .{ .kind = .id_result, .quantifier = .required },
13581 .{ .kind = .id_ref, .quantifier = .required },
13582 .{ .kind = .id_ref, .quantifier = .required },
1249313583 },
1249413584 },
1249513585 .{
1249613586 .name = "OpRayQueryGetIntersectionPrimitiveIndexKHR",
1249713587 .opcode = 6023,
12498 .operands = &[_]Operand{
12499 .{ .kind = .IdResultType, .quantifier = .required },
12500 .{ .kind = .IdResult, .quantifier = .required },
12501 .{ .kind = .IdRef, .quantifier = .required },
12502 .{ .kind = .IdRef, .quantifier = .required },
13588 .operands = &.{
13589 .{ .kind = .id_result_type, .quantifier = .required },
13590 .{ .kind = .id_result, .quantifier = .required },
13591 .{ .kind = .id_ref, .quantifier = .required },
13592 .{ .kind = .id_ref, .quantifier = .required },
1250313593 },
1250413594 },
1250513595 .{
1250613596 .name = "OpRayQueryGetIntersectionBarycentricsKHR",
1250713597 .opcode = 6024,
12508 .operands = &[_]Operand{
12509 .{ .kind = .IdResultType, .quantifier = .required },
12510 .{ .kind = .IdResult, .quantifier = .required },
12511 .{ .kind = .IdRef, .quantifier = .required },
12512 .{ .kind = .IdRef, .quantifier = .required },
13598 .operands = &.{
13599 .{ .kind = .id_result_type, .quantifier = .required },
13600 .{ .kind = .id_result, .quantifier = .required },
13601 .{ .kind = .id_ref, .quantifier = .required },
13602 .{ .kind = .id_ref, .quantifier = .required },
1251313603 },
1251413604 },
1251513605 .{
1251613606 .name = "OpRayQueryGetIntersectionFrontFaceKHR",
1251713607 .opcode = 6025,
12518 .operands = &[_]Operand{
12519 .{ .kind = .IdResultType, .quantifier = .required },
12520 .{ .kind = .IdResult, .quantifier = .required },
12521 .{ .kind = .IdRef, .quantifier = .required },
12522 .{ .kind = .IdRef, .quantifier = .required },
13608 .operands = &.{
13609 .{ .kind = .id_result_type, .quantifier = .required },
13610 .{ .kind = .id_result, .quantifier = .required },
13611 .{ .kind = .id_ref, .quantifier = .required },
13612 .{ .kind = .id_ref, .quantifier = .required },
1252313613 },
1252413614 },
1252513615 .{
1252613616 .name = "OpRayQueryGetIntersectionCandidateAABBOpaqueKHR",
1252713617 .opcode = 6026,
12528 .operands = &[_]Operand{
12529 .{ .kind = .IdResultType, .quantifier = .required },
12530 .{ .kind = .IdResult, .quantifier = .required },
12531 .{ .kind = .IdRef, .quantifier = .required },
13618 .operands = &.{
13619 .{ .kind = .id_result_type, .quantifier = .required },
13620 .{ .kind = .id_result, .quantifier = .required },
13621 .{ .kind = .id_ref, .quantifier = .required },
1253213622 },
1253313623 },
1253413624 .{
1253513625 .name = "OpRayQueryGetIntersectionObjectRayDirectionKHR",
1253613626 .opcode = 6027,
12537 .operands = &[_]Operand{
12538 .{ .kind = .IdResultType, .quantifier = .required },
12539 .{ .kind = .IdResult, .quantifier = .required },
12540 .{ .kind = .IdRef, .quantifier = .required },
12541 .{ .kind = .IdRef, .quantifier = .required },
13627 .operands = &.{
13628 .{ .kind = .id_result_type, .quantifier = .required },
13629 .{ .kind = .id_result, .quantifier = .required },
13630 .{ .kind = .id_ref, .quantifier = .required },
13631 .{ .kind = .id_ref, .quantifier = .required },
1254213632 },
1254313633 },
1254413634 .{
1254513635 .name = "OpRayQueryGetIntersectionObjectRayOriginKHR",
1254613636 .opcode = 6028,
12547 .operands = &[_]Operand{
12548 .{ .kind = .IdResultType, .quantifier = .required },
12549 .{ .kind = .IdResult, .quantifier = .required },
12550 .{ .kind = .IdRef, .quantifier = .required },
12551 .{ .kind = .IdRef, .quantifier = .required },
13637 .operands = &.{
13638 .{ .kind = .id_result_type, .quantifier = .required },
13639 .{ .kind = .id_result, .quantifier = .required },
13640 .{ .kind = .id_ref, .quantifier = .required },
13641 .{ .kind = .id_ref, .quantifier = .required },
1255213642 },
1255313643 },
1255413644 .{
1255513645 .name = "OpRayQueryGetWorldRayDirectionKHR",
1255613646 .opcode = 6029,
12557 .operands = &[_]Operand{
12558 .{ .kind = .IdResultType, .quantifier = .required },
12559 .{ .kind = .IdResult, .quantifier = .required },
12560 .{ .kind = .IdRef, .quantifier = .required },
13647 .operands = &.{
13648 .{ .kind = .id_result_type, .quantifier = .required },
13649 .{ .kind = .id_result, .quantifier = .required },
13650 .{ .kind = .id_ref, .quantifier = .required },
1256113651 },
1256213652 },
1256313653 .{
1256413654 .name = "OpRayQueryGetWorldRayOriginKHR",
1256513655 .opcode = 6030,
12566 .operands = &[_]Operand{
12567 .{ .kind = .IdResultType, .quantifier = .required },
12568 .{ .kind = .IdResult, .quantifier = .required },
12569 .{ .kind = .IdRef, .quantifier = .required },
13656 .operands = &.{
13657 .{ .kind = .id_result_type, .quantifier = .required },
13658 .{ .kind = .id_result, .quantifier = .required },
13659 .{ .kind = .id_ref, .quantifier = .required },
1257013660 },
1257113661 },
1257213662 .{
1257313663 .name = "OpRayQueryGetIntersectionObjectToWorldKHR",
1257413664 .opcode = 6031,
12575 .operands = &[_]Operand{
12576 .{ .kind = .IdResultType, .quantifier = .required },
12577 .{ .kind = .IdResult, .quantifier = .required },
12578 .{ .kind = .IdRef, .quantifier = .required },
12579 .{ .kind = .IdRef, .quantifier = .required },
13665 .operands = &.{
13666 .{ .kind = .id_result_type, .quantifier = .required },
13667 .{ .kind = .id_result, .quantifier = .required },
13668 .{ .kind = .id_ref, .quantifier = .required },
13669 .{ .kind = .id_ref, .quantifier = .required },
1258013670 },
1258113671 },
1258213672 .{
1258313673 .name = "OpRayQueryGetIntersectionWorldToObjectKHR",
1258413674 .opcode = 6032,
12585 .operands = &[_]Operand{
12586 .{ .kind = .IdResultType, .quantifier = .required },
12587 .{ .kind = .IdResult, .quantifier = .required },
12588 .{ .kind = .IdRef, .quantifier = .required },
12589 .{ .kind = .IdRef, .quantifier = .required },
13675 .operands = &.{
13676 .{ .kind = .id_result_type, .quantifier = .required },
13677 .{ .kind = .id_result, .quantifier = .required },
13678 .{ .kind = .id_ref, .quantifier = .required },
13679 .{ .kind = .id_ref, .quantifier = .required },
1259013680 },
1259113681 },
1259213682 .{
1259313683 .name = "OpAtomicFAddEXT",
1259413684 .opcode = 6035,
12595 .operands = &[_]Operand{
12596 .{ .kind = .IdResultType, .quantifier = .required },
12597 .{ .kind = .IdResult, .quantifier = .required },
12598 .{ .kind = .IdRef, .quantifier = .required },
12599 .{ .kind = .IdScope, .quantifier = .required },
12600 .{ .kind = .IdMemorySemantics, .quantifier = .required },
12601 .{ .kind = .IdRef, .quantifier = .required },
13685 .operands = &.{
13686 .{ .kind = .id_result_type, .quantifier = .required },
13687 .{ .kind = .id_result, .quantifier = .required },
13688 .{ .kind = .id_ref, .quantifier = .required },
13689 .{ .kind = .id_scope, .quantifier = .required },
13690 .{ .kind = .id_memory_semantics, .quantifier = .required },
13691 .{ .kind = .id_ref, .quantifier = .required },
1260213692 },
1260313693 },
1260413694 .{
1260513695 .name = "OpTypeBufferSurfaceINTEL",
1260613696 .opcode = 6086,
12607 .operands = &[_]Operand{
12608 .{ .kind = .IdResult, .quantifier = .required },
12609 .{ .kind = .AccessQualifier, .quantifier = .required },
13697 .operands = &.{
13698 .{ .kind = .id_result, .quantifier = .required },
13699 .{ .kind = .access_qualifier, .quantifier = .required },
1261013700 },
1261113701 },
1261213702 .{
1261313703 .name = "OpTypeStructContinuedINTEL",
1261413704 .opcode = 6090,
12615 .operands = &[_]Operand{
12616 .{ .kind = .IdRef, .quantifier = .variadic },
13705 .operands = &.{
13706 .{ .kind = .id_ref, .quantifier = .variadic },
1261713707 },
1261813708 },
1261913709 .{
1262013710 .name = "OpConstantCompositeContinuedINTEL",
1262113711 .opcode = 6091,
12622 .operands = &[_]Operand{
12623 .{ .kind = .IdRef, .quantifier = .variadic },
13712 .operands = &.{
13713 .{ .kind = .id_ref, .quantifier = .variadic },
1262413714 },
1262513715 },
1262613716 .{
1262713717 .name = "OpSpecConstantCompositeContinuedINTEL",
1262813718 .opcode = 6092,
12629 .operands = &[_]Operand{
12630 .{ .kind = .IdRef, .quantifier = .variadic },
13719 .operands = &.{
13720 .{ .kind = .id_ref, .quantifier = .variadic },
1263113721 },
1263213722 },
1263313723 .{
1263413724 .name = "OpCompositeConstructContinuedINTEL",
1263513725 .opcode = 6096,
12636 .operands = &[_]Operand{
12637 .{ .kind = .IdResultType, .quantifier = .required },
12638 .{ .kind = .IdResult, .quantifier = .required },
12639 .{ .kind = .IdRef, .quantifier = .variadic },
13726 .operands = &.{
13727 .{ .kind = .id_result_type, .quantifier = .required },
13728 .{ .kind = .id_result, .quantifier = .required },
13729 .{ .kind = .id_ref, .quantifier = .variadic },
1264013730 },
1264113731 },
1264213732 .{
1264313733 .name = "OpConvertFToBF16INTEL",
1264413734 .opcode = 6116,
12645 .operands = &[_]Operand{
12646 .{ .kind = .IdResultType, .quantifier = .required },
12647 .{ .kind = .IdResult, .quantifier = .required },
12648 .{ .kind = .IdRef, .quantifier = .required },
13735 .operands = &.{
13736 .{ .kind = .id_result_type, .quantifier = .required },
13737 .{ .kind = .id_result, .quantifier = .required },
13738 .{ .kind = .id_ref, .quantifier = .required },
1264913739 },
1265013740 },
1265113741 .{
1265213742 .name = "OpConvertBF16ToFINTEL",
1265313743 .opcode = 6117,
12654 .operands = &[_]Operand{
12655 .{ .kind = .IdResultType, .quantifier = .required },
12656 .{ .kind = .IdResult, .quantifier = .required },
12657 .{ .kind = .IdRef, .quantifier = .required },
13744 .operands = &.{
13745 .{ .kind = .id_result_type, .quantifier = .required },
13746 .{ .kind = .id_result, .quantifier = .required },
13747 .{ .kind = .id_ref, .quantifier = .required },
1265813748 },
1265913749 },
1266013750 .{
1266113751 .name = "OpControlBarrierArriveINTEL",
1266213752 .opcode = 6142,
12663 .operands = &[_]Operand{
12664 .{ .kind = .IdScope, .quantifier = .required },
12665 .{ .kind = .IdScope, .quantifier = .required },
12666 .{ .kind = .IdMemorySemantics, .quantifier = .required },
13753 .operands = &.{
13754 .{ .kind = .id_scope, .quantifier = .required },
13755 .{ .kind = .id_scope, .quantifier = .required },
13756 .{ .kind = .id_memory_semantics, .quantifier = .required },
1266713757 },
1266813758 },
1266913759 .{
1267013760 .name = "OpControlBarrierWaitINTEL",
1267113761 .opcode = 6143,
12672 .operands = &[_]Operand{
12673 .{ .kind = .IdScope, .quantifier = .required },
12674 .{ .kind = .IdScope, .quantifier = .required },
12675 .{ .kind = .IdMemorySemantics, .quantifier = .required },
13762 .operands = &.{
13763 .{ .kind = .id_scope, .quantifier = .required },
13764 .{ .kind = .id_scope, .quantifier = .required },
13765 .{ .kind = .id_memory_semantics, .quantifier = .required },
1267613766 },
1267713767 },
1267813768 .{
12679 .name = "OpGroupIMulKHR",
12680 .opcode = 6401,
12681 .operands = &[_]Operand{
12682 .{ .kind = .IdResultType, .quantifier = .required },
12683 .{ .kind = .IdResult, .quantifier = .required },
12684 .{ .kind = .IdScope, .quantifier = .required },
12685 .{ .kind = .GroupOperation, .quantifier = .required },
12686 .{ .kind = .IdRef, .quantifier = .required },
13769 .name = "OpArithmeticFenceEXT",
13770 .opcode = 6145,
13771 .operands = &.{
13772 .{ .kind = .id_result_type, .quantifier = .required },
13773 .{ .kind = .id_result, .quantifier = .required },
13774 .{ .kind = .id_ref, .quantifier = .required },
1268713775 },
1268813776 },
1268913777 .{
12690 .name = "OpGroupFMulKHR",
12691 .opcode = 6402,
12692 .operands = &[_]Operand{
12693 .{ .kind = .IdResultType, .quantifier = .required },
12694 .{ .kind = .IdResult, .quantifier = .required },
12695 .{ .kind = .IdScope, .quantifier = .required },
12696 .{ .kind = .GroupOperation, .quantifier = .required },
12697 .{ .kind = .IdRef, .quantifier = .required },
13778 .name = "OpTaskSequenceCreateINTEL",
13779 .opcode = 6163,
13780 .operands = &.{
13781 .{ .kind = .id_result_type, .quantifier = .required },
13782 .{ .kind = .id_result, .quantifier = .required },
13783 .{ .kind = .id_ref, .quantifier = .required },
13784 .{ .kind = .literal_integer, .quantifier = .required },
13785 .{ .kind = .literal_integer, .quantifier = .required },
13786 .{ .kind = .literal_integer, .quantifier = .required },
13787 .{ .kind = .literal_integer, .quantifier = .required },
1269813788 },
1269913789 },
1270013790 .{
12701 .name = "OpGroupBitwiseAndKHR",
12702 .opcode = 6403,
12703 .operands = &[_]Operand{
12704 .{ .kind = .IdResultType, .quantifier = .required },
12705 .{ .kind = .IdResult, .quantifier = .required },
12706 .{ .kind = .IdScope, .quantifier = .required },
12707 .{ .kind = .GroupOperation, .quantifier = .required },
12708 .{ .kind = .IdRef, .quantifier = .required },
13791 .name = "OpTaskSequenceAsyncINTEL",
13792 .opcode = 6164,
13793 .operands = &.{
13794 .{ .kind = .id_ref, .quantifier = .required },
13795 .{ .kind = .id_ref, .quantifier = .variadic },
1270913796 },
1271013797 },
1271113798 .{
12712 .name = "OpGroupBitwiseOrKHR",
12713 .opcode = 6404,
12714 .operands = &[_]Operand{
12715 .{ .kind = .IdResultType, .quantifier = .required },
12716 .{ .kind = .IdResult, .quantifier = .required },
12717 .{ .kind = .IdScope, .quantifier = .required },
12718 .{ .kind = .GroupOperation, .quantifier = .required },
12719 .{ .kind = .IdRef, .quantifier = .required },
13799 .name = "OpTaskSequenceGetINTEL",
13800 .opcode = 6165,
13801 .operands = &.{
13802 .{ .kind = .id_result_type, .quantifier = .required },
13803 .{ .kind = .id_result, .quantifier = .required },
13804 .{ .kind = .id_ref, .quantifier = .required },
1272013805 },
1272113806 },
1272213807 .{
12723 .name = "OpGroupBitwiseXorKHR",
12724 .opcode = 6405,
12725 .operands = &[_]Operand{
12726 .{ .kind = .IdResultType, .quantifier = .required },
12727 .{ .kind = .IdResult, .quantifier = .required },
12728 .{ .kind = .IdScope, .quantifier = .required },
12729 .{ .kind = .GroupOperation, .quantifier = .required },
12730 .{ .kind = .IdRef, .quantifier = .required },
13808 .name = "OpTaskSequenceReleaseINTEL",
13809 .opcode = 6166,
13810 .operands = &.{
13811 .{ .kind = .id_ref, .quantifier = .required },
1273113812 },
1273213813 },
1273313814 .{
12734 .name = "OpGroupLogicalAndKHR",
12735 .opcode = 6406,
12736 .operands = &[_]Operand{
12737 .{ .kind = .IdResultType, .quantifier = .required },
12738 .{ .kind = .IdResult, .quantifier = .required },
12739 .{ .kind = .IdScope, .quantifier = .required },
12740 .{ .kind = .GroupOperation, .quantifier = .required },
12741 .{ .kind = .IdRef, .quantifier = .required },
13815 .name = "OpTypeTaskSequenceINTEL",
13816 .opcode = 6199,
13817 .operands = &.{
13818 .{ .kind = .id_result, .quantifier = .required },
1274213819 },
1274313820 },
1274413821 .{
12745 .name = "OpGroupLogicalOrKHR",
12746 .opcode = 6407,
12747 .operands = &[_]Operand{
12748 .{ .kind = .IdResultType, .quantifier = .required },
12749 .{ .kind = .IdResult, .quantifier = .required },
12750 .{ .kind = .IdScope, .quantifier = .required },
12751 .{ .kind = .GroupOperation, .quantifier = .required },
12752 .{ .kind = .IdRef, .quantifier = .required },
13822 .name = "OpSubgroupBlockPrefetchINTEL",
13823 .opcode = 6221,
13824 .operands = &.{
13825 .{ .kind = .id_ref, .quantifier = .required },
13826 .{ .kind = .id_ref, .quantifier = .required },
13827 .{ .kind = .memory_access, .quantifier = .optional },
1275313828 },
1275413829 },
1275513830 .{
12756 .name = "OpGroupLogicalXorKHR",
12757 .opcode = 6408,
12758 .operands = &[_]Operand{
12759 .{ .kind = .IdResultType, .quantifier = .required },
12760 .{ .kind = .IdResult, .quantifier = .required },
12761 .{ .kind = .IdScope, .quantifier = .required },
12762 .{ .kind = .GroupOperation, .quantifier = .required },
12763 .{ .kind = .IdRef, .quantifier = .required },
13831 .name = "OpSubgroup2DBlockLoadINTEL",
13832 .opcode = 6231,
13833 .operands = &.{
13834 .{ .kind = .id_ref, .quantifier = .required },
13835 .{ .kind = .id_ref, .quantifier = .required },
13836 .{ .kind = .id_ref, .quantifier = .required },
13837 .{ .kind = .id_ref, .quantifier = .required },
13838 .{ .kind = .id_ref, .quantifier = .required },
13839 .{ .kind = .id_ref, .quantifier = .required },
13840 .{ .kind = .id_ref, .quantifier = .required },
13841 .{ .kind = .id_ref, .quantifier = .required },
13842 .{ .kind = .id_ref, .quantifier = .required },
13843 .{ .kind = .id_ref, .quantifier = .required },
1276413844 },
1276513845 },
1276613846 .{
12767 .name = "OpMaskedGatherINTEL",
12768 .opcode = 6428,
12769 .operands = &[_]Operand{
12770 .{ .kind = .IdResultType, .quantifier = .required },
12771 .{ .kind = .IdResult, .quantifier = .required },
12772 .{ .kind = .IdRef, .quantifier = .required },
12773 .{ .kind = .LiteralInteger, .quantifier = .required },
12774 .{ .kind = .IdRef, .quantifier = .required },
12775 .{ .kind = .IdRef, .quantifier = .required },
13847 .name = "OpSubgroup2DBlockLoadTransformINTEL",
13848 .opcode = 6232,
13849 .operands = &.{
13850 .{ .kind = .id_ref, .quantifier = .required },
13851 .{ .kind = .id_ref, .quantifier = .required },
13852 .{ .kind = .id_ref, .quantifier = .required },
13853 .{ .kind = .id_ref, .quantifier = .required },
13854 .{ .kind = .id_ref, .quantifier = .required },
13855 .{ .kind = .id_ref, .quantifier = .required },
13856 .{ .kind = .id_ref, .quantifier = .required },
13857 .{ .kind = .id_ref, .quantifier = .required },
13858 .{ .kind = .id_ref, .quantifier = .required },
13859 .{ .kind = .id_ref, .quantifier = .required },
1277613860 },
1277713861 },
1277813862 .{
12779 .name = "OpMaskedScatterINTEL",
12780 .opcode = 6429,
12781 .operands = &[_]Operand{
12782 .{ .kind = .IdRef, .quantifier = .required },
12783 .{ .kind = .IdRef, .quantifier = .required },
12784 .{ .kind = .LiteralInteger, .quantifier = .required },
12785 .{ .kind = .IdRef, .quantifier = .required },
13863 .name = "OpSubgroup2DBlockLoadTransposeINTEL",
13864 .opcode = 6233,
13865 .operands = &.{
13866 .{ .kind = .id_ref, .quantifier = .required },
13867 .{ .kind = .id_ref, .quantifier = .required },
13868 .{ .kind = .id_ref, .quantifier = .required },
13869 .{ .kind = .id_ref, .quantifier = .required },
13870 .{ .kind = .id_ref, .quantifier = .required },
13871 .{ .kind = .id_ref, .quantifier = .required },
13872 .{ .kind = .id_ref, .quantifier = .required },
13873 .{ .kind = .id_ref, .quantifier = .required },
13874 .{ .kind = .id_ref, .quantifier = .required },
13875 .{ .kind = .id_ref, .quantifier = .required },
1278613876 },
1278713877 },
12788 },
12789 .@"OpenCL.std" => &[_]Instruction{
1279013878 .{
12791 .name = "acos",
12792 .opcode = 0,
12793 .operands = &[_]Operand{
12794 .{ .kind = .IdRef, .quantifier = .required },
13879 .name = "OpSubgroup2DBlockPrefetchINTEL",
13880 .opcode = 6234,
13881 .operands = &.{
13882 .{ .kind = .id_ref, .quantifier = .required },
13883 .{ .kind = .id_ref, .quantifier = .required },
13884 .{ .kind = .id_ref, .quantifier = .required },
13885 .{ .kind = .id_ref, .quantifier = .required },
13886 .{ .kind = .id_ref, .quantifier = .required },
13887 .{ .kind = .id_ref, .quantifier = .required },
13888 .{ .kind = .id_ref, .quantifier = .required },
13889 .{ .kind = .id_ref, .quantifier = .required },
13890 .{ .kind = .id_ref, .quantifier = .required },
1279513891 },
1279613892 },
1279713893 .{
12798 .name = "acosh",
12799 .opcode = 1,
12800 .operands = &[_]Operand{
12801 .{ .kind = .IdRef, .quantifier = .required },
13894 .name = "OpSubgroup2DBlockStoreINTEL",
13895 .opcode = 6235,
13896 .operands = &.{
13897 .{ .kind = .id_ref, .quantifier = .required },
13898 .{ .kind = .id_ref, .quantifier = .required },
13899 .{ .kind = .id_ref, .quantifier = .required },
13900 .{ .kind = .id_ref, .quantifier = .required },
13901 .{ .kind = .id_ref, .quantifier = .required },
13902 .{ .kind = .id_ref, .quantifier = .required },
13903 .{ .kind = .id_ref, .quantifier = .required },
13904 .{ .kind = .id_ref, .quantifier = .required },
13905 .{ .kind = .id_ref, .quantifier = .required },
13906 .{ .kind = .id_ref, .quantifier = .required },
13907 },
13908 },
13909 .{
13910 .name = "OpSubgroupMatrixMultiplyAccumulateINTEL",
13911 .opcode = 6237,
13912 .operands = &.{
13913 .{ .kind = .id_result_type, .quantifier = .required },
13914 .{ .kind = .id_result, .quantifier = .required },
13915 .{ .kind = .id_ref, .quantifier = .required },
13916 .{ .kind = .id_ref, .quantifier = .required },
13917 .{ .kind = .id_ref, .quantifier = .required },
13918 .{ .kind = .id_ref, .quantifier = .required },
13919 .{ .kind = .matrix_multiply_accumulate_operands, .quantifier = .optional },
13920 },
13921 },
13922 .{
13923 .name = "OpBitwiseFunctionINTEL",
13924 .opcode = 6242,
13925 .operands = &.{
13926 .{ .kind = .id_result_type, .quantifier = .required },
13927 .{ .kind = .id_result, .quantifier = .required },
13928 .{ .kind = .id_ref, .quantifier = .required },
13929 .{ .kind = .id_ref, .quantifier = .required },
13930 .{ .kind = .id_ref, .quantifier = .required },
13931 .{ .kind = .id_ref, .quantifier = .required },
1280213932 },
1280313933 },
1280413934 .{
12805 .name = "acospi",
12806 .opcode = 2,
12807 .operands = &[_]Operand{
12808 .{ .kind = .IdRef, .quantifier = .required },
13935 .name = "OpGroupIMulKHR",
13936 .opcode = 6401,
13937 .operands = &.{
13938 .{ .kind = .id_result_type, .quantifier = .required },
13939 .{ .kind = .id_result, .quantifier = .required },
13940 .{ .kind = .id_scope, .quantifier = .required },
13941 .{ .kind = .group_operation, .quantifier = .required },
13942 .{ .kind = .id_ref, .quantifier = .required },
1280913943 },
1281013944 },
1281113945 .{
12812 .name = "asin",
12813 .opcode = 3,
12814 .operands = &[_]Operand{
12815 .{ .kind = .IdRef, .quantifier = .required },
12816 },
13946 .name = "OpGroupFMulKHR",
13947 .opcode = 6402,
13948 .operands = &.{
13949 .{ .kind = .id_result_type, .quantifier = .required },
13950 .{ .kind = .id_result, .quantifier = .required },
13951 .{ .kind = .id_scope, .quantifier = .required },
13952 .{ .kind = .group_operation, .quantifier = .required },
13953 .{ .kind = .id_ref, .quantifier = .required },
13954 },
1281713955 },
1281813956 .{
12819 .name = "asinh",
13957 .name = "OpGroupBitwiseAndKHR",
13958 .opcode = 6403,
13959 .operands = &.{
13960 .{ .kind = .id_result_type, .quantifier = .required },
13961 .{ .kind = .id_result, .quantifier = .required },
13962 .{ .kind = .id_scope, .quantifier = .required },
13963 .{ .kind = .group_operation, .quantifier = .required },
13964 .{ .kind = .id_ref, .quantifier = .required },
13965 },
13966 },
13967 .{
13968 .name = "OpGroupBitwiseOrKHR",
13969 .opcode = 6404,
13970 .operands = &.{
13971 .{ .kind = .id_result_type, .quantifier = .required },
13972 .{ .kind = .id_result, .quantifier = .required },
13973 .{ .kind = .id_scope, .quantifier = .required },
13974 .{ .kind = .group_operation, .quantifier = .required },
13975 .{ .kind = .id_ref, .quantifier = .required },
13976 },
13977 },
13978 .{
13979 .name = "OpGroupBitwiseXorKHR",
13980 .opcode = 6405,
13981 .operands = &.{
13982 .{ .kind = .id_result_type, .quantifier = .required },
13983 .{ .kind = .id_result, .quantifier = .required },
13984 .{ .kind = .id_scope, .quantifier = .required },
13985 .{ .kind = .group_operation, .quantifier = .required },
13986 .{ .kind = .id_ref, .quantifier = .required },
13987 },
13988 },
13989 .{
13990 .name = "OpGroupLogicalAndKHR",
13991 .opcode = 6406,
13992 .operands = &.{
13993 .{ .kind = .id_result_type, .quantifier = .required },
13994 .{ .kind = .id_result, .quantifier = .required },
13995 .{ .kind = .id_scope, .quantifier = .required },
13996 .{ .kind = .group_operation, .quantifier = .required },
13997 .{ .kind = .id_ref, .quantifier = .required },
13998 },
13999 },
14000 .{
14001 .name = "OpGroupLogicalOrKHR",
14002 .opcode = 6407,
14003 .operands = &.{
14004 .{ .kind = .id_result_type, .quantifier = .required },
14005 .{ .kind = .id_result, .quantifier = .required },
14006 .{ .kind = .id_scope, .quantifier = .required },
14007 .{ .kind = .group_operation, .quantifier = .required },
14008 .{ .kind = .id_ref, .quantifier = .required },
14009 },
14010 },
14011 .{
14012 .name = "OpGroupLogicalXorKHR",
14013 .opcode = 6408,
14014 .operands = &.{
14015 .{ .kind = .id_result_type, .quantifier = .required },
14016 .{ .kind = .id_result, .quantifier = .required },
14017 .{ .kind = .id_scope, .quantifier = .required },
14018 .{ .kind = .group_operation, .quantifier = .required },
14019 .{ .kind = .id_ref, .quantifier = .required },
14020 },
14021 },
14022 .{
14023 .name = "OpRoundFToTF32INTEL",
14024 .opcode = 6426,
14025 .operands = &.{
14026 .{ .kind = .id_result_type, .quantifier = .required },
14027 .{ .kind = .id_result, .quantifier = .required },
14028 .{ .kind = .id_ref, .quantifier = .required },
14029 },
14030 },
14031 .{
14032 .name = "OpMaskedGatherINTEL",
14033 .opcode = 6428,
14034 .operands = &.{
14035 .{ .kind = .id_result_type, .quantifier = .required },
14036 .{ .kind = .id_result, .quantifier = .required },
14037 .{ .kind = .id_ref, .quantifier = .required },
14038 .{ .kind = .literal_integer, .quantifier = .required },
14039 .{ .kind = .id_ref, .quantifier = .required },
14040 .{ .kind = .id_ref, .quantifier = .required },
14041 },
14042 },
14043 .{
14044 .name = "OpMaskedScatterINTEL",
14045 .opcode = 6429,
14046 .operands = &.{
14047 .{ .kind = .id_ref, .quantifier = .required },
14048 .{ .kind = .id_ref, .quantifier = .required },
14049 .{ .kind = .literal_integer, .quantifier = .required },
14050 .{ .kind = .id_ref, .quantifier = .required },
14051 },
14052 },
14053 .{
14054 .name = "OpConvertHandleToImageINTEL",
14055 .opcode = 6529,
14056 .operands = &.{
14057 .{ .kind = .id_result_type, .quantifier = .required },
14058 .{ .kind = .id_result, .quantifier = .required },
14059 .{ .kind = .id_ref, .quantifier = .required },
14060 },
14061 },
14062 .{
14063 .name = "OpConvertHandleToSamplerINTEL",
14064 .opcode = 6530,
14065 .operands = &.{
14066 .{ .kind = .id_result_type, .quantifier = .required },
14067 .{ .kind = .id_result, .quantifier = .required },
14068 .{ .kind = .id_ref, .quantifier = .required },
14069 },
14070 },
14071 .{
14072 .name = "OpConvertHandleToSampledImageINTEL",
14073 .opcode = 6531,
14074 .operands = &.{
14075 .{ .kind = .id_result_type, .quantifier = .required },
14076 .{ .kind = .id_result, .quantifier = .required },
14077 .{ .kind = .id_ref, .quantifier = .required },
14078 },
14079 },
14080 },
14081 .spv_amd_shader_trinary_minmax => &.{
14082 .{
14083 .name = "FMin3AMD",
14084 .opcode = 1,
14085 .operands = &.{
14086 .{ .kind = .id_ref, .quantifier = .required },
14087 .{ .kind = .id_ref, .quantifier = .required },
14088 .{ .kind = .id_ref, .quantifier = .required },
14089 },
14090 },
14091 .{
14092 .name = "UMin3AMD",
14093 .opcode = 2,
14094 .operands = &.{
14095 .{ .kind = .id_ref, .quantifier = .required },
14096 .{ .kind = .id_ref, .quantifier = .required },
14097 .{ .kind = .id_ref, .quantifier = .required },
14098 },
14099 },
14100 .{
14101 .name = "SMin3AMD",
14102 .opcode = 3,
14103 .operands = &.{
14104 .{ .kind = .id_ref, .quantifier = .required },
14105 .{ .kind = .id_ref, .quantifier = .required },
14106 .{ .kind = .id_ref, .quantifier = .required },
14107 },
14108 },
14109 .{
14110 .name = "FMax3AMD",
1282014111 .opcode = 4,
12821 .operands = &[_]Operand{
12822 .{ .kind = .IdRef, .quantifier = .required },
14112 .operands = &.{
14113 .{ .kind = .id_ref, .quantifier = .required },
14114 .{ .kind = .id_ref, .quantifier = .required },
14115 .{ .kind = .id_ref, .quantifier = .required },
1282314116 },
1282414117 },
1282514118 .{
12826 .name = "asinpi",
14119 .name = "UMax3AMD",
1282714120 .opcode = 5,
12828 .operands = &[_]Operand{
12829 .{ .kind = .IdRef, .quantifier = .required },
14121 .operands = &.{
14122 .{ .kind = .id_ref, .quantifier = .required },
14123 .{ .kind = .id_ref, .quantifier = .required },
14124 .{ .kind = .id_ref, .quantifier = .required },
1283014125 },
1283114126 },
1283214127 .{
12833 .name = "atan",
14128 .name = "SMax3AMD",
1283414129 .opcode = 6,
12835 .operands = &[_]Operand{
12836 .{ .kind = .IdRef, .quantifier = .required },
14130 .operands = &.{
14131 .{ .kind = .id_ref, .quantifier = .required },
14132 .{ .kind = .id_ref, .quantifier = .required },
14133 .{ .kind = .id_ref, .quantifier = .required },
1283714134 },
1283814135 },
1283914136 .{
12840 .name = "atan2",
14137 .name = "FMid3AMD",
1284114138 .opcode = 7,
12842 .operands = &[_]Operand{
12843 .{ .kind = .IdRef, .quantifier = .required },
12844 .{ .kind = .IdRef, .quantifier = .required },
14139 .operands = &.{
14140 .{ .kind = .id_ref, .quantifier = .required },
14141 .{ .kind = .id_ref, .quantifier = .required },
14142 .{ .kind = .id_ref, .quantifier = .required },
1284514143 },
1284614144 },
1284714145 .{
12848 .name = "atanh",
14146 .name = "UMid3AMD",
1284914147 .opcode = 8,
12850 .operands = &[_]Operand{
12851 .{ .kind = .IdRef, .quantifier = .required },
14148 .operands = &.{
14149 .{ .kind = .id_ref, .quantifier = .required },
14150 .{ .kind = .id_ref, .quantifier = .required },
14151 .{ .kind = .id_ref, .quantifier = .required },
1285214152 },
1285314153 },
1285414154 .{
12855 .name = "atanpi",
14155 .name = "SMid3AMD",
1285614156 .opcode = 9,
12857 .operands = &[_]Operand{
12858 .{ .kind = .IdRef, .quantifier = .required },
14157 .operands = &.{
14158 .{ .kind = .id_ref, .quantifier = .required },
14159 .{ .kind = .id_ref, .quantifier = .required },
14160 .{ .kind = .id_ref, .quantifier = .required },
1285914161 },
1286014162 },
14163 },
14164 .spv_ext_inst_type_tosa_001000_1 => &.{
1286114165 .{
12862 .name = "atan2pi",
14166 .name = "ARGMAX",
14167 .opcode = 0,
14168 .operands = &.{
14169 .{ .kind = .id_ref, .quantifier = .required },
14170 .{ .kind = .id_ref, .quantifier = .required },
14171 .{ .kind = .id_ref, .quantifier = .required },
14172 },
14173 },
14174 .{
14175 .name = "AVG_POOL2D",
14176 .opcode = 1,
14177 .operands = &.{
14178 .{ .kind = .id_ref, .quantifier = .required },
14179 .{ .kind = .id_ref, .quantifier = .required },
14180 .{ .kind = .id_ref, .quantifier = .required },
14181 .{ .kind = .id_ref, .quantifier = .required },
14182 .{ .kind = .id_ref, .quantifier = .required },
14183 .{ .kind = .id_ref, .quantifier = .required },
14184 .{ .kind = .id_ref, .quantifier = .required },
14185 },
14186 },
14187 .{
14188 .name = "CONV2D",
14189 .opcode = 2,
14190 .operands = &.{
14191 .{ .kind = .id_ref, .quantifier = .required },
14192 .{ .kind = .id_ref, .quantifier = .required },
14193 .{ .kind = .id_ref, .quantifier = .required },
14194 .{ .kind = .id_ref, .quantifier = .required },
14195 .{ .kind = .id_ref, .quantifier = .required },
14196 .{ .kind = .id_ref, .quantifier = .required },
14197 .{ .kind = .id_ref, .quantifier = .required },
14198 .{ .kind = .id_ref, .quantifier = .required },
14199 .{ .kind = .id_ref, .quantifier = .required },
14200 .{ .kind = .id_ref, .quantifier = .required },
14201 },
14202 },
14203 .{
14204 .name = "CONV3D",
14205 .opcode = 3,
14206 .operands = &.{
14207 .{ .kind = .id_ref, .quantifier = .required },
14208 .{ .kind = .id_ref, .quantifier = .required },
14209 .{ .kind = .id_ref, .quantifier = .required },
14210 .{ .kind = .id_ref, .quantifier = .required },
14211 .{ .kind = .id_ref, .quantifier = .required },
14212 .{ .kind = .id_ref, .quantifier = .required },
14213 .{ .kind = .id_ref, .quantifier = .required },
14214 .{ .kind = .id_ref, .quantifier = .required },
14215 .{ .kind = .id_ref, .quantifier = .required },
14216 .{ .kind = .id_ref, .quantifier = .required },
14217 },
14218 },
14219 .{
14220 .name = "DEPTHWISE_CONV2D",
14221 .opcode = 4,
14222 .operands = &.{
14223 .{ .kind = .id_ref, .quantifier = .required },
14224 .{ .kind = .id_ref, .quantifier = .required },
14225 .{ .kind = .id_ref, .quantifier = .required },
14226 .{ .kind = .id_ref, .quantifier = .required },
14227 .{ .kind = .id_ref, .quantifier = .required },
14228 .{ .kind = .id_ref, .quantifier = .required },
14229 .{ .kind = .id_ref, .quantifier = .required },
14230 .{ .kind = .id_ref, .quantifier = .required },
14231 .{ .kind = .id_ref, .quantifier = .required },
14232 .{ .kind = .id_ref, .quantifier = .required },
14233 },
14234 },
14235 .{
14236 .name = "FFT2D",
14237 .opcode = 5,
14238 .operands = &.{
14239 .{ .kind = .id_ref, .quantifier = .required },
14240 .{ .kind = .id_ref, .quantifier = .required },
14241 .{ .kind = .id_ref, .quantifier = .required },
14242 .{ .kind = .id_ref, .quantifier = .required },
14243 },
14244 },
14245 .{
14246 .name = "MATMUL",
14247 .opcode = 6,
14248 .operands = &.{
14249 .{ .kind = .id_ref, .quantifier = .required },
14250 .{ .kind = .id_ref, .quantifier = .required },
14251 .{ .kind = .id_ref, .quantifier = .required },
14252 .{ .kind = .id_ref, .quantifier = .required },
14253 },
14254 },
14255 .{
14256 .name = "MAX_POOL2D",
14257 .opcode = 7,
14258 .operands = &.{
14259 .{ .kind = .id_ref, .quantifier = .required },
14260 .{ .kind = .id_ref, .quantifier = .required },
14261 .{ .kind = .id_ref, .quantifier = .required },
14262 .{ .kind = .id_ref, .quantifier = .required },
14263 .{ .kind = .id_ref, .quantifier = .required },
14264 },
14265 },
14266 .{
14267 .name = "RFFT2D",
14268 .opcode = 8,
14269 .operands = &.{
14270 .{ .kind = .id_ref, .quantifier = .required },
14271 .{ .kind = .id_ref, .quantifier = .required },
14272 },
14273 },
14274 .{
14275 .name = "TRANSPOSE_CONV2D",
14276 .opcode = 9,
14277 .operands = &.{
14278 .{ .kind = .id_ref, .quantifier = .required },
14279 .{ .kind = .id_ref, .quantifier = .required },
14280 .{ .kind = .id_ref, .quantifier = .required },
14281 .{ .kind = .id_ref, .quantifier = .required },
14282 .{ .kind = .id_ref, .quantifier = .required },
14283 .{ .kind = .id_ref, .quantifier = .required },
14284 .{ .kind = .id_ref, .quantifier = .required },
14285 .{ .kind = .id_ref, .quantifier = .required },
14286 .{ .kind = .id_ref, .quantifier = .required },
14287 },
14288 },
14289 .{
14290 .name = "CLAMP",
1286314291 .opcode = 10,
12864 .operands = &[_]Operand{
12865 .{ .kind = .IdRef, .quantifier = .required },
12866 .{ .kind = .IdRef, .quantifier = .required },
14292 .operands = &.{
14293 .{ .kind = .id_ref, .quantifier = .required },
14294 .{ .kind = .id_ref, .quantifier = .required },
14295 .{ .kind = .id_ref, .quantifier = .required },
14296 .{ .kind = .id_ref, .quantifier = .required },
1286714297 },
1286814298 },
1286914299 .{
12870 .name = "cbrt",
14300 .name = "ERF",
1287114301 .opcode = 11,
12872 .operands = &[_]Operand{
12873 .{ .kind = .IdRef, .quantifier = .required },
14302 .operands = &.{
14303 .{ .kind = .id_ref, .quantifier = .required },
1287414304 },
1287514305 },
1287614306 .{
12877 .name = "ceil",
14307 .name = "SIGMOID",
1287814308 .opcode = 12,
12879 .operands = &[_]Operand{
12880 .{ .kind = .IdRef, .quantifier = .required },
14309 .operands = &.{
14310 .{ .kind = .id_ref, .quantifier = .required },
1288114311 },
1288214312 },
1288314313 .{
12884 .name = "copysign",
14314 .name = "TANH",
1288514315 .opcode = 13,
12886 .operands = &[_]Operand{
12887 .{ .kind = .IdRef, .quantifier = .required },
12888 .{ .kind = .IdRef, .quantifier = .required },
14316 .operands = &.{
14317 .{ .kind = .id_ref, .quantifier = .required },
1288914318 },
1289014319 },
1289114320 .{
12892 .name = "cos",
14321 .name = "ADD",
1289314322 .opcode = 14,
12894 .operands = &[_]Operand{
12895 .{ .kind = .IdRef, .quantifier = .required },
14323 .operands = &.{
14324 .{ .kind = .id_ref, .quantifier = .required },
14325 .{ .kind = .id_ref, .quantifier = .required },
1289614326 },
1289714327 },
1289814328 .{
12899 .name = "cosh",
14329 .name = "ARITHMETIC_RIGHT_SHIFT",
1290014330 .opcode = 15,
12901 .operands = &[_]Operand{
12902 .{ .kind = .IdRef, .quantifier = .required },
14331 .operands = &.{
14332 .{ .kind = .id_ref, .quantifier = .required },
14333 .{ .kind = .id_ref, .quantifier = .required },
14334 .{ .kind = .id_ref, .quantifier = .required },
1290314335 },
1290414336 },
1290514337 .{
12906 .name = "cospi",
14338 .name = "BITWISE_AND",
1290714339 .opcode = 16,
12908 .operands = &[_]Operand{
12909 .{ .kind = .IdRef, .quantifier = .required },
14340 .operands = &.{
14341 .{ .kind = .id_ref, .quantifier = .required },
14342 .{ .kind = .id_ref, .quantifier = .required },
1291014343 },
1291114344 },
1291214345 .{
12913 .name = "erfc",
14346 .name = "BITWISE_OR",
1291414347 .opcode = 17,
12915 .operands = &[_]Operand{
12916 .{ .kind = .IdRef, .quantifier = .required },
14348 .operands = &.{
14349 .{ .kind = .id_ref, .quantifier = .required },
14350 .{ .kind = .id_ref, .quantifier = .required },
1291714351 },
1291814352 },
1291914353 .{
12920 .name = "erf",
14354 .name = "BITWISE_XOR",
1292114355 .opcode = 18,
12922 .operands = &[_]Operand{
12923 .{ .kind = .IdRef, .quantifier = .required },
14356 .operands = &.{
14357 .{ .kind = .id_ref, .quantifier = .required },
14358 .{ .kind = .id_ref, .quantifier = .required },
1292414359 },
1292514360 },
1292614361 .{
12927 .name = "exp",
14362 .name = "INTDIV",
1292814363 .opcode = 19,
12929 .operands = &[_]Operand{
12930 .{ .kind = .IdRef, .quantifier = .required },
14364 .operands = &.{
14365 .{ .kind = .id_ref, .quantifier = .required },
14366 .{ .kind = .id_ref, .quantifier = .required },
1293114367 },
1293214368 },
1293314369 .{
12934 .name = "exp2",
14370 .name = "LOGICAL_AND",
1293514371 .opcode = 20,
12936 .operands = &[_]Operand{
12937 .{ .kind = .IdRef, .quantifier = .required },
14372 .operands = &.{
14373 .{ .kind = .id_ref, .quantifier = .required },
14374 .{ .kind = .id_ref, .quantifier = .required },
1293814375 },
1293914376 },
1294014377 .{
12941 .name = "exp10",
14378 .name = "LOGICAL_LEFT_SHIFT",
1294214379 .opcode = 21,
12943 .operands = &[_]Operand{
12944 .{ .kind = .IdRef, .quantifier = .required },
14380 .operands = &.{
14381 .{ .kind = .id_ref, .quantifier = .required },
14382 .{ .kind = .id_ref, .quantifier = .required },
1294514383 },
1294614384 },
1294714385 .{
12948 .name = "expm1",
14386 .name = "LOGICAL_RIGHT_SHIFT",
1294914387 .opcode = 22,
12950 .operands = &[_]Operand{
12951 .{ .kind = .IdRef, .quantifier = .required },
14388 .operands = &.{
14389 .{ .kind = .id_ref, .quantifier = .required },
14390 .{ .kind = .id_ref, .quantifier = .required },
1295214391 },
1295314392 },
1295414393 .{
12955 .name = "fabs",
14394 .name = "LOGICAL_OR",
1295614395 .opcode = 23,
12957 .operands = &[_]Operand{
12958 .{ .kind = .IdRef, .quantifier = .required },
14396 .operands = &.{
14397 .{ .kind = .id_ref, .quantifier = .required },
14398 .{ .kind = .id_ref, .quantifier = .required },
1295914399 },
1296014400 },
1296114401 .{
12962 .name = "fdim",
14402 .name = "LOGICAL_XOR",
1296314403 .opcode = 24,
12964 .operands = &[_]Operand{
12965 .{ .kind = .IdRef, .quantifier = .required },
12966 .{ .kind = .IdRef, .quantifier = .required },
14404 .operands = &.{
14405 .{ .kind = .id_ref, .quantifier = .required },
14406 .{ .kind = .id_ref, .quantifier = .required },
1296714407 },
1296814408 },
1296914409 .{
12970 .name = "floor",
14410 .name = "MAXIMUM",
1297114411 .opcode = 25,
12972 .operands = &[_]Operand{
12973 .{ .kind = .IdRef, .quantifier = .required },
14412 .operands = &.{
14413 .{ .kind = .id_ref, .quantifier = .required },
14414 .{ .kind = .id_ref, .quantifier = .required },
14415 .{ .kind = .id_ref, .quantifier = .required },
1297414416 },
1297514417 },
1297614418 .{
12977 .name = "fma",
14419 .name = "MINIMUM",
1297814420 .opcode = 26,
12979 .operands = &[_]Operand{
12980 .{ .kind = .IdRef, .quantifier = .required },
12981 .{ .kind = .IdRef, .quantifier = .required },
12982 .{ .kind = .IdRef, .quantifier = .required },
14421 .operands = &.{
14422 .{ .kind = .id_ref, .quantifier = .required },
14423 .{ .kind = .id_ref, .quantifier = .required },
14424 .{ .kind = .id_ref, .quantifier = .required },
1298314425 },
1298414426 },
1298514427 .{
12986 .name = "fmax",
14428 .name = "MUL",
1298714429 .opcode = 27,
12988 .operands = &[_]Operand{
12989 .{ .kind = .IdRef, .quantifier = .required },
12990 .{ .kind = .IdRef, .quantifier = .required },
14430 .operands = &.{
14431 .{ .kind = .id_ref, .quantifier = .required },
14432 .{ .kind = .id_ref, .quantifier = .required },
14433 .{ .kind = .id_ref, .quantifier = .required },
1299114434 },
1299214435 },
1299314436 .{
12994 .name = "fmin",
14437 .name = "POW",
1299514438 .opcode = 28,
12996 .operands = &[_]Operand{
12997 .{ .kind = .IdRef, .quantifier = .required },
12998 .{ .kind = .IdRef, .quantifier = .required },
14439 .operands = &.{
14440 .{ .kind = .id_ref, .quantifier = .required },
14441 .{ .kind = .id_ref, .quantifier = .required },
1299914442 },
1300014443 },
1300114444 .{
13002 .name = "fmod",
14445 .name = "SUB",
1300314446 .opcode = 29,
13004 .operands = &[_]Operand{
13005 .{ .kind = .IdRef, .quantifier = .required },
13006 .{ .kind = .IdRef, .quantifier = .required },
14447 .operands = &.{
14448 .{ .kind = .id_ref, .quantifier = .required },
14449 .{ .kind = .id_ref, .quantifier = .required },
1300714450 },
1300814451 },
1300914452 .{
13010 .name = "fract",
14453 .name = "TABLE",
1301114454 .opcode = 30,
13012 .operands = &[_]Operand{
13013 .{ .kind = .IdRef, .quantifier = .required },
13014 .{ .kind = .IdRef, .quantifier = .required },
14455 .operands = &.{
14456 .{ .kind = .id_ref, .quantifier = .required },
14457 .{ .kind = .id_ref, .quantifier = .required },
1301514458 },
1301614459 },
1301714460 .{
13018 .name = "frexp",
14461 .name = "ABS",
1301914462 .opcode = 31,
13020 .operands = &[_]Operand{
13021 .{ .kind = .IdRef, .quantifier = .required },
13022 .{ .kind = .IdRef, .quantifier = .required },
14463 .operands = &.{
14464 .{ .kind = .id_ref, .quantifier = .required },
1302314465 },
1302414466 },
1302514467 .{
13026 .name = "hypot",
14468 .name = "BITWISE_NOT",
1302714469 .opcode = 32,
13028 .operands = &[_]Operand{
13029 .{ .kind = .IdRef, .quantifier = .required },
13030 .{ .kind = .IdRef, .quantifier = .required },
14470 .operands = &.{
14471 .{ .kind = .id_ref, .quantifier = .required },
1303114472 },
1303214473 },
1303314474 .{
13034 .name = "ilogb",
14475 .name = "CEIL",
1303514476 .opcode = 33,
13036 .operands = &[_]Operand{
13037 .{ .kind = .IdRef, .quantifier = .required },
14477 .operands = &.{
14478 .{ .kind = .id_ref, .quantifier = .required },
1303814479 },
1303914480 },
1304014481 .{
13041 .name = "ldexp",
14482 .name = "CLZ",
1304214483 .opcode = 34,
13043 .operands = &[_]Operand{
13044 .{ .kind = .IdRef, .quantifier = .required },
13045 .{ .kind = .IdRef, .quantifier = .required },
14484 .operands = &.{
14485 .{ .kind = .id_ref, .quantifier = .required },
1304614486 },
1304714487 },
1304814488 .{
13049 .name = "lgamma",
14489 .name = "COS",
1305014490 .opcode = 35,
13051 .operands = &[_]Operand{
13052 .{ .kind = .IdRef, .quantifier = .required },
14491 .operands = &.{
14492 .{ .kind = .id_ref, .quantifier = .required },
1305314493 },
1305414494 },
1305514495 .{
13056 .name = "lgamma_r",
14496 .name = "EXP",
1305714497 .opcode = 36,
13058 .operands = &[_]Operand{
13059 .{ .kind = .IdRef, .quantifier = .required },
13060 .{ .kind = .IdRef, .quantifier = .required },
14498 .operands = &.{
14499 .{ .kind = .id_ref, .quantifier = .required },
1306114500 },
1306214501 },
1306314502 .{
13064 .name = "log",
14503 .name = "FLOOR",
1306514504 .opcode = 37,
13066 .operands = &[_]Operand{
13067 .{ .kind = .IdRef, .quantifier = .required },
14505 .operands = &.{
14506 .{ .kind = .id_ref, .quantifier = .required },
1306814507 },
1306914508 },
1307014509 .{
13071 .name = "log2",
14510 .name = "LOG",
1307214511 .opcode = 38,
13073 .operands = &[_]Operand{
13074 .{ .kind = .IdRef, .quantifier = .required },
14512 .operands = &.{
14513 .{ .kind = .id_ref, .quantifier = .required },
1307514514 },
1307614515 },
1307714516 .{
13078 .name = "log10",
14517 .name = "LOGICAL_NOT",
1307914518 .opcode = 39,
13080 .operands = &[_]Operand{
13081 .{ .kind = .IdRef, .quantifier = .required },
14519 .operands = &.{
14520 .{ .kind = .id_ref, .quantifier = .required },
1308214521 },
1308314522 },
1308414523 .{
13085 .name = "log1p",
14524 .name = "NEGATE",
1308614525 .opcode = 40,
13087 .operands = &[_]Operand{
13088 .{ .kind = .IdRef, .quantifier = .required },
14526 .operands = &.{
14527 .{ .kind = .id_ref, .quantifier = .required },
14528 .{ .kind = .id_ref, .quantifier = .required },
14529 .{ .kind = .id_ref, .quantifier = .required },
1308914530 },
1309014531 },
1309114532 .{
13092 .name = "logb",
14533 .name = "RECIPROCAL",
1309314534 .opcode = 41,
13094 .operands = &[_]Operand{
13095 .{ .kind = .IdRef, .quantifier = .required },
14535 .operands = &.{
14536 .{ .kind = .id_ref, .quantifier = .required },
1309614537 },
1309714538 },
1309814539 .{
13099 .name = "mad",
14540 .name = "RSQRT",
1310014541 .opcode = 42,
13101 .operands = &[_]Operand{
13102 .{ .kind = .IdRef, .quantifier = .required },
13103 .{ .kind = .IdRef, .quantifier = .required },
13104 .{ .kind = .IdRef, .quantifier = .required },
14542 .operands = &.{
14543 .{ .kind = .id_ref, .quantifier = .required },
1310514544 },
1310614545 },
1310714546 .{
13108 .name = "maxmag",
14547 .name = "SIN",
1310914548 .opcode = 43,
13110 .operands = &[_]Operand{
13111 .{ .kind = .IdRef, .quantifier = .required },
13112 .{ .kind = .IdRef, .quantifier = .required },
14549 .operands = &.{
14550 .{ .kind = .id_ref, .quantifier = .required },
1311314551 },
1311414552 },
1311514553 .{
13116 .name = "minmag",
14554 .name = "SELECT",
1311714555 .opcode = 44,
13118 .operands = &[_]Operand{
13119 .{ .kind = .IdRef, .quantifier = .required },
13120 .{ .kind = .IdRef, .quantifier = .required },
14556 .operands = &.{
14557 .{ .kind = .id_ref, .quantifier = .required },
14558 .{ .kind = .id_ref, .quantifier = .required },
14559 .{ .kind = .id_ref, .quantifier = .required },
1312114560 },
1312214561 },
1312314562 .{
13124 .name = "modf",
14563 .name = "EQUAL",
1312514564 .opcode = 45,
13126 .operands = &[_]Operand{
13127 .{ .kind = .IdRef, .quantifier = .required },
13128 .{ .kind = .IdRef, .quantifier = .required },
14565 .operands = &.{
14566 .{ .kind = .id_ref, .quantifier = .required },
14567 .{ .kind = .id_ref, .quantifier = .required },
1312914568 },
1313014569 },
1313114570 .{
13132 .name = "nan",
14571 .name = "GREATER",
1313314572 .opcode = 46,
13134 .operands = &[_]Operand{
13135 .{ .kind = .IdRef, .quantifier = .required },
14573 .operands = &.{
14574 .{ .kind = .id_ref, .quantifier = .required },
14575 .{ .kind = .id_ref, .quantifier = .required },
1313614576 },
1313714577 },
1313814578 .{
13139 .name = "nextafter",
14579 .name = "GREATER_EQUAL",
1314014580 .opcode = 47,
13141 .operands = &[_]Operand{
13142 .{ .kind = .IdRef, .quantifier = .required },
13143 .{ .kind = .IdRef, .quantifier = .required },
14581 .operands = &.{
14582 .{ .kind = .id_ref, .quantifier = .required },
14583 .{ .kind = .id_ref, .quantifier = .required },
1314414584 },
1314514585 },
1314614586 .{
13147 .name = "pow",
14587 .name = "REDUCE_ALL",
1314814588 .opcode = 48,
13149 .operands = &[_]Operand{
13150 .{ .kind = .IdRef, .quantifier = .required },
13151 .{ .kind = .IdRef, .quantifier = .required },
14589 .operands = &.{
14590 .{ .kind = .id_ref, .quantifier = .required },
14591 .{ .kind = .id_ref, .quantifier = .required },
1315214592 },
1315314593 },
1315414594 .{
13155 .name = "pown",
14595 .name = "REDUCE_ANY",
1315614596 .opcode = 49,
13157 .operands = &[_]Operand{
13158 .{ .kind = .IdRef, .quantifier = .required },
13159 .{ .kind = .IdRef, .quantifier = .required },
14597 .operands = &.{
14598 .{ .kind = .id_ref, .quantifier = .required },
14599 .{ .kind = .id_ref, .quantifier = .required },
1316014600 },
1316114601 },
1316214602 .{
13163 .name = "powr",
14603 .name = "REDUCE_MAX",
1316414604 .opcode = 50,
13165 .operands = &[_]Operand{
13166 .{ .kind = .IdRef, .quantifier = .required },
13167 .{ .kind = .IdRef, .quantifier = .required },
14605 .operands = &.{
14606 .{ .kind = .id_ref, .quantifier = .required },
14607 .{ .kind = .id_ref, .quantifier = .required },
14608 .{ .kind = .id_ref, .quantifier = .required },
1316814609 },
1316914610 },
1317014611 .{
13171 .name = "remainder",
14612 .name = "REDUCE_MIN",
1317214613 .opcode = 51,
13173 .operands = &[_]Operand{
13174 .{ .kind = .IdRef, .quantifier = .required },
13175 .{ .kind = .IdRef, .quantifier = .required },
14614 .operands = &.{
14615 .{ .kind = .id_ref, .quantifier = .required },
14616 .{ .kind = .id_ref, .quantifier = .required },
14617 .{ .kind = .id_ref, .quantifier = .required },
1317614618 },
1317714619 },
1317814620 .{
13179 .name = "remquo",
14621 .name = "REDUCE_PRODUCT",
1318014622 .opcode = 52,
13181 .operands = &[_]Operand{
13182 .{ .kind = .IdRef, .quantifier = .required },
13183 .{ .kind = .IdRef, .quantifier = .required },
13184 .{ .kind = .IdRef, .quantifier = .required },
14623 .operands = &.{
14624 .{ .kind = .id_ref, .quantifier = .required },
14625 .{ .kind = .id_ref, .quantifier = .required },
1318514626 },
1318614627 },
1318714628 .{
13188 .name = "rint",
14629 .name = "REDUCE_SUM",
1318914630 .opcode = 53,
13190 .operands = &[_]Operand{
13191 .{ .kind = .IdRef, .quantifier = .required },
14631 .operands = &.{
14632 .{ .kind = .id_ref, .quantifier = .required },
14633 .{ .kind = .id_ref, .quantifier = .required },
1319214634 },
1319314635 },
1319414636 .{
13195 .name = "rootn",
14637 .name = "CONCAT",
1319614638 .opcode = 54,
13197 .operands = &[_]Operand{
13198 .{ .kind = .IdRef, .quantifier = .required },
13199 .{ .kind = .IdRef, .quantifier = .required },
14639 .operands = &.{
14640 .{ .kind = .id_ref, .quantifier = .required },
14641 .{ .kind = .id_ref, .quantifier = .variadic },
1320014642 },
1320114643 },
1320214644 .{
13203 .name = "round",
14645 .name = "PAD",
1320414646 .opcode = 55,
13205 .operands = &[_]Operand{
13206 .{ .kind = .IdRef, .quantifier = .required },
14647 .operands = &.{
14648 .{ .kind = .id_ref, .quantifier = .required },
14649 .{ .kind = .id_ref, .quantifier = .required },
14650 .{ .kind = .id_ref, .quantifier = .required },
1320714651 },
1320814652 },
1320914653 .{
13210 .name = "rsqrt",
14654 .name = "RESHAPE",
1321114655 .opcode = 56,
13212 .operands = &[_]Operand{
13213 .{ .kind = .IdRef, .quantifier = .required },
14656 .operands = &.{
14657 .{ .kind = .id_ref, .quantifier = .required },
14658 .{ .kind = .id_ref, .quantifier = .required },
1321414659 },
1321514660 },
1321614661 .{
13217 .name = "sin",
14662 .name = "REVERSE",
1321814663 .opcode = 57,
13219 .operands = &[_]Operand{
13220 .{ .kind = .IdRef, .quantifier = .required },
14664 .operands = &.{
14665 .{ .kind = .id_ref, .quantifier = .required },
14666 .{ .kind = .id_ref, .quantifier = .required },
1322114667 },
1322214668 },
1322314669 .{
13224 .name = "sincos",
14670 .name = "SLICE",
1322514671 .opcode = 58,
13226 .operands = &[_]Operand{
13227 .{ .kind = .IdRef, .quantifier = .required },
13228 .{ .kind = .IdRef, .quantifier = .required },
14672 .operands = &.{
14673 .{ .kind = .id_ref, .quantifier = .required },
14674 .{ .kind = .id_ref, .quantifier = .required },
14675 .{ .kind = .id_ref, .quantifier = .required },
1322914676 },
1323014677 },
1323114678 .{
13232 .name = "sinh",
14679 .name = "TILE",
1323314680 .opcode = 59,
13234 .operands = &[_]Operand{
13235 .{ .kind = .IdRef, .quantifier = .required },
14681 .operands = &.{
14682 .{ .kind = .id_ref, .quantifier = .required },
14683 .{ .kind = .id_ref, .quantifier = .required },
1323614684 },
1323714685 },
1323814686 .{
13239 .name = "sinpi",
14687 .name = "TRANSPOSE",
1324014688 .opcode = 60,
13241 .operands = &[_]Operand{
13242 .{ .kind = .IdRef, .quantifier = .required },
14689 .operands = &.{
14690 .{ .kind = .id_ref, .quantifier = .required },
14691 .{ .kind = .id_ref, .quantifier = .required },
1324314692 },
1324414693 },
1324514694 .{
13246 .name = "sqrt",
14695 .name = "GATHER",
1324714696 .opcode = 61,
13248 .operands = &[_]Operand{
13249 .{ .kind = .IdRef, .quantifier = .required },
14697 .operands = &.{
14698 .{ .kind = .id_ref, .quantifier = .required },
14699 .{ .kind = .id_ref, .quantifier = .required },
1325014700 },
1325114701 },
1325214702 .{
13253 .name = "tan",
14703 .name = "SCATTER",
1325414704 .opcode = 62,
13255 .operands = &[_]Operand{
13256 .{ .kind = .IdRef, .quantifier = .required },
14705 .operands = &.{
14706 .{ .kind = .id_ref, .quantifier = .required },
14707 .{ .kind = .id_ref, .quantifier = .required },
14708 .{ .kind = .id_ref, .quantifier = .required },
1325714709 },
1325814710 },
1325914711 .{
13260 .name = "tanh",
14712 .name = "RESIZE",
1326114713 .opcode = 63,
13262 .operands = &[_]Operand{
13263 .{ .kind = .IdRef, .quantifier = .required },
14714 .operands = &.{
14715 .{ .kind = .id_ref, .quantifier = .required },
14716 .{ .kind = .id_ref, .quantifier = .required },
14717 .{ .kind = .id_ref, .quantifier = .required },
14718 .{ .kind = .id_ref, .quantifier = .required },
14719 .{ .kind = .id_ref, .quantifier = .required },
1326414720 },
1326514721 },
1326614722 .{
13267 .name = "tanpi",
14723 .name = "CAST",
1326814724 .opcode = 64,
13269 .operands = &[_]Operand{
13270 .{ .kind = .IdRef, .quantifier = .required },
14725 .operands = &.{
14726 .{ .kind = .id_ref, .quantifier = .required },
1327114727 },
1327214728 },
1327314729 .{
13274 .name = "tgamma",
14730 .name = "RESCALE",
1327514731 .opcode = 65,
13276 .operands = &[_]Operand{
13277 .{ .kind = .IdRef, .quantifier = .required },
14732 .operands = &.{
14733 .{ .kind = .id_ref, .quantifier = .required },
14734 .{ .kind = .id_ref, .quantifier = .required },
14735 .{ .kind = .id_ref, .quantifier = .required },
14736 .{ .kind = .id_ref, .quantifier = .required },
14737 .{ .kind = .id_ref, .quantifier = .required },
14738 .{ .kind = .id_ref, .quantifier = .required },
14739 .{ .kind = .id_ref, .quantifier = .required },
14740 .{ .kind = .id_ref, .quantifier = .required },
14741 .{ .kind = .id_ref, .quantifier = .required },
14742 .{ .kind = .id_ref, .quantifier = .required },
1327814743 },
1327914744 },
14745 },
14746 .non_semantic_vksp_reflection => &.{
1328014747 .{
13281 .name = "trunc",
13282 .opcode = 66,
13283 .operands = &[_]Operand{
13284 .{ .kind = .IdRef, .quantifier = .required },
14748 .name = "Configuration",
14749 .opcode = 1,
14750 .operands = &.{
14751 .{ .kind = .id_ref, .quantifier = .required },
14752 .{ .kind = .id_ref, .quantifier = .required },
14753 .{ .kind = .id_ref, .quantifier = .required },
14754 .{ .kind = .id_ref, .quantifier = .required },
14755 .{ .kind = .id_ref, .quantifier = .required },
14756 .{ .kind = .id_ref, .quantifier = .required },
14757 .{ .kind = .id_ref, .quantifier = .required },
14758 .{ .kind = .id_ref, .quantifier = .required },
14759 .{ .kind = .id_ref, .quantifier = .required },
1328514760 },
1328614761 },
1328714762 .{
13288 .name = "half_cos",
13289 .opcode = 67,
13290 .operands = &[_]Operand{
13291 .{ .kind = .IdRef, .quantifier = .required },
14763 .name = "StartCounter",
14764 .opcode = 2,
14765 .operands = &.{
14766 .{ .kind = .id_ref, .quantifier = .required },
1329214767 },
1329314768 },
1329414769 .{
13295 .name = "half_divide",
13296 .opcode = 68,
13297 .operands = &[_]Operand{
13298 .{ .kind = .IdRef, .quantifier = .required },
13299 .{ .kind = .IdRef, .quantifier = .required },
14770 .name = "StopCounter",
14771 .opcode = 3,
14772 .operands = &.{
14773 .{ .kind = .id_ref, .quantifier = .required },
1330014774 },
1330114775 },
1330214776 .{
13303 .name = "half_exp",
13304 .opcode = 69,
13305 .operands = &[_]Operand{
13306 .{ .kind = .IdRef, .quantifier = .required },
14777 .name = "PushConstants",
14778 .opcode = 4,
14779 .operands = &.{
14780 .{ .kind = .id_ref, .quantifier = .required },
14781 .{ .kind = .id_ref, .quantifier = .required },
14782 .{ .kind = .id_ref, .quantifier = .required },
14783 .{ .kind = .id_ref, .quantifier = .required },
1330714784 },
1330814785 },
1330914786 .{
13310 .name = "half_exp2",
13311 .opcode = 70,
13312 .operands = &[_]Operand{
13313 .{ .kind = .IdRef, .quantifier = .required },
14787 .name = "SpecializationMapEntry",
14788 .opcode = 5,
14789 .operands = &.{
14790 .{ .kind = .id_ref, .quantifier = .required },
14791 .{ .kind = .id_ref, .quantifier = .required },
14792 .{ .kind = .id_ref, .quantifier = .required },
1331414793 },
1331514794 },
1331614795 .{
13317 .name = "half_exp10",
13318 .opcode = 71,
13319 .operands = &[_]Operand{
13320 .{ .kind = .IdRef, .quantifier = .required },
14796 .name = "DescriptorSetBuffer",
14797 .opcode = 6,
14798 .operands = &.{
14799 .{ .kind = .id_ref, .quantifier = .required },
14800 .{ .kind = .id_ref, .quantifier = .required },
14801 .{ .kind = .id_ref, .quantifier = .required },
14802 .{ .kind = .id_ref, .quantifier = .required },
14803 .{ .kind = .id_ref, .quantifier = .required },
14804 .{ .kind = .id_ref, .quantifier = .required },
14805 .{ .kind = .id_ref, .quantifier = .required },
14806 .{ .kind = .id_ref, .quantifier = .required },
14807 .{ .kind = .id_ref, .quantifier = .required },
14808 .{ .kind = .id_ref, .quantifier = .required },
14809 .{ .kind = .id_ref, .quantifier = .required },
14810 .{ .kind = .id_ref, .quantifier = .required },
14811 .{ .kind = .id_ref, .quantifier = .required },
14812 .{ .kind = .id_ref, .quantifier = .required },
14813 .{ .kind = .id_ref, .quantifier = .required },
1332114814 },
1332214815 },
1332314816 .{
13324 .name = "half_log",
13325 .opcode = 72,
13326 .operands = &[_]Operand{
13327 .{ .kind = .IdRef, .quantifier = .required },
14817 .name = "DescriptorSetImage",
14818 .opcode = 7,
14819 .operands = &.{
14820 .{ .kind = .id_ref, .quantifier = .required },
14821 .{ .kind = .id_ref, .quantifier = .required },
14822 .{ .kind = .id_ref, .quantifier = .required },
14823 .{ .kind = .id_ref, .quantifier = .required },
14824 .{ .kind = .id_ref, .quantifier = .required },
14825 .{ .kind = .id_ref, .quantifier = .required },
14826 .{ .kind = .id_ref, .quantifier = .required },
14827 .{ .kind = .id_ref, .quantifier = .required },
14828 .{ .kind = .id_ref, .quantifier = .required },
14829 .{ .kind = .id_ref, .quantifier = .required },
14830 .{ .kind = .id_ref, .quantifier = .required },
14831 .{ .kind = .id_ref, .quantifier = .required },
14832 .{ .kind = .id_ref, .quantifier = .required },
14833 .{ .kind = .id_ref, .quantifier = .required },
14834 .{ .kind = .id_ref, .quantifier = .required },
14835 .{ .kind = .id_ref, .quantifier = .required },
14836 .{ .kind = .id_ref, .quantifier = .required },
14837 .{ .kind = .id_ref, .quantifier = .required },
14838 .{ .kind = .id_ref, .quantifier = .required },
14839 .{ .kind = .id_ref, .quantifier = .required },
14840 .{ .kind = .id_ref, .quantifier = .required },
14841 .{ .kind = .id_ref, .quantifier = .required },
14842 .{ .kind = .id_ref, .quantifier = .required },
14843 .{ .kind = .id_ref, .quantifier = .required },
14844 .{ .kind = .id_ref, .quantifier = .required },
14845 .{ .kind = .id_ref, .quantifier = .required },
14846 .{ .kind = .id_ref, .quantifier = .required },
14847 .{ .kind = .id_ref, .quantifier = .required },
14848 .{ .kind = .id_ref, .quantifier = .required },
14849 .{ .kind = .id_ref, .quantifier = .required },
14850 .{ .kind = .id_ref, .quantifier = .required },
14851 .{ .kind = .id_ref, .quantifier = .required },
14852 .{ .kind = .id_ref, .quantifier = .required },
1332814853 },
1332914854 },
1333014855 .{
13331 .name = "half_log2",
13332 .opcode = 73,
13333 .operands = &[_]Operand{
13334 .{ .kind = .IdRef, .quantifier = .required },
14856 .name = "DescriptorSetSampler",
14857 .opcode = 8,
14858 .operands = &.{
14859 .{ .kind = .id_ref, .quantifier = .required },
14860 .{ .kind = .id_ref, .quantifier = .required },
14861 .{ .kind = .id_ref, .quantifier = .required },
14862 .{ .kind = .id_ref, .quantifier = .required },
14863 .{ .kind = .id_ref, .quantifier = .required },
14864 .{ .kind = .id_ref, .quantifier = .required },
14865 .{ .kind = .id_ref, .quantifier = .required },
14866 .{ .kind = .id_ref, .quantifier = .required },
14867 .{ .kind = .id_ref, .quantifier = .required },
14868 .{ .kind = .id_ref, .quantifier = .required },
14869 .{ .kind = .id_ref, .quantifier = .required },
14870 .{ .kind = .id_ref, .quantifier = .required },
14871 .{ .kind = .id_ref, .quantifier = .required },
14872 .{ .kind = .id_ref, .quantifier = .required },
14873 .{ .kind = .id_ref, .quantifier = .required },
14874 .{ .kind = .id_ref, .quantifier = .required },
14875 .{ .kind = .id_ref, .quantifier = .required },
14876 .{ .kind = .id_ref, .quantifier = .required },
14877 .{ .kind = .id_ref, .quantifier = .required },
1333514878 },
1333614879 },
14880 },
14881 .spv_amd_shader_explicit_vertex_parameter => &.{
1333714882 .{
13338 .name = "half_log10",
13339 .opcode = 74,
13340 .operands = &[_]Operand{
13341 .{ .kind = .IdRef, .quantifier = .required },
14883 .name = "InterpolateAtVertexAMD",
14884 .opcode = 1,
14885 .operands = &.{
14886 .{ .kind = .id_ref, .quantifier = .required },
14887 .{ .kind = .id_ref, .quantifier = .required },
1334214888 },
1334314889 },
14890 },
14891 .debug_info => &.{
1334414892 .{
13345 .name = "half_powr",
13346 .opcode = 75,
13347 .operands = &[_]Operand{
13348 .{ .kind = .IdRef, .quantifier = .required },
13349 .{ .kind = .IdRef, .quantifier = .required },
13350 },
14893 .name = "DebugInfoNone",
14894 .opcode = 0,
14895 .operands = &.{},
1335114896 },
1335214897 .{
13353 .name = "half_recip",
13354 .opcode = 76,
13355 .operands = &[_]Operand{
13356 .{ .kind = .IdRef, .quantifier = .required },
14898 .name = "DebugCompilationUnit",
14899 .opcode = 1,
14900 .operands = &.{
14901 .{ .kind = .id_ref, .quantifier = .required },
14902 .{ .kind = .literal_integer, .quantifier = .required },
14903 .{ .kind = .literal_integer, .quantifier = .required },
1335714904 },
1335814905 },
1335914906 .{
13360 .name = "half_rsqrt",
13361 .opcode = 77,
13362 .operands = &[_]Operand{
13363 .{ .kind = .IdRef, .quantifier = .required },
14907 .name = "DebugTypeBasic",
14908 .opcode = 2,
14909 .operands = &.{
14910 .{ .kind = .id_ref, .quantifier = .required },
14911 .{ .kind = .id_ref, .quantifier = .required },
14912 .{ .kind = .debug_info_debug_base_type_attribute_encoding, .quantifier = .required },
1336414913 },
1336514914 },
1336614915 .{
13367 .name = "half_sin",
13368 .opcode = 78,
13369 .operands = &[_]Operand{
13370 .{ .kind = .IdRef, .quantifier = .required },
14916 .name = "DebugTypePointer",
14917 .opcode = 3,
14918 .operands = &.{
14919 .{ .kind = .id_ref, .quantifier = .required },
14920 .{ .kind = .storage_class, .quantifier = .required },
14921 .{ .kind = .debug_info_debug_info_flags, .quantifier = .required },
1337114922 },
1337214923 },
1337314924 .{
13374 .name = "half_sqrt",
13375 .opcode = 79,
13376 .operands = &[_]Operand{
13377 .{ .kind = .IdRef, .quantifier = .required },
14925 .name = "DebugTypeQualifier",
14926 .opcode = 4,
14927 .operands = &.{
14928 .{ .kind = .id_ref, .quantifier = .required },
14929 .{ .kind = .debug_info_debug_type_qualifier, .quantifier = .required },
1337814930 },
1337914931 },
1338014932 .{
13381 .name = "half_tan",
13382 .opcode = 80,
13383 .operands = &[_]Operand{
13384 .{ .kind = .IdRef, .quantifier = .required },
14933 .name = "DebugTypeArray",
14934 .opcode = 5,
14935 .operands = &.{
14936 .{ .kind = .id_ref, .quantifier = .required },
14937 .{ .kind = .id_ref, .quantifier = .variadic },
1338514938 },
1338614939 },
1338714940 .{
13388 .name = "native_cos",
13389 .opcode = 81,
13390 .operands = &[_]Operand{
13391 .{ .kind = .IdRef, .quantifier = .required },
14941 .name = "DebugTypeVector",
14942 .opcode = 6,
14943 .operands = &.{
14944 .{ .kind = .id_ref, .quantifier = .required },
14945 .{ .kind = .literal_integer, .quantifier = .required },
1339214946 },
1339314947 },
1339414948 .{
13395 .name = "native_divide",
13396 .opcode = 82,
13397 .operands = &[_]Operand{
13398 .{ .kind = .IdRef, .quantifier = .required },
13399 .{ .kind = .IdRef, .quantifier = .required },
14949 .name = "DebugTypedef",
14950 .opcode = 7,
14951 .operands = &.{
14952 .{ .kind = .id_ref, .quantifier = .required },
14953 .{ .kind = .id_ref, .quantifier = .required },
14954 .{ .kind = .id_ref, .quantifier = .required },
14955 .{ .kind = .literal_integer, .quantifier = .required },
14956 .{ .kind = .literal_integer, .quantifier = .required },
14957 .{ .kind = .id_ref, .quantifier = .required },
1340014958 },
1340114959 },
1340214960 .{
13403 .name = "native_exp",
13404 .opcode = 83,
13405 .operands = &[_]Operand{
13406 .{ .kind = .IdRef, .quantifier = .required },
14961 .name = "DebugTypeFunction",
14962 .opcode = 8,
14963 .operands = &.{
14964 .{ .kind = .id_ref, .quantifier = .required },
14965 .{ .kind = .id_ref, .quantifier = .variadic },
1340714966 },
1340814967 },
1340914968 .{
13410 .name = "native_exp2",
13411 .opcode = 84,
13412 .operands = &[_]Operand{
13413 .{ .kind = .IdRef, .quantifier = .required },
14969 .name = "DebugTypeEnum",
14970 .opcode = 9,
14971 .operands = &.{
14972 .{ .kind = .id_ref, .quantifier = .required },
14973 .{ .kind = .id_ref, .quantifier = .required },
14974 .{ .kind = .id_ref, .quantifier = .required },
14975 .{ .kind = .literal_integer, .quantifier = .required },
14976 .{ .kind = .literal_integer, .quantifier = .required },
14977 .{ .kind = .id_ref, .quantifier = .required },
14978 .{ .kind = .id_ref, .quantifier = .required },
14979 .{ .kind = .debug_info_debug_info_flags, .quantifier = .required },
14980 .{ .kind = .pair_id_ref_id_ref, .quantifier = .variadic },
1341414981 },
1341514982 },
1341614983 .{
13417 .name = "native_exp10",
13418 .opcode = 85,
13419 .operands = &[_]Operand{
13420 .{ .kind = .IdRef, .quantifier = .required },
14984 .name = "DebugTypeComposite",
14985 .opcode = 10,
14986 .operands = &.{
14987 .{ .kind = .id_ref, .quantifier = .required },
14988 .{ .kind = .debug_info_debug_composite_type, .quantifier = .required },
14989 .{ .kind = .id_ref, .quantifier = .required },
14990 .{ .kind = .literal_integer, .quantifier = .required },
14991 .{ .kind = .literal_integer, .quantifier = .required },
14992 .{ .kind = .id_ref, .quantifier = .required },
14993 .{ .kind = .id_ref, .quantifier = .required },
14994 .{ .kind = .debug_info_debug_info_flags, .quantifier = .required },
14995 .{ .kind = .id_ref, .quantifier = .variadic },
1342114996 },
1342214997 },
1342314998 .{
13424 .name = "native_log",
13425 .opcode = 86,
13426 .operands = &[_]Operand{
13427 .{ .kind = .IdRef, .quantifier = .required },
14999 .name = "DebugTypeMember",
15000 .opcode = 11,
15001 .operands = &.{
15002 .{ .kind = .id_ref, .quantifier = .required },
15003 .{ .kind = .id_ref, .quantifier = .required },
15004 .{ .kind = .id_ref, .quantifier = .required },
15005 .{ .kind = .literal_integer, .quantifier = .required },
15006 .{ .kind = .literal_integer, .quantifier = .required },
15007 .{ .kind = .id_ref, .quantifier = .required },
15008 .{ .kind = .id_ref, .quantifier = .required },
15009 .{ .kind = .id_ref, .quantifier = .required },
15010 .{ .kind = .debug_info_debug_info_flags, .quantifier = .required },
15011 .{ .kind = .id_ref, .quantifier = .optional },
1342815012 },
1342915013 },
1343015014 .{
13431 .name = "native_log2",
13432 .opcode = 87,
13433 .operands = &[_]Operand{
13434 .{ .kind = .IdRef, .quantifier = .required },
15015 .name = "DebugTypeInheritance",
15016 .opcode = 12,
15017 .operands = &.{
15018 .{ .kind = .id_ref, .quantifier = .required },
15019 .{ .kind = .id_ref, .quantifier = .required },
15020 .{ .kind = .id_ref, .quantifier = .required },
15021 .{ .kind = .id_ref, .quantifier = .required },
15022 .{ .kind = .debug_info_debug_info_flags, .quantifier = .required },
1343515023 },
1343615024 },
1343715025 .{
13438 .name = "native_log10",
13439 .opcode = 88,
13440 .operands = &[_]Operand{
13441 .{ .kind = .IdRef, .quantifier = .required },
15026 .name = "DebugTypePtrToMember",
15027 .opcode = 13,
15028 .operands = &.{
15029 .{ .kind = .id_ref, .quantifier = .required },
15030 .{ .kind = .id_ref, .quantifier = .required },
1344215031 },
1344315032 },
1344415033 .{
13445 .name = "native_powr",
13446 .opcode = 89,
13447 .operands = &[_]Operand{
13448 .{ .kind = .IdRef, .quantifier = .required },
13449 .{ .kind = .IdRef, .quantifier = .required },
15034 .name = "DebugTypeTemplate",
15035 .opcode = 14,
15036 .operands = &.{
15037 .{ .kind = .id_ref, .quantifier = .required },
15038 .{ .kind = .id_ref, .quantifier = .variadic },
1345015039 },
1345115040 },
1345215041 .{
13453 .name = "native_recip",
13454 .opcode = 90,
13455 .operands = &[_]Operand{
13456 .{ .kind = .IdRef, .quantifier = .required },
15042 .name = "DebugTypeTemplateParameter",
15043 .opcode = 15,
15044 .operands = &.{
15045 .{ .kind = .id_ref, .quantifier = .required },
15046 .{ .kind = .id_ref, .quantifier = .required },
15047 .{ .kind = .id_ref, .quantifier = .required },
15048 .{ .kind = .id_ref, .quantifier = .required },
15049 .{ .kind = .literal_integer, .quantifier = .required },
15050 .{ .kind = .literal_integer, .quantifier = .required },
1345715051 },
1345815052 },
1345915053 .{
13460 .name = "native_rsqrt",
13461 .opcode = 91,
13462 .operands = &[_]Operand{
13463 .{ .kind = .IdRef, .quantifier = .required },
15054 .name = "DebugTypeTemplateTemplateParameter",
15055 .opcode = 16,
15056 .operands = &.{
15057 .{ .kind = .id_ref, .quantifier = .required },
15058 .{ .kind = .id_ref, .quantifier = .required },
15059 .{ .kind = .id_ref, .quantifier = .required },
15060 .{ .kind = .literal_integer, .quantifier = .required },
15061 .{ .kind = .literal_integer, .quantifier = .required },
1346415062 },
1346515063 },
1346615064 .{
13467 .name = "native_sin",
13468 .opcode = 92,
13469 .operands = &[_]Operand{
13470 .{ .kind = .IdRef, .quantifier = .required },
15065 .name = "DebugTypeTemplateParameterPack",
15066 .opcode = 17,
15067 .operands = &.{
15068 .{ .kind = .id_ref, .quantifier = .required },
15069 .{ .kind = .id_ref, .quantifier = .required },
15070 .{ .kind = .literal_integer, .quantifier = .required },
15071 .{ .kind = .literal_integer, .quantifier = .required },
15072 .{ .kind = .id_ref, .quantifier = .variadic },
1347115073 },
1347215074 },
1347315075 .{
13474 .name = "native_sqrt",
13475 .opcode = 93,
13476 .operands = &[_]Operand{
13477 .{ .kind = .IdRef, .quantifier = .required },
15076 .name = "DebugGlobalVariable",
15077 .opcode = 18,
15078 .operands = &.{
15079 .{ .kind = .id_ref, .quantifier = .required },
15080 .{ .kind = .id_ref, .quantifier = .required },
15081 .{ .kind = .id_ref, .quantifier = .required },
15082 .{ .kind = .literal_integer, .quantifier = .required },
15083 .{ .kind = .literal_integer, .quantifier = .required },
15084 .{ .kind = .id_ref, .quantifier = .required },
15085 .{ .kind = .id_ref, .quantifier = .required },
15086 .{ .kind = .id_ref, .quantifier = .required },
15087 .{ .kind = .debug_info_debug_info_flags, .quantifier = .required },
15088 .{ .kind = .id_ref, .quantifier = .optional },
1347815089 },
1347915090 },
1348015091 .{
13481 .name = "native_tan",
13482 .opcode = 94,
13483 .operands = &[_]Operand{
13484 .{ .kind = .IdRef, .quantifier = .required },
15092 .name = "DebugFunctionDeclaration",
15093 .opcode = 19,
15094 .operands = &.{
15095 .{ .kind = .id_ref, .quantifier = .required },
15096 .{ .kind = .id_ref, .quantifier = .required },
15097 .{ .kind = .id_ref, .quantifier = .required },
15098 .{ .kind = .literal_integer, .quantifier = .required },
15099 .{ .kind = .literal_integer, .quantifier = .required },
15100 .{ .kind = .id_ref, .quantifier = .required },
15101 .{ .kind = .id_ref, .quantifier = .required },
15102 .{ .kind = .debug_info_debug_info_flags, .quantifier = .required },
1348515103 },
1348615104 },
1348715105 .{
13488 .name = "fclamp",
13489 .opcode = 95,
13490 .operands = &[_]Operand{
13491 .{ .kind = .IdRef, .quantifier = .required },
13492 .{ .kind = .IdRef, .quantifier = .required },
13493 .{ .kind = .IdRef, .quantifier = .required },
15106 .name = "DebugFunction",
15107 .opcode = 20,
15108 .operands = &.{
15109 .{ .kind = .id_ref, .quantifier = .required },
15110 .{ .kind = .id_ref, .quantifier = .required },
15111 .{ .kind = .id_ref, .quantifier = .required },
15112 .{ .kind = .literal_integer, .quantifier = .required },
15113 .{ .kind = .literal_integer, .quantifier = .required },
15114 .{ .kind = .id_ref, .quantifier = .required },
15115 .{ .kind = .id_ref, .quantifier = .required },
15116 .{ .kind = .debug_info_debug_info_flags, .quantifier = .required },
15117 .{ .kind = .literal_integer, .quantifier = .required },
15118 .{ .kind = .id_ref, .quantifier = .required },
15119 .{ .kind = .id_ref, .quantifier = .optional },
1349415120 },
1349515121 },
1349615122 .{
13497 .name = "degrees",
13498 .opcode = 96,
13499 .operands = &[_]Operand{
13500 .{ .kind = .IdRef, .quantifier = .required },
15123 .name = "DebugLexicalBlock",
15124 .opcode = 21,
15125 .operands = &.{
15126 .{ .kind = .id_ref, .quantifier = .required },
15127 .{ .kind = .literal_integer, .quantifier = .required },
15128 .{ .kind = .literal_integer, .quantifier = .required },
15129 .{ .kind = .id_ref, .quantifier = .required },
15130 .{ .kind = .id_ref, .quantifier = .optional },
1350115131 },
1350215132 },
1350315133 .{
13504 .name = "fmax_common",
13505 .opcode = 97,
13506 .operands = &[_]Operand{
13507 .{ .kind = .IdRef, .quantifier = .required },
13508 .{ .kind = .IdRef, .quantifier = .required },
15134 .name = "DebugLexicalBlockDiscriminator",
15135 .opcode = 22,
15136 .operands = &.{
15137 .{ .kind = .id_ref, .quantifier = .required },
15138 .{ .kind = .literal_integer, .quantifier = .required },
15139 .{ .kind = .id_ref, .quantifier = .required },
1350915140 },
1351015141 },
1351115142 .{
13512 .name = "fmin_common",
13513 .opcode = 98,
13514 .operands = &[_]Operand{
13515 .{ .kind = .IdRef, .quantifier = .required },
13516 .{ .kind = .IdRef, .quantifier = .required },
15143 .name = "DebugScope",
15144 .opcode = 23,
15145 .operands = &.{
15146 .{ .kind = .id_ref, .quantifier = .required },
15147 .{ .kind = .id_ref, .quantifier = .optional },
1351715148 },
1351815149 },
1351915150 .{
13520 .name = "mix",
13521 .opcode = 99,
13522 .operands = &[_]Operand{
13523 .{ .kind = .IdRef, .quantifier = .required },
13524 .{ .kind = .IdRef, .quantifier = .required },
13525 .{ .kind = .IdRef, .quantifier = .required },
15151 .name = "DebugNoScope",
15152 .opcode = 24,
15153 .operands = &.{},
15154 },
15155 .{
15156 .name = "DebugInlinedAt",
15157 .opcode = 25,
15158 .operands = &.{
15159 .{ .kind = .literal_integer, .quantifier = .required },
15160 .{ .kind = .id_ref, .quantifier = .required },
15161 .{ .kind = .id_ref, .quantifier = .optional },
1352615162 },
1352715163 },
1352815164 .{
13529 .name = "radians",
13530 .opcode = 100,
13531 .operands = &[_]Operand{
13532 .{ .kind = .IdRef, .quantifier = .required },
15165 .name = "DebugLocalVariable",
15166 .opcode = 26,
15167 .operands = &.{
15168 .{ .kind = .id_ref, .quantifier = .required },
15169 .{ .kind = .id_ref, .quantifier = .required },
15170 .{ .kind = .id_ref, .quantifier = .required },
15171 .{ .kind = .literal_integer, .quantifier = .required },
15172 .{ .kind = .literal_integer, .quantifier = .required },
15173 .{ .kind = .id_ref, .quantifier = .required },
15174 .{ .kind = .literal_integer, .quantifier = .optional },
1353315175 },
1353415176 },
1353515177 .{
13536 .name = "step",
13537 .opcode = 101,
13538 .operands = &[_]Operand{
13539 .{ .kind = .IdRef, .quantifier = .required },
13540 .{ .kind = .IdRef, .quantifier = .required },
15178 .name = "DebugInlinedVariable",
15179 .opcode = 27,
15180 .operands = &.{
15181 .{ .kind = .id_ref, .quantifier = .required },
15182 .{ .kind = .id_ref, .quantifier = .required },
1354115183 },
1354215184 },
1354315185 .{
13544 .name = "smoothstep",
13545 .opcode = 102,
13546 .operands = &[_]Operand{
13547 .{ .kind = .IdRef, .quantifier = .required },
13548 .{ .kind = .IdRef, .quantifier = .required },
13549 .{ .kind = .IdRef, .quantifier = .required },
15186 .name = "DebugDeclare",
15187 .opcode = 28,
15188 .operands = &.{
15189 .{ .kind = .id_ref, .quantifier = .required },
15190 .{ .kind = .id_ref, .quantifier = .required },
15191 .{ .kind = .id_ref, .quantifier = .required },
1355015192 },
1355115193 },
1355215194 .{
13553 .name = "sign",
13554 .opcode = 103,
13555 .operands = &[_]Operand{
13556 .{ .kind = .IdRef, .quantifier = .required },
15195 .name = "DebugValue",
15196 .opcode = 29,
15197 .operands = &.{
15198 .{ .kind = .id_ref, .quantifier = .required },
15199 .{ .kind = .id_ref, .quantifier = .required },
15200 .{ .kind = .id_ref, .quantifier = .variadic },
1355715201 },
1355815202 },
1355915203 .{
13560 .name = "cross",
13561 .opcode = 104,
13562 .operands = &[_]Operand{
13563 .{ .kind = .IdRef, .quantifier = .required },
13564 .{ .kind = .IdRef, .quantifier = .required },
15204 .name = "DebugOperation",
15205 .opcode = 30,
15206 .operands = &.{
15207 .{ .kind = .debug_info_debug_operation, .quantifier = .required },
15208 .{ .kind = .literal_integer, .quantifier = .variadic },
1356515209 },
1356615210 },
1356715211 .{
13568 .name = "distance",
13569 .opcode = 105,
13570 .operands = &[_]Operand{
13571 .{ .kind = .IdRef, .quantifier = .required },
13572 .{ .kind = .IdRef, .quantifier = .required },
15212 .name = "DebugExpression",
15213 .opcode = 31,
15214 .operands = &.{
15215 .{ .kind = .id_ref, .quantifier = .variadic },
1357315216 },
1357415217 },
1357515218 .{
13576 .name = "length",
13577 .opcode = 106,
13578 .operands = &[_]Operand{
13579 .{ .kind = .IdRef, .quantifier = .required },
15219 .name = "DebugMacroDef",
15220 .opcode = 32,
15221 .operands = &.{
15222 .{ .kind = .id_ref, .quantifier = .required },
15223 .{ .kind = .literal_integer, .quantifier = .required },
15224 .{ .kind = .id_ref, .quantifier = .required },
15225 .{ .kind = .id_ref, .quantifier = .optional },
1358015226 },
1358115227 },
1358215228 .{
13583 .name = "normalize",
13584 .opcode = 107,
13585 .operands = &[_]Operand{
13586 .{ .kind = .IdRef, .quantifier = .required },
15229 .name = "DebugMacroUndef",
15230 .opcode = 33,
15231 .operands = &.{
15232 .{ .kind = .id_ref, .quantifier = .required },
15233 .{ .kind = .literal_integer, .quantifier = .required },
15234 .{ .kind = .id_ref, .quantifier = .required },
1358715235 },
1358815236 },
15237 },
15238 .non_semantic_debug_break => &.{
1358915239 .{
13590 .name = "fast_distance",
13591 .opcode = 108,
13592 .operands = &[_]Operand{
13593 .{ .kind = .IdRef, .quantifier = .required },
13594 .{ .kind = .IdRef, .quantifier = .required },
15240 .name = "DebugBreak",
15241 .opcode = 1,
15242 .operands = &.{},
15243 },
15244 },
15245 .open_cl_debug_info_100 => &.{
15246 .{
15247 .name = "DebugInfoNone",
15248 .opcode = 0,
15249 .operands = &.{},
15250 },
15251 .{
15252 .name = "DebugCompilationUnit",
15253 .opcode = 1,
15254 .operands = &.{
15255 .{ .kind = .literal_integer, .quantifier = .required },
15256 .{ .kind = .literal_integer, .quantifier = .required },
15257 .{ .kind = .id_ref, .quantifier = .required },
15258 .{ .kind = .source_language, .quantifier = .required },
1359515259 },
1359615260 },
1359715261 .{
13598 .name = "fast_length",
13599 .opcode = 109,
13600 .operands = &[_]Operand{
13601 .{ .kind = .IdRef, .quantifier = .required },
15262 .name = "DebugTypeBasic",
15263 .opcode = 2,
15264 .operands = &.{
15265 .{ .kind = .id_ref, .quantifier = .required },
15266 .{ .kind = .id_ref, .quantifier = .required },
15267 .{ .kind = .open_cl_debug_info_100_debug_base_type_attribute_encoding, .quantifier = .required },
1360215268 },
1360315269 },
1360415270 .{
13605 .name = "fast_normalize",
13606 .opcode = 110,
13607 .operands = &[_]Operand{
13608 .{ .kind = .IdRef, .quantifier = .required },
15271 .name = "DebugTypePointer",
15272 .opcode = 3,
15273 .operands = &.{
15274 .{ .kind = .id_ref, .quantifier = .required },
15275 .{ .kind = .storage_class, .quantifier = .required },
15276 .{ .kind = .open_cl_debug_info_100_debug_info_flags, .quantifier = .required },
1360915277 },
1361015278 },
1361115279 .{
13612 .name = "s_abs",
13613 .opcode = 141,
13614 .operands = &[_]Operand{
13615 .{ .kind = .IdRef, .quantifier = .required },
15280 .name = "DebugTypeQualifier",
15281 .opcode = 4,
15282 .operands = &.{
15283 .{ .kind = .id_ref, .quantifier = .required },
15284 .{ .kind = .open_cl_debug_info_100_debug_type_qualifier, .quantifier = .required },
1361615285 },
1361715286 },
1361815287 .{
13619 .name = "s_abs_diff",
13620 .opcode = 142,
13621 .operands = &[_]Operand{
13622 .{ .kind = .IdRef, .quantifier = .required },
13623 .{ .kind = .IdRef, .quantifier = .required },
15288 .name = "DebugTypeArray",
15289 .opcode = 5,
15290 .operands = &.{
15291 .{ .kind = .id_ref, .quantifier = .required },
15292 .{ .kind = .id_ref, .quantifier = .variadic },
1362415293 },
1362515294 },
1362615295 .{
13627 .name = "s_add_sat",
13628 .opcode = 143,
13629 .operands = &[_]Operand{
13630 .{ .kind = .IdRef, .quantifier = .required },
13631 .{ .kind = .IdRef, .quantifier = .required },
15296 .name = "DebugTypeVector",
15297 .opcode = 6,
15298 .operands = &.{
15299 .{ .kind = .id_ref, .quantifier = .required },
15300 .{ .kind = .literal_integer, .quantifier = .required },
1363215301 },
1363315302 },
1363415303 .{
13635 .name = "u_add_sat",
13636 .opcode = 144,
13637 .operands = &[_]Operand{
13638 .{ .kind = .IdRef, .quantifier = .required },
13639 .{ .kind = .IdRef, .quantifier = .required },
15304 .name = "DebugTypedef",
15305 .opcode = 7,
15306 .operands = &.{
15307 .{ .kind = .id_ref, .quantifier = .required },
15308 .{ .kind = .id_ref, .quantifier = .required },
15309 .{ .kind = .id_ref, .quantifier = .required },
15310 .{ .kind = .literal_integer, .quantifier = .required },
15311 .{ .kind = .literal_integer, .quantifier = .required },
15312 .{ .kind = .id_ref, .quantifier = .required },
1364015313 },
1364115314 },
1364215315 .{
13643 .name = "s_hadd",
13644 .opcode = 145,
13645 .operands = &[_]Operand{
13646 .{ .kind = .IdRef, .quantifier = .required },
13647 .{ .kind = .IdRef, .quantifier = .required },
15316 .name = "DebugTypeFunction",
15317 .opcode = 8,
15318 .operands = &.{
15319 .{ .kind = .open_cl_debug_info_100_debug_info_flags, .quantifier = .required },
15320 .{ .kind = .id_ref, .quantifier = .required },
15321 .{ .kind = .id_ref, .quantifier = .variadic },
1364815322 },
1364915323 },
1365015324 .{
13651 .name = "u_hadd",
13652 .opcode = 146,
13653 .operands = &[_]Operand{
13654 .{ .kind = .IdRef, .quantifier = .required },
13655 .{ .kind = .IdRef, .quantifier = .required },
15325 .name = "DebugTypeEnum",
15326 .opcode = 9,
15327 .operands = &.{
15328 .{ .kind = .id_ref, .quantifier = .required },
15329 .{ .kind = .id_ref, .quantifier = .required },
15330 .{ .kind = .id_ref, .quantifier = .required },
15331 .{ .kind = .literal_integer, .quantifier = .required },
15332 .{ .kind = .literal_integer, .quantifier = .required },
15333 .{ .kind = .id_ref, .quantifier = .required },
15334 .{ .kind = .id_ref, .quantifier = .required },
15335 .{ .kind = .open_cl_debug_info_100_debug_info_flags, .quantifier = .required },
15336 .{ .kind = .pair_id_ref_id_ref, .quantifier = .variadic },
1365615337 },
1365715338 },
1365815339 .{
13659 .name = "s_rhadd",
13660 .opcode = 147,
13661 .operands = &[_]Operand{
13662 .{ .kind = .IdRef, .quantifier = .required },
13663 .{ .kind = .IdRef, .quantifier = .required },
15340 .name = "DebugTypeComposite",
15341 .opcode = 10,
15342 .operands = &.{
15343 .{ .kind = .id_ref, .quantifier = .required },
15344 .{ .kind = .open_cl_debug_info_100_debug_composite_type, .quantifier = .required },
15345 .{ .kind = .id_ref, .quantifier = .required },
15346 .{ .kind = .literal_integer, .quantifier = .required },
15347 .{ .kind = .literal_integer, .quantifier = .required },
15348 .{ .kind = .id_ref, .quantifier = .required },
15349 .{ .kind = .id_ref, .quantifier = .required },
15350 .{ .kind = .id_ref, .quantifier = .required },
15351 .{ .kind = .open_cl_debug_info_100_debug_info_flags, .quantifier = .required },
15352 .{ .kind = .id_ref, .quantifier = .variadic },
1366415353 },
1366515354 },
1366615355 .{
13667 .name = "u_rhadd",
13668 .opcode = 148,
13669 .operands = &[_]Operand{
13670 .{ .kind = .IdRef, .quantifier = .required },
13671 .{ .kind = .IdRef, .quantifier = .required },
15356 .name = "DebugTypeMember",
15357 .opcode = 11,
15358 .operands = &.{
15359 .{ .kind = .id_ref, .quantifier = .required },
15360 .{ .kind = .id_ref, .quantifier = .required },
15361 .{ .kind = .id_ref, .quantifier = .required },
15362 .{ .kind = .literal_integer, .quantifier = .required },
15363 .{ .kind = .literal_integer, .quantifier = .required },
15364 .{ .kind = .id_ref, .quantifier = .required },
15365 .{ .kind = .id_ref, .quantifier = .required },
15366 .{ .kind = .id_ref, .quantifier = .required },
15367 .{ .kind = .open_cl_debug_info_100_debug_info_flags, .quantifier = .required },
15368 .{ .kind = .id_ref, .quantifier = .optional },
1367215369 },
1367315370 },
1367415371 .{
13675 .name = "s_clamp",
13676 .opcode = 149,
13677 .operands = &[_]Operand{
13678 .{ .kind = .IdRef, .quantifier = .required },
13679 .{ .kind = .IdRef, .quantifier = .required },
13680 .{ .kind = .IdRef, .quantifier = .required },
15372 .name = "DebugTypeInheritance",
15373 .opcode = 12,
15374 .operands = &.{
15375 .{ .kind = .id_ref, .quantifier = .required },
15376 .{ .kind = .id_ref, .quantifier = .required },
15377 .{ .kind = .id_ref, .quantifier = .required },
15378 .{ .kind = .id_ref, .quantifier = .required },
15379 .{ .kind = .open_cl_debug_info_100_debug_info_flags, .quantifier = .required },
1368115380 },
1368215381 },
1368315382 .{
13684 .name = "u_clamp",
13685 .opcode = 150,
13686 .operands = &[_]Operand{
13687 .{ .kind = .IdRef, .quantifier = .required },
13688 .{ .kind = .IdRef, .quantifier = .required },
13689 .{ .kind = .IdRef, .quantifier = .required },
15383 .name = "DebugTypePtrToMember",
15384 .opcode = 13,
15385 .operands = &.{
15386 .{ .kind = .id_ref, .quantifier = .required },
15387 .{ .kind = .id_ref, .quantifier = .required },
1369015388 },
1369115389 },
1369215390 .{
13693 .name = "clz",
13694 .opcode = 151,
13695 .operands = &[_]Operand{
13696 .{ .kind = .IdRef, .quantifier = .required },
15391 .name = "DebugTypeTemplate",
15392 .opcode = 14,
15393 .operands = &.{
15394 .{ .kind = .id_ref, .quantifier = .required },
15395 .{ .kind = .id_ref, .quantifier = .variadic },
1369715396 },
1369815397 },
1369915398 .{
13700 .name = "ctz",
13701 .opcode = 152,
13702 .operands = &[_]Operand{
13703 .{ .kind = .IdRef, .quantifier = .required },
15399 .name = "DebugTypeTemplateParameter",
15400 .opcode = 15,
15401 .operands = &.{
15402 .{ .kind = .id_ref, .quantifier = .required },
15403 .{ .kind = .id_ref, .quantifier = .required },
15404 .{ .kind = .id_ref, .quantifier = .required },
15405 .{ .kind = .id_ref, .quantifier = .required },
15406 .{ .kind = .literal_integer, .quantifier = .required },
15407 .{ .kind = .literal_integer, .quantifier = .required },
1370415408 },
1370515409 },
1370615410 .{
13707 .name = "s_mad_hi",
13708 .opcode = 153,
13709 .operands = &[_]Operand{
13710 .{ .kind = .IdRef, .quantifier = .required },
13711 .{ .kind = .IdRef, .quantifier = .required },
13712 .{ .kind = .IdRef, .quantifier = .required },
15411 .name = "DebugTypeTemplateTemplateParameter",
15412 .opcode = 16,
15413 .operands = &.{
15414 .{ .kind = .id_ref, .quantifier = .required },
15415 .{ .kind = .id_ref, .quantifier = .required },
15416 .{ .kind = .id_ref, .quantifier = .required },
15417 .{ .kind = .literal_integer, .quantifier = .required },
15418 .{ .kind = .literal_integer, .quantifier = .required },
1371315419 },
1371415420 },
1371515421 .{
13716 .name = "u_mad_sat",
13717 .opcode = 154,
13718 .operands = &[_]Operand{
13719 .{ .kind = .IdRef, .quantifier = .required },
13720 .{ .kind = .IdRef, .quantifier = .required },
13721 .{ .kind = .IdRef, .quantifier = .required },
15422 .name = "DebugTypeTemplateParameterPack",
15423 .opcode = 17,
15424 .operands = &.{
15425 .{ .kind = .id_ref, .quantifier = .required },
15426 .{ .kind = .id_ref, .quantifier = .required },
15427 .{ .kind = .literal_integer, .quantifier = .required },
15428 .{ .kind = .literal_integer, .quantifier = .required },
15429 .{ .kind = .id_ref, .quantifier = .variadic },
1372215430 },
1372315431 },
1372415432 .{
13725 .name = "s_mad_sat",
13726 .opcode = 155,
13727 .operands = &[_]Operand{
13728 .{ .kind = .IdRef, .quantifier = .required },
13729 .{ .kind = .IdRef, .quantifier = .required },
13730 .{ .kind = .IdRef, .quantifier = .required },
15433 .name = "DebugGlobalVariable",
15434 .opcode = 18,
15435 .operands = &.{
15436 .{ .kind = .id_ref, .quantifier = .required },
15437 .{ .kind = .id_ref, .quantifier = .required },
15438 .{ .kind = .id_ref, .quantifier = .required },
15439 .{ .kind = .literal_integer, .quantifier = .required },
15440 .{ .kind = .literal_integer, .quantifier = .required },
15441 .{ .kind = .id_ref, .quantifier = .required },
15442 .{ .kind = .id_ref, .quantifier = .required },
15443 .{ .kind = .id_ref, .quantifier = .required },
15444 .{ .kind = .open_cl_debug_info_100_debug_info_flags, .quantifier = .required },
15445 .{ .kind = .id_ref, .quantifier = .optional },
1373115446 },
1373215447 },
1373315448 .{
13734 .name = "s_max",
13735 .opcode = 156,
13736 .operands = &[_]Operand{
13737 .{ .kind = .IdRef, .quantifier = .required },
13738 .{ .kind = .IdRef, .quantifier = .required },
15449 .name = "DebugFunctionDeclaration",
15450 .opcode = 19,
15451 .operands = &.{
15452 .{ .kind = .id_ref, .quantifier = .required },
15453 .{ .kind = .id_ref, .quantifier = .required },
15454 .{ .kind = .id_ref, .quantifier = .required },
15455 .{ .kind = .literal_integer, .quantifier = .required },
15456 .{ .kind = .literal_integer, .quantifier = .required },
15457 .{ .kind = .id_ref, .quantifier = .required },
15458 .{ .kind = .id_ref, .quantifier = .required },
15459 .{ .kind = .open_cl_debug_info_100_debug_info_flags, .quantifier = .required },
1373915460 },
1374015461 },
1374115462 .{
13742 .name = "u_max",
13743 .opcode = 157,
13744 .operands = &[_]Operand{
13745 .{ .kind = .IdRef, .quantifier = .required },
13746 .{ .kind = .IdRef, .quantifier = .required },
15463 .name = "DebugFunction",
15464 .opcode = 20,
15465 .operands = &.{
15466 .{ .kind = .id_ref, .quantifier = .required },
15467 .{ .kind = .id_ref, .quantifier = .required },
15468 .{ .kind = .id_ref, .quantifier = .required },
15469 .{ .kind = .literal_integer, .quantifier = .required },
15470 .{ .kind = .literal_integer, .quantifier = .required },
15471 .{ .kind = .id_ref, .quantifier = .required },
15472 .{ .kind = .id_ref, .quantifier = .required },
15473 .{ .kind = .open_cl_debug_info_100_debug_info_flags, .quantifier = .required },
15474 .{ .kind = .literal_integer, .quantifier = .required },
15475 .{ .kind = .id_ref, .quantifier = .required },
15476 .{ .kind = .id_ref, .quantifier = .optional },
1374715477 },
1374815478 },
1374915479 .{
13750 .name = "s_min",
13751 .opcode = 158,
13752 .operands = &[_]Operand{
13753 .{ .kind = .IdRef, .quantifier = .required },
13754 .{ .kind = .IdRef, .quantifier = .required },
15480 .name = "DebugLexicalBlock",
15481 .opcode = 21,
15482 .operands = &.{
15483 .{ .kind = .id_ref, .quantifier = .required },
15484 .{ .kind = .literal_integer, .quantifier = .required },
15485 .{ .kind = .literal_integer, .quantifier = .required },
15486 .{ .kind = .id_ref, .quantifier = .required },
15487 .{ .kind = .id_ref, .quantifier = .optional },
1375515488 },
1375615489 },
1375715490 .{
13758 .name = "u_min",
13759 .opcode = 159,
13760 .operands = &[_]Operand{
13761 .{ .kind = .IdRef, .quantifier = .required },
13762 .{ .kind = .IdRef, .quantifier = .required },
15491 .name = "DebugLexicalBlockDiscriminator",
15492 .opcode = 22,
15493 .operands = &.{
15494 .{ .kind = .id_ref, .quantifier = .required },
15495 .{ .kind = .literal_integer, .quantifier = .required },
15496 .{ .kind = .id_ref, .quantifier = .required },
1376315497 },
1376415498 },
1376515499 .{
13766 .name = "s_mul_hi",
13767 .opcode = 160,
13768 .operands = &[_]Operand{
13769 .{ .kind = .IdRef, .quantifier = .required },
13770 .{ .kind = .IdRef, .quantifier = .required },
15500 .name = "DebugScope",
15501 .opcode = 23,
15502 .operands = &.{
15503 .{ .kind = .id_ref, .quantifier = .required },
15504 .{ .kind = .id_ref, .quantifier = .optional },
1377115505 },
1377215506 },
1377315507 .{
13774 .name = "rotate",
13775 .opcode = 161,
13776 .operands = &[_]Operand{
13777 .{ .kind = .IdRef, .quantifier = .required },
13778 .{ .kind = .IdRef, .quantifier = .required },
15508 .name = "DebugNoScope",
15509 .opcode = 24,
15510 .operands = &.{},
15511 },
15512 .{
15513 .name = "DebugInlinedAt",
15514 .opcode = 25,
15515 .operands = &.{
15516 .{ .kind = .literal_integer, .quantifier = .required },
15517 .{ .kind = .id_ref, .quantifier = .required },
15518 .{ .kind = .id_ref, .quantifier = .optional },
1377915519 },
1378015520 },
1378115521 .{
13782 .name = "s_sub_sat",
13783 .opcode = 162,
13784 .operands = &[_]Operand{
13785 .{ .kind = .IdRef, .quantifier = .required },
13786 .{ .kind = .IdRef, .quantifier = .required },
15522 .name = "DebugLocalVariable",
15523 .opcode = 26,
15524 .operands = &.{
15525 .{ .kind = .id_ref, .quantifier = .required },
15526 .{ .kind = .id_ref, .quantifier = .required },
15527 .{ .kind = .id_ref, .quantifier = .required },
15528 .{ .kind = .literal_integer, .quantifier = .required },
15529 .{ .kind = .literal_integer, .quantifier = .required },
15530 .{ .kind = .id_ref, .quantifier = .required },
15531 .{ .kind = .open_cl_debug_info_100_debug_info_flags, .quantifier = .required },
15532 .{ .kind = .literal_integer, .quantifier = .optional },
1378715533 },
1378815534 },
1378915535 .{
13790 .name = "u_sub_sat",
13791 .opcode = 163,
13792 .operands = &[_]Operand{
13793 .{ .kind = .IdRef, .quantifier = .required },
13794 .{ .kind = .IdRef, .quantifier = .required },
15536 .name = "DebugInlinedVariable",
15537 .opcode = 27,
15538 .operands = &.{
15539 .{ .kind = .id_ref, .quantifier = .required },
15540 .{ .kind = .id_ref, .quantifier = .required },
1379515541 },
1379615542 },
1379715543 .{
13798 .name = "u_upsample",
13799 .opcode = 164,
13800 .operands = &[_]Operand{
13801 .{ .kind = .IdRef, .quantifier = .required },
13802 .{ .kind = .IdRef, .quantifier = .required },
15544 .name = "DebugDeclare",
15545 .opcode = 28,
15546 .operands = &.{
15547 .{ .kind = .id_ref, .quantifier = .required },
15548 .{ .kind = .id_ref, .quantifier = .required },
15549 .{ .kind = .id_ref, .quantifier = .required },
1380315550 },
1380415551 },
1380515552 .{
13806 .name = "s_upsample",
13807 .opcode = 165,
13808 .operands = &[_]Operand{
13809 .{ .kind = .IdRef, .quantifier = .required },
13810 .{ .kind = .IdRef, .quantifier = .required },
15553 .name = "DebugValue",
15554 .opcode = 29,
15555 .operands = &.{
15556 .{ .kind = .id_ref, .quantifier = .required },
15557 .{ .kind = .id_ref, .quantifier = .required },
15558 .{ .kind = .id_ref, .quantifier = .required },
15559 .{ .kind = .id_ref, .quantifier = .variadic },
1381115560 },
1381215561 },
1381315562 .{
13814 .name = "popcount",
13815 .opcode = 166,
13816 .operands = &[_]Operand{
13817 .{ .kind = .IdRef, .quantifier = .required },
15563 .name = "DebugOperation",
15564 .opcode = 30,
15565 .operands = &.{
15566 .{ .kind = .open_cl_debug_info_100_debug_operation, .quantifier = .required },
15567 .{ .kind = .literal_integer, .quantifier = .variadic },
1381815568 },
1381915569 },
1382015570 .{
13821 .name = "s_mad24",
13822 .opcode = 167,
13823 .operands = &[_]Operand{
13824 .{ .kind = .IdRef, .quantifier = .required },
13825 .{ .kind = .IdRef, .quantifier = .required },
13826 .{ .kind = .IdRef, .quantifier = .required },
15571 .name = "DebugExpression",
15572 .opcode = 31,
15573 .operands = &.{
15574 .{ .kind = .id_ref, .quantifier = .variadic },
1382715575 },
1382815576 },
1382915577 .{
13830 .name = "u_mad24",
13831 .opcode = 168,
13832 .operands = &[_]Operand{
13833 .{ .kind = .IdRef, .quantifier = .required },
13834 .{ .kind = .IdRef, .quantifier = .required },
13835 .{ .kind = .IdRef, .quantifier = .required },
15578 .name = "DebugMacroDef",
15579 .opcode = 32,
15580 .operands = &.{
15581 .{ .kind = .id_ref, .quantifier = .required },
15582 .{ .kind = .literal_integer, .quantifier = .required },
15583 .{ .kind = .id_ref, .quantifier = .required },
15584 .{ .kind = .id_ref, .quantifier = .optional },
1383615585 },
1383715586 },
1383815587 .{
13839 .name = "s_mul24",
13840 .opcode = 169,
13841 .operands = &[_]Operand{
13842 .{ .kind = .IdRef, .quantifier = .required },
13843 .{ .kind = .IdRef, .quantifier = .required },
15588 .name = "DebugMacroUndef",
15589 .opcode = 33,
15590 .operands = &.{
15591 .{ .kind = .id_ref, .quantifier = .required },
15592 .{ .kind = .literal_integer, .quantifier = .required },
15593 .{ .kind = .id_ref, .quantifier = .required },
1384415594 },
1384515595 },
1384615596 .{
13847 .name = "u_mul24",
13848 .opcode = 170,
13849 .operands = &[_]Operand{
13850 .{ .kind = .IdRef, .quantifier = .required },
13851 .{ .kind = .IdRef, .quantifier = .required },
15597 .name = "DebugImportedEntity",
15598 .opcode = 34,
15599 .operands = &.{
15600 .{ .kind = .id_ref, .quantifier = .required },
15601 .{ .kind = .open_cl_debug_info_100_debug_imported_entity, .quantifier = .required },
15602 .{ .kind = .id_ref, .quantifier = .required },
15603 .{ .kind = .id_ref, .quantifier = .required },
15604 .{ .kind = .literal_integer, .quantifier = .required },
15605 .{ .kind = .literal_integer, .quantifier = .required },
15606 .{ .kind = .id_ref, .quantifier = .required },
1385215607 },
1385315608 },
1385415609 .{
13855 .name = "vloadn",
13856 .opcode = 171,
13857 .operands = &[_]Operand{
13858 .{ .kind = .IdRef, .quantifier = .required },
13859 .{ .kind = .IdRef, .quantifier = .required },
13860 .{ .kind = .LiteralInteger, .quantifier = .required },
15610 .name = "DebugSource",
15611 .opcode = 35,
15612 .operands = &.{
15613 .{ .kind = .id_ref, .quantifier = .required },
15614 .{ .kind = .id_ref, .quantifier = .optional },
1386115615 },
1386215616 },
1386315617 .{
13864 .name = "vstoren",
13865 .opcode = 172,
13866 .operands = &[_]Operand{
13867 .{ .kind = .IdRef, .quantifier = .required },
13868 .{ .kind = .IdRef, .quantifier = .required },
13869 .{ .kind = .IdRef, .quantifier = .required },
15618 .name = "DebugModuleINTEL",
15619 .opcode = 36,
15620 .operands = &.{
15621 .{ .kind = .id_ref, .quantifier = .required },
15622 .{ .kind = .id_ref, .quantifier = .required },
15623 .{ .kind = .id_ref, .quantifier = .required },
15624 .{ .kind = .literal_integer, .quantifier = .required },
15625 .{ .kind = .id_ref, .quantifier = .required },
15626 .{ .kind = .id_ref, .quantifier = .required },
15627 .{ .kind = .id_ref, .quantifier = .required },
15628 .{ .kind = .literal_integer, .quantifier = .required },
1387015629 },
1387115630 },
15631 },
15632 .non_semantic_clspv_reflection_6 => &.{
1387215633 .{
13873 .name = "vload_half",
13874 .opcode = 173,
13875 .operands = &[_]Operand{
13876 .{ .kind = .IdRef, .quantifier = .required },
13877 .{ .kind = .IdRef, .quantifier = .required },
15634 .name = "Kernel",
15635 .opcode = 1,
15636 .operands = &.{
15637 .{ .kind = .id_ref, .quantifier = .required },
15638 .{ .kind = .id_ref, .quantifier = .required },
15639 .{ .kind = .id_ref, .quantifier = .optional },
15640 .{ .kind = .id_ref, .quantifier = .optional },
15641 .{ .kind = .id_ref, .quantifier = .optional },
1387815642 },
1387915643 },
1388015644 .{
13881 .name = "vload_halfn",
13882 .opcode = 174,
13883 .operands = &[_]Operand{
13884 .{ .kind = .IdRef, .quantifier = .required },
13885 .{ .kind = .IdRef, .quantifier = .required },
13886 .{ .kind = .LiteralInteger, .quantifier = .required },
15645 .name = "ArgumentInfo",
15646 .opcode = 2,
15647 .operands = &.{
15648 .{ .kind = .id_ref, .quantifier = .required },
15649 .{ .kind = .id_ref, .quantifier = .optional },
15650 .{ .kind = .id_ref, .quantifier = .optional },
15651 .{ .kind = .id_ref, .quantifier = .optional },
15652 .{ .kind = .id_ref, .quantifier = .optional },
1388715653 },
1388815654 },
1388915655 .{
13890 .name = "vstore_half",
13891 .opcode = 175,
13892 .operands = &[_]Operand{
13893 .{ .kind = .IdRef, .quantifier = .required },
13894 .{ .kind = .IdRef, .quantifier = .required },
13895 .{ .kind = .IdRef, .quantifier = .required },
15656 .name = "ArgumentStorageBuffer",
15657 .opcode = 3,
15658 .operands = &.{
15659 .{ .kind = .id_ref, .quantifier = .required },
15660 .{ .kind = .id_ref, .quantifier = .required },
15661 .{ .kind = .id_ref, .quantifier = .required },
15662 .{ .kind = .id_ref, .quantifier = .required },
15663 .{ .kind = .id_ref, .quantifier = .optional },
1389615664 },
1389715665 },
1389815666 .{
13899 .name = "vstore_half_r",
13900 .opcode = 176,
13901 .operands = &[_]Operand{
13902 .{ .kind = .IdRef, .quantifier = .required },
13903 .{ .kind = .IdRef, .quantifier = .required },
13904 .{ .kind = .IdRef, .quantifier = .required },
13905 .{ .kind = .FPRoundingMode, .quantifier = .required },
15667 .name = "ArgumentUniform",
15668 .opcode = 4,
15669 .operands = &.{
15670 .{ .kind = .id_ref, .quantifier = .required },
15671 .{ .kind = .id_ref, .quantifier = .required },
15672 .{ .kind = .id_ref, .quantifier = .required },
15673 .{ .kind = .id_ref, .quantifier = .required },
15674 .{ .kind = .id_ref, .quantifier = .optional },
15675 },
15676 },
15677 .{
15678 .name = "ArgumentPodStorageBuffer",
15679 .opcode = 5,
15680 .operands = &.{
15681 .{ .kind = .id_ref, .quantifier = .required },
15682 .{ .kind = .id_ref, .quantifier = .required },
15683 .{ .kind = .id_ref, .quantifier = .required },
15684 .{ .kind = .id_ref, .quantifier = .required },
15685 .{ .kind = .id_ref, .quantifier = .required },
15686 .{ .kind = .id_ref, .quantifier = .required },
15687 .{ .kind = .id_ref, .quantifier = .optional },
15688 },
15689 },
15690 .{
15691 .name = "ArgumentPodUniform",
15692 .opcode = 6,
15693 .operands = &.{
15694 .{ .kind = .id_ref, .quantifier = .required },
15695 .{ .kind = .id_ref, .quantifier = .required },
15696 .{ .kind = .id_ref, .quantifier = .required },
15697 .{ .kind = .id_ref, .quantifier = .required },
15698 .{ .kind = .id_ref, .quantifier = .required },
15699 .{ .kind = .id_ref, .quantifier = .required },
15700 .{ .kind = .id_ref, .quantifier = .optional },
15701 },
15702 },
15703 .{
15704 .name = "ArgumentPodPushConstant",
15705 .opcode = 7,
15706 .operands = &.{
15707 .{ .kind = .id_ref, .quantifier = .required },
15708 .{ .kind = .id_ref, .quantifier = .required },
15709 .{ .kind = .id_ref, .quantifier = .required },
15710 .{ .kind = .id_ref, .quantifier = .required },
15711 .{ .kind = .id_ref, .quantifier = .optional },
15712 },
15713 },
15714 .{
15715 .name = "ArgumentSampledImage",
15716 .opcode = 8,
15717 .operands = &.{
15718 .{ .kind = .id_ref, .quantifier = .required },
15719 .{ .kind = .id_ref, .quantifier = .required },
15720 .{ .kind = .id_ref, .quantifier = .required },
15721 .{ .kind = .id_ref, .quantifier = .required },
15722 .{ .kind = .id_ref, .quantifier = .optional },
15723 },
15724 },
15725 .{
15726 .name = "ArgumentStorageImage",
15727 .opcode = 9,
15728 .operands = &.{
15729 .{ .kind = .id_ref, .quantifier = .required },
15730 .{ .kind = .id_ref, .quantifier = .required },
15731 .{ .kind = .id_ref, .quantifier = .required },
15732 .{ .kind = .id_ref, .quantifier = .required },
15733 .{ .kind = .id_ref, .quantifier = .optional },
15734 },
15735 },
15736 .{
15737 .name = "ArgumentSampler",
15738 .opcode = 10,
15739 .operands = &.{
15740 .{ .kind = .id_ref, .quantifier = .required },
15741 .{ .kind = .id_ref, .quantifier = .required },
15742 .{ .kind = .id_ref, .quantifier = .required },
15743 .{ .kind = .id_ref, .quantifier = .required },
15744 .{ .kind = .id_ref, .quantifier = .optional },
15745 },
15746 },
15747 .{
15748 .name = "ArgumentWorkgroup",
15749 .opcode = 11,
15750 .operands = &.{
15751 .{ .kind = .id_ref, .quantifier = .required },
15752 .{ .kind = .id_ref, .quantifier = .required },
15753 .{ .kind = .id_ref, .quantifier = .required },
15754 .{ .kind = .id_ref, .quantifier = .required },
15755 .{ .kind = .id_ref, .quantifier = .optional },
15756 },
15757 },
15758 .{
15759 .name = "SpecConstantWorkgroupSize",
15760 .opcode = 12,
15761 .operands = &.{
15762 .{ .kind = .id_ref, .quantifier = .required },
15763 .{ .kind = .id_ref, .quantifier = .required },
15764 .{ .kind = .id_ref, .quantifier = .required },
15765 },
15766 },
15767 .{
15768 .name = "SpecConstantGlobalOffset",
15769 .opcode = 13,
15770 .operands = &.{
15771 .{ .kind = .id_ref, .quantifier = .required },
15772 .{ .kind = .id_ref, .quantifier = .required },
15773 .{ .kind = .id_ref, .quantifier = .required },
15774 },
15775 },
15776 .{
15777 .name = "SpecConstantWorkDim",
15778 .opcode = 14,
15779 .operands = &.{
15780 .{ .kind = .id_ref, .quantifier = .required },
15781 },
15782 },
15783 .{
15784 .name = "PushConstantGlobalOffset",
15785 .opcode = 15,
15786 .operands = &.{
15787 .{ .kind = .id_ref, .quantifier = .required },
15788 .{ .kind = .id_ref, .quantifier = .required },
15789 },
15790 },
15791 .{
15792 .name = "PushConstantEnqueuedLocalSize",
15793 .opcode = 16,
15794 .operands = &.{
15795 .{ .kind = .id_ref, .quantifier = .required },
15796 .{ .kind = .id_ref, .quantifier = .required },
15797 },
15798 },
15799 .{
15800 .name = "PushConstantGlobalSize",
15801 .opcode = 17,
15802 .operands = &.{
15803 .{ .kind = .id_ref, .quantifier = .required },
15804 .{ .kind = .id_ref, .quantifier = .required },
15805 },
15806 },
15807 .{
15808 .name = "PushConstantRegionOffset",
15809 .opcode = 18,
15810 .operands = &.{
15811 .{ .kind = .id_ref, .quantifier = .required },
15812 .{ .kind = .id_ref, .quantifier = .required },
15813 },
15814 },
15815 .{
15816 .name = "PushConstantNumWorkgroups",
15817 .opcode = 19,
15818 .operands = &.{
15819 .{ .kind = .id_ref, .quantifier = .required },
15820 .{ .kind = .id_ref, .quantifier = .required },
15821 },
15822 },
15823 .{
15824 .name = "PushConstantRegionGroupOffset",
15825 .opcode = 20,
15826 .operands = &.{
15827 .{ .kind = .id_ref, .quantifier = .required },
15828 .{ .kind = .id_ref, .quantifier = .required },
15829 },
15830 },
15831 .{
15832 .name = "ConstantDataStorageBuffer",
15833 .opcode = 21,
15834 .operands = &.{
15835 .{ .kind = .id_ref, .quantifier = .required },
15836 .{ .kind = .id_ref, .quantifier = .required },
15837 .{ .kind = .id_ref, .quantifier = .required },
15838 },
15839 },
15840 .{
15841 .name = "ConstantDataUniform",
15842 .opcode = 22,
15843 .operands = &.{
15844 .{ .kind = .id_ref, .quantifier = .required },
15845 .{ .kind = .id_ref, .quantifier = .required },
15846 .{ .kind = .id_ref, .quantifier = .required },
15847 },
15848 },
15849 .{
15850 .name = "LiteralSampler",
15851 .opcode = 23,
15852 .operands = &.{
15853 .{ .kind = .id_ref, .quantifier = .required },
15854 .{ .kind = .id_ref, .quantifier = .required },
15855 .{ .kind = .id_ref, .quantifier = .required },
15856 },
15857 },
15858 .{
15859 .name = "PropertyRequiredWorkgroupSize",
15860 .opcode = 24,
15861 .operands = &.{
15862 .{ .kind = .id_ref, .quantifier = .required },
15863 .{ .kind = .id_ref, .quantifier = .required },
15864 .{ .kind = .id_ref, .quantifier = .required },
15865 .{ .kind = .id_ref, .quantifier = .required },
15866 },
15867 },
15868 .{
15869 .name = "SpecConstantSubgroupMaxSize",
15870 .opcode = 25,
15871 .operands = &.{
15872 .{ .kind = .id_ref, .quantifier = .required },
15873 },
15874 },
15875 .{
15876 .name = "ArgumentPointerPushConstant",
15877 .opcode = 26,
15878 .operands = &.{
15879 .{ .kind = .id_ref, .quantifier = .required },
15880 .{ .kind = .id_ref, .quantifier = .required },
15881 .{ .kind = .id_ref, .quantifier = .required },
15882 .{ .kind = .id_ref, .quantifier = .required },
15883 .{ .kind = .id_ref, .quantifier = .optional },
15884 },
15885 },
15886 .{
15887 .name = "ArgumentPointerUniform",
15888 .opcode = 27,
15889 .operands = &.{
15890 .{ .kind = .id_ref, .quantifier = .required },
15891 .{ .kind = .id_ref, .quantifier = .required },
15892 .{ .kind = .id_ref, .quantifier = .required },
15893 .{ .kind = .id_ref, .quantifier = .required },
15894 .{ .kind = .id_ref, .quantifier = .required },
15895 .{ .kind = .id_ref, .quantifier = .required },
15896 .{ .kind = .id_ref, .quantifier = .optional },
1390615897 },
1390715898 },
1390815899 .{
13909 .name = "vstore_halfn",
13910 .opcode = 177,
13911 .operands = &[_]Operand{
13912 .{ .kind = .IdRef, .quantifier = .required },
13913 .{ .kind = .IdRef, .quantifier = .required },
13914 .{ .kind = .IdRef, .quantifier = .required },
15900 .name = "ProgramScopeVariablesStorageBuffer",
15901 .opcode = 28,
15902 .operands = &.{
15903 .{ .kind = .id_ref, .quantifier = .required },
15904 .{ .kind = .id_ref, .quantifier = .required },
15905 .{ .kind = .id_ref, .quantifier = .required },
1391515906 },
1391615907 },
1391715908 .{
13918 .name = "vstore_halfn_r",
13919 .opcode = 178,
13920 .operands = &[_]Operand{
13921 .{ .kind = .IdRef, .quantifier = .required },
13922 .{ .kind = .IdRef, .quantifier = .required },
13923 .{ .kind = .IdRef, .quantifier = .required },
13924 .{ .kind = .FPRoundingMode, .quantifier = .required },
15909 .name = "ProgramScopeVariablePointerRelocation",
15910 .opcode = 29,
15911 .operands = &.{
15912 .{ .kind = .id_ref, .quantifier = .required },
15913 .{ .kind = .id_ref, .quantifier = .required },
15914 .{ .kind = .id_ref, .quantifier = .required },
1392515915 },
1392615916 },
1392715917 .{
13928 .name = "vloada_halfn",
13929 .opcode = 179,
13930 .operands = &[_]Operand{
13931 .{ .kind = .IdRef, .quantifier = .required },
13932 .{ .kind = .IdRef, .quantifier = .required },
13933 .{ .kind = .LiteralInteger, .quantifier = .required },
15918 .name = "ImageArgumentInfoChannelOrderPushConstant",
15919 .opcode = 30,
15920 .operands = &.{
15921 .{ .kind = .id_ref, .quantifier = .required },
15922 .{ .kind = .id_ref, .quantifier = .required },
15923 .{ .kind = .id_ref, .quantifier = .required },
15924 .{ .kind = .id_ref, .quantifier = .required },
1393415925 },
1393515926 },
1393615927 .{
13937 .name = "vstorea_halfn",
13938 .opcode = 180,
13939 .operands = &[_]Operand{
13940 .{ .kind = .IdRef, .quantifier = .required },
13941 .{ .kind = .IdRef, .quantifier = .required },
13942 .{ .kind = .IdRef, .quantifier = .required },
15928 .name = "ImageArgumentInfoChannelDataTypePushConstant",
15929 .opcode = 31,
15930 .operands = &.{
15931 .{ .kind = .id_ref, .quantifier = .required },
15932 .{ .kind = .id_ref, .quantifier = .required },
15933 .{ .kind = .id_ref, .quantifier = .required },
15934 .{ .kind = .id_ref, .quantifier = .required },
1394315935 },
1394415936 },
1394515937 .{
13946 .name = "vstorea_halfn_r",
13947 .opcode = 181,
13948 .operands = &[_]Operand{
13949 .{ .kind = .IdRef, .quantifier = .required },
13950 .{ .kind = .IdRef, .quantifier = .required },
13951 .{ .kind = .IdRef, .quantifier = .required },
13952 .{ .kind = .FPRoundingMode, .quantifier = .required },
15938 .name = "ImageArgumentInfoChannelOrderUniform",
15939 .opcode = 32,
15940 .operands = &.{
15941 .{ .kind = .id_ref, .quantifier = .required },
15942 .{ .kind = .id_ref, .quantifier = .required },
15943 .{ .kind = .id_ref, .quantifier = .required },
15944 .{ .kind = .id_ref, .quantifier = .required },
15945 .{ .kind = .id_ref, .quantifier = .required },
15946 .{ .kind = .id_ref, .quantifier = .required },
1395315947 },
1395415948 },
1395515949 .{
13956 .name = "shuffle",
13957 .opcode = 182,
13958 .operands = &[_]Operand{
13959 .{ .kind = .IdRef, .quantifier = .required },
13960 .{ .kind = .IdRef, .quantifier = .required },
15950 .name = "ImageArgumentInfoChannelDataTypeUniform",
15951 .opcode = 33,
15952 .operands = &.{
15953 .{ .kind = .id_ref, .quantifier = .required },
15954 .{ .kind = .id_ref, .quantifier = .required },
15955 .{ .kind = .id_ref, .quantifier = .required },
15956 .{ .kind = .id_ref, .quantifier = .required },
15957 .{ .kind = .id_ref, .quantifier = .required },
15958 .{ .kind = .id_ref, .quantifier = .required },
1396115959 },
1396215960 },
1396315961 .{
13964 .name = "shuffle2",
13965 .opcode = 183,
13966 .operands = &[_]Operand{
13967 .{ .kind = .IdRef, .quantifier = .required },
13968 .{ .kind = .IdRef, .quantifier = .required },
13969 .{ .kind = .IdRef, .quantifier = .required },
15962 .name = "ArgumentStorageTexelBuffer",
15963 .opcode = 34,
15964 .operands = &.{
15965 .{ .kind = .id_ref, .quantifier = .required },
15966 .{ .kind = .id_ref, .quantifier = .required },
15967 .{ .kind = .id_ref, .quantifier = .required },
15968 .{ .kind = .id_ref, .quantifier = .required },
15969 .{ .kind = .id_ref, .quantifier = .optional },
1397015970 },
1397115971 },
1397215972 .{
13973 .name = "printf",
13974 .opcode = 184,
13975 .operands = &[_]Operand{
13976 .{ .kind = .IdRef, .quantifier = .required },
13977 .{ .kind = .IdRef, .quantifier = .variadic },
15973 .name = "ArgumentUniformTexelBuffer",
15974 .opcode = 35,
15975 .operands = &.{
15976 .{ .kind = .id_ref, .quantifier = .required },
15977 .{ .kind = .id_ref, .quantifier = .required },
15978 .{ .kind = .id_ref, .quantifier = .required },
15979 .{ .kind = .id_ref, .quantifier = .required },
15980 .{ .kind = .id_ref, .quantifier = .optional },
1397815981 },
1397915982 },
1398015983 .{
13981 .name = "prefetch",
13982 .opcode = 185,
13983 .operands = &[_]Operand{
13984 .{ .kind = .IdRef, .quantifier = .required },
13985 .{ .kind = .IdRef, .quantifier = .required },
15984 .name = "ConstantDataPointerPushConstant",
15985 .opcode = 36,
15986 .operands = &.{
15987 .{ .kind = .id_ref, .quantifier = .required },
15988 .{ .kind = .id_ref, .quantifier = .required },
15989 .{ .kind = .id_ref, .quantifier = .required },
1398615990 },
1398715991 },
1398815992 .{
13989 .name = "bitselect",
13990 .opcode = 186,
13991 .operands = &[_]Operand{
13992 .{ .kind = .IdRef, .quantifier = .required },
13993 .{ .kind = .IdRef, .quantifier = .required },
13994 .{ .kind = .IdRef, .quantifier = .required },
15993 .name = "ProgramScopeVariablePointerPushConstant",
15994 .opcode = 37,
15995 .operands = &.{
15996 .{ .kind = .id_ref, .quantifier = .required },
15997 .{ .kind = .id_ref, .quantifier = .required },
15998 .{ .kind = .id_ref, .quantifier = .required },
1399515999 },
1399616000 },
1399716001 .{
13998 .name = "select",
13999 .opcode = 187,
14000 .operands = &[_]Operand{
14001 .{ .kind = .IdRef, .quantifier = .required },
14002 .{ .kind = .IdRef, .quantifier = .required },
14003 .{ .kind = .IdRef, .quantifier = .required },
16002 .name = "PrintfInfo",
16003 .opcode = 38,
16004 .operands = &.{
16005 .{ .kind = .id_ref, .quantifier = .required },
16006 .{ .kind = .id_ref, .quantifier = .required },
16007 .{ .kind = .id_ref, .quantifier = .variadic },
1400416008 },
1400516009 },
1400616010 .{
14007 .name = "u_abs",
14008 .opcode = 201,
14009 .operands = &[_]Operand{
14010 .{ .kind = .IdRef, .quantifier = .required },
16011 .name = "PrintfBufferStorageBuffer",
16012 .opcode = 39,
16013 .operands = &.{
16014 .{ .kind = .id_ref, .quantifier = .required },
16015 .{ .kind = .id_ref, .quantifier = .required },
16016 .{ .kind = .id_ref, .quantifier = .required },
1401116017 },
1401216018 },
1401316019 .{
14014 .name = "u_abs_diff",
14015 .opcode = 202,
14016 .operands = &[_]Operand{
14017 .{ .kind = .IdRef, .quantifier = .required },
14018 .{ .kind = .IdRef, .quantifier = .required },
16020 .name = "PrintfBufferPointerPushConstant",
16021 .opcode = 40,
16022 .operands = &.{
16023 .{ .kind = .id_ref, .quantifier = .required },
16024 .{ .kind = .id_ref, .quantifier = .required },
16025 .{ .kind = .id_ref, .quantifier = .required },
1401916026 },
1402016027 },
1402116028 .{
14022 .name = "u_mul_hi",
14023 .opcode = 203,
14024 .operands = &[_]Operand{
14025 .{ .kind = .IdRef, .quantifier = .required },
14026 .{ .kind = .IdRef, .quantifier = .required },
16029 .name = "NormalizedSamplerMaskPushConstant",
16030 .opcode = 41,
16031 .operands = &.{
16032 .{ .kind = .id_ref, .quantifier = .required },
16033 .{ .kind = .id_ref, .quantifier = .required },
16034 .{ .kind = .id_ref, .quantifier = .required },
16035 .{ .kind = .id_ref, .quantifier = .required },
1402716036 },
1402816037 },
1402916038 .{
14030 .name = "u_mad_hi",
14031 .opcode = 204,
14032 .operands = &[_]Operand{
14033 .{ .kind = .IdRef, .quantifier = .required },
14034 .{ .kind = .IdRef, .quantifier = .required },
14035 .{ .kind = .IdRef, .quantifier = .required },
16039 .name = "WorkgroupVariableSize",
16040 .opcode = 42,
16041 .operands = &.{
16042 .{ .kind = .id_ref, .quantifier = .required },
16043 .{ .kind = .id_ref, .quantifier = .required },
1403616044 },
1403716045 },
1403816046 },
14039 .@"GLSL.std.450" => &[_]Instruction{
16047 .glsl_std_450 => &.{
1404016048 .{
1404116049 .name = "Round",
1404216050 .opcode = 1,
14043 .operands = &[_]Operand{
14044 .{ .kind = .IdRef, .quantifier = .required },
16051 .operands = &.{
16052 .{ .kind = .id_ref, .quantifier = .required },
1404516053 },
1404616054 },
1404716055 .{
1404816056 .name = "RoundEven",
1404916057 .opcode = 2,
14050 .operands = &[_]Operand{
14051 .{ .kind = .IdRef, .quantifier = .required },
16058 .operands = &.{
16059 .{ .kind = .id_ref, .quantifier = .required },
1405216060 },
1405316061 },
1405416062 .{
1405516063 .name = "Trunc",
1405616064 .opcode = 3,
14057 .operands = &[_]Operand{
14058 .{ .kind = .IdRef, .quantifier = .required },
16065 .operands = &.{
16066 .{ .kind = .id_ref, .quantifier = .required },
1405916067 },
1406016068 },
1406116069 .{
1406216070 .name = "FAbs",
1406316071 .opcode = 4,
14064 .operands = &[_]Operand{
14065 .{ .kind = .IdRef, .quantifier = .required },
16072 .operands = &.{
16073 .{ .kind = .id_ref, .quantifier = .required },
1406616074 },
1406716075 },
1406816076 .{
1406916077 .name = "SAbs",
1407016078 .opcode = 5,
14071 .operands = &[_]Operand{
14072 .{ .kind = .IdRef, .quantifier = .required },
16079 .operands = &.{
16080 .{ .kind = .id_ref, .quantifier = .required },
1407316081 },
1407416082 },
1407516083 .{
1407616084 .name = "FSign",
1407716085 .opcode = 6,
14078 .operands = &[_]Operand{
14079 .{ .kind = .IdRef, .quantifier = .required },
16086 .operands = &.{
16087 .{ .kind = .id_ref, .quantifier = .required },
1408016088 },
1408116089 },
1408216090 .{
1408316091 .name = "SSign",
1408416092 .opcode = 7,
14085 .operands = &[_]Operand{
14086 .{ .kind = .IdRef, .quantifier = .required },
16093 .operands = &.{
16094 .{ .kind = .id_ref, .quantifier = .required },
1408716095 },
1408816096 },
1408916097 .{
1409016098 .name = "Floor",
1409116099 .opcode = 8,
14092 .operands = &[_]Operand{
14093 .{ .kind = .IdRef, .quantifier = .required },
16100 .operands = &.{
16101 .{ .kind = .id_ref, .quantifier = .required },
1409416102 },
1409516103 },
1409616104 .{
1409716105 .name = "Ceil",
1409816106 .opcode = 9,
14099 .operands = &[_]Operand{
14100 .{ .kind = .IdRef, .quantifier = .required },
16107 .operands = &.{
16108 .{ .kind = .id_ref, .quantifier = .required },
1410116109 },
1410216110 },
1410316111 .{
1410416112 .name = "Fract",
1410516113 .opcode = 10,
14106 .operands = &[_]Operand{
14107 .{ .kind = .IdRef, .quantifier = .required },
16114 .operands = &.{
16115 .{ .kind = .id_ref, .quantifier = .required },
1410816116 },
1410916117 },
1411016118 .{
1411116119 .name = "Radians",
1411216120 .opcode = 11,
14113 .operands = &[_]Operand{
14114 .{ .kind = .IdRef, .quantifier = .required },
16121 .operands = &.{
16122 .{ .kind = .id_ref, .quantifier = .required },
1411516123 },
1411616124 },
1411716125 .{
1411816126 .name = "Degrees",
1411916127 .opcode = 12,
14120 .operands = &[_]Operand{
14121 .{ .kind = .IdRef, .quantifier = .required },
16128 .operands = &.{
16129 .{ .kind = .id_ref, .quantifier = .required },
1412216130 },
1412316131 },
1412416132 .{
1412516133 .name = "Sin",
1412616134 .opcode = 13,
14127 .operands = &[_]Operand{
14128 .{ .kind = .IdRef, .quantifier = .required },
16135 .operands = &.{
16136 .{ .kind = .id_ref, .quantifier = .required },
1412916137 },
1413016138 },
1413116139 .{
1413216140 .name = "Cos",
1413316141 .opcode = 14,
14134 .operands = &[_]Operand{
14135 .{ .kind = .IdRef, .quantifier = .required },
16142 .operands = &.{
16143 .{ .kind = .id_ref, .quantifier = .required },
1413616144 },
1413716145 },
1413816146 .{
1413916147 .name = "Tan",
1414016148 .opcode = 15,
14141 .operands = &[_]Operand{
14142 .{ .kind = .IdRef, .quantifier = .required },
16149 .operands = &.{
16150 .{ .kind = .id_ref, .quantifier = .required },
1414316151 },
1414416152 },
1414516153 .{
1414616154 .name = "Asin",
1414716155 .opcode = 16,
14148 .operands = &[_]Operand{
14149 .{ .kind = .IdRef, .quantifier = .required },
16156 .operands = &.{
16157 .{ .kind = .id_ref, .quantifier = .required },
1415016158 },
1415116159 },
1415216160 .{
1415316161 .name = "Acos",
1415416162 .opcode = 17,
14155 .operands = &[_]Operand{
14156 .{ .kind = .IdRef, .quantifier = .required },
16163 .operands = &.{
16164 .{ .kind = .id_ref, .quantifier = .required },
1415716165 },
1415816166 },
1415916167 .{
1416016168 .name = "Atan",
1416116169 .opcode = 18,
14162 .operands = &[_]Operand{
14163 .{ .kind = .IdRef, .quantifier = .required },
16170 .operands = &.{
16171 .{ .kind = .id_ref, .quantifier = .required },
1416416172 },
1416516173 },
1416616174 .{
1416716175 .name = "Sinh",
1416816176 .opcode = 19,
14169 .operands = &[_]Operand{
14170 .{ .kind = .IdRef, .quantifier = .required },
16177 .operands = &.{
16178 .{ .kind = .id_ref, .quantifier = .required },
1417116179 },
1417216180 },
1417316181 .{
1417416182 .name = "Cosh",
1417516183 .opcode = 20,
14176 .operands = &[_]Operand{
14177 .{ .kind = .IdRef, .quantifier = .required },
16184 .operands = &.{
16185 .{ .kind = .id_ref, .quantifier = .required },
1417816186 },
1417916187 },
1418016188 .{
1418116189 .name = "Tanh",
1418216190 .opcode = 21,
14183 .operands = &[_]Operand{
14184 .{ .kind = .IdRef, .quantifier = .required },
16191 .operands = &.{
16192 .{ .kind = .id_ref, .quantifier = .required },
1418516193 },
1418616194 },
1418716195 .{
1418816196 .name = "Asinh",
1418916197 .opcode = 22,
14190 .operands = &[_]Operand{
14191 .{ .kind = .IdRef, .quantifier = .required },
16198 .operands = &.{
16199 .{ .kind = .id_ref, .quantifier = .required },
1419216200 },
1419316201 },
1419416202 .{
1419516203 .name = "Acosh",
1419616204 .opcode = 23,
14197 .operands = &[_]Operand{
14198 .{ .kind = .IdRef, .quantifier = .required },
16205 .operands = &.{
16206 .{ .kind = .id_ref, .quantifier = .required },
1419916207 },
1420016208 },
1420116209 .{
1420216210 .name = "Atanh",
1420316211 .opcode = 24,
14204 .operands = &[_]Operand{
14205 .{ .kind = .IdRef, .quantifier = .required },
16212 .operands = &.{
16213 .{ .kind = .id_ref, .quantifier = .required },
1420616214 },
1420716215 },
1420816216 .{
1420916217 .name = "Atan2",
1421016218 .opcode = 25,
14211 .operands = &[_]Operand{
14212 .{ .kind = .IdRef, .quantifier = .required },
14213 .{ .kind = .IdRef, .quantifier = .required },
16219 .operands = &.{
16220 .{ .kind = .id_ref, .quantifier = .required },
16221 .{ .kind = .id_ref, .quantifier = .required },
1421416222 },
1421516223 },
1421616224 .{
1421716225 .name = "Pow",
1421816226 .opcode = 26,
14219 .operands = &[_]Operand{
14220 .{ .kind = .IdRef, .quantifier = .required },
14221 .{ .kind = .IdRef, .quantifier = .required },
16227 .operands = &.{
16228 .{ .kind = .id_ref, .quantifier = .required },
16229 .{ .kind = .id_ref, .quantifier = .required },
1422216230 },
1422316231 },
1422416232 .{
1422516233 .name = "Exp",
1422616234 .opcode = 27,
14227 .operands = &[_]Operand{
14228 .{ .kind = .IdRef, .quantifier = .required },
16235 .operands = &.{
16236 .{ .kind = .id_ref, .quantifier = .required },
1422916237 },
1423016238 },
1423116239 .{
1423216240 .name = "Log",
1423316241 .opcode = 28,
14234 .operands = &[_]Operand{
14235 .{ .kind = .IdRef, .quantifier = .required },
16242 .operands = &.{
16243 .{ .kind = .id_ref, .quantifier = .required },
1423616244 },
1423716245 },
1423816246 .{
1423916247 .name = "Exp2",
1424016248 .opcode = 29,
14241 .operands = &[_]Operand{
14242 .{ .kind = .IdRef, .quantifier = .required },
16249 .operands = &.{
16250 .{ .kind = .id_ref, .quantifier = .required },
1424316251 },
1424416252 },
1424516253 .{
1424616254 .name = "Log2",
1424716255 .opcode = 30,
14248 .operands = &[_]Operand{
14249 .{ .kind = .IdRef, .quantifier = .required },
16256 .operands = &.{
16257 .{ .kind = .id_ref, .quantifier = .required },
1425016258 },
1425116259 },
1425216260 .{
1425316261 .name = "Sqrt",
1425416262 .opcode = 31,
14255 .operands = &[_]Operand{
14256 .{ .kind = .IdRef, .quantifier = .required },
16263 .operands = &.{
16264 .{ .kind = .id_ref, .quantifier = .required },
1425716265 },
1425816266 },
1425916267 .{
1426016268 .name = "InverseSqrt",
1426116269 .opcode = 32,
14262 .operands = &[_]Operand{
14263 .{ .kind = .IdRef, .quantifier = .required },
16270 .operands = &.{
16271 .{ .kind = .id_ref, .quantifier = .required },
1426416272 },
1426516273 },
1426616274 .{
1426716275 .name = "Determinant",
1426816276 .opcode = 33,
14269 .operands = &[_]Operand{
14270 .{ .kind = .IdRef, .quantifier = .required },
16277 .operands = &.{
16278 .{ .kind = .id_ref, .quantifier = .required },
1427116279 },
1427216280 },
1427316281 .{
1427416282 .name = "MatrixInverse",
1427516283 .opcode = 34,
14276 .operands = &[_]Operand{
14277 .{ .kind = .IdRef, .quantifier = .required },
16284 .operands = &.{
16285 .{ .kind = .id_ref, .quantifier = .required },
1427816286 },
1427916287 },
1428016288 .{
1428116289 .name = "Modf",
1428216290 .opcode = 35,
14283 .operands = &[_]Operand{
14284 .{ .kind = .IdRef, .quantifier = .required },
14285 .{ .kind = .IdRef, .quantifier = .required },
16291 .operands = &.{
16292 .{ .kind = .id_ref, .quantifier = .required },
16293 .{ .kind = .id_ref, .quantifier = .required },
1428616294 },
1428716295 },
1428816296 .{
1428916297 .name = "ModfStruct",
1429016298 .opcode = 36,
14291 .operands = &[_]Operand{
14292 .{ .kind = .IdRef, .quantifier = .required },
16299 .operands = &.{
16300 .{ .kind = .id_ref, .quantifier = .required },
1429316301 },
1429416302 },
1429516303 .{
1429616304 .name = "FMin",
1429716305 .opcode = 37,
14298 .operands = &[_]Operand{
14299 .{ .kind = .IdRef, .quantifier = .required },
14300 .{ .kind = .IdRef, .quantifier = .required },
16306 .operands = &.{
16307 .{ .kind = .id_ref, .quantifier = .required },
16308 .{ .kind = .id_ref, .quantifier = .required },
1430116309 },
1430216310 },
1430316311 .{
1430416312 .name = "UMin",
1430516313 .opcode = 38,
14306 .operands = &[_]Operand{
14307 .{ .kind = .IdRef, .quantifier = .required },
14308 .{ .kind = .IdRef, .quantifier = .required },
16314 .operands = &.{
16315 .{ .kind = .id_ref, .quantifier = .required },
16316 .{ .kind = .id_ref, .quantifier = .required },
1430916317 },
1431016318 },
1431116319 .{
1431216320 .name = "SMin",
1431316321 .opcode = 39,
14314 .operands = &[_]Operand{
14315 .{ .kind = .IdRef, .quantifier = .required },
14316 .{ .kind = .IdRef, .quantifier = .required },
16322 .operands = &.{
16323 .{ .kind = .id_ref, .quantifier = .required },
16324 .{ .kind = .id_ref, .quantifier = .required },
1431716325 },
1431816326 },
1431916327 .{
1432016328 .name = "FMax",
1432116329 .opcode = 40,
14322 .operands = &[_]Operand{
14323 .{ .kind = .IdRef, .quantifier = .required },
14324 .{ .kind = .IdRef, .quantifier = .required },
16330 .operands = &.{
16331 .{ .kind = .id_ref, .quantifier = .required },
16332 .{ .kind = .id_ref, .quantifier = .required },
1432516333 },
1432616334 },
1432716335 .{
1432816336 .name = "UMax",
1432916337 .opcode = 41,
14330 .operands = &[_]Operand{
14331 .{ .kind = .IdRef, .quantifier = .required },
14332 .{ .kind = .IdRef, .quantifier = .required },
16338 .operands = &.{
16339 .{ .kind = .id_ref, .quantifier = .required },
16340 .{ .kind = .id_ref, .quantifier = .required },
1433316341 },
1433416342 },
1433516343 .{
1433616344 .name = "SMax",
1433716345 .opcode = 42,
14338 .operands = &[_]Operand{
14339 .{ .kind = .IdRef, .quantifier = .required },
14340 .{ .kind = .IdRef, .quantifier = .required },
16346 .operands = &.{
16347 .{ .kind = .id_ref, .quantifier = .required },
16348 .{ .kind = .id_ref, .quantifier = .required },
1434116349 },
1434216350 },
1434316351 .{
1434416352 .name = "FClamp",
1434516353 .opcode = 43,
14346 .operands = &[_]Operand{
14347 .{ .kind = .IdRef, .quantifier = .required },
14348 .{ .kind = .IdRef, .quantifier = .required },
14349 .{ .kind = .IdRef, .quantifier = .required },
16354 .operands = &.{
16355 .{ .kind = .id_ref, .quantifier = .required },
16356 .{ .kind = .id_ref, .quantifier = .required },
16357 .{ .kind = .id_ref, .quantifier = .required },
1435016358 },
1435116359 },
1435216360 .{
1435316361 .name = "UClamp",
1435416362 .opcode = 44,
14355 .operands = &[_]Operand{
14356 .{ .kind = .IdRef, .quantifier = .required },
14357 .{ .kind = .IdRef, .quantifier = .required },
14358 .{ .kind = .IdRef, .quantifier = .required },
16363 .operands = &.{
16364 .{ .kind = .id_ref, .quantifier = .required },
16365 .{ .kind = .id_ref, .quantifier = .required },
16366 .{ .kind = .id_ref, .quantifier = .required },
1435916367 },
1436016368 },
1436116369 .{
1436216370 .name = "SClamp",
1436316371 .opcode = 45,
14364 .operands = &[_]Operand{
14365 .{ .kind = .IdRef, .quantifier = .required },
14366 .{ .kind = .IdRef, .quantifier = .required },
14367 .{ .kind = .IdRef, .quantifier = .required },
16372 .operands = &.{
16373 .{ .kind = .id_ref, .quantifier = .required },
16374 .{ .kind = .id_ref, .quantifier = .required },
16375 .{ .kind = .id_ref, .quantifier = .required },
1436816376 },
1436916377 },
1437016378 .{
1437116379 .name = "FMix",
1437216380 .opcode = 46,
14373 .operands = &[_]Operand{
14374 .{ .kind = .IdRef, .quantifier = .required },
14375 .{ .kind = .IdRef, .quantifier = .required },
14376 .{ .kind = .IdRef, .quantifier = .required },
16381 .operands = &.{
16382 .{ .kind = .id_ref, .quantifier = .required },
16383 .{ .kind = .id_ref, .quantifier = .required },
16384 .{ .kind = .id_ref, .quantifier = .required },
1437716385 },
1437816386 },
1437916387 .{
1438016388 .name = "IMix",
1438116389 .opcode = 47,
14382 .operands = &[_]Operand{
14383 .{ .kind = .IdRef, .quantifier = .required },
14384 .{ .kind = .IdRef, .quantifier = .required },
14385 .{ .kind = .IdRef, .quantifier = .required },
16390 .operands = &.{
16391 .{ .kind = .id_ref, .quantifier = .required },
16392 .{ .kind = .id_ref, .quantifier = .required },
16393 .{ .kind = .id_ref, .quantifier = .required },
1438616394 },
1438716395 },
1438816396 .{
1438916397 .name = "Step",
1439016398 .opcode = 48,
14391 .operands = &[_]Operand{
14392 .{ .kind = .IdRef, .quantifier = .required },
14393 .{ .kind = .IdRef, .quantifier = .required },
16399 .operands = &.{
16400 .{ .kind = .id_ref, .quantifier = .required },
16401 .{ .kind = .id_ref, .quantifier = .required },
1439416402 },
1439516403 },
1439616404 .{
1439716405 .name = "SmoothStep",
1439816406 .opcode = 49,
14399 .operands = &[_]Operand{
14400 .{ .kind = .IdRef, .quantifier = .required },
14401 .{ .kind = .IdRef, .quantifier = .required },
14402 .{ .kind = .IdRef, .quantifier = .required },
16407 .operands = &.{
16408 .{ .kind = .id_ref, .quantifier = .required },
16409 .{ .kind = .id_ref, .quantifier = .required },
16410 .{ .kind = .id_ref, .quantifier = .required },
1440316411 },
1440416412 },
1440516413 .{
1440616414 .name = "Fma",
1440716415 .opcode = 50,
14408 .operands = &[_]Operand{
14409 .{ .kind = .IdRef, .quantifier = .required },
14410 .{ .kind = .IdRef, .quantifier = .required },
14411 .{ .kind = .IdRef, .quantifier = .required },
16416 .operands = &.{
16417 .{ .kind = .id_ref, .quantifier = .required },
16418 .{ .kind = .id_ref, .quantifier = .required },
16419 .{ .kind = .id_ref, .quantifier = .required },
1441216420 },
1441316421 },
1441416422 .{
1441516423 .name = "Frexp",
1441616424 .opcode = 51,
14417 .operands = &[_]Operand{
14418 .{ .kind = .IdRef, .quantifier = .required },
14419 .{ .kind = .IdRef, .quantifier = .required },
16425 .operands = &.{
16426 .{ .kind = .id_ref, .quantifier = .required },
16427 .{ .kind = .id_ref, .quantifier = .required },
1442016428 },
1442116429 },
1442216430 .{
1442316431 .name = "FrexpStruct",
1442416432 .opcode = 52,
14425 .operands = &[_]Operand{
14426 .{ .kind = .IdRef, .quantifier = .required },
16433 .operands = &.{
16434 .{ .kind = .id_ref, .quantifier = .required },
1442716435 },
1442816436 },
1442916437 .{
1443016438 .name = "Ldexp",
1443116439 .opcode = 53,
14432 .operands = &[_]Operand{
14433 .{ .kind = .IdRef, .quantifier = .required },
14434 .{ .kind = .IdRef, .quantifier = .required },
16440 .operands = &.{
16441 .{ .kind = .id_ref, .quantifier = .required },
16442 .{ .kind = .id_ref, .quantifier = .required },
1443516443 },
1443616444 },
1443716445 .{
1443816446 .name = "PackSnorm4x8",
1443916447 .opcode = 54,
14440 .operands = &[_]Operand{
14441 .{ .kind = .IdRef, .quantifier = .required },
16448 .operands = &.{
16449 .{ .kind = .id_ref, .quantifier = .required },
1444216450 },
1444316451 },
1444416452 .{
1444516453 .name = "PackUnorm4x8",
1444616454 .opcode = 55,
14447 .operands = &[_]Operand{
14448 .{ .kind = .IdRef, .quantifier = .required },
16455 .operands = &.{
16456 .{ .kind = .id_ref, .quantifier = .required },
1444916457 },
1445016458 },
1445116459 .{
1445216460 .name = "PackSnorm2x16",
1445316461 .opcode = 56,
14454 .operands = &[_]Operand{
14455 .{ .kind = .IdRef, .quantifier = .required },
16462 .operands = &.{
16463 .{ .kind = .id_ref, .quantifier = .required },
1445616464 },
1445716465 },
1445816466 .{
1445916467 .name = "PackUnorm2x16",
1446016468 .opcode = 57,
14461 .operands = &[_]Operand{
14462 .{ .kind = .IdRef, .quantifier = .required },
16469 .operands = &.{
16470 .{ .kind = .id_ref, .quantifier = .required },
1446316471 },
1446416472 },
1446516473 .{
1446616474 .name = "PackHalf2x16",
1446716475 .opcode = 58,
14468 .operands = &[_]Operand{
14469 .{ .kind = .IdRef, .quantifier = .required },
16476 .operands = &.{
16477 .{ .kind = .id_ref, .quantifier = .required },
1447016478 },
1447116479 },
1447216480 .{
1447316481 .name = "PackDouble2x32",
1447416482 .opcode = 59,
14475 .operands = &[_]Operand{
14476 .{ .kind = .IdRef, .quantifier = .required },
16483 .operands = &.{
16484 .{ .kind = .id_ref, .quantifier = .required },
1447716485 },
1447816486 },
1447916487 .{
1448016488 .name = "UnpackSnorm2x16",
1448116489 .opcode = 60,
14482 .operands = &[_]Operand{
14483 .{ .kind = .IdRef, .quantifier = .required },
16490 .operands = &.{
16491 .{ .kind = .id_ref, .quantifier = .required },
1448416492 },
1448516493 },
1448616494 .{
1448716495 .name = "UnpackUnorm2x16",
1448816496 .opcode = 61,
14489 .operands = &[_]Operand{
14490 .{ .kind = .IdRef, .quantifier = .required },
16497 .operands = &.{
16498 .{ .kind = .id_ref, .quantifier = .required },
1449116499 },
1449216500 },
1449316501 .{
1449416502 .name = "UnpackHalf2x16",
1449516503 .opcode = 62,
14496 .operands = &[_]Operand{
14497 .{ .kind = .IdRef, .quantifier = .required },
16504 .operands = &.{
16505 .{ .kind = .id_ref, .quantifier = .required },
1449816506 },
1449916507 },
1450016508 .{
1450116509 .name = "UnpackSnorm4x8",
1450216510 .opcode = 63,
14503 .operands = &[_]Operand{
14504 .{ .kind = .IdRef, .quantifier = .required },
16511 .operands = &.{
16512 .{ .kind = .id_ref, .quantifier = .required },
1450516513 },
1450616514 },
1450716515 .{
1450816516 .name = "UnpackUnorm4x8",
1450916517 .opcode = 64,
14510 .operands = &[_]Operand{
14511 .{ .kind = .IdRef, .quantifier = .required },
16518 .operands = &.{
16519 .{ .kind = .id_ref, .quantifier = .required },
1451216520 },
1451316521 },
1451416522 .{
1451516523 .name = "UnpackDouble2x32",
1451616524 .opcode = 65,
14517 .operands = &[_]Operand{
14518 .{ .kind = .IdRef, .quantifier = .required },
16525 .operands = &.{
16526 .{ .kind = .id_ref, .quantifier = .required },
1451916527 },
1452016528 },
1452116529 .{
1452216530 .name = "Length",
1452316531 .opcode = 66,
14524 .operands = &[_]Operand{
14525 .{ .kind = .IdRef, .quantifier = .required },
16532 .operands = &.{
16533 .{ .kind = .id_ref, .quantifier = .required },
1452616534 },
1452716535 },
1452816536 .{
1452916537 .name = "Distance",
1453016538 .opcode = 67,
14531 .operands = &[_]Operand{
14532 .{ .kind = .IdRef, .quantifier = .required },
14533 .{ .kind = .IdRef, .quantifier = .required },
16539 .operands = &.{
16540 .{ .kind = .id_ref, .quantifier = .required },
16541 .{ .kind = .id_ref, .quantifier = .required },
1453416542 },
1453516543 },
1453616544 .{
1453716545 .name = "Cross",
1453816546 .opcode = 68,
14539 .operands = &[_]Operand{
14540 .{ .kind = .IdRef, .quantifier = .required },
14541 .{ .kind = .IdRef, .quantifier = .required },
16547 .operands = &.{
16548 .{ .kind = .id_ref, .quantifier = .required },
16549 .{ .kind = .id_ref, .quantifier = .required },
1454216550 },
1454316551 },
1454416552 .{
1454516553 .name = "Normalize",
1454616554 .opcode = 69,
14547 .operands = &[_]Operand{
14548 .{ .kind = .IdRef, .quantifier = .required },
16555 .operands = &.{
16556 .{ .kind = .id_ref, .quantifier = .required },
1454916557 },
1455016558 },
1455116559 .{
1455216560 .name = "FaceForward",
1455316561 .opcode = 70,
14554 .operands = &[_]Operand{
14555 .{ .kind = .IdRef, .quantifier = .required },
14556 .{ .kind = .IdRef, .quantifier = .required },
14557 .{ .kind = .IdRef, .quantifier = .required },
16562 .operands = &.{
16563 .{ .kind = .id_ref, .quantifier = .required },
16564 .{ .kind = .id_ref, .quantifier = .required },
16565 .{ .kind = .id_ref, .quantifier = .required },
1455816566 },
1455916567 },
1456016568 .{
1456116569 .name = "Reflect",
1456216570 .opcode = 71,
14563 .operands = &[_]Operand{
14564 .{ .kind = .IdRef, .quantifier = .required },
14565 .{ .kind = .IdRef, .quantifier = .required },
16571 .operands = &.{
16572 .{ .kind = .id_ref, .quantifier = .required },
16573 .{ .kind = .id_ref, .quantifier = .required },
1456616574 },
1456716575 },
1456816576 .{
1456916577 .name = "Refract",
1457016578 .opcode = 72,
14571 .operands = &[_]Operand{
14572 .{ .kind = .IdRef, .quantifier = .required },
14573 .{ .kind = .IdRef, .quantifier = .required },
14574 .{ .kind = .IdRef, .quantifier = .required },
16579 .operands = &.{
16580 .{ .kind = .id_ref, .quantifier = .required },
16581 .{ .kind = .id_ref, .quantifier = .required },
16582 .{ .kind = .id_ref, .quantifier = .required },
1457516583 },
1457616584 },
1457716585 .{
1457816586 .name = "FindILsb",
1457916587 .opcode = 73,
14580 .operands = &[_]Operand{
14581 .{ .kind = .IdRef, .quantifier = .required },
16588 .operands = &.{
16589 .{ .kind = .id_ref, .quantifier = .required },
1458216590 },
1458316591 },
1458416592 .{
1458516593 .name = "FindSMsb",
1458616594 .opcode = 74,
14587 .operands = &[_]Operand{
14588 .{ .kind = .IdRef, .quantifier = .required },
16595 .operands = &.{
16596 .{ .kind = .id_ref, .quantifier = .required },
1458916597 },
1459016598 },
1459116599 .{
1459216600 .name = "FindUMsb",
1459316601 .opcode = 75,
14594 .operands = &[_]Operand{
14595 .{ .kind = .IdRef, .quantifier = .required },
16602 .operands = &.{
16603 .{ .kind = .id_ref, .quantifier = .required },
1459616604 },
1459716605 },
1459816606 .{
1459916607 .name = "InterpolateAtCentroid",
1460016608 .opcode = 76,
14601 .operands = &[_]Operand{
14602 .{ .kind = .IdRef, .quantifier = .required },
16609 .operands = &.{
16610 .{ .kind = .id_ref, .quantifier = .required },
1460316611 },
1460416612 },
1460516613 .{
1460616614 .name = "InterpolateAtSample",
1460716615 .opcode = 77,
14608 .operands = &[_]Operand{
14609 .{ .kind = .IdRef, .quantifier = .required },
14610 .{ .kind = .IdRef, .quantifier = .required },
16616 .operands = &.{
16617 .{ .kind = .id_ref, .quantifier = .required },
16618 .{ .kind = .id_ref, .quantifier = .required },
1461116619 },
1461216620 },
1461316621 .{
1461416622 .name = "InterpolateAtOffset",
1461516623 .opcode = 78,
14616 .operands = &[_]Operand{
14617 .{ .kind = .IdRef, .quantifier = .required },
14618 .{ .kind = .IdRef, .quantifier = .required },
16624 .operands = &.{
16625 .{ .kind = .id_ref, .quantifier = .required },
16626 .{ .kind = .id_ref, .quantifier = .required },
1461916627 },
1462016628 },
1462116629 .{
1462216630 .name = "NMin",
1462316631 .opcode = 79,
14624 .operands = &[_]Operand{
14625 .{ .kind = .IdRef, .quantifier = .required },
14626 .{ .kind = .IdRef, .quantifier = .required },
16632 .operands = &.{
16633 .{ .kind = .id_ref, .quantifier = .required },
16634 .{ .kind = .id_ref, .quantifier = .required },
1462716635 },
1462816636 },
1462916637 .{
1463016638 .name = "NMax",
1463116639 .opcode = 80,
14632 .operands = &[_]Operand{
14633 .{ .kind = .IdRef, .quantifier = .required },
14634 .{ .kind = .IdRef, .quantifier = .required },
16640 .operands = &.{
16641 .{ .kind = .id_ref, .quantifier = .required },
16642 .{ .kind = .id_ref, .quantifier = .required },
1463516643 },
1463616644 },
1463716645 .{
1463816646 .name = "NClamp",
1463916647 .opcode = 81,
14640 .operands = &[_]Operand{
14641 .{ .kind = .IdRef, .quantifier = .required },
14642 .{ .kind = .IdRef, .quantifier = .required },
14643 .{ .kind = .IdRef, .quantifier = .required },
16648 .operands = &.{
16649 .{ .kind = .id_ref, .quantifier = .required },
16650 .{ .kind = .id_ref, .quantifier = .required },
16651 .{ .kind = .id_ref, .quantifier = .required },
1464416652 },
1464516653 },
1464616654 },
14647 .@"OpenCL.DebugInfo.100" => &[_]Instruction{
16655 .spv_amd_shader_ballot => &.{
1464816656 .{
14649 .name = "DebugInfoNone",
16657 .name = "SwizzleInvocationsAMD",
16658 .opcode = 1,
16659 .operands = &.{
16660 .{ .kind = .id_ref, .quantifier = .required },
16661 .{ .kind = .id_ref, .quantifier = .required },
16662 },
16663 },
16664 .{
16665 .name = "SwizzleInvocationsMaskedAMD",
16666 .opcode = 2,
16667 .operands = &.{
16668 .{ .kind = .id_ref, .quantifier = .required },
16669 .{ .kind = .id_ref, .quantifier = .required },
16670 },
16671 },
16672 .{
16673 .name = "WriteInvocationAMD",
16674 .opcode = 3,
16675 .operands = &.{
16676 .{ .kind = .id_ref, .quantifier = .required },
16677 .{ .kind = .id_ref, .quantifier = .required },
16678 .{ .kind = .id_ref, .quantifier = .required },
16679 },
16680 },
16681 .{
16682 .name = "MbcntAMD",
16683 .opcode = 4,
16684 .operands = &.{
16685 .{ .kind = .id_ref, .quantifier = .required },
16686 },
16687 },
16688 },
16689 .non_semantic_debug_printf => &.{
16690 .{
16691 .name = "DebugPrintf",
16692 .opcode = 1,
16693 .operands = &.{
16694 .{ .kind = .id_ref, .quantifier = .required },
16695 .{ .kind = .id_ref, .quantifier = .variadic },
16696 },
16697 },
16698 },
16699 .spv_amd_gcn_shader => &.{
16700 .{
16701 .name = "CubeFaceIndexAMD",
16702 .opcode = 1,
16703 .operands = &.{
16704 .{ .kind = .id_ref, .quantifier = .required },
16705 },
16706 },
16707 .{
16708 .name = "CubeFaceCoordAMD",
16709 .opcode = 2,
16710 .operands = &.{
16711 .{ .kind = .id_ref, .quantifier = .required },
16712 },
16713 },
16714 .{
16715 .name = "TimeAMD",
16716 .opcode = 3,
16717 .operands = &.{},
16718 },
16719 },
16720 .open_cl_std => &.{
16721 .{
16722 .name = "acos",
1465016723 .opcode = 0,
14651 .operands = &[_]Operand{},
16724 .operands = &.{
16725 .{ .kind = .id_ref, .quantifier = .required },
16726 },
1465216727 },
1465316728 .{
14654 .name = "DebugCompilationUnit",
16729 .name = "acosh",
1465516730 .opcode = 1,
14656 .operands = &[_]Operand{
14657 .{ .kind = .LiteralInteger, .quantifier = .required },
14658 .{ .kind = .LiteralInteger, .quantifier = .required },
14659 .{ .kind = .IdRef, .quantifier = .required },
14660 .{ .kind = .SourceLanguage, .quantifier = .required },
16731 .operands = &.{
16732 .{ .kind = .id_ref, .quantifier = .required },
1466116733 },
1466216734 },
1466316735 .{
14664 .name = "DebugTypeBasic",
16736 .name = "acospi",
1466516737 .opcode = 2,
14666 .operands = &[_]Operand{
14667 .{ .kind = .IdRef, .quantifier = .required },
14668 .{ .kind = .IdRef, .quantifier = .required },
14669 .{ .kind = .@"OpenCL.DebugInfo.100.DebugBaseTypeAttributeEncoding", .quantifier = .required },
16738 .operands = &.{
16739 .{ .kind = .id_ref, .quantifier = .required },
1467016740 },
1467116741 },
1467216742 .{
14673 .name = "DebugTypePointer",
16743 .name = "asin",
1467416744 .opcode = 3,
14675 .operands = &[_]Operand{
14676 .{ .kind = .IdRef, .quantifier = .required },
14677 .{ .kind = .StorageClass, .quantifier = .required },
14678 .{ .kind = .@"OpenCL.DebugInfo.100.DebugInfoFlags", .quantifier = .required },
16745 .operands = &.{
16746 .{ .kind = .id_ref, .quantifier = .required },
1467916747 },
1468016748 },
1468116749 .{
14682 .name = "DebugTypeQualifier",
16750 .name = "asinh",
1468316751 .opcode = 4,
14684 .operands = &[_]Operand{
14685 .{ .kind = .IdRef, .quantifier = .required },
14686 .{ .kind = .@"OpenCL.DebugInfo.100.DebugTypeQualifier", .quantifier = .required },
16752 .operands = &.{
16753 .{ .kind = .id_ref, .quantifier = .required },
1468716754 },
1468816755 },
1468916756 .{
14690 .name = "DebugTypeArray",
16757 .name = "asinpi",
1469116758 .opcode = 5,
14692 .operands = &[_]Operand{
14693 .{ .kind = .IdRef, .quantifier = .required },
14694 .{ .kind = .IdRef, .quantifier = .variadic },
16759 .operands = &.{
16760 .{ .kind = .id_ref, .quantifier = .required },
1469516761 },
1469616762 },
1469716763 .{
14698 .name = "DebugTypeVector",
16764 .name = "atan",
1469916765 .opcode = 6,
14700 .operands = &[_]Operand{
14701 .{ .kind = .IdRef, .quantifier = .required },
14702 .{ .kind = .LiteralInteger, .quantifier = .required },
16766 .operands = &.{
16767 .{ .kind = .id_ref, .quantifier = .required },
1470316768 },
1470416769 },
1470516770 .{
14706 .name = "DebugTypedef",
16771 .name = "atan2",
1470716772 .opcode = 7,
14708 .operands = &[_]Operand{
14709 .{ .kind = .IdRef, .quantifier = .required },
14710 .{ .kind = .IdRef, .quantifier = .required },
14711 .{ .kind = .IdRef, .quantifier = .required },
14712 .{ .kind = .LiteralInteger, .quantifier = .required },
14713 .{ .kind = .LiteralInteger, .quantifier = .required },
14714 .{ .kind = .IdRef, .quantifier = .required },
16773 .operands = &.{
16774 .{ .kind = .id_ref, .quantifier = .required },
16775 .{ .kind = .id_ref, .quantifier = .required },
1471516776 },
1471616777 },
1471716778 .{
14718 .name = "DebugTypeFunction",
16779 .name = "atanh",
1471916780 .opcode = 8,
14720 .operands = &[_]Operand{
14721 .{ .kind = .@"OpenCL.DebugInfo.100.DebugInfoFlags", .quantifier = .required },
14722 .{ .kind = .IdRef, .quantifier = .required },
14723 .{ .kind = .IdRef, .quantifier = .variadic },
16781 .operands = &.{
16782 .{ .kind = .id_ref, .quantifier = .required },
1472416783 },
1472516784 },
1472616785 .{
14727 .name = "DebugTypeEnum",
16786 .name = "atanpi",
1472816787 .opcode = 9,
14729 .operands = &[_]Operand{
14730 .{ .kind = .IdRef, .quantifier = .required },
14731 .{ .kind = .IdRef, .quantifier = .required },
14732 .{ .kind = .IdRef, .quantifier = .required },
14733 .{ .kind = .LiteralInteger, .quantifier = .required },
14734 .{ .kind = .LiteralInteger, .quantifier = .required },
14735 .{ .kind = .IdRef, .quantifier = .required },
14736 .{ .kind = .IdRef, .quantifier = .required },
14737 .{ .kind = .@"OpenCL.DebugInfo.100.DebugInfoFlags", .quantifier = .required },
14738 .{ .kind = .PairIdRefIdRef, .quantifier = .variadic },
16788 .operands = &.{
16789 .{ .kind = .id_ref, .quantifier = .required },
1473916790 },
1474016791 },
1474116792 .{
14742 .name = "DebugTypeComposite",
16793 .name = "atan2pi",
1474316794 .opcode = 10,
14744 .operands = &[_]Operand{
14745 .{ .kind = .IdRef, .quantifier = .required },
14746 .{ .kind = .@"OpenCL.DebugInfo.100.DebugCompositeType", .quantifier = .required },
14747 .{ .kind = .IdRef, .quantifier = .required },
14748 .{ .kind = .LiteralInteger, .quantifier = .required },
14749 .{ .kind = .LiteralInteger, .quantifier = .required },
14750 .{ .kind = .IdRef, .quantifier = .required },
14751 .{ .kind = .IdRef, .quantifier = .required },
14752 .{ .kind = .IdRef, .quantifier = .required },
14753 .{ .kind = .@"OpenCL.DebugInfo.100.DebugInfoFlags", .quantifier = .required },
14754 .{ .kind = .IdRef, .quantifier = .variadic },
16795 .operands = &.{
16796 .{ .kind = .id_ref, .quantifier = .required },
16797 .{ .kind = .id_ref, .quantifier = .required },
1475516798 },
1475616799 },
1475716800 .{
14758 .name = "DebugTypeMember",
16801 .name = "cbrt",
1475916802 .opcode = 11,
14760 .operands = &[_]Operand{
14761 .{ .kind = .IdRef, .quantifier = .required },
14762 .{ .kind = .IdRef, .quantifier = .required },
14763 .{ .kind = .IdRef, .quantifier = .required },
14764 .{ .kind = .LiteralInteger, .quantifier = .required },
14765 .{ .kind = .LiteralInteger, .quantifier = .required },
14766 .{ .kind = .IdRef, .quantifier = .required },
14767 .{ .kind = .IdRef, .quantifier = .required },
14768 .{ .kind = .IdRef, .quantifier = .required },
14769 .{ .kind = .@"OpenCL.DebugInfo.100.DebugInfoFlags", .quantifier = .required },
14770 .{ .kind = .IdRef, .quantifier = .optional },
16803 .operands = &.{
16804 .{ .kind = .id_ref, .quantifier = .required },
1477116805 },
1477216806 },
1477316807 .{
14774 .name = "DebugTypeInheritance",
16808 .name = "ceil",
1477516809 .opcode = 12,
14776 .operands = &[_]Operand{
14777 .{ .kind = .IdRef, .quantifier = .required },
14778 .{ .kind = .IdRef, .quantifier = .required },
14779 .{ .kind = .IdRef, .quantifier = .required },
14780 .{ .kind = .IdRef, .quantifier = .required },
14781 .{ .kind = .@"OpenCL.DebugInfo.100.DebugInfoFlags", .quantifier = .required },
16810 .operands = &.{
16811 .{ .kind = .id_ref, .quantifier = .required },
1478216812 },
1478316813 },
1478416814 .{
14785 .name = "DebugTypePtrToMember",
16815 .name = "copysign",
1478616816 .opcode = 13,
14787 .operands = &[_]Operand{
14788 .{ .kind = .IdRef, .quantifier = .required },
14789 .{ .kind = .IdRef, .quantifier = .required },
16817 .operands = &.{
16818 .{ .kind = .id_ref, .quantifier = .required },
16819 .{ .kind = .id_ref, .quantifier = .required },
1479016820 },
1479116821 },
1479216822 .{
14793 .name = "DebugTypeTemplate",
16823 .name = "cos",
1479416824 .opcode = 14,
14795 .operands = &[_]Operand{
14796 .{ .kind = .IdRef, .quantifier = .required },
14797 .{ .kind = .IdRef, .quantifier = .variadic },
16825 .operands = &.{
16826 .{ .kind = .id_ref, .quantifier = .required },
1479816827 },
1479916828 },
1480016829 .{
14801 .name = "DebugTypeTemplateParameter",
16830 .name = "cosh",
1480216831 .opcode = 15,
14803 .operands = &[_]Operand{
14804 .{ .kind = .IdRef, .quantifier = .required },
14805 .{ .kind = .IdRef, .quantifier = .required },
14806 .{ .kind = .IdRef, .quantifier = .required },
14807 .{ .kind = .IdRef, .quantifier = .required },
14808 .{ .kind = .LiteralInteger, .quantifier = .required },
14809 .{ .kind = .LiteralInteger, .quantifier = .required },
16832 .operands = &.{
16833 .{ .kind = .id_ref, .quantifier = .required },
1481016834 },
1481116835 },
1481216836 .{
14813 .name = "DebugTypeTemplateTemplateParameter",
16837 .name = "cospi",
1481416838 .opcode = 16,
14815 .operands = &[_]Operand{
14816 .{ .kind = .IdRef, .quantifier = .required },
14817 .{ .kind = .IdRef, .quantifier = .required },
14818 .{ .kind = .IdRef, .quantifier = .required },
14819 .{ .kind = .LiteralInteger, .quantifier = .required },
14820 .{ .kind = .LiteralInteger, .quantifier = .required },
16839 .operands = &.{
16840 .{ .kind = .id_ref, .quantifier = .required },
1482116841 },
1482216842 },
1482316843 .{
14824 .name = "DebugTypeTemplateParameterPack",
16844 .name = "erfc",
1482516845 .opcode = 17,
14826 .operands = &[_]Operand{
14827 .{ .kind = .IdRef, .quantifier = .required },
14828 .{ .kind = .IdRef, .quantifier = .required },
14829 .{ .kind = .LiteralInteger, .quantifier = .required },
14830 .{ .kind = .LiteralInteger, .quantifier = .required },
14831 .{ .kind = .IdRef, .quantifier = .variadic },
16846 .operands = &.{
16847 .{ .kind = .id_ref, .quantifier = .required },
1483216848 },
1483316849 },
1483416850 .{
14835 .name = "DebugGlobalVariable",
16851 .name = "erf",
1483616852 .opcode = 18,
14837 .operands = &[_]Operand{
14838 .{ .kind = .IdRef, .quantifier = .required },
14839 .{ .kind = .IdRef, .quantifier = .required },
14840 .{ .kind = .IdRef, .quantifier = .required },
14841 .{ .kind = .LiteralInteger, .quantifier = .required },
14842 .{ .kind = .LiteralInteger, .quantifier = .required },
14843 .{ .kind = .IdRef, .quantifier = .required },
14844 .{ .kind = .IdRef, .quantifier = .required },
14845 .{ .kind = .IdRef, .quantifier = .required },
14846 .{ .kind = .@"OpenCL.DebugInfo.100.DebugInfoFlags", .quantifier = .required },
14847 .{ .kind = .IdRef, .quantifier = .optional },
16853 .operands = &.{
16854 .{ .kind = .id_ref, .quantifier = .required },
1484816855 },
1484916856 },
1485016857 .{
14851 .name = "DebugFunctionDeclaration",
16858 .name = "exp",
1485216859 .opcode = 19,
14853 .operands = &[_]Operand{
14854 .{ .kind = .IdRef, .quantifier = .required },
14855 .{ .kind = .IdRef, .quantifier = .required },
14856 .{ .kind = .IdRef, .quantifier = .required },
14857 .{ .kind = .LiteralInteger, .quantifier = .required },
14858 .{ .kind = .LiteralInteger, .quantifier = .required },
14859 .{ .kind = .IdRef, .quantifier = .required },
14860 .{ .kind = .IdRef, .quantifier = .required },
14861 .{ .kind = .@"OpenCL.DebugInfo.100.DebugInfoFlags", .quantifier = .required },
16860 .operands = &.{
16861 .{ .kind = .id_ref, .quantifier = .required },
1486216862 },
1486316863 },
1486416864 .{
14865 .name = "DebugFunction",
16865 .name = "exp2",
1486616866 .opcode = 20,
14867 .operands = &[_]Operand{
14868 .{ .kind = .IdRef, .quantifier = .required },
14869 .{ .kind = .IdRef, .quantifier = .required },
14870 .{ .kind = .IdRef, .quantifier = .required },
14871 .{ .kind = .LiteralInteger, .quantifier = .required },
14872 .{ .kind = .LiteralInteger, .quantifier = .required },
14873 .{ .kind = .IdRef, .quantifier = .required },
14874 .{ .kind = .IdRef, .quantifier = .required },
14875 .{ .kind = .@"OpenCL.DebugInfo.100.DebugInfoFlags", .quantifier = .required },
14876 .{ .kind = .LiteralInteger, .quantifier = .required },
14877 .{ .kind = .IdRef, .quantifier = .required },
14878 .{ .kind = .IdRef, .quantifier = .optional },
16867 .operands = &.{
16868 .{ .kind = .id_ref, .quantifier = .required },
1487916869 },
1488016870 },
1488116871 .{
14882 .name = "DebugLexicalBlock",
16872 .name = "exp10",
1488316873 .opcode = 21,
14884 .operands = &[_]Operand{
14885 .{ .kind = .IdRef, .quantifier = .required },
14886 .{ .kind = .LiteralInteger, .quantifier = .required },
14887 .{ .kind = .LiteralInteger, .quantifier = .required },
14888 .{ .kind = .IdRef, .quantifier = .required },
14889 .{ .kind = .IdRef, .quantifier = .optional },
16874 .operands = &.{
16875 .{ .kind = .id_ref, .quantifier = .required },
1489016876 },
1489116877 },
1489216878 .{
14893 .name = "DebugLexicalBlockDiscriminator",
16879 .name = "expm1",
1489416880 .opcode = 22,
14895 .operands = &[_]Operand{
14896 .{ .kind = .IdRef, .quantifier = .required },
14897 .{ .kind = .LiteralInteger, .quantifier = .required },
14898 .{ .kind = .IdRef, .quantifier = .required },
16881 .operands = &.{
16882 .{ .kind = .id_ref, .quantifier = .required },
1489916883 },
1490016884 },
1490116885 .{
14902 .name = "DebugScope",
16886 .name = "fabs",
1490316887 .opcode = 23,
14904 .operands = &[_]Operand{
14905 .{ .kind = .IdRef, .quantifier = .required },
14906 .{ .kind = .IdRef, .quantifier = .optional },
16888 .operands = &.{
16889 .{ .kind = .id_ref, .quantifier = .required },
1490716890 },
1490816891 },
1490916892 .{
14910 .name = "DebugNoScope",
16893 .name = "fdim",
1491116894 .opcode = 24,
14912 .operands = &[_]Operand{},
16895 .operands = &.{
16896 .{ .kind = .id_ref, .quantifier = .required },
16897 .{ .kind = .id_ref, .quantifier = .required },
16898 },
1491316899 },
1491416900 .{
14915 .name = "DebugInlinedAt",
16901 .name = "floor",
1491616902 .opcode = 25,
14917 .operands = &[_]Operand{
14918 .{ .kind = .LiteralInteger, .quantifier = .required },
14919 .{ .kind = .IdRef, .quantifier = .required },
14920 .{ .kind = .IdRef, .quantifier = .optional },
16903 .operands = &.{
16904 .{ .kind = .id_ref, .quantifier = .required },
1492116905 },
1492216906 },
1492316907 .{
14924 .name = "DebugLocalVariable",
16908 .name = "fma",
1492516909 .opcode = 26,
14926 .operands = &[_]Operand{
14927 .{ .kind = .IdRef, .quantifier = .required },
14928 .{ .kind = .IdRef, .quantifier = .required },
14929 .{ .kind = .IdRef, .quantifier = .required },
14930 .{ .kind = .LiteralInteger, .quantifier = .required },
14931 .{ .kind = .LiteralInteger, .quantifier = .required },
14932 .{ .kind = .IdRef, .quantifier = .required },
14933 .{ .kind = .@"OpenCL.DebugInfo.100.DebugInfoFlags", .quantifier = .required },
14934 .{ .kind = .LiteralInteger, .quantifier = .optional },
16910 .operands = &.{
16911 .{ .kind = .id_ref, .quantifier = .required },
16912 .{ .kind = .id_ref, .quantifier = .required },
16913 .{ .kind = .id_ref, .quantifier = .required },
1493516914 },
1493616915 },
1493716916 .{
14938 .name = "DebugInlinedVariable",
16917 .name = "fmax",
1493916918 .opcode = 27,
14940 .operands = &[_]Operand{
14941 .{ .kind = .IdRef, .quantifier = .required },
14942 .{ .kind = .IdRef, .quantifier = .required },
16919 .operands = &.{
16920 .{ .kind = .id_ref, .quantifier = .required },
16921 .{ .kind = .id_ref, .quantifier = .required },
1494316922 },
1494416923 },
1494516924 .{
14946 .name = "DebugDeclare",
16925 .name = "fmin",
1494716926 .opcode = 28,
14948 .operands = &[_]Operand{
14949 .{ .kind = .IdRef, .quantifier = .required },
14950 .{ .kind = .IdRef, .quantifier = .required },
14951 .{ .kind = .IdRef, .quantifier = .required },
16927 .operands = &.{
16928 .{ .kind = .id_ref, .quantifier = .required },
16929 .{ .kind = .id_ref, .quantifier = .required },
1495216930 },
1495316931 },
1495416932 .{
14955 .name = "DebugValue",
16933 .name = "fmod",
1495616934 .opcode = 29,
14957 .operands = &[_]Operand{
14958 .{ .kind = .IdRef, .quantifier = .required },
14959 .{ .kind = .IdRef, .quantifier = .required },
14960 .{ .kind = .IdRef, .quantifier = .required },
14961 .{ .kind = .IdRef, .quantifier = .variadic },
16935 .operands = &.{
16936 .{ .kind = .id_ref, .quantifier = .required },
16937 .{ .kind = .id_ref, .quantifier = .required },
1496216938 },
1496316939 },
1496416940 .{
14965 .name = "DebugOperation",
16941 .name = "fract",
1496616942 .opcode = 30,
14967 .operands = &[_]Operand{
14968 .{ .kind = .@"OpenCL.DebugInfo.100.DebugOperation", .quantifier = .required },
14969 .{ .kind = .LiteralInteger, .quantifier = .variadic },
16943 .operands = &.{
16944 .{ .kind = .id_ref, .quantifier = .required },
16945 .{ .kind = .id_ref, .quantifier = .required },
1497016946 },
1497116947 },
1497216948 .{
14973 .name = "DebugExpression",
16949 .name = "frexp",
1497416950 .opcode = 31,
14975 .operands = &[_]Operand{
14976 .{ .kind = .IdRef, .quantifier = .variadic },
16951 .operands = &.{
16952 .{ .kind = .id_ref, .quantifier = .required },
16953 .{ .kind = .id_ref, .quantifier = .required },
1497716954 },
1497816955 },
1497916956 .{
14980 .name = "DebugMacroDef",
16957 .name = "hypot",
1498116958 .opcode = 32,
14982 .operands = &[_]Operand{
14983 .{ .kind = .IdRef, .quantifier = .required },
14984 .{ .kind = .LiteralInteger, .quantifier = .required },
14985 .{ .kind = .IdRef, .quantifier = .required },
14986 .{ .kind = .IdRef, .quantifier = .optional },
16959 .operands = &.{
16960 .{ .kind = .id_ref, .quantifier = .required },
16961 .{ .kind = .id_ref, .quantifier = .required },
16962 },
16963 },
16964 .{
16965 .name = "ilogb",
16966 .opcode = 33,
16967 .operands = &.{
16968 .{ .kind = .id_ref, .quantifier = .required },
16969 },
16970 },
16971 .{
16972 .name = "ldexp",
16973 .opcode = 34,
16974 .operands = &.{
16975 .{ .kind = .id_ref, .quantifier = .required },
16976 .{ .kind = .id_ref, .quantifier = .required },
16977 },
16978 },
16979 .{
16980 .name = "lgamma",
16981 .opcode = 35,
16982 .operands = &.{
16983 .{ .kind = .id_ref, .quantifier = .required },
16984 },
16985 },
16986 .{
16987 .name = "lgamma_r",
16988 .opcode = 36,
16989 .operands = &.{
16990 .{ .kind = .id_ref, .quantifier = .required },
16991 .{ .kind = .id_ref, .quantifier = .required },
16992 },
16993 },
16994 .{
16995 .name = "log",
16996 .opcode = 37,
16997 .operands = &.{
16998 .{ .kind = .id_ref, .quantifier = .required },
16999 },
17000 },
17001 .{
17002 .name = "log2",
17003 .opcode = 38,
17004 .operands = &.{
17005 .{ .kind = .id_ref, .quantifier = .required },
17006 },
17007 },
17008 .{
17009 .name = "log10",
17010 .opcode = 39,
17011 .operands = &.{
17012 .{ .kind = .id_ref, .quantifier = .required },
17013 },
17014 },
17015 .{
17016 .name = "log1p",
17017 .opcode = 40,
17018 .operands = &.{
17019 .{ .kind = .id_ref, .quantifier = .required },
17020 },
17021 },
17022 .{
17023 .name = "logb",
17024 .opcode = 41,
17025 .operands = &.{
17026 .{ .kind = .id_ref, .quantifier = .required },
17027 },
17028 },
17029 .{
17030 .name = "mad",
17031 .opcode = 42,
17032 .operands = &.{
17033 .{ .kind = .id_ref, .quantifier = .required },
17034 .{ .kind = .id_ref, .quantifier = .required },
17035 .{ .kind = .id_ref, .quantifier = .required },
17036 },
17037 },
17038 .{
17039 .name = "maxmag",
17040 .opcode = 43,
17041 .operands = &.{
17042 .{ .kind = .id_ref, .quantifier = .required },
17043 .{ .kind = .id_ref, .quantifier = .required },
17044 },
17045 },
17046 .{
17047 .name = "minmag",
17048 .opcode = 44,
17049 .operands = &.{
17050 .{ .kind = .id_ref, .quantifier = .required },
17051 .{ .kind = .id_ref, .quantifier = .required },
17052 },
17053 },
17054 .{
17055 .name = "modf",
17056 .opcode = 45,
17057 .operands = &.{
17058 .{ .kind = .id_ref, .quantifier = .required },
17059 .{ .kind = .id_ref, .quantifier = .required },
17060 },
17061 },
17062 .{
17063 .name = "nan",
17064 .opcode = 46,
17065 .operands = &.{
17066 .{ .kind = .id_ref, .quantifier = .required },
17067 },
17068 },
17069 .{
17070 .name = "nextafter",
17071 .opcode = 47,
17072 .operands = &.{
17073 .{ .kind = .id_ref, .quantifier = .required },
17074 .{ .kind = .id_ref, .quantifier = .required },
17075 },
17076 },
17077 .{
17078 .name = "pow",
17079 .opcode = 48,
17080 .operands = &.{
17081 .{ .kind = .id_ref, .quantifier = .required },
17082 .{ .kind = .id_ref, .quantifier = .required },
17083 },
17084 },
17085 .{
17086 .name = "pown",
17087 .opcode = 49,
17088 .operands = &.{
17089 .{ .kind = .id_ref, .quantifier = .required },
17090 .{ .kind = .id_ref, .quantifier = .required },
1498717091 },
1498817092 },
1498917093 .{
14990 .name = "DebugMacroUndef",
14991 .opcode = 33,
14992 .operands = &[_]Operand{
14993 .{ .kind = .IdRef, .quantifier = .required },
14994 .{ .kind = .LiteralInteger, .quantifier = .required },
14995 .{ .kind = .IdRef, .quantifier = .required },
17094 .name = "powr",
17095 .opcode = 50,
17096 .operands = &.{
17097 .{ .kind = .id_ref, .quantifier = .required },
17098 .{ .kind = .id_ref, .quantifier = .required },
1499617099 },
1499717100 },
1499817101 .{
14999 .name = "DebugImportedEntity",
15000 .opcode = 34,
15001 .operands = &[_]Operand{
15002 .{ .kind = .IdRef, .quantifier = .required },
15003 .{ .kind = .@"OpenCL.DebugInfo.100.DebugImportedEntity", .quantifier = .required },
15004 .{ .kind = .IdRef, .quantifier = .required },
15005 .{ .kind = .IdRef, .quantifier = .required },
15006 .{ .kind = .LiteralInteger, .quantifier = .required },
15007 .{ .kind = .LiteralInteger, .quantifier = .required },
15008 .{ .kind = .IdRef, .quantifier = .required },
17102 .name = "remainder",
17103 .opcode = 51,
17104 .operands = &.{
17105 .{ .kind = .id_ref, .quantifier = .required },
17106 .{ .kind = .id_ref, .quantifier = .required },
1500917107 },
1501017108 },
1501117109 .{
15012 .name = "DebugSource",
15013 .opcode = 35,
15014 .operands = &[_]Operand{
15015 .{ .kind = .IdRef, .quantifier = .required },
15016 .{ .kind = .IdRef, .quantifier = .optional },
17110 .name = "remquo",
17111 .opcode = 52,
17112 .operands = &.{
17113 .{ .kind = .id_ref, .quantifier = .required },
17114 .{ .kind = .id_ref, .quantifier = .required },
17115 .{ .kind = .id_ref, .quantifier = .required },
1501717116 },
1501817117 },
1501917118 .{
15020 .name = "DebugModuleINTEL",
15021 .opcode = 36,
15022 .operands = &[_]Operand{
15023 .{ .kind = .IdRef, .quantifier = .required },
15024 .{ .kind = .IdRef, .quantifier = .required },
15025 .{ .kind = .IdRef, .quantifier = .required },
15026 .{ .kind = .LiteralInteger, .quantifier = .required },
15027 .{ .kind = .IdRef, .quantifier = .required },
15028 .{ .kind = .IdRef, .quantifier = .required },
15029 .{ .kind = .IdRef, .quantifier = .required },
15030 .{ .kind = .LiteralInteger, .quantifier = .required },
17119 .name = "rint",
17120 .opcode = 53,
17121 .operands = &.{
17122 .{ .kind = .id_ref, .quantifier = .required },
1503117123 },
1503217124 },
15033 },
15034 .SPV_AMD_shader_ballot => &[_]Instruction{
1503517125 .{
15036 .name = "SwizzleInvocationsAMD",
15037 .opcode = 1,
15038 .operands = &[_]Operand{
15039 .{ .kind = .IdRef, .quantifier = .required },
15040 .{ .kind = .IdRef, .quantifier = .required },
17126 .name = "rootn",
17127 .opcode = 54,
17128 .operands = &.{
17129 .{ .kind = .id_ref, .quantifier = .required },
17130 .{ .kind = .id_ref, .quantifier = .required },
1504117131 },
1504217132 },
1504317133 .{
15044 .name = "SwizzleInvocationsMaskedAMD",
15045 .opcode = 2,
15046 .operands = &[_]Operand{
15047 .{ .kind = .IdRef, .quantifier = .required },
15048 .{ .kind = .IdRef, .quantifier = .required },
17134 .name = "round",
17135 .opcode = 55,
17136 .operands = &.{
17137 .{ .kind = .id_ref, .quantifier = .required },
1504917138 },
1505017139 },
1505117140 .{
15052 .name = "WriteInvocationAMD",
15053 .opcode = 3,
15054 .operands = &[_]Operand{
15055 .{ .kind = .IdRef, .quantifier = .required },
15056 .{ .kind = .IdRef, .quantifier = .required },
15057 .{ .kind = .IdRef, .quantifier = .required },
17141 .name = "rsqrt",
17142 .opcode = 56,
17143 .operands = &.{
17144 .{ .kind = .id_ref, .quantifier = .required },
1505817145 },
1505917146 },
1506017147 .{
15061 .name = "MbcntAMD",
15062 .opcode = 4,
15063 .operands = &[_]Operand{
15064 .{ .kind = .IdRef, .quantifier = .required },
17148 .name = "sin",
17149 .opcode = 57,
17150 .operands = &.{
17151 .{ .kind = .id_ref, .quantifier = .required },
1506517152 },
1506617153 },
15067 },
15068 .@"NonSemantic.Shader.DebugInfo.100" => &[_]Instruction{
1506917154 .{
15070 .name = "DebugInfoNone",
15071 .opcode = 0,
15072 .operands = &[_]Operand{},
17155 .name = "sincos",
17156 .opcode = 58,
17157 .operands = &.{
17158 .{ .kind = .id_ref, .quantifier = .required },
17159 .{ .kind = .id_ref, .quantifier = .required },
17160 },
1507317161 },
1507417162 .{
15075 .name = "DebugCompilationUnit",
15076 .opcode = 1,
15077 .operands = &[_]Operand{
15078 .{ .kind = .IdRef, .quantifier = .required },
15079 .{ .kind = .IdRef, .quantifier = .required },
15080 .{ .kind = .IdRef, .quantifier = .required },
15081 .{ .kind = .IdRef, .quantifier = .required },
17163 .name = "sinh",
17164 .opcode = 59,
17165 .operands = &.{
17166 .{ .kind = .id_ref, .quantifier = .required },
1508217167 },
1508317168 },
1508417169 .{
15085 .name = "DebugTypeBasic",
15086 .opcode = 2,
15087 .operands = &[_]Operand{
15088 .{ .kind = .IdRef, .quantifier = .required },
15089 .{ .kind = .IdRef, .quantifier = .required },
15090 .{ .kind = .IdRef, .quantifier = .required },
15091 .{ .kind = .IdRef, .quantifier = .required },
17170 .name = "sinpi",
17171 .opcode = 60,
17172 .operands = &.{
17173 .{ .kind = .id_ref, .quantifier = .required },
1509217174 },
1509317175 },
1509417176 .{
15095 .name = "DebugTypePointer",
15096 .opcode = 3,
15097 .operands = &[_]Operand{
15098 .{ .kind = .IdRef, .quantifier = .required },
15099 .{ .kind = .IdRef, .quantifier = .required },
15100 .{ .kind = .IdRef, .quantifier = .required },
17177 .name = "sqrt",
17178 .opcode = 61,
17179 .operands = &.{
17180 .{ .kind = .id_ref, .quantifier = .required },
1510117181 },
1510217182 },
1510317183 .{
15104 .name = "DebugTypeQualifier",
15105 .opcode = 4,
15106 .operands = &[_]Operand{
15107 .{ .kind = .IdRef, .quantifier = .required },
15108 .{ .kind = .IdRef, .quantifier = .required },
17184 .name = "tan",
17185 .opcode = 62,
17186 .operands = &.{
17187 .{ .kind = .id_ref, .quantifier = .required },
1510917188 },
1511017189 },
1511117190 .{
15112 .name = "DebugTypeArray",
15113 .opcode = 5,
15114 .operands = &[_]Operand{
15115 .{ .kind = .IdRef, .quantifier = .required },
15116 .{ .kind = .IdRef, .quantifier = .variadic },
17191 .name = "tanh",
17192 .opcode = 63,
17193 .operands = &.{
17194 .{ .kind = .id_ref, .quantifier = .required },
1511717195 },
1511817196 },
1511917197 .{
15120 .name = "DebugTypeVector",
15121 .opcode = 6,
15122 .operands = &[_]Operand{
15123 .{ .kind = .IdRef, .quantifier = .required },
15124 .{ .kind = .IdRef, .quantifier = .required },
17198 .name = "tanpi",
17199 .opcode = 64,
17200 .operands = &.{
17201 .{ .kind = .id_ref, .quantifier = .required },
1512517202 },
1512617203 },
1512717204 .{
15128 .name = "DebugTypedef",
15129 .opcode = 7,
15130 .operands = &[_]Operand{
15131 .{ .kind = .IdRef, .quantifier = .required },
15132 .{ .kind = .IdRef, .quantifier = .required },
15133 .{ .kind = .IdRef, .quantifier = .required },
15134 .{ .kind = .IdRef, .quantifier = .required },
15135 .{ .kind = .IdRef, .quantifier = .required },
15136 .{ .kind = .IdRef, .quantifier = .required },
17205 .name = "tgamma",
17206 .opcode = 65,
17207 .operands = &.{
17208 .{ .kind = .id_ref, .quantifier = .required },
1513717209 },
1513817210 },
1513917211 .{
15140 .name = "DebugTypeFunction",
15141 .opcode = 8,
15142 .operands = &[_]Operand{
15143 .{ .kind = .IdRef, .quantifier = .required },
15144 .{ .kind = .IdRef, .quantifier = .required },
15145 .{ .kind = .IdRef, .quantifier = .variadic },
17212 .name = "trunc",
17213 .opcode = 66,
17214 .operands = &.{
17215 .{ .kind = .id_ref, .quantifier = .required },
1514617216 },
1514717217 },
1514817218 .{
15149 .name = "DebugTypeEnum",
15150 .opcode = 9,
15151 .operands = &[_]Operand{
15152 .{ .kind = .IdRef, .quantifier = .required },
15153 .{ .kind = .IdRef, .quantifier = .required },
15154 .{ .kind = .IdRef, .quantifier = .required },
15155 .{ .kind = .IdRef, .quantifier = .required },
15156 .{ .kind = .IdRef, .quantifier = .required },
15157 .{ .kind = .IdRef, .quantifier = .required },
15158 .{ .kind = .IdRef, .quantifier = .required },
15159 .{ .kind = .IdRef, .quantifier = .required },
15160 .{ .kind = .PairIdRefIdRef, .quantifier = .variadic },
17219 .name = "half_cos",
17220 .opcode = 67,
17221 .operands = &.{
17222 .{ .kind = .id_ref, .quantifier = .required },
1516117223 },
1516217224 },
1516317225 .{
15164 .name = "DebugTypeComposite",
15165 .opcode = 10,
15166 .operands = &[_]Operand{
15167 .{ .kind = .IdRef, .quantifier = .required },
15168 .{ .kind = .IdRef, .quantifier = .required },
15169 .{ .kind = .IdRef, .quantifier = .required },
15170 .{ .kind = .IdRef, .quantifier = .required },
15171 .{ .kind = .IdRef, .quantifier = .required },
15172 .{ .kind = .IdRef, .quantifier = .required },
15173 .{ .kind = .IdRef, .quantifier = .required },
15174 .{ .kind = .IdRef, .quantifier = .required },
15175 .{ .kind = .IdRef, .quantifier = .required },
15176 .{ .kind = .IdRef, .quantifier = .variadic },
17226 .name = "half_divide",
17227 .opcode = 68,
17228 .operands = &.{
17229 .{ .kind = .id_ref, .quantifier = .required },
17230 .{ .kind = .id_ref, .quantifier = .required },
1517717231 },
1517817232 },
1517917233 .{
15180 .name = "DebugTypeMember",
15181 .opcode = 11,
15182 .operands = &[_]Operand{
15183 .{ .kind = .IdRef, .quantifier = .required },
15184 .{ .kind = .IdRef, .quantifier = .required },
15185 .{ .kind = .IdRef, .quantifier = .required },
15186 .{ .kind = .IdRef, .quantifier = .required },
15187 .{ .kind = .IdRef, .quantifier = .required },
15188 .{ .kind = .IdRef, .quantifier = .required },
15189 .{ .kind = .IdRef, .quantifier = .required },
15190 .{ .kind = .IdRef, .quantifier = .required },
15191 .{ .kind = .IdRef, .quantifier = .optional },
17234 .name = "half_exp",
17235 .opcode = 69,
17236 .operands = &.{
17237 .{ .kind = .id_ref, .quantifier = .required },
1519217238 },
1519317239 },
1519417240 .{
15195 .name = "DebugTypeInheritance",
15196 .opcode = 12,
15197 .operands = &[_]Operand{
15198 .{ .kind = .IdRef, .quantifier = .required },
15199 .{ .kind = .IdRef, .quantifier = .required },
15200 .{ .kind = .IdRef, .quantifier = .required },
15201 .{ .kind = .IdRef, .quantifier = .required },
17241 .name = "half_exp2",
17242 .opcode = 70,
17243 .operands = &.{
17244 .{ .kind = .id_ref, .quantifier = .required },
1520217245 },
1520317246 },
1520417247 .{
15205 .name = "DebugTypePtrToMember",
15206 .opcode = 13,
15207 .operands = &[_]Operand{
15208 .{ .kind = .IdRef, .quantifier = .required },
15209 .{ .kind = .IdRef, .quantifier = .required },
17248 .name = "half_exp10",
17249 .opcode = 71,
17250 .operands = &.{
17251 .{ .kind = .id_ref, .quantifier = .required },
1521017252 },
1521117253 },
1521217254 .{
15213 .name = "DebugTypeTemplate",
15214 .opcode = 14,
15215 .operands = &[_]Operand{
15216 .{ .kind = .IdRef, .quantifier = .required },
15217 .{ .kind = .IdRef, .quantifier = .variadic },
17255 .name = "half_log",
17256 .opcode = 72,
17257 .operands = &.{
17258 .{ .kind = .id_ref, .quantifier = .required },
1521817259 },
1521917260 },
1522017261 .{
15221 .name = "DebugTypeTemplateParameter",
15222 .opcode = 15,
15223 .operands = &[_]Operand{
15224 .{ .kind = .IdRef, .quantifier = .required },
15225 .{ .kind = .IdRef, .quantifier = .required },
15226 .{ .kind = .IdRef, .quantifier = .required },
15227 .{ .kind = .IdRef, .quantifier = .required },
15228 .{ .kind = .IdRef, .quantifier = .required },
15229 .{ .kind = .IdRef, .quantifier = .required },
17262 .name = "half_log2",
17263 .opcode = 73,
17264 .operands = &.{
17265 .{ .kind = .id_ref, .quantifier = .required },
1523017266 },
1523117267 },
1523217268 .{
15233 .name = "DebugTypeTemplateTemplateParameter",
15234 .opcode = 16,
15235 .operands = &[_]Operand{
15236 .{ .kind = .IdRef, .quantifier = .required },
15237 .{ .kind = .IdRef, .quantifier = .required },
15238 .{ .kind = .IdRef, .quantifier = .required },
15239 .{ .kind = .IdRef, .quantifier = .required },
15240 .{ .kind = .IdRef, .quantifier = .required },
17269 .name = "half_log10",
17270 .opcode = 74,
17271 .operands = &.{
17272 .{ .kind = .id_ref, .quantifier = .required },
1524117273 },
1524217274 },
1524317275 .{
15244 .name = "DebugTypeTemplateParameterPack",
15245 .opcode = 17,
15246 .operands = &[_]Operand{
15247 .{ .kind = .IdRef, .quantifier = .required },
15248 .{ .kind = .IdRef, .quantifier = .required },
15249 .{ .kind = .IdRef, .quantifier = .required },
15250 .{ .kind = .IdRef, .quantifier = .required },
15251 .{ .kind = .IdRef, .quantifier = .variadic },
17276 .name = "half_powr",
17277 .opcode = 75,
17278 .operands = &.{
17279 .{ .kind = .id_ref, .quantifier = .required },
17280 .{ .kind = .id_ref, .quantifier = .required },
1525217281 },
1525317282 },
1525417283 .{
15255 .name = "DebugGlobalVariable",
15256 .opcode = 18,
15257 .operands = &[_]Operand{
15258 .{ .kind = .IdRef, .quantifier = .required },
15259 .{ .kind = .IdRef, .quantifier = .required },
15260 .{ .kind = .IdRef, .quantifier = .required },
15261 .{ .kind = .IdRef, .quantifier = .required },
15262 .{ .kind = .IdRef, .quantifier = .required },
15263 .{ .kind = .IdRef, .quantifier = .required },
15264 .{ .kind = .IdRef, .quantifier = .required },
15265 .{ .kind = .IdRef, .quantifier = .required },
15266 .{ .kind = .IdRef, .quantifier = .required },
15267 .{ .kind = .IdRef, .quantifier = .optional },
17284 .name = "half_recip",
17285 .opcode = 76,
17286 .operands = &.{
17287 .{ .kind = .id_ref, .quantifier = .required },
1526817288 },
1526917289 },
1527017290 .{
15271 .name = "DebugFunctionDeclaration",
15272 .opcode = 19,
15273 .operands = &[_]Operand{
15274 .{ .kind = .IdRef, .quantifier = .required },
15275 .{ .kind = .IdRef, .quantifier = .required },
15276 .{ .kind = .IdRef, .quantifier = .required },
15277 .{ .kind = .IdRef, .quantifier = .required },
15278 .{ .kind = .IdRef, .quantifier = .required },
15279 .{ .kind = .IdRef, .quantifier = .required },
15280 .{ .kind = .IdRef, .quantifier = .required },
15281 .{ .kind = .IdRef, .quantifier = .required },
17291 .name = "half_rsqrt",
17292 .opcode = 77,
17293 .operands = &.{
17294 .{ .kind = .id_ref, .quantifier = .required },
1528217295 },
1528317296 },
1528417297 .{
15285 .name = "DebugFunction",
15286 .opcode = 20,
15287 .operands = &[_]Operand{
15288 .{ .kind = .IdRef, .quantifier = .required },
15289 .{ .kind = .IdRef, .quantifier = .required },
15290 .{ .kind = .IdRef, .quantifier = .required },
15291 .{ .kind = .IdRef, .quantifier = .required },
15292 .{ .kind = .IdRef, .quantifier = .required },
15293 .{ .kind = .IdRef, .quantifier = .required },
15294 .{ .kind = .IdRef, .quantifier = .required },
15295 .{ .kind = .IdRef, .quantifier = .required },
15296 .{ .kind = .IdRef, .quantifier = .required },
15297 .{ .kind = .IdRef, .quantifier = .optional },
17298 .name = "half_sin",
17299 .opcode = 78,
17300 .operands = &.{
17301 .{ .kind = .id_ref, .quantifier = .required },
1529817302 },
1529917303 },
1530017304 .{
15301 .name = "DebugLexicalBlock",
15302 .opcode = 21,
15303 .operands = &[_]Operand{
15304 .{ .kind = .IdRef, .quantifier = .required },
15305 .{ .kind = .IdRef, .quantifier = .required },
15306 .{ .kind = .IdRef, .quantifier = .required },
15307 .{ .kind = .IdRef, .quantifier = .required },
15308 .{ .kind = .IdRef, .quantifier = .optional },
17305 .name = "half_sqrt",
17306 .opcode = 79,
17307 .operands = &.{
17308 .{ .kind = .id_ref, .quantifier = .required },
1530917309 },
1531017310 },
1531117311 .{
15312 .name = "DebugLexicalBlockDiscriminator",
15313 .opcode = 22,
15314 .operands = &[_]Operand{
15315 .{ .kind = .IdRef, .quantifier = .required },
15316 .{ .kind = .IdRef, .quantifier = .required },
15317 .{ .kind = .IdRef, .quantifier = .required },
17312 .name = "half_tan",
17313 .opcode = 80,
17314 .operands = &.{
17315 .{ .kind = .id_ref, .quantifier = .required },
1531817316 },
1531917317 },
1532017318 .{
15321 .name = "DebugScope",
15322 .opcode = 23,
15323 .operands = &[_]Operand{
15324 .{ .kind = .IdRef, .quantifier = .required },
15325 .{ .kind = .IdRef, .quantifier = .optional },
17319 .name = "native_cos",
17320 .opcode = 81,
17321 .operands = &.{
17322 .{ .kind = .id_ref, .quantifier = .required },
1532617323 },
1532717324 },
1532817325 .{
15329 .name = "DebugNoScope",
15330 .opcode = 24,
15331 .operands = &[_]Operand{},
17326 .name = "native_divide",
17327 .opcode = 82,
17328 .operands = &.{
17329 .{ .kind = .id_ref, .quantifier = .required },
17330 .{ .kind = .id_ref, .quantifier = .required },
17331 },
1533217332 },
1533317333 .{
15334 .name = "DebugInlinedAt",
15335 .opcode = 25,
15336 .operands = &[_]Operand{
15337 .{ .kind = .IdRef, .quantifier = .required },
15338 .{ .kind = .IdRef, .quantifier = .required },
15339 .{ .kind = .IdRef, .quantifier = .optional },
17334 .name = "native_exp",
17335 .opcode = 83,
17336 .operands = &.{
17337 .{ .kind = .id_ref, .quantifier = .required },
1534017338 },
1534117339 },
1534217340 .{
15343 .name = "DebugLocalVariable",
15344 .opcode = 26,
15345 .operands = &[_]Operand{
15346 .{ .kind = .IdRef, .quantifier = .required },
15347 .{ .kind = .IdRef, .quantifier = .required },
15348 .{ .kind = .IdRef, .quantifier = .required },
15349 .{ .kind = .IdRef, .quantifier = .required },
15350 .{ .kind = .IdRef, .quantifier = .required },
15351 .{ .kind = .IdRef, .quantifier = .required },
15352 .{ .kind = .IdRef, .quantifier = .required },
15353 .{ .kind = .IdRef, .quantifier = .optional },
17341 .name = "native_exp2",
17342 .opcode = 84,
17343 .operands = &.{
17344 .{ .kind = .id_ref, .quantifier = .required },
1535417345 },
1535517346 },
1535617347 .{
15357 .name = "DebugInlinedVariable",
15358 .opcode = 27,
15359 .operands = &[_]Operand{
15360 .{ .kind = .IdRef, .quantifier = .required },
15361 .{ .kind = .IdRef, .quantifier = .required },
17348 .name = "native_exp10",
17349 .opcode = 85,
17350 .operands = &.{
17351 .{ .kind = .id_ref, .quantifier = .required },
1536217352 },
1536317353 },
1536417354 .{
15365 .name = "DebugDeclare",
15366 .opcode = 28,
15367 .operands = &[_]Operand{
15368 .{ .kind = .IdRef, .quantifier = .required },
15369 .{ .kind = .IdRef, .quantifier = .required },
15370 .{ .kind = .IdRef, .quantifier = .required },
15371 .{ .kind = .IdRef, .quantifier = .variadic },
17355 .name = "native_log",
17356 .opcode = 86,
17357 .operands = &.{
17358 .{ .kind = .id_ref, .quantifier = .required },
1537217359 },
1537317360 },
1537417361 .{
15375 .name = "DebugValue",
15376 .opcode = 29,
15377 .operands = &[_]Operand{
15378 .{ .kind = .IdRef, .quantifier = .required },
15379 .{ .kind = .IdRef, .quantifier = .required },
15380 .{ .kind = .IdRef, .quantifier = .required },
15381 .{ .kind = .IdRef, .quantifier = .variadic },
17362 .name = "native_log2",
17363 .opcode = 87,
17364 .operands = &.{
17365 .{ .kind = .id_ref, .quantifier = .required },
1538217366 },
1538317367 },
1538417368 .{
15385 .name = "DebugOperation",
15386 .opcode = 30,
15387 .operands = &[_]Operand{
15388 .{ .kind = .IdRef, .quantifier = .required },
15389 .{ .kind = .IdRef, .quantifier = .variadic },
17369 .name = "native_log10",
17370 .opcode = 88,
17371 .operands = &.{
17372 .{ .kind = .id_ref, .quantifier = .required },
1539017373 },
1539117374 },
1539217375 .{
15393 .name = "DebugExpression",
15394 .opcode = 31,
15395 .operands = &[_]Operand{
15396 .{ .kind = .IdRef, .quantifier = .variadic },
17376 .name = "native_powr",
17377 .opcode = 89,
17378 .operands = &.{
17379 .{ .kind = .id_ref, .quantifier = .required },
17380 .{ .kind = .id_ref, .quantifier = .required },
1539717381 },
1539817382 },
1539917383 .{
15400 .name = "DebugMacroDef",
15401 .opcode = 32,
15402 .operands = &[_]Operand{
15403 .{ .kind = .IdRef, .quantifier = .required },
15404 .{ .kind = .IdRef, .quantifier = .required },
15405 .{ .kind = .IdRef, .quantifier = .required },
15406 .{ .kind = .IdRef, .quantifier = .optional },
17384 .name = "native_recip",
17385 .opcode = 90,
17386 .operands = &.{
17387 .{ .kind = .id_ref, .quantifier = .required },
1540717388 },
1540817389 },
1540917390 .{
15410 .name = "DebugMacroUndef",
15411 .opcode = 33,
15412 .operands = &[_]Operand{
15413 .{ .kind = .IdRef, .quantifier = .required },
15414 .{ .kind = .IdRef, .quantifier = .required },
15415 .{ .kind = .IdRef, .quantifier = .required },
17391 .name = "native_rsqrt",
17392 .opcode = 91,
17393 .operands = &.{
17394 .{ .kind = .id_ref, .quantifier = .required },
1541617395 },
1541717396 },
1541817397 .{
15419 .name = "DebugImportedEntity",
15420 .opcode = 34,
15421 .operands = &[_]Operand{
15422 .{ .kind = .IdRef, .quantifier = .required },
15423 .{ .kind = .IdRef, .quantifier = .required },
15424 .{ .kind = .IdRef, .quantifier = .required },
15425 .{ .kind = .IdRef, .quantifier = .required },
15426 .{ .kind = .IdRef, .quantifier = .required },
15427 .{ .kind = .IdRef, .quantifier = .required },
15428 .{ .kind = .IdRef, .quantifier = .required },
17398 .name = "native_sin",
17399 .opcode = 92,
17400 .operands = &.{
17401 .{ .kind = .id_ref, .quantifier = .required },
1542917402 },
1543017403 },
1543117404 .{
15432 .name = "DebugSource",
15433 .opcode = 35,
15434 .operands = &[_]Operand{
15435 .{ .kind = .IdRef, .quantifier = .required },
15436 .{ .kind = .IdRef, .quantifier = .optional },
17405 .name = "native_sqrt",
17406 .opcode = 93,
17407 .operands = &.{
17408 .{ .kind = .id_ref, .quantifier = .required },
1543717409 },
1543817410 },
1543917411 .{
15440 .name = "DebugFunctionDefinition",
15441 .opcode = 101,
15442 .operands = &[_]Operand{
15443 .{ .kind = .IdRef, .quantifier = .required },
15444 .{ .kind = .IdRef, .quantifier = .required },
17412 .name = "native_tan",
17413 .opcode = 94,
17414 .operands = &.{
17415 .{ .kind = .id_ref, .quantifier = .required },
1544517416 },
1544617417 },
1544717418 .{
15448 .name = "DebugSourceContinued",
15449 .opcode = 102,
15450 .operands = &[_]Operand{
15451 .{ .kind = .IdRef, .quantifier = .required },
17419 .name = "fclamp",
17420 .opcode = 95,
17421 .operands = &.{
17422 .{ .kind = .id_ref, .quantifier = .required },
17423 .{ .kind = .id_ref, .quantifier = .required },
17424 .{ .kind = .id_ref, .quantifier = .required },
1545217425 },
1545317426 },
1545417427 .{
15455 .name = "DebugLine",
15456 .opcode = 103,
15457 .operands = &[_]Operand{
15458 .{ .kind = .IdRef, .quantifier = .required },
15459 .{ .kind = .IdRef, .quantifier = .required },
15460 .{ .kind = .IdRef, .quantifier = .required },
15461 .{ .kind = .IdRef, .quantifier = .required },
15462 .{ .kind = .IdRef, .quantifier = .required },
17428 .name = "degrees",
17429 .opcode = 96,
17430 .operands = &.{
17431 .{ .kind = .id_ref, .quantifier = .required },
1546317432 },
1546417433 },
1546517434 .{
15466 .name = "DebugNoLine",
15467 .opcode = 104,
15468 .operands = &[_]Operand{},
17435 .name = "fmax_common",
17436 .opcode = 97,
17437 .operands = &.{
17438 .{ .kind = .id_ref, .quantifier = .required },
17439 .{ .kind = .id_ref, .quantifier = .required },
17440 },
1546917441 },
1547017442 .{
15471 .name = "DebugBuildIdentifier",
15472 .opcode = 105,
15473 .operands = &[_]Operand{
15474 .{ .kind = .IdRef, .quantifier = .required },
15475 .{ .kind = .IdRef, .quantifier = .required },
17443 .name = "fmin_common",
17444 .opcode = 98,
17445 .operands = &.{
17446 .{ .kind = .id_ref, .quantifier = .required },
17447 .{ .kind = .id_ref, .quantifier = .required },
1547617448 },
1547717449 },
1547817450 .{
15479 .name = "DebugStoragePath",
15480 .opcode = 106,
15481 .operands = &[_]Operand{
15482 .{ .kind = .IdRef, .quantifier = .required },
17451 .name = "mix",
17452 .opcode = 99,
17453 .operands = &.{
17454 .{ .kind = .id_ref, .quantifier = .required },
17455 .{ .kind = .id_ref, .quantifier = .required },
17456 .{ .kind = .id_ref, .quantifier = .required },
1548317457 },
1548417458 },
1548517459 .{
15486 .name = "DebugEntryPoint",
15487 .opcode = 107,
15488 .operands = &[_]Operand{
15489 .{ .kind = .IdRef, .quantifier = .required },
15490 .{ .kind = .IdRef, .quantifier = .required },
15491 .{ .kind = .IdRef, .quantifier = .required },
15492 .{ .kind = .IdRef, .quantifier = .required },
17460 .name = "radians",
17461 .opcode = 100,
17462 .operands = &.{
17463 .{ .kind = .id_ref, .quantifier = .required },
1549317464 },
1549417465 },
1549517466 .{
15496 .name = "DebugTypeMatrix",
15497 .opcode = 108,
15498 .operands = &[_]Operand{
15499 .{ .kind = .IdRef, .quantifier = .required },
15500 .{ .kind = .IdRef, .quantifier = .required },
15501 .{ .kind = .IdRef, .quantifier = .required },
17467 .name = "step",
17468 .opcode = 101,
17469 .operands = &.{
17470 .{ .kind = .id_ref, .quantifier = .required },
17471 .{ .kind = .id_ref, .quantifier = .required },
1550217472 },
1550317473 },
15504 },
15505 .@"NonSemantic.VkspReflection" => &[_]Instruction{
1550617474 .{
15507 .name = "Configuration",
15508 .opcode = 1,
15509 .operands = &[_]Operand{
15510 .{ .kind = .LiteralString, .quantifier = .required },
15511 .{ .kind = .LiteralInteger, .quantifier = .required },
15512 .{ .kind = .LiteralString, .quantifier = .required },
15513 .{ .kind = .LiteralString, .quantifier = .required },
15514 .{ .kind = .LiteralString, .quantifier = .required },
15515 .{ .kind = .LiteralInteger, .quantifier = .required },
15516 .{ .kind = .LiteralInteger, .quantifier = .required },
15517 .{ .kind = .LiteralInteger, .quantifier = .required },
17475 .name = "smoothstep",
17476 .opcode = 102,
17477 .operands = &.{
17478 .{ .kind = .id_ref, .quantifier = .required },
17479 .{ .kind = .id_ref, .quantifier = .required },
17480 .{ .kind = .id_ref, .quantifier = .required },
1551817481 },
1551917482 },
1552017483 .{
15521 .name = "StartCounter",
15522 .opcode = 2,
15523 .operands = &[_]Operand{
15524 .{ .kind = .LiteralString, .quantifier = .required },
17484 .name = "sign",
17485 .opcode = 103,
17486 .operands = &.{
17487 .{ .kind = .id_ref, .quantifier = .required },
1552517488 },
1552617489 },
1552717490 .{
15528 .name = "StopCounter",
15529 .opcode = 3,
15530 .operands = &[_]Operand{
15531 .{ .kind = .IdRef, .quantifier = .required },
17491 .name = "cross",
17492 .opcode = 104,
17493 .operands = &.{
17494 .{ .kind = .id_ref, .quantifier = .required },
17495 .{ .kind = .id_ref, .quantifier = .required },
1553217496 },
1553317497 },
1553417498 .{
15535 .name = "PushConstants",
15536 .opcode = 4,
15537 .operands = &[_]Operand{
15538 .{ .kind = .LiteralInteger, .quantifier = .required },
15539 .{ .kind = .LiteralInteger, .quantifier = .required },
15540 .{ .kind = .LiteralString, .quantifier = .required },
15541 .{ .kind = .LiteralInteger, .quantifier = .required },
17499 .name = "distance",
17500 .opcode = 105,
17501 .operands = &.{
17502 .{ .kind = .id_ref, .quantifier = .required },
17503 .{ .kind = .id_ref, .quantifier = .required },
1554217504 },
1554317505 },
1554417506 .{
15545 .name = "SpecializationMapEntry",
15546 .opcode = 5,
15547 .operands = &[_]Operand{
15548 .{ .kind = .LiteralInteger, .quantifier = .required },
15549 .{ .kind = .LiteralInteger, .quantifier = .required },
15550 .{ .kind = .LiteralInteger, .quantifier = .required },
17507 .name = "length",
17508 .opcode = 106,
17509 .operands = &.{
17510 .{ .kind = .id_ref, .quantifier = .required },
1555117511 },
1555217512 },
1555317513 .{
15554 .name = "DescriptorSetBuffer",
15555 .opcode = 6,
15556 .operands = &[_]Operand{
15557 .{ .kind = .LiteralInteger, .quantifier = .required },
15558 .{ .kind = .LiteralInteger, .quantifier = .required },
15559 .{ .kind = .LiteralInteger, .quantifier = .required },
15560 .{ .kind = .LiteralInteger, .quantifier = .required },
15561 .{ .kind = .LiteralInteger, .quantifier = .required },
15562 .{ .kind = .LiteralInteger, .quantifier = .required },
15563 .{ .kind = .LiteralInteger, .quantifier = .required },
15564 .{ .kind = .LiteralInteger, .quantifier = .required },
15565 .{ .kind = .LiteralInteger, .quantifier = .required },
15566 .{ .kind = .LiteralInteger, .quantifier = .required },
15567 .{ .kind = .LiteralInteger, .quantifier = .required },
15568 .{ .kind = .LiteralInteger, .quantifier = .required },
15569 .{ .kind = .LiteralInteger, .quantifier = .required },
17514 .name = "normalize",
17515 .opcode = 107,
17516 .operands = &.{
17517 .{ .kind = .id_ref, .quantifier = .required },
1557017518 },
1557117519 },
1557217520 .{
15573 .name = "DescriptorSetImage",
15574 .opcode = 7,
15575 .operands = &[_]Operand{
15576 .{ .kind = .LiteralInteger, .quantifier = .required },
15577 .{ .kind = .LiteralInteger, .quantifier = .required },
15578 .{ .kind = .LiteralInteger, .quantifier = .required },
15579 .{ .kind = .LiteralInteger, .quantifier = .required },
15580 .{ .kind = .LiteralInteger, .quantifier = .required },
15581 .{ .kind = .LiteralInteger, .quantifier = .required },
15582 .{ .kind = .LiteralInteger, .quantifier = .required },
15583 .{ .kind = .LiteralInteger, .quantifier = .required },
15584 .{ .kind = .LiteralInteger, .quantifier = .required },
15585 .{ .kind = .LiteralInteger, .quantifier = .required },
15586 .{ .kind = .LiteralInteger, .quantifier = .required },
15587 .{ .kind = .LiteralInteger, .quantifier = .required },
15588 .{ .kind = .LiteralInteger, .quantifier = .required },
15589 .{ .kind = .LiteralInteger, .quantifier = .required },
15590 .{ .kind = .LiteralInteger, .quantifier = .required },
15591 .{ .kind = .LiteralInteger, .quantifier = .required },
15592 .{ .kind = .LiteralInteger, .quantifier = .required },
15593 .{ .kind = .LiteralInteger, .quantifier = .required },
15594 .{ .kind = .LiteralInteger, .quantifier = .required },
15595 .{ .kind = .LiteralInteger, .quantifier = .required },
15596 .{ .kind = .LiteralInteger, .quantifier = .required },
15597 .{ .kind = .LiteralInteger, .quantifier = .required },
15598 .{ .kind = .LiteralInteger, .quantifier = .required },
15599 .{ .kind = .LiteralInteger, .quantifier = .required },
15600 .{ .kind = .LiteralInteger, .quantifier = .required },
15601 .{ .kind = .LiteralInteger, .quantifier = .required },
15602 .{ .kind = .LiteralInteger, .quantifier = .required },
15603 .{ .kind = .LiteralInteger, .quantifier = .required },
15604 .{ .kind = .LiteralInteger, .quantifier = .required },
15605 .{ .kind = .LiteralInteger, .quantifier = .required },
15606 .{ .kind = .LiteralInteger, .quantifier = .required },
15607 .{ .kind = .LiteralInteger, .quantifier = .required },
15608 .{ .kind = .LiteralInteger, .quantifier = .required },
17521 .name = "fast_distance",
17522 .opcode = 108,
17523 .operands = &.{
17524 .{ .kind = .id_ref, .quantifier = .required },
17525 .{ .kind = .id_ref, .quantifier = .required },
1560917526 },
1561017527 },
1561117528 .{
15612 .name = "DescriptorSetSampler",
15613 .opcode = 8,
15614 .operands = &[_]Operand{
15615 .{ .kind = .LiteralInteger, .quantifier = .required },
15616 .{ .kind = .LiteralInteger, .quantifier = .required },
15617 .{ .kind = .LiteralInteger, .quantifier = .required },
15618 .{ .kind = .LiteralInteger, .quantifier = .required },
15619 .{ .kind = .LiteralInteger, .quantifier = .required },
15620 .{ .kind = .LiteralInteger, .quantifier = .required },
15621 .{ .kind = .LiteralInteger, .quantifier = .required },
15622 .{ .kind = .LiteralInteger, .quantifier = .required },
15623 .{ .kind = .LiteralInteger, .quantifier = .required },
15624 .{ .kind = .LiteralInteger, .quantifier = .required },
15625 .{ .kind = .LiteralFloat, .quantifier = .required },
15626 .{ .kind = .LiteralInteger, .quantifier = .required },
15627 .{ .kind = .LiteralFloat, .quantifier = .required },
15628 .{ .kind = .LiteralInteger, .quantifier = .required },
15629 .{ .kind = .LiteralInteger, .quantifier = .required },
15630 .{ .kind = .LiteralFloat, .quantifier = .required },
15631 .{ .kind = .LiteralFloat, .quantifier = .required },
15632 .{ .kind = .LiteralInteger, .quantifier = .required },
15633 .{ .kind = .LiteralInteger, .quantifier = .required },
17529 .name = "fast_length",
17530 .opcode = 109,
17531 .operands = &.{
17532 .{ .kind = .id_ref, .quantifier = .required },
1563417533 },
1563517534 },
15636 },
15637 .@"NonSemantic.ClspvReflection.6" => &[_]Instruction{
1563817535 .{
15639 .name = "Kernel",
15640 .opcode = 1,
15641 .operands = &[_]Operand{
15642 .{ .kind = .IdRef, .quantifier = .required },
15643 .{ .kind = .IdRef, .quantifier = .required },
15644 .{ .kind = .IdRef, .quantifier = .optional },
15645 .{ .kind = .IdRef, .quantifier = .optional },
15646 .{ .kind = .IdRef, .quantifier = .optional },
17536 .name = "fast_normalize",
17537 .opcode = 110,
17538 .operands = &.{
17539 .{ .kind = .id_ref, .quantifier = .required },
1564717540 },
1564817541 },
1564917542 .{
15650 .name = "ArgumentInfo",
15651 .opcode = 2,
15652 .operands = &[_]Operand{
15653 .{ .kind = .IdRef, .quantifier = .required },
15654 .{ .kind = .IdRef, .quantifier = .optional },
15655 .{ .kind = .IdRef, .quantifier = .optional },
15656 .{ .kind = .IdRef, .quantifier = .optional },
15657 .{ .kind = .IdRef, .quantifier = .optional },
17543 .name = "s_abs",
17544 .opcode = 141,
17545 .operands = &.{
17546 .{ .kind = .id_ref, .quantifier = .required },
1565817547 },
1565917548 },
1566017549 .{
15661 .name = "ArgumentStorageBuffer",
15662 .opcode = 3,
15663 .operands = &[_]Operand{
15664 .{ .kind = .IdRef, .quantifier = .required },
15665 .{ .kind = .IdRef, .quantifier = .required },
15666 .{ .kind = .IdRef, .quantifier = .required },
15667 .{ .kind = .IdRef, .quantifier = .required },
15668 .{ .kind = .IdRef, .quantifier = .optional },
17550 .name = "s_abs_diff",
17551 .opcode = 142,
17552 .operands = &.{
17553 .{ .kind = .id_ref, .quantifier = .required },
17554 .{ .kind = .id_ref, .quantifier = .required },
1566917555 },
1567017556 },
1567117557 .{
15672 .name = "ArgumentUniform",
15673 .opcode = 4,
15674 .operands = &[_]Operand{
15675 .{ .kind = .IdRef, .quantifier = .required },
15676 .{ .kind = .IdRef, .quantifier = .required },
15677 .{ .kind = .IdRef, .quantifier = .required },
15678 .{ .kind = .IdRef, .quantifier = .required },
15679 .{ .kind = .IdRef, .quantifier = .optional },
17558 .name = "s_add_sat",
17559 .opcode = 143,
17560 .operands = &.{
17561 .{ .kind = .id_ref, .quantifier = .required },
17562 .{ .kind = .id_ref, .quantifier = .required },
1568017563 },
1568117564 },
1568217565 .{
15683 .name = "ArgumentPodStorageBuffer",
15684 .opcode = 5,
15685 .operands = &[_]Operand{
15686 .{ .kind = .IdRef, .quantifier = .required },
15687 .{ .kind = .IdRef, .quantifier = .required },
15688 .{ .kind = .IdRef, .quantifier = .required },
15689 .{ .kind = .IdRef, .quantifier = .required },
15690 .{ .kind = .IdRef, .quantifier = .required },
15691 .{ .kind = .IdRef, .quantifier = .required },
15692 .{ .kind = .IdRef, .quantifier = .optional },
17566 .name = "u_add_sat",
17567 .opcode = 144,
17568 .operands = &.{
17569 .{ .kind = .id_ref, .quantifier = .required },
17570 .{ .kind = .id_ref, .quantifier = .required },
1569317571 },
1569417572 },
1569517573 .{
15696 .name = "ArgumentPodUniform",
15697 .opcode = 6,
15698 .operands = &[_]Operand{
15699 .{ .kind = .IdRef, .quantifier = .required },
15700 .{ .kind = .IdRef, .quantifier = .required },
15701 .{ .kind = .IdRef, .quantifier = .required },
15702 .{ .kind = .IdRef, .quantifier = .required },
15703 .{ .kind = .IdRef, .quantifier = .required },
15704 .{ .kind = .IdRef, .quantifier = .required },
15705 .{ .kind = .IdRef, .quantifier = .optional },
17574 .name = "s_hadd",
17575 .opcode = 145,
17576 .operands = &.{
17577 .{ .kind = .id_ref, .quantifier = .required },
17578 .{ .kind = .id_ref, .quantifier = .required },
1570617579 },
1570717580 },
1570817581 .{
15709 .name = "ArgumentPodPushConstant",
15710 .opcode = 7,
15711 .operands = &[_]Operand{
15712 .{ .kind = .IdRef, .quantifier = .required },
15713 .{ .kind = .IdRef, .quantifier = .required },
15714 .{ .kind = .IdRef, .quantifier = .required },
15715 .{ .kind = .IdRef, .quantifier = .required },
15716 .{ .kind = .IdRef, .quantifier = .optional },
17582 .name = "u_hadd",
17583 .opcode = 146,
17584 .operands = &.{
17585 .{ .kind = .id_ref, .quantifier = .required },
17586 .{ .kind = .id_ref, .quantifier = .required },
1571717587 },
1571817588 },
1571917589 .{
15720 .name = "ArgumentSampledImage",
15721 .opcode = 8,
15722 .operands = &[_]Operand{
15723 .{ .kind = .IdRef, .quantifier = .required },
15724 .{ .kind = .IdRef, .quantifier = .required },
15725 .{ .kind = .IdRef, .quantifier = .required },
15726 .{ .kind = .IdRef, .quantifier = .required },
15727 .{ .kind = .IdRef, .quantifier = .optional },
17590 .name = "s_rhadd",
17591 .opcode = 147,
17592 .operands = &.{
17593 .{ .kind = .id_ref, .quantifier = .required },
17594 .{ .kind = .id_ref, .quantifier = .required },
1572817595 },
1572917596 },
1573017597 .{
15731 .name = "ArgumentStorageImage",
15732 .opcode = 9,
15733 .operands = &[_]Operand{
15734 .{ .kind = .IdRef, .quantifier = .required },
15735 .{ .kind = .IdRef, .quantifier = .required },
15736 .{ .kind = .IdRef, .quantifier = .required },
15737 .{ .kind = .IdRef, .quantifier = .required },
15738 .{ .kind = .IdRef, .quantifier = .optional },
17598 .name = "u_rhadd",
17599 .opcode = 148,
17600 .operands = &.{
17601 .{ .kind = .id_ref, .quantifier = .required },
17602 .{ .kind = .id_ref, .quantifier = .required },
1573917603 },
1574017604 },
1574117605 .{
15742 .name = "ArgumentSampler",
15743 .opcode = 10,
15744 .operands = &[_]Operand{
15745 .{ .kind = .IdRef, .quantifier = .required },
15746 .{ .kind = .IdRef, .quantifier = .required },
15747 .{ .kind = .IdRef, .quantifier = .required },
15748 .{ .kind = .IdRef, .quantifier = .required },
15749 .{ .kind = .IdRef, .quantifier = .optional },
17606 .name = "s_clamp",
17607 .opcode = 149,
17608 .operands = &.{
17609 .{ .kind = .id_ref, .quantifier = .required },
17610 .{ .kind = .id_ref, .quantifier = .required },
17611 .{ .kind = .id_ref, .quantifier = .required },
1575017612 },
1575117613 },
1575217614 .{
15753 .name = "ArgumentWorkgroup",
15754 .opcode = 11,
15755 .operands = &[_]Operand{
15756 .{ .kind = .IdRef, .quantifier = .required },
15757 .{ .kind = .IdRef, .quantifier = .required },
15758 .{ .kind = .IdRef, .quantifier = .required },
15759 .{ .kind = .IdRef, .quantifier = .required },
15760 .{ .kind = .IdRef, .quantifier = .optional },
17615 .name = "u_clamp",
17616 .opcode = 150,
17617 .operands = &.{
17618 .{ .kind = .id_ref, .quantifier = .required },
17619 .{ .kind = .id_ref, .quantifier = .required },
17620 .{ .kind = .id_ref, .quantifier = .required },
1576117621 },
1576217622 },
1576317623 .{
15764 .name = "SpecConstantWorkgroupSize",
15765 .opcode = 12,
15766 .operands = &[_]Operand{
15767 .{ .kind = .IdRef, .quantifier = .required },
15768 .{ .kind = .IdRef, .quantifier = .required },
15769 .{ .kind = .IdRef, .quantifier = .required },
17624 .name = "clz",
17625 .opcode = 151,
17626 .operands = &.{
17627 .{ .kind = .id_ref, .quantifier = .required },
1577017628 },
1577117629 },
1577217630 .{
15773 .name = "SpecConstantGlobalOffset",
15774 .opcode = 13,
15775 .operands = &[_]Operand{
15776 .{ .kind = .IdRef, .quantifier = .required },
15777 .{ .kind = .IdRef, .quantifier = .required },
15778 .{ .kind = .IdRef, .quantifier = .required },
17631 .name = "ctz",
17632 .opcode = 152,
17633 .operands = &.{
17634 .{ .kind = .id_ref, .quantifier = .required },
1577917635 },
1578017636 },
1578117637 .{
15782 .name = "SpecConstantWorkDim",
15783 .opcode = 14,
15784 .operands = &[_]Operand{
15785 .{ .kind = .IdRef, .quantifier = .required },
17638 .name = "s_mad_hi",
17639 .opcode = 153,
17640 .operands = &.{
17641 .{ .kind = .id_ref, .quantifier = .required },
17642 .{ .kind = .id_ref, .quantifier = .required },
17643 .{ .kind = .id_ref, .quantifier = .required },
1578617644 },
1578717645 },
1578817646 .{
15789 .name = "PushConstantGlobalOffset",
15790 .opcode = 15,
15791 .operands = &[_]Operand{
15792 .{ .kind = .IdRef, .quantifier = .required },
15793 .{ .kind = .IdRef, .quantifier = .required },
17647 .name = "u_mad_sat",
17648 .opcode = 154,
17649 .operands = &.{
17650 .{ .kind = .id_ref, .quantifier = .required },
17651 .{ .kind = .id_ref, .quantifier = .required },
17652 .{ .kind = .id_ref, .quantifier = .required },
1579417653 },
1579517654 },
1579617655 .{
15797 .name = "PushConstantEnqueuedLocalSize",
15798 .opcode = 16,
15799 .operands = &[_]Operand{
15800 .{ .kind = .IdRef, .quantifier = .required },
15801 .{ .kind = .IdRef, .quantifier = .required },
17656 .name = "s_mad_sat",
17657 .opcode = 155,
17658 .operands = &.{
17659 .{ .kind = .id_ref, .quantifier = .required },
17660 .{ .kind = .id_ref, .quantifier = .required },
17661 .{ .kind = .id_ref, .quantifier = .required },
1580217662 },
1580317663 },
1580417664 .{
15805 .name = "PushConstantGlobalSize",
15806 .opcode = 17,
15807 .operands = &[_]Operand{
15808 .{ .kind = .IdRef, .quantifier = .required },
15809 .{ .kind = .IdRef, .quantifier = .required },
17665 .name = "s_max",
17666 .opcode = 156,
17667 .operands = &.{
17668 .{ .kind = .id_ref, .quantifier = .required },
17669 .{ .kind = .id_ref, .quantifier = .required },
1581017670 },
1581117671 },
1581217672 .{
15813 .name = "PushConstantRegionOffset",
15814 .opcode = 18,
15815 .operands = &[_]Operand{
15816 .{ .kind = .IdRef, .quantifier = .required },
15817 .{ .kind = .IdRef, .quantifier = .required },
17673 .name = "u_max",
17674 .opcode = 157,
17675 .operands = &.{
17676 .{ .kind = .id_ref, .quantifier = .required },
17677 .{ .kind = .id_ref, .quantifier = .required },
1581817678 },
1581917679 },
1582017680 .{
15821 .name = "PushConstantNumWorkgroups",
15822 .opcode = 19,
15823 .operands = &[_]Operand{
15824 .{ .kind = .IdRef, .quantifier = .required },
15825 .{ .kind = .IdRef, .quantifier = .required },
17681 .name = "s_min",
17682 .opcode = 158,
17683 .operands = &.{
17684 .{ .kind = .id_ref, .quantifier = .required },
17685 .{ .kind = .id_ref, .quantifier = .required },
1582617686 },
1582717687 },
1582817688 .{
15829 .name = "PushConstantRegionGroupOffset",
15830 .opcode = 20,
15831 .operands = &[_]Operand{
15832 .{ .kind = .IdRef, .quantifier = .required },
15833 .{ .kind = .IdRef, .quantifier = .required },
17689 .name = "u_min",
17690 .opcode = 159,
17691 .operands = &.{
17692 .{ .kind = .id_ref, .quantifier = .required },
17693 .{ .kind = .id_ref, .quantifier = .required },
1583417694 },
1583517695 },
1583617696 .{
15837 .name = "ConstantDataStorageBuffer",
15838 .opcode = 21,
15839 .operands = &[_]Operand{
15840 .{ .kind = .IdRef, .quantifier = .required },
15841 .{ .kind = .IdRef, .quantifier = .required },
15842 .{ .kind = .IdRef, .quantifier = .required },
17697 .name = "s_mul_hi",
17698 .opcode = 160,
17699 .operands = &.{
17700 .{ .kind = .id_ref, .quantifier = .required },
17701 .{ .kind = .id_ref, .quantifier = .required },
1584317702 },
1584417703 },
1584517704 .{
15846 .name = "ConstantDataUniform",
15847 .opcode = 22,
15848 .operands = &[_]Operand{
15849 .{ .kind = .IdRef, .quantifier = .required },
15850 .{ .kind = .IdRef, .quantifier = .required },
15851 .{ .kind = .IdRef, .quantifier = .required },
17705 .name = "rotate",
17706 .opcode = 161,
17707 .operands = &.{
17708 .{ .kind = .id_ref, .quantifier = .required },
17709 .{ .kind = .id_ref, .quantifier = .required },
1585217710 },
1585317711 },
1585417712 .{
15855 .name = "LiteralSampler",
15856 .opcode = 23,
15857 .operands = &[_]Operand{
15858 .{ .kind = .IdRef, .quantifier = .required },
15859 .{ .kind = .IdRef, .quantifier = .required },
15860 .{ .kind = .IdRef, .quantifier = .required },
17713 .name = "s_sub_sat",
17714 .opcode = 162,
17715 .operands = &.{
17716 .{ .kind = .id_ref, .quantifier = .required },
17717 .{ .kind = .id_ref, .quantifier = .required },
1586117718 },
1586217719 },
1586317720 .{
15864 .name = "PropertyRequiredWorkgroupSize",
15865 .opcode = 24,
15866 .operands = &[_]Operand{
15867 .{ .kind = .IdRef, .quantifier = .required },
15868 .{ .kind = .IdRef, .quantifier = .required },
15869 .{ .kind = .IdRef, .quantifier = .required },
15870 .{ .kind = .IdRef, .quantifier = .required },
17721 .name = "u_sub_sat",
17722 .opcode = 163,
17723 .operands = &.{
17724 .{ .kind = .id_ref, .quantifier = .required },
17725 .{ .kind = .id_ref, .quantifier = .required },
1587117726 },
1587217727 },
1587317728 .{
15874 .name = "SpecConstantSubgroupMaxSize",
15875 .opcode = 25,
15876 .operands = &[_]Operand{
15877 .{ .kind = .IdRef, .quantifier = .required },
17729 .name = "u_upsample",
17730 .opcode = 164,
17731 .operands = &.{
17732 .{ .kind = .id_ref, .quantifier = .required },
17733 .{ .kind = .id_ref, .quantifier = .required },
1587817734 },
1587917735 },
1588017736 .{
15881 .name = "ArgumentPointerPushConstant",
15882 .opcode = 26,
15883 .operands = &[_]Operand{
15884 .{ .kind = .IdRef, .quantifier = .required },
15885 .{ .kind = .IdRef, .quantifier = .required },
15886 .{ .kind = .IdRef, .quantifier = .required },
15887 .{ .kind = .IdRef, .quantifier = .required },
15888 .{ .kind = .IdRef, .quantifier = .optional },
17737 .name = "s_upsample",
17738 .opcode = 165,
17739 .operands = &.{
17740 .{ .kind = .id_ref, .quantifier = .required },
17741 .{ .kind = .id_ref, .quantifier = .required },
1588917742 },
1589017743 },
1589117744 .{
15892 .name = "ArgumentPointerUniform",
15893 .opcode = 27,
15894 .operands = &[_]Operand{
15895 .{ .kind = .IdRef, .quantifier = .required },
15896 .{ .kind = .IdRef, .quantifier = .required },
15897 .{ .kind = .IdRef, .quantifier = .required },
15898 .{ .kind = .IdRef, .quantifier = .required },
15899 .{ .kind = .IdRef, .quantifier = .required },
15900 .{ .kind = .IdRef, .quantifier = .required },
15901 .{ .kind = .IdRef, .quantifier = .optional },
17745 .name = "popcount",
17746 .opcode = 166,
17747 .operands = &.{
17748 .{ .kind = .id_ref, .quantifier = .required },
1590217749 },
1590317750 },
1590417751 .{
15905 .name = "ProgramScopeVariablesStorageBuffer",
15906 .opcode = 28,
15907 .operands = &[_]Operand{
15908 .{ .kind = .IdRef, .quantifier = .required },
15909 .{ .kind = .IdRef, .quantifier = .required },
15910 .{ .kind = .IdRef, .quantifier = .required },
17752 .name = "s_mad24",
17753 .opcode = 167,
17754 .operands = &.{
17755 .{ .kind = .id_ref, .quantifier = .required },
17756 .{ .kind = .id_ref, .quantifier = .required },
17757 .{ .kind = .id_ref, .quantifier = .required },
1591117758 },
1591217759 },
1591317760 .{
15914 .name = "ProgramScopeVariablePointerRelocation",
15915 .opcode = 29,
15916 .operands = &[_]Operand{
15917 .{ .kind = .IdRef, .quantifier = .required },
15918 .{ .kind = .IdRef, .quantifier = .required },
15919 .{ .kind = .IdRef, .quantifier = .required },
17761 .name = "u_mad24",
17762 .opcode = 168,
17763 .operands = &.{
17764 .{ .kind = .id_ref, .quantifier = .required },
17765 .{ .kind = .id_ref, .quantifier = .required },
17766 .{ .kind = .id_ref, .quantifier = .required },
1592017767 },
1592117768 },
1592217769 .{
15923 .name = "ImageArgumentInfoChannelOrderPushConstant",
15924 .opcode = 30,
15925 .operands = &[_]Operand{
15926 .{ .kind = .IdRef, .quantifier = .required },
15927 .{ .kind = .IdRef, .quantifier = .required },
15928 .{ .kind = .IdRef, .quantifier = .required },
15929 .{ .kind = .IdRef, .quantifier = .required },
17770 .name = "s_mul24",
17771 .opcode = 169,
17772 .operands = &.{
17773 .{ .kind = .id_ref, .quantifier = .required },
17774 .{ .kind = .id_ref, .quantifier = .required },
1593017775 },
1593117776 },
1593217777 .{
15933 .name = "ImageArgumentInfoChannelDataTypePushConstant",
15934 .opcode = 31,
15935 .operands = &[_]Operand{
15936 .{ .kind = .IdRef, .quantifier = .required },
15937 .{ .kind = .IdRef, .quantifier = .required },
15938 .{ .kind = .IdRef, .quantifier = .required },
15939 .{ .kind = .IdRef, .quantifier = .required },
17778 .name = "u_mul24",
17779 .opcode = 170,
17780 .operands = &.{
17781 .{ .kind = .id_ref, .quantifier = .required },
17782 .{ .kind = .id_ref, .quantifier = .required },
1594017783 },
1594117784 },
1594217785 .{
15943 .name = "ImageArgumentInfoChannelOrderUniform",
15944 .opcode = 32,
15945 .operands = &[_]Operand{
15946 .{ .kind = .IdRef, .quantifier = .required },
15947 .{ .kind = .IdRef, .quantifier = .required },
15948 .{ .kind = .IdRef, .quantifier = .required },
15949 .{ .kind = .IdRef, .quantifier = .required },
15950 .{ .kind = .IdRef, .quantifier = .required },
15951 .{ .kind = .IdRef, .quantifier = .required },
17786 .name = "vloadn",
17787 .opcode = 171,
17788 .operands = &.{
17789 .{ .kind = .id_ref, .quantifier = .required },
17790 .{ .kind = .id_ref, .quantifier = .required },
17791 .{ .kind = .literal_integer, .quantifier = .required },
1595217792 },
1595317793 },
1595417794 .{
15955 .name = "ImageArgumentInfoChannelDataTypeUniform",
15956 .opcode = 33,
15957 .operands = &[_]Operand{
15958 .{ .kind = .IdRef, .quantifier = .required },
15959 .{ .kind = .IdRef, .quantifier = .required },
15960 .{ .kind = .IdRef, .quantifier = .required },
15961 .{ .kind = .IdRef, .quantifier = .required },
15962 .{ .kind = .IdRef, .quantifier = .required },
15963 .{ .kind = .IdRef, .quantifier = .required },
17795 .name = "vstoren",
17796 .opcode = 172,
17797 .operands = &.{
17798 .{ .kind = .id_ref, .quantifier = .required },
17799 .{ .kind = .id_ref, .quantifier = .required },
17800 .{ .kind = .id_ref, .quantifier = .required },
1596417801 },
1596517802 },
1596617803 .{
15967 .name = "ArgumentStorageTexelBuffer",
15968 .opcode = 34,
15969 .operands = &[_]Operand{
15970 .{ .kind = .IdRef, .quantifier = .required },
15971 .{ .kind = .IdRef, .quantifier = .required },
15972 .{ .kind = .IdRef, .quantifier = .required },
15973 .{ .kind = .IdRef, .quantifier = .required },
15974 .{ .kind = .IdRef, .quantifier = .optional },
17804 .name = "vload_half",
17805 .opcode = 173,
17806 .operands = &.{
17807 .{ .kind = .id_ref, .quantifier = .required },
17808 .{ .kind = .id_ref, .quantifier = .required },
1597517809 },
1597617810 },
1597717811 .{
15978 .name = "ArgumentUniformTexelBuffer",
15979 .opcode = 35,
15980 .operands = &[_]Operand{
15981 .{ .kind = .IdRef, .quantifier = .required },
15982 .{ .kind = .IdRef, .quantifier = .required },
15983 .{ .kind = .IdRef, .quantifier = .required },
15984 .{ .kind = .IdRef, .quantifier = .required },
15985 .{ .kind = .IdRef, .quantifier = .optional },
17812 .name = "vload_halfn",
17813 .opcode = 174,
17814 .operands = &.{
17815 .{ .kind = .id_ref, .quantifier = .required },
17816 .{ .kind = .id_ref, .quantifier = .required },
17817 .{ .kind = .literal_integer, .quantifier = .required },
1598617818 },
1598717819 },
1598817820 .{
15989 .name = "ConstantDataPointerPushConstant",
15990 .opcode = 36,
15991 .operands = &[_]Operand{
15992 .{ .kind = .IdRef, .quantifier = .required },
15993 .{ .kind = .IdRef, .quantifier = .required },
15994 .{ .kind = .IdRef, .quantifier = .required },
17821 .name = "vstore_half",
17822 .opcode = 175,
17823 .operands = &.{
17824 .{ .kind = .id_ref, .quantifier = .required },
17825 .{ .kind = .id_ref, .quantifier = .required },
17826 .{ .kind = .id_ref, .quantifier = .required },
1599517827 },
1599617828 },
1599717829 .{
15998 .name = "ProgramScopeVariablePointerPushConstant",
15999 .opcode = 37,
16000 .operands = &[_]Operand{
16001 .{ .kind = .IdRef, .quantifier = .required },
16002 .{ .kind = .IdRef, .quantifier = .required },
16003 .{ .kind = .IdRef, .quantifier = .required },
17830 .name = "vstore_half_r",
17831 .opcode = 176,
17832 .operands = &.{
17833 .{ .kind = .id_ref, .quantifier = .required },
17834 .{ .kind = .id_ref, .quantifier = .required },
17835 .{ .kind = .id_ref, .quantifier = .required },
17836 .{ .kind = .fp_rounding_mode, .quantifier = .required },
1600417837 },
1600517838 },
1600617839 .{
16007 .name = "PrintfInfo",
16008 .opcode = 38,
16009 .operands = &[_]Operand{
16010 .{ .kind = .IdRef, .quantifier = .required },
16011 .{ .kind = .IdRef, .quantifier = .required },
16012 .{ .kind = .IdRef, .quantifier = .variadic },
17840 .name = "vstore_halfn",
17841 .opcode = 177,
17842 .operands = &.{
17843 .{ .kind = .id_ref, .quantifier = .required },
17844 .{ .kind = .id_ref, .quantifier = .required },
17845 .{ .kind = .id_ref, .quantifier = .required },
1601317846 },
1601417847 },
1601517848 .{
16016 .name = "PrintfBufferStorageBuffer",
16017 .opcode = 39,
16018 .operands = &[_]Operand{
16019 .{ .kind = .IdRef, .quantifier = .required },
16020 .{ .kind = .IdRef, .quantifier = .required },
16021 .{ .kind = .IdRef, .quantifier = .required },
17849 .name = "vstore_halfn_r",
17850 .opcode = 178,
17851 .operands = &.{
17852 .{ .kind = .id_ref, .quantifier = .required },
17853 .{ .kind = .id_ref, .quantifier = .required },
17854 .{ .kind = .id_ref, .quantifier = .required },
17855 .{ .kind = .fp_rounding_mode, .quantifier = .required },
1602217856 },
1602317857 },
1602417858 .{
16025 .name = "PrintfBufferPointerPushConstant",
16026 .opcode = 40,
16027 .operands = &[_]Operand{
16028 .{ .kind = .IdRef, .quantifier = .required },
16029 .{ .kind = .IdRef, .quantifier = .required },
16030 .{ .kind = .IdRef, .quantifier = .required },
17859 .name = "vloada_halfn",
17860 .opcode = 179,
17861 .operands = &.{
17862 .{ .kind = .id_ref, .quantifier = .required },
17863 .{ .kind = .id_ref, .quantifier = .required },
17864 .{ .kind = .literal_integer, .quantifier = .required },
1603117865 },
1603217866 },
1603317867 .{
16034 .name = "NormalizedSamplerMaskPushConstant",
16035 .opcode = 41,
16036 .operands = &[_]Operand{
16037 .{ .kind = .IdRef, .quantifier = .required },
16038 .{ .kind = .IdRef, .quantifier = .required },
16039 .{ .kind = .IdRef, .quantifier = .required },
16040 .{ .kind = .IdRef, .quantifier = .required },
17868 .name = "vstorea_halfn",
17869 .opcode = 180,
17870 .operands = &.{
17871 .{ .kind = .id_ref, .quantifier = .required },
17872 .{ .kind = .id_ref, .quantifier = .required },
17873 .{ .kind = .id_ref, .quantifier = .required },
1604117874 },
1604217875 },
16043 },
16044 .SPV_AMD_gcn_shader => &[_]Instruction{
1604517876 .{
16046 .name = "CubeFaceIndexAMD",
16047 .opcode = 1,
16048 .operands = &[_]Operand{
16049 .{ .kind = .IdRef, .quantifier = .required },
17877 .name = "vstorea_halfn_r",
17878 .opcode = 181,
17879 .operands = &.{
17880 .{ .kind = .id_ref, .quantifier = .required },
17881 .{ .kind = .id_ref, .quantifier = .required },
17882 .{ .kind = .id_ref, .quantifier = .required },
17883 .{ .kind = .fp_rounding_mode, .quantifier = .required },
1605017884 },
1605117885 },
1605217886 .{
16053 .name = "CubeFaceCoordAMD",
16054 .opcode = 2,
16055 .operands = &[_]Operand{
16056 .{ .kind = .IdRef, .quantifier = .required },
17887 .name = "shuffle",
17888 .opcode = 182,
17889 .operands = &.{
17890 .{ .kind = .id_ref, .quantifier = .required },
17891 .{ .kind = .id_ref, .quantifier = .required },
1605717892 },
1605817893 },
1605917894 .{
16060 .name = "TimeAMD",
16061 .opcode = 3,
16062 .operands = &[_]Operand{},
16063 },
16064 },
16065 .SPV_AMD_shader_trinary_minmax => &[_]Instruction{
16066 .{
16067 .name = "FMin3AMD",
16068 .opcode = 1,
16069 .operands = &[_]Operand{
16070 .{ .kind = .IdRef, .quantifier = .required },
16071 .{ .kind = .IdRef, .quantifier = .required },
16072 .{ .kind = .IdRef, .quantifier = .required },
17895 .name = "shuffle2",
17896 .opcode = 183,
17897 .operands = &.{
17898 .{ .kind = .id_ref, .quantifier = .required },
17899 .{ .kind = .id_ref, .quantifier = .required },
17900 .{ .kind = .id_ref, .quantifier = .required },
1607317901 },
1607417902 },
1607517903 .{
16076 .name = "UMin3AMD",
16077 .opcode = 2,
16078 .operands = &[_]Operand{
16079 .{ .kind = .IdRef, .quantifier = .required },
16080 .{ .kind = .IdRef, .quantifier = .required },
16081 .{ .kind = .IdRef, .quantifier = .required },
17904 .name = "printf",
17905 .opcode = 184,
17906 .operands = &.{
17907 .{ .kind = .id_ref, .quantifier = .required },
17908 .{ .kind = .id_ref, .quantifier = .variadic },
1608217909 },
1608317910 },
1608417911 .{
16085 .name = "SMin3AMD",
16086 .opcode = 3,
16087 .operands = &[_]Operand{
16088 .{ .kind = .IdRef, .quantifier = .required },
16089 .{ .kind = .IdRef, .quantifier = .required },
16090 .{ .kind = .IdRef, .quantifier = .required },
17912 .name = "prefetch",
17913 .opcode = 185,
17914 .operands = &.{
17915 .{ .kind = .id_ref, .quantifier = .required },
17916 .{ .kind = .id_ref, .quantifier = .required },
1609117917 },
1609217918 },
1609317919 .{
16094 .name = "FMax3AMD",
16095 .opcode = 4,
16096 .operands = &[_]Operand{
16097 .{ .kind = .IdRef, .quantifier = .required },
16098 .{ .kind = .IdRef, .quantifier = .required },
16099 .{ .kind = .IdRef, .quantifier = .required },
17920 .name = "bitselect",
17921 .opcode = 186,
17922 .operands = &.{
17923 .{ .kind = .id_ref, .quantifier = .required },
17924 .{ .kind = .id_ref, .quantifier = .required },
17925 .{ .kind = .id_ref, .quantifier = .required },
1610017926 },
1610117927 },
1610217928 .{
16103 .name = "UMax3AMD",
16104 .opcode = 5,
16105 .operands = &[_]Operand{
16106 .{ .kind = .IdRef, .quantifier = .required },
16107 .{ .kind = .IdRef, .quantifier = .required },
16108 .{ .kind = .IdRef, .quantifier = .required },
17929 .name = "select",
17930 .opcode = 187,
17931 .operands = &.{
17932 .{ .kind = .id_ref, .quantifier = .required },
17933 .{ .kind = .id_ref, .quantifier = .required },
17934 .{ .kind = .id_ref, .quantifier = .required },
1610917935 },
1611017936 },
1611117937 .{
16112 .name = "SMax3AMD",
16113 .opcode = 6,
16114 .operands = &[_]Operand{
16115 .{ .kind = .IdRef, .quantifier = .required },
16116 .{ .kind = .IdRef, .quantifier = .required },
16117 .{ .kind = .IdRef, .quantifier = .required },
17938 .name = "u_abs",
17939 .opcode = 201,
17940 .operands = &.{
17941 .{ .kind = .id_ref, .quantifier = .required },
1611817942 },
1611917943 },
1612017944 .{
16121 .name = "FMid3AMD",
16122 .opcode = 7,
16123 .operands = &[_]Operand{
16124 .{ .kind = .IdRef, .quantifier = .required },
16125 .{ .kind = .IdRef, .quantifier = .required },
16126 .{ .kind = .IdRef, .quantifier = .required },
17945 .name = "u_abs_diff",
17946 .opcode = 202,
17947 .operands = &.{
17948 .{ .kind = .id_ref, .quantifier = .required },
17949 .{ .kind = .id_ref, .quantifier = .required },
1612717950 },
1612817951 },
1612917952 .{
16130 .name = "UMid3AMD",
16131 .opcode = 8,
16132 .operands = &[_]Operand{
16133 .{ .kind = .IdRef, .quantifier = .required },
16134 .{ .kind = .IdRef, .quantifier = .required },
16135 .{ .kind = .IdRef, .quantifier = .required },
17953 .name = "u_mul_hi",
17954 .opcode = 203,
17955 .operands = &.{
17956 .{ .kind = .id_ref, .quantifier = .required },
17957 .{ .kind = .id_ref, .quantifier = .required },
1613617958 },
1613717959 },
1613817960 .{
16139 .name = "SMid3AMD",
16140 .opcode = 9,
16141 .operands = &[_]Operand{
16142 .{ .kind = .IdRef, .quantifier = .required },
16143 .{ .kind = .IdRef, .quantifier = .required },
16144 .{ .kind = .IdRef, .quantifier = .required },
17961 .name = "u_mad_hi",
17962 .opcode = 204,
17963 .operands = &.{
17964 .{ .kind = .id_ref, .quantifier = .required },
17965 .{ .kind = .id_ref, .quantifier = .required },
17966 .{ .kind = .id_ref, .quantifier = .required },
1614517967 },
1614617968 },
1614717969 },
16148 .DebugInfo => &[_]Instruction{
17970 .non_semantic_shader_debug_info_100 => &.{
1614917971 .{
1615017972 .name = "DebugInfoNone",
1615117973 .opcode = 0,
16152 .operands = &[_]Operand{},
17974 .operands = &.{},
1615317975 },
1615417976 .{
1615517977 .name = "DebugCompilationUnit",
1615617978 .opcode = 1,
16157 .operands = &[_]Operand{
16158 .{ .kind = .IdRef, .quantifier = .required },
16159 .{ .kind = .LiteralInteger, .quantifier = .required },
16160 .{ .kind = .LiteralInteger, .quantifier = .required },
17979 .operands = &.{
17980 .{ .kind = .id_ref, .quantifier = .required },
17981 .{ .kind = .id_ref, .quantifier = .required },
17982 .{ .kind = .id_ref, .quantifier = .required },
17983 .{ .kind = .id_ref, .quantifier = .required },
1616117984 },
1616217985 },
1616317986 .{
1616417987 .name = "DebugTypeBasic",
1616517988 .opcode = 2,
16166 .operands = &[_]Operand{
16167 .{ .kind = .IdRef, .quantifier = .required },
16168 .{ .kind = .IdRef, .quantifier = .required },
16169 .{ .kind = .@"DebugInfo.DebugBaseTypeAttributeEncoding", .quantifier = .required },
17989 .operands = &.{
17990 .{ .kind = .id_ref, .quantifier = .required },
17991 .{ .kind = .id_ref, .quantifier = .required },
17992 .{ .kind = .id_ref, .quantifier = .required },
17993 .{ .kind = .id_ref, .quantifier = .required },
1617017994 },
1617117995 },
1617217996 .{
1617317997 .name = "DebugTypePointer",
1617417998 .opcode = 3,
16175 .operands = &[_]Operand{
16176 .{ .kind = .IdRef, .quantifier = .required },
16177 .{ .kind = .StorageClass, .quantifier = .required },
16178 .{ .kind = .@"DebugInfo.DebugInfoFlags", .quantifier = .required },
17999 .operands = &.{
18000 .{ .kind = .id_ref, .quantifier = .required },
18001 .{ .kind = .id_ref, .quantifier = .required },
18002 .{ .kind = .id_ref, .quantifier = .required },
1617918003 },
1618018004 },
1618118005 .{
1618218006 .name = "DebugTypeQualifier",
1618318007 .opcode = 4,
16184 .operands = &[_]Operand{
16185 .{ .kind = .IdRef, .quantifier = .required },
16186 .{ .kind = .@"DebugInfo.DebugTypeQualifier", .quantifier = .required },
18008 .operands = &.{
18009 .{ .kind = .id_ref, .quantifier = .required },
18010 .{ .kind = .id_ref, .quantifier = .required },
1618718011 },
1618818012 },
1618918013 .{
1619018014 .name = "DebugTypeArray",
1619118015 .opcode = 5,
16192 .operands = &[_]Operand{
16193 .{ .kind = .IdRef, .quantifier = .required },
16194 .{ .kind = .IdRef, .quantifier = .variadic },
18016 .operands = &.{
18017 .{ .kind = .id_ref, .quantifier = .required },
18018 .{ .kind = .id_ref, .quantifier = .variadic },
1619518019 },
1619618020 },
1619718021 .{
1619818022 .name = "DebugTypeVector",
1619918023 .opcode = 6,
16200 .operands = &[_]Operand{
16201 .{ .kind = .IdRef, .quantifier = .required },
16202 .{ .kind = .LiteralInteger, .quantifier = .required },
18024 .operands = &.{
18025 .{ .kind = .id_ref, .quantifier = .required },
18026 .{ .kind = .id_ref, .quantifier = .required },
1620318027 },
1620418028 },
1620518029 .{
1620618030 .name = "DebugTypedef",
1620718031 .opcode = 7,
16208 .operands = &[_]Operand{
16209 .{ .kind = .IdRef, .quantifier = .required },
16210 .{ .kind = .IdRef, .quantifier = .required },
16211 .{ .kind = .IdRef, .quantifier = .required },
16212 .{ .kind = .LiteralInteger, .quantifier = .required },
16213 .{ .kind = .LiteralInteger, .quantifier = .required },
16214 .{ .kind = .IdRef, .quantifier = .required },
18032 .operands = &.{
18033 .{ .kind = .id_ref, .quantifier = .required },
18034 .{ .kind = .id_ref, .quantifier = .required },
18035 .{ .kind = .id_ref, .quantifier = .required },
18036 .{ .kind = .id_ref, .quantifier = .required },
18037 .{ .kind = .id_ref, .quantifier = .required },
18038 .{ .kind = .id_ref, .quantifier = .required },
1621518039 },
1621618040 },
1621718041 .{
1621818042 .name = "DebugTypeFunction",
1621918043 .opcode = 8,
16220 .operands = &[_]Operand{
16221 .{ .kind = .IdRef, .quantifier = .required },
16222 .{ .kind = .IdRef, .quantifier = .variadic },
18044 .operands = &.{
18045 .{ .kind = .id_ref, .quantifier = .required },
18046 .{ .kind = .id_ref, .quantifier = .required },
18047 .{ .kind = .id_ref, .quantifier = .variadic },
1622318048 },
1622418049 },
1622518050 .{
1622618051 .name = "DebugTypeEnum",
1622718052 .opcode = 9,
16228 .operands = &[_]Operand{
16229 .{ .kind = .IdRef, .quantifier = .required },
16230 .{ .kind = .IdRef, .quantifier = .required },
16231 .{ .kind = .IdRef, .quantifier = .required },
16232 .{ .kind = .LiteralInteger, .quantifier = .required },
16233 .{ .kind = .LiteralInteger, .quantifier = .required },
16234 .{ .kind = .IdRef, .quantifier = .required },
16235 .{ .kind = .IdRef, .quantifier = .required },
16236 .{ .kind = .@"DebugInfo.DebugInfoFlags", .quantifier = .required },
16237 .{ .kind = .PairIdRefIdRef, .quantifier = .variadic },
18053 .operands = &.{
18054 .{ .kind = .id_ref, .quantifier = .required },
18055 .{ .kind = .id_ref, .quantifier = .required },
18056 .{ .kind = .id_ref, .quantifier = .required },
18057 .{ .kind = .id_ref, .quantifier = .required },
18058 .{ .kind = .id_ref, .quantifier = .required },
18059 .{ .kind = .id_ref, .quantifier = .required },
18060 .{ .kind = .id_ref, .quantifier = .required },
18061 .{ .kind = .id_ref, .quantifier = .required },
18062 .{ .kind = .pair_id_ref_id_ref, .quantifier = .variadic },
1623818063 },
1623918064 },
1624018065 .{
1624118066 .name = "DebugTypeComposite",
1624218067 .opcode = 10,
16243 .operands = &[_]Operand{
16244 .{ .kind = .IdRef, .quantifier = .required },
16245 .{ .kind = .@"DebugInfo.DebugCompositeType", .quantifier = .required },
16246 .{ .kind = .IdRef, .quantifier = .required },
16247 .{ .kind = .LiteralInteger, .quantifier = .required },
16248 .{ .kind = .LiteralInteger, .quantifier = .required },
16249 .{ .kind = .IdRef, .quantifier = .required },
16250 .{ .kind = .IdRef, .quantifier = .required },
16251 .{ .kind = .@"DebugInfo.DebugInfoFlags", .quantifier = .required },
16252 .{ .kind = .IdRef, .quantifier = .variadic },
18068 .operands = &.{
18069 .{ .kind = .id_ref, .quantifier = .required },
18070 .{ .kind = .id_ref, .quantifier = .required },
18071 .{ .kind = .id_ref, .quantifier = .required },
18072 .{ .kind = .id_ref, .quantifier = .required },
18073 .{ .kind = .id_ref, .quantifier = .required },
18074 .{ .kind = .id_ref, .quantifier = .required },
18075 .{ .kind = .id_ref, .quantifier = .required },
18076 .{ .kind = .id_ref, .quantifier = .required },
18077 .{ .kind = .id_ref, .quantifier = .required },
18078 .{ .kind = .id_ref, .quantifier = .variadic },
1625318079 },
1625418080 },
1625518081 .{
1625618082 .name = "DebugTypeMember",
1625718083 .opcode = 11,
16258 .operands = &[_]Operand{
16259 .{ .kind = .IdRef, .quantifier = .required },
16260 .{ .kind = .IdRef, .quantifier = .required },
16261 .{ .kind = .IdRef, .quantifier = .required },
16262 .{ .kind = .LiteralInteger, .quantifier = .required },
16263 .{ .kind = .LiteralInteger, .quantifier = .required },
16264 .{ .kind = .IdRef, .quantifier = .required },
16265 .{ .kind = .IdRef, .quantifier = .required },
16266 .{ .kind = .IdRef, .quantifier = .required },
16267 .{ .kind = .@"DebugInfo.DebugInfoFlags", .quantifier = .required },
16268 .{ .kind = .IdRef, .quantifier = .optional },
18084 .operands = &.{
18085 .{ .kind = .id_ref, .quantifier = .required },
18086 .{ .kind = .id_ref, .quantifier = .required },
18087 .{ .kind = .id_ref, .quantifier = .required },
18088 .{ .kind = .id_ref, .quantifier = .required },
18089 .{ .kind = .id_ref, .quantifier = .required },
18090 .{ .kind = .id_ref, .quantifier = .required },
18091 .{ .kind = .id_ref, .quantifier = .required },
18092 .{ .kind = .id_ref, .quantifier = .required },
18093 .{ .kind = .id_ref, .quantifier = .optional },
1626918094 },
1627018095 },
1627118096 .{
1627218097 .name = "DebugTypeInheritance",
1627318098 .opcode = 12,
16274 .operands = &[_]Operand{
16275 .{ .kind = .IdRef, .quantifier = .required },
16276 .{ .kind = .IdRef, .quantifier = .required },
16277 .{ .kind = .IdRef, .quantifier = .required },
16278 .{ .kind = .IdRef, .quantifier = .required },
16279 .{ .kind = .@"DebugInfo.DebugInfoFlags", .quantifier = .required },
18099 .operands = &.{
18100 .{ .kind = .id_ref, .quantifier = .required },
18101 .{ .kind = .id_ref, .quantifier = .required },
18102 .{ .kind = .id_ref, .quantifier = .required },
18103 .{ .kind = .id_ref, .quantifier = .required },
1628018104 },
1628118105 },
1628218106 .{
1628318107 .name = "DebugTypePtrToMember",
1628418108 .opcode = 13,
16285 .operands = &[_]Operand{
16286 .{ .kind = .IdRef, .quantifier = .required },
16287 .{ .kind = .IdRef, .quantifier = .required },
18109 .operands = &.{
18110 .{ .kind = .id_ref, .quantifier = .required },
18111 .{ .kind = .id_ref, .quantifier = .required },
1628818112 },
1628918113 },
1629018114 .{
1629118115 .name = "DebugTypeTemplate",
1629218116 .opcode = 14,
16293 .operands = &[_]Operand{
16294 .{ .kind = .IdRef, .quantifier = .required },
16295 .{ .kind = .IdRef, .quantifier = .variadic },
18117 .operands = &.{
18118 .{ .kind = .id_ref, .quantifier = .required },
18119 .{ .kind = .id_ref, .quantifier = .variadic },
1629618120 },
1629718121 },
1629818122 .{
1629918123 .name = "DebugTypeTemplateParameter",
1630018124 .opcode = 15,
16301 .operands = &[_]Operand{
16302 .{ .kind = .IdRef, .quantifier = .required },
16303 .{ .kind = .IdRef, .quantifier = .required },
16304 .{ .kind = .IdRef, .quantifier = .required },
16305 .{ .kind = .IdRef, .quantifier = .required },
16306 .{ .kind = .LiteralInteger, .quantifier = .required },
16307 .{ .kind = .LiteralInteger, .quantifier = .required },
18125 .operands = &.{
18126 .{ .kind = .id_ref, .quantifier = .required },
18127 .{ .kind = .id_ref, .quantifier = .required },
18128 .{ .kind = .id_ref, .quantifier = .required },
18129 .{ .kind = .id_ref, .quantifier = .required },
18130 .{ .kind = .id_ref, .quantifier = .required },
18131 .{ .kind = .id_ref, .quantifier = .required },
1630818132 },
1630918133 },
1631018134 .{
1631118135 .name = "DebugTypeTemplateTemplateParameter",
1631218136 .opcode = 16,
16313 .operands = &[_]Operand{
16314 .{ .kind = .IdRef, .quantifier = .required },
16315 .{ .kind = .IdRef, .quantifier = .required },
16316 .{ .kind = .IdRef, .quantifier = .required },
16317 .{ .kind = .LiteralInteger, .quantifier = .required },
16318 .{ .kind = .LiteralInteger, .quantifier = .required },
18137 .operands = &.{
18138 .{ .kind = .id_ref, .quantifier = .required },
18139 .{ .kind = .id_ref, .quantifier = .required },
18140 .{ .kind = .id_ref, .quantifier = .required },
18141 .{ .kind = .id_ref, .quantifier = .required },
18142 .{ .kind = .id_ref, .quantifier = .required },
1631918143 },
1632018144 },
1632118145 .{
1632218146 .name = "DebugTypeTemplateParameterPack",
1632318147 .opcode = 17,
16324 .operands = &[_]Operand{
16325 .{ .kind = .IdRef, .quantifier = .required },
16326 .{ .kind = .IdRef, .quantifier = .required },
16327 .{ .kind = .LiteralInteger, .quantifier = .required },
16328 .{ .kind = .LiteralInteger, .quantifier = .required },
16329 .{ .kind = .IdRef, .quantifier = .variadic },
18148 .operands = &.{
18149 .{ .kind = .id_ref, .quantifier = .required },
18150 .{ .kind = .id_ref, .quantifier = .required },
18151 .{ .kind = .id_ref, .quantifier = .required },
18152 .{ .kind = .id_ref, .quantifier = .required },
18153 .{ .kind = .id_ref, .quantifier = .variadic },
1633018154 },
1633118155 },
1633218156 .{
1633318157 .name = "DebugGlobalVariable",
1633418158 .opcode = 18,
16335 .operands = &[_]Operand{
16336 .{ .kind = .IdRef, .quantifier = .required },
16337 .{ .kind = .IdRef, .quantifier = .required },
16338 .{ .kind = .IdRef, .quantifier = .required },
16339 .{ .kind = .LiteralInteger, .quantifier = .required },
16340 .{ .kind = .LiteralInteger, .quantifier = .required },
16341 .{ .kind = .IdRef, .quantifier = .required },
16342 .{ .kind = .IdRef, .quantifier = .required },
16343 .{ .kind = .IdRef, .quantifier = .required },
16344 .{ .kind = .@"DebugInfo.DebugInfoFlags", .quantifier = .required },
16345 .{ .kind = .IdRef, .quantifier = .optional },
18159 .operands = &.{
18160 .{ .kind = .id_ref, .quantifier = .required },
18161 .{ .kind = .id_ref, .quantifier = .required },
18162 .{ .kind = .id_ref, .quantifier = .required },
18163 .{ .kind = .id_ref, .quantifier = .required },
18164 .{ .kind = .id_ref, .quantifier = .required },
18165 .{ .kind = .id_ref, .quantifier = .required },
18166 .{ .kind = .id_ref, .quantifier = .required },
18167 .{ .kind = .id_ref, .quantifier = .required },
18168 .{ .kind = .id_ref, .quantifier = .required },
18169 .{ .kind = .id_ref, .quantifier = .optional },
1634618170 },
1634718171 },
1634818172 .{
1634918173 .name = "DebugFunctionDeclaration",
1635018174 .opcode = 19,
16351 .operands = &[_]Operand{
16352 .{ .kind = .IdRef, .quantifier = .required },
16353 .{ .kind = .IdRef, .quantifier = .required },
16354 .{ .kind = .IdRef, .quantifier = .required },
16355 .{ .kind = .LiteralInteger, .quantifier = .required },
16356 .{ .kind = .LiteralInteger, .quantifier = .required },
16357 .{ .kind = .IdRef, .quantifier = .required },
16358 .{ .kind = .IdRef, .quantifier = .required },
16359 .{ .kind = .@"DebugInfo.DebugInfoFlags", .quantifier = .required },
18175 .operands = &.{
18176 .{ .kind = .id_ref, .quantifier = .required },
18177 .{ .kind = .id_ref, .quantifier = .required },
18178 .{ .kind = .id_ref, .quantifier = .required },
18179 .{ .kind = .id_ref, .quantifier = .required },
18180 .{ .kind = .id_ref, .quantifier = .required },
18181 .{ .kind = .id_ref, .quantifier = .required },
18182 .{ .kind = .id_ref, .quantifier = .required },
18183 .{ .kind = .id_ref, .quantifier = .required },
1636018184 },
1636118185 },
1636218186 .{
1636318187 .name = "DebugFunction",
1636418188 .opcode = 20,
16365 .operands = &[_]Operand{
16366 .{ .kind = .IdRef, .quantifier = .required },
16367 .{ .kind = .IdRef, .quantifier = .required },
16368 .{ .kind = .IdRef, .quantifier = .required },
16369 .{ .kind = .LiteralInteger, .quantifier = .required },
16370 .{ .kind = .LiteralInteger, .quantifier = .required },
16371 .{ .kind = .IdRef, .quantifier = .required },
16372 .{ .kind = .IdRef, .quantifier = .required },
16373 .{ .kind = .@"DebugInfo.DebugInfoFlags", .quantifier = .required },
16374 .{ .kind = .LiteralInteger, .quantifier = .required },
16375 .{ .kind = .IdRef, .quantifier = .required },
16376 .{ .kind = .IdRef, .quantifier = .optional },
18189 .operands = &.{
18190 .{ .kind = .id_ref, .quantifier = .required },
18191 .{ .kind = .id_ref, .quantifier = .required },
18192 .{ .kind = .id_ref, .quantifier = .required },
18193 .{ .kind = .id_ref, .quantifier = .required },
18194 .{ .kind = .id_ref, .quantifier = .required },
18195 .{ .kind = .id_ref, .quantifier = .required },
18196 .{ .kind = .id_ref, .quantifier = .required },
18197 .{ .kind = .id_ref, .quantifier = .required },
18198 .{ .kind = .id_ref, .quantifier = .required },
18199 .{ .kind = .id_ref, .quantifier = .optional },
1637718200 },
1637818201 },
1637918202 .{
1638018203 .name = "DebugLexicalBlock",
1638118204 .opcode = 21,
16382 .operands = &[_]Operand{
16383 .{ .kind = .IdRef, .quantifier = .required },
16384 .{ .kind = .LiteralInteger, .quantifier = .required },
16385 .{ .kind = .LiteralInteger, .quantifier = .required },
16386 .{ .kind = .IdRef, .quantifier = .required },
16387 .{ .kind = .IdRef, .quantifier = .optional },
18205 .operands = &.{
18206 .{ .kind = .id_ref, .quantifier = .required },
18207 .{ .kind = .id_ref, .quantifier = .required },
18208 .{ .kind = .id_ref, .quantifier = .required },
18209 .{ .kind = .id_ref, .quantifier = .required },
18210 .{ .kind = .id_ref, .quantifier = .optional },
1638818211 },
1638918212 },
1639018213 .{
1639118214 .name = "DebugLexicalBlockDiscriminator",
1639218215 .opcode = 22,
16393 .operands = &[_]Operand{
16394 .{ .kind = .IdRef, .quantifier = .required },
16395 .{ .kind = .LiteralInteger, .quantifier = .required },
16396 .{ .kind = .IdRef, .quantifier = .required },
18216 .operands = &.{
18217 .{ .kind = .id_ref, .quantifier = .required },
18218 .{ .kind = .id_ref, .quantifier = .required },
18219 .{ .kind = .id_ref, .quantifier = .required },
1639718220 },
1639818221 },
1639918222 .{
1640018223 .name = "DebugScope",
1640118224 .opcode = 23,
16402 .operands = &[_]Operand{
16403 .{ .kind = .IdRef, .quantifier = .required },
16404 .{ .kind = .IdRef, .quantifier = .optional },
18225 .operands = &.{
18226 .{ .kind = .id_ref, .quantifier = .required },
18227 .{ .kind = .id_ref, .quantifier = .optional },
1640518228 },
1640618229 },
1640718230 .{
1640818231 .name = "DebugNoScope",
1640918232 .opcode = 24,
16410 .operands = &[_]Operand{},
18233 .operands = &.{},
1641118234 },
1641218235 .{
1641318236 .name = "DebugInlinedAt",
1641418237 .opcode = 25,
16415 .operands = &[_]Operand{
16416 .{ .kind = .LiteralInteger, .quantifier = .required },
16417 .{ .kind = .IdRef, .quantifier = .required },
16418 .{ .kind = .IdRef, .quantifier = .optional },
18238 .operands = &.{
18239 .{ .kind = .id_ref, .quantifier = .required },
18240 .{ .kind = .id_ref, .quantifier = .required },
18241 .{ .kind = .id_ref, .quantifier = .optional },
1641918242 },
1642018243 },
1642118244 .{
1642218245 .name = "DebugLocalVariable",
1642318246 .opcode = 26,
16424 .operands = &[_]Operand{
16425 .{ .kind = .IdRef, .quantifier = .required },
16426 .{ .kind = .IdRef, .quantifier = .required },
16427 .{ .kind = .IdRef, .quantifier = .required },
16428 .{ .kind = .LiteralInteger, .quantifier = .required },
16429 .{ .kind = .LiteralInteger, .quantifier = .required },
16430 .{ .kind = .IdRef, .quantifier = .required },
16431 .{ .kind = .LiteralInteger, .quantifier = .optional },
18247 .operands = &.{
18248 .{ .kind = .id_ref, .quantifier = .required },
18249 .{ .kind = .id_ref, .quantifier = .required },
18250 .{ .kind = .id_ref, .quantifier = .required },
18251 .{ .kind = .id_ref, .quantifier = .required },
18252 .{ .kind = .id_ref, .quantifier = .required },
18253 .{ .kind = .id_ref, .quantifier = .required },
18254 .{ .kind = .id_ref, .quantifier = .required },
18255 .{ .kind = .id_ref, .quantifier = .optional },
1643218256 },
1643318257 },
1643418258 .{
1643518259 .name = "DebugInlinedVariable",
1643618260 .opcode = 27,
16437 .operands = &[_]Operand{
16438 .{ .kind = .IdRef, .quantifier = .required },
16439 .{ .kind = .IdRef, .quantifier = .required },
18261 .operands = &.{
18262 .{ .kind = .id_ref, .quantifier = .required },
18263 .{ .kind = .id_ref, .quantifier = .required },
1644018264 },
1644118265 },
1644218266 .{
1644318267 .name = "DebugDeclare",
1644418268 .opcode = 28,
16445 .operands = &[_]Operand{
16446 .{ .kind = .IdRef, .quantifier = .required },
16447 .{ .kind = .IdRef, .quantifier = .required },
16448 .{ .kind = .IdRef, .quantifier = .required },
18269 .operands = &.{
18270 .{ .kind = .id_ref, .quantifier = .required },
18271 .{ .kind = .id_ref, .quantifier = .required },
18272 .{ .kind = .id_ref, .quantifier = .required },
18273 .{ .kind = .id_ref, .quantifier = .variadic },
1644918274 },
1645018275 },
1645118276 .{
1645218277 .name = "DebugValue",
1645318278 .opcode = 29,
16454 .operands = &[_]Operand{
16455 .{ .kind = .IdRef, .quantifier = .required },
16456 .{ .kind = .IdRef, .quantifier = .required },
16457 .{ .kind = .IdRef, .quantifier = .variadic },
18279 .operands = &.{
18280 .{ .kind = .id_ref, .quantifier = .required },
18281 .{ .kind = .id_ref, .quantifier = .required },
18282 .{ .kind = .id_ref, .quantifier = .required },
18283 .{ .kind = .id_ref, .quantifier = .variadic },
1645818284 },
1645918285 },
1646018286 .{
1646118287 .name = "DebugOperation",
1646218288 .opcode = 30,
16463 .operands = &[_]Operand{
16464 .{ .kind = .@"DebugInfo.DebugOperation", .quantifier = .required },
16465 .{ .kind = .LiteralInteger, .quantifier = .variadic },
18289 .operands = &.{
18290 .{ .kind = .id_ref, .quantifier = .required },
18291 .{ .kind = .id_ref, .quantifier = .variadic },
1646618292 },
1646718293 },
1646818294 .{
1646918295 .name = "DebugExpression",
1647018296 .opcode = 31,
16471 .operands = &[_]Operand{
16472 .{ .kind = .IdRef, .quantifier = .variadic },
18297 .operands = &.{
18298 .{ .kind = .id_ref, .quantifier = .variadic },
1647318299 },
1647418300 },
1647518301 .{
1647618302 .name = "DebugMacroDef",
1647718303 .opcode = 32,
16478 .operands = &[_]Operand{
16479 .{ .kind = .IdRef, .quantifier = .required },
16480 .{ .kind = .LiteralInteger, .quantifier = .required },
16481 .{ .kind = .IdRef, .quantifier = .required },
16482 .{ .kind = .IdRef, .quantifier = .optional },
18304 .operands = &.{
18305 .{ .kind = .id_ref, .quantifier = .required },
18306 .{ .kind = .id_ref, .quantifier = .required },
18307 .{ .kind = .id_ref, .quantifier = .required },
18308 .{ .kind = .id_ref, .quantifier = .optional },
1648318309 },
1648418310 },
1648518311 .{
1648618312 .name = "DebugMacroUndef",
1648718313 .opcode = 33,
16488 .operands = &[_]Operand{
16489 .{ .kind = .IdRef, .quantifier = .required },
16490 .{ .kind = .LiteralInteger, .quantifier = .required },
16491 .{ .kind = .IdRef, .quantifier = .required },
18314 .operands = &.{
18315 .{ .kind = .id_ref, .quantifier = .required },
18316 .{ .kind = .id_ref, .quantifier = .required },
18317 .{ .kind = .id_ref, .quantifier = .required },
1649218318 },
1649318319 },
16494 },
16495 .@"NonSemantic.DebugPrintf" => &[_]Instruction{
1649618320 .{
16497 .name = "DebugPrintf",
16498 .opcode = 1,
16499 .operands = &[_]Operand{
16500 .{ .kind = .IdRef, .quantifier = .required },
16501 .{ .kind = .IdRef, .quantifier = .variadic },
18321 .name = "DebugImportedEntity",
18322 .opcode = 34,
18323 .operands = &.{
18324 .{ .kind = .id_ref, .quantifier = .required },
18325 .{ .kind = .id_ref, .quantifier = .required },
18326 .{ .kind = .id_ref, .quantifier = .required },
18327 .{ .kind = .id_ref, .quantifier = .required },
18328 .{ .kind = .id_ref, .quantifier = .required },
18329 .{ .kind = .id_ref, .quantifier = .required },
18330 .{ .kind = .id_ref, .quantifier = .required },
1650218331 },
1650318332 },
16504 },
16505 .SPV_AMD_shader_explicit_vertex_parameter => &[_]Instruction{
1650618333 .{
16507 .name = "InterpolateAtVertexAMD",
16508 .opcode = 1,
16509 .operands = &[_]Operand{
16510 .{ .kind = .IdRef, .quantifier = .required },
16511 .{ .kind = .IdRef, .quantifier = .required },
18334 .name = "DebugSource",
18335 .opcode = 35,
18336 .operands = &.{
18337 .{ .kind = .id_ref, .quantifier = .required },
18338 .{ .kind = .id_ref, .quantifier = .optional },
1651218339 },
1651318340 },
16514 },
16515 .@"NonSemantic.DebugBreak" => &[_]Instruction{
1651618341 .{
16517 .name = "DebugBreak",
16518 .opcode = 1,
16519 .operands = &[_]Operand{},
18342 .name = "DebugFunctionDefinition",
18343 .opcode = 101,
18344 .operands = &.{
18345 .{ .kind = .id_ref, .quantifier = .required },
18346 .{ .kind = .id_ref, .quantifier = .required },
18347 },
18348 },
18349 .{
18350 .name = "DebugSourceContinued",
18351 .opcode = 102,
18352 .operands = &.{
18353 .{ .kind = .id_ref, .quantifier = .required },
18354 },
18355 },
18356 .{
18357 .name = "DebugLine",
18358 .opcode = 103,
18359 .operands = &.{
18360 .{ .kind = .id_ref, .quantifier = .required },
18361 .{ .kind = .id_ref, .quantifier = .required },
18362 .{ .kind = .id_ref, .quantifier = .required },
18363 .{ .kind = .id_ref, .quantifier = .required },
18364 .{ .kind = .id_ref, .quantifier = .required },
18365 },
18366 },
18367 .{
18368 .name = "DebugNoLine",
18369 .opcode = 104,
18370 .operands = &.{},
18371 },
18372 .{
18373 .name = "DebugBuildIdentifier",
18374 .opcode = 105,
18375 .operands = &.{
18376 .{ .kind = .id_ref, .quantifier = .required },
18377 .{ .kind = .id_ref, .quantifier = .required },
18378 },
18379 },
18380 .{
18381 .name = "DebugStoragePath",
18382 .opcode = 106,
18383 .operands = &.{
18384 .{ .kind = .id_ref, .quantifier = .required },
18385 },
18386 },
18387 .{
18388 .name = "DebugEntryPoint",
18389 .opcode = 107,
18390 .operands = &.{
18391 .{ .kind = .id_ref, .quantifier = .required },
18392 .{ .kind = .id_ref, .quantifier = .required },
18393 .{ .kind = .id_ref, .quantifier = .required },
18394 .{ .kind = .id_ref, .quantifier = .required },
18395 },
18396 },
18397 .{
18398 .name = "DebugTypeMatrix",
18399 .opcode = 108,
18400 .operands = &.{
18401 .{ .kind = .id_ref, .quantifier = .required },
18402 .{ .kind = .id_ref, .quantifier = .required },
18403 .{ .kind = .id_ref, .quantifier = .required },
18404 },
1652018405 },
1652118406 },
16522 .zig => &[_]Instruction{
18407 .zig => &.{
1652318408 .{
1652418409 .name = "InvocationGlobal",
1652518410 .opcode = 0,
16526 .operands = &[_]Operand{
16527 .{ .kind = .IdRef, .quantifier = .required },
18411 .operands = &.{
18412 .{ .kind = .id_ref, .quantifier = .required },
1652818413 },
1652918414 },
1653018415 },
src/link/SpirV.zig+5-5
......@@ -42,7 +42,7 @@ const Value = @import("../Value.zig");
4242const SpvModule = @import("../codegen/spirv/Module.zig");
4343const Section = @import("../codegen/spirv/Section.zig");
4444const spec = @import("../codegen/spirv/spec.zig");
45const IdResult = spec.IdResult;
45const Id = spec.Id;
4646const Word = spec.Word;
4747
4848const BinaryModule = @import("SpirV/BinaryModule.zig");
......@@ -144,15 +144,15 @@ pub fn updateExports(
144144 const cc = Type.fromInterned(nav_ty).fnCallingConvention(zcu);
145145 const exec_model: spec.ExecutionModel = switch (target.os.tag) {
146146 .vulkan, .opengl => switch (cc) {
147 .spirv_vertex => .Vertex,
148 .spirv_fragment => .Fragment,
149 .spirv_kernel => .GLCompute,
147 .spirv_vertex => .vertex,
148 .spirv_fragment => .fragment,
149 .spirv_kernel => .gl_compute,
150150 // TODO: We should integrate with the Linkage capability and export this function
151151 .spirv_device => return,
152152 else => unreachable,
153153 },
154154 .opencl => switch (cc) {
155 .spirv_kernel => .Kernel,
155 .spirv_kernel => .kernel,
156156 // TODO: We should integrate with the Linkage capability and export this function
157157 .spirv_device => return,
158158 else => unreachable,
src/link/SpirV/BinaryModule.zig+17-17
......@@ -7,7 +7,7 @@ const spec = @import("../../codegen/spirv/spec.zig");
77const Opcode = spec.Opcode;
88const Word = spec.Word;
99const InstructionSet = spec.InstructionSet;
10const ResultId = spec.IdResult;
10const ResultId = spec.Id;
1111
1212const BinaryModule = @This();
1313
......@@ -254,8 +254,8 @@ pub const Parser = struct {
254254 // with ALL operations that return an int or float.
255255 const spec_operands = inst_spec.operands;
256256 if (spec_operands.len >= 2 and
257 spec_operands[0].kind == .IdResultType and
258 spec_operands[1].kind == .IdResult)
257 spec_operands[0].kind == .id_result_type and
258 spec_operands[1].kind == .id_result)
259259 {
260260 if (operands.len < 2) return error.InvalidOperands;
261261 if (binary.arith_type_width.get(@enumFromInt(operands[0]))) |width| {
......@@ -288,8 +288,8 @@ pub const Parser = struct {
288288 var offset: usize = 0;
289289 switch (inst.opcode) {
290290 .OpSpecConstantOp => {
291 assert(operands[0].kind == .IdResultType);
292 assert(operands[1].kind == .IdResult);
291 assert(operands[0].kind == .id_result_type);
292 assert(operands[1].kind == .id_result);
293293 offset = try self.parseOperandsResultIds(binary, inst, operands[0..2], offset, offsets);
294294
295295 if (offset >= inst.operands.len) return error.InvalidPhysicalFormat;
......@@ -297,13 +297,13 @@ pub const Parser = struct {
297297 const spec_index = self.opcode_table.get(mapSetAndOpcode(.core, spec_opcode)) orelse
298298 return error.InvalidPhysicalFormat;
299299 const spec_operands = InstructionSet.core.instructions()[spec_index].operands;
300 assert(spec_operands[0].kind == .IdResultType);
301 assert(spec_operands[1].kind == .IdResult);
300 assert(spec_operands[0].kind == .id_result_type);
301 assert(spec_operands[1].kind == .id_result);
302302 offset = try self.parseOperandsResultIds(binary, inst, spec_operands[2..], offset + 1, offsets);
303303 },
304304 .OpExtInst => {
305 assert(operands[0].kind == .IdResultType);
306 assert(operands[1].kind == .IdResult);
305 assert(operands[0].kind == .id_result_type);
306 assert(operands[1].kind == .id_result);
307307 offset = try self.parseOperandsResultIds(binary, inst, operands[0..2], offset, offsets);
308308
309309 if (offset + 1 >= inst.operands.len) return error.InvalidPhysicalFormat;
......@@ -405,8 +405,8 @@ pub const Parser = struct {
405405 offset += 1;
406406 },
407407 else => switch (kind) {
408 .LiteralInteger, .LiteralFloat => offset += 1,
409 .LiteralString => while (true) {
408 .literal_integer, .literal_float => offset += 1,
409 .literal_string => while (true) {
410410 if (offset >= inst.operands.len) return error.InvalidPhysicalFormat;
411411 const word = inst.operands[offset];
412412 offset += 1;
......@@ -419,7 +419,7 @@ pub const Parser = struct {
419419 break;
420420 }
421421 },
422 .LiteralContextDependentNumber => {
422 .literal_context_dependent_number => {
423423 assert(inst.opcode == .OpConstant or inst.opcode == .OpSpecConstantOp);
424424 const bit_width = binary.arith_type_width.get(@enumFromInt(inst.operands[0])) orelse {
425425 log.err("invalid LiteralContextDependentNumber type {}", .{inst.operands[0]});
......@@ -431,9 +431,9 @@ pub const Parser = struct {
431431 else => unreachable,
432432 };
433433 },
434 .LiteralExtInstInteger => unreachable,
435 .LiteralSpecConstantOpInteger => unreachable,
436 .PairLiteralIntegerIdRef => { // Switch case
434 .literal_ext_inst_integer => unreachable,
435 .literal_spec_constant_op_integer => unreachable,
436 .pair_literal_integer_id_ref => { // Switch case
437437 assert(inst.opcode == .OpSwitch);
438438 const bit_width = binary.arith_type_width.get(@enumFromInt(inst.operands[0])) orelse {
439439 log.err("invalid OpSwitch type {}", .{inst.operands[0]});
......@@ -447,11 +447,11 @@ pub const Parser = struct {
447447 try offsets.append(@intCast(offset));
448448 offset += 1;
449449 },
450 .PairIdRefLiteralInteger => {
450 .pair_id_ref_literal_integer => {
451451 try offsets.append(@intCast(offset));
452452 offset += 2;
453453 },
454 .PairIdRefIdRef => {
454 .pair_id_ref_id_ref => {
455455 try offsets.append(@intCast(offset));
456456 try offsets.append(@intCast(offset + 1));
457457 offset += 2;
src/link/SpirV/deduplicate.zig+11-11
......@@ -7,7 +7,7 @@ const BinaryModule = @import("BinaryModule.zig");
77const Section = @import("../../codegen/spirv/Section.zig");
88const spec = @import("../../codegen/spirv/spec.zig");
99const Opcode = spec.Opcode;
10const ResultId = spec.IdResult;
10const ResultId = spec.Id;
1111const Word = spec.Word;
1212
1313fn canDeduplicate(opcode: Opcode) bool {
......@@ -20,9 +20,9 @@ fn canDeduplicate(opcode: Opcode) bool {
2020 // Debug decoration-style instructions
2121 .OpName, .OpMemberName => true,
2222 else => switch (opcode.class()) {
23 .TypeDeclaration,
24 .ConstantCreation,
25 .Annotation,
23 .type_declaration,
24 .constant_creation,
25 .annotation,
2626 => true,
2727 else => false,
2828 },
......@@ -86,8 +86,8 @@ const ModuleInfo = struct {
8686 if (!canDeduplicate(inst.opcode)) continue;
8787
8888 const result_id_index: u16 = switch (inst.opcode.class()) {
89 .TypeDeclaration, .Annotation, .Debug => 0,
90 .ConstantCreation => 1,
89 .type_declaration, .annotation, .debug => 0,
90 .constant_creation => 1,
9191 else => unreachable,
9292 };
9393
......@@ -101,13 +101,13 @@ const ModuleInfo = struct {
101101 };
102102
103103 switch (inst.opcode.class()) {
104 .Annotation, .Debug => {
104 .annotation, .debug => {
105105 try decorations.append(arena, .{
106106 .target_id = result_id,
107107 .entity = entity,
108108 });
109109 },
110 .TypeDeclaration, .ConstantCreation => {
110 .type_declaration, .constant_creation => {
111111 const entry = try entities.getOrPut(result_id);
112112 if (entry.found_existing) {
113113 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
469469 const inst_spec = parser.getInstSpec(inst.opcode).?;
470470
471471 const maybe_result_id_offset: ?u16 = for (0..2) |i| {
472 if (inst_spec.operands.len > i and inst_spec.operands[i].kind == .IdResult) {
472 if (inst_spec.operands.len > i and inst_spec.operands[i].kind == .id_result) {
473473 break @intCast(i);
474474 }
475475 } else null;
......@@ -488,7 +488,7 @@ pub fn run(parser: *BinaryModule.Parser, binary: *BinaryModule, progress: std.Pr
488488 }
489489
490490 switch (inst.opcode.class()) {
491 .Annotation, .Debug => {
491 .annotation, .debug => {
492492 // For decoration-style instructions, only emit them
493493 // if the target is not removed.
494494 const target: ResultId = @enumFromInt(inst.operands[0]);
......@@ -515,7 +515,7 @@ pub fn run(parser: *BinaryModule.Parser, binary: *BinaryModule, progress: std.Pr
515515 // Debug and Annotation instructions don't need the forward pointer, and it
516516 // messes up the logical layout of the module.
517517 switch (inst.opcode.class()) {
518 .TypeDeclaration, .ConstantCreation, .Memory => {},
518 .type_declaration, .constant_creation, .memory => {},
519519 else => continue,
520520 }
521521
src/link/SpirV/lower_invocation_globals.zig+2-2
......@@ -6,7 +6,7 @@ const log = std.log.scoped(.spirv_link);
66const BinaryModule = @import("BinaryModule.zig");
77const Section = @import("../../codegen/spirv/Section.zig");
88const spec = @import("../../codegen/spirv/spec.zig");
9const ResultId = spec.IdResult;
9const ResultId = spec.Id;
1010const Word = spec.Word;
1111
1212/// This structure contains all the stuff that we need to parse from the module in
......@@ -626,7 +626,7 @@ const ModuleBuilder = struct {
626626 try self.section.emit(self.arena, .OpVariable, .{
627627 .id_result_type = global_info.ty,
628628 .id_result = id,
629 .storage_class = .Function,
629 .storage_class = .function,
630630 .initializer = null,
631631 });
632632 }
src/link/SpirV/prune_unused.zig+10-10
......@@ -15,14 +15,14 @@ const BinaryModule = @import("BinaryModule.zig");
1515const Section = @import("../../codegen/spirv/Section.zig");
1616const spec = @import("../../codegen/spirv/spec.zig");
1717const Opcode = spec.Opcode;
18const ResultId = spec.IdResult;
18const ResultId = spec.Id;
1919const Word = spec.Word;
2020
2121/// Return whether a particular opcode's instruction can be pruned.
2222/// These are idempotent instructions at globals scope and instructions
2323/// within functions that do not have any side effects.
2424/// The opcodes that return true here do not necessarily need to
25/// have an .IdResult. If they don't, then they are regarded
25/// have an .Id. If they don't, then they are regarded
2626/// as 'decoration'-style instructions that don't keep their
2727/// operands alive, but will be emitted if they are.
2828fn canPrune(op: Opcode) bool {
......@@ -34,12 +34,12 @@ fn canPrune(op: Opcode) bool {
3434 // instruction has any non-trivial side effects (like OpLoad
3535 // with the Volatile memory semantics).
3636 return switch (op.class()) {
37 .TypeDeclaration,
38 .Conversion,
39 .Arithmetic,
40 .RelationalAndLogical,
41 .Bit,
42 .Annotation,
37 .type_declaration,
38 .conversion,
39 .arithmetic,
40 .relational_and_logical,
41 .bit,
42 .annotation,
4343 => true,
4444 else => switch (op) {
4545 .OpFunction,
......@@ -111,7 +111,7 @@ const ModuleInfo = struct {
111111
112112 // Result-id can only be the first or second operand
113113 const maybe_result_id: ?ResultId = for (0..2) |i| {
114 if (inst_spec.operands.len > i and inst_spec.operands[i].kind == .IdResult) {
114 if (inst_spec.operands.len > i and inst_spec.operands[i].kind == .id_result) {
115115 break @enumFromInt(inst.operands[i]);
116116 }
117117 } else null;
......@@ -305,7 +305,7 @@ pub fn run(parser: *BinaryModule.Parser, binary: *BinaryModule, progress: std.Pr
305305
306306 // Result-id can only be the first or second operand
307307 const result_id: ResultId = for (0..2) |i| {
308 if (inst_spec.operands.len > i and inst_spec.operands[i].kind == .IdResult) {
308 if (inst_spec.operands.len > i and inst_spec.operands[i].kind == .id_result) {
309309 break @enumFromInt(inst.operands[i]);
310310 }
311311 } else {
tools/gen_spirv_spec.zig+155-145
......@@ -59,26 +59,28 @@ const set_names = std.StaticStringMap([]const u8).initComptime(.{
5959 .{ "nonsemantic.debugprintf", "NonSemantic.DebugPrintf" },
6060 .{ "spv-amd-shader-explicit-vertex-parameter", "SPV_AMD_shader_explicit_vertex_parameter" },
6161 .{ "nonsemantic.debugbreak", "NonSemantic.DebugBreak" },
62 .{ "tosa.001000.1", "SPV_EXT_INST_TYPE_TOSA_001000_1" },
6263 .{ "zig", "zig" },
6364});
6465
66var arena = std.heap.ArenaAllocator.init(std.heap.smp_allocator);
67const allocator = arena.allocator();
68
6569pub fn main() !void {
66 var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator);
6770 defer arena.deinit();
68 const a = arena.allocator();
6971
70 const args = try std.process.argsAlloc(a);
72 const args = try std.process.argsAlloc(allocator);
7173 if (args.len != 3) {
7274 usageAndExit(args[0], 1);
7375 }
7476
75 const json_path = try std.fs.path.join(a, &.{ args[1], "include/spirv/unified1/" });
77 const json_path = try std.fs.path.join(allocator, &.{ args[1], "include/spirv/unified1/" });
7678 const dir = try std.fs.cwd().openDir(json_path, .{ .iterate = true });
7779
78 const core_spec = try readRegistry(CoreRegistry, a, dir, "spirv.core.grammar.json");
80 const core_spec = try readRegistry(CoreRegistry, dir, "spirv.core.grammar.json");
7981 std.sort.block(Instruction, core_spec.instructions, CmpInst{}, CmpInst.lt);
8082
81 var exts = std.ArrayList(Extension).init(a);
83 var exts = std.ArrayList(Extension).init(allocator);
8284
8385 var it = dir.iterate();
8486 while (try it.next()) |entry| {
......@@ -86,18 +88,43 @@ pub fn main() !void {
8688 continue;
8789 }
8890
89 try readExtRegistry(&exts, a, dir, entry.name);
91 try readExtRegistry(&exts, dir, entry.name);
9092 }
9193
92 try readExtRegistry(&exts, a, std.fs.cwd(), args[2]);
94 try readExtRegistry(&exts, std.fs.cwd(), args[2]);
95
96 const output_buf = try allocator.alloc(u8, 1024 * 1024);
97 var fbs = std.io.fixedBufferStream(output_buf);
98 var adapter = fbs.writer().adaptToNewApi();
99 const w = &adapter.new_interface;
100 try render(w, core_spec, exts.items);
101 var output: [:0]u8 = @ptrCast(fbs.getWritten());
102 output[output.len] = 0;
103
104 var tree = try std.zig.Ast.parse(allocator, output, .zig);
105 var color: std.zig.Color = .on;
93106
94 var buffer: [4000]u8 = undefined;
95 var w = std.fs.File.stdout().writerStreaming(&buffer);
96 try render(&w, a, core_spec, exts.items);
97 try w.flush();
107 if (tree.errors.len != 0) {
108 try std.zig.printAstErrorsToStderr(allocator, tree, "", color);
109 return;
110 }
111
112 var zir = try std.zig.AstGen.generate(allocator, tree);
113 if (zir.hasCompileErrors()) {
114 var wip_errors: std.zig.ErrorBundle.Wip = undefined;
115 try wip_errors.init(allocator);
116 defer wip_errors.deinit();
117 try wip_errors.addZirErrorMessages(zir, tree, output, "");
118 var error_bundle = try wip_errors.toOwnedBundle("");
119 defer error_bundle.deinit(allocator);
120 error_bundle.renderToStdErr(color.renderOptions());
121 }
122
123 const formatted_output = try tree.render(allocator);
124 _ = try std.fs.File.stdout().write(formatted_output);
98125}
99126
100fn readExtRegistry(exts: *std.ArrayList(Extension), a: Allocator, dir: std.fs.Dir, sub_path: []const u8) !void {
127fn readExtRegistry(exts: *std.ArrayList(Extension), dir: std.fs.Dir, sub_path: []const u8) !void {
101128 const filename = std.fs.path.basename(sub_path);
102129 if (!std.mem.startsWith(u8, filename, "extinst.")) {
103130 return;
......@@ -105,22 +132,22 @@ fn readExtRegistry(exts: *std.ArrayList(Extension), a: Allocator, dir: std.fs.Di
105132
106133 std.debug.assert(std.mem.endsWith(u8, filename, ".grammar.json"));
107134 const name = filename["extinst.".len .. filename.len - ".grammar.json".len];
108 const spec = try readRegistry(ExtensionRegistry, a, dir, sub_path);
135 const spec = try readRegistry(ExtensionRegistry, dir, sub_path);
109136
110137 std.sort.block(Instruction, spec.instructions, CmpInst{}, CmpInst.lt);
111138
112139 try exts.append(.{ .name = set_names.get(name).?, .spec = spec });
113140}
114141
115fn readRegistry(comptime RegistryType: type, a: Allocator, dir: std.fs.Dir, path: []const u8) !RegistryType {
116 const spec = try dir.readFileAlloc(a, path, std.math.maxInt(usize));
142fn readRegistry(comptime RegistryType: type, dir: std.fs.Dir, path: []const u8) !RegistryType {
143 const spec = try dir.readFileAlloc(allocator, path, std.math.maxInt(usize));
117144 // Required for json parsing.
118145 @setEvalBranchQuota(10000);
119146
120 var scanner = std.json.Scanner.initCompleteInput(a, spec);
147 var scanner = std.json.Scanner.initCompleteInput(allocator, spec);
121148 var diagnostics = std.json.Diagnostics{};
122149 scanner.enableDiagnostics(&diagnostics);
123 const parsed = std.json.parseFromTokenSource(RegistryType, a, &scanner, .{}) catch |err| {
150 const parsed = std.json.parseFromTokenSource(RegistryType, allocator, &scanner, .{}) catch |err| {
124151 std.debug.print("{s}:{}:{}:\n", .{ path, diagnostics.getLine(), diagnostics.getColumn() });
125152 return err;
126153 };
......@@ -129,11 +156,8 @@ fn readRegistry(comptime RegistryType: type, a: Allocator, dir: std.fs.Dir, path
129156
130157/// Returns a set with types that require an extra struct for the `Instruction` interface
131158/// to the spir-v spec, or whether the original type can be used.
132fn extendedStructs(
133 a: Allocator,
134 kinds: []const OperandKind,
135) !ExtendedStructSet {
136 var map = ExtendedStructSet.init(a);
159fn extendedStructs(kinds: []const OperandKind) !ExtendedStructSet {
160 var map = ExtendedStructSet.init(allocator);
137161 try map.ensureTotalCapacity(@as(u32, @intCast(kinds.len)));
138162
139163 for (kinds) |kind| {
......@@ -167,7 +191,7 @@ fn tagPriorityScore(tag: []const u8) usize {
167191 }
168192}
169193
170fn render(writer: *std.io.Writer, a: Allocator, registry: CoreRegistry, extensions: []const Extension) !void {
194fn render(writer: *std.io.Writer, registry: CoreRegistry, extensions: []const Extension) !void {
171195 try writer.writeAll(
172196 \\//! This file is auto-generated by tools/gen_spirv_spec.zig.
173197 \\
......@@ -185,22 +209,17 @@ fn render(writer: *std.io.Writer, a: Allocator, registry: CoreRegistry, extensio
185209 \\};
186210 \\
187211 \\pub const Word = u32;
188 \\pub const IdResult = enum(Word) {
212 \\pub const Id = enum(Word) {
189213 \\ none,
190214 \\ _,
191215 \\
192 \\ pub fn format(self: IdResult, writer: *std.io.Writer) std.io.Writer.Error!void {
216 \\ pub fn format(self: Id, writer: *std.io.Writer) std.io.Writer.Error!void {
193217 \\ switch (self) {
194218 \\ .none => try writer.writeAll("(none)"),
195219 \\ else => try writer.print("%{d}", .{@intFromEnum(self)}),
196220 \\ }
197221 \\ }
198222 \\};
199 \\pub const IdResultType = IdResult;
200 \\pub const IdRef = IdResult;
201 \\
202 \\pub const IdMemorySemantics = IdRef;
203 \\pub const IdScope = IdRef;
204223 \\
205224 \\pub const LiteralInteger = Word;
206225 \\pub const LiteralFloat = Word;
......@@ -215,9 +234,9 @@ fn render(writer: *std.io.Writer, a: Allocator, registry: CoreRegistry, extensio
215234 \\};
216235 \\pub const LiteralExtInstInteger = struct{ inst: Word };
217236 \\pub const LiteralSpecConstantOpInteger = struct { opcode: Opcode };
218 \\pub const PairLiteralIntegerIdRef = struct { value: LiteralInteger, label: IdRef };
219 \\pub const PairIdRefLiteralInteger = struct { target: IdRef, member: LiteralInteger };
220 \\pub const PairIdRefIdRef = [2]IdRef;
237 \\pub const PairLiteralIntegerIdRef = struct { value: LiteralInteger, label: Id };
238 \\pub const PairIdRefLiteralInteger = struct { target: Id, member: LiteralInteger };
239 \\pub const PairIdRefIdRef = [2]Id;
221240 \\
222241 \\pub const Quantifier = enum {
223242 \\ required,
......@@ -255,7 +274,7 @@ fn render(writer: *std.io.Writer, a: Allocator, registry: CoreRegistry, extensio
255274 );
256275
257276 try writer.print(
258 \\pub const version = Version{{ .major = {}, .minor = {}, .patch = {} }};
277 \\pub const version: Version = .{{ .major = {}, .minor = {}, .patch = {} }};
259278 \\pub const magic_number: Word = {s};
260279 \\
261280 \\
......@@ -266,7 +285,7 @@ fn render(writer: *std.io.Writer, a: Allocator, registry: CoreRegistry, extensio
266285 // Merge the operand kinds from all extensions together.
267286 // var all_operand_kinds = std.ArrayList(OperandKind).init(a);
268287 // try all_operand_kinds.appendSlice(registry.operand_kinds);
269 var all_operand_kinds = OperandKindMap.init(a);
288 var all_operand_kinds = OperandKindMap.init(allocator);
270289 for (registry.operand_kinds) |kind| {
271290 try all_operand_kinds.putNoClobber(.{ "core", kind.kind }, kind);
272291 }
......@@ -279,35 +298,33 @@ fn render(writer: *std.io.Writer, a: Allocator, registry: CoreRegistry, extensio
279298 try all_operand_kinds.ensureUnusedCapacity(ext.spec.operand_kinds.len);
280299 for (ext.spec.operand_kinds) |kind| {
281300 var new_kind = kind;
282 new_kind.kind = try std.mem.join(a, ".", &.{ ext.name, kind.kind });
301 new_kind.kind = try std.mem.join(allocator, ".", &.{ ext.name, kind.kind });
283302 try all_operand_kinds.putNoClobber(.{ ext.name, kind.kind }, new_kind);
284303 }
285304 }
286305
287 const extended_structs = try extendedStructs(a, all_operand_kinds.values());
306 const extended_structs = try extendedStructs(all_operand_kinds.values());
288307 // Note: extensions don't seem to have class.
289 try renderClass(writer, a, registry.instructions);
308 try renderClass(writer, registry.instructions);
290309 try renderOperandKind(writer, all_operand_kinds.values());
291 try renderOpcodes(writer, a, registry.instructions, extended_structs);
292 try renderOperandKinds(writer, a, all_operand_kinds.values(), extended_structs);
293 try renderInstructionSet(writer, a, registry, extensions, all_operand_kinds);
310 try renderOpcodes(writer, registry.instructions, extended_structs);
311 try renderOperandKinds(writer, all_operand_kinds.values(), extended_structs);
312 try renderInstructionSet(writer, registry, extensions, all_operand_kinds);
294313}
295314
296315fn renderInstructionSet(
297316 writer: anytype,
298 a: Allocator,
299317 core: CoreRegistry,
300318 extensions: []const Extension,
301319 all_operand_kinds: OperandKindMap,
302320) !void {
303 _ = a;
304321 try writer.writeAll(
305322 \\pub const InstructionSet = enum {
306323 \\ core,
307324 );
308325
309326 for (extensions) |ext| {
310 try writer.print("{p},\n", .{std.zig.fmtId(ext.name)});
327 try writer.print("{f},\n", .{formatId(ext.name)});
311328 }
312329
313330 try writer.writeAll(
......@@ -340,14 +357,14 @@ fn renderInstructionsCase(
340357 // but there aren't so many total aliases and that would add more overhead in total. We will
341358 // just filter those out when needed.
342359
343 try writer.print(".{p_} => &[_]Instruction{{\n", .{std.zig.fmtId(set_name)});
360 try writer.print(".{f} => &.{{\n", .{formatId(set_name)});
344361
345362 for (instructions) |inst| {
346363 try writer.print(
347364 \\.{{
348365 \\ .name = "{s}",
349366 \\ .opcode = {},
350 \\ .operands = &[_]Operand{{
367 \\ .operands = &.{{
351368 \\
352369 , .{ inst.opname, inst.opcode });
353370
......@@ -362,7 +379,7 @@ fn renderInstructionsCase(
362379
363380 const kind = all_operand_kinds.get(.{ set_name, operand.kind }) orelse
364381 all_operand_kinds.get(.{ "core", operand.kind }).?;
365 try writer.print(".{{.kind = .{p_}, .quantifier = .{s}}},\n", .{ std.zig.fmtId(kind.kind), quantifier });
382 try writer.print(".{{.kind = .{f}, .quantifier = .{s}}},\n", .{ formatId(kind.kind), quantifier });
366383 }
367384
368385 try writer.writeAll(
......@@ -378,54 +395,69 @@ fn renderInstructionsCase(
378395 );
379396}
380397
381fn renderClass(writer: anytype, a: Allocator, instructions: []const Instruction) !void {
382 var class_map = std.StringArrayHashMap(void).init(a);
398fn renderClass(writer: anytype, instructions: []const Instruction) !void {
399 var class_map = std.StringArrayHashMap(void).init(allocator);
383400
384401 for (instructions) |inst| {
385 if (std.mem.eql(u8, inst.class.?, "@exclude")) {
386 continue;
387 }
402 if (std.mem.eql(u8, inst.class.?, "@exclude")) continue;
388403 try class_map.put(inst.class.?, {});
389404 }
390405
391406 try writer.writeAll("pub const Class = enum {\n");
392407 for (class_map.keys()) |class| {
393 try renderInstructionClass(writer, class);
394 try writer.writeAll(",\n");
408 try writer.print("{f},\n", .{formatId(class)});
395409 }
396410 try writer.writeAll("};\n\n");
397411}
398412
399fn renderInstructionClass(writer: anytype, class: []const u8) !void {
400 // Just assume that these wont clobber zig builtin types.
401 var prev_was_sep = true;
402 for (class) |c| {
403 switch (c) {
404 '-', '_' => prev_was_sep = true,
405 else => if (prev_was_sep) {
406 try writer.writeByte(std.ascii.toUpper(c));
407 prev_was_sep = false;
408 } else {
409 try writer.writeByte(std.ascii.toLower(c));
410 },
413const Formatter = struct {
414 data: []const u8,
415
416 fn format(f: Formatter, writer: *std.io.Writer) std.io.Writer.Error!void {
417 var id_buf: [128]u8 = undefined;
418 var fbs = std.io.fixedBufferStream(&id_buf);
419 const fw = fbs.writer();
420 for (f.data, 0..) |c, i| {
421 switch (c) {
422 '-', '_', '.', '~', ' ' => fw.writeByte('_') catch return error.WriteFailed,
423 'a'...'z', '0'...'9' => fw.writeByte(c) catch return error.WriteFailed,
424 'A'...'Z' => {
425 if ((i > 0 and std.ascii.isLower(f.data[i - 1])) or
426 (i > 0 and std.ascii.isUpper(f.data[i - 1]) and
427 i + 1 < f.data.len and std.ascii.isLower(f.data[i + 1])))
428 {
429 _ = fw.write(&.{ '_', std.ascii.toLower(c) }) catch return error.WriteFailed;
430 } else {
431 fw.writeByte(std.ascii.toLower(c)) catch return error.WriteFailed;
432 }
433 },
434 else => unreachable,
435 }
411436 }
437
438 // make sure that this won't clobber with zig keywords
439 try writer.print("{f}", .{std.zig.fmtId(fbs.getWritten())});
412440 }
441};
442
443fn formatId(identifier: []const u8) std.fmt.Alt(Formatter, Formatter.format) {
444 return .{ .data = .{ .data = identifier } };
413445}
414446
415447fn renderOperandKind(writer: anytype, operands: []const OperandKind) !void {
416448 try writer.writeAll(
417449 \\pub const OperandKind = enum {
418 \\ Opcode,
450 \\ opcode,
419451 \\
420452 );
421453 for (operands) |operand| {
422 try writer.print("{p},\n", .{std.zig.fmtId(operand.kind)});
454 try writer.print("{f},\n", .{formatId(operand.kind)});
423455 }
424456 try writer.writeAll(
425457 \\
426458 \\pub fn category(self: OperandKind) OperandCategory {
427459 \\ return switch (self) {
428 \\ .Opcode => .literal,
460 \\ .opcode => .literal,
429461 \\
430462 );
431463 for (operands) |operand| {
......@@ -436,26 +468,26 @@ fn renderOperandKind(writer: anytype, operands: []const OperandKind) !void {
436468 .Literal => "literal",
437469 .Composite => "composite",
438470 };
439 try writer.print(".{p_} => .{s},\n", .{ std.zig.fmtId(operand.kind), cat });
471 try writer.print(".{f} => .{s},\n", .{ formatId(operand.kind), cat });
440472 }
441473 try writer.writeAll(
442474 \\ };
443475 \\}
444476 \\pub fn enumerants(self: OperandKind) []const Enumerant {
445477 \\ return switch (self) {
446 \\ .Opcode => unreachable,
478 \\ .opcode => unreachable,
447479 \\
448480 );
449481 for (operands) |operand| {
450482 switch (operand.category) {
451483 .BitEnum, .ValueEnum => {},
452484 else => {
453 try writer.print(".{p_} => unreachable,\n", .{std.zig.fmtId(operand.kind)});
485 try writer.print(".{f} => unreachable,\n", .{formatId(operand.kind)});
454486 continue;
455487 },
456488 }
457489
458 try writer.print(".{p_} => &[_]Enumerant{{", .{std.zig.fmtId(operand.kind)});
490 try writer.print(".{f} => &.{{", .{formatId(operand.kind)});
459491 for (operand.enumerants.?) |enumerant| {
460492 if (enumerant.value == .bitflag and std.mem.eql(u8, enumerant.enumerant, "None")) {
461493 continue;
......@@ -474,32 +506,30 @@ fn renderEnumerant(writer: anytype, enumerant: Enumerant) !void {
474506 .bitflag => |flag| try writer.writeAll(flag),
475507 .int => |int| try writer.print("{}", .{int}),
476508 }
477 try writer.writeAll(", .parameters = &[_]OperandKind{");
509 try writer.writeAll(", .parameters = &.{");
478510 for (enumerant.parameters, 0..) |param, i| {
479511 if (i != 0)
480512 try writer.writeAll(", ");
481513 // Note, param.quantifier will always be one.
482 try writer.print(".{p_}", .{std.zig.fmtId(param.kind)});
514 try writer.print(".{f}", .{formatId(param.kind)});
483515 }
484516 try writer.writeAll("}}");
485517}
486518
487519fn renderOpcodes(
488520 writer: anytype,
489 a: Allocator,
490521 instructions: []const Instruction,
491522 extended_structs: ExtendedStructSet,
492523) !void {
493 var inst_map = std.AutoArrayHashMap(u32, usize).init(a);
524 var inst_map = std.AutoArrayHashMap(u32, usize).init(allocator);
494525 try inst_map.ensureTotalCapacity(instructions.len);
495526
496 var aliases = std.ArrayList(struct { inst: usize, alias: usize }).init(a);
527 var aliases = std.ArrayList(struct { inst: usize, alias: usize }).init(allocator);
497528 try aliases.ensureTotalCapacity(instructions.len);
498529
499530 for (instructions, 0..) |inst, i| {
500 if (std.mem.eql(u8, inst.class.?, "@exclude")) {
501 continue;
502 }
531 if (std.mem.eql(u8, inst.class.?, "@exclude")) continue;
532
503533 const result = inst_map.getOrPutAssumeCapacity(inst.opcode);
504534 if (!result.found_existing) {
505535 result.value_ptr.* = i;
......@@ -525,7 +555,7 @@ fn renderOpcodes(
525555 try writer.writeAll("pub const Opcode = enum(u16) {\n");
526556 for (instructions_indices) |i| {
527557 const inst = instructions[i];
528 try writer.print("{p} = {},\n", .{ std.zig.fmtId(inst.opname), inst.opcode });
558 try writer.print("{f} = {},\n", .{ std.zig.fmtId(inst.opname), inst.opcode });
529559 }
530560
531561 try writer.writeAll(
......@@ -533,9 +563,9 @@ fn renderOpcodes(
533563 );
534564
535565 for (aliases.items) |alias| {
536 try writer.print("pub const {} = Opcode.{p_};\n", .{
537 std.zig.fmtId(instructions[alias.inst].opname),
538 std.zig.fmtId(instructions[alias.alias].opname),
566 try writer.print("pub const {f} = Opcode.{f};\n", .{
567 formatId(instructions[alias.inst].opname),
568 formatId(instructions[alias.alias].opname),
539569 });
540570 }
541571
......@@ -548,7 +578,7 @@ fn renderOpcodes(
548578
549579 for (instructions_indices) |i| {
550580 const inst = instructions[i];
551 try renderOperand(writer, .instruction, inst.opname, inst.operands, extended_structs);
581 try renderOperand(writer, .instruction, inst.opname, inst.operands, extended_structs, false);
552582 }
553583
554584 try writer.writeAll(
......@@ -561,9 +591,7 @@ fn renderOpcodes(
561591
562592 for (instructions_indices) |i| {
563593 const inst = instructions[i];
564 try writer.print(".{p_} => .", .{std.zig.fmtId(inst.opname)});
565 try renderInstructionClass(writer, inst.class.?);
566 try writer.writeAll(",\n");
594 try writer.print(".{f} => .{f},\n", .{ std.zig.fmtId(inst.opname), formatId(inst.class.?) });
567595 }
568596
569597 try writer.writeAll(
......@@ -576,14 +604,13 @@ fn renderOpcodes(
576604
577605fn renderOperandKinds(
578606 writer: anytype,
579 a: Allocator,
580607 kinds: []const OperandKind,
581608 extended_structs: ExtendedStructSet,
582609) !void {
583610 for (kinds) |kind| {
584611 switch (kind.category) {
585 .ValueEnum => try renderValueEnum(writer, a, kind, extended_structs),
586 .BitEnum => try renderBitEnum(writer, a, kind, extended_structs),
612 .ValueEnum => try renderValueEnum(writer, kind, extended_structs),
613 .BitEnum => try renderBitEnum(writer, kind, extended_structs),
587614 else => {},
588615 }
589616 }
......@@ -591,20 +618,18 @@ fn renderOperandKinds(
591618
592619fn renderValueEnum(
593620 writer: anytype,
594 a: Allocator,
595621 enumeration: OperandKind,
596622 extended_structs: ExtendedStructSet,
597623) !void {
598624 const enumerants = enumeration.enumerants orelse return error.InvalidRegistry;
599625
600 var enum_map = std.AutoArrayHashMap(u32, usize).init(a);
626 var enum_map = std.AutoArrayHashMap(u32, usize).init(allocator);
601627 try enum_map.ensureTotalCapacity(enumerants.len);
602628
603 var aliases = std.ArrayList(struct { enumerant: usize, alias: usize }).init(a);
629 var aliases = std.ArrayList(struct { enumerant: usize, alias: usize }).init(allocator);
604630 try aliases.ensureTotalCapacity(enumerants.len);
605631
606632 for (enumerants, 0..) |enumerant, i| {
607 try writer.context.flush();
608633 const value: u31 = switch (enumerant.value) {
609634 .int => |value| value,
610635 // Some extensions declare ints as string
......@@ -632,25 +657,25 @@ fn renderValueEnum(
632657
633658 const enum_indices = enum_map.values();
634659
635 try writer.print("pub const {} = enum(u32) {{\n", .{std.zig.fmtId(enumeration.kind)});
660 try writer.print("pub const {f} = enum(u32) {{\n", .{std.zig.fmtId(enumeration.kind)});
636661
637662 for (enum_indices) |i| {
638663 const enumerant = enumerants[i];
639664 // if (enumerant.value != .int) return error.InvalidRegistry;
640665
641666 switch (enumerant.value) {
642 .int => |value| try writer.print("{p} = {},\n", .{ std.zig.fmtId(enumerant.enumerant), value }),
643 .bitflag => |value| try writer.print("{p} = {s},\n", .{ std.zig.fmtId(enumerant.enumerant), value }),
667 .int => |value| try writer.print("{f} = {},\n", .{ formatId(enumerant.enumerant), value }),
668 .bitflag => |value| try writer.print("{f} = {s},\n", .{ formatId(enumerant.enumerant), value }),
644669 }
645670 }
646671
647672 try writer.writeByte('\n');
648673
649674 for (aliases.items) |alias| {
650 try writer.print("pub const {} = {}.{p_};\n", .{
651 std.zig.fmtId(enumerants[alias.enumerant].enumerant),
675 try writer.print("pub const {f} = {f}.{f};\n", .{
676 formatId(enumerants[alias.enumerant].enumerant),
652677 std.zig.fmtId(enumeration.kind),
653 std.zig.fmtId(enumerants[alias.alias].enumerant),
678 formatId(enumerants[alias.alias].enumerant),
654679 });
655680 }
656681
......@@ -659,11 +684,11 @@ fn renderValueEnum(
659684 return;
660685 }
661686
662 try writer.print("\npub const Extended = union({}) {{\n", .{std.zig.fmtId(enumeration.kind)});
687 try writer.print("\npub const Extended = union({f}) {{\n", .{std.zig.fmtId(enumeration.kind)});
663688
664689 for (enum_indices) |i| {
665690 const enumerant = enumerants[i];
666 try renderOperand(writer, .@"union", enumerant.enumerant, enumerant.parameters, extended_structs);
691 try renderOperand(writer, .@"union", enumerant.enumerant, enumerant.parameters, extended_structs, true);
667692 }
668693
669694 try writer.writeAll("};\n};\n");
......@@ -671,16 +696,15 @@ fn renderValueEnum(
671696
672697fn renderBitEnum(
673698 writer: anytype,
674 a: Allocator,
675699 enumeration: OperandKind,
676700 extended_structs: ExtendedStructSet,
677701) !void {
678 try writer.print("pub const {} = packed struct {{\n", .{std.zig.fmtId(enumeration.kind)});
702 try writer.print("pub const {f} = packed struct {{\n", .{std.zig.fmtId(enumeration.kind)});
679703
680704 var flags_by_bitpos = [_]?usize{null} ** 32;
681705 const enumerants = enumeration.enumerants orelse return error.InvalidRegistry;
682706
683 var aliases = std.ArrayList(struct { flag: usize, alias: u5 }).init(a);
707 var aliases = std.ArrayList(struct { flag: usize, alias: u5 }).init(allocator);
684708 try aliases.ensureTotalCapacity(enumerants.len);
685709
686710 for (enumerants, 0..) |enumerant, i| {
......@@ -715,7 +739,7 @@ fn renderBitEnum(
715739
716740 for (flags_by_bitpos, 0..) |maybe_flag_index, bitpos| {
717741 if (maybe_flag_index) |flag_index| {
718 try writer.print("{p_}", .{std.zig.fmtId(enumerants[flag_index].enumerant)});
742 try writer.print("{f}", .{formatId(enumerants[flag_index].enumerant)});
719743 } else {
720744 try writer.print("_reserved_bit_{}", .{bitpos});
721745 }
......@@ -726,10 +750,10 @@ fn renderBitEnum(
726750 try writer.writeByte('\n');
727751
728752 for (aliases.items) |alias| {
729 try writer.print("pub const {}: {} = .{{.{p_} = true}};\n", .{
730 std.zig.fmtId(enumerants[alias.flag].enumerant),
753 try writer.print("pub const {f}: {f} = .{{.{f} = true}};\n", .{
754 formatId(enumerants[alias.flag].enumerant),
731755 std.zig.fmtId(enumeration.kind),
732 std.zig.fmtId(enumerants[flags_by_bitpos[alias.alias].?].enumerant),
756 formatId(enumerants[flags_by_bitpos[alias.alias].?].enumerant),
733757 });
734758 }
735759
......@@ -747,7 +771,7 @@ fn renderBitEnum(
747771 };
748772 const enumerant = enumerants[flag_index];
749773
750 try renderOperand(writer, .mask, enumerant.enumerant, enumerant.parameters, extended_structs);
774 try renderOperand(writer, .mask, enumerant.enumerant, enumerant.parameters, extended_structs, true);
751775 }
752776
753777 try writer.writeAll("};\n};\n");
......@@ -763,11 +787,18 @@ fn renderOperand(
763787 field_name: []const u8,
764788 parameters: []const Operand,
765789 extended_structs: ExtendedStructSet,
790 snake_case: bool,
766791) !void {
767792 if (kind == .instruction) {
768793 try writer.writeByte('.');
769794 }
770 try writer.print("{}", .{std.zig.fmtId(field_name)});
795
796 if (snake_case) {
797 try writer.print("{f}", .{formatId(field_name)});
798 } else {
799 try writer.print("{f}", .{std.zig.fmtId(field_name)});
800 }
801
771802 if (parameters.len == 0) {
772803 switch (kind) {
773804 .@"union" => try writer.writeAll(",\n"),
......@@ -787,7 +818,7 @@ fn renderOperand(
787818 try writer.writeByte('?');
788819 }
789820
790 try writer.writeAll("struct{");
821 try writer.writeAll("struct {");
791822
792823 for (parameters, 0..) |param, j| {
793824 if (j != 0) {
......@@ -804,7 +835,11 @@ fn renderOperand(
804835 }
805836 }
806837
807 try writer.print("{}", .{std.zig.fmtId(param.kind)});
838 if (std.mem.startsWith(u8, param.kind, "Id")) {
839 _ = try writer.write("Id");
840 } else {
841 try writer.print("{f}", .{std.zig.fmtId(param.kind)});
842 }
808843
809844 if (extended_structs.contains(param.kind)) {
810845 try writer.writeAll(".Extended");
......@@ -830,49 +865,24 @@ fn renderOperand(
830865fn renderFieldName(writer: anytype, operands: []const Operand, field_index: usize) !void {
831866 const operand = operands[field_index];
832867
833 // Should be enough for all names - adjust as needed.
834 var name_backing_buffer: [64]u8 = undefined;
835 var name_buffer = std.ArrayListUnmanaged(u8).initBuffer(&name_backing_buffer);
836
837868 derive_from_kind: {
838869 // Operand names are often in the json encoded as "'Name'" (with two sets of quotes).
839870 // Additionally, some operands have ~ in them at the end (D~ref~).
840871 const name = std.mem.trim(u8, operand.name, "'~");
841 if (name.len == 0) {
842 break :derive_from_kind;
843 }
872 if (name.len == 0) break :derive_from_kind;
844873
845 // Some names have weird characters in them (like newlines) - skip any such ones.
846 // Use the same loop to transform to snake-case.
847874 for (name) |c| {
848875 switch (c) {
849 'a'...'z', '0'...'9' => name_buffer.appendAssumeCapacity(c),
850 'A'...'Z' => name_buffer.appendAssumeCapacity(std.ascii.toLower(c)),
851 ' ', '~' => name_buffer.appendAssumeCapacity('_'),
876 'a'...'z', '0'...'9', 'A'...'Z', ' ', '~' => continue,
852877 else => break :derive_from_kind,
853878 }
854879 }
855880
856 // Assume there are no duplicate 'name' fields.
857 try writer.print("{p_}", .{std.zig.fmtId(name_buffer.items)});
881 try writer.print("{f}", .{formatId(name)});
858882 return;
859883 }
860884
861 // Translate to snake case.
862 name_buffer.items.len = 0;
863 for (operand.kind, 0..) |c, i| {
864 switch (c) {
865 'a'...'z', '0'...'9' => name_buffer.appendAssumeCapacity(c),
866 'A'...'Z' => if (i > 0 and std.ascii.isLower(operand.kind[i - 1])) {
867 name_buffer.appendSliceAssumeCapacity(&[_]u8{ '_', std.ascii.toLower(c) });
868 } else {
869 name_buffer.appendAssumeCapacity(std.ascii.toLower(c));
870 },
871 else => unreachable, // Assume that the name is valid C-syntax (and contains no underscores).
872 }
873 }
874
875 try writer.print("{p_}", .{std.zig.fmtId(name_buffer.items)});
885 try writer.print("{f}", .{formatId(operand.kind)});
876886
877887 // For fields derived from type name, there could be any amount.
878888 // Simply check against all other fields, and if another similar one exists, add a number.
tools/spirv/grammar.zig+4
......@@ -37,9 +37,11 @@ pub const InstructionPrintingClass = struct {
3737pub const Instruction = struct {
3838 opname: []const u8,
3939 class: ?[]const u8 = null, // Note: Only available in the core registry.
40 aliases: [][]const u8 = &[_][]const u8{},
4041 opcode: u32,
4142 operands: []Operand = &[_]Operand{},
4243 capabilities: [][]const u8 = &[_][]const u8{},
44 provisional: bool = false,
4345 // DebugModuleINTEL has this...
4446 capability: ?[]const u8 = null,
4547 extensions: [][]const u8 = &[_][]const u8{},
......@@ -81,6 +83,7 @@ pub const OperandKind = struct {
8183
8284pub const Enumerant = struct {
8385 enumerant: []const u8,
86 aliases: [][]const u8 = &[_][]const u8{},
8487 value: union(enum) {
8588 bitflag: []const u8, // Hexadecimal representation of the value
8689 int: u31,
......@@ -100,6 +103,7 @@ pub const Enumerant = struct {
100103 pub const jsonStringify = @compileError("not supported");
101104 },
102105 capabilities: [][]const u8 = &[_][]const u8{},
106 provisional: bool = false,
103107 /// Valid for .ValueEnum and .BitEnum
104108 extensions: [][]const u8 = &[_][]const u8{},
105109 /// `quantifier` will always be `null`.