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