1/*Copyright (c) 2014-2016 The Khronos Group Inc.
2
3Permission is hereby granted, free of charge, to any person obtaining a copy
4of this software and/or associated documentation files (the "Materials"),
5to deal in the Materials without restriction, including without limitation
6the rights to use, copy, modify, merge, publish, distribute, sublicense,
7and/or sell copies of the Materials, and to permit persons to whom the
8Materials are furnished to do so, subject to the following conditions:
9
10The above copyright notice and this permission notice shall be included in
11all copies or substantial portions of the Materials.
12
13MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS
14STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND
15HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/
16
17THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
18OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
20THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
22FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS
23IN THE MATERIALS.*/
24
25// THIS FILE IS GENERATED WITH tools/process_grammar.rb
26
27export default {
28  "magic": "0x07230203",
29  "version": [
30    1,
31    5
32  ],
33  "instructions": {
34    "OpNop": {
35      "opcode": 0,
36      "operands": [
37
38      ]
39    },
40    "OpUndef": {
41      "opcode": 1,
42      "operands": [
43        {
44          "kind": "IdResultType"
45        },
46        {
47          "kind": "IdResult"
48        }
49      ]
50    },
51    "OpSourceContinued": {
52      "opcode": 2,
53      "operands": [
54        {
55          "kind": "LiteralString"
56        }
57      ]
58    },
59    "OpSource": {
60      "opcode": 3,
61      "operands": [
62        {
63          "kind": "SourceLanguage"
64        },
65        {
66          "kind": "LiteralInteger"
67        },
68        {
69          "kind": "IdRef",
70          "quantifier": "?"
71        },
72        {
73          "kind": "LiteralString",
74          "quantifier": "?"
75        }
76      ]
77    },
78    "OpSourceExtension": {
79      "opcode": 4,
80      "operands": [
81        {
82          "kind": "LiteralString"
83        }
84      ]
85    },
86    "OpName": {
87      "opcode": 5,
88      "operands": [
89        {
90          "kind": "IdRef"
91        },
92        {
93          "kind": "LiteralString"
94        }
95      ]
96    },
97    "OpMemberName": {
98      "opcode": 6,
99      "operands": [
100        {
101          "kind": "IdRef"
102        },
103        {
104          "kind": "LiteralInteger"
105        },
106        {
107          "kind": "LiteralString"
108        }
109      ]
110    },
111    "OpString": {
112      "opcode": 7,
113      "operands": [
114        {
115          "kind": "IdResult"
116        },
117        {
118          "kind": "LiteralString"
119        }
120      ]
121    },
122    "OpLine": {
123      "opcode": 8,
124      "operands": [
125        {
126          "kind": "IdRef"
127        },
128        {
129          "kind": "LiteralInteger"
130        },
131        {
132          "kind": "LiteralInteger"
133        }
134      ]
135    },
136    "OpExtension": {
137      "opcode": 10,
138      "operands": [
139        {
140          "kind": "LiteralString"
141        }
142      ]
143    },
144    "OpExtInstImport": {
145      "opcode": 11,
146      "operands": [
147        {
148          "kind": "IdResult"
149        },
150        {
151          "kind": "LiteralString"
152        }
153      ]
154    },
155    "OpExtInst": {
156      "opcode": 12,
157      "operands": [
158        {
159          "kind": "IdResultType"
160        },
161        {
162          "kind": "IdResult"
163        },
164        {
165          "kind": "IdRef"
166        },
167        {
168          "kind": "LiteralExtInstInteger"
169        },
170        {
171          "kind": "IdRef",
172          "quantifier": "*"
173        }
174      ]
175    },
176    "OpMemoryModel": {
177      "opcode": 14,
178      "operands": [
179        {
180          "kind": "AddressingModel"
181        },
182        {
183          "kind": "MemoryModel"
184        }
185      ]
186    },
187    "OpEntryPoint": {
188      "opcode": 15,
189      "operands": [
190        {
191          "kind": "ExecutionModel"
192        },
193        {
194          "kind": "IdRef"
195        },
196        {
197          "kind": "LiteralString"
198        },
199        {
200          "kind": "IdRef",
201          "quantifier": "*"
202        }
203      ]
204    },
205    "OpExecutionMode": {
206      "opcode": 16,
207      "operands": [
208        {
209          "kind": "IdRef"
210        },
211        {
212          "kind": "ExecutionMode"
213        }
214      ]
215    },
216    "OpCapability": {
217      "opcode": 17,
218      "operands": [
219        {
220          "kind": "Capability"
221        }
222      ]
223    },
224    "OpTypeVoid": {
225      "opcode": 19,
226      "operands": [
227        {
228          "kind": "IdResult"
229        }
230      ]
231    },
232    "OpTypeBool": {
233      "opcode": 20,
234      "operands": [
235        {
236          "kind": "IdResult"
237        }
238      ]
239    },
240    "OpTypeInt": {
241      "opcode": 21,
242      "operands": [
243        {
244          "kind": "IdResult"
245        },
246        {
247          "kind": "LiteralInteger"
248        },
249        {
250          "kind": "LiteralInteger"
251        }
252      ]
253    },
254    "OpTypeFloat": {
255      "opcode": 22,
256      "operands": [
257        {
258          "kind": "IdResult"
259        },
260        {
261          "kind": "LiteralInteger"
262        }
263      ]
264    },
265    "OpTypeVector": {
266      "opcode": 23,
267      "operands": [
268        {
269          "kind": "IdResult"
270        },
271        {
272          "kind": "IdRef"
273        },
274        {
275          "kind": "LiteralInteger"
276        }
277      ]
278    },
279    "OpTypeMatrix": {
280      "opcode": 24,
281      "operands": [
282        {
283          "kind": "IdResult"
284        },
285        {
286          "kind": "IdRef"
287        },
288        {
289          "kind": "LiteralInteger"
290        }
291      ]
292    },
293    "OpTypeImage": {
294      "opcode": 25,
295      "operands": [
296        {
297          "kind": "IdResult"
298        },
299        {
300          "kind": "IdRef"
301        },
302        {
303          "kind": "Dim"
304        },
305        {
306          "kind": "LiteralInteger"
307        },
308        {
309          "kind": "LiteralInteger"
310        },
311        {
312          "kind": "LiteralInteger"
313        },
314        {
315          "kind": "LiteralInteger"
316        },
317        {
318          "kind": "ImageFormat"
319        },
320        {
321          "kind": "AccessQualifier",
322          "quantifier": "?"
323        }
324      ]
325    },
326    "OpTypeSampler": {
327      "opcode": 26,
328      "operands": [
329        {
330          "kind": "IdResult"
331        }
332      ]
333    },
334    "OpTypeSampledImage": {
335      "opcode": 27,
336      "operands": [
337        {
338          "kind": "IdResult"
339        },
340        {
341          "kind": "IdRef"
342        }
343      ]
344    },
345    "OpTypeArray": {
346      "opcode": 28,
347      "operands": [
348        {
349          "kind": "IdResult"
350        },
351        {
352          "kind": "IdRef"
353        },
354        {
355          "kind": "IdRef"
356        }
357      ]
358    },
359    "OpTypeRuntimeArray": {
360      "opcode": 29,
361      "operands": [
362        {
363          "kind": "IdResult"
364        },
365        {
366          "kind": "IdRef"
367        }
368      ]
369    },
370    "OpTypeStruct": {
371      "opcode": 30,
372      "operands": [
373        {
374          "kind": "IdResult"
375        },
376        {
377          "kind": "IdRef",
378          "quantifier": "*"
379        }
380      ]
381    },
382    "OpTypePointer": {
383      "opcode": 32,
384      "operands": [
385        {
386          "kind": "IdResult"
387        },
388        {
389          "kind": "StorageClass"
390        },
391        {
392          "kind": "IdRef"
393        }
394      ]
395    },
396    "OpTypeFunction": {
397      "opcode": 33,
398      "operands": [
399        {
400          "kind": "IdResult"
401        },
402        {
403          "kind": "IdRef"
404        },
405        {
406          "kind": "IdRef",
407          "quantifier": "*"
408        }
409      ]
410    },
411    "OpConstantTrue": {
412      "opcode": 41,
413      "operands": [
414        {
415          "kind": "IdResultType"
416        },
417        {
418          "kind": "IdResult"
419        }
420      ]
421    },
422    "OpConstantFalse": {
423      "opcode": 42,
424      "operands": [
425        {
426          "kind": "IdResultType"
427        },
428        {
429          "kind": "IdResult"
430        }
431      ]
432    },
433    "OpConstant": {
434      "opcode": 43,
435      "operands": [
436        {
437          "kind": "IdResultType"
438        },
439        {
440          "kind": "IdResult"
441        },
442        {
443          "kind": "LiteralContextDependentNumber"
444        }
445      ]
446    },
447    "OpConstantComposite": {
448      "opcode": 44,
449      "operands": [
450        {
451          "kind": "IdResultType"
452        },
453        {
454          "kind": "IdResult"
455        },
456        {
457          "kind": "IdRef",
458          "quantifier": "*"
459        }
460      ]
461    },
462    "OpConstantNull": {
463      "opcode": 46,
464      "operands": [
465        {
466          "kind": "IdResultType"
467        },
468        {
469          "kind": "IdResult"
470        }
471      ]
472    },
473    "OpSpecConstantTrue": {
474      "opcode": 48,
475      "operands": [
476        {
477          "kind": "IdResultType"
478        },
479        {
480          "kind": "IdResult"
481        }
482      ]
483    },
484    "OpSpecConstantFalse": {
485      "opcode": 49,
486      "operands": [
487        {
488          "kind": "IdResultType"
489        },
490        {
491          "kind": "IdResult"
492        }
493      ]
494    },
495    "OpSpecConstant": {
496      "opcode": 50,
497      "operands": [
498        {
499          "kind": "IdResultType"
500        },
501        {
502          "kind": "IdResult"
503        },
504        {
505          "kind": "LiteralContextDependentNumber"
506        }
507      ]
508    },
509    "OpSpecConstantComposite": {
510      "opcode": 51,
511      "operands": [
512        {
513          "kind": "IdResultType"
514        },
515        {
516          "kind": "IdResult"
517        },
518        {
519          "kind": "IdRef",
520          "quantifier": "*"
521        }
522      ]
523    },
524    "OpSpecConstantOp": {
525      "opcode": 52,
526      "operands": [
527        {
528          "kind": "IdResultType"
529        },
530        {
531          "kind": "IdResult"
532        },
533        {
534          "kind": "LiteralSpecConstantOpInteger"
535        }
536      ]
537    },
538    "OpFunction": {
539      "opcode": 54,
540      "operands": [
541        {
542          "kind": "IdResultType"
543        },
544        {
545          "kind": "IdResult"
546        },
547        {
548          "kind": "FunctionControl"
549        },
550        {
551          "kind": "IdRef"
552        }
553      ]
554    },
555    "OpFunctionParameter": {
556      "opcode": 55,
557      "operands": [
558        {
559          "kind": "IdResultType"
560        },
561        {
562          "kind": "IdResult"
563        }
564      ]
565    },
566    "OpFunctionEnd": {
567      "opcode": 56,
568      "operands": [
569
570      ]
571    },
572    "OpFunctionCall": {
573      "opcode": 57,
574      "operands": [
575        {
576          "kind": "IdResultType"
577        },
578        {
579          "kind": "IdResult"
580        },
581        {
582          "kind": "IdRef"
583        },
584        {
585          "kind": "IdRef",
586          "quantifier": "*"
587        }
588      ]
589    },
590    "OpVariable": {
591      "opcode": 59,
592      "operands": [
593        {
594          "kind": "IdResultType"
595        },
596        {
597          "kind": "IdResult"
598        },
599        {
600          "kind": "StorageClass"
601        },
602        {
603          "kind": "IdRef",
604          "quantifier": "?"
605        }
606      ]
607    },
608    "OpImageTexelPointer": {
609      "opcode": 60,
610      "operands": [
611        {
612          "kind": "IdResultType"
613        },
614        {
615          "kind": "IdResult"
616        },
617        {
618          "kind": "IdRef"
619        },
620        {
621          "kind": "IdRef"
622        },
623        {
624          "kind": "IdRef"
625        }
626      ]
627    },
628    "OpLoad": {
629      "opcode": 61,
630      "operands": [
631        {
632          "kind": "IdResultType"
633        },
634        {
635          "kind": "IdResult"
636        },
637        {
638          "kind": "IdRef"
639        },
640        {
641          "kind": "MemoryAccess",
642          "quantifier": "?"
643        }
644      ]
645    },
646    "OpStore": {
647      "opcode": 62,
648      "operands": [
649        {
650          "kind": "IdRef"
651        },
652        {
653          "kind": "IdRef"
654        },
655        {
656          "kind": "MemoryAccess",
657          "quantifier": "?"
658        }
659      ]
660    },
661    "OpCopyMemory": {
662      "opcode": 63,
663      "operands": [
664        {
665          "kind": "IdRef"
666        },
667        {
668          "kind": "IdRef"
669        },
670        {
671          "kind": "MemoryAccess",
672          "quantifier": "?"
673        },
674        {
675          "kind": "MemoryAccess",
676          "quantifier": "?"
677        }
678      ]
679    },
680    "OpAccessChain": {
681      "opcode": 65,
682      "operands": [
683        {
684          "kind": "IdResultType"
685        },
686        {
687          "kind": "IdResult"
688        },
689        {
690          "kind": "IdRef"
691        },
692        {
693          "kind": "IdRef",
694          "quantifier": "*"
695        }
696      ]
697    },
698    "OpInBoundsAccessChain": {
699      "opcode": 66,
700      "operands": [
701        {
702          "kind": "IdResultType"
703        },
704        {
705          "kind": "IdResult"
706        },
707        {
708          "kind": "IdRef"
709        },
710        {
711          "kind": "IdRef",
712          "quantifier": "*"
713        }
714      ]
715    },
716    "OpArrayLength": {
717      "opcode": 68,
718      "operands": [
719        {
720          "kind": "IdResultType"
721        },
722        {
723          "kind": "IdResult"
724        },
725        {
726          "kind": "IdRef"
727        },
728        {
729          "kind": "LiteralInteger"
730        }
731      ]
732    },
733    "OpDecorate": {
734      "opcode": 71,
735      "operands": [
736        {
737          "kind": "IdRef"
738        },
739        {
740          "kind": "Decoration"
741        }
742      ]
743    },
744    "OpMemberDecorate": {
745      "opcode": 72,
746      "operands": [
747        {
748          "kind": "IdRef"
749        },
750        {
751          "kind": "LiteralInteger"
752        },
753        {
754          "kind": "Decoration"
755        }
756      ]
757    },
758    "OpDecorationGroup": {
759      "opcode": 73,
760      "operands": [
761        {
762          "kind": "IdResult"
763        }
764      ]
765    },
766    "OpGroupDecorate": {
767      "opcode": 74,
768      "operands": [
769        {
770          "kind": "IdRef"
771        },
772        {
773          "kind": "IdRef",
774          "quantifier": "*"
775        }
776      ]
777    },
778    "OpGroupMemberDecorate": {
779      "opcode": 75,
780      "operands": [
781        {
782          "kind": "IdRef"
783        },
784        {
785          "kind": "PairIdRefLiteralInteger",
786          "quantifier": "*"
787        }
788      ]
789    },
790    "OpVectorExtractDynamic": {
791      "opcode": 77,
792      "operands": [
793        {
794          "kind": "IdResultType"
795        },
796        {
797          "kind": "IdResult"
798        },
799        {
800          "kind": "IdRef"
801        },
802        {
803          "kind": "IdRef"
804        }
805      ]
806    },
807    "OpVectorInsertDynamic": {
808      "opcode": 78,
809      "operands": [
810        {
811          "kind": "IdResultType"
812        },
813        {
814          "kind": "IdResult"
815        },
816        {
817          "kind": "IdRef"
818        },
819        {
820          "kind": "IdRef"
821        },
822        {
823          "kind": "IdRef"
824        }
825      ]
826    },
827    "OpVectorShuffle": {
828      "opcode": 79,
829      "operands": [
830        {
831          "kind": "IdResultType"
832        },
833        {
834          "kind": "IdResult"
835        },
836        {
837          "kind": "IdRef"
838        },
839        {
840          "kind": "IdRef"
841        },
842        {
843          "kind": "LiteralInteger",
844          "quantifier": "*"
845        }
846      ]
847    },
848    "OpCompositeConstruct": {
849      "opcode": 80,
850      "operands": [
851        {
852          "kind": "IdResultType"
853        },
854        {
855          "kind": "IdResult"
856        },
857        {
858          "kind": "IdRef",
859          "quantifier": "*"
860        }
861      ]
862    },
863    "OpCompositeExtract": {
864      "opcode": 81,
865      "operands": [
866        {
867          "kind": "IdResultType"
868        },
869        {
870          "kind": "IdResult"
871        },
872        {
873          "kind": "IdRef"
874        },
875        {
876          "kind": "LiteralInteger",
877          "quantifier": "*"
878        }
879      ]
880    },
881    "OpCompositeInsert": {
882      "opcode": 82,
883      "operands": [
884        {
885          "kind": "IdResultType"
886        },
887        {
888          "kind": "IdResult"
889        },
890        {
891          "kind": "IdRef"
892        },
893        {
894          "kind": "IdRef"
895        },
896        {
897          "kind": "LiteralInteger",
898          "quantifier": "*"
899        }
900      ]
901    },
902    "OpCopyObject": {
903      "opcode": 83,
904      "operands": [
905        {
906          "kind": "IdResultType"
907        },
908        {
909          "kind": "IdResult"
910        },
911        {
912          "kind": "IdRef"
913        }
914      ]
915    },
916    "OpTranspose": {
917      "opcode": 84,
918      "operands": [
919        {
920          "kind": "IdResultType"
921        },
922        {
923          "kind": "IdResult"
924        },
925        {
926          "kind": "IdRef"
927        }
928      ]
929    },
930    "OpSampledImage": {
931      "opcode": 86,
932      "operands": [
933        {
934          "kind": "IdResultType"
935        },
936        {
937          "kind": "IdResult"
938        },
939        {
940          "kind": "IdRef"
941        },
942        {
943          "kind": "IdRef"
944        }
945      ]
946    },
947    "OpImageSampleImplicitLod": {
948      "opcode": 87,
949      "operands": [
950        {
951          "kind": "IdResultType"
952        },
953        {
954          "kind": "IdResult"
955        },
956        {
957          "kind": "IdRef"
958        },
959        {
960          "kind": "IdRef"
961        },
962        {
963          "kind": "ImageOperands",
964          "quantifier": "?"
965        }
966      ]
967    },
968    "OpImageSampleExplicitLod": {
969      "opcode": 88,
970      "operands": [
971        {
972          "kind": "IdResultType"
973        },
974        {
975          "kind": "IdResult"
976        },
977        {
978          "kind": "IdRef"
979        },
980        {
981          "kind": "IdRef"
982        },
983        {
984          "kind": "ImageOperands"
985        }
986      ]
987    },
988    "OpImageSampleDrefImplicitLod": {
989      "opcode": 89,
990      "operands": [
991        {
992          "kind": "IdResultType"
993        },
994        {
995          "kind": "IdResult"
996        },
997        {
998          "kind": "IdRef"
999        },
1000        {
1001          "kind": "IdRef"
1002        },
1003        {
1004          "kind": "IdRef"
1005        },
1006        {
1007          "kind": "ImageOperands",
1008          "quantifier": "?"
1009        }
1010      ]
1011    },
1012    "OpImageSampleDrefExplicitLod": {
1013      "opcode": 90,
1014      "operands": [
1015        {
1016          "kind": "IdResultType"
1017        },
1018        {
1019          "kind": "IdResult"
1020        },
1021        {
1022          "kind": "IdRef"
1023        },
1024        {
1025          "kind": "IdRef"
1026        },
1027        {
1028          "kind": "IdRef"
1029        },
1030        {
1031          "kind": "ImageOperands"
1032        }
1033      ]
1034    },
1035    "OpImageSampleProjImplicitLod": {
1036      "opcode": 91,
1037      "operands": [
1038        {
1039          "kind": "IdResultType"
1040        },
1041        {
1042          "kind": "IdResult"
1043        },
1044        {
1045          "kind": "IdRef"
1046        },
1047        {
1048          "kind": "IdRef"
1049        },
1050        {
1051          "kind": "ImageOperands",
1052          "quantifier": "?"
1053        }
1054      ]
1055    },
1056    "OpImageSampleProjExplicitLod": {
1057      "opcode": 92,
1058      "operands": [
1059        {
1060          "kind": "IdResultType"
1061        },
1062        {
1063          "kind": "IdResult"
1064        },
1065        {
1066          "kind": "IdRef"
1067        },
1068        {
1069          "kind": "IdRef"
1070        },
1071        {
1072          "kind": "ImageOperands"
1073        }
1074      ]
1075    },
1076    "OpImageSampleProjDrefImplicitLod": {
1077      "opcode": 93,
1078      "operands": [
1079        {
1080          "kind": "IdResultType"
1081        },
1082        {
1083          "kind": "IdResult"
1084        },
1085        {
1086          "kind": "IdRef"
1087        },
1088        {
1089          "kind": "IdRef"
1090        },
1091        {
1092          "kind": "IdRef"
1093        },
1094        {
1095          "kind": "ImageOperands",
1096          "quantifier": "?"
1097        }
1098      ]
1099    },
1100    "OpImageSampleProjDrefExplicitLod": {
1101      "opcode": 94,
1102      "operands": [
1103        {
1104          "kind": "IdResultType"
1105        },
1106        {
1107          "kind": "IdResult"
1108        },
1109        {
1110          "kind": "IdRef"
1111        },
1112        {
1113          "kind": "IdRef"
1114        },
1115        {
1116          "kind": "IdRef"
1117        },
1118        {
1119          "kind": "ImageOperands"
1120        }
1121      ]
1122    },
1123    "OpImageFetch": {
1124      "opcode": 95,
1125      "operands": [
1126        {
1127          "kind": "IdResultType"
1128        },
1129        {
1130          "kind": "IdResult"
1131        },
1132        {
1133          "kind": "IdRef"
1134        },
1135        {
1136          "kind": "IdRef"
1137        },
1138        {
1139          "kind": "ImageOperands",
1140          "quantifier": "?"
1141        }
1142      ]
1143    },
1144    "OpImageGather": {
1145      "opcode": 96,
1146      "operands": [
1147        {
1148          "kind": "IdResultType"
1149        },
1150        {
1151          "kind": "IdResult"
1152        },
1153        {
1154          "kind": "IdRef"
1155        },
1156        {
1157          "kind": "IdRef"
1158        },
1159        {
1160          "kind": "IdRef"
1161        },
1162        {
1163          "kind": "ImageOperands",
1164          "quantifier": "?"
1165        }
1166      ]
1167    },
1168    "OpImageDrefGather": {
1169      "opcode": 97,
1170      "operands": [
1171        {
1172          "kind": "IdResultType"
1173        },
1174        {
1175          "kind": "IdResult"
1176        },
1177        {
1178          "kind": "IdRef"
1179        },
1180        {
1181          "kind": "IdRef"
1182        },
1183        {
1184          "kind": "IdRef"
1185        },
1186        {
1187          "kind": "ImageOperands",
1188          "quantifier": "?"
1189        }
1190      ]
1191    },
1192    "OpImageRead": {
1193      "opcode": 98,
1194      "operands": [
1195        {
1196          "kind": "IdResultType"
1197        },
1198        {
1199          "kind": "IdResult"
1200        },
1201        {
1202          "kind": "IdRef"
1203        },
1204        {
1205          "kind": "IdRef"
1206        },
1207        {
1208          "kind": "ImageOperands",
1209          "quantifier": "?"
1210        }
1211      ]
1212    },
1213    "OpImageWrite": {
1214      "opcode": 99,
1215      "operands": [
1216        {
1217          "kind": "IdRef"
1218        },
1219        {
1220          "kind": "IdRef"
1221        },
1222        {
1223          "kind": "IdRef"
1224        },
1225        {
1226          "kind": "ImageOperands",
1227          "quantifier": "?"
1228        }
1229      ]
1230    },
1231    "OpImage": {
1232      "opcode": 100,
1233      "operands": [
1234        {
1235          "kind": "IdResultType"
1236        },
1237        {
1238          "kind": "IdResult"
1239        },
1240        {
1241          "kind": "IdRef"
1242        }
1243      ]
1244    },
1245    "OpImageQuerySizeLod": {
1246      "opcode": 103,
1247      "operands": [
1248        {
1249          "kind": "IdResultType"
1250        },
1251        {
1252          "kind": "IdResult"
1253        },
1254        {
1255          "kind": "IdRef"
1256        },
1257        {
1258          "kind": "IdRef"
1259        }
1260      ]
1261    },
1262    "OpImageQuerySize": {
1263      "opcode": 104,
1264      "operands": [
1265        {
1266          "kind": "IdResultType"
1267        },
1268        {
1269          "kind": "IdResult"
1270        },
1271        {
1272          "kind": "IdRef"
1273        }
1274      ]
1275    },
1276    "OpImageQueryLod": {
1277      "opcode": 105,
1278      "operands": [
1279        {
1280          "kind": "IdResultType"
1281        },
1282        {
1283          "kind": "IdResult"
1284        },
1285        {
1286          "kind": "IdRef"
1287        },
1288        {
1289          "kind": "IdRef"
1290        }
1291      ]
1292    },
1293    "OpImageQueryLevels": {
1294      "opcode": 106,
1295      "operands": [
1296        {
1297          "kind": "IdResultType"
1298        },
1299        {
1300          "kind": "IdResult"
1301        },
1302        {
1303          "kind": "IdRef"
1304        }
1305      ]
1306    },
1307    "OpImageQuerySamples": {
1308      "opcode": 107,
1309      "operands": [
1310        {
1311          "kind": "IdResultType"
1312        },
1313        {
1314          "kind": "IdResult"
1315        },
1316        {
1317          "kind": "IdRef"
1318        }
1319      ]
1320    },
1321    "OpConvertFToU": {
1322      "opcode": 109,
1323      "operands": [
1324        {
1325          "kind": "IdResultType"
1326        },
1327        {
1328          "kind": "IdResult"
1329        },
1330        {
1331          "kind": "IdRef"
1332        }
1333      ]
1334    },
1335    "OpConvertFToS": {
1336      "opcode": 110,
1337      "operands": [
1338        {
1339          "kind": "IdResultType"
1340        },
1341        {
1342          "kind": "IdResult"
1343        },
1344        {
1345          "kind": "IdRef"
1346        }
1347      ]
1348    },
1349    "OpConvertSToF": {
1350      "opcode": 111,
1351      "operands": [
1352        {
1353          "kind": "IdResultType"
1354        },
1355        {
1356          "kind": "IdResult"
1357        },
1358        {
1359          "kind": "IdRef"
1360        }
1361      ]
1362    },
1363    "OpConvertUToF": {
1364      "opcode": 112,
1365      "operands": [
1366        {
1367          "kind": "IdResultType"
1368        },
1369        {
1370          "kind": "IdResult"
1371        },
1372        {
1373          "kind": "IdRef"
1374        }
1375      ]
1376    },
1377    "OpUConvert": {
1378      "opcode": 113,
1379      "operands": [
1380        {
1381          "kind": "IdResultType"
1382        },
1383        {
1384          "kind": "IdResult"
1385        },
1386        {
1387          "kind": "IdRef"
1388        }
1389      ]
1390    },
1391    "OpSConvert": {
1392      "opcode": 114,
1393      "operands": [
1394        {
1395          "kind": "IdResultType"
1396        },
1397        {
1398          "kind": "IdResult"
1399        },
1400        {
1401          "kind": "IdRef"
1402        }
1403      ]
1404    },
1405    "OpFConvert": {
1406      "opcode": 115,
1407      "operands": [
1408        {
1409          "kind": "IdResultType"
1410        },
1411        {
1412          "kind": "IdResult"
1413        },
1414        {
1415          "kind": "IdRef"
1416        }
1417      ]
1418    },
1419    "OpQuantizeToF16": {
1420      "opcode": 116,
1421      "operands": [
1422        {
1423          "kind": "IdResultType"
1424        },
1425        {
1426          "kind": "IdResult"
1427        },
1428        {
1429          "kind": "IdRef"
1430        }
1431      ]
1432    },
1433    "OpBitcast": {
1434      "opcode": 124,
1435      "operands": [
1436        {
1437          "kind": "IdResultType"
1438        },
1439        {
1440          "kind": "IdResult"
1441        },
1442        {
1443          "kind": "IdRef"
1444        }
1445      ]
1446    },
1447    "OpSNegate": {
1448      "opcode": 126,
1449      "operands": [
1450        {
1451          "kind": "IdResultType"
1452        },
1453        {
1454          "kind": "IdResult"
1455        },
1456        {
1457          "kind": "IdRef"
1458        }
1459      ]
1460    },
1461    "OpFNegate": {
1462      "opcode": 127,
1463      "operands": [
1464        {
1465          "kind": "IdResultType"
1466        },
1467        {
1468          "kind": "IdResult"
1469        },
1470        {
1471          "kind": "IdRef"
1472        }
1473      ]
1474    },
1475    "OpIAdd": {
1476      "opcode": 128,
1477      "operands": [
1478        {
1479          "kind": "IdResultType"
1480        },
1481        {
1482          "kind": "IdResult"
1483        },
1484        {
1485          "kind": "IdRef"
1486        },
1487        {
1488          "kind": "IdRef"
1489        }
1490      ]
1491    },
1492    "OpFAdd": {
1493      "opcode": 129,
1494      "operands": [
1495        {
1496          "kind": "IdResultType"
1497        },
1498        {
1499          "kind": "IdResult"
1500        },
1501        {
1502          "kind": "IdRef"
1503        },
1504        {
1505          "kind": "IdRef"
1506        }
1507      ]
1508    },
1509    "OpISub": {
1510      "opcode": 130,
1511      "operands": [
1512        {
1513          "kind": "IdResultType"
1514        },
1515        {
1516          "kind": "IdResult"
1517        },
1518        {
1519          "kind": "IdRef"
1520        },
1521        {
1522          "kind": "IdRef"
1523        }
1524      ]
1525    },
1526    "OpFSub": {
1527      "opcode": 131,
1528      "operands": [
1529        {
1530          "kind": "IdResultType"
1531        },
1532        {
1533          "kind": "IdResult"
1534        },
1535        {
1536          "kind": "IdRef"
1537        },
1538        {
1539          "kind": "IdRef"
1540        }
1541      ]
1542    },
1543    "OpIMul": {
1544      "opcode": 132,
1545      "operands": [
1546        {
1547          "kind": "IdResultType"
1548        },
1549        {
1550          "kind": "IdResult"
1551        },
1552        {
1553          "kind": "IdRef"
1554        },
1555        {
1556          "kind": "IdRef"
1557        }
1558      ]
1559    },
1560    "OpFMul": {
1561      "opcode": 133,
1562      "operands": [
1563        {
1564          "kind": "IdResultType"
1565        },
1566        {
1567          "kind": "IdResult"
1568        },
1569        {
1570          "kind": "IdRef"
1571        },
1572        {
1573          "kind": "IdRef"
1574        }
1575      ]
1576    },
1577    "OpUDiv": {
1578      "opcode": 134,
1579      "operands": [
1580        {
1581          "kind": "IdResultType"
1582        },
1583        {
1584          "kind": "IdResult"
1585        },
1586        {
1587          "kind": "IdRef"
1588        },
1589        {
1590          "kind": "IdRef"
1591        }
1592      ]
1593    },
1594    "OpSDiv": {
1595      "opcode": 135,
1596      "operands": [
1597        {
1598          "kind": "IdResultType"
1599        },
1600        {
1601          "kind": "IdResult"
1602        },
1603        {
1604          "kind": "IdRef"
1605        },
1606        {
1607          "kind": "IdRef"
1608        }
1609      ]
1610    },
1611    "OpFDiv": {
1612      "opcode": 136,
1613      "operands": [
1614        {
1615          "kind": "IdResultType"
1616        },
1617        {
1618          "kind": "IdResult"
1619        },
1620        {
1621          "kind": "IdRef"
1622        },
1623        {
1624          "kind": "IdRef"
1625        }
1626      ]
1627    },
1628    "OpUMod": {
1629      "opcode": 137,
1630      "operands": [
1631        {
1632          "kind": "IdResultType"
1633        },
1634        {
1635          "kind": "IdResult"
1636        },
1637        {
1638          "kind": "IdRef"
1639        },
1640        {
1641          "kind": "IdRef"
1642        }
1643      ]
1644    },
1645    "OpSRem": {
1646      "opcode": 138,
1647      "operands": [
1648        {
1649          "kind": "IdResultType"
1650        },
1651        {
1652          "kind": "IdResult"
1653        },
1654        {
1655          "kind": "IdRef"
1656        },
1657        {
1658          "kind": "IdRef"
1659        }
1660      ]
1661    },
1662    "OpSMod": {
1663      "opcode": 139,
1664      "operands": [
1665        {
1666          "kind": "IdResultType"
1667        },
1668        {
1669          "kind": "IdResult"
1670        },
1671        {
1672          "kind": "IdRef"
1673        },
1674        {
1675          "kind": "IdRef"
1676        }
1677      ]
1678    },
1679    "OpFRem": {
1680      "opcode": 140,
1681      "operands": [
1682        {
1683          "kind": "IdResultType"
1684        },
1685        {
1686          "kind": "IdResult"
1687        },
1688        {
1689          "kind": "IdRef"
1690        },
1691        {
1692          "kind": "IdRef"
1693        }
1694      ]
1695    },
1696    "OpFMod": {
1697      "opcode": 141,
1698      "operands": [
1699        {
1700          "kind": "IdResultType"
1701        },
1702        {
1703          "kind": "IdResult"
1704        },
1705        {
1706          "kind": "IdRef"
1707        },
1708        {
1709          "kind": "IdRef"
1710        }
1711      ]
1712    },
1713    "OpVectorTimesScalar": {
1714      "opcode": 142,
1715      "operands": [
1716        {
1717          "kind": "IdResultType"
1718        },
1719        {
1720          "kind": "IdResult"
1721        },
1722        {
1723          "kind": "IdRef"
1724        },
1725        {
1726          "kind": "IdRef"
1727        }
1728      ]
1729    },
1730    "OpMatrixTimesScalar": {
1731      "opcode": 143,
1732      "operands": [
1733        {
1734          "kind": "IdResultType"
1735        },
1736        {
1737          "kind": "IdResult"
1738        },
1739        {
1740          "kind": "IdRef"
1741        },
1742        {
1743          "kind": "IdRef"
1744        }
1745      ]
1746    },
1747    "OpVectorTimesMatrix": {
1748      "opcode": 144,
1749      "operands": [
1750        {
1751          "kind": "IdResultType"
1752        },
1753        {
1754          "kind": "IdResult"
1755        },
1756        {
1757          "kind": "IdRef"
1758        },
1759        {
1760          "kind": "IdRef"
1761        }
1762      ]
1763    },
1764    "OpMatrixTimesVector": {
1765      "opcode": 145,
1766      "operands": [
1767        {
1768          "kind": "IdResultType"
1769        },
1770        {
1771          "kind": "IdResult"
1772        },
1773        {
1774          "kind": "IdRef"
1775        },
1776        {
1777          "kind": "IdRef"
1778        }
1779      ]
1780    },
1781    "OpMatrixTimesMatrix": {
1782      "opcode": 146,
1783      "operands": [
1784        {
1785          "kind": "IdResultType"
1786        },
1787        {
1788          "kind": "IdResult"
1789        },
1790        {
1791          "kind": "IdRef"
1792        },
1793        {
1794          "kind": "IdRef"
1795        }
1796      ]
1797    },
1798    "OpOuterProduct": {
1799      "opcode": 147,
1800      "operands": [
1801        {
1802          "kind": "IdResultType"
1803        },
1804        {
1805          "kind": "IdResult"
1806        },
1807        {
1808          "kind": "IdRef"
1809        },
1810        {
1811          "kind": "IdRef"
1812        }
1813      ]
1814    },
1815    "OpDot": {
1816      "opcode": 148,
1817      "operands": [
1818        {
1819          "kind": "IdResultType"
1820        },
1821        {
1822          "kind": "IdResult"
1823        },
1824        {
1825          "kind": "IdRef"
1826        },
1827        {
1828          "kind": "IdRef"
1829        }
1830      ]
1831    },
1832    "OpIAddCarry": {
1833      "opcode": 149,
1834      "operands": [
1835        {
1836          "kind": "IdResultType"
1837        },
1838        {
1839          "kind": "IdResult"
1840        },
1841        {
1842          "kind": "IdRef"
1843        },
1844        {
1845          "kind": "IdRef"
1846        }
1847      ]
1848    },
1849    "OpISubBorrow": {
1850      "opcode": 150,
1851      "operands": [
1852        {
1853          "kind": "IdResultType"
1854        },
1855        {
1856          "kind": "IdResult"
1857        },
1858        {
1859          "kind": "IdRef"
1860        },
1861        {
1862          "kind": "IdRef"
1863        }
1864      ]
1865    },
1866    "OpUMulExtended": {
1867      "opcode": 151,
1868      "operands": [
1869        {
1870          "kind": "IdResultType"
1871        },
1872        {
1873          "kind": "IdResult"
1874        },
1875        {
1876          "kind": "IdRef"
1877        },
1878        {
1879          "kind": "IdRef"
1880        }
1881      ]
1882    },
1883    "OpSMulExtended": {
1884      "opcode": 152,
1885      "operands": [
1886        {
1887          "kind": "IdResultType"
1888        },
1889        {
1890          "kind": "IdResult"
1891        },
1892        {
1893          "kind": "IdRef"
1894        },
1895        {
1896          "kind": "IdRef"
1897        }
1898      ]
1899    },
1900    "OpAny": {
1901      "opcode": 154,
1902      "operands": [
1903        {
1904          "kind": "IdResultType"
1905        },
1906        {
1907          "kind": "IdResult"
1908        },
1909        {
1910          "kind": "IdRef"
1911        }
1912      ]
1913    },
1914    "OpAll": {
1915      "opcode": 155,
1916      "operands": [
1917        {
1918          "kind": "IdResultType"
1919        },
1920        {
1921          "kind": "IdResult"
1922        },
1923        {
1924          "kind": "IdRef"
1925        }
1926      ]
1927    },
1928    "OpIsNan": {
1929      "opcode": 156,
1930      "operands": [
1931        {
1932          "kind": "IdResultType"
1933        },
1934        {
1935          "kind": "IdResult"
1936        },
1937        {
1938          "kind": "IdRef"
1939        }
1940      ]
1941    },
1942    "OpIsInf": {
1943      "opcode": 157,
1944      "operands": [
1945        {
1946          "kind": "IdResultType"
1947        },
1948        {
1949          "kind": "IdResult"
1950        },
1951        {
1952          "kind": "IdRef"
1953        }
1954      ]
1955    },
1956    "OpLogicalEqual": {
1957      "opcode": 164,
1958      "operands": [
1959        {
1960          "kind": "IdResultType"
1961        },
1962        {
1963          "kind": "IdResult"
1964        },
1965        {
1966          "kind": "IdRef"
1967        },
1968        {
1969          "kind": "IdRef"
1970        }
1971      ]
1972    },
1973    "OpLogicalNotEqual": {
1974      "opcode": 165,
1975      "operands": [
1976        {
1977          "kind": "IdResultType"
1978        },
1979        {
1980          "kind": "IdResult"
1981        },
1982        {
1983          "kind": "IdRef"
1984        },
1985        {
1986          "kind": "IdRef"
1987        }
1988      ]
1989    },
1990    "OpLogicalOr": {
1991      "opcode": 166,
1992      "operands": [
1993        {
1994          "kind": "IdResultType"
1995        },
1996        {
1997          "kind": "IdResult"
1998        },
1999        {
2000          "kind": "IdRef"
2001        },
2002        {
2003          "kind": "IdRef"
2004        }
2005      ]
2006    },
2007    "OpLogicalAnd": {
2008      "opcode": 167,
2009      "operands": [
2010        {
2011          "kind": "IdResultType"
2012        },
2013        {
2014          "kind": "IdResult"
2015        },
2016        {
2017          "kind": "IdRef"
2018        },
2019        {
2020          "kind": "IdRef"
2021        }
2022      ]
2023    },
2024    "OpLogicalNot": {
2025      "opcode": 168,
2026      "operands": [
2027        {
2028          "kind": "IdResultType"
2029        },
2030        {
2031          "kind": "IdResult"
2032        },
2033        {
2034          "kind": "IdRef"
2035        }
2036      ]
2037    },
2038    "OpSelect": {
2039      "opcode": 169,
2040      "operands": [
2041        {
2042          "kind": "IdResultType"
2043        },
2044        {
2045          "kind": "IdResult"
2046        },
2047        {
2048          "kind": "IdRef"
2049        },
2050        {
2051          "kind": "IdRef"
2052        },
2053        {
2054          "kind": "IdRef"
2055        }
2056      ]
2057    },
2058    "OpIEqual": {
2059      "opcode": 170,
2060      "operands": [
2061        {
2062          "kind": "IdResultType"
2063        },
2064        {
2065          "kind": "IdResult"
2066        },
2067        {
2068          "kind": "IdRef"
2069        },
2070        {
2071          "kind": "IdRef"
2072        }
2073      ]
2074    },
2075    "OpINotEqual": {
2076      "opcode": 171,
2077      "operands": [
2078        {
2079          "kind": "IdResultType"
2080        },
2081        {
2082          "kind": "IdResult"
2083        },
2084        {
2085          "kind": "IdRef"
2086        },
2087        {
2088          "kind": "IdRef"
2089        }
2090      ]
2091    },
2092    "OpUGreaterThan": {
2093      "opcode": 172,
2094      "operands": [
2095        {
2096          "kind": "IdResultType"
2097        },
2098        {
2099          "kind": "IdResult"
2100        },
2101        {
2102          "kind": "IdRef"
2103        },
2104        {
2105          "kind": "IdRef"
2106        }
2107      ]
2108    },
2109    "OpSGreaterThan": {
2110      "opcode": 173,
2111      "operands": [
2112        {
2113          "kind": "IdResultType"
2114        },
2115        {
2116          "kind": "IdResult"
2117        },
2118        {
2119          "kind": "IdRef"
2120        },
2121        {
2122          "kind": "IdRef"
2123        }
2124      ]
2125    },
2126    "OpUGreaterThanEqual": {
2127      "opcode": 174,
2128      "operands": [
2129        {
2130          "kind": "IdResultType"
2131        },
2132        {
2133          "kind": "IdResult"
2134        },
2135        {
2136          "kind": "IdRef"
2137        },
2138        {
2139          "kind": "IdRef"
2140        }
2141      ]
2142    },
2143    "OpSGreaterThanEqual": {
2144      "opcode": 175,
2145      "operands": [
2146        {
2147          "kind": "IdResultType"
2148        },
2149        {
2150          "kind": "IdResult"
2151        },
2152        {
2153          "kind": "IdRef"
2154        },
2155        {
2156          "kind": "IdRef"
2157        }
2158      ]
2159    },
2160    "OpULessThan": {
2161      "opcode": 176,
2162      "operands": [
2163        {
2164          "kind": "IdResultType"
2165        },
2166        {
2167          "kind": "IdResult"
2168        },
2169        {
2170          "kind": "IdRef"
2171        },
2172        {
2173          "kind": "IdRef"
2174        }
2175      ]
2176    },
2177    "OpSLessThan": {
2178      "opcode": 177,
2179      "operands": [
2180        {
2181          "kind": "IdResultType"
2182        },
2183        {
2184          "kind": "IdResult"
2185        },
2186        {
2187          "kind": "IdRef"
2188        },
2189        {
2190          "kind": "IdRef"
2191        }
2192      ]
2193    },
2194    "OpULessThanEqual": {
2195      "opcode": 178,
2196      "operands": [
2197        {
2198          "kind": "IdResultType"
2199        },
2200        {
2201          "kind": "IdResult"
2202        },
2203        {
2204          "kind": "IdRef"
2205        },
2206        {
2207          "kind": "IdRef"
2208        }
2209      ]
2210    },
2211    "OpSLessThanEqual": {
2212      "opcode": 179,
2213      "operands": [
2214        {
2215          "kind": "IdResultType"
2216        },
2217        {
2218          "kind": "IdResult"
2219        },
2220        {
2221          "kind": "IdRef"
2222        },
2223        {
2224          "kind": "IdRef"
2225        }
2226      ]
2227    },
2228    "OpFOrdEqual": {
2229      "opcode": 180,
2230      "operands": [
2231        {
2232          "kind": "IdResultType"
2233        },
2234        {
2235          "kind": "IdResult"
2236        },
2237        {
2238          "kind": "IdRef"
2239        },
2240        {
2241          "kind": "IdRef"
2242        }
2243      ]
2244    },
2245    "OpFUnordEqual": {
2246      "opcode": 181,
2247      "operands": [
2248        {
2249          "kind": "IdResultType"
2250        },
2251        {
2252          "kind": "IdResult"
2253        },
2254        {
2255          "kind": "IdRef"
2256        },
2257        {
2258          "kind": "IdRef"
2259        }
2260      ]
2261    },
2262    "OpFOrdNotEqual": {
2263      "opcode": 182,
2264      "operands": [
2265        {
2266          "kind": "IdResultType"
2267        },
2268        {
2269          "kind": "IdResult"
2270        },
2271        {
2272          "kind": "IdRef"
2273        },
2274        {
2275          "kind": "IdRef"
2276        }
2277      ]
2278    },
2279    "OpFUnordNotEqual": {
2280      "opcode": 183,
2281      "operands": [
2282        {
2283          "kind": "IdResultType"
2284        },
2285        {
2286          "kind": "IdResult"
2287        },
2288        {
2289          "kind": "IdRef"
2290        },
2291        {
2292          "kind": "IdRef"
2293        }
2294      ]
2295    },
2296    "OpFOrdLessThan": {
2297      "opcode": 184,
2298      "operands": [
2299        {
2300          "kind": "IdResultType"
2301        },
2302        {
2303          "kind": "IdResult"
2304        },
2305        {
2306          "kind": "IdRef"
2307        },
2308        {
2309          "kind": "IdRef"
2310        }
2311      ]
2312    },
2313    "OpFUnordLessThan": {
2314      "opcode": 185,
2315      "operands": [
2316        {
2317          "kind": "IdResultType"
2318        },
2319        {
2320          "kind": "IdResult"
2321        },
2322        {
2323          "kind": "IdRef"
2324        },
2325        {
2326          "kind": "IdRef"
2327        }
2328      ]
2329    },
2330    "OpFOrdGreaterThan": {
2331      "opcode": 186,
2332      "operands": [
2333        {
2334          "kind": "IdResultType"
2335        },
2336        {
2337          "kind": "IdResult"
2338        },
2339        {
2340          "kind": "IdRef"
2341        },
2342        {
2343          "kind": "IdRef"
2344        }
2345      ]
2346    },
2347    "OpFUnordGreaterThan": {
2348      "opcode": 187,
2349      "operands": [
2350        {
2351          "kind": "IdResultType"
2352        },
2353        {
2354          "kind": "IdResult"
2355        },
2356        {
2357          "kind": "IdRef"
2358        },
2359        {
2360          "kind": "IdRef"
2361        }
2362      ]
2363    },
2364    "OpFOrdLessThanEqual": {
2365      "opcode": 188,
2366      "operands": [
2367        {
2368          "kind": "IdResultType"
2369        },
2370        {
2371          "kind": "IdResult"
2372        },
2373        {
2374          "kind": "IdRef"
2375        },
2376        {
2377          "kind": "IdRef"
2378        }
2379      ]
2380    },
2381    "OpFUnordLessThanEqual": {
2382      "opcode": 189,
2383      "operands": [
2384        {
2385          "kind": "IdResultType"
2386        },
2387        {
2388          "kind": "IdResult"
2389        },
2390        {
2391          "kind": "IdRef"
2392        },
2393        {
2394          "kind": "IdRef"
2395        }
2396      ]
2397    },
2398    "OpFOrdGreaterThanEqual": {
2399      "opcode": 190,
2400      "operands": [
2401        {
2402          "kind": "IdResultType"
2403        },
2404        {
2405          "kind": "IdResult"
2406        },
2407        {
2408          "kind": "IdRef"
2409        },
2410        {
2411          "kind": "IdRef"
2412        }
2413      ]
2414    },
2415    "OpFUnordGreaterThanEqual": {
2416      "opcode": 191,
2417      "operands": [
2418        {
2419          "kind": "IdResultType"
2420        },
2421        {
2422          "kind": "IdResult"
2423        },
2424        {
2425          "kind": "IdRef"
2426        },
2427        {
2428          "kind": "IdRef"
2429        }
2430      ]
2431    },
2432    "OpShiftRightLogical": {
2433      "opcode": 194,
2434      "operands": [
2435        {
2436          "kind": "IdResultType"
2437        },
2438        {
2439          "kind": "IdResult"
2440        },
2441        {
2442          "kind": "IdRef"
2443        },
2444        {
2445          "kind": "IdRef"
2446        }
2447      ]
2448    },
2449    "OpShiftRightArithmetic": {
2450      "opcode": 195,
2451      "operands": [
2452        {
2453          "kind": "IdResultType"
2454        },
2455        {
2456          "kind": "IdResult"
2457        },
2458        {
2459          "kind": "IdRef"
2460        },
2461        {
2462          "kind": "IdRef"
2463        }
2464      ]
2465    },
2466    "OpShiftLeftLogical": {
2467      "opcode": 196,
2468      "operands": [
2469        {
2470          "kind": "IdResultType"
2471        },
2472        {
2473          "kind": "IdResult"
2474        },
2475        {
2476          "kind": "IdRef"
2477        },
2478        {
2479          "kind": "IdRef"
2480        }
2481      ]
2482    },
2483    "OpBitwiseOr": {
2484      "opcode": 197,
2485      "operands": [
2486        {
2487          "kind": "IdResultType"
2488        },
2489        {
2490          "kind": "IdResult"
2491        },
2492        {
2493          "kind": "IdRef"
2494        },
2495        {
2496          "kind": "IdRef"
2497        }
2498      ]
2499    },
2500    "OpBitwiseXor": {
2501      "opcode": 198,
2502      "operands": [
2503        {
2504          "kind": "IdResultType"
2505        },
2506        {
2507          "kind": "IdResult"
2508        },
2509        {
2510          "kind": "IdRef"
2511        },
2512        {
2513          "kind": "IdRef"
2514        }
2515      ]
2516    },
2517    "OpBitwiseAnd": {
2518      "opcode": 199,
2519      "operands": [
2520        {
2521          "kind": "IdResultType"
2522        },
2523        {
2524          "kind": "IdResult"
2525        },
2526        {
2527          "kind": "IdRef"
2528        },
2529        {
2530          "kind": "IdRef"
2531        }
2532      ]
2533    },
2534    "OpNot": {
2535      "opcode": 200,
2536      "operands": [
2537        {
2538          "kind": "IdResultType"
2539        },
2540        {
2541          "kind": "IdResult"
2542        },
2543        {
2544          "kind": "IdRef"
2545        }
2546      ]
2547    },
2548    "OpBitFieldInsert": {
2549      "opcode": 201,
2550      "operands": [
2551        {
2552          "kind": "IdResultType"
2553        },
2554        {
2555          "kind": "IdResult"
2556        },
2557        {
2558          "kind": "IdRef"
2559        },
2560        {
2561          "kind": "IdRef"
2562        },
2563        {
2564          "kind": "IdRef"
2565        },
2566        {
2567          "kind": "IdRef"
2568        }
2569      ]
2570    },
2571    "OpBitFieldSExtract": {
2572      "opcode": 202,
2573      "operands": [
2574        {
2575          "kind": "IdResultType"
2576        },
2577        {
2578          "kind": "IdResult"
2579        },
2580        {
2581          "kind": "IdRef"
2582        },
2583        {
2584          "kind": "IdRef"
2585        },
2586        {
2587          "kind": "IdRef"
2588        }
2589      ]
2590    },
2591    "OpBitFieldUExtract": {
2592      "opcode": 203,
2593      "operands": [
2594        {
2595          "kind": "IdResultType"
2596        },
2597        {
2598          "kind": "IdResult"
2599        },
2600        {
2601          "kind": "IdRef"
2602        },
2603        {
2604          "kind": "IdRef"
2605        },
2606        {
2607          "kind": "IdRef"
2608        }
2609      ]
2610    },
2611    "OpBitReverse": {
2612      "opcode": 204,
2613      "operands": [
2614        {
2615          "kind": "IdResultType"
2616        },
2617        {
2618          "kind": "IdResult"
2619        },
2620        {
2621          "kind": "IdRef"
2622        }
2623      ]
2624    },
2625    "OpBitCount": {
2626      "opcode": 205,
2627      "operands": [
2628        {
2629          "kind": "IdResultType"
2630        },
2631        {
2632          "kind": "IdResult"
2633        },
2634        {
2635          "kind": "IdRef"
2636        }
2637      ]
2638    },
2639    "OpDPdx": {
2640      "opcode": 207,
2641      "operands": [
2642        {
2643          "kind": "IdResultType"
2644        },
2645        {
2646          "kind": "IdResult"
2647        },
2648        {
2649          "kind": "IdRef"
2650        }
2651      ]
2652    },
2653    "OpDPdy": {
2654      "opcode": 208,
2655      "operands": [
2656        {
2657          "kind": "IdResultType"
2658        },
2659        {
2660          "kind": "IdResult"
2661        },
2662        {
2663          "kind": "IdRef"
2664        }
2665      ]
2666    },
2667    "OpFwidth": {
2668      "opcode": 209,
2669      "operands": [
2670        {
2671          "kind": "IdResultType"
2672        },
2673        {
2674          "kind": "IdResult"
2675        },
2676        {
2677          "kind": "IdRef"
2678        }
2679      ]
2680    },
2681    "OpDPdxFine": {
2682      "opcode": 210,
2683      "operands": [
2684        {
2685          "kind": "IdResultType"
2686        },
2687        {
2688          "kind": "IdResult"
2689        },
2690        {
2691          "kind": "IdRef"
2692        }
2693      ]
2694    },
2695    "OpDPdyFine": {
2696      "opcode": 211,
2697      "operands": [
2698        {
2699          "kind": "IdResultType"
2700        },
2701        {
2702          "kind": "IdResult"
2703        },
2704        {
2705          "kind": "IdRef"
2706        }
2707      ]
2708    },
2709    "OpFwidthFine": {
2710      "opcode": 212,
2711      "operands": [
2712        {
2713          "kind": "IdResultType"
2714        },
2715        {
2716          "kind": "IdResult"
2717        },
2718        {
2719          "kind": "IdRef"
2720        }
2721      ]
2722    },
2723    "OpDPdxCoarse": {
2724      "opcode": 213,
2725      "operands": [
2726        {
2727          "kind": "IdResultType"
2728        },
2729        {
2730          "kind": "IdResult"
2731        },
2732        {
2733          "kind": "IdRef"
2734        }
2735      ]
2736    },
2737    "OpDPdyCoarse": {
2738      "opcode": 214,
2739      "operands": [
2740        {
2741          "kind": "IdResultType"
2742        },
2743        {
2744          "kind": "IdResult"
2745        },
2746        {
2747          "kind": "IdRef"
2748        }
2749      ]
2750    },
2751    "OpFwidthCoarse": {
2752      "opcode": 215,
2753      "operands": [
2754        {
2755          "kind": "IdResultType"
2756        },
2757        {
2758          "kind": "IdResult"
2759        },
2760        {
2761          "kind": "IdRef"
2762        }
2763      ]
2764    },
2765    "OpControlBarrier": {
2766      "opcode": 224,
2767      "operands": [
2768        {
2769          "kind": "IdScope"
2770        },
2771        {
2772          "kind": "IdScope"
2773        },
2774        {
2775          "kind": "IdMemorySemantics"
2776        }
2777      ]
2778    },
2779    "OpMemoryBarrier": {
2780      "opcode": 225,
2781      "operands": [
2782        {
2783          "kind": "IdScope"
2784        },
2785        {
2786          "kind": "IdMemorySemantics"
2787        }
2788      ]
2789    },
2790    "OpAtomicLoad": {
2791      "opcode": 227,
2792      "operands": [
2793        {
2794          "kind": "IdResultType"
2795        },
2796        {
2797          "kind": "IdResult"
2798        },
2799        {
2800          "kind": "IdRef"
2801        },
2802        {
2803          "kind": "IdScope"
2804        },
2805        {
2806          "kind": "IdMemorySemantics"
2807        }
2808      ]
2809    },
2810    "OpAtomicStore": {
2811      "opcode": 228,
2812      "operands": [
2813        {
2814          "kind": "IdRef"
2815        },
2816        {
2817          "kind": "IdScope"
2818        },
2819        {
2820          "kind": "IdMemorySemantics"
2821        },
2822        {
2823          "kind": "IdRef"
2824        }
2825      ]
2826    },
2827    "OpAtomicExchange": {
2828      "opcode": 229,
2829      "operands": [
2830        {
2831          "kind": "IdResultType"
2832        },
2833        {
2834          "kind": "IdResult"
2835        },
2836        {
2837          "kind": "IdRef"
2838        },
2839        {
2840          "kind": "IdScope"
2841        },
2842        {
2843          "kind": "IdMemorySemantics"
2844        },
2845        {
2846          "kind": "IdRef"
2847        }
2848      ]
2849    },
2850    "OpAtomicCompareExchange": {
2851      "opcode": 230,
2852      "operands": [
2853        {
2854          "kind": "IdResultType"
2855        },
2856        {
2857          "kind": "IdResult"
2858        },
2859        {
2860          "kind": "IdRef"
2861        },
2862        {
2863          "kind": "IdScope"
2864        },
2865        {
2866          "kind": "IdMemorySemantics"
2867        },
2868        {
2869          "kind": "IdMemorySemantics"
2870        },
2871        {
2872          "kind": "IdRef"
2873        },
2874        {
2875          "kind": "IdRef"
2876        }
2877      ]
2878    },
2879    "OpAtomicIIncrement": {
2880      "opcode": 232,
2881      "operands": [
2882        {
2883          "kind": "IdResultType"
2884        },
2885        {
2886          "kind": "IdResult"
2887        },
2888        {
2889          "kind": "IdRef"
2890        },
2891        {
2892          "kind": "IdScope"
2893        },
2894        {
2895          "kind": "IdMemorySemantics"
2896        }
2897      ]
2898    },
2899    "OpAtomicIDecrement": {
2900      "opcode": 233,
2901      "operands": [
2902        {
2903          "kind": "IdResultType"
2904        },
2905        {
2906          "kind": "IdResult"
2907        },
2908        {
2909          "kind": "IdRef"
2910        },
2911        {
2912          "kind": "IdScope"
2913        },
2914        {
2915          "kind": "IdMemorySemantics"
2916        }
2917      ]
2918    },
2919    "OpAtomicIAdd": {
2920      "opcode": 234,
2921      "operands": [
2922        {
2923          "kind": "IdResultType"
2924        },
2925        {
2926          "kind": "IdResult"
2927        },
2928        {
2929          "kind": "IdRef"
2930        },
2931        {
2932          "kind": "IdScope"
2933        },
2934        {
2935          "kind": "IdMemorySemantics"
2936        },
2937        {
2938          "kind": "IdRef"
2939        }
2940      ]
2941    },
2942    "OpAtomicISub": {
2943      "opcode": 235,
2944      "operands": [
2945        {
2946          "kind": "IdResultType"
2947        },
2948        {
2949          "kind": "IdResult"
2950        },
2951        {
2952          "kind": "IdRef"
2953        },
2954        {
2955          "kind": "IdScope"
2956        },
2957        {
2958          "kind": "IdMemorySemantics"
2959        },
2960        {
2961          "kind": "IdRef"
2962        }
2963      ]
2964    },
2965    "OpAtomicSMin": {
2966      "opcode": 236,
2967      "operands": [
2968        {
2969          "kind": "IdResultType"
2970        },
2971        {
2972          "kind": "IdResult"
2973        },
2974        {
2975          "kind": "IdRef"
2976        },
2977        {
2978          "kind": "IdScope"
2979        },
2980        {
2981          "kind": "IdMemorySemantics"
2982        },
2983        {
2984          "kind": "IdRef"
2985        }
2986      ]
2987    },
2988    "OpAtomicUMin": {
2989      "opcode": 237,
2990      "operands": [
2991        {
2992          "kind": "IdResultType"
2993        },
2994        {
2995          "kind": "IdResult"
2996        },
2997        {
2998          "kind": "IdRef"
2999        },
3000        {
3001          "kind": "IdScope"
3002        },
3003        {
3004          "kind": "IdMemorySemantics"
3005        },
3006        {
3007          "kind": "IdRef"
3008        }
3009      ]
3010    },
3011    "OpAtomicSMax": {
3012      "opcode": 238,
3013      "operands": [
3014        {
3015          "kind": "IdResultType"
3016        },
3017        {
3018          "kind": "IdResult"
3019        },
3020        {
3021          "kind": "IdRef"
3022        },
3023        {
3024          "kind": "IdScope"
3025        },
3026        {
3027          "kind": "IdMemorySemantics"
3028        },
3029        {
3030          "kind": "IdRef"
3031        }
3032      ]
3033    },
3034    "OpAtomicUMax": {
3035      "opcode": 239,
3036      "operands": [
3037        {
3038          "kind": "IdResultType"
3039        },
3040        {
3041          "kind": "IdResult"
3042        },
3043        {
3044          "kind": "IdRef"
3045        },
3046        {
3047          "kind": "IdScope"
3048        },
3049        {
3050          "kind": "IdMemorySemantics"
3051        },
3052        {
3053          "kind": "IdRef"
3054        }
3055      ]
3056    },
3057    "OpAtomicAnd": {
3058      "opcode": 240,
3059      "operands": [
3060        {
3061          "kind": "IdResultType"
3062        },
3063        {
3064          "kind": "IdResult"
3065        },
3066        {
3067          "kind": "IdRef"
3068        },
3069        {
3070          "kind": "IdScope"
3071        },
3072        {
3073          "kind": "IdMemorySemantics"
3074        },
3075        {
3076          "kind": "IdRef"
3077        }
3078      ]
3079    },
3080    "OpAtomicOr": {
3081      "opcode": 241,
3082      "operands": [
3083        {
3084          "kind": "IdResultType"
3085        },
3086        {
3087          "kind": "IdResult"
3088        },
3089        {
3090          "kind": "IdRef"
3091        },
3092        {
3093          "kind": "IdScope"
3094        },
3095        {
3096          "kind": "IdMemorySemantics"
3097        },
3098        {
3099          "kind": "IdRef"
3100        }
3101      ]
3102    },
3103    "OpAtomicXor": {
3104      "opcode": 242,
3105      "operands": [
3106        {
3107          "kind": "IdResultType"
3108        },
3109        {
3110          "kind": "IdResult"
3111        },
3112        {
3113          "kind": "IdRef"
3114        },
3115        {
3116          "kind": "IdScope"
3117        },
3118        {
3119          "kind": "IdMemorySemantics"
3120        },
3121        {
3122          "kind": "IdRef"
3123        }
3124      ]
3125    },
3126    "OpPhi": {
3127      "opcode": 245,
3128      "operands": [
3129        {
3130          "kind": "IdResultType"
3131        },
3132        {
3133          "kind": "IdResult"
3134        },
3135        {
3136          "kind": "PairIdRefIdRef",
3137          "quantifier": "*"
3138        }
3139      ]
3140    },
3141    "OpLoopMerge": {
3142      "opcode": 246,
3143      "operands": [
3144        {
3145          "kind": "IdRef"
3146        },
3147        {
3148          "kind": "IdRef"
3149        },
3150        {
3151          "kind": "LoopControl"
3152        }
3153      ]
3154    },
3155    "OpSelectionMerge": {
3156      "opcode": 247,
3157      "operands": [
3158        {
3159          "kind": "IdRef"
3160        },
3161        {
3162          "kind": "SelectionControl"
3163        }
3164      ]
3165    },
3166    "OpLabel": {
3167      "opcode": 248,
3168      "operands": [
3169        {
3170          "kind": "IdResult"
3171        }
3172      ]
3173    },
3174    "OpBranch": {
3175      "opcode": 249,
3176      "operands": [
3177        {
3178          "kind": "IdRef"
3179        }
3180      ]
3181    },
3182    "OpBranchConditional": {
3183      "opcode": 250,
3184      "operands": [
3185        {
3186          "kind": "IdRef"
3187        },
3188        {
3189          "kind": "IdRef"
3190        },
3191        {
3192          "kind": "IdRef"
3193        },
3194        {
3195          "kind": "LiteralInteger",
3196          "quantifier": "*"
3197        }
3198      ]
3199    },
3200    "OpSwitch": {
3201      "opcode": 251,
3202      "operands": [
3203        {
3204          "kind": "IdRef"
3205        },
3206        {
3207          "kind": "IdRef"
3208        },
3209        {
3210          "kind": "PairLiteralIntegerIdRef",
3211          "quantifier": "*"
3212        }
3213      ]
3214    },
3215    "OpKill": {
3216      "opcode": 252,
3217      "operands": [
3218
3219      ]
3220    },
3221    "OpReturn": {
3222      "opcode": 253,
3223      "operands": [
3224
3225      ]
3226    },
3227    "OpReturnValue": {
3228      "opcode": 254,
3229      "operands": [
3230        {
3231          "kind": "IdRef"
3232        }
3233      ]
3234    },
3235    "OpUnreachable": {
3236      "opcode": 255,
3237      "operands": [
3238
3239      ]
3240    },
3241    "OpNoLine": {
3242      "opcode": 317,
3243      "operands": [
3244
3245      ]
3246    },
3247    "OpModuleProcessed": {
3248      "opcode": 330,
3249      "operands": [
3250        {
3251          "kind": "LiteralString"
3252        }
3253      ]
3254    },
3255    "OpExecutionModeId": {
3256      "opcode": 331,
3257      "operands": [
3258        {
3259          "kind": "IdRef"
3260        },
3261        {
3262          "kind": "ExecutionMode"
3263        }
3264      ]
3265    },
3266    "OpDecorateId": {
3267      "opcode": 332,
3268      "operands": [
3269        {
3270          "kind": "IdRef"
3271        },
3272        {
3273          "kind": "Decoration"
3274        }
3275      ]
3276    },
3277    "OpCopyLogical": {
3278      "opcode": 400,
3279      "operands": [
3280        {
3281          "kind": "IdResultType"
3282        },
3283        {
3284          "kind": "IdResult"
3285        },
3286        {
3287          "kind": "IdRef"
3288        }
3289      ]
3290    },
3291    "OpPtrEqual": {
3292      "opcode": 401,
3293      "operands": [
3294        {
3295          "kind": "IdResultType"
3296        },
3297        {
3298          "kind": "IdResult"
3299        },
3300        {
3301          "kind": "IdRef"
3302        },
3303        {
3304          "kind": "IdRef"
3305        }
3306      ]
3307    },
3308    "OpPtrNotEqual": {
3309      "opcode": 402,
3310      "operands": [
3311        {
3312          "kind": "IdResultType"
3313        },
3314        {
3315          "kind": "IdResult"
3316        },
3317        {
3318          "kind": "IdRef"
3319        },
3320        {
3321          "kind": "IdRef"
3322        }
3323      ]
3324    },
3325    "OpDecorateString": {
3326      "opcode": 5632,
3327      "operands": [
3328        {
3329          "kind": "IdRef"
3330        },
3331        {
3332          "kind": "Decoration"
3333        }
3334      ]
3335    },
3336    "OpDecorateStringGOOGLE": {
3337      "opcode": 5632,
3338      "operands": [
3339        {
3340          "kind": "IdRef"
3341        },
3342        {
3343          "kind": "Decoration"
3344        }
3345      ]
3346    },
3347    "OpMemberDecorateString": {
3348      "opcode": 5633,
3349      "operands": [
3350        {
3351          "kind": "IdRef"
3352        },
3353        {
3354          "kind": "LiteralInteger"
3355        },
3356        {
3357          "kind": "Decoration"
3358        }
3359      ]
3360    },
3361    "OpMemberDecorateStringGOOGLE": {
3362      "opcode": 5633,
3363      "operands": [
3364        {
3365          "kind": "IdRef"
3366        },
3367        {
3368          "kind": "LiteralInteger"
3369        },
3370        {
3371          "kind": "Decoration"
3372        }
3373      ]
3374    }
3375  },
3376  "operand_kinds": {
3377    "ImageOperands": {
3378      "type": "BitEnum",
3379      "values": {
3380        "None": {
3381          "value": 0
3382        },
3383        "Bias": {
3384          "value": 1,
3385          "params": [
3386            "IdRef"
3387          ]
3388        },
3389        "Lod": {
3390          "value": 2,
3391          "params": [
3392            "IdRef"
3393          ]
3394        },
3395        "Grad": {
3396          "value": 4,
3397          "params": [
3398            "IdRef",
3399            "IdRef"
3400          ]
3401        },
3402        "ConstOffset": {
3403          "value": 8,
3404          "params": [
3405            "IdRef"
3406          ]
3407        },
3408        "Sample": {
3409          "value": 64,
3410          "params": [
3411            "IdRef"
3412          ]
3413        },
3414        "MakeTexelAvailable": {
3415          "value": 256,
3416          "params": [
3417            "IdScope"
3418          ]
3419        },
3420        "MakeTexelAvailableKHR": {
3421          "value": 256,
3422          "params": [
3423            "IdScope"
3424          ]
3425        },
3426        "MakeTexelVisible": {
3427          "value": 512,
3428          "params": [
3429            "IdScope"
3430          ]
3431        },
3432        "MakeTexelVisibleKHR": {
3433          "value": 512,
3434          "params": [
3435            "IdScope"
3436          ]
3437        },
3438        "NonPrivateTexel": {
3439          "value": 1024
3440        },
3441        "NonPrivateTexelKHR": {
3442          "value": 1024
3443        },
3444        "VolatileTexel": {
3445          "value": 2048
3446        },
3447        "VolatileTexelKHR": {
3448          "value": 2048
3449        },
3450        "SignExtend": {
3451          "value": 4096
3452        },
3453        "ZeroExtend": {
3454          "value": 8192
3455        }
3456      }
3457    },
3458    "FPFastMathMode": {
3459      "type": "BitEnum",
3460      "values": {
3461        "None": {
3462          "value": 0
3463        }
3464      }
3465    },
3466    "SelectionControl": {
3467      "type": "BitEnum",
3468      "values": {
3469        "None": {
3470          "value": 0
3471        },
3472        "Flatten": {
3473          "value": 1
3474        },
3475        "DontFlatten": {
3476          "value": 2
3477        }
3478      }
3479    },
3480    "LoopControl": {
3481      "type": "BitEnum",
3482      "values": {
3483        "None": {
3484          "value": 0
3485        },
3486        "Unroll": {
3487          "value": 1
3488        },
3489        "DontUnroll": {
3490          "value": 2
3491        },
3492        "DependencyInfinite": {
3493          "value": 4
3494        },
3495        "DependencyLength": {
3496          "value": 8,
3497          "params": [
3498            "LiteralInteger"
3499          ]
3500        },
3501        "MinIterations": {
3502          "value": 16,
3503          "params": [
3504            "LiteralInteger"
3505          ]
3506        },
3507        "MaxIterations": {
3508          "value": 32,
3509          "params": [
3510            "LiteralInteger"
3511          ]
3512        },
3513        "IterationMultiple": {
3514          "value": 64,
3515          "params": [
3516            "LiteralInteger"
3517          ]
3518        },
3519        "PeelCount": {
3520          "value": 128,
3521          "params": [
3522            "LiteralInteger"
3523          ]
3524        },
3525        "PartialCount": {
3526          "value": 256,
3527          "params": [
3528            "LiteralInteger"
3529          ]
3530        }
3531      }
3532    },
3533    "FunctionControl": {
3534      "type": "BitEnum",
3535      "values": {
3536        "None": {
3537          "value": 0
3538        },
3539        "Inline": {
3540          "value": 1
3541        },
3542        "DontInline": {
3543          "value": 2
3544        },
3545        "Pure": {
3546          "value": 4
3547        },
3548        "Const": {
3549          "value": 8
3550        }
3551      }
3552    },
3553    "MemorySemantics": {
3554      "type": "BitEnum",
3555      "values": {
3556        "Relaxed": {
3557          "value": 0
3558        },
3559        "None": {
3560          "value": 0
3561        },
3562        "Acquire": {
3563          "value": 2
3564        },
3565        "Release": {
3566          "value": 4
3567        },
3568        "AcquireRelease": {
3569          "value": 8
3570        },
3571        "SequentiallyConsistent": {
3572          "value": 16
3573        },
3574        "UniformMemory": {
3575          "value": 64
3576        },
3577        "SubgroupMemory": {
3578          "value": 128
3579        },
3580        "WorkgroupMemory": {
3581          "value": 256
3582        },
3583        "CrossWorkgroupMemory": {
3584          "value": 512
3585        },
3586        "ImageMemory": {
3587          "value": 2048
3588        },
3589        "OutputMemory": {
3590          "value": 4096
3591        },
3592        "OutputMemoryKHR": {
3593          "value": 4096
3594        },
3595        "MakeAvailable": {
3596          "value": 8192
3597        },
3598        "MakeAvailableKHR": {
3599          "value": 8192
3600        },
3601        "MakeVisible": {
3602          "value": 16384
3603        },
3604        "MakeVisibleKHR": {
3605          "value": 16384
3606        },
3607        "Volatile": {
3608          "value": 32768
3609        }
3610      }
3611    },
3612    "MemoryAccess": {
3613      "type": "BitEnum",
3614      "values": {
3615        "None": {
3616          "value": 0
3617        },
3618        "Volatile": {
3619          "value": 1
3620        },
3621        "Aligned": {
3622          "value": 2,
3623          "params": [
3624            "LiteralInteger"
3625          ]
3626        },
3627        "Nontemporal": {
3628          "value": 4
3629        },
3630        "MakePointerAvailable": {
3631          "value": 8,
3632          "params": [
3633            "IdScope"
3634          ]
3635        },
3636        "MakePointerAvailableKHR": {
3637          "value": 8,
3638          "params": [
3639            "IdScope"
3640          ]
3641        },
3642        "MakePointerVisible": {
3643          "value": 16,
3644          "params": [
3645            "IdScope"
3646          ]
3647        },
3648        "MakePointerVisibleKHR": {
3649          "value": 16,
3650          "params": [
3651            "IdScope"
3652          ]
3653        },
3654        "NonPrivatePointer": {
3655          "value": 32
3656        },
3657        "NonPrivatePointerKHR": {
3658          "value": 32
3659        }
3660      }
3661    },
3662    "KernelProfilingInfo": {
3663      "type": "BitEnum",
3664      "values": {
3665        "None": {
3666          "value": 0
3667        }
3668      }
3669    },
3670    "SourceLanguage": {
3671      "type": "ValueEnum",
3672      "values": {
3673        "Unknown": {
3674          "value": 0
3675        },
3676        "ESSL": {
3677          "value": 1
3678        },
3679        "GLSL": {
3680          "value": 2
3681        },
3682        "OpenCL_C": {
3683          "value": 3
3684        },
3685        "OpenCL_CPP": {
3686          "value": 4
3687        },
3688        "HLSL": {
3689          "value": 5
3690        }
3691      }
3692    },
3693    "ExecutionModel": {
3694      "type": "ValueEnum",
3695      "values": {
3696        "Vertex": {
3697          "value": 0
3698        },
3699        "Fragment": {
3700          "value": 4
3701        },
3702        "GLCompute": {
3703          "value": 5
3704        }
3705      }
3706    },
3707    "AddressingModel": {
3708      "type": "ValueEnum",
3709      "values": {
3710        "Logical": {
3711          "value": 0
3712        }
3713      }
3714    },
3715    "MemoryModel": {
3716      "type": "ValueEnum",
3717      "values": {
3718        "Simple": {
3719          "value": 0
3720        },
3721        "GLSL450": {
3722          "value": 1
3723        },
3724        "Vulkan": {
3725          "value": 3
3726        },
3727        "VulkanKHR": {
3728          "value": 3
3729        }
3730      }
3731    },
3732    "ExecutionMode": {
3733      "type": "ValueEnum",
3734      "values": {
3735        "PixelCenterInteger": {
3736          "value": 6
3737        },
3738        "OriginUpperLeft": {
3739          "value": 7
3740        },
3741        "OriginLowerLeft": {
3742          "value": 8
3743        },
3744        "EarlyFragmentTests": {
3745          "value": 9
3746        },
3747        "DepthReplacing": {
3748          "value": 12
3749        },
3750        "DepthGreater": {
3751          "value": 14
3752        },
3753        "DepthLess": {
3754          "value": 15
3755        },
3756        "DepthUnchanged": {
3757          "value": 16
3758        },
3759        "LocalSize": {
3760          "value": 17,
3761          "params": [
3762            "LiteralInteger",
3763            "LiteralInteger",
3764            "LiteralInteger"
3765          ]
3766        },
3767        "LocalSizeId": {
3768          "value": 38,
3769          "params": [
3770            "IdRef",
3771            "IdRef",
3772            "IdRef"
3773          ]
3774        }
3775      }
3776    },
3777    "StorageClass": {
3778      "type": "ValueEnum",
3779      "values": {
3780        "UniformConstant": {
3781          "value": 0
3782        },
3783        "Input": {
3784          "value": 1
3785        },
3786        "Uniform": {
3787          "value": 2
3788        },
3789        "Output": {
3790          "value": 3
3791        },
3792        "Workgroup": {
3793          "value": 4
3794        },
3795        "CrossWorkgroup": {
3796          "value": 5
3797        },
3798        "Private": {
3799          "value": 6
3800        },
3801        "Function": {
3802          "value": 7
3803        },
3804        "PushConstant": {
3805          "value": 9
3806        },
3807        "Image": {
3808          "value": 11
3809        },
3810        "StorageBuffer": {
3811          "value": 12
3812        }
3813      }
3814    },
3815    "Dim": {
3816      "type": "ValueEnum",
3817      "values": {
3818        "1D": {
3819          "value": 0
3820        },
3821        "2D": {
3822          "value": 1
3823        },
3824        "3D": {
3825          "value": 2
3826        },
3827        "Cube": {
3828          "value": 3
3829        }
3830      }
3831    },
3832    "ImageFormat": {
3833      "type": "ValueEnum",
3834      "values": {
3835        "Unknown": {
3836          "value": 0
3837        },
3838        "Rgba32f": {
3839          "value": 1
3840        },
3841        "Rgba16f": {
3842          "value": 2
3843        },
3844        "R32f": {
3845          "value": 3
3846        },
3847        "Rgba8": {
3848          "value": 4
3849        },
3850        "Rgba8Snorm": {
3851          "value": 5
3852        },
3853        "Rgba32i": {
3854          "value": 21
3855        },
3856        "Rgba16i": {
3857          "value": 22
3858        },
3859        "Rgba8i": {
3860          "value": 23
3861        },
3862        "R32i": {
3863          "value": 24
3864        },
3865        "Rgba32ui": {
3866          "value": 30
3867        },
3868        "Rgba16ui": {
3869          "value": 31
3870        },
3871        "Rgba8ui": {
3872          "value": 32
3873        },
3874        "R32ui": {
3875          "value": 33
3876        }
3877      }
3878    },
3879    "FPRoundingMode": {
3880      "type": "ValueEnum",
3881      "values": {
3882        "RTE": {
3883          "value": 0
3884        },
3885        "RTZ": {
3886          "value": 1
3887        },
3888        "RTP": {
3889          "value": 2
3890        },
3891        "RTN": {
3892          "value": 3
3893        }
3894      }
3895    },
3896    "Decoration": {
3897      "type": "ValueEnum",
3898      "values": {
3899        "RelaxedPrecision": {
3900          "value": 0
3901        },
3902        "SpecId": {
3903          "value": 1,
3904          "params": [
3905            "LiteralInteger"
3906          ]
3907        },
3908        "Block": {
3909          "value": 2
3910        },
3911        "BufferBlock": {
3912          "value": 3
3913        },
3914        "RowMajor": {
3915          "value": 4
3916        },
3917        "ColMajor": {
3918          "value": 5
3919        },
3920        "ArrayStride": {
3921          "value": 6,
3922          "params": [
3923            "LiteralInteger"
3924          ]
3925        },
3926        "MatrixStride": {
3927          "value": 7,
3928          "params": [
3929            "LiteralInteger"
3930          ]
3931        },
3932        "GLSLShared": {
3933          "value": 8
3934        },
3935        "GLSLPacked": {
3936          "value": 9
3937        },
3938        "BuiltIn": {
3939          "value": 11,
3940          "params": [
3941            "BuiltIn"
3942          ]
3943        },
3944        "NoPerspective": {
3945          "value": 13
3946        },
3947        "Flat": {
3948          "value": 14
3949        },
3950        "Centroid": {
3951          "value": 16
3952        },
3953        "Invariant": {
3954          "value": 18
3955        },
3956        "Restrict": {
3957          "value": 19
3958        },
3959        "Aliased": {
3960          "value": 20
3961        },
3962        "Volatile": {
3963          "value": 21
3964        },
3965        "Coherent": {
3966          "value": 23
3967        },
3968        "NonWritable": {
3969          "value": 24
3970        },
3971        "NonReadable": {
3972          "value": 25
3973        },
3974        "Uniform": {
3975          "value": 26
3976        },
3977        "UniformId": {
3978          "value": 27,
3979          "params": [
3980            "IdScope"
3981          ]
3982        },
3983        "Location": {
3984          "value": 30,
3985          "params": [
3986            "LiteralInteger"
3987          ]
3988        },
3989        "Component": {
3990          "value": 31,
3991          "params": [
3992            "LiteralInteger"
3993          ]
3994        },
3995        "Index": {
3996          "value": 32,
3997          "params": [
3998            "LiteralInteger"
3999          ]
4000        },
4001        "Binding": {
4002          "value": 33,
4003          "params": [
4004            "LiteralInteger"
4005          ]
4006        },
4007        "DescriptorSet": {
4008          "value": 34,
4009          "params": [
4010            "LiteralInteger"
4011          ]
4012        },
4013        "Offset": {
4014          "value": 35,
4015          "params": [
4016            "LiteralInteger"
4017          ]
4018        },
4019        "FPRoundingMode": {
4020          "value": 39,
4021          "params": [
4022            "FPRoundingMode"
4023          ]
4024        },
4025        "NoContraction": {
4026          "value": 42
4027        },
4028        "NoSignedWrap": {
4029          "value": 4469
4030        },
4031        "NoUnsignedWrap": {
4032          "value": 4470
4033        },
4034        "ExplicitInterpAMD": {
4035          "value": 4999
4036        },
4037        "CounterBuffer": {
4038          "value": 5634,
4039          "params": [
4040            "IdRef"
4041          ]
4042        },
4043        "HlslCounterBufferGOOGLE": {
4044          "value": 5634,
4045          "params": [
4046            "IdRef"
4047          ]
4048        },
4049        "UserSemantic": {
4050          "value": 5635,
4051          "params": [
4052            "LiteralString"
4053          ]
4054        },
4055        "HlslSemanticGOOGLE": {
4056          "value": 5635,
4057          "params": [
4058            "LiteralString"
4059          ]
4060        },
4061        "UserTypeGOOGLE": {
4062          "value": 5636,
4063          "params": [
4064            "LiteralString"
4065          ]
4066        }
4067      }
4068    },
4069    "BuiltIn": {
4070      "type": "ValueEnum",
4071      "values": {
4072        "Position": {
4073          "value": 0
4074        },
4075        "PointSize": {
4076          "value": 1
4077        },
4078        "VertexId": {
4079          "value": 5
4080        },
4081        "InstanceId": {
4082          "value": 6
4083        },
4084        "FragCoord": {
4085          "value": 15
4086        },
4087        "PointCoord": {
4088          "value": 16
4089        },
4090        "FrontFacing": {
4091          "value": 17
4092        },
4093        "SampleMask": {
4094          "value": 20
4095        },
4096        "FragDepth": {
4097          "value": 22
4098        },
4099        "HelperInvocation": {
4100          "value": 23
4101        },
4102        "NumWorkgroups": {
4103          "value": 24
4104        },
4105        "WorkgroupSize": {
4106          "value": 25
4107        },
4108        "WorkgroupId": {
4109          "value": 26
4110        },
4111        "LocalInvocationId": {
4112          "value": 27
4113        },
4114        "GlobalInvocationId": {
4115          "value": 28
4116        },
4117        "LocalInvocationIndex": {
4118          "value": 29
4119        },
4120        "VertexIndex": {
4121          "value": 42
4122        },
4123        "InstanceIndex": {
4124          "value": 43
4125        },
4126        "BaryCoordNoPerspAMD": {
4127          "value": 4992
4128        },
4129        "BaryCoordNoPerspCentroidAMD": {
4130          "value": 4993
4131        },
4132        "BaryCoordNoPerspSampleAMD": {
4133          "value": 4994
4134        },
4135        "BaryCoordSmoothAMD": {
4136          "value": 4995
4137        },
4138        "BaryCoordSmoothCentroidAMD": {
4139          "value": 4996
4140        },
4141        "BaryCoordSmoothSampleAMD": {
4142          "value": 4997
4143        },
4144        "BaryCoordPullModelAMD": {
4145          "value": 4998
4146        }
4147      }
4148    },
4149    "Scope": {
4150      "type": "ValueEnum",
4151      "values": {
4152        "CrossDevice": {
4153          "value": 0
4154        },
4155        "Device": {
4156          "value": 1
4157        },
4158        "Workgroup": {
4159          "value": 2
4160        },
4161        "Subgroup": {
4162          "value": 3
4163        },
4164        "Invocation": {
4165          "value": 4
4166        },
4167        "QueueFamily": {
4168          "value": 5
4169        },
4170        "QueueFamilyKHR": {
4171          "value": 5
4172        }
4173      }
4174    },
4175    "Capability": {
4176      "type": "ValueEnum",
4177      "values": {
4178        "Matrix": {
4179          "value": 0
4180        },
4181        "Shader": {
4182          "value": 1
4183        },
4184        "Geometry": {
4185          "value": 2
4186        },
4187        "Tessellation": {
4188          "value": 3
4189        },
4190        "Addresses": {
4191          "value": 4
4192        },
4193        "Linkage": {
4194          "value": 5
4195        },
4196        "Kernel": {
4197          "value": 6
4198        },
4199        "Float16": {
4200          "value": 9
4201        },
4202        "Float64": {
4203          "value": 10
4204        },
4205        "Int64": {
4206          "value": 11
4207        },
4208        "Groups": {
4209          "value": 18
4210        },
4211        "AtomicStorage": {
4212          "value": 21
4213        },
4214        "Int16": {
4215          "value": 22
4216        },
4217        "ImageGatherExtended": {
4218          "value": 25
4219        },
4220        "StorageImageMultisample": {
4221          "value": 27
4222        },
4223        "UniformBufferArrayDynamicIndexing": {
4224          "value": 28
4225        },
4226        "SampledImageArrayDynamicIndexing": {
4227          "value": 29
4228        },
4229        "StorageBufferArrayDynamicIndexing": {
4230          "value": 30
4231        },
4232        "StorageImageArrayDynamicIndexing": {
4233          "value": 31
4234        },
4235        "ClipDistance": {
4236          "value": 32
4237        },
4238        "CullDistance": {
4239          "value": 33
4240        },
4241        "SampleRateShading": {
4242          "value": 35
4243        },
4244        "SampledRect": {
4245          "value": 37
4246        },
4247        "Int8": {
4248          "value": 39
4249        },
4250        "InputAttachment": {
4251          "value": 40
4252        },
4253        "SparseResidency": {
4254          "value": 41
4255        },
4256        "MinLod": {
4257          "value": 42
4258        },
4259        "Sampled1D": {
4260          "value": 43
4261        },
4262        "Image1D": {
4263          "value": 44
4264        },
4265        "SampledCubeArray": {
4266          "value": 45
4267        },
4268        "SampledBuffer": {
4269          "value": 46
4270        },
4271        "ImageMSArray": {
4272          "value": 48
4273        },
4274        "StorageImageExtendedFormats": {
4275          "value": 49
4276        },
4277        "ImageQuery": {
4278          "value": 50
4279        },
4280        "DerivativeControl": {
4281          "value": 51
4282        },
4283        "InterpolationFunction": {
4284          "value": 52
4285        },
4286        "TransformFeedback": {
4287          "value": 53
4288        },
4289        "StorageImageReadWithoutFormat": {
4290          "value": 55
4291        },
4292        "StorageImageWriteWithoutFormat": {
4293          "value": 56
4294        },
4295        "GroupNonUniform": {
4296          "value": 61
4297        },
4298        "ShaderLayer": {
4299          "value": 69
4300        },
4301        "ShaderViewportIndex": {
4302          "value": 70
4303        },
4304        "SubgroupBallotKHR": {
4305          "value": 4423
4306        },
4307        "DrawParameters": {
4308          "value": 4427
4309        },
4310        "SubgroupVoteKHR": {
4311          "value": 4431
4312        },
4313        "StorageBuffer16BitAccess": {
4314          "value": 4433
4315        },
4316        "StorageUniformBufferBlock16": {
4317          "value": 4433
4318        },
4319        "StoragePushConstant16": {
4320          "value": 4435
4321        },
4322        "StorageInputOutput16": {
4323          "value": 4436
4324        },
4325        "DeviceGroup": {
4326          "value": 4437
4327        },
4328        "MultiView": {
4329          "value": 4439
4330        },
4331        "VariablePointersStorageBuffer": {
4332          "value": 4441
4333        },
4334        "AtomicStorageOps": {
4335          "value": 4445
4336        },
4337        "SampleMaskPostDepthCoverage": {
4338          "value": 4447
4339        },
4340        "StorageBuffer8BitAccess": {
4341          "value": 4448
4342        },
4343        "StoragePushConstant8": {
4344          "value": 4450
4345        },
4346        "DenormPreserve": {
4347          "value": 4464
4348        },
4349        "DenormFlushToZero": {
4350          "value": 4465
4351        },
4352        "SignedZeroInfNanPreserve": {
4353          "value": 4466
4354        },
4355        "RoundingModeRTE": {
4356          "value": 4467
4357        },
4358        "RoundingModeRTZ": {
4359          "value": 4468
4360        },
4361        "Float16ImageAMD": {
4362          "value": 5008
4363        },
4364        "ImageGatherBiasLodAMD": {
4365          "value": 5009
4366        },
4367        "FragmentMaskAMD": {
4368          "value": 5010
4369        },
4370        "StencilExportEXT": {
4371          "value": 5013
4372        },
4373        "ImageReadWriteLodAMD": {
4374          "value": 5015
4375        },
4376        "ShaderClockKHR": {
4377          "value": 5055
4378        },
4379        "QuadControlKHR": {
4380          "value": 5087
4381        },
4382        "FragmentFullyCoveredEXT": {
4383          "value": 5265
4384        },
4385        "MeshShadingNV": {
4386          "value": 5266
4387        },
4388        "ImageFootprintNV": {
4389          "value": 5282
4390        },
4391        "FragmentBarycentricNV": {
4392          "value": 5284
4393        },
4394        "ComputeDerivativeGroupQuadsNV": {
4395          "value": 5288
4396        },
4397        "FragmentDensityEXT": {
4398          "value": 5291
4399        },
4400        "ShadingRateNV": {
4401          "value": 5291
4402        },
4403        "GroupNonUniformPartitionedNV": {
4404          "value": 5297
4405        },
4406        "ShaderNonUniform": {
4407          "value": 5301
4408        },
4409        "ShaderNonUniformEXT": {
4410          "value": 5301
4411        },
4412        "RuntimeDescriptorArray": {
4413          "value": 5302
4414        },
4415        "RuntimeDescriptorArrayEXT": {
4416          "value": 5302
4417        },
4418        "RayTracingNV": {
4419          "value": 5340
4420        },
4421        "VulkanMemoryModel": {
4422          "value": 5345
4423        },
4424        "VulkanMemoryModelKHR": {
4425          "value": 5345
4426        },
4427        "VulkanMemoryModelDeviceScope": {
4428          "value": 5346
4429        },
4430        "VulkanMemoryModelDeviceScopeKHR": {
4431          "value": 5346
4432        },
4433        "PhysicalStorageBufferAddresses": {
4434          "value": 5347
4435        },
4436        "PhysicalStorageBufferAddressesEXT": {
4437          "value": 5347
4438        },
4439        "ComputeDerivativeGroupLinearNV": {
4440          "value": 5350
4441        },
4442        "CooperativeMatrixNV": {
4443          "value": 5357
4444        },
4445        "FragmentShaderSampleInterlockEXT": {
4446          "value": 5363
4447        },
4448        "FragmentShaderShadingRateInterlockEXT": {
4449          "value": 5372
4450        },
4451        "ShaderSMBuiltinsNV": {
4452          "value": 5373
4453        },
4454        "FragmentShaderPixelInterlockEXT": {
4455          "value": 5378
4456        },
4457        "DemoteToHelperInvocationEXT": {
4458          "value": 5379
4459        },
4460        "SubgroupShuffleINTEL": {
4461          "value": 5568
4462        },
4463        "SubgroupBufferBlockIOINTEL": {
4464          "value": 5569
4465        },
4466        "SubgroupImageBlockIOINTEL": {
4467          "value": 5570
4468        },
4469        "SubgroupImageMediaBlockIOINTEL": {
4470          "value": 5579
4471        },
4472        "IntegerFunctions2INTEL": {
4473          "value": 5584
4474        },
4475        "SubgroupAvcMotionEstimationINTEL": {
4476          "value": 5696
4477        },
4478        "SubgroupAvcMotionEstimationIntraINTEL": {
4479          "value": 5697
4480        },
4481        "SubgroupAvcMotionEstimationChromaINTEL": {
4482          "value": 5698
4483        }
4484      }
4485    }
4486  },
4487  "ext": {
4488    "Round": 1,
4489    "RoundEven": 2,
4490    "Trunc": 3,
4491    "FAbs": 4,
4492    "SAbs": 5,
4493    "FSign": 6,
4494    "SSign": 7,
4495    "Floor": 8,
4496    "Ceil": 9,
4497    "Fract": 10,
4498    "Radians": 11,
4499    "Degrees": 12,
4500    "Sin": 13,
4501    "Cos": 14,
4502    "Tan": 15,
4503    "Asin": 16,
4504    "Acos": 17,
4505    "Atan": 18,
4506    "Sinh": 19,
4507    "Cosh": 20,
4508    "Tanh": 21,
4509    "Asinh": 22,
4510    "Acosh": 23,
4511    "Atanh": 24,
4512    "Atan2": 25,
4513    "Pow": 26,
4514    "Exp": 27,
4515    "Log": 28,
4516    "Exp2": 29,
4517    "Log2": 30,
4518    "Sqrt": 31,
4519    "InverseSqrt": 32,
4520    "Determinant": 33,
4521    "MatrixInverse": 34,
4522    "Modf": 35,
4523    "ModfStruct": 36,
4524    "FMin": 37,
4525    "UMin": 38,
4526    "SMin": 39,
4527    "FMax": 40,
4528    "UMax": 41,
4529    "SMax": 42,
4530    "FClamp": 43,
4531    "UClamp": 44,
4532    "SClamp": 45,
4533    "FMix": 46,
4534    "IMix": 47,
4535    "Step": 48,
4536    "SmoothStep": 49,
4537    "Fma": 50,
4538    "Frexp": 51,
4539    "FrexpStruct": 52,
4540    "Ldexp": 53,
4541    "PackSnorm4x8": 54,
4542    "PackUnorm4x8": 55,
4543    "PackSnorm2x16": 56,
4544    "PackUnorm2x16": 57,
4545    "PackHalf2x16": 58,
4546    "PackDouble2x32": 59,
4547    "UnpackSnorm2x16": 60,
4548    "UnpackUnorm2x16": 61,
4549    "UnpackHalf2x16": 62,
4550    "UnpackSnorm4x8": 63,
4551    "UnpackUnorm4x8": 64,
4552    "UnpackDouble2x32": 65,
4553    "Length": 66,
4554    "Distance": 67,
4555    "Cross": 68,
4556    "Normalize": 69,
4557    "FaceForward": 70,
4558    "Reflect": 71,
4559    "Refract": 72,
4560    "FindILsb": 73,
4561    "FindSMsb": 74,
4562    "FindUMsb": 75,
4563    "InterpolateAtCentroid": 76,
4564    "InterpolateAtSample": 77,
4565    "InterpolateAtOffset": 78,
4566    "NMin": 79,
4567    "NMax": 80,
4568    "NClamp": 81
4569  }
4570}
4571