1{
2  "copyright" : [
3    "Copyright (c) 2014-2016 The Khronos Group Inc.",
4    "",
5    "Permission is hereby granted, free of charge, to any person obtaining a copy",
6    "of this software and/or associated documentation files (the \"Materials\"),",
7    "to deal in the Materials without restriction, including without limitation",
8    "the rights to use, copy, modify, merge, publish, distribute, sublicense,",
9    "and/or sell copies of the Materials, and to permit persons to whom the",
10    "Materials are furnished to do so, subject to the following conditions:",
11    "",
12    "The above copyright notice and this permission notice shall be included in",
13    "all copies or substantial portions of the Materials.",
14    "",
15    "MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS",
16    "STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND",
17    "HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ ",
18    "",
19    "THE MATERIALS ARE PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS",
20    "OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,",
21    "FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL",
22    "THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER",
23    "LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING",
24    "FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS",
25    "IN THE MATERIALS."
26  ],
27  "magic_number" : "0x07230203",
28  "major_version" : 1,
29  "minor_version" : 3,
30  "revision" : 1,
31  "instructions" : [
32    {
33      "opname" : "OpNop",
34      "opcode" : 0
35    },
36    {
37      "opname" : "OpUndef",
38      "opcode" : 1,
39      "operands" : [
40        { "kind" : "IdResultType" },
41        { "kind" : "IdResult" }
42      ]
43    },
44    {
45      "opname" : "OpSourceContinued",
46      "opcode" : 2,
47      "operands" : [
48        { "kind" : "LiteralString", "name" : "'Continued Source'" }
49      ]
50    },
51    {
52      "opname" : "OpSource",
53      "opcode" : 3,
54      "operands" : [
55        { "kind" : "SourceLanguage" },
56        { "kind" : "LiteralInteger",                     "name" : "'Version'" },
57        { "kind" : "IdRef",          "quantifier" : "?", "name" : "'File'" },
58        { "kind" : "LiteralString",  "quantifier" : "?", "name" : "'Source'" }
59      ]
60    },
61    {
62      "opname" : "OpSourceExtension",
63      "opcode" : 4,
64      "operands" : [
65        { "kind" : "LiteralString", "name" : "'Extension'" }
66      ]
67    },
68    {
69      "opname" : "OpName",
70      "opcode" : 5,
71      "operands" : [
72        { "kind" : "IdRef",         "name" : "'Target'" },
73        { "kind" : "LiteralString", "name" : "'Name'" }
74      ]
75    },
76    {
77      "opname" : "OpMemberName",
78      "opcode" : 6,
79      "operands" : [
80        { "kind" : "IdRef",          "name" : "'Type'" },
81        { "kind" : "LiteralInteger", "name" : "'Member'" },
82        { "kind" : "LiteralString",  "name" : "'Name'" }
83      ]
84    },
85    {
86      "opname" : "OpString",
87      "opcode" : 7,
88      "operands" : [
89        { "kind" : "IdResult" },
90        { "kind" : "LiteralString", "name" : "'String'" }
91      ]
92    },
93    {
94      "opname" : "OpLine",
95      "opcode" : 8,
96      "operands" : [
97        { "kind" : "IdRef",          "name" : "'File'" },
98        { "kind" : "LiteralInteger", "name" : "'Line'" },
99        { "kind" : "LiteralInteger", "name" : "'Column'" }
100      ]
101    },
102    {
103      "opname" : "OpExtension",
104      "opcode" : 10,
105      "operands" : [
106        { "kind" : "LiteralString", "name" : "'Name'" }
107      ]
108    },
109    {
110      "opname" : "OpExtInstImport",
111      "opcode" : 11,
112      "operands" : [
113        { "kind" : "IdResult" },
114        { "kind" : "LiteralString", "name" : "'Name'" }
115      ]
116    },
117    {
118      "opname" : "OpExtInst",
119      "opcode" : 12,
120      "operands" : [
121        { "kind" : "IdResultType" },
122        { "kind" : "IdResult" },
123        { "kind" : "IdRef",                                     "name" : "'Set'" },
124        { "kind" : "LiteralExtInstInteger",                     "name" : "'Instruction'" },
125        { "kind" : "IdRef",                 "quantifier" : "*", "name" : "'Operand 1', +\n'Operand 2', +\n..." }
126      ]
127    },
128    {
129      "opname" : "OpMemoryModel",
130      "opcode" : 14,
131      "operands" : [
132        { "kind" : "AddressingModel" },
133        { "kind" : "MemoryModel" }
134      ]
135    },
136    {
137      "opname" : "OpEntryPoint",
138      "opcode" : 15,
139      "operands" : [
140        { "kind" : "ExecutionModel" },
141        { "kind" : "IdRef",                              "name" : "'Entry Point'" },
142        { "kind" : "LiteralString",                      "name" : "'Name'" },
143        { "kind" : "IdRef",          "quantifier" : "*", "name" : "'Interface'" }
144      ]
145    },
146    {
147      "opname" : "OpExecutionMode",
148      "opcode" : 16,
149      "operands" : [
150        { "kind" : "IdRef",         "name" : "'Entry Point'" },
151        { "kind" : "ExecutionMode", "name" : "'Mode'" }
152      ]
153    },
154    {
155      "opname" : "OpCapability",
156      "opcode" : 17,
157      "operands" : [
158        { "kind" : "Capability", "name" : "'Capability'" }
159      ]
160    },
161    {
162      "opname" : "OpTypeVoid",
163      "opcode" : 19,
164      "operands" : [
165        { "kind" : "IdResult" }
166      ]
167    },
168    {
169      "opname" : "OpTypeBool",
170      "opcode" : 20,
171      "operands" : [
172        { "kind" : "IdResult" }
173      ]
174    },
175    {
176      "opname" : "OpTypeInt",
177      "opcode" : 21,
178      "operands" : [
179        { "kind" : "IdResult" },
180        { "kind" : "LiteralInteger", "name" : "'Width'" },
181        { "kind" : "LiteralInteger", "name" : "'Signedness'" }
182      ]
183    },
184    {
185      "opname" : "OpTypeFloat",
186      "opcode" : 22,
187      "operands" : [
188        { "kind" : "IdResult" },
189        { "kind" : "LiteralInteger", "name" : "'Width'" }
190      ]
191    },
192    {
193      "opname" : "OpTypeVector",
194      "opcode" : 23,
195      "operands" : [
196        { "kind" : "IdResult" },
197        { "kind" : "IdRef",          "name" : "'Component Type'" },
198        { "kind" : "LiteralInteger", "name" : "'Component Count'" }
199      ]
200    },
201    {
202      "opname" : "OpTypeMatrix",
203      "opcode" : 24,
204      "operands" : [
205        { "kind" : "IdResult" },
206        { "kind" : "IdRef",          "name" : "'Column Type'" },
207        { "kind" : "LiteralInteger", "name" : "'Column Count'" }
208      ],
209      "capabilities" : [ "Matrix" ]
210    },
211    {
212      "opname" : "OpTypeImage",
213      "opcode" : 25,
214      "operands" : [
215        { "kind" : "IdResult" },
216        { "kind" : "IdRef",                               "name" : "'Sampled Type'" },
217        { "kind" : "Dim" },
218        { "kind" : "LiteralInteger",                      "name" : "'Depth'" },
219        { "kind" : "LiteralInteger",                      "name" : "'Arrayed'" },
220        { "kind" : "LiteralInteger",                      "name" : "'MS'" },
221        { "kind" : "LiteralInteger",                      "name" : "'Sampled'" },
222        { "kind" : "ImageFormat" },
223        { "kind" : "AccessQualifier", "quantifier" : "?" }
224      ]
225    },
226    {
227      "opname" : "OpTypeSampler",
228      "opcode" : 26,
229      "operands" : [
230        { "kind" : "IdResult" }
231      ]
232    },
233    {
234      "opname" : "OpTypeSampledImage",
235      "opcode" : 27,
236      "operands" : [
237        { "kind" : "IdResult" },
238        { "kind" : "IdRef",    "name" : "'Image Type'" }
239      ]
240    },
241    {
242      "opname" : "OpTypeArray",
243      "opcode" : 28,
244      "operands" : [
245        { "kind" : "IdResult" },
246        { "kind" : "IdRef",    "name" : "'Element Type'" },
247        { "kind" : "IdRef",    "name" : "'Length'" }
248      ]
249    },
250    {
251      "opname" : "OpTypeRuntimeArray",
252      "opcode" : 29,
253      "operands" : [
254        { "kind" : "IdResult" },
255        { "kind" : "IdRef",    "name" : "'Element Type'" }
256      ],
257      "capabilities" : [ "Shader" ]
258    },
259    {
260      "opname" : "OpTypeStruct",
261      "opcode" : 30,
262      "operands" : [
263        { "kind" : "IdResult" },
264        { "kind" : "IdRef",    "quantifier" : "*", "name" : "'Member 0 type', +\n'member 1 type', +\n..." }
265      ]
266    },
267    {
268      "opname" : "OpTypeOpaque",
269      "opcode" : 31,
270      "operands" : [
271        { "kind" : "IdResult" },
272        { "kind" : "LiteralString", "name" : "The name of the opaque type." }
273      ],
274      "capabilities" : [ "Kernel" ]
275    },
276    {
277      "opname" : "OpTypePointer",
278      "opcode" : 32,
279      "operands" : [
280        { "kind" : "IdResult" },
281        { "kind" : "StorageClass" },
282        { "kind" : "IdRef",        "name" : "'Type'" }
283      ]
284    },
285    {
286      "opname" : "OpTypeFunction",
287      "opcode" : 33,
288      "operands" : [
289        { "kind" : "IdResult" },
290        { "kind" : "IdRef",                        "name" : "'Return Type'" },
291        { "kind" : "IdRef",    "quantifier" : "*", "name" : "'Parameter 0 Type', +\n'Parameter 1 Type', +\n..." }
292      ]
293    },
294    {
295      "opname" : "OpTypeEvent",
296      "opcode" : 34,
297      "operands" : [
298        { "kind" : "IdResult" }
299      ],
300      "capabilities" : [ "Kernel" ]
301    },
302    {
303      "opname" : "OpTypeDeviceEvent",
304      "opcode" : 35,
305      "operands" : [
306        { "kind" : "IdResult" }
307      ],
308      "capabilities" : [ "DeviceEnqueue" ]
309    },
310    {
311      "opname" : "OpTypeReserveId",
312      "opcode" : 36,
313      "operands" : [
314        { "kind" : "IdResult" }
315      ],
316      "capabilities" : [ "Pipes" ]
317    },
318    {
319      "opname" : "OpTypeQueue",
320      "opcode" : 37,
321      "operands" : [
322        { "kind" : "IdResult" }
323      ],
324      "capabilities" : [ "DeviceEnqueue" ]
325    },
326    {
327      "opname" : "OpTypePipe",
328      "opcode" : 38,
329      "operands" : [
330        { "kind" : "IdResult" },
331        { "kind" : "AccessQualifier", "name" : "'Qualifier'" }
332      ],
333      "capabilities" : [ "Pipes" ]
334    },
335    {
336      "opname" : "OpTypeForwardPointer",
337      "opcode" : 39,
338      "operands" : [
339        { "kind" : "IdRef",        "name" : "'Pointer Type'" },
340        { "kind" : "StorageClass" }
341      ],
342      "capabilities" : [
343        "Addresses",
344        "PhysicalStorageBufferAddressesEXT"
345      ]
346    },
347    {
348      "opname" : "OpConstantTrue",
349      "opcode" : 41,
350      "operands" : [
351        { "kind" : "IdResultType" },
352        { "kind" : "IdResult" }
353      ]
354    },
355    {
356      "opname" : "OpConstantFalse",
357      "opcode" : 42,
358      "operands" : [
359        { "kind" : "IdResultType" },
360        { "kind" : "IdResult" }
361      ]
362    },
363    {
364      "opname" : "OpConstant",
365      "opcode" : 43,
366      "operands" : [
367        { "kind" : "IdResultType" },
368        { "kind" : "IdResult" },
369        { "kind" : "LiteralContextDependentNumber", "name" : "'Value'" }
370      ]
371    },
372    {
373      "opname" : "OpConstantComposite",
374      "opcode" : 44,
375      "operands" : [
376        { "kind" : "IdResultType" },
377        { "kind" : "IdResult" },
378        { "kind" : "IdRef",        "quantifier" : "*", "name" : "'Constituents'" }
379      ]
380    },
381    {
382      "opname" : "OpConstantSampler",
383      "opcode" : 45,
384      "operands" : [
385        { "kind" : "IdResultType" },
386        { "kind" : "IdResult" },
387        { "kind" : "SamplerAddressingMode" },
388        { "kind" : "LiteralInteger",        "name" : "'Param'" },
389        { "kind" : "SamplerFilterMode" }
390      ],
391      "capabilities" : [ "LiteralSampler" ]
392    },
393    {
394      "opname" : "OpConstantNull",
395      "opcode" : 46,
396      "operands" : [
397        { "kind" : "IdResultType" },
398        { "kind" : "IdResult" }
399      ]
400    },
401    {
402      "opname" : "OpSpecConstantTrue",
403      "opcode" : 48,
404      "operands" : [
405        { "kind" : "IdResultType" },
406        { "kind" : "IdResult" }
407      ]
408    },
409    {
410      "opname" : "OpSpecConstantFalse",
411      "opcode" : 49,
412      "operands" : [
413        { "kind" : "IdResultType" },
414        { "kind" : "IdResult" }
415      ]
416    },
417    {
418      "opname" : "OpSpecConstant",
419      "opcode" : 50,
420      "operands" : [
421        { "kind" : "IdResultType" },
422        { "kind" : "IdResult" },
423        { "kind" : "LiteralContextDependentNumber", "name" : "'Value'" }
424      ]
425    },
426    {
427      "opname" : "OpSpecConstantComposite",
428      "opcode" : 51,
429      "operands" : [
430        { "kind" : "IdResultType" },
431        { "kind" : "IdResult" },
432        { "kind" : "IdRef",        "quantifier" : "*", "name" : "'Constituents'" }
433      ]
434    },
435    {
436      "opname" : "OpSpecConstantOp",
437      "opcode" : 52,
438      "operands" : [
439        { "kind" : "IdResultType" },
440        { "kind" : "IdResult" },
441        { "kind" : "LiteralSpecConstantOpInteger", "name" : "'Opcode'" }
442      ]
443    },
444    {
445      "opname" : "OpFunction",
446      "opcode" : 54,
447      "operands" : [
448        { "kind" : "IdResultType" },
449        { "kind" : "IdResult" },
450        { "kind" : "FunctionControl" },
451        { "kind" : "IdRef",           "name" : "'Function Type'" }
452      ]
453    },
454    {
455      "opname" : "OpFunctionParameter",
456      "opcode" : 55,
457      "operands" : [
458        { "kind" : "IdResultType" },
459        { "kind" : "IdResult" }
460      ]
461    },
462    {
463      "opname" : "OpFunctionEnd",
464      "opcode" : 56
465    },
466    {
467      "opname" : "OpFunctionCall",
468      "opcode" : 57,
469      "operands" : [
470        { "kind" : "IdResultType" },
471        { "kind" : "IdResult" },
472        { "kind" : "IdRef",                            "name" : "'Function'" },
473        { "kind" : "IdRef",        "quantifier" : "*", "name" : "'Argument 0', +\n'Argument 1', +\n..." }
474      ]
475    },
476    {
477      "opname" : "OpVariable",
478      "opcode" : 59,
479      "operands" : [
480        { "kind" : "IdResultType" },
481        { "kind" : "IdResult" },
482        { "kind" : "StorageClass" },
483        { "kind" : "IdRef",        "quantifier" : "?", "name" : "'Initializer'" }
484      ]
485    },
486    {
487      "opname" : "OpImageTexelPointer",
488      "opcode" : 60,
489      "operands" : [
490        { "kind" : "IdResultType" },
491        { "kind" : "IdResult" },
492        { "kind" : "IdRef",        "name" : "'Image'" },
493        { "kind" : "IdRef",        "name" : "'Coordinate'" },
494        { "kind" : "IdRef",        "name" : "'Sample'" }
495      ]
496    },
497    {
498      "opname" : "OpLoad",
499      "opcode" : 61,
500      "operands" : [
501        { "kind" : "IdResultType" },
502        { "kind" : "IdResult" },
503        { "kind" : "IdRef",                            "name" : "'Pointer'" },
504        { "kind" : "MemoryAccess", "quantifier" : "?" }
505      ]
506    },
507    {
508      "opname" : "OpStore",
509      "opcode" : 62,
510      "operands" : [
511        { "kind" : "IdRef",                            "name" : "'Pointer'" },
512        { "kind" : "IdRef",                            "name" : "'Object'" },
513        { "kind" : "MemoryAccess", "quantifier" : "?" }
514      ]
515    },
516    {
517      "opname" : "OpCopyMemory",
518      "opcode" : 63,
519      "operands" : [
520        { "kind" : "IdRef",                            "name" : "'Target'" },
521        { "kind" : "IdRef",                            "name" : "'Source'" },
522        { "kind" : "MemoryAccess", "quantifier" : "?" }
523      ]
524    },
525    {
526      "opname" : "OpCopyMemorySized",
527      "opcode" : 64,
528      "operands" : [
529        { "kind" : "IdRef",                            "name" : "'Target'" },
530        { "kind" : "IdRef",                            "name" : "'Source'" },
531        { "kind" : "IdRef",                            "name" : "'Size'" },
532        { "kind" : "MemoryAccess", "quantifier" : "?" }
533      ],
534      "capabilities" : [ "Addresses" ]
535    },
536    {
537      "opname" : "OpAccessChain",
538      "opcode" : 65,
539      "operands" : [
540        { "kind" : "IdResultType" },
541        { "kind" : "IdResult" },
542        { "kind" : "IdRef",                            "name" : "'Base'" },
543        { "kind" : "IdRef",        "quantifier" : "*", "name" : "'Indexes'" }
544      ]
545    },
546    {
547      "opname" : "OpInBoundsAccessChain",
548      "opcode" : 66,
549      "operands" : [
550        { "kind" : "IdResultType" },
551        { "kind" : "IdResult" },
552        { "kind" : "IdRef",                            "name" : "'Base'" },
553        { "kind" : "IdRef",        "quantifier" : "*", "name" : "'Indexes'" }
554      ]
555    },
556    {
557      "opname" : "OpPtrAccessChain",
558      "opcode" : 67,
559      "operands" : [
560        { "kind" : "IdResultType" },
561        { "kind" : "IdResult" },
562        { "kind" : "IdRef",                            "name" : "'Base'" },
563        { "kind" : "IdRef",                            "name" : "'Element'" },
564        { "kind" : "IdRef",        "quantifier" : "*", "name" : "'Indexes'" }
565      ],
566      "capabilities" : [
567        "Addresses",
568        "VariablePointers",
569        "VariablePointersStorageBuffer",
570        "PhysicalStorageBufferAddressesEXT"
571      ]
572    },
573    {
574      "opname" : "OpArrayLength",
575      "opcode" : 68,
576      "operands" : [
577        { "kind" : "IdResultType" },
578        { "kind" : "IdResult" },
579        { "kind" : "IdRef",          "name" : "'Structure'" },
580        { "kind" : "LiteralInteger", "name" : "'Array member'" }
581      ],
582      "capabilities" : [ "Shader" ]
583    },
584    {
585      "opname" : "OpGenericPtrMemSemantics",
586      "opcode" : 69,
587      "operands" : [
588        { "kind" : "IdResultType" },
589        { "kind" : "IdResult" },
590        { "kind" : "IdRef",        "name" : "'Pointer'" }
591      ],
592      "capabilities" : [ "Kernel" ]
593    },
594    {
595      "opname" : "OpInBoundsPtrAccessChain",
596      "opcode" : 70,
597      "operands" : [
598        { "kind" : "IdResultType" },
599        { "kind" : "IdResult" },
600        { "kind" : "IdRef",                            "name" : "'Base'" },
601        { "kind" : "IdRef",                            "name" : "'Element'" },
602        { "kind" : "IdRef",        "quantifier" : "*", "name" : "'Indexes'" }
603      ],
604      "capabilities" : [ "Addresses" ]
605    },
606    {
607      "opname" : "OpDecorate",
608      "opcode" : 71,
609      "operands" : [
610        { "kind" : "IdRef",      "name" : "'Target'" },
611        { "kind" : "Decoration" }
612      ]
613    },
614    {
615      "opname" : "OpMemberDecorate",
616      "opcode" : 72,
617      "operands" : [
618        { "kind" : "IdRef",          "name" : "'Structure Type'" },
619        { "kind" : "LiteralInteger", "name" : "'Member'" },
620        { "kind" : "Decoration" }
621      ]
622    },
623    {
624      "opname" : "OpDecorationGroup",
625      "opcode" : 73,
626      "operands" : [
627        { "kind" : "IdResult" }
628      ]
629    },
630    {
631      "opname" : "OpGroupDecorate",
632      "opcode" : 74,
633      "operands" : [
634        { "kind" : "IdRef",                     "name" : "'Decoration Group'" },
635        { "kind" : "IdRef", "quantifier" : "*", "name" : "'Targets'" }
636      ]
637    },
638    {
639      "opname" : "OpGroupMemberDecorate",
640      "opcode" : 75,
641      "operands" : [
642        { "kind" : "IdRef",                                       "name" : "'Decoration Group'" },
643        { "kind" : "PairIdRefLiteralInteger", "quantifier" : "*", "name" : "'Targets'" }
644      ]
645    },
646    {
647      "opname" : "OpVectorExtractDynamic",
648      "opcode" : 77,
649      "operands" : [
650        { "kind" : "IdResultType" },
651        { "kind" : "IdResult" },
652        { "kind" : "IdRef",        "name" : "'Vector'" },
653        { "kind" : "IdRef",        "name" : "'Index'" }
654      ]
655    },
656    {
657      "opname" : "OpVectorInsertDynamic",
658      "opcode" : 78,
659      "operands" : [
660        { "kind" : "IdResultType" },
661        { "kind" : "IdResult" },
662        { "kind" : "IdRef",        "name" : "'Vector'" },
663        { "kind" : "IdRef",        "name" : "'Component'" },
664        { "kind" : "IdRef",        "name" : "'Index'" }
665      ]
666    },
667    {
668      "opname" : "OpVectorShuffle",
669      "opcode" : 79,
670      "operands" : [
671        { "kind" : "IdResultType" },
672        { "kind" : "IdResult" },
673        { "kind" : "IdRef",                              "name" : "'Vector 1'" },
674        { "kind" : "IdRef",                              "name" : "'Vector 2'" },
675        { "kind" : "LiteralInteger", "quantifier" : "*", "name" : "'Components'" }
676      ]
677    },
678    {
679      "opname" : "OpCompositeConstruct",
680      "opcode" : 80,
681      "operands" : [
682        { "kind" : "IdResultType" },
683        { "kind" : "IdResult" },
684        { "kind" : "IdRef",        "quantifier" : "*", "name" : "'Constituents'" }
685      ]
686    },
687    {
688      "opname" : "OpCompositeExtract",
689      "opcode" : 81,
690      "operands" : [
691        { "kind" : "IdResultType" },
692        { "kind" : "IdResult" },
693        { "kind" : "IdRef",                              "name" : "'Composite'" },
694        { "kind" : "LiteralInteger", "quantifier" : "*", "name" : "'Indexes'" }
695      ]
696    },
697    {
698      "opname" : "OpCompositeInsert",
699      "opcode" : 82,
700      "operands" : [
701        { "kind" : "IdResultType" },
702        { "kind" : "IdResult" },
703        { "kind" : "IdRef",                              "name" : "'Object'" },
704        { "kind" : "IdRef",                              "name" : "'Composite'" },
705        { "kind" : "LiteralInteger", "quantifier" : "*", "name" : "'Indexes'" }
706      ]
707    },
708    {
709      "opname" : "OpCopyObject",
710      "opcode" : 83,
711      "operands" : [
712        { "kind" : "IdResultType" },
713        { "kind" : "IdResult" },
714        { "kind" : "IdRef",        "name" : "'Operand'" }
715      ]
716    },
717    {
718      "opname" : "OpTranspose",
719      "opcode" : 84,
720      "operands" : [
721        { "kind" : "IdResultType" },
722        { "kind" : "IdResult" },
723        { "kind" : "IdRef",        "name" : "'Matrix'" }
724      ],
725      "capabilities" : [ "Matrix" ]
726    },
727    {
728      "opname" : "OpSampledImage",
729      "opcode" : 86,
730      "operands" : [
731        { "kind" : "IdResultType" },
732        { "kind" : "IdResult" },
733        { "kind" : "IdRef",        "name" : "'Image'" },
734        { "kind" : "IdRef",        "name" : "'Sampler'" }
735      ]
736    },
737    {
738      "opname" : "OpImageSampleImplicitLod",
739      "opcode" : 87,
740      "operands" : [
741        { "kind" : "IdResultType" },
742        { "kind" : "IdResult" },
743        { "kind" : "IdRef",                             "name" : "'Sampled Image'" },
744        { "kind" : "IdRef",                             "name" : "'Coordinate'" },
745        { "kind" : "ImageOperands", "quantifier" : "?" }
746      ],
747      "capabilities" : [ "Shader" ]
748    },
749    {
750      "opname" : "OpImageSampleExplicitLod",
751      "opcode" : 88,
752      "operands" : [
753        { "kind" : "IdResultType" },
754        { "kind" : "IdResult" },
755        { "kind" : "IdRef",         "name" : "'Sampled Image'" },
756        { "kind" : "IdRef",         "name" : "'Coordinate'" },
757        { "kind" : "ImageOperands" }
758      ]
759    },
760    {
761      "opname" : "OpImageSampleDrefImplicitLod",
762      "opcode" : 89,
763      "operands" : [
764        { "kind" : "IdResultType" },
765        { "kind" : "IdResult" },
766        { "kind" : "IdRef",                             "name" : "'Sampled Image'" },
767        { "kind" : "IdRef",                             "name" : "'Coordinate'" },
768        { "kind" : "IdRef",                             "name" : "'D~ref~'" },
769        { "kind" : "ImageOperands", "quantifier" : "?" }
770      ],
771      "capabilities" : [ "Shader" ]
772    },
773    {
774      "opname" : "OpImageSampleDrefExplicitLod",
775      "opcode" : 90,
776      "operands" : [
777        { "kind" : "IdResultType" },
778        { "kind" : "IdResult" },
779        { "kind" : "IdRef",         "name" : "'Sampled Image'" },
780        { "kind" : "IdRef",         "name" : "'Coordinate'" },
781        { "kind" : "IdRef",         "name" : "'D~ref~'" },
782        { "kind" : "ImageOperands" }
783      ],
784      "capabilities" : [ "Shader" ]
785    },
786    {
787      "opname" : "OpImageSampleProjImplicitLod",
788      "opcode" : 91,
789      "operands" : [
790        { "kind" : "IdResultType" },
791        { "kind" : "IdResult" },
792        { "kind" : "IdRef",                             "name" : "'Sampled Image'" },
793        { "kind" : "IdRef",                             "name" : "'Coordinate'" },
794        { "kind" : "ImageOperands", "quantifier" : "?" }
795      ],
796      "capabilities" : [ "Shader" ]
797    },
798    {
799      "opname" : "OpImageSampleProjExplicitLod",
800      "opcode" : 92,
801      "operands" : [
802        { "kind" : "IdResultType" },
803        { "kind" : "IdResult" },
804        { "kind" : "IdRef",         "name" : "'Sampled Image'" },
805        { "kind" : "IdRef",         "name" : "'Coordinate'" },
806        { "kind" : "ImageOperands" }
807      ],
808      "capabilities" : [ "Shader" ]
809    },
810    {
811      "opname" : "OpImageSampleProjDrefImplicitLod",
812      "opcode" : 93,
813      "operands" : [
814        { "kind" : "IdResultType" },
815        { "kind" : "IdResult" },
816        { "kind" : "IdRef",                             "name" : "'Sampled Image'" },
817        { "kind" : "IdRef",                             "name" : "'Coordinate'" },
818        { "kind" : "IdRef",                             "name" : "'D~ref~'" },
819        { "kind" : "ImageOperands", "quantifier" : "?" }
820      ],
821      "capabilities" : [ "Shader" ]
822    },
823    {
824      "opname" : "OpImageSampleProjDrefExplicitLod",
825      "opcode" : 94,
826      "operands" : [
827        { "kind" : "IdResultType" },
828        { "kind" : "IdResult" },
829        { "kind" : "IdRef",         "name" : "'Sampled Image'" },
830        { "kind" : "IdRef",         "name" : "'Coordinate'" },
831        { "kind" : "IdRef",         "name" : "'D~ref~'" },
832        { "kind" : "ImageOperands" }
833      ],
834      "capabilities" : [ "Shader" ]
835    },
836    {
837      "opname" : "OpImageFetch",
838      "opcode" : 95,
839      "operands" : [
840        { "kind" : "IdResultType" },
841        { "kind" : "IdResult" },
842        { "kind" : "IdRef",                             "name" : "'Image'" },
843        { "kind" : "IdRef",                             "name" : "'Coordinate'" },
844        { "kind" : "ImageOperands", "quantifier" : "?" }
845      ]
846    },
847    {
848      "opname" : "OpImageGather",
849      "opcode" : 96,
850      "operands" : [
851        { "kind" : "IdResultType" },
852        { "kind" : "IdResult" },
853        { "kind" : "IdRef",                             "name" : "'Sampled Image'" },
854        { "kind" : "IdRef",                             "name" : "'Coordinate'" },
855        { "kind" : "IdRef",                             "name" : "'Component'" },
856        { "kind" : "ImageOperands", "quantifier" : "?" }
857      ],
858      "capabilities" : [ "Shader" ]
859    },
860    {
861      "opname" : "OpImageDrefGather",
862      "opcode" : 97,
863      "operands" : [
864        { "kind" : "IdResultType" },
865        { "kind" : "IdResult" },
866        { "kind" : "IdRef",                             "name" : "'Sampled Image'" },
867        { "kind" : "IdRef",                             "name" : "'Coordinate'" },
868        { "kind" : "IdRef",                             "name" : "'D~ref~'" },
869        { "kind" : "ImageOperands", "quantifier" : "?" }
870      ],
871      "capabilities" : [ "Shader" ]
872    },
873    {
874      "opname" : "OpImageRead",
875      "opcode" : 98,
876      "operands" : [
877        { "kind" : "IdResultType" },
878        { "kind" : "IdResult" },
879        { "kind" : "IdRef",                             "name" : "'Image'" },
880        { "kind" : "IdRef",                             "name" : "'Coordinate'" },
881        { "kind" : "ImageOperands", "quantifier" : "?" }
882      ]
883    },
884    {
885      "opname" : "OpImageWrite",
886      "opcode" : 99,
887      "operands" : [
888        { "kind" : "IdRef",                             "name" : "'Image'" },
889        { "kind" : "IdRef",                             "name" : "'Coordinate'" },
890        { "kind" : "IdRef",                             "name" : "'Texel'" },
891        { "kind" : "ImageOperands", "quantifier" : "?" }
892      ]
893    },
894    {
895      "opname" : "OpImage",
896      "opcode" : 100,
897      "operands" : [
898        { "kind" : "IdResultType" },
899        { "kind" : "IdResult" },
900        { "kind" : "IdRef",        "name" : "'Sampled Image'" }
901      ]
902    },
903    {
904      "opname" : "OpImageQueryFormat",
905      "opcode" : 101,
906      "operands" : [
907        { "kind" : "IdResultType" },
908        { "kind" : "IdResult" },
909        { "kind" : "IdRef",        "name" : "'Image'" }
910      ],
911      "capabilities" : [ "Kernel" ]
912    },
913    {
914      "opname" : "OpImageQueryOrder",
915      "opcode" : 102,
916      "operands" : [
917        { "kind" : "IdResultType" },
918        { "kind" : "IdResult" },
919        { "kind" : "IdRef",        "name" : "'Image'" }
920      ],
921      "capabilities" : [ "Kernel" ]
922    },
923    {
924      "opname" : "OpImageQuerySizeLod",
925      "opcode" : 103,
926      "operands" : [
927        { "kind" : "IdResultType" },
928        { "kind" : "IdResult" },
929        { "kind" : "IdRef",        "name" : "'Image'" },
930        { "kind" : "IdRef",        "name" : "'Level of Detail'" }
931      ],
932      "capabilities" : [ "Kernel", "ImageQuery" ]
933    },
934    {
935      "opname" : "OpImageQuerySize",
936      "opcode" : 104,
937      "operands" : [
938        { "kind" : "IdResultType" },
939        { "kind" : "IdResult" },
940        { "kind" : "IdRef",        "name" : "'Image'" }
941      ],
942      "capabilities" : [ "Kernel", "ImageQuery" ]
943    },
944    {
945      "opname" : "OpImageQueryLod",
946      "opcode" : 105,
947      "operands" : [
948        { "kind" : "IdResultType" },
949        { "kind" : "IdResult" },
950        { "kind" : "IdRef",        "name" : "'Sampled Image'" },
951        { "kind" : "IdRef",        "name" : "'Coordinate'" }
952      ],
953      "capabilities" : [ "ImageQuery" ]
954    },
955    {
956      "opname" : "OpImageQueryLevels",
957      "opcode" : 106,
958      "operands" : [
959        { "kind" : "IdResultType" },
960        { "kind" : "IdResult" },
961        { "kind" : "IdRef",        "name" : "'Image'" }
962      ],
963      "capabilities" : [ "Kernel", "ImageQuery" ]
964    },
965    {
966      "opname" : "OpImageQuerySamples",
967      "opcode" : 107,
968      "operands" : [
969        { "kind" : "IdResultType" },
970        { "kind" : "IdResult" },
971        { "kind" : "IdRef",        "name" : "'Image'" }
972      ],
973      "capabilities" : [ "Kernel", "ImageQuery" ]
974    },
975    {
976      "opname" : "OpConvertFToU",
977      "opcode" : 109,
978      "operands" : [
979        { "kind" : "IdResultType" },
980        { "kind" : "IdResult" },
981        { "kind" : "IdRef",        "name" : "'Float Value'" }
982      ]
983    },
984    {
985      "opname" : "OpConvertFToS",
986      "opcode" : 110,
987      "operands" : [
988        { "kind" : "IdResultType" },
989        { "kind" : "IdResult" },
990        { "kind" : "IdRef",        "name" : "'Float Value'" }
991      ]
992    },
993    {
994      "opname" : "OpConvertSToF",
995      "opcode" : 111,
996      "operands" : [
997        { "kind" : "IdResultType" },
998        { "kind" : "IdResult" },
999        { "kind" : "IdRef",        "name" : "'Signed Value'" }
1000      ]
1001    },
1002    {
1003      "opname" : "OpConvertUToF",
1004      "opcode" : 112,
1005      "operands" : [
1006        { "kind" : "IdResultType" },
1007        { "kind" : "IdResult" },
1008        { "kind" : "IdRef",        "name" : "'Unsigned Value'" }
1009      ]
1010    },
1011    {
1012      "opname" : "OpUConvert",
1013      "opcode" : 113,
1014      "operands" : [
1015        { "kind" : "IdResultType" },
1016        { "kind" : "IdResult" },
1017        { "kind" : "IdRef",        "name" : "'Unsigned Value'" }
1018      ]
1019    },
1020    {
1021      "opname" : "OpSConvert",
1022      "opcode" : 114,
1023      "operands" : [
1024        { "kind" : "IdResultType" },
1025        { "kind" : "IdResult" },
1026        { "kind" : "IdRef",        "name" : "'Signed Value'" }
1027      ]
1028    },
1029    {
1030      "opname" : "OpFConvert",
1031      "opcode" : 115,
1032      "operands" : [
1033        { "kind" : "IdResultType" },
1034        { "kind" : "IdResult" },
1035        { "kind" : "IdRef",        "name" : "'Float Value'" }
1036      ]
1037    },
1038    {
1039      "opname" : "OpQuantizeToF16",
1040      "opcode" : 116,
1041      "operands" : [
1042        { "kind" : "IdResultType" },
1043        { "kind" : "IdResult" },
1044        { "kind" : "IdRef",        "name" : "'Value'" }
1045      ]
1046    },
1047    {
1048      "opname" : "OpConvertPtrToU",
1049      "opcode" : 117,
1050      "operands" : [
1051        { "kind" : "IdResultType" },
1052        { "kind" : "IdResult" },
1053        { "kind" : "IdRef",        "name" : "'Pointer'" }
1054      ],
1055      "capabilities" : [
1056        "Addresses",
1057        "PhysicalStorageBufferAddressesEXT"
1058      ]
1059    },
1060    {
1061      "opname" : "OpSatConvertSToU",
1062      "opcode" : 118,
1063      "operands" : [
1064        { "kind" : "IdResultType" },
1065        { "kind" : "IdResult" },
1066        { "kind" : "IdRef",        "name" : "'Signed Value'" }
1067      ],
1068      "capabilities" : [ "Kernel" ]
1069    },
1070    {
1071      "opname" : "OpSatConvertUToS",
1072      "opcode" : 119,
1073      "operands" : [
1074        { "kind" : "IdResultType" },
1075        { "kind" : "IdResult" },
1076        { "kind" : "IdRef",        "name" : "'Unsigned Value'" }
1077      ],
1078      "capabilities" : [ "Kernel" ]
1079    },
1080    {
1081      "opname" : "OpConvertUToPtr",
1082      "opcode" : 120,
1083      "operands" : [
1084        { "kind" : "IdResultType" },
1085        { "kind" : "IdResult" },
1086        { "kind" : "IdRef",        "name" : "'Integer Value'" }
1087      ],
1088      "capabilities" : [
1089        "Addresses",
1090        "PhysicalStorageBufferAddressesEXT"
1091      ]
1092    },
1093    {
1094      "opname" : "OpPtrCastToGeneric",
1095      "opcode" : 121,
1096      "operands" : [
1097        { "kind" : "IdResultType" },
1098        { "kind" : "IdResult" },
1099        { "kind" : "IdRef",        "name" : "'Pointer'" }
1100      ],
1101      "capabilities" : [ "Kernel" ]
1102    },
1103    {
1104      "opname" : "OpGenericCastToPtr",
1105      "opcode" : 122,
1106      "operands" : [
1107        { "kind" : "IdResultType" },
1108        { "kind" : "IdResult" },
1109        { "kind" : "IdRef",        "name" : "'Pointer'" }
1110      ],
1111      "capabilities" : [ "Kernel" ]
1112    },
1113    {
1114      "opname" : "OpGenericCastToPtrExplicit",
1115      "opcode" : 123,
1116      "operands" : [
1117        { "kind" : "IdResultType" },
1118        { "kind" : "IdResult" },
1119        { "kind" : "IdRef",        "name" : "'Pointer'" },
1120        { "kind" : "StorageClass", "name" : "'Storage'" }
1121      ],
1122      "capabilities" : [ "Kernel" ]
1123    },
1124    {
1125      "opname" : "OpBitcast",
1126      "opcode" : 124,
1127      "operands" : [
1128        { "kind" : "IdResultType" },
1129        { "kind" : "IdResult" },
1130        { "kind" : "IdRef",        "name" : "'Operand'" }
1131      ]
1132    },
1133    {
1134      "opname" : "OpSNegate",
1135      "opcode" : 126,
1136      "operands" : [
1137        { "kind" : "IdResultType" },
1138        { "kind" : "IdResult" },
1139        { "kind" : "IdRef",        "name" : "'Operand'" }
1140      ]
1141    },
1142    {
1143      "opname" : "OpFNegate",
1144      "opcode" : 127,
1145      "operands" : [
1146        { "kind" : "IdResultType" },
1147        { "kind" : "IdResult" },
1148        { "kind" : "IdRef",        "name" : "'Operand'" }
1149      ]
1150    },
1151    {
1152      "opname" : "OpIAdd",
1153      "opcode" : 128,
1154      "operands" : [
1155        { "kind" : "IdResultType" },
1156        { "kind" : "IdResult" },
1157        { "kind" : "IdRef",        "name" : "'Operand 1'" },
1158        { "kind" : "IdRef",        "name" : "'Operand 2'" }
1159      ]
1160    },
1161    {
1162      "opname" : "OpFAdd",
1163      "opcode" : 129,
1164      "operands" : [
1165        { "kind" : "IdResultType" },
1166        { "kind" : "IdResult" },
1167        { "kind" : "IdRef",        "name" : "'Operand 1'" },
1168        { "kind" : "IdRef",        "name" : "'Operand 2'" }
1169      ]
1170    },
1171    {
1172      "opname" : "OpISub",
1173      "opcode" : 130,
1174      "operands" : [
1175        { "kind" : "IdResultType" },
1176        { "kind" : "IdResult" },
1177        { "kind" : "IdRef",        "name" : "'Operand 1'" },
1178        { "kind" : "IdRef",        "name" : "'Operand 2'" }
1179      ]
1180    },
1181    {
1182      "opname" : "OpFSub",
1183      "opcode" : 131,
1184      "operands" : [
1185        { "kind" : "IdResultType" },
1186        { "kind" : "IdResult" },
1187        { "kind" : "IdRef",        "name" : "'Operand 1'" },
1188        { "kind" : "IdRef",        "name" : "'Operand 2'" }
1189      ]
1190    },
1191    {
1192      "opname" : "OpIMul",
1193      "opcode" : 132,
1194      "operands" : [
1195        { "kind" : "IdResultType" },
1196        { "kind" : "IdResult" },
1197        { "kind" : "IdRef",        "name" : "'Operand 1'" },
1198        { "kind" : "IdRef",        "name" : "'Operand 2'" }
1199      ]
1200    },
1201    {
1202      "opname" : "OpFMul",
1203      "opcode" : 133,
1204      "operands" : [
1205        { "kind" : "IdResultType" },
1206        { "kind" : "IdResult" },
1207        { "kind" : "IdRef",        "name" : "'Operand 1'" },
1208        { "kind" : "IdRef",        "name" : "'Operand 2'" }
1209      ]
1210    },
1211    {
1212      "opname" : "OpUDiv",
1213      "opcode" : 134,
1214      "operands" : [
1215        { "kind" : "IdResultType" },
1216        { "kind" : "IdResult" },
1217        { "kind" : "IdRef",        "name" : "'Operand 1'" },
1218        { "kind" : "IdRef",        "name" : "'Operand 2'" }
1219      ]
1220    },
1221    {
1222      "opname" : "OpSDiv",
1223      "opcode" : 135,
1224      "operands" : [
1225        { "kind" : "IdResultType" },
1226        { "kind" : "IdResult" },
1227        { "kind" : "IdRef",        "name" : "'Operand 1'" },
1228        { "kind" : "IdRef",        "name" : "'Operand 2'" }
1229      ]
1230    },
1231    {
1232      "opname" : "OpFDiv",
1233      "opcode" : 136,
1234      "operands" : [
1235        { "kind" : "IdResultType" },
1236        { "kind" : "IdResult" },
1237        { "kind" : "IdRef",        "name" : "'Operand 1'" },
1238        { "kind" : "IdRef",        "name" : "'Operand 2'" }
1239      ]
1240    },
1241    {
1242      "opname" : "OpUMod",
1243      "opcode" : 137,
1244      "operands" : [
1245        { "kind" : "IdResultType" },
1246        { "kind" : "IdResult" },
1247        { "kind" : "IdRef",        "name" : "'Operand 1'" },
1248        { "kind" : "IdRef",        "name" : "'Operand 2'" }
1249      ]
1250    },
1251    {
1252      "opname" : "OpSRem",
1253      "opcode" : 138,
1254      "operands" : [
1255        { "kind" : "IdResultType" },
1256        { "kind" : "IdResult" },
1257        { "kind" : "IdRef",        "name" : "'Operand 1'" },
1258        { "kind" : "IdRef",        "name" : "'Operand 2'" }
1259      ]
1260    },
1261    {
1262      "opname" : "OpSMod",
1263      "opcode" : 139,
1264      "operands" : [
1265        { "kind" : "IdResultType" },
1266        { "kind" : "IdResult" },
1267        { "kind" : "IdRef",        "name" : "'Operand 1'" },
1268        { "kind" : "IdRef",        "name" : "'Operand 2'" }
1269      ]
1270    },
1271    {
1272      "opname" : "OpFRem",
1273      "opcode" : 140,
1274      "operands" : [
1275        { "kind" : "IdResultType" },
1276        { "kind" : "IdResult" },
1277        { "kind" : "IdRef",        "name" : "'Operand 1'" },
1278        { "kind" : "IdRef",        "name" : "'Operand 2'" }
1279      ]
1280    },
1281    {
1282      "opname" : "OpFMod",
1283      "opcode" : 141,
1284      "operands" : [
1285        { "kind" : "IdResultType" },
1286        { "kind" : "IdResult" },
1287        { "kind" : "IdRef",        "name" : "'Operand 1'" },
1288        { "kind" : "IdRef",        "name" : "'Operand 2'" }
1289      ]
1290    },
1291    {
1292      "opname" : "OpVectorTimesScalar",
1293      "opcode" : 142,
1294      "operands" : [
1295        { "kind" : "IdResultType" },
1296        { "kind" : "IdResult" },
1297        { "kind" : "IdRef",        "name" : "'Vector'" },
1298        { "kind" : "IdRef",        "name" : "'Scalar'" }
1299      ]
1300    },
1301    {
1302      "opname" : "OpMatrixTimesScalar",
1303      "opcode" : 143,
1304      "operands" : [
1305        { "kind" : "IdResultType" },
1306        { "kind" : "IdResult" },
1307        { "kind" : "IdRef",        "name" : "'Matrix'" },
1308        { "kind" : "IdRef",        "name" : "'Scalar'" }
1309      ],
1310      "capabilities" : [ "Matrix" ]
1311    },
1312    {
1313      "opname" : "OpVectorTimesMatrix",
1314      "opcode" : 144,
1315      "operands" : [
1316        { "kind" : "IdResultType" },
1317        { "kind" : "IdResult" },
1318        { "kind" : "IdRef",        "name" : "'Vector'" },
1319        { "kind" : "IdRef",        "name" : "'Matrix'" }
1320      ],
1321      "capabilities" : [ "Matrix" ]
1322    },
1323    {
1324      "opname" : "OpMatrixTimesVector",
1325      "opcode" : 145,
1326      "operands" : [
1327        { "kind" : "IdResultType" },
1328        { "kind" : "IdResult" },
1329        { "kind" : "IdRef",        "name" : "'Matrix'" },
1330        { "kind" : "IdRef",        "name" : "'Vector'" }
1331      ],
1332      "capabilities" : [ "Matrix" ]
1333    },
1334    {
1335      "opname" : "OpMatrixTimesMatrix",
1336      "opcode" : 146,
1337      "operands" : [
1338        { "kind" : "IdResultType" },
1339        { "kind" : "IdResult" },
1340        { "kind" : "IdRef",        "name" : "'LeftMatrix'" },
1341        { "kind" : "IdRef",        "name" : "'RightMatrix'" }
1342      ],
1343      "capabilities" : [ "Matrix" ]
1344    },
1345    {
1346      "opname" : "OpOuterProduct",
1347      "opcode" : 147,
1348      "operands" : [
1349        { "kind" : "IdResultType" },
1350        { "kind" : "IdResult" },
1351        { "kind" : "IdRef",        "name" : "'Vector 1'" },
1352        { "kind" : "IdRef",        "name" : "'Vector 2'" }
1353      ],
1354      "capabilities" : [ "Matrix" ]
1355    },
1356    {
1357      "opname" : "OpDot",
1358      "opcode" : 148,
1359      "operands" : [
1360        { "kind" : "IdResultType" },
1361        { "kind" : "IdResult" },
1362        { "kind" : "IdRef",        "name" : "'Vector 1'" },
1363        { "kind" : "IdRef",        "name" : "'Vector 2'" }
1364      ]
1365    },
1366    {
1367      "opname" : "OpIAddCarry",
1368      "opcode" : 149,
1369      "operands" : [
1370        { "kind" : "IdResultType" },
1371        { "kind" : "IdResult" },
1372        { "kind" : "IdRef",        "name" : "'Operand 1'" },
1373        { "kind" : "IdRef",        "name" : "'Operand 2'" }
1374      ]
1375    },
1376    {
1377      "opname" : "OpISubBorrow",
1378      "opcode" : 150,
1379      "operands" : [
1380        { "kind" : "IdResultType" },
1381        { "kind" : "IdResult" },
1382        { "kind" : "IdRef",        "name" : "'Operand 1'" },
1383        { "kind" : "IdRef",        "name" : "'Operand 2'" }
1384      ]
1385    },
1386    {
1387      "opname" : "OpUMulExtended",
1388      "opcode" : 151,
1389      "operands" : [
1390        { "kind" : "IdResultType" },
1391        { "kind" : "IdResult" },
1392        { "kind" : "IdRef",        "name" : "'Operand 1'" },
1393        { "kind" : "IdRef",        "name" : "'Operand 2'" }
1394      ]
1395    },
1396    {
1397      "opname" : "OpSMulExtended",
1398      "opcode" : 152,
1399      "operands" : [
1400        { "kind" : "IdResultType" },
1401        { "kind" : "IdResult" },
1402        { "kind" : "IdRef",        "name" : "'Operand 1'" },
1403        { "kind" : "IdRef",        "name" : "'Operand 2'" }
1404      ]
1405    },
1406    {
1407      "opname" : "OpAny",
1408      "opcode" : 154,
1409      "operands" : [
1410        { "kind" : "IdResultType" },
1411        { "kind" : "IdResult" },
1412        { "kind" : "IdRef",        "name" : "'Vector'" }
1413      ]
1414    },
1415    {
1416      "opname" : "OpAll",
1417      "opcode" : 155,
1418      "operands" : [
1419        { "kind" : "IdResultType" },
1420        { "kind" : "IdResult" },
1421        { "kind" : "IdRef",        "name" : "'Vector'" }
1422      ]
1423    },
1424    {
1425      "opname" : "OpIsNan",
1426      "opcode" : 156,
1427      "operands" : [
1428        { "kind" : "IdResultType" },
1429        { "kind" : "IdResult" },
1430        { "kind" : "IdRef",        "name" : "'x'" }
1431      ]
1432    },
1433    {
1434      "opname" : "OpIsInf",
1435      "opcode" : 157,
1436      "operands" : [
1437        { "kind" : "IdResultType" },
1438        { "kind" : "IdResult" },
1439        { "kind" : "IdRef",        "name" : "'x'" }
1440      ]
1441    },
1442    {
1443      "opname" : "OpIsFinite",
1444      "opcode" : 158,
1445      "operands" : [
1446        { "kind" : "IdResultType" },
1447        { "kind" : "IdResult" },
1448        { "kind" : "IdRef",        "name" : "'x'" }
1449      ],
1450      "capabilities" : [ "Kernel" ]
1451    },
1452    {
1453      "opname" : "OpIsNormal",
1454      "opcode" : 159,
1455      "operands" : [
1456        { "kind" : "IdResultType" },
1457        { "kind" : "IdResult" },
1458        { "kind" : "IdRef",        "name" : "'x'" }
1459      ],
1460      "capabilities" : [ "Kernel" ]
1461    },
1462    {
1463      "opname" : "OpSignBitSet",
1464      "opcode" : 160,
1465      "operands" : [
1466        { "kind" : "IdResultType" },
1467        { "kind" : "IdResult" },
1468        { "kind" : "IdRef",        "name" : "'x'" }
1469      ],
1470      "capabilities" : [ "Kernel" ]
1471    },
1472    {
1473      "opname" : "OpLessOrGreater",
1474      "opcode" : 161,
1475      "operands" : [
1476        { "kind" : "IdResultType" },
1477        { "kind" : "IdResult" },
1478        { "kind" : "IdRef",        "name" : "'x'" },
1479        { "kind" : "IdRef",        "name" : "'y'" }
1480      ],
1481      "capabilities" : [ "Kernel" ]
1482    },
1483    {
1484      "opname" : "OpOrdered",
1485      "opcode" : 162,
1486      "operands" : [
1487        { "kind" : "IdResultType" },
1488        { "kind" : "IdResult" },
1489        { "kind" : "IdRef",        "name" : "'x'" },
1490        { "kind" : "IdRef",        "name" : "'y'" }
1491      ],
1492      "capabilities" : [ "Kernel" ]
1493    },
1494    {
1495      "opname" : "OpUnordered",
1496      "opcode" : 163,
1497      "operands" : [
1498        { "kind" : "IdResultType" },
1499        { "kind" : "IdResult" },
1500        { "kind" : "IdRef",        "name" : "'x'" },
1501        { "kind" : "IdRef",        "name" : "'y'" }
1502      ],
1503      "capabilities" : [ "Kernel" ]
1504    },
1505    {
1506      "opname" : "OpLogicalEqual",
1507      "opcode" : 164,
1508      "operands" : [
1509        { "kind" : "IdResultType" },
1510        { "kind" : "IdResult" },
1511        { "kind" : "IdRef",        "name" : "'Operand 1'" },
1512        { "kind" : "IdRef",        "name" : "'Operand 2'" }
1513      ]
1514    },
1515    {
1516      "opname" : "OpLogicalNotEqual",
1517      "opcode" : 165,
1518      "operands" : [
1519        { "kind" : "IdResultType" },
1520        { "kind" : "IdResult" },
1521        { "kind" : "IdRef",        "name" : "'Operand 1'" },
1522        { "kind" : "IdRef",        "name" : "'Operand 2'" }
1523      ]
1524    },
1525    {
1526      "opname" : "OpLogicalOr",
1527      "opcode" : 166,
1528      "operands" : [
1529        { "kind" : "IdResultType" },
1530        { "kind" : "IdResult" },
1531        { "kind" : "IdRef",        "name" : "'Operand 1'" },
1532        { "kind" : "IdRef",        "name" : "'Operand 2'" }
1533      ]
1534    },
1535    {
1536      "opname" : "OpLogicalAnd",
1537      "opcode" : 167,
1538      "operands" : [
1539        { "kind" : "IdResultType" },
1540        { "kind" : "IdResult" },
1541        { "kind" : "IdRef",        "name" : "'Operand 1'" },
1542        { "kind" : "IdRef",        "name" : "'Operand 2'" }
1543      ]
1544    },
1545    {
1546      "opname" : "OpLogicalNot",
1547      "opcode" : 168,
1548      "operands" : [
1549        { "kind" : "IdResultType" },
1550        { "kind" : "IdResult" },
1551        { "kind" : "IdRef",        "name" : "'Operand'" }
1552      ]
1553    },
1554    {
1555      "opname" : "OpSelect",
1556      "opcode" : 169,
1557      "operands" : [
1558        { "kind" : "IdResultType" },
1559        { "kind" : "IdResult" },
1560        { "kind" : "IdRef",        "name" : "'Condition'" },
1561        { "kind" : "IdRef",        "name" : "'Object 1'" },
1562        { "kind" : "IdRef",        "name" : "'Object 2'" }
1563      ]
1564    },
1565    {
1566      "opname" : "OpIEqual",
1567      "opcode" : 170,
1568      "operands" : [
1569        { "kind" : "IdResultType" },
1570        { "kind" : "IdResult" },
1571        { "kind" : "IdRef",        "name" : "'Operand 1'" },
1572        { "kind" : "IdRef",        "name" : "'Operand 2'" }
1573      ]
1574    },
1575    {
1576      "opname" : "OpINotEqual",
1577      "opcode" : 171,
1578      "operands" : [
1579        { "kind" : "IdResultType" },
1580        { "kind" : "IdResult" },
1581        { "kind" : "IdRef",        "name" : "'Operand 1'" },
1582        { "kind" : "IdRef",        "name" : "'Operand 2'" }
1583      ]
1584    },
1585    {
1586      "opname" : "OpUGreaterThan",
1587      "opcode" : 172,
1588      "operands" : [
1589        { "kind" : "IdResultType" },
1590        { "kind" : "IdResult" },
1591        { "kind" : "IdRef",        "name" : "'Operand 1'" },
1592        { "kind" : "IdRef",        "name" : "'Operand 2'" }
1593      ]
1594    },
1595    {
1596      "opname" : "OpSGreaterThan",
1597      "opcode" : 173,
1598      "operands" : [
1599        { "kind" : "IdResultType" },
1600        { "kind" : "IdResult" },
1601        { "kind" : "IdRef",        "name" : "'Operand 1'" },
1602        { "kind" : "IdRef",        "name" : "'Operand 2'" }
1603      ]
1604    },
1605    {
1606      "opname" : "OpUGreaterThanEqual",
1607      "opcode" : 174,
1608      "operands" : [
1609        { "kind" : "IdResultType" },
1610        { "kind" : "IdResult" },
1611        { "kind" : "IdRef",        "name" : "'Operand 1'" },
1612        { "kind" : "IdRef",        "name" : "'Operand 2'" }
1613      ]
1614    },
1615    {
1616      "opname" : "OpSGreaterThanEqual",
1617      "opcode" : 175,
1618      "operands" : [
1619        { "kind" : "IdResultType" },
1620        { "kind" : "IdResult" },
1621        { "kind" : "IdRef",        "name" : "'Operand 1'" },
1622        { "kind" : "IdRef",        "name" : "'Operand 2'" }
1623      ]
1624    },
1625    {
1626      "opname" : "OpULessThan",
1627      "opcode" : 176,
1628      "operands" : [
1629        { "kind" : "IdResultType" },
1630        { "kind" : "IdResult" },
1631        { "kind" : "IdRef",        "name" : "'Operand 1'" },
1632        { "kind" : "IdRef",        "name" : "'Operand 2'" }
1633      ]
1634    },
1635    {
1636      "opname" : "OpSLessThan",
1637      "opcode" : 177,
1638      "operands" : [
1639        { "kind" : "IdResultType" },
1640        { "kind" : "IdResult" },
1641        { "kind" : "IdRef",        "name" : "'Operand 1'" },
1642        { "kind" : "IdRef",        "name" : "'Operand 2'" }
1643      ]
1644    },
1645    {
1646      "opname" : "OpULessThanEqual",
1647      "opcode" : 178,
1648      "operands" : [
1649        { "kind" : "IdResultType" },
1650        { "kind" : "IdResult" },
1651        { "kind" : "IdRef",        "name" : "'Operand 1'" },
1652        { "kind" : "IdRef",        "name" : "'Operand 2'" }
1653      ]
1654    },
1655    {
1656      "opname" : "OpSLessThanEqual",
1657      "opcode" : 179,
1658      "operands" : [
1659        { "kind" : "IdResultType" },
1660        { "kind" : "IdResult" },
1661        { "kind" : "IdRef",        "name" : "'Operand 1'" },
1662        { "kind" : "IdRef",        "name" : "'Operand 2'" }
1663      ]
1664    },
1665    {
1666      "opname" : "OpFOrdEqual",
1667      "opcode" : 180,
1668      "operands" : [
1669        { "kind" : "IdResultType" },
1670        { "kind" : "IdResult" },
1671        { "kind" : "IdRef",        "name" : "'Operand 1'" },
1672        { "kind" : "IdRef",        "name" : "'Operand 2'" }
1673      ]
1674    },
1675    {
1676      "opname" : "OpFUnordEqual",
1677      "opcode" : 181,
1678      "operands" : [
1679        { "kind" : "IdResultType" },
1680        { "kind" : "IdResult" },
1681        { "kind" : "IdRef",        "name" : "'Operand 1'" },
1682        { "kind" : "IdRef",        "name" : "'Operand 2'" }
1683      ]
1684    },
1685    {
1686      "opname" : "OpFOrdNotEqual",
1687      "opcode" : 182,
1688      "operands" : [
1689        { "kind" : "IdResultType" },
1690        { "kind" : "IdResult" },
1691        { "kind" : "IdRef",        "name" : "'Operand 1'" },
1692        { "kind" : "IdRef",        "name" : "'Operand 2'" }
1693      ]
1694    },
1695    {
1696      "opname" : "OpFUnordNotEqual",
1697      "opcode" : 183,
1698      "operands" : [
1699        { "kind" : "IdResultType" },
1700        { "kind" : "IdResult" },
1701        { "kind" : "IdRef",        "name" : "'Operand 1'" },
1702        { "kind" : "IdRef",        "name" : "'Operand 2'" }
1703      ]
1704    },
1705    {
1706      "opname" : "OpFOrdLessThan",
1707      "opcode" : 184,
1708      "operands" : [
1709        { "kind" : "IdResultType" },
1710        { "kind" : "IdResult" },
1711        { "kind" : "IdRef",        "name" : "'Operand 1'" },
1712        { "kind" : "IdRef",        "name" : "'Operand 2'" }
1713      ]
1714    },
1715    {
1716      "opname" : "OpFUnordLessThan",
1717      "opcode" : 185,
1718      "operands" : [
1719        { "kind" : "IdResultType" },
1720        { "kind" : "IdResult" },
1721        { "kind" : "IdRef",        "name" : "'Operand 1'" },
1722        { "kind" : "IdRef",        "name" : "'Operand 2'" }
1723      ]
1724    },
1725    {
1726      "opname" : "OpFOrdGreaterThan",
1727      "opcode" : 186,
1728      "operands" : [
1729        { "kind" : "IdResultType" },
1730        { "kind" : "IdResult" },
1731        { "kind" : "IdRef",        "name" : "'Operand 1'" },
1732        { "kind" : "IdRef",        "name" : "'Operand 2'" }
1733      ]
1734    },
1735    {
1736      "opname" : "OpFUnordGreaterThan",
1737      "opcode" : 187,
1738      "operands" : [
1739        { "kind" : "IdResultType" },
1740        { "kind" : "IdResult" },
1741        { "kind" : "IdRef",        "name" : "'Operand 1'" },
1742        { "kind" : "IdRef",        "name" : "'Operand 2'" }
1743      ]
1744    },
1745    {
1746      "opname" : "OpFOrdLessThanEqual",
1747      "opcode" : 188,
1748      "operands" : [
1749        { "kind" : "IdResultType" },
1750        { "kind" : "IdResult" },
1751        { "kind" : "IdRef",        "name" : "'Operand 1'" },
1752        { "kind" : "IdRef",        "name" : "'Operand 2'" }
1753      ]
1754    },
1755    {
1756      "opname" : "OpFUnordLessThanEqual",
1757      "opcode" : 189,
1758      "operands" : [
1759        { "kind" : "IdResultType" },
1760        { "kind" : "IdResult" },
1761        { "kind" : "IdRef",        "name" : "'Operand 1'" },
1762        { "kind" : "IdRef",        "name" : "'Operand 2'" }
1763      ]
1764    },
1765    {
1766      "opname" : "OpFOrdGreaterThanEqual",
1767      "opcode" : 190,
1768      "operands" : [
1769        { "kind" : "IdResultType" },
1770        { "kind" : "IdResult" },
1771        { "kind" : "IdRef",        "name" : "'Operand 1'" },
1772        { "kind" : "IdRef",        "name" : "'Operand 2'" }
1773      ]
1774    },
1775    {
1776      "opname" : "OpFUnordGreaterThanEqual",
1777      "opcode" : 191,
1778      "operands" : [
1779        { "kind" : "IdResultType" },
1780        { "kind" : "IdResult" },
1781        { "kind" : "IdRef",        "name" : "'Operand 1'" },
1782        { "kind" : "IdRef",        "name" : "'Operand 2'" }
1783      ]
1784    },
1785    {
1786      "opname" : "OpShiftRightLogical",
1787      "opcode" : 194,
1788      "operands" : [
1789        { "kind" : "IdResultType" },
1790        { "kind" : "IdResult" },
1791        { "kind" : "IdRef",        "name" : "'Base'" },
1792        { "kind" : "IdRef",        "name" : "'Shift'" }
1793      ]
1794    },
1795    {
1796      "opname" : "OpShiftRightArithmetic",
1797      "opcode" : 195,
1798      "operands" : [
1799        { "kind" : "IdResultType" },
1800        { "kind" : "IdResult" },
1801        { "kind" : "IdRef",        "name" : "'Base'" },
1802        { "kind" : "IdRef",        "name" : "'Shift'" }
1803      ]
1804    },
1805    {
1806      "opname" : "OpShiftLeftLogical",
1807      "opcode" : 196,
1808      "operands" : [
1809        { "kind" : "IdResultType" },
1810        { "kind" : "IdResult" },
1811        { "kind" : "IdRef",        "name" : "'Base'" },
1812        { "kind" : "IdRef",        "name" : "'Shift'" }
1813      ]
1814    },
1815    {
1816      "opname" : "OpBitwiseOr",
1817      "opcode" : 197,
1818      "operands" : [
1819        { "kind" : "IdResultType" },
1820        { "kind" : "IdResult" },
1821        { "kind" : "IdRef",        "name" : "'Operand 1'" },
1822        { "kind" : "IdRef",        "name" : "'Operand 2'" }
1823      ]
1824    },
1825    {
1826      "opname" : "OpBitwiseXor",
1827      "opcode" : 198,
1828      "operands" : [
1829        { "kind" : "IdResultType" },
1830        { "kind" : "IdResult" },
1831        { "kind" : "IdRef",        "name" : "'Operand 1'" },
1832        { "kind" : "IdRef",        "name" : "'Operand 2'" }
1833      ]
1834    },
1835    {
1836      "opname" : "OpBitwiseAnd",
1837      "opcode" : 199,
1838      "operands" : [
1839        { "kind" : "IdResultType" },
1840        { "kind" : "IdResult" },
1841        { "kind" : "IdRef",        "name" : "'Operand 1'" },
1842        { "kind" : "IdRef",        "name" : "'Operand 2'" }
1843      ]
1844    },
1845    {
1846      "opname" : "OpNot",
1847      "opcode" : 200,
1848      "operands" : [
1849        { "kind" : "IdResultType" },
1850        { "kind" : "IdResult" },
1851        { "kind" : "IdRef",        "name" : "'Operand'" }
1852      ]
1853    },
1854    {
1855      "opname" : "OpBitFieldInsert",
1856      "opcode" : 201,
1857      "operands" : [
1858        { "kind" : "IdResultType" },
1859        { "kind" : "IdResult" },
1860        { "kind" : "IdRef",        "name" : "'Base'" },
1861        { "kind" : "IdRef",        "name" : "'Insert'" },
1862        { "kind" : "IdRef",        "name" : "'Offset'" },
1863        { "kind" : "IdRef",        "name" : "'Count'" }
1864      ],
1865      "capabilities" : [ "Shader" ]
1866    },
1867    {
1868      "opname" : "OpBitFieldSExtract",
1869      "opcode" : 202,
1870      "operands" : [
1871        { "kind" : "IdResultType" },
1872        { "kind" : "IdResult" },
1873        { "kind" : "IdRef",        "name" : "'Base'" },
1874        { "kind" : "IdRef",        "name" : "'Offset'" },
1875        { "kind" : "IdRef",        "name" : "'Count'" }
1876      ],
1877      "capabilities" : [ "Shader" ]
1878    },
1879    {
1880      "opname" : "OpBitFieldUExtract",
1881      "opcode" : 203,
1882      "operands" : [
1883        { "kind" : "IdResultType" },
1884        { "kind" : "IdResult" },
1885        { "kind" : "IdRef",        "name" : "'Base'" },
1886        { "kind" : "IdRef",        "name" : "'Offset'" },
1887        { "kind" : "IdRef",        "name" : "'Count'" }
1888      ],
1889      "capabilities" : [ "Shader" ]
1890    },
1891    {
1892      "opname" : "OpBitReverse",
1893      "opcode" : 204,
1894      "operands" : [
1895        { "kind" : "IdResultType" },
1896        { "kind" : "IdResult" },
1897        { "kind" : "IdRef",        "name" : "'Base'" }
1898      ],
1899      "capabilities" : [ "Shader" ]
1900    },
1901    {
1902      "opname" : "OpBitCount",
1903      "opcode" : 205,
1904      "operands" : [
1905        { "kind" : "IdResultType" },
1906        { "kind" : "IdResult" },
1907        { "kind" : "IdRef",        "name" : "'Base'" }
1908      ]
1909    },
1910    {
1911      "opname" : "OpDPdx",
1912      "opcode" : 207,
1913      "operands" : [
1914        { "kind" : "IdResultType" },
1915        { "kind" : "IdResult" },
1916        { "kind" : "IdRef",        "name" : "'P'" }
1917      ],
1918      "capabilities" : [ "Shader" ]
1919    },
1920    {
1921      "opname" : "OpDPdy",
1922      "opcode" : 208,
1923      "operands" : [
1924        { "kind" : "IdResultType" },
1925        { "kind" : "IdResult" },
1926        { "kind" : "IdRef",        "name" : "'P'" }
1927      ],
1928      "capabilities" : [ "Shader" ]
1929    },
1930    {
1931      "opname" : "OpFwidth",
1932      "opcode" : 209,
1933      "operands" : [
1934        { "kind" : "IdResultType" },
1935        { "kind" : "IdResult" },
1936        { "kind" : "IdRef",        "name" : "'P'" }
1937      ],
1938      "capabilities" : [ "Shader" ]
1939    },
1940    {
1941      "opname" : "OpDPdxFine",
1942      "opcode" : 210,
1943      "operands" : [
1944        { "kind" : "IdResultType" },
1945        { "kind" : "IdResult" },
1946        { "kind" : "IdRef",        "name" : "'P'" }
1947      ],
1948      "capabilities" : [ "DerivativeControl" ]
1949    },
1950    {
1951      "opname" : "OpDPdyFine",
1952      "opcode" : 211,
1953      "operands" : [
1954        { "kind" : "IdResultType" },
1955        { "kind" : "IdResult" },
1956        { "kind" : "IdRef",        "name" : "'P'" }
1957      ],
1958      "capabilities" : [ "DerivativeControl" ]
1959    },
1960    {
1961      "opname" : "OpFwidthFine",
1962      "opcode" : 212,
1963      "operands" : [
1964        { "kind" : "IdResultType" },
1965        { "kind" : "IdResult" },
1966        { "kind" : "IdRef",        "name" : "'P'" }
1967      ],
1968      "capabilities" : [ "DerivativeControl" ]
1969    },
1970    {
1971      "opname" : "OpDPdxCoarse",
1972      "opcode" : 213,
1973      "operands" : [
1974        { "kind" : "IdResultType" },
1975        { "kind" : "IdResult" },
1976        { "kind" : "IdRef",        "name" : "'P'" }
1977      ],
1978      "capabilities" : [ "DerivativeControl" ]
1979    },
1980    {
1981      "opname" : "OpDPdyCoarse",
1982      "opcode" : 214,
1983      "operands" : [
1984        { "kind" : "IdResultType" },
1985        { "kind" : "IdResult" },
1986        { "kind" : "IdRef",        "name" : "'P'" }
1987      ],
1988      "capabilities" : [ "DerivativeControl" ]
1989    },
1990    {
1991      "opname" : "OpFwidthCoarse",
1992      "opcode" : 215,
1993      "operands" : [
1994        { "kind" : "IdResultType" },
1995        { "kind" : "IdResult" },
1996        { "kind" : "IdRef",        "name" : "'P'" }
1997      ],
1998      "capabilities" : [ "DerivativeControl" ]
1999    },
2000    {
2001      "opname" : "OpEmitVertex",
2002      "opcode" : 218,
2003      "capabilities" : [ "Geometry" ]
2004    },
2005    {
2006      "opname" : "OpEndPrimitive",
2007      "opcode" : 219,
2008      "capabilities" : [ "Geometry" ]
2009    },
2010    {
2011      "opname" : "OpEmitStreamVertex",
2012      "opcode" : 220,
2013      "operands" : [
2014        { "kind" : "IdRef", "name" : "'Stream'" }
2015      ],
2016      "capabilities" : [ "GeometryStreams" ]
2017    },
2018    {
2019      "opname" : "OpEndStreamPrimitive",
2020      "opcode" : 221,
2021      "operands" : [
2022        { "kind" : "IdRef", "name" : "'Stream'" }
2023      ],
2024      "capabilities" : [ "GeometryStreams" ]
2025    },
2026    {
2027      "opname" : "OpControlBarrier",
2028      "opcode" : 224,
2029      "operands" : [
2030        { "kind" : "IdScope",           "name" : "'Execution'" },
2031        { "kind" : "IdScope",           "name" : "'Memory'" },
2032        { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
2033      ]
2034    },
2035    {
2036      "opname" : "OpMemoryBarrier",
2037      "opcode" : 225,
2038      "operands" : [
2039        { "kind" : "IdScope",           "name" : "'Memory'" },
2040        { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
2041      ]
2042    },
2043    {
2044      "opname" : "OpAtomicLoad",
2045      "opcode" : 227,
2046      "operands" : [
2047        { "kind" : "IdResultType" },
2048        { "kind" : "IdResult" },
2049        { "kind" : "IdRef",             "name" : "'Pointer'" },
2050        { "kind" : "IdScope",           "name" : "'Scope'" },
2051        { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
2052      ]
2053    },
2054    {
2055      "opname" : "OpAtomicStore",
2056      "opcode" : 228,
2057      "operands" : [
2058        { "kind" : "IdRef",             "name" : "'Pointer'" },
2059        { "kind" : "IdScope",           "name" : "'Scope'" },
2060        { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
2061        { "kind" : "IdRef",             "name" : "'Value'" }
2062      ]
2063    },
2064    {
2065      "opname" : "OpAtomicExchange",
2066      "opcode" : 229,
2067      "operands" : [
2068        { "kind" : "IdResultType" },
2069        { "kind" : "IdResult" },
2070        { "kind" : "IdRef",             "name" : "'Pointer'" },
2071        { "kind" : "IdScope",           "name" : "'Scope'" },
2072        { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
2073        { "kind" : "IdRef",             "name" : "'Value'" }
2074      ]
2075    },
2076    {
2077      "opname" : "OpAtomicCompareExchange",
2078      "opcode" : 230,
2079      "operands" : [
2080        { "kind" : "IdResultType" },
2081        { "kind" : "IdResult" },
2082        { "kind" : "IdRef",             "name" : "'Pointer'" },
2083        { "kind" : "IdScope",           "name" : "'Scope'" },
2084        { "kind" : "IdMemorySemantics", "name" : "'Equal'" },
2085        { "kind" : "IdMemorySemantics", "name" : "'Unequal'" },
2086        { "kind" : "IdRef",             "name" : "'Value'" },
2087        { "kind" : "IdRef",             "name" : "'Comparator'" }
2088      ]
2089    },
2090    {
2091      "opname" : "OpAtomicCompareExchangeWeak",
2092      "opcode" : 231,
2093      "operands" : [
2094        { "kind" : "IdResultType" },
2095        { "kind" : "IdResult" },
2096        { "kind" : "IdRef",             "name" : "'Pointer'" },
2097        { "kind" : "IdScope",           "name" : "'Scope'" },
2098        { "kind" : "IdMemorySemantics", "name" : "'Equal'" },
2099        { "kind" : "IdMemorySemantics", "name" : "'Unequal'" },
2100        { "kind" : "IdRef",             "name" : "'Value'" },
2101        { "kind" : "IdRef",             "name" : "'Comparator'" }
2102      ],
2103      "capabilities" : [ "Kernel" ]
2104    },
2105    {
2106      "opname" : "OpAtomicIIncrement",
2107      "opcode" : 232,
2108      "operands" : [
2109        { "kind" : "IdResultType" },
2110        { "kind" : "IdResult" },
2111        { "kind" : "IdRef",             "name" : "'Pointer'" },
2112        { "kind" : "IdScope",           "name" : "'Scope'" },
2113        { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
2114      ]
2115    },
2116    {
2117      "opname" : "OpAtomicIDecrement",
2118      "opcode" : 233,
2119      "operands" : [
2120        { "kind" : "IdResultType" },
2121        { "kind" : "IdResult" },
2122        { "kind" : "IdRef",             "name" : "'Pointer'" },
2123        { "kind" : "IdScope",           "name" : "'Scope'" },
2124        { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
2125      ]
2126    },
2127    {
2128      "opname" : "OpAtomicIAdd",
2129      "opcode" : 234,
2130      "operands" : [
2131        { "kind" : "IdResultType" },
2132        { "kind" : "IdResult" },
2133        { "kind" : "IdRef",             "name" : "'Pointer'" },
2134        { "kind" : "IdScope",           "name" : "'Scope'" },
2135        { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
2136        { "kind" : "IdRef",             "name" : "'Value'" }
2137      ]
2138    },
2139    {
2140      "opname" : "OpAtomicISub",
2141      "opcode" : 235,
2142      "operands" : [
2143        { "kind" : "IdResultType" },
2144        { "kind" : "IdResult" },
2145        { "kind" : "IdRef",             "name" : "'Pointer'" },
2146        { "kind" : "IdScope",           "name" : "'Scope'" },
2147        { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
2148        { "kind" : "IdRef",             "name" : "'Value'" }
2149      ]
2150    },
2151    {
2152      "opname" : "OpAtomicSMin",
2153      "opcode" : 236,
2154      "operands" : [
2155        { "kind" : "IdResultType" },
2156        { "kind" : "IdResult" },
2157        { "kind" : "IdRef",             "name" : "'Pointer'" },
2158        { "kind" : "IdScope",           "name" : "'Scope'" },
2159        { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
2160        { "kind" : "IdRef",             "name" : "'Value'" }
2161      ]
2162    },
2163    {
2164      "opname" : "OpAtomicUMin",
2165      "opcode" : 237,
2166      "operands" : [
2167        { "kind" : "IdResultType" },
2168        { "kind" : "IdResult" },
2169        { "kind" : "IdRef",             "name" : "'Pointer'" },
2170        { "kind" : "IdScope",           "name" : "'Scope'" },
2171        { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
2172        { "kind" : "IdRef",             "name" : "'Value'" }
2173      ]
2174    },
2175    {
2176      "opname" : "OpAtomicSMax",
2177      "opcode" : 238,
2178      "operands" : [
2179        { "kind" : "IdResultType" },
2180        { "kind" : "IdResult" },
2181        { "kind" : "IdRef",             "name" : "'Pointer'" },
2182        { "kind" : "IdScope",           "name" : "'Scope'" },
2183        { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
2184        { "kind" : "IdRef",             "name" : "'Value'" }
2185      ]
2186    },
2187    {
2188      "opname" : "OpAtomicUMax",
2189      "opcode" : 239,
2190      "operands" : [
2191        { "kind" : "IdResultType" },
2192        { "kind" : "IdResult" },
2193        { "kind" : "IdRef",             "name" : "'Pointer'" },
2194        { "kind" : "IdScope",           "name" : "'Scope'" },
2195        { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
2196        { "kind" : "IdRef",             "name" : "'Value'" }
2197      ]
2198    },
2199    {
2200      "opname" : "OpAtomicAnd",
2201      "opcode" : 240,
2202      "operands" : [
2203        { "kind" : "IdResultType" },
2204        { "kind" : "IdResult" },
2205        { "kind" : "IdRef",             "name" : "'Pointer'" },
2206        { "kind" : "IdScope",           "name" : "'Scope'" },
2207        { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
2208        { "kind" : "IdRef",             "name" : "'Value'" }
2209      ]
2210    },
2211    {
2212      "opname" : "OpAtomicOr",
2213      "opcode" : 241,
2214      "operands" : [
2215        { "kind" : "IdResultType" },
2216        { "kind" : "IdResult" },
2217        { "kind" : "IdRef",             "name" : "'Pointer'" },
2218        { "kind" : "IdScope",           "name" : "'Scope'" },
2219        { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
2220        { "kind" : "IdRef",             "name" : "'Value'" }
2221      ]
2222    },
2223    {
2224      "opname" : "OpAtomicXor",
2225      "opcode" : 242,
2226      "operands" : [
2227        { "kind" : "IdResultType" },
2228        { "kind" : "IdResult" },
2229        { "kind" : "IdRef",             "name" : "'Pointer'" },
2230        { "kind" : "IdScope",           "name" : "'Scope'" },
2231        { "kind" : "IdMemorySemantics", "name" : "'Semantics'" },
2232        { "kind" : "IdRef",             "name" : "'Value'" }
2233      ]
2234    },
2235    {
2236      "opname" : "OpPhi",
2237      "opcode" : 245,
2238      "operands" : [
2239        { "kind" : "IdResultType" },
2240        { "kind" : "IdResult" },
2241        { "kind" : "PairIdRefIdRef", "quantifier" : "*", "name" : "'Variable, Parent, ...'" }
2242      ]
2243    },
2244    {
2245      "opname" : "OpLoopMerge",
2246      "opcode" : 246,
2247      "operands" : [
2248        { "kind" : "IdRef",       "name" : "'Merge Block'" },
2249        { "kind" : "IdRef",       "name" : "'Continue Target'" },
2250        { "kind" : "LoopControl" }
2251      ]
2252    },
2253    {
2254      "opname" : "OpSelectionMerge",
2255      "opcode" : 247,
2256      "operands" : [
2257        { "kind" : "IdRef",            "name" : "'Merge Block'" },
2258        { "kind" : "SelectionControl" }
2259      ]
2260    },
2261    {
2262      "opname" : "OpLabel",
2263      "opcode" : 248,
2264      "operands" : [
2265        { "kind" : "IdResult" }
2266      ]
2267    },
2268    {
2269      "opname" : "OpBranch",
2270      "opcode" : 249,
2271      "operands" : [
2272        { "kind" : "IdRef", "name" : "'Target Label'" }
2273      ]
2274    },
2275    {
2276      "opname" : "OpBranchConditional",
2277      "opcode" : 250,
2278      "operands" : [
2279        { "kind" : "IdRef",                              "name" : "'Condition'" },
2280        { "kind" : "IdRef",                              "name" : "'True Label'" },
2281        { "kind" : "IdRef",                              "name" : "'False Label'" },
2282        { "kind" : "LiteralInteger", "quantifier" : "*", "name" : "'Branch weights'" }
2283      ]
2284    },
2285    {
2286      "opname" : "OpSwitch",
2287      "opcode" : 251,
2288      "operands" : [
2289        { "kind" : "IdRef",                                       "name" : "'Selector'" },
2290        { "kind" : "IdRef",                                       "name" : "'Default'" },
2291        { "kind" : "PairLiteralIntegerIdRef", "quantifier" : "*", "name" : "'Target'" }
2292      ]
2293    },
2294    {
2295      "opname" : "OpKill",
2296      "opcode" : 252,
2297      "capabilities" : [ "Shader" ]
2298    },
2299    {
2300      "opname" : "OpReturn",
2301      "opcode" : 253
2302    },
2303    {
2304      "opname" : "OpReturnValue",
2305      "opcode" : 254,
2306      "operands" : [
2307        { "kind" : "IdRef", "name" : "'Value'" }
2308      ]
2309    },
2310    {
2311      "opname" : "OpUnreachable",
2312      "opcode" : 255
2313    },
2314    {
2315      "opname" : "OpLifetimeStart",
2316      "opcode" : 256,
2317      "operands" : [
2318        { "kind" : "IdRef",          "name" : "'Pointer'" },
2319        { "kind" : "LiteralInteger", "name" : "'Size'" }
2320      ],
2321      "capabilities" : [ "Kernel" ]
2322    },
2323    {
2324      "opname" : "OpLifetimeStop",
2325      "opcode" : 257,
2326      "operands" : [
2327        { "kind" : "IdRef",          "name" : "'Pointer'" },
2328        { "kind" : "LiteralInteger", "name" : "'Size'" }
2329      ],
2330      "capabilities" : [ "Kernel" ]
2331    },
2332    {
2333      "opname" : "OpGroupAsyncCopy",
2334      "opcode" : 259,
2335      "operands" : [
2336        { "kind" : "IdResultType" },
2337        { "kind" : "IdResult" },
2338        { "kind" : "IdScope",      "name" : "'Execution'" },
2339        { "kind" : "IdRef",        "name" : "'Destination'" },
2340        { "kind" : "IdRef",        "name" : "'Source'" },
2341        { "kind" : "IdRef",        "name" : "'Num Elements'" },
2342        { "kind" : "IdRef",        "name" : "'Stride'" },
2343        { "kind" : "IdRef",        "name" : "'Event'" }
2344      ],
2345      "capabilities" : [ "Kernel" ]
2346    },
2347    {
2348      "opname" : "OpGroupWaitEvents",
2349      "opcode" : 260,
2350      "operands" : [
2351        { "kind" : "IdScope", "name" : "'Execution'" },
2352        { "kind" : "IdRef",   "name" : "'Num Events'" },
2353        { "kind" : "IdRef",   "name" : "'Events List'" }
2354      ],
2355      "capabilities" : [ "Kernel" ]
2356    },
2357    {
2358      "opname" : "OpGroupAll",
2359      "opcode" : 261,
2360      "operands" : [
2361        { "kind" : "IdResultType" },
2362        { "kind" : "IdResult" },
2363        { "kind" : "IdScope",      "name" : "'Execution'" },
2364        { "kind" : "IdRef",        "name" : "'Predicate'" }
2365      ],
2366      "capabilities" : [ "Groups" ]
2367    },
2368    {
2369      "opname" : "OpGroupAny",
2370      "opcode" : 262,
2371      "operands" : [
2372        { "kind" : "IdResultType" },
2373        { "kind" : "IdResult" },
2374        { "kind" : "IdScope",      "name" : "'Execution'" },
2375        { "kind" : "IdRef",        "name" : "'Predicate'" }
2376      ],
2377      "capabilities" : [ "Groups" ]
2378    },
2379    {
2380      "opname" : "OpGroupBroadcast",
2381      "opcode" : 263,
2382      "operands" : [
2383        { "kind" : "IdResultType" },
2384        { "kind" : "IdResult" },
2385        { "kind" : "IdScope",      "name" : "'Execution'" },
2386        { "kind" : "IdRef",        "name" : "'Value'" },
2387        { "kind" : "IdRef",        "name" : "'LocalId'" }
2388      ],
2389      "capabilities" : [ "Groups" ]
2390    },
2391    {
2392      "opname" : "OpGroupIAdd",
2393      "opcode" : 264,
2394      "operands" : [
2395        { "kind" : "IdResultType" },
2396        { "kind" : "IdResult" },
2397        { "kind" : "IdScope",        "name" : "'Execution'" },
2398        { "kind" : "GroupOperation", "name" : "'Operation'" },
2399        { "kind" : "IdRef",          "name" : "'X'" }
2400      ],
2401      "capabilities" : [ "Groups" ]
2402    },
2403    {
2404      "opname" : "OpGroupFAdd",
2405      "opcode" : 265,
2406      "operands" : [
2407        { "kind" : "IdResultType" },
2408        { "kind" : "IdResult" },
2409        { "kind" : "IdScope",        "name" : "'Execution'" },
2410        { "kind" : "GroupOperation", "name" : "'Operation'" },
2411        { "kind" : "IdRef",          "name" : "'X'" }
2412      ],
2413      "capabilities" : [ "Groups" ]
2414    },
2415    {
2416      "opname" : "OpGroupFMin",
2417      "opcode" : 266,
2418      "operands" : [
2419        { "kind" : "IdResultType" },
2420        { "kind" : "IdResult" },
2421        { "kind" : "IdScope",        "name" : "'Execution'" },
2422        { "kind" : "GroupOperation", "name" : "'Operation'" },
2423        { "kind" : "IdRef",          "name" : "'X'" }
2424      ],
2425      "capabilities" : [ "Groups" ]
2426    },
2427    {
2428      "opname" : "OpGroupUMin",
2429      "opcode" : 267,
2430      "operands" : [
2431        { "kind" : "IdResultType" },
2432        { "kind" : "IdResult" },
2433        { "kind" : "IdScope",        "name" : "'Execution'" },
2434        { "kind" : "GroupOperation", "name" : "'Operation'" },
2435        { "kind" : "IdRef",          "name" : "'X'" }
2436      ],
2437      "capabilities" : [ "Groups" ]
2438    },
2439    {
2440      "opname" : "OpGroupSMin",
2441      "opcode" : 268,
2442      "operands" : [
2443        { "kind" : "IdResultType" },
2444        { "kind" : "IdResult" },
2445        { "kind" : "IdScope",        "name" : "'Execution'" },
2446        { "kind" : "GroupOperation", "name" : "'Operation'" },
2447        { "kind" : "IdRef",          "name" : "'X'" }
2448      ],
2449      "capabilities" : [ "Groups" ]
2450    },
2451    {
2452      "opname" : "OpGroupFMax",
2453      "opcode" : 269,
2454      "operands" : [
2455        { "kind" : "IdResultType" },
2456        { "kind" : "IdResult" },
2457        { "kind" : "IdScope",        "name" : "'Execution'" },
2458        { "kind" : "GroupOperation", "name" : "'Operation'" },
2459        { "kind" : "IdRef",          "name" : "'X'" }
2460      ],
2461      "capabilities" : [ "Groups" ]
2462    },
2463    {
2464      "opname" : "OpGroupUMax",
2465      "opcode" : 270,
2466      "operands" : [
2467        { "kind" : "IdResultType" },
2468        { "kind" : "IdResult" },
2469        { "kind" : "IdScope",        "name" : "'Execution'" },
2470        { "kind" : "GroupOperation", "name" : "'Operation'" },
2471        { "kind" : "IdRef",          "name" : "'X'" }
2472      ],
2473      "capabilities" : [ "Groups" ]
2474    },
2475    {
2476      "opname" : "OpGroupSMax",
2477      "opcode" : 271,
2478      "operands" : [
2479        { "kind" : "IdResultType" },
2480        { "kind" : "IdResult" },
2481        { "kind" : "IdScope",        "name" : "'Execution'" },
2482        { "kind" : "GroupOperation", "name" : "'Operation'" },
2483        { "kind" : "IdRef",          "name" : "'X'" }
2484      ],
2485      "capabilities" : [ "Groups" ]
2486    },
2487    {
2488      "opname" : "OpReadPipe",
2489      "opcode" : 274,
2490      "operands" : [
2491        { "kind" : "IdResultType" },
2492        { "kind" : "IdResult" },
2493        { "kind" : "IdRef",        "name" : "'Pipe'" },
2494        { "kind" : "IdRef",        "name" : "'Pointer'" },
2495        { "kind" : "IdRef",        "name" : "'Packet Size'" },
2496        { "kind" : "IdRef",        "name" : "'Packet Alignment'" }
2497      ],
2498      "capabilities" : [ "Pipes" ]
2499    },
2500    {
2501      "opname" : "OpWritePipe",
2502      "opcode" : 275,
2503      "operands" : [
2504        { "kind" : "IdResultType" },
2505        { "kind" : "IdResult" },
2506        { "kind" : "IdRef",        "name" : "'Pipe'" },
2507        { "kind" : "IdRef",        "name" : "'Pointer'" },
2508        { "kind" : "IdRef",        "name" : "'Packet Size'" },
2509        { "kind" : "IdRef",        "name" : "'Packet Alignment'" }
2510      ],
2511      "capabilities" : [ "Pipes" ]
2512    },
2513    {
2514      "opname" : "OpReservedReadPipe",
2515      "opcode" : 276,
2516      "operands" : [
2517        { "kind" : "IdResultType" },
2518        { "kind" : "IdResult" },
2519        { "kind" : "IdRef",        "name" : "'Pipe'" },
2520        { "kind" : "IdRef",        "name" : "'Reserve Id'" },
2521        { "kind" : "IdRef",        "name" : "'Index'" },
2522        { "kind" : "IdRef",        "name" : "'Pointer'" },
2523        { "kind" : "IdRef",        "name" : "'Packet Size'" },
2524        { "kind" : "IdRef",        "name" : "'Packet Alignment'" }
2525      ],
2526      "capabilities" : [ "Pipes" ]
2527    },
2528    {
2529      "opname" : "OpReservedWritePipe",
2530      "opcode" : 277,
2531      "operands" : [
2532        { "kind" : "IdResultType" },
2533        { "kind" : "IdResult" },
2534        { "kind" : "IdRef",        "name" : "'Pipe'" },
2535        { "kind" : "IdRef",        "name" : "'Reserve Id'" },
2536        { "kind" : "IdRef",        "name" : "'Index'" },
2537        { "kind" : "IdRef",        "name" : "'Pointer'" },
2538        { "kind" : "IdRef",        "name" : "'Packet Size'" },
2539        { "kind" : "IdRef",        "name" : "'Packet Alignment'" }
2540      ],
2541      "capabilities" : [ "Pipes" ]
2542    },
2543    {
2544      "opname" : "OpReserveReadPipePackets",
2545      "opcode" : 278,
2546      "operands" : [
2547        { "kind" : "IdResultType" },
2548        { "kind" : "IdResult" },
2549        { "kind" : "IdRef",        "name" : "'Pipe'" },
2550        { "kind" : "IdRef",        "name" : "'Num Packets'" },
2551        { "kind" : "IdRef",        "name" : "'Packet Size'" },
2552        { "kind" : "IdRef",        "name" : "'Packet Alignment'" }
2553      ],
2554      "capabilities" : [ "Pipes" ]
2555    },
2556    {
2557      "opname" : "OpReserveWritePipePackets",
2558      "opcode" : 279,
2559      "operands" : [
2560        { "kind" : "IdResultType" },
2561        { "kind" : "IdResult" },
2562        { "kind" : "IdRef",        "name" : "'Pipe'" },
2563        { "kind" : "IdRef",        "name" : "'Num Packets'" },
2564        { "kind" : "IdRef",        "name" : "'Packet Size'" },
2565        { "kind" : "IdRef",        "name" : "'Packet Alignment'" }
2566      ],
2567      "capabilities" : [ "Pipes" ]
2568    },
2569    {
2570      "opname" : "OpCommitReadPipe",
2571      "opcode" : 280,
2572      "operands" : [
2573        { "kind" : "IdRef", "name" : "'Pipe'" },
2574        { "kind" : "IdRef", "name" : "'Reserve Id'" },
2575        { "kind" : "IdRef", "name" : "'Packet Size'" },
2576        { "kind" : "IdRef", "name" : "'Packet Alignment'" }
2577      ],
2578      "capabilities" : [ "Pipes" ]
2579    },
2580    {
2581      "opname" : "OpCommitWritePipe",
2582      "opcode" : 281,
2583      "operands" : [
2584        { "kind" : "IdRef", "name" : "'Pipe'" },
2585        { "kind" : "IdRef", "name" : "'Reserve Id'" },
2586        { "kind" : "IdRef", "name" : "'Packet Size'" },
2587        { "kind" : "IdRef", "name" : "'Packet Alignment'" }
2588      ],
2589      "capabilities" : [ "Pipes" ]
2590    },
2591    {
2592      "opname" : "OpIsValidReserveId",
2593      "opcode" : 282,
2594      "operands" : [
2595        { "kind" : "IdResultType" },
2596        { "kind" : "IdResult" },
2597        { "kind" : "IdRef",        "name" : "'Reserve Id'" }
2598      ],
2599      "capabilities" : [ "Pipes" ]
2600    },
2601    {
2602      "opname" : "OpGetNumPipePackets",
2603      "opcode" : 283,
2604      "operands" : [
2605        { "kind" : "IdResultType" },
2606        { "kind" : "IdResult" },
2607        { "kind" : "IdRef",        "name" : "'Pipe'" },
2608        { "kind" : "IdRef",        "name" : "'Packet Size'" },
2609        { "kind" : "IdRef",        "name" : "'Packet Alignment'" }
2610      ],
2611      "capabilities" : [ "Pipes" ]
2612    },
2613    {
2614      "opname" : "OpGetMaxPipePackets",
2615      "opcode" : 284,
2616      "operands" : [
2617        { "kind" : "IdResultType" },
2618        { "kind" : "IdResult" },
2619        { "kind" : "IdRef",        "name" : "'Pipe'" },
2620        { "kind" : "IdRef",        "name" : "'Packet Size'" },
2621        { "kind" : "IdRef",        "name" : "'Packet Alignment'" }
2622      ],
2623      "capabilities" : [ "Pipes" ]
2624    },
2625    {
2626      "opname" : "OpGroupReserveReadPipePackets",
2627      "opcode" : 285,
2628      "operands" : [
2629        { "kind" : "IdResultType" },
2630        { "kind" : "IdResult" },
2631        { "kind" : "IdScope",      "name" : "'Execution'" },
2632        { "kind" : "IdRef",        "name" : "'Pipe'" },
2633        { "kind" : "IdRef",        "name" : "'Num Packets'" },
2634        { "kind" : "IdRef",        "name" : "'Packet Size'" },
2635        { "kind" : "IdRef",        "name" : "'Packet Alignment'" }
2636      ],
2637      "capabilities" : [ "Pipes" ]
2638    },
2639    {
2640      "opname" : "OpGroupReserveWritePipePackets",
2641      "opcode" : 286,
2642      "operands" : [
2643        { "kind" : "IdResultType" },
2644        { "kind" : "IdResult" },
2645        { "kind" : "IdScope",      "name" : "'Execution'" },
2646        { "kind" : "IdRef",        "name" : "'Pipe'" },
2647        { "kind" : "IdRef",        "name" : "'Num Packets'" },
2648        { "kind" : "IdRef",        "name" : "'Packet Size'" },
2649        { "kind" : "IdRef",        "name" : "'Packet Alignment'" }
2650      ],
2651      "capabilities" : [ "Pipes" ]
2652    },
2653    {
2654      "opname" : "OpGroupCommitReadPipe",
2655      "opcode" : 287,
2656      "operands" : [
2657        { "kind" : "IdScope", "name" : "'Execution'" },
2658        { "kind" : "IdRef",   "name" : "'Pipe'" },
2659        { "kind" : "IdRef",   "name" : "'Reserve Id'" },
2660        { "kind" : "IdRef",   "name" : "'Packet Size'" },
2661        { "kind" : "IdRef",   "name" : "'Packet Alignment'" }
2662      ],
2663      "capabilities" : [ "Pipes" ]
2664    },
2665    {
2666      "opname" : "OpGroupCommitWritePipe",
2667      "opcode" : 288,
2668      "operands" : [
2669        { "kind" : "IdScope", "name" : "'Execution'" },
2670        { "kind" : "IdRef",   "name" : "'Pipe'" },
2671        { "kind" : "IdRef",   "name" : "'Reserve Id'" },
2672        { "kind" : "IdRef",   "name" : "'Packet Size'" },
2673        { "kind" : "IdRef",   "name" : "'Packet Alignment'" }
2674      ],
2675      "capabilities" : [ "Pipes" ]
2676    },
2677    {
2678      "opname" : "OpEnqueueMarker",
2679      "opcode" : 291,
2680      "operands" : [
2681        { "kind" : "IdResultType" },
2682        { "kind" : "IdResult" },
2683        { "kind" : "IdRef",        "name" : "'Queue'" },
2684        { "kind" : "IdRef",        "name" : "'Num Events'" },
2685        { "kind" : "IdRef",        "name" : "'Wait Events'" },
2686        { "kind" : "IdRef",        "name" : "'Ret Event'" }
2687      ],
2688      "capabilities" : [ "DeviceEnqueue" ]
2689    },
2690    {
2691      "opname" : "OpEnqueueKernel",
2692      "opcode" : 292,
2693      "operands" : [
2694        { "kind" : "IdResultType" },
2695        { "kind" : "IdResult" },
2696        { "kind" : "IdRef",                            "name" : "'Queue'" },
2697        { "kind" : "IdRef",                            "name" : "'Flags'" },
2698        { "kind" : "IdRef",                            "name" : "'ND Range'" },
2699        { "kind" : "IdRef",                            "name" : "'Num Events'" },
2700        { "kind" : "IdRef",                            "name" : "'Wait Events'" },
2701        { "kind" : "IdRef",                            "name" : "'Ret Event'" },
2702        { "kind" : "IdRef",                            "name" : "'Invoke'" },
2703        { "kind" : "IdRef",                            "name" : "'Param'" },
2704        { "kind" : "IdRef",                            "name" : "'Param Size'" },
2705        { "kind" : "IdRef",                            "name" : "'Param Align'" },
2706        { "kind" : "IdRef",        "quantifier" : "*", "name" : "'Local Size'" }
2707      ],
2708      "capabilities" : [ "DeviceEnqueue" ]
2709    },
2710    {
2711      "opname" : "OpGetKernelNDrangeSubGroupCount",
2712      "opcode" : 293,
2713      "operands" : [
2714        { "kind" : "IdResultType" },
2715        { "kind" : "IdResult" },
2716        { "kind" : "IdRef",        "name" : "'ND Range'" },
2717        { "kind" : "IdRef",        "name" : "'Invoke'" },
2718        { "kind" : "IdRef",        "name" : "'Param'" },
2719        { "kind" : "IdRef",        "name" : "'Param Size'" },
2720        { "kind" : "IdRef",        "name" : "'Param Align'" }
2721      ],
2722      "capabilities" : [ "DeviceEnqueue" ]
2723    },
2724    {
2725      "opname" : "OpGetKernelNDrangeMaxSubGroupSize",
2726      "opcode" : 294,
2727      "operands" : [
2728        { "kind" : "IdResultType" },
2729        { "kind" : "IdResult" },
2730        { "kind" : "IdRef",        "name" : "'ND Range'" },
2731        { "kind" : "IdRef",        "name" : "'Invoke'" },
2732        { "kind" : "IdRef",        "name" : "'Param'" },
2733        { "kind" : "IdRef",        "name" : "'Param Size'" },
2734        { "kind" : "IdRef",        "name" : "'Param Align'" }
2735      ],
2736      "capabilities" : [ "DeviceEnqueue" ]
2737    },
2738    {
2739      "opname" : "OpGetKernelWorkGroupSize",
2740      "opcode" : 295,
2741      "operands" : [
2742        { "kind" : "IdResultType" },
2743        { "kind" : "IdResult" },
2744        { "kind" : "IdRef",        "name" : "'Invoke'" },
2745        { "kind" : "IdRef",        "name" : "'Param'" },
2746        { "kind" : "IdRef",        "name" : "'Param Size'" },
2747        { "kind" : "IdRef",        "name" : "'Param Align'" }
2748      ],
2749      "capabilities" : [ "DeviceEnqueue" ]
2750    },
2751    {
2752      "opname" : "OpGetKernelPreferredWorkGroupSizeMultiple",
2753      "opcode" : 296,
2754      "operands" : [
2755        { "kind" : "IdResultType" },
2756        { "kind" : "IdResult" },
2757        { "kind" : "IdRef",        "name" : "'Invoke'" },
2758        { "kind" : "IdRef",        "name" : "'Param'" },
2759        { "kind" : "IdRef",        "name" : "'Param Size'" },
2760        { "kind" : "IdRef",        "name" : "'Param Align'" }
2761      ],
2762      "capabilities" : [ "DeviceEnqueue" ]
2763    },
2764    {
2765      "opname" : "OpRetainEvent",
2766      "opcode" : 297,
2767      "operands" : [
2768        { "kind" : "IdRef", "name" : "'Event'" }
2769      ],
2770      "capabilities" : [ "DeviceEnqueue" ]
2771    },
2772    {
2773      "opname" : "OpReleaseEvent",
2774      "opcode" : 298,
2775      "operands" : [
2776        { "kind" : "IdRef", "name" : "'Event'" }
2777      ],
2778      "capabilities" : [ "DeviceEnqueue" ]
2779    },
2780    {
2781      "opname" : "OpCreateUserEvent",
2782      "opcode" : 299,
2783      "operands" : [
2784        { "kind" : "IdResultType" },
2785        { "kind" : "IdResult" }
2786      ],
2787      "capabilities" : [ "DeviceEnqueue" ]
2788    },
2789    {
2790      "opname" : "OpIsValidEvent",
2791      "opcode" : 300,
2792      "operands" : [
2793        { "kind" : "IdResultType" },
2794        { "kind" : "IdResult" },
2795        { "kind" : "IdRef",        "name" : "'Event'" }
2796      ],
2797      "capabilities" : [ "DeviceEnqueue" ]
2798    },
2799    {
2800      "opname" : "OpSetUserEventStatus",
2801      "opcode" : 301,
2802      "operands" : [
2803        { "kind" : "IdRef", "name" : "'Event'" },
2804        { "kind" : "IdRef", "name" : "'Status'" }
2805      ],
2806      "capabilities" : [ "DeviceEnqueue" ]
2807    },
2808    {
2809      "opname" : "OpCaptureEventProfilingInfo",
2810      "opcode" : 302,
2811      "operands" : [
2812        { "kind" : "IdRef", "name" : "'Event'" },
2813        { "kind" : "IdRef", "name" : "'Profiling Info'" },
2814        { "kind" : "IdRef", "name" : "'Value'" }
2815      ],
2816      "capabilities" : [ "DeviceEnqueue" ]
2817    },
2818    {
2819      "opname" : "OpGetDefaultQueue",
2820      "opcode" : 303,
2821      "operands" : [
2822        { "kind" : "IdResultType" },
2823        { "kind" : "IdResult" }
2824      ],
2825      "capabilities" : [ "DeviceEnqueue" ]
2826    },
2827    {
2828      "opname" : "OpBuildNDRange",
2829      "opcode" : 304,
2830      "operands" : [
2831        { "kind" : "IdResultType" },
2832        { "kind" : "IdResult" },
2833        { "kind" : "IdRef",        "name" : "'GlobalWorkSize'" },
2834        { "kind" : "IdRef",        "name" : "'LocalWorkSize'" },
2835        { "kind" : "IdRef",        "name" : "'GlobalWorkOffset'" }
2836      ],
2837      "capabilities" : [ "DeviceEnqueue" ]
2838    },
2839    {
2840      "opname" : "OpImageSparseSampleImplicitLod",
2841      "opcode" : 305,
2842      "operands" : [
2843        { "kind" : "IdResultType" },
2844        { "kind" : "IdResult" },
2845        { "kind" : "IdRef",                             "name" : "'Sampled Image'" },
2846        { "kind" : "IdRef",                             "name" : "'Coordinate'" },
2847        { "kind" : "ImageOperands", "quantifier" : "?" }
2848      ],
2849      "capabilities" : [ "SparseResidency" ]
2850    },
2851    {
2852      "opname" : "OpImageSparseSampleExplicitLod",
2853      "opcode" : 306,
2854      "operands" : [
2855        { "kind" : "IdResultType" },
2856        { "kind" : "IdResult" },
2857        { "kind" : "IdRef",         "name" : "'Sampled Image'" },
2858        { "kind" : "IdRef",         "name" : "'Coordinate'" },
2859        { "kind" : "ImageOperands" }
2860      ],
2861      "capabilities" : [ "SparseResidency" ]
2862    },
2863    {
2864      "opname" : "OpImageSparseSampleDrefImplicitLod",
2865      "opcode" : 307,
2866      "operands" : [
2867        { "kind" : "IdResultType" },
2868        { "kind" : "IdResult" },
2869        { "kind" : "IdRef",                             "name" : "'Sampled Image'" },
2870        { "kind" : "IdRef",                             "name" : "'Coordinate'" },
2871        { "kind" : "IdRef",                             "name" : "'D~ref~'" },
2872        { "kind" : "ImageOperands", "quantifier" : "?" }
2873      ],
2874      "capabilities" : [ "SparseResidency" ]
2875    },
2876    {
2877      "opname" : "OpImageSparseSampleDrefExplicitLod",
2878      "opcode" : 308,
2879      "operands" : [
2880        { "kind" : "IdResultType" },
2881        { "kind" : "IdResult" },
2882        { "kind" : "IdRef",         "name" : "'Sampled Image'" },
2883        { "kind" : "IdRef",         "name" : "'Coordinate'" },
2884        { "kind" : "IdRef",         "name" : "'D~ref~'" },
2885        { "kind" : "ImageOperands" }
2886      ],
2887      "capabilities" : [ "SparseResidency" ]
2888    },
2889    {
2890      "opname" : "OpImageSparseSampleProjImplicitLod",
2891      "opcode" : 309,
2892      "operands" : [
2893        { "kind" : "IdResultType" },
2894        { "kind" : "IdResult" },
2895        { "kind" : "IdRef",                             "name" : "'Sampled Image'" },
2896        { "kind" : "IdRef",                             "name" : "'Coordinate'" },
2897        { "kind" : "ImageOperands", "quantifier" : "?" }
2898      ],
2899      "capabilities" : [ "SparseResidency" ],
2900      "version" : "None"
2901    },
2902    {
2903      "opname" : "OpImageSparseSampleProjExplicitLod",
2904      "opcode" : 310,
2905      "operands" : [
2906        { "kind" : "IdResultType" },
2907        { "kind" : "IdResult" },
2908        { "kind" : "IdRef",         "name" : "'Sampled Image'" },
2909        { "kind" : "IdRef",         "name" : "'Coordinate'" },
2910        { "kind" : "ImageOperands" }
2911      ],
2912      "capabilities" : [ "SparseResidency" ],
2913      "version" : "None"
2914    },
2915    {
2916      "opname" : "OpImageSparseSampleProjDrefImplicitLod",
2917      "opcode" : 311,
2918      "operands" : [
2919        { "kind" : "IdResultType" },
2920        { "kind" : "IdResult" },
2921        { "kind" : "IdRef",                             "name" : "'Sampled Image'" },
2922        { "kind" : "IdRef",                             "name" : "'Coordinate'" },
2923        { "kind" : "IdRef",                             "name" : "'D~ref~'" },
2924        { "kind" : "ImageOperands", "quantifier" : "?" }
2925      ],
2926      "capabilities" : [ "SparseResidency" ],
2927      "version" : "None"
2928    },
2929    {
2930      "opname" : "OpImageSparseSampleProjDrefExplicitLod",
2931      "opcode" : 312,
2932      "operands" : [
2933        { "kind" : "IdResultType" },
2934        { "kind" : "IdResult" },
2935        { "kind" : "IdRef",         "name" : "'Sampled Image'" },
2936        { "kind" : "IdRef",         "name" : "'Coordinate'" },
2937        { "kind" : "IdRef",         "name" : "'D~ref~'" },
2938        { "kind" : "ImageOperands" }
2939      ],
2940      "capabilities" : [ "SparseResidency" ],
2941      "version" : "None"
2942    },
2943    {
2944      "opname" : "OpImageSparseFetch",
2945      "opcode" : 313,
2946      "operands" : [
2947        { "kind" : "IdResultType" },
2948        { "kind" : "IdResult" },
2949        { "kind" : "IdRef",                             "name" : "'Image'" },
2950        { "kind" : "IdRef",                             "name" : "'Coordinate'" },
2951        { "kind" : "ImageOperands", "quantifier" : "?" }
2952      ],
2953      "capabilities" : [ "SparseResidency" ]
2954    },
2955    {
2956      "opname" : "OpImageSparseGather",
2957      "opcode" : 314,
2958      "operands" : [
2959        { "kind" : "IdResultType" },
2960        { "kind" : "IdResult" },
2961        { "kind" : "IdRef",                             "name" : "'Sampled Image'" },
2962        { "kind" : "IdRef",                             "name" : "'Coordinate'" },
2963        { "kind" : "IdRef",                             "name" : "'Component'" },
2964        { "kind" : "ImageOperands", "quantifier" : "?" }
2965      ],
2966      "capabilities" : [ "SparseResidency" ]
2967    },
2968    {
2969      "opname" : "OpImageSparseDrefGather",
2970      "opcode" : 315,
2971      "operands" : [
2972        { "kind" : "IdResultType" },
2973        { "kind" : "IdResult" },
2974        { "kind" : "IdRef",                             "name" : "'Sampled Image'" },
2975        { "kind" : "IdRef",                             "name" : "'Coordinate'" },
2976        { "kind" : "IdRef",                             "name" : "'D~ref~'" },
2977        { "kind" : "ImageOperands", "quantifier" : "?" }
2978      ],
2979      "capabilities" : [ "SparseResidency" ]
2980    },
2981    {
2982      "opname" : "OpImageSparseTexelsResident",
2983      "opcode" : 316,
2984      "operands" : [
2985        { "kind" : "IdResultType" },
2986        { "kind" : "IdResult" },
2987        { "kind" : "IdRef",        "name" : "'Resident Code'" }
2988      ],
2989      "capabilities" : [ "SparseResidency" ]
2990    },
2991    {
2992      "opname" : "OpNoLine",
2993      "opcode" : 317
2994    },
2995    {
2996      "opname" : "OpAtomicFlagTestAndSet",
2997      "opcode" : 318,
2998      "operands" : [
2999        { "kind" : "IdResultType" },
3000        { "kind" : "IdResult" },
3001        { "kind" : "IdRef",             "name" : "'Pointer'" },
3002        { "kind" : "IdScope",           "name" : "'Scope'" },
3003        { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
3004      ],
3005      "capabilities" : [ "Kernel" ]
3006    },
3007    {
3008      "opname" : "OpAtomicFlagClear",
3009      "opcode" : 319,
3010      "operands" : [
3011        { "kind" : "IdRef",             "name" : "'Pointer'" },
3012        { "kind" : "IdScope",           "name" : "'Scope'" },
3013        { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
3014      ],
3015      "capabilities" : [ "Kernel" ]
3016    },
3017    {
3018      "opname" : "OpImageSparseRead",
3019      "opcode" : 320,
3020      "operands" : [
3021        { "kind" : "IdResultType" },
3022        { "kind" : "IdResult" },
3023        { "kind" : "IdRef",                             "name" : "'Image'" },
3024        { "kind" : "IdRef",                             "name" : "'Coordinate'" },
3025        { "kind" : "ImageOperands", "quantifier" : "?" }
3026      ],
3027      "capabilities" : [ "SparseResidency" ]
3028    },
3029    {
3030      "opname" : "OpSizeOf",
3031      "opcode" : 321,
3032      "operands" : [
3033        { "kind" : "IdResultType" },
3034        { "kind" : "IdResult" },
3035        { "kind" : "IdRef", "name" : "'Pointer'" }
3036      ],
3037      "capabilities" : [ "Addresses" ],
3038      "version" : "1.1"
3039    },
3040    {
3041      "opname" : "OpTypePipeStorage",
3042      "opcode" : 322,
3043      "operands" : [
3044        { "kind" : "IdResult" }
3045      ],
3046      "capabilities" : [ "PipeStorage" ],
3047      "version" : "1.1"
3048    },
3049    {
3050      "opname" : "OpConstantPipeStorage",
3051      "opcode" : 323,
3052      "operands" : [
3053        { "kind" : "IdResultType" },
3054        { "kind" : "IdResult" },
3055        { "kind" : "LiteralInteger", "name" : "'Packet Size'" },
3056        { "kind" : "LiteralInteger", "name" : "'Packet Alignment'" },
3057        { "kind" : "LiteralInteger", "name" : "'Capacity'" }
3058      ],
3059      "capabilities" : [ "PipeStorage" ],
3060      "version" : "1.1"
3061    },
3062    {
3063      "opname" : "OpCreatePipeFromPipeStorage",
3064      "opcode" : 324,
3065      "operands" : [
3066        { "kind" : "IdResultType" },
3067        { "kind" : "IdResult" },
3068        { "kind" : "IdRef", "name" : "'Pipe Storage'" }
3069      ],
3070      "capabilities" : [ "PipeStorage" ],
3071      "version" : "1.1"
3072    },
3073    {
3074      "opname" : "OpGetKernelLocalSizeForSubgroupCount",
3075      "opcode" : 325,
3076      "operands" : [
3077        { "kind" : "IdResultType" },
3078        { "kind" : "IdResult" },
3079        { "kind" : "IdRef", "name" : "'Subgroup Count'" },
3080        { "kind" : "IdRef", "name" : "'Invoke'" },
3081        { "kind" : "IdRef", "name" : "'Param'" },
3082        { "kind" : "IdRef", "name" : "'Param Size'" },
3083        { "kind" : "IdRef", "name" : "'Param Align'" }
3084      ],
3085      "capabilities" : [ "SubgroupDispatch" ],
3086      "version" : "1.1"
3087    },
3088    {
3089      "opname" : "OpGetKernelMaxNumSubgroups",
3090      "opcode" : 326,
3091      "operands" : [
3092        { "kind" : "IdResultType" },
3093        { "kind" : "IdResult" },
3094        { "kind" : "IdRef", "name" : "'Invoke'" },
3095        { "kind" : "IdRef", "name" : "'Param'" },
3096        { "kind" : "IdRef", "name" : "'Param Size'" },
3097        { "kind" : "IdRef", "name" : "'Param Align'" }
3098      ],
3099      "capabilities" : [ "SubgroupDispatch" ],
3100      "version" : "1.1"
3101    },
3102    {
3103      "opname" : "OpTypeNamedBarrier",
3104      "opcode" : 327,
3105      "operands" : [
3106        { "kind" : "IdResult" }
3107      ],
3108      "capabilities" : [ "NamedBarrier" ],
3109      "version" : "1.1"
3110    },
3111    {
3112      "opname" : "OpNamedBarrierInitialize",
3113      "opcode" : 328,
3114      "operands" : [
3115        { "kind" : "IdResultType" },
3116        { "kind" : "IdResult" },
3117        { "kind" : "IdRef", "name" : "'Subgroup Count'" }
3118      ],
3119      "capabilities" : [ "NamedBarrier" ],
3120      "version" : "1.1"
3121    },
3122    {
3123      "opname" : "OpMemoryNamedBarrier",
3124      "opcode" : 329,
3125      "operands" : [
3126        { "kind" : "IdRef", "name" : "'Named Barrier'" },
3127        { "kind" : "IdScope", "name" : "'Memory'" },
3128        { "kind" : "IdMemorySemantics", "name" : "'Semantics'" }
3129      ],
3130      "capabilities" : [ "NamedBarrier" ],
3131      "version" : "1.1"
3132    },
3133    {
3134      "opname" : "OpModuleProcessed",
3135      "opcode" : 330,
3136      "operands" : [
3137        { "kind" : "LiteralString", "name" : "'Process'" }
3138      ],
3139      "version" : "1.1"
3140    },
3141    {
3142      "opname" : "OpExecutionModeId",
3143      "opcode" : 331,
3144      "operands" : [
3145        { "kind" : "IdRef", "name" : "'Entry Point'" },
3146        { "kind" : "ExecutionMode", "name" : "'Mode'" }
3147      ],
3148      "version" : "1.2"
3149    },
3150    {
3151      "opname" : "OpDecorateId",
3152      "opcode" : 332,
3153      "operands" : [
3154        { "kind" : "IdRef", "name" : "'Target'" },
3155        { "kind" : "Decoration" }
3156      ],
3157      "extensions" : [ "SPV_GOOGLE_hlsl_functionality1" ],
3158      "version" : "1.2"
3159    },
3160    {
3161      "opname" : "OpGroupNonUniformElect",
3162      "opcode" : 333,
3163      "operands" : [
3164        { "kind" : "IdResultType" },
3165        { "kind" : "IdResult" },
3166        { "kind" : "IdScope", "name" : "'Execution'" }
3167      ],
3168      "capabilities" : [ "GroupNonUniform" ],
3169      "version" : "1.3"
3170    },
3171    {
3172      "opname" : "OpGroupNonUniformAll",
3173      "opcode" : 334,
3174      "operands" : [
3175        { "kind" : "IdResultType" },
3176        { "kind" : "IdResult" },
3177        { "kind" : "IdScope", "name" : "'Execution'" },
3178        { "kind" : "IdRef", "name" : "'Predicate'" }
3179      ],
3180      "capabilities" : [ "GroupNonUniformVote" ],
3181      "version" : "1.3"
3182    },
3183    {
3184      "opname" : "OpGroupNonUniformAny",
3185      "opcode" : 335,
3186      "operands" : [
3187        { "kind" : "IdResultType" },
3188        { "kind" : "IdResult" },
3189        { "kind" : "IdScope", "name" : "'Execution'" },
3190        { "kind" : "IdRef", "name" : "'Predicate'" }
3191      ],
3192      "capabilities" : [ "GroupNonUniformVote" ],
3193      "version" : "1.3"
3194    },
3195    {
3196      "opname" : "OpGroupNonUniformAllEqual",
3197      "opcode" : 336,
3198      "operands" : [
3199        { "kind" : "IdResultType" },
3200        { "kind" : "IdResult" },
3201        { "kind" : "IdScope", "name" : "'Execution'" },
3202        { "kind" : "IdRef", "name" : "'Value'" }
3203      ],
3204      "capabilities" : [ "GroupNonUniformVote" ],
3205      "version" : "1.3"
3206    },
3207    {
3208      "opname" : "OpGroupNonUniformBroadcast",
3209      "opcode" : 337,
3210      "operands" : [
3211        { "kind" : "IdResultType" },
3212        { "kind" : "IdResult" },
3213        { "kind" : "IdScope", "name" : "'Execution'" },
3214        { "kind" : "IdRef", "name" : "'Value'" },
3215        { "kind" : "IdRef", "name" : "'Id'" }
3216      ],
3217      "capabilities" : [ "GroupNonUniformBallot" ],
3218      "version" : "1.3"
3219    },
3220    {
3221      "opname" : "OpGroupNonUniformBroadcastFirst",
3222      "opcode" : 338,
3223      "operands" : [
3224        { "kind" : "IdResultType" },
3225        { "kind" : "IdResult" },
3226        { "kind" : "IdScope", "name" : "'Execution'" },
3227        { "kind" : "IdRef", "name" : "'Value'" }
3228      ],
3229      "capabilities" : [ "GroupNonUniformBallot" ],
3230      "version" : "1.3"
3231    },
3232    {
3233      "opname" : "OpGroupNonUniformBallot",
3234      "opcode" : 339,
3235      "operands" : [
3236        { "kind" : "IdResultType" },
3237        { "kind" : "IdResult" },
3238        { "kind" : "IdScope", "name" : "'Execution'" },
3239        { "kind" : "IdRef", "name" : "'Predicate'" }
3240      ],
3241      "capabilities" : [ "GroupNonUniformBallot" ],
3242      "version" : "1.3"
3243    },
3244    {
3245      "opname" : "OpGroupNonUniformInverseBallot",
3246      "opcode" : 340,
3247      "operands" : [
3248        { "kind" : "IdResultType" },
3249        { "kind" : "IdResult" },
3250        { "kind" : "IdScope", "name" : "'Execution'" },
3251        { "kind" : "IdRef", "name" : "'Value'" }
3252      ],
3253      "capabilities" : [ "GroupNonUniformBallot" ],
3254      "version" : "1.3"
3255    },
3256    {
3257      "opname" : "OpGroupNonUniformBallotBitExtract",
3258      "opcode" : 341,
3259      "operands" : [
3260        { "kind" : "IdResultType" },
3261        { "kind" : "IdResult" },
3262        { "kind" : "IdScope", "name" : "'Execution'" },
3263        { "kind" : "IdRef", "name" : "'Value'" },
3264        { "kind" : "IdRef", "name" : "'Index'" }
3265      ],
3266      "capabilities" : [ "GroupNonUniformBallot" ],
3267      "version" : "1.3"
3268    },
3269    {
3270      "opname" : "OpGroupNonUniformBallotBitCount",
3271      "opcode" : 342,
3272      "operands" : [
3273        { "kind" : "IdResultType" },
3274        { "kind" : "IdResult" },
3275        { "kind" : "IdScope", "name" : "'Execution'" },
3276        { "kind" : "GroupOperation", "name" : "'Operation'" },
3277        { "kind" : "IdRef", "name" : "'Value'" }
3278      ],
3279      "capabilities" : [ "GroupNonUniformBallot" ],
3280      "version" : "1.3"
3281    },
3282    {
3283      "opname" : "OpGroupNonUniformBallotFindLSB",
3284      "opcode" : 343,
3285      "operands" : [
3286        { "kind" : "IdResultType" },
3287        { "kind" : "IdResult" },
3288        { "kind" : "IdScope", "name" : "'Execution'" },
3289        { "kind" : "IdRef", "name" : "'Value'" }
3290      ],
3291      "capabilities" : [ "GroupNonUniformBallot" ],
3292      "version" : "1.3"
3293    },
3294    {
3295      "opname" : "OpGroupNonUniformBallotFindMSB",
3296      "opcode" : 344,
3297      "operands" : [
3298        { "kind" : "IdResultType" },
3299        { "kind" : "IdResult" },
3300        { "kind" : "IdScope", "name" : "'Execution'" },
3301        { "kind" : "IdRef", "name" : "'Value'" }
3302      ],
3303      "capabilities" : [ "GroupNonUniformBallot" ],
3304      "version" : "1.3"
3305    },
3306    {
3307      "opname" : "OpGroupNonUniformShuffle",
3308      "opcode" : 345,
3309      "operands" : [
3310        { "kind" : "IdResultType" },
3311        { "kind" : "IdResult" },
3312        { "kind" : "IdScope", "name" : "'Execution'" },
3313        { "kind" : "IdRef", "name" : "'Value'" },
3314        { "kind" : "IdRef", "name" : "'Id'" }
3315      ],
3316      "capabilities" : [ "GroupNonUniformShuffle" ],
3317      "version" : "1.3"
3318    },
3319    {
3320      "opname" : "OpGroupNonUniformShuffleXor",
3321      "opcode" : 346,
3322      "operands" : [
3323        { "kind" : "IdResultType" },
3324        { "kind" : "IdResult" },
3325        { "kind" : "IdScope", "name" : "'Execution'" },
3326        { "kind" : "IdRef", "name" : "'Value'" },
3327        { "kind" : "IdRef", "name" : "'Mask'" }
3328      ],
3329      "capabilities" : [ "GroupNonUniformShuffle" ],
3330      "version" : "1.3"
3331    },
3332    {
3333      "opname" : "OpGroupNonUniformShuffleUp",
3334      "opcode" : 347,
3335      "operands" : [
3336        { "kind" : "IdResultType" },
3337        { "kind" : "IdResult" },
3338        { "kind" : "IdScope", "name" : "'Execution'" },
3339        { "kind" : "IdRef", "name" : "'Value'" },
3340        { "kind" : "IdRef", "name" : "'Delta'" }
3341      ],
3342      "capabilities" : [ "GroupNonUniformShuffleRelative" ],
3343      "version" : "1.3"
3344    },
3345    {
3346      "opname" : "OpGroupNonUniformShuffleDown",
3347      "opcode" : 348,
3348      "operands" : [
3349        { "kind" : "IdResultType" },
3350        { "kind" : "IdResult" },
3351        { "kind" : "IdScope", "name" : "'Execution'" },
3352        { "kind" : "IdRef", "name" : "'Value'" },
3353        { "kind" : "IdRef", "name" : "'Delta'" }
3354      ],
3355      "capabilities" : [ "GroupNonUniformShuffleRelative" ],
3356      "version" : "1.3"
3357    },
3358    {
3359      "opname" : "OpGroupNonUniformIAdd",
3360      "opcode" : 349,
3361      "operands" : [
3362        { "kind" : "IdResultType" },
3363        { "kind" : "IdResult" },
3364        { "kind" : "IdScope", "name" : "'Execution'" },
3365        { "kind" : "GroupOperation", "name" : "'Operation'" },
3366        { "kind" : "IdRef", "name" : "'Value'" },
3367        { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
3368      ],
3369      "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
3370      "version" : "1.3"
3371    },
3372    {
3373      "opname" : "OpGroupNonUniformFAdd",
3374      "opcode" : 350,
3375      "operands" : [
3376        { "kind" : "IdResultType" },
3377        { "kind" : "IdResult" },
3378        { "kind" : "IdScope", "name" : "'Execution'" },
3379        { "kind" : "GroupOperation", "name" : "'Operation'" },
3380        { "kind" : "IdRef", "name" : "'Value'" },
3381        { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
3382      ],
3383      "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
3384      "version" : "1.3"
3385    },
3386    {
3387      "opname" : "OpGroupNonUniformIMul",
3388      "opcode" : 351,
3389      "operands" : [
3390        { "kind" : "IdResultType" },
3391        { "kind" : "IdResult" },
3392        { "kind" : "IdScope", "name" : "'Execution'" },
3393        { "kind" : "GroupOperation", "name" : "'Operation'" },
3394        { "kind" : "IdRef", "name" : "'Value'" },
3395        { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
3396      ],
3397      "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
3398      "version" : "1.3"
3399    },
3400    {
3401      "opname" : "OpGroupNonUniformFMul",
3402      "opcode" : 352,
3403      "operands" : [
3404        { "kind" : "IdResultType" },
3405        { "kind" : "IdResult" },
3406        { "kind" : "IdScope", "name" : "'Execution'" },
3407        { "kind" : "GroupOperation", "name" : "'Operation'" },
3408        { "kind" : "IdRef", "name" : "'Value'" },
3409        { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
3410      ],
3411      "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
3412      "version" : "1.3"
3413    },
3414    {
3415      "opname" : "OpGroupNonUniformSMin",
3416      "opcode" : 353,
3417      "operands" : [
3418        { "kind" : "IdResultType" },
3419        { "kind" : "IdResult" },
3420        { "kind" : "IdScope", "name" : "'Execution'" },
3421        { "kind" : "GroupOperation", "name" : "'Operation'" },
3422        { "kind" : "IdRef", "name" : "'Value'" },
3423        { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
3424      ],
3425      "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
3426      "version" : "1.3"
3427    },
3428    {
3429      "opname" : "OpGroupNonUniformUMin",
3430      "opcode" : 354,
3431      "operands" : [
3432        { "kind" : "IdResultType" },
3433        { "kind" : "IdResult" },
3434        { "kind" : "IdScope", "name" : "'Execution'" },
3435        { "kind" : "GroupOperation", "name" : "'Operation'" },
3436        { "kind" : "IdRef", "name" : "'Value'" },
3437        { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
3438      ],
3439      "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
3440      "version" : "1.3"
3441    },
3442    {
3443      "opname" : "OpGroupNonUniformFMin",
3444      "opcode" : 355,
3445      "operands" : [
3446        { "kind" : "IdResultType" },
3447        { "kind" : "IdResult" },
3448        { "kind" : "IdScope", "name" : "'Execution'" },
3449        { "kind" : "GroupOperation", "name" : "'Operation'" },
3450        { "kind" : "IdRef", "name" : "'Value'" },
3451        { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
3452      ],
3453      "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
3454      "version" : "1.3"
3455    },
3456    {
3457      "opname" : "OpGroupNonUniformSMax",
3458      "opcode" : 356,
3459      "operands" : [
3460        { "kind" : "IdResultType" },
3461        { "kind" : "IdResult" },
3462        { "kind" : "IdScope", "name" : "'Execution'" },
3463        { "kind" : "GroupOperation", "name" : "'Operation'" },
3464        { "kind" : "IdRef", "name" : "'Value'" },
3465        { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
3466      ],
3467      "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
3468      "version" : "1.3"
3469    },
3470    {
3471      "opname" : "OpGroupNonUniformUMax",
3472      "opcode" : 357,
3473      "operands" : [
3474        { "kind" : "IdResultType" },
3475        { "kind" : "IdResult" },
3476        { "kind" : "IdScope", "name" : "'Execution'" },
3477        { "kind" : "GroupOperation", "name" : "'Operation'" },
3478        { "kind" : "IdRef", "name" : "'Value'" },
3479        { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
3480      ],
3481      "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
3482      "version" : "1.3"
3483    },
3484    {
3485      "opname" : "OpGroupNonUniformFMax",
3486      "opcode" : 358,
3487      "operands" : [
3488        { "kind" : "IdResultType" },
3489        { "kind" : "IdResult" },
3490        { "kind" : "IdScope", "name" : "'Execution'" },
3491        { "kind" : "GroupOperation", "name" : "'Operation'" },
3492        { "kind" : "IdRef", "name" : "'Value'" },
3493        { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
3494      ],
3495      "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
3496      "version" : "1.3"
3497    },
3498    {
3499      "opname" : "OpGroupNonUniformBitwiseAnd",
3500      "opcode" : 359,
3501      "operands" : [
3502        { "kind" : "IdResultType" },
3503        { "kind" : "IdResult" },
3504        { "kind" : "IdScope", "name" : "'Execution'" },
3505        { "kind" : "GroupOperation", "name" : "'Operation'" },
3506        { "kind" : "IdRef", "name" : "'Value'" },
3507        { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
3508      ],
3509      "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
3510      "version" : "1.3"
3511    },
3512    {
3513      "opname" : "OpGroupNonUniformBitwiseOr",
3514      "opcode" : 360,
3515      "operands" : [
3516        { "kind" : "IdResultType" },
3517        { "kind" : "IdResult" },
3518        { "kind" : "IdScope", "name" : "'Execution'" },
3519        { "kind" : "GroupOperation", "name" : "'Operation'" },
3520        { "kind" : "IdRef", "name" : "'Value'" },
3521        { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
3522      ],
3523      "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
3524      "version" : "1.3"
3525    },
3526    {
3527      "opname" : "OpGroupNonUniformBitwiseXor",
3528      "opcode" : 361,
3529      "operands" : [
3530        { "kind" : "IdResultType" },
3531        { "kind" : "IdResult" },
3532        { "kind" : "IdScope", "name" : "'Execution'" },
3533        { "kind" : "GroupOperation", "name" : "'Operation'" },
3534        { "kind" : "IdRef", "name" : "'Value'" },
3535        { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
3536      ],
3537      "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
3538      "version" : "1.3"
3539    },
3540    {
3541      "opname" : "OpGroupNonUniformLogicalAnd",
3542      "opcode" : 362,
3543      "operands" : [
3544        { "kind" : "IdResultType" },
3545        { "kind" : "IdResult" },
3546        { "kind" : "IdScope", "name" : "'Execution'" },
3547        { "kind" : "GroupOperation", "name" : "'Operation'" },
3548        { "kind" : "IdRef", "name" : "'Value'" },
3549        { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
3550      ],
3551      "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
3552      "version" : "1.3"
3553    },
3554    {
3555      "opname" : "OpGroupNonUniformLogicalOr",
3556      "opcode" : 363,
3557      "operands" : [
3558        { "kind" : "IdResultType" },
3559        { "kind" : "IdResult" },
3560        { "kind" : "IdScope", "name" : "'Execution'" },
3561        { "kind" : "GroupOperation", "name" : "'Operation'" },
3562        { "kind" : "IdRef", "name" : "'Value'" },
3563        { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
3564      ],
3565      "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
3566      "version" : "1.3"
3567    },
3568    {
3569      "opname" : "OpGroupNonUniformLogicalXor",
3570      "opcode" : 364,
3571      "operands" : [
3572        { "kind" : "IdResultType" },
3573        { "kind" : "IdResult" },
3574        { "kind" : "IdScope", "name" : "'Execution'" },
3575        { "kind" : "GroupOperation", "name" : "'Operation'" },
3576        { "kind" : "IdRef", "name" : "'Value'" },
3577        { "kind" : "IdRef", "name" : "'ClusterSize'", "quantifier" : "?" }
3578      ],
3579      "capabilities" : [ "GroupNonUniformArithmetic", "GroupNonUniformClustered" ],
3580      "version" : "1.3"
3581    },
3582    {
3583      "opname" : "OpGroupNonUniformQuadBroadcast",
3584      "opcode" : 365,
3585      "operands" : [
3586        { "kind" : "IdResultType" },
3587        { "kind" : "IdResult" },
3588        { "kind" : "IdScope", "name" : "'Execution'" },
3589        { "kind" : "IdRef", "name" : "'Value'" },
3590        { "kind" : "IdRef", "name" : "'Index'" }
3591      ],
3592      "capabilities" : [ "GroupNonUniformQuad" ],
3593      "version" : "1.3"
3594    },
3595    {
3596      "opname" : "OpGroupNonUniformQuadSwap",
3597      "opcode" : 366,
3598      "operands" : [
3599        { "kind" : "IdResultType" },
3600        { "kind" : "IdResult" },
3601        { "kind" : "IdScope", "name" : "'Execution'" },
3602        { "kind" : "IdRef", "name" : "'Value'" },
3603        { "kind" : "IdRef", "name" : "'Direction'" }
3604      ],
3605      "capabilities" : [ "GroupNonUniformQuad" ],
3606      "version" : "1.3"
3607    },
3608    {
3609      "opname" : "OpSubgroupBallotKHR",
3610      "opcode" : 4421,
3611      "operands" : [
3612        { "kind" : "IdResultType" },
3613        { "kind" : "IdResult" },
3614        { "kind" : "IdRef", "name" : "'Predicate'" }
3615      ],
3616      "capabilities" : [ "SubgroupBallotKHR" ],
3617      "extensions" : [ "SPV_KHR_shader_ballot" ],
3618      "version" : "None"
3619    },
3620    {
3621      "opname" : "OpSubgroupFirstInvocationKHR",
3622      "opcode" : 4422,
3623      "operands" : [
3624        { "kind" : "IdResultType" },
3625        { "kind" : "IdResult" },
3626        { "kind" : "IdRef", "name" : "'Value'" }
3627      ],
3628      "capabilities" : [ "SubgroupBallotKHR" ],
3629      "extensions" : [ "SPV_KHR_shader_ballot" ],
3630      "version" : "None"
3631    },
3632    {
3633      "opname" : "OpSubgroupAllKHR",
3634      "opcode" : 4428,
3635      "operands" : [
3636        { "kind" : "IdResultType" },
3637        { "kind" : "IdResult" },
3638        { "kind" : "IdRef", "name" : "'Predicate'" }
3639      ],
3640      "extensions" : [
3641        "SPV_KHR_subgroup_vote"
3642      ],
3643      "capabilities" : [ "SubgroupVoteKHR" ],
3644      "version" : "None"
3645    },
3646    {
3647      "opname" : "OpSubgroupAnyKHR",
3648      "opcode" : 4429,
3649      "operands" : [
3650        { "kind" : "IdResultType" },
3651        { "kind" : "IdResult" },
3652        { "kind" : "IdRef", "name" : "'Predicate'" }
3653      ],
3654      "extensions" : [
3655        "SPV_KHR_subgroup_vote"
3656      ],
3657      "capabilities" : [ "SubgroupVoteKHR" ],
3658      "version" : "None"
3659    },
3660    {
3661      "opname" : "OpSubgroupAllEqualKHR",
3662      "opcode" : 4430,
3663      "operands" : [
3664        { "kind" : "IdResultType" },
3665        { "kind" : "IdResult" },
3666        { "kind" : "IdRef", "name" : "'Predicate'" }
3667      ],
3668      "extensions" : [
3669        "SPV_KHR_subgroup_vote"
3670      ],
3671      "capabilities" : [ "SubgroupVoteKHR" ],
3672      "version" : "None"
3673    },
3674    {
3675      "opname" : "OpSubgroupReadInvocationKHR",
3676      "opcode" : 4432,
3677      "operands" : [
3678        { "kind" : "IdResultType" },
3679        { "kind" : "IdResult" },
3680        { "kind" : "IdRef", "name" : "'Value'" },
3681        { "kind" : "IdRef", "name" : "'Index'" }
3682      ],
3683      "capabilities" : [ "SubgroupBallotKHR" ],
3684      "extensions" : [ "SPV_KHR_shader_ballot" ],
3685      "version" : "None"
3686    },
3687    {
3688      "opname" : "OpGroupIAddNonUniformAMD",
3689      "opcode" : 5000,
3690      "operands" : [
3691        { "kind" : "IdResultType" },
3692        { "kind" : "IdResult" },
3693        { "kind" : "IdScope",        "name" : "'Execution'" },
3694        { "kind" : "GroupOperation", "name" : "'Operation'" },
3695        { "kind" : "IdRef",          "name" : "'X'" }
3696      ],
3697      "capabilities" : [ "Groups" ],
3698      "extensions" : [ "SPV_AMD_shader_ballot" ],
3699      "version" : "None"
3700    },
3701    {
3702      "opname" : "OpGroupFAddNonUniformAMD",
3703      "opcode" : 5001,
3704      "operands" : [
3705        { "kind" : "IdResultType" },
3706        { "kind" : "IdResult" },
3707        { "kind" : "IdScope",        "name" : "'Execution'" },
3708        { "kind" : "GroupOperation", "name" : "'Operation'" },
3709        { "kind" : "IdRef",          "name" : "'X'" }
3710      ],
3711      "capabilities" : [ "Groups" ],
3712      "extensions" : [ "SPV_AMD_shader_ballot" ],
3713      "version" : "None"
3714    },
3715    {
3716      "opname" : "OpGroupFMinNonUniformAMD",
3717      "opcode" : 5002,
3718      "operands" : [
3719        { "kind" : "IdResultType" },
3720        { "kind" : "IdResult" },
3721        { "kind" : "IdScope",        "name" : "'Execution'" },
3722        { "kind" : "GroupOperation", "name" : "'Operation'" },
3723        { "kind" : "IdRef",          "name" : "'X'" }
3724      ],
3725      "capabilities" : [ "Groups" ],
3726      "extensions" : [ "SPV_AMD_shader_ballot" ],
3727      "version" : "None"
3728    },
3729    {
3730      "opname" : "OpGroupUMinNonUniformAMD",
3731      "opcode" : 5003,
3732      "operands" : [
3733        { "kind" : "IdResultType" },
3734        { "kind" : "IdResult" },
3735        { "kind" : "IdScope",        "name" : "'Execution'" },
3736        { "kind" : "GroupOperation", "name" : "'Operation'" },
3737        { "kind" : "IdRef",          "name" : "'X'" }
3738      ],
3739      "capabilities" : [ "Groups" ],
3740      "extensions" : [ "SPV_AMD_shader_ballot" ],
3741      "version" : "None"
3742    },
3743    {
3744      "opname" : "OpGroupSMinNonUniformAMD",
3745      "opcode" : 5004,
3746      "operands" : [
3747        { "kind" : "IdResultType" },
3748        { "kind" : "IdResult" },
3749        { "kind" : "IdScope",        "name" : "'Execution'" },
3750        { "kind" : "GroupOperation", "name" : "'Operation'" },
3751        { "kind" : "IdRef",          "name" : "'X'" }
3752      ],
3753      "capabilities" : [ "Groups" ],
3754      "extensions" : [ "SPV_AMD_shader_ballot" ],
3755      "version" : "None"
3756    },
3757    {
3758      "opname" : "OpGroupFMaxNonUniformAMD",
3759      "opcode" : 5005,
3760      "operands" : [
3761        { "kind" : "IdResultType" },
3762        { "kind" : "IdResult" },
3763        { "kind" : "IdScope",        "name" : "'Execution'" },
3764        { "kind" : "GroupOperation", "name" : "'Operation'" },
3765        { "kind" : "IdRef",          "name" : "'X'" }
3766      ],
3767      "capabilities" : [ "Groups" ],
3768      "extensions" : [ "SPV_AMD_shader_ballot" ],
3769      "version" : "None"
3770    },
3771    {
3772      "opname" : "OpGroupUMaxNonUniformAMD",
3773      "opcode" : 5006,
3774      "operands" : [
3775        { "kind" : "IdResultType" },
3776        { "kind" : "IdResult" },
3777        { "kind" : "IdScope",        "name" : "'Execution'" },
3778        { "kind" : "GroupOperation", "name" : "'Operation'" },
3779        { "kind" : "IdRef",          "name" : "'X'" }
3780      ],
3781      "capabilities" : [ "Groups" ],
3782      "extensions" : [ "SPV_AMD_shader_ballot" ],
3783      "version" : "None"
3784    },
3785    {
3786      "opname" : "OpGroupSMaxNonUniformAMD",
3787      "opcode" : 5007,
3788      "operands" : [
3789        { "kind" : "IdResultType" },
3790        { "kind" : "IdResult" },
3791        { "kind" : "IdScope",        "name" : "'Execution'" },
3792        { "kind" : "GroupOperation", "name" : "'Operation'" },
3793        { "kind" : "IdRef",          "name" : "'X'" }
3794      ],
3795      "capabilities" : [ "Groups" ],
3796      "extensions" : [ "SPV_AMD_shader_ballot" ],
3797      "version" : "None"
3798    },
3799    {
3800      "opname" : "OpFragmentMaskFetchAMD",
3801      "opcode" : 5011,
3802      "operands" : [
3803        { "kind" : "IdResultType" },
3804        { "kind" : "IdResult" },
3805        { "kind" : "IdRef", "name" : "'Image'" },
3806        { "kind" : "IdRef", "name" : "'Coordinate'" }
3807      ],
3808      "capabilities" : [ "FragmentMaskAMD" ],
3809      "extensions" : [ "SPV_AMD_shader_fragment_mask" ],
3810      "version" : "None"
3811    },
3812    {
3813      "opname" : "OpFragmentFetchAMD",
3814      "opcode" : 5012,
3815      "operands" : [
3816        { "kind" : "IdResultType" },
3817        { "kind" : "IdResult" },
3818        { "kind" : "IdRef", "name" : "'Image'" },
3819        { "kind" : "IdRef", "name" : "'Coordinate'" },
3820        { "kind" : "IdRef", "name" : "'Fragment Index'" }
3821      ],
3822      "capabilities" : [ "FragmentMaskAMD" ],
3823      "extensions" : [ "SPV_AMD_shader_fragment_mask" ],
3824      "version" : "None"
3825    },
3826    {
3827      "opname" : "OpWritePackedPrimitiveIndices4x8NV",
3828      "opcode" : 5299,
3829      "operands" : [
3830        { "kind" : "IdRef", "name" : "'Index Offset'" },
3831        { "kind" : "IdRef", "name" : "'Packed Indices'" }
3832      ],
3833      "capabilities" : [ "MeshShadingNV" ],
3834      "extensions" : [ "SPV_NV_mesh_shader" ],
3835      "version" : "None"
3836    },
3837    {
3838      "opname" : "OpReportIntersectionNV",
3839      "opcode" : 5334,
3840      "operands" : [
3841        { "kind" : "IdResultType" },
3842        { "kind" : "IdResult" },
3843        { "kind" : "IdRef", "name" : "'Hit'" },
3844        { "kind" : "IdRef", "name" : "'HitKind'" }
3845      ],
3846      "capabilities" : [ "RayTracingNV" ],
3847      "extensions" : [ "SPV_NV_ray_tracing" ]
3848    },
3849    {
3850      "opname" : "OpIgnoreIntersectionNV",
3851      "opcode" : 5335,
3852
3853      "capabilities" : [ "RayTracingNV" ],
3854      "extensions" : [ "SPV_NV_ray_tracing" ]
3855    },
3856    {
3857      "opname" : "OpTerminateRayNV",
3858      "opcode" : 5336,
3859
3860      "capabilities" : [ "RayTracingNV" ],
3861      "extensions" : [ "SPV_NV_ray_tracing" ]
3862    },
3863    {
3864      "opname" : "OpTraceNV",
3865      "opcode" : 5337,
3866      "operands" : [
3867
3868        { "kind" : "IdRef", "name" : "'Accel'" },
3869        { "kind" : "IdRef", "name" : "'Ray Flags'" },
3870        { "kind" : "IdRef", "name" : "'Cull Mask'" },
3871        { "kind" : "IdRef", "name" : "'SBT Offset'" },
3872        { "kind" : "IdRef", "name" : "'SBT Stride'" },
3873        { "kind" : "IdRef", "name" : "'Miss Index'" },
3874        { "kind" : "IdRef", "name" : "'Ray Origin'" },
3875        { "kind" : "IdRef", "name" : "'Ray Tmin'" },
3876        { "kind" : "IdRef", "name" : "'Ray Direction'" },
3877        { "kind" : "IdRef", "name" : "'Ray Tmax'" },
3878        { "kind" : "IdRef", "name" : "'PayloadId'" }
3879      ],
3880      "capabilities" : [ "RayTracingNV" ],
3881      "extensions" : [ "SPV_NV_ray_tracing" ]
3882    },
3883    {
3884      "opname" : "OpTypeAccelerationStructureNV",
3885      "opcode" : 5341,
3886      "operands" : [
3887        { "kind" : "IdResult" }
3888      ],
3889      "capabilities" : [ "RayTracingNV" ],
3890      "extensions" : [ "SPV_NV_ray_tracing" ]
3891    },
3892    {
3893      "opname" : "OpExecuteCallableNV",
3894      "opcode" : 5344,
3895      "operands" : [
3896
3897        { "kind" : "IdRef", "name" : "'SBT Index'" },
3898        { "kind" : "IdRef", "name" : "'Callable DataId'" }
3899      ],
3900      "capabilities" : [ "RayTracingNV" ],
3901      "extensions" : [ "SPV_NV_ray_tracing" ]
3902    },
3903    {
3904      "opname" : "OpSubgroupShuffleINTEL",
3905      "opcode" : 5571,
3906      "operands" : [
3907        { "kind" : "IdResultType" },
3908        { "kind" : "IdResult" },
3909        { "kind" : "IdRef", "name" : "'Data'" },
3910        { "kind" : "IdRef", "name" : "'InvocationId'" }
3911      ],
3912      "capabilities" : [ "SubgroupShuffleINTEL" ],
3913      "version" : "None"
3914    },
3915    {
3916      "opname" : "OpSubgroupShuffleDownINTEL",
3917      "opcode" : 5572,
3918      "operands" : [
3919        { "kind" : "IdResultType" },
3920        { "kind" : "IdResult" },
3921        { "kind" : "IdRef", "name" : "'Current'" },
3922        { "kind" : "IdRef", "name" : "'Next'" },
3923        { "kind" : "IdRef", "name" : "'Delta'" }
3924      ],
3925      "capabilities" : [ "SubgroupShuffleINTEL" ],
3926      "version" : "None"
3927    },
3928    {
3929      "opname" : "OpSubgroupShuffleUpINTEL",
3930      "opcode" : 5573,
3931      "operands" : [
3932        { "kind" : "IdResultType" },
3933        { "kind" : "IdResult" },
3934        { "kind" : "IdRef", "name" : "'Previous'" },
3935        { "kind" : "IdRef", "name" : "'Current'" },
3936        { "kind" : "IdRef", "name" : "'Delta'" }
3937      ],
3938      "capabilities" : [ "SubgroupShuffleINTEL" ],
3939      "version" : "None"
3940    },
3941    {
3942      "opname" : "OpSubgroupShuffleXorINTEL",
3943      "opcode" : 5574,
3944      "operands" : [
3945        { "kind" : "IdResultType" },
3946        { "kind" : "IdResult" },
3947        { "kind" : "IdRef", "name" : "'Data'" },
3948        { "kind" : "IdRef", "name" : "'Value'" }
3949      ],
3950      "capabilities" : [ "SubgroupShuffleINTEL" ],
3951      "version" : "None"
3952    },
3953    {
3954      "opname" : "OpSubgroupBlockReadINTEL",
3955      "opcode" : 5575,
3956      "operands" : [
3957        { "kind" : "IdResultType" },
3958        { "kind" : "IdResult" },
3959        { "kind" : "IdRef", "name" : "'Ptr'" }
3960      ],
3961      "capabilities" : [ "SubgroupBufferBlockIOINTEL" ],
3962      "version" : "None"
3963    },
3964    {
3965      "opname" : "OpSubgroupBlockWriteINTEL",
3966      "opcode" : 5576,
3967      "operands" : [
3968        { "kind" : "IdRef", "name" : "'Ptr'" },
3969        { "kind" : "IdRef", "name" : "'Data'" }
3970      ],
3971      "capabilities" : [ "SubgroupBufferBlockIOINTEL" ],
3972      "version" : "None"
3973    },
3974    {
3975      "opname" : "OpSubgroupImageBlockReadINTEL",
3976      "opcode" : 5577,
3977      "operands" : [
3978        { "kind" : "IdResultType" },
3979        { "kind" : "IdResult" },
3980        { "kind" : "IdRef", "name" : "'Image'" },
3981        { "kind" : "IdRef", "name" : "'Coordinate'" }
3982      ],
3983      "capabilities" : [ "SubgroupImageBlockIOINTEL" ],
3984      "version" : "None"
3985    },
3986    {
3987      "opname" : "OpSubgroupImageBlockWriteINTEL",
3988      "opcode" : 5578,
3989      "operands" : [
3990        { "kind" : "IdRef", "name" : "'Image'" },
3991        { "kind" : "IdRef", "name" : "'Coordinate'" },
3992        { "kind" : "IdRef", "name" : "'Data'" }
3993      ],
3994      "capabilities" : [ "SubgroupImageBlockIOINTEL" ],
3995      "version" : "None"
3996    },
3997    {
3998      "opname" : "OpDecorateStringGOOGLE",
3999      "opcode" : 5632,
4000      "operands" : [
4001        { "kind" : "IdRef",         "name" : "'Target'" },
4002        { "kind" : "Decoration" }
4003      ],
4004      "extensions" : [ "SPV_GOOGLE_decorate_string", "SPV_GOOGLE_hlsl_functionality1" ],
4005      "version" : "None"
4006    },
4007    {
4008      "opname" : "OpMemberDecorateStringGOOGLE",
4009      "opcode" : 5633,
4010      "operands" : [
4011        { "kind" : "IdRef",          "name" : "'Struct Type'" },
4012        { "kind" : "LiteralInteger", "name" : "'Member'" },
4013        { "kind" : "Decoration" }
4014      ],
4015      "extensions" : [ "SPV_GOOGLE_decorate_string", "SPV_GOOGLE_hlsl_functionality1" ],
4016      "version" : "None"
4017    },
4018    {
4019      "opname" : "OpGroupNonUniformPartitionNV",
4020      "opcode" : 5296,
4021      "operands" : [
4022        { "kind" : "IdResultType" },
4023        { "kind" : "IdResult" },
4024        { "kind" : "IdRef", "name" : "'Value'" }
4025      ],
4026      "capabilities" : [ "GroupNonUniformPartitionedNV" ],
4027      "extensions" : [ "SPV_NV_shader_subgroup_partitioned" ],
4028      "version" : "None"
4029    },
4030	{
4031      "opname" : "OpImageSampleFootprintNV",
4032      "opcode" : 5283,
4033      "operands" : [
4034        { "kind" : "IdResultType" },
4035        { "kind" : "IdResult" },
4036        { "kind" : "IdRef", "name" : "'Sampled Image'" },
4037        { "kind" : "IdRef", "name" : "'Coordinate'" },
4038        { "kind" : "IdRef", "name" : "'Granularity'" },
4039        { "kind" : "IdRef", "name" : "'Coarse'" },
4040        { "kind" : "ImageOperands", "quantifier" : "?" }
4041      ],
4042      "capabilities" : [ "ImageFootprintNV" ],
4043      "extensions" : [ "SPV_NV_shader_image_footprint" ],
4044      "version" : "None"
4045    }
4046  ],
4047  "operand_kinds" : [
4048    {
4049      "category" : "BitEnum",
4050      "kind" : "ImageOperands",
4051      "enumerants" : [
4052        {
4053          "enumerant" : "None",
4054          "value" : "0x0000"
4055        },
4056        {
4057          "enumerant" : "Bias",
4058          "value" : "0x0001",
4059          "capabilities" : [ "Shader" ],
4060          "parameters" : [
4061            { "kind" : "IdRef" }
4062          ]
4063        },
4064        {
4065          "enumerant" : "Lod",
4066          "value" : "0x0002",
4067          "parameters" : [
4068            { "kind" : "IdRef" }
4069          ]
4070        },
4071        {
4072          "enumerant" : "Grad",
4073          "value" : "0x0004",
4074          "parameters" : [
4075            { "kind" : "IdRef" },
4076            { "kind" : "IdRef" }
4077          ]
4078        },
4079        {
4080          "enumerant" : "ConstOffset",
4081          "value" : "0x0008",
4082          "parameters" : [
4083            { "kind" : "IdRef" }
4084          ]
4085        },
4086        {
4087          "enumerant" : "Offset",
4088          "value" : "0x0010",
4089          "capabilities" : [ "ImageGatherExtended" ],
4090          "parameters" : [
4091            { "kind" : "IdRef" }
4092          ]
4093        },
4094        {
4095          "enumerant" : "ConstOffsets",
4096          "value" : "0x0020",
4097          "capabilities" : [ "ImageGatherExtended" ],
4098          "parameters" : [
4099            { "kind" : "IdRef" }
4100          ]
4101        },
4102        {
4103          "enumerant" : "Sample",
4104          "value" : "0x0040",
4105          "parameters" : [
4106            { "kind" : "IdRef" }
4107          ]
4108        },
4109        {
4110          "enumerant" : "MinLod",
4111          "value" : "0x0080",
4112          "capabilities" : [ "MinLod" ],
4113          "parameters" : [
4114            { "kind" : "IdRef" }
4115          ]
4116        },
4117        {
4118          "enumerant" : "MakeTexelAvailableKHR",
4119          "value" : "0x0100",
4120          "capabilities" : [ "VulkanMemoryModelKHR" ],
4121          "parameters" : [
4122            { "kind" : "IdScope" }
4123          ]
4124        },
4125        {
4126          "enumerant" : "MakeTexelVisibleKHR",
4127          "value" : "0x0200",
4128          "capabilities" : [ "VulkanMemoryModelKHR" ],
4129          "parameters" : [
4130            { "kind" : "IdScope" }
4131          ]
4132        },
4133        {
4134          "enumerant" : "NonPrivateTexelKHR",
4135          "value" : "0x0400",
4136          "capabilities" : [ "VulkanMemoryModelKHR" ]
4137        },
4138        {
4139          "enumerant" : "VolatileTexelKHR",
4140          "value" : "0x0800",
4141          "capabilities" : [ "VulkanMemoryModelKHR" ]
4142        }
4143      ]
4144    },
4145    {
4146      "category" : "BitEnum",
4147      "kind" : "FPFastMathMode",
4148      "enumerants" : [
4149        {
4150          "enumerant" : "None",
4151          "value" : "0x0000"
4152        },
4153        {
4154          "enumerant" : "NotNaN",
4155          "value" : "0x0001",
4156          "capabilities" : [ "Kernel" ]
4157        },
4158        {
4159          "enumerant" : "NotInf",
4160          "value" : "0x0002",
4161          "capabilities" : [ "Kernel" ]
4162        },
4163        {
4164          "enumerant" : "NSZ",
4165          "value" : "0x0004",
4166          "capabilities" : [ "Kernel" ]
4167        },
4168        {
4169          "enumerant" : "AllowRecip",
4170          "value" : "0x0008",
4171          "capabilities" : [ "Kernel" ]
4172        },
4173        {
4174          "enumerant" : "Fast",
4175          "value" : "0x0010",
4176          "capabilities" : [ "Kernel" ]
4177        }
4178      ]
4179    },
4180    {
4181      "category" : "BitEnum",
4182      "kind" : "SelectionControl",
4183      "enumerants" : [
4184        {
4185          "enumerant" : "None",
4186          "value" : "0x0000"
4187        },
4188        {
4189          "enumerant" : "Flatten",
4190          "value" : "0x0001"
4191        },
4192        {
4193          "enumerant" : "DontFlatten",
4194          "value" : "0x0002"
4195        }
4196      ]
4197    },
4198    {
4199      "category" : "BitEnum",
4200      "kind" : "LoopControl",
4201      "enumerants" : [
4202        {
4203          "enumerant" : "None",
4204          "value" : "0x0000"
4205        },
4206        {
4207          "enumerant" : "Unroll",
4208          "value" : "0x0001"
4209        },
4210        {
4211          "enumerant" : "DontUnroll",
4212          "value" : "0x0002"
4213        },
4214        {
4215          "enumerant" : "DependencyInfinite",
4216          "value" : "0x0004",
4217          "version" : "1.1"
4218        },
4219        {
4220          "enumerant" : "DependencyLength",
4221          "value" : "0x0008",
4222          "parameters" : [
4223            { "kind" : "LiteralInteger" }
4224          ],
4225          "version" : "1.1"
4226        }
4227      ]
4228    },
4229    {
4230      "category" : "BitEnum",
4231      "kind" : "FunctionControl",
4232      "enumerants" : [
4233        {
4234          "enumerant" : "None",
4235          "value" : "0x0000"
4236        },
4237        {
4238          "enumerant" : "Inline",
4239          "value" : "0x0001"
4240        },
4241        {
4242          "enumerant" : "DontInline",
4243          "value" : "0x0002"
4244        },
4245        {
4246          "enumerant" : "Pure",
4247          "value" : "0x0004"
4248        },
4249        {
4250          "enumerant" : "Const",
4251          "value" : "0x0008"
4252        }
4253      ]
4254    },
4255    {
4256      "category" : "BitEnum",
4257      "kind" : "MemorySemantics",
4258      "enumerants" : [
4259        {
4260          "enumerant" : "Relaxed",
4261          "value" : "0x0000"
4262        },
4263        {
4264          "enumerant" : "None",
4265          "value" : "0x0000"
4266        },
4267        {
4268          "enumerant" : "Acquire",
4269          "value" : "0x0002"
4270        },
4271        {
4272          "enumerant" : "Release",
4273          "value" : "0x0004"
4274        },
4275        {
4276          "enumerant" : "AcquireRelease",
4277          "value" : "0x0008"
4278        },
4279        {
4280          "enumerant" : "SequentiallyConsistent",
4281          "value" : "0x0010"
4282        },
4283        {
4284          "enumerant" : "UniformMemory",
4285          "value" : "0x0040",
4286          "capabilities" : [ "Shader" ]
4287        },
4288        {
4289          "enumerant" : "SubgroupMemory",
4290          "value" : "0x0080"
4291        },
4292        {
4293          "enumerant" : "WorkgroupMemory",
4294          "value" : "0x0100"
4295        },
4296        {
4297          "enumerant" : "CrossWorkgroupMemory",
4298          "value" : "0x0200"
4299        },
4300        {
4301          "enumerant" : "AtomicCounterMemory",
4302          "value" : "0x0400",
4303          "capabilities" : [ "AtomicStorage" ]
4304        },
4305        {
4306          "enumerant" : "ImageMemory",
4307          "value" : "0x0800"
4308        },
4309        {
4310          "enumerant" : "OutputMemoryKHR",
4311          "value" : "0x1000",
4312          "capabilities" : [ "VulkanMemoryModelKHR" ]
4313        },
4314        {
4315          "enumerant" : "MakeAvailableKHR",
4316          "value" : "0x2000",
4317          "capabilities" : [ "VulkanMemoryModelKHR" ]
4318        },
4319        {
4320          "enumerant" : "MakeVisibleKHR",
4321          "value" : "0x4000",
4322          "capabilities" : [ "VulkanMemoryModelKHR" ]
4323        }
4324      ]
4325    },
4326    {
4327      "category" : "BitEnum",
4328      "kind" : "MemoryAccess",
4329      "enumerants" : [
4330        {
4331          "enumerant" : "None",
4332          "value" : "0x0000"
4333        },
4334        {
4335          "enumerant" : "Volatile",
4336          "value" : "0x0001"
4337        },
4338        {
4339          "enumerant" : "Aligned",
4340          "value" : "0x0002",
4341          "parameters" : [
4342            { "kind" : "LiteralInteger" }
4343          ]
4344        },
4345        {
4346          "enumerant" : "Nontemporal",
4347          "value" : "0x0004"
4348        },
4349        {
4350          "enumerant" : "MakePointerAvailableKHR",
4351          "value" : "0x0008",
4352          "parameters" : [
4353            { "kind" : "IdScope" }
4354          ],
4355          "capabilities" : [ "VulkanMemoryModelKHR" ]
4356        },
4357        {
4358          "enumerant" : "MakePointerVisibleKHR",
4359          "value" : "0x0010",
4360          "parameters" : [
4361            { "kind" : "IdScope" }
4362          ],
4363          "capabilities" : [ "VulkanMemoryModelKHR" ]
4364        },
4365        {
4366          "enumerant" : "NonPrivatePointerKHR",
4367          "value" : "0x0020",
4368          "capabilities" : [ "VulkanMemoryModelKHR" ]
4369        }
4370      ]
4371    },
4372    {
4373      "category" : "BitEnum",
4374      "kind" : "KernelProfilingInfo",
4375      "enumerants" : [
4376        {
4377          "enumerant" : "None",
4378          "value" : "0x0000"
4379        },
4380        {
4381          "enumerant" : "CmdExecTime",
4382          "value" : "0x0001",
4383          "capabilities" : [ "Kernel" ]
4384        }
4385      ]
4386    },
4387    {
4388      "category" : "ValueEnum",
4389      "kind" : "SourceLanguage",
4390      "enumerants" : [
4391        {
4392          "enumerant" : "Unknown",
4393          "value" : 0
4394        },
4395        {
4396          "enumerant" : "ESSL",
4397          "value" : 1
4398        },
4399        {
4400          "enumerant" : "GLSL",
4401          "value" : 2
4402        },
4403        {
4404          "enumerant" : "OpenCL_C",
4405          "value" : 3
4406        },
4407        {
4408          "enumerant" : "OpenCL_CPP",
4409          "value" : 4
4410        },
4411        {
4412          "enumerant" : "HLSL",
4413          "value" : 5
4414        }
4415      ]
4416    },
4417    {
4418      "category" : "ValueEnum",
4419      "kind" : "ExecutionModel",
4420      "enumerants" : [
4421        {
4422          "enumerant" : "Vertex",
4423          "value" : 0,
4424          "capabilities" : [ "Shader" ]
4425        },
4426        {
4427          "enumerant" : "TessellationControl",
4428          "value" : 1,
4429          "capabilities" : [ "Tessellation" ]
4430        },
4431        {
4432          "enumerant" : "TessellationEvaluation",
4433          "value" : 2,
4434          "capabilities" : [ "Tessellation" ]
4435        },
4436        {
4437          "enumerant" : "Geometry",
4438          "value" : 3,
4439          "capabilities" : [ "Geometry" ]
4440        },
4441        {
4442          "enumerant" : "Fragment",
4443          "value" : 4,
4444          "capabilities" : [ "Shader" ]
4445        },
4446        {
4447          "enumerant" : "GLCompute",
4448          "value" : 5,
4449          "capabilities" : [ "Shader" ]
4450        },
4451        {
4452          "enumerant" : "Kernel",
4453          "value" : 6,
4454          "capabilities" : [ "Kernel" ]
4455        },
4456        {
4457          "enumerant" : "TaskNV",
4458          "value" : 5267,
4459          "capabilities" : [ "MeshShadingNV" ]
4460        },
4461        {
4462          "enumerant" : "MeshNV",
4463          "value" : 5268,
4464          "capabilities" : [ "MeshShadingNV" ]
4465        },
4466        {
4467          "enumerant" : "RayGenerationNV",
4468          "value" : 5313,
4469          "capabilities" : [ "RayTracingNV" ]
4470        },
4471        {
4472          "enumerant" : "IntersectionNV",
4473          "value" : 5314,
4474          "capabilities" : [ "RayTracingNV" ]
4475        },
4476        {
4477          "enumerant" : "AnyHitNV",
4478          "value" : 5315,
4479          "capabilities" : [ "RayTracingNV" ]
4480        },
4481        {
4482          "enumerant" : "ClosestHitNV",
4483          "value" : 5316,
4484          "capabilities" : [ "RayTracingNV" ]
4485        },
4486        {
4487          "enumerant" : "MissNV",
4488          "value" : 5317,
4489          "capabilities" : [ "RayTracingNV" ]
4490        },
4491        {
4492          "enumerant" : "CallableNV",
4493          "value" : 5318,
4494          "capabilities" : [ "RayTracingNV" ]
4495        }
4496      ]
4497    },
4498    {
4499      "category" : "ValueEnum",
4500      "kind" : "AddressingModel",
4501      "enumerants" : [
4502        {
4503          "enumerant" : "Logical",
4504          "value" : 0
4505        },
4506        {
4507          "enumerant" : "Physical32",
4508          "value" : 1,
4509          "capabilities" : [ "Addresses" ]
4510        },
4511        {
4512          "enumerant" : "Physical64",
4513          "value" : 2,
4514          "capabilities" : [ "Addresses" ]
4515        },
4516        {
4517          "enumerant" : "PhysicalStorageBuffer64EXT",
4518          "value" : 5348,
4519          "extensions" : [ "SPV_EXT_physical_storage_buffer" ],
4520          "capabilities" : [ "PhysicalStorageBufferAddressesEXT" ]
4521        }
4522      ]
4523    },
4524    {
4525      "category" : "ValueEnum",
4526      "kind" : "MemoryModel",
4527      "enumerants" : [
4528        {
4529          "enumerant" : "Simple",
4530          "value" : 0,
4531          "capabilities" : [ "Shader" ]
4532        },
4533        {
4534          "enumerant" : "GLSL450",
4535          "value" : 1,
4536          "capabilities" : [ "Shader" ]
4537        },
4538        {
4539          "enumerant" : "OpenCL",
4540          "value" : 2,
4541          "capabilities" : [ "Kernel" ]
4542        },
4543        {
4544          "enumerant" : "VulkanKHR",
4545          "value" : 3,
4546          "capabilities" : [ "VulkanMemoryModelKHR" ]
4547        }
4548      ]
4549    },
4550    {
4551      "category" : "ValueEnum",
4552      "kind" : "ExecutionMode",
4553      "enumerants" : [
4554        {
4555          "enumerant" : "Invocations",
4556          "value" : 0,
4557          "capabilities" : [ "Geometry" ],
4558          "parameters" : [
4559            { "kind" : "LiteralInteger", "name" : "'Number of <<Invocation,invocations>>'" }
4560          ]
4561        },
4562        {
4563          "enumerant" : "SpacingEqual",
4564          "value" : 1,
4565          "capabilities" : [ "Tessellation" ]
4566        },
4567        {
4568          "enumerant" : "SpacingFractionalEven",
4569          "value" : 2,
4570          "capabilities" : [ "Tessellation" ]
4571        },
4572        {
4573          "enumerant" : "SpacingFractionalOdd",
4574          "value" : 3,
4575          "capabilities" : [ "Tessellation" ]
4576        },
4577        {
4578          "enumerant" : "VertexOrderCw",
4579          "value" : 4,
4580          "capabilities" : [ "Tessellation" ]
4581        },
4582        {
4583          "enumerant" : "VertexOrderCcw",
4584          "value" : 5,
4585          "capabilities" : [ "Tessellation" ]
4586        },
4587        {
4588          "enumerant" : "PixelCenterInteger",
4589          "value" : 6,
4590          "capabilities" : [ "Shader" ]
4591        },
4592        {
4593          "enumerant" : "OriginUpperLeft",
4594          "value" : 7,
4595          "capabilities" : [ "Shader" ]
4596        },
4597        {
4598          "enumerant" : "OriginLowerLeft",
4599          "value" : 8,
4600          "capabilities" : [ "Shader" ]
4601        },
4602        {
4603          "enumerant" : "EarlyFragmentTests",
4604          "value" : 9,
4605          "capabilities" : [ "Shader" ]
4606        },
4607        {
4608          "enumerant" : "PointMode",
4609          "value" : 10,
4610          "capabilities" : [ "Tessellation" ]
4611        },
4612        {
4613          "enumerant" : "Xfb",
4614          "value" : 11,
4615          "capabilities" : [ "TransformFeedback" ]
4616        },
4617        {
4618          "enumerant" : "DepthReplacing",
4619          "value" : 12,
4620          "capabilities" : [ "Shader" ]
4621        },
4622        {
4623          "enumerant" : "DepthGreater",
4624          "value" : 14,
4625          "capabilities" : [ "Shader" ]
4626        },
4627        {
4628          "enumerant" : "DepthLess",
4629          "value" : 15,
4630          "capabilities" : [ "Shader" ]
4631        },
4632        {
4633          "enumerant" : "DepthUnchanged",
4634          "value" : 16,
4635          "capabilities" : [ "Shader" ]
4636        },
4637        {
4638          "enumerant" : "LocalSize",
4639          "value" : 17,
4640          "parameters" : [
4641            { "kind" : "LiteralInteger", "name" : "'x size'" },
4642            { "kind" : "LiteralInteger", "name" : "'y size'" },
4643            { "kind" : "LiteralInteger", "name" : "'z size'" }
4644          ]
4645        },
4646        {
4647          "enumerant" : "LocalSizeHint",
4648          "value" : 18,
4649          "capabilities" : [ "Kernel" ],
4650          "parameters" : [
4651            { "kind" : "LiteralInteger", "name" : "'x size'" },
4652            { "kind" : "LiteralInteger", "name" : "'y size'" },
4653            { "kind" : "LiteralInteger", "name" : "'z size'" }
4654          ]
4655        },
4656        {
4657          "enumerant" : "InputPoints",
4658          "value" : 19,
4659          "capabilities" : [ "Geometry" ]
4660        },
4661        {
4662          "enumerant" : "InputLines",
4663          "value" : 20,
4664          "capabilities" : [ "Geometry" ]
4665        },
4666        {
4667          "enumerant" : "InputLinesAdjacency",
4668          "value" : 21,
4669          "capabilities" : [ "Geometry" ]
4670        },
4671        {
4672          "enumerant" : "Triangles",
4673          "value" : 22,
4674          "capabilities" : [ "Geometry", "Tessellation" ]
4675        },
4676        {
4677          "enumerant" : "InputTrianglesAdjacency",
4678          "value" : 23,
4679          "capabilities" : [ "Geometry" ]
4680        },
4681        {
4682          "enumerant" : "Quads",
4683          "value" : 24,
4684          "capabilities" : [ "Tessellation" ]
4685        },
4686        {
4687          "enumerant" : "Isolines",
4688          "value" : 25,
4689          "capabilities" : [ "Tessellation" ]
4690        },
4691        {
4692          "enumerant" : "OutputVertices",
4693          "value" : 26,
4694          "capabilities" : [ "Geometry", "Tessellation", "MeshShadingNV" ],
4695          "parameters" : [
4696            { "kind" : "LiteralInteger", "name" : "'Vertex count'" }
4697          ]
4698        },
4699        {
4700          "enumerant" : "OutputPoints",
4701          "value" : 27,
4702          "capabilities" : [ "Geometry", "MeshShadingNV" ]
4703        },
4704        {
4705          "enumerant" : "OutputLineStrip",
4706          "value" : 28,
4707          "capabilities" : [ "Geometry" ]
4708        },
4709        {
4710          "enumerant" : "OutputTriangleStrip",
4711          "value" : 29,
4712          "capabilities" : [ "Geometry" ]
4713        },
4714        {
4715          "enumerant" : "VecTypeHint",
4716          "value" : 30,
4717          "capabilities" : [ "Kernel" ],
4718          "parameters" : [
4719            { "kind" : "LiteralInteger", "name" : "'Vector type'" }
4720          ]
4721        },
4722        {
4723          "enumerant" : "ContractionOff",
4724          "value" : 31,
4725          "capabilities" : [ "Kernel" ]
4726        },
4727        {
4728          "enumerant" : "Initializer",
4729          "value" : 33,
4730          "capabilities" : [ "Kernel" ],
4731          "version" : "1.1"
4732        },
4733        {
4734          "enumerant" : "Finalizer",
4735          "value" : 34,
4736          "capabilities" : [ "Kernel" ],
4737          "version" : "1.1"
4738        },
4739        {
4740          "enumerant" : "SubgroupSize",
4741          "value" : 35,
4742          "capabilities" : [ "SubgroupDispatch" ],
4743          "parameters" : [
4744            { "kind" : "LiteralInteger", "name" : "'Subgroup Size'" }
4745          ],
4746          "version" : "1.1"
4747        },
4748        {
4749          "enumerant" : "SubgroupsPerWorkgroup",
4750          "value" : 36,
4751          "capabilities" : [ "SubgroupDispatch" ],
4752          "parameters" : [
4753            { "kind" : "LiteralInteger", "name" : "'Subgroups Per Workgroup'" }
4754          ],
4755          "version" : "1.1"
4756        },
4757        {
4758          "enumerant" : "SubgroupsPerWorkgroupId",
4759          "value" : 37,
4760          "capabilities" : [ "SubgroupDispatch" ],
4761          "parameters" : [
4762            { "kind" : "IdRef", "name" : "'Subgroups Per Workgroup'" }
4763          ],
4764          "version" : "1.2"
4765        },
4766        {
4767          "enumerant" : "LocalSizeId",
4768          "value" : 38,
4769          "parameters" : [
4770            { "kind" : "IdRef", "name" : "'x size'" },
4771            { "kind" : "IdRef", "name" : "'y size'" },
4772            { "kind" : "IdRef", "name" : "'z size'" }
4773          ],
4774          "version" : "1.2"
4775        },
4776        {
4777          "enumerant" : "LocalSizeHintId",
4778          "value" : 39,
4779          "capabilities" : [ "Kernel" ],
4780          "parameters" : [
4781            { "kind" : "IdRef", "name" : "'Local Size Hint'" }
4782          ],
4783          "version" : "1.2"
4784        },
4785        {
4786          "enumerant" : "PostDepthCoverage",
4787          "value" : 4446,
4788          "capabilities" : [ "SampleMaskPostDepthCoverage" ],
4789          "extensions" : [ "SPV_KHR_post_depth_coverage" ],
4790          "version" : "None"
4791        },
4792{
4793          "enumerant" : "DenormPreserve",
4794          "value" : 4459,
4795          "capabilities" : [ "DenormPreserve"],
4796          "extensions" : [ "SPV_KHR_float_controls" ],
4797          "parameters" : [
4798            { "kind" : "LiteralInteger", "name" : "'Target Width'" }
4799          ],
4800          "version" : "None"
4801        },
4802        {
4803          "enumerant" : "DenormFlushToZero",
4804          "value" : 4460,
4805          "capabilities" : [ "DenormFlushToZero"],
4806          "extensions" : [ "SPV_KHR_float_controls" ],
4807          "parameters" : [
4808            { "kind" : "LiteralInteger", "name" : "'Target Width'" }
4809          ],
4810          "version" : "None"
4811        },
4812        {
4813          "enumerant" : "SignedZeroInfNanPreserve",
4814          "value" : 4461,
4815          "capabilities" : [ "SignedZeroInfNanPreserve"],
4816          "extensions" : [ "SPV_KHR_float_controls" ],
4817          "parameters" : [
4818            { "kind" : "LiteralInteger", "name" : "'Target Width'" }
4819          ],
4820          "version" : "None"
4821        },
4822        {
4823          "enumerant" : "RoundingModeRTE",
4824          "value" : 4462,
4825          "capabilities" : [ "RoundingModeRTE"],
4826          "extensions" : [ "SPV_KHR_float_controls" ],
4827          "parameters" : [
4828            { "kind" : "LiteralInteger", "name" : "'Target Width'" }
4829          ],
4830          "version" : "None"
4831        },
4832        {
4833          "enumerant" : "RoundingModeRTZ",
4834          "value" : 4463,
4835          "capabilities" : [ "RoundingModeRTZ"],
4836          "extensions" : [ "SPV_KHR_float_controls" ],
4837          "parameters" : [
4838            { "kind" : "LiteralInteger", "name" : "'Target Width'" }
4839          ],
4840          "version" : "None"
4841        },
4842        {
4843          "enumerant" : "StencilRefReplacingEXT",
4844          "value" : 5027,
4845          "capabilities" : [ "StencilExportEXT" ],
4846          "extensions" : [ "SPV_EXT_shader_stencil_export" ],
4847          "version" : "None"
4848        },
4849        {
4850          "enumerant" : "OutputLinesNV",
4851          "value" : 5269,
4852          "capabilities" : [ "MeshShadingNV" ],
4853          "extensions" : [ "SPV_NV_mesh_shader" ],
4854          "version" : "None"
4855        },
4856        {
4857          "enumerant" : "OutputPrimitivesNV",
4858          "value" : 5270,
4859          "capabilities" : [ "MeshShadingNV" ],
4860          "parameters" : [
4861            { "kind" : "LiteralInteger", "name" : "'Primitive count'" }
4862          ],
4863          "extensions" : [ "SPV_NV_mesh_shader" ],
4864          "version" : "None"
4865        },
4866        {
4867          "enumerant" : "DerivativeGroupQuadsNV",
4868          "value" : 5289,
4869          "capabilities" : [ "ComputeDerivativeGroupQuadsNV" ],
4870          "extensions" : [ "SPV_NV_compute_shader_derivatives" ],
4871          "version" : "None"
4872        },
4873        {
4874          "enumerant" : "DerivativeGroupLinearNV",
4875          "value" : 5290,
4876          "capabilities" : [ "ComputeDerivativeGroupLinearNV" ],
4877          "extensions" : [ "SPV_NV_compute_shader_derivatives" ],
4878          "version" : "None"
4879        },
4880        {
4881          "enumerant" : "OutputTrianglesNV",
4882          "value" : 5298,
4883          "capabilities" : [ "MeshShadingNV" ],
4884          "extensions" : [ "SPV_NV_mesh_shader" ],
4885          "version" : "None"
4886        }
4887      ]
4888    },
4889    {
4890      "category" : "ValueEnum",
4891      "kind" : "StorageClass",
4892      "enumerants" : [
4893        {
4894          "enumerant" : "UniformConstant",
4895          "value" : 0
4896        },
4897        {
4898          "enumerant" : "Input",
4899          "value" : 1
4900        },
4901        {
4902          "enumerant" : "Uniform",
4903          "value" : 2,
4904          "capabilities" : [ "Shader" ]
4905        },
4906        {
4907          "enumerant" : "Output",
4908          "value" : 3,
4909          "capabilities" : [ "Shader" ]
4910        },
4911        {
4912          "enumerant" : "Workgroup",
4913          "value" : 4
4914        },
4915        {
4916          "enumerant" : "CrossWorkgroup",
4917          "value" : 5
4918        },
4919        {
4920          "enumerant" : "Private",
4921          "value" : 6,
4922          "capabilities" : [ "Shader" ]
4923        },
4924        {
4925          "enumerant" : "Function",
4926          "value" : 7
4927        },
4928        {
4929          "enumerant" : "Generic",
4930          "value" : 8,
4931          "capabilities" : [ "GenericPointer" ]
4932        },
4933        {
4934          "enumerant" : "PushConstant",
4935          "value" : 9,
4936          "capabilities" : [ "Shader" ]
4937        },
4938        {
4939          "enumerant" : "AtomicCounter",
4940          "value" : 10,
4941          "capabilities" : [ "AtomicStorage" ]
4942        },
4943        {
4944          "enumerant" : "Image",
4945          "value" : 11
4946        },
4947        {
4948          "enumerant" : "StorageBuffer",
4949          "value" : 12,
4950          "extensions" : [
4951            "SPV_KHR_storage_buffer_storage_class",
4952            "SPV_KHR_variable_pointers"
4953          ],
4954          "capabilities" : [ "Shader" ],
4955          "version" : "1.3"
4956        },
4957        {
4958          "enumerant" : "CallableDataNV",
4959          "value" : 5328,
4960          "extensions" : [ "SPV_NV_ray_tracing" ],
4961          "capabilities" : [ "RayTracingNV" ]
4962        },
4963        {
4964          "enumerant" : "IncomingCallableDataNV",
4965          "value" : 5329,
4966          "extensions" : [ "SPV_NV_ray_tracing" ],
4967          "capabilities" : [ "RayTracingNV" ]
4968        },
4969        {
4970          "enumerant" : "RayPayloadNV",
4971          "value" : 5338,
4972          "extensions" : [ "SPV_NV_ray_tracing" ],
4973          "capabilities" : [ "RayTracingNV" ]
4974        },
4975        {
4976          "enumerant" : "HitAttributeNV",
4977          "value" : 5339,
4978          "extensions" : [ "SPV_NV_ray_tracing" ],
4979          "capabilities" : [ "RayTracingNV" ]
4980        },
4981        {
4982          "enumerant" : "IncomingRayPayloadNV",
4983          "value" : 5342,
4984          "extensions" : [ "SPV_NV_ray_tracing" ],
4985          "capabilities" : [ "RayTracingNV" ]
4986        },
4987        {
4988          "enumerant" : "ShaderRecordBufferNV",
4989          "value" : 5343,
4990          "extensions" : [ "SPV_NV_ray_tracing" ],
4991          "capabilities" : [ "RayTracingNV" ]
4992        },
4993        {
4994          "enumerant" : "PhysicalStorageBufferEXT",
4995          "value" : 5349,
4996          "extensions" : [ "SPV_EXT_physical_storage_buffer" ],
4997          "capabilities" : [ "PhysicalStorageBufferAddressesEXT" ]
4998        }
4999      ]
5000    },
5001    {
5002      "category" : "ValueEnum",
5003      "kind" : "Dim",
5004      "enumerants" : [
5005        {
5006          "enumerant" : "1D",
5007          "value" : 0,
5008          "capabilities" : [ "Sampled1D", "Image1D" ]
5009        },
5010        {
5011          "enumerant" : "2D",
5012          "value" : 1,
5013          "capabilities" : [ "Shader", "Kernel", "ImageMSArray" ]
5014        },
5015        {
5016          "enumerant" : "3D",
5017          "value" : 2
5018        },
5019        {
5020          "enumerant" : "Cube",
5021          "value" : 3,
5022          "capabilities" : [ "Shader", "ImageCubeArray" ]
5023        },
5024        {
5025          "enumerant" : "Rect",
5026          "value" : 4,
5027          "capabilities" : [ "SampledRect", "ImageRect" ]
5028        },
5029        {
5030          "enumerant" : "Buffer",
5031          "value" : 5,
5032          "capabilities" : [ "SampledBuffer", "ImageBuffer" ]
5033        },
5034        {
5035          "enumerant" : "SubpassData",
5036          "value" : 6,
5037          "capabilities" : [ "InputAttachment" ]
5038        }
5039      ]
5040    },
5041    {
5042      "category" : "ValueEnum",
5043      "kind" : "SamplerAddressingMode",
5044      "enumerants" : [
5045        {
5046          "enumerant" : "None",
5047          "value" : 0,
5048          "capabilities" : [ "Kernel" ]
5049        },
5050        {
5051          "enumerant" : "ClampToEdge",
5052          "value" : 1,
5053          "capabilities" : [ "Kernel" ]
5054        },
5055        {
5056          "enumerant" : "Clamp",
5057          "value" : 2,
5058          "capabilities" : [ "Kernel" ]
5059        },
5060        {
5061          "enumerant" : "Repeat",
5062          "value" : 3,
5063          "capabilities" : [ "Kernel" ]
5064        },
5065        {
5066          "enumerant" : "RepeatMirrored",
5067          "value" : 4,
5068          "capabilities" : [ "Kernel" ]
5069        }
5070      ]
5071    },
5072    {
5073      "category" : "ValueEnum",
5074      "kind" : "SamplerFilterMode",
5075      "enumerants" : [
5076        {
5077          "enumerant" : "Nearest",
5078          "value" : 0,
5079          "capabilities" : [ "Kernel" ]
5080        },
5081        {
5082          "enumerant" : "Linear",
5083          "value" : 1,
5084          "capabilities" : [ "Kernel" ]
5085        }
5086      ]
5087    },
5088    {
5089      "category" : "ValueEnum",
5090      "kind" : "ImageFormat",
5091      "enumerants" : [
5092        {
5093          "enumerant" : "Unknown",
5094          "value" : 0
5095        },
5096        {
5097          "enumerant" : "Rgba32f",
5098          "value" : 1,
5099          "capabilities" : [ "Shader" ]
5100        },
5101        {
5102          "enumerant" : "Rgba16f",
5103          "value" : 2,
5104          "capabilities" : [ "Shader" ]
5105        },
5106        {
5107          "enumerant" : "R32f",
5108          "value" : 3,
5109          "capabilities" : [ "Shader" ]
5110        },
5111        {
5112          "enumerant" : "Rgba8",
5113          "value" : 4,
5114          "capabilities" : [ "Shader" ]
5115        },
5116        {
5117          "enumerant" : "Rgba8Snorm",
5118          "value" : 5,
5119          "capabilities" : [ "Shader" ]
5120        },
5121        {
5122          "enumerant" : "Rg32f",
5123          "value" : 6,
5124          "capabilities" : [ "StorageImageExtendedFormats" ]
5125        },
5126        {
5127          "enumerant" : "Rg16f",
5128          "value" : 7,
5129          "capabilities" : [ "StorageImageExtendedFormats" ]
5130        },
5131        {
5132          "enumerant" : "R11fG11fB10f",
5133          "value" : 8,
5134          "capabilities" : [ "StorageImageExtendedFormats" ]
5135        },
5136        {
5137          "enumerant" : "R16f",
5138          "value" : 9,
5139          "capabilities" : [ "StorageImageExtendedFormats" ]
5140        },
5141        {
5142          "enumerant" : "Rgba16",
5143          "value" : 10,
5144          "capabilities" : [ "StorageImageExtendedFormats" ]
5145        },
5146        {
5147          "enumerant" : "Rgb10A2",
5148          "value" : 11,
5149          "capabilities" : [ "StorageImageExtendedFormats" ]
5150        },
5151        {
5152          "enumerant" : "Rg16",
5153          "value" : 12,
5154          "capabilities" : [ "StorageImageExtendedFormats" ]
5155        },
5156        {
5157          "enumerant" : "Rg8",
5158          "value" : 13,
5159          "capabilities" : [ "StorageImageExtendedFormats" ]
5160        },
5161        {
5162          "enumerant" : "R16",
5163          "value" : 14,
5164          "capabilities" : [ "StorageImageExtendedFormats" ]
5165        },
5166        {
5167          "enumerant" : "R8",
5168          "value" : 15,
5169          "capabilities" : [ "StorageImageExtendedFormats" ]
5170        },
5171        {
5172          "enumerant" : "Rgba16Snorm",
5173          "value" : 16,
5174          "capabilities" : [ "StorageImageExtendedFormats" ]
5175        },
5176        {
5177          "enumerant" : "Rg16Snorm",
5178          "value" : 17,
5179          "capabilities" : [ "StorageImageExtendedFormats" ]
5180        },
5181        {
5182          "enumerant" : "Rg8Snorm",
5183          "value" : 18,
5184          "capabilities" : [ "StorageImageExtendedFormats" ]
5185        },
5186        {
5187          "enumerant" : "R16Snorm",
5188          "value" : 19,
5189          "capabilities" : [ "StorageImageExtendedFormats" ]
5190        },
5191        {
5192          "enumerant" : "R8Snorm",
5193          "value" : 20,
5194          "capabilities" : [ "StorageImageExtendedFormats" ]
5195        },
5196        {
5197          "enumerant" : "Rgba32i",
5198          "value" : 21,
5199          "capabilities" : [ "Shader" ]
5200        },
5201        {
5202          "enumerant" : "Rgba16i",
5203          "value" : 22,
5204          "capabilities" : [ "Shader" ]
5205        },
5206        {
5207          "enumerant" : "Rgba8i",
5208          "value" : 23,
5209          "capabilities" : [ "Shader" ]
5210        },
5211        {
5212          "enumerant" : "R32i",
5213          "value" : 24,
5214          "capabilities" : [ "Shader" ]
5215        },
5216        {
5217          "enumerant" : "Rg32i",
5218          "value" : 25,
5219          "capabilities" : [ "StorageImageExtendedFormats" ]
5220        },
5221        {
5222          "enumerant" : "Rg16i",
5223          "value" : 26,
5224          "capabilities" : [ "StorageImageExtendedFormats" ]
5225        },
5226        {
5227          "enumerant" : "Rg8i",
5228          "value" : 27,
5229          "capabilities" : [ "StorageImageExtendedFormats" ]
5230        },
5231        {
5232          "enumerant" : "R16i",
5233          "value" : 28,
5234          "capabilities" : [ "StorageImageExtendedFormats" ]
5235        },
5236        {
5237          "enumerant" : "R8i",
5238          "value" : 29,
5239          "capabilities" : [ "StorageImageExtendedFormats" ]
5240        },
5241        {
5242          "enumerant" : "Rgba32ui",
5243          "value" : 30,
5244          "capabilities" : [ "Shader" ]
5245        },
5246        {
5247          "enumerant" : "Rgba16ui",
5248          "value" : 31,
5249          "capabilities" : [ "Shader" ]
5250        },
5251        {
5252          "enumerant" : "Rgba8ui",
5253          "value" : 32,
5254          "capabilities" : [ "Shader" ]
5255        },
5256        {
5257          "enumerant" : "R32ui",
5258          "value" : 33,
5259          "capabilities" : [ "Shader" ]
5260        },
5261        {
5262          "enumerant" : "Rgb10a2ui",
5263          "value" : 34,
5264          "capabilities" : [ "StorageImageExtendedFormats" ]
5265        },
5266        {
5267          "enumerant" : "Rg32ui",
5268          "value" : 35,
5269          "capabilities" : [ "StorageImageExtendedFormats" ]
5270        },
5271        {
5272          "enumerant" : "Rg16ui",
5273          "value" : 36,
5274          "capabilities" : [ "StorageImageExtendedFormats" ]
5275        },
5276        {
5277          "enumerant" : "Rg8ui",
5278          "value" : 37,
5279          "capabilities" : [ "StorageImageExtendedFormats" ]
5280        },
5281        {
5282          "enumerant" : "R16ui",
5283          "value" : 38,
5284          "capabilities" : [ "StorageImageExtendedFormats" ]
5285        },
5286        {
5287          "enumerant" : "R8ui",
5288          "value" : 39,
5289          "capabilities" : [ "StorageImageExtendedFormats" ]
5290        }
5291      ]
5292    },
5293    {
5294      "category" : "ValueEnum",
5295      "kind" : "ImageChannelOrder",
5296      "enumerants" : [
5297        {
5298          "enumerant" : "R",
5299          "value" : 0,
5300          "capabilities" : [ "Kernel" ]
5301        },
5302        {
5303          "enumerant" : "A",
5304          "value" : 1,
5305          "capabilities" : [ "Kernel" ]
5306        },
5307        {
5308          "enumerant" : "RG",
5309          "value" : 2,
5310          "capabilities" : [ "Kernel" ]
5311        },
5312        {
5313          "enumerant" : "RA",
5314          "value" : 3,
5315          "capabilities" : [ "Kernel" ]
5316        },
5317        {
5318          "enumerant" : "RGB",
5319          "value" : 4,
5320          "capabilities" : [ "Kernel" ]
5321        },
5322        {
5323          "enumerant" : "RGBA",
5324          "value" : 5,
5325          "capabilities" : [ "Kernel" ]
5326        },
5327        {
5328          "enumerant" : "BGRA",
5329          "value" : 6,
5330          "capabilities" : [ "Kernel" ]
5331        },
5332        {
5333          "enumerant" : "ARGB",
5334          "value" : 7,
5335          "capabilities" : [ "Kernel" ]
5336        },
5337        {
5338          "enumerant" : "Intensity",
5339          "value" : 8,
5340          "capabilities" : [ "Kernel" ]
5341        },
5342        {
5343          "enumerant" : "Luminance",
5344          "value" : 9,
5345          "capabilities" : [ "Kernel" ]
5346        },
5347        {
5348          "enumerant" : "Rx",
5349          "value" : 10,
5350          "capabilities" : [ "Kernel" ]
5351        },
5352        {
5353          "enumerant" : "RGx",
5354          "value" : 11,
5355          "capabilities" : [ "Kernel" ]
5356        },
5357        {
5358          "enumerant" : "RGBx",
5359          "value" : 12,
5360          "capabilities" : [ "Kernel" ]
5361        },
5362        {
5363          "enumerant" : "Depth",
5364          "value" : 13,
5365          "capabilities" : [ "Kernel" ]
5366        },
5367        {
5368          "enumerant" : "DepthStencil",
5369          "value" : 14,
5370          "capabilities" : [ "Kernel" ]
5371        },
5372        {
5373          "enumerant" : "sRGB",
5374          "value" : 15,
5375          "capabilities" : [ "Kernel" ]
5376        },
5377        {
5378          "enumerant" : "sRGBx",
5379          "value" : 16,
5380          "capabilities" : [ "Kernel" ]
5381        },
5382        {
5383          "enumerant" : "sRGBA",
5384          "value" : 17,
5385          "capabilities" : [ "Kernel" ]
5386        },
5387        {
5388          "enumerant" : "sBGRA",
5389          "value" : 18,
5390          "capabilities" : [ "Kernel" ]
5391        },
5392        {
5393          "enumerant" : "ABGR",
5394          "value" : 19,
5395          "capabilities" : [ "Kernel" ]
5396        }
5397      ]
5398    },
5399    {
5400      "category" : "ValueEnum",
5401      "kind" : "ImageChannelDataType",
5402      "enumerants" : [
5403        {
5404          "enumerant" : "SnormInt8",
5405          "value" : 0,
5406          "capabilities" : [ "Kernel" ]
5407        },
5408        {
5409          "enumerant" : "SnormInt16",
5410          "value" : 1,
5411          "capabilities" : [ "Kernel" ]
5412        },
5413        {
5414          "enumerant" : "UnormInt8",
5415          "value" : 2,
5416          "capabilities" : [ "Kernel" ]
5417        },
5418        {
5419          "enumerant" : "UnormInt16",
5420          "value" : 3,
5421          "capabilities" : [ "Kernel" ]
5422        },
5423        {
5424          "enumerant" : "UnormShort565",
5425          "value" : 4,
5426          "capabilities" : [ "Kernel" ]
5427        },
5428        {
5429          "enumerant" : "UnormShort555",
5430          "value" : 5,
5431          "capabilities" : [ "Kernel" ]
5432        },
5433        {
5434          "enumerant" : "UnormInt101010",
5435          "value" : 6,
5436          "capabilities" : [ "Kernel" ]
5437        },
5438        {
5439          "enumerant" : "SignedInt8",
5440          "value" : 7,
5441          "capabilities" : [ "Kernel" ]
5442        },
5443        {
5444          "enumerant" : "SignedInt16",
5445          "value" : 8,
5446          "capabilities" : [ "Kernel" ]
5447        },
5448        {
5449          "enumerant" : "SignedInt32",
5450          "value" : 9,
5451          "capabilities" : [ "Kernel" ]
5452        },
5453        {
5454          "enumerant" : "UnsignedInt8",
5455          "value" : 10,
5456          "capabilities" : [ "Kernel" ]
5457        },
5458        {
5459          "enumerant" : "UnsignedInt16",
5460          "value" : 11,
5461          "capabilities" : [ "Kernel" ]
5462        },
5463        {
5464          "enumerant" : "UnsignedInt32",
5465          "value" : 12,
5466          "capabilities" : [ "Kernel" ]
5467        },
5468        {
5469          "enumerant" : "HalfFloat",
5470          "value" : 13,
5471          "capabilities" : [ "Kernel" ]
5472        },
5473        {
5474          "enumerant" : "Float",
5475          "value" : 14,
5476          "capabilities" : [ "Kernel" ]
5477        },
5478        {
5479          "enumerant" : "UnormInt24",
5480          "value" : 15,
5481          "capabilities" : [ "Kernel" ]
5482        },
5483        {
5484          "enumerant" : "UnormInt101010_2",
5485          "value" : 16,
5486          "capabilities" : [ "Kernel" ]
5487        }
5488      ]
5489    },
5490    {
5491      "category" : "ValueEnum",
5492      "kind" : "FPRoundingMode",
5493      "enumerants" : [
5494        {
5495          "enumerant" : "RTE",
5496          "value" : 0
5497        },
5498        {
5499          "enumerant" : "RTZ",
5500          "value" : 1
5501        },
5502        {
5503          "enumerant" : "RTP",
5504          "value" : 2
5505        },
5506        {
5507          "enumerant" : "RTN",
5508          "value" : 3
5509        }
5510      ]
5511    },
5512    {
5513      "category" : "ValueEnum",
5514      "kind" : "LinkageType",
5515      "enumerants" : [
5516        {
5517          "enumerant" : "Export",
5518          "value" : 0,
5519          "capabilities" : [ "Linkage" ]
5520        },
5521        {
5522          "enumerant" : "Import",
5523          "value" : 1,
5524          "capabilities" : [ "Linkage" ]
5525        }
5526      ]
5527    },
5528    {
5529      "category" : "ValueEnum",
5530      "kind" : "AccessQualifier",
5531      "enumerants" : [
5532        {
5533          "enumerant" : "ReadOnly",
5534          "value" : 0,
5535          "capabilities" : [ "Kernel" ]
5536        },
5537        {
5538          "enumerant" : "WriteOnly",
5539          "value" : 1,
5540          "capabilities" : [ "Kernel" ]
5541        },
5542        {
5543          "enumerant" : "ReadWrite",
5544          "value" : 2,
5545          "capabilities" : [ "Kernel" ]
5546        }
5547      ]
5548    },
5549    {
5550      "category" : "ValueEnum",
5551      "kind" : "FunctionParameterAttribute",
5552      "enumerants" : [
5553        {
5554          "enumerant" : "Zext",
5555          "value" : 0,
5556          "capabilities" : [ "Kernel" ]
5557        },
5558        {
5559          "enumerant" : "Sext",
5560          "value" : 1,
5561          "capabilities" : [ "Kernel" ]
5562        },
5563        {
5564          "enumerant" : "ByVal",
5565          "value" : 2,
5566          "capabilities" : [ "Kernel" ]
5567        },
5568        {
5569          "enumerant" : "Sret",
5570          "value" : 3,
5571          "capabilities" : [ "Kernel" ]
5572        },
5573        {
5574          "enumerant" : "NoAlias",
5575          "value" : 4,
5576          "capabilities" : [ "Kernel" ]
5577        },
5578        {
5579          "enumerant" : "NoCapture",
5580          "value" : 5,
5581          "capabilities" : [ "Kernel" ]
5582        },
5583        {
5584          "enumerant" : "NoWrite",
5585          "value" : 6,
5586          "capabilities" : [ "Kernel" ]
5587        },
5588        {
5589          "enumerant" : "NoReadWrite",
5590          "value" : 7,
5591          "capabilities" : [ "Kernel" ]
5592        }
5593      ]
5594    },
5595    {
5596      "category" : "ValueEnum",
5597      "kind" : "Decoration",
5598      "enumerants" : [
5599        {
5600          "enumerant" : "RelaxedPrecision",
5601          "value" : 0,
5602          "capabilities" : [ "Shader" ]
5603        },
5604        {
5605          "enumerant" : "SpecId",
5606          "value" : 1,
5607          "capabilities" : [ "Shader", "Kernel" ],
5608          "parameters" : [
5609            { "kind" : "LiteralInteger", "name" : "'Specialization Constant ID'" }
5610          ]
5611        },
5612        {
5613          "enumerant" : "Block",
5614          "value" : 2,
5615          "capabilities" : [ "Shader" ]
5616        },
5617        {
5618          "enumerant" : "BufferBlock",
5619          "value" : 3,
5620          "capabilities" : [ "Shader" ]
5621        },
5622        {
5623          "enumerant" : "RowMajor",
5624          "value" : 4,
5625          "capabilities" : [ "Matrix" ]
5626        },
5627        {
5628          "enumerant" : "ColMajor",
5629          "value" : 5,
5630          "capabilities" : [ "Matrix" ]
5631        },
5632        {
5633          "enumerant" : "ArrayStride",
5634          "value" : 6,
5635          "capabilities" : [ "Shader" ],
5636          "parameters" : [
5637            { "kind" : "LiteralInteger", "name" : "'Array Stride'" }
5638          ]
5639        },
5640        {
5641          "enumerant" : "MatrixStride",
5642          "value" : 7,
5643          "capabilities" : [ "Matrix" ],
5644          "parameters" : [
5645            { "kind" : "LiteralInteger", "name" : "'Matrix Stride'" }
5646          ]
5647        },
5648        {
5649          "enumerant" : "GLSLShared",
5650          "value" : 8,
5651          "capabilities" : [ "Shader" ]
5652        },
5653        {
5654          "enumerant" : "GLSLPacked",
5655          "value" : 9,
5656          "capabilities" : [ "Shader" ]
5657        },
5658        {
5659          "enumerant" : "CPacked",
5660          "value" : 10,
5661          "capabilities" : [ "Kernel" ]
5662        },
5663        {
5664          "enumerant" : "BuiltIn",
5665          "value" : 11,
5666          "parameters" : [
5667            { "kind" : "BuiltIn" }
5668          ]
5669        },
5670        {
5671          "enumerant" : "NoPerspective",
5672          "value" : 13,
5673          "capabilities" : [ "Shader" ]
5674        },
5675        {
5676          "enumerant" : "Flat",
5677          "value" : 14,
5678          "capabilities" : [ "Shader" ]
5679        },
5680        {
5681          "enumerant" : "Patch",
5682          "value" : 15,
5683          "capabilities" : [ "Tessellation" ]
5684        },
5685        {
5686          "enumerant" : "Centroid",
5687          "value" : 16,
5688          "capabilities" : [ "Shader" ]
5689        },
5690        {
5691          "enumerant" : "Sample",
5692          "value" : 17,
5693          "capabilities" : [ "SampleRateShading" ]
5694        },
5695        {
5696          "enumerant" : "Invariant",
5697          "value" : 18,
5698          "capabilities" : [ "Shader" ]
5699        },
5700        {
5701          "enumerant" : "Restrict",
5702          "value" : 19
5703        },
5704        {
5705          "enumerant" : "Aliased",
5706          "value" : 20
5707        },
5708        {
5709          "enumerant" : "Volatile",
5710          "value" : 21
5711        },
5712        {
5713          "enumerant" : "Constant",
5714          "value" : 22,
5715          "capabilities" : [ "Kernel" ]
5716        },
5717        {
5718          "enumerant" : "Coherent",
5719          "value" : 23
5720        },
5721        {
5722          "enumerant" : "NonWritable",
5723          "value" : 24
5724        },
5725        {
5726          "enumerant" : "NonReadable",
5727          "value" : 25
5728        },
5729        {
5730          "enumerant" : "Uniform",
5731          "value" : 26,
5732          "capabilities" : [ "Shader" ]
5733        },
5734        {
5735          "enumerant" : "SaturatedConversion",
5736          "value" : 28,
5737          "capabilities" : [ "Kernel" ]
5738        },
5739        {
5740          "enumerant" : "Stream",
5741          "value" : 29,
5742          "capabilities" : [ "GeometryStreams" ],
5743          "parameters" : [
5744            { "kind" : "LiteralInteger", "name" : "'Stream Number'" }
5745          ]
5746        },
5747        {
5748          "enumerant" : "Location",
5749          "value" : 30,
5750          "capabilities" : [ "Shader" ],
5751          "parameters" : [
5752            { "kind" : "LiteralInteger", "name" : "'Location'" }
5753          ]
5754        },
5755        {
5756          "enumerant" : "Component",
5757          "value" : 31,
5758          "capabilities" : [ "Shader" ],
5759          "parameters" : [
5760            { "kind" : "LiteralInteger", "name" : "'Component'" }
5761          ]
5762        },
5763        {
5764          "enumerant" : "Index",
5765          "value" : 32,
5766          "capabilities" : [ "Shader" ],
5767          "parameters" : [
5768            { "kind" : "LiteralInteger", "name" : "'Index'" }
5769          ]
5770        },
5771        {
5772          "enumerant" : "Binding",
5773          "value" : 33,
5774          "capabilities" : [ "Shader" ],
5775          "parameters" : [
5776            { "kind" : "LiteralInteger", "name" : "'Binding Point'" }
5777          ]
5778        },
5779        {
5780          "enumerant" : "DescriptorSet",
5781          "value" : 34,
5782          "capabilities" : [ "Shader" ],
5783          "parameters" : [
5784            { "kind" : "LiteralInteger", "name" : "'Descriptor Set'" }
5785          ]
5786        },
5787        {
5788          "enumerant" : "Offset",
5789          "value" : 35,
5790          "capabilities" : [ "Shader" ],
5791          "parameters" : [
5792            { "kind" : "LiteralInteger", "name" : "'Byte Offset'" }
5793          ]
5794        },
5795        {
5796          "enumerant" : "XfbBuffer",
5797          "value" : 36,
5798          "capabilities" : [ "TransformFeedback" ],
5799          "parameters" : [
5800            { "kind" : "LiteralInteger", "name" : "'XFB Buffer Number'" }
5801          ]
5802        },
5803        {
5804          "enumerant" : "XfbStride",
5805          "value" : 37,
5806          "capabilities" : [ "TransformFeedback" ],
5807          "parameters" : [
5808            { "kind" : "LiteralInteger", "name" : "'XFB Stride'" }
5809          ]
5810        },
5811        {
5812          "enumerant" : "FuncParamAttr",
5813          "value" : 38,
5814          "capabilities" : [ "Kernel" ],
5815          "parameters" : [
5816            { "kind" : "FunctionParameterAttribute", "name" : "'Function Parameter Attribute'" }
5817          ]
5818        },
5819        {
5820          "enumerant" : "FPRoundingMode",
5821          "value" : 39,
5822          "parameters" : [
5823            { "kind" : "FPRoundingMode", "name" : "'Floating-Point Rounding Mode'" }
5824          ]
5825        },
5826        {
5827          "enumerant" : "FPFastMathMode",
5828          "value" : 40,
5829          "capabilities" : [ "Kernel" ],
5830          "parameters" : [
5831            { "kind" : "FPFastMathMode", "name" : "'Fast-Math Mode'" }
5832          ]
5833        },
5834        {
5835          "enumerant" : "LinkageAttributes",
5836          "value" : 41,
5837          "capabilities" : [ "Linkage" ],
5838          "parameters" : [
5839            { "kind" : "LiteralString", "name" : "'Name'" },
5840            { "kind" : "LinkageType",   "name" : "'Linkage Type'" }
5841          ]
5842        },
5843        {
5844          "enumerant" : "NoContraction",
5845          "value" : 42,
5846          "capabilities" : [ "Shader" ]
5847        },
5848        {
5849          "enumerant" : "InputAttachmentIndex",
5850          "value" : 43,
5851          "capabilities" : [ "InputAttachment" ],
5852          "parameters" : [
5853            { "kind" : "LiteralInteger", "name" : "'Attachment Index'" }
5854          ]
5855        },
5856        {
5857          "enumerant" : "Alignment",
5858          "value" : 44,
5859          "capabilities" : [ "Kernel" ],
5860          "parameters" : [
5861            { "kind" : "LiteralInteger", "name" : "'Alignment'" }
5862          ]
5863        },
5864        {
5865          "enumerant" : "MaxByteOffset",
5866          "value" : 45,
5867          "capabilities" : [ "Addresses" ],
5868          "parameters" : [
5869            { "kind" : "LiteralInteger", "name" : "'Max Byte Offset'" }
5870          ],
5871          "version" : "1.1"
5872        },
5873        {
5874          "enumerant" : "AlignmentId",
5875          "value" : 46,
5876          "capabilities" : [ "Kernel" ],
5877          "parameters" : [
5878            { "kind" : "IdRef", "name" : "'Alignment'" }
5879          ],
5880          "version" : "1.2"
5881        },
5882        {
5883          "enumerant" : "MaxByteOffsetId",
5884          "value" : 47,
5885          "capabilities" : [ "Addresses" ],
5886          "parameters" : [
5887            { "kind" : "IdRef", "name" : "'Max Byte Offset'" }
5888          ],
5889          "version" : "1.2"
5890        },
5891        {
5892          "enumerant" : "NoSignedWrap",
5893          "value" : 4469,
5894          "extensions" : [ "SPV_KHR_no_integer_wrap_decoration" ],
5895          "version" : "None"
5896        },
5897        {
5898          "enumerant" : "NoUnsignedWrap",
5899          "value" : 4470,
5900          "extensions" : [ "SPV_KHR_no_integer_wrap_decoration" ],
5901          "version" : "None"
5902        },
5903        {
5904          "enumerant" : "ExplicitInterpAMD",
5905          "value" : 4999,
5906          "extensions" : [ "SPV_AMD_shader_explicit_vertex_parameter" ],
5907          "version" : "None"
5908        },
5909        {
5910          "enumerant" : "OverrideCoverageNV",
5911          "value" : 5248,
5912          "capabilities" : [ "SampleMaskOverrideCoverageNV" ],
5913          "extensions" : [ "SPV_NV_sample_mask_override_coverage" ],
5914          "version" : "None"
5915        },
5916        {
5917          "enumerant" : "PassthroughNV",
5918          "value" : 5250,
5919          "capabilities" : [ "GeometryShaderPassthroughNV" ],
5920          "extensions" : [ "SPV_NV_geometry_shader_passthrough" ],
5921          "version" : "None"
5922        },
5923        {
5924          "enumerant" : "ViewportRelativeNV",
5925          "value" : 5252,
5926          "capabilities" : [ "ShaderViewportMaskNV" ],
5927          "version" : "None"
5928        },
5929        {
5930          "enumerant" : "SecondaryViewportRelativeNV",
5931          "value" : 5256,
5932          "capabilities" : [ "ShaderStereoViewNV" ],
5933          "extensions" : [ "SPV_NV_stereo_view_rendering" ],
5934          "version" : "None",
5935          "parameters" : [
5936            { "kind" : "LiteralInteger", "name" : "'Offset'" }
5937          ]
5938        },
5939        {
5940          "enumerant" : "PerPrimitiveNV",
5941          "value" : 5271,
5942          "capabilities" : [ "MeshShadingNV" ],
5943          "extensions" : [ "SPV_NV_mesh_shader" ],
5944          "version" : "None"
5945        },
5946        {
5947          "enumerant" : "PerViewNV",
5948          "value" : 5272,
5949          "capabilities" : [ "MeshShadingNV" ],
5950          "extensions" : [ "SPV_NV_mesh_shader" ],
5951          "version" : "None"
5952        },
5953        {
5954          "enumerant" : "PerTaskNV",
5955          "value" : 5273,
5956          "capabilities" : [ "MeshShadingNV" ],
5957          "extensions" : [ "SPV_NV_mesh_shader" ],
5958          "version" : "None"
5959        },
5960		{
5961          "enumerant" : "PerVertexNV",
5962          "value" : 5285,
5963          "capabilities" : [ "FragmentBarycentricNV" ],
5964          "extensions" : [ "SPV_NV_fragment_shader_barycentric" ],
5965          "version" : "None"
5966        },
5967        {
5968          "enumerant" : "NonUniformEXT",
5969          "value" : 5300,
5970          "capabilities" : [ "ShaderNonUniformEXT" ]
5971        },
5972        {
5973          "enumerant" : "HlslCounterBufferGOOGLE",
5974          "value" : 5634,
5975          "parameters" : [
5976            { "kind" : "IdRef", "name" : "'Counter Buffer'" }
5977          ],
5978          "extensions" : [ "SPV_GOOGLE_hlsl_functionality1" ],
5979          "version" : "None"
5980        },
5981        {
5982          "enumerant" : "HlslSemanticGOOGLE",
5983          "value" : 5635,
5984          "parameters" : [
5985            { "kind" : "LiteralString", "name" : "'Semantic'" }
5986          ],
5987          "extensions" : [ "SPV_GOOGLE_hlsl_functionality1" ],
5988          "version" : "None"
5989        },
5990        {
5991          "enumerant" : "RestrictPointerEXT",
5992          "value" : 5355,
5993          "capabilities" : [ "PhysicalStorageBufferAddressesEXT" ],
5994          "extensions" : [ "SPV_EXT_physical_storage_buffer" ],
5995          "version" : "None"
5996        },
5997        {
5998          "enumerant" : "AliasedPointerEXT",
5999          "value" : 5356,
6000          "capabilities" : [ "PhysicalStorageBufferAddressesEXT" ],
6001          "extensions" : [ "SPV_EXT_physical_storage_buffer" ],
6002          "version" : "None"
6003        }
6004      ]
6005    },
6006    {
6007      "category" : "ValueEnum",
6008      "kind" : "BuiltIn",
6009      "enumerants" : [
6010        {
6011          "enumerant" : "Position",
6012          "value" : 0,
6013          "capabilities" : [ "Shader" ]
6014        },
6015        {
6016          "enumerant" : "PointSize",
6017          "value" : 1,
6018          "capabilities" : [ "Shader" ]
6019        },
6020        {
6021          "enumerant" : "ClipDistance",
6022          "value" : 3,
6023          "capabilities" : [ "ClipDistance" ]
6024        },
6025        {
6026          "enumerant" : "CullDistance",
6027          "value" : 4,
6028          "capabilities" : [ "CullDistance" ]
6029        },
6030        {
6031          "enumerant" : "VertexId",
6032          "value" : 5,
6033          "capabilities" : [ "Shader" ]
6034        },
6035        {
6036          "enumerant" : "InstanceId",
6037          "value" : 6,
6038          "capabilities" : [ "Shader" ]
6039        },
6040        {
6041          "enumerant" : "PrimitiveId",
6042          "value" : 7,
6043          "capabilities" : [ "Geometry", "Tessellation", "RayTracingNV" ]
6044        },
6045        {
6046          "enumerant" : "InvocationId",
6047          "value" : 8,
6048          "capabilities" : [ "Geometry", "Tessellation" ]
6049        },
6050        {
6051          "enumerant" : "Layer",
6052          "value" : 9,
6053          "capabilities" : [ "Geometry" ]
6054        },
6055        {
6056          "enumerant" : "ViewportIndex",
6057          "value" : 10,
6058          "capabilities" : [ "MultiViewport" ]
6059        },
6060        {
6061          "enumerant" : "TessLevelOuter",
6062          "value" : 11,
6063          "capabilities" : [ "Tessellation" ]
6064        },
6065        {
6066          "enumerant" : "TessLevelInner",
6067          "value" : 12,
6068          "capabilities" : [ "Tessellation" ]
6069        },
6070        {
6071          "enumerant" : "TessCoord",
6072          "value" : 13,
6073          "capabilities" : [ "Tessellation" ]
6074        },
6075        {
6076          "enumerant" : "PatchVertices",
6077          "value" : 14,
6078          "capabilities" : [ "Tessellation" ]
6079        },
6080        {
6081          "enumerant" : "FragCoord",
6082          "value" : 15,
6083          "capabilities" : [ "Shader" ]
6084        },
6085        {
6086          "enumerant" : "PointCoord",
6087          "value" : 16,
6088          "capabilities" : [ "Shader" ]
6089        },
6090        {
6091          "enumerant" : "FrontFacing",
6092          "value" : 17,
6093          "capabilities" : [ "Shader" ]
6094        },
6095        {
6096          "enumerant" : "SampleId",
6097          "value" : 18,
6098          "capabilities" : [ "SampleRateShading" ]
6099        },
6100        {
6101          "enumerant" : "SamplePosition",
6102          "value" : 19,
6103          "capabilities" : [ "SampleRateShading" ]
6104        },
6105        {
6106          "enumerant" : "SampleMask",
6107          "value" : 20,
6108          "capabilities" : [ "Shader" ]
6109        },
6110        {
6111          "enumerant" : "FragDepth",
6112          "value" : 22,
6113          "capabilities" : [ "Shader" ]
6114        },
6115        {
6116          "enumerant" : "HelperInvocation",
6117          "value" : 23,
6118          "capabilities" : [ "Shader" ]
6119        },
6120        {
6121          "enumerant" : "NumWorkgroups",
6122          "value" : 24
6123        },
6124        {
6125          "enumerant" : "WorkgroupSize",
6126          "value" : 25
6127        },
6128        {
6129          "enumerant" : "WorkgroupId",
6130          "value" : 26
6131        },
6132        {
6133          "enumerant" : "LocalInvocationId",
6134          "value" : 27
6135        },
6136        {
6137          "enumerant" : "GlobalInvocationId",
6138          "value" : 28
6139        },
6140        {
6141          "enumerant" : "LocalInvocationIndex",
6142          "value" : 29
6143        },
6144        {
6145          "enumerant" : "WorkDim",
6146          "value" : 30,
6147          "capabilities" : [ "Kernel" ]
6148        },
6149        {
6150          "enumerant" : "GlobalSize",
6151          "value" : 31,
6152          "capabilities" : [ "Kernel" ]
6153        },
6154        {
6155          "enumerant" : "EnqueuedWorkgroupSize",
6156          "value" : 32,
6157          "capabilities" : [ "Kernel" ]
6158        },
6159        {
6160          "enumerant" : "GlobalOffset",
6161          "value" : 33,
6162          "capabilities" : [ "Kernel" ]
6163        },
6164        {
6165          "enumerant" : "GlobalLinearId",
6166          "value" : 34,
6167          "capabilities" : [ "Kernel" ]
6168        },
6169        {
6170          "enumerant" : "SubgroupSize",
6171          "value" : 36,
6172          "capabilities" : [ "Kernel", "GroupNonUniform", "SubgroupBallotKHR" ]
6173        },
6174        {
6175          "enumerant" : "SubgroupMaxSize",
6176          "value" : 37,
6177          "capabilities" : [ "Kernel" ]
6178        },
6179        {
6180          "enumerant" : "NumSubgroups",
6181          "value" : 38,
6182          "capabilities" : [ "Kernel", "GroupNonUniform" ]
6183        },
6184        {
6185          "enumerant" : "NumEnqueuedSubgroups",
6186          "value" : 39,
6187          "capabilities" : [ "Kernel" ]
6188        },
6189        {
6190          "enumerant" : "SubgroupId",
6191          "value" : 40,
6192          "capabilities" : [ "Kernel", "GroupNonUniform" ]
6193        },
6194        {
6195          "enumerant" : "SubgroupLocalInvocationId",
6196          "value" : 41,
6197          "capabilities" : [ "Kernel", "GroupNonUniform", "SubgroupBallotKHR" ]
6198        },
6199        {
6200          "enumerant" : "VertexIndex",
6201          "value" : 42,
6202          "capabilities" : [ "Shader" ]
6203        },
6204        {
6205          "enumerant" : "InstanceIndex",
6206          "value" : 43,
6207          "capabilities" : [ "Shader" ]
6208        },
6209        {
6210          "enumerant" : "SubgroupEqMask",
6211          "value" : 4416,
6212          "capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
6213          "version" : "1.3"
6214        },
6215        {
6216          "enumerant" : "SubgroupGeMask",
6217          "value" : 4417,
6218          "capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
6219          "version" : "1.3"
6220        },
6221        {
6222          "enumerant" : "SubgroupGtMask",
6223          "value" : 4418,
6224          "capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
6225          "version" : "1.3"
6226        },
6227        {
6228          "enumerant" : "SubgroupLeMask",
6229          "value" : 4419,
6230          "capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
6231          "version" : "1.3"
6232        },
6233        {
6234          "enumerant" : "SubgroupLtMask",
6235          "value" : 4420,
6236          "capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
6237          "version" : "1.3"
6238        },
6239        {
6240          "enumerant" : "SubgroupEqMaskKHR",
6241          "value" : 4416,
6242          "capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
6243          "extensions" : [ "SPV_KHR_shader_ballot" ],
6244          "version" : "1.3"
6245        },
6246        {
6247          "enumerant" : "SubgroupGeMaskKHR",
6248          "value" : 4417,
6249          "capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
6250          "extensions" : [ "SPV_KHR_shader_ballot" ],
6251          "version" : "1.3"
6252        },
6253        {
6254          "enumerant" : "SubgroupGtMaskKHR",
6255          "value" : 4418,
6256          "capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
6257          "extensions" : [ "SPV_KHR_shader_ballot" ],
6258          "version" : "1.3"
6259        },
6260        {
6261          "enumerant" : "SubgroupLeMaskKHR",
6262          "value" : 4419,
6263          "capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
6264          "extensions" : [ "SPV_KHR_shader_ballot" ],
6265          "version" : "1.3"
6266        },
6267        {
6268          "enumerant" : "SubgroupLtMaskKHR",
6269          "value" : 4420,
6270          "capabilities" : [ "SubgroupBallotKHR", "GroupNonUniformBallot" ],
6271          "extensions" : [ "SPV_KHR_shader_ballot" ],
6272          "version" : "1.3"
6273        },
6274        {
6275          "enumerant" : "BaseVertex",
6276          "value" : 4424,
6277          "capabilities" : [ "DrawParameters" ],
6278          "extensions" : [ "SPV_KHR_shader_draw_parameters" ],
6279          "version" : "1.3"
6280        },
6281        {
6282          "enumerant" : "BaseInstance",
6283          "value" : 4425,
6284          "capabilities" : [ "DrawParameters" ],
6285          "extensions" : [ "SPV_KHR_shader_draw_parameters" ],
6286          "version" : "1.3"
6287        },
6288        {
6289          "enumerant" : "DrawIndex",
6290          "value" : 4426,
6291          "capabilities" : [ "DrawParameters", "MeshShadingNV" ],
6292          "extensions" : [ "SPV_KHR_shader_draw_parameters", "SPV_NV_mesh_shader" ],
6293          "version" : "1.3"
6294        },
6295        {
6296          "enumerant" : "DeviceIndex",
6297          "value" : 4438,
6298          "capabilities" : [ "DeviceGroup" ],
6299          "extensions" : [ "SPV_KHR_device_group" ],
6300          "version" : "1.3"
6301        },
6302        {
6303          "enumerant" : "ViewIndex",
6304          "value" : 4440,
6305          "capabilities" : [ "MultiView" ],
6306          "extensions" : [ "SPV_KHR_multiview" ],
6307          "version" : "1.3"
6308        },
6309        {
6310          "enumerant" : "BaryCoordNoPerspAMD",
6311          "value" : 4992,
6312          "extensions" : [ "SPV_AMD_shader_explicit_vertex_parameter" ],
6313          "version" : "None"
6314        },
6315        {
6316          "enumerant" : "BaryCoordNoPerspCentroidAMD",
6317          "value" : 4993,
6318          "extensions" : [ "SPV_AMD_shader_explicit_vertex_parameter" ],
6319          "version" : "None"
6320        },
6321        {
6322          "enumerant" : "BaryCoordNoPerspSampleAMD",
6323          "value" : 4994,
6324          "extensions" : [ "SPV_AMD_shader_explicit_vertex_parameter" ],
6325          "version" : "None"
6326        },
6327        {
6328          "enumerant" : "BaryCoordSmoothAMD",
6329          "value" : 4995,
6330          "extensions" : [ "SPV_AMD_shader_explicit_vertex_parameter" ],
6331          "version" : "None"
6332        },
6333        {
6334          "enumerant" : "BaryCoordSmoothCentroidAMD",
6335          "value" : 4996,
6336          "extensions" : [ "SPV_AMD_shader_explicit_vertex_parameter" ],
6337          "version" : "None"
6338        },
6339        {
6340          "enumerant" : "BaryCoordSmoothSampleAMD",
6341          "value" : 4997,
6342          "extensions" : [ "SPV_AMD_shader_explicit_vertex_parameter" ],
6343          "version" : "None"
6344        },
6345        {
6346          "enumerant" : "BaryCoordPullModelAMD",
6347          "value" : 4998,
6348          "extensions" : [ "SPV_AMD_shader_explicit_vertex_parameter" ],
6349          "version" : "None"
6350        },
6351        {
6352          "enumerant" : "FragStencilRefEXT",
6353          "value" : 5014,
6354          "capabilities" : [ "StencilExportEXT" ],
6355          "extensions" : [ "SPV_EXT_shader_stencil_export" ],
6356          "version" : "None"
6357        },
6358        {
6359          "enumerant" : "ViewportMaskNV",
6360          "value" : 5253,
6361          "capabilities" : [ "ShaderViewportMaskNV", "MeshShadingNV" ],
6362          "extensions" : [ "SPV_NV_viewport_array2", "SPV_NV_mesh_shader" ],
6363          "version" : "None"
6364        },
6365        {
6366          "enumerant" : "SecondaryPositionNV",
6367          "value" : 5257,
6368          "capabilities" : [ "ShaderStereoViewNV" ],
6369          "extensions" : [ "SPV_NV_stereo_view_rendering" ],
6370          "version" : "None"
6371        },
6372        {
6373          "enumerant" : "SecondaryViewportMaskNV",
6374          "value" : 5258,
6375          "capabilities" : [ "ShaderStereoViewNV" ],
6376          "extensions" : [ "SPV_NV_stereo_view_rendering" ],
6377          "version" : "None"
6378        },
6379        {
6380          "enumerant" : "PositionPerViewNV",
6381          "value" : 5261,
6382          "capabilities" : [ "PerViewAttributesNV", "MeshShadingNV" ],
6383          "extensions" : [ "SPV_NVX_multiview_per_view_attributes", "SPV_NV_mesh_shader" ],
6384          "version" : "None"
6385        },
6386        {
6387          "enumerant" : "ViewportMaskPerViewNV",
6388          "value" : 5262,
6389          "capabilities" : [ "PerViewAttributesNV", "MeshShadingNV" ],
6390          "extensions" : [ "SPV_NVX_multiview_per_view_attributes", "SPV_NV_mesh_shader" ],
6391          "version" : "None"
6392        },
6393        {
6394          "enumerant" : "FullyCoveredEXT",
6395          "value" : 5264,
6396          "capabilities" : [ "FragmentFullyCoveredEXT" ],
6397          "extensions" : [ "SPV_EXT_fragment_fully_covered" ],
6398          "version" : "None"
6399        },
6400        {
6401          "enumerant" : "TaskCountNV",
6402          "value" : 5274,
6403          "capabilities" : [ "MeshShadingNV" ],
6404          "extensions" : [ "SPV_NV_mesh_shader" ],
6405          "version" : "None"
6406        },
6407        {
6408          "enumerant" : "PrimitiveCountNV",
6409          "value" : 5275,
6410          "capabilities" : [ "MeshShadingNV" ],
6411          "extensions" : [ "SPV_NV_mesh_shader" ],
6412          "version" : "None"
6413        },
6414        {
6415          "enumerant" : "PrimitiveIndicesNV",
6416          "value" : 5276,
6417          "capabilities" : [ "MeshShadingNV" ],
6418          "extensions" : [ "SPV_NV_mesh_shader" ],
6419          "version" : "None"
6420        },
6421        {
6422          "enumerant" : "ClipDistancePerViewNV",
6423          "value" : 5277,
6424          "capabilities" : [ "MeshShadingNV" ],
6425          "extensions" : [ "SPV_NV_mesh_shader" ],
6426          "version" : "None"
6427        },
6428        {
6429          "enumerant" : "CullDistancePerViewNV",
6430          "value" : 5278,
6431          "capabilities" : [ "MeshShadingNV" ],
6432          "extensions" : [ "SPV_NV_mesh_shader" ],
6433          "version" : "None"
6434        },
6435        {
6436          "enumerant" : "LayerPerViewNV",
6437          "value" : 5279,
6438          "capabilities" : [ "MeshShadingNV" ],
6439          "extensions" : [ "SPV_NV_mesh_shader" ],
6440          "version" : "None"
6441        },
6442        {
6443          "enumerant" : "MeshViewCountNV",
6444          "value" : 5280,
6445          "capabilities" : [ "MeshShadingNV" ],
6446          "extensions" : [ "SPV_NV_mesh_shader" ],
6447          "version" : "None"
6448        },
6449        {
6450          "enumerant" : "MeshViewIndicesNV",
6451          "value" : 5281,
6452          "capabilities" : [ "MeshShadingNV" ],
6453          "extensions" : [ "SPV_NV_mesh_shader" ],
6454          "version" : "None"
6455        },
6456        {
6457          "enumerant" : "BaryCoordNV",
6458          "value" : 5286,
6459          "capabilities" : [ "FragmentBarycentricNV" ],
6460          "extensions" : [ "SPV_NV_fragment_shader_barycentric" ],
6461          "version" : "None"
6462        },
6463        {
6464          "enumerant" : "BaryCoordNoPerspNV",
6465          "value" : 5287,
6466          "capabilities" : [ "FragmentBarycentricNV" ],
6467          "extensions" : [ "SPV_NV_fragment_shader_barycentric" ],
6468          "version" : "None"
6469        },
6470        {
6471          "enumerant" : "FragSizeEXT",
6472          "value" : 5292 ,
6473          "capabilities" : [ "FragmentDensityEXT", "ShadingRateNV" ],
6474          "extensions" : [ "SPV_EXT_fragment_invocation_density", "SPV_NV_shading_rate" ],
6475          "version" : "None"
6476        },
6477        {
6478          "enumerant" : "FragmentSizeNV",
6479          "value" : 5292 ,
6480          "capabilities" : [ "ShadingRateNV", "FragmentDensityEXT" ],
6481          "extensions" : [ "SPV_NV_shading_rate", "SPV_EXT_fragment_invocation_density" ],
6482          "version" : "None"
6483        },
6484        {
6485          "enumerant" : "FragInvocationCountEXT",
6486          "value" : 5293,
6487          "capabilities" : [ "FragmentDensityEXT", "ShadingRateNV" ],
6488          "extensions" : [ "SPV_EXT_fragment_invocation_density", "SPV_NV_shading_rate" ],
6489          "version" : "None"
6490        },
6491        {
6492          "enumerant" : "InvocationsPerPixelNV",
6493          "value" : 5293,
6494          "capabilities" : [ "ShadingRateNV", "FragmentDensityEXT" ],
6495          "extensions" : [ "SPV_NV_shading_rate", "SPV_EXT_fragment_invocation_density" ],
6496          "version" : "None"
6497        },
6498        {
6499          "enumerant" : "LaunchIdNV",
6500          "value" : 5319,
6501          "capabilities" : [ "RayTracingNV" ],
6502          "extensions" : [ "SPV_NV_ray_tracing" ]
6503        },
6504        {
6505          "enumerant" : "LaunchSizeNV",
6506          "value" : 5320,
6507          "capabilities" : [ "RayTracingNV" ],
6508          "extensions" : [ "SPV_NV_ray_tracing" ]
6509        },
6510        {
6511          "enumerant" : "WorldRayOriginNV",
6512          "value" : 5321,
6513          "capabilities" : [ "RayTracingNV" ],
6514          "extensions" : [ "SPV_NV_ray_tracing" ]
6515        },
6516        {
6517          "enumerant" : "WorldRayDirectionNV",
6518          "value" : 5322,
6519          "capabilities" : [ "RayTracingNV" ],
6520          "extensions" : [ "SPV_NV_ray_tracing" ]
6521        },
6522        {
6523          "enumerant" : "ObjectRayOriginNV",
6524          "value" : 5323,
6525          "capabilities" : [ "RayTracingNV" ],
6526          "extensions" : [ "SPV_NV_ray_tracing" ]
6527        },
6528        {
6529          "enumerant" : "ObjectRayDirectionNV",
6530          "value" : 5324,
6531          "capabilities" : [ "RayTracingNV" ],
6532          "extensions" : [ "SPV_NV_ray_tracing" ]
6533        },
6534        {
6535          "enumerant" : "RayTminNV",
6536          "value" : 5325,
6537          "capabilities" : [ "RayTracingNV" ],
6538          "extensions" : [ "SPV_NV_ray_tracing" ]
6539        },
6540        {
6541          "enumerant" : "RayTmaxNV",
6542          "value" : 5326,
6543          "capabilities" : [ "RayTracingNV" ],
6544          "extensions" : [ "SPV_NV_ray_tracing" ]
6545        },
6546        {
6547          "enumerant" : "InstanceCustomIndexNV",
6548          "value" : 5327,
6549          "capabilities" : [ "RayTracingNV" ],
6550          "extensions" : [ "SPV_NV_ray_tracing" ]
6551        },
6552        {
6553          "enumerant" : "ObjectToWorldNV",
6554          "value" : 5330,
6555          "capabilities" : [ "RayTracingNV" ],
6556          "extensions" : [ "SPV_NV_ray_tracing" ]
6557        },
6558        {
6559          "enumerant" : "WorldToObjectNV",
6560          "value" : 5331,
6561          "capabilities" : [ "RayTracingNV" ],
6562          "extensions" : [ "SPV_NV_ray_tracing" ]
6563        },
6564        {
6565          "enumerant" : "HitTNV",
6566          "value" : 5332,
6567          "capabilities" : [ "RayTracingNV" ],
6568          "extensions" : [ "SPV_NV_ray_tracing" ]
6569        },
6570        {
6571          "enumerant" : "HitKindNV",
6572          "value" : 5333,
6573          "capabilities" : [ "RayTracingNV" ],
6574          "extensions" : [ "SPV_NV_ray_tracing" ]
6575        },
6576        {
6577          "enumerant" : "IncomingRayFlagsNV",
6578          "value" : 5351,
6579          "capabilities" : [ "RayTracingNV" ],
6580          "extensions" : [ "SPV_NV_ray_tracing" ]
6581        }
6582      ]
6583    },
6584    {
6585      "category" : "ValueEnum",
6586      "kind" : "Scope",
6587      "enumerants" : [
6588        {
6589          "enumerant" : "CrossDevice",
6590          "value" : 0
6591        },
6592        {
6593          "enumerant" : "Device",
6594          "value" : 1
6595        },
6596        {
6597          "enumerant" : "Workgroup",
6598          "value" : 2
6599        },
6600        {
6601          "enumerant" : "Subgroup",
6602          "value" : 3
6603        },
6604        {
6605          "enumerant" : "Invocation",
6606          "value" : 4
6607        },
6608        {
6609          "enumerant" : "QueueFamilyKHR",
6610          "value" : 5,
6611          "capabilities" : [ "VulkanMemoryModelKHR" ]
6612        }
6613      ]
6614    },
6615    {
6616      "category" : "ValueEnum",
6617      "kind" : "GroupOperation",
6618      "enumerants" : [
6619        {
6620          "enumerant" : "Reduce",
6621          "value" : 0,
6622          "capabilities" : [ "Kernel", "GroupNonUniformArithmetic", "GroupNonUniformBallot" ]
6623        },
6624        {
6625          "enumerant" : "InclusiveScan",
6626          "value" : 1,
6627          "capabilities" : [ "Kernel", "GroupNonUniformArithmetic", "GroupNonUniformBallot" ]
6628        },
6629        {
6630          "enumerant" : "ExclusiveScan",
6631          "value" : 2,
6632          "capabilities" : [ "Kernel", "GroupNonUniformArithmetic", "GroupNonUniformBallot" ]
6633        },
6634        {
6635          "enumerant" : "ClusteredReduce",
6636          "value" : 3,
6637          "capabilities" : [ "GroupNonUniformClustered" ],
6638          "version" : "1.3"
6639        },
6640        {
6641          "enumerant" : "PartitionedReduceNV",
6642          "value" : 6,
6643          "capabilities" : [ "GroupNonUniformPartitionedNV" ],
6644          "extensions" : [ "SPV_NV_shader_subgroup_partitioned" ],
6645          "version" : "None"
6646        },
6647        {
6648          "enumerant" : "PartitionedInclusiveScanNV",
6649          "value" : 7,
6650          "capabilities" : [ "GroupNonUniformPartitionedNV" ],
6651          "extensions" : [ "SPV_NV_shader_subgroup_partitioned" ],
6652          "version" : "None"
6653        },
6654        {
6655          "enumerant" : "PartitionedExclusiveScanNV",
6656          "value" : 8,
6657          "capabilities" : [ "GroupNonUniformPartitionedNV" ],
6658          "extensions" : [ "SPV_NV_shader_subgroup_partitioned" ],
6659          "version" : "None"
6660        }
6661      ]
6662    },
6663    {
6664      "category" : "ValueEnum",
6665      "kind" : "KernelEnqueueFlags",
6666      "enumerants" : [
6667        {
6668          "enumerant" : "NoWait",
6669          "value" : 0,
6670          "capabilities" : [ "Kernel" ]
6671        },
6672        {
6673          "enumerant" : "WaitKernel",
6674          "value" : 1,
6675          "capabilities" : [ "Kernel" ]
6676        },
6677        {
6678          "enumerant" : "WaitWorkGroup",
6679          "value" : 2,
6680          "capabilities" : [ "Kernel" ]
6681        }
6682      ]
6683    },
6684    {
6685      "category" : "ValueEnum",
6686      "kind" : "Capability",
6687      "enumerants" : [
6688        {
6689          "enumerant" : "Matrix",
6690          "value" : 0
6691        },
6692        {
6693          "enumerant" : "Shader",
6694          "value" : 1,
6695          "capabilities" : [ "Matrix" ]
6696        },
6697        {
6698          "enumerant" : "Geometry",
6699          "value" : 2,
6700          "capabilities" : [ "Shader" ]
6701        },
6702        {
6703          "enumerant" : "Tessellation",
6704          "value" : 3,
6705          "capabilities" : [ "Shader" ]
6706        },
6707        {
6708          "enumerant" : "Addresses",
6709          "value" : 4
6710        },
6711        {
6712          "enumerant" : "Linkage",
6713          "value" : 5
6714        },
6715        {
6716          "enumerant" : "Kernel",
6717          "value" : 6
6718        },
6719        {
6720          "enumerant" : "Vector16",
6721          "value" : 7,
6722          "capabilities" : [ "Kernel" ]
6723        },
6724        {
6725          "enumerant" : "Float16Buffer",
6726          "value" : 8,
6727          "capabilities" : [ "Kernel" ]
6728        },
6729        {
6730          "enumerant" : "Float16",
6731          "value" : 9
6732        },
6733        {
6734          "enumerant" : "Float64",
6735          "value" : 10
6736        },
6737        {
6738          "enumerant" : "Int64",
6739          "value" : 11
6740        },
6741        {
6742          "enumerant" : "Int64Atomics",
6743          "value" : 12,
6744          "capabilities" : [ "Int64" ]
6745        },
6746        {
6747          "enumerant" : "ImageBasic",
6748          "value" : 13,
6749          "capabilities" : [ "Kernel" ]
6750        },
6751        {
6752          "enumerant" : "ImageReadWrite",
6753          "value" : 14,
6754          "capabilities" : [ "ImageBasic" ]
6755        },
6756        {
6757          "enumerant" : "ImageMipmap",
6758          "value" : 15,
6759          "capabilities" : [ "ImageBasic" ]
6760        },
6761        {
6762          "enumerant" : "Pipes",
6763          "value" : 17,
6764          "capabilities" : [ "Kernel" ]
6765        },
6766        {
6767          "enumerant" : "Groups",
6768          "value" : 18
6769        },
6770        {
6771          "enumerant" : "DeviceEnqueue",
6772          "value" : 19,
6773          "capabilities" : [ "Kernel" ]
6774        },
6775        {
6776          "enumerant" : "LiteralSampler",
6777          "value" : 20,
6778          "capabilities" : [ "Kernel" ]
6779        },
6780        {
6781          "enumerant" : "AtomicStorage",
6782          "value" : 21,
6783          "capabilities" : [ "Shader" ]
6784        },
6785        {
6786          "enumerant" : "Int16",
6787          "value" : 22
6788        },
6789        {
6790          "enumerant" : "TessellationPointSize",
6791          "value" : 23,
6792          "capabilities" : [ "Tessellation" ]
6793        },
6794        {
6795          "enumerant" : "GeometryPointSize",
6796          "value" : 24,
6797          "capabilities" : [ "Geometry" ]
6798        },
6799        {
6800          "enumerant" : "ImageGatherExtended",
6801          "value" : 25,
6802          "capabilities" : [ "Shader" ]
6803        },
6804        {
6805          "enumerant" : "StorageImageMultisample",
6806          "value" : 27,
6807          "capabilities" : [ "Shader" ]
6808        },
6809        {
6810          "enumerant" : "UniformBufferArrayDynamicIndexing",
6811          "value" : 28,
6812          "capabilities" : [ "Shader" ]
6813        },
6814        {
6815          "enumerant" : "SampledImageArrayDynamicIndexing",
6816          "value" : 29,
6817          "capabilities" : [ "Shader" ]
6818        },
6819        {
6820          "enumerant" : "StorageBufferArrayDynamicIndexing",
6821          "value" : 30,
6822          "capabilities" : [ "Shader" ]
6823        },
6824        {
6825          "enumerant" : "StorageImageArrayDynamicIndexing",
6826          "value" : 31,
6827          "capabilities" : [ "Shader" ]
6828        },
6829        {
6830          "enumerant" : "ClipDistance",
6831          "value" : 32,
6832          "capabilities" : [ "Shader" ]
6833        },
6834        {
6835          "enumerant" : "CullDistance",
6836          "value" : 33,
6837          "capabilities" : [ "Shader" ]
6838        },
6839        {
6840          "enumerant" : "ImageCubeArray",
6841          "value" : 34,
6842          "capabilities" : [ "SampledCubeArray" ]
6843        },
6844        {
6845          "enumerant" : "SampleRateShading",
6846          "value" : 35,
6847          "capabilities" : [ "Shader" ]
6848        },
6849        {
6850          "enumerant" : "ImageRect",
6851          "value" : 36,
6852          "capabilities" : [ "SampledRect" ]
6853        },
6854        {
6855          "enumerant" : "SampledRect",
6856          "value" : 37,
6857          "capabilities" : [ "Shader" ]
6858        },
6859        {
6860          "enumerant" : "GenericPointer",
6861          "value" : 38,
6862          "capabilities" : [ "Addresses" ]
6863        },
6864        {
6865          "enumerant" : "Int8",
6866          "value" : 39
6867        },
6868        {
6869          "enumerant" : "InputAttachment",
6870          "value" : 40,
6871          "capabilities" : [ "Shader" ]
6872        },
6873        {
6874          "enumerant" : "SparseResidency",
6875          "value" : 41,
6876          "capabilities" : [ "Shader" ]
6877        },
6878        {
6879          "enumerant" : "MinLod",
6880          "value" : 42,
6881          "capabilities" : [ "Shader" ]
6882        },
6883        {
6884          "enumerant" : "Sampled1D",
6885          "value" : 43
6886        },
6887        {
6888          "enumerant" : "Image1D",
6889          "value" : 44,
6890          "capabilities" : [ "Sampled1D" ]
6891        },
6892        {
6893          "enumerant" : "SampledCubeArray",
6894          "value" : 45,
6895          "capabilities" : [ "Shader" ]
6896        },
6897        {
6898          "enumerant" : "SampledBuffer",
6899          "value" : 46
6900        },
6901        {
6902          "enumerant" : "ImageBuffer",
6903          "value" : 47,
6904          "capabilities" : [ "SampledBuffer" ]
6905        },
6906        {
6907          "enumerant" : "ImageMSArray",
6908          "value" : 48,
6909          "capabilities" : [ "Shader" ]
6910        },
6911        {
6912          "enumerant" : "StorageImageExtendedFormats",
6913          "value" : 49,
6914          "capabilities" : [ "Shader" ]
6915        },
6916        {
6917          "enumerant" : "ImageQuery",
6918          "value" : 50,
6919          "capabilities" : [ "Shader" ]
6920        },
6921        {
6922          "enumerant" : "DerivativeControl",
6923          "value" : 51,
6924          "capabilities" : [ "Shader" ]
6925        },
6926        {
6927          "enumerant" : "InterpolationFunction",
6928          "value" : 52,
6929          "capabilities" : [ "Shader" ]
6930        },
6931        {
6932          "enumerant" : "TransformFeedback",
6933          "value" : 53,
6934          "capabilities" : [ "Shader" ]
6935        },
6936        {
6937          "enumerant" : "GeometryStreams",
6938          "value" : 54,
6939          "capabilities" : [ "Geometry" ]
6940        },
6941        {
6942          "enumerant" : "StorageImageReadWithoutFormat",
6943          "value" : 55,
6944          "capabilities" : [ "Shader" ]
6945        },
6946        {
6947          "enumerant" : "StorageImageWriteWithoutFormat",
6948          "value" : 56,
6949          "capabilities" : [ "Shader" ]
6950        },
6951        {
6952          "enumerant" : "MultiViewport",
6953          "value" : 57,
6954          "capabilities" : [ "Geometry" ]
6955        },
6956        {
6957          "enumerant" : "SubgroupDispatch",
6958          "value" : 58,
6959          "capabilities" : [ "DeviceEnqueue" ],
6960          "version" : "1.1"
6961        },
6962        {
6963          "enumerant" : "NamedBarrier",
6964          "value" : 59,
6965          "capabilities" : [ "Kernel" ],
6966          "version" : "1.1"
6967        },
6968        {
6969          "enumerant" : "PipeStorage",
6970          "value" : 60,
6971          "capabilities" : [ "Pipes" ],
6972          "version" : "1.1"
6973        },
6974        {
6975          "enumerant" : "GroupNonUniform",
6976          "value" : 61,
6977          "version" : "1.3"
6978        },
6979        {
6980          "enumerant" : "GroupNonUniformVote",
6981          "value" : 62,
6982          "capabilities" : [ "GroupNonUniform" ],
6983          "version" : "1.3"
6984        },
6985        {
6986          "enumerant" : "GroupNonUniformArithmetic",
6987          "value" : 63,
6988          "capabilities" : [ "GroupNonUniform" ],
6989          "version" : "1.3"
6990        },
6991        {
6992          "enumerant" : "GroupNonUniformBallot",
6993          "value" : 64,
6994          "capabilities" : [ "GroupNonUniform" ],
6995          "version" : "1.3"
6996        },
6997        {
6998          "enumerant" : "GroupNonUniformShuffle",
6999          "value" : 65,
7000          "capabilities" : [ "GroupNonUniform" ],
7001          "version" : "1.3"
7002        },
7003        {
7004          "enumerant" : "GroupNonUniformShuffleRelative",
7005          "value" : 66,
7006          "capabilities" : [ "GroupNonUniform" ],
7007          "version" : "1.3"
7008        },
7009        {
7010          "enumerant" : "GroupNonUniformClustered",
7011          "value" : 67,
7012          "capabilities" : [ "GroupNonUniform" ],
7013          "version" : "1.3"
7014        },
7015        {
7016          "enumerant" : "GroupNonUniformQuad",
7017          "value" : 68,
7018          "capabilities" : [ "GroupNonUniform" ],
7019          "version" : "1.3"
7020        },
7021        {
7022          "enumerant" : "SubgroupBallotKHR",
7023          "value" : 4423,
7024          "extensions" : [ "SPV_KHR_shader_ballot" ],
7025          "version" : "None"
7026        },
7027        {
7028          "enumerant" : "DrawParameters",
7029          "value" : 4427,
7030          "capabilities" : [ "Shader" ],
7031          "extensions" : [ "SPV_KHR_shader_draw_parameters" ],
7032          "version" : "1.3"
7033        },
7034        {
7035          "enumerant" : "SubgroupVoteKHR",
7036          "value" : 4431,
7037          "extensions" : [ "SPV_KHR_subgroup_vote" ],
7038          "version" : "None"
7039        },
7040        {
7041          "enumerant" : "StorageBuffer16BitAccess",
7042          "value" : 4433,
7043          "extensions" : [ "SPV_KHR_16bit_storage" ],
7044          "version" : "1.3"
7045        },
7046        {
7047          "enumerant" : "StorageUniformBufferBlock16",
7048          "value" : 4433,
7049          "extensions" : [ "SPV_KHR_16bit_storage" ],
7050          "version" : "1.3"
7051        },
7052        {
7053          "enumerant" : "UniformAndStorageBuffer16BitAccess",
7054          "value" : 4434,
7055          "capabilities" : [
7056            "StorageBuffer16BitAccess",
7057            "StorageUniformBufferBlock16"
7058          ],
7059          "extensions" : [ "SPV_KHR_16bit_storage" ],
7060          "version" : "1.3"
7061        },
7062        {
7063          "enumerant" : "StorageUniform16",
7064          "value" : 4434,
7065          "capabilities" : [
7066            "StorageBuffer16BitAccess",
7067            "StorageUniformBufferBlock16"
7068          ],
7069          "extensions" : [ "SPV_KHR_16bit_storage" ],
7070          "version" : "1.3"
7071        },
7072        {
7073          "enumerant" : "StoragePushConstant16",
7074          "value" : 4435,
7075          "extensions" : [ "SPV_KHR_16bit_storage" ],
7076          "version" : "1.3"
7077        },
7078        {
7079          "enumerant" : "StorageInputOutput16",
7080          "value" : 4436,
7081          "extensions" : [ "SPV_KHR_16bit_storage" ],
7082          "version" : "1.3"
7083        },
7084        {
7085          "enumerant" : "DeviceGroup",
7086          "value" : 4437,
7087          "extensions" : [ "SPV_KHR_device_group" ],
7088          "version" : "1.3"
7089        },
7090        {
7091          "enumerant" : "MultiView",
7092          "value" : 4439,
7093          "capabilities" : [ "Shader" ],
7094          "extensions" : [ "SPV_KHR_multiview" ],
7095          "version" : "1.3"
7096        },
7097        {
7098          "enumerant" : "VariablePointersStorageBuffer",
7099          "value" : 4441,
7100          "capabilities" : [ "Shader" ],
7101          "extensions" : [ "SPV_KHR_variable_pointers" ],
7102          "version" : "1.3"
7103        },
7104        {
7105          "enumerant" : "VariablePointers",
7106          "value" : 4442,
7107          "capabilities" : [ "VariablePointersStorageBuffer" ],
7108          "extensions" : [ "SPV_KHR_variable_pointers" ],
7109          "version" : "1.3"
7110        },
7111        {
7112          "enumerant" : "AtomicStorageOps",
7113          "value" : 4445,
7114          "extensions" : [ "SPV_KHR_shader_atomic_counter_ops" ],
7115          "version" : "None"
7116        },
7117        {
7118          "enumerant" : "SampleMaskPostDepthCoverage",
7119          "value" : 4447,
7120          "extensions" : [ "SPV_KHR_post_depth_coverage" ],
7121          "version" : "None"
7122        },
7123        {
7124          "enumerant" : "StorageBuffer8BitAccess",
7125          "value" : 4448,
7126          "extensions" : [ "SPV_KHR_8bit_storage" ],
7127          "version" : "None"
7128        },
7129        {
7130          "enumerant" : "UniformAndStorageBuffer8BitAccess",
7131          "value" : 4449,
7132          "capabilities" : [ "StorageBuffer8BitAccess" ],
7133          "extensions" : [ "SPV_KHR_8bit_storage" ],
7134          "version" : "None"
7135        },
7136        {
7137          "enumerant" : "StoragePushConstant8",
7138          "value" : 4450,
7139          "extensions" : [ "SPV_KHR_8bit_storage" ],
7140          "version" : "None"
7141        },
7142        {
7143          "enumerant" : "DenormPreserve",
7144          "value" : 4464,
7145          "extensions" : [ "SPV_KHR_float_controls" ],
7146          "version" : "None"
7147        },
7148        {
7149          "enumerant" : "DenormFlushToZero",
7150          "value" : 4465,
7151          "extensions" : [ "SPV_KHR_float_controls" ],
7152          "version" : "None"
7153        },
7154        {
7155          "enumerant" : "SignedZeroInfNanPreserve",
7156          "value" : 4466,
7157          "extensions" : [ "SPV_KHR_float_controls" ],
7158          "version" : "None"
7159        },
7160        {
7161          "enumerant" : "RoundingModeRTE",
7162          "value" : 4467,
7163          "extensions" : [ "SPV_KHR_float_controls" ],
7164          "version" : "None"
7165        },
7166        {
7167          "enumerant" : "RoundingModeRTZ",
7168          "value" : 4468,
7169          "extensions" : [ "SPV_KHR_float_controls" ],
7170          "version" : "None"
7171        },
7172        {
7173          "enumerant" : "Float16ImageAMD",
7174          "value" : 5008,
7175          "capabilities" : [ "Shader" ],
7176          "extensions" : [ "SPV_AMD_gpu_shader_half_float_fetch" ],
7177          "version" : "None"
7178        },
7179        {
7180          "enumerant" : "ImageGatherBiasLodAMD",
7181          "value" : 5009,
7182          "capabilities" : [ "Shader" ],
7183          "extensions" : [ "SPV_AMD_texture_gather_bias_lod" ],
7184          "version" : "None"
7185        },
7186        {
7187          "enumerant" : "FragmentMaskAMD",
7188          "value" : 5010,
7189          "capabilities" : [ "Shader" ],
7190          "extensions" : [ "SPV_AMD_shader_fragment_mask" ],
7191          "version" : "None"
7192        },
7193        {
7194          "enumerant" : "StencilExportEXT",
7195          "value" : 5013,
7196          "capabilities" : [ "Shader" ],
7197          "extensions" : [ "SPV_EXT_shader_stencil_export" ],
7198          "version" : "None"
7199        },
7200        {
7201          "enumerant" : "ImageReadWriteLodAMD",
7202          "value" : 5015,
7203          "capabilities" : [ "Shader" ],
7204          "extensions" : [ "SPV_AMD_shader_image_load_store_lod" ],
7205          "version" : "None"
7206        },
7207        {
7208          "enumerant" : "SampleMaskOverrideCoverageNV",
7209          "value" : 5249,
7210          "capabilities" : [ "SampleRateShading" ],
7211          "extensions" : [ "SPV_NV_sample_mask_override_coverage" ],
7212          "version" : "None"
7213        },
7214        {
7215          "enumerant" : "GeometryShaderPassthroughNV",
7216          "value" : 5251,
7217          "capabilities" : [ "Geometry" ],
7218          "extensions" : [ "SPV_NV_geometry_shader_passthrough" ],
7219          "version" : "None"
7220        },
7221        {
7222          "enumerant" : "ShaderViewportIndexLayerEXT",
7223          "value" : 5254,
7224          "capabilities" : [ "MultiViewport" ],
7225          "extensions" : [ "SPV_EXT_shader_viewport_index_layer" ],
7226          "version" : "None"
7227        },
7228        {
7229          "enumerant" : "ShaderViewportIndexLayerNV",
7230          "value" : 5254,
7231          "capabilities" : [ "MultiViewport" ],
7232          "extensions" : [ "SPV_NV_viewport_array2" ],
7233          "version" : "None"
7234        },
7235        {
7236          "enumerant" : "ShaderViewportMaskNV",
7237          "value" : 5255,
7238          "capabilities" : [ "ShaderViewportIndexLayerNV" ],
7239          "extensions" : [ "SPV_NV_viewport_array2" ],
7240          "version" : "None"
7241        },
7242        {
7243          "enumerant" : "ShaderStereoViewNV",
7244          "value" : 5259,
7245          "capabilities" : [ "ShaderViewportMaskNV" ],
7246          "extensions" : [ "SPV_NV_stereo_view_rendering" ],
7247          "version" : "None"
7248        },
7249        {
7250          "enumerant" : "PerViewAttributesNV",
7251          "value" : 5260,
7252          "capabilities" : [ "MultiView" ],
7253          "extensions" : [ "SPV_NVX_multiview_per_view_attributes" ],
7254          "version" : "None"
7255        },
7256        {
7257          "enumerant" : "FragmentFullyCoveredEXT",
7258          "value" : 5265,
7259          "capabilities" : [ "Shader" ],
7260          "extensions" : [ "SPV_EXT_fragment_fully_covered" ],
7261          "version" : "None"
7262        },
7263        {
7264          "enumerant" : "MeshShadingNV",
7265          "value" : 5266,
7266          "capabilities" : [ "Shader" ],
7267          "extensions" : [ "SPV_NV_mesh_shader" ],
7268          "version" : "None"
7269        },
7270        {
7271          "enumerant" : "ShaderNonUniformEXT",
7272          "value" : 5301,
7273          "capabilities" : [ "Shader" ],
7274          "extensions" : [ "SPV_EXT_descriptor_indexing" ],
7275          "version" : "None"
7276        },
7277        {
7278          "enumerant" : "RuntimeDescriptorArrayEXT",
7279          "value" : 5302,
7280          "capabilities" : [ "Shader" ],
7281          "extensions" : [ "SPV_EXT_descriptor_indexing" ],
7282          "version" : "None"
7283        },
7284        {
7285          "enumerant" : "InputAttachmentArrayDynamicIndexingEXT",
7286          "value" : 5303,
7287          "capabilities" : [ "InputAttachment" ],
7288          "extensions" : [ "SPV_EXT_descriptor_indexing" ],
7289          "version" : "None"
7290        },
7291        {
7292          "enumerant" : "UniformTexelBufferArrayDynamicIndexingEXT",
7293          "value" : 5304,
7294          "capabilities" : [ "SampledBuffer" ],
7295          "extensions" : [ "SPV_EXT_descriptor_indexing" ],
7296          "version" : "None"
7297        },
7298        {
7299          "enumerant" : "StorageTexelBufferArrayDynamicIndexingEXT",
7300          "value" : 5305,
7301          "capabilities" : [ "ImageBuffer" ],
7302          "extensions" : [ "SPV_EXT_descriptor_indexing" ],
7303          "version" : "None"
7304        },
7305        {
7306          "enumerant" : "UniformBufferArrayNonUniformIndexingEXT",
7307          "value" : 5306,
7308          "capabilities" : [ "ShaderNonUniformEXT" ],
7309          "extensions" : [ "SPV_EXT_descriptor_indexing" ],
7310          "version" : "None"
7311        },
7312        {
7313          "enumerant" : "SampledImageArrayNonUniformIndexingEXT",
7314          "value" : 5307,
7315          "capabilities" : [ "ShaderNonUniformEXT" ],
7316          "extensions" : [ "SPV_EXT_descriptor_indexing" ],
7317          "version" : "None"
7318        },
7319        {
7320          "enumerant" : "StorageBufferArrayNonUniformIndexingEXT",
7321          "value" : 5308,
7322          "capabilities" : [ "ShaderNonUniformEXT" ],
7323          "extensions" : [ "SPV_EXT_descriptor_indexing" ],
7324          "version" : "None"
7325        },
7326        {
7327          "enumerant" : "StorageImageArrayNonUniformIndexingEXT",
7328          "value" : 5309,
7329          "capabilities" : [ "ShaderNonUniformEXT" ],
7330          "extensions" : [ "SPV_EXT_descriptor_indexing" ],
7331          "version" : "None"
7332        },
7333        {
7334          "enumerant" : "InputAttachmentArrayNonUniformIndexingEXT",
7335          "value" : 5310,
7336          "capabilities" : [ "InputAttachment", "ShaderNonUniformEXT" ],
7337          "extensions" : [ "SPV_EXT_descriptor_indexing" ],
7338          "version" : "None"
7339        },
7340        {
7341          "enumerant" : "UniformTexelBufferArrayNonUniformIndexingEXT",
7342          "value" : 5311,
7343          "capabilities" : [ "SampledBuffer", "ShaderNonUniformEXT" ],
7344          "extensions" : [ "SPV_EXT_descriptor_indexing" ],
7345          "version" : "None"
7346        },
7347        {
7348          "enumerant" : "StorageTexelBufferArrayNonUniformIndexingEXT",
7349          "value" : 5312,
7350          "capabilities" : [ "ImageBuffer", "ShaderNonUniformEXT" ],
7351          "extensions" : [ "SPV_EXT_descriptor_indexing" ],
7352          "version" : "None"
7353        },
7354        {
7355          "enumerant" : "RayTracingNV",
7356          "value" : 5340,
7357          "capabilities" : [ "Shader" ],
7358          "extensions" : [ "SPV_NV_ray_tracing" ],
7359          "version" : "None"
7360        },
7361        {
7362          "enumerant" : "SubgroupShuffleINTEL",
7363          "value" : 5568,
7364          "extensions" : [ "SPV_INTEL_subgroups" ],
7365          "version" : "None"
7366        },
7367        {
7368          "enumerant" : "SubgroupBufferBlockIOINTEL",
7369          "value" : 5569,
7370          "extensions" : [ "SPV_INTEL_subgroups" ],
7371          "version" : "None"
7372        },
7373        {
7374          "enumerant" : "SubgroupImageBlockIOINTEL",
7375          "value" : 5570,
7376          "extensions" : [ "SPV_INTEL_subgroups" ],
7377          "version" : "None"
7378        },
7379        {
7380          "enumerant" : "GroupNonUniformPartitionedNV",
7381          "value" : 5297,
7382          "extensions" : [ "SPV_NV_shader_subgroup_partitioned" ],
7383          "version" : "None"
7384        },
7385        {
7386          "enumerant" : "VulkanMemoryModelKHR",
7387          "value" : 5345,
7388          "extensions" : [ "SPV_KHR_vulkan_memory_model" ],
7389          "version" : "None"
7390        },
7391        {
7392          "enumerant" : "VulkanMemoryModelDeviceScopeKHR",
7393          "value" : 5346,
7394          "extensions" : [ "SPV_KHR_vulkan_memory_model" ],
7395          "version" : "None"
7396        },
7397        {
7398          "enumerant" : "ImageFootprintNV",
7399          "value" : 5282,
7400          "extensions" : [ "SPV_NV_shader_image_footprint" ],
7401          "version" : "None"
7402        },
7403        {
7404          "enumerant" : "FragmentBarycentricNV",
7405          "value" : 5284,
7406          "extensions" : [ "SPV_NV_fragment_shader_barycentric" ],
7407          "version" : "None"
7408        },
7409        {
7410          "enumerant" : "ComputeDerivativeGroupQuadsNV",
7411          "value" : 5288,
7412          "extensions" : [ "SPV_NV_compute_shader_derivatives" ],
7413          "version" : "None"
7414        },
7415        {
7416          "enumerant" : "ComputeDerivativeGroupLinearNV",
7417          "value" : 5350,
7418          "extensions" : [ "SPV_NV_compute_shader_derivatives" ],
7419          "version" : "None"
7420        },
7421        {
7422          "enumerant" : "FragmentDensityEXT",
7423          "value" : 5291,
7424          "capabilities" : [ "Shader" ],
7425          "extensions" : [ "SPV_EXT_fragment_invocation_density", "SPV_NV_shading_rate" ],
7426          "version" : "None"
7427        },
7428        {
7429          "enumerant" : "ShadingRateNV",
7430          "value" : 5291,
7431          "capabilities" : [ "Shader" ],
7432          "extensions" : [ "SPV_NV_shading_rate", "SPV_EXT_fragment_invocation_density" ],
7433          "version" : "None"
7434        },
7435        {
7436          "enumerant" : "PhysicalStorageBufferAddressesEXT",
7437          "value" : 5347,
7438          "capabilities" : [ "Shader" ],
7439          "extensions" : [ "SPV_EXT_physical_storage_buffer" ],
7440          "version" : "None"
7441        }
7442      ]
7443    },
7444    {
7445      "category" : "Id",
7446      "kind" : "IdResultType",
7447      "doc" : "Reference to an <id> representing the result's type of the enclosing instruction"
7448    },
7449    {
7450      "category" : "Id",
7451      "kind" : "IdResult",
7452      "doc" : "Definition of an <id> representing the result of the enclosing instruction"
7453    },
7454    {
7455      "category" : "Id",
7456      "kind" : "IdMemorySemantics",
7457      "doc" : "Reference to an <id> representing a 32-bit integer that is a mask from the MemorySemantics operand kind"
7458    },
7459    {
7460      "category" : "Id",
7461      "kind" : "IdScope",
7462      "doc" : "Reference to an <id> representing a 32-bit integer that is a mask from the Scope operand kind"
7463    },
7464    {
7465      "category" : "Id",
7466      "kind" : "IdRef",
7467      "doc" : "Reference to an <id>"
7468    },
7469    {
7470      "category" : "Literal",
7471      "kind" : "LiteralInteger",
7472      "doc" : "An integer consuming one or more words"
7473    },
7474    {
7475      "category" : "Literal",
7476      "kind" : "LiteralString",
7477      "doc" : "A null-terminated stream of characters consuming an integral number of words"
7478    },
7479    {
7480      "category" : "Literal",
7481      "kind" : "LiteralContextDependentNumber",
7482      "doc" : "A literal number whose size and format are determined by a previous operand in the enclosing instruction"
7483    },
7484    {
7485      "category" : "Literal",
7486      "kind" : "LiteralExtInstInteger",
7487      "doc" : "A 32-bit unsigned integer indicating which instruction to use and determining the layout of following operands (for OpExtInst)"
7488    },
7489    {
7490      "category" : "Literal",
7491      "kind" : "LiteralSpecConstantOpInteger",
7492      "doc" : "An opcode indicating the operation to be performed and determining the layout of following operands (for OpSpecConstantOp)"
7493    },
7494    {
7495      "category" : "Composite",
7496      "kind" : "PairLiteralIntegerIdRef",
7497      "bases" : [ "LiteralInteger", "IdRef" ]
7498    },
7499    {
7500      "category" : "Composite",
7501      "kind" : "PairIdRefLiteralInteger",
7502      "bases" : [ "IdRef", "LiteralInteger" ]
7503    },
7504    {
7505      "category" : "Composite",
7506      "kind" : "PairIdRefIdRef",
7507      "bases" : [ "IdRef", "IdRef" ]
7508    }
7509  ]
7510}
7511