• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2 ** Copyright (c) 2014-2024 The Khronos Group Inc.
3 **
4 ** Permission is hereby granted, free of charge, to any person obtaining a copy
5 ** of this software and/or associated documentation files (the "Materials"),
6 ** to deal in the Materials without restriction, including without limitation
7 ** the rights to use, copy, modify, merge, publish, distribute, sublicense,
8 ** and/or sell copies of the Materials, and to permit persons to whom the
9 ** Materials are furnished to do so, subject to the following conditions:
10 **
11 ** The above copyright notice and this permission notice shall be included in
12 ** all copies or substantial portions of the Materials.
13 **
14 ** MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS
15 ** STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND
16 ** HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/
17 **
18 ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
19 ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20 ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
21 ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22 ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23 ** FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS
24 ** IN THE MATERIALS.
25 */
26 
27 /*
28 ** This header is automatically generated by the same tool that creates
29 ** the Binary Section of the SPIR-V specification.
30 */
31 
32 /*
33 ** Enumeration tokens for SPIR-V, in various styles:
34 **   C, C++, C++11, JSON, Lua, Python, C#, D, Beef
35 **
36 ** - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL
37 ** - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL
38 ** - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL
39 ** - Lua will use tables, e.g.: spv.SourceLanguage.GLSL
40 ** - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL']
41 ** - C# will use enum classes in the Specification class located in the "Spv" namespace,
42 **     e.g.: Spv.Specification.SourceLanguage.GLSL
43 ** - D will have tokens under the "spv" module, e.g: spv.SourceLanguage.GLSL
44 ** - Beef will use enum classes in the Specification class located in the "Spv" namespace,
45 **     e.g.: Spv.Specification.SourceLanguage.GLSL
46 **
47 ** Some tokens act like mask values, which can be OR'd together,
48 ** while others are mutually exclusive.  The mask-like ones have
49 ** "Mask" in their name, and a parallel enum that has the shift
50 ** amount (1 << x) for each corresponding enumerant.
51 */
52 
53 #ifndef spirv_H
54 #define spirv_H
55 
56 typedef unsigned int SpvId;
57 
58 #define SPV_VERSION 0x10600
59 #define SPV_REVISION 1
60 
61 static const unsigned int SpvMagicNumber = 0x07230203;
62 static const unsigned int SpvVersion = 0x00010600;
63 static const unsigned int SpvRevision = 1;
64 static const unsigned int SpvOpCodeMask = 0xffff;
65 static const unsigned int SpvWordCountShift = 16;
66 
67 typedef enum SpvSourceLanguage_ {
68     SpvSourceLanguageUnknown = 0,
69     SpvSourceLanguageESSL = 1,
70     SpvSourceLanguageGLSL = 2,
71     SpvSourceLanguageOpenCL_C = 3,
72     SpvSourceLanguageOpenCL_CPP = 4,
73     SpvSourceLanguageHLSL = 5,
74     SpvSourceLanguageCPP_for_OpenCL = 6,
75     SpvSourceLanguageSYCL = 7,
76     SpvSourceLanguageHERO_C = 8,
77     SpvSourceLanguageNZSL = 9,
78     SpvSourceLanguageWGSL = 10,
79     SpvSourceLanguageSlang = 11,
80     SpvSourceLanguageZig = 12,
81     SpvSourceLanguageMax = 0x7fffffff,
82 } SpvSourceLanguage;
83 
84 typedef enum SpvExecutionModel_ {
85     SpvExecutionModelVertex = 0,
86     SpvExecutionModelTessellationControl = 1,
87     SpvExecutionModelTessellationEvaluation = 2,
88     SpvExecutionModelGeometry = 3,
89     SpvExecutionModelFragment = 4,
90     SpvExecutionModelGLCompute = 5,
91     SpvExecutionModelKernel = 6,
92     SpvExecutionModelTaskNV = 5267,
93     SpvExecutionModelMeshNV = 5268,
94     SpvExecutionModelRayGenerationKHR = 5313,
95     SpvExecutionModelRayGenerationNV = 5313,
96     SpvExecutionModelIntersectionKHR = 5314,
97     SpvExecutionModelIntersectionNV = 5314,
98     SpvExecutionModelAnyHitKHR = 5315,
99     SpvExecutionModelAnyHitNV = 5315,
100     SpvExecutionModelClosestHitKHR = 5316,
101     SpvExecutionModelClosestHitNV = 5316,
102     SpvExecutionModelMissKHR = 5317,
103     SpvExecutionModelMissNV = 5317,
104     SpvExecutionModelCallableKHR = 5318,
105     SpvExecutionModelCallableNV = 5318,
106     SpvExecutionModelTaskEXT = 5364,
107     SpvExecutionModelMeshEXT = 5365,
108     SpvExecutionModelMax = 0x7fffffff,
109 } SpvExecutionModel;
110 
111 typedef enum SpvAddressingModel_ {
112     SpvAddressingModelLogical = 0,
113     SpvAddressingModelPhysical32 = 1,
114     SpvAddressingModelPhysical64 = 2,
115     SpvAddressingModelPhysicalStorageBuffer64 = 5348,
116     SpvAddressingModelPhysicalStorageBuffer64EXT = 5348,
117     SpvAddressingModelMax = 0x7fffffff,
118 } SpvAddressingModel;
119 
120 typedef enum SpvMemoryModel_ {
121     SpvMemoryModelSimple = 0,
122     SpvMemoryModelGLSL450 = 1,
123     SpvMemoryModelOpenCL = 2,
124     SpvMemoryModelVulkan = 3,
125     SpvMemoryModelVulkanKHR = 3,
126     SpvMemoryModelMax = 0x7fffffff,
127 } SpvMemoryModel;
128 
129 typedef enum SpvExecutionMode_ {
130     SpvExecutionModeInvocations = 0,
131     SpvExecutionModeSpacingEqual = 1,
132     SpvExecutionModeSpacingFractionalEven = 2,
133     SpvExecutionModeSpacingFractionalOdd = 3,
134     SpvExecutionModeVertexOrderCw = 4,
135     SpvExecutionModeVertexOrderCcw = 5,
136     SpvExecutionModePixelCenterInteger = 6,
137     SpvExecutionModeOriginUpperLeft = 7,
138     SpvExecutionModeOriginLowerLeft = 8,
139     SpvExecutionModeEarlyFragmentTests = 9,
140     SpvExecutionModePointMode = 10,
141     SpvExecutionModeXfb = 11,
142     SpvExecutionModeDepthReplacing = 12,
143     SpvExecutionModeDepthGreater = 14,
144     SpvExecutionModeDepthLess = 15,
145     SpvExecutionModeDepthUnchanged = 16,
146     SpvExecutionModeLocalSize = 17,
147     SpvExecutionModeLocalSizeHint = 18,
148     SpvExecutionModeInputPoints = 19,
149     SpvExecutionModeInputLines = 20,
150     SpvExecutionModeInputLinesAdjacency = 21,
151     SpvExecutionModeTriangles = 22,
152     SpvExecutionModeInputTrianglesAdjacency = 23,
153     SpvExecutionModeQuads = 24,
154     SpvExecutionModeIsolines = 25,
155     SpvExecutionModeOutputVertices = 26,
156     SpvExecutionModeOutputPoints = 27,
157     SpvExecutionModeOutputLineStrip = 28,
158     SpvExecutionModeOutputTriangleStrip = 29,
159     SpvExecutionModeVecTypeHint = 30,
160     SpvExecutionModeContractionOff = 31,
161     SpvExecutionModeInitializer = 33,
162     SpvExecutionModeFinalizer = 34,
163     SpvExecutionModeSubgroupSize = 35,
164     SpvExecutionModeSubgroupsPerWorkgroup = 36,
165     SpvExecutionModeSubgroupsPerWorkgroupId = 37,
166     SpvExecutionModeLocalSizeId = 38,
167     SpvExecutionModeLocalSizeHintId = 39,
168     SpvExecutionModeNonCoherentColorAttachmentReadEXT = 4169,
169     SpvExecutionModeNonCoherentDepthAttachmentReadEXT = 4170,
170     SpvExecutionModeNonCoherentStencilAttachmentReadEXT = 4171,
171     SpvExecutionModeSubgroupUniformControlFlowKHR = 4421,
172     SpvExecutionModePostDepthCoverage = 4446,
173     SpvExecutionModeDenormPreserve = 4459,
174     SpvExecutionModeDenormFlushToZero = 4460,
175     SpvExecutionModeSignedZeroInfNanPreserve = 4461,
176     SpvExecutionModeRoundingModeRTE = 4462,
177     SpvExecutionModeRoundingModeRTZ = 4463,
178     SpvExecutionModeEarlyAndLateFragmentTestsAMD = 5017,
179     SpvExecutionModeStencilRefReplacingEXT = 5027,
180     SpvExecutionModeCoalescingAMDX = 5069,
181     SpvExecutionModeIsApiEntryAMDX = 5070,
182     SpvExecutionModeMaxNodeRecursionAMDX = 5071,
183     SpvExecutionModeStaticNumWorkgroupsAMDX = 5072,
184     SpvExecutionModeShaderIndexAMDX = 5073,
185     SpvExecutionModeMaxNumWorkgroupsAMDX = 5077,
186     SpvExecutionModeStencilRefUnchangedFrontAMD = 5079,
187     SpvExecutionModeStencilRefGreaterFrontAMD = 5080,
188     SpvExecutionModeStencilRefLessFrontAMD = 5081,
189     SpvExecutionModeStencilRefUnchangedBackAMD = 5082,
190     SpvExecutionModeStencilRefGreaterBackAMD = 5083,
191     SpvExecutionModeStencilRefLessBackAMD = 5084,
192     SpvExecutionModeQuadDerivativesKHR = 5088,
193     SpvExecutionModeRequireFullQuadsKHR = 5089,
194     SpvExecutionModeSharesInputWithAMDX = 5102,
195     SpvExecutionModeOutputLinesEXT = 5269,
196     SpvExecutionModeOutputLinesNV = 5269,
197     SpvExecutionModeOutputPrimitivesEXT = 5270,
198     SpvExecutionModeOutputPrimitivesNV = 5270,
199     SpvExecutionModeDerivativeGroupQuadsKHR = 5289,
200     SpvExecutionModeDerivativeGroupQuadsNV = 5289,
201     SpvExecutionModeDerivativeGroupLinearKHR = 5290,
202     SpvExecutionModeDerivativeGroupLinearNV = 5290,
203     SpvExecutionModeOutputTrianglesEXT = 5298,
204     SpvExecutionModeOutputTrianglesNV = 5298,
205     SpvExecutionModePixelInterlockOrderedEXT = 5366,
206     SpvExecutionModePixelInterlockUnorderedEXT = 5367,
207     SpvExecutionModeSampleInterlockOrderedEXT = 5368,
208     SpvExecutionModeSampleInterlockUnorderedEXT = 5369,
209     SpvExecutionModeShadingRateInterlockOrderedEXT = 5370,
210     SpvExecutionModeShadingRateInterlockUnorderedEXT = 5371,
211     SpvExecutionModeSharedLocalMemorySizeINTEL = 5618,
212     SpvExecutionModeRoundingModeRTPINTEL = 5620,
213     SpvExecutionModeRoundingModeRTNINTEL = 5621,
214     SpvExecutionModeFloatingPointModeALTINTEL = 5622,
215     SpvExecutionModeFloatingPointModeIEEEINTEL = 5623,
216     SpvExecutionModeMaxWorkgroupSizeINTEL = 5893,
217     SpvExecutionModeMaxWorkDimINTEL = 5894,
218     SpvExecutionModeNoGlobalOffsetINTEL = 5895,
219     SpvExecutionModeNumSIMDWorkitemsINTEL = 5896,
220     SpvExecutionModeSchedulerTargetFmaxMhzINTEL = 5903,
221     SpvExecutionModeMaximallyReconvergesKHR = 6023,
222     SpvExecutionModeFPFastMathDefault = 6028,
223     SpvExecutionModeStreamingInterfaceINTEL = 6154,
224     SpvExecutionModeRegisterMapInterfaceINTEL = 6160,
225     SpvExecutionModeNamedBarrierCountINTEL = 6417,
226     SpvExecutionModeMaximumRegistersINTEL = 6461,
227     SpvExecutionModeMaximumRegistersIdINTEL = 6462,
228     SpvExecutionModeNamedMaximumRegistersINTEL = 6463,
229     SpvExecutionModeMax = 0x7fffffff,
230 } SpvExecutionMode;
231 
232 typedef enum SpvStorageClass_ {
233     SpvStorageClassUniformConstant = 0,
234     SpvStorageClassInput = 1,
235     SpvStorageClassUniform = 2,
236     SpvStorageClassOutput = 3,
237     SpvStorageClassWorkgroup = 4,
238     SpvStorageClassCrossWorkgroup = 5,
239     SpvStorageClassPrivate = 6,
240     SpvStorageClassFunction = 7,
241     SpvStorageClassGeneric = 8,
242     SpvStorageClassPushConstant = 9,
243     SpvStorageClassAtomicCounter = 10,
244     SpvStorageClassImage = 11,
245     SpvStorageClassStorageBuffer = 12,
246     SpvStorageClassTileImageEXT = 4172,
247     SpvStorageClassNodePayloadAMDX = 5068,
248     SpvStorageClassCallableDataKHR = 5328,
249     SpvStorageClassCallableDataNV = 5328,
250     SpvStorageClassIncomingCallableDataKHR = 5329,
251     SpvStorageClassIncomingCallableDataNV = 5329,
252     SpvStorageClassRayPayloadKHR = 5338,
253     SpvStorageClassRayPayloadNV = 5338,
254     SpvStorageClassHitAttributeKHR = 5339,
255     SpvStorageClassHitAttributeNV = 5339,
256     SpvStorageClassIncomingRayPayloadKHR = 5342,
257     SpvStorageClassIncomingRayPayloadNV = 5342,
258     SpvStorageClassShaderRecordBufferKHR = 5343,
259     SpvStorageClassShaderRecordBufferNV = 5343,
260     SpvStorageClassPhysicalStorageBuffer = 5349,
261     SpvStorageClassPhysicalStorageBufferEXT = 5349,
262     SpvStorageClassHitObjectAttributeNV = 5385,
263     SpvStorageClassTaskPayloadWorkgroupEXT = 5402,
264     SpvStorageClassCodeSectionINTEL = 5605,
265     SpvStorageClassDeviceOnlyINTEL = 5936,
266     SpvStorageClassHostOnlyINTEL = 5937,
267     SpvStorageClassMax = 0x7fffffff,
268 } SpvStorageClass;
269 
270 typedef enum SpvDim_ {
271     SpvDim1D = 0,
272     SpvDim2D = 1,
273     SpvDim3D = 2,
274     SpvDimCube = 3,
275     SpvDimRect = 4,
276     SpvDimBuffer = 5,
277     SpvDimSubpassData = 6,
278     SpvDimTileImageDataEXT = 4173,
279     SpvDimMax = 0x7fffffff,
280 } SpvDim;
281 
282 typedef enum SpvSamplerAddressingMode_ {
283     SpvSamplerAddressingModeNone = 0,
284     SpvSamplerAddressingModeClampToEdge = 1,
285     SpvSamplerAddressingModeClamp = 2,
286     SpvSamplerAddressingModeRepeat = 3,
287     SpvSamplerAddressingModeRepeatMirrored = 4,
288     SpvSamplerAddressingModeMax = 0x7fffffff,
289 } SpvSamplerAddressingMode;
290 
291 typedef enum SpvSamplerFilterMode_ {
292     SpvSamplerFilterModeNearest = 0,
293     SpvSamplerFilterModeLinear = 1,
294     SpvSamplerFilterModeMax = 0x7fffffff,
295 } SpvSamplerFilterMode;
296 
297 typedef enum SpvImageFormat_ {
298     SpvImageFormatUnknown = 0,
299     SpvImageFormatRgba32f = 1,
300     SpvImageFormatRgba16f = 2,
301     SpvImageFormatR32f = 3,
302     SpvImageFormatRgba8 = 4,
303     SpvImageFormatRgba8Snorm = 5,
304     SpvImageFormatRg32f = 6,
305     SpvImageFormatRg16f = 7,
306     SpvImageFormatR11fG11fB10f = 8,
307     SpvImageFormatR16f = 9,
308     SpvImageFormatRgba16 = 10,
309     SpvImageFormatRgb10A2 = 11,
310     SpvImageFormatRg16 = 12,
311     SpvImageFormatRg8 = 13,
312     SpvImageFormatR16 = 14,
313     SpvImageFormatR8 = 15,
314     SpvImageFormatRgba16Snorm = 16,
315     SpvImageFormatRg16Snorm = 17,
316     SpvImageFormatRg8Snorm = 18,
317     SpvImageFormatR16Snorm = 19,
318     SpvImageFormatR8Snorm = 20,
319     SpvImageFormatRgba32i = 21,
320     SpvImageFormatRgba16i = 22,
321     SpvImageFormatRgba8i = 23,
322     SpvImageFormatR32i = 24,
323     SpvImageFormatRg32i = 25,
324     SpvImageFormatRg16i = 26,
325     SpvImageFormatRg8i = 27,
326     SpvImageFormatR16i = 28,
327     SpvImageFormatR8i = 29,
328     SpvImageFormatRgba32ui = 30,
329     SpvImageFormatRgba16ui = 31,
330     SpvImageFormatRgba8ui = 32,
331     SpvImageFormatR32ui = 33,
332     SpvImageFormatRgb10a2ui = 34,
333     SpvImageFormatRg32ui = 35,
334     SpvImageFormatRg16ui = 36,
335     SpvImageFormatRg8ui = 37,
336     SpvImageFormatR16ui = 38,
337     SpvImageFormatR8ui = 39,
338     SpvImageFormatR64ui = 40,
339     SpvImageFormatR64i = 41,
340     SpvImageFormatMax = 0x7fffffff,
341 } SpvImageFormat;
342 
343 typedef enum SpvImageChannelOrder_ {
344     SpvImageChannelOrderR = 0,
345     SpvImageChannelOrderA = 1,
346     SpvImageChannelOrderRG = 2,
347     SpvImageChannelOrderRA = 3,
348     SpvImageChannelOrderRGB = 4,
349     SpvImageChannelOrderRGBA = 5,
350     SpvImageChannelOrderBGRA = 6,
351     SpvImageChannelOrderARGB = 7,
352     SpvImageChannelOrderIntensity = 8,
353     SpvImageChannelOrderLuminance = 9,
354     SpvImageChannelOrderRx = 10,
355     SpvImageChannelOrderRGx = 11,
356     SpvImageChannelOrderRGBx = 12,
357     SpvImageChannelOrderDepth = 13,
358     SpvImageChannelOrderDepthStencil = 14,
359     SpvImageChannelOrdersRGB = 15,
360     SpvImageChannelOrdersRGBx = 16,
361     SpvImageChannelOrdersRGBA = 17,
362     SpvImageChannelOrdersBGRA = 18,
363     SpvImageChannelOrderABGR = 19,
364     SpvImageChannelOrderMax = 0x7fffffff,
365 } SpvImageChannelOrder;
366 
367 typedef enum SpvImageChannelDataType_ {
368     SpvImageChannelDataTypeSnormInt8 = 0,
369     SpvImageChannelDataTypeSnormInt16 = 1,
370     SpvImageChannelDataTypeUnormInt8 = 2,
371     SpvImageChannelDataTypeUnormInt16 = 3,
372     SpvImageChannelDataTypeUnormShort565 = 4,
373     SpvImageChannelDataTypeUnormShort555 = 5,
374     SpvImageChannelDataTypeUnormInt101010 = 6,
375     SpvImageChannelDataTypeSignedInt8 = 7,
376     SpvImageChannelDataTypeSignedInt16 = 8,
377     SpvImageChannelDataTypeSignedInt32 = 9,
378     SpvImageChannelDataTypeUnsignedInt8 = 10,
379     SpvImageChannelDataTypeUnsignedInt16 = 11,
380     SpvImageChannelDataTypeUnsignedInt32 = 12,
381     SpvImageChannelDataTypeHalfFloat = 13,
382     SpvImageChannelDataTypeFloat = 14,
383     SpvImageChannelDataTypeUnormInt24 = 15,
384     SpvImageChannelDataTypeUnormInt101010_2 = 16,
385     SpvImageChannelDataTypeUnsignedIntRaw10EXT = 19,
386     SpvImageChannelDataTypeUnsignedIntRaw12EXT = 20,
387     SpvImageChannelDataTypeUnormInt2_101010EXT = 21,
388     SpvImageChannelDataTypeMax = 0x7fffffff,
389 } SpvImageChannelDataType;
390 
391 typedef enum SpvImageOperandsShift_ {
392     SpvImageOperandsBiasShift = 0,
393     SpvImageOperandsLodShift = 1,
394     SpvImageOperandsGradShift = 2,
395     SpvImageOperandsConstOffsetShift = 3,
396     SpvImageOperandsOffsetShift = 4,
397     SpvImageOperandsConstOffsetsShift = 5,
398     SpvImageOperandsSampleShift = 6,
399     SpvImageOperandsMinLodShift = 7,
400     SpvImageOperandsMakeTexelAvailableShift = 8,
401     SpvImageOperandsMakeTexelAvailableKHRShift = 8,
402     SpvImageOperandsMakeTexelVisibleShift = 9,
403     SpvImageOperandsMakeTexelVisibleKHRShift = 9,
404     SpvImageOperandsNonPrivateTexelShift = 10,
405     SpvImageOperandsNonPrivateTexelKHRShift = 10,
406     SpvImageOperandsVolatileTexelShift = 11,
407     SpvImageOperandsVolatileTexelKHRShift = 11,
408     SpvImageOperandsSignExtendShift = 12,
409     SpvImageOperandsZeroExtendShift = 13,
410     SpvImageOperandsNontemporalShift = 14,
411     SpvImageOperandsOffsetsShift = 16,
412     SpvImageOperandsMax = 0x7fffffff,
413 } SpvImageOperandsShift;
414 
415 typedef enum SpvImageOperandsMask_ {
416     SpvImageOperandsMaskNone = 0,
417     SpvImageOperandsBiasMask = 0x00000001,
418     SpvImageOperandsLodMask = 0x00000002,
419     SpvImageOperandsGradMask = 0x00000004,
420     SpvImageOperandsConstOffsetMask = 0x00000008,
421     SpvImageOperandsOffsetMask = 0x00000010,
422     SpvImageOperandsConstOffsetsMask = 0x00000020,
423     SpvImageOperandsSampleMask = 0x00000040,
424     SpvImageOperandsMinLodMask = 0x00000080,
425     SpvImageOperandsMakeTexelAvailableMask = 0x00000100,
426     SpvImageOperandsMakeTexelAvailableKHRMask = 0x00000100,
427     SpvImageOperandsMakeTexelVisibleMask = 0x00000200,
428     SpvImageOperandsMakeTexelVisibleKHRMask = 0x00000200,
429     SpvImageOperandsNonPrivateTexelMask = 0x00000400,
430     SpvImageOperandsNonPrivateTexelKHRMask = 0x00000400,
431     SpvImageOperandsVolatileTexelMask = 0x00000800,
432     SpvImageOperandsVolatileTexelKHRMask = 0x00000800,
433     SpvImageOperandsSignExtendMask = 0x00001000,
434     SpvImageOperandsZeroExtendMask = 0x00002000,
435     SpvImageOperandsNontemporalMask = 0x00004000,
436     SpvImageOperandsOffsetsMask = 0x00010000,
437 } SpvImageOperandsMask;
438 
439 typedef enum SpvFPFastMathModeShift_ {
440     SpvFPFastMathModeNotNaNShift = 0,
441     SpvFPFastMathModeNotInfShift = 1,
442     SpvFPFastMathModeNSZShift = 2,
443     SpvFPFastMathModeAllowRecipShift = 3,
444     SpvFPFastMathModeFastShift = 4,
445     SpvFPFastMathModeAllowContractShift = 16,
446     SpvFPFastMathModeAllowContractFastINTELShift = 16,
447     SpvFPFastMathModeAllowReassocShift = 17,
448     SpvFPFastMathModeAllowReassocINTELShift = 17,
449     SpvFPFastMathModeAllowTransformShift = 18,
450     SpvFPFastMathModeMax = 0x7fffffff,
451 } SpvFPFastMathModeShift;
452 
453 typedef enum SpvFPFastMathModeMask_ {
454     SpvFPFastMathModeMaskNone = 0,
455     SpvFPFastMathModeNotNaNMask = 0x00000001,
456     SpvFPFastMathModeNotInfMask = 0x00000002,
457     SpvFPFastMathModeNSZMask = 0x00000004,
458     SpvFPFastMathModeAllowRecipMask = 0x00000008,
459     SpvFPFastMathModeFastMask = 0x00000010,
460     SpvFPFastMathModeAllowContractMask = 0x00010000,
461     SpvFPFastMathModeAllowContractFastINTELMask = 0x00010000,
462     SpvFPFastMathModeAllowReassocMask = 0x00020000,
463     SpvFPFastMathModeAllowReassocINTELMask = 0x00020000,
464     SpvFPFastMathModeAllowTransformMask = 0x00040000,
465 } SpvFPFastMathModeMask;
466 
467 typedef enum SpvFPRoundingMode_ {
468     SpvFPRoundingModeRTE = 0,
469     SpvFPRoundingModeRTZ = 1,
470     SpvFPRoundingModeRTP = 2,
471     SpvFPRoundingModeRTN = 3,
472     SpvFPRoundingModeMax = 0x7fffffff,
473 } SpvFPRoundingMode;
474 
475 typedef enum SpvLinkageType_ {
476     SpvLinkageTypeExport = 0,
477     SpvLinkageTypeImport = 1,
478     SpvLinkageTypeLinkOnceODR = 2,
479     SpvLinkageTypeMax = 0x7fffffff,
480 } SpvLinkageType;
481 
482 typedef enum SpvAccessQualifier_ {
483     SpvAccessQualifierReadOnly = 0,
484     SpvAccessQualifierWriteOnly = 1,
485     SpvAccessQualifierReadWrite = 2,
486     SpvAccessQualifierMax = 0x7fffffff,
487 } SpvAccessQualifier;
488 
489 typedef enum SpvFunctionParameterAttribute_ {
490     SpvFunctionParameterAttributeZext = 0,
491     SpvFunctionParameterAttributeSext = 1,
492     SpvFunctionParameterAttributeByVal = 2,
493     SpvFunctionParameterAttributeSret = 3,
494     SpvFunctionParameterAttributeNoAlias = 4,
495     SpvFunctionParameterAttributeNoCapture = 5,
496     SpvFunctionParameterAttributeNoWrite = 6,
497     SpvFunctionParameterAttributeNoReadWrite = 7,
498     SpvFunctionParameterAttributeRuntimeAlignedINTEL = 5940,
499     SpvFunctionParameterAttributeMax = 0x7fffffff,
500 } SpvFunctionParameterAttribute;
501 
502 typedef enum SpvDecoration_ {
503     SpvDecorationRelaxedPrecision = 0,
504     SpvDecorationSpecId = 1,
505     SpvDecorationBlock = 2,
506     SpvDecorationBufferBlock = 3,
507     SpvDecorationRowMajor = 4,
508     SpvDecorationColMajor = 5,
509     SpvDecorationArrayStride = 6,
510     SpvDecorationMatrixStride = 7,
511     SpvDecorationGLSLShared = 8,
512     SpvDecorationGLSLPacked = 9,
513     SpvDecorationCPacked = 10,
514     SpvDecorationBuiltIn = 11,
515     SpvDecorationNoPerspective = 13,
516     SpvDecorationFlat = 14,
517     SpvDecorationPatch = 15,
518     SpvDecorationCentroid = 16,
519     SpvDecorationSample = 17,
520     SpvDecorationInvariant = 18,
521     SpvDecorationRestrict = 19,
522     SpvDecorationAliased = 20,
523     SpvDecorationVolatile = 21,
524     SpvDecorationConstant = 22,
525     SpvDecorationCoherent = 23,
526     SpvDecorationNonWritable = 24,
527     SpvDecorationNonReadable = 25,
528     SpvDecorationUniform = 26,
529     SpvDecorationUniformId = 27,
530     SpvDecorationSaturatedConversion = 28,
531     SpvDecorationStream = 29,
532     SpvDecorationLocation = 30,
533     SpvDecorationComponent = 31,
534     SpvDecorationIndex = 32,
535     SpvDecorationBinding = 33,
536     SpvDecorationDescriptorSet = 34,
537     SpvDecorationOffset = 35,
538     SpvDecorationXfbBuffer = 36,
539     SpvDecorationXfbStride = 37,
540     SpvDecorationFuncParamAttr = 38,
541     SpvDecorationFPRoundingMode = 39,
542     SpvDecorationFPFastMathMode = 40,
543     SpvDecorationLinkageAttributes = 41,
544     SpvDecorationNoContraction = 42,
545     SpvDecorationInputAttachmentIndex = 43,
546     SpvDecorationAlignment = 44,
547     SpvDecorationMaxByteOffset = 45,
548     SpvDecorationAlignmentId = 46,
549     SpvDecorationMaxByteOffsetId = 47,
550     SpvDecorationNoSignedWrap = 4469,
551     SpvDecorationNoUnsignedWrap = 4470,
552     SpvDecorationWeightTextureQCOM = 4487,
553     SpvDecorationBlockMatchTextureQCOM = 4488,
554     SpvDecorationBlockMatchSamplerQCOM = 4499,
555     SpvDecorationExplicitInterpAMD = 4999,
556     SpvDecorationNodeSharesPayloadLimitsWithAMDX = 5019,
557     SpvDecorationNodeMaxPayloadsAMDX = 5020,
558     SpvDecorationTrackFinishWritingAMDX = 5078,
559     SpvDecorationPayloadNodeNameAMDX = 5091,
560     SpvDecorationPayloadNodeBaseIndexAMDX = 5098,
561     SpvDecorationPayloadNodeSparseArrayAMDX = 5099,
562     SpvDecorationPayloadNodeArraySizeAMDX = 5100,
563     SpvDecorationPayloadDispatchIndirectAMDX = 5105,
564     SpvDecorationOverrideCoverageNV = 5248,
565     SpvDecorationPassthroughNV = 5250,
566     SpvDecorationViewportRelativeNV = 5252,
567     SpvDecorationSecondaryViewportRelativeNV = 5256,
568     SpvDecorationPerPrimitiveEXT = 5271,
569     SpvDecorationPerPrimitiveNV = 5271,
570     SpvDecorationPerViewNV = 5272,
571     SpvDecorationPerTaskNV = 5273,
572     SpvDecorationPerVertexKHR = 5285,
573     SpvDecorationPerVertexNV = 5285,
574     SpvDecorationNonUniform = 5300,
575     SpvDecorationNonUniformEXT = 5300,
576     SpvDecorationRestrictPointer = 5355,
577     SpvDecorationRestrictPointerEXT = 5355,
578     SpvDecorationAliasedPointer = 5356,
579     SpvDecorationAliasedPointerEXT = 5356,
580     SpvDecorationHitObjectShaderRecordBufferNV = 5386,
581     SpvDecorationBindlessSamplerNV = 5398,
582     SpvDecorationBindlessImageNV = 5399,
583     SpvDecorationBoundSamplerNV = 5400,
584     SpvDecorationBoundImageNV = 5401,
585     SpvDecorationSIMTCallINTEL = 5599,
586     SpvDecorationReferencedIndirectlyINTEL = 5602,
587     SpvDecorationClobberINTEL = 5607,
588     SpvDecorationSideEffectsINTEL = 5608,
589     SpvDecorationVectorComputeVariableINTEL = 5624,
590     SpvDecorationFuncParamIOKindINTEL = 5625,
591     SpvDecorationVectorComputeFunctionINTEL = 5626,
592     SpvDecorationStackCallINTEL = 5627,
593     SpvDecorationGlobalVariableOffsetINTEL = 5628,
594     SpvDecorationCounterBuffer = 5634,
595     SpvDecorationHlslCounterBufferGOOGLE = 5634,
596     SpvDecorationHlslSemanticGOOGLE = 5635,
597     SpvDecorationUserSemantic = 5635,
598     SpvDecorationUserTypeGOOGLE = 5636,
599     SpvDecorationFunctionRoundingModeINTEL = 5822,
600     SpvDecorationFunctionDenormModeINTEL = 5823,
601     SpvDecorationRegisterINTEL = 5825,
602     SpvDecorationMemoryINTEL = 5826,
603     SpvDecorationNumbanksINTEL = 5827,
604     SpvDecorationBankwidthINTEL = 5828,
605     SpvDecorationMaxPrivateCopiesINTEL = 5829,
606     SpvDecorationSinglepumpINTEL = 5830,
607     SpvDecorationDoublepumpINTEL = 5831,
608     SpvDecorationMaxReplicatesINTEL = 5832,
609     SpvDecorationSimpleDualPortINTEL = 5833,
610     SpvDecorationMergeINTEL = 5834,
611     SpvDecorationBankBitsINTEL = 5835,
612     SpvDecorationForcePow2DepthINTEL = 5836,
613     SpvDecorationStridesizeINTEL = 5883,
614     SpvDecorationWordsizeINTEL = 5884,
615     SpvDecorationTrueDualPortINTEL = 5885,
616     SpvDecorationBurstCoalesceINTEL = 5899,
617     SpvDecorationCacheSizeINTEL = 5900,
618     SpvDecorationDontStaticallyCoalesceINTEL = 5901,
619     SpvDecorationPrefetchINTEL = 5902,
620     SpvDecorationStallEnableINTEL = 5905,
621     SpvDecorationFuseLoopsInFunctionINTEL = 5907,
622     SpvDecorationMathOpDSPModeINTEL = 5909,
623     SpvDecorationAliasScopeINTEL = 5914,
624     SpvDecorationNoAliasINTEL = 5915,
625     SpvDecorationInitiationIntervalINTEL = 5917,
626     SpvDecorationMaxConcurrencyINTEL = 5918,
627     SpvDecorationPipelineEnableINTEL = 5919,
628     SpvDecorationBufferLocationINTEL = 5921,
629     SpvDecorationIOPipeStorageINTEL = 5944,
630     SpvDecorationFunctionFloatingPointModeINTEL = 6080,
631     SpvDecorationSingleElementVectorINTEL = 6085,
632     SpvDecorationVectorComputeCallableFunctionINTEL = 6087,
633     SpvDecorationMediaBlockIOINTEL = 6140,
634     SpvDecorationStallFreeINTEL = 6151,
635     SpvDecorationFPMaxErrorDecorationINTEL = 6170,
636     SpvDecorationLatencyControlLabelINTEL = 6172,
637     SpvDecorationLatencyControlConstraintINTEL = 6173,
638     SpvDecorationConduitKernelArgumentINTEL = 6175,
639     SpvDecorationRegisterMapKernelArgumentINTEL = 6176,
640     SpvDecorationMMHostInterfaceAddressWidthINTEL = 6177,
641     SpvDecorationMMHostInterfaceDataWidthINTEL = 6178,
642     SpvDecorationMMHostInterfaceLatencyINTEL = 6179,
643     SpvDecorationMMHostInterfaceReadWriteModeINTEL = 6180,
644     SpvDecorationMMHostInterfaceMaxBurstINTEL = 6181,
645     SpvDecorationMMHostInterfaceWaitRequestINTEL = 6182,
646     SpvDecorationStableKernelArgumentINTEL = 6183,
647     SpvDecorationHostAccessINTEL = 6188,
648     SpvDecorationInitModeINTEL = 6190,
649     SpvDecorationImplementInRegisterMapINTEL = 6191,
650     SpvDecorationCacheControlLoadINTEL = 6442,
651     SpvDecorationCacheControlStoreINTEL = 6443,
652     SpvDecorationMax = 0x7fffffff,
653 } SpvDecoration;
654 
655 typedef enum SpvBuiltIn_ {
656     SpvBuiltInPosition = 0,
657     SpvBuiltInPointSize = 1,
658     SpvBuiltInClipDistance = 3,
659     SpvBuiltInCullDistance = 4,
660     SpvBuiltInVertexId = 5,
661     SpvBuiltInInstanceId = 6,
662     SpvBuiltInPrimitiveId = 7,
663     SpvBuiltInInvocationId = 8,
664     SpvBuiltInLayer = 9,
665     SpvBuiltInViewportIndex = 10,
666     SpvBuiltInTessLevelOuter = 11,
667     SpvBuiltInTessLevelInner = 12,
668     SpvBuiltInTessCoord = 13,
669     SpvBuiltInPatchVertices = 14,
670     SpvBuiltInFragCoord = 15,
671     SpvBuiltInPointCoord = 16,
672     SpvBuiltInFrontFacing = 17,
673     SpvBuiltInSampleId = 18,
674     SpvBuiltInSamplePosition = 19,
675     SpvBuiltInSampleMask = 20,
676     SpvBuiltInFragDepth = 22,
677     SpvBuiltInHelperInvocation = 23,
678     SpvBuiltInNumWorkgroups = 24,
679     SpvBuiltInWorkgroupSize = 25,
680     SpvBuiltInWorkgroupId = 26,
681     SpvBuiltInLocalInvocationId = 27,
682     SpvBuiltInGlobalInvocationId = 28,
683     SpvBuiltInLocalInvocationIndex = 29,
684     SpvBuiltInWorkDim = 30,
685     SpvBuiltInGlobalSize = 31,
686     SpvBuiltInEnqueuedWorkgroupSize = 32,
687     SpvBuiltInGlobalOffset = 33,
688     SpvBuiltInGlobalLinearId = 34,
689     SpvBuiltInSubgroupSize = 36,
690     SpvBuiltInSubgroupMaxSize = 37,
691     SpvBuiltInNumSubgroups = 38,
692     SpvBuiltInNumEnqueuedSubgroups = 39,
693     SpvBuiltInSubgroupId = 40,
694     SpvBuiltInSubgroupLocalInvocationId = 41,
695     SpvBuiltInVertexIndex = 42,
696     SpvBuiltInInstanceIndex = 43,
697     SpvBuiltInCoreIDARM = 4160,
698     SpvBuiltInCoreCountARM = 4161,
699     SpvBuiltInCoreMaxIDARM = 4162,
700     SpvBuiltInWarpIDARM = 4163,
701     SpvBuiltInWarpMaxIDARM = 4164,
702     SpvBuiltInSubgroupEqMask = 4416,
703     SpvBuiltInSubgroupEqMaskKHR = 4416,
704     SpvBuiltInSubgroupGeMask = 4417,
705     SpvBuiltInSubgroupGeMaskKHR = 4417,
706     SpvBuiltInSubgroupGtMask = 4418,
707     SpvBuiltInSubgroupGtMaskKHR = 4418,
708     SpvBuiltInSubgroupLeMask = 4419,
709     SpvBuiltInSubgroupLeMaskKHR = 4419,
710     SpvBuiltInSubgroupLtMask = 4420,
711     SpvBuiltInSubgroupLtMaskKHR = 4420,
712     SpvBuiltInBaseVertex = 4424,
713     SpvBuiltInBaseInstance = 4425,
714     SpvBuiltInDrawIndex = 4426,
715     SpvBuiltInPrimitiveShadingRateKHR = 4432,
716     SpvBuiltInDeviceIndex = 4438,
717     SpvBuiltInViewIndex = 4440,
718     SpvBuiltInShadingRateKHR = 4444,
719     SpvBuiltInBaryCoordNoPerspAMD = 4992,
720     SpvBuiltInBaryCoordNoPerspCentroidAMD = 4993,
721     SpvBuiltInBaryCoordNoPerspSampleAMD = 4994,
722     SpvBuiltInBaryCoordSmoothAMD = 4995,
723     SpvBuiltInBaryCoordSmoothCentroidAMD = 4996,
724     SpvBuiltInBaryCoordSmoothSampleAMD = 4997,
725     SpvBuiltInBaryCoordPullModelAMD = 4998,
726     SpvBuiltInFragStencilRefEXT = 5014,
727     SpvBuiltInRemainingRecursionLevelsAMDX = 5021,
728     SpvBuiltInShaderIndexAMDX = 5073,
729     SpvBuiltInViewportMaskNV = 5253,
730     SpvBuiltInSecondaryPositionNV = 5257,
731     SpvBuiltInSecondaryViewportMaskNV = 5258,
732     SpvBuiltInPositionPerViewNV = 5261,
733     SpvBuiltInViewportMaskPerViewNV = 5262,
734     SpvBuiltInFullyCoveredEXT = 5264,
735     SpvBuiltInTaskCountNV = 5274,
736     SpvBuiltInPrimitiveCountNV = 5275,
737     SpvBuiltInPrimitiveIndicesNV = 5276,
738     SpvBuiltInClipDistancePerViewNV = 5277,
739     SpvBuiltInCullDistancePerViewNV = 5278,
740     SpvBuiltInLayerPerViewNV = 5279,
741     SpvBuiltInMeshViewCountNV = 5280,
742     SpvBuiltInMeshViewIndicesNV = 5281,
743     SpvBuiltInBaryCoordKHR = 5286,
744     SpvBuiltInBaryCoordNV = 5286,
745     SpvBuiltInBaryCoordNoPerspKHR = 5287,
746     SpvBuiltInBaryCoordNoPerspNV = 5287,
747     SpvBuiltInFragSizeEXT = 5292,
748     SpvBuiltInFragmentSizeNV = 5292,
749     SpvBuiltInFragInvocationCountEXT = 5293,
750     SpvBuiltInInvocationsPerPixelNV = 5293,
751     SpvBuiltInPrimitivePointIndicesEXT = 5294,
752     SpvBuiltInPrimitiveLineIndicesEXT = 5295,
753     SpvBuiltInPrimitiveTriangleIndicesEXT = 5296,
754     SpvBuiltInCullPrimitiveEXT = 5299,
755     SpvBuiltInLaunchIdKHR = 5319,
756     SpvBuiltInLaunchIdNV = 5319,
757     SpvBuiltInLaunchSizeKHR = 5320,
758     SpvBuiltInLaunchSizeNV = 5320,
759     SpvBuiltInWorldRayOriginKHR = 5321,
760     SpvBuiltInWorldRayOriginNV = 5321,
761     SpvBuiltInWorldRayDirectionKHR = 5322,
762     SpvBuiltInWorldRayDirectionNV = 5322,
763     SpvBuiltInObjectRayOriginKHR = 5323,
764     SpvBuiltInObjectRayOriginNV = 5323,
765     SpvBuiltInObjectRayDirectionKHR = 5324,
766     SpvBuiltInObjectRayDirectionNV = 5324,
767     SpvBuiltInRayTminKHR = 5325,
768     SpvBuiltInRayTminNV = 5325,
769     SpvBuiltInRayTmaxKHR = 5326,
770     SpvBuiltInRayTmaxNV = 5326,
771     SpvBuiltInInstanceCustomIndexKHR = 5327,
772     SpvBuiltInInstanceCustomIndexNV = 5327,
773     SpvBuiltInObjectToWorldKHR = 5330,
774     SpvBuiltInObjectToWorldNV = 5330,
775     SpvBuiltInWorldToObjectKHR = 5331,
776     SpvBuiltInWorldToObjectNV = 5331,
777     SpvBuiltInHitTNV = 5332,
778     SpvBuiltInHitKindKHR = 5333,
779     SpvBuiltInHitKindNV = 5333,
780     SpvBuiltInCurrentRayTimeNV = 5334,
781     SpvBuiltInHitTriangleVertexPositionsKHR = 5335,
782     SpvBuiltInHitMicroTriangleVertexPositionsNV = 5337,
783     SpvBuiltInHitMicroTriangleVertexBarycentricsNV = 5344,
784     SpvBuiltInIncomingRayFlagsKHR = 5351,
785     SpvBuiltInIncomingRayFlagsNV = 5351,
786     SpvBuiltInRayGeometryIndexKHR = 5352,
787     SpvBuiltInWarpsPerSMNV = 5374,
788     SpvBuiltInSMCountNV = 5375,
789     SpvBuiltInWarpIDNV = 5376,
790     SpvBuiltInSMIDNV = 5377,
791     SpvBuiltInHitKindFrontFacingMicroTriangleNV = 5405,
792     SpvBuiltInHitKindBackFacingMicroTriangleNV = 5406,
793     SpvBuiltInCullMaskKHR = 6021,
794     SpvBuiltInMax = 0x7fffffff,
795 } SpvBuiltIn;
796 
797 typedef enum SpvSelectionControlShift_ {
798     SpvSelectionControlFlattenShift = 0,
799     SpvSelectionControlDontFlattenShift = 1,
800     SpvSelectionControlMax = 0x7fffffff,
801 } SpvSelectionControlShift;
802 
803 typedef enum SpvSelectionControlMask_ {
804     SpvSelectionControlMaskNone = 0,
805     SpvSelectionControlFlattenMask = 0x00000001,
806     SpvSelectionControlDontFlattenMask = 0x00000002,
807 } SpvSelectionControlMask;
808 
809 typedef enum SpvLoopControlShift_ {
810     SpvLoopControlUnrollShift = 0,
811     SpvLoopControlDontUnrollShift = 1,
812     SpvLoopControlDependencyInfiniteShift = 2,
813     SpvLoopControlDependencyLengthShift = 3,
814     SpvLoopControlMinIterationsShift = 4,
815     SpvLoopControlMaxIterationsShift = 5,
816     SpvLoopControlIterationMultipleShift = 6,
817     SpvLoopControlPeelCountShift = 7,
818     SpvLoopControlPartialCountShift = 8,
819     SpvLoopControlInitiationIntervalINTELShift = 16,
820     SpvLoopControlMaxConcurrencyINTELShift = 17,
821     SpvLoopControlDependencyArrayINTELShift = 18,
822     SpvLoopControlPipelineEnableINTELShift = 19,
823     SpvLoopControlLoopCoalesceINTELShift = 20,
824     SpvLoopControlMaxInterleavingINTELShift = 21,
825     SpvLoopControlSpeculatedIterationsINTELShift = 22,
826     SpvLoopControlNoFusionINTELShift = 23,
827     SpvLoopControlLoopCountINTELShift = 24,
828     SpvLoopControlMaxReinvocationDelayINTELShift = 25,
829     SpvLoopControlMax = 0x7fffffff,
830 } SpvLoopControlShift;
831 
832 typedef enum SpvLoopControlMask_ {
833     SpvLoopControlMaskNone = 0,
834     SpvLoopControlUnrollMask = 0x00000001,
835     SpvLoopControlDontUnrollMask = 0x00000002,
836     SpvLoopControlDependencyInfiniteMask = 0x00000004,
837     SpvLoopControlDependencyLengthMask = 0x00000008,
838     SpvLoopControlMinIterationsMask = 0x00000010,
839     SpvLoopControlMaxIterationsMask = 0x00000020,
840     SpvLoopControlIterationMultipleMask = 0x00000040,
841     SpvLoopControlPeelCountMask = 0x00000080,
842     SpvLoopControlPartialCountMask = 0x00000100,
843     SpvLoopControlInitiationIntervalINTELMask = 0x00010000,
844     SpvLoopControlMaxConcurrencyINTELMask = 0x00020000,
845     SpvLoopControlDependencyArrayINTELMask = 0x00040000,
846     SpvLoopControlPipelineEnableINTELMask = 0x00080000,
847     SpvLoopControlLoopCoalesceINTELMask = 0x00100000,
848     SpvLoopControlMaxInterleavingINTELMask = 0x00200000,
849     SpvLoopControlSpeculatedIterationsINTELMask = 0x00400000,
850     SpvLoopControlNoFusionINTELMask = 0x00800000,
851     SpvLoopControlLoopCountINTELMask = 0x01000000,
852     SpvLoopControlMaxReinvocationDelayINTELMask = 0x02000000,
853 } SpvLoopControlMask;
854 
855 typedef enum SpvFunctionControlShift_ {
856     SpvFunctionControlInlineShift = 0,
857     SpvFunctionControlDontInlineShift = 1,
858     SpvFunctionControlPureShift = 2,
859     SpvFunctionControlConstShift = 3,
860     SpvFunctionControlOptNoneEXTShift = 16,
861     SpvFunctionControlOptNoneINTELShift = 16,
862     SpvFunctionControlMax = 0x7fffffff,
863 } SpvFunctionControlShift;
864 
865 typedef enum SpvFunctionControlMask_ {
866     SpvFunctionControlMaskNone = 0,
867     SpvFunctionControlInlineMask = 0x00000001,
868     SpvFunctionControlDontInlineMask = 0x00000002,
869     SpvFunctionControlPureMask = 0x00000004,
870     SpvFunctionControlConstMask = 0x00000008,
871     SpvFunctionControlOptNoneEXTMask = 0x00010000,
872     SpvFunctionControlOptNoneINTELMask = 0x00010000,
873 } SpvFunctionControlMask;
874 
875 typedef enum SpvMemorySemanticsShift_ {
876     SpvMemorySemanticsAcquireShift = 1,
877     SpvMemorySemanticsReleaseShift = 2,
878     SpvMemorySemanticsAcquireReleaseShift = 3,
879     SpvMemorySemanticsSequentiallyConsistentShift = 4,
880     SpvMemorySemanticsUniformMemoryShift = 6,
881     SpvMemorySemanticsSubgroupMemoryShift = 7,
882     SpvMemorySemanticsWorkgroupMemoryShift = 8,
883     SpvMemorySemanticsCrossWorkgroupMemoryShift = 9,
884     SpvMemorySemanticsAtomicCounterMemoryShift = 10,
885     SpvMemorySemanticsImageMemoryShift = 11,
886     SpvMemorySemanticsOutputMemoryShift = 12,
887     SpvMemorySemanticsOutputMemoryKHRShift = 12,
888     SpvMemorySemanticsMakeAvailableShift = 13,
889     SpvMemorySemanticsMakeAvailableKHRShift = 13,
890     SpvMemorySemanticsMakeVisibleShift = 14,
891     SpvMemorySemanticsMakeVisibleKHRShift = 14,
892     SpvMemorySemanticsVolatileShift = 15,
893     SpvMemorySemanticsMax = 0x7fffffff,
894 } SpvMemorySemanticsShift;
895 
896 typedef enum SpvMemorySemanticsMask_ {
897     SpvMemorySemanticsMaskNone = 0,
898     SpvMemorySemanticsAcquireMask = 0x00000002,
899     SpvMemorySemanticsReleaseMask = 0x00000004,
900     SpvMemorySemanticsAcquireReleaseMask = 0x00000008,
901     SpvMemorySemanticsSequentiallyConsistentMask = 0x00000010,
902     SpvMemorySemanticsUniformMemoryMask = 0x00000040,
903     SpvMemorySemanticsSubgroupMemoryMask = 0x00000080,
904     SpvMemorySemanticsWorkgroupMemoryMask = 0x00000100,
905     SpvMemorySemanticsCrossWorkgroupMemoryMask = 0x00000200,
906     SpvMemorySemanticsAtomicCounterMemoryMask = 0x00000400,
907     SpvMemorySemanticsImageMemoryMask = 0x00000800,
908     SpvMemorySemanticsOutputMemoryMask = 0x00001000,
909     SpvMemorySemanticsOutputMemoryKHRMask = 0x00001000,
910     SpvMemorySemanticsMakeAvailableMask = 0x00002000,
911     SpvMemorySemanticsMakeAvailableKHRMask = 0x00002000,
912     SpvMemorySemanticsMakeVisibleMask = 0x00004000,
913     SpvMemorySemanticsMakeVisibleKHRMask = 0x00004000,
914     SpvMemorySemanticsVolatileMask = 0x00008000,
915 } SpvMemorySemanticsMask;
916 
917 typedef enum SpvMemoryAccessShift_ {
918     SpvMemoryAccessVolatileShift = 0,
919     SpvMemoryAccessAlignedShift = 1,
920     SpvMemoryAccessNontemporalShift = 2,
921     SpvMemoryAccessMakePointerAvailableShift = 3,
922     SpvMemoryAccessMakePointerAvailableKHRShift = 3,
923     SpvMemoryAccessMakePointerVisibleShift = 4,
924     SpvMemoryAccessMakePointerVisibleKHRShift = 4,
925     SpvMemoryAccessNonPrivatePointerShift = 5,
926     SpvMemoryAccessNonPrivatePointerKHRShift = 5,
927     SpvMemoryAccessAliasScopeINTELMaskShift = 16,
928     SpvMemoryAccessNoAliasINTELMaskShift = 17,
929     SpvMemoryAccessMax = 0x7fffffff,
930 } SpvMemoryAccessShift;
931 
932 typedef enum SpvMemoryAccessMask_ {
933     SpvMemoryAccessMaskNone = 0,
934     SpvMemoryAccessVolatileMask = 0x00000001,
935     SpvMemoryAccessAlignedMask = 0x00000002,
936     SpvMemoryAccessNontemporalMask = 0x00000004,
937     SpvMemoryAccessMakePointerAvailableMask = 0x00000008,
938     SpvMemoryAccessMakePointerAvailableKHRMask = 0x00000008,
939     SpvMemoryAccessMakePointerVisibleMask = 0x00000010,
940     SpvMemoryAccessMakePointerVisibleKHRMask = 0x00000010,
941     SpvMemoryAccessNonPrivatePointerMask = 0x00000020,
942     SpvMemoryAccessNonPrivatePointerKHRMask = 0x00000020,
943     SpvMemoryAccessAliasScopeINTELMaskMask = 0x00010000,
944     SpvMemoryAccessNoAliasINTELMaskMask = 0x00020000,
945 } SpvMemoryAccessMask;
946 
947 typedef enum SpvScope_ {
948     SpvScopeCrossDevice = 0,
949     SpvScopeDevice = 1,
950     SpvScopeWorkgroup = 2,
951     SpvScopeSubgroup = 3,
952     SpvScopeInvocation = 4,
953     SpvScopeQueueFamily = 5,
954     SpvScopeQueueFamilyKHR = 5,
955     SpvScopeShaderCallKHR = 6,
956     SpvScopeMax = 0x7fffffff,
957 } SpvScope;
958 
959 typedef enum SpvGroupOperation_ {
960     SpvGroupOperationReduce = 0,
961     SpvGroupOperationInclusiveScan = 1,
962     SpvGroupOperationExclusiveScan = 2,
963     SpvGroupOperationClusteredReduce = 3,
964     SpvGroupOperationPartitionedReduceNV = 6,
965     SpvGroupOperationPartitionedInclusiveScanNV = 7,
966     SpvGroupOperationPartitionedExclusiveScanNV = 8,
967     SpvGroupOperationMax = 0x7fffffff,
968 } SpvGroupOperation;
969 
970 typedef enum SpvKernelEnqueueFlags_ {
971     SpvKernelEnqueueFlagsNoWait = 0,
972     SpvKernelEnqueueFlagsWaitKernel = 1,
973     SpvKernelEnqueueFlagsWaitWorkGroup = 2,
974     SpvKernelEnqueueFlagsMax = 0x7fffffff,
975 } SpvKernelEnqueueFlags;
976 
977 typedef enum SpvKernelProfilingInfoShift_ {
978     SpvKernelProfilingInfoCmdExecTimeShift = 0,
979     SpvKernelProfilingInfoMax = 0x7fffffff,
980 } SpvKernelProfilingInfoShift;
981 
982 typedef enum SpvKernelProfilingInfoMask_ {
983     SpvKernelProfilingInfoMaskNone = 0,
984     SpvKernelProfilingInfoCmdExecTimeMask = 0x00000001,
985 } SpvKernelProfilingInfoMask;
986 
987 typedef enum SpvCapability_ {
988     SpvCapabilityMatrix = 0,
989     SpvCapabilityShader = 1,
990     SpvCapabilityGeometry = 2,
991     SpvCapabilityTessellation = 3,
992     SpvCapabilityAddresses = 4,
993     SpvCapabilityLinkage = 5,
994     SpvCapabilityKernel = 6,
995     SpvCapabilityVector16 = 7,
996     SpvCapabilityFloat16Buffer = 8,
997     SpvCapabilityFloat16 = 9,
998     SpvCapabilityFloat64 = 10,
999     SpvCapabilityInt64 = 11,
1000     SpvCapabilityInt64Atomics = 12,
1001     SpvCapabilityImageBasic = 13,
1002     SpvCapabilityImageReadWrite = 14,
1003     SpvCapabilityImageMipmap = 15,
1004     SpvCapabilityPipes = 17,
1005     SpvCapabilityGroups = 18,
1006     SpvCapabilityDeviceEnqueue = 19,
1007     SpvCapabilityLiteralSampler = 20,
1008     SpvCapabilityAtomicStorage = 21,
1009     SpvCapabilityInt16 = 22,
1010     SpvCapabilityTessellationPointSize = 23,
1011     SpvCapabilityGeometryPointSize = 24,
1012     SpvCapabilityImageGatherExtended = 25,
1013     SpvCapabilityStorageImageMultisample = 27,
1014     SpvCapabilityUniformBufferArrayDynamicIndexing = 28,
1015     SpvCapabilitySampledImageArrayDynamicIndexing = 29,
1016     SpvCapabilityStorageBufferArrayDynamicIndexing = 30,
1017     SpvCapabilityStorageImageArrayDynamicIndexing = 31,
1018     SpvCapabilityClipDistance = 32,
1019     SpvCapabilityCullDistance = 33,
1020     SpvCapabilityImageCubeArray = 34,
1021     SpvCapabilitySampleRateShading = 35,
1022     SpvCapabilityImageRect = 36,
1023     SpvCapabilitySampledRect = 37,
1024     SpvCapabilityGenericPointer = 38,
1025     SpvCapabilityInt8 = 39,
1026     SpvCapabilityInputAttachment = 40,
1027     SpvCapabilitySparseResidency = 41,
1028     SpvCapabilityMinLod = 42,
1029     SpvCapabilitySampled1D = 43,
1030     SpvCapabilityImage1D = 44,
1031     SpvCapabilitySampledCubeArray = 45,
1032     SpvCapabilitySampledBuffer = 46,
1033     SpvCapabilityImageBuffer = 47,
1034     SpvCapabilityImageMSArray = 48,
1035     SpvCapabilityStorageImageExtendedFormats = 49,
1036     SpvCapabilityImageQuery = 50,
1037     SpvCapabilityDerivativeControl = 51,
1038     SpvCapabilityInterpolationFunction = 52,
1039     SpvCapabilityTransformFeedback = 53,
1040     SpvCapabilityGeometryStreams = 54,
1041     SpvCapabilityStorageImageReadWithoutFormat = 55,
1042     SpvCapabilityStorageImageWriteWithoutFormat = 56,
1043     SpvCapabilityMultiViewport = 57,
1044     SpvCapabilitySubgroupDispatch = 58,
1045     SpvCapabilityNamedBarrier = 59,
1046     SpvCapabilityPipeStorage = 60,
1047     SpvCapabilityGroupNonUniform = 61,
1048     SpvCapabilityGroupNonUniformVote = 62,
1049     SpvCapabilityGroupNonUniformArithmetic = 63,
1050     SpvCapabilityGroupNonUniformBallot = 64,
1051     SpvCapabilityGroupNonUniformShuffle = 65,
1052     SpvCapabilityGroupNonUniformShuffleRelative = 66,
1053     SpvCapabilityGroupNonUniformClustered = 67,
1054     SpvCapabilityGroupNonUniformQuad = 68,
1055     SpvCapabilityShaderLayer = 69,
1056     SpvCapabilityShaderViewportIndex = 70,
1057     SpvCapabilityUniformDecoration = 71,
1058     SpvCapabilityCoreBuiltinsARM = 4165,
1059     SpvCapabilityTileImageColorReadAccessEXT = 4166,
1060     SpvCapabilityTileImageDepthReadAccessEXT = 4167,
1061     SpvCapabilityTileImageStencilReadAccessEXT = 4168,
1062     SpvCapabilityCooperativeMatrixLayoutsARM = 4201,
1063     SpvCapabilityFragmentShadingRateKHR = 4422,
1064     SpvCapabilitySubgroupBallotKHR = 4423,
1065     SpvCapabilityDrawParameters = 4427,
1066     SpvCapabilityWorkgroupMemoryExplicitLayoutKHR = 4428,
1067     SpvCapabilityWorkgroupMemoryExplicitLayout8BitAccessKHR = 4429,
1068     SpvCapabilityWorkgroupMemoryExplicitLayout16BitAccessKHR = 4430,
1069     SpvCapabilitySubgroupVoteKHR = 4431,
1070     SpvCapabilityStorageBuffer16BitAccess = 4433,
1071     SpvCapabilityStorageUniformBufferBlock16 = 4433,
1072     SpvCapabilityStorageUniform16 = 4434,
1073     SpvCapabilityUniformAndStorageBuffer16BitAccess = 4434,
1074     SpvCapabilityStoragePushConstant16 = 4435,
1075     SpvCapabilityStorageInputOutput16 = 4436,
1076     SpvCapabilityDeviceGroup = 4437,
1077     SpvCapabilityMultiView = 4439,
1078     SpvCapabilityVariablePointersStorageBuffer = 4441,
1079     SpvCapabilityVariablePointers = 4442,
1080     SpvCapabilityAtomicStorageOps = 4445,
1081     SpvCapabilitySampleMaskPostDepthCoverage = 4447,
1082     SpvCapabilityStorageBuffer8BitAccess = 4448,
1083     SpvCapabilityUniformAndStorageBuffer8BitAccess = 4449,
1084     SpvCapabilityStoragePushConstant8 = 4450,
1085     SpvCapabilityDenormPreserve = 4464,
1086     SpvCapabilityDenormFlushToZero = 4465,
1087     SpvCapabilitySignedZeroInfNanPreserve = 4466,
1088     SpvCapabilityRoundingModeRTE = 4467,
1089     SpvCapabilityRoundingModeRTZ = 4468,
1090     SpvCapabilityRayQueryProvisionalKHR = 4471,
1091     SpvCapabilityRayQueryKHR = 4472,
1092     SpvCapabilityUntypedPointersKHR = 4473,
1093     SpvCapabilityRayTraversalPrimitiveCullingKHR = 4478,
1094     SpvCapabilityRayTracingKHR = 4479,
1095     SpvCapabilityTextureSampleWeightedQCOM = 4484,
1096     SpvCapabilityTextureBoxFilterQCOM = 4485,
1097     SpvCapabilityTextureBlockMatchQCOM = 4486,
1098     SpvCapabilityTextureBlockMatch2QCOM = 4498,
1099     SpvCapabilityFloat16ImageAMD = 5008,
1100     SpvCapabilityImageGatherBiasLodAMD = 5009,
1101     SpvCapabilityFragmentMaskAMD = 5010,
1102     SpvCapabilityStencilExportEXT = 5013,
1103     SpvCapabilityImageReadWriteLodAMD = 5015,
1104     SpvCapabilityInt64ImageEXT = 5016,
1105     SpvCapabilityShaderClockKHR = 5055,
1106     SpvCapabilityShaderEnqueueAMDX = 5067,
1107     SpvCapabilityQuadControlKHR = 5087,
1108     SpvCapabilitySampleMaskOverrideCoverageNV = 5249,
1109     SpvCapabilityGeometryShaderPassthroughNV = 5251,
1110     SpvCapabilityShaderViewportIndexLayerEXT = 5254,
1111     SpvCapabilityShaderViewportIndexLayerNV = 5254,
1112     SpvCapabilityShaderViewportMaskNV = 5255,
1113     SpvCapabilityShaderStereoViewNV = 5259,
1114     SpvCapabilityPerViewAttributesNV = 5260,
1115     SpvCapabilityFragmentFullyCoveredEXT = 5265,
1116     SpvCapabilityMeshShadingNV = 5266,
1117     SpvCapabilityImageFootprintNV = 5282,
1118     SpvCapabilityMeshShadingEXT = 5283,
1119     SpvCapabilityFragmentBarycentricKHR = 5284,
1120     SpvCapabilityFragmentBarycentricNV = 5284,
1121     SpvCapabilityComputeDerivativeGroupQuadsKHR = 5288,
1122     SpvCapabilityComputeDerivativeGroupQuadsNV = 5288,
1123     SpvCapabilityFragmentDensityEXT = 5291,
1124     SpvCapabilityShadingRateNV = 5291,
1125     SpvCapabilityGroupNonUniformPartitionedNV = 5297,
1126     SpvCapabilityShaderNonUniform = 5301,
1127     SpvCapabilityShaderNonUniformEXT = 5301,
1128     SpvCapabilityRuntimeDescriptorArray = 5302,
1129     SpvCapabilityRuntimeDescriptorArrayEXT = 5302,
1130     SpvCapabilityInputAttachmentArrayDynamicIndexing = 5303,
1131     SpvCapabilityInputAttachmentArrayDynamicIndexingEXT = 5303,
1132     SpvCapabilityUniformTexelBufferArrayDynamicIndexing = 5304,
1133     SpvCapabilityUniformTexelBufferArrayDynamicIndexingEXT = 5304,
1134     SpvCapabilityStorageTexelBufferArrayDynamicIndexing = 5305,
1135     SpvCapabilityStorageTexelBufferArrayDynamicIndexingEXT = 5305,
1136     SpvCapabilityUniformBufferArrayNonUniformIndexing = 5306,
1137     SpvCapabilityUniformBufferArrayNonUniformIndexingEXT = 5306,
1138     SpvCapabilitySampledImageArrayNonUniformIndexing = 5307,
1139     SpvCapabilitySampledImageArrayNonUniformIndexingEXT = 5307,
1140     SpvCapabilityStorageBufferArrayNonUniformIndexing = 5308,
1141     SpvCapabilityStorageBufferArrayNonUniformIndexingEXT = 5308,
1142     SpvCapabilityStorageImageArrayNonUniformIndexing = 5309,
1143     SpvCapabilityStorageImageArrayNonUniformIndexingEXT = 5309,
1144     SpvCapabilityInputAttachmentArrayNonUniformIndexing = 5310,
1145     SpvCapabilityInputAttachmentArrayNonUniformIndexingEXT = 5310,
1146     SpvCapabilityUniformTexelBufferArrayNonUniformIndexing = 5311,
1147     SpvCapabilityUniformTexelBufferArrayNonUniformIndexingEXT = 5311,
1148     SpvCapabilityStorageTexelBufferArrayNonUniformIndexing = 5312,
1149     SpvCapabilityStorageTexelBufferArrayNonUniformIndexingEXT = 5312,
1150     SpvCapabilityRayTracingPositionFetchKHR = 5336,
1151     SpvCapabilityRayTracingNV = 5340,
1152     SpvCapabilityRayTracingMotionBlurNV = 5341,
1153     SpvCapabilityVulkanMemoryModel = 5345,
1154     SpvCapabilityVulkanMemoryModelKHR = 5345,
1155     SpvCapabilityVulkanMemoryModelDeviceScope = 5346,
1156     SpvCapabilityVulkanMemoryModelDeviceScopeKHR = 5346,
1157     SpvCapabilityPhysicalStorageBufferAddresses = 5347,
1158     SpvCapabilityPhysicalStorageBufferAddressesEXT = 5347,
1159     SpvCapabilityComputeDerivativeGroupLinearKHR = 5350,
1160     SpvCapabilityComputeDerivativeGroupLinearNV = 5350,
1161     SpvCapabilityRayTracingProvisionalKHR = 5353,
1162     SpvCapabilityCooperativeMatrixNV = 5357,
1163     SpvCapabilityFragmentShaderSampleInterlockEXT = 5363,
1164     SpvCapabilityFragmentShaderShadingRateInterlockEXT = 5372,
1165     SpvCapabilityShaderSMBuiltinsNV = 5373,
1166     SpvCapabilityFragmentShaderPixelInterlockEXT = 5378,
1167     SpvCapabilityDemoteToHelperInvocation = 5379,
1168     SpvCapabilityDemoteToHelperInvocationEXT = 5379,
1169     SpvCapabilityDisplacementMicromapNV = 5380,
1170     SpvCapabilityRayTracingOpacityMicromapEXT = 5381,
1171     SpvCapabilityShaderInvocationReorderNV = 5383,
1172     SpvCapabilityBindlessTextureNV = 5390,
1173     SpvCapabilityRayQueryPositionFetchKHR = 5391,
1174     SpvCapabilityAtomicFloat16VectorNV = 5404,
1175     SpvCapabilityRayTracingDisplacementMicromapNV = 5409,
1176     SpvCapabilityRawAccessChainsNV = 5414,
1177     SpvCapabilityCooperativeMatrixReductionsNV = 5430,
1178     SpvCapabilityCooperativeMatrixConversionsNV = 5431,
1179     SpvCapabilityCooperativeMatrixPerElementOperationsNV = 5432,
1180     SpvCapabilityCooperativeMatrixTensorAddressingNV = 5433,
1181     SpvCapabilityCooperativeMatrixBlockLoadsNV = 5434,
1182     SpvCapabilityTensorAddressingNV = 5439,
1183     SpvCapabilitySubgroupShuffleINTEL = 5568,
1184     SpvCapabilitySubgroupBufferBlockIOINTEL = 5569,
1185     SpvCapabilitySubgroupImageBlockIOINTEL = 5570,
1186     SpvCapabilitySubgroupImageMediaBlockIOINTEL = 5579,
1187     SpvCapabilityRoundToInfinityINTEL = 5582,
1188     SpvCapabilityFloatingPointModeINTEL = 5583,
1189     SpvCapabilityIntegerFunctions2INTEL = 5584,
1190     SpvCapabilityFunctionPointersINTEL = 5603,
1191     SpvCapabilityIndirectReferencesINTEL = 5604,
1192     SpvCapabilityAsmINTEL = 5606,
1193     SpvCapabilityAtomicFloat32MinMaxEXT = 5612,
1194     SpvCapabilityAtomicFloat64MinMaxEXT = 5613,
1195     SpvCapabilityAtomicFloat16MinMaxEXT = 5616,
1196     SpvCapabilityVectorComputeINTEL = 5617,
1197     SpvCapabilityVectorAnyINTEL = 5619,
1198     SpvCapabilityExpectAssumeKHR = 5629,
1199     SpvCapabilitySubgroupAvcMotionEstimationINTEL = 5696,
1200     SpvCapabilitySubgroupAvcMotionEstimationIntraINTEL = 5697,
1201     SpvCapabilitySubgroupAvcMotionEstimationChromaINTEL = 5698,
1202     SpvCapabilityVariableLengthArrayINTEL = 5817,
1203     SpvCapabilityFunctionFloatControlINTEL = 5821,
1204     SpvCapabilityFPGAMemoryAttributesINTEL = 5824,
1205     SpvCapabilityFPFastMathModeINTEL = 5837,
1206     SpvCapabilityArbitraryPrecisionIntegersINTEL = 5844,
1207     SpvCapabilityArbitraryPrecisionFloatingPointINTEL = 5845,
1208     SpvCapabilityUnstructuredLoopControlsINTEL = 5886,
1209     SpvCapabilityFPGALoopControlsINTEL = 5888,
1210     SpvCapabilityKernelAttributesINTEL = 5892,
1211     SpvCapabilityFPGAKernelAttributesINTEL = 5897,
1212     SpvCapabilityFPGAMemoryAccessesINTEL = 5898,
1213     SpvCapabilityFPGAClusterAttributesINTEL = 5904,
1214     SpvCapabilityLoopFuseINTEL = 5906,
1215     SpvCapabilityFPGADSPControlINTEL = 5908,
1216     SpvCapabilityMemoryAccessAliasingINTEL = 5910,
1217     SpvCapabilityFPGAInvocationPipeliningAttributesINTEL = 5916,
1218     SpvCapabilityFPGABufferLocationINTEL = 5920,
1219     SpvCapabilityArbitraryPrecisionFixedPointINTEL = 5922,
1220     SpvCapabilityUSMStorageClassesINTEL = 5935,
1221     SpvCapabilityRuntimeAlignedAttributeINTEL = 5939,
1222     SpvCapabilityIOPipesINTEL = 5943,
1223     SpvCapabilityBlockingPipesINTEL = 5945,
1224     SpvCapabilityFPGARegINTEL = 5948,
1225     SpvCapabilityDotProductInputAll = 6016,
1226     SpvCapabilityDotProductInputAllKHR = 6016,
1227     SpvCapabilityDotProductInput4x8Bit = 6017,
1228     SpvCapabilityDotProductInput4x8BitKHR = 6017,
1229     SpvCapabilityDotProductInput4x8BitPacked = 6018,
1230     SpvCapabilityDotProductInput4x8BitPackedKHR = 6018,
1231     SpvCapabilityDotProduct = 6019,
1232     SpvCapabilityDotProductKHR = 6019,
1233     SpvCapabilityRayCullMaskKHR = 6020,
1234     SpvCapabilityCooperativeMatrixKHR = 6022,
1235     SpvCapabilityReplicatedCompositesEXT = 6024,
1236     SpvCapabilityBitInstructions = 6025,
1237     SpvCapabilityGroupNonUniformRotateKHR = 6026,
1238     SpvCapabilityFloatControls2 = 6029,
1239     SpvCapabilityAtomicFloat32AddEXT = 6033,
1240     SpvCapabilityAtomicFloat64AddEXT = 6034,
1241     SpvCapabilityLongCompositesINTEL = 6089,
1242     SpvCapabilityOptNoneEXT = 6094,
1243     SpvCapabilityOptNoneINTEL = 6094,
1244     SpvCapabilityAtomicFloat16AddEXT = 6095,
1245     SpvCapabilityDebugInfoModuleINTEL = 6114,
1246     SpvCapabilityBFloat16ConversionINTEL = 6115,
1247     SpvCapabilitySplitBarrierINTEL = 6141,
1248     SpvCapabilityArithmeticFenceEXT = 6144,
1249     SpvCapabilityFPGAClusterAttributesV2INTEL = 6150,
1250     SpvCapabilityFPGAKernelAttributesv2INTEL = 6161,
1251     SpvCapabilityFPMaxErrorINTEL = 6169,
1252     SpvCapabilityFPGALatencyControlINTEL = 6171,
1253     SpvCapabilityFPGAArgumentInterfacesINTEL = 6174,
1254     SpvCapabilityGlobalVariableHostAccessINTEL = 6187,
1255     SpvCapabilityGlobalVariableFPGADecorationsINTEL = 6189,
1256     SpvCapabilitySubgroupBufferPrefetchINTEL = 6220,
1257     SpvCapabilityGroupUniformArithmeticKHR = 6400,
1258     SpvCapabilityMaskedGatherScatterINTEL = 6427,
1259     SpvCapabilityCacheControlsINTEL = 6441,
1260     SpvCapabilityRegisterLimitsINTEL = 6460,
1261     SpvCapabilityMax = 0x7fffffff,
1262 } SpvCapability;
1263 
1264 typedef enum SpvRayFlagsShift_ {
1265     SpvRayFlagsOpaqueKHRShift = 0,
1266     SpvRayFlagsNoOpaqueKHRShift = 1,
1267     SpvRayFlagsTerminateOnFirstHitKHRShift = 2,
1268     SpvRayFlagsSkipClosestHitShaderKHRShift = 3,
1269     SpvRayFlagsCullBackFacingTrianglesKHRShift = 4,
1270     SpvRayFlagsCullFrontFacingTrianglesKHRShift = 5,
1271     SpvRayFlagsCullOpaqueKHRShift = 6,
1272     SpvRayFlagsCullNoOpaqueKHRShift = 7,
1273     SpvRayFlagsSkipTrianglesKHRShift = 8,
1274     SpvRayFlagsSkipAABBsKHRShift = 9,
1275     SpvRayFlagsForceOpacityMicromap2StateEXTShift = 10,
1276     SpvRayFlagsMax = 0x7fffffff,
1277 } SpvRayFlagsShift;
1278 
1279 typedef enum SpvRayFlagsMask_ {
1280     SpvRayFlagsMaskNone = 0,
1281     SpvRayFlagsOpaqueKHRMask = 0x00000001,
1282     SpvRayFlagsNoOpaqueKHRMask = 0x00000002,
1283     SpvRayFlagsTerminateOnFirstHitKHRMask = 0x00000004,
1284     SpvRayFlagsSkipClosestHitShaderKHRMask = 0x00000008,
1285     SpvRayFlagsCullBackFacingTrianglesKHRMask = 0x00000010,
1286     SpvRayFlagsCullFrontFacingTrianglesKHRMask = 0x00000020,
1287     SpvRayFlagsCullOpaqueKHRMask = 0x00000040,
1288     SpvRayFlagsCullNoOpaqueKHRMask = 0x00000080,
1289     SpvRayFlagsSkipTrianglesKHRMask = 0x00000100,
1290     SpvRayFlagsSkipAABBsKHRMask = 0x00000200,
1291     SpvRayFlagsForceOpacityMicromap2StateEXTMask = 0x00000400,
1292 } SpvRayFlagsMask;
1293 
1294 typedef enum SpvRayQueryIntersection_ {
1295     SpvRayQueryIntersectionRayQueryCandidateIntersectionKHR = 0,
1296     SpvRayQueryIntersectionRayQueryCommittedIntersectionKHR = 1,
1297     SpvRayQueryIntersectionMax = 0x7fffffff,
1298 } SpvRayQueryIntersection;
1299 
1300 typedef enum SpvRayQueryCommittedIntersectionType_ {
1301     SpvRayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionNoneKHR = 0,
1302     SpvRayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionTriangleKHR = 1,
1303     SpvRayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionGeneratedKHR = 2,
1304     SpvRayQueryCommittedIntersectionTypeMax = 0x7fffffff,
1305 } SpvRayQueryCommittedIntersectionType;
1306 
1307 typedef enum SpvRayQueryCandidateIntersectionType_ {
1308     SpvRayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionTriangleKHR = 0,
1309     SpvRayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionAABBKHR = 1,
1310     SpvRayQueryCandidateIntersectionTypeMax = 0x7fffffff,
1311 } SpvRayQueryCandidateIntersectionType;
1312 
1313 typedef enum SpvFragmentShadingRateShift_ {
1314     SpvFragmentShadingRateVertical2PixelsShift = 0,
1315     SpvFragmentShadingRateVertical4PixelsShift = 1,
1316     SpvFragmentShadingRateHorizontal2PixelsShift = 2,
1317     SpvFragmentShadingRateHorizontal4PixelsShift = 3,
1318     SpvFragmentShadingRateMax = 0x7fffffff,
1319 } SpvFragmentShadingRateShift;
1320 
1321 typedef enum SpvFragmentShadingRateMask_ {
1322     SpvFragmentShadingRateMaskNone = 0,
1323     SpvFragmentShadingRateVertical2PixelsMask = 0x00000001,
1324     SpvFragmentShadingRateVertical4PixelsMask = 0x00000002,
1325     SpvFragmentShadingRateHorizontal2PixelsMask = 0x00000004,
1326     SpvFragmentShadingRateHorizontal4PixelsMask = 0x00000008,
1327 } SpvFragmentShadingRateMask;
1328 
1329 typedef enum SpvFPDenormMode_ {
1330     SpvFPDenormModePreserve = 0,
1331     SpvFPDenormModeFlushToZero = 1,
1332     SpvFPDenormModeMax = 0x7fffffff,
1333 } SpvFPDenormMode;
1334 
1335 typedef enum SpvFPOperationMode_ {
1336     SpvFPOperationModeIEEE = 0,
1337     SpvFPOperationModeALT = 1,
1338     SpvFPOperationModeMax = 0x7fffffff,
1339 } SpvFPOperationMode;
1340 
1341 typedef enum SpvQuantizationModes_ {
1342     SpvQuantizationModesTRN = 0,
1343     SpvQuantizationModesTRN_ZERO = 1,
1344     SpvQuantizationModesRND = 2,
1345     SpvQuantizationModesRND_ZERO = 3,
1346     SpvQuantizationModesRND_INF = 4,
1347     SpvQuantizationModesRND_MIN_INF = 5,
1348     SpvQuantizationModesRND_CONV = 6,
1349     SpvQuantizationModesRND_CONV_ODD = 7,
1350     SpvQuantizationModesMax = 0x7fffffff,
1351 } SpvQuantizationModes;
1352 
1353 typedef enum SpvOverflowModes_ {
1354     SpvOverflowModesWRAP = 0,
1355     SpvOverflowModesSAT = 1,
1356     SpvOverflowModesSAT_ZERO = 2,
1357     SpvOverflowModesSAT_SYM = 3,
1358     SpvOverflowModesMax = 0x7fffffff,
1359 } SpvOverflowModes;
1360 
1361 typedef enum SpvPackedVectorFormat_ {
1362     SpvPackedVectorFormatPackedVectorFormat4x8Bit = 0,
1363     SpvPackedVectorFormatPackedVectorFormat4x8BitKHR = 0,
1364     SpvPackedVectorFormatMax = 0x7fffffff,
1365 } SpvPackedVectorFormat;
1366 
1367 typedef enum SpvCooperativeMatrixOperandsShift_ {
1368     SpvCooperativeMatrixOperandsMatrixASignedComponentsKHRShift = 0,
1369     SpvCooperativeMatrixOperandsMatrixBSignedComponentsKHRShift = 1,
1370     SpvCooperativeMatrixOperandsMatrixCSignedComponentsKHRShift = 2,
1371     SpvCooperativeMatrixOperandsMatrixResultSignedComponentsKHRShift = 3,
1372     SpvCooperativeMatrixOperandsSaturatingAccumulationKHRShift = 4,
1373     SpvCooperativeMatrixOperandsMax = 0x7fffffff,
1374 } SpvCooperativeMatrixOperandsShift;
1375 
1376 typedef enum SpvCooperativeMatrixOperandsMask_ {
1377     SpvCooperativeMatrixOperandsMaskNone = 0,
1378     SpvCooperativeMatrixOperandsMatrixASignedComponentsKHRMask = 0x00000001,
1379     SpvCooperativeMatrixOperandsMatrixBSignedComponentsKHRMask = 0x00000002,
1380     SpvCooperativeMatrixOperandsMatrixCSignedComponentsKHRMask = 0x00000004,
1381     SpvCooperativeMatrixOperandsMatrixResultSignedComponentsKHRMask = 0x00000008,
1382     SpvCooperativeMatrixOperandsSaturatingAccumulationKHRMask = 0x00000010,
1383 } SpvCooperativeMatrixOperandsMask;
1384 
1385 typedef enum SpvCooperativeMatrixLayout_ {
1386     SpvCooperativeMatrixLayoutRowMajorKHR = 0,
1387     SpvCooperativeMatrixLayoutColumnMajorKHR = 1,
1388     SpvCooperativeMatrixLayoutRowBlockedInterleavedARM = 4202,
1389     SpvCooperativeMatrixLayoutColumnBlockedInterleavedARM = 4203,
1390     SpvCooperativeMatrixLayoutMax = 0x7fffffff,
1391 } SpvCooperativeMatrixLayout;
1392 
1393 typedef enum SpvCooperativeMatrixUse_ {
1394     SpvCooperativeMatrixUseMatrixAKHR = 0,
1395     SpvCooperativeMatrixUseMatrixBKHR = 1,
1396     SpvCooperativeMatrixUseMatrixAccumulatorKHR = 2,
1397     SpvCooperativeMatrixUseMax = 0x7fffffff,
1398 } SpvCooperativeMatrixUse;
1399 
1400 typedef enum SpvCooperativeMatrixReduceShift_ {
1401     SpvCooperativeMatrixReduceRowShift = 0,
1402     SpvCooperativeMatrixReduceColumnShift = 1,
1403     SpvCooperativeMatrixReduce2x2Shift = 2,
1404     SpvCooperativeMatrixReduceMax = 0x7fffffff,
1405 } SpvCooperativeMatrixReduceShift;
1406 
1407 typedef enum SpvCooperativeMatrixReduceMask_ {
1408     SpvCooperativeMatrixReduceMaskNone = 0,
1409     SpvCooperativeMatrixReduceRowMask = 0x00000001,
1410     SpvCooperativeMatrixReduceColumnMask = 0x00000002,
1411     SpvCooperativeMatrixReduce2x2Mask = 0x00000004,
1412 } SpvCooperativeMatrixReduceMask;
1413 
1414 typedef enum SpvTensorClampMode_ {
1415     SpvTensorClampModeUndefined = 0,
1416     SpvTensorClampModeConstant = 1,
1417     SpvTensorClampModeClampToEdge = 2,
1418     SpvTensorClampModeRepeat = 3,
1419     SpvTensorClampModeRepeatMirrored = 4,
1420     SpvTensorClampModeMax = 0x7fffffff,
1421 } SpvTensorClampMode;
1422 
1423 typedef enum SpvTensorAddressingOperandsShift_ {
1424     SpvTensorAddressingOperandsTensorViewShift = 0,
1425     SpvTensorAddressingOperandsDecodeFuncShift = 1,
1426     SpvTensorAddressingOperandsMax = 0x7fffffff,
1427 } SpvTensorAddressingOperandsShift;
1428 
1429 typedef enum SpvTensorAddressingOperandsMask_ {
1430     SpvTensorAddressingOperandsMaskNone = 0,
1431     SpvTensorAddressingOperandsTensorViewMask = 0x00000001,
1432     SpvTensorAddressingOperandsDecodeFuncMask = 0x00000002,
1433 } SpvTensorAddressingOperandsMask;
1434 
1435 typedef enum SpvInitializationModeQualifier_ {
1436     SpvInitializationModeQualifierInitOnDeviceReprogramINTEL = 0,
1437     SpvInitializationModeQualifierInitOnDeviceResetINTEL = 1,
1438     SpvInitializationModeQualifierMax = 0x7fffffff,
1439 } SpvInitializationModeQualifier;
1440 
1441 typedef enum SpvHostAccessQualifier_ {
1442     SpvHostAccessQualifierNoneINTEL = 0,
1443     SpvHostAccessQualifierReadINTEL = 1,
1444     SpvHostAccessQualifierWriteINTEL = 2,
1445     SpvHostAccessQualifierReadWriteINTEL = 3,
1446     SpvHostAccessQualifierMax = 0x7fffffff,
1447 } SpvHostAccessQualifier;
1448 
1449 typedef enum SpvLoadCacheControl_ {
1450     SpvLoadCacheControlUncachedINTEL = 0,
1451     SpvLoadCacheControlCachedINTEL = 1,
1452     SpvLoadCacheControlStreamingINTEL = 2,
1453     SpvLoadCacheControlInvalidateAfterReadINTEL = 3,
1454     SpvLoadCacheControlConstCachedINTEL = 4,
1455     SpvLoadCacheControlMax = 0x7fffffff,
1456 } SpvLoadCacheControl;
1457 
1458 typedef enum SpvStoreCacheControl_ {
1459     SpvStoreCacheControlUncachedINTEL = 0,
1460     SpvStoreCacheControlWriteThroughINTEL = 1,
1461     SpvStoreCacheControlWriteBackINTEL = 2,
1462     SpvStoreCacheControlStreamingINTEL = 3,
1463     SpvStoreCacheControlMax = 0x7fffffff,
1464 } SpvStoreCacheControl;
1465 
1466 typedef enum SpvNamedMaximumNumberOfRegisters_ {
1467     SpvNamedMaximumNumberOfRegistersAutoINTEL = 0,
1468     SpvNamedMaximumNumberOfRegistersMax = 0x7fffffff,
1469 } SpvNamedMaximumNumberOfRegisters;
1470 
1471 typedef enum SpvRawAccessChainOperandsShift_ {
1472     SpvRawAccessChainOperandsRobustnessPerComponentNVShift = 0,
1473     SpvRawAccessChainOperandsRobustnessPerElementNVShift = 1,
1474     SpvRawAccessChainOperandsMax = 0x7fffffff,
1475 } SpvRawAccessChainOperandsShift;
1476 
1477 typedef enum SpvRawAccessChainOperandsMask_ {
1478     SpvRawAccessChainOperandsMaskNone = 0,
1479     SpvRawAccessChainOperandsRobustnessPerComponentNVMask = 0x00000001,
1480     SpvRawAccessChainOperandsRobustnessPerElementNVMask = 0x00000002,
1481 } SpvRawAccessChainOperandsMask;
1482 
1483 typedef enum SpvFPEncoding_ {
1484     SpvFPEncodingMax = 0x7fffffff,
1485 } SpvFPEncoding;
1486 
1487 typedef enum SpvOp_ {
1488     SpvOpNop = 0,
1489     SpvOpUndef = 1,
1490     SpvOpSourceContinued = 2,
1491     SpvOpSource = 3,
1492     SpvOpSourceExtension = 4,
1493     SpvOpName = 5,
1494     SpvOpMemberName = 6,
1495     SpvOpString = 7,
1496     SpvOpLine = 8,
1497     SpvOpExtension = 10,
1498     SpvOpExtInstImport = 11,
1499     SpvOpExtInst = 12,
1500     SpvOpMemoryModel = 14,
1501     SpvOpEntryPoint = 15,
1502     SpvOpExecutionMode = 16,
1503     SpvOpCapability = 17,
1504     SpvOpTypeVoid = 19,
1505     SpvOpTypeBool = 20,
1506     SpvOpTypeInt = 21,
1507     SpvOpTypeFloat = 22,
1508     SpvOpTypeVector = 23,
1509     SpvOpTypeMatrix = 24,
1510     SpvOpTypeImage = 25,
1511     SpvOpTypeSampler = 26,
1512     SpvOpTypeSampledImage = 27,
1513     SpvOpTypeArray = 28,
1514     SpvOpTypeRuntimeArray = 29,
1515     SpvOpTypeStruct = 30,
1516     SpvOpTypeOpaque = 31,
1517     SpvOpTypePointer = 32,
1518     SpvOpTypeFunction = 33,
1519     SpvOpTypeEvent = 34,
1520     SpvOpTypeDeviceEvent = 35,
1521     SpvOpTypeReserveId = 36,
1522     SpvOpTypeQueue = 37,
1523     SpvOpTypePipe = 38,
1524     SpvOpTypeForwardPointer = 39,
1525     SpvOpConstantTrue = 41,
1526     SpvOpConstantFalse = 42,
1527     SpvOpConstant = 43,
1528     SpvOpConstantComposite = 44,
1529     SpvOpConstantSampler = 45,
1530     SpvOpConstantNull = 46,
1531     SpvOpSpecConstantTrue = 48,
1532     SpvOpSpecConstantFalse = 49,
1533     SpvOpSpecConstant = 50,
1534     SpvOpSpecConstantComposite = 51,
1535     SpvOpSpecConstantOp = 52,
1536     SpvOpFunction = 54,
1537     SpvOpFunctionParameter = 55,
1538     SpvOpFunctionEnd = 56,
1539     SpvOpFunctionCall = 57,
1540     SpvOpVariable = 59,
1541     SpvOpImageTexelPointer = 60,
1542     SpvOpLoad = 61,
1543     SpvOpStore = 62,
1544     SpvOpCopyMemory = 63,
1545     SpvOpCopyMemorySized = 64,
1546     SpvOpAccessChain = 65,
1547     SpvOpInBoundsAccessChain = 66,
1548     SpvOpPtrAccessChain = 67,
1549     SpvOpArrayLength = 68,
1550     SpvOpGenericPtrMemSemantics = 69,
1551     SpvOpInBoundsPtrAccessChain = 70,
1552     SpvOpDecorate = 71,
1553     SpvOpMemberDecorate = 72,
1554     SpvOpDecorationGroup = 73,
1555     SpvOpGroupDecorate = 74,
1556     SpvOpGroupMemberDecorate = 75,
1557     SpvOpVectorExtractDynamic = 77,
1558     SpvOpVectorInsertDynamic = 78,
1559     SpvOpVectorShuffle = 79,
1560     SpvOpCompositeConstruct = 80,
1561     SpvOpCompositeExtract = 81,
1562     SpvOpCompositeInsert = 82,
1563     SpvOpCopyObject = 83,
1564     SpvOpTranspose = 84,
1565     SpvOpSampledImage = 86,
1566     SpvOpImageSampleImplicitLod = 87,
1567     SpvOpImageSampleExplicitLod = 88,
1568     SpvOpImageSampleDrefImplicitLod = 89,
1569     SpvOpImageSampleDrefExplicitLod = 90,
1570     SpvOpImageSampleProjImplicitLod = 91,
1571     SpvOpImageSampleProjExplicitLod = 92,
1572     SpvOpImageSampleProjDrefImplicitLod = 93,
1573     SpvOpImageSampleProjDrefExplicitLod = 94,
1574     SpvOpImageFetch = 95,
1575     SpvOpImageGather = 96,
1576     SpvOpImageDrefGather = 97,
1577     SpvOpImageRead = 98,
1578     SpvOpImageWrite = 99,
1579     SpvOpImage = 100,
1580     SpvOpImageQueryFormat = 101,
1581     SpvOpImageQueryOrder = 102,
1582     SpvOpImageQuerySizeLod = 103,
1583     SpvOpImageQuerySize = 104,
1584     SpvOpImageQueryLod = 105,
1585     SpvOpImageQueryLevels = 106,
1586     SpvOpImageQuerySamples = 107,
1587     SpvOpConvertFToU = 109,
1588     SpvOpConvertFToS = 110,
1589     SpvOpConvertSToF = 111,
1590     SpvOpConvertUToF = 112,
1591     SpvOpUConvert = 113,
1592     SpvOpSConvert = 114,
1593     SpvOpFConvert = 115,
1594     SpvOpQuantizeToF16 = 116,
1595     SpvOpConvertPtrToU = 117,
1596     SpvOpSatConvertSToU = 118,
1597     SpvOpSatConvertUToS = 119,
1598     SpvOpConvertUToPtr = 120,
1599     SpvOpPtrCastToGeneric = 121,
1600     SpvOpGenericCastToPtr = 122,
1601     SpvOpGenericCastToPtrExplicit = 123,
1602     SpvOpBitcast = 124,
1603     SpvOpSNegate = 126,
1604     SpvOpFNegate = 127,
1605     SpvOpIAdd = 128,
1606     SpvOpFAdd = 129,
1607     SpvOpISub = 130,
1608     SpvOpFSub = 131,
1609     SpvOpIMul = 132,
1610     SpvOpFMul = 133,
1611     SpvOpUDiv = 134,
1612     SpvOpSDiv = 135,
1613     SpvOpFDiv = 136,
1614     SpvOpUMod = 137,
1615     SpvOpSRem = 138,
1616     SpvOpSMod = 139,
1617     SpvOpFRem = 140,
1618     SpvOpFMod = 141,
1619     SpvOpVectorTimesScalar = 142,
1620     SpvOpMatrixTimesScalar = 143,
1621     SpvOpVectorTimesMatrix = 144,
1622     SpvOpMatrixTimesVector = 145,
1623     SpvOpMatrixTimesMatrix = 146,
1624     SpvOpOuterProduct = 147,
1625     SpvOpDot = 148,
1626     SpvOpIAddCarry = 149,
1627     SpvOpISubBorrow = 150,
1628     SpvOpUMulExtended = 151,
1629     SpvOpSMulExtended = 152,
1630     SpvOpAny = 154,
1631     SpvOpAll = 155,
1632     SpvOpIsNan = 156,
1633     SpvOpIsInf = 157,
1634     SpvOpIsFinite = 158,
1635     SpvOpIsNormal = 159,
1636     SpvOpSignBitSet = 160,
1637     SpvOpLessOrGreater = 161,
1638     SpvOpOrdered = 162,
1639     SpvOpUnordered = 163,
1640     SpvOpLogicalEqual = 164,
1641     SpvOpLogicalNotEqual = 165,
1642     SpvOpLogicalOr = 166,
1643     SpvOpLogicalAnd = 167,
1644     SpvOpLogicalNot = 168,
1645     SpvOpSelect = 169,
1646     SpvOpIEqual = 170,
1647     SpvOpINotEqual = 171,
1648     SpvOpUGreaterThan = 172,
1649     SpvOpSGreaterThan = 173,
1650     SpvOpUGreaterThanEqual = 174,
1651     SpvOpSGreaterThanEqual = 175,
1652     SpvOpULessThan = 176,
1653     SpvOpSLessThan = 177,
1654     SpvOpULessThanEqual = 178,
1655     SpvOpSLessThanEqual = 179,
1656     SpvOpFOrdEqual = 180,
1657     SpvOpFUnordEqual = 181,
1658     SpvOpFOrdNotEqual = 182,
1659     SpvOpFUnordNotEqual = 183,
1660     SpvOpFOrdLessThan = 184,
1661     SpvOpFUnordLessThan = 185,
1662     SpvOpFOrdGreaterThan = 186,
1663     SpvOpFUnordGreaterThan = 187,
1664     SpvOpFOrdLessThanEqual = 188,
1665     SpvOpFUnordLessThanEqual = 189,
1666     SpvOpFOrdGreaterThanEqual = 190,
1667     SpvOpFUnordGreaterThanEqual = 191,
1668     SpvOpShiftRightLogical = 194,
1669     SpvOpShiftRightArithmetic = 195,
1670     SpvOpShiftLeftLogical = 196,
1671     SpvOpBitwiseOr = 197,
1672     SpvOpBitwiseXor = 198,
1673     SpvOpBitwiseAnd = 199,
1674     SpvOpNot = 200,
1675     SpvOpBitFieldInsert = 201,
1676     SpvOpBitFieldSExtract = 202,
1677     SpvOpBitFieldUExtract = 203,
1678     SpvOpBitReverse = 204,
1679     SpvOpBitCount = 205,
1680     SpvOpDPdx = 207,
1681     SpvOpDPdy = 208,
1682     SpvOpFwidth = 209,
1683     SpvOpDPdxFine = 210,
1684     SpvOpDPdyFine = 211,
1685     SpvOpFwidthFine = 212,
1686     SpvOpDPdxCoarse = 213,
1687     SpvOpDPdyCoarse = 214,
1688     SpvOpFwidthCoarse = 215,
1689     SpvOpEmitVertex = 218,
1690     SpvOpEndPrimitive = 219,
1691     SpvOpEmitStreamVertex = 220,
1692     SpvOpEndStreamPrimitive = 221,
1693     SpvOpControlBarrier = 224,
1694     SpvOpMemoryBarrier = 225,
1695     SpvOpAtomicLoad = 227,
1696     SpvOpAtomicStore = 228,
1697     SpvOpAtomicExchange = 229,
1698     SpvOpAtomicCompareExchange = 230,
1699     SpvOpAtomicCompareExchangeWeak = 231,
1700     SpvOpAtomicIIncrement = 232,
1701     SpvOpAtomicIDecrement = 233,
1702     SpvOpAtomicIAdd = 234,
1703     SpvOpAtomicISub = 235,
1704     SpvOpAtomicSMin = 236,
1705     SpvOpAtomicUMin = 237,
1706     SpvOpAtomicSMax = 238,
1707     SpvOpAtomicUMax = 239,
1708     SpvOpAtomicAnd = 240,
1709     SpvOpAtomicOr = 241,
1710     SpvOpAtomicXor = 242,
1711     SpvOpPhi = 245,
1712     SpvOpLoopMerge = 246,
1713     SpvOpSelectionMerge = 247,
1714     SpvOpLabel = 248,
1715     SpvOpBranch = 249,
1716     SpvOpBranchConditional = 250,
1717     SpvOpSwitch = 251,
1718     SpvOpKill = 252,
1719     SpvOpReturn = 253,
1720     SpvOpReturnValue = 254,
1721     SpvOpUnreachable = 255,
1722     SpvOpLifetimeStart = 256,
1723     SpvOpLifetimeStop = 257,
1724     SpvOpGroupAsyncCopy = 259,
1725     SpvOpGroupWaitEvents = 260,
1726     SpvOpGroupAll = 261,
1727     SpvOpGroupAny = 262,
1728     SpvOpGroupBroadcast = 263,
1729     SpvOpGroupIAdd = 264,
1730     SpvOpGroupFAdd = 265,
1731     SpvOpGroupFMin = 266,
1732     SpvOpGroupUMin = 267,
1733     SpvOpGroupSMin = 268,
1734     SpvOpGroupFMax = 269,
1735     SpvOpGroupUMax = 270,
1736     SpvOpGroupSMax = 271,
1737     SpvOpReadPipe = 274,
1738     SpvOpWritePipe = 275,
1739     SpvOpReservedReadPipe = 276,
1740     SpvOpReservedWritePipe = 277,
1741     SpvOpReserveReadPipePackets = 278,
1742     SpvOpReserveWritePipePackets = 279,
1743     SpvOpCommitReadPipe = 280,
1744     SpvOpCommitWritePipe = 281,
1745     SpvOpIsValidReserveId = 282,
1746     SpvOpGetNumPipePackets = 283,
1747     SpvOpGetMaxPipePackets = 284,
1748     SpvOpGroupReserveReadPipePackets = 285,
1749     SpvOpGroupReserveWritePipePackets = 286,
1750     SpvOpGroupCommitReadPipe = 287,
1751     SpvOpGroupCommitWritePipe = 288,
1752     SpvOpEnqueueMarker = 291,
1753     SpvOpEnqueueKernel = 292,
1754     SpvOpGetKernelNDrangeSubGroupCount = 293,
1755     SpvOpGetKernelNDrangeMaxSubGroupSize = 294,
1756     SpvOpGetKernelWorkGroupSize = 295,
1757     SpvOpGetKernelPreferredWorkGroupSizeMultiple = 296,
1758     SpvOpRetainEvent = 297,
1759     SpvOpReleaseEvent = 298,
1760     SpvOpCreateUserEvent = 299,
1761     SpvOpIsValidEvent = 300,
1762     SpvOpSetUserEventStatus = 301,
1763     SpvOpCaptureEventProfilingInfo = 302,
1764     SpvOpGetDefaultQueue = 303,
1765     SpvOpBuildNDRange = 304,
1766     SpvOpImageSparseSampleImplicitLod = 305,
1767     SpvOpImageSparseSampleExplicitLod = 306,
1768     SpvOpImageSparseSampleDrefImplicitLod = 307,
1769     SpvOpImageSparseSampleDrefExplicitLod = 308,
1770     SpvOpImageSparseSampleProjImplicitLod = 309,
1771     SpvOpImageSparseSampleProjExplicitLod = 310,
1772     SpvOpImageSparseSampleProjDrefImplicitLod = 311,
1773     SpvOpImageSparseSampleProjDrefExplicitLod = 312,
1774     SpvOpImageSparseFetch = 313,
1775     SpvOpImageSparseGather = 314,
1776     SpvOpImageSparseDrefGather = 315,
1777     SpvOpImageSparseTexelsResident = 316,
1778     SpvOpNoLine = 317,
1779     SpvOpAtomicFlagTestAndSet = 318,
1780     SpvOpAtomicFlagClear = 319,
1781     SpvOpImageSparseRead = 320,
1782     SpvOpSizeOf = 321,
1783     SpvOpTypePipeStorage = 322,
1784     SpvOpConstantPipeStorage = 323,
1785     SpvOpCreatePipeFromPipeStorage = 324,
1786     SpvOpGetKernelLocalSizeForSubgroupCount = 325,
1787     SpvOpGetKernelMaxNumSubgroups = 326,
1788     SpvOpTypeNamedBarrier = 327,
1789     SpvOpNamedBarrierInitialize = 328,
1790     SpvOpMemoryNamedBarrier = 329,
1791     SpvOpModuleProcessed = 330,
1792     SpvOpExecutionModeId = 331,
1793     SpvOpDecorateId = 332,
1794     SpvOpGroupNonUniformElect = 333,
1795     SpvOpGroupNonUniformAll = 334,
1796     SpvOpGroupNonUniformAny = 335,
1797     SpvOpGroupNonUniformAllEqual = 336,
1798     SpvOpGroupNonUniformBroadcast = 337,
1799     SpvOpGroupNonUniformBroadcastFirst = 338,
1800     SpvOpGroupNonUniformBallot = 339,
1801     SpvOpGroupNonUniformInverseBallot = 340,
1802     SpvOpGroupNonUniformBallotBitExtract = 341,
1803     SpvOpGroupNonUniformBallotBitCount = 342,
1804     SpvOpGroupNonUniformBallotFindLSB = 343,
1805     SpvOpGroupNonUniformBallotFindMSB = 344,
1806     SpvOpGroupNonUniformShuffle = 345,
1807     SpvOpGroupNonUniformShuffleXor = 346,
1808     SpvOpGroupNonUniformShuffleUp = 347,
1809     SpvOpGroupNonUniformShuffleDown = 348,
1810     SpvOpGroupNonUniformIAdd = 349,
1811     SpvOpGroupNonUniformFAdd = 350,
1812     SpvOpGroupNonUniformIMul = 351,
1813     SpvOpGroupNonUniformFMul = 352,
1814     SpvOpGroupNonUniformSMin = 353,
1815     SpvOpGroupNonUniformUMin = 354,
1816     SpvOpGroupNonUniformFMin = 355,
1817     SpvOpGroupNonUniformSMax = 356,
1818     SpvOpGroupNonUniformUMax = 357,
1819     SpvOpGroupNonUniformFMax = 358,
1820     SpvOpGroupNonUniformBitwiseAnd = 359,
1821     SpvOpGroupNonUniformBitwiseOr = 360,
1822     SpvOpGroupNonUniformBitwiseXor = 361,
1823     SpvOpGroupNonUniformLogicalAnd = 362,
1824     SpvOpGroupNonUniformLogicalOr = 363,
1825     SpvOpGroupNonUniformLogicalXor = 364,
1826     SpvOpGroupNonUniformQuadBroadcast = 365,
1827     SpvOpGroupNonUniformQuadSwap = 366,
1828     SpvOpCopyLogical = 400,
1829     SpvOpPtrEqual = 401,
1830     SpvOpPtrNotEqual = 402,
1831     SpvOpPtrDiff = 403,
1832     SpvOpColorAttachmentReadEXT = 4160,
1833     SpvOpDepthAttachmentReadEXT = 4161,
1834     SpvOpStencilAttachmentReadEXT = 4162,
1835     SpvOpTerminateInvocation = 4416,
1836     SpvOpTypeUntypedPointerKHR = 4417,
1837     SpvOpUntypedVariableKHR = 4418,
1838     SpvOpUntypedAccessChainKHR = 4419,
1839     SpvOpUntypedInBoundsAccessChainKHR = 4420,
1840     SpvOpSubgroupBallotKHR = 4421,
1841     SpvOpSubgroupFirstInvocationKHR = 4422,
1842     SpvOpUntypedPtrAccessChainKHR = 4423,
1843     SpvOpUntypedInBoundsPtrAccessChainKHR = 4424,
1844     SpvOpUntypedArrayLengthKHR = 4425,
1845     SpvOpUntypedPrefetchKHR = 4426,
1846     SpvOpSubgroupAllKHR = 4428,
1847     SpvOpSubgroupAnyKHR = 4429,
1848     SpvOpSubgroupAllEqualKHR = 4430,
1849     SpvOpGroupNonUniformRotateKHR = 4431,
1850     SpvOpSubgroupReadInvocationKHR = 4432,
1851     SpvOpExtInstWithForwardRefsKHR = 4433,
1852     SpvOpTraceRayKHR = 4445,
1853     SpvOpExecuteCallableKHR = 4446,
1854     SpvOpConvertUToAccelerationStructureKHR = 4447,
1855     SpvOpIgnoreIntersectionKHR = 4448,
1856     SpvOpTerminateRayKHR = 4449,
1857     SpvOpSDot = 4450,
1858     SpvOpSDotKHR = 4450,
1859     SpvOpUDot = 4451,
1860     SpvOpUDotKHR = 4451,
1861     SpvOpSUDot = 4452,
1862     SpvOpSUDotKHR = 4452,
1863     SpvOpSDotAccSat = 4453,
1864     SpvOpSDotAccSatKHR = 4453,
1865     SpvOpUDotAccSat = 4454,
1866     SpvOpUDotAccSatKHR = 4454,
1867     SpvOpSUDotAccSat = 4455,
1868     SpvOpSUDotAccSatKHR = 4455,
1869     SpvOpTypeCooperativeMatrixKHR = 4456,
1870     SpvOpCooperativeMatrixLoadKHR = 4457,
1871     SpvOpCooperativeMatrixStoreKHR = 4458,
1872     SpvOpCooperativeMatrixMulAddKHR = 4459,
1873     SpvOpCooperativeMatrixLengthKHR = 4460,
1874     SpvOpConstantCompositeReplicateEXT = 4461,
1875     SpvOpSpecConstantCompositeReplicateEXT = 4462,
1876     SpvOpCompositeConstructReplicateEXT = 4463,
1877     SpvOpTypeRayQueryKHR = 4472,
1878     SpvOpRayQueryInitializeKHR = 4473,
1879     SpvOpRayQueryTerminateKHR = 4474,
1880     SpvOpRayQueryGenerateIntersectionKHR = 4475,
1881     SpvOpRayQueryConfirmIntersectionKHR = 4476,
1882     SpvOpRayQueryProceedKHR = 4477,
1883     SpvOpRayQueryGetIntersectionTypeKHR = 4479,
1884     SpvOpImageSampleWeightedQCOM = 4480,
1885     SpvOpImageBoxFilterQCOM = 4481,
1886     SpvOpImageBlockMatchSSDQCOM = 4482,
1887     SpvOpImageBlockMatchSADQCOM = 4483,
1888     SpvOpImageBlockMatchWindowSSDQCOM = 4500,
1889     SpvOpImageBlockMatchWindowSADQCOM = 4501,
1890     SpvOpImageBlockMatchGatherSSDQCOM = 4502,
1891     SpvOpImageBlockMatchGatherSADQCOM = 4503,
1892     SpvOpGroupIAddNonUniformAMD = 5000,
1893     SpvOpGroupFAddNonUniformAMD = 5001,
1894     SpvOpGroupFMinNonUniformAMD = 5002,
1895     SpvOpGroupUMinNonUniformAMD = 5003,
1896     SpvOpGroupSMinNonUniformAMD = 5004,
1897     SpvOpGroupFMaxNonUniformAMD = 5005,
1898     SpvOpGroupUMaxNonUniformAMD = 5006,
1899     SpvOpGroupSMaxNonUniformAMD = 5007,
1900     SpvOpFragmentMaskFetchAMD = 5011,
1901     SpvOpFragmentFetchAMD = 5012,
1902     SpvOpReadClockKHR = 5056,
1903     SpvOpAllocateNodePayloadsAMDX = 5074,
1904     SpvOpEnqueueNodePayloadsAMDX = 5075,
1905     SpvOpTypeNodePayloadArrayAMDX = 5076,
1906     SpvOpFinishWritingNodePayloadAMDX = 5078,
1907     SpvOpNodePayloadArrayLengthAMDX = 5090,
1908     SpvOpIsNodePayloadValidAMDX = 5101,
1909     SpvOpConstantStringAMDX = 5103,
1910     SpvOpSpecConstantStringAMDX = 5104,
1911     SpvOpGroupNonUniformQuadAllKHR = 5110,
1912     SpvOpGroupNonUniformQuadAnyKHR = 5111,
1913     SpvOpHitObjectRecordHitMotionNV = 5249,
1914     SpvOpHitObjectRecordHitWithIndexMotionNV = 5250,
1915     SpvOpHitObjectRecordMissMotionNV = 5251,
1916     SpvOpHitObjectGetWorldToObjectNV = 5252,
1917     SpvOpHitObjectGetObjectToWorldNV = 5253,
1918     SpvOpHitObjectGetObjectRayDirectionNV = 5254,
1919     SpvOpHitObjectGetObjectRayOriginNV = 5255,
1920     SpvOpHitObjectTraceRayMotionNV = 5256,
1921     SpvOpHitObjectGetShaderRecordBufferHandleNV = 5257,
1922     SpvOpHitObjectGetShaderBindingTableRecordIndexNV = 5258,
1923     SpvOpHitObjectRecordEmptyNV = 5259,
1924     SpvOpHitObjectTraceRayNV = 5260,
1925     SpvOpHitObjectRecordHitNV = 5261,
1926     SpvOpHitObjectRecordHitWithIndexNV = 5262,
1927     SpvOpHitObjectRecordMissNV = 5263,
1928     SpvOpHitObjectExecuteShaderNV = 5264,
1929     SpvOpHitObjectGetCurrentTimeNV = 5265,
1930     SpvOpHitObjectGetAttributesNV = 5266,
1931     SpvOpHitObjectGetHitKindNV = 5267,
1932     SpvOpHitObjectGetPrimitiveIndexNV = 5268,
1933     SpvOpHitObjectGetGeometryIndexNV = 5269,
1934     SpvOpHitObjectGetInstanceIdNV = 5270,
1935     SpvOpHitObjectGetInstanceCustomIndexNV = 5271,
1936     SpvOpHitObjectGetWorldRayDirectionNV = 5272,
1937     SpvOpHitObjectGetWorldRayOriginNV = 5273,
1938     SpvOpHitObjectGetRayTMaxNV = 5274,
1939     SpvOpHitObjectGetRayTMinNV = 5275,
1940     SpvOpHitObjectIsEmptyNV = 5276,
1941     SpvOpHitObjectIsHitNV = 5277,
1942     SpvOpHitObjectIsMissNV = 5278,
1943     SpvOpReorderThreadWithHitObjectNV = 5279,
1944     SpvOpReorderThreadWithHintNV = 5280,
1945     SpvOpTypeHitObjectNV = 5281,
1946     SpvOpImageSampleFootprintNV = 5283,
1947     SpvOpCooperativeMatrixConvertNV = 5293,
1948     SpvOpEmitMeshTasksEXT = 5294,
1949     SpvOpSetMeshOutputsEXT = 5295,
1950     SpvOpGroupNonUniformPartitionNV = 5296,
1951     SpvOpWritePackedPrimitiveIndices4x8NV = 5299,
1952     SpvOpFetchMicroTriangleVertexPositionNV = 5300,
1953     SpvOpFetchMicroTriangleVertexBarycentricNV = 5301,
1954     SpvOpReportIntersectionKHR = 5334,
1955     SpvOpReportIntersectionNV = 5334,
1956     SpvOpIgnoreIntersectionNV = 5335,
1957     SpvOpTerminateRayNV = 5336,
1958     SpvOpTraceNV = 5337,
1959     SpvOpTraceMotionNV = 5338,
1960     SpvOpTraceRayMotionNV = 5339,
1961     SpvOpRayQueryGetIntersectionTriangleVertexPositionsKHR = 5340,
1962     SpvOpTypeAccelerationStructureKHR = 5341,
1963     SpvOpTypeAccelerationStructureNV = 5341,
1964     SpvOpExecuteCallableNV = 5344,
1965     SpvOpTypeCooperativeMatrixNV = 5358,
1966     SpvOpCooperativeMatrixLoadNV = 5359,
1967     SpvOpCooperativeMatrixStoreNV = 5360,
1968     SpvOpCooperativeMatrixMulAddNV = 5361,
1969     SpvOpCooperativeMatrixLengthNV = 5362,
1970     SpvOpBeginInvocationInterlockEXT = 5364,
1971     SpvOpEndInvocationInterlockEXT = 5365,
1972     SpvOpCooperativeMatrixReduceNV = 5366,
1973     SpvOpCooperativeMatrixLoadTensorNV = 5367,
1974     SpvOpCooperativeMatrixStoreTensorNV = 5368,
1975     SpvOpCooperativeMatrixPerElementOpNV = 5369,
1976     SpvOpTypeTensorLayoutNV = 5370,
1977     SpvOpTypeTensorViewNV = 5371,
1978     SpvOpCreateTensorLayoutNV = 5372,
1979     SpvOpTensorLayoutSetDimensionNV = 5373,
1980     SpvOpTensorLayoutSetStrideNV = 5374,
1981     SpvOpTensorLayoutSliceNV = 5375,
1982     SpvOpTensorLayoutSetClampValueNV = 5376,
1983     SpvOpCreateTensorViewNV = 5377,
1984     SpvOpTensorViewSetDimensionNV = 5378,
1985     SpvOpTensorViewSetStrideNV = 5379,
1986     SpvOpDemoteToHelperInvocation = 5380,
1987     SpvOpDemoteToHelperInvocationEXT = 5380,
1988     SpvOpIsHelperInvocationEXT = 5381,
1989     SpvOpTensorViewSetClipNV = 5382,
1990     SpvOpTensorLayoutSetBlockSizeNV = 5384,
1991     SpvOpCooperativeMatrixTransposeNV = 5390,
1992     SpvOpConvertUToImageNV = 5391,
1993     SpvOpConvertUToSamplerNV = 5392,
1994     SpvOpConvertImageToUNV = 5393,
1995     SpvOpConvertSamplerToUNV = 5394,
1996     SpvOpConvertUToSampledImageNV = 5395,
1997     SpvOpConvertSampledImageToUNV = 5396,
1998     SpvOpSamplerImageAddressingModeNV = 5397,
1999     SpvOpRawAccessChainNV = 5398,
2000     SpvOpSubgroupShuffleINTEL = 5571,
2001     SpvOpSubgroupShuffleDownINTEL = 5572,
2002     SpvOpSubgroupShuffleUpINTEL = 5573,
2003     SpvOpSubgroupShuffleXorINTEL = 5574,
2004     SpvOpSubgroupBlockReadINTEL = 5575,
2005     SpvOpSubgroupBlockWriteINTEL = 5576,
2006     SpvOpSubgroupImageBlockReadINTEL = 5577,
2007     SpvOpSubgroupImageBlockWriteINTEL = 5578,
2008     SpvOpSubgroupImageMediaBlockReadINTEL = 5580,
2009     SpvOpSubgroupImageMediaBlockWriteINTEL = 5581,
2010     SpvOpUCountLeadingZerosINTEL = 5585,
2011     SpvOpUCountTrailingZerosINTEL = 5586,
2012     SpvOpAbsISubINTEL = 5587,
2013     SpvOpAbsUSubINTEL = 5588,
2014     SpvOpIAddSatINTEL = 5589,
2015     SpvOpUAddSatINTEL = 5590,
2016     SpvOpIAverageINTEL = 5591,
2017     SpvOpUAverageINTEL = 5592,
2018     SpvOpIAverageRoundedINTEL = 5593,
2019     SpvOpUAverageRoundedINTEL = 5594,
2020     SpvOpISubSatINTEL = 5595,
2021     SpvOpUSubSatINTEL = 5596,
2022     SpvOpIMul32x16INTEL = 5597,
2023     SpvOpUMul32x16INTEL = 5598,
2024     SpvOpConstantFunctionPointerINTEL = 5600,
2025     SpvOpFunctionPointerCallINTEL = 5601,
2026     SpvOpAsmTargetINTEL = 5609,
2027     SpvOpAsmINTEL = 5610,
2028     SpvOpAsmCallINTEL = 5611,
2029     SpvOpAtomicFMinEXT = 5614,
2030     SpvOpAtomicFMaxEXT = 5615,
2031     SpvOpAssumeTrueKHR = 5630,
2032     SpvOpExpectKHR = 5631,
2033     SpvOpDecorateString = 5632,
2034     SpvOpDecorateStringGOOGLE = 5632,
2035     SpvOpMemberDecorateString = 5633,
2036     SpvOpMemberDecorateStringGOOGLE = 5633,
2037     SpvOpVmeImageINTEL = 5699,
2038     SpvOpTypeVmeImageINTEL = 5700,
2039     SpvOpTypeAvcImePayloadINTEL = 5701,
2040     SpvOpTypeAvcRefPayloadINTEL = 5702,
2041     SpvOpTypeAvcSicPayloadINTEL = 5703,
2042     SpvOpTypeAvcMcePayloadINTEL = 5704,
2043     SpvOpTypeAvcMceResultINTEL = 5705,
2044     SpvOpTypeAvcImeResultINTEL = 5706,
2045     SpvOpTypeAvcImeResultSingleReferenceStreamoutINTEL = 5707,
2046     SpvOpTypeAvcImeResultDualReferenceStreamoutINTEL = 5708,
2047     SpvOpTypeAvcImeSingleReferenceStreaminINTEL = 5709,
2048     SpvOpTypeAvcImeDualReferenceStreaminINTEL = 5710,
2049     SpvOpTypeAvcRefResultINTEL = 5711,
2050     SpvOpTypeAvcSicResultINTEL = 5712,
2051     SpvOpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL = 5713,
2052     SpvOpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL = 5714,
2053     SpvOpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL = 5715,
2054     SpvOpSubgroupAvcMceSetInterShapePenaltyINTEL = 5716,
2055     SpvOpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL = 5717,
2056     SpvOpSubgroupAvcMceSetInterDirectionPenaltyINTEL = 5718,
2057     SpvOpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL = 5719,
2058     SpvOpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL = 5720,
2059     SpvOpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL = 5721,
2060     SpvOpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL = 5722,
2061     SpvOpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL = 5723,
2062     SpvOpSubgroupAvcMceSetMotionVectorCostFunctionINTEL = 5724,
2063     SpvOpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL = 5725,
2064     SpvOpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL = 5726,
2065     SpvOpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL = 5727,
2066     SpvOpSubgroupAvcMceSetAcOnlyHaarINTEL = 5728,
2067     SpvOpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL = 5729,
2068     SpvOpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL = 5730,
2069     SpvOpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL = 5731,
2070     SpvOpSubgroupAvcMceConvertToImePayloadINTEL = 5732,
2071     SpvOpSubgroupAvcMceConvertToImeResultINTEL = 5733,
2072     SpvOpSubgroupAvcMceConvertToRefPayloadINTEL = 5734,
2073     SpvOpSubgroupAvcMceConvertToRefResultINTEL = 5735,
2074     SpvOpSubgroupAvcMceConvertToSicPayloadINTEL = 5736,
2075     SpvOpSubgroupAvcMceConvertToSicResultINTEL = 5737,
2076     SpvOpSubgroupAvcMceGetMotionVectorsINTEL = 5738,
2077     SpvOpSubgroupAvcMceGetInterDistortionsINTEL = 5739,
2078     SpvOpSubgroupAvcMceGetBestInterDistortionsINTEL = 5740,
2079     SpvOpSubgroupAvcMceGetInterMajorShapeINTEL = 5741,
2080     SpvOpSubgroupAvcMceGetInterMinorShapeINTEL = 5742,
2081     SpvOpSubgroupAvcMceGetInterDirectionsINTEL = 5743,
2082     SpvOpSubgroupAvcMceGetInterMotionVectorCountINTEL = 5744,
2083     SpvOpSubgroupAvcMceGetInterReferenceIdsINTEL = 5745,
2084     SpvOpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL = 5746,
2085     SpvOpSubgroupAvcImeInitializeINTEL = 5747,
2086     SpvOpSubgroupAvcImeSetSingleReferenceINTEL = 5748,
2087     SpvOpSubgroupAvcImeSetDualReferenceINTEL = 5749,
2088     SpvOpSubgroupAvcImeRefWindowSizeINTEL = 5750,
2089     SpvOpSubgroupAvcImeAdjustRefOffsetINTEL = 5751,
2090     SpvOpSubgroupAvcImeConvertToMcePayloadINTEL = 5752,
2091     SpvOpSubgroupAvcImeSetMaxMotionVectorCountINTEL = 5753,
2092     SpvOpSubgroupAvcImeSetUnidirectionalMixDisableINTEL = 5754,
2093     SpvOpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL = 5755,
2094     SpvOpSubgroupAvcImeSetWeightedSadINTEL = 5756,
2095     SpvOpSubgroupAvcImeEvaluateWithSingleReferenceINTEL = 5757,
2096     SpvOpSubgroupAvcImeEvaluateWithDualReferenceINTEL = 5758,
2097     SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL = 5759,
2098     SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL = 5760,
2099     SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL = 5761,
2100     SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL = 5762,
2101     SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL = 5763,
2102     SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL = 5764,
2103     SpvOpSubgroupAvcImeConvertToMceResultINTEL = 5765,
2104     SpvOpSubgroupAvcImeGetSingleReferenceStreaminINTEL = 5766,
2105     SpvOpSubgroupAvcImeGetDualReferenceStreaminINTEL = 5767,
2106     SpvOpSubgroupAvcImeStripSingleReferenceStreamoutINTEL = 5768,
2107     SpvOpSubgroupAvcImeStripDualReferenceStreamoutINTEL = 5769,
2108     SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL = 5770,
2109     SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL = 5771,
2110     SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL = 5772,
2111     SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL = 5773,
2112     SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL = 5774,
2113     SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL = 5775,
2114     SpvOpSubgroupAvcImeGetBorderReachedINTEL = 5776,
2115     SpvOpSubgroupAvcImeGetTruncatedSearchIndicationINTEL = 5777,
2116     SpvOpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL = 5778,
2117     SpvOpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL = 5779,
2118     SpvOpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL = 5780,
2119     SpvOpSubgroupAvcFmeInitializeINTEL = 5781,
2120     SpvOpSubgroupAvcBmeInitializeINTEL = 5782,
2121     SpvOpSubgroupAvcRefConvertToMcePayloadINTEL = 5783,
2122     SpvOpSubgroupAvcRefSetBidirectionalMixDisableINTEL = 5784,
2123     SpvOpSubgroupAvcRefSetBilinearFilterEnableINTEL = 5785,
2124     SpvOpSubgroupAvcRefEvaluateWithSingleReferenceINTEL = 5786,
2125     SpvOpSubgroupAvcRefEvaluateWithDualReferenceINTEL = 5787,
2126     SpvOpSubgroupAvcRefEvaluateWithMultiReferenceINTEL = 5788,
2127     SpvOpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL = 5789,
2128     SpvOpSubgroupAvcRefConvertToMceResultINTEL = 5790,
2129     SpvOpSubgroupAvcSicInitializeINTEL = 5791,
2130     SpvOpSubgroupAvcSicConfigureSkcINTEL = 5792,
2131     SpvOpSubgroupAvcSicConfigureIpeLumaINTEL = 5793,
2132     SpvOpSubgroupAvcSicConfigureIpeLumaChromaINTEL = 5794,
2133     SpvOpSubgroupAvcSicGetMotionVectorMaskINTEL = 5795,
2134     SpvOpSubgroupAvcSicConvertToMcePayloadINTEL = 5796,
2135     SpvOpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL = 5797,
2136     SpvOpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL = 5798,
2137     SpvOpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL = 5799,
2138     SpvOpSubgroupAvcSicSetBilinearFilterEnableINTEL = 5800,
2139     SpvOpSubgroupAvcSicSetSkcForwardTransformEnableINTEL = 5801,
2140     SpvOpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL = 5802,
2141     SpvOpSubgroupAvcSicEvaluateIpeINTEL = 5803,
2142     SpvOpSubgroupAvcSicEvaluateWithSingleReferenceINTEL = 5804,
2143     SpvOpSubgroupAvcSicEvaluateWithDualReferenceINTEL = 5805,
2144     SpvOpSubgroupAvcSicEvaluateWithMultiReferenceINTEL = 5806,
2145     SpvOpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL = 5807,
2146     SpvOpSubgroupAvcSicConvertToMceResultINTEL = 5808,
2147     SpvOpSubgroupAvcSicGetIpeLumaShapeINTEL = 5809,
2148     SpvOpSubgroupAvcSicGetBestIpeLumaDistortionINTEL = 5810,
2149     SpvOpSubgroupAvcSicGetBestIpeChromaDistortionINTEL = 5811,
2150     SpvOpSubgroupAvcSicGetPackedIpeLumaModesINTEL = 5812,
2151     SpvOpSubgroupAvcSicGetIpeChromaModeINTEL = 5813,
2152     SpvOpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL = 5814,
2153     SpvOpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL = 5815,
2154     SpvOpSubgroupAvcSicGetInterRawSadsINTEL = 5816,
2155     SpvOpVariableLengthArrayINTEL = 5818,
2156     SpvOpSaveMemoryINTEL = 5819,
2157     SpvOpRestoreMemoryINTEL = 5820,
2158     SpvOpArbitraryFloatSinCosPiINTEL = 5840,
2159     SpvOpArbitraryFloatCastINTEL = 5841,
2160     SpvOpArbitraryFloatCastFromIntINTEL = 5842,
2161     SpvOpArbitraryFloatCastToIntINTEL = 5843,
2162     SpvOpArbitraryFloatAddINTEL = 5846,
2163     SpvOpArbitraryFloatSubINTEL = 5847,
2164     SpvOpArbitraryFloatMulINTEL = 5848,
2165     SpvOpArbitraryFloatDivINTEL = 5849,
2166     SpvOpArbitraryFloatGTINTEL = 5850,
2167     SpvOpArbitraryFloatGEINTEL = 5851,
2168     SpvOpArbitraryFloatLTINTEL = 5852,
2169     SpvOpArbitraryFloatLEINTEL = 5853,
2170     SpvOpArbitraryFloatEQINTEL = 5854,
2171     SpvOpArbitraryFloatRecipINTEL = 5855,
2172     SpvOpArbitraryFloatRSqrtINTEL = 5856,
2173     SpvOpArbitraryFloatCbrtINTEL = 5857,
2174     SpvOpArbitraryFloatHypotINTEL = 5858,
2175     SpvOpArbitraryFloatSqrtINTEL = 5859,
2176     SpvOpArbitraryFloatLogINTEL = 5860,
2177     SpvOpArbitraryFloatLog2INTEL = 5861,
2178     SpvOpArbitraryFloatLog10INTEL = 5862,
2179     SpvOpArbitraryFloatLog1pINTEL = 5863,
2180     SpvOpArbitraryFloatExpINTEL = 5864,
2181     SpvOpArbitraryFloatExp2INTEL = 5865,
2182     SpvOpArbitraryFloatExp10INTEL = 5866,
2183     SpvOpArbitraryFloatExpm1INTEL = 5867,
2184     SpvOpArbitraryFloatSinINTEL = 5868,
2185     SpvOpArbitraryFloatCosINTEL = 5869,
2186     SpvOpArbitraryFloatSinCosINTEL = 5870,
2187     SpvOpArbitraryFloatSinPiINTEL = 5871,
2188     SpvOpArbitraryFloatCosPiINTEL = 5872,
2189     SpvOpArbitraryFloatASinINTEL = 5873,
2190     SpvOpArbitraryFloatASinPiINTEL = 5874,
2191     SpvOpArbitraryFloatACosINTEL = 5875,
2192     SpvOpArbitraryFloatACosPiINTEL = 5876,
2193     SpvOpArbitraryFloatATanINTEL = 5877,
2194     SpvOpArbitraryFloatATanPiINTEL = 5878,
2195     SpvOpArbitraryFloatATan2INTEL = 5879,
2196     SpvOpArbitraryFloatPowINTEL = 5880,
2197     SpvOpArbitraryFloatPowRINTEL = 5881,
2198     SpvOpArbitraryFloatPowNINTEL = 5882,
2199     SpvOpLoopControlINTEL = 5887,
2200     SpvOpAliasDomainDeclINTEL = 5911,
2201     SpvOpAliasScopeDeclINTEL = 5912,
2202     SpvOpAliasScopeListDeclINTEL = 5913,
2203     SpvOpFixedSqrtINTEL = 5923,
2204     SpvOpFixedRecipINTEL = 5924,
2205     SpvOpFixedRsqrtINTEL = 5925,
2206     SpvOpFixedSinINTEL = 5926,
2207     SpvOpFixedCosINTEL = 5927,
2208     SpvOpFixedSinCosINTEL = 5928,
2209     SpvOpFixedSinPiINTEL = 5929,
2210     SpvOpFixedCosPiINTEL = 5930,
2211     SpvOpFixedSinCosPiINTEL = 5931,
2212     SpvOpFixedLogINTEL = 5932,
2213     SpvOpFixedExpINTEL = 5933,
2214     SpvOpPtrCastToCrossWorkgroupINTEL = 5934,
2215     SpvOpCrossWorkgroupCastToPtrINTEL = 5938,
2216     SpvOpReadPipeBlockingINTEL = 5946,
2217     SpvOpWritePipeBlockingINTEL = 5947,
2218     SpvOpFPGARegINTEL = 5949,
2219     SpvOpRayQueryGetRayTMinKHR = 6016,
2220     SpvOpRayQueryGetRayFlagsKHR = 6017,
2221     SpvOpRayQueryGetIntersectionTKHR = 6018,
2222     SpvOpRayQueryGetIntersectionInstanceCustomIndexKHR = 6019,
2223     SpvOpRayQueryGetIntersectionInstanceIdKHR = 6020,
2224     SpvOpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR = 6021,
2225     SpvOpRayQueryGetIntersectionGeometryIndexKHR = 6022,
2226     SpvOpRayQueryGetIntersectionPrimitiveIndexKHR = 6023,
2227     SpvOpRayQueryGetIntersectionBarycentricsKHR = 6024,
2228     SpvOpRayQueryGetIntersectionFrontFaceKHR = 6025,
2229     SpvOpRayQueryGetIntersectionCandidateAABBOpaqueKHR = 6026,
2230     SpvOpRayQueryGetIntersectionObjectRayDirectionKHR = 6027,
2231     SpvOpRayQueryGetIntersectionObjectRayOriginKHR = 6028,
2232     SpvOpRayQueryGetWorldRayDirectionKHR = 6029,
2233     SpvOpRayQueryGetWorldRayOriginKHR = 6030,
2234     SpvOpRayQueryGetIntersectionObjectToWorldKHR = 6031,
2235     SpvOpRayQueryGetIntersectionWorldToObjectKHR = 6032,
2236     SpvOpAtomicFAddEXT = 6035,
2237     SpvOpTypeBufferSurfaceINTEL = 6086,
2238     SpvOpTypeStructContinuedINTEL = 6090,
2239     SpvOpConstantCompositeContinuedINTEL = 6091,
2240     SpvOpSpecConstantCompositeContinuedINTEL = 6092,
2241     SpvOpCompositeConstructContinuedINTEL = 6096,
2242     SpvOpConvertFToBF16INTEL = 6116,
2243     SpvOpConvertBF16ToFINTEL = 6117,
2244     SpvOpControlBarrierArriveINTEL = 6142,
2245     SpvOpControlBarrierWaitINTEL = 6143,
2246     SpvOpArithmeticFenceEXT = 6145,
2247     SpvOpSubgroupBlockPrefetchINTEL = 6221,
2248     SpvOpGroupIMulKHR = 6401,
2249     SpvOpGroupFMulKHR = 6402,
2250     SpvOpGroupBitwiseAndKHR = 6403,
2251     SpvOpGroupBitwiseOrKHR = 6404,
2252     SpvOpGroupBitwiseXorKHR = 6405,
2253     SpvOpGroupLogicalAndKHR = 6406,
2254     SpvOpGroupLogicalOrKHR = 6407,
2255     SpvOpGroupLogicalXorKHR = 6408,
2256     SpvOpMaskedGatherINTEL = 6428,
2257     SpvOpMaskedScatterINTEL = 6429,
2258     SpvOpMax = 0x7fffffff,
2259 } SpvOp;
2260 
2261 #ifdef SPV_ENABLE_UTILITY_CODE
2262 #ifndef __cplusplus
2263 #include <stdbool.h>
2264 #endif
SpvHasResultAndType(SpvOp opcode,bool * hasResult,bool * hasResultType)2265 inline void SpvHasResultAndType(SpvOp opcode, bool *hasResult, bool *hasResultType) {
2266     *hasResult = *hasResultType = false;
2267     switch (opcode) {
2268     default: /* unknown opcode */ break;
2269     case SpvOpNop: *hasResult = false; *hasResultType = false; break;
2270     case SpvOpUndef: *hasResult = true; *hasResultType = true; break;
2271     case SpvOpSourceContinued: *hasResult = false; *hasResultType = false; break;
2272     case SpvOpSource: *hasResult = false; *hasResultType = false; break;
2273     case SpvOpSourceExtension: *hasResult = false; *hasResultType = false; break;
2274     case SpvOpName: *hasResult = false; *hasResultType = false; break;
2275     case SpvOpMemberName: *hasResult = false; *hasResultType = false; break;
2276     case SpvOpString: *hasResult = true; *hasResultType = false; break;
2277     case SpvOpLine: *hasResult = false; *hasResultType = false; break;
2278     case SpvOpExtension: *hasResult = false; *hasResultType = false; break;
2279     case SpvOpExtInstImport: *hasResult = true; *hasResultType = false; break;
2280     case SpvOpExtInst: *hasResult = true; *hasResultType = true; break;
2281     case SpvOpMemoryModel: *hasResult = false; *hasResultType = false; break;
2282     case SpvOpEntryPoint: *hasResult = false; *hasResultType = false; break;
2283     case SpvOpExecutionMode: *hasResult = false; *hasResultType = false; break;
2284     case SpvOpCapability: *hasResult = false; *hasResultType = false; break;
2285     case SpvOpTypeVoid: *hasResult = true; *hasResultType = false; break;
2286     case SpvOpTypeBool: *hasResult = true; *hasResultType = false; break;
2287     case SpvOpTypeInt: *hasResult = true; *hasResultType = false; break;
2288     case SpvOpTypeFloat: *hasResult = true; *hasResultType = false; break;
2289     case SpvOpTypeVector: *hasResult = true; *hasResultType = false; break;
2290     case SpvOpTypeMatrix: *hasResult = true; *hasResultType = false; break;
2291     case SpvOpTypeImage: *hasResult = true; *hasResultType = false; break;
2292     case SpvOpTypeSampler: *hasResult = true; *hasResultType = false; break;
2293     case SpvOpTypeSampledImage: *hasResult = true; *hasResultType = false; break;
2294     case SpvOpTypeArray: *hasResult = true; *hasResultType = false; break;
2295     case SpvOpTypeRuntimeArray: *hasResult = true; *hasResultType = false; break;
2296     case SpvOpTypeStruct: *hasResult = true; *hasResultType = false; break;
2297     case SpvOpTypeOpaque: *hasResult = true; *hasResultType = false; break;
2298     case SpvOpTypePointer: *hasResult = true; *hasResultType = false; break;
2299     case SpvOpTypeFunction: *hasResult = true; *hasResultType = false; break;
2300     case SpvOpTypeEvent: *hasResult = true; *hasResultType = false; break;
2301     case SpvOpTypeDeviceEvent: *hasResult = true; *hasResultType = false; break;
2302     case SpvOpTypeReserveId: *hasResult = true; *hasResultType = false; break;
2303     case SpvOpTypeQueue: *hasResult = true; *hasResultType = false; break;
2304     case SpvOpTypePipe: *hasResult = true; *hasResultType = false; break;
2305     case SpvOpTypeForwardPointer: *hasResult = false; *hasResultType = false; break;
2306     case SpvOpConstantTrue: *hasResult = true; *hasResultType = true; break;
2307     case SpvOpConstantFalse: *hasResult = true; *hasResultType = true; break;
2308     case SpvOpConstant: *hasResult = true; *hasResultType = true; break;
2309     case SpvOpConstantComposite: *hasResult = true; *hasResultType = true; break;
2310     case SpvOpConstantSampler: *hasResult = true; *hasResultType = true; break;
2311     case SpvOpConstantNull: *hasResult = true; *hasResultType = true; break;
2312     case SpvOpSpecConstantTrue: *hasResult = true; *hasResultType = true; break;
2313     case SpvOpSpecConstantFalse: *hasResult = true; *hasResultType = true; break;
2314     case SpvOpSpecConstant: *hasResult = true; *hasResultType = true; break;
2315     case SpvOpSpecConstantComposite: *hasResult = true; *hasResultType = true; break;
2316     case SpvOpSpecConstantOp: *hasResult = true; *hasResultType = true; break;
2317     case SpvOpFunction: *hasResult = true; *hasResultType = true; break;
2318     case SpvOpFunctionParameter: *hasResult = true; *hasResultType = true; break;
2319     case SpvOpFunctionEnd: *hasResult = false; *hasResultType = false; break;
2320     case SpvOpFunctionCall: *hasResult = true; *hasResultType = true; break;
2321     case SpvOpVariable: *hasResult = true; *hasResultType = true; break;
2322     case SpvOpImageTexelPointer: *hasResult = true; *hasResultType = true; break;
2323     case SpvOpLoad: *hasResult = true; *hasResultType = true; break;
2324     case SpvOpStore: *hasResult = false; *hasResultType = false; break;
2325     case SpvOpCopyMemory: *hasResult = false; *hasResultType = false; break;
2326     case SpvOpCopyMemorySized: *hasResult = false; *hasResultType = false; break;
2327     case SpvOpAccessChain: *hasResult = true; *hasResultType = true; break;
2328     case SpvOpInBoundsAccessChain: *hasResult = true; *hasResultType = true; break;
2329     case SpvOpPtrAccessChain: *hasResult = true; *hasResultType = true; break;
2330     case SpvOpArrayLength: *hasResult = true; *hasResultType = true; break;
2331     case SpvOpGenericPtrMemSemantics: *hasResult = true; *hasResultType = true; break;
2332     case SpvOpInBoundsPtrAccessChain: *hasResult = true; *hasResultType = true; break;
2333     case SpvOpDecorate: *hasResult = false; *hasResultType = false; break;
2334     case SpvOpMemberDecorate: *hasResult = false; *hasResultType = false; break;
2335     case SpvOpDecorationGroup: *hasResult = true; *hasResultType = false; break;
2336     case SpvOpGroupDecorate: *hasResult = false; *hasResultType = false; break;
2337     case SpvOpGroupMemberDecorate: *hasResult = false; *hasResultType = false; break;
2338     case SpvOpVectorExtractDynamic: *hasResult = true; *hasResultType = true; break;
2339     case SpvOpVectorInsertDynamic: *hasResult = true; *hasResultType = true; break;
2340     case SpvOpVectorShuffle: *hasResult = true; *hasResultType = true; break;
2341     case SpvOpCompositeConstruct: *hasResult = true; *hasResultType = true; break;
2342     case SpvOpCompositeExtract: *hasResult = true; *hasResultType = true; break;
2343     case SpvOpCompositeInsert: *hasResult = true; *hasResultType = true; break;
2344     case SpvOpCopyObject: *hasResult = true; *hasResultType = true; break;
2345     case SpvOpTranspose: *hasResult = true; *hasResultType = true; break;
2346     case SpvOpSampledImage: *hasResult = true; *hasResultType = true; break;
2347     case SpvOpImageSampleImplicitLod: *hasResult = true; *hasResultType = true; break;
2348     case SpvOpImageSampleExplicitLod: *hasResult = true; *hasResultType = true; break;
2349     case SpvOpImageSampleDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
2350     case SpvOpImageSampleDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
2351     case SpvOpImageSampleProjImplicitLod: *hasResult = true; *hasResultType = true; break;
2352     case SpvOpImageSampleProjExplicitLod: *hasResult = true; *hasResultType = true; break;
2353     case SpvOpImageSampleProjDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
2354     case SpvOpImageSampleProjDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
2355     case SpvOpImageFetch: *hasResult = true; *hasResultType = true; break;
2356     case SpvOpImageGather: *hasResult = true; *hasResultType = true; break;
2357     case SpvOpImageDrefGather: *hasResult = true; *hasResultType = true; break;
2358     case SpvOpImageRead: *hasResult = true; *hasResultType = true; break;
2359     case SpvOpImageWrite: *hasResult = false; *hasResultType = false; break;
2360     case SpvOpImage: *hasResult = true; *hasResultType = true; break;
2361     case SpvOpImageQueryFormat: *hasResult = true; *hasResultType = true; break;
2362     case SpvOpImageQueryOrder: *hasResult = true; *hasResultType = true; break;
2363     case SpvOpImageQuerySizeLod: *hasResult = true; *hasResultType = true; break;
2364     case SpvOpImageQuerySize: *hasResult = true; *hasResultType = true; break;
2365     case SpvOpImageQueryLod: *hasResult = true; *hasResultType = true; break;
2366     case SpvOpImageQueryLevels: *hasResult = true; *hasResultType = true; break;
2367     case SpvOpImageQuerySamples: *hasResult = true; *hasResultType = true; break;
2368     case SpvOpConvertFToU: *hasResult = true; *hasResultType = true; break;
2369     case SpvOpConvertFToS: *hasResult = true; *hasResultType = true; break;
2370     case SpvOpConvertSToF: *hasResult = true; *hasResultType = true; break;
2371     case SpvOpConvertUToF: *hasResult = true; *hasResultType = true; break;
2372     case SpvOpUConvert: *hasResult = true; *hasResultType = true; break;
2373     case SpvOpSConvert: *hasResult = true; *hasResultType = true; break;
2374     case SpvOpFConvert: *hasResult = true; *hasResultType = true; break;
2375     case SpvOpQuantizeToF16: *hasResult = true; *hasResultType = true; break;
2376     case SpvOpConvertPtrToU: *hasResult = true; *hasResultType = true; break;
2377     case SpvOpSatConvertSToU: *hasResult = true; *hasResultType = true; break;
2378     case SpvOpSatConvertUToS: *hasResult = true; *hasResultType = true; break;
2379     case SpvOpConvertUToPtr: *hasResult = true; *hasResultType = true; break;
2380     case SpvOpPtrCastToGeneric: *hasResult = true; *hasResultType = true; break;
2381     case SpvOpGenericCastToPtr: *hasResult = true; *hasResultType = true; break;
2382     case SpvOpGenericCastToPtrExplicit: *hasResult = true; *hasResultType = true; break;
2383     case SpvOpBitcast: *hasResult = true; *hasResultType = true; break;
2384     case SpvOpSNegate: *hasResult = true; *hasResultType = true; break;
2385     case SpvOpFNegate: *hasResult = true; *hasResultType = true; break;
2386     case SpvOpIAdd: *hasResult = true; *hasResultType = true; break;
2387     case SpvOpFAdd: *hasResult = true; *hasResultType = true; break;
2388     case SpvOpISub: *hasResult = true; *hasResultType = true; break;
2389     case SpvOpFSub: *hasResult = true; *hasResultType = true; break;
2390     case SpvOpIMul: *hasResult = true; *hasResultType = true; break;
2391     case SpvOpFMul: *hasResult = true; *hasResultType = true; break;
2392     case SpvOpUDiv: *hasResult = true; *hasResultType = true; break;
2393     case SpvOpSDiv: *hasResult = true; *hasResultType = true; break;
2394     case SpvOpFDiv: *hasResult = true; *hasResultType = true; break;
2395     case SpvOpUMod: *hasResult = true; *hasResultType = true; break;
2396     case SpvOpSRem: *hasResult = true; *hasResultType = true; break;
2397     case SpvOpSMod: *hasResult = true; *hasResultType = true; break;
2398     case SpvOpFRem: *hasResult = true; *hasResultType = true; break;
2399     case SpvOpFMod: *hasResult = true; *hasResultType = true; break;
2400     case SpvOpVectorTimesScalar: *hasResult = true; *hasResultType = true; break;
2401     case SpvOpMatrixTimesScalar: *hasResult = true; *hasResultType = true; break;
2402     case SpvOpVectorTimesMatrix: *hasResult = true; *hasResultType = true; break;
2403     case SpvOpMatrixTimesVector: *hasResult = true; *hasResultType = true; break;
2404     case SpvOpMatrixTimesMatrix: *hasResult = true; *hasResultType = true; break;
2405     case SpvOpOuterProduct: *hasResult = true; *hasResultType = true; break;
2406     case SpvOpDot: *hasResult = true; *hasResultType = true; break;
2407     case SpvOpIAddCarry: *hasResult = true; *hasResultType = true; break;
2408     case SpvOpISubBorrow: *hasResult = true; *hasResultType = true; break;
2409     case SpvOpUMulExtended: *hasResult = true; *hasResultType = true; break;
2410     case SpvOpSMulExtended: *hasResult = true; *hasResultType = true; break;
2411     case SpvOpAny: *hasResult = true; *hasResultType = true; break;
2412     case SpvOpAll: *hasResult = true; *hasResultType = true; break;
2413     case SpvOpIsNan: *hasResult = true; *hasResultType = true; break;
2414     case SpvOpIsInf: *hasResult = true; *hasResultType = true; break;
2415     case SpvOpIsFinite: *hasResult = true; *hasResultType = true; break;
2416     case SpvOpIsNormal: *hasResult = true; *hasResultType = true; break;
2417     case SpvOpSignBitSet: *hasResult = true; *hasResultType = true; break;
2418     case SpvOpLessOrGreater: *hasResult = true; *hasResultType = true; break;
2419     case SpvOpOrdered: *hasResult = true; *hasResultType = true; break;
2420     case SpvOpUnordered: *hasResult = true; *hasResultType = true; break;
2421     case SpvOpLogicalEqual: *hasResult = true; *hasResultType = true; break;
2422     case SpvOpLogicalNotEqual: *hasResult = true; *hasResultType = true; break;
2423     case SpvOpLogicalOr: *hasResult = true; *hasResultType = true; break;
2424     case SpvOpLogicalAnd: *hasResult = true; *hasResultType = true; break;
2425     case SpvOpLogicalNot: *hasResult = true; *hasResultType = true; break;
2426     case SpvOpSelect: *hasResult = true; *hasResultType = true; break;
2427     case SpvOpIEqual: *hasResult = true; *hasResultType = true; break;
2428     case SpvOpINotEqual: *hasResult = true; *hasResultType = true; break;
2429     case SpvOpUGreaterThan: *hasResult = true; *hasResultType = true; break;
2430     case SpvOpSGreaterThan: *hasResult = true; *hasResultType = true; break;
2431     case SpvOpUGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
2432     case SpvOpSGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
2433     case SpvOpULessThan: *hasResult = true; *hasResultType = true; break;
2434     case SpvOpSLessThan: *hasResult = true; *hasResultType = true; break;
2435     case SpvOpULessThanEqual: *hasResult = true; *hasResultType = true; break;
2436     case SpvOpSLessThanEqual: *hasResult = true; *hasResultType = true; break;
2437     case SpvOpFOrdEqual: *hasResult = true; *hasResultType = true; break;
2438     case SpvOpFUnordEqual: *hasResult = true; *hasResultType = true; break;
2439     case SpvOpFOrdNotEqual: *hasResult = true; *hasResultType = true; break;
2440     case SpvOpFUnordNotEqual: *hasResult = true; *hasResultType = true; break;
2441     case SpvOpFOrdLessThan: *hasResult = true; *hasResultType = true; break;
2442     case SpvOpFUnordLessThan: *hasResult = true; *hasResultType = true; break;
2443     case SpvOpFOrdGreaterThan: *hasResult = true; *hasResultType = true; break;
2444     case SpvOpFUnordGreaterThan: *hasResult = true; *hasResultType = true; break;
2445     case SpvOpFOrdLessThanEqual: *hasResult = true; *hasResultType = true; break;
2446     case SpvOpFUnordLessThanEqual: *hasResult = true; *hasResultType = true; break;
2447     case SpvOpFOrdGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
2448     case SpvOpFUnordGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
2449     case SpvOpShiftRightLogical: *hasResult = true; *hasResultType = true; break;
2450     case SpvOpShiftRightArithmetic: *hasResult = true; *hasResultType = true; break;
2451     case SpvOpShiftLeftLogical: *hasResult = true; *hasResultType = true; break;
2452     case SpvOpBitwiseOr: *hasResult = true; *hasResultType = true; break;
2453     case SpvOpBitwiseXor: *hasResult = true; *hasResultType = true; break;
2454     case SpvOpBitwiseAnd: *hasResult = true; *hasResultType = true; break;
2455     case SpvOpNot: *hasResult = true; *hasResultType = true; break;
2456     case SpvOpBitFieldInsert: *hasResult = true; *hasResultType = true; break;
2457     case SpvOpBitFieldSExtract: *hasResult = true; *hasResultType = true; break;
2458     case SpvOpBitFieldUExtract: *hasResult = true; *hasResultType = true; break;
2459     case SpvOpBitReverse: *hasResult = true; *hasResultType = true; break;
2460     case SpvOpBitCount: *hasResult = true; *hasResultType = true; break;
2461     case SpvOpDPdx: *hasResult = true; *hasResultType = true; break;
2462     case SpvOpDPdy: *hasResult = true; *hasResultType = true; break;
2463     case SpvOpFwidth: *hasResult = true; *hasResultType = true; break;
2464     case SpvOpDPdxFine: *hasResult = true; *hasResultType = true; break;
2465     case SpvOpDPdyFine: *hasResult = true; *hasResultType = true; break;
2466     case SpvOpFwidthFine: *hasResult = true; *hasResultType = true; break;
2467     case SpvOpDPdxCoarse: *hasResult = true; *hasResultType = true; break;
2468     case SpvOpDPdyCoarse: *hasResult = true; *hasResultType = true; break;
2469     case SpvOpFwidthCoarse: *hasResult = true; *hasResultType = true; break;
2470     case SpvOpEmitVertex: *hasResult = false; *hasResultType = false; break;
2471     case SpvOpEndPrimitive: *hasResult = false; *hasResultType = false; break;
2472     case SpvOpEmitStreamVertex: *hasResult = false; *hasResultType = false; break;
2473     case SpvOpEndStreamPrimitive: *hasResult = false; *hasResultType = false; break;
2474     case SpvOpControlBarrier: *hasResult = false; *hasResultType = false; break;
2475     case SpvOpMemoryBarrier: *hasResult = false; *hasResultType = false; break;
2476     case SpvOpAtomicLoad: *hasResult = true; *hasResultType = true; break;
2477     case SpvOpAtomicStore: *hasResult = false; *hasResultType = false; break;
2478     case SpvOpAtomicExchange: *hasResult = true; *hasResultType = true; break;
2479     case SpvOpAtomicCompareExchange: *hasResult = true; *hasResultType = true; break;
2480     case SpvOpAtomicCompareExchangeWeak: *hasResult = true; *hasResultType = true; break;
2481     case SpvOpAtomicIIncrement: *hasResult = true; *hasResultType = true; break;
2482     case SpvOpAtomicIDecrement: *hasResult = true; *hasResultType = true; break;
2483     case SpvOpAtomicIAdd: *hasResult = true; *hasResultType = true; break;
2484     case SpvOpAtomicISub: *hasResult = true; *hasResultType = true; break;
2485     case SpvOpAtomicSMin: *hasResult = true; *hasResultType = true; break;
2486     case SpvOpAtomicUMin: *hasResult = true; *hasResultType = true; break;
2487     case SpvOpAtomicSMax: *hasResult = true; *hasResultType = true; break;
2488     case SpvOpAtomicUMax: *hasResult = true; *hasResultType = true; break;
2489     case SpvOpAtomicAnd: *hasResult = true; *hasResultType = true; break;
2490     case SpvOpAtomicOr: *hasResult = true; *hasResultType = true; break;
2491     case SpvOpAtomicXor: *hasResult = true; *hasResultType = true; break;
2492     case SpvOpPhi: *hasResult = true; *hasResultType = true; break;
2493     case SpvOpLoopMerge: *hasResult = false; *hasResultType = false; break;
2494     case SpvOpSelectionMerge: *hasResult = false; *hasResultType = false; break;
2495     case SpvOpLabel: *hasResult = true; *hasResultType = false; break;
2496     case SpvOpBranch: *hasResult = false; *hasResultType = false; break;
2497     case SpvOpBranchConditional: *hasResult = false; *hasResultType = false; break;
2498     case SpvOpSwitch: *hasResult = false; *hasResultType = false; break;
2499     case SpvOpKill: *hasResult = false; *hasResultType = false; break;
2500     case SpvOpReturn: *hasResult = false; *hasResultType = false; break;
2501     case SpvOpReturnValue: *hasResult = false; *hasResultType = false; break;
2502     case SpvOpUnreachable: *hasResult = false; *hasResultType = false; break;
2503     case SpvOpLifetimeStart: *hasResult = false; *hasResultType = false; break;
2504     case SpvOpLifetimeStop: *hasResult = false; *hasResultType = false; break;
2505     case SpvOpGroupAsyncCopy: *hasResult = true; *hasResultType = true; break;
2506     case SpvOpGroupWaitEvents: *hasResult = false; *hasResultType = false; break;
2507     case SpvOpGroupAll: *hasResult = true; *hasResultType = true; break;
2508     case SpvOpGroupAny: *hasResult = true; *hasResultType = true; break;
2509     case SpvOpGroupBroadcast: *hasResult = true; *hasResultType = true; break;
2510     case SpvOpGroupIAdd: *hasResult = true; *hasResultType = true; break;
2511     case SpvOpGroupFAdd: *hasResult = true; *hasResultType = true; break;
2512     case SpvOpGroupFMin: *hasResult = true; *hasResultType = true; break;
2513     case SpvOpGroupUMin: *hasResult = true; *hasResultType = true; break;
2514     case SpvOpGroupSMin: *hasResult = true; *hasResultType = true; break;
2515     case SpvOpGroupFMax: *hasResult = true; *hasResultType = true; break;
2516     case SpvOpGroupUMax: *hasResult = true; *hasResultType = true; break;
2517     case SpvOpGroupSMax: *hasResult = true; *hasResultType = true; break;
2518     case SpvOpReadPipe: *hasResult = true; *hasResultType = true; break;
2519     case SpvOpWritePipe: *hasResult = true; *hasResultType = true; break;
2520     case SpvOpReservedReadPipe: *hasResult = true; *hasResultType = true; break;
2521     case SpvOpReservedWritePipe: *hasResult = true; *hasResultType = true; break;
2522     case SpvOpReserveReadPipePackets: *hasResult = true; *hasResultType = true; break;
2523     case SpvOpReserveWritePipePackets: *hasResult = true; *hasResultType = true; break;
2524     case SpvOpCommitReadPipe: *hasResult = false; *hasResultType = false; break;
2525     case SpvOpCommitWritePipe: *hasResult = false; *hasResultType = false; break;
2526     case SpvOpIsValidReserveId: *hasResult = true; *hasResultType = true; break;
2527     case SpvOpGetNumPipePackets: *hasResult = true; *hasResultType = true; break;
2528     case SpvOpGetMaxPipePackets: *hasResult = true; *hasResultType = true; break;
2529     case SpvOpGroupReserveReadPipePackets: *hasResult = true; *hasResultType = true; break;
2530     case SpvOpGroupReserveWritePipePackets: *hasResult = true; *hasResultType = true; break;
2531     case SpvOpGroupCommitReadPipe: *hasResult = false; *hasResultType = false; break;
2532     case SpvOpGroupCommitWritePipe: *hasResult = false; *hasResultType = false; break;
2533     case SpvOpEnqueueMarker: *hasResult = true; *hasResultType = true; break;
2534     case SpvOpEnqueueKernel: *hasResult = true; *hasResultType = true; break;
2535     case SpvOpGetKernelNDrangeSubGroupCount: *hasResult = true; *hasResultType = true; break;
2536     case SpvOpGetKernelNDrangeMaxSubGroupSize: *hasResult = true; *hasResultType = true; break;
2537     case SpvOpGetKernelWorkGroupSize: *hasResult = true; *hasResultType = true; break;
2538     case SpvOpGetKernelPreferredWorkGroupSizeMultiple: *hasResult = true; *hasResultType = true; break;
2539     case SpvOpRetainEvent: *hasResult = false; *hasResultType = false; break;
2540     case SpvOpReleaseEvent: *hasResult = false; *hasResultType = false; break;
2541     case SpvOpCreateUserEvent: *hasResult = true; *hasResultType = true; break;
2542     case SpvOpIsValidEvent: *hasResult = true; *hasResultType = true; break;
2543     case SpvOpSetUserEventStatus: *hasResult = false; *hasResultType = false; break;
2544     case SpvOpCaptureEventProfilingInfo: *hasResult = false; *hasResultType = false; break;
2545     case SpvOpGetDefaultQueue: *hasResult = true; *hasResultType = true; break;
2546     case SpvOpBuildNDRange: *hasResult = true; *hasResultType = true; break;
2547     case SpvOpImageSparseSampleImplicitLod: *hasResult = true; *hasResultType = true; break;
2548     case SpvOpImageSparseSampleExplicitLod: *hasResult = true; *hasResultType = true; break;
2549     case SpvOpImageSparseSampleDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
2550     case SpvOpImageSparseSampleDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
2551     case SpvOpImageSparseSampleProjImplicitLod: *hasResult = true; *hasResultType = true; break;
2552     case SpvOpImageSparseSampleProjExplicitLod: *hasResult = true; *hasResultType = true; break;
2553     case SpvOpImageSparseSampleProjDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
2554     case SpvOpImageSparseSampleProjDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
2555     case SpvOpImageSparseFetch: *hasResult = true; *hasResultType = true; break;
2556     case SpvOpImageSparseGather: *hasResult = true; *hasResultType = true; break;
2557     case SpvOpImageSparseDrefGather: *hasResult = true; *hasResultType = true; break;
2558     case SpvOpImageSparseTexelsResident: *hasResult = true; *hasResultType = true; break;
2559     case SpvOpNoLine: *hasResult = false; *hasResultType = false; break;
2560     case SpvOpAtomicFlagTestAndSet: *hasResult = true; *hasResultType = true; break;
2561     case SpvOpAtomicFlagClear: *hasResult = false; *hasResultType = false; break;
2562     case SpvOpImageSparseRead: *hasResult = true; *hasResultType = true; break;
2563     case SpvOpSizeOf: *hasResult = true; *hasResultType = true; break;
2564     case SpvOpTypePipeStorage: *hasResult = true; *hasResultType = false; break;
2565     case SpvOpConstantPipeStorage: *hasResult = true; *hasResultType = true; break;
2566     case SpvOpCreatePipeFromPipeStorage: *hasResult = true; *hasResultType = true; break;
2567     case SpvOpGetKernelLocalSizeForSubgroupCount: *hasResult = true; *hasResultType = true; break;
2568     case SpvOpGetKernelMaxNumSubgroups: *hasResult = true; *hasResultType = true; break;
2569     case SpvOpTypeNamedBarrier: *hasResult = true; *hasResultType = false; break;
2570     case SpvOpNamedBarrierInitialize: *hasResult = true; *hasResultType = true; break;
2571     case SpvOpMemoryNamedBarrier: *hasResult = false; *hasResultType = false; break;
2572     case SpvOpModuleProcessed: *hasResult = false; *hasResultType = false; break;
2573     case SpvOpExecutionModeId: *hasResult = false; *hasResultType = false; break;
2574     case SpvOpDecorateId: *hasResult = false; *hasResultType = false; break;
2575     case SpvOpGroupNonUniformElect: *hasResult = true; *hasResultType = true; break;
2576     case SpvOpGroupNonUniformAll: *hasResult = true; *hasResultType = true; break;
2577     case SpvOpGroupNonUniformAny: *hasResult = true; *hasResultType = true; break;
2578     case SpvOpGroupNonUniformAllEqual: *hasResult = true; *hasResultType = true; break;
2579     case SpvOpGroupNonUniformBroadcast: *hasResult = true; *hasResultType = true; break;
2580     case SpvOpGroupNonUniformBroadcastFirst: *hasResult = true; *hasResultType = true; break;
2581     case SpvOpGroupNonUniformBallot: *hasResult = true; *hasResultType = true; break;
2582     case SpvOpGroupNonUniformInverseBallot: *hasResult = true; *hasResultType = true; break;
2583     case SpvOpGroupNonUniformBallotBitExtract: *hasResult = true; *hasResultType = true; break;
2584     case SpvOpGroupNonUniformBallotBitCount: *hasResult = true; *hasResultType = true; break;
2585     case SpvOpGroupNonUniformBallotFindLSB: *hasResult = true; *hasResultType = true; break;
2586     case SpvOpGroupNonUniformBallotFindMSB: *hasResult = true; *hasResultType = true; break;
2587     case SpvOpGroupNonUniformShuffle: *hasResult = true; *hasResultType = true; break;
2588     case SpvOpGroupNonUniformShuffleXor: *hasResult = true; *hasResultType = true; break;
2589     case SpvOpGroupNonUniformShuffleUp: *hasResult = true; *hasResultType = true; break;
2590     case SpvOpGroupNonUniformShuffleDown: *hasResult = true; *hasResultType = true; break;
2591     case SpvOpGroupNonUniformIAdd: *hasResult = true; *hasResultType = true; break;
2592     case SpvOpGroupNonUniformFAdd: *hasResult = true; *hasResultType = true; break;
2593     case SpvOpGroupNonUniformIMul: *hasResult = true; *hasResultType = true; break;
2594     case SpvOpGroupNonUniformFMul: *hasResult = true; *hasResultType = true; break;
2595     case SpvOpGroupNonUniformSMin: *hasResult = true; *hasResultType = true; break;
2596     case SpvOpGroupNonUniformUMin: *hasResult = true; *hasResultType = true; break;
2597     case SpvOpGroupNonUniformFMin: *hasResult = true; *hasResultType = true; break;
2598     case SpvOpGroupNonUniformSMax: *hasResult = true; *hasResultType = true; break;
2599     case SpvOpGroupNonUniformUMax: *hasResult = true; *hasResultType = true; break;
2600     case SpvOpGroupNonUniformFMax: *hasResult = true; *hasResultType = true; break;
2601     case SpvOpGroupNonUniformBitwiseAnd: *hasResult = true; *hasResultType = true; break;
2602     case SpvOpGroupNonUniformBitwiseOr: *hasResult = true; *hasResultType = true; break;
2603     case SpvOpGroupNonUniformBitwiseXor: *hasResult = true; *hasResultType = true; break;
2604     case SpvOpGroupNonUniformLogicalAnd: *hasResult = true; *hasResultType = true; break;
2605     case SpvOpGroupNonUniformLogicalOr: *hasResult = true; *hasResultType = true; break;
2606     case SpvOpGroupNonUniformLogicalXor: *hasResult = true; *hasResultType = true; break;
2607     case SpvOpGroupNonUniformQuadBroadcast: *hasResult = true; *hasResultType = true; break;
2608     case SpvOpGroupNonUniformQuadSwap: *hasResult = true; *hasResultType = true; break;
2609     case SpvOpCopyLogical: *hasResult = true; *hasResultType = true; break;
2610     case SpvOpPtrEqual: *hasResult = true; *hasResultType = true; break;
2611     case SpvOpPtrNotEqual: *hasResult = true; *hasResultType = true; break;
2612     case SpvOpPtrDiff: *hasResult = true; *hasResultType = true; break;
2613     case SpvOpColorAttachmentReadEXT: *hasResult = true; *hasResultType = true; break;
2614     case SpvOpDepthAttachmentReadEXT: *hasResult = true; *hasResultType = true; break;
2615     case SpvOpStencilAttachmentReadEXT: *hasResult = true; *hasResultType = true; break;
2616     case SpvOpTerminateInvocation: *hasResult = false; *hasResultType = false; break;
2617     case SpvOpTypeUntypedPointerKHR: *hasResult = true; *hasResultType = false; break;
2618     case SpvOpUntypedVariableKHR: *hasResult = true; *hasResultType = true; break;
2619     case SpvOpUntypedAccessChainKHR: *hasResult = true; *hasResultType = true; break;
2620     case SpvOpUntypedInBoundsAccessChainKHR: *hasResult = true; *hasResultType = true; break;
2621     case SpvOpSubgroupBallotKHR: *hasResult = true; *hasResultType = true; break;
2622     case SpvOpSubgroupFirstInvocationKHR: *hasResult = true; *hasResultType = true; break;
2623     case SpvOpUntypedPtrAccessChainKHR: *hasResult = true; *hasResultType = true; break;
2624     case SpvOpUntypedInBoundsPtrAccessChainKHR: *hasResult = true; *hasResultType = true; break;
2625     case SpvOpUntypedArrayLengthKHR: *hasResult = true; *hasResultType = true; break;
2626     case SpvOpUntypedPrefetchKHR: *hasResult = false; *hasResultType = false; break;
2627     case SpvOpSubgroupAllKHR: *hasResult = true; *hasResultType = true; break;
2628     case SpvOpSubgroupAnyKHR: *hasResult = true; *hasResultType = true; break;
2629     case SpvOpSubgroupAllEqualKHR: *hasResult = true; *hasResultType = true; break;
2630     case SpvOpGroupNonUniformRotateKHR: *hasResult = true; *hasResultType = true; break;
2631     case SpvOpSubgroupReadInvocationKHR: *hasResult = true; *hasResultType = true; break;
2632     case SpvOpExtInstWithForwardRefsKHR: *hasResult = true; *hasResultType = true; break;
2633     case SpvOpTraceRayKHR: *hasResult = false; *hasResultType = false; break;
2634     case SpvOpExecuteCallableKHR: *hasResult = false; *hasResultType = false; break;
2635     case SpvOpConvertUToAccelerationStructureKHR: *hasResult = true; *hasResultType = true; break;
2636     case SpvOpIgnoreIntersectionKHR: *hasResult = false; *hasResultType = false; break;
2637     case SpvOpTerminateRayKHR: *hasResult = false; *hasResultType = false; break;
2638     case SpvOpSDot: *hasResult = true; *hasResultType = true; break;
2639     case SpvOpUDot: *hasResult = true; *hasResultType = true; break;
2640     case SpvOpSUDot: *hasResult = true; *hasResultType = true; break;
2641     case SpvOpSDotAccSat: *hasResult = true; *hasResultType = true; break;
2642     case SpvOpUDotAccSat: *hasResult = true; *hasResultType = true; break;
2643     case SpvOpSUDotAccSat: *hasResult = true; *hasResultType = true; break;
2644     case SpvOpTypeCooperativeMatrixKHR: *hasResult = true; *hasResultType = false; break;
2645     case SpvOpCooperativeMatrixLoadKHR: *hasResult = true; *hasResultType = true; break;
2646     case SpvOpCooperativeMatrixStoreKHR: *hasResult = false; *hasResultType = false; break;
2647     case SpvOpCooperativeMatrixMulAddKHR: *hasResult = true; *hasResultType = true; break;
2648     case SpvOpCooperativeMatrixLengthKHR: *hasResult = true; *hasResultType = true; break;
2649     case SpvOpConstantCompositeReplicateEXT: *hasResult = true; *hasResultType = true; break;
2650     case SpvOpSpecConstantCompositeReplicateEXT: *hasResult = true; *hasResultType = true; break;
2651     case SpvOpCompositeConstructReplicateEXT: *hasResult = true; *hasResultType = true; break;
2652     case SpvOpTypeRayQueryKHR: *hasResult = true; *hasResultType = false; break;
2653     case SpvOpRayQueryInitializeKHR: *hasResult = false; *hasResultType = false; break;
2654     case SpvOpRayQueryTerminateKHR: *hasResult = false; *hasResultType = false; break;
2655     case SpvOpRayQueryGenerateIntersectionKHR: *hasResult = false; *hasResultType = false; break;
2656     case SpvOpRayQueryConfirmIntersectionKHR: *hasResult = false; *hasResultType = false; break;
2657     case SpvOpRayQueryProceedKHR: *hasResult = true; *hasResultType = true; break;
2658     case SpvOpRayQueryGetIntersectionTypeKHR: *hasResult = true; *hasResultType = true; break;
2659     case SpvOpImageSampleWeightedQCOM: *hasResult = true; *hasResultType = true; break;
2660     case SpvOpImageBoxFilterQCOM: *hasResult = true; *hasResultType = true; break;
2661     case SpvOpImageBlockMatchSSDQCOM: *hasResult = true; *hasResultType = true; break;
2662     case SpvOpImageBlockMatchSADQCOM: *hasResult = true; *hasResultType = true; break;
2663     case SpvOpImageBlockMatchWindowSSDQCOM: *hasResult = true; *hasResultType = true; break;
2664     case SpvOpImageBlockMatchWindowSADQCOM: *hasResult = true; *hasResultType = true; break;
2665     case SpvOpImageBlockMatchGatherSSDQCOM: *hasResult = true; *hasResultType = true; break;
2666     case SpvOpImageBlockMatchGatherSADQCOM: *hasResult = true; *hasResultType = true; break;
2667     case SpvOpGroupIAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
2668     case SpvOpGroupFAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
2669     case SpvOpGroupFMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
2670     case SpvOpGroupUMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
2671     case SpvOpGroupSMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
2672     case SpvOpGroupFMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;
2673     case SpvOpGroupUMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;
2674     case SpvOpGroupSMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;
2675     case SpvOpFragmentMaskFetchAMD: *hasResult = true; *hasResultType = true; break;
2676     case SpvOpFragmentFetchAMD: *hasResult = true; *hasResultType = true; break;
2677     case SpvOpReadClockKHR: *hasResult = true; *hasResultType = true; break;
2678     case SpvOpAllocateNodePayloadsAMDX: *hasResult = true; *hasResultType = true; break;
2679     case SpvOpEnqueueNodePayloadsAMDX: *hasResult = false; *hasResultType = false; break;
2680     case SpvOpTypeNodePayloadArrayAMDX: *hasResult = true; *hasResultType = false; break;
2681     case SpvOpFinishWritingNodePayloadAMDX: *hasResult = true; *hasResultType = true; break;
2682     case SpvOpNodePayloadArrayLengthAMDX: *hasResult = true; *hasResultType = true; break;
2683     case SpvOpIsNodePayloadValidAMDX: *hasResult = true; *hasResultType = true; break;
2684     case SpvOpConstantStringAMDX: *hasResult = true; *hasResultType = false; break;
2685     case SpvOpSpecConstantStringAMDX: *hasResult = true; *hasResultType = false; break;
2686     case SpvOpGroupNonUniformQuadAllKHR: *hasResult = true; *hasResultType = true; break;
2687     case SpvOpGroupNonUniformQuadAnyKHR: *hasResult = true; *hasResultType = true; break;
2688     case SpvOpHitObjectRecordHitMotionNV: *hasResult = false; *hasResultType = false; break;
2689     case SpvOpHitObjectRecordHitWithIndexMotionNV: *hasResult = false; *hasResultType = false; break;
2690     case SpvOpHitObjectRecordMissMotionNV: *hasResult = false; *hasResultType = false; break;
2691     case SpvOpHitObjectGetWorldToObjectNV: *hasResult = true; *hasResultType = true; break;
2692     case SpvOpHitObjectGetObjectToWorldNV: *hasResult = true; *hasResultType = true; break;
2693     case SpvOpHitObjectGetObjectRayDirectionNV: *hasResult = true; *hasResultType = true; break;
2694     case SpvOpHitObjectGetObjectRayOriginNV: *hasResult = true; *hasResultType = true; break;
2695     case SpvOpHitObjectTraceRayMotionNV: *hasResult = false; *hasResultType = false; break;
2696     case SpvOpHitObjectGetShaderRecordBufferHandleNV: *hasResult = true; *hasResultType = true; break;
2697     case SpvOpHitObjectGetShaderBindingTableRecordIndexNV: *hasResult = true; *hasResultType = true; break;
2698     case SpvOpHitObjectRecordEmptyNV: *hasResult = false; *hasResultType = false; break;
2699     case SpvOpHitObjectTraceRayNV: *hasResult = false; *hasResultType = false; break;
2700     case SpvOpHitObjectRecordHitNV: *hasResult = false; *hasResultType = false; break;
2701     case SpvOpHitObjectRecordHitWithIndexNV: *hasResult = false; *hasResultType = false; break;
2702     case SpvOpHitObjectRecordMissNV: *hasResult = false; *hasResultType = false; break;
2703     case SpvOpHitObjectExecuteShaderNV: *hasResult = false; *hasResultType = false; break;
2704     case SpvOpHitObjectGetCurrentTimeNV: *hasResult = true; *hasResultType = true; break;
2705     case SpvOpHitObjectGetAttributesNV: *hasResult = false; *hasResultType = false; break;
2706     case SpvOpHitObjectGetHitKindNV: *hasResult = true; *hasResultType = true; break;
2707     case SpvOpHitObjectGetPrimitiveIndexNV: *hasResult = true; *hasResultType = true; break;
2708     case SpvOpHitObjectGetGeometryIndexNV: *hasResult = true; *hasResultType = true; break;
2709     case SpvOpHitObjectGetInstanceIdNV: *hasResult = true; *hasResultType = true; break;
2710     case SpvOpHitObjectGetInstanceCustomIndexNV: *hasResult = true; *hasResultType = true; break;
2711     case SpvOpHitObjectGetWorldRayDirectionNV: *hasResult = true; *hasResultType = true; break;
2712     case SpvOpHitObjectGetWorldRayOriginNV: *hasResult = true; *hasResultType = true; break;
2713     case SpvOpHitObjectGetRayTMaxNV: *hasResult = true; *hasResultType = true; break;
2714     case SpvOpHitObjectGetRayTMinNV: *hasResult = true; *hasResultType = true; break;
2715     case SpvOpHitObjectIsEmptyNV: *hasResult = true; *hasResultType = true; break;
2716     case SpvOpHitObjectIsHitNV: *hasResult = true; *hasResultType = true; break;
2717     case SpvOpHitObjectIsMissNV: *hasResult = true; *hasResultType = true; break;
2718     case SpvOpReorderThreadWithHitObjectNV: *hasResult = false; *hasResultType = false; break;
2719     case SpvOpReorderThreadWithHintNV: *hasResult = false; *hasResultType = false; break;
2720     case SpvOpTypeHitObjectNV: *hasResult = true; *hasResultType = false; break;
2721     case SpvOpImageSampleFootprintNV: *hasResult = true; *hasResultType = true; break;
2722     case SpvOpCooperativeMatrixConvertNV: *hasResult = true; *hasResultType = true; break;
2723     case SpvOpEmitMeshTasksEXT: *hasResult = false; *hasResultType = false; break;
2724     case SpvOpSetMeshOutputsEXT: *hasResult = false; *hasResultType = false; break;
2725     case SpvOpGroupNonUniformPartitionNV: *hasResult = true; *hasResultType = true; break;
2726     case SpvOpWritePackedPrimitiveIndices4x8NV: *hasResult = false; *hasResultType = false; break;
2727     case SpvOpFetchMicroTriangleVertexPositionNV: *hasResult = true; *hasResultType = true; break;
2728     case SpvOpFetchMicroTriangleVertexBarycentricNV: *hasResult = true; *hasResultType = true; break;
2729     case SpvOpReportIntersectionKHR: *hasResult = true; *hasResultType = true; break;
2730     case SpvOpIgnoreIntersectionNV: *hasResult = false; *hasResultType = false; break;
2731     case SpvOpTerminateRayNV: *hasResult = false; *hasResultType = false; break;
2732     case SpvOpTraceNV: *hasResult = false; *hasResultType = false; break;
2733     case SpvOpTraceMotionNV: *hasResult = false; *hasResultType = false; break;
2734     case SpvOpTraceRayMotionNV: *hasResult = false; *hasResultType = false; break;
2735     case SpvOpRayQueryGetIntersectionTriangleVertexPositionsKHR: *hasResult = true; *hasResultType = true; break;
2736     case SpvOpTypeAccelerationStructureKHR: *hasResult = true; *hasResultType = false; break;
2737     case SpvOpExecuteCallableNV: *hasResult = false; *hasResultType = false; break;
2738     case SpvOpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break;
2739     case SpvOpCooperativeMatrixLoadNV: *hasResult = true; *hasResultType = true; break;
2740     case SpvOpCooperativeMatrixStoreNV: *hasResult = false; *hasResultType = false; break;
2741     case SpvOpCooperativeMatrixMulAddNV: *hasResult = true; *hasResultType = true; break;
2742     case SpvOpCooperativeMatrixLengthNV: *hasResult = true; *hasResultType = true; break;
2743     case SpvOpBeginInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break;
2744     case SpvOpEndInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break;
2745     case SpvOpCooperativeMatrixReduceNV: *hasResult = true; *hasResultType = true; break;
2746     case SpvOpCooperativeMatrixLoadTensorNV: *hasResult = true; *hasResultType = true; break;
2747     case SpvOpCooperativeMatrixStoreTensorNV: *hasResult = false; *hasResultType = false; break;
2748     case SpvOpCooperativeMatrixPerElementOpNV: *hasResult = true; *hasResultType = true; break;
2749     case SpvOpTypeTensorLayoutNV: *hasResult = true; *hasResultType = false; break;
2750     case SpvOpTypeTensorViewNV: *hasResult = true; *hasResultType = false; break;
2751     case SpvOpCreateTensorLayoutNV: *hasResult = true; *hasResultType = true; break;
2752     case SpvOpTensorLayoutSetDimensionNV: *hasResult = true; *hasResultType = true; break;
2753     case SpvOpTensorLayoutSetStrideNV: *hasResult = true; *hasResultType = true; break;
2754     case SpvOpTensorLayoutSliceNV: *hasResult = true; *hasResultType = true; break;
2755     case SpvOpTensorLayoutSetClampValueNV: *hasResult = true; *hasResultType = true; break;
2756     case SpvOpCreateTensorViewNV: *hasResult = true; *hasResultType = true; break;
2757     case SpvOpTensorViewSetDimensionNV: *hasResult = true; *hasResultType = true; break;
2758     case SpvOpTensorViewSetStrideNV: *hasResult = true; *hasResultType = true; break;
2759     case SpvOpDemoteToHelperInvocation: *hasResult = false; *hasResultType = false; break;
2760     case SpvOpIsHelperInvocationEXT: *hasResult = true; *hasResultType = true; break;
2761     case SpvOpTensorViewSetClipNV: *hasResult = true; *hasResultType = true; break;
2762     case SpvOpTensorLayoutSetBlockSizeNV: *hasResult = true; *hasResultType = true; break;
2763     case SpvOpCooperativeMatrixTransposeNV: *hasResult = true; *hasResultType = true; break;
2764     case SpvOpConvertUToImageNV: *hasResult = true; *hasResultType = true; break;
2765     case SpvOpConvertUToSamplerNV: *hasResult = true; *hasResultType = true; break;
2766     case SpvOpConvertImageToUNV: *hasResult = true; *hasResultType = true; break;
2767     case SpvOpConvertSamplerToUNV: *hasResult = true; *hasResultType = true; break;
2768     case SpvOpConvertUToSampledImageNV: *hasResult = true; *hasResultType = true; break;
2769     case SpvOpConvertSampledImageToUNV: *hasResult = true; *hasResultType = true; break;
2770     case SpvOpSamplerImageAddressingModeNV: *hasResult = false; *hasResultType = false; break;
2771     case SpvOpRawAccessChainNV: *hasResult = true; *hasResultType = true; break;
2772     case SpvOpSubgroupShuffleINTEL: *hasResult = true; *hasResultType = true; break;
2773     case SpvOpSubgroupShuffleDownINTEL: *hasResult = true; *hasResultType = true; break;
2774     case SpvOpSubgroupShuffleUpINTEL: *hasResult = true; *hasResultType = true; break;
2775     case SpvOpSubgroupShuffleXorINTEL: *hasResult = true; *hasResultType = true; break;
2776     case SpvOpSubgroupBlockReadINTEL: *hasResult = true; *hasResultType = true; break;
2777     case SpvOpSubgroupBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;
2778     case SpvOpSubgroupImageBlockReadINTEL: *hasResult = true; *hasResultType = true; break;
2779     case SpvOpSubgroupImageBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;
2780     case SpvOpSubgroupImageMediaBlockReadINTEL: *hasResult = true; *hasResultType = true; break;
2781     case SpvOpSubgroupImageMediaBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;
2782     case SpvOpUCountLeadingZerosINTEL: *hasResult = true; *hasResultType = true; break;
2783     case SpvOpUCountTrailingZerosINTEL: *hasResult = true; *hasResultType = true; break;
2784     case SpvOpAbsISubINTEL: *hasResult = true; *hasResultType = true; break;
2785     case SpvOpAbsUSubINTEL: *hasResult = true; *hasResultType = true; break;
2786     case SpvOpIAddSatINTEL: *hasResult = true; *hasResultType = true; break;
2787     case SpvOpUAddSatINTEL: *hasResult = true; *hasResultType = true; break;
2788     case SpvOpIAverageINTEL: *hasResult = true; *hasResultType = true; break;
2789     case SpvOpUAverageINTEL: *hasResult = true; *hasResultType = true; break;
2790     case SpvOpIAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break;
2791     case SpvOpUAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break;
2792     case SpvOpISubSatINTEL: *hasResult = true; *hasResultType = true; break;
2793     case SpvOpUSubSatINTEL: *hasResult = true; *hasResultType = true; break;
2794     case SpvOpIMul32x16INTEL: *hasResult = true; *hasResultType = true; break;
2795     case SpvOpUMul32x16INTEL: *hasResult = true; *hasResultType = true; break;
2796     case SpvOpConstantFunctionPointerINTEL: *hasResult = true; *hasResultType = true; break;
2797     case SpvOpFunctionPointerCallINTEL: *hasResult = true; *hasResultType = true; break;
2798     case SpvOpAsmTargetINTEL: *hasResult = true; *hasResultType = true; break;
2799     case SpvOpAsmINTEL: *hasResult = true; *hasResultType = true; break;
2800     case SpvOpAsmCallINTEL: *hasResult = true; *hasResultType = true; break;
2801     case SpvOpAtomicFMinEXT: *hasResult = true; *hasResultType = true; break;
2802     case SpvOpAtomicFMaxEXT: *hasResult = true; *hasResultType = true; break;
2803     case SpvOpAssumeTrueKHR: *hasResult = false; *hasResultType = false; break;
2804     case SpvOpExpectKHR: *hasResult = true; *hasResultType = true; break;
2805     case SpvOpDecorateString: *hasResult = false; *hasResultType = false; break;
2806     case SpvOpMemberDecorateString: *hasResult = false; *hasResultType = false; break;
2807     case SpvOpVmeImageINTEL: *hasResult = true; *hasResultType = true; break;
2808     case SpvOpTypeVmeImageINTEL: *hasResult = true; *hasResultType = false; break;
2809     case SpvOpTypeAvcImePayloadINTEL: *hasResult = true; *hasResultType = false; break;
2810     case SpvOpTypeAvcRefPayloadINTEL: *hasResult = true; *hasResultType = false; break;
2811     case SpvOpTypeAvcSicPayloadINTEL: *hasResult = true; *hasResultType = false; break;
2812     case SpvOpTypeAvcMcePayloadINTEL: *hasResult = true; *hasResultType = false; break;
2813     case SpvOpTypeAvcMceResultINTEL: *hasResult = true; *hasResultType = false; break;
2814     case SpvOpTypeAvcImeResultINTEL: *hasResult = true; *hasResultType = false; break;
2815     case SpvOpTypeAvcImeResultSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = false; break;
2816     case SpvOpTypeAvcImeResultDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = false; break;
2817     case SpvOpTypeAvcImeSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = false; break;
2818     case SpvOpTypeAvcImeDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = false; break;
2819     case SpvOpTypeAvcRefResultINTEL: *hasResult = true; *hasResultType = false; break;
2820     case SpvOpTypeAvcSicResultINTEL: *hasResult = true; *hasResultType = false; break;
2821     case SpvOpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2822     case SpvOpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2823     case SpvOpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2824     case SpvOpSubgroupAvcMceSetInterShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2825     case SpvOpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2826     case SpvOpSubgroupAvcMceSetInterDirectionPenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2827     case SpvOpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2828     case SpvOpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL: *hasResult = true; *hasResultType = true; break;
2829     case SpvOpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;
2830     case SpvOpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;
2831     case SpvOpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;
2832     case SpvOpSubgroupAvcMceSetMotionVectorCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;
2833     case SpvOpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2834     case SpvOpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2835     case SpvOpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2836     case SpvOpSubgroupAvcMceSetAcOnlyHaarINTEL: *hasResult = true; *hasResultType = true; break;
2837     case SpvOpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL: *hasResult = true; *hasResultType = true; break;
2838     case SpvOpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL: *hasResult = true; *hasResultType = true; break;
2839     case SpvOpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL: *hasResult = true; *hasResultType = true; break;
2840     case SpvOpSubgroupAvcMceConvertToImePayloadINTEL: *hasResult = true; *hasResultType = true; break;
2841     case SpvOpSubgroupAvcMceConvertToImeResultINTEL: *hasResult = true; *hasResultType = true; break;
2842     case SpvOpSubgroupAvcMceConvertToRefPayloadINTEL: *hasResult = true; *hasResultType = true; break;
2843     case SpvOpSubgroupAvcMceConvertToRefResultINTEL: *hasResult = true; *hasResultType = true; break;
2844     case SpvOpSubgroupAvcMceConvertToSicPayloadINTEL: *hasResult = true; *hasResultType = true; break;
2845     case SpvOpSubgroupAvcMceConvertToSicResultINTEL: *hasResult = true; *hasResultType = true; break;
2846     case SpvOpSubgroupAvcMceGetMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;
2847     case SpvOpSubgroupAvcMceGetInterDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
2848     case SpvOpSubgroupAvcMceGetBestInterDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
2849     case SpvOpSubgroupAvcMceGetInterMajorShapeINTEL: *hasResult = true; *hasResultType = true; break;
2850     case SpvOpSubgroupAvcMceGetInterMinorShapeINTEL: *hasResult = true; *hasResultType = true; break;
2851     case SpvOpSubgroupAvcMceGetInterDirectionsINTEL: *hasResult = true; *hasResultType = true; break;
2852     case SpvOpSubgroupAvcMceGetInterMotionVectorCountINTEL: *hasResult = true; *hasResultType = true; break;
2853     case SpvOpSubgroupAvcMceGetInterReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;
2854     case SpvOpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL: *hasResult = true; *hasResultType = true; break;
2855     case SpvOpSubgroupAvcImeInitializeINTEL: *hasResult = true; *hasResultType = true; break;
2856     case SpvOpSubgroupAvcImeSetSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
2857     case SpvOpSubgroupAvcImeSetDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
2858     case SpvOpSubgroupAvcImeRefWindowSizeINTEL: *hasResult = true; *hasResultType = true; break;
2859     case SpvOpSubgroupAvcImeAdjustRefOffsetINTEL: *hasResult = true; *hasResultType = true; break;
2860     case SpvOpSubgroupAvcImeConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;
2861     case SpvOpSubgroupAvcImeSetMaxMotionVectorCountINTEL: *hasResult = true; *hasResultType = true; break;
2862     case SpvOpSubgroupAvcImeSetUnidirectionalMixDisableINTEL: *hasResult = true; *hasResultType = true; break;
2863     case SpvOpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL: *hasResult = true; *hasResultType = true; break;
2864     case SpvOpSubgroupAvcImeSetWeightedSadINTEL: *hasResult = true; *hasResultType = true; break;
2865     case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
2866     case SpvOpSubgroupAvcImeEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
2867     case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
2868     case SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
2869     case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
2870     case SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
2871     case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL: *hasResult = true; *hasResultType = true; break;
2872     case SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL: *hasResult = true; *hasResultType = true; break;
2873     case SpvOpSubgroupAvcImeConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;
2874     case SpvOpSubgroupAvcImeGetSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
2875     case SpvOpSubgroupAvcImeGetDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
2876     case SpvOpSubgroupAvcImeStripSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
2877     case SpvOpSubgroupAvcImeStripDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
2878     case SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;
2879     case SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
2880     case SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;
2881     case SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;
2882     case SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
2883     case SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;
2884     case SpvOpSubgroupAvcImeGetBorderReachedINTEL: *hasResult = true; *hasResultType = true; break;
2885     case SpvOpSubgroupAvcImeGetTruncatedSearchIndicationINTEL: *hasResult = true; *hasResultType = true; break;
2886     case SpvOpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL: *hasResult = true; *hasResultType = true; break;
2887     case SpvOpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL: *hasResult = true; *hasResultType = true; break;
2888     case SpvOpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL: *hasResult = true; *hasResultType = true; break;
2889     case SpvOpSubgroupAvcFmeInitializeINTEL: *hasResult = true; *hasResultType = true; break;
2890     case SpvOpSubgroupAvcBmeInitializeINTEL: *hasResult = true; *hasResultType = true; break;
2891     case SpvOpSubgroupAvcRefConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;
2892     case SpvOpSubgroupAvcRefSetBidirectionalMixDisableINTEL: *hasResult = true; *hasResultType = true; break;
2893     case SpvOpSubgroupAvcRefSetBilinearFilterEnableINTEL: *hasResult = true; *hasResultType = true; break;
2894     case SpvOpSubgroupAvcRefEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
2895     case SpvOpSubgroupAvcRefEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
2896     case SpvOpSubgroupAvcRefEvaluateWithMultiReferenceINTEL: *hasResult = true; *hasResultType = true; break;
2897     case SpvOpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL: *hasResult = true; *hasResultType = true; break;
2898     case SpvOpSubgroupAvcRefConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;
2899     case SpvOpSubgroupAvcSicInitializeINTEL: *hasResult = true; *hasResultType = true; break;
2900     case SpvOpSubgroupAvcSicConfigureSkcINTEL: *hasResult = true; *hasResultType = true; break;
2901     case SpvOpSubgroupAvcSicConfigureIpeLumaINTEL: *hasResult = true; *hasResultType = true; break;
2902     case SpvOpSubgroupAvcSicConfigureIpeLumaChromaINTEL: *hasResult = true; *hasResultType = true; break;
2903     case SpvOpSubgroupAvcSicGetMotionVectorMaskINTEL: *hasResult = true; *hasResultType = true; break;
2904     case SpvOpSubgroupAvcSicConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;
2905     case SpvOpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2906     case SpvOpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;
2907     case SpvOpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;
2908     case SpvOpSubgroupAvcSicSetBilinearFilterEnableINTEL: *hasResult = true; *hasResultType = true; break;
2909     case SpvOpSubgroupAvcSicSetSkcForwardTransformEnableINTEL: *hasResult = true; *hasResultType = true; break;
2910     case SpvOpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL: *hasResult = true; *hasResultType = true; break;
2911     case SpvOpSubgroupAvcSicEvaluateIpeINTEL: *hasResult = true; *hasResultType = true; break;
2912     case SpvOpSubgroupAvcSicEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
2913     case SpvOpSubgroupAvcSicEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
2914     case SpvOpSubgroupAvcSicEvaluateWithMultiReferenceINTEL: *hasResult = true; *hasResultType = true; break;
2915     case SpvOpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL: *hasResult = true; *hasResultType = true; break;
2916     case SpvOpSubgroupAvcSicConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;
2917     case SpvOpSubgroupAvcSicGetIpeLumaShapeINTEL: *hasResult = true; *hasResultType = true; break;
2918     case SpvOpSubgroupAvcSicGetBestIpeLumaDistortionINTEL: *hasResult = true; *hasResultType = true; break;
2919     case SpvOpSubgroupAvcSicGetBestIpeChromaDistortionINTEL: *hasResult = true; *hasResultType = true; break;
2920     case SpvOpSubgroupAvcSicGetPackedIpeLumaModesINTEL: *hasResult = true; *hasResultType = true; break;
2921     case SpvOpSubgroupAvcSicGetIpeChromaModeINTEL: *hasResult = true; *hasResultType = true; break;
2922     case SpvOpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL: *hasResult = true; *hasResultType = true; break;
2923     case SpvOpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL: *hasResult = true; *hasResultType = true; break;
2924     case SpvOpSubgroupAvcSicGetInterRawSadsINTEL: *hasResult = true; *hasResultType = true; break;
2925     case SpvOpVariableLengthArrayINTEL: *hasResult = true; *hasResultType = true; break;
2926     case SpvOpSaveMemoryINTEL: *hasResult = true; *hasResultType = true; break;
2927     case SpvOpRestoreMemoryINTEL: *hasResult = false; *hasResultType = false; break;
2928     case SpvOpArbitraryFloatSinCosPiINTEL: *hasResult = true; *hasResultType = true; break;
2929     case SpvOpArbitraryFloatCastINTEL: *hasResult = true; *hasResultType = true; break;
2930     case SpvOpArbitraryFloatCastFromIntINTEL: *hasResult = true; *hasResultType = true; break;
2931     case SpvOpArbitraryFloatCastToIntINTEL: *hasResult = true; *hasResultType = true; break;
2932     case SpvOpArbitraryFloatAddINTEL: *hasResult = true; *hasResultType = true; break;
2933     case SpvOpArbitraryFloatSubINTEL: *hasResult = true; *hasResultType = true; break;
2934     case SpvOpArbitraryFloatMulINTEL: *hasResult = true; *hasResultType = true; break;
2935     case SpvOpArbitraryFloatDivINTEL: *hasResult = true; *hasResultType = true; break;
2936     case SpvOpArbitraryFloatGTINTEL: *hasResult = true; *hasResultType = true; break;
2937     case SpvOpArbitraryFloatGEINTEL: *hasResult = true; *hasResultType = true; break;
2938     case SpvOpArbitraryFloatLTINTEL: *hasResult = true; *hasResultType = true; break;
2939     case SpvOpArbitraryFloatLEINTEL: *hasResult = true; *hasResultType = true; break;
2940     case SpvOpArbitraryFloatEQINTEL: *hasResult = true; *hasResultType = true; break;
2941     case SpvOpArbitraryFloatRecipINTEL: *hasResult = true; *hasResultType = true; break;
2942     case SpvOpArbitraryFloatRSqrtINTEL: *hasResult = true; *hasResultType = true; break;
2943     case SpvOpArbitraryFloatCbrtINTEL: *hasResult = true; *hasResultType = true; break;
2944     case SpvOpArbitraryFloatHypotINTEL: *hasResult = true; *hasResultType = true; break;
2945     case SpvOpArbitraryFloatSqrtINTEL: *hasResult = true; *hasResultType = true; break;
2946     case SpvOpArbitraryFloatLogINTEL: *hasResult = true; *hasResultType = true; break;
2947     case SpvOpArbitraryFloatLog2INTEL: *hasResult = true; *hasResultType = true; break;
2948     case SpvOpArbitraryFloatLog10INTEL: *hasResult = true; *hasResultType = true; break;
2949     case SpvOpArbitraryFloatLog1pINTEL: *hasResult = true; *hasResultType = true; break;
2950     case SpvOpArbitraryFloatExpINTEL: *hasResult = true; *hasResultType = true; break;
2951     case SpvOpArbitraryFloatExp2INTEL: *hasResult = true; *hasResultType = true; break;
2952     case SpvOpArbitraryFloatExp10INTEL: *hasResult = true; *hasResultType = true; break;
2953     case SpvOpArbitraryFloatExpm1INTEL: *hasResult = true; *hasResultType = true; break;
2954     case SpvOpArbitraryFloatSinINTEL: *hasResult = true; *hasResultType = true; break;
2955     case SpvOpArbitraryFloatCosINTEL: *hasResult = true; *hasResultType = true; break;
2956     case SpvOpArbitraryFloatSinCosINTEL: *hasResult = true; *hasResultType = true; break;
2957     case SpvOpArbitraryFloatSinPiINTEL: *hasResult = true; *hasResultType = true; break;
2958     case SpvOpArbitraryFloatCosPiINTEL: *hasResult = true; *hasResultType = true; break;
2959     case SpvOpArbitraryFloatASinINTEL: *hasResult = true; *hasResultType = true; break;
2960     case SpvOpArbitraryFloatASinPiINTEL: *hasResult = true; *hasResultType = true; break;
2961     case SpvOpArbitraryFloatACosINTEL: *hasResult = true; *hasResultType = true; break;
2962     case SpvOpArbitraryFloatACosPiINTEL: *hasResult = true; *hasResultType = true; break;
2963     case SpvOpArbitraryFloatATanINTEL: *hasResult = true; *hasResultType = true; break;
2964     case SpvOpArbitraryFloatATanPiINTEL: *hasResult = true; *hasResultType = true; break;
2965     case SpvOpArbitraryFloatATan2INTEL: *hasResult = true; *hasResultType = true; break;
2966     case SpvOpArbitraryFloatPowINTEL: *hasResult = true; *hasResultType = true; break;
2967     case SpvOpArbitraryFloatPowRINTEL: *hasResult = true; *hasResultType = true; break;
2968     case SpvOpArbitraryFloatPowNINTEL: *hasResult = true; *hasResultType = true; break;
2969     case SpvOpLoopControlINTEL: *hasResult = false; *hasResultType = false; break;
2970     case SpvOpAliasDomainDeclINTEL: *hasResult = true; *hasResultType = false; break;
2971     case SpvOpAliasScopeDeclINTEL: *hasResult = true; *hasResultType = false; break;
2972     case SpvOpAliasScopeListDeclINTEL: *hasResult = true; *hasResultType = false; break;
2973     case SpvOpFixedSqrtINTEL: *hasResult = true; *hasResultType = true; break;
2974     case SpvOpFixedRecipINTEL: *hasResult = true; *hasResultType = true; break;
2975     case SpvOpFixedRsqrtINTEL: *hasResult = true; *hasResultType = true; break;
2976     case SpvOpFixedSinINTEL: *hasResult = true; *hasResultType = true; break;
2977     case SpvOpFixedCosINTEL: *hasResult = true; *hasResultType = true; break;
2978     case SpvOpFixedSinCosINTEL: *hasResult = true; *hasResultType = true; break;
2979     case SpvOpFixedSinPiINTEL: *hasResult = true; *hasResultType = true; break;
2980     case SpvOpFixedCosPiINTEL: *hasResult = true; *hasResultType = true; break;
2981     case SpvOpFixedSinCosPiINTEL: *hasResult = true; *hasResultType = true; break;
2982     case SpvOpFixedLogINTEL: *hasResult = true; *hasResultType = true; break;
2983     case SpvOpFixedExpINTEL: *hasResult = true; *hasResultType = true; break;
2984     case SpvOpPtrCastToCrossWorkgroupINTEL: *hasResult = true; *hasResultType = true; break;
2985     case SpvOpCrossWorkgroupCastToPtrINTEL: *hasResult = true; *hasResultType = true; break;
2986     case SpvOpReadPipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;
2987     case SpvOpWritePipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;
2988     case SpvOpFPGARegINTEL: *hasResult = true; *hasResultType = true; break;
2989     case SpvOpRayQueryGetRayTMinKHR: *hasResult = true; *hasResultType = true; break;
2990     case SpvOpRayQueryGetRayFlagsKHR: *hasResult = true; *hasResultType = true; break;
2991     case SpvOpRayQueryGetIntersectionTKHR: *hasResult = true; *hasResultType = true; break;
2992     case SpvOpRayQueryGetIntersectionInstanceCustomIndexKHR: *hasResult = true; *hasResultType = true; break;
2993     case SpvOpRayQueryGetIntersectionInstanceIdKHR: *hasResult = true; *hasResultType = true; break;
2994     case SpvOpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR: *hasResult = true; *hasResultType = true; break;
2995     case SpvOpRayQueryGetIntersectionGeometryIndexKHR: *hasResult = true; *hasResultType = true; break;
2996     case SpvOpRayQueryGetIntersectionPrimitiveIndexKHR: *hasResult = true; *hasResultType = true; break;
2997     case SpvOpRayQueryGetIntersectionBarycentricsKHR: *hasResult = true; *hasResultType = true; break;
2998     case SpvOpRayQueryGetIntersectionFrontFaceKHR: *hasResult = true; *hasResultType = true; break;
2999     case SpvOpRayQueryGetIntersectionCandidateAABBOpaqueKHR: *hasResult = true; *hasResultType = true; break;
3000     case SpvOpRayQueryGetIntersectionObjectRayDirectionKHR: *hasResult = true; *hasResultType = true; break;
3001     case SpvOpRayQueryGetIntersectionObjectRayOriginKHR: *hasResult = true; *hasResultType = true; break;
3002     case SpvOpRayQueryGetWorldRayDirectionKHR: *hasResult = true; *hasResultType = true; break;
3003     case SpvOpRayQueryGetWorldRayOriginKHR: *hasResult = true; *hasResultType = true; break;
3004     case SpvOpRayQueryGetIntersectionObjectToWorldKHR: *hasResult = true; *hasResultType = true; break;
3005     case SpvOpRayQueryGetIntersectionWorldToObjectKHR: *hasResult = true; *hasResultType = true; break;
3006     case SpvOpAtomicFAddEXT: *hasResult = true; *hasResultType = true; break;
3007     case SpvOpTypeBufferSurfaceINTEL: *hasResult = true; *hasResultType = false; break;
3008     case SpvOpTypeStructContinuedINTEL: *hasResult = false; *hasResultType = false; break;
3009     case SpvOpConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
3010     case SpvOpSpecConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
3011     case SpvOpCompositeConstructContinuedINTEL: *hasResult = true; *hasResultType = true; break;
3012     case SpvOpConvertFToBF16INTEL: *hasResult = true; *hasResultType = true; break;
3013     case SpvOpConvertBF16ToFINTEL: *hasResult = true; *hasResultType = true; break;
3014     case SpvOpControlBarrierArriveINTEL: *hasResult = false; *hasResultType = false; break;
3015     case SpvOpControlBarrierWaitINTEL: *hasResult = false; *hasResultType = false; break;
3016     case SpvOpArithmeticFenceEXT: *hasResult = true; *hasResultType = true; break;
3017     case SpvOpSubgroupBlockPrefetchINTEL: *hasResult = false; *hasResultType = false; break;
3018     case SpvOpGroupIMulKHR: *hasResult = true; *hasResultType = true; break;
3019     case SpvOpGroupFMulKHR: *hasResult = true; *hasResultType = true; break;
3020     case SpvOpGroupBitwiseAndKHR: *hasResult = true; *hasResultType = true; break;
3021     case SpvOpGroupBitwiseOrKHR: *hasResult = true; *hasResultType = true; break;
3022     case SpvOpGroupBitwiseXorKHR: *hasResult = true; *hasResultType = true; break;
3023     case SpvOpGroupLogicalAndKHR: *hasResult = true; *hasResultType = true; break;
3024     case SpvOpGroupLogicalOrKHR: *hasResult = true; *hasResultType = true; break;
3025     case SpvOpGroupLogicalXorKHR: *hasResult = true; *hasResultType = true; break;
3026     case SpvOpMaskedGatherINTEL: *hasResult = true; *hasResultType = true; break;
3027     case SpvOpMaskedScatterINTEL: *hasResult = false; *hasResultType = false; break;
3028     }
3029 }
SpvSourceLanguageToString(SpvSourceLanguage value)3030 inline const char* SpvSourceLanguageToString(SpvSourceLanguage value) {
3031     switch (value) {
3032     case SpvSourceLanguageUnknown: return "Unknown";
3033     case SpvSourceLanguageESSL: return "ESSL";
3034     case SpvSourceLanguageGLSL: return "GLSL";
3035     case SpvSourceLanguageOpenCL_C: return "OpenCL_C";
3036     case SpvSourceLanguageOpenCL_CPP: return "OpenCL_CPP";
3037     case SpvSourceLanguageHLSL: return "HLSL";
3038     case SpvSourceLanguageCPP_for_OpenCL: return "CPP_for_OpenCL";
3039     case SpvSourceLanguageSYCL: return "SYCL";
3040     case SpvSourceLanguageHERO_C: return "HERO_C";
3041     case SpvSourceLanguageNZSL: return "NZSL";
3042     case SpvSourceLanguageWGSL: return "WGSL";
3043     case SpvSourceLanguageSlang: return "Slang";
3044     case SpvSourceLanguageZig: return "Zig";
3045     default: return "Unknown";
3046     }
3047 }
3048 
SpvExecutionModelToString(SpvExecutionModel value)3049 inline const char* SpvExecutionModelToString(SpvExecutionModel value) {
3050     switch (value) {
3051     case SpvExecutionModelVertex: return "Vertex";
3052     case SpvExecutionModelTessellationControl: return "TessellationControl";
3053     case SpvExecutionModelTessellationEvaluation: return "TessellationEvaluation";
3054     case SpvExecutionModelGeometry: return "Geometry";
3055     case SpvExecutionModelFragment: return "Fragment";
3056     case SpvExecutionModelGLCompute: return "GLCompute";
3057     case SpvExecutionModelKernel: return "Kernel";
3058     case SpvExecutionModelTaskNV: return "TaskNV";
3059     case SpvExecutionModelMeshNV: return "MeshNV";
3060     case SpvExecutionModelRayGenerationKHR: return "RayGenerationKHR";
3061     case SpvExecutionModelIntersectionKHR: return "IntersectionKHR";
3062     case SpvExecutionModelAnyHitKHR: return "AnyHitKHR";
3063     case SpvExecutionModelClosestHitKHR: return "ClosestHitKHR";
3064     case SpvExecutionModelMissKHR: return "MissKHR";
3065     case SpvExecutionModelCallableKHR: return "CallableKHR";
3066     case SpvExecutionModelTaskEXT: return "TaskEXT";
3067     case SpvExecutionModelMeshEXT: return "MeshEXT";
3068     default: return "Unknown";
3069     }
3070 }
3071 
SpvAddressingModelToString(SpvAddressingModel value)3072 inline const char* SpvAddressingModelToString(SpvAddressingModel value) {
3073     switch (value) {
3074     case SpvAddressingModelLogical: return "Logical";
3075     case SpvAddressingModelPhysical32: return "Physical32";
3076     case SpvAddressingModelPhysical64: return "Physical64";
3077     case SpvAddressingModelPhysicalStorageBuffer64: return "PhysicalStorageBuffer64";
3078     default: return "Unknown";
3079     }
3080 }
3081 
SpvMemoryModelToString(SpvMemoryModel value)3082 inline const char* SpvMemoryModelToString(SpvMemoryModel value) {
3083     switch (value) {
3084     case SpvMemoryModelSimple: return "Simple";
3085     case SpvMemoryModelGLSL450: return "GLSL450";
3086     case SpvMemoryModelOpenCL: return "OpenCL";
3087     case SpvMemoryModelVulkan: return "Vulkan";
3088     default: return "Unknown";
3089     }
3090 }
3091 
SpvExecutionModeToString(SpvExecutionMode value)3092 inline const char* SpvExecutionModeToString(SpvExecutionMode value) {
3093     switch (value) {
3094     case SpvExecutionModeInvocations: return "Invocations";
3095     case SpvExecutionModeSpacingEqual: return "SpacingEqual";
3096     case SpvExecutionModeSpacingFractionalEven: return "SpacingFractionalEven";
3097     case SpvExecutionModeSpacingFractionalOdd: return "SpacingFractionalOdd";
3098     case SpvExecutionModeVertexOrderCw: return "VertexOrderCw";
3099     case SpvExecutionModeVertexOrderCcw: return "VertexOrderCcw";
3100     case SpvExecutionModePixelCenterInteger: return "PixelCenterInteger";
3101     case SpvExecutionModeOriginUpperLeft: return "OriginUpperLeft";
3102     case SpvExecutionModeOriginLowerLeft: return "OriginLowerLeft";
3103     case SpvExecutionModeEarlyFragmentTests: return "EarlyFragmentTests";
3104     case SpvExecutionModePointMode: return "PointMode";
3105     case SpvExecutionModeXfb: return "Xfb";
3106     case SpvExecutionModeDepthReplacing: return "DepthReplacing";
3107     case SpvExecutionModeDepthGreater: return "DepthGreater";
3108     case SpvExecutionModeDepthLess: return "DepthLess";
3109     case SpvExecutionModeDepthUnchanged: return "DepthUnchanged";
3110     case SpvExecutionModeLocalSize: return "LocalSize";
3111     case SpvExecutionModeLocalSizeHint: return "LocalSizeHint";
3112     case SpvExecutionModeInputPoints: return "InputPoints";
3113     case SpvExecutionModeInputLines: return "InputLines";
3114     case SpvExecutionModeInputLinesAdjacency: return "InputLinesAdjacency";
3115     case SpvExecutionModeTriangles: return "Triangles";
3116     case SpvExecutionModeInputTrianglesAdjacency: return "InputTrianglesAdjacency";
3117     case SpvExecutionModeQuads: return "Quads";
3118     case SpvExecutionModeIsolines: return "Isolines";
3119     case SpvExecutionModeOutputVertices: return "OutputVertices";
3120     case SpvExecutionModeOutputPoints: return "OutputPoints";
3121     case SpvExecutionModeOutputLineStrip: return "OutputLineStrip";
3122     case SpvExecutionModeOutputTriangleStrip: return "OutputTriangleStrip";
3123     case SpvExecutionModeVecTypeHint: return "VecTypeHint";
3124     case SpvExecutionModeContractionOff: return "ContractionOff";
3125     case SpvExecutionModeInitializer: return "Initializer";
3126     case SpvExecutionModeFinalizer: return "Finalizer";
3127     case SpvExecutionModeSubgroupSize: return "SubgroupSize";
3128     case SpvExecutionModeSubgroupsPerWorkgroup: return "SubgroupsPerWorkgroup";
3129     case SpvExecutionModeSubgroupsPerWorkgroupId: return "SubgroupsPerWorkgroupId";
3130     case SpvExecutionModeLocalSizeId: return "LocalSizeId";
3131     case SpvExecutionModeLocalSizeHintId: return "LocalSizeHintId";
3132     case SpvExecutionModeNonCoherentColorAttachmentReadEXT: return "NonCoherentColorAttachmentReadEXT";
3133     case SpvExecutionModeNonCoherentDepthAttachmentReadEXT: return "NonCoherentDepthAttachmentReadEXT";
3134     case SpvExecutionModeNonCoherentStencilAttachmentReadEXT: return "NonCoherentStencilAttachmentReadEXT";
3135     case SpvExecutionModeSubgroupUniformControlFlowKHR: return "SubgroupUniformControlFlowKHR";
3136     case SpvExecutionModePostDepthCoverage: return "PostDepthCoverage";
3137     case SpvExecutionModeDenormPreserve: return "DenormPreserve";
3138     case SpvExecutionModeDenormFlushToZero: return "DenormFlushToZero";
3139     case SpvExecutionModeSignedZeroInfNanPreserve: return "SignedZeroInfNanPreserve";
3140     case SpvExecutionModeRoundingModeRTE: return "RoundingModeRTE";
3141     case SpvExecutionModeRoundingModeRTZ: return "RoundingModeRTZ";
3142     case SpvExecutionModeEarlyAndLateFragmentTestsAMD: return "EarlyAndLateFragmentTestsAMD";
3143     case SpvExecutionModeStencilRefReplacingEXT: return "StencilRefReplacingEXT";
3144     case SpvExecutionModeCoalescingAMDX: return "CoalescingAMDX";
3145     case SpvExecutionModeIsApiEntryAMDX: return "IsApiEntryAMDX";
3146     case SpvExecutionModeMaxNodeRecursionAMDX: return "MaxNodeRecursionAMDX";
3147     case SpvExecutionModeStaticNumWorkgroupsAMDX: return "StaticNumWorkgroupsAMDX";
3148     case SpvExecutionModeShaderIndexAMDX: return "ShaderIndexAMDX";
3149     case SpvExecutionModeMaxNumWorkgroupsAMDX: return "MaxNumWorkgroupsAMDX";
3150     case SpvExecutionModeStencilRefUnchangedFrontAMD: return "StencilRefUnchangedFrontAMD";
3151     case SpvExecutionModeStencilRefGreaterFrontAMD: return "StencilRefGreaterFrontAMD";
3152     case SpvExecutionModeStencilRefLessFrontAMD: return "StencilRefLessFrontAMD";
3153     case SpvExecutionModeStencilRefUnchangedBackAMD: return "StencilRefUnchangedBackAMD";
3154     case SpvExecutionModeStencilRefGreaterBackAMD: return "StencilRefGreaterBackAMD";
3155     case SpvExecutionModeStencilRefLessBackAMD: return "StencilRefLessBackAMD";
3156     case SpvExecutionModeQuadDerivativesKHR: return "QuadDerivativesKHR";
3157     case SpvExecutionModeRequireFullQuadsKHR: return "RequireFullQuadsKHR";
3158     case SpvExecutionModeSharesInputWithAMDX: return "SharesInputWithAMDX";
3159     case SpvExecutionModeOutputLinesEXT: return "OutputLinesEXT";
3160     case SpvExecutionModeOutputPrimitivesEXT: return "OutputPrimitivesEXT";
3161     case SpvExecutionModeDerivativeGroupQuadsKHR: return "DerivativeGroupQuadsKHR";
3162     case SpvExecutionModeDerivativeGroupLinearKHR: return "DerivativeGroupLinearKHR";
3163     case SpvExecutionModeOutputTrianglesEXT: return "OutputTrianglesEXT";
3164     case SpvExecutionModePixelInterlockOrderedEXT: return "PixelInterlockOrderedEXT";
3165     case SpvExecutionModePixelInterlockUnorderedEXT: return "PixelInterlockUnorderedEXT";
3166     case SpvExecutionModeSampleInterlockOrderedEXT: return "SampleInterlockOrderedEXT";
3167     case SpvExecutionModeSampleInterlockUnorderedEXT: return "SampleInterlockUnorderedEXT";
3168     case SpvExecutionModeShadingRateInterlockOrderedEXT: return "ShadingRateInterlockOrderedEXT";
3169     case SpvExecutionModeShadingRateInterlockUnorderedEXT: return "ShadingRateInterlockUnorderedEXT";
3170     case SpvExecutionModeSharedLocalMemorySizeINTEL: return "SharedLocalMemorySizeINTEL";
3171     case SpvExecutionModeRoundingModeRTPINTEL: return "RoundingModeRTPINTEL";
3172     case SpvExecutionModeRoundingModeRTNINTEL: return "RoundingModeRTNINTEL";
3173     case SpvExecutionModeFloatingPointModeALTINTEL: return "FloatingPointModeALTINTEL";
3174     case SpvExecutionModeFloatingPointModeIEEEINTEL: return "FloatingPointModeIEEEINTEL";
3175     case SpvExecutionModeMaxWorkgroupSizeINTEL: return "MaxWorkgroupSizeINTEL";
3176     case SpvExecutionModeMaxWorkDimINTEL: return "MaxWorkDimINTEL";
3177     case SpvExecutionModeNoGlobalOffsetINTEL: return "NoGlobalOffsetINTEL";
3178     case SpvExecutionModeNumSIMDWorkitemsINTEL: return "NumSIMDWorkitemsINTEL";
3179     case SpvExecutionModeSchedulerTargetFmaxMhzINTEL: return "SchedulerTargetFmaxMhzINTEL";
3180     case SpvExecutionModeMaximallyReconvergesKHR: return "MaximallyReconvergesKHR";
3181     case SpvExecutionModeFPFastMathDefault: return "FPFastMathDefault";
3182     case SpvExecutionModeStreamingInterfaceINTEL: return "StreamingInterfaceINTEL";
3183     case SpvExecutionModeRegisterMapInterfaceINTEL: return "RegisterMapInterfaceINTEL";
3184     case SpvExecutionModeNamedBarrierCountINTEL: return "NamedBarrierCountINTEL";
3185     case SpvExecutionModeMaximumRegistersINTEL: return "MaximumRegistersINTEL";
3186     case SpvExecutionModeMaximumRegistersIdINTEL: return "MaximumRegistersIdINTEL";
3187     case SpvExecutionModeNamedMaximumRegistersINTEL: return "NamedMaximumRegistersINTEL";
3188     default: return "Unknown";
3189     }
3190 }
3191 
SpvStorageClassToString(SpvStorageClass value)3192 inline const char* SpvStorageClassToString(SpvStorageClass value) {
3193     switch (value) {
3194     case SpvStorageClassUniformConstant: return "UniformConstant";
3195     case SpvStorageClassInput: return "Input";
3196     case SpvStorageClassUniform: return "Uniform";
3197     case SpvStorageClassOutput: return "Output";
3198     case SpvStorageClassWorkgroup: return "Workgroup";
3199     case SpvStorageClassCrossWorkgroup: return "CrossWorkgroup";
3200     case SpvStorageClassPrivate: return "Private";
3201     case SpvStorageClassFunction: return "Function";
3202     case SpvStorageClassGeneric: return "Generic";
3203     case SpvStorageClassPushConstant: return "PushConstant";
3204     case SpvStorageClassAtomicCounter: return "AtomicCounter";
3205     case SpvStorageClassImage: return "Image";
3206     case SpvStorageClassStorageBuffer: return "StorageBuffer";
3207     case SpvStorageClassTileImageEXT: return "TileImageEXT";
3208     case SpvStorageClassNodePayloadAMDX: return "NodePayloadAMDX";
3209     case SpvStorageClassCallableDataKHR: return "CallableDataKHR";
3210     case SpvStorageClassIncomingCallableDataKHR: return "IncomingCallableDataKHR";
3211     case SpvStorageClassRayPayloadKHR: return "RayPayloadKHR";
3212     case SpvStorageClassHitAttributeKHR: return "HitAttributeKHR";
3213     case SpvStorageClassIncomingRayPayloadKHR: return "IncomingRayPayloadKHR";
3214     case SpvStorageClassShaderRecordBufferKHR: return "ShaderRecordBufferKHR";
3215     case SpvStorageClassPhysicalStorageBuffer: return "PhysicalStorageBuffer";
3216     case SpvStorageClassHitObjectAttributeNV: return "HitObjectAttributeNV";
3217     case SpvStorageClassTaskPayloadWorkgroupEXT: return "TaskPayloadWorkgroupEXT";
3218     case SpvStorageClassCodeSectionINTEL: return "CodeSectionINTEL";
3219     case SpvStorageClassDeviceOnlyINTEL: return "DeviceOnlyINTEL";
3220     case SpvStorageClassHostOnlyINTEL: return "HostOnlyINTEL";
3221     default: return "Unknown";
3222     }
3223 }
3224 
SpvDimToString(SpvDim value)3225 inline const char* SpvDimToString(SpvDim value) {
3226     switch (value) {
3227     case SpvDim1D: return "1D";
3228     case SpvDim2D: return "2D";
3229     case SpvDim3D: return "3D";
3230     case SpvDimCube: return "Cube";
3231     case SpvDimRect: return "Rect";
3232     case SpvDimBuffer: return "Buffer";
3233     case SpvDimSubpassData: return "SubpassData";
3234     case SpvDimTileImageDataEXT: return "TileImageDataEXT";
3235     default: return "Unknown";
3236     }
3237 }
3238 
SpvSamplerAddressingModeToString(SpvSamplerAddressingMode value)3239 inline const char* SpvSamplerAddressingModeToString(SpvSamplerAddressingMode value) {
3240     switch (value) {
3241     case SpvSamplerAddressingModeNone: return "None";
3242     case SpvSamplerAddressingModeClampToEdge: return "ClampToEdge";
3243     case SpvSamplerAddressingModeClamp: return "Clamp";
3244     case SpvSamplerAddressingModeRepeat: return "Repeat";
3245     case SpvSamplerAddressingModeRepeatMirrored: return "RepeatMirrored";
3246     default: return "Unknown";
3247     }
3248 }
3249 
SpvSamplerFilterModeToString(SpvSamplerFilterMode value)3250 inline const char* SpvSamplerFilterModeToString(SpvSamplerFilterMode value) {
3251     switch (value) {
3252     case SpvSamplerFilterModeNearest: return "Nearest";
3253     case SpvSamplerFilterModeLinear: return "Linear";
3254     default: return "Unknown";
3255     }
3256 }
3257 
SpvImageFormatToString(SpvImageFormat value)3258 inline const char* SpvImageFormatToString(SpvImageFormat value) {
3259     switch (value) {
3260     case SpvImageFormatUnknown: return "Unknown";
3261     case SpvImageFormatRgba32f: return "Rgba32f";
3262     case SpvImageFormatRgba16f: return "Rgba16f";
3263     case SpvImageFormatR32f: return "R32f";
3264     case SpvImageFormatRgba8: return "Rgba8";
3265     case SpvImageFormatRgba8Snorm: return "Rgba8Snorm";
3266     case SpvImageFormatRg32f: return "Rg32f";
3267     case SpvImageFormatRg16f: return "Rg16f";
3268     case SpvImageFormatR11fG11fB10f: return "R11fG11fB10f";
3269     case SpvImageFormatR16f: return "R16f";
3270     case SpvImageFormatRgba16: return "Rgba16";
3271     case SpvImageFormatRgb10A2: return "Rgb10A2";
3272     case SpvImageFormatRg16: return "Rg16";
3273     case SpvImageFormatRg8: return "Rg8";
3274     case SpvImageFormatR16: return "R16";
3275     case SpvImageFormatR8: return "R8";
3276     case SpvImageFormatRgba16Snorm: return "Rgba16Snorm";
3277     case SpvImageFormatRg16Snorm: return "Rg16Snorm";
3278     case SpvImageFormatRg8Snorm: return "Rg8Snorm";
3279     case SpvImageFormatR16Snorm: return "R16Snorm";
3280     case SpvImageFormatR8Snorm: return "R8Snorm";
3281     case SpvImageFormatRgba32i: return "Rgba32i";
3282     case SpvImageFormatRgba16i: return "Rgba16i";
3283     case SpvImageFormatRgba8i: return "Rgba8i";
3284     case SpvImageFormatR32i: return "R32i";
3285     case SpvImageFormatRg32i: return "Rg32i";
3286     case SpvImageFormatRg16i: return "Rg16i";
3287     case SpvImageFormatRg8i: return "Rg8i";
3288     case SpvImageFormatR16i: return "R16i";
3289     case SpvImageFormatR8i: return "R8i";
3290     case SpvImageFormatRgba32ui: return "Rgba32ui";
3291     case SpvImageFormatRgba16ui: return "Rgba16ui";
3292     case SpvImageFormatRgba8ui: return "Rgba8ui";
3293     case SpvImageFormatR32ui: return "R32ui";
3294     case SpvImageFormatRgb10a2ui: return "Rgb10a2ui";
3295     case SpvImageFormatRg32ui: return "Rg32ui";
3296     case SpvImageFormatRg16ui: return "Rg16ui";
3297     case SpvImageFormatRg8ui: return "Rg8ui";
3298     case SpvImageFormatR16ui: return "R16ui";
3299     case SpvImageFormatR8ui: return "R8ui";
3300     case SpvImageFormatR64ui: return "R64ui";
3301     case SpvImageFormatR64i: return "R64i";
3302     default: return "Unknown";
3303     }
3304 }
3305 
SpvImageChannelOrderToString(SpvImageChannelOrder value)3306 inline const char* SpvImageChannelOrderToString(SpvImageChannelOrder value) {
3307     switch (value) {
3308     case SpvImageChannelOrderR: return "R";
3309     case SpvImageChannelOrderA: return "A";
3310     case SpvImageChannelOrderRG: return "RG";
3311     case SpvImageChannelOrderRA: return "RA";
3312     case SpvImageChannelOrderRGB: return "RGB";
3313     case SpvImageChannelOrderRGBA: return "RGBA";
3314     case SpvImageChannelOrderBGRA: return "BGRA";
3315     case SpvImageChannelOrderARGB: return "ARGB";
3316     case SpvImageChannelOrderIntensity: return "Intensity";
3317     case SpvImageChannelOrderLuminance: return "Luminance";
3318     case SpvImageChannelOrderRx: return "Rx";
3319     case SpvImageChannelOrderRGx: return "RGx";
3320     case SpvImageChannelOrderRGBx: return "RGBx";
3321     case SpvImageChannelOrderDepth: return "Depth";
3322     case SpvImageChannelOrderDepthStencil: return "DepthStencil";
3323     case SpvImageChannelOrdersRGB: return "sRGB";
3324     case SpvImageChannelOrdersRGBx: return "sRGBx";
3325     case SpvImageChannelOrdersRGBA: return "sRGBA";
3326     case SpvImageChannelOrdersBGRA: return "sBGRA";
3327     case SpvImageChannelOrderABGR: return "ABGR";
3328     default: return "Unknown";
3329     }
3330 }
3331 
SpvImageChannelDataTypeToString(SpvImageChannelDataType value)3332 inline const char* SpvImageChannelDataTypeToString(SpvImageChannelDataType value) {
3333     switch (value) {
3334     case SpvImageChannelDataTypeSnormInt8: return "SnormInt8";
3335     case SpvImageChannelDataTypeSnormInt16: return "SnormInt16";
3336     case SpvImageChannelDataTypeUnormInt8: return "UnormInt8";
3337     case SpvImageChannelDataTypeUnormInt16: return "UnormInt16";
3338     case SpvImageChannelDataTypeUnormShort565: return "UnormShort565";
3339     case SpvImageChannelDataTypeUnormShort555: return "UnormShort555";
3340     case SpvImageChannelDataTypeUnormInt101010: return "UnormInt101010";
3341     case SpvImageChannelDataTypeSignedInt8: return "SignedInt8";
3342     case SpvImageChannelDataTypeSignedInt16: return "SignedInt16";
3343     case SpvImageChannelDataTypeSignedInt32: return "SignedInt32";
3344     case SpvImageChannelDataTypeUnsignedInt8: return "UnsignedInt8";
3345     case SpvImageChannelDataTypeUnsignedInt16: return "UnsignedInt16";
3346     case SpvImageChannelDataTypeUnsignedInt32: return "UnsignedInt32";
3347     case SpvImageChannelDataTypeHalfFloat: return "HalfFloat";
3348     case SpvImageChannelDataTypeFloat: return "Float";
3349     case SpvImageChannelDataTypeUnormInt24: return "UnormInt24";
3350     case SpvImageChannelDataTypeUnormInt101010_2: return "UnormInt101010_2";
3351     case SpvImageChannelDataTypeUnsignedIntRaw10EXT: return "UnsignedIntRaw10EXT";
3352     case SpvImageChannelDataTypeUnsignedIntRaw12EXT: return "UnsignedIntRaw12EXT";
3353     case SpvImageChannelDataTypeUnormInt2_101010EXT: return "UnormInt2_101010EXT";
3354     default: return "Unknown";
3355     }
3356 }
3357 
SpvFPRoundingModeToString(SpvFPRoundingMode value)3358 inline const char* SpvFPRoundingModeToString(SpvFPRoundingMode value) {
3359     switch (value) {
3360     case SpvFPRoundingModeRTE: return "RTE";
3361     case SpvFPRoundingModeRTZ: return "RTZ";
3362     case SpvFPRoundingModeRTP: return "RTP";
3363     case SpvFPRoundingModeRTN: return "RTN";
3364     default: return "Unknown";
3365     }
3366 }
3367 
SpvLinkageTypeToString(SpvLinkageType value)3368 inline const char* SpvLinkageTypeToString(SpvLinkageType value) {
3369     switch (value) {
3370     case SpvLinkageTypeExport: return "Export";
3371     case SpvLinkageTypeImport: return "Import";
3372     case SpvLinkageTypeLinkOnceODR: return "LinkOnceODR";
3373     default: return "Unknown";
3374     }
3375 }
3376 
SpvAccessQualifierToString(SpvAccessQualifier value)3377 inline const char* SpvAccessQualifierToString(SpvAccessQualifier value) {
3378     switch (value) {
3379     case SpvAccessQualifierReadOnly: return "ReadOnly";
3380     case SpvAccessQualifierWriteOnly: return "WriteOnly";
3381     case SpvAccessQualifierReadWrite: return "ReadWrite";
3382     default: return "Unknown";
3383     }
3384 }
3385 
SpvFunctionParameterAttributeToString(SpvFunctionParameterAttribute value)3386 inline const char* SpvFunctionParameterAttributeToString(SpvFunctionParameterAttribute value) {
3387     switch (value) {
3388     case SpvFunctionParameterAttributeZext: return "Zext";
3389     case SpvFunctionParameterAttributeSext: return "Sext";
3390     case SpvFunctionParameterAttributeByVal: return "ByVal";
3391     case SpvFunctionParameterAttributeSret: return "Sret";
3392     case SpvFunctionParameterAttributeNoAlias: return "NoAlias";
3393     case SpvFunctionParameterAttributeNoCapture: return "NoCapture";
3394     case SpvFunctionParameterAttributeNoWrite: return "NoWrite";
3395     case SpvFunctionParameterAttributeNoReadWrite: return "NoReadWrite";
3396     case SpvFunctionParameterAttributeRuntimeAlignedINTEL: return "RuntimeAlignedINTEL";
3397     default: return "Unknown";
3398     }
3399 }
3400 
SpvDecorationToString(SpvDecoration value)3401 inline const char* SpvDecorationToString(SpvDecoration value) {
3402     switch (value) {
3403     case SpvDecorationRelaxedPrecision: return "RelaxedPrecision";
3404     case SpvDecorationSpecId: return "SpecId";
3405     case SpvDecorationBlock: return "Block";
3406     case SpvDecorationBufferBlock: return "BufferBlock";
3407     case SpvDecorationRowMajor: return "RowMajor";
3408     case SpvDecorationColMajor: return "ColMajor";
3409     case SpvDecorationArrayStride: return "ArrayStride";
3410     case SpvDecorationMatrixStride: return "MatrixStride";
3411     case SpvDecorationGLSLShared: return "GLSLShared";
3412     case SpvDecorationGLSLPacked: return "GLSLPacked";
3413     case SpvDecorationCPacked: return "CPacked";
3414     case SpvDecorationBuiltIn: return "BuiltIn";
3415     case SpvDecorationNoPerspective: return "NoPerspective";
3416     case SpvDecorationFlat: return "Flat";
3417     case SpvDecorationPatch: return "Patch";
3418     case SpvDecorationCentroid: return "Centroid";
3419     case SpvDecorationSample: return "Sample";
3420     case SpvDecorationInvariant: return "Invariant";
3421     case SpvDecorationRestrict: return "Restrict";
3422     case SpvDecorationAliased: return "Aliased";
3423     case SpvDecorationVolatile: return "Volatile";
3424     case SpvDecorationConstant: return "Constant";
3425     case SpvDecorationCoherent: return "Coherent";
3426     case SpvDecorationNonWritable: return "NonWritable";
3427     case SpvDecorationNonReadable: return "NonReadable";
3428     case SpvDecorationUniform: return "Uniform";
3429     case SpvDecorationUniformId: return "UniformId";
3430     case SpvDecorationSaturatedConversion: return "SaturatedConversion";
3431     case SpvDecorationStream: return "Stream";
3432     case SpvDecorationLocation: return "Location";
3433     case SpvDecorationComponent: return "Component";
3434     case SpvDecorationIndex: return "Index";
3435     case SpvDecorationBinding: return "Binding";
3436     case SpvDecorationDescriptorSet: return "DescriptorSet";
3437     case SpvDecorationOffset: return "Offset";
3438     case SpvDecorationXfbBuffer: return "XfbBuffer";
3439     case SpvDecorationXfbStride: return "XfbStride";
3440     case SpvDecorationFuncParamAttr: return "FuncParamAttr";
3441     case SpvDecorationFPRoundingMode: return "FPRoundingMode";
3442     case SpvDecorationFPFastMathMode: return "FPFastMathMode";
3443     case SpvDecorationLinkageAttributes: return "LinkageAttributes";
3444     case SpvDecorationNoContraction: return "NoContraction";
3445     case SpvDecorationInputAttachmentIndex: return "InputAttachmentIndex";
3446     case SpvDecorationAlignment: return "Alignment";
3447     case SpvDecorationMaxByteOffset: return "MaxByteOffset";
3448     case SpvDecorationAlignmentId: return "AlignmentId";
3449     case SpvDecorationMaxByteOffsetId: return "MaxByteOffsetId";
3450     case SpvDecorationNoSignedWrap: return "NoSignedWrap";
3451     case SpvDecorationNoUnsignedWrap: return "NoUnsignedWrap";
3452     case SpvDecorationWeightTextureQCOM: return "WeightTextureQCOM";
3453     case SpvDecorationBlockMatchTextureQCOM: return "BlockMatchTextureQCOM";
3454     case SpvDecorationBlockMatchSamplerQCOM: return "BlockMatchSamplerQCOM";
3455     case SpvDecorationExplicitInterpAMD: return "ExplicitInterpAMD";
3456     case SpvDecorationNodeSharesPayloadLimitsWithAMDX: return "NodeSharesPayloadLimitsWithAMDX";
3457     case SpvDecorationNodeMaxPayloadsAMDX: return "NodeMaxPayloadsAMDX";
3458     case SpvDecorationTrackFinishWritingAMDX: return "TrackFinishWritingAMDX";
3459     case SpvDecorationPayloadNodeNameAMDX: return "PayloadNodeNameAMDX";
3460     case SpvDecorationPayloadNodeBaseIndexAMDX: return "PayloadNodeBaseIndexAMDX";
3461     case SpvDecorationPayloadNodeSparseArrayAMDX: return "PayloadNodeSparseArrayAMDX";
3462     case SpvDecorationPayloadNodeArraySizeAMDX: return "PayloadNodeArraySizeAMDX";
3463     case SpvDecorationPayloadDispatchIndirectAMDX: return "PayloadDispatchIndirectAMDX";
3464     case SpvDecorationOverrideCoverageNV: return "OverrideCoverageNV";
3465     case SpvDecorationPassthroughNV: return "PassthroughNV";
3466     case SpvDecorationViewportRelativeNV: return "ViewportRelativeNV";
3467     case SpvDecorationSecondaryViewportRelativeNV: return "SecondaryViewportRelativeNV";
3468     case SpvDecorationPerPrimitiveEXT: return "PerPrimitiveEXT";
3469     case SpvDecorationPerViewNV: return "PerViewNV";
3470     case SpvDecorationPerTaskNV: return "PerTaskNV";
3471     case SpvDecorationPerVertexKHR: return "PerVertexKHR";
3472     case SpvDecorationNonUniform: return "NonUniform";
3473     case SpvDecorationRestrictPointer: return "RestrictPointer";
3474     case SpvDecorationAliasedPointer: return "AliasedPointer";
3475     case SpvDecorationHitObjectShaderRecordBufferNV: return "HitObjectShaderRecordBufferNV";
3476     case SpvDecorationBindlessSamplerNV: return "BindlessSamplerNV";
3477     case SpvDecorationBindlessImageNV: return "BindlessImageNV";
3478     case SpvDecorationBoundSamplerNV: return "BoundSamplerNV";
3479     case SpvDecorationBoundImageNV: return "BoundImageNV";
3480     case SpvDecorationSIMTCallINTEL: return "SIMTCallINTEL";
3481     case SpvDecorationReferencedIndirectlyINTEL: return "ReferencedIndirectlyINTEL";
3482     case SpvDecorationClobberINTEL: return "ClobberINTEL";
3483     case SpvDecorationSideEffectsINTEL: return "SideEffectsINTEL";
3484     case SpvDecorationVectorComputeVariableINTEL: return "VectorComputeVariableINTEL";
3485     case SpvDecorationFuncParamIOKindINTEL: return "FuncParamIOKindINTEL";
3486     case SpvDecorationVectorComputeFunctionINTEL: return "VectorComputeFunctionINTEL";
3487     case SpvDecorationStackCallINTEL: return "StackCallINTEL";
3488     case SpvDecorationGlobalVariableOffsetINTEL: return "GlobalVariableOffsetINTEL";
3489     case SpvDecorationCounterBuffer: return "CounterBuffer";
3490     case SpvDecorationHlslSemanticGOOGLE: return "HlslSemanticGOOGLE";
3491     case SpvDecorationUserTypeGOOGLE: return "UserTypeGOOGLE";
3492     case SpvDecorationFunctionRoundingModeINTEL: return "FunctionRoundingModeINTEL";
3493     case SpvDecorationFunctionDenormModeINTEL: return "FunctionDenormModeINTEL";
3494     case SpvDecorationRegisterINTEL: return "RegisterINTEL";
3495     case SpvDecorationMemoryINTEL: return "MemoryINTEL";
3496     case SpvDecorationNumbanksINTEL: return "NumbanksINTEL";
3497     case SpvDecorationBankwidthINTEL: return "BankwidthINTEL";
3498     case SpvDecorationMaxPrivateCopiesINTEL: return "MaxPrivateCopiesINTEL";
3499     case SpvDecorationSinglepumpINTEL: return "SinglepumpINTEL";
3500     case SpvDecorationDoublepumpINTEL: return "DoublepumpINTEL";
3501     case SpvDecorationMaxReplicatesINTEL: return "MaxReplicatesINTEL";
3502     case SpvDecorationSimpleDualPortINTEL: return "SimpleDualPortINTEL";
3503     case SpvDecorationMergeINTEL: return "MergeINTEL";
3504     case SpvDecorationBankBitsINTEL: return "BankBitsINTEL";
3505     case SpvDecorationForcePow2DepthINTEL: return "ForcePow2DepthINTEL";
3506     case SpvDecorationStridesizeINTEL: return "StridesizeINTEL";
3507     case SpvDecorationWordsizeINTEL: return "WordsizeINTEL";
3508     case SpvDecorationTrueDualPortINTEL: return "TrueDualPortINTEL";
3509     case SpvDecorationBurstCoalesceINTEL: return "BurstCoalesceINTEL";
3510     case SpvDecorationCacheSizeINTEL: return "CacheSizeINTEL";
3511     case SpvDecorationDontStaticallyCoalesceINTEL: return "DontStaticallyCoalesceINTEL";
3512     case SpvDecorationPrefetchINTEL: return "PrefetchINTEL";
3513     case SpvDecorationStallEnableINTEL: return "StallEnableINTEL";
3514     case SpvDecorationFuseLoopsInFunctionINTEL: return "FuseLoopsInFunctionINTEL";
3515     case SpvDecorationMathOpDSPModeINTEL: return "MathOpDSPModeINTEL";
3516     case SpvDecorationAliasScopeINTEL: return "AliasScopeINTEL";
3517     case SpvDecorationNoAliasINTEL: return "NoAliasINTEL";
3518     case SpvDecorationInitiationIntervalINTEL: return "InitiationIntervalINTEL";
3519     case SpvDecorationMaxConcurrencyINTEL: return "MaxConcurrencyINTEL";
3520     case SpvDecorationPipelineEnableINTEL: return "PipelineEnableINTEL";
3521     case SpvDecorationBufferLocationINTEL: return "BufferLocationINTEL";
3522     case SpvDecorationIOPipeStorageINTEL: return "IOPipeStorageINTEL";
3523     case SpvDecorationFunctionFloatingPointModeINTEL: return "FunctionFloatingPointModeINTEL";
3524     case SpvDecorationSingleElementVectorINTEL: return "SingleElementVectorINTEL";
3525     case SpvDecorationVectorComputeCallableFunctionINTEL: return "VectorComputeCallableFunctionINTEL";
3526     case SpvDecorationMediaBlockIOINTEL: return "MediaBlockIOINTEL";
3527     case SpvDecorationStallFreeINTEL: return "StallFreeINTEL";
3528     case SpvDecorationFPMaxErrorDecorationINTEL: return "FPMaxErrorDecorationINTEL";
3529     case SpvDecorationLatencyControlLabelINTEL: return "LatencyControlLabelINTEL";
3530     case SpvDecorationLatencyControlConstraintINTEL: return "LatencyControlConstraintINTEL";
3531     case SpvDecorationConduitKernelArgumentINTEL: return "ConduitKernelArgumentINTEL";
3532     case SpvDecorationRegisterMapKernelArgumentINTEL: return "RegisterMapKernelArgumentINTEL";
3533     case SpvDecorationMMHostInterfaceAddressWidthINTEL: return "MMHostInterfaceAddressWidthINTEL";
3534     case SpvDecorationMMHostInterfaceDataWidthINTEL: return "MMHostInterfaceDataWidthINTEL";
3535     case SpvDecorationMMHostInterfaceLatencyINTEL: return "MMHostInterfaceLatencyINTEL";
3536     case SpvDecorationMMHostInterfaceReadWriteModeINTEL: return "MMHostInterfaceReadWriteModeINTEL";
3537     case SpvDecorationMMHostInterfaceMaxBurstINTEL: return "MMHostInterfaceMaxBurstINTEL";
3538     case SpvDecorationMMHostInterfaceWaitRequestINTEL: return "MMHostInterfaceWaitRequestINTEL";
3539     case SpvDecorationStableKernelArgumentINTEL: return "StableKernelArgumentINTEL";
3540     case SpvDecorationHostAccessINTEL: return "HostAccessINTEL";
3541     case SpvDecorationInitModeINTEL: return "InitModeINTEL";
3542     case SpvDecorationImplementInRegisterMapINTEL: return "ImplementInRegisterMapINTEL";
3543     case SpvDecorationCacheControlLoadINTEL: return "CacheControlLoadINTEL";
3544     case SpvDecorationCacheControlStoreINTEL: return "CacheControlStoreINTEL";
3545     default: return "Unknown";
3546     }
3547 }
3548 
SpvBuiltInToString(SpvBuiltIn value)3549 inline const char* SpvBuiltInToString(SpvBuiltIn value) {
3550     switch (value) {
3551     case SpvBuiltInPosition: return "Position";
3552     case SpvBuiltInPointSize: return "PointSize";
3553     case SpvBuiltInClipDistance: return "ClipDistance";
3554     case SpvBuiltInCullDistance: return "CullDistance";
3555     case SpvBuiltInVertexId: return "VertexId";
3556     case SpvBuiltInInstanceId: return "InstanceId";
3557     case SpvBuiltInPrimitiveId: return "PrimitiveId";
3558     case SpvBuiltInInvocationId: return "InvocationId";
3559     case SpvBuiltInLayer: return "Layer";
3560     case SpvBuiltInViewportIndex: return "ViewportIndex";
3561     case SpvBuiltInTessLevelOuter: return "TessLevelOuter";
3562     case SpvBuiltInTessLevelInner: return "TessLevelInner";
3563     case SpvBuiltInTessCoord: return "TessCoord";
3564     case SpvBuiltInPatchVertices: return "PatchVertices";
3565     case SpvBuiltInFragCoord: return "FragCoord";
3566     case SpvBuiltInPointCoord: return "PointCoord";
3567     case SpvBuiltInFrontFacing: return "FrontFacing";
3568     case SpvBuiltInSampleId: return "SampleId";
3569     case SpvBuiltInSamplePosition: return "SamplePosition";
3570     case SpvBuiltInSampleMask: return "SampleMask";
3571     case SpvBuiltInFragDepth: return "FragDepth";
3572     case SpvBuiltInHelperInvocation: return "HelperInvocation";
3573     case SpvBuiltInNumWorkgroups: return "NumWorkgroups";
3574     case SpvBuiltInWorkgroupSize: return "WorkgroupSize";
3575     case SpvBuiltInWorkgroupId: return "WorkgroupId";
3576     case SpvBuiltInLocalInvocationId: return "LocalInvocationId";
3577     case SpvBuiltInGlobalInvocationId: return "GlobalInvocationId";
3578     case SpvBuiltInLocalInvocationIndex: return "LocalInvocationIndex";
3579     case SpvBuiltInWorkDim: return "WorkDim";
3580     case SpvBuiltInGlobalSize: return "GlobalSize";
3581     case SpvBuiltInEnqueuedWorkgroupSize: return "EnqueuedWorkgroupSize";
3582     case SpvBuiltInGlobalOffset: return "GlobalOffset";
3583     case SpvBuiltInGlobalLinearId: return "GlobalLinearId";
3584     case SpvBuiltInSubgroupSize: return "SubgroupSize";
3585     case SpvBuiltInSubgroupMaxSize: return "SubgroupMaxSize";
3586     case SpvBuiltInNumSubgroups: return "NumSubgroups";
3587     case SpvBuiltInNumEnqueuedSubgroups: return "NumEnqueuedSubgroups";
3588     case SpvBuiltInSubgroupId: return "SubgroupId";
3589     case SpvBuiltInSubgroupLocalInvocationId: return "SubgroupLocalInvocationId";
3590     case SpvBuiltInVertexIndex: return "VertexIndex";
3591     case SpvBuiltInInstanceIndex: return "InstanceIndex";
3592     case SpvBuiltInCoreIDARM: return "CoreIDARM";
3593     case SpvBuiltInCoreCountARM: return "CoreCountARM";
3594     case SpvBuiltInCoreMaxIDARM: return "CoreMaxIDARM";
3595     case SpvBuiltInWarpIDARM: return "WarpIDARM";
3596     case SpvBuiltInWarpMaxIDARM: return "WarpMaxIDARM";
3597     case SpvBuiltInSubgroupEqMask: return "SubgroupEqMask";
3598     case SpvBuiltInSubgroupGeMask: return "SubgroupGeMask";
3599     case SpvBuiltInSubgroupGtMask: return "SubgroupGtMask";
3600     case SpvBuiltInSubgroupLeMask: return "SubgroupLeMask";
3601     case SpvBuiltInSubgroupLtMask: return "SubgroupLtMask";
3602     case SpvBuiltInBaseVertex: return "BaseVertex";
3603     case SpvBuiltInBaseInstance: return "BaseInstance";
3604     case SpvBuiltInDrawIndex: return "DrawIndex";
3605     case SpvBuiltInPrimitiveShadingRateKHR: return "PrimitiveShadingRateKHR";
3606     case SpvBuiltInDeviceIndex: return "DeviceIndex";
3607     case SpvBuiltInViewIndex: return "ViewIndex";
3608     case SpvBuiltInShadingRateKHR: return "ShadingRateKHR";
3609     case SpvBuiltInBaryCoordNoPerspAMD: return "BaryCoordNoPerspAMD";
3610     case SpvBuiltInBaryCoordNoPerspCentroidAMD: return "BaryCoordNoPerspCentroidAMD";
3611     case SpvBuiltInBaryCoordNoPerspSampleAMD: return "BaryCoordNoPerspSampleAMD";
3612     case SpvBuiltInBaryCoordSmoothAMD: return "BaryCoordSmoothAMD";
3613     case SpvBuiltInBaryCoordSmoothCentroidAMD: return "BaryCoordSmoothCentroidAMD";
3614     case SpvBuiltInBaryCoordSmoothSampleAMD: return "BaryCoordSmoothSampleAMD";
3615     case SpvBuiltInBaryCoordPullModelAMD: return "BaryCoordPullModelAMD";
3616     case SpvBuiltInFragStencilRefEXT: return "FragStencilRefEXT";
3617     case SpvBuiltInRemainingRecursionLevelsAMDX: return "RemainingRecursionLevelsAMDX";
3618     case SpvBuiltInShaderIndexAMDX: return "ShaderIndexAMDX";
3619     case SpvBuiltInViewportMaskNV: return "ViewportMaskNV";
3620     case SpvBuiltInSecondaryPositionNV: return "SecondaryPositionNV";
3621     case SpvBuiltInSecondaryViewportMaskNV: return "SecondaryViewportMaskNV";
3622     case SpvBuiltInPositionPerViewNV: return "PositionPerViewNV";
3623     case SpvBuiltInViewportMaskPerViewNV: return "ViewportMaskPerViewNV";
3624     case SpvBuiltInFullyCoveredEXT: return "FullyCoveredEXT";
3625     case SpvBuiltInTaskCountNV: return "TaskCountNV";
3626     case SpvBuiltInPrimitiveCountNV: return "PrimitiveCountNV";
3627     case SpvBuiltInPrimitiveIndicesNV: return "PrimitiveIndicesNV";
3628     case SpvBuiltInClipDistancePerViewNV: return "ClipDistancePerViewNV";
3629     case SpvBuiltInCullDistancePerViewNV: return "CullDistancePerViewNV";
3630     case SpvBuiltInLayerPerViewNV: return "LayerPerViewNV";
3631     case SpvBuiltInMeshViewCountNV: return "MeshViewCountNV";
3632     case SpvBuiltInMeshViewIndicesNV: return "MeshViewIndicesNV";
3633     case SpvBuiltInBaryCoordKHR: return "BaryCoordKHR";
3634     case SpvBuiltInBaryCoordNoPerspKHR: return "BaryCoordNoPerspKHR";
3635     case SpvBuiltInFragSizeEXT: return "FragSizeEXT";
3636     case SpvBuiltInFragInvocationCountEXT: return "FragInvocationCountEXT";
3637     case SpvBuiltInPrimitivePointIndicesEXT: return "PrimitivePointIndicesEXT";
3638     case SpvBuiltInPrimitiveLineIndicesEXT: return "PrimitiveLineIndicesEXT";
3639     case SpvBuiltInPrimitiveTriangleIndicesEXT: return "PrimitiveTriangleIndicesEXT";
3640     case SpvBuiltInCullPrimitiveEXT: return "CullPrimitiveEXT";
3641     case SpvBuiltInLaunchIdKHR: return "LaunchIdKHR";
3642     case SpvBuiltInLaunchSizeKHR: return "LaunchSizeKHR";
3643     case SpvBuiltInWorldRayOriginKHR: return "WorldRayOriginKHR";
3644     case SpvBuiltInWorldRayDirectionKHR: return "WorldRayDirectionKHR";
3645     case SpvBuiltInObjectRayOriginKHR: return "ObjectRayOriginKHR";
3646     case SpvBuiltInObjectRayDirectionKHR: return "ObjectRayDirectionKHR";
3647     case SpvBuiltInRayTminKHR: return "RayTminKHR";
3648     case SpvBuiltInRayTmaxKHR: return "RayTmaxKHR";
3649     case SpvBuiltInInstanceCustomIndexKHR: return "InstanceCustomIndexKHR";
3650     case SpvBuiltInObjectToWorldKHR: return "ObjectToWorldKHR";
3651     case SpvBuiltInWorldToObjectKHR: return "WorldToObjectKHR";
3652     case SpvBuiltInHitTNV: return "HitTNV";
3653     case SpvBuiltInHitKindKHR: return "HitKindKHR";
3654     case SpvBuiltInCurrentRayTimeNV: return "CurrentRayTimeNV";
3655     case SpvBuiltInHitTriangleVertexPositionsKHR: return "HitTriangleVertexPositionsKHR";
3656     case SpvBuiltInHitMicroTriangleVertexPositionsNV: return "HitMicroTriangleVertexPositionsNV";
3657     case SpvBuiltInHitMicroTriangleVertexBarycentricsNV: return "HitMicroTriangleVertexBarycentricsNV";
3658     case SpvBuiltInIncomingRayFlagsKHR: return "IncomingRayFlagsKHR";
3659     case SpvBuiltInRayGeometryIndexKHR: return "RayGeometryIndexKHR";
3660     case SpvBuiltInWarpsPerSMNV: return "WarpsPerSMNV";
3661     case SpvBuiltInSMCountNV: return "SMCountNV";
3662     case SpvBuiltInWarpIDNV: return "WarpIDNV";
3663     case SpvBuiltInSMIDNV: return "SMIDNV";
3664     case SpvBuiltInHitKindFrontFacingMicroTriangleNV: return "HitKindFrontFacingMicroTriangleNV";
3665     case SpvBuiltInHitKindBackFacingMicroTriangleNV: return "HitKindBackFacingMicroTriangleNV";
3666     case SpvBuiltInCullMaskKHR: return "CullMaskKHR";
3667     default: return "Unknown";
3668     }
3669 }
3670 
SpvScopeToString(SpvScope value)3671 inline const char* SpvScopeToString(SpvScope value) {
3672     switch (value) {
3673     case SpvScopeCrossDevice: return "CrossDevice";
3674     case SpvScopeDevice: return "Device";
3675     case SpvScopeWorkgroup: return "Workgroup";
3676     case SpvScopeSubgroup: return "Subgroup";
3677     case SpvScopeInvocation: return "Invocation";
3678     case SpvScopeQueueFamily: return "QueueFamily";
3679     case SpvScopeShaderCallKHR: return "ShaderCallKHR";
3680     default: return "Unknown";
3681     }
3682 }
3683 
SpvGroupOperationToString(SpvGroupOperation value)3684 inline const char* SpvGroupOperationToString(SpvGroupOperation value) {
3685     switch (value) {
3686     case SpvGroupOperationReduce: return "Reduce";
3687     case SpvGroupOperationInclusiveScan: return "InclusiveScan";
3688     case SpvGroupOperationExclusiveScan: return "ExclusiveScan";
3689     case SpvGroupOperationClusteredReduce: return "ClusteredReduce";
3690     case SpvGroupOperationPartitionedReduceNV: return "PartitionedReduceNV";
3691     case SpvGroupOperationPartitionedInclusiveScanNV: return "PartitionedInclusiveScanNV";
3692     case SpvGroupOperationPartitionedExclusiveScanNV: return "PartitionedExclusiveScanNV";
3693     default: return "Unknown";
3694     }
3695 }
3696 
SpvKernelEnqueueFlagsToString(SpvKernelEnqueueFlags value)3697 inline const char* SpvKernelEnqueueFlagsToString(SpvKernelEnqueueFlags value) {
3698     switch (value) {
3699     case SpvKernelEnqueueFlagsNoWait: return "NoWait";
3700     case SpvKernelEnqueueFlagsWaitKernel: return "WaitKernel";
3701     case SpvKernelEnqueueFlagsWaitWorkGroup: return "WaitWorkGroup";
3702     default: return "Unknown";
3703     }
3704 }
3705 
SpvCapabilityToString(SpvCapability value)3706 inline const char* SpvCapabilityToString(SpvCapability value) {
3707     switch (value) {
3708     case SpvCapabilityMatrix: return "Matrix";
3709     case SpvCapabilityShader: return "Shader";
3710     case SpvCapabilityGeometry: return "Geometry";
3711     case SpvCapabilityTessellation: return "Tessellation";
3712     case SpvCapabilityAddresses: return "Addresses";
3713     case SpvCapabilityLinkage: return "Linkage";
3714     case SpvCapabilityKernel: return "Kernel";
3715     case SpvCapabilityVector16: return "Vector16";
3716     case SpvCapabilityFloat16Buffer: return "Float16Buffer";
3717     case SpvCapabilityFloat16: return "Float16";
3718     case SpvCapabilityFloat64: return "Float64";
3719     case SpvCapabilityInt64: return "Int64";
3720     case SpvCapabilityInt64Atomics: return "Int64Atomics";
3721     case SpvCapabilityImageBasic: return "ImageBasic";
3722     case SpvCapabilityImageReadWrite: return "ImageReadWrite";
3723     case SpvCapabilityImageMipmap: return "ImageMipmap";
3724     case SpvCapabilityPipes: return "Pipes";
3725     case SpvCapabilityGroups: return "Groups";
3726     case SpvCapabilityDeviceEnqueue: return "DeviceEnqueue";
3727     case SpvCapabilityLiteralSampler: return "LiteralSampler";
3728     case SpvCapabilityAtomicStorage: return "AtomicStorage";
3729     case SpvCapabilityInt16: return "Int16";
3730     case SpvCapabilityTessellationPointSize: return "TessellationPointSize";
3731     case SpvCapabilityGeometryPointSize: return "GeometryPointSize";
3732     case SpvCapabilityImageGatherExtended: return "ImageGatherExtended";
3733     case SpvCapabilityStorageImageMultisample: return "StorageImageMultisample";
3734     case SpvCapabilityUniformBufferArrayDynamicIndexing: return "UniformBufferArrayDynamicIndexing";
3735     case SpvCapabilitySampledImageArrayDynamicIndexing: return "SampledImageArrayDynamicIndexing";
3736     case SpvCapabilityStorageBufferArrayDynamicIndexing: return "StorageBufferArrayDynamicIndexing";
3737     case SpvCapabilityStorageImageArrayDynamicIndexing: return "StorageImageArrayDynamicIndexing";
3738     case SpvCapabilityClipDistance: return "ClipDistance";
3739     case SpvCapabilityCullDistance: return "CullDistance";
3740     case SpvCapabilityImageCubeArray: return "ImageCubeArray";
3741     case SpvCapabilitySampleRateShading: return "SampleRateShading";
3742     case SpvCapabilityImageRect: return "ImageRect";
3743     case SpvCapabilitySampledRect: return "SampledRect";
3744     case SpvCapabilityGenericPointer: return "GenericPointer";
3745     case SpvCapabilityInt8: return "Int8";
3746     case SpvCapabilityInputAttachment: return "InputAttachment";
3747     case SpvCapabilitySparseResidency: return "SparseResidency";
3748     case SpvCapabilityMinLod: return "MinLod";
3749     case SpvCapabilitySampled1D: return "Sampled1D";
3750     case SpvCapabilityImage1D: return "Image1D";
3751     case SpvCapabilitySampledCubeArray: return "SampledCubeArray";
3752     case SpvCapabilitySampledBuffer: return "SampledBuffer";
3753     case SpvCapabilityImageBuffer: return "ImageBuffer";
3754     case SpvCapabilityImageMSArray: return "ImageMSArray";
3755     case SpvCapabilityStorageImageExtendedFormats: return "StorageImageExtendedFormats";
3756     case SpvCapabilityImageQuery: return "ImageQuery";
3757     case SpvCapabilityDerivativeControl: return "DerivativeControl";
3758     case SpvCapabilityInterpolationFunction: return "InterpolationFunction";
3759     case SpvCapabilityTransformFeedback: return "TransformFeedback";
3760     case SpvCapabilityGeometryStreams: return "GeometryStreams";
3761     case SpvCapabilityStorageImageReadWithoutFormat: return "StorageImageReadWithoutFormat";
3762     case SpvCapabilityStorageImageWriteWithoutFormat: return "StorageImageWriteWithoutFormat";
3763     case SpvCapabilityMultiViewport: return "MultiViewport";
3764     case SpvCapabilitySubgroupDispatch: return "SubgroupDispatch";
3765     case SpvCapabilityNamedBarrier: return "NamedBarrier";
3766     case SpvCapabilityPipeStorage: return "PipeStorage";
3767     case SpvCapabilityGroupNonUniform: return "GroupNonUniform";
3768     case SpvCapabilityGroupNonUniformVote: return "GroupNonUniformVote";
3769     case SpvCapabilityGroupNonUniformArithmetic: return "GroupNonUniformArithmetic";
3770     case SpvCapabilityGroupNonUniformBallot: return "GroupNonUniformBallot";
3771     case SpvCapabilityGroupNonUniformShuffle: return "GroupNonUniformShuffle";
3772     case SpvCapabilityGroupNonUniformShuffleRelative: return "GroupNonUniformShuffleRelative";
3773     case SpvCapabilityGroupNonUniformClustered: return "GroupNonUniformClustered";
3774     case SpvCapabilityGroupNonUniformQuad: return "GroupNonUniformQuad";
3775     case SpvCapabilityShaderLayer: return "ShaderLayer";
3776     case SpvCapabilityShaderViewportIndex: return "ShaderViewportIndex";
3777     case SpvCapabilityUniformDecoration: return "UniformDecoration";
3778     case SpvCapabilityCoreBuiltinsARM: return "CoreBuiltinsARM";
3779     case SpvCapabilityTileImageColorReadAccessEXT: return "TileImageColorReadAccessEXT";
3780     case SpvCapabilityTileImageDepthReadAccessEXT: return "TileImageDepthReadAccessEXT";
3781     case SpvCapabilityTileImageStencilReadAccessEXT: return "TileImageStencilReadAccessEXT";
3782     case SpvCapabilityCooperativeMatrixLayoutsARM: return "CooperativeMatrixLayoutsARM";
3783     case SpvCapabilityFragmentShadingRateKHR: return "FragmentShadingRateKHR";
3784     case SpvCapabilitySubgroupBallotKHR: return "SubgroupBallotKHR";
3785     case SpvCapabilityDrawParameters: return "DrawParameters";
3786     case SpvCapabilityWorkgroupMemoryExplicitLayoutKHR: return "WorkgroupMemoryExplicitLayoutKHR";
3787     case SpvCapabilityWorkgroupMemoryExplicitLayout8BitAccessKHR: return "WorkgroupMemoryExplicitLayout8BitAccessKHR";
3788     case SpvCapabilityWorkgroupMemoryExplicitLayout16BitAccessKHR: return "WorkgroupMemoryExplicitLayout16BitAccessKHR";
3789     case SpvCapabilitySubgroupVoteKHR: return "SubgroupVoteKHR";
3790     case SpvCapabilityStorageBuffer16BitAccess: return "StorageBuffer16BitAccess";
3791     case SpvCapabilityStorageUniform16: return "StorageUniform16";
3792     case SpvCapabilityStoragePushConstant16: return "StoragePushConstant16";
3793     case SpvCapabilityStorageInputOutput16: return "StorageInputOutput16";
3794     case SpvCapabilityDeviceGroup: return "DeviceGroup";
3795     case SpvCapabilityMultiView: return "MultiView";
3796     case SpvCapabilityVariablePointersStorageBuffer: return "VariablePointersStorageBuffer";
3797     case SpvCapabilityVariablePointers: return "VariablePointers";
3798     case SpvCapabilityAtomicStorageOps: return "AtomicStorageOps";
3799     case SpvCapabilitySampleMaskPostDepthCoverage: return "SampleMaskPostDepthCoverage";
3800     case SpvCapabilityStorageBuffer8BitAccess: return "StorageBuffer8BitAccess";
3801     case SpvCapabilityUniformAndStorageBuffer8BitAccess: return "UniformAndStorageBuffer8BitAccess";
3802     case SpvCapabilityStoragePushConstant8: return "StoragePushConstant8";
3803     case SpvCapabilityDenormPreserve: return "DenormPreserve";
3804     case SpvCapabilityDenormFlushToZero: return "DenormFlushToZero";
3805     case SpvCapabilitySignedZeroInfNanPreserve: return "SignedZeroInfNanPreserve";
3806     case SpvCapabilityRoundingModeRTE: return "RoundingModeRTE";
3807     case SpvCapabilityRoundingModeRTZ: return "RoundingModeRTZ";
3808     case SpvCapabilityRayQueryProvisionalKHR: return "RayQueryProvisionalKHR";
3809     case SpvCapabilityRayQueryKHR: return "RayQueryKHR";
3810     case SpvCapabilityUntypedPointersKHR: return "UntypedPointersKHR";
3811     case SpvCapabilityRayTraversalPrimitiveCullingKHR: return "RayTraversalPrimitiveCullingKHR";
3812     case SpvCapabilityRayTracingKHR: return "RayTracingKHR";
3813     case SpvCapabilityTextureSampleWeightedQCOM: return "TextureSampleWeightedQCOM";
3814     case SpvCapabilityTextureBoxFilterQCOM: return "TextureBoxFilterQCOM";
3815     case SpvCapabilityTextureBlockMatchQCOM: return "TextureBlockMatchQCOM";
3816     case SpvCapabilityTextureBlockMatch2QCOM: return "TextureBlockMatch2QCOM";
3817     case SpvCapabilityFloat16ImageAMD: return "Float16ImageAMD";
3818     case SpvCapabilityImageGatherBiasLodAMD: return "ImageGatherBiasLodAMD";
3819     case SpvCapabilityFragmentMaskAMD: return "FragmentMaskAMD";
3820     case SpvCapabilityStencilExportEXT: return "StencilExportEXT";
3821     case SpvCapabilityImageReadWriteLodAMD: return "ImageReadWriteLodAMD";
3822     case SpvCapabilityInt64ImageEXT: return "Int64ImageEXT";
3823     case SpvCapabilityShaderClockKHR: return "ShaderClockKHR";
3824     case SpvCapabilityShaderEnqueueAMDX: return "ShaderEnqueueAMDX";
3825     case SpvCapabilityQuadControlKHR: return "QuadControlKHR";
3826     case SpvCapabilitySampleMaskOverrideCoverageNV: return "SampleMaskOverrideCoverageNV";
3827     case SpvCapabilityGeometryShaderPassthroughNV: return "GeometryShaderPassthroughNV";
3828     case SpvCapabilityShaderViewportIndexLayerEXT: return "ShaderViewportIndexLayerEXT";
3829     case SpvCapabilityShaderViewportMaskNV: return "ShaderViewportMaskNV";
3830     case SpvCapabilityShaderStereoViewNV: return "ShaderStereoViewNV";
3831     case SpvCapabilityPerViewAttributesNV: return "PerViewAttributesNV";
3832     case SpvCapabilityFragmentFullyCoveredEXT: return "FragmentFullyCoveredEXT";
3833     case SpvCapabilityMeshShadingNV: return "MeshShadingNV";
3834     case SpvCapabilityImageFootprintNV: return "ImageFootprintNV";
3835     case SpvCapabilityMeshShadingEXT: return "MeshShadingEXT";
3836     case SpvCapabilityFragmentBarycentricKHR: return "FragmentBarycentricKHR";
3837     case SpvCapabilityComputeDerivativeGroupQuadsKHR: return "ComputeDerivativeGroupQuadsKHR";
3838     case SpvCapabilityFragmentDensityEXT: return "FragmentDensityEXT";
3839     case SpvCapabilityGroupNonUniformPartitionedNV: return "GroupNonUniformPartitionedNV";
3840     case SpvCapabilityShaderNonUniform: return "ShaderNonUniform";
3841     case SpvCapabilityRuntimeDescriptorArray: return "RuntimeDescriptorArray";
3842     case SpvCapabilityInputAttachmentArrayDynamicIndexing: return "InputAttachmentArrayDynamicIndexing";
3843     case SpvCapabilityUniformTexelBufferArrayDynamicIndexing: return "UniformTexelBufferArrayDynamicIndexing";
3844     case SpvCapabilityStorageTexelBufferArrayDynamicIndexing: return "StorageTexelBufferArrayDynamicIndexing";
3845     case SpvCapabilityUniformBufferArrayNonUniformIndexing: return "UniformBufferArrayNonUniformIndexing";
3846     case SpvCapabilitySampledImageArrayNonUniformIndexing: return "SampledImageArrayNonUniformIndexing";
3847     case SpvCapabilityStorageBufferArrayNonUniformIndexing: return "StorageBufferArrayNonUniformIndexing";
3848     case SpvCapabilityStorageImageArrayNonUniformIndexing: return "StorageImageArrayNonUniformIndexing";
3849     case SpvCapabilityInputAttachmentArrayNonUniformIndexing: return "InputAttachmentArrayNonUniformIndexing";
3850     case SpvCapabilityUniformTexelBufferArrayNonUniformIndexing: return "UniformTexelBufferArrayNonUniformIndexing";
3851     case SpvCapabilityStorageTexelBufferArrayNonUniformIndexing: return "StorageTexelBufferArrayNonUniformIndexing";
3852     case SpvCapabilityRayTracingPositionFetchKHR: return "RayTracingPositionFetchKHR";
3853     case SpvCapabilityRayTracingNV: return "RayTracingNV";
3854     case SpvCapabilityRayTracingMotionBlurNV: return "RayTracingMotionBlurNV";
3855     case SpvCapabilityVulkanMemoryModel: return "VulkanMemoryModel";
3856     case SpvCapabilityVulkanMemoryModelDeviceScope: return "VulkanMemoryModelDeviceScope";
3857     case SpvCapabilityPhysicalStorageBufferAddresses: return "PhysicalStorageBufferAddresses";
3858     case SpvCapabilityComputeDerivativeGroupLinearKHR: return "ComputeDerivativeGroupLinearKHR";
3859     case SpvCapabilityRayTracingProvisionalKHR: return "RayTracingProvisionalKHR";
3860     case SpvCapabilityCooperativeMatrixNV: return "CooperativeMatrixNV";
3861     case SpvCapabilityFragmentShaderSampleInterlockEXT: return "FragmentShaderSampleInterlockEXT";
3862     case SpvCapabilityFragmentShaderShadingRateInterlockEXT: return "FragmentShaderShadingRateInterlockEXT";
3863     case SpvCapabilityShaderSMBuiltinsNV: return "ShaderSMBuiltinsNV";
3864     case SpvCapabilityFragmentShaderPixelInterlockEXT: return "FragmentShaderPixelInterlockEXT";
3865     case SpvCapabilityDemoteToHelperInvocation: return "DemoteToHelperInvocation";
3866     case SpvCapabilityDisplacementMicromapNV: return "DisplacementMicromapNV";
3867     case SpvCapabilityRayTracingOpacityMicromapEXT: return "RayTracingOpacityMicromapEXT";
3868     case SpvCapabilityShaderInvocationReorderNV: return "ShaderInvocationReorderNV";
3869     case SpvCapabilityBindlessTextureNV: return "BindlessTextureNV";
3870     case SpvCapabilityRayQueryPositionFetchKHR: return "RayQueryPositionFetchKHR";
3871     case SpvCapabilityAtomicFloat16VectorNV: return "AtomicFloat16VectorNV";
3872     case SpvCapabilityRayTracingDisplacementMicromapNV: return "RayTracingDisplacementMicromapNV";
3873     case SpvCapabilityRawAccessChainsNV: return "RawAccessChainsNV";
3874     case SpvCapabilityCooperativeMatrixReductionsNV: return "CooperativeMatrixReductionsNV";
3875     case SpvCapabilityCooperativeMatrixConversionsNV: return "CooperativeMatrixConversionsNV";
3876     case SpvCapabilityCooperativeMatrixPerElementOperationsNV: return "CooperativeMatrixPerElementOperationsNV";
3877     case SpvCapabilityCooperativeMatrixTensorAddressingNV: return "CooperativeMatrixTensorAddressingNV";
3878     case SpvCapabilityCooperativeMatrixBlockLoadsNV: return "CooperativeMatrixBlockLoadsNV";
3879     case SpvCapabilityTensorAddressingNV: return "TensorAddressingNV";
3880     case SpvCapabilitySubgroupShuffleINTEL: return "SubgroupShuffleINTEL";
3881     case SpvCapabilitySubgroupBufferBlockIOINTEL: return "SubgroupBufferBlockIOINTEL";
3882     case SpvCapabilitySubgroupImageBlockIOINTEL: return "SubgroupImageBlockIOINTEL";
3883     case SpvCapabilitySubgroupImageMediaBlockIOINTEL: return "SubgroupImageMediaBlockIOINTEL";
3884     case SpvCapabilityRoundToInfinityINTEL: return "RoundToInfinityINTEL";
3885     case SpvCapabilityFloatingPointModeINTEL: return "FloatingPointModeINTEL";
3886     case SpvCapabilityIntegerFunctions2INTEL: return "IntegerFunctions2INTEL";
3887     case SpvCapabilityFunctionPointersINTEL: return "FunctionPointersINTEL";
3888     case SpvCapabilityIndirectReferencesINTEL: return "IndirectReferencesINTEL";
3889     case SpvCapabilityAsmINTEL: return "AsmINTEL";
3890     case SpvCapabilityAtomicFloat32MinMaxEXT: return "AtomicFloat32MinMaxEXT";
3891     case SpvCapabilityAtomicFloat64MinMaxEXT: return "AtomicFloat64MinMaxEXT";
3892     case SpvCapabilityAtomicFloat16MinMaxEXT: return "AtomicFloat16MinMaxEXT";
3893     case SpvCapabilityVectorComputeINTEL: return "VectorComputeINTEL";
3894     case SpvCapabilityVectorAnyINTEL: return "VectorAnyINTEL";
3895     case SpvCapabilityExpectAssumeKHR: return "ExpectAssumeKHR";
3896     case SpvCapabilitySubgroupAvcMotionEstimationINTEL: return "SubgroupAvcMotionEstimationINTEL";
3897     case SpvCapabilitySubgroupAvcMotionEstimationIntraINTEL: return "SubgroupAvcMotionEstimationIntraINTEL";
3898     case SpvCapabilitySubgroupAvcMotionEstimationChromaINTEL: return "SubgroupAvcMotionEstimationChromaINTEL";
3899     case SpvCapabilityVariableLengthArrayINTEL: return "VariableLengthArrayINTEL";
3900     case SpvCapabilityFunctionFloatControlINTEL: return "FunctionFloatControlINTEL";
3901     case SpvCapabilityFPGAMemoryAttributesINTEL: return "FPGAMemoryAttributesINTEL";
3902     case SpvCapabilityFPFastMathModeINTEL: return "FPFastMathModeINTEL";
3903     case SpvCapabilityArbitraryPrecisionIntegersINTEL: return "ArbitraryPrecisionIntegersINTEL";
3904     case SpvCapabilityArbitraryPrecisionFloatingPointINTEL: return "ArbitraryPrecisionFloatingPointINTEL";
3905     case SpvCapabilityUnstructuredLoopControlsINTEL: return "UnstructuredLoopControlsINTEL";
3906     case SpvCapabilityFPGALoopControlsINTEL: return "FPGALoopControlsINTEL";
3907     case SpvCapabilityKernelAttributesINTEL: return "KernelAttributesINTEL";
3908     case SpvCapabilityFPGAKernelAttributesINTEL: return "FPGAKernelAttributesINTEL";
3909     case SpvCapabilityFPGAMemoryAccessesINTEL: return "FPGAMemoryAccessesINTEL";
3910     case SpvCapabilityFPGAClusterAttributesINTEL: return "FPGAClusterAttributesINTEL";
3911     case SpvCapabilityLoopFuseINTEL: return "LoopFuseINTEL";
3912     case SpvCapabilityFPGADSPControlINTEL: return "FPGADSPControlINTEL";
3913     case SpvCapabilityMemoryAccessAliasingINTEL: return "MemoryAccessAliasingINTEL";
3914     case SpvCapabilityFPGAInvocationPipeliningAttributesINTEL: return "FPGAInvocationPipeliningAttributesINTEL";
3915     case SpvCapabilityFPGABufferLocationINTEL: return "FPGABufferLocationINTEL";
3916     case SpvCapabilityArbitraryPrecisionFixedPointINTEL: return "ArbitraryPrecisionFixedPointINTEL";
3917     case SpvCapabilityUSMStorageClassesINTEL: return "USMStorageClassesINTEL";
3918     case SpvCapabilityRuntimeAlignedAttributeINTEL: return "RuntimeAlignedAttributeINTEL";
3919     case SpvCapabilityIOPipesINTEL: return "IOPipesINTEL";
3920     case SpvCapabilityBlockingPipesINTEL: return "BlockingPipesINTEL";
3921     case SpvCapabilityFPGARegINTEL: return "FPGARegINTEL";
3922     case SpvCapabilityDotProductInputAll: return "DotProductInputAll";
3923     case SpvCapabilityDotProductInput4x8Bit: return "DotProductInput4x8Bit";
3924     case SpvCapabilityDotProductInput4x8BitPacked: return "DotProductInput4x8BitPacked";
3925     case SpvCapabilityDotProduct: return "DotProduct";
3926     case SpvCapabilityRayCullMaskKHR: return "RayCullMaskKHR";
3927     case SpvCapabilityCooperativeMatrixKHR: return "CooperativeMatrixKHR";
3928     case SpvCapabilityReplicatedCompositesEXT: return "ReplicatedCompositesEXT";
3929     case SpvCapabilityBitInstructions: return "BitInstructions";
3930     case SpvCapabilityGroupNonUniformRotateKHR: return "GroupNonUniformRotateKHR";
3931     case SpvCapabilityFloatControls2: return "FloatControls2";
3932     case SpvCapabilityAtomicFloat32AddEXT: return "AtomicFloat32AddEXT";
3933     case SpvCapabilityAtomicFloat64AddEXT: return "AtomicFloat64AddEXT";
3934     case SpvCapabilityLongCompositesINTEL: return "LongCompositesINTEL";
3935     case SpvCapabilityOptNoneEXT: return "OptNoneEXT";
3936     case SpvCapabilityAtomicFloat16AddEXT: return "AtomicFloat16AddEXT";
3937     case SpvCapabilityDebugInfoModuleINTEL: return "DebugInfoModuleINTEL";
3938     case SpvCapabilityBFloat16ConversionINTEL: return "BFloat16ConversionINTEL";
3939     case SpvCapabilitySplitBarrierINTEL: return "SplitBarrierINTEL";
3940     case SpvCapabilityArithmeticFenceEXT: return "ArithmeticFenceEXT";
3941     case SpvCapabilityFPGAClusterAttributesV2INTEL: return "FPGAClusterAttributesV2INTEL";
3942     case SpvCapabilityFPGAKernelAttributesv2INTEL: return "FPGAKernelAttributesv2INTEL";
3943     case SpvCapabilityFPMaxErrorINTEL: return "FPMaxErrorINTEL";
3944     case SpvCapabilityFPGALatencyControlINTEL: return "FPGALatencyControlINTEL";
3945     case SpvCapabilityFPGAArgumentInterfacesINTEL: return "FPGAArgumentInterfacesINTEL";
3946     case SpvCapabilityGlobalVariableHostAccessINTEL: return "GlobalVariableHostAccessINTEL";
3947     case SpvCapabilityGlobalVariableFPGADecorationsINTEL: return "GlobalVariableFPGADecorationsINTEL";
3948     case SpvCapabilitySubgroupBufferPrefetchINTEL: return "SubgroupBufferPrefetchINTEL";
3949     case SpvCapabilityGroupUniformArithmeticKHR: return "GroupUniformArithmeticKHR";
3950     case SpvCapabilityMaskedGatherScatterINTEL: return "MaskedGatherScatterINTEL";
3951     case SpvCapabilityCacheControlsINTEL: return "CacheControlsINTEL";
3952     case SpvCapabilityRegisterLimitsINTEL: return "RegisterLimitsINTEL";
3953     default: return "Unknown";
3954     }
3955 }
3956 
SpvRayQueryIntersectionToString(SpvRayQueryIntersection value)3957 inline const char* SpvRayQueryIntersectionToString(SpvRayQueryIntersection value) {
3958     switch (value) {
3959     case SpvRayQueryIntersectionRayQueryCandidateIntersectionKHR: return "RayQueryCandidateIntersectionKHR";
3960     case SpvRayQueryIntersectionRayQueryCommittedIntersectionKHR: return "RayQueryCommittedIntersectionKHR";
3961     default: return "Unknown";
3962     }
3963 }
3964 
SpvRayQueryCommittedIntersectionTypeToString(SpvRayQueryCommittedIntersectionType value)3965 inline const char* SpvRayQueryCommittedIntersectionTypeToString(SpvRayQueryCommittedIntersectionType value) {
3966     switch (value) {
3967     case SpvRayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionNoneKHR: return "RayQueryCommittedIntersectionNoneKHR";
3968     case SpvRayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionTriangleKHR: return "RayQueryCommittedIntersectionTriangleKHR";
3969     case SpvRayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionGeneratedKHR: return "RayQueryCommittedIntersectionGeneratedKHR";
3970     default: return "Unknown";
3971     }
3972 }
3973 
SpvRayQueryCandidateIntersectionTypeToString(SpvRayQueryCandidateIntersectionType value)3974 inline const char* SpvRayQueryCandidateIntersectionTypeToString(SpvRayQueryCandidateIntersectionType value) {
3975     switch (value) {
3976     case SpvRayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionTriangleKHR: return "RayQueryCandidateIntersectionTriangleKHR";
3977     case SpvRayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionAABBKHR: return "RayQueryCandidateIntersectionAABBKHR";
3978     default: return "Unknown";
3979     }
3980 }
3981 
SpvFPDenormModeToString(SpvFPDenormMode value)3982 inline const char* SpvFPDenormModeToString(SpvFPDenormMode value) {
3983     switch (value) {
3984     case SpvFPDenormModePreserve: return "Preserve";
3985     case SpvFPDenormModeFlushToZero: return "FlushToZero";
3986     default: return "Unknown";
3987     }
3988 }
3989 
SpvFPOperationModeToString(SpvFPOperationMode value)3990 inline const char* SpvFPOperationModeToString(SpvFPOperationMode value) {
3991     switch (value) {
3992     case SpvFPOperationModeIEEE: return "IEEE";
3993     case SpvFPOperationModeALT: return "ALT";
3994     default: return "Unknown";
3995     }
3996 }
3997 
SpvQuantizationModesToString(SpvQuantizationModes value)3998 inline const char* SpvQuantizationModesToString(SpvQuantizationModes value) {
3999     switch (value) {
4000     case SpvQuantizationModesTRN: return "TRN";
4001     case SpvQuantizationModesTRN_ZERO: return "TRN_ZERO";
4002     case SpvQuantizationModesRND: return "RND";
4003     case SpvQuantizationModesRND_ZERO: return "RND_ZERO";
4004     case SpvQuantizationModesRND_INF: return "RND_INF";
4005     case SpvQuantizationModesRND_MIN_INF: return "RND_MIN_INF";
4006     case SpvQuantizationModesRND_CONV: return "RND_CONV";
4007     case SpvQuantizationModesRND_CONV_ODD: return "RND_CONV_ODD";
4008     default: return "Unknown";
4009     }
4010 }
4011 
SpvOverflowModesToString(SpvOverflowModes value)4012 inline const char* SpvOverflowModesToString(SpvOverflowModes value) {
4013     switch (value) {
4014     case SpvOverflowModesWRAP: return "WRAP";
4015     case SpvOverflowModesSAT: return "SAT";
4016     case SpvOverflowModesSAT_ZERO: return "SAT_ZERO";
4017     case SpvOverflowModesSAT_SYM: return "SAT_SYM";
4018     default: return "Unknown";
4019     }
4020 }
4021 
SpvPackedVectorFormatToString(SpvPackedVectorFormat value)4022 inline const char* SpvPackedVectorFormatToString(SpvPackedVectorFormat value) {
4023     switch (value) {
4024     case SpvPackedVectorFormatPackedVectorFormat4x8Bit: return "PackedVectorFormat4x8Bit";
4025     default: return "Unknown";
4026     }
4027 }
4028 
SpvCooperativeMatrixLayoutToString(SpvCooperativeMatrixLayout value)4029 inline const char* SpvCooperativeMatrixLayoutToString(SpvCooperativeMatrixLayout value) {
4030     switch (value) {
4031     case SpvCooperativeMatrixLayoutRowMajorKHR: return "RowMajorKHR";
4032     case SpvCooperativeMatrixLayoutColumnMajorKHR: return "ColumnMajorKHR";
4033     case SpvCooperativeMatrixLayoutRowBlockedInterleavedARM: return "RowBlockedInterleavedARM";
4034     case SpvCooperativeMatrixLayoutColumnBlockedInterleavedARM: return "ColumnBlockedInterleavedARM";
4035     default: return "Unknown";
4036     }
4037 }
4038 
SpvCooperativeMatrixUseToString(SpvCooperativeMatrixUse value)4039 inline const char* SpvCooperativeMatrixUseToString(SpvCooperativeMatrixUse value) {
4040     switch (value) {
4041     case SpvCooperativeMatrixUseMatrixAKHR: return "MatrixAKHR";
4042     case SpvCooperativeMatrixUseMatrixBKHR: return "MatrixBKHR";
4043     case SpvCooperativeMatrixUseMatrixAccumulatorKHR: return "MatrixAccumulatorKHR";
4044     default: return "Unknown";
4045     }
4046 }
4047 
SpvTensorClampModeToString(SpvTensorClampMode value)4048 inline const char* SpvTensorClampModeToString(SpvTensorClampMode value) {
4049     switch (value) {
4050     case SpvTensorClampModeUndefined: return "Undefined";
4051     case SpvTensorClampModeConstant: return "Constant";
4052     case SpvTensorClampModeClampToEdge: return "ClampToEdge";
4053     case SpvTensorClampModeRepeat: return "Repeat";
4054     case SpvTensorClampModeRepeatMirrored: return "RepeatMirrored";
4055     default: return "Unknown";
4056     }
4057 }
4058 
SpvInitializationModeQualifierToString(SpvInitializationModeQualifier value)4059 inline const char* SpvInitializationModeQualifierToString(SpvInitializationModeQualifier value) {
4060     switch (value) {
4061     case SpvInitializationModeQualifierInitOnDeviceReprogramINTEL: return "InitOnDeviceReprogramINTEL";
4062     case SpvInitializationModeQualifierInitOnDeviceResetINTEL: return "InitOnDeviceResetINTEL";
4063     default: return "Unknown";
4064     }
4065 }
4066 
SpvHostAccessQualifierToString(SpvHostAccessQualifier value)4067 inline const char* SpvHostAccessQualifierToString(SpvHostAccessQualifier value) {
4068     switch (value) {
4069     case SpvHostAccessQualifierNoneINTEL: return "NoneINTEL";
4070     case SpvHostAccessQualifierReadINTEL: return "ReadINTEL";
4071     case SpvHostAccessQualifierWriteINTEL: return "WriteINTEL";
4072     case SpvHostAccessQualifierReadWriteINTEL: return "ReadWriteINTEL";
4073     default: return "Unknown";
4074     }
4075 }
4076 
SpvLoadCacheControlToString(SpvLoadCacheControl value)4077 inline const char* SpvLoadCacheControlToString(SpvLoadCacheControl value) {
4078     switch (value) {
4079     case SpvLoadCacheControlUncachedINTEL: return "UncachedINTEL";
4080     case SpvLoadCacheControlCachedINTEL: return "CachedINTEL";
4081     case SpvLoadCacheControlStreamingINTEL: return "StreamingINTEL";
4082     case SpvLoadCacheControlInvalidateAfterReadINTEL: return "InvalidateAfterReadINTEL";
4083     case SpvLoadCacheControlConstCachedINTEL: return "ConstCachedINTEL";
4084     default: return "Unknown";
4085     }
4086 }
4087 
SpvStoreCacheControlToString(SpvStoreCacheControl value)4088 inline const char* SpvStoreCacheControlToString(SpvStoreCacheControl value) {
4089     switch (value) {
4090     case SpvStoreCacheControlUncachedINTEL: return "UncachedINTEL";
4091     case SpvStoreCacheControlWriteThroughINTEL: return "WriteThroughINTEL";
4092     case SpvStoreCacheControlWriteBackINTEL: return "WriteBackINTEL";
4093     case SpvStoreCacheControlStreamingINTEL: return "StreamingINTEL";
4094     default: return "Unknown";
4095     }
4096 }
4097 
SpvNamedMaximumNumberOfRegistersToString(SpvNamedMaximumNumberOfRegisters value)4098 inline const char* SpvNamedMaximumNumberOfRegistersToString(SpvNamedMaximumNumberOfRegisters value) {
4099     switch (value) {
4100     case SpvNamedMaximumNumberOfRegistersAutoINTEL: return "AutoINTEL";
4101     default: return "Unknown";
4102     }
4103 }
4104 
SpvFPEncodingToString(SpvFPEncoding value)4105 inline const char* SpvFPEncodingToString(SpvFPEncoding value) {
4106     switch (value) {
4107     default: return "Unknown";
4108     }
4109 }
4110 
SpvOpToString(SpvOp value)4111 inline const char* SpvOpToString(SpvOp value) {
4112     switch (value) {
4113     case SpvOpNop: return "OpNop";
4114     case SpvOpUndef: return "OpUndef";
4115     case SpvOpSourceContinued: return "OpSourceContinued";
4116     case SpvOpSource: return "OpSource";
4117     case SpvOpSourceExtension: return "OpSourceExtension";
4118     case SpvOpName: return "OpName";
4119     case SpvOpMemberName: return "OpMemberName";
4120     case SpvOpString: return "OpString";
4121     case SpvOpLine: return "OpLine";
4122     case SpvOpExtension: return "OpExtension";
4123     case SpvOpExtInstImport: return "OpExtInstImport";
4124     case SpvOpExtInst: return "OpExtInst";
4125     case SpvOpMemoryModel: return "OpMemoryModel";
4126     case SpvOpEntryPoint: return "OpEntryPoint";
4127     case SpvOpExecutionMode: return "OpExecutionMode";
4128     case SpvOpCapability: return "OpCapability";
4129     case SpvOpTypeVoid: return "OpTypeVoid";
4130     case SpvOpTypeBool: return "OpTypeBool";
4131     case SpvOpTypeInt: return "OpTypeInt";
4132     case SpvOpTypeFloat: return "OpTypeFloat";
4133     case SpvOpTypeVector: return "OpTypeVector";
4134     case SpvOpTypeMatrix: return "OpTypeMatrix";
4135     case SpvOpTypeImage: return "OpTypeImage";
4136     case SpvOpTypeSampler: return "OpTypeSampler";
4137     case SpvOpTypeSampledImage: return "OpTypeSampledImage";
4138     case SpvOpTypeArray: return "OpTypeArray";
4139     case SpvOpTypeRuntimeArray: return "OpTypeRuntimeArray";
4140     case SpvOpTypeStruct: return "OpTypeStruct";
4141     case SpvOpTypeOpaque: return "OpTypeOpaque";
4142     case SpvOpTypePointer: return "OpTypePointer";
4143     case SpvOpTypeFunction: return "OpTypeFunction";
4144     case SpvOpTypeEvent: return "OpTypeEvent";
4145     case SpvOpTypeDeviceEvent: return "OpTypeDeviceEvent";
4146     case SpvOpTypeReserveId: return "OpTypeReserveId";
4147     case SpvOpTypeQueue: return "OpTypeQueue";
4148     case SpvOpTypePipe: return "OpTypePipe";
4149     case SpvOpTypeForwardPointer: return "OpTypeForwardPointer";
4150     case SpvOpConstantTrue: return "OpConstantTrue";
4151     case SpvOpConstantFalse: return "OpConstantFalse";
4152     case SpvOpConstant: return "OpConstant";
4153     case SpvOpConstantComposite: return "OpConstantComposite";
4154     case SpvOpConstantSampler: return "OpConstantSampler";
4155     case SpvOpConstantNull: return "OpConstantNull";
4156     case SpvOpSpecConstantTrue: return "OpSpecConstantTrue";
4157     case SpvOpSpecConstantFalse: return "OpSpecConstantFalse";
4158     case SpvOpSpecConstant: return "OpSpecConstant";
4159     case SpvOpSpecConstantComposite: return "OpSpecConstantComposite";
4160     case SpvOpSpecConstantOp: return "OpSpecConstantOp";
4161     case SpvOpFunction: return "OpFunction";
4162     case SpvOpFunctionParameter: return "OpFunctionParameter";
4163     case SpvOpFunctionEnd: return "OpFunctionEnd";
4164     case SpvOpFunctionCall: return "OpFunctionCall";
4165     case SpvOpVariable: return "OpVariable";
4166     case SpvOpImageTexelPointer: return "OpImageTexelPointer";
4167     case SpvOpLoad: return "OpLoad";
4168     case SpvOpStore: return "OpStore";
4169     case SpvOpCopyMemory: return "OpCopyMemory";
4170     case SpvOpCopyMemorySized: return "OpCopyMemorySized";
4171     case SpvOpAccessChain: return "OpAccessChain";
4172     case SpvOpInBoundsAccessChain: return "OpInBoundsAccessChain";
4173     case SpvOpPtrAccessChain: return "OpPtrAccessChain";
4174     case SpvOpArrayLength: return "OpArrayLength";
4175     case SpvOpGenericPtrMemSemantics: return "OpGenericPtrMemSemantics";
4176     case SpvOpInBoundsPtrAccessChain: return "OpInBoundsPtrAccessChain";
4177     case SpvOpDecorate: return "OpDecorate";
4178     case SpvOpMemberDecorate: return "OpMemberDecorate";
4179     case SpvOpDecorationGroup: return "OpDecorationGroup";
4180     case SpvOpGroupDecorate: return "OpGroupDecorate";
4181     case SpvOpGroupMemberDecorate: return "OpGroupMemberDecorate";
4182     case SpvOpVectorExtractDynamic: return "OpVectorExtractDynamic";
4183     case SpvOpVectorInsertDynamic: return "OpVectorInsertDynamic";
4184     case SpvOpVectorShuffle: return "OpVectorShuffle";
4185     case SpvOpCompositeConstruct: return "OpCompositeConstruct";
4186     case SpvOpCompositeExtract: return "OpCompositeExtract";
4187     case SpvOpCompositeInsert: return "OpCompositeInsert";
4188     case SpvOpCopyObject: return "OpCopyObject";
4189     case SpvOpTranspose: return "OpTranspose";
4190     case SpvOpSampledImage: return "OpSampledImage";
4191     case SpvOpImageSampleImplicitLod: return "OpImageSampleImplicitLod";
4192     case SpvOpImageSampleExplicitLod: return "OpImageSampleExplicitLod";
4193     case SpvOpImageSampleDrefImplicitLod: return "OpImageSampleDrefImplicitLod";
4194     case SpvOpImageSampleDrefExplicitLod: return "OpImageSampleDrefExplicitLod";
4195     case SpvOpImageSampleProjImplicitLod: return "OpImageSampleProjImplicitLod";
4196     case SpvOpImageSampleProjExplicitLod: return "OpImageSampleProjExplicitLod";
4197     case SpvOpImageSampleProjDrefImplicitLod: return "OpImageSampleProjDrefImplicitLod";
4198     case SpvOpImageSampleProjDrefExplicitLod: return "OpImageSampleProjDrefExplicitLod";
4199     case SpvOpImageFetch: return "OpImageFetch";
4200     case SpvOpImageGather: return "OpImageGather";
4201     case SpvOpImageDrefGather: return "OpImageDrefGather";
4202     case SpvOpImageRead: return "OpImageRead";
4203     case SpvOpImageWrite: return "OpImageWrite";
4204     case SpvOpImage: return "OpImage";
4205     case SpvOpImageQueryFormat: return "OpImageQueryFormat";
4206     case SpvOpImageQueryOrder: return "OpImageQueryOrder";
4207     case SpvOpImageQuerySizeLod: return "OpImageQuerySizeLod";
4208     case SpvOpImageQuerySize: return "OpImageQuerySize";
4209     case SpvOpImageQueryLod: return "OpImageQueryLod";
4210     case SpvOpImageQueryLevels: return "OpImageQueryLevels";
4211     case SpvOpImageQuerySamples: return "OpImageQuerySamples";
4212     case SpvOpConvertFToU: return "OpConvertFToU";
4213     case SpvOpConvertFToS: return "OpConvertFToS";
4214     case SpvOpConvertSToF: return "OpConvertSToF";
4215     case SpvOpConvertUToF: return "OpConvertUToF";
4216     case SpvOpUConvert: return "OpUConvert";
4217     case SpvOpSConvert: return "OpSConvert";
4218     case SpvOpFConvert: return "OpFConvert";
4219     case SpvOpQuantizeToF16: return "OpQuantizeToF16";
4220     case SpvOpConvertPtrToU: return "OpConvertPtrToU";
4221     case SpvOpSatConvertSToU: return "OpSatConvertSToU";
4222     case SpvOpSatConvertUToS: return "OpSatConvertUToS";
4223     case SpvOpConvertUToPtr: return "OpConvertUToPtr";
4224     case SpvOpPtrCastToGeneric: return "OpPtrCastToGeneric";
4225     case SpvOpGenericCastToPtr: return "OpGenericCastToPtr";
4226     case SpvOpGenericCastToPtrExplicit: return "OpGenericCastToPtrExplicit";
4227     case SpvOpBitcast: return "OpBitcast";
4228     case SpvOpSNegate: return "OpSNegate";
4229     case SpvOpFNegate: return "OpFNegate";
4230     case SpvOpIAdd: return "OpIAdd";
4231     case SpvOpFAdd: return "OpFAdd";
4232     case SpvOpISub: return "OpISub";
4233     case SpvOpFSub: return "OpFSub";
4234     case SpvOpIMul: return "OpIMul";
4235     case SpvOpFMul: return "OpFMul";
4236     case SpvOpUDiv: return "OpUDiv";
4237     case SpvOpSDiv: return "OpSDiv";
4238     case SpvOpFDiv: return "OpFDiv";
4239     case SpvOpUMod: return "OpUMod";
4240     case SpvOpSRem: return "OpSRem";
4241     case SpvOpSMod: return "OpSMod";
4242     case SpvOpFRem: return "OpFRem";
4243     case SpvOpFMod: return "OpFMod";
4244     case SpvOpVectorTimesScalar: return "OpVectorTimesScalar";
4245     case SpvOpMatrixTimesScalar: return "OpMatrixTimesScalar";
4246     case SpvOpVectorTimesMatrix: return "OpVectorTimesMatrix";
4247     case SpvOpMatrixTimesVector: return "OpMatrixTimesVector";
4248     case SpvOpMatrixTimesMatrix: return "OpMatrixTimesMatrix";
4249     case SpvOpOuterProduct: return "OpOuterProduct";
4250     case SpvOpDot: return "OpDot";
4251     case SpvOpIAddCarry: return "OpIAddCarry";
4252     case SpvOpISubBorrow: return "OpISubBorrow";
4253     case SpvOpUMulExtended: return "OpUMulExtended";
4254     case SpvOpSMulExtended: return "OpSMulExtended";
4255     case SpvOpAny: return "OpAny";
4256     case SpvOpAll: return "OpAll";
4257     case SpvOpIsNan: return "OpIsNan";
4258     case SpvOpIsInf: return "OpIsInf";
4259     case SpvOpIsFinite: return "OpIsFinite";
4260     case SpvOpIsNormal: return "OpIsNormal";
4261     case SpvOpSignBitSet: return "OpSignBitSet";
4262     case SpvOpLessOrGreater: return "OpLessOrGreater";
4263     case SpvOpOrdered: return "OpOrdered";
4264     case SpvOpUnordered: return "OpUnordered";
4265     case SpvOpLogicalEqual: return "OpLogicalEqual";
4266     case SpvOpLogicalNotEqual: return "OpLogicalNotEqual";
4267     case SpvOpLogicalOr: return "OpLogicalOr";
4268     case SpvOpLogicalAnd: return "OpLogicalAnd";
4269     case SpvOpLogicalNot: return "OpLogicalNot";
4270     case SpvOpSelect: return "OpSelect";
4271     case SpvOpIEqual: return "OpIEqual";
4272     case SpvOpINotEqual: return "OpINotEqual";
4273     case SpvOpUGreaterThan: return "OpUGreaterThan";
4274     case SpvOpSGreaterThan: return "OpSGreaterThan";
4275     case SpvOpUGreaterThanEqual: return "OpUGreaterThanEqual";
4276     case SpvOpSGreaterThanEqual: return "OpSGreaterThanEqual";
4277     case SpvOpULessThan: return "OpULessThan";
4278     case SpvOpSLessThan: return "OpSLessThan";
4279     case SpvOpULessThanEqual: return "OpULessThanEqual";
4280     case SpvOpSLessThanEqual: return "OpSLessThanEqual";
4281     case SpvOpFOrdEqual: return "OpFOrdEqual";
4282     case SpvOpFUnordEqual: return "OpFUnordEqual";
4283     case SpvOpFOrdNotEqual: return "OpFOrdNotEqual";
4284     case SpvOpFUnordNotEqual: return "OpFUnordNotEqual";
4285     case SpvOpFOrdLessThan: return "OpFOrdLessThan";
4286     case SpvOpFUnordLessThan: return "OpFUnordLessThan";
4287     case SpvOpFOrdGreaterThan: return "OpFOrdGreaterThan";
4288     case SpvOpFUnordGreaterThan: return "OpFUnordGreaterThan";
4289     case SpvOpFOrdLessThanEqual: return "OpFOrdLessThanEqual";
4290     case SpvOpFUnordLessThanEqual: return "OpFUnordLessThanEqual";
4291     case SpvOpFOrdGreaterThanEqual: return "OpFOrdGreaterThanEqual";
4292     case SpvOpFUnordGreaterThanEqual: return "OpFUnordGreaterThanEqual";
4293     case SpvOpShiftRightLogical: return "OpShiftRightLogical";
4294     case SpvOpShiftRightArithmetic: return "OpShiftRightArithmetic";
4295     case SpvOpShiftLeftLogical: return "OpShiftLeftLogical";
4296     case SpvOpBitwiseOr: return "OpBitwiseOr";
4297     case SpvOpBitwiseXor: return "OpBitwiseXor";
4298     case SpvOpBitwiseAnd: return "OpBitwiseAnd";
4299     case SpvOpNot: return "OpNot";
4300     case SpvOpBitFieldInsert: return "OpBitFieldInsert";
4301     case SpvOpBitFieldSExtract: return "OpBitFieldSExtract";
4302     case SpvOpBitFieldUExtract: return "OpBitFieldUExtract";
4303     case SpvOpBitReverse: return "OpBitReverse";
4304     case SpvOpBitCount: return "OpBitCount";
4305     case SpvOpDPdx: return "OpDPdx";
4306     case SpvOpDPdy: return "OpDPdy";
4307     case SpvOpFwidth: return "OpFwidth";
4308     case SpvOpDPdxFine: return "OpDPdxFine";
4309     case SpvOpDPdyFine: return "OpDPdyFine";
4310     case SpvOpFwidthFine: return "OpFwidthFine";
4311     case SpvOpDPdxCoarse: return "OpDPdxCoarse";
4312     case SpvOpDPdyCoarse: return "OpDPdyCoarse";
4313     case SpvOpFwidthCoarse: return "OpFwidthCoarse";
4314     case SpvOpEmitVertex: return "OpEmitVertex";
4315     case SpvOpEndPrimitive: return "OpEndPrimitive";
4316     case SpvOpEmitStreamVertex: return "OpEmitStreamVertex";
4317     case SpvOpEndStreamPrimitive: return "OpEndStreamPrimitive";
4318     case SpvOpControlBarrier: return "OpControlBarrier";
4319     case SpvOpMemoryBarrier: return "OpMemoryBarrier";
4320     case SpvOpAtomicLoad: return "OpAtomicLoad";
4321     case SpvOpAtomicStore: return "OpAtomicStore";
4322     case SpvOpAtomicExchange: return "OpAtomicExchange";
4323     case SpvOpAtomicCompareExchange: return "OpAtomicCompareExchange";
4324     case SpvOpAtomicCompareExchangeWeak: return "OpAtomicCompareExchangeWeak";
4325     case SpvOpAtomicIIncrement: return "OpAtomicIIncrement";
4326     case SpvOpAtomicIDecrement: return "OpAtomicIDecrement";
4327     case SpvOpAtomicIAdd: return "OpAtomicIAdd";
4328     case SpvOpAtomicISub: return "OpAtomicISub";
4329     case SpvOpAtomicSMin: return "OpAtomicSMin";
4330     case SpvOpAtomicUMin: return "OpAtomicUMin";
4331     case SpvOpAtomicSMax: return "OpAtomicSMax";
4332     case SpvOpAtomicUMax: return "OpAtomicUMax";
4333     case SpvOpAtomicAnd: return "OpAtomicAnd";
4334     case SpvOpAtomicOr: return "OpAtomicOr";
4335     case SpvOpAtomicXor: return "OpAtomicXor";
4336     case SpvOpPhi: return "OpPhi";
4337     case SpvOpLoopMerge: return "OpLoopMerge";
4338     case SpvOpSelectionMerge: return "OpSelectionMerge";
4339     case SpvOpLabel: return "OpLabel";
4340     case SpvOpBranch: return "OpBranch";
4341     case SpvOpBranchConditional: return "OpBranchConditional";
4342     case SpvOpSwitch: return "OpSwitch";
4343     case SpvOpKill: return "OpKill";
4344     case SpvOpReturn: return "OpReturn";
4345     case SpvOpReturnValue: return "OpReturnValue";
4346     case SpvOpUnreachable: return "OpUnreachable";
4347     case SpvOpLifetimeStart: return "OpLifetimeStart";
4348     case SpvOpLifetimeStop: return "OpLifetimeStop";
4349     case SpvOpGroupAsyncCopy: return "OpGroupAsyncCopy";
4350     case SpvOpGroupWaitEvents: return "OpGroupWaitEvents";
4351     case SpvOpGroupAll: return "OpGroupAll";
4352     case SpvOpGroupAny: return "OpGroupAny";
4353     case SpvOpGroupBroadcast: return "OpGroupBroadcast";
4354     case SpvOpGroupIAdd: return "OpGroupIAdd";
4355     case SpvOpGroupFAdd: return "OpGroupFAdd";
4356     case SpvOpGroupFMin: return "OpGroupFMin";
4357     case SpvOpGroupUMin: return "OpGroupUMin";
4358     case SpvOpGroupSMin: return "OpGroupSMin";
4359     case SpvOpGroupFMax: return "OpGroupFMax";
4360     case SpvOpGroupUMax: return "OpGroupUMax";
4361     case SpvOpGroupSMax: return "OpGroupSMax";
4362     case SpvOpReadPipe: return "OpReadPipe";
4363     case SpvOpWritePipe: return "OpWritePipe";
4364     case SpvOpReservedReadPipe: return "OpReservedReadPipe";
4365     case SpvOpReservedWritePipe: return "OpReservedWritePipe";
4366     case SpvOpReserveReadPipePackets: return "OpReserveReadPipePackets";
4367     case SpvOpReserveWritePipePackets: return "OpReserveWritePipePackets";
4368     case SpvOpCommitReadPipe: return "OpCommitReadPipe";
4369     case SpvOpCommitWritePipe: return "OpCommitWritePipe";
4370     case SpvOpIsValidReserveId: return "OpIsValidReserveId";
4371     case SpvOpGetNumPipePackets: return "OpGetNumPipePackets";
4372     case SpvOpGetMaxPipePackets: return "OpGetMaxPipePackets";
4373     case SpvOpGroupReserveReadPipePackets: return "OpGroupReserveReadPipePackets";
4374     case SpvOpGroupReserveWritePipePackets: return "OpGroupReserveWritePipePackets";
4375     case SpvOpGroupCommitReadPipe: return "OpGroupCommitReadPipe";
4376     case SpvOpGroupCommitWritePipe: return "OpGroupCommitWritePipe";
4377     case SpvOpEnqueueMarker: return "OpEnqueueMarker";
4378     case SpvOpEnqueueKernel: return "OpEnqueueKernel";
4379     case SpvOpGetKernelNDrangeSubGroupCount: return "OpGetKernelNDrangeSubGroupCount";
4380     case SpvOpGetKernelNDrangeMaxSubGroupSize: return "OpGetKernelNDrangeMaxSubGroupSize";
4381     case SpvOpGetKernelWorkGroupSize: return "OpGetKernelWorkGroupSize";
4382     case SpvOpGetKernelPreferredWorkGroupSizeMultiple: return "OpGetKernelPreferredWorkGroupSizeMultiple";
4383     case SpvOpRetainEvent: return "OpRetainEvent";
4384     case SpvOpReleaseEvent: return "OpReleaseEvent";
4385     case SpvOpCreateUserEvent: return "OpCreateUserEvent";
4386     case SpvOpIsValidEvent: return "OpIsValidEvent";
4387     case SpvOpSetUserEventStatus: return "OpSetUserEventStatus";
4388     case SpvOpCaptureEventProfilingInfo: return "OpCaptureEventProfilingInfo";
4389     case SpvOpGetDefaultQueue: return "OpGetDefaultQueue";
4390     case SpvOpBuildNDRange: return "OpBuildNDRange";
4391     case SpvOpImageSparseSampleImplicitLod: return "OpImageSparseSampleImplicitLod";
4392     case SpvOpImageSparseSampleExplicitLod: return "OpImageSparseSampleExplicitLod";
4393     case SpvOpImageSparseSampleDrefImplicitLod: return "OpImageSparseSampleDrefImplicitLod";
4394     case SpvOpImageSparseSampleDrefExplicitLod: return "OpImageSparseSampleDrefExplicitLod";
4395     case SpvOpImageSparseSampleProjImplicitLod: return "OpImageSparseSampleProjImplicitLod";
4396     case SpvOpImageSparseSampleProjExplicitLod: return "OpImageSparseSampleProjExplicitLod";
4397     case SpvOpImageSparseSampleProjDrefImplicitLod: return "OpImageSparseSampleProjDrefImplicitLod";
4398     case SpvOpImageSparseSampleProjDrefExplicitLod: return "OpImageSparseSampleProjDrefExplicitLod";
4399     case SpvOpImageSparseFetch: return "OpImageSparseFetch";
4400     case SpvOpImageSparseGather: return "OpImageSparseGather";
4401     case SpvOpImageSparseDrefGather: return "OpImageSparseDrefGather";
4402     case SpvOpImageSparseTexelsResident: return "OpImageSparseTexelsResident";
4403     case SpvOpNoLine: return "OpNoLine";
4404     case SpvOpAtomicFlagTestAndSet: return "OpAtomicFlagTestAndSet";
4405     case SpvOpAtomicFlagClear: return "OpAtomicFlagClear";
4406     case SpvOpImageSparseRead: return "OpImageSparseRead";
4407     case SpvOpSizeOf: return "OpSizeOf";
4408     case SpvOpTypePipeStorage: return "OpTypePipeStorage";
4409     case SpvOpConstantPipeStorage: return "OpConstantPipeStorage";
4410     case SpvOpCreatePipeFromPipeStorage: return "OpCreatePipeFromPipeStorage";
4411     case SpvOpGetKernelLocalSizeForSubgroupCount: return "OpGetKernelLocalSizeForSubgroupCount";
4412     case SpvOpGetKernelMaxNumSubgroups: return "OpGetKernelMaxNumSubgroups";
4413     case SpvOpTypeNamedBarrier: return "OpTypeNamedBarrier";
4414     case SpvOpNamedBarrierInitialize: return "OpNamedBarrierInitialize";
4415     case SpvOpMemoryNamedBarrier: return "OpMemoryNamedBarrier";
4416     case SpvOpModuleProcessed: return "OpModuleProcessed";
4417     case SpvOpExecutionModeId: return "OpExecutionModeId";
4418     case SpvOpDecorateId: return "OpDecorateId";
4419     case SpvOpGroupNonUniformElect: return "OpGroupNonUniformElect";
4420     case SpvOpGroupNonUniformAll: return "OpGroupNonUniformAll";
4421     case SpvOpGroupNonUniformAny: return "OpGroupNonUniformAny";
4422     case SpvOpGroupNonUniformAllEqual: return "OpGroupNonUniformAllEqual";
4423     case SpvOpGroupNonUniformBroadcast: return "OpGroupNonUniformBroadcast";
4424     case SpvOpGroupNonUniformBroadcastFirst: return "OpGroupNonUniformBroadcastFirst";
4425     case SpvOpGroupNonUniformBallot: return "OpGroupNonUniformBallot";
4426     case SpvOpGroupNonUniformInverseBallot: return "OpGroupNonUniformInverseBallot";
4427     case SpvOpGroupNonUniformBallotBitExtract: return "OpGroupNonUniformBallotBitExtract";
4428     case SpvOpGroupNonUniformBallotBitCount: return "OpGroupNonUniformBallotBitCount";
4429     case SpvOpGroupNonUniformBallotFindLSB: return "OpGroupNonUniformBallotFindLSB";
4430     case SpvOpGroupNonUniformBallotFindMSB: return "OpGroupNonUniformBallotFindMSB";
4431     case SpvOpGroupNonUniformShuffle: return "OpGroupNonUniformShuffle";
4432     case SpvOpGroupNonUniformShuffleXor: return "OpGroupNonUniformShuffleXor";
4433     case SpvOpGroupNonUniformShuffleUp: return "OpGroupNonUniformShuffleUp";
4434     case SpvOpGroupNonUniformShuffleDown: return "OpGroupNonUniformShuffleDown";
4435     case SpvOpGroupNonUniformIAdd: return "OpGroupNonUniformIAdd";
4436     case SpvOpGroupNonUniformFAdd: return "OpGroupNonUniformFAdd";
4437     case SpvOpGroupNonUniformIMul: return "OpGroupNonUniformIMul";
4438     case SpvOpGroupNonUniformFMul: return "OpGroupNonUniformFMul";
4439     case SpvOpGroupNonUniformSMin: return "OpGroupNonUniformSMin";
4440     case SpvOpGroupNonUniformUMin: return "OpGroupNonUniformUMin";
4441     case SpvOpGroupNonUniformFMin: return "OpGroupNonUniformFMin";
4442     case SpvOpGroupNonUniformSMax: return "OpGroupNonUniformSMax";
4443     case SpvOpGroupNonUniformUMax: return "OpGroupNonUniformUMax";
4444     case SpvOpGroupNonUniformFMax: return "OpGroupNonUniformFMax";
4445     case SpvOpGroupNonUniformBitwiseAnd: return "OpGroupNonUniformBitwiseAnd";
4446     case SpvOpGroupNonUniformBitwiseOr: return "OpGroupNonUniformBitwiseOr";
4447     case SpvOpGroupNonUniformBitwiseXor: return "OpGroupNonUniformBitwiseXor";
4448     case SpvOpGroupNonUniformLogicalAnd: return "OpGroupNonUniformLogicalAnd";
4449     case SpvOpGroupNonUniformLogicalOr: return "OpGroupNonUniformLogicalOr";
4450     case SpvOpGroupNonUniformLogicalXor: return "OpGroupNonUniformLogicalXor";
4451     case SpvOpGroupNonUniformQuadBroadcast: return "OpGroupNonUniformQuadBroadcast";
4452     case SpvOpGroupNonUniformQuadSwap: return "OpGroupNonUniformQuadSwap";
4453     case SpvOpCopyLogical: return "OpCopyLogical";
4454     case SpvOpPtrEqual: return "OpPtrEqual";
4455     case SpvOpPtrNotEqual: return "OpPtrNotEqual";
4456     case SpvOpPtrDiff: return "OpPtrDiff";
4457     case SpvOpColorAttachmentReadEXT: return "OpColorAttachmentReadEXT";
4458     case SpvOpDepthAttachmentReadEXT: return "OpDepthAttachmentReadEXT";
4459     case SpvOpStencilAttachmentReadEXT: return "OpStencilAttachmentReadEXT";
4460     case SpvOpTerminateInvocation: return "OpTerminateInvocation";
4461     case SpvOpTypeUntypedPointerKHR: return "OpTypeUntypedPointerKHR";
4462     case SpvOpUntypedVariableKHR: return "OpUntypedVariableKHR";
4463     case SpvOpUntypedAccessChainKHR: return "OpUntypedAccessChainKHR";
4464     case SpvOpUntypedInBoundsAccessChainKHR: return "OpUntypedInBoundsAccessChainKHR";
4465     case SpvOpSubgroupBallotKHR: return "OpSubgroupBallotKHR";
4466     case SpvOpSubgroupFirstInvocationKHR: return "OpSubgroupFirstInvocationKHR";
4467     case SpvOpUntypedPtrAccessChainKHR: return "OpUntypedPtrAccessChainKHR";
4468     case SpvOpUntypedInBoundsPtrAccessChainKHR: return "OpUntypedInBoundsPtrAccessChainKHR";
4469     case SpvOpUntypedArrayLengthKHR: return "OpUntypedArrayLengthKHR";
4470     case SpvOpUntypedPrefetchKHR: return "OpUntypedPrefetchKHR";
4471     case SpvOpSubgroupAllKHR: return "OpSubgroupAllKHR";
4472     case SpvOpSubgroupAnyKHR: return "OpSubgroupAnyKHR";
4473     case SpvOpSubgroupAllEqualKHR: return "OpSubgroupAllEqualKHR";
4474     case SpvOpGroupNonUniformRotateKHR: return "OpGroupNonUniformRotateKHR";
4475     case SpvOpSubgroupReadInvocationKHR: return "OpSubgroupReadInvocationKHR";
4476     case SpvOpExtInstWithForwardRefsKHR: return "OpExtInstWithForwardRefsKHR";
4477     case SpvOpTraceRayKHR: return "OpTraceRayKHR";
4478     case SpvOpExecuteCallableKHR: return "OpExecuteCallableKHR";
4479     case SpvOpConvertUToAccelerationStructureKHR: return "OpConvertUToAccelerationStructureKHR";
4480     case SpvOpIgnoreIntersectionKHR: return "OpIgnoreIntersectionKHR";
4481     case SpvOpTerminateRayKHR: return "OpTerminateRayKHR";
4482     case SpvOpSDot: return "OpSDot";
4483     case SpvOpUDot: return "OpUDot";
4484     case SpvOpSUDot: return "OpSUDot";
4485     case SpvOpSDotAccSat: return "OpSDotAccSat";
4486     case SpvOpUDotAccSat: return "OpUDotAccSat";
4487     case SpvOpSUDotAccSat: return "OpSUDotAccSat";
4488     case SpvOpTypeCooperativeMatrixKHR: return "OpTypeCooperativeMatrixKHR";
4489     case SpvOpCooperativeMatrixLoadKHR: return "OpCooperativeMatrixLoadKHR";
4490     case SpvOpCooperativeMatrixStoreKHR: return "OpCooperativeMatrixStoreKHR";
4491     case SpvOpCooperativeMatrixMulAddKHR: return "OpCooperativeMatrixMulAddKHR";
4492     case SpvOpCooperativeMatrixLengthKHR: return "OpCooperativeMatrixLengthKHR";
4493     case SpvOpConstantCompositeReplicateEXT: return "OpConstantCompositeReplicateEXT";
4494     case SpvOpSpecConstantCompositeReplicateEXT: return "OpSpecConstantCompositeReplicateEXT";
4495     case SpvOpCompositeConstructReplicateEXT: return "OpCompositeConstructReplicateEXT";
4496     case SpvOpTypeRayQueryKHR: return "OpTypeRayQueryKHR";
4497     case SpvOpRayQueryInitializeKHR: return "OpRayQueryInitializeKHR";
4498     case SpvOpRayQueryTerminateKHR: return "OpRayQueryTerminateKHR";
4499     case SpvOpRayQueryGenerateIntersectionKHR: return "OpRayQueryGenerateIntersectionKHR";
4500     case SpvOpRayQueryConfirmIntersectionKHR: return "OpRayQueryConfirmIntersectionKHR";
4501     case SpvOpRayQueryProceedKHR: return "OpRayQueryProceedKHR";
4502     case SpvOpRayQueryGetIntersectionTypeKHR: return "OpRayQueryGetIntersectionTypeKHR";
4503     case SpvOpImageSampleWeightedQCOM: return "OpImageSampleWeightedQCOM";
4504     case SpvOpImageBoxFilterQCOM: return "OpImageBoxFilterQCOM";
4505     case SpvOpImageBlockMatchSSDQCOM: return "OpImageBlockMatchSSDQCOM";
4506     case SpvOpImageBlockMatchSADQCOM: return "OpImageBlockMatchSADQCOM";
4507     case SpvOpImageBlockMatchWindowSSDQCOM: return "OpImageBlockMatchWindowSSDQCOM";
4508     case SpvOpImageBlockMatchWindowSADQCOM: return "OpImageBlockMatchWindowSADQCOM";
4509     case SpvOpImageBlockMatchGatherSSDQCOM: return "OpImageBlockMatchGatherSSDQCOM";
4510     case SpvOpImageBlockMatchGatherSADQCOM: return "OpImageBlockMatchGatherSADQCOM";
4511     case SpvOpGroupIAddNonUniformAMD: return "OpGroupIAddNonUniformAMD";
4512     case SpvOpGroupFAddNonUniformAMD: return "OpGroupFAddNonUniformAMD";
4513     case SpvOpGroupFMinNonUniformAMD: return "OpGroupFMinNonUniformAMD";
4514     case SpvOpGroupUMinNonUniformAMD: return "OpGroupUMinNonUniformAMD";
4515     case SpvOpGroupSMinNonUniformAMD: return "OpGroupSMinNonUniformAMD";
4516     case SpvOpGroupFMaxNonUniformAMD: return "OpGroupFMaxNonUniformAMD";
4517     case SpvOpGroupUMaxNonUniformAMD: return "OpGroupUMaxNonUniformAMD";
4518     case SpvOpGroupSMaxNonUniformAMD: return "OpGroupSMaxNonUniformAMD";
4519     case SpvOpFragmentMaskFetchAMD: return "OpFragmentMaskFetchAMD";
4520     case SpvOpFragmentFetchAMD: return "OpFragmentFetchAMD";
4521     case SpvOpReadClockKHR: return "OpReadClockKHR";
4522     case SpvOpAllocateNodePayloadsAMDX: return "OpAllocateNodePayloadsAMDX";
4523     case SpvOpEnqueueNodePayloadsAMDX: return "OpEnqueueNodePayloadsAMDX";
4524     case SpvOpTypeNodePayloadArrayAMDX: return "OpTypeNodePayloadArrayAMDX";
4525     case SpvOpFinishWritingNodePayloadAMDX: return "OpFinishWritingNodePayloadAMDX";
4526     case SpvOpNodePayloadArrayLengthAMDX: return "OpNodePayloadArrayLengthAMDX";
4527     case SpvOpIsNodePayloadValidAMDX: return "OpIsNodePayloadValidAMDX";
4528     case SpvOpConstantStringAMDX: return "OpConstantStringAMDX";
4529     case SpvOpSpecConstantStringAMDX: return "OpSpecConstantStringAMDX";
4530     case SpvOpGroupNonUniformQuadAllKHR: return "OpGroupNonUniformQuadAllKHR";
4531     case SpvOpGroupNonUniformQuadAnyKHR: return "OpGroupNonUniformQuadAnyKHR";
4532     case SpvOpHitObjectRecordHitMotionNV: return "OpHitObjectRecordHitMotionNV";
4533     case SpvOpHitObjectRecordHitWithIndexMotionNV: return "OpHitObjectRecordHitWithIndexMotionNV";
4534     case SpvOpHitObjectRecordMissMotionNV: return "OpHitObjectRecordMissMotionNV";
4535     case SpvOpHitObjectGetWorldToObjectNV: return "OpHitObjectGetWorldToObjectNV";
4536     case SpvOpHitObjectGetObjectToWorldNV: return "OpHitObjectGetObjectToWorldNV";
4537     case SpvOpHitObjectGetObjectRayDirectionNV: return "OpHitObjectGetObjectRayDirectionNV";
4538     case SpvOpHitObjectGetObjectRayOriginNV: return "OpHitObjectGetObjectRayOriginNV";
4539     case SpvOpHitObjectTraceRayMotionNV: return "OpHitObjectTraceRayMotionNV";
4540     case SpvOpHitObjectGetShaderRecordBufferHandleNV: return "OpHitObjectGetShaderRecordBufferHandleNV";
4541     case SpvOpHitObjectGetShaderBindingTableRecordIndexNV: return "OpHitObjectGetShaderBindingTableRecordIndexNV";
4542     case SpvOpHitObjectRecordEmptyNV: return "OpHitObjectRecordEmptyNV";
4543     case SpvOpHitObjectTraceRayNV: return "OpHitObjectTraceRayNV";
4544     case SpvOpHitObjectRecordHitNV: return "OpHitObjectRecordHitNV";
4545     case SpvOpHitObjectRecordHitWithIndexNV: return "OpHitObjectRecordHitWithIndexNV";
4546     case SpvOpHitObjectRecordMissNV: return "OpHitObjectRecordMissNV";
4547     case SpvOpHitObjectExecuteShaderNV: return "OpHitObjectExecuteShaderNV";
4548     case SpvOpHitObjectGetCurrentTimeNV: return "OpHitObjectGetCurrentTimeNV";
4549     case SpvOpHitObjectGetAttributesNV: return "OpHitObjectGetAttributesNV";
4550     case SpvOpHitObjectGetHitKindNV: return "OpHitObjectGetHitKindNV";
4551     case SpvOpHitObjectGetPrimitiveIndexNV: return "OpHitObjectGetPrimitiveIndexNV";
4552     case SpvOpHitObjectGetGeometryIndexNV: return "OpHitObjectGetGeometryIndexNV";
4553     case SpvOpHitObjectGetInstanceIdNV: return "OpHitObjectGetInstanceIdNV";
4554     case SpvOpHitObjectGetInstanceCustomIndexNV: return "OpHitObjectGetInstanceCustomIndexNV";
4555     case SpvOpHitObjectGetWorldRayDirectionNV: return "OpHitObjectGetWorldRayDirectionNV";
4556     case SpvOpHitObjectGetWorldRayOriginNV: return "OpHitObjectGetWorldRayOriginNV";
4557     case SpvOpHitObjectGetRayTMaxNV: return "OpHitObjectGetRayTMaxNV";
4558     case SpvOpHitObjectGetRayTMinNV: return "OpHitObjectGetRayTMinNV";
4559     case SpvOpHitObjectIsEmptyNV: return "OpHitObjectIsEmptyNV";
4560     case SpvOpHitObjectIsHitNV: return "OpHitObjectIsHitNV";
4561     case SpvOpHitObjectIsMissNV: return "OpHitObjectIsMissNV";
4562     case SpvOpReorderThreadWithHitObjectNV: return "OpReorderThreadWithHitObjectNV";
4563     case SpvOpReorderThreadWithHintNV: return "OpReorderThreadWithHintNV";
4564     case SpvOpTypeHitObjectNV: return "OpTypeHitObjectNV";
4565     case SpvOpImageSampleFootprintNV: return "OpImageSampleFootprintNV";
4566     case SpvOpCooperativeMatrixConvertNV: return "OpCooperativeMatrixConvertNV";
4567     case SpvOpEmitMeshTasksEXT: return "OpEmitMeshTasksEXT";
4568     case SpvOpSetMeshOutputsEXT: return "OpSetMeshOutputsEXT";
4569     case SpvOpGroupNonUniformPartitionNV: return "OpGroupNonUniformPartitionNV";
4570     case SpvOpWritePackedPrimitiveIndices4x8NV: return "OpWritePackedPrimitiveIndices4x8NV";
4571     case SpvOpFetchMicroTriangleVertexPositionNV: return "OpFetchMicroTriangleVertexPositionNV";
4572     case SpvOpFetchMicroTriangleVertexBarycentricNV: return "OpFetchMicroTriangleVertexBarycentricNV";
4573     case SpvOpReportIntersectionKHR: return "OpReportIntersectionKHR";
4574     case SpvOpIgnoreIntersectionNV: return "OpIgnoreIntersectionNV";
4575     case SpvOpTerminateRayNV: return "OpTerminateRayNV";
4576     case SpvOpTraceNV: return "OpTraceNV";
4577     case SpvOpTraceMotionNV: return "OpTraceMotionNV";
4578     case SpvOpTraceRayMotionNV: return "OpTraceRayMotionNV";
4579     case SpvOpRayQueryGetIntersectionTriangleVertexPositionsKHR: return "OpRayQueryGetIntersectionTriangleVertexPositionsKHR";
4580     case SpvOpTypeAccelerationStructureKHR: return "OpTypeAccelerationStructureKHR";
4581     case SpvOpExecuteCallableNV: return "OpExecuteCallableNV";
4582     case SpvOpTypeCooperativeMatrixNV: return "OpTypeCooperativeMatrixNV";
4583     case SpvOpCooperativeMatrixLoadNV: return "OpCooperativeMatrixLoadNV";
4584     case SpvOpCooperativeMatrixStoreNV: return "OpCooperativeMatrixStoreNV";
4585     case SpvOpCooperativeMatrixMulAddNV: return "OpCooperativeMatrixMulAddNV";
4586     case SpvOpCooperativeMatrixLengthNV: return "OpCooperativeMatrixLengthNV";
4587     case SpvOpBeginInvocationInterlockEXT: return "OpBeginInvocationInterlockEXT";
4588     case SpvOpEndInvocationInterlockEXT: return "OpEndInvocationInterlockEXT";
4589     case SpvOpCooperativeMatrixReduceNV: return "OpCooperativeMatrixReduceNV";
4590     case SpvOpCooperativeMatrixLoadTensorNV: return "OpCooperativeMatrixLoadTensorNV";
4591     case SpvOpCooperativeMatrixStoreTensorNV: return "OpCooperativeMatrixStoreTensorNV";
4592     case SpvOpCooperativeMatrixPerElementOpNV: return "OpCooperativeMatrixPerElementOpNV";
4593     case SpvOpTypeTensorLayoutNV: return "OpTypeTensorLayoutNV";
4594     case SpvOpTypeTensorViewNV: return "OpTypeTensorViewNV";
4595     case SpvOpCreateTensorLayoutNV: return "OpCreateTensorLayoutNV";
4596     case SpvOpTensorLayoutSetDimensionNV: return "OpTensorLayoutSetDimensionNV";
4597     case SpvOpTensorLayoutSetStrideNV: return "OpTensorLayoutSetStrideNV";
4598     case SpvOpTensorLayoutSliceNV: return "OpTensorLayoutSliceNV";
4599     case SpvOpTensorLayoutSetClampValueNV: return "OpTensorLayoutSetClampValueNV";
4600     case SpvOpCreateTensorViewNV: return "OpCreateTensorViewNV";
4601     case SpvOpTensorViewSetDimensionNV: return "OpTensorViewSetDimensionNV";
4602     case SpvOpTensorViewSetStrideNV: return "OpTensorViewSetStrideNV";
4603     case SpvOpDemoteToHelperInvocation: return "OpDemoteToHelperInvocation";
4604     case SpvOpIsHelperInvocationEXT: return "OpIsHelperInvocationEXT";
4605     case SpvOpTensorViewSetClipNV: return "OpTensorViewSetClipNV";
4606     case SpvOpTensorLayoutSetBlockSizeNV: return "OpTensorLayoutSetBlockSizeNV";
4607     case SpvOpCooperativeMatrixTransposeNV: return "OpCooperativeMatrixTransposeNV";
4608     case SpvOpConvertUToImageNV: return "OpConvertUToImageNV";
4609     case SpvOpConvertUToSamplerNV: return "OpConvertUToSamplerNV";
4610     case SpvOpConvertImageToUNV: return "OpConvertImageToUNV";
4611     case SpvOpConvertSamplerToUNV: return "OpConvertSamplerToUNV";
4612     case SpvOpConvertUToSampledImageNV: return "OpConvertUToSampledImageNV";
4613     case SpvOpConvertSampledImageToUNV: return "OpConvertSampledImageToUNV";
4614     case SpvOpSamplerImageAddressingModeNV: return "OpSamplerImageAddressingModeNV";
4615     case SpvOpRawAccessChainNV: return "OpRawAccessChainNV";
4616     case SpvOpSubgroupShuffleINTEL: return "OpSubgroupShuffleINTEL";
4617     case SpvOpSubgroupShuffleDownINTEL: return "OpSubgroupShuffleDownINTEL";
4618     case SpvOpSubgroupShuffleUpINTEL: return "OpSubgroupShuffleUpINTEL";
4619     case SpvOpSubgroupShuffleXorINTEL: return "OpSubgroupShuffleXorINTEL";
4620     case SpvOpSubgroupBlockReadINTEL: return "OpSubgroupBlockReadINTEL";
4621     case SpvOpSubgroupBlockWriteINTEL: return "OpSubgroupBlockWriteINTEL";
4622     case SpvOpSubgroupImageBlockReadINTEL: return "OpSubgroupImageBlockReadINTEL";
4623     case SpvOpSubgroupImageBlockWriteINTEL: return "OpSubgroupImageBlockWriteINTEL";
4624     case SpvOpSubgroupImageMediaBlockReadINTEL: return "OpSubgroupImageMediaBlockReadINTEL";
4625     case SpvOpSubgroupImageMediaBlockWriteINTEL: return "OpSubgroupImageMediaBlockWriteINTEL";
4626     case SpvOpUCountLeadingZerosINTEL: return "OpUCountLeadingZerosINTEL";
4627     case SpvOpUCountTrailingZerosINTEL: return "OpUCountTrailingZerosINTEL";
4628     case SpvOpAbsISubINTEL: return "OpAbsISubINTEL";
4629     case SpvOpAbsUSubINTEL: return "OpAbsUSubINTEL";
4630     case SpvOpIAddSatINTEL: return "OpIAddSatINTEL";
4631     case SpvOpUAddSatINTEL: return "OpUAddSatINTEL";
4632     case SpvOpIAverageINTEL: return "OpIAverageINTEL";
4633     case SpvOpUAverageINTEL: return "OpUAverageINTEL";
4634     case SpvOpIAverageRoundedINTEL: return "OpIAverageRoundedINTEL";
4635     case SpvOpUAverageRoundedINTEL: return "OpUAverageRoundedINTEL";
4636     case SpvOpISubSatINTEL: return "OpISubSatINTEL";
4637     case SpvOpUSubSatINTEL: return "OpUSubSatINTEL";
4638     case SpvOpIMul32x16INTEL: return "OpIMul32x16INTEL";
4639     case SpvOpUMul32x16INTEL: return "OpUMul32x16INTEL";
4640     case SpvOpConstantFunctionPointerINTEL: return "OpConstantFunctionPointerINTEL";
4641     case SpvOpFunctionPointerCallINTEL: return "OpFunctionPointerCallINTEL";
4642     case SpvOpAsmTargetINTEL: return "OpAsmTargetINTEL";
4643     case SpvOpAsmINTEL: return "OpAsmINTEL";
4644     case SpvOpAsmCallINTEL: return "OpAsmCallINTEL";
4645     case SpvOpAtomicFMinEXT: return "OpAtomicFMinEXT";
4646     case SpvOpAtomicFMaxEXT: return "OpAtomicFMaxEXT";
4647     case SpvOpAssumeTrueKHR: return "OpAssumeTrueKHR";
4648     case SpvOpExpectKHR: return "OpExpectKHR";
4649     case SpvOpDecorateString: return "OpDecorateString";
4650     case SpvOpMemberDecorateString: return "OpMemberDecorateString";
4651     case SpvOpVmeImageINTEL: return "OpVmeImageINTEL";
4652     case SpvOpTypeVmeImageINTEL: return "OpTypeVmeImageINTEL";
4653     case SpvOpTypeAvcImePayloadINTEL: return "OpTypeAvcImePayloadINTEL";
4654     case SpvOpTypeAvcRefPayloadINTEL: return "OpTypeAvcRefPayloadINTEL";
4655     case SpvOpTypeAvcSicPayloadINTEL: return "OpTypeAvcSicPayloadINTEL";
4656     case SpvOpTypeAvcMcePayloadINTEL: return "OpTypeAvcMcePayloadINTEL";
4657     case SpvOpTypeAvcMceResultINTEL: return "OpTypeAvcMceResultINTEL";
4658     case SpvOpTypeAvcImeResultINTEL: return "OpTypeAvcImeResultINTEL";
4659     case SpvOpTypeAvcImeResultSingleReferenceStreamoutINTEL: return "OpTypeAvcImeResultSingleReferenceStreamoutINTEL";
4660     case SpvOpTypeAvcImeResultDualReferenceStreamoutINTEL: return "OpTypeAvcImeResultDualReferenceStreamoutINTEL";
4661     case SpvOpTypeAvcImeSingleReferenceStreaminINTEL: return "OpTypeAvcImeSingleReferenceStreaminINTEL";
4662     case SpvOpTypeAvcImeDualReferenceStreaminINTEL: return "OpTypeAvcImeDualReferenceStreaminINTEL";
4663     case SpvOpTypeAvcRefResultINTEL: return "OpTypeAvcRefResultINTEL";
4664     case SpvOpTypeAvcSicResultINTEL: return "OpTypeAvcSicResultINTEL";
4665     case SpvOpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL: return "OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL";
4666     case SpvOpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL: return "OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL";
4667     case SpvOpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL: return "OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL";
4668     case SpvOpSubgroupAvcMceSetInterShapePenaltyINTEL: return "OpSubgroupAvcMceSetInterShapePenaltyINTEL";
4669     case SpvOpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL: return "OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL";
4670     case SpvOpSubgroupAvcMceSetInterDirectionPenaltyINTEL: return "OpSubgroupAvcMceSetInterDirectionPenaltyINTEL";
4671     case SpvOpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL: return "OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL";
4672     case SpvOpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL: return "OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL";
4673     case SpvOpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL: return "OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL";
4674     case SpvOpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL: return "OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL";
4675     case SpvOpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL: return "OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL";
4676     case SpvOpSubgroupAvcMceSetMotionVectorCostFunctionINTEL: return "OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL";
4677     case SpvOpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL: return "OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL";
4678     case SpvOpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL: return "OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL";
4679     case SpvOpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL: return "OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL";
4680     case SpvOpSubgroupAvcMceSetAcOnlyHaarINTEL: return "OpSubgroupAvcMceSetAcOnlyHaarINTEL";
4681     case SpvOpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL: return "OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL";
4682     case SpvOpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL: return "OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL";
4683     case SpvOpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL: return "OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL";
4684     case SpvOpSubgroupAvcMceConvertToImePayloadINTEL: return "OpSubgroupAvcMceConvertToImePayloadINTEL";
4685     case SpvOpSubgroupAvcMceConvertToImeResultINTEL: return "OpSubgroupAvcMceConvertToImeResultINTEL";
4686     case SpvOpSubgroupAvcMceConvertToRefPayloadINTEL: return "OpSubgroupAvcMceConvertToRefPayloadINTEL";
4687     case SpvOpSubgroupAvcMceConvertToRefResultINTEL: return "OpSubgroupAvcMceConvertToRefResultINTEL";
4688     case SpvOpSubgroupAvcMceConvertToSicPayloadINTEL: return "OpSubgroupAvcMceConvertToSicPayloadINTEL";
4689     case SpvOpSubgroupAvcMceConvertToSicResultINTEL: return "OpSubgroupAvcMceConvertToSicResultINTEL";
4690     case SpvOpSubgroupAvcMceGetMotionVectorsINTEL: return "OpSubgroupAvcMceGetMotionVectorsINTEL";
4691     case SpvOpSubgroupAvcMceGetInterDistortionsINTEL: return "OpSubgroupAvcMceGetInterDistortionsINTEL";
4692     case SpvOpSubgroupAvcMceGetBestInterDistortionsINTEL: return "OpSubgroupAvcMceGetBestInterDistortionsINTEL";
4693     case SpvOpSubgroupAvcMceGetInterMajorShapeINTEL: return "OpSubgroupAvcMceGetInterMajorShapeINTEL";
4694     case SpvOpSubgroupAvcMceGetInterMinorShapeINTEL: return "OpSubgroupAvcMceGetInterMinorShapeINTEL";
4695     case SpvOpSubgroupAvcMceGetInterDirectionsINTEL: return "OpSubgroupAvcMceGetInterDirectionsINTEL";
4696     case SpvOpSubgroupAvcMceGetInterMotionVectorCountINTEL: return "OpSubgroupAvcMceGetInterMotionVectorCountINTEL";
4697     case SpvOpSubgroupAvcMceGetInterReferenceIdsINTEL: return "OpSubgroupAvcMceGetInterReferenceIdsINTEL";
4698     case SpvOpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL: return "OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL";
4699     case SpvOpSubgroupAvcImeInitializeINTEL: return "OpSubgroupAvcImeInitializeINTEL";
4700     case SpvOpSubgroupAvcImeSetSingleReferenceINTEL: return "OpSubgroupAvcImeSetSingleReferenceINTEL";
4701     case SpvOpSubgroupAvcImeSetDualReferenceINTEL: return "OpSubgroupAvcImeSetDualReferenceINTEL";
4702     case SpvOpSubgroupAvcImeRefWindowSizeINTEL: return "OpSubgroupAvcImeRefWindowSizeINTEL";
4703     case SpvOpSubgroupAvcImeAdjustRefOffsetINTEL: return "OpSubgroupAvcImeAdjustRefOffsetINTEL";
4704     case SpvOpSubgroupAvcImeConvertToMcePayloadINTEL: return "OpSubgroupAvcImeConvertToMcePayloadINTEL";
4705     case SpvOpSubgroupAvcImeSetMaxMotionVectorCountINTEL: return "OpSubgroupAvcImeSetMaxMotionVectorCountINTEL";
4706     case SpvOpSubgroupAvcImeSetUnidirectionalMixDisableINTEL: return "OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL";
4707     case SpvOpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL: return "OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL";
4708     case SpvOpSubgroupAvcImeSetWeightedSadINTEL: return "OpSubgroupAvcImeSetWeightedSadINTEL";
4709     case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceINTEL: return "OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL";
4710     case SpvOpSubgroupAvcImeEvaluateWithDualReferenceINTEL: return "OpSubgroupAvcImeEvaluateWithDualReferenceINTEL";
4711     case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL: return "OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL";
4712     case SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL: return "OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL";
4713     case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL: return "OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL";
4714     case SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL: return "OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL";
4715     case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL: return "OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL";
4716     case SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL: return "OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL";
4717     case SpvOpSubgroupAvcImeConvertToMceResultINTEL: return "OpSubgroupAvcImeConvertToMceResultINTEL";
4718     case SpvOpSubgroupAvcImeGetSingleReferenceStreaminINTEL: return "OpSubgroupAvcImeGetSingleReferenceStreaminINTEL";
4719     case SpvOpSubgroupAvcImeGetDualReferenceStreaminINTEL: return "OpSubgroupAvcImeGetDualReferenceStreaminINTEL";
4720     case SpvOpSubgroupAvcImeStripSingleReferenceStreamoutINTEL: return "OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL";
4721     case SpvOpSubgroupAvcImeStripDualReferenceStreamoutINTEL: return "OpSubgroupAvcImeStripDualReferenceStreamoutINTEL";
4722     case SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL: return "OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL";
4723     case SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL: return "OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL";
4724     case SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL: return "OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL";
4725     case SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL: return "OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL";
4726     case SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL: return "OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL";
4727     case SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL: return "OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL";
4728     case SpvOpSubgroupAvcImeGetBorderReachedINTEL: return "OpSubgroupAvcImeGetBorderReachedINTEL";
4729     case SpvOpSubgroupAvcImeGetTruncatedSearchIndicationINTEL: return "OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL";
4730     case SpvOpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL: return "OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL";
4731     case SpvOpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL: return "OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL";
4732     case SpvOpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL: return "OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL";
4733     case SpvOpSubgroupAvcFmeInitializeINTEL: return "OpSubgroupAvcFmeInitializeINTEL";
4734     case SpvOpSubgroupAvcBmeInitializeINTEL: return "OpSubgroupAvcBmeInitializeINTEL";
4735     case SpvOpSubgroupAvcRefConvertToMcePayloadINTEL: return "OpSubgroupAvcRefConvertToMcePayloadINTEL";
4736     case SpvOpSubgroupAvcRefSetBidirectionalMixDisableINTEL: return "OpSubgroupAvcRefSetBidirectionalMixDisableINTEL";
4737     case SpvOpSubgroupAvcRefSetBilinearFilterEnableINTEL: return "OpSubgroupAvcRefSetBilinearFilterEnableINTEL";
4738     case SpvOpSubgroupAvcRefEvaluateWithSingleReferenceINTEL: return "OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL";
4739     case SpvOpSubgroupAvcRefEvaluateWithDualReferenceINTEL: return "OpSubgroupAvcRefEvaluateWithDualReferenceINTEL";
4740     case SpvOpSubgroupAvcRefEvaluateWithMultiReferenceINTEL: return "OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL";
4741     case SpvOpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL: return "OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL";
4742     case SpvOpSubgroupAvcRefConvertToMceResultINTEL: return "OpSubgroupAvcRefConvertToMceResultINTEL";
4743     case SpvOpSubgroupAvcSicInitializeINTEL: return "OpSubgroupAvcSicInitializeINTEL";
4744     case SpvOpSubgroupAvcSicConfigureSkcINTEL: return "OpSubgroupAvcSicConfigureSkcINTEL";
4745     case SpvOpSubgroupAvcSicConfigureIpeLumaINTEL: return "OpSubgroupAvcSicConfigureIpeLumaINTEL";
4746     case SpvOpSubgroupAvcSicConfigureIpeLumaChromaINTEL: return "OpSubgroupAvcSicConfigureIpeLumaChromaINTEL";
4747     case SpvOpSubgroupAvcSicGetMotionVectorMaskINTEL: return "OpSubgroupAvcSicGetMotionVectorMaskINTEL";
4748     case SpvOpSubgroupAvcSicConvertToMcePayloadINTEL: return "OpSubgroupAvcSicConvertToMcePayloadINTEL";
4749     case SpvOpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL: return "OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL";
4750     case SpvOpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL: return "OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL";
4751     case SpvOpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL: return "OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL";
4752     case SpvOpSubgroupAvcSicSetBilinearFilterEnableINTEL: return "OpSubgroupAvcSicSetBilinearFilterEnableINTEL";
4753     case SpvOpSubgroupAvcSicSetSkcForwardTransformEnableINTEL: return "OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL";
4754     case SpvOpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL: return "OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL";
4755     case SpvOpSubgroupAvcSicEvaluateIpeINTEL: return "OpSubgroupAvcSicEvaluateIpeINTEL";
4756     case SpvOpSubgroupAvcSicEvaluateWithSingleReferenceINTEL: return "OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL";
4757     case SpvOpSubgroupAvcSicEvaluateWithDualReferenceINTEL: return "OpSubgroupAvcSicEvaluateWithDualReferenceINTEL";
4758     case SpvOpSubgroupAvcSicEvaluateWithMultiReferenceINTEL: return "OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL";
4759     case SpvOpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL: return "OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL";
4760     case SpvOpSubgroupAvcSicConvertToMceResultINTEL: return "OpSubgroupAvcSicConvertToMceResultINTEL";
4761     case SpvOpSubgroupAvcSicGetIpeLumaShapeINTEL: return "OpSubgroupAvcSicGetIpeLumaShapeINTEL";
4762     case SpvOpSubgroupAvcSicGetBestIpeLumaDistortionINTEL: return "OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL";
4763     case SpvOpSubgroupAvcSicGetBestIpeChromaDistortionINTEL: return "OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL";
4764     case SpvOpSubgroupAvcSicGetPackedIpeLumaModesINTEL: return "OpSubgroupAvcSicGetPackedIpeLumaModesINTEL";
4765     case SpvOpSubgroupAvcSicGetIpeChromaModeINTEL: return "OpSubgroupAvcSicGetIpeChromaModeINTEL";
4766     case SpvOpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL: return "OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL";
4767     case SpvOpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL: return "OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL";
4768     case SpvOpSubgroupAvcSicGetInterRawSadsINTEL: return "OpSubgroupAvcSicGetInterRawSadsINTEL";
4769     case SpvOpVariableLengthArrayINTEL: return "OpVariableLengthArrayINTEL";
4770     case SpvOpSaveMemoryINTEL: return "OpSaveMemoryINTEL";
4771     case SpvOpRestoreMemoryINTEL: return "OpRestoreMemoryINTEL";
4772     case SpvOpArbitraryFloatSinCosPiINTEL: return "OpArbitraryFloatSinCosPiINTEL";
4773     case SpvOpArbitraryFloatCastINTEL: return "OpArbitraryFloatCastINTEL";
4774     case SpvOpArbitraryFloatCastFromIntINTEL: return "OpArbitraryFloatCastFromIntINTEL";
4775     case SpvOpArbitraryFloatCastToIntINTEL: return "OpArbitraryFloatCastToIntINTEL";
4776     case SpvOpArbitraryFloatAddINTEL: return "OpArbitraryFloatAddINTEL";
4777     case SpvOpArbitraryFloatSubINTEL: return "OpArbitraryFloatSubINTEL";
4778     case SpvOpArbitraryFloatMulINTEL: return "OpArbitraryFloatMulINTEL";
4779     case SpvOpArbitraryFloatDivINTEL: return "OpArbitraryFloatDivINTEL";
4780     case SpvOpArbitraryFloatGTINTEL: return "OpArbitraryFloatGTINTEL";
4781     case SpvOpArbitraryFloatGEINTEL: return "OpArbitraryFloatGEINTEL";
4782     case SpvOpArbitraryFloatLTINTEL: return "OpArbitraryFloatLTINTEL";
4783     case SpvOpArbitraryFloatLEINTEL: return "OpArbitraryFloatLEINTEL";
4784     case SpvOpArbitraryFloatEQINTEL: return "OpArbitraryFloatEQINTEL";
4785     case SpvOpArbitraryFloatRecipINTEL: return "OpArbitraryFloatRecipINTEL";
4786     case SpvOpArbitraryFloatRSqrtINTEL: return "OpArbitraryFloatRSqrtINTEL";
4787     case SpvOpArbitraryFloatCbrtINTEL: return "OpArbitraryFloatCbrtINTEL";
4788     case SpvOpArbitraryFloatHypotINTEL: return "OpArbitraryFloatHypotINTEL";
4789     case SpvOpArbitraryFloatSqrtINTEL: return "OpArbitraryFloatSqrtINTEL";
4790     case SpvOpArbitraryFloatLogINTEL: return "OpArbitraryFloatLogINTEL";
4791     case SpvOpArbitraryFloatLog2INTEL: return "OpArbitraryFloatLog2INTEL";
4792     case SpvOpArbitraryFloatLog10INTEL: return "OpArbitraryFloatLog10INTEL";
4793     case SpvOpArbitraryFloatLog1pINTEL: return "OpArbitraryFloatLog1pINTEL";
4794     case SpvOpArbitraryFloatExpINTEL: return "OpArbitraryFloatExpINTEL";
4795     case SpvOpArbitraryFloatExp2INTEL: return "OpArbitraryFloatExp2INTEL";
4796     case SpvOpArbitraryFloatExp10INTEL: return "OpArbitraryFloatExp10INTEL";
4797     case SpvOpArbitraryFloatExpm1INTEL: return "OpArbitraryFloatExpm1INTEL";
4798     case SpvOpArbitraryFloatSinINTEL: return "OpArbitraryFloatSinINTEL";
4799     case SpvOpArbitraryFloatCosINTEL: return "OpArbitraryFloatCosINTEL";
4800     case SpvOpArbitraryFloatSinCosINTEL: return "OpArbitraryFloatSinCosINTEL";
4801     case SpvOpArbitraryFloatSinPiINTEL: return "OpArbitraryFloatSinPiINTEL";
4802     case SpvOpArbitraryFloatCosPiINTEL: return "OpArbitraryFloatCosPiINTEL";
4803     case SpvOpArbitraryFloatASinINTEL: return "OpArbitraryFloatASinINTEL";
4804     case SpvOpArbitraryFloatASinPiINTEL: return "OpArbitraryFloatASinPiINTEL";
4805     case SpvOpArbitraryFloatACosINTEL: return "OpArbitraryFloatACosINTEL";
4806     case SpvOpArbitraryFloatACosPiINTEL: return "OpArbitraryFloatACosPiINTEL";
4807     case SpvOpArbitraryFloatATanINTEL: return "OpArbitraryFloatATanINTEL";
4808     case SpvOpArbitraryFloatATanPiINTEL: return "OpArbitraryFloatATanPiINTEL";
4809     case SpvOpArbitraryFloatATan2INTEL: return "OpArbitraryFloatATan2INTEL";
4810     case SpvOpArbitraryFloatPowINTEL: return "OpArbitraryFloatPowINTEL";
4811     case SpvOpArbitraryFloatPowRINTEL: return "OpArbitraryFloatPowRINTEL";
4812     case SpvOpArbitraryFloatPowNINTEL: return "OpArbitraryFloatPowNINTEL";
4813     case SpvOpLoopControlINTEL: return "OpLoopControlINTEL";
4814     case SpvOpAliasDomainDeclINTEL: return "OpAliasDomainDeclINTEL";
4815     case SpvOpAliasScopeDeclINTEL: return "OpAliasScopeDeclINTEL";
4816     case SpvOpAliasScopeListDeclINTEL: return "OpAliasScopeListDeclINTEL";
4817     case SpvOpFixedSqrtINTEL: return "OpFixedSqrtINTEL";
4818     case SpvOpFixedRecipINTEL: return "OpFixedRecipINTEL";
4819     case SpvOpFixedRsqrtINTEL: return "OpFixedRsqrtINTEL";
4820     case SpvOpFixedSinINTEL: return "OpFixedSinINTEL";
4821     case SpvOpFixedCosINTEL: return "OpFixedCosINTEL";
4822     case SpvOpFixedSinCosINTEL: return "OpFixedSinCosINTEL";
4823     case SpvOpFixedSinPiINTEL: return "OpFixedSinPiINTEL";
4824     case SpvOpFixedCosPiINTEL: return "OpFixedCosPiINTEL";
4825     case SpvOpFixedSinCosPiINTEL: return "OpFixedSinCosPiINTEL";
4826     case SpvOpFixedLogINTEL: return "OpFixedLogINTEL";
4827     case SpvOpFixedExpINTEL: return "OpFixedExpINTEL";
4828     case SpvOpPtrCastToCrossWorkgroupINTEL: return "OpPtrCastToCrossWorkgroupINTEL";
4829     case SpvOpCrossWorkgroupCastToPtrINTEL: return "OpCrossWorkgroupCastToPtrINTEL";
4830     case SpvOpReadPipeBlockingINTEL: return "OpReadPipeBlockingINTEL";
4831     case SpvOpWritePipeBlockingINTEL: return "OpWritePipeBlockingINTEL";
4832     case SpvOpFPGARegINTEL: return "OpFPGARegINTEL";
4833     case SpvOpRayQueryGetRayTMinKHR: return "OpRayQueryGetRayTMinKHR";
4834     case SpvOpRayQueryGetRayFlagsKHR: return "OpRayQueryGetRayFlagsKHR";
4835     case SpvOpRayQueryGetIntersectionTKHR: return "OpRayQueryGetIntersectionTKHR";
4836     case SpvOpRayQueryGetIntersectionInstanceCustomIndexKHR: return "OpRayQueryGetIntersectionInstanceCustomIndexKHR";
4837     case SpvOpRayQueryGetIntersectionInstanceIdKHR: return "OpRayQueryGetIntersectionInstanceIdKHR";
4838     case SpvOpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR: return "OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR";
4839     case SpvOpRayQueryGetIntersectionGeometryIndexKHR: return "OpRayQueryGetIntersectionGeometryIndexKHR";
4840     case SpvOpRayQueryGetIntersectionPrimitiveIndexKHR: return "OpRayQueryGetIntersectionPrimitiveIndexKHR";
4841     case SpvOpRayQueryGetIntersectionBarycentricsKHR: return "OpRayQueryGetIntersectionBarycentricsKHR";
4842     case SpvOpRayQueryGetIntersectionFrontFaceKHR: return "OpRayQueryGetIntersectionFrontFaceKHR";
4843     case SpvOpRayQueryGetIntersectionCandidateAABBOpaqueKHR: return "OpRayQueryGetIntersectionCandidateAABBOpaqueKHR";
4844     case SpvOpRayQueryGetIntersectionObjectRayDirectionKHR: return "OpRayQueryGetIntersectionObjectRayDirectionKHR";
4845     case SpvOpRayQueryGetIntersectionObjectRayOriginKHR: return "OpRayQueryGetIntersectionObjectRayOriginKHR";
4846     case SpvOpRayQueryGetWorldRayDirectionKHR: return "OpRayQueryGetWorldRayDirectionKHR";
4847     case SpvOpRayQueryGetWorldRayOriginKHR: return "OpRayQueryGetWorldRayOriginKHR";
4848     case SpvOpRayQueryGetIntersectionObjectToWorldKHR: return "OpRayQueryGetIntersectionObjectToWorldKHR";
4849     case SpvOpRayQueryGetIntersectionWorldToObjectKHR: return "OpRayQueryGetIntersectionWorldToObjectKHR";
4850     case SpvOpAtomicFAddEXT: return "OpAtomicFAddEXT";
4851     case SpvOpTypeBufferSurfaceINTEL: return "OpTypeBufferSurfaceINTEL";
4852     case SpvOpTypeStructContinuedINTEL: return "OpTypeStructContinuedINTEL";
4853     case SpvOpConstantCompositeContinuedINTEL: return "OpConstantCompositeContinuedINTEL";
4854     case SpvOpSpecConstantCompositeContinuedINTEL: return "OpSpecConstantCompositeContinuedINTEL";
4855     case SpvOpCompositeConstructContinuedINTEL: return "OpCompositeConstructContinuedINTEL";
4856     case SpvOpConvertFToBF16INTEL: return "OpConvertFToBF16INTEL";
4857     case SpvOpConvertBF16ToFINTEL: return "OpConvertBF16ToFINTEL";
4858     case SpvOpControlBarrierArriveINTEL: return "OpControlBarrierArriveINTEL";
4859     case SpvOpControlBarrierWaitINTEL: return "OpControlBarrierWaitINTEL";
4860     case SpvOpArithmeticFenceEXT: return "OpArithmeticFenceEXT";
4861     case SpvOpSubgroupBlockPrefetchINTEL: return "OpSubgroupBlockPrefetchINTEL";
4862     case SpvOpGroupIMulKHR: return "OpGroupIMulKHR";
4863     case SpvOpGroupFMulKHR: return "OpGroupFMulKHR";
4864     case SpvOpGroupBitwiseAndKHR: return "OpGroupBitwiseAndKHR";
4865     case SpvOpGroupBitwiseOrKHR: return "OpGroupBitwiseOrKHR";
4866     case SpvOpGroupBitwiseXorKHR: return "OpGroupBitwiseXorKHR";
4867     case SpvOpGroupLogicalAndKHR: return "OpGroupLogicalAndKHR";
4868     case SpvOpGroupLogicalOrKHR: return "OpGroupLogicalOrKHR";
4869     case SpvOpGroupLogicalXorKHR: return "OpGroupLogicalXorKHR";
4870     case SpvOpMaskedGatherINTEL: return "OpMaskedGatherINTEL";
4871     case SpvOpMaskedScatterINTEL: return "OpMaskedScatterINTEL";
4872     default: return "Unknown";
4873     }
4874 }
4875 
4876 #endif /* SPV_ENABLE_UTILITY_CODE */
4877 
4878 #endif
4879 
4880