|  | // 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 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'] | 
|  | // | 
|  | // 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. | 
|  |  | 
|  | #ifndef spirv_HPP | 
|  | #define spirv_HPP | 
|  |  | 
|  | namespace spv { | 
|  |  | 
|  | typedef unsigned int Id; | 
|  |  | 
|  | #define SPV_VERSION 0x10000 | 
|  | #define SPV_REVISION 12 | 
|  |  | 
|  | static const unsigned int MagicNumber = 0x07230203; | 
|  | static const unsigned int Version = 0x00010000; | 
|  | static const unsigned int Revision = 12; | 
|  | static const unsigned int OpCodeMask = 0xffff; | 
|  | static const unsigned int WordCountShift = 16; | 
|  |  | 
|  | enum SourceLanguage { | 
|  | SourceLanguageUnknown = 0, | 
|  | SourceLanguageESSL = 1, | 
|  | SourceLanguageGLSL = 2, | 
|  | SourceLanguageOpenCL_C = 3, | 
|  | SourceLanguageOpenCL_CPP = 4, | 
|  | SourceLanguageHLSL = 5, | 
|  | SourceLanguageMax = 0x7fffffff, | 
|  | }; | 
|  |  | 
|  | enum ExecutionModel { | 
|  | ExecutionModelVertex = 0, | 
|  | ExecutionModelTessellationControl = 1, | 
|  | ExecutionModelTessellationEvaluation = 2, | 
|  | ExecutionModelGeometry = 3, | 
|  | ExecutionModelFragment = 4, | 
|  | ExecutionModelGLCompute = 5, | 
|  | ExecutionModelKernel = 6, | 
|  | ExecutionModelMax = 0x7fffffff, | 
|  | }; | 
|  |  | 
|  | enum AddressingModel { | 
|  | AddressingModelLogical = 0, | 
|  | AddressingModelPhysical32 = 1, | 
|  | AddressingModelPhysical64 = 2, | 
|  | AddressingModelMax = 0x7fffffff, | 
|  | }; | 
|  |  | 
|  | enum MemoryModel { | 
|  | MemoryModelSimple = 0, | 
|  | MemoryModelGLSL450 = 1, | 
|  | MemoryModelOpenCL = 2, | 
|  | MemoryModelMax = 0x7fffffff, | 
|  | }; | 
|  |  | 
|  | enum ExecutionMode { | 
|  | ExecutionModeInvocations = 0, | 
|  | ExecutionModeSpacingEqual = 1, | 
|  | ExecutionModeSpacingFractionalEven = 2, | 
|  | ExecutionModeSpacingFractionalOdd = 3, | 
|  | ExecutionModeVertexOrderCw = 4, | 
|  | ExecutionModeVertexOrderCcw = 5, | 
|  | ExecutionModePixelCenterInteger = 6, | 
|  | ExecutionModeOriginUpperLeft = 7, | 
|  | ExecutionModeOriginLowerLeft = 8, | 
|  | ExecutionModeEarlyFragmentTests = 9, | 
|  | ExecutionModePointMode = 10, | 
|  | ExecutionModeXfb = 11, | 
|  | ExecutionModeDepthReplacing = 12, | 
|  | ExecutionModeDepthGreater = 14, | 
|  | ExecutionModeDepthLess = 15, | 
|  | ExecutionModeDepthUnchanged = 16, | 
|  | ExecutionModeLocalSize = 17, | 
|  | ExecutionModeLocalSizeHint = 18, | 
|  | ExecutionModeInputPoints = 19, | 
|  | ExecutionModeInputLines = 20, | 
|  | ExecutionModeInputLinesAdjacency = 21, | 
|  | ExecutionModeTriangles = 22, | 
|  | ExecutionModeInputTrianglesAdjacency = 23, | 
|  | ExecutionModeQuads = 24, | 
|  | ExecutionModeIsolines = 25, | 
|  | ExecutionModeOutputVertices = 26, | 
|  | ExecutionModeOutputPoints = 27, | 
|  | ExecutionModeOutputLineStrip = 28, | 
|  | ExecutionModeOutputTriangleStrip = 29, | 
|  | ExecutionModeVecTypeHint = 30, | 
|  | ExecutionModeContractionOff = 31, | 
|  | ExecutionModePostDepthCoverage = 4446, | 
|  | ExecutionModeStencilRefReplacingEXT = 5027, | 
|  | ExecutionModeMax = 0x7fffffff, | 
|  | }; | 
|  |  | 
|  | enum StorageClass { | 
|  | StorageClassUniformConstant = 0, | 
|  | StorageClassInput = 1, | 
|  | StorageClassUniform = 2, | 
|  | StorageClassOutput = 3, | 
|  | StorageClassWorkgroup = 4, | 
|  | StorageClassCrossWorkgroup = 5, | 
|  | StorageClassPrivate = 6, | 
|  | StorageClassFunction = 7, | 
|  | StorageClassGeneric = 8, | 
|  | StorageClassPushConstant = 9, | 
|  | StorageClassAtomicCounter = 10, | 
|  | StorageClassImage = 11, | 
|  | StorageClassStorageBuffer = 12, | 
|  | StorageClassMax = 0x7fffffff, | 
|  | }; | 
|  |  | 
|  | enum Dim { | 
|  | Dim1D = 0, | 
|  | Dim2D = 1, | 
|  | Dim3D = 2, | 
|  | DimCube = 3, | 
|  | DimRect = 4, | 
|  | DimBuffer = 5, | 
|  | DimSubpassData = 6, | 
|  | DimMax = 0x7fffffff, | 
|  | }; | 
|  |  | 
|  | enum SamplerAddressingMode { | 
|  | SamplerAddressingModeNone = 0, | 
|  | SamplerAddressingModeClampToEdge = 1, | 
|  | SamplerAddressingModeClamp = 2, | 
|  | SamplerAddressingModeRepeat = 3, | 
|  | SamplerAddressingModeRepeatMirrored = 4, | 
|  | SamplerAddressingModeMax = 0x7fffffff, | 
|  | }; | 
|  |  | 
|  | enum SamplerFilterMode { | 
|  | SamplerFilterModeNearest = 0, | 
|  | SamplerFilterModeLinear = 1, | 
|  | SamplerFilterModeMax = 0x7fffffff, | 
|  | }; | 
|  |  | 
|  | enum ImageFormat { | 
|  | ImageFormatUnknown = 0, | 
|  | ImageFormatRgba32f = 1, | 
|  | ImageFormatRgba16f = 2, | 
|  | ImageFormatR32f = 3, | 
|  | ImageFormatRgba8 = 4, | 
|  | ImageFormatRgba8Snorm = 5, | 
|  | ImageFormatRg32f = 6, | 
|  | ImageFormatRg16f = 7, | 
|  | ImageFormatR11fG11fB10f = 8, | 
|  | ImageFormatR16f = 9, | 
|  | ImageFormatRgba16 = 10, | 
|  | ImageFormatRgb10A2 = 11, | 
|  | ImageFormatRg16 = 12, | 
|  | ImageFormatRg8 = 13, | 
|  | ImageFormatR16 = 14, | 
|  | ImageFormatR8 = 15, | 
|  | ImageFormatRgba16Snorm = 16, | 
|  | ImageFormatRg16Snorm = 17, | 
|  | ImageFormatRg8Snorm = 18, | 
|  | ImageFormatR16Snorm = 19, | 
|  | ImageFormatR8Snorm = 20, | 
|  | ImageFormatRgba32i = 21, | 
|  | ImageFormatRgba16i = 22, | 
|  | ImageFormatRgba8i = 23, | 
|  | ImageFormatR32i = 24, | 
|  | ImageFormatRg32i = 25, | 
|  | ImageFormatRg16i = 26, | 
|  | ImageFormatRg8i = 27, | 
|  | ImageFormatR16i = 28, | 
|  | ImageFormatR8i = 29, | 
|  | ImageFormatRgba32ui = 30, | 
|  | ImageFormatRgba16ui = 31, | 
|  | ImageFormatRgba8ui = 32, | 
|  | ImageFormatR32ui = 33, | 
|  | ImageFormatRgb10a2ui = 34, | 
|  | ImageFormatRg32ui = 35, | 
|  | ImageFormatRg16ui = 36, | 
|  | ImageFormatRg8ui = 37, | 
|  | ImageFormatR16ui = 38, | 
|  | ImageFormatR8ui = 39, | 
|  | ImageFormatMax = 0x7fffffff, | 
|  | }; | 
|  |  | 
|  | enum ImageChannelOrder { | 
|  | ImageChannelOrderR = 0, | 
|  | ImageChannelOrderA = 1, | 
|  | ImageChannelOrderRG = 2, | 
|  | ImageChannelOrderRA = 3, | 
|  | ImageChannelOrderRGB = 4, | 
|  | ImageChannelOrderRGBA = 5, | 
|  | ImageChannelOrderBGRA = 6, | 
|  | ImageChannelOrderARGB = 7, | 
|  | ImageChannelOrderIntensity = 8, | 
|  | ImageChannelOrderLuminance = 9, | 
|  | ImageChannelOrderRx = 10, | 
|  | ImageChannelOrderRGx = 11, | 
|  | ImageChannelOrderRGBx = 12, | 
|  | ImageChannelOrderDepth = 13, | 
|  | ImageChannelOrderDepthStencil = 14, | 
|  | ImageChannelOrdersRGB = 15, | 
|  | ImageChannelOrdersRGBx = 16, | 
|  | ImageChannelOrdersRGBA = 17, | 
|  | ImageChannelOrdersBGRA = 18, | 
|  | ImageChannelOrderABGR = 19, | 
|  | ImageChannelOrderMax = 0x7fffffff, | 
|  | }; | 
|  |  | 
|  | enum ImageChannelDataType { | 
|  | ImageChannelDataTypeSnormInt8 = 0, | 
|  | ImageChannelDataTypeSnormInt16 = 1, | 
|  | ImageChannelDataTypeUnormInt8 = 2, | 
|  | ImageChannelDataTypeUnormInt16 = 3, | 
|  | ImageChannelDataTypeUnormShort565 = 4, | 
|  | ImageChannelDataTypeUnormShort555 = 5, | 
|  | ImageChannelDataTypeUnormInt101010 = 6, | 
|  | ImageChannelDataTypeSignedInt8 = 7, | 
|  | ImageChannelDataTypeSignedInt16 = 8, | 
|  | ImageChannelDataTypeSignedInt32 = 9, | 
|  | ImageChannelDataTypeUnsignedInt8 = 10, | 
|  | ImageChannelDataTypeUnsignedInt16 = 11, | 
|  | ImageChannelDataTypeUnsignedInt32 = 12, | 
|  | ImageChannelDataTypeHalfFloat = 13, | 
|  | ImageChannelDataTypeFloat = 14, | 
|  | ImageChannelDataTypeUnormInt24 = 15, | 
|  | ImageChannelDataTypeUnormInt101010_2 = 16, | 
|  | ImageChannelDataTypeMax = 0x7fffffff, | 
|  | }; | 
|  |  | 
|  | enum ImageOperandsShift { | 
|  | ImageOperandsBiasShift = 0, | 
|  | ImageOperandsLodShift = 1, | 
|  | ImageOperandsGradShift = 2, | 
|  | ImageOperandsConstOffsetShift = 3, | 
|  | ImageOperandsOffsetShift = 4, | 
|  | ImageOperandsConstOffsetsShift = 5, | 
|  | ImageOperandsSampleShift = 6, | 
|  | ImageOperandsMinLodShift = 7, | 
|  | ImageOperandsMax = 0x7fffffff, | 
|  | }; | 
|  |  | 
|  | enum ImageOperandsMask { | 
|  | ImageOperandsMaskNone = 0, | 
|  | ImageOperandsBiasMask = 0x00000001, | 
|  | ImageOperandsLodMask = 0x00000002, | 
|  | ImageOperandsGradMask = 0x00000004, | 
|  | ImageOperandsConstOffsetMask = 0x00000008, | 
|  | ImageOperandsOffsetMask = 0x00000010, | 
|  | ImageOperandsConstOffsetsMask = 0x00000020, | 
|  | ImageOperandsSampleMask = 0x00000040, | 
|  | ImageOperandsMinLodMask = 0x00000080, | 
|  | }; | 
|  |  | 
|  | enum FPFastMathModeShift { | 
|  | FPFastMathModeNotNaNShift = 0, | 
|  | FPFastMathModeNotInfShift = 1, | 
|  | FPFastMathModeNSZShift = 2, | 
|  | FPFastMathModeAllowRecipShift = 3, | 
|  | FPFastMathModeFastShift = 4, | 
|  | FPFastMathModeMax = 0x7fffffff, | 
|  | }; | 
|  |  | 
|  | enum FPFastMathModeMask { | 
|  | FPFastMathModeMaskNone = 0, | 
|  | FPFastMathModeNotNaNMask = 0x00000001, | 
|  | FPFastMathModeNotInfMask = 0x00000002, | 
|  | FPFastMathModeNSZMask = 0x00000004, | 
|  | FPFastMathModeAllowRecipMask = 0x00000008, | 
|  | FPFastMathModeFastMask = 0x00000010, | 
|  | }; | 
|  |  | 
|  | enum FPRoundingMode { | 
|  | FPRoundingModeRTE = 0, | 
|  | FPRoundingModeRTZ = 1, | 
|  | FPRoundingModeRTP = 2, | 
|  | FPRoundingModeRTN = 3, | 
|  | FPRoundingModeMax = 0x7fffffff, | 
|  | }; | 
|  |  | 
|  | enum LinkageType { | 
|  | LinkageTypeExport = 0, | 
|  | LinkageTypeImport = 1, | 
|  | LinkageTypeMax = 0x7fffffff, | 
|  | }; | 
|  |  | 
|  | enum AccessQualifier { | 
|  | AccessQualifierReadOnly = 0, | 
|  | AccessQualifierWriteOnly = 1, | 
|  | AccessQualifierReadWrite = 2, | 
|  | AccessQualifierMax = 0x7fffffff, | 
|  | }; | 
|  |  | 
|  | enum FunctionParameterAttribute { | 
|  | FunctionParameterAttributeZext = 0, | 
|  | FunctionParameterAttributeSext = 1, | 
|  | FunctionParameterAttributeByVal = 2, | 
|  | FunctionParameterAttributeSret = 3, | 
|  | FunctionParameterAttributeNoAlias = 4, | 
|  | FunctionParameterAttributeNoCapture = 5, | 
|  | FunctionParameterAttributeNoWrite = 6, | 
|  | FunctionParameterAttributeNoReadWrite = 7, | 
|  | FunctionParameterAttributeMax = 0x7fffffff, | 
|  | }; | 
|  |  | 
|  | enum Decoration { | 
|  | DecorationRelaxedPrecision = 0, | 
|  | DecorationSpecId = 1, | 
|  | DecorationBlock = 2, | 
|  | DecorationBufferBlock = 3, | 
|  | DecorationRowMajor = 4, | 
|  | DecorationColMajor = 5, | 
|  | DecorationArrayStride = 6, | 
|  | DecorationMatrixStride = 7, | 
|  | DecorationGLSLShared = 8, | 
|  | DecorationGLSLPacked = 9, | 
|  | DecorationCPacked = 10, | 
|  | DecorationBuiltIn = 11, | 
|  | DecorationNoPerspective = 13, | 
|  | DecorationFlat = 14, | 
|  | DecorationPatch = 15, | 
|  | DecorationCentroid = 16, | 
|  | DecorationSample = 17, | 
|  | DecorationInvariant = 18, | 
|  | DecorationRestrict = 19, | 
|  | DecorationAliased = 20, | 
|  | DecorationVolatile = 21, | 
|  | DecorationConstant = 22, | 
|  | DecorationCoherent = 23, | 
|  | DecorationNonWritable = 24, | 
|  | DecorationNonReadable = 25, | 
|  | DecorationUniform = 26, | 
|  | DecorationSaturatedConversion = 28, | 
|  | DecorationStream = 29, | 
|  | DecorationLocation = 30, | 
|  | DecorationComponent = 31, | 
|  | DecorationIndex = 32, | 
|  | DecorationBinding = 33, | 
|  | DecorationDescriptorSet = 34, | 
|  | DecorationOffset = 35, | 
|  | DecorationXfbBuffer = 36, | 
|  | DecorationXfbStride = 37, | 
|  | DecorationFuncParamAttr = 38, | 
|  | DecorationFPRoundingMode = 39, | 
|  | DecorationFPFastMathMode = 40, | 
|  | DecorationLinkageAttributes = 41, | 
|  | DecorationNoContraction = 42, | 
|  | DecorationInputAttachmentIndex = 43, | 
|  | DecorationAlignment = 44, | 
|  | DecorationExplicitInterpAMD = 4999, | 
|  | DecorationOverrideCoverageNV = 5248, | 
|  | DecorationPassthroughNV = 5250, | 
|  | DecorationViewportRelativeNV = 5252, | 
|  | DecorationSecondaryViewportRelativeNV = 5256, | 
|  | DecorationHlslCounterBufferGOOGLE = 5634, | 
|  | DecorationHlslSemanticGOOGLE = 5635, | 
|  | DecorationMax = 0x7fffffff, | 
|  | }; | 
|  |  | 
|  | enum BuiltIn { | 
|  | BuiltInPosition = 0, | 
|  | BuiltInPointSize = 1, | 
|  | BuiltInClipDistance = 3, | 
|  | BuiltInCullDistance = 4, | 
|  | BuiltInVertexId = 5, | 
|  | BuiltInInstanceId = 6, | 
|  | BuiltInPrimitiveId = 7, | 
|  | BuiltInInvocationId = 8, | 
|  | BuiltInLayer = 9, | 
|  | BuiltInViewportIndex = 10, | 
|  | BuiltInTessLevelOuter = 11, | 
|  | BuiltInTessLevelInner = 12, | 
|  | BuiltInTessCoord = 13, | 
|  | BuiltInPatchVertices = 14, | 
|  | BuiltInFragCoord = 15, | 
|  | BuiltInPointCoord = 16, | 
|  | BuiltInFrontFacing = 17, | 
|  | BuiltInSampleId = 18, | 
|  | BuiltInSamplePosition = 19, | 
|  | BuiltInSampleMask = 20, | 
|  | BuiltInFragDepth = 22, | 
|  | BuiltInHelperInvocation = 23, | 
|  | BuiltInNumWorkgroups = 24, | 
|  | BuiltInWorkgroupSize = 25, | 
|  | BuiltInWorkgroupId = 26, | 
|  | BuiltInLocalInvocationId = 27, | 
|  | BuiltInGlobalInvocationId = 28, | 
|  | BuiltInLocalInvocationIndex = 29, | 
|  | BuiltInWorkDim = 30, | 
|  | BuiltInGlobalSize = 31, | 
|  | BuiltInEnqueuedWorkgroupSize = 32, | 
|  | BuiltInGlobalOffset = 33, | 
|  | BuiltInGlobalLinearId = 34, | 
|  | BuiltInSubgroupSize = 36, | 
|  | BuiltInSubgroupMaxSize = 37, | 
|  | BuiltInNumSubgroups = 38, | 
|  | BuiltInNumEnqueuedSubgroups = 39, | 
|  | BuiltInSubgroupId = 40, | 
|  | BuiltInSubgroupLocalInvocationId = 41, | 
|  | BuiltInVertexIndex = 42, | 
|  | BuiltInInstanceIndex = 43, | 
|  | BuiltInSubgroupEqMaskKHR = 4416, | 
|  | BuiltInSubgroupGeMaskKHR = 4417, | 
|  | BuiltInSubgroupGtMaskKHR = 4418, | 
|  | BuiltInSubgroupLeMaskKHR = 4419, | 
|  | BuiltInSubgroupLtMaskKHR = 4420, | 
|  | BuiltInBaseVertex = 4424, | 
|  | BuiltInBaseInstance = 4425, | 
|  | BuiltInDrawIndex = 4426, | 
|  | BuiltInDeviceIndex = 4438, | 
|  | BuiltInViewIndex = 4440, | 
|  | BuiltInBaryCoordNoPerspAMD = 4992, | 
|  | BuiltInBaryCoordNoPerspCentroidAMD = 4993, | 
|  | BuiltInBaryCoordNoPerspSampleAMD = 4994, | 
|  | BuiltInBaryCoordSmoothAMD = 4995, | 
|  | BuiltInBaryCoordSmoothCentroidAMD = 4996, | 
|  | BuiltInBaryCoordSmoothSampleAMD = 4997, | 
|  | BuiltInBaryCoordPullModelAMD = 4998, | 
|  | BuiltInFragStencilRefEXT = 5014, | 
|  | BuiltInViewportMaskNV = 5253, | 
|  | BuiltInSecondaryPositionNV = 5257, | 
|  | BuiltInSecondaryViewportMaskNV = 5258, | 
|  | BuiltInPositionPerViewNV = 5261, | 
|  | BuiltInViewportMaskPerViewNV = 5262, | 
|  | BuiltInMax = 0x7fffffff, | 
|  | }; | 
|  |  | 
|  | enum SelectionControlShift { | 
|  | SelectionControlFlattenShift = 0, | 
|  | SelectionControlDontFlattenShift = 1, | 
|  | SelectionControlMax = 0x7fffffff, | 
|  | }; | 
|  |  | 
|  | enum SelectionControlMask { | 
|  | SelectionControlMaskNone = 0, | 
|  | SelectionControlFlattenMask = 0x00000001, | 
|  | SelectionControlDontFlattenMask = 0x00000002, | 
|  | }; | 
|  |  | 
|  | enum LoopControlShift { | 
|  | LoopControlUnrollShift = 0, | 
|  | LoopControlDontUnrollShift = 1, | 
|  | LoopControlMax = 0x7fffffff, | 
|  | }; | 
|  |  | 
|  | enum LoopControlMask { | 
|  | LoopControlMaskNone = 0, | 
|  | LoopControlUnrollMask = 0x00000001, | 
|  | LoopControlDontUnrollMask = 0x00000002, | 
|  | }; | 
|  |  | 
|  | enum FunctionControlShift { | 
|  | FunctionControlInlineShift = 0, | 
|  | FunctionControlDontInlineShift = 1, | 
|  | FunctionControlPureShift = 2, | 
|  | FunctionControlConstShift = 3, | 
|  | FunctionControlMax = 0x7fffffff, | 
|  | }; | 
|  |  | 
|  | enum FunctionControlMask { | 
|  | FunctionControlMaskNone = 0, | 
|  | FunctionControlInlineMask = 0x00000001, | 
|  | FunctionControlDontInlineMask = 0x00000002, | 
|  | FunctionControlPureMask = 0x00000004, | 
|  | FunctionControlConstMask = 0x00000008, | 
|  | }; | 
|  |  | 
|  | enum MemorySemanticsShift { | 
|  | MemorySemanticsAcquireShift = 1, | 
|  | MemorySemanticsReleaseShift = 2, | 
|  | MemorySemanticsAcquireReleaseShift = 3, | 
|  | MemorySemanticsSequentiallyConsistentShift = 4, | 
|  | MemorySemanticsUniformMemoryShift = 6, | 
|  | MemorySemanticsSubgroupMemoryShift = 7, | 
|  | MemorySemanticsWorkgroupMemoryShift = 8, | 
|  | MemorySemanticsCrossWorkgroupMemoryShift = 9, | 
|  | MemorySemanticsAtomicCounterMemoryShift = 10, | 
|  | MemorySemanticsImageMemoryShift = 11, | 
|  | MemorySemanticsMax = 0x7fffffff, | 
|  | }; | 
|  |  | 
|  | enum MemorySemanticsMask { | 
|  | MemorySemanticsMaskNone = 0, | 
|  | MemorySemanticsAcquireMask = 0x00000002, | 
|  | MemorySemanticsReleaseMask = 0x00000004, | 
|  | MemorySemanticsAcquireReleaseMask = 0x00000008, | 
|  | MemorySemanticsSequentiallyConsistentMask = 0x00000010, | 
|  | MemorySemanticsUniformMemoryMask = 0x00000040, | 
|  | MemorySemanticsSubgroupMemoryMask = 0x00000080, | 
|  | MemorySemanticsWorkgroupMemoryMask = 0x00000100, | 
|  | MemorySemanticsCrossWorkgroupMemoryMask = 0x00000200, | 
|  | MemorySemanticsAtomicCounterMemoryMask = 0x00000400, | 
|  | MemorySemanticsImageMemoryMask = 0x00000800, | 
|  | }; | 
|  |  | 
|  | enum MemoryAccessShift { | 
|  | MemoryAccessVolatileShift = 0, | 
|  | MemoryAccessAlignedShift = 1, | 
|  | MemoryAccessNontemporalShift = 2, | 
|  | MemoryAccessMax = 0x7fffffff, | 
|  | }; | 
|  |  | 
|  | enum MemoryAccessMask { | 
|  | MemoryAccessMaskNone = 0, | 
|  | MemoryAccessVolatileMask = 0x00000001, | 
|  | MemoryAccessAlignedMask = 0x00000002, | 
|  | MemoryAccessNontemporalMask = 0x00000004, | 
|  | }; | 
|  |  | 
|  | enum Scope { | 
|  | ScopeCrossDevice = 0, | 
|  | ScopeDevice = 1, | 
|  | ScopeWorkgroup = 2, | 
|  | ScopeSubgroup = 3, | 
|  | ScopeInvocation = 4, | 
|  | ScopeMax = 0x7fffffff, | 
|  | }; | 
|  |  | 
|  | enum GroupOperation { | 
|  | GroupOperationReduce = 0, | 
|  | GroupOperationInclusiveScan = 1, | 
|  | GroupOperationExclusiveScan = 2, | 
|  | GroupOperationMax = 0x7fffffff, | 
|  | }; | 
|  |  | 
|  | enum KernelEnqueueFlags { | 
|  | KernelEnqueueFlagsNoWait = 0, | 
|  | KernelEnqueueFlagsWaitKernel = 1, | 
|  | KernelEnqueueFlagsWaitWorkGroup = 2, | 
|  | KernelEnqueueFlagsMax = 0x7fffffff, | 
|  | }; | 
|  |  | 
|  | enum KernelProfilingInfoShift { | 
|  | KernelProfilingInfoCmdExecTimeShift = 0, | 
|  | KernelProfilingInfoMax = 0x7fffffff, | 
|  | }; | 
|  |  | 
|  | enum KernelProfilingInfoMask { | 
|  | KernelProfilingInfoMaskNone = 0, | 
|  | KernelProfilingInfoCmdExecTimeMask = 0x00000001, | 
|  | }; | 
|  |  | 
|  | enum Capability { | 
|  | CapabilityMatrix = 0, | 
|  | CapabilityShader = 1, | 
|  | CapabilityGeometry = 2, | 
|  | CapabilityTessellation = 3, | 
|  | CapabilityAddresses = 4, | 
|  | CapabilityLinkage = 5, | 
|  | CapabilityKernel = 6, | 
|  | CapabilityVector16 = 7, | 
|  | CapabilityFloat16Buffer = 8, | 
|  | CapabilityFloat16 = 9, | 
|  | CapabilityFloat64 = 10, | 
|  | CapabilityInt64 = 11, | 
|  | CapabilityInt64Atomics = 12, | 
|  | CapabilityImageBasic = 13, | 
|  | CapabilityImageReadWrite = 14, | 
|  | CapabilityImageMipmap = 15, | 
|  | CapabilityPipes = 17, | 
|  | CapabilityGroups = 18, | 
|  | CapabilityDeviceEnqueue = 19, | 
|  | CapabilityLiteralSampler = 20, | 
|  | CapabilityAtomicStorage = 21, | 
|  | CapabilityInt16 = 22, | 
|  | CapabilityTessellationPointSize = 23, | 
|  | CapabilityGeometryPointSize = 24, | 
|  | CapabilityImageGatherExtended = 25, | 
|  | CapabilityStorageImageMultisample = 27, | 
|  | CapabilityUniformBufferArrayDynamicIndexing = 28, | 
|  | CapabilitySampledImageArrayDynamicIndexing = 29, | 
|  | CapabilityStorageBufferArrayDynamicIndexing = 30, | 
|  | CapabilityStorageImageArrayDynamicIndexing = 31, | 
|  | CapabilityClipDistance = 32, | 
|  | CapabilityCullDistance = 33, | 
|  | CapabilityImageCubeArray = 34, | 
|  | CapabilitySampleRateShading = 35, | 
|  | CapabilityImageRect = 36, | 
|  | CapabilitySampledRect = 37, | 
|  | CapabilityGenericPointer = 38, | 
|  | CapabilityInt8 = 39, | 
|  | CapabilityInputAttachment = 40, | 
|  | CapabilitySparseResidency = 41, | 
|  | CapabilityMinLod = 42, | 
|  | CapabilitySampled1D = 43, | 
|  | CapabilityImage1D = 44, | 
|  | CapabilitySampledCubeArray = 45, | 
|  | CapabilitySampledBuffer = 46, | 
|  | CapabilityImageBuffer = 47, | 
|  | CapabilityImageMSArray = 48, | 
|  | CapabilityStorageImageExtendedFormats = 49, | 
|  | CapabilityImageQuery = 50, | 
|  | CapabilityDerivativeControl = 51, | 
|  | CapabilityInterpolationFunction = 52, | 
|  | CapabilityTransformFeedback = 53, | 
|  | CapabilityGeometryStreams = 54, | 
|  | CapabilityStorageImageReadWithoutFormat = 55, | 
|  | CapabilityStorageImageWriteWithoutFormat = 56, | 
|  | CapabilityMultiViewport = 57, | 
|  | CapabilitySubgroupBallotKHR = 4423, | 
|  | CapabilityDrawParameters = 4427, | 
|  | CapabilitySubgroupVoteKHR = 4431, | 
|  | CapabilityStorageBuffer16BitAccess = 4433, | 
|  | CapabilityStorageUniformBufferBlock16 = 4433, | 
|  | CapabilityStorageUniform16 = 4434, | 
|  | CapabilityUniformAndStorageBuffer16BitAccess = 4434, | 
|  | CapabilityStoragePushConstant16 = 4435, | 
|  | CapabilityStorageInputOutput16 = 4436, | 
|  | CapabilityDeviceGroup = 4437, | 
|  | CapabilityMultiView = 4439, | 
|  | CapabilityVariablePointersStorageBuffer = 4441, | 
|  | CapabilityVariablePointers = 4442, | 
|  | CapabilityAtomicStorageOps = 4445, | 
|  | CapabilitySampleMaskPostDepthCoverage = 4447, | 
|  | CapabilityImageGatherBiasLodAMD = 5009, | 
|  | CapabilityFragmentMaskAMD = 5010, | 
|  | CapabilityStencilExportEXT = 5013, | 
|  | CapabilityImageReadWriteLodAMD = 5015, | 
|  | CapabilitySampleMaskOverrideCoverageNV = 5249, | 
|  | CapabilityGeometryShaderPassthroughNV = 5251, | 
|  | CapabilityShaderViewportIndexLayerEXT = 5254, | 
|  | CapabilityShaderViewportIndexLayerNV = 5254, | 
|  | CapabilityShaderViewportMaskNV = 5255, | 
|  | CapabilityShaderStereoViewNV = 5259, | 
|  | CapabilityPerViewAttributesNV = 5260, | 
|  | CapabilitySubgroupShuffleINTEL = 5568, | 
|  | CapabilitySubgroupBufferBlockIOINTEL = 5569, | 
|  | CapabilitySubgroupImageBlockIOINTEL = 5570, | 
|  | CapabilityMax = 0x7fffffff, | 
|  | }; | 
|  |  | 
|  | 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, | 
|  | 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, | 
|  | OpMax = 0x7fffffff, | 
|  | }; | 
|  |  | 
|  | // Overload operator| for mask bit combining | 
|  |  | 
|  | inline ImageOperandsMask operator|(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) | unsigned(b)); } | 
|  | inline FPFastMathModeMask operator|(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) | unsigned(b)); } | 
|  | inline SelectionControlMask operator|(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) | unsigned(b)); } | 
|  | inline LoopControlMask operator|(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) | unsigned(b)); } | 
|  | inline FunctionControlMask operator|(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) | unsigned(b)); } | 
|  | inline MemorySemanticsMask operator|(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) | unsigned(b)); } | 
|  | inline MemoryAccessMask operator|(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) | unsigned(b)); } | 
|  | inline KernelProfilingInfoMask operator|(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) | unsigned(b)); } | 
|  |  | 
|  | }  // end namespace spv | 
|  |  | 
|  | #endif  // #ifndef spirv_HPP | 
|  |  |