• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2014-2024 The Khronos Group Inc.
2 //
3 // Permission is hereby granted, free of charge, to any person obtaining a copy
4 // of this software and/or associated documentation files (the "Materials"),
5 // to deal in the Materials without restriction, including without limitation
6 // the rights to use, copy, modify, merge, publish, distribute, sublicense,
7 // and/or sell copies of the Materials, and to permit persons to whom the
8 // Materials are furnished to do so, subject to the following conditions:
9 //
10 // The above copyright notice and this permission notice shall be included in
11 // all copies or substantial portions of the Materials.
12 //
13 // MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS
14 // STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND
15 // HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/
16 //
17 // THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
18 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
20 // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
22 // FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS
23 // IN THE MATERIALS.
24 
25 // This header is automatically generated by the same tool that creates
26 // the Binary Section of the SPIR-V specification.
27 
28 // Enumeration tokens for SPIR-V, in various styles:
29 //   C, C++, C++11, JSON, Lua, Python, C#, D, Beef
30 //
31 // - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL
32 // - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL
33 // - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL
34 // - Lua will use tables, e.g.: spv.SourceLanguage.GLSL
35 // - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL']
36 // - C# will use enum classes in the Specification class located in the "Spv" namespace,
37 //     e.g.: Spv.Specification.SourceLanguage.GLSL
38 // - D will have tokens under the "spv" module, e.g: spv.SourceLanguage.GLSL
39 // - Beef will use enum classes in the Specification class located in the "Spv" namespace,
40 //     e.g.: Spv.Specification.SourceLanguage.GLSL
41 //
42 // Some tokens act like mask values, which can be OR'd together,
43 // while others are mutually exclusive.  The mask-like ones have
44 // "Mask" in their name, and a parallel enum that has the shift
45 // amount (1 << x) for each corresponding enumerant.
46 
47 #ifndef spirv_HPP
48 #define spirv_HPP
49 
50 namespace spv {
51 
52 typedef unsigned int Id;
53 
54 #define SPV_VERSION 0x10600
55 #define SPV_REVISION 1
56 
57 static const unsigned int MagicNumber = 0x07230203;
58 static const unsigned int Version = 0x00010600;
59 static const unsigned int Revision = 1;
60 static const unsigned int OpCodeMask = 0xffff;
61 static const unsigned int WordCountShift = 16;
62 
63 enum SourceLanguage {
64     SourceLanguageUnknown = 0,
65     SourceLanguageESSL = 1,
66     SourceLanguageGLSL = 2,
67     SourceLanguageOpenCL_C = 3,
68     SourceLanguageOpenCL_CPP = 4,
69     SourceLanguageHLSL = 5,
70     SourceLanguageCPP_for_OpenCL = 6,
71     SourceLanguageSYCL = 7,
72     SourceLanguageHERO_C = 8,
73     SourceLanguageNZSL = 9,
74     SourceLanguageWGSL = 10,
75     SourceLanguageSlang = 11,
76     SourceLanguageZig = 12,
77     SourceLanguageMax = 0x7fffffff,
78 };
79 
80 enum ExecutionModel {
81     ExecutionModelVertex = 0,
82     ExecutionModelTessellationControl = 1,
83     ExecutionModelTessellationEvaluation = 2,
84     ExecutionModelGeometry = 3,
85     ExecutionModelFragment = 4,
86     ExecutionModelGLCompute = 5,
87     ExecutionModelKernel = 6,
88     ExecutionModelTaskNV = 5267,
89     ExecutionModelMeshNV = 5268,
90     ExecutionModelRayGenerationKHR = 5313,
91     ExecutionModelRayGenerationNV = 5313,
92     ExecutionModelIntersectionKHR = 5314,
93     ExecutionModelIntersectionNV = 5314,
94     ExecutionModelAnyHitKHR = 5315,
95     ExecutionModelAnyHitNV = 5315,
96     ExecutionModelClosestHitKHR = 5316,
97     ExecutionModelClosestHitNV = 5316,
98     ExecutionModelMissKHR = 5317,
99     ExecutionModelMissNV = 5317,
100     ExecutionModelCallableKHR = 5318,
101     ExecutionModelCallableNV = 5318,
102     ExecutionModelTaskEXT = 5364,
103     ExecutionModelMeshEXT = 5365,
104     ExecutionModelMax = 0x7fffffff,
105 };
106 
107 enum AddressingModel {
108     AddressingModelLogical = 0,
109     AddressingModelPhysical32 = 1,
110     AddressingModelPhysical64 = 2,
111     AddressingModelPhysicalStorageBuffer64 = 5348,
112     AddressingModelPhysicalStorageBuffer64EXT = 5348,
113     AddressingModelMax = 0x7fffffff,
114 };
115 
116 enum MemoryModel {
117     MemoryModelSimple = 0,
118     MemoryModelGLSL450 = 1,
119     MemoryModelOpenCL = 2,
120     MemoryModelVulkan = 3,
121     MemoryModelVulkanKHR = 3,
122     MemoryModelMax = 0x7fffffff,
123 };
124 
125 enum ExecutionMode {
126     ExecutionModeInvocations = 0,
127     ExecutionModeSpacingEqual = 1,
128     ExecutionModeSpacingFractionalEven = 2,
129     ExecutionModeSpacingFractionalOdd = 3,
130     ExecutionModeVertexOrderCw = 4,
131     ExecutionModeVertexOrderCcw = 5,
132     ExecutionModePixelCenterInteger = 6,
133     ExecutionModeOriginUpperLeft = 7,
134     ExecutionModeOriginLowerLeft = 8,
135     ExecutionModeEarlyFragmentTests = 9,
136     ExecutionModePointMode = 10,
137     ExecutionModeXfb = 11,
138     ExecutionModeDepthReplacing = 12,
139     ExecutionModeDepthGreater = 14,
140     ExecutionModeDepthLess = 15,
141     ExecutionModeDepthUnchanged = 16,
142     ExecutionModeLocalSize = 17,
143     ExecutionModeLocalSizeHint = 18,
144     ExecutionModeInputPoints = 19,
145     ExecutionModeInputLines = 20,
146     ExecutionModeInputLinesAdjacency = 21,
147     ExecutionModeTriangles = 22,
148     ExecutionModeInputTrianglesAdjacency = 23,
149     ExecutionModeQuads = 24,
150     ExecutionModeIsolines = 25,
151     ExecutionModeOutputVertices = 26,
152     ExecutionModeOutputPoints = 27,
153     ExecutionModeOutputLineStrip = 28,
154     ExecutionModeOutputTriangleStrip = 29,
155     ExecutionModeVecTypeHint = 30,
156     ExecutionModeContractionOff = 31,
157     ExecutionModeInitializer = 33,
158     ExecutionModeFinalizer = 34,
159     ExecutionModeSubgroupSize = 35,
160     ExecutionModeSubgroupsPerWorkgroup = 36,
161     ExecutionModeSubgroupsPerWorkgroupId = 37,
162     ExecutionModeLocalSizeId = 38,
163     ExecutionModeLocalSizeHintId = 39,
164     ExecutionModeNonCoherentColorAttachmentReadEXT = 4169,
165     ExecutionModeNonCoherentDepthAttachmentReadEXT = 4170,
166     ExecutionModeNonCoherentStencilAttachmentReadEXT = 4171,
167     ExecutionModeSubgroupUniformControlFlowKHR = 4421,
168     ExecutionModePostDepthCoverage = 4446,
169     ExecutionModeDenormPreserve = 4459,
170     ExecutionModeDenormFlushToZero = 4460,
171     ExecutionModeSignedZeroInfNanPreserve = 4461,
172     ExecutionModeRoundingModeRTE = 4462,
173     ExecutionModeRoundingModeRTZ = 4463,
174     ExecutionModeEarlyAndLateFragmentTestsAMD = 5017,
175     ExecutionModeStencilRefReplacingEXT = 5027,
176     ExecutionModeCoalescingAMDX = 5069,
177     ExecutionModeMaxNodeRecursionAMDX = 5071,
178     ExecutionModeStaticNumWorkgroupsAMDX = 5072,
179     ExecutionModeShaderIndexAMDX = 5073,
180     ExecutionModeMaxNumWorkgroupsAMDX = 5077,
181     ExecutionModeStencilRefUnchangedFrontAMD = 5079,
182     ExecutionModeStencilRefGreaterFrontAMD = 5080,
183     ExecutionModeStencilRefLessFrontAMD = 5081,
184     ExecutionModeStencilRefUnchangedBackAMD = 5082,
185     ExecutionModeStencilRefGreaterBackAMD = 5083,
186     ExecutionModeStencilRefLessBackAMD = 5084,
187     ExecutionModeQuadDerivativesKHR = 5088,
188     ExecutionModeRequireFullQuadsKHR = 5089,
189     ExecutionModeOutputLinesEXT = 5269,
190     ExecutionModeOutputLinesNV = 5269,
191     ExecutionModeOutputPrimitivesEXT = 5270,
192     ExecutionModeOutputPrimitivesNV = 5270,
193     ExecutionModeDerivativeGroupQuadsNV = 5289,
194     ExecutionModeDerivativeGroupLinearNV = 5290,
195     ExecutionModeOutputTrianglesEXT = 5298,
196     ExecutionModeOutputTrianglesNV = 5298,
197     ExecutionModePixelInterlockOrderedEXT = 5366,
198     ExecutionModePixelInterlockUnorderedEXT = 5367,
199     ExecutionModeSampleInterlockOrderedEXT = 5368,
200     ExecutionModeSampleInterlockUnorderedEXT = 5369,
201     ExecutionModeShadingRateInterlockOrderedEXT = 5370,
202     ExecutionModeShadingRateInterlockUnorderedEXT = 5371,
203     ExecutionModeSharedLocalMemorySizeINTEL = 5618,
204     ExecutionModeRoundingModeRTPINTEL = 5620,
205     ExecutionModeRoundingModeRTNINTEL = 5621,
206     ExecutionModeFloatingPointModeALTINTEL = 5622,
207     ExecutionModeFloatingPointModeIEEEINTEL = 5623,
208     ExecutionModeMaxWorkgroupSizeINTEL = 5893,
209     ExecutionModeMaxWorkDimINTEL = 5894,
210     ExecutionModeNoGlobalOffsetINTEL = 5895,
211     ExecutionModeNumSIMDWorkitemsINTEL = 5896,
212     ExecutionModeSchedulerTargetFmaxMhzINTEL = 5903,
213     ExecutionModeMaximallyReconvergesKHR = 6023,
214     ExecutionModeFPFastMathDefault = 6028,
215     ExecutionModeStreamingInterfaceINTEL = 6154,
216     ExecutionModeRegisterMapInterfaceINTEL = 6160,
217     ExecutionModeNamedBarrierCountINTEL = 6417,
218     ExecutionModeMaximumRegistersINTEL = 6461,
219     ExecutionModeMaximumRegistersIdINTEL = 6462,
220     ExecutionModeNamedMaximumRegistersINTEL = 6463,
221     ExecutionModeMax = 0x7fffffff,
222 };
223 
224 enum StorageClass {
225     StorageClassUniformConstant = 0,
226     StorageClassInput = 1,
227     StorageClassUniform = 2,
228     StorageClassOutput = 3,
229     StorageClassWorkgroup = 4,
230     StorageClassCrossWorkgroup = 5,
231     StorageClassPrivate = 6,
232     StorageClassFunction = 7,
233     StorageClassGeneric = 8,
234     StorageClassPushConstant = 9,
235     StorageClassAtomicCounter = 10,
236     StorageClassImage = 11,
237     StorageClassStorageBuffer = 12,
238     StorageClassTileImageEXT = 4172,
239     StorageClassNodePayloadAMDX = 5068,
240     StorageClassNodeOutputPayloadAMDX = 5076,
241     StorageClassCallableDataKHR = 5328,
242     StorageClassCallableDataNV = 5328,
243     StorageClassIncomingCallableDataKHR = 5329,
244     StorageClassIncomingCallableDataNV = 5329,
245     StorageClassRayPayloadKHR = 5338,
246     StorageClassRayPayloadNV = 5338,
247     StorageClassHitAttributeKHR = 5339,
248     StorageClassHitAttributeNV = 5339,
249     StorageClassIncomingRayPayloadKHR = 5342,
250     StorageClassIncomingRayPayloadNV = 5342,
251     StorageClassShaderRecordBufferKHR = 5343,
252     StorageClassShaderRecordBufferNV = 5343,
253     StorageClassPhysicalStorageBuffer = 5349,
254     StorageClassPhysicalStorageBufferEXT = 5349,
255     StorageClassHitObjectAttributeNV = 5385,
256     StorageClassTaskPayloadWorkgroupEXT = 5402,
257     StorageClassCodeSectionINTEL = 5605,
258     StorageClassDeviceOnlyINTEL = 5936,
259     StorageClassHostOnlyINTEL = 5937,
260     StorageClassMax = 0x7fffffff,
261 };
262 
263 enum Dim {
264     Dim1D = 0,
265     Dim2D = 1,
266     Dim3D = 2,
267     DimCube = 3,
268     DimRect = 4,
269     DimBuffer = 5,
270     DimSubpassData = 6,
271     DimTileImageDataEXT = 4173,
272     DimMax = 0x7fffffff,
273 };
274 
275 enum SamplerAddressingMode {
276     SamplerAddressingModeNone = 0,
277     SamplerAddressingModeClampToEdge = 1,
278     SamplerAddressingModeClamp = 2,
279     SamplerAddressingModeRepeat = 3,
280     SamplerAddressingModeRepeatMirrored = 4,
281     SamplerAddressingModeMax = 0x7fffffff,
282 };
283 
284 enum SamplerFilterMode {
285     SamplerFilterModeNearest = 0,
286     SamplerFilterModeLinear = 1,
287     SamplerFilterModeMax = 0x7fffffff,
288 };
289 
290 enum ImageFormat {
291     ImageFormatUnknown = 0,
292     ImageFormatRgba32f = 1,
293     ImageFormatRgba16f = 2,
294     ImageFormatR32f = 3,
295     ImageFormatRgba8 = 4,
296     ImageFormatRgba8Snorm = 5,
297     ImageFormatRg32f = 6,
298     ImageFormatRg16f = 7,
299     ImageFormatR11fG11fB10f = 8,
300     ImageFormatR16f = 9,
301     ImageFormatRgba16 = 10,
302     ImageFormatRgb10A2 = 11,
303     ImageFormatRg16 = 12,
304     ImageFormatRg8 = 13,
305     ImageFormatR16 = 14,
306     ImageFormatR8 = 15,
307     ImageFormatRgba16Snorm = 16,
308     ImageFormatRg16Snorm = 17,
309     ImageFormatRg8Snorm = 18,
310     ImageFormatR16Snorm = 19,
311     ImageFormatR8Snorm = 20,
312     ImageFormatRgba32i = 21,
313     ImageFormatRgba16i = 22,
314     ImageFormatRgba8i = 23,
315     ImageFormatR32i = 24,
316     ImageFormatRg32i = 25,
317     ImageFormatRg16i = 26,
318     ImageFormatRg8i = 27,
319     ImageFormatR16i = 28,
320     ImageFormatR8i = 29,
321     ImageFormatRgba32ui = 30,
322     ImageFormatRgba16ui = 31,
323     ImageFormatRgba8ui = 32,
324     ImageFormatR32ui = 33,
325     ImageFormatRgb10a2ui = 34,
326     ImageFormatRg32ui = 35,
327     ImageFormatRg16ui = 36,
328     ImageFormatRg8ui = 37,
329     ImageFormatR16ui = 38,
330     ImageFormatR8ui = 39,
331     ImageFormatR64ui = 40,
332     ImageFormatR64i = 41,
333     ImageFormatMax = 0x7fffffff,
334 };
335 
336 enum ImageChannelOrder {
337     ImageChannelOrderR = 0,
338     ImageChannelOrderA = 1,
339     ImageChannelOrderRG = 2,
340     ImageChannelOrderRA = 3,
341     ImageChannelOrderRGB = 4,
342     ImageChannelOrderRGBA = 5,
343     ImageChannelOrderBGRA = 6,
344     ImageChannelOrderARGB = 7,
345     ImageChannelOrderIntensity = 8,
346     ImageChannelOrderLuminance = 9,
347     ImageChannelOrderRx = 10,
348     ImageChannelOrderRGx = 11,
349     ImageChannelOrderRGBx = 12,
350     ImageChannelOrderDepth = 13,
351     ImageChannelOrderDepthStencil = 14,
352     ImageChannelOrdersRGB = 15,
353     ImageChannelOrdersRGBx = 16,
354     ImageChannelOrdersRGBA = 17,
355     ImageChannelOrdersBGRA = 18,
356     ImageChannelOrderABGR = 19,
357     ImageChannelOrderMax = 0x7fffffff,
358 };
359 
360 enum ImageChannelDataType {
361     ImageChannelDataTypeSnormInt8 = 0,
362     ImageChannelDataTypeSnormInt16 = 1,
363     ImageChannelDataTypeUnormInt8 = 2,
364     ImageChannelDataTypeUnormInt16 = 3,
365     ImageChannelDataTypeUnormShort565 = 4,
366     ImageChannelDataTypeUnormShort555 = 5,
367     ImageChannelDataTypeUnormInt101010 = 6,
368     ImageChannelDataTypeSignedInt8 = 7,
369     ImageChannelDataTypeSignedInt16 = 8,
370     ImageChannelDataTypeSignedInt32 = 9,
371     ImageChannelDataTypeUnsignedInt8 = 10,
372     ImageChannelDataTypeUnsignedInt16 = 11,
373     ImageChannelDataTypeUnsignedInt32 = 12,
374     ImageChannelDataTypeHalfFloat = 13,
375     ImageChannelDataTypeFloat = 14,
376     ImageChannelDataTypeUnormInt24 = 15,
377     ImageChannelDataTypeUnormInt101010_2 = 16,
378     ImageChannelDataTypeUnsignedIntRaw10EXT = 19,
379     ImageChannelDataTypeUnsignedIntRaw12EXT = 20,
380     ImageChannelDataTypeMax = 0x7fffffff,
381 };
382 
383 enum ImageOperandsShift {
384     ImageOperandsBiasShift = 0,
385     ImageOperandsLodShift = 1,
386     ImageOperandsGradShift = 2,
387     ImageOperandsConstOffsetShift = 3,
388     ImageOperandsOffsetShift = 4,
389     ImageOperandsConstOffsetsShift = 5,
390     ImageOperandsSampleShift = 6,
391     ImageOperandsMinLodShift = 7,
392     ImageOperandsMakeTexelAvailableShift = 8,
393     ImageOperandsMakeTexelAvailableKHRShift = 8,
394     ImageOperandsMakeTexelVisibleShift = 9,
395     ImageOperandsMakeTexelVisibleKHRShift = 9,
396     ImageOperandsNonPrivateTexelShift = 10,
397     ImageOperandsNonPrivateTexelKHRShift = 10,
398     ImageOperandsVolatileTexelShift = 11,
399     ImageOperandsVolatileTexelKHRShift = 11,
400     ImageOperandsSignExtendShift = 12,
401     ImageOperandsZeroExtendShift = 13,
402     ImageOperandsNontemporalShift = 14,
403     ImageOperandsOffsetsShift = 16,
404     ImageOperandsMax = 0x7fffffff,
405 };
406 
407 enum ImageOperandsMask {
408     ImageOperandsMaskNone = 0,
409     ImageOperandsBiasMask = 0x00000001,
410     ImageOperandsLodMask = 0x00000002,
411     ImageOperandsGradMask = 0x00000004,
412     ImageOperandsConstOffsetMask = 0x00000008,
413     ImageOperandsOffsetMask = 0x00000010,
414     ImageOperandsConstOffsetsMask = 0x00000020,
415     ImageOperandsSampleMask = 0x00000040,
416     ImageOperandsMinLodMask = 0x00000080,
417     ImageOperandsMakeTexelAvailableMask = 0x00000100,
418     ImageOperandsMakeTexelAvailableKHRMask = 0x00000100,
419     ImageOperandsMakeTexelVisibleMask = 0x00000200,
420     ImageOperandsMakeTexelVisibleKHRMask = 0x00000200,
421     ImageOperandsNonPrivateTexelMask = 0x00000400,
422     ImageOperandsNonPrivateTexelKHRMask = 0x00000400,
423     ImageOperandsVolatileTexelMask = 0x00000800,
424     ImageOperandsVolatileTexelKHRMask = 0x00000800,
425     ImageOperandsSignExtendMask = 0x00001000,
426     ImageOperandsZeroExtendMask = 0x00002000,
427     ImageOperandsNontemporalMask = 0x00004000,
428     ImageOperandsOffsetsMask = 0x00010000,
429 };
430 
431 enum FPFastMathModeShift {
432     FPFastMathModeNotNaNShift = 0,
433     FPFastMathModeNotInfShift = 1,
434     FPFastMathModeNSZShift = 2,
435     FPFastMathModeAllowRecipShift = 3,
436     FPFastMathModeFastShift = 4,
437     FPFastMathModeAllowContractShift = 16,
438     FPFastMathModeAllowContractFastINTELShift = 16,
439     FPFastMathModeAllowReassocShift = 17,
440     FPFastMathModeAllowReassocINTELShift = 17,
441     FPFastMathModeAllowTransformShift = 18,
442     FPFastMathModeMax = 0x7fffffff,
443 };
444 
445 enum FPFastMathModeMask {
446     FPFastMathModeMaskNone = 0,
447     FPFastMathModeNotNaNMask = 0x00000001,
448     FPFastMathModeNotInfMask = 0x00000002,
449     FPFastMathModeNSZMask = 0x00000004,
450     FPFastMathModeAllowRecipMask = 0x00000008,
451     FPFastMathModeFastMask = 0x00000010,
452     FPFastMathModeAllowContractMask = 0x00010000,
453     FPFastMathModeAllowContractFastINTELMask = 0x00010000,
454     FPFastMathModeAllowReassocMask = 0x00020000,
455     FPFastMathModeAllowReassocINTELMask = 0x00020000,
456     FPFastMathModeAllowTransformMask = 0x00040000,
457 };
458 
459 enum FPRoundingMode {
460     FPRoundingModeRTE = 0,
461     FPRoundingModeRTZ = 1,
462     FPRoundingModeRTP = 2,
463     FPRoundingModeRTN = 3,
464     FPRoundingModeMax = 0x7fffffff,
465 };
466 
467 enum LinkageType {
468     LinkageTypeExport = 0,
469     LinkageTypeImport = 1,
470     LinkageTypeLinkOnceODR = 2,
471     LinkageTypeMax = 0x7fffffff,
472 };
473 
474 enum AccessQualifier {
475     AccessQualifierReadOnly = 0,
476     AccessQualifierWriteOnly = 1,
477     AccessQualifierReadWrite = 2,
478     AccessQualifierMax = 0x7fffffff,
479 };
480 
481 enum FunctionParameterAttribute {
482     FunctionParameterAttributeZext = 0,
483     FunctionParameterAttributeSext = 1,
484     FunctionParameterAttributeByVal = 2,
485     FunctionParameterAttributeSret = 3,
486     FunctionParameterAttributeNoAlias = 4,
487     FunctionParameterAttributeNoCapture = 5,
488     FunctionParameterAttributeNoWrite = 6,
489     FunctionParameterAttributeNoReadWrite = 7,
490     FunctionParameterAttributeRuntimeAlignedINTEL = 5940,
491     FunctionParameterAttributeMax = 0x7fffffff,
492 };
493 
494 enum Decoration {
495     DecorationRelaxedPrecision = 0,
496     DecorationSpecId = 1,
497     DecorationBlock = 2,
498     DecorationBufferBlock = 3,
499     DecorationRowMajor = 4,
500     DecorationColMajor = 5,
501     DecorationArrayStride = 6,
502     DecorationMatrixStride = 7,
503     DecorationGLSLShared = 8,
504     DecorationGLSLPacked = 9,
505     DecorationCPacked = 10,
506     DecorationBuiltIn = 11,
507     DecorationNoPerspective = 13,
508     DecorationFlat = 14,
509     DecorationPatch = 15,
510     DecorationCentroid = 16,
511     DecorationSample = 17,
512     DecorationInvariant = 18,
513     DecorationRestrict = 19,
514     DecorationAliased = 20,
515     DecorationVolatile = 21,
516     DecorationConstant = 22,
517     DecorationCoherent = 23,
518     DecorationNonWritable = 24,
519     DecorationNonReadable = 25,
520     DecorationUniform = 26,
521     DecorationUniformId = 27,
522     DecorationSaturatedConversion = 28,
523     DecorationStream = 29,
524     DecorationLocation = 30,
525     DecorationComponent = 31,
526     DecorationIndex = 32,
527     DecorationBinding = 33,
528     DecorationDescriptorSet = 34,
529     DecorationOffset = 35,
530     DecorationXfbBuffer = 36,
531     DecorationXfbStride = 37,
532     DecorationFuncParamAttr = 38,
533     DecorationFPRoundingMode = 39,
534     DecorationFPFastMathMode = 40,
535     DecorationLinkageAttributes = 41,
536     DecorationNoContraction = 42,
537     DecorationInputAttachmentIndex = 43,
538     DecorationAlignment = 44,
539     DecorationMaxByteOffset = 45,
540     DecorationAlignmentId = 46,
541     DecorationMaxByteOffsetId = 47,
542     DecorationNoSignedWrap = 4469,
543     DecorationNoUnsignedWrap = 4470,
544     DecorationWeightTextureQCOM = 4487,
545     DecorationBlockMatchTextureQCOM = 4488,
546     DecorationBlockMatchSamplerQCOM = 4499,
547     DecorationExplicitInterpAMD = 4999,
548     DecorationNodeSharesPayloadLimitsWithAMDX = 5019,
549     DecorationNodeMaxPayloadsAMDX = 5020,
550     DecorationTrackFinishWritingAMDX = 5078,
551     DecorationPayloadNodeNameAMDX = 5091,
552     DecorationOverrideCoverageNV = 5248,
553     DecorationPassthroughNV = 5250,
554     DecorationViewportRelativeNV = 5252,
555     DecorationSecondaryViewportRelativeNV = 5256,
556     DecorationPerPrimitiveEXT = 5271,
557     DecorationPerPrimitiveNV = 5271,
558     DecorationPerViewNV = 5272,
559     DecorationPerTaskNV = 5273,
560     DecorationPerVertexKHR = 5285,
561     DecorationPerVertexNV = 5285,
562     DecorationNonUniform = 5300,
563     DecorationNonUniformEXT = 5300,
564     DecorationRestrictPointer = 5355,
565     DecorationRestrictPointerEXT = 5355,
566     DecorationAliasedPointer = 5356,
567     DecorationAliasedPointerEXT = 5356,
568     DecorationHitObjectShaderRecordBufferNV = 5386,
569     DecorationBindlessSamplerNV = 5398,
570     DecorationBindlessImageNV = 5399,
571     DecorationBoundSamplerNV = 5400,
572     DecorationBoundImageNV = 5401,
573     DecorationSIMTCallINTEL = 5599,
574     DecorationReferencedIndirectlyINTEL = 5602,
575     DecorationClobberINTEL = 5607,
576     DecorationSideEffectsINTEL = 5608,
577     DecorationVectorComputeVariableINTEL = 5624,
578     DecorationFuncParamIOKindINTEL = 5625,
579     DecorationVectorComputeFunctionINTEL = 5626,
580     DecorationStackCallINTEL = 5627,
581     DecorationGlobalVariableOffsetINTEL = 5628,
582     DecorationCounterBuffer = 5634,
583     DecorationHlslCounterBufferGOOGLE = 5634,
584     DecorationHlslSemanticGOOGLE = 5635,
585     DecorationUserSemantic = 5635,
586     DecorationUserTypeGOOGLE = 5636,
587     DecorationFunctionRoundingModeINTEL = 5822,
588     DecorationFunctionDenormModeINTEL = 5823,
589     DecorationRegisterINTEL = 5825,
590     DecorationMemoryINTEL = 5826,
591     DecorationNumbanksINTEL = 5827,
592     DecorationBankwidthINTEL = 5828,
593     DecorationMaxPrivateCopiesINTEL = 5829,
594     DecorationSinglepumpINTEL = 5830,
595     DecorationDoublepumpINTEL = 5831,
596     DecorationMaxReplicatesINTEL = 5832,
597     DecorationSimpleDualPortINTEL = 5833,
598     DecorationMergeINTEL = 5834,
599     DecorationBankBitsINTEL = 5835,
600     DecorationForcePow2DepthINTEL = 5836,
601     DecorationStridesizeINTEL = 5883,
602     DecorationWordsizeINTEL = 5884,
603     DecorationTrueDualPortINTEL = 5885,
604     DecorationBurstCoalesceINTEL = 5899,
605     DecorationCacheSizeINTEL = 5900,
606     DecorationDontStaticallyCoalesceINTEL = 5901,
607     DecorationPrefetchINTEL = 5902,
608     DecorationStallEnableINTEL = 5905,
609     DecorationFuseLoopsInFunctionINTEL = 5907,
610     DecorationMathOpDSPModeINTEL = 5909,
611     DecorationAliasScopeINTEL = 5914,
612     DecorationNoAliasINTEL = 5915,
613     DecorationInitiationIntervalINTEL = 5917,
614     DecorationMaxConcurrencyINTEL = 5918,
615     DecorationPipelineEnableINTEL = 5919,
616     DecorationBufferLocationINTEL = 5921,
617     DecorationIOPipeStorageINTEL = 5944,
618     DecorationFunctionFloatingPointModeINTEL = 6080,
619     DecorationSingleElementVectorINTEL = 6085,
620     DecorationVectorComputeCallableFunctionINTEL = 6087,
621     DecorationMediaBlockIOINTEL = 6140,
622     DecorationStallFreeINTEL = 6151,
623     DecorationFPMaxErrorDecorationINTEL = 6170,
624     DecorationLatencyControlLabelINTEL = 6172,
625     DecorationLatencyControlConstraintINTEL = 6173,
626     DecorationConduitKernelArgumentINTEL = 6175,
627     DecorationRegisterMapKernelArgumentINTEL = 6176,
628     DecorationMMHostInterfaceAddressWidthINTEL = 6177,
629     DecorationMMHostInterfaceDataWidthINTEL = 6178,
630     DecorationMMHostInterfaceLatencyINTEL = 6179,
631     DecorationMMHostInterfaceReadWriteModeINTEL = 6180,
632     DecorationMMHostInterfaceMaxBurstINTEL = 6181,
633     DecorationMMHostInterfaceWaitRequestINTEL = 6182,
634     DecorationStableKernelArgumentINTEL = 6183,
635     DecorationHostAccessINTEL = 6188,
636     DecorationInitModeINTEL = 6190,
637     DecorationImplementInRegisterMapINTEL = 6191,
638     DecorationCacheControlLoadINTEL = 6442,
639     DecorationCacheControlStoreINTEL = 6443,
640     DecorationMax = 0x7fffffff,
641 };
642 
643 enum BuiltIn {
644     BuiltInPosition = 0,
645     BuiltInPointSize = 1,
646     BuiltInClipDistance = 3,
647     BuiltInCullDistance = 4,
648     BuiltInVertexId = 5,
649     BuiltInInstanceId = 6,
650     BuiltInPrimitiveId = 7,
651     BuiltInInvocationId = 8,
652     BuiltInLayer = 9,
653     BuiltInViewportIndex = 10,
654     BuiltInTessLevelOuter = 11,
655     BuiltInTessLevelInner = 12,
656     BuiltInTessCoord = 13,
657     BuiltInPatchVertices = 14,
658     BuiltInFragCoord = 15,
659     BuiltInPointCoord = 16,
660     BuiltInFrontFacing = 17,
661     BuiltInSampleId = 18,
662     BuiltInSamplePosition = 19,
663     BuiltInSampleMask = 20,
664     BuiltInFragDepth = 22,
665     BuiltInHelperInvocation = 23,
666     BuiltInNumWorkgroups = 24,
667     BuiltInWorkgroupSize = 25,
668     BuiltInWorkgroupId = 26,
669     BuiltInLocalInvocationId = 27,
670     BuiltInGlobalInvocationId = 28,
671     BuiltInLocalInvocationIndex = 29,
672     BuiltInWorkDim = 30,
673     BuiltInGlobalSize = 31,
674     BuiltInEnqueuedWorkgroupSize = 32,
675     BuiltInGlobalOffset = 33,
676     BuiltInGlobalLinearId = 34,
677     BuiltInSubgroupSize = 36,
678     BuiltInSubgroupMaxSize = 37,
679     BuiltInNumSubgroups = 38,
680     BuiltInNumEnqueuedSubgroups = 39,
681     BuiltInSubgroupId = 40,
682     BuiltInSubgroupLocalInvocationId = 41,
683     BuiltInVertexIndex = 42,
684     BuiltInInstanceIndex = 43,
685     BuiltInCoreIDARM = 4160,
686     BuiltInCoreCountARM = 4161,
687     BuiltInCoreMaxIDARM = 4162,
688     BuiltInWarpIDARM = 4163,
689     BuiltInWarpMaxIDARM = 4164,
690     BuiltInSubgroupEqMask = 4416,
691     BuiltInSubgroupEqMaskKHR = 4416,
692     BuiltInSubgroupGeMask = 4417,
693     BuiltInSubgroupGeMaskKHR = 4417,
694     BuiltInSubgroupGtMask = 4418,
695     BuiltInSubgroupGtMaskKHR = 4418,
696     BuiltInSubgroupLeMask = 4419,
697     BuiltInSubgroupLeMaskKHR = 4419,
698     BuiltInSubgroupLtMask = 4420,
699     BuiltInSubgroupLtMaskKHR = 4420,
700     BuiltInBaseVertex = 4424,
701     BuiltInBaseInstance = 4425,
702     BuiltInDrawIndex = 4426,
703     BuiltInPrimitiveShadingRateKHR = 4432,
704     BuiltInDeviceIndex = 4438,
705     BuiltInViewIndex = 4440,
706     BuiltInShadingRateKHR = 4444,
707     BuiltInBaryCoordNoPerspAMD = 4992,
708     BuiltInBaryCoordNoPerspCentroidAMD = 4993,
709     BuiltInBaryCoordNoPerspSampleAMD = 4994,
710     BuiltInBaryCoordSmoothAMD = 4995,
711     BuiltInBaryCoordSmoothCentroidAMD = 4996,
712     BuiltInBaryCoordSmoothSampleAMD = 4997,
713     BuiltInBaryCoordPullModelAMD = 4998,
714     BuiltInFragStencilRefEXT = 5014,
715     BuiltInCoalescedInputCountAMDX = 5021,
716     BuiltInShaderIndexAMDX = 5073,
717     BuiltInViewportMaskNV = 5253,
718     BuiltInSecondaryPositionNV = 5257,
719     BuiltInSecondaryViewportMaskNV = 5258,
720     BuiltInPositionPerViewNV = 5261,
721     BuiltInViewportMaskPerViewNV = 5262,
722     BuiltInFullyCoveredEXT = 5264,
723     BuiltInTaskCountNV = 5274,
724     BuiltInPrimitiveCountNV = 5275,
725     BuiltInPrimitiveIndicesNV = 5276,
726     BuiltInClipDistancePerViewNV = 5277,
727     BuiltInCullDistancePerViewNV = 5278,
728     BuiltInLayerPerViewNV = 5279,
729     BuiltInMeshViewCountNV = 5280,
730     BuiltInMeshViewIndicesNV = 5281,
731     BuiltInBaryCoordKHR = 5286,
732     BuiltInBaryCoordNV = 5286,
733     BuiltInBaryCoordNoPerspKHR = 5287,
734     BuiltInBaryCoordNoPerspNV = 5287,
735     BuiltInFragSizeEXT = 5292,
736     BuiltInFragmentSizeNV = 5292,
737     BuiltInFragInvocationCountEXT = 5293,
738     BuiltInInvocationsPerPixelNV = 5293,
739     BuiltInPrimitivePointIndicesEXT = 5294,
740     BuiltInPrimitiveLineIndicesEXT = 5295,
741     BuiltInPrimitiveTriangleIndicesEXT = 5296,
742     BuiltInCullPrimitiveEXT = 5299,
743     BuiltInLaunchIdKHR = 5319,
744     BuiltInLaunchIdNV = 5319,
745     BuiltInLaunchSizeKHR = 5320,
746     BuiltInLaunchSizeNV = 5320,
747     BuiltInWorldRayOriginKHR = 5321,
748     BuiltInWorldRayOriginNV = 5321,
749     BuiltInWorldRayDirectionKHR = 5322,
750     BuiltInWorldRayDirectionNV = 5322,
751     BuiltInObjectRayOriginKHR = 5323,
752     BuiltInObjectRayOriginNV = 5323,
753     BuiltInObjectRayDirectionKHR = 5324,
754     BuiltInObjectRayDirectionNV = 5324,
755     BuiltInRayTminKHR = 5325,
756     BuiltInRayTminNV = 5325,
757     BuiltInRayTmaxKHR = 5326,
758     BuiltInRayTmaxNV = 5326,
759     BuiltInInstanceCustomIndexKHR = 5327,
760     BuiltInInstanceCustomIndexNV = 5327,
761     BuiltInObjectToWorldKHR = 5330,
762     BuiltInObjectToWorldNV = 5330,
763     BuiltInWorldToObjectKHR = 5331,
764     BuiltInWorldToObjectNV = 5331,
765     BuiltInHitTNV = 5332,
766     BuiltInHitKindKHR = 5333,
767     BuiltInHitKindNV = 5333,
768     BuiltInCurrentRayTimeNV = 5334,
769     BuiltInHitTriangleVertexPositionsKHR = 5335,
770     BuiltInHitMicroTriangleVertexPositionsNV = 5337,
771     BuiltInHitMicroTriangleVertexBarycentricsNV = 5344,
772     BuiltInIncomingRayFlagsKHR = 5351,
773     BuiltInIncomingRayFlagsNV = 5351,
774     BuiltInRayGeometryIndexKHR = 5352,
775     BuiltInWarpsPerSMNV = 5374,
776     BuiltInSMCountNV = 5375,
777     BuiltInWarpIDNV = 5376,
778     BuiltInSMIDNV = 5377,
779     BuiltInHitKindFrontFacingMicroTriangleNV = 5405,
780     BuiltInHitKindBackFacingMicroTriangleNV = 5406,
781     BuiltInCullMaskKHR = 6021,
782     BuiltInMax = 0x7fffffff,
783 };
784 
785 enum SelectionControlShift {
786     SelectionControlFlattenShift = 0,
787     SelectionControlDontFlattenShift = 1,
788     SelectionControlMax = 0x7fffffff,
789 };
790 
791 enum SelectionControlMask {
792     SelectionControlMaskNone = 0,
793     SelectionControlFlattenMask = 0x00000001,
794     SelectionControlDontFlattenMask = 0x00000002,
795 };
796 
797 enum LoopControlShift {
798     LoopControlUnrollShift = 0,
799     LoopControlDontUnrollShift = 1,
800     LoopControlDependencyInfiniteShift = 2,
801     LoopControlDependencyLengthShift = 3,
802     LoopControlMinIterationsShift = 4,
803     LoopControlMaxIterationsShift = 5,
804     LoopControlIterationMultipleShift = 6,
805     LoopControlPeelCountShift = 7,
806     LoopControlPartialCountShift = 8,
807     LoopControlInitiationIntervalINTELShift = 16,
808     LoopControlMaxConcurrencyINTELShift = 17,
809     LoopControlDependencyArrayINTELShift = 18,
810     LoopControlPipelineEnableINTELShift = 19,
811     LoopControlLoopCoalesceINTELShift = 20,
812     LoopControlMaxInterleavingINTELShift = 21,
813     LoopControlSpeculatedIterationsINTELShift = 22,
814     LoopControlNoFusionINTELShift = 23,
815     LoopControlLoopCountINTELShift = 24,
816     LoopControlMaxReinvocationDelayINTELShift = 25,
817     LoopControlMax = 0x7fffffff,
818 };
819 
820 enum LoopControlMask {
821     LoopControlMaskNone = 0,
822     LoopControlUnrollMask = 0x00000001,
823     LoopControlDontUnrollMask = 0x00000002,
824     LoopControlDependencyInfiniteMask = 0x00000004,
825     LoopControlDependencyLengthMask = 0x00000008,
826     LoopControlMinIterationsMask = 0x00000010,
827     LoopControlMaxIterationsMask = 0x00000020,
828     LoopControlIterationMultipleMask = 0x00000040,
829     LoopControlPeelCountMask = 0x00000080,
830     LoopControlPartialCountMask = 0x00000100,
831     LoopControlInitiationIntervalINTELMask = 0x00010000,
832     LoopControlMaxConcurrencyINTELMask = 0x00020000,
833     LoopControlDependencyArrayINTELMask = 0x00040000,
834     LoopControlPipelineEnableINTELMask = 0x00080000,
835     LoopControlLoopCoalesceINTELMask = 0x00100000,
836     LoopControlMaxInterleavingINTELMask = 0x00200000,
837     LoopControlSpeculatedIterationsINTELMask = 0x00400000,
838     LoopControlNoFusionINTELMask = 0x00800000,
839     LoopControlLoopCountINTELMask = 0x01000000,
840     LoopControlMaxReinvocationDelayINTELMask = 0x02000000,
841 };
842 
843 enum FunctionControlShift {
844     FunctionControlInlineShift = 0,
845     FunctionControlDontInlineShift = 1,
846     FunctionControlPureShift = 2,
847     FunctionControlConstShift = 3,
848     FunctionControlOptNoneINTELShift = 16,
849     FunctionControlMax = 0x7fffffff,
850 };
851 
852 enum FunctionControlMask {
853     FunctionControlMaskNone = 0,
854     FunctionControlInlineMask = 0x00000001,
855     FunctionControlDontInlineMask = 0x00000002,
856     FunctionControlPureMask = 0x00000004,
857     FunctionControlConstMask = 0x00000008,
858     FunctionControlOptNoneINTELMask = 0x00010000,
859 };
860 
861 enum MemorySemanticsShift {
862     MemorySemanticsAcquireShift = 1,
863     MemorySemanticsReleaseShift = 2,
864     MemorySemanticsAcquireReleaseShift = 3,
865     MemorySemanticsSequentiallyConsistentShift = 4,
866     MemorySemanticsUniformMemoryShift = 6,
867     MemorySemanticsSubgroupMemoryShift = 7,
868     MemorySemanticsWorkgroupMemoryShift = 8,
869     MemorySemanticsCrossWorkgroupMemoryShift = 9,
870     MemorySemanticsAtomicCounterMemoryShift = 10,
871     MemorySemanticsImageMemoryShift = 11,
872     MemorySemanticsOutputMemoryShift = 12,
873     MemorySemanticsOutputMemoryKHRShift = 12,
874     MemorySemanticsMakeAvailableShift = 13,
875     MemorySemanticsMakeAvailableKHRShift = 13,
876     MemorySemanticsMakeVisibleShift = 14,
877     MemorySemanticsMakeVisibleKHRShift = 14,
878     MemorySemanticsVolatileShift = 15,
879     MemorySemanticsMax = 0x7fffffff,
880 };
881 
882 enum MemorySemanticsMask {
883     MemorySemanticsMaskNone = 0,
884     MemorySemanticsAcquireMask = 0x00000002,
885     MemorySemanticsReleaseMask = 0x00000004,
886     MemorySemanticsAcquireReleaseMask = 0x00000008,
887     MemorySemanticsSequentiallyConsistentMask = 0x00000010,
888     MemorySemanticsUniformMemoryMask = 0x00000040,
889     MemorySemanticsSubgroupMemoryMask = 0x00000080,
890     MemorySemanticsWorkgroupMemoryMask = 0x00000100,
891     MemorySemanticsCrossWorkgroupMemoryMask = 0x00000200,
892     MemorySemanticsAtomicCounterMemoryMask = 0x00000400,
893     MemorySemanticsImageMemoryMask = 0x00000800,
894     MemorySemanticsOutputMemoryMask = 0x00001000,
895     MemorySemanticsOutputMemoryKHRMask = 0x00001000,
896     MemorySemanticsMakeAvailableMask = 0x00002000,
897     MemorySemanticsMakeAvailableKHRMask = 0x00002000,
898     MemorySemanticsMakeVisibleMask = 0x00004000,
899     MemorySemanticsMakeVisibleKHRMask = 0x00004000,
900     MemorySemanticsVolatileMask = 0x00008000,
901 };
902 
903 enum MemoryAccessShift {
904     MemoryAccessVolatileShift = 0,
905     MemoryAccessAlignedShift = 1,
906     MemoryAccessNontemporalShift = 2,
907     MemoryAccessMakePointerAvailableShift = 3,
908     MemoryAccessMakePointerAvailableKHRShift = 3,
909     MemoryAccessMakePointerVisibleShift = 4,
910     MemoryAccessMakePointerVisibleKHRShift = 4,
911     MemoryAccessNonPrivatePointerShift = 5,
912     MemoryAccessNonPrivatePointerKHRShift = 5,
913     MemoryAccessAliasScopeINTELMaskShift = 16,
914     MemoryAccessNoAliasINTELMaskShift = 17,
915     MemoryAccessMax = 0x7fffffff,
916 };
917 
918 enum MemoryAccessMask {
919     MemoryAccessMaskNone = 0,
920     MemoryAccessVolatileMask = 0x00000001,
921     MemoryAccessAlignedMask = 0x00000002,
922     MemoryAccessNontemporalMask = 0x00000004,
923     MemoryAccessMakePointerAvailableMask = 0x00000008,
924     MemoryAccessMakePointerAvailableKHRMask = 0x00000008,
925     MemoryAccessMakePointerVisibleMask = 0x00000010,
926     MemoryAccessMakePointerVisibleKHRMask = 0x00000010,
927     MemoryAccessNonPrivatePointerMask = 0x00000020,
928     MemoryAccessNonPrivatePointerKHRMask = 0x00000020,
929     MemoryAccessAliasScopeINTELMaskMask = 0x00010000,
930     MemoryAccessNoAliasINTELMaskMask = 0x00020000,
931 };
932 
933 enum Scope {
934     ScopeCrossDevice = 0,
935     ScopeDevice = 1,
936     ScopeWorkgroup = 2,
937     ScopeSubgroup = 3,
938     ScopeInvocation = 4,
939     ScopeQueueFamily = 5,
940     ScopeQueueFamilyKHR = 5,
941     ScopeShaderCallKHR = 6,
942     ScopeMax = 0x7fffffff,
943 };
944 
945 enum GroupOperation {
946     GroupOperationReduce = 0,
947     GroupOperationInclusiveScan = 1,
948     GroupOperationExclusiveScan = 2,
949     GroupOperationClusteredReduce = 3,
950     GroupOperationPartitionedReduceNV = 6,
951     GroupOperationPartitionedInclusiveScanNV = 7,
952     GroupOperationPartitionedExclusiveScanNV = 8,
953     GroupOperationMax = 0x7fffffff,
954 };
955 
956 enum KernelEnqueueFlags {
957     KernelEnqueueFlagsNoWait = 0,
958     KernelEnqueueFlagsWaitKernel = 1,
959     KernelEnqueueFlagsWaitWorkGroup = 2,
960     KernelEnqueueFlagsMax = 0x7fffffff,
961 };
962 
963 enum KernelProfilingInfoShift {
964     KernelProfilingInfoCmdExecTimeShift = 0,
965     KernelProfilingInfoMax = 0x7fffffff,
966 };
967 
968 enum KernelProfilingInfoMask {
969     KernelProfilingInfoMaskNone = 0,
970     KernelProfilingInfoCmdExecTimeMask = 0x00000001,
971 };
972 
973 enum Capability {
974     CapabilityMatrix = 0,
975     CapabilityShader = 1,
976     CapabilityGeometry = 2,
977     CapabilityTessellation = 3,
978     CapabilityAddresses = 4,
979     CapabilityLinkage = 5,
980     CapabilityKernel = 6,
981     CapabilityVector16 = 7,
982     CapabilityFloat16Buffer = 8,
983     CapabilityFloat16 = 9,
984     CapabilityFloat64 = 10,
985     CapabilityInt64 = 11,
986     CapabilityInt64Atomics = 12,
987     CapabilityImageBasic = 13,
988     CapabilityImageReadWrite = 14,
989     CapabilityImageMipmap = 15,
990     CapabilityPipes = 17,
991     CapabilityGroups = 18,
992     CapabilityDeviceEnqueue = 19,
993     CapabilityLiteralSampler = 20,
994     CapabilityAtomicStorage = 21,
995     CapabilityInt16 = 22,
996     CapabilityTessellationPointSize = 23,
997     CapabilityGeometryPointSize = 24,
998     CapabilityImageGatherExtended = 25,
999     CapabilityStorageImageMultisample = 27,
1000     CapabilityUniformBufferArrayDynamicIndexing = 28,
1001     CapabilitySampledImageArrayDynamicIndexing = 29,
1002     CapabilityStorageBufferArrayDynamicIndexing = 30,
1003     CapabilityStorageImageArrayDynamicIndexing = 31,
1004     CapabilityClipDistance = 32,
1005     CapabilityCullDistance = 33,
1006     CapabilityImageCubeArray = 34,
1007     CapabilitySampleRateShading = 35,
1008     CapabilityImageRect = 36,
1009     CapabilitySampledRect = 37,
1010     CapabilityGenericPointer = 38,
1011     CapabilityInt8 = 39,
1012     CapabilityInputAttachment = 40,
1013     CapabilitySparseResidency = 41,
1014     CapabilityMinLod = 42,
1015     CapabilitySampled1D = 43,
1016     CapabilityImage1D = 44,
1017     CapabilitySampledCubeArray = 45,
1018     CapabilitySampledBuffer = 46,
1019     CapabilityImageBuffer = 47,
1020     CapabilityImageMSArray = 48,
1021     CapabilityStorageImageExtendedFormats = 49,
1022     CapabilityImageQuery = 50,
1023     CapabilityDerivativeControl = 51,
1024     CapabilityInterpolationFunction = 52,
1025     CapabilityTransformFeedback = 53,
1026     CapabilityGeometryStreams = 54,
1027     CapabilityStorageImageReadWithoutFormat = 55,
1028     CapabilityStorageImageWriteWithoutFormat = 56,
1029     CapabilityMultiViewport = 57,
1030     CapabilitySubgroupDispatch = 58,
1031     CapabilityNamedBarrier = 59,
1032     CapabilityPipeStorage = 60,
1033     CapabilityGroupNonUniform = 61,
1034     CapabilityGroupNonUniformVote = 62,
1035     CapabilityGroupNonUniformArithmetic = 63,
1036     CapabilityGroupNonUniformBallot = 64,
1037     CapabilityGroupNonUniformShuffle = 65,
1038     CapabilityGroupNonUniformShuffleRelative = 66,
1039     CapabilityGroupNonUniformClustered = 67,
1040     CapabilityGroupNonUniformQuad = 68,
1041     CapabilityShaderLayer = 69,
1042     CapabilityShaderViewportIndex = 70,
1043     CapabilityUniformDecoration = 71,
1044     CapabilityCoreBuiltinsARM = 4165,
1045     CapabilityTileImageColorReadAccessEXT = 4166,
1046     CapabilityTileImageDepthReadAccessEXT = 4167,
1047     CapabilityTileImageStencilReadAccessEXT = 4168,
1048     CapabilityCooperativeMatrixLayoutsARM = 4201,
1049     CapabilityFragmentShadingRateKHR = 4422,
1050     CapabilitySubgroupBallotKHR = 4423,
1051     CapabilityDrawParameters = 4427,
1052     CapabilityWorkgroupMemoryExplicitLayoutKHR = 4428,
1053     CapabilityWorkgroupMemoryExplicitLayout8BitAccessKHR = 4429,
1054     CapabilityWorkgroupMemoryExplicitLayout16BitAccessKHR = 4430,
1055     CapabilitySubgroupVoteKHR = 4431,
1056     CapabilityStorageBuffer16BitAccess = 4433,
1057     CapabilityStorageUniformBufferBlock16 = 4433,
1058     CapabilityStorageUniform16 = 4434,
1059     CapabilityUniformAndStorageBuffer16BitAccess = 4434,
1060     CapabilityStoragePushConstant16 = 4435,
1061     CapabilityStorageInputOutput16 = 4436,
1062     CapabilityDeviceGroup = 4437,
1063     CapabilityMultiView = 4439,
1064     CapabilityVariablePointersStorageBuffer = 4441,
1065     CapabilityVariablePointers = 4442,
1066     CapabilityAtomicStorageOps = 4445,
1067     CapabilitySampleMaskPostDepthCoverage = 4447,
1068     CapabilityStorageBuffer8BitAccess = 4448,
1069     CapabilityUniformAndStorageBuffer8BitAccess = 4449,
1070     CapabilityStoragePushConstant8 = 4450,
1071     CapabilityDenormPreserve = 4464,
1072     CapabilityDenormFlushToZero = 4465,
1073     CapabilitySignedZeroInfNanPreserve = 4466,
1074     CapabilityRoundingModeRTE = 4467,
1075     CapabilityRoundingModeRTZ = 4468,
1076     CapabilityRayQueryProvisionalKHR = 4471,
1077     CapabilityRayQueryKHR = 4472,
1078     CapabilityRayTraversalPrimitiveCullingKHR = 4478,
1079     CapabilityRayTracingKHR = 4479,
1080     CapabilityTextureSampleWeightedQCOM = 4484,
1081     CapabilityTextureBoxFilterQCOM = 4485,
1082     CapabilityTextureBlockMatchQCOM = 4486,
1083     CapabilityTextureBlockMatch2QCOM = 4498,
1084     CapabilityFloat16ImageAMD = 5008,
1085     CapabilityImageGatherBiasLodAMD = 5009,
1086     CapabilityFragmentMaskAMD = 5010,
1087     CapabilityStencilExportEXT = 5013,
1088     CapabilityImageReadWriteLodAMD = 5015,
1089     CapabilityInt64ImageEXT = 5016,
1090     CapabilityShaderClockKHR = 5055,
1091     CapabilityShaderEnqueueAMDX = 5067,
1092     CapabilityQuadControlKHR = 5087,
1093     CapabilitySampleMaskOverrideCoverageNV = 5249,
1094     CapabilityGeometryShaderPassthroughNV = 5251,
1095     CapabilityShaderViewportIndexLayerEXT = 5254,
1096     CapabilityShaderViewportIndexLayerNV = 5254,
1097     CapabilityShaderViewportMaskNV = 5255,
1098     CapabilityShaderStereoViewNV = 5259,
1099     CapabilityPerViewAttributesNV = 5260,
1100     CapabilityFragmentFullyCoveredEXT = 5265,
1101     CapabilityMeshShadingNV = 5266,
1102     CapabilityImageFootprintNV = 5282,
1103     CapabilityMeshShadingEXT = 5283,
1104     CapabilityFragmentBarycentricKHR = 5284,
1105     CapabilityFragmentBarycentricNV = 5284,
1106     CapabilityComputeDerivativeGroupQuadsNV = 5288,
1107     CapabilityFragmentDensityEXT = 5291,
1108     CapabilityShadingRateNV = 5291,
1109     CapabilityGroupNonUniformPartitionedNV = 5297,
1110     CapabilityShaderNonUniform = 5301,
1111     CapabilityShaderNonUniformEXT = 5301,
1112     CapabilityRuntimeDescriptorArray = 5302,
1113     CapabilityRuntimeDescriptorArrayEXT = 5302,
1114     CapabilityInputAttachmentArrayDynamicIndexing = 5303,
1115     CapabilityInputAttachmentArrayDynamicIndexingEXT = 5303,
1116     CapabilityUniformTexelBufferArrayDynamicIndexing = 5304,
1117     CapabilityUniformTexelBufferArrayDynamicIndexingEXT = 5304,
1118     CapabilityStorageTexelBufferArrayDynamicIndexing = 5305,
1119     CapabilityStorageTexelBufferArrayDynamicIndexingEXT = 5305,
1120     CapabilityUniformBufferArrayNonUniformIndexing = 5306,
1121     CapabilityUniformBufferArrayNonUniformIndexingEXT = 5306,
1122     CapabilitySampledImageArrayNonUniformIndexing = 5307,
1123     CapabilitySampledImageArrayNonUniformIndexingEXT = 5307,
1124     CapabilityStorageBufferArrayNonUniformIndexing = 5308,
1125     CapabilityStorageBufferArrayNonUniformIndexingEXT = 5308,
1126     CapabilityStorageImageArrayNonUniformIndexing = 5309,
1127     CapabilityStorageImageArrayNonUniformIndexingEXT = 5309,
1128     CapabilityInputAttachmentArrayNonUniformIndexing = 5310,
1129     CapabilityInputAttachmentArrayNonUniformIndexingEXT = 5310,
1130     CapabilityUniformTexelBufferArrayNonUniformIndexing = 5311,
1131     CapabilityUniformTexelBufferArrayNonUniformIndexingEXT = 5311,
1132     CapabilityStorageTexelBufferArrayNonUniformIndexing = 5312,
1133     CapabilityStorageTexelBufferArrayNonUniformIndexingEXT = 5312,
1134     CapabilityRayTracingPositionFetchKHR = 5336,
1135     CapabilityRayTracingNV = 5340,
1136     CapabilityRayTracingMotionBlurNV = 5341,
1137     CapabilityVulkanMemoryModel = 5345,
1138     CapabilityVulkanMemoryModelKHR = 5345,
1139     CapabilityVulkanMemoryModelDeviceScope = 5346,
1140     CapabilityVulkanMemoryModelDeviceScopeKHR = 5346,
1141     CapabilityPhysicalStorageBufferAddresses = 5347,
1142     CapabilityPhysicalStorageBufferAddressesEXT = 5347,
1143     CapabilityComputeDerivativeGroupLinearNV = 5350,
1144     CapabilityRayTracingProvisionalKHR = 5353,
1145     CapabilityCooperativeMatrixNV = 5357,
1146     CapabilityFragmentShaderSampleInterlockEXT = 5363,
1147     CapabilityFragmentShaderShadingRateInterlockEXT = 5372,
1148     CapabilityShaderSMBuiltinsNV = 5373,
1149     CapabilityFragmentShaderPixelInterlockEXT = 5378,
1150     CapabilityDemoteToHelperInvocation = 5379,
1151     CapabilityDemoteToHelperInvocationEXT = 5379,
1152     CapabilityDisplacementMicromapNV = 5380,
1153     CapabilityRayTracingOpacityMicromapEXT = 5381,
1154     CapabilityShaderInvocationReorderNV = 5383,
1155     CapabilityBindlessTextureNV = 5390,
1156     CapabilityRayQueryPositionFetchKHR = 5391,
1157     CapabilityAtomicFloat16VectorNV = 5404,
1158     CapabilityRayTracingDisplacementMicromapNV = 5409,
1159     CapabilityRawAccessChainsNV = 5414,
1160     CapabilitySubgroupShuffleINTEL = 5568,
1161     CapabilitySubgroupBufferBlockIOINTEL = 5569,
1162     CapabilitySubgroupImageBlockIOINTEL = 5570,
1163     CapabilitySubgroupImageMediaBlockIOINTEL = 5579,
1164     CapabilityRoundToInfinityINTEL = 5582,
1165     CapabilityFloatingPointModeINTEL = 5583,
1166     CapabilityIntegerFunctions2INTEL = 5584,
1167     CapabilityFunctionPointersINTEL = 5603,
1168     CapabilityIndirectReferencesINTEL = 5604,
1169     CapabilityAsmINTEL = 5606,
1170     CapabilityAtomicFloat32MinMaxEXT = 5612,
1171     CapabilityAtomicFloat64MinMaxEXT = 5613,
1172     CapabilityAtomicFloat16MinMaxEXT = 5616,
1173     CapabilityVectorComputeINTEL = 5617,
1174     CapabilityVectorAnyINTEL = 5619,
1175     CapabilityExpectAssumeKHR = 5629,
1176     CapabilitySubgroupAvcMotionEstimationINTEL = 5696,
1177     CapabilitySubgroupAvcMotionEstimationIntraINTEL = 5697,
1178     CapabilitySubgroupAvcMotionEstimationChromaINTEL = 5698,
1179     CapabilityVariableLengthArrayINTEL = 5817,
1180     CapabilityFunctionFloatControlINTEL = 5821,
1181     CapabilityFPGAMemoryAttributesINTEL = 5824,
1182     CapabilityFPFastMathModeINTEL = 5837,
1183     CapabilityArbitraryPrecisionIntegersINTEL = 5844,
1184     CapabilityArbitraryPrecisionFloatingPointINTEL = 5845,
1185     CapabilityUnstructuredLoopControlsINTEL = 5886,
1186     CapabilityFPGALoopControlsINTEL = 5888,
1187     CapabilityKernelAttributesINTEL = 5892,
1188     CapabilityFPGAKernelAttributesINTEL = 5897,
1189     CapabilityFPGAMemoryAccessesINTEL = 5898,
1190     CapabilityFPGAClusterAttributesINTEL = 5904,
1191     CapabilityLoopFuseINTEL = 5906,
1192     CapabilityFPGADSPControlINTEL = 5908,
1193     CapabilityMemoryAccessAliasingINTEL = 5910,
1194     CapabilityFPGAInvocationPipeliningAttributesINTEL = 5916,
1195     CapabilityFPGABufferLocationINTEL = 5920,
1196     CapabilityArbitraryPrecisionFixedPointINTEL = 5922,
1197     CapabilityUSMStorageClassesINTEL = 5935,
1198     CapabilityRuntimeAlignedAttributeINTEL = 5939,
1199     CapabilityIOPipesINTEL = 5943,
1200     CapabilityBlockingPipesINTEL = 5945,
1201     CapabilityFPGARegINTEL = 5948,
1202     CapabilityDotProductInputAll = 6016,
1203     CapabilityDotProductInputAllKHR = 6016,
1204     CapabilityDotProductInput4x8Bit = 6017,
1205     CapabilityDotProductInput4x8BitKHR = 6017,
1206     CapabilityDotProductInput4x8BitPacked = 6018,
1207     CapabilityDotProductInput4x8BitPackedKHR = 6018,
1208     CapabilityDotProduct = 6019,
1209     CapabilityDotProductKHR = 6019,
1210     CapabilityRayCullMaskKHR = 6020,
1211     CapabilityCooperativeMatrixKHR = 6022,
1212     CapabilityReplicatedCompositesEXT = 6024,
1213     CapabilityBitInstructions = 6025,
1214     CapabilityGroupNonUniformRotateKHR = 6026,
1215     CapabilityFloatControls2 = 6029,
1216     CapabilityAtomicFloat32AddEXT = 6033,
1217     CapabilityAtomicFloat64AddEXT = 6034,
1218     CapabilityLongCompositesINTEL = 6089,
1219     CapabilityOptNoneINTEL = 6094,
1220     CapabilityAtomicFloat16AddEXT = 6095,
1221     CapabilityDebugInfoModuleINTEL = 6114,
1222     CapabilityBFloat16ConversionINTEL = 6115,
1223     CapabilitySplitBarrierINTEL = 6141,
1224     CapabilityFPGAClusterAttributesV2INTEL = 6150,
1225     CapabilityFPGAKernelAttributesv2INTEL = 6161,
1226     CapabilityFPMaxErrorINTEL = 6169,
1227     CapabilityFPGALatencyControlINTEL = 6171,
1228     CapabilityFPGAArgumentInterfacesINTEL = 6174,
1229     CapabilityGlobalVariableHostAccessINTEL = 6187,
1230     CapabilityGlobalVariableFPGADecorationsINTEL = 6189,
1231     CapabilityGroupUniformArithmeticKHR = 6400,
1232     CapabilityMaskedGatherScatterINTEL = 6427,
1233     CapabilityCacheControlsINTEL = 6441,
1234     CapabilityRegisterLimitsINTEL = 6460,
1235     CapabilityMax = 0x7fffffff,
1236 };
1237 
1238 enum RayFlagsShift {
1239     RayFlagsOpaqueKHRShift = 0,
1240     RayFlagsNoOpaqueKHRShift = 1,
1241     RayFlagsTerminateOnFirstHitKHRShift = 2,
1242     RayFlagsSkipClosestHitShaderKHRShift = 3,
1243     RayFlagsCullBackFacingTrianglesKHRShift = 4,
1244     RayFlagsCullFrontFacingTrianglesKHRShift = 5,
1245     RayFlagsCullOpaqueKHRShift = 6,
1246     RayFlagsCullNoOpaqueKHRShift = 7,
1247     RayFlagsSkipTrianglesKHRShift = 8,
1248     RayFlagsSkipAABBsKHRShift = 9,
1249     RayFlagsForceOpacityMicromap2StateEXTShift = 10,
1250     RayFlagsMax = 0x7fffffff,
1251 };
1252 
1253 enum RayFlagsMask {
1254     RayFlagsMaskNone = 0,
1255     RayFlagsOpaqueKHRMask = 0x00000001,
1256     RayFlagsNoOpaqueKHRMask = 0x00000002,
1257     RayFlagsTerminateOnFirstHitKHRMask = 0x00000004,
1258     RayFlagsSkipClosestHitShaderKHRMask = 0x00000008,
1259     RayFlagsCullBackFacingTrianglesKHRMask = 0x00000010,
1260     RayFlagsCullFrontFacingTrianglesKHRMask = 0x00000020,
1261     RayFlagsCullOpaqueKHRMask = 0x00000040,
1262     RayFlagsCullNoOpaqueKHRMask = 0x00000080,
1263     RayFlagsSkipTrianglesKHRMask = 0x00000100,
1264     RayFlagsSkipAABBsKHRMask = 0x00000200,
1265     RayFlagsForceOpacityMicromap2StateEXTMask = 0x00000400,
1266 };
1267 
1268 enum RayQueryIntersection {
1269     RayQueryIntersectionRayQueryCandidateIntersectionKHR = 0,
1270     RayQueryIntersectionRayQueryCommittedIntersectionKHR = 1,
1271     RayQueryIntersectionMax = 0x7fffffff,
1272 };
1273 
1274 enum RayQueryCommittedIntersectionType {
1275     RayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionNoneKHR = 0,
1276     RayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionTriangleKHR = 1,
1277     RayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionGeneratedKHR = 2,
1278     RayQueryCommittedIntersectionTypeMax = 0x7fffffff,
1279 };
1280 
1281 enum RayQueryCandidateIntersectionType {
1282     RayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionTriangleKHR = 0,
1283     RayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionAABBKHR = 1,
1284     RayQueryCandidateIntersectionTypeMax = 0x7fffffff,
1285 };
1286 
1287 enum FragmentShadingRateShift {
1288     FragmentShadingRateVertical2PixelsShift = 0,
1289     FragmentShadingRateVertical4PixelsShift = 1,
1290     FragmentShadingRateHorizontal2PixelsShift = 2,
1291     FragmentShadingRateHorizontal4PixelsShift = 3,
1292     FragmentShadingRateMax = 0x7fffffff,
1293 };
1294 
1295 enum FragmentShadingRateMask {
1296     FragmentShadingRateMaskNone = 0,
1297     FragmentShadingRateVertical2PixelsMask = 0x00000001,
1298     FragmentShadingRateVertical4PixelsMask = 0x00000002,
1299     FragmentShadingRateHorizontal2PixelsMask = 0x00000004,
1300     FragmentShadingRateHorizontal4PixelsMask = 0x00000008,
1301 };
1302 
1303 enum FPDenormMode {
1304     FPDenormModePreserve = 0,
1305     FPDenormModeFlushToZero = 1,
1306     FPDenormModeMax = 0x7fffffff,
1307 };
1308 
1309 enum FPOperationMode {
1310     FPOperationModeIEEE = 0,
1311     FPOperationModeALT = 1,
1312     FPOperationModeMax = 0x7fffffff,
1313 };
1314 
1315 enum QuantizationModes {
1316     QuantizationModesTRN = 0,
1317     QuantizationModesTRN_ZERO = 1,
1318     QuantizationModesRND = 2,
1319     QuantizationModesRND_ZERO = 3,
1320     QuantizationModesRND_INF = 4,
1321     QuantizationModesRND_MIN_INF = 5,
1322     QuantizationModesRND_CONV = 6,
1323     QuantizationModesRND_CONV_ODD = 7,
1324     QuantizationModesMax = 0x7fffffff,
1325 };
1326 
1327 enum OverflowModes {
1328     OverflowModesWRAP = 0,
1329     OverflowModesSAT = 1,
1330     OverflowModesSAT_ZERO = 2,
1331     OverflowModesSAT_SYM = 3,
1332     OverflowModesMax = 0x7fffffff,
1333 };
1334 
1335 enum PackedVectorFormat {
1336     PackedVectorFormatPackedVectorFormat4x8Bit = 0,
1337     PackedVectorFormatPackedVectorFormat4x8BitKHR = 0,
1338     PackedVectorFormatMax = 0x7fffffff,
1339 };
1340 
1341 enum CooperativeMatrixOperandsShift {
1342     CooperativeMatrixOperandsMatrixASignedComponentsKHRShift = 0,
1343     CooperativeMatrixOperandsMatrixBSignedComponentsKHRShift = 1,
1344     CooperativeMatrixOperandsMatrixCSignedComponentsKHRShift = 2,
1345     CooperativeMatrixOperandsMatrixResultSignedComponentsKHRShift = 3,
1346     CooperativeMatrixOperandsSaturatingAccumulationKHRShift = 4,
1347     CooperativeMatrixOperandsMax = 0x7fffffff,
1348 };
1349 
1350 enum CooperativeMatrixOperandsMask {
1351     CooperativeMatrixOperandsMaskNone = 0,
1352     CooperativeMatrixOperandsMatrixASignedComponentsKHRMask = 0x00000001,
1353     CooperativeMatrixOperandsMatrixBSignedComponentsKHRMask = 0x00000002,
1354     CooperativeMatrixOperandsMatrixCSignedComponentsKHRMask = 0x00000004,
1355     CooperativeMatrixOperandsMatrixResultSignedComponentsKHRMask = 0x00000008,
1356     CooperativeMatrixOperandsSaturatingAccumulationKHRMask = 0x00000010,
1357 };
1358 
1359 enum CooperativeMatrixLayout {
1360     CooperativeMatrixLayoutRowMajorKHR = 0,
1361     CooperativeMatrixLayoutColumnMajorKHR = 1,
1362     CooperativeMatrixLayoutRowBlockedInterleavedARM = 4202,
1363     CooperativeMatrixLayoutColumnBlockedInterleavedARM = 4203,
1364     CooperativeMatrixLayoutMax = 0x7fffffff,
1365 };
1366 
1367 enum CooperativeMatrixUse {
1368     CooperativeMatrixUseMatrixAKHR = 0,
1369     CooperativeMatrixUseMatrixBKHR = 1,
1370     CooperativeMatrixUseMatrixAccumulatorKHR = 2,
1371     CooperativeMatrixUseMax = 0x7fffffff,
1372 };
1373 
1374 enum InitializationModeQualifier {
1375     InitializationModeQualifierInitOnDeviceReprogramINTEL = 0,
1376     InitializationModeQualifierInitOnDeviceResetINTEL = 1,
1377     InitializationModeQualifierMax = 0x7fffffff,
1378 };
1379 
1380 enum HostAccessQualifier {
1381     HostAccessQualifierNoneINTEL = 0,
1382     HostAccessQualifierReadINTEL = 1,
1383     HostAccessQualifierWriteINTEL = 2,
1384     HostAccessQualifierReadWriteINTEL = 3,
1385     HostAccessQualifierMax = 0x7fffffff,
1386 };
1387 
1388 enum LoadCacheControl {
1389     LoadCacheControlUncachedINTEL = 0,
1390     LoadCacheControlCachedINTEL = 1,
1391     LoadCacheControlStreamingINTEL = 2,
1392     LoadCacheControlInvalidateAfterReadINTEL = 3,
1393     LoadCacheControlConstCachedINTEL = 4,
1394     LoadCacheControlMax = 0x7fffffff,
1395 };
1396 
1397 enum StoreCacheControl {
1398     StoreCacheControlUncachedINTEL = 0,
1399     StoreCacheControlWriteThroughINTEL = 1,
1400     StoreCacheControlWriteBackINTEL = 2,
1401     StoreCacheControlStreamingINTEL = 3,
1402     StoreCacheControlMax = 0x7fffffff,
1403 };
1404 
1405 enum NamedMaximumNumberOfRegisters {
1406     NamedMaximumNumberOfRegistersAutoINTEL = 0,
1407     NamedMaximumNumberOfRegistersMax = 0x7fffffff,
1408 };
1409 
1410 enum RawAccessChainOperandsShift {
1411     RawAccessChainOperandsRobustnessPerComponentNVShift = 0,
1412     RawAccessChainOperandsRobustnessPerElementNVShift = 1,
1413     RawAccessChainOperandsMax = 0x7fffffff,
1414 };
1415 
1416 enum RawAccessChainOperandsMask {
1417     RawAccessChainOperandsMaskNone = 0,
1418     RawAccessChainOperandsRobustnessPerComponentNVMask = 0x00000001,
1419     RawAccessChainOperandsRobustnessPerElementNVMask = 0x00000002,
1420 };
1421 
1422 enum Op {
1423     OpNop = 0,
1424     OpUndef = 1,
1425     OpSourceContinued = 2,
1426     OpSource = 3,
1427     OpSourceExtension = 4,
1428     OpName = 5,
1429     OpMemberName = 6,
1430     OpString = 7,
1431     OpLine = 8,
1432     OpExtension = 10,
1433     OpExtInstImport = 11,
1434     OpExtInst = 12,
1435     OpMemoryModel = 14,
1436     OpEntryPoint = 15,
1437     OpExecutionMode = 16,
1438     OpCapability = 17,
1439     OpTypeVoid = 19,
1440     OpTypeBool = 20,
1441     OpTypeInt = 21,
1442     OpTypeFloat = 22,
1443     OpTypeVector = 23,
1444     OpTypeMatrix = 24,
1445     OpTypeImage = 25,
1446     OpTypeSampler = 26,
1447     OpTypeSampledImage = 27,
1448     OpTypeArray = 28,
1449     OpTypeRuntimeArray = 29,
1450     OpTypeStruct = 30,
1451     OpTypeOpaque = 31,
1452     OpTypePointer = 32,
1453     OpTypeFunction = 33,
1454     OpTypeEvent = 34,
1455     OpTypeDeviceEvent = 35,
1456     OpTypeReserveId = 36,
1457     OpTypeQueue = 37,
1458     OpTypePipe = 38,
1459     OpTypeForwardPointer = 39,
1460     OpConstantTrue = 41,
1461     OpConstantFalse = 42,
1462     OpConstant = 43,
1463     OpConstantComposite = 44,
1464     OpConstantSampler = 45,
1465     OpConstantNull = 46,
1466     OpSpecConstantTrue = 48,
1467     OpSpecConstantFalse = 49,
1468     OpSpecConstant = 50,
1469     OpSpecConstantComposite = 51,
1470     OpSpecConstantOp = 52,
1471     OpFunction = 54,
1472     OpFunctionParameter = 55,
1473     OpFunctionEnd = 56,
1474     OpFunctionCall = 57,
1475     OpVariable = 59,
1476     OpImageTexelPointer = 60,
1477     OpLoad = 61,
1478     OpStore = 62,
1479     OpCopyMemory = 63,
1480     OpCopyMemorySized = 64,
1481     OpAccessChain = 65,
1482     OpInBoundsAccessChain = 66,
1483     OpPtrAccessChain = 67,
1484     OpArrayLength = 68,
1485     OpGenericPtrMemSemantics = 69,
1486     OpInBoundsPtrAccessChain = 70,
1487     OpDecorate = 71,
1488     OpMemberDecorate = 72,
1489     OpDecorationGroup = 73,
1490     OpGroupDecorate = 74,
1491     OpGroupMemberDecorate = 75,
1492     OpVectorExtractDynamic = 77,
1493     OpVectorInsertDynamic = 78,
1494     OpVectorShuffle = 79,
1495     OpCompositeConstruct = 80,
1496     OpCompositeExtract = 81,
1497     OpCompositeInsert = 82,
1498     OpCopyObject = 83,
1499     OpTranspose = 84,
1500     OpSampledImage = 86,
1501     OpImageSampleImplicitLod = 87,
1502     OpImageSampleExplicitLod = 88,
1503     OpImageSampleDrefImplicitLod = 89,
1504     OpImageSampleDrefExplicitLod = 90,
1505     OpImageSampleProjImplicitLod = 91,
1506     OpImageSampleProjExplicitLod = 92,
1507     OpImageSampleProjDrefImplicitLod = 93,
1508     OpImageSampleProjDrefExplicitLod = 94,
1509     OpImageFetch = 95,
1510     OpImageGather = 96,
1511     OpImageDrefGather = 97,
1512     OpImageRead = 98,
1513     OpImageWrite = 99,
1514     OpImage = 100,
1515     OpImageQueryFormat = 101,
1516     OpImageQueryOrder = 102,
1517     OpImageQuerySizeLod = 103,
1518     OpImageQuerySize = 104,
1519     OpImageQueryLod = 105,
1520     OpImageQueryLevels = 106,
1521     OpImageQuerySamples = 107,
1522     OpConvertFToU = 109,
1523     OpConvertFToS = 110,
1524     OpConvertSToF = 111,
1525     OpConvertUToF = 112,
1526     OpUConvert = 113,
1527     OpSConvert = 114,
1528     OpFConvert = 115,
1529     OpQuantizeToF16 = 116,
1530     OpConvertPtrToU = 117,
1531     OpSatConvertSToU = 118,
1532     OpSatConvertUToS = 119,
1533     OpConvertUToPtr = 120,
1534     OpPtrCastToGeneric = 121,
1535     OpGenericCastToPtr = 122,
1536     OpGenericCastToPtrExplicit = 123,
1537     OpBitcast = 124,
1538     OpSNegate = 126,
1539     OpFNegate = 127,
1540     OpIAdd = 128,
1541     OpFAdd = 129,
1542     OpISub = 130,
1543     OpFSub = 131,
1544     OpIMul = 132,
1545     OpFMul = 133,
1546     OpUDiv = 134,
1547     OpSDiv = 135,
1548     OpFDiv = 136,
1549     OpUMod = 137,
1550     OpSRem = 138,
1551     OpSMod = 139,
1552     OpFRem = 140,
1553     OpFMod = 141,
1554     OpVectorTimesScalar = 142,
1555     OpMatrixTimesScalar = 143,
1556     OpVectorTimesMatrix = 144,
1557     OpMatrixTimesVector = 145,
1558     OpMatrixTimesMatrix = 146,
1559     OpOuterProduct = 147,
1560     OpDot = 148,
1561     OpIAddCarry = 149,
1562     OpISubBorrow = 150,
1563     OpUMulExtended = 151,
1564     OpSMulExtended = 152,
1565     OpAny = 154,
1566     OpAll = 155,
1567     OpIsNan = 156,
1568     OpIsInf = 157,
1569     OpIsFinite = 158,
1570     OpIsNormal = 159,
1571     OpSignBitSet = 160,
1572     OpLessOrGreater = 161,
1573     OpOrdered = 162,
1574     OpUnordered = 163,
1575     OpLogicalEqual = 164,
1576     OpLogicalNotEqual = 165,
1577     OpLogicalOr = 166,
1578     OpLogicalAnd = 167,
1579     OpLogicalNot = 168,
1580     OpSelect = 169,
1581     OpIEqual = 170,
1582     OpINotEqual = 171,
1583     OpUGreaterThan = 172,
1584     OpSGreaterThan = 173,
1585     OpUGreaterThanEqual = 174,
1586     OpSGreaterThanEqual = 175,
1587     OpULessThan = 176,
1588     OpSLessThan = 177,
1589     OpULessThanEqual = 178,
1590     OpSLessThanEqual = 179,
1591     OpFOrdEqual = 180,
1592     OpFUnordEqual = 181,
1593     OpFOrdNotEqual = 182,
1594     OpFUnordNotEqual = 183,
1595     OpFOrdLessThan = 184,
1596     OpFUnordLessThan = 185,
1597     OpFOrdGreaterThan = 186,
1598     OpFUnordGreaterThan = 187,
1599     OpFOrdLessThanEqual = 188,
1600     OpFUnordLessThanEqual = 189,
1601     OpFOrdGreaterThanEqual = 190,
1602     OpFUnordGreaterThanEqual = 191,
1603     OpShiftRightLogical = 194,
1604     OpShiftRightArithmetic = 195,
1605     OpShiftLeftLogical = 196,
1606     OpBitwiseOr = 197,
1607     OpBitwiseXor = 198,
1608     OpBitwiseAnd = 199,
1609     OpNot = 200,
1610     OpBitFieldInsert = 201,
1611     OpBitFieldSExtract = 202,
1612     OpBitFieldUExtract = 203,
1613     OpBitReverse = 204,
1614     OpBitCount = 205,
1615     OpDPdx = 207,
1616     OpDPdy = 208,
1617     OpFwidth = 209,
1618     OpDPdxFine = 210,
1619     OpDPdyFine = 211,
1620     OpFwidthFine = 212,
1621     OpDPdxCoarse = 213,
1622     OpDPdyCoarse = 214,
1623     OpFwidthCoarse = 215,
1624     OpEmitVertex = 218,
1625     OpEndPrimitive = 219,
1626     OpEmitStreamVertex = 220,
1627     OpEndStreamPrimitive = 221,
1628     OpControlBarrier = 224,
1629     OpMemoryBarrier = 225,
1630     OpAtomicLoad = 227,
1631     OpAtomicStore = 228,
1632     OpAtomicExchange = 229,
1633     OpAtomicCompareExchange = 230,
1634     OpAtomicCompareExchangeWeak = 231,
1635     OpAtomicIIncrement = 232,
1636     OpAtomicIDecrement = 233,
1637     OpAtomicIAdd = 234,
1638     OpAtomicISub = 235,
1639     OpAtomicSMin = 236,
1640     OpAtomicUMin = 237,
1641     OpAtomicSMax = 238,
1642     OpAtomicUMax = 239,
1643     OpAtomicAnd = 240,
1644     OpAtomicOr = 241,
1645     OpAtomicXor = 242,
1646     OpPhi = 245,
1647     OpLoopMerge = 246,
1648     OpSelectionMerge = 247,
1649     OpLabel = 248,
1650     OpBranch = 249,
1651     OpBranchConditional = 250,
1652     OpSwitch = 251,
1653     OpKill = 252,
1654     OpReturn = 253,
1655     OpReturnValue = 254,
1656     OpUnreachable = 255,
1657     OpLifetimeStart = 256,
1658     OpLifetimeStop = 257,
1659     OpGroupAsyncCopy = 259,
1660     OpGroupWaitEvents = 260,
1661     OpGroupAll = 261,
1662     OpGroupAny = 262,
1663     OpGroupBroadcast = 263,
1664     OpGroupIAdd = 264,
1665     OpGroupFAdd = 265,
1666     OpGroupFMin = 266,
1667     OpGroupUMin = 267,
1668     OpGroupSMin = 268,
1669     OpGroupFMax = 269,
1670     OpGroupUMax = 270,
1671     OpGroupSMax = 271,
1672     OpReadPipe = 274,
1673     OpWritePipe = 275,
1674     OpReservedReadPipe = 276,
1675     OpReservedWritePipe = 277,
1676     OpReserveReadPipePackets = 278,
1677     OpReserveWritePipePackets = 279,
1678     OpCommitReadPipe = 280,
1679     OpCommitWritePipe = 281,
1680     OpIsValidReserveId = 282,
1681     OpGetNumPipePackets = 283,
1682     OpGetMaxPipePackets = 284,
1683     OpGroupReserveReadPipePackets = 285,
1684     OpGroupReserveWritePipePackets = 286,
1685     OpGroupCommitReadPipe = 287,
1686     OpGroupCommitWritePipe = 288,
1687     OpEnqueueMarker = 291,
1688     OpEnqueueKernel = 292,
1689     OpGetKernelNDrangeSubGroupCount = 293,
1690     OpGetKernelNDrangeMaxSubGroupSize = 294,
1691     OpGetKernelWorkGroupSize = 295,
1692     OpGetKernelPreferredWorkGroupSizeMultiple = 296,
1693     OpRetainEvent = 297,
1694     OpReleaseEvent = 298,
1695     OpCreateUserEvent = 299,
1696     OpIsValidEvent = 300,
1697     OpSetUserEventStatus = 301,
1698     OpCaptureEventProfilingInfo = 302,
1699     OpGetDefaultQueue = 303,
1700     OpBuildNDRange = 304,
1701     OpImageSparseSampleImplicitLod = 305,
1702     OpImageSparseSampleExplicitLod = 306,
1703     OpImageSparseSampleDrefImplicitLod = 307,
1704     OpImageSparseSampleDrefExplicitLod = 308,
1705     OpImageSparseSampleProjImplicitLod = 309,
1706     OpImageSparseSampleProjExplicitLod = 310,
1707     OpImageSparseSampleProjDrefImplicitLod = 311,
1708     OpImageSparseSampleProjDrefExplicitLod = 312,
1709     OpImageSparseFetch = 313,
1710     OpImageSparseGather = 314,
1711     OpImageSparseDrefGather = 315,
1712     OpImageSparseTexelsResident = 316,
1713     OpNoLine = 317,
1714     OpAtomicFlagTestAndSet = 318,
1715     OpAtomicFlagClear = 319,
1716     OpImageSparseRead = 320,
1717     OpSizeOf = 321,
1718     OpTypePipeStorage = 322,
1719     OpConstantPipeStorage = 323,
1720     OpCreatePipeFromPipeStorage = 324,
1721     OpGetKernelLocalSizeForSubgroupCount = 325,
1722     OpGetKernelMaxNumSubgroups = 326,
1723     OpTypeNamedBarrier = 327,
1724     OpNamedBarrierInitialize = 328,
1725     OpMemoryNamedBarrier = 329,
1726     OpModuleProcessed = 330,
1727     OpExecutionModeId = 331,
1728     OpDecorateId = 332,
1729     OpGroupNonUniformElect = 333,
1730     OpGroupNonUniformAll = 334,
1731     OpGroupNonUniformAny = 335,
1732     OpGroupNonUniformAllEqual = 336,
1733     OpGroupNonUniformBroadcast = 337,
1734     OpGroupNonUniformBroadcastFirst = 338,
1735     OpGroupNonUniformBallot = 339,
1736     OpGroupNonUniformInverseBallot = 340,
1737     OpGroupNonUniformBallotBitExtract = 341,
1738     OpGroupNonUniformBallotBitCount = 342,
1739     OpGroupNonUniformBallotFindLSB = 343,
1740     OpGroupNonUniformBallotFindMSB = 344,
1741     OpGroupNonUniformShuffle = 345,
1742     OpGroupNonUniformShuffleXor = 346,
1743     OpGroupNonUniformShuffleUp = 347,
1744     OpGroupNonUniformShuffleDown = 348,
1745     OpGroupNonUniformIAdd = 349,
1746     OpGroupNonUniformFAdd = 350,
1747     OpGroupNonUniformIMul = 351,
1748     OpGroupNonUniformFMul = 352,
1749     OpGroupNonUniformSMin = 353,
1750     OpGroupNonUniformUMin = 354,
1751     OpGroupNonUniformFMin = 355,
1752     OpGroupNonUniformSMax = 356,
1753     OpGroupNonUniformUMax = 357,
1754     OpGroupNonUniformFMax = 358,
1755     OpGroupNonUniformBitwiseAnd = 359,
1756     OpGroupNonUniformBitwiseOr = 360,
1757     OpGroupNonUniformBitwiseXor = 361,
1758     OpGroupNonUniformLogicalAnd = 362,
1759     OpGroupNonUniformLogicalOr = 363,
1760     OpGroupNonUniformLogicalXor = 364,
1761     OpGroupNonUniformQuadBroadcast = 365,
1762     OpGroupNonUniformQuadSwap = 366,
1763     OpCopyLogical = 400,
1764     OpPtrEqual = 401,
1765     OpPtrNotEqual = 402,
1766     OpPtrDiff = 403,
1767     OpColorAttachmentReadEXT = 4160,
1768     OpDepthAttachmentReadEXT = 4161,
1769     OpStencilAttachmentReadEXT = 4162,
1770     OpTerminateInvocation = 4416,
1771     OpSubgroupBallotKHR = 4421,
1772     OpSubgroupFirstInvocationKHR = 4422,
1773     OpSubgroupAllKHR = 4428,
1774     OpSubgroupAnyKHR = 4429,
1775     OpSubgroupAllEqualKHR = 4430,
1776     OpGroupNonUniformRotateKHR = 4431,
1777     OpSubgroupReadInvocationKHR = 4432,
1778     OpExtInstWithForwardRefsKHR = 4433,
1779     OpTraceRayKHR = 4445,
1780     OpExecuteCallableKHR = 4446,
1781     OpConvertUToAccelerationStructureKHR = 4447,
1782     OpIgnoreIntersectionKHR = 4448,
1783     OpTerminateRayKHR = 4449,
1784     OpSDot = 4450,
1785     OpSDotKHR = 4450,
1786     OpUDot = 4451,
1787     OpUDotKHR = 4451,
1788     OpSUDot = 4452,
1789     OpSUDotKHR = 4452,
1790     OpSDotAccSat = 4453,
1791     OpSDotAccSatKHR = 4453,
1792     OpUDotAccSat = 4454,
1793     OpUDotAccSatKHR = 4454,
1794     OpSUDotAccSat = 4455,
1795     OpSUDotAccSatKHR = 4455,
1796     OpTypeCooperativeMatrixKHR = 4456,
1797     OpCooperativeMatrixLoadKHR = 4457,
1798     OpCooperativeMatrixStoreKHR = 4458,
1799     OpCooperativeMatrixMulAddKHR = 4459,
1800     OpCooperativeMatrixLengthKHR = 4460,
1801     OpConstantCompositeReplicateEXT = 4461,
1802     OpSpecConstantCompositeReplicateEXT = 4462,
1803     OpCompositeConstructReplicateEXT = 4463,
1804     OpTypeRayQueryKHR = 4472,
1805     OpRayQueryInitializeKHR = 4473,
1806     OpRayQueryTerminateKHR = 4474,
1807     OpRayQueryGenerateIntersectionKHR = 4475,
1808     OpRayQueryConfirmIntersectionKHR = 4476,
1809     OpRayQueryProceedKHR = 4477,
1810     OpRayQueryGetIntersectionTypeKHR = 4479,
1811     OpImageSampleWeightedQCOM = 4480,
1812     OpImageBoxFilterQCOM = 4481,
1813     OpImageBlockMatchSSDQCOM = 4482,
1814     OpImageBlockMatchSADQCOM = 4483,
1815     OpImageBlockMatchWindowSSDQCOM = 4500,
1816     OpImageBlockMatchWindowSADQCOM = 4501,
1817     OpImageBlockMatchGatherSSDQCOM = 4502,
1818     OpImageBlockMatchGatherSADQCOM = 4503,
1819     OpGroupIAddNonUniformAMD = 5000,
1820     OpGroupFAddNonUniformAMD = 5001,
1821     OpGroupFMinNonUniformAMD = 5002,
1822     OpGroupUMinNonUniformAMD = 5003,
1823     OpGroupSMinNonUniformAMD = 5004,
1824     OpGroupFMaxNonUniformAMD = 5005,
1825     OpGroupUMaxNonUniformAMD = 5006,
1826     OpGroupSMaxNonUniformAMD = 5007,
1827     OpFragmentMaskFetchAMD = 5011,
1828     OpFragmentFetchAMD = 5012,
1829     OpReadClockKHR = 5056,
1830     OpFinalizeNodePayloadsAMDX = 5075,
1831     OpFinishWritingNodePayloadAMDX = 5078,
1832     OpInitializeNodePayloadsAMDX = 5090,
1833     OpGroupNonUniformQuadAllKHR = 5110,
1834     OpGroupNonUniformQuadAnyKHR = 5111,
1835     OpHitObjectRecordHitMotionNV = 5249,
1836     OpHitObjectRecordHitWithIndexMotionNV = 5250,
1837     OpHitObjectRecordMissMotionNV = 5251,
1838     OpHitObjectGetWorldToObjectNV = 5252,
1839     OpHitObjectGetObjectToWorldNV = 5253,
1840     OpHitObjectGetObjectRayDirectionNV = 5254,
1841     OpHitObjectGetObjectRayOriginNV = 5255,
1842     OpHitObjectTraceRayMotionNV = 5256,
1843     OpHitObjectGetShaderRecordBufferHandleNV = 5257,
1844     OpHitObjectGetShaderBindingTableRecordIndexNV = 5258,
1845     OpHitObjectRecordEmptyNV = 5259,
1846     OpHitObjectTraceRayNV = 5260,
1847     OpHitObjectRecordHitNV = 5261,
1848     OpHitObjectRecordHitWithIndexNV = 5262,
1849     OpHitObjectRecordMissNV = 5263,
1850     OpHitObjectExecuteShaderNV = 5264,
1851     OpHitObjectGetCurrentTimeNV = 5265,
1852     OpHitObjectGetAttributesNV = 5266,
1853     OpHitObjectGetHitKindNV = 5267,
1854     OpHitObjectGetPrimitiveIndexNV = 5268,
1855     OpHitObjectGetGeometryIndexNV = 5269,
1856     OpHitObjectGetInstanceIdNV = 5270,
1857     OpHitObjectGetInstanceCustomIndexNV = 5271,
1858     OpHitObjectGetWorldRayDirectionNV = 5272,
1859     OpHitObjectGetWorldRayOriginNV = 5273,
1860     OpHitObjectGetRayTMaxNV = 5274,
1861     OpHitObjectGetRayTMinNV = 5275,
1862     OpHitObjectIsEmptyNV = 5276,
1863     OpHitObjectIsHitNV = 5277,
1864     OpHitObjectIsMissNV = 5278,
1865     OpReorderThreadWithHitObjectNV = 5279,
1866     OpReorderThreadWithHintNV = 5280,
1867     OpTypeHitObjectNV = 5281,
1868     OpImageSampleFootprintNV = 5283,
1869     OpEmitMeshTasksEXT = 5294,
1870     OpSetMeshOutputsEXT = 5295,
1871     OpGroupNonUniformPartitionNV = 5296,
1872     OpWritePackedPrimitiveIndices4x8NV = 5299,
1873     OpFetchMicroTriangleVertexPositionNV = 5300,
1874     OpFetchMicroTriangleVertexBarycentricNV = 5301,
1875     OpReportIntersectionKHR = 5334,
1876     OpReportIntersectionNV = 5334,
1877     OpIgnoreIntersectionNV = 5335,
1878     OpTerminateRayNV = 5336,
1879     OpTraceNV = 5337,
1880     OpTraceMotionNV = 5338,
1881     OpTraceRayMotionNV = 5339,
1882     OpRayQueryGetIntersectionTriangleVertexPositionsKHR = 5340,
1883     OpTypeAccelerationStructureKHR = 5341,
1884     OpTypeAccelerationStructureNV = 5341,
1885     OpExecuteCallableNV = 5344,
1886     OpTypeCooperativeMatrixNV = 5358,
1887     OpCooperativeMatrixLoadNV = 5359,
1888     OpCooperativeMatrixStoreNV = 5360,
1889     OpCooperativeMatrixMulAddNV = 5361,
1890     OpCooperativeMatrixLengthNV = 5362,
1891     OpBeginInvocationInterlockEXT = 5364,
1892     OpEndInvocationInterlockEXT = 5365,
1893     OpDemoteToHelperInvocation = 5380,
1894     OpDemoteToHelperInvocationEXT = 5380,
1895     OpIsHelperInvocationEXT = 5381,
1896     OpConvertUToImageNV = 5391,
1897     OpConvertUToSamplerNV = 5392,
1898     OpConvertImageToUNV = 5393,
1899     OpConvertSamplerToUNV = 5394,
1900     OpConvertUToSampledImageNV = 5395,
1901     OpConvertSampledImageToUNV = 5396,
1902     OpSamplerImageAddressingModeNV = 5397,
1903     OpRawAccessChainNV = 5398,
1904     OpSubgroupShuffleINTEL = 5571,
1905     OpSubgroupShuffleDownINTEL = 5572,
1906     OpSubgroupShuffleUpINTEL = 5573,
1907     OpSubgroupShuffleXorINTEL = 5574,
1908     OpSubgroupBlockReadINTEL = 5575,
1909     OpSubgroupBlockWriteINTEL = 5576,
1910     OpSubgroupImageBlockReadINTEL = 5577,
1911     OpSubgroupImageBlockWriteINTEL = 5578,
1912     OpSubgroupImageMediaBlockReadINTEL = 5580,
1913     OpSubgroupImageMediaBlockWriteINTEL = 5581,
1914     OpUCountLeadingZerosINTEL = 5585,
1915     OpUCountTrailingZerosINTEL = 5586,
1916     OpAbsISubINTEL = 5587,
1917     OpAbsUSubINTEL = 5588,
1918     OpIAddSatINTEL = 5589,
1919     OpUAddSatINTEL = 5590,
1920     OpIAverageINTEL = 5591,
1921     OpUAverageINTEL = 5592,
1922     OpIAverageRoundedINTEL = 5593,
1923     OpUAverageRoundedINTEL = 5594,
1924     OpISubSatINTEL = 5595,
1925     OpUSubSatINTEL = 5596,
1926     OpIMul32x16INTEL = 5597,
1927     OpUMul32x16INTEL = 5598,
1928     OpConstantFunctionPointerINTEL = 5600,
1929     OpFunctionPointerCallINTEL = 5601,
1930     OpAsmTargetINTEL = 5609,
1931     OpAsmINTEL = 5610,
1932     OpAsmCallINTEL = 5611,
1933     OpAtomicFMinEXT = 5614,
1934     OpAtomicFMaxEXT = 5615,
1935     OpAssumeTrueKHR = 5630,
1936     OpExpectKHR = 5631,
1937     OpDecorateString = 5632,
1938     OpDecorateStringGOOGLE = 5632,
1939     OpMemberDecorateString = 5633,
1940     OpMemberDecorateStringGOOGLE = 5633,
1941     OpVmeImageINTEL = 5699,
1942     OpTypeVmeImageINTEL = 5700,
1943     OpTypeAvcImePayloadINTEL = 5701,
1944     OpTypeAvcRefPayloadINTEL = 5702,
1945     OpTypeAvcSicPayloadINTEL = 5703,
1946     OpTypeAvcMcePayloadINTEL = 5704,
1947     OpTypeAvcMceResultINTEL = 5705,
1948     OpTypeAvcImeResultINTEL = 5706,
1949     OpTypeAvcImeResultSingleReferenceStreamoutINTEL = 5707,
1950     OpTypeAvcImeResultDualReferenceStreamoutINTEL = 5708,
1951     OpTypeAvcImeSingleReferenceStreaminINTEL = 5709,
1952     OpTypeAvcImeDualReferenceStreaminINTEL = 5710,
1953     OpTypeAvcRefResultINTEL = 5711,
1954     OpTypeAvcSicResultINTEL = 5712,
1955     OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL = 5713,
1956     OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL = 5714,
1957     OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL = 5715,
1958     OpSubgroupAvcMceSetInterShapePenaltyINTEL = 5716,
1959     OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL = 5717,
1960     OpSubgroupAvcMceSetInterDirectionPenaltyINTEL = 5718,
1961     OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL = 5719,
1962     OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL = 5720,
1963     OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL = 5721,
1964     OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL = 5722,
1965     OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL = 5723,
1966     OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL = 5724,
1967     OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL = 5725,
1968     OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL = 5726,
1969     OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL = 5727,
1970     OpSubgroupAvcMceSetAcOnlyHaarINTEL = 5728,
1971     OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL = 5729,
1972     OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL = 5730,
1973     OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL = 5731,
1974     OpSubgroupAvcMceConvertToImePayloadINTEL = 5732,
1975     OpSubgroupAvcMceConvertToImeResultINTEL = 5733,
1976     OpSubgroupAvcMceConvertToRefPayloadINTEL = 5734,
1977     OpSubgroupAvcMceConvertToRefResultINTEL = 5735,
1978     OpSubgroupAvcMceConvertToSicPayloadINTEL = 5736,
1979     OpSubgroupAvcMceConvertToSicResultINTEL = 5737,
1980     OpSubgroupAvcMceGetMotionVectorsINTEL = 5738,
1981     OpSubgroupAvcMceGetInterDistortionsINTEL = 5739,
1982     OpSubgroupAvcMceGetBestInterDistortionsINTEL = 5740,
1983     OpSubgroupAvcMceGetInterMajorShapeINTEL = 5741,
1984     OpSubgroupAvcMceGetInterMinorShapeINTEL = 5742,
1985     OpSubgroupAvcMceGetInterDirectionsINTEL = 5743,
1986     OpSubgroupAvcMceGetInterMotionVectorCountINTEL = 5744,
1987     OpSubgroupAvcMceGetInterReferenceIdsINTEL = 5745,
1988     OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL = 5746,
1989     OpSubgroupAvcImeInitializeINTEL = 5747,
1990     OpSubgroupAvcImeSetSingleReferenceINTEL = 5748,
1991     OpSubgroupAvcImeSetDualReferenceINTEL = 5749,
1992     OpSubgroupAvcImeRefWindowSizeINTEL = 5750,
1993     OpSubgroupAvcImeAdjustRefOffsetINTEL = 5751,
1994     OpSubgroupAvcImeConvertToMcePayloadINTEL = 5752,
1995     OpSubgroupAvcImeSetMaxMotionVectorCountINTEL = 5753,
1996     OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL = 5754,
1997     OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL = 5755,
1998     OpSubgroupAvcImeSetWeightedSadINTEL = 5756,
1999     OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL = 5757,
2000     OpSubgroupAvcImeEvaluateWithDualReferenceINTEL = 5758,
2001     OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL = 5759,
2002     OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL = 5760,
2003     OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL = 5761,
2004     OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL = 5762,
2005     OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL = 5763,
2006     OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL = 5764,
2007     OpSubgroupAvcImeConvertToMceResultINTEL = 5765,
2008     OpSubgroupAvcImeGetSingleReferenceStreaminINTEL = 5766,
2009     OpSubgroupAvcImeGetDualReferenceStreaminINTEL = 5767,
2010     OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL = 5768,
2011     OpSubgroupAvcImeStripDualReferenceStreamoutINTEL = 5769,
2012     OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL = 5770,
2013     OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL = 5771,
2014     OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL = 5772,
2015     OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL = 5773,
2016     OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL = 5774,
2017     OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL = 5775,
2018     OpSubgroupAvcImeGetBorderReachedINTEL = 5776,
2019     OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL = 5777,
2020     OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL = 5778,
2021     OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL = 5779,
2022     OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL = 5780,
2023     OpSubgroupAvcFmeInitializeINTEL = 5781,
2024     OpSubgroupAvcBmeInitializeINTEL = 5782,
2025     OpSubgroupAvcRefConvertToMcePayloadINTEL = 5783,
2026     OpSubgroupAvcRefSetBidirectionalMixDisableINTEL = 5784,
2027     OpSubgroupAvcRefSetBilinearFilterEnableINTEL = 5785,
2028     OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL = 5786,
2029     OpSubgroupAvcRefEvaluateWithDualReferenceINTEL = 5787,
2030     OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL = 5788,
2031     OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL = 5789,
2032     OpSubgroupAvcRefConvertToMceResultINTEL = 5790,
2033     OpSubgroupAvcSicInitializeINTEL = 5791,
2034     OpSubgroupAvcSicConfigureSkcINTEL = 5792,
2035     OpSubgroupAvcSicConfigureIpeLumaINTEL = 5793,
2036     OpSubgroupAvcSicConfigureIpeLumaChromaINTEL = 5794,
2037     OpSubgroupAvcSicGetMotionVectorMaskINTEL = 5795,
2038     OpSubgroupAvcSicConvertToMcePayloadINTEL = 5796,
2039     OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL = 5797,
2040     OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL = 5798,
2041     OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL = 5799,
2042     OpSubgroupAvcSicSetBilinearFilterEnableINTEL = 5800,
2043     OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL = 5801,
2044     OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL = 5802,
2045     OpSubgroupAvcSicEvaluateIpeINTEL = 5803,
2046     OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL = 5804,
2047     OpSubgroupAvcSicEvaluateWithDualReferenceINTEL = 5805,
2048     OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL = 5806,
2049     OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL = 5807,
2050     OpSubgroupAvcSicConvertToMceResultINTEL = 5808,
2051     OpSubgroupAvcSicGetIpeLumaShapeINTEL = 5809,
2052     OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL = 5810,
2053     OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL = 5811,
2054     OpSubgroupAvcSicGetPackedIpeLumaModesINTEL = 5812,
2055     OpSubgroupAvcSicGetIpeChromaModeINTEL = 5813,
2056     OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL = 5814,
2057     OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL = 5815,
2058     OpSubgroupAvcSicGetInterRawSadsINTEL = 5816,
2059     OpVariableLengthArrayINTEL = 5818,
2060     OpSaveMemoryINTEL = 5819,
2061     OpRestoreMemoryINTEL = 5820,
2062     OpArbitraryFloatSinCosPiINTEL = 5840,
2063     OpArbitraryFloatCastINTEL = 5841,
2064     OpArbitraryFloatCastFromIntINTEL = 5842,
2065     OpArbitraryFloatCastToIntINTEL = 5843,
2066     OpArbitraryFloatAddINTEL = 5846,
2067     OpArbitraryFloatSubINTEL = 5847,
2068     OpArbitraryFloatMulINTEL = 5848,
2069     OpArbitraryFloatDivINTEL = 5849,
2070     OpArbitraryFloatGTINTEL = 5850,
2071     OpArbitraryFloatGEINTEL = 5851,
2072     OpArbitraryFloatLTINTEL = 5852,
2073     OpArbitraryFloatLEINTEL = 5853,
2074     OpArbitraryFloatEQINTEL = 5854,
2075     OpArbitraryFloatRecipINTEL = 5855,
2076     OpArbitraryFloatRSqrtINTEL = 5856,
2077     OpArbitraryFloatCbrtINTEL = 5857,
2078     OpArbitraryFloatHypotINTEL = 5858,
2079     OpArbitraryFloatSqrtINTEL = 5859,
2080     OpArbitraryFloatLogINTEL = 5860,
2081     OpArbitraryFloatLog2INTEL = 5861,
2082     OpArbitraryFloatLog10INTEL = 5862,
2083     OpArbitraryFloatLog1pINTEL = 5863,
2084     OpArbitraryFloatExpINTEL = 5864,
2085     OpArbitraryFloatExp2INTEL = 5865,
2086     OpArbitraryFloatExp10INTEL = 5866,
2087     OpArbitraryFloatExpm1INTEL = 5867,
2088     OpArbitraryFloatSinINTEL = 5868,
2089     OpArbitraryFloatCosINTEL = 5869,
2090     OpArbitraryFloatSinCosINTEL = 5870,
2091     OpArbitraryFloatSinPiINTEL = 5871,
2092     OpArbitraryFloatCosPiINTEL = 5872,
2093     OpArbitraryFloatASinINTEL = 5873,
2094     OpArbitraryFloatASinPiINTEL = 5874,
2095     OpArbitraryFloatACosINTEL = 5875,
2096     OpArbitraryFloatACosPiINTEL = 5876,
2097     OpArbitraryFloatATanINTEL = 5877,
2098     OpArbitraryFloatATanPiINTEL = 5878,
2099     OpArbitraryFloatATan2INTEL = 5879,
2100     OpArbitraryFloatPowINTEL = 5880,
2101     OpArbitraryFloatPowRINTEL = 5881,
2102     OpArbitraryFloatPowNINTEL = 5882,
2103     OpLoopControlINTEL = 5887,
2104     OpAliasDomainDeclINTEL = 5911,
2105     OpAliasScopeDeclINTEL = 5912,
2106     OpAliasScopeListDeclINTEL = 5913,
2107     OpFixedSqrtINTEL = 5923,
2108     OpFixedRecipINTEL = 5924,
2109     OpFixedRsqrtINTEL = 5925,
2110     OpFixedSinINTEL = 5926,
2111     OpFixedCosINTEL = 5927,
2112     OpFixedSinCosINTEL = 5928,
2113     OpFixedSinPiINTEL = 5929,
2114     OpFixedCosPiINTEL = 5930,
2115     OpFixedSinCosPiINTEL = 5931,
2116     OpFixedLogINTEL = 5932,
2117     OpFixedExpINTEL = 5933,
2118     OpPtrCastToCrossWorkgroupINTEL = 5934,
2119     OpCrossWorkgroupCastToPtrINTEL = 5938,
2120     OpReadPipeBlockingINTEL = 5946,
2121     OpWritePipeBlockingINTEL = 5947,
2122     OpFPGARegINTEL = 5949,
2123     OpRayQueryGetRayTMinKHR = 6016,
2124     OpRayQueryGetRayFlagsKHR = 6017,
2125     OpRayQueryGetIntersectionTKHR = 6018,
2126     OpRayQueryGetIntersectionInstanceCustomIndexKHR = 6019,
2127     OpRayQueryGetIntersectionInstanceIdKHR = 6020,
2128     OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR = 6021,
2129     OpRayQueryGetIntersectionGeometryIndexKHR = 6022,
2130     OpRayQueryGetIntersectionPrimitiveIndexKHR = 6023,
2131     OpRayQueryGetIntersectionBarycentricsKHR = 6024,
2132     OpRayQueryGetIntersectionFrontFaceKHR = 6025,
2133     OpRayQueryGetIntersectionCandidateAABBOpaqueKHR = 6026,
2134     OpRayQueryGetIntersectionObjectRayDirectionKHR = 6027,
2135     OpRayQueryGetIntersectionObjectRayOriginKHR = 6028,
2136     OpRayQueryGetWorldRayDirectionKHR = 6029,
2137     OpRayQueryGetWorldRayOriginKHR = 6030,
2138     OpRayQueryGetIntersectionObjectToWorldKHR = 6031,
2139     OpRayQueryGetIntersectionWorldToObjectKHR = 6032,
2140     OpAtomicFAddEXT = 6035,
2141     OpTypeBufferSurfaceINTEL = 6086,
2142     OpTypeStructContinuedINTEL = 6090,
2143     OpConstantCompositeContinuedINTEL = 6091,
2144     OpSpecConstantCompositeContinuedINTEL = 6092,
2145     OpCompositeConstructContinuedINTEL = 6096,
2146     OpConvertFToBF16INTEL = 6116,
2147     OpConvertBF16ToFINTEL = 6117,
2148     OpControlBarrierArriveINTEL = 6142,
2149     OpControlBarrierWaitINTEL = 6143,
2150     OpGroupIMulKHR = 6401,
2151     OpGroupFMulKHR = 6402,
2152     OpGroupBitwiseAndKHR = 6403,
2153     OpGroupBitwiseOrKHR = 6404,
2154     OpGroupBitwiseXorKHR = 6405,
2155     OpGroupLogicalAndKHR = 6406,
2156     OpGroupLogicalOrKHR = 6407,
2157     OpGroupLogicalXorKHR = 6408,
2158     OpMaskedGatherINTEL = 6428,
2159     OpMaskedScatterINTEL = 6429,
2160     OpMax = 0x7fffffff,
2161 };
2162 
2163 #ifdef SPV_ENABLE_UTILITY_CODE
2164 #ifndef __cplusplus
2165 #include <stdbool.h>
2166 #endif
HasResultAndType(Op opcode,bool * hasResult,bool * hasResultType)2167 inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
2168     *hasResult = *hasResultType = false;
2169     switch (opcode) {
2170     default: /* unknown opcode */ break;
2171     case OpNop: *hasResult = false; *hasResultType = false; break;
2172     case OpUndef: *hasResult = true; *hasResultType = true; break;
2173     case OpSourceContinued: *hasResult = false; *hasResultType = false; break;
2174     case OpSource: *hasResult = false; *hasResultType = false; break;
2175     case OpSourceExtension: *hasResult = false; *hasResultType = false; break;
2176     case OpName: *hasResult = false; *hasResultType = false; break;
2177     case OpMemberName: *hasResult = false; *hasResultType = false; break;
2178     case OpString: *hasResult = true; *hasResultType = false; break;
2179     case OpLine: *hasResult = false; *hasResultType = false; break;
2180     case OpExtension: *hasResult = false; *hasResultType = false; break;
2181     case OpExtInstImport: *hasResult = true; *hasResultType = false; break;
2182     case OpExtInst: *hasResult = true; *hasResultType = true; break;
2183     case OpMemoryModel: *hasResult = false; *hasResultType = false; break;
2184     case OpEntryPoint: *hasResult = false; *hasResultType = false; break;
2185     case OpExecutionMode: *hasResult = false; *hasResultType = false; break;
2186     case OpCapability: *hasResult = false; *hasResultType = false; break;
2187     case OpTypeVoid: *hasResult = true; *hasResultType = false; break;
2188     case OpTypeBool: *hasResult = true; *hasResultType = false; break;
2189     case OpTypeInt: *hasResult = true; *hasResultType = false; break;
2190     case OpTypeFloat: *hasResult = true; *hasResultType = false; break;
2191     case OpTypeVector: *hasResult = true; *hasResultType = false; break;
2192     case OpTypeMatrix: *hasResult = true; *hasResultType = false; break;
2193     case OpTypeImage: *hasResult = true; *hasResultType = false; break;
2194     case OpTypeSampler: *hasResult = true; *hasResultType = false; break;
2195     case OpTypeSampledImage: *hasResult = true; *hasResultType = false; break;
2196     case OpTypeArray: *hasResult = true; *hasResultType = false; break;
2197     case OpTypeRuntimeArray: *hasResult = true; *hasResultType = false; break;
2198     case OpTypeStruct: *hasResult = true; *hasResultType = false; break;
2199     case OpTypeOpaque: *hasResult = true; *hasResultType = false; break;
2200     case OpTypePointer: *hasResult = true; *hasResultType = false; break;
2201     case OpTypeFunction: *hasResult = true; *hasResultType = false; break;
2202     case OpTypeEvent: *hasResult = true; *hasResultType = false; break;
2203     case OpTypeDeviceEvent: *hasResult = true; *hasResultType = false; break;
2204     case OpTypeReserveId: *hasResult = true; *hasResultType = false; break;
2205     case OpTypeQueue: *hasResult = true; *hasResultType = false; break;
2206     case OpTypePipe: *hasResult = true; *hasResultType = false; break;
2207     case OpTypeForwardPointer: *hasResult = false; *hasResultType = false; break;
2208     case OpConstantTrue: *hasResult = true; *hasResultType = true; break;
2209     case OpConstantFalse: *hasResult = true; *hasResultType = true; break;
2210     case OpConstant: *hasResult = true; *hasResultType = true; break;
2211     case OpConstantComposite: *hasResult = true; *hasResultType = true; break;
2212     case OpConstantSampler: *hasResult = true; *hasResultType = true; break;
2213     case OpConstantNull: *hasResult = true; *hasResultType = true; break;
2214     case OpSpecConstantTrue: *hasResult = true; *hasResultType = true; break;
2215     case OpSpecConstantFalse: *hasResult = true; *hasResultType = true; break;
2216     case OpSpecConstant: *hasResult = true; *hasResultType = true; break;
2217     case OpSpecConstantComposite: *hasResult = true; *hasResultType = true; break;
2218     case OpSpecConstantOp: *hasResult = true; *hasResultType = true; break;
2219     case OpFunction: *hasResult = true; *hasResultType = true; break;
2220     case OpFunctionParameter: *hasResult = true; *hasResultType = true; break;
2221     case OpFunctionEnd: *hasResult = false; *hasResultType = false; break;
2222     case OpFunctionCall: *hasResult = true; *hasResultType = true; break;
2223     case OpVariable: *hasResult = true; *hasResultType = true; break;
2224     case OpImageTexelPointer: *hasResult = true; *hasResultType = true; break;
2225     case OpLoad: *hasResult = true; *hasResultType = true; break;
2226     case OpStore: *hasResult = false; *hasResultType = false; break;
2227     case OpCopyMemory: *hasResult = false; *hasResultType = false; break;
2228     case OpCopyMemorySized: *hasResult = false; *hasResultType = false; break;
2229     case OpAccessChain: *hasResult = true; *hasResultType = true; break;
2230     case OpInBoundsAccessChain: *hasResult = true; *hasResultType = true; break;
2231     case OpPtrAccessChain: *hasResult = true; *hasResultType = true; break;
2232     case OpArrayLength: *hasResult = true; *hasResultType = true; break;
2233     case OpGenericPtrMemSemantics: *hasResult = true; *hasResultType = true; break;
2234     case OpInBoundsPtrAccessChain: *hasResult = true; *hasResultType = true; break;
2235     case OpDecorate: *hasResult = false; *hasResultType = false; break;
2236     case OpMemberDecorate: *hasResult = false; *hasResultType = false; break;
2237     case OpDecorationGroup: *hasResult = true; *hasResultType = false; break;
2238     case OpGroupDecorate: *hasResult = false; *hasResultType = false; break;
2239     case OpGroupMemberDecorate: *hasResult = false; *hasResultType = false; break;
2240     case OpVectorExtractDynamic: *hasResult = true; *hasResultType = true; break;
2241     case OpVectorInsertDynamic: *hasResult = true; *hasResultType = true; break;
2242     case OpVectorShuffle: *hasResult = true; *hasResultType = true; break;
2243     case OpCompositeConstruct: *hasResult = true; *hasResultType = true; break;
2244     case OpCompositeExtract: *hasResult = true; *hasResultType = true; break;
2245     case OpCompositeInsert: *hasResult = true; *hasResultType = true; break;
2246     case OpCopyObject: *hasResult = true; *hasResultType = true; break;
2247     case OpTranspose: *hasResult = true; *hasResultType = true; break;
2248     case OpSampledImage: *hasResult = true; *hasResultType = true; break;
2249     case OpImageSampleImplicitLod: *hasResult = true; *hasResultType = true; break;
2250     case OpImageSampleExplicitLod: *hasResult = true; *hasResultType = true; break;
2251     case OpImageSampleDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
2252     case OpImageSampleDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
2253     case OpImageSampleProjImplicitLod: *hasResult = true; *hasResultType = true; break;
2254     case OpImageSampleProjExplicitLod: *hasResult = true; *hasResultType = true; break;
2255     case OpImageSampleProjDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
2256     case OpImageSampleProjDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
2257     case OpImageFetch: *hasResult = true; *hasResultType = true; break;
2258     case OpImageGather: *hasResult = true; *hasResultType = true; break;
2259     case OpImageDrefGather: *hasResult = true; *hasResultType = true; break;
2260     case OpImageRead: *hasResult = true; *hasResultType = true; break;
2261     case OpImageWrite: *hasResult = false; *hasResultType = false; break;
2262     case OpImage: *hasResult = true; *hasResultType = true; break;
2263     case OpImageQueryFormat: *hasResult = true; *hasResultType = true; break;
2264     case OpImageQueryOrder: *hasResult = true; *hasResultType = true; break;
2265     case OpImageQuerySizeLod: *hasResult = true; *hasResultType = true; break;
2266     case OpImageQuerySize: *hasResult = true; *hasResultType = true; break;
2267     case OpImageQueryLod: *hasResult = true; *hasResultType = true; break;
2268     case OpImageQueryLevels: *hasResult = true; *hasResultType = true; break;
2269     case OpImageQuerySamples: *hasResult = true; *hasResultType = true; break;
2270     case OpConvertFToU: *hasResult = true; *hasResultType = true; break;
2271     case OpConvertFToS: *hasResult = true; *hasResultType = true; break;
2272     case OpConvertSToF: *hasResult = true; *hasResultType = true; break;
2273     case OpConvertUToF: *hasResult = true; *hasResultType = true; break;
2274     case OpUConvert: *hasResult = true; *hasResultType = true; break;
2275     case OpSConvert: *hasResult = true; *hasResultType = true; break;
2276     case OpFConvert: *hasResult = true; *hasResultType = true; break;
2277     case OpQuantizeToF16: *hasResult = true; *hasResultType = true; break;
2278     case OpConvertPtrToU: *hasResult = true; *hasResultType = true; break;
2279     case OpSatConvertSToU: *hasResult = true; *hasResultType = true; break;
2280     case OpSatConvertUToS: *hasResult = true; *hasResultType = true; break;
2281     case OpConvertUToPtr: *hasResult = true; *hasResultType = true; break;
2282     case OpPtrCastToGeneric: *hasResult = true; *hasResultType = true; break;
2283     case OpGenericCastToPtr: *hasResult = true; *hasResultType = true; break;
2284     case OpGenericCastToPtrExplicit: *hasResult = true; *hasResultType = true; break;
2285     case OpBitcast: *hasResult = true; *hasResultType = true; break;
2286     case OpSNegate: *hasResult = true; *hasResultType = true; break;
2287     case OpFNegate: *hasResult = true; *hasResultType = true; break;
2288     case OpIAdd: *hasResult = true; *hasResultType = true; break;
2289     case OpFAdd: *hasResult = true; *hasResultType = true; break;
2290     case OpISub: *hasResult = true; *hasResultType = true; break;
2291     case OpFSub: *hasResult = true; *hasResultType = true; break;
2292     case OpIMul: *hasResult = true; *hasResultType = true; break;
2293     case OpFMul: *hasResult = true; *hasResultType = true; break;
2294     case OpUDiv: *hasResult = true; *hasResultType = true; break;
2295     case OpSDiv: *hasResult = true; *hasResultType = true; break;
2296     case OpFDiv: *hasResult = true; *hasResultType = true; break;
2297     case OpUMod: *hasResult = true; *hasResultType = true; break;
2298     case OpSRem: *hasResult = true; *hasResultType = true; break;
2299     case OpSMod: *hasResult = true; *hasResultType = true; break;
2300     case OpFRem: *hasResult = true; *hasResultType = true; break;
2301     case OpFMod: *hasResult = true; *hasResultType = true; break;
2302     case OpVectorTimesScalar: *hasResult = true; *hasResultType = true; break;
2303     case OpMatrixTimesScalar: *hasResult = true; *hasResultType = true; break;
2304     case OpVectorTimesMatrix: *hasResult = true; *hasResultType = true; break;
2305     case OpMatrixTimesVector: *hasResult = true; *hasResultType = true; break;
2306     case OpMatrixTimesMatrix: *hasResult = true; *hasResultType = true; break;
2307     case OpOuterProduct: *hasResult = true; *hasResultType = true; break;
2308     case OpDot: *hasResult = true; *hasResultType = true; break;
2309     case OpIAddCarry: *hasResult = true; *hasResultType = true; break;
2310     case OpISubBorrow: *hasResult = true; *hasResultType = true; break;
2311     case OpUMulExtended: *hasResult = true; *hasResultType = true; break;
2312     case OpSMulExtended: *hasResult = true; *hasResultType = true; break;
2313     case OpAny: *hasResult = true; *hasResultType = true; break;
2314     case OpAll: *hasResult = true; *hasResultType = true; break;
2315     case OpIsNan: *hasResult = true; *hasResultType = true; break;
2316     case OpIsInf: *hasResult = true; *hasResultType = true; break;
2317     case OpIsFinite: *hasResult = true; *hasResultType = true; break;
2318     case OpIsNormal: *hasResult = true; *hasResultType = true; break;
2319     case OpSignBitSet: *hasResult = true; *hasResultType = true; break;
2320     case OpLessOrGreater: *hasResult = true; *hasResultType = true; break;
2321     case OpOrdered: *hasResult = true; *hasResultType = true; break;
2322     case OpUnordered: *hasResult = true; *hasResultType = true; break;
2323     case OpLogicalEqual: *hasResult = true; *hasResultType = true; break;
2324     case OpLogicalNotEqual: *hasResult = true; *hasResultType = true; break;
2325     case OpLogicalOr: *hasResult = true; *hasResultType = true; break;
2326     case OpLogicalAnd: *hasResult = true; *hasResultType = true; break;
2327     case OpLogicalNot: *hasResult = true; *hasResultType = true; break;
2328     case OpSelect: *hasResult = true; *hasResultType = true; break;
2329     case OpIEqual: *hasResult = true; *hasResultType = true; break;
2330     case OpINotEqual: *hasResult = true; *hasResultType = true; break;
2331     case OpUGreaterThan: *hasResult = true; *hasResultType = true; break;
2332     case OpSGreaterThan: *hasResult = true; *hasResultType = true; break;
2333     case OpUGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
2334     case OpSGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
2335     case OpULessThan: *hasResult = true; *hasResultType = true; break;
2336     case OpSLessThan: *hasResult = true; *hasResultType = true; break;
2337     case OpULessThanEqual: *hasResult = true; *hasResultType = true; break;
2338     case OpSLessThanEqual: *hasResult = true; *hasResultType = true; break;
2339     case OpFOrdEqual: *hasResult = true; *hasResultType = true; break;
2340     case OpFUnordEqual: *hasResult = true; *hasResultType = true; break;
2341     case OpFOrdNotEqual: *hasResult = true; *hasResultType = true; break;
2342     case OpFUnordNotEqual: *hasResult = true; *hasResultType = true; break;
2343     case OpFOrdLessThan: *hasResult = true; *hasResultType = true; break;
2344     case OpFUnordLessThan: *hasResult = true; *hasResultType = true; break;
2345     case OpFOrdGreaterThan: *hasResult = true; *hasResultType = true; break;
2346     case OpFUnordGreaterThan: *hasResult = true; *hasResultType = true; break;
2347     case OpFOrdLessThanEqual: *hasResult = true; *hasResultType = true; break;
2348     case OpFUnordLessThanEqual: *hasResult = true; *hasResultType = true; break;
2349     case OpFOrdGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
2350     case OpFUnordGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
2351     case OpShiftRightLogical: *hasResult = true; *hasResultType = true; break;
2352     case OpShiftRightArithmetic: *hasResult = true; *hasResultType = true; break;
2353     case OpShiftLeftLogical: *hasResult = true; *hasResultType = true; break;
2354     case OpBitwiseOr: *hasResult = true; *hasResultType = true; break;
2355     case OpBitwiseXor: *hasResult = true; *hasResultType = true; break;
2356     case OpBitwiseAnd: *hasResult = true; *hasResultType = true; break;
2357     case OpNot: *hasResult = true; *hasResultType = true; break;
2358     case OpBitFieldInsert: *hasResult = true; *hasResultType = true; break;
2359     case OpBitFieldSExtract: *hasResult = true; *hasResultType = true; break;
2360     case OpBitFieldUExtract: *hasResult = true; *hasResultType = true; break;
2361     case OpBitReverse: *hasResult = true; *hasResultType = true; break;
2362     case OpBitCount: *hasResult = true; *hasResultType = true; break;
2363     case OpDPdx: *hasResult = true; *hasResultType = true; break;
2364     case OpDPdy: *hasResult = true; *hasResultType = true; break;
2365     case OpFwidth: *hasResult = true; *hasResultType = true; break;
2366     case OpDPdxFine: *hasResult = true; *hasResultType = true; break;
2367     case OpDPdyFine: *hasResult = true; *hasResultType = true; break;
2368     case OpFwidthFine: *hasResult = true; *hasResultType = true; break;
2369     case OpDPdxCoarse: *hasResult = true; *hasResultType = true; break;
2370     case OpDPdyCoarse: *hasResult = true; *hasResultType = true; break;
2371     case OpFwidthCoarse: *hasResult = true; *hasResultType = true; break;
2372     case OpEmitVertex: *hasResult = false; *hasResultType = false; break;
2373     case OpEndPrimitive: *hasResult = false; *hasResultType = false; break;
2374     case OpEmitStreamVertex: *hasResult = false; *hasResultType = false; break;
2375     case OpEndStreamPrimitive: *hasResult = false; *hasResultType = false; break;
2376     case OpControlBarrier: *hasResult = false; *hasResultType = false; break;
2377     case OpMemoryBarrier: *hasResult = false; *hasResultType = false; break;
2378     case OpAtomicLoad: *hasResult = true; *hasResultType = true; break;
2379     case OpAtomicStore: *hasResult = false; *hasResultType = false; break;
2380     case OpAtomicExchange: *hasResult = true; *hasResultType = true; break;
2381     case OpAtomicCompareExchange: *hasResult = true; *hasResultType = true; break;
2382     case OpAtomicCompareExchangeWeak: *hasResult = true; *hasResultType = true; break;
2383     case OpAtomicIIncrement: *hasResult = true; *hasResultType = true; break;
2384     case OpAtomicIDecrement: *hasResult = true; *hasResultType = true; break;
2385     case OpAtomicIAdd: *hasResult = true; *hasResultType = true; break;
2386     case OpAtomicISub: *hasResult = true; *hasResultType = true; break;
2387     case OpAtomicSMin: *hasResult = true; *hasResultType = true; break;
2388     case OpAtomicUMin: *hasResult = true; *hasResultType = true; break;
2389     case OpAtomicSMax: *hasResult = true; *hasResultType = true; break;
2390     case OpAtomicUMax: *hasResult = true; *hasResultType = true; break;
2391     case OpAtomicAnd: *hasResult = true; *hasResultType = true; break;
2392     case OpAtomicOr: *hasResult = true; *hasResultType = true; break;
2393     case OpAtomicXor: *hasResult = true; *hasResultType = true; break;
2394     case OpPhi: *hasResult = true; *hasResultType = true; break;
2395     case OpLoopMerge: *hasResult = false; *hasResultType = false; break;
2396     case OpSelectionMerge: *hasResult = false; *hasResultType = false; break;
2397     case OpLabel: *hasResult = true; *hasResultType = false; break;
2398     case OpBranch: *hasResult = false; *hasResultType = false; break;
2399     case OpBranchConditional: *hasResult = false; *hasResultType = false; break;
2400     case OpSwitch: *hasResult = false; *hasResultType = false; break;
2401     case OpKill: *hasResult = false; *hasResultType = false; break;
2402     case OpReturn: *hasResult = false; *hasResultType = false; break;
2403     case OpReturnValue: *hasResult = false; *hasResultType = false; break;
2404     case OpUnreachable: *hasResult = false; *hasResultType = false; break;
2405     case OpLifetimeStart: *hasResult = false; *hasResultType = false; break;
2406     case OpLifetimeStop: *hasResult = false; *hasResultType = false; break;
2407     case OpGroupAsyncCopy: *hasResult = true; *hasResultType = true; break;
2408     case OpGroupWaitEvents: *hasResult = false; *hasResultType = false; break;
2409     case OpGroupAll: *hasResult = true; *hasResultType = true; break;
2410     case OpGroupAny: *hasResult = true; *hasResultType = true; break;
2411     case OpGroupBroadcast: *hasResult = true; *hasResultType = true; break;
2412     case OpGroupIAdd: *hasResult = true; *hasResultType = true; break;
2413     case OpGroupFAdd: *hasResult = true; *hasResultType = true; break;
2414     case OpGroupFMin: *hasResult = true; *hasResultType = true; break;
2415     case OpGroupUMin: *hasResult = true; *hasResultType = true; break;
2416     case OpGroupSMin: *hasResult = true; *hasResultType = true; break;
2417     case OpGroupFMax: *hasResult = true; *hasResultType = true; break;
2418     case OpGroupUMax: *hasResult = true; *hasResultType = true; break;
2419     case OpGroupSMax: *hasResult = true; *hasResultType = true; break;
2420     case OpReadPipe: *hasResult = true; *hasResultType = true; break;
2421     case OpWritePipe: *hasResult = true; *hasResultType = true; break;
2422     case OpReservedReadPipe: *hasResult = true; *hasResultType = true; break;
2423     case OpReservedWritePipe: *hasResult = true; *hasResultType = true; break;
2424     case OpReserveReadPipePackets: *hasResult = true; *hasResultType = true; break;
2425     case OpReserveWritePipePackets: *hasResult = true; *hasResultType = true; break;
2426     case OpCommitReadPipe: *hasResult = false; *hasResultType = false; break;
2427     case OpCommitWritePipe: *hasResult = false; *hasResultType = false; break;
2428     case OpIsValidReserveId: *hasResult = true; *hasResultType = true; break;
2429     case OpGetNumPipePackets: *hasResult = true; *hasResultType = true; break;
2430     case OpGetMaxPipePackets: *hasResult = true; *hasResultType = true; break;
2431     case OpGroupReserveReadPipePackets: *hasResult = true; *hasResultType = true; break;
2432     case OpGroupReserveWritePipePackets: *hasResult = true; *hasResultType = true; break;
2433     case OpGroupCommitReadPipe: *hasResult = false; *hasResultType = false; break;
2434     case OpGroupCommitWritePipe: *hasResult = false; *hasResultType = false; break;
2435     case OpEnqueueMarker: *hasResult = true; *hasResultType = true; break;
2436     case OpEnqueueKernel: *hasResult = true; *hasResultType = true; break;
2437     case OpGetKernelNDrangeSubGroupCount: *hasResult = true; *hasResultType = true; break;
2438     case OpGetKernelNDrangeMaxSubGroupSize: *hasResult = true; *hasResultType = true; break;
2439     case OpGetKernelWorkGroupSize: *hasResult = true; *hasResultType = true; break;
2440     case OpGetKernelPreferredWorkGroupSizeMultiple: *hasResult = true; *hasResultType = true; break;
2441     case OpRetainEvent: *hasResult = false; *hasResultType = false; break;
2442     case OpReleaseEvent: *hasResult = false; *hasResultType = false; break;
2443     case OpCreateUserEvent: *hasResult = true; *hasResultType = true; break;
2444     case OpIsValidEvent: *hasResult = true; *hasResultType = true; break;
2445     case OpSetUserEventStatus: *hasResult = false; *hasResultType = false; break;
2446     case OpCaptureEventProfilingInfo: *hasResult = false; *hasResultType = false; break;
2447     case OpGetDefaultQueue: *hasResult = true; *hasResultType = true; break;
2448     case OpBuildNDRange: *hasResult = true; *hasResultType = true; break;
2449     case OpImageSparseSampleImplicitLod: *hasResult = true; *hasResultType = true; break;
2450     case OpImageSparseSampleExplicitLod: *hasResult = true; *hasResultType = true; break;
2451     case OpImageSparseSampleDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
2452     case OpImageSparseSampleDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
2453     case OpImageSparseSampleProjImplicitLod: *hasResult = true; *hasResultType = true; break;
2454     case OpImageSparseSampleProjExplicitLod: *hasResult = true; *hasResultType = true; break;
2455     case OpImageSparseSampleProjDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
2456     case OpImageSparseSampleProjDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
2457     case OpImageSparseFetch: *hasResult = true; *hasResultType = true; break;
2458     case OpImageSparseGather: *hasResult = true; *hasResultType = true; break;
2459     case OpImageSparseDrefGather: *hasResult = true; *hasResultType = true; break;
2460     case OpImageSparseTexelsResident: *hasResult = true; *hasResultType = true; break;
2461     case OpNoLine: *hasResult = false; *hasResultType = false; break;
2462     case OpAtomicFlagTestAndSet: *hasResult = true; *hasResultType = true; break;
2463     case OpAtomicFlagClear: *hasResult = false; *hasResultType = false; break;
2464     case OpImageSparseRead: *hasResult = true; *hasResultType = true; break;
2465     case OpSizeOf: *hasResult = true; *hasResultType = true; break;
2466     case OpTypePipeStorage: *hasResult = true; *hasResultType = false; break;
2467     case OpConstantPipeStorage: *hasResult = true; *hasResultType = true; break;
2468     case OpCreatePipeFromPipeStorage: *hasResult = true; *hasResultType = true; break;
2469     case OpGetKernelLocalSizeForSubgroupCount: *hasResult = true; *hasResultType = true; break;
2470     case OpGetKernelMaxNumSubgroups: *hasResult = true; *hasResultType = true; break;
2471     case OpTypeNamedBarrier: *hasResult = true; *hasResultType = false; break;
2472     case OpNamedBarrierInitialize: *hasResult = true; *hasResultType = true; break;
2473     case OpMemoryNamedBarrier: *hasResult = false; *hasResultType = false; break;
2474     case OpModuleProcessed: *hasResult = false; *hasResultType = false; break;
2475     case OpExecutionModeId: *hasResult = false; *hasResultType = false; break;
2476     case OpDecorateId: *hasResult = false; *hasResultType = false; break;
2477     case OpGroupNonUniformElect: *hasResult = true; *hasResultType = true; break;
2478     case OpGroupNonUniformAll: *hasResult = true; *hasResultType = true; break;
2479     case OpGroupNonUniformAny: *hasResult = true; *hasResultType = true; break;
2480     case OpGroupNonUniformAllEqual: *hasResult = true; *hasResultType = true; break;
2481     case OpGroupNonUniformBroadcast: *hasResult = true; *hasResultType = true; break;
2482     case OpGroupNonUniformBroadcastFirst: *hasResult = true; *hasResultType = true; break;
2483     case OpGroupNonUniformBallot: *hasResult = true; *hasResultType = true; break;
2484     case OpGroupNonUniformInverseBallot: *hasResult = true; *hasResultType = true; break;
2485     case OpGroupNonUniformBallotBitExtract: *hasResult = true; *hasResultType = true; break;
2486     case OpGroupNonUniformBallotBitCount: *hasResult = true; *hasResultType = true; break;
2487     case OpGroupNonUniformBallotFindLSB: *hasResult = true; *hasResultType = true; break;
2488     case OpGroupNonUniformBallotFindMSB: *hasResult = true; *hasResultType = true; break;
2489     case OpGroupNonUniformShuffle: *hasResult = true; *hasResultType = true; break;
2490     case OpGroupNonUniformShuffleXor: *hasResult = true; *hasResultType = true; break;
2491     case OpGroupNonUniformShuffleUp: *hasResult = true; *hasResultType = true; break;
2492     case OpGroupNonUniformShuffleDown: *hasResult = true; *hasResultType = true; break;
2493     case OpGroupNonUniformIAdd: *hasResult = true; *hasResultType = true; break;
2494     case OpGroupNonUniformFAdd: *hasResult = true; *hasResultType = true; break;
2495     case OpGroupNonUniformIMul: *hasResult = true; *hasResultType = true; break;
2496     case OpGroupNonUniformFMul: *hasResult = true; *hasResultType = true; break;
2497     case OpGroupNonUniformSMin: *hasResult = true; *hasResultType = true; break;
2498     case OpGroupNonUniformUMin: *hasResult = true; *hasResultType = true; break;
2499     case OpGroupNonUniformFMin: *hasResult = true; *hasResultType = true; break;
2500     case OpGroupNonUniformSMax: *hasResult = true; *hasResultType = true; break;
2501     case OpGroupNonUniformUMax: *hasResult = true; *hasResultType = true; break;
2502     case OpGroupNonUniformFMax: *hasResult = true; *hasResultType = true; break;
2503     case OpGroupNonUniformBitwiseAnd: *hasResult = true; *hasResultType = true; break;
2504     case OpGroupNonUniformBitwiseOr: *hasResult = true; *hasResultType = true; break;
2505     case OpGroupNonUniformBitwiseXor: *hasResult = true; *hasResultType = true; break;
2506     case OpGroupNonUniformLogicalAnd: *hasResult = true; *hasResultType = true; break;
2507     case OpGroupNonUniformLogicalOr: *hasResult = true; *hasResultType = true; break;
2508     case OpGroupNonUniformLogicalXor: *hasResult = true; *hasResultType = true; break;
2509     case OpGroupNonUniformQuadBroadcast: *hasResult = true; *hasResultType = true; break;
2510     case OpGroupNonUniformQuadSwap: *hasResult = true; *hasResultType = true; break;
2511     case OpCopyLogical: *hasResult = true; *hasResultType = true; break;
2512     case OpPtrEqual: *hasResult = true; *hasResultType = true; break;
2513     case OpPtrNotEqual: *hasResult = true; *hasResultType = true; break;
2514     case OpPtrDiff: *hasResult = true; *hasResultType = true; break;
2515     case OpColorAttachmentReadEXT: *hasResult = true; *hasResultType = true; break;
2516     case OpDepthAttachmentReadEXT: *hasResult = true; *hasResultType = true; break;
2517     case OpStencilAttachmentReadEXT: *hasResult = true; *hasResultType = true; break;
2518     case OpTerminateInvocation: *hasResult = false; *hasResultType = false; break;
2519     case OpSubgroupBallotKHR: *hasResult = true; *hasResultType = true; break;
2520     case OpSubgroupFirstInvocationKHR: *hasResult = true; *hasResultType = true; break;
2521     case OpSubgroupAllKHR: *hasResult = true; *hasResultType = true; break;
2522     case OpSubgroupAnyKHR: *hasResult = true; *hasResultType = true; break;
2523     case OpSubgroupAllEqualKHR: *hasResult = true; *hasResultType = true; break;
2524     case OpGroupNonUniformRotateKHR: *hasResult = true; *hasResultType = true; break;
2525     case OpSubgroupReadInvocationKHR: *hasResult = true; *hasResultType = true; break;
2526     case OpExtInstWithForwardRefsKHR: *hasResult = true; *hasResultType = true; break;
2527     case OpTraceRayKHR: *hasResult = false; *hasResultType = false; break;
2528     case OpExecuteCallableKHR: *hasResult = false; *hasResultType = false; break;
2529     case OpConvertUToAccelerationStructureKHR: *hasResult = true; *hasResultType = true; break;
2530     case OpIgnoreIntersectionKHR: *hasResult = false; *hasResultType = false; break;
2531     case OpTerminateRayKHR: *hasResult = false; *hasResultType = false; break;
2532     case OpSDot: *hasResult = true; *hasResultType = true; break;
2533     case OpUDot: *hasResult = true; *hasResultType = true; break;
2534     case OpSUDot: *hasResult = true; *hasResultType = true; break;
2535     case OpSDotAccSat: *hasResult = true; *hasResultType = true; break;
2536     case OpUDotAccSat: *hasResult = true; *hasResultType = true; break;
2537     case OpSUDotAccSat: *hasResult = true; *hasResultType = true; break;
2538     case OpTypeCooperativeMatrixKHR: *hasResult = true; *hasResultType = false; break;
2539     case OpCooperativeMatrixLoadKHR: *hasResult = true; *hasResultType = true; break;
2540     case OpCooperativeMatrixStoreKHR: *hasResult = false; *hasResultType = false; break;
2541     case OpCooperativeMatrixMulAddKHR: *hasResult = true; *hasResultType = true; break;
2542     case OpCooperativeMatrixLengthKHR: *hasResult = true; *hasResultType = true; break;
2543     case OpConstantCompositeReplicateEXT: *hasResult = true; *hasResultType = true; break;
2544     case OpSpecConstantCompositeReplicateEXT: *hasResult = true; *hasResultType = true; break;
2545     case OpCompositeConstructReplicateEXT: *hasResult = true; *hasResultType = true; break;
2546     case OpTypeRayQueryKHR: *hasResult = true; *hasResultType = false; break;
2547     case OpRayQueryInitializeKHR: *hasResult = false; *hasResultType = false; break;
2548     case OpRayQueryTerminateKHR: *hasResult = false; *hasResultType = false; break;
2549     case OpRayQueryGenerateIntersectionKHR: *hasResult = false; *hasResultType = false; break;
2550     case OpRayQueryConfirmIntersectionKHR: *hasResult = false; *hasResultType = false; break;
2551     case OpRayQueryProceedKHR: *hasResult = true; *hasResultType = true; break;
2552     case OpRayQueryGetIntersectionTypeKHR: *hasResult = true; *hasResultType = true; break;
2553     case OpImageSampleWeightedQCOM: *hasResult = true; *hasResultType = true; break;
2554     case OpImageBoxFilterQCOM: *hasResult = true; *hasResultType = true; break;
2555     case OpImageBlockMatchSSDQCOM: *hasResult = true; *hasResultType = true; break;
2556     case OpImageBlockMatchSADQCOM: *hasResult = true; *hasResultType = true; break;
2557     case OpImageBlockMatchWindowSSDQCOM: *hasResult = true; *hasResultType = true; break;
2558     case OpImageBlockMatchWindowSADQCOM: *hasResult = true; *hasResultType = true; break;
2559     case OpImageBlockMatchGatherSSDQCOM: *hasResult = true; *hasResultType = true; break;
2560     case OpImageBlockMatchGatherSADQCOM: *hasResult = true; *hasResultType = true; break;
2561     case OpGroupIAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
2562     case OpGroupFAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
2563     case OpGroupFMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
2564     case OpGroupUMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
2565     case OpGroupSMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
2566     case OpGroupFMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;
2567     case OpGroupUMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;
2568     case OpGroupSMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;
2569     case OpFragmentMaskFetchAMD: *hasResult = true; *hasResultType = true; break;
2570     case OpFragmentFetchAMD: *hasResult = true; *hasResultType = true; break;
2571     case OpReadClockKHR: *hasResult = true; *hasResultType = true; break;
2572     case OpFinalizeNodePayloadsAMDX: *hasResult = false; *hasResultType = false; break;
2573     case OpFinishWritingNodePayloadAMDX: *hasResult = true; *hasResultType = true; break;
2574     case OpInitializeNodePayloadsAMDX: *hasResult = false; *hasResultType = false; break;
2575     case OpGroupNonUniformQuadAllKHR: *hasResult = true; *hasResultType = true; break;
2576     case OpGroupNonUniformQuadAnyKHR: *hasResult = true; *hasResultType = true; break;
2577     case OpHitObjectRecordHitMotionNV: *hasResult = false; *hasResultType = false; break;
2578     case OpHitObjectRecordHitWithIndexMotionNV: *hasResult = false; *hasResultType = false; break;
2579     case OpHitObjectRecordMissMotionNV: *hasResult = false; *hasResultType = false; break;
2580     case OpHitObjectGetWorldToObjectNV: *hasResult = true; *hasResultType = true; break;
2581     case OpHitObjectGetObjectToWorldNV: *hasResult = true; *hasResultType = true; break;
2582     case OpHitObjectGetObjectRayDirectionNV: *hasResult = true; *hasResultType = true; break;
2583     case OpHitObjectGetObjectRayOriginNV: *hasResult = true; *hasResultType = true; break;
2584     case OpHitObjectTraceRayMotionNV: *hasResult = false; *hasResultType = false; break;
2585     case OpHitObjectGetShaderRecordBufferHandleNV: *hasResult = true; *hasResultType = true; break;
2586     case OpHitObjectGetShaderBindingTableRecordIndexNV: *hasResult = true; *hasResultType = true; break;
2587     case OpHitObjectRecordEmptyNV: *hasResult = false; *hasResultType = false; break;
2588     case OpHitObjectTraceRayNV: *hasResult = false; *hasResultType = false; break;
2589     case OpHitObjectRecordHitNV: *hasResult = false; *hasResultType = false; break;
2590     case OpHitObjectRecordHitWithIndexNV: *hasResult = false; *hasResultType = false; break;
2591     case OpHitObjectRecordMissNV: *hasResult = false; *hasResultType = false; break;
2592     case OpHitObjectExecuteShaderNV: *hasResult = false; *hasResultType = false; break;
2593     case OpHitObjectGetCurrentTimeNV: *hasResult = true; *hasResultType = true; break;
2594     case OpHitObjectGetAttributesNV: *hasResult = false; *hasResultType = false; break;
2595     case OpHitObjectGetHitKindNV: *hasResult = true; *hasResultType = true; break;
2596     case OpHitObjectGetPrimitiveIndexNV: *hasResult = true; *hasResultType = true; break;
2597     case OpHitObjectGetGeometryIndexNV: *hasResult = true; *hasResultType = true; break;
2598     case OpHitObjectGetInstanceIdNV: *hasResult = true; *hasResultType = true; break;
2599     case OpHitObjectGetInstanceCustomIndexNV: *hasResult = true; *hasResultType = true; break;
2600     case OpHitObjectGetWorldRayDirectionNV: *hasResult = true; *hasResultType = true; break;
2601     case OpHitObjectGetWorldRayOriginNV: *hasResult = true; *hasResultType = true; break;
2602     case OpHitObjectGetRayTMaxNV: *hasResult = true; *hasResultType = true; break;
2603     case OpHitObjectGetRayTMinNV: *hasResult = true; *hasResultType = true; break;
2604     case OpHitObjectIsEmptyNV: *hasResult = true; *hasResultType = true; break;
2605     case OpHitObjectIsHitNV: *hasResult = true; *hasResultType = true; break;
2606     case OpHitObjectIsMissNV: *hasResult = true; *hasResultType = true; break;
2607     case OpReorderThreadWithHitObjectNV: *hasResult = false; *hasResultType = false; break;
2608     case OpReorderThreadWithHintNV: *hasResult = false; *hasResultType = false; break;
2609     case OpTypeHitObjectNV: *hasResult = true; *hasResultType = false; break;
2610     case OpImageSampleFootprintNV: *hasResult = true; *hasResultType = true; break;
2611     case OpEmitMeshTasksEXT: *hasResult = false; *hasResultType = false; break;
2612     case OpSetMeshOutputsEXT: *hasResult = false; *hasResultType = false; break;
2613     case OpGroupNonUniformPartitionNV: *hasResult = true; *hasResultType = true; break;
2614     case OpWritePackedPrimitiveIndices4x8NV: *hasResult = false; *hasResultType = false; break;
2615     case OpFetchMicroTriangleVertexPositionNV: *hasResult = true; *hasResultType = true; break;
2616     case OpFetchMicroTriangleVertexBarycentricNV: *hasResult = true; *hasResultType = true; break;
2617     case OpReportIntersectionKHR: *hasResult = true; *hasResultType = true; break;
2618     case OpIgnoreIntersectionNV: *hasResult = false; *hasResultType = false; break;
2619     case OpTerminateRayNV: *hasResult = false; *hasResultType = false; break;
2620     case OpTraceNV: *hasResult = false; *hasResultType = false; break;
2621     case OpTraceMotionNV: *hasResult = false; *hasResultType = false; break;
2622     case OpTraceRayMotionNV: *hasResult = false; *hasResultType = false; break;
2623     case OpRayQueryGetIntersectionTriangleVertexPositionsKHR: *hasResult = true; *hasResultType = true; break;
2624     case OpTypeAccelerationStructureKHR: *hasResult = true; *hasResultType = false; break;
2625     case OpExecuteCallableNV: *hasResult = false; *hasResultType = false; break;
2626     case OpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break;
2627     case OpCooperativeMatrixLoadNV: *hasResult = true; *hasResultType = true; break;
2628     case OpCooperativeMatrixStoreNV: *hasResult = false; *hasResultType = false; break;
2629     case OpCooperativeMatrixMulAddNV: *hasResult = true; *hasResultType = true; break;
2630     case OpCooperativeMatrixLengthNV: *hasResult = true; *hasResultType = true; break;
2631     case OpBeginInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break;
2632     case OpEndInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break;
2633     case OpDemoteToHelperInvocation: *hasResult = false; *hasResultType = false; break;
2634     case OpIsHelperInvocationEXT: *hasResult = true; *hasResultType = true; break;
2635     case OpConvertUToImageNV: *hasResult = true; *hasResultType = true; break;
2636     case OpConvertUToSamplerNV: *hasResult = true; *hasResultType = true; break;
2637     case OpConvertImageToUNV: *hasResult = true; *hasResultType = true; break;
2638     case OpConvertSamplerToUNV: *hasResult = true; *hasResultType = true; break;
2639     case OpConvertUToSampledImageNV: *hasResult = true; *hasResultType = true; break;
2640     case OpConvertSampledImageToUNV: *hasResult = true; *hasResultType = true; break;
2641     case OpSamplerImageAddressingModeNV: *hasResult = false; *hasResultType = false; break;
2642     case OpRawAccessChainNV: *hasResult = true; *hasResultType = true; break;
2643     case OpSubgroupShuffleINTEL: *hasResult = true; *hasResultType = true; break;
2644     case OpSubgroupShuffleDownINTEL: *hasResult = true; *hasResultType = true; break;
2645     case OpSubgroupShuffleUpINTEL: *hasResult = true; *hasResultType = true; break;
2646     case OpSubgroupShuffleXorINTEL: *hasResult = true; *hasResultType = true; break;
2647     case OpSubgroupBlockReadINTEL: *hasResult = true; *hasResultType = true; break;
2648     case OpSubgroupBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;
2649     case OpSubgroupImageBlockReadINTEL: *hasResult = true; *hasResultType = true; break;
2650     case OpSubgroupImageBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;
2651     case OpSubgroupImageMediaBlockReadINTEL: *hasResult = true; *hasResultType = true; break;
2652     case OpSubgroupImageMediaBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;
2653     case OpUCountLeadingZerosINTEL: *hasResult = true; *hasResultType = true; break;
2654     case OpUCountTrailingZerosINTEL: *hasResult = true; *hasResultType = true; break;
2655     case OpAbsISubINTEL: *hasResult = true; *hasResultType = true; break;
2656     case OpAbsUSubINTEL: *hasResult = true; *hasResultType = true; break;
2657     case OpIAddSatINTEL: *hasResult = true; *hasResultType = true; break;
2658     case OpUAddSatINTEL: *hasResult = true; *hasResultType = true; break;
2659     case OpIAverageINTEL: *hasResult = true; *hasResultType = true; break;
2660     case OpUAverageINTEL: *hasResult = true; *hasResultType = true; break;
2661     case OpIAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break;
2662     case OpUAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break;
2663     case OpISubSatINTEL: *hasResult = true; *hasResultType = true; break;
2664     case OpUSubSatINTEL: *hasResult = true; *hasResultType = true; break;
2665     case OpIMul32x16INTEL: *hasResult = true; *hasResultType = true; break;
2666     case OpUMul32x16INTEL: *hasResult = true; *hasResultType = true; break;
2667     case OpConstantFunctionPointerINTEL: *hasResult = true; *hasResultType = true; break;
2668     case OpFunctionPointerCallINTEL: *hasResult = true; *hasResultType = true; break;
2669     case OpAsmTargetINTEL: *hasResult = true; *hasResultType = true; break;
2670     case OpAsmINTEL: *hasResult = true; *hasResultType = true; break;
2671     case OpAsmCallINTEL: *hasResult = true; *hasResultType = true; break;
2672     case OpAtomicFMinEXT: *hasResult = true; *hasResultType = true; break;
2673     case OpAtomicFMaxEXT: *hasResult = true; *hasResultType = true; break;
2674     case OpAssumeTrueKHR: *hasResult = false; *hasResultType = false; break;
2675     case OpExpectKHR: *hasResult = true; *hasResultType = true; break;
2676     case OpDecorateString: *hasResult = false; *hasResultType = false; break;
2677     case OpMemberDecorateString: *hasResult = false; *hasResultType = false; break;
2678     case OpVmeImageINTEL: *hasResult = true; *hasResultType = true; break;
2679     case OpTypeVmeImageINTEL: *hasResult = true; *hasResultType = false; break;
2680     case OpTypeAvcImePayloadINTEL: *hasResult = true; *hasResultType = false; break;
2681     case OpTypeAvcRefPayloadINTEL: *hasResult = true; *hasResultType = false; break;
2682     case OpTypeAvcSicPayloadINTEL: *hasResult = true; *hasResultType = false; break;
2683     case OpTypeAvcMcePayloadINTEL: *hasResult = true; *hasResultType = false; break;
2684     case OpTypeAvcMceResultINTEL: *hasResult = true; *hasResultType = false; break;
2685     case OpTypeAvcImeResultINTEL: *hasResult = true; *hasResultType = false; break;
2686     case OpTypeAvcImeResultSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = false; break;
2687     case OpTypeAvcImeResultDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = false; break;
2688     case OpTypeAvcImeSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = false; break;
2689     case OpTypeAvcImeDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = false; break;
2690     case OpTypeAvcRefResultINTEL: *hasResult = true; *hasResultType = false; break;
2691     case OpTypeAvcSicResultINTEL: *hasResult = true; *hasResultType = false; break;
2692     case OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2693     case OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2694     case OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2695     case OpSubgroupAvcMceSetInterShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2696     case OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2697     case OpSubgroupAvcMceSetInterDirectionPenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2698     case OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2699     case OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL: *hasResult = true; *hasResultType = true; break;
2700     case OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;
2701     case OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;
2702     case OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;
2703     case OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;
2704     case OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2705     case OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2706     case OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2707     case OpSubgroupAvcMceSetAcOnlyHaarINTEL: *hasResult = true; *hasResultType = true; break;
2708     case OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL: *hasResult = true; *hasResultType = true; break;
2709     case OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL: *hasResult = true; *hasResultType = true; break;
2710     case OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL: *hasResult = true; *hasResultType = true; break;
2711     case OpSubgroupAvcMceConvertToImePayloadINTEL: *hasResult = true; *hasResultType = true; break;
2712     case OpSubgroupAvcMceConvertToImeResultINTEL: *hasResult = true; *hasResultType = true; break;
2713     case OpSubgroupAvcMceConvertToRefPayloadINTEL: *hasResult = true; *hasResultType = true; break;
2714     case OpSubgroupAvcMceConvertToRefResultINTEL: *hasResult = true; *hasResultType = true; break;
2715     case OpSubgroupAvcMceConvertToSicPayloadINTEL: *hasResult = true; *hasResultType = true; break;
2716     case OpSubgroupAvcMceConvertToSicResultINTEL: *hasResult = true; *hasResultType = true; break;
2717     case OpSubgroupAvcMceGetMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;
2718     case OpSubgroupAvcMceGetInterDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
2719     case OpSubgroupAvcMceGetBestInterDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
2720     case OpSubgroupAvcMceGetInterMajorShapeINTEL: *hasResult = true; *hasResultType = true; break;
2721     case OpSubgroupAvcMceGetInterMinorShapeINTEL: *hasResult = true; *hasResultType = true; break;
2722     case OpSubgroupAvcMceGetInterDirectionsINTEL: *hasResult = true; *hasResultType = true; break;
2723     case OpSubgroupAvcMceGetInterMotionVectorCountINTEL: *hasResult = true; *hasResultType = true; break;
2724     case OpSubgroupAvcMceGetInterReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;
2725     case OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL: *hasResult = true; *hasResultType = true; break;
2726     case OpSubgroupAvcImeInitializeINTEL: *hasResult = true; *hasResultType = true; break;
2727     case OpSubgroupAvcImeSetSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
2728     case OpSubgroupAvcImeSetDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
2729     case OpSubgroupAvcImeRefWindowSizeINTEL: *hasResult = true; *hasResultType = true; break;
2730     case OpSubgroupAvcImeAdjustRefOffsetINTEL: *hasResult = true; *hasResultType = true; break;
2731     case OpSubgroupAvcImeConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;
2732     case OpSubgroupAvcImeSetMaxMotionVectorCountINTEL: *hasResult = true; *hasResultType = true; break;
2733     case OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL: *hasResult = true; *hasResultType = true; break;
2734     case OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL: *hasResult = true; *hasResultType = true; break;
2735     case OpSubgroupAvcImeSetWeightedSadINTEL: *hasResult = true; *hasResultType = true; break;
2736     case OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
2737     case OpSubgroupAvcImeEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
2738     case OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
2739     case OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
2740     case OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
2741     case OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
2742     case OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL: *hasResult = true; *hasResultType = true; break;
2743     case OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL: *hasResult = true; *hasResultType = true; break;
2744     case OpSubgroupAvcImeConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;
2745     case OpSubgroupAvcImeGetSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
2746     case OpSubgroupAvcImeGetDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
2747     case OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
2748     case OpSubgroupAvcImeStripDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
2749     case OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;
2750     case OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
2751     case OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;
2752     case OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;
2753     case OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
2754     case OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;
2755     case OpSubgroupAvcImeGetBorderReachedINTEL: *hasResult = true; *hasResultType = true; break;
2756     case OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL: *hasResult = true; *hasResultType = true; break;
2757     case OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL: *hasResult = true; *hasResultType = true; break;
2758     case OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL: *hasResult = true; *hasResultType = true; break;
2759     case OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL: *hasResult = true; *hasResultType = true; break;
2760     case OpSubgroupAvcFmeInitializeINTEL: *hasResult = true; *hasResultType = true; break;
2761     case OpSubgroupAvcBmeInitializeINTEL: *hasResult = true; *hasResultType = true; break;
2762     case OpSubgroupAvcRefConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;
2763     case OpSubgroupAvcRefSetBidirectionalMixDisableINTEL: *hasResult = true; *hasResultType = true; break;
2764     case OpSubgroupAvcRefSetBilinearFilterEnableINTEL: *hasResult = true; *hasResultType = true; break;
2765     case OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
2766     case OpSubgroupAvcRefEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
2767     case OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL: *hasResult = true; *hasResultType = true; break;
2768     case OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL: *hasResult = true; *hasResultType = true; break;
2769     case OpSubgroupAvcRefConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;
2770     case OpSubgroupAvcSicInitializeINTEL: *hasResult = true; *hasResultType = true; break;
2771     case OpSubgroupAvcSicConfigureSkcINTEL: *hasResult = true; *hasResultType = true; break;
2772     case OpSubgroupAvcSicConfigureIpeLumaINTEL: *hasResult = true; *hasResultType = true; break;
2773     case OpSubgroupAvcSicConfigureIpeLumaChromaINTEL: *hasResult = true; *hasResultType = true; break;
2774     case OpSubgroupAvcSicGetMotionVectorMaskINTEL: *hasResult = true; *hasResultType = true; break;
2775     case OpSubgroupAvcSicConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;
2776     case OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
2777     case OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;
2778     case OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;
2779     case OpSubgroupAvcSicSetBilinearFilterEnableINTEL: *hasResult = true; *hasResultType = true; break;
2780     case OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL: *hasResult = true; *hasResultType = true; break;
2781     case OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL: *hasResult = true; *hasResultType = true; break;
2782     case OpSubgroupAvcSicEvaluateIpeINTEL: *hasResult = true; *hasResultType = true; break;
2783     case OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
2784     case OpSubgroupAvcSicEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
2785     case OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL: *hasResult = true; *hasResultType = true; break;
2786     case OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL: *hasResult = true; *hasResultType = true; break;
2787     case OpSubgroupAvcSicConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;
2788     case OpSubgroupAvcSicGetIpeLumaShapeINTEL: *hasResult = true; *hasResultType = true; break;
2789     case OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL: *hasResult = true; *hasResultType = true; break;
2790     case OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL: *hasResult = true; *hasResultType = true; break;
2791     case OpSubgroupAvcSicGetPackedIpeLumaModesINTEL: *hasResult = true; *hasResultType = true; break;
2792     case OpSubgroupAvcSicGetIpeChromaModeINTEL: *hasResult = true; *hasResultType = true; break;
2793     case OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL: *hasResult = true; *hasResultType = true; break;
2794     case OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL: *hasResult = true; *hasResultType = true; break;
2795     case OpSubgroupAvcSicGetInterRawSadsINTEL: *hasResult = true; *hasResultType = true; break;
2796     case OpVariableLengthArrayINTEL: *hasResult = true; *hasResultType = true; break;
2797     case OpSaveMemoryINTEL: *hasResult = true; *hasResultType = true; break;
2798     case OpRestoreMemoryINTEL: *hasResult = false; *hasResultType = false; break;
2799     case OpArbitraryFloatSinCosPiINTEL: *hasResult = true; *hasResultType = true; break;
2800     case OpArbitraryFloatCastINTEL: *hasResult = true; *hasResultType = true; break;
2801     case OpArbitraryFloatCastFromIntINTEL: *hasResult = true; *hasResultType = true; break;
2802     case OpArbitraryFloatCastToIntINTEL: *hasResult = true; *hasResultType = true; break;
2803     case OpArbitraryFloatAddINTEL: *hasResult = true; *hasResultType = true; break;
2804     case OpArbitraryFloatSubINTEL: *hasResult = true; *hasResultType = true; break;
2805     case OpArbitraryFloatMulINTEL: *hasResult = true; *hasResultType = true; break;
2806     case OpArbitraryFloatDivINTEL: *hasResult = true; *hasResultType = true; break;
2807     case OpArbitraryFloatGTINTEL: *hasResult = true; *hasResultType = true; break;
2808     case OpArbitraryFloatGEINTEL: *hasResult = true; *hasResultType = true; break;
2809     case OpArbitraryFloatLTINTEL: *hasResult = true; *hasResultType = true; break;
2810     case OpArbitraryFloatLEINTEL: *hasResult = true; *hasResultType = true; break;
2811     case OpArbitraryFloatEQINTEL: *hasResult = true; *hasResultType = true; break;
2812     case OpArbitraryFloatRecipINTEL: *hasResult = true; *hasResultType = true; break;
2813     case OpArbitraryFloatRSqrtINTEL: *hasResult = true; *hasResultType = true; break;
2814     case OpArbitraryFloatCbrtINTEL: *hasResult = true; *hasResultType = true; break;
2815     case OpArbitraryFloatHypotINTEL: *hasResult = true; *hasResultType = true; break;
2816     case OpArbitraryFloatSqrtINTEL: *hasResult = true; *hasResultType = true; break;
2817     case OpArbitraryFloatLogINTEL: *hasResult = true; *hasResultType = true; break;
2818     case OpArbitraryFloatLog2INTEL: *hasResult = true; *hasResultType = true; break;
2819     case OpArbitraryFloatLog10INTEL: *hasResult = true; *hasResultType = true; break;
2820     case OpArbitraryFloatLog1pINTEL: *hasResult = true; *hasResultType = true; break;
2821     case OpArbitraryFloatExpINTEL: *hasResult = true; *hasResultType = true; break;
2822     case OpArbitraryFloatExp2INTEL: *hasResult = true; *hasResultType = true; break;
2823     case OpArbitraryFloatExp10INTEL: *hasResult = true; *hasResultType = true; break;
2824     case OpArbitraryFloatExpm1INTEL: *hasResult = true; *hasResultType = true; break;
2825     case OpArbitraryFloatSinINTEL: *hasResult = true; *hasResultType = true; break;
2826     case OpArbitraryFloatCosINTEL: *hasResult = true; *hasResultType = true; break;
2827     case OpArbitraryFloatSinCosINTEL: *hasResult = true; *hasResultType = true; break;
2828     case OpArbitraryFloatSinPiINTEL: *hasResult = true; *hasResultType = true; break;
2829     case OpArbitraryFloatCosPiINTEL: *hasResult = true; *hasResultType = true; break;
2830     case OpArbitraryFloatASinINTEL: *hasResult = true; *hasResultType = true; break;
2831     case OpArbitraryFloatASinPiINTEL: *hasResult = true; *hasResultType = true; break;
2832     case OpArbitraryFloatACosINTEL: *hasResult = true; *hasResultType = true; break;
2833     case OpArbitraryFloatACosPiINTEL: *hasResult = true; *hasResultType = true; break;
2834     case OpArbitraryFloatATanINTEL: *hasResult = true; *hasResultType = true; break;
2835     case OpArbitraryFloatATanPiINTEL: *hasResult = true; *hasResultType = true; break;
2836     case OpArbitraryFloatATan2INTEL: *hasResult = true; *hasResultType = true; break;
2837     case OpArbitraryFloatPowINTEL: *hasResult = true; *hasResultType = true; break;
2838     case OpArbitraryFloatPowRINTEL: *hasResult = true; *hasResultType = true; break;
2839     case OpArbitraryFloatPowNINTEL: *hasResult = true; *hasResultType = true; break;
2840     case OpLoopControlINTEL: *hasResult = false; *hasResultType = false; break;
2841     case OpAliasDomainDeclINTEL: *hasResult = true; *hasResultType = false; break;
2842     case OpAliasScopeDeclINTEL: *hasResult = true; *hasResultType = false; break;
2843     case OpAliasScopeListDeclINTEL: *hasResult = true; *hasResultType = false; break;
2844     case OpFixedSqrtINTEL: *hasResult = true; *hasResultType = true; break;
2845     case OpFixedRecipINTEL: *hasResult = true; *hasResultType = true; break;
2846     case OpFixedRsqrtINTEL: *hasResult = true; *hasResultType = true; break;
2847     case OpFixedSinINTEL: *hasResult = true; *hasResultType = true; break;
2848     case OpFixedCosINTEL: *hasResult = true; *hasResultType = true; break;
2849     case OpFixedSinCosINTEL: *hasResult = true; *hasResultType = true; break;
2850     case OpFixedSinPiINTEL: *hasResult = true; *hasResultType = true; break;
2851     case OpFixedCosPiINTEL: *hasResult = true; *hasResultType = true; break;
2852     case OpFixedSinCosPiINTEL: *hasResult = true; *hasResultType = true; break;
2853     case OpFixedLogINTEL: *hasResult = true; *hasResultType = true; break;
2854     case OpFixedExpINTEL: *hasResult = true; *hasResultType = true; break;
2855     case OpPtrCastToCrossWorkgroupINTEL: *hasResult = true; *hasResultType = true; break;
2856     case OpCrossWorkgroupCastToPtrINTEL: *hasResult = true; *hasResultType = true; break;
2857     case OpReadPipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;
2858     case OpWritePipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;
2859     case OpFPGARegINTEL: *hasResult = true; *hasResultType = true; break;
2860     case OpRayQueryGetRayTMinKHR: *hasResult = true; *hasResultType = true; break;
2861     case OpRayQueryGetRayFlagsKHR: *hasResult = true; *hasResultType = true; break;
2862     case OpRayQueryGetIntersectionTKHR: *hasResult = true; *hasResultType = true; break;
2863     case OpRayQueryGetIntersectionInstanceCustomIndexKHR: *hasResult = true; *hasResultType = true; break;
2864     case OpRayQueryGetIntersectionInstanceIdKHR: *hasResult = true; *hasResultType = true; break;
2865     case OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR: *hasResult = true; *hasResultType = true; break;
2866     case OpRayQueryGetIntersectionGeometryIndexKHR: *hasResult = true; *hasResultType = true; break;
2867     case OpRayQueryGetIntersectionPrimitiveIndexKHR: *hasResult = true; *hasResultType = true; break;
2868     case OpRayQueryGetIntersectionBarycentricsKHR: *hasResult = true; *hasResultType = true; break;
2869     case OpRayQueryGetIntersectionFrontFaceKHR: *hasResult = true; *hasResultType = true; break;
2870     case OpRayQueryGetIntersectionCandidateAABBOpaqueKHR: *hasResult = true; *hasResultType = true; break;
2871     case OpRayQueryGetIntersectionObjectRayDirectionKHR: *hasResult = true; *hasResultType = true; break;
2872     case OpRayQueryGetIntersectionObjectRayOriginKHR: *hasResult = true; *hasResultType = true; break;
2873     case OpRayQueryGetWorldRayDirectionKHR: *hasResult = true; *hasResultType = true; break;
2874     case OpRayQueryGetWorldRayOriginKHR: *hasResult = true; *hasResultType = true; break;
2875     case OpRayQueryGetIntersectionObjectToWorldKHR: *hasResult = true; *hasResultType = true; break;
2876     case OpRayQueryGetIntersectionWorldToObjectKHR: *hasResult = true; *hasResultType = true; break;
2877     case OpAtomicFAddEXT: *hasResult = true; *hasResultType = true; break;
2878     case OpTypeBufferSurfaceINTEL: *hasResult = true; *hasResultType = false; break;
2879     case OpTypeStructContinuedINTEL: *hasResult = false; *hasResultType = false; break;
2880     case OpConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
2881     case OpSpecConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
2882     case OpCompositeConstructContinuedINTEL: *hasResult = true; *hasResultType = true; break;
2883     case OpConvertFToBF16INTEL: *hasResult = true; *hasResultType = true; break;
2884     case OpConvertBF16ToFINTEL: *hasResult = true; *hasResultType = true; break;
2885     case OpControlBarrierArriveINTEL: *hasResult = false; *hasResultType = false; break;
2886     case OpControlBarrierWaitINTEL: *hasResult = false; *hasResultType = false; break;
2887     case OpGroupIMulKHR: *hasResult = true; *hasResultType = true; break;
2888     case OpGroupFMulKHR: *hasResult = true; *hasResultType = true; break;
2889     case OpGroupBitwiseAndKHR: *hasResult = true; *hasResultType = true; break;
2890     case OpGroupBitwiseOrKHR: *hasResult = true; *hasResultType = true; break;
2891     case OpGroupBitwiseXorKHR: *hasResult = true; *hasResultType = true; break;
2892     case OpGroupLogicalAndKHR: *hasResult = true; *hasResultType = true; break;
2893     case OpGroupLogicalOrKHR: *hasResult = true; *hasResultType = true; break;
2894     case OpGroupLogicalXorKHR: *hasResult = true; *hasResultType = true; break;
2895     case OpMaskedGatherINTEL: *hasResult = true; *hasResultType = true; break;
2896     case OpMaskedScatterINTEL: *hasResult = false; *hasResultType = false; break;
2897     }
2898 }
SourceLanguageToString(SourceLanguage value)2899 inline const char* SourceLanguageToString(SourceLanguage value) {
2900     switch (value) {
2901     case SourceLanguageUnknown: return "Unknown";
2902     case SourceLanguageESSL: return "ESSL";
2903     case SourceLanguageGLSL: return "GLSL";
2904     case SourceLanguageOpenCL_C: return "OpenCL_C";
2905     case SourceLanguageOpenCL_CPP: return "OpenCL_CPP";
2906     case SourceLanguageHLSL: return "HLSL";
2907     case SourceLanguageCPP_for_OpenCL: return "CPP_for_OpenCL";
2908     case SourceLanguageSYCL: return "SYCL";
2909     case SourceLanguageHERO_C: return "HERO_C";
2910     case SourceLanguageNZSL: return "NZSL";
2911     case SourceLanguageWGSL: return "WGSL";
2912     case SourceLanguageSlang: return "Slang";
2913     case SourceLanguageZig: return "Zig";
2914     default: return "Unknown";
2915     }
2916 }
2917 
ExecutionModelToString(ExecutionModel value)2918 inline const char* ExecutionModelToString(ExecutionModel value) {
2919     switch (value) {
2920     case ExecutionModelVertex: return "Vertex";
2921     case ExecutionModelTessellationControl: return "TessellationControl";
2922     case ExecutionModelTessellationEvaluation: return "TessellationEvaluation";
2923     case ExecutionModelGeometry: return "Geometry";
2924     case ExecutionModelFragment: return "Fragment";
2925     case ExecutionModelGLCompute: return "GLCompute";
2926     case ExecutionModelKernel: return "Kernel";
2927     case ExecutionModelTaskNV: return "TaskNV";
2928     case ExecutionModelMeshNV: return "MeshNV";
2929     case ExecutionModelRayGenerationKHR: return "RayGenerationKHR";
2930     case ExecutionModelIntersectionKHR: return "IntersectionKHR";
2931     case ExecutionModelAnyHitKHR: return "AnyHitKHR";
2932     case ExecutionModelClosestHitKHR: return "ClosestHitKHR";
2933     case ExecutionModelMissKHR: return "MissKHR";
2934     case ExecutionModelCallableKHR: return "CallableKHR";
2935     case ExecutionModelTaskEXT: return "TaskEXT";
2936     case ExecutionModelMeshEXT: return "MeshEXT";
2937     default: return "Unknown";
2938     }
2939 }
2940 
AddressingModelToString(AddressingModel value)2941 inline const char* AddressingModelToString(AddressingModel value) {
2942     switch (value) {
2943     case AddressingModelLogical: return "Logical";
2944     case AddressingModelPhysical32: return "Physical32";
2945     case AddressingModelPhysical64: return "Physical64";
2946     case AddressingModelPhysicalStorageBuffer64: return "PhysicalStorageBuffer64";
2947     default: return "Unknown";
2948     }
2949 }
2950 
MemoryModelToString(MemoryModel value)2951 inline const char* MemoryModelToString(MemoryModel value) {
2952     switch (value) {
2953     case MemoryModelSimple: return "Simple";
2954     case MemoryModelGLSL450: return "GLSL450";
2955     case MemoryModelOpenCL: return "OpenCL";
2956     case MemoryModelVulkan: return "Vulkan";
2957     default: return "Unknown";
2958     }
2959 }
2960 
ExecutionModeToString(ExecutionMode value)2961 inline const char* ExecutionModeToString(ExecutionMode value) {
2962     switch (value) {
2963     case ExecutionModeInvocations: return "Invocations";
2964     case ExecutionModeSpacingEqual: return "SpacingEqual";
2965     case ExecutionModeSpacingFractionalEven: return "SpacingFractionalEven";
2966     case ExecutionModeSpacingFractionalOdd: return "SpacingFractionalOdd";
2967     case ExecutionModeVertexOrderCw: return "VertexOrderCw";
2968     case ExecutionModeVertexOrderCcw: return "VertexOrderCcw";
2969     case ExecutionModePixelCenterInteger: return "PixelCenterInteger";
2970     case ExecutionModeOriginUpperLeft: return "OriginUpperLeft";
2971     case ExecutionModeOriginLowerLeft: return "OriginLowerLeft";
2972     case ExecutionModeEarlyFragmentTests: return "EarlyFragmentTests";
2973     case ExecutionModePointMode: return "PointMode";
2974     case ExecutionModeXfb: return "Xfb";
2975     case ExecutionModeDepthReplacing: return "DepthReplacing";
2976     case ExecutionModeDepthGreater: return "DepthGreater";
2977     case ExecutionModeDepthLess: return "DepthLess";
2978     case ExecutionModeDepthUnchanged: return "DepthUnchanged";
2979     case ExecutionModeLocalSize: return "LocalSize";
2980     case ExecutionModeLocalSizeHint: return "LocalSizeHint";
2981     case ExecutionModeInputPoints: return "InputPoints";
2982     case ExecutionModeInputLines: return "InputLines";
2983     case ExecutionModeInputLinesAdjacency: return "InputLinesAdjacency";
2984     case ExecutionModeTriangles: return "Triangles";
2985     case ExecutionModeInputTrianglesAdjacency: return "InputTrianglesAdjacency";
2986     case ExecutionModeQuads: return "Quads";
2987     case ExecutionModeIsolines: return "Isolines";
2988     case ExecutionModeOutputVertices: return "OutputVertices";
2989     case ExecutionModeOutputPoints: return "OutputPoints";
2990     case ExecutionModeOutputLineStrip: return "OutputLineStrip";
2991     case ExecutionModeOutputTriangleStrip: return "OutputTriangleStrip";
2992     case ExecutionModeVecTypeHint: return "VecTypeHint";
2993     case ExecutionModeContractionOff: return "ContractionOff";
2994     case ExecutionModeInitializer: return "Initializer";
2995     case ExecutionModeFinalizer: return "Finalizer";
2996     case ExecutionModeSubgroupSize: return "SubgroupSize";
2997     case ExecutionModeSubgroupsPerWorkgroup: return "SubgroupsPerWorkgroup";
2998     case ExecutionModeSubgroupsPerWorkgroupId: return "SubgroupsPerWorkgroupId";
2999     case ExecutionModeLocalSizeId: return "LocalSizeId";
3000     case ExecutionModeLocalSizeHintId: return "LocalSizeHintId";
3001     case ExecutionModeNonCoherentColorAttachmentReadEXT: return "NonCoherentColorAttachmentReadEXT";
3002     case ExecutionModeNonCoherentDepthAttachmentReadEXT: return "NonCoherentDepthAttachmentReadEXT";
3003     case ExecutionModeNonCoherentStencilAttachmentReadEXT: return "NonCoherentStencilAttachmentReadEXT";
3004     case ExecutionModeSubgroupUniformControlFlowKHR: return "SubgroupUniformControlFlowKHR";
3005     case ExecutionModePostDepthCoverage: return "PostDepthCoverage";
3006     case ExecutionModeDenormPreserve: return "DenormPreserve";
3007     case ExecutionModeDenormFlushToZero: return "DenormFlushToZero";
3008     case ExecutionModeSignedZeroInfNanPreserve: return "SignedZeroInfNanPreserve";
3009     case ExecutionModeRoundingModeRTE: return "RoundingModeRTE";
3010     case ExecutionModeRoundingModeRTZ: return "RoundingModeRTZ";
3011     case ExecutionModeEarlyAndLateFragmentTestsAMD: return "EarlyAndLateFragmentTestsAMD";
3012     case ExecutionModeStencilRefReplacingEXT: return "StencilRefReplacingEXT";
3013     case ExecutionModeCoalescingAMDX: return "CoalescingAMDX";
3014     case ExecutionModeMaxNodeRecursionAMDX: return "MaxNodeRecursionAMDX";
3015     case ExecutionModeStaticNumWorkgroupsAMDX: return "StaticNumWorkgroupsAMDX";
3016     case ExecutionModeShaderIndexAMDX: return "ShaderIndexAMDX";
3017     case ExecutionModeMaxNumWorkgroupsAMDX: return "MaxNumWorkgroupsAMDX";
3018     case ExecutionModeStencilRefUnchangedFrontAMD: return "StencilRefUnchangedFrontAMD";
3019     case ExecutionModeStencilRefGreaterFrontAMD: return "StencilRefGreaterFrontAMD";
3020     case ExecutionModeStencilRefLessFrontAMD: return "StencilRefLessFrontAMD";
3021     case ExecutionModeStencilRefUnchangedBackAMD: return "StencilRefUnchangedBackAMD";
3022     case ExecutionModeStencilRefGreaterBackAMD: return "StencilRefGreaterBackAMD";
3023     case ExecutionModeStencilRefLessBackAMD: return "StencilRefLessBackAMD";
3024     case ExecutionModeQuadDerivativesKHR: return "QuadDerivativesKHR";
3025     case ExecutionModeRequireFullQuadsKHR: return "RequireFullQuadsKHR";
3026     case ExecutionModeOutputLinesEXT: return "OutputLinesEXT";
3027     case ExecutionModeOutputPrimitivesEXT: return "OutputPrimitivesEXT";
3028     case ExecutionModeDerivativeGroupQuadsNV: return "DerivativeGroupQuadsNV";
3029     case ExecutionModeDerivativeGroupLinearNV: return "DerivativeGroupLinearNV";
3030     case ExecutionModeOutputTrianglesEXT: return "OutputTrianglesEXT";
3031     case ExecutionModePixelInterlockOrderedEXT: return "PixelInterlockOrderedEXT";
3032     case ExecutionModePixelInterlockUnorderedEXT: return "PixelInterlockUnorderedEXT";
3033     case ExecutionModeSampleInterlockOrderedEXT: return "SampleInterlockOrderedEXT";
3034     case ExecutionModeSampleInterlockUnorderedEXT: return "SampleInterlockUnorderedEXT";
3035     case ExecutionModeShadingRateInterlockOrderedEXT: return "ShadingRateInterlockOrderedEXT";
3036     case ExecutionModeShadingRateInterlockUnorderedEXT: return "ShadingRateInterlockUnorderedEXT";
3037     case ExecutionModeSharedLocalMemorySizeINTEL: return "SharedLocalMemorySizeINTEL";
3038     case ExecutionModeRoundingModeRTPINTEL: return "RoundingModeRTPINTEL";
3039     case ExecutionModeRoundingModeRTNINTEL: return "RoundingModeRTNINTEL";
3040     case ExecutionModeFloatingPointModeALTINTEL: return "FloatingPointModeALTINTEL";
3041     case ExecutionModeFloatingPointModeIEEEINTEL: return "FloatingPointModeIEEEINTEL";
3042     case ExecutionModeMaxWorkgroupSizeINTEL: return "MaxWorkgroupSizeINTEL";
3043     case ExecutionModeMaxWorkDimINTEL: return "MaxWorkDimINTEL";
3044     case ExecutionModeNoGlobalOffsetINTEL: return "NoGlobalOffsetINTEL";
3045     case ExecutionModeNumSIMDWorkitemsINTEL: return "NumSIMDWorkitemsINTEL";
3046     case ExecutionModeSchedulerTargetFmaxMhzINTEL: return "SchedulerTargetFmaxMhzINTEL";
3047     case ExecutionModeMaximallyReconvergesKHR: return "MaximallyReconvergesKHR";
3048     case ExecutionModeFPFastMathDefault: return "FPFastMathDefault";
3049     case ExecutionModeStreamingInterfaceINTEL: return "StreamingInterfaceINTEL";
3050     case ExecutionModeRegisterMapInterfaceINTEL: return "RegisterMapInterfaceINTEL";
3051     case ExecutionModeNamedBarrierCountINTEL: return "NamedBarrierCountINTEL";
3052     case ExecutionModeMaximumRegistersINTEL: return "MaximumRegistersINTEL";
3053     case ExecutionModeMaximumRegistersIdINTEL: return "MaximumRegistersIdINTEL";
3054     case ExecutionModeNamedMaximumRegistersINTEL: return "NamedMaximumRegistersINTEL";
3055     default: return "Unknown";
3056     }
3057 }
3058 
StorageClassToString(StorageClass value)3059 inline const char* StorageClassToString(StorageClass value) {
3060     switch (value) {
3061     case StorageClassUniformConstant: return "UniformConstant";
3062     case StorageClassInput: return "Input";
3063     case StorageClassUniform: return "Uniform";
3064     case StorageClassOutput: return "Output";
3065     case StorageClassWorkgroup: return "Workgroup";
3066     case StorageClassCrossWorkgroup: return "CrossWorkgroup";
3067     case StorageClassPrivate: return "Private";
3068     case StorageClassFunction: return "Function";
3069     case StorageClassGeneric: return "Generic";
3070     case StorageClassPushConstant: return "PushConstant";
3071     case StorageClassAtomicCounter: return "AtomicCounter";
3072     case StorageClassImage: return "Image";
3073     case StorageClassStorageBuffer: return "StorageBuffer";
3074     case StorageClassTileImageEXT: return "TileImageEXT";
3075     case StorageClassNodePayloadAMDX: return "NodePayloadAMDX";
3076     case StorageClassNodeOutputPayloadAMDX: return "NodeOutputPayloadAMDX";
3077     case StorageClassCallableDataKHR: return "CallableDataKHR";
3078     case StorageClassIncomingCallableDataKHR: return "IncomingCallableDataKHR";
3079     case StorageClassRayPayloadKHR: return "RayPayloadKHR";
3080     case StorageClassHitAttributeKHR: return "HitAttributeKHR";
3081     case StorageClassIncomingRayPayloadKHR: return "IncomingRayPayloadKHR";
3082     case StorageClassShaderRecordBufferKHR: return "ShaderRecordBufferKHR";
3083     case StorageClassPhysicalStorageBuffer: return "PhysicalStorageBuffer";
3084     case StorageClassHitObjectAttributeNV: return "HitObjectAttributeNV";
3085     case StorageClassTaskPayloadWorkgroupEXT: return "TaskPayloadWorkgroupEXT";
3086     case StorageClassCodeSectionINTEL: return "CodeSectionINTEL";
3087     case StorageClassDeviceOnlyINTEL: return "DeviceOnlyINTEL";
3088     case StorageClassHostOnlyINTEL: return "HostOnlyINTEL";
3089     default: return "Unknown";
3090     }
3091 }
3092 
DimToString(Dim value)3093 inline const char* DimToString(Dim value) {
3094     switch (value) {
3095     case Dim1D: return "1D";
3096     case Dim2D: return "2D";
3097     case Dim3D: return "3D";
3098     case DimCube: return "Cube";
3099     case DimRect: return "Rect";
3100     case DimBuffer: return "Buffer";
3101     case DimSubpassData: return "SubpassData";
3102     case DimTileImageDataEXT: return "TileImageDataEXT";
3103     default: return "Unknown";
3104     }
3105 }
3106 
SamplerAddressingModeToString(SamplerAddressingMode value)3107 inline const char* SamplerAddressingModeToString(SamplerAddressingMode value) {
3108     switch (value) {
3109     case SamplerAddressingModeNone: return "None";
3110     case SamplerAddressingModeClampToEdge: return "ClampToEdge";
3111     case SamplerAddressingModeClamp: return "Clamp";
3112     case SamplerAddressingModeRepeat: return "Repeat";
3113     case SamplerAddressingModeRepeatMirrored: return "RepeatMirrored";
3114     default: return "Unknown";
3115     }
3116 }
3117 
SamplerFilterModeToString(SamplerFilterMode value)3118 inline const char* SamplerFilterModeToString(SamplerFilterMode value) {
3119     switch (value) {
3120     case SamplerFilterModeNearest: return "Nearest";
3121     case SamplerFilterModeLinear: return "Linear";
3122     default: return "Unknown";
3123     }
3124 }
3125 
ImageFormatToString(ImageFormat value)3126 inline const char* ImageFormatToString(ImageFormat value) {
3127     switch (value) {
3128     case ImageFormatUnknown: return "Unknown";
3129     case ImageFormatRgba32f: return "Rgba32f";
3130     case ImageFormatRgba16f: return "Rgba16f";
3131     case ImageFormatR32f: return "R32f";
3132     case ImageFormatRgba8: return "Rgba8";
3133     case ImageFormatRgba8Snorm: return "Rgba8Snorm";
3134     case ImageFormatRg32f: return "Rg32f";
3135     case ImageFormatRg16f: return "Rg16f";
3136     case ImageFormatR11fG11fB10f: return "R11fG11fB10f";
3137     case ImageFormatR16f: return "R16f";
3138     case ImageFormatRgba16: return "Rgba16";
3139     case ImageFormatRgb10A2: return "Rgb10A2";
3140     case ImageFormatRg16: return "Rg16";
3141     case ImageFormatRg8: return "Rg8";
3142     case ImageFormatR16: return "R16";
3143     case ImageFormatR8: return "R8";
3144     case ImageFormatRgba16Snorm: return "Rgba16Snorm";
3145     case ImageFormatRg16Snorm: return "Rg16Snorm";
3146     case ImageFormatRg8Snorm: return "Rg8Snorm";
3147     case ImageFormatR16Snorm: return "R16Snorm";
3148     case ImageFormatR8Snorm: return "R8Snorm";
3149     case ImageFormatRgba32i: return "Rgba32i";
3150     case ImageFormatRgba16i: return "Rgba16i";
3151     case ImageFormatRgba8i: return "Rgba8i";
3152     case ImageFormatR32i: return "R32i";
3153     case ImageFormatRg32i: return "Rg32i";
3154     case ImageFormatRg16i: return "Rg16i";
3155     case ImageFormatRg8i: return "Rg8i";
3156     case ImageFormatR16i: return "R16i";
3157     case ImageFormatR8i: return "R8i";
3158     case ImageFormatRgba32ui: return "Rgba32ui";
3159     case ImageFormatRgba16ui: return "Rgba16ui";
3160     case ImageFormatRgba8ui: return "Rgba8ui";
3161     case ImageFormatR32ui: return "R32ui";
3162     case ImageFormatRgb10a2ui: return "Rgb10a2ui";
3163     case ImageFormatRg32ui: return "Rg32ui";
3164     case ImageFormatRg16ui: return "Rg16ui";
3165     case ImageFormatRg8ui: return "Rg8ui";
3166     case ImageFormatR16ui: return "R16ui";
3167     case ImageFormatR8ui: return "R8ui";
3168     case ImageFormatR64ui: return "R64ui";
3169     case ImageFormatR64i: return "R64i";
3170     default: return "Unknown";
3171     }
3172 }
3173 
ImageChannelOrderToString(ImageChannelOrder value)3174 inline const char* ImageChannelOrderToString(ImageChannelOrder value) {
3175     switch (value) {
3176     case ImageChannelOrderR: return "R";
3177     case ImageChannelOrderA: return "A";
3178     case ImageChannelOrderRG: return "RG";
3179     case ImageChannelOrderRA: return "RA";
3180     case ImageChannelOrderRGB: return "RGB";
3181     case ImageChannelOrderRGBA: return "RGBA";
3182     case ImageChannelOrderBGRA: return "BGRA";
3183     case ImageChannelOrderARGB: return "ARGB";
3184     case ImageChannelOrderIntensity: return "Intensity";
3185     case ImageChannelOrderLuminance: return "Luminance";
3186     case ImageChannelOrderRx: return "Rx";
3187     case ImageChannelOrderRGx: return "RGx";
3188     case ImageChannelOrderRGBx: return "RGBx";
3189     case ImageChannelOrderDepth: return "Depth";
3190     case ImageChannelOrderDepthStencil: return "DepthStencil";
3191     case ImageChannelOrdersRGB: return "sRGB";
3192     case ImageChannelOrdersRGBx: return "sRGBx";
3193     case ImageChannelOrdersRGBA: return "sRGBA";
3194     case ImageChannelOrdersBGRA: return "sBGRA";
3195     case ImageChannelOrderABGR: return "ABGR";
3196     default: return "Unknown";
3197     }
3198 }
3199 
ImageChannelDataTypeToString(ImageChannelDataType value)3200 inline const char* ImageChannelDataTypeToString(ImageChannelDataType value) {
3201     switch (value) {
3202     case ImageChannelDataTypeSnormInt8: return "SnormInt8";
3203     case ImageChannelDataTypeSnormInt16: return "SnormInt16";
3204     case ImageChannelDataTypeUnormInt8: return "UnormInt8";
3205     case ImageChannelDataTypeUnormInt16: return "UnormInt16";
3206     case ImageChannelDataTypeUnormShort565: return "UnormShort565";
3207     case ImageChannelDataTypeUnormShort555: return "UnormShort555";
3208     case ImageChannelDataTypeUnormInt101010: return "UnormInt101010";
3209     case ImageChannelDataTypeSignedInt8: return "SignedInt8";
3210     case ImageChannelDataTypeSignedInt16: return "SignedInt16";
3211     case ImageChannelDataTypeSignedInt32: return "SignedInt32";
3212     case ImageChannelDataTypeUnsignedInt8: return "UnsignedInt8";
3213     case ImageChannelDataTypeUnsignedInt16: return "UnsignedInt16";
3214     case ImageChannelDataTypeUnsignedInt32: return "UnsignedInt32";
3215     case ImageChannelDataTypeHalfFloat: return "HalfFloat";
3216     case ImageChannelDataTypeFloat: return "Float";
3217     case ImageChannelDataTypeUnormInt24: return "UnormInt24";
3218     case ImageChannelDataTypeUnormInt101010_2: return "UnormInt101010_2";
3219     case ImageChannelDataTypeUnsignedIntRaw10EXT: return "UnsignedIntRaw10EXT";
3220     case ImageChannelDataTypeUnsignedIntRaw12EXT: return "UnsignedIntRaw12EXT";
3221     default: return "Unknown";
3222     }
3223 }
3224 
FPRoundingModeToString(FPRoundingMode value)3225 inline const char* FPRoundingModeToString(FPRoundingMode value) {
3226     switch (value) {
3227     case FPRoundingModeRTE: return "RTE";
3228     case FPRoundingModeRTZ: return "RTZ";
3229     case FPRoundingModeRTP: return "RTP";
3230     case FPRoundingModeRTN: return "RTN";
3231     default: return "Unknown";
3232     }
3233 }
3234 
LinkageTypeToString(LinkageType value)3235 inline const char* LinkageTypeToString(LinkageType value) {
3236     switch (value) {
3237     case LinkageTypeExport: return "Export";
3238     case LinkageTypeImport: return "Import";
3239     case LinkageTypeLinkOnceODR: return "LinkOnceODR";
3240     default: return "Unknown";
3241     }
3242 }
3243 
AccessQualifierToString(AccessQualifier value)3244 inline const char* AccessQualifierToString(AccessQualifier value) {
3245     switch (value) {
3246     case AccessQualifierReadOnly: return "ReadOnly";
3247     case AccessQualifierWriteOnly: return "WriteOnly";
3248     case AccessQualifierReadWrite: return "ReadWrite";
3249     default: return "Unknown";
3250     }
3251 }
3252 
FunctionParameterAttributeToString(FunctionParameterAttribute value)3253 inline const char* FunctionParameterAttributeToString(FunctionParameterAttribute value) {
3254     switch (value) {
3255     case FunctionParameterAttributeZext: return "Zext";
3256     case FunctionParameterAttributeSext: return "Sext";
3257     case FunctionParameterAttributeByVal: return "ByVal";
3258     case FunctionParameterAttributeSret: return "Sret";
3259     case FunctionParameterAttributeNoAlias: return "NoAlias";
3260     case FunctionParameterAttributeNoCapture: return "NoCapture";
3261     case FunctionParameterAttributeNoWrite: return "NoWrite";
3262     case FunctionParameterAttributeNoReadWrite: return "NoReadWrite";
3263     case FunctionParameterAttributeRuntimeAlignedINTEL: return "RuntimeAlignedINTEL";
3264     default: return "Unknown";
3265     }
3266 }
3267 
DecorationToString(Decoration value)3268 inline const char* DecorationToString(Decoration value) {
3269     switch (value) {
3270     case DecorationRelaxedPrecision: return "RelaxedPrecision";
3271     case DecorationSpecId: return "SpecId";
3272     case DecorationBlock: return "Block";
3273     case DecorationBufferBlock: return "BufferBlock";
3274     case DecorationRowMajor: return "RowMajor";
3275     case DecorationColMajor: return "ColMajor";
3276     case DecorationArrayStride: return "ArrayStride";
3277     case DecorationMatrixStride: return "MatrixStride";
3278     case DecorationGLSLShared: return "GLSLShared";
3279     case DecorationGLSLPacked: return "GLSLPacked";
3280     case DecorationCPacked: return "CPacked";
3281     case DecorationBuiltIn: return "BuiltIn";
3282     case DecorationNoPerspective: return "NoPerspective";
3283     case DecorationFlat: return "Flat";
3284     case DecorationPatch: return "Patch";
3285     case DecorationCentroid: return "Centroid";
3286     case DecorationSample: return "Sample";
3287     case DecorationInvariant: return "Invariant";
3288     case DecorationRestrict: return "Restrict";
3289     case DecorationAliased: return "Aliased";
3290     case DecorationVolatile: return "Volatile";
3291     case DecorationConstant: return "Constant";
3292     case DecorationCoherent: return "Coherent";
3293     case DecorationNonWritable: return "NonWritable";
3294     case DecorationNonReadable: return "NonReadable";
3295     case DecorationUniform: return "Uniform";
3296     case DecorationUniformId: return "UniformId";
3297     case DecorationSaturatedConversion: return "SaturatedConversion";
3298     case DecorationStream: return "Stream";
3299     case DecorationLocation: return "Location";
3300     case DecorationComponent: return "Component";
3301     case DecorationIndex: return "Index";
3302     case DecorationBinding: return "Binding";
3303     case DecorationDescriptorSet: return "DescriptorSet";
3304     case DecorationOffset: return "Offset";
3305     case DecorationXfbBuffer: return "XfbBuffer";
3306     case DecorationXfbStride: return "XfbStride";
3307     case DecorationFuncParamAttr: return "FuncParamAttr";
3308     case DecorationFPRoundingMode: return "FPRoundingMode";
3309     case DecorationFPFastMathMode: return "FPFastMathMode";
3310     case DecorationLinkageAttributes: return "LinkageAttributes";
3311     case DecorationNoContraction: return "NoContraction";
3312     case DecorationInputAttachmentIndex: return "InputAttachmentIndex";
3313     case DecorationAlignment: return "Alignment";
3314     case DecorationMaxByteOffset: return "MaxByteOffset";
3315     case DecorationAlignmentId: return "AlignmentId";
3316     case DecorationMaxByteOffsetId: return "MaxByteOffsetId";
3317     case DecorationNoSignedWrap: return "NoSignedWrap";
3318     case DecorationNoUnsignedWrap: return "NoUnsignedWrap";
3319     case DecorationWeightTextureQCOM: return "WeightTextureQCOM";
3320     case DecorationBlockMatchTextureQCOM: return "BlockMatchTextureQCOM";
3321     case DecorationBlockMatchSamplerQCOM: return "BlockMatchSamplerQCOM";
3322     case DecorationExplicitInterpAMD: return "ExplicitInterpAMD";
3323     case DecorationNodeSharesPayloadLimitsWithAMDX: return "NodeSharesPayloadLimitsWithAMDX";
3324     case DecorationNodeMaxPayloadsAMDX: return "NodeMaxPayloadsAMDX";
3325     case DecorationTrackFinishWritingAMDX: return "TrackFinishWritingAMDX";
3326     case DecorationPayloadNodeNameAMDX: return "PayloadNodeNameAMDX";
3327     case DecorationOverrideCoverageNV: return "OverrideCoverageNV";
3328     case DecorationPassthroughNV: return "PassthroughNV";
3329     case DecorationViewportRelativeNV: return "ViewportRelativeNV";
3330     case DecorationSecondaryViewportRelativeNV: return "SecondaryViewportRelativeNV";
3331     case DecorationPerPrimitiveEXT: return "PerPrimitiveEXT";
3332     case DecorationPerViewNV: return "PerViewNV";
3333     case DecorationPerTaskNV: return "PerTaskNV";
3334     case DecorationPerVertexKHR: return "PerVertexKHR";
3335     case DecorationNonUniform: return "NonUniform";
3336     case DecorationRestrictPointer: return "RestrictPointer";
3337     case DecorationAliasedPointer: return "AliasedPointer";
3338     case DecorationHitObjectShaderRecordBufferNV: return "HitObjectShaderRecordBufferNV";
3339     case DecorationBindlessSamplerNV: return "BindlessSamplerNV";
3340     case DecorationBindlessImageNV: return "BindlessImageNV";
3341     case DecorationBoundSamplerNV: return "BoundSamplerNV";
3342     case DecorationBoundImageNV: return "BoundImageNV";
3343     case DecorationSIMTCallINTEL: return "SIMTCallINTEL";
3344     case DecorationReferencedIndirectlyINTEL: return "ReferencedIndirectlyINTEL";
3345     case DecorationClobberINTEL: return "ClobberINTEL";
3346     case DecorationSideEffectsINTEL: return "SideEffectsINTEL";
3347     case DecorationVectorComputeVariableINTEL: return "VectorComputeVariableINTEL";
3348     case DecorationFuncParamIOKindINTEL: return "FuncParamIOKindINTEL";
3349     case DecorationVectorComputeFunctionINTEL: return "VectorComputeFunctionINTEL";
3350     case DecorationStackCallINTEL: return "StackCallINTEL";
3351     case DecorationGlobalVariableOffsetINTEL: return "GlobalVariableOffsetINTEL";
3352     case DecorationCounterBuffer: return "CounterBuffer";
3353     case DecorationHlslSemanticGOOGLE: return "HlslSemanticGOOGLE";
3354     case DecorationUserTypeGOOGLE: return "UserTypeGOOGLE";
3355     case DecorationFunctionRoundingModeINTEL: return "FunctionRoundingModeINTEL";
3356     case DecorationFunctionDenormModeINTEL: return "FunctionDenormModeINTEL";
3357     case DecorationRegisterINTEL: return "RegisterINTEL";
3358     case DecorationMemoryINTEL: return "MemoryINTEL";
3359     case DecorationNumbanksINTEL: return "NumbanksINTEL";
3360     case DecorationBankwidthINTEL: return "BankwidthINTEL";
3361     case DecorationMaxPrivateCopiesINTEL: return "MaxPrivateCopiesINTEL";
3362     case DecorationSinglepumpINTEL: return "SinglepumpINTEL";
3363     case DecorationDoublepumpINTEL: return "DoublepumpINTEL";
3364     case DecorationMaxReplicatesINTEL: return "MaxReplicatesINTEL";
3365     case DecorationSimpleDualPortINTEL: return "SimpleDualPortINTEL";
3366     case DecorationMergeINTEL: return "MergeINTEL";
3367     case DecorationBankBitsINTEL: return "BankBitsINTEL";
3368     case DecorationForcePow2DepthINTEL: return "ForcePow2DepthINTEL";
3369     case DecorationStridesizeINTEL: return "StridesizeINTEL";
3370     case DecorationWordsizeINTEL: return "WordsizeINTEL";
3371     case DecorationTrueDualPortINTEL: return "TrueDualPortINTEL";
3372     case DecorationBurstCoalesceINTEL: return "BurstCoalesceINTEL";
3373     case DecorationCacheSizeINTEL: return "CacheSizeINTEL";
3374     case DecorationDontStaticallyCoalesceINTEL: return "DontStaticallyCoalesceINTEL";
3375     case DecorationPrefetchINTEL: return "PrefetchINTEL";
3376     case DecorationStallEnableINTEL: return "StallEnableINTEL";
3377     case DecorationFuseLoopsInFunctionINTEL: return "FuseLoopsInFunctionINTEL";
3378     case DecorationMathOpDSPModeINTEL: return "MathOpDSPModeINTEL";
3379     case DecorationAliasScopeINTEL: return "AliasScopeINTEL";
3380     case DecorationNoAliasINTEL: return "NoAliasINTEL";
3381     case DecorationInitiationIntervalINTEL: return "InitiationIntervalINTEL";
3382     case DecorationMaxConcurrencyINTEL: return "MaxConcurrencyINTEL";
3383     case DecorationPipelineEnableINTEL: return "PipelineEnableINTEL";
3384     case DecorationBufferLocationINTEL: return "BufferLocationINTEL";
3385     case DecorationIOPipeStorageINTEL: return "IOPipeStorageINTEL";
3386     case DecorationFunctionFloatingPointModeINTEL: return "FunctionFloatingPointModeINTEL";
3387     case DecorationSingleElementVectorINTEL: return "SingleElementVectorINTEL";
3388     case DecorationVectorComputeCallableFunctionINTEL: return "VectorComputeCallableFunctionINTEL";
3389     case DecorationMediaBlockIOINTEL: return "MediaBlockIOINTEL";
3390     case DecorationStallFreeINTEL: return "StallFreeINTEL";
3391     case DecorationFPMaxErrorDecorationINTEL: return "FPMaxErrorDecorationINTEL";
3392     case DecorationLatencyControlLabelINTEL: return "LatencyControlLabelINTEL";
3393     case DecorationLatencyControlConstraintINTEL: return "LatencyControlConstraintINTEL";
3394     case DecorationConduitKernelArgumentINTEL: return "ConduitKernelArgumentINTEL";
3395     case DecorationRegisterMapKernelArgumentINTEL: return "RegisterMapKernelArgumentINTEL";
3396     case DecorationMMHostInterfaceAddressWidthINTEL: return "MMHostInterfaceAddressWidthINTEL";
3397     case DecorationMMHostInterfaceDataWidthINTEL: return "MMHostInterfaceDataWidthINTEL";
3398     case DecorationMMHostInterfaceLatencyINTEL: return "MMHostInterfaceLatencyINTEL";
3399     case DecorationMMHostInterfaceReadWriteModeINTEL: return "MMHostInterfaceReadWriteModeINTEL";
3400     case DecorationMMHostInterfaceMaxBurstINTEL: return "MMHostInterfaceMaxBurstINTEL";
3401     case DecorationMMHostInterfaceWaitRequestINTEL: return "MMHostInterfaceWaitRequestINTEL";
3402     case DecorationStableKernelArgumentINTEL: return "StableKernelArgumentINTEL";
3403     case DecorationHostAccessINTEL: return "HostAccessINTEL";
3404     case DecorationInitModeINTEL: return "InitModeINTEL";
3405     case DecorationImplementInRegisterMapINTEL: return "ImplementInRegisterMapINTEL";
3406     case DecorationCacheControlLoadINTEL: return "CacheControlLoadINTEL";
3407     case DecorationCacheControlStoreINTEL: return "CacheControlStoreINTEL";
3408     default: return "Unknown";
3409     }
3410 }
3411 
BuiltInToString(BuiltIn value)3412 inline const char* BuiltInToString(BuiltIn value) {
3413     switch (value) {
3414     case BuiltInPosition: return "Position";
3415     case BuiltInPointSize: return "PointSize";
3416     case BuiltInClipDistance: return "ClipDistance";
3417     case BuiltInCullDistance: return "CullDistance";
3418     case BuiltInVertexId: return "VertexId";
3419     case BuiltInInstanceId: return "InstanceId";
3420     case BuiltInPrimitiveId: return "PrimitiveId";
3421     case BuiltInInvocationId: return "InvocationId";
3422     case BuiltInLayer: return "Layer";
3423     case BuiltInViewportIndex: return "ViewportIndex";
3424     case BuiltInTessLevelOuter: return "TessLevelOuter";
3425     case BuiltInTessLevelInner: return "TessLevelInner";
3426     case BuiltInTessCoord: return "TessCoord";
3427     case BuiltInPatchVertices: return "PatchVertices";
3428     case BuiltInFragCoord: return "FragCoord";
3429     case BuiltInPointCoord: return "PointCoord";
3430     case BuiltInFrontFacing: return "FrontFacing";
3431     case BuiltInSampleId: return "SampleId";
3432     case BuiltInSamplePosition: return "SamplePosition";
3433     case BuiltInSampleMask: return "SampleMask";
3434     case BuiltInFragDepth: return "FragDepth";
3435     case BuiltInHelperInvocation: return "HelperInvocation";
3436     case BuiltInNumWorkgroups: return "NumWorkgroups";
3437     case BuiltInWorkgroupSize: return "WorkgroupSize";
3438     case BuiltInWorkgroupId: return "WorkgroupId";
3439     case BuiltInLocalInvocationId: return "LocalInvocationId";
3440     case BuiltInGlobalInvocationId: return "GlobalInvocationId";
3441     case BuiltInLocalInvocationIndex: return "LocalInvocationIndex";
3442     case BuiltInWorkDim: return "WorkDim";
3443     case BuiltInGlobalSize: return "GlobalSize";
3444     case BuiltInEnqueuedWorkgroupSize: return "EnqueuedWorkgroupSize";
3445     case BuiltInGlobalOffset: return "GlobalOffset";
3446     case BuiltInGlobalLinearId: return "GlobalLinearId";
3447     case BuiltInSubgroupSize: return "SubgroupSize";
3448     case BuiltInSubgroupMaxSize: return "SubgroupMaxSize";
3449     case BuiltInNumSubgroups: return "NumSubgroups";
3450     case BuiltInNumEnqueuedSubgroups: return "NumEnqueuedSubgroups";
3451     case BuiltInSubgroupId: return "SubgroupId";
3452     case BuiltInSubgroupLocalInvocationId: return "SubgroupLocalInvocationId";
3453     case BuiltInVertexIndex: return "VertexIndex";
3454     case BuiltInInstanceIndex: return "InstanceIndex";
3455     case BuiltInCoreIDARM: return "CoreIDARM";
3456     case BuiltInCoreCountARM: return "CoreCountARM";
3457     case BuiltInCoreMaxIDARM: return "CoreMaxIDARM";
3458     case BuiltInWarpIDARM: return "WarpIDARM";
3459     case BuiltInWarpMaxIDARM: return "WarpMaxIDARM";
3460     case BuiltInSubgroupEqMask: return "SubgroupEqMask";
3461     case BuiltInSubgroupGeMask: return "SubgroupGeMask";
3462     case BuiltInSubgroupGtMask: return "SubgroupGtMask";
3463     case BuiltInSubgroupLeMask: return "SubgroupLeMask";
3464     case BuiltInSubgroupLtMask: return "SubgroupLtMask";
3465     case BuiltInBaseVertex: return "BaseVertex";
3466     case BuiltInBaseInstance: return "BaseInstance";
3467     case BuiltInDrawIndex: return "DrawIndex";
3468     case BuiltInPrimitiveShadingRateKHR: return "PrimitiveShadingRateKHR";
3469     case BuiltInDeviceIndex: return "DeviceIndex";
3470     case BuiltInViewIndex: return "ViewIndex";
3471     case BuiltInShadingRateKHR: return "ShadingRateKHR";
3472     case BuiltInBaryCoordNoPerspAMD: return "BaryCoordNoPerspAMD";
3473     case BuiltInBaryCoordNoPerspCentroidAMD: return "BaryCoordNoPerspCentroidAMD";
3474     case BuiltInBaryCoordNoPerspSampleAMD: return "BaryCoordNoPerspSampleAMD";
3475     case BuiltInBaryCoordSmoothAMD: return "BaryCoordSmoothAMD";
3476     case BuiltInBaryCoordSmoothCentroidAMD: return "BaryCoordSmoothCentroidAMD";
3477     case BuiltInBaryCoordSmoothSampleAMD: return "BaryCoordSmoothSampleAMD";
3478     case BuiltInBaryCoordPullModelAMD: return "BaryCoordPullModelAMD";
3479     case BuiltInFragStencilRefEXT: return "FragStencilRefEXT";
3480     case BuiltInCoalescedInputCountAMDX: return "CoalescedInputCountAMDX";
3481     case BuiltInShaderIndexAMDX: return "ShaderIndexAMDX";
3482     case BuiltInViewportMaskNV: return "ViewportMaskNV";
3483     case BuiltInSecondaryPositionNV: return "SecondaryPositionNV";
3484     case BuiltInSecondaryViewportMaskNV: return "SecondaryViewportMaskNV";
3485     case BuiltInPositionPerViewNV: return "PositionPerViewNV";
3486     case BuiltInViewportMaskPerViewNV: return "ViewportMaskPerViewNV";
3487     case BuiltInFullyCoveredEXT: return "FullyCoveredEXT";
3488     case BuiltInTaskCountNV: return "TaskCountNV";
3489     case BuiltInPrimitiveCountNV: return "PrimitiveCountNV";
3490     case BuiltInPrimitiveIndicesNV: return "PrimitiveIndicesNV";
3491     case BuiltInClipDistancePerViewNV: return "ClipDistancePerViewNV";
3492     case BuiltInCullDistancePerViewNV: return "CullDistancePerViewNV";
3493     case BuiltInLayerPerViewNV: return "LayerPerViewNV";
3494     case BuiltInMeshViewCountNV: return "MeshViewCountNV";
3495     case BuiltInMeshViewIndicesNV: return "MeshViewIndicesNV";
3496     case BuiltInBaryCoordKHR: return "BaryCoordKHR";
3497     case BuiltInBaryCoordNoPerspKHR: return "BaryCoordNoPerspKHR";
3498     case BuiltInFragSizeEXT: return "FragSizeEXT";
3499     case BuiltInFragInvocationCountEXT: return "FragInvocationCountEXT";
3500     case BuiltInPrimitivePointIndicesEXT: return "PrimitivePointIndicesEXT";
3501     case BuiltInPrimitiveLineIndicesEXT: return "PrimitiveLineIndicesEXT";
3502     case BuiltInPrimitiveTriangleIndicesEXT: return "PrimitiveTriangleIndicesEXT";
3503     case BuiltInCullPrimitiveEXT: return "CullPrimitiveEXT";
3504     case BuiltInLaunchIdKHR: return "LaunchIdKHR";
3505     case BuiltInLaunchSizeKHR: return "LaunchSizeKHR";
3506     case BuiltInWorldRayOriginKHR: return "WorldRayOriginKHR";
3507     case BuiltInWorldRayDirectionKHR: return "WorldRayDirectionKHR";
3508     case BuiltInObjectRayOriginKHR: return "ObjectRayOriginKHR";
3509     case BuiltInObjectRayDirectionKHR: return "ObjectRayDirectionKHR";
3510     case BuiltInRayTminKHR: return "RayTminKHR";
3511     case BuiltInRayTmaxKHR: return "RayTmaxKHR";
3512     case BuiltInInstanceCustomIndexKHR: return "InstanceCustomIndexKHR";
3513     case BuiltInObjectToWorldKHR: return "ObjectToWorldKHR";
3514     case BuiltInWorldToObjectKHR: return "WorldToObjectKHR";
3515     case BuiltInHitTNV: return "HitTNV";
3516     case BuiltInHitKindKHR: return "HitKindKHR";
3517     case BuiltInCurrentRayTimeNV: return "CurrentRayTimeNV";
3518     case BuiltInHitTriangleVertexPositionsKHR: return "HitTriangleVertexPositionsKHR";
3519     case BuiltInHitMicroTriangleVertexPositionsNV: return "HitMicroTriangleVertexPositionsNV";
3520     case BuiltInHitMicroTriangleVertexBarycentricsNV: return "HitMicroTriangleVertexBarycentricsNV";
3521     case BuiltInIncomingRayFlagsKHR: return "IncomingRayFlagsKHR";
3522     case BuiltInRayGeometryIndexKHR: return "RayGeometryIndexKHR";
3523     case BuiltInWarpsPerSMNV: return "WarpsPerSMNV";
3524     case BuiltInSMCountNV: return "SMCountNV";
3525     case BuiltInWarpIDNV: return "WarpIDNV";
3526     case BuiltInSMIDNV: return "SMIDNV";
3527     case BuiltInHitKindFrontFacingMicroTriangleNV: return "HitKindFrontFacingMicroTriangleNV";
3528     case BuiltInHitKindBackFacingMicroTriangleNV: return "HitKindBackFacingMicroTriangleNV";
3529     case BuiltInCullMaskKHR: return "CullMaskKHR";
3530     default: return "Unknown";
3531     }
3532 }
3533 
ScopeToString(Scope value)3534 inline const char* ScopeToString(Scope value) {
3535     switch (value) {
3536     case ScopeCrossDevice: return "CrossDevice";
3537     case ScopeDevice: return "Device";
3538     case ScopeWorkgroup: return "Workgroup";
3539     case ScopeSubgroup: return "Subgroup";
3540     case ScopeInvocation: return "Invocation";
3541     case ScopeQueueFamily: return "QueueFamily";
3542     case ScopeShaderCallKHR: return "ShaderCallKHR";
3543     default: return "Unknown";
3544     }
3545 }
3546 
GroupOperationToString(GroupOperation value)3547 inline const char* GroupOperationToString(GroupOperation value) {
3548     switch (value) {
3549     case GroupOperationReduce: return "Reduce";
3550     case GroupOperationInclusiveScan: return "InclusiveScan";
3551     case GroupOperationExclusiveScan: return "ExclusiveScan";
3552     case GroupOperationClusteredReduce: return "ClusteredReduce";
3553     case GroupOperationPartitionedReduceNV: return "PartitionedReduceNV";
3554     case GroupOperationPartitionedInclusiveScanNV: return "PartitionedInclusiveScanNV";
3555     case GroupOperationPartitionedExclusiveScanNV: return "PartitionedExclusiveScanNV";
3556     default: return "Unknown";
3557     }
3558 }
3559 
KernelEnqueueFlagsToString(KernelEnqueueFlags value)3560 inline const char* KernelEnqueueFlagsToString(KernelEnqueueFlags value) {
3561     switch (value) {
3562     case KernelEnqueueFlagsNoWait: return "NoWait";
3563     case KernelEnqueueFlagsWaitKernel: return "WaitKernel";
3564     case KernelEnqueueFlagsWaitWorkGroup: return "WaitWorkGroup";
3565     default: return "Unknown";
3566     }
3567 }
3568 
CapabilityToString(Capability value)3569 inline const char* CapabilityToString(Capability value) {
3570     switch (value) {
3571     case CapabilityMatrix: return "Matrix";
3572     case CapabilityShader: return "Shader";
3573     case CapabilityGeometry: return "Geometry";
3574     case CapabilityTessellation: return "Tessellation";
3575     case CapabilityAddresses: return "Addresses";
3576     case CapabilityLinkage: return "Linkage";
3577     case CapabilityKernel: return "Kernel";
3578     case CapabilityVector16: return "Vector16";
3579     case CapabilityFloat16Buffer: return "Float16Buffer";
3580     case CapabilityFloat16: return "Float16";
3581     case CapabilityFloat64: return "Float64";
3582     case CapabilityInt64: return "Int64";
3583     case CapabilityInt64Atomics: return "Int64Atomics";
3584     case CapabilityImageBasic: return "ImageBasic";
3585     case CapabilityImageReadWrite: return "ImageReadWrite";
3586     case CapabilityImageMipmap: return "ImageMipmap";
3587     case CapabilityPipes: return "Pipes";
3588     case CapabilityGroups: return "Groups";
3589     case CapabilityDeviceEnqueue: return "DeviceEnqueue";
3590     case CapabilityLiteralSampler: return "LiteralSampler";
3591     case CapabilityAtomicStorage: return "AtomicStorage";
3592     case CapabilityInt16: return "Int16";
3593     case CapabilityTessellationPointSize: return "TessellationPointSize";
3594     case CapabilityGeometryPointSize: return "GeometryPointSize";
3595     case CapabilityImageGatherExtended: return "ImageGatherExtended";
3596     case CapabilityStorageImageMultisample: return "StorageImageMultisample";
3597     case CapabilityUniformBufferArrayDynamicIndexing: return "UniformBufferArrayDynamicIndexing";
3598     case CapabilitySampledImageArrayDynamicIndexing: return "SampledImageArrayDynamicIndexing";
3599     case CapabilityStorageBufferArrayDynamicIndexing: return "StorageBufferArrayDynamicIndexing";
3600     case CapabilityStorageImageArrayDynamicIndexing: return "StorageImageArrayDynamicIndexing";
3601     case CapabilityClipDistance: return "ClipDistance";
3602     case CapabilityCullDistance: return "CullDistance";
3603     case CapabilityImageCubeArray: return "ImageCubeArray";
3604     case CapabilitySampleRateShading: return "SampleRateShading";
3605     case CapabilityImageRect: return "ImageRect";
3606     case CapabilitySampledRect: return "SampledRect";
3607     case CapabilityGenericPointer: return "GenericPointer";
3608     case CapabilityInt8: return "Int8";
3609     case CapabilityInputAttachment: return "InputAttachment";
3610     case CapabilitySparseResidency: return "SparseResidency";
3611     case CapabilityMinLod: return "MinLod";
3612     case CapabilitySampled1D: return "Sampled1D";
3613     case CapabilityImage1D: return "Image1D";
3614     case CapabilitySampledCubeArray: return "SampledCubeArray";
3615     case CapabilitySampledBuffer: return "SampledBuffer";
3616     case CapabilityImageBuffer: return "ImageBuffer";
3617     case CapabilityImageMSArray: return "ImageMSArray";
3618     case CapabilityStorageImageExtendedFormats: return "StorageImageExtendedFormats";
3619     case CapabilityImageQuery: return "ImageQuery";
3620     case CapabilityDerivativeControl: return "DerivativeControl";
3621     case CapabilityInterpolationFunction: return "InterpolationFunction";
3622     case CapabilityTransformFeedback: return "TransformFeedback";
3623     case CapabilityGeometryStreams: return "GeometryStreams";
3624     case CapabilityStorageImageReadWithoutFormat: return "StorageImageReadWithoutFormat";
3625     case CapabilityStorageImageWriteWithoutFormat: return "StorageImageWriteWithoutFormat";
3626     case CapabilityMultiViewport: return "MultiViewport";
3627     case CapabilitySubgroupDispatch: return "SubgroupDispatch";
3628     case CapabilityNamedBarrier: return "NamedBarrier";
3629     case CapabilityPipeStorage: return "PipeStorage";
3630     case CapabilityGroupNonUniform: return "GroupNonUniform";
3631     case CapabilityGroupNonUniformVote: return "GroupNonUniformVote";
3632     case CapabilityGroupNonUniformArithmetic: return "GroupNonUniformArithmetic";
3633     case CapabilityGroupNonUniformBallot: return "GroupNonUniformBallot";
3634     case CapabilityGroupNonUniformShuffle: return "GroupNonUniformShuffle";
3635     case CapabilityGroupNonUniformShuffleRelative: return "GroupNonUniformShuffleRelative";
3636     case CapabilityGroupNonUniformClustered: return "GroupNonUniformClustered";
3637     case CapabilityGroupNonUniformQuad: return "GroupNonUniformQuad";
3638     case CapabilityShaderLayer: return "ShaderLayer";
3639     case CapabilityShaderViewportIndex: return "ShaderViewportIndex";
3640     case CapabilityUniformDecoration: return "UniformDecoration";
3641     case CapabilityCoreBuiltinsARM: return "CoreBuiltinsARM";
3642     case CapabilityTileImageColorReadAccessEXT: return "TileImageColorReadAccessEXT";
3643     case CapabilityTileImageDepthReadAccessEXT: return "TileImageDepthReadAccessEXT";
3644     case CapabilityTileImageStencilReadAccessEXT: return "TileImageStencilReadAccessEXT";
3645     case CapabilityCooperativeMatrixLayoutsARM: return "CooperativeMatrixLayoutsARM";
3646     case CapabilityFragmentShadingRateKHR: return "FragmentShadingRateKHR";
3647     case CapabilitySubgroupBallotKHR: return "SubgroupBallotKHR";
3648     case CapabilityDrawParameters: return "DrawParameters";
3649     case CapabilityWorkgroupMemoryExplicitLayoutKHR: return "WorkgroupMemoryExplicitLayoutKHR";
3650     case CapabilityWorkgroupMemoryExplicitLayout8BitAccessKHR: return "WorkgroupMemoryExplicitLayout8BitAccessKHR";
3651     case CapabilityWorkgroupMemoryExplicitLayout16BitAccessKHR: return "WorkgroupMemoryExplicitLayout16BitAccessKHR";
3652     case CapabilitySubgroupVoteKHR: return "SubgroupVoteKHR";
3653     case CapabilityStorageBuffer16BitAccess: return "StorageBuffer16BitAccess";
3654     case CapabilityStorageUniform16: return "StorageUniform16";
3655     case CapabilityStoragePushConstant16: return "StoragePushConstant16";
3656     case CapabilityStorageInputOutput16: return "StorageInputOutput16";
3657     case CapabilityDeviceGroup: return "DeviceGroup";
3658     case CapabilityMultiView: return "MultiView";
3659     case CapabilityVariablePointersStorageBuffer: return "VariablePointersStorageBuffer";
3660     case CapabilityVariablePointers: return "VariablePointers";
3661     case CapabilityAtomicStorageOps: return "AtomicStorageOps";
3662     case CapabilitySampleMaskPostDepthCoverage: return "SampleMaskPostDepthCoverage";
3663     case CapabilityStorageBuffer8BitAccess: return "StorageBuffer8BitAccess";
3664     case CapabilityUniformAndStorageBuffer8BitAccess: return "UniformAndStorageBuffer8BitAccess";
3665     case CapabilityStoragePushConstant8: return "StoragePushConstant8";
3666     case CapabilityDenormPreserve: return "DenormPreserve";
3667     case CapabilityDenormFlushToZero: return "DenormFlushToZero";
3668     case CapabilitySignedZeroInfNanPreserve: return "SignedZeroInfNanPreserve";
3669     case CapabilityRoundingModeRTE: return "RoundingModeRTE";
3670     case CapabilityRoundingModeRTZ: return "RoundingModeRTZ";
3671     case CapabilityRayQueryProvisionalKHR: return "RayQueryProvisionalKHR";
3672     case CapabilityRayQueryKHR: return "RayQueryKHR";
3673     case CapabilityRayTraversalPrimitiveCullingKHR: return "RayTraversalPrimitiveCullingKHR";
3674     case CapabilityRayTracingKHR: return "RayTracingKHR";
3675     case CapabilityTextureSampleWeightedQCOM: return "TextureSampleWeightedQCOM";
3676     case CapabilityTextureBoxFilterQCOM: return "TextureBoxFilterQCOM";
3677     case CapabilityTextureBlockMatchQCOM: return "TextureBlockMatchQCOM";
3678     case CapabilityTextureBlockMatch2QCOM: return "TextureBlockMatch2QCOM";
3679     case CapabilityFloat16ImageAMD: return "Float16ImageAMD";
3680     case CapabilityImageGatherBiasLodAMD: return "ImageGatherBiasLodAMD";
3681     case CapabilityFragmentMaskAMD: return "FragmentMaskAMD";
3682     case CapabilityStencilExportEXT: return "StencilExportEXT";
3683     case CapabilityImageReadWriteLodAMD: return "ImageReadWriteLodAMD";
3684     case CapabilityInt64ImageEXT: return "Int64ImageEXT";
3685     case CapabilityShaderClockKHR: return "ShaderClockKHR";
3686     case CapabilityShaderEnqueueAMDX: return "ShaderEnqueueAMDX";
3687     case CapabilityQuadControlKHR: return "QuadControlKHR";
3688     case CapabilitySampleMaskOverrideCoverageNV: return "SampleMaskOverrideCoverageNV";
3689     case CapabilityGeometryShaderPassthroughNV: return "GeometryShaderPassthroughNV";
3690     case CapabilityShaderViewportIndexLayerEXT: return "ShaderViewportIndexLayerEXT";
3691     case CapabilityShaderViewportMaskNV: return "ShaderViewportMaskNV";
3692     case CapabilityShaderStereoViewNV: return "ShaderStereoViewNV";
3693     case CapabilityPerViewAttributesNV: return "PerViewAttributesNV";
3694     case CapabilityFragmentFullyCoveredEXT: return "FragmentFullyCoveredEXT";
3695     case CapabilityMeshShadingNV: return "MeshShadingNV";
3696     case CapabilityImageFootprintNV: return "ImageFootprintNV";
3697     case CapabilityMeshShadingEXT: return "MeshShadingEXT";
3698     case CapabilityFragmentBarycentricKHR: return "FragmentBarycentricKHR";
3699     case CapabilityComputeDerivativeGroupQuadsNV: return "ComputeDerivativeGroupQuadsNV";
3700     case CapabilityFragmentDensityEXT: return "FragmentDensityEXT";
3701     case CapabilityGroupNonUniformPartitionedNV: return "GroupNonUniformPartitionedNV";
3702     case CapabilityShaderNonUniform: return "ShaderNonUniform";
3703     case CapabilityRuntimeDescriptorArray: return "RuntimeDescriptorArray";
3704     case CapabilityInputAttachmentArrayDynamicIndexing: return "InputAttachmentArrayDynamicIndexing";
3705     case CapabilityUniformTexelBufferArrayDynamicIndexing: return "UniformTexelBufferArrayDynamicIndexing";
3706     case CapabilityStorageTexelBufferArrayDynamicIndexing: return "StorageTexelBufferArrayDynamicIndexing";
3707     case CapabilityUniformBufferArrayNonUniformIndexing: return "UniformBufferArrayNonUniformIndexing";
3708     case CapabilitySampledImageArrayNonUniformIndexing: return "SampledImageArrayNonUniformIndexing";
3709     case CapabilityStorageBufferArrayNonUniformIndexing: return "StorageBufferArrayNonUniformIndexing";
3710     case CapabilityStorageImageArrayNonUniformIndexing: return "StorageImageArrayNonUniformIndexing";
3711     case CapabilityInputAttachmentArrayNonUniformIndexing: return "InputAttachmentArrayNonUniformIndexing";
3712     case CapabilityUniformTexelBufferArrayNonUniformIndexing: return "UniformTexelBufferArrayNonUniformIndexing";
3713     case CapabilityStorageTexelBufferArrayNonUniformIndexing: return "StorageTexelBufferArrayNonUniformIndexing";
3714     case CapabilityRayTracingPositionFetchKHR: return "RayTracingPositionFetchKHR";
3715     case CapabilityRayTracingNV: return "RayTracingNV";
3716     case CapabilityRayTracingMotionBlurNV: return "RayTracingMotionBlurNV";
3717     case CapabilityVulkanMemoryModel: return "VulkanMemoryModel";
3718     case CapabilityVulkanMemoryModelDeviceScope: return "VulkanMemoryModelDeviceScope";
3719     case CapabilityPhysicalStorageBufferAddresses: return "PhysicalStorageBufferAddresses";
3720     case CapabilityComputeDerivativeGroupLinearNV: return "ComputeDerivativeGroupLinearNV";
3721     case CapabilityRayTracingProvisionalKHR: return "RayTracingProvisionalKHR";
3722     case CapabilityCooperativeMatrixNV: return "CooperativeMatrixNV";
3723     case CapabilityFragmentShaderSampleInterlockEXT: return "FragmentShaderSampleInterlockEXT";
3724     case CapabilityFragmentShaderShadingRateInterlockEXT: return "FragmentShaderShadingRateInterlockEXT";
3725     case CapabilityShaderSMBuiltinsNV: return "ShaderSMBuiltinsNV";
3726     case CapabilityFragmentShaderPixelInterlockEXT: return "FragmentShaderPixelInterlockEXT";
3727     case CapabilityDemoteToHelperInvocation: return "DemoteToHelperInvocation";
3728     case CapabilityDisplacementMicromapNV: return "DisplacementMicromapNV";
3729     case CapabilityRayTracingOpacityMicromapEXT: return "RayTracingOpacityMicromapEXT";
3730     case CapabilityShaderInvocationReorderNV: return "ShaderInvocationReorderNV";
3731     case CapabilityBindlessTextureNV: return "BindlessTextureNV";
3732     case CapabilityRayQueryPositionFetchKHR: return "RayQueryPositionFetchKHR";
3733     case CapabilityAtomicFloat16VectorNV: return "AtomicFloat16VectorNV";
3734     case CapabilityRayTracingDisplacementMicromapNV: return "RayTracingDisplacementMicromapNV";
3735     case CapabilityRawAccessChainsNV: return "RawAccessChainsNV";
3736     case CapabilitySubgroupShuffleINTEL: return "SubgroupShuffleINTEL";
3737     case CapabilitySubgroupBufferBlockIOINTEL: return "SubgroupBufferBlockIOINTEL";
3738     case CapabilitySubgroupImageBlockIOINTEL: return "SubgroupImageBlockIOINTEL";
3739     case CapabilitySubgroupImageMediaBlockIOINTEL: return "SubgroupImageMediaBlockIOINTEL";
3740     case CapabilityRoundToInfinityINTEL: return "RoundToInfinityINTEL";
3741     case CapabilityFloatingPointModeINTEL: return "FloatingPointModeINTEL";
3742     case CapabilityIntegerFunctions2INTEL: return "IntegerFunctions2INTEL";
3743     case CapabilityFunctionPointersINTEL: return "FunctionPointersINTEL";
3744     case CapabilityIndirectReferencesINTEL: return "IndirectReferencesINTEL";
3745     case CapabilityAsmINTEL: return "AsmINTEL";
3746     case CapabilityAtomicFloat32MinMaxEXT: return "AtomicFloat32MinMaxEXT";
3747     case CapabilityAtomicFloat64MinMaxEXT: return "AtomicFloat64MinMaxEXT";
3748     case CapabilityAtomicFloat16MinMaxEXT: return "AtomicFloat16MinMaxEXT";
3749     case CapabilityVectorComputeINTEL: return "VectorComputeINTEL";
3750     case CapabilityVectorAnyINTEL: return "VectorAnyINTEL";
3751     case CapabilityExpectAssumeKHR: return "ExpectAssumeKHR";
3752     case CapabilitySubgroupAvcMotionEstimationINTEL: return "SubgroupAvcMotionEstimationINTEL";
3753     case CapabilitySubgroupAvcMotionEstimationIntraINTEL: return "SubgroupAvcMotionEstimationIntraINTEL";
3754     case CapabilitySubgroupAvcMotionEstimationChromaINTEL: return "SubgroupAvcMotionEstimationChromaINTEL";
3755     case CapabilityVariableLengthArrayINTEL: return "VariableLengthArrayINTEL";
3756     case CapabilityFunctionFloatControlINTEL: return "FunctionFloatControlINTEL";
3757     case CapabilityFPGAMemoryAttributesINTEL: return "FPGAMemoryAttributesINTEL";
3758     case CapabilityFPFastMathModeINTEL: return "FPFastMathModeINTEL";
3759     case CapabilityArbitraryPrecisionIntegersINTEL: return "ArbitraryPrecisionIntegersINTEL";
3760     case CapabilityArbitraryPrecisionFloatingPointINTEL: return "ArbitraryPrecisionFloatingPointINTEL";
3761     case CapabilityUnstructuredLoopControlsINTEL: return "UnstructuredLoopControlsINTEL";
3762     case CapabilityFPGALoopControlsINTEL: return "FPGALoopControlsINTEL";
3763     case CapabilityKernelAttributesINTEL: return "KernelAttributesINTEL";
3764     case CapabilityFPGAKernelAttributesINTEL: return "FPGAKernelAttributesINTEL";
3765     case CapabilityFPGAMemoryAccessesINTEL: return "FPGAMemoryAccessesINTEL";
3766     case CapabilityFPGAClusterAttributesINTEL: return "FPGAClusterAttributesINTEL";
3767     case CapabilityLoopFuseINTEL: return "LoopFuseINTEL";
3768     case CapabilityFPGADSPControlINTEL: return "FPGADSPControlINTEL";
3769     case CapabilityMemoryAccessAliasingINTEL: return "MemoryAccessAliasingINTEL";
3770     case CapabilityFPGAInvocationPipeliningAttributesINTEL: return "FPGAInvocationPipeliningAttributesINTEL";
3771     case CapabilityFPGABufferLocationINTEL: return "FPGABufferLocationINTEL";
3772     case CapabilityArbitraryPrecisionFixedPointINTEL: return "ArbitraryPrecisionFixedPointINTEL";
3773     case CapabilityUSMStorageClassesINTEL: return "USMStorageClassesINTEL";
3774     case CapabilityRuntimeAlignedAttributeINTEL: return "RuntimeAlignedAttributeINTEL";
3775     case CapabilityIOPipesINTEL: return "IOPipesINTEL";
3776     case CapabilityBlockingPipesINTEL: return "BlockingPipesINTEL";
3777     case CapabilityFPGARegINTEL: return "FPGARegINTEL";
3778     case CapabilityDotProductInputAll: return "DotProductInputAll";
3779     case CapabilityDotProductInput4x8Bit: return "DotProductInput4x8Bit";
3780     case CapabilityDotProductInput4x8BitPacked: return "DotProductInput4x8BitPacked";
3781     case CapabilityDotProduct: return "DotProduct";
3782     case CapabilityRayCullMaskKHR: return "RayCullMaskKHR";
3783     case CapabilityCooperativeMatrixKHR: return "CooperativeMatrixKHR";
3784     case CapabilityReplicatedCompositesEXT: return "ReplicatedCompositesEXT";
3785     case CapabilityBitInstructions: return "BitInstructions";
3786     case CapabilityGroupNonUniformRotateKHR: return "GroupNonUniformRotateKHR";
3787     case CapabilityFloatControls2: return "FloatControls2";
3788     case CapabilityAtomicFloat32AddEXT: return "AtomicFloat32AddEXT";
3789     case CapabilityAtomicFloat64AddEXT: return "AtomicFloat64AddEXT";
3790     case CapabilityLongCompositesINTEL: return "LongCompositesINTEL";
3791     case CapabilityOptNoneINTEL: return "OptNoneINTEL";
3792     case CapabilityAtomicFloat16AddEXT: return "AtomicFloat16AddEXT";
3793     case CapabilityDebugInfoModuleINTEL: return "DebugInfoModuleINTEL";
3794     case CapabilityBFloat16ConversionINTEL: return "BFloat16ConversionINTEL";
3795     case CapabilitySplitBarrierINTEL: return "SplitBarrierINTEL";
3796     case CapabilityFPGAClusterAttributesV2INTEL: return "FPGAClusterAttributesV2INTEL";
3797     case CapabilityFPGAKernelAttributesv2INTEL: return "FPGAKernelAttributesv2INTEL";
3798     case CapabilityFPMaxErrorINTEL: return "FPMaxErrorINTEL";
3799     case CapabilityFPGALatencyControlINTEL: return "FPGALatencyControlINTEL";
3800     case CapabilityFPGAArgumentInterfacesINTEL: return "FPGAArgumentInterfacesINTEL";
3801     case CapabilityGlobalVariableHostAccessINTEL: return "GlobalVariableHostAccessINTEL";
3802     case CapabilityGlobalVariableFPGADecorationsINTEL: return "GlobalVariableFPGADecorationsINTEL";
3803     case CapabilityGroupUniformArithmeticKHR: return "GroupUniformArithmeticKHR";
3804     case CapabilityMaskedGatherScatterINTEL: return "MaskedGatherScatterINTEL";
3805     case CapabilityCacheControlsINTEL: return "CacheControlsINTEL";
3806     case CapabilityRegisterLimitsINTEL: return "RegisterLimitsINTEL";
3807     default: return "Unknown";
3808     }
3809 }
3810 
RayQueryIntersectionToString(RayQueryIntersection value)3811 inline const char* RayQueryIntersectionToString(RayQueryIntersection value) {
3812     switch (value) {
3813     case RayQueryIntersectionRayQueryCandidateIntersectionKHR: return "RayQueryCandidateIntersectionKHR";
3814     case RayQueryIntersectionRayQueryCommittedIntersectionKHR: return "RayQueryCommittedIntersectionKHR";
3815     default: return "Unknown";
3816     }
3817 }
3818 
RayQueryCommittedIntersectionTypeToString(RayQueryCommittedIntersectionType value)3819 inline const char* RayQueryCommittedIntersectionTypeToString(RayQueryCommittedIntersectionType value) {
3820     switch (value) {
3821     case RayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionNoneKHR: return "RayQueryCommittedIntersectionNoneKHR";
3822     case RayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionTriangleKHR: return "RayQueryCommittedIntersectionTriangleKHR";
3823     case RayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionGeneratedKHR: return "RayQueryCommittedIntersectionGeneratedKHR";
3824     default: return "Unknown";
3825     }
3826 }
3827 
RayQueryCandidateIntersectionTypeToString(RayQueryCandidateIntersectionType value)3828 inline const char* RayQueryCandidateIntersectionTypeToString(RayQueryCandidateIntersectionType value) {
3829     switch (value) {
3830     case RayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionTriangleKHR: return "RayQueryCandidateIntersectionTriangleKHR";
3831     case RayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionAABBKHR: return "RayQueryCandidateIntersectionAABBKHR";
3832     default: return "Unknown";
3833     }
3834 }
3835 
FPDenormModeToString(FPDenormMode value)3836 inline const char* FPDenormModeToString(FPDenormMode value) {
3837     switch (value) {
3838     case FPDenormModePreserve: return "Preserve";
3839     case FPDenormModeFlushToZero: return "FlushToZero";
3840     default: return "Unknown";
3841     }
3842 }
3843 
FPOperationModeToString(FPOperationMode value)3844 inline const char* FPOperationModeToString(FPOperationMode value) {
3845     switch (value) {
3846     case FPOperationModeIEEE: return "IEEE";
3847     case FPOperationModeALT: return "ALT";
3848     default: return "Unknown";
3849     }
3850 }
3851 
QuantizationModesToString(QuantizationModes value)3852 inline const char* QuantizationModesToString(QuantizationModes value) {
3853     switch (value) {
3854     case QuantizationModesTRN: return "TRN";
3855     case QuantizationModesTRN_ZERO: return "TRN_ZERO";
3856     case QuantizationModesRND: return "RND";
3857     case QuantizationModesRND_ZERO: return "RND_ZERO";
3858     case QuantizationModesRND_INF: return "RND_INF";
3859     case QuantizationModesRND_MIN_INF: return "RND_MIN_INF";
3860     case QuantizationModesRND_CONV: return "RND_CONV";
3861     case QuantizationModesRND_CONV_ODD: return "RND_CONV_ODD";
3862     default: return "Unknown";
3863     }
3864 }
3865 
OverflowModesToString(OverflowModes value)3866 inline const char* OverflowModesToString(OverflowModes value) {
3867     switch (value) {
3868     case OverflowModesWRAP: return "WRAP";
3869     case OverflowModesSAT: return "SAT";
3870     case OverflowModesSAT_ZERO: return "SAT_ZERO";
3871     case OverflowModesSAT_SYM: return "SAT_SYM";
3872     default: return "Unknown";
3873     }
3874 }
3875 
PackedVectorFormatToString(PackedVectorFormat value)3876 inline const char* PackedVectorFormatToString(PackedVectorFormat value) {
3877     switch (value) {
3878     case PackedVectorFormatPackedVectorFormat4x8Bit: return "PackedVectorFormat4x8Bit";
3879     default: return "Unknown";
3880     }
3881 }
3882 
CooperativeMatrixLayoutToString(CooperativeMatrixLayout value)3883 inline const char* CooperativeMatrixLayoutToString(CooperativeMatrixLayout value) {
3884     switch (value) {
3885     case CooperativeMatrixLayoutRowMajorKHR: return "RowMajorKHR";
3886     case CooperativeMatrixLayoutColumnMajorKHR: return "ColumnMajorKHR";
3887     case CooperativeMatrixLayoutRowBlockedInterleavedARM: return "RowBlockedInterleavedARM";
3888     case CooperativeMatrixLayoutColumnBlockedInterleavedARM: return "ColumnBlockedInterleavedARM";
3889     default: return "Unknown";
3890     }
3891 }
3892 
CooperativeMatrixUseToString(CooperativeMatrixUse value)3893 inline const char* CooperativeMatrixUseToString(CooperativeMatrixUse value) {
3894     switch (value) {
3895     case CooperativeMatrixUseMatrixAKHR: return "MatrixAKHR";
3896     case CooperativeMatrixUseMatrixBKHR: return "MatrixBKHR";
3897     case CooperativeMatrixUseMatrixAccumulatorKHR: return "MatrixAccumulatorKHR";
3898     default: return "Unknown";
3899     }
3900 }
3901 
InitializationModeQualifierToString(InitializationModeQualifier value)3902 inline const char* InitializationModeQualifierToString(InitializationModeQualifier value) {
3903     switch (value) {
3904     case InitializationModeQualifierInitOnDeviceReprogramINTEL: return "InitOnDeviceReprogramINTEL";
3905     case InitializationModeQualifierInitOnDeviceResetINTEL: return "InitOnDeviceResetINTEL";
3906     default: return "Unknown";
3907     }
3908 }
3909 
HostAccessQualifierToString(HostAccessQualifier value)3910 inline const char* HostAccessQualifierToString(HostAccessQualifier value) {
3911     switch (value) {
3912     case HostAccessQualifierNoneINTEL: return "NoneINTEL";
3913     case HostAccessQualifierReadINTEL: return "ReadINTEL";
3914     case HostAccessQualifierWriteINTEL: return "WriteINTEL";
3915     case HostAccessQualifierReadWriteINTEL: return "ReadWriteINTEL";
3916     default: return "Unknown";
3917     }
3918 }
3919 
LoadCacheControlToString(LoadCacheControl value)3920 inline const char* LoadCacheControlToString(LoadCacheControl value) {
3921     switch (value) {
3922     case LoadCacheControlUncachedINTEL: return "UncachedINTEL";
3923     case LoadCacheControlCachedINTEL: return "CachedINTEL";
3924     case LoadCacheControlStreamingINTEL: return "StreamingINTEL";
3925     case LoadCacheControlInvalidateAfterReadINTEL: return "InvalidateAfterReadINTEL";
3926     case LoadCacheControlConstCachedINTEL: return "ConstCachedINTEL";
3927     default: return "Unknown";
3928     }
3929 }
3930 
StoreCacheControlToString(StoreCacheControl value)3931 inline const char* StoreCacheControlToString(StoreCacheControl value) {
3932     switch (value) {
3933     case StoreCacheControlUncachedINTEL: return "UncachedINTEL";
3934     case StoreCacheControlWriteThroughINTEL: return "WriteThroughINTEL";
3935     case StoreCacheControlWriteBackINTEL: return "WriteBackINTEL";
3936     case StoreCacheControlStreamingINTEL: return "StreamingINTEL";
3937     default: return "Unknown";
3938     }
3939 }
3940 
NamedMaximumNumberOfRegistersToString(NamedMaximumNumberOfRegisters value)3941 inline const char* NamedMaximumNumberOfRegistersToString(NamedMaximumNumberOfRegisters value) {
3942     switch (value) {
3943     case NamedMaximumNumberOfRegistersAutoINTEL: return "AutoINTEL";
3944     default: return "Unknown";
3945     }
3946 }
3947 
OpToString(Op value)3948 inline const char* OpToString(Op value) {
3949     switch (value) {
3950     case OpNop: return "OpNop";
3951     case OpUndef: return "OpUndef";
3952     case OpSourceContinued: return "OpSourceContinued";
3953     case OpSource: return "OpSource";
3954     case OpSourceExtension: return "OpSourceExtension";
3955     case OpName: return "OpName";
3956     case OpMemberName: return "OpMemberName";
3957     case OpString: return "OpString";
3958     case OpLine: return "OpLine";
3959     case OpExtension: return "OpExtension";
3960     case OpExtInstImport: return "OpExtInstImport";
3961     case OpExtInst: return "OpExtInst";
3962     case OpMemoryModel: return "OpMemoryModel";
3963     case OpEntryPoint: return "OpEntryPoint";
3964     case OpExecutionMode: return "OpExecutionMode";
3965     case OpCapability: return "OpCapability";
3966     case OpTypeVoid: return "OpTypeVoid";
3967     case OpTypeBool: return "OpTypeBool";
3968     case OpTypeInt: return "OpTypeInt";
3969     case OpTypeFloat: return "OpTypeFloat";
3970     case OpTypeVector: return "OpTypeVector";
3971     case OpTypeMatrix: return "OpTypeMatrix";
3972     case OpTypeImage: return "OpTypeImage";
3973     case OpTypeSampler: return "OpTypeSampler";
3974     case OpTypeSampledImage: return "OpTypeSampledImage";
3975     case OpTypeArray: return "OpTypeArray";
3976     case OpTypeRuntimeArray: return "OpTypeRuntimeArray";
3977     case OpTypeStruct: return "OpTypeStruct";
3978     case OpTypeOpaque: return "OpTypeOpaque";
3979     case OpTypePointer: return "OpTypePointer";
3980     case OpTypeFunction: return "OpTypeFunction";
3981     case OpTypeEvent: return "OpTypeEvent";
3982     case OpTypeDeviceEvent: return "OpTypeDeviceEvent";
3983     case OpTypeReserveId: return "OpTypeReserveId";
3984     case OpTypeQueue: return "OpTypeQueue";
3985     case OpTypePipe: return "OpTypePipe";
3986     case OpTypeForwardPointer: return "OpTypeForwardPointer";
3987     case OpConstantTrue: return "OpConstantTrue";
3988     case OpConstantFalse: return "OpConstantFalse";
3989     case OpConstant: return "OpConstant";
3990     case OpConstantComposite: return "OpConstantComposite";
3991     case OpConstantSampler: return "OpConstantSampler";
3992     case OpConstantNull: return "OpConstantNull";
3993     case OpSpecConstantTrue: return "OpSpecConstantTrue";
3994     case OpSpecConstantFalse: return "OpSpecConstantFalse";
3995     case OpSpecConstant: return "OpSpecConstant";
3996     case OpSpecConstantComposite: return "OpSpecConstantComposite";
3997     case OpSpecConstantOp: return "OpSpecConstantOp";
3998     case OpFunction: return "OpFunction";
3999     case OpFunctionParameter: return "OpFunctionParameter";
4000     case OpFunctionEnd: return "OpFunctionEnd";
4001     case OpFunctionCall: return "OpFunctionCall";
4002     case OpVariable: return "OpVariable";
4003     case OpImageTexelPointer: return "OpImageTexelPointer";
4004     case OpLoad: return "OpLoad";
4005     case OpStore: return "OpStore";
4006     case OpCopyMemory: return "OpCopyMemory";
4007     case OpCopyMemorySized: return "OpCopyMemorySized";
4008     case OpAccessChain: return "OpAccessChain";
4009     case OpInBoundsAccessChain: return "OpInBoundsAccessChain";
4010     case OpPtrAccessChain: return "OpPtrAccessChain";
4011     case OpArrayLength: return "OpArrayLength";
4012     case OpGenericPtrMemSemantics: return "OpGenericPtrMemSemantics";
4013     case OpInBoundsPtrAccessChain: return "OpInBoundsPtrAccessChain";
4014     case OpDecorate: return "OpDecorate";
4015     case OpMemberDecorate: return "OpMemberDecorate";
4016     case OpDecorationGroup: return "OpDecorationGroup";
4017     case OpGroupDecorate: return "OpGroupDecorate";
4018     case OpGroupMemberDecorate: return "OpGroupMemberDecorate";
4019     case OpVectorExtractDynamic: return "OpVectorExtractDynamic";
4020     case OpVectorInsertDynamic: return "OpVectorInsertDynamic";
4021     case OpVectorShuffle: return "OpVectorShuffle";
4022     case OpCompositeConstruct: return "OpCompositeConstruct";
4023     case OpCompositeExtract: return "OpCompositeExtract";
4024     case OpCompositeInsert: return "OpCompositeInsert";
4025     case OpCopyObject: return "OpCopyObject";
4026     case OpTranspose: return "OpTranspose";
4027     case OpSampledImage: return "OpSampledImage";
4028     case OpImageSampleImplicitLod: return "OpImageSampleImplicitLod";
4029     case OpImageSampleExplicitLod: return "OpImageSampleExplicitLod";
4030     case OpImageSampleDrefImplicitLod: return "OpImageSampleDrefImplicitLod";
4031     case OpImageSampleDrefExplicitLod: return "OpImageSampleDrefExplicitLod";
4032     case OpImageSampleProjImplicitLod: return "OpImageSampleProjImplicitLod";
4033     case OpImageSampleProjExplicitLod: return "OpImageSampleProjExplicitLod";
4034     case OpImageSampleProjDrefImplicitLod: return "OpImageSampleProjDrefImplicitLod";
4035     case OpImageSampleProjDrefExplicitLod: return "OpImageSampleProjDrefExplicitLod";
4036     case OpImageFetch: return "OpImageFetch";
4037     case OpImageGather: return "OpImageGather";
4038     case OpImageDrefGather: return "OpImageDrefGather";
4039     case OpImageRead: return "OpImageRead";
4040     case OpImageWrite: return "OpImageWrite";
4041     case OpImage: return "OpImage";
4042     case OpImageQueryFormat: return "OpImageQueryFormat";
4043     case OpImageQueryOrder: return "OpImageQueryOrder";
4044     case OpImageQuerySizeLod: return "OpImageQuerySizeLod";
4045     case OpImageQuerySize: return "OpImageQuerySize";
4046     case OpImageQueryLod: return "OpImageQueryLod";
4047     case OpImageQueryLevels: return "OpImageQueryLevels";
4048     case OpImageQuerySamples: return "OpImageQuerySamples";
4049     case OpConvertFToU: return "OpConvertFToU";
4050     case OpConvertFToS: return "OpConvertFToS";
4051     case OpConvertSToF: return "OpConvertSToF";
4052     case OpConvertUToF: return "OpConvertUToF";
4053     case OpUConvert: return "OpUConvert";
4054     case OpSConvert: return "OpSConvert";
4055     case OpFConvert: return "OpFConvert";
4056     case OpQuantizeToF16: return "OpQuantizeToF16";
4057     case OpConvertPtrToU: return "OpConvertPtrToU";
4058     case OpSatConvertSToU: return "OpSatConvertSToU";
4059     case OpSatConvertUToS: return "OpSatConvertUToS";
4060     case OpConvertUToPtr: return "OpConvertUToPtr";
4061     case OpPtrCastToGeneric: return "OpPtrCastToGeneric";
4062     case OpGenericCastToPtr: return "OpGenericCastToPtr";
4063     case OpGenericCastToPtrExplicit: return "OpGenericCastToPtrExplicit";
4064     case OpBitcast: return "OpBitcast";
4065     case OpSNegate: return "OpSNegate";
4066     case OpFNegate: return "OpFNegate";
4067     case OpIAdd: return "OpIAdd";
4068     case OpFAdd: return "OpFAdd";
4069     case OpISub: return "OpISub";
4070     case OpFSub: return "OpFSub";
4071     case OpIMul: return "OpIMul";
4072     case OpFMul: return "OpFMul";
4073     case OpUDiv: return "OpUDiv";
4074     case OpSDiv: return "OpSDiv";
4075     case OpFDiv: return "OpFDiv";
4076     case OpUMod: return "OpUMod";
4077     case OpSRem: return "OpSRem";
4078     case OpSMod: return "OpSMod";
4079     case OpFRem: return "OpFRem";
4080     case OpFMod: return "OpFMod";
4081     case OpVectorTimesScalar: return "OpVectorTimesScalar";
4082     case OpMatrixTimesScalar: return "OpMatrixTimesScalar";
4083     case OpVectorTimesMatrix: return "OpVectorTimesMatrix";
4084     case OpMatrixTimesVector: return "OpMatrixTimesVector";
4085     case OpMatrixTimesMatrix: return "OpMatrixTimesMatrix";
4086     case OpOuterProduct: return "OpOuterProduct";
4087     case OpDot: return "OpDot";
4088     case OpIAddCarry: return "OpIAddCarry";
4089     case OpISubBorrow: return "OpISubBorrow";
4090     case OpUMulExtended: return "OpUMulExtended";
4091     case OpSMulExtended: return "OpSMulExtended";
4092     case OpAny: return "OpAny";
4093     case OpAll: return "OpAll";
4094     case OpIsNan: return "OpIsNan";
4095     case OpIsInf: return "OpIsInf";
4096     case OpIsFinite: return "OpIsFinite";
4097     case OpIsNormal: return "OpIsNormal";
4098     case OpSignBitSet: return "OpSignBitSet";
4099     case OpLessOrGreater: return "OpLessOrGreater";
4100     case OpOrdered: return "OpOrdered";
4101     case OpUnordered: return "OpUnordered";
4102     case OpLogicalEqual: return "OpLogicalEqual";
4103     case OpLogicalNotEqual: return "OpLogicalNotEqual";
4104     case OpLogicalOr: return "OpLogicalOr";
4105     case OpLogicalAnd: return "OpLogicalAnd";
4106     case OpLogicalNot: return "OpLogicalNot";
4107     case OpSelect: return "OpSelect";
4108     case OpIEqual: return "OpIEqual";
4109     case OpINotEqual: return "OpINotEqual";
4110     case OpUGreaterThan: return "OpUGreaterThan";
4111     case OpSGreaterThan: return "OpSGreaterThan";
4112     case OpUGreaterThanEqual: return "OpUGreaterThanEqual";
4113     case OpSGreaterThanEqual: return "OpSGreaterThanEqual";
4114     case OpULessThan: return "OpULessThan";
4115     case OpSLessThan: return "OpSLessThan";
4116     case OpULessThanEqual: return "OpULessThanEqual";
4117     case OpSLessThanEqual: return "OpSLessThanEqual";
4118     case OpFOrdEqual: return "OpFOrdEqual";
4119     case OpFUnordEqual: return "OpFUnordEqual";
4120     case OpFOrdNotEqual: return "OpFOrdNotEqual";
4121     case OpFUnordNotEqual: return "OpFUnordNotEqual";
4122     case OpFOrdLessThan: return "OpFOrdLessThan";
4123     case OpFUnordLessThan: return "OpFUnordLessThan";
4124     case OpFOrdGreaterThan: return "OpFOrdGreaterThan";
4125     case OpFUnordGreaterThan: return "OpFUnordGreaterThan";
4126     case OpFOrdLessThanEqual: return "OpFOrdLessThanEqual";
4127     case OpFUnordLessThanEqual: return "OpFUnordLessThanEqual";
4128     case OpFOrdGreaterThanEqual: return "OpFOrdGreaterThanEqual";
4129     case OpFUnordGreaterThanEqual: return "OpFUnordGreaterThanEqual";
4130     case OpShiftRightLogical: return "OpShiftRightLogical";
4131     case OpShiftRightArithmetic: return "OpShiftRightArithmetic";
4132     case OpShiftLeftLogical: return "OpShiftLeftLogical";
4133     case OpBitwiseOr: return "OpBitwiseOr";
4134     case OpBitwiseXor: return "OpBitwiseXor";
4135     case OpBitwiseAnd: return "OpBitwiseAnd";
4136     case OpNot: return "OpNot";
4137     case OpBitFieldInsert: return "OpBitFieldInsert";
4138     case OpBitFieldSExtract: return "OpBitFieldSExtract";
4139     case OpBitFieldUExtract: return "OpBitFieldUExtract";
4140     case OpBitReverse: return "OpBitReverse";
4141     case OpBitCount: return "OpBitCount";
4142     case OpDPdx: return "OpDPdx";
4143     case OpDPdy: return "OpDPdy";
4144     case OpFwidth: return "OpFwidth";
4145     case OpDPdxFine: return "OpDPdxFine";
4146     case OpDPdyFine: return "OpDPdyFine";
4147     case OpFwidthFine: return "OpFwidthFine";
4148     case OpDPdxCoarse: return "OpDPdxCoarse";
4149     case OpDPdyCoarse: return "OpDPdyCoarse";
4150     case OpFwidthCoarse: return "OpFwidthCoarse";
4151     case OpEmitVertex: return "OpEmitVertex";
4152     case OpEndPrimitive: return "OpEndPrimitive";
4153     case OpEmitStreamVertex: return "OpEmitStreamVertex";
4154     case OpEndStreamPrimitive: return "OpEndStreamPrimitive";
4155     case OpControlBarrier: return "OpControlBarrier";
4156     case OpMemoryBarrier: return "OpMemoryBarrier";
4157     case OpAtomicLoad: return "OpAtomicLoad";
4158     case OpAtomicStore: return "OpAtomicStore";
4159     case OpAtomicExchange: return "OpAtomicExchange";
4160     case OpAtomicCompareExchange: return "OpAtomicCompareExchange";
4161     case OpAtomicCompareExchangeWeak: return "OpAtomicCompareExchangeWeak";
4162     case OpAtomicIIncrement: return "OpAtomicIIncrement";
4163     case OpAtomicIDecrement: return "OpAtomicIDecrement";
4164     case OpAtomicIAdd: return "OpAtomicIAdd";
4165     case OpAtomicISub: return "OpAtomicISub";
4166     case OpAtomicSMin: return "OpAtomicSMin";
4167     case OpAtomicUMin: return "OpAtomicUMin";
4168     case OpAtomicSMax: return "OpAtomicSMax";
4169     case OpAtomicUMax: return "OpAtomicUMax";
4170     case OpAtomicAnd: return "OpAtomicAnd";
4171     case OpAtomicOr: return "OpAtomicOr";
4172     case OpAtomicXor: return "OpAtomicXor";
4173     case OpPhi: return "OpPhi";
4174     case OpLoopMerge: return "OpLoopMerge";
4175     case OpSelectionMerge: return "OpSelectionMerge";
4176     case OpLabel: return "OpLabel";
4177     case OpBranch: return "OpBranch";
4178     case OpBranchConditional: return "OpBranchConditional";
4179     case OpSwitch: return "OpSwitch";
4180     case OpKill: return "OpKill";
4181     case OpReturn: return "OpReturn";
4182     case OpReturnValue: return "OpReturnValue";
4183     case OpUnreachable: return "OpUnreachable";
4184     case OpLifetimeStart: return "OpLifetimeStart";
4185     case OpLifetimeStop: return "OpLifetimeStop";
4186     case OpGroupAsyncCopy: return "OpGroupAsyncCopy";
4187     case OpGroupWaitEvents: return "OpGroupWaitEvents";
4188     case OpGroupAll: return "OpGroupAll";
4189     case OpGroupAny: return "OpGroupAny";
4190     case OpGroupBroadcast: return "OpGroupBroadcast";
4191     case OpGroupIAdd: return "OpGroupIAdd";
4192     case OpGroupFAdd: return "OpGroupFAdd";
4193     case OpGroupFMin: return "OpGroupFMin";
4194     case OpGroupUMin: return "OpGroupUMin";
4195     case OpGroupSMin: return "OpGroupSMin";
4196     case OpGroupFMax: return "OpGroupFMax";
4197     case OpGroupUMax: return "OpGroupUMax";
4198     case OpGroupSMax: return "OpGroupSMax";
4199     case OpReadPipe: return "OpReadPipe";
4200     case OpWritePipe: return "OpWritePipe";
4201     case OpReservedReadPipe: return "OpReservedReadPipe";
4202     case OpReservedWritePipe: return "OpReservedWritePipe";
4203     case OpReserveReadPipePackets: return "OpReserveReadPipePackets";
4204     case OpReserveWritePipePackets: return "OpReserveWritePipePackets";
4205     case OpCommitReadPipe: return "OpCommitReadPipe";
4206     case OpCommitWritePipe: return "OpCommitWritePipe";
4207     case OpIsValidReserveId: return "OpIsValidReserveId";
4208     case OpGetNumPipePackets: return "OpGetNumPipePackets";
4209     case OpGetMaxPipePackets: return "OpGetMaxPipePackets";
4210     case OpGroupReserveReadPipePackets: return "OpGroupReserveReadPipePackets";
4211     case OpGroupReserveWritePipePackets: return "OpGroupReserveWritePipePackets";
4212     case OpGroupCommitReadPipe: return "OpGroupCommitReadPipe";
4213     case OpGroupCommitWritePipe: return "OpGroupCommitWritePipe";
4214     case OpEnqueueMarker: return "OpEnqueueMarker";
4215     case OpEnqueueKernel: return "OpEnqueueKernel";
4216     case OpGetKernelNDrangeSubGroupCount: return "OpGetKernelNDrangeSubGroupCount";
4217     case OpGetKernelNDrangeMaxSubGroupSize: return "OpGetKernelNDrangeMaxSubGroupSize";
4218     case OpGetKernelWorkGroupSize: return "OpGetKernelWorkGroupSize";
4219     case OpGetKernelPreferredWorkGroupSizeMultiple: return "OpGetKernelPreferredWorkGroupSizeMultiple";
4220     case OpRetainEvent: return "OpRetainEvent";
4221     case OpReleaseEvent: return "OpReleaseEvent";
4222     case OpCreateUserEvent: return "OpCreateUserEvent";
4223     case OpIsValidEvent: return "OpIsValidEvent";
4224     case OpSetUserEventStatus: return "OpSetUserEventStatus";
4225     case OpCaptureEventProfilingInfo: return "OpCaptureEventProfilingInfo";
4226     case OpGetDefaultQueue: return "OpGetDefaultQueue";
4227     case OpBuildNDRange: return "OpBuildNDRange";
4228     case OpImageSparseSampleImplicitLod: return "OpImageSparseSampleImplicitLod";
4229     case OpImageSparseSampleExplicitLod: return "OpImageSparseSampleExplicitLod";
4230     case OpImageSparseSampleDrefImplicitLod: return "OpImageSparseSampleDrefImplicitLod";
4231     case OpImageSparseSampleDrefExplicitLod: return "OpImageSparseSampleDrefExplicitLod";
4232     case OpImageSparseSampleProjImplicitLod: return "OpImageSparseSampleProjImplicitLod";
4233     case OpImageSparseSampleProjExplicitLod: return "OpImageSparseSampleProjExplicitLod";
4234     case OpImageSparseSampleProjDrefImplicitLod: return "OpImageSparseSampleProjDrefImplicitLod";
4235     case OpImageSparseSampleProjDrefExplicitLod: return "OpImageSparseSampleProjDrefExplicitLod";
4236     case OpImageSparseFetch: return "OpImageSparseFetch";
4237     case OpImageSparseGather: return "OpImageSparseGather";
4238     case OpImageSparseDrefGather: return "OpImageSparseDrefGather";
4239     case OpImageSparseTexelsResident: return "OpImageSparseTexelsResident";
4240     case OpNoLine: return "OpNoLine";
4241     case OpAtomicFlagTestAndSet: return "OpAtomicFlagTestAndSet";
4242     case OpAtomicFlagClear: return "OpAtomicFlagClear";
4243     case OpImageSparseRead: return "OpImageSparseRead";
4244     case OpSizeOf: return "OpSizeOf";
4245     case OpTypePipeStorage: return "OpTypePipeStorage";
4246     case OpConstantPipeStorage: return "OpConstantPipeStorage";
4247     case OpCreatePipeFromPipeStorage: return "OpCreatePipeFromPipeStorage";
4248     case OpGetKernelLocalSizeForSubgroupCount: return "OpGetKernelLocalSizeForSubgroupCount";
4249     case OpGetKernelMaxNumSubgroups: return "OpGetKernelMaxNumSubgroups";
4250     case OpTypeNamedBarrier: return "OpTypeNamedBarrier";
4251     case OpNamedBarrierInitialize: return "OpNamedBarrierInitialize";
4252     case OpMemoryNamedBarrier: return "OpMemoryNamedBarrier";
4253     case OpModuleProcessed: return "OpModuleProcessed";
4254     case OpExecutionModeId: return "OpExecutionModeId";
4255     case OpDecorateId: return "OpDecorateId";
4256     case OpGroupNonUniformElect: return "OpGroupNonUniformElect";
4257     case OpGroupNonUniformAll: return "OpGroupNonUniformAll";
4258     case OpGroupNonUniformAny: return "OpGroupNonUniformAny";
4259     case OpGroupNonUniformAllEqual: return "OpGroupNonUniformAllEqual";
4260     case OpGroupNonUniformBroadcast: return "OpGroupNonUniformBroadcast";
4261     case OpGroupNonUniformBroadcastFirst: return "OpGroupNonUniformBroadcastFirst";
4262     case OpGroupNonUniformBallot: return "OpGroupNonUniformBallot";
4263     case OpGroupNonUniformInverseBallot: return "OpGroupNonUniformInverseBallot";
4264     case OpGroupNonUniformBallotBitExtract: return "OpGroupNonUniformBallotBitExtract";
4265     case OpGroupNonUniformBallotBitCount: return "OpGroupNonUniformBallotBitCount";
4266     case OpGroupNonUniformBallotFindLSB: return "OpGroupNonUniformBallotFindLSB";
4267     case OpGroupNonUniformBallotFindMSB: return "OpGroupNonUniformBallotFindMSB";
4268     case OpGroupNonUniformShuffle: return "OpGroupNonUniformShuffle";
4269     case OpGroupNonUniformShuffleXor: return "OpGroupNonUniformShuffleXor";
4270     case OpGroupNonUniformShuffleUp: return "OpGroupNonUniformShuffleUp";
4271     case OpGroupNonUniformShuffleDown: return "OpGroupNonUniformShuffleDown";
4272     case OpGroupNonUniformIAdd: return "OpGroupNonUniformIAdd";
4273     case OpGroupNonUniformFAdd: return "OpGroupNonUniformFAdd";
4274     case OpGroupNonUniformIMul: return "OpGroupNonUniformIMul";
4275     case OpGroupNonUniformFMul: return "OpGroupNonUniformFMul";
4276     case OpGroupNonUniformSMin: return "OpGroupNonUniformSMin";
4277     case OpGroupNonUniformUMin: return "OpGroupNonUniformUMin";
4278     case OpGroupNonUniformFMin: return "OpGroupNonUniformFMin";
4279     case OpGroupNonUniformSMax: return "OpGroupNonUniformSMax";
4280     case OpGroupNonUniformUMax: return "OpGroupNonUniformUMax";
4281     case OpGroupNonUniformFMax: return "OpGroupNonUniformFMax";
4282     case OpGroupNonUniformBitwiseAnd: return "OpGroupNonUniformBitwiseAnd";
4283     case OpGroupNonUniformBitwiseOr: return "OpGroupNonUniformBitwiseOr";
4284     case OpGroupNonUniformBitwiseXor: return "OpGroupNonUniformBitwiseXor";
4285     case OpGroupNonUniformLogicalAnd: return "OpGroupNonUniformLogicalAnd";
4286     case OpGroupNonUniformLogicalOr: return "OpGroupNonUniformLogicalOr";
4287     case OpGroupNonUniformLogicalXor: return "OpGroupNonUniformLogicalXor";
4288     case OpGroupNonUniformQuadBroadcast: return "OpGroupNonUniformQuadBroadcast";
4289     case OpGroupNonUniformQuadSwap: return "OpGroupNonUniformQuadSwap";
4290     case OpCopyLogical: return "OpCopyLogical";
4291     case OpPtrEqual: return "OpPtrEqual";
4292     case OpPtrNotEqual: return "OpPtrNotEqual";
4293     case OpPtrDiff: return "OpPtrDiff";
4294     case OpColorAttachmentReadEXT: return "OpColorAttachmentReadEXT";
4295     case OpDepthAttachmentReadEXT: return "OpDepthAttachmentReadEXT";
4296     case OpStencilAttachmentReadEXT: return "OpStencilAttachmentReadEXT";
4297     case OpTerminateInvocation: return "OpTerminateInvocation";
4298     case OpSubgroupBallotKHR: return "OpSubgroupBallotKHR";
4299     case OpSubgroupFirstInvocationKHR: return "OpSubgroupFirstInvocationKHR";
4300     case OpSubgroupAllKHR: return "OpSubgroupAllKHR";
4301     case OpSubgroupAnyKHR: return "OpSubgroupAnyKHR";
4302     case OpSubgroupAllEqualKHR: return "OpSubgroupAllEqualKHR";
4303     case OpGroupNonUniformRotateKHR: return "OpGroupNonUniformRotateKHR";
4304     case OpSubgroupReadInvocationKHR: return "OpSubgroupReadInvocationKHR";
4305     case OpExtInstWithForwardRefsKHR: return "OpExtInstWithForwardRefsKHR";
4306     case OpTraceRayKHR: return "OpTraceRayKHR";
4307     case OpExecuteCallableKHR: return "OpExecuteCallableKHR";
4308     case OpConvertUToAccelerationStructureKHR: return "OpConvertUToAccelerationStructureKHR";
4309     case OpIgnoreIntersectionKHR: return "OpIgnoreIntersectionKHR";
4310     case OpTerminateRayKHR: return "OpTerminateRayKHR";
4311     case OpSDot: return "OpSDot";
4312     case OpUDot: return "OpUDot";
4313     case OpSUDot: return "OpSUDot";
4314     case OpSDotAccSat: return "OpSDotAccSat";
4315     case OpUDotAccSat: return "OpUDotAccSat";
4316     case OpSUDotAccSat: return "OpSUDotAccSat";
4317     case OpTypeCooperativeMatrixKHR: return "OpTypeCooperativeMatrixKHR";
4318     case OpCooperativeMatrixLoadKHR: return "OpCooperativeMatrixLoadKHR";
4319     case OpCooperativeMatrixStoreKHR: return "OpCooperativeMatrixStoreKHR";
4320     case OpCooperativeMatrixMulAddKHR: return "OpCooperativeMatrixMulAddKHR";
4321     case OpCooperativeMatrixLengthKHR: return "OpCooperativeMatrixLengthKHR";
4322     case OpConstantCompositeReplicateEXT: return "OpConstantCompositeReplicateEXT";
4323     case OpSpecConstantCompositeReplicateEXT: return "OpSpecConstantCompositeReplicateEXT";
4324     case OpCompositeConstructReplicateEXT: return "OpCompositeConstructReplicateEXT";
4325     case OpTypeRayQueryKHR: return "OpTypeRayQueryKHR";
4326     case OpRayQueryInitializeKHR: return "OpRayQueryInitializeKHR";
4327     case OpRayQueryTerminateKHR: return "OpRayQueryTerminateKHR";
4328     case OpRayQueryGenerateIntersectionKHR: return "OpRayQueryGenerateIntersectionKHR";
4329     case OpRayQueryConfirmIntersectionKHR: return "OpRayQueryConfirmIntersectionKHR";
4330     case OpRayQueryProceedKHR: return "OpRayQueryProceedKHR";
4331     case OpRayQueryGetIntersectionTypeKHR: return "OpRayQueryGetIntersectionTypeKHR";
4332     case OpImageSampleWeightedQCOM: return "OpImageSampleWeightedQCOM";
4333     case OpImageBoxFilterQCOM: return "OpImageBoxFilterQCOM";
4334     case OpImageBlockMatchSSDQCOM: return "OpImageBlockMatchSSDQCOM";
4335     case OpImageBlockMatchSADQCOM: return "OpImageBlockMatchSADQCOM";
4336     case OpImageBlockMatchWindowSSDQCOM: return "OpImageBlockMatchWindowSSDQCOM";
4337     case OpImageBlockMatchWindowSADQCOM: return "OpImageBlockMatchWindowSADQCOM";
4338     case OpImageBlockMatchGatherSSDQCOM: return "OpImageBlockMatchGatherSSDQCOM";
4339     case OpImageBlockMatchGatherSADQCOM: return "OpImageBlockMatchGatherSADQCOM";
4340     case OpGroupIAddNonUniformAMD: return "OpGroupIAddNonUniformAMD";
4341     case OpGroupFAddNonUniformAMD: return "OpGroupFAddNonUniformAMD";
4342     case OpGroupFMinNonUniformAMD: return "OpGroupFMinNonUniformAMD";
4343     case OpGroupUMinNonUniformAMD: return "OpGroupUMinNonUniformAMD";
4344     case OpGroupSMinNonUniformAMD: return "OpGroupSMinNonUniformAMD";
4345     case OpGroupFMaxNonUniformAMD: return "OpGroupFMaxNonUniformAMD";
4346     case OpGroupUMaxNonUniformAMD: return "OpGroupUMaxNonUniformAMD";
4347     case OpGroupSMaxNonUniformAMD: return "OpGroupSMaxNonUniformAMD";
4348     case OpFragmentMaskFetchAMD: return "OpFragmentMaskFetchAMD";
4349     case OpFragmentFetchAMD: return "OpFragmentFetchAMD";
4350     case OpReadClockKHR: return "OpReadClockKHR";
4351     case OpFinalizeNodePayloadsAMDX: return "OpFinalizeNodePayloadsAMDX";
4352     case OpFinishWritingNodePayloadAMDX: return "OpFinishWritingNodePayloadAMDX";
4353     case OpInitializeNodePayloadsAMDX: return "OpInitializeNodePayloadsAMDX";
4354     case OpGroupNonUniformQuadAllKHR: return "OpGroupNonUniformQuadAllKHR";
4355     case OpGroupNonUniformQuadAnyKHR: return "OpGroupNonUniformQuadAnyKHR";
4356     case OpHitObjectRecordHitMotionNV: return "OpHitObjectRecordHitMotionNV";
4357     case OpHitObjectRecordHitWithIndexMotionNV: return "OpHitObjectRecordHitWithIndexMotionNV";
4358     case OpHitObjectRecordMissMotionNV: return "OpHitObjectRecordMissMotionNV";
4359     case OpHitObjectGetWorldToObjectNV: return "OpHitObjectGetWorldToObjectNV";
4360     case OpHitObjectGetObjectToWorldNV: return "OpHitObjectGetObjectToWorldNV";
4361     case OpHitObjectGetObjectRayDirectionNV: return "OpHitObjectGetObjectRayDirectionNV";
4362     case OpHitObjectGetObjectRayOriginNV: return "OpHitObjectGetObjectRayOriginNV";
4363     case OpHitObjectTraceRayMotionNV: return "OpHitObjectTraceRayMotionNV";
4364     case OpHitObjectGetShaderRecordBufferHandleNV: return "OpHitObjectGetShaderRecordBufferHandleNV";
4365     case OpHitObjectGetShaderBindingTableRecordIndexNV: return "OpHitObjectGetShaderBindingTableRecordIndexNV";
4366     case OpHitObjectRecordEmptyNV: return "OpHitObjectRecordEmptyNV";
4367     case OpHitObjectTraceRayNV: return "OpHitObjectTraceRayNV";
4368     case OpHitObjectRecordHitNV: return "OpHitObjectRecordHitNV";
4369     case OpHitObjectRecordHitWithIndexNV: return "OpHitObjectRecordHitWithIndexNV";
4370     case OpHitObjectRecordMissNV: return "OpHitObjectRecordMissNV";
4371     case OpHitObjectExecuteShaderNV: return "OpHitObjectExecuteShaderNV";
4372     case OpHitObjectGetCurrentTimeNV: return "OpHitObjectGetCurrentTimeNV";
4373     case OpHitObjectGetAttributesNV: return "OpHitObjectGetAttributesNV";
4374     case OpHitObjectGetHitKindNV: return "OpHitObjectGetHitKindNV";
4375     case OpHitObjectGetPrimitiveIndexNV: return "OpHitObjectGetPrimitiveIndexNV";
4376     case OpHitObjectGetGeometryIndexNV: return "OpHitObjectGetGeometryIndexNV";
4377     case OpHitObjectGetInstanceIdNV: return "OpHitObjectGetInstanceIdNV";
4378     case OpHitObjectGetInstanceCustomIndexNV: return "OpHitObjectGetInstanceCustomIndexNV";
4379     case OpHitObjectGetWorldRayDirectionNV: return "OpHitObjectGetWorldRayDirectionNV";
4380     case OpHitObjectGetWorldRayOriginNV: return "OpHitObjectGetWorldRayOriginNV";
4381     case OpHitObjectGetRayTMaxNV: return "OpHitObjectGetRayTMaxNV";
4382     case OpHitObjectGetRayTMinNV: return "OpHitObjectGetRayTMinNV";
4383     case OpHitObjectIsEmptyNV: return "OpHitObjectIsEmptyNV";
4384     case OpHitObjectIsHitNV: return "OpHitObjectIsHitNV";
4385     case OpHitObjectIsMissNV: return "OpHitObjectIsMissNV";
4386     case OpReorderThreadWithHitObjectNV: return "OpReorderThreadWithHitObjectNV";
4387     case OpReorderThreadWithHintNV: return "OpReorderThreadWithHintNV";
4388     case OpTypeHitObjectNV: return "OpTypeHitObjectNV";
4389     case OpImageSampleFootprintNV: return "OpImageSampleFootprintNV";
4390     case OpEmitMeshTasksEXT: return "OpEmitMeshTasksEXT";
4391     case OpSetMeshOutputsEXT: return "OpSetMeshOutputsEXT";
4392     case OpGroupNonUniformPartitionNV: return "OpGroupNonUniformPartitionNV";
4393     case OpWritePackedPrimitiveIndices4x8NV: return "OpWritePackedPrimitiveIndices4x8NV";
4394     case OpFetchMicroTriangleVertexPositionNV: return "OpFetchMicroTriangleVertexPositionNV";
4395     case OpFetchMicroTriangleVertexBarycentricNV: return "OpFetchMicroTriangleVertexBarycentricNV";
4396     case OpReportIntersectionKHR: return "OpReportIntersectionKHR";
4397     case OpIgnoreIntersectionNV: return "OpIgnoreIntersectionNV";
4398     case OpTerminateRayNV: return "OpTerminateRayNV";
4399     case OpTraceNV: return "OpTraceNV";
4400     case OpTraceMotionNV: return "OpTraceMotionNV";
4401     case OpTraceRayMotionNV: return "OpTraceRayMotionNV";
4402     case OpRayQueryGetIntersectionTriangleVertexPositionsKHR: return "OpRayQueryGetIntersectionTriangleVertexPositionsKHR";
4403     case OpTypeAccelerationStructureKHR: return "OpTypeAccelerationStructureKHR";
4404     case OpExecuteCallableNV: return "OpExecuteCallableNV";
4405     case OpTypeCooperativeMatrixNV: return "OpTypeCooperativeMatrixNV";
4406     case OpCooperativeMatrixLoadNV: return "OpCooperativeMatrixLoadNV";
4407     case OpCooperativeMatrixStoreNV: return "OpCooperativeMatrixStoreNV";
4408     case OpCooperativeMatrixMulAddNV: return "OpCooperativeMatrixMulAddNV";
4409     case OpCooperativeMatrixLengthNV: return "OpCooperativeMatrixLengthNV";
4410     case OpBeginInvocationInterlockEXT: return "OpBeginInvocationInterlockEXT";
4411     case OpEndInvocationInterlockEXT: return "OpEndInvocationInterlockEXT";
4412     case OpDemoteToHelperInvocation: return "OpDemoteToHelperInvocation";
4413     case OpIsHelperInvocationEXT: return "OpIsHelperInvocationEXT";
4414     case OpConvertUToImageNV: return "OpConvertUToImageNV";
4415     case OpConvertUToSamplerNV: return "OpConvertUToSamplerNV";
4416     case OpConvertImageToUNV: return "OpConvertImageToUNV";
4417     case OpConvertSamplerToUNV: return "OpConvertSamplerToUNV";
4418     case OpConvertUToSampledImageNV: return "OpConvertUToSampledImageNV";
4419     case OpConvertSampledImageToUNV: return "OpConvertSampledImageToUNV";
4420     case OpSamplerImageAddressingModeNV: return "OpSamplerImageAddressingModeNV";
4421     case OpRawAccessChainNV: return "OpRawAccessChainNV";
4422     case OpSubgroupShuffleINTEL: return "OpSubgroupShuffleINTEL";
4423     case OpSubgroupShuffleDownINTEL: return "OpSubgroupShuffleDownINTEL";
4424     case OpSubgroupShuffleUpINTEL: return "OpSubgroupShuffleUpINTEL";
4425     case OpSubgroupShuffleXorINTEL: return "OpSubgroupShuffleXorINTEL";
4426     case OpSubgroupBlockReadINTEL: return "OpSubgroupBlockReadINTEL";
4427     case OpSubgroupBlockWriteINTEL: return "OpSubgroupBlockWriteINTEL";
4428     case OpSubgroupImageBlockReadINTEL: return "OpSubgroupImageBlockReadINTEL";
4429     case OpSubgroupImageBlockWriteINTEL: return "OpSubgroupImageBlockWriteINTEL";
4430     case OpSubgroupImageMediaBlockReadINTEL: return "OpSubgroupImageMediaBlockReadINTEL";
4431     case OpSubgroupImageMediaBlockWriteINTEL: return "OpSubgroupImageMediaBlockWriteINTEL";
4432     case OpUCountLeadingZerosINTEL: return "OpUCountLeadingZerosINTEL";
4433     case OpUCountTrailingZerosINTEL: return "OpUCountTrailingZerosINTEL";
4434     case OpAbsISubINTEL: return "OpAbsISubINTEL";
4435     case OpAbsUSubINTEL: return "OpAbsUSubINTEL";
4436     case OpIAddSatINTEL: return "OpIAddSatINTEL";
4437     case OpUAddSatINTEL: return "OpUAddSatINTEL";
4438     case OpIAverageINTEL: return "OpIAverageINTEL";
4439     case OpUAverageINTEL: return "OpUAverageINTEL";
4440     case OpIAverageRoundedINTEL: return "OpIAverageRoundedINTEL";
4441     case OpUAverageRoundedINTEL: return "OpUAverageRoundedINTEL";
4442     case OpISubSatINTEL: return "OpISubSatINTEL";
4443     case OpUSubSatINTEL: return "OpUSubSatINTEL";
4444     case OpIMul32x16INTEL: return "OpIMul32x16INTEL";
4445     case OpUMul32x16INTEL: return "OpUMul32x16INTEL";
4446     case OpConstantFunctionPointerINTEL: return "OpConstantFunctionPointerINTEL";
4447     case OpFunctionPointerCallINTEL: return "OpFunctionPointerCallINTEL";
4448     case OpAsmTargetINTEL: return "OpAsmTargetINTEL";
4449     case OpAsmINTEL: return "OpAsmINTEL";
4450     case OpAsmCallINTEL: return "OpAsmCallINTEL";
4451     case OpAtomicFMinEXT: return "OpAtomicFMinEXT";
4452     case OpAtomicFMaxEXT: return "OpAtomicFMaxEXT";
4453     case OpAssumeTrueKHR: return "OpAssumeTrueKHR";
4454     case OpExpectKHR: return "OpExpectKHR";
4455     case OpDecorateString: return "OpDecorateString";
4456     case OpMemberDecorateString: return "OpMemberDecorateString";
4457     case OpVmeImageINTEL: return "OpVmeImageINTEL";
4458     case OpTypeVmeImageINTEL: return "OpTypeVmeImageINTEL";
4459     case OpTypeAvcImePayloadINTEL: return "OpTypeAvcImePayloadINTEL";
4460     case OpTypeAvcRefPayloadINTEL: return "OpTypeAvcRefPayloadINTEL";
4461     case OpTypeAvcSicPayloadINTEL: return "OpTypeAvcSicPayloadINTEL";
4462     case OpTypeAvcMcePayloadINTEL: return "OpTypeAvcMcePayloadINTEL";
4463     case OpTypeAvcMceResultINTEL: return "OpTypeAvcMceResultINTEL";
4464     case OpTypeAvcImeResultINTEL: return "OpTypeAvcImeResultINTEL";
4465     case OpTypeAvcImeResultSingleReferenceStreamoutINTEL: return "OpTypeAvcImeResultSingleReferenceStreamoutINTEL";
4466     case OpTypeAvcImeResultDualReferenceStreamoutINTEL: return "OpTypeAvcImeResultDualReferenceStreamoutINTEL";
4467     case OpTypeAvcImeSingleReferenceStreaminINTEL: return "OpTypeAvcImeSingleReferenceStreaminINTEL";
4468     case OpTypeAvcImeDualReferenceStreaminINTEL: return "OpTypeAvcImeDualReferenceStreaminINTEL";
4469     case OpTypeAvcRefResultINTEL: return "OpTypeAvcRefResultINTEL";
4470     case OpTypeAvcSicResultINTEL: return "OpTypeAvcSicResultINTEL";
4471     case OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL: return "OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL";
4472     case OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL: return "OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL";
4473     case OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL: return "OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL";
4474     case OpSubgroupAvcMceSetInterShapePenaltyINTEL: return "OpSubgroupAvcMceSetInterShapePenaltyINTEL";
4475     case OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL: return "OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL";
4476     case OpSubgroupAvcMceSetInterDirectionPenaltyINTEL: return "OpSubgroupAvcMceSetInterDirectionPenaltyINTEL";
4477     case OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL: return "OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL";
4478     case OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL: return "OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL";
4479     case OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL: return "OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL";
4480     case OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL: return "OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL";
4481     case OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL: return "OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL";
4482     case OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL: return "OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL";
4483     case OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL: return "OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL";
4484     case OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL: return "OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL";
4485     case OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL: return "OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL";
4486     case OpSubgroupAvcMceSetAcOnlyHaarINTEL: return "OpSubgroupAvcMceSetAcOnlyHaarINTEL";
4487     case OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL: return "OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL";
4488     case OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL: return "OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL";
4489     case OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL: return "OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL";
4490     case OpSubgroupAvcMceConvertToImePayloadINTEL: return "OpSubgroupAvcMceConvertToImePayloadINTEL";
4491     case OpSubgroupAvcMceConvertToImeResultINTEL: return "OpSubgroupAvcMceConvertToImeResultINTEL";
4492     case OpSubgroupAvcMceConvertToRefPayloadINTEL: return "OpSubgroupAvcMceConvertToRefPayloadINTEL";
4493     case OpSubgroupAvcMceConvertToRefResultINTEL: return "OpSubgroupAvcMceConvertToRefResultINTEL";
4494     case OpSubgroupAvcMceConvertToSicPayloadINTEL: return "OpSubgroupAvcMceConvertToSicPayloadINTEL";
4495     case OpSubgroupAvcMceConvertToSicResultINTEL: return "OpSubgroupAvcMceConvertToSicResultINTEL";
4496     case OpSubgroupAvcMceGetMotionVectorsINTEL: return "OpSubgroupAvcMceGetMotionVectorsINTEL";
4497     case OpSubgroupAvcMceGetInterDistortionsINTEL: return "OpSubgroupAvcMceGetInterDistortionsINTEL";
4498     case OpSubgroupAvcMceGetBestInterDistortionsINTEL: return "OpSubgroupAvcMceGetBestInterDistortionsINTEL";
4499     case OpSubgroupAvcMceGetInterMajorShapeINTEL: return "OpSubgroupAvcMceGetInterMajorShapeINTEL";
4500     case OpSubgroupAvcMceGetInterMinorShapeINTEL: return "OpSubgroupAvcMceGetInterMinorShapeINTEL";
4501     case OpSubgroupAvcMceGetInterDirectionsINTEL: return "OpSubgroupAvcMceGetInterDirectionsINTEL";
4502     case OpSubgroupAvcMceGetInterMotionVectorCountINTEL: return "OpSubgroupAvcMceGetInterMotionVectorCountINTEL";
4503     case OpSubgroupAvcMceGetInterReferenceIdsINTEL: return "OpSubgroupAvcMceGetInterReferenceIdsINTEL";
4504     case OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL: return "OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL";
4505     case OpSubgroupAvcImeInitializeINTEL: return "OpSubgroupAvcImeInitializeINTEL";
4506     case OpSubgroupAvcImeSetSingleReferenceINTEL: return "OpSubgroupAvcImeSetSingleReferenceINTEL";
4507     case OpSubgroupAvcImeSetDualReferenceINTEL: return "OpSubgroupAvcImeSetDualReferenceINTEL";
4508     case OpSubgroupAvcImeRefWindowSizeINTEL: return "OpSubgroupAvcImeRefWindowSizeINTEL";
4509     case OpSubgroupAvcImeAdjustRefOffsetINTEL: return "OpSubgroupAvcImeAdjustRefOffsetINTEL";
4510     case OpSubgroupAvcImeConvertToMcePayloadINTEL: return "OpSubgroupAvcImeConvertToMcePayloadINTEL";
4511     case OpSubgroupAvcImeSetMaxMotionVectorCountINTEL: return "OpSubgroupAvcImeSetMaxMotionVectorCountINTEL";
4512     case OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL: return "OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL";
4513     case OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL: return "OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL";
4514     case OpSubgroupAvcImeSetWeightedSadINTEL: return "OpSubgroupAvcImeSetWeightedSadINTEL";
4515     case OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL: return "OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL";
4516     case OpSubgroupAvcImeEvaluateWithDualReferenceINTEL: return "OpSubgroupAvcImeEvaluateWithDualReferenceINTEL";
4517     case OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL: return "OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL";
4518     case OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL: return "OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL";
4519     case OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL: return "OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL";
4520     case OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL: return "OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL";
4521     case OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL: return "OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL";
4522     case OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL: return "OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL";
4523     case OpSubgroupAvcImeConvertToMceResultINTEL: return "OpSubgroupAvcImeConvertToMceResultINTEL";
4524     case OpSubgroupAvcImeGetSingleReferenceStreaminINTEL: return "OpSubgroupAvcImeGetSingleReferenceStreaminINTEL";
4525     case OpSubgroupAvcImeGetDualReferenceStreaminINTEL: return "OpSubgroupAvcImeGetDualReferenceStreaminINTEL";
4526     case OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL: return "OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL";
4527     case OpSubgroupAvcImeStripDualReferenceStreamoutINTEL: return "OpSubgroupAvcImeStripDualReferenceStreamoutINTEL";
4528     case OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL: return "OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL";
4529     case OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL: return "OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL";
4530     case OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL: return "OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL";
4531     case OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL: return "OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL";
4532     case OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL: return "OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL";
4533     case OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL: return "OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL";
4534     case OpSubgroupAvcImeGetBorderReachedINTEL: return "OpSubgroupAvcImeGetBorderReachedINTEL";
4535     case OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL: return "OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL";
4536     case OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL: return "OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL";
4537     case OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL: return "OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL";
4538     case OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL: return "OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL";
4539     case OpSubgroupAvcFmeInitializeINTEL: return "OpSubgroupAvcFmeInitializeINTEL";
4540     case OpSubgroupAvcBmeInitializeINTEL: return "OpSubgroupAvcBmeInitializeINTEL";
4541     case OpSubgroupAvcRefConvertToMcePayloadINTEL: return "OpSubgroupAvcRefConvertToMcePayloadINTEL";
4542     case OpSubgroupAvcRefSetBidirectionalMixDisableINTEL: return "OpSubgroupAvcRefSetBidirectionalMixDisableINTEL";
4543     case OpSubgroupAvcRefSetBilinearFilterEnableINTEL: return "OpSubgroupAvcRefSetBilinearFilterEnableINTEL";
4544     case OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL: return "OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL";
4545     case OpSubgroupAvcRefEvaluateWithDualReferenceINTEL: return "OpSubgroupAvcRefEvaluateWithDualReferenceINTEL";
4546     case OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL: return "OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL";
4547     case OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL: return "OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL";
4548     case OpSubgroupAvcRefConvertToMceResultINTEL: return "OpSubgroupAvcRefConvertToMceResultINTEL";
4549     case OpSubgroupAvcSicInitializeINTEL: return "OpSubgroupAvcSicInitializeINTEL";
4550     case OpSubgroupAvcSicConfigureSkcINTEL: return "OpSubgroupAvcSicConfigureSkcINTEL";
4551     case OpSubgroupAvcSicConfigureIpeLumaINTEL: return "OpSubgroupAvcSicConfigureIpeLumaINTEL";
4552     case OpSubgroupAvcSicConfigureIpeLumaChromaINTEL: return "OpSubgroupAvcSicConfigureIpeLumaChromaINTEL";
4553     case OpSubgroupAvcSicGetMotionVectorMaskINTEL: return "OpSubgroupAvcSicGetMotionVectorMaskINTEL";
4554     case OpSubgroupAvcSicConvertToMcePayloadINTEL: return "OpSubgroupAvcSicConvertToMcePayloadINTEL";
4555     case OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL: return "OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL";
4556     case OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL: return "OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL";
4557     case OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL: return "OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL";
4558     case OpSubgroupAvcSicSetBilinearFilterEnableINTEL: return "OpSubgroupAvcSicSetBilinearFilterEnableINTEL";
4559     case OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL: return "OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL";
4560     case OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL: return "OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL";
4561     case OpSubgroupAvcSicEvaluateIpeINTEL: return "OpSubgroupAvcSicEvaluateIpeINTEL";
4562     case OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL: return "OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL";
4563     case OpSubgroupAvcSicEvaluateWithDualReferenceINTEL: return "OpSubgroupAvcSicEvaluateWithDualReferenceINTEL";
4564     case OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL: return "OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL";
4565     case OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL: return "OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL";
4566     case OpSubgroupAvcSicConvertToMceResultINTEL: return "OpSubgroupAvcSicConvertToMceResultINTEL";
4567     case OpSubgroupAvcSicGetIpeLumaShapeINTEL: return "OpSubgroupAvcSicGetIpeLumaShapeINTEL";
4568     case OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL: return "OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL";
4569     case OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL: return "OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL";
4570     case OpSubgroupAvcSicGetPackedIpeLumaModesINTEL: return "OpSubgroupAvcSicGetPackedIpeLumaModesINTEL";
4571     case OpSubgroupAvcSicGetIpeChromaModeINTEL: return "OpSubgroupAvcSicGetIpeChromaModeINTEL";
4572     case OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL: return "OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL";
4573     case OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL: return "OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL";
4574     case OpSubgroupAvcSicGetInterRawSadsINTEL: return "OpSubgroupAvcSicGetInterRawSadsINTEL";
4575     case OpVariableLengthArrayINTEL: return "OpVariableLengthArrayINTEL";
4576     case OpSaveMemoryINTEL: return "OpSaveMemoryINTEL";
4577     case OpRestoreMemoryINTEL: return "OpRestoreMemoryINTEL";
4578     case OpArbitraryFloatSinCosPiINTEL: return "OpArbitraryFloatSinCosPiINTEL";
4579     case OpArbitraryFloatCastINTEL: return "OpArbitraryFloatCastINTEL";
4580     case OpArbitraryFloatCastFromIntINTEL: return "OpArbitraryFloatCastFromIntINTEL";
4581     case OpArbitraryFloatCastToIntINTEL: return "OpArbitraryFloatCastToIntINTEL";
4582     case OpArbitraryFloatAddINTEL: return "OpArbitraryFloatAddINTEL";
4583     case OpArbitraryFloatSubINTEL: return "OpArbitraryFloatSubINTEL";
4584     case OpArbitraryFloatMulINTEL: return "OpArbitraryFloatMulINTEL";
4585     case OpArbitraryFloatDivINTEL: return "OpArbitraryFloatDivINTEL";
4586     case OpArbitraryFloatGTINTEL: return "OpArbitraryFloatGTINTEL";
4587     case OpArbitraryFloatGEINTEL: return "OpArbitraryFloatGEINTEL";
4588     case OpArbitraryFloatLTINTEL: return "OpArbitraryFloatLTINTEL";
4589     case OpArbitraryFloatLEINTEL: return "OpArbitraryFloatLEINTEL";
4590     case OpArbitraryFloatEQINTEL: return "OpArbitraryFloatEQINTEL";
4591     case OpArbitraryFloatRecipINTEL: return "OpArbitraryFloatRecipINTEL";
4592     case OpArbitraryFloatRSqrtINTEL: return "OpArbitraryFloatRSqrtINTEL";
4593     case OpArbitraryFloatCbrtINTEL: return "OpArbitraryFloatCbrtINTEL";
4594     case OpArbitraryFloatHypotINTEL: return "OpArbitraryFloatHypotINTEL";
4595     case OpArbitraryFloatSqrtINTEL: return "OpArbitraryFloatSqrtINTEL";
4596     case OpArbitraryFloatLogINTEL: return "OpArbitraryFloatLogINTEL";
4597     case OpArbitraryFloatLog2INTEL: return "OpArbitraryFloatLog2INTEL";
4598     case OpArbitraryFloatLog10INTEL: return "OpArbitraryFloatLog10INTEL";
4599     case OpArbitraryFloatLog1pINTEL: return "OpArbitraryFloatLog1pINTEL";
4600     case OpArbitraryFloatExpINTEL: return "OpArbitraryFloatExpINTEL";
4601     case OpArbitraryFloatExp2INTEL: return "OpArbitraryFloatExp2INTEL";
4602     case OpArbitraryFloatExp10INTEL: return "OpArbitraryFloatExp10INTEL";
4603     case OpArbitraryFloatExpm1INTEL: return "OpArbitraryFloatExpm1INTEL";
4604     case OpArbitraryFloatSinINTEL: return "OpArbitraryFloatSinINTEL";
4605     case OpArbitraryFloatCosINTEL: return "OpArbitraryFloatCosINTEL";
4606     case OpArbitraryFloatSinCosINTEL: return "OpArbitraryFloatSinCosINTEL";
4607     case OpArbitraryFloatSinPiINTEL: return "OpArbitraryFloatSinPiINTEL";
4608     case OpArbitraryFloatCosPiINTEL: return "OpArbitraryFloatCosPiINTEL";
4609     case OpArbitraryFloatASinINTEL: return "OpArbitraryFloatASinINTEL";
4610     case OpArbitraryFloatASinPiINTEL: return "OpArbitraryFloatASinPiINTEL";
4611     case OpArbitraryFloatACosINTEL: return "OpArbitraryFloatACosINTEL";
4612     case OpArbitraryFloatACosPiINTEL: return "OpArbitraryFloatACosPiINTEL";
4613     case OpArbitraryFloatATanINTEL: return "OpArbitraryFloatATanINTEL";
4614     case OpArbitraryFloatATanPiINTEL: return "OpArbitraryFloatATanPiINTEL";
4615     case OpArbitraryFloatATan2INTEL: return "OpArbitraryFloatATan2INTEL";
4616     case OpArbitraryFloatPowINTEL: return "OpArbitraryFloatPowINTEL";
4617     case OpArbitraryFloatPowRINTEL: return "OpArbitraryFloatPowRINTEL";
4618     case OpArbitraryFloatPowNINTEL: return "OpArbitraryFloatPowNINTEL";
4619     case OpLoopControlINTEL: return "OpLoopControlINTEL";
4620     case OpAliasDomainDeclINTEL: return "OpAliasDomainDeclINTEL";
4621     case OpAliasScopeDeclINTEL: return "OpAliasScopeDeclINTEL";
4622     case OpAliasScopeListDeclINTEL: return "OpAliasScopeListDeclINTEL";
4623     case OpFixedSqrtINTEL: return "OpFixedSqrtINTEL";
4624     case OpFixedRecipINTEL: return "OpFixedRecipINTEL";
4625     case OpFixedRsqrtINTEL: return "OpFixedRsqrtINTEL";
4626     case OpFixedSinINTEL: return "OpFixedSinINTEL";
4627     case OpFixedCosINTEL: return "OpFixedCosINTEL";
4628     case OpFixedSinCosINTEL: return "OpFixedSinCosINTEL";
4629     case OpFixedSinPiINTEL: return "OpFixedSinPiINTEL";
4630     case OpFixedCosPiINTEL: return "OpFixedCosPiINTEL";
4631     case OpFixedSinCosPiINTEL: return "OpFixedSinCosPiINTEL";
4632     case OpFixedLogINTEL: return "OpFixedLogINTEL";
4633     case OpFixedExpINTEL: return "OpFixedExpINTEL";
4634     case OpPtrCastToCrossWorkgroupINTEL: return "OpPtrCastToCrossWorkgroupINTEL";
4635     case OpCrossWorkgroupCastToPtrINTEL: return "OpCrossWorkgroupCastToPtrINTEL";
4636     case OpReadPipeBlockingINTEL: return "OpReadPipeBlockingINTEL";
4637     case OpWritePipeBlockingINTEL: return "OpWritePipeBlockingINTEL";
4638     case OpFPGARegINTEL: return "OpFPGARegINTEL";
4639     case OpRayQueryGetRayTMinKHR: return "OpRayQueryGetRayTMinKHR";
4640     case OpRayQueryGetRayFlagsKHR: return "OpRayQueryGetRayFlagsKHR";
4641     case OpRayQueryGetIntersectionTKHR: return "OpRayQueryGetIntersectionTKHR";
4642     case OpRayQueryGetIntersectionInstanceCustomIndexKHR: return "OpRayQueryGetIntersectionInstanceCustomIndexKHR";
4643     case OpRayQueryGetIntersectionInstanceIdKHR: return "OpRayQueryGetIntersectionInstanceIdKHR";
4644     case OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR: return "OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR";
4645     case OpRayQueryGetIntersectionGeometryIndexKHR: return "OpRayQueryGetIntersectionGeometryIndexKHR";
4646     case OpRayQueryGetIntersectionPrimitiveIndexKHR: return "OpRayQueryGetIntersectionPrimitiveIndexKHR";
4647     case OpRayQueryGetIntersectionBarycentricsKHR: return "OpRayQueryGetIntersectionBarycentricsKHR";
4648     case OpRayQueryGetIntersectionFrontFaceKHR: return "OpRayQueryGetIntersectionFrontFaceKHR";
4649     case OpRayQueryGetIntersectionCandidateAABBOpaqueKHR: return "OpRayQueryGetIntersectionCandidateAABBOpaqueKHR";
4650     case OpRayQueryGetIntersectionObjectRayDirectionKHR: return "OpRayQueryGetIntersectionObjectRayDirectionKHR";
4651     case OpRayQueryGetIntersectionObjectRayOriginKHR: return "OpRayQueryGetIntersectionObjectRayOriginKHR";
4652     case OpRayQueryGetWorldRayDirectionKHR: return "OpRayQueryGetWorldRayDirectionKHR";
4653     case OpRayQueryGetWorldRayOriginKHR: return "OpRayQueryGetWorldRayOriginKHR";
4654     case OpRayQueryGetIntersectionObjectToWorldKHR: return "OpRayQueryGetIntersectionObjectToWorldKHR";
4655     case OpRayQueryGetIntersectionWorldToObjectKHR: return "OpRayQueryGetIntersectionWorldToObjectKHR";
4656     case OpAtomicFAddEXT: return "OpAtomicFAddEXT";
4657     case OpTypeBufferSurfaceINTEL: return "OpTypeBufferSurfaceINTEL";
4658     case OpTypeStructContinuedINTEL: return "OpTypeStructContinuedINTEL";
4659     case OpConstantCompositeContinuedINTEL: return "OpConstantCompositeContinuedINTEL";
4660     case OpSpecConstantCompositeContinuedINTEL: return "OpSpecConstantCompositeContinuedINTEL";
4661     case OpCompositeConstructContinuedINTEL: return "OpCompositeConstructContinuedINTEL";
4662     case OpConvertFToBF16INTEL: return "OpConvertFToBF16INTEL";
4663     case OpConvertBF16ToFINTEL: return "OpConvertBF16ToFINTEL";
4664     case OpControlBarrierArriveINTEL: return "OpControlBarrierArriveINTEL";
4665     case OpControlBarrierWaitINTEL: return "OpControlBarrierWaitINTEL";
4666     case OpGroupIMulKHR: return "OpGroupIMulKHR";
4667     case OpGroupFMulKHR: return "OpGroupFMulKHR";
4668     case OpGroupBitwiseAndKHR: return "OpGroupBitwiseAndKHR";
4669     case OpGroupBitwiseOrKHR: return "OpGroupBitwiseOrKHR";
4670     case OpGroupBitwiseXorKHR: return "OpGroupBitwiseXorKHR";
4671     case OpGroupLogicalAndKHR: return "OpGroupLogicalAndKHR";
4672     case OpGroupLogicalOrKHR: return "OpGroupLogicalOrKHR";
4673     case OpGroupLogicalXorKHR: return "OpGroupLogicalXorKHR";
4674     case OpMaskedGatherINTEL: return "OpMaskedGatherINTEL";
4675     case OpMaskedScatterINTEL: return "OpMaskedScatterINTEL";
4676     default: return "Unknown";
4677     }
4678 }
4679 
4680 #endif /* SPV_ENABLE_UTILITY_CODE */
4681 
4682 // Overload bitwise operators for mask bit combining
4683 
operator |(ImageOperandsMask a,ImageOperandsMask b)4684 inline ImageOperandsMask operator|(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) | unsigned(b)); }
operator &(ImageOperandsMask a,ImageOperandsMask b)4685 inline ImageOperandsMask operator&(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) & unsigned(b)); }
operator ^(ImageOperandsMask a,ImageOperandsMask b)4686 inline ImageOperandsMask operator^(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) ^ unsigned(b)); }
operator ~(ImageOperandsMask a)4687 inline ImageOperandsMask operator~(ImageOperandsMask a) { return ImageOperandsMask(~unsigned(a)); }
operator |(FPFastMathModeMask a,FPFastMathModeMask b)4688 inline FPFastMathModeMask operator|(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) | unsigned(b)); }
operator &(FPFastMathModeMask a,FPFastMathModeMask b)4689 inline FPFastMathModeMask operator&(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) & unsigned(b)); }
operator ^(FPFastMathModeMask a,FPFastMathModeMask b)4690 inline FPFastMathModeMask operator^(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) ^ unsigned(b)); }
operator ~(FPFastMathModeMask a)4691 inline FPFastMathModeMask operator~(FPFastMathModeMask a) { return FPFastMathModeMask(~unsigned(a)); }
operator |(SelectionControlMask a,SelectionControlMask b)4692 inline SelectionControlMask operator|(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) | unsigned(b)); }
operator &(SelectionControlMask a,SelectionControlMask b)4693 inline SelectionControlMask operator&(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) & unsigned(b)); }
operator ^(SelectionControlMask a,SelectionControlMask b)4694 inline SelectionControlMask operator^(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) ^ unsigned(b)); }
operator ~(SelectionControlMask a)4695 inline SelectionControlMask operator~(SelectionControlMask a) { return SelectionControlMask(~unsigned(a)); }
operator |(LoopControlMask a,LoopControlMask b)4696 inline LoopControlMask operator|(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) | unsigned(b)); }
operator &(LoopControlMask a,LoopControlMask b)4697 inline LoopControlMask operator&(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) & unsigned(b)); }
operator ^(LoopControlMask a,LoopControlMask b)4698 inline LoopControlMask operator^(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) ^ unsigned(b)); }
operator ~(LoopControlMask a)4699 inline LoopControlMask operator~(LoopControlMask a) { return LoopControlMask(~unsigned(a)); }
operator |(FunctionControlMask a,FunctionControlMask b)4700 inline FunctionControlMask operator|(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) | unsigned(b)); }
operator &(FunctionControlMask a,FunctionControlMask b)4701 inline FunctionControlMask operator&(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) & unsigned(b)); }
operator ^(FunctionControlMask a,FunctionControlMask b)4702 inline FunctionControlMask operator^(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) ^ unsigned(b)); }
operator ~(FunctionControlMask a)4703 inline FunctionControlMask operator~(FunctionControlMask a) { return FunctionControlMask(~unsigned(a)); }
operator |(MemorySemanticsMask a,MemorySemanticsMask b)4704 inline MemorySemanticsMask operator|(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) | unsigned(b)); }
operator &(MemorySemanticsMask a,MemorySemanticsMask b)4705 inline MemorySemanticsMask operator&(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) & unsigned(b)); }
operator ^(MemorySemanticsMask a,MemorySemanticsMask b)4706 inline MemorySemanticsMask operator^(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) ^ unsigned(b)); }
operator ~(MemorySemanticsMask a)4707 inline MemorySemanticsMask operator~(MemorySemanticsMask a) { return MemorySemanticsMask(~unsigned(a)); }
operator |(MemoryAccessMask a,MemoryAccessMask b)4708 inline MemoryAccessMask operator|(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) | unsigned(b)); }
operator &(MemoryAccessMask a,MemoryAccessMask b)4709 inline MemoryAccessMask operator&(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) & unsigned(b)); }
operator ^(MemoryAccessMask a,MemoryAccessMask b)4710 inline MemoryAccessMask operator^(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) ^ unsigned(b)); }
operator ~(MemoryAccessMask a)4711 inline MemoryAccessMask operator~(MemoryAccessMask a) { return MemoryAccessMask(~unsigned(a)); }
operator |(KernelProfilingInfoMask a,KernelProfilingInfoMask b)4712 inline KernelProfilingInfoMask operator|(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) | unsigned(b)); }
operator &(KernelProfilingInfoMask a,KernelProfilingInfoMask b)4713 inline KernelProfilingInfoMask operator&(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) & unsigned(b)); }
operator ^(KernelProfilingInfoMask a,KernelProfilingInfoMask b)4714 inline KernelProfilingInfoMask operator^(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) ^ unsigned(b)); }
operator ~(KernelProfilingInfoMask a)4715 inline KernelProfilingInfoMask operator~(KernelProfilingInfoMask a) { return KernelProfilingInfoMask(~unsigned(a)); }
operator |(RayFlagsMask a,RayFlagsMask b)4716 inline RayFlagsMask operator|(RayFlagsMask a, RayFlagsMask b) { return RayFlagsMask(unsigned(a) | unsigned(b)); }
operator &(RayFlagsMask a,RayFlagsMask b)4717 inline RayFlagsMask operator&(RayFlagsMask a, RayFlagsMask b) { return RayFlagsMask(unsigned(a) & unsigned(b)); }
operator ^(RayFlagsMask a,RayFlagsMask b)4718 inline RayFlagsMask operator^(RayFlagsMask a, RayFlagsMask b) { return RayFlagsMask(unsigned(a) ^ unsigned(b)); }
operator ~(RayFlagsMask a)4719 inline RayFlagsMask operator~(RayFlagsMask a) { return RayFlagsMask(~unsigned(a)); }
operator |(FragmentShadingRateMask a,FragmentShadingRateMask b)4720 inline FragmentShadingRateMask operator|(FragmentShadingRateMask a, FragmentShadingRateMask b) { return FragmentShadingRateMask(unsigned(a) | unsigned(b)); }
operator &(FragmentShadingRateMask a,FragmentShadingRateMask b)4721 inline FragmentShadingRateMask operator&(FragmentShadingRateMask a, FragmentShadingRateMask b) { return FragmentShadingRateMask(unsigned(a) & unsigned(b)); }
operator ^(FragmentShadingRateMask a,FragmentShadingRateMask b)4722 inline FragmentShadingRateMask operator^(FragmentShadingRateMask a, FragmentShadingRateMask b) { return FragmentShadingRateMask(unsigned(a) ^ unsigned(b)); }
operator ~(FragmentShadingRateMask a)4723 inline FragmentShadingRateMask operator~(FragmentShadingRateMask a) { return FragmentShadingRateMask(~unsigned(a)); }
operator |(CooperativeMatrixOperandsMask a,CooperativeMatrixOperandsMask b)4724 inline CooperativeMatrixOperandsMask operator|(CooperativeMatrixOperandsMask a, CooperativeMatrixOperandsMask b) { return CooperativeMatrixOperandsMask(unsigned(a) | unsigned(b)); }
operator &(CooperativeMatrixOperandsMask a,CooperativeMatrixOperandsMask b)4725 inline CooperativeMatrixOperandsMask operator&(CooperativeMatrixOperandsMask a, CooperativeMatrixOperandsMask b) { return CooperativeMatrixOperandsMask(unsigned(a) & unsigned(b)); }
operator ^(CooperativeMatrixOperandsMask a,CooperativeMatrixOperandsMask b)4726 inline CooperativeMatrixOperandsMask operator^(CooperativeMatrixOperandsMask a, CooperativeMatrixOperandsMask b) { return CooperativeMatrixOperandsMask(unsigned(a) ^ unsigned(b)); }
operator ~(CooperativeMatrixOperandsMask a)4727 inline CooperativeMatrixOperandsMask operator~(CooperativeMatrixOperandsMask a) { return CooperativeMatrixOperandsMask(~unsigned(a)); }
operator |(RawAccessChainOperandsMask a,RawAccessChainOperandsMask b)4728 inline RawAccessChainOperandsMask operator|(RawAccessChainOperandsMask a, RawAccessChainOperandsMask b) { return RawAccessChainOperandsMask(unsigned(a) | unsigned(b)); }
operator &(RawAccessChainOperandsMask a,RawAccessChainOperandsMask b)4729 inline RawAccessChainOperandsMask operator&(RawAccessChainOperandsMask a, RawAccessChainOperandsMask b) { return RawAccessChainOperandsMask(unsigned(a) & unsigned(b)); }
operator ^(RawAccessChainOperandsMask a,RawAccessChainOperandsMask b)4730 inline RawAccessChainOperandsMask operator^(RawAccessChainOperandsMask a, RawAccessChainOperandsMask b) { return RawAccessChainOperandsMask(unsigned(a) ^ unsigned(b)); }
operator ~(RawAccessChainOperandsMask a)4731 inline RawAccessChainOperandsMask operator~(RawAccessChainOperandsMask a) { return RawAccessChainOperandsMask(~unsigned(a)); }
4732 
4733 }  // end namespace spv
4734 
4735 #endif  // #ifndef spirv_HPP
4736 
4737