1 /*
2 ** Copyright (c) 2014-2019 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 0x10400
57 #define SPV_REVISION 1
58 
59 static const unsigned int SpvMagicNumber = 0x07230203;
60 static const unsigned int SpvVersion = 0x00010400;
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     SpvSourceLanguageMax = 0x7fffffff,
73 } SpvSourceLanguage;
74 
75 typedef enum SpvExecutionModel_ {
76     SpvExecutionModelVertex = 0,
77     SpvExecutionModelTessellationControl = 1,
78     SpvExecutionModelTessellationEvaluation = 2,
79     SpvExecutionModelGeometry = 3,
80     SpvExecutionModelFragment = 4,
81     SpvExecutionModelGLCompute = 5,
82     SpvExecutionModelKernel = 6,
83     SpvExecutionModelTaskNV = 5267,
84     SpvExecutionModelMeshNV = 5268,
85     SpvExecutionModelRayGenerationNV = 5313,
86     SpvExecutionModelIntersectionNV = 5314,
87     SpvExecutionModelAnyHitNV = 5315,
88     SpvExecutionModelClosestHitNV = 5316,
89     SpvExecutionModelMissNV = 5317,
90     SpvExecutionModelCallableNV = 5318,
91     SpvExecutionModelMax = 0x7fffffff,
92 } SpvExecutionModel;
93 
94 typedef enum SpvAddressingModel_ {
95     SpvAddressingModelLogical = 0,
96     SpvAddressingModelPhysical32 = 1,
97     SpvAddressingModelPhysical64 = 2,
98     SpvAddressingModelPhysicalStorageBuffer64EXT = 5348,
99     SpvAddressingModelMax = 0x7fffffff,
100 } SpvAddressingModel;
101 
102 typedef enum SpvMemoryModel_ {
103     SpvMemoryModelSimple = 0,
104     SpvMemoryModelGLSL450 = 1,
105     SpvMemoryModelOpenCL = 2,
106     SpvMemoryModelVulkanKHR = 3,
107     SpvMemoryModelMax = 0x7fffffff,
108 } SpvMemoryModel;
109 
110 typedef enum SpvExecutionMode_ {
111     SpvExecutionModeInvocations = 0,
112     SpvExecutionModeSpacingEqual = 1,
113     SpvExecutionModeSpacingFractionalEven = 2,
114     SpvExecutionModeSpacingFractionalOdd = 3,
115     SpvExecutionModeVertexOrderCw = 4,
116     SpvExecutionModeVertexOrderCcw = 5,
117     SpvExecutionModePixelCenterInteger = 6,
118     SpvExecutionModeOriginUpperLeft = 7,
119     SpvExecutionModeOriginLowerLeft = 8,
120     SpvExecutionModeEarlyFragmentTests = 9,
121     SpvExecutionModePointMode = 10,
122     SpvExecutionModeXfb = 11,
123     SpvExecutionModeDepthReplacing = 12,
124     SpvExecutionModeDepthGreater = 14,
125     SpvExecutionModeDepthLess = 15,
126     SpvExecutionModeDepthUnchanged = 16,
127     SpvExecutionModeLocalSize = 17,
128     SpvExecutionModeLocalSizeHint = 18,
129     SpvExecutionModeInputPoints = 19,
130     SpvExecutionModeInputLines = 20,
131     SpvExecutionModeInputLinesAdjacency = 21,
132     SpvExecutionModeTriangles = 22,
133     SpvExecutionModeInputTrianglesAdjacency = 23,
134     SpvExecutionModeQuads = 24,
135     SpvExecutionModeIsolines = 25,
136     SpvExecutionModeOutputVertices = 26,
137     SpvExecutionModeOutputPoints = 27,
138     SpvExecutionModeOutputLineStrip = 28,
139     SpvExecutionModeOutputTriangleStrip = 29,
140     SpvExecutionModeVecTypeHint = 30,
141     SpvExecutionModeContractionOff = 31,
142     SpvExecutionModeInitializer = 33,
143     SpvExecutionModeFinalizer = 34,
144     SpvExecutionModeSubgroupSize = 35,
145     SpvExecutionModeSubgroupsPerWorkgroup = 36,
146     SpvExecutionModeSubgroupsPerWorkgroupId = 37,
147     SpvExecutionModeLocalSizeId = 38,
148     SpvExecutionModeLocalSizeHintId = 39,
149     SpvExecutionModePostDepthCoverage = 4446,
150     SpvExecutionModeDenormPreserve = 4459,
151     SpvExecutionModeDenormFlushToZero = 4460,
152     SpvExecutionModeSignedZeroInfNanPreserve = 4461,
153     SpvExecutionModeRoundingModeRTE = 4462,
154     SpvExecutionModeRoundingModeRTZ = 4463,
155     SpvExecutionModeStencilRefReplacingEXT = 5027,
156     SpvExecutionModeOutputLinesNV = 5269,
157     SpvExecutionModeOutputPrimitivesNV = 5270,
158     SpvExecutionModeDerivativeGroupQuadsNV = 5289,
159     SpvExecutionModeDerivativeGroupLinearNV = 5290,
160     SpvExecutionModeOutputTrianglesNV = 5298,
161     SpvExecutionModePixelInterlockOrderedEXT = 5366,
162     SpvExecutionModePixelInterlockUnorderedEXT = 5367,
163     SpvExecutionModeSampleInterlockOrderedEXT = 5368,
164     SpvExecutionModeSampleInterlockUnorderedEXT = 5369,
165     SpvExecutionModeShadingRateInterlockOrderedEXT = 5370,
166     SpvExecutionModeShadingRateInterlockUnorderedEXT = 5371,
167     SpvExecutionModeMax = 0x7fffffff,
168 } SpvExecutionMode;
169 
170 typedef enum SpvStorageClass_ {
171     SpvStorageClassUniformConstant = 0,
172     SpvStorageClassInput = 1,
173     SpvStorageClassUniform = 2,
174     SpvStorageClassOutput = 3,
175     SpvStorageClassWorkgroup = 4,
176     SpvStorageClassCrossWorkgroup = 5,
177     SpvStorageClassPrivate = 6,
178     SpvStorageClassFunction = 7,
179     SpvStorageClassGeneric = 8,
180     SpvStorageClassPushConstant = 9,
181     SpvStorageClassAtomicCounter = 10,
182     SpvStorageClassImage = 11,
183     SpvStorageClassStorageBuffer = 12,
184     SpvStorageClassCallableDataNV = 5328,
185     SpvStorageClassIncomingCallableDataNV = 5329,
186     SpvStorageClassRayPayloadNV = 5338,
187     SpvStorageClassHitAttributeNV = 5339,
188     SpvStorageClassIncomingRayPayloadNV = 5342,
189     SpvStorageClassShaderRecordBufferNV = 5343,
190     SpvStorageClassPhysicalStorageBufferEXT = 5349,
191     SpvStorageClassMax = 0x7fffffff,
192 } SpvStorageClass;
193 
194 typedef enum SpvDim_ {
195     SpvDim1D = 0,
196     SpvDim2D = 1,
197     SpvDim3D = 2,
198     SpvDimCube = 3,
199     SpvDimRect = 4,
200     SpvDimBuffer = 5,
201     SpvDimSubpassData = 6,
202     SpvDimMax = 0x7fffffff,
203 } SpvDim;
204 
205 typedef enum SpvSamplerAddressingMode_ {
206     SpvSamplerAddressingModeNone = 0,
207     SpvSamplerAddressingModeClampToEdge = 1,
208     SpvSamplerAddressingModeClamp = 2,
209     SpvSamplerAddressingModeRepeat = 3,
210     SpvSamplerAddressingModeRepeatMirrored = 4,
211     SpvSamplerAddressingModeMax = 0x7fffffff,
212 } SpvSamplerAddressingMode;
213 
214 typedef enum SpvSamplerFilterMode_ {
215     SpvSamplerFilterModeNearest = 0,
216     SpvSamplerFilterModeLinear = 1,
217     SpvSamplerFilterModeMax = 0x7fffffff,
218 } SpvSamplerFilterMode;
219 
220 typedef enum SpvImageFormat_ {
221     SpvImageFormatUnknown = 0,
222     SpvImageFormatRgba32f = 1,
223     SpvImageFormatRgba16f = 2,
224     SpvImageFormatR32f = 3,
225     SpvImageFormatRgba8 = 4,
226     SpvImageFormatRgba8Snorm = 5,
227     SpvImageFormatRg32f = 6,
228     SpvImageFormatRg16f = 7,
229     SpvImageFormatR11fG11fB10f = 8,
230     SpvImageFormatR16f = 9,
231     SpvImageFormatRgba16 = 10,
232     SpvImageFormatRgb10A2 = 11,
233     SpvImageFormatRg16 = 12,
234     SpvImageFormatRg8 = 13,
235     SpvImageFormatR16 = 14,
236     SpvImageFormatR8 = 15,
237     SpvImageFormatRgba16Snorm = 16,
238     SpvImageFormatRg16Snorm = 17,
239     SpvImageFormatRg8Snorm = 18,
240     SpvImageFormatR16Snorm = 19,
241     SpvImageFormatR8Snorm = 20,
242     SpvImageFormatRgba32i = 21,
243     SpvImageFormatRgba16i = 22,
244     SpvImageFormatRgba8i = 23,
245     SpvImageFormatR32i = 24,
246     SpvImageFormatRg32i = 25,
247     SpvImageFormatRg16i = 26,
248     SpvImageFormatRg8i = 27,
249     SpvImageFormatR16i = 28,
250     SpvImageFormatR8i = 29,
251     SpvImageFormatRgba32ui = 30,
252     SpvImageFormatRgba16ui = 31,
253     SpvImageFormatRgba8ui = 32,
254     SpvImageFormatR32ui = 33,
255     SpvImageFormatRgb10a2ui = 34,
256     SpvImageFormatRg32ui = 35,
257     SpvImageFormatRg16ui = 36,
258     SpvImageFormatRg8ui = 37,
259     SpvImageFormatR16ui = 38,
260     SpvImageFormatR8ui = 39,
261     SpvImageFormatMax = 0x7fffffff,
262 } SpvImageFormat;
263 
264 typedef enum SpvImageChannelOrder_ {
265     SpvImageChannelOrderR = 0,
266     SpvImageChannelOrderA = 1,
267     SpvImageChannelOrderRG = 2,
268     SpvImageChannelOrderRA = 3,
269     SpvImageChannelOrderRGB = 4,
270     SpvImageChannelOrderRGBA = 5,
271     SpvImageChannelOrderBGRA = 6,
272     SpvImageChannelOrderARGB = 7,
273     SpvImageChannelOrderIntensity = 8,
274     SpvImageChannelOrderLuminance = 9,
275     SpvImageChannelOrderRx = 10,
276     SpvImageChannelOrderRGx = 11,
277     SpvImageChannelOrderRGBx = 12,
278     SpvImageChannelOrderDepth = 13,
279     SpvImageChannelOrderDepthStencil = 14,
280     SpvImageChannelOrdersRGB = 15,
281     SpvImageChannelOrdersRGBx = 16,
282     SpvImageChannelOrdersRGBA = 17,
283     SpvImageChannelOrdersBGRA = 18,
284     SpvImageChannelOrderABGR = 19,
285     SpvImageChannelOrderMax = 0x7fffffff,
286 } SpvImageChannelOrder;
287 
288 typedef enum SpvImageChannelDataType_ {
289     SpvImageChannelDataTypeSnormInt8 = 0,
290     SpvImageChannelDataTypeSnormInt16 = 1,
291     SpvImageChannelDataTypeUnormInt8 = 2,
292     SpvImageChannelDataTypeUnormInt16 = 3,
293     SpvImageChannelDataTypeUnormShort565 = 4,
294     SpvImageChannelDataTypeUnormShort555 = 5,
295     SpvImageChannelDataTypeUnormInt101010 = 6,
296     SpvImageChannelDataTypeSignedInt8 = 7,
297     SpvImageChannelDataTypeSignedInt16 = 8,
298     SpvImageChannelDataTypeSignedInt32 = 9,
299     SpvImageChannelDataTypeUnsignedInt8 = 10,
300     SpvImageChannelDataTypeUnsignedInt16 = 11,
301     SpvImageChannelDataTypeUnsignedInt32 = 12,
302     SpvImageChannelDataTypeHalfFloat = 13,
303     SpvImageChannelDataTypeFloat = 14,
304     SpvImageChannelDataTypeUnormInt24 = 15,
305     SpvImageChannelDataTypeUnormInt101010_2 = 16,
306     SpvImageChannelDataTypeMax = 0x7fffffff,
307 } SpvImageChannelDataType;
308 
309 typedef enum SpvImageOperandsShift_ {
310     SpvImageOperandsBiasShift = 0,
311     SpvImageOperandsLodShift = 1,
312     SpvImageOperandsGradShift = 2,
313     SpvImageOperandsConstOffsetShift = 3,
314     SpvImageOperandsOffsetShift = 4,
315     SpvImageOperandsConstOffsetsShift = 5,
316     SpvImageOperandsSampleShift = 6,
317     SpvImageOperandsMinLodShift = 7,
318     SpvImageOperandsMakeTexelAvailableKHRShift = 8,
319     SpvImageOperandsMakeTexelVisibleKHRShift = 9,
320     SpvImageOperandsNonPrivateTexelKHRShift = 10,
321     SpvImageOperandsVolatileTexelKHRShift = 11,
322     SpvImageOperandsSignExtendShift = 12,
323     SpvImageOperandsZeroExtendShift = 13,
324     SpvImageOperandsMax = 0x7fffffff,
325 } SpvImageOperandsShift;
326 
327 typedef enum SpvImageOperandsMask_ {
328     SpvImageOperandsMaskNone = 0,
329     SpvImageOperandsBiasMask = 0x00000001,
330     SpvImageOperandsLodMask = 0x00000002,
331     SpvImageOperandsGradMask = 0x00000004,
332     SpvImageOperandsConstOffsetMask = 0x00000008,
333     SpvImageOperandsOffsetMask = 0x00000010,
334     SpvImageOperandsConstOffsetsMask = 0x00000020,
335     SpvImageOperandsSampleMask = 0x00000040,
336     SpvImageOperandsMinLodMask = 0x00000080,
337     SpvImageOperandsMakeTexelAvailableKHRMask = 0x00000100,
338     SpvImageOperandsMakeTexelVisibleKHRMask = 0x00000200,
339     SpvImageOperandsNonPrivateTexelKHRMask = 0x00000400,
340     SpvImageOperandsVolatileTexelKHRMask = 0x00000800,
341     SpvImageOperandsSignExtendMask = 0x00001000,
342     SpvImageOperandsZeroExtendMask = 0x00002000,
343 } SpvImageOperandsMask;
344 
345 typedef enum SpvFPFastMathModeShift_ {
346     SpvFPFastMathModeNotNaNShift = 0,
347     SpvFPFastMathModeNotInfShift = 1,
348     SpvFPFastMathModeNSZShift = 2,
349     SpvFPFastMathModeAllowRecipShift = 3,
350     SpvFPFastMathModeFastShift = 4,
351     SpvFPFastMathModeMax = 0x7fffffff,
352 } SpvFPFastMathModeShift;
353 
354 typedef enum SpvFPFastMathModeMask_ {
355     SpvFPFastMathModeMaskNone = 0,
356     SpvFPFastMathModeNotNaNMask = 0x00000001,
357     SpvFPFastMathModeNotInfMask = 0x00000002,
358     SpvFPFastMathModeNSZMask = 0x00000004,
359     SpvFPFastMathModeAllowRecipMask = 0x00000008,
360     SpvFPFastMathModeFastMask = 0x00000010,
361 } SpvFPFastMathModeMask;
362 
363 typedef enum SpvFPRoundingMode_ {
364     SpvFPRoundingModeRTE = 0,
365     SpvFPRoundingModeRTZ = 1,
366     SpvFPRoundingModeRTP = 2,
367     SpvFPRoundingModeRTN = 3,
368     SpvFPRoundingModeMax = 0x7fffffff,
369 } SpvFPRoundingMode;
370 
371 typedef enum SpvLinkageType_ {
372     SpvLinkageTypeExport = 0,
373     SpvLinkageTypeImport = 1,
374     SpvLinkageTypeMax = 0x7fffffff,
375 } SpvLinkageType;
376 
377 typedef enum SpvAccessQualifier_ {
378     SpvAccessQualifierReadOnly = 0,
379     SpvAccessQualifierWriteOnly = 1,
380     SpvAccessQualifierReadWrite = 2,
381     SpvAccessQualifierMax = 0x7fffffff,
382 } SpvAccessQualifier;
383 
384 typedef enum SpvFunctionParameterAttribute_ {
385     SpvFunctionParameterAttributeZext = 0,
386     SpvFunctionParameterAttributeSext = 1,
387     SpvFunctionParameterAttributeByVal = 2,
388     SpvFunctionParameterAttributeSret = 3,
389     SpvFunctionParameterAttributeNoAlias = 4,
390     SpvFunctionParameterAttributeNoCapture = 5,
391     SpvFunctionParameterAttributeNoWrite = 6,
392     SpvFunctionParameterAttributeNoReadWrite = 7,
393     SpvFunctionParameterAttributeMax = 0x7fffffff,
394 } SpvFunctionParameterAttribute;
395 
396 typedef enum SpvDecoration_ {
397     SpvDecorationRelaxedPrecision = 0,
398     SpvDecorationSpecId = 1,
399     SpvDecorationBlock = 2,
400     SpvDecorationBufferBlock = 3,
401     SpvDecorationRowMajor = 4,
402     SpvDecorationColMajor = 5,
403     SpvDecorationArrayStride = 6,
404     SpvDecorationMatrixStride = 7,
405     SpvDecorationGLSLShared = 8,
406     SpvDecorationGLSLPacked = 9,
407     SpvDecorationCPacked = 10,
408     SpvDecorationBuiltIn = 11,
409     SpvDecorationNoPerspective = 13,
410     SpvDecorationFlat = 14,
411     SpvDecorationPatch = 15,
412     SpvDecorationCentroid = 16,
413     SpvDecorationSample = 17,
414     SpvDecorationInvariant = 18,
415     SpvDecorationRestrict = 19,
416     SpvDecorationAliased = 20,
417     SpvDecorationVolatile = 21,
418     SpvDecorationConstant = 22,
419     SpvDecorationCoherent = 23,
420     SpvDecorationNonWritable = 24,
421     SpvDecorationNonReadable = 25,
422     SpvDecorationUniform = 26,
423     SpvDecorationUniformId = 27,
424     SpvDecorationSaturatedConversion = 28,
425     SpvDecorationStream = 29,
426     SpvDecorationLocation = 30,
427     SpvDecorationComponent = 31,
428     SpvDecorationIndex = 32,
429     SpvDecorationBinding = 33,
430     SpvDecorationDescriptorSet = 34,
431     SpvDecorationOffset = 35,
432     SpvDecorationXfbBuffer = 36,
433     SpvDecorationXfbStride = 37,
434     SpvDecorationFuncParamAttr = 38,
435     SpvDecorationFPRoundingMode = 39,
436     SpvDecorationFPFastMathMode = 40,
437     SpvDecorationLinkageAttributes = 41,
438     SpvDecorationNoContraction = 42,
439     SpvDecorationInputAttachmentIndex = 43,
440     SpvDecorationAlignment = 44,
441     SpvDecorationMaxByteOffset = 45,
442     SpvDecorationAlignmentId = 46,
443     SpvDecorationMaxByteOffsetId = 47,
444     SpvDecorationNoSignedWrap = 4469,
445     SpvDecorationNoUnsignedWrap = 4470,
446     SpvDecorationExplicitInterpAMD = 4999,
447     SpvDecorationOverrideCoverageNV = 5248,
448     SpvDecorationPassthroughNV = 5250,
449     SpvDecorationViewportRelativeNV = 5252,
450     SpvDecorationSecondaryViewportRelativeNV = 5256,
451     SpvDecorationPerPrimitiveNV = 5271,
452     SpvDecorationPerViewNV = 5272,
453     SpvDecorationPerTaskNV = 5273,
454     SpvDecorationPerVertexNV = 5285,
455     SpvDecorationNonUniformEXT = 5300,
456     SpvDecorationRestrictPointerEXT = 5355,
457     SpvDecorationAliasedPointerEXT = 5356,
458     SpvDecorationCounterBuffer = 5634,
459     SpvDecorationHlslCounterBufferGOOGLE = 5634,
460     SpvDecorationHlslSemanticGOOGLE = 5635,
461     SpvDecorationUserSemantic = 5635,
462     SpvDecorationUserTypeGOOGLE = 5636,
463     SpvDecorationMax = 0x7fffffff,
464 } SpvDecoration;
465 
466 typedef enum SpvBuiltIn_ {
467     SpvBuiltInPosition = 0,
468     SpvBuiltInPointSize = 1,
469     SpvBuiltInClipDistance = 3,
470     SpvBuiltInCullDistance = 4,
471     SpvBuiltInVertexId = 5,
472     SpvBuiltInInstanceId = 6,
473     SpvBuiltInPrimitiveId = 7,
474     SpvBuiltInInvocationId = 8,
475     SpvBuiltInLayer = 9,
476     SpvBuiltInViewportIndex = 10,
477     SpvBuiltInTessLevelOuter = 11,
478     SpvBuiltInTessLevelInner = 12,
479     SpvBuiltInTessCoord = 13,
480     SpvBuiltInPatchVertices = 14,
481     SpvBuiltInFragCoord = 15,
482     SpvBuiltInPointCoord = 16,
483     SpvBuiltInFrontFacing = 17,
484     SpvBuiltInSampleId = 18,
485     SpvBuiltInSamplePosition = 19,
486     SpvBuiltInSampleMask = 20,
487     SpvBuiltInFragDepth = 22,
488     SpvBuiltInHelperInvocation = 23,
489     SpvBuiltInNumWorkgroups = 24,
490     SpvBuiltInWorkgroupSize = 25,
491     SpvBuiltInWorkgroupId = 26,
492     SpvBuiltInLocalInvocationId = 27,
493     SpvBuiltInGlobalInvocationId = 28,
494     SpvBuiltInLocalInvocationIndex = 29,
495     SpvBuiltInWorkDim = 30,
496     SpvBuiltInGlobalSize = 31,
497     SpvBuiltInEnqueuedWorkgroupSize = 32,
498     SpvBuiltInGlobalOffset = 33,
499     SpvBuiltInGlobalLinearId = 34,
500     SpvBuiltInSubgroupSize = 36,
501     SpvBuiltInSubgroupMaxSize = 37,
502     SpvBuiltInNumSubgroups = 38,
503     SpvBuiltInNumEnqueuedSubgroups = 39,
504     SpvBuiltInSubgroupId = 40,
505     SpvBuiltInSubgroupLocalInvocationId = 41,
506     SpvBuiltInVertexIndex = 42,
507     SpvBuiltInInstanceIndex = 43,
508     SpvBuiltInSubgroupEqMask = 4416,
509     SpvBuiltInSubgroupEqMaskKHR = 4416,
510     SpvBuiltInSubgroupGeMask = 4417,
511     SpvBuiltInSubgroupGeMaskKHR = 4417,
512     SpvBuiltInSubgroupGtMask = 4418,
513     SpvBuiltInSubgroupGtMaskKHR = 4418,
514     SpvBuiltInSubgroupLeMask = 4419,
515     SpvBuiltInSubgroupLeMaskKHR = 4419,
516     SpvBuiltInSubgroupLtMask = 4420,
517     SpvBuiltInSubgroupLtMaskKHR = 4420,
518     SpvBuiltInBaseVertex = 4424,
519     SpvBuiltInBaseInstance = 4425,
520     SpvBuiltInDrawIndex = 4426,
521     SpvBuiltInDeviceIndex = 4438,
522     SpvBuiltInViewIndex = 4440,
523     SpvBuiltInBaryCoordNoPerspAMD = 4992,
524     SpvBuiltInBaryCoordNoPerspCentroidAMD = 4993,
525     SpvBuiltInBaryCoordNoPerspSampleAMD = 4994,
526     SpvBuiltInBaryCoordSmoothAMD = 4995,
527     SpvBuiltInBaryCoordSmoothCentroidAMD = 4996,
528     SpvBuiltInBaryCoordSmoothSampleAMD = 4997,
529     SpvBuiltInBaryCoordPullModelAMD = 4998,
530     SpvBuiltInFragStencilRefEXT = 5014,
531     SpvBuiltInViewportMaskNV = 5253,
532     SpvBuiltInSecondaryPositionNV = 5257,
533     SpvBuiltInSecondaryViewportMaskNV = 5258,
534     SpvBuiltInPositionPerViewNV = 5261,
535     SpvBuiltInViewportMaskPerViewNV = 5262,
536     SpvBuiltInFullyCoveredEXT = 5264,
537     SpvBuiltInTaskCountNV = 5274,
538     SpvBuiltInPrimitiveCountNV = 5275,
539     SpvBuiltInPrimitiveIndicesNV = 5276,
540     SpvBuiltInClipDistancePerViewNV = 5277,
541     SpvBuiltInCullDistancePerViewNV = 5278,
542     SpvBuiltInLayerPerViewNV = 5279,
543     SpvBuiltInMeshViewCountNV = 5280,
544     SpvBuiltInMeshViewIndicesNV = 5281,
545     SpvBuiltInBaryCoordNV = 5286,
546     SpvBuiltInBaryCoordNoPerspNV = 5287,
547     SpvBuiltInFragSizeEXT = 5292,
548     SpvBuiltInFragmentSizeNV = 5292,
549     SpvBuiltInFragInvocationCountEXT = 5293,
550     SpvBuiltInInvocationsPerPixelNV = 5293,
551     SpvBuiltInLaunchIdNV = 5319,
552     SpvBuiltInLaunchSizeNV = 5320,
553     SpvBuiltInWorldRayOriginNV = 5321,
554     SpvBuiltInWorldRayDirectionNV = 5322,
555     SpvBuiltInObjectRayOriginNV = 5323,
556     SpvBuiltInObjectRayDirectionNV = 5324,
557     SpvBuiltInRayTminNV = 5325,
558     SpvBuiltInRayTmaxNV = 5326,
559     SpvBuiltInInstanceCustomIndexNV = 5327,
560     SpvBuiltInObjectToWorldNV = 5330,
561     SpvBuiltInWorldToObjectNV = 5331,
562     SpvBuiltInHitTNV = 5332,
563     SpvBuiltInHitKindNV = 5333,
564     SpvBuiltInIncomingRayFlagsNV = 5351,
565     SpvBuiltInWarpsPerSMNV = 5374,
566     SpvBuiltInSMCountNV = 5375,
567     SpvBuiltInWarpIDNV = 5376,
568     SpvBuiltInSMIDNV = 5377,
569     SpvBuiltInMax = 0x7fffffff,
570 } SpvBuiltIn;
571 
572 typedef enum SpvSelectionControlShift_ {
573     SpvSelectionControlFlattenShift = 0,
574     SpvSelectionControlDontFlattenShift = 1,
575     SpvSelectionControlMax = 0x7fffffff,
576 } SpvSelectionControlShift;
577 
578 typedef enum SpvSelectionControlMask_ {
579     SpvSelectionControlMaskNone = 0,
580     SpvSelectionControlFlattenMask = 0x00000001,
581     SpvSelectionControlDontFlattenMask = 0x00000002,
582 } SpvSelectionControlMask;
583 
584 typedef enum SpvLoopControlShift_ {
585     SpvLoopControlUnrollShift = 0,
586     SpvLoopControlDontUnrollShift = 1,
587     SpvLoopControlDependencyInfiniteShift = 2,
588     SpvLoopControlDependencyLengthShift = 3,
589     SpvLoopControlMinIterationsShift = 4,
590     SpvLoopControlMaxIterationsShift = 5,
591     SpvLoopControlIterationMultipleShift = 6,
592     SpvLoopControlPeelCountShift = 7,
593     SpvLoopControlPartialCountShift = 8,
594     SpvLoopControlMax = 0x7fffffff,
595 } SpvLoopControlShift;
596 
597 typedef enum SpvLoopControlMask_ {
598     SpvLoopControlMaskNone = 0,
599     SpvLoopControlUnrollMask = 0x00000001,
600     SpvLoopControlDontUnrollMask = 0x00000002,
601     SpvLoopControlDependencyInfiniteMask = 0x00000004,
602     SpvLoopControlDependencyLengthMask = 0x00000008,
603     SpvLoopControlMinIterationsMask = 0x00000010,
604     SpvLoopControlMaxIterationsMask = 0x00000020,
605     SpvLoopControlIterationMultipleMask = 0x00000040,
606     SpvLoopControlPeelCountMask = 0x00000080,
607     SpvLoopControlPartialCountMask = 0x00000100,
608 } SpvLoopControlMask;
609 
610 typedef enum SpvFunctionControlShift_ {
611     SpvFunctionControlInlineShift = 0,
612     SpvFunctionControlDontInlineShift = 1,
613     SpvFunctionControlPureShift = 2,
614     SpvFunctionControlConstShift = 3,
615     SpvFunctionControlMax = 0x7fffffff,
616 } SpvFunctionControlShift;
617 
618 typedef enum SpvFunctionControlMask_ {
619     SpvFunctionControlMaskNone = 0,
620     SpvFunctionControlInlineMask = 0x00000001,
621     SpvFunctionControlDontInlineMask = 0x00000002,
622     SpvFunctionControlPureMask = 0x00000004,
623     SpvFunctionControlConstMask = 0x00000008,
624 } SpvFunctionControlMask;
625 
626 typedef enum SpvMemorySemanticsShift_ {
627     SpvMemorySemanticsAcquireShift = 1,
628     SpvMemorySemanticsReleaseShift = 2,
629     SpvMemorySemanticsAcquireReleaseShift = 3,
630     SpvMemorySemanticsSequentiallyConsistentShift = 4,
631     SpvMemorySemanticsUniformMemoryShift = 6,
632     SpvMemorySemanticsSubgroupMemoryShift = 7,
633     SpvMemorySemanticsWorkgroupMemoryShift = 8,
634     SpvMemorySemanticsCrossWorkgroupMemoryShift = 9,
635     SpvMemorySemanticsAtomicCounterMemoryShift = 10,
636     SpvMemorySemanticsImageMemoryShift = 11,
637     SpvMemorySemanticsOutputMemoryKHRShift = 12,
638     SpvMemorySemanticsMakeAvailableKHRShift = 13,
639     SpvMemorySemanticsMakeVisibleKHRShift = 14,
640     SpvMemorySemanticsVolatileShift = 15,
641     SpvMemorySemanticsMax = 0x7fffffff,
642 } SpvMemorySemanticsShift;
643 
644 typedef enum SpvMemorySemanticsMask_ {
645     SpvMemorySemanticsMaskNone = 0,
646     SpvMemorySemanticsAcquireMask = 0x00000002,
647     SpvMemorySemanticsReleaseMask = 0x00000004,
648     SpvMemorySemanticsAcquireReleaseMask = 0x00000008,
649     SpvMemorySemanticsSequentiallyConsistentMask = 0x00000010,
650     SpvMemorySemanticsUniformMemoryMask = 0x00000040,
651     SpvMemorySemanticsSubgroupMemoryMask = 0x00000080,
652     SpvMemorySemanticsWorkgroupMemoryMask = 0x00000100,
653     SpvMemorySemanticsCrossWorkgroupMemoryMask = 0x00000200,
654     SpvMemorySemanticsAtomicCounterMemoryMask = 0x00000400,
655     SpvMemorySemanticsImageMemoryMask = 0x00000800,
656     SpvMemorySemanticsOutputMemoryKHRMask = 0x00001000,
657     SpvMemorySemanticsMakeAvailableKHRMask = 0x00002000,
658     SpvMemorySemanticsMakeVisibleKHRMask = 0x00004000,
659     SpvMemorySemanticsVolatileMask = 0x00008000,
660 } SpvMemorySemanticsMask;
661 
662 typedef enum SpvMemoryAccessShift_ {
663     SpvMemoryAccessVolatileShift = 0,
664     SpvMemoryAccessAlignedShift = 1,
665     SpvMemoryAccessNontemporalShift = 2,
666     SpvMemoryAccessMakePointerAvailableKHRShift = 3,
667     SpvMemoryAccessMakePointerVisibleKHRShift = 4,
668     SpvMemoryAccessNonPrivatePointerKHRShift = 5,
669     SpvMemoryAccessMax = 0x7fffffff,
670 } SpvMemoryAccessShift;
671 
672 typedef enum SpvMemoryAccessMask_ {
673     SpvMemoryAccessMaskNone = 0,
674     SpvMemoryAccessVolatileMask = 0x00000001,
675     SpvMemoryAccessAlignedMask = 0x00000002,
676     SpvMemoryAccessNontemporalMask = 0x00000004,
677     SpvMemoryAccessMakePointerAvailableKHRMask = 0x00000008,
678     SpvMemoryAccessMakePointerVisibleKHRMask = 0x00000010,
679     SpvMemoryAccessNonPrivatePointerKHRMask = 0x00000020,
680 } SpvMemoryAccessMask;
681 
682 typedef enum SpvScope_ {
683     SpvScopeCrossDevice = 0,
684     SpvScopeDevice = 1,
685     SpvScopeWorkgroup = 2,
686     SpvScopeSubgroup = 3,
687     SpvScopeInvocation = 4,
688     SpvScopeQueueFamilyKHR = 5,
689     SpvScopeMax = 0x7fffffff,
690 } SpvScope;
691 
692 typedef enum SpvGroupOperation_ {
693     SpvGroupOperationReduce = 0,
694     SpvGroupOperationInclusiveScan = 1,
695     SpvGroupOperationExclusiveScan = 2,
696     SpvGroupOperationClusteredReduce = 3,
697     SpvGroupOperationPartitionedReduceNV = 6,
698     SpvGroupOperationPartitionedInclusiveScanNV = 7,
699     SpvGroupOperationPartitionedExclusiveScanNV = 8,
700     SpvGroupOperationMax = 0x7fffffff,
701 } SpvGroupOperation;
702 
703 typedef enum SpvKernelEnqueueFlags_ {
704     SpvKernelEnqueueFlagsNoWait = 0,
705     SpvKernelEnqueueFlagsWaitKernel = 1,
706     SpvKernelEnqueueFlagsWaitWorkGroup = 2,
707     SpvKernelEnqueueFlagsMax = 0x7fffffff,
708 } SpvKernelEnqueueFlags;
709 
710 typedef enum SpvKernelProfilingInfoShift_ {
711     SpvKernelProfilingInfoCmdExecTimeShift = 0,
712     SpvKernelProfilingInfoMax = 0x7fffffff,
713 } SpvKernelProfilingInfoShift;
714 
715 typedef enum SpvKernelProfilingInfoMask_ {
716     SpvKernelProfilingInfoMaskNone = 0,
717     SpvKernelProfilingInfoCmdExecTimeMask = 0x00000001,
718 } SpvKernelProfilingInfoMask;
719 
720 typedef enum SpvCapability_ {
721     SpvCapabilityMatrix = 0,
722     SpvCapabilityShader = 1,
723     SpvCapabilityGeometry = 2,
724     SpvCapabilityTessellation = 3,
725     SpvCapabilityAddresses = 4,
726     SpvCapabilityLinkage = 5,
727     SpvCapabilityKernel = 6,
728     SpvCapabilityVector16 = 7,
729     SpvCapabilityFloat16Buffer = 8,
730     SpvCapabilityFloat16 = 9,
731     SpvCapabilityFloat64 = 10,
732     SpvCapabilityInt64 = 11,
733     SpvCapabilityInt64Atomics = 12,
734     SpvCapabilityImageBasic = 13,
735     SpvCapabilityImageReadWrite = 14,
736     SpvCapabilityImageMipmap = 15,
737     SpvCapabilityPipes = 17,
738     SpvCapabilityGroups = 18,
739     SpvCapabilityDeviceEnqueue = 19,
740     SpvCapabilityLiteralSampler = 20,
741     SpvCapabilityAtomicStorage = 21,
742     SpvCapabilityInt16 = 22,
743     SpvCapabilityTessellationPointSize = 23,
744     SpvCapabilityGeometryPointSize = 24,
745     SpvCapabilityImageGatherExtended = 25,
746     SpvCapabilityStorageImageMultisample = 27,
747     SpvCapabilityUniformBufferArrayDynamicIndexing = 28,
748     SpvCapabilitySampledImageArrayDynamicIndexing = 29,
749     SpvCapabilityStorageBufferArrayDynamicIndexing = 30,
750     SpvCapabilityStorageImageArrayDynamicIndexing = 31,
751     SpvCapabilityClipDistance = 32,
752     SpvCapabilityCullDistance = 33,
753     SpvCapabilityImageCubeArray = 34,
754     SpvCapabilitySampleRateShading = 35,
755     SpvCapabilityImageRect = 36,
756     SpvCapabilitySampledRect = 37,
757     SpvCapabilityGenericPointer = 38,
758     SpvCapabilityInt8 = 39,
759     SpvCapabilityInputAttachment = 40,
760     SpvCapabilitySparseResidency = 41,
761     SpvCapabilityMinLod = 42,
762     SpvCapabilitySampled1D = 43,
763     SpvCapabilityImage1D = 44,
764     SpvCapabilitySampledCubeArray = 45,
765     SpvCapabilitySampledBuffer = 46,
766     SpvCapabilityImageBuffer = 47,
767     SpvCapabilityImageMSArray = 48,
768     SpvCapabilityStorageImageExtendedFormats = 49,
769     SpvCapabilityImageQuery = 50,
770     SpvCapabilityDerivativeControl = 51,
771     SpvCapabilityInterpolationFunction = 52,
772     SpvCapabilityTransformFeedback = 53,
773     SpvCapabilityGeometryStreams = 54,
774     SpvCapabilityStorageImageReadWithoutFormat = 55,
775     SpvCapabilityStorageImageWriteWithoutFormat = 56,
776     SpvCapabilityMultiViewport = 57,
777     SpvCapabilitySubgroupDispatch = 58,
778     SpvCapabilityNamedBarrier = 59,
779     SpvCapabilityPipeStorage = 60,
780     SpvCapabilityGroupNonUniform = 61,
781     SpvCapabilityGroupNonUniformVote = 62,
782     SpvCapabilityGroupNonUniformArithmetic = 63,
783     SpvCapabilityGroupNonUniformBallot = 64,
784     SpvCapabilityGroupNonUniformShuffle = 65,
785     SpvCapabilityGroupNonUniformShuffleRelative = 66,
786     SpvCapabilityGroupNonUniformClustered = 67,
787     SpvCapabilityGroupNonUniformQuad = 68,
788     SpvCapabilitySubgroupBallotKHR = 4423,
789     SpvCapabilityDrawParameters = 4427,
790     SpvCapabilitySubgroupVoteKHR = 4431,
791     SpvCapabilityStorageBuffer16BitAccess = 4433,
792     SpvCapabilityStorageUniformBufferBlock16 = 4433,
793     SpvCapabilityStorageUniform16 = 4434,
794     SpvCapabilityUniformAndStorageBuffer16BitAccess = 4434,
795     SpvCapabilityStoragePushConstant16 = 4435,
796     SpvCapabilityStorageInputOutput16 = 4436,
797     SpvCapabilityDeviceGroup = 4437,
798     SpvCapabilityMultiView = 4439,
799     SpvCapabilityVariablePointersStorageBuffer = 4441,
800     SpvCapabilityVariablePointers = 4442,
801     SpvCapabilityAtomicStorageOps = 4445,
802     SpvCapabilitySampleMaskPostDepthCoverage = 4447,
803     SpvCapabilityStorageBuffer8BitAccess = 4448,
804     SpvCapabilityUniformAndStorageBuffer8BitAccess = 4449,
805     SpvCapabilityStoragePushConstant8 = 4450,
806     SpvCapabilityDenormPreserve = 4464,
807     SpvCapabilityDenormFlushToZero = 4465,
808     SpvCapabilitySignedZeroInfNanPreserve = 4466,
809     SpvCapabilityRoundingModeRTE = 4467,
810     SpvCapabilityRoundingModeRTZ = 4468,
811     SpvCapabilityFloat16ImageAMD = 5008,
812     SpvCapabilityImageGatherBiasLodAMD = 5009,
813     SpvCapabilityFragmentMaskAMD = 5010,
814     SpvCapabilityStencilExportEXT = 5013,
815     SpvCapabilityImageReadWriteLodAMD = 5015,
816     SpvCapabilitySampleMaskOverrideCoverageNV = 5249,
817     SpvCapabilityGeometryShaderPassthroughNV = 5251,
818     SpvCapabilityShaderViewportIndexLayerEXT = 5254,
819     SpvCapabilityShaderViewportIndexLayerNV = 5254,
820     SpvCapabilityShaderViewportMaskNV = 5255,
821     SpvCapabilityShaderStereoViewNV = 5259,
822     SpvCapabilityPerViewAttributesNV = 5260,
823     SpvCapabilityFragmentFullyCoveredEXT = 5265,
824     SpvCapabilityMeshShadingNV = 5266,
825     SpvCapabilityImageFootprintNV = 5282,
826     SpvCapabilityFragmentBarycentricNV = 5284,
827     SpvCapabilityComputeDerivativeGroupQuadsNV = 5288,
828     SpvCapabilityFragmentDensityEXT = 5291,
829     SpvCapabilityShadingRateNV = 5291,
830     SpvCapabilityGroupNonUniformPartitionedNV = 5297,
831     SpvCapabilityShaderNonUniformEXT = 5301,
832     SpvCapabilityRuntimeDescriptorArrayEXT = 5302,
833     SpvCapabilityInputAttachmentArrayDynamicIndexingEXT = 5303,
834     SpvCapabilityUniformTexelBufferArrayDynamicIndexingEXT = 5304,
835     SpvCapabilityStorageTexelBufferArrayDynamicIndexingEXT = 5305,
836     SpvCapabilityUniformBufferArrayNonUniformIndexingEXT = 5306,
837     SpvCapabilitySampledImageArrayNonUniformIndexingEXT = 5307,
838     SpvCapabilityStorageBufferArrayNonUniformIndexingEXT = 5308,
839     SpvCapabilityStorageImageArrayNonUniformIndexingEXT = 5309,
840     SpvCapabilityInputAttachmentArrayNonUniformIndexingEXT = 5310,
841     SpvCapabilityUniformTexelBufferArrayNonUniformIndexingEXT = 5311,
842     SpvCapabilityStorageTexelBufferArrayNonUniformIndexingEXT = 5312,
843     SpvCapabilityRayTracingNV = 5340,
844     SpvCapabilityVulkanMemoryModelKHR = 5345,
845     SpvCapabilityVulkanMemoryModelDeviceScopeKHR = 5346,
846     SpvCapabilityPhysicalStorageBufferAddressesEXT = 5347,
847     SpvCapabilityComputeDerivativeGroupLinearNV = 5350,
848     SpvCapabilityCooperativeMatrixNV = 5357,
849     SpvCapabilityFragmentShaderSampleInterlockEXT = 5363,
850     SpvCapabilityFragmentShaderShadingRateInterlockEXT = 5372,
851     SpvCapabilityShaderSMBuiltinsNV = 5373,
852     SpvCapabilityFragmentShaderPixelInterlockEXT = 5378,
853     SpvCapabilityDemoteToHelperInvocationEXT = 5379,
854     SpvCapabilitySubgroupShuffleINTEL = 5568,
855     SpvCapabilitySubgroupBufferBlockIOINTEL = 5569,
856     SpvCapabilitySubgroupImageBlockIOINTEL = 5570,
857     SpvCapabilitySubgroupImageMediaBlockIOINTEL = 5579,
858     SpvCapabilityIntegerFunctions2INTEL = 5584,
859     SpvCapabilitySubgroupAvcMotionEstimationINTEL = 5696,
860     SpvCapabilitySubgroupAvcMotionEstimationIntraINTEL = 5697,
861     SpvCapabilitySubgroupAvcMotionEstimationChromaINTEL = 5698,
862     SpvCapabilityMax = 0x7fffffff,
863 } SpvCapability;
864 
865 typedef enum SpvOp_ {
866     SpvOpNop = 0,
867     SpvOpUndef = 1,
868     SpvOpSourceContinued = 2,
869     SpvOpSource = 3,
870     SpvOpSourceExtension = 4,
871     SpvOpName = 5,
872     SpvOpMemberName = 6,
873     SpvOpString = 7,
874     SpvOpLine = 8,
875     SpvOpExtension = 10,
876     SpvOpExtInstImport = 11,
877     SpvOpExtInst = 12,
878     SpvOpMemoryModel = 14,
879     SpvOpEntryPoint = 15,
880     SpvOpExecutionMode = 16,
881     SpvOpCapability = 17,
882     SpvOpTypeVoid = 19,
883     SpvOpTypeBool = 20,
884     SpvOpTypeInt = 21,
885     SpvOpTypeFloat = 22,
886     SpvOpTypeVector = 23,
887     SpvOpTypeMatrix = 24,
888     SpvOpTypeImage = 25,
889     SpvOpTypeSampler = 26,
890     SpvOpTypeSampledImage = 27,
891     SpvOpTypeArray = 28,
892     SpvOpTypeRuntimeArray = 29,
893     SpvOpTypeStruct = 30,
894     SpvOpTypeOpaque = 31,
895     SpvOpTypePointer = 32,
896     SpvOpTypeFunction = 33,
897     SpvOpTypeEvent = 34,
898     SpvOpTypeDeviceEvent = 35,
899     SpvOpTypeReserveId = 36,
900     SpvOpTypeQueue = 37,
901     SpvOpTypePipe = 38,
902     SpvOpTypeForwardPointer = 39,
903     SpvOpConstantTrue = 41,
904     SpvOpConstantFalse = 42,
905     SpvOpConstant = 43,
906     SpvOpConstantComposite = 44,
907     SpvOpConstantSampler = 45,
908     SpvOpConstantNull = 46,
909     SpvOpSpecConstantTrue = 48,
910     SpvOpSpecConstantFalse = 49,
911     SpvOpSpecConstant = 50,
912     SpvOpSpecConstantComposite = 51,
913     SpvOpSpecConstantOp = 52,
914     SpvOpFunction = 54,
915     SpvOpFunctionParameter = 55,
916     SpvOpFunctionEnd = 56,
917     SpvOpFunctionCall = 57,
918     SpvOpVariable = 59,
919     SpvOpImageTexelPointer = 60,
920     SpvOpLoad = 61,
921     SpvOpStore = 62,
922     SpvOpCopyMemory = 63,
923     SpvOpCopyMemorySized = 64,
924     SpvOpAccessChain = 65,
925     SpvOpInBoundsAccessChain = 66,
926     SpvOpPtrAccessChain = 67,
927     SpvOpArrayLength = 68,
928     SpvOpGenericPtrMemSemantics = 69,
929     SpvOpInBoundsPtrAccessChain = 70,
930     SpvOpDecorate = 71,
931     SpvOpMemberDecorate = 72,
932     SpvOpDecorationGroup = 73,
933     SpvOpGroupDecorate = 74,
934     SpvOpGroupMemberDecorate = 75,
935     SpvOpVectorExtractDynamic = 77,
936     SpvOpVectorInsertDynamic = 78,
937     SpvOpVectorShuffle = 79,
938     SpvOpCompositeConstruct = 80,
939     SpvOpCompositeExtract = 81,
940     SpvOpCompositeInsert = 82,
941     SpvOpCopyObject = 83,
942     SpvOpTranspose = 84,
943     SpvOpSampledImage = 86,
944     SpvOpImageSampleImplicitLod = 87,
945     SpvOpImageSampleExplicitLod = 88,
946     SpvOpImageSampleDrefImplicitLod = 89,
947     SpvOpImageSampleDrefExplicitLod = 90,
948     SpvOpImageSampleProjImplicitLod = 91,
949     SpvOpImageSampleProjExplicitLod = 92,
950     SpvOpImageSampleProjDrefImplicitLod = 93,
951     SpvOpImageSampleProjDrefExplicitLod = 94,
952     SpvOpImageFetch = 95,
953     SpvOpImageGather = 96,
954     SpvOpImageDrefGather = 97,
955     SpvOpImageRead = 98,
956     SpvOpImageWrite = 99,
957     SpvOpImage = 100,
958     SpvOpImageQueryFormat = 101,
959     SpvOpImageQueryOrder = 102,
960     SpvOpImageQuerySizeLod = 103,
961     SpvOpImageQuerySize = 104,
962     SpvOpImageQueryLod = 105,
963     SpvOpImageQueryLevels = 106,
964     SpvOpImageQuerySamples = 107,
965     SpvOpConvertFToU = 109,
966     SpvOpConvertFToS = 110,
967     SpvOpConvertSToF = 111,
968     SpvOpConvertUToF = 112,
969     SpvOpUConvert = 113,
970     SpvOpSConvert = 114,
971     SpvOpFConvert = 115,
972     SpvOpQuantizeToF16 = 116,
973     SpvOpConvertPtrToU = 117,
974     SpvOpSatConvertSToU = 118,
975     SpvOpSatConvertUToS = 119,
976     SpvOpConvertUToPtr = 120,
977     SpvOpPtrCastToGeneric = 121,
978     SpvOpGenericCastToPtr = 122,
979     SpvOpGenericCastToPtrExplicit = 123,
980     SpvOpBitcast = 124,
981     SpvOpSNegate = 126,
982     SpvOpFNegate = 127,
983     SpvOpIAdd = 128,
984     SpvOpFAdd = 129,
985     SpvOpISub = 130,
986     SpvOpFSub = 131,
987     SpvOpIMul = 132,
988     SpvOpFMul = 133,
989     SpvOpUDiv = 134,
990     SpvOpSDiv = 135,
991     SpvOpFDiv = 136,
992     SpvOpUMod = 137,
993     SpvOpSRem = 138,
994     SpvOpSMod = 139,
995     SpvOpFRem = 140,
996     SpvOpFMod = 141,
997     SpvOpVectorTimesScalar = 142,
998     SpvOpMatrixTimesScalar = 143,
999     SpvOpVectorTimesMatrix = 144,
1000     SpvOpMatrixTimesVector = 145,
1001     SpvOpMatrixTimesMatrix = 146,
1002     SpvOpOuterProduct = 147,
1003     SpvOpDot = 148,
1004     SpvOpIAddCarry = 149,
1005     SpvOpISubBorrow = 150,
1006     SpvOpUMulExtended = 151,
1007     SpvOpSMulExtended = 152,
1008     SpvOpAny = 154,
1009     SpvOpAll = 155,
1010     SpvOpIsNan = 156,
1011     SpvOpIsInf = 157,
1012     SpvOpIsFinite = 158,
1013     SpvOpIsNormal = 159,
1014     SpvOpSignBitSet = 160,
1015     SpvOpLessOrGreater = 161,
1016     SpvOpOrdered = 162,
1017     SpvOpUnordered = 163,
1018     SpvOpLogicalEqual = 164,
1019     SpvOpLogicalNotEqual = 165,
1020     SpvOpLogicalOr = 166,
1021     SpvOpLogicalAnd = 167,
1022     SpvOpLogicalNot = 168,
1023     SpvOpSelect = 169,
1024     SpvOpIEqual = 170,
1025     SpvOpINotEqual = 171,
1026     SpvOpUGreaterThan = 172,
1027     SpvOpSGreaterThan = 173,
1028     SpvOpUGreaterThanEqual = 174,
1029     SpvOpSGreaterThanEqual = 175,
1030     SpvOpULessThan = 176,
1031     SpvOpSLessThan = 177,
1032     SpvOpULessThanEqual = 178,
1033     SpvOpSLessThanEqual = 179,
1034     SpvOpFOrdEqual = 180,
1035     SpvOpFUnordEqual = 181,
1036     SpvOpFOrdNotEqual = 182,
1037     SpvOpFUnordNotEqual = 183,
1038     SpvOpFOrdLessThan = 184,
1039     SpvOpFUnordLessThan = 185,
1040     SpvOpFOrdGreaterThan = 186,
1041     SpvOpFUnordGreaterThan = 187,
1042     SpvOpFOrdLessThanEqual = 188,
1043     SpvOpFUnordLessThanEqual = 189,
1044     SpvOpFOrdGreaterThanEqual = 190,
1045     SpvOpFUnordGreaterThanEqual = 191,
1046     SpvOpShiftRightLogical = 194,
1047     SpvOpShiftRightArithmetic = 195,
1048     SpvOpShiftLeftLogical = 196,
1049     SpvOpBitwiseOr = 197,
1050     SpvOpBitwiseXor = 198,
1051     SpvOpBitwiseAnd = 199,
1052     SpvOpNot = 200,
1053     SpvOpBitFieldInsert = 201,
1054     SpvOpBitFieldSExtract = 202,
1055     SpvOpBitFieldUExtract = 203,
1056     SpvOpBitReverse = 204,
1057     SpvOpBitCount = 205,
1058     SpvOpDPdx = 207,
1059     SpvOpDPdy = 208,
1060     SpvOpFwidth = 209,
1061     SpvOpDPdxFine = 210,
1062     SpvOpDPdyFine = 211,
1063     SpvOpFwidthFine = 212,
1064     SpvOpDPdxCoarse = 213,
1065     SpvOpDPdyCoarse = 214,
1066     SpvOpFwidthCoarse = 215,
1067     SpvOpEmitVertex = 218,
1068     SpvOpEndPrimitive = 219,
1069     SpvOpEmitStreamVertex = 220,
1070     SpvOpEndStreamPrimitive = 221,
1071     SpvOpControlBarrier = 224,
1072     SpvOpMemoryBarrier = 225,
1073     SpvOpAtomicLoad = 227,
1074     SpvOpAtomicStore = 228,
1075     SpvOpAtomicExchange = 229,
1076     SpvOpAtomicCompareExchange = 230,
1077     SpvOpAtomicCompareExchangeWeak = 231,
1078     SpvOpAtomicIIncrement = 232,
1079     SpvOpAtomicIDecrement = 233,
1080     SpvOpAtomicIAdd = 234,
1081     SpvOpAtomicISub = 235,
1082     SpvOpAtomicSMin = 236,
1083     SpvOpAtomicUMin = 237,
1084     SpvOpAtomicSMax = 238,
1085     SpvOpAtomicUMax = 239,
1086     SpvOpAtomicAnd = 240,
1087     SpvOpAtomicOr = 241,
1088     SpvOpAtomicXor = 242,
1089     SpvOpPhi = 245,
1090     SpvOpLoopMerge = 246,
1091     SpvOpSelectionMerge = 247,
1092     SpvOpLabel = 248,
1093     SpvOpBranch = 249,
1094     SpvOpBranchConditional = 250,
1095     SpvOpSwitch = 251,
1096     SpvOpKill = 252,
1097     SpvOpReturn = 253,
1098     SpvOpReturnValue = 254,
1099     SpvOpUnreachable = 255,
1100     SpvOpLifetimeStart = 256,
1101     SpvOpLifetimeStop = 257,
1102     SpvOpGroupAsyncCopy = 259,
1103     SpvOpGroupWaitEvents = 260,
1104     SpvOpGroupAll = 261,
1105     SpvOpGroupAny = 262,
1106     SpvOpGroupBroadcast = 263,
1107     SpvOpGroupIAdd = 264,
1108     SpvOpGroupFAdd = 265,
1109     SpvOpGroupFMin = 266,
1110     SpvOpGroupUMin = 267,
1111     SpvOpGroupSMin = 268,
1112     SpvOpGroupFMax = 269,
1113     SpvOpGroupUMax = 270,
1114     SpvOpGroupSMax = 271,
1115     SpvOpReadPipe = 274,
1116     SpvOpWritePipe = 275,
1117     SpvOpReservedReadPipe = 276,
1118     SpvOpReservedWritePipe = 277,
1119     SpvOpReserveReadPipePackets = 278,
1120     SpvOpReserveWritePipePackets = 279,
1121     SpvOpCommitReadPipe = 280,
1122     SpvOpCommitWritePipe = 281,
1123     SpvOpIsValidReserveId = 282,
1124     SpvOpGetNumPipePackets = 283,
1125     SpvOpGetMaxPipePackets = 284,
1126     SpvOpGroupReserveReadPipePackets = 285,
1127     SpvOpGroupReserveWritePipePackets = 286,
1128     SpvOpGroupCommitReadPipe = 287,
1129     SpvOpGroupCommitWritePipe = 288,
1130     SpvOpEnqueueMarker = 291,
1131     SpvOpEnqueueKernel = 292,
1132     SpvOpGetKernelNDrangeSubGroupCount = 293,
1133     SpvOpGetKernelNDrangeMaxSubGroupSize = 294,
1134     SpvOpGetKernelWorkGroupSize = 295,
1135     SpvOpGetKernelPreferredWorkGroupSizeMultiple = 296,
1136     SpvOpRetainEvent = 297,
1137     SpvOpReleaseEvent = 298,
1138     SpvOpCreateUserEvent = 299,
1139     SpvOpIsValidEvent = 300,
1140     SpvOpSetUserEventStatus = 301,
1141     SpvOpCaptureEventProfilingInfo = 302,
1142     SpvOpGetDefaultQueue = 303,
1143     SpvOpBuildNDRange = 304,
1144     SpvOpImageSparseSampleImplicitLod = 305,
1145     SpvOpImageSparseSampleExplicitLod = 306,
1146     SpvOpImageSparseSampleDrefImplicitLod = 307,
1147     SpvOpImageSparseSampleDrefExplicitLod = 308,
1148     SpvOpImageSparseSampleProjImplicitLod = 309,
1149     SpvOpImageSparseSampleProjExplicitLod = 310,
1150     SpvOpImageSparseSampleProjDrefImplicitLod = 311,
1151     SpvOpImageSparseSampleProjDrefExplicitLod = 312,
1152     SpvOpImageSparseFetch = 313,
1153     SpvOpImageSparseGather = 314,
1154     SpvOpImageSparseDrefGather = 315,
1155     SpvOpImageSparseTexelsResident = 316,
1156     SpvOpNoLine = 317,
1157     SpvOpAtomicFlagTestAndSet = 318,
1158     SpvOpAtomicFlagClear = 319,
1159     SpvOpImageSparseRead = 320,
1160     SpvOpSizeOf = 321,
1161     SpvOpTypePipeStorage = 322,
1162     SpvOpConstantPipeStorage = 323,
1163     SpvOpCreatePipeFromPipeStorage = 324,
1164     SpvOpGetKernelLocalSizeForSubgroupCount = 325,
1165     SpvOpGetKernelMaxNumSubgroups = 326,
1166     SpvOpTypeNamedBarrier = 327,
1167     SpvOpNamedBarrierInitialize = 328,
1168     SpvOpMemoryNamedBarrier = 329,
1169     SpvOpModuleProcessed = 330,
1170     SpvOpExecutionModeId = 331,
1171     SpvOpDecorateId = 332,
1172     SpvOpGroupNonUniformElect = 333,
1173     SpvOpGroupNonUniformAll = 334,
1174     SpvOpGroupNonUniformAny = 335,
1175     SpvOpGroupNonUniformAllEqual = 336,
1176     SpvOpGroupNonUniformBroadcast = 337,
1177     SpvOpGroupNonUniformBroadcastFirst = 338,
1178     SpvOpGroupNonUniformBallot = 339,
1179     SpvOpGroupNonUniformInverseBallot = 340,
1180     SpvOpGroupNonUniformBallotBitExtract = 341,
1181     SpvOpGroupNonUniformBallotBitCount = 342,
1182     SpvOpGroupNonUniformBallotFindLSB = 343,
1183     SpvOpGroupNonUniformBallotFindMSB = 344,
1184     SpvOpGroupNonUniformShuffle = 345,
1185     SpvOpGroupNonUniformShuffleXor = 346,
1186     SpvOpGroupNonUniformShuffleUp = 347,
1187     SpvOpGroupNonUniformShuffleDown = 348,
1188     SpvOpGroupNonUniformIAdd = 349,
1189     SpvOpGroupNonUniformFAdd = 350,
1190     SpvOpGroupNonUniformIMul = 351,
1191     SpvOpGroupNonUniformFMul = 352,
1192     SpvOpGroupNonUniformSMin = 353,
1193     SpvOpGroupNonUniformUMin = 354,
1194     SpvOpGroupNonUniformFMin = 355,
1195     SpvOpGroupNonUniformSMax = 356,
1196     SpvOpGroupNonUniformUMax = 357,
1197     SpvOpGroupNonUniformFMax = 358,
1198     SpvOpGroupNonUniformBitwiseAnd = 359,
1199     SpvOpGroupNonUniformBitwiseOr = 360,
1200     SpvOpGroupNonUniformBitwiseXor = 361,
1201     SpvOpGroupNonUniformLogicalAnd = 362,
1202     SpvOpGroupNonUniformLogicalOr = 363,
1203     SpvOpGroupNonUniformLogicalXor = 364,
1204     SpvOpGroupNonUniformQuadBroadcast = 365,
1205     SpvOpGroupNonUniformQuadSwap = 366,
1206     SpvOpCopyLogical = 400,
1207     SpvOpPtrEqual = 401,
1208     SpvOpPtrNotEqual = 402,
1209     SpvOpPtrDiff = 403,
1210     SpvOpSubgroupBallotKHR = 4421,
1211     SpvOpSubgroupFirstInvocationKHR = 4422,
1212     SpvOpSubgroupAllKHR = 4428,
1213     SpvOpSubgroupAnyKHR = 4429,
1214     SpvOpSubgroupAllEqualKHR = 4430,
1215     SpvOpSubgroupReadInvocationKHR = 4432,
1216     SpvOpGroupIAddNonUniformAMD = 5000,
1217     SpvOpGroupFAddNonUniformAMD = 5001,
1218     SpvOpGroupFMinNonUniformAMD = 5002,
1219     SpvOpGroupUMinNonUniformAMD = 5003,
1220     SpvOpGroupSMinNonUniformAMD = 5004,
1221     SpvOpGroupFMaxNonUniformAMD = 5005,
1222     SpvOpGroupUMaxNonUniformAMD = 5006,
1223     SpvOpGroupSMaxNonUniformAMD = 5007,
1224     SpvOpFragmentMaskFetchAMD = 5011,
1225     SpvOpFragmentFetchAMD = 5012,
1226     SpvOpImageSampleFootprintNV = 5283,
1227     SpvOpGroupNonUniformPartitionNV = 5296,
1228     SpvOpWritePackedPrimitiveIndices4x8NV = 5299,
1229     SpvOpReportIntersectionNV = 5334,
1230     SpvOpIgnoreIntersectionNV = 5335,
1231     SpvOpTerminateRayNV = 5336,
1232     SpvOpTraceNV = 5337,
1233     SpvOpTypeAccelerationStructureNV = 5341,
1234     SpvOpExecuteCallableNV = 5344,
1235     SpvOpTypeCooperativeMatrixNV = 5358,
1236     SpvOpCooperativeMatrixLoadNV = 5359,
1237     SpvOpCooperativeMatrixStoreNV = 5360,
1238     SpvOpCooperativeMatrixMulAddNV = 5361,
1239     SpvOpCooperativeMatrixLengthNV = 5362,
1240     SpvOpBeginInvocationInterlockEXT = 5364,
1241     SpvOpEndInvocationInterlockEXT = 5365,
1242     SpvOpDemoteToHelperInvocationEXT = 5380,
1243     SpvOpIsHelperInvocationEXT = 5381,
1244     SpvOpSubgroupShuffleINTEL = 5571,
1245     SpvOpSubgroupShuffleDownINTEL = 5572,
1246     SpvOpSubgroupShuffleUpINTEL = 5573,
1247     SpvOpSubgroupShuffleXorINTEL = 5574,
1248     SpvOpSubgroupBlockReadINTEL = 5575,
1249     SpvOpSubgroupBlockWriteINTEL = 5576,
1250     SpvOpSubgroupImageBlockReadINTEL = 5577,
1251     SpvOpSubgroupImageBlockWriteINTEL = 5578,
1252     SpvOpSubgroupImageMediaBlockReadINTEL = 5580,
1253     SpvOpSubgroupImageMediaBlockWriteINTEL = 5581,
1254     SpvOpUCountLeadingZerosINTEL = 5585,
1255     SpvOpUCountTrailingZerosINTEL = 5586,
1256     SpvOpAbsISubINTEL = 5587,
1257     SpvOpAbsUSubINTEL = 5588,
1258     SpvOpIAddSatINTEL = 5589,
1259     SpvOpUAddSatINTEL = 5590,
1260     SpvOpIAverageINTEL = 5591,
1261     SpvOpUAverageINTEL = 5592,
1262     SpvOpIAverageRoundedINTEL = 5593,
1263     SpvOpUAverageRoundedINTEL = 5594,
1264     SpvOpISubSatINTEL = 5595,
1265     SpvOpUSubSatINTEL = 5596,
1266     SpvOpIMul32x16INTEL = 5597,
1267     SpvOpUMul32x16INTEL = 5598,
1268     SpvOpDecorateString = 5632,
1269     SpvOpDecorateStringGOOGLE = 5632,
1270     SpvOpMemberDecorateString = 5633,
1271     SpvOpMemberDecorateStringGOOGLE = 5633,
1272     SpvOpVmeImageINTEL = 5699,
1273     SpvOpTypeVmeImageINTEL = 5700,
1274     SpvOpTypeAvcImePayloadINTEL = 5701,
1275     SpvOpTypeAvcRefPayloadINTEL = 5702,
1276     SpvOpTypeAvcSicPayloadINTEL = 5703,
1277     SpvOpTypeAvcMcePayloadINTEL = 5704,
1278     SpvOpTypeAvcMceResultINTEL = 5705,
1279     SpvOpTypeAvcImeResultINTEL = 5706,
1280     SpvOpTypeAvcImeResultSingleReferenceStreamoutINTEL = 5707,
1281     SpvOpTypeAvcImeResultDualReferenceStreamoutINTEL = 5708,
1282     SpvOpTypeAvcImeSingleReferenceStreaminINTEL = 5709,
1283     SpvOpTypeAvcImeDualReferenceStreaminINTEL = 5710,
1284     SpvOpTypeAvcRefResultINTEL = 5711,
1285     SpvOpTypeAvcSicResultINTEL = 5712,
1286     SpvOpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL = 5713,
1287     SpvOpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL = 5714,
1288     SpvOpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL = 5715,
1289     SpvOpSubgroupAvcMceSetInterShapePenaltyINTEL = 5716,
1290     SpvOpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL = 5717,
1291     SpvOpSubgroupAvcMceSetInterDirectionPenaltyINTEL = 5718,
1292     SpvOpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL = 5719,
1293     SpvOpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL = 5720,
1294     SpvOpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL = 5721,
1295     SpvOpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL = 5722,
1296     SpvOpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL = 5723,
1297     SpvOpSubgroupAvcMceSetMotionVectorCostFunctionINTEL = 5724,
1298     SpvOpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL = 5725,
1299     SpvOpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL = 5726,
1300     SpvOpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL = 5727,
1301     SpvOpSubgroupAvcMceSetAcOnlyHaarINTEL = 5728,
1302     SpvOpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL = 5729,
1303     SpvOpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL = 5730,
1304     SpvOpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL = 5731,
1305     SpvOpSubgroupAvcMceConvertToImePayloadINTEL = 5732,
1306     SpvOpSubgroupAvcMceConvertToImeResultINTEL = 5733,
1307     SpvOpSubgroupAvcMceConvertToRefPayloadINTEL = 5734,
1308     SpvOpSubgroupAvcMceConvertToRefResultINTEL = 5735,
1309     SpvOpSubgroupAvcMceConvertToSicPayloadINTEL = 5736,
1310     SpvOpSubgroupAvcMceConvertToSicResultINTEL = 5737,
1311     SpvOpSubgroupAvcMceGetMotionVectorsINTEL = 5738,
1312     SpvOpSubgroupAvcMceGetInterDistortionsINTEL = 5739,
1313     SpvOpSubgroupAvcMceGetBestInterDistortionsINTEL = 5740,
1314     SpvOpSubgroupAvcMceGetInterMajorShapeINTEL = 5741,
1315     SpvOpSubgroupAvcMceGetInterMinorShapeINTEL = 5742,
1316     SpvOpSubgroupAvcMceGetInterDirectionsINTEL = 5743,
1317     SpvOpSubgroupAvcMceGetInterMotionVectorCountINTEL = 5744,
1318     SpvOpSubgroupAvcMceGetInterReferenceIdsINTEL = 5745,
1319     SpvOpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL = 5746,
1320     SpvOpSubgroupAvcImeInitializeINTEL = 5747,
1321     SpvOpSubgroupAvcImeSetSingleReferenceINTEL = 5748,
1322     SpvOpSubgroupAvcImeSetDualReferenceINTEL = 5749,
1323     SpvOpSubgroupAvcImeRefWindowSizeINTEL = 5750,
1324     SpvOpSubgroupAvcImeAdjustRefOffsetINTEL = 5751,
1325     SpvOpSubgroupAvcImeConvertToMcePayloadINTEL = 5752,
1326     SpvOpSubgroupAvcImeSetMaxMotionVectorCountINTEL = 5753,
1327     SpvOpSubgroupAvcImeSetUnidirectionalMixDisableINTEL = 5754,
1328     SpvOpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL = 5755,
1329     SpvOpSubgroupAvcImeSetWeightedSadINTEL = 5756,
1330     SpvOpSubgroupAvcImeEvaluateWithSingleReferenceINTEL = 5757,
1331     SpvOpSubgroupAvcImeEvaluateWithDualReferenceINTEL = 5758,
1332     SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL = 5759,
1333     SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL = 5760,
1334     SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL = 5761,
1335     SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL = 5762,
1336     SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL = 5763,
1337     SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL = 5764,
1338     SpvOpSubgroupAvcImeConvertToMceResultINTEL = 5765,
1339     SpvOpSubgroupAvcImeGetSingleReferenceStreaminINTEL = 5766,
1340     SpvOpSubgroupAvcImeGetDualReferenceStreaminINTEL = 5767,
1341     SpvOpSubgroupAvcImeStripSingleReferenceStreamoutINTEL = 5768,
1342     SpvOpSubgroupAvcImeStripDualReferenceStreamoutINTEL = 5769,
1343     SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL = 5770,
1344     SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL = 5771,
1345     SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL = 5772,
1346     SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL = 5773,
1347     SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL = 5774,
1348     SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL = 5775,
1349     SpvOpSubgroupAvcImeGetBorderReachedINTEL = 5776,
1350     SpvOpSubgroupAvcImeGetTruncatedSearchIndicationINTEL = 5777,
1351     SpvOpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL = 5778,
1352     SpvOpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL = 5779,
1353     SpvOpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL = 5780,
1354     SpvOpSubgroupAvcFmeInitializeINTEL = 5781,
1355     SpvOpSubgroupAvcBmeInitializeINTEL = 5782,
1356     SpvOpSubgroupAvcRefConvertToMcePayloadINTEL = 5783,
1357     SpvOpSubgroupAvcRefSetBidirectionalMixDisableINTEL = 5784,
1358     SpvOpSubgroupAvcRefSetBilinearFilterEnableINTEL = 5785,
1359     SpvOpSubgroupAvcRefEvaluateWithSingleReferenceINTEL = 5786,
1360     SpvOpSubgroupAvcRefEvaluateWithDualReferenceINTEL = 5787,
1361     SpvOpSubgroupAvcRefEvaluateWithMultiReferenceINTEL = 5788,
1362     SpvOpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL = 5789,
1363     SpvOpSubgroupAvcRefConvertToMceResultINTEL = 5790,
1364     SpvOpSubgroupAvcSicInitializeINTEL = 5791,
1365     SpvOpSubgroupAvcSicConfigureSkcINTEL = 5792,
1366     SpvOpSubgroupAvcSicConfigureIpeLumaINTEL = 5793,
1367     SpvOpSubgroupAvcSicConfigureIpeLumaChromaINTEL = 5794,
1368     SpvOpSubgroupAvcSicGetMotionVectorMaskINTEL = 5795,
1369     SpvOpSubgroupAvcSicConvertToMcePayloadINTEL = 5796,
1370     SpvOpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL = 5797,
1371     SpvOpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL = 5798,
1372     SpvOpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL = 5799,
1373     SpvOpSubgroupAvcSicSetBilinearFilterEnableINTEL = 5800,
1374     SpvOpSubgroupAvcSicSetSkcForwardTransformEnableINTEL = 5801,
1375     SpvOpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL = 5802,
1376     SpvOpSubgroupAvcSicEvaluateIpeINTEL = 5803,
1377     SpvOpSubgroupAvcSicEvaluateWithSingleReferenceINTEL = 5804,
1378     SpvOpSubgroupAvcSicEvaluateWithDualReferenceINTEL = 5805,
1379     SpvOpSubgroupAvcSicEvaluateWithMultiReferenceINTEL = 5806,
1380     SpvOpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL = 5807,
1381     SpvOpSubgroupAvcSicConvertToMceResultINTEL = 5808,
1382     SpvOpSubgroupAvcSicGetIpeLumaShapeINTEL = 5809,
1383     SpvOpSubgroupAvcSicGetBestIpeLumaDistortionINTEL = 5810,
1384     SpvOpSubgroupAvcSicGetBestIpeChromaDistortionINTEL = 5811,
1385     SpvOpSubgroupAvcSicGetPackedIpeLumaModesINTEL = 5812,
1386     SpvOpSubgroupAvcSicGetIpeChromaModeINTEL = 5813,
1387     SpvOpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL = 5814,
1388     SpvOpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL = 5815,
1389     SpvOpSubgroupAvcSicGetInterRawSadsINTEL = 5816,
1390     SpvOpMax = 0x7fffffff,
1391 } SpvOp;
1392 
1393 #ifdef SPV_ENABLE_UTILITY_CODE
SpvHasResultAndType(SpvOp opcode,bool * hasResult,bool * hasResultType)1394 inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultType) {
1395     *hasResult = *hasResultType = false;
1396     switch (opcode) {
1397     default: /* unknown opcode */ break;
1398     case SpvOpNop: *hasResult = false; *hasResultType = false; break;
1399     case SpvOpUndef: *hasResult = true; *hasResultType = true; break;
1400     case SpvOpSourceContinued: *hasResult = false; *hasResultType = false; break;
1401     case SpvOpSource: *hasResult = false; *hasResultType = false; break;
1402     case SpvOpSourceExtension: *hasResult = false; *hasResultType = false; break;
1403     case SpvOpName: *hasResult = false; *hasResultType = false; break;
1404     case SpvOpMemberName: *hasResult = false; *hasResultType = false; break;
1405     case SpvOpString: *hasResult = true; *hasResultType = false; break;
1406     case SpvOpLine: *hasResult = false; *hasResultType = false; break;
1407     case SpvOpExtension: *hasResult = false; *hasResultType = false; break;
1408     case SpvOpExtInstImport: *hasResult = true; *hasResultType = false; break;
1409     case SpvOpExtInst: *hasResult = true; *hasResultType = true; break;
1410     case SpvOpMemoryModel: *hasResult = false; *hasResultType = false; break;
1411     case SpvOpEntryPoint: *hasResult = false; *hasResultType = false; break;
1412     case SpvOpExecutionMode: *hasResult = false; *hasResultType = false; break;
1413     case SpvOpCapability: *hasResult = false; *hasResultType = false; break;
1414     case SpvOpTypeVoid: *hasResult = true; *hasResultType = false; break;
1415     case SpvOpTypeBool: *hasResult = true; *hasResultType = false; break;
1416     case SpvOpTypeInt: *hasResult = true; *hasResultType = false; break;
1417     case SpvOpTypeFloat: *hasResult = true; *hasResultType = false; break;
1418     case SpvOpTypeVector: *hasResult = true; *hasResultType = false; break;
1419     case SpvOpTypeMatrix: *hasResult = true; *hasResultType = false; break;
1420     case SpvOpTypeImage: *hasResult = true; *hasResultType = false; break;
1421     case SpvOpTypeSampler: *hasResult = true; *hasResultType = false; break;
1422     case SpvOpTypeSampledImage: *hasResult = true; *hasResultType = false; break;
1423     case SpvOpTypeArray: *hasResult = true; *hasResultType = false; break;
1424     case SpvOpTypeRuntimeArray: *hasResult = true; *hasResultType = false; break;
1425     case SpvOpTypeStruct: *hasResult = true; *hasResultType = false; break;
1426     case SpvOpTypeOpaque: *hasResult = true; *hasResultType = false; break;
1427     case SpvOpTypePointer: *hasResult = true; *hasResultType = false; break;
1428     case SpvOpTypeFunction: *hasResult = true; *hasResultType = false; break;
1429     case SpvOpTypeEvent: *hasResult = true; *hasResultType = false; break;
1430     case SpvOpTypeDeviceEvent: *hasResult = true; *hasResultType = false; break;
1431     case SpvOpTypeReserveId: *hasResult = true; *hasResultType = false; break;
1432     case SpvOpTypeQueue: *hasResult = true; *hasResultType = false; break;
1433     case SpvOpTypePipe: *hasResult = true; *hasResultType = false; break;
1434     case SpvOpTypeForwardPointer: *hasResult = false; *hasResultType = false; break;
1435     case SpvOpConstantTrue: *hasResult = true; *hasResultType = true; break;
1436     case SpvOpConstantFalse: *hasResult = true; *hasResultType = true; break;
1437     case SpvOpConstant: *hasResult = true; *hasResultType = true; break;
1438     case SpvOpConstantComposite: *hasResult = true; *hasResultType = true; break;
1439     case SpvOpConstantSampler: *hasResult = true; *hasResultType = true; break;
1440     case SpvOpConstantNull: *hasResult = true; *hasResultType = true; break;
1441     case SpvOpSpecConstantTrue: *hasResult = true; *hasResultType = true; break;
1442     case SpvOpSpecConstantFalse: *hasResult = true; *hasResultType = true; break;
1443     case SpvOpSpecConstant: *hasResult = true; *hasResultType = true; break;
1444     case SpvOpSpecConstantComposite: *hasResult = true; *hasResultType = true; break;
1445     case SpvOpSpecConstantOp: *hasResult = true; *hasResultType = true; break;
1446     case SpvOpFunction: *hasResult = true; *hasResultType = true; break;
1447     case SpvOpFunctionParameter: *hasResult = true; *hasResultType = true; break;
1448     case SpvOpFunctionEnd: *hasResult = false; *hasResultType = false; break;
1449     case SpvOpFunctionCall: *hasResult = true; *hasResultType = true; break;
1450     case SpvOpVariable: *hasResult = true; *hasResultType = true; break;
1451     case SpvOpImageTexelPointer: *hasResult = true; *hasResultType = true; break;
1452     case SpvOpLoad: *hasResult = true; *hasResultType = true; break;
1453     case SpvOpStore: *hasResult = false; *hasResultType = false; break;
1454     case SpvOpCopyMemory: *hasResult = false; *hasResultType = false; break;
1455     case SpvOpCopyMemorySized: *hasResult = false; *hasResultType = false; break;
1456     case SpvOpAccessChain: *hasResult = true; *hasResultType = true; break;
1457     case SpvOpInBoundsAccessChain: *hasResult = true; *hasResultType = true; break;
1458     case SpvOpPtrAccessChain: *hasResult = true; *hasResultType = true; break;
1459     case SpvOpArrayLength: *hasResult = true; *hasResultType = true; break;
1460     case SpvOpGenericPtrMemSemantics: *hasResult = true; *hasResultType = true; break;
1461     case SpvOpInBoundsPtrAccessChain: *hasResult = true; *hasResultType = true; break;
1462     case SpvOpDecorate: *hasResult = false; *hasResultType = false; break;
1463     case SpvOpMemberDecorate: *hasResult = false; *hasResultType = false; break;
1464     case SpvOpDecorationGroup: *hasResult = true; *hasResultType = false; break;
1465     case SpvOpGroupDecorate: *hasResult = false; *hasResultType = false; break;
1466     case SpvOpGroupMemberDecorate: *hasResult = false; *hasResultType = false; break;
1467     case SpvOpVectorExtractDynamic: *hasResult = true; *hasResultType = true; break;
1468     case SpvOpVectorInsertDynamic: *hasResult = true; *hasResultType = true; break;
1469     case SpvOpVectorShuffle: *hasResult = true; *hasResultType = true; break;
1470     case SpvOpCompositeConstruct: *hasResult = true; *hasResultType = true; break;
1471     case SpvOpCompositeExtract: *hasResult = true; *hasResultType = true; break;
1472     case SpvOpCompositeInsert: *hasResult = true; *hasResultType = true; break;
1473     case SpvOpCopyObject: *hasResult = true; *hasResultType = true; break;
1474     case SpvOpTranspose: *hasResult = true; *hasResultType = true; break;
1475     case SpvOpSampledImage: *hasResult = true; *hasResultType = true; break;
1476     case SpvOpImageSampleImplicitLod: *hasResult = true; *hasResultType = true; break;
1477     case SpvOpImageSampleExplicitLod: *hasResult = true; *hasResultType = true; break;
1478     case SpvOpImageSampleDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
1479     case SpvOpImageSampleDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
1480     case SpvOpImageSampleProjImplicitLod: *hasResult = true; *hasResultType = true; break;
1481     case SpvOpImageSampleProjExplicitLod: *hasResult = true; *hasResultType = true; break;
1482     case SpvOpImageSampleProjDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
1483     case SpvOpImageSampleProjDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
1484     case SpvOpImageFetch: *hasResult = true; *hasResultType = true; break;
1485     case SpvOpImageGather: *hasResult = true; *hasResultType = true; break;
1486     case SpvOpImageDrefGather: *hasResult = true; *hasResultType = true; break;
1487     case SpvOpImageRead: *hasResult = true; *hasResultType = true; break;
1488     case SpvOpImageWrite: *hasResult = false; *hasResultType = false; break;
1489     case SpvOpImage: *hasResult = true; *hasResultType = true; break;
1490     case SpvOpImageQueryFormat: *hasResult = true; *hasResultType = true; break;
1491     case SpvOpImageQueryOrder: *hasResult = true; *hasResultType = true; break;
1492     case SpvOpImageQuerySizeLod: *hasResult = true; *hasResultType = true; break;
1493     case SpvOpImageQuerySize: *hasResult = true; *hasResultType = true; break;
1494     case SpvOpImageQueryLod: *hasResult = true; *hasResultType = true; break;
1495     case SpvOpImageQueryLevels: *hasResult = true; *hasResultType = true; break;
1496     case SpvOpImageQuerySamples: *hasResult = true; *hasResultType = true; break;
1497     case SpvOpConvertFToU: *hasResult = true; *hasResultType = true; break;
1498     case SpvOpConvertFToS: *hasResult = true; *hasResultType = true; break;
1499     case SpvOpConvertSToF: *hasResult = true; *hasResultType = true; break;
1500     case SpvOpConvertUToF: *hasResult = true; *hasResultType = true; break;
1501     case SpvOpUConvert: *hasResult = true; *hasResultType = true; break;
1502     case SpvOpSConvert: *hasResult = true; *hasResultType = true; break;
1503     case SpvOpFConvert: *hasResult = true; *hasResultType = true; break;
1504     case SpvOpQuantizeToF16: *hasResult = true; *hasResultType = true; break;
1505     case SpvOpConvertPtrToU: *hasResult = true; *hasResultType = true; break;
1506     case SpvOpSatConvertSToU: *hasResult = true; *hasResultType = true; break;
1507     case SpvOpSatConvertUToS: *hasResult = true; *hasResultType = true; break;
1508     case SpvOpConvertUToPtr: *hasResult = true; *hasResultType = true; break;
1509     case SpvOpPtrCastToGeneric: *hasResult = true; *hasResultType = true; break;
1510     case SpvOpGenericCastToPtr: *hasResult = true; *hasResultType = true; break;
1511     case SpvOpGenericCastToPtrExplicit: *hasResult = true; *hasResultType = true; break;
1512     case SpvOpBitcast: *hasResult = true; *hasResultType = true; break;
1513     case SpvOpSNegate: *hasResult = true; *hasResultType = true; break;
1514     case SpvOpFNegate: *hasResult = true; *hasResultType = true; break;
1515     case SpvOpIAdd: *hasResult = true; *hasResultType = true; break;
1516     case SpvOpFAdd: *hasResult = true; *hasResultType = true; break;
1517     case SpvOpISub: *hasResult = true; *hasResultType = true; break;
1518     case SpvOpFSub: *hasResult = true; *hasResultType = true; break;
1519     case SpvOpIMul: *hasResult = true; *hasResultType = true; break;
1520     case SpvOpFMul: *hasResult = true; *hasResultType = true; break;
1521     case SpvOpUDiv: *hasResult = true; *hasResultType = true; break;
1522     case SpvOpSDiv: *hasResult = true; *hasResultType = true; break;
1523     case SpvOpFDiv: *hasResult = true; *hasResultType = true; break;
1524     case SpvOpUMod: *hasResult = true; *hasResultType = true; break;
1525     case SpvOpSRem: *hasResult = true; *hasResultType = true; break;
1526     case SpvOpSMod: *hasResult = true; *hasResultType = true; break;
1527     case SpvOpFRem: *hasResult = true; *hasResultType = true; break;
1528     case SpvOpFMod: *hasResult = true; *hasResultType = true; break;
1529     case SpvOpVectorTimesScalar: *hasResult = true; *hasResultType = true; break;
1530     case SpvOpMatrixTimesScalar: *hasResult = true; *hasResultType = true; break;
1531     case SpvOpVectorTimesMatrix: *hasResult = true; *hasResultType = true; break;
1532     case SpvOpMatrixTimesVector: *hasResult = true; *hasResultType = true; break;
1533     case SpvOpMatrixTimesMatrix: *hasResult = true; *hasResultType = true; break;
1534     case SpvOpOuterProduct: *hasResult = true; *hasResultType = true; break;
1535     case SpvOpDot: *hasResult = true; *hasResultType = true; break;
1536     case SpvOpIAddCarry: *hasResult = true; *hasResultType = true; break;
1537     case SpvOpISubBorrow: *hasResult = true; *hasResultType = true; break;
1538     case SpvOpUMulExtended: *hasResult = true; *hasResultType = true; break;
1539     case SpvOpSMulExtended: *hasResult = true; *hasResultType = true; break;
1540     case SpvOpAny: *hasResult = true; *hasResultType = true; break;
1541     case SpvOpAll: *hasResult = true; *hasResultType = true; break;
1542     case SpvOpIsNan: *hasResult = true; *hasResultType = true; break;
1543     case SpvOpIsInf: *hasResult = true; *hasResultType = true; break;
1544     case SpvOpIsFinite: *hasResult = true; *hasResultType = true; break;
1545     case SpvOpIsNormal: *hasResult = true; *hasResultType = true; break;
1546     case SpvOpSignBitSet: *hasResult = true; *hasResultType = true; break;
1547     case SpvOpLessOrGreater: *hasResult = true; *hasResultType = true; break;
1548     case SpvOpOrdered: *hasResult = true; *hasResultType = true; break;
1549     case SpvOpUnordered: *hasResult = true; *hasResultType = true; break;
1550     case SpvOpLogicalEqual: *hasResult = true; *hasResultType = true; break;
1551     case SpvOpLogicalNotEqual: *hasResult = true; *hasResultType = true; break;
1552     case SpvOpLogicalOr: *hasResult = true; *hasResultType = true; break;
1553     case SpvOpLogicalAnd: *hasResult = true; *hasResultType = true; break;
1554     case SpvOpLogicalNot: *hasResult = true; *hasResultType = true; break;
1555     case SpvOpSelect: *hasResult = true; *hasResultType = true; break;
1556     case SpvOpIEqual: *hasResult = true; *hasResultType = true; break;
1557     case SpvOpINotEqual: *hasResult = true; *hasResultType = true; break;
1558     case SpvOpUGreaterThan: *hasResult = true; *hasResultType = true; break;
1559     case SpvOpSGreaterThan: *hasResult = true; *hasResultType = true; break;
1560     case SpvOpUGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
1561     case SpvOpSGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
1562     case SpvOpULessThan: *hasResult = true; *hasResultType = true; break;
1563     case SpvOpSLessThan: *hasResult = true; *hasResultType = true; break;
1564     case SpvOpULessThanEqual: *hasResult = true; *hasResultType = true; break;
1565     case SpvOpSLessThanEqual: *hasResult = true; *hasResultType = true; break;
1566     case SpvOpFOrdEqual: *hasResult = true; *hasResultType = true; break;
1567     case SpvOpFUnordEqual: *hasResult = true; *hasResultType = true; break;
1568     case SpvOpFOrdNotEqual: *hasResult = true; *hasResultType = true; break;
1569     case SpvOpFUnordNotEqual: *hasResult = true; *hasResultType = true; break;
1570     case SpvOpFOrdLessThan: *hasResult = true; *hasResultType = true; break;
1571     case SpvOpFUnordLessThan: *hasResult = true; *hasResultType = true; break;
1572     case SpvOpFOrdGreaterThan: *hasResult = true; *hasResultType = true; break;
1573     case SpvOpFUnordGreaterThan: *hasResult = true; *hasResultType = true; break;
1574     case SpvOpFOrdLessThanEqual: *hasResult = true; *hasResultType = true; break;
1575     case SpvOpFUnordLessThanEqual: *hasResult = true; *hasResultType = true; break;
1576     case SpvOpFOrdGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
1577     case SpvOpFUnordGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
1578     case SpvOpShiftRightLogical: *hasResult = true; *hasResultType = true; break;
1579     case SpvOpShiftRightArithmetic: *hasResult = true; *hasResultType = true; break;
1580     case SpvOpShiftLeftLogical: *hasResult = true; *hasResultType = true; break;
1581     case SpvOpBitwiseOr: *hasResult = true; *hasResultType = true; break;
1582     case SpvOpBitwiseXor: *hasResult = true; *hasResultType = true; break;
1583     case SpvOpBitwiseAnd: *hasResult = true; *hasResultType = true; break;
1584     case SpvOpNot: *hasResult = true; *hasResultType = true; break;
1585     case SpvOpBitFieldInsert: *hasResult = true; *hasResultType = true; break;
1586     case SpvOpBitFieldSExtract: *hasResult = true; *hasResultType = true; break;
1587     case SpvOpBitFieldUExtract: *hasResult = true; *hasResultType = true; break;
1588     case SpvOpBitReverse: *hasResult = true; *hasResultType = true; break;
1589     case SpvOpBitCount: *hasResult = true; *hasResultType = true; break;
1590     case SpvOpDPdx: *hasResult = true; *hasResultType = true; break;
1591     case SpvOpDPdy: *hasResult = true; *hasResultType = true; break;
1592     case SpvOpFwidth: *hasResult = true; *hasResultType = true; break;
1593     case SpvOpDPdxFine: *hasResult = true; *hasResultType = true; break;
1594     case SpvOpDPdyFine: *hasResult = true; *hasResultType = true; break;
1595     case SpvOpFwidthFine: *hasResult = true; *hasResultType = true; break;
1596     case SpvOpDPdxCoarse: *hasResult = true; *hasResultType = true; break;
1597     case SpvOpDPdyCoarse: *hasResult = true; *hasResultType = true; break;
1598     case SpvOpFwidthCoarse: *hasResult = true; *hasResultType = true; break;
1599     case SpvOpEmitVertex: *hasResult = false; *hasResultType = false; break;
1600     case SpvOpEndPrimitive: *hasResult = false; *hasResultType = false; break;
1601     case SpvOpEmitStreamVertex: *hasResult = false; *hasResultType = false; break;
1602     case SpvOpEndStreamPrimitive: *hasResult = false; *hasResultType = false; break;
1603     case SpvOpControlBarrier: *hasResult = false; *hasResultType = false; break;
1604     case SpvOpMemoryBarrier: *hasResult = false; *hasResultType = false; break;
1605     case SpvOpAtomicLoad: *hasResult = true; *hasResultType = true; break;
1606     case SpvOpAtomicStore: *hasResult = false; *hasResultType = false; break;
1607     case SpvOpAtomicExchange: *hasResult = true; *hasResultType = true; break;
1608     case SpvOpAtomicCompareExchange: *hasResult = true; *hasResultType = true; break;
1609     case SpvOpAtomicCompareExchangeWeak: *hasResult = true; *hasResultType = true; break;
1610     case SpvOpAtomicIIncrement: *hasResult = true; *hasResultType = true; break;
1611     case SpvOpAtomicIDecrement: *hasResult = true; *hasResultType = true; break;
1612     case SpvOpAtomicIAdd: *hasResult = true; *hasResultType = true; break;
1613     case SpvOpAtomicISub: *hasResult = true; *hasResultType = true; break;
1614     case SpvOpAtomicSMin: *hasResult = true; *hasResultType = true; break;
1615     case SpvOpAtomicUMin: *hasResult = true; *hasResultType = true; break;
1616     case SpvOpAtomicSMax: *hasResult = true; *hasResultType = true; break;
1617     case SpvOpAtomicUMax: *hasResult = true; *hasResultType = true; break;
1618     case SpvOpAtomicAnd: *hasResult = true; *hasResultType = true; break;
1619     case SpvOpAtomicOr: *hasResult = true; *hasResultType = true; break;
1620     case SpvOpAtomicXor: *hasResult = true; *hasResultType = true; break;
1621     case SpvOpPhi: *hasResult = true; *hasResultType = true; break;
1622     case SpvOpLoopMerge: *hasResult = false; *hasResultType = false; break;
1623     case SpvOpSelectionMerge: *hasResult = false; *hasResultType = false; break;
1624     case SpvOpLabel: *hasResult = true; *hasResultType = false; break;
1625     case SpvOpBranch: *hasResult = false; *hasResultType = false; break;
1626     case SpvOpBranchConditional: *hasResult = false; *hasResultType = false; break;
1627     case SpvOpSwitch: *hasResult = false; *hasResultType = false; break;
1628     case SpvOpKill: *hasResult = false; *hasResultType = false; break;
1629     case SpvOpReturn: *hasResult = false; *hasResultType = false; break;
1630     case SpvOpReturnValue: *hasResult = false; *hasResultType = false; break;
1631     case SpvOpUnreachable: *hasResult = false; *hasResultType = false; break;
1632     case SpvOpLifetimeStart: *hasResult = false; *hasResultType = false; break;
1633     case SpvOpLifetimeStop: *hasResult = false; *hasResultType = false; break;
1634     case SpvOpGroupAsyncCopy: *hasResult = true; *hasResultType = true; break;
1635     case SpvOpGroupWaitEvents: *hasResult = false; *hasResultType = false; break;
1636     case SpvOpGroupAll: *hasResult = true; *hasResultType = true; break;
1637     case SpvOpGroupAny: *hasResult = true; *hasResultType = true; break;
1638     case SpvOpGroupBroadcast: *hasResult = true; *hasResultType = true; break;
1639     case SpvOpGroupIAdd: *hasResult = true; *hasResultType = true; break;
1640     case SpvOpGroupFAdd: *hasResult = true; *hasResultType = true; break;
1641     case SpvOpGroupFMin: *hasResult = true; *hasResultType = true; break;
1642     case SpvOpGroupUMin: *hasResult = true; *hasResultType = true; break;
1643     case SpvOpGroupSMin: *hasResult = true; *hasResultType = true; break;
1644     case SpvOpGroupFMax: *hasResult = true; *hasResultType = true; break;
1645     case SpvOpGroupUMax: *hasResult = true; *hasResultType = true; break;
1646     case SpvOpGroupSMax: *hasResult = true; *hasResultType = true; break;
1647     case SpvOpReadPipe: *hasResult = true; *hasResultType = true; break;
1648     case SpvOpWritePipe: *hasResult = true; *hasResultType = true; break;
1649     case SpvOpReservedReadPipe: *hasResult = true; *hasResultType = true; break;
1650     case SpvOpReservedWritePipe: *hasResult = true; *hasResultType = true; break;
1651     case SpvOpReserveReadPipePackets: *hasResult = true; *hasResultType = true; break;
1652     case SpvOpReserveWritePipePackets: *hasResult = true; *hasResultType = true; break;
1653     case SpvOpCommitReadPipe: *hasResult = false; *hasResultType = false; break;
1654     case SpvOpCommitWritePipe: *hasResult = false; *hasResultType = false; break;
1655     case SpvOpIsValidReserveId: *hasResult = true; *hasResultType = true; break;
1656     case SpvOpGetNumPipePackets: *hasResult = true; *hasResultType = true; break;
1657     case SpvOpGetMaxPipePackets: *hasResult = true; *hasResultType = true; break;
1658     case SpvOpGroupReserveReadPipePackets: *hasResult = true; *hasResultType = true; break;
1659     case SpvOpGroupReserveWritePipePackets: *hasResult = true; *hasResultType = true; break;
1660     case SpvOpGroupCommitReadPipe: *hasResult = false; *hasResultType = false; break;
1661     case SpvOpGroupCommitWritePipe: *hasResult = false; *hasResultType = false; break;
1662     case SpvOpEnqueueMarker: *hasResult = true; *hasResultType = true; break;
1663     case SpvOpEnqueueKernel: *hasResult = true; *hasResultType = true; break;
1664     case SpvOpGetKernelNDrangeSubGroupCount: *hasResult = true; *hasResultType = true; break;
1665     case SpvOpGetKernelNDrangeMaxSubGroupSize: *hasResult = true; *hasResultType = true; break;
1666     case SpvOpGetKernelWorkGroupSize: *hasResult = true; *hasResultType = true; break;
1667     case SpvOpGetKernelPreferredWorkGroupSizeMultiple: *hasResult = true; *hasResultType = true; break;
1668     case SpvOpRetainEvent: *hasResult = false; *hasResultType = false; break;
1669     case SpvOpReleaseEvent: *hasResult = false; *hasResultType = false; break;
1670     case SpvOpCreateUserEvent: *hasResult = true; *hasResultType = true; break;
1671     case SpvOpIsValidEvent: *hasResult = true; *hasResultType = true; break;
1672     case SpvOpSetUserEventStatus: *hasResult = false; *hasResultType = false; break;
1673     case SpvOpCaptureEventProfilingInfo: *hasResult = false; *hasResultType = false; break;
1674     case SpvOpGetDefaultQueue: *hasResult = true; *hasResultType = true; break;
1675     case SpvOpBuildNDRange: *hasResult = true; *hasResultType = true; break;
1676     case SpvOpImageSparseSampleImplicitLod: *hasResult = true; *hasResultType = true; break;
1677     case SpvOpImageSparseSampleExplicitLod: *hasResult = true; *hasResultType = true; break;
1678     case SpvOpImageSparseSampleDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
1679     case SpvOpImageSparseSampleDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
1680     case SpvOpImageSparseSampleProjImplicitLod: *hasResult = true; *hasResultType = true; break;
1681     case SpvOpImageSparseSampleProjExplicitLod: *hasResult = true; *hasResultType = true; break;
1682     case SpvOpImageSparseSampleProjDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
1683     case SpvOpImageSparseSampleProjDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
1684     case SpvOpImageSparseFetch: *hasResult = true; *hasResultType = true; break;
1685     case SpvOpImageSparseGather: *hasResult = true; *hasResultType = true; break;
1686     case SpvOpImageSparseDrefGather: *hasResult = true; *hasResultType = true; break;
1687     case SpvOpImageSparseTexelsResident: *hasResult = true; *hasResultType = true; break;
1688     case SpvOpNoLine: *hasResult = false; *hasResultType = false; break;
1689     case SpvOpAtomicFlagTestAndSet: *hasResult = true; *hasResultType = true; break;
1690     case SpvOpAtomicFlagClear: *hasResult = false; *hasResultType = false; break;
1691     case SpvOpImageSparseRead: *hasResult = true; *hasResultType = true; break;
1692     case SpvOpSizeOf: *hasResult = true; *hasResultType = true; break;
1693     case SpvOpTypePipeStorage: *hasResult = true; *hasResultType = false; break;
1694     case SpvOpConstantPipeStorage: *hasResult = true; *hasResultType = true; break;
1695     case SpvOpCreatePipeFromPipeStorage: *hasResult = true; *hasResultType = true; break;
1696     case SpvOpGetKernelLocalSizeForSubgroupCount: *hasResult = true; *hasResultType = true; break;
1697     case SpvOpGetKernelMaxNumSubgroups: *hasResult = true; *hasResultType = true; break;
1698     case SpvOpTypeNamedBarrier: *hasResult = true; *hasResultType = false; break;
1699     case SpvOpNamedBarrierInitialize: *hasResult = true; *hasResultType = true; break;
1700     case SpvOpMemoryNamedBarrier: *hasResult = false; *hasResultType = false; break;
1701     case SpvOpModuleProcessed: *hasResult = false; *hasResultType = false; break;
1702     case SpvOpExecutionModeId: *hasResult = false; *hasResultType = false; break;
1703     case SpvOpDecorateId: *hasResult = false; *hasResultType = false; break;
1704     case SpvOpGroupNonUniformElect: *hasResult = true; *hasResultType = true; break;
1705     case SpvOpGroupNonUniformAll: *hasResult = true; *hasResultType = true; break;
1706     case SpvOpGroupNonUniformAny: *hasResult = true; *hasResultType = true; break;
1707     case SpvOpGroupNonUniformAllEqual: *hasResult = true; *hasResultType = true; break;
1708     case SpvOpGroupNonUniformBroadcast: *hasResult = true; *hasResultType = true; break;
1709     case SpvOpGroupNonUniformBroadcastFirst: *hasResult = true; *hasResultType = true; break;
1710     case SpvOpGroupNonUniformBallot: *hasResult = true; *hasResultType = true; break;
1711     case SpvOpGroupNonUniformInverseBallot: *hasResult = true; *hasResultType = true; break;
1712     case SpvOpGroupNonUniformBallotBitExtract: *hasResult = true; *hasResultType = true; break;
1713     case SpvOpGroupNonUniformBallotBitCount: *hasResult = true; *hasResultType = true; break;
1714     case SpvOpGroupNonUniformBallotFindLSB: *hasResult = true; *hasResultType = true; break;
1715     case SpvOpGroupNonUniformBallotFindMSB: *hasResult = true; *hasResultType = true; break;
1716     case SpvOpGroupNonUniformShuffle: *hasResult = true; *hasResultType = true; break;
1717     case SpvOpGroupNonUniformShuffleXor: *hasResult = true; *hasResultType = true; break;
1718     case SpvOpGroupNonUniformShuffleUp: *hasResult = true; *hasResultType = true; break;
1719     case SpvOpGroupNonUniformShuffleDown: *hasResult = true; *hasResultType = true; break;
1720     case SpvOpGroupNonUniformIAdd: *hasResult = true; *hasResultType = true; break;
1721     case SpvOpGroupNonUniformFAdd: *hasResult = true; *hasResultType = true; break;
1722     case SpvOpGroupNonUniformIMul: *hasResult = true; *hasResultType = true; break;
1723     case SpvOpGroupNonUniformFMul: *hasResult = true; *hasResultType = true; break;
1724     case SpvOpGroupNonUniformSMin: *hasResult = true; *hasResultType = true; break;
1725     case SpvOpGroupNonUniformUMin: *hasResult = true; *hasResultType = true; break;
1726     case SpvOpGroupNonUniformFMin: *hasResult = true; *hasResultType = true; break;
1727     case SpvOpGroupNonUniformSMax: *hasResult = true; *hasResultType = true; break;
1728     case SpvOpGroupNonUniformUMax: *hasResult = true; *hasResultType = true; break;
1729     case SpvOpGroupNonUniformFMax: *hasResult = true; *hasResultType = true; break;
1730     case SpvOpGroupNonUniformBitwiseAnd: *hasResult = true; *hasResultType = true; break;
1731     case SpvOpGroupNonUniformBitwiseOr: *hasResult = true; *hasResultType = true; break;
1732     case SpvOpGroupNonUniformBitwiseXor: *hasResult = true; *hasResultType = true; break;
1733     case SpvOpGroupNonUniformLogicalAnd: *hasResult = true; *hasResultType = true; break;
1734     case SpvOpGroupNonUniformLogicalOr: *hasResult = true; *hasResultType = true; break;
1735     case SpvOpGroupNonUniformLogicalXor: *hasResult = true; *hasResultType = true; break;
1736     case SpvOpGroupNonUniformQuadBroadcast: *hasResult = true; *hasResultType = true; break;
1737     case SpvOpGroupNonUniformQuadSwap: *hasResult = true; *hasResultType = true; break;
1738     case SpvOpCopyLogical: *hasResult = true; *hasResultType = true; break;
1739     case SpvOpPtrEqual: *hasResult = true; *hasResultType = true; break;
1740     case SpvOpPtrNotEqual: *hasResult = true; *hasResultType = true; break;
1741     case SpvOpPtrDiff: *hasResult = true; *hasResultType = true; break;
1742     case SpvOpSubgroupBallotKHR: *hasResult = true; *hasResultType = true; break;
1743     case SpvOpSubgroupFirstInvocationKHR: *hasResult = true; *hasResultType = true; break;
1744     case SpvOpSubgroupAllKHR: *hasResult = true; *hasResultType = true; break;
1745     case SpvOpSubgroupAnyKHR: *hasResult = true; *hasResultType = true; break;
1746     case SpvOpSubgroupAllEqualKHR: *hasResult = true; *hasResultType = true; break;
1747     case SpvOpSubgroupReadInvocationKHR: *hasResult = true; *hasResultType = true; break;
1748     case SpvOpGroupIAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
1749     case SpvOpGroupFAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
1750     case SpvOpGroupFMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
1751     case SpvOpGroupUMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
1752     case SpvOpGroupSMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
1753     case SpvOpGroupFMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;
1754     case SpvOpGroupUMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;
1755     case SpvOpGroupSMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;
1756     case SpvOpFragmentMaskFetchAMD: *hasResult = true; *hasResultType = true; break;
1757     case SpvOpFragmentFetchAMD: *hasResult = true; *hasResultType = true; break;
1758     case SpvOpImageSampleFootprintNV: *hasResult = true; *hasResultType = true; break;
1759     case SpvOpGroupNonUniformPartitionNV: *hasResult = true; *hasResultType = true; break;
1760     case SpvOpWritePackedPrimitiveIndices4x8NV: *hasResult = false; *hasResultType = false; break;
1761     case SpvOpReportIntersectionNV: *hasResult = true; *hasResultType = true; break;
1762     case SpvOpIgnoreIntersectionNV: *hasResult = false; *hasResultType = false; break;
1763     case SpvOpTerminateRayNV: *hasResult = false; *hasResultType = false; break;
1764     case SpvOpTraceNV: *hasResult = false; *hasResultType = false; break;
1765     case SpvOpTypeAccelerationStructureNV: *hasResult = true; *hasResultType = false; break;
1766     case SpvOpExecuteCallableNV: *hasResult = false; *hasResultType = false; break;
1767     case SpvOpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break;
1768     case SpvOpCooperativeMatrixLoadNV: *hasResult = true; *hasResultType = true; break;
1769     case SpvOpCooperativeMatrixStoreNV: *hasResult = false; *hasResultType = false; break;
1770     case SpvOpCooperativeMatrixMulAddNV: *hasResult = true; *hasResultType = true; break;
1771     case SpvOpCooperativeMatrixLengthNV: *hasResult = true; *hasResultType = true; break;
1772     case SpvOpBeginInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break;
1773     case SpvOpEndInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break;
1774     case SpvOpDemoteToHelperInvocationEXT: *hasResult = false; *hasResultType = false; break;
1775     case SpvOpIsHelperInvocationEXT: *hasResult = true; *hasResultType = true; break;
1776     case SpvOpSubgroupShuffleINTEL: *hasResult = true; *hasResultType = true; break;
1777     case SpvOpSubgroupShuffleDownINTEL: *hasResult = true; *hasResultType = true; break;
1778     case SpvOpSubgroupShuffleUpINTEL: *hasResult = true; *hasResultType = true; break;
1779     case SpvOpSubgroupShuffleXorINTEL: *hasResult = true; *hasResultType = true; break;
1780     case SpvOpSubgroupBlockReadINTEL: *hasResult = true; *hasResultType = true; break;
1781     case SpvOpSubgroupBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;
1782     case SpvOpSubgroupImageBlockReadINTEL: *hasResult = true; *hasResultType = true; break;
1783     case SpvOpSubgroupImageBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;
1784     case SpvOpSubgroupImageMediaBlockReadINTEL: *hasResult = true; *hasResultType = true; break;
1785     case SpvOpSubgroupImageMediaBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;
1786     case SpvOpUCountLeadingZerosINTEL: *hasResult = true; *hasResultType = true; break;
1787     case SpvOpUCountTrailingZerosINTEL: *hasResult = true; *hasResultType = true; break;
1788     case SpvOpAbsISubINTEL: *hasResult = true; *hasResultType = true; break;
1789     case SpvOpAbsUSubINTEL: *hasResult = true; *hasResultType = true; break;
1790     case SpvOpIAddSatINTEL: *hasResult = true; *hasResultType = true; break;
1791     case SpvOpUAddSatINTEL: *hasResult = true; *hasResultType = true; break;
1792     case SpvOpIAverageINTEL: *hasResult = true; *hasResultType = true; break;
1793     case SpvOpUAverageINTEL: *hasResult = true; *hasResultType = true; break;
1794     case SpvOpIAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break;
1795     case SpvOpUAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break;
1796     case SpvOpISubSatINTEL: *hasResult = true; *hasResultType = true; break;
1797     case SpvOpUSubSatINTEL: *hasResult = true; *hasResultType = true; break;
1798     case SpvOpIMul32x16INTEL: *hasResult = true; *hasResultType = true; break;
1799     case SpvOpUMul32x16INTEL: *hasResult = true; *hasResultType = true; break;
1800     case SpvOpDecorateString: *hasResult = false; *hasResultType = false; break;
1801     case SpvOpMemberDecorateString: *hasResult = false; *hasResultType = false; break;
1802     case SpvOpVmeImageINTEL: *hasResult = true; *hasResultType = true; break;
1803     case SpvOpTypeVmeImageINTEL: *hasResult = true; *hasResultType = false; break;
1804     case SpvOpTypeAvcImePayloadINTEL: *hasResult = true; *hasResultType = false; break;
1805     case SpvOpTypeAvcRefPayloadINTEL: *hasResult = true; *hasResultType = false; break;
1806     case SpvOpTypeAvcSicPayloadINTEL: *hasResult = true; *hasResultType = false; break;
1807     case SpvOpTypeAvcMcePayloadINTEL: *hasResult = true; *hasResultType = false; break;
1808     case SpvOpTypeAvcMceResultINTEL: *hasResult = true; *hasResultType = false; break;
1809     case SpvOpTypeAvcImeResultINTEL: *hasResult = true; *hasResultType = false; break;
1810     case SpvOpTypeAvcImeResultSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = false; break;
1811     case SpvOpTypeAvcImeResultDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = false; break;
1812     case SpvOpTypeAvcImeSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = false; break;
1813     case SpvOpTypeAvcImeDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = false; break;
1814     case SpvOpTypeAvcRefResultINTEL: *hasResult = true; *hasResultType = false; break;
1815     case SpvOpTypeAvcSicResultINTEL: *hasResult = true; *hasResultType = false; break;
1816     case SpvOpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
1817     case SpvOpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
1818     case SpvOpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
1819     case SpvOpSubgroupAvcMceSetInterShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
1820     case SpvOpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL: *hasResult = true; *hasResultType = true; break;
1821     case SpvOpSubgroupAvcMceSetInterDirectionPenaltyINTEL: *hasResult = true; *hasResultType = true; break;
1822     case SpvOpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
1823     case SpvOpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL: *hasResult = true; *hasResultType = true; break;
1824     case SpvOpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;
1825     case SpvOpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;
1826     case SpvOpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;
1827     case SpvOpSubgroupAvcMceSetMotionVectorCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;
1828     case SpvOpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
1829     case SpvOpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL: *hasResult = true; *hasResultType = true; break;
1830     case SpvOpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
1831     case SpvOpSubgroupAvcMceSetAcOnlyHaarINTEL: *hasResult = true; *hasResultType = true; break;
1832     case SpvOpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL: *hasResult = true; *hasResultType = true; break;
1833     case SpvOpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL: *hasResult = true; *hasResultType = true; break;
1834     case SpvOpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL: *hasResult = true; *hasResultType = true; break;
1835     case SpvOpSubgroupAvcMceConvertToImePayloadINTEL: *hasResult = true; *hasResultType = true; break;
1836     case SpvOpSubgroupAvcMceConvertToImeResultINTEL: *hasResult = true; *hasResultType = true; break;
1837     case SpvOpSubgroupAvcMceConvertToRefPayloadINTEL: *hasResult = true; *hasResultType = true; break;
1838     case SpvOpSubgroupAvcMceConvertToRefResultINTEL: *hasResult = true; *hasResultType = true; break;
1839     case SpvOpSubgroupAvcMceConvertToSicPayloadINTEL: *hasResult = true; *hasResultType = true; break;
1840     case SpvOpSubgroupAvcMceConvertToSicResultINTEL: *hasResult = true; *hasResultType = true; break;
1841     case SpvOpSubgroupAvcMceGetMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;
1842     case SpvOpSubgroupAvcMceGetInterDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
1843     case SpvOpSubgroupAvcMceGetBestInterDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
1844     case SpvOpSubgroupAvcMceGetInterMajorShapeINTEL: *hasResult = true; *hasResultType = true; break;
1845     case SpvOpSubgroupAvcMceGetInterMinorShapeINTEL: *hasResult = true; *hasResultType = true; break;
1846     case SpvOpSubgroupAvcMceGetInterDirectionsINTEL: *hasResult = true; *hasResultType = true; break;
1847     case SpvOpSubgroupAvcMceGetInterMotionVectorCountINTEL: *hasResult = true; *hasResultType = true; break;
1848     case SpvOpSubgroupAvcMceGetInterReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;
1849     case SpvOpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL: *hasResult = true; *hasResultType = true; break;
1850     case SpvOpSubgroupAvcImeInitializeINTEL: *hasResult = true; *hasResultType = true; break;
1851     case SpvOpSubgroupAvcImeSetSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
1852     case SpvOpSubgroupAvcImeSetDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
1853     case SpvOpSubgroupAvcImeRefWindowSizeINTEL: *hasResult = true; *hasResultType = true; break;
1854     case SpvOpSubgroupAvcImeAdjustRefOffsetINTEL: *hasResult = true; *hasResultType = true; break;
1855     case SpvOpSubgroupAvcImeConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;
1856     case SpvOpSubgroupAvcImeSetMaxMotionVectorCountINTEL: *hasResult = true; *hasResultType = true; break;
1857     case SpvOpSubgroupAvcImeSetUnidirectionalMixDisableINTEL: *hasResult = true; *hasResultType = true; break;
1858     case SpvOpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL: *hasResult = true; *hasResultType = true; break;
1859     case SpvOpSubgroupAvcImeSetWeightedSadINTEL: *hasResult = true; *hasResultType = true; break;
1860     case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
1861     case SpvOpSubgroupAvcImeEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
1862     case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
1863     case SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
1864     case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
1865     case SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
1866     case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL: *hasResult = true; *hasResultType = true; break;
1867     case SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL: *hasResult = true; *hasResultType = true; break;
1868     case SpvOpSubgroupAvcImeConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;
1869     case SpvOpSubgroupAvcImeGetSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
1870     case SpvOpSubgroupAvcImeGetDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
1871     case SpvOpSubgroupAvcImeStripSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
1872     case SpvOpSubgroupAvcImeStripDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
1873     case SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;
1874     case SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
1875     case SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;
1876     case SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;
1877     case SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
1878     case SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;
1879     case SpvOpSubgroupAvcImeGetBorderReachedINTEL: *hasResult = true; *hasResultType = true; break;
1880     case SpvOpSubgroupAvcImeGetTruncatedSearchIndicationINTEL: *hasResult = true; *hasResultType = true; break;
1881     case SpvOpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL: *hasResult = true; *hasResultType = true; break;
1882     case SpvOpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL: *hasResult = true; *hasResultType = true; break;
1883     case SpvOpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL: *hasResult = true; *hasResultType = true; break;
1884     case SpvOpSubgroupAvcFmeInitializeINTEL: *hasResult = true; *hasResultType = true; break;
1885     case SpvOpSubgroupAvcBmeInitializeINTEL: *hasResult = true; *hasResultType = true; break;
1886     case SpvOpSubgroupAvcRefConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;
1887     case SpvOpSubgroupAvcRefSetBidirectionalMixDisableINTEL: *hasResult = true; *hasResultType = true; break;
1888     case SpvOpSubgroupAvcRefSetBilinearFilterEnableINTEL: *hasResult = true; *hasResultType = true; break;
1889     case SpvOpSubgroupAvcRefEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
1890     case SpvOpSubgroupAvcRefEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
1891     case SpvOpSubgroupAvcRefEvaluateWithMultiReferenceINTEL: *hasResult = true; *hasResultType = true; break;
1892     case SpvOpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL: *hasResult = true; *hasResultType = true; break;
1893     case SpvOpSubgroupAvcRefConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;
1894     case SpvOpSubgroupAvcSicInitializeINTEL: *hasResult = true; *hasResultType = true; break;
1895     case SpvOpSubgroupAvcSicConfigureSkcINTEL: *hasResult = true; *hasResultType = true; break;
1896     case SpvOpSubgroupAvcSicConfigureIpeLumaINTEL: *hasResult = true; *hasResultType = true; break;
1897     case SpvOpSubgroupAvcSicConfigureIpeLumaChromaINTEL: *hasResult = true; *hasResultType = true; break;
1898     case SpvOpSubgroupAvcSicGetMotionVectorMaskINTEL: *hasResult = true; *hasResultType = true; break;
1899     case SpvOpSubgroupAvcSicConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;
1900     case SpvOpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
1901     case SpvOpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;
1902     case SpvOpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;
1903     case SpvOpSubgroupAvcSicSetBilinearFilterEnableINTEL: *hasResult = true; *hasResultType = true; break;
1904     case SpvOpSubgroupAvcSicSetSkcForwardTransformEnableINTEL: *hasResult = true; *hasResultType = true; break;
1905     case SpvOpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL: *hasResult = true; *hasResultType = true; break;
1906     case SpvOpSubgroupAvcSicEvaluateIpeINTEL: *hasResult = true; *hasResultType = true; break;
1907     case SpvOpSubgroupAvcSicEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
1908     case SpvOpSubgroupAvcSicEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
1909     case SpvOpSubgroupAvcSicEvaluateWithMultiReferenceINTEL: *hasResult = true; *hasResultType = true; break;
1910     case SpvOpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL: *hasResult = true; *hasResultType = true; break;
1911     case SpvOpSubgroupAvcSicConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;
1912     case SpvOpSubgroupAvcSicGetIpeLumaShapeINTEL: *hasResult = true; *hasResultType = true; break;
1913     case SpvOpSubgroupAvcSicGetBestIpeLumaDistortionINTEL: *hasResult = true; *hasResultType = true; break;
1914     case SpvOpSubgroupAvcSicGetBestIpeChromaDistortionINTEL: *hasResult = true; *hasResultType = true; break;
1915     case SpvOpSubgroupAvcSicGetPackedIpeLumaModesINTEL: *hasResult = true; *hasResultType = true; break;
1916     case SpvOpSubgroupAvcSicGetIpeChromaModeINTEL: *hasResult = true; *hasResultType = true; break;
1917     case SpvOpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL: *hasResult = true; *hasResultType = true; break;
1918     case SpvOpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL: *hasResult = true; *hasResultType = true; break;
1919     case SpvOpSubgroupAvcSicGetInterRawSadsINTEL: *hasResult = true; *hasResultType = true; break;
1920     }
1921 }
1922 #endif /* SPV_ENABLE_UTILITY_CODE */
1923 
1924 #endif
1925 
1926