yum-mirror/slang

Making it easier to work with shaders

git clone https://git.yummers.dev/yum-mirror/slang

Jay KwakUpdate SPIRV submodules and fix tests (#6222)cbcb97a64

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