# Copyright (c) 2014-2019 The Khronos Group Inc.
# 
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and/or associated documentation files (the "Materials"),
# to deal in the Materials without restriction, including without limitation
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
# and/or sell copies of the Materials, and to permit persons to whom the
# Materials are furnished to do so, subject to the following conditions:
# 
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Materials.
# 
# MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS
# STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND
# HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ 
# 
# THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
# FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS
# IN THE MATERIALS.

# This header is automatically generated by the same tool that creates
# the Binary Section of the SPIR-V specification.

# Enumeration tokens for SPIR-V, in various styles:
#   C, C++, C++11, JSON, Lua, Python, C#, D
# 
# - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL
# - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL
# - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL
# - Lua will use tables, e.g.: spv.SourceLanguage.GLSL
# - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL']
# - C# will use enum classes in the Specification class located in the "Spv" namespace,
#     e.g.: Spv.Specification.SourceLanguage.GLSL
# - D will have tokens under the "spv" module, e.g: spv.SourceLanguage.GLSL
# 
# Some tokens act like mask values, which can be OR'd together,
# while others are mutually exclusive.  The mask-like ones have
# "Mask" in their name, and a parallel enum that has the shift
# amount (1 << x) for each corresponding enumerant.

spv = {
    'MagicNumber' : 0x07230203,
    'Version' : 0x00010300,
    'Revision' : 6,
    'OpCodeMask' : 0xffff,
    'WordCountShift' : 16,

    'SourceLanguage' : {
        'Unknown' : 0,
        'ESSL' : 1,
        'GLSL' : 2,
        'OpenCL_C' : 3,
        'OpenCL_CPP' : 4,
        'HLSL' : 5,
    },

    'ExecutionModel' : {
        'Vertex' : 0,
        'TessellationControl' : 1,
        'TessellationEvaluation' : 2,
        'Geometry' : 3,
        'Fragment' : 4,
        'GLCompute' : 5,
        'Kernel' : 6,
        'TaskNV' : 5267,
        'MeshNV' : 5268,
        'RayGenerationNV' : 5313,
        'IntersectionNV' : 5314,
        'AnyHitNV' : 5315,
        'ClosestHitNV' : 5316,
        'MissNV' : 5317,
        'CallableNV' : 5318,
    },

    'AddressingModel' : {
        'Logical' : 0,
        'Physical32' : 1,
        'Physical64' : 2,
        'PhysicalStorageBuffer64EXT' : 5348,
    },

    'MemoryModel' : {
        'Simple' : 0,
        'GLSL450' : 1,
        'OpenCL' : 2,
        'VulkanKHR' : 3,
    },

    'ExecutionMode' : {
        'Invocations' : 0,
        'SpacingEqual' : 1,
        'SpacingFractionalEven' : 2,
        'SpacingFractionalOdd' : 3,
        'VertexOrderCw' : 4,
        'VertexOrderCcw' : 5,
        'PixelCenterInteger' : 6,
        'OriginUpperLeft' : 7,
        'OriginLowerLeft' : 8,
        'EarlyFragmentTests' : 9,
        'PointMode' : 10,
        'Xfb' : 11,
        'DepthReplacing' : 12,
        'DepthGreater' : 14,
        'DepthLess' : 15,
        'DepthUnchanged' : 16,
        'LocalSize' : 17,
        'LocalSizeHint' : 18,
        'InputPoints' : 19,
        'InputLines' : 20,
        'InputLinesAdjacency' : 21,
        'Triangles' : 22,
        'InputTrianglesAdjacency' : 23,
        'Quads' : 24,
        'Isolines' : 25,
        'OutputVertices' : 26,
        'OutputPoints' : 27,
        'OutputLineStrip' : 28,
        'OutputTriangleStrip' : 29,
        'VecTypeHint' : 30,
        'ContractionOff' : 31,
        'Initializer' : 33,
        'Finalizer' : 34,
        'SubgroupSize' : 35,
        'SubgroupsPerWorkgroup' : 36,
        'SubgroupsPerWorkgroupId' : 37,
        'LocalSizeId' : 38,
        'LocalSizeHintId' : 39,
        'PostDepthCoverage' : 4446,
        'DenormPreserve' : 4459,
        'DenormFlushToZero' : 4460,
        'SignedZeroInfNanPreserve' : 4461,
        'RoundingModeRTE' : 4462,
        'RoundingModeRTZ' : 4463,
        'StencilRefReplacingEXT' : 5027,
        'OutputLinesNV' : 5269,
        'OutputPrimitivesNV' : 5270,
        'DerivativeGroupQuadsNV' : 5289,
        'DerivativeGroupLinearNV' : 5290,
        'OutputTrianglesNV' : 5298,
    },

    'StorageClass' : {
        'UniformConstant' : 0,
        'Input' : 1,
        'Uniform' : 2,
        'Output' : 3,
        'Workgroup' : 4,
        'CrossWorkgroup' : 5,
        'Private' : 6,
        'Function' : 7,
        'Generic' : 8,
        'PushConstant' : 9,
        'AtomicCounter' : 10,
        'Image' : 11,
        'StorageBuffer' : 12,
        'CallableDataNV' : 5328,
        'IncomingCallableDataNV' : 5329,
        'RayPayloadNV' : 5338,
        'HitAttributeNV' : 5339,
        'IncomingRayPayloadNV' : 5342,
        'ShaderRecordBufferNV' : 5343,
        'PhysicalStorageBufferEXT' : 5349,
    },

    'Dim' : {
        'Dim1D' : 0,
        'Dim2D' : 1,
        'Dim3D' : 2,
        'Cube' : 3,
        'Rect' : 4,
        'Buffer' : 5,
        'SubpassData' : 6,
    },

    'SamplerAddressingMode' : {
        'None' : 0,
        'ClampToEdge' : 1,
        'Clamp' : 2,
        'Repeat' : 3,
        'RepeatMirrored' : 4,
    },

    'SamplerFilterMode' : {
        'Nearest' : 0,
        'Linear' : 1,
    },

    'ImageFormat' : {
        'Unknown' : 0,
        'Rgba32f' : 1,
        'Rgba16f' : 2,
        'R32f' : 3,
        'Rgba8' : 4,
        'Rgba8Snorm' : 5,
        'Rg32f' : 6,
        'Rg16f' : 7,
        'R11fG11fB10f' : 8,
        'R16f' : 9,
        'Rgba16' : 10,
        'Rgb10A2' : 11,
        'Rg16' : 12,
        'Rg8' : 13,
        'R16' : 14,
        'R8' : 15,
        'Rgba16Snorm' : 16,
        'Rg16Snorm' : 17,
        'Rg8Snorm' : 18,
        'R16Snorm' : 19,
        'R8Snorm' : 20,
        'Rgba32i' : 21,
        'Rgba16i' : 22,
        'Rgba8i' : 23,
        'R32i' : 24,
        'Rg32i' : 25,
        'Rg16i' : 26,
        'Rg8i' : 27,
        'R16i' : 28,
        'R8i' : 29,
        'Rgba32ui' : 30,
        'Rgba16ui' : 31,
        'Rgba8ui' : 32,
        'R32ui' : 33,
        'Rgb10a2ui' : 34,
        'Rg32ui' : 35,
        'Rg16ui' : 36,
        'Rg8ui' : 37,
        'R16ui' : 38,
        'R8ui' : 39,
    },

    'ImageChannelOrder' : {
        'R' : 0,
        'A' : 1,
        'RG' : 2,
        'RA' : 3,
        'RGB' : 4,
        'RGBA' : 5,
        'BGRA' : 6,
        'ARGB' : 7,
        'Intensity' : 8,
        'Luminance' : 9,
        'Rx' : 10,
        'RGx' : 11,
        'RGBx' : 12,
        'Depth' : 13,
        'DepthStencil' : 14,
        'sRGB' : 15,
        'sRGBx' : 16,
        'sRGBA' : 17,
        'sBGRA' : 18,
        'ABGR' : 19,
    },

    'ImageChannelDataType' : {
        'SnormInt8' : 0,
        'SnormInt16' : 1,
        'UnormInt8' : 2,
        'UnormInt16' : 3,
        'UnormShort565' : 4,
        'UnormShort555' : 5,
        'UnormInt101010' : 6,
        'SignedInt8' : 7,
        'SignedInt16' : 8,
        'SignedInt32' : 9,
        'UnsignedInt8' : 10,
        'UnsignedInt16' : 11,
        'UnsignedInt32' : 12,
        'HalfFloat' : 13,
        'Float' : 14,
        'UnormInt24' : 15,
        'UnormInt101010_2' : 16,
    },

    'ImageOperandsShift' : {
        'Bias' : 0,
        'Lod' : 1,
        'Grad' : 2,
        'ConstOffset' : 3,
        'Offset' : 4,
        'ConstOffsets' : 5,
        'Sample' : 6,
        'MinLod' : 7,
        'MakeTexelAvailableKHR' : 8,
        'MakeTexelVisibleKHR' : 9,
        'NonPrivateTexelKHR' : 10,
        'VolatileTexelKHR' : 11,
    },

    'ImageOperandsMask' : {
        'MaskNone' : 0,
        'Bias' : 0x00000001,
        'Lod' : 0x00000002,
        'Grad' : 0x00000004,
        'ConstOffset' : 0x00000008,
        'Offset' : 0x00000010,
        'ConstOffsets' : 0x00000020,
        'Sample' : 0x00000040,
        'MinLod' : 0x00000080,
        'MakeTexelAvailableKHR' : 0x00000100,
        'MakeTexelVisibleKHR' : 0x00000200,
        'NonPrivateTexelKHR' : 0x00000400,
        'VolatileTexelKHR' : 0x00000800,
    },

    'FPFastMathModeShift' : {
        'NotNaN' : 0,
        'NotInf' : 1,
        'NSZ' : 2,
        'AllowRecip' : 3,
        'Fast' : 4,
    },

    'FPFastMathModeMask' : {
        'MaskNone' : 0,
        'NotNaN' : 0x00000001,
        'NotInf' : 0x00000002,
        'NSZ' : 0x00000004,
        'AllowRecip' : 0x00000008,
        'Fast' : 0x00000010,
    },

    'FPRoundingMode' : {
        'RTE' : 0,
        'RTZ' : 1,
        'RTP' : 2,
        'RTN' : 3,
    },

    'LinkageType' : {
        'Export' : 0,
        'Import' : 1,
    },

    'AccessQualifier' : {
        'ReadOnly' : 0,
        'WriteOnly' : 1,
        'ReadWrite' : 2,
    },

    'FunctionParameterAttribute' : {
        'Zext' : 0,
        'Sext' : 1,
        'ByVal' : 2,
        'Sret' : 3,
        'NoAlias' : 4,
        'NoCapture' : 5,
        'NoWrite' : 6,
        'NoReadWrite' : 7,
    },

    'Decoration' : {
        'RelaxedPrecision' : 0,
        'SpecId' : 1,
        'Block' : 2,
        'BufferBlock' : 3,
        'RowMajor' : 4,
        'ColMajor' : 5,
        'ArrayStride' : 6,
        'MatrixStride' : 7,
        'GLSLShared' : 8,
        'GLSLPacked' : 9,
        'CPacked' : 10,
        'BuiltIn' : 11,
        'NoPerspective' : 13,
        'Flat' : 14,
        'Patch' : 15,
        'Centroid' : 16,
        'Sample' : 17,
        'Invariant' : 18,
        'Restrict' : 19,
        'Aliased' : 20,
        'Volatile' : 21,
        'Constant' : 22,
        'Coherent' : 23,
        'NonWritable' : 24,
        'NonReadable' : 25,
        'Uniform' : 26,
        'SaturatedConversion' : 28,
        'Stream' : 29,
        'Location' : 30,
        'Component' : 31,
        'Index' : 32,
        'Binding' : 33,
        'DescriptorSet' : 34,
        'Offset' : 35,
        'XfbBuffer' : 36,
        'XfbStride' : 37,
        'FuncParamAttr' : 38,
        'FPRoundingMode' : 39,
        'FPFastMathMode' : 40,
        'LinkageAttributes' : 41,
        'NoContraction' : 42,
        'InputAttachmentIndex' : 43,
        'Alignment' : 44,
        'MaxByteOffset' : 45,
        'AlignmentId' : 46,
        'MaxByteOffsetId' : 47,
        'NoSignedWrap' : 4469,
        'NoUnsignedWrap' : 4470,
        'ExplicitInterpAMD' : 4999,
        'OverrideCoverageNV' : 5248,
        'PassthroughNV' : 5250,
        'ViewportRelativeNV' : 5252,
        'SecondaryViewportRelativeNV' : 5256,
        'PerPrimitiveNV' : 5271,
        'PerViewNV' : 5272,
        'PerTaskNV' : 5273,
        'PerVertexNV' : 5285,
        'NonUniformEXT' : 5300,
        'RestrictPointerEXT' : 5355,
        'AliasedPointerEXT' : 5356,
        'HlslCounterBufferGOOGLE' : 5634,
        'HlslSemanticGOOGLE' : 5635,
    },

    'BuiltIn' : {
        'Position' : 0,
        'PointSize' : 1,
        'ClipDistance' : 3,
        'CullDistance' : 4,
        'VertexId' : 5,
        'InstanceId' : 6,
        'PrimitiveId' : 7,
        'InvocationId' : 8,
        'Layer' : 9,
        'ViewportIndex' : 10,
        'TessLevelOuter' : 11,
        'TessLevelInner' : 12,
        'TessCoord' : 13,
        'PatchVertices' : 14,
        'FragCoord' : 15,
        'PointCoord' : 16,
        'FrontFacing' : 17,
        'SampleId' : 18,
        'SamplePosition' : 19,
        'SampleMask' : 20,
        'FragDepth' : 22,
        'HelperInvocation' : 23,
        'NumWorkgroups' : 24,
        'WorkgroupSize' : 25,
        'WorkgroupId' : 26,
        'LocalInvocationId' : 27,
        'GlobalInvocationId' : 28,
        'LocalInvocationIndex' : 29,
        'WorkDim' : 30,
        'GlobalSize' : 31,
        'EnqueuedWorkgroupSize' : 32,
        'GlobalOffset' : 33,
        'GlobalLinearId' : 34,
        'SubgroupSize' : 36,
        'SubgroupMaxSize' : 37,
        'NumSubgroups' : 38,
        'NumEnqueuedSubgroups' : 39,
        'SubgroupId' : 40,
        'SubgroupLocalInvocationId' : 41,
        'VertexIndex' : 42,
        'InstanceIndex' : 43,
        'SubgroupEqMask' : 4416,
        'SubgroupEqMaskKHR' : 4416,
        'SubgroupGeMask' : 4417,
        'SubgroupGeMaskKHR' : 4417,
        'SubgroupGtMask' : 4418,
        'SubgroupGtMaskKHR' : 4418,
        'SubgroupLeMask' : 4419,
        'SubgroupLeMaskKHR' : 4419,
        'SubgroupLtMask' : 4420,
        'SubgroupLtMaskKHR' : 4420,
        'BaseVertex' : 4424,
        'BaseInstance' : 4425,
        'DrawIndex' : 4426,
        'DeviceIndex' : 4438,
        'ViewIndex' : 4440,
        'BaryCoordNoPerspAMD' : 4992,
        'BaryCoordNoPerspCentroidAMD' : 4993,
        'BaryCoordNoPerspSampleAMD' : 4994,
        'BaryCoordSmoothAMD' : 4995,
        'BaryCoordSmoothCentroidAMD' : 4996,
        'BaryCoordSmoothSampleAMD' : 4997,
        'BaryCoordPullModelAMD' : 4998,
        'FragStencilRefEXT' : 5014,
        'ViewportMaskNV' : 5253,
        'SecondaryPositionNV' : 5257,
        'SecondaryViewportMaskNV' : 5258,
        'PositionPerViewNV' : 5261,
        'ViewportMaskPerViewNV' : 5262,
        'FullyCoveredEXT' : 5264,
        'TaskCountNV' : 5274,
        'PrimitiveCountNV' : 5275,
        'PrimitiveIndicesNV' : 5276,
        'ClipDistancePerViewNV' : 5277,
        'CullDistancePerViewNV' : 5278,
        'LayerPerViewNV' : 5279,
        'MeshViewCountNV' : 5280,
        'MeshViewIndicesNV' : 5281,
        'BaryCoordNV' : 5286,
        'BaryCoordNoPerspNV' : 5287,
        'FragSizeEXT' : 5292,
        'FragmentSizeNV' : 5292,
        'FragInvocationCountEXT' : 5293,
        'InvocationsPerPixelNV' : 5293,
        'LaunchIdNV' : 5319,
        'LaunchSizeNV' : 5320,
        'WorldRayOriginNV' : 5321,
        'WorldRayDirectionNV' : 5322,
        'ObjectRayOriginNV' : 5323,
        'ObjectRayDirectionNV' : 5324,
        'RayTminNV' : 5325,
        'RayTmaxNV' : 5326,
        'InstanceCustomIndexNV' : 5327,
        'ObjectToWorldNV' : 5330,
        'WorldToObjectNV' : 5331,
        'HitTNV' : 5332,
        'HitKindNV' : 5333,
        'IncomingRayFlagsNV' : 5351,
    },

    'SelectionControlShift' : {
        'Flatten' : 0,
        'DontFlatten' : 1,
    },

    'SelectionControlMask' : {
        'MaskNone' : 0,
        'Flatten' : 0x00000001,
        'DontFlatten' : 0x00000002,
    },

    'LoopControlShift' : {
        'Unroll' : 0,
        'DontUnroll' : 1,
        'DependencyInfinite' : 2,
        'DependencyLength' : 3,
    },

    'LoopControlMask' : {
        'MaskNone' : 0,
        'Unroll' : 0x00000001,
        'DontUnroll' : 0x00000002,
        'DependencyInfinite' : 0x00000004,
        'DependencyLength' : 0x00000008,
    },

    'FunctionControlShift' : {
        'Inline' : 0,
        'DontInline' : 1,
        'Pure' : 2,
        'Const' : 3,
    },

    'FunctionControlMask' : {
        'MaskNone' : 0,
        'Inline' : 0x00000001,
        'DontInline' : 0x00000002,
        'Pure' : 0x00000004,
        'Const' : 0x00000008,
    },

    'MemorySemanticsShift' : {
        'Acquire' : 1,
        'Release' : 2,
        'AcquireRelease' : 3,
        'SequentiallyConsistent' : 4,
        'UniformMemory' : 6,
        'SubgroupMemory' : 7,
        'WorkgroupMemory' : 8,
        'CrossWorkgroupMemory' : 9,
        'AtomicCounterMemory' : 10,
        'ImageMemory' : 11,
        'OutputMemoryKHR' : 12,
        'MakeAvailableKHR' : 13,
        'MakeVisibleKHR' : 14,
    },

    'MemorySemanticsMask' : {
        'MaskNone' : 0,
        'Acquire' : 0x00000002,
        'Release' : 0x00000004,
        'AcquireRelease' : 0x00000008,
        'SequentiallyConsistent' : 0x00000010,
        'UniformMemory' : 0x00000040,
        'SubgroupMemory' : 0x00000080,
        'WorkgroupMemory' : 0x00000100,
        'CrossWorkgroupMemory' : 0x00000200,
        'AtomicCounterMemory' : 0x00000400,
        'ImageMemory' : 0x00000800,
        'OutputMemoryKHR' : 0x00001000,
        'MakeAvailableKHR' : 0x00002000,
        'MakeVisibleKHR' : 0x00004000,
    },

    'MemoryAccessShift' : {
        'Volatile' : 0,
        'Aligned' : 1,
        'Nontemporal' : 2,
        'MakePointerAvailableKHR' : 3,
        'MakePointerVisibleKHR' : 4,
        'NonPrivatePointerKHR' : 5,
    },

    'MemoryAccessMask' : {
        'MaskNone' : 0,
        'Volatile' : 0x00000001,
        'Aligned' : 0x00000002,
        'Nontemporal' : 0x00000004,
        'MakePointerAvailableKHR' : 0x00000008,
        'MakePointerVisibleKHR' : 0x00000010,
        'NonPrivatePointerKHR' : 0x00000020,
    },

    'Scope' : {
        'CrossDevice' : 0,
        'Device' : 1,
        'Workgroup' : 2,
        'Subgroup' : 3,
        'Invocation' : 4,
        'QueueFamilyKHR' : 5,
    },

    'GroupOperation' : {
        'Reduce' : 0,
        'InclusiveScan' : 1,
        'ExclusiveScan' : 2,
        'ClusteredReduce' : 3,
        'PartitionedReduceNV' : 6,
        'PartitionedInclusiveScanNV' : 7,
        'PartitionedExclusiveScanNV' : 8,
    },

    'KernelEnqueueFlags' : {
        'NoWait' : 0,
        'WaitKernel' : 1,
        'WaitWorkGroup' : 2,
    },

    'KernelProfilingInfoShift' : {
        'CmdExecTime' : 0,
    },

    'KernelProfilingInfoMask' : {
        'MaskNone' : 0,
        'CmdExecTime' : 0x00000001,
    },

    'Capability' : {
        'Matrix' : 0,
        'Shader' : 1,
        'Geometry' : 2,
        'Tessellation' : 3,
        'Addresses' : 4,
        'Linkage' : 5,
        'Kernel' : 6,
        'Vector16' : 7,
        'Float16Buffer' : 8,
        'Float16' : 9,
        'Float64' : 10,
        'Int64' : 11,
        'Int64Atomics' : 12,
        'ImageBasic' : 13,
        'ImageReadWrite' : 14,
        'ImageMipmap' : 15,
        'Pipes' : 17,
        'Groups' : 18,
        'DeviceEnqueue' : 19,
        'LiteralSampler' : 20,
        'AtomicStorage' : 21,
        'Int16' : 22,
        'TessellationPointSize' : 23,
        'GeometryPointSize' : 24,
        'ImageGatherExtended' : 25,
        'StorageImageMultisample' : 27,
        'UniformBufferArrayDynamicIndexing' : 28,
        'SampledImageArrayDynamicIndexing' : 29,
        'StorageBufferArrayDynamicIndexing' : 30,
        'StorageImageArrayDynamicIndexing' : 31,
        'ClipDistance' : 32,
        'CullDistance' : 33,
        'ImageCubeArray' : 34,
        'SampleRateShading' : 35,
        'ImageRect' : 36,
        'SampledRect' : 37,
        'GenericPointer' : 38,
        'Int8' : 39,
        'InputAttachment' : 40,
        'SparseResidency' : 41,
        'MinLod' : 42,
        'Sampled1D' : 43,
        'Image1D' : 44,
        'SampledCubeArray' : 45,
        'SampledBuffer' : 46,
        'ImageBuffer' : 47,
        'ImageMSArray' : 48,
        'StorageImageExtendedFormats' : 49,
        'ImageQuery' : 50,
        'DerivativeControl' : 51,
        'InterpolationFunction' : 52,
        'TransformFeedback' : 53,
        'GeometryStreams' : 54,
        'StorageImageReadWithoutFormat' : 55,
        'StorageImageWriteWithoutFormat' : 56,
        'MultiViewport' : 57,
        'SubgroupDispatch' : 58,
        'NamedBarrier' : 59,
        'PipeStorage' : 60,
        'GroupNonUniform' : 61,
        'GroupNonUniformVote' : 62,
        'GroupNonUniformArithmetic' : 63,
        'GroupNonUniformBallot' : 64,
        'GroupNonUniformShuffle' : 65,
        'GroupNonUniformShuffleRelative' : 66,
        'GroupNonUniformClustered' : 67,
        'GroupNonUniformQuad' : 68,
        'SubgroupBallotKHR' : 4423,
        'DrawParameters' : 4427,
        'SubgroupVoteKHR' : 4431,
        'StorageBuffer16BitAccess' : 4433,
        'StorageUniformBufferBlock16' : 4433,
        'StorageUniform16' : 4434,
        'UniformAndStorageBuffer16BitAccess' : 4434,
        'StoragePushConstant16' : 4435,
        'StorageInputOutput16' : 4436,
        'DeviceGroup' : 4437,
        'MultiView' : 4439,
        'VariablePointersStorageBuffer' : 4441,
        'VariablePointers' : 4442,
        'AtomicStorageOps' : 4445,
        'SampleMaskPostDepthCoverage' : 4447,
        'StorageBuffer8BitAccess' : 4448,
        'UniformAndStorageBuffer8BitAccess' : 4449,
        'StoragePushConstant8' : 4450,
        'DenormPreserve' : 4464,
        'DenormFlushToZero' : 4465,
        'SignedZeroInfNanPreserve' : 4466,
        'RoundingModeRTE' : 4467,
        'RoundingModeRTZ' : 4468,
        'Float16ImageAMD' : 5008,
        'ImageGatherBiasLodAMD' : 5009,
        'FragmentMaskAMD' : 5010,
        'StencilExportEXT' : 5013,
        'ImageReadWriteLodAMD' : 5015,
        'SampleMaskOverrideCoverageNV' : 5249,
        'GeometryShaderPassthroughNV' : 5251,
        'ShaderViewportIndexLayerEXT' : 5254,
        'ShaderViewportIndexLayerNV' : 5254,
        'ShaderViewportMaskNV' : 5255,
        'ShaderStereoViewNV' : 5259,
        'PerViewAttributesNV' : 5260,
        'FragmentFullyCoveredEXT' : 5265,
        'MeshShadingNV' : 5266,
        'ImageFootprintNV' : 5282,
        'FragmentBarycentricNV' : 5284,
        'ComputeDerivativeGroupQuadsNV' : 5288,
        'FragmentDensityEXT' : 5291,
        'ShadingRateNV' : 5291,
        'GroupNonUniformPartitionedNV' : 5297,
        'ShaderNonUniformEXT' : 5301,
        'RuntimeDescriptorArrayEXT' : 5302,
        'InputAttachmentArrayDynamicIndexingEXT' : 5303,
        'UniformTexelBufferArrayDynamicIndexingEXT' : 5304,
        'StorageTexelBufferArrayDynamicIndexingEXT' : 5305,
        'UniformBufferArrayNonUniformIndexingEXT' : 5306,
        'SampledImageArrayNonUniformIndexingEXT' : 5307,
        'StorageBufferArrayNonUniformIndexingEXT' : 5308,
        'StorageImageArrayNonUniformIndexingEXT' : 5309,
        'InputAttachmentArrayNonUniformIndexingEXT' : 5310,
        'UniformTexelBufferArrayNonUniformIndexingEXT' : 5311,
        'StorageTexelBufferArrayNonUniformIndexingEXT' : 5312,
        'RayTracingNV' : 5340,
        'VulkanMemoryModelKHR' : 5345,
        'VulkanMemoryModelDeviceScopeKHR' : 5346,
        'PhysicalStorageBufferAddressesEXT' : 5347,
        'ComputeDerivativeGroupLinearNV' : 5350,
        'SubgroupShuffleINTEL' : 5568,
        'SubgroupBufferBlockIOINTEL' : 5569,
        'SubgroupImageBlockIOINTEL' : 5570,
    },

    'Op' : {
        'OpNop' : 0,
        'OpUndef' : 1,
        'OpSourceContinued' : 2,
        'OpSource' : 3,
        'OpSourceExtension' : 4,
        'OpName' : 5,
        'OpMemberName' : 6,
        'OpString' : 7,
        'OpLine' : 8,
        'OpExtension' : 10,
        'OpExtInstImport' : 11,
        'OpExtInst' : 12,
        'OpMemoryModel' : 14,
        'OpEntryPoint' : 15,
        'OpExecutionMode' : 16,
        'OpCapability' : 17,
        'OpTypeVoid' : 19,
        'OpTypeBool' : 20,
        'OpTypeInt' : 21,
        'OpTypeFloat' : 22,
        'OpTypeVector' : 23,
        'OpTypeMatrix' : 24,
        'OpTypeImage' : 25,
        'OpTypeSampler' : 26,
        'OpTypeSampledImage' : 27,
        'OpTypeArray' : 28,
        'OpTypeRuntimeArray' : 29,
        'OpTypeStruct' : 30,
        'OpTypeOpaque' : 31,
        'OpTypePointer' : 32,
        'OpTypeFunction' : 33,
        'OpTypeEvent' : 34,
        'OpTypeDeviceEvent' : 35,
        'OpTypeReserveId' : 36,
        'OpTypeQueue' : 37,
        'OpTypePipe' : 38,
        'OpTypeForwardPointer' : 39,
        'OpConstantTrue' : 41,
        'OpConstantFalse' : 42,
        'OpConstant' : 43,
        'OpConstantComposite' : 44,
        'OpConstantSampler' : 45,
        'OpConstantNull' : 46,
        'OpSpecConstantTrue' : 48,
        'OpSpecConstantFalse' : 49,
        'OpSpecConstant' : 50,
        'OpSpecConstantComposite' : 51,
        'OpSpecConstantOp' : 52,
        'OpFunction' : 54,
        'OpFunctionParameter' : 55,
        'OpFunctionEnd' : 56,
        'OpFunctionCall' : 57,
        'OpVariable' : 59,
        'OpImageTexelPointer' : 60,
        'OpLoad' : 61,
        'OpStore' : 62,
        'OpCopyMemory' : 63,
        'OpCopyMemorySized' : 64,
        'OpAccessChain' : 65,
        'OpInBoundsAccessChain' : 66,
        'OpPtrAccessChain' : 67,
        'OpArrayLength' : 68,
        'OpGenericPtrMemSemantics' : 69,
        'OpInBoundsPtrAccessChain' : 70,
        'OpDecorate' : 71,
        'OpMemberDecorate' : 72,
        'OpDecorationGroup' : 73,
        'OpGroupDecorate' : 74,
        'OpGroupMemberDecorate' : 75,
        'OpVectorExtractDynamic' : 77,
        'OpVectorInsertDynamic' : 78,
        'OpVectorShuffle' : 79,
        'OpCompositeConstruct' : 80,
        'OpCompositeExtract' : 81,
        'OpCompositeInsert' : 82,
        'OpCopyObject' : 83,
        'OpTranspose' : 84,
        'OpSampledImage' : 86,
        'OpImageSampleImplicitLod' : 87,
        'OpImageSampleExplicitLod' : 88,
        'OpImageSampleDrefImplicitLod' : 89,
        'OpImageSampleDrefExplicitLod' : 90,
        'OpImageSampleProjImplicitLod' : 91,
        'OpImageSampleProjExplicitLod' : 92,
        'OpImageSampleProjDrefImplicitLod' : 93,
        'OpImageSampleProjDrefExplicitLod' : 94,
        'OpImageFetch' : 95,
        'OpImageGather' : 96,
        'OpImageDrefGather' : 97,
        'OpImageRead' : 98,
        'OpImageWrite' : 99,
        'OpImage' : 100,
        'OpImageQueryFormat' : 101,
        'OpImageQueryOrder' : 102,
        'OpImageQuerySizeLod' : 103,
        'OpImageQuerySize' : 104,
        'OpImageQueryLod' : 105,
        'OpImageQueryLevels' : 106,
        'OpImageQuerySamples' : 107,
        'OpConvertFToU' : 109,
        'OpConvertFToS' : 110,
        'OpConvertSToF' : 111,
        'OpConvertUToF' : 112,
        'OpUConvert' : 113,
        'OpSConvert' : 114,
        'OpFConvert' : 115,
        'OpQuantizeToF16' : 116,
        'OpConvertPtrToU' : 117,
        'OpSatConvertSToU' : 118,
        'OpSatConvertUToS' : 119,
        'OpConvertUToPtr' : 120,
        'OpPtrCastToGeneric' : 121,
        'OpGenericCastToPtr' : 122,
        'OpGenericCastToPtrExplicit' : 123,
        'OpBitcast' : 124,
        'OpSNegate' : 126,
        'OpFNegate' : 127,
        'OpIAdd' : 128,
        'OpFAdd' : 129,
        'OpISub' : 130,
        'OpFSub' : 131,
        'OpIMul' : 132,
        'OpFMul' : 133,
        'OpUDiv' : 134,
        'OpSDiv' : 135,
        'OpFDiv' : 136,
        'OpUMod' : 137,
        'OpSRem' : 138,
        'OpSMod' : 139,
        'OpFRem' : 140,
        'OpFMod' : 141,
        'OpVectorTimesScalar' : 142,
        'OpMatrixTimesScalar' : 143,
        'OpVectorTimesMatrix' : 144,
        'OpMatrixTimesVector' : 145,
        'OpMatrixTimesMatrix' : 146,
        'OpOuterProduct' : 147,
        'OpDot' : 148,
        'OpIAddCarry' : 149,
        'OpISubBorrow' : 150,
        'OpUMulExtended' : 151,
        'OpSMulExtended' : 152,
        'OpAny' : 154,
        'OpAll' : 155,
        'OpIsNan' : 156,
        'OpIsInf' : 157,
        'OpIsFinite' : 158,
        'OpIsNormal' : 159,
        'OpSignBitSet' : 160,
        'OpLessOrGreater' : 161,
        'OpOrdered' : 162,
        'OpUnordered' : 163,
        'OpLogicalEqual' : 164,
        'OpLogicalNotEqual' : 165,
        'OpLogicalOr' : 166,
        'OpLogicalAnd' : 167,
        'OpLogicalNot' : 168,
        'OpSelect' : 169,
        'OpIEqual' : 170,
        'OpINotEqual' : 171,
        'OpUGreaterThan' : 172,
        'OpSGreaterThan' : 173,
        'OpUGreaterThanEqual' : 174,
        'OpSGreaterThanEqual' : 175,
        'OpULessThan' : 176,
        'OpSLessThan' : 177,
        'OpULessThanEqual' : 178,
        'OpSLessThanEqual' : 179,
        'OpFOrdEqual' : 180,
        'OpFUnordEqual' : 181,
        'OpFOrdNotEqual' : 182,
        'OpFUnordNotEqual' : 183,
        'OpFOrdLessThan' : 184,
        'OpFUnordLessThan' : 185,
        'OpFOrdGreaterThan' : 186,
        'OpFUnordGreaterThan' : 187,
        'OpFOrdLessThanEqual' : 188,
        'OpFUnordLessThanEqual' : 189,
        'OpFOrdGreaterThanEqual' : 190,
        'OpFUnordGreaterThanEqual' : 191,
        'OpShiftRightLogical' : 194,
        'OpShiftRightArithmetic' : 195,
        'OpShiftLeftLogical' : 196,
        'OpBitwiseOr' : 197,
        'OpBitwiseXor' : 198,
        'OpBitwiseAnd' : 199,
        'OpNot' : 200,
        'OpBitFieldInsert' : 201,
        'OpBitFieldSExtract' : 202,
        'OpBitFieldUExtract' : 203,
        'OpBitReverse' : 204,
        'OpBitCount' : 205,
        'OpDPdx' : 207,
        'OpDPdy' : 208,
        'OpFwidth' : 209,
        'OpDPdxFine' : 210,
        'OpDPdyFine' : 211,
        'OpFwidthFine' : 212,
        'OpDPdxCoarse' : 213,
        'OpDPdyCoarse' : 214,
        'OpFwidthCoarse' : 215,
        'OpEmitVertex' : 218,
        'OpEndPrimitive' : 219,
        'OpEmitStreamVertex' : 220,
        'OpEndStreamPrimitive' : 221,
        'OpControlBarrier' : 224,
        'OpMemoryBarrier' : 225,
        'OpAtomicLoad' : 227,
        'OpAtomicStore' : 228,
        'OpAtomicExchange' : 229,
        'OpAtomicCompareExchange' : 230,
        'OpAtomicCompareExchangeWeak' : 231,
        'OpAtomicIIncrement' : 232,
        'OpAtomicIDecrement' : 233,
        'OpAtomicIAdd' : 234,
        'OpAtomicISub' : 235,
        'OpAtomicSMin' : 236,
        'OpAtomicUMin' : 237,
        'OpAtomicSMax' : 238,
        'OpAtomicUMax' : 239,
        'OpAtomicAnd' : 240,
        'OpAtomicOr' : 241,
        'OpAtomicXor' : 242,
        'OpPhi' : 245,
        'OpLoopMerge' : 246,
        'OpSelectionMerge' : 247,
        'OpLabel' : 248,
        'OpBranch' : 249,
        'OpBranchConditional' : 250,
        'OpSwitch' : 251,
        'OpKill' : 252,
        'OpReturn' : 253,
        'OpReturnValue' : 254,
        'OpUnreachable' : 255,
        'OpLifetimeStart' : 256,
        'OpLifetimeStop' : 257,
        'OpGroupAsyncCopy' : 259,
        'OpGroupWaitEvents' : 260,
        'OpGroupAll' : 261,
        'OpGroupAny' : 262,
        'OpGroupBroadcast' : 263,
        'OpGroupIAdd' : 264,
        'OpGroupFAdd' : 265,
        'OpGroupFMin' : 266,
        'OpGroupUMin' : 267,
        'OpGroupSMin' : 268,
        'OpGroupFMax' : 269,
        'OpGroupUMax' : 270,
        'OpGroupSMax' : 271,
        'OpReadPipe' : 274,
        'OpWritePipe' : 275,
        'OpReservedReadPipe' : 276,
        'OpReservedWritePipe' : 277,
        'OpReserveReadPipePackets' : 278,
        'OpReserveWritePipePackets' : 279,
        'OpCommitReadPipe' : 280,
        'OpCommitWritePipe' : 281,
        'OpIsValidReserveId' : 282,
        'OpGetNumPipePackets' : 283,
        'OpGetMaxPipePackets' : 284,
        'OpGroupReserveReadPipePackets' : 285,
        'OpGroupReserveWritePipePackets' : 286,
        'OpGroupCommitReadPipe' : 287,
        'OpGroupCommitWritePipe' : 288,
        'OpEnqueueMarker' : 291,
        'OpEnqueueKernel' : 292,
        'OpGetKernelNDrangeSubGroupCount' : 293,
        'OpGetKernelNDrangeMaxSubGroupSize' : 294,
        'OpGetKernelWorkGroupSize' : 295,
        'OpGetKernelPreferredWorkGroupSizeMultiple' : 296,
        'OpRetainEvent' : 297,
        'OpReleaseEvent' : 298,
        'OpCreateUserEvent' : 299,
        'OpIsValidEvent' : 300,
        'OpSetUserEventStatus' : 301,
        'OpCaptureEventProfilingInfo' : 302,
        'OpGetDefaultQueue' : 303,
        'OpBuildNDRange' : 304,
        'OpImageSparseSampleImplicitLod' : 305,
        'OpImageSparseSampleExplicitLod' : 306,
        'OpImageSparseSampleDrefImplicitLod' : 307,
        'OpImageSparseSampleDrefExplicitLod' : 308,
        'OpImageSparseSampleProjImplicitLod' : 309,
        'OpImageSparseSampleProjExplicitLod' : 310,
        'OpImageSparseSampleProjDrefImplicitLod' : 311,
        'OpImageSparseSampleProjDrefExplicitLod' : 312,
        'OpImageSparseFetch' : 313,
        'OpImageSparseGather' : 314,
        'OpImageSparseDrefGather' : 315,
        'OpImageSparseTexelsResident' : 316,
        'OpNoLine' : 317,
        'OpAtomicFlagTestAndSet' : 318,
        'OpAtomicFlagClear' : 319,
        'OpImageSparseRead' : 320,
        'OpSizeOf' : 321,
        'OpTypePipeStorage' : 322,
        'OpConstantPipeStorage' : 323,
        'OpCreatePipeFromPipeStorage' : 324,
        'OpGetKernelLocalSizeForSubgroupCount' : 325,
        'OpGetKernelMaxNumSubgroups' : 326,
        'OpTypeNamedBarrier' : 327,
        'OpNamedBarrierInitialize' : 328,
        'OpMemoryNamedBarrier' : 329,
        'OpModuleProcessed' : 330,
        'OpExecutionModeId' : 331,
        'OpDecorateId' : 332,
        'OpGroupNonUniformElect' : 333,
        'OpGroupNonUniformAll' : 334,
        'OpGroupNonUniformAny' : 335,
        'OpGroupNonUniformAllEqual' : 336,
        'OpGroupNonUniformBroadcast' : 337,
        'OpGroupNonUniformBroadcastFirst' : 338,
        'OpGroupNonUniformBallot' : 339,
        'OpGroupNonUniformInverseBallot' : 340,
        'OpGroupNonUniformBallotBitExtract' : 341,
        'OpGroupNonUniformBallotBitCount' : 342,
        'OpGroupNonUniformBallotFindLSB' : 343,
        'OpGroupNonUniformBallotFindMSB' : 344,
        'OpGroupNonUniformShuffle' : 345,
        'OpGroupNonUniformShuffleXor' : 346,
        'OpGroupNonUniformShuffleUp' : 347,
        'OpGroupNonUniformShuffleDown' : 348,
        'OpGroupNonUniformIAdd' : 349,
        'OpGroupNonUniformFAdd' : 350,
        'OpGroupNonUniformIMul' : 351,
        'OpGroupNonUniformFMul' : 352,
        'OpGroupNonUniformSMin' : 353,
        'OpGroupNonUniformUMin' : 354,
        'OpGroupNonUniformFMin' : 355,
        'OpGroupNonUniformSMax' : 356,
        'OpGroupNonUniformUMax' : 357,
        'OpGroupNonUniformFMax' : 358,
        'OpGroupNonUniformBitwiseAnd' : 359,
        'OpGroupNonUniformBitwiseOr' : 360,
        'OpGroupNonUniformBitwiseXor' : 361,
        'OpGroupNonUniformLogicalAnd' : 362,
        'OpGroupNonUniformLogicalOr' : 363,
        'OpGroupNonUniformLogicalXor' : 364,
        'OpGroupNonUniformQuadBroadcast' : 365,
        'OpGroupNonUniformQuadSwap' : 366,
        'OpSubgroupBallotKHR' : 4421,
        'OpSubgroupFirstInvocationKHR' : 4422,
        'OpSubgroupAllKHR' : 4428,
        'OpSubgroupAnyKHR' : 4429,
        'OpSubgroupAllEqualKHR' : 4430,
        'OpSubgroupReadInvocationKHR' : 4432,
        'OpGroupIAddNonUniformAMD' : 5000,
        'OpGroupFAddNonUniformAMD' : 5001,
        'OpGroupFMinNonUniformAMD' : 5002,
        'OpGroupUMinNonUniformAMD' : 5003,
        'OpGroupSMinNonUniformAMD' : 5004,
        'OpGroupFMaxNonUniformAMD' : 5005,
        'OpGroupUMaxNonUniformAMD' : 5006,
        'OpGroupSMaxNonUniformAMD' : 5007,
        'OpFragmentMaskFetchAMD' : 5011,
        'OpFragmentFetchAMD' : 5012,
        'OpImageSampleFootprintNV' : 5283,
        'OpGroupNonUniformPartitionNV' : 5296,
        'OpWritePackedPrimitiveIndices4x8NV' : 5299,
        'OpReportIntersectionNV' : 5334,
        'OpIgnoreIntersectionNV' : 5335,
        'OpTerminateRayNV' : 5336,
        'OpTraceNV' : 5337,
        'OpTypeAccelerationStructureNV' : 5341,
        'OpExecuteCallableNV' : 5344,
        'OpSubgroupShuffleINTEL' : 5571,
        'OpSubgroupShuffleDownINTEL' : 5572,
        'OpSubgroupShuffleUpINTEL' : 5573,
        'OpSubgroupShuffleXorINTEL' : 5574,
        'OpSubgroupBlockReadINTEL' : 5575,
        'OpSubgroupBlockWriteINTEL' : 5576,
        'OpSubgroupImageBlockReadINTEL' : 5577,
        'OpSubgroupImageBlockWriteINTEL' : 5578,
        'OpDecorateStringGOOGLE' : 5632,
        'OpMemberDecorateStringGOOGLE' : 5633,
    },

}