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