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