Skip to main content

rspirv/grammar/
autogen_table.rs

1// AUTOMATICALLY GENERATED from the SPIR-V JSON grammar:
2//   external/spirv.core.grammar.json.
3// DO NOT MODIFY!
4
5#[doc = "All operand kinds in the SPIR-V grammar."]
6#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
7#[allow(clippy::upper_case_acronyms)]
8pub enum OperandKind {
9    ImageOperands,
10    FPFastMathMode,
11    SelectionControl,
12    LoopControl,
13    FunctionControl,
14    MemorySemantics,
15    MemoryAccess,
16    KernelProfilingInfo,
17    RayFlags,
18    FragmentShadingRate,
19    RawAccessChainOperands,
20    SourceLanguage,
21    ExecutionModel,
22    AddressingModel,
23    MemoryModel,
24    ExecutionMode,
25    StorageClass,
26    Dim,
27    SamplerAddressingMode,
28    SamplerFilterMode,
29    ImageFormat,
30    ImageChannelOrder,
31    ImageChannelDataType,
32    FPRoundingMode,
33    FPDenormMode,
34    QuantizationModes,
35    FPOperationMode,
36    OverflowModes,
37    LinkageType,
38    AccessQualifier,
39    HostAccessQualifier,
40    FunctionParameterAttribute,
41    Decoration,
42    BuiltIn,
43    Scope,
44    GroupOperation,
45    KernelEnqueueFlags,
46    Capability,
47    RayQueryIntersection,
48    RayQueryCommittedIntersectionType,
49    RayQueryCandidateIntersectionType,
50    PackedVectorFormat,
51    CooperativeMatrixOperands,
52    CooperativeMatrixLayout,
53    CooperativeMatrixUse,
54    CooperativeMatrixReduce,
55    TensorClampMode,
56    TensorAddressingOperands,
57    InitializationModeQualifier,
58    LoadCacheControl,
59    StoreCacheControl,
60    NamedMaximumNumberOfRegisters,
61    MatrixMultiplyAccumulateOperands,
62    FPEncoding,
63    CooperativeVectorMatrixLayout,
64    ComponentType,
65    IdResultType,
66    IdResult,
67    IdMemorySemantics,
68    IdScope,
69    IdRef,
70    LiteralInteger,
71    LiteralString,
72    LiteralFloat,
73    LiteralContextDependentNumber,
74    LiteralExtInstInteger,
75    LiteralSpecConstantOpInteger,
76    PairLiteralIntegerIdRef,
77    PairIdRefLiteralInteger,
78    PairIdRefIdRef,
79    TensorOperands,
80    Debuginfo(debuginfo::ExtOperandKind),
81    NonsemanticClspvreflection(nonsemantic_clspvreflection::ExtOperandKind),
82    NonsemanticShaderDebuginfo100(nonsemantic_shader_debuginfo_100::ExtOperandKind),
83    OpenclDebuginfo100(opencl_debuginfo_100::ExtOperandKind),
84}
85#[doc = "Wrapper enum for all extended instruction set opcodes."]
86#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
87#[allow(clippy::upper_case_acronyms)]
88pub enum ExtInstOp {
89    ArmMotionEngine100(spirv::ArmMotionEngine100Op),
90    Debuginfo(spirv::DebuginfoOp),
91    GlslStd450(spirv::GlslStd450Op),
92    NonsemanticClspvreflection(spirv::NonsemanticClspvreflectionOp),
93    NonsemanticDebugbreak(spirv::NonsemanticDebugbreakOp),
94    NonsemanticDebugprintf(spirv::NonsemanticDebugprintfOp),
95    NonsemanticShaderDebuginfo100(spirv::NonsemanticShaderDebuginfo100Op),
96    NonsemanticVkspreflection(spirv::NonsemanticVkspreflectionOp),
97    OpenclDebuginfo100(spirv::OpenclDebuginfo100Op),
98    OpenclStd100(spirv::OpenclStd100Op),
99    SpvAmdGcnShader(spirv::SpvAmdGcnShaderOp),
100    SpvAmdShaderBallot(spirv::SpvAmdShaderBallotOp),
101    SpvAmdShaderExplicitVertexParameter(spirv::SpvAmdShaderExplicitVertexParameterOp),
102    SpvAmdShaderTrinaryMinmax(spirv::SpvAmdShaderTrinaryMinmaxOp),
103    Tosa0010001(spirv::Tosa0010001Op),
104}
105impl From<ExtInstOp> for spirv::Word {
106    fn from(op: ExtInstOp) -> spirv::Word {
107        match op {
108            ExtInstOp::ArmMotionEngine100(v) => v as spirv::Word,
109            ExtInstOp::Debuginfo(v) => v as spirv::Word,
110            ExtInstOp::GlslStd450(v) => v as spirv::Word,
111            ExtInstOp::NonsemanticClspvreflection(v) => v as spirv::Word,
112            ExtInstOp::NonsemanticDebugbreak(v) => v as spirv::Word,
113            ExtInstOp::NonsemanticDebugprintf(v) => v as spirv::Word,
114            ExtInstOp::NonsemanticShaderDebuginfo100(v) => v as spirv::Word,
115            ExtInstOp::NonsemanticVkspreflection(v) => v as spirv::Word,
116            ExtInstOp::OpenclDebuginfo100(v) => v as spirv::Word,
117            ExtInstOp::OpenclStd100(v) => v as spirv::Word,
118            ExtInstOp::SpvAmdGcnShader(v) => v as spirv::Word,
119            ExtInstOp::SpvAmdShaderBallot(v) => v as spirv::Word,
120            ExtInstOp::SpvAmdShaderExplicitVertexParameter(v) => v as spirv::Word,
121            ExtInstOp::SpvAmdShaderTrinaryMinmax(v) => v as spirv::Word,
122            ExtInstOp::Tosa0010001(v) => v as spirv::Word,
123        }
124    }
125}
126static INSTRUCTIONS: &[Instruction<'static>] = &[
127    inst!(Nop, [], [], []),
128    inst!(Undef, [], [], [(IdResultType, One), (IdResult, One)]),
129    inst!(SourceContinued, [], [], [(LiteralString, One)]),
130    inst!(
131        Source,
132        [],
133        [],
134        [
135            (SourceLanguage, One),
136            (LiteralInteger, One),
137            (IdRef, ZeroOrOne),
138            (LiteralString, ZeroOrOne)
139        ]
140    ),
141    inst!(SourceExtension, [], [], [(LiteralString, One)]),
142    inst!(Name, [], [], [(IdRef, One), (LiteralString, One)]),
143    inst!(
144        MemberName,
145        [],
146        [],
147        [(IdRef, One), (LiteralInteger, One), (LiteralString, One)]
148    ),
149    inst!(String, [], [], [(IdResult, One), (LiteralString, One)]),
150    inst!(
151        Line,
152        [],
153        [],
154        [(IdRef, One), (LiteralInteger, One), (LiteralInteger, One)]
155    ),
156    inst!(Extension, [], [], [(LiteralString, One)]),
157    inst!(
158        ExtInstImport,
159        [],
160        [],
161        [(IdResult, One), (LiteralString, One)]
162    ),
163    inst!(
164        ExtInst,
165        [],
166        [],
167        [
168            (IdResultType, One),
169            (IdResult, One),
170            (IdRef, One),
171            (LiteralExtInstInteger, One),
172            (IdRef, ZeroOrMore)
173        ]
174    ),
175    inst!(
176        MemoryModel,
177        [],
178        [],
179        [(AddressingModel, One), (MemoryModel, One)]
180    ),
181    inst!(
182        EntryPoint,
183        [],
184        [],
185        [
186            (ExecutionModel, One),
187            (IdRef, One),
188            (LiteralString, One),
189            (IdRef, ZeroOrMore)
190        ]
191    ),
192    inst!(ExecutionMode, [], [], [(IdRef, One), (ExecutionMode, One)]),
193    inst!(Capability, [], [], [(Capability, One)]),
194    inst!(TypeVoid, [], [], [(IdResult, One)]),
195    inst!(TypeBool, [], [], [(IdResult, One)]),
196    inst!(
197        TypeInt,
198        [],
199        [],
200        [
201            (IdResult, One),
202            (LiteralInteger, One),
203            (LiteralInteger, One)
204        ]
205    ),
206    inst!(
207        TypeFloat,
208        [],
209        [],
210        [
211            (IdResult, One),
212            (LiteralInteger, One),
213            (FPEncoding, ZeroOrOne)
214        ]
215    ),
216    inst!(
217        TypeVector,
218        [],
219        [],
220        [(IdResult, One), (IdRef, One), (LiteralInteger, One)]
221    ),
222    inst!(
223        TypeMatrix,
224        [Matrix],
225        [],
226        [(IdResult, One), (IdRef, One), (LiteralInteger, One)]
227    ),
228    inst!(
229        TypeImage,
230        [],
231        [],
232        [
233            (IdResult, One),
234            (IdRef, One),
235            (Dim, One),
236            (LiteralInteger, One),
237            (LiteralInteger, One),
238            (LiteralInteger, One),
239            (LiteralInteger, One),
240            (ImageFormat, One),
241            (AccessQualifier, ZeroOrOne)
242        ]
243    ),
244    inst!(TypeSampler, [], [], [(IdResult, One)]),
245    inst!(TypeSampledImage, [], [], [(IdResult, One), (IdRef, One)]),
246    inst!(
247        TypeArray,
248        [],
249        [],
250        [(IdResult, One), (IdRef, One), (IdRef, One)]
251    ),
252    inst!(
253        TypeRuntimeArray,
254        [Shader],
255        [],
256        [(IdResult, One), (IdRef, One)]
257    ),
258    inst!(TypeStruct, [], [], [(IdResult, One), (IdRef, ZeroOrMore)]),
259    inst!(
260        TypeOpaque,
261        [Kernel],
262        [],
263        [(IdResult, One), (LiteralString, One)]
264    ),
265    inst!(
266        TypePointer,
267        [],
268        [],
269        [(IdResult, One), (StorageClass, One), (IdRef, One)]
270    ),
271    inst!(
272        TypeFunction,
273        [],
274        [],
275        [(IdResult, One), (IdRef, One), (IdRef, ZeroOrMore)]
276    ),
277    inst!(TypeEvent, [Kernel], [], [(IdResult, One)]),
278    inst!(TypeDeviceEvent, [DeviceEnqueue], [], [(IdResult, One)]),
279    inst!(TypeReserveId, [Pipes], [], [(IdResult, One)]),
280    inst!(TypeQueue, [DeviceEnqueue], [], [(IdResult, One)]),
281    inst!(
282        TypePipe,
283        [Pipes],
284        [],
285        [(IdResult, One), (AccessQualifier, One)]
286    ),
287    inst!(
288        TypeForwardPointer,
289        [Addresses, PhysicalStorageBufferAddresses],
290        [],
291        [(IdRef, One), (StorageClass, One)]
292    ),
293    inst!(ConstantTrue, [], [], [(IdResultType, One), (IdResult, One)]),
294    inst!(
295        ConstantFalse,
296        [],
297        [],
298        [(IdResultType, One), (IdResult, One)]
299    ),
300    inst!(
301        Constant,
302        [],
303        [],
304        [
305            (IdResultType, One),
306            (IdResult, One),
307            (LiteralContextDependentNumber, One)
308        ]
309    ),
310    inst!(
311        ConstantComposite,
312        [],
313        [],
314        [(IdResultType, One), (IdResult, One), (IdRef, ZeroOrMore)]
315    ),
316    inst!(
317        ConstantSampler,
318        [LiteralSampler],
319        [],
320        [
321            (IdResultType, One),
322            (IdResult, One),
323            (SamplerAddressingMode, One),
324            (LiteralInteger, One),
325            (SamplerFilterMode, One)
326        ]
327    ),
328    inst!(ConstantNull, [], [], [(IdResultType, One), (IdResult, One)]),
329    inst!(
330        SpecConstantTrue,
331        [],
332        [],
333        [(IdResultType, One), (IdResult, One)]
334    ),
335    inst!(
336        SpecConstantFalse,
337        [],
338        [],
339        [(IdResultType, One), (IdResult, One)]
340    ),
341    inst!(
342        SpecConstant,
343        [],
344        [],
345        [
346            (IdResultType, One),
347            (IdResult, One),
348            (LiteralContextDependentNumber, One)
349        ]
350    ),
351    inst!(
352        SpecConstantComposite,
353        [],
354        [],
355        [(IdResultType, One), (IdResult, One), (IdRef, ZeroOrMore)]
356    ),
357    inst!(
358        SpecConstantOp,
359        [],
360        [],
361        [
362            (IdResultType, One),
363            (IdResult, One),
364            (LiteralSpecConstantOpInteger, One)
365        ]
366    ),
367    inst!(
368        Function,
369        [],
370        [],
371        [
372            (IdResultType, One),
373            (IdResult, One),
374            (FunctionControl, One),
375            (IdRef, One)
376        ]
377    ),
378    inst!(
379        FunctionParameter,
380        [],
381        [],
382        [(IdResultType, One), (IdResult, One)]
383    ),
384    inst!(FunctionEnd, [], [], []),
385    inst!(
386        FunctionCall,
387        [],
388        [],
389        [
390            (IdResultType, One),
391            (IdResult, One),
392            (IdRef, One),
393            (IdRef, ZeroOrMore)
394        ]
395    ),
396    inst!(
397        Variable,
398        [],
399        [],
400        [
401            (IdResultType, One),
402            (IdResult, One),
403            (StorageClass, One),
404            (IdRef, ZeroOrOne)
405        ]
406    ),
407    inst!(
408        ImageTexelPointer,
409        [],
410        [],
411        [
412            (IdResultType, One),
413            (IdResult, One),
414            (IdRef, One),
415            (IdRef, One),
416            (IdRef, One)
417        ]
418    ),
419    inst!(
420        Load,
421        [],
422        [],
423        [
424            (IdResultType, One),
425            (IdResult, One),
426            (IdRef, One),
427            (MemoryAccess, ZeroOrOne)
428        ]
429    ),
430    inst!(
431        Store,
432        [],
433        [],
434        [(IdRef, One), (IdRef, One), (MemoryAccess, ZeroOrOne)]
435    ),
436    inst!(
437        CopyMemory,
438        [],
439        [],
440        [
441            (IdRef, One),
442            (IdRef, One),
443            (MemoryAccess, ZeroOrOne),
444            (MemoryAccess, ZeroOrOne)
445        ]
446    ),
447    inst!(
448        CopyMemorySized,
449        [Addresses, UntypedPointersKHR],
450        [],
451        [
452            (IdRef, One),
453            (IdRef, One),
454            (IdRef, One),
455            (MemoryAccess, ZeroOrOne),
456            (MemoryAccess, ZeroOrOne)
457        ]
458    ),
459    inst!(
460        AccessChain,
461        [],
462        [],
463        [
464            (IdResultType, One),
465            (IdResult, One),
466            (IdRef, One),
467            (IdRef, ZeroOrMore)
468        ]
469    ),
470    inst!(
471        InBoundsAccessChain,
472        [],
473        [],
474        [
475            (IdResultType, One),
476            (IdResult, One),
477            (IdRef, One),
478            (IdRef, ZeroOrMore)
479        ]
480    ),
481    inst!(
482        PtrAccessChain,
483        [
484            Addresses,
485            VariablePointers,
486            VariablePointersStorageBuffer,
487            PhysicalStorageBufferAddresses
488        ],
489        [],
490        [
491            (IdResultType, One),
492            (IdResult, One),
493            (IdRef, One),
494            (IdRef, One),
495            (IdRef, ZeroOrMore)
496        ]
497    ),
498    inst!(
499        ArrayLength,
500        [Shader],
501        [],
502        [
503            (IdResultType, One),
504            (IdResult, One),
505            (IdRef, One),
506            (LiteralInteger, One)
507        ]
508    ),
509    inst!(
510        GenericPtrMemSemantics,
511        [Kernel],
512        [],
513        [(IdResultType, One), (IdResult, One), (IdRef, One)]
514    ),
515    inst!(
516        InBoundsPtrAccessChain,
517        [Addresses],
518        [],
519        [
520            (IdResultType, One),
521            (IdResult, One),
522            (IdRef, One),
523            (IdRef, One),
524            (IdRef, ZeroOrMore)
525        ]
526    ),
527    inst!(Decorate, [], [], [(IdRef, One), (Decoration, One)]),
528    inst!(
529        MemberDecorate,
530        [],
531        [],
532        [(IdRef, One), (LiteralInteger, One), (Decoration, One)]
533    ),
534    inst!(DecorationGroup, [], [], [(IdResult, One)]),
535    inst!(GroupDecorate, [], [], [(IdRef, One), (IdRef, ZeroOrMore)]),
536    inst!(
537        GroupMemberDecorate,
538        [],
539        [],
540        [(IdRef, One), (PairIdRefLiteralInteger, ZeroOrMore)]
541    ),
542    inst!(
543        VectorExtractDynamic,
544        [],
545        [],
546        [
547            (IdResultType, One),
548            (IdResult, One),
549            (IdRef, One),
550            (IdRef, One)
551        ]
552    ),
553    inst!(
554        VectorInsertDynamic,
555        [],
556        [],
557        [
558            (IdResultType, One),
559            (IdResult, One),
560            (IdRef, One),
561            (IdRef, One),
562            (IdRef, One)
563        ]
564    ),
565    inst!(
566        VectorShuffle,
567        [],
568        [],
569        [
570            (IdResultType, One),
571            (IdResult, One),
572            (IdRef, One),
573            (IdRef, One),
574            (LiteralInteger, ZeroOrMore)
575        ]
576    ),
577    inst!(
578        CompositeConstruct,
579        [],
580        [],
581        [(IdResultType, One), (IdResult, One), (IdRef, ZeroOrMore)]
582    ),
583    inst!(
584        CompositeExtract,
585        [],
586        [],
587        [
588            (IdResultType, One),
589            (IdResult, One),
590            (IdRef, One),
591            (LiteralInteger, ZeroOrMore)
592        ]
593    ),
594    inst!(
595        CompositeInsert,
596        [],
597        [],
598        [
599            (IdResultType, One),
600            (IdResult, One),
601            (IdRef, One),
602            (IdRef, One),
603            (LiteralInteger, ZeroOrMore)
604        ]
605    ),
606    inst!(
607        CopyObject,
608        [],
609        [],
610        [(IdResultType, One), (IdResult, One), (IdRef, One)]
611    ),
612    inst!(
613        Transpose,
614        [Matrix],
615        [],
616        [(IdResultType, One), (IdResult, One), (IdRef, One)]
617    ),
618    inst!(
619        SampledImage,
620        [],
621        [],
622        [
623            (IdResultType, One),
624            (IdResult, One),
625            (IdRef, One),
626            (IdRef, One)
627        ]
628    ),
629    inst!(
630        ImageSampleImplicitLod,
631        [Shader],
632        [],
633        [
634            (IdResultType, One),
635            (IdResult, One),
636            (IdRef, One),
637            (IdRef, One),
638            (ImageOperands, ZeroOrOne)
639        ]
640    ),
641    inst!(
642        ImageSampleExplicitLod,
643        [],
644        [],
645        [
646            (IdResultType, One),
647            (IdResult, One),
648            (IdRef, One),
649            (IdRef, One),
650            (ImageOperands, One)
651        ]
652    ),
653    inst!(
654        ImageSampleDrefImplicitLod,
655        [Shader],
656        [],
657        [
658            (IdResultType, One),
659            (IdResult, One),
660            (IdRef, One),
661            (IdRef, One),
662            (IdRef, One),
663            (ImageOperands, ZeroOrOne)
664        ]
665    ),
666    inst!(
667        ImageSampleDrefExplicitLod,
668        [Shader],
669        [],
670        [
671            (IdResultType, One),
672            (IdResult, One),
673            (IdRef, One),
674            (IdRef, One),
675            (IdRef, One),
676            (ImageOperands, One)
677        ]
678    ),
679    inst!(
680        ImageSampleProjImplicitLod,
681        [Shader],
682        [],
683        [
684            (IdResultType, One),
685            (IdResult, One),
686            (IdRef, One),
687            (IdRef, One),
688            (ImageOperands, ZeroOrOne)
689        ]
690    ),
691    inst!(
692        ImageSampleProjExplicitLod,
693        [Shader],
694        [],
695        [
696            (IdResultType, One),
697            (IdResult, One),
698            (IdRef, One),
699            (IdRef, One),
700            (ImageOperands, One)
701        ]
702    ),
703    inst!(
704        ImageSampleProjDrefImplicitLod,
705        [Shader],
706        [],
707        [
708            (IdResultType, One),
709            (IdResult, One),
710            (IdRef, One),
711            (IdRef, One),
712            (IdRef, One),
713            (ImageOperands, ZeroOrOne)
714        ]
715    ),
716    inst!(
717        ImageSampleProjDrefExplicitLod,
718        [Shader],
719        [],
720        [
721            (IdResultType, One),
722            (IdResult, One),
723            (IdRef, One),
724            (IdRef, One),
725            (IdRef, One),
726            (ImageOperands, One)
727        ]
728    ),
729    inst!(
730        ImageFetch,
731        [],
732        [],
733        [
734            (IdResultType, One),
735            (IdResult, One),
736            (IdRef, One),
737            (IdRef, One),
738            (ImageOperands, ZeroOrOne)
739        ]
740    ),
741    inst!(
742        ImageGather,
743        [Shader],
744        [],
745        [
746            (IdResultType, One),
747            (IdResult, One),
748            (IdRef, One),
749            (IdRef, One),
750            (IdRef, One),
751            (ImageOperands, ZeroOrOne)
752        ]
753    ),
754    inst!(
755        ImageDrefGather,
756        [Shader],
757        [],
758        [
759            (IdResultType, One),
760            (IdResult, One),
761            (IdRef, One),
762            (IdRef, One),
763            (IdRef, One),
764            (ImageOperands, ZeroOrOne)
765        ]
766    ),
767    inst!(
768        ImageRead,
769        [],
770        [],
771        [
772            (IdResultType, One),
773            (IdResult, One),
774            (IdRef, One),
775            (IdRef, One),
776            (ImageOperands, ZeroOrOne)
777        ]
778    ),
779    inst!(
780        ImageWrite,
781        [],
782        [],
783        [
784            (IdRef, One),
785            (IdRef, One),
786            (IdRef, One),
787            (ImageOperands, ZeroOrOne)
788        ]
789    ),
790    inst!(
791        Image,
792        [],
793        [],
794        [(IdResultType, One), (IdResult, One), (IdRef, One)]
795    ),
796    inst!(
797        ImageQueryFormat,
798        [Kernel],
799        [],
800        [(IdResultType, One), (IdResult, One), (IdRef, One)]
801    ),
802    inst!(
803        ImageQueryOrder,
804        [Kernel],
805        [],
806        [(IdResultType, One), (IdResult, One), (IdRef, One)]
807    ),
808    inst!(
809        ImageQuerySizeLod,
810        [Kernel, ImageQuery],
811        [],
812        [
813            (IdResultType, One),
814            (IdResult, One),
815            (IdRef, One),
816            (IdRef, One)
817        ]
818    ),
819    inst!(
820        ImageQuerySize,
821        [Kernel, ImageQuery],
822        [],
823        [(IdResultType, One), (IdResult, One), (IdRef, One)]
824    ),
825    inst!(
826        ImageQueryLod,
827        [ImageQuery],
828        [],
829        [
830            (IdResultType, One),
831            (IdResult, One),
832            (IdRef, One),
833            (IdRef, One)
834        ]
835    ),
836    inst!(
837        ImageQueryLevels,
838        [Kernel, ImageQuery],
839        [],
840        [(IdResultType, One), (IdResult, One), (IdRef, One)]
841    ),
842    inst!(
843        ImageQuerySamples,
844        [Kernel, ImageQuery],
845        [],
846        [(IdResultType, One), (IdResult, One), (IdRef, One)]
847    ),
848    inst!(
849        ConvertFToU,
850        [],
851        [],
852        [(IdResultType, One), (IdResult, One), (IdRef, One)]
853    ),
854    inst!(
855        ConvertFToS,
856        [],
857        [],
858        [(IdResultType, One), (IdResult, One), (IdRef, One)]
859    ),
860    inst!(
861        ConvertSToF,
862        [],
863        [],
864        [(IdResultType, One), (IdResult, One), (IdRef, One)]
865    ),
866    inst!(
867        ConvertUToF,
868        [],
869        [],
870        [(IdResultType, One), (IdResult, One), (IdRef, One)]
871    ),
872    inst!(
873        UConvert,
874        [],
875        [],
876        [(IdResultType, One), (IdResult, One), (IdRef, One)]
877    ),
878    inst!(
879        SConvert,
880        [],
881        [],
882        [(IdResultType, One), (IdResult, One), (IdRef, One)]
883    ),
884    inst!(
885        FConvert,
886        [],
887        [],
888        [(IdResultType, One), (IdResult, One), (IdRef, One)]
889    ),
890    inst!(
891        QuantizeToF16,
892        [Shader],
893        [],
894        [(IdResultType, One), (IdResult, One), (IdRef, One)]
895    ),
896    inst!(
897        ConvertPtrToU,
898        [Addresses, PhysicalStorageBufferAddresses],
899        [],
900        [(IdResultType, One), (IdResult, One), (IdRef, One)]
901    ),
902    inst!(
903        SatConvertSToU,
904        [Kernel],
905        [],
906        [(IdResultType, One), (IdResult, One), (IdRef, One)]
907    ),
908    inst!(
909        SatConvertUToS,
910        [Kernel],
911        [],
912        [(IdResultType, One), (IdResult, One), (IdRef, One)]
913    ),
914    inst!(
915        ConvertUToPtr,
916        [Addresses, PhysicalStorageBufferAddresses],
917        [],
918        [(IdResultType, One), (IdResult, One), (IdRef, One)]
919    ),
920    inst!(
921        PtrCastToGeneric,
922        [Kernel],
923        [],
924        [(IdResultType, One), (IdResult, One), (IdRef, One)]
925    ),
926    inst!(
927        GenericCastToPtr,
928        [Kernel],
929        [],
930        [(IdResultType, One), (IdResult, One), (IdRef, One)]
931    ),
932    inst!(
933        GenericCastToPtrExplicit,
934        [Kernel],
935        [],
936        [
937            (IdResultType, One),
938            (IdResult, One),
939            (IdRef, One),
940            (StorageClass, One)
941        ]
942    ),
943    inst!(
944        Bitcast,
945        [],
946        [],
947        [(IdResultType, One), (IdResult, One), (IdRef, One)]
948    ),
949    inst!(
950        SNegate,
951        [],
952        [],
953        [(IdResultType, One), (IdResult, One), (IdRef, One)]
954    ),
955    inst!(
956        FNegate,
957        [],
958        [],
959        [(IdResultType, One), (IdResult, One), (IdRef, One)]
960    ),
961    inst!(
962        IAdd,
963        [],
964        [],
965        [
966            (IdResultType, One),
967            (IdResult, One),
968            (IdRef, One),
969            (IdRef, One)
970        ]
971    ),
972    inst!(
973        FAdd,
974        [],
975        [],
976        [
977            (IdResultType, One),
978            (IdResult, One),
979            (IdRef, One),
980            (IdRef, One)
981        ]
982    ),
983    inst!(
984        ISub,
985        [],
986        [],
987        [
988            (IdResultType, One),
989            (IdResult, One),
990            (IdRef, One),
991            (IdRef, One)
992        ]
993    ),
994    inst!(
995        FSub,
996        [],
997        [],
998        [
999            (IdResultType, One),
1000            (IdResult, One),
1001            (IdRef, One),
1002            (IdRef, One)
1003        ]
1004    ),
1005    inst!(
1006        IMul,
1007        [],
1008        [],
1009        [
1010            (IdResultType, One),
1011            (IdResult, One),
1012            (IdRef, One),
1013            (IdRef, One)
1014        ]
1015    ),
1016    inst!(
1017        FMul,
1018        [],
1019        [],
1020        [
1021            (IdResultType, One),
1022            (IdResult, One),
1023            (IdRef, One),
1024            (IdRef, One)
1025        ]
1026    ),
1027    inst!(
1028        UDiv,
1029        [],
1030        [],
1031        [
1032            (IdResultType, One),
1033            (IdResult, One),
1034            (IdRef, One),
1035            (IdRef, One)
1036        ]
1037    ),
1038    inst!(
1039        SDiv,
1040        [],
1041        [],
1042        [
1043            (IdResultType, One),
1044            (IdResult, One),
1045            (IdRef, One),
1046            (IdRef, One)
1047        ]
1048    ),
1049    inst!(
1050        FDiv,
1051        [],
1052        [],
1053        [
1054            (IdResultType, One),
1055            (IdResult, One),
1056            (IdRef, One),
1057            (IdRef, One)
1058        ]
1059    ),
1060    inst!(
1061        UMod,
1062        [],
1063        [],
1064        [
1065            (IdResultType, One),
1066            (IdResult, One),
1067            (IdRef, One),
1068            (IdRef, One)
1069        ]
1070    ),
1071    inst!(
1072        SRem,
1073        [],
1074        [],
1075        [
1076            (IdResultType, One),
1077            (IdResult, One),
1078            (IdRef, One),
1079            (IdRef, One)
1080        ]
1081    ),
1082    inst!(
1083        SMod,
1084        [],
1085        [],
1086        [
1087            (IdResultType, One),
1088            (IdResult, One),
1089            (IdRef, One),
1090            (IdRef, One)
1091        ]
1092    ),
1093    inst!(
1094        FRem,
1095        [],
1096        [],
1097        [
1098            (IdResultType, One),
1099            (IdResult, One),
1100            (IdRef, One),
1101            (IdRef, One)
1102        ]
1103    ),
1104    inst!(
1105        FMod,
1106        [],
1107        [],
1108        [
1109            (IdResultType, One),
1110            (IdResult, One),
1111            (IdRef, One),
1112            (IdRef, One)
1113        ]
1114    ),
1115    inst!(
1116        VectorTimesScalar,
1117        [],
1118        [],
1119        [
1120            (IdResultType, One),
1121            (IdResult, One),
1122            (IdRef, One),
1123            (IdRef, One)
1124        ]
1125    ),
1126    inst!(
1127        MatrixTimesScalar,
1128        [Matrix],
1129        [],
1130        [
1131            (IdResultType, One),
1132            (IdResult, One),
1133            (IdRef, One),
1134            (IdRef, One)
1135        ]
1136    ),
1137    inst!(
1138        VectorTimesMatrix,
1139        [Matrix],
1140        [],
1141        [
1142            (IdResultType, One),
1143            (IdResult, One),
1144            (IdRef, One),
1145            (IdRef, One)
1146        ]
1147    ),
1148    inst!(
1149        MatrixTimesVector,
1150        [Matrix],
1151        [],
1152        [
1153            (IdResultType, One),
1154            (IdResult, One),
1155            (IdRef, One),
1156            (IdRef, One)
1157        ]
1158    ),
1159    inst!(
1160        MatrixTimesMatrix,
1161        [Matrix],
1162        [],
1163        [
1164            (IdResultType, One),
1165            (IdResult, One),
1166            (IdRef, One),
1167            (IdRef, One)
1168        ]
1169    ),
1170    inst!(
1171        OuterProduct,
1172        [Matrix],
1173        [],
1174        [
1175            (IdResultType, One),
1176            (IdResult, One),
1177            (IdRef, One),
1178            (IdRef, One)
1179        ]
1180    ),
1181    inst!(
1182        Dot,
1183        [],
1184        [],
1185        [
1186            (IdResultType, One),
1187            (IdResult, One),
1188            (IdRef, One),
1189            (IdRef, One)
1190        ]
1191    ),
1192    inst!(
1193        IAddCarry,
1194        [],
1195        [],
1196        [
1197            (IdResultType, One),
1198            (IdResult, One),
1199            (IdRef, One),
1200            (IdRef, One)
1201        ]
1202    ),
1203    inst!(
1204        ISubBorrow,
1205        [],
1206        [],
1207        [
1208            (IdResultType, One),
1209            (IdResult, One),
1210            (IdRef, One),
1211            (IdRef, One)
1212        ]
1213    ),
1214    inst!(
1215        UMulExtended,
1216        [],
1217        [],
1218        [
1219            (IdResultType, One),
1220            (IdResult, One),
1221            (IdRef, One),
1222            (IdRef, One)
1223        ]
1224    ),
1225    inst!(
1226        SMulExtended,
1227        [],
1228        [],
1229        [
1230            (IdResultType, One),
1231            (IdResult, One),
1232            (IdRef, One),
1233            (IdRef, One)
1234        ]
1235    ),
1236    inst!(
1237        Any,
1238        [],
1239        [],
1240        [(IdResultType, One), (IdResult, One), (IdRef, One)]
1241    ),
1242    inst!(
1243        All,
1244        [],
1245        [],
1246        [(IdResultType, One), (IdResult, One), (IdRef, One)]
1247    ),
1248    inst!(
1249        IsNan,
1250        [],
1251        [],
1252        [(IdResultType, One), (IdResult, One), (IdRef, One)]
1253    ),
1254    inst!(
1255        IsInf,
1256        [],
1257        [],
1258        [(IdResultType, One), (IdResult, One), (IdRef, One)]
1259    ),
1260    inst!(
1261        IsFinite,
1262        [Kernel],
1263        [],
1264        [(IdResultType, One), (IdResult, One), (IdRef, One)]
1265    ),
1266    inst!(
1267        IsNormal,
1268        [Kernel],
1269        [],
1270        [(IdResultType, One), (IdResult, One), (IdRef, One)]
1271    ),
1272    inst!(
1273        SignBitSet,
1274        [Kernel],
1275        [],
1276        [(IdResultType, One), (IdResult, One), (IdRef, One)]
1277    ),
1278    inst!(
1279        LessOrGreater,
1280        [Kernel],
1281        [],
1282        [
1283            (IdResultType, One),
1284            (IdResult, One),
1285            (IdRef, One),
1286            (IdRef, One)
1287        ]
1288    ),
1289    inst!(
1290        Ordered,
1291        [Kernel],
1292        [],
1293        [
1294            (IdResultType, One),
1295            (IdResult, One),
1296            (IdRef, One),
1297            (IdRef, One)
1298        ]
1299    ),
1300    inst!(
1301        Unordered,
1302        [Kernel],
1303        [],
1304        [
1305            (IdResultType, One),
1306            (IdResult, One),
1307            (IdRef, One),
1308            (IdRef, One)
1309        ]
1310    ),
1311    inst!(
1312        LogicalEqual,
1313        [],
1314        [],
1315        [
1316            (IdResultType, One),
1317            (IdResult, One),
1318            (IdRef, One),
1319            (IdRef, One)
1320        ]
1321    ),
1322    inst!(
1323        LogicalNotEqual,
1324        [],
1325        [],
1326        [
1327            (IdResultType, One),
1328            (IdResult, One),
1329            (IdRef, One),
1330            (IdRef, One)
1331        ]
1332    ),
1333    inst!(
1334        LogicalOr,
1335        [],
1336        [],
1337        [
1338            (IdResultType, One),
1339            (IdResult, One),
1340            (IdRef, One),
1341            (IdRef, One)
1342        ]
1343    ),
1344    inst!(
1345        LogicalAnd,
1346        [],
1347        [],
1348        [
1349            (IdResultType, One),
1350            (IdResult, One),
1351            (IdRef, One),
1352            (IdRef, One)
1353        ]
1354    ),
1355    inst!(
1356        LogicalNot,
1357        [],
1358        [],
1359        [(IdResultType, One), (IdResult, One), (IdRef, One)]
1360    ),
1361    inst!(
1362        Select,
1363        [],
1364        [],
1365        [
1366            (IdResultType, One),
1367            (IdResult, One),
1368            (IdRef, One),
1369            (IdRef, One),
1370            (IdRef, One)
1371        ]
1372    ),
1373    inst!(
1374        IEqual,
1375        [],
1376        [],
1377        [
1378            (IdResultType, One),
1379            (IdResult, One),
1380            (IdRef, One),
1381            (IdRef, One)
1382        ]
1383    ),
1384    inst!(
1385        INotEqual,
1386        [],
1387        [],
1388        [
1389            (IdResultType, One),
1390            (IdResult, One),
1391            (IdRef, One),
1392            (IdRef, One)
1393        ]
1394    ),
1395    inst!(
1396        UGreaterThan,
1397        [],
1398        [],
1399        [
1400            (IdResultType, One),
1401            (IdResult, One),
1402            (IdRef, One),
1403            (IdRef, One)
1404        ]
1405    ),
1406    inst!(
1407        SGreaterThan,
1408        [],
1409        [],
1410        [
1411            (IdResultType, One),
1412            (IdResult, One),
1413            (IdRef, One),
1414            (IdRef, One)
1415        ]
1416    ),
1417    inst!(
1418        UGreaterThanEqual,
1419        [],
1420        [],
1421        [
1422            (IdResultType, One),
1423            (IdResult, One),
1424            (IdRef, One),
1425            (IdRef, One)
1426        ]
1427    ),
1428    inst!(
1429        SGreaterThanEqual,
1430        [],
1431        [],
1432        [
1433            (IdResultType, One),
1434            (IdResult, One),
1435            (IdRef, One),
1436            (IdRef, One)
1437        ]
1438    ),
1439    inst!(
1440        ULessThan,
1441        [],
1442        [],
1443        [
1444            (IdResultType, One),
1445            (IdResult, One),
1446            (IdRef, One),
1447            (IdRef, One)
1448        ]
1449    ),
1450    inst!(
1451        SLessThan,
1452        [],
1453        [],
1454        [
1455            (IdResultType, One),
1456            (IdResult, One),
1457            (IdRef, One),
1458            (IdRef, One)
1459        ]
1460    ),
1461    inst!(
1462        ULessThanEqual,
1463        [],
1464        [],
1465        [
1466            (IdResultType, One),
1467            (IdResult, One),
1468            (IdRef, One),
1469            (IdRef, One)
1470        ]
1471    ),
1472    inst!(
1473        SLessThanEqual,
1474        [],
1475        [],
1476        [
1477            (IdResultType, One),
1478            (IdResult, One),
1479            (IdRef, One),
1480            (IdRef, One)
1481        ]
1482    ),
1483    inst!(
1484        FOrdEqual,
1485        [],
1486        [],
1487        [
1488            (IdResultType, One),
1489            (IdResult, One),
1490            (IdRef, One),
1491            (IdRef, One)
1492        ]
1493    ),
1494    inst!(
1495        FUnordEqual,
1496        [],
1497        [],
1498        [
1499            (IdResultType, One),
1500            (IdResult, One),
1501            (IdRef, One),
1502            (IdRef, One)
1503        ]
1504    ),
1505    inst!(
1506        FOrdNotEqual,
1507        [],
1508        [],
1509        [
1510            (IdResultType, One),
1511            (IdResult, One),
1512            (IdRef, One),
1513            (IdRef, One)
1514        ]
1515    ),
1516    inst!(
1517        FUnordNotEqual,
1518        [],
1519        [],
1520        [
1521            (IdResultType, One),
1522            (IdResult, One),
1523            (IdRef, One),
1524            (IdRef, One)
1525        ]
1526    ),
1527    inst!(
1528        FOrdLessThan,
1529        [],
1530        [],
1531        [
1532            (IdResultType, One),
1533            (IdResult, One),
1534            (IdRef, One),
1535            (IdRef, One)
1536        ]
1537    ),
1538    inst!(
1539        FUnordLessThan,
1540        [],
1541        [],
1542        [
1543            (IdResultType, One),
1544            (IdResult, One),
1545            (IdRef, One),
1546            (IdRef, One)
1547        ]
1548    ),
1549    inst!(
1550        FOrdGreaterThan,
1551        [],
1552        [],
1553        [
1554            (IdResultType, One),
1555            (IdResult, One),
1556            (IdRef, One),
1557            (IdRef, One)
1558        ]
1559    ),
1560    inst!(
1561        FUnordGreaterThan,
1562        [],
1563        [],
1564        [
1565            (IdResultType, One),
1566            (IdResult, One),
1567            (IdRef, One),
1568            (IdRef, One)
1569        ]
1570    ),
1571    inst!(
1572        FOrdLessThanEqual,
1573        [],
1574        [],
1575        [
1576            (IdResultType, One),
1577            (IdResult, One),
1578            (IdRef, One),
1579            (IdRef, One)
1580        ]
1581    ),
1582    inst!(
1583        FUnordLessThanEqual,
1584        [],
1585        [],
1586        [
1587            (IdResultType, One),
1588            (IdResult, One),
1589            (IdRef, One),
1590            (IdRef, One)
1591        ]
1592    ),
1593    inst!(
1594        FOrdGreaterThanEqual,
1595        [],
1596        [],
1597        [
1598            (IdResultType, One),
1599            (IdResult, One),
1600            (IdRef, One),
1601            (IdRef, One)
1602        ]
1603    ),
1604    inst!(
1605        FUnordGreaterThanEqual,
1606        [],
1607        [],
1608        [
1609            (IdResultType, One),
1610            (IdResult, One),
1611            (IdRef, One),
1612            (IdRef, One)
1613        ]
1614    ),
1615    inst!(
1616        ShiftRightLogical,
1617        [],
1618        [],
1619        [
1620            (IdResultType, One),
1621            (IdResult, One),
1622            (IdRef, One),
1623            (IdRef, One)
1624        ]
1625    ),
1626    inst!(
1627        ShiftRightArithmetic,
1628        [],
1629        [],
1630        [
1631            (IdResultType, One),
1632            (IdResult, One),
1633            (IdRef, One),
1634            (IdRef, One)
1635        ]
1636    ),
1637    inst!(
1638        ShiftLeftLogical,
1639        [],
1640        [],
1641        [
1642            (IdResultType, One),
1643            (IdResult, One),
1644            (IdRef, One),
1645            (IdRef, One)
1646        ]
1647    ),
1648    inst!(
1649        BitwiseOr,
1650        [],
1651        [],
1652        [
1653            (IdResultType, One),
1654            (IdResult, One),
1655            (IdRef, One),
1656            (IdRef, One)
1657        ]
1658    ),
1659    inst!(
1660        BitwiseXor,
1661        [],
1662        [],
1663        [
1664            (IdResultType, One),
1665            (IdResult, One),
1666            (IdRef, One),
1667            (IdRef, One)
1668        ]
1669    ),
1670    inst!(
1671        BitwiseAnd,
1672        [],
1673        [],
1674        [
1675            (IdResultType, One),
1676            (IdResult, One),
1677            (IdRef, One),
1678            (IdRef, One)
1679        ]
1680    ),
1681    inst!(
1682        Not,
1683        [],
1684        [],
1685        [(IdResultType, One), (IdResult, One), (IdRef, One)]
1686    ),
1687    inst!(
1688        BitFieldInsert,
1689        [Shader, BitInstructions],
1690        [],
1691        [
1692            (IdResultType, One),
1693            (IdResult, One),
1694            (IdRef, One),
1695            (IdRef, One),
1696            (IdRef, One),
1697            (IdRef, One)
1698        ]
1699    ),
1700    inst!(
1701        BitFieldSExtract,
1702        [Shader, BitInstructions],
1703        [],
1704        [
1705            (IdResultType, One),
1706            (IdResult, One),
1707            (IdRef, One),
1708            (IdRef, One),
1709            (IdRef, One)
1710        ]
1711    ),
1712    inst!(
1713        BitFieldUExtract,
1714        [Shader, BitInstructions],
1715        [],
1716        [
1717            (IdResultType, One),
1718            (IdResult, One),
1719            (IdRef, One),
1720            (IdRef, One),
1721            (IdRef, One)
1722        ]
1723    ),
1724    inst!(
1725        BitReverse,
1726        [Shader, BitInstructions],
1727        [],
1728        [(IdResultType, One), (IdResult, One), (IdRef, One)]
1729    ),
1730    inst!(
1731        BitCount,
1732        [],
1733        [],
1734        [(IdResultType, One), (IdResult, One), (IdRef, One)]
1735    ),
1736    inst!(
1737        DPdx,
1738        [Shader],
1739        [],
1740        [(IdResultType, One), (IdResult, One), (IdRef, One)]
1741    ),
1742    inst!(
1743        DPdy,
1744        [Shader],
1745        [],
1746        [(IdResultType, One), (IdResult, One), (IdRef, One)]
1747    ),
1748    inst!(
1749        Fwidth,
1750        [Shader],
1751        [],
1752        [(IdResultType, One), (IdResult, One), (IdRef, One)]
1753    ),
1754    inst!(
1755        DPdxFine,
1756        [DerivativeControl],
1757        [],
1758        [(IdResultType, One), (IdResult, One), (IdRef, One)]
1759    ),
1760    inst!(
1761        DPdyFine,
1762        [DerivativeControl],
1763        [],
1764        [(IdResultType, One), (IdResult, One), (IdRef, One)]
1765    ),
1766    inst!(
1767        FwidthFine,
1768        [DerivativeControl],
1769        [],
1770        [(IdResultType, One), (IdResult, One), (IdRef, One)]
1771    ),
1772    inst!(
1773        DPdxCoarse,
1774        [DerivativeControl],
1775        [],
1776        [(IdResultType, One), (IdResult, One), (IdRef, One)]
1777    ),
1778    inst!(
1779        DPdyCoarse,
1780        [DerivativeControl],
1781        [],
1782        [(IdResultType, One), (IdResult, One), (IdRef, One)]
1783    ),
1784    inst!(
1785        FwidthCoarse,
1786        [DerivativeControl],
1787        [],
1788        [(IdResultType, One), (IdResult, One), (IdRef, One)]
1789    ),
1790    inst!(EmitVertex, [Geometry], [], []),
1791    inst!(EndPrimitive, [Geometry], [], []),
1792    inst!(EmitStreamVertex, [GeometryStreams], [], [(IdRef, One)]),
1793    inst!(EndStreamPrimitive, [GeometryStreams], [], [(IdRef, One)]),
1794    inst!(
1795        ControlBarrier,
1796        [],
1797        [],
1798        [(IdScope, One), (IdScope, One), (IdMemorySemantics, One)]
1799    ),
1800    inst!(
1801        MemoryBarrier,
1802        [],
1803        [],
1804        [(IdScope, One), (IdMemorySemantics, One)]
1805    ),
1806    inst!(
1807        AtomicLoad,
1808        [],
1809        [],
1810        [
1811            (IdResultType, One),
1812            (IdResult, One),
1813            (IdRef, One),
1814            (IdScope, One),
1815            (IdMemorySemantics, One)
1816        ]
1817    ),
1818    inst!(
1819        AtomicStore,
1820        [],
1821        [],
1822        [
1823            (IdRef, One),
1824            (IdScope, One),
1825            (IdMemorySemantics, One),
1826            (IdRef, One)
1827        ]
1828    ),
1829    inst!(
1830        AtomicExchange,
1831        [],
1832        [],
1833        [
1834            (IdResultType, One),
1835            (IdResult, One),
1836            (IdRef, One),
1837            (IdScope, One),
1838            (IdMemorySemantics, One),
1839            (IdRef, One)
1840        ]
1841    ),
1842    inst!(
1843        AtomicCompareExchange,
1844        [],
1845        [],
1846        [
1847            (IdResultType, One),
1848            (IdResult, One),
1849            (IdRef, One),
1850            (IdScope, One),
1851            (IdMemorySemantics, One),
1852            (IdMemorySemantics, One),
1853            (IdRef, One),
1854            (IdRef, One)
1855        ]
1856    ),
1857    inst!(
1858        AtomicCompareExchangeWeak,
1859        [Kernel],
1860        [],
1861        [
1862            (IdResultType, One),
1863            (IdResult, One),
1864            (IdRef, One),
1865            (IdScope, One),
1866            (IdMemorySemantics, One),
1867            (IdMemorySemantics, One),
1868            (IdRef, One),
1869            (IdRef, One)
1870        ]
1871    ),
1872    inst!(
1873        AtomicIIncrement,
1874        [],
1875        [],
1876        [
1877            (IdResultType, One),
1878            (IdResult, One),
1879            (IdRef, One),
1880            (IdScope, One),
1881            (IdMemorySemantics, One)
1882        ]
1883    ),
1884    inst!(
1885        AtomicIDecrement,
1886        [],
1887        [],
1888        [
1889            (IdResultType, One),
1890            (IdResult, One),
1891            (IdRef, One),
1892            (IdScope, One),
1893            (IdMemorySemantics, One)
1894        ]
1895    ),
1896    inst!(
1897        AtomicIAdd,
1898        [],
1899        [],
1900        [
1901            (IdResultType, One),
1902            (IdResult, One),
1903            (IdRef, One),
1904            (IdScope, One),
1905            (IdMemorySemantics, One),
1906            (IdRef, One)
1907        ]
1908    ),
1909    inst!(
1910        AtomicISub,
1911        [],
1912        [],
1913        [
1914            (IdResultType, One),
1915            (IdResult, One),
1916            (IdRef, One),
1917            (IdScope, One),
1918            (IdMemorySemantics, One),
1919            (IdRef, One)
1920        ]
1921    ),
1922    inst!(
1923        AtomicSMin,
1924        [],
1925        [],
1926        [
1927            (IdResultType, One),
1928            (IdResult, One),
1929            (IdRef, One),
1930            (IdScope, One),
1931            (IdMemorySemantics, One),
1932            (IdRef, One)
1933        ]
1934    ),
1935    inst!(
1936        AtomicUMin,
1937        [],
1938        [],
1939        [
1940            (IdResultType, One),
1941            (IdResult, One),
1942            (IdRef, One),
1943            (IdScope, One),
1944            (IdMemorySemantics, One),
1945            (IdRef, One)
1946        ]
1947    ),
1948    inst!(
1949        AtomicSMax,
1950        [],
1951        [],
1952        [
1953            (IdResultType, One),
1954            (IdResult, One),
1955            (IdRef, One),
1956            (IdScope, One),
1957            (IdMemorySemantics, One),
1958            (IdRef, One)
1959        ]
1960    ),
1961    inst!(
1962        AtomicUMax,
1963        [],
1964        [],
1965        [
1966            (IdResultType, One),
1967            (IdResult, One),
1968            (IdRef, One),
1969            (IdScope, One),
1970            (IdMemorySemantics, One),
1971            (IdRef, One)
1972        ]
1973    ),
1974    inst!(
1975        AtomicAnd,
1976        [],
1977        [],
1978        [
1979            (IdResultType, One),
1980            (IdResult, One),
1981            (IdRef, One),
1982            (IdScope, One),
1983            (IdMemorySemantics, One),
1984            (IdRef, One)
1985        ]
1986    ),
1987    inst!(
1988        AtomicOr,
1989        [],
1990        [],
1991        [
1992            (IdResultType, One),
1993            (IdResult, One),
1994            (IdRef, One),
1995            (IdScope, One),
1996            (IdMemorySemantics, One),
1997            (IdRef, One)
1998        ]
1999    ),
2000    inst!(
2001        AtomicXor,
2002        [],
2003        [],
2004        [
2005            (IdResultType, One),
2006            (IdResult, One),
2007            (IdRef, One),
2008            (IdScope, One),
2009            (IdMemorySemantics, One),
2010            (IdRef, One)
2011        ]
2012    ),
2013    inst!(
2014        Phi,
2015        [],
2016        [],
2017        [
2018            (IdResultType, One),
2019            (IdResult, One),
2020            (PairIdRefIdRef, ZeroOrMore)
2021        ]
2022    ),
2023    inst!(
2024        LoopMerge,
2025        [],
2026        [],
2027        [(IdRef, One), (IdRef, One), (LoopControl, One)]
2028    ),
2029    inst!(
2030        SelectionMerge,
2031        [],
2032        [],
2033        [(IdRef, One), (SelectionControl, One)]
2034    ),
2035    inst!(Label, [], [], [(IdResult, One)]),
2036    inst!(Branch, [], [], [(IdRef, One)]),
2037    inst!(
2038        BranchConditional,
2039        [],
2040        [],
2041        [
2042            (IdRef, One),
2043            (IdRef, One),
2044            (IdRef, One),
2045            (LiteralInteger, ZeroOrMore)
2046        ]
2047    ),
2048    inst!(
2049        Switch,
2050        [],
2051        [],
2052        [
2053            (IdRef, One),
2054            (IdRef, One),
2055            (PairLiteralIntegerIdRef, ZeroOrMore)
2056        ]
2057    ),
2058    inst!(Kill, [Shader], [], []),
2059    inst!(Return, [], [], []),
2060    inst!(ReturnValue, [], [], [(IdRef, One)]),
2061    inst!(Unreachable, [], [], []),
2062    inst!(
2063        LifetimeStart,
2064        [Kernel],
2065        [],
2066        [(IdRef, One), (LiteralInteger, One)]
2067    ),
2068    inst!(
2069        LifetimeStop,
2070        [Kernel],
2071        [],
2072        [(IdRef, One), (LiteralInteger, One)]
2073    ),
2074    inst!(
2075        GroupAsyncCopy,
2076        [Kernel],
2077        [],
2078        [
2079            (IdResultType, One),
2080            (IdResult, One),
2081            (IdScope, One),
2082            (IdRef, One),
2083            (IdRef, One),
2084            (IdRef, One),
2085            (IdRef, One),
2086            (IdRef, One)
2087        ]
2088    ),
2089    inst!(
2090        GroupWaitEvents,
2091        [Kernel],
2092        [],
2093        [(IdScope, One), (IdRef, One), (IdRef, One)]
2094    ),
2095    inst!(
2096        GroupAll,
2097        [Groups],
2098        [],
2099        [
2100            (IdResultType, One),
2101            (IdResult, One),
2102            (IdScope, One),
2103            (IdRef, One)
2104        ]
2105    ),
2106    inst!(
2107        GroupAny,
2108        [Groups],
2109        [],
2110        [
2111            (IdResultType, One),
2112            (IdResult, One),
2113            (IdScope, One),
2114            (IdRef, One)
2115        ]
2116    ),
2117    inst!(
2118        GroupBroadcast,
2119        [Groups],
2120        [],
2121        [
2122            (IdResultType, One),
2123            (IdResult, One),
2124            (IdScope, One),
2125            (IdRef, One),
2126            (IdRef, One)
2127        ]
2128    ),
2129    inst!(
2130        GroupIAdd,
2131        [Groups],
2132        [],
2133        [
2134            (IdResultType, One),
2135            (IdResult, One),
2136            (IdScope, One),
2137            (GroupOperation, One),
2138            (IdRef, One)
2139        ]
2140    ),
2141    inst!(
2142        GroupFAdd,
2143        [Groups],
2144        [],
2145        [
2146            (IdResultType, One),
2147            (IdResult, One),
2148            (IdScope, One),
2149            (GroupOperation, One),
2150            (IdRef, One)
2151        ]
2152    ),
2153    inst!(
2154        GroupFMin,
2155        [Groups],
2156        [],
2157        [
2158            (IdResultType, One),
2159            (IdResult, One),
2160            (IdScope, One),
2161            (GroupOperation, One),
2162            (IdRef, One)
2163        ]
2164    ),
2165    inst!(
2166        GroupUMin,
2167        [Groups],
2168        [],
2169        [
2170            (IdResultType, One),
2171            (IdResult, One),
2172            (IdScope, One),
2173            (GroupOperation, One),
2174            (IdRef, One)
2175        ]
2176    ),
2177    inst!(
2178        GroupSMin,
2179        [Groups],
2180        [],
2181        [
2182            (IdResultType, One),
2183            (IdResult, One),
2184            (IdScope, One),
2185            (GroupOperation, One),
2186            (IdRef, One)
2187        ]
2188    ),
2189    inst!(
2190        GroupFMax,
2191        [Groups],
2192        [],
2193        [
2194            (IdResultType, One),
2195            (IdResult, One),
2196            (IdScope, One),
2197            (GroupOperation, One),
2198            (IdRef, One)
2199        ]
2200    ),
2201    inst!(
2202        GroupUMax,
2203        [Groups],
2204        [],
2205        [
2206            (IdResultType, One),
2207            (IdResult, One),
2208            (IdScope, One),
2209            (GroupOperation, One),
2210            (IdRef, One)
2211        ]
2212    ),
2213    inst!(
2214        GroupSMax,
2215        [Groups],
2216        [],
2217        [
2218            (IdResultType, One),
2219            (IdResult, One),
2220            (IdScope, One),
2221            (GroupOperation, One),
2222            (IdRef, One)
2223        ]
2224    ),
2225    inst!(
2226        ReadPipe,
2227        [Pipes],
2228        [],
2229        [
2230            (IdResultType, One),
2231            (IdResult, One),
2232            (IdRef, One),
2233            (IdRef, One),
2234            (IdRef, One),
2235            (IdRef, One)
2236        ]
2237    ),
2238    inst!(
2239        WritePipe,
2240        [Pipes],
2241        [],
2242        [
2243            (IdResultType, One),
2244            (IdResult, One),
2245            (IdRef, One),
2246            (IdRef, One),
2247            (IdRef, One),
2248            (IdRef, One)
2249        ]
2250    ),
2251    inst!(
2252        ReservedReadPipe,
2253        [Pipes],
2254        [],
2255        [
2256            (IdResultType, One),
2257            (IdResult, One),
2258            (IdRef, One),
2259            (IdRef, One),
2260            (IdRef, One),
2261            (IdRef, One),
2262            (IdRef, One),
2263            (IdRef, One)
2264        ]
2265    ),
2266    inst!(
2267        ReservedWritePipe,
2268        [Pipes],
2269        [],
2270        [
2271            (IdResultType, One),
2272            (IdResult, One),
2273            (IdRef, One),
2274            (IdRef, One),
2275            (IdRef, One),
2276            (IdRef, One),
2277            (IdRef, One),
2278            (IdRef, One)
2279        ]
2280    ),
2281    inst!(
2282        ReserveReadPipePackets,
2283        [Pipes],
2284        [],
2285        [
2286            (IdResultType, One),
2287            (IdResult, One),
2288            (IdRef, One),
2289            (IdRef, One),
2290            (IdRef, One),
2291            (IdRef, One)
2292        ]
2293    ),
2294    inst!(
2295        ReserveWritePipePackets,
2296        [Pipes],
2297        [],
2298        [
2299            (IdResultType, One),
2300            (IdResult, One),
2301            (IdRef, One),
2302            (IdRef, One),
2303            (IdRef, One),
2304            (IdRef, One)
2305        ]
2306    ),
2307    inst!(
2308        CommitReadPipe,
2309        [Pipes],
2310        [],
2311        [(IdRef, One), (IdRef, One), (IdRef, One), (IdRef, One)]
2312    ),
2313    inst!(
2314        CommitWritePipe,
2315        [Pipes],
2316        [],
2317        [(IdRef, One), (IdRef, One), (IdRef, One), (IdRef, One)]
2318    ),
2319    inst!(
2320        IsValidReserveId,
2321        [Pipes],
2322        [],
2323        [(IdResultType, One), (IdResult, One), (IdRef, One)]
2324    ),
2325    inst!(
2326        GetNumPipePackets,
2327        [Pipes],
2328        [],
2329        [
2330            (IdResultType, One),
2331            (IdResult, One),
2332            (IdRef, One),
2333            (IdRef, One),
2334            (IdRef, One)
2335        ]
2336    ),
2337    inst!(
2338        GetMaxPipePackets,
2339        [Pipes],
2340        [],
2341        [
2342            (IdResultType, One),
2343            (IdResult, One),
2344            (IdRef, One),
2345            (IdRef, One),
2346            (IdRef, One)
2347        ]
2348    ),
2349    inst!(
2350        GroupReserveReadPipePackets,
2351        [Pipes],
2352        [],
2353        [
2354            (IdResultType, One),
2355            (IdResult, One),
2356            (IdScope, One),
2357            (IdRef, One),
2358            (IdRef, One),
2359            (IdRef, One),
2360            (IdRef, One)
2361        ]
2362    ),
2363    inst!(
2364        GroupReserveWritePipePackets,
2365        [Pipes],
2366        [],
2367        [
2368            (IdResultType, One),
2369            (IdResult, One),
2370            (IdScope, One),
2371            (IdRef, One),
2372            (IdRef, One),
2373            (IdRef, One),
2374            (IdRef, One)
2375        ]
2376    ),
2377    inst!(
2378        GroupCommitReadPipe,
2379        [Pipes],
2380        [],
2381        [
2382            (IdScope, One),
2383            (IdRef, One),
2384            (IdRef, One),
2385            (IdRef, One),
2386            (IdRef, One)
2387        ]
2388    ),
2389    inst!(
2390        GroupCommitWritePipe,
2391        [Pipes],
2392        [],
2393        [
2394            (IdScope, One),
2395            (IdRef, One),
2396            (IdRef, One),
2397            (IdRef, One),
2398            (IdRef, One)
2399        ]
2400    ),
2401    inst!(
2402        EnqueueMarker,
2403        [DeviceEnqueue],
2404        [],
2405        [
2406            (IdResultType, One),
2407            (IdResult, One),
2408            (IdRef, One),
2409            (IdRef, One),
2410            (IdRef, One),
2411            (IdRef, One)
2412        ]
2413    ),
2414    inst!(
2415        EnqueueKernel,
2416        [DeviceEnqueue],
2417        [],
2418        [
2419            (IdResultType, One),
2420            (IdResult, One),
2421            (IdRef, One),
2422            (IdRef, One),
2423            (IdRef, One),
2424            (IdRef, One),
2425            (IdRef, One),
2426            (IdRef, One),
2427            (IdRef, One),
2428            (IdRef, One),
2429            (IdRef, One),
2430            (IdRef, One),
2431            (IdRef, ZeroOrMore)
2432        ]
2433    ),
2434    inst!(
2435        GetKernelNDrangeSubGroupCount,
2436        [DeviceEnqueue],
2437        [],
2438        [
2439            (IdResultType, One),
2440            (IdResult, One),
2441            (IdRef, One),
2442            (IdRef, One),
2443            (IdRef, One),
2444            (IdRef, One),
2445            (IdRef, One)
2446        ]
2447    ),
2448    inst!(
2449        GetKernelNDrangeMaxSubGroupSize,
2450        [DeviceEnqueue],
2451        [],
2452        [
2453            (IdResultType, One),
2454            (IdResult, One),
2455            (IdRef, One),
2456            (IdRef, One),
2457            (IdRef, One),
2458            (IdRef, One),
2459            (IdRef, One)
2460        ]
2461    ),
2462    inst!(
2463        GetKernelWorkGroupSize,
2464        [DeviceEnqueue],
2465        [],
2466        [
2467            (IdResultType, One),
2468            (IdResult, One),
2469            (IdRef, One),
2470            (IdRef, One),
2471            (IdRef, One),
2472            (IdRef, One)
2473        ]
2474    ),
2475    inst!(
2476        GetKernelPreferredWorkGroupSizeMultiple,
2477        [DeviceEnqueue],
2478        [],
2479        [
2480            (IdResultType, One),
2481            (IdResult, One),
2482            (IdRef, One),
2483            (IdRef, One),
2484            (IdRef, One),
2485            (IdRef, One)
2486        ]
2487    ),
2488    inst!(RetainEvent, [DeviceEnqueue], [], [(IdRef, One)]),
2489    inst!(ReleaseEvent, [DeviceEnqueue], [], [(IdRef, One)]),
2490    inst!(
2491        CreateUserEvent,
2492        [DeviceEnqueue],
2493        [],
2494        [(IdResultType, One), (IdResult, One)]
2495    ),
2496    inst!(
2497        IsValidEvent,
2498        [DeviceEnqueue],
2499        [],
2500        [(IdResultType, One), (IdResult, One), (IdRef, One)]
2501    ),
2502    inst!(
2503        SetUserEventStatus,
2504        [DeviceEnqueue],
2505        [],
2506        [(IdRef, One), (IdRef, One)]
2507    ),
2508    inst!(
2509        CaptureEventProfilingInfo,
2510        [DeviceEnqueue],
2511        [],
2512        [(IdRef, One), (IdRef, One), (IdRef, One)]
2513    ),
2514    inst!(
2515        GetDefaultQueue,
2516        [DeviceEnqueue],
2517        [],
2518        [(IdResultType, One), (IdResult, One)]
2519    ),
2520    inst!(
2521        BuildNDRange,
2522        [DeviceEnqueue],
2523        [],
2524        [
2525            (IdResultType, One),
2526            (IdResult, One),
2527            (IdRef, One),
2528            (IdRef, One),
2529            (IdRef, One)
2530        ]
2531    ),
2532    inst!(
2533        ImageSparseSampleImplicitLod,
2534        [SparseResidency],
2535        [],
2536        [
2537            (IdResultType, One),
2538            (IdResult, One),
2539            (IdRef, One),
2540            (IdRef, One),
2541            (ImageOperands, ZeroOrOne)
2542        ]
2543    ),
2544    inst!(
2545        ImageSparseSampleExplicitLod,
2546        [SparseResidency],
2547        [],
2548        [
2549            (IdResultType, One),
2550            (IdResult, One),
2551            (IdRef, One),
2552            (IdRef, One),
2553            (ImageOperands, One)
2554        ]
2555    ),
2556    inst!(
2557        ImageSparseSampleDrefImplicitLod,
2558        [SparseResidency],
2559        [],
2560        [
2561            (IdResultType, One),
2562            (IdResult, One),
2563            (IdRef, One),
2564            (IdRef, One),
2565            (IdRef, One),
2566            (ImageOperands, ZeroOrOne)
2567        ]
2568    ),
2569    inst!(
2570        ImageSparseSampleDrefExplicitLod,
2571        [SparseResidency],
2572        [],
2573        [
2574            (IdResultType, One),
2575            (IdResult, One),
2576            (IdRef, One),
2577            (IdRef, One),
2578            (IdRef, One),
2579            (ImageOperands, One)
2580        ]
2581    ),
2582    inst!(
2583        ImageSparseSampleProjImplicitLod,
2584        [SparseResidency],
2585        [],
2586        [
2587            (IdResultType, One),
2588            (IdResult, One),
2589            (IdRef, One),
2590            (IdRef, One),
2591            (ImageOperands, ZeroOrOne)
2592        ]
2593    ),
2594    inst!(
2595        ImageSparseSampleProjExplicitLod,
2596        [SparseResidency],
2597        [],
2598        [
2599            (IdResultType, One),
2600            (IdResult, One),
2601            (IdRef, One),
2602            (IdRef, One),
2603            (ImageOperands, One)
2604        ]
2605    ),
2606    inst!(
2607        ImageSparseSampleProjDrefImplicitLod,
2608        [SparseResidency],
2609        [],
2610        [
2611            (IdResultType, One),
2612            (IdResult, One),
2613            (IdRef, One),
2614            (IdRef, One),
2615            (IdRef, One),
2616            (ImageOperands, ZeroOrOne)
2617        ]
2618    ),
2619    inst!(
2620        ImageSparseSampleProjDrefExplicitLod,
2621        [SparseResidency],
2622        [],
2623        [
2624            (IdResultType, One),
2625            (IdResult, One),
2626            (IdRef, One),
2627            (IdRef, One),
2628            (IdRef, One),
2629            (ImageOperands, One)
2630        ]
2631    ),
2632    inst!(
2633        ImageSparseFetch,
2634        [SparseResidency],
2635        [],
2636        [
2637            (IdResultType, One),
2638            (IdResult, One),
2639            (IdRef, One),
2640            (IdRef, One),
2641            (ImageOperands, ZeroOrOne)
2642        ]
2643    ),
2644    inst!(
2645        ImageSparseGather,
2646        [SparseResidency],
2647        [],
2648        [
2649            (IdResultType, One),
2650            (IdResult, One),
2651            (IdRef, One),
2652            (IdRef, One),
2653            (IdRef, One),
2654            (ImageOperands, ZeroOrOne)
2655        ]
2656    ),
2657    inst!(
2658        ImageSparseDrefGather,
2659        [SparseResidency],
2660        [],
2661        [
2662            (IdResultType, One),
2663            (IdResult, One),
2664            (IdRef, One),
2665            (IdRef, One),
2666            (IdRef, One),
2667            (ImageOperands, ZeroOrOne)
2668        ]
2669    ),
2670    inst!(
2671        ImageSparseTexelsResident,
2672        [SparseResidency],
2673        [],
2674        [(IdResultType, One), (IdResult, One), (IdRef, One)]
2675    ),
2676    inst!(NoLine, [], [], []),
2677    inst!(
2678        AtomicFlagTestAndSet,
2679        [Kernel],
2680        [],
2681        [
2682            (IdResultType, One),
2683            (IdResult, One),
2684            (IdRef, One),
2685            (IdScope, One),
2686            (IdMemorySemantics, One)
2687        ]
2688    ),
2689    inst!(
2690        AtomicFlagClear,
2691        [Kernel],
2692        [],
2693        [(IdRef, One), (IdScope, One), (IdMemorySemantics, One)]
2694    ),
2695    inst!(
2696        ImageSparseRead,
2697        [SparseResidency],
2698        [],
2699        [
2700            (IdResultType, One),
2701            (IdResult, One),
2702            (IdRef, One),
2703            (IdRef, One),
2704            (ImageOperands, ZeroOrOne)
2705        ]
2706    ),
2707    inst!(
2708        SizeOf,
2709        [Addresses],
2710        [],
2711        [(IdResultType, One), (IdResult, One), (IdRef, One)]
2712    ),
2713    inst!(TypePipeStorage, [PipeStorage], [], [(IdResult, One)]),
2714    inst!(
2715        ConstantPipeStorage,
2716        [PipeStorage],
2717        [],
2718        [
2719            (IdResultType, One),
2720            (IdResult, One),
2721            (LiteralInteger, One),
2722            (LiteralInteger, One),
2723            (LiteralInteger, One)
2724        ]
2725    ),
2726    inst!(
2727        CreatePipeFromPipeStorage,
2728        [PipeStorage],
2729        [],
2730        [(IdResultType, One), (IdResult, One), (IdRef, One)]
2731    ),
2732    inst!(
2733        GetKernelLocalSizeForSubgroupCount,
2734        [SubgroupDispatch],
2735        [],
2736        [
2737            (IdResultType, One),
2738            (IdResult, One),
2739            (IdRef, One),
2740            (IdRef, One),
2741            (IdRef, One),
2742            (IdRef, One),
2743            (IdRef, One)
2744        ]
2745    ),
2746    inst!(
2747        GetKernelMaxNumSubgroups,
2748        [SubgroupDispatch],
2749        [],
2750        [
2751            (IdResultType, One),
2752            (IdResult, One),
2753            (IdRef, One),
2754            (IdRef, One),
2755            (IdRef, One),
2756            (IdRef, One)
2757        ]
2758    ),
2759    inst!(TypeNamedBarrier, [NamedBarrier], [], [(IdResult, One)]),
2760    inst!(
2761        NamedBarrierInitialize,
2762        [NamedBarrier],
2763        [],
2764        [(IdResultType, One), (IdResult, One), (IdRef, One)]
2765    ),
2766    inst!(
2767        MemoryNamedBarrier,
2768        [NamedBarrier],
2769        [],
2770        [(IdRef, One), (IdScope, One), (IdMemorySemantics, One)]
2771    ),
2772    inst!(ModuleProcessed, [], [], [(LiteralString, One)]),
2773    inst!(
2774        ExecutionModeId,
2775        [],
2776        [],
2777        [(IdRef, One), (ExecutionMode, One)]
2778    ),
2779    inst!(
2780        DecorateId,
2781        [],
2782        ["SPV_GOOGLE_hlsl_functionality1"],
2783        [(IdRef, One), (Decoration, One)]
2784    ),
2785    inst!(
2786        GroupNonUniformElect,
2787        [GroupNonUniform],
2788        [],
2789        [(IdResultType, One), (IdResult, One), (IdScope, One)]
2790    ),
2791    inst!(
2792        GroupNonUniformAll,
2793        [GroupNonUniformVote],
2794        [],
2795        [
2796            (IdResultType, One),
2797            (IdResult, One),
2798            (IdScope, One),
2799            (IdRef, One)
2800        ]
2801    ),
2802    inst!(
2803        GroupNonUniformAny,
2804        [GroupNonUniformVote],
2805        [],
2806        [
2807            (IdResultType, One),
2808            (IdResult, One),
2809            (IdScope, One),
2810            (IdRef, One)
2811        ]
2812    ),
2813    inst!(
2814        GroupNonUniformAllEqual,
2815        [GroupNonUniformVote],
2816        [],
2817        [
2818            (IdResultType, One),
2819            (IdResult, One),
2820            (IdScope, One),
2821            (IdRef, One)
2822        ]
2823    ),
2824    inst!(
2825        GroupNonUniformBroadcast,
2826        [GroupNonUniformBallot],
2827        [],
2828        [
2829            (IdResultType, One),
2830            (IdResult, One),
2831            (IdScope, One),
2832            (IdRef, One),
2833            (IdRef, One)
2834        ]
2835    ),
2836    inst!(
2837        GroupNonUniformBroadcastFirst,
2838        [GroupNonUniformBallot],
2839        [],
2840        [
2841            (IdResultType, One),
2842            (IdResult, One),
2843            (IdScope, One),
2844            (IdRef, One)
2845        ]
2846    ),
2847    inst!(
2848        GroupNonUniformBallot,
2849        [GroupNonUniformBallot],
2850        [],
2851        [
2852            (IdResultType, One),
2853            (IdResult, One),
2854            (IdScope, One),
2855            (IdRef, One)
2856        ]
2857    ),
2858    inst!(
2859        GroupNonUniformInverseBallot,
2860        [GroupNonUniformBallot],
2861        [],
2862        [
2863            (IdResultType, One),
2864            (IdResult, One),
2865            (IdScope, One),
2866            (IdRef, One)
2867        ]
2868    ),
2869    inst!(
2870        GroupNonUniformBallotBitExtract,
2871        [GroupNonUniformBallot],
2872        [],
2873        [
2874            (IdResultType, One),
2875            (IdResult, One),
2876            (IdScope, One),
2877            (IdRef, One),
2878            (IdRef, One)
2879        ]
2880    ),
2881    inst!(
2882        GroupNonUniformBallotBitCount,
2883        [GroupNonUniformBallot],
2884        [],
2885        [
2886            (IdResultType, One),
2887            (IdResult, One),
2888            (IdScope, One),
2889            (GroupOperation, One),
2890            (IdRef, One)
2891        ]
2892    ),
2893    inst!(
2894        GroupNonUniformBallotFindLSB,
2895        [GroupNonUniformBallot],
2896        [],
2897        [
2898            (IdResultType, One),
2899            (IdResult, One),
2900            (IdScope, One),
2901            (IdRef, One)
2902        ]
2903    ),
2904    inst!(
2905        GroupNonUniformBallotFindMSB,
2906        [GroupNonUniformBallot],
2907        [],
2908        [
2909            (IdResultType, One),
2910            (IdResult, One),
2911            (IdScope, One),
2912            (IdRef, One)
2913        ]
2914    ),
2915    inst!(
2916        GroupNonUniformShuffle,
2917        [GroupNonUniformShuffle],
2918        [],
2919        [
2920            (IdResultType, One),
2921            (IdResult, One),
2922            (IdScope, One),
2923            (IdRef, One),
2924            (IdRef, One)
2925        ]
2926    ),
2927    inst!(
2928        GroupNonUniformShuffleXor,
2929        [GroupNonUniformShuffle],
2930        [],
2931        [
2932            (IdResultType, One),
2933            (IdResult, One),
2934            (IdScope, One),
2935            (IdRef, One),
2936            (IdRef, One)
2937        ]
2938    ),
2939    inst!(
2940        GroupNonUniformShuffleUp,
2941        [GroupNonUniformShuffleRelative],
2942        [],
2943        [
2944            (IdResultType, One),
2945            (IdResult, One),
2946            (IdScope, One),
2947            (IdRef, One),
2948            (IdRef, One)
2949        ]
2950    ),
2951    inst!(
2952        GroupNonUniformShuffleDown,
2953        [GroupNonUniformShuffleRelative],
2954        [],
2955        [
2956            (IdResultType, One),
2957            (IdResult, One),
2958            (IdScope, One),
2959            (IdRef, One),
2960            (IdRef, One)
2961        ]
2962    ),
2963    inst!(
2964        GroupNonUniformIAdd,
2965        [
2966            GroupNonUniformArithmetic,
2967            GroupNonUniformClustered,
2968            GroupNonUniformPartitionedEXT
2969        ],
2970        [],
2971        [
2972            (IdResultType, One),
2973            (IdResult, One),
2974            (IdScope, One),
2975            (GroupOperation, One),
2976            (IdRef, One),
2977            (IdRef, ZeroOrOne)
2978        ]
2979    ),
2980    inst!(
2981        GroupNonUniformFAdd,
2982        [
2983            GroupNonUniformArithmetic,
2984            GroupNonUniformClustered,
2985            GroupNonUniformPartitionedEXT
2986        ],
2987        [],
2988        [
2989            (IdResultType, One),
2990            (IdResult, One),
2991            (IdScope, One),
2992            (GroupOperation, One),
2993            (IdRef, One),
2994            (IdRef, ZeroOrOne)
2995        ]
2996    ),
2997    inst!(
2998        GroupNonUniformIMul,
2999        [
3000            GroupNonUniformArithmetic,
3001            GroupNonUniformClustered,
3002            GroupNonUniformPartitionedEXT
3003        ],
3004        [],
3005        [
3006            (IdResultType, One),
3007            (IdResult, One),
3008            (IdScope, One),
3009            (GroupOperation, One),
3010            (IdRef, One),
3011            (IdRef, ZeroOrOne)
3012        ]
3013    ),
3014    inst!(
3015        GroupNonUniformFMul,
3016        [
3017            GroupNonUniformArithmetic,
3018            GroupNonUniformClustered,
3019            GroupNonUniformPartitionedEXT
3020        ],
3021        [],
3022        [
3023            (IdResultType, One),
3024            (IdResult, One),
3025            (IdScope, One),
3026            (GroupOperation, One),
3027            (IdRef, One),
3028            (IdRef, ZeroOrOne)
3029        ]
3030    ),
3031    inst!(
3032        GroupNonUniformSMin,
3033        [
3034            GroupNonUniformArithmetic,
3035            GroupNonUniformClustered,
3036            GroupNonUniformPartitionedEXT
3037        ],
3038        [],
3039        [
3040            (IdResultType, One),
3041            (IdResult, One),
3042            (IdScope, One),
3043            (GroupOperation, One),
3044            (IdRef, One),
3045            (IdRef, ZeroOrOne)
3046        ]
3047    ),
3048    inst!(
3049        GroupNonUniformUMin,
3050        [
3051            GroupNonUniformArithmetic,
3052            GroupNonUniformClustered,
3053            GroupNonUniformPartitionedEXT
3054        ],
3055        [],
3056        [
3057            (IdResultType, One),
3058            (IdResult, One),
3059            (IdScope, One),
3060            (GroupOperation, One),
3061            (IdRef, One),
3062            (IdRef, ZeroOrOne)
3063        ]
3064    ),
3065    inst!(
3066        GroupNonUniformFMin,
3067        [
3068            GroupNonUniformArithmetic,
3069            GroupNonUniformClustered,
3070            GroupNonUniformPartitionedEXT
3071        ],
3072        [],
3073        [
3074            (IdResultType, One),
3075            (IdResult, One),
3076            (IdScope, One),
3077            (GroupOperation, One),
3078            (IdRef, One),
3079            (IdRef, ZeroOrOne)
3080        ]
3081    ),
3082    inst!(
3083        GroupNonUniformSMax,
3084        [
3085            GroupNonUniformArithmetic,
3086            GroupNonUniformClustered,
3087            GroupNonUniformPartitionedEXT
3088        ],
3089        [],
3090        [
3091            (IdResultType, One),
3092            (IdResult, One),
3093            (IdScope, One),
3094            (GroupOperation, One),
3095            (IdRef, One),
3096            (IdRef, ZeroOrOne)
3097        ]
3098    ),
3099    inst!(
3100        GroupNonUniformUMax,
3101        [
3102            GroupNonUniformArithmetic,
3103            GroupNonUniformClustered,
3104            GroupNonUniformPartitionedEXT
3105        ],
3106        [],
3107        [
3108            (IdResultType, One),
3109            (IdResult, One),
3110            (IdScope, One),
3111            (GroupOperation, One),
3112            (IdRef, One),
3113            (IdRef, ZeroOrOne)
3114        ]
3115    ),
3116    inst!(
3117        GroupNonUniformFMax,
3118        [
3119            GroupNonUniformArithmetic,
3120            GroupNonUniformClustered,
3121            GroupNonUniformPartitionedEXT
3122        ],
3123        [],
3124        [
3125            (IdResultType, One),
3126            (IdResult, One),
3127            (IdScope, One),
3128            (GroupOperation, One),
3129            (IdRef, One),
3130            (IdRef, ZeroOrOne)
3131        ]
3132    ),
3133    inst!(
3134        GroupNonUniformBitwiseAnd,
3135        [
3136            GroupNonUniformArithmetic,
3137            GroupNonUniformClustered,
3138            GroupNonUniformPartitionedEXT
3139        ],
3140        [],
3141        [
3142            (IdResultType, One),
3143            (IdResult, One),
3144            (IdScope, One),
3145            (GroupOperation, One),
3146            (IdRef, One),
3147            (IdRef, ZeroOrOne)
3148        ]
3149    ),
3150    inst!(
3151        GroupNonUniformBitwiseOr,
3152        [
3153            GroupNonUniformArithmetic,
3154            GroupNonUniformClustered,
3155            GroupNonUniformPartitionedEXT
3156        ],
3157        [],
3158        [
3159            (IdResultType, One),
3160            (IdResult, One),
3161            (IdScope, One),
3162            (GroupOperation, One),
3163            (IdRef, One),
3164            (IdRef, ZeroOrOne)
3165        ]
3166    ),
3167    inst!(
3168        GroupNonUniformBitwiseXor,
3169        [
3170            GroupNonUniformArithmetic,
3171            GroupNonUniformClustered,
3172            GroupNonUniformPartitionedEXT
3173        ],
3174        [],
3175        [
3176            (IdResultType, One),
3177            (IdResult, One),
3178            (IdScope, One),
3179            (GroupOperation, One),
3180            (IdRef, One),
3181            (IdRef, ZeroOrOne)
3182        ]
3183    ),
3184    inst!(
3185        GroupNonUniformLogicalAnd,
3186        [
3187            GroupNonUniformArithmetic,
3188            GroupNonUniformClustered,
3189            GroupNonUniformPartitionedEXT
3190        ],
3191        [],
3192        [
3193            (IdResultType, One),
3194            (IdResult, One),
3195            (IdScope, One),
3196            (GroupOperation, One),
3197            (IdRef, One),
3198            (IdRef, ZeroOrOne)
3199        ]
3200    ),
3201    inst!(
3202        GroupNonUniformLogicalOr,
3203        [
3204            GroupNonUniformArithmetic,
3205            GroupNonUniformClustered,
3206            GroupNonUniformPartitionedEXT
3207        ],
3208        [],
3209        [
3210            (IdResultType, One),
3211            (IdResult, One),
3212            (IdScope, One),
3213            (GroupOperation, One),
3214            (IdRef, One),
3215            (IdRef, ZeroOrOne)
3216        ]
3217    ),
3218    inst!(
3219        GroupNonUniformLogicalXor,
3220        [
3221            GroupNonUniformArithmetic,
3222            GroupNonUniformClustered,
3223            GroupNonUniformPartitionedEXT
3224        ],
3225        [],
3226        [
3227            (IdResultType, One),
3228            (IdResult, One),
3229            (IdScope, One),
3230            (GroupOperation, One),
3231            (IdRef, One),
3232            (IdRef, ZeroOrOne)
3233        ]
3234    ),
3235    inst!(
3236        GroupNonUniformQuadBroadcast,
3237        [GroupNonUniformQuad],
3238        [],
3239        [
3240            (IdResultType, One),
3241            (IdResult, One),
3242            (IdScope, One),
3243            (IdRef, One),
3244            (IdRef, One)
3245        ]
3246    ),
3247    inst!(
3248        GroupNonUniformQuadSwap,
3249        [GroupNonUniformQuad],
3250        [],
3251        [
3252            (IdResultType, One),
3253            (IdResult, One),
3254            (IdScope, One),
3255            (IdRef, One),
3256            (IdRef, One)
3257        ]
3258    ),
3259    inst!(
3260        CopyLogical,
3261        [],
3262        [],
3263        [(IdResultType, One), (IdResult, One), (IdRef, One)]
3264    ),
3265    inst!(
3266        PtrEqual,
3267        [],
3268        [],
3269        [
3270            (IdResultType, One),
3271            (IdResult, One),
3272            (IdRef, One),
3273            (IdRef, One)
3274        ]
3275    ),
3276    inst!(
3277        PtrNotEqual,
3278        [],
3279        [],
3280        [
3281            (IdResultType, One),
3282            (IdResult, One),
3283            (IdRef, One),
3284            (IdRef, One)
3285        ]
3286    ),
3287    inst!(
3288        PtrDiff,
3289        [Addresses, VariablePointers, VariablePointersStorageBuffer],
3290        [],
3291        [
3292            (IdResultType, One),
3293            (IdResult, One),
3294            (IdRef, One),
3295            (IdRef, One)
3296        ]
3297    ),
3298    inst!(
3299        ColorAttachmentReadEXT,
3300        [TileImageColorReadAccessEXT],
3301        [],
3302        [
3303            (IdResultType, One),
3304            (IdResult, One),
3305            (IdRef, One),
3306            (IdRef, ZeroOrOne)
3307        ]
3308    ),
3309    inst!(
3310        DepthAttachmentReadEXT,
3311        [TileImageDepthReadAccessEXT],
3312        [],
3313        [(IdResultType, One), (IdResult, One), (IdRef, ZeroOrOne)]
3314    ),
3315    inst!(
3316        StencilAttachmentReadEXT,
3317        [TileImageStencilReadAccessEXT],
3318        [],
3319        [(IdResultType, One), (IdResult, One), (IdRef, ZeroOrOne)]
3320    ),
3321    inst!(
3322        TypeTensorARM,
3323        [TensorsARM],
3324        [],
3325        [
3326            (IdResult, One),
3327            (IdRef, One),
3328            (IdRef, ZeroOrOne),
3329            (IdRef, ZeroOrOne)
3330        ]
3331    ),
3332    inst!(
3333        TensorReadARM,
3334        [TensorsARM],
3335        [],
3336        [
3337            (IdResultType, One),
3338            (IdResult, One),
3339            (IdRef, One),
3340            (IdRef, One),
3341            (TensorOperands, ZeroOrOne)
3342        ]
3343    ),
3344    inst!(
3345        TensorWriteARM,
3346        [TensorsARM],
3347        [],
3348        [
3349            (IdRef, One),
3350            (IdRef, One),
3351            (IdRef, One),
3352            (TensorOperands, ZeroOrOne)
3353        ]
3354    ),
3355    inst!(
3356        TensorQuerySizeARM,
3357        [TensorsARM],
3358        [],
3359        [
3360            (IdResultType, One),
3361            (IdResult, One),
3362            (IdRef, One),
3363            (IdRef, One)
3364        ]
3365    ),
3366    inst!(
3367        GraphConstantARM,
3368        [GraphARM],
3369        [],
3370        [(IdResultType, One), (IdResult, One), (LiteralInteger, One)]
3371    ),
3372    inst!(
3373        GraphEntryPointARM,
3374        [GraphARM],
3375        [],
3376        [(IdRef, One), (LiteralString, One), (IdRef, ZeroOrMore)]
3377    ),
3378    inst!(
3379        GraphARM,
3380        [GraphARM],
3381        [],
3382        [(IdResultType, One), (IdResult, One)]
3383    ),
3384    inst!(
3385        GraphInputARM,
3386        [GraphARM],
3387        [],
3388        [
3389            (IdResultType, One),
3390            (IdResult, One),
3391            (IdRef, One),
3392            (IdRef, ZeroOrMore)
3393        ]
3394    ),
3395    inst!(
3396        GraphSetOutputARM,
3397        [GraphARM],
3398        [],
3399        [(IdRef, One), (IdRef, One), (IdRef, ZeroOrMore)]
3400    ),
3401    inst!(GraphEndARM, [GraphARM], [], []),
3402    inst!(
3403        TypeGraphARM,
3404        [GraphARM],
3405        [],
3406        [(IdResult, One), (LiteralInteger, One), (IdRef, ZeroOrMore)]
3407    ),
3408    inst!(
3409        TerminateInvocation,
3410        [Shader],
3411        ["SPV_KHR_terminate_invocation"],
3412        []
3413    ),
3414    inst!(
3415        TypeUntypedPointerKHR,
3416        [UntypedPointersKHR],
3417        [],
3418        [(IdResult, One), (StorageClass, One)]
3419    ),
3420    inst!(
3421        UntypedVariableKHR,
3422        [UntypedPointersKHR],
3423        [],
3424        [
3425            (IdResultType, One),
3426            (IdResult, One),
3427            (StorageClass, One),
3428            (IdRef, ZeroOrOne),
3429            (IdRef, ZeroOrOne)
3430        ]
3431    ),
3432    inst!(
3433        UntypedAccessChainKHR,
3434        [UntypedPointersKHR],
3435        [],
3436        [
3437            (IdResultType, One),
3438            (IdResult, One),
3439            (IdRef, One),
3440            (IdRef, One),
3441            (IdRef, ZeroOrMore)
3442        ]
3443    ),
3444    inst!(
3445        UntypedInBoundsAccessChainKHR,
3446        [UntypedPointersKHR],
3447        [],
3448        [
3449            (IdResultType, One),
3450            (IdResult, One),
3451            (IdRef, One),
3452            (IdRef, One),
3453            (IdRef, ZeroOrMore)
3454        ]
3455    ),
3456    inst!(
3457        SubgroupBallotKHR,
3458        [SubgroupBallotKHR],
3459        ["SPV_KHR_shader_ballot"],
3460        [(IdResultType, One), (IdResult, One), (IdRef, One)]
3461    ),
3462    inst!(
3463        SubgroupFirstInvocationKHR,
3464        [SubgroupBallotKHR],
3465        ["SPV_KHR_shader_ballot"],
3466        [(IdResultType, One), (IdResult, One), (IdRef, One)]
3467    ),
3468    inst!(
3469        UntypedPtrAccessChainKHR,
3470        [UntypedPointersKHR],
3471        [],
3472        [
3473            (IdResultType, One),
3474            (IdResult, One),
3475            (IdRef, One),
3476            (IdRef, One),
3477            (IdRef, One),
3478            (IdRef, ZeroOrMore)
3479        ]
3480    ),
3481    inst!(
3482        UntypedInBoundsPtrAccessChainKHR,
3483        [UntypedPointersKHR],
3484        [],
3485        [
3486            (IdResultType, One),
3487            (IdResult, One),
3488            (IdRef, One),
3489            (IdRef, One),
3490            (IdRef, One),
3491            (IdRef, ZeroOrMore)
3492        ]
3493    ),
3494    inst!(
3495        UntypedArrayLengthKHR,
3496        [UntypedPointersKHR],
3497        [],
3498        [
3499            (IdResultType, One),
3500            (IdResult, One),
3501            (IdRef, One),
3502            (IdRef, One),
3503            (LiteralInteger, One)
3504        ]
3505    ),
3506    inst!(
3507        UntypedPrefetchKHR,
3508        [UntypedPointersKHR],
3509        [],
3510        [
3511            (IdRef, One),
3512            (IdRef, One),
3513            (IdRef, ZeroOrOne),
3514            (IdRef, ZeroOrOne),
3515            (IdRef, ZeroOrOne)
3516        ]
3517    ),
3518    inst!(
3519        FmaKHR,
3520        [FMAKHR],
3521        [],
3522        [
3523            (IdResultType, One),
3524            (IdResult, One),
3525            (IdRef, One),
3526            (IdRef, One),
3527            (IdRef, One)
3528        ]
3529    ),
3530    inst!(
3531        SubgroupAllKHR,
3532        [SubgroupVoteKHR],
3533        ["SPV_KHR_subgroup_vote"],
3534        [(IdResultType, One), (IdResult, One), (IdRef, One)]
3535    ),
3536    inst!(
3537        SubgroupAnyKHR,
3538        [SubgroupVoteKHR],
3539        ["SPV_KHR_subgroup_vote"],
3540        [(IdResultType, One), (IdResult, One), (IdRef, One)]
3541    ),
3542    inst!(
3543        SubgroupAllEqualKHR,
3544        [SubgroupVoteKHR],
3545        ["SPV_KHR_subgroup_vote"],
3546        [(IdResultType, One), (IdResult, One), (IdRef, One)]
3547    ),
3548    inst!(
3549        GroupNonUniformRotateKHR,
3550        [GroupNonUniformRotateKHR],
3551        [],
3552        [
3553            (IdResultType, One),
3554            (IdResult, One),
3555            (IdScope, One),
3556            (IdRef, One),
3557            (IdRef, One),
3558            (IdRef, ZeroOrOne)
3559        ]
3560    ),
3561    inst!(
3562        SubgroupReadInvocationKHR,
3563        [SubgroupBallotKHR],
3564        ["SPV_KHR_shader_ballot"],
3565        [
3566            (IdResultType, One),
3567            (IdResult, One),
3568            (IdRef, One),
3569            (IdRef, One)
3570        ]
3571    ),
3572    inst!(
3573        ExtInstWithForwardRefsKHR,
3574        [],
3575        ["SPV_KHR_relaxed_extended_instruction"],
3576        [
3577            (IdResultType, One),
3578            (IdResult, One),
3579            (IdRef, One),
3580            (LiteralExtInstInteger, One),
3581            (IdRef, ZeroOrMore)
3582        ]
3583    ),
3584    inst!(
3585        UntypedGroupAsyncCopyKHR,
3586        [UntypedPointersKHR],
3587        [],
3588        [
3589            (IdResultType, One),
3590            (IdResult, One),
3591            (IdRef, One),
3592            (IdRef, One),
3593            (IdRef, One),
3594            (IdRef, One),
3595            (IdRef, One),
3596            (IdRef, One),
3597            (IdRef, One),
3598            (MemoryAccess, ZeroOrOne),
3599            (MemoryAccess, ZeroOrOne)
3600        ]
3601    ),
3602    inst!(
3603        TraceRayKHR,
3604        [RayTracingKHR],
3605        ["SPV_KHR_ray_tracing"],
3606        [
3607            (IdRef, One),
3608            (IdRef, One),
3609            (IdRef, One),
3610            (IdRef, One),
3611            (IdRef, One),
3612            (IdRef, One),
3613            (IdRef, One),
3614            (IdRef, One),
3615            (IdRef, One),
3616            (IdRef, One),
3617            (IdRef, One)
3618        ]
3619    ),
3620    inst!(
3621        ExecuteCallableKHR,
3622        [RayTracingKHR],
3623        ["SPV_KHR_ray_tracing"],
3624        [(IdRef, One), (IdRef, One)]
3625    ),
3626    inst!(
3627        ConvertUToAccelerationStructureKHR,
3628        [RayTracingKHR, RayQueryKHR],
3629        ["SPV_KHR_ray_tracing", "SPV_KHR_ray_query"],
3630        [(IdResultType, One), (IdResult, One), (IdRef, One)]
3631    ),
3632    inst!(
3633        IgnoreIntersectionKHR,
3634        [RayTracingKHR],
3635        ["SPV_KHR_ray_tracing"],
3636        []
3637    ),
3638    inst!(
3639        TerminateRayKHR,
3640        [RayTracingKHR],
3641        ["SPV_KHR_ray_tracing"],
3642        []
3643    ),
3644    inst!(
3645        SDot,
3646        [DotProduct],
3647        ["SPV_KHR_integer_dot_product"],
3648        [
3649            (IdResultType, One),
3650            (IdResult, One),
3651            (IdRef, One),
3652            (IdRef, One),
3653            (PackedVectorFormat, ZeroOrOne)
3654        ]
3655    ),
3656    inst!(
3657        UDot,
3658        [DotProduct],
3659        ["SPV_KHR_integer_dot_product"],
3660        [
3661            (IdResultType, One),
3662            (IdResult, One),
3663            (IdRef, One),
3664            (IdRef, One),
3665            (PackedVectorFormat, ZeroOrOne)
3666        ]
3667    ),
3668    inst!(
3669        SUDot,
3670        [DotProduct],
3671        ["SPV_KHR_integer_dot_product"],
3672        [
3673            (IdResultType, One),
3674            (IdResult, One),
3675            (IdRef, One),
3676            (IdRef, One),
3677            (PackedVectorFormat, ZeroOrOne)
3678        ]
3679    ),
3680    inst!(
3681        SDotAccSat,
3682        [DotProduct],
3683        ["SPV_KHR_integer_dot_product"],
3684        [
3685            (IdResultType, One),
3686            (IdResult, One),
3687            (IdRef, One),
3688            (IdRef, One),
3689            (IdRef, One),
3690            (PackedVectorFormat, ZeroOrOne)
3691        ]
3692    ),
3693    inst!(
3694        UDotAccSat,
3695        [DotProduct],
3696        ["SPV_KHR_integer_dot_product"],
3697        [
3698            (IdResultType, One),
3699            (IdResult, One),
3700            (IdRef, One),
3701            (IdRef, One),
3702            (IdRef, One),
3703            (PackedVectorFormat, ZeroOrOne)
3704        ]
3705    ),
3706    inst!(
3707        SUDotAccSat,
3708        [DotProduct],
3709        ["SPV_KHR_integer_dot_product"],
3710        [
3711            (IdResultType, One),
3712            (IdResult, One),
3713            (IdRef, One),
3714            (IdRef, One),
3715            (IdRef, One),
3716            (PackedVectorFormat, ZeroOrOne)
3717        ]
3718    ),
3719    inst!(
3720        TypeCooperativeMatrixKHR,
3721        [CooperativeMatrixKHR],
3722        [],
3723        [
3724            (IdResult, One),
3725            (IdRef, One),
3726            (IdScope, One),
3727            (IdRef, One),
3728            (IdRef, One),
3729            (IdRef, One)
3730        ]
3731    ),
3732    inst!(
3733        CooperativeMatrixLoadKHR,
3734        [CooperativeMatrixKHR],
3735        [],
3736        [
3737            (IdResultType, One),
3738            (IdResult, One),
3739            (IdRef, One),
3740            (IdRef, One),
3741            (IdRef, ZeroOrOne),
3742            (MemoryAccess, ZeroOrOne)
3743        ]
3744    ),
3745    inst!(
3746        CooperativeMatrixStoreKHR,
3747        [CooperativeMatrixKHR],
3748        [],
3749        [
3750            (IdRef, One),
3751            (IdRef, One),
3752            (IdRef, One),
3753            (IdRef, ZeroOrOne),
3754            (MemoryAccess, ZeroOrOne)
3755        ]
3756    ),
3757    inst!(
3758        CooperativeMatrixMulAddKHR,
3759        [CooperativeMatrixKHR],
3760        [],
3761        [
3762            (IdResultType, One),
3763            (IdResult, One),
3764            (IdRef, One),
3765            (IdRef, One),
3766            (IdRef, One),
3767            (CooperativeMatrixOperands, ZeroOrOne)
3768        ]
3769    ),
3770    inst!(
3771        CooperativeMatrixLengthKHR,
3772        [CooperativeMatrixKHR],
3773        [],
3774        [(IdResultType, One), (IdResult, One), (IdRef, One)]
3775    ),
3776    inst!(
3777        ConstantCompositeReplicateEXT,
3778        [ReplicatedCompositesEXT],
3779        [],
3780        [(IdResultType, One), (IdResult, One), (IdRef, One)]
3781    ),
3782    inst!(
3783        SpecConstantCompositeReplicateEXT,
3784        [ReplicatedCompositesEXT],
3785        [],
3786        [(IdResultType, One), (IdResult, One), (IdRef, One)]
3787    ),
3788    inst!(
3789        CompositeConstructReplicateEXT,
3790        [ReplicatedCompositesEXT],
3791        [],
3792        [(IdResultType, One), (IdResult, One), (IdRef, One)]
3793    ),
3794    inst!(
3795        TypeRayQueryKHR,
3796        [RayQueryKHR],
3797        ["SPV_KHR_ray_query"],
3798        [(IdResult, One)]
3799    ),
3800    inst!(
3801        RayQueryInitializeKHR,
3802        [RayQueryKHR],
3803        ["SPV_KHR_ray_query"],
3804        [
3805            (IdRef, One),
3806            (IdRef, One),
3807            (IdRef, One),
3808            (IdRef, One),
3809            (IdRef, One),
3810            (IdRef, One),
3811            (IdRef, One),
3812            (IdRef, One)
3813        ]
3814    ),
3815    inst!(
3816        RayQueryTerminateKHR,
3817        [RayQueryKHR],
3818        ["SPV_KHR_ray_query"],
3819        [(IdRef, One)]
3820    ),
3821    inst!(
3822        RayQueryGenerateIntersectionKHR,
3823        [RayQueryKHR],
3824        ["SPV_KHR_ray_query"],
3825        [(IdRef, One), (IdRef, One)]
3826    ),
3827    inst!(
3828        RayQueryConfirmIntersectionKHR,
3829        [RayQueryKHR],
3830        ["SPV_KHR_ray_query"],
3831        [(IdRef, One)]
3832    ),
3833    inst!(
3834        RayQueryProceedKHR,
3835        [RayQueryKHR],
3836        ["SPV_KHR_ray_query"],
3837        [(IdResultType, One), (IdResult, One), (IdRef, One)]
3838    ),
3839    inst!(
3840        RayQueryGetIntersectionTypeKHR,
3841        [RayQueryKHR],
3842        ["SPV_KHR_ray_query"],
3843        [
3844            (IdResultType, One),
3845            (IdResult, One),
3846            (IdRef, One),
3847            (IdRef, One)
3848        ]
3849    ),
3850    inst!(
3851        ImageSampleWeightedQCOM,
3852        [TextureSampleWeightedQCOM],
3853        [],
3854        [
3855            (IdResultType, One),
3856            (IdResult, One),
3857            (IdRef, One),
3858            (IdRef, One),
3859            (IdRef, One)
3860        ]
3861    ),
3862    inst!(
3863        ImageBoxFilterQCOM,
3864        [TextureBoxFilterQCOM],
3865        [],
3866        [
3867            (IdResultType, One),
3868            (IdResult, One),
3869            (IdRef, One),
3870            (IdRef, One),
3871            (IdRef, One)
3872        ]
3873    ),
3874    inst!(
3875        ImageBlockMatchSSDQCOM,
3876        [TextureBlockMatchQCOM],
3877        [],
3878        [
3879            (IdResultType, One),
3880            (IdResult, One),
3881            (IdRef, One),
3882            (IdRef, One),
3883            (IdRef, One),
3884            (IdRef, One),
3885            (IdRef, One)
3886        ]
3887    ),
3888    inst!(
3889        ImageBlockMatchSADQCOM,
3890        [TextureBlockMatchQCOM],
3891        [],
3892        [
3893            (IdResultType, One),
3894            (IdResult, One),
3895            (IdRef, One),
3896            (IdRef, One),
3897            (IdRef, One),
3898            (IdRef, One),
3899            (IdRef, One)
3900        ]
3901    ),
3902    inst!(
3903        BitCastArrayQCOM,
3904        [CooperativeMatrixConversionQCOM],
3905        [],
3906        [(IdResultType, One), (IdResult, One), (IdRef, One)]
3907    ),
3908    inst!(
3909        ImageBlockMatchWindowSSDQCOM,
3910        [TextureBlockMatch2QCOM],
3911        [],
3912        [
3913            (IdResultType, One),
3914            (IdResult, One),
3915            (IdRef, One),
3916            (IdRef, One),
3917            (IdRef, One),
3918            (IdRef, One),
3919            (IdRef, One)
3920        ]
3921    ),
3922    inst!(
3923        ImageBlockMatchWindowSADQCOM,
3924        [TextureBlockMatch2QCOM],
3925        [],
3926        [
3927            (IdResultType, One),
3928            (IdResult, One),
3929            (IdRef, One),
3930            (IdRef, One),
3931            (IdRef, One),
3932            (IdRef, One),
3933            (IdRef, One)
3934        ]
3935    ),
3936    inst!(
3937        ImageBlockMatchGatherSSDQCOM,
3938        [TextureBlockMatch2QCOM],
3939        [],
3940        [
3941            (IdResultType, One),
3942            (IdResult, One),
3943            (IdRef, One),
3944            (IdRef, One),
3945            (IdRef, One),
3946            (IdRef, One),
3947            (IdRef, One)
3948        ]
3949    ),
3950    inst!(
3951        ImageBlockMatchGatherSADQCOM,
3952        [TextureBlockMatch2QCOM],
3953        [],
3954        [
3955            (IdResultType, One),
3956            (IdResult, One),
3957            (IdRef, One),
3958            (IdRef, One),
3959            (IdRef, One),
3960            (IdRef, One),
3961            (IdRef, One)
3962        ]
3963    ),
3964    inst!(
3965        CompositeConstructCoopMatQCOM,
3966        [CooperativeMatrixConversionQCOM],
3967        [],
3968        [(IdResultType, One), (IdResult, One), (IdRef, One)]
3969    ),
3970    inst!(
3971        CompositeExtractCoopMatQCOM,
3972        [CooperativeMatrixConversionQCOM],
3973        [],
3974        [(IdResultType, One), (IdResult, One), (IdRef, One)]
3975    ),
3976    inst!(
3977        ExtractSubArrayQCOM,
3978        [CooperativeMatrixConversionQCOM],
3979        [],
3980        [
3981            (IdResultType, One),
3982            (IdResult, One),
3983            (IdRef, One),
3984            (IdRef, One)
3985        ]
3986    ),
3987    inst!(
3988        GroupIAddNonUniformAMD,
3989        [Groups],
3990        ["SPV_AMD_shader_ballot"],
3991        [
3992            (IdResultType, One),
3993            (IdResult, One),
3994            (IdScope, One),
3995            (GroupOperation, One),
3996            (IdRef, One)
3997        ]
3998    ),
3999    inst!(
4000        GroupFAddNonUniformAMD,
4001        [Groups],
4002        ["SPV_AMD_shader_ballot"],
4003        [
4004            (IdResultType, One),
4005            (IdResult, One),
4006            (IdScope, One),
4007            (GroupOperation, One),
4008            (IdRef, One)
4009        ]
4010    ),
4011    inst!(
4012        GroupFMinNonUniformAMD,
4013        [Groups],
4014        ["SPV_AMD_shader_ballot"],
4015        [
4016            (IdResultType, One),
4017            (IdResult, One),
4018            (IdScope, One),
4019            (GroupOperation, One),
4020            (IdRef, One)
4021        ]
4022    ),
4023    inst!(
4024        GroupUMinNonUniformAMD,
4025        [Groups],
4026        ["SPV_AMD_shader_ballot"],
4027        [
4028            (IdResultType, One),
4029            (IdResult, One),
4030            (IdScope, One),
4031            (GroupOperation, One),
4032            (IdRef, One)
4033        ]
4034    ),
4035    inst!(
4036        GroupSMinNonUniformAMD,
4037        [Groups],
4038        ["SPV_AMD_shader_ballot"],
4039        [
4040            (IdResultType, One),
4041            (IdResult, One),
4042            (IdScope, One),
4043            (GroupOperation, One),
4044            (IdRef, One)
4045        ]
4046    ),
4047    inst!(
4048        GroupFMaxNonUniformAMD,
4049        [Groups],
4050        ["SPV_AMD_shader_ballot"],
4051        [
4052            (IdResultType, One),
4053            (IdResult, One),
4054            (IdScope, One),
4055            (GroupOperation, One),
4056            (IdRef, One)
4057        ]
4058    ),
4059    inst!(
4060        GroupUMaxNonUniformAMD,
4061        [Groups],
4062        ["SPV_AMD_shader_ballot"],
4063        [
4064            (IdResultType, One),
4065            (IdResult, One),
4066            (IdScope, One),
4067            (GroupOperation, One),
4068            (IdRef, One)
4069        ]
4070    ),
4071    inst!(
4072        GroupSMaxNonUniformAMD,
4073        [Groups],
4074        ["SPV_AMD_shader_ballot"],
4075        [
4076            (IdResultType, One),
4077            (IdResult, One),
4078            (IdScope, One),
4079            (GroupOperation, One),
4080            (IdRef, One)
4081        ]
4082    ),
4083    inst!(
4084        FragmentMaskFetchAMD,
4085        [FragmentMaskAMD],
4086        ["SPV_AMD_shader_fragment_mask"],
4087        [
4088            (IdResultType, One),
4089            (IdResult, One),
4090            (IdRef, One),
4091            (IdRef, One)
4092        ]
4093    ),
4094    inst!(
4095        FragmentFetchAMD,
4096        [FragmentMaskAMD],
4097        ["SPV_AMD_shader_fragment_mask"],
4098        [
4099            (IdResultType, One),
4100            (IdResult, One),
4101            (IdRef, One),
4102            (IdRef, One),
4103            (IdRef, One)
4104        ]
4105    ),
4106    inst!(
4107        ReadClockKHR,
4108        [ShaderClockKHR],
4109        [],
4110        [(IdResultType, One), (IdResult, One), (IdScope, One)]
4111    ),
4112    inst!(
4113        AllocateNodePayloadsAMDX,
4114        [ShaderEnqueueAMDX],
4115        [],
4116        [
4117            (IdResultType, One),
4118            (IdResult, One),
4119            (IdScope, One),
4120            (IdRef, One),
4121            (IdRef, One)
4122        ]
4123    ),
4124    inst!(
4125        EnqueueNodePayloadsAMDX,
4126        [ShaderEnqueueAMDX],
4127        [],
4128        [(IdRef, One)]
4129    ),
4130    inst!(
4131        TypeNodePayloadArrayAMDX,
4132        [ShaderEnqueueAMDX],
4133        [],
4134        [(IdResult, One), (IdRef, One)]
4135    ),
4136    inst!(
4137        FinishWritingNodePayloadAMDX,
4138        [ShaderEnqueueAMDX],
4139        [],
4140        [(IdResultType, One), (IdResult, One), (IdRef, One)]
4141    ),
4142    inst!(
4143        NodePayloadArrayLengthAMDX,
4144        [ShaderEnqueueAMDX],
4145        [],
4146        [(IdResultType, One), (IdResult, One), (IdRef, One)]
4147    ),
4148    inst!(
4149        IsNodePayloadValidAMDX,
4150        [ShaderEnqueueAMDX],
4151        [],
4152        [
4153            (IdResultType, One),
4154            (IdResult, One),
4155            (IdRef, One),
4156            (IdRef, One)
4157        ]
4158    ),
4159    inst!(
4160        ConstantStringAMDX,
4161        [ShaderEnqueueAMDX],
4162        [],
4163        [(IdResult, One), (LiteralString, One)]
4164    ),
4165    inst!(
4166        SpecConstantStringAMDX,
4167        [ShaderEnqueueAMDX],
4168        [],
4169        [(IdResult, One), (LiteralString, One)]
4170    ),
4171    inst!(
4172        GroupNonUniformQuadAllKHR,
4173        [QuadControlKHR],
4174        [],
4175        [(IdResultType, One), (IdResult, One), (IdRef, One)]
4176    ),
4177    inst!(
4178        GroupNonUniformQuadAnyKHR,
4179        [QuadControlKHR],
4180        [],
4181        [(IdResultType, One), (IdResult, One), (IdRef, One)]
4182    ),
4183    inst!(
4184        TypeBufferEXT,
4185        [DescriptorHeapEXT],
4186        [],
4187        [(IdResult, One), (StorageClass, One)]
4188    ),
4189    inst!(
4190        BufferPointerEXT,
4191        [DescriptorHeapEXT],
4192        [],
4193        [(IdResultType, One), (IdResult, One), (IdRef, One)]
4194    ),
4195    inst!(
4196        UntypedImageTexelPointerEXT,
4197        [DescriptorHeapEXT],
4198        [],
4199        [
4200            (IdResultType, One),
4201            (IdResult, One),
4202            (IdRef, One),
4203            (IdRef, One),
4204            (IdRef, One),
4205            (IdRef, One)
4206        ]
4207    ),
4208    inst!(
4209        MemberDecorateIdEXT,
4210        [DescriptorHeapEXT],
4211        [],
4212        [(IdRef, One), (LiteralInteger, One), (Decoration, One)]
4213    ),
4214    inst!(
4215        ConstantSizeOfEXT,
4216        [DescriptorHeapEXT],
4217        [],
4218        [(IdResultType, One), (IdResult, One), (IdRef, One)]
4219    ),
4220    inst!(
4221        HitObjectRecordHitMotionNV,
4222        [ShaderInvocationReorderNV, RayTracingMotionBlurNV],
4223        [],
4224        [
4225            (IdRef, One),
4226            (IdRef, One),
4227            (IdRef, One),
4228            (IdRef, One),
4229            (IdRef, One),
4230            (IdRef, One),
4231            (IdRef, One),
4232            (IdRef, One),
4233            (IdRef, One),
4234            (IdRef, One),
4235            (IdRef, One),
4236            (IdRef, One),
4237            (IdRef, One),
4238            (IdRef, One)
4239        ]
4240    ),
4241    inst!(
4242        HitObjectRecordHitWithIndexMotionNV,
4243        [ShaderInvocationReorderNV, RayTracingMotionBlurNV],
4244        [],
4245        [
4246            (IdRef, One),
4247            (IdRef, One),
4248            (IdRef, One),
4249            (IdRef, One),
4250            (IdRef, One),
4251            (IdRef, One),
4252            (IdRef, One),
4253            (IdRef, One),
4254            (IdRef, One),
4255            (IdRef, One),
4256            (IdRef, One),
4257            (IdRef, One),
4258            (IdRef, One)
4259        ]
4260    ),
4261    inst!(
4262        HitObjectRecordMissMotionNV,
4263        [ShaderInvocationReorderNV, RayTracingMotionBlurNV],
4264        [],
4265        [
4266            (IdRef, One),
4267            (IdRef, One),
4268            (IdRef, One),
4269            (IdRef, One),
4270            (IdRef, One),
4271            (IdRef, One),
4272            (IdRef, One)
4273        ]
4274    ),
4275    inst!(
4276        HitObjectGetWorldToObjectNV,
4277        [ShaderInvocationReorderNV],
4278        [],
4279        [(IdResultType, One), (IdResult, One), (IdRef, One)]
4280    ),
4281    inst!(
4282        HitObjectGetObjectToWorldNV,
4283        [ShaderInvocationReorderNV],
4284        [],
4285        [(IdResultType, One), (IdResult, One), (IdRef, One)]
4286    ),
4287    inst!(
4288        HitObjectGetObjectRayDirectionNV,
4289        [ShaderInvocationReorderNV],
4290        [],
4291        [(IdResultType, One), (IdResult, One), (IdRef, One)]
4292    ),
4293    inst!(
4294        HitObjectGetObjectRayOriginNV,
4295        [ShaderInvocationReorderNV],
4296        [],
4297        [(IdResultType, One), (IdResult, One), (IdRef, One)]
4298    ),
4299    inst!(
4300        HitObjectTraceRayMotionNV,
4301        [ShaderInvocationReorderNV, RayTracingMotionBlurNV],
4302        [],
4303        [
4304            (IdRef, One),
4305            (IdRef, One),
4306            (IdRef, One),
4307            (IdRef, One),
4308            (IdRef, One),
4309            (IdRef, One),
4310            (IdRef, One),
4311            (IdRef, One),
4312            (IdRef, One),
4313            (IdRef, One),
4314            (IdRef, One),
4315            (IdRef, One),
4316            (IdRef, One)
4317        ]
4318    ),
4319    inst!(
4320        HitObjectGetShaderRecordBufferHandleNV,
4321        [ShaderInvocationReorderNV],
4322        [],
4323        [(IdResultType, One), (IdResult, One), (IdRef, One)]
4324    ),
4325    inst!(
4326        HitObjectGetShaderBindingTableRecordIndexNV,
4327        [ShaderInvocationReorderNV],
4328        [],
4329        [(IdResultType, One), (IdResult, One), (IdRef, One)]
4330    ),
4331    inst!(
4332        HitObjectRecordEmptyNV,
4333        [ShaderInvocationReorderNV],
4334        [],
4335        [(IdRef, One)]
4336    ),
4337    inst!(
4338        HitObjectTraceRayNV,
4339        [ShaderInvocationReorderNV],
4340        [],
4341        [
4342            (IdRef, One),
4343            (IdRef, One),
4344            (IdRef, One),
4345            (IdRef, One),
4346            (IdRef, One),
4347            (IdRef, One),
4348            (IdRef, One),
4349            (IdRef, One),
4350            (IdRef, One),
4351            (IdRef, One),
4352            (IdRef, One),
4353            (IdRef, One)
4354        ]
4355    ),
4356    inst!(
4357        HitObjectRecordHitNV,
4358        [ShaderInvocationReorderNV],
4359        [],
4360        [
4361            (IdRef, One),
4362            (IdRef, One),
4363            (IdRef, One),
4364            (IdRef, One),
4365            (IdRef, One),
4366            (IdRef, One),
4367            (IdRef, One),
4368            (IdRef, One),
4369            (IdRef, One),
4370            (IdRef, One),
4371            (IdRef, One),
4372            (IdRef, One),
4373            (IdRef, One)
4374        ]
4375    ),
4376    inst!(
4377        HitObjectRecordHitWithIndexNV,
4378        [ShaderInvocationReorderNV],
4379        [],
4380        [
4381            (IdRef, One),
4382            (IdRef, One),
4383            (IdRef, One),
4384            (IdRef, One),
4385            (IdRef, One),
4386            (IdRef, One),
4387            (IdRef, One),
4388            (IdRef, One),
4389            (IdRef, One),
4390            (IdRef, One),
4391            (IdRef, One),
4392            (IdRef, One)
4393        ]
4394    ),
4395    inst!(
4396        HitObjectRecordMissNV,
4397        [ShaderInvocationReorderNV],
4398        [],
4399        [
4400            (IdRef, One),
4401            (IdRef, One),
4402            (IdRef, One),
4403            (IdRef, One),
4404            (IdRef, One),
4405            (IdRef, One)
4406        ]
4407    ),
4408    inst!(
4409        HitObjectExecuteShaderNV,
4410        [ShaderInvocationReorderNV],
4411        [],
4412        [(IdRef, One), (IdRef, One)]
4413    ),
4414    inst!(
4415        HitObjectGetCurrentTimeNV,
4416        [ShaderInvocationReorderNV],
4417        [],
4418        [(IdResultType, One), (IdResult, One), (IdRef, One)]
4419    ),
4420    inst!(
4421        HitObjectGetAttributesNV,
4422        [ShaderInvocationReorderNV],
4423        [],
4424        [(IdRef, One), (IdRef, One)]
4425    ),
4426    inst!(
4427        HitObjectGetHitKindNV,
4428        [ShaderInvocationReorderNV],
4429        [],
4430        [(IdResultType, One), (IdResult, One), (IdRef, One)]
4431    ),
4432    inst!(
4433        HitObjectGetPrimitiveIndexNV,
4434        [ShaderInvocationReorderNV],
4435        [],
4436        [(IdResultType, One), (IdResult, One), (IdRef, One)]
4437    ),
4438    inst!(
4439        HitObjectGetGeometryIndexNV,
4440        [ShaderInvocationReorderNV],
4441        [],
4442        [(IdResultType, One), (IdResult, One), (IdRef, One)]
4443    ),
4444    inst!(
4445        HitObjectGetInstanceIdNV,
4446        [ShaderInvocationReorderNV],
4447        [],
4448        [(IdResultType, One), (IdResult, One), (IdRef, One)]
4449    ),
4450    inst!(
4451        HitObjectGetInstanceCustomIndexNV,
4452        [ShaderInvocationReorderNV],
4453        [],
4454        [(IdResultType, One), (IdResult, One), (IdRef, One)]
4455    ),
4456    inst!(
4457        HitObjectGetWorldRayDirectionNV,
4458        [ShaderInvocationReorderNV],
4459        [],
4460        [(IdResultType, One), (IdResult, One), (IdRef, One)]
4461    ),
4462    inst!(
4463        HitObjectGetWorldRayOriginNV,
4464        [ShaderInvocationReorderNV],
4465        [],
4466        [(IdResultType, One), (IdResult, One), (IdRef, One)]
4467    ),
4468    inst!(
4469        HitObjectGetRayTMaxNV,
4470        [ShaderInvocationReorderNV],
4471        [],
4472        [(IdResultType, One), (IdResult, One), (IdRef, One)]
4473    ),
4474    inst!(
4475        HitObjectGetRayTMinNV,
4476        [ShaderInvocationReorderNV],
4477        [],
4478        [(IdResultType, One), (IdResult, One), (IdRef, One)]
4479    ),
4480    inst!(
4481        HitObjectIsEmptyNV,
4482        [ShaderInvocationReorderNV],
4483        [],
4484        [(IdResultType, One), (IdResult, One), (IdRef, One)]
4485    ),
4486    inst!(
4487        HitObjectIsHitNV,
4488        [ShaderInvocationReorderNV],
4489        [],
4490        [(IdResultType, One), (IdResult, One), (IdRef, One)]
4491    ),
4492    inst!(
4493        HitObjectIsMissNV,
4494        [ShaderInvocationReorderNV],
4495        [],
4496        [(IdResultType, One), (IdResult, One), (IdRef, One)]
4497    ),
4498    inst!(
4499        ReorderThreadWithHitObjectNV,
4500        [ShaderInvocationReorderNV],
4501        [],
4502        [(IdRef, One), (IdRef, ZeroOrOne), (IdRef, ZeroOrOne)]
4503    ),
4504    inst!(
4505        ReorderThreadWithHintNV,
4506        [ShaderInvocationReorderNV],
4507        [],
4508        [(IdRef, One), (IdRef, One)]
4509    ),
4510    inst!(
4511        TypeHitObjectNV,
4512        [ShaderInvocationReorderNV],
4513        [],
4514        [(IdResult, One)]
4515    ),
4516    inst!(
4517        ImageSampleFootprintNV,
4518        [ImageFootprintNV],
4519        ["SPV_NV_shader_image_footprint"],
4520        [
4521            (IdResultType, One),
4522            (IdResult, One),
4523            (IdRef, One),
4524            (IdRef, One),
4525            (IdRef, One),
4526            (IdRef, One),
4527            (ImageOperands, ZeroOrOne)
4528        ]
4529    ),
4530    inst!(
4531        TypeVectorIdEXT,
4532        [CooperativeVectorNV, LongVectorEXT],
4533        [],
4534        [(IdResult, One), (IdRef, One), (IdRef, One)]
4535    ),
4536    inst!(
4537        CooperativeVectorMatrixMulNV,
4538        [CooperativeVectorNV],
4539        [],
4540        [
4541            (IdResultType, One),
4542            (IdResult, One),
4543            (IdRef, One),
4544            (IdRef, One),
4545            (IdRef, One),
4546            (IdRef, One),
4547            (IdRef, One),
4548            (IdRef, One),
4549            (IdRef, One),
4550            (IdRef, One),
4551            (IdRef, One),
4552            (IdRef, ZeroOrOne),
4553            (CooperativeMatrixOperands, ZeroOrOne)
4554        ]
4555    ),
4556    inst!(
4557        CooperativeVectorOuterProductAccumulateNV,
4558        [CooperativeVectorTrainingNV],
4559        [],
4560        [
4561            (IdRef, One),
4562            (IdRef, One),
4563            (IdRef, One),
4564            (IdRef, One),
4565            (IdRef, One),
4566            (IdRef, One),
4567            (IdRef, ZeroOrOne)
4568        ]
4569    ),
4570    inst!(
4571        CooperativeVectorReduceSumAccumulateNV,
4572        [CooperativeVectorTrainingNV],
4573        [],
4574        [(IdRef, One), (IdRef, One), (IdRef, One)]
4575    ),
4576    inst!(
4577        CooperativeVectorMatrixMulAddNV,
4578        [CooperativeVectorNV],
4579        [],
4580        [
4581            (IdResultType, One),
4582            (IdResult, One),
4583            (IdRef, One),
4584            (IdRef, One),
4585            (IdRef, One),
4586            (IdRef, One),
4587            (IdRef, One),
4588            (IdRef, One),
4589            (IdRef, One),
4590            (IdRef, One),
4591            (IdRef, One),
4592            (IdRef, One),
4593            (IdRef, One),
4594            (IdRef, One),
4595            (IdRef, ZeroOrOne),
4596            (CooperativeMatrixOperands, ZeroOrOne)
4597        ]
4598    ),
4599    inst!(
4600        CooperativeMatrixConvertNV,
4601        [CooperativeMatrixConversionsNV],
4602        [],
4603        [(IdResultType, One), (IdResult, One), (IdRef, One)]
4604    ),
4605    inst!(
4606        EmitMeshTasksEXT,
4607        [MeshShadingEXT],
4608        [],
4609        [(IdRef, One), (IdRef, One), (IdRef, One), (IdRef, ZeroOrOne)]
4610    ),
4611    inst!(
4612        SetMeshOutputsEXT,
4613        [MeshShadingEXT],
4614        [],
4615        [(IdRef, One), (IdRef, One)]
4616    ),
4617    inst!(
4618        GroupNonUniformPartitionEXT,
4619        [GroupNonUniformPartitionedEXT],
4620        [],
4621        [(IdResultType, One), (IdResult, One), (IdRef, One)]
4622    ),
4623    inst!(
4624        WritePackedPrimitiveIndices4x8NV,
4625        [MeshShadingNV],
4626        ["SPV_NV_mesh_shader"],
4627        [(IdRef, One), (IdRef, One)]
4628    ),
4629    inst!(
4630        FetchMicroTriangleVertexPositionNV,
4631        [DisplacementMicromapNV],
4632        [],
4633        [
4634            (IdResultType, One),
4635            (IdResult, One),
4636            (IdRef, One),
4637            (IdRef, One),
4638            (IdRef, One),
4639            (IdRef, One),
4640            (IdRef, One)
4641        ]
4642    ),
4643    inst!(
4644        FetchMicroTriangleVertexBarycentricNV,
4645        [DisplacementMicromapNV],
4646        [],
4647        [
4648            (IdResultType, One),
4649            (IdResult, One),
4650            (IdRef, One),
4651            (IdRef, One),
4652            (IdRef, One),
4653            (IdRef, One),
4654            (IdRef, One)
4655        ]
4656    ),
4657    inst!(
4658        CooperativeVectorLoadNV,
4659        [CooperativeVectorNV],
4660        [],
4661        [
4662            (IdResultType, One),
4663            (IdResult, One),
4664            (IdRef, One),
4665            (IdRef, One),
4666            (MemoryAccess, ZeroOrOne)
4667        ]
4668    ),
4669    inst!(
4670        CooperativeVectorStoreNV,
4671        [CooperativeVectorNV],
4672        [],
4673        [
4674            (IdRef, One),
4675            (IdRef, One),
4676            (IdRef, One),
4677            (MemoryAccess, ZeroOrOne)
4678        ]
4679    ),
4680    inst!(
4681        HitObjectRecordFromQueryEXT,
4682        [ShaderInvocationReorderEXT],
4683        [],
4684        [(IdRef, One), (IdRef, One), (IdRef, One), (IdRef, One)]
4685    ),
4686    inst!(
4687        HitObjectRecordMissEXT,
4688        [ShaderInvocationReorderEXT],
4689        [],
4690        [
4691            (IdRef, One),
4692            (IdRef, One),
4693            (IdRef, One),
4694            (IdRef, One),
4695            (IdRef, One),
4696            (IdRef, One),
4697            (IdRef, One)
4698        ]
4699    ),
4700    inst!(
4701        HitObjectRecordMissMotionEXT,
4702        [ShaderInvocationReorderEXT, RayTracingMotionBlurNV],
4703        [],
4704        [
4705            (IdRef, One),
4706            (IdRef, One),
4707            (IdRef, One),
4708            (IdRef, One),
4709            (IdRef, One),
4710            (IdRef, One),
4711            (IdRef, One),
4712            (IdRef, One)
4713        ]
4714    ),
4715    inst!(
4716        HitObjectGetIntersectionTriangleVertexPositionsEXT,
4717        [ShaderInvocationReorderEXT],
4718        [],
4719        [(IdResultType, One), (IdResult, One), (IdRef, One)]
4720    ),
4721    inst!(
4722        HitObjectGetRayFlagsEXT,
4723        [ShaderInvocationReorderEXT],
4724        [],
4725        [(IdResultType, One), (IdResult, One), (IdRef, One)]
4726    ),
4727    inst!(
4728        HitObjectSetShaderBindingTableRecordIndexEXT,
4729        [ShaderInvocationReorderEXT],
4730        [],
4731        [(IdRef, One), (IdRef, One)]
4732    ),
4733    inst!(
4734        HitObjectReorderExecuteShaderEXT,
4735        [ShaderInvocationReorderEXT],
4736        [],
4737        [
4738            (IdRef, One),
4739            (IdRef, One),
4740            (IdRef, ZeroOrOne),
4741            (IdRef, ZeroOrOne)
4742        ]
4743    ),
4744    inst!(
4745        HitObjectTraceReorderExecuteEXT,
4746        [ShaderInvocationReorderEXT],
4747        [],
4748        [
4749            (IdRef, One),
4750            (IdRef, One),
4751            (IdRef, One),
4752            (IdRef, One),
4753            (IdRef, One),
4754            (IdRef, One),
4755            (IdRef, One),
4756            (IdRef, One),
4757            (IdRef, One),
4758            (IdRef, One),
4759            (IdRef, One),
4760            (IdRef, One),
4761            (IdRef, ZeroOrOne),
4762            (IdRef, ZeroOrOne)
4763        ]
4764    ),
4765    inst!(
4766        HitObjectTraceMotionReorderExecuteEXT,
4767        [ShaderInvocationReorderEXT, RayTracingMotionBlurNV],
4768        [],
4769        [
4770            (IdRef, One),
4771            (IdRef, One),
4772            (IdRef, One),
4773            (IdRef, One),
4774            (IdRef, One),
4775            (IdRef, One),
4776            (IdRef, One),
4777            (IdRef, One),
4778            (IdRef, One),
4779            (IdRef, One),
4780            (IdRef, One),
4781            (IdRef, One),
4782            (IdRef, One),
4783            (IdRef, ZeroOrOne),
4784            (IdRef, ZeroOrOne)
4785        ]
4786    ),
4787    inst!(
4788        TypeHitObjectEXT,
4789        [ShaderInvocationReorderEXT],
4790        [],
4791        [(IdResult, One)]
4792    ),
4793    inst!(
4794        ReorderThreadWithHintEXT,
4795        [ShaderInvocationReorderEXT],
4796        [],
4797        [(IdRef, One), (IdRef, One)]
4798    ),
4799    inst!(
4800        ReorderThreadWithHitObjectEXT,
4801        [ShaderInvocationReorderEXT],
4802        [],
4803        [(IdRef, One), (IdRef, ZeroOrOne), (IdRef, ZeroOrOne)]
4804    ),
4805    inst!(
4806        HitObjectTraceRayEXT,
4807        [ShaderInvocationReorderEXT],
4808        [],
4809        [
4810            (IdRef, One),
4811            (IdRef, One),
4812            (IdRef, One),
4813            (IdRef, One),
4814            (IdRef, One),
4815            (IdRef, One),
4816            (IdRef, One),
4817            (IdRef, One),
4818            (IdRef, One),
4819            (IdRef, One),
4820            (IdRef, One),
4821            (IdRef, One)
4822        ]
4823    ),
4824    inst!(
4825        HitObjectTraceRayMotionEXT,
4826        [ShaderInvocationReorderEXT, RayTracingMotionBlurNV],
4827        [],
4828        [
4829            (IdRef, One),
4830            (IdRef, One),
4831            (IdRef, One),
4832            (IdRef, One),
4833            (IdRef, One),
4834            (IdRef, One),
4835            (IdRef, One),
4836            (IdRef, One),
4837            (IdRef, One),
4838            (IdRef, One),
4839            (IdRef, One),
4840            (IdRef, One),
4841            (IdRef, One)
4842        ]
4843    ),
4844    inst!(
4845        HitObjectRecordEmptyEXT,
4846        [ShaderInvocationReorderEXT],
4847        [],
4848        [(IdRef, One)]
4849    ),
4850    inst!(
4851        HitObjectExecuteShaderEXT,
4852        [ShaderInvocationReorderEXT],
4853        [],
4854        [(IdRef, One), (IdRef, One)]
4855    ),
4856    inst!(
4857        HitObjectGetCurrentTimeEXT,
4858        [ShaderInvocationReorderEXT, RayTracingMotionBlurNV],
4859        [],
4860        [(IdResultType, One), (IdResult, One), (IdRef, One)]
4861    ),
4862    inst!(
4863        HitObjectGetAttributesEXT,
4864        [ShaderInvocationReorderEXT],
4865        [],
4866        [(IdRef, One), (IdRef, One)]
4867    ),
4868    inst!(
4869        HitObjectGetHitKindEXT,
4870        [ShaderInvocationReorderEXT],
4871        [],
4872        [(IdResultType, One), (IdResult, One), (IdRef, One)]
4873    ),
4874    inst!(
4875        HitObjectGetPrimitiveIndexEXT,
4876        [ShaderInvocationReorderEXT],
4877        [],
4878        [(IdResultType, One), (IdResult, One), (IdRef, One)]
4879    ),
4880    inst!(
4881        HitObjectGetGeometryIndexEXT,
4882        [ShaderInvocationReorderEXT],
4883        [],
4884        [(IdResultType, One), (IdResult, One), (IdRef, One)]
4885    ),
4886    inst!(
4887        HitObjectGetInstanceIdEXT,
4888        [ShaderInvocationReorderEXT],
4889        [],
4890        [(IdResultType, One), (IdResult, One), (IdRef, One)]
4891    ),
4892    inst!(
4893        HitObjectGetInstanceCustomIndexEXT,
4894        [ShaderInvocationReorderEXT],
4895        [],
4896        [(IdResultType, One), (IdResult, One), (IdRef, One)]
4897    ),
4898    inst!(
4899        HitObjectGetObjectRayOriginEXT,
4900        [ShaderInvocationReorderEXT],
4901        [],
4902        [(IdResultType, One), (IdResult, One), (IdRef, One)]
4903    ),
4904    inst!(
4905        HitObjectGetObjectRayDirectionEXT,
4906        [ShaderInvocationReorderEXT],
4907        [],
4908        [(IdResultType, One), (IdResult, One), (IdRef, One)]
4909    ),
4910    inst!(
4911        HitObjectGetWorldRayDirectionEXT,
4912        [ShaderInvocationReorderEXT],
4913        [],
4914        [(IdResultType, One), (IdResult, One), (IdRef, One)]
4915    ),
4916    inst!(
4917        HitObjectGetWorldRayOriginEXT,
4918        [ShaderInvocationReorderEXT],
4919        [],
4920        [(IdResultType, One), (IdResult, One), (IdRef, One)]
4921    ),
4922    inst!(
4923        HitObjectGetObjectToWorldEXT,
4924        [ShaderInvocationReorderEXT],
4925        [],
4926        [(IdResultType, One), (IdResult, One), (IdRef, One)]
4927    ),
4928    inst!(
4929        HitObjectGetWorldToObjectEXT,
4930        [ShaderInvocationReorderEXT],
4931        [],
4932        [(IdResultType, One), (IdResult, One), (IdRef, One)]
4933    ),
4934    inst!(
4935        HitObjectGetRayTMaxEXT,
4936        [ShaderInvocationReorderEXT],
4937        [],
4938        [(IdResultType, One), (IdResult, One), (IdRef, One)]
4939    ),
4940    inst!(
4941        ReportIntersectionKHR,
4942        [RayTracingNV, RayTracingKHR],
4943        ["SPV_NV_ray_tracing", "SPV_KHR_ray_tracing"],
4944        [
4945            (IdResultType, One),
4946            (IdResult, One),
4947            (IdRef, One),
4948            (IdRef, One)
4949        ]
4950    ),
4951    inst!(
4952        IgnoreIntersectionNV,
4953        [RayTracingNV],
4954        ["SPV_NV_ray_tracing"],
4955        []
4956    ),
4957    inst!(TerminateRayNV, [RayTracingNV], ["SPV_NV_ray_tracing"], []),
4958    inst!(
4959        TraceNV,
4960        [RayTracingNV],
4961        ["SPV_NV_ray_tracing"],
4962        [
4963            (IdRef, One),
4964            (IdRef, One),
4965            (IdRef, One),
4966            (IdRef, One),
4967            (IdRef, One),
4968            (IdRef, One),
4969            (IdRef, One),
4970            (IdRef, One),
4971            (IdRef, One),
4972            (IdRef, One),
4973            (IdRef, One)
4974        ]
4975    ),
4976    inst!(
4977        TraceMotionNV,
4978        [RayTracingMotionBlurNV],
4979        ["SPV_NV_ray_tracing_motion_blur"],
4980        [
4981            (IdRef, One),
4982            (IdRef, One),
4983            (IdRef, One),
4984            (IdRef, One),
4985            (IdRef, One),
4986            (IdRef, One),
4987            (IdRef, One),
4988            (IdRef, One),
4989            (IdRef, One),
4990            (IdRef, One),
4991            (IdRef, One),
4992            (IdRef, One)
4993        ]
4994    ),
4995    inst!(
4996        TraceRayMotionNV,
4997        [RayTracingMotionBlurNV],
4998        ["SPV_NV_ray_tracing_motion_blur"],
4999        [
5000            (IdRef, One),
5001            (IdRef, One),
5002            (IdRef, One),
5003            (IdRef, One),
5004            (IdRef, One),
5005            (IdRef, One),
5006            (IdRef, One),
5007            (IdRef, One),
5008            (IdRef, One),
5009            (IdRef, One),
5010            (IdRef, One),
5011            (IdRef, One)
5012        ]
5013    ),
5014    inst!(
5015        RayQueryGetIntersectionTriangleVertexPositionsKHR,
5016        [RayQueryPositionFetchKHR],
5017        [],
5018        [
5019            (IdResultType, One),
5020            (IdResult, One),
5021            (IdRef, One),
5022            (IdRef, One)
5023        ]
5024    ),
5025    inst!(
5026        TypeAccelerationStructureKHR,
5027        [
5028            RayTracingNV,
5029            RayTracingKHR,
5030            RayQueryKHR,
5031            DisplacementMicromapNV
5032        ],
5033        [
5034            "SPV_NV_ray_tracing",
5035            "SPV_KHR_ray_tracing",
5036            "SPV_KHR_ray_query",
5037            "SPV_NV_displacement_micromap"
5038        ],
5039        [(IdResult, One)]
5040    ),
5041    inst!(
5042        ExecuteCallableNV,
5043        [RayTracingNV],
5044        ["SPV_NV_ray_tracing"],
5045        [(IdRef, One), (IdRef, One)]
5046    ),
5047    inst!(
5048        RayQueryGetIntersectionClusterIdNV,
5049        [RayTracingClusterAccelerationStructureNV],
5050        [],
5051        [
5052            (IdResultType, One),
5053            (IdResult, One),
5054            (IdRef, One),
5055            (IdRef, One)
5056        ]
5057    ),
5058    inst!(
5059        HitObjectGetClusterIdNV,
5060        [RayTracingClusterAccelerationStructureNV],
5061        [],
5062        [(IdResultType, One), (IdResult, One), (IdRef, One)]
5063    ),
5064    inst!(
5065        HitObjectGetRayTMinEXT,
5066        [ShaderInvocationReorderEXT],
5067        [],
5068        [(IdResultType, One), (IdResult, One), (IdRef, One)]
5069    ),
5070    inst!(
5071        HitObjectGetShaderBindingTableRecordIndexEXT,
5072        [ShaderInvocationReorderEXT],
5073        [],
5074        [(IdResultType, One), (IdResult, One), (IdRef, One)]
5075    ),
5076    inst!(
5077        HitObjectGetShaderRecordBufferHandleEXT,
5078        [ShaderInvocationReorderEXT],
5079        [],
5080        [(IdResultType, One), (IdResult, One), (IdRef, One)]
5081    ),
5082    inst!(
5083        HitObjectIsEmptyEXT,
5084        [ShaderInvocationReorderEXT],
5085        [],
5086        [(IdResultType, One), (IdResult, One), (IdRef, One)]
5087    ),
5088    inst!(
5089        HitObjectIsHitEXT,
5090        [ShaderInvocationReorderEXT],
5091        [],
5092        [(IdResultType, One), (IdResult, One), (IdRef, One)]
5093    ),
5094    inst!(
5095        HitObjectIsMissEXT,
5096        [ShaderInvocationReorderEXT],
5097        [],
5098        [(IdResultType, One), (IdResult, One), (IdRef, One)]
5099    ),
5100    inst!(
5101        TypeCooperativeMatrixNV,
5102        [CooperativeMatrixNV],
5103        ["SPV_NV_cooperative_matrix"],
5104        [
5105            (IdResult, One),
5106            (IdRef, One),
5107            (IdScope, One),
5108            (IdRef, One),
5109            (IdRef, One)
5110        ]
5111    ),
5112    inst!(
5113        CooperativeMatrixLoadNV,
5114        [CooperativeMatrixNV],
5115        ["SPV_NV_cooperative_matrix"],
5116        [
5117            (IdResultType, One),
5118            (IdResult, One),
5119            (IdRef, One),
5120            (IdRef, One),
5121            (IdRef, One),
5122            (MemoryAccess, ZeroOrOne)
5123        ]
5124    ),
5125    inst!(
5126        CooperativeMatrixStoreNV,
5127        [CooperativeMatrixNV],
5128        ["SPV_NV_cooperative_matrix"],
5129        [
5130            (IdRef, One),
5131            (IdRef, One),
5132            (IdRef, One),
5133            (IdRef, One),
5134            (MemoryAccess, ZeroOrOne)
5135        ]
5136    ),
5137    inst!(
5138        CooperativeMatrixMulAddNV,
5139        [CooperativeMatrixNV],
5140        ["SPV_NV_cooperative_matrix"],
5141        [
5142            (IdResultType, One),
5143            (IdResult, One),
5144            (IdRef, One),
5145            (IdRef, One),
5146            (IdRef, One)
5147        ]
5148    ),
5149    inst!(
5150        CooperativeMatrixLengthNV,
5151        [CooperativeMatrixNV],
5152        ["SPV_NV_cooperative_matrix"],
5153        [(IdResultType, One), (IdResult, One), (IdRef, One)]
5154    ),
5155    inst!(
5156        BeginInvocationInterlockEXT,
5157        [
5158            FragmentShaderSampleInterlockEXT,
5159            FragmentShaderPixelInterlockEXT,
5160            FragmentShaderShadingRateInterlockEXT
5161        ],
5162        ["SPV_EXT_fragment_shader_interlock"],
5163        []
5164    ),
5165    inst!(
5166        EndInvocationInterlockEXT,
5167        [
5168            FragmentShaderSampleInterlockEXT,
5169            FragmentShaderPixelInterlockEXT,
5170            FragmentShaderShadingRateInterlockEXT
5171        ],
5172        ["SPV_EXT_fragment_shader_interlock"],
5173        []
5174    ),
5175    inst!(
5176        CooperativeMatrixReduceNV,
5177        [CooperativeMatrixReductionsNV],
5178        [],
5179        [
5180            (IdResultType, One),
5181            (IdResult, One),
5182            (IdRef, One),
5183            (CooperativeMatrixReduce, One),
5184            (IdRef, One)
5185        ]
5186    ),
5187    inst!(
5188        CooperativeMatrixLoadTensorNV,
5189        [CooperativeMatrixTensorAddressingNV],
5190        [],
5191        [
5192            (IdResultType, One),
5193            (IdResult, One),
5194            (IdRef, One),
5195            (IdRef, One),
5196            (IdRef, One),
5197            (MemoryAccess, One),
5198            (TensorAddressingOperands, One)
5199        ]
5200    ),
5201    inst!(
5202        CooperativeMatrixStoreTensorNV,
5203        [CooperativeMatrixTensorAddressingNV],
5204        [],
5205        [
5206            (IdRef, One),
5207            (IdRef, One),
5208            (IdRef, One),
5209            (MemoryAccess, One),
5210            (TensorAddressingOperands, One)
5211        ]
5212    ),
5213    inst!(
5214        CooperativeMatrixPerElementOpNV,
5215        [CooperativeMatrixPerElementOperationsNV],
5216        [],
5217        [
5218            (IdResultType, One),
5219            (IdResult, One),
5220            (IdRef, One),
5221            (IdRef, One),
5222            (IdRef, ZeroOrMore)
5223        ]
5224    ),
5225    inst!(
5226        TypeTensorLayoutNV,
5227        [TensorAddressingNV],
5228        [],
5229        [(IdResult, One), (IdRef, One), (IdRef, One)]
5230    ),
5231    inst!(
5232        TypeTensorViewNV,
5233        [TensorAddressingNV],
5234        [],
5235        [
5236            (IdResult, One),
5237            (IdRef, One),
5238            (IdRef, One),
5239            (IdRef, ZeroOrMore)
5240        ]
5241    ),
5242    inst!(
5243        CreateTensorLayoutNV,
5244        [TensorAddressingNV],
5245        [],
5246        [(IdResultType, One), (IdResult, One)]
5247    ),
5248    inst!(
5249        TensorLayoutSetDimensionNV,
5250        [TensorAddressingNV],
5251        [],
5252        [
5253            (IdResultType, One),
5254            (IdResult, One),
5255            (IdRef, One),
5256            (IdRef, ZeroOrMore)
5257        ]
5258    ),
5259    inst!(
5260        TensorLayoutSetStrideNV,
5261        [TensorAddressingNV],
5262        [],
5263        [
5264            (IdResultType, One),
5265            (IdResult, One),
5266            (IdRef, One),
5267            (IdRef, ZeroOrMore)
5268        ]
5269    ),
5270    inst!(
5271        TensorLayoutSliceNV,
5272        [TensorAddressingNV],
5273        [],
5274        [
5275            (IdResultType, One),
5276            (IdResult, One),
5277            (IdRef, One),
5278            (IdRef, ZeroOrMore)
5279        ]
5280    ),
5281    inst!(
5282        TensorLayoutSetClampValueNV,
5283        [TensorAddressingNV],
5284        [],
5285        [
5286            (IdResultType, One),
5287            (IdResult, One),
5288            (IdRef, One),
5289            (IdRef, One)
5290        ]
5291    ),
5292    inst!(
5293        CreateTensorViewNV,
5294        [TensorAddressingNV],
5295        [],
5296        [(IdResultType, One), (IdResult, One)]
5297    ),
5298    inst!(
5299        TensorViewSetDimensionNV,
5300        [TensorAddressingNV],
5301        [],
5302        [
5303            (IdResultType, One),
5304            (IdResult, One),
5305            (IdRef, One),
5306            (IdRef, ZeroOrMore)
5307        ]
5308    ),
5309    inst!(
5310        TensorViewSetStrideNV,
5311        [TensorAddressingNV],
5312        [],
5313        [
5314            (IdResultType, One),
5315            (IdResult, One),
5316            (IdRef, One),
5317            (IdRef, ZeroOrMore)
5318        ]
5319    ),
5320    inst!(DemoteToHelperInvocation, [DemoteToHelperInvocation], [], []),
5321    inst!(
5322        IsHelperInvocationEXT,
5323        [DemoteToHelperInvocation],
5324        ["SPV_EXT_demote_to_helper_invocation"],
5325        [(IdResultType, One), (IdResult, One)]
5326    ),
5327    inst!(
5328        TensorViewSetClipNV,
5329        [TensorAddressingNV],
5330        [],
5331        [
5332            (IdResultType, One),
5333            (IdResult, One),
5334            (IdRef, One),
5335            (IdRef, One),
5336            (IdRef, One),
5337            (IdRef, One),
5338            (IdRef, One)
5339        ]
5340    ),
5341    inst!(
5342        TensorLayoutSetBlockSizeNV,
5343        [TensorAddressingNV],
5344        [],
5345        [
5346            (IdResultType, One),
5347            (IdResult, One),
5348            (IdRef, One),
5349            (IdRef, ZeroOrMore)
5350        ]
5351    ),
5352    inst!(
5353        CooperativeMatrixTransposeNV,
5354        [CooperativeMatrixConversionsNV],
5355        [],
5356        [(IdResultType, One), (IdResult, One), (IdRef, One)]
5357    ),
5358    inst!(
5359        ConvertUToImageNV,
5360        [BindlessTextureNV],
5361        [],
5362        [(IdResultType, One), (IdResult, One), (IdRef, One)]
5363    ),
5364    inst!(
5365        ConvertUToSamplerNV,
5366        [BindlessTextureNV],
5367        [],
5368        [(IdResultType, One), (IdResult, One), (IdRef, One)]
5369    ),
5370    inst!(
5371        ConvertImageToUNV,
5372        [BindlessTextureNV],
5373        [],
5374        [(IdResultType, One), (IdResult, One), (IdRef, One)]
5375    ),
5376    inst!(
5377        ConvertSamplerToUNV,
5378        [BindlessTextureNV],
5379        [],
5380        [(IdResultType, One), (IdResult, One), (IdRef, One)]
5381    ),
5382    inst!(
5383        ConvertUToSampledImageNV,
5384        [BindlessTextureNV],
5385        [],
5386        [(IdResultType, One), (IdResult, One), (IdRef, One)]
5387    ),
5388    inst!(
5389        ConvertSampledImageToUNV,
5390        [BindlessTextureNV],
5391        [],
5392        [(IdResultType, One), (IdResult, One), (IdRef, One)]
5393    ),
5394    inst!(
5395        SamplerImageAddressingModeNV,
5396        [BindlessTextureNV],
5397        [],
5398        [(LiteralInteger, One)]
5399    ),
5400    inst!(
5401        RawAccessChainNV,
5402        [RawAccessChainsNV],
5403        [],
5404        [
5405            (IdResultType, One),
5406            (IdResult, One),
5407            (IdRef, One),
5408            (IdRef, One),
5409            (IdRef, One),
5410            (IdRef, One),
5411            (RawAccessChainOperands, ZeroOrOne)
5412        ]
5413    ),
5414    inst!(
5415        RayQueryGetIntersectionSpherePositionNV,
5416        [RayTracingSpheresGeometryNV],
5417        [],
5418        [
5419            (IdResultType, One),
5420            (IdResult, One),
5421            (IdRef, One),
5422            (IdRef, One)
5423        ]
5424    ),
5425    inst!(
5426        RayQueryGetIntersectionSphereRadiusNV,
5427        [RayTracingSpheresGeometryNV],
5428        [],
5429        [
5430            (IdResultType, One),
5431            (IdResult, One),
5432            (IdRef, One),
5433            (IdRef, One)
5434        ]
5435    ),
5436    inst!(
5437        RayQueryGetIntersectionLSSPositionsNV,
5438        [RayTracingLinearSweptSpheresGeometryNV],
5439        [],
5440        [
5441            (IdResultType, One),
5442            (IdResult, One),
5443            (IdRef, One),
5444            (IdRef, One)
5445        ]
5446    ),
5447    inst!(
5448        RayQueryGetIntersectionLSSRadiiNV,
5449        [RayTracingLinearSweptSpheresGeometryNV],
5450        [],
5451        [
5452            (IdResultType, One),
5453            (IdResult, One),
5454            (IdRef, One),
5455            (IdRef, One)
5456        ]
5457    ),
5458    inst!(
5459        RayQueryGetIntersectionLSSHitValueNV,
5460        [RayTracingLinearSweptSpheresGeometryNV],
5461        [],
5462        [
5463            (IdResultType, One),
5464            (IdResult, One),
5465            (IdRef, One),
5466            (IdRef, One)
5467        ]
5468    ),
5469    inst!(
5470        HitObjectGetSpherePositionNV,
5471        [RayTracingSpheresGeometryNV],
5472        [],
5473        [(IdResultType, One), (IdResult, One), (IdRef, One)]
5474    ),
5475    inst!(
5476        HitObjectGetSphereRadiusNV,
5477        [RayTracingSpheresGeometryNV],
5478        [],
5479        [(IdResultType, One), (IdResult, One), (IdRef, One)]
5480    ),
5481    inst!(
5482        HitObjectGetLSSPositionsNV,
5483        [RayTracingLinearSweptSpheresGeometryNV],
5484        [],
5485        [(IdResultType, One), (IdResult, One), (IdRef, One)]
5486    ),
5487    inst!(
5488        HitObjectGetLSSRadiiNV,
5489        [RayTracingLinearSweptSpheresGeometryNV],
5490        [],
5491        [(IdResultType, One), (IdResult, One), (IdRef, One)]
5492    ),
5493    inst!(
5494        HitObjectIsSphereHitNV,
5495        [RayTracingSpheresGeometryNV],
5496        [],
5497        [(IdResultType, One), (IdResult, One), (IdRef, One)]
5498    ),
5499    inst!(
5500        HitObjectIsLSSHitNV,
5501        [RayTracingLinearSweptSpheresGeometryNV],
5502        [],
5503        [(IdResultType, One), (IdResult, One), (IdRef, One)]
5504    ),
5505    inst!(
5506        RayQueryIsSphereHitNV,
5507        [RayTracingSpheresGeometryNV],
5508        [],
5509        [
5510            (IdResultType, One),
5511            (IdResult, One),
5512            (IdRef, One),
5513            (IdRef, One)
5514        ]
5515    ),
5516    inst!(
5517        RayQueryIsLSSHitNV,
5518        [RayTracingLinearSweptSpheresGeometryNV],
5519        [],
5520        [
5521            (IdResultType, One),
5522            (IdResult, One),
5523            (IdRef, One),
5524            (IdRef, One)
5525        ]
5526    ),
5527    inst!(
5528        SubgroupShuffleINTEL,
5529        [SubgroupShuffleINTEL],
5530        [],
5531        [
5532            (IdResultType, One),
5533            (IdResult, One),
5534            (IdRef, One),
5535            (IdRef, One)
5536        ]
5537    ),
5538    inst!(
5539        SubgroupShuffleDownINTEL,
5540        [SubgroupShuffleINTEL],
5541        [],
5542        [
5543            (IdResultType, One),
5544            (IdResult, One),
5545            (IdRef, One),
5546            (IdRef, One),
5547            (IdRef, One)
5548        ]
5549    ),
5550    inst!(
5551        SubgroupShuffleUpINTEL,
5552        [SubgroupShuffleINTEL],
5553        [],
5554        [
5555            (IdResultType, One),
5556            (IdResult, One),
5557            (IdRef, One),
5558            (IdRef, One),
5559            (IdRef, One)
5560        ]
5561    ),
5562    inst!(
5563        SubgroupShuffleXorINTEL,
5564        [SubgroupShuffleINTEL],
5565        [],
5566        [
5567            (IdResultType, One),
5568            (IdResult, One),
5569            (IdRef, One),
5570            (IdRef, One)
5571        ]
5572    ),
5573    inst!(
5574        SubgroupBlockReadINTEL,
5575        [SubgroupBufferBlockIOINTEL],
5576        [],
5577        [(IdResultType, One), (IdResult, One), (IdRef, One)]
5578    ),
5579    inst!(
5580        SubgroupBlockWriteINTEL,
5581        [SubgroupBufferBlockIOINTEL],
5582        [],
5583        [(IdRef, One), (IdRef, One)]
5584    ),
5585    inst!(
5586        SubgroupImageBlockReadINTEL,
5587        [SubgroupImageBlockIOINTEL],
5588        [],
5589        [
5590            (IdResultType, One),
5591            (IdResult, One),
5592            (IdRef, One),
5593            (IdRef, One)
5594        ]
5595    ),
5596    inst!(
5597        SubgroupImageBlockWriteINTEL,
5598        [SubgroupImageBlockIOINTEL],
5599        [],
5600        [(IdRef, One), (IdRef, One), (IdRef, One)]
5601    ),
5602    inst!(
5603        SubgroupImageMediaBlockReadINTEL,
5604        [SubgroupImageMediaBlockIOINTEL],
5605        [],
5606        [
5607            (IdResultType, One),
5608            (IdResult, One),
5609            (IdRef, One),
5610            (IdRef, One),
5611            (IdRef, One),
5612            (IdRef, One)
5613        ]
5614    ),
5615    inst!(
5616        SubgroupImageMediaBlockWriteINTEL,
5617        [SubgroupImageMediaBlockIOINTEL],
5618        [],
5619        [
5620            (IdRef, One),
5621            (IdRef, One),
5622            (IdRef, One),
5623            (IdRef, One),
5624            (IdRef, One)
5625        ]
5626    ),
5627    inst!(
5628        UCountLeadingZerosINTEL,
5629        [IntegerFunctions2INTEL],
5630        [],
5631        [(IdResultType, One), (IdResult, One), (IdRef, One)]
5632    ),
5633    inst!(
5634        UCountTrailingZerosINTEL,
5635        [IntegerFunctions2INTEL],
5636        [],
5637        [(IdResultType, One), (IdResult, One), (IdRef, One)]
5638    ),
5639    inst!(
5640        AbsISubINTEL,
5641        [IntegerFunctions2INTEL],
5642        [],
5643        [
5644            (IdResultType, One),
5645            (IdResult, One),
5646            (IdRef, One),
5647            (IdRef, One)
5648        ]
5649    ),
5650    inst!(
5651        AbsUSubINTEL,
5652        [IntegerFunctions2INTEL],
5653        [],
5654        [
5655            (IdResultType, One),
5656            (IdResult, One),
5657            (IdRef, One),
5658            (IdRef, One)
5659        ]
5660    ),
5661    inst!(
5662        IAddSatINTEL,
5663        [IntegerFunctions2INTEL],
5664        [],
5665        [
5666            (IdResultType, One),
5667            (IdResult, One),
5668            (IdRef, One),
5669            (IdRef, One)
5670        ]
5671    ),
5672    inst!(
5673        UAddSatINTEL,
5674        [IntegerFunctions2INTEL],
5675        [],
5676        [
5677            (IdResultType, One),
5678            (IdResult, One),
5679            (IdRef, One),
5680            (IdRef, One)
5681        ]
5682    ),
5683    inst!(
5684        IAverageINTEL,
5685        [IntegerFunctions2INTEL],
5686        [],
5687        [
5688            (IdResultType, One),
5689            (IdResult, One),
5690            (IdRef, One),
5691            (IdRef, One)
5692        ]
5693    ),
5694    inst!(
5695        UAverageINTEL,
5696        [IntegerFunctions2INTEL],
5697        [],
5698        [
5699            (IdResultType, One),
5700            (IdResult, One),
5701            (IdRef, One),
5702            (IdRef, One)
5703        ]
5704    ),
5705    inst!(
5706        IAverageRoundedINTEL,
5707        [IntegerFunctions2INTEL],
5708        [],
5709        [
5710            (IdResultType, One),
5711            (IdResult, One),
5712            (IdRef, One),
5713            (IdRef, One)
5714        ]
5715    ),
5716    inst!(
5717        UAverageRoundedINTEL,
5718        [IntegerFunctions2INTEL],
5719        [],
5720        [
5721            (IdResultType, One),
5722            (IdResult, One),
5723            (IdRef, One),
5724            (IdRef, One)
5725        ]
5726    ),
5727    inst!(
5728        ISubSatINTEL,
5729        [IntegerFunctions2INTEL],
5730        [],
5731        [
5732            (IdResultType, One),
5733            (IdResult, One),
5734            (IdRef, One),
5735            (IdRef, One)
5736        ]
5737    ),
5738    inst!(
5739        USubSatINTEL,
5740        [IntegerFunctions2INTEL],
5741        [],
5742        [
5743            (IdResultType, One),
5744            (IdResult, One),
5745            (IdRef, One),
5746            (IdRef, One)
5747        ]
5748    ),
5749    inst!(
5750        IMul32x16INTEL,
5751        [IntegerFunctions2INTEL],
5752        [],
5753        [
5754            (IdResultType, One),
5755            (IdResult, One),
5756            (IdRef, One),
5757            (IdRef, One)
5758        ]
5759    ),
5760    inst!(
5761        UMul32x16INTEL,
5762        [IntegerFunctions2INTEL],
5763        [],
5764        [
5765            (IdResultType, One),
5766            (IdResult, One),
5767            (IdRef, One),
5768            (IdRef, One)
5769        ]
5770    ),
5771    inst!(
5772        ConstantFunctionPointerINTEL,
5773        [FunctionPointersINTEL],
5774        ["SPV_INTEL_function_pointers"],
5775        [(IdResultType, One), (IdResult, One), (IdRef, One)]
5776    ),
5777    inst!(
5778        FunctionPointerCallINTEL,
5779        [FunctionPointersINTEL],
5780        ["SPV_INTEL_function_pointers"],
5781        [(IdResultType, One), (IdResult, One), (IdRef, ZeroOrMore)]
5782    ),
5783    inst!(
5784        AsmTargetINTEL,
5785        [AsmINTEL],
5786        [],
5787        [(IdResult, One), (LiteralString, One)]
5788    ),
5789    inst!(
5790        AsmINTEL,
5791        [AsmINTEL],
5792        [],
5793        [
5794            (IdResultType, One),
5795            (IdResult, One),
5796            (IdRef, One),
5797            (IdRef, One),
5798            (LiteralString, One),
5799            (LiteralString, One)
5800        ]
5801    ),
5802    inst!(
5803        AsmCallINTEL,
5804        [AsmINTEL],
5805        [],
5806        [
5807            (IdResultType, One),
5808            (IdResult, One),
5809            (IdRef, One),
5810            (IdRef, ZeroOrMore)
5811        ]
5812    ),
5813    inst!(
5814        AtomicFMinEXT,
5815        [
5816            AtomicFloat16MinMaxEXT,
5817            AtomicFloat32MinMaxEXT,
5818            AtomicFloat64MinMaxEXT,
5819            AtomicFloat16VectorNV
5820        ],
5821        [],
5822        [
5823            (IdResultType, One),
5824            (IdResult, One),
5825            (IdRef, One),
5826            (IdScope, One),
5827            (IdMemorySemantics, One),
5828            (IdRef, One)
5829        ]
5830    ),
5831    inst!(
5832        AtomicFMaxEXT,
5833        [
5834            AtomicFloat16MinMaxEXT,
5835            AtomicFloat32MinMaxEXT,
5836            AtomicFloat64MinMaxEXT,
5837            AtomicFloat16VectorNV
5838        ],
5839        [],
5840        [
5841            (IdResultType, One),
5842            (IdResult, One),
5843            (IdRef, One),
5844            (IdScope, One),
5845            (IdMemorySemantics, One),
5846            (IdRef, One)
5847        ]
5848    ),
5849    inst!(
5850        AssumeTrueKHR,
5851        [ExpectAssumeKHR],
5852        ["SPV_KHR_expect_assume"],
5853        [(IdRef, One)]
5854    ),
5855    inst!(
5856        ExpectKHR,
5857        [ExpectAssumeKHR],
5858        ["SPV_KHR_expect_assume"],
5859        [
5860            (IdResultType, One),
5861            (IdResult, One),
5862            (IdRef, One),
5863            (IdRef, One)
5864        ]
5865    ),
5866    inst!(
5867        DecorateString,
5868        [],
5869        [
5870            "SPV_GOOGLE_decorate_string",
5871            "SPV_GOOGLE_hlsl_functionality1"
5872        ],
5873        [(IdRef, One), (Decoration, One)]
5874    ),
5875    inst!(
5876        MemberDecorateString,
5877        [],
5878        [
5879            "SPV_GOOGLE_decorate_string",
5880            "SPV_GOOGLE_hlsl_functionality1"
5881        ],
5882        [(IdRef, One), (LiteralInteger, One), (Decoration, One)]
5883    ),
5884    inst!(
5885        VmeImageINTEL,
5886        [SubgroupAvcMotionEstimationINTEL],
5887        [],
5888        [
5889            (IdResultType, One),
5890            (IdResult, One),
5891            (IdRef, One),
5892            (IdRef, One)
5893        ]
5894    ),
5895    inst!(
5896        TypeVmeImageINTEL,
5897        [SubgroupAvcMotionEstimationINTEL],
5898        [],
5899        [(IdResult, One), (IdRef, One)]
5900    ),
5901    inst!(
5902        TypeAvcImePayloadINTEL,
5903        [SubgroupAvcMotionEstimationINTEL],
5904        [],
5905        [(IdResult, One)]
5906    ),
5907    inst!(
5908        TypeAvcRefPayloadINTEL,
5909        [SubgroupAvcMotionEstimationINTEL],
5910        [],
5911        [(IdResult, One)]
5912    ),
5913    inst!(
5914        TypeAvcSicPayloadINTEL,
5915        [SubgroupAvcMotionEstimationINTEL],
5916        [],
5917        [(IdResult, One)]
5918    ),
5919    inst!(
5920        TypeAvcMcePayloadINTEL,
5921        [SubgroupAvcMotionEstimationINTEL],
5922        [],
5923        [(IdResult, One)]
5924    ),
5925    inst!(
5926        TypeAvcMceResultINTEL,
5927        [SubgroupAvcMotionEstimationINTEL],
5928        [],
5929        [(IdResult, One)]
5930    ),
5931    inst!(
5932        TypeAvcImeResultINTEL,
5933        [SubgroupAvcMotionEstimationINTEL],
5934        [],
5935        [(IdResult, One)]
5936    ),
5937    inst!(
5938        TypeAvcImeResultSingleReferenceStreamoutINTEL,
5939        [SubgroupAvcMotionEstimationINTEL],
5940        [],
5941        [(IdResult, One)]
5942    ),
5943    inst!(
5944        TypeAvcImeResultDualReferenceStreamoutINTEL,
5945        [SubgroupAvcMotionEstimationINTEL],
5946        [],
5947        [(IdResult, One)]
5948    ),
5949    inst!(
5950        TypeAvcImeSingleReferenceStreaminINTEL,
5951        [SubgroupAvcMotionEstimationINTEL],
5952        [],
5953        [(IdResult, One)]
5954    ),
5955    inst!(
5956        TypeAvcImeDualReferenceStreaminINTEL,
5957        [SubgroupAvcMotionEstimationINTEL],
5958        [],
5959        [(IdResult, One)]
5960    ),
5961    inst!(
5962        TypeAvcRefResultINTEL,
5963        [SubgroupAvcMotionEstimationINTEL],
5964        [],
5965        [(IdResult, One)]
5966    ),
5967    inst!(
5968        TypeAvcSicResultINTEL,
5969        [SubgroupAvcMotionEstimationINTEL],
5970        [],
5971        [(IdResult, One)]
5972    ),
5973    inst!(
5974        SubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL,
5975        [SubgroupAvcMotionEstimationINTEL],
5976        [],
5977        [
5978            (IdResultType, One),
5979            (IdResult, One),
5980            (IdRef, One),
5981            (IdRef, One)
5982        ]
5983    ),
5984    inst!(
5985        SubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL,
5986        [SubgroupAvcMotionEstimationINTEL],
5987        [],
5988        [
5989            (IdResultType, One),
5990            (IdResult, One),
5991            (IdRef, One),
5992            (IdRef, One)
5993        ]
5994    ),
5995    inst!(
5996        SubgroupAvcMceGetDefaultInterShapePenaltyINTEL,
5997        [SubgroupAvcMotionEstimationINTEL],
5998        [],
5999        [
6000            (IdResultType, One),
6001            (IdResult, One),
6002            (IdRef, One),
6003            (IdRef, One)
6004        ]
6005    ),
6006    inst!(
6007        SubgroupAvcMceSetInterShapePenaltyINTEL,
6008        [SubgroupAvcMotionEstimationINTEL],
6009        [],
6010        [
6011            (IdResultType, One),
6012            (IdResult, One),
6013            (IdRef, One),
6014            (IdRef, One)
6015        ]
6016    ),
6017    inst!(
6018        SubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL,
6019        [SubgroupAvcMotionEstimationINTEL],
6020        [],
6021        [
6022            (IdResultType, One),
6023            (IdResult, One),
6024            (IdRef, One),
6025            (IdRef, One)
6026        ]
6027    ),
6028    inst!(
6029        SubgroupAvcMceSetInterDirectionPenaltyINTEL,
6030        [SubgroupAvcMotionEstimationINTEL],
6031        [],
6032        [
6033            (IdResultType, One),
6034            (IdResult, One),
6035            (IdRef, One),
6036            (IdRef, One)
6037        ]
6038    ),
6039    inst!(
6040        SubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL,
6041        [
6042            SubgroupAvcMotionEstimationINTEL,
6043            SubgroupAvcMotionEstimationIntraINTEL
6044        ],
6045        [],
6046        [
6047            (IdResultType, One),
6048            (IdResult, One),
6049            (IdRef, One),
6050            (IdRef, One)
6051        ]
6052    ),
6053    inst!(
6054        SubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL,
6055        [SubgroupAvcMotionEstimationINTEL],
6056        [],
6057        [
6058            (IdResultType, One),
6059            (IdResult, One),
6060            (IdRef, One),
6061            (IdRef, One)
6062        ]
6063    ),
6064    inst!(
6065        SubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL,
6066        [SubgroupAvcMotionEstimationINTEL],
6067        [],
6068        [(IdResultType, One), (IdResult, One)]
6069    ),
6070    inst!(
6071        SubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL,
6072        [SubgroupAvcMotionEstimationINTEL],
6073        [],
6074        [(IdResultType, One), (IdResult, One)]
6075    ),
6076    inst!(
6077        SubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL,
6078        [SubgroupAvcMotionEstimationINTEL],
6079        [],
6080        [(IdResultType, One), (IdResult, One)]
6081    ),
6082    inst!(
6083        SubgroupAvcMceSetMotionVectorCostFunctionINTEL,
6084        [SubgroupAvcMotionEstimationINTEL],
6085        [],
6086        [
6087            (IdResultType, One),
6088            (IdResult, One),
6089            (IdRef, One),
6090            (IdRef, One),
6091            (IdRef, One),
6092            (IdRef, One)
6093        ]
6094    ),
6095    inst!(
6096        SubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL,
6097        [
6098            SubgroupAvcMotionEstimationINTEL,
6099            SubgroupAvcMotionEstimationIntraINTEL
6100        ],
6101        [],
6102        [
6103            (IdResultType, One),
6104            (IdResult, One),
6105            (IdRef, One),
6106            (IdRef, One)
6107        ]
6108    ),
6109    inst!(
6110        SubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL,
6111        [
6112            SubgroupAvcMotionEstimationINTEL,
6113            SubgroupAvcMotionEstimationIntraINTEL
6114        ],
6115        [],
6116        [(IdResultType, One), (IdResult, One)]
6117    ),
6118    inst!(
6119        SubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL,
6120        [
6121            SubgroupAvcMotionEstimationINTEL,
6122            SubgroupAvcMotionEstimationChromaINTEL
6123        ],
6124        [],
6125        [(IdResultType, One), (IdResult, One)]
6126    ),
6127    inst!(
6128        SubgroupAvcMceSetAcOnlyHaarINTEL,
6129        [SubgroupAvcMotionEstimationINTEL],
6130        [],
6131        [(IdResultType, One), (IdResult, One), (IdRef, One)]
6132    ),
6133    inst!(
6134        SubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL,
6135        [SubgroupAvcMotionEstimationINTEL],
6136        [],
6137        [
6138            (IdResultType, One),
6139            (IdResult, One),
6140            (IdRef, One),
6141            (IdRef, One)
6142        ]
6143    ),
6144    inst!(
6145        SubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL,
6146        [SubgroupAvcMotionEstimationINTEL],
6147        [],
6148        [
6149            (IdResultType, One),
6150            (IdResult, One),
6151            (IdRef, One),
6152            (IdRef, One)
6153        ]
6154    ),
6155    inst!(
6156        SubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL,
6157        [SubgroupAvcMotionEstimationINTEL],
6158        [],
6159        [
6160            (IdResultType, One),
6161            (IdResult, One),
6162            (IdRef, One),
6163            (IdRef, One),
6164            (IdRef, One)
6165        ]
6166    ),
6167    inst!(
6168        SubgroupAvcMceConvertToImePayloadINTEL,
6169        [SubgroupAvcMotionEstimationINTEL],
6170        [],
6171        [(IdResultType, One), (IdResult, One), (IdRef, One)]
6172    ),
6173    inst!(
6174        SubgroupAvcMceConvertToImeResultINTEL,
6175        [SubgroupAvcMotionEstimationINTEL],
6176        [],
6177        [(IdResultType, One), (IdResult, One), (IdRef, One)]
6178    ),
6179    inst!(
6180        SubgroupAvcMceConvertToRefPayloadINTEL,
6181        [SubgroupAvcMotionEstimationINTEL],
6182        [],
6183        [(IdResultType, One), (IdResult, One), (IdRef, One)]
6184    ),
6185    inst!(
6186        SubgroupAvcMceConvertToRefResultINTEL,
6187        [SubgroupAvcMotionEstimationINTEL],
6188        [],
6189        [(IdResultType, One), (IdResult, One), (IdRef, One)]
6190    ),
6191    inst!(
6192        SubgroupAvcMceConvertToSicPayloadINTEL,
6193        [SubgroupAvcMotionEstimationINTEL],
6194        [],
6195        [(IdResultType, One), (IdResult, One), (IdRef, One)]
6196    ),
6197    inst!(
6198        SubgroupAvcMceConvertToSicResultINTEL,
6199        [SubgroupAvcMotionEstimationINTEL],
6200        [],
6201        [(IdResultType, One), (IdResult, One), (IdRef, One)]
6202    ),
6203    inst!(
6204        SubgroupAvcMceGetMotionVectorsINTEL,
6205        [SubgroupAvcMotionEstimationINTEL],
6206        [],
6207        [(IdResultType, One), (IdResult, One), (IdRef, One)]
6208    ),
6209    inst!(
6210        SubgroupAvcMceGetInterDistortionsINTEL,
6211        [SubgroupAvcMotionEstimationINTEL],
6212        [],
6213        [(IdResultType, One), (IdResult, One), (IdRef, One)]
6214    ),
6215    inst!(
6216        SubgroupAvcMceGetBestInterDistortionsINTEL,
6217        [SubgroupAvcMotionEstimationINTEL],
6218        [],
6219        [(IdResultType, One), (IdResult, One), (IdRef, One)]
6220    ),
6221    inst!(
6222        SubgroupAvcMceGetInterMajorShapeINTEL,
6223        [SubgroupAvcMotionEstimationINTEL],
6224        [],
6225        [(IdResultType, One), (IdResult, One), (IdRef, One)]
6226    ),
6227    inst!(
6228        SubgroupAvcMceGetInterMinorShapeINTEL,
6229        [SubgroupAvcMotionEstimationINTEL],
6230        [],
6231        [(IdResultType, One), (IdResult, One), (IdRef, One)]
6232    ),
6233    inst!(
6234        SubgroupAvcMceGetInterDirectionsINTEL,
6235        [SubgroupAvcMotionEstimationINTEL],
6236        [],
6237        [(IdResultType, One), (IdResult, One), (IdRef, One)]
6238    ),
6239    inst!(
6240        SubgroupAvcMceGetInterMotionVectorCountINTEL,
6241        [SubgroupAvcMotionEstimationINTEL],
6242        [],
6243        [(IdResultType, One), (IdResult, One), (IdRef, One)]
6244    ),
6245    inst!(
6246        SubgroupAvcMceGetInterReferenceIdsINTEL,
6247        [SubgroupAvcMotionEstimationINTEL],
6248        [],
6249        [(IdResultType, One), (IdResult, One), (IdRef, One)]
6250    ),
6251    inst!(
6252        SubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL,
6253        [SubgroupAvcMotionEstimationINTEL],
6254        [],
6255        [
6256            (IdResultType, One),
6257            (IdResult, One),
6258            (IdRef, One),
6259            (IdRef, One),
6260            (IdRef, One)
6261        ]
6262    ),
6263    inst!(
6264        SubgroupAvcImeInitializeINTEL,
6265        [SubgroupAvcMotionEstimationINTEL],
6266        [],
6267        [
6268            (IdResultType, One),
6269            (IdResult, One),
6270            (IdRef, One),
6271            (IdRef, One),
6272            (IdRef, One)
6273        ]
6274    ),
6275    inst!(
6276        SubgroupAvcImeSetSingleReferenceINTEL,
6277        [SubgroupAvcMotionEstimationINTEL],
6278        [],
6279        [
6280            (IdResultType, One),
6281            (IdResult, One),
6282            (IdRef, One),
6283            (IdRef, One),
6284            (IdRef, One)
6285        ]
6286    ),
6287    inst!(
6288        SubgroupAvcImeSetDualReferenceINTEL,
6289        [SubgroupAvcMotionEstimationINTEL],
6290        [],
6291        [
6292            (IdResultType, One),
6293            (IdResult, One),
6294            (IdRef, One),
6295            (IdRef, One),
6296            (IdRef, One),
6297            (IdRef, One)
6298        ]
6299    ),
6300    inst!(
6301        SubgroupAvcImeRefWindowSizeINTEL,
6302        [SubgroupAvcMotionEstimationINTEL],
6303        [],
6304        [
6305            (IdResultType, One),
6306            (IdResult, One),
6307            (IdRef, One),
6308            (IdRef, One)
6309        ]
6310    ),
6311    inst!(
6312        SubgroupAvcImeAdjustRefOffsetINTEL,
6313        [SubgroupAvcMotionEstimationINTEL],
6314        [],
6315        [
6316            (IdResultType, One),
6317            (IdResult, One),
6318            (IdRef, One),
6319            (IdRef, One),
6320            (IdRef, One),
6321            (IdRef, One)
6322        ]
6323    ),
6324    inst!(
6325        SubgroupAvcImeConvertToMcePayloadINTEL,
6326        [SubgroupAvcMotionEstimationINTEL],
6327        [],
6328        [(IdResultType, One), (IdResult, One), (IdRef, One)]
6329    ),
6330    inst!(
6331        SubgroupAvcImeSetMaxMotionVectorCountINTEL,
6332        [SubgroupAvcMotionEstimationINTEL],
6333        [],
6334        [
6335            (IdResultType, One),
6336            (IdResult, One),
6337            (IdRef, One),
6338            (IdRef, One)
6339        ]
6340    ),
6341    inst!(
6342        SubgroupAvcImeSetUnidirectionalMixDisableINTEL,
6343        [SubgroupAvcMotionEstimationINTEL],
6344        [],
6345        [(IdResultType, One), (IdResult, One), (IdRef, One)]
6346    ),
6347    inst!(
6348        SubgroupAvcImeSetEarlySearchTerminationThresholdINTEL,
6349        [SubgroupAvcMotionEstimationINTEL],
6350        [],
6351        [
6352            (IdResultType, One),
6353            (IdResult, One),
6354            (IdRef, One),
6355            (IdRef, One)
6356        ]
6357    ),
6358    inst!(
6359        SubgroupAvcImeSetWeightedSadINTEL,
6360        [SubgroupAvcMotionEstimationINTEL],
6361        [],
6362        [
6363            (IdResultType, One),
6364            (IdResult, One),
6365            (IdRef, One),
6366            (IdRef, One)
6367        ]
6368    ),
6369    inst!(
6370        SubgroupAvcImeEvaluateWithSingleReferenceINTEL,
6371        [SubgroupAvcMotionEstimationINTEL],
6372        [],
6373        [
6374            (IdResultType, One),
6375            (IdResult, One),
6376            (IdRef, One),
6377            (IdRef, One),
6378            (IdRef, One)
6379        ]
6380    ),
6381    inst!(
6382        SubgroupAvcImeEvaluateWithDualReferenceINTEL,
6383        [SubgroupAvcMotionEstimationINTEL],
6384        [],
6385        [
6386            (IdResultType, One),
6387            (IdResult, One),
6388            (IdRef, One),
6389            (IdRef, One),
6390            (IdRef, One),
6391            (IdRef, One)
6392        ]
6393    ),
6394    inst!(
6395        SubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL,
6396        [SubgroupAvcMotionEstimationINTEL],
6397        [],
6398        [
6399            (IdResultType, One),
6400            (IdResult, One),
6401            (IdRef, One),
6402            (IdRef, One),
6403            (IdRef, One),
6404            (IdRef, One)
6405        ]
6406    ),
6407    inst!(
6408        SubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL,
6409        [SubgroupAvcMotionEstimationINTEL],
6410        [],
6411        [
6412            (IdResultType, One),
6413            (IdResult, One),
6414            (IdRef, One),
6415            (IdRef, One),
6416            (IdRef, One),
6417            (IdRef, One),
6418            (IdRef, One)
6419        ]
6420    ),
6421    inst!(
6422        SubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL,
6423        [SubgroupAvcMotionEstimationINTEL],
6424        [],
6425        [
6426            (IdResultType, One),
6427            (IdResult, One),
6428            (IdRef, One),
6429            (IdRef, One),
6430            (IdRef, One)
6431        ]
6432    ),
6433    inst!(
6434        SubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL,
6435        [SubgroupAvcMotionEstimationINTEL],
6436        [],
6437        [
6438            (IdResultType, One),
6439            (IdResult, One),
6440            (IdRef, One),
6441            (IdRef, One),
6442            (IdRef, One),
6443            (IdRef, One)
6444        ]
6445    ),
6446    inst!(
6447        SubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL,
6448        [SubgroupAvcMotionEstimationINTEL],
6449        [],
6450        [
6451            (IdResultType, One),
6452            (IdResult, One),
6453            (IdRef, One),
6454            (IdRef, One),
6455            (IdRef, One),
6456            (IdRef, One)
6457        ]
6458    ),
6459    inst!(
6460        SubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL,
6461        [SubgroupAvcMotionEstimationINTEL],
6462        [],
6463        [
6464            (IdResultType, One),
6465            (IdResult, One),
6466            (IdRef, One),
6467            (IdRef, One),
6468            (IdRef, One),
6469            (IdRef, One),
6470            (IdRef, One)
6471        ]
6472    ),
6473    inst!(
6474        SubgroupAvcImeConvertToMceResultINTEL,
6475        [SubgroupAvcMotionEstimationINTEL],
6476        [],
6477        [(IdResultType, One), (IdResult, One), (IdRef, One)]
6478    ),
6479    inst!(
6480        SubgroupAvcImeGetSingleReferenceStreaminINTEL,
6481        [SubgroupAvcMotionEstimationINTEL],
6482        [],
6483        [(IdResultType, One), (IdResult, One), (IdRef, One)]
6484    ),
6485    inst!(
6486        SubgroupAvcImeGetDualReferenceStreaminINTEL,
6487        [SubgroupAvcMotionEstimationINTEL],
6488        [],
6489        [(IdResultType, One), (IdResult, One), (IdRef, One)]
6490    ),
6491    inst!(
6492        SubgroupAvcImeStripSingleReferenceStreamoutINTEL,
6493        [SubgroupAvcMotionEstimationINTEL],
6494        [],
6495        [(IdResultType, One), (IdResult, One), (IdRef, One)]
6496    ),
6497    inst!(
6498        SubgroupAvcImeStripDualReferenceStreamoutINTEL,
6499        [SubgroupAvcMotionEstimationINTEL],
6500        [],
6501        [(IdResultType, One), (IdResult, One), (IdRef, One)]
6502    ),
6503    inst!(
6504        SubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL,
6505        [SubgroupAvcMotionEstimationINTEL],
6506        [],
6507        [
6508            (IdResultType, One),
6509            (IdResult, One),
6510            (IdRef, One),
6511            (IdRef, One)
6512        ]
6513    ),
6514    inst!(
6515        SubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL,
6516        [SubgroupAvcMotionEstimationINTEL],
6517        [],
6518        [
6519            (IdResultType, One),
6520            (IdResult, One),
6521            (IdRef, One),
6522            (IdRef, One)
6523        ]
6524    ),
6525    inst!(
6526        SubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL,
6527        [SubgroupAvcMotionEstimationINTEL],
6528        [],
6529        [
6530            (IdResultType, One),
6531            (IdResult, One),
6532            (IdRef, One),
6533            (IdRef, One)
6534        ]
6535    ),
6536    inst!(
6537        SubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL,
6538        [SubgroupAvcMotionEstimationINTEL],
6539        [],
6540        [
6541            (IdResultType, One),
6542            (IdResult, One),
6543            (IdRef, One),
6544            (IdRef, One),
6545            (IdRef, One)
6546        ]
6547    ),
6548    inst!(
6549        SubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL,
6550        [SubgroupAvcMotionEstimationINTEL],
6551        [],
6552        [
6553            (IdResultType, One),
6554            (IdResult, One),
6555            (IdRef, One),
6556            (IdRef, One),
6557            (IdRef, One)
6558        ]
6559    ),
6560    inst!(
6561        SubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL,
6562        [SubgroupAvcMotionEstimationINTEL],
6563        [],
6564        [
6565            (IdResultType, One),
6566            (IdResult, One),
6567            (IdRef, One),
6568            (IdRef, One),
6569            (IdRef, One)
6570        ]
6571    ),
6572    inst!(
6573        SubgroupAvcImeGetBorderReachedINTEL,
6574        [SubgroupAvcMotionEstimationINTEL],
6575        [],
6576        [
6577            (IdResultType, One),
6578            (IdResult, One),
6579            (IdRef, One),
6580            (IdRef, One)
6581        ]
6582    ),
6583    inst!(
6584        SubgroupAvcImeGetTruncatedSearchIndicationINTEL,
6585        [SubgroupAvcMotionEstimationINTEL],
6586        [],
6587        [(IdResultType, One), (IdResult, One), (IdRef, One)]
6588    ),
6589    inst!(
6590        SubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL,
6591        [SubgroupAvcMotionEstimationINTEL],
6592        [],
6593        [(IdResultType, One), (IdResult, One), (IdRef, One)]
6594    ),
6595    inst!(
6596        SubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL,
6597        [SubgroupAvcMotionEstimationINTEL],
6598        [],
6599        [(IdResultType, One), (IdResult, One), (IdRef, One)]
6600    ),
6601    inst!(
6602        SubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL,
6603        [SubgroupAvcMotionEstimationINTEL],
6604        [],
6605        [(IdResultType, One), (IdResult, One), (IdRef, One)]
6606    ),
6607    inst!(
6608        SubgroupAvcFmeInitializeINTEL,
6609        [SubgroupAvcMotionEstimationINTEL],
6610        [],
6611        [
6612            (IdResultType, One),
6613            (IdResult, One),
6614            (IdRef, One),
6615            (IdRef, One),
6616            (IdRef, One),
6617            (IdRef, One),
6618            (IdRef, One),
6619            (IdRef, One),
6620            (IdRef, One)
6621        ]
6622    ),
6623    inst!(
6624        SubgroupAvcBmeInitializeINTEL,
6625        [SubgroupAvcMotionEstimationINTEL],
6626        [],
6627        [
6628            (IdResultType, One),
6629            (IdResult, One),
6630            (IdRef, One),
6631            (IdRef, One),
6632            (IdRef, One),
6633            (IdRef, One),
6634            (IdRef, One),
6635            (IdRef, One),
6636            (IdRef, One),
6637            (IdRef, One)
6638        ]
6639    ),
6640    inst!(
6641        SubgroupAvcRefConvertToMcePayloadINTEL,
6642        [SubgroupAvcMotionEstimationINTEL],
6643        [],
6644        [(IdResultType, One), (IdResult, One), (IdRef, One)]
6645    ),
6646    inst!(
6647        SubgroupAvcRefSetBidirectionalMixDisableINTEL,
6648        [SubgroupAvcMotionEstimationINTEL],
6649        [],
6650        [(IdResultType, One), (IdResult, One), (IdRef, One)]
6651    ),
6652    inst!(
6653        SubgroupAvcRefSetBilinearFilterEnableINTEL,
6654        [SubgroupAvcMotionEstimationINTEL],
6655        [],
6656        [(IdResultType, One), (IdResult, One), (IdRef, One)]
6657    ),
6658    inst!(
6659        SubgroupAvcRefEvaluateWithSingleReferenceINTEL,
6660        [SubgroupAvcMotionEstimationINTEL],
6661        [],
6662        [
6663            (IdResultType, One),
6664            (IdResult, One),
6665            (IdRef, One),
6666            (IdRef, One),
6667            (IdRef, One)
6668        ]
6669    ),
6670    inst!(
6671        SubgroupAvcRefEvaluateWithDualReferenceINTEL,
6672        [SubgroupAvcMotionEstimationINTEL],
6673        [],
6674        [
6675            (IdResultType, One),
6676            (IdResult, One),
6677            (IdRef, One),
6678            (IdRef, One),
6679            (IdRef, One),
6680            (IdRef, One)
6681        ]
6682    ),
6683    inst!(
6684        SubgroupAvcRefEvaluateWithMultiReferenceINTEL,
6685        [SubgroupAvcMotionEstimationINTEL],
6686        [],
6687        [
6688            (IdResultType, One),
6689            (IdResult, One),
6690            (IdRef, One),
6691            (IdRef, One),
6692            (IdRef, One)
6693        ]
6694    ),
6695    inst!(
6696        SubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL,
6697        [SubgroupAvcMotionEstimationINTEL],
6698        [],
6699        [
6700            (IdResultType, One),
6701            (IdResult, One),
6702            (IdRef, One),
6703            (IdRef, One),
6704            (IdRef, One),
6705            (IdRef, One)
6706        ]
6707    ),
6708    inst!(
6709        SubgroupAvcRefConvertToMceResultINTEL,
6710        [SubgroupAvcMotionEstimationINTEL],
6711        [],
6712        [(IdResultType, One), (IdResult, One), (IdRef, One)]
6713    ),
6714    inst!(
6715        SubgroupAvcSicInitializeINTEL,
6716        [SubgroupAvcMotionEstimationINTEL],
6717        [],
6718        [(IdResultType, One), (IdResult, One), (IdRef, One)]
6719    ),
6720    inst!(
6721        SubgroupAvcSicConfigureSkcINTEL,
6722        [SubgroupAvcMotionEstimationINTEL],
6723        [],
6724        [
6725            (IdResultType, One),
6726            (IdResult, One),
6727            (IdRef, One),
6728            (IdRef, One),
6729            (IdRef, One),
6730            (IdRef, One),
6731            (IdRef, One),
6732            (IdRef, One)
6733        ]
6734    ),
6735    inst!(
6736        SubgroupAvcSicConfigureIpeLumaINTEL,
6737        [
6738            SubgroupAvcMotionEstimationINTEL,
6739            SubgroupAvcMotionEstimationIntraINTEL
6740        ],
6741        [],
6742        [
6743            (IdResultType, One),
6744            (IdResult, One),
6745            (IdRef, One),
6746            (IdRef, One),
6747            (IdRef, One),
6748            (IdRef, One),
6749            (IdRef, One),
6750            (IdRef, One),
6751            (IdRef, One),
6752            (IdRef, One)
6753        ]
6754    ),
6755    inst!(
6756        SubgroupAvcSicConfigureIpeLumaChromaINTEL,
6757        [
6758            SubgroupAvcMotionEstimationINTEL,
6759            SubgroupAvcMotionEstimationChromaINTEL
6760        ],
6761        [],
6762        [
6763            (IdResultType, One),
6764            (IdResult, One),
6765            (IdRef, One),
6766            (IdRef, One),
6767            (IdRef, One),
6768            (IdRef, One),
6769            (IdRef, One),
6770            (IdRef, One),
6771            (IdRef, One),
6772            (IdRef, One),
6773            (IdRef, One),
6774            (IdRef, One),
6775            (IdRef, One)
6776        ]
6777    ),
6778    inst!(
6779        SubgroupAvcSicGetMotionVectorMaskINTEL,
6780        [SubgroupAvcMotionEstimationINTEL],
6781        [],
6782        [
6783            (IdResultType, One),
6784            (IdResult, One),
6785            (IdRef, One),
6786            (IdRef, One)
6787        ]
6788    ),
6789    inst!(
6790        SubgroupAvcSicConvertToMcePayloadINTEL,
6791        [SubgroupAvcMotionEstimationINTEL],
6792        [],
6793        [(IdResultType, One), (IdResult, One), (IdRef, One)]
6794    ),
6795    inst!(
6796        SubgroupAvcSicSetIntraLumaShapePenaltyINTEL,
6797        [SubgroupAvcMotionEstimationINTEL],
6798        [],
6799        [
6800            (IdResultType, One),
6801            (IdResult, One),
6802            (IdRef, One),
6803            (IdRef, One)
6804        ]
6805    ),
6806    inst!(
6807        SubgroupAvcSicSetIntraLumaModeCostFunctionINTEL,
6808        [
6809            SubgroupAvcMotionEstimationINTEL,
6810            SubgroupAvcMotionEstimationIntraINTEL
6811        ],
6812        [],
6813        [
6814            (IdResultType, One),
6815            (IdResult, One),
6816            (IdRef, One),
6817            (IdRef, One),
6818            (IdRef, One),
6819            (IdRef, One)
6820        ]
6821    ),
6822    inst!(
6823        SubgroupAvcSicSetIntraChromaModeCostFunctionINTEL,
6824        [
6825            SubgroupAvcMotionEstimationINTEL,
6826            SubgroupAvcMotionEstimationChromaINTEL
6827        ],
6828        [],
6829        [
6830            (IdResultType, One),
6831            (IdResult, One),
6832            (IdRef, One),
6833            (IdRef, One)
6834        ]
6835    ),
6836    inst!(
6837        SubgroupAvcSicSetBilinearFilterEnableINTEL,
6838        [SubgroupAvcMotionEstimationINTEL],
6839        [],
6840        [(IdResultType, One), (IdResult, One), (IdRef, One)]
6841    ),
6842    inst!(
6843        SubgroupAvcSicSetSkcForwardTransformEnableINTEL,
6844        [SubgroupAvcMotionEstimationINTEL],
6845        [],
6846        [
6847            (IdResultType, One),
6848            (IdResult, One),
6849            (IdRef, One),
6850            (IdRef, One)
6851        ]
6852    ),
6853    inst!(
6854        SubgroupAvcSicSetBlockBasedRawSkipSadINTEL,
6855        [SubgroupAvcMotionEstimationINTEL],
6856        [],
6857        [
6858            (IdResultType, One),
6859            (IdResult, One),
6860            (IdRef, One),
6861            (IdRef, One)
6862        ]
6863    ),
6864    inst!(
6865        SubgroupAvcSicEvaluateIpeINTEL,
6866        [
6867            SubgroupAvcMotionEstimationINTEL,
6868            SubgroupAvcMotionEstimationIntraINTEL
6869        ],
6870        [],
6871        [
6872            (IdResultType, One),
6873            (IdResult, One),
6874            (IdRef, One),
6875            (IdRef, One)
6876        ]
6877    ),
6878    inst!(
6879        SubgroupAvcSicEvaluateWithSingleReferenceINTEL,
6880        [SubgroupAvcMotionEstimationINTEL],
6881        [],
6882        [
6883            (IdResultType, One),
6884            (IdResult, One),
6885            (IdRef, One),
6886            (IdRef, One),
6887            (IdRef, One)
6888        ]
6889    ),
6890    inst!(
6891        SubgroupAvcSicEvaluateWithDualReferenceINTEL,
6892        [SubgroupAvcMotionEstimationINTEL],
6893        [],
6894        [
6895            (IdResultType, One),
6896            (IdResult, One),
6897            (IdRef, One),
6898            (IdRef, One),
6899            (IdRef, One),
6900            (IdRef, One)
6901        ]
6902    ),
6903    inst!(
6904        SubgroupAvcSicEvaluateWithMultiReferenceINTEL,
6905        [SubgroupAvcMotionEstimationINTEL],
6906        [],
6907        [
6908            (IdResultType, One),
6909            (IdResult, One),
6910            (IdRef, One),
6911            (IdRef, One),
6912            (IdRef, One)
6913        ]
6914    ),
6915    inst!(
6916        SubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL,
6917        [SubgroupAvcMotionEstimationINTEL],
6918        [],
6919        [
6920            (IdResultType, One),
6921            (IdResult, One),
6922            (IdRef, One),
6923            (IdRef, One),
6924            (IdRef, One),
6925            (IdRef, One)
6926        ]
6927    ),
6928    inst!(
6929        SubgroupAvcSicConvertToMceResultINTEL,
6930        [SubgroupAvcMotionEstimationINTEL],
6931        [],
6932        [(IdResultType, One), (IdResult, One), (IdRef, One)]
6933    ),
6934    inst!(
6935        SubgroupAvcSicGetIpeLumaShapeINTEL,
6936        [
6937            SubgroupAvcMotionEstimationINTEL,
6938            SubgroupAvcMotionEstimationIntraINTEL
6939        ],
6940        [],
6941        [(IdResultType, One), (IdResult, One), (IdRef, One)]
6942    ),
6943    inst!(
6944        SubgroupAvcSicGetBestIpeLumaDistortionINTEL,
6945        [
6946            SubgroupAvcMotionEstimationINTEL,
6947            SubgroupAvcMotionEstimationIntraINTEL
6948        ],
6949        [],
6950        [(IdResultType, One), (IdResult, One), (IdRef, One)]
6951    ),
6952    inst!(
6953        SubgroupAvcSicGetBestIpeChromaDistortionINTEL,
6954        [SubgroupAvcMotionEstimationINTEL],
6955        [],
6956        [(IdResultType, One), (IdResult, One), (IdRef, One)]
6957    ),
6958    inst!(
6959        SubgroupAvcSicGetPackedIpeLumaModesINTEL,
6960        [
6961            SubgroupAvcMotionEstimationINTEL,
6962            SubgroupAvcMotionEstimationIntraINTEL
6963        ],
6964        [],
6965        [(IdResultType, One), (IdResult, One), (IdRef, One)]
6966    ),
6967    inst!(
6968        SubgroupAvcSicGetIpeChromaModeINTEL,
6969        [
6970            SubgroupAvcMotionEstimationINTEL,
6971            SubgroupAvcMotionEstimationChromaINTEL
6972        ],
6973        [],
6974        [(IdResultType, One), (IdResult, One), (IdRef, One)]
6975    ),
6976    inst!(
6977        SubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL,
6978        [
6979            SubgroupAvcMotionEstimationINTEL,
6980            SubgroupAvcMotionEstimationIntraINTEL
6981        ],
6982        [],
6983        [(IdResultType, One), (IdResult, One), (IdRef, One)]
6984    ),
6985    inst!(
6986        SubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL,
6987        [
6988            SubgroupAvcMotionEstimationINTEL,
6989            SubgroupAvcMotionEstimationIntraINTEL
6990        ],
6991        [],
6992        [(IdResultType, One), (IdResult, One), (IdRef, One)]
6993    ),
6994    inst!(
6995        SubgroupAvcSicGetInterRawSadsINTEL,
6996        [SubgroupAvcMotionEstimationINTEL],
6997        [],
6998        [(IdResultType, One), (IdResult, One), (IdRef, One)]
6999    ),
7000    inst!(
7001        VariableLengthArrayINTEL,
7002        [VariableLengthArrayINTEL],
7003        [],
7004        [(IdResultType, One), (IdResult, One), (IdRef, One)]
7005    ),
7006    inst!(
7007        SaveMemoryINTEL,
7008        [VariableLengthArrayINTEL],
7009        [],
7010        [(IdResultType, One), (IdResult, One)]
7011    ),
7012    inst!(
7013        RestoreMemoryINTEL,
7014        [VariableLengthArrayINTEL],
7015        [],
7016        [(IdRef, One)]
7017    ),
7018    inst!(
7019        ArbitraryFloatSinCosPiALTERA,
7020        [ArbitraryPrecisionFloatingPointALTERA],
7021        [],
7022        [
7023            (IdResultType, One),
7024            (IdResult, One),
7025            (IdRef, One),
7026            (LiteralInteger, One),
7027            (LiteralInteger, One),
7028            (LiteralInteger, One),
7029            (LiteralInteger, One),
7030            (LiteralInteger, One)
7031        ]
7032    ),
7033    inst!(
7034        ArbitraryFloatCastALTERA,
7035        [ArbitraryPrecisionFloatingPointALTERA],
7036        [],
7037        [
7038            (IdResultType, One),
7039            (IdResult, One),
7040            (IdRef, One),
7041            (LiteralInteger, One),
7042            (LiteralInteger, One),
7043            (LiteralInteger, One),
7044            (LiteralInteger, One),
7045            (LiteralInteger, One)
7046        ]
7047    ),
7048    inst!(
7049        ArbitraryFloatCastFromIntALTERA,
7050        [ArbitraryPrecisionFloatingPointALTERA],
7051        [],
7052        [
7053            (IdResultType, One),
7054            (IdResult, One),
7055            (IdRef, One),
7056            (LiteralInteger, One),
7057            (LiteralInteger, One),
7058            (LiteralInteger, One),
7059            (LiteralInteger, One),
7060            (LiteralInteger, One)
7061        ]
7062    ),
7063    inst!(
7064        ArbitraryFloatCastToIntALTERA,
7065        [ArbitraryPrecisionFloatingPointALTERA],
7066        [],
7067        [
7068            (IdResultType, One),
7069            (IdResult, One),
7070            (IdRef, One),
7071            (LiteralInteger, One),
7072            (LiteralInteger, One),
7073            (LiteralInteger, One),
7074            (LiteralInteger, One),
7075            (LiteralInteger, One)
7076        ]
7077    ),
7078    inst!(
7079        ArbitraryFloatAddALTERA,
7080        [ArbitraryPrecisionFloatingPointALTERA],
7081        [],
7082        [
7083            (IdResultType, One),
7084            (IdResult, One),
7085            (IdRef, One),
7086            (LiteralInteger, One),
7087            (IdRef, One),
7088            (LiteralInteger, One),
7089            (LiteralInteger, One),
7090            (LiteralInteger, One),
7091            (LiteralInteger, One),
7092            (LiteralInteger, One)
7093        ]
7094    ),
7095    inst!(
7096        ArbitraryFloatSubALTERA,
7097        [ArbitraryPrecisionFloatingPointALTERA],
7098        [],
7099        [
7100            (IdResultType, One),
7101            (IdResult, One),
7102            (IdRef, One),
7103            (LiteralInteger, One),
7104            (IdRef, One),
7105            (LiteralInteger, One),
7106            (LiteralInteger, One),
7107            (LiteralInteger, One),
7108            (LiteralInteger, One),
7109            (LiteralInteger, One)
7110        ]
7111    ),
7112    inst!(
7113        ArbitraryFloatMulALTERA,
7114        [ArbitraryPrecisionFloatingPointALTERA],
7115        [],
7116        [
7117            (IdResultType, One),
7118            (IdResult, One),
7119            (IdRef, One),
7120            (LiteralInteger, One),
7121            (IdRef, One),
7122            (LiteralInteger, One),
7123            (LiteralInteger, One),
7124            (LiteralInteger, One),
7125            (LiteralInteger, One),
7126            (LiteralInteger, One)
7127        ]
7128    ),
7129    inst!(
7130        ArbitraryFloatDivALTERA,
7131        [ArbitraryPrecisionFloatingPointALTERA],
7132        [],
7133        [
7134            (IdResultType, One),
7135            (IdResult, One),
7136            (IdRef, One),
7137            (LiteralInteger, One),
7138            (IdRef, One),
7139            (LiteralInteger, One),
7140            (LiteralInteger, One),
7141            (LiteralInteger, One),
7142            (LiteralInteger, One),
7143            (LiteralInteger, One)
7144        ]
7145    ),
7146    inst!(
7147        ArbitraryFloatGTALTERA,
7148        [ArbitraryPrecisionFloatingPointALTERA],
7149        [],
7150        [
7151            (IdResultType, One),
7152            (IdResult, One),
7153            (IdRef, One),
7154            (LiteralInteger, One),
7155            (IdRef, One),
7156            (LiteralInteger, One)
7157        ]
7158    ),
7159    inst!(
7160        ArbitraryFloatGEALTERA,
7161        [ArbitraryPrecisionFloatingPointALTERA],
7162        [],
7163        [
7164            (IdResultType, One),
7165            (IdResult, One),
7166            (IdRef, One),
7167            (LiteralInteger, One),
7168            (IdRef, One),
7169            (LiteralInteger, One)
7170        ]
7171    ),
7172    inst!(
7173        ArbitraryFloatLTALTERA,
7174        [ArbitraryPrecisionFloatingPointALTERA],
7175        [],
7176        [
7177            (IdResultType, One),
7178            (IdResult, One),
7179            (IdRef, One),
7180            (LiteralInteger, One),
7181            (IdRef, One),
7182            (LiteralInteger, One)
7183        ]
7184    ),
7185    inst!(
7186        ArbitraryFloatLEALTERA,
7187        [ArbitraryPrecisionFloatingPointALTERA],
7188        [],
7189        [
7190            (IdResultType, One),
7191            (IdResult, One),
7192            (IdRef, One),
7193            (LiteralInteger, One),
7194            (IdRef, One),
7195            (LiteralInteger, One)
7196        ]
7197    ),
7198    inst!(
7199        ArbitraryFloatEQALTERA,
7200        [ArbitraryPrecisionFloatingPointALTERA],
7201        [],
7202        [
7203            (IdResultType, One),
7204            (IdResult, One),
7205            (IdRef, One),
7206            (LiteralInteger, One),
7207            (IdRef, One),
7208            (LiteralInteger, One)
7209        ]
7210    ),
7211    inst!(
7212        ArbitraryFloatRecipALTERA,
7213        [ArbitraryPrecisionFloatingPointALTERA],
7214        [],
7215        [
7216            (IdResultType, One),
7217            (IdResult, One),
7218            (IdRef, One),
7219            (LiteralInteger, One),
7220            (LiteralInteger, One),
7221            (LiteralInteger, One),
7222            (LiteralInteger, One),
7223            (LiteralInteger, One)
7224        ]
7225    ),
7226    inst!(
7227        ArbitraryFloatRSqrtALTERA,
7228        [ArbitraryPrecisionFloatingPointALTERA],
7229        [],
7230        [
7231            (IdResultType, One),
7232            (IdResult, One),
7233            (IdRef, One),
7234            (LiteralInteger, One),
7235            (LiteralInteger, One),
7236            (LiteralInteger, One),
7237            (LiteralInteger, One),
7238            (LiteralInteger, One)
7239        ]
7240    ),
7241    inst!(
7242        ArbitraryFloatCbrtALTERA,
7243        [ArbitraryPrecisionFloatingPointALTERA],
7244        [],
7245        [
7246            (IdResultType, One),
7247            (IdResult, One),
7248            (IdRef, One),
7249            (LiteralInteger, One),
7250            (LiteralInteger, One),
7251            (LiteralInteger, One),
7252            (LiteralInteger, One),
7253            (LiteralInteger, One)
7254        ]
7255    ),
7256    inst!(
7257        ArbitraryFloatHypotALTERA,
7258        [ArbitraryPrecisionFloatingPointALTERA],
7259        [],
7260        [
7261            (IdResultType, One),
7262            (IdResult, One),
7263            (IdRef, One),
7264            (LiteralInteger, One),
7265            (IdRef, One),
7266            (LiteralInteger, One),
7267            (LiteralInteger, One),
7268            (LiteralInteger, One),
7269            (LiteralInteger, One),
7270            (LiteralInteger, One)
7271        ]
7272    ),
7273    inst!(
7274        ArbitraryFloatSqrtALTERA,
7275        [ArbitraryPrecisionFloatingPointALTERA],
7276        [],
7277        [
7278            (IdResultType, One),
7279            (IdResult, One),
7280            (IdRef, One),
7281            (LiteralInteger, One),
7282            (LiteralInteger, One),
7283            (LiteralInteger, One),
7284            (LiteralInteger, One),
7285            (LiteralInteger, One)
7286        ]
7287    ),
7288    inst!(
7289        ArbitraryFloatLogINTEL,
7290        [ArbitraryPrecisionFloatingPointALTERA],
7291        [],
7292        [
7293            (IdResultType, One),
7294            (IdResult, One),
7295            (IdRef, One),
7296            (LiteralInteger, One),
7297            (LiteralInteger, One),
7298            (LiteralInteger, One),
7299            (LiteralInteger, One),
7300            (LiteralInteger, One)
7301        ]
7302    ),
7303    inst!(
7304        ArbitraryFloatLog2INTEL,
7305        [ArbitraryPrecisionFloatingPointALTERA],
7306        [],
7307        [
7308            (IdResultType, One),
7309            (IdResult, One),
7310            (IdRef, One),
7311            (LiteralInteger, One),
7312            (LiteralInteger, One),
7313            (LiteralInteger, One),
7314            (LiteralInteger, One),
7315            (LiteralInteger, One)
7316        ]
7317    ),
7318    inst!(
7319        ArbitraryFloatLog10INTEL,
7320        [ArbitraryPrecisionFloatingPointALTERA],
7321        [],
7322        [
7323            (IdResultType, One),
7324            (IdResult, One),
7325            (IdRef, One),
7326            (LiteralInteger, One),
7327            (LiteralInteger, One),
7328            (LiteralInteger, One),
7329            (LiteralInteger, One),
7330            (LiteralInteger, One)
7331        ]
7332    ),
7333    inst!(
7334        ArbitraryFloatLog1pINTEL,
7335        [ArbitraryPrecisionFloatingPointALTERA],
7336        [],
7337        [
7338            (IdResultType, One),
7339            (IdResult, One),
7340            (IdRef, One),
7341            (LiteralInteger, One),
7342            (LiteralInteger, One),
7343            (LiteralInteger, One),
7344            (LiteralInteger, One),
7345            (LiteralInteger, One)
7346        ]
7347    ),
7348    inst!(
7349        ArbitraryFloatExpINTEL,
7350        [ArbitraryPrecisionFloatingPointALTERA],
7351        [],
7352        [
7353            (IdResultType, One),
7354            (IdResult, One),
7355            (IdRef, One),
7356            (LiteralInteger, One),
7357            (LiteralInteger, One),
7358            (LiteralInteger, One),
7359            (LiteralInteger, One),
7360            (LiteralInteger, One)
7361        ]
7362    ),
7363    inst!(
7364        ArbitraryFloatExp2INTEL,
7365        [ArbitraryPrecisionFloatingPointALTERA],
7366        [],
7367        [
7368            (IdResultType, One),
7369            (IdResult, One),
7370            (IdRef, One),
7371            (LiteralInteger, One),
7372            (LiteralInteger, One),
7373            (LiteralInteger, One),
7374            (LiteralInteger, One),
7375            (LiteralInteger, One)
7376        ]
7377    ),
7378    inst!(
7379        ArbitraryFloatExp10INTEL,
7380        [ArbitraryPrecisionFloatingPointALTERA],
7381        [],
7382        [
7383            (IdResultType, One),
7384            (IdResult, One),
7385            (IdRef, One),
7386            (LiteralInteger, One),
7387            (LiteralInteger, One),
7388            (LiteralInteger, One),
7389            (LiteralInteger, One),
7390            (LiteralInteger, One)
7391        ]
7392    ),
7393    inst!(
7394        ArbitraryFloatExpm1INTEL,
7395        [ArbitraryPrecisionFloatingPointALTERA],
7396        [],
7397        [
7398            (IdResultType, One),
7399            (IdResult, One),
7400            (IdRef, One),
7401            (LiteralInteger, One),
7402            (LiteralInteger, One),
7403            (LiteralInteger, One),
7404            (LiteralInteger, One),
7405            (LiteralInteger, One)
7406        ]
7407    ),
7408    inst!(
7409        ArbitraryFloatSinINTEL,
7410        [ArbitraryPrecisionFloatingPointALTERA],
7411        [],
7412        [
7413            (IdResultType, One),
7414            (IdResult, One),
7415            (IdRef, One),
7416            (LiteralInteger, One),
7417            (LiteralInteger, One),
7418            (LiteralInteger, One),
7419            (LiteralInteger, One),
7420            (LiteralInteger, One)
7421        ]
7422    ),
7423    inst!(
7424        ArbitraryFloatCosINTEL,
7425        [ArbitraryPrecisionFloatingPointALTERA],
7426        [],
7427        [
7428            (IdResultType, One),
7429            (IdResult, One),
7430            (IdRef, One),
7431            (LiteralInteger, One),
7432            (LiteralInteger, One),
7433            (LiteralInteger, One),
7434            (LiteralInteger, One),
7435            (LiteralInteger, One)
7436        ]
7437    ),
7438    inst!(
7439        ArbitraryFloatSinCosINTEL,
7440        [ArbitraryPrecisionFloatingPointALTERA],
7441        [],
7442        [
7443            (IdResultType, One),
7444            (IdResult, One),
7445            (IdRef, One),
7446            (LiteralInteger, One),
7447            (LiteralInteger, One),
7448            (LiteralInteger, One),
7449            (LiteralInteger, One),
7450            (LiteralInteger, One)
7451        ]
7452    ),
7453    inst!(
7454        ArbitraryFloatSinPiINTEL,
7455        [ArbitraryPrecisionFloatingPointALTERA],
7456        [],
7457        [
7458            (IdResultType, One),
7459            (IdResult, One),
7460            (IdRef, One),
7461            (LiteralInteger, One),
7462            (LiteralInteger, One),
7463            (LiteralInteger, One),
7464            (LiteralInteger, One),
7465            (LiteralInteger, One)
7466        ]
7467    ),
7468    inst!(
7469        ArbitraryFloatCosPiINTEL,
7470        [ArbitraryPrecisionFloatingPointALTERA],
7471        [],
7472        [
7473            (IdResultType, One),
7474            (IdResult, One),
7475            (IdRef, One),
7476            (LiteralInteger, One),
7477            (LiteralInteger, One),
7478            (LiteralInteger, One),
7479            (LiteralInteger, One),
7480            (LiteralInteger, One)
7481        ]
7482    ),
7483    inst!(
7484        ArbitraryFloatASinINTEL,
7485        [ArbitraryPrecisionFloatingPointALTERA],
7486        [],
7487        [
7488            (IdResultType, One),
7489            (IdResult, One),
7490            (IdRef, One),
7491            (LiteralInteger, One),
7492            (LiteralInteger, One),
7493            (LiteralInteger, One),
7494            (LiteralInteger, One),
7495            (LiteralInteger, One)
7496        ]
7497    ),
7498    inst!(
7499        ArbitraryFloatASinPiINTEL,
7500        [ArbitraryPrecisionFloatingPointALTERA],
7501        [],
7502        [
7503            (IdResultType, One),
7504            (IdResult, One),
7505            (IdRef, One),
7506            (LiteralInteger, One),
7507            (LiteralInteger, One),
7508            (LiteralInteger, One),
7509            (LiteralInteger, One),
7510            (LiteralInteger, One)
7511        ]
7512    ),
7513    inst!(
7514        ArbitraryFloatACosINTEL,
7515        [ArbitraryPrecisionFloatingPointALTERA],
7516        [],
7517        [
7518            (IdResultType, One),
7519            (IdResult, One),
7520            (IdRef, One),
7521            (LiteralInteger, One),
7522            (LiteralInteger, One),
7523            (LiteralInteger, One),
7524            (LiteralInteger, One),
7525            (LiteralInteger, One)
7526        ]
7527    ),
7528    inst!(
7529        ArbitraryFloatACosPiINTEL,
7530        [ArbitraryPrecisionFloatingPointALTERA],
7531        [],
7532        [
7533            (IdResultType, One),
7534            (IdResult, One),
7535            (IdRef, One),
7536            (LiteralInteger, One),
7537            (LiteralInteger, One),
7538            (LiteralInteger, One),
7539            (LiteralInteger, One),
7540            (LiteralInteger, One)
7541        ]
7542    ),
7543    inst!(
7544        ArbitraryFloatATanINTEL,
7545        [ArbitraryPrecisionFloatingPointALTERA],
7546        [],
7547        [
7548            (IdResultType, One),
7549            (IdResult, One),
7550            (IdRef, One),
7551            (LiteralInteger, One),
7552            (LiteralInteger, One),
7553            (LiteralInteger, One),
7554            (LiteralInteger, One),
7555            (LiteralInteger, One)
7556        ]
7557    ),
7558    inst!(
7559        ArbitraryFloatATanPiINTEL,
7560        [ArbitraryPrecisionFloatingPointALTERA],
7561        [],
7562        [
7563            (IdResultType, One),
7564            (IdResult, One),
7565            (IdRef, One),
7566            (LiteralInteger, One),
7567            (LiteralInteger, One),
7568            (LiteralInteger, One),
7569            (LiteralInteger, One),
7570            (LiteralInteger, One)
7571        ]
7572    ),
7573    inst!(
7574        ArbitraryFloatATan2INTEL,
7575        [ArbitraryPrecisionFloatingPointALTERA],
7576        [],
7577        [
7578            (IdResultType, One),
7579            (IdResult, One),
7580            (IdRef, One),
7581            (LiteralInteger, One),
7582            (IdRef, One),
7583            (LiteralInteger, One),
7584            (LiteralInteger, One),
7585            (LiteralInteger, One),
7586            (LiteralInteger, One),
7587            (LiteralInteger, One)
7588        ]
7589    ),
7590    inst!(
7591        ArbitraryFloatPowINTEL,
7592        [ArbitraryPrecisionFloatingPointALTERA],
7593        [],
7594        [
7595            (IdResultType, One),
7596            (IdResult, One),
7597            (IdRef, One),
7598            (LiteralInteger, One),
7599            (IdRef, One),
7600            (LiteralInteger, One),
7601            (LiteralInteger, One),
7602            (LiteralInteger, One),
7603            (LiteralInteger, One),
7604            (LiteralInteger, One)
7605        ]
7606    ),
7607    inst!(
7608        ArbitraryFloatPowRINTEL,
7609        [ArbitraryPrecisionFloatingPointALTERA],
7610        [],
7611        [
7612            (IdResultType, One),
7613            (IdResult, One),
7614            (IdRef, One),
7615            (LiteralInteger, One),
7616            (IdRef, One),
7617            (LiteralInteger, One),
7618            (LiteralInteger, One),
7619            (LiteralInteger, One),
7620            (LiteralInteger, One),
7621            (LiteralInteger, One)
7622        ]
7623    ),
7624    inst!(
7625        ArbitraryFloatPowNINTEL,
7626        [ArbitraryPrecisionFloatingPointALTERA],
7627        [],
7628        [
7629            (IdResultType, One),
7630            (IdResult, One),
7631            (IdRef, One),
7632            (LiteralInteger, One),
7633            (IdRef, One),
7634            (LiteralInteger, One),
7635            (LiteralInteger, One),
7636            (LiteralInteger, One),
7637            (LiteralInteger, One),
7638            (LiteralInteger, One)
7639        ]
7640    ),
7641    inst!(
7642        LoopControlINTEL,
7643        [UnstructuredLoopControlsINTEL],
7644        ["SPV_INTEL_unstructured_loop_controls"],
7645        [(LiteralInteger, ZeroOrMore)]
7646    ),
7647    inst!(
7648        AliasDomainDeclINTEL,
7649        [MemoryAccessAliasingINTEL],
7650        ["SPV_INTEL_memory_access_aliasing"],
7651        [(IdResult, One), (IdRef, ZeroOrOne)]
7652    ),
7653    inst!(
7654        AliasScopeDeclINTEL,
7655        [MemoryAccessAliasingINTEL],
7656        ["SPV_INTEL_memory_access_aliasing"],
7657        [(IdResult, One), (IdRef, One), (IdRef, ZeroOrOne)]
7658    ),
7659    inst!(
7660        AliasScopeListDeclINTEL,
7661        [MemoryAccessAliasingINTEL],
7662        ["SPV_INTEL_memory_access_aliasing"],
7663        [(IdResult, One), (IdRef, ZeroOrMore)]
7664    ),
7665    inst!(
7666        FixedSqrtALTERA,
7667        [ArbitraryPrecisionFixedPointALTERA],
7668        [],
7669        [
7670            (IdResultType, One),
7671            (IdResult, One),
7672            (IdRef, One),
7673            (LiteralInteger, One),
7674            (LiteralInteger, One),
7675            (LiteralInteger, One),
7676            (LiteralInteger, One),
7677            (LiteralInteger, One)
7678        ]
7679    ),
7680    inst!(
7681        FixedRecipALTERA,
7682        [ArbitraryPrecisionFixedPointALTERA],
7683        [],
7684        [
7685            (IdResultType, One),
7686            (IdResult, One),
7687            (IdRef, One),
7688            (LiteralInteger, One),
7689            (LiteralInteger, One),
7690            (LiteralInteger, One),
7691            (LiteralInteger, One),
7692            (LiteralInteger, One)
7693        ]
7694    ),
7695    inst!(
7696        FixedRsqrtALTERA,
7697        [ArbitraryPrecisionFixedPointALTERA],
7698        [],
7699        [
7700            (IdResultType, One),
7701            (IdResult, One),
7702            (IdRef, One),
7703            (LiteralInteger, One),
7704            (LiteralInteger, One),
7705            (LiteralInteger, One),
7706            (LiteralInteger, One),
7707            (LiteralInteger, One)
7708        ]
7709    ),
7710    inst!(
7711        FixedSinALTERA,
7712        [ArbitraryPrecisionFixedPointALTERA],
7713        [],
7714        [
7715            (IdResultType, One),
7716            (IdResult, One),
7717            (IdRef, One),
7718            (LiteralInteger, One),
7719            (LiteralInteger, One),
7720            (LiteralInteger, One),
7721            (LiteralInteger, One),
7722            (LiteralInteger, One)
7723        ]
7724    ),
7725    inst!(
7726        FixedCosALTERA,
7727        [ArbitraryPrecisionFixedPointALTERA],
7728        [],
7729        [
7730            (IdResultType, One),
7731            (IdResult, One),
7732            (IdRef, One),
7733            (LiteralInteger, One),
7734            (LiteralInteger, One),
7735            (LiteralInteger, One),
7736            (LiteralInteger, One),
7737            (LiteralInteger, One)
7738        ]
7739    ),
7740    inst!(
7741        FixedSinCosALTERA,
7742        [ArbitraryPrecisionFixedPointALTERA],
7743        [],
7744        [
7745            (IdResultType, One),
7746            (IdResult, One),
7747            (IdRef, One),
7748            (LiteralInteger, One),
7749            (LiteralInteger, One),
7750            (LiteralInteger, One),
7751            (LiteralInteger, One),
7752            (LiteralInteger, One)
7753        ]
7754    ),
7755    inst!(
7756        FixedSinPiALTERA,
7757        [ArbitraryPrecisionFixedPointALTERA],
7758        [],
7759        [
7760            (IdResultType, One),
7761            (IdResult, One),
7762            (IdRef, One),
7763            (LiteralInteger, One),
7764            (LiteralInteger, One),
7765            (LiteralInteger, One),
7766            (LiteralInteger, One),
7767            (LiteralInteger, One)
7768        ]
7769    ),
7770    inst!(
7771        FixedCosPiALTERA,
7772        [ArbitraryPrecisionFixedPointALTERA],
7773        [],
7774        [
7775            (IdResultType, One),
7776            (IdResult, One),
7777            (IdRef, One),
7778            (LiteralInteger, One),
7779            (LiteralInteger, One),
7780            (LiteralInteger, One),
7781            (LiteralInteger, One),
7782            (LiteralInteger, One)
7783        ]
7784    ),
7785    inst!(
7786        FixedSinCosPiALTERA,
7787        [ArbitraryPrecisionFixedPointALTERA],
7788        [],
7789        [
7790            (IdResultType, One),
7791            (IdResult, One),
7792            (IdRef, One),
7793            (LiteralInteger, One),
7794            (LiteralInteger, One),
7795            (LiteralInteger, One),
7796            (LiteralInteger, One),
7797            (LiteralInteger, One)
7798        ]
7799    ),
7800    inst!(
7801        FixedLogALTERA,
7802        [ArbitraryPrecisionFixedPointALTERA],
7803        [],
7804        [
7805            (IdResultType, One),
7806            (IdResult, One),
7807            (IdRef, One),
7808            (LiteralInteger, One),
7809            (LiteralInteger, One),
7810            (LiteralInteger, One),
7811            (LiteralInteger, One),
7812            (LiteralInteger, One)
7813        ]
7814    ),
7815    inst!(
7816        FixedExpALTERA,
7817        [ArbitraryPrecisionFixedPointALTERA],
7818        [],
7819        [
7820            (IdResultType, One),
7821            (IdResult, One),
7822            (IdRef, One),
7823            (LiteralInteger, One),
7824            (LiteralInteger, One),
7825            (LiteralInteger, One),
7826            (LiteralInteger, One),
7827            (LiteralInteger, One)
7828        ]
7829    ),
7830    inst!(
7831        PtrCastToCrossWorkgroupALTERA,
7832        [USMStorageClassesALTERA],
7833        [],
7834        [(IdResultType, One), (IdResult, One), (IdRef, One)]
7835    ),
7836    inst!(
7837        CrossWorkgroupCastToPtrALTERA,
7838        [USMStorageClassesALTERA],
7839        [],
7840        [(IdResultType, One), (IdResult, One), (IdRef, One)]
7841    ),
7842    inst!(
7843        ReadPipeBlockingALTERA,
7844        [BlockingPipesALTERA],
7845        [],
7846        [
7847            (IdResultType, One),
7848            (IdResult, One),
7849            (IdRef, One),
7850            (IdRef, One)
7851        ]
7852    ),
7853    inst!(
7854        WritePipeBlockingALTERA,
7855        [BlockingPipesALTERA],
7856        [],
7857        [
7858            (IdResultType, One),
7859            (IdResult, One),
7860            (IdRef, One),
7861            (IdRef, One)
7862        ]
7863    ),
7864    inst!(
7865        FPGARegALTERA,
7866        [FPGARegALTERA],
7867        [],
7868        [(IdResultType, One), (IdResult, One), (IdRef, One)]
7869    ),
7870    inst!(
7871        RayQueryGetRayTMinKHR,
7872        [RayQueryKHR],
7873        ["SPV_KHR_ray_query"],
7874        [(IdResultType, One), (IdResult, One), (IdRef, One)]
7875    ),
7876    inst!(
7877        RayQueryGetRayFlagsKHR,
7878        [RayQueryKHR],
7879        ["SPV_KHR_ray_query"],
7880        [(IdResultType, One), (IdResult, One), (IdRef, One)]
7881    ),
7882    inst!(
7883        RayQueryGetIntersectionTKHR,
7884        [RayQueryKHR],
7885        ["SPV_KHR_ray_query"],
7886        [
7887            (IdResultType, One),
7888            (IdResult, One),
7889            (IdRef, One),
7890            (IdRef, One)
7891        ]
7892    ),
7893    inst!(
7894        RayQueryGetIntersectionInstanceCustomIndexKHR,
7895        [RayQueryKHR],
7896        ["SPV_KHR_ray_query"],
7897        [
7898            (IdResultType, One),
7899            (IdResult, One),
7900            (IdRef, One),
7901            (IdRef, One)
7902        ]
7903    ),
7904    inst!(
7905        RayQueryGetIntersectionInstanceIdKHR,
7906        [RayQueryKHR],
7907        ["SPV_KHR_ray_query"],
7908        [
7909            (IdResultType, One),
7910            (IdResult, One),
7911            (IdRef, One),
7912            (IdRef, One)
7913        ]
7914    ),
7915    inst!(
7916        RayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR,
7917        [RayQueryKHR],
7918        ["SPV_KHR_ray_query"],
7919        [
7920            (IdResultType, One),
7921            (IdResult, One),
7922            (IdRef, One),
7923            (IdRef, One)
7924        ]
7925    ),
7926    inst!(
7927        RayQueryGetIntersectionGeometryIndexKHR,
7928        [RayQueryKHR],
7929        ["SPV_KHR_ray_query"],
7930        [
7931            (IdResultType, One),
7932            (IdResult, One),
7933            (IdRef, One),
7934            (IdRef, One)
7935        ]
7936    ),
7937    inst!(
7938        RayQueryGetIntersectionPrimitiveIndexKHR,
7939        [RayQueryKHR],
7940        ["SPV_KHR_ray_query"],
7941        [
7942            (IdResultType, One),
7943            (IdResult, One),
7944            (IdRef, One),
7945            (IdRef, One)
7946        ]
7947    ),
7948    inst!(
7949        RayQueryGetIntersectionBarycentricsKHR,
7950        [RayQueryKHR],
7951        ["SPV_KHR_ray_query"],
7952        [
7953            (IdResultType, One),
7954            (IdResult, One),
7955            (IdRef, One),
7956            (IdRef, One)
7957        ]
7958    ),
7959    inst!(
7960        RayQueryGetIntersectionFrontFaceKHR,
7961        [RayQueryKHR],
7962        ["SPV_KHR_ray_query"],
7963        [
7964            (IdResultType, One),
7965            (IdResult, One),
7966            (IdRef, One),
7967            (IdRef, One)
7968        ]
7969    ),
7970    inst!(
7971        RayQueryGetIntersectionCandidateAABBOpaqueKHR,
7972        [RayQueryKHR],
7973        ["SPV_KHR_ray_query"],
7974        [(IdResultType, One), (IdResult, One), (IdRef, One)]
7975    ),
7976    inst!(
7977        RayQueryGetIntersectionObjectRayDirectionKHR,
7978        [RayQueryKHR],
7979        ["SPV_KHR_ray_query"],
7980        [
7981            (IdResultType, One),
7982            (IdResult, One),
7983            (IdRef, One),
7984            (IdRef, One)
7985        ]
7986    ),
7987    inst!(
7988        RayQueryGetIntersectionObjectRayOriginKHR,
7989        [RayQueryKHR],
7990        ["SPV_KHR_ray_query"],
7991        [
7992            (IdResultType, One),
7993            (IdResult, One),
7994            (IdRef, One),
7995            (IdRef, One)
7996        ]
7997    ),
7998    inst!(
7999        RayQueryGetWorldRayDirectionKHR,
8000        [RayQueryKHR],
8001        ["SPV_KHR_ray_query"],
8002        [(IdResultType, One), (IdResult, One), (IdRef, One)]
8003    ),
8004    inst!(
8005        RayQueryGetWorldRayOriginKHR,
8006        [RayQueryKHR],
8007        ["SPV_KHR_ray_query"],
8008        [(IdResultType, One), (IdResult, One), (IdRef, One)]
8009    ),
8010    inst!(
8011        RayQueryGetIntersectionObjectToWorldKHR,
8012        [RayQueryKHR],
8013        ["SPV_KHR_ray_query"],
8014        [
8015            (IdResultType, One),
8016            (IdResult, One),
8017            (IdRef, One),
8018            (IdRef, One)
8019        ]
8020    ),
8021    inst!(
8022        RayQueryGetIntersectionWorldToObjectKHR,
8023        [RayQueryKHR],
8024        ["SPV_KHR_ray_query"],
8025        [
8026            (IdResultType, One),
8027            (IdResult, One),
8028            (IdRef, One),
8029            (IdRef, One)
8030        ]
8031    ),
8032    inst!(
8033        AtomicFAddEXT,
8034        [
8035            AtomicFloat16AddEXT,
8036            AtomicFloat32AddEXT,
8037            AtomicFloat64AddEXT,
8038            AtomicFloat16VectorNV
8039        ],
8040        ["SPV_EXT_shader_atomic_float_add"],
8041        [
8042            (IdResultType, One),
8043            (IdResult, One),
8044            (IdRef, One),
8045            (IdScope, One),
8046            (IdMemorySemantics, One),
8047            (IdRef, One)
8048        ]
8049    ),
8050    inst!(
8051        TypeBufferSurfaceINTEL,
8052        [VectorComputeINTEL],
8053        [],
8054        [(IdResult, One), (AccessQualifier, One)]
8055    ),
8056    inst!(
8057        TypeStructContinuedINTEL,
8058        [LongCompositesINTEL],
8059        [],
8060        [(IdRef, ZeroOrMore)]
8061    ),
8062    inst!(
8063        ConstantCompositeContinuedINTEL,
8064        [LongCompositesINTEL],
8065        [],
8066        [(IdRef, ZeroOrMore)]
8067    ),
8068    inst!(
8069        SpecConstantCompositeContinuedINTEL,
8070        [LongCompositesINTEL],
8071        [],
8072        [(IdRef, ZeroOrMore)]
8073    ),
8074    inst!(
8075        CompositeConstructContinuedINTEL,
8076        [LongCompositesINTEL],
8077        [],
8078        [(IdResultType, One), (IdResult, One), (IdRef, ZeroOrMore)]
8079    ),
8080    inst!(
8081        ConvertFToBF16INTEL,
8082        [BFloat16ConversionINTEL],
8083        [],
8084        [(IdResultType, One), (IdResult, One), (IdRef, One)]
8085    ),
8086    inst!(
8087        ConvertBF16ToFINTEL,
8088        [BFloat16ConversionINTEL],
8089        [],
8090        [(IdResultType, One), (IdResult, One), (IdRef, One)]
8091    ),
8092    inst!(
8093        ControlBarrierArriveINTEL,
8094        [SplitBarrierINTEL],
8095        [],
8096        [(IdScope, One), (IdScope, One), (IdMemorySemantics, One)]
8097    ),
8098    inst!(
8099        ControlBarrierWaitINTEL,
8100        [SplitBarrierINTEL],
8101        [],
8102        [(IdScope, One), (IdScope, One), (IdMemorySemantics, One)]
8103    ),
8104    inst!(
8105        ArithmeticFenceEXT,
8106        [ArithmeticFenceEXT],
8107        [],
8108        [(IdResultType, One), (IdResult, One), (IdRef, One)]
8109    ),
8110    inst!(
8111        TaskSequenceCreateALTERA,
8112        [TaskSequenceALTERA],
8113        [],
8114        [
8115            (IdResultType, One),
8116            (IdResult, One),
8117            (IdRef, One),
8118            (LiteralInteger, One),
8119            (LiteralInteger, One),
8120            (LiteralInteger, One),
8121            (LiteralInteger, One)
8122        ]
8123    ),
8124    inst!(
8125        TaskSequenceAsyncALTERA,
8126        [TaskSequenceALTERA],
8127        [],
8128        [(IdRef, One), (IdRef, ZeroOrMore)]
8129    ),
8130    inst!(
8131        TaskSequenceGetALTERA,
8132        [TaskSequenceALTERA],
8133        [],
8134        [(IdResultType, One), (IdResult, One), (IdRef, One)]
8135    ),
8136    inst!(
8137        TaskSequenceReleaseALTERA,
8138        [TaskSequenceALTERA],
8139        [],
8140        [(IdRef, One)]
8141    ),
8142    inst!(
8143        TypeTaskSequenceALTERA,
8144        [TaskSequenceALTERA],
8145        [],
8146        [(IdResult, One)]
8147    ),
8148    inst!(
8149        SubgroupBlockPrefetchINTEL,
8150        [SubgroupBufferPrefetchINTEL],
8151        [],
8152        [(IdRef, One), (IdRef, One), (MemoryAccess, ZeroOrOne)]
8153    ),
8154    inst!(
8155        Subgroup2DBlockLoadINTEL,
8156        [Subgroup2DBlockIOINTEL],
8157        [],
8158        [
8159            (IdRef, One),
8160            (IdRef, One),
8161            (IdRef, One),
8162            (IdRef, One),
8163            (IdRef, One),
8164            (IdRef, One),
8165            (IdRef, One),
8166            (IdRef, One),
8167            (IdRef, One),
8168            (IdRef, One)
8169        ]
8170    ),
8171    inst!(
8172        Subgroup2DBlockLoadTransformINTEL,
8173        [Subgroup2DBlockTransformINTEL],
8174        [],
8175        [
8176            (IdRef, One),
8177            (IdRef, One),
8178            (IdRef, One),
8179            (IdRef, One),
8180            (IdRef, One),
8181            (IdRef, One),
8182            (IdRef, One),
8183            (IdRef, One),
8184            (IdRef, One),
8185            (IdRef, One)
8186        ]
8187    ),
8188    inst!(
8189        Subgroup2DBlockLoadTransposeINTEL,
8190        [Subgroup2DBlockTransposeINTEL],
8191        [],
8192        [
8193            (IdRef, One),
8194            (IdRef, One),
8195            (IdRef, One),
8196            (IdRef, One),
8197            (IdRef, One),
8198            (IdRef, One),
8199            (IdRef, One),
8200            (IdRef, One),
8201            (IdRef, One),
8202            (IdRef, One)
8203        ]
8204    ),
8205    inst!(
8206        Subgroup2DBlockPrefetchINTEL,
8207        [Subgroup2DBlockIOINTEL],
8208        [],
8209        [
8210            (IdRef, One),
8211            (IdRef, One),
8212            (IdRef, One),
8213            (IdRef, One),
8214            (IdRef, One),
8215            (IdRef, One),
8216            (IdRef, One),
8217            (IdRef, One),
8218            (IdRef, One)
8219        ]
8220    ),
8221    inst!(
8222        Subgroup2DBlockStoreINTEL,
8223        [Subgroup2DBlockIOINTEL],
8224        [],
8225        [
8226            (IdRef, One),
8227            (IdRef, One),
8228            (IdRef, One),
8229            (IdRef, One),
8230            (IdRef, One),
8231            (IdRef, One),
8232            (IdRef, One),
8233            (IdRef, One),
8234            (IdRef, One),
8235            (IdRef, One)
8236        ]
8237    ),
8238    inst!(
8239        SubgroupMatrixMultiplyAccumulateINTEL,
8240        [SubgroupMatrixMultiplyAccumulateINTEL],
8241        [],
8242        [
8243            (IdResultType, One),
8244            (IdResult, One),
8245            (IdRef, One),
8246            (IdRef, One),
8247            (IdRef, One),
8248            (IdRef, One),
8249            (MatrixMultiplyAccumulateOperands, ZeroOrOne)
8250        ]
8251    ),
8252    inst!(
8253        BitwiseFunctionINTEL,
8254        [TernaryBitwiseFunctionINTEL],
8255        [],
8256        [
8257            (IdResultType, One),
8258            (IdResult, One),
8259            (IdRef, One),
8260            (IdRef, One),
8261            (IdRef, One),
8262            (IdRef, One)
8263        ]
8264    ),
8265    inst!(
8266        UntypedVariableLengthArrayINTEL,
8267        [UntypedVariableLengthArrayINTEL],
8268        [],
8269        [
8270            (IdResultType, One),
8271            (IdResult, One),
8272            (IdRef, One),
8273            (IdRef, One)
8274        ]
8275    ),
8276    inst!(
8277        ConditionalExtensionINTEL,
8278        [SpecConditionalINTEL],
8279        [],
8280        [(IdRef, One), (LiteralString, One)]
8281    ),
8282    inst!(
8283        ConditionalEntryPointINTEL,
8284        [SpecConditionalINTEL],
8285        [],
8286        [
8287            (IdRef, One),
8288            (ExecutionModel, One),
8289            (IdRef, One),
8290            (LiteralString, One),
8291            (IdRef, ZeroOrMore)
8292        ]
8293    ),
8294    inst!(
8295        ConditionalCapabilityINTEL,
8296        [SpecConditionalINTEL],
8297        [],
8298        [(IdRef, One), (Capability, One)]
8299    ),
8300    inst!(
8301        SpecConstantTargetINTEL,
8302        [FunctionVariantsINTEL],
8303        [],
8304        [
8305            (IdResultType, One),
8306            (IdResult, One),
8307            (LiteralInteger, One),
8308            (LiteralInteger, ZeroOrMore)
8309        ]
8310    ),
8311    inst!(
8312        SpecConstantArchitectureINTEL,
8313        [FunctionVariantsINTEL],
8314        [],
8315        [
8316            (IdResultType, One),
8317            (IdResult, One),
8318            (LiteralInteger, One),
8319            (LiteralInteger, One),
8320            (LiteralInteger, One),
8321            (LiteralInteger, One)
8322        ]
8323    ),
8324    inst!(
8325        SpecConstantCapabilitiesINTEL,
8326        [FunctionVariantsINTEL],
8327        [],
8328        [
8329            (IdResultType, One),
8330            (IdResult, One),
8331            (Capability, ZeroOrMore)
8332        ]
8333    ),
8334    inst!(
8335        ConditionalCopyObjectINTEL,
8336        [SpecConditionalINTEL],
8337        [],
8338        [(IdResultType, One), (IdResult, One), (IdRef, ZeroOrMore)]
8339    ),
8340    inst!(
8341        GroupIMulKHR,
8342        [GroupUniformArithmeticKHR],
8343        [],
8344        [
8345            (IdResultType, One),
8346            (IdResult, One),
8347            (IdScope, One),
8348            (GroupOperation, One),
8349            (IdRef, One)
8350        ]
8351    ),
8352    inst!(
8353        GroupFMulKHR,
8354        [GroupUniformArithmeticKHR],
8355        [],
8356        [
8357            (IdResultType, One),
8358            (IdResult, One),
8359            (IdScope, One),
8360            (GroupOperation, One),
8361            (IdRef, One)
8362        ]
8363    ),
8364    inst!(
8365        GroupBitwiseAndKHR,
8366        [GroupUniformArithmeticKHR],
8367        [],
8368        [
8369            (IdResultType, One),
8370            (IdResult, One),
8371            (IdScope, One),
8372            (GroupOperation, One),
8373            (IdRef, One)
8374        ]
8375    ),
8376    inst!(
8377        GroupBitwiseOrKHR,
8378        [GroupUniformArithmeticKHR],
8379        [],
8380        [
8381            (IdResultType, One),
8382            (IdResult, One),
8383            (IdScope, One),
8384            (GroupOperation, One),
8385            (IdRef, One)
8386        ]
8387    ),
8388    inst!(
8389        GroupBitwiseXorKHR,
8390        [GroupUniformArithmeticKHR],
8391        [],
8392        [
8393            (IdResultType, One),
8394            (IdResult, One),
8395            (IdScope, One),
8396            (GroupOperation, One),
8397            (IdRef, One)
8398        ]
8399    ),
8400    inst!(
8401        GroupLogicalAndKHR,
8402        [GroupUniformArithmeticKHR],
8403        [],
8404        [
8405            (IdResultType, One),
8406            (IdResult, One),
8407            (IdScope, One),
8408            (GroupOperation, One),
8409            (IdRef, One)
8410        ]
8411    ),
8412    inst!(
8413        GroupLogicalOrKHR,
8414        [GroupUniformArithmeticKHR],
8415        [],
8416        [
8417            (IdResultType, One),
8418            (IdResult, One),
8419            (IdScope, One),
8420            (GroupOperation, One),
8421            (IdRef, One)
8422        ]
8423    ),
8424    inst!(
8425        GroupLogicalXorKHR,
8426        [GroupUniformArithmeticKHR],
8427        [],
8428        [
8429            (IdResultType, One),
8430            (IdResult, One),
8431            (IdScope, One),
8432            (GroupOperation, One),
8433            (IdRef, One)
8434        ]
8435    ),
8436    inst!(
8437        RoundFToTF32INTEL,
8438        [TensorFloat32RoundingINTEL],
8439        [],
8440        [(IdResultType, One), (IdResult, One), (IdRef, One)]
8441    ),
8442    inst!(
8443        MaskedGatherINTEL,
8444        [MaskedGatherScatterINTEL],
8445        [],
8446        [
8447            (IdResultType, One),
8448            (IdResult, One),
8449            (IdRef, One),
8450            (LiteralInteger, One),
8451            (IdRef, One),
8452            (IdRef, One)
8453        ]
8454    ),
8455    inst!(
8456        MaskedScatterINTEL,
8457        [MaskedGatherScatterINTEL],
8458        [],
8459        [
8460            (IdRef, One),
8461            (IdRef, One),
8462            (LiteralInteger, One),
8463            (IdRef, One)
8464        ]
8465    ),
8466    inst!(
8467        ConvertHandleToImageINTEL,
8468        [BindlessImagesINTEL],
8469        [],
8470        [(IdResultType, One), (IdResult, One), (IdRef, One)]
8471    ),
8472    inst!(
8473        ConvertHandleToSamplerINTEL,
8474        [BindlessImagesINTEL],
8475        [],
8476        [(IdResultType, One), (IdResult, One), (IdRef, One)]
8477    ),
8478    inst!(
8479        ConvertHandleToSampledImageINTEL,
8480        [BindlessImagesINTEL],
8481        [],
8482        [(IdResultType, One), (IdResult, One), (IdRef, One)]
8483    ),
8484];
8485pub static INSTRUCTION_TABLE: InstructionTable<spirv::Op> =
8486    InstructionTable(INSTRUCTIONS, std::marker::PhantomData);