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