|  | // Copyright (c) 2014-2020 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. | 
|  |  | 
|  | #ifndef spirv_HPP | 
|  | #define spirv_HPP | 
|  |  | 
|  | namespace spv { | 
|  |  | 
|  | typedef unsigned int Id; | 
|  |  | 
|  | #define SPV_VERSION 0x10600 | 
|  | #define SPV_REVISION 1 | 
|  |  | 
|  | static const unsigned int MagicNumber = 0x07230203; | 
|  | static const unsigned int Version = 0x00010600; | 
|  | static const unsigned int Revision = 1; | 
|  | 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, | 
|  | SourceLanguageCPP_for_OpenCL = 6, | 
|  | SourceLanguageMax = 0x7fffffff, | 
|  | }; | 
|  |  | 
|  | enum ExecutionModel { | 
|  | ExecutionModelVertex = 0, | 
|  | ExecutionModelTessellationControl = 1, | 
|  | ExecutionModelTessellationEvaluation = 2, | 
|  | ExecutionModelGeometry = 3, | 
|  | ExecutionModelFragment = 4, | 
|  | ExecutionModelGLCompute = 5, | 
|  | ExecutionModelKernel = 6, | 
|  | ExecutionModelTaskNV = 5267, | 
|  | ExecutionModelMeshNV = 5268, | 
|  | ExecutionModelRayGenerationKHR = 5313, | 
|  | ExecutionModelRayGenerationNV = 5313, | 
|  | ExecutionModelIntersectionKHR = 5314, | 
|  | ExecutionModelIntersectionNV = 5314, | 
|  | ExecutionModelAnyHitKHR = 5315, | 
|  | ExecutionModelAnyHitNV = 5315, | 
|  | ExecutionModelClosestHitKHR = 5316, | 
|  | ExecutionModelClosestHitNV = 5316, | 
|  | ExecutionModelMissKHR = 5317, | 
|  | ExecutionModelMissNV = 5317, | 
|  | ExecutionModelCallableKHR = 5318, | 
|  | ExecutionModelCallableNV = 5318, | 
|  | ExecutionModelMax = 0x7fffffff, | 
|  | }; | 
|  |  | 
|  | enum AddressingModel { | 
|  | AddressingModelLogical = 0, | 
|  | AddressingModelPhysical32 = 1, | 
|  | AddressingModelPhysical64 = 2, | 
|  | AddressingModelPhysicalStorageBuffer64 = 5348, | 
|  | AddressingModelPhysicalStorageBuffer64EXT = 5348, | 
|  | AddressingModelMax = 0x7fffffff, | 
|  | }; | 
|  |  | 
|  | enum MemoryModel { | 
|  | MemoryModelSimple = 0, | 
|  | MemoryModelGLSL450 = 1, | 
|  | MemoryModelOpenCL = 2, | 
|  | MemoryModelVulkan = 3, | 
|  | MemoryModelVulkanKHR = 3, | 
|  | 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, | 
|  | ExecutionModeInitializer = 33, | 
|  | ExecutionModeFinalizer = 34, | 
|  | ExecutionModeSubgroupSize = 35, | 
|  | ExecutionModeSubgroupsPerWorkgroup = 36, | 
|  | ExecutionModeSubgroupsPerWorkgroupId = 37, | 
|  | ExecutionModeLocalSizeId = 38, | 
|  | ExecutionModeLocalSizeHintId = 39, | 
|  | ExecutionModeSubgroupUniformControlFlowKHR = 4421, | 
|  | ExecutionModePostDepthCoverage = 4446, | 
|  | ExecutionModeDenormPreserve = 4459, | 
|  | ExecutionModeDenormFlushToZero = 4460, | 
|  | ExecutionModeSignedZeroInfNanPreserve = 4461, | 
|  | ExecutionModeRoundingModeRTE = 4462, | 
|  | ExecutionModeRoundingModeRTZ = 4463, | 
|  | ExecutionModeStencilRefReplacingEXT = 5027, | 
|  | ExecutionModeOutputLinesNV = 5269, | 
|  | ExecutionModeOutputPrimitivesNV = 5270, | 
|  | ExecutionModeDerivativeGroupQuadsNV = 5289, | 
|  | ExecutionModeDerivativeGroupLinearNV = 5290, | 
|  | ExecutionModeOutputTrianglesNV = 5298, | 
|  | ExecutionModePixelInterlockOrderedEXT = 5366, | 
|  | ExecutionModePixelInterlockUnorderedEXT = 5367, | 
|  | ExecutionModeSampleInterlockOrderedEXT = 5368, | 
|  | ExecutionModeSampleInterlockUnorderedEXT = 5369, | 
|  | ExecutionModeShadingRateInterlockOrderedEXT = 5370, | 
|  | ExecutionModeShadingRateInterlockUnorderedEXT = 5371, | 
|  | ExecutionModeSharedLocalMemorySizeINTEL = 5618, | 
|  | ExecutionModeRoundingModeRTPINTEL = 5620, | 
|  | ExecutionModeRoundingModeRTNINTEL = 5621, | 
|  | ExecutionModeFloatingPointModeALTINTEL = 5622, | 
|  | ExecutionModeFloatingPointModeIEEEINTEL = 5623, | 
|  | ExecutionModeMaxWorkgroupSizeINTEL = 5893, | 
|  | ExecutionModeMaxWorkDimINTEL = 5894, | 
|  | ExecutionModeNoGlobalOffsetINTEL = 5895, | 
|  | ExecutionModeNumSIMDWorkitemsINTEL = 5896, | 
|  | ExecutionModeSchedulerTargetFmaxMhzINTEL = 5903, | 
|  | 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, | 
|  | StorageClassCallableDataKHR = 5328, | 
|  | StorageClassCallableDataNV = 5328, | 
|  | StorageClassIncomingCallableDataKHR = 5329, | 
|  | StorageClassIncomingCallableDataNV = 5329, | 
|  | StorageClassRayPayloadKHR = 5338, | 
|  | StorageClassRayPayloadNV = 5338, | 
|  | StorageClassHitAttributeKHR = 5339, | 
|  | StorageClassHitAttributeNV = 5339, | 
|  | StorageClassIncomingRayPayloadKHR = 5342, | 
|  | StorageClassIncomingRayPayloadNV = 5342, | 
|  | StorageClassShaderRecordBufferKHR = 5343, | 
|  | StorageClassShaderRecordBufferNV = 5343, | 
|  | StorageClassPhysicalStorageBuffer = 5349, | 
|  | StorageClassPhysicalStorageBufferEXT = 5349, | 
|  | StorageClassCodeSectionINTEL = 5605, | 
|  | StorageClassDeviceOnlyINTEL = 5936, | 
|  | StorageClassHostOnlyINTEL = 5937, | 
|  | 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, | 
|  | ImageFormatR64ui = 40, | 
|  | ImageFormatR64i = 41, | 
|  | 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, | 
|  | ImageOperandsMakeTexelAvailableShift = 8, | 
|  | ImageOperandsMakeTexelAvailableKHRShift = 8, | 
|  | ImageOperandsMakeTexelVisibleShift = 9, | 
|  | ImageOperandsMakeTexelVisibleKHRShift = 9, | 
|  | ImageOperandsNonPrivateTexelShift = 10, | 
|  | ImageOperandsNonPrivateTexelKHRShift = 10, | 
|  | ImageOperandsVolatileTexelShift = 11, | 
|  | ImageOperandsVolatileTexelKHRShift = 11, | 
|  | ImageOperandsSignExtendShift = 12, | 
|  | ImageOperandsZeroExtendShift = 13, | 
|  | ImageOperandsNontemporalShift = 14, | 
|  | ImageOperandsOffsetsShift = 16, | 
|  | ImageOperandsMax = 0x7fffffff, | 
|  | }; | 
|  |  | 
|  | enum ImageOperandsMask { | 
|  | ImageOperandsMaskNone = 0, | 
|  | ImageOperandsBiasMask = 0x00000001, | 
|  | ImageOperandsLodMask = 0x00000002, | 
|  | ImageOperandsGradMask = 0x00000004, | 
|  | ImageOperandsConstOffsetMask = 0x00000008, | 
|  | ImageOperandsOffsetMask = 0x00000010, | 
|  | ImageOperandsConstOffsetsMask = 0x00000020, | 
|  | ImageOperandsSampleMask = 0x00000040, | 
|  | ImageOperandsMinLodMask = 0x00000080, | 
|  | ImageOperandsMakeTexelAvailableMask = 0x00000100, | 
|  | ImageOperandsMakeTexelAvailableKHRMask = 0x00000100, | 
|  | ImageOperandsMakeTexelVisibleMask = 0x00000200, | 
|  | ImageOperandsMakeTexelVisibleKHRMask = 0x00000200, | 
|  | ImageOperandsNonPrivateTexelMask = 0x00000400, | 
|  | ImageOperandsNonPrivateTexelKHRMask = 0x00000400, | 
|  | ImageOperandsVolatileTexelMask = 0x00000800, | 
|  | ImageOperandsVolatileTexelKHRMask = 0x00000800, | 
|  | ImageOperandsSignExtendMask = 0x00001000, | 
|  | ImageOperandsZeroExtendMask = 0x00002000, | 
|  | ImageOperandsNontemporalMask = 0x00004000, | 
|  | ImageOperandsOffsetsMask = 0x00010000, | 
|  | }; | 
|  |  | 
|  | enum FPFastMathModeShift { | 
|  | FPFastMathModeNotNaNShift = 0, | 
|  | FPFastMathModeNotInfShift = 1, | 
|  | FPFastMathModeNSZShift = 2, | 
|  | FPFastMathModeAllowRecipShift = 3, | 
|  | FPFastMathModeFastShift = 4, | 
|  | FPFastMathModeAllowContractFastINTELShift = 16, | 
|  | FPFastMathModeAllowReassocINTELShift = 17, | 
|  | FPFastMathModeMax = 0x7fffffff, | 
|  | }; | 
|  |  | 
|  | enum FPFastMathModeMask { | 
|  | FPFastMathModeMaskNone = 0, | 
|  | FPFastMathModeNotNaNMask = 0x00000001, | 
|  | FPFastMathModeNotInfMask = 0x00000002, | 
|  | FPFastMathModeNSZMask = 0x00000004, | 
|  | FPFastMathModeAllowRecipMask = 0x00000008, | 
|  | FPFastMathModeFastMask = 0x00000010, | 
|  | FPFastMathModeAllowContractFastINTELMask = 0x00010000, | 
|  | FPFastMathModeAllowReassocINTELMask = 0x00020000, | 
|  | }; | 
|  |  | 
|  | enum FPRoundingMode { | 
|  | FPRoundingModeRTE = 0, | 
|  | FPRoundingModeRTZ = 1, | 
|  | FPRoundingModeRTP = 2, | 
|  | FPRoundingModeRTN = 3, | 
|  | FPRoundingModeMax = 0x7fffffff, | 
|  | }; | 
|  |  | 
|  | enum LinkageType { | 
|  | LinkageTypeExport = 0, | 
|  | LinkageTypeImport = 1, | 
|  | LinkageTypeLinkOnceODR = 2, | 
|  | 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, | 
|  | DecorationUniformId = 27, | 
|  | 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, | 
|  | DecorationMaxByteOffset = 45, | 
|  | DecorationAlignmentId = 46, | 
|  | DecorationMaxByteOffsetId = 47, | 
|  | DecorationNoSignedWrap = 4469, | 
|  | DecorationNoUnsignedWrap = 4470, | 
|  | DecorationExplicitInterpAMD = 4999, | 
|  | DecorationOverrideCoverageNV = 5248, | 
|  | DecorationPassthroughNV = 5250, | 
|  | DecorationViewportRelativeNV = 5252, | 
|  | DecorationSecondaryViewportRelativeNV = 5256, | 
|  | DecorationPerPrimitiveNV = 5271, | 
|  | DecorationPerViewNV = 5272, | 
|  | DecorationPerTaskNV = 5273, | 
|  | DecorationPerVertexKHR = 5285, | 
|  | DecorationPerVertexNV = 5285, | 
|  | DecorationNonUniform = 5300, | 
|  | DecorationNonUniformEXT = 5300, | 
|  | DecorationRestrictPointer = 5355, | 
|  | DecorationRestrictPointerEXT = 5355, | 
|  | DecorationAliasedPointer = 5356, | 
|  | DecorationAliasedPointerEXT = 5356, | 
|  | DecorationBindlessSamplerNV = 5398, | 
|  | DecorationBindlessImageNV = 5399, | 
|  | DecorationBoundSamplerNV = 5400, | 
|  | DecorationBoundImageNV = 5401, | 
|  | DecorationSIMTCallINTEL = 5599, | 
|  | DecorationReferencedIndirectlyINTEL = 5602, | 
|  | DecorationClobberINTEL = 5607, | 
|  | DecorationSideEffectsINTEL = 5608, | 
|  | DecorationVectorComputeVariableINTEL = 5624, | 
|  | DecorationFuncParamIOKindINTEL = 5625, | 
|  | DecorationVectorComputeFunctionINTEL = 5626, | 
|  | DecorationStackCallINTEL = 5627, | 
|  | DecorationGlobalVariableOffsetINTEL = 5628, | 
|  | DecorationCounterBuffer = 5634, | 
|  | DecorationHlslCounterBufferGOOGLE = 5634, | 
|  | DecorationHlslSemanticGOOGLE = 5635, | 
|  | DecorationUserSemantic = 5635, | 
|  | DecorationUserTypeGOOGLE = 5636, | 
|  | DecorationFunctionRoundingModeINTEL = 5822, | 
|  | DecorationFunctionDenormModeINTEL = 5823, | 
|  | DecorationRegisterINTEL = 5825, | 
|  | DecorationMemoryINTEL = 5826, | 
|  | DecorationNumbanksINTEL = 5827, | 
|  | DecorationBankwidthINTEL = 5828, | 
|  | DecorationMaxPrivateCopiesINTEL = 5829, | 
|  | DecorationSinglepumpINTEL = 5830, | 
|  | DecorationDoublepumpINTEL = 5831, | 
|  | DecorationMaxReplicatesINTEL = 5832, | 
|  | DecorationSimpleDualPortINTEL = 5833, | 
|  | DecorationMergeINTEL = 5834, | 
|  | DecorationBankBitsINTEL = 5835, | 
|  | DecorationForcePow2DepthINTEL = 5836, | 
|  | DecorationBurstCoalesceINTEL = 5899, | 
|  | DecorationCacheSizeINTEL = 5900, | 
|  | DecorationDontStaticallyCoalesceINTEL = 5901, | 
|  | DecorationPrefetchINTEL = 5902, | 
|  | DecorationStallEnableINTEL = 5905, | 
|  | DecorationFuseLoopsInFunctionINTEL = 5907, | 
|  | DecorationAliasScopeINTEL = 5914, | 
|  | DecorationNoAliasINTEL = 5915, | 
|  | DecorationBufferLocationINTEL = 5921, | 
|  | DecorationIOPipeStorageINTEL = 5944, | 
|  | DecorationFunctionFloatingPointModeINTEL = 6080, | 
|  | DecorationSingleElementVectorINTEL = 6085, | 
|  | DecorationVectorComputeCallableFunctionINTEL = 6087, | 
|  | DecorationMediaBlockIOINTEL = 6140, | 
|  | 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, | 
|  | BuiltInSubgroupEqMask = 4416, | 
|  | BuiltInSubgroupEqMaskKHR = 4416, | 
|  | BuiltInSubgroupGeMask = 4417, | 
|  | BuiltInSubgroupGeMaskKHR = 4417, | 
|  | BuiltInSubgroupGtMask = 4418, | 
|  | BuiltInSubgroupGtMaskKHR = 4418, | 
|  | BuiltInSubgroupLeMask = 4419, | 
|  | BuiltInSubgroupLeMaskKHR = 4419, | 
|  | BuiltInSubgroupLtMask = 4420, | 
|  | BuiltInSubgroupLtMaskKHR = 4420, | 
|  | BuiltInBaseVertex = 4424, | 
|  | BuiltInBaseInstance = 4425, | 
|  | BuiltInDrawIndex = 4426, | 
|  | BuiltInPrimitiveShadingRateKHR = 4432, | 
|  | BuiltInDeviceIndex = 4438, | 
|  | BuiltInViewIndex = 4440, | 
|  | BuiltInShadingRateKHR = 4444, | 
|  | 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, | 
|  | BuiltInFullyCoveredEXT = 5264, | 
|  | BuiltInTaskCountNV = 5274, | 
|  | BuiltInPrimitiveCountNV = 5275, | 
|  | BuiltInPrimitiveIndicesNV = 5276, | 
|  | BuiltInClipDistancePerViewNV = 5277, | 
|  | BuiltInCullDistancePerViewNV = 5278, | 
|  | BuiltInLayerPerViewNV = 5279, | 
|  | BuiltInMeshViewCountNV = 5280, | 
|  | BuiltInMeshViewIndicesNV = 5281, | 
|  | BuiltInBaryCoordKHR = 5286, | 
|  | BuiltInBaryCoordNV = 5286, | 
|  | BuiltInBaryCoordNoPerspKHR = 5287, | 
|  | BuiltInBaryCoordNoPerspNV = 5287, | 
|  | BuiltInFragSizeEXT = 5292, | 
|  | BuiltInFragmentSizeNV = 5292, | 
|  | BuiltInFragInvocationCountEXT = 5293, | 
|  | BuiltInInvocationsPerPixelNV = 5293, | 
|  | BuiltInLaunchIdKHR = 5319, | 
|  | BuiltInLaunchIdNV = 5319, | 
|  | BuiltInLaunchSizeKHR = 5320, | 
|  | BuiltInLaunchSizeNV = 5320, | 
|  | BuiltInWorldRayOriginKHR = 5321, | 
|  | BuiltInWorldRayOriginNV = 5321, | 
|  | BuiltInWorldRayDirectionKHR = 5322, | 
|  | BuiltInWorldRayDirectionNV = 5322, | 
|  | BuiltInObjectRayOriginKHR = 5323, | 
|  | BuiltInObjectRayOriginNV = 5323, | 
|  | BuiltInObjectRayDirectionKHR = 5324, | 
|  | BuiltInObjectRayDirectionNV = 5324, | 
|  | BuiltInRayTminKHR = 5325, | 
|  | BuiltInRayTminNV = 5325, | 
|  | BuiltInRayTmaxKHR = 5326, | 
|  | BuiltInRayTmaxNV = 5326, | 
|  | BuiltInInstanceCustomIndexKHR = 5327, | 
|  | BuiltInInstanceCustomIndexNV = 5327, | 
|  | BuiltInObjectToWorldKHR = 5330, | 
|  | BuiltInObjectToWorldNV = 5330, | 
|  | BuiltInWorldToObjectKHR = 5331, | 
|  | BuiltInWorldToObjectNV = 5331, | 
|  | BuiltInHitTNV = 5332, | 
|  | BuiltInHitKindKHR = 5333, | 
|  | BuiltInHitKindNV = 5333, | 
|  | BuiltInCurrentRayTimeNV = 5334, | 
|  | BuiltInIncomingRayFlagsKHR = 5351, | 
|  | BuiltInIncomingRayFlagsNV = 5351, | 
|  | BuiltInRayGeometryIndexKHR = 5352, | 
|  | BuiltInWarpsPerSMNV = 5374, | 
|  | BuiltInSMCountNV = 5375, | 
|  | BuiltInWarpIDNV = 5376, | 
|  | BuiltInSMIDNV = 5377, | 
|  | BuiltInMax = 0x7fffffff, | 
|  | }; | 
|  |  | 
|  | enum SelectionControlShift { | 
|  | SelectionControlFlattenShift = 0, | 
|  | SelectionControlDontFlattenShift = 1, | 
|  | SelectionControlMax = 0x7fffffff, | 
|  | }; | 
|  |  | 
|  | enum SelectionControlMask { | 
|  | SelectionControlMaskNone = 0, | 
|  | SelectionControlFlattenMask = 0x00000001, | 
|  | SelectionControlDontFlattenMask = 0x00000002, | 
|  | }; | 
|  |  | 
|  | enum LoopControlShift { | 
|  | LoopControlUnrollShift = 0, | 
|  | LoopControlDontUnrollShift = 1, | 
|  | LoopControlDependencyInfiniteShift = 2, | 
|  | LoopControlDependencyLengthShift = 3, | 
|  | LoopControlMinIterationsShift = 4, | 
|  | LoopControlMaxIterationsShift = 5, | 
|  | LoopControlIterationMultipleShift = 6, | 
|  | LoopControlPeelCountShift = 7, | 
|  | LoopControlPartialCountShift = 8, | 
|  | LoopControlInitiationIntervalINTELShift = 16, | 
|  | LoopControlMaxConcurrencyINTELShift = 17, | 
|  | LoopControlDependencyArrayINTELShift = 18, | 
|  | LoopControlPipelineEnableINTELShift = 19, | 
|  | LoopControlLoopCoalesceINTELShift = 20, | 
|  | LoopControlMaxInterleavingINTELShift = 21, | 
|  | LoopControlSpeculatedIterationsINTELShift = 22, | 
|  | LoopControlNoFusionINTELShift = 23, | 
|  | LoopControlMax = 0x7fffffff, | 
|  | }; | 
|  |  | 
|  | enum LoopControlMask { | 
|  | LoopControlMaskNone = 0, | 
|  | LoopControlUnrollMask = 0x00000001, | 
|  | LoopControlDontUnrollMask = 0x00000002, | 
|  | LoopControlDependencyInfiniteMask = 0x00000004, | 
|  | LoopControlDependencyLengthMask = 0x00000008, | 
|  | LoopControlMinIterationsMask = 0x00000010, | 
|  | LoopControlMaxIterationsMask = 0x00000020, | 
|  | LoopControlIterationMultipleMask = 0x00000040, | 
|  | LoopControlPeelCountMask = 0x00000080, | 
|  | LoopControlPartialCountMask = 0x00000100, | 
|  | LoopControlInitiationIntervalINTELMask = 0x00010000, | 
|  | LoopControlMaxConcurrencyINTELMask = 0x00020000, | 
|  | LoopControlDependencyArrayINTELMask = 0x00040000, | 
|  | LoopControlPipelineEnableINTELMask = 0x00080000, | 
|  | LoopControlLoopCoalesceINTELMask = 0x00100000, | 
|  | LoopControlMaxInterleavingINTELMask = 0x00200000, | 
|  | LoopControlSpeculatedIterationsINTELMask = 0x00400000, | 
|  | LoopControlNoFusionINTELMask = 0x00800000, | 
|  | }; | 
|  |  | 
|  | enum FunctionControlShift { | 
|  | FunctionControlInlineShift = 0, | 
|  | FunctionControlDontInlineShift = 1, | 
|  | FunctionControlPureShift = 2, | 
|  | FunctionControlConstShift = 3, | 
|  | FunctionControlOptNoneINTELShift = 16, | 
|  | FunctionControlMax = 0x7fffffff, | 
|  | }; | 
|  |  | 
|  | enum FunctionControlMask { | 
|  | FunctionControlMaskNone = 0, | 
|  | FunctionControlInlineMask = 0x00000001, | 
|  | FunctionControlDontInlineMask = 0x00000002, | 
|  | FunctionControlPureMask = 0x00000004, | 
|  | FunctionControlConstMask = 0x00000008, | 
|  | FunctionControlOptNoneINTELMask = 0x00010000, | 
|  | }; | 
|  |  | 
|  | enum MemorySemanticsShift { | 
|  | MemorySemanticsAcquireShift = 1, | 
|  | MemorySemanticsReleaseShift = 2, | 
|  | MemorySemanticsAcquireReleaseShift = 3, | 
|  | MemorySemanticsSequentiallyConsistentShift = 4, | 
|  | MemorySemanticsUniformMemoryShift = 6, | 
|  | MemorySemanticsSubgroupMemoryShift = 7, | 
|  | MemorySemanticsWorkgroupMemoryShift = 8, | 
|  | MemorySemanticsCrossWorkgroupMemoryShift = 9, | 
|  | MemorySemanticsAtomicCounterMemoryShift = 10, | 
|  | MemorySemanticsImageMemoryShift = 11, | 
|  | MemorySemanticsOutputMemoryShift = 12, | 
|  | MemorySemanticsOutputMemoryKHRShift = 12, | 
|  | MemorySemanticsMakeAvailableShift = 13, | 
|  | MemorySemanticsMakeAvailableKHRShift = 13, | 
|  | MemorySemanticsMakeVisibleShift = 14, | 
|  | MemorySemanticsMakeVisibleKHRShift = 14, | 
|  | MemorySemanticsVolatileShift = 15, | 
|  | 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, | 
|  | MemorySemanticsOutputMemoryMask = 0x00001000, | 
|  | MemorySemanticsOutputMemoryKHRMask = 0x00001000, | 
|  | MemorySemanticsMakeAvailableMask = 0x00002000, | 
|  | MemorySemanticsMakeAvailableKHRMask = 0x00002000, | 
|  | MemorySemanticsMakeVisibleMask = 0x00004000, | 
|  | MemorySemanticsMakeVisibleKHRMask = 0x00004000, | 
|  | MemorySemanticsVolatileMask = 0x00008000, | 
|  | }; | 
|  |  | 
|  | enum MemoryAccessShift { | 
|  | MemoryAccessVolatileShift = 0, | 
|  | MemoryAccessAlignedShift = 1, | 
|  | MemoryAccessNontemporalShift = 2, | 
|  | MemoryAccessMakePointerAvailableShift = 3, | 
|  | MemoryAccessMakePointerAvailableKHRShift = 3, | 
|  | MemoryAccessMakePointerVisibleShift = 4, | 
|  | MemoryAccessMakePointerVisibleKHRShift = 4, | 
|  | MemoryAccessNonPrivatePointerShift = 5, | 
|  | MemoryAccessNonPrivatePointerKHRShift = 5, | 
|  | MemoryAccessAliasScopeINTELMaskShift = 16, | 
|  | MemoryAccessNoAliasINTELMaskShift = 17, | 
|  | MemoryAccessMax = 0x7fffffff, | 
|  | }; | 
|  |  | 
|  | enum MemoryAccessMask { | 
|  | MemoryAccessMaskNone = 0, | 
|  | MemoryAccessVolatileMask = 0x00000001, | 
|  | MemoryAccessAlignedMask = 0x00000002, | 
|  | MemoryAccessNontemporalMask = 0x00000004, | 
|  | MemoryAccessMakePointerAvailableMask = 0x00000008, | 
|  | MemoryAccessMakePointerAvailableKHRMask = 0x00000008, | 
|  | MemoryAccessMakePointerVisibleMask = 0x00000010, | 
|  | MemoryAccessMakePointerVisibleKHRMask = 0x00000010, | 
|  | MemoryAccessNonPrivatePointerMask = 0x00000020, | 
|  | MemoryAccessNonPrivatePointerKHRMask = 0x00000020, | 
|  | MemoryAccessAliasScopeINTELMaskMask = 0x00010000, | 
|  | MemoryAccessNoAliasINTELMaskMask = 0x00020000, | 
|  | }; | 
|  |  | 
|  | enum Scope { | 
|  | ScopeCrossDevice = 0, | 
|  | ScopeDevice = 1, | 
|  | ScopeWorkgroup = 2, | 
|  | ScopeSubgroup = 3, | 
|  | ScopeInvocation = 4, | 
|  | ScopeQueueFamily = 5, | 
|  | ScopeQueueFamilyKHR = 5, | 
|  | ScopeShaderCallKHR = 6, | 
|  | ScopeMax = 0x7fffffff, | 
|  | }; | 
|  |  | 
|  | enum GroupOperation { | 
|  | GroupOperationReduce = 0, | 
|  | GroupOperationInclusiveScan = 1, | 
|  | GroupOperationExclusiveScan = 2, | 
|  | GroupOperationClusteredReduce = 3, | 
|  | GroupOperationPartitionedReduceNV = 6, | 
|  | GroupOperationPartitionedInclusiveScanNV = 7, | 
|  | GroupOperationPartitionedExclusiveScanNV = 8, | 
|  | 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, | 
|  | CapabilitySubgroupDispatch = 58, | 
|  | CapabilityNamedBarrier = 59, | 
|  | CapabilityPipeStorage = 60, | 
|  | CapabilityGroupNonUniform = 61, | 
|  | CapabilityGroupNonUniformVote = 62, | 
|  | CapabilityGroupNonUniformArithmetic = 63, | 
|  | CapabilityGroupNonUniformBallot = 64, | 
|  | CapabilityGroupNonUniformShuffle = 65, | 
|  | CapabilityGroupNonUniformShuffleRelative = 66, | 
|  | CapabilityGroupNonUniformClustered = 67, | 
|  | CapabilityGroupNonUniformQuad = 68, | 
|  | CapabilityShaderLayer = 69, | 
|  | CapabilityShaderViewportIndex = 70, | 
|  | CapabilityUniformDecoration = 71, | 
|  | CapabilityFragmentShadingRateKHR = 4422, | 
|  | CapabilitySubgroupBallotKHR = 4423, | 
|  | CapabilityDrawParameters = 4427, | 
|  | CapabilityWorkgroupMemoryExplicitLayoutKHR = 4428, | 
|  | CapabilityWorkgroupMemoryExplicitLayout8BitAccessKHR = 4429, | 
|  | CapabilityWorkgroupMemoryExplicitLayout16BitAccessKHR = 4430, | 
|  | 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, | 
|  | CapabilityStorageBuffer8BitAccess = 4448, | 
|  | CapabilityUniformAndStorageBuffer8BitAccess = 4449, | 
|  | CapabilityStoragePushConstant8 = 4450, | 
|  | CapabilityDenormPreserve = 4464, | 
|  | CapabilityDenormFlushToZero = 4465, | 
|  | CapabilitySignedZeroInfNanPreserve = 4466, | 
|  | CapabilityRoundingModeRTE = 4467, | 
|  | CapabilityRoundingModeRTZ = 4468, | 
|  | CapabilityRayQueryProvisionalKHR = 4471, | 
|  | CapabilityRayQueryKHR = 4472, | 
|  | CapabilityRayTraversalPrimitiveCullingKHR = 4478, | 
|  | CapabilityRayTracingKHR = 4479, | 
|  | CapabilityFloat16ImageAMD = 5008, | 
|  | CapabilityImageGatherBiasLodAMD = 5009, | 
|  | CapabilityFragmentMaskAMD = 5010, | 
|  | CapabilityStencilExportEXT = 5013, | 
|  | CapabilityImageReadWriteLodAMD = 5015, | 
|  | CapabilityInt64ImageEXT = 5016, | 
|  | CapabilityShaderClockKHR = 5055, | 
|  | CapabilitySampleMaskOverrideCoverageNV = 5249, | 
|  | CapabilityGeometryShaderPassthroughNV = 5251, | 
|  | CapabilityShaderViewportIndexLayerEXT = 5254, | 
|  | CapabilityShaderViewportIndexLayerNV = 5254, | 
|  | CapabilityShaderViewportMaskNV = 5255, | 
|  | CapabilityShaderStereoViewNV = 5259, | 
|  | CapabilityPerViewAttributesNV = 5260, | 
|  | CapabilityFragmentFullyCoveredEXT = 5265, | 
|  | CapabilityMeshShadingNV = 5266, | 
|  | CapabilityImageFootprintNV = 5282, | 
|  | CapabilityFragmentBarycentricKHR = 5284, | 
|  | CapabilityFragmentBarycentricNV = 5284, | 
|  | CapabilityComputeDerivativeGroupQuadsNV = 5288, | 
|  | CapabilityFragmentDensityEXT = 5291, | 
|  | CapabilityShadingRateNV = 5291, | 
|  | CapabilityGroupNonUniformPartitionedNV = 5297, | 
|  | CapabilityShaderNonUniform = 5301, | 
|  | CapabilityShaderNonUniformEXT = 5301, | 
|  | CapabilityRuntimeDescriptorArray = 5302, | 
|  | CapabilityRuntimeDescriptorArrayEXT = 5302, | 
|  | CapabilityInputAttachmentArrayDynamicIndexing = 5303, | 
|  | CapabilityInputAttachmentArrayDynamicIndexingEXT = 5303, | 
|  | CapabilityUniformTexelBufferArrayDynamicIndexing = 5304, | 
|  | CapabilityUniformTexelBufferArrayDynamicIndexingEXT = 5304, | 
|  | CapabilityStorageTexelBufferArrayDynamicIndexing = 5305, | 
|  | CapabilityStorageTexelBufferArrayDynamicIndexingEXT = 5305, | 
|  | CapabilityUniformBufferArrayNonUniformIndexing = 5306, | 
|  | CapabilityUniformBufferArrayNonUniformIndexingEXT = 5306, | 
|  | CapabilitySampledImageArrayNonUniformIndexing = 5307, | 
|  | CapabilitySampledImageArrayNonUniformIndexingEXT = 5307, | 
|  | CapabilityStorageBufferArrayNonUniformIndexing = 5308, | 
|  | CapabilityStorageBufferArrayNonUniformIndexingEXT = 5308, | 
|  | CapabilityStorageImageArrayNonUniformIndexing = 5309, | 
|  | CapabilityStorageImageArrayNonUniformIndexingEXT = 5309, | 
|  | CapabilityInputAttachmentArrayNonUniformIndexing = 5310, | 
|  | CapabilityInputAttachmentArrayNonUniformIndexingEXT = 5310, | 
|  | CapabilityUniformTexelBufferArrayNonUniformIndexing = 5311, | 
|  | CapabilityUniformTexelBufferArrayNonUniformIndexingEXT = 5311, | 
|  | CapabilityStorageTexelBufferArrayNonUniformIndexing = 5312, | 
|  | CapabilityStorageTexelBufferArrayNonUniformIndexingEXT = 5312, | 
|  | CapabilityRayTracingNV = 5340, | 
|  | CapabilityRayTracingMotionBlurNV = 5341, | 
|  | CapabilityVulkanMemoryModel = 5345, | 
|  | CapabilityVulkanMemoryModelKHR = 5345, | 
|  | CapabilityVulkanMemoryModelDeviceScope = 5346, | 
|  | CapabilityVulkanMemoryModelDeviceScopeKHR = 5346, | 
|  | CapabilityPhysicalStorageBufferAddresses = 5347, | 
|  | CapabilityPhysicalStorageBufferAddressesEXT = 5347, | 
|  | CapabilityComputeDerivativeGroupLinearNV = 5350, | 
|  | CapabilityRayTracingProvisionalKHR = 5353, | 
|  | CapabilityCooperativeMatrixNV = 5357, | 
|  | CapabilityFragmentShaderSampleInterlockEXT = 5363, | 
|  | CapabilityFragmentShaderShadingRateInterlockEXT = 5372, | 
|  | CapabilityShaderSMBuiltinsNV = 5373, | 
|  | CapabilityFragmentShaderPixelInterlockEXT = 5378, | 
|  | CapabilityDemoteToHelperInvocation = 5379, | 
|  | CapabilityDemoteToHelperInvocationEXT = 5379, | 
|  | CapabilityBindlessTextureNV = 5390, | 
|  | CapabilitySubgroupShuffleINTEL = 5568, | 
|  | CapabilitySubgroupBufferBlockIOINTEL = 5569, | 
|  | CapabilitySubgroupImageBlockIOINTEL = 5570, | 
|  | CapabilitySubgroupImageMediaBlockIOINTEL = 5579, | 
|  | CapabilityRoundToInfinityINTEL = 5582, | 
|  | CapabilityFloatingPointModeINTEL = 5583, | 
|  | CapabilityIntegerFunctions2INTEL = 5584, | 
|  | CapabilityFunctionPointersINTEL = 5603, | 
|  | CapabilityIndirectReferencesINTEL = 5604, | 
|  | CapabilityAsmINTEL = 5606, | 
|  | CapabilityAtomicFloat32MinMaxEXT = 5612, | 
|  | CapabilityAtomicFloat64MinMaxEXT = 5613, | 
|  | CapabilityAtomicFloat16MinMaxEXT = 5616, | 
|  | CapabilityVectorComputeINTEL = 5617, | 
|  | CapabilityVectorAnyINTEL = 5619, | 
|  | CapabilityExpectAssumeKHR = 5629, | 
|  | CapabilitySubgroupAvcMotionEstimationINTEL = 5696, | 
|  | CapabilitySubgroupAvcMotionEstimationIntraINTEL = 5697, | 
|  | CapabilitySubgroupAvcMotionEstimationChromaINTEL = 5698, | 
|  | CapabilityVariableLengthArrayINTEL = 5817, | 
|  | CapabilityFunctionFloatControlINTEL = 5821, | 
|  | CapabilityFPGAMemoryAttributesINTEL = 5824, | 
|  | CapabilityFPFastMathModeINTEL = 5837, | 
|  | CapabilityArbitraryPrecisionIntegersINTEL = 5844, | 
|  | CapabilityArbitraryPrecisionFloatingPointINTEL = 5845, | 
|  | CapabilityUnstructuredLoopControlsINTEL = 5886, | 
|  | CapabilityFPGALoopControlsINTEL = 5888, | 
|  | CapabilityKernelAttributesINTEL = 5892, | 
|  | CapabilityFPGAKernelAttributesINTEL = 5897, | 
|  | CapabilityFPGAMemoryAccessesINTEL = 5898, | 
|  | CapabilityFPGAClusterAttributesINTEL = 5904, | 
|  | CapabilityLoopFuseINTEL = 5906, | 
|  | CapabilityMemoryAccessAliasingINTEL = 5910, | 
|  | CapabilityFPGABufferLocationINTEL = 5920, | 
|  | CapabilityArbitraryPrecisionFixedPointINTEL = 5922, | 
|  | CapabilityUSMStorageClassesINTEL = 5935, | 
|  | CapabilityIOPipesINTEL = 5943, | 
|  | CapabilityBlockingPipesINTEL = 5945, | 
|  | CapabilityFPGARegINTEL = 5948, | 
|  | CapabilityDotProductInputAll = 6016, | 
|  | CapabilityDotProductInputAllKHR = 6016, | 
|  | CapabilityDotProductInput4x8Bit = 6017, | 
|  | CapabilityDotProductInput4x8BitKHR = 6017, | 
|  | CapabilityDotProductInput4x8BitPacked = 6018, | 
|  | CapabilityDotProductInput4x8BitPackedKHR = 6018, | 
|  | CapabilityDotProduct = 6019, | 
|  | CapabilityDotProductKHR = 6019, | 
|  | CapabilityBitInstructions = 6025, | 
|  | CapabilityAtomicFloat32AddEXT = 6033, | 
|  | CapabilityAtomicFloat64AddEXT = 6034, | 
|  | CapabilityLongConstantCompositeINTEL = 6089, | 
|  | CapabilityOptNoneINTEL = 6094, | 
|  | CapabilityAtomicFloat16AddEXT = 6095, | 
|  | CapabilityDebugInfoModuleINTEL = 6114, | 
|  | CapabilityMax = 0x7fffffff, | 
|  | }; | 
|  |  | 
|  | enum RayFlagsShift { | 
|  | RayFlagsOpaqueKHRShift = 0, | 
|  | RayFlagsNoOpaqueKHRShift = 1, | 
|  | RayFlagsTerminateOnFirstHitKHRShift = 2, | 
|  | RayFlagsSkipClosestHitShaderKHRShift = 3, | 
|  | RayFlagsCullBackFacingTrianglesKHRShift = 4, | 
|  | RayFlagsCullFrontFacingTrianglesKHRShift = 5, | 
|  | RayFlagsCullOpaqueKHRShift = 6, | 
|  | RayFlagsCullNoOpaqueKHRShift = 7, | 
|  | RayFlagsSkipTrianglesKHRShift = 8, | 
|  | RayFlagsSkipAABBsKHRShift = 9, | 
|  | RayFlagsMax = 0x7fffffff, | 
|  | }; | 
|  |  | 
|  | enum RayFlagsMask { | 
|  | RayFlagsMaskNone = 0, | 
|  | RayFlagsOpaqueKHRMask = 0x00000001, | 
|  | RayFlagsNoOpaqueKHRMask = 0x00000002, | 
|  | RayFlagsTerminateOnFirstHitKHRMask = 0x00000004, | 
|  | RayFlagsSkipClosestHitShaderKHRMask = 0x00000008, | 
|  | RayFlagsCullBackFacingTrianglesKHRMask = 0x00000010, | 
|  | RayFlagsCullFrontFacingTrianglesKHRMask = 0x00000020, | 
|  | RayFlagsCullOpaqueKHRMask = 0x00000040, | 
|  | RayFlagsCullNoOpaqueKHRMask = 0x00000080, | 
|  | RayFlagsSkipTrianglesKHRMask = 0x00000100, | 
|  | RayFlagsSkipAABBsKHRMask = 0x00000200, | 
|  | }; | 
|  |  | 
|  | enum RayQueryIntersection { | 
|  | RayQueryIntersectionRayQueryCandidateIntersectionKHR = 0, | 
|  | RayQueryIntersectionRayQueryCommittedIntersectionKHR = 1, | 
|  | RayQueryIntersectionMax = 0x7fffffff, | 
|  | }; | 
|  |  | 
|  | enum RayQueryCommittedIntersectionType { | 
|  | RayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionNoneKHR = 0, | 
|  | RayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionTriangleKHR = 1, | 
|  | RayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionGeneratedKHR = 2, | 
|  | RayQueryCommittedIntersectionTypeMax = 0x7fffffff, | 
|  | }; | 
|  |  | 
|  | enum RayQueryCandidateIntersectionType { | 
|  | RayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionTriangleKHR = 0, | 
|  | RayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionAABBKHR = 1, | 
|  | RayQueryCandidateIntersectionTypeMax = 0x7fffffff, | 
|  | }; | 
|  |  | 
|  | enum FragmentShadingRateShift { | 
|  | FragmentShadingRateVertical2PixelsShift = 0, | 
|  | FragmentShadingRateVertical4PixelsShift = 1, | 
|  | FragmentShadingRateHorizontal2PixelsShift = 2, | 
|  | FragmentShadingRateHorizontal4PixelsShift = 3, | 
|  | FragmentShadingRateMax = 0x7fffffff, | 
|  | }; | 
|  |  | 
|  | enum FragmentShadingRateMask { | 
|  | FragmentShadingRateMaskNone = 0, | 
|  | FragmentShadingRateVertical2PixelsMask = 0x00000001, | 
|  | FragmentShadingRateVertical4PixelsMask = 0x00000002, | 
|  | FragmentShadingRateHorizontal2PixelsMask = 0x00000004, | 
|  | FragmentShadingRateHorizontal4PixelsMask = 0x00000008, | 
|  | }; | 
|  |  | 
|  | enum FPDenormMode { | 
|  | FPDenormModePreserve = 0, | 
|  | FPDenormModeFlushToZero = 1, | 
|  | FPDenormModeMax = 0x7fffffff, | 
|  | }; | 
|  |  | 
|  | enum FPOperationMode { | 
|  | FPOperationModeIEEE = 0, | 
|  | FPOperationModeALT = 1, | 
|  | FPOperationModeMax = 0x7fffffff, | 
|  | }; | 
|  |  | 
|  | enum QuantizationModes { | 
|  | QuantizationModesTRN = 0, | 
|  | QuantizationModesTRN_ZERO = 1, | 
|  | QuantizationModesRND = 2, | 
|  | QuantizationModesRND_ZERO = 3, | 
|  | QuantizationModesRND_INF = 4, | 
|  | QuantizationModesRND_MIN_INF = 5, | 
|  | QuantizationModesRND_CONV = 6, | 
|  | QuantizationModesRND_CONV_ODD = 7, | 
|  | QuantizationModesMax = 0x7fffffff, | 
|  | }; | 
|  |  | 
|  | enum OverflowModes { | 
|  | OverflowModesWRAP = 0, | 
|  | OverflowModesSAT = 1, | 
|  | OverflowModesSAT_ZERO = 2, | 
|  | OverflowModesSAT_SYM = 3, | 
|  | OverflowModesMax = 0x7fffffff, | 
|  | }; | 
|  |  | 
|  | enum PackedVectorFormat { | 
|  | PackedVectorFormatPackedVectorFormat4x8Bit = 0, | 
|  | PackedVectorFormatPackedVectorFormat4x8BitKHR = 0, | 
|  | PackedVectorFormatMax = 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, | 
|  | 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, | 
|  | OpCopyLogical = 400, | 
|  | OpPtrEqual = 401, | 
|  | OpPtrNotEqual = 402, | 
|  | OpPtrDiff = 403, | 
|  | OpTerminateInvocation = 4416, | 
|  | OpSubgroupBallotKHR = 4421, | 
|  | OpSubgroupFirstInvocationKHR = 4422, | 
|  | OpSubgroupAllKHR = 4428, | 
|  | OpSubgroupAnyKHR = 4429, | 
|  | OpSubgroupAllEqualKHR = 4430, | 
|  | OpSubgroupReadInvocationKHR = 4432, | 
|  | OpTraceRayKHR = 4445, | 
|  | OpExecuteCallableKHR = 4446, | 
|  | OpConvertUToAccelerationStructureKHR = 4447, | 
|  | OpIgnoreIntersectionKHR = 4448, | 
|  | OpTerminateRayKHR = 4449, | 
|  | OpSDot = 4450, | 
|  | OpSDotKHR = 4450, | 
|  | OpUDot = 4451, | 
|  | OpUDotKHR = 4451, | 
|  | OpSUDot = 4452, | 
|  | OpSUDotKHR = 4452, | 
|  | OpSDotAccSat = 4453, | 
|  | OpSDotAccSatKHR = 4453, | 
|  | OpUDotAccSat = 4454, | 
|  | OpUDotAccSatKHR = 4454, | 
|  | OpSUDotAccSat = 4455, | 
|  | OpSUDotAccSatKHR = 4455, | 
|  | OpTypeRayQueryKHR = 4472, | 
|  | OpRayQueryInitializeKHR = 4473, | 
|  | OpRayQueryTerminateKHR = 4474, | 
|  | OpRayQueryGenerateIntersectionKHR = 4475, | 
|  | OpRayQueryConfirmIntersectionKHR = 4476, | 
|  | OpRayQueryProceedKHR = 4477, | 
|  | OpRayQueryGetIntersectionTypeKHR = 4479, | 
|  | OpGroupIAddNonUniformAMD = 5000, | 
|  | OpGroupFAddNonUniformAMD = 5001, | 
|  | OpGroupFMinNonUniformAMD = 5002, | 
|  | OpGroupUMinNonUniformAMD = 5003, | 
|  | OpGroupSMinNonUniformAMD = 5004, | 
|  | OpGroupFMaxNonUniformAMD = 5005, | 
|  | OpGroupUMaxNonUniformAMD = 5006, | 
|  | OpGroupSMaxNonUniformAMD = 5007, | 
|  | OpFragmentMaskFetchAMD = 5011, | 
|  | OpFragmentFetchAMD = 5012, | 
|  | OpReadClockKHR = 5056, | 
|  | OpImageSampleFootprintNV = 5283, | 
|  | OpGroupNonUniformPartitionNV = 5296, | 
|  | OpWritePackedPrimitiveIndices4x8NV = 5299, | 
|  | OpReportIntersectionKHR = 5334, | 
|  | OpReportIntersectionNV = 5334, | 
|  | OpIgnoreIntersectionNV = 5335, | 
|  | OpTerminateRayNV = 5336, | 
|  | OpTraceNV = 5337, | 
|  | OpTraceMotionNV = 5338, | 
|  | OpTraceRayMotionNV = 5339, | 
|  | OpTypeAccelerationStructureKHR = 5341, | 
|  | OpTypeAccelerationStructureNV = 5341, | 
|  | OpExecuteCallableNV = 5344, | 
|  | OpTypeCooperativeMatrixNV = 5358, | 
|  | OpCooperativeMatrixLoadNV = 5359, | 
|  | OpCooperativeMatrixStoreNV = 5360, | 
|  | OpCooperativeMatrixMulAddNV = 5361, | 
|  | OpCooperativeMatrixLengthNV = 5362, | 
|  | OpBeginInvocationInterlockEXT = 5364, | 
|  | OpEndInvocationInterlockEXT = 5365, | 
|  | OpDemoteToHelperInvocation = 5380, | 
|  | OpDemoteToHelperInvocationEXT = 5380, | 
|  | OpIsHelperInvocationEXT = 5381, | 
|  | OpConvertUToImageNV = 5391, | 
|  | OpConvertUToSamplerNV = 5392, | 
|  | OpConvertImageToUNV = 5393, | 
|  | OpConvertSamplerToUNV = 5394, | 
|  | OpConvertUToSampledImageNV = 5395, | 
|  | OpConvertSampledImageToUNV = 5396, | 
|  | OpSamplerImageAddressingModeNV = 5397, | 
|  | OpSubgroupShuffleINTEL = 5571, | 
|  | OpSubgroupShuffleDownINTEL = 5572, | 
|  | OpSubgroupShuffleUpINTEL = 5573, | 
|  | OpSubgroupShuffleXorINTEL = 5574, | 
|  | OpSubgroupBlockReadINTEL = 5575, | 
|  | OpSubgroupBlockWriteINTEL = 5576, | 
|  | OpSubgroupImageBlockReadINTEL = 5577, | 
|  | OpSubgroupImageBlockWriteINTEL = 5578, | 
|  | OpSubgroupImageMediaBlockReadINTEL = 5580, | 
|  | OpSubgroupImageMediaBlockWriteINTEL = 5581, | 
|  | OpUCountLeadingZerosINTEL = 5585, | 
|  | OpUCountTrailingZerosINTEL = 5586, | 
|  | OpAbsISubINTEL = 5587, | 
|  | OpAbsUSubINTEL = 5588, | 
|  | OpIAddSatINTEL = 5589, | 
|  | OpUAddSatINTEL = 5590, | 
|  | OpIAverageINTEL = 5591, | 
|  | OpUAverageINTEL = 5592, | 
|  | OpIAverageRoundedINTEL = 5593, | 
|  | OpUAverageRoundedINTEL = 5594, | 
|  | OpISubSatINTEL = 5595, | 
|  | OpUSubSatINTEL = 5596, | 
|  | OpIMul32x16INTEL = 5597, | 
|  | OpUMul32x16INTEL = 5598, | 
|  | OpConstantFunctionPointerINTEL = 5600, | 
|  | OpFunctionPointerCallINTEL = 5601, | 
|  | OpAsmTargetINTEL = 5609, | 
|  | OpAsmINTEL = 5610, | 
|  | OpAsmCallINTEL = 5611, | 
|  | OpAtomicFMinEXT = 5614, | 
|  | OpAtomicFMaxEXT = 5615, | 
|  | OpAssumeTrueKHR = 5630, | 
|  | OpExpectKHR = 5631, | 
|  | OpDecorateString = 5632, | 
|  | OpDecorateStringGOOGLE = 5632, | 
|  | OpMemberDecorateString = 5633, | 
|  | OpMemberDecorateStringGOOGLE = 5633, | 
|  | OpVmeImageINTEL = 5699, | 
|  | OpTypeVmeImageINTEL = 5700, | 
|  | OpTypeAvcImePayloadINTEL = 5701, | 
|  | OpTypeAvcRefPayloadINTEL = 5702, | 
|  | OpTypeAvcSicPayloadINTEL = 5703, | 
|  | OpTypeAvcMcePayloadINTEL = 5704, | 
|  | OpTypeAvcMceResultINTEL = 5705, | 
|  | OpTypeAvcImeResultINTEL = 5706, | 
|  | OpTypeAvcImeResultSingleReferenceStreamoutINTEL = 5707, | 
|  | OpTypeAvcImeResultDualReferenceStreamoutINTEL = 5708, | 
|  | OpTypeAvcImeSingleReferenceStreaminINTEL = 5709, | 
|  | OpTypeAvcImeDualReferenceStreaminINTEL = 5710, | 
|  | OpTypeAvcRefResultINTEL = 5711, | 
|  | OpTypeAvcSicResultINTEL = 5712, | 
|  | OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL = 5713, | 
|  | OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL = 5714, | 
|  | OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL = 5715, | 
|  | OpSubgroupAvcMceSetInterShapePenaltyINTEL = 5716, | 
|  | OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL = 5717, | 
|  | OpSubgroupAvcMceSetInterDirectionPenaltyINTEL = 5718, | 
|  | OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL = 5719, | 
|  | OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL = 5720, | 
|  | OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL = 5721, | 
|  | OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL = 5722, | 
|  | OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL = 5723, | 
|  | OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL = 5724, | 
|  | OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL = 5725, | 
|  | OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL = 5726, | 
|  | OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL = 5727, | 
|  | OpSubgroupAvcMceSetAcOnlyHaarINTEL = 5728, | 
|  | OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL = 5729, | 
|  | OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL = 5730, | 
|  | OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL = 5731, | 
|  | OpSubgroupAvcMceConvertToImePayloadINTEL = 5732, | 
|  | OpSubgroupAvcMceConvertToImeResultINTEL = 5733, | 
|  | OpSubgroupAvcMceConvertToRefPayloadINTEL = 5734, | 
|  | OpSubgroupAvcMceConvertToRefResultINTEL = 5735, | 
|  | OpSubgroupAvcMceConvertToSicPayloadINTEL = 5736, | 
|  | OpSubgroupAvcMceConvertToSicResultINTEL = 5737, | 
|  | OpSubgroupAvcMceGetMotionVectorsINTEL = 5738, | 
|  | OpSubgroupAvcMceGetInterDistortionsINTEL = 5739, | 
|  | OpSubgroupAvcMceGetBestInterDistortionsINTEL = 5740, | 
|  | OpSubgroupAvcMceGetInterMajorShapeINTEL = 5741, | 
|  | OpSubgroupAvcMceGetInterMinorShapeINTEL = 5742, | 
|  | OpSubgroupAvcMceGetInterDirectionsINTEL = 5743, | 
|  | OpSubgroupAvcMceGetInterMotionVectorCountINTEL = 5744, | 
|  | OpSubgroupAvcMceGetInterReferenceIdsINTEL = 5745, | 
|  | OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL = 5746, | 
|  | OpSubgroupAvcImeInitializeINTEL = 5747, | 
|  | OpSubgroupAvcImeSetSingleReferenceINTEL = 5748, | 
|  | OpSubgroupAvcImeSetDualReferenceINTEL = 5749, | 
|  | OpSubgroupAvcImeRefWindowSizeINTEL = 5750, | 
|  | OpSubgroupAvcImeAdjustRefOffsetINTEL = 5751, | 
|  | OpSubgroupAvcImeConvertToMcePayloadINTEL = 5752, | 
|  | OpSubgroupAvcImeSetMaxMotionVectorCountINTEL = 5753, | 
|  | OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL = 5754, | 
|  | OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL = 5755, | 
|  | OpSubgroupAvcImeSetWeightedSadINTEL = 5756, | 
|  | OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL = 5757, | 
|  | OpSubgroupAvcImeEvaluateWithDualReferenceINTEL = 5758, | 
|  | OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL = 5759, | 
|  | OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL = 5760, | 
|  | OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL = 5761, | 
|  | OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL = 5762, | 
|  | OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL = 5763, | 
|  | OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL = 5764, | 
|  | OpSubgroupAvcImeConvertToMceResultINTEL = 5765, | 
|  | OpSubgroupAvcImeGetSingleReferenceStreaminINTEL = 5766, | 
|  | OpSubgroupAvcImeGetDualReferenceStreaminINTEL = 5767, | 
|  | OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL = 5768, | 
|  | OpSubgroupAvcImeStripDualReferenceStreamoutINTEL = 5769, | 
|  | OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL = 5770, | 
|  | OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL = 5771, | 
|  | OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL = 5772, | 
|  | OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL = 5773, | 
|  | OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL = 5774, | 
|  | OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL = 5775, | 
|  | OpSubgroupAvcImeGetBorderReachedINTEL = 5776, | 
|  | OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL = 5777, | 
|  | OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL = 5778, | 
|  | OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL = 5779, | 
|  | OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL = 5780, | 
|  | OpSubgroupAvcFmeInitializeINTEL = 5781, | 
|  | OpSubgroupAvcBmeInitializeINTEL = 5782, | 
|  | OpSubgroupAvcRefConvertToMcePayloadINTEL = 5783, | 
|  | OpSubgroupAvcRefSetBidirectionalMixDisableINTEL = 5784, | 
|  | OpSubgroupAvcRefSetBilinearFilterEnableINTEL = 5785, | 
|  | OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL = 5786, | 
|  | OpSubgroupAvcRefEvaluateWithDualReferenceINTEL = 5787, | 
|  | OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL = 5788, | 
|  | OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL = 5789, | 
|  | OpSubgroupAvcRefConvertToMceResultINTEL = 5790, | 
|  | OpSubgroupAvcSicInitializeINTEL = 5791, | 
|  | OpSubgroupAvcSicConfigureSkcINTEL = 5792, | 
|  | OpSubgroupAvcSicConfigureIpeLumaINTEL = 5793, | 
|  | OpSubgroupAvcSicConfigureIpeLumaChromaINTEL = 5794, | 
|  | OpSubgroupAvcSicGetMotionVectorMaskINTEL = 5795, | 
|  | OpSubgroupAvcSicConvertToMcePayloadINTEL = 5796, | 
|  | OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL = 5797, | 
|  | OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL = 5798, | 
|  | OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL = 5799, | 
|  | OpSubgroupAvcSicSetBilinearFilterEnableINTEL = 5800, | 
|  | OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL = 5801, | 
|  | OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL = 5802, | 
|  | OpSubgroupAvcSicEvaluateIpeINTEL = 5803, | 
|  | OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL = 5804, | 
|  | OpSubgroupAvcSicEvaluateWithDualReferenceINTEL = 5805, | 
|  | OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL = 5806, | 
|  | OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL = 5807, | 
|  | OpSubgroupAvcSicConvertToMceResultINTEL = 5808, | 
|  | OpSubgroupAvcSicGetIpeLumaShapeINTEL = 5809, | 
|  | OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL = 5810, | 
|  | OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL = 5811, | 
|  | OpSubgroupAvcSicGetPackedIpeLumaModesINTEL = 5812, | 
|  | OpSubgroupAvcSicGetIpeChromaModeINTEL = 5813, | 
|  | OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL = 5814, | 
|  | OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL = 5815, | 
|  | OpSubgroupAvcSicGetInterRawSadsINTEL = 5816, | 
|  | OpVariableLengthArrayINTEL = 5818, | 
|  | OpSaveMemoryINTEL = 5819, | 
|  | OpRestoreMemoryINTEL = 5820, | 
|  | OpArbitraryFloatSinCosPiINTEL = 5840, | 
|  | OpArbitraryFloatCastINTEL = 5841, | 
|  | OpArbitraryFloatCastFromIntINTEL = 5842, | 
|  | OpArbitraryFloatCastToIntINTEL = 5843, | 
|  | OpArbitraryFloatAddINTEL = 5846, | 
|  | OpArbitraryFloatSubINTEL = 5847, | 
|  | OpArbitraryFloatMulINTEL = 5848, | 
|  | OpArbitraryFloatDivINTEL = 5849, | 
|  | OpArbitraryFloatGTINTEL = 5850, | 
|  | OpArbitraryFloatGEINTEL = 5851, | 
|  | OpArbitraryFloatLTINTEL = 5852, | 
|  | OpArbitraryFloatLEINTEL = 5853, | 
|  | OpArbitraryFloatEQINTEL = 5854, | 
|  | OpArbitraryFloatRecipINTEL = 5855, | 
|  | OpArbitraryFloatRSqrtINTEL = 5856, | 
|  | OpArbitraryFloatCbrtINTEL = 5857, | 
|  | OpArbitraryFloatHypotINTEL = 5858, | 
|  | OpArbitraryFloatSqrtINTEL = 5859, | 
|  | OpArbitraryFloatLogINTEL = 5860, | 
|  | OpArbitraryFloatLog2INTEL = 5861, | 
|  | OpArbitraryFloatLog10INTEL = 5862, | 
|  | OpArbitraryFloatLog1pINTEL = 5863, | 
|  | OpArbitraryFloatExpINTEL = 5864, | 
|  | OpArbitraryFloatExp2INTEL = 5865, | 
|  | OpArbitraryFloatExp10INTEL = 5866, | 
|  | OpArbitraryFloatExpm1INTEL = 5867, | 
|  | OpArbitraryFloatSinINTEL = 5868, | 
|  | OpArbitraryFloatCosINTEL = 5869, | 
|  | OpArbitraryFloatSinCosINTEL = 5870, | 
|  | OpArbitraryFloatSinPiINTEL = 5871, | 
|  | OpArbitraryFloatCosPiINTEL = 5872, | 
|  | OpArbitraryFloatASinINTEL = 5873, | 
|  | OpArbitraryFloatASinPiINTEL = 5874, | 
|  | OpArbitraryFloatACosINTEL = 5875, | 
|  | OpArbitraryFloatACosPiINTEL = 5876, | 
|  | OpArbitraryFloatATanINTEL = 5877, | 
|  | OpArbitraryFloatATanPiINTEL = 5878, | 
|  | OpArbitraryFloatATan2INTEL = 5879, | 
|  | OpArbitraryFloatPowINTEL = 5880, | 
|  | OpArbitraryFloatPowRINTEL = 5881, | 
|  | OpArbitraryFloatPowNINTEL = 5882, | 
|  | OpLoopControlINTEL = 5887, | 
|  | OpAliasDomainDeclINTEL = 5911, | 
|  | OpAliasScopeDeclINTEL = 5912, | 
|  | OpAliasScopeListDeclINTEL = 5913, | 
|  | OpFixedSqrtINTEL = 5923, | 
|  | OpFixedRecipINTEL = 5924, | 
|  | OpFixedRsqrtINTEL = 5925, | 
|  | OpFixedSinINTEL = 5926, | 
|  | OpFixedCosINTEL = 5927, | 
|  | OpFixedSinCosINTEL = 5928, | 
|  | OpFixedSinPiINTEL = 5929, | 
|  | OpFixedCosPiINTEL = 5930, | 
|  | OpFixedSinCosPiINTEL = 5931, | 
|  | OpFixedLogINTEL = 5932, | 
|  | OpFixedExpINTEL = 5933, | 
|  | OpPtrCastToCrossWorkgroupINTEL = 5934, | 
|  | OpCrossWorkgroupCastToPtrINTEL = 5938, | 
|  | OpReadPipeBlockingINTEL = 5946, | 
|  | OpWritePipeBlockingINTEL = 5947, | 
|  | OpFPGARegINTEL = 5949, | 
|  | OpRayQueryGetRayTMinKHR = 6016, | 
|  | OpRayQueryGetRayFlagsKHR = 6017, | 
|  | OpRayQueryGetIntersectionTKHR = 6018, | 
|  | OpRayQueryGetIntersectionInstanceCustomIndexKHR = 6019, | 
|  | OpRayQueryGetIntersectionInstanceIdKHR = 6020, | 
|  | OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR = 6021, | 
|  | OpRayQueryGetIntersectionGeometryIndexKHR = 6022, | 
|  | OpRayQueryGetIntersectionPrimitiveIndexKHR = 6023, | 
|  | OpRayQueryGetIntersectionBarycentricsKHR = 6024, | 
|  | OpRayQueryGetIntersectionFrontFaceKHR = 6025, | 
|  | OpRayQueryGetIntersectionCandidateAABBOpaqueKHR = 6026, | 
|  | OpRayQueryGetIntersectionObjectRayDirectionKHR = 6027, | 
|  | OpRayQueryGetIntersectionObjectRayOriginKHR = 6028, | 
|  | OpRayQueryGetWorldRayDirectionKHR = 6029, | 
|  | OpRayQueryGetWorldRayOriginKHR = 6030, | 
|  | OpRayQueryGetIntersectionObjectToWorldKHR = 6031, | 
|  | OpRayQueryGetIntersectionWorldToObjectKHR = 6032, | 
|  | OpAtomicFAddEXT = 6035, | 
|  | OpTypeBufferSurfaceINTEL = 6086, | 
|  | OpTypeStructContinuedINTEL = 6090, | 
|  | OpConstantCompositeContinuedINTEL = 6091, | 
|  | OpSpecConstantCompositeContinuedINTEL = 6092, | 
|  | OpMax = 0x7fffffff, | 
|  | }; | 
|  |  | 
|  | #ifdef SPV_ENABLE_UTILITY_CODE | 
|  | inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) { | 
|  | *hasResult = *hasResultType = false; | 
|  | switch (opcode) { | 
|  | default: /* unknown opcode */ break; | 
|  | case OpNop: *hasResult = false; *hasResultType = false; break; | 
|  | case OpUndef: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSourceContinued: *hasResult = false; *hasResultType = false; break; | 
|  | case OpSource: *hasResult = false; *hasResultType = false; break; | 
|  | case OpSourceExtension: *hasResult = false; *hasResultType = false; break; | 
|  | case OpName: *hasResult = false; *hasResultType = false; break; | 
|  | case OpMemberName: *hasResult = false; *hasResultType = false; break; | 
|  | case OpString: *hasResult = true; *hasResultType = false; break; | 
|  | case OpLine: *hasResult = false; *hasResultType = false; break; | 
|  | case OpExtension: *hasResult = false; *hasResultType = false; break; | 
|  | case OpExtInstImport: *hasResult = true; *hasResultType = false; break; | 
|  | case OpExtInst: *hasResult = true; *hasResultType = true; break; | 
|  | case OpMemoryModel: *hasResult = false; *hasResultType = false; break; | 
|  | case OpEntryPoint: *hasResult = false; *hasResultType = false; break; | 
|  | case OpExecutionMode: *hasResult = false; *hasResultType = false; break; | 
|  | case OpCapability: *hasResult = false; *hasResultType = false; break; | 
|  | case OpTypeVoid: *hasResult = true; *hasResultType = false; break; | 
|  | case OpTypeBool: *hasResult = true; *hasResultType = false; break; | 
|  | case OpTypeInt: *hasResult = true; *hasResultType = false; break; | 
|  | case OpTypeFloat: *hasResult = true; *hasResultType = false; break; | 
|  | case OpTypeVector: *hasResult = true; *hasResultType = false; break; | 
|  | case OpTypeMatrix: *hasResult = true; *hasResultType = false; break; | 
|  | case OpTypeImage: *hasResult = true; *hasResultType = false; break; | 
|  | case OpTypeSampler: *hasResult = true; *hasResultType = false; break; | 
|  | case OpTypeSampledImage: *hasResult = true; *hasResultType = false; break; | 
|  | case OpTypeArray: *hasResult = true; *hasResultType = false; break; | 
|  | case OpTypeRuntimeArray: *hasResult = true; *hasResultType = false; break; | 
|  | case OpTypeStruct: *hasResult = true; *hasResultType = false; break; | 
|  | case OpTypeOpaque: *hasResult = true; *hasResultType = false; break; | 
|  | case OpTypePointer: *hasResult = true; *hasResultType = false; break; | 
|  | case OpTypeFunction: *hasResult = true; *hasResultType = false; break; | 
|  | case OpTypeEvent: *hasResult = true; *hasResultType = false; break; | 
|  | case OpTypeDeviceEvent: *hasResult = true; *hasResultType = false; break; | 
|  | case OpTypeReserveId: *hasResult = true; *hasResultType = false; break; | 
|  | case OpTypeQueue: *hasResult = true; *hasResultType = false; break; | 
|  | case OpTypePipe: *hasResult = true; *hasResultType = false; break; | 
|  | case OpTypeForwardPointer: *hasResult = false; *hasResultType = false; break; | 
|  | case OpConstantTrue: *hasResult = true; *hasResultType = true; break; | 
|  | case OpConstantFalse: *hasResult = true; *hasResultType = true; break; | 
|  | case OpConstant: *hasResult = true; *hasResultType = true; break; | 
|  | case OpConstantComposite: *hasResult = true; *hasResultType = true; break; | 
|  | case OpConstantSampler: *hasResult = true; *hasResultType = true; break; | 
|  | case OpConstantNull: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSpecConstantTrue: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSpecConstantFalse: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSpecConstant: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSpecConstantComposite: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSpecConstantOp: *hasResult = true; *hasResultType = true; break; | 
|  | case OpFunction: *hasResult = true; *hasResultType = true; break; | 
|  | case OpFunctionParameter: *hasResult = true; *hasResultType = true; break; | 
|  | case OpFunctionEnd: *hasResult = false; *hasResultType = false; break; | 
|  | case OpFunctionCall: *hasResult = true; *hasResultType = true; break; | 
|  | case OpVariable: *hasResult = true; *hasResultType = true; break; | 
|  | case OpImageTexelPointer: *hasResult = true; *hasResultType = true; break; | 
|  | case OpLoad: *hasResult = true; *hasResultType = true; break; | 
|  | case OpStore: *hasResult = false; *hasResultType = false; break; | 
|  | case OpCopyMemory: *hasResult = false; *hasResultType = false; break; | 
|  | case OpCopyMemorySized: *hasResult = false; *hasResultType = false; break; | 
|  | case OpAccessChain: *hasResult = true; *hasResultType = true; break; | 
|  | case OpInBoundsAccessChain: *hasResult = true; *hasResultType = true; break; | 
|  | case OpPtrAccessChain: *hasResult = true; *hasResultType = true; break; | 
|  | case OpArrayLength: *hasResult = true; *hasResultType = true; break; | 
|  | case OpGenericPtrMemSemantics: *hasResult = true; *hasResultType = true; break; | 
|  | case OpInBoundsPtrAccessChain: *hasResult = true; *hasResultType = true; break; | 
|  | case OpDecorate: *hasResult = false; *hasResultType = false; break; | 
|  | case OpMemberDecorate: *hasResult = false; *hasResultType = false; break; | 
|  | case OpDecorationGroup: *hasResult = true; *hasResultType = false; break; | 
|  | case OpGroupDecorate: *hasResult = false; *hasResultType = false; break; | 
|  | case OpGroupMemberDecorate: *hasResult = false; *hasResultType = false; break; | 
|  | case OpVectorExtractDynamic: *hasResult = true; *hasResultType = true; break; | 
|  | case OpVectorInsertDynamic: *hasResult = true; *hasResultType = true; break; | 
|  | case OpVectorShuffle: *hasResult = true; *hasResultType = true; break; | 
|  | case OpCompositeConstruct: *hasResult = true; *hasResultType = true; break; | 
|  | case OpCompositeExtract: *hasResult = true; *hasResultType = true; break; | 
|  | case OpCompositeInsert: *hasResult = true; *hasResultType = true; break; | 
|  | case OpCopyObject: *hasResult = true; *hasResultType = true; break; | 
|  | case OpTranspose: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSampledImage: *hasResult = true; *hasResultType = true; break; | 
|  | case OpImageSampleImplicitLod: *hasResult = true; *hasResultType = true; break; | 
|  | case OpImageSampleExplicitLod: *hasResult = true; *hasResultType = true; break; | 
|  | case OpImageSampleDrefImplicitLod: *hasResult = true; *hasResultType = true; break; | 
|  | case OpImageSampleDrefExplicitLod: *hasResult = true; *hasResultType = true; break; | 
|  | case OpImageSampleProjImplicitLod: *hasResult = true; *hasResultType = true; break; | 
|  | case OpImageSampleProjExplicitLod: *hasResult = true; *hasResultType = true; break; | 
|  | case OpImageSampleProjDrefImplicitLod: *hasResult = true; *hasResultType = true; break; | 
|  | case OpImageSampleProjDrefExplicitLod: *hasResult = true; *hasResultType = true; break; | 
|  | case OpImageFetch: *hasResult = true; *hasResultType = true; break; | 
|  | case OpImageGather: *hasResult = true; *hasResultType = true; break; | 
|  | case OpImageDrefGather: *hasResult = true; *hasResultType = true; break; | 
|  | case OpImageRead: *hasResult = true; *hasResultType = true; break; | 
|  | case OpImageWrite: *hasResult = false; *hasResultType = false; break; | 
|  | case OpImage: *hasResult = true; *hasResultType = true; break; | 
|  | case OpImageQueryFormat: *hasResult = true; *hasResultType = true; break; | 
|  | case OpImageQueryOrder: *hasResult = true; *hasResultType = true; break; | 
|  | case OpImageQuerySizeLod: *hasResult = true; *hasResultType = true; break; | 
|  | case OpImageQuerySize: *hasResult = true; *hasResultType = true; break; | 
|  | case OpImageQueryLod: *hasResult = true; *hasResultType = true; break; | 
|  | case OpImageQueryLevels: *hasResult = true; *hasResultType = true; break; | 
|  | case OpImageQuerySamples: *hasResult = true; *hasResultType = true; break; | 
|  | case OpConvertFToU: *hasResult = true; *hasResultType = true; break; | 
|  | case OpConvertFToS: *hasResult = true; *hasResultType = true; break; | 
|  | case OpConvertSToF: *hasResult = true; *hasResultType = true; break; | 
|  | case OpConvertUToF: *hasResult = true; *hasResultType = true; break; | 
|  | case OpUConvert: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSConvert: *hasResult = true; *hasResultType = true; break; | 
|  | case OpFConvert: *hasResult = true; *hasResultType = true; break; | 
|  | case OpQuantizeToF16: *hasResult = true; *hasResultType = true; break; | 
|  | case OpConvertPtrToU: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSatConvertSToU: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSatConvertUToS: *hasResult = true; *hasResultType = true; break; | 
|  | case OpConvertUToPtr: *hasResult = true; *hasResultType = true; break; | 
|  | case OpPtrCastToGeneric: *hasResult = true; *hasResultType = true; break; | 
|  | case OpGenericCastToPtr: *hasResult = true; *hasResultType = true; break; | 
|  | case OpGenericCastToPtrExplicit: *hasResult = true; *hasResultType = true; break; | 
|  | case OpBitcast: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSNegate: *hasResult = true; *hasResultType = true; break; | 
|  | case OpFNegate: *hasResult = true; *hasResultType = true; break; | 
|  | case OpIAdd: *hasResult = true; *hasResultType = true; break; | 
|  | case OpFAdd: *hasResult = true; *hasResultType = true; break; | 
|  | case OpISub: *hasResult = true; *hasResultType = true; break; | 
|  | case OpFSub: *hasResult = true; *hasResultType = true; break; | 
|  | case OpIMul: *hasResult = true; *hasResultType = true; break; | 
|  | case OpFMul: *hasResult = true; *hasResultType = true; break; | 
|  | case OpUDiv: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSDiv: *hasResult = true; *hasResultType = true; break; | 
|  | case OpFDiv: *hasResult = true; *hasResultType = true; break; | 
|  | case OpUMod: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSRem: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSMod: *hasResult = true; *hasResultType = true; break; | 
|  | case OpFRem: *hasResult = true; *hasResultType = true; break; | 
|  | case OpFMod: *hasResult = true; *hasResultType = true; break; | 
|  | case OpVectorTimesScalar: *hasResult = true; *hasResultType = true; break; | 
|  | case OpMatrixTimesScalar: *hasResult = true; *hasResultType = true; break; | 
|  | case OpVectorTimesMatrix: *hasResult = true; *hasResultType = true; break; | 
|  | case OpMatrixTimesVector: *hasResult = true; *hasResultType = true; break; | 
|  | case OpMatrixTimesMatrix: *hasResult = true; *hasResultType = true; break; | 
|  | case OpOuterProduct: *hasResult = true; *hasResultType = true; break; | 
|  | case OpDot: *hasResult = true; *hasResultType = true; break; | 
|  | case OpIAddCarry: *hasResult = true; *hasResultType = true; break; | 
|  | case OpISubBorrow: *hasResult = true; *hasResultType = true; break; | 
|  | case OpUMulExtended: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSMulExtended: *hasResult = true; *hasResultType = true; break; | 
|  | case OpAny: *hasResult = true; *hasResultType = true; break; | 
|  | case OpAll: *hasResult = true; *hasResultType = true; break; | 
|  | case OpIsNan: *hasResult = true; *hasResultType = true; break; | 
|  | case OpIsInf: *hasResult = true; *hasResultType = true; break; | 
|  | case OpIsFinite: *hasResult = true; *hasResultType = true; break; | 
|  | case OpIsNormal: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSignBitSet: *hasResult = true; *hasResultType = true; break; | 
|  | case OpLessOrGreater: *hasResult = true; *hasResultType = true; break; | 
|  | case OpOrdered: *hasResult = true; *hasResultType = true; break; | 
|  | case OpUnordered: *hasResult = true; *hasResultType = true; break; | 
|  | case OpLogicalEqual: *hasResult = true; *hasResultType = true; break; | 
|  | case OpLogicalNotEqual: *hasResult = true; *hasResultType = true; break; | 
|  | case OpLogicalOr: *hasResult = true; *hasResultType = true; break; | 
|  | case OpLogicalAnd: *hasResult = true; *hasResultType = true; break; | 
|  | case OpLogicalNot: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSelect: *hasResult = true; *hasResultType = true; break; | 
|  | case OpIEqual: *hasResult = true; *hasResultType = true; break; | 
|  | case OpINotEqual: *hasResult = true; *hasResultType = true; break; | 
|  | case OpUGreaterThan: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSGreaterThan: *hasResult = true; *hasResultType = true; break; | 
|  | case OpUGreaterThanEqual: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSGreaterThanEqual: *hasResult = true; *hasResultType = true; break; | 
|  | case OpULessThan: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSLessThan: *hasResult = true; *hasResultType = true; break; | 
|  | case OpULessThanEqual: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSLessThanEqual: *hasResult = true; *hasResultType = true; break; | 
|  | case OpFOrdEqual: *hasResult = true; *hasResultType = true; break; | 
|  | case OpFUnordEqual: *hasResult = true; *hasResultType = true; break; | 
|  | case OpFOrdNotEqual: *hasResult = true; *hasResultType = true; break; | 
|  | case OpFUnordNotEqual: *hasResult = true; *hasResultType = true; break; | 
|  | case OpFOrdLessThan: *hasResult = true; *hasResultType = true; break; | 
|  | case OpFUnordLessThan: *hasResult = true; *hasResultType = true; break; | 
|  | case OpFOrdGreaterThan: *hasResult = true; *hasResultType = true; break; | 
|  | case OpFUnordGreaterThan: *hasResult = true; *hasResultType = true; break; | 
|  | case OpFOrdLessThanEqual: *hasResult = true; *hasResultType = true; break; | 
|  | case OpFUnordLessThanEqual: *hasResult = true; *hasResultType = true; break; | 
|  | case OpFOrdGreaterThanEqual: *hasResult = true; *hasResultType = true; break; | 
|  | case OpFUnordGreaterThanEqual: *hasResult = true; *hasResultType = true; break; | 
|  | case OpShiftRightLogical: *hasResult = true; *hasResultType = true; break; | 
|  | case OpShiftRightArithmetic: *hasResult = true; *hasResultType = true; break; | 
|  | case OpShiftLeftLogical: *hasResult = true; *hasResultType = true; break; | 
|  | case OpBitwiseOr: *hasResult = true; *hasResultType = true; break; | 
|  | case OpBitwiseXor: *hasResult = true; *hasResultType = true; break; | 
|  | case OpBitwiseAnd: *hasResult = true; *hasResultType = true; break; | 
|  | case OpNot: *hasResult = true; *hasResultType = true; break; | 
|  | case OpBitFieldInsert: *hasResult = true; *hasResultType = true; break; | 
|  | case OpBitFieldSExtract: *hasResult = true; *hasResultType = true; break; | 
|  | case OpBitFieldUExtract: *hasResult = true; *hasResultType = true; break; | 
|  | case OpBitReverse: *hasResult = true; *hasResultType = true; break; | 
|  | case OpBitCount: *hasResult = true; *hasResultType = true; break; | 
|  | case OpDPdx: *hasResult = true; *hasResultType = true; break; | 
|  | case OpDPdy: *hasResult = true; *hasResultType = true; break; | 
|  | case OpFwidth: *hasResult = true; *hasResultType = true; break; | 
|  | case OpDPdxFine: *hasResult = true; *hasResultType = true; break; | 
|  | case OpDPdyFine: *hasResult = true; *hasResultType = true; break; | 
|  | case OpFwidthFine: *hasResult = true; *hasResultType = true; break; | 
|  | case OpDPdxCoarse: *hasResult = true; *hasResultType = true; break; | 
|  | case OpDPdyCoarse: *hasResult = true; *hasResultType = true; break; | 
|  | case OpFwidthCoarse: *hasResult = true; *hasResultType = true; break; | 
|  | case OpEmitVertex: *hasResult = false; *hasResultType = false; break; | 
|  | case OpEndPrimitive: *hasResult = false; *hasResultType = false; break; | 
|  | case OpEmitStreamVertex: *hasResult = false; *hasResultType = false; break; | 
|  | case OpEndStreamPrimitive: *hasResult = false; *hasResultType = false; break; | 
|  | case OpControlBarrier: *hasResult = false; *hasResultType = false; break; | 
|  | case OpMemoryBarrier: *hasResult = false; *hasResultType = false; break; | 
|  | case OpAtomicLoad: *hasResult = true; *hasResultType = true; break; | 
|  | case OpAtomicStore: *hasResult = false; *hasResultType = false; break; | 
|  | case OpAtomicExchange: *hasResult = true; *hasResultType = true; break; | 
|  | case OpAtomicCompareExchange: *hasResult = true; *hasResultType = true; break; | 
|  | case OpAtomicCompareExchangeWeak: *hasResult = true; *hasResultType = true; break; | 
|  | case OpAtomicIIncrement: *hasResult = true; *hasResultType = true; break; | 
|  | case OpAtomicIDecrement: *hasResult = true; *hasResultType = true; break; | 
|  | case OpAtomicIAdd: *hasResult = true; *hasResultType = true; break; | 
|  | case OpAtomicISub: *hasResult = true; *hasResultType = true; break; | 
|  | case OpAtomicSMin: *hasResult = true; *hasResultType = true; break; | 
|  | case OpAtomicUMin: *hasResult = true; *hasResultType = true; break; | 
|  | case OpAtomicSMax: *hasResult = true; *hasResultType = true; break; | 
|  | case OpAtomicUMax: *hasResult = true; *hasResultType = true; break; | 
|  | case OpAtomicAnd: *hasResult = true; *hasResultType = true; break; | 
|  | case OpAtomicOr: *hasResult = true; *hasResultType = true; break; | 
|  | case OpAtomicXor: *hasResult = true; *hasResultType = true; break; | 
|  | case OpPhi: *hasResult = true; *hasResultType = true; break; | 
|  | case OpLoopMerge: *hasResult = false; *hasResultType = false; break; | 
|  | case OpSelectionMerge: *hasResult = false; *hasResultType = false; break; | 
|  | case OpLabel: *hasResult = true; *hasResultType = false; break; | 
|  | case OpBranch: *hasResult = false; *hasResultType = false; break; | 
|  | case OpBranchConditional: *hasResult = false; *hasResultType = false; break; | 
|  | case OpSwitch: *hasResult = false; *hasResultType = false; break; | 
|  | case OpKill: *hasResult = false; *hasResultType = false; break; | 
|  | case OpReturn: *hasResult = false; *hasResultType = false; break; | 
|  | case OpReturnValue: *hasResult = false; *hasResultType = false; break; | 
|  | case OpUnreachable: *hasResult = false; *hasResultType = false; break; | 
|  | case OpLifetimeStart: *hasResult = false; *hasResultType = false; break; | 
|  | case OpLifetimeStop: *hasResult = false; *hasResultType = false; break; | 
|  | case OpGroupAsyncCopy: *hasResult = true; *hasResultType = true; break; | 
|  | case OpGroupWaitEvents: *hasResult = false; *hasResultType = false; break; | 
|  | case OpGroupAll: *hasResult = true; *hasResultType = true; break; | 
|  | case OpGroupAny: *hasResult = true; *hasResultType = true; break; | 
|  | case OpGroupBroadcast: *hasResult = true; *hasResultType = true; break; | 
|  | case OpGroupIAdd: *hasResult = true; *hasResultType = true; break; | 
|  | case OpGroupFAdd: *hasResult = true; *hasResultType = true; break; | 
|  | case OpGroupFMin: *hasResult = true; *hasResultType = true; break; | 
|  | case OpGroupUMin: *hasResult = true; *hasResultType = true; break; | 
|  | case OpGroupSMin: *hasResult = true; *hasResultType = true; break; | 
|  | case OpGroupFMax: *hasResult = true; *hasResultType = true; break; | 
|  | case OpGroupUMax: *hasResult = true; *hasResultType = true; break; | 
|  | case OpGroupSMax: *hasResult = true; *hasResultType = true; break; | 
|  | case OpReadPipe: *hasResult = true; *hasResultType = true; break; | 
|  | case OpWritePipe: *hasResult = true; *hasResultType = true; break; | 
|  | case OpReservedReadPipe: *hasResult = true; *hasResultType = true; break; | 
|  | case OpReservedWritePipe: *hasResult = true; *hasResultType = true; break; | 
|  | case OpReserveReadPipePackets: *hasResult = true; *hasResultType = true; break; | 
|  | case OpReserveWritePipePackets: *hasResult = true; *hasResultType = true; break; | 
|  | case OpCommitReadPipe: *hasResult = false; *hasResultType = false; break; | 
|  | case OpCommitWritePipe: *hasResult = false; *hasResultType = false; break; | 
|  | case OpIsValidReserveId: *hasResult = true; *hasResultType = true; break; | 
|  | case OpGetNumPipePackets: *hasResult = true; *hasResultType = true; break; | 
|  | case OpGetMaxPipePackets: *hasResult = true; *hasResultType = true; break; | 
|  | case OpGroupReserveReadPipePackets: *hasResult = true; *hasResultType = true; break; | 
|  | case OpGroupReserveWritePipePackets: *hasResult = true; *hasResultType = true; break; | 
|  | case OpGroupCommitReadPipe: *hasResult = false; *hasResultType = false; break; | 
|  | case OpGroupCommitWritePipe: *hasResult = false; *hasResultType = false; break; | 
|  | case OpEnqueueMarker: *hasResult = true; *hasResultType = true; break; | 
|  | case OpEnqueueKernel: *hasResult = true; *hasResultType = true; break; | 
|  | case OpGetKernelNDrangeSubGroupCount: *hasResult = true; *hasResultType = true; break; | 
|  | case OpGetKernelNDrangeMaxSubGroupSize: *hasResult = true; *hasResultType = true; break; | 
|  | case OpGetKernelWorkGroupSize: *hasResult = true; *hasResultType = true; break; | 
|  | case OpGetKernelPreferredWorkGroupSizeMultiple: *hasResult = true; *hasResultType = true; break; | 
|  | case OpRetainEvent: *hasResult = false; *hasResultType = false; break; | 
|  | case OpReleaseEvent: *hasResult = false; *hasResultType = false; break; | 
|  | case OpCreateUserEvent: *hasResult = true; *hasResultType = true; break; | 
|  | case OpIsValidEvent: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSetUserEventStatus: *hasResult = false; *hasResultType = false; break; | 
|  | case OpCaptureEventProfilingInfo: *hasResult = false; *hasResultType = false; break; | 
|  | case OpGetDefaultQueue: *hasResult = true; *hasResultType = true; break; | 
|  | case OpBuildNDRange: *hasResult = true; *hasResultType = true; break; | 
|  | case OpImageSparseSampleImplicitLod: *hasResult = true; *hasResultType = true; break; | 
|  | case OpImageSparseSampleExplicitLod: *hasResult = true; *hasResultType = true; break; | 
|  | case OpImageSparseSampleDrefImplicitLod: *hasResult = true; *hasResultType = true; break; | 
|  | case OpImageSparseSampleDrefExplicitLod: *hasResult = true; *hasResultType = true; break; | 
|  | case OpImageSparseSampleProjImplicitLod: *hasResult = true; *hasResultType = true; break; | 
|  | case OpImageSparseSampleProjExplicitLod: *hasResult = true; *hasResultType = true; break; | 
|  | case OpImageSparseSampleProjDrefImplicitLod: *hasResult = true; *hasResultType = true; break; | 
|  | case OpImageSparseSampleProjDrefExplicitLod: *hasResult = true; *hasResultType = true; break; | 
|  | case OpImageSparseFetch: *hasResult = true; *hasResultType = true; break; | 
|  | case OpImageSparseGather: *hasResult = true; *hasResultType = true; break; | 
|  | case OpImageSparseDrefGather: *hasResult = true; *hasResultType = true; break; | 
|  | case OpImageSparseTexelsResident: *hasResult = true; *hasResultType = true; break; | 
|  | case OpNoLine: *hasResult = false; *hasResultType = false; break; | 
|  | case OpAtomicFlagTestAndSet: *hasResult = true; *hasResultType = true; break; | 
|  | case OpAtomicFlagClear: *hasResult = false; *hasResultType = false; break; | 
|  | case OpImageSparseRead: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSizeOf: *hasResult = true; *hasResultType = true; break; | 
|  | case OpTypePipeStorage: *hasResult = true; *hasResultType = false; break; | 
|  | case OpConstantPipeStorage: *hasResult = true; *hasResultType = true; break; | 
|  | case OpCreatePipeFromPipeStorage: *hasResult = true; *hasResultType = true; break; | 
|  | case OpGetKernelLocalSizeForSubgroupCount: *hasResult = true; *hasResultType = true; break; | 
|  | case OpGetKernelMaxNumSubgroups: *hasResult = true; *hasResultType = true; break; | 
|  | case OpTypeNamedBarrier: *hasResult = true; *hasResultType = false; break; | 
|  | case OpNamedBarrierInitialize: *hasResult = true; *hasResultType = true; break; | 
|  | case OpMemoryNamedBarrier: *hasResult = false; *hasResultType = false; break; | 
|  | case OpModuleProcessed: *hasResult = false; *hasResultType = false; break; | 
|  | case OpExecutionModeId: *hasResult = false; *hasResultType = false; break; | 
|  | case OpDecorateId: *hasResult = false; *hasResultType = false; break; | 
|  | case OpGroupNonUniformElect: *hasResult = true; *hasResultType = true; break; | 
|  | case OpGroupNonUniformAll: *hasResult = true; *hasResultType = true; break; | 
|  | case OpGroupNonUniformAny: *hasResult = true; *hasResultType = true; break; | 
|  | case OpGroupNonUniformAllEqual: *hasResult = true; *hasResultType = true; break; | 
|  | case OpGroupNonUniformBroadcast: *hasResult = true; *hasResultType = true; break; | 
|  | case OpGroupNonUniformBroadcastFirst: *hasResult = true; *hasResultType = true; break; | 
|  | case OpGroupNonUniformBallot: *hasResult = true; *hasResultType = true; break; | 
|  | case OpGroupNonUniformInverseBallot: *hasResult = true; *hasResultType = true; break; | 
|  | case OpGroupNonUniformBallotBitExtract: *hasResult = true; *hasResultType = true; break; | 
|  | case OpGroupNonUniformBallotBitCount: *hasResult = true; *hasResultType = true; break; | 
|  | case OpGroupNonUniformBallotFindLSB: *hasResult = true; *hasResultType = true; break; | 
|  | case OpGroupNonUniformBallotFindMSB: *hasResult = true; *hasResultType = true; break; | 
|  | case OpGroupNonUniformShuffle: *hasResult = true; *hasResultType = true; break; | 
|  | case OpGroupNonUniformShuffleXor: *hasResult = true; *hasResultType = true; break; | 
|  | case OpGroupNonUniformShuffleUp: *hasResult = true; *hasResultType = true; break; | 
|  | case OpGroupNonUniformShuffleDown: *hasResult = true; *hasResultType = true; break; | 
|  | case OpGroupNonUniformIAdd: *hasResult = true; *hasResultType = true; break; | 
|  | case OpGroupNonUniformFAdd: *hasResult = true; *hasResultType = true; break; | 
|  | case OpGroupNonUniformIMul: *hasResult = true; *hasResultType = true; break; | 
|  | case OpGroupNonUniformFMul: *hasResult = true; *hasResultType = true; break; | 
|  | case OpGroupNonUniformSMin: *hasResult = true; *hasResultType = true; break; | 
|  | case OpGroupNonUniformUMin: *hasResult = true; *hasResultType = true; break; | 
|  | case OpGroupNonUniformFMin: *hasResult = true; *hasResultType = true; break; | 
|  | case OpGroupNonUniformSMax: *hasResult = true; *hasResultType = true; break; | 
|  | case OpGroupNonUniformUMax: *hasResult = true; *hasResultType = true; break; | 
|  | case OpGroupNonUniformFMax: *hasResult = true; *hasResultType = true; break; | 
|  | case OpGroupNonUniformBitwiseAnd: *hasResult = true; *hasResultType = true; break; | 
|  | case OpGroupNonUniformBitwiseOr: *hasResult = true; *hasResultType = true; break; | 
|  | case OpGroupNonUniformBitwiseXor: *hasResult = true; *hasResultType = true; break; | 
|  | case OpGroupNonUniformLogicalAnd: *hasResult = true; *hasResultType = true; break; | 
|  | case OpGroupNonUniformLogicalOr: *hasResult = true; *hasResultType = true; break; | 
|  | case OpGroupNonUniformLogicalXor: *hasResult = true; *hasResultType = true; break; | 
|  | case OpGroupNonUniformQuadBroadcast: *hasResult = true; *hasResultType = true; break; | 
|  | case OpGroupNonUniformQuadSwap: *hasResult = true; *hasResultType = true; break; | 
|  | case OpCopyLogical: *hasResult = true; *hasResultType = true; break; | 
|  | case OpPtrEqual: *hasResult = true; *hasResultType = true; break; | 
|  | case OpPtrNotEqual: *hasResult = true; *hasResultType = true; break; | 
|  | case OpPtrDiff: *hasResult = true; *hasResultType = true; break; | 
|  | case OpTerminateInvocation: *hasResult = false; *hasResultType = false; break; | 
|  | case OpSubgroupBallotKHR: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupFirstInvocationKHR: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAllKHR: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAnyKHR: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAllEqualKHR: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupReadInvocationKHR: *hasResult = true; *hasResultType = true; break; | 
|  | case OpTraceRayKHR: *hasResult = false; *hasResultType = false; break; | 
|  | case OpExecuteCallableKHR: *hasResult = false; *hasResultType = false; break; | 
|  | case OpConvertUToAccelerationStructureKHR: *hasResult = true; *hasResultType = true; break; | 
|  | case OpIgnoreIntersectionKHR: *hasResult = false; *hasResultType = false; break; | 
|  | case OpTerminateRayKHR: *hasResult = false; *hasResultType = false; break; | 
|  | case OpSDot: *hasResult = true; *hasResultType = true; break; | 
|  | case OpUDot: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSUDot: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSDotAccSat: *hasResult = true; *hasResultType = true; break; | 
|  | case OpUDotAccSat: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSUDotAccSat: *hasResult = true; *hasResultType = true; break; | 
|  | case OpTypeRayQueryKHR: *hasResult = true; *hasResultType = false; break; | 
|  | case OpRayQueryInitializeKHR: *hasResult = false; *hasResultType = false; break; | 
|  | case OpRayQueryTerminateKHR: *hasResult = false; *hasResultType = false; break; | 
|  | case OpRayQueryGenerateIntersectionKHR: *hasResult = false; *hasResultType = false; break; | 
|  | case OpRayQueryConfirmIntersectionKHR: *hasResult = false; *hasResultType = false; break; | 
|  | case OpRayQueryProceedKHR: *hasResult = true; *hasResultType = true; break; | 
|  | case OpRayQueryGetIntersectionTypeKHR: *hasResult = true; *hasResultType = true; break; | 
|  | case OpGroupIAddNonUniformAMD: *hasResult = true; *hasResultType = true; break; | 
|  | case OpGroupFAddNonUniformAMD: *hasResult = true; *hasResultType = true; break; | 
|  | case OpGroupFMinNonUniformAMD: *hasResult = true; *hasResultType = true; break; | 
|  | case OpGroupUMinNonUniformAMD: *hasResult = true; *hasResultType = true; break; | 
|  | case OpGroupSMinNonUniformAMD: *hasResult = true; *hasResultType = true; break; | 
|  | case OpGroupFMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break; | 
|  | case OpGroupUMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break; | 
|  | case OpGroupSMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break; | 
|  | case OpFragmentMaskFetchAMD: *hasResult = true; *hasResultType = true; break; | 
|  | case OpFragmentFetchAMD: *hasResult = true; *hasResultType = true; break; | 
|  | case OpReadClockKHR: *hasResult = true; *hasResultType = true; break; | 
|  | case OpImageSampleFootprintNV: *hasResult = true; *hasResultType = true; break; | 
|  | case OpGroupNonUniformPartitionNV: *hasResult = true; *hasResultType = true; break; | 
|  | case OpWritePackedPrimitiveIndices4x8NV: *hasResult = false; *hasResultType = false; break; | 
|  | case OpReportIntersectionNV: *hasResult = true; *hasResultType = true; break; | 
|  | case OpIgnoreIntersectionNV: *hasResult = false; *hasResultType = false; break; | 
|  | case OpTerminateRayNV: *hasResult = false; *hasResultType = false; break; | 
|  | case OpTraceNV: *hasResult = false; *hasResultType = false; break; | 
|  | case OpTraceMotionNV: *hasResult = false; *hasResultType = false; break; | 
|  | case OpTraceRayMotionNV: *hasResult = false; *hasResultType = false; break; | 
|  | case OpTypeAccelerationStructureNV: *hasResult = true; *hasResultType = false; break; | 
|  | case OpExecuteCallableNV: *hasResult = false; *hasResultType = false; break; | 
|  | case OpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break; | 
|  | case OpCooperativeMatrixLoadNV: *hasResult = true; *hasResultType = true; break; | 
|  | case OpCooperativeMatrixStoreNV: *hasResult = false; *hasResultType = false; break; | 
|  | case OpCooperativeMatrixMulAddNV: *hasResult = true; *hasResultType = true; break; | 
|  | case OpCooperativeMatrixLengthNV: *hasResult = true; *hasResultType = true; break; | 
|  | case OpBeginInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break; | 
|  | case OpEndInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break; | 
|  | case OpDemoteToHelperInvocation: *hasResult = false; *hasResultType = false; break; | 
|  | case OpIsHelperInvocationEXT: *hasResult = true; *hasResultType = true; break; | 
|  | case OpConvertUToImageNV: *hasResult = true; *hasResultType = true; break; | 
|  | case OpConvertUToSamplerNV: *hasResult = true; *hasResultType = true; break; | 
|  | case OpConvertImageToUNV: *hasResult = true; *hasResultType = true; break; | 
|  | case OpConvertSamplerToUNV: *hasResult = true; *hasResultType = true; break; | 
|  | case OpConvertUToSampledImageNV: *hasResult = true; *hasResultType = true; break; | 
|  | case OpConvertSampledImageToUNV: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSamplerImageAddressingModeNV: *hasResult = false; *hasResultType = false; break; | 
|  | case OpSubgroupShuffleINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupShuffleDownINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupShuffleUpINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupShuffleXorINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupBlockReadINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupBlockWriteINTEL: *hasResult = false; *hasResultType = false; break; | 
|  | case OpSubgroupImageBlockReadINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupImageBlockWriteINTEL: *hasResult = false; *hasResultType = false; break; | 
|  | case OpSubgroupImageMediaBlockReadINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupImageMediaBlockWriteINTEL: *hasResult = false; *hasResultType = false; break; | 
|  | case OpUCountLeadingZerosINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpUCountTrailingZerosINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpAbsISubINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpAbsUSubINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpIAddSatINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpUAddSatINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpIAverageINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpUAverageINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpIAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpUAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpISubSatINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpUSubSatINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpIMul32x16INTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpUMul32x16INTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpConstantFunctionPointerINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpFunctionPointerCallINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpAsmTargetINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpAsmINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpAsmCallINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpAtomicFMinEXT: *hasResult = true; *hasResultType = true; break; | 
|  | case OpAtomicFMaxEXT: *hasResult = true; *hasResultType = true; break; | 
|  | case OpAssumeTrueKHR: *hasResult = false; *hasResultType = false; break; | 
|  | case OpExpectKHR: *hasResult = true; *hasResultType = true; break; | 
|  | case OpDecorateString: *hasResult = false; *hasResultType = false; break; | 
|  | case OpMemberDecorateString: *hasResult = false; *hasResultType = false; break; | 
|  | case OpVmeImageINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpTypeVmeImageINTEL: *hasResult = true; *hasResultType = false; break; | 
|  | case OpTypeAvcImePayloadINTEL: *hasResult = true; *hasResultType = false; break; | 
|  | case OpTypeAvcRefPayloadINTEL: *hasResult = true; *hasResultType = false; break; | 
|  | case OpTypeAvcSicPayloadINTEL: *hasResult = true; *hasResultType = false; break; | 
|  | case OpTypeAvcMcePayloadINTEL: *hasResult = true; *hasResultType = false; break; | 
|  | case OpTypeAvcMceResultINTEL: *hasResult = true; *hasResultType = false; break; | 
|  | case OpTypeAvcImeResultINTEL: *hasResult = true; *hasResultType = false; break; | 
|  | case OpTypeAvcImeResultSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = false; break; | 
|  | case OpTypeAvcImeResultDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = false; break; | 
|  | case OpTypeAvcImeSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = false; break; | 
|  | case OpTypeAvcImeDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = false; break; | 
|  | case OpTypeAvcRefResultINTEL: *hasResult = true; *hasResultType = false; break; | 
|  | case OpTypeAvcSicResultINTEL: *hasResult = true; *hasResultType = false; break; | 
|  | case OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcMceSetInterShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcMceSetInterDirectionPenaltyINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcMceSetAcOnlyHaarINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcMceConvertToImePayloadINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcMceConvertToImeResultINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcMceConvertToRefPayloadINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcMceConvertToRefResultINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcMceConvertToSicPayloadINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcMceConvertToSicResultINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcMceGetMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcMceGetInterDistortionsINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcMceGetBestInterDistortionsINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcMceGetInterMajorShapeINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcMceGetInterMinorShapeINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcMceGetInterDirectionsINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcMceGetInterMotionVectorCountINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcMceGetInterReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcImeInitializeINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcImeSetSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcImeSetDualReferenceINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcImeRefWindowSizeINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcImeAdjustRefOffsetINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcImeConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcImeSetMaxMotionVectorCountINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcImeSetWeightedSadINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcImeEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcImeConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcImeGetSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcImeGetDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcImeStripDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcImeGetBorderReachedINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcFmeInitializeINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcBmeInitializeINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcRefConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcRefSetBidirectionalMixDisableINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcRefSetBilinearFilterEnableINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcRefEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcRefConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcSicInitializeINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcSicConfigureSkcINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcSicConfigureIpeLumaINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcSicConfigureIpeLumaChromaINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcSicGetMotionVectorMaskINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcSicConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcSicSetBilinearFilterEnableINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcSicEvaluateIpeINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcSicEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcSicConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcSicGetIpeLumaShapeINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcSicGetPackedIpeLumaModesINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcSicGetIpeChromaModeINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSubgroupAvcSicGetInterRawSadsINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpVariableLengthArrayINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpSaveMemoryINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpRestoreMemoryINTEL: *hasResult = false; *hasResultType = false; break; | 
|  | case OpArbitraryFloatSinCosPiINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpArbitraryFloatCastINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpArbitraryFloatCastFromIntINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpArbitraryFloatCastToIntINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpArbitraryFloatAddINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpArbitraryFloatSubINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpArbitraryFloatMulINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpArbitraryFloatDivINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpArbitraryFloatGTINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpArbitraryFloatGEINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpArbitraryFloatLTINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpArbitraryFloatLEINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpArbitraryFloatEQINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpArbitraryFloatRecipINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpArbitraryFloatRSqrtINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpArbitraryFloatCbrtINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpArbitraryFloatHypotINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpArbitraryFloatSqrtINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpArbitraryFloatLogINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpArbitraryFloatLog2INTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpArbitraryFloatLog10INTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpArbitraryFloatLog1pINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpArbitraryFloatExpINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpArbitraryFloatExp2INTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpArbitraryFloatExp10INTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpArbitraryFloatExpm1INTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpArbitraryFloatSinINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpArbitraryFloatCosINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpArbitraryFloatSinCosINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpArbitraryFloatSinPiINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpArbitraryFloatCosPiINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpArbitraryFloatASinINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpArbitraryFloatASinPiINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpArbitraryFloatACosINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpArbitraryFloatACosPiINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpArbitraryFloatATanINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpArbitraryFloatATanPiINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpArbitraryFloatATan2INTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpArbitraryFloatPowINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpArbitraryFloatPowRINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpArbitraryFloatPowNINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpLoopControlINTEL: *hasResult = false; *hasResultType = false; break; | 
|  | case OpAliasDomainDeclINTEL: *hasResult = true; *hasResultType = false; break; | 
|  | case OpAliasScopeDeclINTEL: *hasResult = true; *hasResultType = false; break; | 
|  | case OpAliasScopeListDeclINTEL: *hasResult = true; *hasResultType = false; break; | 
|  | case OpFixedSqrtINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpFixedRecipINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpFixedRsqrtINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpFixedSinINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpFixedCosINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpFixedSinCosINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpFixedSinPiINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpFixedCosPiINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpFixedSinCosPiINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpFixedLogINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpFixedExpINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpPtrCastToCrossWorkgroupINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpCrossWorkgroupCastToPtrINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpReadPipeBlockingINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpWritePipeBlockingINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpFPGARegINTEL: *hasResult = true; *hasResultType = true; break; | 
|  | case OpRayQueryGetRayTMinKHR: *hasResult = true; *hasResultType = true; break; | 
|  | case OpRayQueryGetRayFlagsKHR: *hasResult = true; *hasResultType = true; break; | 
|  | case OpRayQueryGetIntersectionTKHR: *hasResult = true; *hasResultType = true; break; | 
|  | case OpRayQueryGetIntersectionInstanceCustomIndexKHR: *hasResult = true; *hasResultType = true; break; | 
|  | case OpRayQueryGetIntersectionInstanceIdKHR: *hasResult = true; *hasResultType = true; break; | 
|  | case OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR: *hasResult = true; *hasResultType = true; break; | 
|  | case OpRayQueryGetIntersectionGeometryIndexKHR: *hasResult = true; *hasResultType = true; break; | 
|  | case OpRayQueryGetIntersectionPrimitiveIndexKHR: *hasResult = true; *hasResultType = true; break; | 
|  | case OpRayQueryGetIntersectionBarycentricsKHR: *hasResult = true; *hasResultType = true; break; | 
|  | case OpRayQueryGetIntersectionFrontFaceKHR: *hasResult = true; *hasResultType = true; break; | 
|  | case OpRayQueryGetIntersectionCandidateAABBOpaqueKHR: *hasResult = true; *hasResultType = true; break; | 
|  | case OpRayQueryGetIntersectionObjectRayDirectionKHR: *hasResult = true; *hasResultType = true; break; | 
|  | case OpRayQueryGetIntersectionObjectRayOriginKHR: *hasResult = true; *hasResultType = true; break; | 
|  | case OpRayQueryGetWorldRayDirectionKHR: *hasResult = true; *hasResultType = true; break; | 
|  | case OpRayQueryGetWorldRayOriginKHR: *hasResult = true; *hasResultType = true; break; | 
|  | case OpRayQueryGetIntersectionObjectToWorldKHR: *hasResult = true; *hasResultType = true; break; | 
|  | case OpRayQueryGetIntersectionWorldToObjectKHR: *hasResult = true; *hasResultType = true; break; | 
|  | case OpAtomicFAddEXT: *hasResult = true; *hasResultType = true; break; | 
|  | case OpTypeBufferSurfaceINTEL: *hasResult = true; *hasResultType = false; break; | 
|  | case OpTypeStructContinuedINTEL: *hasResult = false; *hasResultType = false; break; | 
|  | case OpConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break; | 
|  | case OpSpecConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break; | 
|  | } | 
|  | } | 
|  | #endif /* SPV_ENABLE_UTILITY_CODE */ | 
|  |  | 
|  | // 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)); } | 
|  | inline RayFlagsMask operator|(RayFlagsMask a, RayFlagsMask b) { return RayFlagsMask(unsigned(a) | unsigned(b)); } | 
|  | inline FragmentShadingRateMask operator|(FragmentShadingRateMask a, FragmentShadingRateMask b) { return FragmentShadingRateMask(unsigned(a) | unsigned(b)); } | 
|  |  | 
|  | }  // end namespace spv | 
|  |  | 
|  | #endif  // #ifndef spirv_HPP | 
|  |  |