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