Convert spirv.hpp line endings to LF (Unix style)
authorRémi Verschelde <rverschelde@gmail.com>
Tue, 11 Oct 2022 08:59:19 +0000 (10:59 +0200)
committerRémi Verschelde <rverschelde@gmail.com>
Tue, 11 Oct 2022 08:59:19 +0000 (10:59 +0200)
This was the only header using CRLF, the rest already uses LF.

SPIRV/spirv.hpp

index 0e40544..f85469d 100644 (file)
-// Copyright (c) 2014-2020 The Khronos Group Inc.\r
-//\r
-// Permission is hereby granted, free of charge, to any person obtaining a copy\r
-// of this software and/or associated documentation files (the "Materials"),\r
-// to deal in the Materials without restriction, including without limitation\r
-// the rights to use, copy, modify, merge, publish, distribute, sublicense,\r
-// and/or sell copies of the Materials, and to permit persons to whom the\r
-// Materials are furnished to do so, subject to the following conditions:\r
-//\r
-// The above copyright notice and this permission notice shall be included in\r
-// all copies or substantial portions of the Materials.\r
-//\r
-// MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS\r
-// STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND\r
-// HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/\r
-//\r
-// THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS\r
-// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL\r
-// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\r
-// FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS\r
-// IN THE MATERIALS.\r
-\r
-// This header is automatically generated by the same tool that creates\r
-// the Binary Section of the SPIR-V specification.\r
-\r
-// Enumeration tokens for SPIR-V, in various styles:\r
-//   C, C++, C++11, JSON, Lua, Python, C#, D\r
-//\r
-// - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL\r
-// - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL\r
-// - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL\r
-// - Lua will use tables, e.g.: spv.SourceLanguage.GLSL\r
-// - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL']\r
-// - C# will use enum classes in the Specification class located in the "Spv" namespace,\r
-//     e.g.: Spv.Specification.SourceLanguage.GLSL\r
-// - D will have tokens under the "spv" module, e.g: spv.SourceLanguage.GLSL\r
-//\r
-// Some tokens act like mask values, which can be OR'd together,\r
-// while others are mutually exclusive.  The mask-like ones have\r
-// "Mask" in their name, and a parallel enum that has the shift\r
-// amount (1 << x) for each corresponding enumerant.\r
-\r
-#ifndef spirv_HPP\r
-#define spirv_HPP\r
-\r
-namespace spv {\r
-\r
-typedef unsigned int Id;\r
-\r
-#define SPV_VERSION 0x10600\r
-#define SPV_REVISION 1\r
-\r
-static const unsigned int MagicNumber = 0x07230203;\r
-static const unsigned int Version = 0x00010600;\r
-static const unsigned int Revision = 1;\r
-static const unsigned int OpCodeMask = 0xffff;\r
-static const unsigned int WordCountShift = 16;\r
-\r
-enum SourceLanguage {\r
-    SourceLanguageUnknown = 0,\r
-    SourceLanguageESSL = 1,\r
-    SourceLanguageGLSL = 2,\r
-    SourceLanguageOpenCL_C = 3,\r
-    SourceLanguageOpenCL_CPP = 4,\r
-    SourceLanguageHLSL = 5,\r
-    SourceLanguageCPP_for_OpenCL = 6,\r
-    SourceLanguageMax = 0x7fffffff,\r
-};\r
-\r
-enum ExecutionModel {\r
-    ExecutionModelVertex = 0,\r
-    ExecutionModelTessellationControl = 1,\r
-    ExecutionModelTessellationEvaluation = 2,\r
-    ExecutionModelGeometry = 3,\r
-    ExecutionModelFragment = 4,\r
-    ExecutionModelGLCompute = 5,\r
-    ExecutionModelKernel = 6,\r
-    ExecutionModelTaskNV = 5267,\r
-    ExecutionModelMeshNV = 5268,\r
-    ExecutionModelRayGenerationKHR = 5313,\r
-    ExecutionModelRayGenerationNV = 5313,\r
-    ExecutionModelIntersectionKHR = 5314,\r
-    ExecutionModelIntersectionNV = 5314,\r
-    ExecutionModelAnyHitKHR = 5315,\r
-    ExecutionModelAnyHitNV = 5315,\r
-    ExecutionModelClosestHitKHR = 5316,\r
-    ExecutionModelClosestHitNV = 5316,\r
-    ExecutionModelMissKHR = 5317,\r
-    ExecutionModelMissNV = 5317,\r
-    ExecutionModelCallableKHR = 5318,\r
-    ExecutionModelCallableNV = 5318,\r
-    ExecutionModelTaskEXT = 5364,\r
-    ExecutionModelMeshEXT = 5365,\r
-    ExecutionModelMax = 0x7fffffff,\r
-};\r
-\r
-enum AddressingModel {\r
-    AddressingModelLogical = 0,\r
-    AddressingModelPhysical32 = 1,\r
-    AddressingModelPhysical64 = 2,\r
-    AddressingModelPhysicalStorageBuffer64 = 5348,\r
-    AddressingModelPhysicalStorageBuffer64EXT = 5348,\r
-    AddressingModelMax = 0x7fffffff,\r
-};\r
-\r
-enum MemoryModel {\r
-    MemoryModelSimple = 0,\r
-    MemoryModelGLSL450 = 1,\r
-    MemoryModelOpenCL = 2,\r
-    MemoryModelVulkan = 3,\r
-    MemoryModelVulkanKHR = 3,\r
-    MemoryModelMax = 0x7fffffff,\r
-};\r
-\r
-enum ExecutionMode {\r
-    ExecutionModeInvocations = 0,\r
-    ExecutionModeSpacingEqual = 1,\r
-    ExecutionModeSpacingFractionalEven = 2,\r
-    ExecutionModeSpacingFractionalOdd = 3,\r
-    ExecutionModeVertexOrderCw = 4,\r
-    ExecutionModeVertexOrderCcw = 5,\r
-    ExecutionModePixelCenterInteger = 6,\r
-    ExecutionModeOriginUpperLeft = 7,\r
-    ExecutionModeOriginLowerLeft = 8,\r
-    ExecutionModeEarlyFragmentTests = 9,\r
-    ExecutionModePointMode = 10,\r
-    ExecutionModeXfb = 11,\r
-    ExecutionModeDepthReplacing = 12,\r
-    ExecutionModeDepthGreater = 14,\r
-    ExecutionModeDepthLess = 15,\r
-    ExecutionModeDepthUnchanged = 16,\r
-    ExecutionModeLocalSize = 17,\r
-    ExecutionModeLocalSizeHint = 18,\r
-    ExecutionModeInputPoints = 19,\r
-    ExecutionModeInputLines = 20,\r
-    ExecutionModeInputLinesAdjacency = 21,\r
-    ExecutionModeTriangles = 22,\r
-    ExecutionModeInputTrianglesAdjacency = 23,\r
-    ExecutionModeQuads = 24,\r
-    ExecutionModeIsolines = 25,\r
-    ExecutionModeOutputVertices = 26,\r
-    ExecutionModeOutputPoints = 27,\r
-    ExecutionModeOutputLineStrip = 28,\r
-    ExecutionModeOutputTriangleStrip = 29,\r
-    ExecutionModeVecTypeHint = 30,\r
-    ExecutionModeContractionOff = 31,\r
-    ExecutionModeInitializer = 33,\r
-    ExecutionModeFinalizer = 34,\r
-    ExecutionModeSubgroupSize = 35,\r
-    ExecutionModeSubgroupsPerWorkgroup = 36,\r
-    ExecutionModeSubgroupsPerWorkgroupId = 37,\r
-    ExecutionModeLocalSizeId = 38,\r
-    ExecutionModeLocalSizeHintId = 39,\r
-    ExecutionModeSubgroupUniformControlFlowKHR = 4421,\r
-    ExecutionModePostDepthCoverage = 4446,\r
-    ExecutionModeDenormPreserve = 4459,\r
-    ExecutionModeDenormFlushToZero = 4460,\r
-    ExecutionModeSignedZeroInfNanPreserve = 4461,\r
-    ExecutionModeRoundingModeRTE = 4462,\r
-    ExecutionModeRoundingModeRTZ = 4463,\r
-    ExecutionModeEarlyAndLateFragmentTestsAMD = 5017,\r
-    ExecutionModeStencilRefReplacingEXT = 5027,\r
-    ExecutionModeStencilRefUnchangedFrontAMD = 5079,\r
-    ExecutionModeStencilRefGreaterFrontAMD = 5080,\r
-    ExecutionModeStencilRefLessFrontAMD = 5081,\r
-    ExecutionModeStencilRefUnchangedBackAMD = 5082,\r
-    ExecutionModeStencilRefGreaterBackAMD = 5083,\r
-    ExecutionModeStencilRefLessBackAMD = 5084,\r
-    ExecutionModeOutputLinesEXT = 5269,\r
-    ExecutionModeOutputLinesNV = 5269,\r
-    ExecutionModeOutputPrimitivesEXT = 5270,\r
-    ExecutionModeOutputPrimitivesNV = 5270,\r
-    ExecutionModeDerivativeGroupQuadsNV = 5289,\r
-    ExecutionModeDerivativeGroupLinearNV = 5290,\r
-    ExecutionModeOutputTrianglesEXT = 5298,\r
-    ExecutionModeOutputTrianglesNV = 5298,\r
-    ExecutionModePixelInterlockOrderedEXT = 5366,\r
-    ExecutionModePixelInterlockUnorderedEXT = 5367,\r
-    ExecutionModeSampleInterlockOrderedEXT = 5368,\r
-    ExecutionModeSampleInterlockUnorderedEXT = 5369,\r
-    ExecutionModeShadingRateInterlockOrderedEXT = 5370,\r
-    ExecutionModeShadingRateInterlockUnorderedEXT = 5371,\r
-    ExecutionModeSharedLocalMemorySizeINTEL = 5618,\r
-    ExecutionModeRoundingModeRTPINTEL = 5620,\r
-    ExecutionModeRoundingModeRTNINTEL = 5621,\r
-    ExecutionModeFloatingPointModeALTINTEL = 5622,\r
-    ExecutionModeFloatingPointModeIEEEINTEL = 5623,\r
-    ExecutionModeMaxWorkgroupSizeINTEL = 5893,\r
-    ExecutionModeMaxWorkDimINTEL = 5894,\r
-    ExecutionModeNoGlobalOffsetINTEL = 5895,\r
-    ExecutionModeNumSIMDWorkitemsINTEL = 5896,\r
-    ExecutionModeSchedulerTargetFmaxMhzINTEL = 5903,\r
-    ExecutionModeMax = 0x7fffffff,\r
-};\r
-\r
-enum StorageClass {\r
-    StorageClassUniformConstant = 0,\r
-    StorageClassInput = 1,\r
-    StorageClassUniform = 2,\r
-    StorageClassOutput = 3,\r
-    StorageClassWorkgroup = 4,\r
-    StorageClassCrossWorkgroup = 5,\r
-    StorageClassPrivate = 6,\r
-    StorageClassFunction = 7,\r
-    StorageClassGeneric = 8,\r
-    StorageClassPushConstant = 9,\r
-    StorageClassAtomicCounter = 10,\r
-    StorageClassImage = 11,\r
-    StorageClassStorageBuffer = 12,\r
-    StorageClassCallableDataKHR = 5328,\r
-    StorageClassCallableDataNV = 5328,\r
-    StorageClassIncomingCallableDataKHR = 5329,\r
-    StorageClassIncomingCallableDataNV = 5329,\r
-    StorageClassRayPayloadKHR = 5338,\r
-    StorageClassRayPayloadNV = 5338,\r
-    StorageClassHitAttributeKHR = 5339,\r
-    StorageClassHitAttributeNV = 5339,\r
-    StorageClassIncomingRayPayloadKHR = 5342,\r
-    StorageClassIncomingRayPayloadNV = 5342,\r
-    StorageClassShaderRecordBufferKHR = 5343,\r
-    StorageClassShaderRecordBufferNV = 5343,\r
-    StorageClassPhysicalStorageBuffer = 5349,\r
-    StorageClassPhysicalStorageBufferEXT = 5349,\r
-    StorageClassTaskPayloadWorkgroupEXT = 5402,\r
-    StorageClassCodeSectionINTEL = 5605,\r
-    StorageClassDeviceOnlyINTEL = 5936,\r
-    StorageClassHostOnlyINTEL = 5937,\r
-    StorageClassMax = 0x7fffffff,\r
-};\r
-\r
-enum Dim {\r
-    Dim1D = 0,\r
-    Dim2D = 1,\r
-    Dim3D = 2,\r
-    DimCube = 3,\r
-    DimRect = 4,\r
-    DimBuffer = 5,\r
-    DimSubpassData = 6,\r
-    DimMax = 0x7fffffff,\r
-};\r
-\r
-enum SamplerAddressingMode {\r
-    SamplerAddressingModeNone = 0,\r
-    SamplerAddressingModeClampToEdge = 1,\r
-    SamplerAddressingModeClamp = 2,\r
-    SamplerAddressingModeRepeat = 3,\r
-    SamplerAddressingModeRepeatMirrored = 4,\r
-    SamplerAddressingModeMax = 0x7fffffff,\r
-};\r
-\r
-enum SamplerFilterMode {\r
-    SamplerFilterModeNearest = 0,\r
-    SamplerFilterModeLinear = 1,\r
-    SamplerFilterModeMax = 0x7fffffff,\r
-};\r
-\r
-enum ImageFormat {\r
-    ImageFormatUnknown = 0,\r
-    ImageFormatRgba32f = 1,\r
-    ImageFormatRgba16f = 2,\r
-    ImageFormatR32f = 3,\r
-    ImageFormatRgba8 = 4,\r
-    ImageFormatRgba8Snorm = 5,\r
-    ImageFormatRg32f = 6,\r
-    ImageFormatRg16f = 7,\r
-    ImageFormatR11fG11fB10f = 8,\r
-    ImageFormatR16f = 9,\r
-    ImageFormatRgba16 = 10,\r
-    ImageFormatRgb10A2 = 11,\r
-    ImageFormatRg16 = 12,\r
-    ImageFormatRg8 = 13,\r
-    ImageFormatR16 = 14,\r
-    ImageFormatR8 = 15,\r
-    ImageFormatRgba16Snorm = 16,\r
-    ImageFormatRg16Snorm = 17,\r
-    ImageFormatRg8Snorm = 18,\r
-    ImageFormatR16Snorm = 19,\r
-    ImageFormatR8Snorm = 20,\r
-    ImageFormatRgba32i = 21,\r
-    ImageFormatRgba16i = 22,\r
-    ImageFormatRgba8i = 23,\r
-    ImageFormatR32i = 24,\r
-    ImageFormatRg32i = 25,\r
-    ImageFormatRg16i = 26,\r
-    ImageFormatRg8i = 27,\r
-    ImageFormatR16i = 28,\r
-    ImageFormatR8i = 29,\r
-    ImageFormatRgba32ui = 30,\r
-    ImageFormatRgba16ui = 31,\r
-    ImageFormatRgba8ui = 32,\r
-    ImageFormatR32ui = 33,\r
-    ImageFormatRgb10a2ui = 34,\r
-    ImageFormatRg32ui = 35,\r
-    ImageFormatRg16ui = 36,\r
-    ImageFormatRg8ui = 37,\r
-    ImageFormatR16ui = 38,\r
-    ImageFormatR8ui = 39,\r
-    ImageFormatR64ui = 40,\r
-    ImageFormatR64i = 41,\r
-    ImageFormatMax = 0x7fffffff,\r
-};\r
-\r
-enum ImageChannelOrder {\r
-    ImageChannelOrderR = 0,\r
-    ImageChannelOrderA = 1,\r
-    ImageChannelOrderRG = 2,\r
-    ImageChannelOrderRA = 3,\r
-    ImageChannelOrderRGB = 4,\r
-    ImageChannelOrderRGBA = 5,\r
-    ImageChannelOrderBGRA = 6,\r
-    ImageChannelOrderARGB = 7,\r
-    ImageChannelOrderIntensity = 8,\r
-    ImageChannelOrderLuminance = 9,\r
-    ImageChannelOrderRx = 10,\r
-    ImageChannelOrderRGx = 11,\r
-    ImageChannelOrderRGBx = 12,\r
-    ImageChannelOrderDepth = 13,\r
-    ImageChannelOrderDepthStencil = 14,\r
-    ImageChannelOrdersRGB = 15,\r
-    ImageChannelOrdersRGBx = 16,\r
-    ImageChannelOrdersRGBA = 17,\r
-    ImageChannelOrdersBGRA = 18,\r
-    ImageChannelOrderABGR = 19,\r
-    ImageChannelOrderMax = 0x7fffffff,\r
-};\r
-\r
-enum ImageChannelDataType {\r
-    ImageChannelDataTypeSnormInt8 = 0,\r
-    ImageChannelDataTypeSnormInt16 = 1,\r
-    ImageChannelDataTypeUnormInt8 = 2,\r
-    ImageChannelDataTypeUnormInt16 = 3,\r
-    ImageChannelDataTypeUnormShort565 = 4,\r
-    ImageChannelDataTypeUnormShort555 = 5,\r
-    ImageChannelDataTypeUnormInt101010 = 6,\r
-    ImageChannelDataTypeSignedInt8 = 7,\r
-    ImageChannelDataTypeSignedInt16 = 8,\r
-    ImageChannelDataTypeSignedInt32 = 9,\r
-    ImageChannelDataTypeUnsignedInt8 = 10,\r
-    ImageChannelDataTypeUnsignedInt16 = 11,\r
-    ImageChannelDataTypeUnsignedInt32 = 12,\r
-    ImageChannelDataTypeHalfFloat = 13,\r
-    ImageChannelDataTypeFloat = 14,\r
-    ImageChannelDataTypeUnormInt24 = 15,\r
-    ImageChannelDataTypeUnormInt101010_2 = 16,\r
-    ImageChannelDataTypeMax = 0x7fffffff,\r
-};\r
-\r
-enum ImageOperandsShift {\r
-    ImageOperandsBiasShift = 0,\r
-    ImageOperandsLodShift = 1,\r
-    ImageOperandsGradShift = 2,\r
-    ImageOperandsConstOffsetShift = 3,\r
-    ImageOperandsOffsetShift = 4,\r
-    ImageOperandsConstOffsetsShift = 5,\r
-    ImageOperandsSampleShift = 6,\r
-    ImageOperandsMinLodShift = 7,\r
-    ImageOperandsMakeTexelAvailableShift = 8,\r
-    ImageOperandsMakeTexelAvailableKHRShift = 8,\r
-    ImageOperandsMakeTexelVisibleShift = 9,\r
-    ImageOperandsMakeTexelVisibleKHRShift = 9,\r
-    ImageOperandsNonPrivateTexelShift = 10,\r
-    ImageOperandsNonPrivateTexelKHRShift = 10,\r
-    ImageOperandsVolatileTexelShift = 11,\r
-    ImageOperandsVolatileTexelKHRShift = 11,\r
-    ImageOperandsSignExtendShift = 12,\r
-    ImageOperandsZeroExtendShift = 13,\r
-    ImageOperandsNontemporalShift = 14,\r
-    ImageOperandsOffsetsShift = 16,\r
-    ImageOperandsMax = 0x7fffffff,\r
-};\r
-\r
-enum ImageOperandsMask {\r
-    ImageOperandsMaskNone = 0,\r
-    ImageOperandsBiasMask = 0x00000001,\r
-    ImageOperandsLodMask = 0x00000002,\r
-    ImageOperandsGradMask = 0x00000004,\r
-    ImageOperandsConstOffsetMask = 0x00000008,\r
-    ImageOperandsOffsetMask = 0x00000010,\r
-    ImageOperandsConstOffsetsMask = 0x00000020,\r
-    ImageOperandsSampleMask = 0x00000040,\r
-    ImageOperandsMinLodMask = 0x00000080,\r
-    ImageOperandsMakeTexelAvailableMask = 0x00000100,\r
-    ImageOperandsMakeTexelAvailableKHRMask = 0x00000100,\r
-    ImageOperandsMakeTexelVisibleMask = 0x00000200,\r
-    ImageOperandsMakeTexelVisibleKHRMask = 0x00000200,\r
-    ImageOperandsNonPrivateTexelMask = 0x00000400,\r
-    ImageOperandsNonPrivateTexelKHRMask = 0x00000400,\r
-    ImageOperandsVolatileTexelMask = 0x00000800,\r
-    ImageOperandsVolatileTexelKHRMask = 0x00000800,\r
-    ImageOperandsSignExtendMask = 0x00001000,\r
-    ImageOperandsZeroExtendMask = 0x00002000,\r
-    ImageOperandsNontemporalMask = 0x00004000,\r
-    ImageOperandsOffsetsMask = 0x00010000,\r
-};\r
-\r
-enum FPFastMathModeShift {\r
-    FPFastMathModeNotNaNShift = 0,\r
-    FPFastMathModeNotInfShift = 1,\r
-    FPFastMathModeNSZShift = 2,\r
-    FPFastMathModeAllowRecipShift = 3,\r
-    FPFastMathModeFastShift = 4,\r
-    FPFastMathModeAllowContractFastINTELShift = 16,\r
-    FPFastMathModeAllowReassocINTELShift = 17,\r
-    FPFastMathModeMax = 0x7fffffff,\r
-};\r
-\r
-enum FPFastMathModeMask {\r
-    FPFastMathModeMaskNone = 0,\r
-    FPFastMathModeNotNaNMask = 0x00000001,\r
-    FPFastMathModeNotInfMask = 0x00000002,\r
-    FPFastMathModeNSZMask = 0x00000004,\r
-    FPFastMathModeAllowRecipMask = 0x00000008,\r
-    FPFastMathModeFastMask = 0x00000010,\r
-    FPFastMathModeAllowContractFastINTELMask = 0x00010000,\r
-    FPFastMathModeAllowReassocINTELMask = 0x00020000,\r
-};\r
-\r
-enum FPRoundingMode {\r
-    FPRoundingModeRTE = 0,\r
-    FPRoundingModeRTZ = 1,\r
-    FPRoundingModeRTP = 2,\r
-    FPRoundingModeRTN = 3,\r
-    FPRoundingModeMax = 0x7fffffff,\r
-};\r
-\r
-enum LinkageType {\r
-    LinkageTypeExport = 0,\r
-    LinkageTypeImport = 1,\r
-    LinkageTypeLinkOnceODR = 2,\r
-    LinkageTypeMax = 0x7fffffff,\r
-};\r
-\r
-enum AccessQualifier {\r
-    AccessQualifierReadOnly = 0,\r
-    AccessQualifierWriteOnly = 1,\r
-    AccessQualifierReadWrite = 2,\r
-    AccessQualifierMax = 0x7fffffff,\r
-};\r
-\r
-enum FunctionParameterAttribute {\r
-    FunctionParameterAttributeZext = 0,\r
-    FunctionParameterAttributeSext = 1,\r
-    FunctionParameterAttributeByVal = 2,\r
-    FunctionParameterAttributeSret = 3,\r
-    FunctionParameterAttributeNoAlias = 4,\r
-    FunctionParameterAttributeNoCapture = 5,\r
-    FunctionParameterAttributeNoWrite = 6,\r
-    FunctionParameterAttributeNoReadWrite = 7,\r
-    FunctionParameterAttributeMax = 0x7fffffff,\r
-};\r
-\r
-enum Decoration {\r
-    DecorationRelaxedPrecision = 0,\r
-    DecorationSpecId = 1,\r
-    DecorationBlock = 2,\r
-    DecorationBufferBlock = 3,\r
-    DecorationRowMajor = 4,\r
-    DecorationColMajor = 5,\r
-    DecorationArrayStride = 6,\r
-    DecorationMatrixStride = 7,\r
-    DecorationGLSLShared = 8,\r
-    DecorationGLSLPacked = 9,\r
-    DecorationCPacked = 10,\r
-    DecorationBuiltIn = 11,\r
-    DecorationNoPerspective = 13,\r
-    DecorationFlat = 14,\r
-    DecorationPatch = 15,\r
-    DecorationCentroid = 16,\r
-    DecorationSample = 17,\r
-    DecorationInvariant = 18,\r
-    DecorationRestrict = 19,\r
-    DecorationAliased = 20,\r
-    DecorationVolatile = 21,\r
-    DecorationConstant = 22,\r
-    DecorationCoherent = 23,\r
-    DecorationNonWritable = 24,\r
-    DecorationNonReadable = 25,\r
-    DecorationUniform = 26,\r
-    DecorationUniformId = 27,\r
-    DecorationSaturatedConversion = 28,\r
-    DecorationStream = 29,\r
-    DecorationLocation = 30,\r
-    DecorationComponent = 31,\r
-    DecorationIndex = 32,\r
-    DecorationBinding = 33,\r
-    DecorationDescriptorSet = 34,\r
-    DecorationOffset = 35,\r
-    DecorationXfbBuffer = 36,\r
-    DecorationXfbStride = 37,\r
-    DecorationFuncParamAttr = 38,\r
-    DecorationFPRoundingMode = 39,\r
-    DecorationFPFastMathMode = 40,\r
-    DecorationLinkageAttributes = 41,\r
-    DecorationNoContraction = 42,\r
-    DecorationInputAttachmentIndex = 43,\r
-    DecorationAlignment = 44,\r
-    DecorationMaxByteOffset = 45,\r
-    DecorationAlignmentId = 46,\r
-    DecorationMaxByteOffsetId = 47,\r
-    DecorationNoSignedWrap = 4469,\r
-    DecorationNoUnsignedWrap = 4470,\r
-    DecorationExplicitInterpAMD = 4999,\r
-    DecorationOverrideCoverageNV = 5248,\r
-    DecorationPassthroughNV = 5250,\r
-    DecorationViewportRelativeNV = 5252,\r
-    DecorationSecondaryViewportRelativeNV = 5256,\r
-    DecorationPerPrimitiveEXT = 5271,\r
-    DecorationPerPrimitiveNV = 5271,\r
-    DecorationPerViewNV = 5272,\r
-    DecorationPerTaskNV = 5273,\r
-    DecorationPerVertexKHR = 5285,\r
-    DecorationPerVertexNV = 5285,\r
-    DecorationNonUniform = 5300,\r
-    DecorationNonUniformEXT = 5300,\r
-    DecorationRestrictPointer = 5355,\r
-    DecorationRestrictPointerEXT = 5355,\r
-    DecorationAliasedPointer = 5356,\r
-    DecorationAliasedPointerEXT = 5356,\r
-    DecorationBindlessSamplerNV = 5398,\r
-    DecorationBindlessImageNV = 5399,\r
-    DecorationBoundSamplerNV = 5400,\r
-    DecorationBoundImageNV = 5401,\r
-    DecorationSIMTCallINTEL = 5599,\r
-    DecorationReferencedIndirectlyINTEL = 5602,\r
-    DecorationClobberINTEL = 5607,\r
-    DecorationSideEffectsINTEL = 5608,\r
-    DecorationVectorComputeVariableINTEL = 5624,\r
-    DecorationFuncParamIOKindINTEL = 5625,\r
-    DecorationVectorComputeFunctionINTEL = 5626,\r
-    DecorationStackCallINTEL = 5627,\r
-    DecorationGlobalVariableOffsetINTEL = 5628,\r
-    DecorationCounterBuffer = 5634,\r
-    DecorationHlslCounterBufferGOOGLE = 5634,\r
-    DecorationHlslSemanticGOOGLE = 5635,\r
-    DecorationUserSemantic = 5635,\r
-    DecorationUserTypeGOOGLE = 5636,\r
-    DecorationFunctionRoundingModeINTEL = 5822,\r
-    DecorationFunctionDenormModeINTEL = 5823,\r
-    DecorationRegisterINTEL = 5825,\r
-    DecorationMemoryINTEL = 5826,\r
-    DecorationNumbanksINTEL = 5827,\r
-    DecorationBankwidthINTEL = 5828,\r
-    DecorationMaxPrivateCopiesINTEL = 5829,\r
-    DecorationSinglepumpINTEL = 5830,\r
-    DecorationDoublepumpINTEL = 5831,\r
-    DecorationMaxReplicatesINTEL = 5832,\r
-    DecorationSimpleDualPortINTEL = 5833,\r
-    DecorationMergeINTEL = 5834,\r
-    DecorationBankBitsINTEL = 5835,\r
-    DecorationForcePow2DepthINTEL = 5836,\r
-    DecorationBurstCoalesceINTEL = 5899,\r
-    DecorationCacheSizeINTEL = 5900,\r
-    DecorationDontStaticallyCoalesceINTEL = 5901,\r
-    DecorationPrefetchINTEL = 5902,\r
-    DecorationStallEnableINTEL = 5905,\r
-    DecorationFuseLoopsInFunctionINTEL = 5907,\r
-    DecorationBufferLocationINTEL = 5921,\r
-    DecorationIOPipeStorageINTEL = 5944,\r
-    DecorationFunctionFloatingPointModeINTEL = 6080,\r
-    DecorationSingleElementVectorINTEL = 6085,\r
-    DecorationVectorComputeCallableFunctionINTEL = 6087,\r
-    DecorationMediaBlockIOINTEL = 6140,\r
-    DecorationMax = 0x7fffffff,\r
-};\r
-\r
-enum BuiltIn {\r
-    BuiltInPosition = 0,\r
-    BuiltInPointSize = 1,\r
-    BuiltInClipDistance = 3,\r
-    BuiltInCullDistance = 4,\r
-    BuiltInVertexId = 5,\r
-    BuiltInInstanceId = 6,\r
-    BuiltInPrimitiveId = 7,\r
-    BuiltInInvocationId = 8,\r
-    BuiltInLayer = 9,\r
-    BuiltInViewportIndex = 10,\r
-    BuiltInTessLevelOuter = 11,\r
-    BuiltInTessLevelInner = 12,\r
-    BuiltInTessCoord = 13,\r
-    BuiltInPatchVertices = 14,\r
-    BuiltInFragCoord = 15,\r
-    BuiltInPointCoord = 16,\r
-    BuiltInFrontFacing = 17,\r
-    BuiltInSampleId = 18,\r
-    BuiltInSamplePosition = 19,\r
-    BuiltInSampleMask = 20,\r
-    BuiltInFragDepth = 22,\r
-    BuiltInHelperInvocation = 23,\r
-    BuiltInNumWorkgroups = 24,\r
-    BuiltInWorkgroupSize = 25,\r
-    BuiltInWorkgroupId = 26,\r
-    BuiltInLocalInvocationId = 27,\r
-    BuiltInGlobalInvocationId = 28,\r
-    BuiltInLocalInvocationIndex = 29,\r
-    BuiltInWorkDim = 30,\r
-    BuiltInGlobalSize = 31,\r
-    BuiltInEnqueuedWorkgroupSize = 32,\r
-    BuiltInGlobalOffset = 33,\r
-    BuiltInGlobalLinearId = 34,\r
-    BuiltInSubgroupSize = 36,\r
-    BuiltInSubgroupMaxSize = 37,\r
-    BuiltInNumSubgroups = 38,\r
-    BuiltInNumEnqueuedSubgroups = 39,\r
-    BuiltInSubgroupId = 40,\r
-    BuiltInSubgroupLocalInvocationId = 41,\r
-    BuiltInVertexIndex = 42,\r
-    BuiltInInstanceIndex = 43,\r
-    BuiltInSubgroupEqMask = 4416,\r
-    BuiltInSubgroupEqMaskKHR = 4416,\r
-    BuiltInSubgroupGeMask = 4417,\r
-    BuiltInSubgroupGeMaskKHR = 4417,\r
-    BuiltInSubgroupGtMask = 4418,\r
-    BuiltInSubgroupGtMaskKHR = 4418,\r
-    BuiltInSubgroupLeMask = 4419,\r
-    BuiltInSubgroupLeMaskKHR = 4419,\r
-    BuiltInSubgroupLtMask = 4420,\r
-    BuiltInSubgroupLtMaskKHR = 4420,\r
-    BuiltInBaseVertex = 4424,\r
-    BuiltInBaseInstance = 4425,\r
-    BuiltInDrawIndex = 4426,\r
-    BuiltInPrimitiveShadingRateKHR = 4432,\r
-    BuiltInDeviceIndex = 4438,\r
-    BuiltInViewIndex = 4440,\r
-    BuiltInShadingRateKHR = 4444,\r
-    BuiltInBaryCoordNoPerspAMD = 4992,\r
-    BuiltInBaryCoordNoPerspCentroidAMD = 4993,\r
-    BuiltInBaryCoordNoPerspSampleAMD = 4994,\r
-    BuiltInBaryCoordSmoothAMD = 4995,\r
-    BuiltInBaryCoordSmoothCentroidAMD = 4996,\r
-    BuiltInBaryCoordSmoothSampleAMD = 4997,\r
-    BuiltInBaryCoordPullModelAMD = 4998,\r
-    BuiltInFragStencilRefEXT = 5014,\r
-    BuiltInViewportMaskNV = 5253,\r
-    BuiltInSecondaryPositionNV = 5257,\r
-    BuiltInSecondaryViewportMaskNV = 5258,\r
-    BuiltInPositionPerViewNV = 5261,\r
-    BuiltInViewportMaskPerViewNV = 5262,\r
-    BuiltInFullyCoveredEXT = 5264,\r
-    BuiltInTaskCountNV = 5274,\r
-    BuiltInPrimitiveCountNV = 5275,\r
-    BuiltInPrimitiveIndicesNV = 5276,\r
-    BuiltInClipDistancePerViewNV = 5277,\r
-    BuiltInCullDistancePerViewNV = 5278,\r
-    BuiltInLayerPerViewNV = 5279,\r
-    BuiltInMeshViewCountNV = 5280,\r
-    BuiltInMeshViewIndicesNV = 5281,\r
-    BuiltInBaryCoordKHR = 5286,\r
-    BuiltInBaryCoordNV = 5286,\r
-    BuiltInBaryCoordNoPerspKHR = 5287,\r
-    BuiltInBaryCoordNoPerspNV = 5287,\r
-    BuiltInFragSizeEXT = 5292,\r
-    BuiltInFragmentSizeNV = 5292,\r
-    BuiltInFragInvocationCountEXT = 5293,\r
-    BuiltInInvocationsPerPixelNV = 5293,\r
-    BuiltInPrimitivePointIndicesEXT = 5294,\r
-    BuiltInPrimitiveLineIndicesEXT = 5295,\r
-    BuiltInPrimitiveTriangleIndicesEXT = 5296,\r
-    BuiltInCullPrimitiveEXT = 5299,\r
-    BuiltInLaunchIdKHR = 5319,\r
-    BuiltInLaunchIdNV = 5319,\r
-    BuiltInLaunchSizeKHR = 5320,\r
-    BuiltInLaunchSizeNV = 5320,\r
-    BuiltInWorldRayOriginKHR = 5321,\r
-    BuiltInWorldRayOriginNV = 5321,\r
-    BuiltInWorldRayDirectionKHR = 5322,\r
-    BuiltInWorldRayDirectionNV = 5322,\r
-    BuiltInObjectRayOriginKHR = 5323,\r
-    BuiltInObjectRayOriginNV = 5323,\r
-    BuiltInObjectRayDirectionKHR = 5324,\r
-    BuiltInObjectRayDirectionNV = 5324,\r
-    BuiltInRayTminKHR = 5325,\r
-    BuiltInRayTminNV = 5325,\r
-    BuiltInRayTmaxKHR = 5326,\r
-    BuiltInRayTmaxNV = 5326,\r
-    BuiltInInstanceCustomIndexKHR = 5327,\r
-    BuiltInInstanceCustomIndexNV = 5327,\r
-    BuiltInObjectToWorldKHR = 5330,\r
-    BuiltInObjectToWorldNV = 5330,\r
-    BuiltInWorldToObjectKHR = 5331,\r
-    BuiltInWorldToObjectNV = 5331,\r
-    BuiltInHitTNV = 5332,\r
-    BuiltInHitKindKHR = 5333,\r
-    BuiltInHitKindNV = 5333,\r
-    BuiltInCurrentRayTimeNV = 5334,\r
-    BuiltInIncomingRayFlagsKHR = 5351,\r
-    BuiltInIncomingRayFlagsNV = 5351,\r
-    BuiltInRayGeometryIndexKHR = 5352,\r
-    BuiltInWarpsPerSMNV = 5374,\r
-    BuiltInSMCountNV = 5375,\r
-    BuiltInWarpIDNV = 5376,\r
-    BuiltInSMIDNV = 5377,\r
-    BuiltInCullMaskKHR = 6021,\r
-    BuiltInMax = 0x7fffffff,\r
-};\r
-\r
-enum SelectionControlShift {\r
-    SelectionControlFlattenShift = 0,\r
-    SelectionControlDontFlattenShift = 1,\r
-    SelectionControlMax = 0x7fffffff,\r
-};\r
-\r
-enum SelectionControlMask {\r
-    SelectionControlMaskNone = 0,\r
-    SelectionControlFlattenMask = 0x00000001,\r
-    SelectionControlDontFlattenMask = 0x00000002,\r
-};\r
-\r
-enum LoopControlShift {\r
-    LoopControlUnrollShift = 0,\r
-    LoopControlDontUnrollShift = 1,\r
-    LoopControlDependencyInfiniteShift = 2,\r
-    LoopControlDependencyLengthShift = 3,\r
-    LoopControlMinIterationsShift = 4,\r
-    LoopControlMaxIterationsShift = 5,\r
-    LoopControlIterationMultipleShift = 6,\r
-    LoopControlPeelCountShift = 7,\r
-    LoopControlPartialCountShift = 8,\r
-    LoopControlInitiationIntervalINTELShift = 16,\r
-    LoopControlMaxConcurrencyINTELShift = 17,\r
-    LoopControlDependencyArrayINTELShift = 18,\r
-    LoopControlPipelineEnableINTELShift = 19,\r
-    LoopControlLoopCoalesceINTELShift = 20,\r
-    LoopControlMaxInterleavingINTELShift = 21,\r
-    LoopControlSpeculatedIterationsINTELShift = 22,\r
-    LoopControlNoFusionINTELShift = 23,\r
-    LoopControlMax = 0x7fffffff,\r
-};\r
-\r
-enum LoopControlMask {\r
-    LoopControlMaskNone = 0,\r
-    LoopControlUnrollMask = 0x00000001,\r
-    LoopControlDontUnrollMask = 0x00000002,\r
-    LoopControlDependencyInfiniteMask = 0x00000004,\r
-    LoopControlDependencyLengthMask = 0x00000008,\r
-    LoopControlMinIterationsMask = 0x00000010,\r
-    LoopControlMaxIterationsMask = 0x00000020,\r
-    LoopControlIterationMultipleMask = 0x00000040,\r
-    LoopControlPeelCountMask = 0x00000080,\r
-    LoopControlPartialCountMask = 0x00000100,\r
-    LoopControlInitiationIntervalINTELMask = 0x00010000,\r
-    LoopControlMaxConcurrencyINTELMask = 0x00020000,\r
-    LoopControlDependencyArrayINTELMask = 0x00040000,\r
-    LoopControlPipelineEnableINTELMask = 0x00080000,\r
-    LoopControlLoopCoalesceINTELMask = 0x00100000,\r
-    LoopControlMaxInterleavingINTELMask = 0x00200000,\r
-    LoopControlSpeculatedIterationsINTELMask = 0x00400000,\r
-    LoopControlNoFusionINTELMask = 0x00800000,\r
-};\r
-\r
-enum FunctionControlShift {\r
-    FunctionControlInlineShift = 0,\r
-    FunctionControlDontInlineShift = 1,\r
-    FunctionControlPureShift = 2,\r
-    FunctionControlConstShift = 3,\r
-    FunctionControlOptNoneINTELShift = 16,\r
-    FunctionControlMax = 0x7fffffff,\r
-};\r
-\r
-enum FunctionControlMask {\r
-    FunctionControlMaskNone = 0,\r
-    FunctionControlInlineMask = 0x00000001,\r
-    FunctionControlDontInlineMask = 0x00000002,\r
-    FunctionControlPureMask = 0x00000004,\r
-    FunctionControlConstMask = 0x00000008,\r
-    FunctionControlOptNoneINTELMask = 0x00010000,\r
-};\r
-\r
-enum MemorySemanticsShift {\r
-    MemorySemanticsAcquireShift = 1,\r
-    MemorySemanticsReleaseShift = 2,\r
-    MemorySemanticsAcquireReleaseShift = 3,\r
-    MemorySemanticsSequentiallyConsistentShift = 4,\r
-    MemorySemanticsUniformMemoryShift = 6,\r
-    MemorySemanticsSubgroupMemoryShift = 7,\r
-    MemorySemanticsWorkgroupMemoryShift = 8,\r
-    MemorySemanticsCrossWorkgroupMemoryShift = 9,\r
-    MemorySemanticsAtomicCounterMemoryShift = 10,\r
-    MemorySemanticsImageMemoryShift = 11,\r
-    MemorySemanticsOutputMemoryShift = 12,\r
-    MemorySemanticsOutputMemoryKHRShift = 12,\r
-    MemorySemanticsMakeAvailableShift = 13,\r
-    MemorySemanticsMakeAvailableKHRShift = 13,\r
-    MemorySemanticsMakeVisibleShift = 14,\r
-    MemorySemanticsMakeVisibleKHRShift = 14,\r
-    MemorySemanticsVolatileShift = 15,\r
-    MemorySemanticsMax = 0x7fffffff,\r
-};\r
-\r
-enum MemorySemanticsMask {\r
-    MemorySemanticsMaskNone = 0,\r
-    MemorySemanticsAcquireMask = 0x00000002,\r
-    MemorySemanticsReleaseMask = 0x00000004,\r
-    MemorySemanticsAcquireReleaseMask = 0x00000008,\r
-    MemorySemanticsSequentiallyConsistentMask = 0x00000010,\r
-    MemorySemanticsUniformMemoryMask = 0x00000040,\r
-    MemorySemanticsSubgroupMemoryMask = 0x00000080,\r
-    MemorySemanticsWorkgroupMemoryMask = 0x00000100,\r
-    MemorySemanticsCrossWorkgroupMemoryMask = 0x00000200,\r
-    MemorySemanticsAtomicCounterMemoryMask = 0x00000400,\r
-    MemorySemanticsImageMemoryMask = 0x00000800,\r
-    MemorySemanticsOutputMemoryMask = 0x00001000,\r
-    MemorySemanticsOutputMemoryKHRMask = 0x00001000,\r
-    MemorySemanticsMakeAvailableMask = 0x00002000,\r
-    MemorySemanticsMakeAvailableKHRMask = 0x00002000,\r
-    MemorySemanticsMakeVisibleMask = 0x00004000,\r
-    MemorySemanticsMakeVisibleKHRMask = 0x00004000,\r
-    MemorySemanticsVolatileMask = 0x00008000,\r
-};\r
-\r
-enum MemoryAccessShift {\r
-    MemoryAccessVolatileShift = 0,\r
-    MemoryAccessAlignedShift = 1,\r
-    MemoryAccessNontemporalShift = 2,\r
-    MemoryAccessMakePointerAvailableShift = 3,\r
-    MemoryAccessMakePointerAvailableKHRShift = 3,\r
-    MemoryAccessMakePointerVisibleShift = 4,\r
-    MemoryAccessMakePointerVisibleKHRShift = 4,\r
-    MemoryAccessNonPrivatePointerShift = 5,\r
-    MemoryAccessNonPrivatePointerKHRShift = 5,\r
-    MemoryAccessMax = 0x7fffffff,\r
-};\r
-\r
-enum MemoryAccessMask {\r
-    MemoryAccessMaskNone = 0,\r
-    MemoryAccessVolatileMask = 0x00000001,\r
-    MemoryAccessAlignedMask = 0x00000002,\r
-    MemoryAccessNontemporalMask = 0x00000004,\r
-    MemoryAccessMakePointerAvailableMask = 0x00000008,\r
-    MemoryAccessMakePointerAvailableKHRMask = 0x00000008,\r
-    MemoryAccessMakePointerVisibleMask = 0x00000010,\r
-    MemoryAccessMakePointerVisibleKHRMask = 0x00000010,\r
-    MemoryAccessNonPrivatePointerMask = 0x00000020,\r
-    MemoryAccessNonPrivatePointerKHRMask = 0x00000020,\r
-};\r
-\r
-enum Scope {\r
-    ScopeCrossDevice = 0,\r
-    ScopeDevice = 1,\r
-    ScopeWorkgroup = 2,\r
-    ScopeSubgroup = 3,\r
-    ScopeInvocation = 4,\r
-    ScopeQueueFamily = 5,\r
-    ScopeQueueFamilyKHR = 5,\r
-    ScopeShaderCallKHR = 6,\r
-    ScopeMax = 0x7fffffff,\r
-};\r
-\r
-enum GroupOperation {\r
-    GroupOperationReduce = 0,\r
-    GroupOperationInclusiveScan = 1,\r
-    GroupOperationExclusiveScan = 2,\r
-    GroupOperationClusteredReduce = 3,\r
-    GroupOperationPartitionedReduceNV = 6,\r
-    GroupOperationPartitionedInclusiveScanNV = 7,\r
-    GroupOperationPartitionedExclusiveScanNV = 8,\r
-    GroupOperationMax = 0x7fffffff,\r
-};\r
-\r
-enum KernelEnqueueFlags {\r
-    KernelEnqueueFlagsNoWait = 0,\r
-    KernelEnqueueFlagsWaitKernel = 1,\r
-    KernelEnqueueFlagsWaitWorkGroup = 2,\r
-    KernelEnqueueFlagsMax = 0x7fffffff,\r
-};\r
-\r
-enum KernelProfilingInfoShift {\r
-    KernelProfilingInfoCmdExecTimeShift = 0,\r
-    KernelProfilingInfoMax = 0x7fffffff,\r
-};\r
-\r
-enum KernelProfilingInfoMask {\r
-    KernelProfilingInfoMaskNone = 0,\r
-    KernelProfilingInfoCmdExecTimeMask = 0x00000001,\r
-};\r
-\r
-enum Capability {\r
-    CapabilityMatrix = 0,\r
-    CapabilityShader = 1,\r
-    CapabilityGeometry = 2,\r
-    CapabilityTessellation = 3,\r
-    CapabilityAddresses = 4,\r
-    CapabilityLinkage = 5,\r
-    CapabilityKernel = 6,\r
-    CapabilityVector16 = 7,\r
-    CapabilityFloat16Buffer = 8,\r
-    CapabilityFloat16 = 9,\r
-    CapabilityFloat64 = 10,\r
-    CapabilityInt64 = 11,\r
-    CapabilityInt64Atomics = 12,\r
-    CapabilityImageBasic = 13,\r
-    CapabilityImageReadWrite = 14,\r
-    CapabilityImageMipmap = 15,\r
-    CapabilityPipes = 17,\r
-    CapabilityGroups = 18,\r
-    CapabilityDeviceEnqueue = 19,\r
-    CapabilityLiteralSampler = 20,\r
-    CapabilityAtomicStorage = 21,\r
-    CapabilityInt16 = 22,\r
-    CapabilityTessellationPointSize = 23,\r
-    CapabilityGeometryPointSize = 24,\r
-    CapabilityImageGatherExtended = 25,\r
-    CapabilityStorageImageMultisample = 27,\r
-    CapabilityUniformBufferArrayDynamicIndexing = 28,\r
-    CapabilitySampledImageArrayDynamicIndexing = 29,\r
-    CapabilityStorageBufferArrayDynamicIndexing = 30,\r
-    CapabilityStorageImageArrayDynamicIndexing = 31,\r
-    CapabilityClipDistance = 32,\r
-    CapabilityCullDistance = 33,\r
-    CapabilityImageCubeArray = 34,\r
-    CapabilitySampleRateShading = 35,\r
-    CapabilityImageRect = 36,\r
-    CapabilitySampledRect = 37,\r
-    CapabilityGenericPointer = 38,\r
-    CapabilityInt8 = 39,\r
-    CapabilityInputAttachment = 40,\r
-    CapabilitySparseResidency = 41,\r
-    CapabilityMinLod = 42,\r
-    CapabilitySampled1D = 43,\r
-    CapabilityImage1D = 44,\r
-    CapabilitySampledCubeArray = 45,\r
-    CapabilitySampledBuffer = 46,\r
-    CapabilityImageBuffer = 47,\r
-    CapabilityImageMSArray = 48,\r
-    CapabilityStorageImageExtendedFormats = 49,\r
-    CapabilityImageQuery = 50,\r
-    CapabilityDerivativeControl = 51,\r
-    CapabilityInterpolationFunction = 52,\r
-    CapabilityTransformFeedback = 53,\r
-    CapabilityGeometryStreams = 54,\r
-    CapabilityStorageImageReadWithoutFormat = 55,\r
-    CapabilityStorageImageWriteWithoutFormat = 56,\r
-    CapabilityMultiViewport = 57,\r
-    CapabilitySubgroupDispatch = 58,\r
-    CapabilityNamedBarrier = 59,\r
-    CapabilityPipeStorage = 60,\r
-    CapabilityGroupNonUniform = 61,\r
-    CapabilityGroupNonUniformVote = 62,\r
-    CapabilityGroupNonUniformArithmetic = 63,\r
-    CapabilityGroupNonUniformBallot = 64,\r
-    CapabilityGroupNonUniformShuffle = 65,\r
-    CapabilityGroupNonUniformShuffleRelative = 66,\r
-    CapabilityGroupNonUniformClustered = 67,\r
-    CapabilityGroupNonUniformQuad = 68,\r
-    CapabilityShaderLayer = 69,\r
-    CapabilityShaderViewportIndex = 70,\r
-    CapabilityUniformDecoration = 71,\r
-    CapabilityFragmentShadingRateKHR = 4422,\r
-    CapabilitySubgroupBallotKHR = 4423,\r
-    CapabilityDrawParameters = 4427,\r
-    CapabilityWorkgroupMemoryExplicitLayoutKHR = 4428,\r
-    CapabilityWorkgroupMemoryExplicitLayout8BitAccessKHR = 4429,\r
-    CapabilityWorkgroupMemoryExplicitLayout16BitAccessKHR = 4430,\r
-    CapabilitySubgroupVoteKHR = 4431,\r
-    CapabilityStorageBuffer16BitAccess = 4433,\r
-    CapabilityStorageUniformBufferBlock16 = 4433,\r
-    CapabilityStorageUniform16 = 4434,\r
-    CapabilityUniformAndStorageBuffer16BitAccess = 4434,\r
-    CapabilityStoragePushConstant16 = 4435,\r
-    CapabilityStorageInputOutput16 = 4436,\r
-    CapabilityDeviceGroup = 4437,\r
-    CapabilityMultiView = 4439,\r
-    CapabilityVariablePointersStorageBuffer = 4441,\r
-    CapabilityVariablePointers = 4442,\r
-    CapabilityAtomicStorageOps = 4445,\r
-    CapabilitySampleMaskPostDepthCoverage = 4447,\r
-    CapabilityStorageBuffer8BitAccess = 4448,\r
-    CapabilityUniformAndStorageBuffer8BitAccess = 4449,\r
-    CapabilityStoragePushConstant8 = 4450,\r
-    CapabilityDenormPreserve = 4464,\r
-    CapabilityDenormFlushToZero = 4465,\r
-    CapabilitySignedZeroInfNanPreserve = 4466,\r
-    CapabilityRoundingModeRTE = 4467,\r
-    CapabilityRoundingModeRTZ = 4468,\r
-    CapabilityRayQueryProvisionalKHR = 4471,\r
-    CapabilityRayQueryKHR = 4472,\r
-    CapabilityRayTraversalPrimitiveCullingKHR = 4478,\r
-    CapabilityRayTracingKHR = 4479,\r
-    CapabilityFloat16ImageAMD = 5008,\r
-    CapabilityImageGatherBiasLodAMD = 5009,\r
-    CapabilityFragmentMaskAMD = 5010,\r
-    CapabilityStencilExportEXT = 5013,\r
-    CapabilityImageReadWriteLodAMD = 5015,\r
-    CapabilityInt64ImageEXT = 5016,\r
-    CapabilityShaderClockKHR = 5055,\r
-    CapabilitySampleMaskOverrideCoverageNV = 5249,\r
-    CapabilityGeometryShaderPassthroughNV = 5251,\r
-    CapabilityShaderViewportIndexLayerEXT = 5254,\r
-    CapabilityShaderViewportIndexLayerNV = 5254,\r
-    CapabilityShaderViewportMaskNV = 5255,\r
-    CapabilityShaderStereoViewNV = 5259,\r
-    CapabilityPerViewAttributesNV = 5260,\r
-    CapabilityFragmentFullyCoveredEXT = 5265,\r
-    CapabilityMeshShadingNV = 5266,\r
-    CapabilityImageFootprintNV = 5282,\r
-    CapabilityMeshShadingEXT = 5283,\r
-       CapabilityFragmentBarycentricKHR = 5284,\r
-    CapabilityFragmentBarycentricNV = 5284,\r
-    CapabilityComputeDerivativeGroupQuadsNV = 5288,\r
-    CapabilityFragmentDensityEXT = 5291,\r
-    CapabilityShadingRateNV = 5291,\r
-    CapabilityGroupNonUniformPartitionedNV = 5297,\r
-    CapabilityShaderNonUniform = 5301,\r
-    CapabilityShaderNonUniformEXT = 5301,\r
-    CapabilityRuntimeDescriptorArray = 5302,\r
-    CapabilityRuntimeDescriptorArrayEXT = 5302,\r
-    CapabilityInputAttachmentArrayDynamicIndexing = 5303,\r
-    CapabilityInputAttachmentArrayDynamicIndexingEXT = 5303,\r
-    CapabilityUniformTexelBufferArrayDynamicIndexing = 5304,\r
-    CapabilityUniformTexelBufferArrayDynamicIndexingEXT = 5304,\r
-    CapabilityStorageTexelBufferArrayDynamicIndexing = 5305,\r
-    CapabilityStorageTexelBufferArrayDynamicIndexingEXT = 5305,\r
-    CapabilityUniformBufferArrayNonUniformIndexing = 5306,\r
-    CapabilityUniformBufferArrayNonUniformIndexingEXT = 5306,\r
-    CapabilitySampledImageArrayNonUniformIndexing = 5307,\r
-    CapabilitySampledImageArrayNonUniformIndexingEXT = 5307,\r
-    CapabilityStorageBufferArrayNonUniformIndexing = 5308,\r
-    CapabilityStorageBufferArrayNonUniformIndexingEXT = 5308,\r
-    CapabilityStorageImageArrayNonUniformIndexing = 5309,\r
-    CapabilityStorageImageArrayNonUniformIndexingEXT = 5309,\r
-    CapabilityInputAttachmentArrayNonUniformIndexing = 5310,\r
-    CapabilityInputAttachmentArrayNonUniformIndexingEXT = 5310,\r
-    CapabilityUniformTexelBufferArrayNonUniformIndexing = 5311,\r
-    CapabilityUniformTexelBufferArrayNonUniformIndexingEXT = 5311,\r
-    CapabilityStorageTexelBufferArrayNonUniformIndexing = 5312,\r
-    CapabilityStorageTexelBufferArrayNonUniformIndexingEXT = 5312,\r
-    CapabilityRayTracingNV = 5340,\r
-    CapabilityRayTracingMotionBlurNV = 5341,\r
-    CapabilityVulkanMemoryModel = 5345,\r
-    CapabilityVulkanMemoryModelKHR = 5345,\r
-    CapabilityVulkanMemoryModelDeviceScope = 5346,\r
-    CapabilityVulkanMemoryModelDeviceScopeKHR = 5346,\r
-    CapabilityPhysicalStorageBufferAddresses = 5347,\r
-    CapabilityPhysicalStorageBufferAddressesEXT = 5347,\r
-    CapabilityComputeDerivativeGroupLinearNV = 5350,\r
-    CapabilityRayTracingProvisionalKHR = 5353,\r
-    CapabilityCooperativeMatrixNV = 5357,\r
-    CapabilityFragmentShaderSampleInterlockEXT = 5363,\r
-    CapabilityFragmentShaderShadingRateInterlockEXT = 5372,\r
-    CapabilityShaderSMBuiltinsNV = 5373,\r
-    CapabilityFragmentShaderPixelInterlockEXT = 5378,\r
-    CapabilityDemoteToHelperInvocation = 5379,\r
-    CapabilityDemoteToHelperInvocationEXT = 5379,\r
-    CapabilityBindlessTextureNV = 5390,\r
-    CapabilitySubgroupShuffleINTEL = 5568,\r
-    CapabilitySubgroupBufferBlockIOINTEL = 5569,\r
-    CapabilitySubgroupImageBlockIOINTEL = 5570,\r
-    CapabilitySubgroupImageMediaBlockIOINTEL = 5579,\r
-    CapabilityRoundToInfinityINTEL = 5582,\r
-    CapabilityFloatingPointModeINTEL = 5583,\r
-    CapabilityIntegerFunctions2INTEL = 5584,\r
-    CapabilityFunctionPointersINTEL = 5603,\r
-    CapabilityIndirectReferencesINTEL = 5604,\r
-    CapabilityAsmINTEL = 5606,\r
-    CapabilityAtomicFloat32MinMaxEXT = 5612,\r
-    CapabilityAtomicFloat64MinMaxEXT = 5613,\r
-    CapabilityAtomicFloat16MinMaxEXT = 5616,\r
-    CapabilityVectorComputeINTEL = 5617,\r
-    CapabilityVectorAnyINTEL = 5619,\r
-    CapabilityExpectAssumeKHR = 5629,\r
-    CapabilitySubgroupAvcMotionEstimationINTEL = 5696,\r
-    CapabilitySubgroupAvcMotionEstimationIntraINTEL = 5697,\r
-    CapabilitySubgroupAvcMotionEstimationChromaINTEL = 5698,\r
-    CapabilityVariableLengthArrayINTEL = 5817,\r
-    CapabilityFunctionFloatControlINTEL = 5821,\r
-    CapabilityFPGAMemoryAttributesINTEL = 5824,\r
-    CapabilityFPFastMathModeINTEL = 5837,\r
-    CapabilityArbitraryPrecisionIntegersINTEL = 5844,\r
-    CapabilityArbitraryPrecisionFloatingPointINTEL = 5845,\r
-    CapabilityUnstructuredLoopControlsINTEL = 5886,\r
-    CapabilityFPGALoopControlsINTEL = 5888,\r
-    CapabilityKernelAttributesINTEL = 5892,\r
-    CapabilityFPGAKernelAttributesINTEL = 5897,\r
-    CapabilityFPGAMemoryAccessesINTEL = 5898,\r
-    CapabilityFPGAClusterAttributesINTEL = 5904,\r
-    CapabilityLoopFuseINTEL = 5906,\r
-    CapabilityFPGABufferLocationINTEL = 5920,\r
-    CapabilityArbitraryPrecisionFixedPointINTEL = 5922,\r
-    CapabilityUSMStorageClassesINTEL = 5935,\r
-    CapabilityIOPipesINTEL = 5943,\r
-    CapabilityBlockingPipesINTEL = 5945,\r
-    CapabilityFPGARegINTEL = 5948,\r
-    CapabilityDotProductInputAll = 6016,\r
-    CapabilityDotProductInputAllKHR = 6016,\r
-    CapabilityDotProductInput4x8Bit = 6017,\r
-    CapabilityDotProductInput4x8BitKHR = 6017,\r
-    CapabilityDotProductInput4x8BitPacked = 6018,\r
-    CapabilityDotProductInput4x8BitPackedKHR = 6018,\r
-    CapabilityDotProduct = 6019,\r
-    CapabilityDotProductKHR = 6019,\r
-    CapabilityRayCullMaskKHR = 6020,\r
-    CapabilityBitInstructions = 6025,\r
-    CapabilityAtomicFloat32AddEXT = 6033,\r
-    CapabilityAtomicFloat64AddEXT = 6034,\r
-    CapabilityLongConstantCompositeINTEL = 6089,\r
-    CapabilityOptNoneINTEL = 6094,\r
-    CapabilityAtomicFloat16AddEXT = 6095,\r
-    CapabilityDebugInfoModuleINTEL = 6114,\r
-    CapabilityMax = 0x7fffffff,\r
-};\r
-\r
-enum RayFlagsShift {\r
-    RayFlagsOpaqueKHRShift = 0,\r
-    RayFlagsNoOpaqueKHRShift = 1,\r
-    RayFlagsTerminateOnFirstHitKHRShift = 2,\r
-    RayFlagsSkipClosestHitShaderKHRShift = 3,\r
-    RayFlagsCullBackFacingTrianglesKHRShift = 4,\r
-    RayFlagsCullFrontFacingTrianglesKHRShift = 5,\r
-    RayFlagsCullOpaqueKHRShift = 6,\r
-    RayFlagsCullNoOpaqueKHRShift = 7,\r
-    RayFlagsSkipTrianglesKHRShift = 8,\r
-    RayFlagsSkipAABBsKHRShift = 9,\r
-    RayFlagsMax = 0x7fffffff,\r
-};\r
-\r
-enum RayFlagsMask {\r
-    RayFlagsMaskNone = 0,\r
-    RayFlagsOpaqueKHRMask = 0x00000001,\r
-    RayFlagsNoOpaqueKHRMask = 0x00000002,\r
-    RayFlagsTerminateOnFirstHitKHRMask = 0x00000004,\r
-    RayFlagsSkipClosestHitShaderKHRMask = 0x00000008,\r
-    RayFlagsCullBackFacingTrianglesKHRMask = 0x00000010,\r
-    RayFlagsCullFrontFacingTrianglesKHRMask = 0x00000020,\r
-    RayFlagsCullOpaqueKHRMask = 0x00000040,\r
-    RayFlagsCullNoOpaqueKHRMask = 0x00000080,\r
-    RayFlagsSkipTrianglesKHRMask = 0x00000100,\r
-    RayFlagsSkipAABBsKHRMask = 0x00000200,\r
-};\r
-\r
-enum RayQueryIntersection {\r
-    RayQueryIntersectionRayQueryCandidateIntersectionKHR = 0,\r
-    RayQueryIntersectionRayQueryCommittedIntersectionKHR = 1,\r
-    RayQueryIntersectionMax = 0x7fffffff,\r
-};\r
-\r
-enum RayQueryCommittedIntersectionType {\r
-    RayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionNoneKHR = 0,\r
-    RayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionTriangleKHR = 1,\r
-    RayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionGeneratedKHR = 2,\r
-    RayQueryCommittedIntersectionTypeMax = 0x7fffffff,\r
-};\r
-\r
-enum RayQueryCandidateIntersectionType {\r
-    RayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionTriangleKHR = 0,\r
-    RayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionAABBKHR = 1,\r
-    RayQueryCandidateIntersectionTypeMax = 0x7fffffff,\r
-};\r
-\r
-enum FragmentShadingRateShift {\r
-    FragmentShadingRateVertical2PixelsShift = 0,\r
-    FragmentShadingRateVertical4PixelsShift = 1,\r
-    FragmentShadingRateHorizontal2PixelsShift = 2,\r
-    FragmentShadingRateHorizontal4PixelsShift = 3,\r
-    FragmentShadingRateMax = 0x7fffffff,\r
-};\r
-\r
-enum FragmentShadingRateMask {\r
-    FragmentShadingRateMaskNone = 0,\r
-    FragmentShadingRateVertical2PixelsMask = 0x00000001,\r
-    FragmentShadingRateVertical4PixelsMask = 0x00000002,\r
-    FragmentShadingRateHorizontal2PixelsMask = 0x00000004,\r
-    FragmentShadingRateHorizontal4PixelsMask = 0x00000008,\r
-};\r
-\r
-enum FPDenormMode {\r
-    FPDenormModePreserve = 0,\r
-    FPDenormModeFlushToZero = 1,\r
-    FPDenormModeMax = 0x7fffffff,\r
-};\r
-\r
-enum FPOperationMode {\r
-    FPOperationModeIEEE = 0,\r
-    FPOperationModeALT = 1,\r
-    FPOperationModeMax = 0x7fffffff,\r
-};\r
-\r
-enum QuantizationModes {\r
-    QuantizationModesTRN = 0,\r
-    QuantizationModesTRN_ZERO = 1,\r
-    QuantizationModesRND = 2,\r
-    QuantizationModesRND_ZERO = 3,\r
-    QuantizationModesRND_INF = 4,\r
-    QuantizationModesRND_MIN_INF = 5,\r
-    QuantizationModesRND_CONV = 6,\r
-    QuantizationModesRND_CONV_ODD = 7,\r
-    QuantizationModesMax = 0x7fffffff,\r
-};\r
-\r
-enum OverflowModes {\r
-    OverflowModesWRAP = 0,\r
-    OverflowModesSAT = 1,\r
-    OverflowModesSAT_ZERO = 2,\r
-    OverflowModesSAT_SYM = 3,\r
-    OverflowModesMax = 0x7fffffff,\r
-};\r
-\r
-enum PackedVectorFormat {\r
-    PackedVectorFormatPackedVectorFormat4x8Bit = 0,\r
-    PackedVectorFormatPackedVectorFormat4x8BitKHR = 0,\r
-    PackedVectorFormatMax = 0x7fffffff,\r
-};\r
-\r
-enum Op {\r
-    OpNop = 0,\r
-    OpUndef = 1,\r
-    OpSourceContinued = 2,\r
-    OpSource = 3,\r
-    OpSourceExtension = 4,\r
-    OpName = 5,\r
-    OpMemberName = 6,\r
-    OpString = 7,\r
-    OpLine = 8,\r
-    OpExtension = 10,\r
-    OpExtInstImport = 11,\r
-    OpExtInst = 12,\r
-    OpMemoryModel = 14,\r
-    OpEntryPoint = 15,\r
-    OpExecutionMode = 16,\r
-    OpCapability = 17,\r
-    OpTypeVoid = 19,\r
-    OpTypeBool = 20,\r
-    OpTypeInt = 21,\r
-    OpTypeFloat = 22,\r
-    OpTypeVector = 23,\r
-    OpTypeMatrix = 24,\r
-    OpTypeImage = 25,\r
-    OpTypeSampler = 26,\r
-    OpTypeSampledImage = 27,\r
-    OpTypeArray = 28,\r
-    OpTypeRuntimeArray = 29,\r
-    OpTypeStruct = 30,\r
-    OpTypeOpaque = 31,\r
-    OpTypePointer = 32,\r
-    OpTypeFunction = 33,\r
-    OpTypeEvent = 34,\r
-    OpTypeDeviceEvent = 35,\r
-    OpTypeReserveId = 36,\r
-    OpTypeQueue = 37,\r
-    OpTypePipe = 38,\r
-    OpTypeForwardPointer = 39,\r
-    OpConstantTrue = 41,\r
-    OpConstantFalse = 42,\r
-    OpConstant = 43,\r
-    OpConstantComposite = 44,\r
-    OpConstantSampler = 45,\r
-    OpConstantNull = 46,\r
-    OpSpecConstantTrue = 48,\r
-    OpSpecConstantFalse = 49,\r
-    OpSpecConstant = 50,\r
-    OpSpecConstantComposite = 51,\r
-    OpSpecConstantOp = 52,\r
-    OpFunction = 54,\r
-    OpFunctionParameter = 55,\r
-    OpFunctionEnd = 56,\r
-    OpFunctionCall = 57,\r
-    OpVariable = 59,\r
-    OpImageTexelPointer = 60,\r
-    OpLoad = 61,\r
-    OpStore = 62,\r
-    OpCopyMemory = 63,\r
-    OpCopyMemorySized = 64,\r
-    OpAccessChain = 65,\r
-    OpInBoundsAccessChain = 66,\r
-    OpPtrAccessChain = 67,\r
-    OpArrayLength = 68,\r
-    OpGenericPtrMemSemantics = 69,\r
-    OpInBoundsPtrAccessChain = 70,\r
-    OpDecorate = 71,\r
-    OpMemberDecorate = 72,\r
-    OpDecorationGroup = 73,\r
-    OpGroupDecorate = 74,\r
-    OpGroupMemberDecorate = 75,\r
-    OpVectorExtractDynamic = 77,\r
-    OpVectorInsertDynamic = 78,\r
-    OpVectorShuffle = 79,\r
-    OpCompositeConstruct = 80,\r
-    OpCompositeExtract = 81,\r
-    OpCompositeInsert = 82,\r
-    OpCopyObject = 83,\r
-    OpTranspose = 84,\r
-    OpSampledImage = 86,\r
-    OpImageSampleImplicitLod = 87,\r
-    OpImageSampleExplicitLod = 88,\r
-    OpImageSampleDrefImplicitLod = 89,\r
-    OpImageSampleDrefExplicitLod = 90,\r
-    OpImageSampleProjImplicitLod = 91,\r
-    OpImageSampleProjExplicitLod = 92,\r
-    OpImageSampleProjDrefImplicitLod = 93,\r
-    OpImageSampleProjDrefExplicitLod = 94,\r
-    OpImageFetch = 95,\r
-    OpImageGather = 96,\r
-    OpImageDrefGather = 97,\r
-    OpImageRead = 98,\r
-    OpImageWrite = 99,\r
-    OpImage = 100,\r
-    OpImageQueryFormat = 101,\r
-    OpImageQueryOrder = 102,\r
-    OpImageQuerySizeLod = 103,\r
-    OpImageQuerySize = 104,\r
-    OpImageQueryLod = 105,\r
-    OpImageQueryLevels = 106,\r
-    OpImageQuerySamples = 107,\r
-    OpConvertFToU = 109,\r
-    OpConvertFToS = 110,\r
-    OpConvertSToF = 111,\r
-    OpConvertUToF = 112,\r
-    OpUConvert = 113,\r
-    OpSConvert = 114,\r
-    OpFConvert = 115,\r
-    OpQuantizeToF16 = 116,\r
-    OpConvertPtrToU = 117,\r
-    OpSatConvertSToU = 118,\r
-    OpSatConvertUToS = 119,\r
-    OpConvertUToPtr = 120,\r
-    OpPtrCastToGeneric = 121,\r
-    OpGenericCastToPtr = 122,\r
-    OpGenericCastToPtrExplicit = 123,\r
-    OpBitcast = 124,\r
-    OpSNegate = 126,\r
-    OpFNegate = 127,\r
-    OpIAdd = 128,\r
-    OpFAdd = 129,\r
-    OpISub = 130,\r
-    OpFSub = 131,\r
-    OpIMul = 132,\r
-    OpFMul = 133,\r
-    OpUDiv = 134,\r
-    OpSDiv = 135,\r
-    OpFDiv = 136,\r
-    OpUMod = 137,\r
-    OpSRem = 138,\r
-    OpSMod = 139,\r
-    OpFRem = 140,\r
-    OpFMod = 141,\r
-    OpVectorTimesScalar = 142,\r
-    OpMatrixTimesScalar = 143,\r
-    OpVectorTimesMatrix = 144,\r
-    OpMatrixTimesVector = 145,\r
-    OpMatrixTimesMatrix = 146,\r
-    OpOuterProduct = 147,\r
-    OpDot = 148,\r
-    OpIAddCarry = 149,\r
-    OpISubBorrow = 150,\r
-    OpUMulExtended = 151,\r
-    OpSMulExtended = 152,\r
-    OpAny = 154,\r
-    OpAll = 155,\r
-    OpIsNan = 156,\r
-    OpIsInf = 157,\r
-    OpIsFinite = 158,\r
-    OpIsNormal = 159,\r
-    OpSignBitSet = 160,\r
-    OpLessOrGreater = 161,\r
-    OpOrdered = 162,\r
-    OpUnordered = 163,\r
-    OpLogicalEqual = 164,\r
-    OpLogicalNotEqual = 165,\r
-    OpLogicalOr = 166,\r
-    OpLogicalAnd = 167,\r
-    OpLogicalNot = 168,\r
-    OpSelect = 169,\r
-    OpIEqual = 170,\r
-    OpINotEqual = 171,\r
-    OpUGreaterThan = 172,\r
-    OpSGreaterThan = 173,\r
-    OpUGreaterThanEqual = 174,\r
-    OpSGreaterThanEqual = 175,\r
-    OpULessThan = 176,\r
-    OpSLessThan = 177,\r
-    OpULessThanEqual = 178,\r
-    OpSLessThanEqual = 179,\r
-    OpFOrdEqual = 180,\r
-    OpFUnordEqual = 181,\r
-    OpFOrdNotEqual = 182,\r
-    OpFUnordNotEqual = 183,\r
-    OpFOrdLessThan = 184,\r
-    OpFUnordLessThan = 185,\r
-    OpFOrdGreaterThan = 186,\r
-    OpFUnordGreaterThan = 187,\r
-    OpFOrdLessThanEqual = 188,\r
-    OpFUnordLessThanEqual = 189,\r
-    OpFOrdGreaterThanEqual = 190,\r
-    OpFUnordGreaterThanEqual = 191,\r
-    OpShiftRightLogical = 194,\r
-    OpShiftRightArithmetic = 195,\r
-    OpShiftLeftLogical = 196,\r
-    OpBitwiseOr = 197,\r
-    OpBitwiseXor = 198,\r
-    OpBitwiseAnd = 199,\r
-    OpNot = 200,\r
-    OpBitFieldInsert = 201,\r
-    OpBitFieldSExtract = 202,\r
-    OpBitFieldUExtract = 203,\r
-    OpBitReverse = 204,\r
-    OpBitCount = 205,\r
-    OpDPdx = 207,\r
-    OpDPdy = 208,\r
-    OpFwidth = 209,\r
-    OpDPdxFine = 210,\r
-    OpDPdyFine = 211,\r
-    OpFwidthFine = 212,\r
-    OpDPdxCoarse = 213,\r
-    OpDPdyCoarse = 214,\r
-    OpFwidthCoarse = 215,\r
-    OpEmitVertex = 218,\r
-    OpEndPrimitive = 219,\r
-    OpEmitStreamVertex = 220,\r
-    OpEndStreamPrimitive = 221,\r
-    OpControlBarrier = 224,\r
-    OpMemoryBarrier = 225,\r
-    OpAtomicLoad = 227,\r
-    OpAtomicStore = 228,\r
-    OpAtomicExchange = 229,\r
-    OpAtomicCompareExchange = 230,\r
-    OpAtomicCompareExchangeWeak = 231,\r
-    OpAtomicIIncrement = 232,\r
-    OpAtomicIDecrement = 233,\r
-    OpAtomicIAdd = 234,\r
-    OpAtomicISub = 235,\r
-    OpAtomicSMin = 236,\r
-    OpAtomicUMin = 237,\r
-    OpAtomicSMax = 238,\r
-    OpAtomicUMax = 239,\r
-    OpAtomicAnd = 240,\r
-    OpAtomicOr = 241,\r
-    OpAtomicXor = 242,\r
-    OpPhi = 245,\r
-    OpLoopMerge = 246,\r
-    OpSelectionMerge = 247,\r
-    OpLabel = 248,\r
-    OpBranch = 249,\r
-    OpBranchConditional = 250,\r
-    OpSwitch = 251,\r
-    OpKill = 252,\r
-    OpReturn = 253,\r
-    OpReturnValue = 254,\r
-    OpUnreachable = 255,\r
-    OpLifetimeStart = 256,\r
-    OpLifetimeStop = 257,\r
-    OpGroupAsyncCopy = 259,\r
-    OpGroupWaitEvents = 260,\r
-    OpGroupAll = 261,\r
-    OpGroupAny = 262,\r
-    OpGroupBroadcast = 263,\r
-    OpGroupIAdd = 264,\r
-    OpGroupFAdd = 265,\r
-    OpGroupFMin = 266,\r
-    OpGroupUMin = 267,\r
-    OpGroupSMin = 268,\r
-    OpGroupFMax = 269,\r
-    OpGroupUMax = 270,\r
-    OpGroupSMax = 271,\r
-    OpReadPipe = 274,\r
-    OpWritePipe = 275,\r
-    OpReservedReadPipe = 276,\r
-    OpReservedWritePipe = 277,\r
-    OpReserveReadPipePackets = 278,\r
-    OpReserveWritePipePackets = 279,\r
-    OpCommitReadPipe = 280,\r
-    OpCommitWritePipe = 281,\r
-    OpIsValidReserveId = 282,\r
-    OpGetNumPipePackets = 283,\r
-    OpGetMaxPipePackets = 284,\r
-    OpGroupReserveReadPipePackets = 285,\r
-    OpGroupReserveWritePipePackets = 286,\r
-    OpGroupCommitReadPipe = 287,\r
-    OpGroupCommitWritePipe = 288,\r
-    OpEnqueueMarker = 291,\r
-    OpEnqueueKernel = 292,\r
-    OpGetKernelNDrangeSubGroupCount = 293,\r
-    OpGetKernelNDrangeMaxSubGroupSize = 294,\r
-    OpGetKernelWorkGroupSize = 295,\r
-    OpGetKernelPreferredWorkGroupSizeMultiple = 296,\r
-    OpRetainEvent = 297,\r
-    OpReleaseEvent = 298,\r
-    OpCreateUserEvent = 299,\r
-    OpIsValidEvent = 300,\r
-    OpSetUserEventStatus = 301,\r
-    OpCaptureEventProfilingInfo = 302,\r
-    OpGetDefaultQueue = 303,\r
-    OpBuildNDRange = 304,\r
-    OpImageSparseSampleImplicitLod = 305,\r
-    OpImageSparseSampleExplicitLod = 306,\r
-    OpImageSparseSampleDrefImplicitLod = 307,\r
-    OpImageSparseSampleDrefExplicitLod = 308,\r
-    OpImageSparseSampleProjImplicitLod = 309,\r
-    OpImageSparseSampleProjExplicitLod = 310,\r
-    OpImageSparseSampleProjDrefImplicitLod = 311,\r
-    OpImageSparseSampleProjDrefExplicitLod = 312,\r
-    OpImageSparseFetch = 313,\r
-    OpImageSparseGather = 314,\r
-    OpImageSparseDrefGather = 315,\r
-    OpImageSparseTexelsResident = 316,\r
-    OpNoLine = 317,\r
-    OpAtomicFlagTestAndSet = 318,\r
-    OpAtomicFlagClear = 319,\r
-    OpImageSparseRead = 320,\r
-    OpSizeOf = 321,\r
-    OpTypePipeStorage = 322,\r
-    OpConstantPipeStorage = 323,\r
-    OpCreatePipeFromPipeStorage = 324,\r
-    OpGetKernelLocalSizeForSubgroupCount = 325,\r
-    OpGetKernelMaxNumSubgroups = 326,\r
-    OpTypeNamedBarrier = 327,\r
-    OpNamedBarrierInitialize = 328,\r
-    OpMemoryNamedBarrier = 329,\r
-    OpModuleProcessed = 330,\r
-    OpExecutionModeId = 331,\r
-    OpDecorateId = 332,\r
-    OpGroupNonUniformElect = 333,\r
-    OpGroupNonUniformAll = 334,\r
-    OpGroupNonUniformAny = 335,\r
-    OpGroupNonUniformAllEqual = 336,\r
-    OpGroupNonUniformBroadcast = 337,\r
-    OpGroupNonUniformBroadcastFirst = 338,\r
-    OpGroupNonUniformBallot = 339,\r
-    OpGroupNonUniformInverseBallot = 340,\r
-    OpGroupNonUniformBallotBitExtract = 341,\r
-    OpGroupNonUniformBallotBitCount = 342,\r
-    OpGroupNonUniformBallotFindLSB = 343,\r
-    OpGroupNonUniformBallotFindMSB = 344,\r
-    OpGroupNonUniformShuffle = 345,\r
-    OpGroupNonUniformShuffleXor = 346,\r
-    OpGroupNonUniformShuffleUp = 347,\r
-    OpGroupNonUniformShuffleDown = 348,\r
-    OpGroupNonUniformIAdd = 349,\r
-    OpGroupNonUniformFAdd = 350,\r
-    OpGroupNonUniformIMul = 351,\r
-    OpGroupNonUniformFMul = 352,\r
-    OpGroupNonUniformSMin = 353,\r
-    OpGroupNonUniformUMin = 354,\r
-    OpGroupNonUniformFMin = 355,\r
-    OpGroupNonUniformSMax = 356,\r
-    OpGroupNonUniformUMax = 357,\r
-    OpGroupNonUniformFMax = 358,\r
-    OpGroupNonUniformBitwiseAnd = 359,\r
-    OpGroupNonUniformBitwiseOr = 360,\r
-    OpGroupNonUniformBitwiseXor = 361,\r
-    OpGroupNonUniformLogicalAnd = 362,\r
-    OpGroupNonUniformLogicalOr = 363,\r
-    OpGroupNonUniformLogicalXor = 364,\r
-    OpGroupNonUniformQuadBroadcast = 365,\r
-    OpGroupNonUniformQuadSwap = 366,\r
-    OpCopyLogical = 400,\r
-    OpPtrEqual = 401,\r
-    OpPtrNotEqual = 402,\r
-    OpPtrDiff = 403,\r
-    OpTerminateInvocation = 4416,\r
-    OpSubgroupBallotKHR = 4421,\r
-    OpSubgroupFirstInvocationKHR = 4422,\r
-    OpSubgroupAllKHR = 4428,\r
-    OpSubgroupAnyKHR = 4429,\r
-    OpSubgroupAllEqualKHR = 4430,\r
-    OpSubgroupReadInvocationKHR = 4432,\r
-    OpTraceRayKHR = 4445,\r
-    OpExecuteCallableKHR = 4446,\r
-    OpConvertUToAccelerationStructureKHR = 4447,\r
-    OpIgnoreIntersectionKHR = 4448,\r
-    OpTerminateRayKHR = 4449,\r
-    OpSDot = 4450,\r
-    OpSDotKHR = 4450,\r
-    OpUDot = 4451,\r
-    OpUDotKHR = 4451,\r
-    OpSUDot = 4452,\r
-    OpSUDotKHR = 4452,\r
-    OpSDotAccSat = 4453,\r
-    OpSDotAccSatKHR = 4453,\r
-    OpUDotAccSat = 4454,\r
-    OpUDotAccSatKHR = 4454,\r
-    OpSUDotAccSat = 4455,\r
-    OpSUDotAccSatKHR = 4455,\r
-    OpTypeRayQueryKHR = 4472,\r
-    OpRayQueryInitializeKHR = 4473,\r
-    OpRayQueryTerminateKHR = 4474,\r
-    OpRayQueryGenerateIntersectionKHR = 4475,\r
-    OpRayQueryConfirmIntersectionKHR = 4476,\r
-    OpRayQueryProceedKHR = 4477,\r
-    OpRayQueryGetIntersectionTypeKHR = 4479,\r
-    OpGroupIAddNonUniformAMD = 5000,\r
-    OpGroupFAddNonUniformAMD = 5001,\r
-    OpGroupFMinNonUniformAMD = 5002,\r
-    OpGroupUMinNonUniformAMD = 5003,\r
-    OpGroupSMinNonUniformAMD = 5004,\r
-    OpGroupFMaxNonUniformAMD = 5005,\r
-    OpGroupUMaxNonUniformAMD = 5006,\r
-    OpGroupSMaxNonUniformAMD = 5007,\r
-    OpFragmentMaskFetchAMD = 5011,\r
-    OpFragmentFetchAMD = 5012,\r
-    OpReadClockKHR = 5056,\r
-    OpImageSampleFootprintNV = 5283,\r
-    OpEmitMeshTasksEXT = 5294,\r
-    OpSetMeshOutputsEXT = 5295,\r
-    OpGroupNonUniformPartitionNV = 5296,\r
-    OpWritePackedPrimitiveIndices4x8NV = 5299,\r
-    OpReportIntersectionKHR = 5334,\r
-    OpReportIntersectionNV = 5334,\r
-    OpIgnoreIntersectionNV = 5335,\r
-    OpTerminateRayNV = 5336,\r
-    OpTraceNV = 5337,\r
-    OpTraceMotionNV = 5338,\r
-    OpTraceRayMotionNV = 5339,\r
-    OpTypeAccelerationStructureKHR = 5341,\r
-    OpTypeAccelerationStructureNV = 5341,\r
-    OpExecuteCallableNV = 5344,\r
-    OpTypeCooperativeMatrixNV = 5358,\r
-    OpCooperativeMatrixLoadNV = 5359,\r
-    OpCooperativeMatrixStoreNV = 5360,\r
-    OpCooperativeMatrixMulAddNV = 5361,\r
-    OpCooperativeMatrixLengthNV = 5362,\r
-    OpBeginInvocationInterlockEXT = 5364,\r
-    OpEndInvocationInterlockEXT = 5365,\r
-    OpDemoteToHelperInvocation = 5380,\r
-    OpDemoteToHelperInvocationEXT = 5380,\r
-    OpIsHelperInvocationEXT = 5381,\r
-    OpConvertUToImageNV = 5391,\r
-    OpConvertUToSamplerNV = 5392,\r
-    OpConvertImageToUNV = 5393,\r
-    OpConvertSamplerToUNV = 5394,\r
-    OpConvertUToSampledImageNV = 5395,\r
-    OpConvertSampledImageToUNV = 5396,\r
-    OpSamplerImageAddressingModeNV = 5397,\r
-    OpSubgroupShuffleINTEL = 5571,\r
-    OpSubgroupShuffleDownINTEL = 5572,\r
-    OpSubgroupShuffleUpINTEL = 5573,\r
-    OpSubgroupShuffleXorINTEL = 5574,\r
-    OpSubgroupBlockReadINTEL = 5575,\r
-    OpSubgroupBlockWriteINTEL = 5576,\r
-    OpSubgroupImageBlockReadINTEL = 5577,\r
-    OpSubgroupImageBlockWriteINTEL = 5578,\r
-    OpSubgroupImageMediaBlockReadINTEL = 5580,\r
-    OpSubgroupImageMediaBlockWriteINTEL = 5581,\r
-    OpUCountLeadingZerosINTEL = 5585,\r
-    OpUCountTrailingZerosINTEL = 5586,\r
-    OpAbsISubINTEL = 5587,\r
-    OpAbsUSubINTEL = 5588,\r
-    OpIAddSatINTEL = 5589,\r
-    OpUAddSatINTEL = 5590,\r
-    OpIAverageINTEL = 5591,\r
-    OpUAverageINTEL = 5592,\r
-    OpIAverageRoundedINTEL = 5593,\r
-    OpUAverageRoundedINTEL = 5594,\r
-    OpISubSatINTEL = 5595,\r
-    OpUSubSatINTEL = 5596,\r
-    OpIMul32x16INTEL = 5597,\r
-    OpUMul32x16INTEL = 5598,\r
-    OpConstantFunctionPointerINTEL = 5600,\r
-    OpFunctionPointerCallINTEL = 5601,\r
-    OpAsmTargetINTEL = 5609,\r
-    OpAsmINTEL = 5610,\r
-    OpAsmCallINTEL = 5611,\r
-    OpAtomicFMinEXT = 5614,\r
-    OpAtomicFMaxEXT = 5615,\r
-    OpAssumeTrueKHR = 5630,\r
-    OpExpectKHR = 5631,\r
-    OpDecorateString = 5632,\r
-    OpDecorateStringGOOGLE = 5632,\r
-    OpMemberDecorateString = 5633,\r
-    OpMemberDecorateStringGOOGLE = 5633,\r
-    OpVmeImageINTEL = 5699,\r
-    OpTypeVmeImageINTEL = 5700,\r
-    OpTypeAvcImePayloadINTEL = 5701,\r
-    OpTypeAvcRefPayloadINTEL = 5702,\r
-    OpTypeAvcSicPayloadINTEL = 5703,\r
-    OpTypeAvcMcePayloadINTEL = 5704,\r
-    OpTypeAvcMceResultINTEL = 5705,\r
-    OpTypeAvcImeResultINTEL = 5706,\r
-    OpTypeAvcImeResultSingleReferenceStreamoutINTEL = 5707,\r
-    OpTypeAvcImeResultDualReferenceStreamoutINTEL = 5708,\r
-    OpTypeAvcImeSingleReferenceStreaminINTEL = 5709,\r
-    OpTypeAvcImeDualReferenceStreaminINTEL = 5710,\r
-    OpTypeAvcRefResultINTEL = 5711,\r
-    OpTypeAvcSicResultINTEL = 5712,\r
-    OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL = 5713,\r
-    OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL = 5714,\r
-    OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL = 5715,\r
-    OpSubgroupAvcMceSetInterShapePenaltyINTEL = 5716,\r
-    OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL = 5717,\r
-    OpSubgroupAvcMceSetInterDirectionPenaltyINTEL = 5718,\r
-    OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL = 5719,\r
-    OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL = 5720,\r
-    OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL = 5721,\r
-    OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL = 5722,\r
-    OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL = 5723,\r
-    OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL = 5724,\r
-    OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL = 5725,\r
-    OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL = 5726,\r
-    OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL = 5727,\r
-    OpSubgroupAvcMceSetAcOnlyHaarINTEL = 5728,\r
-    OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL = 5729,\r
-    OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL = 5730,\r
-    OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL = 5731,\r
-    OpSubgroupAvcMceConvertToImePayloadINTEL = 5732,\r
-    OpSubgroupAvcMceConvertToImeResultINTEL = 5733,\r
-    OpSubgroupAvcMceConvertToRefPayloadINTEL = 5734,\r
-    OpSubgroupAvcMceConvertToRefResultINTEL = 5735,\r
-    OpSubgroupAvcMceConvertToSicPayloadINTEL = 5736,\r
-    OpSubgroupAvcMceConvertToSicResultINTEL = 5737,\r
-    OpSubgroupAvcMceGetMotionVectorsINTEL = 5738,\r
-    OpSubgroupAvcMceGetInterDistortionsINTEL = 5739,\r
-    OpSubgroupAvcMceGetBestInterDistortionsINTEL = 5740,\r
-    OpSubgroupAvcMceGetInterMajorShapeINTEL = 5741,\r
-    OpSubgroupAvcMceGetInterMinorShapeINTEL = 5742,\r
-    OpSubgroupAvcMceGetInterDirectionsINTEL = 5743,\r
-    OpSubgroupAvcMceGetInterMotionVectorCountINTEL = 5744,\r
-    OpSubgroupAvcMceGetInterReferenceIdsINTEL = 5745,\r
-    OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL = 5746,\r
-    OpSubgroupAvcImeInitializeINTEL = 5747,\r
-    OpSubgroupAvcImeSetSingleReferenceINTEL = 5748,\r
-    OpSubgroupAvcImeSetDualReferenceINTEL = 5749,\r
-    OpSubgroupAvcImeRefWindowSizeINTEL = 5750,\r
-    OpSubgroupAvcImeAdjustRefOffsetINTEL = 5751,\r
-    OpSubgroupAvcImeConvertToMcePayloadINTEL = 5752,\r
-    OpSubgroupAvcImeSetMaxMotionVectorCountINTEL = 5753,\r
-    OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL = 5754,\r
-    OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL = 5755,\r
-    OpSubgroupAvcImeSetWeightedSadINTEL = 5756,\r
-    OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL = 5757,\r
-    OpSubgroupAvcImeEvaluateWithDualReferenceINTEL = 5758,\r
-    OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL = 5759,\r
-    OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL = 5760,\r
-    OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL = 5761,\r
-    OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL = 5762,\r
-    OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL = 5763,\r
-    OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL = 5764,\r
-    OpSubgroupAvcImeConvertToMceResultINTEL = 5765,\r
-    OpSubgroupAvcImeGetSingleReferenceStreaminINTEL = 5766,\r
-    OpSubgroupAvcImeGetDualReferenceStreaminINTEL = 5767,\r
-    OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL = 5768,\r
-    OpSubgroupAvcImeStripDualReferenceStreamoutINTEL = 5769,\r
-    OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL = 5770,\r
-    OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL = 5771,\r
-    OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL = 5772,\r
-    OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL = 5773,\r
-    OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL = 5774,\r
-    OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL = 5775,\r
-    OpSubgroupAvcImeGetBorderReachedINTEL = 5776,\r
-    OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL = 5777,\r
-    OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL = 5778,\r
-    OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL = 5779,\r
-    OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL = 5780,\r
-    OpSubgroupAvcFmeInitializeINTEL = 5781,\r
-    OpSubgroupAvcBmeInitializeINTEL = 5782,\r
-    OpSubgroupAvcRefConvertToMcePayloadINTEL = 5783,\r
-    OpSubgroupAvcRefSetBidirectionalMixDisableINTEL = 5784,\r
-    OpSubgroupAvcRefSetBilinearFilterEnableINTEL = 5785,\r
-    OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL = 5786,\r
-    OpSubgroupAvcRefEvaluateWithDualReferenceINTEL = 5787,\r
-    OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL = 5788,\r
-    OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL = 5789,\r
-    OpSubgroupAvcRefConvertToMceResultINTEL = 5790,\r
-    OpSubgroupAvcSicInitializeINTEL = 5791,\r
-    OpSubgroupAvcSicConfigureSkcINTEL = 5792,\r
-    OpSubgroupAvcSicConfigureIpeLumaINTEL = 5793,\r
-    OpSubgroupAvcSicConfigureIpeLumaChromaINTEL = 5794,\r
-    OpSubgroupAvcSicGetMotionVectorMaskINTEL = 5795,\r
-    OpSubgroupAvcSicConvertToMcePayloadINTEL = 5796,\r
-    OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL = 5797,\r
-    OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL = 5798,\r
-    OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL = 5799,\r
-    OpSubgroupAvcSicSetBilinearFilterEnableINTEL = 5800,\r
-    OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL = 5801,\r
-    OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL = 5802,\r
-    OpSubgroupAvcSicEvaluateIpeINTEL = 5803,\r
-    OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL = 5804,\r
-    OpSubgroupAvcSicEvaluateWithDualReferenceINTEL = 5805,\r
-    OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL = 5806,\r
-    OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL = 5807,\r
-    OpSubgroupAvcSicConvertToMceResultINTEL = 5808,\r
-    OpSubgroupAvcSicGetIpeLumaShapeINTEL = 5809,\r
-    OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL = 5810,\r
-    OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL = 5811,\r
-    OpSubgroupAvcSicGetPackedIpeLumaModesINTEL = 5812,\r
-    OpSubgroupAvcSicGetIpeChromaModeINTEL = 5813,\r
-    OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL = 5814,\r
-    OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL = 5815,\r
-    OpSubgroupAvcSicGetInterRawSadsINTEL = 5816,\r
-    OpVariableLengthArrayINTEL = 5818,\r
-    OpSaveMemoryINTEL = 5819,\r
-    OpRestoreMemoryINTEL = 5820,\r
-    OpArbitraryFloatSinCosPiINTEL = 5840,\r
-    OpArbitraryFloatCastINTEL = 5841,\r
-    OpArbitraryFloatCastFromIntINTEL = 5842,\r
-    OpArbitraryFloatCastToIntINTEL = 5843,\r
-    OpArbitraryFloatAddINTEL = 5846,\r
-    OpArbitraryFloatSubINTEL = 5847,\r
-    OpArbitraryFloatMulINTEL = 5848,\r
-    OpArbitraryFloatDivINTEL = 5849,\r
-    OpArbitraryFloatGTINTEL = 5850,\r
-    OpArbitraryFloatGEINTEL = 5851,\r
-    OpArbitraryFloatLTINTEL = 5852,\r
-    OpArbitraryFloatLEINTEL = 5853,\r
-    OpArbitraryFloatEQINTEL = 5854,\r
-    OpArbitraryFloatRecipINTEL = 5855,\r
-    OpArbitraryFloatRSqrtINTEL = 5856,\r
-    OpArbitraryFloatCbrtINTEL = 5857,\r
-    OpArbitraryFloatHypotINTEL = 5858,\r
-    OpArbitraryFloatSqrtINTEL = 5859,\r
-    OpArbitraryFloatLogINTEL = 5860,\r
-    OpArbitraryFloatLog2INTEL = 5861,\r
-    OpArbitraryFloatLog10INTEL = 5862,\r
-    OpArbitraryFloatLog1pINTEL = 5863,\r
-    OpArbitraryFloatExpINTEL = 5864,\r
-    OpArbitraryFloatExp2INTEL = 5865,\r
-    OpArbitraryFloatExp10INTEL = 5866,\r
-    OpArbitraryFloatExpm1INTEL = 5867,\r
-    OpArbitraryFloatSinINTEL = 5868,\r
-    OpArbitraryFloatCosINTEL = 5869,\r
-    OpArbitraryFloatSinCosINTEL = 5870,\r
-    OpArbitraryFloatSinPiINTEL = 5871,\r
-    OpArbitraryFloatCosPiINTEL = 5872,\r
-    OpArbitraryFloatASinINTEL = 5873,\r
-    OpArbitraryFloatASinPiINTEL = 5874,\r
-    OpArbitraryFloatACosINTEL = 5875,\r
-    OpArbitraryFloatACosPiINTEL = 5876,\r
-    OpArbitraryFloatATanINTEL = 5877,\r
-    OpArbitraryFloatATanPiINTEL = 5878,\r
-    OpArbitraryFloatATan2INTEL = 5879,\r
-    OpArbitraryFloatPowINTEL = 5880,\r
-    OpArbitraryFloatPowRINTEL = 5881,\r
-    OpArbitraryFloatPowNINTEL = 5882,\r
-    OpLoopControlINTEL = 5887,\r
-    OpFixedSqrtINTEL = 5923,\r
-    OpFixedRecipINTEL = 5924,\r
-    OpFixedRsqrtINTEL = 5925,\r
-    OpFixedSinINTEL = 5926,\r
-    OpFixedCosINTEL = 5927,\r
-    OpFixedSinCosINTEL = 5928,\r
-    OpFixedSinPiINTEL = 5929,\r
-    OpFixedCosPiINTEL = 5930,\r
-    OpFixedSinCosPiINTEL = 5931,\r
-    OpFixedLogINTEL = 5932,\r
-    OpFixedExpINTEL = 5933,\r
-    OpPtrCastToCrossWorkgroupINTEL = 5934,\r
-    OpCrossWorkgroupCastToPtrINTEL = 5938,\r
-    OpReadPipeBlockingINTEL = 5946,\r
-    OpWritePipeBlockingINTEL = 5947,\r
-    OpFPGARegINTEL = 5949,\r
-    OpRayQueryGetRayTMinKHR = 6016,\r
-    OpRayQueryGetRayFlagsKHR = 6017,\r
-    OpRayQueryGetIntersectionTKHR = 6018,\r
-    OpRayQueryGetIntersectionInstanceCustomIndexKHR = 6019,\r
-    OpRayQueryGetIntersectionInstanceIdKHR = 6020,\r
-    OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR = 6021,\r
-    OpRayQueryGetIntersectionGeometryIndexKHR = 6022,\r
-    OpRayQueryGetIntersectionPrimitiveIndexKHR = 6023,\r
-    OpRayQueryGetIntersectionBarycentricsKHR = 6024,\r
-    OpRayQueryGetIntersectionFrontFaceKHR = 6025,\r
-    OpRayQueryGetIntersectionCandidateAABBOpaqueKHR = 6026,\r
-    OpRayQueryGetIntersectionObjectRayDirectionKHR = 6027,\r
-    OpRayQueryGetIntersectionObjectRayOriginKHR = 6028,\r
-    OpRayQueryGetWorldRayDirectionKHR = 6029,\r
-    OpRayQueryGetWorldRayOriginKHR = 6030,\r
-    OpRayQueryGetIntersectionObjectToWorldKHR = 6031,\r
-    OpRayQueryGetIntersectionWorldToObjectKHR = 6032,\r
-    OpAtomicFAddEXT = 6035,\r
-    OpTypeBufferSurfaceINTEL = 6086,\r
-    OpTypeStructContinuedINTEL = 6090,\r
-    OpConstantCompositeContinuedINTEL = 6091,\r
-    OpSpecConstantCompositeContinuedINTEL = 6092,\r
-    OpMax = 0x7fffffff,\r
-};\r
-\r
-#ifdef SPV_ENABLE_UTILITY_CODE\r
-inline void HasResultAndType(Op opcode, bool *hasResult, bool *hasResultType) {\r
-    *hasResult = *hasResultType = false;\r
-    switch (opcode) {\r
-    default: /* unknown opcode */ break;\r
-    case OpNop: *hasResult = false; *hasResultType = false; break;\r
-    case OpUndef: *hasResult = true; *hasResultType = true; break;\r
-    case OpSourceContinued: *hasResult = false; *hasResultType = false; break;\r
-    case OpSource: *hasResult = false; *hasResultType = false; break;\r
-    case OpSourceExtension: *hasResult = false; *hasResultType = false; break;\r
-    case OpName: *hasResult = false; *hasResultType = false; break;\r
-    case OpMemberName: *hasResult = false; *hasResultType = false; break;\r
-    case OpString: *hasResult = true; *hasResultType = false; break;\r
-    case OpLine: *hasResult = false; *hasResultType = false; break;\r
-    case OpExtension: *hasResult = false; *hasResultType = false; break;\r
-    case OpExtInstImport: *hasResult = true; *hasResultType = false; break;\r
-    case OpExtInst: *hasResult = true; *hasResultType = true; break;\r
-    case OpMemoryModel: *hasResult = false; *hasResultType = false; break;\r
-    case OpEntryPoint: *hasResult = false; *hasResultType = false; break;\r
-    case OpExecutionMode: *hasResult = false; *hasResultType = false; break;\r
-    case OpCapability: *hasResult = false; *hasResultType = false; break;\r
-    case OpTypeVoid: *hasResult = true; *hasResultType = false; break;\r
-    case OpTypeBool: *hasResult = true; *hasResultType = false; break;\r
-    case OpTypeInt: *hasResult = true; *hasResultType = false; break;\r
-    case OpTypeFloat: *hasResult = true; *hasResultType = false; break;\r
-    case OpTypeVector: *hasResult = true; *hasResultType = false; break;\r
-    case OpTypeMatrix: *hasResult = true; *hasResultType = false; break;\r
-    case OpTypeImage: *hasResult = true; *hasResultType = false; break;\r
-    case OpTypeSampler: *hasResult = true; *hasResultType = false; break;\r
-    case OpTypeSampledImage: *hasResult = true; *hasResultType = false; break;\r
-    case OpTypeArray: *hasResult = true; *hasResultType = false; break;\r
-    case OpTypeRuntimeArray: *hasResult = true; *hasResultType = false; break;\r
-    case OpTypeStruct: *hasResult = true; *hasResultType = false; break;\r
-    case OpTypeOpaque: *hasResult = true; *hasResultType = false; break;\r
-    case OpTypePointer: *hasResult = true; *hasResultType = false; break;\r
-    case OpTypeFunction: *hasResult = true; *hasResultType = false; break;\r
-    case OpTypeEvent: *hasResult = true; *hasResultType = false; break;\r
-    case OpTypeDeviceEvent: *hasResult = true; *hasResultType = false; break;\r
-    case OpTypeReserveId: *hasResult = true; *hasResultType = false; break;\r
-    case OpTypeQueue: *hasResult = true; *hasResultType = false; break;\r
-    case OpTypePipe: *hasResult = true; *hasResultType = false; break;\r
-    case OpTypeForwardPointer: *hasResult = false; *hasResultType = false; break;\r
-    case OpConstantTrue: *hasResult = true; *hasResultType = true; break;\r
-    case OpConstantFalse: *hasResult = true; *hasResultType = true; break;\r
-    case OpConstant: *hasResult = true; *hasResultType = true; break;\r
-    case OpConstantComposite: *hasResult = true; *hasResultType = true; break;\r
-    case OpConstantSampler: *hasResult = true; *hasResultType = true; break;\r
-    case OpConstantNull: *hasResult = true; *hasResultType = true; break;\r
-    case OpSpecConstantTrue: *hasResult = true; *hasResultType = true; break;\r
-    case OpSpecConstantFalse: *hasResult = true; *hasResultType = true; break;\r
-    case OpSpecConstant: *hasResult = true; *hasResultType = true; break;\r
-    case OpSpecConstantComposite: *hasResult = true; *hasResultType = true; break;\r
-    case OpSpecConstantOp: *hasResult = true; *hasResultType = true; break;\r
-    case OpFunction: *hasResult = true; *hasResultType = true; break;\r
-    case OpFunctionParameter: *hasResult = true; *hasResultType = true; break;\r
-    case OpFunctionEnd: *hasResult = false; *hasResultType = false; break;\r
-    case OpFunctionCall: *hasResult = true; *hasResultType = true; break;\r
-    case OpVariable: *hasResult = true; *hasResultType = true; break;\r
-    case OpImageTexelPointer: *hasResult = true; *hasResultType = true; break;\r
-    case OpLoad: *hasResult = true; *hasResultType = true; break;\r
-    case OpStore: *hasResult = false; *hasResultType = false; break;\r
-    case OpCopyMemory: *hasResult = false; *hasResultType = false; break;\r
-    case OpCopyMemorySized: *hasResult = false; *hasResultType = false; break;\r
-    case OpAccessChain: *hasResult = true; *hasResultType = true; break;\r
-    case OpInBoundsAccessChain: *hasResult = true; *hasResultType = true; break;\r
-    case OpPtrAccessChain: *hasResult = true; *hasResultType = true; break;\r
-    case OpArrayLength: *hasResult = true; *hasResultType = true; break;\r
-    case OpGenericPtrMemSemantics: *hasResult = true; *hasResultType = true; break;\r
-    case OpInBoundsPtrAccessChain: *hasResult = true; *hasResultType = true; break;\r
-    case OpDecorate: *hasResult = false; *hasResultType = false; break;\r
-    case OpMemberDecorate: *hasResult = false; *hasResultType = false; break;\r
-    case OpDecorationGroup: *hasResult = true; *hasResultType = false; break;\r
-    case OpGroupDecorate: *hasResult = false; *hasResultType = false; break;\r
-    case OpGroupMemberDecorate: *hasResult = false; *hasResultType = false; break;\r
-    case OpVectorExtractDynamic: *hasResult = true; *hasResultType = true; break;\r
-    case OpVectorInsertDynamic: *hasResult = true; *hasResultType = true; break;\r
-    case OpVectorShuffle: *hasResult = true; *hasResultType = true; break;\r
-    case OpCompositeConstruct: *hasResult = true; *hasResultType = true; break;\r
-    case OpCompositeExtract: *hasResult = true; *hasResultType = true; break;\r
-    case OpCompositeInsert: *hasResult = true; *hasResultType = true; break;\r
-    case OpCopyObject: *hasResult = true; *hasResultType = true; break;\r
-    case OpTranspose: *hasResult = true; *hasResultType = true; break;\r
-    case OpSampledImage: *hasResult = true; *hasResultType = true; break;\r
-    case OpImageSampleImplicitLod: *hasResult = true; *hasResultType = true; break;\r
-    case OpImageSampleExplicitLod: *hasResult = true; *hasResultType = true; break;\r
-    case OpImageSampleDrefImplicitLod: *hasResult = true; *hasResultType = true; break;\r
-    case OpImageSampleDrefExplicitLod: *hasResult = true; *hasResultType = true; break;\r
-    case OpImageSampleProjImplicitLod: *hasResult = true; *hasResultType = true; break;\r
-    case OpImageSampleProjExplicitLod: *hasResult = true; *hasResultType = true; break;\r
-    case OpImageSampleProjDrefImplicitLod: *hasResult = true; *hasResultType = true; break;\r
-    case OpImageSampleProjDrefExplicitLod: *hasResult = true; *hasResultType = true; break;\r
-    case OpImageFetch: *hasResult = true; *hasResultType = true; break;\r
-    case OpImageGather: *hasResult = true; *hasResultType = true; break;\r
-    case OpImageDrefGather: *hasResult = true; *hasResultType = true; break;\r
-    case OpImageRead: *hasResult = true; *hasResultType = true; break;\r
-    case OpImageWrite: *hasResult = false; *hasResultType = false; break;\r
-    case OpImage: *hasResult = true; *hasResultType = true; break;\r
-    case OpImageQueryFormat: *hasResult = true; *hasResultType = true; break;\r
-    case OpImageQueryOrder: *hasResult = true; *hasResultType = true; break;\r
-    case OpImageQuerySizeLod: *hasResult = true; *hasResultType = true; break;\r
-    case OpImageQuerySize: *hasResult = true; *hasResultType = true; break;\r
-    case OpImageQueryLod: *hasResult = true; *hasResultType = true; break;\r
-    case OpImageQueryLevels: *hasResult = true; *hasResultType = true; break;\r
-    case OpImageQuerySamples: *hasResult = true; *hasResultType = true; break;\r
-    case OpConvertFToU: *hasResult = true; *hasResultType = true; break;\r
-    case OpConvertFToS: *hasResult = true; *hasResultType = true; break;\r
-    case OpConvertSToF: *hasResult = true; *hasResultType = true; break;\r
-    case OpConvertUToF: *hasResult = true; *hasResultType = true; break;\r
-    case OpUConvert: *hasResult = true; *hasResultType = true; break;\r
-    case OpSConvert: *hasResult = true; *hasResultType = true; break;\r
-    case OpFConvert: *hasResult = true; *hasResultType = true; break;\r
-    case OpQuantizeToF16: *hasResult = true; *hasResultType = true; break;\r
-    case OpConvertPtrToU: *hasResult = true; *hasResultType = true; break;\r
-    case OpSatConvertSToU: *hasResult = true; *hasResultType = true; break;\r
-    case OpSatConvertUToS: *hasResult = true; *hasResultType = true; break;\r
-    case OpConvertUToPtr: *hasResult = true; *hasResultType = true; break;\r
-    case OpPtrCastToGeneric: *hasResult = true; *hasResultType = true; break;\r
-    case OpGenericCastToPtr: *hasResult = true; *hasResultType = true; break;\r
-    case OpGenericCastToPtrExplicit: *hasResult = true; *hasResultType = true; break;\r
-    case OpBitcast: *hasResult = true; *hasResultType = true; break;\r
-    case OpSNegate: *hasResult = true; *hasResultType = true; break;\r
-    case OpFNegate: *hasResult = true; *hasResultType = true; break;\r
-    case OpIAdd: *hasResult = true; *hasResultType = true; break;\r
-    case OpFAdd: *hasResult = true; *hasResultType = true; break;\r
-    case OpISub: *hasResult = true; *hasResultType = true; break;\r
-    case OpFSub: *hasResult = true; *hasResultType = true; break;\r
-    case OpIMul: *hasResult = true; *hasResultType = true; break;\r
-    case OpFMul: *hasResult = true; *hasResultType = true; break;\r
-    case OpUDiv: *hasResult = true; *hasResultType = true; break;\r
-    case OpSDiv: *hasResult = true; *hasResultType = true; break;\r
-    case OpFDiv: *hasResult = true; *hasResultType = true; break;\r
-    case OpUMod: *hasResult = true; *hasResultType = true; break;\r
-    case OpSRem: *hasResult = true; *hasResultType = true; break;\r
-    case OpSMod: *hasResult = true; *hasResultType = true; break;\r
-    case OpFRem: *hasResult = true; *hasResultType = true; break;\r
-    case OpFMod: *hasResult = true; *hasResultType = true; break;\r
-    case OpVectorTimesScalar: *hasResult = true; *hasResultType = true; break;\r
-    case OpMatrixTimesScalar: *hasResult = true; *hasResultType = true; break;\r
-    case OpVectorTimesMatrix: *hasResult = true; *hasResultType = true; break;\r
-    case OpMatrixTimesVector: *hasResult = true; *hasResultType = true; break;\r
-    case OpMatrixTimesMatrix: *hasResult = true; *hasResultType = true; break;\r
-    case OpOuterProduct: *hasResult = true; *hasResultType = true; break;\r
-    case OpDot: *hasResult = true; *hasResultType = true; break;\r
-    case OpIAddCarry: *hasResult = true; *hasResultType = true; break;\r
-    case OpISubBorrow: *hasResult = true; *hasResultType = true; break;\r
-    case OpUMulExtended: *hasResult = true; *hasResultType = true; break;\r
-    case OpSMulExtended: *hasResult = true; *hasResultType = true; break;\r
-    case OpAny: *hasResult = true; *hasResultType = true; break;\r
-    case OpAll: *hasResult = true; *hasResultType = true; break;\r
-    case OpIsNan: *hasResult = true; *hasResultType = true; break;\r
-    case OpIsInf: *hasResult = true; *hasResultType = true; break;\r
-    case OpIsFinite: *hasResult = true; *hasResultType = true; break;\r
-    case OpIsNormal: *hasResult = true; *hasResultType = true; break;\r
-    case OpSignBitSet: *hasResult = true; *hasResultType = true; break;\r
-    case OpLessOrGreater: *hasResult = true; *hasResultType = true; break;\r
-    case OpOrdered: *hasResult = true; *hasResultType = true; break;\r
-    case OpUnordered: *hasResult = true; *hasResultType = true; break;\r
-    case OpLogicalEqual: *hasResult = true; *hasResultType = true; break;\r
-    case OpLogicalNotEqual: *hasResult = true; *hasResultType = true; break;\r
-    case OpLogicalOr: *hasResult = true; *hasResultType = true; break;\r
-    case OpLogicalAnd: *hasResult = true; *hasResultType = true; break;\r
-    case OpLogicalNot: *hasResult = true; *hasResultType = true; break;\r
-    case OpSelect: *hasResult = true; *hasResultType = true; break;\r
-    case OpIEqual: *hasResult = true; *hasResultType = true; break;\r
-    case OpINotEqual: *hasResult = true; *hasResultType = true; break;\r
-    case OpUGreaterThan: *hasResult = true; *hasResultType = true; break;\r
-    case OpSGreaterThan: *hasResult = true; *hasResultType = true; break;\r
-    case OpUGreaterThanEqual: *hasResult = true; *hasResultType = true; break;\r
-    case OpSGreaterThanEqual: *hasResult = true; *hasResultType = true; break;\r
-    case OpULessThan: *hasResult = true; *hasResultType = true; break;\r
-    case OpSLessThan: *hasResult = true; *hasResultType = true; break;\r
-    case OpULessThanEqual: *hasResult = true; *hasResultType = true; break;\r
-    case OpSLessThanEqual: *hasResult = true; *hasResultType = true; break;\r
-    case OpFOrdEqual: *hasResult = true; *hasResultType = true; break;\r
-    case OpFUnordEqual: *hasResult = true; *hasResultType = true; break;\r
-    case OpFOrdNotEqual: *hasResult = true; *hasResultType = true; break;\r
-    case OpFUnordNotEqual: *hasResult = true; *hasResultType = true; break;\r
-    case OpFOrdLessThan: *hasResult = true; *hasResultType = true; break;\r
-    case OpFUnordLessThan: *hasResult = true; *hasResultType = true; break;\r
-    case OpFOrdGreaterThan: *hasResult = true; *hasResultType = true; break;\r
-    case OpFUnordGreaterThan: *hasResult = true; *hasResultType = true; break;\r
-    case OpFOrdLessThanEqual: *hasResult = true; *hasResultType = true; break;\r
-    case OpFUnordLessThanEqual: *hasResult = true; *hasResultType = true; break;\r
-    case OpFOrdGreaterThanEqual: *hasResult = true; *hasResultType = true; break;\r
-    case OpFUnordGreaterThanEqual: *hasResult = true; *hasResultType = true; break;\r
-    case OpShiftRightLogical: *hasResult = true; *hasResultType = true; break;\r
-    case OpShiftRightArithmetic: *hasResult = true; *hasResultType = true; break;\r
-    case OpShiftLeftLogical: *hasResult = true; *hasResultType = true; break;\r
-    case OpBitwiseOr: *hasResult = true; *hasResultType = true; break;\r
-    case OpBitwiseXor: *hasResult = true; *hasResultType = true; break;\r
-    case OpBitwiseAnd: *hasResult = true; *hasResultType = true; break;\r
-    case OpNot: *hasResult = true; *hasResultType = true; break;\r
-    case OpBitFieldInsert: *hasResult = true; *hasResultType = true; break;\r
-    case OpBitFieldSExtract: *hasResult = true; *hasResultType = true; break;\r
-    case OpBitFieldUExtract: *hasResult = true; *hasResultType = true; break;\r
-    case OpBitReverse: *hasResult = true; *hasResultType = true; break;\r
-    case OpBitCount: *hasResult = true; *hasResultType = true; break;\r
-    case OpDPdx: *hasResult = true; *hasResultType = true; break;\r
-    case OpDPdy: *hasResult = true; *hasResultType = true; break;\r
-    case OpFwidth: *hasResult = true; *hasResultType = true; break;\r
-    case OpDPdxFine: *hasResult = true; *hasResultType = true; break;\r
-    case OpDPdyFine: *hasResult = true; *hasResultType = true; break;\r
-    case OpFwidthFine: *hasResult = true; *hasResultType = true; break;\r
-    case OpDPdxCoarse: *hasResult = true; *hasResultType = true; break;\r
-    case OpDPdyCoarse: *hasResult = true; *hasResultType = true; break;\r
-    case OpFwidthCoarse: *hasResult = true; *hasResultType = true; break;\r
-    case OpEmitVertex: *hasResult = false; *hasResultType = false; break;\r
-    case OpEndPrimitive: *hasResult = false; *hasResultType = false; break;\r
-    case OpEmitStreamVertex: *hasResult = false; *hasResultType = false; break;\r
-    case OpEndStreamPrimitive: *hasResult = false; *hasResultType = false; break;\r
-    case OpControlBarrier: *hasResult = false; *hasResultType = false; break;\r
-    case OpMemoryBarrier: *hasResult = false; *hasResultType = false; break;\r
-    case OpAtomicLoad: *hasResult = true; *hasResultType = true; break;\r
-    case OpAtomicStore: *hasResult = false; *hasResultType = false; break;\r
-    case OpAtomicExchange: *hasResult = true; *hasResultType = true; break;\r
-    case OpAtomicCompareExchange: *hasResult = true; *hasResultType = true; break;\r
-    case OpAtomicCompareExchangeWeak: *hasResult = true; *hasResultType = true; break;\r
-    case OpAtomicIIncrement: *hasResult = true; *hasResultType = true; break;\r
-    case OpAtomicIDecrement: *hasResult = true; *hasResultType = true; break;\r
-    case OpAtomicIAdd: *hasResult = true; *hasResultType = true; break;\r
-    case OpAtomicISub: *hasResult = true; *hasResultType = true; break;\r
-    case OpAtomicSMin: *hasResult = true; *hasResultType = true; break;\r
-    case OpAtomicUMin: *hasResult = true; *hasResultType = true; break;\r
-    case OpAtomicSMax: *hasResult = true; *hasResultType = true; break;\r
-    case OpAtomicUMax: *hasResult = true; *hasResultType = true; break;\r
-    case OpAtomicAnd: *hasResult = true; *hasResultType = true; break;\r
-    case OpAtomicOr: *hasResult = true; *hasResultType = true; break;\r
-    case OpAtomicXor: *hasResult = true; *hasResultType = true; break;\r
-    case OpPhi: *hasResult = true; *hasResultType = true; break;\r
-    case OpLoopMerge: *hasResult = false; *hasResultType = false; break;\r
-    case OpSelectionMerge: *hasResult = false; *hasResultType = false; break;\r
-    case OpLabel: *hasResult = true; *hasResultType = false; break;\r
-    case OpBranch: *hasResult = false; *hasResultType = false; break;\r
-    case OpBranchConditional: *hasResult = false; *hasResultType = false; break;\r
-    case OpSwitch: *hasResult = false; *hasResultType = false; break;\r
-    case OpKill: *hasResult = false; *hasResultType = false; break;\r
-    case OpReturn: *hasResult = false; *hasResultType = false; break;\r
-    case OpReturnValue: *hasResult = false; *hasResultType = false; break;\r
-    case OpUnreachable: *hasResult = false; *hasResultType = false; break;\r
-    case OpLifetimeStart: *hasResult = false; *hasResultType = false; break;\r
-    case OpLifetimeStop: *hasResult = false; *hasResultType = false; break;\r
-    case OpGroupAsyncCopy: *hasResult = true; *hasResultType = true; break;\r
-    case OpGroupWaitEvents: *hasResult = false; *hasResultType = false; break;\r
-    case OpGroupAll: *hasResult = true; *hasResultType = true; break;\r
-    case OpGroupAny: *hasResult = true; *hasResultType = true; break;\r
-    case OpGroupBroadcast: *hasResult = true; *hasResultType = true; break;\r
-    case OpGroupIAdd: *hasResult = true; *hasResultType = true; break;\r
-    case OpGroupFAdd: *hasResult = true; *hasResultType = true; break;\r
-    case OpGroupFMin: *hasResult = true; *hasResultType = true; break;\r
-    case OpGroupUMin: *hasResult = true; *hasResultType = true; break;\r
-    case OpGroupSMin: *hasResult = true; *hasResultType = true; break;\r
-    case OpGroupFMax: *hasResult = true; *hasResultType = true; break;\r
-    case OpGroupUMax: *hasResult = true; *hasResultType = true; break;\r
-    case OpGroupSMax: *hasResult = true; *hasResultType = true; break;\r
-    case OpReadPipe: *hasResult = true; *hasResultType = true; break;\r
-    case OpWritePipe: *hasResult = true; *hasResultType = true; break;\r
-    case OpReservedReadPipe: *hasResult = true; *hasResultType = true; break;\r
-    case OpReservedWritePipe: *hasResult = true; *hasResultType = true; break;\r
-    case OpReserveReadPipePackets: *hasResult = true; *hasResultType = true; break;\r
-    case OpReserveWritePipePackets: *hasResult = true; *hasResultType = true; break;\r
-    case OpCommitReadPipe: *hasResult = false; *hasResultType = false; break;\r
-    case OpCommitWritePipe: *hasResult = false; *hasResultType = false; break;\r
-    case OpIsValidReserveId: *hasResult = true; *hasResultType = true; break;\r
-    case OpGetNumPipePackets: *hasResult = true; *hasResultType = true; break;\r
-    case OpGetMaxPipePackets: *hasResult = true; *hasResultType = true; break;\r
-    case OpGroupReserveReadPipePackets: *hasResult = true; *hasResultType = true; break;\r
-    case OpGroupReserveWritePipePackets: *hasResult = true; *hasResultType = true; break;\r
-    case OpGroupCommitReadPipe: *hasResult = false; *hasResultType = false; break;\r
-    case OpGroupCommitWritePipe: *hasResult = false; *hasResultType = false; break;\r
-    case OpEnqueueMarker: *hasResult = true; *hasResultType = true; break;\r
-    case OpEnqueueKernel: *hasResult = true; *hasResultType = true; break;\r
-    case OpGetKernelNDrangeSubGroupCount: *hasResult = true; *hasResultType = true; break;\r
-    case OpGetKernelNDrangeMaxSubGroupSize: *hasResult = true; *hasResultType = true; break;\r
-    case OpGetKernelWorkGroupSize: *hasResult = true; *hasResultType = true; break;\r
-    case OpGetKernelPreferredWorkGroupSizeMultiple: *hasResult = true; *hasResultType = true; break;\r
-    case OpRetainEvent: *hasResult = false; *hasResultType = false; break;\r
-    case OpReleaseEvent: *hasResult = false; *hasResultType = false; break;\r
-    case OpCreateUserEvent: *hasResult = true; *hasResultType = true; break;\r
-    case OpIsValidEvent: *hasResult = true; *hasResultType = true; break;\r
-    case OpSetUserEventStatus: *hasResult = false; *hasResultType = false; break;\r
-    case OpCaptureEventProfilingInfo: *hasResult = false; *hasResultType = false; break;\r
-    case OpGetDefaultQueue: *hasResult = true; *hasResultType = true; break;\r
-    case OpBuildNDRange: *hasResult = true; *hasResultType = true; break;\r
-    case OpImageSparseSampleImplicitLod: *hasResult = true; *hasResultType = true; break;\r
-    case OpImageSparseSampleExplicitLod: *hasResult = true; *hasResultType = true; break;\r
-    case OpImageSparseSampleDrefImplicitLod: *hasResult = true; *hasResultType = true; break;\r
-    case OpImageSparseSampleDrefExplicitLod: *hasResult = true; *hasResultType = true; break;\r
-    case OpImageSparseSampleProjImplicitLod: *hasResult = true; *hasResultType = true; break;\r
-    case OpImageSparseSampleProjExplicitLod: *hasResult = true; *hasResultType = true; break;\r
-    case OpImageSparseSampleProjDrefImplicitLod: *hasResult = true; *hasResultType = true; break;\r
-    case OpImageSparseSampleProjDrefExplicitLod: *hasResult = true; *hasResultType = true; break;\r
-    case OpImageSparseFetch: *hasResult = true; *hasResultType = true; break;\r
-    case OpImageSparseGather: *hasResult = true; *hasResultType = true; break;\r
-    case OpImageSparseDrefGather: *hasResult = true; *hasResultType = true; break;\r
-    case OpImageSparseTexelsResident: *hasResult = true; *hasResultType = true; break;\r
-    case OpNoLine: *hasResult = false; *hasResultType = false; break;\r
-    case OpAtomicFlagTestAndSet: *hasResult = true; *hasResultType = true; break;\r
-    case OpAtomicFlagClear: *hasResult = false; *hasResultType = false; break;\r
-    case OpImageSparseRead: *hasResult = true; *hasResultType = true; break;\r
-    case OpSizeOf: *hasResult = true; *hasResultType = true; break;\r
-    case OpTypePipeStorage: *hasResult = true; *hasResultType = false; break;\r
-    case OpConstantPipeStorage: *hasResult = true; *hasResultType = true; break;\r
-    case OpCreatePipeFromPipeStorage: *hasResult = true; *hasResultType = true; break;\r
-    case OpGetKernelLocalSizeForSubgroupCount: *hasResult = true; *hasResultType = true; break;\r
-    case OpGetKernelMaxNumSubgroups: *hasResult = true; *hasResultType = true; break;\r
-    case OpTypeNamedBarrier: *hasResult = true; *hasResultType = false; break;\r
-    case OpNamedBarrierInitialize: *hasResult = true; *hasResultType = true; break;\r
-    case OpMemoryNamedBarrier: *hasResult = false; *hasResultType = false; break;\r
-    case OpModuleProcessed: *hasResult = false; *hasResultType = false; break;\r
-    case OpExecutionModeId: *hasResult = false; *hasResultType = false; break;\r
-    case OpDecorateId: *hasResult = false; *hasResultType = false; break;\r
-    case OpGroupNonUniformElect: *hasResult = true; *hasResultType = true; break;\r
-    case OpGroupNonUniformAll: *hasResult = true; *hasResultType = true; break;\r
-    case OpGroupNonUniformAny: *hasResult = true; *hasResultType = true; break;\r
-    case OpGroupNonUniformAllEqual: *hasResult = true; *hasResultType = true; break;\r
-    case OpGroupNonUniformBroadcast: *hasResult = true; *hasResultType = true; break;\r
-    case OpGroupNonUniformBroadcastFirst: *hasResult = true; *hasResultType = true; break;\r
-    case OpGroupNonUniformBallot: *hasResult = true; *hasResultType = true; break;\r
-    case OpGroupNonUniformInverseBallot: *hasResult = true; *hasResultType = true; break;\r
-    case OpGroupNonUniformBallotBitExtract: *hasResult = true; *hasResultType = true; break;\r
-    case OpGroupNonUniformBallotBitCount: *hasResult = true; *hasResultType = true; break;\r
-    case OpGroupNonUniformBallotFindLSB: *hasResult = true; *hasResultType = true; break;\r
-    case OpGroupNonUniformBallotFindMSB: *hasResult = true; *hasResultType = true; break;\r
-    case OpGroupNonUniformShuffle: *hasResult = true; *hasResultType = true; break;\r
-    case OpGroupNonUniformShuffleXor: *hasResult = true; *hasResultType = true; break;\r
-    case OpGroupNonUniformShuffleUp: *hasResult = true; *hasResultType = true; break;\r
-    case OpGroupNonUniformShuffleDown: *hasResult = true; *hasResultType = true; break;\r
-    case OpGroupNonUniformIAdd: *hasResult = true; *hasResultType = true; break;\r
-    case OpGroupNonUniformFAdd: *hasResult = true; *hasResultType = true; break;\r
-    case OpGroupNonUniformIMul: *hasResult = true; *hasResultType = true; break;\r
-    case OpGroupNonUniformFMul: *hasResult = true; *hasResultType = true; break;\r
-    case OpGroupNonUniformSMin: *hasResult = true; *hasResultType = true; break;\r
-    case OpGroupNonUniformUMin: *hasResult = true; *hasResultType = true; break;\r
-    case OpGroupNonUniformFMin: *hasResult = true; *hasResultType = true; break;\r
-    case OpGroupNonUniformSMax: *hasResult = true; *hasResultType = true; break;\r
-    case OpGroupNonUniformUMax: *hasResult = true; *hasResultType = true; break;\r
-    case OpGroupNonUniformFMax: *hasResult = true; *hasResultType = true; break;\r
-    case OpGroupNonUniformBitwiseAnd: *hasResult = true; *hasResultType = true; break;\r
-    case OpGroupNonUniformBitwiseOr: *hasResult = true; *hasResultType = true; break;\r
-    case OpGroupNonUniformBitwiseXor: *hasResult = true; *hasResultType = true; break;\r
-    case OpGroupNonUniformLogicalAnd: *hasResult = true; *hasResultType = true; break;\r
-    case OpGroupNonUniformLogicalOr: *hasResult = true; *hasResultType = true; break;\r
-    case OpGroupNonUniformLogicalXor: *hasResult = true; *hasResultType = true; break;\r
-    case OpGroupNonUniformQuadBroadcast: *hasResult = true; *hasResultType = true; break;\r
-    case OpGroupNonUniformQuadSwap: *hasResult = true; *hasResultType = true; break;\r
-    case OpCopyLogical: *hasResult = true; *hasResultType = true; break;\r
-    case OpPtrEqual: *hasResult = true; *hasResultType = true; break;\r
-    case OpPtrNotEqual: *hasResult = true; *hasResultType = true; break;\r
-    case OpPtrDiff: *hasResult = true; *hasResultType = true; break;\r
-    case OpTerminateInvocation: *hasResult = false; *hasResultType = false; break;\r
-    case OpSubgroupBallotKHR: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupFirstInvocationKHR: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAllKHR: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAnyKHR: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAllEqualKHR: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupReadInvocationKHR: *hasResult = true; *hasResultType = true; break;\r
-    case OpTraceRayKHR: *hasResult = false; *hasResultType = false; break;\r
-    case OpExecuteCallableKHR: *hasResult = false; *hasResultType = false; break;\r
-    case OpConvertUToAccelerationStructureKHR: *hasResult = true; *hasResultType = true; break;\r
-    case OpIgnoreIntersectionKHR: *hasResult = false; *hasResultType = false; break;\r
-    case OpTerminateRayKHR: *hasResult = false; *hasResultType = false; break;\r
-    case OpSDot: *hasResult = true; *hasResultType = true; break;\r
-    case OpUDot: *hasResult = true; *hasResultType = true; break;\r
-    case OpSUDot: *hasResult = true; *hasResultType = true; break;\r
-    case OpSDotAccSat: *hasResult = true; *hasResultType = true; break;\r
-    case OpUDotAccSat: *hasResult = true; *hasResultType = true; break;\r
-    case OpSUDotAccSat: *hasResult = true; *hasResultType = true; break;\r
-    case OpTypeRayQueryKHR: *hasResult = true; *hasResultType = false; break;\r
-    case OpRayQueryInitializeKHR: *hasResult = false; *hasResultType = false; break;\r
-    case OpRayQueryTerminateKHR: *hasResult = false; *hasResultType = false; break;\r
-    case OpRayQueryGenerateIntersectionKHR: *hasResult = false; *hasResultType = false; break;\r
-    case OpRayQueryConfirmIntersectionKHR: *hasResult = false; *hasResultType = false; break;\r
-    case OpRayQueryProceedKHR: *hasResult = true; *hasResultType = true; break;\r
-    case OpRayQueryGetIntersectionTypeKHR: *hasResult = true; *hasResultType = true; break;\r
-    case OpGroupIAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;\r
-    case OpGroupFAddNonUniformAMD: *hasResult = true; *hasResultType = true; break;\r
-    case OpGroupFMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;\r
-    case OpGroupUMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;\r
-    case OpGroupSMinNonUniformAMD: *hasResult = true; *hasResultType = true; break;\r
-    case OpGroupFMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;\r
-    case OpGroupUMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;\r
-    case OpGroupSMaxNonUniformAMD: *hasResult = true; *hasResultType = true; break;\r
-    case OpFragmentMaskFetchAMD: *hasResult = true; *hasResultType = true; break;\r
-    case OpFragmentFetchAMD: *hasResult = true; *hasResultType = true; break;\r
-    case OpReadClockKHR: *hasResult = true; *hasResultType = true; break;\r
-    case OpImageSampleFootprintNV: *hasResult = true; *hasResultType = true; break;\r
-    case OpGroupNonUniformPartitionNV: *hasResult = true; *hasResultType = true; break;\r
-    case OpEmitMeshTasksEXT: *hasResult = false; *hasResultType = false; break;\r
-    case OpSetMeshOutputsEXT: *hasResult = false; *hasResultType = false; break;\r
-    case OpWritePackedPrimitiveIndices4x8NV: *hasResult = false; *hasResultType = false; break;\r
-    case OpReportIntersectionNV: *hasResult = true; *hasResultType = true; break;\r
-    case OpIgnoreIntersectionNV: *hasResult = false; *hasResultType = false; break;\r
-    case OpTerminateRayNV: *hasResult = false; *hasResultType = false; break;\r
-    case OpTraceNV: *hasResult = false; *hasResultType = false; break;\r
-    case OpTraceMotionNV: *hasResult = false; *hasResultType = false; break;\r
-    case OpTraceRayMotionNV: *hasResult = false; *hasResultType = false; break;\r
-    case OpTypeAccelerationStructureNV: *hasResult = true; *hasResultType = false; break;\r
-    case OpExecuteCallableNV: *hasResult = false; *hasResultType = false; break;\r
-    case OpTypeCooperativeMatrixNV: *hasResult = true; *hasResultType = false; break;\r
-    case OpCooperativeMatrixLoadNV: *hasResult = true; *hasResultType = true; break;\r
-    case OpCooperativeMatrixStoreNV: *hasResult = false; *hasResultType = false; break;\r
-    case OpCooperativeMatrixMulAddNV: *hasResult = true; *hasResultType = true; break;\r
-    case OpCooperativeMatrixLengthNV: *hasResult = true; *hasResultType = true; break;\r
-    case OpBeginInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break;\r
-    case OpEndInvocationInterlockEXT: *hasResult = false; *hasResultType = false; break;\r
-    case OpDemoteToHelperInvocation: *hasResult = false; *hasResultType = false; break;\r
-    case OpIsHelperInvocationEXT: *hasResult = true; *hasResultType = true; break;\r
-    case OpConvertUToImageNV: *hasResult = true; *hasResultType = true; break;\r
-    case OpConvertUToSamplerNV: *hasResult = true; *hasResultType = true; break;\r
-    case OpConvertImageToUNV: *hasResult = true; *hasResultType = true; break;\r
-    case OpConvertSamplerToUNV: *hasResult = true; *hasResultType = true; break;\r
-    case OpConvertUToSampledImageNV: *hasResult = true; *hasResultType = true; break;\r
-    case OpConvertSampledImageToUNV: *hasResult = true; *hasResultType = true; break;\r
-    case OpSamplerImageAddressingModeNV: *hasResult = false; *hasResultType = false; break;\r
-    case OpSubgroupShuffleINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupShuffleDownINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupShuffleUpINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupShuffleXorINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupBlockReadINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;\r
-    case OpSubgroupImageBlockReadINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupImageBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;\r
-    case OpSubgroupImageMediaBlockReadINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupImageMediaBlockWriteINTEL: *hasResult = false; *hasResultType = false; break;\r
-    case OpUCountLeadingZerosINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpUCountTrailingZerosINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpAbsISubINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpAbsUSubINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpIAddSatINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpUAddSatINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpIAverageINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpUAverageINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpIAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpUAverageRoundedINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpISubSatINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpUSubSatINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpIMul32x16INTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpUMul32x16INTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpConstantFunctionPointerINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpFunctionPointerCallINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpAsmTargetINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpAsmINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpAsmCallINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpAtomicFMinEXT: *hasResult = true; *hasResultType = true; break;\r
-    case OpAtomicFMaxEXT: *hasResult = true; *hasResultType = true; break;\r
-    case OpAssumeTrueKHR: *hasResult = false; *hasResultType = false; break;\r
-    case OpExpectKHR: *hasResult = true; *hasResultType = true; break;\r
-    case OpDecorateString: *hasResult = false; *hasResultType = false; break;\r
-    case OpMemberDecorateString: *hasResult = false; *hasResultType = false; break;\r
-    case OpVmeImageINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpTypeVmeImageINTEL: *hasResult = true; *hasResultType = false; break;\r
-    case OpTypeAvcImePayloadINTEL: *hasResult = true; *hasResultType = false; break;\r
-    case OpTypeAvcRefPayloadINTEL: *hasResult = true; *hasResultType = false; break;\r
-    case OpTypeAvcSicPayloadINTEL: *hasResult = true; *hasResultType = false; break;\r
-    case OpTypeAvcMcePayloadINTEL: *hasResult = true; *hasResultType = false; break;\r
-    case OpTypeAvcMceResultINTEL: *hasResult = true; *hasResultType = false; break;\r
-    case OpTypeAvcImeResultINTEL: *hasResult = true; *hasResultType = false; break;\r
-    case OpTypeAvcImeResultSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = false; break;\r
-    case OpTypeAvcImeResultDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = false; break;\r
-    case OpTypeAvcImeSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = false; break;\r
-    case OpTypeAvcImeDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = false; break;\r
-    case OpTypeAvcRefResultINTEL: *hasResult = true; *hasResultType = false; break;\r
-    case OpTypeAvcSicResultINTEL: *hasResult = true; *hasResultType = false; break;\r
-    case OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcMceSetInterShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcMceSetInterDirectionPenaltyINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcMceSetAcOnlyHaarINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcMceConvertToImePayloadINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcMceConvertToImeResultINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcMceConvertToRefPayloadINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcMceConvertToRefResultINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcMceConvertToSicPayloadINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcMceConvertToSicResultINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcMceGetMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcMceGetInterDistortionsINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcMceGetBestInterDistortionsINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcMceGetInterMajorShapeINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcMceGetInterMinorShapeINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcMceGetInterDirectionsINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcMceGetInterMotionVectorCountINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcMceGetInterReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcImeInitializeINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcImeSetSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcImeSetDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcImeRefWindowSizeINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcImeAdjustRefOffsetINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcImeConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcImeSetMaxMotionVectorCountINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcImeSetWeightedSadINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcImeEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcImeConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcImeGetSingleReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcImeGetDualReferenceStreaminINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcImeStripDualReferenceStreamoutINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcImeGetBorderReachedINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcFmeInitializeINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcBmeInitializeINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcRefConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcRefSetBidirectionalMixDisableINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcRefSetBilinearFilterEnableINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcRefEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcRefConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcSicInitializeINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcSicConfigureSkcINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcSicConfigureIpeLumaINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcSicConfigureIpeLumaChromaINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcSicGetMotionVectorMaskINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcSicConvertToMcePayloadINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcSicSetBilinearFilterEnableINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcSicEvaluateIpeINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcSicEvaluateWithDualReferenceINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcSicConvertToMceResultINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcSicGetIpeLumaShapeINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcSicGetPackedIpeLumaModesINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcSicGetIpeChromaModeINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSubgroupAvcSicGetInterRawSadsINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpVariableLengthArrayINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpSaveMemoryINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpRestoreMemoryINTEL: *hasResult = false; *hasResultType = false; break;\r
-    case OpArbitraryFloatSinCosPiINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpArbitraryFloatCastINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpArbitraryFloatCastFromIntINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpArbitraryFloatCastToIntINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpArbitraryFloatAddINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpArbitraryFloatSubINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpArbitraryFloatMulINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpArbitraryFloatDivINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpArbitraryFloatGTINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpArbitraryFloatGEINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpArbitraryFloatLTINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpArbitraryFloatLEINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpArbitraryFloatEQINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpArbitraryFloatRecipINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpArbitraryFloatRSqrtINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpArbitraryFloatCbrtINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpArbitraryFloatHypotINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpArbitraryFloatSqrtINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpArbitraryFloatLogINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpArbitraryFloatLog2INTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpArbitraryFloatLog10INTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpArbitraryFloatLog1pINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpArbitraryFloatExpINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpArbitraryFloatExp2INTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpArbitraryFloatExp10INTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpArbitraryFloatExpm1INTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpArbitraryFloatSinINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpArbitraryFloatCosINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpArbitraryFloatSinCosINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpArbitraryFloatSinPiINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpArbitraryFloatCosPiINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpArbitraryFloatASinINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpArbitraryFloatASinPiINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpArbitraryFloatACosINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpArbitraryFloatACosPiINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpArbitraryFloatATanINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpArbitraryFloatATanPiINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpArbitraryFloatATan2INTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpArbitraryFloatPowINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpArbitraryFloatPowRINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpArbitraryFloatPowNINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpLoopControlINTEL: *hasResult = false; *hasResultType = false; break;\r
-    case OpFixedSqrtINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpFixedRecipINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpFixedRsqrtINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpFixedSinINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpFixedCosINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpFixedSinCosINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpFixedSinPiINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpFixedCosPiINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpFixedSinCosPiINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpFixedLogINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpFixedExpINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpPtrCastToCrossWorkgroupINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpCrossWorkgroupCastToPtrINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpReadPipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpWritePipeBlockingINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpFPGARegINTEL: *hasResult = true; *hasResultType = true; break;\r
-    case OpRayQueryGetRayTMinKHR: *hasResult = true; *hasResultType = true; break;\r
-    case OpRayQueryGetRayFlagsKHR: *hasResult = true; *hasResultType = true; break;\r
-    case OpRayQueryGetIntersectionTKHR: *hasResult = true; *hasResultType = true; break;\r
-    case OpRayQueryGetIntersectionInstanceCustomIndexKHR: *hasResult = true; *hasResultType = true; break;\r
-    case OpRayQueryGetIntersectionInstanceIdKHR: *hasResult = true; *hasResultType = true; break;\r
-    case OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR: *hasResult = true; *hasResultType = true; break;\r
-    case OpRayQueryGetIntersectionGeometryIndexKHR: *hasResult = true; *hasResultType = true; break;\r
-    case OpRayQueryGetIntersectionPrimitiveIndexKHR: *hasResult = true; *hasResultType = true; break;\r
-    case OpRayQueryGetIntersectionBarycentricsKHR: *hasResult = true; *hasResultType = true; break;\r
-    case OpRayQueryGetIntersectionFrontFaceKHR: *hasResult = true; *hasResultType = true; break;\r
-    case OpRayQueryGetIntersectionCandidateAABBOpaqueKHR: *hasResult = true; *hasResultType = true; break;\r
-    case OpRayQueryGetIntersectionObjectRayDirectionKHR: *hasResult = true; *hasResultType = true; break;\r
-    case OpRayQueryGetIntersectionObjectRayOriginKHR: *hasResult = true; *hasResultType = true; break;\r
-    case OpRayQueryGetWorldRayDirectionKHR: *hasResult = true; *hasResultType = true; break;\r
-    case OpRayQueryGetWorldRayOriginKHR: *hasResult = true; *hasResultType = true; break;\r
-    case OpRayQueryGetIntersectionObjectToWorldKHR: *hasResult = true; *hasResultType = true; break;\r
-    case OpRayQueryGetIntersectionWorldToObjectKHR: *hasResult = true; *hasResultType = true; break;\r
-    case OpAtomicFAddEXT: *hasResult = true; *hasResultType = true; break;\r
-    case OpTypeBufferSurfaceINTEL: *hasResult = true; *hasResultType = false; break;\r
-    case OpTypeStructContinuedINTEL: *hasResult = false; *hasResultType = false; break;\r
-    case OpConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;\r
-    case OpSpecConstantCompositeContinuedINTEL: *hasResult = false; *hasResultType = false; break;\r
-    }\r
-}\r
-#endif /* SPV_ENABLE_UTILITY_CODE */\r
-\r
-// Overload operator| for mask bit combining\r
-\r
-inline ImageOperandsMask operator|(ImageOperandsMask a, ImageOperandsMask b) { return ImageOperandsMask(unsigned(a) | unsigned(b)); }\r
-inline FPFastMathModeMask operator|(FPFastMathModeMask a, FPFastMathModeMask b) { return FPFastMathModeMask(unsigned(a) | unsigned(b)); }\r
-inline SelectionControlMask operator|(SelectionControlMask a, SelectionControlMask b) { return SelectionControlMask(unsigned(a) | unsigned(b)); }\r
-inline LoopControlMask operator|(LoopControlMask a, LoopControlMask b) { return LoopControlMask(unsigned(a) | unsigned(b)); }\r
-inline FunctionControlMask operator|(FunctionControlMask a, FunctionControlMask b) { return FunctionControlMask(unsigned(a) | unsigned(b)); }\r
-inline MemorySemanticsMask operator|(MemorySemanticsMask a, MemorySemanticsMask b) { return MemorySemanticsMask(unsigned(a) | unsigned(b)); }\r
-inline MemoryAccessMask operator|(MemoryAccessMask a, MemoryAccessMask b) { return MemoryAccessMask(unsigned(a) | unsigned(b)); }\r
-inline KernelProfilingInfoMask operator|(KernelProfilingInfoMask a, KernelProfilingInfoMask b) { return KernelProfilingInfoMask(unsigned(a) | unsigned(b)); }\r
-inline RayFlagsMask operator|(RayFlagsMask a, RayFlagsMask b) { return RayFlagsMask(unsigned(a) | unsigned(b)); }\r
-inline FragmentShadingRateMask operator|(FragmentShadingRateMask a, FragmentShadingRateMask b) { return FragmentShadingRateMask(unsigned(a) | unsigned(b)); }\r
-\r
-}  // end namespace spv\r
-\r
-#endif  // #ifndef spirv_HPP\r
+// 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,
+    ExecutionModelTaskEXT = 5364,
+    ExecutionModelMeshEXT = 5365,
+    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,
+    ExecutionModeEarlyAndLateFragmentTestsAMD = 5017,
+    ExecutionModeStencilRefReplacingEXT = 5027,
+    ExecutionModeStencilRefUnchangedFrontAMD = 5079,
+    ExecutionModeStencilRefGreaterFrontAMD = 5080,
+    ExecutionModeStencilRefLessFrontAMD = 5081,
+    ExecutionModeStencilRefUnchangedBackAMD = 5082,
+    ExecutionModeStencilRefGreaterBackAMD = 5083,
+    ExecutionModeStencilRefLessBackAMD = 5084,
+    ExecutionModeOutputLinesEXT = 5269,
+    ExecutionModeOutputLinesNV = 5269,
+    ExecutionModeOutputPrimitivesEXT = 5270,
+    ExecutionModeOutputPrimitivesNV = 5270,
+    ExecutionModeDerivativeGroupQuadsNV = 5289,
+    ExecutionModeDerivativeGroupLinearNV = 5290,
+    ExecutionModeOutputTrianglesEXT = 5298,
+    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,
+    StorageClassTaskPayloadWorkgroupEXT = 5402,
+    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,
+    DecorationPerPrimitiveEXT = 5271,
+    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,
+    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,
+    BuiltInPrimitivePointIndicesEXT = 5294,
+    BuiltInPrimitiveLineIndicesEXT = 5295,
+    BuiltInPrimitiveTriangleIndicesEXT = 5296,
+    BuiltInCullPrimitiveEXT = 5299,
+    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,
+    BuiltInCullMaskKHR = 6021,
+    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,
+    MemoryAccessMax = 0x7fffffff,
+};
+
+enum MemoryAccessMask {
+    MemoryAccessMaskNone = 0,
+    MemoryAccessVolatileMask = 0x00000001,
+    MemoryAccessAlignedMask = 0x00000002,
+    MemoryAccessNontemporalMask = 0x00000004,
+    MemoryAccessMakePointerAvailableMask = 0x00000008,
+    MemoryAccessMakePointerAvailableKHRMask = 0x00000008,
+    MemoryAccessMakePointerVisibleMask = 0x00000010,
+    MemoryAccessMakePointerVisibleKHRMask = 0x00000010,
+    MemoryAccessNonPrivatePointerMask = 0x00000020,
+    MemoryAccessNonPrivatePointerKHRMask = 0x00000020,
+};
+
+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,
+    CapabilityMeshShadingEXT = 5283,
+       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,
+    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,
+    CapabilityRayCullMaskKHR = 6020,
+    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,
+    OpEmitMeshTasksEXT = 5294,
+    OpSetMeshOutputsEXT = 5295,
+    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,
+    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 OpEmitMeshTasksEXT: *hasResult = false; *hasResultType = false; break;
+    case OpSetMeshOutputsEXT: *hasResult = false; *hasResultType = false; 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 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