1/*
2** Copyright (c) 2014-2020 The Khronos Group Inc.
3**
4** Permission is hereby granted, free of charge, to any person obtaining a copy
5** of this software and/or associated documentation files (the "Materials"),
6** to deal in the Materials without restriction, including without limitation
7** the rights to use, copy, modify, merge, publish, distribute, sublicense,
8** and/or sell copies of the Materials, and to permit persons to whom the
9** Materials are furnished to do so, subject to the following conditions:
10**
11** The above copyright notice and this permission notice shall be included in
12** all copies or substantial portions of the Materials.
13**
14** MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS
15** STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND
16** HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/
17**
18** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
19** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
21** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23** FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS
24** IN THE MATERIALS.
25*/
26
27/*
28** This header is automatically generated by the same tool that creates
29** the Binary Section of the SPIR-V specification.
30*/
31
32/*
33** Enumeration tokens for SPIR-V, in various styles:
34**   C, C++, C++11, JSON, Lua, Python, C#, D
35**
36** - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL
37** - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL
38** - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL
39** - Lua will use tables, e.g.: spv.SourceLanguage.GLSL
40** - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL']
41** - C# will use enum classes in the Specification class located in the "Spv" namespace,
42**     e.g.: Spv.Specification.SourceLanguage.GLSL
43** - D will have tokens under the "spv" module, e.g: spv.SourceLanguage.GLSL
44**
45** Some tokens act like mask values, which can be OR'd together,
46** while others are mutually exclusive.  The mask-like ones have
47** "Mask" in their name, and a parallel enum that has the shift
48** amount (1 << x) for each corresponding enumerant.
49*/
50
51#ifndef spirv_H
52#define spirv_H
53
54typedef unsigned int SpvId;
55
56#define SPV_VERSION 0x10500
57#define SPV_REVISION 4
58
59static const unsigned int SpvMagicNumber = 0x07230203;
60static const unsigned int SpvVersion = 0x00010500;
61static const unsigned int SpvRevision = 4;
62static const unsigned int SpvOpCodeMask = 0xffff;
63static const unsigned int SpvWordCountShift = 16;
64
65typedef enum SpvSourceLanguage_ {
66    SpvSourceLanguageUnknown = 0,
67    SpvSourceLanguageESSL = 1,
68    SpvSourceLanguageGLSL = 2,
69    SpvSourceLanguageOpenCL_C = 3,
70    SpvSourceLanguageOpenCL_CPP = 4,
71    SpvSourceLanguageHLSL = 5,
72    SpvSourceLanguageCPP_for_OpenCL = 6,
73    SpvSourceLanguageMax = 0x7fffffff,
74} SpvSourceLanguage;
75
76typedef enum SpvExecutionModel_ {
77    SpvExecutionModelVertex = 0,
78    SpvExecutionModelTessellationControl = 1,
79    SpvExecutionModelTessellationEvaluation = 2,
80    SpvExecutionModelGeometry = 3,
81    SpvExecutionModelFragment = 4,
82    SpvExecutionModelGLCompute = 5,
83    SpvExecutionModelKernel = 6,
84    SpvExecutionModelTaskNV = 5267,
85    SpvExecutionModelMeshNV = 5268,
86    SpvExecutionModelRayGenerationKHR = 5313,
87    SpvExecutionModelRayGenerationNV = 5313,
88    SpvExecutionModelIntersectionKHR = 5314,
89    SpvExecutionModelIntersectionNV = 5314,
90    SpvExecutionModelAnyHitKHR = 5315,
91    SpvExecutionModelAnyHitNV = 5315,
92    SpvExecutionModelClosestHitKHR = 5316,
93    SpvExecutionModelClosestHitNV = 5316,
94    SpvExecutionModelMissKHR = 5317,
95    SpvExecutionModelMissNV = 5317,
96    SpvExecutionModelCallableKHR = 5318,
97    SpvExecutionModelCallableNV = 5318,
98    SpvExecutionModelMax = 0x7fffffff,
99} SpvExecutionModel;
100
101typedef enum SpvAddressingModel_ {
102    SpvAddressingModelLogical = 0,
103    SpvAddressingModelPhysical32 = 1,
104    SpvAddressingModelPhysical64 = 2,
105    SpvAddressingModelPhysicalStorageBuffer64 = 5348,
106    SpvAddressingModelPhysicalStorageBuffer64EXT = 5348,
107    SpvAddressingModelMax = 0x7fffffff,
108} SpvAddressingModel;
109
110typedef enum SpvMemoryModel_ {
111    SpvMemoryModelSimple = 0,
112    SpvMemoryModelGLSL450 = 1,
113    SpvMemoryModelOpenCL = 2,
114    SpvMemoryModelVulkan = 3,
115    SpvMemoryModelVulkanKHR = 3,
116    SpvMemoryModelMax = 0x7fffffff,
117} SpvMemoryModel;
118
119typedef enum SpvExecutionMode_ {
120    SpvExecutionModeInvocations = 0,
121    SpvExecutionModeSpacingEqual = 1,
122    SpvExecutionModeSpacingFractionalEven = 2,
123    SpvExecutionModeSpacingFractionalOdd = 3,
124    SpvExecutionModeVertexOrderCw = 4,
125    SpvExecutionModeVertexOrderCcw = 5,
126    SpvExecutionModePixelCenterInteger = 6,
127    SpvExecutionModeOriginUpperLeft = 7,
128    SpvExecutionModeOriginLowerLeft = 8,
129    SpvExecutionModeEarlyFragmentTests = 9,
130    SpvExecutionModePointMode = 10,
131    SpvExecutionModeXfb = 11,
132    SpvExecutionModeDepthReplacing = 12,
133    SpvExecutionModeDepthGreater = 14,
134    SpvExecutionModeDepthLess = 15,
135    SpvExecutionModeDepthUnchanged = 16,
136    SpvExecutionModeLocalSize = 17,
137    SpvExecutionModeLocalSizeHint = 18,
138    SpvExecutionModeInputPoints = 19,
139    SpvExecutionModeInputLines = 20,
140    SpvExecutionModeInputLinesAdjacency = 21,
141    SpvExecutionModeTriangles = 22,
142    SpvExecutionModeInputTrianglesAdjacency = 23,
143    SpvExecutionModeQuads = 24,
144    SpvExecutionModeIsolines = 25,
145    SpvExecutionModeOutputVertices = 26,
146    SpvExecutionModeOutputPoints = 27,
147    SpvExecutionModeOutputLineStrip = 28,
148    SpvExecutionModeOutputTriangleStrip = 29,
149    SpvExecutionModeVecTypeHint = 30,
150    SpvExecutionModeContractionOff = 31,
151    SpvExecutionModeInitializer = 33,
152    SpvExecutionModeFinalizer = 34,
153    SpvExecutionModeSubgroupSize = 35,
154    SpvExecutionModeSubgroupsPerWorkgroup = 36,
155    SpvExecutionModeSubgroupsPerWorkgroupId = 37,
156    SpvExecutionModeLocalSizeId = 38,
157    SpvExecutionModeLocalSizeHintId = 39,
158    SpvExecutionModeSubgroupUniformControlFlowKHR = 4421,
159    SpvExecutionModePostDepthCoverage = 4446,
160    SpvExecutionModeDenormPreserve = 4459,
161    SpvExecutionModeDenormFlushToZero = 4460,
162    SpvExecutionModeSignedZeroInfNanPreserve = 4461,
163    SpvExecutionModeRoundingModeRTE = 4462,
164    SpvExecutionModeRoundingModeRTZ = 4463,
165    SpvExecutionModeStencilRefReplacingEXT = 5027,
166    SpvExecutionModeOutputLinesNV = 5269,
167    SpvExecutionModeOutputPrimitivesNV = 5270,
168    SpvExecutionModeDerivativeGroupQuadsNV = 5289,
169    SpvExecutionModeDerivativeGroupLinearNV = 5290,
170    SpvExecutionModeOutputTrianglesNV = 5298,
171    SpvExecutionModePixelInterlockOrderedEXT = 5366,
172    SpvExecutionModePixelInterlockUnorderedEXT = 5367,
173    SpvExecutionModeSampleInterlockOrderedEXT = 5368,
174    SpvExecutionModeSampleInterlockUnorderedEXT = 5369,
175    SpvExecutionModeShadingRateInterlockOrderedEXT = 5370,
176    SpvExecutionModeShadingRateInterlockUnorderedEXT = 5371,
177    SpvExecutionModeSharedLocalMemorySizeINTEL = 5618,
178    SpvExecutionModeRoundingModeRTPINTEL = 5620,
179    SpvExecutionModeRoundingModeRTNINTEL = 5621,
180    SpvExecutionModeFloatingPointModeALTINTEL = 5622,
181    SpvExecutionModeFloatingPointModeIEEEINTEL = 5623,
182    SpvExecutionModeMaxWorkgroupSizeINTEL = 5893,
183    SpvExecutionModeMaxWorkDimINTEL = 5894,
184    SpvExecutionModeNoGlobalOffsetINTEL = 5895,
185    SpvExecutionModeNumSIMDWorkitemsINTEL = 5896,
186    SpvExecutionModeSchedulerTargetFmaxMhzINTEL = 5903,
187    SpvExecutionModeMax = 0x7fffffff,
188} SpvExecutionMode;
189
190typedef enum SpvStorageClass_ {
191    SpvStorageClassUniformConstant = 0,
192    SpvStorageClassInput = 1,
193    SpvStorageClassUniform = 2,
194    SpvStorageClassOutput = 3,
195    SpvStorageClassWorkgroup = 4,
196    SpvStorageClassCrossWorkgroup = 5,
197    SpvStorageClassPrivate = 6,
198    SpvStorageClassFunction = 7,
199    SpvStorageClassGeneric = 8,
200    SpvStorageClassPushConstant = 9,
201    SpvStorageClassAtomicCounter = 10,
202    SpvStorageClassImage = 11,
203    SpvStorageClassStorageBuffer = 12,
204    SpvStorageClassCallableDataKHR = 5328,
205    SpvStorageClassCallableDataNV = 5328,
206    SpvStorageClassIncomingCallableDataKHR = 5329,
207    SpvStorageClassIncomingCallableDataNV = 5329,
208    SpvStorageClassRayPayloadKHR = 5338,
209    SpvStorageClassRayPayloadNV = 5338,
210    SpvStorageClassHitAttributeKHR = 5339,
211    SpvStorageClassHitAttributeNV = 5339,
212    SpvStorageClassIncomingRayPayloadKHR = 5342,
213    SpvStorageClassIncomingRayPayloadNV = 5342,
214    SpvStorageClassShaderRecordBufferKHR = 5343,
215    SpvStorageClassShaderRecordBufferNV = 5343,
216    SpvStorageClassPhysicalStorageBuffer = 5349,
217    SpvStorageClassPhysicalStorageBufferEXT = 5349,
218    SpvStorageClassCodeSectionINTEL = 5605,
219    SpvStorageClassDeviceOnlyINTEL = 5936,
220    SpvStorageClassHostOnlyINTEL = 5937,
221    SpvStorageClassMax = 0x7fffffff,
222} SpvStorageClass;
223
224typedef enum SpvDim_ {
225    SpvDim1D = 0,
226    SpvDim2D = 1,
227    SpvDim3D = 2,
228    SpvDimCube = 3,
229    SpvDimRect = 4,
230    SpvDimBuffer = 5,
231    SpvDimSubpassData = 6,
232    SpvDimMax = 0x7fffffff,
233} SpvDim;
234
235typedef enum SpvSamplerAddressingMode_ {
236    SpvSamplerAddressingModeNone = 0,
237    SpvSamplerAddressingModeClampToEdge = 1,
238    SpvSamplerAddressingModeClamp = 2,
239    SpvSamplerAddressingModeRepeat = 3,
240    SpvSamplerAddressingModeRepeatMirrored = 4,
241    SpvSamplerAddressingModeMax = 0x7fffffff,
242} SpvSamplerAddressingMode;
243
244typedef enum SpvSamplerFilterMode_ {
245    SpvSamplerFilterModeNearest = 0,
246    SpvSamplerFilterModeLinear = 1,
247    SpvSamplerFilterModeMax = 0x7fffffff,
248} SpvSamplerFilterMode;
249
250typedef enum SpvImageFormat_ {
251    SpvImageFormatUnknown = 0,
252    SpvImageFormatRgba32f = 1,
253    SpvImageFormatRgba16f = 2,
254    SpvImageFormatR32f = 3,
255    SpvImageFormatRgba8 = 4,
256    SpvImageFormatRgba8Snorm = 5,
257    SpvImageFormatRg32f = 6,
258    SpvImageFormatRg16f = 7,
259    SpvImageFormatR11fG11fB10f = 8,
260    SpvImageFormatR16f = 9,
261    SpvImageFormatRgba16 = 10,
262    SpvImageFormatRgb10A2 = 11,
263    SpvImageFormatRg16 = 12,
264    SpvImageFormatRg8 = 13,
265    SpvImageFormatR16 = 14,
266    SpvImageFormatR8 = 15,
267    SpvImageFormatRgba16Snorm = 16,
268    SpvImageFormatRg16Snorm = 17,
269    SpvImageFormatRg8Snorm = 18,
270    SpvImageFormatR16Snorm = 19,
271    SpvImageFormatR8Snorm = 20,
272    SpvImageFormatRgba32i = 21,
273    SpvImageFormatRgba16i = 22,
274    SpvImageFormatRgba8i = 23,
275    SpvImageFormatR32i = 24,
276    SpvImageFormatRg32i = 25,
277    SpvImageFormatRg16i = 26,
278    SpvImageFormatRg8i = 27,
279    SpvImageFormatR16i = 28,
280    SpvImageFormatR8i = 29,
281    SpvImageFormatRgba32ui = 30,
282    SpvImageFormatRgba16ui = 31,
283    SpvImageFormatRgba8ui = 32,
284    SpvImageFormatR32ui = 33,
285    SpvImageFormatRgb10a2ui = 34,
286    SpvImageFormatRg32ui = 35,
287    SpvImageFormatRg16ui = 36,
288    SpvImageFormatRg8ui = 37,
289    SpvImageFormatR16ui = 38,
290    SpvImageFormatR8ui = 39,
291    SpvImageFormatR64ui = 40,
292    SpvImageFormatR64i = 41,
293    SpvImageFormatMax = 0x7fffffff,
294} SpvImageFormat;
295
296typedef enum SpvImageChannelOrder_ {
297    SpvImageChannelOrderR = 0,
298    SpvImageChannelOrderA = 1,
299    SpvImageChannelOrderRG = 2,
300    SpvImageChannelOrderRA = 3,
301    SpvImageChannelOrderRGB = 4,
302    SpvImageChannelOrderRGBA = 5,
303    SpvImageChannelOrderBGRA = 6,
304    SpvImageChannelOrderARGB = 7,
305    SpvImageChannelOrderIntensity = 8,
306    SpvImageChannelOrderLuminance = 9,
307    SpvImageChannelOrderRx = 10,
308    SpvImageChannelOrderRGx = 11,
309    SpvImageChannelOrderRGBx = 12,
310    SpvImageChannelOrderDepth = 13,
311    SpvImageChannelOrderDepthStencil = 14,
312    SpvImageChannelOrdersRGB = 15,
313    SpvImageChannelOrdersRGBx = 16,
314    SpvImageChannelOrdersRGBA = 17,
315    SpvImageChannelOrdersBGRA = 18,
316    SpvImageChannelOrderABGR = 19,
317    SpvImageChannelOrderMax = 0x7fffffff,
318} SpvImageChannelOrder;
319
320typedef enum SpvImageChannelDataType_ {
321    SpvImageChannelDataTypeSnormInt8 = 0,
322    SpvImageChannelDataTypeSnormInt16 = 1,
323    SpvImageChannelDataTypeUnormInt8 = 2,
324    SpvImageChannelDataTypeUnormInt16 = 3,
325    SpvImageChannelDataTypeUnormShort565 = 4,
326    SpvImageChannelDataTypeUnormShort555 = 5,
327    SpvImageChannelDataTypeUnormInt101010 = 6,
328    SpvImageChannelDataTypeSignedInt8 = 7,
329    SpvImageChannelDataTypeSignedInt16 = 8,
330    SpvImageChannelDataTypeSignedInt32 = 9,
331    SpvImageChannelDataTypeUnsignedInt8 = 10,
332    SpvImageChannelDataTypeUnsignedInt16 = 11,
333    SpvImageChannelDataTypeUnsignedInt32 = 12,
334    SpvImageChannelDataTypeHalfFloat = 13,
335    SpvImageChannelDataTypeFloat = 14,
336    SpvImageChannelDataTypeUnormInt24 = 15,
337    SpvImageChannelDataTypeUnormInt101010_2 = 16,
338    SpvImageChannelDataTypeMax = 0x7fffffff,
339} SpvImageChannelDataType;
340
341typedef enum SpvImageOperandsShift_ {
342    SpvImageOperandsBiasShift = 0,
343    SpvImageOperandsLodShift = 1,
344    SpvImageOperandsGradShift = 2,
345    SpvImageOperandsConstOffsetShift = 3,
346    SpvImageOperandsOffsetShift = 4,
347    SpvImageOperandsConstOffsetsShift = 5,
348    SpvImageOperandsSampleShift = 6,
349    SpvImageOperandsMinLodShift = 7,
350    SpvImageOperandsMakeTexelAvailableShift = 8,
351    SpvImageOperandsMakeTexelAvailableKHRShift = 8,
352    SpvImageOperandsMakeTexelVisibleShift = 9,
353    SpvImageOperandsMakeTexelVisibleKHRShift = 9,
354    SpvImageOperandsNonPrivateTexelShift = 10,
355    SpvImageOperandsNonPrivateTexelKHRShift = 10,
356    SpvImageOperandsVolatileTexelShift = 11,
357    SpvImageOperandsVolatileTexelKHRShift = 11,
358    SpvImageOperandsSignExtendShift = 12,
359    SpvImageOperandsZeroExtendShift = 13,
360    SpvImageOperandsMax = 0x7fffffff,
361} SpvImageOperandsShift;
362
363typedef enum SpvImageOperandsMask_ {
364    SpvImageOperandsMaskNone = 0,
365    SpvImageOperandsBiasMask = 0x00000001,
366    SpvImageOperandsLodMask = 0x00000002,
367    SpvImageOperandsGradMask = 0x00000004,
368    SpvImageOperandsConstOffsetMask = 0x00000008,
369    SpvImageOperandsOffsetMask = 0x00000010,
370    SpvImageOperandsConstOffsetsMask = 0x00000020,
371    SpvImageOperandsSampleMask = 0x00000040,
372    SpvImageOperandsMinLodMask = 0x00000080,
373    SpvImageOperandsMakeTexelAvailableMask = 0x00000100,
374    SpvImageOperandsMakeTexelAvailableKHRMask = 0x00000100,
375    SpvImageOperandsMakeTexelVisibleMask = 0x00000200,
376    SpvImageOperandsMakeTexelVisibleKHRMask = 0x00000200,
377    SpvImageOperandsNonPrivateTexelMask = 0x00000400,
378    SpvImageOperandsNonPrivateTexelKHRMask = 0x00000400,
379    SpvImageOperandsVolatileTexelMask = 0x00000800,
380    SpvImageOperandsVolatileTexelKHRMask = 0x00000800,
381    SpvImageOperandsSignExtendMask = 0x00001000,
382    SpvImageOperandsZeroExtendMask = 0x00002000,
383} SpvImageOperandsMask;
384
385typedef enum SpvFPFastMathModeShift_ {
386    SpvFPFastMathModeNotNaNShift = 0,
387    SpvFPFastMathModeNotInfShift = 1,
388    SpvFPFastMathModeNSZShift = 2,
389    SpvFPFastMathModeAllowRecipShift = 3,
390    SpvFPFastMathModeFastShift = 4,
391    SpvFPFastMathModeAllowContractFastINTELShift = 16,
392    SpvFPFastMathModeAllowReassocINTELShift = 17,
393    SpvFPFastMathModeMax = 0x7fffffff,
394} SpvFPFastMathModeShift;
395
396typedef enum SpvFPFastMathModeMask_ {
397    SpvFPFastMathModeMaskNone = 0,
398    SpvFPFastMathModeNotNaNMask = 0x00000001,
399    SpvFPFastMathModeNotInfMask = 0x00000002,
400    SpvFPFastMathModeNSZMask = 0x00000004,
401    SpvFPFastMathModeAllowRecipMask = 0x00000008,
402    SpvFPFastMathModeFastMask = 0x00000010,
403    SpvFPFastMathModeAllowContractFastINTELMask = 0x00010000,
404    SpvFPFastMathModeAllowReassocINTELMask = 0x00020000,
405} SpvFPFastMathModeMask;
406
407typedef enum SpvFPRoundingMode_ {
408    SpvFPRoundingModeRTE = 0,
409    SpvFPRoundingModeRTZ = 1,
410    SpvFPRoundingModeRTP = 2,
411    SpvFPRoundingModeRTN = 3,
412    SpvFPRoundingModeMax = 0x7fffffff,
413} SpvFPRoundingMode;
414
415typedef enum SpvLinkageType_ {
416    SpvLinkageTypeExport = 0,
417    SpvLinkageTypeImport = 1,
418    SpvLinkageTypeLinkOnceODR = 2,
419    SpvLinkageTypeMax = 0x7fffffff,
420} SpvLinkageType;
421
422typedef enum SpvAccessQualifier_ {
423    SpvAccessQualifierReadOnly = 0,
424    SpvAccessQualifierWriteOnly = 1,
425    SpvAccessQualifierReadWrite = 2,
426    SpvAccessQualifierMax = 0x7fffffff,
427} SpvAccessQualifier;
428
429typedef enum SpvFunctionParameterAttribute_ {
430    SpvFunctionParameterAttributeZext = 0,
431    SpvFunctionParameterAttributeSext = 1,
432    SpvFunctionParameterAttributeByVal = 2,
433    SpvFunctionParameterAttributeSret = 3,
434    SpvFunctionParameterAttributeNoAlias = 4,
435    SpvFunctionParameterAttributeNoCapture = 5,
436    SpvFunctionParameterAttributeNoWrite = 6,
437    SpvFunctionParameterAttributeNoReadWrite = 7,
438    SpvFunctionParameterAttributeMax = 0x7fffffff,
439} SpvFunctionParameterAttribute;
440
441typedef enum SpvDecoration_ {
442    SpvDecorationRelaxedPrecision = 0,
443    SpvDecorationSpecId = 1,
444    SpvDecorationBlock = 2,
445    SpvDecorationBufferBlock = 3,
446    SpvDecorationRowMajor = 4,
447    SpvDecorationColMajor = 5,
448    SpvDecorationArrayStride = 6,
449    SpvDecorationMatrixStride = 7,
450    SpvDecorationGLSLShared = 8,
451    SpvDecorationGLSLPacked = 9,
452    SpvDecorationCPacked = 10,
453    SpvDecorationBuiltIn = 11,
454    SpvDecorationNoPerspective = 13,
455    SpvDecorationFlat = 14,
456    SpvDecorationPatch = 15,
457    SpvDecorationCentroid = 16,
458    SpvDecorationSample = 17,
459    SpvDecorationInvariant = 18,
460    SpvDecorationRestrict = 19,
461    SpvDecorationAliased = 20,
462    SpvDecorationVolatile = 21,
463    SpvDecorationConstant = 22,
464    SpvDecorationCoherent = 23,
465    SpvDecorationNonWritable = 24,
466    SpvDecorationNonReadable = 25,
467    SpvDecorationUniform = 26,
468    SpvDecorationUniformId = 27,
469    SpvDecorationSaturatedConversion = 28,
470    SpvDecorationStream = 29,
471    SpvDecorationLocation = 30,
472    SpvDecorationComponent = 31,
473    SpvDecorationIndex = 32,
474    SpvDecorationBinding = 33,
475    SpvDecorationDescriptorSet = 34,
476    SpvDecorationOffset = 35,
477    SpvDecorationXfbBuffer = 36,
478    SpvDecorationXfbStride = 37,
479    SpvDecorationFuncParamAttr = 38,
480    SpvDecorationFPRoundingMode = 39,
481    SpvDecorationFPFastMathMode = 40,
482    SpvDecorationLinkageAttributes = 41,
483    SpvDecorationNoContraction = 42,
484    SpvDecorationInputAttachmentIndex = 43,
485    SpvDecorationAlignment = 44,
486    SpvDecorationMaxByteOffset = 45,
487    SpvDecorationAlignmentId = 46,
488    SpvDecorationMaxByteOffsetId = 47,
489    SpvDecorationNoSignedWrap = 4469,
490    SpvDecorationNoUnsignedWrap = 4470,
491    SpvDecorationExplicitInterpAMD = 4999,
492    SpvDecorationOverrideCoverageNV = 5248,
493    SpvDecorationPassthroughNV = 5250,
494    SpvDecorationViewportRelativeNV = 5252,
495    SpvDecorationSecondaryViewportRelativeNV = 5256,
496    SpvDecorationPerPrimitiveNV = 5271,
497    SpvDecorationPerViewNV = 5272,
498    SpvDecorationPerTaskNV = 5273,
499    SpvDecorationPerVertexNV = 5285,
500    SpvDecorationNonUniform = 5300,
501    SpvDecorationNonUniformEXT = 5300,
502    SpvDecorationRestrictPointer = 5355,
503    SpvDecorationRestrictPointerEXT = 5355,
504    SpvDecorationAliasedPointer = 5356,
505    SpvDecorationAliasedPointerEXT = 5356,
506    SpvDecorationSIMTCallINTEL = 5599,
507    SpvDecorationReferencedIndirectlyINTEL = 5602,
508    SpvDecorationClobberINTEL = 5607,
509    SpvDecorationSideEffectsINTEL = 5608,
510    SpvDecorationVectorComputeVariableINTEL = 5624,
511    SpvDecorationFuncParamIOKindINTEL = 5625,
512    SpvDecorationVectorComputeFunctionINTEL = 5626,
513    SpvDecorationStackCallINTEL = 5627,
514    SpvDecorationGlobalVariableOffsetINTEL = 5628,
515    SpvDecorationCounterBuffer = 5634,
516    SpvDecorationHlslCounterBufferGOOGLE = 5634,
517    SpvDecorationHlslSemanticGOOGLE = 5635,
518    SpvDecorationUserSemantic = 5635,
519    SpvDecorationUserTypeGOOGLE = 5636,
520    SpvDecorationFunctionRoundingModeINTEL = 5822,
521    SpvDecorationFunctionDenormModeINTEL = 5823,
522    SpvDecorationRegisterINTEL = 5825,
523    SpvDecorationMemoryINTEL = 5826,
524    SpvDecorationNumbanksINTEL = 5827,
525    SpvDecorationBankwidthINTEL = 5828,
526    SpvDecorationMaxPrivateCopiesINTEL = 5829,
527    SpvDecorationSinglepumpINTEL = 5830,
528    SpvDecorationDoublepumpINTEL = 5831,
529    SpvDecorationMaxReplicatesINTEL = 5832,
530    SpvDecorationSimpleDualPortINTEL = 5833,
531    SpvDecorationMergeINTEL = 5834,
532    SpvDecorationBankBitsINTEL = 5835,
533    SpvDecorationForcePow2DepthINTEL = 5836,
534    SpvDecorationBurstCoalesceINTEL = 5899,
535    SpvDecorationCacheSizeINTEL = 5900,
536    SpvDecorationDontStaticallyCoalesceINTEL = 5901,
537    SpvDecorationPrefetchINTEL = 5902,
538    SpvDecorationStallEnableINTEL = 5905,
539    SpvDecorationFuseLoopsInFunctionINTEL = 5907,
540    SpvDecorationBufferLocationINTEL = 5921,
541    SpvDecorationIOPipeStorageINTEL = 5944,
542    SpvDecorationFunctionFloatingPointModeINTEL = 6080,
543    SpvDecorationSingleElementVectorINTEL = 6085,
544    SpvDecorationVectorComputeCallableFunctionINTEL = 6087,
545    SpvDecorationMax = 0x7fffffff,
546} SpvDecoration;
547
548typedef enum SpvBuiltIn_ {
549    SpvBuiltInPosition = 0,
550    SpvBuiltInPointSize = 1,
551    SpvBuiltInClipDistance = 3,
552    SpvBuiltInCullDistance = 4,
553    SpvBuiltInVertexId = 5,
554    SpvBuiltInInstanceId = 6,
555    SpvBuiltInPrimitiveId = 7,
556    SpvBuiltInInvocationId = 8,
557    SpvBuiltInLayer = 9,
558    SpvBuiltInViewportIndex = 10,
559    SpvBuiltInTessLevelOuter = 11,
560    SpvBuiltInTessLevelInner = 12,
561    SpvBuiltInTessCoord = 13,
562    SpvBuiltInPatchVertices = 14,
563    SpvBuiltInFragCoord = 15,
564    SpvBuiltInPointCoord = 16,
565    SpvBuiltInFrontFacing = 17,
566    SpvBuiltInSampleId = 18,
567    SpvBuiltInSamplePosition = 19,
568    SpvBuiltInSampleMask = 20,
569    SpvBuiltInFragDepth = 22,
570    SpvBuiltInHelperInvocation = 23,
571    SpvBuiltInNumWorkgroups = 24,
572    SpvBuiltInWorkgroupSize = 25,
573    SpvBuiltInWorkgroupId = 26,
574    SpvBuiltInLocalInvocationId = 27,
575    SpvBuiltInGlobalInvocationId = 28,
576    SpvBuiltInLocalInvocationIndex = 29,
577    SpvBuiltInWorkDim = 30,
578    SpvBuiltInGlobalSize = 31,
579    SpvBuiltInEnqueuedWorkgroupSize = 32,
580    SpvBuiltInGlobalOffset = 33,
581    SpvBuiltInGlobalLinearId = 34,
582    SpvBuiltInSubgroupSize = 36,
583    SpvBuiltInSubgroupMaxSize = 37,
584    SpvBuiltInNumSubgroups = 38,
585    SpvBuiltInNumEnqueuedSubgroups = 39,
586    SpvBuiltInSubgroupId = 40,
587    SpvBuiltInSubgroupLocalInvocationId = 41,
588    SpvBuiltInVertexIndex = 42,
589    SpvBuiltInInstanceIndex = 43,
590    SpvBuiltInSubgroupEqMask = 4416,
591    SpvBuiltInSubgroupEqMaskKHR = 4416,
592    SpvBuiltInSubgroupGeMask = 4417,
593    SpvBuiltInSubgroupGeMaskKHR = 4417,
594    SpvBuiltInSubgroupGtMask = 4418,
595    SpvBuiltInSubgroupGtMaskKHR = 4418,
596    SpvBuiltInSubgroupLeMask = 4419,
597    SpvBuiltInSubgroupLeMaskKHR = 4419,
598    SpvBuiltInSubgroupLtMask = 4420,
599    SpvBuiltInSubgroupLtMaskKHR = 4420,
600    SpvBuiltInBaseVertex = 4424,
601    SpvBuiltInBaseInstance = 4425,
602    SpvBuiltInDrawIndex = 4426,
603    SpvBuiltInPrimitiveShadingRateKHR = 4432,
604    SpvBuiltInDeviceIndex = 4438,
605    SpvBuiltInViewIndex = 4440,
606    SpvBuiltInShadingRateKHR = 4444,
607    SpvBuiltInBaryCoordNoPerspAMD = 4992,
608    SpvBuiltInBaryCoordNoPerspCentroidAMD = 4993,
609    SpvBuiltInBaryCoordNoPerspSampleAMD = 4994,
610    SpvBuiltInBaryCoordSmoothAMD = 4995,
611    SpvBuiltInBaryCoordSmoothCentroidAMD = 4996,
612    SpvBuiltInBaryCoordSmoothSampleAMD = 4997,
613    SpvBuiltInBaryCoordPullModelAMD = 4998,
614    SpvBuiltInFragStencilRefEXT = 5014,
615    SpvBuiltInViewportMaskNV = 5253,
616    SpvBuiltInSecondaryPositionNV = 5257,
617    SpvBuiltInSecondaryViewportMaskNV = 5258,
618    SpvBuiltInPositionPerViewNV = 5261,
619    SpvBuiltInViewportMaskPerViewNV = 5262,
620    SpvBuiltInFullyCoveredEXT = 5264,
621    SpvBuiltInTaskCountNV = 5274,
622    SpvBuiltInPrimitiveCountNV = 5275,
623    SpvBuiltInPrimitiveIndicesNV = 5276,
624    SpvBuiltInClipDistancePerViewNV = 5277,
625    SpvBuiltInCullDistancePerViewNV = 5278,
626    SpvBuiltInLayerPerViewNV = 5279,
627    SpvBuiltInMeshViewCountNV = 5280,
628    SpvBuiltInMeshViewIndicesNV = 5281,
629    SpvBuiltInBaryCoordNV = 5286,
630    SpvBuiltInBaryCoordNoPerspNV = 5287,
631    SpvBuiltInFragSizeEXT = 5292,
632    SpvBuiltInFragmentSizeNV = 5292,
633    SpvBuiltInFragInvocationCountEXT = 5293,
634    SpvBuiltInInvocationsPerPixelNV = 5293,
635    SpvBuiltInLaunchIdKHR = 5319,
636    SpvBuiltInLaunchIdNV = 5319,
637    SpvBuiltInLaunchSizeKHR = 5320,
638    SpvBuiltInLaunchSizeNV = 5320,
639    SpvBuiltInWorldRayOriginKHR = 5321,
640    SpvBuiltInWorldRayOriginNV = 5321,
641    SpvBuiltInWorldRayDirectionKHR = 5322,
642    SpvBuiltInWorldRayDirectionNV = 5322,
643    SpvBuiltInObjectRayOriginKHR = 5323,
644    SpvBuiltInObjectRayOriginNV = 5323,
645    SpvBuiltInObjectRayDirectionKHR = 5324,
646    SpvBuiltInObjectRayDirectionNV = 5324,
647    SpvBuiltInRayTminKHR = 5325,
648    SpvBuiltInRayTminNV = 5325,
649    SpvBuiltInRayTmaxKHR = 5326,
650    SpvBuiltInRayTmaxNV = 5326,
651    SpvBuiltInInstanceCustomIndexKHR = 5327,
652    SpvBuiltInInstanceCustomIndexNV = 5327,
653    SpvBuiltInObjectToWorldKHR = 5330,
654    SpvBuiltInObjectToWorldNV = 5330,
655    SpvBuiltInWorldToObjectKHR = 5331,
656    SpvBuiltInWorldToObjectNV = 5331,
657    SpvBuiltInHitTNV = 5332,
658    SpvBuiltInHitKindKHR = 5333,
659    SpvBuiltInHitKindNV = 5333,
660    SpvBuiltInIncomingRayFlagsKHR = 5351,
661    SpvBuiltInIncomingRayFlagsNV = 5351,
662    SpvBuiltInRayGeometryIndexKHR = 5352,
663    SpvBuiltInWarpsPerSMNV = 5374,
664    SpvBuiltInSMCountNV = 5375,
665    SpvBuiltInWarpIDNV = 5376,
666    SpvBuiltInSMIDNV = 5377,
667    SpvBuiltInMax = 0x7fffffff,
668} SpvBuiltIn;
669
670typedef enum SpvSelectionControlShift_ {
671    SpvSelectionControlFlattenShift = 0,
672    SpvSelectionControlDontFlattenShift = 1,
673    SpvSelectionControlMax = 0x7fffffff,
674} SpvSelectionControlShift;
675
676typedef enum SpvSelectionControlMask_ {
677    SpvSelectionControlMaskNone = 0,
678    SpvSelectionControlFlattenMask = 0x00000001,
679    SpvSelectionControlDontFlattenMask = 0x00000002,
680} SpvSelectionControlMask;
681
682typedef enum SpvLoopControlShift_ {
683    SpvLoopControlUnrollShift = 0,
684    SpvLoopControlDontUnrollShift = 1,
685    SpvLoopControlDependencyInfiniteShift = 2,
686    SpvLoopControlDependencyLengthShift = 3,
687    SpvLoopControlMinIterationsShift = 4,
688    SpvLoopControlMaxIterationsShift = 5,
689    SpvLoopControlIterationMultipleShift = 6,
690    SpvLoopControlPeelCountShift = 7,
691    SpvLoopControlPartialCountShift = 8,
692    SpvLoopControlInitiationIntervalINTELShift = 16,
693    SpvLoopControlMaxConcurrencyINTELShift = 17,
694    SpvLoopControlDependencyArrayINTELShift = 18,
695    SpvLoopControlPipelineEnableINTELShift = 19,
696    SpvLoopControlLoopCoalesceINTELShift = 20,
697    SpvLoopControlMaxInterleavingINTELShift = 21,
698    SpvLoopControlSpeculatedIterationsINTELShift = 22,
699    SpvLoopControlNoFusionINTELShift = 23,
700    SpvLoopControlMax = 0x7fffffff,
701} SpvLoopControlShift;
702
703typedef enum SpvLoopControlMask_ {
704    SpvLoopControlMaskNone = 0,
705    SpvLoopControlUnrollMask = 0x00000001,
706    SpvLoopControlDontUnrollMask = 0x00000002,
707    SpvLoopControlDependencyInfiniteMask = 0x00000004,
708    SpvLoopControlDependencyLengthMask = 0x00000008,
709    SpvLoopControlMinIterationsMask = 0x00000010,
710    SpvLoopControlMaxIterationsMask = 0x00000020,
711    SpvLoopControlIterationMultipleMask = 0x00000040,
712    SpvLoopControlPeelCountMask = 0x00000080,
713    SpvLoopControlPartialCountMask = 0x00000100,
714    SpvLoopControlInitiationIntervalINTELMask = 0x00010000,
715    SpvLoopControlMaxConcurrencyINTELMask = 0x00020000,
716    SpvLoopControlDependencyArrayINTELMask = 0x00040000,
717    SpvLoopControlPipelineEnableINTELMask = 0x00080000,
718    SpvLoopControlLoopCoalesceINTELMask = 0x00100000,
719    SpvLoopControlMaxInterleavingINTELMask = 0x00200000,
720    SpvLoopControlSpeculatedIterationsINTELMask = 0x00400000,
721    SpvLoopControlNoFusionINTELMask = 0x00800000,
722} SpvLoopControlMask;
723
724typedef enum SpvFunctionControlShift_ {
725    SpvFunctionControlInlineShift = 0,
726    SpvFunctionControlDontInlineShift = 1,
727    SpvFunctionControlPureShift = 2,
728    SpvFunctionControlConstShift = 3,
729    SpvFunctionControlOptNoneINTELShift = 16,
730    SpvFunctionControlMax = 0x7fffffff,
731} SpvFunctionControlShift;
732
733typedef enum SpvFunctionControlMask_ {
734    SpvFunctionControlMaskNone = 0,
735    SpvFunctionControlInlineMask = 0x00000001,
736    SpvFunctionControlDontInlineMask = 0x00000002,
737    SpvFunctionControlPureMask = 0x00000004,
738    SpvFunctionControlConstMask = 0x00000008,
739    SpvFunctionControlOptNoneINTELMask = 0x00010000,
740} SpvFunctionControlMask;
741
742typedef enum SpvMemorySemanticsShift_ {
743    SpvMemorySemanticsAcquireShift = 1,
744    SpvMemorySemanticsReleaseShift = 2,
745    SpvMemorySemanticsAcquireReleaseShift = 3,
746    SpvMemorySemanticsSequentiallyConsistentShift = 4,
747    SpvMemorySemanticsUniformMemoryShift = 6,
748    SpvMemorySemanticsSubgroupMemoryShift = 7,
749    SpvMemorySemanticsWorkgroupMemoryShift = 8,
750    SpvMemorySemanticsCrossWorkgroupMemoryShift = 9,
751    SpvMemorySemanticsAtomicCounterMemoryShift = 10,
752    SpvMemorySemanticsImageMemoryShift = 11,
753    SpvMemorySemanticsOutputMemoryShift = 12,
754    SpvMemorySemanticsOutputMemoryKHRShift = 12,
755    SpvMemorySemanticsMakeAvailableShift = 13,
756    SpvMemorySemanticsMakeAvailableKHRShift = 13,
757    SpvMemorySemanticsMakeVisibleShift = 14,
758    SpvMemorySemanticsMakeVisibleKHRShift = 14,
759    SpvMemorySemanticsVolatileShift = 15,
760    SpvMemorySemanticsMax = 0x7fffffff,
761} SpvMemorySemanticsShift;
762
763typedef enum SpvMemorySemanticsMask_ {
764    SpvMemorySemanticsMaskNone = 0,
765    SpvMemorySemanticsAcquireMask = 0x00000002,
766    SpvMemorySemanticsReleaseMask = 0x00000004,
767    SpvMemorySemanticsAcquireReleaseMask = 0x00000008,
768    SpvMemorySemanticsSequentiallyConsistentMask = 0x00000010,
769    SpvMemorySemanticsUniformMemoryMask = 0x00000040,
770    SpvMemorySemanticsSubgroupMemoryMask = 0x00000080,
771    SpvMemorySemanticsWorkgroupMemoryMask = 0x00000100,
772    SpvMemorySemanticsCrossWorkgroupMemoryMask = 0x00000200,
773    SpvMemorySemanticsAtomicCounterMemoryMask = 0x00000400,
774    SpvMemorySemanticsImageMemoryMask = 0x00000800,
775    SpvMemorySemanticsOutputMemoryMask = 0x00001000,
776    SpvMemorySemanticsOutputMemoryKHRMask = 0x00001000,
777    SpvMemorySemanticsMakeAvailableMask = 0x00002000,
778    SpvMemorySemanticsMakeAvailableKHRMask = 0x00002000,
779    SpvMemorySemanticsMakeVisibleMask = 0x00004000,
780    SpvMemorySemanticsMakeVisibleKHRMask = 0x00004000,
781    SpvMemorySemanticsVolatileMask = 0x00008000,
782} SpvMemorySemanticsMask;
783
784typedef enum SpvMemoryAccessShift_ {
785    SpvMemoryAccessVolatileShift = 0,
786    SpvMemoryAccessAlignedShift = 1,
787    SpvMemoryAccessNontemporalShift = 2,
788    SpvMemoryAccessMakePointerAvailableShift = 3,
789    SpvMemoryAccessMakePointerAvailableKHRShift = 3,
790    SpvMemoryAccessMakePointerVisibleShift = 4,
791    SpvMemoryAccessMakePointerVisibleKHRShift = 4,
792    SpvMemoryAccessNonPrivatePointerShift = 5,
793    SpvMemoryAccessNonPrivatePointerKHRShift = 5,
794    SpvMemoryAccessMax = 0x7fffffff,
795} SpvMemoryAccessShift;
796
797typedef enum SpvMemoryAccessMask_ {
798    SpvMemoryAccessMaskNone = 0,
799    SpvMemoryAccessVolatileMask = 0x00000001,
800    SpvMemoryAccessAlignedMask = 0x00000002,
801    SpvMemoryAccessNontemporalMask = 0x00000004,
802    SpvMemoryAccessMakePointerAvailableMask = 0x00000008,
803    SpvMemoryAccessMakePointerAvailableKHRMask = 0x00000008,
804    SpvMemoryAccessMakePointerVisibleMask = 0x00000010,
805    SpvMemoryAccessMakePointerVisibleKHRMask = 0x00000010,
806    SpvMemoryAccessNonPrivatePointerMask = 0x00000020,
807    SpvMemoryAccessNonPrivatePointerKHRMask = 0x00000020,
808} SpvMemoryAccessMask;
809
810typedef enum SpvScope_ {
811    SpvScopeCrossDevice = 0,
812    SpvScopeDevice = 1,
813    SpvScopeWorkgroup = 2,
814    SpvScopeSubgroup = 3,
815    SpvScopeInvocation = 4,
816    SpvScopeQueueFamily = 5,
817    SpvScopeQueueFamilyKHR = 5,
818    SpvScopeShaderCallKHR = 6,
819    SpvScopeMax = 0x7fffffff,
820} SpvScope;
821
822typedef enum SpvGroupOperation_ {
823    SpvGroupOperationReduce = 0,
824    SpvGroupOperationInclusiveScan = 1,
825    SpvGroupOperationExclusiveScan = 2,
826    SpvGroupOperationClusteredReduce = 3,
827    SpvGroupOperationPartitionedReduceNV = 6,
828    SpvGroupOperationPartitionedInclusiveScanNV = 7,
829    SpvGroupOperationPartitionedExclusiveScanNV = 8,
830    SpvGroupOperationMax = 0x7fffffff,
831} SpvGroupOperation;
832
833typedef enum SpvKernelEnqueueFlags_ {
834    SpvKernelEnqueueFlagsNoWait = 0,
835    SpvKernelEnqueueFlagsWaitKernel = 1,
836    SpvKernelEnqueueFlagsWaitWorkGroup = 2,
837    SpvKernelEnqueueFlagsMax = 0x7fffffff,
838} SpvKernelEnqueueFlags;
839
840typedef enum SpvKernelProfilingInfoShift_ {
841    SpvKernelProfilingInfoCmdExecTimeShift = 0,
842    SpvKernelProfilingInfoMax = 0x7fffffff,
843} SpvKernelProfilingInfoShift;
844
845typedef enum SpvKernelProfilingInfoMask_ {
846    SpvKernelProfilingInfoMaskNone = 0,
847    SpvKernelProfilingInfoCmdExecTimeMask = 0x00000001,
848} SpvKernelProfilingInfoMask;
849
850typedef enum SpvCapability_ {
851    SpvCapabilityMatrix = 0,
852    SpvCapabilityShader = 1,
853    SpvCapabilityGeometry = 2,
854    SpvCapabilityTessellation = 3,
855    SpvCapabilityAddresses = 4,
856    SpvCapabilityLinkage = 5,
857    SpvCapabilityKernel = 6,
858    SpvCapabilityVector16 = 7,
859    SpvCapabilityFloat16Buffer = 8,
860    SpvCapabilityFloat16 = 9,
861    SpvCapabilityFloat64 = 10,
862    SpvCapabilityInt64 = 11,
863    SpvCapabilityInt64Atomics = 12,
864    SpvCapabilityImageBasic = 13,
865    SpvCapabilityImageReadWrite = 14,
866    SpvCapabilityImageMipmap = 15,
867    SpvCapabilityPipes = 17,
868    SpvCapabilityGroups = 18,
869    SpvCapabilityDeviceEnqueue = 19,
870    SpvCapabilityLiteralSampler = 20,
871    SpvCapabilityAtomicStorage = 21,
872    SpvCapabilityInt16 = 22,
873    SpvCapabilityTessellationPointSize = 23,
874    SpvCapabilityGeometryPointSize = 24,
875    SpvCapabilityImageGatherExtended = 25,
876    SpvCapabilityStorageImageMultisample = 27,
877    SpvCapabilityUniformBufferArrayDynamicIndexing = 28,
878    SpvCapabilitySampledImageArrayDynamicIndexing = 29,
879    SpvCapabilityStorageBufferArrayDynamicIndexing = 30,
880    SpvCapabilityStorageImageArrayDynamicIndexing = 31,
881    SpvCapabilityClipDistance = 32,
882    SpvCapabilityCullDistance = 33,
883    SpvCapabilityImageCubeArray = 34,
884    SpvCapabilitySampleRateShading = 35,
885    SpvCapabilityImageRect = 36,
886    SpvCapabilitySampledRect = 37,
887    SpvCapabilityGenericPointer = 38,
888    SpvCapabilityInt8 = 39,
889    SpvCapabilityInputAttachment = 40,
890    SpvCapabilitySparseResidency = 41,
891    SpvCapabilityMinLod = 42,
892    SpvCapabilitySampled1D = 43,
893    SpvCapabilityImage1D = 44,
894    SpvCapabilitySampledCubeArray = 45,
895    SpvCapabilitySampledBuffer = 46,
896    SpvCapabilityImageBuffer = 47,
897    SpvCapabilityImageMSArray = 48,
898    SpvCapabilityStorageImageExtendedFormats = 49,
899    SpvCapabilityImageQuery = 50,
900    SpvCapabilityDerivativeControl = 51,
901    SpvCapabilityInterpolationFunction = 52,
902    SpvCapabilityTransformFeedback = 53,
903    SpvCapabilityGeometryStreams = 54,
904    SpvCapabilityStorageImageReadWithoutFormat = 55,
905    SpvCapabilityStorageImageWriteWithoutFormat = 56,
906    SpvCapabilityMultiViewport = 57,
907    SpvCapabilitySubgroupDispatch = 58,
908    SpvCapabilityNamedBarrier = 59,
909    SpvCapabilityPipeStorage = 60,
910    SpvCapabilityGroupNonUniform = 61,
911    SpvCapabilityGroupNonUniformVote = 62,
912    SpvCapabilityGroupNonUniformArithmetic = 63,
913    SpvCapabilityGroupNonUniformBallot = 64,
914    SpvCapabilityGroupNonUniformShuffle = 65,
915    SpvCapabilityGroupNonUniformShuffleRelative = 66,
916    SpvCapabilityGroupNonUniformClustered = 67,
917    SpvCapabilityGroupNonUniformQuad = 68,
918    SpvCapabilityShaderLayer = 69,
919    SpvCapabilityShaderViewportIndex = 70,
920    SpvCapabilityFragmentShadingRateKHR = 4422,
921    SpvCapabilitySubgroupBallotKHR = 4423,
922    SpvCapabilityDrawParameters = 4427,
923    SpvCapabilityWorkgroupMemoryExplicitLayoutKHR = 4428,
924    SpvCapabilityWorkgroupMemoryExplicitLayout8BitAccessKHR = 4429,
925    SpvCapabilityWorkgroupMemoryExplicitLayout16BitAccessKHR = 4430,
926    SpvCapabilitySubgroupVoteKHR = 4431,
927    SpvCapabilityStorageBuffer16BitAccess = 4433,
928    SpvCapabilityStorageUniformBufferBlock16 = 4433,
929    SpvCapabilityStorageUniform16 = 4434,
930    SpvCapabilityUniformAndStorageBuffer16BitAccess = 4434,
931    SpvCapabilityStoragePushConstant16 = 4435,
932    SpvCapabilityStorageInputOutput16 = 4436,
933    SpvCapabilityDeviceGroup = 4437,
934    SpvCapabilityMultiView = 4439,
935    SpvCapabilityVariablePointersStorageBuffer = 4441,
936    SpvCapabilityVariablePointers = 4442,
937    SpvCapabilityAtomicStorageOps = 4445,
938    SpvCapabilitySampleMaskPostDepthCoverage = 4447,
939    SpvCapabilityStorageBuffer8BitAccess = 4448,
940    SpvCapabilityUniformAndStorageBuffer8BitAccess = 4449,
941    SpvCapabilityStoragePushConstant8 = 4450,
942    SpvCapabilityDenormPreserve = 4464,
943    SpvCapabilityDenormFlushToZero = 4465,
944    SpvCapabilitySignedZeroInfNanPreserve = 4466,
945    SpvCapabilityRoundingModeRTE = 4467,
946    SpvCapabilityRoundingModeRTZ = 4468,
947    SpvCapabilityRayQueryProvisionalKHR = 4471,
948    SpvCapabilityRayQueryKHR = 4472,
949    SpvCapabilityRayTraversalPrimitiveCullingKHR = 4478,
950    SpvCapabilityRayTracingKHR = 4479,
951    SpvCapabilityFloat16ImageAMD = 5008,
952    SpvCapabilityImageGatherBiasLodAMD = 5009,
953    SpvCapabilityFragmentMaskAMD = 5010,
954    SpvCapabilityStencilExportEXT = 5013,
955    SpvCapabilityImageReadWriteLodAMD = 5015,
956    SpvCapabilityInt64ImageEXT = 5016,
957    SpvCapabilityShaderClockKHR = 5055,
958    SpvCapabilitySampleMaskOverrideCoverageNV = 5249,
959    SpvCapabilityGeometryShaderPassthroughNV = 5251,
960    SpvCapabilityShaderViewportIndexLayerEXT = 5254,
961    SpvCapabilityShaderViewportIndexLayerNV = 5254,
962    SpvCapabilityShaderViewportMaskNV = 5255,
963    SpvCapabilityShaderStereoViewNV = 5259,
964    SpvCapabilityPerViewAttributesNV = 5260,
965    SpvCapabilityFragmentFullyCoveredEXT = 5265,
966    SpvCapabilityMeshShadingNV = 5266,
967    SpvCapabilityImageFootprintNV = 5282,
968    SpvCapabilityFragmentBarycentricNV = 5284,
969    SpvCapabilityComputeDerivativeGroupQuadsNV = 5288,
970    SpvCapabilityFragmentDensityEXT = 5291,
971    SpvCapabilityShadingRateNV = 5291,
972    SpvCapabilityGroupNonUniformPartitionedNV = 5297,
973    SpvCapabilityShaderNonUniform = 5301,
974    SpvCapabilityShaderNonUniformEXT = 5301,
975    SpvCapabilityRuntimeDescriptorArray = 5302,
976    SpvCapabilityRuntimeDescriptorArrayEXT = 5302,
977    SpvCapabilityInputAttachmentArrayDynamicIndexing = 5303,
978    SpvCapabilityInputAttachmentArrayDynamicIndexingEXT = 5303,
979    SpvCapabilityUniformTexelBufferArrayDynamicIndexing = 5304,
980    SpvCapabilityUniformTexelBufferArrayDynamicIndexingEXT = 5304,
981    SpvCapabilityStorageTexelBufferArrayDynamicIndexing = 5305,
982    SpvCapabilityStorageTexelBufferArrayDynamicIndexingEXT = 5305,
983    SpvCapabilityUniformBufferArrayNonUniformIndexing = 5306,
984    SpvCapabilityUniformBufferArrayNonUniformIndexingEXT = 5306,
985    SpvCapabilitySampledImageArrayNonUniformIndexing = 5307,
986    SpvCapabilitySampledImageArrayNonUniformIndexingEXT = 5307,
987    SpvCapabilityStorageBufferArrayNonUniformIndexing = 5308,
988    SpvCapabilityStorageBufferArrayNonUniformIndexingEXT = 5308,
989    SpvCapabilityStorageImageArrayNonUniformIndexing = 5309,
990    SpvCapabilityStorageImageArrayNonUniformIndexingEXT = 5309,
991    SpvCapabilityInputAttachmentArrayNonUniformIndexing = 5310,
992    SpvCapabilityInputAttachmentArrayNonUniformIndexingEXT = 5310,
993    SpvCapabilityUniformTexelBufferArrayNonUniformIndexing = 5311,
994    SpvCapabilityUniformTexelBufferArrayNonUniformIndexingEXT = 5311,
995    SpvCapabilityStorageTexelBufferArrayNonUniformIndexing = 5312,
996    SpvCapabilityStorageTexelBufferArrayNonUniformIndexingEXT = 5312,
997    SpvCapabilityRayTracingNV = 5340,
998    SpvCapabilityVulkanMemoryModel = 5345,
999    SpvCapabilityVulkanMemoryModelKHR = 5345,
1000    SpvCapabilityVulkanMemoryModelDeviceScope = 5346,
1001    SpvCapabilityVulkanMemoryModelDeviceScopeKHR = 5346,
1002    SpvCapabilityPhysicalStorageBufferAddresses = 5347,
1003    SpvCapabilityPhysicalStorageBufferAddressesEXT = 5347,
1004    SpvCapabilityComputeDerivativeGroupLinearNV = 5350,
1005    SpvCapabilityRayTracingProvisionalKHR = 5353,
1006    SpvCapabilityCooperativeMatrixNV = 5357,
1007    SpvCapabilityFragmentShaderSampleInterlockEXT = 5363,
1008    SpvCapabilityFragmentShaderShadingRateInterlockEXT = 5372,
1009    SpvCapabilityShaderSMBuiltinsNV = 5373,
1010    SpvCapabilityFragmentShaderPixelInterlockEXT = 5378,
1011    SpvCapabilityDemoteToHelperInvocationEXT = 5379,
1012    SpvCapabilitySubgroupShuffleINTEL = 5568,
1013    SpvCapabilitySubgroupBufferBlockIOINTEL = 5569,
1014    SpvCapabilitySubgroupImageBlockIOINTEL = 5570,
1015    SpvCapabilitySubgroupImageMediaBlockIOINTEL = 5579,
1016    SpvCapabilityRoundToInfinityINTEL = 5582,
1017    SpvCapabilityFloatingPointModeINTEL = 5583,
1018    SpvCapabilityIntegerFunctions2INTEL = 5584,
1019    SpvCapabilityFunctionPointersINTEL = 5603,
1020    SpvCapabilityIndirectReferencesINTEL = 5604,
1021    SpvCapabilityAsmINTEL = 5606,
1022    SpvCapabilityAtomicFloat32MinMaxEXT = 5612,
1023    SpvCapabilityAtomicFloat64MinMaxEXT = 5613,
1024    SpvCapabilityAtomicFloat16MinMaxEXT = 5616,
1025    SpvCapabilityVectorComputeINTEL = 5617,
1026    SpvCapabilityVectorAnyINTEL = 5619,
1027    SpvCapabilityExpectAssumeKHR = 5629,
1028    SpvCapabilitySubgroupAvcMotionEstimationINTEL = 5696,
1029    SpvCapabilitySubgroupAvcMotionEstimationIntraINTEL = 5697,
1030    SpvCapabilitySubgroupAvcMotionEstimationChromaINTEL = 5698,
1031    SpvCapabilityVariableLengthArrayINTEL = 5817,
1032    SpvCapabilityFunctionFloatControlINTEL = 5821,
1033    SpvCapabilityFPGAMemoryAttributesINTEL = 5824,
1034    SpvCapabilityFPFastMathModeINTEL = 5837,
1035    SpvCapabilityArbitraryPrecisionIntegersINTEL = 5844,
1036    SpvCapabilityArbitraryPrecisionFloatingPointINTEL = 5845,
1037    SpvCapabilityUnstructuredLoopControlsINTEL = 5886,
1038    SpvCapabilityFPGALoopControlsINTEL = 5888,
1039    SpvCapabilityKernelAttributesINTEL = 5892,
1040    SpvCapabilityFPGAKernelAttributesINTEL = 5897,
1041    SpvCapabilityFPGAMemoryAccessesINTEL = 5898,
1042    SpvCapabilityFPGAClusterAttributesINTEL = 5904,
1043    SpvCapabilityLoopFuseINTEL = 5906,
1044    SpvCapabilityFPGABufferLocationINTEL = 5920,
1045    SpvCapabilityArbitraryPrecisionFixedPointINTEL = 5922,
1046    SpvCapabilityUSMStorageClassesINTEL = 5935,
1047    SpvCapabilityIOPipesINTEL = 5943,
1048    SpvCapabilityBlockingPipesINTEL = 5945,
1049    SpvCapabilityFPGARegINTEL = 5948,
1050    SpvCapabilityDotProductInputAllKHR = 6016,
1051    SpvCapabilityDotProductInput4x8BitKHR = 6017,
1052    SpvCapabilityDotProductInput4x8BitPackedKHR = 6018,
1053    SpvCapabilityDotProductKHR = 6019,
1054    SpvCapabilityBitInstructions = 6025,
1055    SpvCapabilityAtomicFloat32AddEXT = 6033,
1056    SpvCapabilityAtomicFloat64AddEXT = 6034,
1057    SpvCapabilityLongConstantCompositeINTEL = 6089,
1058    SpvCapabilityOptNoneINTEL = 6094,
1059    SpvCapabilityAtomicFloat16AddEXT = 6095,
1060    SpvCapabilityDebugInfoModuleINTEL = 6114,
1061    SpvCapabilityMax = 0x7fffffff,
1062} SpvCapability;
1063
1064typedef enum SpvRayFlagsShift_ {
1065    SpvRayFlagsOpaqueKHRShift = 0,
1066    SpvRayFlagsNoOpaqueKHRShift = 1,
1067    SpvRayFlagsTerminateOnFirstHitKHRShift = 2,
1068    SpvRayFlagsSkipClosestHitShaderKHRShift = 3,
1069    SpvRayFlagsCullBackFacingTrianglesKHRShift = 4,
1070    SpvRayFlagsCullFrontFacingTrianglesKHRShift = 5,
1071    SpvRayFlagsCullOpaqueKHRShift = 6,
1072    SpvRayFlagsCullNoOpaqueKHRShift = 7,
1073    SpvRayFlagsSkipTrianglesKHRShift = 8,
1074    SpvRayFlagsSkipAABBsKHRShift = 9,
1075    SpvRayFlagsMax = 0x7fffffff,
1076} SpvRayFlagsShift;
1077
1078typedef enum SpvRayFlagsMask_ {
1079    SpvRayFlagsMaskNone = 0,
1080    SpvRayFlagsOpaqueKHRMask = 0x00000001,
1081    SpvRayFlagsNoOpaqueKHRMask = 0x00000002,
1082    SpvRayFlagsTerminateOnFirstHitKHRMask = 0x00000004,
1083    SpvRayFlagsSkipClosestHitShaderKHRMask = 0x00000008,
1084    SpvRayFlagsCullBackFacingTrianglesKHRMask = 0x00000010,
1085    SpvRayFlagsCullFrontFacingTrianglesKHRMask = 0x00000020,
1086    SpvRayFlagsCullOpaqueKHRMask = 0x00000040,
1087    SpvRayFlagsCullNoOpaqueKHRMask = 0x00000080,
1088    SpvRayFlagsSkipTrianglesKHRMask = 0x00000100,
1089    SpvRayFlagsSkipAABBsKHRMask = 0x00000200,
1090} SpvRayFlagsMask;
1091
1092typedef enum SpvRayQueryIntersection_ {
1093    SpvRayQueryIntersectionRayQueryCandidateIntersectionKHR = 0,
1094    SpvRayQueryIntersectionRayQueryCommittedIntersectionKHR = 1,
1095    SpvRayQueryIntersectionMax = 0x7fffffff,
1096} SpvRayQueryIntersection;
1097
1098typedef enum SpvRayQueryCommittedIntersectionType_ {
1099    SpvRayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionNoneKHR = 0,
1100    SpvRayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionTriangleKHR = 1,
1101    SpvRayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionGeneratedKHR = 2,
1102    SpvRayQueryCommittedIntersectionTypeMax = 0x7fffffff,
1103} SpvRayQueryCommittedIntersectionType;
1104
1105typedef enum SpvRayQueryCandidateIntersectionType_ {
1106    SpvRayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionTriangleKHR = 0,
1107    SpvRayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionAABBKHR = 1,
1108    SpvRayQueryCandidateIntersectionTypeMax = 0x7fffffff,
1109} SpvRayQueryCandidateIntersectionType;
1110
1111typedef enum SpvFragmentShadingRateShift_ {
1112    SpvFragmentShadingRateVertical2PixelsShift = 0,
1113    SpvFragmentShadingRateVertical4PixelsShift = 1,
1114    SpvFragmentShadingRateHorizontal2PixelsShift = 2,
1115    SpvFragmentShadingRateHorizontal4PixelsShift = 3,
1116    SpvFragmentShadingRateMax = 0x7fffffff,
1117} SpvFragmentShadingRateShift;
1118
1119typedef enum SpvFragmentShadingRateMask_ {
1120    SpvFragmentShadingRateMaskNone = 0,
1121    SpvFragmentShadingRateVertical2PixelsMask = 0x00000001,
1122    SpvFragmentShadingRateVertical4PixelsMask = 0x00000002,
1123    SpvFragmentShadingRateHorizontal2PixelsMask = 0x00000004,
1124    SpvFragmentShadingRateHorizontal4PixelsMask = 0x00000008,
1125} SpvFragmentShadingRateMask;
1126
1127typedef enum SpvFPDenormMode_ {
1128    SpvFPDenormModePreserve = 0,
1129    SpvFPDenormModeFlushToZero = 1,
1130    SpvFPDenormModeMax = 0x7fffffff,
1131} SpvFPDenormMode;
1132
1133typedef enum SpvFPOperationMode_ {
1134    SpvFPOperationModeIEEE = 0,
1135    SpvFPOperationModeALT = 1,
1136    SpvFPOperationModeMax = 0x7fffffff,
1137} SpvFPOperationMode;
1138
1139typedef enum SpvQuantizationModes_ {
1140    SpvQuantizationModesTRN = 0,
1141    SpvQuantizationModesTRN_ZERO = 1,
1142    SpvQuantizationModesRND = 2,
1143    SpvQuantizationModesRND_ZERO = 3,
1144    SpvQuantizationModesRND_INF = 4,
1145    SpvQuantizationModesRND_MIN_INF = 5,
1146    SpvQuantizationModesRND_CONV = 6,
1147    SpvQuantizationModesRND_CONV_ODD = 7,
1148    SpvQuantizationModesMax = 0x7fffffff,
1149} SpvQuantizationModes;
1150
1151typedef enum SpvOverflowModes_ {
1152    SpvOverflowModesWRAP = 0,
1153    SpvOverflowModesSAT = 1,
1154    SpvOverflowModesSAT_ZERO = 2,
1155    SpvOverflowModesSAT_SYM = 3,
1156    SpvOverflowModesMax = 0x7fffffff,
1157} SpvOverflowModes;
1158
1159typedef enum SpvPackedVectorFormat_ {
1160    SpvPackedVectorFormatPackedVectorFormat4x8BitKHR = 0,
1161    SpvPackedVectorFormatMax = 0x7fffffff,
1162} SpvPackedVectorFormat;
1163
1164typedef enum SpvOp_ {
1165    SpvOpNop = 0,
1166    SpvOpUndef = 1,
1167    SpvOpSourceContinued = 2,
1168    SpvOpSource = 3,
1169    SpvOpSourceExtension = 4,
1170    SpvOpName = 5,
1171    SpvOpMemberName = 6,
1172    SpvOpString = 7,
1173    SpvOpLine = 8,
1174    SpvOpExtension = 10,
1175    SpvOpExtInstImport = 11,
1176    SpvOpExtInst = 12,
1177    SpvOpMemoryModel = 14,
1178    SpvOpEntryPoint = 15,
1179    SpvOpExecutionMode = 16,
1180    SpvOpCapability = 17,
1181    SpvOpTypeVoid = 19,
1182    SpvOpTypeBool = 20,
1183    SpvOpTypeInt = 21,
1184    SpvOpTypeFloat = 22,
1185    SpvOpTypeVector = 23,
1186    SpvOpTypeMatrix = 24,
1187    SpvOpTypeImage = 25,
1188    SpvOpTypeSampler = 26,
1189    SpvOpTypeSampledImage = 27,
1190    SpvOpTypeArray = 28,
1191    SpvOpTypeRuntimeArray = 29,
1192    SpvOpTypeStruct = 30,
1193    SpvOpTypeOpaque = 31,
1194    SpvOpTypePointer = 32,
1195    SpvOpTypeFunction = 33,
1196    SpvOpTypeEvent = 34,
1197    SpvOpTypeDeviceEvent = 35,
1198    SpvOpTypeReserveId = 36,
1199    SpvOpTypeQueue = 37,
1200    SpvOpTypePipe = 38,
1201    SpvOpTypeForwardPointer = 39,
1202    SpvOpConstantTrue = 41,
1203    SpvOpConstantFalse = 42,
1204    SpvOpConstant = 43,
1205    SpvOpConstantComposite = 44,
1206    SpvOpConstantSampler = 45,
1207    SpvOpConstantNull = 46,
1208    SpvOpSpecConstantTrue = 48,
1209    SpvOpSpecConstantFalse = 49,
1210    SpvOpSpecConstant = 50,
1211    SpvOpSpecConstantComposite = 51,
1212    SpvOpSpecConstantOp = 52,
1213    SpvOpFunction = 54,
1214    SpvOpFunctionParameter = 55,
1215    SpvOpFunctionEnd = 56,
1216    SpvOpFunctionCall = 57,
1217    SpvOpVariable = 59,
1218    SpvOpImageTexelPointer = 60,
1219    SpvOpLoad = 61,
1220    SpvOpStore = 62,
1221    SpvOpCopyMemory = 63,
1222    SpvOpCopyMemorySized = 64,
1223    SpvOpAccessChain = 65,
1224    SpvOpInBoundsAccessChain = 66,
1225    SpvOpPtrAccessChain = 67,
1226    SpvOpArrayLength = 68,
1227    SpvOpGenericPtrMemSemantics = 69,
1228    SpvOpInBoundsPtrAccessChain = 70,
1229    SpvOpDecorate = 71,
1230    SpvOpMemberDecorate = 72,
1231    SpvOpDecorationGroup = 73,
1232    SpvOpGroupDecorate = 74,
1233    SpvOpGroupMemberDecorate = 75,
1234    SpvOpVectorExtractDynamic = 77,
1235    SpvOpVectorInsertDynamic = 78,
1236    SpvOpVectorShuffle = 79,
1237    SpvOpCompositeConstruct = 80,
1238    SpvOpCompositeExtract = 81,
1239    SpvOpCompositeInsert = 82,
1240    SpvOpCopyObject = 83,
1241    SpvOpTranspose = 84,
1242    SpvOpSampledImage = 86,
1243    SpvOpImageSampleImplicitLod = 87,
1244    SpvOpImageSampleExplicitLod = 88,
1245    SpvOpImageSampleDrefImplicitLod = 89,
1246    SpvOpImageSampleDrefExplicitLod = 90,
1247    SpvOpImageSampleProjImplicitLod = 91,
1248    SpvOpImageSampleProjExplicitLod = 92,
1249    SpvOpImageSampleProjDrefImplicitLod = 93,
1250    SpvOpImageSampleProjDrefExplicitLod = 94,
1251    SpvOpImageFetch = 95,
1252    SpvOpImageGather = 96,
1253    SpvOpImageDrefGather = 97,
1254    SpvOpImageRead = 98,
1255    SpvOpImageWrite = 99,
1256    SpvOpImage = 100,
1257    SpvOpImageQueryFormat = 101,
1258    SpvOpImageQueryOrder = 102,
1259    SpvOpImageQuerySizeLod = 103,
1260    SpvOpImageQuerySize = 104,
1261    SpvOpImageQueryLod = 105,
1262    SpvOpImageQueryLevels = 106,
1263    SpvOpImageQuerySamples = 107,
1264    SpvOpConvertFToU = 109,
1265    SpvOpConvertFToS = 110,
1266    SpvOpConvertSToF = 111,
1267    SpvOpConvertUToF = 112,
1268    SpvOpUConvert = 113,
1269    SpvOpSConvert = 114,
1270    SpvOpFConvert = 115,
1271    SpvOpQuantizeToF16 = 116,
1272    SpvOpConvertPtrToU = 117,
1273    SpvOpSatConvertSToU = 118,
1274    SpvOpSatConvertUToS = 119,
1275    SpvOpConvertUToPtr = 120,
1276    SpvOpPtrCastToGeneric = 121,
1277    SpvOpGenericCastToPtr = 122,
1278    SpvOpGenericCastToPtrExplicit = 123,
1279    SpvOpBitcast = 124,
1280    SpvOpSNegate = 126,
1281    SpvOpFNegate = 127,
1282    SpvOpIAdd = 128,
1283    SpvOpFAdd = 129,
1284    SpvOpISub = 130,
1285    SpvOpFSub = 131,
1286    SpvOpIMul = 132,
1287    SpvOpFMul = 133,
1288    SpvOpUDiv = 134,
1289    SpvOpSDiv = 135,
1290    SpvOpFDiv = 136,
1291    SpvOpUMod = 137,
1292    SpvOpSRem = 138,
1293    SpvOpSMod = 139,
1294    SpvOpFRem = 140,
1295    SpvOpFMod = 141,
1296    SpvOpVectorTimesScalar = 142,
1297    SpvOpMatrixTimesScalar = 143,
1298    SpvOpVectorTimesMatrix = 144,
1299    SpvOpMatrixTimesVector = 145,
1300    SpvOpMatrixTimesMatrix = 146,
1301    SpvOpOuterProduct = 147,
1302    SpvOpDot = 148,
1303    SpvOpIAddCarry = 149,
1304    SpvOpISubBorrow = 150,
1305    SpvOpUMulExtended = 151,
1306    SpvOpSMulExtended = 152,
1307    SpvOpAny = 154,
1308    SpvOpAll = 155,
1309    SpvOpIsNan = 156,
1310    SpvOpIsInf = 157,
1311    SpvOpIsFinite = 158,
1312    SpvOpIsNormal = 159,
1313    SpvOpSignBitSet = 160,
1314    SpvOpLessOrGreater = 161,
1315    SpvOpOrdered = 162,
1316    SpvOpUnordered = 163,
1317    SpvOpLogicalEqual = 164,
1318    SpvOpLogicalNotEqual = 165,
1319    SpvOpLogicalOr = 166,
1320    SpvOpLogicalAnd = 167,
1321    SpvOpLogicalNot = 168,
1322    SpvOpSelect = 169,
1323    SpvOpIEqual = 170,
1324    SpvOpINotEqual = 171,
1325    SpvOpUGreaterThan = 172,
1326    SpvOpSGreaterThan = 173,
1327    SpvOpUGreaterThanEqual = 174,
1328    SpvOpSGreaterThanEqual = 175,
1329    SpvOpULessThan = 176,
1330    SpvOpSLessThan = 177,
1331    SpvOpULessThanEqual = 178,
1332    SpvOpSLessThanEqual = 179,
1333    SpvOpFOrdEqual = 180,
1334    SpvOpFUnordEqual = 181,
1335    SpvOpFOrdNotEqual = 182,
1336    SpvOpFUnordNotEqual = 183,
1337    SpvOpFOrdLessThan = 184,
1338    SpvOpFUnordLessThan = 185,
1339    SpvOpFOrdGreaterThan = 186,
1340    SpvOpFUnordGreaterThan = 187,
1341    SpvOpFOrdLessThanEqual = 188,
1342    SpvOpFUnordLessThanEqual = 189,
1343    SpvOpFOrdGreaterThanEqual = 190,
1344    SpvOpFUnordGreaterThanEqual = 191,
1345    SpvOpShiftRightLogical = 194,
1346    SpvOpShiftRightArithmetic = 195,
1347    SpvOpShiftLeftLogical = 196,
1348    SpvOpBitwiseOr = 197,
1349    SpvOpBitwiseXor = 198,
1350    SpvOpBitwiseAnd = 199,
1351    SpvOpNot = 200,
1352    SpvOpBitFieldInsert = 201,
1353    SpvOpBitFieldSExtract = 202,
1354    SpvOpBitFieldUExtract = 203,
1355    SpvOpBitReverse = 204,
1356    SpvOpBitCount = 205,
1357    SpvOpDPdx = 207,
1358    SpvOpDPdy = 208,
1359    SpvOpFwidth = 209,
1360    SpvOpDPdxFine = 210,
1361    SpvOpDPdyFine = 211,
1362    SpvOpFwidthFine = 212,
1363    SpvOpDPdxCoarse = 213,
1364    SpvOpDPdyCoarse = 214,
1365    SpvOpFwidthCoarse = 215,
1366    SpvOpEmitVertex = 218,
1367    SpvOpEndPrimitive = 219,
1368    SpvOpEmitStreamVertex = 220,
1369    SpvOpEndStreamPrimitive = 221,
1370    SpvOpControlBarrier = 224,
1371    SpvOpMemoryBarrier = 225,
1372    SpvOpAtomicLoad = 227,
1373    SpvOpAtomicStore = 228,
1374    SpvOpAtomicExchange = 229,
1375    SpvOpAtomicCompareExchange = 230,
1376    SpvOpAtomicCompareExchangeWeak = 231,
1377    SpvOpAtomicIIncrement = 232,
1378    SpvOpAtomicIDecrement = 233,
1379    SpvOpAtomicIAdd = 234,
1380    SpvOpAtomicISub = 235,
1381    SpvOpAtomicSMin = 236,
1382    SpvOpAtomicUMin = 237,
1383    SpvOpAtomicSMax = 238,
1384    SpvOpAtomicUMax = 239,
1385    SpvOpAtomicAnd = 240,
1386    SpvOpAtomicOr = 241,
1387    SpvOpAtomicXor = 242,
1388    SpvOpPhi = 245,
1389    SpvOpLoopMerge = 246,
1390    SpvOpSelectionMerge = 247,
1391    SpvOpLabel = 248,
1392    SpvOpBranch = 249,
1393    SpvOpBranchConditional = 250,
1394    SpvOpSwitch = 251,
1395    SpvOpKill = 252,
1396    SpvOpReturn = 253,
1397    SpvOpReturnValue = 254,
1398    SpvOpUnreachable = 255,
1399    SpvOpLifetimeStart = 256,
1400    SpvOpLifetimeStop = 257,
1401    SpvOpGroupAsyncCopy = 259,
1402    SpvOpGroupWaitEvents = 260,
1403    SpvOpGroupAll = 261,
1404    SpvOpGroupAny = 262,
1405    SpvOpGroupBroadcast = 263,
1406    SpvOpGroupIAdd = 264,
1407    SpvOpGroupFAdd = 265,
1408    SpvOpGroupFMin = 266,
1409    SpvOpGroupUMin = 267,
1410    SpvOpGroupSMin = 268,
1411    SpvOpGroupFMax = 269,
1412    SpvOpGroupUMax = 270,
1413    SpvOpGroupSMax = 271,
1414    SpvOpReadPipe = 274,
1415    SpvOpWritePipe = 275,
1416    SpvOpReservedReadPipe = 276,
1417    SpvOpReservedWritePipe = 277,
1418    SpvOpReserveReadPipePackets = 278,
1419    SpvOpReserveWritePipePackets = 279,
1420    SpvOpCommitReadPipe = 280,
1421    SpvOpCommitWritePipe = 281,
1422    SpvOpIsValidReserveId = 282,
1423    SpvOpGetNumPipePackets = 283,
1424    SpvOpGetMaxPipePackets = 284,
1425    SpvOpGroupReserveReadPipePackets = 285,
1426    SpvOpGroupReserveWritePipePackets = 286,
1427    SpvOpGroupCommitReadPipe = 287,
1428    SpvOpGroupCommitWritePipe = 288,
1429    SpvOpEnqueueMarker = 291,
1430    SpvOpEnqueueKernel = 292,
1431    SpvOpGetKernelNDrangeSubGroupCount = 293,
1432    SpvOpGetKernelNDrangeMaxSubGroupSize = 294,
1433    SpvOpGetKernelWorkGroupSize = 295,
1434    SpvOpGetKernelPreferredWorkGroupSizeMultiple = 296,
1435    SpvOpRetainEvent = 297,
1436    SpvOpReleaseEvent = 298,
1437    SpvOpCreateUserEvent = 299,
1438    SpvOpIsValidEvent = 300,
1439    SpvOpSetUserEventStatus = 301,
1440    SpvOpCaptureEventProfilingInfo = 302,
1441    SpvOpGetDefaultQueue = 303,
1442    SpvOpBuildNDRange = 304,
1443    SpvOpImageSparseSampleImplicitLod = 305,
1444    SpvOpImageSparseSampleExplicitLod = 306,
1445    SpvOpImageSparseSampleDrefImplicitLod = 307,
1446    SpvOpImageSparseSampleDrefExplicitLod = 308,
1447    SpvOpImageSparseSampleProjImplicitLod = 309,
1448    SpvOpImageSparseSampleProjExplicitLod = 310,
1449    SpvOpImageSparseSampleProjDrefImplicitLod = 311,
1450    SpvOpImageSparseSampleProjDrefExplicitLod = 312,
1451    SpvOpImageSparseFetch = 313,
1452    SpvOpImageSparseGather = 314,
1453    SpvOpImageSparseDrefGather = 315,
1454    SpvOpImageSparseTexelsResident = 316,
1455    SpvOpNoLine = 317,
1456    SpvOpAtomicFlagTestAndSet = 318,
1457    SpvOpAtomicFlagClear = 319,
1458    SpvOpImageSparseRead = 320,
1459    SpvOpSizeOf = 321,
1460    SpvOpTypePipeStorage = 322,
1461    SpvOpConstantPipeStorage = 323,
1462    SpvOpCreatePipeFromPipeStorage = 324,
1463    SpvOpGetKernelLocalSizeForSubgroupCount = 325,
1464    SpvOpGetKernelMaxNumSubgroups = 326,
1465    SpvOpTypeNamedBarrier = 327,
1466    SpvOpNamedBarrierInitialize = 328,
1467    SpvOpMemoryNamedBarrier = 329,
1468    SpvOpModuleProcessed = 330,
1469    SpvOpExecutionModeId = 331,
1470    SpvOpDecorateId = 332,
1471    SpvOpGroupNonUniformElect = 333,
1472    SpvOpGroupNonUniformAll = 334,
1473    SpvOpGroupNonUniformAny = 335,
1474    SpvOpGroupNonUniformAllEqual = 336,
1475    SpvOpGroupNonUniformBroadcast = 337,
1476    SpvOpGroupNonUniformBroadcastFirst = 338,
1477    SpvOpGroupNonUniformBallot = 339,
1478    SpvOpGroupNonUniformInverseBallot = 340,
1479    SpvOpGroupNonUniformBallotBitExtract = 341,
1480    SpvOpGroupNonUniformBallotBitCount = 342,
1481    SpvOpGroupNonUniformBallotFindLSB = 343,
1482    SpvOpGroupNonUniformBallotFindMSB = 344,
1483    SpvOpGroupNonUniformShuffle = 345,
1484    SpvOpGroupNonUniformShuffleXor = 346,
1485    SpvOpGroupNonUniformShuffleUp = 347,
1486    SpvOpGroupNonUniformShuffleDown = 348,
1487    SpvOpGroupNonUniformIAdd = 349,
1488    SpvOpGroupNonUniformFAdd = 350,
1489    SpvOpGroupNonUniformIMul = 351,
1490    SpvOpGroupNonUniformFMul = 352,
1491    SpvOpGroupNonUniformSMin = 353,
1492    SpvOpGroupNonUniformUMin = 354,
1493    SpvOpGroupNonUniformFMin = 355,
1494    SpvOpGroupNonUniformSMax = 356,
1495    SpvOpGroupNonUniformUMax = 357,
1496    SpvOpGroupNonUniformFMax = 358,
1497    SpvOpGroupNonUniformBitwiseAnd = 359,
1498    SpvOpGroupNonUniformBitwiseOr = 360,
1499    SpvOpGroupNonUniformBitwiseXor = 361,
1500    SpvOpGroupNonUniformLogicalAnd = 362,
1501    SpvOpGroupNonUniformLogicalOr = 363,
1502    SpvOpGroupNonUniformLogicalXor = 364,
1503    SpvOpGroupNonUniformQuadBroadcast = 365,
1504    SpvOpGroupNonUniformQuadSwap = 366,
1505    SpvOpCopyLogical = 400,
1506    SpvOpPtrEqual = 401,
1507    SpvOpPtrNotEqual = 402,
1508    SpvOpPtrDiff = 403,
1509    SpvOpTerminateInvocation = 4416,
1510    SpvOpSubgroupBallotKHR = 4421,
1511    SpvOpSubgroupFirstInvocationKHR = 4422,
1512    SpvOpSubgroupAllKHR = 4428,
1513    SpvOpSubgroupAnyKHR = 4429,
1514    SpvOpSubgroupAllEqualKHR = 4430,
1515    SpvOpSubgroupReadInvocationKHR = 4432,
1516    SpvOpTraceRayKHR = 4445,
1517    SpvOpExecuteCallableKHR = 4446,
1518    SpvOpConvertUToAccelerationStructureKHR = 4447,
1519    SpvOpIgnoreIntersectionKHR = 4448,
1520    SpvOpTerminateRayKHR = 4449,
1521    SpvOpSDotKHR = 4450,
1522    SpvOpUDotKHR = 4451,
1523    SpvOpSUDotKHR = 4452,
1524    SpvOpSDotAccSatKHR = 4453,
1525    SpvOpUDotAccSatKHR = 4454,
1526    SpvOpSUDotAccSatKHR = 4455,
1527    SpvOpTypeRayQueryKHR = 4472,
1528    SpvOpRayQueryInitializeKHR = 4473,
1529    SpvOpRayQueryTerminateKHR = 4474,
1530    SpvOpRayQueryGenerateIntersectionKHR = 4475,
1531    SpvOpRayQueryConfirmIntersectionKHR = 4476,
1532    SpvOpRayQueryProceedKHR = 4477,
1533    SpvOpRayQueryGetIntersectionTypeKHR = 4479,
1534    SpvOpGroupIAddNonUniformAMD = 5000,
1535    SpvOpGroupFAddNonUniformAMD = 5001,
1536    SpvOpGroupFMinNonUniformAMD = 5002,
1537    SpvOpGroupUMinNonUniformAMD = 5003,
1538    SpvOpGroupSMinNonUniformAMD = 5004,
1539    SpvOpGroupFMaxNonUniformAMD = 5005,
1540    SpvOpGroupUMaxNonUniformAMD = 5006,
1541    SpvOpGroupSMaxNonUniformAMD = 5007,
1542    SpvOpFragmentMaskFetchAMD = 5011,
1543    SpvOpFragmentFetchAMD = 5012,
1544    SpvOpReadClockKHR = 5056,
1545    SpvOpImageSampleFootprintNV = 5283,
1546    SpvOpGroupNonUniformPartitionNV = 5296,
1547    SpvOpWritePackedPrimitiveIndices4x8NV = 5299,
1548    SpvOpReportIntersectionKHR = 5334,
1549    SpvOpReportIntersectionNV = 5334,
1550    SpvOpIgnoreIntersectionNV = 5335,
1551    SpvOpTerminateRayNV = 5336,
1552    SpvOpTraceNV = 5337,
1553    SpvOpTypeAccelerationStructureKHR = 5341,
1554    SpvOpTypeAccelerationStructureNV = 5341,
1555    SpvOpExecuteCallableNV = 5344,
1556    SpvOpTypeCooperativeMatrixNV = 5358,
1557    SpvOpCooperativeMatrixLoadNV = 5359,
1558    SpvOpCooperativeMatrixStoreNV = 5360,
1559    SpvOpCooperativeMatrixMulAddNV = 5361,
1560    SpvOpCooperativeMatrixLengthNV = 5362,
1561    SpvOpBeginInvocationInterlockEXT = 5364,
1562    SpvOpEndInvocationInterlockEXT = 5365,
1563    SpvOpDemoteToHelperInvocationEXT = 5380,
1564    SpvOpIsHelperInvocationEXT = 5381,
1565    SpvOpSubgroupShuffleINTEL = 5571,
1566    SpvOpSubgroupShuffleDownINTEL = 5572,
1567    SpvOpSubgroupShuffleUpINTEL = 5573,
1568    SpvOpSubgroupShuffleXorINTEL = 5574,
1569    SpvOpSubgroupBlockReadINTEL = 5575,
1570    SpvOpSubgroupBlockWriteINTEL = 5576,
1571    SpvOpSubgroupImageBlockReadINTEL = 5577,
1572    SpvOpSubgroupImageBlockWriteINTEL = 5578,
1573    SpvOpSubgroupImageMediaBlockReadINTEL = 5580,
1574    SpvOpSubgroupImageMediaBlockWriteINTEL = 5581,
1575    SpvOpUCountLeadingZerosINTEL = 5585,
1576    SpvOpUCountTrailingZerosINTEL = 5586,
1577    SpvOpAbsISubINTEL = 5587,
1578    SpvOpAbsUSubINTEL = 5588,
1579    SpvOpIAddSatINTEL = 5589,
1580    SpvOpUAddSatINTEL = 5590,
1581    SpvOpIAverageINTEL = 5591,
1582    SpvOpUAverageINTEL = 5592,
1583    SpvOpIAverageRoundedINTEL = 5593,
1584    SpvOpUAverageRoundedINTEL = 5594,
1585    SpvOpISubSatINTEL = 5595,
1586    SpvOpUSubSatINTEL = 5596,
1587    SpvOpIMul32x16INTEL = 5597,
1588    SpvOpUMul32x16INTEL = 5598,
1589    SpvOpConstFunctionPointerINTEL = 5600,
1590    SpvOpFunctionPointerCallINTEL = 5601,
1591    SpvOpAsmTargetINTEL = 5609,
1592    SpvOpAsmINTEL = 5610,
1593    SpvOpAsmCallINTEL = 5611,
1594    SpvOpAtomicFMinEXT = 5614,
1595    SpvOpAtomicFMaxEXT = 5615,
1596    SpvOpAssumeTrueKHR = 5630,
1597    SpvOpExpectKHR = 5631,
1598    SpvOpDecorateString = 5632,
1599    SpvOpDecorateStringGOOGLE = 5632,
1600    SpvOpMemberDecorateString = 5633,
1601    SpvOpMemberDecorateStringGOOGLE = 5633,
1602    SpvOpVmeImageINTEL = 5699,
1603    SpvOpTypeVmeImageINTEL = 5700,
1604    SpvOpTypeAvcImePayloadINTEL = 5701,
1605    SpvOpTypeAvcRefPayloadINTEL = 5702,
1606    SpvOpTypeAvcSicPayloadINTEL = 5703,
1607    SpvOpTypeAvcMcePayloadINTEL = 5704,
1608    SpvOpTypeAvcMceResultINTEL = 5705,
1609    SpvOpTypeAvcImeResultINTEL = 5706,
1610    SpvOpTypeAvcImeResultSingleReferenceStreamoutINTEL = 5707,
1611    SpvOpTypeAvcImeResultDualReferenceStreamoutINTEL = 5708,
1612    SpvOpTypeAvcImeSingleReferenceStreaminINTEL = 5709,
1613    SpvOpTypeAvcImeDualReferenceStreaminINTEL = 5710,
1614    SpvOpTypeAvcRefResultINTEL = 5711,
1615    SpvOpTypeAvcSicResultINTEL = 5712,
1616    SpvOpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL = 5713,
1617    SpvOpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL = 5714,
1618    SpvOpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL = 5715,
1619    SpvOpSubgroupAvcMceSetInterShapePenaltyINTEL = 5716,
1620    SpvOpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL = 5717,
1621    SpvOpSubgroupAvcMceSetInterDirectionPenaltyINTEL = 5718,
1622    SpvOpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL = 5719,
1623    SpvOpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL = 5720,
1624    SpvOpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL = 5721,
1625    SpvOpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL = 5722,
1626    SpvOpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL = 5723,
1627    SpvOpSubgroupAvcMceSetMotionVectorCostFunctionINTEL = 5724,
1628    SpvOpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL = 5725,
1629    SpvOpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL = 5726,
1630    SpvOpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL = 5727,
1631    SpvOpSubgroupAvcMceSetAcOnlyHaarINTEL = 5728,
1632    SpvOpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL = 5729,
1633    SpvOpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL = 5730,
1634    SpvOpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL = 5731,
1635    SpvOpSubgroupAvcMceConvertToImePayloadINTEL = 5732,
1636    SpvOpSubgroupAvcMceConvertToImeResultINTEL = 5733,
1637    SpvOpSubgroupAvcMceConvertToRefPayloadINTEL = 5734,
1638    SpvOpSubgroupAvcMceConvertToRefResultINTEL = 5735,
1639    SpvOpSubgroupAvcMceConvertToSicPayloadINTEL = 5736,
1640    SpvOpSubgroupAvcMceConvertToSicResultINTEL = 5737,
1641    SpvOpSubgroupAvcMceGetMotionVectorsINTEL = 5738,
1642    SpvOpSubgroupAvcMceGetInterDistortionsINTEL = 5739,
1643    SpvOpSubgroupAvcMceGetBestInterDistortionsINTEL = 5740,
1644    SpvOpSubgroupAvcMceGetInterMajorShapeINTEL = 5741,
1645    SpvOpSubgroupAvcMceGetInterMinorShapeINTEL = 5742,
1646    SpvOpSubgroupAvcMceGetInterDirectionsINTEL = 5743,
1647    SpvOpSubgroupAvcMceGetInterMotionVectorCountINTEL = 5744,
1648    SpvOpSubgroupAvcMceGetInterReferenceIdsINTEL = 5745,
1649    SpvOpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL = 5746,
1650    SpvOpSubgroupAvcImeInitializeINTEL = 5747,
1651    SpvOpSubgroupAvcImeSetSingleReferenceINTEL = 5748,
1652    SpvOpSubgroupAvcImeSetDualReferenceINTEL = 5749,
1653    SpvOpSubgroupAvcImeRefWindowSizeINTEL = 5750,
1654    SpvOpSubgroupAvcImeAdjustRefOffsetINTEL = 5751,
1655    SpvOpSubgroupAvcImeConvertToMcePayloadINTEL = 5752,
1656    SpvOpSubgroupAvcImeSetMaxMotionVectorCountINTEL = 5753,
1657    SpvOpSubgroupAvcImeSetUnidirectionalMixDisableINTEL = 5754,
1658    SpvOpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL = 5755,
1659    SpvOpSubgroupAvcImeSetWeightedSadINTEL = 5756,
1660    SpvOpSubgroupAvcImeEvaluateWithSingleReferenceINTEL = 5757,
1661    SpvOpSubgroupAvcImeEvaluateWithDualReferenceINTEL = 5758,
1662    SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL = 5759,
1663    SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL = 5760,
1664    SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL = 5761,
1665    SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL = 5762,
1666    SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL = 5763,
1667    SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL = 5764,
1668    SpvOpSubgroupAvcImeConvertToMceResultINTEL = 5765,
1669    SpvOpSubgroupAvcImeGetSingleReferenceStreaminINTEL = 5766,
1670    SpvOpSubgroupAvcImeGetDualReferenceStreaminINTEL = 5767,
1671    SpvOpSubgroupAvcImeStripSingleReferenceStreamoutINTEL = 5768,
1672    SpvOpSubgroupAvcImeStripDualReferenceStreamoutINTEL = 5769,
1673    SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL = 5770,
1674    SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL = 5771,
1675    SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL = 5772,
1676    SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL = 5773,
1677    SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL = 5774,
1678    SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL = 5775,
1679    SpvOpSubgroupAvcImeGetBorderReachedINTEL = 5776,
1680    SpvOpSubgroupAvcImeGetTruncatedSearchIndicationINTEL = 5777,
1681    SpvOpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL = 5778,
1682    SpvOpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL = 5779,
1683    SpvOpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL = 5780,
1684    SpvOpSubgroupAvcFmeInitializeINTEL = 5781,
1685    SpvOpSubgroupAvcBmeInitializeINTEL = 5782,
1686    SpvOpSubgroupAvcRefConvertToMcePayloadINTEL = 5783,
1687    SpvOpSubgroupAvcRefSetBidirectionalMixDisableINTEL = 5784,
1688    SpvOpSubgroupAvcRefSetBilinearFilterEnableINTEL = 5785,
1689    SpvOpSubgroupAvcRefEvaluateWithSingleReferenceINTEL = 5786,
1690    SpvOpSubgroupAvcRefEvaluateWithDualReferenceINTEL = 5787,
1691    SpvOpSubgroupAvcRefEvaluateWithMultiReferenceINTEL = 5788,
1692    SpvOpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL = 5789,
1693    SpvOpSubgroupAvcRefConvertToMceResultINTEL = 5790,
1694    SpvOpSubgroupAvcSicInitializeINTEL = 5791,
1695    SpvOpSubgroupAvcSicConfigureSkcINTEL = 5792,
1696    SpvOpSubgroupAvcSicConfigureIpeLumaINTEL = 5793,
1697    SpvOpSubgroupAvcSicConfigureIpeLumaChromaINTEL = 5794,
1698    SpvOpSubgroupAvcSicGetMotionVectorMaskINTEL = 5795,
1699    SpvOpSubgroupAvcSicConvertToMcePayloadINTEL = 5796,
1700    SpvOpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL = 5797,
1701    SpvOpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL = 5798,
1702    SpvOpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL = 5799,
1703    SpvOpSubgroupAvcSicSetBilinearFilterEnableINTEL = 5800,
1704    SpvOpSubgroupAvcSicSetSkcForwardTransformEnableINTEL = 5801,
1705    SpvOpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL = 5802,
1706    SpvOpSubgroupAvcSicEvaluateIpeINTEL = 5803,
1707    SpvOpSubgroupAvcSicEvaluateWithSingleReferenceINTEL = 5804,
1708    SpvOpSubgroupAvcSicEvaluateWithDualReferenceINTEL = 5805,
1709    SpvOpSubgroupAvcSicEvaluateWithMultiReferenceINTEL = 5806,
1710    SpvOpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL = 5807,
1711    SpvOpSubgroupAvcSicConvertToMceResultINTEL = 5808,
1712    SpvOpSubgroupAvcSicGetIpeLumaShapeINTEL = 5809,
1713    SpvOpSubgroupAvcSicGetBestIpeLumaDistortionINTEL = 5810,
1714    SpvOpSubgroupAvcSicGetBestIpeChromaDistortionINTEL = 5811,
1715    SpvOpSubgroupAvcSicGetPackedIpeLumaModesINTEL = 5812,
1716    SpvOpSubgroupAvcSicGetIpeChromaModeINTEL = 5813,
1717    SpvOpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL = 5814,
1718    SpvOpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL = 5815,
1719    SpvOpSubgroupAvcSicGetInterRawSadsINTEL = 5816,
1720    SpvOpVariableLengthArrayINTEL = 5818,
1721    SpvOpSaveMemoryINTEL = 5819,
1722    SpvOpRestoreMemoryINTEL = 5820,
1723    SpvOpArbitraryFloatSinCosPiINTEL = 5840,
1724    SpvOpArbitraryFloatCastINTEL = 5841,
1725    SpvOpArbitraryFloatCastFromIntINTEL = 5842,
1726    SpvOpArbitraryFloatCastToIntINTEL = 5843,
1727    SpvOpArbitraryFloatAddINTEL = 5846,
1728    SpvOpArbitraryFloatSubINTEL = 5847,
1729    SpvOpArbitraryFloatMulINTEL = 5848,
1730    SpvOpArbitraryFloatDivINTEL = 5849,
1731    SpvOpArbitraryFloatGTINTEL = 5850,
1732    SpvOpArbitraryFloatGEINTEL = 5851,
1733    SpvOpArbitraryFloatLTINTEL = 5852,
1734    SpvOpArbitraryFloatLEINTEL = 5853,
1735    SpvOpArbitraryFloatEQINTEL = 5854,
1736    SpvOpArbitraryFloatRecipINTEL = 5855,
1737    SpvOpArbitraryFloatRSqrtINTEL = 5856,
1738    SpvOpArbitraryFloatCbrtINTEL = 5857,
1739    SpvOpArbitraryFloatHypotINTEL = 5858,
1740    SpvOpArbitraryFloatSqrtINTEL = 5859,
1741    SpvOpArbitraryFloatLogINTEL = 5860,
1742    SpvOpArbitraryFloatLog2INTEL = 5861,
1743    SpvOpArbitraryFloatLog10INTEL = 5862,
1744    SpvOpArbitraryFloatLog1pINTEL = 5863,
1745    SpvOpArbitraryFloatExpINTEL = 5864,
1746    SpvOpArbitraryFloatExp2INTEL = 5865,
1747    SpvOpArbitraryFloatExp10INTEL = 5866,
1748    SpvOpArbitraryFloatExpm1INTEL = 5867,
1749    SpvOpArbitraryFloatSinINTEL = 5868,
1750    SpvOpArbitraryFloatCosINTEL = 5869,
1751    SpvOpArbitraryFloatSinCosINTEL = 5870,
1752    SpvOpArbitraryFloatSinPiINTEL = 5871,
1753    SpvOpArbitraryFloatCosPiINTEL = 5872,
1754    SpvOpArbitraryFloatASinINTEL = 5873,
1755    SpvOpArbitraryFloatASinPiINTEL = 5874,
1756    SpvOpArbitraryFloatACosINTEL = 5875,
1757    SpvOpArbitraryFloatACosPiINTEL = 5876,
1758    SpvOpArbitraryFloatATanINTEL = 5877,
1759    SpvOpArbitraryFloatATanPiINTEL = 5878,
1760    SpvOpArbitraryFloatATan2INTEL = 5879,
1761    SpvOpArbitraryFloatPowINTEL = 5880,
1762    SpvOpArbitraryFloatPowRINTEL = 5881,
1763    SpvOpArbitraryFloatPowNINTEL = 5882,
1764    SpvOpLoopControlINTEL = 5887,
1765    SpvOpFixedSqrtINTEL = 5923,
1766    SpvOpFixedRecipINTEL = 5924,
1767    SpvOpFixedRsqrtINTEL = 5925,
1768    SpvOpFixedSinINTEL = 5926,
1769    SpvOpFixedCosINTEL = 5927,
1770    SpvOpFixedSinCosINTEL = 5928,
1771    SpvOpFixedSinPiINTEL = 5929,
1772    SpvOpFixedCosPiINTEL = 5930,
1773    SpvOpFixedSinCosPiINTEL = 5931,
1774    SpvOpFixedLogINTEL = 5932,
1775    SpvOpFixedExpINTEL = 5933,
1776    SpvOpPtrCastToCrossWorkgroupINTEL = 5934,
1777    SpvOpCrossWorkgroupCastToPtrINTEL = 5938,
1778    SpvOpReadPipeBlockingINTEL = 5946,
1779    SpvOpWritePipeBlockingINTEL = 5947,
1780    SpvOpFPGARegINTEL = 5949,
1781    SpvOpRayQueryGetRayTMinKHR = 6016,
1782    SpvOpRayQueryGetRayFlagsKHR = 6017,
1783    SpvOpRayQueryGetIntersectionTKHR = 6018,
1784    SpvOpRayQueryGetIntersectionInstanceCustomIndexKHR = 6019,
1785    SpvOpRayQueryGetIntersectionInstanceIdKHR = 6020,
1786    SpvOpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR = 6021,
1787    SpvOpRayQueryGetIntersectionGeometryIndexKHR = 6022,
1788    SpvOpRayQueryGetIntersectionPrimitiveIndexKHR = 6023,
1789    SpvOpRayQueryGetIntersectionBarycentricsKHR = 6024,
1790    SpvOpRayQueryGetIntersectionFrontFaceKHR = 6025,
1791    SpvOpRayQueryGetIntersectionCandidateAABBOpaqueKHR = 6026,
1792    SpvOpRayQueryGetIntersectionObjectRayDirectionKHR = 6027,
1793    SpvOpRayQueryGetIntersectionObjectRayOriginKHR = 6028,
1794    SpvOpRayQueryGetWorldRayDirectionKHR = 6029,
1795    SpvOpRayQueryGetWorldRayOriginKHR = 6030,
1796    SpvOpRayQueryGetIntersectionObjectToWorldKHR = 6031,
1797    SpvOpRayQueryGetIntersectionWorldToObjectKHR = 6032,
1798    SpvOpAtomicFAddEXT = 6035,
1799    SpvOpTypeBufferSurfaceINTEL = 6086,
1800    SpvOpTypeStructContinuedINTEL = 6090,
1801    SpvOpConstantCompositeContinuedINTEL = 6091,
1802    SpvOpSpecConstantCompositeContinuedINTEL = 6092,
1803    SpvOpMax = 0x7fffffff,
1804} SpvOp;
1805
1806#ifdef SPV_ENABLE_UTILITY_CODE
1807inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultType) {
1808    *hasResult = *hasResultType = false;
1809    switch (opcode) {
1810    default: /* unknown opcode */ break;
1811    case SpvOpNop: *hasResult = false; *hasResultType = false; break;
1812    case SpvOpUndef: *hasResult = true; *hasResultType = true; break;
1813    case SpvOpSourceContinued: *hasResult = false; *hasResultType = false; break;
1814    case SpvOpSource: *hasResult = false; *hasResultType = false; break;
1815    case SpvOpSourceExtension: *hasResult = false; *hasResultType = false; break;
1816    case SpvOpName: *hasResult = false; *hasResultType = false; break;
1817    case SpvOpMemberName: *hasResult = false; *hasResultType = false; break;
1818    case SpvOpString: *hasResult = true; *hasResultType = false; break;
1819    case SpvOpLine: *hasResult = false; *hasResultType = false; break;
1820    case SpvOpExtension: *hasResult = false; *hasResultType = false; break;
1821    case SpvOpExtInstImport: *hasResult = true; *hasResultType = false; break;
1822    case SpvOpExtInst: *hasResult = true; *hasResultType = true; break;
1823    case SpvOpMemoryModel: *hasResult = false; *hasResultType = false; break;
1824    case SpvOpEntryPoint: *hasResult = false; *hasResultType = false; break;
1825    case SpvOpExecutionMode: *hasResult = false; *hasResultType = false; break;
1826    case SpvOpCapability: *hasResult = false; *hasResultType = false; break;
1827    case SpvOpTypeVoid: *hasResult = true; *hasResultType = false; break;
1828    case SpvOpTypeBool: *hasResult = true; *hasResultType = false; break;
1829    case SpvOpTypeInt: *hasResult = true; *hasResultType = false; break;
1830    case SpvOpTypeFloat: *hasResult = true; *hasResultType = false; break;
1831    case SpvOpTypeVector: *hasResult = true; *hasResultType = false; break;
1832    case SpvOpTypeMatrix: *hasResult = true; *hasResultType = false; break;
1833    case SpvOpTypeImage: *hasResult = true; *hasResultType = false; break;
1834    case SpvOpTypeSampler: *hasResult = true; *hasResultType = false; break;
1835    case SpvOpTypeSampledImage: *hasResult = true; *hasResultType = false; break;
1836    case SpvOpTypeArray: *hasResult = true; *hasResultType = false; break;
1837    case SpvOpTypeRuntimeArray: *hasResult = true; *hasResultType = false; break;
1838    case SpvOpTypeStruct: *hasResult = true; *hasResultType = false; break;
1839    case SpvOpTypeOpaque: *hasResult = true; *hasResultType = false; break;
1840    case SpvOpTypePointer: *hasResult = true; *hasResultType = false; break;
1841    case SpvOpTypeFunction: *hasResult = true; *hasResultType = false; break;
1842    case SpvOpTypeEvent: *hasResult = true; *hasResultType = false; break;
1843    case SpvOpTypeDeviceEvent: *hasResult = true; *hasResultType = false; break;
1844    case SpvOpTypeReserveId: *hasResult = true; *hasResultType = false; break;
1845    case SpvOpTypeQueue: *hasResult = true; *hasResultType = false; break;
1846    case SpvOpTypePipe: *hasResult = true; *hasResultType = false; break;
1847    case SpvOpTypeForwardPointer: *hasResult = false; *hasResultType = false; break;
1848    case SpvOpConstantTrue: *hasResult = true; *hasResultType = true; break;
1849    case SpvOpConstantFalse: *hasResult = true; *hasResultType = true; break;
1850    case SpvOpConstant: *hasResult = true; *hasResultType = true; break;
1851    case SpvOpConstantComposite: *hasResult = true; *hasResultType = true; break;
1852    case SpvOpConstantSampler: *hasResult = true; *hasResultType = true; break;
1853    case SpvOpConstantNull: *hasResult = true; *hasResultType = true; break;
1854    case SpvOpSpecConstantTrue: *hasResult = true; *hasResultType = true; break;
1855    case SpvOpSpecConstantFalse: *hasResult = true; *hasResultType = true; break;
1856    case SpvOpSpecConstant: *hasResult = true; *hasResultType = true; break;
1857    case SpvOpSpecConstantComposite: *hasResult = true; *hasResultType = true; break;
1858    case SpvOpSpecConstantOp: *hasResult = true; *hasResultType = true; break;
1859    case SpvOpFunction: *hasResult = true; *hasResultType = true; break;
1860    case SpvOpFunctionParameter: *hasResult = true; *hasResultType = true; break;
1861    case SpvOpFunctionEnd: *hasResult = false; *hasResultType = false; break;
1862    case SpvOpFunctionCall: *hasResult = true; *hasResultType = true; break;
1863    case SpvOpVariable: *hasResult = true; *hasResultType = true; break;
1864    case SpvOpImageTexelPointer: *hasResult = true; *hasResultType = true; break;
1865    case SpvOpLoad: *hasResult = true; *hasResultType = true; break;
1866    case SpvOpStore: *hasResult = false; *hasResultType = false; break;
1867    case SpvOpCopyMemory: *hasResult = false; *hasResultType = false; break;
1868    case SpvOpCopyMemorySized: *hasResult = false; *hasResultType = false; break;
1869    case SpvOpAccessChain: *hasResult = true; *hasResultType = true; break;
1870    case SpvOpInBoundsAccessChain: *hasResult = true; *hasResultType = true; break;
1871    case SpvOpPtrAccessChain: *hasResult = true; *hasResultType = true; break;
1872    case SpvOpArrayLength: *hasResult = true; *hasResultType = true; break;
1873    case SpvOpGenericPtrMemSemantics: *hasResult = true; *hasResultType = true; break;
1874    case SpvOpInBoundsPtrAccessChain: *hasResult = true; *hasResultType = true; break;
1875    case SpvOpDecorate: *hasResult = false; *hasResultType = false; break;
1876    case SpvOpMemberDecorate: *hasResult = false; *hasResultType = false; break;
1877    case SpvOpDecorationGroup: *hasResult = true; *hasResultType = false; break;
1878    case SpvOpGroupDecorate: *hasResult = false; *hasResultType = false; break;
1879    case SpvOpGroupMemberDecorate: *hasResult = false; *hasResultType = false; break;
1880    case SpvOpVectorExtractDynamic: *hasResult = true; *hasResultType = true; break;
1881    case SpvOpVectorInsertDynamic: *hasResult = true; *hasResultType = true; break;
1882    case SpvOpVectorShuffle: *hasResult = true; *hasResultType = true; break;
1883    case SpvOpCompositeConstruct: *hasResult = true; *hasResultType = true; break;
1884    case SpvOpCompositeExtract: *hasResult = true; *hasResultType = true; break;
1885    case SpvOpCompositeInsert: *hasResult = true; *hasResultType = true; break;
1886    case SpvOpCopyObject: *hasResult = true; *hasResultType = true; break;
1887    case SpvOpTranspose: *hasResult = true; *hasResultType = true; break;
1888    case SpvOpSampledImage: *hasResult = true; *hasResultType = true; break;
1889    case SpvOpImageSampleImplicitLod: *hasResult = true; *hasResultType = true; break;
1890    case SpvOpImageSampleExplicitLod: *hasResult = true; *hasResultType = true; break;
1891    case SpvOpImageSampleDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
1892    case SpvOpImageSampleDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
1893    case SpvOpImageSampleProjImplicitLod: *hasResult = true; *hasResultType = true; break;
1894    case SpvOpImageSampleProjExplicitLod: *hasResult = true; *hasResultType = true; break;
1895    case SpvOpImageSampleProjDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
1896    case SpvOpImageSampleProjDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
1897    case SpvOpImageFetch: *hasResult = true; *hasResultType = true; break;
1898    case SpvOpImageGather: *hasResult = true; *hasResultType = true; break;
1899    case SpvOpImageDrefGather: *hasResult = true; *hasResultType = true; break;
1900    case SpvOpImageRead: *hasResult = true; *hasResultType = true; break;
1901    case SpvOpImageWrite: *hasResult = false; *hasResultType = false; break;
1902    case SpvOpImage: *hasResult = true; *hasResultType = true; break;
1903    case SpvOpImageQueryFormat: *hasResult = true; *hasResultType = true; break;
1904    case SpvOpImageQueryOrder: *hasResult = true; *hasResultType = true; break;
1905    case SpvOpImageQuerySizeLod: *hasResult = true; *hasResultType = true; break;
1906    case SpvOpImageQuerySize: *hasResult = true; *hasResultType = true; break;
1907    case SpvOpImageQueryLod: *hasResult = true; *hasResultType = true; break;
1908    case SpvOpImageQueryLevels: *hasResult = true; *hasResultType = true; break;
1909    case SpvOpImageQuerySamples: *hasResult = true; *hasResultType = true; break;
1910    case SpvOpConvertFToU: *hasResult = true; *hasResultType = true; break;
1911    case SpvOpConvertFToS: *hasResult = true; *hasResultType = true; break;
1912    case SpvOpConvertSToF: *hasResult = true; *hasResultType = true; break;
1913    case SpvOpConvertUToF: *hasResult = true; *hasResultType = true; break;
1914    case SpvOpUConvert: *hasResult = true; *hasResultType = true; break;
1915    case SpvOpSConvert: *hasResult = true; *hasResultType = true; break;
1916    case SpvOpFConvert: *hasResult = true; *hasResultType = true; break;
1917    case SpvOpQuantizeToF16: *hasResult = true; *hasResultType = true; break;
1918    case SpvOpConvertPtrToU: *hasResult = true; *hasResultType = true; break;
1919    case SpvOpSatConvertSToU: *hasResult = true; *hasResultType = true; break;
1920    case SpvOpSatConvertUToS: *hasResult = true; *hasResultType = true; break;
1921    case SpvOpConvertUToPtr: *hasResult = true; *hasResultType = true; break;
1922    case SpvOpPtrCastToGeneric: *hasResult = true; *hasResultType = true; break;
1923    case SpvOpGenericCastToPtr: *hasResult = true; *hasResultType = true; break;
1924    case SpvOpGenericCastToPtrExplicit: *hasResult = true; *hasResultType = true; break;
1925    case SpvOpBitcast: *hasResult = true; *hasResultType = true; break;
1926    case SpvOpSNegate: *hasResult = true; *hasResultType = true; break;
1927    case SpvOpFNegate: *hasResult = true; *hasResultType = true; break;
1928    case SpvOpIAdd: *hasResult = true; *hasResultType = true; break;
1929    case SpvOpFAdd: *hasResult = true; *hasResultType = true; break;
1930    case SpvOpISub: *hasResult = true; *hasResultType = true; break;
1931    case SpvOpFSub: *hasResult = true; *hasResultType = true; break;
1932    case SpvOpIMul: *hasResult = true; *hasResultType = true; break;
1933    case SpvOpFMul: *hasResult = true; *hasResultType = true; break;
1934    case SpvOpUDiv: *hasResult = true; *hasResultType = true; break;
1935    case SpvOpSDiv: *hasResult = true; *hasResultType = true; break;
1936    case SpvOpFDiv: *hasResult = true; *hasResultType = true; break;
1937    case SpvOpUMod: *hasResult = true; *hasResultType = true; break;
1938    case SpvOpSRem: *hasResult = true; *hasResultType = true; break;
1939    case SpvOpSMod: *hasResult = true; *hasResultType = true; break;
1940    case SpvOpFRem: *hasResult = true; *hasResultType = true; break;
1941    case SpvOpFMod: *hasResult = true; *hasResultType = true; break;
1942    case SpvOpVectorTimesScalar: *hasResult = true; *hasResultType = true; break;
1943    case SpvOpMatrixTimesScalar: *hasResult = true; *hasResultType = true; break;
1944    case SpvOpVectorTimesMatrix: *hasResult = true; *hasResultType = true; break;
1945    case SpvOpMatrixTimesVector: *hasResult = true; *hasResultType = true; break;
1946    case SpvOpMatrixTimesMatrix: *hasResult = true; *hasResultType = true; break;
1947    case SpvOpOuterProduct: *hasResult = true; *hasResultType = true; break;
1948    case SpvOpDot: *hasResult = true; *hasResultType = true; break;
1949    case SpvOpIAddCarry: *hasResult = true; *hasResultType = true; break;
1950    case SpvOpISubBorrow: *hasResult = true; *hasResultType = true; break;
1951    case SpvOpUMulExtended: *hasResult = true; *hasResultType = true; break;
1952    case SpvOpSMulExtended: *hasResult = true; *hasResultType = true; break;
1953    case SpvOpAny: *hasResult = true; *hasResultType = true; break;
1954    case SpvOpAll: *hasResult = true; *hasResultType = true; break;
1955    case SpvOpIsNan: *hasResult = true; *hasResultType = true; break;
1956    case SpvOpIsInf: *hasResult = true; *hasResultType = true; break;
1957    case SpvOpIsFinite: *hasResult = true; *hasResultType = true; break;
1958    case SpvOpIsNormal: *hasResult = true; *hasResultType = true; break;
1959    case SpvOpSignBitSet: *hasResult = true; *hasResultType = true; break;
1960    case SpvOpLessOrGreater: *hasResult = true; *hasResultType = true; break;
1961    case SpvOpOrdered: *hasResult = true; *hasResultType = true; break;
1962    case SpvOpUnordered: *hasResult = true; *hasResultType = true; break;
1963    case SpvOpLogicalEqual: *hasResult = true; *hasResultType = true; break;
1964    case SpvOpLogicalNotEqual: *hasResult = true; *hasResultType = true; break;
1965    case SpvOpLogicalOr: *hasResult = true; *hasResultType = true; break;
1966    case SpvOpLogicalAnd: *hasResult = true; *hasResultType = true; break;
1967    case SpvOpLogicalNot: *hasResult = true; *hasResultType = true; break;
1968    case SpvOpSelect: *hasResult = true; *hasResultType = true; break;
1969    case SpvOpIEqual: *hasResult = true; *hasResultType = true; break;
1970    case SpvOpINotEqual: *hasResult = true; *hasResultType = true; break;
1971    case SpvOpUGreaterThan: *hasResult = true; *hasResultType = true; break;
1972    case SpvOpSGreaterThan: *hasResult = true; *hasResultType = true; break;
1973    case SpvOpUGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
1974    case SpvOpSGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
1975    case SpvOpULessThan: *hasResult = true; *hasResultType = true; break;
1976    case SpvOpSLessThan: *hasResult = true; *hasResultType = true; break;
1977    case SpvOpULessThanEqual: *hasResult = true; *hasResultType = true; break;
1978    case SpvOpSLessThanEqual: *hasResult = true; *hasResultType = true; break;
1979    case SpvOpFOrdEqual: *hasResult = true; *hasResultType = true; break;
1980    case SpvOpFUnordEqual: *hasResult = true; *hasResultType = true; break;
1981    case SpvOpFOrdNotEqual: *hasResult = true; *hasResultType = true; break;
1982    case SpvOpFUnordNotEqual: *hasResult = true; *hasResultType = true; break;
1983    case SpvOpFOrdLessThan: *hasResult = true; *hasResultType = true; break;
1984    case SpvOpFUnordLessThan: *hasResult = true; *hasResultType = true; break;
1985    case SpvOpFOrdGreaterThan: *hasResult = true; *hasResultType = true; break;
1986    case SpvOpFUnordGreaterThan: *hasResult = true; *hasResultType = true; break;
1987    case SpvOpFOrdLessThanEqual: *hasResult = true; *hasResultType = true; break;
1988    case SpvOpFUnordLessThanEqual: *hasResult = true; *hasResultType = true; break;
1989    case SpvOpFOrdGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
1990    case SpvOpFUnordGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
1991    case SpvOpShiftRightLogical: *hasResult = true; *hasResultType = true; break;
1992    case SpvOpShiftRightArithmetic: *hasResult = true; *hasResultType = true; break;
1993    case SpvOpShiftLeftLogical: *hasResult = true; *hasResultType = true; break;
1994    case SpvOpBitwiseOr: *hasResult = true; *hasResultType = true; break;
1995    case SpvOpBitwiseXor: *hasResult = true; *hasResultType = true; break;
1996    case SpvOpBitwiseAnd: *hasResult = true; *hasResultType = true; break;
1997    case SpvOpNot: *hasResult = true; *hasResultType = true; break;
1998    case SpvOpBitFieldInsert: *hasResult = true; *hasResultType = true; break;
1999    case SpvOpBitFieldSExtract: *hasResult = true; *hasResultType = true; break;
2000    case SpvOpBitFieldUExtract: *hasResult = true; *hasResultType = true; break;
2001    case SpvOpBitReverse: *hasResult = true; *hasResultType = true; break;
2002    case SpvOpBitCount: *hasResult = true; *hasResultType = true; break;
2003    case SpvOpDPdx: *hasResult = true; *hasResultType = true; break;
2004    case SpvOpDPdy: *hasResult = true; *hasResultType = true; break;
2005    case SpvOpFwidth: *hasResult = true; *hasResultType = true; break;
2006    case SpvOpDPdxFine: *hasResult = true; *hasResultType = true; break;
2007    case SpvOpDPdyFine: *hasResult = true; *hasResultType = true; break;
2008    case SpvOpFwidthFine: *hasResult = true; *hasResultType = true; break;
2009    case SpvOpDPdxCoarse: *hasResult = true; *hasResultType = true; break;
2010    case SpvOpDPdyCoarse: *hasResult = true; *hasResultType = true; break;
2011    case SpvOpFwidthCoarse: *hasResult = true; *hasResultType = true; break;
2012    case SpvOpEmitVertex: *hasResult = false; *hasResultType = false; break;
2013    case SpvOpEndPrimitive: *hasResult = false; *hasResultType = false; break;
2014    case SpvOpEmitStreamVertex: *hasResult = false; *hasResultType = false; break;
2015    case SpvOpEndStreamPrimitive: *hasResult = false; *hasResultType = false; break;
2016    case SpvOpControlBarrier: *hasResult = false; *hasResultType = false; break;
2017    case SpvOpMemoryBarrier: *hasResult = false; *hasResultType = false; break;
2018    case SpvOpAtomicLoad: *hasResult = true; *hasResultType = true; break;
2019    case SpvOpAtomicStore: *hasResult = false; *hasResultType = false; break;
2020    case SpvOpAtomicExchange: *hasResult = true; *hasResultType = true; break;
2021    case SpvOpAtomicCompareExchange: *hasResult = true; *hasResultType = true; break;
2022    case SpvOpAtomicCompareExchangeWeak: *hasResult = true; *hasResultType = true; break;
2023    case SpvOpAtomicIIncrement: *hasResult = true; *hasResultType = true; break;
2024    case SpvOpAtomicIDecrement: *hasResult = true; *hasResultType = true; break;
2025    case SpvOpAtomicIAdd: *hasResult = true; *hasResultType = true; break;
2026    case SpvOpAtomicISub: *hasResult = true; *hasResultType = true; break;
2027    case SpvOpAtomicSMin: *hasResult = true; *hasResultType = true; break;
2028    case SpvOpAtomicUMin: *hasResult = true; *hasResultType = true; break;
2029    case SpvOpAtomicSMax: *hasResult = true; *hasResultType = true; break;
2030    case SpvOpAtomicUMax: *hasResult = true; *hasResultType = true; break;
2031    case SpvOpAtomicAnd: *hasResult = true; *hasResultType = true; break;
2032    case SpvOpAtomicOr: *hasResult = true; *hasResultType = true; break;
2033    case SpvOpAtomicXor: *hasResult = true; *hasResultType = true; break;
2034    case SpvOpPhi: *hasResult = true; *hasResultType = true; break;
2035    case SpvOpLoopMerge: *hasResult = false; *hasResultType = false; break;
2036    case SpvOpSelectionMerge: *hasResult = false; *hasResultType = false; break;
2037    case SpvOpLabel: *hasResult = true; *hasResultType = false; break;
2038    case SpvOpBranch: *hasResult = false; *hasResultType = false; break;
2039    case SpvOpBranchConditional: *hasResult = false; *hasResultType = false; break;
2040    case SpvOpSwitch: *hasResult = false; *hasResultType = false; break;
2041    case SpvOpKill: *hasResult = false; *hasResultType = false; break;
2042    case SpvOpReturn: *hasResult = false; *hasResultType = false; break;
2043    case SpvOpReturnValue: *hasResult = false; *hasResultType = false; break;
2044    case SpvOpUnreachable: *hasResult = false; *hasResultType = false; break;
2045    case SpvOpLifetimeStart: *hasResult = false; *hasResultType = false; break;
2046    case SpvOpLifetimeStop: *hasResult = false; *hasResultType = false; break;
2047    case SpvOpGroupAsyncCopy: *hasResult = true; *hasResultType = true; break;
2048    case SpvOpGroupWaitEvents: *hasResult = false; *hasResultType = false; break;
2049    case SpvOpGroupAll: *hasResult = true; *hasResultType = true; break;
2050    case SpvOpGroupAny: *hasResult = true; *hasResultType = true; break;
2051    case SpvOpGroupBroadcast: *hasResult = true; *hasResultType = true; break;
2052    case SpvOpGroupIAdd: *hasResult = true; *hasResultType = true; break;
2053    case SpvOpGroupFAdd: *hasResult = true; *hasResultType = true; break;
2054    case SpvOpGroupFMin: *hasResult = true; *hasResultType = true; break;
2055    case SpvOpGroupUMin: *hasResult = true; *hasResultType = true; break;
2056    case SpvOpGroupSMin: *hasResult = true; *hasResultType = true; break;
2057    case SpvOpGroupFMax: *hasResult = true; *hasResultType = true; break;
2058    case SpvOpGroupUMax: *hasResult = true; *hasResultType = true; break;
2059    case SpvOpGroupSMax: *hasResult = true; *hasResultType = true; break;
2060    case SpvOpReadPipe: *hasResult = true; *hasResultType = true; break;
2061    case SpvOpWritePipe: *hasResult = true; *hasResultType = true; break;
2062    case SpvOpReservedReadPipe: *hasResult = true; *hasResultType = true; break;
2063    case SpvOpReservedWritePipe: *hasResult = true; *hasResultType = true; break;
2064    case SpvOpReserveReadPipePackets: *hasResult = true; *hasResultType = true; break;
2065    case SpvOpReserveWritePipePackets: *hasResult = true; *hasResultType = true; break;
2066    case SpvOpCommitReadPipe: *hasResult = false; *hasResultType = false; break;
2067    case SpvOpCommitWritePipe: *hasResult = false; *hasResultType = false; break;
2068    case SpvOpIsValidReserveId: *hasResult = true; *hasResultType = true; break;
2069    case SpvOpGetNumPipePackets: *hasResult = true; *hasResultType = true; break;
2070    case SpvOpGetMaxPipePackets: *hasResult = true; *hasResultType = true; break;
2071    case SpvOpGroupReserveReadPipePackets: *hasResult = true; *hasResultType = true; break;
2072    case SpvOpGroupReserveWritePipePackets: *hasResult = true; *hasResultType = true; break;
2073    case SpvOpGroupCommitReadPipe: *hasResult = false; *hasResultType = false; break;
2074    case SpvOpGroupCommitWritePipe: *hasResult = false; *hasResultType = false; break;
2075    case SpvOpEnqueueMarker: *hasResult = true; *hasResultType = true; break;
2076    case SpvOpEnqueueKernel: *hasResult = true; *hasResultType = true; break;
2077    case SpvOpGetKernelNDrangeSubGroupCount: *hasResult = true; *hasResultType = true; break;
2078    case SpvOpGetKernelNDrangeMaxSubGroupSize: *hasResult = true; *hasResultType = true; break;
2079    case SpvOpGetKernelWorkGroupSize: *hasResult = true; *hasResultType = true; break;
2080    case SpvOpGetKernelPreferredWorkGroupSizeMultiple: *hasResult = true; *hasResultType = true; break;
2081    case SpvOpRetainEvent: *hasResult = false; *hasResultType = false; break;
2082    case SpvOpReleaseEvent: *hasResult = false; *hasResultType = false; break;
2083    case SpvOpCreateUserEvent: *hasResult = true; *hasResultType = true; break;
2084    case SpvOpIsValidEvent: *hasResult = true; *hasResultType = true; break;
2085    case SpvOpSetUserEventStatus: *hasResult = false; *hasResultType = false; break;
2086    case SpvOpCaptureEventProfilingInfo: *hasResult = false; *hasResultType = false; break;
2087    case SpvOpGetDefaultQueue: *hasResult = true; *hasResultType = true; break;
2088    case SpvOpBuildNDRange: *hasResult = true; *hasResultType = true; break;
2089    case SpvOpImageSparseSampleImplicitLod: *hasResult = true; *hasResultType = true; break;
2090    case SpvOpImageSparseSampleExplicitLod: *hasResult = true; *hasResultType = true; break;
2091    case SpvOpImageSparseSampleDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
2092    case SpvOpImageSparseSampleDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
2093    case SpvOpImageSparseSampleProjImplicitLod: *hasResult = true; *hasResultType = true; break;
2094    case SpvOpImageSparseSampleProjExplicitLod: *hasResult = true; *hasResultType = true; break;
2095    case SpvOpImageSparseSampleProjDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
2096    case SpvOpImageSparseSampleProjDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
2097    case SpvOpImageSparseFetch: *hasResult = true; *hasResultType = true; break;
2098    case SpvOpImageSparseGather: *hasResult = true; *hasResultType = true; break;
2099    case SpvOpImageSparseDrefGather: *hasResult = true; *hasResultType = true; break;
2100    case SpvOpImageSparseTexelsResident: *hasResult = true; *hasResultType = true; break;
2101    case SpvOpNoLine: *hasResult = false; *hasResultType = false; break;
2102    case SpvOpAtomicFlagTestAndSet: *hasResult = true; *hasResultType = true; break;
2103    case SpvOpAtomicFlagClear: *hasResult = false; *hasResultType = false; break;
2104    case SpvOpImageSparseRead: *hasResult = true; *hasResultType = true; break;
2105    case SpvOpSizeOf: *hasResult = true; *hasResultType = true; break;
2106    case SpvOpTypePipeStorage: *hasResult = true; *hasResultType = false; break;
2107    case SpvOpConstantPipeStorage: *hasResult = true; *hasResultType = true; break;
2108    case SpvOpCreatePipeFromPipeStorage: *hasResult = true; *hasResultType = true; break;
2109    case SpvOpGetKernelLocalSizeForSubgroupCount: *hasResult = true; *hasResultType = true; break;
2110    case SpvOpGetKernelMaxNumSubgroups: *hasResult = true; *hasResultType = true; break;
2111    case SpvOpTypeNamedBarrier: *hasResult = true; *hasResultType = false; break;
2112    case SpvOpNamedBarrierInitialize: *hasResult = true; *hasResultType = true; break;
2113    case SpvOpMemoryNamedBarrier: *hasResult = false; *hasResultType = false; break;
2114    case SpvOpModuleProcessed: *hasResult = false; *hasResultType = false; break;
2115    case SpvOpExecutionModeId: *hasResult = false; *hasResultType = false; break;
2116    case SpvOpDecorateId: *hasResult = false; *hasResultType = false; break;
2117    case SpvOpGroupNonUniformElect: *hasResult = true; *hasResultType = true; break;
2118    case SpvOpGroupNonUniformAll: *hasResult = true; *hasResultType = true; break;
2119    case SpvOpGroupNonUniformAny: *hasResult = true; *hasResultType = true; break;
2120    case SpvOpGroupNonUniformAllEqual: *hasResult = true; *hasResultType = true; break;
2121    case SpvOpGroupNonUniformBroadcast: *hasResult = true; *hasResultType = true; break;
2122    case SpvOpGroupNonUniformBroadcastFirst: *hasResult = true; *hasResultType = true; break;
2123    case SpvOpGroupNonUniformBallot: *hasResult = true; *hasResultType = true; break;
2124    case SpvOpGroupNonUniformInverseBallot: *hasResult = true; *hasResultType = true; break;
2125    case SpvOpGroupNonUniformBallotBitExtract: *hasResult = true; *hasResultType = true; break;
2126    case SpvOpGroupNonUniformBallotBitCount: *hasResult = true; *hasResultType = true; break;
2127    case SpvOpGroupNonUniformBallotFindLSB: *hasResult = true; *hasResultType = true; break;
2128    case SpvOpGroupNonUniformBallotFindMSB: *hasResult = true; *hasResultType = true; break;
2129    case SpvOpGroupNonUniformShuffle: *hasResult = true; *hasResultType = true; break;
2130    case SpvOpGroupNonUniformShuffleXor: *hasResult = true; *hasResultType = true; break;
2131    case SpvOpGroupNonUniformShuffleUp: *hasResult = true; *hasResultType = true; break;
2132    case SpvOpGroupNonUniformShuffleDown: *hasResult = true; *hasResultType = true; break;
2133    case SpvOpGroupNonUniformIAdd: *hasResult = true; *hasResultType = true; break;
2134    case SpvOpGroupNonUniformFAdd: *hasResult = true; *hasResultType = true; break;
2135    case SpvOpGroupNonUniformIMul: *hasResult = true; *hasResultType = true; break;
2136    case SpvOpGroupNonUniformFMul: *hasResult = true; *hasResultType = true; break;
2137    case SpvOpGroupNonUniformSMin: *hasResult = true; *hasResultType = true; break;
2138    case SpvOpGroupNonUniformUMin: *hasResult = true; *hasResultType = true; break;
2139    case SpvOpGroupNonUniformFMin: *hasResult = true; *hasResultType = true; break;
2140    case SpvOpGroupNonUniformSMax: *hasResult = true; *hasResultType = true; break;
2141    case SpvOpGroupNonUniformUMax: *hasResult = true; *hasResultType = true; break;
2142    case SpvOpGroupNonUniformFMax: *hasResult = true; *hasResultType = true; break;
2143    case SpvOpGroupNonUniformBitwiseAnd: *hasResult = true; *hasResultType = true; break;
2144    case SpvOpGroupNonUniformBitwiseOr: *hasResult = true; *hasResultType = true; break;
2145    case SpvOpGroupNonUniformBitwiseXor: *hasResult = true; *hasResultType = true; break;
2146    case SpvOpGroupNonUniformLogicalAnd: *hasResult = true; *hasResultType = true; break;
2147    case SpvOpGroupNonUniformLogicalOr: *hasResult = true; *hasResultType = true; break;
2148    case SpvOpGroupNonUniformLogicalXor: *hasResult = true; *hasResultType = true; break;
2149    case SpvOpGroupNonUniformQuadBroadcast: *hasResult = true; *hasResultType = true; break;
2150    case SpvOpGroupNonUniformQuadSwap: *hasResult = true; *hasResultType = true; break;
2151    case SpvOpCopyLogical: *hasResult = true; *hasResultType = true; break;
2152    case SpvOpPtrEqual: *hasResult = true; *hasResultType = true; break;
2153    case SpvOpPtrNotEqual: *hasResult = true; *hasResultType = true; break;
2154    case SpvOpPtrDiff: *hasResult = true; *hasResultType = true; break;
2155    case SpvOpTerminateInvocation: *hasResult = false; *hasResultType = false; break;
2156    case SpvOpSubgroupBallotKHR: *hasResult = true; *hasResultType = true; break;
2157    case SpvOpSubgroupFirstInvocationKHR: *hasResult = true; *hasResultType = true; break;
2158    case SpvOpSubgroupAllKHR: *hasResult = true; *hasResultType = true; break;
2159    case SpvOpSubgroupAnyKHR: *hasResult = true; *hasResultType = true; break;
2160    case SpvOpSubgroupAllEqualKHR: *hasResult = true; *hasResultType = true; break;
2161    case SpvOpSubgroupReadInvocationKHR: *hasResult = true; *hasResultType = true; break;
2162    case SpvOpTraceRayKHR: *hasResult = false; *hasResultType = false; break;
2163    case SpvOpExecuteCallableKHR: *hasResult = false; *hasResultType = false; break;
2164    case SpvOpConvertUToAccelerationStructureKHR: *hasResult = true; *hasResultType = true; break;
2165    case SpvOpIgnoreIntersectionKHR: *hasResult = false; *hasResultType = false; break;
2166    case SpvOpTerminateRayKHR: *hasResult = false; *hasResultType = false; break;
2167    case SpvOpSDotKHR: *hasResult = true; *hasResultType = true; break;
2168    case SpvOpUDotKHR: *hasResult = true; *hasResultType = true; break;
2169    case SpvOpSUDotKHR: *hasResult = true; *hasResultType = true; break;
2170    case SpvOpSDotAccSatKHR: *hasResult = true; *hasResultType = true; break;
2171    case SpvOpUDotAccSatKHR: *hasResult = true; *hasResultType = true; break;
2172    case SpvOpSUDotAccSatKHR: *hasResult = true; *hasResultType = true; break;
2173    case SpvOpTypeRayQueryKHR: *hasResult = true; *hasResultType = false; break;
2174    case SpvOpRayQueryInitializeKHR: *hasResult = false; *hasResultType = false; break;
2175    case SpvOpRayQueryTerminateKHR: *hasResult = false; *hasResultType = false; break;
2176    case SpvOpRayQueryGenerateIntersectionKHR: *hasResult = false; *hasResultType = false; break;
2177    case SpvOpRayQueryConfirmIntersectionKHR: *hasResult = false; *hasResultType = false; break;
2178    case SpvOpRayQueryProceedKHR: *hasResult = true; *hasResultType = true; break;
2179    case SpvOpRayQueryGetIntersectionTypeKHR: *hasResult = true; *hasResultType = true; break;
2180    case SpvOpGroupIAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
2181    case SpvOpGroupFAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
2182    case SpvOpGroupFMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
2183    case SpvOpGroupUMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
2184    case SpvOpGroupSMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
2185    case SpvOpGroupFMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;
2186    case SpvOpGroupUMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;
2187    case SpvOpGroupSMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;
2188    case SpvOpFragmentMaskFetchAMD: *hasResult = true; *hasResultType = true; break;
2189    case SpvOpFragmentFetchAMD: *hasResult = true; *hasResultType = true; break;
2190    case SpvOpReadClockKHR: *hasResult = true; *hasResultType = true; break;
2191    case SpvOpImageSampleFootprintNV: *hasResult = true; *hasResultType = true; break;
2192    case SpvOpGroupNonUniformPartitionNV: *hasResult = true; *hasResultType = true; break;
2193    case SpvOpWritePackedPrimitiveIndices4x8NV: *hasResult = false; *hasResultType = false; break;
2194    case SpvOpReportIntersectionNV: *hasResult = true; *hasResultType = true; break;
2195    case SpvOpIgnoreIntersectionNV: *hasResult = false; *hasResultType = false; break;
2196    case SpvOpTerminateRayNV: *hasResult = false; *hasResultType = false; break;
2197    case SpvOpTraceNV: *hasResult = false; *hasResultType = false; break;
2198    case SpvOpTypeAccelerationStructureNV: *hasResult = true; *hasResultType = false; break;
2199    case SpvOpExecuteCallableNV: *hasResult = false; *hasResultType = false; break;
2200    case SpvOpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break;
2201    case SpvOpCooperativeMatrixLoadNV: *hasResult = true; *hasResultType = true; break;
2202    case SpvOpCooperativeMatrixStoreNV: *hasResult = false; *hasResultType = false; break;
2203    case SpvOpCooperativeMatrixMulAddNV: *hasResult = true; *hasResultType = true; break;
2204    case SpvOpCooperativeMatrixLengthNV: *hasResult = true; *hasResultType = true; break;
2205    case SpvOpBeginInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break;
2206    case SpvOpEndInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break;
2207    case SpvOpDemoteToHelperInvocationEXT: *hasResult = false; *hasResultType = false; break;
2208    case SpvOpIsHelperInvocationEXT: *hasResult = true; *hasResultType = true; break;
2209    case SpvOpSubgroupShuffleINTEL: *hasResult = true; *hasResultType = true; break;
2210    case SpvOpSubgroupShuffleDownINTEL: *hasResult = true; *hasResultType = true; break;
2211    case SpvOpSubgroupShuffleUpINTEL: *hasResult = true; *hasResultType = true; break;
2212    case SpvOpSubgroupShuffleXorINTEL: *hasResult = true; *hasResultType = true; break;
2213    case SpvOpSubgroupBlockReadINTEL: *hasResult = true; *hasResultType = true; break;
2214    case SpvOpSubgroupBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;
2215    case SpvOpSubgroupImageBlockReadINTEL: *hasResult = true; *hasResultType = true; break;
2216    case SpvOpSubgroupImageBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;
2217    case SpvOpSubgroupImageMediaBlockReadINTEL: *hasResult = true; *hasResultType = true; break;
2218    case SpvOpSubgroupImageMediaBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;
2219    case SpvOpUCountLeadingZerosINTEL: *hasResult = true; *hasResultType = true; break;
2220    case SpvOpUCountTrailingZerosINTEL: *hasResult = true; *hasResultType = true; break;
2221    case SpvOpAbsISubINTEL: *hasResult = true; *hasResultType = true; break;
2222    case SpvOpAbsUSubINTEL: *hasResult = true; *hasResultType = true; break;
2223    case SpvOpIAddSatINTEL: *hasResult = true; *hasResultType = true; break;
2224    case SpvOpUAddSatINTEL: *hasResult = true; *hasResultType = true; break;
2225    case SpvOpIAverageINTEL: *hasResult = true; *hasResultType = true; break;
2226    case SpvOpUAverageINTEL: *hasResult = true; *hasResultType = true; break;
2227    case SpvOpIAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break;
2228    case SpvOpUAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break;
2229    case SpvOpISubSatINTEL: *hasResult = true; *hasResultType = true; break;
2230    case SpvOpUSubSatINTEL: *hasResult = true; *hasResultType = true; break;
2231    case SpvOpIMul32x16INTEL: *hasResult = true; *hasResultType = true; break;
2232    case SpvOpUMul32x16INTEL: *hasResult = true; *hasResultType = true; break;
2233    case SpvOpConstFunctionPointerINTEL: *hasResult = true; *hasResultType = true; break;
2234    case SpvOpFunctionPointerCallINTEL: *hasResult = true; *hasResultType = true; break;
2235    case SpvOpAsmTargetINTEL: *hasResult = true; *hasResultType = true; break;
2236    case SpvOpAsmINTEL: *hasResult = true; *hasResultType = true; break;
2237    case SpvOpAsmCallINTEL: *hasResult = true; *hasResultType = true; break;
2238    case SpvOpAtomicFMinEXT: *hasResult = true; *hasResultType = true; break;
2239    case SpvOpAtomicFMaxEXT: *hasResult = true; *hasResultType = true; break;
2240    case SpvOpAssumeTrueKHR: *hasResult = false; *hasResultType = false; break;
2241    case SpvOpExpectKHR: *hasResult = true; *hasResultType = true; break;
2242    case SpvOpDecorateString: *hasResult = false; *hasResultType = false; break;
2243    case SpvOpMemberDecorateString: *hasResult = false; *hasResultType = false; break;
2244    case SpvOpVmeImageINTEL: *hasResult = true; *hasResultType = true; break;
2245    case SpvOpTypeVmeImageINTEL: *hasResult = true; *hasResultType = false; break;
2246    case SpvOpTypeAvcImePayloadINTEL: *hasResult = true; *hasResultType = false; break;
2247    case SpvOpTypeAvcRefPayloadINTEL: *hasResult = true; *hasResultType = false; break;
2248    case SpvOpTypeAvcSicPayloadINTEL: *hasResult = true; *hasResultType = false; break;
2249    case SpvOpTypeAvcMcePayloadINTEL: *hasResult = true; *hasResultType = false; break;
2250    case SpvOpTypeAvcMceResultINTEL: *hasResult = true; *hasResultType = false; break;
2251    case SpvOpTypeAvcImeResultINTEL: *hasResult = true; *hasResultType = false; break;
2252    case SpvOpTypeAvcImeResultSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = false; break;
2253    case SpvOpTypeAvcImeResultDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = false; break;
2254    case SpvOpTypeAvcImeSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = false; break;
2255    case SpvOpTypeAvcImeDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = false; break;
2256    case SpvOpTypeAvcRefResultINTEL: *hasResult = true; *hasResultType = false; break;
2257    case SpvOpTypeAvcSicResultINTEL: *hasResult = true; *hasResultType = false; break;
2258    case SpvOpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2259    case SpvOpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2260    case SpvOpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2261    case SpvOpSubgroupAvcMceSetInterShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2262    case SpvOpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2263    case SpvOpSubgroupAvcMceSetInterDirectionPenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2264    case SpvOpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2265    case SpvOpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL: *hasResult = true; *hasResultType = true; break;
2266    case SpvOpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;
2267    case SpvOpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;
2268    case SpvOpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;
2269    case SpvOpSubgroupAvcMceSetMotionVectorCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;
2270    case SpvOpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2271    case SpvOpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2272    case SpvOpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2273    case SpvOpSubgroupAvcMceSetAcOnlyHaarINTEL: *hasResult = true; *hasResultType = true; break;
2274    case SpvOpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL: *hasResult = true; *hasResultType = true; break;
2275    case SpvOpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL: *hasResult = true; *hasResultType = true; break;
2276    case SpvOpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL: *hasResult = true; *hasResultType = true; break;
2277    case SpvOpSubgroupAvcMceConvertToImePayloadINTEL: *hasResult = true; *hasResultType = true; break;
2278    case SpvOpSubgroupAvcMceConvertToImeResultINTEL: *hasResult = true; *hasResultType = true; break;
2279    case SpvOpSubgroupAvcMceConvertToRefPayloadINTEL: *hasResult = true; *hasResultType = true; break;
2280    case SpvOpSubgroupAvcMceConvertToRefResultINTEL: *hasResult = true; *hasResultType = true; break;
2281    case SpvOpSubgroupAvcMceConvertToSicPayloadINTEL: *hasResult = true; *hasResultType = true; break;
2282    case SpvOpSubgroupAvcMceConvertToSicResultINTEL: *hasResult = true; *hasResultType = true; break;
2283    case SpvOpSubgroupAvcMceGetMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;
2284    case SpvOpSubgroupAvcMceGetInterDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
2285    case SpvOpSubgroupAvcMceGetBestInterDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
2286    case SpvOpSubgroupAvcMceGetInterMajorShapeINTEL: *hasResult = true; *hasResultType = true; break;
2287    case SpvOpSubgroupAvcMceGetInterMinorShapeINTEL: *hasResult = true; *hasResultType = true; break;
2288    case SpvOpSubgroupAvcMceGetInterDirectionsINTEL: *hasResult = true; *hasResultType = true; break;
2289    case SpvOpSubgroupAvcMceGetInterMotionVectorCountINTEL: *hasResult = true; *hasResultType = true; break;
2290    case SpvOpSubgroupAvcMceGetInterReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;
2291    case SpvOpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL: *hasResult = true; *hasResultType = true; break;
2292    case SpvOpSubgroupAvcImeInitializeINTEL: *hasResult = true; *hasResultType = true; break;
2293    case SpvOpSubgroupAvcImeSetSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
2294    case SpvOpSubgroupAvcImeSetDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
2295    case SpvOpSubgroupAvcImeRefWindowSizeINTEL: *hasResult = true; *hasResultType = true; break;
2296    case SpvOpSubgroupAvcImeAdjustRefOffsetINTEL: *hasResult = true; *hasResultType = true; break;
2297    case SpvOpSubgroupAvcImeConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;
2298    case SpvOpSubgroupAvcImeSetMaxMotionVectorCountINTEL: *hasResult = true; *hasResultType = true; break;
2299    case SpvOpSubgroupAvcImeSetUnidirectionalMixDisableINTEL: *hasResult = true; *hasResultType = true; break;
2300    case SpvOpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL: *hasResult = true; *hasResultType = true; break;
2301    case SpvOpSubgroupAvcImeSetWeightedSadINTEL: *hasResult = true; *hasResultType = true; break;
2302    case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
2303    case SpvOpSubgroupAvcImeEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
2304    case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
2305    case SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
2306    case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
2307    case SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
2308    case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL: *hasResult = true; *hasResultType = true; break;
2309    case SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL: *hasResult = true; *hasResultType = true; break;
2310    case SpvOpSubgroupAvcImeConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;
2311    case SpvOpSubgroupAvcImeGetSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
2312    case SpvOpSubgroupAvcImeGetDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
2313    case SpvOpSubgroupAvcImeStripSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
2314    case SpvOpSubgroupAvcImeStripDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
2315    case SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;
2316    case SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
2317    case SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;
2318    case SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;
2319    case SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
2320    case SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;
2321    case SpvOpSubgroupAvcImeGetBorderReachedINTEL: *hasResult = true; *hasResultType = true; break;
2322    case SpvOpSubgroupAvcImeGetTruncatedSearchIndicationINTEL: *hasResult = true; *hasResultType = true; break;
2323    case SpvOpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL: *hasResult = true; *hasResultType = true; break;
2324    case SpvOpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL: *hasResult = true; *hasResultType = true; break;
2325    case SpvOpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL: *hasResult = true; *hasResultType = true; break;
2326    case SpvOpSubgroupAvcFmeInitializeINTEL: *hasResult = true; *hasResultType = true; break;
2327    case SpvOpSubgroupAvcBmeInitializeINTEL: *hasResult = true; *hasResultType = true; break;
2328    case SpvOpSubgroupAvcRefConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;
2329    case SpvOpSubgroupAvcRefSetBidirectionalMixDisableINTEL: *hasResult = true; *hasResultType = true; break;
2330    case SpvOpSubgroupAvcRefSetBilinearFilterEnableINTEL: *hasResult = true; *hasResultType = true; break;
2331    case SpvOpSubgroupAvcRefEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
2332    case SpvOpSubgroupAvcRefEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
2333    case SpvOpSubgroupAvcRefEvaluateWithMultiReferenceINTEL: *hasResult = true; *hasResultType = true; break;
2334    case SpvOpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL: *hasResult = true; *hasResultType = true; break;
2335    case SpvOpSubgroupAvcRefConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;
2336    case SpvOpSubgroupAvcSicInitializeINTEL: *hasResult = true; *hasResultType = true; break;
2337    case SpvOpSubgroupAvcSicConfigureSkcINTEL: *hasResult = true; *hasResultType = true; break;
2338    case SpvOpSubgroupAvcSicConfigureIpeLumaINTEL: *hasResult = true; *hasResultType = true; break;
2339    case SpvOpSubgroupAvcSicConfigureIpeLumaChromaINTEL: *hasResult = true; *hasResultType = true; break;
2340    case SpvOpSubgroupAvcSicGetMotionVectorMaskINTEL: *hasResult = true; *hasResultType = true; break;
2341    case SpvOpSubgroupAvcSicConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;
2342    case SpvOpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2343    case SpvOpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;
2344    case SpvOpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;
2345    case SpvOpSubgroupAvcSicSetBilinearFilterEnableINTEL: *hasResult = true; *hasResultType = true; break;
2346    case SpvOpSubgroupAvcSicSetSkcForwardTransformEnableINTEL: *hasResult = true; *hasResultType = true; break;
2347    case SpvOpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL: *hasResult = true; *hasResultType = true; break;
2348    case SpvOpSubgroupAvcSicEvaluateIpeINTEL: *hasResult = true; *hasResultType = true; break;
2349    case SpvOpSubgroupAvcSicEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
2350    case SpvOpSubgroupAvcSicEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
2351    case SpvOpSubgroupAvcSicEvaluateWithMultiReferenceINTEL: *hasResult = true; *hasResultType = true; break;
2352    case SpvOpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL: *hasResult = true; *hasResultType = true; break;
2353    case SpvOpSubgroupAvcSicConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;
2354    case SpvOpSubgroupAvcSicGetIpeLumaShapeINTEL: *hasResult = true; *hasResultType = true; break;
2355    case SpvOpSubgroupAvcSicGetBestIpeLumaDistortionINTEL: *hasResult = true; *hasResultType = true; break;
2356    case SpvOpSubgroupAvcSicGetBestIpeChromaDistortionINTEL: *hasResult = true; *hasResultType = true; break;
2357    case SpvOpSubgroupAvcSicGetPackedIpeLumaModesINTEL: *hasResult = true; *hasResultType = true; break;
2358    case SpvOpSubgroupAvcSicGetIpeChromaModeINTEL: *hasResult = true; *hasResultType = true; break;
2359    case SpvOpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL: *hasResult = true; *hasResultType = true; break;
2360    case SpvOpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL: *hasResult = true; *hasResultType = true; break;
2361    case SpvOpSubgroupAvcSicGetInterRawSadsINTEL: *hasResult = true; *hasResultType = true; break;
2362    case SpvOpVariableLengthArrayINTEL: *hasResult = true; *hasResultType = true; break;
2363    case SpvOpSaveMemoryINTEL: *hasResult = true; *hasResultType = true; break;
2364    case SpvOpRestoreMemoryINTEL: *hasResult = false; *hasResultType = false; break;
2365    case SpvOpArbitraryFloatSinCosPiINTEL: *hasResult = true; *hasResultType = true; break;
2366    case SpvOpArbitraryFloatCastINTEL: *hasResult = true; *hasResultType = true; break;
2367    case SpvOpArbitraryFloatCastFromIntINTEL: *hasResult = true; *hasResultType = true; break;
2368    case SpvOpArbitraryFloatCastToIntINTEL: *hasResult = true; *hasResultType = true; break;
2369    case SpvOpArbitraryFloatAddINTEL: *hasResult = true; *hasResultType = true; break;
2370    case SpvOpArbitraryFloatSubINTEL: *hasResult = true; *hasResultType = true; break;
2371    case SpvOpArbitraryFloatMulINTEL: *hasResult = true; *hasResultType = true; break;
2372    case SpvOpArbitraryFloatDivINTEL: *hasResult = true; *hasResultType = true; break;
2373    case SpvOpArbitraryFloatGTINTEL: *hasResult = true; *hasResultType = true; break;
2374    case SpvOpArbitraryFloatGEINTEL: *hasResult = true; *hasResultType = true; break;
2375    case SpvOpArbitraryFloatLTINTEL: *hasResult = true; *hasResultType = true; break;
2376    case SpvOpArbitraryFloatLEINTEL: *hasResult = true; *hasResultType = true; break;
2377    case SpvOpArbitraryFloatEQINTEL: *hasResult = true; *hasResultType = true; break;
2378    case SpvOpArbitraryFloatRecipINTEL: *hasResult = true; *hasResultType = true; break;
2379    case SpvOpArbitraryFloatRSqrtINTEL: *hasResult = true; *hasResultType = true; break;
2380    case SpvOpArbitraryFloatCbrtINTEL: *hasResult = true; *hasResultType = true; break;
2381    case SpvOpArbitraryFloatHypotINTEL: *hasResult = true; *hasResultType = true; break;
2382    case SpvOpArbitraryFloatSqrtINTEL: *hasResult = true; *hasResultType = true; break;
2383    case SpvOpArbitraryFloatLogINTEL: *hasResult = true; *hasResultType = true; break;
2384    case SpvOpArbitraryFloatLog2INTEL: *hasResult = true; *hasResultType = true; break;
2385    case SpvOpArbitraryFloatLog10INTEL: *hasResult = true; *hasResultType = true; break;
2386    case SpvOpArbitraryFloatLog1pINTEL: *hasResult = true; *hasResultType = true; break;
2387    case SpvOpArbitraryFloatExpINTEL: *hasResult = true; *hasResultType = true; break;
2388    case SpvOpArbitraryFloatExp2INTEL: *hasResult = true; *hasResultType = true; break;
2389    case SpvOpArbitraryFloatExp10INTEL: *hasResult = true; *hasResultType = true; break;
2390    case SpvOpArbitraryFloatExpm1INTEL: *hasResult = true; *hasResultType = true; break;
2391    case SpvOpArbitraryFloatSinINTEL: *hasResult = true; *hasResultType = true; break;
2392    case SpvOpArbitraryFloatCosINTEL: *hasResult = true; *hasResultType = true; break;
2393    case SpvOpArbitraryFloatSinCosINTEL: *hasResult = true; *hasResultType = true; break;
2394    case SpvOpArbitraryFloatSinPiINTEL: *hasResult = true; *hasResultType = true; break;
2395    case SpvOpArbitraryFloatCosPiINTEL: *hasResult = true; *hasResultType = true; break;
2396    case SpvOpArbitraryFloatASinINTEL: *hasResult = true; *hasResultType = true; break;
2397    case SpvOpArbitraryFloatASinPiINTEL: *hasResult = true; *hasResultType = true; break;
2398    case SpvOpArbitraryFloatACosINTEL: *hasResult = true; *hasResultType = true; break;
2399    case SpvOpArbitraryFloatACosPiINTEL: *hasResult = true; *hasResultType = true; break;
2400    case SpvOpArbitraryFloatATanINTEL: *hasResult = true; *hasResultType = true; break;
2401    case SpvOpArbitraryFloatATanPiINTEL: *hasResult = true; *hasResultType = true; break;
2402    case SpvOpArbitraryFloatATan2INTEL: *hasResult = true; *hasResultType = true; break;
2403    case SpvOpArbitraryFloatPowINTEL: *hasResult = true; *hasResultType = true; break;
2404    case SpvOpArbitraryFloatPowRINTEL: *hasResult = true; *hasResultType = true; break;
2405    case SpvOpArbitraryFloatPowNINTEL: *hasResult = true; *hasResultType = true; break;
2406    case SpvOpLoopControlINTEL: *hasResult = false; *hasResultType = false; break;
2407    case SpvOpFixedSqrtINTEL: *hasResult = true; *hasResultType = true; break;
2408    case SpvOpFixedRecipINTEL: *hasResult = true; *hasResultType = true; break;
2409    case SpvOpFixedRsqrtINTEL: *hasResult = true; *hasResultType = true; break;
2410    case SpvOpFixedSinINTEL: *hasResult = true; *hasResultType = true; break;
2411    case SpvOpFixedCosINTEL: *hasResult = true; *hasResultType = true; break;
2412    case SpvOpFixedSinCosINTEL: *hasResult = true; *hasResultType = true; break;
2413    case SpvOpFixedSinPiINTEL: *hasResult = true; *hasResultType = true; break;
2414    case SpvOpFixedCosPiINTEL: *hasResult = true; *hasResultType = true; break;
2415    case SpvOpFixedSinCosPiINTEL: *hasResult = true; *hasResultType = true; break;
2416    case SpvOpFixedLogINTEL: *hasResult = true; *hasResultType = true; break;
2417    case SpvOpFixedExpINTEL: *hasResult = true; *hasResultType = true; break;
2418    case SpvOpPtrCastToCrossWorkgroupINTEL: *hasResult = true; *hasResultType = true; break;
2419    case SpvOpCrossWorkgroupCastToPtrINTEL: *hasResult = true; *hasResultType = true; break;
2420    case SpvOpReadPipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;
2421    case SpvOpWritePipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;
2422    case SpvOpFPGARegINTEL: *hasResult = true; *hasResultType = true; break;
2423    case SpvOpRayQueryGetRayTMinKHR: *hasResult = true; *hasResultType = true; break;
2424    case SpvOpRayQueryGetRayFlagsKHR: *hasResult = true; *hasResultType = true; break;
2425    case SpvOpRayQueryGetIntersectionTKHR: *hasResult = true; *hasResultType = true; break;
2426    case SpvOpRayQueryGetIntersectionInstanceCustomIndexKHR: *hasResult = true; *hasResultType = true; break;
2427    case SpvOpRayQueryGetIntersectionInstanceIdKHR: *hasResult = true; *hasResultType = true; break;
2428    case SpvOpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR: *hasResult = true; *hasResultType = true; break;
2429    case SpvOpRayQueryGetIntersectionGeometryIndexKHR: *hasResult = true; *hasResultType = true; break;
2430    case SpvOpRayQueryGetIntersectionPrimitiveIndexKHR: *hasResult = true; *hasResultType = true; break;
2431    case SpvOpRayQueryGetIntersectionBarycentricsKHR: *hasResult = true; *hasResultType = true; break;
2432    case SpvOpRayQueryGetIntersectionFrontFaceKHR: *hasResult = true; *hasResultType = true; break;
2433    case SpvOpRayQueryGetIntersectionCandidateAABBOpaqueKHR: *hasResult = true; *hasResultType = true; break;
2434    case SpvOpRayQueryGetIntersectionObjectRayDirectionKHR: *hasResult = true; *hasResultType = true; break;
2435    case SpvOpRayQueryGetIntersectionObjectRayOriginKHR: *hasResult = true; *hasResultType = true; break;
2436    case SpvOpRayQueryGetWorldRayDirectionKHR: *hasResult = true; *hasResultType = true; break;
2437    case SpvOpRayQueryGetWorldRayOriginKHR: *hasResult = true; *hasResultType = true; break;
2438    case SpvOpRayQueryGetIntersectionObjectToWorldKHR: *hasResult = true; *hasResultType = true; break;
2439    case SpvOpRayQueryGetIntersectionWorldToObjectKHR: *hasResult = true; *hasResultType = true; break;
2440    case SpvOpAtomicFAddEXT: *hasResult = true; *hasResultType = true; break;
2441    case SpvOpTypeBufferSurfaceINTEL: *hasResult = true; *hasResultType = false; break;
2442    case SpvOpTypeStructContinuedINTEL: *hasResult = false; *hasResultType = false; break;
2443    case SpvOpConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
2444    case SpvOpSpecConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
2445    }
2446}
2447#endif /* SPV_ENABLE_UTILITY_CODE */
2448
2449#endif
2450
2451