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