yum-mirror/glslang

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

Jeff BolzImplement GL_EXT_cooperative_matrix_maintenance124ae85ba

main
300.7 KiB5771 linesraw
1// Copyright: 2014-2024 The Khronos Group Inc.
2// License: MIT
3// 
4// MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS
5// KHRONOS STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS
6// SPECIFICATIONS AND HEADER INFORMATION ARE LOCATED AT
7// https://www.khronos.org/registry/
8
9// This header is automatically generated by the same tool that creates
10// the Binary Section of the SPIR-V specification.
11
12// Enumeration tokens for SPIR-V, in various styles:
13//   C, C++, C++11, JSON, Lua, Python, C#, Java, D, Beef
14// 
15// - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL
16// - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL
17// - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL
18// - Lua will use tables, e.g.: spv.SourceLanguage.GLSL
19// - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL']
20// - C# will use enum classes in the Specification class located in the "Spv" namespace,
21//     e.g.: Spv.Specification.SourceLanguage.GLSL
22// - Java will use enum classes in the Spv class in the org.khronos.spv package,
23//     e.g.: Spv.SourceLanguage.GLSL
24// - D will have tokens under the "spv" module, e.g: spv.SourceLanguage.GLSL
25// - Beef will use enum classes in the Specification class located in the "Spv" namespace,
26//     e.g.: Spv.Specification.SourceLanguage.GLSL
27// 
28// Some tokens act like mask values, which can be OR'd together,
29// while others are mutually exclusive.  The mask-like ones have
30// "Mask" in their name, and a parallel enum that has the shift
31// amount (1 << x) for each corresponding enumerant.
32
33#ifndef spirv_HPP
34#define spirv_HPP
35
36namespace spv {
37
38typedef unsigned int Id;
39
40#define SPV_VERSION 0x10600
41#define SPV_REVISION 1
42
43static const unsigned int MagicNumber = 0x07230203;
44static const unsigned int Version = 0x00010600;
45static const unsigned int Revision = 1;
46static const unsigned int OpCodeMask = 0xffff;
47static const unsigned int WordCountShift = 16;
48
49enum class SourceLanguage : unsigned {
50    Unknown = 0,
51    ESSL = 1,
52    GLSL = 2,
53    OpenCL_C = 3,
54    OpenCL_CPP = 4,
55    HLSL = 5,
56    CPP_for_OpenCL = 6,
57    SYCL = 7,
58    HERO_C = 8,
59    NZSL = 9,
60    WGSL = 10,
61    Slang = 11,
62    Zig = 12,
63    Rust = 13,
64    Pred = 14,
65    ApilaJai = 15,
66    Max = 0x7fffffff,
67};
68
69enum class ExecutionModel : unsigned {
70    Vertex = 0,
71    TessellationControl = 1,
72    TessellationEvaluation = 2,
73    Geometry = 3,
74    Fragment = 4,
75    GLCompute = 5,
76    Kernel = 6,
77    TaskNV = 5267,
78    MeshNV = 5268,
79    RayGenerationKHR = 5313,
80    RayGenerationNV = 5313,
81    IntersectionKHR = 5314,
82    IntersectionNV = 5314,
83    AnyHitKHR = 5315,
84    AnyHitNV = 5315,
85    ClosestHitKHR = 5316,
86    ClosestHitNV = 5316,
87    MissKHR = 5317,
88    MissNV = 5317,
89    CallableKHR = 5318,
90    CallableNV = 5318,
91    TaskEXT = 5364,
92    MeshEXT = 5365,
93    Max = 0x7fffffff,
94};
95
96enum class AddressingModel : unsigned {
97    Logical = 0,
98    Physical32 = 1,
99    Physical64 = 2,
100    PhysicalStorageBuffer64 = 5348,
101    PhysicalStorageBuffer64EXT = 5348,
102    Max = 0x7fffffff,
103};
104
105enum class MemoryModel : unsigned {
106    Simple = 0,
107    GLSL450 = 1,
108    OpenCL = 2,
109    Vulkan = 3,
110    VulkanKHR = 3,
111    Max = 0x7fffffff,
112};
113
114enum class ExecutionMode : unsigned {
115    Invocations = 0,
116    SpacingEqual = 1,
117    SpacingFractionalEven = 2,
118    SpacingFractionalOdd = 3,
119    VertexOrderCw = 4,
120    VertexOrderCcw = 5,
121    PixelCenterInteger = 6,
122    OriginUpperLeft = 7,
123    OriginLowerLeft = 8,
124    EarlyFragmentTests = 9,
125    PointMode = 10,
126    Xfb = 11,
127    DepthReplacing = 12,
128    DepthGreater = 14,
129    DepthLess = 15,
130    DepthUnchanged = 16,
131    LocalSize = 17,
132    LocalSizeHint = 18,
133    InputPoints = 19,
134    InputLines = 20,
135    InputLinesAdjacency = 21,
136    Triangles = 22,
137    InputTrianglesAdjacency = 23,
138    Quads = 24,
139    Isolines = 25,
140    OutputVertices = 26,
141    OutputPoints = 27,
142    OutputLineStrip = 28,
143    OutputTriangleStrip = 29,
144    VecTypeHint = 30,
145    ContractionOff = 31,
146    Initializer = 33,
147    Finalizer = 34,
148    SubgroupSize = 35,
149    SubgroupsPerWorkgroup = 36,
150    SubgroupsPerWorkgroupId = 37,
151    LocalSizeId = 38,
152    LocalSizeHintId = 39,
153    NonCoherentColorAttachmentReadEXT = 4169,
154    NonCoherentDepthAttachmentReadEXT = 4170,
155    NonCoherentStencilAttachmentReadEXT = 4171,
156    SubgroupUniformControlFlowKHR = 4421,
157    PostDepthCoverage = 4446,
158    DenormPreserve = 4459,
159    DenormFlushToZero = 4460,
160    SignedZeroInfNanPreserve = 4461,
161    RoundingModeRTE = 4462,
162    RoundingModeRTZ = 4463,
163    NonCoherentTileAttachmentReadQCOM = 4489,
164    TileShadingRateQCOM = 4490,
165    EarlyAndLateFragmentTestsAMD = 5017,
166    StencilRefReplacingEXT = 5027,
167    CoalescingAMDX = 5069,
168    IsApiEntryAMDX = 5070,
169    MaxNodeRecursionAMDX = 5071,
170    StaticNumWorkgroupsAMDX = 5072,
171    ShaderIndexAMDX = 5073,
172    MaxNumWorkgroupsAMDX = 5077,
173    StencilRefUnchangedFrontAMD = 5079,
174    StencilRefGreaterFrontAMD = 5080,
175    StencilRefLessFrontAMD = 5081,
176    StencilRefUnchangedBackAMD = 5082,
177    StencilRefGreaterBackAMD = 5083,
178    StencilRefLessBackAMD = 5084,
179    QuadDerivativesKHR = 5088,
180    RequireFullQuadsKHR = 5089,
181    SharesInputWithAMDX = 5102,
182    ArithmeticPoisonKHR = 5157,
183    OutputLinesEXT = 5269,
184    OutputLinesNV = 5269,
185    OutputPrimitivesEXT = 5270,
186    OutputPrimitivesNV = 5270,
187    DerivativeGroupQuadsKHR = 5289,
188    DerivativeGroupQuadsNV = 5289,
189    DerivativeGroupLinearKHR = 5290,
190    DerivativeGroupLinearNV = 5290,
191    OutputTrianglesEXT = 5298,
192    OutputTrianglesNV = 5298,
193    PixelInterlockOrderedEXT = 5366,
194    PixelInterlockUnorderedEXT = 5367,
195    SampleInterlockOrderedEXT = 5368,
196    SampleInterlockUnorderedEXT = 5369,
197    ShadingRateInterlockOrderedEXT = 5370,
198    ShadingRateInterlockUnorderedEXT = 5371,
199    Shader64BitIndexingEXT = 5427,
200    SharedLocalMemorySizeINTEL = 5618,
201    RoundingModeRTPINTEL = 5620,
202    RoundingModeRTNINTEL = 5621,
203    FloatingPointModeALTINTEL = 5622,
204    FloatingPointModeIEEEINTEL = 5623,
205    MaxWorkgroupSizeINTEL = 5893,
206    MaxWorkDimINTEL = 5894,
207    NoGlobalOffsetINTEL = 5895,
208    NumSIMDWorkitemsINTEL = 5896,
209    SchedulerTargetFmaxMhzINTEL = 5903,
210    MaximallyReconvergesKHR = 6023,
211    FPFastMathDefault = 6028,
212    OpacityMicromapIdKHR = 6031,
213    StreamingInterfaceINTEL = 6154,
214    RegisterMapInterfaceINTEL = 6160,
215    NamedBarrierCountINTEL = 6417,
216    MaximumRegistersINTEL = 6461,
217    MaximumRegistersIdINTEL = 6462,
218    NamedMaximumRegistersINTEL = 6463,
219    Max = 0x7fffffff,
220};
221
222enum class StorageClass : unsigned {
223    UniformConstant = 0,
224    Input = 1,
225    Uniform = 2,
226    Output = 3,
227    Workgroup = 4,
228    CrossWorkgroup = 5,
229    Private = 6,
230    Function = 7,
231    Generic = 8,
232    PushConstant = 9,
233    AtomicCounter = 10,
234    Image = 11,
235    StorageBuffer = 12,
236    TileImageEXT = 4172,
237    TileAttachmentQCOM = 4491,
238    NodePayloadAMDX = 5068,
239    CallableDataKHR = 5328,
240    CallableDataNV = 5328,
241    IncomingCallableDataKHR = 5329,
242    IncomingCallableDataNV = 5329,
243    RayPayloadKHR = 5338,
244    RayPayloadNV = 5338,
245    HitAttributeKHR = 5339,
246    HitAttributeNV = 5339,
247    IncomingRayPayloadKHR = 5342,
248    IncomingRayPayloadNV = 5342,
249    ShaderRecordBufferKHR = 5343,
250    ShaderRecordBufferNV = 5343,
251    PhysicalStorageBuffer = 5349,
252    PhysicalStorageBufferEXT = 5349,
253    HitObjectAttributeNV = 5385,
254    TaskPayloadWorkgroupEXT = 5402,
255    HitObjectAttributeEXT = 5411,
256    CodeSectionINTEL = 5605,
257    DeviceOnlyALTERA = 5936,
258    DeviceOnlyINTEL = 5936,
259    HostOnlyALTERA = 5937,
260    HostOnlyINTEL = 5937,
261    Max = 0x7fffffff,
262};
263
264enum class Dim : unsigned {
265    Dim1D = 0,
266    Dim2D = 1,
267    Dim3D = 2,
268    Cube = 3,
269    Rect = 4,
270    Buffer = 5,
271    SubpassData = 6,
272    TileImageDataEXT = 4173,
273    Max = 0x7fffffff,
274};
275
276enum class SamplerAddressingMode : unsigned {
277    None = 0,
278    ClampToEdge = 1,
279    Clamp = 2,
280    Repeat = 3,
281    RepeatMirrored = 4,
282    Max = 0x7fffffff,
283};
284
285enum class SamplerFilterMode : unsigned {
286    Nearest = 0,
287    Linear = 1,
288    Max = 0x7fffffff,
289};
290
291enum class ImageFormat : unsigned {
292    Unknown = 0,
293    Rgba32f = 1,
294    Rgba16f = 2,
295    R32f = 3,
296    Rgba8 = 4,
297    Rgba8Snorm = 5,
298    Rg32f = 6,
299    Rg16f = 7,
300    R11fG11fB10f = 8,
301    R16f = 9,
302    Rgba16 = 10,
303    Rgb10A2 = 11,
304    Rg16 = 12,
305    Rg8 = 13,
306    R16 = 14,
307    R8 = 15,
308    Rgba16Snorm = 16,
309    Rg16Snorm = 17,
310    Rg8Snorm = 18,
311    R16Snorm = 19,
312    R8Snorm = 20,
313    Rgba32i = 21,
314    Rgba16i = 22,
315    Rgba8i = 23,
316    R32i = 24,
317    Rg32i = 25,
318    Rg16i = 26,
319    Rg8i = 27,
320    R16i = 28,
321    R8i = 29,
322    Rgba32ui = 30,
323    Rgba16ui = 31,
324    Rgba8ui = 32,
325    R32ui = 33,
326    Rgb10a2ui = 34,
327    Rg32ui = 35,
328    Rg16ui = 36,
329    Rg8ui = 37,
330    R16ui = 38,
331    R8ui = 39,
332    R64ui = 40,
333    R64i = 41,
334    Max = 0x7fffffff,
335};
336
337enum class ImageChannelOrder : unsigned {
338    R = 0,
339    A = 1,
340    RG = 2,
341    RA = 3,
342    RGB = 4,
343    RGBA = 5,
344    BGRA = 6,
345    ARGB = 7,
346    Intensity = 8,
347    Luminance = 9,
348    Rx = 10,
349    RGx = 11,
350    RGBx = 12,
351    Depth = 13,
352    DepthStencil = 14,
353    sRGB = 15,
354    sRGBx = 16,
355    sRGBA = 17,
356    sBGRA = 18,
357    ABGR = 19,
358    Max = 0x7fffffff,
359};
360
361enum class ImageChannelDataType : unsigned {
362    SnormInt8 = 0,
363    SnormInt16 = 1,
364    UnormInt8 = 2,
365    UnormInt16 = 3,
366    UnormShort565 = 4,
367    UnormShort555 = 5,
368    UnormInt101010 = 6,
369    SignedInt8 = 7,
370    SignedInt16 = 8,
371    SignedInt32 = 9,
372    UnsignedInt8 = 10,
373    UnsignedInt16 = 11,
374    UnsignedInt32 = 12,
375    HalfFloat = 13,
376    Float = 14,
377    UnormInt24 = 15,
378    UnormInt101010_2 = 16,
379    UnormInt10X6EXT = 17,
380    UnsignedIntRaw10EXT = 19,
381    UnsignedIntRaw12EXT = 20,
382    UnormInt2_101010EXT = 21,
383    UnsignedInt10X6EXT = 22,
384    UnsignedInt12X4EXT = 23,
385    UnsignedInt14X2EXT = 24,
386    UnormInt12X4EXT = 25,
387    UnormInt14X2EXT = 26,
388    Max = 0x7fffffff,
389};
390
391enum class ImageOperandsShift : unsigned {
392    Bias = 0,
393    Lod = 1,
394    Grad = 2,
395    ConstOffset = 3,
396    Offset = 4,
397    ConstOffsets = 5,
398    Sample = 6,
399    MinLod = 7,
400    MakeTexelAvailable = 8,
401    MakeTexelAvailableKHR = 8,
402    MakeTexelVisible = 9,
403    MakeTexelVisibleKHR = 9,
404    NonPrivateTexel = 10,
405    NonPrivateTexelKHR = 10,
406    VolatileTexel = 11,
407    VolatileTexelKHR = 11,
408    SignExtend = 12,
409    ZeroExtend = 13,
410    Nontemporal = 14,
411    Offsets = 16,
412    Max = 0x7fffffff,
413};
414
415enum class ImageOperandsMask : unsigned {
416    MaskNone = 0,
417    Bias = 0x00000001,
418    Lod = 0x00000002,
419    Grad = 0x00000004,
420    ConstOffset = 0x00000008,
421    Offset = 0x00000010,
422    ConstOffsets = 0x00000020,
423    Sample = 0x00000040,
424    MinLod = 0x00000080,
425    MakeTexelAvailable = 0x00000100,
426    MakeTexelAvailableKHR = 0x00000100,
427    MakeTexelVisible = 0x00000200,
428    MakeTexelVisibleKHR = 0x00000200,
429    NonPrivateTexel = 0x00000400,
430    NonPrivateTexelKHR = 0x00000400,
431    VolatileTexel = 0x00000800,
432    VolatileTexelKHR = 0x00000800,
433    SignExtend = 0x00001000,
434    ZeroExtend = 0x00002000,
435    Nontemporal = 0x00004000,
436    Offsets = 0x00010000,
437};
438
439enum class FPFastMathModeShift : unsigned {
440    NotNaN = 0,
441    NotInf = 1,
442    NSZ = 2,
443    AllowRecip = 3,
444    Fast = 4,
445    AllowContract = 16,
446    AllowContractFastINTEL = 16,
447    AllowReassoc = 17,
448    AllowReassocINTEL = 17,
449    AllowTransform = 18,
450    Max = 0x7fffffff,
451};
452
453enum class FPFastMathModeMask : unsigned {
454    MaskNone = 0,
455    NotNaN = 0x00000001,
456    NotInf = 0x00000002,
457    NSZ = 0x00000004,
458    AllowRecip = 0x00000008,
459    Fast = 0x00000010,
460    AllowContract = 0x00010000,
461    AllowContractFastINTEL = 0x00010000,
462    AllowReassoc = 0x00020000,
463    AllowReassocINTEL = 0x00020000,
464    AllowTransform = 0x00040000,
465};
466
467enum class FPRoundingMode : unsigned {
468    RTE = 0,
469    RTZ = 1,
470    RTP = 2,
471    RTN = 3,
472    Max = 0x7fffffff,
473};
474
475enum class LinkageType : unsigned {
476    Export = 0,
477    Import = 1,
478    LinkOnceODR = 2,
479    WeakAMD = 3,
480    Max = 0x7fffffff,
481};
482
483enum class AccessQualifier : unsigned {
484    ReadOnly = 0,
485    WriteOnly = 1,
486    ReadWrite = 2,
487    Max = 0x7fffffff,
488};
489
490enum class FunctionParameterAttribute : unsigned {
491    Zext = 0,
492    Sext = 1,
493    ByVal = 2,
494    Sret = 3,
495    NoAlias = 4,
496    NoCapture = 5,
497    NoWrite = 6,
498    NoReadWrite = 7,
499    RuntimeAlignedALTERA = 5940,
500    RuntimeAlignedINTEL = 5940,
501    Max = 0x7fffffff,
502};
503
504enum class Decoration : unsigned {
505    RelaxedPrecision = 0,
506    SpecId = 1,
507    Block = 2,
508    BufferBlock = 3,
509    RowMajor = 4,
510    ColMajor = 5,
511    ArrayStride = 6,
512    MatrixStride = 7,
513    GLSLShared = 8,
514    GLSLPacked = 9,
515    CPacked = 10,
516    BuiltIn = 11,
517    NoPerspective = 13,
518    Flat = 14,
519    Patch = 15,
520    Centroid = 16,
521    Sample = 17,
522    Invariant = 18,
523    Restrict = 19,
524    Aliased = 20,
525    Volatile = 21,
526    Constant = 22,
527    Coherent = 23,
528    NonWritable = 24,
529    NonReadable = 25,
530    Uniform = 26,
531    UniformId = 27,
532    SaturatedConversion = 28,
533    Stream = 29,
534    Location = 30,
535    Component = 31,
536    Index = 32,
537    Binding = 33,
538    DescriptorSet = 34,
539    Offset = 35,
540    XfbBuffer = 36,
541    XfbStride = 37,
542    FuncParamAttr = 38,
543    FPRoundingMode = 39,
544    FPFastMathMode = 40,
545    LinkageAttributes = 41,
546    NoContraction = 42,
547    InputAttachmentIndex = 43,
548    Alignment = 44,
549    MaxByteOffset = 45,
550    AlignmentId = 46,
551    MaxByteOffsetId = 47,
552    SaturatedToLargestFloat8NormalConversionEXT = 4216,
553    NoSignedWrap = 4469,
554    NoUnsignedWrap = 4470,
555    WeightTextureQCOM = 4487,
556    BlockMatchTextureQCOM = 4488,
557    BlockMatchSamplerQCOM = 4499,
558    ExplicitInterpAMD = 4999,
559    NodeSharesPayloadLimitsWithAMDX = 5019,
560    NodeMaxPayloadsAMDX = 5020,
561    TrackFinishWritingAMDX = 5078,
562    PayloadNodeNameAMDX = 5091,
563    PayloadNodeBaseIndexAMDX = 5098,
564    PayloadNodeSparseArrayAMDX = 5099,
565    PayloadNodeArraySizeAMDX = 5100,
566    PayloadDispatchIndirectAMDX = 5105,
567    ArrayStrideIdEXT = 5124,
568    OffsetIdEXT = 5125,
569    UTFEncodedKHR = 5145,
570    OverrideCoverageNV = 5248,
571    PassthroughNV = 5250,
572    ViewportRelativeNV = 5252,
573    SecondaryViewportRelativeNV = 5256,
574    PerPrimitiveEXT = 5271,
575    PerPrimitiveNV = 5271,
576    PerViewNV = 5272,
577    PerTaskNV = 5273,
578    PerVertexKHR = 5285,
579    PerVertexNV = 5285,
580    NonUniform = 5300,
581    NonUniformEXT = 5300,
582    RestrictPointer = 5355,
583    RestrictPointerEXT = 5355,
584    AliasedPointer = 5356,
585    AliasedPointerEXT = 5356,
586    MemberOffsetNV = 5358,
587    HitObjectShaderRecordBufferNV = 5386,
588    HitObjectShaderRecordBufferEXT = 5389,
589    BankNV = 5397,
590    BindlessSamplerNV = 5398,
591    BindlessImageNV = 5399,
592    BoundSamplerNV = 5400,
593    BoundImageNV = 5401,
594    CooperativeMatrixTransposeEXT = 5440,
595    SIMTCallINTEL = 5599,
596    ReferencedIndirectlyINTEL = 5602,
597    ClobberINTEL = 5607,
598    SideEffectsINTEL = 5608,
599    VectorComputeVariableINTEL = 5624,
600    FuncParamIOKindINTEL = 5625,
601    VectorComputeFunctionINTEL = 5626,
602    StackCallINTEL = 5627,
603    GlobalVariableOffsetINTEL = 5628,
604    CounterBuffer = 5634,
605    HlslCounterBufferGOOGLE = 5634,
606    HlslSemanticGOOGLE = 5635,
607    UserSemantic = 5635,
608    UserTypeGOOGLE = 5636,
609    FunctionRoundingModeINTEL = 5822,
610    FunctionDenormModeINTEL = 5823,
611    RegisterALTERA = 5825,
612    RegisterINTEL = 5825,
613    MemoryALTERA = 5826,
614    MemoryINTEL = 5826,
615    NumbanksALTERA = 5827,
616    NumbanksINTEL = 5827,
617    BankwidthALTERA = 5828,
618    BankwidthINTEL = 5828,
619    MaxPrivateCopiesALTERA = 5829,
620    MaxPrivateCopiesINTEL = 5829,
621    SinglepumpALTERA = 5830,
622    SinglepumpINTEL = 5830,
623    DoublepumpALTERA = 5831,
624    DoublepumpINTEL = 5831,
625    MaxReplicatesALTERA = 5832,
626    MaxReplicatesINTEL = 5832,
627    SimpleDualPortALTERA = 5833,
628    SimpleDualPortINTEL = 5833,
629    MergeALTERA = 5834,
630    MergeINTEL = 5834,
631    BankBitsALTERA = 5835,
632    BankBitsINTEL = 5835,
633    ForcePow2DepthALTERA = 5836,
634    ForcePow2DepthINTEL = 5836,
635    StridesizeALTERA = 5883,
636    StridesizeINTEL = 5883,
637    WordsizeALTERA = 5884,
638    WordsizeINTEL = 5884,
639    TrueDualPortALTERA = 5885,
640    TrueDualPortINTEL = 5885,
641    BurstCoalesceALTERA = 5899,
642    BurstCoalesceINTEL = 5899,
643    CacheSizeALTERA = 5900,
644    CacheSizeINTEL = 5900,
645    DontStaticallyCoalesceALTERA = 5901,
646    DontStaticallyCoalesceINTEL = 5901,
647    PrefetchALTERA = 5902,
648    PrefetchINTEL = 5902,
649    StallEnableALTERA = 5905,
650    StallEnableINTEL = 5905,
651    FuseLoopsInFunctionALTERA = 5907,
652    FuseLoopsInFunctionINTEL = 5907,
653    MathOpDSPModeALTERA = 5909,
654    MathOpDSPModeINTEL = 5909,
655    AliasScopeINTEL = 5914,
656    NoAliasINTEL = 5915,
657    InitiationIntervalALTERA = 5917,
658    InitiationIntervalINTEL = 5917,
659    MaxConcurrencyALTERA = 5918,
660    MaxConcurrencyINTEL = 5918,
661    PipelineEnableALTERA = 5919,
662    PipelineEnableINTEL = 5919,
663    BufferLocationALTERA = 5921,
664    BufferLocationINTEL = 5921,
665    IOPipeStorageALTERA = 5944,
666    IOPipeStorageINTEL = 5944,
667    FunctionFloatingPointModeINTEL = 6080,
668    SingleElementVectorINTEL = 6085,
669    VectorComputeCallableFunctionINTEL = 6087,
670    MediaBlockIOINTEL = 6140,
671    StallFreeALTERA = 6151,
672    StallFreeINTEL = 6151,
673    FPMaxErrorDecorationINTEL = 6170,
674    LatencyControlLabelALTERA = 6172,
675    LatencyControlLabelINTEL = 6172,
676    LatencyControlConstraintALTERA = 6173,
677    LatencyControlConstraintINTEL = 6173,
678    ConduitKernelArgumentALTERA = 6175,
679    ConduitKernelArgumentINTEL = 6175,
680    RegisterMapKernelArgumentALTERA = 6176,
681    RegisterMapKernelArgumentINTEL = 6176,
682    MMHostInterfaceAddressWidthALTERA = 6177,
683    MMHostInterfaceAddressWidthINTEL = 6177,
684    MMHostInterfaceDataWidthALTERA = 6178,
685    MMHostInterfaceDataWidthINTEL = 6178,
686    MMHostInterfaceLatencyALTERA = 6179,
687    MMHostInterfaceLatencyINTEL = 6179,
688    MMHostInterfaceReadWriteModeALTERA = 6180,
689    MMHostInterfaceReadWriteModeINTEL = 6180,
690    MMHostInterfaceMaxBurstALTERA = 6181,
691    MMHostInterfaceMaxBurstINTEL = 6181,
692    MMHostInterfaceWaitRequestALTERA = 6182,
693    MMHostInterfaceWaitRequestINTEL = 6182,
694    StableKernelArgumentALTERA = 6183,
695    StableKernelArgumentINTEL = 6183,
696    HostAccessINTEL = 6188,
697    InitModeALTERA = 6190,
698    InitModeINTEL = 6190,
699    ImplementInRegisterMapALTERA = 6191,
700    ImplementInRegisterMapINTEL = 6191,
701    ConditionalINTEL = 6247,
702    CacheControlLoadINTEL = 6442,
703    CacheControlStoreINTEL = 6443,
704    IntrinsicSAMSUNG = 7040,
705    Max = 0x7fffffff,
706};
707
708enum class BuiltIn : unsigned {
709    Position = 0,
710    PointSize = 1,
711    ClipDistance = 3,
712    CullDistance = 4,
713    VertexId = 5,
714    InstanceId = 6,
715    PrimitiveId = 7,
716    InvocationId = 8,
717    Layer = 9,
718    ViewportIndex = 10,
719    TessLevelOuter = 11,
720    TessLevelInner = 12,
721    TessCoord = 13,
722    PatchVertices = 14,
723    FragCoord = 15,
724    PointCoord = 16,
725    FrontFacing = 17,
726    SampleId = 18,
727    SamplePosition = 19,
728    SampleMask = 20,
729    FragDepth = 22,
730    HelperInvocation = 23,
731    NumWorkgroups = 24,
732    WorkgroupSize = 25,
733    WorkgroupId = 26,
734    LocalInvocationId = 27,
735    GlobalInvocationId = 28,
736    LocalInvocationIndex = 29,
737    WorkDim = 30,
738    GlobalSize = 31,
739    EnqueuedWorkgroupSize = 32,
740    GlobalOffset = 33,
741    GlobalLinearId = 34,
742    SubgroupSize = 36,
743    SubgroupMaxSize = 37,
744    NumSubgroups = 38,
745    NumEnqueuedSubgroups = 39,
746    SubgroupId = 40,
747    SubgroupLocalInvocationId = 41,
748    VertexIndex = 42,
749    InstanceIndex = 43,
750    CoreIDARM = 4160,
751    CoreCountARM = 4161,
752    CoreMaxIDARM = 4162,
753    WarpIDARM = 4163,
754    WarpMaxIDARM = 4164,
755    SubgroupEqMask = 4416,
756    SubgroupEqMaskKHR = 4416,
757    SubgroupGeMask = 4417,
758    SubgroupGeMaskKHR = 4417,
759    SubgroupGtMask = 4418,
760    SubgroupGtMaskKHR = 4418,
761    SubgroupLeMask = 4419,
762    SubgroupLeMaskKHR = 4419,
763    SubgroupLtMask = 4420,
764    SubgroupLtMaskKHR = 4420,
765    BaseVertex = 4424,
766    BaseInstance = 4425,
767    DrawIndex = 4426,
768    PrimitiveShadingRateKHR = 4432,
769    DeviceIndex = 4438,
770    ViewIndex = 4440,
771    ShadingRateKHR = 4444,
772    TileOffsetQCOM = 4492,
773    TileDimensionQCOM = 4493,
774    TileApronSizeQCOM = 4494,
775    BaryCoordNoPerspAMD = 4992,
776    BaryCoordNoPerspCentroidAMD = 4993,
777    BaryCoordNoPerspSampleAMD = 4994,
778    BaryCoordSmoothAMD = 4995,
779    BaryCoordSmoothCentroidAMD = 4996,
780    BaryCoordSmoothSampleAMD = 4997,
781    BaryCoordPullModelAMD = 4998,
782    FragStencilRefEXT = 5014,
783    RemainingRecursionLevelsAMDX = 5021,
784    ShaderIndexAMDX = 5073,
785    SamplerHeapEXT = 5122,
786    ResourceHeapEXT = 5123,
787    ViewportMaskNV = 5253,
788    SecondaryPositionNV = 5257,
789    SecondaryViewportMaskNV = 5258,
790    PositionPerViewNV = 5261,
791    ViewportMaskPerViewNV = 5262,
792    FullyCoveredEXT = 5264,
793    TaskCountNV = 5274,
794    PrimitiveCountNV = 5275,
795    PrimitiveIndicesNV = 5276,
796    ClipDistancePerViewNV = 5277,
797    CullDistancePerViewNV = 5278,
798    LayerPerViewNV = 5279,
799    MeshViewCountNV = 5280,
800    MeshViewIndicesNV = 5281,
801    BaryCoordKHR = 5286,
802    BaryCoordNV = 5286,
803    BaryCoordNoPerspKHR = 5287,
804    BaryCoordNoPerspNV = 5287,
805    FragSizeEXT = 5292,
806    FragmentSizeNV = 5292,
807    FragInvocationCountEXT = 5293,
808    InvocationsPerPixelNV = 5293,
809    PrimitivePointIndicesEXT = 5294,
810    PrimitiveLineIndicesEXT = 5295,
811    PrimitiveTriangleIndicesEXT = 5296,
812    CullPrimitiveEXT = 5299,
813    LaunchIdKHR = 5319,
814    LaunchIdNV = 5319,
815    LaunchSizeKHR = 5320,
816    LaunchSizeNV = 5320,
817    WorldRayOriginKHR = 5321,
818    WorldRayOriginNV = 5321,
819    WorldRayDirectionKHR = 5322,
820    WorldRayDirectionNV = 5322,
821    ObjectRayOriginKHR = 5323,
822    ObjectRayOriginNV = 5323,
823    ObjectRayDirectionKHR = 5324,
824    ObjectRayDirectionNV = 5324,
825    RayTminKHR = 5325,
826    RayTminNV = 5325,
827    RayTmaxKHR = 5326,
828    RayTmaxNV = 5326,
829    InstanceCustomIndexKHR = 5327,
830    InstanceCustomIndexNV = 5327,
831    ObjectToWorldKHR = 5330,
832    ObjectToWorldNV = 5330,
833    WorldToObjectKHR = 5331,
834    WorldToObjectNV = 5331,
835    HitTNV = 5332,
836    HitKindKHR = 5333,
837    HitKindNV = 5333,
838    CurrentRayTimeNV = 5334,
839    HitTriangleVertexPositionsKHR = 5335,
840    HitMicroTriangleVertexPositionsNV = 5337,
841    HitMicroTriangleVertexBarycentricsNV = 5344,
842    IncomingRayFlagsKHR = 5351,
843    IncomingRayFlagsNV = 5351,
844    RayGeometryIndexKHR = 5352,
845    HitIsSphereNV = 5359,
846    HitIsLSSNV = 5360,
847    HitSpherePositionNV = 5361,
848    WarpsPerSMNV = 5374,
849    SMCountNV = 5375,
850    WarpIDNV = 5376,
851    SMIDNV = 5377,
852    HitLSSPositionsNV = 5396,
853    HitKindFrontFacingMicroTriangleNV = 5405,
854    HitKindBackFacingMicroTriangleNV = 5406,
855    HitSphereRadiusNV = 5420,
856    HitLSSRadiiNV = 5421,
857    ClusterIDNV = 5436,
858    CullMaskKHR = 6021,
859    Max = 0x7fffffff,
860};
861
862enum class SelectionControlShift : unsigned {
863    Flatten = 0,
864    DontFlatten = 1,
865    Max = 0x7fffffff,
866};
867
868enum class SelectionControlMask : unsigned {
869    MaskNone = 0,
870    Flatten = 0x00000001,
871    DontFlatten = 0x00000002,
872};
873
874enum class LoopControlShift : unsigned {
875    Unroll = 0,
876    DontUnroll = 1,
877    DependencyInfinite = 2,
878    DependencyLength = 3,
879    MinIterations = 4,
880    MaxIterations = 5,
881    IterationMultiple = 6,
882    PeelCount = 7,
883    PartialCount = 8,
884    InitiationIntervalALTERA = 16,
885    InitiationIntervalINTEL = 16,
886    MaxConcurrencyALTERA = 17,
887    MaxConcurrencyINTEL = 17,
888    DependencyArrayALTERA = 18,
889    DependencyArrayINTEL = 18,
890    PipelineEnableALTERA = 19,
891    PipelineEnableINTEL = 19,
892    LoopCoalesceALTERA = 20,
893    LoopCoalesceINTEL = 20,
894    MaxInterleavingALTERA = 21,
895    MaxInterleavingINTEL = 21,
896    SpeculatedIterationsALTERA = 22,
897    SpeculatedIterationsINTEL = 22,
898    NoFusionALTERA = 23,
899    NoFusionINTEL = 23,
900    LoopCountALTERA = 24,
901    LoopCountINTEL = 24,
902    MaxReinvocationDelayALTERA = 25,
903    MaxReinvocationDelayINTEL = 25,
904    MultipleWaitQueuesQCOM = 28,
905    Max = 0x7fffffff,
906};
907
908enum class LoopControlMask : unsigned {
909    MaskNone = 0,
910    Unroll = 0x00000001,
911    DontUnroll = 0x00000002,
912    DependencyInfinite = 0x00000004,
913    DependencyLength = 0x00000008,
914    MinIterations = 0x00000010,
915    MaxIterations = 0x00000020,
916    IterationMultiple = 0x00000040,
917    PeelCount = 0x00000080,
918    PartialCount = 0x00000100,
919    InitiationIntervalALTERA = 0x00010000,
920    InitiationIntervalINTEL = 0x00010000,
921    MaxConcurrencyALTERA = 0x00020000,
922    MaxConcurrencyINTEL = 0x00020000,
923    DependencyArrayALTERA = 0x00040000,
924    DependencyArrayINTEL = 0x00040000,
925    PipelineEnableALTERA = 0x00080000,
926    PipelineEnableINTEL = 0x00080000,
927    LoopCoalesceALTERA = 0x00100000,
928    LoopCoalesceINTEL = 0x00100000,
929    MaxInterleavingALTERA = 0x00200000,
930    MaxInterleavingINTEL = 0x00200000,
931    SpeculatedIterationsALTERA = 0x00400000,
932    SpeculatedIterationsINTEL = 0x00400000,
933    NoFusionALTERA = 0x00800000,
934    NoFusionINTEL = 0x00800000,
935    LoopCountALTERA = 0x01000000,
936    LoopCountINTEL = 0x01000000,
937    MaxReinvocationDelayALTERA = 0x02000000,
938    MaxReinvocationDelayINTEL = 0x02000000,
939    MultipleWaitQueuesQCOM = 0x10000000,
940};
941
942enum class FunctionControlShift : unsigned {
943    Inline = 0,
944    DontInline = 1,
945    Pure = 2,
946    Const = 3,
947    OptNoneEXT = 16,
948    OptNoneINTEL = 16,
949    Max = 0x7fffffff,
950};
951
952enum class FunctionControlMask : unsigned {
953    MaskNone = 0,
954    Inline = 0x00000001,
955    DontInline = 0x00000002,
956    Pure = 0x00000004,
957    Const = 0x00000008,
958    OptNoneEXT = 0x00010000,
959    OptNoneINTEL = 0x00010000,
960};
961
962enum class MemorySemanticsShift : unsigned {
963    Acquire = 1,
964    Release = 2,
965    AcquireRelease = 3,
966    SequentiallyConsistent = 4,
967    UniformMemory = 6,
968    SubgroupMemory = 7,
969    WorkgroupMemory = 8,
970    CrossWorkgroupMemory = 9,
971    AtomicCounterMemory = 10,
972    ImageMemory = 11,
973    OutputMemory = 12,
974    OutputMemoryKHR = 12,
975    MakeAvailable = 13,
976    MakeAvailableKHR = 13,
977    MakeVisible = 14,
978    MakeVisibleKHR = 14,
979    Volatile = 15,
980    Max = 0x7fffffff,
981};
982
983enum class MemorySemanticsMask : unsigned {
984    MaskNone = 0,
985    Acquire = 0x00000002,
986    Release = 0x00000004,
987    AcquireRelease = 0x00000008,
988    SequentiallyConsistent = 0x00000010,
989    UniformMemory = 0x00000040,
990    SubgroupMemory = 0x00000080,
991    WorkgroupMemory = 0x00000100,
992    CrossWorkgroupMemory = 0x00000200,
993    AtomicCounterMemory = 0x00000400,
994    ImageMemory = 0x00000800,
995    OutputMemory = 0x00001000,
996    OutputMemoryKHR = 0x00001000,
997    MakeAvailable = 0x00002000,
998    MakeAvailableKHR = 0x00002000,
999    MakeVisible = 0x00004000,
1000    MakeVisibleKHR = 0x00004000,
1001    Volatile = 0x00008000,
1002};
1003
1004enum class MemoryAccessShift : unsigned {
1005    Volatile = 0,
1006    Aligned = 1,
1007    Nontemporal = 2,
1008    MakePointerAvailable = 3,
1009    MakePointerAvailableKHR = 3,
1010    MakePointerVisible = 4,
1011    MakePointerVisibleKHR = 4,
1012    NonPrivatePointer = 5,
1013    NonPrivatePointerKHR = 5,
1014    AliasScopeINTELMask = 16,
1015    NoAliasINTELMask = 17,
1016    Max = 0x7fffffff,
1017};
1018
1019enum class MemoryAccessMask : unsigned {
1020    MaskNone = 0,
1021    Volatile = 0x00000001,
1022    Aligned = 0x00000002,
1023    Nontemporal = 0x00000004,
1024    MakePointerAvailable = 0x00000008,
1025    MakePointerAvailableKHR = 0x00000008,
1026    MakePointerVisible = 0x00000010,
1027    MakePointerVisibleKHR = 0x00000010,
1028    NonPrivatePointer = 0x00000020,
1029    NonPrivatePointerKHR = 0x00000020,
1030    AliasScopeINTELMask = 0x00010000,
1031    NoAliasINTELMask = 0x00020000,
1032};
1033
1034enum class Scope : unsigned {
1035    CrossDevice = 0,
1036    Device = 1,
1037    Workgroup = 2,
1038    Subgroup = 3,
1039    Invocation = 4,
1040    QueueFamily = 5,
1041    QueueFamilyKHR = 5,
1042    ShaderCallKHR = 6,
1043    Max = 0x7fffffff,
1044};
1045
1046enum class GroupOperation : unsigned {
1047    Reduce = 0,
1048    InclusiveScan = 1,
1049    ExclusiveScan = 2,
1050    ClusteredReduce = 3,
1051    PartitionedReduceEXT = 6,
1052    PartitionedReduceNV = 6,
1053    PartitionedInclusiveScanEXT = 7,
1054    PartitionedInclusiveScanNV = 7,
1055    PartitionedExclusiveScanEXT = 8,
1056    PartitionedExclusiveScanNV = 8,
1057    Max = 0x7fffffff,
1058};
1059
1060enum class KernelEnqueueFlags : unsigned {
1061    NoWait = 0,
1062    WaitKernel = 1,
1063    WaitWorkGroup = 2,
1064    Max = 0x7fffffff,
1065};
1066
1067enum class KernelProfilingInfoShift : unsigned {
1068    CmdExecTime = 0,
1069    Max = 0x7fffffff,
1070};
1071
1072enum class KernelProfilingInfoMask : unsigned {
1073    MaskNone = 0,
1074    CmdExecTime = 0x00000001,
1075};
1076
1077enum class Capability : unsigned {
1078    Matrix = 0,
1079    Shader = 1,
1080    Geometry = 2,
1081    Tessellation = 3,
1082    Addresses = 4,
1083    Linkage = 5,
1084    Kernel = 6,
1085    Vector16 = 7,
1086    Float16Buffer = 8,
1087    Float16 = 9,
1088    Float64 = 10,
1089    Int64 = 11,
1090    Int64Atomics = 12,
1091    ImageBasic = 13,
1092    ImageReadWrite = 14,
1093    ImageMipmap = 15,
1094    Pipes = 17,
1095    Groups = 18,
1096    DeviceEnqueue = 19,
1097    LiteralSampler = 20,
1098    AtomicStorage = 21,
1099    Int16 = 22,
1100    TessellationPointSize = 23,
1101    GeometryPointSize = 24,
1102    ImageGatherExtended = 25,
1103    StorageImageMultisample = 27,
1104    UniformBufferArrayDynamicIndexing = 28,
1105    SampledImageArrayDynamicIndexing = 29,
1106    StorageBufferArrayDynamicIndexing = 30,
1107    StorageImageArrayDynamicIndexing = 31,
1108    ClipDistance = 32,
1109    CullDistance = 33,
1110    ImageCubeArray = 34,
1111    SampleRateShading = 35,
1112    ImageRect = 36,
1113    SampledRect = 37,
1114    GenericPointer = 38,
1115    Int8 = 39,
1116    InputAttachment = 40,
1117    SparseResidency = 41,
1118    MinLod = 42,
1119    Sampled1D = 43,
1120    Image1D = 44,
1121    SampledCubeArray = 45,
1122    SampledBuffer = 46,
1123    ImageBuffer = 47,
1124    ImageMSArray = 48,
1125    StorageImageExtendedFormats = 49,
1126    ImageQuery = 50,
1127    DerivativeControl = 51,
1128    InterpolationFunction = 52,
1129    TransformFeedback = 53,
1130    GeometryStreams = 54,
1131    StorageImageReadWithoutFormat = 55,
1132    StorageImageWriteWithoutFormat = 56,
1133    MultiViewport = 57,
1134    SubgroupDispatch = 58,
1135    NamedBarrier = 59,
1136    PipeStorage = 60,
1137    GroupNonUniform = 61,
1138    GroupNonUniformVote = 62,
1139    GroupNonUniformArithmetic = 63,
1140    GroupNonUniformBallot = 64,
1141    GroupNonUniformShuffle = 65,
1142    GroupNonUniformShuffleRelative = 66,
1143    GroupNonUniformClustered = 67,
1144    GroupNonUniformQuad = 68,
1145    ShaderLayer = 69,
1146    ShaderViewportIndex = 70,
1147    UniformDecoration = 71,
1148    CoreBuiltinsARM = 4165,
1149    TileImageColorReadAccessEXT = 4166,
1150    TileImageDepthReadAccessEXT = 4167,
1151    TileImageStencilReadAccessEXT = 4168,
1152    TensorsARM = 4174,
1153    StorageTensorArrayDynamicIndexingARM = 4175,
1154    StorageTensorArrayNonUniformIndexingARM = 4176,
1155    GraphARM = 4191,
1156    CooperativeMatrixLayoutsARM = 4201,
1157    Float8EXT = 4212,
1158    Float8CooperativeMatrixEXT = 4213,
1159    Float6EXT = 4228,
1160    Float4EXT = 4229,
1161    Float8UnsignedE8M0EXT = 4230,
1162    MXInt8EXT = 4231,
1163    BitcastExtractEXT = 4232,
1164    FragmentShadingRateKHR = 4422,
1165    SubgroupBallotKHR = 4423,
1166    DrawParameters = 4427,
1167    WorkgroupMemoryExplicitLayoutKHR = 4428,
1168    WorkgroupMemoryExplicitLayout8BitAccessKHR = 4429,
1169    WorkgroupMemoryExplicitLayout16BitAccessKHR = 4430,
1170    SubgroupVoteKHR = 4431,
1171    StorageBuffer16BitAccess = 4433,
1172    StorageUniformBufferBlock16 = 4433,
1173    StorageUniform16 = 4434,
1174    UniformAndStorageBuffer16BitAccess = 4434,
1175    StoragePushConstant16 = 4435,
1176    StorageInputOutput16 = 4436,
1177    DeviceGroup = 4437,
1178    MultiView = 4439,
1179    VariablePointersStorageBuffer = 4441,
1180    VariablePointers = 4442,
1181    AtomicStorageOps = 4445,
1182    SampleMaskPostDepthCoverage = 4447,
1183    StorageBuffer8BitAccess = 4448,
1184    UniformAndStorageBuffer8BitAccess = 4449,
1185    StoragePushConstant8 = 4450,
1186    DenormPreserve = 4464,
1187    DenormFlushToZero = 4465,
1188    SignedZeroInfNanPreserve = 4466,
1189    RoundingModeRTE = 4467,
1190    RoundingModeRTZ = 4468,
1191    RayQueryProvisionalKHR = 4471,
1192    RayQueryKHR = 4472,
1193    UntypedPointersKHR = 4473,
1194    RayTraversalPrimitiveCullingKHR = 4478,
1195    RayTracingKHR = 4479,
1196    TextureSampleWeightedQCOM = 4484,
1197    TextureBoxFilterQCOM = 4485,
1198    TextureBlockMatchQCOM = 4486,
1199    TileShadingQCOM = 4495,
1200    CooperativeMatrixConversionQCOM = 4496,
1201    TextureBlockMatch2QCOM = 4498,
1202    MultipleWaitQueuesQCOM = 4539,
1203    ImageGatherLinearQCOM = 4543,
1204    ImageGatherExtendedModesQCOM = 4544,
1205    Float16ImageAMD = 5008,
1206    ImageGatherBiasLodAMD = 5009,
1207    FragmentMaskAMD = 5010,
1208    StencilExportEXT = 5013,
1209    ImageReadWriteLodAMD = 5015,
1210    Int64ImageEXT = 5016,
1211    ShaderClockKHR = 5055,
1212    ShaderEnqueueAMDX = 5067,
1213    QuadControlKHR = 5087,
1214    Int4TypeINTEL = 5112,
1215    Int4CooperativeMatrixINTEL = 5114,
1216    BFloat16TypeKHR = 5116,
1217    BFloat16DotProductKHR = 5117,
1218    BFloat16CooperativeMatrixKHR = 5118,
1219    AbortKHR = 5120,
1220    DescriptorHeapEXT = 5128,
1221    ConstantDataKHR = 5146,
1222    PoisonFreezeKHR = 5156,
1223    WeakLinkageAMD = 5181,
1224    SampleMaskOverrideCoverageNV = 5249,
1225    GeometryShaderPassthroughNV = 5251,
1226    ShaderViewportIndexLayerEXT = 5254,
1227    ShaderViewportIndexLayerNV = 5254,
1228    ShaderViewportMaskNV = 5255,
1229    ShaderStereoViewNV = 5259,
1230    PerViewAttributesNV = 5260,
1231    FragmentFullyCoveredEXT = 5265,
1232    MeshShadingNV = 5266,
1233    ImageFootprintNV = 5282,
1234    MeshShadingEXT = 5283,
1235    FragmentBarycentricKHR = 5284,
1236    FragmentBarycentricNV = 5284,
1237    ComputeDerivativeGroupQuadsKHR = 5288,
1238    ComputeDerivativeGroupQuadsNV = 5288,
1239    FragmentDensityEXT = 5291,
1240    ShadingRateNV = 5291,
1241    GroupNonUniformPartitionedEXT = 5297,
1242    GroupNonUniformPartitionedNV = 5297,
1243    ShaderNonUniform = 5301,
1244    ShaderNonUniformEXT = 5301,
1245    RuntimeDescriptorArray = 5302,
1246    RuntimeDescriptorArrayEXT = 5302,
1247    InputAttachmentArrayDynamicIndexing = 5303,
1248    InputAttachmentArrayDynamicIndexingEXT = 5303,
1249    UniformTexelBufferArrayDynamicIndexing = 5304,
1250    UniformTexelBufferArrayDynamicIndexingEXT = 5304,
1251    StorageTexelBufferArrayDynamicIndexing = 5305,
1252    StorageTexelBufferArrayDynamicIndexingEXT = 5305,
1253    UniformBufferArrayNonUniformIndexing = 5306,
1254    UniformBufferArrayNonUniformIndexingEXT = 5306,
1255    SampledImageArrayNonUniformIndexing = 5307,
1256    SampledImageArrayNonUniformIndexingEXT = 5307,
1257    StorageBufferArrayNonUniformIndexing = 5308,
1258    StorageBufferArrayNonUniformIndexingEXT = 5308,
1259    StorageImageArrayNonUniformIndexing = 5309,
1260    StorageImageArrayNonUniformIndexingEXT = 5309,
1261    InputAttachmentArrayNonUniformIndexing = 5310,
1262    InputAttachmentArrayNonUniformIndexingEXT = 5310,
1263    UniformTexelBufferArrayNonUniformIndexing = 5311,
1264    UniformTexelBufferArrayNonUniformIndexingEXT = 5311,
1265    StorageTexelBufferArrayNonUniformIndexing = 5312,
1266    StorageTexelBufferArrayNonUniformIndexingEXT = 5312,
1267    RayTracingPositionFetchKHR = 5336,
1268    RayTracingNV = 5340,
1269    RayTracingMotionBlurNV = 5341,
1270    VulkanMemoryModel = 5345,
1271    VulkanMemoryModelKHR = 5345,
1272    VulkanMemoryModelDeviceScope = 5346,
1273    VulkanMemoryModelDeviceScopeKHR = 5346,
1274    PhysicalStorageBufferAddresses = 5347,
1275    PhysicalStorageBufferAddressesEXT = 5347,
1276    ComputeDerivativeGroupLinearKHR = 5350,
1277    ComputeDerivativeGroupLinearNV = 5350,
1278    RayTracingProvisionalKHR = 5353,
1279    CooperativeMatrixNV = 5357,
1280    FragmentShaderSampleInterlockEXT = 5363,
1281    FragmentShaderShadingRateInterlockEXT = 5372,
1282    ShaderSMBuiltinsNV = 5373,
1283    FragmentShaderPixelInterlockEXT = 5378,
1284    DemoteToHelperInvocation = 5379,
1285    DemoteToHelperInvocationEXT = 5379,
1286    DisplacementMicromapNV = 5380,
1287    RayTracingOpacityMicromapEXT = 5381,
1288    RayTracingOpacityMicromapKHR = 5381,
1289    ShaderInvocationReorderNV = 5383,
1290    ShaderInvocationReorderEXT = 5388,
1291    BindlessTextureNV = 5390,
1292    RayQueryPositionFetchKHR = 5391,
1293    CooperativeVectorNV = 5394,
1294    AtomicFloat16VectorNV = 5404,
1295    RayTracingDisplacementMicromapNV = 5409,
1296    RawAccessChainsNV = 5414,
1297    RayTracingSpheresGeometryNV = 5418,
1298    RayTracingLinearSweptSpheresGeometryNV = 5419,
1299    PushConstantBanksNV = 5423,
1300    LongVectorEXT = 5425,
1301    Shader64BitIndexingEXT = 5426,
1302    CooperativeMatrixConversionsEXT = 5429,
1303    CooperativeMatrixReductionsEXT = 5430,
1304    CooperativeMatrixReductionsNV = 5430,
1305    CooperativeMatrixConversionsNV = 5431,
1306    CooperativeMatrixPerElementOperationsEXT = 5432,
1307    CooperativeMatrixPerElementOperationsNV = 5432,
1308    CooperativeMatrixTensorAddressingNV = 5433,
1309    CooperativeMatrixBlockLoadsNV = 5434,
1310    CooperativeVectorTrainingNV = 5435,
1311    RayTracingClusterAccelerationStructureNV = 5437,
1312    CooperativeMatrixGetCoordinateEXT = 5438,
1313    TensorAddressingNV = 5439,
1314    CooperativeMatrixDecodeVectorNV = 5447,
1315    SubgroupShuffleINTEL = 5568,
1316    SubgroupBufferBlockIOINTEL = 5569,
1317    SubgroupImageBlockIOINTEL = 5570,
1318    SubgroupImageMediaBlockIOINTEL = 5579,
1319    RoundToInfinityINTEL = 5582,
1320    FloatingPointModeINTEL = 5583,
1321    IntegerFunctions2INTEL = 5584,
1322    FunctionPointersINTEL = 5603,
1323    IndirectReferencesINTEL = 5604,
1324    AsmINTEL = 5606,
1325    AtomicFloat32MinMaxEXT = 5612,
1326    AtomicFloat64MinMaxEXT = 5613,
1327    AtomicFloat16MinMaxEXT = 5616,
1328    VectorComputeINTEL = 5617,
1329    VectorAnyINTEL = 5619,
1330    ExpectAssumeKHR = 5629,
1331    SubgroupAvcMotionEstimationINTEL = 5696,
1332    SubgroupAvcMotionEstimationIntraINTEL = 5697,
1333    SubgroupAvcMotionEstimationChromaINTEL = 5698,
1334    VariableLengthArrayINTEL = 5817,
1335    FunctionFloatControlINTEL = 5821,
1336    FPGAMemoryAttributesALTERA = 5824,
1337    FPGAMemoryAttributesINTEL = 5824,
1338    FPFastMathModeINTEL = 5837,
1339    ArbitraryPrecisionIntegersALTERA = 5844,
1340    ArbitraryPrecisionIntegersINTEL = 5844,
1341    ArbitraryPrecisionFloatingPointALTERA = 5845,
1342    ArbitraryPrecisionFloatingPointINTEL = 5845,
1343    UnstructuredLoopControlsINTEL = 5886,
1344    FPGALoopControlsALTERA = 5888,
1345    FPGALoopControlsINTEL = 5888,
1346    KernelAttributesINTEL = 5892,
1347    FPGAKernelAttributesINTEL = 5897,
1348    FPGAMemoryAccessesALTERA = 5898,
1349    FPGAMemoryAccessesINTEL = 5898,
1350    FPGAClusterAttributesALTERA = 5904,
1351    FPGAClusterAttributesINTEL = 5904,
1352    LoopFuseALTERA = 5906,
1353    LoopFuseINTEL = 5906,
1354    FPGADSPControlALTERA = 5908,
1355    FPGADSPControlINTEL = 5908,
1356    MemoryAccessAliasingINTEL = 5910,
1357    FPGAInvocationPipeliningAttributesALTERA = 5916,
1358    FPGAInvocationPipeliningAttributesINTEL = 5916,
1359    FPGABufferLocationALTERA = 5920,
1360    FPGABufferLocationINTEL = 5920,
1361    ArbitraryPrecisionFixedPointALTERA = 5922,
1362    ArbitraryPrecisionFixedPointINTEL = 5922,
1363    USMStorageClassesALTERA = 5935,
1364    USMStorageClassesINTEL = 5935,
1365    RuntimeAlignedAttributeALTERA = 5939,
1366    RuntimeAlignedAttributeINTEL = 5939,
1367    IOPipesALTERA = 5943,
1368    IOPipesINTEL = 5943,
1369    BlockingPipesALTERA = 5945,
1370    BlockingPipesINTEL = 5945,
1371    FPGARegALTERA = 5948,
1372    FPGARegINTEL = 5948,
1373    DotProductInputAll = 6016,
1374    DotProductInputAllKHR = 6016,
1375    DotProductInput4x8Bit = 6017,
1376    DotProductInput4x8BitKHR = 6017,
1377    DotProductInput4x8BitPacked = 6018,
1378    DotProductInput4x8BitPackedKHR = 6018,
1379    DotProduct = 6019,
1380    DotProductKHR = 6019,
1381    RayCullMaskKHR = 6020,
1382    CooperativeMatrixKHR = 6022,
1383    ReplicatedCompositesEXT = 6024,
1384    BitInstructions = 6025,
1385    GroupNonUniformRotateKHR = 6026,
1386    FloatControls2 = 6029,
1387    FMAKHR = 6030,
1388    RayTracingOpacityMicromapExecutionModeKHR = 6032,
1389    AtomicFloat32AddEXT = 6033,
1390    AtomicFloat64AddEXT = 6034,
1391    LongCompositesINTEL = 6089,
1392    OptNoneEXT = 6094,
1393    OptNoneINTEL = 6094,
1394    AtomicFloat16AddEXT = 6095,
1395    DebugInfoModuleINTEL = 6114,
1396    BFloat16ConversionINTEL = 6115,
1397    SplitBarrierEXT = 6141,
1398    SplitBarrierINTEL = 6141,
1399    ArithmeticFenceEXT = 6144,
1400    FPGAClusterAttributesV2ALTERA = 6150,
1401    FPGAClusterAttributesV2INTEL = 6150,
1402    FPGAKernelAttributesv2INTEL = 6161,
1403    TaskSequenceALTERA = 6162,
1404    TaskSequenceINTEL = 6162,
1405    FPMaxErrorINTEL = 6169,
1406    FPGALatencyControlALTERA = 6171,
1407    FPGALatencyControlINTEL = 6171,
1408    FPGAArgumentInterfacesALTERA = 6174,
1409    FPGAArgumentInterfacesINTEL = 6174,
1410    GlobalVariableHostAccessINTEL = 6187,
1411    GlobalVariableFPGADecorationsALTERA = 6189,
1412    GlobalVariableFPGADecorationsINTEL = 6189,
1413    SubgroupBufferPrefetchINTEL = 6220,
1414    Subgroup2DBlockIOINTEL = 6228,
1415    Subgroup2DBlockTransformINTEL = 6229,
1416    Subgroup2DBlockTransposeINTEL = 6230,
1417    SubgroupMatrixMultiplyAccumulateINTEL = 6236,
1418    TernaryBitwiseFunctionINTEL = 6241,
1419    UntypedVariableLengthArrayINTEL = 6243,
1420    SpecConditionalINTEL = 6245,
1421    FunctionVariantsINTEL = 6246,
1422    PredicatedIOINTEL = 6257,
1423    RoundedDivideSqrtINTEL = 6265,
1424    GroupUniformArithmeticKHR = 6400,
1425    TensorFloat32RoundingINTEL = 6425,
1426    MaskedGatherScatterINTEL = 6427,
1427    CacheControlsINTEL = 6441,
1428    RegisterLimitsINTEL = 6460,
1429    BindlessImagesINTEL = 6528,
1430    DotProductFloat16AccFloat32VALVE = 6912,
1431    DotProductFloat16AccFloat16VALVE = 6913,
1432    DotProductBFloat16AccVALVE = 6914,
1433    DotProductFloat8AccFloat32VALVE = 6915,
1434    IntrinsicSAMSUNG = 7041,
1435    Max = 0x7fffffff,
1436};
1437
1438enum class RayFlagsShift : unsigned {
1439    OpaqueKHR = 0,
1440    NoOpaqueKHR = 1,
1441    TerminateOnFirstHitKHR = 2,
1442    SkipClosestHitShaderKHR = 3,
1443    CullBackFacingTrianglesKHR = 4,
1444    CullFrontFacingTrianglesKHR = 5,
1445    CullOpaqueKHR = 6,
1446    CullNoOpaqueKHR = 7,
1447    SkipBuiltinPrimitivesNV = 8,
1448    SkipTrianglesKHR = 8,
1449    SkipAABBsKHR = 9,
1450    ForceOpacityMicromap2StateEXT = 10,
1451    ForceOpacityMicromap2StateKHR = 10,
1452    Max = 0x7fffffff,
1453};
1454
1455enum class RayFlagsMask : unsigned {
1456    MaskNone = 0,
1457    OpaqueKHR = 0x00000001,
1458    NoOpaqueKHR = 0x00000002,
1459    TerminateOnFirstHitKHR = 0x00000004,
1460    SkipClosestHitShaderKHR = 0x00000008,
1461    CullBackFacingTrianglesKHR = 0x00000010,
1462    CullFrontFacingTrianglesKHR = 0x00000020,
1463    CullOpaqueKHR = 0x00000040,
1464    CullNoOpaqueKHR = 0x00000080,
1465    SkipBuiltinPrimitivesNV = 0x00000100,
1466    SkipTrianglesKHR = 0x00000100,
1467    SkipAABBsKHR = 0x00000200,
1468    ForceOpacityMicromap2StateEXT = 0x00000400,
1469    ForceOpacityMicromap2StateKHR = 0x00000400,
1470};
1471
1472enum class RayQueryIntersection : unsigned {
1473    RayQueryCandidateIntersectionKHR = 0,
1474    RayQueryCommittedIntersectionKHR = 1,
1475    Max = 0x7fffffff,
1476};
1477
1478enum class RayQueryCommittedIntersectionType : unsigned {
1479    RayQueryCommittedIntersectionNoneKHR = 0,
1480    RayQueryCommittedIntersectionTriangleKHR = 1,
1481    RayQueryCommittedIntersectionGeneratedKHR = 2,
1482    Max = 0x7fffffff,
1483};
1484
1485enum class RayQueryCandidateIntersectionType : unsigned {
1486    RayQueryCandidateIntersectionTriangleKHR = 0,
1487    RayQueryCandidateIntersectionAABBKHR = 1,
1488    Max = 0x7fffffff,
1489};
1490
1491enum class FragmentShadingRateShift : unsigned {
1492    Vertical2Pixels = 0,
1493    Vertical4Pixels = 1,
1494    Horizontal2Pixels = 2,
1495    Horizontal4Pixels = 3,
1496    Max = 0x7fffffff,
1497};
1498
1499enum class FragmentShadingRateMask : unsigned {
1500    MaskNone = 0,
1501    Vertical2Pixels = 0x00000001,
1502    Vertical4Pixels = 0x00000002,
1503    Horizontal2Pixels = 0x00000004,
1504    Horizontal4Pixels = 0x00000008,
1505};
1506
1507enum class FPDenormMode : unsigned {
1508    Preserve = 0,
1509    FlushToZero = 1,
1510    Max = 0x7fffffff,
1511};
1512
1513enum class FPOperationMode : unsigned {
1514    IEEE = 0,
1515    ALT = 1,
1516    Max = 0x7fffffff,
1517};
1518
1519enum class QuantizationModes : unsigned {
1520    TRN = 0,
1521    TRN_ZERO = 1,
1522    RND = 2,
1523    RND_ZERO = 3,
1524    RND_INF = 4,
1525    RND_MIN_INF = 5,
1526    RND_CONV = 6,
1527    RND_CONV_ODD = 7,
1528    Max = 0x7fffffff,
1529};
1530
1531enum class OverflowModes : unsigned {
1532    WRAP = 0,
1533    SAT = 1,
1534    SAT_ZERO = 2,
1535    SAT_SYM = 3,
1536    Max = 0x7fffffff,
1537};
1538
1539enum class PackedVectorFormat : unsigned {
1540    PackedVectorFormat4x8Bit = 0,
1541    PackedVectorFormat4x8BitKHR = 0,
1542    Max = 0x7fffffff,
1543};
1544
1545enum class CooperativeMatrixOperandsShift : unsigned {
1546    MatrixASignedComponentsKHR = 0,
1547    MatrixBSignedComponentsKHR = 1,
1548    MatrixCSignedComponentsKHR = 2,
1549    MatrixResultSignedComponentsKHR = 3,
1550    SaturatingAccumulationKHR = 4,
1551    Max = 0x7fffffff,
1552};
1553
1554enum class CooperativeMatrixOperandsMask : unsigned {
1555    MaskNone = 0,
1556    MatrixASignedComponentsKHR = 0x00000001,
1557    MatrixBSignedComponentsKHR = 0x00000002,
1558    MatrixCSignedComponentsKHR = 0x00000004,
1559    MatrixResultSignedComponentsKHR = 0x00000008,
1560    SaturatingAccumulationKHR = 0x00000010,
1561};
1562
1563enum class CooperativeMatrixLayout : unsigned {
1564    RowMajorKHR = 0,
1565    ColumnMajorKHR = 1,
1566    RowBlockedInterleavedARM = 4202,
1567    ColumnBlockedInterleavedARM = 4203,
1568    Max = 0x7fffffff,
1569};
1570
1571enum class CooperativeMatrixUse : unsigned {
1572    MatrixAKHR = 0,
1573    MatrixBKHR = 1,
1574    MatrixAccumulatorKHR = 2,
1575    Max = 0x7fffffff,
1576};
1577
1578enum class CooperativeMatrixReduceShift : unsigned {
1579    Row = 0,
1580    Column = 1,
1581    CooperativeMatrixReduce2x2 = 2,
1582    Max = 0x7fffffff,
1583};
1584
1585enum class CooperativeMatrixReduceMask : unsigned {
1586    MaskNone = 0,
1587    Row = 0x00000001,
1588    Column = 0x00000002,
1589    CooperativeMatrixReduce2x2 = 0x00000004,
1590};
1591
1592enum class TensorClampMode : unsigned {
1593    Undefined = 0,
1594    Constant = 1,
1595    ClampToEdge = 2,
1596    Repeat = 3,
1597    RepeatMirrored = 4,
1598    Max = 0x7fffffff,
1599};
1600
1601enum class TensorAddressingOperandsShift : unsigned {
1602    TensorView = 0,
1603    DecodeFunc = 1,
1604    DecodeVectorFunc = 2,
1605    Max = 0x7fffffff,
1606};
1607
1608enum class TensorAddressingOperandsMask : unsigned {
1609    MaskNone = 0,
1610    TensorView = 0x00000001,
1611    DecodeFunc = 0x00000002,
1612    DecodeVectorFunc = 0x00000004,
1613};
1614
1615enum class TensorOperandsShift : unsigned {
1616    NontemporalARM = 0,
1617    OutOfBoundsValueARM = 1,
1618    MakeElementAvailableARM = 2,
1619    MakeElementVisibleARM = 3,
1620    NonPrivateElementARM = 4,
1621    Max = 0x7fffffff,
1622};
1623
1624enum class TensorOperandsMask : unsigned {
1625    MaskNone = 0,
1626    NontemporalARM = 0x00000001,
1627    OutOfBoundsValueARM = 0x00000002,
1628    MakeElementAvailableARM = 0x00000004,
1629    MakeElementVisibleARM = 0x00000008,
1630    NonPrivateElementARM = 0x00000010,
1631};
1632
1633enum class InitializationModeQualifier : unsigned {
1634    InitOnDeviceReprogramALTERA = 0,
1635    InitOnDeviceReprogramINTEL = 0,
1636    InitOnDeviceResetALTERA = 1,
1637    InitOnDeviceResetINTEL = 1,
1638    Max = 0x7fffffff,
1639};
1640
1641enum class HostAccessQualifier : unsigned {
1642    NoneINTEL = 0,
1643    ReadINTEL = 1,
1644    WriteINTEL = 2,
1645    ReadWriteINTEL = 3,
1646    Max = 0x7fffffff,
1647};
1648
1649enum class LoadCacheControl : unsigned {
1650    UncachedINTEL = 0,
1651    CachedINTEL = 1,
1652    StreamingINTEL = 2,
1653    InvalidateAfterReadINTEL = 3,
1654    ConstCachedINTEL = 4,
1655    Max = 0x7fffffff,
1656};
1657
1658enum class StoreCacheControl : unsigned {
1659    UncachedINTEL = 0,
1660    WriteThroughINTEL = 1,
1661    WriteBackINTEL = 2,
1662    StreamingINTEL = 3,
1663    Max = 0x7fffffff,
1664};
1665
1666enum class NamedMaximumNumberOfRegisters : unsigned {
1667    AutoINTEL = 0,
1668    Max = 0x7fffffff,
1669};
1670
1671enum class MatrixMultiplyAccumulateOperandsShift : unsigned {
1672    MatrixASignedComponentsINTEL = 0,
1673    MatrixBSignedComponentsINTEL = 1,
1674    MatrixCBFloat16INTEL = 2,
1675    MatrixResultBFloat16INTEL = 3,
1676    MatrixAPackedInt8INTEL = 4,
1677    MatrixBPackedInt8INTEL = 5,
1678    MatrixAPackedInt4INTEL = 6,
1679    MatrixBPackedInt4INTEL = 7,
1680    MatrixATF32INTEL = 8,
1681    MatrixBTF32INTEL = 9,
1682    MatrixAPackedFloat16INTEL = 10,
1683    MatrixBPackedFloat16INTEL = 11,
1684    MatrixAPackedBFloat16INTEL = 12,
1685    MatrixBPackedBFloat16INTEL = 13,
1686    Max = 0x7fffffff,
1687};
1688
1689enum class MatrixMultiplyAccumulateOperandsMask : unsigned {
1690    MaskNone = 0,
1691    MatrixASignedComponentsINTEL = 0x00000001,
1692    MatrixBSignedComponentsINTEL = 0x00000002,
1693    MatrixCBFloat16INTEL = 0x00000004,
1694    MatrixResultBFloat16INTEL = 0x00000008,
1695    MatrixAPackedInt8INTEL = 0x00000010,
1696    MatrixBPackedInt8INTEL = 0x00000020,
1697    MatrixAPackedInt4INTEL = 0x00000040,
1698    MatrixBPackedInt4INTEL = 0x00000080,
1699    MatrixATF32INTEL = 0x00000100,
1700    MatrixBTF32INTEL = 0x00000200,
1701    MatrixAPackedFloat16INTEL = 0x00000400,
1702    MatrixBPackedFloat16INTEL = 0x00000800,
1703    MatrixAPackedBFloat16INTEL = 0x00001000,
1704    MatrixBPackedBFloat16INTEL = 0x00002000,
1705};
1706
1707enum class RawAccessChainOperandsShift : unsigned {
1708    RobustnessPerComponentNV = 0,
1709    RobustnessPerElementNV = 1,
1710    Max = 0x7fffffff,
1711};
1712
1713enum class RawAccessChainOperandsMask : unsigned {
1714    MaskNone = 0,
1715    RobustnessPerComponentNV = 0x00000001,
1716    RobustnessPerElementNV = 0x00000002,
1717};
1718
1719enum class FPEncoding : unsigned {
1720    BFloat16KHR = 0,
1721    Float8E4M3EXT = 4214,
1722    Float8E5M2EXT = 4215,
1723    Float6E2M3EXT = 4223,
1724    Float6E3M2EXT = 4224,
1725    Float4E2M1EXT = 4225,
1726    Float8UnsignedE8M0EXT = 4226,
1727    MXInt8EXT = 4227,
1728    Max = 0x7fffffff,
1729};
1730
1731enum class CooperativeVectorMatrixLayout : unsigned {
1732    RowMajorNV = 0,
1733    ColumnMajorNV = 1,
1734    InferencingOptimalNV = 2,
1735    TrainingOptimalNV = 3,
1736    Max = 0x7fffffff,
1737};
1738
1739enum class ComponentType : unsigned {
1740    Float16NV = 0,
1741    Float32NV = 1,
1742    Float64NV = 2,
1743    SignedInt8NV = 3,
1744    SignedInt16NV = 4,
1745    SignedInt32NV = 5,
1746    SignedInt64NV = 6,
1747    UnsignedInt8NV = 7,
1748    UnsignedInt16NV = 8,
1749    UnsignedInt32NV = 9,
1750    UnsignedInt64NV = 10,
1751    SignedInt8PackedNV = 1000491000,
1752    UnsignedInt8PackedNV = 1000491001,
1753    FloatE4M3NV = 1000491002,
1754    FloatE5M2NV = 1000491003,
1755    Max = 0x7fffffff,
1756};
1757
1758enum class GatherModes : unsigned {
1759    Gather4x1QCOM = 0,
1760    GatherDQCOM = 1,
1761    GatherH2QCOM = 2,
1762    GatherV2QCOM = 3,
1763    Max = 0x7fffffff,
1764};
1765
1766enum class Op : unsigned {
1767    OpNop = 0,
1768    OpUndef = 1,
1769    OpSourceContinued = 2,
1770    OpSource = 3,
1771    OpSourceExtension = 4,
1772    OpName = 5,
1773    OpMemberName = 6,
1774    OpString = 7,
1775    OpLine = 8,
1776    OpExtension = 10,
1777    OpExtInstImport = 11,
1778    OpExtInst = 12,
1779    OpMemoryModel = 14,
1780    OpEntryPoint = 15,
1781    OpExecutionMode = 16,
1782    OpCapability = 17,
1783    OpTypeVoid = 19,
1784    OpTypeBool = 20,
1785    OpTypeInt = 21,
1786    OpTypeFloat = 22,
1787    OpTypeVector = 23,
1788    OpTypeMatrix = 24,
1789    OpTypeImage = 25,
1790    OpTypeSampler = 26,
1791    OpTypeSampledImage = 27,
1792    OpTypeArray = 28,
1793    OpTypeRuntimeArray = 29,
1794    OpTypeStruct = 30,
1795    OpTypeOpaque = 31,
1796    OpTypePointer = 32,
1797    OpTypeFunction = 33,
1798    OpTypeEvent = 34,
1799    OpTypeDeviceEvent = 35,
1800    OpTypeReserveId = 36,
1801    OpTypeQueue = 37,
1802    OpTypePipe = 38,
1803    OpTypeForwardPointer = 39,
1804    OpConstantTrue = 41,
1805    OpConstantFalse = 42,
1806    OpConstant = 43,
1807    OpConstantComposite = 44,
1808    OpConstantSampler = 45,
1809    OpConstantNull = 46,
1810    OpSpecConstantTrue = 48,
1811    OpSpecConstantFalse = 49,
1812    OpSpecConstant = 50,
1813    OpSpecConstantComposite = 51,
1814    OpSpecConstantOp = 52,
1815    OpFunction = 54,
1816    OpFunctionParameter = 55,
1817    OpFunctionEnd = 56,
1818    OpFunctionCall = 57,
1819    OpVariable = 59,
1820    OpImageTexelPointer = 60,
1821    OpLoad = 61,
1822    OpStore = 62,
1823    OpCopyMemory = 63,
1824    OpCopyMemorySized = 64,
1825    OpAccessChain = 65,
1826    OpInBoundsAccessChain = 66,
1827    OpPtrAccessChain = 67,
1828    OpArrayLength = 68,
1829    OpGenericPtrMemSemantics = 69,
1830    OpInBoundsPtrAccessChain = 70,
1831    OpDecorate = 71,
1832    OpMemberDecorate = 72,
1833    OpDecorationGroup = 73,
1834    OpGroupDecorate = 74,
1835    OpGroupMemberDecorate = 75,
1836    OpVectorExtractDynamic = 77,
1837    OpVectorInsertDynamic = 78,
1838    OpVectorShuffle = 79,
1839    OpCompositeConstruct = 80,
1840    OpCompositeExtract = 81,
1841    OpCompositeInsert = 82,
1842    OpCopyObject = 83,
1843    OpTranspose = 84,
1844    OpSampledImage = 86,
1845    OpImageSampleImplicitLod = 87,
1846    OpImageSampleExplicitLod = 88,
1847    OpImageSampleDrefImplicitLod = 89,
1848    OpImageSampleDrefExplicitLod = 90,
1849    OpImageSampleProjImplicitLod = 91,
1850    OpImageSampleProjExplicitLod = 92,
1851    OpImageSampleProjDrefImplicitLod = 93,
1852    OpImageSampleProjDrefExplicitLod = 94,
1853    OpImageFetch = 95,
1854    OpImageGather = 96,
1855    OpImageDrefGather = 97,
1856    OpImageRead = 98,
1857    OpImageWrite = 99,
1858    OpImage = 100,
1859    OpImageQueryFormat = 101,
1860    OpImageQueryOrder = 102,
1861    OpImageQuerySizeLod = 103,
1862    OpImageQuerySize = 104,
1863    OpImageQueryLod = 105,
1864    OpImageQueryLevels = 106,
1865    OpImageQuerySamples = 107,
1866    OpConvertFToU = 109,
1867    OpConvertFToS = 110,
1868    OpConvertSToF = 111,
1869    OpConvertUToF = 112,
1870    OpUConvert = 113,
1871    OpSConvert = 114,
1872    OpFConvert = 115,
1873    OpQuantizeToF16 = 116,
1874    OpConvertPtrToU = 117,
1875    OpSatConvertSToU = 118,
1876    OpSatConvertUToS = 119,
1877    OpConvertUToPtr = 120,
1878    OpPtrCastToGeneric = 121,
1879    OpGenericCastToPtr = 122,
1880    OpGenericCastToPtrExplicit = 123,
1881    OpBitcast = 124,
1882    OpSNegate = 126,
1883    OpFNegate = 127,
1884    OpIAdd = 128,
1885    OpFAdd = 129,
1886    OpISub = 130,
1887    OpFSub = 131,
1888    OpIMul = 132,
1889    OpFMul = 133,
1890    OpUDiv = 134,
1891    OpSDiv = 135,
1892    OpFDiv = 136,
1893    OpUMod = 137,
1894    OpSRem = 138,
1895    OpSMod = 139,
1896    OpFRem = 140,
1897    OpFMod = 141,
1898    OpVectorTimesScalar = 142,
1899    OpMatrixTimesScalar = 143,
1900    OpVectorTimesMatrix = 144,
1901    OpMatrixTimesVector = 145,
1902    OpMatrixTimesMatrix = 146,
1903    OpOuterProduct = 147,
1904    OpDot = 148,
1905    OpIAddCarry = 149,
1906    OpISubBorrow = 150,
1907    OpUMulExtended = 151,
1908    OpSMulExtended = 152,
1909    OpAny = 154,
1910    OpAll = 155,
1911    OpIsNan = 156,
1912    OpIsInf = 157,
1913    OpIsFinite = 158,
1914    OpIsNormal = 159,
1915    OpSignBitSet = 160,
1916    OpLessOrGreater = 161,
1917    OpOrdered = 162,
1918    OpUnordered = 163,
1919    OpLogicalEqual = 164,
1920    OpLogicalNotEqual = 165,
1921    OpLogicalOr = 166,
1922    OpLogicalAnd = 167,
1923    OpLogicalNot = 168,
1924    OpSelect = 169,
1925    OpIEqual = 170,
1926    OpINotEqual = 171,
1927    OpUGreaterThan = 172,
1928    OpSGreaterThan = 173,
1929    OpUGreaterThanEqual = 174,
1930    OpSGreaterThanEqual = 175,
1931    OpULessThan = 176,
1932    OpSLessThan = 177,
1933    OpULessThanEqual = 178,
1934    OpSLessThanEqual = 179,
1935    OpFOrdEqual = 180,
1936    OpFUnordEqual = 181,
1937    OpFOrdNotEqual = 182,
1938    OpFUnordNotEqual = 183,
1939    OpFOrdLessThan = 184,
1940    OpFUnordLessThan = 185,
1941    OpFOrdGreaterThan = 186,
1942    OpFUnordGreaterThan = 187,
1943    OpFOrdLessThanEqual = 188,
1944    OpFUnordLessThanEqual = 189,
1945    OpFOrdGreaterThanEqual = 190,
1946    OpFUnordGreaterThanEqual = 191,
1947    OpShiftRightLogical = 194,
1948    OpShiftRightArithmetic = 195,
1949    OpShiftLeftLogical = 196,
1950    OpBitwiseOr = 197,
1951    OpBitwiseXor = 198,
1952    OpBitwiseAnd = 199,
1953    OpNot = 200,
1954    OpBitFieldInsert = 201,
1955    OpBitFieldSExtract = 202,
1956    OpBitFieldUExtract = 203,
1957    OpBitReverse = 204,
1958    OpBitCount = 205,
1959    OpDPdx = 207,
1960    OpDPdy = 208,
1961    OpFwidth = 209,
1962    OpDPdxFine = 210,
1963    OpDPdyFine = 211,
1964    OpFwidthFine = 212,
1965    OpDPdxCoarse = 213,
1966    OpDPdyCoarse = 214,
1967    OpFwidthCoarse = 215,
1968    OpEmitVertex = 218,
1969    OpEndPrimitive = 219,
1970    OpEmitStreamVertex = 220,
1971    OpEndStreamPrimitive = 221,
1972    OpControlBarrier = 224,
1973    OpMemoryBarrier = 225,
1974    OpAtomicLoad = 227,
1975    OpAtomicStore = 228,
1976    OpAtomicExchange = 229,
1977    OpAtomicCompareExchange = 230,
1978    OpAtomicCompareExchangeWeak = 231,
1979    OpAtomicIIncrement = 232,
1980    OpAtomicIDecrement = 233,
1981    OpAtomicIAdd = 234,
1982    OpAtomicISub = 235,
1983    OpAtomicSMin = 236,
1984    OpAtomicUMin = 237,
1985    OpAtomicSMax = 238,
1986    OpAtomicUMax = 239,
1987    OpAtomicAnd = 240,
1988    OpAtomicOr = 241,
1989    OpAtomicXor = 242,
1990    OpPhi = 245,
1991    OpLoopMerge = 246,
1992    OpSelectionMerge = 247,
1993    OpLabel = 248,
1994    OpBranch = 249,
1995    OpBranchConditional = 250,
1996    OpSwitch = 251,
1997    OpKill = 252,
1998    OpReturn = 253,
1999    OpReturnValue = 254,
2000    OpUnreachable = 255,
2001    OpLifetimeStart = 256,
2002    OpLifetimeStop = 257,
2003    OpGroupAsyncCopy = 259,
2004    OpGroupWaitEvents = 260,
2005    OpGroupAll = 261,
2006    OpGroupAny = 262,
2007    OpGroupBroadcast = 263,
2008    OpGroupIAdd = 264,
2009    OpGroupFAdd = 265,
2010    OpGroupFMin = 266,
2011    OpGroupUMin = 267,
2012    OpGroupSMin = 268,
2013    OpGroupFMax = 269,
2014    OpGroupUMax = 270,
2015    OpGroupSMax = 271,
2016    OpReadPipe = 274,
2017    OpWritePipe = 275,
2018    OpReservedReadPipe = 276,
2019    OpReservedWritePipe = 277,
2020    OpReserveReadPipePackets = 278,
2021    OpReserveWritePipePackets = 279,
2022    OpCommitReadPipe = 280,
2023    OpCommitWritePipe = 281,
2024    OpIsValidReserveId = 282,
2025    OpGetNumPipePackets = 283,
2026    OpGetMaxPipePackets = 284,
2027    OpGroupReserveReadPipePackets = 285,
2028    OpGroupReserveWritePipePackets = 286,
2029    OpGroupCommitReadPipe = 287,
2030    OpGroupCommitWritePipe = 288,
2031    OpEnqueueMarker = 291,
2032    OpEnqueueKernel = 292,
2033    OpGetKernelNDrangeSubGroupCount = 293,
2034    OpGetKernelNDrangeMaxSubGroupSize = 294,
2035    OpGetKernelWorkGroupSize = 295,
2036    OpGetKernelPreferredWorkGroupSizeMultiple = 296,
2037    OpRetainEvent = 297,
2038    OpReleaseEvent = 298,
2039    OpCreateUserEvent = 299,
2040    OpIsValidEvent = 300,
2041    OpSetUserEventStatus = 301,
2042    OpCaptureEventProfilingInfo = 302,
2043    OpGetDefaultQueue = 303,
2044    OpBuildNDRange = 304,
2045    OpImageSparseSampleImplicitLod = 305,
2046    OpImageSparseSampleExplicitLod = 306,
2047    OpImageSparseSampleDrefImplicitLod = 307,
2048    OpImageSparseSampleDrefExplicitLod = 308,
2049    OpImageSparseSampleProjImplicitLod = 309,
2050    OpImageSparseSampleProjExplicitLod = 310,
2051    OpImageSparseSampleProjDrefImplicitLod = 311,
2052    OpImageSparseSampleProjDrefExplicitLod = 312,
2053    OpImageSparseFetch = 313,
2054    OpImageSparseGather = 314,
2055    OpImageSparseDrefGather = 315,
2056    OpImageSparseTexelsResident = 316,
2057    OpNoLine = 317,
2058    OpAtomicFlagTestAndSet = 318,
2059    OpAtomicFlagClear = 319,
2060    OpImageSparseRead = 320,
2061    OpSizeOf = 321,
2062    OpTypePipeStorage = 322,
2063    OpConstantPipeStorage = 323,
2064    OpCreatePipeFromPipeStorage = 324,
2065    OpGetKernelLocalSizeForSubgroupCount = 325,
2066    OpGetKernelMaxNumSubgroups = 326,
2067    OpTypeNamedBarrier = 327,
2068    OpNamedBarrierInitialize = 328,
2069    OpMemoryNamedBarrier = 329,
2070    OpModuleProcessed = 330,
2071    OpExecutionModeId = 331,
2072    OpDecorateId = 332,
2073    OpGroupNonUniformElect = 333,
2074    OpGroupNonUniformAll = 334,
2075    OpGroupNonUniformAny = 335,
2076    OpGroupNonUniformAllEqual = 336,
2077    OpGroupNonUniformBroadcast = 337,
2078    OpGroupNonUniformBroadcastFirst = 338,
2079    OpGroupNonUniformBallot = 339,
2080    OpGroupNonUniformInverseBallot = 340,
2081    OpGroupNonUniformBallotBitExtract = 341,
2082    OpGroupNonUniformBallotBitCount = 342,
2083    OpGroupNonUniformBallotFindLSB = 343,
2084    OpGroupNonUniformBallotFindMSB = 344,
2085    OpGroupNonUniformShuffle = 345,
2086    OpGroupNonUniformShuffleXor = 346,
2087    OpGroupNonUniformShuffleUp = 347,
2088    OpGroupNonUniformShuffleDown = 348,
2089    OpGroupNonUniformIAdd = 349,
2090    OpGroupNonUniformFAdd = 350,
2091    OpGroupNonUniformIMul = 351,
2092    OpGroupNonUniformFMul = 352,
2093    OpGroupNonUniformSMin = 353,
2094    OpGroupNonUniformUMin = 354,
2095    OpGroupNonUniformFMin = 355,
2096    OpGroupNonUniformSMax = 356,
2097    OpGroupNonUniformUMax = 357,
2098    OpGroupNonUniformFMax = 358,
2099    OpGroupNonUniformBitwiseAnd = 359,
2100    OpGroupNonUniformBitwiseOr = 360,
2101    OpGroupNonUniformBitwiseXor = 361,
2102    OpGroupNonUniformLogicalAnd = 362,
2103    OpGroupNonUniformLogicalOr = 363,
2104    OpGroupNonUniformLogicalXor = 364,
2105    OpGroupNonUniformQuadBroadcast = 365,
2106    OpGroupNonUniformQuadSwap = 366,
2107    OpCopyLogical = 400,
2108    OpPtrEqual = 401,
2109    OpPtrNotEqual = 402,
2110    OpPtrDiff = 403,
2111    OpColorAttachmentReadEXT = 4160,
2112    OpDepthAttachmentReadEXT = 4161,
2113    OpStencilAttachmentReadEXT = 4162,
2114    OpTypeTensorARM = 4163,
2115    OpTensorReadARM = 4164,
2116    OpTensorWriteARM = 4165,
2117    OpTensorQuerySizeARM = 4166,
2118    OpGraphConstantARM = 4181,
2119    OpGraphEntryPointARM = 4182,
2120    OpGraphARM = 4183,
2121    OpGraphInputARM = 4184,
2122    OpGraphSetOutputARM = 4185,
2123    OpGraphEndARM = 4186,
2124    OpTypeGraphARM = 4190,
2125    OpBitcastExtractEXT = 4195,
2126    OpTerminateInvocation = 4416,
2127    OpTypeUntypedPointerKHR = 4417,
2128    OpUntypedVariableKHR = 4418,
2129    OpUntypedAccessChainKHR = 4419,
2130    OpUntypedInBoundsAccessChainKHR = 4420,
2131    OpSubgroupBallotKHR = 4421,
2132    OpSubgroupFirstInvocationKHR = 4422,
2133    OpUntypedPtrAccessChainKHR = 4423,
2134    OpUntypedInBoundsPtrAccessChainKHR = 4424,
2135    OpUntypedArrayLengthKHR = 4425,
2136    OpUntypedPrefetchKHR = 4426,
2137    OpFmaKHR = 4427,
2138    OpSubgroupAllKHR = 4428,
2139    OpSubgroupAnyKHR = 4429,
2140    OpSubgroupAllEqualKHR = 4430,
2141    OpGroupNonUniformRotateKHR = 4431,
2142    OpSubgroupReadInvocationKHR = 4432,
2143    OpExtInstWithForwardRefsKHR = 4433,
2144    OpUntypedGroupAsyncCopyKHR = 4434,
2145    OpTraceRayKHR = 4445,
2146    OpExecuteCallableKHR = 4446,
2147    OpConvertUToAccelerationStructureKHR = 4447,
2148    OpIgnoreIntersectionKHR = 4448,
2149    OpTerminateRayKHR = 4449,
2150    OpSDot = 4450,
2151    OpSDotKHR = 4450,
2152    OpUDot = 4451,
2153    OpUDotKHR = 4451,
2154    OpSUDot = 4452,
2155    OpSUDotKHR = 4452,
2156    OpSDotAccSat = 4453,
2157    OpSDotAccSatKHR = 4453,
2158    OpUDotAccSat = 4454,
2159    OpUDotAccSatKHR = 4454,
2160    OpSUDotAccSat = 4455,
2161    OpSUDotAccSatKHR = 4455,
2162    OpTypeCooperativeMatrixKHR = 4456,
2163    OpCooperativeMatrixLoadKHR = 4457,
2164    OpCooperativeMatrixStoreKHR = 4458,
2165    OpCooperativeMatrixMulAddKHR = 4459,
2166    OpCooperativeMatrixLengthKHR = 4460,
2167    OpConstantCompositeReplicateEXT = 4461,
2168    OpSpecConstantCompositeReplicateEXT = 4462,
2169    OpCompositeConstructReplicateEXT = 4463,
2170    OpTypeRayQueryKHR = 4472,
2171    OpRayQueryInitializeKHR = 4473,
2172    OpRayQueryTerminateKHR = 4474,
2173    OpRayQueryGenerateIntersectionKHR = 4475,
2174    OpRayQueryConfirmIntersectionKHR = 4476,
2175    OpRayQueryProceedKHR = 4477,
2176    OpRayQueryGetIntersectionTypeKHR = 4479,
2177    OpImageSampleWeightedQCOM = 4480,
2178    OpImageBoxFilterQCOM = 4481,
2179    OpImageBlockMatchSSDQCOM = 4482,
2180    OpImageBlockMatchSADQCOM = 4483,
2181    OpBitCastArrayQCOM = 4497,
2182    OpImageBlockMatchWindowSSDQCOM = 4500,
2183    OpImageBlockMatchWindowSADQCOM = 4501,
2184    OpImageBlockMatchGatherSSDQCOM = 4502,
2185    OpImageBlockMatchGatherSADQCOM = 4503,
2186    OpCompositeConstructCoopMatQCOM = 4540,
2187    OpCompositeExtractCoopMatQCOM = 4541,
2188    OpExtractSubArrayQCOM = 4542,
2189    OpImageGatherQCOM = 4545,
2190    OpGroupIAddNonUniformAMD = 5000,
2191    OpGroupFAddNonUniformAMD = 5001,
2192    OpGroupFMinNonUniformAMD = 5002,
2193    OpGroupUMinNonUniformAMD = 5003,
2194    OpGroupSMinNonUniformAMD = 5004,
2195    OpGroupFMaxNonUniformAMD = 5005,
2196    OpGroupUMaxNonUniformAMD = 5006,
2197    OpGroupSMaxNonUniformAMD = 5007,
2198    OpFragmentMaskFetchAMD = 5011,
2199    OpFragmentFetchAMD = 5012,
2200    OpReadClockKHR = 5056,
2201    OpAllocateNodePayloadsAMDX = 5074,
2202    OpEnqueueNodePayloadsAMDX = 5075,
2203    OpTypeNodePayloadArrayAMDX = 5076,
2204    OpFinishWritingNodePayloadAMDX = 5078,
2205    OpNodePayloadArrayLengthAMDX = 5090,
2206    OpIsNodePayloadValidAMDX = 5101,
2207    OpConstantStringAMDX = 5103,
2208    OpSpecConstantStringAMDX = 5104,
2209    OpGroupNonUniformQuadAllKHR = 5110,
2210    OpGroupNonUniformQuadAnyKHR = 5111,
2211    OpTypeBufferEXT = 5115,
2212    OpBufferPointerEXT = 5119,
2213    OpAbortKHR = 5121,
2214    OpUntypedImageTexelPointerEXT = 5126,
2215    OpMemberDecorateIdEXT = 5127,
2216    OpConstantSizeOfEXT = 5129,
2217    OpConstantDataKHR = 5147,
2218    OpSpecConstantDataKHR = 5148,
2219    OpPoisonKHR = 5158,
2220    OpFreezeKHR = 5159,
2221    OpHitObjectRecordHitMotionNV = 5249,
2222    OpHitObjectRecordHitWithIndexMotionNV = 5250,
2223    OpHitObjectRecordMissMotionNV = 5251,
2224    OpHitObjectGetWorldToObjectNV = 5252,
2225    OpHitObjectGetObjectToWorldNV = 5253,
2226    OpHitObjectGetObjectRayDirectionNV = 5254,
2227    OpHitObjectGetObjectRayOriginNV = 5255,
2228    OpHitObjectTraceRayMotionNV = 5256,
2229    OpHitObjectGetShaderRecordBufferHandleNV = 5257,
2230    OpHitObjectGetShaderBindingTableRecordIndexNV = 5258,
2231    OpHitObjectRecordEmptyNV = 5259,
2232    OpHitObjectTraceRayNV = 5260,
2233    OpHitObjectRecordHitNV = 5261,
2234    OpHitObjectRecordHitWithIndexNV = 5262,
2235    OpHitObjectRecordMissNV = 5263,
2236    OpHitObjectExecuteShaderNV = 5264,
2237    OpHitObjectGetCurrentTimeNV = 5265,
2238    OpHitObjectGetAttributesNV = 5266,
2239    OpHitObjectGetHitKindNV = 5267,
2240    OpHitObjectGetPrimitiveIndexNV = 5268,
2241    OpHitObjectGetGeometryIndexNV = 5269,
2242    OpHitObjectGetInstanceIdNV = 5270,
2243    OpHitObjectGetInstanceCustomIndexNV = 5271,
2244    OpHitObjectGetWorldRayDirectionNV = 5272,
2245    OpHitObjectGetWorldRayOriginNV = 5273,
2246    OpHitObjectGetRayTMaxNV = 5274,
2247    OpHitObjectGetRayTMinNV = 5275,
2248    OpHitObjectIsEmptyNV = 5276,
2249    OpHitObjectIsHitNV = 5277,
2250    OpHitObjectIsMissNV = 5278,
2251    OpReorderThreadWithHitObjectNV = 5279,
2252    OpReorderThreadWithHintNV = 5280,
2253    OpTypeHitObjectNV = 5281,
2254    OpImageSampleFootprintNV = 5283,
2255    OpTypeCooperativeVectorNV = 5288,
2256    OpTypeVectorIdEXT = 5288,
2257    OpCooperativeVectorMatrixMulNV = 5289,
2258    OpCooperativeVectorOuterProductAccumulateNV = 5290,
2259    OpCooperativeVectorReduceSumAccumulateNV = 5291,
2260    OpCooperativeVectorMatrixMulAddNV = 5292,
2261    OpCooperativeMatrixConvertNV = 5293,
2262    OpCooperativeMatrixConvertUseEXT = 5293,
2263    OpEmitMeshTasksEXT = 5294,
2264    OpSetMeshOutputsEXT = 5295,
2265    OpGroupNonUniformPartitionEXT = 5296,
2266    OpGroupNonUniformPartitionNV = 5296,
2267    OpWritePackedPrimitiveIndices4x8NV = 5299,
2268    OpFetchMicroTriangleVertexPositionNV = 5300,
2269    OpFetchMicroTriangleVertexBarycentricNV = 5301,
2270    OpCooperativeVectorLoadNV = 5302,
2271    OpCooperativeVectorStoreNV = 5303,
2272    OpHitObjectRecordFromQueryEXT = 5304,
2273    OpHitObjectRecordMissEXT = 5305,
2274    OpHitObjectRecordMissMotionEXT = 5306,
2275    OpHitObjectGetIntersectionTriangleVertexPositionsEXT = 5307,
2276    OpHitObjectGetRayFlagsEXT = 5308,
2277    OpHitObjectSetShaderBindingTableRecordIndexEXT = 5309,
2278    OpHitObjectReorderExecuteShaderEXT = 5310,
2279    OpHitObjectTraceReorderExecuteEXT = 5311,
2280    OpHitObjectTraceMotionReorderExecuteEXT = 5312,
2281    OpTypeHitObjectEXT = 5313,
2282    OpReorderThreadWithHintEXT = 5314,
2283    OpReorderThreadWithHitObjectEXT = 5315,
2284    OpHitObjectTraceRayEXT = 5316,
2285    OpHitObjectTraceRayMotionEXT = 5317,
2286    OpHitObjectRecordEmptyEXT = 5318,
2287    OpHitObjectExecuteShaderEXT = 5319,
2288    OpHitObjectGetCurrentTimeEXT = 5320,
2289    OpHitObjectGetAttributesEXT = 5321,
2290    OpHitObjectGetHitKindEXT = 5322,
2291    OpHitObjectGetPrimitiveIndexEXT = 5323,
2292    OpHitObjectGetGeometryIndexEXT = 5324,
2293    OpHitObjectGetInstanceIdEXT = 5325,
2294    OpHitObjectGetInstanceCustomIndexEXT = 5326,
2295    OpHitObjectGetObjectRayOriginEXT = 5327,
2296    OpHitObjectGetObjectRayDirectionEXT = 5328,
2297    OpHitObjectGetWorldRayDirectionEXT = 5329,
2298    OpHitObjectGetWorldRayOriginEXT = 5330,
2299    OpHitObjectGetObjectToWorldEXT = 5331,
2300    OpHitObjectGetWorldToObjectEXT = 5332,
2301    OpHitObjectGetRayTMaxEXT = 5333,
2302    OpReportIntersectionKHR = 5334,
2303    OpReportIntersectionNV = 5334,
2304    OpIgnoreIntersectionNV = 5335,
2305    OpTerminateRayNV = 5336,
2306    OpTraceNV = 5337,
2307    OpTraceMotionNV = 5338,
2308    OpTraceRayMotionNV = 5339,
2309    OpRayQueryGetIntersectionTriangleVertexPositionsKHR = 5340,
2310    OpTypeAccelerationStructureKHR = 5341,
2311    OpTypeAccelerationStructureNV = 5341,
2312    OpExecuteCallableNV = 5344,
2313    OpRayQueryGetClusterIdNV = 5345,
2314    OpRayQueryGetIntersectionClusterIdNV = 5345,
2315    OpHitObjectGetClusterIdNV = 5346,
2316    OpHitObjectGetRayTMinEXT = 5347,
2317    OpHitObjectGetShaderBindingTableRecordIndexEXT = 5348,
2318    OpHitObjectGetShaderRecordBufferHandleEXT = 5349,
2319    OpHitObjectIsEmptyEXT = 5350,
2320    OpHitObjectIsHitEXT = 5351,
2321    OpHitObjectIsMissEXT = 5352,
2322    OpTypeCooperativeMatrixNV = 5358,
2323    OpCooperativeMatrixLoadNV = 5359,
2324    OpCooperativeMatrixStoreNV = 5360,
2325    OpCooperativeMatrixMulAddNV = 5361,
2326    OpCooperativeMatrixLengthNV = 5362,
2327    OpCooperativeMatrixGetCoordinateEXT = 5363,
2328    OpBeginInvocationInterlockEXT = 5364,
2329    OpEndInvocationInterlockEXT = 5365,
2330    OpCooperativeMatrixReduceEXT = 5366,
2331    OpCooperativeMatrixReduceNV = 5366,
2332    OpCooperativeMatrixLoadTensorNV = 5367,
2333    OpCooperativeMatrixStoreTensorNV = 5368,
2334    OpCooperativeMatrixPerElementOpEXT = 5369,
2335    OpCooperativeMatrixPerElementOpNV = 5369,
2336    OpTypeTensorLayoutNV = 5370,
2337    OpTypeTensorViewNV = 5371,
2338    OpCreateTensorLayoutNV = 5372,
2339    OpTensorLayoutSetDimensionNV = 5373,
2340    OpTensorLayoutSetStrideNV = 5374,
2341    OpTensorLayoutSliceNV = 5375,
2342    OpTensorLayoutSetClampValueNV = 5376,
2343    OpCreateTensorViewNV = 5377,
2344    OpTensorViewSetDimensionNV = 5378,
2345    OpTensorViewSetStrideNV = 5379,
2346    OpDemoteToHelperInvocation = 5380,
2347    OpDemoteToHelperInvocationEXT = 5380,
2348    OpIsHelperInvocationEXT = 5381,
2349    OpTensorViewSetClipNV = 5382,
2350    OpTensorLayoutSetBlockSizeNV = 5384,
2351    OpCooperativeMatrixTransposeNV = 5390,
2352    OpConvertUToImageNV = 5391,
2353    OpConvertUToSamplerNV = 5392,
2354    OpConvertImageToUNV = 5393,
2355    OpConvertSamplerToUNV = 5394,
2356    OpConvertUToSampledImageNV = 5395,
2357    OpConvertSampledImageToUNV = 5396,
2358    OpSamplerImageAddressingModeNV = 5397,
2359    OpRawAccessChainNV = 5398,
2360    OpRayQueryGetIntersectionSpherePositionNV = 5427,
2361    OpRayQueryGetIntersectionSphereRadiusNV = 5428,
2362    OpRayQueryGetIntersectionLSSPositionsNV = 5429,
2363    OpRayQueryGetIntersectionLSSRadiiNV = 5430,
2364    OpRayQueryGetIntersectionLSSHitValueNV = 5431,
2365    OpHitObjectGetSpherePositionNV = 5432,
2366    OpHitObjectGetSphereRadiusNV = 5433,
2367    OpHitObjectGetLSSPositionsNV = 5434,
2368    OpHitObjectGetLSSRadiiNV = 5435,
2369    OpHitObjectIsSphereHitNV = 5436,
2370    OpHitObjectIsLSSHitNV = 5437,
2371    OpRayQueryIsSphereHitNV = 5438,
2372    OpRayQueryIsLSSHitNV = 5439,
2373    OpSubgroupShuffleINTEL = 5571,
2374    OpSubgroupShuffleDownINTEL = 5572,
2375    OpSubgroupShuffleUpINTEL = 5573,
2376    OpSubgroupShuffleXorINTEL = 5574,
2377    OpSubgroupBlockReadINTEL = 5575,
2378    OpSubgroupBlockWriteINTEL = 5576,
2379    OpSubgroupImageBlockReadINTEL = 5577,
2380    OpSubgroupImageBlockWriteINTEL = 5578,
2381    OpSubgroupImageMediaBlockReadINTEL = 5580,
2382    OpSubgroupImageMediaBlockWriteINTEL = 5581,
2383    OpUCountLeadingZerosINTEL = 5585,
2384    OpUCountTrailingZerosINTEL = 5586,
2385    OpAbsISubINTEL = 5587,
2386    OpAbsUSubINTEL = 5588,
2387    OpIAddSatINTEL = 5589,
2388    OpUAddSatINTEL = 5590,
2389    OpIAverageINTEL = 5591,
2390    OpUAverageINTEL = 5592,
2391    OpIAverageRoundedINTEL = 5593,
2392    OpUAverageRoundedINTEL = 5594,
2393    OpISubSatINTEL = 5595,
2394    OpUSubSatINTEL = 5596,
2395    OpIMul32x16INTEL = 5597,
2396    OpUMul32x16INTEL = 5598,
2397    OpConstantFunctionPointerINTEL = 5600,
2398    OpFunctionPointerCallINTEL = 5601,
2399    OpAsmTargetINTEL = 5609,
2400    OpAsmINTEL = 5610,
2401    OpAsmCallINTEL = 5611,
2402    OpAtomicFMinEXT = 5614,
2403    OpAtomicFMaxEXT = 5615,
2404    OpAssumeTrueKHR = 5630,
2405    OpExpectKHR = 5631,
2406    OpDecorateString = 5632,
2407    OpDecorateStringGOOGLE = 5632,
2408    OpMemberDecorateString = 5633,
2409    OpMemberDecorateStringGOOGLE = 5633,
2410    OpVmeImageINTEL = 5699,
2411    OpTypeVmeImageINTEL = 5700,
2412    OpTypeAvcImePayloadINTEL = 5701,
2413    OpTypeAvcRefPayloadINTEL = 5702,
2414    OpTypeAvcSicPayloadINTEL = 5703,
2415    OpTypeAvcMcePayloadINTEL = 5704,
2416    OpTypeAvcMceResultINTEL = 5705,
2417    OpTypeAvcImeResultINTEL = 5706,
2418    OpTypeAvcImeResultSingleReferenceStreamoutINTEL = 5707,
2419    OpTypeAvcImeResultDualReferenceStreamoutINTEL = 5708,
2420    OpTypeAvcImeSingleReferenceStreaminINTEL = 5709,
2421    OpTypeAvcImeDualReferenceStreaminINTEL = 5710,
2422    OpTypeAvcRefResultINTEL = 5711,
2423    OpTypeAvcSicResultINTEL = 5712,
2424    OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL = 5713,
2425    OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL = 5714,
2426    OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL = 5715,
2427    OpSubgroupAvcMceSetInterShapePenaltyINTEL = 5716,
2428    OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL = 5717,
2429    OpSubgroupAvcMceSetInterDirectionPenaltyINTEL = 5718,
2430    OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL = 5719,
2431    OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL = 5720,
2432    OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL = 5721,
2433    OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL = 5722,
2434    OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL = 5723,
2435    OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL = 5724,
2436    OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL = 5725,
2437    OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL = 5726,
2438    OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL = 5727,
2439    OpSubgroupAvcMceSetAcOnlyHaarINTEL = 5728,
2440    OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL = 5729,
2441    OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL = 5730,
2442    OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL = 5731,
2443    OpSubgroupAvcMceConvertToImePayloadINTEL = 5732,
2444    OpSubgroupAvcMceConvertToImeResultINTEL = 5733,
2445    OpSubgroupAvcMceConvertToRefPayloadINTEL = 5734,
2446    OpSubgroupAvcMceConvertToRefResultINTEL = 5735,
2447    OpSubgroupAvcMceConvertToSicPayloadINTEL = 5736,
2448    OpSubgroupAvcMceConvertToSicResultINTEL = 5737,
2449    OpSubgroupAvcMceGetMotionVectorsINTEL = 5738,
2450    OpSubgroupAvcMceGetInterDistortionsINTEL = 5739,
2451    OpSubgroupAvcMceGetBestInterDistortionsINTEL = 5740,
2452    OpSubgroupAvcMceGetInterMajorShapeINTEL = 5741,
2453    OpSubgroupAvcMceGetInterMinorShapeINTEL = 5742,
2454    OpSubgroupAvcMceGetInterDirectionsINTEL = 5743,
2455    OpSubgroupAvcMceGetInterMotionVectorCountINTEL = 5744,
2456    OpSubgroupAvcMceGetInterReferenceIdsINTEL = 5745,
2457    OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL = 5746,
2458    OpSubgroupAvcImeInitializeINTEL = 5747,
2459    OpSubgroupAvcImeSetSingleReferenceINTEL = 5748,
2460    OpSubgroupAvcImeSetDualReferenceINTEL = 5749,
2461    OpSubgroupAvcImeRefWindowSizeINTEL = 5750,
2462    OpSubgroupAvcImeAdjustRefOffsetINTEL = 5751,
2463    OpSubgroupAvcImeConvertToMcePayloadINTEL = 5752,
2464    OpSubgroupAvcImeSetMaxMotionVectorCountINTEL = 5753,
2465    OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL = 5754,
2466    OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL = 5755,
2467    OpSubgroupAvcImeSetWeightedSadINTEL = 5756,
2468    OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL = 5757,
2469    OpSubgroupAvcImeEvaluateWithDualReferenceINTEL = 5758,
2470    OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL = 5759,
2471    OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL = 5760,
2472    OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL = 5761,
2473    OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL = 5762,
2474    OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL = 5763,
2475    OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL = 5764,
2476    OpSubgroupAvcImeConvertToMceResultINTEL = 5765,
2477    OpSubgroupAvcImeGetSingleReferenceStreaminINTEL = 5766,
2478    OpSubgroupAvcImeGetDualReferenceStreaminINTEL = 5767,
2479    OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL = 5768,
2480    OpSubgroupAvcImeStripDualReferenceStreamoutINTEL = 5769,
2481    OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL = 5770,
2482    OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL = 5771,
2483    OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL = 5772,
2484    OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL = 5773,
2485    OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL = 5774,
2486    OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL = 5775,
2487    OpSubgroupAvcImeGetBorderReachedINTEL = 5776,
2488    OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL = 5777,
2489    OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL = 5778,
2490    OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL = 5779,
2491    OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL = 5780,
2492    OpSubgroupAvcFmeInitializeINTEL = 5781,
2493    OpSubgroupAvcBmeInitializeINTEL = 5782,
2494    OpSubgroupAvcRefConvertToMcePayloadINTEL = 5783,
2495    OpSubgroupAvcRefSetBidirectionalMixDisableINTEL = 5784,
2496    OpSubgroupAvcRefSetBilinearFilterEnableINTEL = 5785,
2497    OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL = 5786,
2498    OpSubgroupAvcRefEvaluateWithDualReferenceINTEL = 5787,
2499    OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL = 5788,
2500    OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL = 5789,
2501    OpSubgroupAvcRefConvertToMceResultINTEL = 5790,
2502    OpSubgroupAvcSicInitializeINTEL = 5791,
2503    OpSubgroupAvcSicConfigureSkcINTEL = 5792,
2504    OpSubgroupAvcSicConfigureIpeLumaINTEL = 5793,
2505    OpSubgroupAvcSicConfigureIpeLumaChromaINTEL = 5794,
2506    OpSubgroupAvcSicGetMotionVectorMaskINTEL = 5795,
2507    OpSubgroupAvcSicConvertToMcePayloadINTEL = 5796,
2508    OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL = 5797,
2509    OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL = 5798,
2510    OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL = 5799,
2511    OpSubgroupAvcSicSetBilinearFilterEnableINTEL = 5800,
2512    OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL = 5801,
2513    OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL = 5802,
2514    OpSubgroupAvcSicEvaluateIpeINTEL = 5803,
2515    OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL = 5804,
2516    OpSubgroupAvcSicEvaluateWithDualReferenceINTEL = 5805,
2517    OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL = 5806,
2518    OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL = 5807,
2519    OpSubgroupAvcSicConvertToMceResultINTEL = 5808,
2520    OpSubgroupAvcSicGetIpeLumaShapeINTEL = 5809,
2521    OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL = 5810,
2522    OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL = 5811,
2523    OpSubgroupAvcSicGetPackedIpeLumaModesINTEL = 5812,
2524    OpSubgroupAvcSicGetIpeChromaModeINTEL = 5813,
2525    OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL = 5814,
2526    OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL = 5815,
2527    OpSubgroupAvcSicGetInterRawSadsINTEL = 5816,
2528    OpVariableLengthArrayINTEL = 5818,
2529    OpSaveMemoryINTEL = 5819,
2530    OpRestoreMemoryINTEL = 5820,
2531    OpArbitraryFloatSinCosPiALTERA = 5840,
2532    OpArbitraryFloatSinCosPiINTEL = 5840,
2533    OpArbitraryFloatCastALTERA = 5841,
2534    OpArbitraryFloatCastINTEL = 5841,
2535    OpArbitraryFloatCastFromIntALTERA = 5842,
2536    OpArbitraryFloatCastFromIntINTEL = 5842,
2537    OpArbitraryFloatCastToIntALTERA = 5843,
2538    OpArbitraryFloatCastToIntINTEL = 5843,
2539    OpArbitraryFloatAddALTERA = 5846,
2540    OpArbitraryFloatAddINTEL = 5846,
2541    OpArbitraryFloatSubALTERA = 5847,
2542    OpArbitraryFloatSubINTEL = 5847,
2543    OpArbitraryFloatMulALTERA = 5848,
2544    OpArbitraryFloatMulINTEL = 5848,
2545    OpArbitraryFloatDivALTERA = 5849,
2546    OpArbitraryFloatDivINTEL = 5849,
2547    OpArbitraryFloatGTALTERA = 5850,
2548    OpArbitraryFloatGTINTEL = 5850,
2549    OpArbitraryFloatGEALTERA = 5851,
2550    OpArbitraryFloatGEINTEL = 5851,
2551    OpArbitraryFloatLTALTERA = 5852,
2552    OpArbitraryFloatLTINTEL = 5852,
2553    OpArbitraryFloatLEALTERA = 5853,
2554    OpArbitraryFloatLEINTEL = 5853,
2555    OpArbitraryFloatEQALTERA = 5854,
2556    OpArbitraryFloatEQINTEL = 5854,
2557    OpArbitraryFloatRecipALTERA = 5855,
2558    OpArbitraryFloatRecipINTEL = 5855,
2559    OpArbitraryFloatRSqrtALTERA = 5856,
2560    OpArbitraryFloatRSqrtINTEL = 5856,
2561    OpArbitraryFloatCbrtALTERA = 5857,
2562    OpArbitraryFloatCbrtINTEL = 5857,
2563    OpArbitraryFloatHypotALTERA = 5858,
2564    OpArbitraryFloatHypotINTEL = 5858,
2565    OpArbitraryFloatSqrtALTERA = 5859,
2566    OpArbitraryFloatSqrtINTEL = 5859,
2567    OpArbitraryFloatLogINTEL = 5860,
2568    OpArbitraryFloatLog2INTEL = 5861,
2569    OpArbitraryFloatLog10INTEL = 5862,
2570    OpArbitraryFloatLog1pINTEL = 5863,
2571    OpArbitraryFloatExpINTEL = 5864,
2572    OpArbitraryFloatExp2INTEL = 5865,
2573    OpArbitraryFloatExp10INTEL = 5866,
2574    OpArbitraryFloatExpm1INTEL = 5867,
2575    OpArbitraryFloatSinINTEL = 5868,
2576    OpArbitraryFloatCosINTEL = 5869,
2577    OpArbitraryFloatSinCosINTEL = 5870,
2578    OpArbitraryFloatSinPiINTEL = 5871,
2579    OpArbitraryFloatCosPiINTEL = 5872,
2580    OpArbitraryFloatASinINTEL = 5873,
2581    OpArbitraryFloatASinPiINTEL = 5874,
2582    OpArbitraryFloatACosINTEL = 5875,
2583    OpArbitraryFloatACosPiINTEL = 5876,
2584    OpArbitraryFloatATanINTEL = 5877,
2585    OpArbitraryFloatATanPiINTEL = 5878,
2586    OpArbitraryFloatATan2INTEL = 5879,
2587    OpArbitraryFloatPowINTEL = 5880,
2588    OpArbitraryFloatPowRINTEL = 5881,
2589    OpArbitraryFloatPowNINTEL = 5882,
2590    OpLoopControlINTEL = 5887,
2591    OpAliasDomainDeclINTEL = 5911,
2592    OpAliasScopeDeclINTEL = 5912,
2593    OpAliasScopeListDeclINTEL = 5913,
2594    OpFixedSqrtALTERA = 5923,
2595    OpFixedSqrtINTEL = 5923,
2596    OpFixedRecipALTERA = 5924,
2597    OpFixedRecipINTEL = 5924,
2598    OpFixedRsqrtALTERA = 5925,
2599    OpFixedRsqrtINTEL = 5925,
2600    OpFixedSinALTERA = 5926,
2601    OpFixedSinINTEL = 5926,
2602    OpFixedCosALTERA = 5927,
2603    OpFixedCosINTEL = 5927,
2604    OpFixedSinCosALTERA = 5928,
2605    OpFixedSinCosINTEL = 5928,
2606    OpFixedSinPiALTERA = 5929,
2607    OpFixedSinPiINTEL = 5929,
2608    OpFixedCosPiALTERA = 5930,
2609    OpFixedCosPiINTEL = 5930,
2610    OpFixedSinCosPiALTERA = 5931,
2611    OpFixedSinCosPiINTEL = 5931,
2612    OpFixedLogALTERA = 5932,
2613    OpFixedLogINTEL = 5932,
2614    OpFixedExpALTERA = 5933,
2615    OpFixedExpINTEL = 5933,
2616    OpPtrCastToCrossWorkgroupALTERA = 5934,
2617    OpPtrCastToCrossWorkgroupINTEL = 5934,
2618    OpCrossWorkgroupCastToPtrALTERA = 5938,
2619    OpCrossWorkgroupCastToPtrINTEL = 5938,
2620    OpReadPipeBlockingALTERA = 5946,
2621    OpReadPipeBlockingINTEL = 5946,
2622    OpWritePipeBlockingALTERA = 5947,
2623    OpWritePipeBlockingINTEL = 5947,
2624    OpFPGARegALTERA = 5949,
2625    OpFPGARegINTEL = 5949,
2626    OpRayQueryGetRayTMinKHR = 6016,
2627    OpRayQueryGetRayFlagsKHR = 6017,
2628    OpRayQueryGetIntersectionTKHR = 6018,
2629    OpRayQueryGetIntersectionInstanceCustomIndexKHR = 6019,
2630    OpRayQueryGetIntersectionInstanceIdKHR = 6020,
2631    OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR = 6021,
2632    OpRayQueryGetIntersectionGeometryIndexKHR = 6022,
2633    OpRayQueryGetIntersectionPrimitiveIndexKHR = 6023,
2634    OpRayQueryGetIntersectionBarycentricsKHR = 6024,
2635    OpRayQueryGetIntersectionFrontFaceKHR = 6025,
2636    OpRayQueryGetIntersectionCandidateAABBOpaqueKHR = 6026,
2637    OpRayQueryGetIntersectionObjectRayDirectionKHR = 6027,
2638    OpRayQueryGetIntersectionObjectRayOriginKHR = 6028,
2639    OpRayQueryGetWorldRayDirectionKHR = 6029,
2640    OpRayQueryGetWorldRayOriginKHR = 6030,
2641    OpRayQueryGetIntersectionObjectToWorldKHR = 6031,
2642    OpRayQueryGetIntersectionWorldToObjectKHR = 6032,
2643    OpAtomicFAddEXT = 6035,
2644    OpTypeBufferSurfaceINTEL = 6086,
2645    OpTypeStructContinuedINTEL = 6090,
2646    OpConstantCompositeContinuedINTEL = 6091,
2647    OpSpecConstantCompositeContinuedINTEL = 6092,
2648    OpCompositeConstructContinuedINTEL = 6096,
2649    OpConvertFToBF16INTEL = 6116,
2650    OpConvertBF16ToFINTEL = 6117,
2651    OpControlBarrierArriveEXT = 6142,
2652    OpControlBarrierArriveINTEL = 6142,
2653    OpControlBarrierWaitEXT = 6143,
2654    OpControlBarrierWaitINTEL = 6143,
2655    OpArithmeticFenceEXT = 6145,
2656    OpTaskSequenceCreateALTERA = 6163,
2657    OpTaskSequenceCreateINTEL = 6163,
2658    OpTaskSequenceAsyncALTERA = 6164,
2659    OpTaskSequenceAsyncINTEL = 6164,
2660    OpTaskSequenceGetALTERA = 6165,
2661    OpTaskSequenceGetINTEL = 6165,
2662    OpTaskSequenceReleaseALTERA = 6166,
2663    OpTaskSequenceReleaseINTEL = 6166,
2664    OpTypeTaskSequenceALTERA = 6199,
2665    OpTypeTaskSequenceINTEL = 6199,
2666    OpSubgroupBlockPrefetchINTEL = 6221,
2667    OpSubgroup2DBlockLoadINTEL = 6231,
2668    OpSubgroup2DBlockLoadTransformINTEL = 6232,
2669    OpSubgroup2DBlockLoadTransposeINTEL = 6233,
2670    OpSubgroup2DBlockPrefetchINTEL = 6234,
2671    OpSubgroup2DBlockStoreINTEL = 6235,
2672    OpSubgroupMatrixMultiplyAccumulateINTEL = 6237,
2673    OpBitwiseFunctionINTEL = 6242,
2674    OpUntypedVariableLengthArrayINTEL = 6244,
2675    OpConditionalExtensionINTEL = 6248,
2676    OpConditionalEntryPointINTEL = 6249,
2677    OpConditionalCapabilityINTEL = 6250,
2678    OpSpecConstantTargetINTEL = 6251,
2679    OpSpecConstantArchitectureINTEL = 6252,
2680    OpSpecConstantCapabilitiesINTEL = 6253,
2681    OpConditionalCopyObjectINTEL = 6254,
2682    OpPredicatedLoadINTEL = 6258,
2683    OpPredicatedStoreINTEL = 6259,
2684    OpGroupIMulKHR = 6401,
2685    OpGroupFMulKHR = 6402,
2686    OpGroupBitwiseAndKHR = 6403,
2687    OpGroupBitwiseOrKHR = 6404,
2688    OpGroupBitwiseXorKHR = 6405,
2689    OpGroupLogicalAndKHR = 6406,
2690    OpGroupLogicalOrKHR = 6407,
2691    OpGroupLogicalXorKHR = 6408,
2692    OpRoundFToTF32INTEL = 6426,
2693    OpMaskedGatherINTEL = 6428,
2694    OpMaskedScatterINTEL = 6429,
2695    OpConvertHandleToImageINTEL = 6529,
2696    OpConvertHandleToSamplerINTEL = 6530,
2697    OpConvertHandleToSampledImageINTEL = 6531,
2698    OpFDot2MixAcc32VALVE = 6916,
2699    OpFDot2MixAcc16VALVE = 6917,
2700    OpFDot4MixAcc32VALVE = 6918,
2701    Max = 0x7fffffff,
2702};
2703
2704#ifdef SPV_ENABLE_UTILITY_CODE
2705#ifndef __cplusplus
2706#include <stdbool.h>
2707#endif
2708inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {
2709    *hasResult = *hasResultType = false;
2710    switch (opcode) {
2711    default: /* unknown opcode */ break;
2712    case Op::OpNop: *hasResult = false; *hasResultType = false; break;
2713    case Op::OpUndef: *hasResult = true; *hasResultType = true; break;
2714    case Op::OpSourceContinued: *hasResult = false; *hasResultType = false; break;
2715    case Op::OpSource: *hasResult = false; *hasResultType = false; break;
2716    case Op::OpSourceExtension: *hasResult = false; *hasResultType = false; break;
2717    case Op::OpName: *hasResult = false; *hasResultType = false; break;
2718    case Op::OpMemberName: *hasResult = false; *hasResultType = false; break;
2719    case Op::OpString: *hasResult = true; *hasResultType = false; break;
2720    case Op::OpLine: *hasResult = false; *hasResultType = false; break;
2721    case Op::OpExtension: *hasResult = false; *hasResultType = false; break;
2722    case Op::OpExtInstImport: *hasResult = true; *hasResultType = false; break;
2723    case Op::OpExtInst: *hasResult = true; *hasResultType = true; break;
2724    case Op::OpMemoryModel: *hasResult = false; *hasResultType = false; break;
2725    case Op::OpEntryPoint: *hasResult = false; *hasResultType = false; break;
2726    case Op::OpExecutionMode: *hasResult = false; *hasResultType = false; break;
2727    case Op::OpCapability: *hasResult = false; *hasResultType = false; break;
2728    case Op::OpTypeVoid: *hasResult = true; *hasResultType = false; break;
2729    case Op::OpTypeBool: *hasResult = true; *hasResultType = false; break;
2730    case Op::OpTypeInt: *hasResult = true; *hasResultType = false; break;
2731    case Op::OpTypeFloat: *hasResult = true; *hasResultType = false; break;
2732    case Op::OpTypeVector: *hasResult = true; *hasResultType = false; break;
2733    case Op::OpTypeMatrix: *hasResult = true; *hasResultType = false; break;
2734    case Op::OpTypeImage: *hasResult = true; *hasResultType = false; break;
2735    case Op::OpTypeSampler: *hasResult = true; *hasResultType = false; break;
2736    case Op::OpTypeSampledImage: *hasResult = true; *hasResultType = false; break;
2737    case Op::OpTypeArray: *hasResult = true; *hasResultType = false; break;
2738    case Op::OpTypeRuntimeArray: *hasResult = true; *hasResultType = false; break;
2739    case Op::OpTypeStruct: *hasResult = true; *hasResultType = false; break;
2740    case Op::OpTypeOpaque: *hasResult = true; *hasResultType = false; break;
2741    case Op::OpTypePointer: *hasResult = true; *hasResultType = false; break;
2742    case Op::OpTypeFunction: *hasResult = true; *hasResultType = false; break;
2743    case Op::OpTypeEvent: *hasResult = true; *hasResultType = false; break;
2744    case Op::OpTypeDeviceEvent: *hasResult = true; *hasResultType = false; break;
2745    case Op::OpTypeReserveId: *hasResult = true; *hasResultType = false; break;
2746    case Op::OpTypeQueue: *hasResult = true; *hasResultType = false; break;
2747    case Op::OpTypePipe: *hasResult = true; *hasResultType = false; break;
2748    case Op::OpTypeForwardPointer: *hasResult = false; *hasResultType = false; break;
2749    case Op::OpConstantTrue: *hasResult = true; *hasResultType = true; break;
2750    case Op::OpConstantFalse: *hasResult = true; *hasResultType = true; break;
2751    case Op::OpConstant: *hasResult = true; *hasResultType = true; break;
2752    case Op::OpConstantComposite: *hasResult = true; *hasResultType = true; break;
2753    case Op::OpConstantSampler: *hasResult = true; *hasResultType = true; break;
2754    case Op::OpConstantNull: *hasResult = true; *hasResultType = true; break;
2755    case Op::OpSpecConstantTrue: *hasResult = true; *hasResultType = true; break;
2756    case Op::OpSpecConstantFalse: *hasResult = true; *hasResultType = true; break;
2757    case Op::OpSpecConstant: *hasResult = true; *hasResultType = true; break;
2758    case Op::OpSpecConstantComposite: *hasResult = true; *hasResultType = true; break;
2759    case Op::OpSpecConstantOp: *hasResult = true; *hasResultType = true; break;
2760    case Op::OpFunction: *hasResult = true; *hasResultType = true; break;
2761    case Op::OpFunctionParameter: *hasResult = true; *hasResultType = true; break;
2762    case Op::OpFunctionEnd: *hasResult = false; *hasResultType = false; break;
2763    case Op::OpFunctionCall: *hasResult = true; *hasResultType = true; break;
2764    case Op::OpVariable: *hasResult = true; *hasResultType = true; break;
2765    case Op::OpImageTexelPointer: *hasResult = true; *hasResultType = true; break;
2766    case Op::OpLoad: *hasResult = true; *hasResultType = true; break;
2767    case Op::OpStore: *hasResult = false; *hasResultType = false; break;
2768    case Op::OpCopyMemory: *hasResult = false; *hasResultType = false; break;
2769    case Op::OpCopyMemorySized: *hasResult = false; *hasResultType = false; break;
2770    case Op::OpAccessChain: *hasResult = true; *hasResultType = true; break;
2771    case Op::OpInBoundsAccessChain: *hasResult = true; *hasResultType = true; break;
2772    case Op::OpPtrAccessChain: *hasResult = true; *hasResultType = true; break;
2773    case Op::OpArrayLength: *hasResult = true; *hasResultType = true; break;
2774    case Op::OpGenericPtrMemSemantics: *hasResult = true; *hasResultType = true; break;
2775    case Op::OpInBoundsPtrAccessChain: *hasResult = true; *hasResultType = true; break;
2776    case Op::OpDecorate: *hasResult = false; *hasResultType = false; break;
2777    case Op::OpMemberDecorate: *hasResult = false; *hasResultType = false; break;
2778    case Op::OpDecorationGroup: *hasResult = true; *hasResultType = false; break;
2779    case Op::OpGroupDecorate: *hasResult = false; *hasResultType = false; break;
2780    case Op::OpGroupMemberDecorate: *hasResult = false; *hasResultType = false; break;
2781    case Op::OpVectorExtractDynamic: *hasResult = true; *hasResultType = true; break;
2782    case Op::OpVectorInsertDynamic: *hasResult = true; *hasResultType = true; break;
2783    case Op::OpVectorShuffle: *hasResult = true; *hasResultType = true; break;
2784    case Op::OpCompositeConstruct: *hasResult = true; *hasResultType = true; break;
2785    case Op::OpCompositeExtract: *hasResult = true; *hasResultType = true; break;
2786    case Op::OpCompositeInsert: *hasResult = true; *hasResultType = true; break;
2787    case Op::OpCopyObject: *hasResult = true; *hasResultType = true; break;
2788    case Op::OpTranspose: *hasResult = true; *hasResultType = true; break;
2789    case Op::OpSampledImage: *hasResult = true; *hasResultType = true; break;
2790    case Op::OpImageSampleImplicitLod: *hasResult = true; *hasResultType = true; break;
2791    case Op::OpImageSampleExplicitLod: *hasResult = true; *hasResultType = true; break;
2792    case Op::OpImageSampleDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
2793    case Op::OpImageSampleDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
2794    case Op::OpImageSampleProjImplicitLod: *hasResult = true; *hasResultType = true; break;
2795    case Op::OpImageSampleProjExplicitLod: *hasResult = true; *hasResultType = true; break;
2796    case Op::OpImageSampleProjDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
2797    case Op::OpImageSampleProjDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
2798    case Op::OpImageFetch: *hasResult = true; *hasResultType = true; break;
2799    case Op::OpImageGather: *hasResult = true; *hasResultType = true; break;
2800    case Op::OpImageDrefGather: *hasResult = true; *hasResultType = true; break;
2801    case Op::OpImageRead: *hasResult = true; *hasResultType = true; break;
2802    case Op::OpImageWrite: *hasResult = false; *hasResultType = false; break;
2803    case Op::OpImage: *hasResult = true; *hasResultType = true; break;
2804    case Op::OpImageQueryFormat: *hasResult = true; *hasResultType = true; break;
2805    case Op::OpImageQueryOrder: *hasResult = true; *hasResultType = true; break;
2806    case Op::OpImageQuerySizeLod: *hasResult = true; *hasResultType = true; break;
2807    case Op::OpImageQuerySize: *hasResult = true; *hasResultType = true; break;
2808    case Op::OpImageQueryLod: *hasResult = true; *hasResultType = true; break;
2809    case Op::OpImageQueryLevels: *hasResult = true; *hasResultType = true; break;
2810    case Op::OpImageQuerySamples: *hasResult = true; *hasResultType = true; break;
2811    case Op::OpConvertFToU: *hasResult = true; *hasResultType = true; break;
2812    case Op::OpConvertFToS: *hasResult = true; *hasResultType = true; break;
2813    case Op::OpConvertSToF: *hasResult = true; *hasResultType = true; break;
2814    case Op::OpConvertUToF: *hasResult = true; *hasResultType = true; break;
2815    case Op::OpUConvert: *hasResult = true; *hasResultType = true; break;
2816    case Op::OpSConvert: *hasResult = true; *hasResultType = true; break;
2817    case Op::OpFConvert: *hasResult = true; *hasResultType = true; break;
2818    case Op::OpQuantizeToF16: *hasResult = true; *hasResultType = true; break;
2819    case Op::OpConvertPtrToU: *hasResult = true; *hasResultType = true; break;
2820    case Op::OpSatConvertSToU: *hasResult = true; *hasResultType = true; break;
2821    case Op::OpSatConvertUToS: *hasResult = true; *hasResultType = true; break;
2822    case Op::OpConvertUToPtr: *hasResult = true; *hasResultType = true; break;
2823    case Op::OpPtrCastToGeneric: *hasResult = true; *hasResultType = true; break;
2824    case Op::OpGenericCastToPtr: *hasResult = true; *hasResultType = true; break;
2825    case Op::OpGenericCastToPtrExplicit: *hasResult = true; *hasResultType = true; break;
2826    case Op::OpBitcast: *hasResult = true; *hasResultType = true; break;
2827    case Op::OpSNegate: *hasResult = true; *hasResultType = true; break;
2828    case Op::OpFNegate: *hasResult = true; *hasResultType = true; break;
2829    case Op::OpIAdd: *hasResult = true; *hasResultType = true; break;
2830    case Op::OpFAdd: *hasResult = true; *hasResultType = true; break;
2831    case Op::OpISub: *hasResult = true; *hasResultType = true; break;
2832    case Op::OpFSub: *hasResult = true; *hasResultType = true; break;
2833    case Op::OpIMul: *hasResult = true; *hasResultType = true; break;
2834    case Op::OpFMul: *hasResult = true; *hasResultType = true; break;
2835    case Op::OpUDiv: *hasResult = true; *hasResultType = true; break;
2836    case Op::OpSDiv: *hasResult = true; *hasResultType = true; break;
2837    case Op::OpFDiv: *hasResult = true; *hasResultType = true; break;
2838    case Op::OpUMod: *hasResult = true; *hasResultType = true; break;
2839    case Op::OpSRem: *hasResult = true; *hasResultType = true; break;
2840    case Op::OpSMod: *hasResult = true; *hasResultType = true; break;
2841    case Op::OpFRem: *hasResult = true; *hasResultType = true; break;
2842    case Op::OpFMod: *hasResult = true; *hasResultType = true; break;
2843    case Op::OpVectorTimesScalar: *hasResult = true; *hasResultType = true; break;
2844    case Op::OpMatrixTimesScalar: *hasResult = true; *hasResultType = true; break;
2845    case Op::OpVectorTimesMatrix: *hasResult = true; *hasResultType = true; break;
2846    case Op::OpMatrixTimesVector: *hasResult = true; *hasResultType = true; break;
2847    case Op::OpMatrixTimesMatrix: *hasResult = true; *hasResultType = true; break;
2848    case Op::OpOuterProduct: *hasResult = true; *hasResultType = true; break;
2849    case Op::OpDot: *hasResult = true; *hasResultType = true; break;
2850    case Op::OpIAddCarry: *hasResult = true; *hasResultType = true; break;
2851    case Op::OpISubBorrow: *hasResult = true; *hasResultType = true; break;
2852    case Op::OpUMulExtended: *hasResult = true; *hasResultType = true; break;
2853    case Op::OpSMulExtended: *hasResult = true; *hasResultType = true; break;
2854    case Op::OpAny: *hasResult = true; *hasResultType = true; break;
2855    case Op::OpAll: *hasResult = true; *hasResultType = true; break;
2856    case Op::OpIsNan: *hasResult = true; *hasResultType = true; break;
2857    case Op::OpIsInf: *hasResult = true; *hasResultType = true; break;
2858    case Op::OpIsFinite: *hasResult = true; *hasResultType = true; break;
2859    case Op::OpIsNormal: *hasResult = true; *hasResultType = true; break;
2860    case Op::OpSignBitSet: *hasResult = true; *hasResultType = true; break;
2861    case Op::OpLessOrGreater: *hasResult = true; *hasResultType = true; break;
2862    case Op::OpOrdered: *hasResult = true; *hasResultType = true; break;
2863    case Op::OpUnordered: *hasResult = true; *hasResultType = true; break;
2864    case Op::OpLogicalEqual: *hasResult = true; *hasResultType = true; break;
2865    case Op::OpLogicalNotEqual: *hasResult = true; *hasResultType = true; break;
2866    case Op::OpLogicalOr: *hasResult = true; *hasResultType = true; break;
2867    case Op::OpLogicalAnd: *hasResult = true; *hasResultType = true; break;
2868    case Op::OpLogicalNot: *hasResult = true; *hasResultType = true; break;
2869    case Op::OpSelect: *hasResult = true; *hasResultType = true; break;
2870    case Op::OpIEqual: *hasResult = true; *hasResultType = true; break;
2871    case Op::OpINotEqual: *hasResult = true; *hasResultType = true; break;
2872    case Op::OpUGreaterThan: *hasResult = true; *hasResultType = true; break;
2873    case Op::OpSGreaterThan: *hasResult = true; *hasResultType = true; break;
2874    case Op::OpUGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
2875    case Op::OpSGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
2876    case Op::OpULessThan: *hasResult = true; *hasResultType = true; break;
2877    case Op::OpSLessThan: *hasResult = true; *hasResultType = true; break;
2878    case Op::OpULessThanEqual: *hasResult = true; *hasResultType = true; break;
2879    case Op::OpSLessThanEqual: *hasResult = true; *hasResultType = true; break;
2880    case Op::OpFOrdEqual: *hasResult = true; *hasResultType = true; break;
2881    case Op::OpFUnordEqual: *hasResult = true; *hasResultType = true; break;
2882    case Op::OpFOrdNotEqual: *hasResult = true; *hasResultType = true; break;
2883    case Op::OpFUnordNotEqual: *hasResult = true; *hasResultType = true; break;
2884    case Op::OpFOrdLessThan: *hasResult = true; *hasResultType = true; break;
2885    case Op::OpFUnordLessThan: *hasResult = true; *hasResultType = true; break;
2886    case Op::OpFOrdGreaterThan: *hasResult = true; *hasResultType = true; break;
2887    case Op::OpFUnordGreaterThan: *hasResult = true; *hasResultType = true; break;
2888    case Op::OpFOrdLessThanEqual: *hasResult = true; *hasResultType = true; break;
2889    case Op::OpFUnordLessThanEqual: *hasResult = true; *hasResultType = true; break;
2890    case Op::OpFOrdGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
2891    case Op::OpFUnordGreaterThanEqual: *hasResult = true; *hasResultType = true; break;
2892    case Op::OpShiftRightLogical: *hasResult = true; *hasResultType = true; break;
2893    case Op::OpShiftRightArithmetic: *hasResult = true; *hasResultType = true; break;
2894    case Op::OpShiftLeftLogical: *hasResult = true; *hasResultType = true; break;
2895    case Op::OpBitwiseOr: *hasResult = true; *hasResultType = true; break;
2896    case Op::OpBitwiseXor: *hasResult = true; *hasResultType = true; break;
2897    case Op::OpBitwiseAnd: *hasResult = true; *hasResultType = true; break;
2898    case Op::OpNot: *hasResult = true; *hasResultType = true; break;
2899    case Op::OpBitFieldInsert: *hasResult = true; *hasResultType = true; break;
2900    case Op::OpBitFieldSExtract: *hasResult = true; *hasResultType = true; break;
2901    case Op::OpBitFieldUExtract: *hasResult = true; *hasResultType = true; break;
2902    case Op::OpBitReverse: *hasResult = true; *hasResultType = true; break;
2903    case Op::OpBitCount: *hasResult = true; *hasResultType = true; break;
2904    case Op::OpDPdx: *hasResult = true; *hasResultType = true; break;
2905    case Op::OpDPdy: *hasResult = true; *hasResultType = true; break;
2906    case Op::OpFwidth: *hasResult = true; *hasResultType = true; break;
2907    case Op::OpDPdxFine: *hasResult = true; *hasResultType = true; break;
2908    case Op::OpDPdyFine: *hasResult = true; *hasResultType = true; break;
2909    case Op::OpFwidthFine: *hasResult = true; *hasResultType = true; break;
2910    case Op::OpDPdxCoarse: *hasResult = true; *hasResultType = true; break;
2911    case Op::OpDPdyCoarse: *hasResult = true; *hasResultType = true; break;
2912    case Op::OpFwidthCoarse: *hasResult = true; *hasResultType = true; break;
2913    case Op::OpEmitVertex: *hasResult = false; *hasResultType = false; break;
2914    case Op::OpEndPrimitive: *hasResult = false; *hasResultType = false; break;
2915    case Op::OpEmitStreamVertex: *hasResult = false; *hasResultType = false; break;
2916    case Op::OpEndStreamPrimitive: *hasResult = false; *hasResultType = false; break;
2917    case Op::OpControlBarrier: *hasResult = false; *hasResultType = false; break;
2918    case Op::OpMemoryBarrier: *hasResult = false; *hasResultType = false; break;
2919    case Op::OpAtomicLoad: *hasResult = true; *hasResultType = true; break;
2920    case Op::OpAtomicStore: *hasResult = false; *hasResultType = false; break;
2921    case Op::OpAtomicExchange: *hasResult = true; *hasResultType = true; break;
2922    case Op::OpAtomicCompareExchange: *hasResult = true; *hasResultType = true; break;
2923    case Op::OpAtomicCompareExchangeWeak: *hasResult = true; *hasResultType = true; break;
2924    case Op::OpAtomicIIncrement: *hasResult = true; *hasResultType = true; break;
2925    case Op::OpAtomicIDecrement: *hasResult = true; *hasResultType = true; break;
2926    case Op::OpAtomicIAdd: *hasResult = true; *hasResultType = true; break;
2927    case Op::OpAtomicISub: *hasResult = true; *hasResultType = true; break;
2928    case Op::OpAtomicSMin: *hasResult = true; *hasResultType = true; break;
2929    case Op::OpAtomicUMin: *hasResult = true; *hasResultType = true; break;
2930    case Op::OpAtomicSMax: *hasResult = true; *hasResultType = true; break;
2931    case Op::OpAtomicUMax: *hasResult = true; *hasResultType = true; break;
2932    case Op::OpAtomicAnd: *hasResult = true; *hasResultType = true; break;
2933    case Op::OpAtomicOr: *hasResult = true; *hasResultType = true; break;
2934    case Op::OpAtomicXor: *hasResult = true; *hasResultType = true; break;
2935    case Op::OpPhi: *hasResult = true; *hasResultType = true; break;
2936    case Op::OpLoopMerge: *hasResult = false; *hasResultType = false; break;
2937    case Op::OpSelectionMerge: *hasResult = false; *hasResultType = false; break;
2938    case Op::OpLabel: *hasResult = true; *hasResultType = false; break;
2939    case Op::OpBranch: *hasResult = false; *hasResultType = false; break;
2940    case Op::OpBranchConditional: *hasResult = false; *hasResultType = false; break;
2941    case Op::OpSwitch: *hasResult = false; *hasResultType = false; break;
2942    case Op::OpKill: *hasResult = false; *hasResultType = false; break;
2943    case Op::OpReturn: *hasResult = false; *hasResultType = false; break;
2944    case Op::OpReturnValue: *hasResult = false; *hasResultType = false; break;
2945    case Op::OpUnreachable: *hasResult = false; *hasResultType = false; break;
2946    case Op::OpLifetimeStart: *hasResult = false; *hasResultType = false; break;
2947    case Op::OpLifetimeStop: *hasResult = false; *hasResultType = false; break;
2948    case Op::OpGroupAsyncCopy: *hasResult = true; *hasResultType = true; break;
2949    case Op::OpGroupWaitEvents: *hasResult = false; *hasResultType = false; break;
2950    case Op::OpGroupAll: *hasResult = true; *hasResultType = true; break;
2951    case Op::OpGroupAny: *hasResult = true; *hasResultType = true; break;
2952    case Op::OpGroupBroadcast: *hasResult = true; *hasResultType = true; break;
2953    case Op::OpGroupIAdd: *hasResult = true; *hasResultType = true; break;
2954    case Op::OpGroupFAdd: *hasResult = true; *hasResultType = true; break;
2955    case Op::OpGroupFMin: *hasResult = true; *hasResultType = true; break;
2956    case Op::OpGroupUMin: *hasResult = true; *hasResultType = true; break;
2957    case Op::OpGroupSMin: *hasResult = true; *hasResultType = true; break;
2958    case Op::OpGroupFMax: *hasResult = true; *hasResultType = true; break;
2959    case Op::OpGroupUMax: *hasResult = true; *hasResultType = true; break;
2960    case Op::OpGroupSMax: *hasResult = true; *hasResultType = true; break;
2961    case Op::OpReadPipe: *hasResult = true; *hasResultType = true; break;
2962    case Op::OpWritePipe: *hasResult = true; *hasResultType = true; break;
2963    case Op::OpReservedReadPipe: *hasResult = true; *hasResultType = true; break;
2964    case Op::OpReservedWritePipe: *hasResult = true; *hasResultType = true; break;
2965    case Op::OpReserveReadPipePackets: *hasResult = true; *hasResultType = true; break;
2966    case Op::OpReserveWritePipePackets: *hasResult = true; *hasResultType = true; break;
2967    case Op::OpCommitReadPipe: *hasResult = false; *hasResultType = false; break;
2968    case Op::OpCommitWritePipe: *hasResult = false; *hasResultType = false; break;
2969    case Op::OpIsValidReserveId: *hasResult = true; *hasResultType = true; break;
2970    case Op::OpGetNumPipePackets: *hasResult = true; *hasResultType = true; break;
2971    case Op::OpGetMaxPipePackets: *hasResult = true; *hasResultType = true; break;
2972    case Op::OpGroupReserveReadPipePackets: *hasResult = true; *hasResultType = true; break;
2973    case Op::OpGroupReserveWritePipePackets: *hasResult = true; *hasResultType = true; break;
2974    case Op::OpGroupCommitReadPipe: *hasResult = false; *hasResultType = false; break;
2975    case Op::OpGroupCommitWritePipe: *hasResult = false; *hasResultType = false; break;
2976    case Op::OpEnqueueMarker: *hasResult = true; *hasResultType = true; break;
2977    case Op::OpEnqueueKernel: *hasResult = true; *hasResultType = true; break;
2978    case Op::OpGetKernelNDrangeSubGroupCount: *hasResult = true; *hasResultType = true; break;
2979    case Op::OpGetKernelNDrangeMaxSubGroupSize: *hasResult = true; *hasResultType = true; break;
2980    case Op::OpGetKernelWorkGroupSize: *hasResult = true; *hasResultType = true; break;
2981    case Op::OpGetKernelPreferredWorkGroupSizeMultiple: *hasResult = true; *hasResultType = true; break;
2982    case Op::OpRetainEvent: *hasResult = false; *hasResultType = false; break;
2983    case Op::OpReleaseEvent: *hasResult = false; *hasResultType = false; break;
2984    case Op::OpCreateUserEvent: *hasResult = true; *hasResultType = true; break;
2985    case Op::OpIsValidEvent: *hasResult = true; *hasResultType = true; break;
2986    case Op::OpSetUserEventStatus: *hasResult = false; *hasResultType = false; break;
2987    case Op::OpCaptureEventProfilingInfo: *hasResult = false; *hasResultType = false; break;
2988    case Op::OpGetDefaultQueue: *hasResult = true; *hasResultType = true; break;
2989    case Op::OpBuildNDRange: *hasResult = true; *hasResultType = true; break;
2990    case Op::OpImageSparseSampleImplicitLod: *hasResult = true; *hasResultType = true; break;
2991    case Op::OpImageSparseSampleExplicitLod: *hasResult = true; *hasResultType = true; break;
2992    case Op::OpImageSparseSampleDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
2993    case Op::OpImageSparseSampleDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
2994    case Op::OpImageSparseSampleProjImplicitLod: *hasResult = true; *hasResultType = true; break;
2995    case Op::OpImageSparseSampleProjExplicitLod: *hasResult = true; *hasResultType = true; break;
2996    case Op::OpImageSparseSampleProjDrefImplicitLod: *hasResult = true; *hasResultType = true; break;
2997    case Op::OpImageSparseSampleProjDrefExplicitLod: *hasResult = true; *hasResultType = true; break;
2998    case Op::OpImageSparseFetch: *hasResult = true; *hasResultType = true; break;
2999    case Op::OpImageSparseGather: *hasResult = true; *hasResultType = true; break;
3000    case Op::OpImageSparseDrefGather: *hasResult = true; *hasResultType = true; break;
3001    case Op::OpImageSparseTexelsResident: *hasResult = true; *hasResultType = true; break;
3002    case Op::OpNoLine: *hasResult = false; *hasResultType = false; break;
3003    case Op::OpAtomicFlagTestAndSet: *hasResult = true; *hasResultType = true; break;
3004    case Op::OpAtomicFlagClear: *hasResult = false; *hasResultType = false; break;
3005    case Op::OpImageSparseRead: *hasResult = true; *hasResultType = true; break;
3006    case Op::OpSizeOf: *hasResult = true; *hasResultType = true; break;
3007    case Op::OpTypePipeStorage: *hasResult = true; *hasResultType = false; break;
3008    case Op::OpConstantPipeStorage: *hasResult = true; *hasResultType = true; break;
3009    case Op::OpCreatePipeFromPipeStorage: *hasResult = true; *hasResultType = true; break;
3010    case Op::OpGetKernelLocalSizeForSubgroupCount: *hasResult = true; *hasResultType = true; break;
3011    case Op::OpGetKernelMaxNumSubgroups: *hasResult = true; *hasResultType = true; break;
3012    case Op::OpTypeNamedBarrier: *hasResult = true; *hasResultType = false; break;
3013    case Op::OpNamedBarrierInitialize: *hasResult = true; *hasResultType = true; break;
3014    case Op::OpMemoryNamedBarrier: *hasResult = false; *hasResultType = false; break;
3015    case Op::OpModuleProcessed: *hasResult = false; *hasResultType = false; break;
3016    case Op::OpExecutionModeId: *hasResult = false; *hasResultType = false; break;
3017    case Op::OpDecorateId: *hasResult = false; *hasResultType = false; break;
3018    case Op::OpGroupNonUniformElect: *hasResult = true; *hasResultType = true; break;
3019    case Op::OpGroupNonUniformAll: *hasResult = true; *hasResultType = true; break;
3020    case Op::OpGroupNonUniformAny: *hasResult = true; *hasResultType = true; break;
3021    case Op::OpGroupNonUniformAllEqual: *hasResult = true; *hasResultType = true; break;
3022    case Op::OpGroupNonUniformBroadcast: *hasResult = true; *hasResultType = true; break;
3023    case Op::OpGroupNonUniformBroadcastFirst: *hasResult = true; *hasResultType = true; break;
3024    case Op::OpGroupNonUniformBallot: *hasResult = true; *hasResultType = true; break;
3025    case Op::OpGroupNonUniformInverseBallot: *hasResult = true; *hasResultType = true; break;
3026    case Op::OpGroupNonUniformBallotBitExtract: *hasResult = true; *hasResultType = true; break;
3027    case Op::OpGroupNonUniformBallotBitCount: *hasResult = true; *hasResultType = true; break;
3028    case Op::OpGroupNonUniformBallotFindLSB: *hasResult = true; *hasResultType = true; break;
3029    case Op::OpGroupNonUniformBallotFindMSB: *hasResult = true; *hasResultType = true; break;
3030    case Op::OpGroupNonUniformShuffle: *hasResult = true; *hasResultType = true; break;
3031    case Op::OpGroupNonUniformShuffleXor: *hasResult = true; *hasResultType = true; break;
3032    case Op::OpGroupNonUniformShuffleUp: *hasResult = true; *hasResultType = true; break;
3033    case Op::OpGroupNonUniformShuffleDown: *hasResult = true; *hasResultType = true; break;
3034    case Op::OpGroupNonUniformIAdd: *hasResult = true; *hasResultType = true; break;
3035    case Op::OpGroupNonUniformFAdd: *hasResult = true; *hasResultType = true; break;
3036    case Op::OpGroupNonUniformIMul: *hasResult = true; *hasResultType = true; break;
3037    case Op::OpGroupNonUniformFMul: *hasResult = true; *hasResultType = true; break;
3038    case Op::OpGroupNonUniformSMin: *hasResult = true; *hasResultType = true; break;
3039    case Op::OpGroupNonUniformUMin: *hasResult = true; *hasResultType = true; break;
3040    case Op::OpGroupNonUniformFMin: *hasResult = true; *hasResultType = true; break;
3041    case Op::OpGroupNonUniformSMax: *hasResult = true; *hasResultType = true; break;
3042    case Op::OpGroupNonUniformUMax: *hasResult = true; *hasResultType = true; break;
3043    case Op::OpGroupNonUniformFMax: *hasResult = true; *hasResultType = true; break;
3044    case Op::OpGroupNonUniformBitwiseAnd: *hasResult = true; *hasResultType = true; break;
3045    case Op::OpGroupNonUniformBitwiseOr: *hasResult = true; *hasResultType = true; break;
3046    case Op::OpGroupNonUniformBitwiseXor: *hasResult = true; *hasResultType = true; break;
3047    case Op::OpGroupNonUniformLogicalAnd: *hasResult = true; *hasResultType = true; break;
3048    case Op::OpGroupNonUniformLogicalOr: *hasResult = true; *hasResultType = true; break;
3049    case Op::OpGroupNonUniformLogicalXor: *hasResult = true; *hasResultType = true; break;
3050    case Op::OpGroupNonUniformQuadBroadcast: *hasResult = true; *hasResultType = true; break;
3051    case Op::OpGroupNonUniformQuadSwap: *hasResult = true; *hasResultType = true; break;
3052    case Op::OpCopyLogical: *hasResult = true; *hasResultType = true; break;
3053    case Op::OpPtrEqual: *hasResult = true; *hasResultType = true; break;
3054    case Op::OpPtrNotEqual: *hasResult = true; *hasResultType = true; break;
3055    case Op::OpPtrDiff: *hasResult = true; *hasResultType = true; break;
3056    case Op::OpColorAttachmentReadEXT: *hasResult = true; *hasResultType = true; break;
3057    case Op::OpDepthAttachmentReadEXT: *hasResult = true; *hasResultType = true; break;
3058    case Op::OpStencilAttachmentReadEXT: *hasResult = true; *hasResultType = true; break;
3059    case Op::OpTypeTensorARM: *hasResult = true; *hasResultType = false; break;
3060    case Op::OpTensorReadARM: *hasResult = true; *hasResultType = true; break;
3061    case Op::OpTensorWriteARM: *hasResult = false; *hasResultType = false; break;
3062    case Op::OpTensorQuerySizeARM: *hasResult = true; *hasResultType = true; break;
3063    case Op::OpGraphConstantARM: *hasResult = true; *hasResultType = true; break;
3064    case Op::OpGraphEntryPointARM: *hasResult = false; *hasResultType = false; break;
3065    case Op::OpGraphARM: *hasResult = true; *hasResultType = true; break;
3066    case Op::OpGraphInputARM: *hasResult = true; *hasResultType = true; break;
3067    case Op::OpGraphSetOutputARM: *hasResult = false; *hasResultType = false; break;
3068    case Op::OpGraphEndARM: *hasResult = false; *hasResultType = false; break;
3069    case Op::OpTypeGraphARM: *hasResult = true; *hasResultType = false; break;
3070    case Op::OpBitcastExtractEXT: *hasResult = true; *hasResultType = true; break;
3071    case Op::OpTerminateInvocation: *hasResult = false; *hasResultType = false; break;
3072    case Op::OpTypeUntypedPointerKHR: *hasResult = true; *hasResultType = false; break;
3073    case Op::OpUntypedVariableKHR: *hasResult = true; *hasResultType = true; break;
3074    case Op::OpUntypedAccessChainKHR: *hasResult = true; *hasResultType = true; break;
3075    case Op::OpUntypedInBoundsAccessChainKHR: *hasResult = true; *hasResultType = true; break;
3076    case Op::OpSubgroupBallotKHR: *hasResult = true; *hasResultType = true; break;
3077    case Op::OpSubgroupFirstInvocationKHR: *hasResult = true; *hasResultType = true; break;
3078    case Op::OpUntypedPtrAccessChainKHR: *hasResult = true; *hasResultType = true; break;
3079    case Op::OpUntypedInBoundsPtrAccessChainKHR: *hasResult = true; *hasResultType = true; break;
3080    case Op::OpUntypedArrayLengthKHR: *hasResult = true; *hasResultType = true; break;
3081    case Op::OpUntypedPrefetchKHR: *hasResult = false; *hasResultType = false; break;
3082    case Op::OpFmaKHR: *hasResult = true; *hasResultType = true; break;
3083    case Op::OpSubgroupAllKHR: *hasResult = true; *hasResultType = true; break;
3084    case Op::OpSubgroupAnyKHR: *hasResult = true; *hasResultType = true; break;
3085    case Op::OpSubgroupAllEqualKHR: *hasResult = true; *hasResultType = true; break;
3086    case Op::OpGroupNonUniformRotateKHR: *hasResult = true; *hasResultType = true; break;
3087    case Op::OpSubgroupReadInvocationKHR: *hasResult = true; *hasResultType = true; break;
3088    case Op::OpExtInstWithForwardRefsKHR: *hasResult = true; *hasResultType = true; break;
3089    case Op::OpUntypedGroupAsyncCopyKHR: *hasResult = true; *hasResultType = true; break;
3090    case Op::OpTraceRayKHR: *hasResult = false; *hasResultType = false; break;
3091    case Op::OpExecuteCallableKHR: *hasResult = false; *hasResultType = false; break;
3092    case Op::OpConvertUToAccelerationStructureKHR: *hasResult = true; *hasResultType = true; break;
3093    case Op::OpIgnoreIntersectionKHR: *hasResult = false; *hasResultType = false; break;
3094    case Op::OpTerminateRayKHR: *hasResult = false; *hasResultType = false; break;
3095    case Op::OpSDot: *hasResult = true; *hasResultType = true; break;
3096    case Op::OpUDot: *hasResult = true; *hasResultType = true; break;
3097    case Op::OpSUDot: *hasResult = true; *hasResultType = true; break;
3098    case Op::OpSDotAccSat: *hasResult = true; *hasResultType = true; break;
3099    case Op::OpUDotAccSat: *hasResult = true; *hasResultType = true; break;
3100    case Op::OpSUDotAccSat: *hasResult = true; *hasResultType = true; break;
3101    case Op::OpTypeCooperativeMatrixKHR: *hasResult = true; *hasResultType = false; break;
3102    case Op::OpCooperativeMatrixLoadKHR: *hasResult = true; *hasResultType = true; break;
3103    case Op::OpCooperativeMatrixStoreKHR: *hasResult = false; *hasResultType = false; break;
3104    case Op::OpCooperativeMatrixMulAddKHR: *hasResult = true; *hasResultType = true; break;
3105    case Op::OpCooperativeMatrixLengthKHR: *hasResult = true; *hasResultType = true; break;
3106    case Op::OpConstantCompositeReplicateEXT: *hasResult = true; *hasResultType = true; break;
3107    case Op::OpSpecConstantCompositeReplicateEXT: *hasResult = true; *hasResultType = true; break;
3108    case Op::OpCompositeConstructReplicateEXT: *hasResult = true; *hasResultType = true; break;
3109    case Op::OpTypeRayQueryKHR: *hasResult = true; *hasResultType = false; break;
3110    case Op::OpRayQueryInitializeKHR: *hasResult = false; *hasResultType = false; break;
3111    case Op::OpRayQueryTerminateKHR: *hasResult = false; *hasResultType = false; break;
3112    case Op::OpRayQueryGenerateIntersectionKHR: *hasResult = false; *hasResultType = false; break;
3113    case Op::OpRayQueryConfirmIntersectionKHR: *hasResult = false; *hasResultType = false; break;
3114    case Op::OpRayQueryProceedKHR: *hasResult = true; *hasResultType = true; break;
3115    case Op::OpRayQueryGetIntersectionTypeKHR: *hasResult = true; *hasResultType = true; break;
3116    case Op::OpImageSampleWeightedQCOM: *hasResult = true; *hasResultType = true; break;
3117    case Op::OpImageBoxFilterQCOM: *hasResult = true; *hasResultType = true; break;
3118    case Op::OpImageBlockMatchSSDQCOM: *hasResult = true; *hasResultType = true; break;
3119    case Op::OpImageBlockMatchSADQCOM: *hasResult = true; *hasResultType = true; break;
3120    case Op::OpBitCastArrayQCOM: *hasResult = true; *hasResultType = true; break;
3121    case Op::OpImageBlockMatchWindowSSDQCOM: *hasResult = true; *hasResultType = true; break;
3122    case Op::OpImageBlockMatchWindowSADQCOM: *hasResult = true; *hasResultType = true; break;
3123    case Op::OpImageBlockMatchGatherSSDQCOM: *hasResult = true; *hasResultType = true; break;
3124    case Op::OpImageBlockMatchGatherSADQCOM: *hasResult = true; *hasResultType = true; break;
3125    case Op::OpCompositeConstructCoopMatQCOM: *hasResult = true; *hasResultType = true; break;
3126    case Op::OpCompositeExtractCoopMatQCOM: *hasResult = true; *hasResultType = true; break;
3127    case Op::OpExtractSubArrayQCOM: *hasResult = true; *hasResultType = true; break;
3128    case Op::OpImageGatherQCOM: *hasResult = true; *hasResultType = true; break;
3129    case Op::OpGroupIAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
3130    case Op::OpGroupFAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;
3131    case Op::OpGroupFMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
3132    case Op::OpGroupUMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
3133    case Op::OpGroupSMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;
3134    case Op::OpGroupFMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;
3135    case Op::OpGroupUMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;
3136    case Op::OpGroupSMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;
3137    case Op::OpFragmentMaskFetchAMD: *hasResult = true; *hasResultType = true; break;
3138    case Op::OpFragmentFetchAMD: *hasResult = true; *hasResultType = true; break;
3139    case Op::OpReadClockKHR: *hasResult = true; *hasResultType = true; break;
3140    case Op::OpAllocateNodePayloadsAMDX: *hasResult = true; *hasResultType = true; break;
3141    case Op::OpEnqueueNodePayloadsAMDX: *hasResult = false; *hasResultType = false; break;
3142    case Op::OpTypeNodePayloadArrayAMDX: *hasResult = true; *hasResultType = false; break;
3143    case Op::OpFinishWritingNodePayloadAMDX: *hasResult = true; *hasResultType = true; break;
3144    case Op::OpNodePayloadArrayLengthAMDX: *hasResult = true; *hasResultType = true; break;
3145    case Op::OpIsNodePayloadValidAMDX: *hasResult = true; *hasResultType = true; break;
3146    case Op::OpConstantStringAMDX: *hasResult = true; *hasResultType = false; break;
3147    case Op::OpSpecConstantStringAMDX: *hasResult = true; *hasResultType = false; break;
3148    case Op::OpGroupNonUniformQuadAllKHR: *hasResult = true; *hasResultType = true; break;
3149    case Op::OpGroupNonUniformQuadAnyKHR: *hasResult = true; *hasResultType = true; break;
3150    case Op::OpTypeBufferEXT: *hasResult = true; *hasResultType = false; break;
3151    case Op::OpBufferPointerEXT: *hasResult = true; *hasResultType = true; break;
3152    case Op::OpAbortKHR: *hasResult = false; *hasResultType = false; break;
3153    case Op::OpUntypedImageTexelPointerEXT: *hasResult = true; *hasResultType = true; break;
3154    case Op::OpMemberDecorateIdEXT: *hasResult = false; *hasResultType = false; break;
3155    case Op::OpConstantSizeOfEXT: *hasResult = true; *hasResultType = true; break;
3156    case Op::OpConstantDataKHR: *hasResult = true; *hasResultType = true; break;
3157    case Op::OpSpecConstantDataKHR: *hasResult = true; *hasResultType = true; break;
3158    case Op::OpPoisonKHR: *hasResult = true; *hasResultType = true; break;
3159    case Op::OpFreezeKHR: *hasResult = true; *hasResultType = true; break;
3160    case Op::OpHitObjectRecordHitMotionNV: *hasResult = false; *hasResultType = false; break;
3161    case Op::OpHitObjectRecordHitWithIndexMotionNV: *hasResult = false; *hasResultType = false; break;
3162    case Op::OpHitObjectRecordMissMotionNV: *hasResult = false; *hasResultType = false; break;
3163    case Op::OpHitObjectGetWorldToObjectNV: *hasResult = true; *hasResultType = true; break;
3164    case Op::OpHitObjectGetObjectToWorldNV: *hasResult = true; *hasResultType = true; break;
3165    case Op::OpHitObjectGetObjectRayDirectionNV: *hasResult = true; *hasResultType = true; break;
3166    case Op::OpHitObjectGetObjectRayOriginNV: *hasResult = true; *hasResultType = true; break;
3167    case Op::OpHitObjectTraceRayMotionNV: *hasResult = false; *hasResultType = false; break;
3168    case Op::OpHitObjectGetShaderRecordBufferHandleNV: *hasResult = true; *hasResultType = true; break;
3169    case Op::OpHitObjectGetShaderBindingTableRecordIndexNV: *hasResult = true; *hasResultType = true; break;
3170    case Op::OpHitObjectRecordEmptyNV: *hasResult = false; *hasResultType = false; break;
3171    case Op::OpHitObjectTraceRayNV: *hasResult = false; *hasResultType = false; break;
3172    case Op::OpHitObjectRecordHitNV: *hasResult = false; *hasResultType = false; break;
3173    case Op::OpHitObjectRecordHitWithIndexNV: *hasResult = false; *hasResultType = false; break;
3174    case Op::OpHitObjectRecordMissNV: *hasResult = false; *hasResultType = false; break;
3175    case Op::OpHitObjectExecuteShaderNV: *hasResult = false; *hasResultType = false; break;
3176    case Op::OpHitObjectGetCurrentTimeNV: *hasResult = true; *hasResultType = true; break;
3177    case Op::OpHitObjectGetAttributesNV: *hasResult = false; *hasResultType = false; break;
3178    case Op::OpHitObjectGetHitKindNV: *hasResult = true; *hasResultType = true; break;
3179    case Op::OpHitObjectGetPrimitiveIndexNV: *hasResult = true; *hasResultType = true; break;
3180    case Op::OpHitObjectGetGeometryIndexNV: *hasResult = true; *hasResultType = true; break;
3181    case Op::OpHitObjectGetInstanceIdNV: *hasResult = true; *hasResultType = true; break;
3182    case Op::OpHitObjectGetInstanceCustomIndexNV: *hasResult = true; *hasResultType = true; break;
3183    case Op::OpHitObjectGetWorldRayDirectionNV: *hasResult = true; *hasResultType = true; break;
3184    case Op::OpHitObjectGetWorldRayOriginNV: *hasResult = true; *hasResultType = true; break;
3185    case Op::OpHitObjectGetRayTMaxNV: *hasResult = true; *hasResultType = true; break;
3186    case Op::OpHitObjectGetRayTMinNV: *hasResult = true; *hasResultType = true; break;
3187    case Op::OpHitObjectIsEmptyNV: *hasResult = true; *hasResultType = true; break;
3188    case Op::OpHitObjectIsHitNV: *hasResult = true; *hasResultType = true; break;
3189    case Op::OpHitObjectIsMissNV: *hasResult = true; *hasResultType = true; break;
3190    case Op::OpReorderThreadWithHitObjectNV: *hasResult = false; *hasResultType = false; break;
3191    case Op::OpReorderThreadWithHintNV: *hasResult = false; *hasResultType = false; break;
3192    case Op::OpTypeHitObjectNV: *hasResult = true; *hasResultType = false; break;
3193    case Op::OpImageSampleFootprintNV: *hasResult = true; *hasResultType = true; break;
3194    case Op::OpTypeVectorIdEXT: *hasResult = true; *hasResultType = false; break;
3195    case Op::OpCooperativeVectorMatrixMulNV: *hasResult = true; *hasResultType = true; break;
3196    case Op::OpCooperativeVectorOuterProductAccumulateNV: *hasResult = false; *hasResultType = false; break;
3197    case Op::OpCooperativeVectorReduceSumAccumulateNV: *hasResult = false; *hasResultType = false; break;
3198    case Op::OpCooperativeVectorMatrixMulAddNV: *hasResult = true; *hasResultType = true; break;
3199    case Op::OpCooperativeMatrixConvertUseEXT: *hasResult = true; *hasResultType = true; break;
3200    case Op::OpEmitMeshTasksEXT: *hasResult = false; *hasResultType = false; break;
3201    case Op::OpSetMeshOutputsEXT: *hasResult = false; *hasResultType = false; break;
3202    case Op::OpGroupNonUniformPartitionEXT: *hasResult = true; *hasResultType = true; break;
3203    case Op::OpWritePackedPrimitiveIndices4x8NV: *hasResult = false; *hasResultType = false; break;
3204    case Op::OpFetchMicroTriangleVertexPositionNV: *hasResult = true; *hasResultType = true; break;
3205    case Op::OpFetchMicroTriangleVertexBarycentricNV: *hasResult = true; *hasResultType = true; break;
3206    case Op::OpCooperativeVectorLoadNV: *hasResult = true; *hasResultType = true; break;
3207    case Op::OpCooperativeVectorStoreNV: *hasResult = false; *hasResultType = false; break;
3208    case Op::OpHitObjectRecordFromQueryEXT: *hasResult = false; *hasResultType = false; break;
3209    case Op::OpHitObjectRecordMissEXT: *hasResult = false; *hasResultType = false; break;
3210    case Op::OpHitObjectRecordMissMotionEXT: *hasResult = false; *hasResultType = false; break;
3211    case Op::OpHitObjectGetIntersectionTriangleVertexPositionsEXT: *hasResult = true; *hasResultType = true; break;
3212    case Op::OpHitObjectGetRayFlagsEXT: *hasResult = true; *hasResultType = true; break;
3213    case Op::OpHitObjectSetShaderBindingTableRecordIndexEXT: *hasResult = false; *hasResultType = false; break;
3214    case Op::OpHitObjectReorderExecuteShaderEXT: *hasResult = false; *hasResultType = false; break;
3215    case Op::OpHitObjectTraceReorderExecuteEXT: *hasResult = false; *hasResultType = false; break;
3216    case Op::OpHitObjectTraceMotionReorderExecuteEXT: *hasResult = false; *hasResultType = false; break;
3217    case Op::OpTypeHitObjectEXT: *hasResult = true; *hasResultType = false; break;
3218    case Op::OpReorderThreadWithHintEXT: *hasResult = false; *hasResultType = false; break;
3219    case Op::OpReorderThreadWithHitObjectEXT: *hasResult = false; *hasResultType = false; break;
3220    case Op::OpHitObjectTraceRayEXT: *hasResult = false; *hasResultType = false; break;
3221    case Op::OpHitObjectTraceRayMotionEXT: *hasResult = false; *hasResultType = false; break;
3222    case Op::OpHitObjectRecordEmptyEXT: *hasResult = false; *hasResultType = false; break;
3223    case Op::OpHitObjectExecuteShaderEXT: *hasResult = false; *hasResultType = false; break;
3224    case Op::OpHitObjectGetCurrentTimeEXT: *hasResult = true; *hasResultType = true; break;
3225    case Op::OpHitObjectGetAttributesEXT: *hasResult = false; *hasResultType = false; break;
3226    case Op::OpHitObjectGetHitKindEXT: *hasResult = true; *hasResultType = true; break;
3227    case Op::OpHitObjectGetPrimitiveIndexEXT: *hasResult = true; *hasResultType = true; break;
3228    case Op::OpHitObjectGetGeometryIndexEXT: *hasResult = true; *hasResultType = true; break;
3229    case Op::OpHitObjectGetInstanceIdEXT: *hasResult = true; *hasResultType = true; break;
3230    case Op::OpHitObjectGetInstanceCustomIndexEXT: *hasResult = true; *hasResultType = true; break;
3231    case Op::OpHitObjectGetObjectRayOriginEXT: *hasResult = true; *hasResultType = true; break;
3232    case Op::OpHitObjectGetObjectRayDirectionEXT: *hasResult = true; *hasResultType = true; break;
3233    case Op::OpHitObjectGetWorldRayDirectionEXT: *hasResult = true; *hasResultType = true; break;
3234    case Op::OpHitObjectGetWorldRayOriginEXT: *hasResult = true; *hasResultType = true; break;
3235    case Op::OpHitObjectGetObjectToWorldEXT: *hasResult = true; *hasResultType = true; break;
3236    case Op::OpHitObjectGetWorldToObjectEXT: *hasResult = true; *hasResultType = true; break;
3237    case Op::OpHitObjectGetRayTMaxEXT: *hasResult = true; *hasResultType = true; break;
3238    case Op::OpReportIntersectionKHR: *hasResult = true; *hasResultType = true; break;
3239    case Op::OpIgnoreIntersectionNV: *hasResult = false; *hasResultType = false; break;
3240    case Op::OpTerminateRayNV: *hasResult = false; *hasResultType = false; break;
3241    case Op::OpTraceNV: *hasResult = false; *hasResultType = false; break;
3242    case Op::OpTraceMotionNV: *hasResult = false; *hasResultType = false; break;
3243    case Op::OpTraceRayMotionNV: *hasResult = false; *hasResultType = false; break;
3244    case Op::OpRayQueryGetIntersectionTriangleVertexPositionsKHR: *hasResult = true; *hasResultType = true; break;
3245    case Op::OpTypeAccelerationStructureKHR: *hasResult = true; *hasResultType = false; break;
3246    case Op::OpExecuteCallableNV: *hasResult = false; *hasResultType = false; break;
3247    case Op::OpRayQueryGetIntersectionClusterIdNV: *hasResult = true; *hasResultType = true; break;
3248    case Op::OpHitObjectGetClusterIdNV: *hasResult = true; *hasResultType = true; break;
3249    case Op::OpHitObjectGetRayTMinEXT: *hasResult = true; *hasResultType = true; break;
3250    case Op::OpHitObjectGetShaderBindingTableRecordIndexEXT: *hasResult = true; *hasResultType = true; break;
3251    case Op::OpHitObjectGetShaderRecordBufferHandleEXT: *hasResult = true; *hasResultType = true; break;
3252    case Op::OpHitObjectIsEmptyEXT: *hasResult = true; *hasResultType = true; break;
3253    case Op::OpHitObjectIsHitEXT: *hasResult = true; *hasResultType = true; break;
3254    case Op::OpHitObjectIsMissEXT: *hasResult = true; *hasResultType = true; break;
3255    case Op::OpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break;
3256    case Op::OpCooperativeMatrixLoadNV: *hasResult = true; *hasResultType = true; break;
3257    case Op::OpCooperativeMatrixStoreNV: *hasResult = false; *hasResultType = false; break;
3258    case Op::OpCooperativeMatrixMulAddNV: *hasResult = true; *hasResultType = true; break;
3259    case Op::OpCooperativeMatrixLengthNV: *hasResult = true; *hasResultType = true; break;
3260    case Op::OpCooperativeMatrixGetCoordinateEXT: *hasResult = true; *hasResultType = true; break;
3261    case Op::OpBeginInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break;
3262    case Op::OpEndInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break;
3263    case Op::OpCooperativeMatrixReduceEXT: *hasResult = true; *hasResultType = true; break;
3264    case Op::OpCooperativeMatrixLoadTensorNV: *hasResult = true; *hasResultType = true; break;
3265    case Op::OpCooperativeMatrixStoreTensorNV: *hasResult = false; *hasResultType = false; break;
3266    case Op::OpCooperativeMatrixPerElementOpEXT: *hasResult = true; *hasResultType = true; break;
3267    case Op::OpTypeTensorLayoutNV: *hasResult = true; *hasResultType = false; break;
3268    case Op::OpTypeTensorViewNV: *hasResult = true; *hasResultType = false; break;
3269    case Op::OpCreateTensorLayoutNV: *hasResult = true; *hasResultType = true; break;
3270    case Op::OpTensorLayoutSetDimensionNV: *hasResult = true; *hasResultType = true; break;
3271    case Op::OpTensorLayoutSetStrideNV: *hasResult = true; *hasResultType = true; break;
3272    case Op::OpTensorLayoutSliceNV: *hasResult = true; *hasResultType = true; break;
3273    case Op::OpTensorLayoutSetClampValueNV: *hasResult = true; *hasResultType = true; break;
3274    case Op::OpCreateTensorViewNV: *hasResult = true; *hasResultType = true; break;
3275    case Op::OpTensorViewSetDimensionNV: *hasResult = true; *hasResultType = true; break;
3276    case Op::OpTensorViewSetStrideNV: *hasResult = true; *hasResultType = true; break;
3277    case Op::OpDemoteToHelperInvocation: *hasResult = false; *hasResultType = false; break;
3278    case Op::OpIsHelperInvocationEXT: *hasResult = true; *hasResultType = true; break;
3279    case Op::OpTensorViewSetClipNV: *hasResult = true; *hasResultType = true; break;
3280    case Op::OpTensorLayoutSetBlockSizeNV: *hasResult = true; *hasResultType = true; break;
3281    case Op::OpCooperativeMatrixTransposeNV: *hasResult = true; *hasResultType = true; break;
3282    case Op::OpConvertUToImageNV: *hasResult = true; *hasResultType = true; break;
3283    case Op::OpConvertUToSamplerNV: *hasResult = true; *hasResultType = true; break;
3284    case Op::OpConvertImageToUNV: *hasResult = true; *hasResultType = true; break;
3285    case Op::OpConvertSamplerToUNV: *hasResult = true; *hasResultType = true; break;
3286    case Op::OpConvertUToSampledImageNV: *hasResult = true; *hasResultType = true; break;
3287    case Op::OpConvertSampledImageToUNV: *hasResult = true; *hasResultType = true; break;
3288    case Op::OpSamplerImageAddressingModeNV: *hasResult = false; *hasResultType = false; break;
3289    case Op::OpRawAccessChainNV: *hasResult = true; *hasResultType = true; break;
3290    case Op::OpRayQueryGetIntersectionSpherePositionNV: *hasResult = true; *hasResultType = true; break;
3291    case Op::OpRayQueryGetIntersectionSphereRadiusNV: *hasResult = true; *hasResultType = true; break;
3292    case Op::OpRayQueryGetIntersectionLSSPositionsNV: *hasResult = true; *hasResultType = true; break;
3293    case Op::OpRayQueryGetIntersectionLSSRadiiNV: *hasResult = true; *hasResultType = true; break;
3294    case Op::OpRayQueryGetIntersectionLSSHitValueNV: *hasResult = true; *hasResultType = true; break;
3295    case Op::OpHitObjectGetSpherePositionNV: *hasResult = true; *hasResultType = true; break;
3296    case Op::OpHitObjectGetSphereRadiusNV: *hasResult = true; *hasResultType = true; break;
3297    case Op::OpHitObjectGetLSSPositionsNV: *hasResult = true; *hasResultType = true; break;
3298    case Op::OpHitObjectGetLSSRadiiNV: *hasResult = true; *hasResultType = true; break;
3299    case Op::OpHitObjectIsSphereHitNV: *hasResult = true; *hasResultType = true; break;
3300    case Op::OpHitObjectIsLSSHitNV: *hasResult = true; *hasResultType = true; break;
3301    case Op::OpRayQueryIsSphereHitNV: *hasResult = true; *hasResultType = true; break;
3302    case Op::OpRayQueryIsLSSHitNV: *hasResult = true; *hasResultType = true; break;
3303    case Op::OpSubgroupShuffleINTEL: *hasResult = true; *hasResultType = true; break;
3304    case Op::OpSubgroupShuffleDownINTEL: *hasResult = true; *hasResultType = true; break;
3305    case Op::OpSubgroupShuffleUpINTEL: *hasResult = true; *hasResultType = true; break;
3306    case Op::OpSubgroupShuffleXorINTEL: *hasResult = true; *hasResultType = true; break;
3307    case Op::OpSubgroupBlockReadINTEL: *hasResult = true; *hasResultType = true; break;
3308    case Op::OpSubgroupBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;
3309    case Op::OpSubgroupImageBlockReadINTEL: *hasResult = true; *hasResultType = true; break;
3310    case Op::OpSubgroupImageBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;
3311    case Op::OpSubgroupImageMediaBlockReadINTEL: *hasResult = true; *hasResultType = true; break;
3312    case Op::OpSubgroupImageMediaBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;
3313    case Op::OpUCountLeadingZerosINTEL: *hasResult = true; *hasResultType = true; break;
3314    case Op::OpUCountTrailingZerosINTEL: *hasResult = true; *hasResultType = true; break;
3315    case Op::OpAbsISubINTEL: *hasResult = true; *hasResultType = true; break;
3316    case Op::OpAbsUSubINTEL: *hasResult = true; *hasResultType = true; break;
3317    case Op::OpIAddSatINTEL: *hasResult = true; *hasResultType = true; break;
3318    case Op::OpUAddSatINTEL: *hasResult = true; *hasResultType = true; break;
3319    case Op::OpIAverageINTEL: *hasResult = true; *hasResultType = true; break;
3320    case Op::OpUAverageINTEL: *hasResult = true; *hasResultType = true; break;
3321    case Op::OpIAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break;
3322    case Op::OpUAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break;
3323    case Op::OpISubSatINTEL: *hasResult = true; *hasResultType = true; break;
3324    case Op::OpUSubSatINTEL: *hasResult = true; *hasResultType = true; break;
3325    case Op::OpIMul32x16INTEL: *hasResult = true; *hasResultType = true; break;
3326    case Op::OpUMul32x16INTEL: *hasResult = true; *hasResultType = true; break;
3327    case Op::OpConstantFunctionPointerINTEL: *hasResult = true; *hasResultType = true; break;
3328    case Op::OpFunctionPointerCallINTEL: *hasResult = true; *hasResultType = true; break;
3329    case Op::OpAsmTargetINTEL: *hasResult = true; *hasResultType = false; break;
3330    case Op::OpAsmINTEL: *hasResult = true; *hasResultType = true; break;
3331    case Op::OpAsmCallINTEL: *hasResult = true; *hasResultType = true; break;
3332    case Op::OpAtomicFMinEXT: *hasResult = true; *hasResultType = true; break;
3333    case Op::OpAtomicFMaxEXT: *hasResult = true; *hasResultType = true; break;
3334    case Op::OpAssumeTrueKHR: *hasResult = false; *hasResultType = false; break;
3335    case Op::OpExpectKHR: *hasResult = true; *hasResultType = true; break;
3336    case Op::OpDecorateString: *hasResult = false; *hasResultType = false; break;
3337    case Op::OpMemberDecorateString: *hasResult = false; *hasResultType = false; break;
3338    case Op::OpVmeImageINTEL: *hasResult = true; *hasResultType = true; break;
3339    case Op::OpTypeVmeImageINTEL: *hasResult = true; *hasResultType = false; break;
3340    case Op::OpTypeAvcImePayloadINTEL: *hasResult = true; *hasResultType = false; break;
3341    case Op::OpTypeAvcRefPayloadINTEL: *hasResult = true; *hasResultType = false; break;
3342    case Op::OpTypeAvcSicPayloadINTEL: *hasResult = true; *hasResultType = false; break;
3343    case Op::OpTypeAvcMcePayloadINTEL: *hasResult = true; *hasResultType = false; break;
3344    case Op::OpTypeAvcMceResultINTEL: *hasResult = true; *hasResultType = false; break;
3345    case Op::OpTypeAvcImeResultINTEL: *hasResult = true; *hasResultType = false; break;
3346    case Op::OpTypeAvcImeResultSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = false; break;
3347    case Op::OpTypeAvcImeResultDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = false; break;
3348    case Op::OpTypeAvcImeSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = false; break;
3349    case Op::OpTypeAvcImeDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = false; break;
3350    case Op::OpTypeAvcRefResultINTEL: *hasResult = true; *hasResultType = false; break;
3351    case Op::OpTypeAvcSicResultINTEL: *hasResult = true; *hasResultType = false; break;
3352    case Op::OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
3353    case Op::OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
3354    case Op::OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
3355    case Op::OpSubgroupAvcMceSetInterShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
3356    case Op::OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL: *hasResult = true; *hasResultType = true; break;
3357    case Op::OpSubgroupAvcMceSetInterDirectionPenaltyINTEL: *hasResult = true; *hasResultType = true; break;
3358    case Op::OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
3359    case Op::OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL: *hasResult = true; *hasResultType = true; break;
3360    case Op::OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;
3361    case Op::OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;
3362    case Op::OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;
3363    case Op::OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;
3364    case Op::OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
3365    case Op::OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL: *hasResult = true; *hasResultType = true; break;
3366    case Op::OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
3367    case Op::OpSubgroupAvcMceSetAcOnlyHaarINTEL: *hasResult = true; *hasResultType = true; break;
3368    case Op::OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL: *hasResult = true; *hasResultType = true; break;
3369    case Op::OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL: *hasResult = true; *hasResultType = true; break;
3370    case Op::OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL: *hasResult = true; *hasResultType = true; break;
3371    case Op::OpSubgroupAvcMceConvertToImePayloadINTEL: *hasResult = true; *hasResultType = true; break;
3372    case Op::OpSubgroupAvcMceConvertToImeResultINTEL: *hasResult = true; *hasResultType = true; break;
3373    case Op::OpSubgroupAvcMceConvertToRefPayloadINTEL: *hasResult = true; *hasResultType = true; break;
3374    case Op::OpSubgroupAvcMceConvertToRefResultINTEL: *hasResult = true; *hasResultType = true; break;
3375    case Op::OpSubgroupAvcMceConvertToSicPayloadINTEL: *hasResult = true; *hasResultType = true; break;
3376    case Op::OpSubgroupAvcMceConvertToSicResultINTEL: *hasResult = true; *hasResultType = true; break;
3377    case Op::OpSubgroupAvcMceGetMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;
3378    case Op::OpSubgroupAvcMceGetInterDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
3379    case Op::OpSubgroupAvcMceGetBestInterDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
3380    case Op::OpSubgroupAvcMceGetInterMajorShapeINTEL: *hasResult = true; *hasResultType = true; break;
3381    case Op::OpSubgroupAvcMceGetInterMinorShapeINTEL: *hasResult = true; *hasResultType = true; break;
3382    case Op::OpSubgroupAvcMceGetInterDirectionsINTEL: *hasResult = true; *hasResultType = true; break;
3383    case Op::OpSubgroupAvcMceGetInterMotionVectorCountINTEL: *hasResult = true; *hasResultType = true; break;
3384    case Op::OpSubgroupAvcMceGetInterReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;
3385    case Op::OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL: *hasResult = true; *hasResultType = true; break;
3386    case Op::OpSubgroupAvcImeInitializeINTEL: *hasResult = true; *hasResultType = true; break;
3387    case Op::OpSubgroupAvcImeSetSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
3388    case Op::OpSubgroupAvcImeSetDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
3389    case Op::OpSubgroupAvcImeRefWindowSizeINTEL: *hasResult = true; *hasResultType = true; break;
3390    case Op::OpSubgroupAvcImeAdjustRefOffsetINTEL: *hasResult = true; *hasResultType = true; break;
3391    case Op::OpSubgroupAvcImeConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;
3392    case Op::OpSubgroupAvcImeSetMaxMotionVectorCountINTEL: *hasResult = true; *hasResultType = true; break;
3393    case Op::OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL: *hasResult = true; *hasResultType = true; break;
3394    case Op::OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL: *hasResult = true; *hasResultType = true; break;
3395    case Op::OpSubgroupAvcImeSetWeightedSadINTEL: *hasResult = true; *hasResultType = true; break;
3396    case Op::OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
3397    case Op::OpSubgroupAvcImeEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
3398    case Op::OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
3399    case Op::OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
3400    case Op::OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
3401    case Op::OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
3402    case Op::OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL: *hasResult = true; *hasResultType = true; break;
3403    case Op::OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL: *hasResult = true; *hasResultType = true; break;
3404    case Op::OpSubgroupAvcImeConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;
3405    case Op::OpSubgroupAvcImeGetSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
3406    case Op::OpSubgroupAvcImeGetDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;
3407    case Op::OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
3408    case Op::OpSubgroupAvcImeStripDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;
3409    case Op::OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;
3410    case Op::OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
3411    case Op::OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;
3412    case Op::OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;
3413    case Op::OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL: *hasResult = true; *hasResultType = true; break;
3414    case Op::OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;
3415    case Op::OpSubgroupAvcImeGetBorderReachedINTEL: *hasResult = true; *hasResultType = true; break;
3416    case Op::OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL: *hasResult = true; *hasResultType = true; break;
3417    case Op::OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL: *hasResult = true; *hasResultType = true; break;
3418    case Op::OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL: *hasResult = true; *hasResultType = true; break;
3419    case Op::OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL: *hasResult = true; *hasResultType = true; break;
3420    case Op::OpSubgroupAvcFmeInitializeINTEL: *hasResult = true; *hasResultType = true; break;
3421    case Op::OpSubgroupAvcBmeInitializeINTEL: *hasResult = true; *hasResultType = true; break;
3422    case Op::OpSubgroupAvcRefConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;
3423    case Op::OpSubgroupAvcRefSetBidirectionalMixDisableINTEL: *hasResult = true; *hasResultType = true; break;
3424    case Op::OpSubgroupAvcRefSetBilinearFilterEnableINTEL: *hasResult = true; *hasResultType = true; break;
3425    case Op::OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
3426    case Op::OpSubgroupAvcRefEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
3427    case Op::OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL: *hasResult = true; *hasResultType = true; break;
3428    case Op::OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL: *hasResult = true; *hasResultType = true; break;
3429    case Op::OpSubgroupAvcRefConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;
3430    case Op::OpSubgroupAvcSicInitializeINTEL: *hasResult = true; *hasResultType = true; break;
3431    case Op::OpSubgroupAvcSicConfigureSkcINTEL: *hasResult = true; *hasResultType = true; break;
3432    case Op::OpSubgroupAvcSicConfigureIpeLumaINTEL: *hasResult = true; *hasResultType = true; break;
3433    case Op::OpSubgroupAvcSicConfigureIpeLumaChromaINTEL: *hasResult = true; *hasResultType = true; break;
3434    case Op::OpSubgroupAvcSicGetMotionVectorMaskINTEL: *hasResult = true; *hasResultType = true; break;
3435    case Op::OpSubgroupAvcSicConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;
3436    case Op::OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;
3437    case Op::OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;
3438    case Op::OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;
3439    case Op::OpSubgroupAvcSicSetBilinearFilterEnableINTEL: *hasResult = true; *hasResultType = true; break;
3440    case Op::OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL: *hasResult = true; *hasResultType = true; break;
3441    case Op::OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL: *hasResult = true; *hasResultType = true; break;
3442    case Op::OpSubgroupAvcSicEvaluateIpeINTEL: *hasResult = true; *hasResultType = true; break;
3443    case Op::OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;
3444    case Op::OpSubgroupAvcSicEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;
3445    case Op::OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL: *hasResult = true; *hasResultType = true; break;
3446    case Op::OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL: *hasResult = true; *hasResultType = true; break;
3447    case Op::OpSubgroupAvcSicConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;
3448    case Op::OpSubgroupAvcSicGetIpeLumaShapeINTEL: *hasResult = true; *hasResultType = true; break;
3449    case Op::OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL: *hasResult = true; *hasResultType = true; break;
3450    case Op::OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL: *hasResult = true; *hasResultType = true; break;
3451    case Op::OpSubgroupAvcSicGetPackedIpeLumaModesINTEL: *hasResult = true; *hasResultType = true; break;
3452    case Op::OpSubgroupAvcSicGetIpeChromaModeINTEL: *hasResult = true; *hasResultType = true; break;
3453    case Op::OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL: *hasResult = true; *hasResultType = true; break;
3454    case Op::OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL: *hasResult = true; *hasResultType = true; break;
3455    case Op::OpSubgroupAvcSicGetInterRawSadsINTEL: *hasResult = true; *hasResultType = true; break;
3456    case Op::OpVariableLengthArrayINTEL: *hasResult = true; *hasResultType = true; break;
3457    case Op::OpSaveMemoryINTEL: *hasResult = true; *hasResultType = true; break;
3458    case Op::OpRestoreMemoryINTEL: *hasResult = false; *hasResultType = false; break;
3459    case Op::OpArbitraryFloatSinCosPiALTERA: *hasResult = true; *hasResultType = true; break;
3460    case Op::OpArbitraryFloatCastALTERA: *hasResult = true; *hasResultType = true; break;
3461    case Op::OpArbitraryFloatCastFromIntALTERA: *hasResult = true; *hasResultType = true; break;
3462    case Op::OpArbitraryFloatCastToIntALTERA: *hasResult = true; *hasResultType = true; break;
3463    case Op::OpArbitraryFloatAddALTERA: *hasResult = true; *hasResultType = true; break;
3464    case Op::OpArbitraryFloatSubALTERA: *hasResult = true; *hasResultType = true; break;
3465    case Op::OpArbitraryFloatMulALTERA: *hasResult = true; *hasResultType = true; break;
3466    case Op::OpArbitraryFloatDivALTERA: *hasResult = true; *hasResultType = true; break;
3467    case Op::OpArbitraryFloatGTALTERA: *hasResult = true; *hasResultType = true; break;
3468    case Op::OpArbitraryFloatGEALTERA: *hasResult = true; *hasResultType = true; break;
3469    case Op::OpArbitraryFloatLTALTERA: *hasResult = true; *hasResultType = true; break;
3470    case Op::OpArbitraryFloatLEALTERA: *hasResult = true; *hasResultType = true; break;
3471    case Op::OpArbitraryFloatEQALTERA: *hasResult = true; *hasResultType = true; break;
3472    case Op::OpArbitraryFloatRecipALTERA: *hasResult = true; *hasResultType = true; break;
3473    case Op::OpArbitraryFloatRSqrtALTERA: *hasResult = true; *hasResultType = true; break;
3474    case Op::OpArbitraryFloatCbrtALTERA: *hasResult = true; *hasResultType = true; break;
3475    case Op::OpArbitraryFloatHypotALTERA: *hasResult = true; *hasResultType = true; break;
3476    case Op::OpArbitraryFloatSqrtALTERA: *hasResult = true; *hasResultType = true; break;
3477    case Op::OpArbitraryFloatLogINTEL: *hasResult = true; *hasResultType = true; break;
3478    case Op::OpArbitraryFloatLog2INTEL: *hasResult = true; *hasResultType = true; break;
3479    case Op::OpArbitraryFloatLog10INTEL: *hasResult = true; *hasResultType = true; break;
3480    case Op::OpArbitraryFloatLog1pINTEL: *hasResult = true; *hasResultType = true; break;
3481    case Op::OpArbitraryFloatExpINTEL: *hasResult = true; *hasResultType = true; break;
3482    case Op::OpArbitraryFloatExp2INTEL: *hasResult = true; *hasResultType = true; break;
3483    case Op::OpArbitraryFloatExp10INTEL: *hasResult = true; *hasResultType = true; break;
3484    case Op::OpArbitraryFloatExpm1INTEL: *hasResult = true; *hasResultType = true; break;
3485    case Op::OpArbitraryFloatSinINTEL: *hasResult = true; *hasResultType = true; break;
3486    case Op::OpArbitraryFloatCosINTEL: *hasResult = true; *hasResultType = true; break;
3487    case Op::OpArbitraryFloatSinCosINTEL: *hasResult = true; *hasResultType = true; break;
3488    case Op::OpArbitraryFloatSinPiINTEL: *hasResult = true; *hasResultType = true; break;
3489    case Op::OpArbitraryFloatCosPiINTEL: *hasResult = true; *hasResultType = true; break;
3490    case Op::OpArbitraryFloatASinINTEL: *hasResult = true; *hasResultType = true; break;
3491    case Op::OpArbitraryFloatASinPiINTEL: *hasResult = true; *hasResultType = true; break;
3492    case Op::OpArbitraryFloatACosINTEL: *hasResult = true; *hasResultType = true; break;
3493    case Op::OpArbitraryFloatACosPiINTEL: *hasResult = true; *hasResultType = true; break;
3494    case Op::OpArbitraryFloatATanINTEL: *hasResult = true; *hasResultType = true; break;
3495    case Op::OpArbitraryFloatATanPiINTEL: *hasResult = true; *hasResultType = true; break;
3496    case Op::OpArbitraryFloatATan2INTEL: *hasResult = true; *hasResultType = true; break;
3497    case Op::OpArbitraryFloatPowINTEL: *hasResult = true; *hasResultType = true; break;
3498    case Op::OpArbitraryFloatPowRINTEL: *hasResult = true; *hasResultType = true; break;
3499    case Op::OpArbitraryFloatPowNINTEL: *hasResult = true; *hasResultType = true; break;
3500    case Op::OpLoopControlINTEL: *hasResult = false; *hasResultType = false; break;
3501    case Op::OpAliasDomainDeclINTEL: *hasResult = true; *hasResultType = false; break;
3502    case Op::OpAliasScopeDeclINTEL: *hasResult = true; *hasResultType = false; break;
3503    case Op::OpAliasScopeListDeclINTEL: *hasResult = true; *hasResultType = false; break;
3504    case Op::OpFixedSqrtALTERA: *hasResult = true; *hasResultType = true; break;
3505    case Op::OpFixedRecipALTERA: *hasResult = true; *hasResultType = true; break;
3506    case Op::OpFixedRsqrtALTERA: *hasResult = true; *hasResultType = true; break;
3507    case Op::OpFixedSinALTERA: *hasResult = true; *hasResultType = true; break;
3508    case Op::OpFixedCosALTERA: *hasResult = true; *hasResultType = true; break;
3509    case Op::OpFixedSinCosALTERA: *hasResult = true; *hasResultType = true; break;
3510    case Op::OpFixedSinPiALTERA: *hasResult = true; *hasResultType = true; break;
3511    case Op::OpFixedCosPiALTERA: *hasResult = true; *hasResultType = true; break;
3512    case Op::OpFixedSinCosPiALTERA: *hasResult = true; *hasResultType = true; break;
3513    case Op::OpFixedLogALTERA: *hasResult = true; *hasResultType = true; break;
3514    case Op::OpFixedExpALTERA: *hasResult = true; *hasResultType = true; break;
3515    case Op::OpPtrCastToCrossWorkgroupALTERA: *hasResult = true; *hasResultType = true; break;
3516    case Op::OpCrossWorkgroupCastToPtrALTERA: *hasResult = true; *hasResultType = true; break;
3517    case Op::OpReadPipeBlockingALTERA: *hasResult = false; *hasResultType = false; break;
3518    case Op::OpWritePipeBlockingALTERA: *hasResult = false; *hasResultType = false; break;
3519    case Op::OpFPGARegALTERA: *hasResult = true; *hasResultType = true; break;
3520    case Op::OpRayQueryGetRayTMinKHR: *hasResult = true; *hasResultType = true; break;
3521    case Op::OpRayQueryGetRayFlagsKHR: *hasResult = true; *hasResultType = true; break;
3522    case Op::OpRayQueryGetIntersectionTKHR: *hasResult = true; *hasResultType = true; break;
3523    case Op::OpRayQueryGetIntersectionInstanceCustomIndexKHR: *hasResult = true; *hasResultType = true; break;
3524    case Op::OpRayQueryGetIntersectionInstanceIdKHR: *hasResult = true; *hasResultType = true; break;
3525    case Op::OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR: *hasResult = true; *hasResultType = true; break;
3526    case Op::OpRayQueryGetIntersectionGeometryIndexKHR: *hasResult = true; *hasResultType = true; break;
3527    case Op::OpRayQueryGetIntersectionPrimitiveIndexKHR: *hasResult = true; *hasResultType = true; break;
3528    case Op::OpRayQueryGetIntersectionBarycentricsKHR: *hasResult = true; *hasResultType = true; break;
3529    case Op::OpRayQueryGetIntersectionFrontFaceKHR: *hasResult = true; *hasResultType = true; break;
3530    case Op::OpRayQueryGetIntersectionCandidateAABBOpaqueKHR: *hasResult = true; *hasResultType = true; break;
3531    case Op::OpRayQueryGetIntersectionObjectRayDirectionKHR: *hasResult = true; *hasResultType = true; break;
3532    case Op::OpRayQueryGetIntersectionObjectRayOriginKHR: *hasResult = true; *hasResultType = true; break;
3533    case Op::OpRayQueryGetWorldRayDirectionKHR: *hasResult = true; *hasResultType = true; break;
3534    case Op::OpRayQueryGetWorldRayOriginKHR: *hasResult = true; *hasResultType = true; break;
3535    case Op::OpRayQueryGetIntersectionObjectToWorldKHR: *hasResult = true; *hasResultType = true; break;
3536    case Op::OpRayQueryGetIntersectionWorldToObjectKHR: *hasResult = true; *hasResultType = true; break;
3537    case Op::OpAtomicFAddEXT: *hasResult = true; *hasResultType = true; break;
3538    case Op::OpTypeBufferSurfaceINTEL: *hasResult = true; *hasResultType = false; break;
3539    case Op::OpTypeStructContinuedINTEL: *hasResult = false; *hasResultType = false; break;
3540    case Op::OpConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
3541    case Op::OpSpecConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;
3542    case Op::OpCompositeConstructContinuedINTEL: *hasResult = false; *hasResultType = false; break;
3543    case Op::OpConvertFToBF16INTEL: *hasResult = true; *hasResultType = true; break;
3544    case Op::OpConvertBF16ToFINTEL: *hasResult = true; *hasResultType = true; break;
3545    case Op::OpControlBarrierArriveEXT: *hasResult = false; *hasResultType = false; break;
3546    case Op::OpControlBarrierWaitEXT: *hasResult = false; *hasResultType = false; break;
3547    case Op::OpArithmeticFenceEXT: *hasResult = true; *hasResultType = true; break;
3548    case Op::OpTaskSequenceCreateALTERA: *hasResult = true; *hasResultType = true; break;
3549    case Op::OpTaskSequenceAsyncALTERA: *hasResult = false; *hasResultType = false; break;
3550    case Op::OpTaskSequenceGetALTERA: *hasResult = true; *hasResultType = true; break;
3551    case Op::OpTaskSequenceReleaseALTERA: *hasResult = false; *hasResultType = false; break;
3552    case Op::OpTypeTaskSequenceALTERA: *hasResult = true; *hasResultType = false; break;
3553    case Op::OpSubgroupBlockPrefetchINTEL: *hasResult = false; *hasResultType = false; break;
3554    case Op::OpSubgroup2DBlockLoadINTEL: *hasResult = false; *hasResultType = false; break;
3555    case Op::OpSubgroup2DBlockLoadTransformINTEL: *hasResult = false; *hasResultType = false; break;
3556    case Op::OpSubgroup2DBlockLoadTransposeINTEL: *hasResult = false; *hasResultType = false; break;
3557    case Op::OpSubgroup2DBlockPrefetchINTEL: *hasResult = false; *hasResultType = false; break;
3558    case Op::OpSubgroup2DBlockStoreINTEL: *hasResult = false; *hasResultType = false; break;
3559    case Op::OpSubgroupMatrixMultiplyAccumulateINTEL: *hasResult = true; *hasResultType = true; break;
3560    case Op::OpBitwiseFunctionINTEL: *hasResult = true; *hasResultType = true; break;
3561    case Op::OpUntypedVariableLengthArrayINTEL: *hasResult = true; *hasResultType = true; break;
3562    case Op::OpConditionalExtensionINTEL: *hasResult = false; *hasResultType = false; break;
3563    case Op::OpConditionalEntryPointINTEL: *hasResult = false; *hasResultType = false; break;
3564    case Op::OpConditionalCapabilityINTEL: *hasResult = false; *hasResultType = false; break;
3565    case Op::OpSpecConstantTargetINTEL: *hasResult = true; *hasResultType = true; break;
3566    case Op::OpSpecConstantArchitectureINTEL: *hasResult = true; *hasResultType = true; break;
3567    case Op::OpSpecConstantCapabilitiesINTEL: *hasResult = true; *hasResultType = true; break;
3568    case Op::OpConditionalCopyObjectINTEL: *hasResult = true; *hasResultType = true; break;
3569    case Op::OpPredicatedLoadINTEL: *hasResult = true; *hasResultType = true; break;
3570    case Op::OpPredicatedStoreINTEL: *hasResult = false; *hasResultType = false; break;
3571    case Op::OpGroupIMulKHR: *hasResult = true; *hasResultType = true; break;
3572    case Op::OpGroupFMulKHR: *hasResult = true; *hasResultType = true; break;
3573    case Op::OpGroupBitwiseAndKHR: *hasResult = true; *hasResultType = true; break;
3574    case Op::OpGroupBitwiseOrKHR: *hasResult = true; *hasResultType = true; break;
3575    case Op::OpGroupBitwiseXorKHR: *hasResult = true; *hasResultType = true; break;
3576    case Op::OpGroupLogicalAndKHR: *hasResult = true; *hasResultType = true; break;
3577    case Op::OpGroupLogicalOrKHR: *hasResult = true; *hasResultType = true; break;
3578    case Op::OpGroupLogicalXorKHR: *hasResult = true; *hasResultType = true; break;
3579    case Op::OpRoundFToTF32INTEL: *hasResult = true; *hasResultType = true; break;
3580    case Op::OpMaskedGatherINTEL: *hasResult = true; *hasResultType = true; break;
3581    case Op::OpMaskedScatterINTEL: *hasResult = false; *hasResultType = false; break;
3582    case Op::OpConvertHandleToImageINTEL: *hasResult = true; *hasResultType = true; break;
3583    case Op::OpConvertHandleToSamplerINTEL: *hasResult = true; *hasResultType = true; break;
3584    case Op::OpConvertHandleToSampledImageINTEL: *hasResult = true; *hasResultType = true; break;
3585    case Op::OpFDot2MixAcc32VALVE: *hasResult = true; *hasResultType = true; break;
3586    case Op::OpFDot2MixAcc16VALVE: *hasResult = true; *hasResultType = true; break;
3587    case Op::OpFDot4MixAcc32VALVE: *hasResult = true; *hasResultType = true; break;
3588    }
3589}
3590inline const char* SourceLanguageToString(SourceLanguage value) {
3591    switch (value) {
3592    case SourceLanguage::Unknown: return "Unknown";
3593    case SourceLanguage::ESSL: return "ESSL";
3594    case SourceLanguage::GLSL: return "GLSL";
3595    case SourceLanguage::OpenCL_C: return "OpenCL_C";
3596    case SourceLanguage::OpenCL_CPP: return "OpenCL_CPP";
3597    case SourceLanguage::HLSL: return "HLSL";
3598    case SourceLanguage::CPP_for_OpenCL: return "CPP_for_OpenCL";
3599    case SourceLanguage::SYCL: return "SYCL";
3600    case SourceLanguage::HERO_C: return "HERO_C";
3601    case SourceLanguage::NZSL: return "NZSL";
3602    case SourceLanguage::WGSL: return "WGSL";
3603    case SourceLanguage::Slang: return "Slang";
3604    case SourceLanguage::Zig: return "Zig";
3605    case SourceLanguage::Rust: return "Rust";
3606    case SourceLanguage::Pred: return "Pred";
3607    case SourceLanguage::ApilaJai: return "ApilaJai";
3608    default: return "Unknown";
3609    }
3610}
3611
3612inline const char* ExecutionModelToString(ExecutionModel value) {
3613    switch (value) {
3614    case ExecutionModel::Vertex: return "Vertex";
3615    case ExecutionModel::TessellationControl: return "TessellationControl";
3616    case ExecutionModel::TessellationEvaluation: return "TessellationEvaluation";
3617    case ExecutionModel::Geometry: return "Geometry";
3618    case ExecutionModel::Fragment: return "Fragment";
3619    case ExecutionModel::GLCompute: return "GLCompute";
3620    case ExecutionModel::Kernel: return "Kernel";
3621    case ExecutionModel::TaskNV: return "TaskNV";
3622    case ExecutionModel::MeshNV: return "MeshNV";
3623    case ExecutionModel::RayGenerationKHR: return "RayGenerationKHR";
3624    case ExecutionModel::IntersectionKHR: return "IntersectionKHR";
3625    case ExecutionModel::AnyHitKHR: return "AnyHitKHR";
3626    case ExecutionModel::ClosestHitKHR: return "ClosestHitKHR";
3627    case ExecutionModel::MissKHR: return "MissKHR";
3628    case ExecutionModel::CallableKHR: return "CallableKHR";
3629    case ExecutionModel::TaskEXT: return "TaskEXT";
3630    case ExecutionModel::MeshEXT: return "MeshEXT";
3631    default: return "Unknown";
3632    }
3633}
3634
3635inline const char* AddressingModelToString(AddressingModel value) {
3636    switch (value) {
3637    case AddressingModel::Logical: return "Logical";
3638    case AddressingModel::Physical32: return "Physical32";
3639    case AddressingModel::Physical64: return "Physical64";
3640    case AddressingModel::PhysicalStorageBuffer64: return "PhysicalStorageBuffer64";
3641    default: return "Unknown";
3642    }
3643}
3644
3645inline const char* MemoryModelToString(MemoryModel value) {
3646    switch (value) {
3647    case MemoryModel::Simple: return "Simple";
3648    case MemoryModel::GLSL450: return "GLSL450";
3649    case MemoryModel::OpenCL: return "OpenCL";
3650    case MemoryModel::Vulkan: return "Vulkan";
3651    default: return "Unknown";
3652    }
3653}
3654
3655inline const char* ExecutionModeToString(ExecutionMode value) {
3656    switch (value) {
3657    case ExecutionMode::Invocations: return "Invocations";
3658    case ExecutionMode::SpacingEqual: return "SpacingEqual";
3659    case ExecutionMode::SpacingFractionalEven: return "SpacingFractionalEven";
3660    case ExecutionMode::SpacingFractionalOdd: return "SpacingFractionalOdd";
3661    case ExecutionMode::VertexOrderCw: return "VertexOrderCw";
3662    case ExecutionMode::VertexOrderCcw: return "VertexOrderCcw";
3663    case ExecutionMode::PixelCenterInteger: return "PixelCenterInteger";
3664    case ExecutionMode::OriginUpperLeft: return "OriginUpperLeft";
3665    case ExecutionMode::OriginLowerLeft: return "OriginLowerLeft";
3666    case ExecutionMode::EarlyFragmentTests: return "EarlyFragmentTests";
3667    case ExecutionMode::PointMode: return "PointMode";
3668    case ExecutionMode::Xfb: return "Xfb";
3669    case ExecutionMode::DepthReplacing: return "DepthReplacing";
3670    case ExecutionMode::DepthGreater: return "DepthGreater";
3671    case ExecutionMode::DepthLess: return "DepthLess";
3672    case ExecutionMode::DepthUnchanged: return "DepthUnchanged";
3673    case ExecutionMode::LocalSize: return "LocalSize";
3674    case ExecutionMode::LocalSizeHint: return "LocalSizeHint";
3675    case ExecutionMode::InputPoints: return "InputPoints";
3676    case ExecutionMode::InputLines: return "InputLines";
3677    case ExecutionMode::InputLinesAdjacency: return "InputLinesAdjacency";
3678    case ExecutionMode::Triangles: return "Triangles";
3679    case ExecutionMode::InputTrianglesAdjacency: return "InputTrianglesAdjacency";
3680    case ExecutionMode::Quads: return "Quads";
3681    case ExecutionMode::Isolines: return "Isolines";
3682    case ExecutionMode::OutputVertices: return "OutputVertices";
3683    case ExecutionMode::OutputPoints: return "OutputPoints";
3684    case ExecutionMode::OutputLineStrip: return "OutputLineStrip";
3685    case ExecutionMode::OutputTriangleStrip: return "OutputTriangleStrip";
3686    case ExecutionMode::VecTypeHint: return "VecTypeHint";
3687    case ExecutionMode::ContractionOff: return "ContractionOff";
3688    case ExecutionMode::Initializer: return "Initializer";
3689    case ExecutionMode::Finalizer: return "Finalizer";
3690    case ExecutionMode::SubgroupSize: return "SubgroupSize";
3691    case ExecutionMode::SubgroupsPerWorkgroup: return "SubgroupsPerWorkgroup";
3692    case ExecutionMode::SubgroupsPerWorkgroupId: return "SubgroupsPerWorkgroupId";
3693    case ExecutionMode::LocalSizeId: return "LocalSizeId";
3694    case ExecutionMode::LocalSizeHintId: return "LocalSizeHintId";
3695    case ExecutionMode::NonCoherentColorAttachmentReadEXT: return "NonCoherentColorAttachmentReadEXT";
3696    case ExecutionMode::NonCoherentDepthAttachmentReadEXT: return "NonCoherentDepthAttachmentReadEXT";
3697    case ExecutionMode::NonCoherentStencilAttachmentReadEXT: return "NonCoherentStencilAttachmentReadEXT";
3698    case ExecutionMode::SubgroupUniformControlFlowKHR: return "SubgroupUniformControlFlowKHR";
3699    case ExecutionMode::PostDepthCoverage: return "PostDepthCoverage";
3700    case ExecutionMode::DenormPreserve: return "DenormPreserve";
3701    case ExecutionMode::DenormFlushToZero: return "DenormFlushToZero";
3702    case ExecutionMode::SignedZeroInfNanPreserve: return "SignedZeroInfNanPreserve";
3703    case ExecutionMode::RoundingModeRTE: return "RoundingModeRTE";
3704    case ExecutionMode::RoundingModeRTZ: return "RoundingModeRTZ";
3705    case ExecutionMode::NonCoherentTileAttachmentReadQCOM: return "NonCoherentTileAttachmentReadQCOM";
3706    case ExecutionMode::TileShadingRateQCOM: return "TileShadingRateQCOM";
3707    case ExecutionMode::EarlyAndLateFragmentTestsAMD: return "EarlyAndLateFragmentTestsAMD";
3708    case ExecutionMode::StencilRefReplacingEXT: return "StencilRefReplacingEXT";
3709    case ExecutionMode::CoalescingAMDX: return "CoalescingAMDX";
3710    case ExecutionMode::IsApiEntryAMDX: return "IsApiEntryAMDX";
3711    case ExecutionMode::MaxNodeRecursionAMDX: return "MaxNodeRecursionAMDX";
3712    case ExecutionMode::StaticNumWorkgroupsAMDX: return "StaticNumWorkgroupsAMDX";
3713    case ExecutionMode::ShaderIndexAMDX: return "ShaderIndexAMDX";
3714    case ExecutionMode::MaxNumWorkgroupsAMDX: return "MaxNumWorkgroupsAMDX";
3715    case ExecutionMode::StencilRefUnchangedFrontAMD: return "StencilRefUnchangedFrontAMD";
3716    case ExecutionMode::StencilRefGreaterFrontAMD: return "StencilRefGreaterFrontAMD";
3717    case ExecutionMode::StencilRefLessFrontAMD: return "StencilRefLessFrontAMD";
3718    case ExecutionMode::StencilRefUnchangedBackAMD: return "StencilRefUnchangedBackAMD";
3719    case ExecutionMode::StencilRefGreaterBackAMD: return "StencilRefGreaterBackAMD";
3720    case ExecutionMode::StencilRefLessBackAMD: return "StencilRefLessBackAMD";
3721    case ExecutionMode::QuadDerivativesKHR: return "QuadDerivativesKHR";
3722    case ExecutionMode::RequireFullQuadsKHR: return "RequireFullQuadsKHR";
3723    case ExecutionMode::SharesInputWithAMDX: return "SharesInputWithAMDX";
3724    case ExecutionMode::ArithmeticPoisonKHR: return "ArithmeticPoisonKHR";
3725    case ExecutionMode::OutputLinesEXT: return "OutputLinesEXT";
3726    case ExecutionMode::OutputPrimitivesEXT: return "OutputPrimitivesEXT";
3727    case ExecutionMode::DerivativeGroupQuadsKHR: return "DerivativeGroupQuadsKHR";
3728    case ExecutionMode::DerivativeGroupLinearKHR: return "DerivativeGroupLinearKHR";
3729    case ExecutionMode::OutputTrianglesEXT: return "OutputTrianglesEXT";
3730    case ExecutionMode::PixelInterlockOrderedEXT: return "PixelInterlockOrderedEXT";
3731    case ExecutionMode::PixelInterlockUnorderedEXT: return "PixelInterlockUnorderedEXT";
3732    case ExecutionMode::SampleInterlockOrderedEXT: return "SampleInterlockOrderedEXT";
3733    case ExecutionMode::SampleInterlockUnorderedEXT: return "SampleInterlockUnorderedEXT";
3734    case ExecutionMode::ShadingRateInterlockOrderedEXT: return "ShadingRateInterlockOrderedEXT";
3735    case ExecutionMode::ShadingRateInterlockUnorderedEXT: return "ShadingRateInterlockUnorderedEXT";
3736    case ExecutionMode::Shader64BitIndexingEXT: return "Shader64BitIndexingEXT";
3737    case ExecutionMode::SharedLocalMemorySizeINTEL: return "SharedLocalMemorySizeINTEL";
3738    case ExecutionMode::RoundingModeRTPINTEL: return "RoundingModeRTPINTEL";
3739    case ExecutionMode::RoundingModeRTNINTEL: return "RoundingModeRTNINTEL";
3740    case ExecutionMode::FloatingPointModeALTINTEL: return "FloatingPointModeALTINTEL";
3741    case ExecutionMode::FloatingPointModeIEEEINTEL: return "FloatingPointModeIEEEINTEL";
3742    case ExecutionMode::MaxWorkgroupSizeINTEL: return "MaxWorkgroupSizeINTEL";
3743    case ExecutionMode::MaxWorkDimINTEL: return "MaxWorkDimINTEL";
3744    case ExecutionMode::NoGlobalOffsetINTEL: return "NoGlobalOffsetINTEL";
3745    case ExecutionMode::NumSIMDWorkitemsINTEL: return "NumSIMDWorkitemsINTEL";
3746    case ExecutionMode::SchedulerTargetFmaxMhzINTEL: return "SchedulerTargetFmaxMhzINTEL";
3747    case ExecutionMode::MaximallyReconvergesKHR: return "MaximallyReconvergesKHR";
3748    case ExecutionMode::FPFastMathDefault: return "FPFastMathDefault";
3749    case ExecutionMode::OpacityMicromapIdKHR: return "OpacityMicromapIdKHR";
3750    case ExecutionMode::StreamingInterfaceINTEL: return "StreamingInterfaceINTEL";
3751    case ExecutionMode::RegisterMapInterfaceINTEL: return "RegisterMapInterfaceINTEL";
3752    case ExecutionMode::NamedBarrierCountINTEL: return "NamedBarrierCountINTEL";
3753    case ExecutionMode::MaximumRegistersINTEL: return "MaximumRegistersINTEL";
3754    case ExecutionMode::MaximumRegistersIdINTEL: return "MaximumRegistersIdINTEL";
3755    case ExecutionMode::NamedMaximumRegistersINTEL: return "NamedMaximumRegistersINTEL";
3756    default: return "Unknown";
3757    }
3758}
3759
3760inline const char* StorageClassToString(StorageClass value) {
3761    switch (value) {
3762    case StorageClass::UniformConstant: return "UniformConstant";
3763    case StorageClass::Input: return "Input";
3764    case StorageClass::Uniform: return "Uniform";
3765    case StorageClass::Output: return "Output";
3766    case StorageClass::Workgroup: return "Workgroup";
3767    case StorageClass::CrossWorkgroup: return "CrossWorkgroup";
3768    case StorageClass::Private: return "Private";
3769    case StorageClass::Function: return "Function";
3770    case StorageClass::Generic: return "Generic";
3771    case StorageClass::PushConstant: return "PushConstant";
3772    case StorageClass::AtomicCounter: return "AtomicCounter";
3773    case StorageClass::Image: return "Image";
3774    case StorageClass::StorageBuffer: return "StorageBuffer";
3775    case StorageClass::TileImageEXT: return "TileImageEXT";
3776    case StorageClass::TileAttachmentQCOM: return "TileAttachmentQCOM";
3777    case StorageClass::NodePayloadAMDX: return "NodePayloadAMDX";
3778    case StorageClass::CallableDataKHR: return "CallableDataKHR";
3779    case StorageClass::IncomingCallableDataKHR: return "IncomingCallableDataKHR";
3780    case StorageClass::RayPayloadKHR: return "RayPayloadKHR";
3781    case StorageClass::HitAttributeKHR: return "HitAttributeKHR";
3782    case StorageClass::IncomingRayPayloadKHR: return "IncomingRayPayloadKHR";
3783    case StorageClass::ShaderRecordBufferKHR: return "ShaderRecordBufferKHR";
3784    case StorageClass::PhysicalStorageBuffer: return "PhysicalStorageBuffer";
3785    case StorageClass::HitObjectAttributeNV: return "HitObjectAttributeNV";
3786    case StorageClass::TaskPayloadWorkgroupEXT: return "TaskPayloadWorkgroupEXT";
3787    case StorageClass::HitObjectAttributeEXT: return "HitObjectAttributeEXT";
3788    case StorageClass::CodeSectionINTEL: return "CodeSectionINTEL";
3789    case StorageClass::DeviceOnlyALTERA: return "DeviceOnlyALTERA";
3790    case StorageClass::HostOnlyALTERA: return "HostOnlyALTERA";
3791    default: return "Unknown";
3792    }
3793}
3794
3795inline const char* DimToString(Dim value) {
3796    switch (value) {
3797    case Dim::Dim1D: return "1D";
3798    case Dim::Dim2D: return "2D";
3799    case Dim::Dim3D: return "3D";
3800    case Dim::Cube: return "Cube";
3801    case Dim::Rect: return "Rect";
3802    case Dim::Buffer: return "Buffer";
3803    case Dim::SubpassData: return "SubpassData";
3804    case Dim::TileImageDataEXT: return "TileImageDataEXT";
3805    default: return "Unknown";
3806    }
3807}
3808
3809inline const char* SamplerAddressingModeToString(SamplerAddressingMode value) {
3810    switch (value) {
3811    case SamplerAddressingMode::None: return "None";
3812    case SamplerAddressingMode::ClampToEdge: return "ClampToEdge";
3813    case SamplerAddressingMode::Clamp: return "Clamp";
3814    case SamplerAddressingMode::Repeat: return "Repeat";
3815    case SamplerAddressingMode::RepeatMirrored: return "RepeatMirrored";
3816    default: return "Unknown";
3817    }
3818}
3819
3820inline const char* SamplerFilterModeToString(SamplerFilterMode value) {
3821    switch (value) {
3822    case SamplerFilterMode::Nearest: return "Nearest";
3823    case SamplerFilterMode::Linear: return "Linear";
3824    default: return "Unknown";
3825    }
3826}
3827
3828inline const char* ImageFormatToString(ImageFormat value) {
3829    switch (value) {
3830    case ImageFormat::Unknown: return "Unknown";
3831    case ImageFormat::Rgba32f: return "Rgba32f";
3832    case ImageFormat::Rgba16f: return "Rgba16f";
3833    case ImageFormat::R32f: return "R32f";
3834    case ImageFormat::Rgba8: return "Rgba8";
3835    case ImageFormat::Rgba8Snorm: return "Rgba8Snorm";
3836    case ImageFormat::Rg32f: return "Rg32f";
3837    case ImageFormat::Rg16f: return "Rg16f";
3838    case ImageFormat::R11fG11fB10f: return "R11fG11fB10f";
3839    case ImageFormat::R16f: return "R16f";
3840    case ImageFormat::Rgba16: return "Rgba16";
3841    case ImageFormat::Rgb10A2: return "Rgb10A2";
3842    case ImageFormat::Rg16: return "Rg16";
3843    case ImageFormat::Rg8: return "Rg8";
3844    case ImageFormat::R16: return "R16";
3845    case ImageFormat::R8: return "R8";
3846    case ImageFormat::Rgba16Snorm: return "Rgba16Snorm";
3847    case ImageFormat::Rg16Snorm: return "Rg16Snorm";
3848    case ImageFormat::Rg8Snorm: return "Rg8Snorm";
3849    case ImageFormat::R16Snorm: return "R16Snorm";
3850    case ImageFormat::R8Snorm: return "R8Snorm";
3851    case ImageFormat::Rgba32i: return "Rgba32i";
3852    case ImageFormat::Rgba16i: return "Rgba16i";
3853    case ImageFormat::Rgba8i: return "Rgba8i";
3854    case ImageFormat::R32i: return "R32i";
3855    case ImageFormat::Rg32i: return "Rg32i";
3856    case ImageFormat::Rg16i: return "Rg16i";
3857    case ImageFormat::Rg8i: return "Rg8i";
3858    case ImageFormat::R16i: return "R16i";
3859    case ImageFormat::R8i: return "R8i";
3860    case ImageFormat::Rgba32ui: return "Rgba32ui";
3861    case ImageFormat::Rgba16ui: return "Rgba16ui";
3862    case ImageFormat::Rgba8ui: return "Rgba8ui";
3863    case ImageFormat::R32ui: return "R32ui";
3864    case ImageFormat::Rgb10a2ui: return "Rgb10a2ui";
3865    case ImageFormat::Rg32ui: return "Rg32ui";
3866    case ImageFormat::Rg16ui: return "Rg16ui";
3867    case ImageFormat::Rg8ui: return "Rg8ui";
3868    case ImageFormat::R16ui: return "R16ui";
3869    case ImageFormat::R8ui: return "R8ui";
3870    case ImageFormat::R64ui: return "R64ui";
3871    case ImageFormat::R64i: return "R64i";
3872    default: return "Unknown";
3873    }
3874}
3875
3876inline const char* ImageChannelOrderToString(ImageChannelOrder value) {
3877    switch (value) {
3878    case ImageChannelOrder::R: return "R";
3879    case ImageChannelOrder::A: return "A";
3880    case ImageChannelOrder::RG: return "RG";
3881    case ImageChannelOrder::RA: return "RA";
3882    case ImageChannelOrder::RGB: return "RGB";
3883    case ImageChannelOrder::RGBA: return "RGBA";
3884    case ImageChannelOrder::BGRA: return "BGRA";
3885    case ImageChannelOrder::ARGB: return "ARGB";
3886    case ImageChannelOrder::Intensity: return "Intensity";
3887    case ImageChannelOrder::Luminance: return "Luminance";
3888    case ImageChannelOrder::Rx: return "Rx";
3889    case ImageChannelOrder::RGx: return "RGx";
3890    case ImageChannelOrder::RGBx: return "RGBx";
3891    case ImageChannelOrder::Depth: return "Depth";
3892    case ImageChannelOrder::DepthStencil: return "DepthStencil";
3893    case ImageChannelOrder::sRGB: return "sRGB";
3894    case ImageChannelOrder::sRGBx: return "sRGBx";
3895    case ImageChannelOrder::sRGBA: return "sRGBA";
3896    case ImageChannelOrder::sBGRA: return "sBGRA";
3897    case ImageChannelOrder::ABGR: return "ABGR";
3898    default: return "Unknown";
3899    }
3900}
3901
3902inline const char* ImageChannelDataTypeToString(ImageChannelDataType value) {
3903    switch (value) {
3904    case ImageChannelDataType::SnormInt8: return "SnormInt8";
3905    case ImageChannelDataType::SnormInt16: return "SnormInt16";
3906    case ImageChannelDataType::UnormInt8: return "UnormInt8";
3907    case ImageChannelDataType::UnormInt16: return "UnormInt16";
3908    case ImageChannelDataType::UnormShort565: return "UnormShort565";
3909    case ImageChannelDataType::UnormShort555: return "UnormShort555";
3910    case ImageChannelDataType::UnormInt101010: return "UnormInt101010";
3911    case ImageChannelDataType::SignedInt8: return "SignedInt8";
3912    case ImageChannelDataType::SignedInt16: return "SignedInt16";
3913    case ImageChannelDataType::SignedInt32: return "SignedInt32";
3914    case ImageChannelDataType::UnsignedInt8: return "UnsignedInt8";
3915    case ImageChannelDataType::UnsignedInt16: return "UnsignedInt16";
3916    case ImageChannelDataType::UnsignedInt32: return "UnsignedInt32";
3917    case ImageChannelDataType::HalfFloat: return "HalfFloat";
3918    case ImageChannelDataType::Float: return "Float";
3919    case ImageChannelDataType::UnormInt24: return "UnormInt24";
3920    case ImageChannelDataType::UnormInt101010_2: return "UnormInt101010_2";
3921    case ImageChannelDataType::UnormInt10X6EXT: return "UnormInt10X6EXT";
3922    case ImageChannelDataType::UnsignedIntRaw10EXT: return "UnsignedIntRaw10EXT";
3923    case ImageChannelDataType::UnsignedIntRaw12EXT: return "UnsignedIntRaw12EXT";
3924    case ImageChannelDataType::UnormInt2_101010EXT: return "UnormInt2_101010EXT";
3925    case ImageChannelDataType::UnsignedInt10X6EXT: return "UnsignedInt10X6EXT";
3926    case ImageChannelDataType::UnsignedInt12X4EXT: return "UnsignedInt12X4EXT";
3927    case ImageChannelDataType::UnsignedInt14X2EXT: return "UnsignedInt14X2EXT";
3928    case ImageChannelDataType::UnormInt12X4EXT: return "UnormInt12X4EXT";
3929    case ImageChannelDataType::UnormInt14X2EXT: return "UnormInt14X2EXT";
3930    default: return "Unknown";
3931    }
3932}
3933
3934inline const char* FPRoundingModeToString(FPRoundingMode value) {
3935    switch (value) {
3936    case FPRoundingMode::RTE: return "RTE";
3937    case FPRoundingMode::RTZ: return "RTZ";
3938    case FPRoundingMode::RTP: return "RTP";
3939    case FPRoundingMode::RTN: return "RTN";
3940    default: return "Unknown";
3941    }
3942}
3943
3944inline const char* LinkageTypeToString(LinkageType value) {
3945    switch (value) {
3946    case LinkageType::Export: return "Export";
3947    case LinkageType::Import: return "Import";
3948    case LinkageType::LinkOnceODR: return "LinkOnceODR";
3949    case LinkageType::WeakAMD: return "WeakAMD";
3950    default: return "Unknown";
3951    }
3952}
3953
3954inline const char* AccessQualifierToString(AccessQualifier value) {
3955    switch (value) {
3956    case AccessQualifier::ReadOnly: return "ReadOnly";
3957    case AccessQualifier::WriteOnly: return "WriteOnly";
3958    case AccessQualifier::ReadWrite: return "ReadWrite";
3959    default: return "Unknown";
3960    }
3961}
3962
3963inline const char* FunctionParameterAttributeToString(FunctionParameterAttribute value) {
3964    switch (value) {
3965    case FunctionParameterAttribute::Zext: return "Zext";
3966    case FunctionParameterAttribute::Sext: return "Sext";
3967    case FunctionParameterAttribute::ByVal: return "ByVal";
3968    case FunctionParameterAttribute::Sret: return "Sret";
3969    case FunctionParameterAttribute::NoAlias: return "NoAlias";
3970    case FunctionParameterAttribute::NoCapture: return "NoCapture";
3971    case FunctionParameterAttribute::NoWrite: return "NoWrite";
3972    case FunctionParameterAttribute::NoReadWrite: return "NoReadWrite";
3973    case FunctionParameterAttribute::RuntimeAlignedALTERA: return "RuntimeAlignedALTERA";
3974    default: return "Unknown";
3975    }
3976}
3977
3978inline const char* DecorationToString(Decoration value) {
3979    switch (value) {
3980    case Decoration::RelaxedPrecision: return "RelaxedPrecision";
3981    case Decoration::SpecId: return "SpecId";
3982    case Decoration::Block: return "Block";
3983    case Decoration::BufferBlock: return "BufferBlock";
3984    case Decoration::RowMajor: return "RowMajor";
3985    case Decoration::ColMajor: return "ColMajor";
3986    case Decoration::ArrayStride: return "ArrayStride";
3987    case Decoration::MatrixStride: return "MatrixStride";
3988    case Decoration::GLSLShared: return "GLSLShared";
3989    case Decoration::GLSLPacked: return "GLSLPacked";
3990    case Decoration::CPacked: return "CPacked";
3991    case Decoration::BuiltIn: return "BuiltIn";
3992    case Decoration::NoPerspective: return "NoPerspective";
3993    case Decoration::Flat: return "Flat";
3994    case Decoration::Patch: return "Patch";
3995    case Decoration::Centroid: return "Centroid";
3996    case Decoration::Sample: return "Sample";
3997    case Decoration::Invariant: return "Invariant";
3998    case Decoration::Restrict: return "Restrict";
3999    case Decoration::Aliased: return "Aliased";
4000    case Decoration::Volatile: return "Volatile";
4001    case Decoration::Constant: return "Constant";
4002    case Decoration::Coherent: return "Coherent";
4003    case Decoration::NonWritable: return "NonWritable";
4004    case Decoration::NonReadable: return "NonReadable";
4005    case Decoration::Uniform: return "Uniform";
4006    case Decoration::UniformId: return "UniformId";
4007    case Decoration::SaturatedConversion: return "SaturatedConversion";
4008    case Decoration::Stream: return "Stream";
4009    case Decoration::Location: return "Location";
4010    case Decoration::Component: return "Component";
4011    case Decoration::Index: return "Index";
4012    case Decoration::Binding: return "Binding";
4013    case Decoration::DescriptorSet: return "DescriptorSet";
4014    case Decoration::Offset: return "Offset";
4015    case Decoration::XfbBuffer: return "XfbBuffer";
4016    case Decoration::XfbStride: return "XfbStride";
4017    case Decoration::FuncParamAttr: return "FuncParamAttr";
4018    case Decoration::FPRoundingMode: return "FPRoundingMode";
4019    case Decoration::FPFastMathMode: return "FPFastMathMode";
4020    case Decoration::LinkageAttributes: return "LinkageAttributes";
4021    case Decoration::NoContraction: return "NoContraction";
4022    case Decoration::InputAttachmentIndex: return "InputAttachmentIndex";
4023    case Decoration::Alignment: return "Alignment";
4024    case Decoration::MaxByteOffset: return "MaxByteOffset";
4025    case Decoration::AlignmentId: return "AlignmentId";
4026    case Decoration::MaxByteOffsetId: return "MaxByteOffsetId";
4027    case Decoration::SaturatedToLargestFloat8NormalConversionEXT: return "SaturatedToLargestFloat8NormalConversionEXT";
4028    case Decoration::NoSignedWrap: return "NoSignedWrap";
4029    case Decoration::NoUnsignedWrap: return "NoUnsignedWrap";
4030    case Decoration::WeightTextureQCOM: return "WeightTextureQCOM";
4031    case Decoration::BlockMatchTextureQCOM: return "BlockMatchTextureQCOM";
4032    case Decoration::BlockMatchSamplerQCOM: return "BlockMatchSamplerQCOM";
4033    case Decoration::ExplicitInterpAMD: return "ExplicitInterpAMD";
4034    case Decoration::NodeSharesPayloadLimitsWithAMDX: return "NodeSharesPayloadLimitsWithAMDX";
4035    case Decoration::NodeMaxPayloadsAMDX: return "NodeMaxPayloadsAMDX";
4036    case Decoration::TrackFinishWritingAMDX: return "TrackFinishWritingAMDX";
4037    case Decoration::PayloadNodeNameAMDX: return "PayloadNodeNameAMDX";
4038    case Decoration::PayloadNodeBaseIndexAMDX: return "PayloadNodeBaseIndexAMDX";
4039    case Decoration::PayloadNodeSparseArrayAMDX: return "PayloadNodeSparseArrayAMDX";
4040    case Decoration::PayloadNodeArraySizeAMDX: return "PayloadNodeArraySizeAMDX";
4041    case Decoration::PayloadDispatchIndirectAMDX: return "PayloadDispatchIndirectAMDX";
4042    case Decoration::ArrayStrideIdEXT: return "ArrayStrideIdEXT";
4043    case Decoration::OffsetIdEXT: return "OffsetIdEXT";
4044    case Decoration::UTFEncodedKHR: return "UTFEncodedKHR";
4045    case Decoration::OverrideCoverageNV: return "OverrideCoverageNV";
4046    case Decoration::PassthroughNV: return "PassthroughNV";
4047    case Decoration::ViewportRelativeNV: return "ViewportRelativeNV";
4048    case Decoration::SecondaryViewportRelativeNV: return "SecondaryViewportRelativeNV";
4049    case Decoration::PerPrimitiveEXT: return "PerPrimitiveEXT";
4050    case Decoration::PerViewNV: return "PerViewNV";
4051    case Decoration::PerTaskNV: return "PerTaskNV";
4052    case Decoration::PerVertexKHR: return "PerVertexKHR";
4053    case Decoration::NonUniform: return "NonUniform";
4054    case Decoration::RestrictPointer: return "RestrictPointer";
4055    case Decoration::AliasedPointer: return "AliasedPointer";
4056    case Decoration::MemberOffsetNV: return "MemberOffsetNV";
4057    case Decoration::HitObjectShaderRecordBufferNV: return "HitObjectShaderRecordBufferNV";
4058    case Decoration::HitObjectShaderRecordBufferEXT: return "HitObjectShaderRecordBufferEXT";
4059    case Decoration::BankNV: return "BankNV";
4060    case Decoration::BindlessSamplerNV: return "BindlessSamplerNV";
4061    case Decoration::BindlessImageNV: return "BindlessImageNV";
4062    case Decoration::BoundSamplerNV: return "BoundSamplerNV";
4063    case Decoration::BoundImageNV: return "BoundImageNV";
4064    case Decoration::CooperativeMatrixTransposeEXT: return "CooperativeMatrixTransposeEXT";
4065    case Decoration::SIMTCallINTEL: return "SIMTCallINTEL";
4066    case Decoration::ReferencedIndirectlyINTEL: return "ReferencedIndirectlyINTEL";
4067    case Decoration::ClobberINTEL: return "ClobberINTEL";
4068    case Decoration::SideEffectsINTEL: return "SideEffectsINTEL";
4069    case Decoration::VectorComputeVariableINTEL: return "VectorComputeVariableINTEL";
4070    case Decoration::FuncParamIOKindINTEL: return "FuncParamIOKindINTEL";
4071    case Decoration::VectorComputeFunctionINTEL: return "VectorComputeFunctionINTEL";
4072    case Decoration::StackCallINTEL: return "StackCallINTEL";
4073    case Decoration::GlobalVariableOffsetINTEL: return "GlobalVariableOffsetINTEL";
4074    case Decoration::CounterBuffer: return "CounterBuffer";
4075    case Decoration::HlslSemanticGOOGLE: return "HlslSemanticGOOGLE";
4076    case Decoration::UserTypeGOOGLE: return "UserTypeGOOGLE";
4077    case Decoration::FunctionRoundingModeINTEL: return "FunctionRoundingModeINTEL";
4078    case Decoration::FunctionDenormModeINTEL: return "FunctionDenormModeINTEL";
4079    case Decoration::RegisterALTERA: return "RegisterALTERA";
4080    case Decoration::MemoryALTERA: return "MemoryALTERA";
4081    case Decoration::NumbanksALTERA: return "NumbanksALTERA";
4082    case Decoration::BankwidthALTERA: return "BankwidthALTERA";
4083    case Decoration::MaxPrivateCopiesALTERA: return "MaxPrivateCopiesALTERA";
4084    case Decoration::SinglepumpALTERA: return "SinglepumpALTERA";
4085    case Decoration::DoublepumpALTERA: return "DoublepumpALTERA";
4086    case Decoration::MaxReplicatesALTERA: return "MaxReplicatesALTERA";
4087    case Decoration::SimpleDualPortALTERA: return "SimpleDualPortALTERA";
4088    case Decoration::MergeALTERA: return "MergeALTERA";
4089    case Decoration::BankBitsALTERA: return "BankBitsALTERA";
4090    case Decoration::ForcePow2DepthALTERA: return "ForcePow2DepthALTERA";
4091    case Decoration::StridesizeALTERA: return "StridesizeALTERA";
4092    case Decoration::WordsizeALTERA: return "WordsizeALTERA";
4093    case Decoration::TrueDualPortALTERA: return "TrueDualPortALTERA";
4094    case Decoration::BurstCoalesceALTERA: return "BurstCoalesceALTERA";
4095    case Decoration::CacheSizeALTERA: return "CacheSizeALTERA";
4096    case Decoration::DontStaticallyCoalesceALTERA: return "DontStaticallyCoalesceALTERA";
4097    case Decoration::PrefetchALTERA: return "PrefetchALTERA";
4098    case Decoration::StallEnableALTERA: return "StallEnableALTERA";
4099    case Decoration::FuseLoopsInFunctionALTERA: return "FuseLoopsInFunctionALTERA";
4100    case Decoration::MathOpDSPModeALTERA: return "MathOpDSPModeALTERA";
4101    case Decoration::AliasScopeINTEL: return "AliasScopeINTEL";
4102    case Decoration::NoAliasINTEL: return "NoAliasINTEL";
4103    case Decoration::InitiationIntervalALTERA: return "InitiationIntervalALTERA";
4104    case Decoration::MaxConcurrencyALTERA: return "MaxConcurrencyALTERA";
4105    case Decoration::PipelineEnableALTERA: return "PipelineEnableALTERA";
4106    case Decoration::BufferLocationALTERA: return "BufferLocationALTERA";
4107    case Decoration::IOPipeStorageALTERA: return "IOPipeStorageALTERA";
4108    case Decoration::FunctionFloatingPointModeINTEL: return "FunctionFloatingPointModeINTEL";
4109    case Decoration::SingleElementVectorINTEL: return "SingleElementVectorINTEL";
4110    case Decoration::VectorComputeCallableFunctionINTEL: return "VectorComputeCallableFunctionINTEL";
4111    case Decoration::MediaBlockIOINTEL: return "MediaBlockIOINTEL";
4112    case Decoration::StallFreeALTERA: return "StallFreeALTERA";
4113    case Decoration::FPMaxErrorDecorationINTEL: return "FPMaxErrorDecorationINTEL";
4114    case Decoration::LatencyControlLabelALTERA: return "LatencyControlLabelALTERA";
4115    case Decoration::LatencyControlConstraintALTERA: return "LatencyControlConstraintALTERA";
4116    case Decoration::ConduitKernelArgumentALTERA: return "ConduitKernelArgumentALTERA";
4117    case Decoration::RegisterMapKernelArgumentALTERA: return "RegisterMapKernelArgumentALTERA";
4118    case Decoration::MMHostInterfaceAddressWidthALTERA: return "MMHostInterfaceAddressWidthALTERA";
4119    case Decoration::MMHostInterfaceDataWidthALTERA: return "MMHostInterfaceDataWidthALTERA";
4120    case Decoration::MMHostInterfaceLatencyALTERA: return "MMHostInterfaceLatencyALTERA";
4121    case Decoration::MMHostInterfaceReadWriteModeALTERA: return "MMHostInterfaceReadWriteModeALTERA";
4122    case Decoration::MMHostInterfaceMaxBurstALTERA: return "MMHostInterfaceMaxBurstALTERA";
4123    case Decoration::MMHostInterfaceWaitRequestALTERA: return "MMHostInterfaceWaitRequestALTERA";
4124    case Decoration::StableKernelArgumentALTERA: return "StableKernelArgumentALTERA";
4125    case Decoration::HostAccessINTEL: return "HostAccessINTEL";
4126    case Decoration::InitModeALTERA: return "InitModeALTERA";
4127    case Decoration::ImplementInRegisterMapALTERA: return "ImplementInRegisterMapALTERA";
4128    case Decoration::ConditionalINTEL: return "ConditionalINTEL";
4129    case Decoration::CacheControlLoadINTEL: return "CacheControlLoadINTEL";
4130    case Decoration::CacheControlStoreINTEL: return "CacheControlStoreINTEL";
4131    case Decoration::IntrinsicSAMSUNG: return "IntrinsicSAMSUNG";
4132    default: return "Unknown";
4133    }
4134}
4135
4136inline const char* BuiltInToString(BuiltIn value) {
4137    switch (value) {
4138    case BuiltIn::Position: return "Position";
4139    case BuiltIn::PointSize: return "PointSize";
4140    case BuiltIn::ClipDistance: return "ClipDistance";
4141    case BuiltIn::CullDistance: return "CullDistance";
4142    case BuiltIn::VertexId: return "VertexId";
4143    case BuiltIn::InstanceId: return "InstanceId";
4144    case BuiltIn::PrimitiveId: return "PrimitiveId";
4145    case BuiltIn::InvocationId: return "InvocationId";
4146    case BuiltIn::Layer: return "Layer";
4147    case BuiltIn::ViewportIndex: return "ViewportIndex";
4148    case BuiltIn::TessLevelOuter: return "TessLevelOuter";
4149    case BuiltIn::TessLevelInner: return "TessLevelInner";
4150    case BuiltIn::TessCoord: return "TessCoord";
4151    case BuiltIn::PatchVertices: return "PatchVertices";
4152    case BuiltIn::FragCoord: return "FragCoord";
4153    case BuiltIn::PointCoord: return "PointCoord";
4154    case BuiltIn::FrontFacing: return "FrontFacing";
4155    case BuiltIn::SampleId: return "SampleId";
4156    case BuiltIn::SamplePosition: return "SamplePosition";
4157    case BuiltIn::SampleMask: return "SampleMask";
4158    case BuiltIn::FragDepth: return "FragDepth";
4159    case BuiltIn::HelperInvocation: return "HelperInvocation";
4160    case BuiltIn::NumWorkgroups: return "NumWorkgroups";
4161    case BuiltIn::WorkgroupSize: return "WorkgroupSize";
4162    case BuiltIn::WorkgroupId: return "WorkgroupId";
4163    case BuiltIn::LocalInvocationId: return "LocalInvocationId";
4164    case BuiltIn::GlobalInvocationId: return "GlobalInvocationId";
4165    case BuiltIn::LocalInvocationIndex: return "LocalInvocationIndex";
4166    case BuiltIn::WorkDim: return "WorkDim";
4167    case BuiltIn::GlobalSize: return "GlobalSize";
4168    case BuiltIn::EnqueuedWorkgroupSize: return "EnqueuedWorkgroupSize";
4169    case BuiltIn::GlobalOffset: return "GlobalOffset";
4170    case BuiltIn::GlobalLinearId: return "GlobalLinearId";
4171    case BuiltIn::SubgroupSize: return "SubgroupSize";
4172    case BuiltIn::SubgroupMaxSize: return "SubgroupMaxSize";
4173    case BuiltIn::NumSubgroups: return "NumSubgroups";
4174    case BuiltIn::NumEnqueuedSubgroups: return "NumEnqueuedSubgroups";
4175    case BuiltIn::SubgroupId: return "SubgroupId";
4176    case BuiltIn::SubgroupLocalInvocationId: return "SubgroupLocalInvocationId";
4177    case BuiltIn::VertexIndex: return "VertexIndex";
4178    case BuiltIn::InstanceIndex: return "InstanceIndex";
4179    case BuiltIn::CoreIDARM: return "CoreIDARM";
4180    case BuiltIn::CoreCountARM: return "CoreCountARM";
4181    case BuiltIn::CoreMaxIDARM: return "CoreMaxIDARM";
4182    case BuiltIn::WarpIDARM: return "WarpIDARM";
4183    case BuiltIn::WarpMaxIDARM: return "WarpMaxIDARM";
4184    case BuiltIn::SubgroupEqMask: return "SubgroupEqMask";
4185    case BuiltIn::SubgroupGeMask: return "SubgroupGeMask";
4186    case BuiltIn::SubgroupGtMask: return "SubgroupGtMask";
4187    case BuiltIn::SubgroupLeMask: return "SubgroupLeMask";
4188    case BuiltIn::SubgroupLtMask: return "SubgroupLtMask";
4189    case BuiltIn::BaseVertex: return "BaseVertex";
4190    case BuiltIn::BaseInstance: return "BaseInstance";
4191    case BuiltIn::DrawIndex: return "DrawIndex";
4192    case BuiltIn::PrimitiveShadingRateKHR: return "PrimitiveShadingRateKHR";
4193    case BuiltIn::DeviceIndex: return "DeviceIndex";
4194    case BuiltIn::ViewIndex: return "ViewIndex";
4195    case BuiltIn::ShadingRateKHR: return "ShadingRateKHR";
4196    case BuiltIn::TileOffsetQCOM: return "TileOffsetQCOM";
4197    case BuiltIn::TileDimensionQCOM: return "TileDimensionQCOM";
4198    case BuiltIn::TileApronSizeQCOM: return "TileApronSizeQCOM";
4199    case BuiltIn::BaryCoordNoPerspAMD: return "BaryCoordNoPerspAMD";
4200    case BuiltIn::BaryCoordNoPerspCentroidAMD: return "BaryCoordNoPerspCentroidAMD";
4201    case BuiltIn::BaryCoordNoPerspSampleAMD: return "BaryCoordNoPerspSampleAMD";
4202    case BuiltIn::BaryCoordSmoothAMD: return "BaryCoordSmoothAMD";
4203    case BuiltIn::BaryCoordSmoothCentroidAMD: return "BaryCoordSmoothCentroidAMD";
4204    case BuiltIn::BaryCoordSmoothSampleAMD: return "BaryCoordSmoothSampleAMD";
4205    case BuiltIn::BaryCoordPullModelAMD: return "BaryCoordPullModelAMD";
4206    case BuiltIn::FragStencilRefEXT: return "FragStencilRefEXT";
4207    case BuiltIn::RemainingRecursionLevelsAMDX: return "RemainingRecursionLevelsAMDX";
4208    case BuiltIn::ShaderIndexAMDX: return "ShaderIndexAMDX";
4209    case BuiltIn::SamplerHeapEXT: return "SamplerHeapEXT";
4210    case BuiltIn::ResourceHeapEXT: return "ResourceHeapEXT";
4211    case BuiltIn::ViewportMaskNV: return "ViewportMaskNV";
4212    case BuiltIn::SecondaryPositionNV: return "SecondaryPositionNV";
4213    case BuiltIn::SecondaryViewportMaskNV: return "SecondaryViewportMaskNV";
4214    case BuiltIn::PositionPerViewNV: return "PositionPerViewNV";
4215    case BuiltIn::ViewportMaskPerViewNV: return "ViewportMaskPerViewNV";
4216    case BuiltIn::FullyCoveredEXT: return "FullyCoveredEXT";
4217    case BuiltIn::TaskCountNV: return "TaskCountNV";
4218    case BuiltIn::PrimitiveCountNV: return "PrimitiveCountNV";
4219    case BuiltIn::PrimitiveIndicesNV: return "PrimitiveIndicesNV";
4220    case BuiltIn::ClipDistancePerViewNV: return "ClipDistancePerViewNV";
4221    case BuiltIn::CullDistancePerViewNV: return "CullDistancePerViewNV";
4222    case BuiltIn::LayerPerViewNV: return "LayerPerViewNV";
4223    case BuiltIn::MeshViewCountNV: return "MeshViewCountNV";
4224    case BuiltIn::MeshViewIndicesNV: return "MeshViewIndicesNV";
4225    case BuiltIn::BaryCoordKHR: return "BaryCoordKHR";
4226    case BuiltIn::BaryCoordNoPerspKHR: return "BaryCoordNoPerspKHR";
4227    case BuiltIn::FragSizeEXT: return "FragSizeEXT";
4228    case BuiltIn::FragInvocationCountEXT: return "FragInvocationCountEXT";
4229    case BuiltIn::PrimitivePointIndicesEXT: return "PrimitivePointIndicesEXT";
4230    case BuiltIn::PrimitiveLineIndicesEXT: return "PrimitiveLineIndicesEXT";
4231    case BuiltIn::PrimitiveTriangleIndicesEXT: return "PrimitiveTriangleIndicesEXT";
4232    case BuiltIn::CullPrimitiveEXT: return "CullPrimitiveEXT";
4233    case BuiltIn::LaunchIdKHR: return "LaunchIdKHR";
4234    case BuiltIn::LaunchSizeKHR: return "LaunchSizeKHR";
4235    case BuiltIn::WorldRayOriginKHR: return "WorldRayOriginKHR";
4236    case BuiltIn::WorldRayDirectionKHR: return "WorldRayDirectionKHR";
4237    case BuiltIn::ObjectRayOriginKHR: return "ObjectRayOriginKHR";
4238    case BuiltIn::ObjectRayDirectionKHR: return "ObjectRayDirectionKHR";
4239    case BuiltIn::RayTminKHR: return "RayTminKHR";
4240    case BuiltIn::RayTmaxKHR: return "RayTmaxKHR";
4241    case BuiltIn::InstanceCustomIndexKHR: return "InstanceCustomIndexKHR";
4242    case BuiltIn::ObjectToWorldKHR: return "ObjectToWorldKHR";
4243    case BuiltIn::WorldToObjectKHR: return "WorldToObjectKHR";
4244    case BuiltIn::HitTNV: return "HitTNV";
4245    case BuiltIn::HitKindKHR: return "HitKindKHR";
4246    case BuiltIn::CurrentRayTimeNV: return "CurrentRayTimeNV";
4247    case BuiltIn::HitTriangleVertexPositionsKHR: return "HitTriangleVertexPositionsKHR";
4248    case BuiltIn::HitMicroTriangleVertexPositionsNV: return "HitMicroTriangleVertexPositionsNV";
4249    case BuiltIn::HitMicroTriangleVertexBarycentricsNV: return "HitMicroTriangleVertexBarycentricsNV";
4250    case BuiltIn::IncomingRayFlagsKHR: return "IncomingRayFlagsKHR";
4251    case BuiltIn::RayGeometryIndexKHR: return "RayGeometryIndexKHR";
4252    case BuiltIn::HitIsSphereNV: return "HitIsSphereNV";
4253    case BuiltIn::HitIsLSSNV: return "HitIsLSSNV";
4254    case BuiltIn::HitSpherePositionNV: return "HitSpherePositionNV";
4255    case BuiltIn::WarpsPerSMNV: return "WarpsPerSMNV";
4256    case BuiltIn::SMCountNV: return "SMCountNV";
4257    case BuiltIn::WarpIDNV: return "WarpIDNV";
4258    case BuiltIn::SMIDNV: return "SMIDNV";
4259    case BuiltIn::HitLSSPositionsNV: return "HitLSSPositionsNV";
4260    case BuiltIn::HitKindFrontFacingMicroTriangleNV: return "HitKindFrontFacingMicroTriangleNV";
4261    case BuiltIn::HitKindBackFacingMicroTriangleNV: return "HitKindBackFacingMicroTriangleNV";
4262    case BuiltIn::HitSphereRadiusNV: return "HitSphereRadiusNV";
4263    case BuiltIn::HitLSSRadiiNV: return "HitLSSRadiiNV";
4264    case BuiltIn::ClusterIDNV: return "ClusterIDNV";
4265    case BuiltIn::CullMaskKHR: return "CullMaskKHR";
4266    default: return "Unknown";
4267    }
4268}
4269
4270inline const char* ScopeToString(Scope value) {
4271    switch (value) {
4272    case Scope::CrossDevice: return "CrossDevice";
4273    case Scope::Device: return "Device";
4274    case Scope::Workgroup: return "Workgroup";
4275    case Scope::Subgroup: return "Subgroup";
4276    case Scope::Invocation: return "Invocation";
4277    case Scope::QueueFamily: return "QueueFamily";
4278    case Scope::ShaderCallKHR: return "ShaderCallKHR";
4279    default: return "Unknown";
4280    }
4281}
4282
4283inline const char* GroupOperationToString(GroupOperation value) {
4284    switch (value) {
4285    case GroupOperation::Reduce: return "Reduce";
4286    case GroupOperation::InclusiveScan: return "InclusiveScan";
4287    case GroupOperation::ExclusiveScan: return "ExclusiveScan";
4288    case GroupOperation::ClusteredReduce: return "ClusteredReduce";
4289    case GroupOperation::PartitionedReduceEXT: return "PartitionedReduceEXT";
4290    case GroupOperation::PartitionedInclusiveScanEXT: return "PartitionedInclusiveScanEXT";
4291    case GroupOperation::PartitionedExclusiveScanEXT: return "PartitionedExclusiveScanEXT";
4292    default: return "Unknown";
4293    }
4294}
4295
4296inline const char* KernelEnqueueFlagsToString(KernelEnqueueFlags value) {
4297    switch (value) {
4298    case KernelEnqueueFlags::NoWait: return "NoWait";
4299    case KernelEnqueueFlags::WaitKernel: return "WaitKernel";
4300    case KernelEnqueueFlags::WaitWorkGroup: return "WaitWorkGroup";
4301    default: return "Unknown";
4302    }
4303}
4304
4305inline const char* CapabilityToString(Capability value) {
4306    switch (value) {
4307    case Capability::Matrix: return "Matrix";
4308    case Capability::Shader: return "Shader";
4309    case Capability::Geometry: return "Geometry";
4310    case Capability::Tessellation: return "Tessellation";
4311    case Capability::Addresses: return "Addresses";
4312    case Capability::Linkage: return "Linkage";
4313    case Capability::Kernel: return "Kernel";
4314    case Capability::Vector16: return "Vector16";
4315    case Capability::Float16Buffer: return "Float16Buffer";
4316    case Capability::Float16: return "Float16";
4317    case Capability::Float64: return "Float64";
4318    case Capability::Int64: return "Int64";
4319    case Capability::Int64Atomics: return "Int64Atomics";
4320    case Capability::ImageBasic: return "ImageBasic";
4321    case Capability::ImageReadWrite: return "ImageReadWrite";
4322    case Capability::ImageMipmap: return "ImageMipmap";
4323    case Capability::Pipes: return "Pipes";
4324    case Capability::Groups: return "Groups";
4325    case Capability::DeviceEnqueue: return "DeviceEnqueue";
4326    case Capability::LiteralSampler: return "LiteralSampler";
4327    case Capability::AtomicStorage: return "AtomicStorage";
4328    case Capability::Int16: return "Int16";
4329    case Capability::TessellationPointSize: return "TessellationPointSize";
4330    case Capability::GeometryPointSize: return "GeometryPointSize";
4331    case Capability::ImageGatherExtended: return "ImageGatherExtended";
4332    case Capability::StorageImageMultisample: return "StorageImageMultisample";
4333    case Capability::UniformBufferArrayDynamicIndexing: return "UniformBufferArrayDynamicIndexing";
4334    case Capability::SampledImageArrayDynamicIndexing: return "SampledImageArrayDynamicIndexing";
4335    case Capability::StorageBufferArrayDynamicIndexing: return "StorageBufferArrayDynamicIndexing";
4336    case Capability::StorageImageArrayDynamicIndexing: return "StorageImageArrayDynamicIndexing";
4337    case Capability::ClipDistance: return "ClipDistance";
4338    case Capability::CullDistance: return "CullDistance";
4339    case Capability::ImageCubeArray: return "ImageCubeArray";
4340    case Capability::SampleRateShading: return "SampleRateShading";
4341    case Capability::ImageRect: return "ImageRect";
4342    case Capability::SampledRect: return "SampledRect";
4343    case Capability::GenericPointer: return "GenericPointer";
4344    case Capability::Int8: return "Int8";
4345    case Capability::InputAttachment: return "InputAttachment";
4346    case Capability::SparseResidency: return "SparseResidency";
4347    case Capability::MinLod: return "MinLod";
4348    case Capability::Sampled1D: return "Sampled1D";
4349    case Capability::Image1D: return "Image1D";
4350    case Capability::SampledCubeArray: return "SampledCubeArray";
4351    case Capability::SampledBuffer: return "SampledBuffer";
4352    case Capability::ImageBuffer: return "ImageBuffer";
4353    case Capability::ImageMSArray: return "ImageMSArray";
4354    case Capability::StorageImageExtendedFormats: return "StorageImageExtendedFormats";
4355    case Capability::ImageQuery: return "ImageQuery";
4356    case Capability::DerivativeControl: return "DerivativeControl";
4357    case Capability::InterpolationFunction: return "InterpolationFunction";
4358    case Capability::TransformFeedback: return "TransformFeedback";
4359    case Capability::GeometryStreams: return "GeometryStreams";
4360    case Capability::StorageImageReadWithoutFormat: return "StorageImageReadWithoutFormat";
4361    case Capability::StorageImageWriteWithoutFormat: return "StorageImageWriteWithoutFormat";
4362    case Capability::MultiViewport: return "MultiViewport";
4363    case Capability::SubgroupDispatch: return "SubgroupDispatch";
4364    case Capability::NamedBarrier: return "NamedBarrier";
4365    case Capability::PipeStorage: return "PipeStorage";
4366    case Capability::GroupNonUniform: return "GroupNonUniform";
4367    case Capability::GroupNonUniformVote: return "GroupNonUniformVote";
4368    case Capability::GroupNonUniformArithmetic: return "GroupNonUniformArithmetic";
4369    case Capability::GroupNonUniformBallot: return "GroupNonUniformBallot";
4370    case Capability::GroupNonUniformShuffle: return "GroupNonUniformShuffle";
4371    case Capability::GroupNonUniformShuffleRelative: return "GroupNonUniformShuffleRelative";
4372    case Capability::GroupNonUniformClustered: return "GroupNonUniformClustered";
4373    case Capability::GroupNonUniformQuad: return "GroupNonUniformQuad";
4374    case Capability::ShaderLayer: return "ShaderLayer";
4375    case Capability::ShaderViewportIndex: return "ShaderViewportIndex";
4376    case Capability::UniformDecoration: return "UniformDecoration";
4377    case Capability::CoreBuiltinsARM: return "CoreBuiltinsARM";
4378    case Capability::TileImageColorReadAccessEXT: return "TileImageColorReadAccessEXT";
4379    case Capability::TileImageDepthReadAccessEXT: return "TileImageDepthReadAccessEXT";
4380    case Capability::TileImageStencilReadAccessEXT: return "TileImageStencilReadAccessEXT";
4381    case Capability::TensorsARM: return "TensorsARM";
4382    case Capability::StorageTensorArrayDynamicIndexingARM: return "StorageTensorArrayDynamicIndexingARM";
4383    case Capability::StorageTensorArrayNonUniformIndexingARM: return "StorageTensorArrayNonUniformIndexingARM";
4384    case Capability::GraphARM: return "GraphARM";
4385    case Capability::CooperativeMatrixLayoutsARM: return "CooperativeMatrixLayoutsARM";
4386    case Capability::Float8EXT: return "Float8EXT";
4387    case Capability::Float8CooperativeMatrixEXT: return "Float8CooperativeMatrixEXT";
4388    case Capability::Float6EXT: return "Float6EXT";
4389    case Capability::Float4EXT: return "Float4EXT";
4390    case Capability::Float8UnsignedE8M0EXT: return "Float8UnsignedE8M0EXT";
4391    case Capability::MXInt8EXT: return "MXInt8EXT";
4392    case Capability::BitcastExtractEXT: return "BitcastExtractEXT";
4393    case Capability::FragmentShadingRateKHR: return "FragmentShadingRateKHR";
4394    case Capability::SubgroupBallotKHR: return "SubgroupBallotKHR";
4395    case Capability::DrawParameters: return "DrawParameters";
4396    case Capability::WorkgroupMemoryExplicitLayoutKHR: return "WorkgroupMemoryExplicitLayoutKHR";
4397    case Capability::WorkgroupMemoryExplicitLayout8BitAccessKHR: return "WorkgroupMemoryExplicitLayout8BitAccessKHR";
4398    case Capability::WorkgroupMemoryExplicitLayout16BitAccessKHR: return "WorkgroupMemoryExplicitLayout16BitAccessKHR";
4399    case Capability::SubgroupVoteKHR: return "SubgroupVoteKHR";
4400    case Capability::StorageBuffer16BitAccess: return "StorageBuffer16BitAccess";
4401    case Capability::StorageUniform16: return "StorageUniform16";
4402    case Capability::StoragePushConstant16: return "StoragePushConstant16";
4403    case Capability::StorageInputOutput16: return "StorageInputOutput16";
4404    case Capability::DeviceGroup: return "DeviceGroup";
4405    case Capability::MultiView: return "MultiView";
4406    case Capability::VariablePointersStorageBuffer: return "VariablePointersStorageBuffer";
4407    case Capability::VariablePointers: return "VariablePointers";
4408    case Capability::AtomicStorageOps: return "AtomicStorageOps";
4409    case Capability::SampleMaskPostDepthCoverage: return "SampleMaskPostDepthCoverage";
4410    case Capability::StorageBuffer8BitAccess: return "StorageBuffer8BitAccess";
4411    case Capability::UniformAndStorageBuffer8BitAccess: return "UniformAndStorageBuffer8BitAccess";
4412    case Capability::StoragePushConstant8: return "StoragePushConstant8";
4413    case Capability::DenormPreserve: return "DenormPreserve";
4414    case Capability::DenormFlushToZero: return "DenormFlushToZero";
4415    case Capability::SignedZeroInfNanPreserve: return "SignedZeroInfNanPreserve";
4416    case Capability::RoundingModeRTE: return "RoundingModeRTE";
4417    case Capability::RoundingModeRTZ: return "RoundingModeRTZ";
4418    case Capability::RayQueryProvisionalKHR: return "RayQueryProvisionalKHR";
4419    case Capability::RayQueryKHR: return "RayQueryKHR";
4420    case Capability::UntypedPointersKHR: return "UntypedPointersKHR";
4421    case Capability::RayTraversalPrimitiveCullingKHR: return "RayTraversalPrimitiveCullingKHR";
4422    case Capability::RayTracingKHR: return "RayTracingKHR";
4423    case Capability::TextureSampleWeightedQCOM: return "TextureSampleWeightedQCOM";
4424    case Capability::TextureBoxFilterQCOM: return "TextureBoxFilterQCOM";
4425    case Capability::TextureBlockMatchQCOM: return "TextureBlockMatchQCOM";
4426    case Capability::TileShadingQCOM: return "TileShadingQCOM";
4427    case Capability::CooperativeMatrixConversionQCOM: return "CooperativeMatrixConversionQCOM";
4428    case Capability::TextureBlockMatch2QCOM: return "TextureBlockMatch2QCOM";
4429    case Capability::MultipleWaitQueuesQCOM: return "MultipleWaitQueuesQCOM";
4430    case Capability::ImageGatherLinearQCOM: return "ImageGatherLinearQCOM";
4431    case Capability::ImageGatherExtendedModesQCOM: return "ImageGatherExtendedModesQCOM";
4432    case Capability::Float16ImageAMD: return "Float16ImageAMD";
4433    case Capability::ImageGatherBiasLodAMD: return "ImageGatherBiasLodAMD";
4434    case Capability::FragmentMaskAMD: return "FragmentMaskAMD";
4435    case Capability::StencilExportEXT: return "StencilExportEXT";
4436    case Capability::ImageReadWriteLodAMD: return "ImageReadWriteLodAMD";
4437    case Capability::Int64ImageEXT: return "Int64ImageEXT";
4438    case Capability::ShaderClockKHR: return "ShaderClockKHR";
4439    case Capability::ShaderEnqueueAMDX: return "ShaderEnqueueAMDX";
4440    case Capability::QuadControlKHR: return "QuadControlKHR";
4441    case Capability::Int4TypeINTEL: return "Int4TypeINTEL";
4442    case Capability::Int4CooperativeMatrixINTEL: return "Int4CooperativeMatrixINTEL";
4443    case Capability::BFloat16TypeKHR: return "BFloat16TypeKHR";
4444    case Capability::BFloat16DotProductKHR: return "BFloat16DotProductKHR";
4445    case Capability::BFloat16CooperativeMatrixKHR: return "BFloat16CooperativeMatrixKHR";
4446    case Capability::AbortKHR: return "AbortKHR";
4447    case Capability::DescriptorHeapEXT: return "DescriptorHeapEXT";
4448    case Capability::ConstantDataKHR: return "ConstantDataKHR";
4449    case Capability::PoisonFreezeKHR: return "PoisonFreezeKHR";
4450    case Capability::WeakLinkageAMD: return "WeakLinkageAMD";
4451    case Capability::SampleMaskOverrideCoverageNV: return "SampleMaskOverrideCoverageNV";
4452    case Capability::GeometryShaderPassthroughNV: return "GeometryShaderPassthroughNV";
4453    case Capability::ShaderViewportIndexLayerEXT: return "ShaderViewportIndexLayerEXT";
4454    case Capability::ShaderViewportMaskNV: return "ShaderViewportMaskNV";
4455    case Capability::ShaderStereoViewNV: return "ShaderStereoViewNV";
4456    case Capability::PerViewAttributesNV: return "PerViewAttributesNV";
4457    case Capability::FragmentFullyCoveredEXT: return "FragmentFullyCoveredEXT";
4458    case Capability::MeshShadingNV: return "MeshShadingNV";
4459    case Capability::ImageFootprintNV: return "ImageFootprintNV";
4460    case Capability::MeshShadingEXT: return "MeshShadingEXT";
4461    case Capability::FragmentBarycentricKHR: return "FragmentBarycentricKHR";
4462    case Capability::ComputeDerivativeGroupQuadsKHR: return "ComputeDerivativeGroupQuadsKHR";
4463    case Capability::FragmentDensityEXT: return "FragmentDensityEXT";
4464    case Capability::GroupNonUniformPartitionedEXT: return "GroupNonUniformPartitionedEXT";
4465    case Capability::ShaderNonUniform: return "ShaderNonUniform";
4466    case Capability::RuntimeDescriptorArray: return "RuntimeDescriptorArray";
4467    case Capability::InputAttachmentArrayDynamicIndexing: return "InputAttachmentArrayDynamicIndexing";
4468    case Capability::UniformTexelBufferArrayDynamicIndexing: return "UniformTexelBufferArrayDynamicIndexing";
4469    case Capability::StorageTexelBufferArrayDynamicIndexing: return "StorageTexelBufferArrayDynamicIndexing";
4470    case Capability::UniformBufferArrayNonUniformIndexing: return "UniformBufferArrayNonUniformIndexing";
4471    case Capability::SampledImageArrayNonUniformIndexing: return "SampledImageArrayNonUniformIndexing";
4472    case Capability::StorageBufferArrayNonUniformIndexing: return "StorageBufferArrayNonUniformIndexing";
4473    case Capability::StorageImageArrayNonUniformIndexing: return "StorageImageArrayNonUniformIndexing";
4474    case Capability::InputAttachmentArrayNonUniformIndexing: return "InputAttachmentArrayNonUniformIndexing";
4475    case Capability::UniformTexelBufferArrayNonUniformIndexing: return "UniformTexelBufferArrayNonUniformIndexing";
4476    case Capability::StorageTexelBufferArrayNonUniformIndexing: return "StorageTexelBufferArrayNonUniformIndexing";
4477    case Capability::RayTracingPositionFetchKHR: return "RayTracingPositionFetchKHR";
4478    case Capability::RayTracingNV: return "RayTracingNV";
4479    case Capability::RayTracingMotionBlurNV: return "RayTracingMotionBlurNV";
4480    case Capability::VulkanMemoryModel: return "VulkanMemoryModel";
4481    case Capability::VulkanMemoryModelDeviceScope: return "VulkanMemoryModelDeviceScope";
4482    case Capability::PhysicalStorageBufferAddresses: return "PhysicalStorageBufferAddresses";
4483    case Capability::ComputeDerivativeGroupLinearKHR: return "ComputeDerivativeGroupLinearKHR";
4484    case Capability::RayTracingProvisionalKHR: return "RayTracingProvisionalKHR";
4485    case Capability::CooperativeMatrixNV: return "CooperativeMatrixNV";
4486    case Capability::FragmentShaderSampleInterlockEXT: return "FragmentShaderSampleInterlockEXT";
4487    case Capability::FragmentShaderShadingRateInterlockEXT: return "FragmentShaderShadingRateInterlockEXT";
4488    case Capability::ShaderSMBuiltinsNV: return "ShaderSMBuiltinsNV";
4489    case Capability::FragmentShaderPixelInterlockEXT: return "FragmentShaderPixelInterlockEXT";
4490    case Capability::DemoteToHelperInvocation: return "DemoteToHelperInvocation";
4491    case Capability::DisplacementMicromapNV: return "DisplacementMicromapNV";
4492    case Capability::RayTracingOpacityMicromapEXT: return "RayTracingOpacityMicromapEXT";
4493    case Capability::ShaderInvocationReorderNV: return "ShaderInvocationReorderNV";
4494    case Capability::ShaderInvocationReorderEXT: return "ShaderInvocationReorderEXT";
4495    case Capability::BindlessTextureNV: return "BindlessTextureNV";
4496    case Capability::RayQueryPositionFetchKHR: return "RayQueryPositionFetchKHR";
4497    case Capability::CooperativeVectorNV: return "CooperativeVectorNV";
4498    case Capability::AtomicFloat16VectorNV: return "AtomicFloat16VectorNV";
4499    case Capability::RayTracingDisplacementMicromapNV: return "RayTracingDisplacementMicromapNV";
4500    case Capability::RawAccessChainsNV: return "RawAccessChainsNV";
4501    case Capability::RayTracingSpheresGeometryNV: return "RayTracingSpheresGeometryNV";
4502    case Capability::RayTracingLinearSweptSpheresGeometryNV: return "RayTracingLinearSweptSpheresGeometryNV";
4503    case Capability::PushConstantBanksNV: return "PushConstantBanksNV";
4504    case Capability::LongVectorEXT: return "LongVectorEXT";
4505    case Capability::Shader64BitIndexingEXT: return "Shader64BitIndexingEXT";
4506    case Capability::CooperativeMatrixConversionsEXT: return "CooperativeMatrixConversionsEXT";
4507    case Capability::CooperativeMatrixReductionsEXT: return "CooperativeMatrixReductionsEXT";
4508    case Capability::CooperativeMatrixConversionsNV: return "CooperativeMatrixConversionsNV";
4509    case Capability::CooperativeMatrixPerElementOperationsEXT: return "CooperativeMatrixPerElementOperationsEXT";
4510    case Capability::CooperativeMatrixTensorAddressingNV: return "CooperativeMatrixTensorAddressingNV";
4511    case Capability::CooperativeMatrixBlockLoadsNV: return "CooperativeMatrixBlockLoadsNV";
4512    case Capability::CooperativeVectorTrainingNV: return "CooperativeVectorTrainingNV";
4513    case Capability::RayTracingClusterAccelerationStructureNV: return "RayTracingClusterAccelerationStructureNV";
4514    case Capability::CooperativeMatrixGetCoordinateEXT: return "CooperativeMatrixGetCoordinateEXT";
4515    case Capability::TensorAddressingNV: return "TensorAddressingNV";
4516    case Capability::CooperativeMatrixDecodeVectorNV: return "CooperativeMatrixDecodeVectorNV";
4517    case Capability::SubgroupShuffleINTEL: return "SubgroupShuffleINTEL";
4518    case Capability::SubgroupBufferBlockIOINTEL: return "SubgroupBufferBlockIOINTEL";
4519    case Capability::SubgroupImageBlockIOINTEL: return "SubgroupImageBlockIOINTEL";
4520    case Capability::SubgroupImageMediaBlockIOINTEL: return "SubgroupImageMediaBlockIOINTEL";
4521    case Capability::RoundToInfinityINTEL: return "RoundToInfinityINTEL";
4522    case Capability::FloatingPointModeINTEL: return "FloatingPointModeINTEL";
4523    case Capability::IntegerFunctions2INTEL: return "IntegerFunctions2INTEL";
4524    case Capability::FunctionPointersINTEL: return "FunctionPointersINTEL";
4525    case Capability::IndirectReferencesINTEL: return "IndirectReferencesINTEL";
4526    case Capability::AsmINTEL: return "AsmINTEL";
4527    case Capability::AtomicFloat32MinMaxEXT: return "AtomicFloat32MinMaxEXT";
4528    case Capability::AtomicFloat64MinMaxEXT: return "AtomicFloat64MinMaxEXT";
4529    case Capability::AtomicFloat16MinMaxEXT: return "AtomicFloat16MinMaxEXT";
4530    case Capability::VectorComputeINTEL: return "VectorComputeINTEL";
4531    case Capability::VectorAnyINTEL: return "VectorAnyINTEL";
4532    case Capability::ExpectAssumeKHR: return "ExpectAssumeKHR";
4533    case Capability::SubgroupAvcMotionEstimationINTEL: return "SubgroupAvcMotionEstimationINTEL";
4534    case Capability::SubgroupAvcMotionEstimationIntraINTEL: return "SubgroupAvcMotionEstimationIntraINTEL";
4535    case Capability::SubgroupAvcMotionEstimationChromaINTEL: return "SubgroupAvcMotionEstimationChromaINTEL";
4536    case Capability::VariableLengthArrayINTEL: return "VariableLengthArrayINTEL";
4537    case Capability::FunctionFloatControlINTEL: return "FunctionFloatControlINTEL";
4538    case Capability::FPGAMemoryAttributesALTERA: return "FPGAMemoryAttributesALTERA";
4539    case Capability::FPFastMathModeINTEL: return "FPFastMathModeINTEL";
4540    case Capability::ArbitraryPrecisionIntegersALTERA: return "ArbitraryPrecisionIntegersALTERA";
4541    case Capability::ArbitraryPrecisionFloatingPointALTERA: return "ArbitraryPrecisionFloatingPointALTERA";
4542    case Capability::UnstructuredLoopControlsINTEL: return "UnstructuredLoopControlsINTEL";
4543    case Capability::FPGALoopControlsALTERA: return "FPGALoopControlsALTERA";
4544    case Capability::KernelAttributesINTEL: return "KernelAttributesINTEL";
4545    case Capability::FPGAKernelAttributesINTEL: return "FPGAKernelAttributesINTEL";
4546    case Capability::FPGAMemoryAccessesALTERA: return "FPGAMemoryAccessesALTERA";
4547    case Capability::FPGAClusterAttributesALTERA: return "FPGAClusterAttributesALTERA";
4548    case Capability::LoopFuseALTERA: return "LoopFuseALTERA";
4549    case Capability::FPGADSPControlALTERA: return "FPGADSPControlALTERA";
4550    case Capability::MemoryAccessAliasingINTEL: return "MemoryAccessAliasingINTEL";
4551    case Capability::FPGAInvocationPipeliningAttributesALTERA: return "FPGAInvocationPipeliningAttributesALTERA";
4552    case Capability::FPGABufferLocationALTERA: return "FPGABufferLocationALTERA";
4553    case Capability::ArbitraryPrecisionFixedPointALTERA: return "ArbitraryPrecisionFixedPointALTERA";
4554    case Capability::USMStorageClassesALTERA: return "USMStorageClassesALTERA";
4555    case Capability::RuntimeAlignedAttributeALTERA: return "RuntimeAlignedAttributeALTERA";
4556    case Capability::IOPipesALTERA: return "IOPipesALTERA";
4557    case Capability::BlockingPipesALTERA: return "BlockingPipesALTERA";
4558    case Capability::FPGARegALTERA: return "FPGARegALTERA";
4559    case Capability::DotProductInputAll: return "DotProductInputAll";
4560    case Capability::DotProductInput4x8Bit: return "DotProductInput4x8Bit";
4561    case Capability::DotProductInput4x8BitPacked: return "DotProductInput4x8BitPacked";
4562    case Capability::DotProduct: return "DotProduct";
4563    case Capability::RayCullMaskKHR: return "RayCullMaskKHR";
4564    case Capability::CooperativeMatrixKHR: return "CooperativeMatrixKHR";
4565    case Capability::ReplicatedCompositesEXT: return "ReplicatedCompositesEXT";
4566    case Capability::BitInstructions: return "BitInstructions";
4567    case Capability::GroupNonUniformRotateKHR: return "GroupNonUniformRotateKHR";
4568    case Capability::FloatControls2: return "FloatControls2";
4569    case Capability::FMAKHR: return "FMAKHR";
4570    case Capability::RayTracingOpacityMicromapExecutionModeKHR: return "RayTracingOpacityMicromapExecutionModeKHR";
4571    case Capability::AtomicFloat32AddEXT: return "AtomicFloat32AddEXT";
4572    case Capability::AtomicFloat64AddEXT: return "AtomicFloat64AddEXT";
4573    case Capability::LongCompositesINTEL: return "LongCompositesINTEL";
4574    case Capability::OptNoneEXT: return "OptNoneEXT";
4575    case Capability::AtomicFloat16AddEXT: return "AtomicFloat16AddEXT";
4576    case Capability::DebugInfoModuleINTEL: return "DebugInfoModuleINTEL";
4577    case Capability::BFloat16ConversionINTEL: return "BFloat16ConversionINTEL";
4578    case Capability::SplitBarrierEXT: return "SplitBarrierEXT";
4579    case Capability::ArithmeticFenceEXT: return "ArithmeticFenceEXT";
4580    case Capability::FPGAClusterAttributesV2ALTERA: return "FPGAClusterAttributesV2ALTERA";
4581    case Capability::FPGAKernelAttributesv2INTEL: return "FPGAKernelAttributesv2INTEL";
4582    case Capability::TaskSequenceALTERA: return "TaskSequenceALTERA";
4583    case Capability::FPMaxErrorINTEL: return "FPMaxErrorINTEL";
4584    case Capability::FPGALatencyControlALTERA: return "FPGALatencyControlALTERA";
4585    case Capability::FPGAArgumentInterfacesALTERA: return "FPGAArgumentInterfacesALTERA";
4586    case Capability::GlobalVariableHostAccessINTEL: return "GlobalVariableHostAccessINTEL";
4587    case Capability::GlobalVariableFPGADecorationsALTERA: return "GlobalVariableFPGADecorationsALTERA";
4588    case Capability::SubgroupBufferPrefetchINTEL: return "SubgroupBufferPrefetchINTEL";
4589    case Capability::Subgroup2DBlockIOINTEL: return "Subgroup2DBlockIOINTEL";
4590    case Capability::Subgroup2DBlockTransformINTEL: return "Subgroup2DBlockTransformINTEL";
4591    case Capability::Subgroup2DBlockTransposeINTEL: return "Subgroup2DBlockTransposeINTEL";
4592    case Capability::SubgroupMatrixMultiplyAccumulateINTEL: return "SubgroupMatrixMultiplyAccumulateINTEL";
4593    case Capability::TernaryBitwiseFunctionINTEL: return "TernaryBitwiseFunctionINTEL";
4594    case Capability::UntypedVariableLengthArrayINTEL: return "UntypedVariableLengthArrayINTEL";
4595    case Capability::SpecConditionalINTEL: return "SpecConditionalINTEL";
4596    case Capability::FunctionVariantsINTEL: return "FunctionVariantsINTEL";
4597    case Capability::PredicatedIOINTEL: return "PredicatedIOINTEL";
4598    case Capability::RoundedDivideSqrtINTEL: return "RoundedDivideSqrtINTEL";
4599    case Capability::GroupUniformArithmeticKHR: return "GroupUniformArithmeticKHR";
4600    case Capability::TensorFloat32RoundingINTEL: return "TensorFloat32RoundingINTEL";
4601    case Capability::MaskedGatherScatterINTEL: return "MaskedGatherScatterINTEL";
4602    case Capability::CacheControlsINTEL: return "CacheControlsINTEL";
4603    case Capability::RegisterLimitsINTEL: return "RegisterLimitsINTEL";
4604    case Capability::BindlessImagesINTEL: return "BindlessImagesINTEL";
4605    case Capability::DotProductFloat16AccFloat32VALVE: return "DotProductFloat16AccFloat32VALVE";
4606    case Capability::DotProductFloat16AccFloat16VALVE: return "DotProductFloat16AccFloat16VALVE";
4607    case Capability::DotProductBFloat16AccVALVE: return "DotProductBFloat16AccVALVE";
4608    case Capability::DotProductFloat8AccFloat32VALVE: return "DotProductFloat8AccFloat32VALVE";
4609    case Capability::IntrinsicSAMSUNG: return "IntrinsicSAMSUNG";
4610    default: return "Unknown";
4611    }
4612}
4613
4614inline const char* RayQueryIntersectionToString(RayQueryIntersection value) {
4615    switch (value) {
4616    case RayQueryIntersection::RayQueryCandidateIntersectionKHR: return "RayQueryCandidateIntersectionKHR";
4617    case RayQueryIntersection::RayQueryCommittedIntersectionKHR: return "RayQueryCommittedIntersectionKHR";
4618    default: return "Unknown";
4619    }
4620}
4621
4622inline const char* RayQueryCommittedIntersectionTypeToString(RayQueryCommittedIntersectionType value) {
4623    switch (value) {
4624    case RayQueryCommittedIntersectionType::RayQueryCommittedIntersectionNoneKHR: return "RayQueryCommittedIntersectionNoneKHR";
4625    case RayQueryCommittedIntersectionType::RayQueryCommittedIntersectionTriangleKHR: return "RayQueryCommittedIntersectionTriangleKHR";
4626    case RayQueryCommittedIntersectionType::RayQueryCommittedIntersectionGeneratedKHR: return "RayQueryCommittedIntersectionGeneratedKHR";
4627    default: return "Unknown";
4628    }
4629}
4630
4631inline const char* RayQueryCandidateIntersectionTypeToString(RayQueryCandidateIntersectionType value) {
4632    switch (value) {
4633    case RayQueryCandidateIntersectionType::RayQueryCandidateIntersectionTriangleKHR: return "RayQueryCandidateIntersectionTriangleKHR";
4634    case RayQueryCandidateIntersectionType::RayQueryCandidateIntersectionAABBKHR: return "RayQueryCandidateIntersectionAABBKHR";
4635    default: return "Unknown";
4636    }
4637}
4638
4639inline const char* FPDenormModeToString(FPDenormMode value) {
4640    switch (value) {
4641    case FPDenormMode::Preserve: return "Preserve";
4642    case FPDenormMode::FlushToZero: return "FlushToZero";
4643    default: return "Unknown";
4644    }
4645}
4646
4647inline const char* FPOperationModeToString(FPOperationMode value) {
4648    switch (value) {
4649    case FPOperationMode::IEEE: return "IEEE";
4650    case FPOperationMode::ALT: return "ALT";
4651    default: return "Unknown";
4652    }
4653}
4654
4655inline const char* QuantizationModesToString(QuantizationModes value) {
4656    switch (value) {
4657    case QuantizationModes::TRN: return "TRN";
4658    case QuantizationModes::TRN_ZERO: return "TRN_ZERO";
4659    case QuantizationModes::RND: return "RND";
4660    case QuantizationModes::RND_ZERO: return "RND_ZERO";
4661    case QuantizationModes::RND_INF: return "RND_INF";
4662    case QuantizationModes::RND_MIN_INF: return "RND_MIN_INF";
4663    case QuantizationModes::RND_CONV: return "RND_CONV";
4664    case QuantizationModes::RND_CONV_ODD: return "RND_CONV_ODD";
4665    default: return "Unknown";
4666    }
4667}
4668
4669inline const char* OverflowModesToString(OverflowModes value) {
4670    switch (value) {
4671    case OverflowModes::WRAP: return "WRAP";
4672    case OverflowModes::SAT: return "SAT";
4673    case OverflowModes::SAT_ZERO: return "SAT_ZERO";
4674    case OverflowModes::SAT_SYM: return "SAT_SYM";
4675    default: return "Unknown";
4676    }
4677}
4678
4679inline const char* PackedVectorFormatToString(PackedVectorFormat value) {
4680    switch (value) {
4681    case PackedVectorFormat::PackedVectorFormat4x8Bit: return "PackedVectorFormat4x8Bit";
4682    default: return "Unknown";
4683    }
4684}
4685
4686inline const char* CooperativeMatrixLayoutToString(CooperativeMatrixLayout value) {
4687    switch (value) {
4688    case CooperativeMatrixLayout::RowMajorKHR: return "RowMajorKHR";
4689    case CooperativeMatrixLayout::ColumnMajorKHR: return "ColumnMajorKHR";
4690    case CooperativeMatrixLayout::RowBlockedInterleavedARM: return "RowBlockedInterleavedARM";
4691    case CooperativeMatrixLayout::ColumnBlockedInterleavedARM: return "ColumnBlockedInterleavedARM";
4692    default: return "Unknown";
4693    }
4694}
4695
4696inline const char* CooperativeMatrixUseToString(CooperativeMatrixUse value) {
4697    switch (value) {
4698    case CooperativeMatrixUse::MatrixAKHR: return "MatrixAKHR";
4699    case CooperativeMatrixUse::MatrixBKHR: return "MatrixBKHR";
4700    case CooperativeMatrixUse::MatrixAccumulatorKHR: return "MatrixAccumulatorKHR";
4701    default: return "Unknown";
4702    }
4703}
4704
4705inline const char* TensorClampModeToString(TensorClampMode value) {
4706    switch (value) {
4707    case TensorClampMode::Undefined: return "Undefined";
4708    case TensorClampMode::Constant: return "Constant";
4709    case TensorClampMode::ClampToEdge: return "ClampToEdge";
4710    case TensorClampMode::Repeat: return "Repeat";
4711    case TensorClampMode::RepeatMirrored: return "RepeatMirrored";
4712    default: return "Unknown";
4713    }
4714}
4715
4716inline const char* InitializationModeQualifierToString(InitializationModeQualifier value) {
4717    switch (value) {
4718    case InitializationModeQualifier::InitOnDeviceReprogramALTERA: return "InitOnDeviceReprogramALTERA";
4719    case InitializationModeQualifier::InitOnDeviceResetALTERA: return "InitOnDeviceResetALTERA";
4720    default: return "Unknown";
4721    }
4722}
4723
4724inline const char* HostAccessQualifierToString(HostAccessQualifier value) {
4725    switch (value) {
4726    case HostAccessQualifier::NoneINTEL: return "NoneINTEL";
4727    case HostAccessQualifier::ReadINTEL: return "ReadINTEL";
4728    case HostAccessQualifier::WriteINTEL: return "WriteINTEL";
4729    case HostAccessQualifier::ReadWriteINTEL: return "ReadWriteINTEL";
4730    default: return "Unknown";
4731    }
4732}
4733
4734inline const char* LoadCacheControlToString(LoadCacheControl value) {
4735    switch (value) {
4736    case LoadCacheControl::UncachedINTEL: return "UncachedINTEL";
4737    case LoadCacheControl::CachedINTEL: return "CachedINTEL";
4738    case LoadCacheControl::StreamingINTEL: return "StreamingINTEL";
4739    case LoadCacheControl::InvalidateAfterReadINTEL: return "InvalidateAfterReadINTEL";
4740    case LoadCacheControl::ConstCachedINTEL: return "ConstCachedINTEL";
4741    default: return "Unknown";
4742    }
4743}
4744
4745inline const char* StoreCacheControlToString(StoreCacheControl value) {
4746    switch (value) {
4747    case StoreCacheControl::UncachedINTEL: return "UncachedINTEL";
4748    case StoreCacheControl::WriteThroughINTEL: return "WriteThroughINTEL";
4749    case StoreCacheControl::WriteBackINTEL: return "WriteBackINTEL";
4750    case StoreCacheControl::StreamingINTEL: return "StreamingINTEL";
4751    default: return "Unknown";
4752    }
4753}
4754
4755inline const char* NamedMaximumNumberOfRegistersToString(NamedMaximumNumberOfRegisters value) {
4756    switch (value) {
4757    case NamedMaximumNumberOfRegisters::AutoINTEL: return "AutoINTEL";
4758    default: return "Unknown";
4759    }
4760}
4761
4762inline const char* FPEncodingToString(FPEncoding value) {
4763    switch (value) {
4764    case FPEncoding::BFloat16KHR: return "BFloat16KHR";
4765    case FPEncoding::Float8E4M3EXT: return "Float8E4M3EXT";
4766    case FPEncoding::Float8E5M2EXT: return "Float8E5M2EXT";
4767    case FPEncoding::Float6E2M3EXT: return "Float6E2M3EXT";
4768    case FPEncoding::Float6E3M2EXT: return "Float6E3M2EXT";
4769    case FPEncoding::Float4E2M1EXT: return "Float4E2M1EXT";
4770    case FPEncoding::Float8UnsignedE8M0EXT: return "Float8UnsignedE8M0EXT";
4771    case FPEncoding::MXInt8EXT: return "MXInt8EXT";
4772    default: return "Unknown";
4773    }
4774}
4775
4776inline const char* CooperativeVectorMatrixLayoutToString(CooperativeVectorMatrixLayout value) {
4777    switch (value) {
4778    case CooperativeVectorMatrixLayout::RowMajorNV: return "RowMajorNV";
4779    case CooperativeVectorMatrixLayout::ColumnMajorNV: return "ColumnMajorNV";
4780    case CooperativeVectorMatrixLayout::InferencingOptimalNV: return "InferencingOptimalNV";
4781    case CooperativeVectorMatrixLayout::TrainingOptimalNV: return "TrainingOptimalNV";
4782    default: return "Unknown";
4783    }
4784}
4785
4786inline const char* ComponentTypeToString(ComponentType value) {
4787    switch (value) {
4788    case ComponentType::Float16NV: return "Float16NV";
4789    case ComponentType::Float32NV: return "Float32NV";
4790    case ComponentType::Float64NV: return "Float64NV";
4791    case ComponentType::SignedInt8NV: return "SignedInt8NV";
4792    case ComponentType::SignedInt16NV: return "SignedInt16NV";
4793    case ComponentType::SignedInt32NV: return "SignedInt32NV";
4794    case ComponentType::SignedInt64NV: return "SignedInt64NV";
4795    case ComponentType::UnsignedInt8NV: return "UnsignedInt8NV";
4796    case ComponentType::UnsignedInt16NV: return "UnsignedInt16NV";
4797    case ComponentType::UnsignedInt32NV: return "UnsignedInt32NV";
4798    case ComponentType::UnsignedInt64NV: return "UnsignedInt64NV";
4799    case ComponentType::SignedInt8PackedNV: return "SignedInt8PackedNV";
4800    case ComponentType::UnsignedInt8PackedNV: return "UnsignedInt8PackedNV";
4801    case ComponentType::FloatE4M3NV: return "FloatE4M3NV";
4802    case ComponentType::FloatE5M2NV: return "FloatE5M2NV";
4803    default: return "Unknown";
4804    }
4805}
4806
4807inline const char* GatherModesToString(GatherModes value) {
4808    switch (value) {
4809    case GatherModes::Gather4x1QCOM: return "Gather4x1QCOM";
4810    case GatherModes::GatherDQCOM: return "GatherDQCOM";
4811    case GatherModes::GatherH2QCOM: return "GatherH2QCOM";
4812    case GatherModes::GatherV2QCOM: return "GatherV2QCOM";
4813    default: return "Unknown";
4814    }
4815}
4816
4817inline const char* OpToString(Op value) {
4818    switch (value) {
4819    case Op::OpNop: return "OpNop";
4820    case Op::OpUndef: return "OpUndef";
4821    case Op::OpSourceContinued: return "OpSourceContinued";
4822    case Op::OpSource: return "OpSource";
4823    case Op::OpSourceExtension: return "OpSourceExtension";
4824    case Op::OpName: return "OpName";
4825    case Op::OpMemberName: return "OpMemberName";
4826    case Op::OpString: return "OpString";
4827    case Op::OpLine: return "OpLine";
4828    case Op::OpExtension: return "OpExtension";
4829    case Op::OpExtInstImport: return "OpExtInstImport";
4830    case Op::OpExtInst: return "OpExtInst";
4831    case Op::OpMemoryModel: return "OpMemoryModel";
4832    case Op::OpEntryPoint: return "OpEntryPoint";
4833    case Op::OpExecutionMode: return "OpExecutionMode";
4834    case Op::OpCapability: return "OpCapability";
4835    case Op::OpTypeVoid: return "OpTypeVoid";
4836    case Op::OpTypeBool: return "OpTypeBool";
4837    case Op::OpTypeInt: return "OpTypeInt";
4838    case Op::OpTypeFloat: return "OpTypeFloat";
4839    case Op::OpTypeVector: return "OpTypeVector";
4840    case Op::OpTypeMatrix: return "OpTypeMatrix";
4841    case Op::OpTypeImage: return "OpTypeImage";
4842    case Op::OpTypeSampler: return "OpTypeSampler";
4843    case Op::OpTypeSampledImage: return "OpTypeSampledImage";
4844    case Op::OpTypeArray: return "OpTypeArray";
4845    case Op::OpTypeRuntimeArray: return "OpTypeRuntimeArray";
4846    case Op::OpTypeStruct: return "OpTypeStruct";
4847    case Op::OpTypeOpaque: return "OpTypeOpaque";
4848    case Op::OpTypePointer: return "OpTypePointer";
4849    case Op::OpTypeFunction: return "OpTypeFunction";
4850    case Op::OpTypeEvent: return "OpTypeEvent";
4851    case Op::OpTypeDeviceEvent: return "OpTypeDeviceEvent";
4852    case Op::OpTypeReserveId: return "OpTypeReserveId";
4853    case Op::OpTypeQueue: return "OpTypeQueue";
4854    case Op::OpTypePipe: return "OpTypePipe";
4855    case Op::OpTypeForwardPointer: return "OpTypeForwardPointer";
4856    case Op::OpConstantTrue: return "OpConstantTrue";
4857    case Op::OpConstantFalse: return "OpConstantFalse";
4858    case Op::OpConstant: return "OpConstant";
4859    case Op::OpConstantComposite: return "OpConstantComposite";
4860    case Op::OpConstantSampler: return "OpConstantSampler";
4861    case Op::OpConstantNull: return "OpConstantNull";
4862    case Op::OpSpecConstantTrue: return "OpSpecConstantTrue";
4863    case Op::OpSpecConstantFalse: return "OpSpecConstantFalse";
4864    case Op::OpSpecConstant: return "OpSpecConstant";
4865    case Op::OpSpecConstantComposite: return "OpSpecConstantComposite";
4866    case Op::OpSpecConstantOp: return "OpSpecConstantOp";
4867    case Op::OpFunction: return "OpFunction";
4868    case Op::OpFunctionParameter: return "OpFunctionParameter";
4869    case Op::OpFunctionEnd: return "OpFunctionEnd";
4870    case Op::OpFunctionCall: return "OpFunctionCall";
4871    case Op::OpVariable: return "OpVariable";
4872    case Op::OpImageTexelPointer: return "OpImageTexelPointer";
4873    case Op::OpLoad: return "OpLoad";
4874    case Op::OpStore: return "OpStore";
4875    case Op::OpCopyMemory: return "OpCopyMemory";
4876    case Op::OpCopyMemorySized: return "OpCopyMemorySized";
4877    case Op::OpAccessChain: return "OpAccessChain";
4878    case Op::OpInBoundsAccessChain: return "OpInBoundsAccessChain";
4879    case Op::OpPtrAccessChain: return "OpPtrAccessChain";
4880    case Op::OpArrayLength: return "OpArrayLength";
4881    case Op::OpGenericPtrMemSemantics: return "OpGenericPtrMemSemantics";
4882    case Op::OpInBoundsPtrAccessChain: return "OpInBoundsPtrAccessChain";
4883    case Op::OpDecorate: return "OpDecorate";
4884    case Op::OpMemberDecorate: return "OpMemberDecorate";
4885    case Op::OpDecorationGroup: return "OpDecorationGroup";
4886    case Op::OpGroupDecorate: return "OpGroupDecorate";
4887    case Op::OpGroupMemberDecorate: return "OpGroupMemberDecorate";
4888    case Op::OpVectorExtractDynamic: return "OpVectorExtractDynamic";
4889    case Op::OpVectorInsertDynamic: return "OpVectorInsertDynamic";
4890    case Op::OpVectorShuffle: return "OpVectorShuffle";
4891    case Op::OpCompositeConstruct: return "OpCompositeConstruct";
4892    case Op::OpCompositeExtract: return "OpCompositeExtract";
4893    case Op::OpCompositeInsert: return "OpCompositeInsert";
4894    case Op::OpCopyObject: return "OpCopyObject";
4895    case Op::OpTranspose: return "OpTranspose";
4896    case Op::OpSampledImage: return "OpSampledImage";
4897    case Op::OpImageSampleImplicitLod: return "OpImageSampleImplicitLod";
4898    case Op::OpImageSampleExplicitLod: return "OpImageSampleExplicitLod";
4899    case Op::OpImageSampleDrefImplicitLod: return "OpImageSampleDrefImplicitLod";
4900    case Op::OpImageSampleDrefExplicitLod: return "OpImageSampleDrefExplicitLod";
4901    case Op::OpImageSampleProjImplicitLod: return "OpImageSampleProjImplicitLod";
4902    case Op::OpImageSampleProjExplicitLod: return "OpImageSampleProjExplicitLod";
4903    case Op::OpImageSampleProjDrefImplicitLod: return "OpImageSampleProjDrefImplicitLod";
4904    case Op::OpImageSampleProjDrefExplicitLod: return "OpImageSampleProjDrefExplicitLod";
4905    case Op::OpImageFetch: return "OpImageFetch";
4906    case Op::OpImageGather: return "OpImageGather";
4907    case Op::OpImageDrefGather: return "OpImageDrefGather";
4908    case Op::OpImageRead: return "OpImageRead";
4909    case Op::OpImageWrite: return "OpImageWrite";
4910    case Op::OpImage: return "OpImage";
4911    case Op::OpImageQueryFormat: return "OpImageQueryFormat";
4912    case Op::OpImageQueryOrder: return "OpImageQueryOrder";
4913    case Op::OpImageQuerySizeLod: return "OpImageQuerySizeLod";
4914    case Op::OpImageQuerySize: return "OpImageQuerySize";
4915    case Op::OpImageQueryLod: return "OpImageQueryLod";
4916    case Op::OpImageQueryLevels: return "OpImageQueryLevels";
4917    case Op::OpImageQuerySamples: return "OpImageQuerySamples";
4918    case Op::OpConvertFToU: return "OpConvertFToU";
4919    case Op::OpConvertFToS: return "OpConvertFToS";
4920    case Op::OpConvertSToF: return "OpConvertSToF";
4921    case Op::OpConvertUToF: return "OpConvertUToF";
4922    case Op::OpUConvert: return "OpUConvert";
4923    case Op::OpSConvert: return "OpSConvert";
4924    case Op::OpFConvert: return "OpFConvert";
4925    case Op::OpQuantizeToF16: return "OpQuantizeToF16";
4926    case Op::OpConvertPtrToU: return "OpConvertPtrToU";
4927    case Op::OpSatConvertSToU: return "OpSatConvertSToU";
4928    case Op::OpSatConvertUToS: return "OpSatConvertUToS";
4929    case Op::OpConvertUToPtr: return "OpConvertUToPtr";
4930    case Op::OpPtrCastToGeneric: return "OpPtrCastToGeneric";
4931    case Op::OpGenericCastToPtr: return "OpGenericCastToPtr";
4932    case Op::OpGenericCastToPtrExplicit: return "OpGenericCastToPtrExplicit";
4933    case Op::OpBitcast: return "OpBitcast";
4934    case Op::OpSNegate: return "OpSNegate";
4935    case Op::OpFNegate: return "OpFNegate";
4936    case Op::OpIAdd: return "OpIAdd";
4937    case Op::OpFAdd: return "OpFAdd";
4938    case Op::OpISub: return "OpISub";
4939    case Op::OpFSub: return "OpFSub";
4940    case Op::OpIMul: return "OpIMul";
4941    case Op::OpFMul: return "OpFMul";
4942    case Op::OpUDiv: return "OpUDiv";
4943    case Op::OpSDiv: return "OpSDiv";
4944    case Op::OpFDiv: return "OpFDiv";
4945    case Op::OpUMod: return "OpUMod";
4946    case Op::OpSRem: return "OpSRem";
4947    case Op::OpSMod: return "OpSMod";
4948    case Op::OpFRem: return "OpFRem";
4949    case Op::OpFMod: return "OpFMod";
4950    case Op::OpVectorTimesScalar: return "OpVectorTimesScalar";
4951    case Op::OpMatrixTimesScalar: return "OpMatrixTimesScalar";
4952    case Op::OpVectorTimesMatrix: return "OpVectorTimesMatrix";
4953    case Op::OpMatrixTimesVector: return "OpMatrixTimesVector";
4954    case Op::OpMatrixTimesMatrix: return "OpMatrixTimesMatrix";
4955    case Op::OpOuterProduct: return "OpOuterProduct";
4956    case Op::OpDot: return "OpDot";
4957    case Op::OpIAddCarry: return "OpIAddCarry";
4958    case Op::OpISubBorrow: return "OpISubBorrow";
4959    case Op::OpUMulExtended: return "OpUMulExtended";
4960    case Op::OpSMulExtended: return "OpSMulExtended";
4961    case Op::OpAny: return "OpAny";
4962    case Op::OpAll: return "OpAll";
4963    case Op::OpIsNan: return "OpIsNan";
4964    case Op::OpIsInf: return "OpIsInf";
4965    case Op::OpIsFinite: return "OpIsFinite";
4966    case Op::OpIsNormal: return "OpIsNormal";
4967    case Op::OpSignBitSet: return "OpSignBitSet";
4968    case Op::OpLessOrGreater: return "OpLessOrGreater";
4969    case Op::OpOrdered: return "OpOrdered";
4970    case Op::OpUnordered: return "OpUnordered";
4971    case Op::OpLogicalEqual: return "OpLogicalEqual";
4972    case Op::OpLogicalNotEqual: return "OpLogicalNotEqual";
4973    case Op::OpLogicalOr: return "OpLogicalOr";
4974    case Op::OpLogicalAnd: return "OpLogicalAnd";
4975    case Op::OpLogicalNot: return "OpLogicalNot";
4976    case Op::OpSelect: return "OpSelect";
4977    case Op::OpIEqual: return "OpIEqual";
4978    case Op::OpINotEqual: return "OpINotEqual";
4979    case Op::OpUGreaterThan: return "OpUGreaterThan";
4980    case Op::OpSGreaterThan: return "OpSGreaterThan";
4981    case Op::OpUGreaterThanEqual: return "OpUGreaterThanEqual";
4982    case Op::OpSGreaterThanEqual: return "OpSGreaterThanEqual";
4983    case Op::OpULessThan: return "OpULessThan";
4984    case Op::OpSLessThan: return "OpSLessThan";
4985    case Op::OpULessThanEqual: return "OpULessThanEqual";
4986    case Op::OpSLessThanEqual: return "OpSLessThanEqual";
4987    case Op::OpFOrdEqual: return "OpFOrdEqual";
4988    case Op::OpFUnordEqual: return "OpFUnordEqual";
4989    case Op::OpFOrdNotEqual: return "OpFOrdNotEqual";
4990    case Op::OpFUnordNotEqual: return "OpFUnordNotEqual";
4991    case Op::OpFOrdLessThan: return "OpFOrdLessThan";
4992    case Op::OpFUnordLessThan: return "OpFUnordLessThan";
4993    case Op::OpFOrdGreaterThan: return "OpFOrdGreaterThan";
4994    case Op::OpFUnordGreaterThan: return "OpFUnordGreaterThan";
4995    case Op::OpFOrdLessThanEqual: return "OpFOrdLessThanEqual";
4996    case Op::OpFUnordLessThanEqual: return "OpFUnordLessThanEqual";
4997    case Op::OpFOrdGreaterThanEqual: return "OpFOrdGreaterThanEqual";
4998    case Op::OpFUnordGreaterThanEqual: return "OpFUnordGreaterThanEqual";
4999    case Op::OpShiftRightLogical: return "OpShiftRightLogical";
5000    case Op::OpShiftRightArithmetic: return "OpShiftRightArithmetic";
5001    case Op::OpShiftLeftLogical: return "OpShiftLeftLogical";
5002    case Op::OpBitwiseOr: return "OpBitwiseOr";
5003    case Op::OpBitwiseXor: return "OpBitwiseXor";
5004    case Op::OpBitwiseAnd: return "OpBitwiseAnd";
5005    case Op::OpNot: return "OpNot";
5006    case Op::OpBitFieldInsert: return "OpBitFieldInsert";
5007    case Op::OpBitFieldSExtract: return "OpBitFieldSExtract";
5008    case Op::OpBitFieldUExtract: return "OpBitFieldUExtract";
5009    case Op::OpBitReverse: return "OpBitReverse";
5010    case Op::OpBitCount: return "OpBitCount";
5011    case Op::OpDPdx: return "OpDPdx";
5012    case Op::OpDPdy: return "OpDPdy";
5013    case Op::OpFwidth: return "OpFwidth";
5014    case Op::OpDPdxFine: return "OpDPdxFine";
5015    case Op::OpDPdyFine: return "OpDPdyFine";
5016    case Op::OpFwidthFine: return "OpFwidthFine";
5017    case Op::OpDPdxCoarse: return "OpDPdxCoarse";
5018    case Op::OpDPdyCoarse: return "OpDPdyCoarse";
5019    case Op::OpFwidthCoarse: return "OpFwidthCoarse";
5020    case Op::OpEmitVertex: return "OpEmitVertex";
5021    case Op::OpEndPrimitive: return "OpEndPrimitive";
5022    case Op::OpEmitStreamVertex: return "OpEmitStreamVertex";
5023    case Op::OpEndStreamPrimitive: return "OpEndStreamPrimitive";
5024    case Op::OpControlBarrier: return "OpControlBarrier";
5025    case Op::OpMemoryBarrier: return "OpMemoryBarrier";
5026    case Op::OpAtomicLoad: return "OpAtomicLoad";
5027    case Op::OpAtomicStore: return "OpAtomicStore";
5028    case Op::OpAtomicExchange: return "OpAtomicExchange";
5029    case Op::OpAtomicCompareExchange: return "OpAtomicCompareExchange";
5030    case Op::OpAtomicCompareExchangeWeak: return "OpAtomicCompareExchangeWeak";
5031    case Op::OpAtomicIIncrement: return "OpAtomicIIncrement";
5032    case Op::OpAtomicIDecrement: return "OpAtomicIDecrement";
5033    case Op::OpAtomicIAdd: return "OpAtomicIAdd";
5034    case Op::OpAtomicISub: return "OpAtomicISub";
5035    case Op::OpAtomicSMin: return "OpAtomicSMin";
5036    case Op::OpAtomicUMin: return "OpAtomicUMin";
5037    case Op::OpAtomicSMax: return "OpAtomicSMax";
5038    case Op::OpAtomicUMax: return "OpAtomicUMax";
5039    case Op::OpAtomicAnd: return "OpAtomicAnd";
5040    case Op::OpAtomicOr: return "OpAtomicOr";
5041    case Op::OpAtomicXor: return "OpAtomicXor";
5042    case Op::OpPhi: return "OpPhi";
5043    case Op::OpLoopMerge: return "OpLoopMerge";
5044    case Op::OpSelectionMerge: return "OpSelectionMerge";
5045    case Op::OpLabel: return "OpLabel";
5046    case Op::OpBranch: return "OpBranch";
5047    case Op::OpBranchConditional: return "OpBranchConditional";
5048    case Op::OpSwitch: return "OpSwitch";
5049    case Op::OpKill: return "OpKill";
5050    case Op::OpReturn: return "OpReturn";
5051    case Op::OpReturnValue: return "OpReturnValue";
5052    case Op::OpUnreachable: return "OpUnreachable";
5053    case Op::OpLifetimeStart: return "OpLifetimeStart";
5054    case Op::OpLifetimeStop: return "OpLifetimeStop";
5055    case Op::OpGroupAsyncCopy: return "OpGroupAsyncCopy";
5056    case Op::OpGroupWaitEvents: return "OpGroupWaitEvents";
5057    case Op::OpGroupAll: return "OpGroupAll";
5058    case Op::OpGroupAny: return "OpGroupAny";
5059    case Op::OpGroupBroadcast: return "OpGroupBroadcast";
5060    case Op::OpGroupIAdd: return "OpGroupIAdd";
5061    case Op::OpGroupFAdd: return "OpGroupFAdd";
5062    case Op::OpGroupFMin: return "OpGroupFMin";
5063    case Op::OpGroupUMin: return "OpGroupUMin";
5064    case Op::OpGroupSMin: return "OpGroupSMin";
5065    case Op::OpGroupFMax: return "OpGroupFMax";
5066    case Op::OpGroupUMax: return "OpGroupUMax";
5067    case Op::OpGroupSMax: return "OpGroupSMax";
5068    case Op::OpReadPipe: return "OpReadPipe";
5069    case Op::OpWritePipe: return "OpWritePipe";
5070    case Op::OpReservedReadPipe: return "OpReservedReadPipe";
5071    case Op::OpReservedWritePipe: return "OpReservedWritePipe";
5072    case Op::OpReserveReadPipePackets: return "OpReserveReadPipePackets";
5073    case Op::OpReserveWritePipePackets: return "OpReserveWritePipePackets";
5074    case Op::OpCommitReadPipe: return "OpCommitReadPipe";
5075    case Op::OpCommitWritePipe: return "OpCommitWritePipe";
5076    case Op::OpIsValidReserveId: return "OpIsValidReserveId";
5077    case Op::OpGetNumPipePackets: return "OpGetNumPipePackets";
5078    case Op::OpGetMaxPipePackets: return "OpGetMaxPipePackets";
5079    case Op::OpGroupReserveReadPipePackets: return "OpGroupReserveReadPipePackets";
5080    case Op::OpGroupReserveWritePipePackets: return "OpGroupReserveWritePipePackets";
5081    case Op::OpGroupCommitReadPipe: return "OpGroupCommitReadPipe";
5082    case Op::OpGroupCommitWritePipe: return "OpGroupCommitWritePipe";
5083    case Op::OpEnqueueMarker: return "OpEnqueueMarker";
5084    case Op::OpEnqueueKernel: return "OpEnqueueKernel";
5085    case Op::OpGetKernelNDrangeSubGroupCount: return "OpGetKernelNDrangeSubGroupCount";
5086    case Op::OpGetKernelNDrangeMaxSubGroupSize: return "OpGetKernelNDrangeMaxSubGroupSize";
5087    case Op::OpGetKernelWorkGroupSize: return "OpGetKernelWorkGroupSize";
5088    case Op::OpGetKernelPreferredWorkGroupSizeMultiple: return "OpGetKernelPreferredWorkGroupSizeMultiple";
5089    case Op::OpRetainEvent: return "OpRetainEvent";
5090    case Op::OpReleaseEvent: return "OpReleaseEvent";
5091    case Op::OpCreateUserEvent: return "OpCreateUserEvent";
5092    case Op::OpIsValidEvent: return "OpIsValidEvent";
5093    case Op::OpSetUserEventStatus: return "OpSetUserEventStatus";
5094    case Op::OpCaptureEventProfilingInfo: return "OpCaptureEventProfilingInfo";
5095    case Op::OpGetDefaultQueue: return "OpGetDefaultQueue";
5096    case Op::OpBuildNDRange: return "OpBuildNDRange";
5097    case Op::OpImageSparseSampleImplicitLod: return "OpImageSparseSampleImplicitLod";
5098    case Op::OpImageSparseSampleExplicitLod: return "OpImageSparseSampleExplicitLod";
5099    case Op::OpImageSparseSampleDrefImplicitLod: return "OpImageSparseSampleDrefImplicitLod";
5100    case Op::OpImageSparseSampleDrefExplicitLod: return "OpImageSparseSampleDrefExplicitLod";
5101    case Op::OpImageSparseSampleProjImplicitLod: return "OpImageSparseSampleProjImplicitLod";
5102    case Op::OpImageSparseSampleProjExplicitLod: return "OpImageSparseSampleProjExplicitLod";
5103    case Op::OpImageSparseSampleProjDrefImplicitLod: return "OpImageSparseSampleProjDrefImplicitLod";
5104    case Op::OpImageSparseSampleProjDrefExplicitLod: return "OpImageSparseSampleProjDrefExplicitLod";
5105    case Op::OpImageSparseFetch: return "OpImageSparseFetch";
5106    case Op::OpImageSparseGather: return "OpImageSparseGather";
5107    case Op::OpImageSparseDrefGather: return "OpImageSparseDrefGather";
5108    case Op::OpImageSparseTexelsResident: return "OpImageSparseTexelsResident";
5109    case Op::OpNoLine: return "OpNoLine";
5110    case Op::OpAtomicFlagTestAndSet: return "OpAtomicFlagTestAndSet";
5111    case Op::OpAtomicFlagClear: return "OpAtomicFlagClear";
5112    case Op::OpImageSparseRead: return "OpImageSparseRead";
5113    case Op::OpSizeOf: return "OpSizeOf";
5114    case Op::OpTypePipeStorage: return "OpTypePipeStorage";
5115    case Op::OpConstantPipeStorage: return "OpConstantPipeStorage";
5116    case Op::OpCreatePipeFromPipeStorage: return "OpCreatePipeFromPipeStorage";
5117    case Op::OpGetKernelLocalSizeForSubgroupCount: return "OpGetKernelLocalSizeForSubgroupCount";
5118    case Op::OpGetKernelMaxNumSubgroups: return "OpGetKernelMaxNumSubgroups";
5119    case Op::OpTypeNamedBarrier: return "OpTypeNamedBarrier";
5120    case Op::OpNamedBarrierInitialize: return "OpNamedBarrierInitialize";
5121    case Op::OpMemoryNamedBarrier: return "OpMemoryNamedBarrier";
5122    case Op::OpModuleProcessed: return "OpModuleProcessed";
5123    case Op::OpExecutionModeId: return "OpExecutionModeId";
5124    case Op::OpDecorateId: return "OpDecorateId";
5125    case Op::OpGroupNonUniformElect: return "OpGroupNonUniformElect";
5126    case Op::OpGroupNonUniformAll: return "OpGroupNonUniformAll";
5127    case Op::OpGroupNonUniformAny: return "OpGroupNonUniformAny";
5128    case Op::OpGroupNonUniformAllEqual: return "OpGroupNonUniformAllEqual";
5129    case Op::OpGroupNonUniformBroadcast: return "OpGroupNonUniformBroadcast";
5130    case Op::OpGroupNonUniformBroadcastFirst: return "OpGroupNonUniformBroadcastFirst";
5131    case Op::OpGroupNonUniformBallot: return "OpGroupNonUniformBallot";
5132    case Op::OpGroupNonUniformInverseBallot: return "OpGroupNonUniformInverseBallot";
5133    case Op::OpGroupNonUniformBallotBitExtract: return "OpGroupNonUniformBallotBitExtract";
5134    case Op::OpGroupNonUniformBallotBitCount: return "OpGroupNonUniformBallotBitCount";
5135    case Op::OpGroupNonUniformBallotFindLSB: return "OpGroupNonUniformBallotFindLSB";
5136    case Op::OpGroupNonUniformBallotFindMSB: return "OpGroupNonUniformBallotFindMSB";
5137    case Op::OpGroupNonUniformShuffle: return "OpGroupNonUniformShuffle";
5138    case Op::OpGroupNonUniformShuffleXor: return "OpGroupNonUniformShuffleXor";
5139    case Op::OpGroupNonUniformShuffleUp: return "OpGroupNonUniformShuffleUp";
5140    case Op::OpGroupNonUniformShuffleDown: return "OpGroupNonUniformShuffleDown";
5141    case Op::OpGroupNonUniformIAdd: return "OpGroupNonUniformIAdd";
5142    case Op::OpGroupNonUniformFAdd: return "OpGroupNonUniformFAdd";
5143    case Op::OpGroupNonUniformIMul: return "OpGroupNonUniformIMul";
5144    case Op::OpGroupNonUniformFMul: return "OpGroupNonUniformFMul";
5145    case Op::OpGroupNonUniformSMin: return "OpGroupNonUniformSMin";
5146    case Op::OpGroupNonUniformUMin: return "OpGroupNonUniformUMin";
5147    case Op::OpGroupNonUniformFMin: return "OpGroupNonUniformFMin";
5148    case Op::OpGroupNonUniformSMax: return "OpGroupNonUniformSMax";
5149    case Op::OpGroupNonUniformUMax: return "OpGroupNonUniformUMax";
5150    case Op::OpGroupNonUniformFMax: return "OpGroupNonUniformFMax";
5151    case Op::OpGroupNonUniformBitwiseAnd: return "OpGroupNonUniformBitwiseAnd";
5152    case Op::OpGroupNonUniformBitwiseOr: return "OpGroupNonUniformBitwiseOr";
5153    case Op::OpGroupNonUniformBitwiseXor: return "OpGroupNonUniformBitwiseXor";
5154    case Op::OpGroupNonUniformLogicalAnd: return "OpGroupNonUniformLogicalAnd";
5155    case Op::OpGroupNonUniformLogicalOr: return "OpGroupNonUniformLogicalOr";
5156    case Op::OpGroupNonUniformLogicalXor: return "OpGroupNonUniformLogicalXor";
5157    case Op::OpGroupNonUniformQuadBroadcast: return "OpGroupNonUniformQuadBroadcast";
5158    case Op::OpGroupNonUniformQuadSwap: return "OpGroupNonUniformQuadSwap";
5159    case Op::OpCopyLogical: return "OpCopyLogical";
5160    case Op::OpPtrEqual: return "OpPtrEqual";
5161    case Op::OpPtrNotEqual: return "OpPtrNotEqual";
5162    case Op::OpPtrDiff: return "OpPtrDiff";
5163    case Op::OpColorAttachmentReadEXT: return "OpColorAttachmentReadEXT";
5164    case Op::OpDepthAttachmentReadEXT: return "OpDepthAttachmentReadEXT";
5165    case Op::OpStencilAttachmentReadEXT: return "OpStencilAttachmentReadEXT";
5166    case Op::OpTypeTensorARM: return "OpTypeTensorARM";
5167    case Op::OpTensorReadARM: return "OpTensorReadARM";
5168    case Op::OpTensorWriteARM: return "OpTensorWriteARM";
5169    case Op::OpTensorQuerySizeARM: return "OpTensorQuerySizeARM";
5170    case Op::OpGraphConstantARM: return "OpGraphConstantARM";
5171    case Op::OpGraphEntryPointARM: return "OpGraphEntryPointARM";
5172    case Op::OpGraphARM: return "OpGraphARM";
5173    case Op::OpGraphInputARM: return "OpGraphInputARM";
5174    case Op::OpGraphSetOutputARM: return "OpGraphSetOutputARM";
5175    case Op::OpGraphEndARM: return "OpGraphEndARM";
5176    case Op::OpTypeGraphARM: return "OpTypeGraphARM";
5177    case Op::OpBitcastExtractEXT: return "OpBitcastExtractEXT";
5178    case Op::OpTerminateInvocation: return "OpTerminateInvocation";
5179    case Op::OpTypeUntypedPointerKHR: return "OpTypeUntypedPointerKHR";
5180    case Op::OpUntypedVariableKHR: return "OpUntypedVariableKHR";
5181    case Op::OpUntypedAccessChainKHR: return "OpUntypedAccessChainKHR";
5182    case Op::OpUntypedInBoundsAccessChainKHR: return "OpUntypedInBoundsAccessChainKHR";
5183    case Op::OpSubgroupBallotKHR: return "OpSubgroupBallotKHR";
5184    case Op::OpSubgroupFirstInvocationKHR: return "OpSubgroupFirstInvocationKHR";
5185    case Op::OpUntypedPtrAccessChainKHR: return "OpUntypedPtrAccessChainKHR";
5186    case Op::OpUntypedInBoundsPtrAccessChainKHR: return "OpUntypedInBoundsPtrAccessChainKHR";
5187    case Op::OpUntypedArrayLengthKHR: return "OpUntypedArrayLengthKHR";
5188    case Op::OpUntypedPrefetchKHR: return "OpUntypedPrefetchKHR";
5189    case Op::OpFmaKHR: return "OpFmaKHR";
5190    case Op::OpSubgroupAllKHR: return "OpSubgroupAllKHR";
5191    case Op::OpSubgroupAnyKHR: return "OpSubgroupAnyKHR";
5192    case Op::OpSubgroupAllEqualKHR: return "OpSubgroupAllEqualKHR";
5193    case Op::OpGroupNonUniformRotateKHR: return "OpGroupNonUniformRotateKHR";
5194    case Op::OpSubgroupReadInvocationKHR: return "OpSubgroupReadInvocationKHR";
5195    case Op::OpExtInstWithForwardRefsKHR: return "OpExtInstWithForwardRefsKHR";
5196    case Op::OpUntypedGroupAsyncCopyKHR: return "OpUntypedGroupAsyncCopyKHR";
5197    case Op::OpTraceRayKHR: return "OpTraceRayKHR";
5198    case Op::OpExecuteCallableKHR: return "OpExecuteCallableKHR";
5199    case Op::OpConvertUToAccelerationStructureKHR: return "OpConvertUToAccelerationStructureKHR";
5200    case Op::OpIgnoreIntersectionKHR: return "OpIgnoreIntersectionKHR";
5201    case Op::OpTerminateRayKHR: return "OpTerminateRayKHR";
5202    case Op::OpSDot: return "OpSDot";
5203    case Op::OpUDot: return "OpUDot";
5204    case Op::OpSUDot: return "OpSUDot";
5205    case Op::OpSDotAccSat: return "OpSDotAccSat";
5206    case Op::OpUDotAccSat: return "OpUDotAccSat";
5207    case Op::OpSUDotAccSat: return "OpSUDotAccSat";
5208    case Op::OpTypeCooperativeMatrixKHR: return "OpTypeCooperativeMatrixKHR";
5209    case Op::OpCooperativeMatrixLoadKHR: return "OpCooperativeMatrixLoadKHR";
5210    case Op::OpCooperativeMatrixStoreKHR: return "OpCooperativeMatrixStoreKHR";
5211    case Op::OpCooperativeMatrixMulAddKHR: return "OpCooperativeMatrixMulAddKHR";
5212    case Op::OpCooperativeMatrixLengthKHR: return "OpCooperativeMatrixLengthKHR";
5213    case Op::OpConstantCompositeReplicateEXT: return "OpConstantCompositeReplicateEXT";
5214    case Op::OpSpecConstantCompositeReplicateEXT: return "OpSpecConstantCompositeReplicateEXT";
5215    case Op::OpCompositeConstructReplicateEXT: return "OpCompositeConstructReplicateEXT";
5216    case Op::OpTypeRayQueryKHR: return "OpTypeRayQueryKHR";
5217    case Op::OpRayQueryInitializeKHR: return "OpRayQueryInitializeKHR";
5218    case Op::OpRayQueryTerminateKHR: return "OpRayQueryTerminateKHR";
5219    case Op::OpRayQueryGenerateIntersectionKHR: return "OpRayQueryGenerateIntersectionKHR";
5220    case Op::OpRayQueryConfirmIntersectionKHR: return "OpRayQueryConfirmIntersectionKHR";
5221    case Op::OpRayQueryProceedKHR: return "OpRayQueryProceedKHR";
5222    case Op::OpRayQueryGetIntersectionTypeKHR: return "OpRayQueryGetIntersectionTypeKHR";
5223    case Op::OpImageSampleWeightedQCOM: return "OpImageSampleWeightedQCOM";
5224    case Op::OpImageBoxFilterQCOM: return "OpImageBoxFilterQCOM";
5225    case Op::OpImageBlockMatchSSDQCOM: return "OpImageBlockMatchSSDQCOM";
5226    case Op::OpImageBlockMatchSADQCOM: return "OpImageBlockMatchSADQCOM";
5227    case Op::OpBitCastArrayQCOM: return "OpBitCastArrayQCOM";
5228    case Op::OpImageBlockMatchWindowSSDQCOM: return "OpImageBlockMatchWindowSSDQCOM";
5229    case Op::OpImageBlockMatchWindowSADQCOM: return "OpImageBlockMatchWindowSADQCOM";
5230    case Op::OpImageBlockMatchGatherSSDQCOM: return "OpImageBlockMatchGatherSSDQCOM";
5231    case Op::OpImageBlockMatchGatherSADQCOM: return "OpImageBlockMatchGatherSADQCOM";
5232    case Op::OpCompositeConstructCoopMatQCOM: return "OpCompositeConstructCoopMatQCOM";
5233    case Op::OpCompositeExtractCoopMatQCOM: return "OpCompositeExtractCoopMatQCOM";
5234    case Op::OpExtractSubArrayQCOM: return "OpExtractSubArrayQCOM";
5235    case Op::OpImageGatherQCOM: return "OpImageGatherQCOM";
5236    case Op::OpGroupIAddNonUniformAMD: return "OpGroupIAddNonUniformAMD";
5237    case Op::OpGroupFAddNonUniformAMD: return "OpGroupFAddNonUniformAMD";
5238    case Op::OpGroupFMinNonUniformAMD: return "OpGroupFMinNonUniformAMD";
5239    case Op::OpGroupUMinNonUniformAMD: return "OpGroupUMinNonUniformAMD";
5240    case Op::OpGroupSMinNonUniformAMD: return "OpGroupSMinNonUniformAMD";
5241    case Op::OpGroupFMaxNonUniformAMD: return "OpGroupFMaxNonUniformAMD";
5242    case Op::OpGroupUMaxNonUniformAMD: return "OpGroupUMaxNonUniformAMD";
5243    case Op::OpGroupSMaxNonUniformAMD: return "OpGroupSMaxNonUniformAMD";
5244    case Op::OpFragmentMaskFetchAMD: return "OpFragmentMaskFetchAMD";
5245    case Op::OpFragmentFetchAMD: return "OpFragmentFetchAMD";
5246    case Op::OpReadClockKHR: return "OpReadClockKHR";
5247    case Op::OpAllocateNodePayloadsAMDX: return "OpAllocateNodePayloadsAMDX";
5248    case Op::OpEnqueueNodePayloadsAMDX: return "OpEnqueueNodePayloadsAMDX";
5249    case Op::OpTypeNodePayloadArrayAMDX: return "OpTypeNodePayloadArrayAMDX";
5250    case Op::OpFinishWritingNodePayloadAMDX: return "OpFinishWritingNodePayloadAMDX";
5251    case Op::OpNodePayloadArrayLengthAMDX: return "OpNodePayloadArrayLengthAMDX";
5252    case Op::OpIsNodePayloadValidAMDX: return "OpIsNodePayloadValidAMDX";
5253    case Op::OpConstantStringAMDX: return "OpConstantStringAMDX";
5254    case Op::OpSpecConstantStringAMDX: return "OpSpecConstantStringAMDX";
5255    case Op::OpGroupNonUniformQuadAllKHR: return "OpGroupNonUniformQuadAllKHR";
5256    case Op::OpGroupNonUniformQuadAnyKHR: return "OpGroupNonUniformQuadAnyKHR";
5257    case Op::OpTypeBufferEXT: return "OpTypeBufferEXT";
5258    case Op::OpBufferPointerEXT: return "OpBufferPointerEXT";
5259    case Op::OpAbortKHR: return "OpAbortKHR";
5260    case Op::OpUntypedImageTexelPointerEXT: return "OpUntypedImageTexelPointerEXT";
5261    case Op::OpMemberDecorateIdEXT: return "OpMemberDecorateIdEXT";
5262    case Op::OpConstantSizeOfEXT: return "OpConstantSizeOfEXT";
5263    case Op::OpConstantDataKHR: return "OpConstantDataKHR";
5264    case Op::OpSpecConstantDataKHR: return "OpSpecConstantDataKHR";
5265    case Op::OpPoisonKHR: return "OpPoisonKHR";
5266    case Op::OpFreezeKHR: return "OpFreezeKHR";
5267    case Op::OpHitObjectRecordHitMotionNV: return "OpHitObjectRecordHitMotionNV";
5268    case Op::OpHitObjectRecordHitWithIndexMotionNV: return "OpHitObjectRecordHitWithIndexMotionNV";
5269    case Op::OpHitObjectRecordMissMotionNV: return "OpHitObjectRecordMissMotionNV";
5270    case Op::OpHitObjectGetWorldToObjectNV: return "OpHitObjectGetWorldToObjectNV";
5271    case Op::OpHitObjectGetObjectToWorldNV: return "OpHitObjectGetObjectToWorldNV";
5272    case Op::OpHitObjectGetObjectRayDirectionNV: return "OpHitObjectGetObjectRayDirectionNV";
5273    case Op::OpHitObjectGetObjectRayOriginNV: return "OpHitObjectGetObjectRayOriginNV";
5274    case Op::OpHitObjectTraceRayMotionNV: return "OpHitObjectTraceRayMotionNV";
5275    case Op::OpHitObjectGetShaderRecordBufferHandleNV: return "OpHitObjectGetShaderRecordBufferHandleNV";
5276    case Op::OpHitObjectGetShaderBindingTableRecordIndexNV: return "OpHitObjectGetShaderBindingTableRecordIndexNV";
5277    case Op::OpHitObjectRecordEmptyNV: return "OpHitObjectRecordEmptyNV";
5278    case Op::OpHitObjectTraceRayNV: return "OpHitObjectTraceRayNV";
5279    case Op::OpHitObjectRecordHitNV: return "OpHitObjectRecordHitNV";
5280    case Op::OpHitObjectRecordHitWithIndexNV: return "OpHitObjectRecordHitWithIndexNV";
5281    case Op::OpHitObjectRecordMissNV: return "OpHitObjectRecordMissNV";
5282    case Op::OpHitObjectExecuteShaderNV: return "OpHitObjectExecuteShaderNV";
5283    case Op::OpHitObjectGetCurrentTimeNV: return "OpHitObjectGetCurrentTimeNV";
5284    case Op::OpHitObjectGetAttributesNV: return "OpHitObjectGetAttributesNV";
5285    case Op::OpHitObjectGetHitKindNV: return "OpHitObjectGetHitKindNV";
5286    case Op::OpHitObjectGetPrimitiveIndexNV: return "OpHitObjectGetPrimitiveIndexNV";
5287    case Op::OpHitObjectGetGeometryIndexNV: return "OpHitObjectGetGeometryIndexNV";
5288    case Op::OpHitObjectGetInstanceIdNV: return "OpHitObjectGetInstanceIdNV";
5289    case Op::OpHitObjectGetInstanceCustomIndexNV: return "OpHitObjectGetInstanceCustomIndexNV";
5290    case Op::OpHitObjectGetWorldRayDirectionNV: return "OpHitObjectGetWorldRayDirectionNV";
5291    case Op::OpHitObjectGetWorldRayOriginNV: return "OpHitObjectGetWorldRayOriginNV";
5292    case Op::OpHitObjectGetRayTMaxNV: return "OpHitObjectGetRayTMaxNV";
5293    case Op::OpHitObjectGetRayTMinNV: return "OpHitObjectGetRayTMinNV";
5294    case Op::OpHitObjectIsEmptyNV: return "OpHitObjectIsEmptyNV";
5295    case Op::OpHitObjectIsHitNV: return "OpHitObjectIsHitNV";
5296    case Op::OpHitObjectIsMissNV: return "OpHitObjectIsMissNV";
5297    case Op::OpReorderThreadWithHitObjectNV: return "OpReorderThreadWithHitObjectNV";
5298    case Op::OpReorderThreadWithHintNV: return "OpReorderThreadWithHintNV";
5299    case Op::OpTypeHitObjectNV: return "OpTypeHitObjectNV";
5300    case Op::OpImageSampleFootprintNV: return "OpImageSampleFootprintNV";
5301    case Op::OpTypeCooperativeVectorNV: return "OpTypeCooperativeVectorNV";
5302    case Op::OpCooperativeVectorMatrixMulNV: return "OpCooperativeVectorMatrixMulNV";
5303    case Op::OpCooperativeVectorOuterProductAccumulateNV: return "OpCooperativeVectorOuterProductAccumulateNV";
5304    case Op::OpCooperativeVectorReduceSumAccumulateNV: return "OpCooperativeVectorReduceSumAccumulateNV";
5305    case Op::OpCooperativeVectorMatrixMulAddNV: return "OpCooperativeVectorMatrixMulAddNV";
5306    case Op::OpCooperativeMatrixConvertNV: return "OpCooperativeMatrixConvertNV";
5307    case Op::OpEmitMeshTasksEXT: return "OpEmitMeshTasksEXT";
5308    case Op::OpSetMeshOutputsEXT: return "OpSetMeshOutputsEXT";
5309    case Op::OpGroupNonUniformPartitionEXT: return "OpGroupNonUniformPartitionEXT";
5310    case Op::OpWritePackedPrimitiveIndices4x8NV: return "OpWritePackedPrimitiveIndices4x8NV";
5311    case Op::OpFetchMicroTriangleVertexPositionNV: return "OpFetchMicroTriangleVertexPositionNV";
5312    case Op::OpFetchMicroTriangleVertexBarycentricNV: return "OpFetchMicroTriangleVertexBarycentricNV";
5313    case Op::OpCooperativeVectorLoadNV: return "OpCooperativeVectorLoadNV";
5314    case Op::OpCooperativeVectorStoreNV: return "OpCooperativeVectorStoreNV";
5315    case Op::OpHitObjectRecordFromQueryEXT: return "OpHitObjectRecordFromQueryEXT";
5316    case Op::OpHitObjectRecordMissEXT: return "OpHitObjectRecordMissEXT";
5317    case Op::OpHitObjectRecordMissMotionEXT: return "OpHitObjectRecordMissMotionEXT";
5318    case Op::OpHitObjectGetIntersectionTriangleVertexPositionsEXT: return "OpHitObjectGetIntersectionTriangleVertexPositionsEXT";
5319    case Op::OpHitObjectGetRayFlagsEXT: return "OpHitObjectGetRayFlagsEXT";
5320    case Op::OpHitObjectSetShaderBindingTableRecordIndexEXT: return "OpHitObjectSetShaderBindingTableRecordIndexEXT";
5321    case Op::OpHitObjectReorderExecuteShaderEXT: return "OpHitObjectReorderExecuteShaderEXT";
5322    case Op::OpHitObjectTraceReorderExecuteEXT: return "OpHitObjectTraceReorderExecuteEXT";
5323    case Op::OpHitObjectTraceMotionReorderExecuteEXT: return "OpHitObjectTraceMotionReorderExecuteEXT";
5324    case Op::OpTypeHitObjectEXT: return "OpTypeHitObjectEXT";
5325    case Op::OpReorderThreadWithHintEXT: return "OpReorderThreadWithHintEXT";
5326    case Op::OpReorderThreadWithHitObjectEXT: return "OpReorderThreadWithHitObjectEXT";
5327    case Op::OpHitObjectTraceRayEXT: return "OpHitObjectTraceRayEXT";
5328    case Op::OpHitObjectTraceRayMotionEXT: return "OpHitObjectTraceRayMotionEXT";
5329    case Op::OpHitObjectRecordEmptyEXT: return "OpHitObjectRecordEmptyEXT";
5330    case Op::OpHitObjectExecuteShaderEXT: return "OpHitObjectExecuteShaderEXT";
5331    case Op::OpHitObjectGetCurrentTimeEXT: return "OpHitObjectGetCurrentTimeEXT";
5332    case Op::OpHitObjectGetAttributesEXT: return "OpHitObjectGetAttributesEXT";
5333    case Op::OpHitObjectGetHitKindEXT: return "OpHitObjectGetHitKindEXT";
5334    case Op::OpHitObjectGetPrimitiveIndexEXT: return "OpHitObjectGetPrimitiveIndexEXT";
5335    case Op::OpHitObjectGetGeometryIndexEXT: return "OpHitObjectGetGeometryIndexEXT";
5336    case Op::OpHitObjectGetInstanceIdEXT: return "OpHitObjectGetInstanceIdEXT";
5337    case Op::OpHitObjectGetInstanceCustomIndexEXT: return "OpHitObjectGetInstanceCustomIndexEXT";
5338    case Op::OpHitObjectGetObjectRayOriginEXT: return "OpHitObjectGetObjectRayOriginEXT";
5339    case Op::OpHitObjectGetObjectRayDirectionEXT: return "OpHitObjectGetObjectRayDirectionEXT";
5340    case Op::OpHitObjectGetWorldRayDirectionEXT: return "OpHitObjectGetWorldRayDirectionEXT";
5341    case Op::OpHitObjectGetWorldRayOriginEXT: return "OpHitObjectGetWorldRayOriginEXT";
5342    case Op::OpHitObjectGetObjectToWorldEXT: return "OpHitObjectGetObjectToWorldEXT";
5343    case Op::OpHitObjectGetWorldToObjectEXT: return "OpHitObjectGetWorldToObjectEXT";
5344    case Op::OpHitObjectGetRayTMaxEXT: return "OpHitObjectGetRayTMaxEXT";
5345    case Op::OpReportIntersectionKHR: return "OpReportIntersectionKHR";
5346    case Op::OpIgnoreIntersectionNV: return "OpIgnoreIntersectionNV";
5347    case Op::OpTerminateRayNV: return "OpTerminateRayNV";
5348    case Op::OpTraceNV: return "OpTraceNV";
5349    case Op::OpTraceMotionNV: return "OpTraceMotionNV";
5350    case Op::OpTraceRayMotionNV: return "OpTraceRayMotionNV";
5351    case Op::OpRayQueryGetIntersectionTriangleVertexPositionsKHR: return "OpRayQueryGetIntersectionTriangleVertexPositionsKHR";
5352    case Op::OpTypeAccelerationStructureKHR: return "OpTypeAccelerationStructureKHR";
5353    case Op::OpExecuteCallableNV: return "OpExecuteCallableNV";
5354    case Op::OpRayQueryGetClusterIdNV: return "OpRayQueryGetClusterIdNV";
5355    case Op::OpHitObjectGetClusterIdNV: return "OpHitObjectGetClusterIdNV";
5356    case Op::OpHitObjectGetRayTMinEXT: return "OpHitObjectGetRayTMinEXT";
5357    case Op::OpHitObjectGetShaderBindingTableRecordIndexEXT: return "OpHitObjectGetShaderBindingTableRecordIndexEXT";
5358    case Op::OpHitObjectGetShaderRecordBufferHandleEXT: return "OpHitObjectGetShaderRecordBufferHandleEXT";
5359    case Op::OpHitObjectIsEmptyEXT: return "OpHitObjectIsEmptyEXT";
5360    case Op::OpHitObjectIsHitEXT: return "OpHitObjectIsHitEXT";
5361    case Op::OpHitObjectIsMissEXT: return "OpHitObjectIsMissEXT";
5362    case Op::OpTypeCooperativeMatrixNV: return "OpTypeCooperativeMatrixNV";
5363    case Op::OpCooperativeMatrixLoadNV: return "OpCooperativeMatrixLoadNV";
5364    case Op::OpCooperativeMatrixStoreNV: return "OpCooperativeMatrixStoreNV";
5365    case Op::OpCooperativeMatrixMulAddNV: return "OpCooperativeMatrixMulAddNV";
5366    case Op::OpCooperativeMatrixLengthNV: return "OpCooperativeMatrixLengthNV";
5367    case Op::OpCooperativeMatrixGetCoordinateEXT: return "OpCooperativeMatrixGetCoordinateEXT";
5368    case Op::OpBeginInvocationInterlockEXT: return "OpBeginInvocationInterlockEXT";
5369    case Op::OpEndInvocationInterlockEXT: return "OpEndInvocationInterlockEXT";
5370    case Op::OpCooperativeMatrixReduceEXT: return "OpCooperativeMatrixReduceEXT";
5371    case Op::OpCooperativeMatrixLoadTensorNV: return "OpCooperativeMatrixLoadTensorNV";
5372    case Op::OpCooperativeMatrixStoreTensorNV: return "OpCooperativeMatrixStoreTensorNV";
5373    case Op::OpCooperativeMatrixPerElementOpEXT: return "OpCooperativeMatrixPerElementOpEXT";
5374    case Op::OpTypeTensorLayoutNV: return "OpTypeTensorLayoutNV";
5375    case Op::OpTypeTensorViewNV: return "OpTypeTensorViewNV";
5376    case Op::OpCreateTensorLayoutNV: return "OpCreateTensorLayoutNV";
5377    case Op::OpTensorLayoutSetDimensionNV: return "OpTensorLayoutSetDimensionNV";
5378    case Op::OpTensorLayoutSetStrideNV: return "OpTensorLayoutSetStrideNV";
5379    case Op::OpTensorLayoutSliceNV: return "OpTensorLayoutSliceNV";
5380    case Op::OpTensorLayoutSetClampValueNV: return "OpTensorLayoutSetClampValueNV";
5381    case Op::OpCreateTensorViewNV: return "OpCreateTensorViewNV";
5382    case Op::OpTensorViewSetDimensionNV: return "OpTensorViewSetDimensionNV";
5383    case Op::OpTensorViewSetStrideNV: return "OpTensorViewSetStrideNV";
5384    case Op::OpDemoteToHelperInvocation: return "OpDemoteToHelperInvocation";
5385    case Op::OpIsHelperInvocationEXT: return "OpIsHelperInvocationEXT";
5386    case Op::OpTensorViewSetClipNV: return "OpTensorViewSetClipNV";
5387    case Op::OpTensorLayoutSetBlockSizeNV: return "OpTensorLayoutSetBlockSizeNV";
5388    case Op::OpCooperativeMatrixTransposeNV: return "OpCooperativeMatrixTransposeNV";
5389    case Op::OpConvertUToImageNV: return "OpConvertUToImageNV";
5390    case Op::OpConvertUToSamplerNV: return "OpConvertUToSamplerNV";
5391    case Op::OpConvertImageToUNV: return "OpConvertImageToUNV";
5392    case Op::OpConvertSamplerToUNV: return "OpConvertSamplerToUNV";
5393    case Op::OpConvertUToSampledImageNV: return "OpConvertUToSampledImageNV";
5394    case Op::OpConvertSampledImageToUNV: return "OpConvertSampledImageToUNV";
5395    case Op::OpSamplerImageAddressingModeNV: return "OpSamplerImageAddressingModeNV";
5396    case Op::OpRawAccessChainNV: return "OpRawAccessChainNV";
5397    case Op::OpRayQueryGetIntersectionSpherePositionNV: return "OpRayQueryGetIntersectionSpherePositionNV";
5398    case Op::OpRayQueryGetIntersectionSphereRadiusNV: return "OpRayQueryGetIntersectionSphereRadiusNV";
5399    case Op::OpRayQueryGetIntersectionLSSPositionsNV: return "OpRayQueryGetIntersectionLSSPositionsNV";
5400    case Op::OpRayQueryGetIntersectionLSSRadiiNV: return "OpRayQueryGetIntersectionLSSRadiiNV";
5401    case Op::OpRayQueryGetIntersectionLSSHitValueNV: return "OpRayQueryGetIntersectionLSSHitValueNV";
5402    case Op::OpHitObjectGetSpherePositionNV: return "OpHitObjectGetSpherePositionNV";
5403    case Op::OpHitObjectGetSphereRadiusNV: return "OpHitObjectGetSphereRadiusNV";
5404    case Op::OpHitObjectGetLSSPositionsNV: return "OpHitObjectGetLSSPositionsNV";
5405    case Op::OpHitObjectGetLSSRadiiNV: return "OpHitObjectGetLSSRadiiNV";
5406    case Op::OpHitObjectIsSphereHitNV: return "OpHitObjectIsSphereHitNV";
5407    case Op::OpHitObjectIsLSSHitNV: return "OpHitObjectIsLSSHitNV";
5408    case Op::OpRayQueryIsSphereHitNV: return "OpRayQueryIsSphereHitNV";
5409    case Op::OpRayQueryIsLSSHitNV: return "OpRayQueryIsLSSHitNV";
5410    case Op::OpSubgroupShuffleINTEL: return "OpSubgroupShuffleINTEL";
5411    case Op::OpSubgroupShuffleDownINTEL: return "OpSubgroupShuffleDownINTEL";
5412    case Op::OpSubgroupShuffleUpINTEL: return "OpSubgroupShuffleUpINTEL";
5413    case Op::OpSubgroupShuffleXorINTEL: return "OpSubgroupShuffleXorINTEL";
5414    case Op::OpSubgroupBlockReadINTEL: return "OpSubgroupBlockReadINTEL";
5415    case Op::OpSubgroupBlockWriteINTEL: return "OpSubgroupBlockWriteINTEL";
5416    case Op::OpSubgroupImageBlockReadINTEL: return "OpSubgroupImageBlockReadINTEL";
5417    case Op::OpSubgroupImageBlockWriteINTEL: return "OpSubgroupImageBlockWriteINTEL";
5418    case Op::OpSubgroupImageMediaBlockReadINTEL: return "OpSubgroupImageMediaBlockReadINTEL";
5419    case Op::OpSubgroupImageMediaBlockWriteINTEL: return "OpSubgroupImageMediaBlockWriteINTEL";
5420    case Op::OpUCountLeadingZerosINTEL: return "OpUCountLeadingZerosINTEL";
5421    case Op::OpUCountTrailingZerosINTEL: return "OpUCountTrailingZerosINTEL";
5422    case Op::OpAbsISubINTEL: return "OpAbsISubINTEL";
5423    case Op::OpAbsUSubINTEL: return "OpAbsUSubINTEL";
5424    case Op::OpIAddSatINTEL: return "OpIAddSatINTEL";
5425    case Op::OpUAddSatINTEL: return "OpUAddSatINTEL";
5426    case Op::OpIAverageINTEL: return "OpIAverageINTEL";
5427    case Op::OpUAverageINTEL: return "OpUAverageINTEL";
5428    case Op::OpIAverageRoundedINTEL: return "OpIAverageRoundedINTEL";
5429    case Op::OpUAverageRoundedINTEL: return "OpUAverageRoundedINTEL";
5430    case Op::OpISubSatINTEL: return "OpISubSatINTEL";
5431    case Op::OpUSubSatINTEL: return "OpUSubSatINTEL";
5432    case Op::OpIMul32x16INTEL: return "OpIMul32x16INTEL";
5433    case Op::OpUMul32x16INTEL: return "OpUMul32x16INTEL";
5434    case Op::OpConstantFunctionPointerINTEL: return "OpConstantFunctionPointerINTEL";
5435    case Op::OpFunctionPointerCallINTEL: return "OpFunctionPointerCallINTEL";
5436    case Op::OpAsmTargetINTEL: return "OpAsmTargetINTEL";
5437    case Op::OpAsmINTEL: return "OpAsmINTEL";
5438    case Op::OpAsmCallINTEL: return "OpAsmCallINTEL";
5439    case Op::OpAtomicFMinEXT: return "OpAtomicFMinEXT";
5440    case Op::OpAtomicFMaxEXT: return "OpAtomicFMaxEXT";
5441    case Op::OpAssumeTrueKHR: return "OpAssumeTrueKHR";
5442    case Op::OpExpectKHR: return "OpExpectKHR";
5443    case Op::OpDecorateString: return "OpDecorateString";
5444    case Op::OpMemberDecorateString: return "OpMemberDecorateString";
5445    case Op::OpVmeImageINTEL: return "OpVmeImageINTEL";
5446    case Op::OpTypeVmeImageINTEL: return "OpTypeVmeImageINTEL";
5447    case Op::OpTypeAvcImePayloadINTEL: return "OpTypeAvcImePayloadINTEL";
5448    case Op::OpTypeAvcRefPayloadINTEL: return "OpTypeAvcRefPayloadINTEL";
5449    case Op::OpTypeAvcSicPayloadINTEL: return "OpTypeAvcSicPayloadINTEL";
5450    case Op::OpTypeAvcMcePayloadINTEL: return "OpTypeAvcMcePayloadINTEL";
5451    case Op::OpTypeAvcMceResultINTEL: return "OpTypeAvcMceResultINTEL";
5452    case Op::OpTypeAvcImeResultINTEL: return "OpTypeAvcImeResultINTEL";
5453    case Op::OpTypeAvcImeResultSingleReferenceStreamoutINTEL: return "OpTypeAvcImeResultSingleReferenceStreamoutINTEL";
5454    case Op::OpTypeAvcImeResultDualReferenceStreamoutINTEL: return "OpTypeAvcImeResultDualReferenceStreamoutINTEL";
5455    case Op::OpTypeAvcImeSingleReferenceStreaminINTEL: return "OpTypeAvcImeSingleReferenceStreaminINTEL";
5456    case Op::OpTypeAvcImeDualReferenceStreaminINTEL: return "OpTypeAvcImeDualReferenceStreaminINTEL";
5457    case Op::OpTypeAvcRefResultINTEL: return "OpTypeAvcRefResultINTEL";
5458    case Op::OpTypeAvcSicResultINTEL: return "OpTypeAvcSicResultINTEL";
5459    case Op::OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL: return "OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL";
5460    case Op::OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL: return "OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL";
5461    case Op::OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL: return "OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL";
5462    case Op::OpSubgroupAvcMceSetInterShapePenaltyINTEL: return "OpSubgroupAvcMceSetInterShapePenaltyINTEL";
5463    case Op::OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL: return "OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL";
5464    case Op::OpSubgroupAvcMceSetInterDirectionPenaltyINTEL: return "OpSubgroupAvcMceSetInterDirectionPenaltyINTEL";
5465    case Op::OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL: return "OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL";
5466    case Op::OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL: return "OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL";
5467    case Op::OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL: return "OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL";
5468    case Op::OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL: return "OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL";
5469    case Op::OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL: return "OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL";
5470    case Op::OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL: return "OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL";
5471    case Op::OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL: return "OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL";
5472    case Op::OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL: return "OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL";
5473    case Op::OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL: return "OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL";
5474    case Op::OpSubgroupAvcMceSetAcOnlyHaarINTEL: return "OpSubgroupAvcMceSetAcOnlyHaarINTEL";
5475    case Op::OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL: return "OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL";
5476    case Op::OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL: return "OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL";
5477    case Op::OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL: return "OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL";
5478    case Op::OpSubgroupAvcMceConvertToImePayloadINTEL: return "OpSubgroupAvcMceConvertToImePayloadINTEL";
5479    case Op::OpSubgroupAvcMceConvertToImeResultINTEL: return "OpSubgroupAvcMceConvertToImeResultINTEL";
5480    case Op::OpSubgroupAvcMceConvertToRefPayloadINTEL: return "OpSubgroupAvcMceConvertToRefPayloadINTEL";
5481    case Op::OpSubgroupAvcMceConvertToRefResultINTEL: return "OpSubgroupAvcMceConvertToRefResultINTEL";
5482    case Op::OpSubgroupAvcMceConvertToSicPayloadINTEL: return "OpSubgroupAvcMceConvertToSicPayloadINTEL";
5483    case Op::OpSubgroupAvcMceConvertToSicResultINTEL: return "OpSubgroupAvcMceConvertToSicResultINTEL";
5484    case Op::OpSubgroupAvcMceGetMotionVectorsINTEL: return "OpSubgroupAvcMceGetMotionVectorsINTEL";
5485    case Op::OpSubgroupAvcMceGetInterDistortionsINTEL: return "OpSubgroupAvcMceGetInterDistortionsINTEL";
5486    case Op::OpSubgroupAvcMceGetBestInterDistortionsINTEL: return "OpSubgroupAvcMceGetBestInterDistortionsINTEL";
5487    case Op::OpSubgroupAvcMceGetInterMajorShapeINTEL: return "OpSubgroupAvcMceGetInterMajorShapeINTEL";
5488    case Op::OpSubgroupAvcMceGetInterMinorShapeINTEL: return "OpSubgroupAvcMceGetInterMinorShapeINTEL";
5489    case Op::OpSubgroupAvcMceGetInterDirectionsINTEL: return "OpSubgroupAvcMceGetInterDirectionsINTEL";
5490    case Op::OpSubgroupAvcMceGetInterMotionVectorCountINTEL: return "OpSubgroupAvcMceGetInterMotionVectorCountINTEL";
5491    case Op::OpSubgroupAvcMceGetInterReferenceIdsINTEL: return "OpSubgroupAvcMceGetInterReferenceIdsINTEL";
5492    case Op::OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL: return "OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL";
5493    case Op::OpSubgroupAvcImeInitializeINTEL: return "OpSubgroupAvcImeInitializeINTEL";
5494    case Op::OpSubgroupAvcImeSetSingleReferenceINTEL: return "OpSubgroupAvcImeSetSingleReferenceINTEL";
5495    case Op::OpSubgroupAvcImeSetDualReferenceINTEL: return "OpSubgroupAvcImeSetDualReferenceINTEL";
5496    case Op::OpSubgroupAvcImeRefWindowSizeINTEL: return "OpSubgroupAvcImeRefWindowSizeINTEL";
5497    case Op::OpSubgroupAvcImeAdjustRefOffsetINTEL: return "OpSubgroupAvcImeAdjustRefOffsetINTEL";
5498    case Op::OpSubgroupAvcImeConvertToMcePayloadINTEL: return "OpSubgroupAvcImeConvertToMcePayloadINTEL";
5499    case Op::OpSubgroupAvcImeSetMaxMotionVectorCountINTEL: return "OpSubgroupAvcImeSetMaxMotionVectorCountINTEL";
5500    case Op::OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL: return "OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL";
5501    case Op::OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL: return "OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL";
5502    case Op::OpSubgroupAvcImeSetWeightedSadINTEL: return "OpSubgroupAvcImeSetWeightedSadINTEL";
5503    case Op::OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL: return "OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL";
5504    case Op::OpSubgroupAvcImeEvaluateWithDualReferenceINTEL: return "OpSubgroupAvcImeEvaluateWithDualReferenceINTEL";
5505    case Op::OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL: return "OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL";
5506    case Op::OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL: return "OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL";
5507    case Op::OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL: return "OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL";
5508    case Op::OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL: return "OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL";
5509    case Op::OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL: return "OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL";
5510    case Op::OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL: return "OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL";
5511    case Op::OpSubgroupAvcImeConvertToMceResultINTEL: return "OpSubgroupAvcImeConvertToMceResultINTEL";
5512    case Op::OpSubgroupAvcImeGetSingleReferenceStreaminINTEL: return "OpSubgroupAvcImeGetSingleReferenceStreaminINTEL";
5513    case Op::OpSubgroupAvcImeGetDualReferenceStreaminINTEL: return "OpSubgroupAvcImeGetDualReferenceStreaminINTEL";
5514    case Op::OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL: return "OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL";
5515    case Op::OpSubgroupAvcImeStripDualReferenceStreamoutINTEL: return "OpSubgroupAvcImeStripDualReferenceStreamoutINTEL";
5516    case Op::OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL: return "OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL";
5517    case Op::OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL: return "OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL";
5518    case Op::OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL: return "OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL";
5519    case Op::OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL: return "OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL";
5520    case Op::OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL: return "OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL";
5521    case Op::OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL: return "OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL";
5522    case Op::OpSubgroupAvcImeGetBorderReachedINTEL: return "OpSubgroupAvcImeGetBorderReachedINTEL";
5523    case Op::OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL: return "OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL";
5524    case Op::OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL: return "OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL";
5525    case Op::OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL: return "OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL";
5526    case Op::OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL: return "OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL";
5527    case Op::OpSubgroupAvcFmeInitializeINTEL: return "OpSubgroupAvcFmeInitializeINTEL";
5528    case Op::OpSubgroupAvcBmeInitializeINTEL: return "OpSubgroupAvcBmeInitializeINTEL";
5529    case Op::OpSubgroupAvcRefConvertToMcePayloadINTEL: return "OpSubgroupAvcRefConvertToMcePayloadINTEL";
5530    case Op::OpSubgroupAvcRefSetBidirectionalMixDisableINTEL: return "OpSubgroupAvcRefSetBidirectionalMixDisableINTEL";
5531    case Op::OpSubgroupAvcRefSetBilinearFilterEnableINTEL: return "OpSubgroupAvcRefSetBilinearFilterEnableINTEL";
5532    case Op::OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL: return "OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL";
5533    case Op::OpSubgroupAvcRefEvaluateWithDualReferenceINTEL: return "OpSubgroupAvcRefEvaluateWithDualReferenceINTEL";
5534    case Op::OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL: return "OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL";
5535    case Op::OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL: return "OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL";
5536    case Op::OpSubgroupAvcRefConvertToMceResultINTEL: return "OpSubgroupAvcRefConvertToMceResultINTEL";
5537    case Op::OpSubgroupAvcSicInitializeINTEL: return "OpSubgroupAvcSicInitializeINTEL";
5538    case Op::OpSubgroupAvcSicConfigureSkcINTEL: return "OpSubgroupAvcSicConfigureSkcINTEL";
5539    case Op::OpSubgroupAvcSicConfigureIpeLumaINTEL: return "OpSubgroupAvcSicConfigureIpeLumaINTEL";
5540    case Op::OpSubgroupAvcSicConfigureIpeLumaChromaINTEL: return "OpSubgroupAvcSicConfigureIpeLumaChromaINTEL";
5541    case Op::OpSubgroupAvcSicGetMotionVectorMaskINTEL: return "OpSubgroupAvcSicGetMotionVectorMaskINTEL";
5542    case Op::OpSubgroupAvcSicConvertToMcePayloadINTEL: return "OpSubgroupAvcSicConvertToMcePayloadINTEL";
5543    case Op::OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL: return "OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL";
5544    case Op::OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL: return "OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL";
5545    case Op::OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL: return "OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL";
5546    case Op::OpSubgroupAvcSicSetBilinearFilterEnableINTEL: return "OpSubgroupAvcSicSetBilinearFilterEnableINTEL";
5547    case Op::OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL: return "OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL";
5548    case Op::OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL: return "OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL";
5549    case Op::OpSubgroupAvcSicEvaluateIpeINTEL: return "OpSubgroupAvcSicEvaluateIpeINTEL";
5550    case Op::OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL: return "OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL";
5551    case Op::OpSubgroupAvcSicEvaluateWithDualReferenceINTEL: return "OpSubgroupAvcSicEvaluateWithDualReferenceINTEL";
5552    case Op::OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL: return "OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL";
5553    case Op::OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL: return "OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL";
5554    case Op::OpSubgroupAvcSicConvertToMceResultINTEL: return "OpSubgroupAvcSicConvertToMceResultINTEL";
5555    case Op::OpSubgroupAvcSicGetIpeLumaShapeINTEL: return "OpSubgroupAvcSicGetIpeLumaShapeINTEL";
5556    case Op::OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL: return "OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL";
5557    case Op::OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL: return "OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL";
5558    case Op::OpSubgroupAvcSicGetPackedIpeLumaModesINTEL: return "OpSubgroupAvcSicGetPackedIpeLumaModesINTEL";
5559    case Op::OpSubgroupAvcSicGetIpeChromaModeINTEL: return "OpSubgroupAvcSicGetIpeChromaModeINTEL";
5560    case Op::OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL: return "OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL";
5561    case Op::OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL: return "OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL";
5562    case Op::OpSubgroupAvcSicGetInterRawSadsINTEL: return "OpSubgroupAvcSicGetInterRawSadsINTEL";
5563    case Op::OpVariableLengthArrayINTEL: return "OpVariableLengthArrayINTEL";
5564    case Op::OpSaveMemoryINTEL: return "OpSaveMemoryINTEL";
5565    case Op::OpRestoreMemoryINTEL: return "OpRestoreMemoryINTEL";
5566    case Op::OpArbitraryFloatSinCosPiALTERA: return "OpArbitraryFloatSinCosPiALTERA";
5567    case Op::OpArbitraryFloatCastALTERA: return "OpArbitraryFloatCastALTERA";
5568    case Op::OpArbitraryFloatCastFromIntALTERA: return "OpArbitraryFloatCastFromIntALTERA";
5569    case Op::OpArbitraryFloatCastToIntALTERA: return "OpArbitraryFloatCastToIntALTERA";
5570    case Op::OpArbitraryFloatAddALTERA: return "OpArbitraryFloatAddALTERA";
5571    case Op::OpArbitraryFloatSubALTERA: return "OpArbitraryFloatSubALTERA";
5572    case Op::OpArbitraryFloatMulALTERA: return "OpArbitraryFloatMulALTERA";
5573    case Op::OpArbitraryFloatDivALTERA: return "OpArbitraryFloatDivALTERA";
5574    case Op::OpArbitraryFloatGTALTERA: return "OpArbitraryFloatGTALTERA";
5575    case Op::OpArbitraryFloatGEALTERA: return "OpArbitraryFloatGEALTERA";
5576    case Op::OpArbitraryFloatLTALTERA: return "OpArbitraryFloatLTALTERA";
5577    case Op::OpArbitraryFloatLEALTERA: return "OpArbitraryFloatLEALTERA";
5578    case Op::OpArbitraryFloatEQALTERA: return "OpArbitraryFloatEQALTERA";
5579    case Op::OpArbitraryFloatRecipALTERA: return "OpArbitraryFloatRecipALTERA";
5580    case Op::OpArbitraryFloatRSqrtALTERA: return "OpArbitraryFloatRSqrtALTERA";
5581    case Op::OpArbitraryFloatCbrtALTERA: return "OpArbitraryFloatCbrtALTERA";
5582    case Op::OpArbitraryFloatHypotALTERA: return "OpArbitraryFloatHypotALTERA";
5583    case Op::OpArbitraryFloatSqrtALTERA: return "OpArbitraryFloatSqrtALTERA";
5584    case Op::OpArbitraryFloatLogINTEL: return "OpArbitraryFloatLogINTEL";
5585    case Op::OpArbitraryFloatLog2INTEL: return "OpArbitraryFloatLog2INTEL";
5586    case Op::OpArbitraryFloatLog10INTEL: return "OpArbitraryFloatLog10INTEL";
5587    case Op::OpArbitraryFloatLog1pINTEL: return "OpArbitraryFloatLog1pINTEL";
5588    case Op::OpArbitraryFloatExpINTEL: return "OpArbitraryFloatExpINTEL";
5589    case Op::OpArbitraryFloatExp2INTEL: return "OpArbitraryFloatExp2INTEL";
5590    case Op::OpArbitraryFloatExp10INTEL: return "OpArbitraryFloatExp10INTEL";
5591    case Op::OpArbitraryFloatExpm1INTEL: return "OpArbitraryFloatExpm1INTEL";
5592    case Op::OpArbitraryFloatSinINTEL: return "OpArbitraryFloatSinINTEL";
5593    case Op::OpArbitraryFloatCosINTEL: return "OpArbitraryFloatCosINTEL";
5594    case Op::OpArbitraryFloatSinCosINTEL: return "OpArbitraryFloatSinCosINTEL";
5595    case Op::OpArbitraryFloatSinPiINTEL: return "OpArbitraryFloatSinPiINTEL";
5596    case Op::OpArbitraryFloatCosPiINTEL: return "OpArbitraryFloatCosPiINTEL";
5597    case Op::OpArbitraryFloatASinINTEL: return "OpArbitraryFloatASinINTEL";
5598    case Op::OpArbitraryFloatASinPiINTEL: return "OpArbitraryFloatASinPiINTEL";
5599    case Op::OpArbitraryFloatACosINTEL: return "OpArbitraryFloatACosINTEL";
5600    case Op::OpArbitraryFloatACosPiINTEL: return "OpArbitraryFloatACosPiINTEL";
5601    case Op::OpArbitraryFloatATanINTEL: return "OpArbitraryFloatATanINTEL";
5602    case Op::OpArbitraryFloatATanPiINTEL: return "OpArbitraryFloatATanPiINTEL";
5603    case Op::OpArbitraryFloatATan2INTEL: return "OpArbitraryFloatATan2INTEL";
5604    case Op::OpArbitraryFloatPowINTEL: return "OpArbitraryFloatPowINTEL";
5605    case Op::OpArbitraryFloatPowRINTEL: return "OpArbitraryFloatPowRINTEL";
5606    case Op::OpArbitraryFloatPowNINTEL: return "OpArbitraryFloatPowNINTEL";
5607    case Op::OpLoopControlINTEL: return "OpLoopControlINTEL";
5608    case Op::OpAliasDomainDeclINTEL: return "OpAliasDomainDeclINTEL";
5609    case Op::OpAliasScopeDeclINTEL: return "OpAliasScopeDeclINTEL";
5610    case Op::OpAliasScopeListDeclINTEL: return "OpAliasScopeListDeclINTEL";
5611    case Op::OpFixedSqrtALTERA: return "OpFixedSqrtALTERA";
5612    case Op::OpFixedRecipALTERA: return "OpFixedRecipALTERA";
5613    case Op::OpFixedRsqrtALTERA: return "OpFixedRsqrtALTERA";
5614    case Op::OpFixedSinALTERA: return "OpFixedSinALTERA";
5615    case Op::OpFixedCosALTERA: return "OpFixedCosALTERA";
5616    case Op::OpFixedSinCosALTERA: return "OpFixedSinCosALTERA";
5617    case Op::OpFixedSinPiALTERA: return "OpFixedSinPiALTERA";
5618    case Op::OpFixedCosPiALTERA: return "OpFixedCosPiALTERA";
5619    case Op::OpFixedSinCosPiALTERA: return "OpFixedSinCosPiALTERA";
5620    case Op::OpFixedLogALTERA: return "OpFixedLogALTERA";
5621    case Op::OpFixedExpALTERA: return "OpFixedExpALTERA";
5622    case Op::OpPtrCastToCrossWorkgroupALTERA: return "OpPtrCastToCrossWorkgroupALTERA";
5623    case Op::OpCrossWorkgroupCastToPtrALTERA: return "OpCrossWorkgroupCastToPtrALTERA";
5624    case Op::OpReadPipeBlockingALTERA: return "OpReadPipeBlockingALTERA";
5625    case Op::OpWritePipeBlockingALTERA: return "OpWritePipeBlockingALTERA";
5626    case Op::OpFPGARegALTERA: return "OpFPGARegALTERA";
5627    case Op::OpRayQueryGetRayTMinKHR: return "OpRayQueryGetRayTMinKHR";
5628    case Op::OpRayQueryGetRayFlagsKHR: return "OpRayQueryGetRayFlagsKHR";
5629    case Op::OpRayQueryGetIntersectionTKHR: return "OpRayQueryGetIntersectionTKHR";
5630    case Op::OpRayQueryGetIntersectionInstanceCustomIndexKHR: return "OpRayQueryGetIntersectionInstanceCustomIndexKHR";
5631    case Op::OpRayQueryGetIntersectionInstanceIdKHR: return "OpRayQueryGetIntersectionInstanceIdKHR";
5632    case Op::OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR: return "OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR";
5633    case Op::OpRayQueryGetIntersectionGeometryIndexKHR: return "OpRayQueryGetIntersectionGeometryIndexKHR";
5634    case Op::OpRayQueryGetIntersectionPrimitiveIndexKHR: return "OpRayQueryGetIntersectionPrimitiveIndexKHR";
5635    case Op::OpRayQueryGetIntersectionBarycentricsKHR: return "OpRayQueryGetIntersectionBarycentricsKHR";
5636    case Op::OpRayQueryGetIntersectionFrontFaceKHR: return "OpRayQueryGetIntersectionFrontFaceKHR";
5637    case Op::OpRayQueryGetIntersectionCandidateAABBOpaqueKHR: return "OpRayQueryGetIntersectionCandidateAABBOpaqueKHR";
5638    case Op::OpRayQueryGetIntersectionObjectRayDirectionKHR: return "OpRayQueryGetIntersectionObjectRayDirectionKHR";
5639    case Op::OpRayQueryGetIntersectionObjectRayOriginKHR: return "OpRayQueryGetIntersectionObjectRayOriginKHR";
5640    case Op::OpRayQueryGetWorldRayDirectionKHR: return "OpRayQueryGetWorldRayDirectionKHR";
5641    case Op::OpRayQueryGetWorldRayOriginKHR: return "OpRayQueryGetWorldRayOriginKHR";
5642    case Op::OpRayQueryGetIntersectionObjectToWorldKHR: return "OpRayQueryGetIntersectionObjectToWorldKHR";
5643    case Op::OpRayQueryGetIntersectionWorldToObjectKHR: return "OpRayQueryGetIntersectionWorldToObjectKHR";
5644    case Op::OpAtomicFAddEXT: return "OpAtomicFAddEXT";
5645    case Op::OpTypeBufferSurfaceINTEL: return "OpTypeBufferSurfaceINTEL";
5646    case Op::OpTypeStructContinuedINTEL: return "OpTypeStructContinuedINTEL";
5647    case Op::OpConstantCompositeContinuedINTEL: return "OpConstantCompositeContinuedINTEL";
5648    case Op::OpSpecConstantCompositeContinuedINTEL: return "OpSpecConstantCompositeContinuedINTEL";
5649    case Op::OpCompositeConstructContinuedINTEL: return "OpCompositeConstructContinuedINTEL";
5650    case Op::OpConvertFToBF16INTEL: return "OpConvertFToBF16INTEL";
5651    case Op::OpConvertBF16ToFINTEL: return "OpConvertBF16ToFINTEL";
5652    case Op::OpControlBarrierArriveEXT: return "OpControlBarrierArriveEXT";
5653    case Op::OpControlBarrierWaitEXT: return "OpControlBarrierWaitEXT";
5654    case Op::OpArithmeticFenceEXT: return "OpArithmeticFenceEXT";
5655    case Op::OpTaskSequenceCreateALTERA: return "OpTaskSequenceCreateALTERA";
5656    case Op::OpTaskSequenceAsyncALTERA: return "OpTaskSequenceAsyncALTERA";
5657    case Op::OpTaskSequenceGetALTERA: return "OpTaskSequenceGetALTERA";
5658    case Op::OpTaskSequenceReleaseALTERA: return "OpTaskSequenceReleaseALTERA";
5659    case Op::OpTypeTaskSequenceALTERA: return "OpTypeTaskSequenceALTERA";
5660    case Op::OpSubgroupBlockPrefetchINTEL: return "OpSubgroupBlockPrefetchINTEL";
5661    case Op::OpSubgroup2DBlockLoadINTEL: return "OpSubgroup2DBlockLoadINTEL";
5662    case Op::OpSubgroup2DBlockLoadTransformINTEL: return "OpSubgroup2DBlockLoadTransformINTEL";
5663    case Op::OpSubgroup2DBlockLoadTransposeINTEL: return "OpSubgroup2DBlockLoadTransposeINTEL";
5664    case Op::OpSubgroup2DBlockPrefetchINTEL: return "OpSubgroup2DBlockPrefetchINTEL";
5665    case Op::OpSubgroup2DBlockStoreINTEL: return "OpSubgroup2DBlockStoreINTEL";
5666    case Op::OpSubgroupMatrixMultiplyAccumulateINTEL: return "OpSubgroupMatrixMultiplyAccumulateINTEL";
5667    case Op::OpBitwiseFunctionINTEL: return "OpBitwiseFunctionINTEL";
5668    case Op::OpUntypedVariableLengthArrayINTEL: return "OpUntypedVariableLengthArrayINTEL";
5669    case Op::OpConditionalExtensionINTEL: return "OpConditionalExtensionINTEL";
5670    case Op::OpConditionalEntryPointINTEL: return "OpConditionalEntryPointINTEL";
5671    case Op::OpConditionalCapabilityINTEL: return "OpConditionalCapabilityINTEL";
5672    case Op::OpSpecConstantTargetINTEL: return "OpSpecConstantTargetINTEL";
5673    case Op::OpSpecConstantArchitectureINTEL: return "OpSpecConstantArchitectureINTEL";
5674    case Op::OpSpecConstantCapabilitiesINTEL: return "OpSpecConstantCapabilitiesINTEL";
5675    case Op::OpConditionalCopyObjectINTEL: return "OpConditionalCopyObjectINTEL";
5676    case Op::OpPredicatedLoadINTEL: return "OpPredicatedLoadINTEL";
5677    case Op::OpPredicatedStoreINTEL: return "OpPredicatedStoreINTEL";
5678    case Op::OpGroupIMulKHR: return "OpGroupIMulKHR";
5679    case Op::OpGroupFMulKHR: return "OpGroupFMulKHR";
5680    case Op::OpGroupBitwiseAndKHR: return "OpGroupBitwiseAndKHR";
5681    case Op::OpGroupBitwiseOrKHR: return "OpGroupBitwiseOrKHR";
5682    case Op::OpGroupBitwiseXorKHR: return "OpGroupBitwiseXorKHR";
5683    case Op::OpGroupLogicalAndKHR: return "OpGroupLogicalAndKHR";
5684    case Op::OpGroupLogicalOrKHR: return "OpGroupLogicalOrKHR";
5685    case Op::OpGroupLogicalXorKHR: return "OpGroupLogicalXorKHR";
5686    case Op::OpRoundFToTF32INTEL: return "OpRoundFToTF32INTEL";
5687    case Op::OpMaskedGatherINTEL: return "OpMaskedGatherINTEL";
5688    case Op::OpMaskedScatterINTEL: return "OpMaskedScatterINTEL";
5689    case Op::OpConvertHandleToImageINTEL: return "OpConvertHandleToImageINTEL";
5690    case Op::OpConvertHandleToSamplerINTEL: return "OpConvertHandleToSamplerINTEL";
5691    case Op::OpConvertHandleToSampledImageINTEL: return "OpConvertHandleToSampledImageINTEL";
5692    case Op::OpFDot2MixAcc32VALVE: return "OpFDot2MixAcc32VALVE";
5693    case Op::OpFDot2MixAcc16VALVE: return "OpFDot2MixAcc16VALVE";
5694    case Op::OpFDot4MixAcc32VALVE: return "OpFDot4MixAcc32VALVE";
5695    default: return "Unknown";
5696    }
5697}
5698
5699#endif /* SPV_ENABLE_UTILITY_CODE */
5700
5701// Overload bitwise operators for mask bit combining
5702
5703constexpr ImageOperandsMask operator|(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) | unsigned(b)); }
5704constexpr ImageOperandsMask operator&(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) & unsigned(b)); }
5705constexpr ImageOperandsMask operator^(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) ^ unsigned(b)); }
5706constexpr ImageOperandsMask operator~(ImageOperandsMask a) { return ImageOperandsMask(~unsigned(a)); }
5707constexpr FPFastMathModeMask operator|(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) | unsigned(b)); }
5708constexpr FPFastMathModeMask operator&(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) & unsigned(b)); }
5709constexpr FPFastMathModeMask operator^(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) ^ unsigned(b)); }
5710constexpr FPFastMathModeMask operator~(FPFastMathModeMask a) { return FPFastMathModeMask(~unsigned(a)); }
5711constexpr SelectionControlMask operator|(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) | unsigned(b)); }
5712constexpr SelectionControlMask operator&(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) & unsigned(b)); }
5713constexpr SelectionControlMask operator^(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) ^ unsigned(b)); }
5714constexpr SelectionControlMask operator~(SelectionControlMask a) { return SelectionControlMask(~unsigned(a)); }
5715constexpr LoopControlMask operator|(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) | unsigned(b)); }
5716constexpr LoopControlMask operator&(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) & unsigned(b)); }
5717constexpr LoopControlMask operator^(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) ^ unsigned(b)); }
5718constexpr LoopControlMask operator~(LoopControlMask a) { return LoopControlMask(~unsigned(a)); }
5719constexpr FunctionControlMask operator|(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) | unsigned(b)); }
5720constexpr FunctionControlMask operator&(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) & unsigned(b)); }
5721constexpr FunctionControlMask operator^(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) ^ unsigned(b)); }
5722constexpr FunctionControlMask operator~(FunctionControlMask a) { return FunctionControlMask(~unsigned(a)); }
5723constexpr MemorySemanticsMask operator|(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) | unsigned(b)); }
5724constexpr MemorySemanticsMask operator&(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) & unsigned(b)); }
5725constexpr MemorySemanticsMask operator^(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) ^ unsigned(b)); }
5726constexpr MemorySemanticsMask operator~(MemorySemanticsMask a) { return MemorySemanticsMask(~unsigned(a)); }
5727constexpr MemoryAccessMask operator|(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) | unsigned(b)); }
5728constexpr MemoryAccessMask operator&(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) & unsigned(b)); }
5729constexpr MemoryAccessMask operator^(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) ^ unsigned(b)); }
5730constexpr MemoryAccessMask operator~(MemoryAccessMask a) { return MemoryAccessMask(~unsigned(a)); }
5731constexpr KernelProfilingInfoMask operator|(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) | unsigned(b)); }
5732constexpr KernelProfilingInfoMask operator&(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) & unsigned(b)); }
5733constexpr KernelProfilingInfoMask operator^(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) ^ unsigned(b)); }
5734constexpr KernelProfilingInfoMask operator~(KernelProfilingInfoMask a) { return KernelProfilingInfoMask(~unsigned(a)); }
5735constexpr RayFlagsMask operator|(RayFlagsMask a, RayFlagsMask b) { return RayFlagsMask(unsigned(a) | unsigned(b)); }
5736constexpr RayFlagsMask operator&(RayFlagsMask a, RayFlagsMask b) { return RayFlagsMask(unsigned(a) & unsigned(b)); }
5737constexpr RayFlagsMask operator^(RayFlagsMask a, RayFlagsMask b) { return RayFlagsMask(unsigned(a) ^ unsigned(b)); }
5738constexpr RayFlagsMask operator~(RayFlagsMask a) { return RayFlagsMask(~unsigned(a)); }
5739constexpr FragmentShadingRateMask operator|(FragmentShadingRateMask a, FragmentShadingRateMask b) { return FragmentShadingRateMask(unsigned(a) | unsigned(b)); }
5740constexpr FragmentShadingRateMask operator&(FragmentShadingRateMask a, FragmentShadingRateMask b) { return FragmentShadingRateMask(unsigned(a) & unsigned(b)); }
5741constexpr FragmentShadingRateMask operator^(FragmentShadingRateMask a, FragmentShadingRateMask b) { return FragmentShadingRateMask(unsigned(a) ^ unsigned(b)); }
5742constexpr FragmentShadingRateMask operator~(FragmentShadingRateMask a) { return FragmentShadingRateMask(~unsigned(a)); }
5743constexpr CooperativeMatrixOperandsMask operator|(CooperativeMatrixOperandsMask a, CooperativeMatrixOperandsMask b) { return CooperativeMatrixOperandsMask(unsigned(a) | unsigned(b)); }
5744constexpr CooperativeMatrixOperandsMask operator&(CooperativeMatrixOperandsMask a, CooperativeMatrixOperandsMask b) { return CooperativeMatrixOperandsMask(unsigned(a) & unsigned(b)); }
5745constexpr CooperativeMatrixOperandsMask operator^(CooperativeMatrixOperandsMask a, CooperativeMatrixOperandsMask b) { return CooperativeMatrixOperandsMask(unsigned(a) ^ unsigned(b)); }
5746constexpr CooperativeMatrixOperandsMask operator~(CooperativeMatrixOperandsMask a) { return CooperativeMatrixOperandsMask(~unsigned(a)); }
5747constexpr CooperativeMatrixReduceMask operator|(CooperativeMatrixReduceMask a, CooperativeMatrixReduceMask b) { return CooperativeMatrixReduceMask(unsigned(a) | unsigned(b)); }
5748constexpr CooperativeMatrixReduceMask operator&(CooperativeMatrixReduceMask a, CooperativeMatrixReduceMask b) { return CooperativeMatrixReduceMask(unsigned(a) & unsigned(b)); }
5749constexpr CooperativeMatrixReduceMask operator^(CooperativeMatrixReduceMask a, CooperativeMatrixReduceMask b) { return CooperativeMatrixReduceMask(unsigned(a) ^ unsigned(b)); }
5750constexpr CooperativeMatrixReduceMask operator~(CooperativeMatrixReduceMask a) { return CooperativeMatrixReduceMask(~unsigned(a)); }
5751constexpr TensorAddressingOperandsMask operator|(TensorAddressingOperandsMask a, TensorAddressingOperandsMask b) { return TensorAddressingOperandsMask(unsigned(a) | unsigned(b)); }
5752constexpr TensorAddressingOperandsMask operator&(TensorAddressingOperandsMask a, TensorAddressingOperandsMask b) { return TensorAddressingOperandsMask(unsigned(a) & unsigned(b)); }
5753constexpr TensorAddressingOperandsMask operator^(TensorAddressingOperandsMask a, TensorAddressingOperandsMask b) { return TensorAddressingOperandsMask(unsigned(a) ^ unsigned(b)); }
5754constexpr TensorAddressingOperandsMask operator~(TensorAddressingOperandsMask a) { return TensorAddressingOperandsMask(~unsigned(a)); }
5755constexpr TensorOperandsMask operator|(TensorOperandsMask a, TensorOperandsMask b) { return TensorOperandsMask(unsigned(a) | unsigned(b)); }
5756constexpr TensorOperandsMask operator&(TensorOperandsMask a, TensorOperandsMask b) { return TensorOperandsMask(unsigned(a) & unsigned(b)); }
5757constexpr TensorOperandsMask operator^(TensorOperandsMask a, TensorOperandsMask b) { return TensorOperandsMask(unsigned(a) ^ unsigned(b)); }
5758constexpr TensorOperandsMask operator~(TensorOperandsMask a) { return TensorOperandsMask(~unsigned(a)); }
5759constexpr MatrixMultiplyAccumulateOperandsMask operator|(MatrixMultiplyAccumulateOperandsMask a, MatrixMultiplyAccumulateOperandsMask b) { return MatrixMultiplyAccumulateOperandsMask(unsigned(a) | unsigned(b)); }
5760constexpr MatrixMultiplyAccumulateOperandsMask operator&(MatrixMultiplyAccumulateOperandsMask a, MatrixMultiplyAccumulateOperandsMask b) { return MatrixMultiplyAccumulateOperandsMask(unsigned(a) & unsigned(b)); }
5761constexpr MatrixMultiplyAccumulateOperandsMask operator^(MatrixMultiplyAccumulateOperandsMask a, MatrixMultiplyAccumulateOperandsMask b) { return MatrixMultiplyAccumulateOperandsMask(unsigned(a) ^ unsigned(b)); }
5762constexpr MatrixMultiplyAccumulateOperandsMask operator~(MatrixMultiplyAccumulateOperandsMask a) { return MatrixMultiplyAccumulateOperandsMask(~unsigned(a)); }
5763constexpr RawAccessChainOperandsMask operator|(RawAccessChainOperandsMask a, RawAccessChainOperandsMask b) { return RawAccessChainOperandsMask(unsigned(a) | unsigned(b)); }
5764constexpr RawAccessChainOperandsMask operator&(RawAccessChainOperandsMask a, RawAccessChainOperandsMask b) { return RawAccessChainOperandsMask(unsigned(a) & unsigned(b)); }
5765constexpr RawAccessChainOperandsMask operator^(RawAccessChainOperandsMask a, RawAccessChainOperandsMask b) { return RawAccessChainOperandsMask(unsigned(a) ^ unsigned(b)); }
5766constexpr RawAccessChainOperandsMask operator~(RawAccessChainOperandsMask a) { return RawAccessChainOperandsMask(~unsigned(a)); }
5767
5768}  // end namespace spv
5769
5770#endif  // #ifndef spirv_HPP
5771