// Copyright (c) 2014-2018 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#
// 
// - 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
// 
// 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.

namespace Spv
{

    public static class Specification
    {
        public const uint MagicNumber = 0x07230203;
        public const uint Version = 0x00010200;
        public const uint Revision = 2;
        public const uint OpCodeMask = 0xffff;
        public const uint WordCountShift = 16;

        public enum SourceLanguage
        {
            Unknown = 0,
            ESSL = 1,
            GLSL = 2,
            OpenCL_C = 3,
            OpenCL_CPP = 4,
            HLSL = 5,
        }

        public enum ExecutionModel
        {
            Vertex = 0,
            TessellationControl = 1,
            TessellationEvaluation = 2,
            Geometry = 3,
            Fragment = 4,
            GLCompute = 5,
            Kernel = 6,
        }

        public enum AddressingModel
        {
            Logical = 0,
            Physical32 = 1,
            Physical64 = 2,
        }

        public enum MemoryModel
        {
            Simple = 0,
            GLSL450 = 1,
            OpenCL = 2,
        }

        public enum 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,
            StencilRefReplacingEXT = 5027,
        }

        public enum 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,
        }

        public enum Dim
        {
            Dim1D = 0,
            Dim2D = 1,
            Dim3D = 2,
            Cube = 3,
            Rect = 4,
            Buffer = 5,
            SubpassData = 6,
        }

        public enum SamplerAddressingMode
        {
            None = 0,
            ClampToEdge = 1,
            Clamp = 2,
            Repeat = 3,
            RepeatMirrored = 4,
        }

        public enum SamplerFilterMode
        {
            Nearest = 0,
            Linear = 1,
        }

        public enum 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,
        }

        public enum 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,
        }

        public enum 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,
        }

        public enum ImageOperandsShift
        {
            Bias = 0,
            Lod = 1,
            Grad = 2,
            ConstOffset = 3,
            Offset = 4,
            ConstOffsets = 5,
            Sample = 6,
            MinLod = 7,
        }

        public enum ImageOperandsMask
        {
            MaskNone = 0,
            Bias = 0x00000001,
            Lod = 0x00000002,
            Grad = 0x00000004,
            ConstOffset = 0x00000008,
            Offset = 0x00000010,
            ConstOffsets = 0x00000020,
            Sample = 0x00000040,
            MinLod = 0x00000080,
        }

        public enum FPFastMathModeShift
        {
            NotNaN = 0,
            NotInf = 1,
            NSZ = 2,
            AllowRecip = 3,
            Fast = 4,
        }

        public enum FPFastMathModeMask
        {
            MaskNone = 0,
            NotNaN = 0x00000001,
            NotInf = 0x00000002,
            NSZ = 0x00000004,
            AllowRecip = 0x00000008,
            Fast = 0x00000010,
        }

        public enum FPRoundingMode
        {
            RTE = 0,
            RTZ = 1,
            RTP = 2,
            RTN = 3,
        }

        public enum LinkageType
        {
            Export = 0,
            Import = 1,
        }

        public enum AccessQualifier
        {
            ReadOnly = 0,
            WriteOnly = 1,
            ReadWrite = 2,
        }

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

        public enum 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,
            ExplicitInterpAMD = 4999,
            OverrideCoverageNV = 5248,
            PassthroughNV = 5250,
            ViewportRelativeNV = 5252,
            SecondaryViewportRelativeNV = 5256,
            HlslCounterBufferGOOGLE = 5634,
            HlslSemanticGOOGLE = 5635,
        }

        public enum 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,
            SubgroupEqMaskKHR = 4416,
            SubgroupGeMaskKHR = 4417,
            SubgroupGtMaskKHR = 4418,
            SubgroupLeMaskKHR = 4419,
            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,
        }

        public enum SelectionControlShift
        {
            Flatten = 0,
            DontFlatten = 1,
        }

        public enum SelectionControlMask
        {
            MaskNone = 0,
            Flatten = 0x00000001,
            DontFlatten = 0x00000002,
        }

        public enum LoopControlShift
        {
            Unroll = 0,
            DontUnroll = 1,
            DependencyInfinite = 2,
            DependencyLength = 3,
        }

        public enum LoopControlMask
        {
            MaskNone = 0,
            Unroll = 0x00000001,
            DontUnroll = 0x00000002,
            DependencyInfinite = 0x00000004,
            DependencyLength = 0x00000008,
        }

        public enum FunctionControlShift
        {
            Inline = 0,
            DontInline = 1,
            Pure = 2,
            Const = 3,
        }

        public enum FunctionControlMask
        {
            MaskNone = 0,
            Inline = 0x00000001,
            DontInline = 0x00000002,
            Pure = 0x00000004,
            Const = 0x00000008,
        }

        public enum MemorySemanticsShift
        {
            Acquire = 1,
            Release = 2,
            AcquireRelease = 3,
            SequentiallyConsistent = 4,
            UniformMemory = 6,
            SubgroupMemory = 7,
            WorkgroupMemory = 8,
            CrossWorkgroupMemory = 9,
            AtomicCounterMemory = 10,
            ImageMemory = 11,
        }

        public enum MemorySemanticsMask
        {
            MaskNone = 0,
            Acquire = 0x00000002,
            Release = 0x00000004,
            AcquireRelease = 0x00000008,
            SequentiallyConsistent = 0x00000010,
            UniformMemory = 0x00000040,
            SubgroupMemory = 0x00000080,
            WorkgroupMemory = 0x00000100,
            CrossWorkgroupMemory = 0x00000200,
            AtomicCounterMemory = 0x00000400,
            ImageMemory = 0x00000800,
        }

        public enum MemoryAccessShift
        {
            Volatile = 0,
            Aligned = 1,
            Nontemporal = 2,
        }

        public enum MemoryAccessMask
        {
            MaskNone = 0,
            Volatile = 0x00000001,
            Aligned = 0x00000002,
            Nontemporal = 0x00000004,
        }

        public enum Scope
        {
            CrossDevice = 0,
            Device = 1,
            Workgroup = 2,
            Subgroup = 3,
            Invocation = 4,
        }

        public enum GroupOperation
        {
            Reduce = 0,
            InclusiveScan = 1,
            ExclusiveScan = 2,
        }

        public enum KernelEnqueueFlags
        {
            NoWait = 0,
            WaitKernel = 1,
            WaitWorkGroup = 2,
        }

        public enum KernelProfilingInfoShift
        {
            CmdExecTime = 0,
        }

        public enum KernelProfilingInfoMask
        {
            MaskNone = 0,
            CmdExecTime = 0x00000001,
        }

        public enum 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,
            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,
            ImageGatherBiasLodAMD = 5009,
            FragmentMaskAMD = 5010,
            StencilExportEXT = 5013,
            ImageReadWriteLodAMD = 5015,
            SampleMaskOverrideCoverageNV = 5249,
            GeometryShaderPassthroughNV = 5251,
            ShaderViewportIndexLayerEXT = 5254,
            ShaderViewportIndexLayerNV = 5254,
            ShaderViewportMaskNV = 5255,
            ShaderStereoViewNV = 5259,
            PerViewAttributesNV = 5260,
            SubgroupShuffleINTEL = 5568,
            SubgroupBufferBlockIOINTEL = 5569,
            SubgroupImageBlockIOINTEL = 5570,
        }

        public enum 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,
            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,
            OpSubgroupShuffleINTEL = 5571,
            OpSubgroupShuffleDownINTEL = 5572,
            OpSubgroupShuffleUpINTEL = 5573,
            OpSubgroupShuffleXorINTEL = 5574,
            OpSubgroupBlockReadINTEL = 5575,
            OpSubgroupBlockWriteINTEL = 5576,
            OpSubgroupImageBlockReadINTEL = 5577,
            OpSubgroupImageBlockWriteINTEL = 5578,
            OpDecorateStringGOOGLE = 5632,
            OpMemberDecorateStringGOOGLE = 5633,
        }
    }
}

