Skip to main content

rspirv/sr/
autogen_ops.rs

1// AUTOMATICALLY GENERATED from the SPIR-V JSON grammar:
2//   external/spirv.core.grammar.json.
3// DO NOT MODIFY!
4
5use crate::sr::{module::Jump, storage::Token, Constant, Type};
6#[derive(Clone, Debug, Eq, PartialEq)]
7pub enum Branch {
8    Phi {
9        variable_parent: Vec<(spirv::Word, spirv::Word)>,
10    },
11    LoopMerge {
12        merge_block: spirv::Word,
13        continue_target: spirv::Word,
14        loop_control: spirv::LoopControl,
15    },
16    SelectionMerge {
17        merge_block: spirv::Word,
18        selection_control: spirv::SelectionControl,
19    },
20    Label,
21    Branch {
22        target_label: spirv::Word,
23    },
24    BranchConditional {
25        condition: spirv::Word,
26        true_label: spirv::Word,
27        false_label: spirv::Word,
28        branch_weights: Vec<u32>,
29    },
30    Switch {
31        selector: spirv::Word,
32        default: spirv::Word,
33        target: Vec<(u32, Jump)>,
34    },
35    Kill,
36    Return,
37    ReturnValue {
38        value: spirv::Word,
39    },
40    Unreachable,
41    LifetimeStart {
42        pointer: spirv::Word,
43        size: u32,
44    },
45    LifetimeStop {
46        pointer: spirv::Word,
47        size: u32,
48    },
49    TerminateInvocation,
50    DemoteToHelperInvocation,
51}
52#[derive(Clone, Debug, Eq, PartialEq)]
53#[allow(clippy::upper_case_acronyms)]
54pub enum Terminator {
55    Branch(Branch),
56    IgnoreIntersectionKHR,
57    TerminateRayKHR,
58    EmitMeshTasksEXT {
59        group_count_x: spirv::Word,
60        group_count_y: spirv::Word,
61        group_count_z: spirv::Word,
62        payload: Option<spirv::Word>,
63    },
64}
65#[derive(Clone, Debug, Eq, PartialEq)]
66#[allow(clippy::upper_case_acronyms)]
67pub enum Op {
68    Nop,
69    Undef,
70    SourceContinued {
71        continued_source: String,
72    },
73    Source {
74        source_language: spirv::SourceLanguage,
75        version: u32,
76        file: Option<spirv::Word>,
77        source: Option<String>,
78    },
79    SourceExtension {
80        extension: String,
81    },
82    Name {
83        target: spirv::Word,
84        name: String,
85    },
86    MemberName {
87        ty: Token<Type>,
88        member: u32,
89        name: String,
90    },
91    String {
92        string: String,
93    },
94    Line {
95        file: spirv::Word,
96        line: u32,
97        column: u32,
98    },
99    Variable {
100        storage_class: spirv::StorageClass,
101        initializer: Option<spirv::Word>,
102    },
103    ImageTexelPointer {
104        image: spirv::Word,
105        coordinate: spirv::Word,
106        sample: spirv::Word,
107    },
108    Load {
109        pointer: spirv::Word,
110        memory_access: Option<spirv::MemoryAccess>,
111    },
112    Store {
113        pointer: spirv::Word,
114        object: spirv::Word,
115        memory_access: Option<spirv::MemoryAccess>,
116    },
117    CopyMemory {
118        target: spirv::Word,
119        source: spirv::Word,
120        memory_access: Option<spirv::MemoryAccess>,
121        memory_access_2: Option<spirv::MemoryAccess>,
122    },
123    CopyMemorySized {
124        target: spirv::Word,
125        source: spirv::Word,
126        size: spirv::Word,
127        memory_access: Option<spirv::MemoryAccess>,
128        memory_access_2: Option<spirv::MemoryAccess>,
129    },
130    AccessChain {
131        base: spirv::Word,
132        indexes: Vec<spirv::Word>,
133    },
134    InBoundsAccessChain {
135        base: spirv::Word,
136        indexes: Vec<spirv::Word>,
137    },
138    PtrAccessChain {
139        base: spirv::Word,
140        element: spirv::Word,
141        indexes: Vec<spirv::Word>,
142    },
143    ArrayLength {
144        structure: spirv::Word,
145        array_member: u32,
146    },
147    GenericPtrMemSemantics {
148        pointer: spirv::Word,
149    },
150    InBoundsPtrAccessChain {
151        base: spirv::Word,
152        element: spirv::Word,
153        indexes: Vec<spirv::Word>,
154    },
155    Decorate {
156        target: spirv::Word,
157        decoration: spirv::Decoration,
158    },
159    MemberDecorate {
160        structure_type: Token<Type>,
161        member: u32,
162        decoration: spirv::Decoration,
163    },
164    DecorationGroup,
165    GroupDecorate {
166        decoration_group: spirv::Word,
167        targets: Vec<spirv::Word>,
168    },
169    GroupMemberDecorate {
170        decoration_group: spirv::Word,
171        targets: Vec<(Jump, u32)>,
172    },
173    VectorExtractDynamic {
174        vector: spirv::Word,
175        index: spirv::Word,
176    },
177    VectorInsertDynamic {
178        vector: spirv::Word,
179        component: spirv::Word,
180        index: spirv::Word,
181    },
182    VectorShuffle {
183        vector_1: spirv::Word,
184        vector_2: spirv::Word,
185        components: Vec<u32>,
186    },
187    CompositeConstruct {
188        constituents: Vec<spirv::Word>,
189    },
190    CompositeExtract {
191        composite: spirv::Word,
192        indexes: Vec<u32>,
193    },
194    CompositeInsert {
195        object: spirv::Word,
196        composite: spirv::Word,
197        indexes: Vec<u32>,
198    },
199    CopyObject {
200        operand: spirv::Word,
201    },
202    Transpose {
203        matrix: spirv::Word,
204    },
205    SampledImage {
206        image: spirv::Word,
207        sampler: spirv::Word,
208    },
209    ImageSampleImplicitLod {
210        sampled_image: spirv::Word,
211        coordinate: spirv::Word,
212        image_operands: Option<(spirv::ImageOperands, Vec<spirv::Word>)>,
213    },
214    ImageSampleExplicitLod {
215        sampled_image: spirv::Word,
216        coordinate: spirv::Word,
217        image_operands: (spirv::ImageOperands, Vec<spirv::Word>),
218    },
219    ImageSampleDrefImplicitLod {
220        sampled_image: spirv::Word,
221        coordinate: spirv::Word,
222        d_ref: spirv::Word,
223        image_operands: Option<(spirv::ImageOperands, Vec<spirv::Word>)>,
224    },
225    ImageSampleDrefExplicitLod {
226        sampled_image: spirv::Word,
227        coordinate: spirv::Word,
228        d_ref: spirv::Word,
229        image_operands: (spirv::ImageOperands, Vec<spirv::Word>),
230    },
231    ImageSampleProjImplicitLod {
232        sampled_image: spirv::Word,
233        coordinate: spirv::Word,
234        image_operands: Option<(spirv::ImageOperands, Vec<spirv::Word>)>,
235    },
236    ImageSampleProjExplicitLod {
237        sampled_image: spirv::Word,
238        coordinate: spirv::Word,
239        image_operands: (spirv::ImageOperands, Vec<spirv::Word>),
240    },
241    ImageSampleProjDrefImplicitLod {
242        sampled_image: spirv::Word,
243        coordinate: spirv::Word,
244        d_ref: spirv::Word,
245        image_operands: Option<(spirv::ImageOperands, Vec<spirv::Word>)>,
246    },
247    ImageSampleProjDrefExplicitLod {
248        sampled_image: spirv::Word,
249        coordinate: spirv::Word,
250        d_ref: spirv::Word,
251        image_operands: (spirv::ImageOperands, Vec<spirv::Word>),
252    },
253    ImageFetch {
254        image: spirv::Word,
255        coordinate: spirv::Word,
256        image_operands: Option<(spirv::ImageOperands, Vec<spirv::Word>)>,
257    },
258    ImageGather {
259        sampled_image: spirv::Word,
260        coordinate: spirv::Word,
261        component: spirv::Word,
262        image_operands: Option<(spirv::ImageOperands, Vec<spirv::Word>)>,
263    },
264    ImageDrefGather {
265        sampled_image: spirv::Word,
266        coordinate: spirv::Word,
267        d_ref: spirv::Word,
268        image_operands: Option<(spirv::ImageOperands, Vec<spirv::Word>)>,
269    },
270    ImageRead {
271        image: spirv::Word,
272        coordinate: spirv::Word,
273        image_operands: Option<(spirv::ImageOperands, Vec<spirv::Word>)>,
274    },
275    ImageWrite {
276        image: spirv::Word,
277        coordinate: spirv::Word,
278        texel: spirv::Word,
279        image_operands: Option<(spirv::ImageOperands, Vec<spirv::Word>)>,
280    },
281    Image {
282        sampled_image: spirv::Word,
283    },
284    ImageQueryFormat {
285        image: spirv::Word,
286    },
287    ImageQueryOrder {
288        image: spirv::Word,
289    },
290    ImageQuerySizeLod {
291        image: spirv::Word,
292        level_of_detail: spirv::Word,
293    },
294    ImageQuerySize {
295        image: spirv::Word,
296    },
297    ImageQueryLod {
298        sampled_image: spirv::Word,
299        coordinate: spirv::Word,
300    },
301    ImageQueryLevels {
302        image: spirv::Word,
303    },
304    ImageQuerySamples {
305        image: spirv::Word,
306    },
307    ConvertFToU {
308        float_value: spirv::Word,
309    },
310    ConvertFToS {
311        float_value: spirv::Word,
312    },
313    ConvertSToF {
314        signed_value: spirv::Word,
315    },
316    ConvertUToF {
317        unsigned_value: spirv::Word,
318    },
319    UConvert {
320        unsigned_value: spirv::Word,
321    },
322    SConvert {
323        signed_value: spirv::Word,
324    },
325    FConvert {
326        float_value: spirv::Word,
327    },
328    QuantizeToF16 {
329        value: spirv::Word,
330    },
331    ConvertPtrToU {
332        pointer: spirv::Word,
333    },
334    SatConvertSToU {
335        signed_value: spirv::Word,
336    },
337    SatConvertUToS {
338        unsigned_value: spirv::Word,
339    },
340    ConvertUToPtr {
341        integer_value: spirv::Word,
342    },
343    PtrCastToGeneric {
344        pointer: spirv::Word,
345    },
346    GenericCastToPtr {
347        pointer: spirv::Word,
348    },
349    GenericCastToPtrExplicit {
350        pointer: spirv::Word,
351        storage: spirv::StorageClass,
352    },
353    Bitcast {
354        operand: spirv::Word,
355    },
356    SNegate {
357        operand: spirv::Word,
358    },
359    FNegate {
360        operand: spirv::Word,
361    },
362    IAdd {
363        operand_1: spirv::Word,
364        operand_2: spirv::Word,
365    },
366    FAdd {
367        operand_1: spirv::Word,
368        operand_2: spirv::Word,
369    },
370    ISub {
371        operand_1: spirv::Word,
372        operand_2: spirv::Word,
373    },
374    FSub {
375        operand_1: spirv::Word,
376        operand_2: spirv::Word,
377    },
378    IMul {
379        operand_1: spirv::Word,
380        operand_2: spirv::Word,
381    },
382    FMul {
383        operand_1: spirv::Word,
384        operand_2: spirv::Word,
385    },
386    UDiv {
387        operand_1: spirv::Word,
388        operand_2: spirv::Word,
389    },
390    SDiv {
391        operand_1: spirv::Word,
392        operand_2: spirv::Word,
393    },
394    FDiv {
395        operand_1: spirv::Word,
396        operand_2: spirv::Word,
397    },
398    UMod {
399        operand_1: spirv::Word,
400        operand_2: spirv::Word,
401    },
402    SRem {
403        operand_1: spirv::Word,
404        operand_2: spirv::Word,
405    },
406    SMod {
407        operand_1: spirv::Word,
408        operand_2: spirv::Word,
409    },
410    FRem {
411        operand_1: spirv::Word,
412        operand_2: spirv::Word,
413    },
414    FMod {
415        operand_1: spirv::Word,
416        operand_2: spirv::Word,
417    },
418    VectorTimesScalar {
419        vector: spirv::Word,
420        scalar: spirv::Word,
421    },
422    MatrixTimesScalar {
423        matrix: spirv::Word,
424        scalar: spirv::Word,
425    },
426    VectorTimesMatrix {
427        vector: spirv::Word,
428        matrix: spirv::Word,
429    },
430    MatrixTimesVector {
431        matrix: spirv::Word,
432        vector: spirv::Word,
433    },
434    MatrixTimesMatrix {
435        left_matrix: spirv::Word,
436        right_matrix: spirv::Word,
437    },
438    OuterProduct {
439        vector_1: spirv::Word,
440        vector_2: spirv::Word,
441    },
442    Dot {
443        vector_1: spirv::Word,
444        vector_2: spirv::Word,
445    },
446    IAddCarry {
447        operand_1: spirv::Word,
448        operand_2: spirv::Word,
449    },
450    ISubBorrow {
451        operand_1: spirv::Word,
452        operand_2: spirv::Word,
453    },
454    UMulExtended {
455        operand_1: spirv::Word,
456        operand_2: spirv::Word,
457    },
458    SMulExtended {
459        operand_1: spirv::Word,
460        operand_2: spirv::Word,
461    },
462    Any {
463        vector: spirv::Word,
464    },
465    All {
466        vector: spirv::Word,
467    },
468    IsNan {
469        x: spirv::Word,
470    },
471    IsInf {
472        x: spirv::Word,
473    },
474    IsFinite {
475        x: spirv::Word,
476    },
477    IsNormal {
478        x: spirv::Word,
479    },
480    SignBitSet {
481        x: spirv::Word,
482    },
483    LessOrGreater {
484        x: spirv::Word,
485        y: spirv::Word,
486    },
487    Ordered {
488        x: spirv::Word,
489        y: spirv::Word,
490    },
491    Unordered {
492        x: spirv::Word,
493        y: spirv::Word,
494    },
495    LogicalEqual {
496        operand_1: spirv::Word,
497        operand_2: spirv::Word,
498    },
499    LogicalNotEqual {
500        operand_1: spirv::Word,
501        operand_2: spirv::Word,
502    },
503    LogicalOr {
504        operand_1: spirv::Word,
505        operand_2: spirv::Word,
506    },
507    LogicalAnd {
508        operand_1: spirv::Word,
509        operand_2: spirv::Word,
510    },
511    LogicalNot {
512        operand: spirv::Word,
513    },
514    Select {
515        condition: spirv::Word,
516        object_1: spirv::Word,
517        object_2: spirv::Word,
518    },
519    IEqual {
520        operand_1: spirv::Word,
521        operand_2: spirv::Word,
522    },
523    INotEqual {
524        operand_1: spirv::Word,
525        operand_2: spirv::Word,
526    },
527    UGreaterThan {
528        operand_1: spirv::Word,
529        operand_2: spirv::Word,
530    },
531    SGreaterThan {
532        operand_1: spirv::Word,
533        operand_2: spirv::Word,
534    },
535    UGreaterThanEqual {
536        operand_1: spirv::Word,
537        operand_2: spirv::Word,
538    },
539    SGreaterThanEqual {
540        operand_1: spirv::Word,
541        operand_2: spirv::Word,
542    },
543    ULessThan {
544        operand_1: spirv::Word,
545        operand_2: spirv::Word,
546    },
547    SLessThan {
548        operand_1: spirv::Word,
549        operand_2: spirv::Word,
550    },
551    ULessThanEqual {
552        operand_1: spirv::Word,
553        operand_2: spirv::Word,
554    },
555    SLessThanEqual {
556        operand_1: spirv::Word,
557        operand_2: spirv::Word,
558    },
559    FOrdEqual {
560        operand_1: spirv::Word,
561        operand_2: spirv::Word,
562    },
563    FUnordEqual {
564        operand_1: spirv::Word,
565        operand_2: spirv::Word,
566    },
567    FOrdNotEqual {
568        operand_1: spirv::Word,
569        operand_2: spirv::Word,
570    },
571    FUnordNotEqual {
572        operand_1: spirv::Word,
573        operand_2: spirv::Word,
574    },
575    FOrdLessThan {
576        operand_1: spirv::Word,
577        operand_2: spirv::Word,
578    },
579    FUnordLessThan {
580        operand_1: spirv::Word,
581        operand_2: spirv::Word,
582    },
583    FOrdGreaterThan {
584        operand_1: spirv::Word,
585        operand_2: spirv::Word,
586    },
587    FUnordGreaterThan {
588        operand_1: spirv::Word,
589        operand_2: spirv::Word,
590    },
591    FOrdLessThanEqual {
592        operand_1: spirv::Word,
593        operand_2: spirv::Word,
594    },
595    FUnordLessThanEqual {
596        operand_1: spirv::Word,
597        operand_2: spirv::Word,
598    },
599    FOrdGreaterThanEqual {
600        operand_1: spirv::Word,
601        operand_2: spirv::Word,
602    },
603    FUnordGreaterThanEqual {
604        operand_1: spirv::Word,
605        operand_2: spirv::Word,
606    },
607    ShiftRightLogical {
608        base: spirv::Word,
609        shift: spirv::Word,
610    },
611    ShiftRightArithmetic {
612        base: spirv::Word,
613        shift: spirv::Word,
614    },
615    ShiftLeftLogical {
616        base: spirv::Word,
617        shift: spirv::Word,
618    },
619    BitwiseOr {
620        operand_1: spirv::Word,
621        operand_2: spirv::Word,
622    },
623    BitwiseXor {
624        operand_1: spirv::Word,
625        operand_2: spirv::Word,
626    },
627    BitwiseAnd {
628        operand_1: spirv::Word,
629        operand_2: spirv::Word,
630    },
631    Not {
632        operand: spirv::Word,
633    },
634    BitFieldInsert {
635        base: spirv::Word,
636        insert: spirv::Word,
637        offset: spirv::Word,
638        count: spirv::Word,
639    },
640    BitFieldSExtract {
641        base: spirv::Word,
642        offset: spirv::Word,
643        count: spirv::Word,
644    },
645    BitFieldUExtract {
646        base: spirv::Word,
647        offset: spirv::Word,
648        count: spirv::Word,
649    },
650    BitReverse {
651        base: spirv::Word,
652    },
653    BitCount {
654        base: spirv::Word,
655    },
656    DPdx {
657        p: spirv::Word,
658    },
659    DPdy {
660        p: spirv::Word,
661    },
662    Fwidth {
663        p: spirv::Word,
664    },
665    DPdxFine {
666        p: spirv::Word,
667    },
668    DPdyFine {
669        p: spirv::Word,
670    },
671    FwidthFine {
672        p: spirv::Word,
673    },
674    DPdxCoarse {
675        p: spirv::Word,
676    },
677    DPdyCoarse {
678        p: spirv::Word,
679    },
680    FwidthCoarse {
681        p: spirv::Word,
682    },
683    EmitVertex,
684    EndPrimitive,
685    EmitStreamVertex {
686        stream: spirv::Word,
687    },
688    EndStreamPrimitive {
689        stream: spirv::Word,
690    },
691    ControlBarrier {
692        execution: spirv::Word,
693        memory: spirv::Word,
694        semantics: spirv::Word,
695    },
696    MemoryBarrier {
697        memory: spirv::Word,
698        semantics: spirv::Word,
699    },
700    AtomicLoad {
701        pointer: spirv::Word,
702        memory: spirv::Word,
703        semantics: spirv::Word,
704    },
705    AtomicStore {
706        pointer: spirv::Word,
707        memory: spirv::Word,
708        semantics: spirv::Word,
709        value: spirv::Word,
710    },
711    AtomicExchange {
712        pointer: spirv::Word,
713        memory: spirv::Word,
714        semantics: spirv::Word,
715        value: spirv::Word,
716    },
717    AtomicCompareExchange {
718        pointer: spirv::Word,
719        memory: spirv::Word,
720        equal: spirv::Word,
721        unequal: spirv::Word,
722        value: spirv::Word,
723        comparator: spirv::Word,
724    },
725    AtomicCompareExchangeWeak {
726        pointer: spirv::Word,
727        memory: spirv::Word,
728        equal: spirv::Word,
729        unequal: spirv::Word,
730        value: spirv::Word,
731        comparator: spirv::Word,
732    },
733    AtomicIIncrement {
734        pointer: spirv::Word,
735        memory: spirv::Word,
736        semantics: spirv::Word,
737    },
738    AtomicIDecrement {
739        pointer: spirv::Word,
740        memory: spirv::Word,
741        semantics: spirv::Word,
742    },
743    AtomicIAdd {
744        pointer: spirv::Word,
745        memory: spirv::Word,
746        semantics: spirv::Word,
747        value: spirv::Word,
748    },
749    AtomicISub {
750        pointer: spirv::Word,
751        memory: spirv::Word,
752        semantics: spirv::Word,
753        value: spirv::Word,
754    },
755    AtomicSMin {
756        pointer: spirv::Word,
757        memory: spirv::Word,
758        semantics: spirv::Word,
759        value: spirv::Word,
760    },
761    AtomicUMin {
762        pointer: spirv::Word,
763        memory: spirv::Word,
764        semantics: spirv::Word,
765        value: spirv::Word,
766    },
767    AtomicSMax {
768        pointer: spirv::Word,
769        memory: spirv::Word,
770        semantics: spirv::Word,
771        value: spirv::Word,
772    },
773    AtomicUMax {
774        pointer: spirv::Word,
775        memory: spirv::Word,
776        semantics: spirv::Word,
777        value: spirv::Word,
778    },
779    AtomicAnd {
780        pointer: spirv::Word,
781        memory: spirv::Word,
782        semantics: spirv::Word,
783        value: spirv::Word,
784    },
785    AtomicOr {
786        pointer: spirv::Word,
787        memory: spirv::Word,
788        semantics: spirv::Word,
789        value: spirv::Word,
790    },
791    AtomicXor {
792        pointer: spirv::Word,
793        memory: spirv::Word,
794        semantics: spirv::Word,
795        value: spirv::Word,
796    },
797    GroupAsyncCopy {
798        execution: spirv::Word,
799        destination: spirv::Word,
800        source: spirv::Word,
801        num_elements: spirv::Word,
802        stride: spirv::Word,
803        event: spirv::Word,
804    },
805    GroupWaitEvents {
806        execution: spirv::Word,
807        num_events: spirv::Word,
808        events_list: spirv::Word,
809    },
810    GroupAll {
811        execution: spirv::Word,
812        predicate: spirv::Word,
813    },
814    GroupAny {
815        execution: spirv::Word,
816        predicate: spirv::Word,
817    },
818    GroupBroadcast {
819        execution: spirv::Word,
820        value: spirv::Word,
821        local_id: spirv::Word,
822    },
823    GroupIAdd {
824        execution: spirv::Word,
825        operation: spirv::GroupOperation,
826        x: spirv::Word,
827    },
828    GroupFAdd {
829        execution: spirv::Word,
830        operation: spirv::GroupOperation,
831        x: spirv::Word,
832    },
833    GroupFMin {
834        execution: spirv::Word,
835        operation: spirv::GroupOperation,
836        x: spirv::Word,
837    },
838    GroupUMin {
839        execution: spirv::Word,
840        operation: spirv::GroupOperation,
841        x: spirv::Word,
842    },
843    GroupSMin {
844        execution: spirv::Word,
845        operation: spirv::GroupOperation,
846        x: spirv::Word,
847    },
848    GroupFMax {
849        execution: spirv::Word,
850        operation: spirv::GroupOperation,
851        x: spirv::Word,
852    },
853    GroupUMax {
854        execution: spirv::Word,
855        operation: spirv::GroupOperation,
856        x: spirv::Word,
857    },
858    GroupSMax {
859        execution: spirv::Word,
860        operation: spirv::GroupOperation,
861        x: spirv::Word,
862    },
863    ReadPipe {
864        pipe: spirv::Word,
865        pointer: spirv::Word,
866        packet_size: spirv::Word,
867        packet_alignment: spirv::Word,
868    },
869    WritePipe {
870        pipe: spirv::Word,
871        pointer: spirv::Word,
872        packet_size: spirv::Word,
873        packet_alignment: spirv::Word,
874    },
875    ReservedReadPipe {
876        pipe: spirv::Word,
877        reserve_id: spirv::Word,
878        index: spirv::Word,
879        pointer: spirv::Word,
880        packet_size: spirv::Word,
881        packet_alignment: spirv::Word,
882    },
883    ReservedWritePipe {
884        pipe: spirv::Word,
885        reserve_id: spirv::Word,
886        index: spirv::Word,
887        pointer: spirv::Word,
888        packet_size: spirv::Word,
889        packet_alignment: spirv::Word,
890    },
891    ReserveReadPipePackets {
892        pipe: spirv::Word,
893        num_packets: spirv::Word,
894        packet_size: spirv::Word,
895        packet_alignment: spirv::Word,
896    },
897    ReserveWritePipePackets {
898        pipe: spirv::Word,
899        num_packets: spirv::Word,
900        packet_size: spirv::Word,
901        packet_alignment: spirv::Word,
902    },
903    CommitReadPipe {
904        pipe: spirv::Word,
905        reserve_id: spirv::Word,
906        packet_size: spirv::Word,
907        packet_alignment: spirv::Word,
908    },
909    CommitWritePipe {
910        pipe: spirv::Word,
911        reserve_id: spirv::Word,
912        packet_size: spirv::Word,
913        packet_alignment: spirv::Word,
914    },
915    IsValidReserveId {
916        reserve_id: spirv::Word,
917    },
918    GetNumPipePackets {
919        pipe: spirv::Word,
920        packet_size: spirv::Word,
921        packet_alignment: spirv::Word,
922    },
923    GetMaxPipePackets {
924        pipe: spirv::Word,
925        packet_size: spirv::Word,
926        packet_alignment: spirv::Word,
927    },
928    GroupReserveReadPipePackets {
929        execution: spirv::Word,
930        pipe: spirv::Word,
931        num_packets: spirv::Word,
932        packet_size: spirv::Word,
933        packet_alignment: spirv::Word,
934    },
935    GroupReserveWritePipePackets {
936        execution: spirv::Word,
937        pipe: spirv::Word,
938        num_packets: spirv::Word,
939        packet_size: spirv::Word,
940        packet_alignment: spirv::Word,
941    },
942    GroupCommitReadPipe {
943        execution: spirv::Word,
944        pipe: spirv::Word,
945        reserve_id: spirv::Word,
946        packet_size: spirv::Word,
947        packet_alignment: spirv::Word,
948    },
949    GroupCommitWritePipe {
950        execution: spirv::Word,
951        pipe: spirv::Word,
952        reserve_id: spirv::Word,
953        packet_size: spirv::Word,
954        packet_alignment: spirv::Word,
955    },
956    EnqueueMarker {
957        queue: spirv::Word,
958        num_events: spirv::Word,
959        wait_events: spirv::Word,
960        ret_event: spirv::Word,
961    },
962    EnqueueKernel {
963        queue: spirv::Word,
964        flags: spirv::Word,
965        nd_range: spirv::Word,
966        num_events: spirv::Word,
967        wait_events: spirv::Word,
968        ret_event: spirv::Word,
969        invoke: spirv::Word,
970        param: spirv::Word,
971        param_size: spirv::Word,
972        param_align: spirv::Word,
973        local_size: Vec<spirv::Word>,
974    },
975    GetKernelNDrangeSubGroupCount {
976        nd_range: spirv::Word,
977        invoke: spirv::Word,
978        param: spirv::Word,
979        param_size: spirv::Word,
980        param_align: spirv::Word,
981    },
982    GetKernelNDrangeMaxSubGroupSize {
983        nd_range: spirv::Word,
984        invoke: spirv::Word,
985        param: spirv::Word,
986        param_size: spirv::Word,
987        param_align: spirv::Word,
988    },
989    GetKernelWorkGroupSize {
990        invoke: spirv::Word,
991        param: spirv::Word,
992        param_size: spirv::Word,
993        param_align: spirv::Word,
994    },
995    GetKernelPreferredWorkGroupSizeMultiple {
996        invoke: spirv::Word,
997        param: spirv::Word,
998        param_size: spirv::Word,
999        param_align: spirv::Word,
1000    },
1001    RetainEvent {
1002        event: spirv::Word,
1003    },
1004    ReleaseEvent {
1005        event: spirv::Word,
1006    },
1007    CreateUserEvent,
1008    IsValidEvent {
1009        event: spirv::Word,
1010    },
1011    SetUserEventStatus {
1012        event: spirv::Word,
1013        status: spirv::Word,
1014    },
1015    CaptureEventProfilingInfo {
1016        event: spirv::Word,
1017        profiling_info: spirv::Word,
1018        value: spirv::Word,
1019    },
1020    GetDefaultQueue,
1021    BuildNDRange {
1022        global_work_size: spirv::Word,
1023        local_work_size: spirv::Word,
1024        global_work_offset: spirv::Word,
1025    },
1026    ImageSparseSampleImplicitLod {
1027        sampled_image: spirv::Word,
1028        coordinate: spirv::Word,
1029        image_operands: Option<(spirv::ImageOperands, Vec<spirv::Word>)>,
1030    },
1031    ImageSparseSampleExplicitLod {
1032        sampled_image: spirv::Word,
1033        coordinate: spirv::Word,
1034        image_operands: (spirv::ImageOperands, Vec<spirv::Word>),
1035    },
1036    ImageSparseSampleDrefImplicitLod {
1037        sampled_image: spirv::Word,
1038        coordinate: spirv::Word,
1039        d_ref: spirv::Word,
1040        image_operands: Option<(spirv::ImageOperands, Vec<spirv::Word>)>,
1041    },
1042    ImageSparseSampleDrefExplicitLod {
1043        sampled_image: spirv::Word,
1044        coordinate: spirv::Word,
1045        d_ref: spirv::Word,
1046        image_operands: (spirv::ImageOperands, Vec<spirv::Word>),
1047    },
1048    ImageSparseSampleProjImplicitLod {
1049        sampled_image: spirv::Word,
1050        coordinate: spirv::Word,
1051        image_operands: Option<(spirv::ImageOperands, Vec<spirv::Word>)>,
1052    },
1053    ImageSparseSampleProjExplicitLod {
1054        sampled_image: spirv::Word,
1055        coordinate: spirv::Word,
1056        image_operands: (spirv::ImageOperands, Vec<spirv::Word>),
1057    },
1058    ImageSparseSampleProjDrefImplicitLod {
1059        sampled_image: spirv::Word,
1060        coordinate: spirv::Word,
1061        d_ref: spirv::Word,
1062        image_operands: Option<(spirv::ImageOperands, Vec<spirv::Word>)>,
1063    },
1064    ImageSparseSampleProjDrefExplicitLod {
1065        sampled_image: spirv::Word,
1066        coordinate: spirv::Word,
1067        d_ref: spirv::Word,
1068        image_operands: (spirv::ImageOperands, Vec<spirv::Word>),
1069    },
1070    ImageSparseFetch {
1071        image: spirv::Word,
1072        coordinate: spirv::Word,
1073        image_operands: Option<(spirv::ImageOperands, Vec<spirv::Word>)>,
1074    },
1075    ImageSparseGather {
1076        sampled_image: spirv::Word,
1077        coordinate: spirv::Word,
1078        component: spirv::Word,
1079        image_operands: Option<(spirv::ImageOperands, Vec<spirv::Word>)>,
1080    },
1081    ImageSparseDrefGather {
1082        sampled_image: spirv::Word,
1083        coordinate: spirv::Word,
1084        d_ref: spirv::Word,
1085        image_operands: Option<(spirv::ImageOperands, Vec<spirv::Word>)>,
1086    },
1087    ImageSparseTexelsResident {
1088        resident_code: spirv::Word,
1089    },
1090    NoLine,
1091    AtomicFlagTestAndSet {
1092        pointer: spirv::Word,
1093        memory: spirv::Word,
1094        semantics: spirv::Word,
1095    },
1096    AtomicFlagClear {
1097        pointer: spirv::Word,
1098        memory: spirv::Word,
1099        semantics: spirv::Word,
1100    },
1101    ImageSparseRead {
1102        image: spirv::Word,
1103        coordinate: spirv::Word,
1104        image_operands: Option<(spirv::ImageOperands, Vec<spirv::Word>)>,
1105    },
1106    SizeOf {
1107        pointer: spirv::Word,
1108    },
1109    ConstantPipeStorage {
1110        packet_size: u32,
1111        packet_alignment: u32,
1112        capacity: u32,
1113    },
1114    CreatePipeFromPipeStorage {
1115        pipe_storage: spirv::Word,
1116    },
1117    GetKernelLocalSizeForSubgroupCount {
1118        subgroup_count: spirv::Word,
1119        invoke: spirv::Word,
1120        param: spirv::Word,
1121        param_size: spirv::Word,
1122        param_align: spirv::Word,
1123    },
1124    GetKernelMaxNumSubgroups {
1125        invoke: spirv::Word,
1126        param: spirv::Word,
1127        param_size: spirv::Word,
1128        param_align: spirv::Word,
1129    },
1130    NamedBarrierInitialize {
1131        subgroup_count: spirv::Word,
1132    },
1133    MemoryNamedBarrier {
1134        named_barrier: spirv::Word,
1135        memory: spirv::Word,
1136        semantics: spirv::Word,
1137    },
1138    ModuleProcessed {
1139        process: String,
1140    },
1141    DecorateId {
1142        target: spirv::Word,
1143        decoration: spirv::Decoration,
1144    },
1145    GroupNonUniformElect {
1146        execution: spirv::Word,
1147    },
1148    GroupNonUniformAll {
1149        execution: spirv::Word,
1150        predicate: spirv::Word,
1151    },
1152    GroupNonUniformAny {
1153        execution: spirv::Word,
1154        predicate: spirv::Word,
1155    },
1156    GroupNonUniformAllEqual {
1157        execution: spirv::Word,
1158        value: spirv::Word,
1159    },
1160    GroupNonUniformBroadcast {
1161        execution: spirv::Word,
1162        value: spirv::Word,
1163        invocation_id: spirv::Word,
1164    },
1165    GroupNonUniformBroadcastFirst {
1166        execution: spirv::Word,
1167        value: spirv::Word,
1168    },
1169    GroupNonUniformBallot {
1170        execution: spirv::Word,
1171        predicate: spirv::Word,
1172    },
1173    GroupNonUniformInverseBallot {
1174        execution: spirv::Word,
1175        value: spirv::Word,
1176    },
1177    GroupNonUniformBallotBitExtract {
1178        execution: spirv::Word,
1179        value: spirv::Word,
1180        index: spirv::Word,
1181    },
1182    GroupNonUniformBallotBitCount {
1183        execution: spirv::Word,
1184        operation: spirv::GroupOperation,
1185        value: spirv::Word,
1186    },
1187    GroupNonUniformBallotFindLSB {
1188        execution: spirv::Word,
1189        value: spirv::Word,
1190    },
1191    GroupNonUniformBallotFindMSB {
1192        execution: spirv::Word,
1193        value: spirv::Word,
1194    },
1195    GroupNonUniformShuffle {
1196        execution: spirv::Word,
1197        value: spirv::Word,
1198        invocation_id: spirv::Word,
1199    },
1200    GroupNonUniformShuffleXor {
1201        execution: spirv::Word,
1202        value: spirv::Word,
1203        mask: spirv::Word,
1204    },
1205    GroupNonUniformShuffleUp {
1206        execution: spirv::Word,
1207        value: spirv::Word,
1208        delta: spirv::Word,
1209    },
1210    GroupNonUniformShuffleDown {
1211        execution: spirv::Word,
1212        value: spirv::Word,
1213        delta: spirv::Word,
1214    },
1215    GroupNonUniformIAdd {
1216        execution: spirv::Word,
1217        operation: spirv::GroupOperation,
1218        value: spirv::Word,
1219        cluster_size: Option<spirv::Word>,
1220    },
1221    GroupNonUniformFAdd {
1222        execution: spirv::Word,
1223        operation: spirv::GroupOperation,
1224        value: spirv::Word,
1225        cluster_size: Option<spirv::Word>,
1226    },
1227    GroupNonUniformIMul {
1228        execution: spirv::Word,
1229        operation: spirv::GroupOperation,
1230        value: spirv::Word,
1231        cluster_size: Option<spirv::Word>,
1232    },
1233    GroupNonUniformFMul {
1234        execution: spirv::Word,
1235        operation: spirv::GroupOperation,
1236        value: spirv::Word,
1237        cluster_size: Option<spirv::Word>,
1238    },
1239    GroupNonUniformSMin {
1240        execution: spirv::Word,
1241        operation: spirv::GroupOperation,
1242        value: spirv::Word,
1243        cluster_size: Option<spirv::Word>,
1244    },
1245    GroupNonUniformUMin {
1246        execution: spirv::Word,
1247        operation: spirv::GroupOperation,
1248        value: spirv::Word,
1249        cluster_size: Option<spirv::Word>,
1250    },
1251    GroupNonUniformFMin {
1252        execution: spirv::Word,
1253        operation: spirv::GroupOperation,
1254        value: spirv::Word,
1255        cluster_size: Option<spirv::Word>,
1256    },
1257    GroupNonUniformSMax {
1258        execution: spirv::Word,
1259        operation: spirv::GroupOperation,
1260        value: spirv::Word,
1261        cluster_size: Option<spirv::Word>,
1262    },
1263    GroupNonUniformUMax {
1264        execution: spirv::Word,
1265        operation: spirv::GroupOperation,
1266        value: spirv::Word,
1267        cluster_size: Option<spirv::Word>,
1268    },
1269    GroupNonUniformFMax {
1270        execution: spirv::Word,
1271        operation: spirv::GroupOperation,
1272        value: spirv::Word,
1273        cluster_size: Option<spirv::Word>,
1274    },
1275    GroupNonUniformBitwiseAnd {
1276        execution: spirv::Word,
1277        operation: spirv::GroupOperation,
1278        value: spirv::Word,
1279        cluster_size: Option<spirv::Word>,
1280    },
1281    GroupNonUniformBitwiseOr {
1282        execution: spirv::Word,
1283        operation: spirv::GroupOperation,
1284        value: spirv::Word,
1285        cluster_size: Option<spirv::Word>,
1286    },
1287    GroupNonUniformBitwiseXor {
1288        execution: spirv::Word,
1289        operation: spirv::GroupOperation,
1290        value: spirv::Word,
1291        cluster_size: Option<spirv::Word>,
1292    },
1293    GroupNonUniformLogicalAnd {
1294        execution: spirv::Word,
1295        operation: spirv::GroupOperation,
1296        value: spirv::Word,
1297        cluster_size: Option<spirv::Word>,
1298    },
1299    GroupNonUniformLogicalOr {
1300        execution: spirv::Word,
1301        operation: spirv::GroupOperation,
1302        value: spirv::Word,
1303        cluster_size: Option<spirv::Word>,
1304    },
1305    GroupNonUniformLogicalXor {
1306        execution: spirv::Word,
1307        operation: spirv::GroupOperation,
1308        value: spirv::Word,
1309        cluster_size: Option<spirv::Word>,
1310    },
1311    GroupNonUniformQuadBroadcast {
1312        execution: spirv::Word,
1313        value: spirv::Word,
1314        index: spirv::Word,
1315    },
1316    GroupNonUniformQuadSwap {
1317        execution: spirv::Word,
1318        value: spirv::Word,
1319        direction: spirv::Word,
1320    },
1321    CopyLogical {
1322        operand: spirv::Word,
1323    },
1324    PtrEqual {
1325        operand_1: spirv::Word,
1326        operand_2: spirv::Word,
1327    },
1328    PtrNotEqual {
1329        operand_1: spirv::Word,
1330        operand_2: spirv::Word,
1331    },
1332    PtrDiff {
1333        operand_1: spirv::Word,
1334        operand_2: spirv::Word,
1335    },
1336    ColorAttachmentReadEXT {
1337        attachment: spirv::Word,
1338        sample: Option<spirv::Word>,
1339    },
1340    DepthAttachmentReadEXT {
1341        sample: Option<spirv::Word>,
1342    },
1343    StencilAttachmentReadEXT {
1344        sample: Option<spirv::Word>,
1345    },
1346    TensorReadARM {
1347        tensor: spirv::Word,
1348        coordinates: spirv::Word,
1349        tensor_operands: Option<spirv::TensorOperands>,
1350    },
1351    TensorWriteARM {
1352        tensor: spirv::Word,
1353        coordinates: spirv::Word,
1354        object: spirv::Word,
1355        tensor_operands: Option<spirv::TensorOperands>,
1356    },
1357    TensorQuerySizeARM {
1358        tensor: spirv::Word,
1359        dimension: spirv::Word,
1360    },
1361    GraphConstantARM {
1362        graph_constant_id: u32,
1363    },
1364    GraphEntryPointARM {
1365        graph: spirv::Word,
1366        name: String,
1367        interface: Vec<spirv::Word>,
1368    },
1369    GraphARM,
1370    GraphInputARM {
1371        input_index: spirv::Word,
1372        element_index: Vec<spirv::Word>,
1373    },
1374    GraphSetOutputARM {
1375        value: spirv::Word,
1376        output_index: spirv::Word,
1377        element_index: Vec<spirv::Word>,
1378    },
1379    GraphEndARM,
1380    UntypedVariableKHR {
1381        storage_class: spirv::StorageClass,
1382        data_type: Option<Token<Type>>,
1383        initializer: Option<spirv::Word>,
1384    },
1385    UntypedAccessChainKHR {
1386        base_type: Token<Type>,
1387        base: spirv::Word,
1388        indexes: Vec<spirv::Word>,
1389    },
1390    UntypedInBoundsAccessChainKHR {
1391        base_type: Token<Type>,
1392        base: spirv::Word,
1393        indexes: Vec<spirv::Word>,
1394    },
1395    SubgroupBallotKHR {
1396        predicate: spirv::Word,
1397    },
1398    SubgroupFirstInvocationKHR {
1399        value: spirv::Word,
1400    },
1401    UntypedPtrAccessChainKHR {
1402        base_type: Token<Type>,
1403        base: spirv::Word,
1404        element: spirv::Word,
1405        indexes: Vec<spirv::Word>,
1406    },
1407    UntypedInBoundsPtrAccessChainKHR {
1408        base_type: Token<Type>,
1409        base: spirv::Word,
1410        element: spirv::Word,
1411        indexes: Vec<spirv::Word>,
1412    },
1413    UntypedArrayLengthKHR {
1414        structure: spirv::Word,
1415        pointer: spirv::Word,
1416        array_member: u32,
1417    },
1418    UntypedPrefetchKHR {
1419        pointer_type: Token<Type>,
1420        num_bytes: spirv::Word,
1421        rw: Option<spirv::Word>,
1422        locality: Option<spirv::Word>,
1423        cache_type: Option<Token<Type>>,
1424    },
1425    FmaKHR {
1426        operand_1: spirv::Word,
1427        operand_2: spirv::Word,
1428        operand_3: spirv::Word,
1429    },
1430    SubgroupAllKHR {
1431        predicate: spirv::Word,
1432    },
1433    SubgroupAnyKHR {
1434        predicate: spirv::Word,
1435    },
1436    SubgroupAllEqualKHR {
1437        predicate: spirv::Word,
1438    },
1439    GroupNonUniformRotateKHR {
1440        execution: spirv::Word,
1441        value: spirv::Word,
1442        delta: spirv::Word,
1443        cluster_size: Option<spirv::Word>,
1444    },
1445    SubgroupReadInvocationKHR {
1446        value: spirv::Word,
1447        index: spirv::Word,
1448    },
1449    UntypedGroupAsyncCopyKHR {
1450        execution: spirv::Word,
1451        destination: spirv::Word,
1452        source: spirv::Word,
1453        element_num_bytes: spirv::Word,
1454        num_elements: spirv::Word,
1455        stride: spirv::Word,
1456        event: spirv::Word,
1457        destination_memory_operands: Option<spirv::MemoryAccess>,
1458        source_memory_operands: Option<spirv::MemoryAccess>,
1459    },
1460    TraceRayKHR {
1461        accel: spirv::Word,
1462        ray_flags: spirv::Word,
1463        cull_mask: spirv::Word,
1464        sbt_offset: spirv::Word,
1465        sbt_stride: spirv::Word,
1466        miss_index: spirv::Word,
1467        ray_origin: spirv::Word,
1468        ray_tmin: spirv::Word,
1469        ray_direction: spirv::Word,
1470        ray_tmax: spirv::Word,
1471        payload: spirv::Word,
1472    },
1473    ExecuteCallableKHR {
1474        sbt_index: spirv::Word,
1475        callable_data: spirv::Word,
1476    },
1477    ConvertUToAccelerationStructureKHR {
1478        accel: spirv::Word,
1479    },
1480    SDot {
1481        vector_1: spirv::Word,
1482        vector_2: spirv::Word,
1483        packed_vector_format: Option<spirv::PackedVectorFormat>,
1484    },
1485    UDot {
1486        vector_1: spirv::Word,
1487        vector_2: spirv::Word,
1488        packed_vector_format: Option<spirv::PackedVectorFormat>,
1489    },
1490    SUDot {
1491        vector_1: spirv::Word,
1492        vector_2: spirv::Word,
1493        packed_vector_format: Option<spirv::PackedVectorFormat>,
1494    },
1495    SDotAccSat {
1496        vector_1: spirv::Word,
1497        vector_2: spirv::Word,
1498        accumulator: spirv::Word,
1499        packed_vector_format: Option<spirv::PackedVectorFormat>,
1500    },
1501    UDotAccSat {
1502        vector_1: spirv::Word,
1503        vector_2: spirv::Word,
1504        accumulator: spirv::Word,
1505        packed_vector_format: Option<spirv::PackedVectorFormat>,
1506    },
1507    SUDotAccSat {
1508        vector_1: spirv::Word,
1509        vector_2: spirv::Word,
1510        accumulator: spirv::Word,
1511        packed_vector_format: Option<spirv::PackedVectorFormat>,
1512    },
1513    CooperativeMatrixLoadKHR {
1514        pointer: spirv::Word,
1515        memory_layout: spirv::Word,
1516        stride: Option<spirv::Word>,
1517        memory_operand: Option<spirv::MemoryAccess>,
1518    },
1519    CooperativeMatrixStoreKHR {
1520        pointer: spirv::Word,
1521        object: spirv::Word,
1522        memory_layout: spirv::Word,
1523        stride: Option<spirv::Word>,
1524        memory_operand: Option<spirv::MemoryAccess>,
1525    },
1526    CooperativeMatrixMulAddKHR {
1527        a: spirv::Word,
1528        b: spirv::Word,
1529        c: spirv::Word,
1530        cooperative_matrix_operands: Option<spirv::CooperativeMatrixOperands>,
1531    },
1532    CooperativeMatrixLengthKHR {
1533        ty: Token<Type>,
1534    },
1535    CompositeConstructReplicateEXT {
1536        value: spirv::Word,
1537    },
1538    RayQueryInitializeKHR {
1539        ray_query: spirv::Word,
1540        accel: spirv::Word,
1541        ray_flags: spirv::Word,
1542        cull_mask: spirv::Word,
1543        ray_origin: spirv::Word,
1544        ray_t_min: spirv::Word,
1545        ray_direction: spirv::Word,
1546        ray_t_max: spirv::Word,
1547    },
1548    RayQueryTerminateKHR {
1549        ray_query: spirv::Word,
1550    },
1551    RayQueryGenerateIntersectionKHR {
1552        ray_query: spirv::Word,
1553        hit_t: spirv::Word,
1554    },
1555    RayQueryConfirmIntersectionKHR {
1556        ray_query: spirv::Word,
1557    },
1558    RayQueryProceedKHR {
1559        ray_query: spirv::Word,
1560    },
1561    RayQueryGetIntersectionTypeKHR {
1562        ray_query: spirv::Word,
1563        intersection: spirv::Word,
1564    },
1565    ImageSampleWeightedQCOM {
1566        texture: spirv::Word,
1567        coordinates: spirv::Word,
1568        weights: spirv::Word,
1569    },
1570    ImageBoxFilterQCOM {
1571        texture: spirv::Word,
1572        coordinates: spirv::Word,
1573        box_size: spirv::Word,
1574    },
1575    ImageBlockMatchSSDQCOM {
1576        target: spirv::Word,
1577        target_coordinates: spirv::Word,
1578        reference: spirv::Word,
1579        reference_coordinates: spirv::Word,
1580        block_size: spirv::Word,
1581    },
1582    ImageBlockMatchSADQCOM {
1583        target: spirv::Word,
1584        target_coordinates: spirv::Word,
1585        reference: spirv::Word,
1586        reference_coordinates: spirv::Word,
1587        block_size: spirv::Word,
1588    },
1589    BitCastArrayQCOM {
1590        source_array: spirv::Word,
1591    },
1592    ImageBlockMatchWindowSSDQCOM {
1593        target_sampled_image: spirv::Word,
1594        target_coordinates: spirv::Word,
1595        reference_sampled_image: spirv::Word,
1596        reference_coordinates: spirv::Word,
1597        block_size: spirv::Word,
1598    },
1599    ImageBlockMatchWindowSADQCOM {
1600        target_sampled_image: spirv::Word,
1601        target_coordinates: spirv::Word,
1602        reference_sampled_image: spirv::Word,
1603        reference_coordinates: spirv::Word,
1604        block_size: spirv::Word,
1605    },
1606    ImageBlockMatchGatherSSDQCOM {
1607        target_sampled_image: spirv::Word,
1608        target_coordinates: spirv::Word,
1609        reference_sampled_image: spirv::Word,
1610        reference_coordinates: spirv::Word,
1611        block_size: spirv::Word,
1612    },
1613    ImageBlockMatchGatherSADQCOM {
1614        target_sampled_image: spirv::Word,
1615        target_coordinates: spirv::Word,
1616        reference_sampled_image: spirv::Word,
1617        reference_coordinates: spirv::Word,
1618        block_size: spirv::Word,
1619    },
1620    CompositeConstructCoopMatQCOM {
1621        source_array: spirv::Word,
1622    },
1623    CompositeExtractCoopMatQCOM {
1624        source_cooperative_matrix: spirv::Word,
1625    },
1626    ExtractSubArrayQCOM {
1627        source_array: spirv::Word,
1628        index: spirv::Word,
1629    },
1630    GroupIAddNonUniformAMD {
1631        execution: spirv::Word,
1632        operation: spirv::GroupOperation,
1633        x: spirv::Word,
1634    },
1635    GroupFAddNonUniformAMD {
1636        execution: spirv::Word,
1637        operation: spirv::GroupOperation,
1638        x: spirv::Word,
1639    },
1640    GroupFMinNonUniformAMD {
1641        execution: spirv::Word,
1642        operation: spirv::GroupOperation,
1643        x: spirv::Word,
1644    },
1645    GroupUMinNonUniformAMD {
1646        execution: spirv::Word,
1647        operation: spirv::GroupOperation,
1648        x: spirv::Word,
1649    },
1650    GroupSMinNonUniformAMD {
1651        execution: spirv::Word,
1652        operation: spirv::GroupOperation,
1653        x: spirv::Word,
1654    },
1655    GroupFMaxNonUniformAMD {
1656        execution: spirv::Word,
1657        operation: spirv::GroupOperation,
1658        x: spirv::Word,
1659    },
1660    GroupUMaxNonUniformAMD {
1661        execution: spirv::Word,
1662        operation: spirv::GroupOperation,
1663        x: spirv::Word,
1664    },
1665    GroupSMaxNonUniformAMD {
1666        execution: spirv::Word,
1667        operation: spirv::GroupOperation,
1668        x: spirv::Word,
1669    },
1670    FragmentMaskFetchAMD {
1671        image: spirv::Word,
1672        coordinate: spirv::Word,
1673    },
1674    FragmentFetchAMD {
1675        image: spirv::Word,
1676        coordinate: spirv::Word,
1677        fragment_index: spirv::Word,
1678    },
1679    ReadClockKHR {
1680        scope: spirv::Word,
1681    },
1682    AllocateNodePayloadsAMDX {
1683        visibility: spirv::Word,
1684        payload_count: spirv::Word,
1685        node_index: spirv::Word,
1686    },
1687    EnqueueNodePayloadsAMDX {
1688        payload_array: spirv::Word,
1689    },
1690    FinishWritingNodePayloadAMDX {
1691        payload: spirv::Word,
1692    },
1693    NodePayloadArrayLengthAMDX {
1694        payload_array: spirv::Word,
1695    },
1696    IsNodePayloadValidAMDX {
1697        payload_type: spirv::Word,
1698        node_index: spirv::Word,
1699    },
1700    ConstantStringAMDX {
1701        literal_string: String,
1702    },
1703    SpecConstantStringAMDX {
1704        literal_string: String,
1705    },
1706    GroupNonUniformQuadAllKHR {
1707        predicate: spirv::Word,
1708    },
1709    GroupNonUniformQuadAnyKHR {
1710        predicate: spirv::Word,
1711    },
1712    BufferPointerEXT {
1713        buffer: spirv::Word,
1714    },
1715    UntypedImageTexelPointerEXT {
1716        image_type: spirv::Word,
1717        image: spirv::Word,
1718        coordinate: spirv::Word,
1719        sample: spirv::Word,
1720    },
1721    MemberDecorateIdEXT {
1722        structure_type: Token<Type>,
1723        member: u32,
1724        decoration: spirv::Decoration,
1725    },
1726    HitObjectRecordHitMotionNV {
1727        hit_object: spirv::Word,
1728        acceleration_structure: spirv::Word,
1729        instance_id: spirv::Word,
1730        primitive_id: spirv::Word,
1731        geometry_index: spirv::Word,
1732        hit_kind: spirv::Word,
1733        sbt_record_offset: spirv::Word,
1734        sbt_record_stride: spirv::Word,
1735        origin: spirv::Word,
1736        t_min: spirv::Word,
1737        direction: spirv::Word,
1738        t_max: spirv::Word,
1739        current_time: spirv::Word,
1740        hit_object_attributes: spirv::Word,
1741    },
1742    HitObjectRecordHitWithIndexMotionNV {
1743        hit_object: spirv::Word,
1744        acceleration_structure: spirv::Word,
1745        instance_id: spirv::Word,
1746        primitive_id: spirv::Word,
1747        geometry_index: spirv::Word,
1748        hit_kind: spirv::Word,
1749        sbt_record_index: spirv::Word,
1750        origin: spirv::Word,
1751        t_min: spirv::Word,
1752        direction: spirv::Word,
1753        t_max: spirv::Word,
1754        current_time: spirv::Word,
1755        hit_object_attributes: spirv::Word,
1756    },
1757    HitObjectRecordMissMotionNV {
1758        hit_object: spirv::Word,
1759        sbt_index: spirv::Word,
1760        origin: spirv::Word,
1761        t_min: spirv::Word,
1762        direction: spirv::Word,
1763        t_max: spirv::Word,
1764        current_time: spirv::Word,
1765    },
1766    HitObjectGetWorldToObjectNV {
1767        hit_object: spirv::Word,
1768    },
1769    HitObjectGetObjectToWorldNV {
1770        hit_object: spirv::Word,
1771    },
1772    HitObjectGetObjectRayDirectionNV {
1773        hit_object: spirv::Word,
1774    },
1775    HitObjectGetObjectRayOriginNV {
1776        hit_object: spirv::Word,
1777    },
1778    HitObjectTraceRayMotionNV {
1779        hit_object: spirv::Word,
1780        acceleration_structure: spirv::Word,
1781        ray_flags: spirv::Word,
1782        cullmask: spirv::Word,
1783        sbt_record_offset: spirv::Word,
1784        sbt_record_stride: spirv::Word,
1785        miss_index: spirv::Word,
1786        origin: spirv::Word,
1787        t_min: spirv::Word,
1788        direction: spirv::Word,
1789        t_max: spirv::Word,
1790        time: spirv::Word,
1791        payload: spirv::Word,
1792    },
1793    HitObjectGetShaderRecordBufferHandleNV {
1794        hit_object: spirv::Word,
1795    },
1796    HitObjectGetShaderBindingTableRecordIndexNV {
1797        hit_object: spirv::Word,
1798    },
1799    HitObjectRecordEmptyNV {
1800        hit_object: spirv::Word,
1801    },
1802    HitObjectTraceRayNV {
1803        hit_object: spirv::Word,
1804        acceleration_structure: spirv::Word,
1805        ray_flags: spirv::Word,
1806        cullmask: spirv::Word,
1807        sbt_record_offset: spirv::Word,
1808        sbt_record_stride: spirv::Word,
1809        miss_index: spirv::Word,
1810        origin: spirv::Word,
1811        t_min: spirv::Word,
1812        direction: spirv::Word,
1813        t_max: spirv::Word,
1814        payload: spirv::Word,
1815    },
1816    HitObjectRecordHitNV {
1817        hit_object: spirv::Word,
1818        acceleration_structure: spirv::Word,
1819        instance_id: spirv::Word,
1820        primitive_id: spirv::Word,
1821        geometry_index: spirv::Word,
1822        hit_kind: spirv::Word,
1823        sbt_record_offset: spirv::Word,
1824        sbt_record_stride: spirv::Word,
1825        origin: spirv::Word,
1826        t_min: spirv::Word,
1827        direction: spirv::Word,
1828        t_max: spirv::Word,
1829        hit_object_attributes: spirv::Word,
1830    },
1831    HitObjectRecordHitWithIndexNV {
1832        hit_object: spirv::Word,
1833        acceleration_structure: spirv::Word,
1834        instance_id: spirv::Word,
1835        primitive_id: spirv::Word,
1836        geometry_index: spirv::Word,
1837        hit_kind: spirv::Word,
1838        sbt_record_index: spirv::Word,
1839        origin: spirv::Word,
1840        t_min: spirv::Word,
1841        direction: spirv::Word,
1842        t_max: spirv::Word,
1843        hit_object_attributes: spirv::Word,
1844    },
1845    HitObjectRecordMissNV {
1846        hit_object: spirv::Word,
1847        sbt_index: spirv::Word,
1848        origin: spirv::Word,
1849        t_min: spirv::Word,
1850        direction: spirv::Word,
1851        t_max: spirv::Word,
1852    },
1853    HitObjectExecuteShaderNV {
1854        hit_object: spirv::Word,
1855        payload: spirv::Word,
1856    },
1857    HitObjectGetCurrentTimeNV {
1858        hit_object: spirv::Word,
1859    },
1860    HitObjectGetAttributesNV {
1861        hit_object: spirv::Word,
1862        hit_object_attribute: spirv::Word,
1863    },
1864    HitObjectGetHitKindNV {
1865        hit_object: spirv::Word,
1866    },
1867    HitObjectGetPrimitiveIndexNV {
1868        hit_object: spirv::Word,
1869    },
1870    HitObjectGetGeometryIndexNV {
1871        hit_object: spirv::Word,
1872    },
1873    HitObjectGetInstanceIdNV {
1874        hit_object: spirv::Word,
1875    },
1876    HitObjectGetInstanceCustomIndexNV {
1877        hit_object: spirv::Word,
1878    },
1879    HitObjectGetWorldRayDirectionNV {
1880        hit_object: spirv::Word,
1881    },
1882    HitObjectGetWorldRayOriginNV {
1883        hit_object: spirv::Word,
1884    },
1885    HitObjectGetRayTMaxNV {
1886        hit_object: spirv::Word,
1887    },
1888    HitObjectGetRayTMinNV {
1889        hit_object: spirv::Word,
1890    },
1891    HitObjectIsEmptyNV {
1892        hit_object: spirv::Word,
1893    },
1894    HitObjectIsHitNV {
1895        hit_object: spirv::Word,
1896    },
1897    HitObjectIsMissNV {
1898        hit_object: spirv::Word,
1899    },
1900    ReorderThreadWithHitObjectNV {
1901        hit_object: spirv::Word,
1902        hint: Option<spirv::Word>,
1903        bits: Option<spirv::Word>,
1904    },
1905    ReorderThreadWithHintNV {
1906        hint: spirv::Word,
1907        bits: spirv::Word,
1908    },
1909    ImageSampleFootprintNV {
1910        sampled_image: spirv::Word,
1911        coordinate: spirv::Word,
1912        granularity: spirv::Word,
1913        coarse: spirv::Word,
1914        image_operands: Option<(spirv::ImageOperands, Vec<spirv::Word>)>,
1915    },
1916    CooperativeVectorMatrixMulNV {
1917        input: spirv::Word,
1918        input_interpretation: spirv::Word,
1919        matrix: spirv::Word,
1920        matrix_offset: spirv::Word,
1921        matrix_interpretation: spirv::Word,
1922        m: spirv::Word,
1923        k: spirv::Word,
1924        memory_layout: spirv::Word,
1925        transpose: spirv::Word,
1926        matrix_stride: Option<spirv::Word>,
1927        cooperative_matrix_operands: Option<spirv::CooperativeMatrixOperands>,
1928    },
1929    CooperativeVectorOuterProductAccumulateNV {
1930        pointer: spirv::Word,
1931        offset: spirv::Word,
1932        a: spirv::Word,
1933        b: spirv::Word,
1934        memory_layout: spirv::Word,
1935        matrix_interpretation: spirv::Word,
1936        matrix_stride: Option<spirv::Word>,
1937    },
1938    CooperativeVectorReduceSumAccumulateNV {
1939        pointer: spirv::Word,
1940        offset: spirv::Word,
1941        v: spirv::Word,
1942    },
1943    CooperativeVectorMatrixMulAddNV {
1944        input: spirv::Word,
1945        input_interpretation: spirv::Word,
1946        matrix: spirv::Word,
1947        matrix_offset: spirv::Word,
1948        matrix_interpretation: spirv::Word,
1949        bias: spirv::Word,
1950        bias_offset: spirv::Word,
1951        bias_interpretation: spirv::Word,
1952        m: spirv::Word,
1953        k: spirv::Word,
1954        memory_layout: spirv::Word,
1955        transpose: spirv::Word,
1956        matrix_stride: Option<spirv::Word>,
1957        cooperative_matrix_operands: Option<spirv::CooperativeMatrixOperands>,
1958    },
1959    CooperativeMatrixConvertNV {
1960        matrix: spirv::Word,
1961    },
1962    SetMeshOutputsEXT {
1963        vertex_count: spirv::Word,
1964        primitive_count: spirv::Word,
1965    },
1966    GroupNonUniformPartitionEXT {
1967        value: spirv::Word,
1968    },
1969    WritePackedPrimitiveIndices4x8NV {
1970        index_offset: spirv::Word,
1971        packed_indices: spirv::Word,
1972    },
1973    FetchMicroTriangleVertexPositionNV {
1974        accel: spirv::Word,
1975        instance_id: spirv::Word,
1976        geometry_index: spirv::Word,
1977        primitive_index: spirv::Word,
1978        barycentric: spirv::Word,
1979    },
1980    FetchMicroTriangleVertexBarycentricNV {
1981        accel: spirv::Word,
1982        instance_id: spirv::Word,
1983        geometry_index: spirv::Word,
1984        primitive_index: spirv::Word,
1985        barycentric: spirv::Word,
1986    },
1987    CooperativeVectorLoadNV {
1988        pointer: spirv::Word,
1989        offset: spirv::Word,
1990        memory_access: Option<spirv::MemoryAccess>,
1991    },
1992    CooperativeVectorStoreNV {
1993        pointer: spirv::Word,
1994        offset: spirv::Word,
1995        object: spirv::Word,
1996        memory_access: Option<spirv::MemoryAccess>,
1997    },
1998    HitObjectRecordFromQueryEXT {
1999        hit_object: spirv::Word,
2000        ray_query: spirv::Word,
2001        sbt_record_index: spirv::Word,
2002        hit_object_attributes: spirv::Word,
2003    },
2004    HitObjectRecordMissEXT {
2005        hit_object: spirv::Word,
2006        ray_flags: spirv::Word,
2007        miss_index: spirv::Word,
2008        ray_origin: spirv::Word,
2009        ray_tmin: spirv::Word,
2010        ray_direction: spirv::Word,
2011        ray_tmax: spirv::Word,
2012    },
2013    HitObjectRecordMissMotionEXT {
2014        hit_object: spirv::Word,
2015        ray_flags: spirv::Word,
2016        miss_index: spirv::Word,
2017        ray_origin: spirv::Word,
2018        ray_tmin: spirv::Word,
2019        ray_direction: spirv::Word,
2020        ray_tmax: spirv::Word,
2021        current_time: spirv::Word,
2022    },
2023    HitObjectGetIntersectionTriangleVertexPositionsEXT {
2024        hit_object: spirv::Word,
2025    },
2026    HitObjectGetRayFlagsEXT {
2027        hit_object: spirv::Word,
2028    },
2029    HitObjectSetShaderBindingTableRecordIndexEXT {
2030        hit_object: spirv::Word,
2031        sbt_record_index: spirv::Word,
2032    },
2033    HitObjectReorderExecuteShaderEXT {
2034        hit_object: spirv::Word,
2035        payload: spirv::Word,
2036        hint: Option<spirv::Word>,
2037        bits: Option<spirv::Word>,
2038    },
2039    HitObjectTraceReorderExecuteEXT {
2040        hit_object: spirv::Word,
2041        acceleration_structure: spirv::Word,
2042        ray_flags: spirv::Word,
2043        cull_mask: spirv::Word,
2044        sbt_offset: spirv::Word,
2045        sbt_stride: spirv::Word,
2046        miss_index: spirv::Word,
2047        ray_origin: spirv::Word,
2048        ray_tmin: spirv::Word,
2049        ray_direction: spirv::Word,
2050        ray_tmax: spirv::Word,
2051        payload: spirv::Word,
2052        hint: Option<spirv::Word>,
2053        bits: Option<spirv::Word>,
2054    },
2055    HitObjectTraceMotionReorderExecuteEXT {
2056        hit_object: spirv::Word,
2057        acceleration_structure: spirv::Word,
2058        ray_flags: spirv::Word,
2059        cull_mask: spirv::Word,
2060        sbt_offset: spirv::Word,
2061        sbt_stride: spirv::Word,
2062        miss_index: spirv::Word,
2063        ray_origin: spirv::Word,
2064        ray_tmin: spirv::Word,
2065        ray_direction: spirv::Word,
2066        ray_tmax: spirv::Word,
2067        current_time: spirv::Word,
2068        payload: spirv::Word,
2069        hint: Option<spirv::Word>,
2070        bits: Option<spirv::Word>,
2071    },
2072    ReorderThreadWithHintEXT {
2073        hint: spirv::Word,
2074        bits: spirv::Word,
2075    },
2076    ReorderThreadWithHitObjectEXT {
2077        hit_object: spirv::Word,
2078        hint: Option<spirv::Word>,
2079        bits: Option<spirv::Word>,
2080    },
2081    HitObjectTraceRayEXT {
2082        hit_object: spirv::Word,
2083        acceleration_structure: spirv::Word,
2084        ray_flags: spirv::Word,
2085        cull_mask: spirv::Word,
2086        sbt_offset: spirv::Word,
2087        sbt_stride: spirv::Word,
2088        miss_index: spirv::Word,
2089        ray_origin: spirv::Word,
2090        ray_tmin: spirv::Word,
2091        ray_direction: spirv::Word,
2092        ray_tmax: spirv::Word,
2093        payload: spirv::Word,
2094    },
2095    HitObjectTraceRayMotionEXT {
2096        hit_object: spirv::Word,
2097        acceleration_structure: spirv::Word,
2098        ray_flags: spirv::Word,
2099        cull_mask: spirv::Word,
2100        sbt_offset: spirv::Word,
2101        sbt_stride: spirv::Word,
2102        miss_index: spirv::Word,
2103        ray_origin: spirv::Word,
2104        ray_tmin: spirv::Word,
2105        ray_direction: spirv::Word,
2106        ray_tmax: spirv::Word,
2107        current_time: spirv::Word,
2108        payload: spirv::Word,
2109    },
2110    HitObjectRecordEmptyEXT {
2111        hit_object: spirv::Word,
2112    },
2113    HitObjectExecuteShaderEXT {
2114        hit_object: spirv::Word,
2115        payload: spirv::Word,
2116    },
2117    HitObjectGetCurrentTimeEXT {
2118        hit_object: spirv::Word,
2119    },
2120    HitObjectGetAttributesEXT {
2121        hit_object: spirv::Word,
2122        hit_object_attribute: spirv::Word,
2123    },
2124    HitObjectGetHitKindEXT {
2125        hit_object: spirv::Word,
2126    },
2127    HitObjectGetPrimitiveIndexEXT {
2128        hit_object: spirv::Word,
2129    },
2130    HitObjectGetGeometryIndexEXT {
2131        hit_object: spirv::Word,
2132    },
2133    HitObjectGetInstanceIdEXT {
2134        hit_object: spirv::Word,
2135    },
2136    HitObjectGetInstanceCustomIndexEXT {
2137        hit_object: spirv::Word,
2138    },
2139    HitObjectGetObjectRayOriginEXT {
2140        hit_object: spirv::Word,
2141    },
2142    HitObjectGetObjectRayDirectionEXT {
2143        hit_object: spirv::Word,
2144    },
2145    HitObjectGetWorldRayDirectionEXT {
2146        hit_object: spirv::Word,
2147    },
2148    HitObjectGetWorldRayOriginEXT {
2149        hit_object: spirv::Word,
2150    },
2151    HitObjectGetObjectToWorldEXT {
2152        hit_object: spirv::Word,
2153    },
2154    HitObjectGetWorldToObjectEXT {
2155        hit_object: spirv::Word,
2156    },
2157    HitObjectGetRayTMaxEXT {
2158        hit_object: spirv::Word,
2159    },
2160    ReportIntersectionKHR {
2161        hit: spirv::Word,
2162        hit_kind: spirv::Word,
2163    },
2164    IgnoreIntersectionNV,
2165    TerminateRayNV,
2166    TraceNV {
2167        accel: spirv::Word,
2168        ray_flags: spirv::Word,
2169        cull_mask: spirv::Word,
2170        sbt_offset: spirv::Word,
2171        sbt_stride: spirv::Word,
2172        miss_index: spirv::Word,
2173        ray_origin: spirv::Word,
2174        ray_tmin: spirv::Word,
2175        ray_direction: spirv::Word,
2176        ray_tmax: spirv::Word,
2177        payload_id: spirv::Word,
2178    },
2179    TraceMotionNV {
2180        accel: spirv::Word,
2181        ray_flags: spirv::Word,
2182        cull_mask: spirv::Word,
2183        sbt_offset: spirv::Word,
2184        sbt_stride: spirv::Word,
2185        miss_index: spirv::Word,
2186        ray_origin: spirv::Word,
2187        ray_tmin: spirv::Word,
2188        ray_direction: spirv::Word,
2189        ray_tmax: spirv::Word,
2190        time: spirv::Word,
2191        payload_id: spirv::Word,
2192    },
2193    TraceRayMotionNV {
2194        accel: spirv::Word,
2195        ray_flags: spirv::Word,
2196        cull_mask: spirv::Word,
2197        sbt_offset: spirv::Word,
2198        sbt_stride: spirv::Word,
2199        miss_index: spirv::Word,
2200        ray_origin: spirv::Word,
2201        ray_tmin: spirv::Word,
2202        ray_direction: spirv::Word,
2203        ray_tmax: spirv::Word,
2204        time: spirv::Word,
2205        payload: spirv::Word,
2206    },
2207    RayQueryGetIntersectionTriangleVertexPositionsKHR {
2208        ray_query: spirv::Word,
2209        intersection: spirv::Word,
2210    },
2211    ExecuteCallableNV {
2212        sbt_index: spirv::Word,
2213        callable_data_id: spirv::Word,
2214    },
2215    RayQueryGetIntersectionClusterIdNV {
2216        ray_query: spirv::Word,
2217        intersection: spirv::Word,
2218    },
2219    HitObjectGetClusterIdNV {
2220        hit_object: spirv::Word,
2221    },
2222    HitObjectGetRayTMinEXT {
2223        hit_object: spirv::Word,
2224    },
2225    HitObjectGetShaderBindingTableRecordIndexEXT {
2226        hit_object: spirv::Word,
2227    },
2228    HitObjectGetShaderRecordBufferHandleEXT {
2229        hit_object: spirv::Word,
2230    },
2231    HitObjectIsEmptyEXT {
2232        hit_object: spirv::Word,
2233    },
2234    HitObjectIsHitEXT {
2235        hit_object: spirv::Word,
2236    },
2237    HitObjectIsMissEXT {
2238        hit_object: spirv::Word,
2239    },
2240    CooperativeMatrixLoadNV {
2241        pointer: spirv::Word,
2242        stride: spirv::Word,
2243        column_major: spirv::Word,
2244        memory_access: Option<spirv::MemoryAccess>,
2245    },
2246    CooperativeMatrixStoreNV {
2247        pointer: spirv::Word,
2248        object: spirv::Word,
2249        stride: spirv::Word,
2250        column_major: spirv::Word,
2251        memory_access: Option<spirv::MemoryAccess>,
2252    },
2253    CooperativeMatrixMulAddNV {
2254        a: spirv::Word,
2255        b: spirv::Word,
2256        c: spirv::Word,
2257    },
2258    CooperativeMatrixLengthNV {
2259        ty: Token<Type>,
2260    },
2261    BeginInvocationInterlockEXT,
2262    EndInvocationInterlockEXT,
2263    CooperativeMatrixReduceNV {
2264        matrix: spirv::Word,
2265        reduce: spirv::CooperativeMatrixReduce,
2266        combine_func: spirv::Word,
2267    },
2268    CooperativeMatrixLoadTensorNV {
2269        pointer: spirv::Word,
2270        object: spirv::Word,
2271        tensor_layout: spirv::Word,
2272        memory_operand: spirv::MemoryAccess,
2273        tensor_addressing_operands: spirv::TensorAddressingOperands,
2274    },
2275    CooperativeMatrixStoreTensorNV {
2276        pointer: spirv::Word,
2277        object: spirv::Word,
2278        tensor_layout: spirv::Word,
2279        memory_operand: spirv::MemoryAccess,
2280        tensor_addressing_operands: spirv::TensorAddressingOperands,
2281    },
2282    CreateTensorLayoutNV,
2283    TensorLayoutSetDimensionNV {
2284        tensor_layout: spirv::Word,
2285        dim: Vec<spirv::Word>,
2286    },
2287    TensorLayoutSetStrideNV {
2288        tensor_layout: spirv::Word,
2289        stride: Vec<spirv::Word>,
2290    },
2291    TensorLayoutSliceNV {
2292        tensor_layout: spirv::Word,
2293        operands: Vec<spirv::Word>,
2294    },
2295    TensorLayoutSetClampValueNV {
2296        tensor_layout: spirv::Word,
2297        value: spirv::Word,
2298    },
2299    CreateTensorViewNV,
2300    TensorViewSetDimensionNV {
2301        tensor_view: spirv::Word,
2302        dim: Vec<spirv::Word>,
2303    },
2304    TensorViewSetStrideNV {
2305        tensor_view: spirv::Word,
2306        stride: Vec<spirv::Word>,
2307    },
2308    IsHelperInvocationEXT,
2309    TensorViewSetClipNV {
2310        tensor_view: spirv::Word,
2311        clip_row_offset: spirv::Word,
2312        clip_row_span: spirv::Word,
2313        clip_col_offset: spirv::Word,
2314        clip_col_span: spirv::Word,
2315    },
2316    TensorLayoutSetBlockSizeNV {
2317        tensor_layout: spirv::Word,
2318        block_size: Vec<spirv::Word>,
2319    },
2320    CooperativeMatrixTransposeNV {
2321        matrix: spirv::Word,
2322    },
2323    ConvertUToImageNV {
2324        operand: spirv::Word,
2325    },
2326    ConvertUToSamplerNV {
2327        operand: spirv::Word,
2328    },
2329    ConvertImageToUNV {
2330        operand: spirv::Word,
2331    },
2332    ConvertSamplerToUNV {
2333        operand: spirv::Word,
2334    },
2335    ConvertUToSampledImageNV {
2336        operand: spirv::Word,
2337    },
2338    ConvertSampledImageToUNV {
2339        operand: spirv::Word,
2340    },
2341    SamplerImageAddressingModeNV {
2342        bit_width: u32,
2343    },
2344    RawAccessChainNV {
2345        base: spirv::Word,
2346        byte_stride: spirv::Word,
2347        element_index: spirv::Word,
2348        byte_offset: spirv::Word,
2349        raw_access_chain_operands: Option<spirv::RawAccessChainOperands>,
2350    },
2351    RayQueryGetIntersectionSpherePositionNV {
2352        ray_query: spirv::Word,
2353        intersection: spirv::Word,
2354    },
2355    RayQueryGetIntersectionSphereRadiusNV {
2356        ray_query: spirv::Word,
2357        intersection: spirv::Word,
2358    },
2359    RayQueryGetIntersectionLSSPositionsNV {
2360        ray_query: spirv::Word,
2361        intersection: spirv::Word,
2362    },
2363    RayQueryGetIntersectionLSSRadiiNV {
2364        ray_query: spirv::Word,
2365        intersection: spirv::Word,
2366    },
2367    RayQueryGetIntersectionLSSHitValueNV {
2368        ray_query: spirv::Word,
2369        intersection: spirv::Word,
2370    },
2371    HitObjectGetSpherePositionNV {
2372        hit_object: spirv::Word,
2373    },
2374    HitObjectGetSphereRadiusNV {
2375        hit_object: spirv::Word,
2376    },
2377    HitObjectGetLSSPositionsNV {
2378        hit_object: spirv::Word,
2379    },
2380    HitObjectGetLSSRadiiNV {
2381        hit_object: spirv::Word,
2382    },
2383    HitObjectIsSphereHitNV {
2384        hit_object: spirv::Word,
2385    },
2386    HitObjectIsLSSHitNV {
2387        hit_object: spirv::Word,
2388    },
2389    RayQueryIsSphereHitNV {
2390        ray_query: spirv::Word,
2391        intersection: spirv::Word,
2392    },
2393    RayQueryIsLSSHitNV {
2394        ray_query: spirv::Word,
2395        intersection: spirv::Word,
2396    },
2397    SubgroupShuffleINTEL {
2398        data: spirv::Word,
2399        invocation_id: spirv::Word,
2400    },
2401    SubgroupShuffleDownINTEL {
2402        current: spirv::Word,
2403        next: spirv::Word,
2404        delta: spirv::Word,
2405    },
2406    SubgroupShuffleUpINTEL {
2407        previous: spirv::Word,
2408        current: spirv::Word,
2409        delta: spirv::Word,
2410    },
2411    SubgroupShuffleXorINTEL {
2412        data: spirv::Word,
2413        value: spirv::Word,
2414    },
2415    SubgroupBlockReadINTEL {
2416        ptr: spirv::Word,
2417    },
2418    SubgroupBlockWriteINTEL {
2419        ptr: spirv::Word,
2420        data: spirv::Word,
2421    },
2422    SubgroupImageBlockReadINTEL {
2423        image: spirv::Word,
2424        coordinate: spirv::Word,
2425    },
2426    SubgroupImageBlockWriteINTEL {
2427        image: spirv::Word,
2428        coordinate: spirv::Word,
2429        data: spirv::Word,
2430    },
2431    SubgroupImageMediaBlockReadINTEL {
2432        image: spirv::Word,
2433        coordinate: spirv::Word,
2434        width: spirv::Word,
2435        height: spirv::Word,
2436    },
2437    SubgroupImageMediaBlockWriteINTEL {
2438        image: spirv::Word,
2439        coordinate: spirv::Word,
2440        width: spirv::Word,
2441        height: spirv::Word,
2442        data: spirv::Word,
2443    },
2444    UCountLeadingZerosINTEL {
2445        operand: spirv::Word,
2446    },
2447    UCountTrailingZerosINTEL {
2448        operand: spirv::Word,
2449    },
2450    AbsISubINTEL {
2451        operand_1: spirv::Word,
2452        operand_2: spirv::Word,
2453    },
2454    AbsUSubINTEL {
2455        operand_1: spirv::Word,
2456        operand_2: spirv::Word,
2457    },
2458    IAddSatINTEL {
2459        operand_1: spirv::Word,
2460        operand_2: spirv::Word,
2461    },
2462    UAddSatINTEL {
2463        operand_1: spirv::Word,
2464        operand_2: spirv::Word,
2465    },
2466    IAverageINTEL {
2467        operand_1: spirv::Word,
2468        operand_2: spirv::Word,
2469    },
2470    UAverageINTEL {
2471        operand_1: spirv::Word,
2472        operand_2: spirv::Word,
2473    },
2474    IAverageRoundedINTEL {
2475        operand_1: spirv::Word,
2476        operand_2: spirv::Word,
2477    },
2478    UAverageRoundedINTEL {
2479        operand_1: spirv::Word,
2480        operand_2: spirv::Word,
2481    },
2482    ISubSatINTEL {
2483        operand_1: spirv::Word,
2484        operand_2: spirv::Word,
2485    },
2486    USubSatINTEL {
2487        operand_1: spirv::Word,
2488        operand_2: spirv::Word,
2489    },
2490    IMul32x16INTEL {
2491        operand_1: spirv::Word,
2492        operand_2: spirv::Word,
2493    },
2494    UMul32x16INTEL {
2495        operand_1: spirv::Word,
2496        operand_2: spirv::Word,
2497    },
2498    ConstantFunctionPointerINTEL {
2499        function: spirv::Word,
2500    },
2501    FunctionPointerCallINTEL {
2502        operand_1: Vec<spirv::Word>,
2503    },
2504    AsmTargetINTEL {
2505        asm_target: String,
2506    },
2507    AsmINTEL {
2508        asm_type: spirv::Word,
2509        target: spirv::Word,
2510        asm_instructions: String,
2511        constraints: String,
2512    },
2513    AsmCallINTEL {
2514        asm: spirv::Word,
2515        argument: Vec<spirv::Word>,
2516    },
2517    AtomicFMinEXT {
2518        pointer: spirv::Word,
2519        memory: spirv::Word,
2520        semantics: spirv::Word,
2521        value: spirv::Word,
2522    },
2523    AtomicFMaxEXT {
2524        pointer: spirv::Word,
2525        memory: spirv::Word,
2526        semantics: spirv::Word,
2527        value: spirv::Word,
2528    },
2529    AssumeTrueKHR {
2530        condition: spirv::Word,
2531    },
2532    ExpectKHR {
2533        value: spirv::Word,
2534        expected_value: spirv::Word,
2535    },
2536    DecorateString {
2537        target: spirv::Word,
2538        decoration: spirv::Decoration,
2539    },
2540    MemberDecorateString {
2541        struct_type: Token<Type>,
2542        member: u32,
2543        decoration: spirv::Decoration,
2544    },
2545    VmeImageINTEL {
2546        image_type: Token<Type>,
2547        sampler: spirv::Word,
2548    },
2549    TypeVmeImageINTEL {
2550        image_type: Token<Type>,
2551    },
2552    TypeAvcImePayloadINTEL,
2553    TypeAvcRefPayloadINTEL,
2554    TypeAvcSicPayloadINTEL,
2555    TypeAvcMcePayloadINTEL,
2556    TypeAvcMceResultINTEL,
2557    TypeAvcImeResultINTEL,
2558    TypeAvcImeResultSingleReferenceStreamoutINTEL,
2559    TypeAvcImeResultDualReferenceStreamoutINTEL,
2560    TypeAvcImeSingleReferenceStreaminINTEL,
2561    TypeAvcImeDualReferenceStreaminINTEL,
2562    TypeAvcRefResultINTEL,
2563    TypeAvcSicResultINTEL,
2564    SubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL {
2565        slice_type: Token<Type>,
2566        qp: spirv::Word,
2567    },
2568    SubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL {
2569        reference_base_penalty: spirv::Word,
2570        payload: spirv::Word,
2571    },
2572    SubgroupAvcMceGetDefaultInterShapePenaltyINTEL {
2573        slice_type: Token<Type>,
2574        qp: spirv::Word,
2575    },
2576    SubgroupAvcMceSetInterShapePenaltyINTEL {
2577        packed_shape_penalty: spirv::Word,
2578        payload: spirv::Word,
2579    },
2580    SubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL {
2581        slice_type: Token<Type>,
2582        qp: spirv::Word,
2583    },
2584    SubgroupAvcMceSetInterDirectionPenaltyINTEL {
2585        direction_cost: spirv::Word,
2586        payload: spirv::Word,
2587    },
2588    SubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL {
2589        slice_type: Token<Type>,
2590        qp: spirv::Word,
2591    },
2592    SubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL {
2593        slice_type: Token<Type>,
2594        qp: spirv::Word,
2595    },
2596    SubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL,
2597    SubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL,
2598    SubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL,
2599    SubgroupAvcMceSetMotionVectorCostFunctionINTEL {
2600        packed_cost_center_delta: spirv::Word,
2601        packed_cost_table: spirv::Word,
2602        cost_precision: spirv::Word,
2603        payload: spirv::Word,
2604    },
2605    SubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL {
2606        slice_type: Token<Type>,
2607        qp: spirv::Word,
2608    },
2609    SubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL,
2610    SubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL,
2611    SubgroupAvcMceSetAcOnlyHaarINTEL {
2612        payload: spirv::Word,
2613    },
2614    SubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL {
2615        source_field_polarity: spirv::Word,
2616        payload: spirv::Word,
2617    },
2618    SubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL {
2619        reference_field_polarity: spirv::Word,
2620        payload: spirv::Word,
2621    },
2622    SubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL {
2623        forward_reference_field_polarity: spirv::Word,
2624        backward_reference_field_polarity: spirv::Word,
2625        payload: spirv::Word,
2626    },
2627    SubgroupAvcMceConvertToImePayloadINTEL {
2628        payload: spirv::Word,
2629    },
2630    SubgroupAvcMceConvertToImeResultINTEL {
2631        payload: spirv::Word,
2632    },
2633    SubgroupAvcMceConvertToRefPayloadINTEL {
2634        payload: spirv::Word,
2635    },
2636    SubgroupAvcMceConvertToRefResultINTEL {
2637        payload: spirv::Word,
2638    },
2639    SubgroupAvcMceConvertToSicPayloadINTEL {
2640        payload: spirv::Word,
2641    },
2642    SubgroupAvcMceConvertToSicResultINTEL {
2643        payload: spirv::Word,
2644    },
2645    SubgroupAvcMceGetMotionVectorsINTEL {
2646        payload: spirv::Word,
2647    },
2648    SubgroupAvcMceGetInterDistortionsINTEL {
2649        payload: spirv::Word,
2650    },
2651    SubgroupAvcMceGetBestInterDistortionsINTEL {
2652        payload: spirv::Word,
2653    },
2654    SubgroupAvcMceGetInterMajorShapeINTEL {
2655        payload: spirv::Word,
2656    },
2657    SubgroupAvcMceGetInterMinorShapeINTEL {
2658        payload: spirv::Word,
2659    },
2660    SubgroupAvcMceGetInterDirectionsINTEL {
2661        payload: spirv::Word,
2662    },
2663    SubgroupAvcMceGetInterMotionVectorCountINTEL {
2664        payload: spirv::Word,
2665    },
2666    SubgroupAvcMceGetInterReferenceIdsINTEL {
2667        payload: spirv::Word,
2668    },
2669    SubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL {
2670        packed_reference_ids: spirv::Word,
2671        packed_reference_parameter_field_polarities: spirv::Word,
2672        payload: spirv::Word,
2673    },
2674    SubgroupAvcImeInitializeINTEL {
2675        src_coord: spirv::Word,
2676        partition_mask: spirv::Word,
2677        sad_adjustment: spirv::Word,
2678    },
2679    SubgroupAvcImeSetSingleReferenceINTEL {
2680        ref_offset: spirv::Word,
2681        search_window_config: spirv::Word,
2682        payload: spirv::Word,
2683    },
2684    SubgroupAvcImeSetDualReferenceINTEL {
2685        fwd_ref_offset: spirv::Word,
2686        bwd_ref_offset: spirv::Word,
2687        search_window_config: spirv::Word,
2688        payload: spirv::Word,
2689    },
2690    SubgroupAvcImeRefWindowSizeINTEL {
2691        search_window_config: spirv::Word,
2692        dual_ref: spirv::Word,
2693    },
2694    SubgroupAvcImeAdjustRefOffsetINTEL {
2695        ref_offset: spirv::Word,
2696        src_coord: spirv::Word,
2697        ref_window_size: spirv::Word,
2698        image_size: spirv::Word,
2699    },
2700    SubgroupAvcImeConvertToMcePayloadINTEL {
2701        payload: spirv::Word,
2702    },
2703    SubgroupAvcImeSetMaxMotionVectorCountINTEL {
2704        max_motion_vector_count: spirv::Word,
2705        payload: spirv::Word,
2706    },
2707    SubgroupAvcImeSetUnidirectionalMixDisableINTEL {
2708        payload: spirv::Word,
2709    },
2710    SubgroupAvcImeSetEarlySearchTerminationThresholdINTEL {
2711        threshold: spirv::Word,
2712        payload: spirv::Word,
2713    },
2714    SubgroupAvcImeSetWeightedSadINTEL {
2715        packed_sad_weights: spirv::Word,
2716        payload: spirv::Word,
2717    },
2718    SubgroupAvcImeEvaluateWithSingleReferenceINTEL {
2719        src_image: spirv::Word,
2720        ref_image: spirv::Word,
2721        payload: spirv::Word,
2722    },
2723    SubgroupAvcImeEvaluateWithDualReferenceINTEL {
2724        src_image: spirv::Word,
2725        fwd_ref_image: spirv::Word,
2726        bwd_ref_image: spirv::Word,
2727        payload: spirv::Word,
2728    },
2729    SubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL {
2730        src_image: spirv::Word,
2731        ref_image: spirv::Word,
2732        payload: spirv::Word,
2733        streamin_components: spirv::Word,
2734    },
2735    SubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL {
2736        src_image: spirv::Word,
2737        fwd_ref_image: spirv::Word,
2738        bwd_ref_image: spirv::Word,
2739        payload: spirv::Word,
2740        streamin_components: spirv::Word,
2741    },
2742    SubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL {
2743        src_image: spirv::Word,
2744        ref_image: spirv::Word,
2745        payload: spirv::Word,
2746    },
2747    SubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL {
2748        src_image: spirv::Word,
2749        fwd_ref_image: spirv::Word,
2750        bwd_ref_image: spirv::Word,
2751        payload: spirv::Word,
2752    },
2753    SubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL {
2754        src_image: spirv::Word,
2755        ref_image: spirv::Word,
2756        payload: spirv::Word,
2757        streamin_components: spirv::Word,
2758    },
2759    SubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL {
2760        src_image: spirv::Word,
2761        fwd_ref_image: spirv::Word,
2762        bwd_ref_image: spirv::Word,
2763        payload: spirv::Word,
2764        streamin_components: spirv::Word,
2765    },
2766    SubgroupAvcImeConvertToMceResultINTEL {
2767        payload: spirv::Word,
2768    },
2769    SubgroupAvcImeGetSingleReferenceStreaminINTEL {
2770        payload: spirv::Word,
2771    },
2772    SubgroupAvcImeGetDualReferenceStreaminINTEL {
2773        payload: spirv::Word,
2774    },
2775    SubgroupAvcImeStripSingleReferenceStreamoutINTEL {
2776        payload: spirv::Word,
2777    },
2778    SubgroupAvcImeStripDualReferenceStreamoutINTEL {
2779        payload: spirv::Word,
2780    },
2781    SubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL {
2782        payload: spirv::Word,
2783        major_shape: spirv::Word,
2784    },
2785    SubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL {
2786        payload: spirv::Word,
2787        major_shape: spirv::Word,
2788    },
2789    SubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL {
2790        payload: spirv::Word,
2791        major_shape: spirv::Word,
2792    },
2793    SubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL {
2794        payload: spirv::Word,
2795        major_shape: spirv::Word,
2796        direction: spirv::Word,
2797    },
2798    SubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL {
2799        payload: spirv::Word,
2800        major_shape: spirv::Word,
2801        direction: spirv::Word,
2802    },
2803    SubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL {
2804        payload: spirv::Word,
2805        major_shape: spirv::Word,
2806        direction: spirv::Word,
2807    },
2808    SubgroupAvcImeGetBorderReachedINTEL {
2809        image_select: spirv::Word,
2810        payload: spirv::Word,
2811    },
2812    SubgroupAvcImeGetTruncatedSearchIndicationINTEL {
2813        payload: spirv::Word,
2814    },
2815    SubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL {
2816        payload: spirv::Word,
2817    },
2818    SubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL {
2819        payload: spirv::Word,
2820    },
2821    SubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL {
2822        payload: spirv::Word,
2823    },
2824    SubgroupAvcFmeInitializeINTEL {
2825        src_coord: spirv::Word,
2826        motion_vectors: spirv::Word,
2827        major_shapes: spirv::Word,
2828        minor_shapes: spirv::Word,
2829        direction: spirv::Word,
2830        pixel_resolution: spirv::Word,
2831        sad_adjustment: spirv::Word,
2832    },
2833    SubgroupAvcBmeInitializeINTEL {
2834        src_coord: spirv::Word,
2835        motion_vectors: spirv::Word,
2836        major_shapes: spirv::Word,
2837        minor_shapes: spirv::Word,
2838        direction: spirv::Word,
2839        pixel_resolution: spirv::Word,
2840        bidirectional_weight: spirv::Word,
2841        sad_adjustment: spirv::Word,
2842    },
2843    SubgroupAvcRefConvertToMcePayloadINTEL {
2844        payload: spirv::Word,
2845    },
2846    SubgroupAvcRefSetBidirectionalMixDisableINTEL {
2847        payload: spirv::Word,
2848    },
2849    SubgroupAvcRefSetBilinearFilterEnableINTEL {
2850        payload: spirv::Word,
2851    },
2852    SubgroupAvcRefEvaluateWithSingleReferenceINTEL {
2853        src_image: spirv::Word,
2854        ref_image: spirv::Word,
2855        payload: spirv::Word,
2856    },
2857    SubgroupAvcRefEvaluateWithDualReferenceINTEL {
2858        src_image: spirv::Word,
2859        fwd_ref_image: spirv::Word,
2860        bwd_ref_image: spirv::Word,
2861        payload: spirv::Word,
2862    },
2863    SubgroupAvcRefEvaluateWithMultiReferenceINTEL {
2864        src_image: spirv::Word,
2865        packed_reference_ids: spirv::Word,
2866        payload: spirv::Word,
2867    },
2868    SubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL {
2869        src_image: spirv::Word,
2870        packed_reference_ids: spirv::Word,
2871        packed_reference_field_polarities: spirv::Word,
2872        payload: spirv::Word,
2873    },
2874    SubgroupAvcRefConvertToMceResultINTEL {
2875        payload: spirv::Word,
2876    },
2877    SubgroupAvcSicInitializeINTEL {
2878        src_coord: spirv::Word,
2879    },
2880    SubgroupAvcSicConfigureSkcINTEL {
2881        skip_block_partition_type: Token<Type>,
2882        skip_motion_vector_mask: spirv::Word,
2883        motion_vectors: spirv::Word,
2884        bidirectional_weight: spirv::Word,
2885        sad_adjustment: spirv::Word,
2886        payload: spirv::Word,
2887    },
2888    SubgroupAvcSicConfigureIpeLumaINTEL {
2889        luma_intra_partition_mask: spirv::Word,
2890        intra_neighbour_availabilty: spirv::Word,
2891        left_edge_luma_pixels: spirv::Word,
2892        upper_left_corner_luma_pixel: spirv::Word,
2893        upper_edge_luma_pixels: spirv::Word,
2894        upper_right_edge_luma_pixels: spirv::Word,
2895        sad_adjustment: spirv::Word,
2896        payload: spirv::Word,
2897    },
2898    SubgroupAvcSicConfigureIpeLumaChromaINTEL {
2899        luma_intra_partition_mask: spirv::Word,
2900        intra_neighbour_availabilty: spirv::Word,
2901        left_edge_luma_pixels: spirv::Word,
2902        upper_left_corner_luma_pixel: spirv::Word,
2903        upper_edge_luma_pixels: spirv::Word,
2904        upper_right_edge_luma_pixels: spirv::Word,
2905        left_edge_chroma_pixels: spirv::Word,
2906        upper_left_corner_chroma_pixel: spirv::Word,
2907        upper_edge_chroma_pixels: spirv::Word,
2908        sad_adjustment: spirv::Word,
2909        payload: spirv::Word,
2910    },
2911    SubgroupAvcSicGetMotionVectorMaskINTEL {
2912        skip_block_partition_type: Token<Type>,
2913        direction: spirv::Word,
2914    },
2915    SubgroupAvcSicConvertToMcePayloadINTEL {
2916        payload: spirv::Word,
2917    },
2918    SubgroupAvcSicSetIntraLumaShapePenaltyINTEL {
2919        packed_shape_penalty: spirv::Word,
2920        payload: spirv::Word,
2921    },
2922    SubgroupAvcSicSetIntraLumaModeCostFunctionINTEL {
2923        luma_mode_penalty: spirv::Word,
2924        luma_packed_neighbor_modes: spirv::Word,
2925        luma_packed_non_dc_penalty: spirv::Word,
2926        payload: spirv::Word,
2927    },
2928    SubgroupAvcSicSetIntraChromaModeCostFunctionINTEL {
2929        chroma_mode_base_penalty: spirv::Word,
2930        payload: spirv::Word,
2931    },
2932    SubgroupAvcSicSetBilinearFilterEnableINTEL {
2933        payload: spirv::Word,
2934    },
2935    SubgroupAvcSicSetSkcForwardTransformEnableINTEL {
2936        packed_sad_coefficients: spirv::Word,
2937        payload: spirv::Word,
2938    },
2939    SubgroupAvcSicSetBlockBasedRawSkipSadINTEL {
2940        block_based_skip_type: Token<Type>,
2941        payload: spirv::Word,
2942    },
2943    SubgroupAvcSicEvaluateIpeINTEL {
2944        src_image: spirv::Word,
2945        payload: spirv::Word,
2946    },
2947    SubgroupAvcSicEvaluateWithSingleReferenceINTEL {
2948        src_image: spirv::Word,
2949        ref_image: spirv::Word,
2950        payload: spirv::Word,
2951    },
2952    SubgroupAvcSicEvaluateWithDualReferenceINTEL {
2953        src_image: spirv::Word,
2954        fwd_ref_image: spirv::Word,
2955        bwd_ref_image: spirv::Word,
2956        payload: spirv::Word,
2957    },
2958    SubgroupAvcSicEvaluateWithMultiReferenceINTEL {
2959        src_image: spirv::Word,
2960        packed_reference_ids: spirv::Word,
2961        payload: spirv::Word,
2962    },
2963    SubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL {
2964        src_image: spirv::Word,
2965        packed_reference_ids: spirv::Word,
2966        packed_reference_field_polarities: spirv::Word,
2967        payload: spirv::Word,
2968    },
2969    SubgroupAvcSicConvertToMceResultINTEL {
2970        payload: spirv::Word,
2971    },
2972    SubgroupAvcSicGetIpeLumaShapeINTEL {
2973        payload: spirv::Word,
2974    },
2975    SubgroupAvcSicGetBestIpeLumaDistortionINTEL {
2976        payload: spirv::Word,
2977    },
2978    SubgroupAvcSicGetBestIpeChromaDistortionINTEL {
2979        payload: spirv::Word,
2980    },
2981    SubgroupAvcSicGetPackedIpeLumaModesINTEL {
2982        payload: spirv::Word,
2983    },
2984    SubgroupAvcSicGetIpeChromaModeINTEL {
2985        payload: spirv::Word,
2986    },
2987    SubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL {
2988        payload: spirv::Word,
2989    },
2990    SubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL {
2991        payload: spirv::Word,
2992    },
2993    SubgroupAvcSicGetInterRawSadsINTEL {
2994        payload: spirv::Word,
2995    },
2996    VariableLengthArrayINTEL {
2997        length: Token<Constant>,
2998    },
2999    SaveMemoryINTEL,
3000    RestoreMemoryINTEL {
3001        ptr: spirv::Word,
3002    },
3003    ArbitraryFloatSinCosPiALTERA {
3004        a: spirv::Word,
3005        ma: u32,
3006        m_result: u32,
3007        subnormal: u32,
3008        rounding: u32,
3009        rounding_accuracy: u32,
3010    },
3011    ArbitraryFloatCastALTERA {
3012        a: spirv::Word,
3013        ma: u32,
3014        mresult: u32,
3015        subnormal: u32,
3016        rounding: u32,
3017        accuracy: u32,
3018    },
3019    ArbitraryFloatCastFromIntALTERA {
3020        a: spirv::Word,
3021        mresult: u32,
3022        from_sign: u32,
3023        subnormal: u32,
3024        rounding: u32,
3025        accuracy: u32,
3026    },
3027    ArbitraryFloatCastToIntALTERA {
3028        a: spirv::Word,
3029        ma: u32,
3030        to_sign: u32,
3031        subnormal: u32,
3032        rounding: u32,
3033        accuracy: u32,
3034    },
3035    ArbitraryFloatAddALTERA {
3036        a: spirv::Word,
3037        ma: u32,
3038        b: spirv::Word,
3039        mb: u32,
3040        m_result: u32,
3041        subnormal: u32,
3042        rounding: u32,
3043        accuracy: u32,
3044    },
3045    ArbitraryFloatSubALTERA {
3046        a: spirv::Word,
3047        ma: u32,
3048        b: spirv::Word,
3049        mb: u32,
3050        mresult: u32,
3051        subnormal: u32,
3052        rounding: u32,
3053        accuracy: u32,
3054    },
3055    ArbitraryFloatMulALTERA {
3056        a: spirv::Word,
3057        ma: u32,
3058        b: spirv::Word,
3059        mb: u32,
3060        mresult: u32,
3061        subnormal: u32,
3062        rounding: u32,
3063        accuracy: u32,
3064    },
3065    ArbitraryFloatDivALTERA {
3066        a: spirv::Word,
3067        ma: u32,
3068        b: spirv::Word,
3069        mb: u32,
3070        mresult: u32,
3071        subnormal: u32,
3072        rounding: u32,
3073        accuracy: u32,
3074    },
3075    ArbitraryFloatGTALTERA {
3076        a: spirv::Word,
3077        ma: u32,
3078        b: spirv::Word,
3079        mb: u32,
3080    },
3081    ArbitraryFloatGEALTERA {
3082        a: spirv::Word,
3083        ma: u32,
3084        b: spirv::Word,
3085        mb: u32,
3086    },
3087    ArbitraryFloatLTALTERA {
3088        a: spirv::Word,
3089        ma: u32,
3090        b: spirv::Word,
3091        mb: u32,
3092    },
3093    ArbitraryFloatLEALTERA {
3094        a: spirv::Word,
3095        ma: u32,
3096        b: spirv::Word,
3097        mb: u32,
3098    },
3099    ArbitraryFloatEQALTERA {
3100        a: spirv::Word,
3101        ma: u32,
3102        b: spirv::Word,
3103        mb: u32,
3104    },
3105    ArbitraryFloatRecipALTERA {
3106        a: spirv::Word,
3107        ma: u32,
3108        mresult: u32,
3109        subnormal: u32,
3110        rounding: u32,
3111        accuracy: u32,
3112    },
3113    ArbitraryFloatRSqrtALTERA {
3114        a: spirv::Word,
3115        ma: u32,
3116        mresult: u32,
3117        subnormal: u32,
3118        rounding: u32,
3119        accuracy: u32,
3120    },
3121    ArbitraryFloatCbrtALTERA {
3122        a: spirv::Word,
3123        ma: u32,
3124        mresult: u32,
3125        subnormal: u32,
3126        rounding: u32,
3127        accuracy: u32,
3128    },
3129    ArbitraryFloatHypotALTERA {
3130        a: spirv::Word,
3131        ma: u32,
3132        b: spirv::Word,
3133        mb: u32,
3134        mresult: u32,
3135        subnormal: u32,
3136        rounding: u32,
3137        accuracy: u32,
3138    },
3139    ArbitraryFloatSqrtALTERA {
3140        a: spirv::Word,
3141        ma: u32,
3142        mresult: u32,
3143        subnormal: u32,
3144        rounding: u32,
3145        accuracy: u32,
3146    },
3147    ArbitraryFloatLogINTEL {
3148        a: spirv::Word,
3149        ma: u32,
3150        mresult: u32,
3151        subnormal: u32,
3152        rounding: u32,
3153        accuracy: u32,
3154    },
3155    ArbitraryFloatLog2INTEL {
3156        a: spirv::Word,
3157        ma: u32,
3158        mresult: u32,
3159        subnormal: u32,
3160        rounding: u32,
3161        accuracy: u32,
3162    },
3163    ArbitraryFloatLog10INTEL {
3164        a: spirv::Word,
3165        ma: u32,
3166        mresult: u32,
3167        subnormal: u32,
3168        rounding: u32,
3169        accuracy: u32,
3170    },
3171    ArbitraryFloatLog1pINTEL {
3172        a: spirv::Word,
3173        ma: u32,
3174        mresult: u32,
3175        subnormal: u32,
3176        rounding: u32,
3177        accuracy: u32,
3178    },
3179    ArbitraryFloatExpINTEL {
3180        a: spirv::Word,
3181        ma: u32,
3182        mresult: u32,
3183        subnormal: u32,
3184        rounding: u32,
3185        accuracy: u32,
3186    },
3187    ArbitraryFloatExp2INTEL {
3188        a: spirv::Word,
3189        ma: u32,
3190        mresult: u32,
3191        subnormal: u32,
3192        rounding: u32,
3193        accuracy: u32,
3194    },
3195    ArbitraryFloatExp10INTEL {
3196        a: spirv::Word,
3197        ma: u32,
3198        mresult: u32,
3199        subnormal: u32,
3200        rounding: u32,
3201        accuracy: u32,
3202    },
3203    ArbitraryFloatExpm1INTEL {
3204        a: spirv::Word,
3205        ma: u32,
3206        mresult: u32,
3207        subnormal: u32,
3208        rounding: u32,
3209        accuracy: u32,
3210    },
3211    ArbitraryFloatSinINTEL {
3212        a: spirv::Word,
3213        ma: u32,
3214        mresult: u32,
3215        subnormal: u32,
3216        rounding: u32,
3217        accuracy: u32,
3218    },
3219    ArbitraryFloatCosINTEL {
3220        a: spirv::Word,
3221        ma: u32,
3222        mresult: u32,
3223        subnormal: u32,
3224        rounding: u32,
3225        accuracy: u32,
3226    },
3227    ArbitraryFloatSinCosINTEL {
3228        a: spirv::Word,
3229        ma: u32,
3230        mresult: u32,
3231        subnormal: u32,
3232        rounding: u32,
3233        accuracy: u32,
3234    },
3235    ArbitraryFloatSinPiINTEL {
3236        a: spirv::Word,
3237        ma: u32,
3238        mresult: u32,
3239        subnormal: u32,
3240        rounding: u32,
3241        accuracy: u32,
3242    },
3243    ArbitraryFloatCosPiINTEL {
3244        a: spirv::Word,
3245        ma: u32,
3246        mresult: u32,
3247        subnormal: u32,
3248        rounding: u32,
3249        accuracy: u32,
3250    },
3251    ArbitraryFloatASinINTEL {
3252        a: spirv::Word,
3253        ma: u32,
3254        mresult: u32,
3255        subnormal: u32,
3256        rounding: u32,
3257        accuracy: u32,
3258    },
3259    ArbitraryFloatASinPiINTEL {
3260        a: spirv::Word,
3261        ma: u32,
3262        mresult: u32,
3263        subnormal: u32,
3264        rounding: u32,
3265        accuracy: u32,
3266    },
3267    ArbitraryFloatACosINTEL {
3268        a: spirv::Word,
3269        m1: u32,
3270        mout: u32,
3271        enable_subnormals: u32,
3272        rounding_mode: u32,
3273        rounding_accuracy: u32,
3274    },
3275    ArbitraryFloatACosPiINTEL {
3276        a: spirv::Word,
3277        ma: u32,
3278        mresult: u32,
3279        subnormal: u32,
3280        rounding: u32,
3281        accuracy: u32,
3282    },
3283    ArbitraryFloatATanINTEL {
3284        a: spirv::Word,
3285        ma: u32,
3286        mresult: u32,
3287        subnormal: u32,
3288        rounding: u32,
3289        accuracy: u32,
3290    },
3291    ArbitraryFloatATanPiINTEL {
3292        a: spirv::Word,
3293        ma: u32,
3294        mresult: u32,
3295        subnormal: u32,
3296        rounding: u32,
3297        accuracy: u32,
3298    },
3299    ArbitraryFloatATan2INTEL {
3300        a: spirv::Word,
3301        ma: u32,
3302        b: spirv::Word,
3303        mb: u32,
3304        mresult: u32,
3305        subnormal: u32,
3306        rounding: u32,
3307        accuracy: u32,
3308    },
3309    ArbitraryFloatPowINTEL {
3310        a: spirv::Word,
3311        ma: u32,
3312        b: spirv::Word,
3313        mb: u32,
3314        mresult: u32,
3315        subnormal: u32,
3316        rounding: u32,
3317        accuracy: u32,
3318    },
3319    ArbitraryFloatPowRINTEL {
3320        a: spirv::Word,
3321        ma: u32,
3322        b: spirv::Word,
3323        mb: u32,
3324        mresult: u32,
3325        subnormal: u32,
3326        rounding: u32,
3327        accuracy: u32,
3328    },
3329    ArbitraryFloatPowNINTEL {
3330        a: spirv::Word,
3331        ma: u32,
3332        b: spirv::Word,
3333        sign_of_b: u32,
3334        mresult: u32,
3335        subnormal: u32,
3336        rounding: u32,
3337        accuracy: u32,
3338    },
3339    LoopControlINTEL {
3340        loop_control_parameters: Vec<u32>,
3341    },
3342    AliasDomainDeclINTEL {
3343        name: Option<spirv::Word>,
3344    },
3345    AliasScopeDeclINTEL {
3346        alias_domain: spirv::Word,
3347        name: Option<spirv::Word>,
3348    },
3349    AliasScopeListDeclINTEL {
3350        alias_scope_1_alias_scope_2: Vec<spirv::Word>,
3351    },
3352    FixedSqrtALTERA {
3353        input: spirv::Word,
3354        s: u32,
3355        i: u32,
3356        r_i: u32,
3357        q: u32,
3358        o: u32,
3359    },
3360    FixedRecipALTERA {
3361        input: spirv::Word,
3362        s: u32,
3363        i: u32,
3364        r_i: u32,
3365        q: u32,
3366        o: u32,
3367    },
3368    FixedRsqrtALTERA {
3369        input: spirv::Word,
3370        s: u32,
3371        i: u32,
3372        r_i: u32,
3373        q: u32,
3374        o: u32,
3375    },
3376    FixedSinALTERA {
3377        input: spirv::Word,
3378        s: u32,
3379        i: u32,
3380        r_i: u32,
3381        q: u32,
3382        o: u32,
3383    },
3384    FixedCosALTERA {
3385        input: spirv::Word,
3386        s: u32,
3387        i: u32,
3388        r_i: u32,
3389        q: u32,
3390        o: u32,
3391    },
3392    FixedSinCosALTERA {
3393        input: spirv::Word,
3394        s: u32,
3395        i: u32,
3396        r_i: u32,
3397        q: u32,
3398        o: u32,
3399    },
3400    FixedSinPiALTERA {
3401        input: spirv::Word,
3402        s: u32,
3403        i: u32,
3404        r_i: u32,
3405        q: u32,
3406        o: u32,
3407    },
3408    FixedCosPiALTERA {
3409        input: spirv::Word,
3410        s: u32,
3411        i: u32,
3412        r_i: u32,
3413        q: u32,
3414        o: u32,
3415    },
3416    FixedSinCosPiALTERA {
3417        input: spirv::Word,
3418        s: u32,
3419        i: u32,
3420        r_i: u32,
3421        q: u32,
3422        o: u32,
3423    },
3424    FixedLogALTERA {
3425        input: spirv::Word,
3426        s: u32,
3427        i: u32,
3428        r_i: u32,
3429        q: u32,
3430        o: u32,
3431    },
3432    FixedExpALTERA {
3433        input: spirv::Word,
3434        s: u32,
3435        i: u32,
3436        r_i: u32,
3437        q: u32,
3438        o: u32,
3439    },
3440    PtrCastToCrossWorkgroupALTERA {
3441        pointer: spirv::Word,
3442    },
3443    CrossWorkgroupCastToPtrALTERA {
3444        pointer: spirv::Word,
3445    },
3446    ReadPipeBlockingALTERA {
3447        packet_size: spirv::Word,
3448        packet_alignment: spirv::Word,
3449    },
3450    WritePipeBlockingALTERA {
3451        packet_size: spirv::Word,
3452        packet_alignment: spirv::Word,
3453    },
3454    FPGARegALTERA {
3455        input: spirv::Word,
3456    },
3457    RayQueryGetRayTMinKHR {
3458        ray_query: spirv::Word,
3459    },
3460    RayQueryGetRayFlagsKHR {
3461        ray_query: spirv::Word,
3462    },
3463    RayQueryGetIntersectionTKHR {
3464        ray_query: spirv::Word,
3465        intersection: spirv::Word,
3466    },
3467    RayQueryGetIntersectionInstanceCustomIndexKHR {
3468        ray_query: spirv::Word,
3469        intersection: spirv::Word,
3470    },
3471    RayQueryGetIntersectionInstanceIdKHR {
3472        ray_query: spirv::Word,
3473        intersection: spirv::Word,
3474    },
3475    RayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR {
3476        ray_query: spirv::Word,
3477        intersection: spirv::Word,
3478    },
3479    RayQueryGetIntersectionGeometryIndexKHR {
3480        ray_query: spirv::Word,
3481        intersection: spirv::Word,
3482    },
3483    RayQueryGetIntersectionPrimitiveIndexKHR {
3484        ray_query: spirv::Word,
3485        intersection: spirv::Word,
3486    },
3487    RayQueryGetIntersectionBarycentricsKHR {
3488        ray_query: spirv::Word,
3489        intersection: spirv::Word,
3490    },
3491    RayQueryGetIntersectionFrontFaceKHR {
3492        ray_query: spirv::Word,
3493        intersection: spirv::Word,
3494    },
3495    RayQueryGetIntersectionCandidateAABBOpaqueKHR {
3496        ray_query: spirv::Word,
3497    },
3498    RayQueryGetIntersectionObjectRayDirectionKHR {
3499        ray_query: spirv::Word,
3500        intersection: spirv::Word,
3501    },
3502    RayQueryGetIntersectionObjectRayOriginKHR {
3503        ray_query: spirv::Word,
3504        intersection: spirv::Word,
3505    },
3506    RayQueryGetWorldRayDirectionKHR {
3507        ray_query: spirv::Word,
3508    },
3509    RayQueryGetWorldRayOriginKHR {
3510        ray_query: spirv::Word,
3511    },
3512    RayQueryGetIntersectionObjectToWorldKHR {
3513        ray_query: spirv::Word,
3514        intersection: spirv::Word,
3515    },
3516    RayQueryGetIntersectionWorldToObjectKHR {
3517        ray_query: spirv::Word,
3518        intersection: spirv::Word,
3519    },
3520    AtomicFAddEXT {
3521        pointer: spirv::Word,
3522        memory: spirv::Word,
3523        semantics: spirv::Word,
3524        value: spirv::Word,
3525    },
3526    CompositeConstructContinuedINTEL {
3527        constituents: Vec<spirv::Word>,
3528    },
3529    ConvertFToBF16INTEL {
3530        float_value: spirv::Word,
3531    },
3532    ConvertBF16ToFINTEL {
3533        b_float16_value: spirv::Word,
3534    },
3535    ControlBarrierArriveINTEL {
3536        execution: spirv::Word,
3537        memory: spirv::Word,
3538        semantics: spirv::Word,
3539    },
3540    ControlBarrierWaitINTEL {
3541        execution: spirv::Word,
3542        memory: spirv::Word,
3543        semantics: spirv::Word,
3544    },
3545    ArithmeticFenceEXT {
3546        target: spirv::Word,
3547    },
3548    TaskSequenceCreateALTERA {
3549        function: spirv::Word,
3550        pipelined: u32,
3551        use_stall_enable_clusters: u32,
3552        get_capacity: u32,
3553        async_capacity: u32,
3554    },
3555    TaskSequenceAsyncALTERA {
3556        sequence: spirv::Word,
3557        arguments: Vec<spirv::Word>,
3558    },
3559    TaskSequenceGetALTERA {
3560        sequence: spirv::Word,
3561    },
3562    TaskSequenceReleaseALTERA {
3563        sequence: spirv::Word,
3564    },
3565    TypeTaskSequenceALTERA,
3566    SubgroupBlockPrefetchINTEL {
3567        ptr: spirv::Word,
3568        num_bytes: spirv::Word,
3569        memory_access: Option<spirv::MemoryAccess>,
3570    },
3571    Subgroup2DBlockLoadINTEL {
3572        element_size: spirv::Word,
3573        block_width: spirv::Word,
3574        block_height: spirv::Word,
3575        block_count: spirv::Word,
3576        src_base_pointer: spirv::Word,
3577        memory_width: spirv::Word,
3578        memory_height: spirv::Word,
3579        memory_pitch: spirv::Word,
3580        coordinate: spirv::Word,
3581        dst_pointer: spirv::Word,
3582    },
3583    Subgroup2DBlockLoadTransformINTEL {
3584        element_size: spirv::Word,
3585        block_width: spirv::Word,
3586        block_height: spirv::Word,
3587        block_count: spirv::Word,
3588        src_base_pointer: spirv::Word,
3589        memory_width: spirv::Word,
3590        memory_height: spirv::Word,
3591        memory_pitch: spirv::Word,
3592        coordinate: spirv::Word,
3593        dst_pointer: spirv::Word,
3594    },
3595    Subgroup2DBlockLoadTransposeINTEL {
3596        element_size: spirv::Word,
3597        block_width: spirv::Word,
3598        block_height: spirv::Word,
3599        block_count: spirv::Word,
3600        src_base_pointer: spirv::Word,
3601        memory_width: spirv::Word,
3602        memory_height: spirv::Word,
3603        memory_pitch: spirv::Word,
3604        coordinate: spirv::Word,
3605        dst_pointer: spirv::Word,
3606    },
3607    Subgroup2DBlockPrefetchINTEL {
3608        element_size: spirv::Word,
3609        block_width: spirv::Word,
3610        block_height: spirv::Word,
3611        block_count: spirv::Word,
3612        src_base_pointer: spirv::Word,
3613        memory_width: spirv::Word,
3614        memory_height: spirv::Word,
3615        memory_pitch: spirv::Word,
3616        coordinate: spirv::Word,
3617    },
3618    Subgroup2DBlockStoreINTEL {
3619        element_size: spirv::Word,
3620        block_width: spirv::Word,
3621        block_height: spirv::Word,
3622        block_count: spirv::Word,
3623        src_pointer: spirv::Word,
3624        dst_base_pointer: spirv::Word,
3625        memory_width: spirv::Word,
3626        memory_height: spirv::Word,
3627        memory_pitch: spirv::Word,
3628        coordinate: spirv::Word,
3629    },
3630    SubgroupMatrixMultiplyAccumulateINTEL {
3631        k_dim: spirv::Word,
3632        matrix_a: spirv::Word,
3633        matrix_b: spirv::Word,
3634        matrix_c: spirv::Word,
3635        matrix_multiply_accumulate_operands: Option<spirv::MatrixMultiplyAccumulateOperands>,
3636    },
3637    BitwiseFunctionINTEL {
3638        a: spirv::Word,
3639        b: spirv::Word,
3640        c: spirv::Word,
3641        lut_index: spirv::Word,
3642    },
3643    UntypedVariableLengthArrayINTEL {
3644        element_type: Token<Type>,
3645        length: Token<Constant>,
3646    },
3647    ConditionalCopyObjectINTEL {
3648        condition_0_operand_0_condition_1_operand_1: Vec<spirv::Word>,
3649    },
3650    GroupIMulKHR {
3651        execution: spirv::Word,
3652        operation: spirv::GroupOperation,
3653        x: spirv::Word,
3654    },
3655    GroupFMulKHR {
3656        execution: spirv::Word,
3657        operation: spirv::GroupOperation,
3658        x: spirv::Word,
3659    },
3660    GroupBitwiseAndKHR {
3661        execution: spirv::Word,
3662        operation: spirv::GroupOperation,
3663        x: spirv::Word,
3664    },
3665    GroupBitwiseOrKHR {
3666        execution: spirv::Word,
3667        operation: spirv::GroupOperation,
3668        x: spirv::Word,
3669    },
3670    GroupBitwiseXorKHR {
3671        execution: spirv::Word,
3672        operation: spirv::GroupOperation,
3673        x: spirv::Word,
3674    },
3675    GroupLogicalAndKHR {
3676        execution: spirv::Word,
3677        operation: spirv::GroupOperation,
3678        x: spirv::Word,
3679    },
3680    GroupLogicalOrKHR {
3681        execution: spirv::Word,
3682        operation: spirv::GroupOperation,
3683        x: spirv::Word,
3684    },
3685    GroupLogicalXorKHR {
3686        execution: spirv::Word,
3687        operation: spirv::GroupOperation,
3688        x: spirv::Word,
3689    },
3690    RoundFToTF32INTEL {
3691        float_value: spirv::Word,
3692    },
3693    MaskedGatherINTEL {
3694        ptr_vector: spirv::Word,
3695        alignment: u32,
3696        mask: spirv::Word,
3697        fill_empty: spirv::Word,
3698    },
3699    MaskedScatterINTEL {
3700        input_vector: spirv::Word,
3701        ptr_vector: spirv::Word,
3702        alignment: u32,
3703        mask: spirv::Word,
3704    },
3705    ConvertHandleToImageINTEL {
3706        operand: spirv::Word,
3707    },
3708    ConvertHandleToSamplerINTEL {
3709        operand: spirv::Word,
3710    },
3711    ConvertHandleToSampledImageINTEL {
3712        operand: spirv::Word,
3713    },
3714}