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