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