/*
** Copyright: 2014-2024 The Khronos Group Inc.
** License: MIT
**
** 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/
*/

/*
** 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, Beef
**
** - 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
** - Beef will use enum classes in the Specification class located in the "Spv" namespace,
**     e.g.: Spv.Specification.SourceLanguage.GLSL
**
** Some tokens act like mask values, which can be OR'd together,
** while others are mutually exclusive.  The mask-like ones have
** "Mask" in their name, and a parallel enum that has the shift
** amount (1 << x) for each corresponding enumerant.
*/

#ifndef spirv_H
#define spirv_H

typedef unsigned int SpvId;

#define SPV_VERSION 0x10600
#define SPV_REVISION 1

static const unsigned int SpvMagicNumber = 0x07230203;
static const unsigned int SpvVersion = 0x00010600;
static const unsigned int SpvRevision = 1;
static const unsigned int SpvOpCodeMask = 0xffff;
static const unsigned int SpvWordCountShift = 16;

typedef enum SpvSourceLanguage_ {
  SpvSourceLanguageUnknown = 0,
  SpvSourceLanguageESSL = 1,
  SpvSourceLanguageGLSL = 2,
  SpvSourceLanguageOpenCL_C = 3,
  SpvSourceLanguageOpenCL_CPP = 4,
  SpvSourceLanguageHLSL = 5,
  SpvSourceLanguageCPP_for_OpenCL = 6,
  SpvSourceLanguageSYCL = 7,
  SpvSourceLanguageHERO_C = 8,
  SpvSourceLanguageNZSL = 9,
  SpvSourceLanguageWGSL = 10,
  SpvSourceLanguageSlang = 11,
  SpvSourceLanguageZig = 12,
  SpvSourceLanguageRust = 13,
  SpvSourceLanguageMax = 0x7fffffff,
} SpvSourceLanguage;

typedef enum SpvExecutionModel_ {
  SpvExecutionModelVertex = 0,
  SpvExecutionModelTessellationControl = 1,
  SpvExecutionModelTessellationEvaluation = 2,
  SpvExecutionModelGeometry = 3,
  SpvExecutionModelFragment = 4,
  SpvExecutionModelGLCompute = 5,
  SpvExecutionModelKernel = 6,
  SpvExecutionModelTaskNV = 5267,
  SpvExecutionModelMeshNV = 5268,
  SpvExecutionModelRayGenerationKHR = 5313,
  SpvExecutionModelRayGenerationNV = 5313,
  SpvExecutionModelIntersectionKHR = 5314,
  SpvExecutionModelIntersectionNV = 5314,
  SpvExecutionModelAnyHitKHR = 5315,
  SpvExecutionModelAnyHitNV = 5315,
  SpvExecutionModelClosestHitKHR = 5316,
  SpvExecutionModelClosestHitNV = 5316,
  SpvExecutionModelMissKHR = 5317,
  SpvExecutionModelMissNV = 5317,
  SpvExecutionModelCallableKHR = 5318,
  SpvExecutionModelCallableNV = 5318,
  SpvExecutionModelTaskEXT = 5364,
  SpvExecutionModelMeshEXT = 5365,
  SpvExecutionModelMax = 0x7fffffff,
} SpvExecutionModel;

typedef enum SpvAddressingModel_ {
  SpvAddressingModelLogical = 0,
  SpvAddressingModelPhysical32 = 1,
  SpvAddressingModelPhysical64 = 2,
  SpvAddressingModelPhysicalStorageBuffer64 = 5348,
  SpvAddressingModelPhysicalStorageBuffer64EXT = 5348,
  SpvAddressingModelMax = 0x7fffffff,
} SpvAddressingModel;

typedef enum SpvMemoryModel_ {
  SpvMemoryModelSimple = 0,
  SpvMemoryModelGLSL450 = 1,
  SpvMemoryModelOpenCL = 2,
  SpvMemoryModelVulkan = 3,
  SpvMemoryModelVulkanKHR = 3,
  SpvMemoryModelMax = 0x7fffffff,
} SpvMemoryModel;

typedef enum SpvExecutionMode_ {
  SpvExecutionModeInvocations = 0,
  SpvExecutionModeSpacingEqual = 1,
  SpvExecutionModeSpacingFractionalEven = 2,
  SpvExecutionModeSpacingFractionalOdd = 3,
  SpvExecutionModeVertexOrderCw = 4,
  SpvExecutionModeVertexOrderCcw = 5,
  SpvExecutionModePixelCenterInteger = 6,
  SpvExecutionModeOriginUpperLeft = 7,
  SpvExecutionModeOriginLowerLeft = 8,
  SpvExecutionModeEarlyFragmentTests = 9,
  SpvExecutionModePointMode = 10,
  SpvExecutionModeXfb = 11,
  SpvExecutionModeDepthReplacing = 12,
  SpvExecutionModeDepthGreater = 14,
  SpvExecutionModeDepthLess = 15,
  SpvExecutionModeDepthUnchanged = 16,
  SpvExecutionModeLocalSize = 17,
  SpvExecutionModeLocalSizeHint = 18,
  SpvExecutionModeInputPoints = 19,
  SpvExecutionModeInputLines = 20,
  SpvExecutionModeInputLinesAdjacency = 21,
  SpvExecutionModeTriangles = 22,
  SpvExecutionModeInputTrianglesAdjacency = 23,
  SpvExecutionModeQuads = 24,
  SpvExecutionModeIsolines = 25,
  SpvExecutionModeOutputVertices = 26,
  SpvExecutionModeOutputPoints = 27,
  SpvExecutionModeOutputLineStrip = 28,
  SpvExecutionModeOutputTriangleStrip = 29,
  SpvExecutionModeVecTypeHint = 30,
  SpvExecutionModeContractionOff = 31,
  SpvExecutionModeInitializer = 33,
  SpvExecutionModeFinalizer = 34,
  SpvExecutionModeSubgroupSize = 35,
  SpvExecutionModeSubgroupsPerWorkgroup = 36,
  SpvExecutionModeSubgroupsPerWorkgroupId = 37,
  SpvExecutionModeLocalSizeId = 38,
  SpvExecutionModeLocalSizeHintId = 39,
  SpvExecutionModeNonCoherentColorAttachmentReadEXT = 4169,
  SpvExecutionModeNonCoherentDepthAttachmentReadEXT = 4170,
  SpvExecutionModeNonCoherentStencilAttachmentReadEXT = 4171,
  SpvExecutionModeSubgroupUniformControlFlowKHR = 4421,
  SpvExecutionModePostDepthCoverage = 4446,
  SpvExecutionModeDenormPreserve = 4459,
  SpvExecutionModeDenormFlushToZero = 4460,
  SpvExecutionModeSignedZeroInfNanPreserve = 4461,
  SpvExecutionModeRoundingModeRTE = 4462,
  SpvExecutionModeRoundingModeRTZ = 4463,
  SpvExecutionModeNonCoherentTileAttachmentReadQCOM = 4489,
  SpvExecutionModeTileShadingRateQCOM = 4490,
  SpvExecutionModeEarlyAndLateFragmentTestsAMD = 5017,
  SpvExecutionModeStencilRefReplacingEXT = 5027,
  SpvExecutionModeCoalescingAMDX = 5069,
  SpvExecutionModeIsApiEntryAMDX = 5070,
  SpvExecutionModeMaxNodeRecursionAMDX = 5071,
  SpvExecutionModeStaticNumWorkgroupsAMDX = 5072,
  SpvExecutionModeShaderIndexAMDX = 5073,
  SpvExecutionModeMaxNumWorkgroupsAMDX = 5077,
  SpvExecutionModeStencilRefUnchangedFrontAMD = 5079,
  SpvExecutionModeStencilRefGreaterFrontAMD = 5080,
  SpvExecutionModeStencilRefLessFrontAMD = 5081,
  SpvExecutionModeStencilRefUnchangedBackAMD = 5082,
  SpvExecutionModeStencilRefGreaterBackAMD = 5083,
  SpvExecutionModeStencilRefLessBackAMD = 5084,
  SpvExecutionModeQuadDerivativesKHR = 5088,
  SpvExecutionModeRequireFullQuadsKHR = 5089,
  SpvExecutionModeSharesInputWithAMDX = 5102,
  SpvExecutionModeOutputLinesEXT = 5269,
  SpvExecutionModeOutputLinesNV = 5269,
  SpvExecutionModeOutputPrimitivesEXT = 5270,
  SpvExecutionModeOutputPrimitivesNV = 5270,
  SpvExecutionModeDerivativeGroupQuadsKHR = 5289,
  SpvExecutionModeDerivativeGroupQuadsNV = 5289,
  SpvExecutionModeDerivativeGroupLinearKHR = 5290,
  SpvExecutionModeDerivativeGroupLinearNV = 5290,
  SpvExecutionModeOutputTrianglesEXT = 5298,
  SpvExecutionModeOutputTrianglesNV = 5298,
  SpvExecutionModePixelInterlockOrderedEXT = 5366,
  SpvExecutionModePixelInterlockUnorderedEXT = 5367,
  SpvExecutionModeSampleInterlockOrderedEXT = 5368,
  SpvExecutionModeSampleInterlockUnorderedEXT = 5369,
  SpvExecutionModeShadingRateInterlockOrderedEXT = 5370,
  SpvExecutionModeShadingRateInterlockUnorderedEXT = 5371,
  SpvExecutionModeSharedLocalMemorySizeINTEL = 5618,
  SpvExecutionModeRoundingModeRTPINTEL = 5620,
  SpvExecutionModeRoundingModeRTNINTEL = 5621,
  SpvExecutionModeFloatingPointModeALTINTEL = 5622,
  SpvExecutionModeFloatingPointModeIEEEINTEL = 5623,
  SpvExecutionModeMaxWorkgroupSizeINTEL = 5893,
  SpvExecutionModeMaxWorkDimINTEL = 5894,
  SpvExecutionModeNoGlobalOffsetINTEL = 5895,
  SpvExecutionModeNumSIMDWorkitemsINTEL = 5896,
  SpvExecutionModeSchedulerTargetFmaxMhzINTEL = 5903,
  SpvExecutionModeMaximallyReconvergesKHR = 6023,
  SpvExecutionModeFPFastMathDefault = 6028,
  SpvExecutionModeStreamingInterfaceINTEL = 6154,
  SpvExecutionModeRegisterMapInterfaceINTEL = 6160,
  SpvExecutionModeNamedBarrierCountINTEL = 6417,
  SpvExecutionModeMaximumRegistersINTEL = 6461,
  SpvExecutionModeMaximumRegistersIdINTEL = 6462,
  SpvExecutionModeNamedMaximumRegistersINTEL = 6463,
  SpvExecutionModeMax = 0x7fffffff,
} SpvExecutionMode;

typedef enum SpvStorageClass_ {
  SpvStorageClassUniformConstant = 0,
  SpvStorageClassInput = 1,
  SpvStorageClassUniform = 2,
  SpvStorageClassOutput = 3,
  SpvStorageClassWorkgroup = 4,
  SpvStorageClassCrossWorkgroup = 5,
  SpvStorageClassPrivate = 6,
  SpvStorageClassFunction = 7,
  SpvStorageClassGeneric = 8,
  SpvStorageClassPushConstant = 9,
  SpvStorageClassAtomicCounter = 10,
  SpvStorageClassImage = 11,
  SpvStorageClassStorageBuffer = 12,
  SpvStorageClassTileImageEXT = 4172,
  SpvStorageClassTileAttachmentQCOM = 4491,
  SpvStorageClassNodePayloadAMDX = 5068,
  SpvStorageClassCallableDataKHR = 5328,
  SpvStorageClassCallableDataNV = 5328,
  SpvStorageClassIncomingCallableDataKHR = 5329,
  SpvStorageClassIncomingCallableDataNV = 5329,
  SpvStorageClassRayPayloadKHR = 5338,
  SpvStorageClassRayPayloadNV = 5338,
  SpvStorageClassHitAttributeKHR = 5339,
  SpvStorageClassHitAttributeNV = 5339,
  SpvStorageClassIncomingRayPayloadKHR = 5342,
  SpvStorageClassIncomingRayPayloadNV = 5342,
  SpvStorageClassShaderRecordBufferKHR = 5343,
  SpvStorageClassShaderRecordBufferNV = 5343,
  SpvStorageClassPhysicalStorageBuffer = 5349,
  SpvStorageClassPhysicalStorageBufferEXT = 5349,
  SpvStorageClassHitObjectAttributeNV = 5385,
  SpvStorageClassTaskPayloadWorkgroupEXT = 5402,
  SpvStorageClassCodeSectionINTEL = 5605,
  SpvStorageClassDeviceOnlyINTEL = 5936,
  SpvStorageClassHostOnlyINTEL = 5937,
  SpvStorageClassMax = 0x7fffffff,
} SpvStorageClass;

typedef enum SpvDim_ {
  SpvDim1D = 0,
  SpvDim2D = 1,
  SpvDim3D = 2,
  SpvDimCube = 3,
  SpvDimRect = 4,
  SpvDimBuffer = 5,
  SpvDimSubpassData = 6,
  SpvDimTileImageDataEXT = 4173,
  SpvDimMax = 0x7fffffff,
} SpvDim;

typedef enum SpvSamplerAddressingMode_ {
  SpvSamplerAddressingModeNone = 0,
  SpvSamplerAddressingModeClampToEdge = 1,
  SpvSamplerAddressingModeClamp = 2,
  SpvSamplerAddressingModeRepeat = 3,
  SpvSamplerAddressingModeRepeatMirrored = 4,
  SpvSamplerAddressingModeMax = 0x7fffffff,
} SpvSamplerAddressingMode;

typedef enum SpvSamplerFilterMode_ {
  SpvSamplerFilterModeNearest = 0,
  SpvSamplerFilterModeLinear = 1,
  SpvSamplerFilterModeMax = 0x7fffffff,
} SpvSamplerFilterMode;

typedef enum SpvImageFormat_ {
  SpvImageFormatUnknown = 0,
  SpvImageFormatRgba32f = 1,
  SpvImageFormatRgba16f = 2,
  SpvImageFormatR32f = 3,
  SpvImageFormatRgba8 = 4,
  SpvImageFormatRgba8Snorm = 5,
  SpvImageFormatRg32f = 6,
  SpvImageFormatRg16f = 7,
  SpvImageFormatR11fG11fB10f = 8,
  SpvImageFormatR16f = 9,
  SpvImageFormatRgba16 = 10,
  SpvImageFormatRgb10A2 = 11,
  SpvImageFormatRg16 = 12,
  SpvImageFormatRg8 = 13,
  SpvImageFormatR16 = 14,
  SpvImageFormatR8 = 15,
  SpvImageFormatRgba16Snorm = 16,
  SpvImageFormatRg16Snorm = 17,
  SpvImageFormatRg8Snorm = 18,
  SpvImageFormatR16Snorm = 19,
  SpvImageFormatR8Snorm = 20,
  SpvImageFormatRgba32i = 21,
  SpvImageFormatRgba16i = 22,
  SpvImageFormatRgba8i = 23,
  SpvImageFormatR32i = 24,
  SpvImageFormatRg32i = 25,
  SpvImageFormatRg16i = 26,
  SpvImageFormatRg8i = 27,
  SpvImageFormatR16i = 28,
  SpvImageFormatR8i = 29,
  SpvImageFormatRgba32ui = 30,
  SpvImageFormatRgba16ui = 31,
  SpvImageFormatRgba8ui = 32,
  SpvImageFormatR32ui = 33,
  SpvImageFormatRgb10a2ui = 34,
  SpvImageFormatRg32ui = 35,
  SpvImageFormatRg16ui = 36,
  SpvImageFormatRg8ui = 37,
  SpvImageFormatR16ui = 38,
  SpvImageFormatR8ui = 39,
  SpvImageFormatR64ui = 40,
  SpvImageFormatR64i = 41,
  SpvImageFormatMax = 0x7fffffff,
} SpvImageFormat;

typedef enum SpvImageChannelOrder_ {
  SpvImageChannelOrderR = 0,
  SpvImageChannelOrderA = 1,
  SpvImageChannelOrderRG = 2,
  SpvImageChannelOrderRA = 3,
  SpvImageChannelOrderRGB = 4,
  SpvImageChannelOrderRGBA = 5,
  SpvImageChannelOrderBGRA = 6,
  SpvImageChannelOrderARGB = 7,
  SpvImageChannelOrderIntensity = 8,
  SpvImageChannelOrderLuminance = 9,
  SpvImageChannelOrderRx = 10,
  SpvImageChannelOrderRGx = 11,
  SpvImageChannelOrderRGBx = 12,
  SpvImageChannelOrderDepth = 13,
  SpvImageChannelOrderDepthStencil = 14,
  SpvImageChannelOrdersRGB = 15,
  SpvImageChannelOrdersRGBx = 16,
  SpvImageChannelOrdersRGBA = 17,
  SpvImageChannelOrdersBGRA = 18,
  SpvImageChannelOrderABGR = 19,
  SpvImageChannelOrderMax = 0x7fffffff,
} SpvImageChannelOrder;

typedef enum SpvImageChannelDataType_ {
  SpvImageChannelDataTypeSnormInt8 = 0,
  SpvImageChannelDataTypeSnormInt16 = 1,
  SpvImageChannelDataTypeUnormInt8 = 2,
  SpvImageChannelDataTypeUnormInt16 = 3,
  SpvImageChannelDataTypeUnormShort565 = 4,
  SpvImageChannelDataTypeUnormShort555 = 5,
  SpvImageChannelDataTypeUnormInt101010 = 6,
  SpvImageChannelDataTypeSignedInt8 = 7,
  SpvImageChannelDataTypeSignedInt16 = 8,
  SpvImageChannelDataTypeSignedInt32 = 9,
  SpvImageChannelDataTypeUnsignedInt8 = 10,
  SpvImageChannelDataTypeUnsignedInt16 = 11,
  SpvImageChannelDataTypeUnsignedInt32 = 12,
  SpvImageChannelDataTypeHalfFloat = 13,
  SpvImageChannelDataTypeFloat = 14,
  SpvImageChannelDataTypeUnormInt24 = 15,
  SpvImageChannelDataTypeUnormInt101010_2 = 16,
  SpvImageChannelDataTypeUnormInt10X6EXT = 17,
  SpvImageChannelDataTypeUnsignedIntRaw10EXT = 19,
  SpvImageChannelDataTypeUnsignedIntRaw12EXT = 20,
  SpvImageChannelDataTypeUnormInt2_101010EXT = 21,
  SpvImageChannelDataTypeUnsignedInt10X6EXT = 22,
  SpvImageChannelDataTypeUnsignedInt12X4EXT = 23,
  SpvImageChannelDataTypeUnsignedInt14X2EXT = 24,
  SpvImageChannelDataTypeUnormInt12X4EXT = 25,
  SpvImageChannelDataTypeUnormInt14X2EXT = 26,
  SpvImageChannelDataTypeMax = 0x7fffffff,
} SpvImageChannelDataType;

typedef enum SpvImageOperandsShift_ {
  SpvImageOperandsBiasShift = 0,
  SpvImageOperandsLodShift = 1,
  SpvImageOperandsGradShift = 2,
  SpvImageOperandsConstOffsetShift = 3,
  SpvImageOperandsOffsetShift = 4,
  SpvImageOperandsConstOffsetsShift = 5,
  SpvImageOperandsSampleShift = 6,
  SpvImageOperandsMinLodShift = 7,
  SpvImageOperandsMakeTexelAvailableShift = 8,
  SpvImageOperandsMakeTexelAvailableKHRShift = 8,
  SpvImageOperandsMakeTexelVisibleShift = 9,
  SpvImageOperandsMakeTexelVisibleKHRShift = 9,
  SpvImageOperandsNonPrivateTexelShift = 10,
  SpvImageOperandsNonPrivateTexelKHRShift = 10,
  SpvImageOperandsVolatileTexelShift = 11,
  SpvImageOperandsVolatileTexelKHRShift = 11,
  SpvImageOperandsSignExtendShift = 12,
  SpvImageOperandsZeroExtendShift = 13,
  SpvImageOperandsNontemporalShift = 14,
  SpvImageOperandsOffsetsShift = 16,
  SpvImageOperandsMax = 0x7fffffff,
} SpvImageOperandsShift;

typedef enum SpvImageOperandsMask_ {
  SpvImageOperandsMaskNone = 0,
  SpvImageOperandsBiasMask = 0x00000001,
  SpvImageOperandsLodMask = 0x00000002,
  SpvImageOperandsGradMask = 0x00000004,
  SpvImageOperandsConstOffsetMask = 0x00000008,
  SpvImageOperandsOffsetMask = 0x00000010,
  SpvImageOperandsConstOffsetsMask = 0x00000020,
  SpvImageOperandsSampleMask = 0x00000040,
  SpvImageOperandsMinLodMask = 0x00000080,
  SpvImageOperandsMakeTexelAvailableMask = 0x00000100,
  SpvImageOperandsMakeTexelAvailableKHRMask = 0x00000100,
  SpvImageOperandsMakeTexelVisibleMask = 0x00000200,
  SpvImageOperandsMakeTexelVisibleKHRMask = 0x00000200,
  SpvImageOperandsNonPrivateTexelMask = 0x00000400,
  SpvImageOperandsNonPrivateTexelKHRMask = 0x00000400,
  SpvImageOperandsVolatileTexelMask = 0x00000800,
  SpvImageOperandsVolatileTexelKHRMask = 0x00000800,
  SpvImageOperandsSignExtendMask = 0x00001000,
  SpvImageOperandsZeroExtendMask = 0x00002000,
  SpvImageOperandsNontemporalMask = 0x00004000,
  SpvImageOperandsOffsetsMask = 0x00010000,
} SpvImageOperandsMask;

typedef enum SpvFPFastMathModeShift_ {
  SpvFPFastMathModeNotNaNShift = 0,
  SpvFPFastMathModeNotInfShift = 1,
  SpvFPFastMathModeNSZShift = 2,
  SpvFPFastMathModeAllowRecipShift = 3,
  SpvFPFastMathModeFastShift = 4,
  SpvFPFastMathModeAllowContractShift = 16,
  SpvFPFastMathModeAllowContractFastINTELShift = 16,
  SpvFPFastMathModeAllowReassocShift = 17,
  SpvFPFastMathModeAllowReassocINTELShift = 17,
  SpvFPFastMathModeAllowTransformShift = 18,
  SpvFPFastMathModeMax = 0x7fffffff,
} SpvFPFastMathModeShift;

typedef enum SpvFPFastMathModeMask_ {
  SpvFPFastMathModeMaskNone = 0,
  SpvFPFastMathModeNotNaNMask = 0x00000001,
  SpvFPFastMathModeNotInfMask = 0x00000002,
  SpvFPFastMathModeNSZMask = 0x00000004,
  SpvFPFastMathModeAllowRecipMask = 0x00000008,
  SpvFPFastMathModeFastMask = 0x00000010,
  SpvFPFastMathModeAllowContractMask = 0x00010000,
  SpvFPFastMathModeAllowContractFastINTELMask = 0x00010000,
  SpvFPFastMathModeAllowReassocMask = 0x00020000,
  SpvFPFastMathModeAllowReassocINTELMask = 0x00020000,
  SpvFPFastMathModeAllowTransformMask = 0x00040000,
} SpvFPFastMathModeMask;

typedef enum SpvFPRoundingMode_ {
  SpvFPRoundingModeRTE = 0,
  SpvFPRoundingModeRTZ = 1,
  SpvFPRoundingModeRTP = 2,
  SpvFPRoundingModeRTN = 3,
  SpvFPRoundingModeMax = 0x7fffffff,
} SpvFPRoundingMode;

typedef enum SpvLinkageType_ {
  SpvLinkageTypeExport = 0,
  SpvLinkageTypeImport = 1,
  SpvLinkageTypeLinkOnceODR = 2,
  SpvLinkageTypeMax = 0x7fffffff,
} SpvLinkageType;

typedef enum SpvAccessQualifier_ {
  SpvAccessQualifierReadOnly = 0,
  SpvAccessQualifierWriteOnly = 1,
  SpvAccessQualifierReadWrite = 2,
  SpvAccessQualifierMax = 0x7fffffff,
} SpvAccessQualifier;

typedef enum SpvFunctionParameterAttribute_ {
  SpvFunctionParameterAttributeZext = 0,
  SpvFunctionParameterAttributeSext = 1,
  SpvFunctionParameterAttributeByVal = 2,
  SpvFunctionParameterAttributeSret = 3,
  SpvFunctionParameterAttributeNoAlias = 4,
  SpvFunctionParameterAttributeNoCapture = 5,
  SpvFunctionParameterAttributeNoWrite = 6,
  SpvFunctionParameterAttributeNoReadWrite = 7,
  SpvFunctionParameterAttributeRuntimeAlignedINTEL = 5940,
  SpvFunctionParameterAttributeMax = 0x7fffffff,
} SpvFunctionParameterAttribute;

typedef enum SpvDecoration_ {
  SpvDecorationRelaxedPrecision = 0,
  SpvDecorationSpecId = 1,
  SpvDecorationBlock = 2,
  SpvDecorationBufferBlock = 3,
  SpvDecorationRowMajor = 4,
  SpvDecorationColMajor = 5,
  SpvDecorationArrayStride = 6,
  SpvDecorationMatrixStride = 7,
  SpvDecorationGLSLShared = 8,
  SpvDecorationGLSLPacked = 9,
  SpvDecorationCPacked = 10,
  SpvDecorationBuiltIn = 11,
  SpvDecorationNoPerspective = 13,
  SpvDecorationFlat = 14,
  SpvDecorationPatch = 15,
  SpvDecorationCentroid = 16,
  SpvDecorationSample = 17,
  SpvDecorationInvariant = 18,
  SpvDecorationRestrict = 19,
  SpvDecorationAliased = 20,
  SpvDecorationVolatile = 21,
  SpvDecorationConstant = 22,
  SpvDecorationCoherent = 23,
  SpvDecorationNonWritable = 24,
  SpvDecorationNonReadable = 25,
  SpvDecorationUniform = 26,
  SpvDecorationUniformId = 27,
  SpvDecorationSaturatedConversion = 28,
  SpvDecorationStream = 29,
  SpvDecorationLocation = 30,
  SpvDecorationComponent = 31,
  SpvDecorationIndex = 32,
  SpvDecorationBinding = 33,
  SpvDecorationDescriptorSet = 34,
  SpvDecorationOffset = 35,
  SpvDecorationXfbBuffer = 36,
  SpvDecorationXfbStride = 37,
  SpvDecorationFuncParamAttr = 38,
  SpvDecorationFPRoundingMode = 39,
  SpvDecorationFPFastMathMode = 40,
  SpvDecorationLinkageAttributes = 41,
  SpvDecorationNoContraction = 42,
  SpvDecorationInputAttachmentIndex = 43,
  SpvDecorationAlignment = 44,
  SpvDecorationMaxByteOffset = 45,
  SpvDecorationAlignmentId = 46,
  SpvDecorationMaxByteOffsetId = 47,
  SpvDecorationSaturatedToLargestFloat8NormalConversionEXT = 4216,
  SpvDecorationNoSignedWrap = 4469,
  SpvDecorationNoUnsignedWrap = 4470,
  SpvDecorationWeightTextureQCOM = 4487,
  SpvDecorationBlockMatchTextureQCOM = 4488,
  SpvDecorationBlockMatchSamplerQCOM = 4499,
  SpvDecorationExplicitInterpAMD = 4999,
  SpvDecorationNodeSharesPayloadLimitsWithAMDX = 5019,
  SpvDecorationNodeMaxPayloadsAMDX = 5020,
  SpvDecorationTrackFinishWritingAMDX = 5078,
  SpvDecorationPayloadNodeNameAMDX = 5091,
  SpvDecorationPayloadNodeBaseIndexAMDX = 5098,
  SpvDecorationPayloadNodeSparseArrayAMDX = 5099,
  SpvDecorationPayloadNodeArraySizeAMDX = 5100,
  SpvDecorationPayloadDispatchIndirectAMDX = 5105,
  SpvDecorationOverrideCoverageNV = 5248,
  SpvDecorationPassthroughNV = 5250,
  SpvDecorationViewportRelativeNV = 5252,
  SpvDecorationSecondaryViewportRelativeNV = 5256,
  SpvDecorationPerPrimitiveEXT = 5271,
  SpvDecorationPerPrimitiveNV = 5271,
  SpvDecorationPerViewNV = 5272,
  SpvDecorationPerTaskNV = 5273,
  SpvDecorationPerVertexKHR = 5285,
  SpvDecorationPerVertexNV = 5285,
  SpvDecorationNonUniform = 5300,
  SpvDecorationNonUniformEXT = 5300,
  SpvDecorationRestrictPointer = 5355,
  SpvDecorationRestrictPointerEXT = 5355,
  SpvDecorationAliasedPointer = 5356,
  SpvDecorationAliasedPointerEXT = 5356,
  SpvDecorationHitObjectShaderRecordBufferNV = 5386,
  SpvDecorationBindlessSamplerNV = 5398,
  SpvDecorationBindlessImageNV = 5399,
  SpvDecorationBoundSamplerNV = 5400,
  SpvDecorationBoundImageNV = 5401,
  SpvDecorationSIMTCallINTEL = 5599,
  SpvDecorationReferencedIndirectlyINTEL = 5602,
  SpvDecorationClobberINTEL = 5607,
  SpvDecorationSideEffectsINTEL = 5608,
  SpvDecorationVectorComputeVariableINTEL = 5624,
  SpvDecorationFuncParamIOKindINTEL = 5625,
  SpvDecorationVectorComputeFunctionINTEL = 5626,
  SpvDecorationStackCallINTEL = 5627,
  SpvDecorationGlobalVariableOffsetINTEL = 5628,
  SpvDecorationCounterBuffer = 5634,
  SpvDecorationHlslCounterBufferGOOGLE = 5634,
  SpvDecorationHlslSemanticGOOGLE = 5635,
  SpvDecorationUserSemantic = 5635,
  SpvDecorationUserTypeGOOGLE = 5636,
  SpvDecorationFunctionRoundingModeINTEL = 5822,
  SpvDecorationFunctionDenormModeINTEL = 5823,
  SpvDecorationRegisterINTEL = 5825,
  SpvDecorationMemoryINTEL = 5826,
  SpvDecorationNumbanksINTEL = 5827,
  SpvDecorationBankwidthINTEL = 5828,
  SpvDecorationMaxPrivateCopiesINTEL = 5829,
  SpvDecorationSinglepumpINTEL = 5830,
  SpvDecorationDoublepumpINTEL = 5831,
  SpvDecorationMaxReplicatesINTEL = 5832,
  SpvDecorationSimpleDualPortINTEL = 5833,
  SpvDecorationMergeINTEL = 5834,
  SpvDecorationBankBitsINTEL = 5835,
  SpvDecorationForcePow2DepthINTEL = 5836,
  SpvDecorationStridesizeINTEL = 5883,
  SpvDecorationWordsizeINTEL = 5884,
  SpvDecorationTrueDualPortINTEL = 5885,
  SpvDecorationBurstCoalesceINTEL = 5899,
  SpvDecorationCacheSizeINTEL = 5900,
  SpvDecorationDontStaticallyCoalesceINTEL = 5901,
  SpvDecorationPrefetchINTEL = 5902,
  SpvDecorationStallEnableINTEL = 5905,
  SpvDecorationFuseLoopsInFunctionINTEL = 5907,
  SpvDecorationMathOpDSPModeINTEL = 5909,
  SpvDecorationAliasScopeINTEL = 5914,
  SpvDecorationNoAliasINTEL = 5915,
  SpvDecorationInitiationIntervalINTEL = 5917,
  SpvDecorationMaxConcurrencyINTEL = 5918,
  SpvDecorationPipelineEnableINTEL = 5919,
  SpvDecorationBufferLocationINTEL = 5921,
  SpvDecorationIOPipeStorageINTEL = 5944,
  SpvDecorationFunctionFloatingPointModeINTEL = 6080,
  SpvDecorationSingleElementVectorINTEL = 6085,
  SpvDecorationVectorComputeCallableFunctionINTEL = 6087,
  SpvDecorationMediaBlockIOINTEL = 6140,
  SpvDecorationStallFreeINTEL = 6151,
  SpvDecorationFPMaxErrorDecorationINTEL = 6170,
  SpvDecorationLatencyControlLabelINTEL = 6172,
  SpvDecorationLatencyControlConstraintINTEL = 6173,
  SpvDecorationConduitKernelArgumentINTEL = 6175,
  SpvDecorationRegisterMapKernelArgumentINTEL = 6176,
  SpvDecorationMMHostInterfaceAddressWidthINTEL = 6177,
  SpvDecorationMMHostInterfaceDataWidthINTEL = 6178,
  SpvDecorationMMHostInterfaceLatencyINTEL = 6179,
  SpvDecorationMMHostInterfaceReadWriteModeINTEL = 6180,
  SpvDecorationMMHostInterfaceMaxBurstINTEL = 6181,
  SpvDecorationMMHostInterfaceWaitRequestINTEL = 6182,
  SpvDecorationStableKernelArgumentINTEL = 6183,
  SpvDecorationHostAccessINTEL = 6188,
  SpvDecorationInitModeINTEL = 6190,
  SpvDecorationImplementInRegisterMapINTEL = 6191,
  SpvDecorationConditionalINTEL = 6247,
  SpvDecorationCacheControlLoadINTEL = 6442,
  SpvDecorationCacheControlStoreINTEL = 6443,
  SpvDecorationMax = 0x7fffffff,
} SpvDecoration;

typedef enum SpvBuiltIn_ {
  SpvBuiltInPosition = 0,
  SpvBuiltInPointSize = 1,
  SpvBuiltInClipDistance = 3,
  SpvBuiltInCullDistance = 4,
  SpvBuiltInVertexId = 5,
  SpvBuiltInInstanceId = 6,
  SpvBuiltInPrimitiveId = 7,
  SpvBuiltInInvocationId = 8,
  SpvBuiltInLayer = 9,
  SpvBuiltInViewportIndex = 10,
  SpvBuiltInTessLevelOuter = 11,
  SpvBuiltInTessLevelInner = 12,
  SpvBuiltInTessCoord = 13,
  SpvBuiltInPatchVertices = 14,
  SpvBuiltInFragCoord = 15,
  SpvBuiltInPointCoord = 16,
  SpvBuiltInFrontFacing = 17,
  SpvBuiltInSampleId = 18,
  SpvBuiltInSamplePosition = 19,
  SpvBuiltInSampleMask = 20,
  SpvBuiltInFragDepth = 22,
  SpvBuiltInHelperInvocation = 23,
  SpvBuiltInNumWorkgroups = 24,
  SpvBuiltInWorkgroupSize = 25,
  SpvBuiltInWorkgroupId = 26,
  SpvBuiltInLocalInvocationId = 27,
  SpvBuiltInGlobalInvocationId = 28,
  SpvBuiltInLocalInvocationIndex = 29,
  SpvBuiltInWorkDim = 30,
  SpvBuiltInGlobalSize = 31,
  SpvBuiltInEnqueuedWorkgroupSize = 32,
  SpvBuiltInGlobalOffset = 33,
  SpvBuiltInGlobalLinearId = 34,
  SpvBuiltInSubgroupSize = 36,
  SpvBuiltInSubgroupMaxSize = 37,
  SpvBuiltInNumSubgroups = 38,
  SpvBuiltInNumEnqueuedSubgroups = 39,
  SpvBuiltInSubgroupId = 40,
  SpvBuiltInSubgroupLocalInvocationId = 41,
  SpvBuiltInVertexIndex = 42,
  SpvBuiltInInstanceIndex = 43,
  SpvBuiltInCoreIDARM = 4160,
  SpvBuiltInCoreCountARM = 4161,
  SpvBuiltInCoreMaxIDARM = 4162,
  SpvBuiltInWarpIDARM = 4163,
  SpvBuiltInWarpMaxIDARM = 4164,
  SpvBuiltInSubgroupEqMask = 4416,
  SpvBuiltInSubgroupEqMaskKHR = 4416,
  SpvBuiltInSubgroupGeMask = 4417,
  SpvBuiltInSubgroupGeMaskKHR = 4417,
  SpvBuiltInSubgroupGtMask = 4418,
  SpvBuiltInSubgroupGtMaskKHR = 4418,
  SpvBuiltInSubgroupLeMask = 4419,
  SpvBuiltInSubgroupLeMaskKHR = 4419,
  SpvBuiltInSubgroupLtMask = 4420,
  SpvBuiltInSubgroupLtMaskKHR = 4420,
  SpvBuiltInBaseVertex = 4424,
  SpvBuiltInBaseInstance = 4425,
  SpvBuiltInDrawIndex = 4426,
  SpvBuiltInPrimitiveShadingRateKHR = 4432,
  SpvBuiltInDeviceIndex = 4438,
  SpvBuiltInViewIndex = 4440,
  SpvBuiltInShadingRateKHR = 4444,
  SpvBuiltInTileOffsetQCOM = 4492,
  SpvBuiltInTileDimensionQCOM = 4493,
  SpvBuiltInTileApronSizeQCOM = 4494,
  SpvBuiltInBaryCoordNoPerspAMD = 4992,
  SpvBuiltInBaryCoordNoPerspCentroidAMD = 4993,
  SpvBuiltInBaryCoordNoPerspSampleAMD = 4994,
  SpvBuiltInBaryCoordSmoothAMD = 4995,
  SpvBuiltInBaryCoordSmoothCentroidAMD = 4996,
  SpvBuiltInBaryCoordSmoothSampleAMD = 4997,
  SpvBuiltInBaryCoordPullModelAMD = 4998,
  SpvBuiltInFragStencilRefEXT = 5014,
  SpvBuiltInRemainingRecursionLevelsAMDX = 5021,
  SpvBuiltInShaderIndexAMDX = 5073,
  SpvBuiltInViewportMaskNV = 5253,
  SpvBuiltInSecondaryPositionNV = 5257,
  SpvBuiltInSecondaryViewportMaskNV = 5258,
  SpvBuiltInPositionPerViewNV = 5261,
  SpvBuiltInViewportMaskPerViewNV = 5262,
  SpvBuiltInFullyCoveredEXT = 5264,
  SpvBuiltInTaskCountNV = 5274,
  SpvBuiltInPrimitiveCountNV = 5275,
  SpvBuiltInPrimitiveIndicesNV = 5276,
  SpvBuiltInClipDistancePerViewNV = 5277,
  SpvBuiltInCullDistancePerViewNV = 5278,
  SpvBuiltInLayerPerViewNV = 5279,
  SpvBuiltInMeshViewCountNV = 5280,
  SpvBuiltInMeshViewIndicesNV = 5281,
  SpvBuiltInBaryCoordKHR = 5286,
  SpvBuiltInBaryCoordNV = 5286,
  SpvBuiltInBaryCoordNoPerspKHR = 5287,
  SpvBuiltInBaryCoordNoPerspNV = 5287,
  SpvBuiltInFragSizeEXT = 5292,
  SpvBuiltInFragmentSizeNV = 5292,
  SpvBuiltInFragInvocationCountEXT = 5293,
  SpvBuiltInInvocationsPerPixelNV = 5293,
  SpvBuiltInPrimitivePointIndicesEXT = 5294,
  SpvBuiltInPrimitiveLineIndicesEXT = 5295,
  SpvBuiltInPrimitiveTriangleIndicesEXT = 5296,
  SpvBuiltInCullPrimitiveEXT = 5299,
  SpvBuiltInLaunchIdKHR = 5319,
  SpvBuiltInLaunchIdNV = 5319,
  SpvBuiltInLaunchSizeKHR = 5320,
  SpvBuiltInLaunchSizeNV = 5320,
  SpvBuiltInWorldRayOriginKHR = 5321,
  SpvBuiltInWorldRayOriginNV = 5321,
  SpvBuiltInWorldRayDirectionKHR = 5322,
  SpvBuiltInWorldRayDirectionNV = 5322,
  SpvBuiltInObjectRayOriginKHR = 5323,
  SpvBuiltInObjectRayOriginNV = 5323,
  SpvBuiltInObjectRayDirectionKHR = 5324,
  SpvBuiltInObjectRayDirectionNV = 5324,
  SpvBuiltInRayTminKHR = 5325,
  SpvBuiltInRayTminNV = 5325,
  SpvBuiltInRayTmaxKHR = 5326,
  SpvBuiltInRayTmaxNV = 5326,
  SpvBuiltInInstanceCustomIndexKHR = 5327,
  SpvBuiltInInstanceCustomIndexNV = 5327,
  SpvBuiltInObjectToWorldKHR = 5330,
  SpvBuiltInObjectToWorldNV = 5330,
  SpvBuiltInWorldToObjectKHR = 5331,
  SpvBuiltInWorldToObjectNV = 5331,
  SpvBuiltInHitTNV = 5332,
  SpvBuiltInHitKindKHR = 5333,
  SpvBuiltInHitKindNV = 5333,
  SpvBuiltInCurrentRayTimeNV = 5334,
  SpvBuiltInHitTriangleVertexPositionsKHR = 5335,
  SpvBuiltInHitMicroTriangleVertexPositionsNV = 5337,
  SpvBuiltInHitMicroTriangleVertexBarycentricsNV = 5344,
  SpvBuiltInIncomingRayFlagsKHR = 5351,
  SpvBuiltInIncomingRayFlagsNV = 5351,
  SpvBuiltInRayGeometryIndexKHR = 5352,
  SpvBuiltInHitIsSphereNV = 5359,
  SpvBuiltInHitIsLSSNV = 5360,
  SpvBuiltInHitSpherePositionNV = 5361,
  SpvBuiltInWarpsPerSMNV = 5374,
  SpvBuiltInSMCountNV = 5375,
  SpvBuiltInWarpIDNV = 5376,
  SpvBuiltInSMIDNV = 5377,
  SpvBuiltInHitLSSPositionsNV = 5396,
  SpvBuiltInHitKindFrontFacingMicroTriangleNV = 5405,
  SpvBuiltInHitKindBackFacingMicroTriangleNV = 5406,
  SpvBuiltInHitSphereRadiusNV = 5420,
  SpvBuiltInHitLSSRadiiNV = 5421,
  SpvBuiltInClusterIDNV = 5436,
  SpvBuiltInCullMaskKHR = 6021,
  SpvBuiltInMax = 0x7fffffff,
} SpvBuiltIn;

typedef enum SpvSelectionControlShift_ {
  SpvSelectionControlFlattenShift = 0,
  SpvSelectionControlDontFlattenShift = 1,
  SpvSelectionControlMax = 0x7fffffff,
} SpvSelectionControlShift;

typedef enum SpvSelectionControlMask_ {
  SpvSelectionControlMaskNone = 0,
  SpvSelectionControlFlattenMask = 0x00000001,
  SpvSelectionControlDontFlattenMask = 0x00000002,
} SpvSelectionControlMask;

typedef enum SpvLoopControlShift_ {
  SpvLoopControlUnrollShift = 0,
  SpvLoopControlDontUnrollShift = 1,
  SpvLoopControlDependencyInfiniteShift = 2,
  SpvLoopControlDependencyLengthShift = 3,
  SpvLoopControlMinIterationsShift = 4,
  SpvLoopControlMaxIterationsShift = 5,
  SpvLoopControlIterationMultipleShift = 6,
  SpvLoopControlPeelCountShift = 7,
  SpvLoopControlPartialCountShift = 8,
  SpvLoopControlInitiationIntervalINTELShift = 16,
  SpvLoopControlMaxConcurrencyINTELShift = 17,
  SpvLoopControlDependencyArrayINTELShift = 18,
  SpvLoopControlPipelineEnableINTELShift = 19,
  SpvLoopControlLoopCoalesceINTELShift = 20,
  SpvLoopControlMaxInterleavingINTELShift = 21,
  SpvLoopControlSpeculatedIterationsINTELShift = 22,
  SpvLoopControlNoFusionINTELShift = 23,
  SpvLoopControlLoopCountINTELShift = 24,
  SpvLoopControlMaxReinvocationDelayINTELShift = 25,
  SpvLoopControlMax = 0x7fffffff,
} SpvLoopControlShift;

typedef enum SpvLoopControlMask_ {
  SpvLoopControlMaskNone = 0,
  SpvLoopControlUnrollMask = 0x00000001,
  SpvLoopControlDontUnrollMask = 0x00000002,
  SpvLoopControlDependencyInfiniteMask = 0x00000004,
  SpvLoopControlDependencyLengthMask = 0x00000008,
  SpvLoopControlMinIterationsMask = 0x00000010,
  SpvLoopControlMaxIterationsMask = 0x00000020,
  SpvLoopControlIterationMultipleMask = 0x00000040,
  SpvLoopControlPeelCountMask = 0x00000080,
  SpvLoopControlPartialCountMask = 0x00000100,
  SpvLoopControlInitiationIntervalINTELMask = 0x00010000,
  SpvLoopControlMaxConcurrencyINTELMask = 0x00020000,
  SpvLoopControlDependencyArrayINTELMask = 0x00040000,
  SpvLoopControlPipelineEnableINTELMask = 0x00080000,
  SpvLoopControlLoopCoalesceINTELMask = 0x00100000,
  SpvLoopControlMaxInterleavingINTELMask = 0x00200000,
  SpvLoopControlSpeculatedIterationsINTELMask = 0x00400000,
  SpvLoopControlNoFusionINTELMask = 0x00800000,
  SpvLoopControlLoopCountINTELMask = 0x01000000,
  SpvLoopControlMaxReinvocationDelayINTELMask = 0x02000000,
} SpvLoopControlMask;

typedef enum SpvFunctionControlShift_ {
  SpvFunctionControlInlineShift = 0,
  SpvFunctionControlDontInlineShift = 1,
  SpvFunctionControlPureShift = 2,
  SpvFunctionControlConstShift = 3,
  SpvFunctionControlOptNoneEXTShift = 16,
  SpvFunctionControlOptNoneINTELShift = 16,
  SpvFunctionControlMax = 0x7fffffff,
} SpvFunctionControlShift;

typedef enum SpvFunctionControlMask_ {
  SpvFunctionControlMaskNone = 0,
  SpvFunctionControlInlineMask = 0x00000001,
  SpvFunctionControlDontInlineMask = 0x00000002,
  SpvFunctionControlPureMask = 0x00000004,
  SpvFunctionControlConstMask = 0x00000008,
  SpvFunctionControlOptNoneEXTMask = 0x00010000,
  SpvFunctionControlOptNoneINTELMask = 0x00010000,
} SpvFunctionControlMask;

typedef enum SpvMemorySemanticsShift_ {
  SpvMemorySemanticsAcquireShift = 1,
  SpvMemorySemanticsReleaseShift = 2,
  SpvMemorySemanticsAcquireReleaseShift = 3,
  SpvMemorySemanticsSequentiallyConsistentShift = 4,
  SpvMemorySemanticsUniformMemoryShift = 6,
  SpvMemorySemanticsSubgroupMemoryShift = 7,
  SpvMemorySemanticsWorkgroupMemoryShift = 8,
  SpvMemorySemanticsCrossWorkgroupMemoryShift = 9,
  SpvMemorySemanticsAtomicCounterMemoryShift = 10,
  SpvMemorySemanticsImageMemoryShift = 11,
  SpvMemorySemanticsOutputMemoryShift = 12,
  SpvMemorySemanticsOutputMemoryKHRShift = 12,
  SpvMemorySemanticsMakeAvailableShift = 13,
  SpvMemorySemanticsMakeAvailableKHRShift = 13,
  SpvMemorySemanticsMakeVisibleShift = 14,
  SpvMemorySemanticsMakeVisibleKHRShift = 14,
  SpvMemorySemanticsVolatileShift = 15,
  SpvMemorySemanticsMax = 0x7fffffff,
} SpvMemorySemanticsShift;

typedef enum SpvMemorySemanticsMask_ {
  SpvMemorySemanticsMaskNone = 0,
  SpvMemorySemanticsAcquireMask = 0x00000002,
  SpvMemorySemanticsReleaseMask = 0x00000004,
  SpvMemorySemanticsAcquireReleaseMask = 0x00000008,
  SpvMemorySemanticsSequentiallyConsistentMask = 0x00000010,
  SpvMemorySemanticsUniformMemoryMask = 0x00000040,
  SpvMemorySemanticsSubgroupMemoryMask = 0x00000080,
  SpvMemorySemanticsWorkgroupMemoryMask = 0x00000100,
  SpvMemorySemanticsCrossWorkgroupMemoryMask = 0x00000200,
  SpvMemorySemanticsAtomicCounterMemoryMask = 0x00000400,
  SpvMemorySemanticsImageMemoryMask = 0x00000800,
  SpvMemorySemanticsOutputMemoryMask = 0x00001000,
  SpvMemorySemanticsOutputMemoryKHRMask = 0x00001000,
  SpvMemorySemanticsMakeAvailableMask = 0x00002000,
  SpvMemorySemanticsMakeAvailableKHRMask = 0x00002000,
  SpvMemorySemanticsMakeVisibleMask = 0x00004000,
  SpvMemorySemanticsMakeVisibleKHRMask = 0x00004000,
  SpvMemorySemanticsVolatileMask = 0x00008000,
} SpvMemorySemanticsMask;

typedef enum SpvMemoryAccessShift_ {
  SpvMemoryAccessVolatileShift = 0,
  SpvMemoryAccessAlignedShift = 1,
  SpvMemoryAccessNontemporalShift = 2,
  SpvMemoryAccessMakePointerAvailableShift = 3,
  SpvMemoryAccessMakePointerAvailableKHRShift = 3,
  SpvMemoryAccessMakePointerVisibleShift = 4,
  SpvMemoryAccessMakePointerVisibleKHRShift = 4,
  SpvMemoryAccessNonPrivatePointerShift = 5,
  SpvMemoryAccessNonPrivatePointerKHRShift = 5,
  SpvMemoryAccessAliasScopeINTELMaskShift = 16,
  SpvMemoryAccessNoAliasINTELMaskShift = 17,
  SpvMemoryAccessMax = 0x7fffffff,
} SpvMemoryAccessShift;

typedef enum SpvMemoryAccessMask_ {
  SpvMemoryAccessMaskNone = 0,
  SpvMemoryAccessVolatileMask = 0x00000001,
  SpvMemoryAccessAlignedMask = 0x00000002,
  SpvMemoryAccessNontemporalMask = 0x00000004,
  SpvMemoryAccessMakePointerAvailableMask = 0x00000008,
  SpvMemoryAccessMakePointerAvailableKHRMask = 0x00000008,
  SpvMemoryAccessMakePointerVisibleMask = 0x00000010,
  SpvMemoryAccessMakePointerVisibleKHRMask = 0x00000010,
  SpvMemoryAccessNonPrivatePointerMask = 0x00000020,
  SpvMemoryAccessNonPrivatePointerKHRMask = 0x00000020,
  SpvMemoryAccessAliasScopeINTELMaskMask = 0x00010000,
  SpvMemoryAccessNoAliasINTELMaskMask = 0x00020000,
} SpvMemoryAccessMask;

typedef enum SpvScope_ {
  SpvScopeCrossDevice = 0,
  SpvScopeDevice = 1,
  SpvScopeWorkgroup = 2,
  SpvScopeSubgroup = 3,
  SpvScopeInvocation = 4,
  SpvScopeQueueFamily = 5,
  SpvScopeQueueFamilyKHR = 5,
  SpvScopeShaderCallKHR = 6,
  SpvScopeMax = 0x7fffffff,
} SpvScope;

typedef enum SpvGroupOperation_ {
  SpvGroupOperationReduce = 0,
  SpvGroupOperationInclusiveScan = 1,
  SpvGroupOperationExclusiveScan = 2,
  SpvGroupOperationClusteredReduce = 3,
  SpvGroupOperationPartitionedReduceNV = 6,
  SpvGroupOperationPartitionedInclusiveScanNV = 7,
  SpvGroupOperationPartitionedExclusiveScanNV = 8,
  SpvGroupOperationMax = 0x7fffffff,
} SpvGroupOperation;

typedef enum SpvKernelEnqueueFlags_ {
  SpvKernelEnqueueFlagsNoWait = 0,
  SpvKernelEnqueueFlagsWaitKernel = 1,
  SpvKernelEnqueueFlagsWaitWorkGroup = 2,
  SpvKernelEnqueueFlagsMax = 0x7fffffff,
} SpvKernelEnqueueFlags;

typedef enum SpvKernelProfilingInfoShift_ {
  SpvKernelProfilingInfoCmdExecTimeShift = 0,
  SpvKernelProfilingInfoMax = 0x7fffffff,
} SpvKernelProfilingInfoShift;

typedef enum SpvKernelProfilingInfoMask_ {
  SpvKernelProfilingInfoMaskNone = 0,
  SpvKernelProfilingInfoCmdExecTimeMask = 0x00000001,
} SpvKernelProfilingInfoMask;

typedef enum SpvCapability_ {
  SpvCapabilityMatrix = 0,
  SpvCapabilityShader = 1,
  SpvCapabilityGeometry = 2,
  SpvCapabilityTessellation = 3,
  SpvCapabilityAddresses = 4,
  SpvCapabilityLinkage = 5,
  SpvCapabilityKernel = 6,
  SpvCapabilityVector16 = 7,
  SpvCapabilityFloat16Buffer = 8,
  SpvCapabilityFloat16 = 9,
  SpvCapabilityFloat64 = 10,
  SpvCapabilityInt64 = 11,
  SpvCapabilityInt64Atomics = 12,
  SpvCapabilityImageBasic = 13,
  SpvCapabilityImageReadWrite = 14,
  SpvCapabilityImageMipmap = 15,
  SpvCapabilityPipes = 17,
  SpvCapabilityGroups = 18,
  SpvCapabilityDeviceEnqueue = 19,
  SpvCapabilityLiteralSampler = 20,
  SpvCapabilityAtomicStorage = 21,
  SpvCapabilityInt16 = 22,
  SpvCapabilityTessellationPointSize = 23,
  SpvCapabilityGeometryPointSize = 24,
  SpvCapabilityImageGatherExtended = 25,
  SpvCapabilityStorageImageMultisample = 27,
  SpvCapabilityUniformBufferArrayDynamicIndexing = 28,
  SpvCapabilitySampledImageArrayDynamicIndexing = 29,
  SpvCapabilityStorageBufferArrayDynamicIndexing = 30,
  SpvCapabilityStorageImageArrayDynamicIndexing = 31,
  SpvCapabilityClipDistance = 32,
  SpvCapabilityCullDistance = 33,
  SpvCapabilityImageCubeArray = 34,
  SpvCapabilitySampleRateShading = 35,
  SpvCapabilityImageRect = 36,
  SpvCapabilitySampledRect = 37,
  SpvCapabilityGenericPointer = 38,
  SpvCapabilityInt8 = 39,
  SpvCapabilityInputAttachment = 40,
  SpvCapabilitySparseResidency = 41,
  SpvCapabilityMinLod = 42,
  SpvCapabilitySampled1D = 43,
  SpvCapabilityImage1D = 44,
  SpvCapabilitySampledCubeArray = 45,
  SpvCapabilitySampledBuffer = 46,
  SpvCapabilityImageBuffer = 47,
  SpvCapabilityImageMSArray = 48,
  SpvCapabilityStorageImageExtendedFormats = 49,
  SpvCapabilityImageQuery = 50,
  SpvCapabilityDerivativeControl = 51,
  SpvCapabilityInterpolationFunction = 52,
  SpvCapabilityTransformFeedback = 53,
  SpvCapabilityGeometryStreams = 54,
  SpvCapabilityStorageImageReadWithoutFormat = 55,
  SpvCapabilityStorageImageWriteWithoutFormat = 56,
  SpvCapabilityMultiViewport = 57,
  SpvCapabilitySubgroupDispatch = 58,
  SpvCapabilityNamedBarrier = 59,
  SpvCapabilityPipeStorage = 60,
  SpvCapabilityGroupNonUniform = 61,
  SpvCapabilityGroupNonUniformVote = 62,
  SpvCapabilityGroupNonUniformArithmetic = 63,
  SpvCapabilityGroupNonUniformBallot = 64,
  SpvCapabilityGroupNonUniformShuffle = 65,
  SpvCapabilityGroupNonUniformShuffleRelative = 66,
  SpvCapabilityGroupNonUniformClustered = 67,
  SpvCapabilityGroupNonUniformQuad = 68,
  SpvCapabilityShaderLayer = 69,
  SpvCapabilityShaderViewportIndex = 70,
  SpvCapabilityUniformDecoration = 71,
  SpvCapabilityCoreBuiltinsARM = 4165,
  SpvCapabilityTileImageColorReadAccessEXT = 4166,
  SpvCapabilityTileImageDepthReadAccessEXT = 4167,
  SpvCapabilityTileImageStencilReadAccessEXT = 4168,
  SpvCapabilityTensorsARM = 4174,
  SpvCapabilityStorageTensorArrayDynamicIndexingARM = 4175,
  SpvCapabilityStorageTensorArrayNonUniformIndexingARM = 4176,
  SpvCapabilityGraphARM = 4191,
  SpvCapabilityCooperativeMatrixLayoutsARM = 4201,
  SpvCapabilityFloat8EXT = 4212,
  SpvCapabilityFloat8CooperativeMatrixEXT = 4213,
  SpvCapabilityFragmentShadingRateKHR = 4422,
  SpvCapabilitySubgroupBallotKHR = 4423,
  SpvCapabilityDrawParameters = 4427,
  SpvCapabilityWorkgroupMemoryExplicitLayoutKHR = 4428,
  SpvCapabilityWorkgroupMemoryExplicitLayout8BitAccessKHR = 4429,
  SpvCapabilityWorkgroupMemoryExplicitLayout16BitAccessKHR = 4430,
  SpvCapabilitySubgroupVoteKHR = 4431,
  SpvCapabilityStorageBuffer16BitAccess = 4433,
  SpvCapabilityStorageUniformBufferBlock16 = 4433,
  SpvCapabilityStorageUniform16 = 4434,
  SpvCapabilityUniformAndStorageBuffer16BitAccess = 4434,
  SpvCapabilityStoragePushConstant16 = 4435,
  SpvCapabilityStorageInputOutput16 = 4436,
  SpvCapabilityDeviceGroup = 4437,
  SpvCapabilityMultiView = 4439,
  SpvCapabilityVariablePointersStorageBuffer = 4441,
  SpvCapabilityVariablePointers = 4442,
  SpvCapabilityAtomicStorageOps = 4445,
  SpvCapabilitySampleMaskPostDepthCoverage = 4447,
  SpvCapabilityStorageBuffer8BitAccess = 4448,
  SpvCapabilityUniformAndStorageBuffer8BitAccess = 4449,
  SpvCapabilityStoragePushConstant8 = 4450,
  SpvCapabilityDenormPreserve = 4464,
  SpvCapabilityDenormFlushToZero = 4465,
  SpvCapabilitySignedZeroInfNanPreserve = 4466,
  SpvCapabilityRoundingModeRTE = 4467,
  SpvCapabilityRoundingModeRTZ = 4468,
  SpvCapabilityRayQueryProvisionalKHR = 4471,
  SpvCapabilityRayQueryKHR = 4472,
  SpvCapabilityUntypedPointersKHR = 4473,
  SpvCapabilityRayTraversalPrimitiveCullingKHR = 4478,
  SpvCapabilityRayTracingKHR = 4479,
  SpvCapabilityTextureSampleWeightedQCOM = 4484,
  SpvCapabilityTextureBoxFilterQCOM = 4485,
  SpvCapabilityTextureBlockMatchQCOM = 4486,
  SpvCapabilityTileShadingQCOM = 4495,
  SpvCapabilityCooperativeMatrixConversionQCOM = 4496,
  SpvCapabilityTextureBlockMatch2QCOM = 4498,
  SpvCapabilityFloat16ImageAMD = 5008,
  SpvCapabilityImageGatherBiasLodAMD = 5009,
  SpvCapabilityFragmentMaskAMD = 5010,
  SpvCapabilityStencilExportEXT = 5013,
  SpvCapabilityImageReadWriteLodAMD = 5015,
  SpvCapabilityInt64ImageEXT = 5016,
  SpvCapabilityShaderClockKHR = 5055,
  SpvCapabilityShaderEnqueueAMDX = 5067,
  SpvCapabilityQuadControlKHR = 5087,
  SpvCapabilityInt4TypeINTEL = 5112,
  SpvCapabilityInt4CooperativeMatrixINTEL = 5114,
  SpvCapabilityBFloat16TypeKHR = 5116,
  SpvCapabilityBFloat16DotProductKHR = 5117,
  SpvCapabilityBFloat16CooperativeMatrixKHR = 5118,
  SpvCapabilitySampleMaskOverrideCoverageNV = 5249,
  SpvCapabilityGeometryShaderPassthroughNV = 5251,
  SpvCapabilityShaderViewportIndexLayerEXT = 5254,
  SpvCapabilityShaderViewportIndexLayerNV = 5254,
  SpvCapabilityShaderViewportMaskNV = 5255,
  SpvCapabilityShaderStereoViewNV = 5259,
  SpvCapabilityPerViewAttributesNV = 5260,
  SpvCapabilityFragmentFullyCoveredEXT = 5265,
  SpvCapabilityMeshShadingNV = 5266,
  SpvCapabilityImageFootprintNV = 5282,
  SpvCapabilityMeshShadingEXT = 5283,
  SpvCapabilityFragmentBarycentricKHR = 5284,
  SpvCapabilityFragmentBarycentricNV = 5284,
  SpvCapabilityComputeDerivativeGroupQuadsKHR = 5288,
  SpvCapabilityComputeDerivativeGroupQuadsNV = 5288,
  SpvCapabilityFragmentDensityEXT = 5291,
  SpvCapabilityShadingRateNV = 5291,
  SpvCapabilityGroupNonUniformPartitionedNV = 5297,
  SpvCapabilityShaderNonUniform = 5301,
  SpvCapabilityShaderNonUniformEXT = 5301,
  SpvCapabilityRuntimeDescriptorArray = 5302,
  SpvCapabilityRuntimeDescriptorArrayEXT = 5302,
  SpvCapabilityInputAttachmentArrayDynamicIndexing = 5303,
  SpvCapabilityInputAttachmentArrayDynamicIndexingEXT = 5303,
  SpvCapabilityUniformTexelBufferArrayDynamicIndexing = 5304,
  SpvCapabilityUniformTexelBufferArrayDynamicIndexingEXT = 5304,
  SpvCapabilityStorageTexelBufferArrayDynamicIndexing = 5305,
  SpvCapabilityStorageTexelBufferArrayDynamicIndexingEXT = 5305,
  SpvCapabilityUniformBufferArrayNonUniformIndexing = 5306,
  SpvCapabilityUniformBufferArrayNonUniformIndexingEXT = 5306,
  SpvCapabilitySampledImageArrayNonUniformIndexing = 5307,
  SpvCapabilitySampledImageArrayNonUniformIndexingEXT = 5307,
  SpvCapabilityStorageBufferArrayNonUniformIndexing = 5308,
  SpvCapabilityStorageBufferArrayNonUniformIndexingEXT = 5308,
  SpvCapabilityStorageImageArrayNonUniformIndexing = 5309,
  SpvCapabilityStorageImageArrayNonUniformIndexingEXT = 5309,
  SpvCapabilityInputAttachmentArrayNonUniformIndexing = 5310,
  SpvCapabilityInputAttachmentArrayNonUniformIndexingEXT = 5310,
  SpvCapabilityUniformTexelBufferArrayNonUniformIndexing = 5311,
  SpvCapabilityUniformTexelBufferArrayNonUniformIndexingEXT = 5311,
  SpvCapabilityStorageTexelBufferArrayNonUniformIndexing = 5312,
  SpvCapabilityStorageTexelBufferArrayNonUniformIndexingEXT = 5312,
  SpvCapabilityRayTracingPositionFetchKHR = 5336,
  SpvCapabilityRayTracingNV = 5340,
  SpvCapabilityRayTracingMotionBlurNV = 5341,
  SpvCapabilityVulkanMemoryModel = 5345,
  SpvCapabilityVulkanMemoryModelKHR = 5345,
  SpvCapabilityVulkanMemoryModelDeviceScope = 5346,
  SpvCapabilityVulkanMemoryModelDeviceScopeKHR = 5346,
  SpvCapabilityPhysicalStorageBufferAddresses = 5347,
  SpvCapabilityPhysicalStorageBufferAddressesEXT = 5347,
  SpvCapabilityComputeDerivativeGroupLinearKHR = 5350,
  SpvCapabilityComputeDerivativeGroupLinearNV = 5350,
  SpvCapabilityRayTracingProvisionalKHR = 5353,
  SpvCapabilityCooperativeMatrixNV = 5357,
  SpvCapabilityFragmentShaderSampleInterlockEXT = 5363,
  SpvCapabilityFragmentShaderShadingRateInterlockEXT = 5372,
  SpvCapabilityShaderSMBuiltinsNV = 5373,
  SpvCapabilityFragmentShaderPixelInterlockEXT = 5378,
  SpvCapabilityDemoteToHelperInvocation = 5379,
  SpvCapabilityDemoteToHelperInvocationEXT = 5379,
  SpvCapabilityDisplacementMicromapNV = 5380,
  SpvCapabilityRayTracingOpacityMicromapEXT = 5381,
  SpvCapabilityShaderInvocationReorderNV = 5383,
  SpvCapabilityBindlessTextureNV = 5390,
  SpvCapabilityRayQueryPositionFetchKHR = 5391,
  SpvCapabilityCooperativeVectorNV = 5394,
  SpvCapabilityAtomicFloat16VectorNV = 5404,
  SpvCapabilityRayTracingDisplacementMicromapNV = 5409,
  SpvCapabilityRawAccessChainsNV = 5414,
  SpvCapabilityRayTracingSpheresGeometryNV = 5418,
  SpvCapabilityRayTracingLinearSweptSpheresGeometryNV = 5419,
  SpvCapabilityCooperativeMatrixReductionsNV = 5430,
  SpvCapabilityCooperativeMatrixConversionsNV = 5431,
  SpvCapabilityCooperativeMatrixPerElementOperationsNV = 5432,
  SpvCapabilityCooperativeMatrixTensorAddressingNV = 5433,
  SpvCapabilityCooperativeMatrixBlockLoadsNV = 5434,
  SpvCapabilityCooperativeVectorTrainingNV = 5435,
  SpvCapabilityRayTracingClusterAccelerationStructureNV = 5437,
  SpvCapabilityTensorAddressingNV = 5439,
  SpvCapabilitySubgroupShuffleINTEL = 5568,
  SpvCapabilitySubgroupBufferBlockIOINTEL = 5569,
  SpvCapabilitySubgroupImageBlockIOINTEL = 5570,
  SpvCapabilitySubgroupImageMediaBlockIOINTEL = 5579,
  SpvCapabilityRoundToInfinityINTEL = 5582,
  SpvCapabilityFloatingPointModeINTEL = 5583,
  SpvCapabilityIntegerFunctions2INTEL = 5584,
  SpvCapabilityFunctionPointersINTEL = 5603,
  SpvCapabilityIndirectReferencesINTEL = 5604,
  SpvCapabilityAsmINTEL = 5606,
  SpvCapabilityAtomicFloat32MinMaxEXT = 5612,
  SpvCapabilityAtomicFloat64MinMaxEXT = 5613,
  SpvCapabilityAtomicFloat16MinMaxEXT = 5616,
  SpvCapabilityVectorComputeINTEL = 5617,
  SpvCapabilityVectorAnyINTEL = 5619,
  SpvCapabilityExpectAssumeKHR = 5629,
  SpvCapabilitySubgroupAvcMotionEstimationINTEL = 5696,
  SpvCapabilitySubgroupAvcMotionEstimationIntraINTEL = 5697,
  SpvCapabilitySubgroupAvcMotionEstimationChromaINTEL = 5698,
  SpvCapabilityVariableLengthArrayINTEL = 5817,
  SpvCapabilityFunctionFloatControlINTEL = 5821,
  SpvCapabilityFPGAMemoryAttributesINTEL = 5824,
  SpvCapabilityFPFastMathModeINTEL = 5837,
  SpvCapabilityArbitraryPrecisionIntegersINTEL = 5844,
  SpvCapabilityArbitraryPrecisionFloatingPointINTEL = 5845,
  SpvCapabilityUnstructuredLoopControlsINTEL = 5886,
  SpvCapabilityFPGALoopControlsINTEL = 5888,
  SpvCapabilityKernelAttributesINTEL = 5892,
  SpvCapabilityFPGAKernelAttributesINTEL = 5897,
  SpvCapabilityFPGAMemoryAccessesINTEL = 5898,
  SpvCapabilityFPGAClusterAttributesINTEL = 5904,
  SpvCapabilityLoopFuseINTEL = 5906,
  SpvCapabilityFPGADSPControlINTEL = 5908,
  SpvCapabilityMemoryAccessAliasingINTEL = 5910,
  SpvCapabilityFPGAInvocationPipeliningAttributesINTEL = 5916,
  SpvCapabilityFPGABufferLocationINTEL = 5920,
  SpvCapabilityArbitraryPrecisionFixedPointINTEL = 5922,
  SpvCapabilityUSMStorageClassesINTEL = 5935,
  SpvCapabilityRuntimeAlignedAttributeINTEL = 5939,
  SpvCapabilityIOPipesINTEL = 5943,
  SpvCapabilityBlockingPipesINTEL = 5945,
  SpvCapabilityFPGARegINTEL = 5948,
  SpvCapabilityDotProductInputAll = 6016,
  SpvCapabilityDotProductInputAllKHR = 6016,
  SpvCapabilityDotProductInput4x8Bit = 6017,
  SpvCapabilityDotProductInput4x8BitKHR = 6017,
  SpvCapabilityDotProductInput4x8BitPacked = 6018,
  SpvCapabilityDotProductInput4x8BitPackedKHR = 6018,
  SpvCapabilityDotProduct = 6019,
  SpvCapabilityDotProductKHR = 6019,
  SpvCapabilityRayCullMaskKHR = 6020,
  SpvCapabilityCooperativeMatrixKHR = 6022,
  SpvCapabilityReplicatedCompositesEXT = 6024,
  SpvCapabilityBitInstructions = 6025,
  SpvCapabilityGroupNonUniformRotateKHR = 6026,
  SpvCapabilityFloatControls2 = 6029,
  SpvCapabilityAtomicFloat32AddEXT = 6033,
  SpvCapabilityAtomicFloat64AddEXT = 6034,
  SpvCapabilityLongCompositesINTEL = 6089,
  SpvCapabilityOptNoneEXT = 6094,
  SpvCapabilityOptNoneINTEL = 6094,
  SpvCapabilityAtomicFloat16AddEXT = 6095,
  SpvCapabilityDebugInfoModuleINTEL = 6114,
  SpvCapabilityBFloat16ConversionINTEL = 6115,
  SpvCapabilitySplitBarrierINTEL = 6141,
  SpvCapabilityArithmeticFenceEXT = 6144,
  SpvCapabilityFPGAClusterAttributesV2INTEL = 6150,
  SpvCapabilityFPGAKernelAttributesv2INTEL = 6161,
  SpvCapabilityTaskSequenceINTEL = 6162,
  SpvCapabilityFPMaxErrorINTEL = 6169,
  SpvCapabilityFPGALatencyControlINTEL = 6171,
  SpvCapabilityFPGAArgumentInterfacesINTEL = 6174,
  SpvCapabilityGlobalVariableHostAccessINTEL = 6187,
  SpvCapabilityGlobalVariableFPGADecorationsINTEL = 6189,
  SpvCapabilitySubgroupBufferPrefetchINTEL = 6220,
  SpvCapabilitySubgroup2DBlockIOINTEL = 6228,
  SpvCapabilitySubgroup2DBlockTransformINTEL = 6229,
  SpvCapabilitySubgroup2DBlockTransposeINTEL = 6230,
  SpvCapabilitySubgroupMatrixMultiplyAccumulateINTEL = 6236,
  SpvCapabilityTernaryBitwiseFunctionINTEL = 6241,
  SpvCapabilityUntypedVariableLengthArrayINTEL = 6243,
  SpvCapabilitySpecConditionalINTEL = 6245,
  SpvCapabilityFunctionVariantsINTEL = 6246,
  SpvCapabilityGroupUniformArithmeticKHR = 6400,
  SpvCapabilityTensorFloat32RoundingINTEL = 6425,
  SpvCapabilityMaskedGatherScatterINTEL = 6427,
  SpvCapabilityCacheControlsINTEL = 6441,
  SpvCapabilityRegisterLimitsINTEL = 6460,
  SpvCapabilityBindlessImagesINTEL = 6528,
  SpvCapabilityMax = 0x7fffffff,
} SpvCapability;

typedef enum SpvRayFlagsShift_ {
  SpvRayFlagsOpaqueKHRShift = 0,
  SpvRayFlagsNoOpaqueKHRShift = 1,
  SpvRayFlagsTerminateOnFirstHitKHRShift = 2,
  SpvRayFlagsSkipClosestHitShaderKHRShift = 3,
  SpvRayFlagsCullBackFacingTrianglesKHRShift = 4,
  SpvRayFlagsCullFrontFacingTrianglesKHRShift = 5,
  SpvRayFlagsCullOpaqueKHRShift = 6,
  SpvRayFlagsCullNoOpaqueKHRShift = 7,
  SpvRayFlagsSkipBuiltinPrimitivesNVShift = 8,
  SpvRayFlagsSkipTrianglesKHRShift = 8,
  SpvRayFlagsSkipAABBsKHRShift = 9,
  SpvRayFlagsForceOpacityMicromap2StateEXTShift = 10,
  SpvRayFlagsMax = 0x7fffffff,
} SpvRayFlagsShift;

typedef enum SpvRayFlagsMask_ {
  SpvRayFlagsMaskNone = 0,
  SpvRayFlagsOpaqueKHRMask = 0x00000001,
  SpvRayFlagsNoOpaqueKHRMask = 0x00000002,
  SpvRayFlagsTerminateOnFirstHitKHRMask = 0x00000004,
  SpvRayFlagsSkipClosestHitShaderKHRMask = 0x00000008,
  SpvRayFlagsCullBackFacingTrianglesKHRMask = 0x00000010,
  SpvRayFlagsCullFrontFacingTrianglesKHRMask = 0x00000020,
  SpvRayFlagsCullOpaqueKHRMask = 0x00000040,
  SpvRayFlagsCullNoOpaqueKHRMask = 0x00000080,
  SpvRayFlagsSkipBuiltinPrimitivesNVMask = 0x00000100,
  SpvRayFlagsSkipTrianglesKHRMask = 0x00000100,
  SpvRayFlagsSkipAABBsKHRMask = 0x00000200,
  SpvRayFlagsForceOpacityMicromap2StateEXTMask = 0x00000400,
} SpvRayFlagsMask;

typedef enum SpvRayQueryIntersection_ {
  SpvRayQueryIntersectionRayQueryCandidateIntersectionKHR = 0,
  SpvRayQueryIntersectionRayQueryCommittedIntersectionKHR = 1,
  SpvRayQueryIntersectionMax = 0x7fffffff,
} SpvRayQueryIntersection;

typedef enum SpvRayQueryCommittedIntersectionType_ {
  SpvRayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionNoneKHR = 0,
  SpvRayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionTriangleKHR = 1,
  SpvRayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionGeneratedKHR = 2,
  SpvRayQueryCommittedIntersectionTypeMax = 0x7fffffff,
} SpvRayQueryCommittedIntersectionType;

typedef enum SpvRayQueryCandidateIntersectionType_ {
  SpvRayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionTriangleKHR = 0,
  SpvRayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionAABBKHR = 1,
  SpvRayQueryCandidateIntersectionTypeMax = 0x7fffffff,
} SpvRayQueryCandidateIntersectionType;

typedef enum SpvFragmentShadingRateShift_ {
  SpvFragmentShadingRateVertical2PixelsShift = 0,
  SpvFragmentShadingRateVertical4PixelsShift = 1,
  SpvFragmentShadingRateHorizontal2PixelsShift = 2,
  SpvFragmentShadingRateHorizontal4PixelsShift = 3,
  SpvFragmentShadingRateMax = 0x7fffffff,
} SpvFragmentShadingRateShift;

typedef enum SpvFragmentShadingRateMask_ {
  SpvFragmentShadingRateMaskNone = 0,
  SpvFragmentShadingRateVertical2PixelsMask = 0x00000001,
  SpvFragmentShadingRateVertical4PixelsMask = 0x00000002,
  SpvFragmentShadingRateHorizontal2PixelsMask = 0x00000004,
  SpvFragmentShadingRateHorizontal4PixelsMask = 0x00000008,
} SpvFragmentShadingRateMask;

typedef enum SpvFPDenormMode_ {
  SpvFPDenormModePreserve = 0,
  SpvFPDenormModeFlushToZero = 1,
  SpvFPDenormModeMax = 0x7fffffff,
} SpvFPDenormMode;

typedef enum SpvFPOperationMode_ {
  SpvFPOperationModeIEEE = 0,
  SpvFPOperationModeALT = 1,
  SpvFPOperationModeMax = 0x7fffffff,
} SpvFPOperationMode;

typedef enum SpvQuantizationModes_ {
  SpvQuantizationModesTRN = 0,
  SpvQuantizationModesTRN_ZERO = 1,
  SpvQuantizationModesRND = 2,
  SpvQuantizationModesRND_ZERO = 3,
  SpvQuantizationModesRND_INF = 4,
  SpvQuantizationModesRND_MIN_INF = 5,
  SpvQuantizationModesRND_CONV = 6,
  SpvQuantizationModesRND_CONV_ODD = 7,
  SpvQuantizationModesMax = 0x7fffffff,
} SpvQuantizationModes;

typedef enum SpvOverflowModes_ {
  SpvOverflowModesWRAP = 0,
  SpvOverflowModesSAT = 1,
  SpvOverflowModesSAT_ZERO = 2,
  SpvOverflowModesSAT_SYM = 3,
  SpvOverflowModesMax = 0x7fffffff,
} SpvOverflowModes;

typedef enum SpvPackedVectorFormat_ {
  SpvPackedVectorFormatPackedVectorFormat4x8Bit = 0,
  SpvPackedVectorFormatPackedVectorFormat4x8BitKHR = 0,
  SpvPackedVectorFormatMax = 0x7fffffff,
} SpvPackedVectorFormat;

typedef enum SpvCooperativeMatrixOperandsShift_ {
  SpvCooperativeMatrixOperandsMatrixASignedComponentsKHRShift = 0,
  SpvCooperativeMatrixOperandsMatrixBSignedComponentsKHRShift = 1,
  SpvCooperativeMatrixOperandsMatrixCSignedComponentsKHRShift = 2,
  SpvCooperativeMatrixOperandsMatrixResultSignedComponentsKHRShift = 3,
  SpvCooperativeMatrixOperandsSaturatingAccumulationKHRShift = 4,
  SpvCooperativeMatrixOperandsMax = 0x7fffffff,
} SpvCooperativeMatrixOperandsShift;

typedef enum SpvCooperativeMatrixOperandsMask_ {
  SpvCooperativeMatrixOperandsMaskNone = 0,
  SpvCooperativeMatrixOperandsMatrixASignedComponentsKHRMask = 0x00000001,
  SpvCooperativeMatrixOperandsMatrixBSignedComponentsKHRMask = 0x00000002,
  SpvCooperativeMatrixOperandsMatrixCSignedComponentsKHRMask = 0x00000004,
  SpvCooperativeMatrixOperandsMatrixResultSignedComponentsKHRMask = 0x00000008,
  SpvCooperativeMatrixOperandsSaturatingAccumulationKHRMask = 0x00000010,
} SpvCooperativeMatrixOperandsMask;

typedef enum SpvCooperativeMatrixLayout_ {
  SpvCooperativeMatrixLayoutRowMajorKHR = 0,
  SpvCooperativeMatrixLayoutColumnMajorKHR = 1,
  SpvCooperativeMatrixLayoutRowBlockedInterleavedARM = 4202,
  SpvCooperativeMatrixLayoutColumnBlockedInterleavedARM = 4203,
  SpvCooperativeMatrixLayoutMax = 0x7fffffff,
} SpvCooperativeMatrixLayout;

typedef enum SpvCooperativeMatrixUse_ {
  SpvCooperativeMatrixUseMatrixAKHR = 0,
  SpvCooperativeMatrixUseMatrixBKHR = 1,
  SpvCooperativeMatrixUseMatrixAccumulatorKHR = 2,
  SpvCooperativeMatrixUseMax = 0x7fffffff,
} SpvCooperativeMatrixUse;

typedef enum SpvCooperativeMatrixReduceShift_ {
  SpvCooperativeMatrixReduceRowShift = 0,
  SpvCooperativeMatrixReduceColumnShift = 1,
  SpvCooperativeMatrixReduce2x2Shift = 2,
  SpvCooperativeMatrixReduceMax = 0x7fffffff,
} SpvCooperativeMatrixReduceShift;

typedef enum SpvCooperativeMatrixReduceMask_ {
  SpvCooperativeMatrixReduceMaskNone = 0,
  SpvCooperativeMatrixReduceRowMask = 0x00000001,
  SpvCooperativeMatrixReduceColumnMask = 0x00000002,
  SpvCooperativeMatrixReduce2x2Mask = 0x00000004,
} SpvCooperativeMatrixReduceMask;

typedef enum SpvTensorClampMode_ {
  SpvTensorClampModeUndefined = 0,
  SpvTensorClampModeConstant = 1,
  SpvTensorClampModeClampToEdge = 2,
  SpvTensorClampModeRepeat = 3,
  SpvTensorClampModeRepeatMirrored = 4,
  SpvTensorClampModeMax = 0x7fffffff,
} SpvTensorClampMode;

typedef enum SpvTensorAddressingOperandsShift_ {
  SpvTensorAddressingOperandsTensorViewShift = 0,
  SpvTensorAddressingOperandsDecodeFuncShift = 1,
  SpvTensorAddressingOperandsMax = 0x7fffffff,
} SpvTensorAddressingOperandsShift;

typedef enum SpvTensorAddressingOperandsMask_ {
  SpvTensorAddressingOperandsMaskNone = 0,
  SpvTensorAddressingOperandsTensorViewMask = 0x00000001,
  SpvTensorAddressingOperandsDecodeFuncMask = 0x00000002,
} SpvTensorAddressingOperandsMask;

typedef enum SpvTensorOperandsShift_ {
  SpvTensorOperandsNontemporalARMShift = 0,
  SpvTensorOperandsOutOfBoundsValueARMShift = 1,
  SpvTensorOperandsMakeElementAvailableARMShift = 2,
  SpvTensorOperandsMakeElementVisibleARMShift = 3,
  SpvTensorOperandsNonPrivateElementARMShift = 4,
  SpvTensorOperandsMax = 0x7fffffff,
} SpvTensorOperandsShift;

typedef enum SpvTensorOperandsMask_ {
  SpvTensorOperandsMaskNone = 0,
  SpvTensorOperandsNontemporalARMMask = 0x00000001,
  SpvTensorOperandsOutOfBoundsValueARMMask = 0x00000002,
  SpvTensorOperandsMakeElementAvailableARMMask = 0x00000004,
  SpvTensorOperandsMakeElementVisibleARMMask = 0x00000008,
  SpvTensorOperandsNonPrivateElementARMMask = 0x00000010,
} SpvTensorOperandsMask;

typedef enum SpvInitializationModeQualifier_ {
  SpvInitializationModeQualifierInitOnDeviceReprogramINTEL = 0,
  SpvInitializationModeQualifierInitOnDeviceResetINTEL = 1,
  SpvInitializationModeQualifierMax = 0x7fffffff,
} SpvInitializationModeQualifier;

typedef enum SpvHostAccessQualifier_ {
  SpvHostAccessQualifierNoneINTEL = 0,
  SpvHostAccessQualifierReadINTEL = 1,
  SpvHostAccessQualifierWriteINTEL = 2,
  SpvHostAccessQualifierReadWriteINTEL = 3,
  SpvHostAccessQualifierMax = 0x7fffffff,
} SpvHostAccessQualifier;

typedef enum SpvLoadCacheControl_ {
  SpvLoadCacheControlUncachedINTEL = 0,
  SpvLoadCacheControlCachedINTEL = 1,
  SpvLoadCacheControlStreamingINTEL = 2,
  SpvLoadCacheControlInvalidateAfterReadINTEL = 3,
  SpvLoadCacheControlConstCachedINTEL = 4,
  SpvLoadCacheControlMax = 0x7fffffff,
} SpvLoadCacheControl;

typedef enum SpvStoreCacheControl_ {
  SpvStoreCacheControlUncachedINTEL = 0,
  SpvStoreCacheControlWriteThroughINTEL = 1,
  SpvStoreCacheControlWriteBackINTEL = 2,
  SpvStoreCacheControlStreamingINTEL = 3,
  SpvStoreCacheControlMax = 0x7fffffff,
} SpvStoreCacheControl;

typedef enum SpvNamedMaximumNumberOfRegisters_ {
  SpvNamedMaximumNumberOfRegistersAutoINTEL = 0,
  SpvNamedMaximumNumberOfRegistersMax = 0x7fffffff,
} SpvNamedMaximumNumberOfRegisters;

typedef enum SpvMatrixMultiplyAccumulateOperandsShift_ {
  SpvMatrixMultiplyAccumulateOperandsMatrixASignedComponentsINTELShift = 0,
  SpvMatrixMultiplyAccumulateOperandsMatrixBSignedComponentsINTELShift = 1,
  SpvMatrixMultiplyAccumulateOperandsMatrixCBFloat16INTELShift = 2,
  SpvMatrixMultiplyAccumulateOperandsMatrixResultBFloat16INTELShift = 3,
  SpvMatrixMultiplyAccumulateOperandsMatrixAPackedInt8INTELShift = 4,
  SpvMatrixMultiplyAccumulateOperandsMatrixBPackedInt8INTELShift = 5,
  SpvMatrixMultiplyAccumulateOperandsMatrixAPackedInt4INTELShift = 6,
  SpvMatrixMultiplyAccumulateOperandsMatrixBPackedInt4INTELShift = 7,
  SpvMatrixMultiplyAccumulateOperandsMatrixATF32INTELShift = 8,
  SpvMatrixMultiplyAccumulateOperandsMatrixBTF32INTELShift = 9,
  SpvMatrixMultiplyAccumulateOperandsMatrixAPackedFloat16INTELShift = 10,
  SpvMatrixMultiplyAccumulateOperandsMatrixBPackedFloat16INTELShift = 11,
  SpvMatrixMultiplyAccumulateOperandsMatrixAPackedBFloat16INTELShift = 12,
  SpvMatrixMultiplyAccumulateOperandsMatrixBPackedBFloat16INTELShift = 13,
  SpvMatrixMultiplyAccumulateOperandsMax = 0x7fffffff,
} SpvMatrixMultiplyAccumulateOperandsShift;

typedef enum SpvMatrixMultiplyAccumulateOperandsMask_ {
  SpvMatrixMultiplyAccumulateOperandsMaskNone = 0,
  SpvMatrixMultiplyAccumulateOperandsMatrixASignedComponentsINTELMask = 0x00000001,
  SpvMatrixMultiplyAccumulateOperandsMatrixBSignedComponentsINTELMask = 0x00000002,
  SpvMatrixMultiplyAccumulateOperandsMatrixCBFloat16INTELMask = 0x00000004,
  SpvMatrixMultiplyAccumulateOperandsMatrixResultBFloat16INTELMask = 0x00000008,
  SpvMatrixMultiplyAccumulateOperandsMatrixAPackedInt8INTELMask = 0x00000010,
  SpvMatrixMultiplyAccumulateOperandsMatrixBPackedInt8INTELMask = 0x00000020,
  SpvMatrixMultiplyAccumulateOperandsMatrixAPackedInt4INTELMask = 0x00000040,
  SpvMatrixMultiplyAccumulateOperandsMatrixBPackedInt4INTELMask = 0x00000080,
  SpvMatrixMultiplyAccumulateOperandsMatrixATF32INTELMask = 0x00000100,
  SpvMatrixMultiplyAccumulateOperandsMatrixBTF32INTELMask = 0x00000200,
  SpvMatrixMultiplyAccumulateOperandsMatrixAPackedFloat16INTELMask = 0x00000400,
  SpvMatrixMultiplyAccumulateOperandsMatrixBPackedFloat16INTELMask = 0x00000800,
  SpvMatrixMultiplyAccumulateOperandsMatrixAPackedBFloat16INTELMask = 0x00001000,
  SpvMatrixMultiplyAccumulateOperandsMatrixBPackedBFloat16INTELMask = 0x00002000,
} SpvMatrixMultiplyAccumulateOperandsMask;

typedef enum SpvRawAccessChainOperandsShift_ {
  SpvRawAccessChainOperandsRobustnessPerComponentNVShift = 0,
  SpvRawAccessChainOperandsRobustnessPerElementNVShift = 1,
  SpvRawAccessChainOperandsMax = 0x7fffffff,
} SpvRawAccessChainOperandsShift;

typedef enum SpvRawAccessChainOperandsMask_ {
  SpvRawAccessChainOperandsMaskNone = 0,
  SpvRawAccessChainOperandsRobustnessPerComponentNVMask = 0x00000001,
  SpvRawAccessChainOperandsRobustnessPerElementNVMask = 0x00000002,
} SpvRawAccessChainOperandsMask;

typedef enum SpvFPEncoding_ {
  SpvFPEncodingBFloat16KHR = 0,
  SpvFPEncodingFloat8E4M3EXT = 4214,
  SpvFPEncodingFloat8E5M2EXT = 4215,
  SpvFPEncodingMax = 0x7fffffff,
} SpvFPEncoding;

typedef enum SpvCooperativeVectorMatrixLayout_ {
  SpvCooperativeVectorMatrixLayoutRowMajorNV = 0,
  SpvCooperativeVectorMatrixLayoutColumnMajorNV = 1,
  SpvCooperativeVectorMatrixLayoutInferencingOptimalNV = 2,
  SpvCooperativeVectorMatrixLayoutTrainingOptimalNV = 3,
  SpvCooperativeVectorMatrixLayoutMax = 0x7fffffff,
} SpvCooperativeVectorMatrixLayout;

typedef enum SpvComponentType_ {
  SpvComponentTypeFloat16NV = 0,
  SpvComponentTypeFloat32NV = 1,
  SpvComponentTypeFloat64NV = 2,
  SpvComponentTypeSignedInt8NV = 3,
  SpvComponentTypeSignedInt16NV = 4,
  SpvComponentTypeSignedInt32NV = 5,
  SpvComponentTypeSignedInt64NV = 6,
  SpvComponentTypeUnsignedInt8NV = 7,
  SpvComponentTypeUnsignedInt16NV = 8,
  SpvComponentTypeUnsignedInt32NV = 9,
  SpvComponentTypeUnsignedInt64NV = 10,
  SpvComponentTypeSignedInt8PackedNV = 1000491000,
  SpvComponentTypeUnsignedInt8PackedNV = 1000491001,
  SpvComponentTypeFloatE4M3NV = 1000491002,
  SpvComponentTypeFloatE5M2NV = 1000491003,
  SpvComponentTypeMax = 0x7fffffff,
} SpvComponentType;

typedef enum SpvOp_ {
  SpvOpNop = 0,
  SpvOpUndef = 1,
  SpvOpSourceContinued = 2,
  SpvOpSource = 3,
  SpvOpSourceExtension = 4,
  SpvOpName = 5,
  SpvOpMemberName = 6,
  SpvOpString = 7,
  SpvOpLine = 8,
  SpvOpExtension = 10,
  SpvOpExtInstImport = 11,
  SpvOpExtInst = 12,
  SpvOpMemoryModel = 14,
  SpvOpEntryPoint = 15,
  SpvOpExecutionMode = 16,
  SpvOpCapability = 17,
  SpvOpTypeVoid = 19,
  SpvOpTypeBool = 20,
  SpvOpTypeInt = 21,
  SpvOpTypeFloat = 22,
  SpvOpTypeVector = 23,
  SpvOpTypeMatrix = 24,
  SpvOpTypeImage = 25,
  SpvOpTypeSampler = 26,
  SpvOpTypeSampledImage = 27,
  SpvOpTypeArray = 28,
  SpvOpTypeRuntimeArray = 29,
  SpvOpTypeStruct = 30,
  SpvOpTypeOpaque = 31,
  SpvOpTypePointer = 32,
  SpvOpTypeFunction = 33,
  SpvOpTypeEvent = 34,
  SpvOpTypeDeviceEvent = 35,
  SpvOpTypeReserveId = 36,
  SpvOpTypeQueue = 37,
  SpvOpTypePipe = 38,
  SpvOpTypeForwardPointer = 39,
  SpvOpConstantTrue = 41,
  SpvOpConstantFalse = 42,
  SpvOpConstant = 43,
  SpvOpConstantComposite = 44,
  SpvOpConstantSampler = 45,
  SpvOpConstantNull = 46,
  SpvOpSpecConstantTrue = 48,
  SpvOpSpecConstantFalse = 49,
  SpvOpSpecConstant = 50,
  SpvOpSpecConstantComposite = 51,
  SpvOpSpecConstantOp = 52,
  SpvOpFunction = 54,
  SpvOpFunctionParameter = 55,
  SpvOpFunctionEnd = 56,
  SpvOpFunctionCall = 57,
  SpvOpVariable = 59,
  SpvOpImageTexelPointer = 60,
  SpvOpLoad = 61,
  SpvOpStore = 62,
  SpvOpCopyMemory = 63,
  SpvOpCopyMemorySized = 64,
  SpvOpAccessChain = 65,
  SpvOpInBoundsAccessChain = 66,
  SpvOpPtrAccessChain = 67,
  SpvOpArrayLength = 68,
  SpvOpGenericPtrMemSemantics = 69,
  SpvOpInBoundsPtrAccessChain = 70,
  SpvOpDecorate = 71,
  SpvOpMemberDecorate = 72,
  SpvOpDecorationGroup = 73,
  SpvOpGroupDecorate = 74,
  SpvOpGroupMemberDecorate = 75,
  SpvOpVectorExtractDynamic = 77,
  SpvOpVectorInsertDynamic = 78,
  SpvOpVectorShuffle = 79,
  SpvOpCompositeConstruct = 80,
  SpvOpCompositeExtract = 81,
  SpvOpCompositeInsert = 82,
  SpvOpCopyObject = 83,
  SpvOpTranspose = 84,
  SpvOpSampledImage = 86,
  SpvOpImageSampleImplicitLod = 87,
  SpvOpImageSampleExplicitLod = 88,
  SpvOpImageSampleDrefImplicitLod = 89,
  SpvOpImageSampleDrefExplicitLod = 90,
  SpvOpImageSampleProjImplicitLod = 91,
  SpvOpImageSampleProjExplicitLod = 92,
  SpvOpImageSampleProjDrefImplicitLod = 93,
  SpvOpImageSampleProjDrefExplicitLod = 94,
  SpvOpImageFetch = 95,
  SpvOpImageGather = 96,
  SpvOpImageDrefGather = 97,
  SpvOpImageRead = 98,
  SpvOpImageWrite = 99,
  SpvOpImage = 100,
  SpvOpImageQueryFormat = 101,
  SpvOpImageQueryOrder = 102,
  SpvOpImageQuerySizeLod = 103,
  SpvOpImageQuerySize = 104,
  SpvOpImageQueryLod = 105,
  SpvOpImageQueryLevels = 106,
  SpvOpImageQuerySamples = 107,
  SpvOpConvertFToU = 109,
  SpvOpConvertFToS = 110,
  SpvOpConvertSToF = 111,
  SpvOpConvertUToF = 112,
  SpvOpUConvert = 113,
  SpvOpSConvert = 114,
  SpvOpFConvert = 115,
  SpvOpQuantizeToF16 = 116,
  SpvOpConvertPtrToU = 117,
  SpvOpSatConvertSToU = 118,
  SpvOpSatConvertUToS = 119,
  SpvOpConvertUToPtr = 120,
  SpvOpPtrCastToGeneric = 121,
  SpvOpGenericCastToPtr = 122,
  SpvOpGenericCastToPtrExplicit = 123,
  SpvOpBitcast = 124,
  SpvOpSNegate = 126,
  SpvOpFNegate = 127,
  SpvOpIAdd = 128,
  SpvOpFAdd = 129,
  SpvOpISub = 130,
  SpvOpFSub = 131,
  SpvOpIMul = 132,
  SpvOpFMul = 133,
  SpvOpUDiv = 134,
  SpvOpSDiv = 135,
  SpvOpFDiv = 136,
  SpvOpUMod = 137,
  SpvOpSRem = 138,
  SpvOpSMod = 139,
  SpvOpFRem = 140,
  SpvOpFMod = 141,
  SpvOpVectorTimesScalar = 142,
  SpvOpMatrixTimesScalar = 143,
  SpvOpVectorTimesMatrix = 144,
  SpvOpMatrixTimesVector = 145,
  SpvOpMatrixTimesMatrix = 146,
  SpvOpOuterProduct = 147,
  SpvOpDot = 148,
  SpvOpIAddCarry = 149,
  SpvOpISubBorrow = 150,
  SpvOpUMulExtended = 151,
  SpvOpSMulExtended = 152,
  SpvOpAny = 154,
  SpvOpAll = 155,
  SpvOpIsNan = 156,
  SpvOpIsInf = 157,
  SpvOpIsFinite = 158,
  SpvOpIsNormal = 159,
  SpvOpSignBitSet = 160,
  SpvOpLessOrGreater = 161,
  SpvOpOrdered = 162,
  SpvOpUnordered = 163,
  SpvOpLogicalEqual = 164,
  SpvOpLogicalNotEqual = 165,
  SpvOpLogicalOr = 166,
  SpvOpLogicalAnd = 167,
  SpvOpLogicalNot = 168,
  SpvOpSelect = 169,
  SpvOpIEqual = 170,
  SpvOpINotEqual = 171,
  SpvOpUGreaterThan = 172,
  SpvOpSGreaterThan = 173,
  SpvOpUGreaterThanEqual = 174,
  SpvOpSGreaterThanEqual = 175,
  SpvOpULessThan = 176,
  SpvOpSLessThan = 177,
  SpvOpULessThanEqual = 178,
  SpvOpSLessThanEqual = 179,
  SpvOpFOrdEqual = 180,
  SpvOpFUnordEqual = 181,
  SpvOpFOrdNotEqual = 182,
  SpvOpFUnordNotEqual = 183,
  SpvOpFOrdLessThan = 184,
  SpvOpFUnordLessThan = 185,
  SpvOpFOrdGreaterThan = 186,
  SpvOpFUnordGreaterThan = 187,
  SpvOpFOrdLessThanEqual = 188,
  SpvOpFUnordLessThanEqual = 189,
  SpvOpFOrdGreaterThanEqual = 190,
  SpvOpFUnordGreaterThanEqual = 191,
  SpvOpShiftRightLogical = 194,
  SpvOpShiftRightArithmetic = 195,
  SpvOpShiftLeftLogical = 196,
  SpvOpBitwiseOr = 197,
  SpvOpBitwiseXor = 198,
  SpvOpBitwiseAnd = 199,
  SpvOpNot = 200,
  SpvOpBitFieldInsert = 201,
  SpvOpBitFieldSExtract = 202,
  SpvOpBitFieldUExtract = 203,
  SpvOpBitReverse = 204,
  SpvOpBitCount = 205,
  SpvOpDPdx = 207,
  SpvOpDPdy = 208,
  SpvOpFwidth = 209,
  SpvOpDPdxFine = 210,
  SpvOpDPdyFine = 211,
  SpvOpFwidthFine = 212,
  SpvOpDPdxCoarse = 213,
  SpvOpDPdyCoarse = 214,
  SpvOpFwidthCoarse = 215,
  SpvOpEmitVertex = 218,
  SpvOpEndPrimitive = 219,
  SpvOpEmitStreamVertex = 220,
  SpvOpEndStreamPrimitive = 221,
  SpvOpControlBarrier = 224,
  SpvOpMemoryBarrier = 225,
  SpvOpAtomicLoad = 227,
  SpvOpAtomicStore = 228,
  SpvOpAtomicExchange = 229,
  SpvOpAtomicCompareExchange = 230,
  SpvOpAtomicCompareExchangeWeak = 231,
  SpvOpAtomicIIncrement = 232,
  SpvOpAtomicIDecrement = 233,
  SpvOpAtomicIAdd = 234,
  SpvOpAtomicISub = 235,
  SpvOpAtomicSMin = 236,
  SpvOpAtomicUMin = 237,
  SpvOpAtomicSMax = 238,
  SpvOpAtomicUMax = 239,
  SpvOpAtomicAnd = 240,
  SpvOpAtomicOr = 241,
  SpvOpAtomicXor = 242,
  SpvOpPhi = 245,
  SpvOpLoopMerge = 246,
  SpvOpSelectionMerge = 247,
  SpvOpLabel = 248,
  SpvOpBranch = 249,
  SpvOpBranchConditional = 250,
  SpvOpSwitch = 251,
  SpvOpKill = 252,
  SpvOpReturn = 253,
  SpvOpReturnValue = 254,
  SpvOpUnreachable = 255,
  SpvOpLifetimeStart = 256,
  SpvOpLifetimeStop = 257,
  SpvOpGroupAsyncCopy = 259,
  SpvOpGroupWaitEvents = 260,
  SpvOpGroupAll = 261,
  SpvOpGroupAny = 262,
  SpvOpGroupBroadcast = 263,
  SpvOpGroupIAdd = 264,
  SpvOpGroupFAdd = 265,
  SpvOpGroupFMin = 266,
  SpvOpGroupUMin = 267,
  SpvOpGroupSMin = 268,
  SpvOpGroupFMax = 269,
  SpvOpGroupUMax = 270,
  SpvOpGroupSMax = 271,
  SpvOpReadPipe = 274,
  SpvOpWritePipe = 275,
  SpvOpReservedReadPipe = 276,
  SpvOpReservedWritePipe = 277,
  SpvOpReserveReadPipePackets = 278,
  SpvOpReserveWritePipePackets = 279,
  SpvOpCommitReadPipe = 280,
  SpvOpCommitWritePipe = 281,
  SpvOpIsValidReserveId = 282,
  SpvOpGetNumPipePackets = 283,
  SpvOpGetMaxPipePackets = 284,
  SpvOpGroupReserveReadPipePackets = 285,
  SpvOpGroupReserveWritePipePackets = 286,
  SpvOpGroupCommitReadPipe = 287,
  SpvOpGroupCommitWritePipe = 288,
  SpvOpEnqueueMarker = 291,
  SpvOpEnqueueKernel = 292,
  SpvOpGetKernelNDrangeSubGroupCount = 293,
  SpvOpGetKernelNDrangeMaxSubGroupSize = 294,
  SpvOpGetKernelWorkGroupSize = 295,
  SpvOpGetKernelPreferredWorkGroupSizeMultiple = 296,
  SpvOpRetainEvent = 297,
  SpvOpReleaseEvent = 298,
  SpvOpCreateUserEvent = 299,
  SpvOpIsValidEvent = 300,
  SpvOpSetUserEventStatus = 301,
  SpvOpCaptureEventProfilingInfo = 302,
  SpvOpGetDefaultQueue = 303,
  SpvOpBuildNDRange = 304,
  SpvOpImageSparseSampleImplicitLod = 305,
  SpvOpImageSparseSampleExplicitLod = 306,
  SpvOpImageSparseSampleDrefImplicitLod = 307,
  SpvOpImageSparseSampleDrefExplicitLod = 308,
  SpvOpImageSparseSampleProjImplicitLod = 309,
  SpvOpImageSparseSampleProjExplicitLod = 310,
  SpvOpImageSparseSampleProjDrefImplicitLod = 311,
  SpvOpImageSparseSampleProjDrefExplicitLod = 312,
  SpvOpImageSparseFetch = 313,
  SpvOpImageSparseGather = 314,
  SpvOpImageSparseDrefGather = 315,
  SpvOpImageSparseTexelsResident = 316,
  SpvOpNoLine = 317,
  SpvOpAtomicFlagTestAndSet = 318,
  SpvOpAtomicFlagClear = 319,
  SpvOpImageSparseRead = 320,
  SpvOpSizeOf = 321,
  SpvOpTypePipeStorage = 322,
  SpvOpConstantPipeStorage = 323,
  SpvOpCreatePipeFromPipeStorage = 324,
  SpvOpGetKernelLocalSizeForSubgroupCount = 325,
  SpvOpGetKernelMaxNumSubgroups = 326,
  SpvOpTypeNamedBarrier = 327,
  SpvOpNamedBarrierInitialize = 328,
  SpvOpMemoryNamedBarrier = 329,
  SpvOpModuleProcessed = 330,
  SpvOpExecutionModeId = 331,
  SpvOpDecorateId = 332,
  SpvOpGroupNonUniformElect = 333,
  SpvOpGroupNonUniformAll = 334,
  SpvOpGroupNonUniformAny = 335,
  SpvOpGroupNonUniformAllEqual = 336,
  SpvOpGroupNonUniformBroadcast = 337,
  SpvOpGroupNonUniformBroadcastFirst = 338,
  SpvOpGroupNonUniformBallot = 339,
  SpvOpGroupNonUniformInverseBallot = 340,
  SpvOpGroupNonUniformBallotBitExtract = 341,
  SpvOpGroupNonUniformBallotBitCount = 342,
  SpvOpGroupNonUniformBallotFindLSB = 343,
  SpvOpGroupNonUniformBallotFindMSB = 344,
  SpvOpGroupNonUniformShuffle = 345,
  SpvOpGroupNonUniformShuffleXor = 346,
  SpvOpGroupNonUniformShuffleUp = 347,
  SpvOpGroupNonUniformShuffleDown = 348,
  SpvOpGroupNonUniformIAdd = 349,
  SpvOpGroupNonUniformFAdd = 350,
  SpvOpGroupNonUniformIMul = 351,
  SpvOpGroupNonUniformFMul = 352,
  SpvOpGroupNonUniformSMin = 353,
  SpvOpGroupNonUniformUMin = 354,
  SpvOpGroupNonUniformFMin = 355,
  SpvOpGroupNonUniformSMax = 356,
  SpvOpGroupNonUniformUMax = 357,
  SpvOpGroupNonUniformFMax = 358,
  SpvOpGroupNonUniformBitwiseAnd = 359,
  SpvOpGroupNonUniformBitwiseOr = 360,
  SpvOpGroupNonUniformBitwiseXor = 361,
  SpvOpGroupNonUniformLogicalAnd = 362,
  SpvOpGroupNonUniformLogicalOr = 363,
  SpvOpGroupNonUniformLogicalXor = 364,
  SpvOpGroupNonUniformQuadBroadcast = 365,
  SpvOpGroupNonUniformQuadSwap = 366,
  SpvOpCopyLogical = 400,
  SpvOpPtrEqual = 401,
  SpvOpPtrNotEqual = 402,
  SpvOpPtrDiff = 403,
  SpvOpColorAttachmentReadEXT = 4160,
  SpvOpDepthAttachmentReadEXT = 4161,
  SpvOpStencilAttachmentReadEXT = 4162,
  SpvOpTypeTensorARM = 4163,
  SpvOpTensorReadARM = 4164,
  SpvOpTensorWriteARM = 4165,
  SpvOpTensorQuerySizeARM = 4166,
  SpvOpGraphConstantARM = 4181,
  SpvOpGraphEntryPointARM = 4182,
  SpvOpGraphARM = 4183,
  SpvOpGraphInputARM = 4184,
  SpvOpGraphSetOutputARM = 4185,
  SpvOpGraphEndARM = 4186,
  SpvOpTypeGraphARM = 4190,
  SpvOpTerminateInvocation = 4416,
  SpvOpTypeUntypedPointerKHR = 4417,
  SpvOpUntypedVariableKHR = 4418,
  SpvOpUntypedAccessChainKHR = 4419,
  SpvOpUntypedInBoundsAccessChainKHR = 4420,
  SpvOpSubgroupBallotKHR = 4421,
  SpvOpSubgroupFirstInvocationKHR = 4422,
  SpvOpUntypedPtrAccessChainKHR = 4423,
  SpvOpUntypedInBoundsPtrAccessChainKHR = 4424,
  SpvOpUntypedArrayLengthKHR = 4425,
  SpvOpUntypedPrefetchKHR = 4426,
  SpvOpSubgroupAllKHR = 4428,
  SpvOpSubgroupAnyKHR = 4429,
  SpvOpSubgroupAllEqualKHR = 4430,
  SpvOpGroupNonUniformRotateKHR = 4431,
  SpvOpSubgroupReadInvocationKHR = 4432,
  SpvOpExtInstWithForwardRefsKHR = 4433,
  SpvOpUntypedGroupAsyncCopyKHR = 4434,
  SpvOpTraceRayKHR = 4445,
  SpvOpExecuteCallableKHR = 4446,
  SpvOpConvertUToAccelerationStructureKHR = 4447,
  SpvOpIgnoreIntersectionKHR = 4448,
  SpvOpTerminateRayKHR = 4449,
  SpvOpSDot = 4450,
  SpvOpSDotKHR = 4450,
  SpvOpUDot = 4451,
  SpvOpUDotKHR = 4451,
  SpvOpSUDot = 4452,
  SpvOpSUDotKHR = 4452,
  SpvOpSDotAccSat = 4453,
  SpvOpSDotAccSatKHR = 4453,
  SpvOpUDotAccSat = 4454,
  SpvOpUDotAccSatKHR = 4454,
  SpvOpSUDotAccSat = 4455,
  SpvOpSUDotAccSatKHR = 4455,
  SpvOpTypeCooperativeMatrixKHR = 4456,
  SpvOpCooperativeMatrixLoadKHR = 4457,
  SpvOpCooperativeMatrixStoreKHR = 4458,
  SpvOpCooperativeMatrixMulAddKHR = 4459,
  SpvOpCooperativeMatrixLengthKHR = 4460,
  SpvOpConstantCompositeReplicateEXT = 4461,
  SpvOpSpecConstantCompositeReplicateEXT = 4462,
  SpvOpCompositeConstructReplicateEXT = 4463,
  SpvOpTypeRayQueryKHR = 4472,
  SpvOpRayQueryInitializeKHR = 4473,
  SpvOpRayQueryTerminateKHR = 4474,
  SpvOpRayQueryGenerateIntersectionKHR = 4475,
  SpvOpRayQueryConfirmIntersectionKHR = 4476,
  SpvOpRayQueryProceedKHR = 4477,
  SpvOpRayQueryGetIntersectionTypeKHR = 4479,
  SpvOpImageSampleWeightedQCOM = 4480,
  SpvOpImageBoxFilterQCOM = 4481,
  SpvOpImageBlockMatchSSDQCOM = 4482,
  SpvOpImageBlockMatchSADQCOM = 4483,
  SpvOpBitCastArrayQCOM = 4497,
  SpvOpImageBlockMatchWindowSSDQCOM = 4500,
  SpvOpImageBlockMatchWindowSADQCOM = 4501,
  SpvOpImageBlockMatchGatherSSDQCOM = 4502,
  SpvOpImageBlockMatchGatherSADQCOM = 4503,
  SpvOpCompositeConstructCoopMatQCOM = 4540,
  SpvOpCompositeExtractCoopMatQCOM = 4541,
  SpvOpExtractSubArrayQCOM = 4542,
  SpvOpGroupIAddNonUniformAMD = 5000,
  SpvOpGroupFAddNonUniformAMD = 5001,
  SpvOpGroupFMinNonUniformAMD = 5002,
  SpvOpGroupUMinNonUniformAMD = 5003,
  SpvOpGroupSMinNonUniformAMD = 5004,
  SpvOpGroupFMaxNonUniformAMD = 5005,
  SpvOpGroupUMaxNonUniformAMD = 5006,
  SpvOpGroupSMaxNonUniformAMD = 5007,
  SpvOpFragmentMaskFetchAMD = 5011,
  SpvOpFragmentFetchAMD = 5012,
  SpvOpReadClockKHR = 5056,
  SpvOpAllocateNodePayloadsAMDX = 5074,
  SpvOpEnqueueNodePayloadsAMDX = 5075,
  SpvOpTypeNodePayloadArrayAMDX = 5076,
  SpvOpFinishWritingNodePayloadAMDX = 5078,
  SpvOpNodePayloadArrayLengthAMDX = 5090,
  SpvOpIsNodePayloadValidAMDX = 5101,
  SpvOpConstantStringAMDX = 5103,
  SpvOpSpecConstantStringAMDX = 5104,
  SpvOpGroupNonUniformQuadAllKHR = 5110,
  SpvOpGroupNonUniformQuadAnyKHR = 5111,
  SpvOpHitObjectRecordHitMotionNV = 5249,
  SpvOpHitObjectRecordHitWithIndexMotionNV = 5250,
  SpvOpHitObjectRecordMissMotionNV = 5251,
  SpvOpHitObjectGetWorldToObjectNV = 5252,
  SpvOpHitObjectGetObjectToWorldNV = 5253,
  SpvOpHitObjectGetObjectRayDirectionNV = 5254,
  SpvOpHitObjectGetObjectRayOriginNV = 5255,
  SpvOpHitObjectTraceRayMotionNV = 5256,
  SpvOpHitObjectGetShaderRecordBufferHandleNV = 5257,
  SpvOpHitObjectGetShaderBindingTableRecordIndexNV = 5258,
  SpvOpHitObjectRecordEmptyNV = 5259,
  SpvOpHitObjectTraceRayNV = 5260,
  SpvOpHitObjectRecordHitNV = 5261,
  SpvOpHitObjectRecordHitWithIndexNV = 5262,
  SpvOpHitObjectRecordMissNV = 5263,
  SpvOpHitObjectExecuteShaderNV = 5264,
  SpvOpHitObjectGetCurrentTimeNV = 5265,
  SpvOpHitObjectGetAttributesNV = 5266,
  SpvOpHitObjectGetHitKindNV = 5267,
  SpvOpHitObjectGetPrimitiveIndexNV = 5268,
  SpvOpHitObjectGetGeometryIndexNV = 5269,
  SpvOpHitObjectGetInstanceIdNV = 5270,
  SpvOpHitObjectGetInstanceCustomIndexNV = 5271,
  SpvOpHitObjectGetWorldRayDirectionNV = 5272,
  SpvOpHitObjectGetWorldRayOriginNV = 5273,
  SpvOpHitObjectGetRayTMaxNV = 5274,
  SpvOpHitObjectGetRayTMinNV = 5275,
  SpvOpHitObjectIsEmptyNV = 5276,
  SpvOpHitObjectIsHitNV = 5277,
  SpvOpHitObjectIsMissNV = 5278,
  SpvOpReorderThreadWithHitObjectNV = 5279,
  SpvOpReorderThreadWithHintNV = 5280,
  SpvOpTypeHitObjectNV = 5281,
  SpvOpImageSampleFootprintNV = 5283,
  SpvOpTypeCooperativeVectorNV = 5288,
  SpvOpCooperativeVectorMatrixMulNV = 5289,
  SpvOpCooperativeVectorOuterProductAccumulateNV = 5290,
  SpvOpCooperativeVectorReduceSumAccumulateNV = 5291,
  SpvOpCooperativeVectorMatrixMulAddNV = 5292,
  SpvOpCooperativeMatrixConvertNV = 5293,
  SpvOpEmitMeshTasksEXT = 5294,
  SpvOpSetMeshOutputsEXT = 5295,
  SpvOpGroupNonUniformPartitionNV = 5296,
  SpvOpWritePackedPrimitiveIndices4x8NV = 5299,
  SpvOpFetchMicroTriangleVertexPositionNV = 5300,
  SpvOpFetchMicroTriangleVertexBarycentricNV = 5301,
  SpvOpCooperativeVectorLoadNV = 5302,
  SpvOpCooperativeVectorStoreNV = 5303,
  SpvOpReportIntersectionKHR = 5334,
  SpvOpReportIntersectionNV = 5334,
  SpvOpIgnoreIntersectionNV = 5335,
  SpvOpTerminateRayNV = 5336,
  SpvOpTraceNV = 5337,
  SpvOpTraceMotionNV = 5338,
  SpvOpTraceRayMotionNV = 5339,
  SpvOpRayQueryGetIntersectionTriangleVertexPositionsKHR = 5340,
  SpvOpTypeAccelerationStructureKHR = 5341,
  SpvOpTypeAccelerationStructureNV = 5341,
  SpvOpExecuteCallableNV = 5344,
  SpvOpRayQueryGetClusterIdNV = 5345,
  SpvOpRayQueryGetIntersectionClusterIdNV = 5345,
  SpvOpHitObjectGetClusterIdNV = 5346,
  SpvOpTypeCooperativeMatrixNV = 5358,
  SpvOpCooperativeMatrixLoadNV = 5359,
  SpvOpCooperativeMatrixStoreNV = 5360,
  SpvOpCooperativeMatrixMulAddNV = 5361,
  SpvOpCooperativeMatrixLengthNV = 5362,
  SpvOpBeginInvocationInterlockEXT = 5364,
  SpvOpEndInvocationInterlockEXT = 5365,
  SpvOpCooperativeMatrixReduceNV = 5366,
  SpvOpCooperativeMatrixLoadTensorNV = 5367,
  SpvOpCooperativeMatrixStoreTensorNV = 5368,
  SpvOpCooperativeMatrixPerElementOpNV = 5369,
  SpvOpTypeTensorLayoutNV = 5370,
  SpvOpTypeTensorViewNV = 5371,
  SpvOpCreateTensorLayoutNV = 5372,
  SpvOpTensorLayoutSetDimensionNV = 5373,
  SpvOpTensorLayoutSetStrideNV = 5374,
  SpvOpTensorLayoutSliceNV = 5375,
  SpvOpTensorLayoutSetClampValueNV = 5376,
  SpvOpCreateTensorViewNV = 5377,
  SpvOpTensorViewSetDimensionNV = 5378,
  SpvOpTensorViewSetStrideNV = 5379,
  SpvOpDemoteToHelperInvocation = 5380,
  SpvOpDemoteToHelperInvocationEXT = 5380,
  SpvOpIsHelperInvocationEXT = 5381,
  SpvOpTensorViewSetClipNV = 5382,
  SpvOpTensorLayoutSetBlockSizeNV = 5384,
  SpvOpCooperativeMatrixTransposeNV = 5390,
  SpvOpConvertUToImageNV = 5391,
  SpvOpConvertUToSamplerNV = 5392,
  SpvOpConvertImageToUNV = 5393,
  SpvOpConvertSamplerToUNV = 5394,
  SpvOpConvertUToSampledImageNV = 5395,
  SpvOpConvertSampledImageToUNV = 5396,
  SpvOpSamplerImageAddressingModeNV = 5397,
  SpvOpRawAccessChainNV = 5398,
  SpvOpRayQueryGetIntersectionSpherePositionNV = 5427,
  SpvOpRayQueryGetIntersectionSphereRadiusNV = 5428,
  SpvOpRayQueryGetIntersectionLSSPositionsNV = 5429,
  SpvOpRayQueryGetIntersectionLSSRadiiNV = 5430,
  SpvOpRayQueryGetIntersectionLSSHitValueNV = 5431,
  SpvOpHitObjectGetSpherePositionNV = 5432,
  SpvOpHitObjectGetSphereRadiusNV = 5433,
  SpvOpHitObjectGetLSSPositionsNV = 5434,
  SpvOpHitObjectGetLSSRadiiNV = 5435,
  SpvOpHitObjectIsSphereHitNV = 5436,
  SpvOpHitObjectIsLSSHitNV = 5437,
  SpvOpRayQueryIsSphereHitNV = 5438,
  SpvOpRayQueryIsLSSHitNV = 5439,
  SpvOpSubgroupShuffleINTEL = 5571,
  SpvOpSubgroupShuffleDownINTEL = 5572,
  SpvOpSubgroupShuffleUpINTEL = 5573,
  SpvOpSubgroupShuffleXorINTEL = 5574,
  SpvOpSubgroupBlockReadINTEL = 5575,
  SpvOpSubgroupBlockWriteINTEL = 5576,
  SpvOpSubgroupImageBlockReadINTEL = 5577,
  SpvOpSubgroupImageBlockWriteINTEL = 5578,
  SpvOpSubgroupImageMediaBlockReadINTEL = 5580,
  SpvOpSubgroupImageMediaBlockWriteINTEL = 5581,
  SpvOpUCountLeadingZerosINTEL = 5585,
  SpvOpUCountTrailingZerosINTEL = 5586,
  SpvOpAbsISubINTEL = 5587,
  SpvOpAbsUSubINTEL = 5588,
  SpvOpIAddSatINTEL = 5589,
  SpvOpUAddSatINTEL = 5590,
  SpvOpIAverageINTEL = 5591,
  SpvOpUAverageINTEL = 5592,
  SpvOpIAverageRoundedINTEL = 5593,
  SpvOpUAverageRoundedINTEL = 5594,
  SpvOpISubSatINTEL = 5595,
  SpvOpUSubSatINTEL = 5596,
  SpvOpIMul32x16INTEL = 5597,
  SpvOpUMul32x16INTEL = 5598,
  SpvOpConstantFunctionPointerINTEL = 5600,
  SpvOpFunctionPointerCallINTEL = 5601,
  SpvOpAsmTargetINTEL = 5609,
  SpvOpAsmINTEL = 5610,
  SpvOpAsmCallINTEL = 5611,
  SpvOpAtomicFMinEXT = 5614,
  SpvOpAtomicFMaxEXT = 5615,
  SpvOpAssumeTrueKHR = 5630,
  SpvOpExpectKHR = 5631,
  SpvOpDecorateString = 5632,
  SpvOpDecorateStringGOOGLE = 5632,
  SpvOpMemberDecorateString = 5633,
  SpvOpMemberDecorateStringGOOGLE = 5633,
  SpvOpVmeImageINTEL = 5699,
  SpvOpTypeVmeImageINTEL = 5700,
  SpvOpTypeAvcImePayloadINTEL = 5701,
  SpvOpTypeAvcRefPayloadINTEL = 5702,
  SpvOpTypeAvcSicPayloadINTEL = 5703,
  SpvOpTypeAvcMcePayloadINTEL = 5704,
  SpvOpTypeAvcMceResultINTEL = 5705,
  SpvOpTypeAvcImeResultINTEL = 5706,
  SpvOpTypeAvcImeResultSingleReferenceStreamoutINTEL = 5707,
  SpvOpTypeAvcImeResultDualReferenceStreamoutINTEL = 5708,
  SpvOpTypeAvcImeSingleReferenceStreaminINTEL = 5709,
  SpvOpTypeAvcImeDualReferenceStreaminINTEL = 5710,
  SpvOpTypeAvcRefResultINTEL = 5711,
  SpvOpTypeAvcSicResultINTEL = 5712,
  SpvOpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL = 5713,
  SpvOpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL = 5714,
  SpvOpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL = 5715,
  SpvOpSubgroupAvcMceSetInterShapePenaltyINTEL = 5716,
  SpvOpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL = 5717,
  SpvOpSubgroupAvcMceSetInterDirectionPenaltyINTEL = 5718,
  SpvOpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL = 5719,
  SpvOpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL = 5720,
  SpvOpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL = 5721,
  SpvOpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL = 5722,
  SpvOpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL = 5723,
  SpvOpSubgroupAvcMceSetMotionVectorCostFunctionINTEL = 5724,
  SpvOpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL = 5725,
  SpvOpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL = 5726,
  SpvOpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL = 5727,
  SpvOpSubgroupAvcMceSetAcOnlyHaarINTEL = 5728,
  SpvOpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL = 5729,
  SpvOpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL = 5730,
  SpvOpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL = 5731,
  SpvOpSubgroupAvcMceConvertToImePayloadINTEL = 5732,
  SpvOpSubgroupAvcMceConvertToImeResultINTEL = 5733,
  SpvOpSubgroupAvcMceConvertToRefPayloadINTEL = 5734,
  SpvOpSubgroupAvcMceConvertToRefResultINTEL = 5735,
  SpvOpSubgroupAvcMceConvertToSicPayloadINTEL = 5736,
  SpvOpSubgroupAvcMceConvertToSicResultINTEL = 5737,
  SpvOpSubgroupAvcMceGetMotionVectorsINTEL = 5738,
  SpvOpSubgroupAvcMceGetInterDistortionsINTEL = 5739,
  SpvOpSubgroupAvcMceGetBestInterDistortionsINTEL = 5740,
  SpvOpSubgroupAvcMceGetInterMajorShapeINTEL = 5741,
  SpvOpSubgroupAvcMceGetInterMinorShapeINTEL = 5742,
  SpvOpSubgroupAvcMceGetInterDirectionsINTEL = 5743,
  SpvOpSubgroupAvcMceGetInterMotionVectorCountINTEL = 5744,
  SpvOpSubgroupAvcMceGetInterReferenceIdsINTEL = 5745,
  SpvOpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL = 5746,
  SpvOpSubgroupAvcImeInitializeINTEL = 5747,
  SpvOpSubgroupAvcImeSetSingleReferenceINTEL = 5748,
  SpvOpSubgroupAvcImeSetDualReferenceINTEL = 5749,
  SpvOpSubgroupAvcImeRefWindowSizeINTEL = 5750,
  SpvOpSubgroupAvcImeAdjustRefOffsetINTEL = 5751,
  SpvOpSubgroupAvcImeConvertToMcePayloadINTEL = 5752,
  SpvOpSubgroupAvcImeSetMaxMotionVectorCountINTEL = 5753,
  SpvOpSubgroupAvcImeSetUnidirectionalMixDisableINTEL = 5754,
  SpvOpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL = 5755,
  SpvOpSubgroupAvcImeSetWeightedSadINTEL = 5756,
  SpvOpSubgroupAvcImeEvaluateWithSingleReferenceINTEL = 5757,
  SpvOpSubgroupAvcImeEvaluateWithDualReferenceINTEL = 5758,
  SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL = 5759,
  SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL = 5760,
  SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL = 5761,
  SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL = 5762,
  SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL = 5763,
  SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL = 5764,
  SpvOpSubgroupAvcImeConvertToMceResultINTEL = 5765,
  SpvOpSubgroupAvcImeGetSingleReferenceStreaminINTEL = 5766,
  SpvOpSubgroupAvcImeGetDualReferenceStreaminINTEL = 5767,
  SpvOpSubgroupAvcImeStripSingleReferenceStreamoutINTEL = 5768,
  SpvOpSubgroupAvcImeStripDualReferenceStreamoutINTEL = 5769,
  SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL = 5770,
  SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL = 5771,
  SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL = 5772,
  SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL = 5773,
  SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL = 5774,
  SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL = 5775,
  SpvOpSubgroupAvcImeGetBorderReachedINTEL = 5776,
  SpvOpSubgroupAvcImeGetTruncatedSearchIndicationINTEL = 5777,
  SpvOpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL = 5778,
  SpvOpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL = 5779,
  SpvOpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL = 5780,
  SpvOpSubgroupAvcFmeInitializeINTEL = 5781,
  SpvOpSubgroupAvcBmeInitializeINTEL = 5782,
  SpvOpSubgroupAvcRefConvertToMcePayloadINTEL = 5783,
  SpvOpSubgroupAvcRefSetBidirectionalMixDisableINTEL = 5784,
  SpvOpSubgroupAvcRefSetBilinearFilterEnableINTEL = 5785,
  SpvOpSubgroupAvcRefEvaluateWithSingleReferenceINTEL = 5786,
  SpvOpSubgroupAvcRefEvaluateWithDualReferenceINTEL = 5787,
  SpvOpSubgroupAvcRefEvaluateWithMultiReferenceINTEL = 5788,
  SpvOpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL = 5789,
  SpvOpSubgroupAvcRefConvertToMceResultINTEL = 5790,
  SpvOpSubgroupAvcSicInitializeINTEL = 5791,
  SpvOpSubgroupAvcSicConfigureSkcINTEL = 5792,
  SpvOpSubgroupAvcSicConfigureIpeLumaINTEL = 5793,
  SpvOpSubgroupAvcSicConfigureIpeLumaChromaINTEL = 5794,
  SpvOpSubgroupAvcSicGetMotionVectorMaskINTEL = 5795,
  SpvOpSubgroupAvcSicConvertToMcePayloadINTEL = 5796,
  SpvOpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL = 5797,
  SpvOpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL = 5798,
  SpvOpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL = 5799,
  SpvOpSubgroupAvcSicSetBilinearFilterEnableINTEL = 5800,
  SpvOpSubgroupAvcSicSetSkcForwardTransformEnableINTEL = 5801,
  SpvOpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL = 5802,
  SpvOpSubgroupAvcSicEvaluateIpeINTEL = 5803,
  SpvOpSubgroupAvcSicEvaluateWithSingleReferenceINTEL = 5804,
  SpvOpSubgroupAvcSicEvaluateWithDualReferenceINTEL = 5805,
  SpvOpSubgroupAvcSicEvaluateWithMultiReferenceINTEL = 5806,
  SpvOpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL = 5807,
  SpvOpSubgroupAvcSicConvertToMceResultINTEL = 5808,
  SpvOpSubgroupAvcSicGetIpeLumaShapeINTEL = 5809,
  SpvOpSubgroupAvcSicGetBestIpeLumaDistortionINTEL = 5810,
  SpvOpSubgroupAvcSicGetBestIpeChromaDistortionINTEL = 5811,
  SpvOpSubgroupAvcSicGetPackedIpeLumaModesINTEL = 5812,
  SpvOpSubgroupAvcSicGetIpeChromaModeINTEL = 5813,
  SpvOpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL = 5814,
  SpvOpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL = 5815,
  SpvOpSubgroupAvcSicGetInterRawSadsINTEL = 5816,
  SpvOpVariableLengthArrayINTEL = 5818,
  SpvOpSaveMemoryINTEL = 5819,
  SpvOpRestoreMemoryINTEL = 5820,
  SpvOpArbitraryFloatSinCosPiINTEL = 5840,
  SpvOpArbitraryFloatCastINTEL = 5841,
  SpvOpArbitraryFloatCastFromIntINTEL = 5842,
  SpvOpArbitraryFloatCastToIntINTEL = 5843,
  SpvOpArbitraryFloatAddINTEL = 5846,
  SpvOpArbitraryFloatSubINTEL = 5847,
  SpvOpArbitraryFloatMulINTEL = 5848,
  SpvOpArbitraryFloatDivINTEL = 5849,
  SpvOpArbitraryFloatGTINTEL = 5850,
  SpvOpArbitraryFloatGEINTEL = 5851,
  SpvOpArbitraryFloatLTINTEL = 5852,
  SpvOpArbitraryFloatLEINTEL = 5853,
  SpvOpArbitraryFloatEQINTEL = 5854,
  SpvOpArbitraryFloatRecipINTEL = 5855,
  SpvOpArbitraryFloatRSqrtINTEL = 5856,
  SpvOpArbitraryFloatCbrtINTEL = 5857,
  SpvOpArbitraryFloatHypotINTEL = 5858,
  SpvOpArbitraryFloatSqrtINTEL = 5859,
  SpvOpArbitraryFloatLogINTEL = 5860,
  SpvOpArbitraryFloatLog2INTEL = 5861,
  SpvOpArbitraryFloatLog10INTEL = 5862,
  SpvOpArbitraryFloatLog1pINTEL = 5863,
  SpvOpArbitraryFloatExpINTEL = 5864,
  SpvOpArbitraryFloatExp2INTEL = 5865,
  SpvOpArbitraryFloatExp10INTEL = 5866,
  SpvOpArbitraryFloatExpm1INTEL = 5867,
  SpvOpArbitraryFloatSinINTEL = 5868,
  SpvOpArbitraryFloatCosINTEL = 5869,
  SpvOpArbitraryFloatSinCosINTEL = 5870,
  SpvOpArbitraryFloatSinPiINTEL = 5871,
  SpvOpArbitraryFloatCosPiINTEL = 5872,
  SpvOpArbitraryFloatASinINTEL = 5873,
  SpvOpArbitraryFloatASinPiINTEL = 5874,
  SpvOpArbitraryFloatACosINTEL = 5875,
  SpvOpArbitraryFloatACosPiINTEL = 5876,
  SpvOpArbitraryFloatATanINTEL = 5877,
  SpvOpArbitraryFloatATanPiINTEL = 5878,
  SpvOpArbitraryFloatATan2INTEL = 5879,
  SpvOpArbitraryFloatPowINTEL = 5880,
  SpvOpArbitraryFloatPowRINTEL = 5881,
  SpvOpArbitraryFloatPowNINTEL = 5882,
  SpvOpLoopControlINTEL = 5887,
  SpvOpAliasDomainDeclINTEL = 5911,
  SpvOpAliasScopeDeclINTEL = 5912,
  SpvOpAliasScopeListDeclINTEL = 5913,
  SpvOpFixedSqrtINTEL = 5923,
  SpvOpFixedRecipINTEL = 5924,
  SpvOpFixedRsqrtINTEL = 5925,
  SpvOpFixedSinINTEL = 5926,
  SpvOpFixedCosINTEL = 5927,
  SpvOpFixedSinCosINTEL = 5928,
  SpvOpFixedSinPiINTEL = 5929,
  SpvOpFixedCosPiINTEL = 5930,
  SpvOpFixedSinCosPiINTEL = 5931,
  SpvOpFixedLogINTEL = 5932,
  SpvOpFixedExpINTEL = 5933,
  SpvOpPtrCastToCrossWorkgroupINTEL = 5934,
  SpvOpCrossWorkgroupCastToPtrINTEL = 5938,
  SpvOpReadPipeBlockingINTEL = 5946,
  SpvOpWritePipeBlockingINTEL = 5947,
  SpvOpFPGARegINTEL = 5949,
  SpvOpRayQueryGetRayTMinKHR = 6016,
  SpvOpRayQueryGetRayFlagsKHR = 6017,
  SpvOpRayQueryGetIntersectionTKHR = 6018,
  SpvOpRayQueryGetIntersectionInstanceCustomIndexKHR = 6019,
  SpvOpRayQueryGetIntersectionInstanceIdKHR = 6020,
  SpvOpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR = 6021,
  SpvOpRayQueryGetIntersectionGeometryIndexKHR = 6022,
  SpvOpRayQueryGetIntersectionPrimitiveIndexKHR = 6023,
  SpvOpRayQueryGetIntersectionBarycentricsKHR = 6024,
  SpvOpRayQueryGetIntersectionFrontFaceKHR = 6025,
  SpvOpRayQueryGetIntersectionCandidateAABBOpaqueKHR = 6026,
  SpvOpRayQueryGetIntersectionObjectRayDirectionKHR = 6027,
  SpvOpRayQueryGetIntersectionObjectRayOriginKHR = 6028,
  SpvOpRayQueryGetWorldRayDirectionKHR = 6029,
  SpvOpRayQueryGetWorldRayOriginKHR = 6030,
  SpvOpRayQueryGetIntersectionObjectToWorldKHR = 6031,
  SpvOpRayQueryGetIntersectionWorldToObjectKHR = 6032,
  SpvOpAtomicFAddEXT = 6035,
  SpvOpTypeBufferSurfaceINTEL = 6086,
  SpvOpTypeStructContinuedINTEL = 6090,
  SpvOpConstantCompositeContinuedINTEL = 6091,
  SpvOpSpecConstantCompositeContinuedINTEL = 6092,
  SpvOpCompositeConstructContinuedINTEL = 6096,
  SpvOpConvertFToBF16INTEL = 6116,
  SpvOpConvertBF16ToFINTEL = 6117,
  SpvOpControlBarrierArriveINTEL = 6142,
  SpvOpControlBarrierWaitINTEL = 6143,
  SpvOpArithmeticFenceEXT = 6145,
  SpvOpTaskSequenceCreateINTEL = 6163,
  SpvOpTaskSequenceAsyncINTEL = 6164,
  SpvOpTaskSequenceGetINTEL = 6165,
  SpvOpTaskSequenceReleaseINTEL = 6166,
  SpvOpTypeTaskSequenceINTEL = 6199,
  SpvOpSubgroupBlockPrefetchINTEL = 6221,
  SpvOpSubgroup2DBlockLoadINTEL = 6231,
  SpvOpSubgroup2DBlockLoadTransformINTEL = 6232,
  SpvOpSubgroup2DBlockLoadTransposeINTEL = 6233,
  SpvOpSubgroup2DBlockPrefetchINTEL = 6234,
  SpvOpSubgroup2DBlockStoreINTEL = 6235,
  SpvOpSubgroupMatrixMultiplyAccumulateINTEL = 6237,
  SpvOpBitwiseFunctionINTEL = 6242,
  SpvOpUntypedVariableLengthArrayINTEL = 6244,
  SpvOpConditionalExtensionINTEL = 6248,
  SpvOpConditionalEntryPointINTEL = 6249,
  SpvOpConditionalCapabilityINTEL = 6250,
  SpvOpSpecConstantTargetINTEL = 6251,
  SpvOpSpecConstantArchitectureINTEL = 6252,
  SpvOpSpecConstantCapabilitiesINTEL = 6253,
  SpvOpConditionalCopyObjectINTEL = 6254,
  SpvOpGroupIMulKHR = 6401,
  SpvOpGroupFMulKHR = 6402,
  SpvOpGroupBitwiseAndKHR = 6403,
  SpvOpGroupBitwiseOrKHR = 6404,
  SpvOpGroupBitwiseXorKHR = 6405,
  SpvOpGroupLogicalAndKHR = 6406,
  SpvOpGroupLogicalOrKHR = 6407,
  SpvOpGroupLogicalXorKHR = 6408,
  SpvOpRoundFToTF32INTEL = 6426,
  SpvOpMaskedGatherINTEL = 6428,
  SpvOpMaskedScatterINTEL = 6429,
  SpvOpConvertHandleToImageINTEL = 6529,
  SpvOpConvertHandleToSamplerINTEL = 6530,
  SpvOpConvertHandleToSampledImageINTEL = 6531,
  SpvOpMax = 0x7fffffff,
} SpvOp;

#ifdef SPV_ENABLE_UTILITY_CODE
#ifndef __cplusplus
#include <stdbool.h>
#endif
inline void SpvHasResultAndType(SpvOp opcode, bool* hasResult, bool* hasResultType) {
  *hasResult = *hasResultType = false;
  switch (opcode) {
    default: /* unknown opcode */
      break;
    case SpvOpNop:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpUndef:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSourceContinued:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpSource:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpSourceExtension:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpName:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpMemberName:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpString:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpLine:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpExtension:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpExtInstImport:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpExtInst:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpMemoryModel:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpEntryPoint:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpExecutionMode:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpCapability:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpTypeVoid:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeBool:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeInt:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeFloat:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeVector:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeMatrix:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeImage:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeSampler:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeSampledImage:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeArray:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeRuntimeArray:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeStruct:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeOpaque:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypePointer:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeFunction:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeEvent:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeDeviceEvent:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeReserveId:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeQueue:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypePipe:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeForwardPointer:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpConstantTrue:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpConstantFalse:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpConstant:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpConstantComposite:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpConstantSampler:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpConstantNull:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSpecConstantTrue:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSpecConstantFalse:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSpecConstant:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSpecConstantComposite:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSpecConstantOp:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFunction:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFunctionParameter:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFunctionEnd:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpFunctionCall:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpVariable:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageTexelPointer:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpLoad:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpStore:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpCopyMemory:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpCopyMemorySized:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpAccessChain:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpInBoundsAccessChain:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpPtrAccessChain:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArrayLength:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGenericPtrMemSemantics:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpInBoundsPtrAccessChain:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpDecorate:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpMemberDecorate:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpDecorationGroup:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpGroupDecorate:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpGroupMemberDecorate:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpVectorExtractDynamic:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpVectorInsertDynamic:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpVectorShuffle:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpCompositeConstruct:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpCompositeExtract:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpCompositeInsert:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpCopyObject:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpTranspose:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSampledImage:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageSampleImplicitLod:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageSampleExplicitLod:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageSampleDrefImplicitLod:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageSampleDrefExplicitLod:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageSampleProjImplicitLod:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageSampleProjExplicitLod:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageSampleProjDrefImplicitLod:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageSampleProjDrefExplicitLod:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageFetch:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageGather:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageDrefGather:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageRead:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageWrite:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpImage:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageQueryFormat:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageQueryOrder:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageQuerySizeLod:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageQuerySize:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageQueryLod:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageQueryLevels:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageQuerySamples:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpConvertFToU:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpConvertFToS:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpConvertSToF:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpConvertUToF:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpUConvert:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSConvert:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFConvert:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpQuantizeToF16:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpConvertPtrToU:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSatConvertSToU:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSatConvertUToS:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpConvertUToPtr:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpPtrCastToGeneric:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGenericCastToPtr:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGenericCastToPtrExplicit:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpBitcast:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSNegate:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFNegate:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpIAdd:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFAdd:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpISub:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFSub:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpIMul:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFMul:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpUDiv:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSDiv:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFDiv:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpUMod:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSRem:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSMod:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFRem:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFMod:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpVectorTimesScalar:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpMatrixTimesScalar:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpVectorTimesMatrix:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpMatrixTimesVector:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpMatrixTimesMatrix:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpOuterProduct:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpDot:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpIAddCarry:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpISubBorrow:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpUMulExtended:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSMulExtended:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAny:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAll:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpIsNan:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpIsInf:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpIsFinite:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpIsNormal:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSignBitSet:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpLessOrGreater:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpOrdered:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpUnordered:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpLogicalEqual:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpLogicalNotEqual:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpLogicalOr:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpLogicalAnd:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpLogicalNot:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSelect:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpIEqual:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpINotEqual:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpUGreaterThan:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSGreaterThan:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpUGreaterThanEqual:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSGreaterThanEqual:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpULessThan:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSLessThan:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpULessThanEqual:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSLessThanEqual:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFOrdEqual:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFUnordEqual:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFOrdNotEqual:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFUnordNotEqual:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFOrdLessThan:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFUnordLessThan:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFOrdGreaterThan:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFUnordGreaterThan:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFOrdLessThanEqual:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFUnordLessThanEqual:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFOrdGreaterThanEqual:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFUnordGreaterThanEqual:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpShiftRightLogical:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpShiftRightArithmetic:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpShiftLeftLogical:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpBitwiseOr:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpBitwiseXor:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpBitwiseAnd:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpNot:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpBitFieldInsert:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpBitFieldSExtract:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpBitFieldUExtract:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpBitReverse:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpBitCount:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpDPdx:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpDPdy:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFwidth:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpDPdxFine:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpDPdyFine:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFwidthFine:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpDPdxCoarse:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpDPdyCoarse:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFwidthCoarse:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpEmitVertex:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpEndPrimitive:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpEmitStreamVertex:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpEndStreamPrimitive:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpControlBarrier:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpMemoryBarrier:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpAtomicLoad:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAtomicStore:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpAtomicExchange:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAtomicCompareExchange:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAtomicCompareExchangeWeak:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAtomicIIncrement:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAtomicIDecrement:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAtomicIAdd:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAtomicISub:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAtomicSMin:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAtomicUMin:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAtomicSMax:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAtomicUMax:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAtomicAnd:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAtomicOr:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAtomicXor:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpPhi:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpLoopMerge:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpSelectionMerge:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpLabel:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpBranch:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpBranchConditional:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpSwitch:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpKill:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpReturn:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpReturnValue:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpUnreachable:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpLifetimeStart:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpLifetimeStop:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpGroupAsyncCopy:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupWaitEvents:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpGroupAll:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupAny:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupBroadcast:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupIAdd:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupFAdd:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupFMin:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupUMin:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupSMin:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupFMax:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupUMax:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupSMax:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpReadPipe:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpWritePipe:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpReservedReadPipe:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpReservedWritePipe:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpReserveReadPipePackets:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpReserveWritePipePackets:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpCommitReadPipe:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpCommitWritePipe:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpIsValidReserveId:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGetNumPipePackets:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGetMaxPipePackets:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupReserveReadPipePackets:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupReserveWritePipePackets:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupCommitReadPipe:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpGroupCommitWritePipe:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpEnqueueMarker:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpEnqueueKernel:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGetKernelNDrangeSubGroupCount:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGetKernelNDrangeMaxSubGroupSize:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGetKernelWorkGroupSize:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGetKernelPreferredWorkGroupSizeMultiple:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpRetainEvent:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpReleaseEvent:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpCreateUserEvent:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpIsValidEvent:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSetUserEventStatus:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpCaptureEventProfilingInfo:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpGetDefaultQueue:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpBuildNDRange:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageSparseSampleImplicitLod:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageSparseSampleExplicitLod:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageSparseSampleDrefImplicitLod:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageSparseSampleDrefExplicitLod:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageSparseSampleProjImplicitLod:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageSparseSampleProjExplicitLod:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageSparseSampleProjDrefImplicitLod:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageSparseSampleProjDrefExplicitLod:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageSparseFetch:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageSparseGather:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageSparseDrefGather:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageSparseTexelsResident:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpNoLine:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpAtomicFlagTestAndSet:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAtomicFlagClear:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpImageSparseRead:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSizeOf:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpTypePipeStorage:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpConstantPipeStorage:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpCreatePipeFromPipeStorage:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGetKernelLocalSizeForSubgroupCount:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGetKernelMaxNumSubgroups:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpTypeNamedBarrier:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpNamedBarrierInitialize:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpMemoryNamedBarrier:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpModuleProcessed:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpExecutionModeId:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpDecorateId:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpGroupNonUniformElect:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformAll:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformAny:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformAllEqual:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformBroadcast:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformBroadcastFirst:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformBallot:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformInverseBallot:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformBallotBitExtract:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformBallotBitCount:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformBallotFindLSB:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformBallotFindMSB:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformShuffle:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformShuffleXor:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformShuffleUp:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformShuffleDown:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformIAdd:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformFAdd:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformIMul:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformFMul:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformSMin:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformUMin:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformFMin:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformSMax:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformUMax:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformFMax:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformBitwiseAnd:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformBitwiseOr:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformBitwiseXor:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformLogicalAnd:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformLogicalOr:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformLogicalXor:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformQuadBroadcast:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformQuadSwap:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpCopyLogical:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpPtrEqual:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpPtrNotEqual:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpPtrDiff:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpColorAttachmentReadEXT:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpDepthAttachmentReadEXT:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpStencilAttachmentReadEXT:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpTypeTensorARM:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTensorReadARM:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpTensorWriteARM:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpTensorQuerySizeARM:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGraphConstantARM:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGraphEntryPointARM:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpGraphARM:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGraphInputARM:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGraphSetOutputARM:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpGraphEndARM:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpTypeGraphARM:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTerminateInvocation:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpTypeUntypedPointerKHR:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpUntypedVariableKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpUntypedAccessChainKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpUntypedInBoundsAccessChainKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupBallotKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupFirstInvocationKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpUntypedPtrAccessChainKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpUntypedInBoundsPtrAccessChainKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpUntypedArrayLengthKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpUntypedPrefetchKHR:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpSubgroupAllKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAnyKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAllEqualKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformRotateKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupReadInvocationKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpExtInstWithForwardRefsKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpUntypedGroupAsyncCopyKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpTraceRayKHR:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpExecuteCallableKHR:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpConvertUToAccelerationStructureKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpIgnoreIntersectionKHR:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpTerminateRayKHR:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpSDot:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpUDot:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSUDot:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSDotAccSat:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpUDotAccSat:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSUDotAccSat:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpTypeCooperativeMatrixKHR:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpCooperativeMatrixLoadKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpCooperativeMatrixStoreKHR:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpCooperativeMatrixMulAddKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpCooperativeMatrixLengthKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpConstantCompositeReplicateEXT:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSpecConstantCompositeReplicateEXT:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpCompositeConstructReplicateEXT:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpTypeRayQueryKHR:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpRayQueryInitializeKHR:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpRayQueryTerminateKHR:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpRayQueryGenerateIntersectionKHR:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpRayQueryConfirmIntersectionKHR:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpRayQueryProceedKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpRayQueryGetIntersectionTypeKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageSampleWeightedQCOM:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageBoxFilterQCOM:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageBlockMatchSSDQCOM:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageBlockMatchSADQCOM:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpBitCastArrayQCOM:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageBlockMatchWindowSSDQCOM:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageBlockMatchWindowSADQCOM:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageBlockMatchGatherSSDQCOM:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpImageBlockMatchGatherSADQCOM:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpCompositeConstructCoopMatQCOM:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpCompositeExtractCoopMatQCOM:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpExtractSubArrayQCOM:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupIAddNonUniformAMD:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupFAddNonUniformAMD:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupFMinNonUniformAMD:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupUMinNonUniformAMD:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupSMinNonUniformAMD:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupFMaxNonUniformAMD:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupUMaxNonUniformAMD:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupSMaxNonUniformAMD:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFragmentMaskFetchAMD:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFragmentFetchAMD:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpReadClockKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAllocateNodePayloadsAMDX:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpEnqueueNodePayloadsAMDX:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpTypeNodePayloadArrayAMDX:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpFinishWritingNodePayloadAMDX:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpNodePayloadArrayLengthAMDX:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpIsNodePayloadValidAMDX:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpConstantStringAMDX:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpSpecConstantStringAMDX:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpGroupNonUniformQuadAllKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupNonUniformQuadAnyKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpHitObjectRecordHitMotionNV:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpHitObjectRecordHitWithIndexMotionNV:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpHitObjectRecordMissMotionNV:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpHitObjectGetWorldToObjectNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpHitObjectGetObjectToWorldNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpHitObjectGetObjectRayDirectionNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpHitObjectGetObjectRayOriginNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpHitObjectTraceRayMotionNV:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpHitObjectGetShaderRecordBufferHandleNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpHitObjectGetShaderBindingTableRecordIndexNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpHitObjectRecordEmptyNV:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpHitObjectTraceRayNV:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpHitObjectRecordHitNV:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpHitObjectRecordHitWithIndexNV:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpHitObjectRecordMissNV:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpHitObjectExecuteShaderNV:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpHitObjectGetCurrentTimeNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpHitObjectGetAttributesNV:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpHitObjectGetHitKindNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpHitObjectGetPrimitiveIndexNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpHitObjectGetGeometryIndexNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpHitObjectGetInstanceIdNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpHitObjectGetInstanceCustomIndexNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpHitObjectGetWorldRayDirectionNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpHitObjectGetWorldRayOriginNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpHitObjectGetRayTMaxNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpHitObjectGetRayTMinNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpHitObjectIsEmptyNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpHitObjectIsHitNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpHitObjectIsMissNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpReorderThreadWithHitObjectNV:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpReorderThreadWithHintNV:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpTypeHitObjectNV:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpImageSampleFootprintNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpTypeCooperativeVectorNV:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpCooperativeVectorMatrixMulNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpCooperativeVectorOuterProductAccumulateNV:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpCooperativeVectorReduceSumAccumulateNV:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpCooperativeVectorMatrixMulAddNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpCooperativeMatrixConvertNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpEmitMeshTasksEXT:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpSetMeshOutputsEXT:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpGroupNonUniformPartitionNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpWritePackedPrimitiveIndices4x8NV:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpFetchMicroTriangleVertexPositionNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFetchMicroTriangleVertexBarycentricNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpCooperativeVectorLoadNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpCooperativeVectorStoreNV:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpReportIntersectionKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpIgnoreIntersectionNV:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpTerminateRayNV:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpTraceNV:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpTraceMotionNV:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpTraceRayMotionNV:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpRayQueryGetIntersectionTriangleVertexPositionsKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpTypeAccelerationStructureKHR:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpExecuteCallableNV:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpRayQueryGetIntersectionClusterIdNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpHitObjectGetClusterIdNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpTypeCooperativeMatrixNV:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpCooperativeMatrixLoadNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpCooperativeMatrixStoreNV:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpCooperativeMatrixMulAddNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpCooperativeMatrixLengthNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpBeginInvocationInterlockEXT:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpEndInvocationInterlockEXT:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpCooperativeMatrixReduceNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpCooperativeMatrixLoadTensorNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpCooperativeMatrixStoreTensorNV:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpCooperativeMatrixPerElementOpNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpTypeTensorLayoutNV:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeTensorViewNV:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpCreateTensorLayoutNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpTensorLayoutSetDimensionNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpTensorLayoutSetStrideNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpTensorLayoutSliceNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpTensorLayoutSetClampValueNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpCreateTensorViewNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpTensorViewSetDimensionNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpTensorViewSetStrideNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpDemoteToHelperInvocation:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpIsHelperInvocationEXT:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpTensorViewSetClipNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpTensorLayoutSetBlockSizeNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpCooperativeMatrixTransposeNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpConvertUToImageNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpConvertUToSamplerNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpConvertImageToUNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpConvertSamplerToUNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpConvertUToSampledImageNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpConvertSampledImageToUNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSamplerImageAddressingModeNV:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpRawAccessChainNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpRayQueryGetIntersectionSpherePositionNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpRayQueryGetIntersectionSphereRadiusNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpRayQueryGetIntersectionLSSPositionsNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpRayQueryGetIntersectionLSSRadiiNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpRayQueryGetIntersectionLSSHitValueNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpHitObjectGetSpherePositionNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpHitObjectGetSphereRadiusNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpHitObjectGetLSSPositionsNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpHitObjectGetLSSRadiiNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpHitObjectIsSphereHitNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpHitObjectIsLSSHitNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpRayQueryIsSphereHitNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpRayQueryIsLSSHitNV:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupShuffleINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupShuffleDownINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupShuffleUpINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupShuffleXorINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupBlockReadINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupBlockWriteINTEL:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpSubgroupImageBlockReadINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupImageBlockWriteINTEL:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpSubgroupImageMediaBlockReadINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupImageMediaBlockWriteINTEL:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpUCountLeadingZerosINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpUCountTrailingZerosINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAbsISubINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAbsUSubINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpIAddSatINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpUAddSatINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpIAverageINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpUAverageINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpIAverageRoundedINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpUAverageRoundedINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpISubSatINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpUSubSatINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpIMul32x16INTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpUMul32x16INTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpConstantFunctionPointerINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFunctionPointerCallINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAsmTargetINTEL:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpAsmINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAsmCallINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAtomicFMinEXT:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAtomicFMaxEXT:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAssumeTrueKHR:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpExpectKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpDecorateString:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpMemberDecorateString:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpVmeImageINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpTypeVmeImageINTEL:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeAvcImePayloadINTEL:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeAvcRefPayloadINTEL:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeAvcSicPayloadINTEL:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeAvcMcePayloadINTEL:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeAvcMceResultINTEL:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeAvcImeResultINTEL:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeAvcImeResultSingleReferenceStreamoutINTEL:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeAvcImeResultDualReferenceStreamoutINTEL:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeAvcImeSingleReferenceStreaminINTEL:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeAvcImeDualReferenceStreaminINTEL:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeAvcRefResultINTEL:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeAvcSicResultINTEL:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceSetInterShapePenaltyINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceSetInterDirectionPenaltyINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceSetMotionVectorCostFunctionINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceSetAcOnlyHaarINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceConvertToImePayloadINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceConvertToImeResultINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceConvertToRefPayloadINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceConvertToRefResultINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceConvertToSicPayloadINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceConvertToSicResultINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceGetMotionVectorsINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceGetInterDistortionsINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceGetBestInterDistortionsINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceGetInterMajorShapeINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceGetInterMinorShapeINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceGetInterDirectionsINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceGetInterMotionVectorCountINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceGetInterReferenceIdsINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeInitializeINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeSetSingleReferenceINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeSetDualReferenceINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeRefWindowSizeINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeAdjustRefOffsetINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeConvertToMcePayloadINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeSetMaxMotionVectorCountINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeSetUnidirectionalMixDisableINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeSetWeightedSadINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeEvaluateWithDualReferenceINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeConvertToMceResultINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeGetSingleReferenceStreaminINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeGetDualReferenceStreaminINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeStripSingleReferenceStreamoutINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeStripDualReferenceStreamoutINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeGetBorderReachedINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeGetTruncatedSearchIndicationINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcFmeInitializeINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcBmeInitializeINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcRefConvertToMcePayloadINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcRefSetBidirectionalMixDisableINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcRefSetBilinearFilterEnableINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcRefEvaluateWithSingleReferenceINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcRefEvaluateWithDualReferenceINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcRefEvaluateWithMultiReferenceINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcRefConvertToMceResultINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicInitializeINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicConfigureSkcINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicConfigureIpeLumaINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicConfigureIpeLumaChromaINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicGetMotionVectorMaskINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicConvertToMcePayloadINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicSetBilinearFilterEnableINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicSetSkcForwardTransformEnableINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicEvaluateIpeINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicEvaluateWithSingleReferenceINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicEvaluateWithDualReferenceINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicEvaluateWithMultiReferenceINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicConvertToMceResultINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicGetIpeLumaShapeINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicGetBestIpeLumaDistortionINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicGetBestIpeChromaDistortionINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicGetPackedIpeLumaModesINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicGetIpeChromaModeINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSubgroupAvcSicGetInterRawSadsINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpVariableLengthArrayINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSaveMemoryINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpRestoreMemoryINTEL:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpArbitraryFloatSinCosPiINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatCastINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatCastFromIntINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatCastToIntINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatAddINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatSubINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatMulINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatDivINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatGTINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatGEINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatLTINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatLEINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatEQINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatRecipINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatRSqrtINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatCbrtINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatHypotINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatSqrtINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatLogINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatLog2INTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatLog10INTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatLog1pINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatExpINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatExp2INTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatExp10INTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatExpm1INTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatSinINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatCosINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatSinCosINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatSinPiINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatCosPiINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatASinINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatASinPiINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatACosINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatACosPiINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatATanINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatATanPiINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatATan2INTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatPowINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatPowRINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpArbitraryFloatPowNINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpLoopControlINTEL:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpAliasDomainDeclINTEL:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpAliasScopeDeclINTEL:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpAliasScopeListDeclINTEL:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpFixedSqrtINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFixedRecipINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFixedRsqrtINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFixedSinINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFixedCosINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFixedSinCosINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFixedSinPiINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFixedCosPiINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFixedSinCosPiINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFixedLogINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFixedExpINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpPtrCastToCrossWorkgroupINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpCrossWorkgroupCastToPtrINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpReadPipeBlockingINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpWritePipeBlockingINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpFPGARegINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpRayQueryGetRayTMinKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpRayQueryGetRayFlagsKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpRayQueryGetIntersectionTKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpRayQueryGetIntersectionInstanceCustomIndexKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpRayQueryGetIntersectionInstanceIdKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpRayQueryGetIntersectionGeometryIndexKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpRayQueryGetIntersectionPrimitiveIndexKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpRayQueryGetIntersectionBarycentricsKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpRayQueryGetIntersectionFrontFaceKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpRayQueryGetIntersectionCandidateAABBOpaqueKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpRayQueryGetIntersectionObjectRayDirectionKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpRayQueryGetIntersectionObjectRayOriginKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpRayQueryGetWorldRayDirectionKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpRayQueryGetWorldRayOriginKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpRayQueryGetIntersectionObjectToWorldKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpRayQueryGetIntersectionWorldToObjectKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpAtomicFAddEXT:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpTypeBufferSurfaceINTEL:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpTypeStructContinuedINTEL:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpConstantCompositeContinuedINTEL:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpSpecConstantCompositeContinuedINTEL:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpCompositeConstructContinuedINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpConvertFToBF16INTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpConvertBF16ToFINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpControlBarrierArriveINTEL:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpControlBarrierWaitINTEL:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpArithmeticFenceEXT:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpTaskSequenceCreateINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpTaskSequenceAsyncINTEL:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpTaskSequenceGetINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpTaskSequenceReleaseINTEL:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpTypeTaskSequenceINTEL:
      *hasResult = true;
      *hasResultType = false;
      break;
    case SpvOpSubgroupBlockPrefetchINTEL:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpSubgroup2DBlockLoadINTEL:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpSubgroup2DBlockLoadTransformINTEL:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpSubgroup2DBlockLoadTransposeINTEL:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpSubgroup2DBlockPrefetchINTEL:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpSubgroup2DBlockStoreINTEL:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpSubgroupMatrixMultiplyAccumulateINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpBitwiseFunctionINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpUntypedVariableLengthArrayINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpConditionalExtensionINTEL:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpConditionalEntryPointINTEL:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpConditionalCapabilityINTEL:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpSpecConstantTargetINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSpecConstantArchitectureINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpSpecConstantCapabilitiesINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpConditionalCopyObjectINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupIMulKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupFMulKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupBitwiseAndKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupBitwiseOrKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupBitwiseXorKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupLogicalAndKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupLogicalOrKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpGroupLogicalXorKHR:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpRoundFToTF32INTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpMaskedGatherINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpMaskedScatterINTEL:
      *hasResult = false;
      *hasResultType = false;
      break;
    case SpvOpConvertHandleToImageINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpConvertHandleToSamplerINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
    case SpvOpConvertHandleToSampledImageINTEL:
      *hasResult = true;
      *hasResultType = true;
      break;
  }
}
inline const char* SpvSourceLanguageToString(SpvSourceLanguage value) {
  switch (value) {
    case SpvSourceLanguageUnknown:
      return "Unknown";
    case SpvSourceLanguageESSL:
      return "ESSL";
    case SpvSourceLanguageGLSL:
      return "GLSL";
    case SpvSourceLanguageOpenCL_C:
      return "OpenCL_C";
    case SpvSourceLanguageOpenCL_CPP:
      return "OpenCL_CPP";
    case SpvSourceLanguageHLSL:
      return "HLSL";
    case SpvSourceLanguageCPP_for_OpenCL:
      return "CPP_for_OpenCL";
    case SpvSourceLanguageSYCL:
      return "SYCL";
    case SpvSourceLanguageHERO_C:
      return "HERO_C";
    case SpvSourceLanguageNZSL:
      return "NZSL";
    case SpvSourceLanguageWGSL:
      return "WGSL";
    case SpvSourceLanguageSlang:
      return "Slang";
    case SpvSourceLanguageZig:
      return "Zig";
    case SpvSourceLanguageRust:
      return "Rust";
    default:
      return "Unknown";
  }
}

inline const char* SpvExecutionModelToString(SpvExecutionModel value) {
  switch (value) {
    case SpvExecutionModelVertex:
      return "Vertex";
    case SpvExecutionModelTessellationControl:
      return "TessellationControl";
    case SpvExecutionModelTessellationEvaluation:
      return "TessellationEvaluation";
    case SpvExecutionModelGeometry:
      return "Geometry";
    case SpvExecutionModelFragment:
      return "Fragment";
    case SpvExecutionModelGLCompute:
      return "GLCompute";
    case SpvExecutionModelKernel:
      return "Kernel";
    case SpvExecutionModelTaskNV:
      return "TaskNV";
    case SpvExecutionModelMeshNV:
      return "MeshNV";
    case SpvExecutionModelRayGenerationKHR:
      return "RayGenerationKHR";
    case SpvExecutionModelIntersectionKHR:
      return "IntersectionKHR";
    case SpvExecutionModelAnyHitKHR:
      return "AnyHitKHR";
    case SpvExecutionModelClosestHitKHR:
      return "ClosestHitKHR";
    case SpvExecutionModelMissKHR:
      return "MissKHR";
    case SpvExecutionModelCallableKHR:
      return "CallableKHR";
    case SpvExecutionModelTaskEXT:
      return "TaskEXT";
    case SpvExecutionModelMeshEXT:
      return "MeshEXT";
    default:
      return "Unknown";
  }
}

inline const char* SpvAddressingModelToString(SpvAddressingModel value) {
  switch (value) {
    case SpvAddressingModelLogical:
      return "Logical";
    case SpvAddressingModelPhysical32:
      return "Physical32";
    case SpvAddressingModelPhysical64:
      return "Physical64";
    case SpvAddressingModelPhysicalStorageBuffer64:
      return "PhysicalStorageBuffer64";
    default:
      return "Unknown";
  }
}

inline const char* SpvMemoryModelToString(SpvMemoryModel value) {
  switch (value) {
    case SpvMemoryModelSimple:
      return "Simple";
    case SpvMemoryModelGLSL450:
      return "GLSL450";
    case SpvMemoryModelOpenCL:
      return "OpenCL";
    case SpvMemoryModelVulkan:
      return "Vulkan";
    default:
      return "Unknown";
  }
}

inline const char* SpvExecutionModeToString(SpvExecutionMode value) {
  switch (value) {
    case SpvExecutionModeInvocations:
      return "Invocations";
    case SpvExecutionModeSpacingEqual:
      return "SpacingEqual";
    case SpvExecutionModeSpacingFractionalEven:
      return "SpacingFractionalEven";
    case SpvExecutionModeSpacingFractionalOdd:
      return "SpacingFractionalOdd";
    case SpvExecutionModeVertexOrderCw:
      return "VertexOrderCw";
    case SpvExecutionModeVertexOrderCcw:
      return "VertexOrderCcw";
    case SpvExecutionModePixelCenterInteger:
      return "PixelCenterInteger";
    case SpvExecutionModeOriginUpperLeft:
      return "OriginUpperLeft";
    case SpvExecutionModeOriginLowerLeft:
      return "OriginLowerLeft";
    case SpvExecutionModeEarlyFragmentTests:
      return "EarlyFragmentTests";
    case SpvExecutionModePointMode:
      return "PointMode";
    case SpvExecutionModeXfb:
      return "Xfb";
    case SpvExecutionModeDepthReplacing:
      return "DepthReplacing";
    case SpvExecutionModeDepthGreater:
      return "DepthGreater";
    case SpvExecutionModeDepthLess:
      return "DepthLess";
    case SpvExecutionModeDepthUnchanged:
      return "DepthUnchanged";
    case SpvExecutionModeLocalSize:
      return "LocalSize";
    case SpvExecutionModeLocalSizeHint:
      return "LocalSizeHint";
    case SpvExecutionModeInputPoints:
      return "InputPoints";
    case SpvExecutionModeInputLines:
      return "InputLines";
    case SpvExecutionModeInputLinesAdjacency:
      return "InputLinesAdjacency";
    case SpvExecutionModeTriangles:
      return "Triangles";
    case SpvExecutionModeInputTrianglesAdjacency:
      return "InputTrianglesAdjacency";
    case SpvExecutionModeQuads:
      return "Quads";
    case SpvExecutionModeIsolines:
      return "Isolines";
    case SpvExecutionModeOutputVertices:
      return "OutputVertices";
    case SpvExecutionModeOutputPoints:
      return "OutputPoints";
    case SpvExecutionModeOutputLineStrip:
      return "OutputLineStrip";
    case SpvExecutionModeOutputTriangleStrip:
      return "OutputTriangleStrip";
    case SpvExecutionModeVecTypeHint:
      return "VecTypeHint";
    case SpvExecutionModeContractionOff:
      return "ContractionOff";
    case SpvExecutionModeInitializer:
      return "Initializer";
    case SpvExecutionModeFinalizer:
      return "Finalizer";
    case SpvExecutionModeSubgroupSize:
      return "SubgroupSize";
    case SpvExecutionModeSubgroupsPerWorkgroup:
      return "SubgroupsPerWorkgroup";
    case SpvExecutionModeSubgroupsPerWorkgroupId:
      return "SubgroupsPerWorkgroupId";
    case SpvExecutionModeLocalSizeId:
      return "LocalSizeId";
    case SpvExecutionModeLocalSizeHintId:
      return "LocalSizeHintId";
    case SpvExecutionModeNonCoherentColorAttachmentReadEXT:
      return "NonCoherentColorAttachmentReadEXT";
    case SpvExecutionModeNonCoherentDepthAttachmentReadEXT:
      return "NonCoherentDepthAttachmentReadEXT";
    case SpvExecutionModeNonCoherentStencilAttachmentReadEXT:
      return "NonCoherentStencilAttachmentReadEXT";
    case SpvExecutionModeSubgroupUniformControlFlowKHR:
      return "SubgroupUniformControlFlowKHR";
    case SpvExecutionModePostDepthCoverage:
      return "PostDepthCoverage";
    case SpvExecutionModeDenormPreserve:
      return "DenormPreserve";
    case SpvExecutionModeDenormFlushToZero:
      return "DenormFlushToZero";
    case SpvExecutionModeSignedZeroInfNanPreserve:
      return "SignedZeroInfNanPreserve";
    case SpvExecutionModeRoundingModeRTE:
      return "RoundingModeRTE";
    case SpvExecutionModeRoundingModeRTZ:
      return "RoundingModeRTZ";
    case SpvExecutionModeNonCoherentTileAttachmentReadQCOM:
      return "NonCoherentTileAttachmentReadQCOM";
    case SpvExecutionModeTileShadingRateQCOM:
      return "TileShadingRateQCOM";
    case SpvExecutionModeEarlyAndLateFragmentTestsAMD:
      return "EarlyAndLateFragmentTestsAMD";
    case SpvExecutionModeStencilRefReplacingEXT:
      return "StencilRefReplacingEXT";
    case SpvExecutionModeCoalescingAMDX:
      return "CoalescingAMDX";
    case SpvExecutionModeIsApiEntryAMDX:
      return "IsApiEntryAMDX";
    case SpvExecutionModeMaxNodeRecursionAMDX:
      return "MaxNodeRecursionAMDX";
    case SpvExecutionModeStaticNumWorkgroupsAMDX:
      return "StaticNumWorkgroupsAMDX";
    case SpvExecutionModeShaderIndexAMDX:
      return "ShaderIndexAMDX";
    case SpvExecutionModeMaxNumWorkgroupsAMDX:
      return "MaxNumWorkgroupsAMDX";
    case SpvExecutionModeStencilRefUnchangedFrontAMD:
      return "StencilRefUnchangedFrontAMD";
    case SpvExecutionModeStencilRefGreaterFrontAMD:
      return "StencilRefGreaterFrontAMD";
    case SpvExecutionModeStencilRefLessFrontAMD:
      return "StencilRefLessFrontAMD";
    case SpvExecutionModeStencilRefUnchangedBackAMD:
      return "StencilRefUnchangedBackAMD";
    case SpvExecutionModeStencilRefGreaterBackAMD:
      return "StencilRefGreaterBackAMD";
    case SpvExecutionModeStencilRefLessBackAMD:
      return "StencilRefLessBackAMD";
    case SpvExecutionModeQuadDerivativesKHR:
      return "QuadDerivativesKHR";
    case SpvExecutionModeRequireFullQuadsKHR:
      return "RequireFullQuadsKHR";
    case SpvExecutionModeSharesInputWithAMDX:
      return "SharesInputWithAMDX";
    case SpvExecutionModeOutputLinesEXT:
      return "OutputLinesEXT";
    case SpvExecutionModeOutputPrimitivesEXT:
      return "OutputPrimitivesEXT";
    case SpvExecutionModeDerivativeGroupQuadsKHR:
      return "DerivativeGroupQuadsKHR";
    case SpvExecutionModeDerivativeGroupLinearKHR:
      return "DerivativeGroupLinearKHR";
    case SpvExecutionModeOutputTrianglesEXT:
      return "OutputTrianglesEXT";
    case SpvExecutionModePixelInterlockOrderedEXT:
      return "PixelInterlockOrderedEXT";
    case SpvExecutionModePixelInterlockUnorderedEXT:
      return "PixelInterlockUnorderedEXT";
    case SpvExecutionModeSampleInterlockOrderedEXT:
      return "SampleInterlockOrderedEXT";
    case SpvExecutionModeSampleInterlockUnorderedEXT:
      return "SampleInterlockUnorderedEXT";
    case SpvExecutionModeShadingRateInterlockOrderedEXT:
      return "ShadingRateInterlockOrderedEXT";
    case SpvExecutionModeShadingRateInterlockUnorderedEXT:
      return "ShadingRateInterlockUnorderedEXT";
    case SpvExecutionModeSharedLocalMemorySizeINTEL:
      return "SharedLocalMemorySizeINTEL";
    case SpvExecutionModeRoundingModeRTPINTEL:
      return "RoundingModeRTPINTEL";
    case SpvExecutionModeRoundingModeRTNINTEL:
      return "RoundingModeRTNINTEL";
    case SpvExecutionModeFloatingPointModeALTINTEL:
      return "FloatingPointModeALTINTEL";
    case SpvExecutionModeFloatingPointModeIEEEINTEL:
      return "FloatingPointModeIEEEINTEL";
    case SpvExecutionModeMaxWorkgroupSizeINTEL:
      return "MaxWorkgroupSizeINTEL";
    case SpvExecutionModeMaxWorkDimINTEL:
      return "MaxWorkDimINTEL";
    case SpvExecutionModeNoGlobalOffsetINTEL:
      return "NoGlobalOffsetINTEL";
    case SpvExecutionModeNumSIMDWorkitemsINTEL:
      return "NumSIMDWorkitemsINTEL";
    case SpvExecutionModeSchedulerTargetFmaxMhzINTEL:
      return "SchedulerTargetFmaxMhzINTEL";
    case SpvExecutionModeMaximallyReconvergesKHR:
      return "MaximallyReconvergesKHR";
    case SpvExecutionModeFPFastMathDefault:
      return "FPFastMathDefault";
    case SpvExecutionModeStreamingInterfaceINTEL:
      return "StreamingInterfaceINTEL";
    case SpvExecutionModeRegisterMapInterfaceINTEL:
      return "RegisterMapInterfaceINTEL";
    case SpvExecutionModeNamedBarrierCountINTEL:
      return "NamedBarrierCountINTEL";
    case SpvExecutionModeMaximumRegistersINTEL:
      return "MaximumRegistersINTEL";
    case SpvExecutionModeMaximumRegistersIdINTEL:
      return "MaximumRegistersIdINTEL";
    case SpvExecutionModeNamedMaximumRegistersINTEL:
      return "NamedMaximumRegistersINTEL";
    default:
      return "Unknown";
  }
}

inline const char* SpvStorageClassToString(SpvStorageClass value) {
  switch (value) {
    case SpvStorageClassUniformConstant:
      return "UniformConstant";
    case SpvStorageClassInput:
      return "Input";
    case SpvStorageClassUniform:
      return "Uniform";
    case SpvStorageClassOutput:
      return "Output";
    case SpvStorageClassWorkgroup:
      return "Workgroup";
    case SpvStorageClassCrossWorkgroup:
      return "CrossWorkgroup";
    case SpvStorageClassPrivate:
      return "Private";
    case SpvStorageClassFunction:
      return "Function";
    case SpvStorageClassGeneric:
      return "Generic";
    case SpvStorageClassPushConstant:
      return "PushConstant";
    case SpvStorageClassAtomicCounter:
      return "AtomicCounter";
    case SpvStorageClassImage:
      return "Image";
    case SpvStorageClassStorageBuffer:
      return "StorageBuffer";
    case SpvStorageClassTileImageEXT:
      return "TileImageEXT";
    case SpvStorageClassTileAttachmentQCOM:
      return "TileAttachmentQCOM";
    case SpvStorageClassNodePayloadAMDX:
      return "NodePayloadAMDX";
    case SpvStorageClassCallableDataKHR:
      return "CallableDataKHR";
    case SpvStorageClassIncomingCallableDataKHR:
      return "IncomingCallableDataKHR";
    case SpvStorageClassRayPayloadKHR:
      return "RayPayloadKHR";
    case SpvStorageClassHitAttributeKHR:
      return "HitAttributeKHR";
    case SpvStorageClassIncomingRayPayloadKHR:
      return "IncomingRayPayloadKHR";
    case SpvStorageClassShaderRecordBufferKHR:
      return "ShaderRecordBufferKHR";
    case SpvStorageClassPhysicalStorageBuffer:
      return "PhysicalStorageBuffer";
    case SpvStorageClassHitObjectAttributeNV:
      return "HitObjectAttributeNV";
    case SpvStorageClassTaskPayloadWorkgroupEXT:
      return "TaskPayloadWorkgroupEXT";
    case SpvStorageClassCodeSectionINTEL:
      return "CodeSectionINTEL";
    case SpvStorageClassDeviceOnlyINTEL:
      return "DeviceOnlyINTEL";
    case SpvStorageClassHostOnlyINTEL:
      return "HostOnlyINTEL";
    default:
      return "Unknown";
  }
}

inline const char* SpvDimToString(SpvDim value) {
  switch (value) {
    case SpvDim1D:
      return "1D";
    case SpvDim2D:
      return "2D";
    case SpvDim3D:
      return "3D";
    case SpvDimCube:
      return "Cube";
    case SpvDimRect:
      return "Rect";
    case SpvDimBuffer:
      return "Buffer";
    case SpvDimSubpassData:
      return "SubpassData";
    case SpvDimTileImageDataEXT:
      return "TileImageDataEXT";
    default:
      return "Unknown";
  }
}

inline const char* SpvSamplerAddressingModeToString(SpvSamplerAddressingMode value) {
  switch (value) {
    case SpvSamplerAddressingModeNone:
      return "None";
    case SpvSamplerAddressingModeClampToEdge:
      return "ClampToEdge";
    case SpvSamplerAddressingModeClamp:
      return "Clamp";
    case SpvSamplerAddressingModeRepeat:
      return "Repeat";
    case SpvSamplerAddressingModeRepeatMirrored:
      return "RepeatMirrored";
    default:
      return "Unknown";
  }
}

inline const char* SpvSamplerFilterModeToString(SpvSamplerFilterMode value) {
  switch (value) {
    case SpvSamplerFilterModeNearest:
      return "Nearest";
    case SpvSamplerFilterModeLinear:
      return "Linear";
    default:
      return "Unknown";
  }
}

inline const char* SpvImageFormatToString(SpvImageFormat value) {
  switch (value) {
    case SpvImageFormatUnknown:
      return "Unknown";
    case SpvImageFormatRgba32f:
      return "Rgba32f";
    case SpvImageFormatRgba16f:
      return "Rgba16f";
    case SpvImageFormatR32f:
      return "R32f";
    case SpvImageFormatRgba8:
      return "Rgba8";
    case SpvImageFormatRgba8Snorm:
      return "Rgba8Snorm";
    case SpvImageFormatRg32f:
      return "Rg32f";
    case SpvImageFormatRg16f:
      return "Rg16f";
    case SpvImageFormatR11fG11fB10f:
      return "R11fG11fB10f";
    case SpvImageFormatR16f:
      return "R16f";
    case SpvImageFormatRgba16:
      return "Rgba16";
    case SpvImageFormatRgb10A2:
      return "Rgb10A2";
    case SpvImageFormatRg16:
      return "Rg16";
    case SpvImageFormatRg8:
      return "Rg8";
    case SpvImageFormatR16:
      return "R16";
    case SpvImageFormatR8:
      return "R8";
    case SpvImageFormatRgba16Snorm:
      return "Rgba16Snorm";
    case SpvImageFormatRg16Snorm:
      return "Rg16Snorm";
    case SpvImageFormatRg8Snorm:
      return "Rg8Snorm";
    case SpvImageFormatR16Snorm:
      return "R16Snorm";
    case SpvImageFormatR8Snorm:
      return "R8Snorm";
    case SpvImageFormatRgba32i:
      return "Rgba32i";
    case SpvImageFormatRgba16i:
      return "Rgba16i";
    case SpvImageFormatRgba8i:
      return "Rgba8i";
    case SpvImageFormatR32i:
      return "R32i";
    case SpvImageFormatRg32i:
      return "Rg32i";
    case SpvImageFormatRg16i:
      return "Rg16i";
    case SpvImageFormatRg8i:
      return "Rg8i";
    case SpvImageFormatR16i:
      return "R16i";
    case SpvImageFormatR8i:
      return "R8i";
    case SpvImageFormatRgba32ui:
      return "Rgba32ui";
    case SpvImageFormatRgba16ui:
      return "Rgba16ui";
    case SpvImageFormatRgba8ui:
      return "Rgba8ui";
    case SpvImageFormatR32ui:
      return "R32ui";
    case SpvImageFormatRgb10a2ui:
      return "Rgb10a2ui";
    case SpvImageFormatRg32ui:
      return "Rg32ui";
    case SpvImageFormatRg16ui:
      return "Rg16ui";
    case SpvImageFormatRg8ui:
      return "Rg8ui";
    case SpvImageFormatR16ui:
      return "R16ui";
    case SpvImageFormatR8ui:
      return "R8ui";
    case SpvImageFormatR64ui:
      return "R64ui";
    case SpvImageFormatR64i:
      return "R64i";
    default:
      return "Unknown";
  }
}

inline const char* SpvImageChannelOrderToString(SpvImageChannelOrder value) {
  switch (value) {
    case SpvImageChannelOrderR:
      return "R";
    case SpvImageChannelOrderA:
      return "A";
    case SpvImageChannelOrderRG:
      return "RG";
    case SpvImageChannelOrderRA:
      return "RA";
    case SpvImageChannelOrderRGB:
      return "RGB";
    case SpvImageChannelOrderRGBA:
      return "RGBA";
    case SpvImageChannelOrderBGRA:
      return "BGRA";
    case SpvImageChannelOrderARGB:
      return "ARGB";
    case SpvImageChannelOrderIntensity:
      return "Intensity";
    case SpvImageChannelOrderLuminance:
      return "Luminance";
    case SpvImageChannelOrderRx:
      return "Rx";
    case SpvImageChannelOrderRGx:
      return "RGx";
    case SpvImageChannelOrderRGBx:
      return "RGBx";
    case SpvImageChannelOrderDepth:
      return "Depth";
    case SpvImageChannelOrderDepthStencil:
      return "DepthStencil";
    case SpvImageChannelOrdersRGB:
      return "sRGB";
    case SpvImageChannelOrdersRGBx:
      return "sRGBx";
    case SpvImageChannelOrdersRGBA:
      return "sRGBA";
    case SpvImageChannelOrdersBGRA:
      return "sBGRA";
    case SpvImageChannelOrderABGR:
      return "ABGR";
    default:
      return "Unknown";
  }
}

inline const char* SpvImageChannelDataTypeToString(SpvImageChannelDataType value) {
  switch (value) {
    case SpvImageChannelDataTypeSnormInt8:
      return "SnormInt8";
    case SpvImageChannelDataTypeSnormInt16:
      return "SnormInt16";
    case SpvImageChannelDataTypeUnormInt8:
      return "UnormInt8";
    case SpvImageChannelDataTypeUnormInt16:
      return "UnormInt16";
    case SpvImageChannelDataTypeUnormShort565:
      return "UnormShort565";
    case SpvImageChannelDataTypeUnormShort555:
      return "UnormShort555";
    case SpvImageChannelDataTypeUnormInt101010:
      return "UnormInt101010";
    case SpvImageChannelDataTypeSignedInt8:
      return "SignedInt8";
    case SpvImageChannelDataTypeSignedInt16:
      return "SignedInt16";
    case SpvImageChannelDataTypeSignedInt32:
      return "SignedInt32";
    case SpvImageChannelDataTypeUnsignedInt8:
      return "UnsignedInt8";
    case SpvImageChannelDataTypeUnsignedInt16:
      return "UnsignedInt16";
    case SpvImageChannelDataTypeUnsignedInt32:
      return "UnsignedInt32";
    case SpvImageChannelDataTypeHalfFloat:
      return "HalfFloat";
    case SpvImageChannelDataTypeFloat:
      return "Float";
    case SpvImageChannelDataTypeUnormInt24:
      return "UnormInt24";
    case SpvImageChannelDataTypeUnormInt101010_2:
      return "UnormInt101010_2";
    case SpvImageChannelDataTypeUnormInt10X6EXT:
      return "UnormInt10X6EXT";
    case SpvImageChannelDataTypeUnsignedIntRaw10EXT:
      return "UnsignedIntRaw10EXT";
    case SpvImageChannelDataTypeUnsignedIntRaw12EXT:
      return "UnsignedIntRaw12EXT";
    case SpvImageChannelDataTypeUnormInt2_101010EXT:
      return "UnormInt2_101010EXT";
    case SpvImageChannelDataTypeUnsignedInt10X6EXT:
      return "UnsignedInt10X6EXT";
    case SpvImageChannelDataTypeUnsignedInt12X4EXT:
      return "UnsignedInt12X4EXT";
    case SpvImageChannelDataTypeUnsignedInt14X2EXT:
      return "UnsignedInt14X2EXT";
    case SpvImageChannelDataTypeUnormInt12X4EXT:
      return "UnormInt12X4EXT";
    case SpvImageChannelDataTypeUnormInt14X2EXT:
      return "UnormInt14X2EXT";
    default:
      return "Unknown";
  }
}

inline const char* SpvFPRoundingModeToString(SpvFPRoundingMode value) {
  switch (value) {
    case SpvFPRoundingModeRTE:
      return "RTE";
    case SpvFPRoundingModeRTZ:
      return "RTZ";
    case SpvFPRoundingModeRTP:
      return "RTP";
    case SpvFPRoundingModeRTN:
      return "RTN";
    default:
      return "Unknown";
  }
}

inline const char* SpvLinkageTypeToString(SpvLinkageType value) {
  switch (value) {
    case SpvLinkageTypeExport:
      return "Export";
    case SpvLinkageTypeImport:
      return "Import";
    case SpvLinkageTypeLinkOnceODR:
      return "LinkOnceODR";
    default:
      return "Unknown";
  }
}

inline const char* SpvAccessQualifierToString(SpvAccessQualifier value) {
  switch (value) {
    case SpvAccessQualifierReadOnly:
      return "ReadOnly";
    case SpvAccessQualifierWriteOnly:
      return "WriteOnly";
    case SpvAccessQualifierReadWrite:
      return "ReadWrite";
    default:
      return "Unknown";
  }
}

inline const char* SpvFunctionParameterAttributeToString(SpvFunctionParameterAttribute value) {
  switch (value) {
    case SpvFunctionParameterAttributeZext:
      return "Zext";
    case SpvFunctionParameterAttributeSext:
      return "Sext";
    case SpvFunctionParameterAttributeByVal:
      return "ByVal";
    case SpvFunctionParameterAttributeSret:
      return "Sret";
    case SpvFunctionParameterAttributeNoAlias:
      return "NoAlias";
    case SpvFunctionParameterAttributeNoCapture:
      return "NoCapture";
    case SpvFunctionParameterAttributeNoWrite:
      return "NoWrite";
    case SpvFunctionParameterAttributeNoReadWrite:
      return "NoReadWrite";
    case SpvFunctionParameterAttributeRuntimeAlignedINTEL:
      return "RuntimeAlignedINTEL";
    default:
      return "Unknown";
  }
}

inline const char* SpvDecorationToString(SpvDecoration value) {
  switch (value) {
    case SpvDecorationRelaxedPrecision:
      return "RelaxedPrecision";
    case SpvDecorationSpecId:
      return "SpecId";
    case SpvDecorationBlock:
      return "Block";
    case SpvDecorationBufferBlock:
      return "BufferBlock";
    case SpvDecorationRowMajor:
      return "RowMajor";
    case SpvDecorationColMajor:
      return "ColMajor";
    case SpvDecorationArrayStride:
      return "ArrayStride";
    case SpvDecorationMatrixStride:
      return "MatrixStride";
    case SpvDecorationGLSLShared:
      return "GLSLShared";
    case SpvDecorationGLSLPacked:
      return "GLSLPacked";
    case SpvDecorationCPacked:
      return "CPacked";
    case SpvDecorationBuiltIn:
      return "BuiltIn";
    case SpvDecorationNoPerspective:
      return "NoPerspective";
    case SpvDecorationFlat:
      return "Flat";
    case SpvDecorationPatch:
      return "Patch";
    case SpvDecorationCentroid:
      return "Centroid";
    case SpvDecorationSample:
      return "Sample";
    case SpvDecorationInvariant:
      return "Invariant";
    case SpvDecorationRestrict:
      return "Restrict";
    case SpvDecorationAliased:
      return "Aliased";
    case SpvDecorationVolatile:
      return "Volatile";
    case SpvDecorationConstant:
      return "Constant";
    case SpvDecorationCoherent:
      return "Coherent";
    case SpvDecorationNonWritable:
      return "NonWritable";
    case SpvDecorationNonReadable:
      return "NonReadable";
    case SpvDecorationUniform:
      return "Uniform";
    case SpvDecorationUniformId:
      return "UniformId";
    case SpvDecorationSaturatedConversion:
      return "SaturatedConversion";
    case SpvDecorationStream:
      return "Stream";
    case SpvDecorationLocation:
      return "Location";
    case SpvDecorationComponent:
      return "Component";
    case SpvDecorationIndex:
      return "Index";
    case SpvDecorationBinding:
      return "Binding";
    case SpvDecorationDescriptorSet:
      return "DescriptorSet";
    case SpvDecorationOffset:
      return "Offset";
    case SpvDecorationXfbBuffer:
      return "XfbBuffer";
    case SpvDecorationXfbStride:
      return "XfbStride";
    case SpvDecorationFuncParamAttr:
      return "FuncParamAttr";
    case SpvDecorationFPRoundingMode:
      return "FPRoundingMode";
    case SpvDecorationFPFastMathMode:
      return "FPFastMathMode";
    case SpvDecorationLinkageAttributes:
      return "LinkageAttributes";
    case SpvDecorationNoContraction:
      return "NoContraction";
    case SpvDecorationInputAttachmentIndex:
      return "InputAttachmentIndex";
    case SpvDecorationAlignment:
      return "Alignment";
    case SpvDecorationMaxByteOffset:
      return "MaxByteOffset";
    case SpvDecorationAlignmentId:
      return "AlignmentId";
    case SpvDecorationMaxByteOffsetId:
      return "MaxByteOffsetId";
    case SpvDecorationSaturatedToLargestFloat8NormalConversionEXT:
      return "SaturatedToLargestFloat8NormalConversionEXT";
    case SpvDecorationNoSignedWrap:
      return "NoSignedWrap";
    case SpvDecorationNoUnsignedWrap:
      return "NoUnsignedWrap";
    case SpvDecorationWeightTextureQCOM:
      return "WeightTextureQCOM";
    case SpvDecorationBlockMatchTextureQCOM:
      return "BlockMatchTextureQCOM";
    case SpvDecorationBlockMatchSamplerQCOM:
      return "BlockMatchSamplerQCOM";
    case SpvDecorationExplicitInterpAMD:
      return "ExplicitInterpAMD";
    case SpvDecorationNodeSharesPayloadLimitsWithAMDX:
      return "NodeSharesPayloadLimitsWithAMDX";
    case SpvDecorationNodeMaxPayloadsAMDX:
      return "NodeMaxPayloadsAMDX";
    case SpvDecorationTrackFinishWritingAMDX:
      return "TrackFinishWritingAMDX";
    case SpvDecorationPayloadNodeNameAMDX:
      return "PayloadNodeNameAMDX";
    case SpvDecorationPayloadNodeBaseIndexAMDX:
      return "PayloadNodeBaseIndexAMDX";
    case SpvDecorationPayloadNodeSparseArrayAMDX:
      return "PayloadNodeSparseArrayAMDX";
    case SpvDecorationPayloadNodeArraySizeAMDX:
      return "PayloadNodeArraySizeAMDX";
    case SpvDecorationPayloadDispatchIndirectAMDX:
      return "PayloadDispatchIndirectAMDX";
    case SpvDecorationOverrideCoverageNV:
      return "OverrideCoverageNV";
    case SpvDecorationPassthroughNV:
      return "PassthroughNV";
    case SpvDecorationViewportRelativeNV:
      return "ViewportRelativeNV";
    case SpvDecorationSecondaryViewportRelativeNV:
      return "SecondaryViewportRelativeNV";
    case SpvDecorationPerPrimitiveEXT:
      return "PerPrimitiveEXT";
    case SpvDecorationPerViewNV:
      return "PerViewNV";
    case SpvDecorationPerTaskNV:
      return "PerTaskNV";
    case SpvDecorationPerVertexKHR:
      return "PerVertexKHR";
    case SpvDecorationNonUniform:
      return "NonUniform";
    case SpvDecorationRestrictPointer:
      return "RestrictPointer";
    case SpvDecorationAliasedPointer:
      return "AliasedPointer";
    case SpvDecorationHitObjectShaderRecordBufferNV:
      return "HitObjectShaderRecordBufferNV";
    case SpvDecorationBindlessSamplerNV:
      return "BindlessSamplerNV";
    case SpvDecorationBindlessImageNV:
      return "BindlessImageNV";
    case SpvDecorationBoundSamplerNV:
      return "BoundSamplerNV";
    case SpvDecorationBoundImageNV:
      return "BoundImageNV";
    case SpvDecorationSIMTCallINTEL:
      return "SIMTCallINTEL";
    case SpvDecorationReferencedIndirectlyINTEL:
      return "ReferencedIndirectlyINTEL";
    case SpvDecorationClobberINTEL:
      return "ClobberINTEL";
    case SpvDecorationSideEffectsINTEL:
      return "SideEffectsINTEL";
    case SpvDecorationVectorComputeVariableINTEL:
      return "VectorComputeVariableINTEL";
    case SpvDecorationFuncParamIOKindINTEL:
      return "FuncParamIOKindINTEL";
    case SpvDecorationVectorComputeFunctionINTEL:
      return "VectorComputeFunctionINTEL";
    case SpvDecorationStackCallINTEL:
      return "StackCallINTEL";
    case SpvDecorationGlobalVariableOffsetINTEL:
      return "GlobalVariableOffsetINTEL";
    case SpvDecorationCounterBuffer:
      return "CounterBuffer";
    case SpvDecorationHlslSemanticGOOGLE:
      return "HlslSemanticGOOGLE";
    case SpvDecorationUserTypeGOOGLE:
      return "UserTypeGOOGLE";
    case SpvDecorationFunctionRoundingModeINTEL:
      return "FunctionRoundingModeINTEL";
    case SpvDecorationFunctionDenormModeINTEL:
      return "FunctionDenormModeINTEL";
    case SpvDecorationRegisterINTEL:
      return "RegisterINTEL";
    case SpvDecorationMemoryINTEL:
      return "MemoryINTEL";
    case SpvDecorationNumbanksINTEL:
      return "NumbanksINTEL";
    case SpvDecorationBankwidthINTEL:
      return "BankwidthINTEL";
    case SpvDecorationMaxPrivateCopiesINTEL:
      return "MaxPrivateCopiesINTEL";
    case SpvDecorationSinglepumpINTEL:
      return "SinglepumpINTEL";
    case SpvDecorationDoublepumpINTEL:
      return "DoublepumpINTEL";
    case SpvDecorationMaxReplicatesINTEL:
      return "MaxReplicatesINTEL";
    case SpvDecorationSimpleDualPortINTEL:
      return "SimpleDualPortINTEL";
    case SpvDecorationMergeINTEL:
      return "MergeINTEL";
    case SpvDecorationBankBitsINTEL:
      return "BankBitsINTEL";
    case SpvDecorationForcePow2DepthINTEL:
      return "ForcePow2DepthINTEL";
    case SpvDecorationStridesizeINTEL:
      return "StridesizeINTEL";
    case SpvDecorationWordsizeINTEL:
      return "WordsizeINTEL";
    case SpvDecorationTrueDualPortINTEL:
      return "TrueDualPortINTEL";
    case SpvDecorationBurstCoalesceINTEL:
      return "BurstCoalesceINTEL";
    case SpvDecorationCacheSizeINTEL:
      return "CacheSizeINTEL";
    case SpvDecorationDontStaticallyCoalesceINTEL:
      return "DontStaticallyCoalesceINTEL";
    case SpvDecorationPrefetchINTEL:
      return "PrefetchINTEL";
    case SpvDecorationStallEnableINTEL:
      return "StallEnableINTEL";
    case SpvDecorationFuseLoopsInFunctionINTEL:
      return "FuseLoopsInFunctionINTEL";
    case SpvDecorationMathOpDSPModeINTEL:
      return "MathOpDSPModeINTEL";
    case SpvDecorationAliasScopeINTEL:
      return "AliasScopeINTEL";
    case SpvDecorationNoAliasINTEL:
      return "NoAliasINTEL";
    case SpvDecorationInitiationIntervalINTEL:
      return "InitiationIntervalINTEL";
    case SpvDecorationMaxConcurrencyINTEL:
      return "MaxConcurrencyINTEL";
    case SpvDecorationPipelineEnableINTEL:
      return "PipelineEnableINTEL";
    case SpvDecorationBufferLocationINTEL:
      return "BufferLocationINTEL";
    case SpvDecorationIOPipeStorageINTEL:
      return "IOPipeStorageINTEL";
    case SpvDecorationFunctionFloatingPointModeINTEL:
      return "FunctionFloatingPointModeINTEL";
    case SpvDecorationSingleElementVectorINTEL:
      return "SingleElementVectorINTEL";
    case SpvDecorationVectorComputeCallableFunctionINTEL:
      return "VectorComputeCallableFunctionINTEL";
    case SpvDecorationMediaBlockIOINTEL:
      return "MediaBlockIOINTEL";
    case SpvDecorationStallFreeINTEL:
      return "StallFreeINTEL";
    case SpvDecorationFPMaxErrorDecorationINTEL:
      return "FPMaxErrorDecorationINTEL";
    case SpvDecorationLatencyControlLabelINTEL:
      return "LatencyControlLabelINTEL";
    case SpvDecorationLatencyControlConstraintINTEL:
      return "LatencyControlConstraintINTEL";
    case SpvDecorationConduitKernelArgumentINTEL:
      return "ConduitKernelArgumentINTEL";
    case SpvDecorationRegisterMapKernelArgumentINTEL:
      return "RegisterMapKernelArgumentINTEL";
    case SpvDecorationMMHostInterfaceAddressWidthINTEL:
      return "MMHostInterfaceAddressWidthINTEL";
    case SpvDecorationMMHostInterfaceDataWidthINTEL:
      return "MMHostInterfaceDataWidthINTEL";
    case SpvDecorationMMHostInterfaceLatencyINTEL:
      return "MMHostInterfaceLatencyINTEL";
    case SpvDecorationMMHostInterfaceReadWriteModeINTEL:
      return "MMHostInterfaceReadWriteModeINTEL";
    case SpvDecorationMMHostInterfaceMaxBurstINTEL:
      return "MMHostInterfaceMaxBurstINTEL";
    case SpvDecorationMMHostInterfaceWaitRequestINTEL:
      return "MMHostInterfaceWaitRequestINTEL";
    case SpvDecorationStableKernelArgumentINTEL:
      return "StableKernelArgumentINTEL";
    case SpvDecorationHostAccessINTEL:
      return "HostAccessINTEL";
    case SpvDecorationInitModeINTEL:
      return "InitModeINTEL";
    case SpvDecorationImplementInRegisterMapINTEL:
      return "ImplementInRegisterMapINTEL";
    case SpvDecorationConditionalINTEL:
      return "ConditionalINTEL";
    case SpvDecorationCacheControlLoadINTEL:
      return "CacheControlLoadINTEL";
    case SpvDecorationCacheControlStoreINTEL:
      return "CacheControlStoreINTEL";
    default:
      return "Unknown";
  }
}

inline const char* SpvBuiltInToString(SpvBuiltIn value) {
  switch (value) {
    case SpvBuiltInPosition:
      return "Position";
    case SpvBuiltInPointSize:
      return "PointSize";
    case SpvBuiltInClipDistance:
      return "ClipDistance";
    case SpvBuiltInCullDistance:
      return "CullDistance";
    case SpvBuiltInVertexId:
      return "VertexId";
    case SpvBuiltInInstanceId:
      return "InstanceId";
    case SpvBuiltInPrimitiveId:
      return "PrimitiveId";
    case SpvBuiltInInvocationId:
      return "InvocationId";
    case SpvBuiltInLayer:
      return "Layer";
    case SpvBuiltInViewportIndex:
      return "ViewportIndex";
    case SpvBuiltInTessLevelOuter:
      return "TessLevelOuter";
    case SpvBuiltInTessLevelInner:
      return "TessLevelInner";
    case SpvBuiltInTessCoord:
      return "TessCoord";
    case SpvBuiltInPatchVertices:
      return "PatchVertices";
    case SpvBuiltInFragCoord:
      return "FragCoord";
    case SpvBuiltInPointCoord:
      return "PointCoord";
    case SpvBuiltInFrontFacing:
      return "FrontFacing";
    case SpvBuiltInSampleId:
      return "SampleId";
    case SpvBuiltInSamplePosition:
      return "SamplePosition";
    case SpvBuiltInSampleMask:
      return "SampleMask";
    case SpvBuiltInFragDepth:
      return "FragDepth";
    case SpvBuiltInHelperInvocation:
      return "HelperInvocation";
    case SpvBuiltInNumWorkgroups:
      return "NumWorkgroups";
    case SpvBuiltInWorkgroupSize:
      return "WorkgroupSize";
    case SpvBuiltInWorkgroupId:
      return "WorkgroupId";
    case SpvBuiltInLocalInvocationId:
      return "LocalInvocationId";
    case SpvBuiltInGlobalInvocationId:
      return "GlobalInvocationId";
    case SpvBuiltInLocalInvocationIndex:
      return "LocalInvocationIndex";
    case SpvBuiltInWorkDim:
      return "WorkDim";
    case SpvBuiltInGlobalSize:
      return "GlobalSize";
    case SpvBuiltInEnqueuedWorkgroupSize:
      return "EnqueuedWorkgroupSize";
    case SpvBuiltInGlobalOffset:
      return "GlobalOffset";
    case SpvBuiltInGlobalLinearId:
      return "GlobalLinearId";
    case SpvBuiltInSubgroupSize:
      return "SubgroupSize";
    case SpvBuiltInSubgroupMaxSize:
      return "SubgroupMaxSize";
    case SpvBuiltInNumSubgroups:
      return "NumSubgroups";
    case SpvBuiltInNumEnqueuedSubgroups:
      return "NumEnqueuedSubgroups";
    case SpvBuiltInSubgroupId:
      return "SubgroupId";
    case SpvBuiltInSubgroupLocalInvocationId:
      return "SubgroupLocalInvocationId";
    case SpvBuiltInVertexIndex:
      return "VertexIndex";
    case SpvBuiltInInstanceIndex:
      return "InstanceIndex";
    case SpvBuiltInCoreIDARM:
      return "CoreIDARM";
    case SpvBuiltInCoreCountARM:
      return "CoreCountARM";
    case SpvBuiltInCoreMaxIDARM:
      return "CoreMaxIDARM";
    case SpvBuiltInWarpIDARM:
      return "WarpIDARM";
    case SpvBuiltInWarpMaxIDARM:
      return "WarpMaxIDARM";
    case SpvBuiltInSubgroupEqMask:
      return "SubgroupEqMask";
    case SpvBuiltInSubgroupGeMask:
      return "SubgroupGeMask";
    case SpvBuiltInSubgroupGtMask:
      return "SubgroupGtMask";
    case SpvBuiltInSubgroupLeMask:
      return "SubgroupLeMask";
    case SpvBuiltInSubgroupLtMask:
      return "SubgroupLtMask";
    case SpvBuiltInBaseVertex:
      return "BaseVertex";
    case SpvBuiltInBaseInstance:
      return "BaseInstance";
    case SpvBuiltInDrawIndex:
      return "DrawIndex";
    case SpvBuiltInPrimitiveShadingRateKHR:
      return "PrimitiveShadingRateKHR";
    case SpvBuiltInDeviceIndex:
      return "DeviceIndex";
    case SpvBuiltInViewIndex:
      return "ViewIndex";
    case SpvBuiltInShadingRateKHR:
      return "ShadingRateKHR";
    case SpvBuiltInTileOffsetQCOM:
      return "TileOffsetQCOM";
    case SpvBuiltInTileDimensionQCOM:
      return "TileDimensionQCOM";
    case SpvBuiltInTileApronSizeQCOM:
      return "TileApronSizeQCOM";
    case SpvBuiltInBaryCoordNoPerspAMD:
      return "BaryCoordNoPerspAMD";
    case SpvBuiltInBaryCoordNoPerspCentroidAMD:
      return "BaryCoordNoPerspCentroidAMD";
    case SpvBuiltInBaryCoordNoPerspSampleAMD:
      return "BaryCoordNoPerspSampleAMD";
    case SpvBuiltInBaryCoordSmoothAMD:
      return "BaryCoordSmoothAMD";
    case SpvBuiltInBaryCoordSmoothCentroidAMD:
      return "BaryCoordSmoothCentroidAMD";
    case SpvBuiltInBaryCoordSmoothSampleAMD:
      return "BaryCoordSmoothSampleAMD";
    case SpvBuiltInBaryCoordPullModelAMD:
      return "BaryCoordPullModelAMD";
    case SpvBuiltInFragStencilRefEXT:
      return "FragStencilRefEXT";
    case SpvBuiltInRemainingRecursionLevelsAMDX:
      return "RemainingRecursionLevelsAMDX";
    case SpvBuiltInShaderIndexAMDX:
      return "ShaderIndexAMDX";
    case SpvBuiltInViewportMaskNV:
      return "ViewportMaskNV";
    case SpvBuiltInSecondaryPositionNV:
      return "SecondaryPositionNV";
    case SpvBuiltInSecondaryViewportMaskNV:
      return "SecondaryViewportMaskNV";
    case SpvBuiltInPositionPerViewNV:
      return "PositionPerViewNV";
    case SpvBuiltInViewportMaskPerViewNV:
      return "ViewportMaskPerViewNV";
    case SpvBuiltInFullyCoveredEXT:
      return "FullyCoveredEXT";
    case SpvBuiltInTaskCountNV:
      return "TaskCountNV";
    case SpvBuiltInPrimitiveCountNV:
      return "PrimitiveCountNV";
    case SpvBuiltInPrimitiveIndicesNV:
      return "PrimitiveIndicesNV";
    case SpvBuiltInClipDistancePerViewNV:
      return "ClipDistancePerViewNV";
    case SpvBuiltInCullDistancePerViewNV:
      return "CullDistancePerViewNV";
    case SpvBuiltInLayerPerViewNV:
      return "LayerPerViewNV";
    case SpvBuiltInMeshViewCountNV:
      return "MeshViewCountNV";
    case SpvBuiltInMeshViewIndicesNV:
      return "MeshViewIndicesNV";
    case SpvBuiltInBaryCoordKHR:
      return "BaryCoordKHR";
    case SpvBuiltInBaryCoordNoPerspKHR:
      return "BaryCoordNoPerspKHR";
    case SpvBuiltInFragSizeEXT:
      return "FragSizeEXT";
    case SpvBuiltInFragInvocationCountEXT:
      return "FragInvocationCountEXT";
    case SpvBuiltInPrimitivePointIndicesEXT:
      return "PrimitivePointIndicesEXT";
    case SpvBuiltInPrimitiveLineIndicesEXT:
      return "PrimitiveLineIndicesEXT";
    case SpvBuiltInPrimitiveTriangleIndicesEXT:
      return "PrimitiveTriangleIndicesEXT";
    case SpvBuiltInCullPrimitiveEXT:
      return "CullPrimitiveEXT";
    case SpvBuiltInLaunchIdKHR:
      return "LaunchIdKHR";
    case SpvBuiltInLaunchSizeKHR:
      return "LaunchSizeKHR";
    case SpvBuiltInWorldRayOriginKHR:
      return "WorldRayOriginKHR";
    case SpvBuiltInWorldRayDirectionKHR:
      return "WorldRayDirectionKHR";
    case SpvBuiltInObjectRayOriginKHR:
      return "ObjectRayOriginKHR";
    case SpvBuiltInObjectRayDirectionKHR:
      return "ObjectRayDirectionKHR";
    case SpvBuiltInRayTminKHR:
      return "RayTminKHR";
    case SpvBuiltInRayTmaxKHR:
      return "RayTmaxKHR";
    case SpvBuiltInInstanceCustomIndexKHR:
      return "InstanceCustomIndexKHR";
    case SpvBuiltInObjectToWorldKHR:
      return "ObjectToWorldKHR";
    case SpvBuiltInWorldToObjectKHR:
      return "WorldToObjectKHR";
    case SpvBuiltInHitTNV:
      return "HitTNV";
    case SpvBuiltInHitKindKHR:
      return "HitKindKHR";
    case SpvBuiltInCurrentRayTimeNV:
      return "CurrentRayTimeNV";
    case SpvBuiltInHitTriangleVertexPositionsKHR:
      return "HitTriangleVertexPositionsKHR";
    case SpvBuiltInHitMicroTriangleVertexPositionsNV:
      return "HitMicroTriangleVertexPositionsNV";
    case SpvBuiltInHitMicroTriangleVertexBarycentricsNV:
      return "HitMicroTriangleVertexBarycentricsNV";
    case SpvBuiltInIncomingRayFlagsKHR:
      return "IncomingRayFlagsKHR";
    case SpvBuiltInRayGeometryIndexKHR:
      return "RayGeometryIndexKHR";
    case SpvBuiltInHitIsSphereNV:
      return "HitIsSphereNV";
    case SpvBuiltInHitIsLSSNV:
      return "HitIsLSSNV";
    case SpvBuiltInHitSpherePositionNV:
      return "HitSpherePositionNV";
    case SpvBuiltInWarpsPerSMNV:
      return "WarpsPerSMNV";
    case SpvBuiltInSMCountNV:
      return "SMCountNV";
    case SpvBuiltInWarpIDNV:
      return "WarpIDNV";
    case SpvBuiltInSMIDNV:
      return "SMIDNV";
    case SpvBuiltInHitLSSPositionsNV:
      return "HitLSSPositionsNV";
    case SpvBuiltInHitKindFrontFacingMicroTriangleNV:
      return "HitKindFrontFacingMicroTriangleNV";
    case SpvBuiltInHitKindBackFacingMicroTriangleNV:
      return "HitKindBackFacingMicroTriangleNV";
    case SpvBuiltInHitSphereRadiusNV:
      return "HitSphereRadiusNV";
    case SpvBuiltInHitLSSRadiiNV:
      return "HitLSSRadiiNV";
    case SpvBuiltInClusterIDNV:
      return "ClusterIDNV";
    case SpvBuiltInCullMaskKHR:
      return "CullMaskKHR";
    default:
      return "Unknown";
  }
}

inline const char* SpvScopeToString(SpvScope value) {
  switch (value) {
    case SpvScopeCrossDevice:
      return "CrossDevice";
    case SpvScopeDevice:
      return "Device";
    case SpvScopeWorkgroup:
      return "Workgroup";
    case SpvScopeSubgroup:
      return "Subgroup";
    case SpvScopeInvocation:
      return "Invocation";
    case SpvScopeQueueFamily:
      return "QueueFamily";
    case SpvScopeShaderCallKHR:
      return "ShaderCallKHR";
    default:
      return "Unknown";
  }
}

inline const char* SpvGroupOperationToString(SpvGroupOperation value) {
  switch (value) {
    case SpvGroupOperationReduce:
      return "Reduce";
    case SpvGroupOperationInclusiveScan:
      return "InclusiveScan";
    case SpvGroupOperationExclusiveScan:
      return "ExclusiveScan";
    case SpvGroupOperationClusteredReduce:
      return "ClusteredReduce";
    case SpvGroupOperationPartitionedReduceNV:
      return "PartitionedReduceNV";
    case SpvGroupOperationPartitionedInclusiveScanNV:
      return "PartitionedInclusiveScanNV";
    case SpvGroupOperationPartitionedExclusiveScanNV:
      return "PartitionedExclusiveScanNV";
    default:
      return "Unknown";
  }
}

inline const char* SpvKernelEnqueueFlagsToString(SpvKernelEnqueueFlags value) {
  switch (value) {
    case SpvKernelEnqueueFlagsNoWait:
      return "NoWait";
    case SpvKernelEnqueueFlagsWaitKernel:
      return "WaitKernel";
    case SpvKernelEnqueueFlagsWaitWorkGroup:
      return "WaitWorkGroup";
    default:
      return "Unknown";
  }
}

inline const char* SpvCapabilityToString(SpvCapability value) {
  switch (value) {
    case SpvCapabilityMatrix:
      return "Matrix";
    case SpvCapabilityShader:
      return "Shader";
    case SpvCapabilityGeometry:
      return "Geometry";
    case SpvCapabilityTessellation:
      return "Tessellation";
    case SpvCapabilityAddresses:
      return "Addresses";
    case SpvCapabilityLinkage:
      return "Linkage";
    case SpvCapabilityKernel:
      return "Kernel";
    case SpvCapabilityVector16:
      return "Vector16";
    case SpvCapabilityFloat16Buffer:
      return "Float16Buffer";
    case SpvCapabilityFloat16:
      return "Float16";
    case SpvCapabilityFloat64:
      return "Float64";
    case SpvCapabilityInt64:
      return "Int64";
    case SpvCapabilityInt64Atomics:
      return "Int64Atomics";
    case SpvCapabilityImageBasic:
      return "ImageBasic";
    case SpvCapabilityImageReadWrite:
      return "ImageReadWrite";
    case SpvCapabilityImageMipmap:
      return "ImageMipmap";
    case SpvCapabilityPipes:
      return "Pipes";
    case SpvCapabilityGroups:
      return "Groups";
    case SpvCapabilityDeviceEnqueue:
      return "DeviceEnqueue";
    case SpvCapabilityLiteralSampler:
      return "LiteralSampler";
    case SpvCapabilityAtomicStorage:
      return "AtomicStorage";
    case SpvCapabilityInt16:
      return "Int16";
    case SpvCapabilityTessellationPointSize:
      return "TessellationPointSize";
    case SpvCapabilityGeometryPointSize:
      return "GeometryPointSize";
    case SpvCapabilityImageGatherExtended:
      return "ImageGatherExtended";
    case SpvCapabilityStorageImageMultisample:
      return "StorageImageMultisample";
    case SpvCapabilityUniformBufferArrayDynamicIndexing:
      return "UniformBufferArrayDynamicIndexing";
    case SpvCapabilitySampledImageArrayDynamicIndexing:
      return "SampledImageArrayDynamicIndexing";
    case SpvCapabilityStorageBufferArrayDynamicIndexing:
      return "StorageBufferArrayDynamicIndexing";
    case SpvCapabilityStorageImageArrayDynamicIndexing:
      return "StorageImageArrayDynamicIndexing";
    case SpvCapabilityClipDistance:
      return "ClipDistance";
    case SpvCapabilityCullDistance:
      return "CullDistance";
    case SpvCapabilityImageCubeArray:
      return "ImageCubeArray";
    case SpvCapabilitySampleRateShading:
      return "SampleRateShading";
    case SpvCapabilityImageRect:
      return "ImageRect";
    case SpvCapabilitySampledRect:
      return "SampledRect";
    case SpvCapabilityGenericPointer:
      return "GenericPointer";
    case SpvCapabilityInt8:
      return "Int8";
    case SpvCapabilityInputAttachment:
      return "InputAttachment";
    case SpvCapabilitySparseResidency:
      return "SparseResidency";
    case SpvCapabilityMinLod:
      return "MinLod";
    case SpvCapabilitySampled1D:
      return "Sampled1D";
    case SpvCapabilityImage1D:
      return "Image1D";
    case SpvCapabilitySampledCubeArray:
      return "SampledCubeArray";
    case SpvCapabilitySampledBuffer:
      return "SampledBuffer";
    case SpvCapabilityImageBuffer:
      return "ImageBuffer";
    case SpvCapabilityImageMSArray:
      return "ImageMSArray";
    case SpvCapabilityStorageImageExtendedFormats:
      return "StorageImageExtendedFormats";
    case SpvCapabilityImageQuery:
      return "ImageQuery";
    case SpvCapabilityDerivativeControl:
      return "DerivativeControl";
    case SpvCapabilityInterpolationFunction:
      return "InterpolationFunction";
    case SpvCapabilityTransformFeedback:
      return "TransformFeedback";
    case SpvCapabilityGeometryStreams:
      return "GeometryStreams";
    case SpvCapabilityStorageImageReadWithoutFormat:
      return "StorageImageReadWithoutFormat";
    case SpvCapabilityStorageImageWriteWithoutFormat:
      return "StorageImageWriteWithoutFormat";
    case SpvCapabilityMultiViewport:
      return "MultiViewport";
    case SpvCapabilitySubgroupDispatch:
      return "SubgroupDispatch";
    case SpvCapabilityNamedBarrier:
      return "NamedBarrier";
    case SpvCapabilityPipeStorage:
      return "PipeStorage";
    case SpvCapabilityGroupNonUniform:
      return "GroupNonUniform";
    case SpvCapabilityGroupNonUniformVote:
      return "GroupNonUniformVote";
    case SpvCapabilityGroupNonUniformArithmetic:
      return "GroupNonUniformArithmetic";
    case SpvCapabilityGroupNonUniformBallot:
      return "GroupNonUniformBallot";
    case SpvCapabilityGroupNonUniformShuffle:
      return "GroupNonUniformShuffle";
    case SpvCapabilityGroupNonUniformShuffleRelative:
      return "GroupNonUniformShuffleRelative";
    case SpvCapabilityGroupNonUniformClustered:
      return "GroupNonUniformClustered";
    case SpvCapabilityGroupNonUniformQuad:
      return "GroupNonUniformQuad";
    case SpvCapabilityShaderLayer:
      return "ShaderLayer";
    case SpvCapabilityShaderViewportIndex:
      return "ShaderViewportIndex";
    case SpvCapabilityUniformDecoration:
      return "UniformDecoration";
    case SpvCapabilityCoreBuiltinsARM:
      return "CoreBuiltinsARM";
    case SpvCapabilityTileImageColorReadAccessEXT:
      return "TileImageColorReadAccessEXT";
    case SpvCapabilityTileImageDepthReadAccessEXT:
      return "TileImageDepthReadAccessEXT";
    case SpvCapabilityTileImageStencilReadAccessEXT:
      return "TileImageStencilReadAccessEXT";
    case SpvCapabilityTensorsARM:
      return "TensorsARM";
    case SpvCapabilityStorageTensorArrayDynamicIndexingARM:
      return "StorageTensorArrayDynamicIndexingARM";
    case SpvCapabilityStorageTensorArrayNonUniformIndexingARM:
      return "StorageTensorArrayNonUniformIndexingARM";
    case SpvCapabilityGraphARM:
      return "GraphARM";
    case SpvCapabilityCooperativeMatrixLayoutsARM:
      return "CooperativeMatrixLayoutsARM";
    case SpvCapabilityFloat8EXT:
      return "Float8EXT";
    case SpvCapabilityFloat8CooperativeMatrixEXT:
      return "Float8CooperativeMatrixEXT";
    case SpvCapabilityFragmentShadingRateKHR:
      return "FragmentShadingRateKHR";
    case SpvCapabilitySubgroupBallotKHR:
      return "SubgroupBallotKHR";
    case SpvCapabilityDrawParameters:
      return "DrawParameters";
    case SpvCapabilityWorkgroupMemoryExplicitLayoutKHR:
      return "WorkgroupMemoryExplicitLayoutKHR";
    case SpvCapabilityWorkgroupMemoryExplicitLayout8BitAccessKHR:
      return "WorkgroupMemoryExplicitLayout8BitAccessKHR";
    case SpvCapabilityWorkgroupMemoryExplicitLayout16BitAccessKHR:
      return "WorkgroupMemoryExplicitLayout16BitAccessKHR";
    case SpvCapabilitySubgroupVoteKHR:
      return "SubgroupVoteKHR";
    case SpvCapabilityStorageBuffer16BitAccess:
      return "StorageBuffer16BitAccess";
    case SpvCapabilityStorageUniform16:
      return "StorageUniform16";
    case SpvCapabilityStoragePushConstant16:
      return "StoragePushConstant16";
    case SpvCapabilityStorageInputOutput16:
      return "StorageInputOutput16";
    case SpvCapabilityDeviceGroup:
      return "DeviceGroup";
    case SpvCapabilityMultiView:
      return "MultiView";
    case SpvCapabilityVariablePointersStorageBuffer:
      return "VariablePointersStorageBuffer";
    case SpvCapabilityVariablePointers:
      return "VariablePointers";
    case SpvCapabilityAtomicStorageOps:
      return "AtomicStorageOps";
    case SpvCapabilitySampleMaskPostDepthCoverage:
      return "SampleMaskPostDepthCoverage";
    case SpvCapabilityStorageBuffer8BitAccess:
      return "StorageBuffer8BitAccess";
    case SpvCapabilityUniformAndStorageBuffer8BitAccess:
      return "UniformAndStorageBuffer8BitAccess";
    case SpvCapabilityStoragePushConstant8:
      return "StoragePushConstant8";
    case SpvCapabilityDenormPreserve:
      return "DenormPreserve";
    case SpvCapabilityDenormFlushToZero:
      return "DenormFlushToZero";
    case SpvCapabilitySignedZeroInfNanPreserve:
      return "SignedZeroInfNanPreserve";
    case SpvCapabilityRoundingModeRTE:
      return "RoundingModeRTE";
    case SpvCapabilityRoundingModeRTZ:
      return "RoundingModeRTZ";
    case SpvCapabilityRayQueryProvisionalKHR:
      return "RayQueryProvisionalKHR";
    case SpvCapabilityRayQueryKHR:
      return "RayQueryKHR";
    case SpvCapabilityUntypedPointersKHR:
      return "UntypedPointersKHR";
    case SpvCapabilityRayTraversalPrimitiveCullingKHR:
      return "RayTraversalPrimitiveCullingKHR";
    case SpvCapabilityRayTracingKHR:
      return "RayTracingKHR";
    case SpvCapabilityTextureSampleWeightedQCOM:
      return "TextureSampleWeightedQCOM";
    case SpvCapabilityTextureBoxFilterQCOM:
      return "TextureBoxFilterQCOM";
    case SpvCapabilityTextureBlockMatchQCOM:
      return "TextureBlockMatchQCOM";
    case SpvCapabilityTileShadingQCOM:
      return "TileShadingQCOM";
    case SpvCapabilityCooperativeMatrixConversionQCOM:
      return "CooperativeMatrixConversionQCOM";
    case SpvCapabilityTextureBlockMatch2QCOM:
      return "TextureBlockMatch2QCOM";
    case SpvCapabilityFloat16ImageAMD:
      return "Float16ImageAMD";
    case SpvCapabilityImageGatherBiasLodAMD:
      return "ImageGatherBiasLodAMD";
    case SpvCapabilityFragmentMaskAMD:
      return "FragmentMaskAMD";
    case SpvCapabilityStencilExportEXT:
      return "StencilExportEXT";
    case SpvCapabilityImageReadWriteLodAMD:
      return "ImageReadWriteLodAMD";
    case SpvCapabilityInt64ImageEXT:
      return "Int64ImageEXT";
    case SpvCapabilityShaderClockKHR:
      return "ShaderClockKHR";
    case SpvCapabilityShaderEnqueueAMDX:
      return "ShaderEnqueueAMDX";
    case SpvCapabilityQuadControlKHR:
      return "QuadControlKHR";
    case SpvCapabilityInt4TypeINTEL:
      return "Int4TypeINTEL";
    case SpvCapabilityInt4CooperativeMatrixINTEL:
      return "Int4CooperativeMatrixINTEL";
    case SpvCapabilityBFloat16TypeKHR:
      return "BFloat16TypeKHR";
    case SpvCapabilityBFloat16DotProductKHR:
      return "BFloat16DotProductKHR";
    case SpvCapabilityBFloat16CooperativeMatrixKHR:
      return "BFloat16CooperativeMatrixKHR";
    case SpvCapabilitySampleMaskOverrideCoverageNV:
      return "SampleMaskOverrideCoverageNV";
    case SpvCapabilityGeometryShaderPassthroughNV:
      return "GeometryShaderPassthroughNV";
    case SpvCapabilityShaderViewportIndexLayerEXT:
      return "ShaderViewportIndexLayerEXT";
    case SpvCapabilityShaderViewportMaskNV:
      return "ShaderViewportMaskNV";
    case SpvCapabilityShaderStereoViewNV:
      return "ShaderStereoViewNV";
    case SpvCapabilityPerViewAttributesNV:
      return "PerViewAttributesNV";
    case SpvCapabilityFragmentFullyCoveredEXT:
      return "FragmentFullyCoveredEXT";
    case SpvCapabilityMeshShadingNV:
      return "MeshShadingNV";
    case SpvCapabilityImageFootprintNV:
      return "ImageFootprintNV";
    case SpvCapabilityMeshShadingEXT:
      return "MeshShadingEXT";
    case SpvCapabilityFragmentBarycentricKHR:
      return "FragmentBarycentricKHR";
    case SpvCapabilityComputeDerivativeGroupQuadsKHR:
      return "ComputeDerivativeGroupQuadsKHR";
    case SpvCapabilityFragmentDensityEXT:
      return "FragmentDensityEXT";
    case SpvCapabilityGroupNonUniformPartitionedNV:
      return "GroupNonUniformPartitionedNV";
    case SpvCapabilityShaderNonUniform:
      return "ShaderNonUniform";
    case SpvCapabilityRuntimeDescriptorArray:
      return "RuntimeDescriptorArray";
    case SpvCapabilityInputAttachmentArrayDynamicIndexing:
      return "InputAttachmentArrayDynamicIndexing";
    case SpvCapabilityUniformTexelBufferArrayDynamicIndexing:
      return "UniformTexelBufferArrayDynamicIndexing";
    case SpvCapabilityStorageTexelBufferArrayDynamicIndexing:
      return "StorageTexelBufferArrayDynamicIndexing";
    case SpvCapabilityUniformBufferArrayNonUniformIndexing:
      return "UniformBufferArrayNonUniformIndexing";
    case SpvCapabilitySampledImageArrayNonUniformIndexing:
      return "SampledImageArrayNonUniformIndexing";
    case SpvCapabilityStorageBufferArrayNonUniformIndexing:
      return "StorageBufferArrayNonUniformIndexing";
    case SpvCapabilityStorageImageArrayNonUniformIndexing:
      return "StorageImageArrayNonUniformIndexing";
    case SpvCapabilityInputAttachmentArrayNonUniformIndexing:
      return "InputAttachmentArrayNonUniformIndexing";
    case SpvCapabilityUniformTexelBufferArrayNonUniformIndexing:
      return "UniformTexelBufferArrayNonUniformIndexing";
    case SpvCapabilityStorageTexelBufferArrayNonUniformIndexing:
      return "StorageTexelBufferArrayNonUniformIndexing";
    case SpvCapabilityRayTracingPositionFetchKHR:
      return "RayTracingPositionFetchKHR";
    case SpvCapabilityRayTracingNV:
      return "RayTracingNV";
    case SpvCapabilityRayTracingMotionBlurNV:
      return "RayTracingMotionBlurNV";
    case SpvCapabilityVulkanMemoryModel:
      return "VulkanMemoryModel";
    case SpvCapabilityVulkanMemoryModelDeviceScope:
      return "VulkanMemoryModelDeviceScope";
    case SpvCapabilityPhysicalStorageBufferAddresses:
      return "PhysicalStorageBufferAddresses";
    case SpvCapabilityComputeDerivativeGroupLinearKHR:
      return "ComputeDerivativeGroupLinearKHR";
    case SpvCapabilityRayTracingProvisionalKHR:
      return "RayTracingProvisionalKHR";
    case SpvCapabilityCooperativeMatrixNV:
      return "CooperativeMatrixNV";
    case SpvCapabilityFragmentShaderSampleInterlockEXT:
      return "FragmentShaderSampleInterlockEXT";
    case SpvCapabilityFragmentShaderShadingRateInterlockEXT:
      return "FragmentShaderShadingRateInterlockEXT";
    case SpvCapabilityShaderSMBuiltinsNV:
      return "ShaderSMBuiltinsNV";
    case SpvCapabilityFragmentShaderPixelInterlockEXT:
      return "FragmentShaderPixelInterlockEXT";
    case SpvCapabilityDemoteToHelperInvocation:
      return "DemoteToHelperInvocation";
    case SpvCapabilityDisplacementMicromapNV:
      return "DisplacementMicromapNV";
    case SpvCapabilityRayTracingOpacityMicromapEXT:
      return "RayTracingOpacityMicromapEXT";
    case SpvCapabilityShaderInvocationReorderNV:
      return "ShaderInvocationReorderNV";
    case SpvCapabilityBindlessTextureNV:
      return "BindlessTextureNV";
    case SpvCapabilityRayQueryPositionFetchKHR:
      return "RayQueryPositionFetchKHR";
    case SpvCapabilityCooperativeVectorNV:
      return "CooperativeVectorNV";
    case SpvCapabilityAtomicFloat16VectorNV:
      return "AtomicFloat16VectorNV";
    case SpvCapabilityRayTracingDisplacementMicromapNV:
      return "RayTracingDisplacementMicromapNV";
    case SpvCapabilityRawAccessChainsNV:
      return "RawAccessChainsNV";
    case SpvCapabilityRayTracingSpheresGeometryNV:
      return "RayTracingSpheresGeometryNV";
    case SpvCapabilityRayTracingLinearSweptSpheresGeometryNV:
      return "RayTracingLinearSweptSpheresGeometryNV";
    case SpvCapabilityCooperativeMatrixReductionsNV:
      return "CooperativeMatrixReductionsNV";
    case SpvCapabilityCooperativeMatrixConversionsNV:
      return "CooperativeMatrixConversionsNV";
    case SpvCapabilityCooperativeMatrixPerElementOperationsNV:
      return "CooperativeMatrixPerElementOperationsNV";
    case SpvCapabilityCooperativeMatrixTensorAddressingNV:
      return "CooperativeMatrixTensorAddressingNV";
    case SpvCapabilityCooperativeMatrixBlockLoadsNV:
      return "CooperativeMatrixBlockLoadsNV";
    case SpvCapabilityCooperativeVectorTrainingNV:
      return "CooperativeVectorTrainingNV";
    case SpvCapabilityRayTracingClusterAccelerationStructureNV:
      return "RayTracingClusterAccelerationStructureNV";
    case SpvCapabilityTensorAddressingNV:
      return "TensorAddressingNV";
    case SpvCapabilitySubgroupShuffleINTEL:
      return "SubgroupShuffleINTEL";
    case SpvCapabilitySubgroupBufferBlockIOINTEL:
      return "SubgroupBufferBlockIOINTEL";
    case SpvCapabilitySubgroupImageBlockIOINTEL:
      return "SubgroupImageBlockIOINTEL";
    case SpvCapabilitySubgroupImageMediaBlockIOINTEL:
      return "SubgroupImageMediaBlockIOINTEL";
    case SpvCapabilityRoundToInfinityINTEL:
      return "RoundToInfinityINTEL";
    case SpvCapabilityFloatingPointModeINTEL:
      return "FloatingPointModeINTEL";
    case SpvCapabilityIntegerFunctions2INTEL:
      return "IntegerFunctions2INTEL";
    case SpvCapabilityFunctionPointersINTEL:
      return "FunctionPointersINTEL";
    case SpvCapabilityIndirectReferencesINTEL:
      return "IndirectReferencesINTEL";
    case SpvCapabilityAsmINTEL:
      return "AsmINTEL";
    case SpvCapabilityAtomicFloat32MinMaxEXT:
      return "AtomicFloat32MinMaxEXT";
    case SpvCapabilityAtomicFloat64MinMaxEXT:
      return "AtomicFloat64MinMaxEXT";
    case SpvCapabilityAtomicFloat16MinMaxEXT:
      return "AtomicFloat16MinMaxEXT";
    case SpvCapabilityVectorComputeINTEL:
      return "VectorComputeINTEL";
    case SpvCapabilityVectorAnyINTEL:
      return "VectorAnyINTEL";
    case SpvCapabilityExpectAssumeKHR:
      return "ExpectAssumeKHR";
    case SpvCapabilitySubgroupAvcMotionEstimationINTEL:
      return "SubgroupAvcMotionEstimationINTEL";
    case SpvCapabilitySubgroupAvcMotionEstimationIntraINTEL:
      return "SubgroupAvcMotionEstimationIntraINTEL";
    case SpvCapabilitySubgroupAvcMotionEstimationChromaINTEL:
      return "SubgroupAvcMotionEstimationChromaINTEL";
    case SpvCapabilityVariableLengthArrayINTEL:
      return "VariableLengthArrayINTEL";
    case SpvCapabilityFunctionFloatControlINTEL:
      return "FunctionFloatControlINTEL";
    case SpvCapabilityFPGAMemoryAttributesINTEL:
      return "FPGAMemoryAttributesINTEL";
    case SpvCapabilityFPFastMathModeINTEL:
      return "FPFastMathModeINTEL";
    case SpvCapabilityArbitraryPrecisionIntegersINTEL:
      return "ArbitraryPrecisionIntegersINTEL";
    case SpvCapabilityArbitraryPrecisionFloatingPointINTEL:
      return "ArbitraryPrecisionFloatingPointINTEL";
    case SpvCapabilityUnstructuredLoopControlsINTEL:
      return "UnstructuredLoopControlsINTEL";
    case SpvCapabilityFPGALoopControlsINTEL:
      return "FPGALoopControlsINTEL";
    case SpvCapabilityKernelAttributesINTEL:
      return "KernelAttributesINTEL";
    case SpvCapabilityFPGAKernelAttributesINTEL:
      return "FPGAKernelAttributesINTEL";
    case SpvCapabilityFPGAMemoryAccessesINTEL:
      return "FPGAMemoryAccessesINTEL";
    case SpvCapabilityFPGAClusterAttributesINTEL:
      return "FPGAClusterAttributesINTEL";
    case SpvCapabilityLoopFuseINTEL:
      return "LoopFuseINTEL";
    case SpvCapabilityFPGADSPControlINTEL:
      return "FPGADSPControlINTEL";
    case SpvCapabilityMemoryAccessAliasingINTEL:
      return "MemoryAccessAliasingINTEL";
    case SpvCapabilityFPGAInvocationPipeliningAttributesINTEL:
      return "FPGAInvocationPipeliningAttributesINTEL";
    case SpvCapabilityFPGABufferLocationINTEL:
      return "FPGABufferLocationINTEL";
    case SpvCapabilityArbitraryPrecisionFixedPointINTEL:
      return "ArbitraryPrecisionFixedPointINTEL";
    case SpvCapabilityUSMStorageClassesINTEL:
      return "USMStorageClassesINTEL";
    case SpvCapabilityRuntimeAlignedAttributeINTEL:
      return "RuntimeAlignedAttributeINTEL";
    case SpvCapabilityIOPipesINTEL:
      return "IOPipesINTEL";
    case SpvCapabilityBlockingPipesINTEL:
      return "BlockingPipesINTEL";
    case SpvCapabilityFPGARegINTEL:
      return "FPGARegINTEL";
    case SpvCapabilityDotProductInputAll:
      return "DotProductInputAll";
    case SpvCapabilityDotProductInput4x8Bit:
      return "DotProductInput4x8Bit";
    case SpvCapabilityDotProductInput4x8BitPacked:
      return "DotProductInput4x8BitPacked";
    case SpvCapabilityDotProduct:
      return "DotProduct";
    case SpvCapabilityRayCullMaskKHR:
      return "RayCullMaskKHR";
    case SpvCapabilityCooperativeMatrixKHR:
      return "CooperativeMatrixKHR";
    case SpvCapabilityReplicatedCompositesEXT:
      return "ReplicatedCompositesEXT";
    case SpvCapabilityBitInstructions:
      return "BitInstructions";
    case SpvCapabilityGroupNonUniformRotateKHR:
      return "GroupNonUniformRotateKHR";
    case SpvCapabilityFloatControls2:
      return "FloatControls2";
    case SpvCapabilityAtomicFloat32AddEXT:
      return "AtomicFloat32AddEXT";
    case SpvCapabilityAtomicFloat64AddEXT:
      return "AtomicFloat64AddEXT";
    case SpvCapabilityLongCompositesINTEL:
      return "LongCompositesINTEL";
    case SpvCapabilityOptNoneEXT:
      return "OptNoneEXT";
    case SpvCapabilityAtomicFloat16AddEXT:
      return "AtomicFloat16AddEXT";
    case SpvCapabilityDebugInfoModuleINTEL:
      return "DebugInfoModuleINTEL";
    case SpvCapabilityBFloat16ConversionINTEL:
      return "BFloat16ConversionINTEL";
    case SpvCapabilitySplitBarrierINTEL:
      return "SplitBarrierINTEL";
    case SpvCapabilityArithmeticFenceEXT:
      return "ArithmeticFenceEXT";
    case SpvCapabilityFPGAClusterAttributesV2INTEL:
      return "FPGAClusterAttributesV2INTEL";
    case SpvCapabilityFPGAKernelAttributesv2INTEL:
      return "FPGAKernelAttributesv2INTEL";
    case SpvCapabilityTaskSequenceINTEL:
      return "TaskSequenceINTEL";
    case SpvCapabilityFPMaxErrorINTEL:
      return "FPMaxErrorINTEL";
    case SpvCapabilityFPGALatencyControlINTEL:
      return "FPGALatencyControlINTEL";
    case SpvCapabilityFPGAArgumentInterfacesINTEL:
      return "FPGAArgumentInterfacesINTEL";
    case SpvCapabilityGlobalVariableHostAccessINTEL:
      return "GlobalVariableHostAccessINTEL";
    case SpvCapabilityGlobalVariableFPGADecorationsINTEL:
      return "GlobalVariableFPGADecorationsINTEL";
    case SpvCapabilitySubgroupBufferPrefetchINTEL:
      return "SubgroupBufferPrefetchINTEL";
    case SpvCapabilitySubgroup2DBlockIOINTEL:
      return "Subgroup2DBlockIOINTEL";
    case SpvCapabilitySubgroup2DBlockTransformINTEL:
      return "Subgroup2DBlockTransformINTEL";
    case SpvCapabilitySubgroup2DBlockTransposeINTEL:
      return "Subgroup2DBlockTransposeINTEL";
    case SpvCapabilitySubgroupMatrixMultiplyAccumulateINTEL:
      return "SubgroupMatrixMultiplyAccumulateINTEL";
    case SpvCapabilityTernaryBitwiseFunctionINTEL:
      return "TernaryBitwiseFunctionINTEL";
    case SpvCapabilityUntypedVariableLengthArrayINTEL:
      return "UntypedVariableLengthArrayINTEL";
    case SpvCapabilitySpecConditionalINTEL:
      return "SpecConditionalINTEL";
    case SpvCapabilityFunctionVariantsINTEL:
      return "FunctionVariantsINTEL";
    case SpvCapabilityGroupUniformArithmeticKHR:
      return "GroupUniformArithmeticKHR";
    case SpvCapabilityTensorFloat32RoundingINTEL:
      return "TensorFloat32RoundingINTEL";
    case SpvCapabilityMaskedGatherScatterINTEL:
      return "MaskedGatherScatterINTEL";
    case SpvCapabilityCacheControlsINTEL:
      return "CacheControlsINTEL";
    case SpvCapabilityRegisterLimitsINTEL:
      return "RegisterLimitsINTEL";
    case SpvCapabilityBindlessImagesINTEL:
      return "BindlessImagesINTEL";
    default:
      return "Unknown";
  }
}

inline const char* SpvRayQueryIntersectionToString(SpvRayQueryIntersection value) {
  switch (value) {
    case SpvRayQueryIntersectionRayQueryCandidateIntersectionKHR:
      return "RayQueryCandidateIntersectionKHR";
    case SpvRayQueryIntersectionRayQueryCommittedIntersectionKHR:
      return "RayQueryCommittedIntersectionKHR";
    default:
      return "Unknown";
  }
}

inline const char* SpvRayQueryCommittedIntersectionTypeToString(SpvRayQueryCommittedIntersectionType value) {
  switch (value) {
    case SpvRayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionNoneKHR:
      return "RayQueryCommittedIntersectionNoneKHR";
    case SpvRayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionTriangleKHR:
      return "RayQueryCommittedIntersectionTriangleKHR";
    case SpvRayQueryCommittedIntersectionTypeRayQueryCommittedIntersectionGeneratedKHR:
      return "RayQueryCommittedIntersectionGeneratedKHR";
    default:
      return "Unknown";
  }
}

inline const char* SpvRayQueryCandidateIntersectionTypeToString(SpvRayQueryCandidateIntersectionType value) {
  switch (value) {
    case SpvRayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionTriangleKHR:
      return "RayQueryCandidateIntersectionTriangleKHR";
    case SpvRayQueryCandidateIntersectionTypeRayQueryCandidateIntersectionAABBKHR:
      return "RayQueryCandidateIntersectionAABBKHR";
    default:
      return "Unknown";
  }
}

inline const char* SpvFPDenormModeToString(SpvFPDenormMode value) {
  switch (value) {
    case SpvFPDenormModePreserve:
      return "Preserve";
    case SpvFPDenormModeFlushToZero:
      return "FlushToZero";
    default:
      return "Unknown";
  }
}

inline const char* SpvFPOperationModeToString(SpvFPOperationMode value) {
  switch (value) {
    case SpvFPOperationModeIEEE:
      return "IEEE";
    case SpvFPOperationModeALT:
      return "ALT";
    default:
      return "Unknown";
  }
}

inline const char* SpvQuantizationModesToString(SpvQuantizationModes value) {
  switch (value) {
    case SpvQuantizationModesTRN:
      return "TRN";
    case SpvQuantizationModesTRN_ZERO:
      return "TRN_ZERO";
    case SpvQuantizationModesRND:
      return "RND";
    case SpvQuantizationModesRND_ZERO:
      return "RND_ZERO";
    case SpvQuantizationModesRND_INF:
      return "RND_INF";
    case SpvQuantizationModesRND_MIN_INF:
      return "RND_MIN_INF";
    case SpvQuantizationModesRND_CONV:
      return "RND_CONV";
    case SpvQuantizationModesRND_CONV_ODD:
      return "RND_CONV_ODD";
    default:
      return "Unknown";
  }
}

inline const char* SpvOverflowModesToString(SpvOverflowModes value) {
  switch (value) {
    case SpvOverflowModesWRAP:
      return "WRAP";
    case SpvOverflowModesSAT:
      return "SAT";
    case SpvOverflowModesSAT_ZERO:
      return "SAT_ZERO";
    case SpvOverflowModesSAT_SYM:
      return "SAT_SYM";
    default:
      return "Unknown";
  }
}

inline const char* SpvPackedVectorFormatToString(SpvPackedVectorFormat value) {
  switch (value) {
    case SpvPackedVectorFormatPackedVectorFormat4x8Bit:
      return "PackedVectorFormat4x8Bit";
    default:
      return "Unknown";
  }
}

inline const char* SpvCooperativeMatrixLayoutToString(SpvCooperativeMatrixLayout value) {
  switch (value) {
    case SpvCooperativeMatrixLayoutRowMajorKHR:
      return "RowMajorKHR";
    case SpvCooperativeMatrixLayoutColumnMajorKHR:
      return "ColumnMajorKHR";
    case SpvCooperativeMatrixLayoutRowBlockedInterleavedARM:
      return "RowBlockedInterleavedARM";
    case SpvCooperativeMatrixLayoutColumnBlockedInterleavedARM:
      return "ColumnBlockedInterleavedARM";
    default:
      return "Unknown";
  }
}

inline const char* SpvCooperativeMatrixUseToString(SpvCooperativeMatrixUse value) {
  switch (value) {
    case SpvCooperativeMatrixUseMatrixAKHR:
      return "MatrixAKHR";
    case SpvCooperativeMatrixUseMatrixBKHR:
      return "MatrixBKHR";
    case SpvCooperativeMatrixUseMatrixAccumulatorKHR:
      return "MatrixAccumulatorKHR";
    default:
      return "Unknown";
  }
}

inline const char* SpvTensorClampModeToString(SpvTensorClampMode value) {
  switch (value) {
    case SpvTensorClampModeUndefined:
      return "Undefined";
    case SpvTensorClampModeConstant:
      return "Constant";
    case SpvTensorClampModeClampToEdge:
      return "ClampToEdge";
    case SpvTensorClampModeRepeat:
      return "Repeat";
    case SpvTensorClampModeRepeatMirrored:
      return "RepeatMirrored";
    default:
      return "Unknown";
  }
}

inline const char* SpvInitializationModeQualifierToString(SpvInitializationModeQualifier value) {
  switch (value) {
    case SpvInitializationModeQualifierInitOnDeviceReprogramINTEL:
      return "InitOnDeviceReprogramINTEL";
    case SpvInitializationModeQualifierInitOnDeviceResetINTEL:
      return "InitOnDeviceResetINTEL";
    default:
      return "Unknown";
  }
}

inline const char* SpvHostAccessQualifierToString(SpvHostAccessQualifier value) {
  switch (value) {
    case SpvHostAccessQualifierNoneINTEL:
      return "NoneINTEL";
    case SpvHostAccessQualifierReadINTEL:
      return "ReadINTEL";
    case SpvHostAccessQualifierWriteINTEL:
      return "WriteINTEL";
    case SpvHostAccessQualifierReadWriteINTEL:
      return "ReadWriteINTEL";
    default:
      return "Unknown";
  }
}

inline const char* SpvLoadCacheControlToString(SpvLoadCacheControl value) {
  switch (value) {
    case SpvLoadCacheControlUncachedINTEL:
      return "UncachedINTEL";
    case SpvLoadCacheControlCachedINTEL:
      return "CachedINTEL";
    case SpvLoadCacheControlStreamingINTEL:
      return "StreamingINTEL";
    case SpvLoadCacheControlInvalidateAfterReadINTEL:
      return "InvalidateAfterReadINTEL";
    case SpvLoadCacheControlConstCachedINTEL:
      return "ConstCachedINTEL";
    default:
      return "Unknown";
  }
}

inline const char* SpvStoreCacheControlToString(SpvStoreCacheControl value) {
  switch (value) {
    case SpvStoreCacheControlUncachedINTEL:
      return "UncachedINTEL";
    case SpvStoreCacheControlWriteThroughINTEL:
      return "WriteThroughINTEL";
    case SpvStoreCacheControlWriteBackINTEL:
      return "WriteBackINTEL";
    case SpvStoreCacheControlStreamingINTEL:
      return "StreamingINTEL";
    default:
      return "Unknown";
  }
}

inline const char* SpvNamedMaximumNumberOfRegistersToString(SpvNamedMaximumNumberOfRegisters value) {
  switch (value) {
    case SpvNamedMaximumNumberOfRegistersAutoINTEL:
      return "AutoINTEL";
    default:
      return "Unknown";
  }
}

inline const char* SpvFPEncodingToString(SpvFPEncoding value) {
  switch (value) {
    case SpvFPEncodingBFloat16KHR:
      return "BFloat16KHR";
    case SpvFPEncodingFloat8E4M3EXT:
      return "Float8E4M3EXT";
    case SpvFPEncodingFloat8E5M2EXT:
      return "Float8E5M2EXT";
    default:
      return "Unknown";
  }
}

inline const char* SpvCooperativeVectorMatrixLayoutToString(SpvCooperativeVectorMatrixLayout value) {
  switch (value) {
    case SpvCooperativeVectorMatrixLayoutRowMajorNV:
      return "RowMajorNV";
    case SpvCooperativeVectorMatrixLayoutColumnMajorNV:
      return "ColumnMajorNV";
    case SpvCooperativeVectorMatrixLayoutInferencingOptimalNV:
      return "InferencingOptimalNV";
    case SpvCooperativeVectorMatrixLayoutTrainingOptimalNV:
      return "TrainingOptimalNV";
    default:
      return "Unknown";
  }
}

inline const char* SpvComponentTypeToString(SpvComponentType value) {
  switch (value) {
    case SpvComponentTypeFloat16NV:
      return "Float16NV";
    case SpvComponentTypeFloat32NV:
      return "Float32NV";
    case SpvComponentTypeFloat64NV:
      return "Float64NV";
    case SpvComponentTypeSignedInt8NV:
      return "SignedInt8NV";
    case SpvComponentTypeSignedInt16NV:
      return "SignedInt16NV";
    case SpvComponentTypeSignedInt32NV:
      return "SignedInt32NV";
    case SpvComponentTypeSignedInt64NV:
      return "SignedInt64NV";
    case SpvComponentTypeUnsignedInt8NV:
      return "UnsignedInt8NV";
    case SpvComponentTypeUnsignedInt16NV:
      return "UnsignedInt16NV";
    case SpvComponentTypeUnsignedInt32NV:
      return "UnsignedInt32NV";
    case SpvComponentTypeUnsignedInt64NV:
      return "UnsignedInt64NV";
    case SpvComponentTypeSignedInt8PackedNV:
      return "SignedInt8PackedNV";
    case SpvComponentTypeUnsignedInt8PackedNV:
      return "UnsignedInt8PackedNV";
    case SpvComponentTypeFloatE4M3NV:
      return "FloatE4M3NV";
    case SpvComponentTypeFloatE5M2NV:
      return "FloatE5M2NV";
    default:
      return "Unknown";
  }
}

inline const char* SpvOpToString(SpvOp value) {
  switch (value) {
    case SpvOpNop:
      return "OpNop";
    case SpvOpUndef:
      return "OpUndef";
    case SpvOpSourceContinued:
      return "OpSourceContinued";
    case SpvOpSource:
      return "OpSource";
    case SpvOpSourceExtension:
      return "OpSourceExtension";
    case SpvOpName:
      return "OpName";
    case SpvOpMemberName:
      return "OpMemberName";
    case SpvOpString:
      return "OpString";
    case SpvOpLine:
      return "OpLine";
    case SpvOpExtension:
      return "OpExtension";
    case SpvOpExtInstImport:
      return "OpExtInstImport";
    case SpvOpExtInst:
      return "OpExtInst";
    case SpvOpMemoryModel:
      return "OpMemoryModel";
    case SpvOpEntryPoint:
      return "OpEntryPoint";
    case SpvOpExecutionMode:
      return "OpExecutionMode";
    case SpvOpCapability:
      return "OpCapability";
    case SpvOpTypeVoid:
      return "OpTypeVoid";
    case SpvOpTypeBool:
      return "OpTypeBool";
    case SpvOpTypeInt:
      return "OpTypeInt";
    case SpvOpTypeFloat:
      return "OpTypeFloat";
    case SpvOpTypeVector:
      return "OpTypeVector";
    case SpvOpTypeMatrix:
      return "OpTypeMatrix";
    case SpvOpTypeImage:
      return "OpTypeImage";
    case SpvOpTypeSampler:
      return "OpTypeSampler";
    case SpvOpTypeSampledImage:
      return "OpTypeSampledImage";
    case SpvOpTypeArray:
      return "OpTypeArray";
    case SpvOpTypeRuntimeArray:
      return "OpTypeRuntimeArray";
    case SpvOpTypeStruct:
      return "OpTypeStruct";
    case SpvOpTypeOpaque:
      return "OpTypeOpaque";
    case SpvOpTypePointer:
      return "OpTypePointer";
    case SpvOpTypeFunction:
      return "OpTypeFunction";
    case SpvOpTypeEvent:
      return "OpTypeEvent";
    case SpvOpTypeDeviceEvent:
      return "OpTypeDeviceEvent";
    case SpvOpTypeReserveId:
      return "OpTypeReserveId";
    case SpvOpTypeQueue:
      return "OpTypeQueue";
    case SpvOpTypePipe:
      return "OpTypePipe";
    case SpvOpTypeForwardPointer:
      return "OpTypeForwardPointer";
    case SpvOpConstantTrue:
      return "OpConstantTrue";
    case SpvOpConstantFalse:
      return "OpConstantFalse";
    case SpvOpConstant:
      return "OpConstant";
    case SpvOpConstantComposite:
      return "OpConstantComposite";
    case SpvOpConstantSampler:
      return "OpConstantSampler";
    case SpvOpConstantNull:
      return "OpConstantNull";
    case SpvOpSpecConstantTrue:
      return "OpSpecConstantTrue";
    case SpvOpSpecConstantFalse:
      return "OpSpecConstantFalse";
    case SpvOpSpecConstant:
      return "OpSpecConstant";
    case SpvOpSpecConstantComposite:
      return "OpSpecConstantComposite";
    case SpvOpSpecConstantOp:
      return "OpSpecConstantOp";
    case SpvOpFunction:
      return "OpFunction";
    case SpvOpFunctionParameter:
      return "OpFunctionParameter";
    case SpvOpFunctionEnd:
      return "OpFunctionEnd";
    case SpvOpFunctionCall:
      return "OpFunctionCall";
    case SpvOpVariable:
      return "OpVariable";
    case SpvOpImageTexelPointer:
      return "OpImageTexelPointer";
    case SpvOpLoad:
      return "OpLoad";
    case SpvOpStore:
      return "OpStore";
    case SpvOpCopyMemory:
      return "OpCopyMemory";
    case SpvOpCopyMemorySized:
      return "OpCopyMemorySized";
    case SpvOpAccessChain:
      return "OpAccessChain";
    case SpvOpInBoundsAccessChain:
      return "OpInBoundsAccessChain";
    case SpvOpPtrAccessChain:
      return "OpPtrAccessChain";
    case SpvOpArrayLength:
      return "OpArrayLength";
    case SpvOpGenericPtrMemSemantics:
      return "OpGenericPtrMemSemantics";
    case SpvOpInBoundsPtrAccessChain:
      return "OpInBoundsPtrAccessChain";
    case SpvOpDecorate:
      return "OpDecorate";
    case SpvOpMemberDecorate:
      return "OpMemberDecorate";
    case SpvOpDecorationGroup:
      return "OpDecorationGroup";
    case SpvOpGroupDecorate:
      return "OpGroupDecorate";
    case SpvOpGroupMemberDecorate:
      return "OpGroupMemberDecorate";
    case SpvOpVectorExtractDynamic:
      return "OpVectorExtractDynamic";
    case SpvOpVectorInsertDynamic:
      return "OpVectorInsertDynamic";
    case SpvOpVectorShuffle:
      return "OpVectorShuffle";
    case SpvOpCompositeConstruct:
      return "OpCompositeConstruct";
    case SpvOpCompositeExtract:
      return "OpCompositeExtract";
    case SpvOpCompositeInsert:
      return "OpCompositeInsert";
    case SpvOpCopyObject:
      return "OpCopyObject";
    case SpvOpTranspose:
      return "OpTranspose";
    case SpvOpSampledImage:
      return "OpSampledImage";
    case SpvOpImageSampleImplicitLod:
      return "OpImageSampleImplicitLod";
    case SpvOpImageSampleExplicitLod:
      return "OpImageSampleExplicitLod";
    case SpvOpImageSampleDrefImplicitLod:
      return "OpImageSampleDrefImplicitLod";
    case SpvOpImageSampleDrefExplicitLod:
      return "OpImageSampleDrefExplicitLod";
    case SpvOpImageSampleProjImplicitLod:
      return "OpImageSampleProjImplicitLod";
    case SpvOpImageSampleProjExplicitLod:
      return "OpImageSampleProjExplicitLod";
    case SpvOpImageSampleProjDrefImplicitLod:
      return "OpImageSampleProjDrefImplicitLod";
    case SpvOpImageSampleProjDrefExplicitLod:
      return "OpImageSampleProjDrefExplicitLod";
    case SpvOpImageFetch:
      return "OpImageFetch";
    case SpvOpImageGather:
      return "OpImageGather";
    case SpvOpImageDrefGather:
      return "OpImageDrefGather";
    case SpvOpImageRead:
      return "OpImageRead";
    case SpvOpImageWrite:
      return "OpImageWrite";
    case SpvOpImage:
      return "OpImage";
    case SpvOpImageQueryFormat:
      return "OpImageQueryFormat";
    case SpvOpImageQueryOrder:
      return "OpImageQueryOrder";
    case SpvOpImageQuerySizeLod:
      return "OpImageQuerySizeLod";
    case SpvOpImageQuerySize:
      return "OpImageQuerySize";
    case SpvOpImageQueryLod:
      return "OpImageQueryLod";
    case SpvOpImageQueryLevels:
      return "OpImageQueryLevels";
    case SpvOpImageQuerySamples:
      return "OpImageQuerySamples";
    case SpvOpConvertFToU:
      return "OpConvertFToU";
    case SpvOpConvertFToS:
      return "OpConvertFToS";
    case SpvOpConvertSToF:
      return "OpConvertSToF";
    case SpvOpConvertUToF:
      return "OpConvertUToF";
    case SpvOpUConvert:
      return "OpUConvert";
    case SpvOpSConvert:
      return "OpSConvert";
    case SpvOpFConvert:
      return "OpFConvert";
    case SpvOpQuantizeToF16:
      return "OpQuantizeToF16";
    case SpvOpConvertPtrToU:
      return "OpConvertPtrToU";
    case SpvOpSatConvertSToU:
      return "OpSatConvertSToU";
    case SpvOpSatConvertUToS:
      return "OpSatConvertUToS";
    case SpvOpConvertUToPtr:
      return "OpConvertUToPtr";
    case SpvOpPtrCastToGeneric:
      return "OpPtrCastToGeneric";
    case SpvOpGenericCastToPtr:
      return "OpGenericCastToPtr";
    case SpvOpGenericCastToPtrExplicit:
      return "OpGenericCastToPtrExplicit";
    case SpvOpBitcast:
      return "OpBitcast";
    case SpvOpSNegate:
      return "OpSNegate";
    case SpvOpFNegate:
      return "OpFNegate";
    case SpvOpIAdd:
      return "OpIAdd";
    case SpvOpFAdd:
      return "OpFAdd";
    case SpvOpISub:
      return "OpISub";
    case SpvOpFSub:
      return "OpFSub";
    case SpvOpIMul:
      return "OpIMul";
    case SpvOpFMul:
      return "OpFMul";
    case SpvOpUDiv:
      return "OpUDiv";
    case SpvOpSDiv:
      return "OpSDiv";
    case SpvOpFDiv:
      return "OpFDiv";
    case SpvOpUMod:
      return "OpUMod";
    case SpvOpSRem:
      return "OpSRem";
    case SpvOpSMod:
      return "OpSMod";
    case SpvOpFRem:
      return "OpFRem";
    case SpvOpFMod:
      return "OpFMod";
    case SpvOpVectorTimesScalar:
      return "OpVectorTimesScalar";
    case SpvOpMatrixTimesScalar:
      return "OpMatrixTimesScalar";
    case SpvOpVectorTimesMatrix:
      return "OpVectorTimesMatrix";
    case SpvOpMatrixTimesVector:
      return "OpMatrixTimesVector";
    case SpvOpMatrixTimesMatrix:
      return "OpMatrixTimesMatrix";
    case SpvOpOuterProduct:
      return "OpOuterProduct";
    case SpvOpDot:
      return "OpDot";
    case SpvOpIAddCarry:
      return "OpIAddCarry";
    case SpvOpISubBorrow:
      return "OpISubBorrow";
    case SpvOpUMulExtended:
      return "OpUMulExtended";
    case SpvOpSMulExtended:
      return "OpSMulExtended";
    case SpvOpAny:
      return "OpAny";
    case SpvOpAll:
      return "OpAll";
    case SpvOpIsNan:
      return "OpIsNan";
    case SpvOpIsInf:
      return "OpIsInf";
    case SpvOpIsFinite:
      return "OpIsFinite";
    case SpvOpIsNormal:
      return "OpIsNormal";
    case SpvOpSignBitSet:
      return "OpSignBitSet";
    case SpvOpLessOrGreater:
      return "OpLessOrGreater";
    case SpvOpOrdered:
      return "OpOrdered";
    case SpvOpUnordered:
      return "OpUnordered";
    case SpvOpLogicalEqual:
      return "OpLogicalEqual";
    case SpvOpLogicalNotEqual:
      return "OpLogicalNotEqual";
    case SpvOpLogicalOr:
      return "OpLogicalOr";
    case SpvOpLogicalAnd:
      return "OpLogicalAnd";
    case SpvOpLogicalNot:
      return "OpLogicalNot";
    case SpvOpSelect:
      return "OpSelect";
    case SpvOpIEqual:
      return "OpIEqual";
    case SpvOpINotEqual:
      return "OpINotEqual";
    case SpvOpUGreaterThan:
      return "OpUGreaterThan";
    case SpvOpSGreaterThan:
      return "OpSGreaterThan";
    case SpvOpUGreaterThanEqual:
      return "OpUGreaterThanEqual";
    case SpvOpSGreaterThanEqual:
      return "OpSGreaterThanEqual";
    case SpvOpULessThan:
      return "OpULessThan";
    case SpvOpSLessThan:
      return "OpSLessThan";
    case SpvOpULessThanEqual:
      return "OpULessThanEqual";
    case SpvOpSLessThanEqual:
      return "OpSLessThanEqual";
    case SpvOpFOrdEqual:
      return "OpFOrdEqual";
    case SpvOpFUnordEqual:
      return "OpFUnordEqual";
    case SpvOpFOrdNotEqual:
      return "OpFOrdNotEqual";
    case SpvOpFUnordNotEqual:
      return "OpFUnordNotEqual";
    case SpvOpFOrdLessThan:
      return "OpFOrdLessThan";
    case SpvOpFUnordLessThan:
      return "OpFUnordLessThan";
    case SpvOpFOrdGreaterThan:
      return "OpFOrdGreaterThan";
    case SpvOpFUnordGreaterThan:
      return "OpFUnordGreaterThan";
    case SpvOpFOrdLessThanEqual:
      return "OpFOrdLessThanEqual";
    case SpvOpFUnordLessThanEqual:
      return "OpFUnordLessThanEqual";
    case SpvOpFOrdGreaterThanEqual:
      return "OpFOrdGreaterThanEqual";
    case SpvOpFUnordGreaterThanEqual:
      return "OpFUnordGreaterThanEqual";
    case SpvOpShiftRightLogical:
      return "OpShiftRightLogical";
    case SpvOpShiftRightArithmetic:
      return "OpShiftRightArithmetic";
    case SpvOpShiftLeftLogical:
      return "OpShiftLeftLogical";
    case SpvOpBitwiseOr:
      return "OpBitwiseOr";
    case SpvOpBitwiseXor:
      return "OpBitwiseXor";
    case SpvOpBitwiseAnd:
      return "OpBitwiseAnd";
    case SpvOpNot:
      return "OpNot";
    case SpvOpBitFieldInsert:
      return "OpBitFieldInsert";
    case SpvOpBitFieldSExtract:
      return "OpBitFieldSExtract";
    case SpvOpBitFieldUExtract:
      return "OpBitFieldUExtract";
    case SpvOpBitReverse:
      return "OpBitReverse";
    case SpvOpBitCount:
      return "OpBitCount";
    case SpvOpDPdx:
      return "OpDPdx";
    case SpvOpDPdy:
      return "OpDPdy";
    case SpvOpFwidth:
      return "OpFwidth";
    case SpvOpDPdxFine:
      return "OpDPdxFine";
    case SpvOpDPdyFine:
      return "OpDPdyFine";
    case SpvOpFwidthFine:
      return "OpFwidthFine";
    case SpvOpDPdxCoarse:
      return "OpDPdxCoarse";
    case SpvOpDPdyCoarse:
      return "OpDPdyCoarse";
    case SpvOpFwidthCoarse:
      return "OpFwidthCoarse";
    case SpvOpEmitVertex:
      return "OpEmitVertex";
    case SpvOpEndPrimitive:
      return "OpEndPrimitive";
    case SpvOpEmitStreamVertex:
      return "OpEmitStreamVertex";
    case SpvOpEndStreamPrimitive:
      return "OpEndStreamPrimitive";
    case SpvOpControlBarrier:
      return "OpControlBarrier";
    case SpvOpMemoryBarrier:
      return "OpMemoryBarrier";
    case SpvOpAtomicLoad:
      return "OpAtomicLoad";
    case SpvOpAtomicStore:
      return "OpAtomicStore";
    case SpvOpAtomicExchange:
      return "OpAtomicExchange";
    case SpvOpAtomicCompareExchange:
      return "OpAtomicCompareExchange";
    case SpvOpAtomicCompareExchangeWeak:
      return "OpAtomicCompareExchangeWeak";
    case SpvOpAtomicIIncrement:
      return "OpAtomicIIncrement";
    case SpvOpAtomicIDecrement:
      return "OpAtomicIDecrement";
    case SpvOpAtomicIAdd:
      return "OpAtomicIAdd";
    case SpvOpAtomicISub:
      return "OpAtomicISub";
    case SpvOpAtomicSMin:
      return "OpAtomicSMin";
    case SpvOpAtomicUMin:
      return "OpAtomicUMin";
    case SpvOpAtomicSMax:
      return "OpAtomicSMax";
    case SpvOpAtomicUMax:
      return "OpAtomicUMax";
    case SpvOpAtomicAnd:
      return "OpAtomicAnd";
    case SpvOpAtomicOr:
      return "OpAtomicOr";
    case SpvOpAtomicXor:
      return "OpAtomicXor";
    case SpvOpPhi:
      return "OpPhi";
    case SpvOpLoopMerge:
      return "OpLoopMerge";
    case SpvOpSelectionMerge:
      return "OpSelectionMerge";
    case SpvOpLabel:
      return "OpLabel";
    case SpvOpBranch:
      return "OpBranch";
    case SpvOpBranchConditional:
      return "OpBranchConditional";
    case SpvOpSwitch:
      return "OpSwitch";
    case SpvOpKill:
      return "OpKill";
    case SpvOpReturn:
      return "OpReturn";
    case SpvOpReturnValue:
      return "OpReturnValue";
    case SpvOpUnreachable:
      return "OpUnreachable";
    case SpvOpLifetimeStart:
      return "OpLifetimeStart";
    case SpvOpLifetimeStop:
      return "OpLifetimeStop";
    case SpvOpGroupAsyncCopy:
      return "OpGroupAsyncCopy";
    case SpvOpGroupWaitEvents:
      return "OpGroupWaitEvents";
    case SpvOpGroupAll:
      return "OpGroupAll";
    case SpvOpGroupAny:
      return "OpGroupAny";
    case SpvOpGroupBroadcast:
      return "OpGroupBroadcast";
    case SpvOpGroupIAdd:
      return "OpGroupIAdd";
    case SpvOpGroupFAdd:
      return "OpGroupFAdd";
    case SpvOpGroupFMin:
      return "OpGroupFMin";
    case SpvOpGroupUMin:
      return "OpGroupUMin";
    case SpvOpGroupSMin:
      return "OpGroupSMin";
    case SpvOpGroupFMax:
      return "OpGroupFMax";
    case SpvOpGroupUMax:
      return "OpGroupUMax";
    case SpvOpGroupSMax:
      return "OpGroupSMax";
    case SpvOpReadPipe:
      return "OpReadPipe";
    case SpvOpWritePipe:
      return "OpWritePipe";
    case SpvOpReservedReadPipe:
      return "OpReservedReadPipe";
    case SpvOpReservedWritePipe:
      return "OpReservedWritePipe";
    case SpvOpReserveReadPipePackets:
      return "OpReserveReadPipePackets";
    case SpvOpReserveWritePipePackets:
      return "OpReserveWritePipePackets";
    case SpvOpCommitReadPipe:
      return "OpCommitReadPipe";
    case SpvOpCommitWritePipe:
      return "OpCommitWritePipe";
    case SpvOpIsValidReserveId:
      return "OpIsValidReserveId";
    case SpvOpGetNumPipePackets:
      return "OpGetNumPipePackets";
    case SpvOpGetMaxPipePackets:
      return "OpGetMaxPipePackets";
    case SpvOpGroupReserveReadPipePackets:
      return "OpGroupReserveReadPipePackets";
    case SpvOpGroupReserveWritePipePackets:
      return "OpGroupReserveWritePipePackets";
    case SpvOpGroupCommitReadPipe:
      return "OpGroupCommitReadPipe";
    case SpvOpGroupCommitWritePipe:
      return "OpGroupCommitWritePipe";
    case SpvOpEnqueueMarker:
      return "OpEnqueueMarker";
    case SpvOpEnqueueKernel:
      return "OpEnqueueKernel";
    case SpvOpGetKernelNDrangeSubGroupCount:
      return "OpGetKernelNDrangeSubGroupCount";
    case SpvOpGetKernelNDrangeMaxSubGroupSize:
      return "OpGetKernelNDrangeMaxSubGroupSize";
    case SpvOpGetKernelWorkGroupSize:
      return "OpGetKernelWorkGroupSize";
    case SpvOpGetKernelPreferredWorkGroupSizeMultiple:
      return "OpGetKernelPreferredWorkGroupSizeMultiple";
    case SpvOpRetainEvent:
      return "OpRetainEvent";
    case SpvOpReleaseEvent:
      return "OpReleaseEvent";
    case SpvOpCreateUserEvent:
      return "OpCreateUserEvent";
    case SpvOpIsValidEvent:
      return "OpIsValidEvent";
    case SpvOpSetUserEventStatus:
      return "OpSetUserEventStatus";
    case SpvOpCaptureEventProfilingInfo:
      return "OpCaptureEventProfilingInfo";
    case SpvOpGetDefaultQueue:
      return "OpGetDefaultQueue";
    case SpvOpBuildNDRange:
      return "OpBuildNDRange";
    case SpvOpImageSparseSampleImplicitLod:
      return "OpImageSparseSampleImplicitLod";
    case SpvOpImageSparseSampleExplicitLod:
      return "OpImageSparseSampleExplicitLod";
    case SpvOpImageSparseSampleDrefImplicitLod:
      return "OpImageSparseSampleDrefImplicitLod";
    case SpvOpImageSparseSampleDrefExplicitLod:
      return "OpImageSparseSampleDrefExplicitLod";
    case SpvOpImageSparseSampleProjImplicitLod:
      return "OpImageSparseSampleProjImplicitLod";
    case SpvOpImageSparseSampleProjExplicitLod:
      return "OpImageSparseSampleProjExplicitLod";
    case SpvOpImageSparseSampleProjDrefImplicitLod:
      return "OpImageSparseSampleProjDrefImplicitLod";
    case SpvOpImageSparseSampleProjDrefExplicitLod:
      return "OpImageSparseSampleProjDrefExplicitLod";
    case SpvOpImageSparseFetch:
      return "OpImageSparseFetch";
    case SpvOpImageSparseGather:
      return "OpImageSparseGather";
    case SpvOpImageSparseDrefGather:
      return "OpImageSparseDrefGather";
    case SpvOpImageSparseTexelsResident:
      return "OpImageSparseTexelsResident";
    case SpvOpNoLine:
      return "OpNoLine";
    case SpvOpAtomicFlagTestAndSet:
      return "OpAtomicFlagTestAndSet";
    case SpvOpAtomicFlagClear:
      return "OpAtomicFlagClear";
    case SpvOpImageSparseRead:
      return "OpImageSparseRead";
    case SpvOpSizeOf:
      return "OpSizeOf";
    case SpvOpTypePipeStorage:
      return "OpTypePipeStorage";
    case SpvOpConstantPipeStorage:
      return "OpConstantPipeStorage";
    case SpvOpCreatePipeFromPipeStorage:
      return "OpCreatePipeFromPipeStorage";
    case SpvOpGetKernelLocalSizeForSubgroupCount:
      return "OpGetKernelLocalSizeForSubgroupCount";
    case SpvOpGetKernelMaxNumSubgroups:
      return "OpGetKernelMaxNumSubgroups";
    case SpvOpTypeNamedBarrier:
      return "OpTypeNamedBarrier";
    case SpvOpNamedBarrierInitialize:
      return "OpNamedBarrierInitialize";
    case SpvOpMemoryNamedBarrier:
      return "OpMemoryNamedBarrier";
    case SpvOpModuleProcessed:
      return "OpModuleProcessed";
    case SpvOpExecutionModeId:
      return "OpExecutionModeId";
    case SpvOpDecorateId:
      return "OpDecorateId";
    case SpvOpGroupNonUniformElect:
      return "OpGroupNonUniformElect";
    case SpvOpGroupNonUniformAll:
      return "OpGroupNonUniformAll";
    case SpvOpGroupNonUniformAny:
      return "OpGroupNonUniformAny";
    case SpvOpGroupNonUniformAllEqual:
      return "OpGroupNonUniformAllEqual";
    case SpvOpGroupNonUniformBroadcast:
      return "OpGroupNonUniformBroadcast";
    case SpvOpGroupNonUniformBroadcastFirst:
      return "OpGroupNonUniformBroadcastFirst";
    case SpvOpGroupNonUniformBallot:
      return "OpGroupNonUniformBallot";
    case SpvOpGroupNonUniformInverseBallot:
      return "OpGroupNonUniformInverseBallot";
    case SpvOpGroupNonUniformBallotBitExtract:
      return "OpGroupNonUniformBallotBitExtract";
    case SpvOpGroupNonUniformBallotBitCount:
      return "OpGroupNonUniformBallotBitCount";
    case SpvOpGroupNonUniformBallotFindLSB:
      return "OpGroupNonUniformBallotFindLSB";
    case SpvOpGroupNonUniformBallotFindMSB:
      return "OpGroupNonUniformBallotFindMSB";
    case SpvOpGroupNonUniformShuffle:
      return "OpGroupNonUniformShuffle";
    case SpvOpGroupNonUniformShuffleXor:
      return "OpGroupNonUniformShuffleXor";
    case SpvOpGroupNonUniformShuffleUp:
      return "OpGroupNonUniformShuffleUp";
    case SpvOpGroupNonUniformShuffleDown:
      return "OpGroupNonUniformShuffleDown";
    case SpvOpGroupNonUniformIAdd:
      return "OpGroupNonUniformIAdd";
    case SpvOpGroupNonUniformFAdd:
      return "OpGroupNonUniformFAdd";
    case SpvOpGroupNonUniformIMul:
      return "OpGroupNonUniformIMul";
    case SpvOpGroupNonUniformFMul:
      return "OpGroupNonUniformFMul";
    case SpvOpGroupNonUniformSMin:
      return "OpGroupNonUniformSMin";
    case SpvOpGroupNonUniformUMin:
      return "OpGroupNonUniformUMin";
    case SpvOpGroupNonUniformFMin:
      return "OpGroupNonUniformFMin";
    case SpvOpGroupNonUniformSMax:
      return "OpGroupNonUniformSMax";
    case SpvOpGroupNonUniformUMax:
      return "OpGroupNonUniformUMax";
    case SpvOpGroupNonUniformFMax:
      return "OpGroupNonUniformFMax";
    case SpvOpGroupNonUniformBitwiseAnd:
      return "OpGroupNonUniformBitwiseAnd";
    case SpvOpGroupNonUniformBitwiseOr:
      return "OpGroupNonUniformBitwiseOr";
    case SpvOpGroupNonUniformBitwiseXor:
      return "OpGroupNonUniformBitwiseXor";
    case SpvOpGroupNonUniformLogicalAnd:
      return "OpGroupNonUniformLogicalAnd";
    case SpvOpGroupNonUniformLogicalOr:
      return "OpGroupNonUniformLogicalOr";
    case SpvOpGroupNonUniformLogicalXor:
      return "OpGroupNonUniformLogicalXor";
    case SpvOpGroupNonUniformQuadBroadcast:
      return "OpGroupNonUniformQuadBroadcast";
    case SpvOpGroupNonUniformQuadSwap:
      return "OpGroupNonUniformQuadSwap";
    case SpvOpCopyLogical:
      return "OpCopyLogical";
    case SpvOpPtrEqual:
      return "OpPtrEqual";
    case SpvOpPtrNotEqual:
      return "OpPtrNotEqual";
    case SpvOpPtrDiff:
      return "OpPtrDiff";
    case SpvOpColorAttachmentReadEXT:
      return "OpColorAttachmentReadEXT";
    case SpvOpDepthAttachmentReadEXT:
      return "OpDepthAttachmentReadEXT";
    case SpvOpStencilAttachmentReadEXT:
      return "OpStencilAttachmentReadEXT";
    case SpvOpTypeTensorARM:
      return "OpTypeTensorARM";
    case SpvOpTensorReadARM:
      return "OpTensorReadARM";
    case SpvOpTensorWriteARM:
      return "OpTensorWriteARM";
    case SpvOpTensorQuerySizeARM:
      return "OpTensorQuerySizeARM";
    case SpvOpGraphConstantARM:
      return "OpGraphConstantARM";
    case SpvOpGraphEntryPointARM:
      return "OpGraphEntryPointARM";
    case SpvOpGraphARM:
      return "OpGraphARM";
    case SpvOpGraphInputARM:
      return "OpGraphInputARM";
    case SpvOpGraphSetOutputARM:
      return "OpGraphSetOutputARM";
    case SpvOpGraphEndARM:
      return "OpGraphEndARM";
    case SpvOpTypeGraphARM:
      return "OpTypeGraphARM";
    case SpvOpTerminateInvocation:
      return "OpTerminateInvocation";
    case SpvOpTypeUntypedPointerKHR:
      return "OpTypeUntypedPointerKHR";
    case SpvOpUntypedVariableKHR:
      return "OpUntypedVariableKHR";
    case SpvOpUntypedAccessChainKHR:
      return "OpUntypedAccessChainKHR";
    case SpvOpUntypedInBoundsAccessChainKHR:
      return "OpUntypedInBoundsAccessChainKHR";
    case SpvOpSubgroupBallotKHR:
      return "OpSubgroupBallotKHR";
    case SpvOpSubgroupFirstInvocationKHR:
      return "OpSubgroupFirstInvocationKHR";
    case SpvOpUntypedPtrAccessChainKHR:
      return "OpUntypedPtrAccessChainKHR";
    case SpvOpUntypedInBoundsPtrAccessChainKHR:
      return "OpUntypedInBoundsPtrAccessChainKHR";
    case SpvOpUntypedArrayLengthKHR:
      return "OpUntypedArrayLengthKHR";
    case SpvOpUntypedPrefetchKHR:
      return "OpUntypedPrefetchKHR";
    case SpvOpSubgroupAllKHR:
      return "OpSubgroupAllKHR";
    case SpvOpSubgroupAnyKHR:
      return "OpSubgroupAnyKHR";
    case SpvOpSubgroupAllEqualKHR:
      return "OpSubgroupAllEqualKHR";
    case SpvOpGroupNonUniformRotateKHR:
      return "OpGroupNonUniformRotateKHR";
    case SpvOpSubgroupReadInvocationKHR:
      return "OpSubgroupReadInvocationKHR";
    case SpvOpExtInstWithForwardRefsKHR:
      return "OpExtInstWithForwardRefsKHR";
    case SpvOpUntypedGroupAsyncCopyKHR:
      return "OpUntypedGroupAsyncCopyKHR";
    case SpvOpTraceRayKHR:
      return "OpTraceRayKHR";
    case SpvOpExecuteCallableKHR:
      return "OpExecuteCallableKHR";
    case SpvOpConvertUToAccelerationStructureKHR:
      return "OpConvertUToAccelerationStructureKHR";
    case SpvOpIgnoreIntersectionKHR:
      return "OpIgnoreIntersectionKHR";
    case SpvOpTerminateRayKHR:
      return "OpTerminateRayKHR";
    case SpvOpSDot:
      return "OpSDot";
    case SpvOpUDot:
      return "OpUDot";
    case SpvOpSUDot:
      return "OpSUDot";
    case SpvOpSDotAccSat:
      return "OpSDotAccSat";
    case SpvOpUDotAccSat:
      return "OpUDotAccSat";
    case SpvOpSUDotAccSat:
      return "OpSUDotAccSat";
    case SpvOpTypeCooperativeMatrixKHR:
      return "OpTypeCooperativeMatrixKHR";
    case SpvOpCooperativeMatrixLoadKHR:
      return "OpCooperativeMatrixLoadKHR";
    case SpvOpCooperativeMatrixStoreKHR:
      return "OpCooperativeMatrixStoreKHR";
    case SpvOpCooperativeMatrixMulAddKHR:
      return "OpCooperativeMatrixMulAddKHR";
    case SpvOpCooperativeMatrixLengthKHR:
      return "OpCooperativeMatrixLengthKHR";
    case SpvOpConstantCompositeReplicateEXT:
      return "OpConstantCompositeReplicateEXT";
    case SpvOpSpecConstantCompositeReplicateEXT:
      return "OpSpecConstantCompositeReplicateEXT";
    case SpvOpCompositeConstructReplicateEXT:
      return "OpCompositeConstructReplicateEXT";
    case SpvOpTypeRayQueryKHR:
      return "OpTypeRayQueryKHR";
    case SpvOpRayQueryInitializeKHR:
      return "OpRayQueryInitializeKHR";
    case SpvOpRayQueryTerminateKHR:
      return "OpRayQueryTerminateKHR";
    case SpvOpRayQueryGenerateIntersectionKHR:
      return "OpRayQueryGenerateIntersectionKHR";
    case SpvOpRayQueryConfirmIntersectionKHR:
      return "OpRayQueryConfirmIntersectionKHR";
    case SpvOpRayQueryProceedKHR:
      return "OpRayQueryProceedKHR";
    case SpvOpRayQueryGetIntersectionTypeKHR:
      return "OpRayQueryGetIntersectionTypeKHR";
    case SpvOpImageSampleWeightedQCOM:
      return "OpImageSampleWeightedQCOM";
    case SpvOpImageBoxFilterQCOM:
      return "OpImageBoxFilterQCOM";
    case SpvOpImageBlockMatchSSDQCOM:
      return "OpImageBlockMatchSSDQCOM";
    case SpvOpImageBlockMatchSADQCOM:
      return "OpImageBlockMatchSADQCOM";
    case SpvOpBitCastArrayQCOM:
      return "OpBitCastArrayQCOM";
    case SpvOpImageBlockMatchWindowSSDQCOM:
      return "OpImageBlockMatchWindowSSDQCOM";
    case SpvOpImageBlockMatchWindowSADQCOM:
      return "OpImageBlockMatchWindowSADQCOM";
    case SpvOpImageBlockMatchGatherSSDQCOM:
      return "OpImageBlockMatchGatherSSDQCOM";
    case SpvOpImageBlockMatchGatherSADQCOM:
      return "OpImageBlockMatchGatherSADQCOM";
    case SpvOpCompositeConstructCoopMatQCOM:
      return "OpCompositeConstructCoopMatQCOM";
    case SpvOpCompositeExtractCoopMatQCOM:
      return "OpCompositeExtractCoopMatQCOM";
    case SpvOpExtractSubArrayQCOM:
      return "OpExtractSubArrayQCOM";
    case SpvOpGroupIAddNonUniformAMD:
      return "OpGroupIAddNonUniformAMD";
    case SpvOpGroupFAddNonUniformAMD:
      return "OpGroupFAddNonUniformAMD";
    case SpvOpGroupFMinNonUniformAMD:
      return "OpGroupFMinNonUniformAMD";
    case SpvOpGroupUMinNonUniformAMD:
      return "OpGroupUMinNonUniformAMD";
    case SpvOpGroupSMinNonUniformAMD:
      return "OpGroupSMinNonUniformAMD";
    case SpvOpGroupFMaxNonUniformAMD:
      return "OpGroupFMaxNonUniformAMD";
    case SpvOpGroupUMaxNonUniformAMD:
      return "OpGroupUMaxNonUniformAMD";
    case SpvOpGroupSMaxNonUniformAMD:
      return "OpGroupSMaxNonUniformAMD";
    case SpvOpFragmentMaskFetchAMD:
      return "OpFragmentMaskFetchAMD";
    case SpvOpFragmentFetchAMD:
      return "OpFragmentFetchAMD";
    case SpvOpReadClockKHR:
      return "OpReadClockKHR";
    case SpvOpAllocateNodePayloadsAMDX:
      return "OpAllocateNodePayloadsAMDX";
    case SpvOpEnqueueNodePayloadsAMDX:
      return "OpEnqueueNodePayloadsAMDX";
    case SpvOpTypeNodePayloadArrayAMDX:
      return "OpTypeNodePayloadArrayAMDX";
    case SpvOpFinishWritingNodePayloadAMDX:
      return "OpFinishWritingNodePayloadAMDX";
    case SpvOpNodePayloadArrayLengthAMDX:
      return "OpNodePayloadArrayLengthAMDX";
    case SpvOpIsNodePayloadValidAMDX:
      return "OpIsNodePayloadValidAMDX";
    case SpvOpConstantStringAMDX:
      return "OpConstantStringAMDX";
    case SpvOpSpecConstantStringAMDX:
      return "OpSpecConstantStringAMDX";
    case SpvOpGroupNonUniformQuadAllKHR:
      return "OpGroupNonUniformQuadAllKHR";
    case SpvOpGroupNonUniformQuadAnyKHR:
      return "OpGroupNonUniformQuadAnyKHR";
    case SpvOpHitObjectRecordHitMotionNV:
      return "OpHitObjectRecordHitMotionNV";
    case SpvOpHitObjectRecordHitWithIndexMotionNV:
      return "OpHitObjectRecordHitWithIndexMotionNV";
    case SpvOpHitObjectRecordMissMotionNV:
      return "OpHitObjectRecordMissMotionNV";
    case SpvOpHitObjectGetWorldToObjectNV:
      return "OpHitObjectGetWorldToObjectNV";
    case SpvOpHitObjectGetObjectToWorldNV:
      return "OpHitObjectGetObjectToWorldNV";
    case SpvOpHitObjectGetObjectRayDirectionNV:
      return "OpHitObjectGetObjectRayDirectionNV";
    case SpvOpHitObjectGetObjectRayOriginNV:
      return "OpHitObjectGetObjectRayOriginNV";
    case SpvOpHitObjectTraceRayMotionNV:
      return "OpHitObjectTraceRayMotionNV";
    case SpvOpHitObjectGetShaderRecordBufferHandleNV:
      return "OpHitObjectGetShaderRecordBufferHandleNV";
    case SpvOpHitObjectGetShaderBindingTableRecordIndexNV:
      return "OpHitObjectGetShaderBindingTableRecordIndexNV";
    case SpvOpHitObjectRecordEmptyNV:
      return "OpHitObjectRecordEmptyNV";
    case SpvOpHitObjectTraceRayNV:
      return "OpHitObjectTraceRayNV";
    case SpvOpHitObjectRecordHitNV:
      return "OpHitObjectRecordHitNV";
    case SpvOpHitObjectRecordHitWithIndexNV:
      return "OpHitObjectRecordHitWithIndexNV";
    case SpvOpHitObjectRecordMissNV:
      return "OpHitObjectRecordMissNV";
    case SpvOpHitObjectExecuteShaderNV:
      return "OpHitObjectExecuteShaderNV";
    case SpvOpHitObjectGetCurrentTimeNV:
      return "OpHitObjectGetCurrentTimeNV";
    case SpvOpHitObjectGetAttributesNV:
      return "OpHitObjectGetAttributesNV";
    case SpvOpHitObjectGetHitKindNV:
      return "OpHitObjectGetHitKindNV";
    case SpvOpHitObjectGetPrimitiveIndexNV:
      return "OpHitObjectGetPrimitiveIndexNV";
    case SpvOpHitObjectGetGeometryIndexNV:
      return "OpHitObjectGetGeometryIndexNV";
    case SpvOpHitObjectGetInstanceIdNV:
      return "OpHitObjectGetInstanceIdNV";
    case SpvOpHitObjectGetInstanceCustomIndexNV:
      return "OpHitObjectGetInstanceCustomIndexNV";
    case SpvOpHitObjectGetWorldRayDirectionNV:
      return "OpHitObjectGetWorldRayDirectionNV";
    case SpvOpHitObjectGetWorldRayOriginNV:
      return "OpHitObjectGetWorldRayOriginNV";
    case SpvOpHitObjectGetRayTMaxNV:
      return "OpHitObjectGetRayTMaxNV";
    case SpvOpHitObjectGetRayTMinNV:
      return "OpHitObjectGetRayTMinNV";
    case SpvOpHitObjectIsEmptyNV:
      return "OpHitObjectIsEmptyNV";
    case SpvOpHitObjectIsHitNV:
      return "OpHitObjectIsHitNV";
    case SpvOpHitObjectIsMissNV:
      return "OpHitObjectIsMissNV";
    case SpvOpReorderThreadWithHitObjectNV:
      return "OpReorderThreadWithHitObjectNV";
    case SpvOpReorderThreadWithHintNV:
      return "OpReorderThreadWithHintNV";
    case SpvOpTypeHitObjectNV:
      return "OpTypeHitObjectNV";
    case SpvOpImageSampleFootprintNV:
      return "OpImageSampleFootprintNV";
    case SpvOpTypeCooperativeVectorNV:
      return "OpTypeCooperativeVectorNV";
    case SpvOpCooperativeVectorMatrixMulNV:
      return "OpCooperativeVectorMatrixMulNV";
    case SpvOpCooperativeVectorOuterProductAccumulateNV:
      return "OpCooperativeVectorOuterProductAccumulateNV";
    case SpvOpCooperativeVectorReduceSumAccumulateNV:
      return "OpCooperativeVectorReduceSumAccumulateNV";
    case SpvOpCooperativeVectorMatrixMulAddNV:
      return "OpCooperativeVectorMatrixMulAddNV";
    case SpvOpCooperativeMatrixConvertNV:
      return "OpCooperativeMatrixConvertNV";
    case SpvOpEmitMeshTasksEXT:
      return "OpEmitMeshTasksEXT";
    case SpvOpSetMeshOutputsEXT:
      return "OpSetMeshOutputsEXT";
    case SpvOpGroupNonUniformPartitionNV:
      return "OpGroupNonUniformPartitionNV";
    case SpvOpWritePackedPrimitiveIndices4x8NV:
      return "OpWritePackedPrimitiveIndices4x8NV";
    case SpvOpFetchMicroTriangleVertexPositionNV:
      return "OpFetchMicroTriangleVertexPositionNV";
    case SpvOpFetchMicroTriangleVertexBarycentricNV:
      return "OpFetchMicroTriangleVertexBarycentricNV";
    case SpvOpCooperativeVectorLoadNV:
      return "OpCooperativeVectorLoadNV";
    case SpvOpCooperativeVectorStoreNV:
      return "OpCooperativeVectorStoreNV";
    case SpvOpReportIntersectionKHR:
      return "OpReportIntersectionKHR";
    case SpvOpIgnoreIntersectionNV:
      return "OpIgnoreIntersectionNV";
    case SpvOpTerminateRayNV:
      return "OpTerminateRayNV";
    case SpvOpTraceNV:
      return "OpTraceNV";
    case SpvOpTraceMotionNV:
      return "OpTraceMotionNV";
    case SpvOpTraceRayMotionNV:
      return "OpTraceRayMotionNV";
    case SpvOpRayQueryGetIntersectionTriangleVertexPositionsKHR:
      return "OpRayQueryGetIntersectionTriangleVertexPositionsKHR";
    case SpvOpTypeAccelerationStructureKHR:
      return "OpTypeAccelerationStructureKHR";
    case SpvOpExecuteCallableNV:
      return "OpExecuteCallableNV";
    case SpvOpRayQueryGetClusterIdNV:
      return "OpRayQueryGetClusterIdNV";
    case SpvOpHitObjectGetClusterIdNV:
      return "OpHitObjectGetClusterIdNV";
    case SpvOpTypeCooperativeMatrixNV:
      return "OpTypeCooperativeMatrixNV";
    case SpvOpCooperativeMatrixLoadNV:
      return "OpCooperativeMatrixLoadNV";
    case SpvOpCooperativeMatrixStoreNV:
      return "OpCooperativeMatrixStoreNV";
    case SpvOpCooperativeMatrixMulAddNV:
      return "OpCooperativeMatrixMulAddNV";
    case SpvOpCooperativeMatrixLengthNV:
      return "OpCooperativeMatrixLengthNV";
    case SpvOpBeginInvocationInterlockEXT:
      return "OpBeginInvocationInterlockEXT";
    case SpvOpEndInvocationInterlockEXT:
      return "OpEndInvocationInterlockEXT";
    case SpvOpCooperativeMatrixReduceNV:
      return "OpCooperativeMatrixReduceNV";
    case SpvOpCooperativeMatrixLoadTensorNV:
      return "OpCooperativeMatrixLoadTensorNV";
    case SpvOpCooperativeMatrixStoreTensorNV:
      return "OpCooperativeMatrixStoreTensorNV";
    case SpvOpCooperativeMatrixPerElementOpNV:
      return "OpCooperativeMatrixPerElementOpNV";
    case SpvOpTypeTensorLayoutNV:
      return "OpTypeTensorLayoutNV";
    case SpvOpTypeTensorViewNV:
      return "OpTypeTensorViewNV";
    case SpvOpCreateTensorLayoutNV:
      return "OpCreateTensorLayoutNV";
    case SpvOpTensorLayoutSetDimensionNV:
      return "OpTensorLayoutSetDimensionNV";
    case SpvOpTensorLayoutSetStrideNV:
      return "OpTensorLayoutSetStrideNV";
    case SpvOpTensorLayoutSliceNV:
      return "OpTensorLayoutSliceNV";
    case SpvOpTensorLayoutSetClampValueNV:
      return "OpTensorLayoutSetClampValueNV";
    case SpvOpCreateTensorViewNV:
      return "OpCreateTensorViewNV";
    case SpvOpTensorViewSetDimensionNV:
      return "OpTensorViewSetDimensionNV";
    case SpvOpTensorViewSetStrideNV:
      return "OpTensorViewSetStrideNV";
    case SpvOpDemoteToHelperInvocation:
      return "OpDemoteToHelperInvocation";
    case SpvOpIsHelperInvocationEXT:
      return "OpIsHelperInvocationEXT";
    case SpvOpTensorViewSetClipNV:
      return "OpTensorViewSetClipNV";
    case SpvOpTensorLayoutSetBlockSizeNV:
      return "OpTensorLayoutSetBlockSizeNV";
    case SpvOpCooperativeMatrixTransposeNV:
      return "OpCooperativeMatrixTransposeNV";
    case SpvOpConvertUToImageNV:
      return "OpConvertUToImageNV";
    case SpvOpConvertUToSamplerNV:
      return "OpConvertUToSamplerNV";
    case SpvOpConvertImageToUNV:
      return "OpConvertImageToUNV";
    case SpvOpConvertSamplerToUNV:
      return "OpConvertSamplerToUNV";
    case SpvOpConvertUToSampledImageNV:
      return "OpConvertUToSampledImageNV";
    case SpvOpConvertSampledImageToUNV:
      return "OpConvertSampledImageToUNV";
    case SpvOpSamplerImageAddressingModeNV:
      return "OpSamplerImageAddressingModeNV";
    case SpvOpRawAccessChainNV:
      return "OpRawAccessChainNV";
    case SpvOpRayQueryGetIntersectionSpherePositionNV:
      return "OpRayQueryGetIntersectionSpherePositionNV";
    case SpvOpRayQueryGetIntersectionSphereRadiusNV:
      return "OpRayQueryGetIntersectionSphereRadiusNV";
    case SpvOpRayQueryGetIntersectionLSSPositionsNV:
      return "OpRayQueryGetIntersectionLSSPositionsNV";
    case SpvOpRayQueryGetIntersectionLSSRadiiNV:
      return "OpRayQueryGetIntersectionLSSRadiiNV";
    case SpvOpRayQueryGetIntersectionLSSHitValueNV:
      return "OpRayQueryGetIntersectionLSSHitValueNV";
    case SpvOpHitObjectGetSpherePositionNV:
      return "OpHitObjectGetSpherePositionNV";
    case SpvOpHitObjectGetSphereRadiusNV:
      return "OpHitObjectGetSphereRadiusNV";
    case SpvOpHitObjectGetLSSPositionsNV:
      return "OpHitObjectGetLSSPositionsNV";
    case SpvOpHitObjectGetLSSRadiiNV:
      return "OpHitObjectGetLSSRadiiNV";
    case SpvOpHitObjectIsSphereHitNV:
      return "OpHitObjectIsSphereHitNV";
    case SpvOpHitObjectIsLSSHitNV:
      return "OpHitObjectIsLSSHitNV";
    case SpvOpRayQueryIsSphereHitNV:
      return "OpRayQueryIsSphereHitNV";
    case SpvOpRayQueryIsLSSHitNV:
      return "OpRayQueryIsLSSHitNV";
    case SpvOpSubgroupShuffleINTEL:
      return "OpSubgroupShuffleINTEL";
    case SpvOpSubgroupShuffleDownINTEL:
      return "OpSubgroupShuffleDownINTEL";
    case SpvOpSubgroupShuffleUpINTEL:
      return "OpSubgroupShuffleUpINTEL";
    case SpvOpSubgroupShuffleXorINTEL:
      return "OpSubgroupShuffleXorINTEL";
    case SpvOpSubgroupBlockReadINTEL:
      return "OpSubgroupBlockReadINTEL";
    case SpvOpSubgroupBlockWriteINTEL:
      return "OpSubgroupBlockWriteINTEL";
    case SpvOpSubgroupImageBlockReadINTEL:
      return "OpSubgroupImageBlockReadINTEL";
    case SpvOpSubgroupImageBlockWriteINTEL:
      return "OpSubgroupImageBlockWriteINTEL";
    case SpvOpSubgroupImageMediaBlockReadINTEL:
      return "OpSubgroupImageMediaBlockReadINTEL";
    case SpvOpSubgroupImageMediaBlockWriteINTEL:
      return "OpSubgroupImageMediaBlockWriteINTEL";
    case SpvOpUCountLeadingZerosINTEL:
      return "OpUCountLeadingZerosINTEL";
    case SpvOpUCountTrailingZerosINTEL:
      return "OpUCountTrailingZerosINTEL";
    case SpvOpAbsISubINTEL:
      return "OpAbsISubINTEL";
    case SpvOpAbsUSubINTEL:
      return "OpAbsUSubINTEL";
    case SpvOpIAddSatINTEL:
      return "OpIAddSatINTEL";
    case SpvOpUAddSatINTEL:
      return "OpUAddSatINTEL";
    case SpvOpIAverageINTEL:
      return "OpIAverageINTEL";
    case SpvOpUAverageINTEL:
      return "OpUAverageINTEL";
    case SpvOpIAverageRoundedINTEL:
      return "OpIAverageRoundedINTEL";
    case SpvOpUAverageRoundedINTEL:
      return "OpUAverageRoundedINTEL";
    case SpvOpISubSatINTEL:
      return "OpISubSatINTEL";
    case SpvOpUSubSatINTEL:
      return "OpUSubSatINTEL";
    case SpvOpIMul32x16INTEL:
      return "OpIMul32x16INTEL";
    case SpvOpUMul32x16INTEL:
      return "OpUMul32x16INTEL";
    case SpvOpConstantFunctionPointerINTEL:
      return "OpConstantFunctionPointerINTEL";
    case SpvOpFunctionPointerCallINTEL:
      return "OpFunctionPointerCallINTEL";
    case SpvOpAsmTargetINTEL:
      return "OpAsmTargetINTEL";
    case SpvOpAsmINTEL:
      return "OpAsmINTEL";
    case SpvOpAsmCallINTEL:
      return "OpAsmCallINTEL";
    case SpvOpAtomicFMinEXT:
      return "OpAtomicFMinEXT";
    case SpvOpAtomicFMaxEXT:
      return "OpAtomicFMaxEXT";
    case SpvOpAssumeTrueKHR:
      return "OpAssumeTrueKHR";
    case SpvOpExpectKHR:
      return "OpExpectKHR";
    case SpvOpDecorateString:
      return "OpDecorateString";
    case SpvOpMemberDecorateString:
      return "OpMemberDecorateString";
    case SpvOpVmeImageINTEL:
      return "OpVmeImageINTEL";
    case SpvOpTypeVmeImageINTEL:
      return "OpTypeVmeImageINTEL";
    case SpvOpTypeAvcImePayloadINTEL:
      return "OpTypeAvcImePayloadINTEL";
    case SpvOpTypeAvcRefPayloadINTEL:
      return "OpTypeAvcRefPayloadINTEL";
    case SpvOpTypeAvcSicPayloadINTEL:
      return "OpTypeAvcSicPayloadINTEL";
    case SpvOpTypeAvcMcePayloadINTEL:
      return "OpTypeAvcMcePayloadINTEL";
    case SpvOpTypeAvcMceResultINTEL:
      return "OpTypeAvcMceResultINTEL";
    case SpvOpTypeAvcImeResultINTEL:
      return "OpTypeAvcImeResultINTEL";
    case SpvOpTypeAvcImeResultSingleReferenceStreamoutINTEL:
      return "OpTypeAvcImeResultSingleReferenceStreamoutINTEL";
    case SpvOpTypeAvcImeResultDualReferenceStreamoutINTEL:
      return "OpTypeAvcImeResultDualReferenceStreamoutINTEL";
    case SpvOpTypeAvcImeSingleReferenceStreaminINTEL:
      return "OpTypeAvcImeSingleReferenceStreaminINTEL";
    case SpvOpTypeAvcImeDualReferenceStreaminINTEL:
      return "OpTypeAvcImeDualReferenceStreaminINTEL";
    case SpvOpTypeAvcRefResultINTEL:
      return "OpTypeAvcRefResultINTEL";
    case SpvOpTypeAvcSicResultINTEL:
      return "OpTypeAvcSicResultINTEL";
    case SpvOpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL:
      return "OpSubgroupAvcMceGetDefaultInterBaseMultiReferencePenaltyINTEL";
    case SpvOpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL:
      return "OpSubgroupAvcMceSetInterBaseMultiReferencePenaltyINTEL";
    case SpvOpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL:
      return "OpSubgroupAvcMceGetDefaultInterShapePenaltyINTEL";
    case SpvOpSubgroupAvcMceSetInterShapePenaltyINTEL:
      return "OpSubgroupAvcMceSetInterShapePenaltyINTEL";
    case SpvOpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL:
      return "OpSubgroupAvcMceGetDefaultInterDirectionPenaltyINTEL";
    case SpvOpSubgroupAvcMceSetInterDirectionPenaltyINTEL:
      return "OpSubgroupAvcMceSetInterDirectionPenaltyINTEL";
    case SpvOpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL:
      return "OpSubgroupAvcMceGetDefaultIntraLumaShapePenaltyINTEL";
    case SpvOpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL:
      return "OpSubgroupAvcMceGetDefaultInterMotionVectorCostTableINTEL";
    case SpvOpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL:
      return "OpSubgroupAvcMceGetDefaultHighPenaltyCostTableINTEL";
    case SpvOpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL:
      return "OpSubgroupAvcMceGetDefaultMediumPenaltyCostTableINTEL";
    case SpvOpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL:
      return "OpSubgroupAvcMceGetDefaultLowPenaltyCostTableINTEL";
    case SpvOpSubgroupAvcMceSetMotionVectorCostFunctionINTEL:
      return "OpSubgroupAvcMceSetMotionVectorCostFunctionINTEL";
    case SpvOpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL:
      return "OpSubgroupAvcMceGetDefaultIntraLumaModePenaltyINTEL";
    case SpvOpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL:
      return "OpSubgroupAvcMceGetDefaultNonDcLumaIntraPenaltyINTEL";
    case SpvOpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL:
      return "OpSubgroupAvcMceGetDefaultIntraChromaModeBasePenaltyINTEL";
    case SpvOpSubgroupAvcMceSetAcOnlyHaarINTEL:
      return "OpSubgroupAvcMceSetAcOnlyHaarINTEL";
    case SpvOpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL:
      return "OpSubgroupAvcMceSetSourceInterlacedFieldPolarityINTEL";
    case SpvOpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL:
      return "OpSubgroupAvcMceSetSingleReferenceInterlacedFieldPolarityINTEL";
    case SpvOpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL:
      return "OpSubgroupAvcMceSetDualReferenceInterlacedFieldPolaritiesINTEL";
    case SpvOpSubgroupAvcMceConvertToImePayloadINTEL:
      return "OpSubgroupAvcMceConvertToImePayloadINTEL";
    case SpvOpSubgroupAvcMceConvertToImeResultINTEL:
      return "OpSubgroupAvcMceConvertToImeResultINTEL";
    case SpvOpSubgroupAvcMceConvertToRefPayloadINTEL:
      return "OpSubgroupAvcMceConvertToRefPayloadINTEL";
    case SpvOpSubgroupAvcMceConvertToRefResultINTEL:
      return "OpSubgroupAvcMceConvertToRefResultINTEL";
    case SpvOpSubgroupAvcMceConvertToSicPayloadINTEL:
      return "OpSubgroupAvcMceConvertToSicPayloadINTEL";
    case SpvOpSubgroupAvcMceConvertToSicResultINTEL:
      return "OpSubgroupAvcMceConvertToSicResultINTEL";
    case SpvOpSubgroupAvcMceGetMotionVectorsINTEL:
      return "OpSubgroupAvcMceGetMotionVectorsINTEL";
    case SpvOpSubgroupAvcMceGetInterDistortionsINTEL:
      return "OpSubgroupAvcMceGetInterDistortionsINTEL";
    case SpvOpSubgroupAvcMceGetBestInterDistortionsINTEL:
      return "OpSubgroupAvcMceGetBestInterDistortionsINTEL";
    case SpvOpSubgroupAvcMceGetInterMajorShapeINTEL:
      return "OpSubgroupAvcMceGetInterMajorShapeINTEL";
    case SpvOpSubgroupAvcMceGetInterMinorShapeINTEL:
      return "OpSubgroupAvcMceGetInterMinorShapeINTEL";
    case SpvOpSubgroupAvcMceGetInterDirectionsINTEL:
      return "OpSubgroupAvcMceGetInterDirectionsINTEL";
    case SpvOpSubgroupAvcMceGetInterMotionVectorCountINTEL:
      return "OpSubgroupAvcMceGetInterMotionVectorCountINTEL";
    case SpvOpSubgroupAvcMceGetInterReferenceIdsINTEL:
      return "OpSubgroupAvcMceGetInterReferenceIdsINTEL";
    case SpvOpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL:
      return "OpSubgroupAvcMceGetInterReferenceInterlacedFieldPolaritiesINTEL";
    case SpvOpSubgroupAvcImeInitializeINTEL:
      return "OpSubgroupAvcImeInitializeINTEL";
    case SpvOpSubgroupAvcImeSetSingleReferenceINTEL:
      return "OpSubgroupAvcImeSetSingleReferenceINTEL";
    case SpvOpSubgroupAvcImeSetDualReferenceINTEL:
      return "OpSubgroupAvcImeSetDualReferenceINTEL";
    case SpvOpSubgroupAvcImeRefWindowSizeINTEL:
      return "OpSubgroupAvcImeRefWindowSizeINTEL";
    case SpvOpSubgroupAvcImeAdjustRefOffsetINTEL:
      return "OpSubgroupAvcImeAdjustRefOffsetINTEL";
    case SpvOpSubgroupAvcImeConvertToMcePayloadINTEL:
      return "OpSubgroupAvcImeConvertToMcePayloadINTEL";
    case SpvOpSubgroupAvcImeSetMaxMotionVectorCountINTEL:
      return "OpSubgroupAvcImeSetMaxMotionVectorCountINTEL";
    case SpvOpSubgroupAvcImeSetUnidirectionalMixDisableINTEL:
      return "OpSubgroupAvcImeSetUnidirectionalMixDisableINTEL";
    case SpvOpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL:
      return "OpSubgroupAvcImeSetEarlySearchTerminationThresholdINTEL";
    case SpvOpSubgroupAvcImeSetWeightedSadINTEL:
      return "OpSubgroupAvcImeSetWeightedSadINTEL";
    case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceINTEL:
      return "OpSubgroupAvcImeEvaluateWithSingleReferenceINTEL";
    case SpvOpSubgroupAvcImeEvaluateWithDualReferenceINTEL:
      return "OpSubgroupAvcImeEvaluateWithDualReferenceINTEL";
    case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL:
      return "OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminINTEL";
    case SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL:
      return "OpSubgroupAvcImeEvaluateWithDualReferenceStreaminINTEL";
    case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL:
      return "OpSubgroupAvcImeEvaluateWithSingleReferenceStreamoutINTEL";
    case SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL:
      return "OpSubgroupAvcImeEvaluateWithDualReferenceStreamoutINTEL";
    case SpvOpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL:
      return "OpSubgroupAvcImeEvaluateWithSingleReferenceStreaminoutINTEL";
    case SpvOpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL:
      return "OpSubgroupAvcImeEvaluateWithDualReferenceStreaminoutINTEL";
    case SpvOpSubgroupAvcImeConvertToMceResultINTEL:
      return "OpSubgroupAvcImeConvertToMceResultINTEL";
    case SpvOpSubgroupAvcImeGetSingleReferenceStreaminINTEL:
      return "OpSubgroupAvcImeGetSingleReferenceStreaminINTEL";
    case SpvOpSubgroupAvcImeGetDualReferenceStreaminINTEL:
      return "OpSubgroupAvcImeGetDualReferenceStreaminINTEL";
    case SpvOpSubgroupAvcImeStripSingleReferenceStreamoutINTEL:
      return "OpSubgroupAvcImeStripSingleReferenceStreamoutINTEL";
    case SpvOpSubgroupAvcImeStripDualReferenceStreamoutINTEL:
      return "OpSubgroupAvcImeStripDualReferenceStreamoutINTEL";
    case SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL:
      return "OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeMotionVectorsINTEL";
    case SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL:
      return "OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeDistortionsINTEL";
    case SpvOpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL:
      return "OpSubgroupAvcImeGetStreamoutSingleReferenceMajorShapeReferenceIdsINTEL";
    case SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL:
      return "OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeMotionVectorsINTEL";
    case SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL:
      return "OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeDistortionsINTEL";
    case SpvOpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL:
      return "OpSubgroupAvcImeGetStreamoutDualReferenceMajorShapeReferenceIdsINTEL";
    case SpvOpSubgroupAvcImeGetBorderReachedINTEL:
      return "OpSubgroupAvcImeGetBorderReachedINTEL";
    case SpvOpSubgroupAvcImeGetTruncatedSearchIndicationINTEL:
      return "OpSubgroupAvcImeGetTruncatedSearchIndicationINTEL";
    case SpvOpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL:
      return "OpSubgroupAvcImeGetUnidirectionalEarlySearchTerminationINTEL";
    case SpvOpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL:
      return "OpSubgroupAvcImeGetWeightingPatternMinimumMotionVectorINTEL";
    case SpvOpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL:
      return "OpSubgroupAvcImeGetWeightingPatternMinimumDistortionINTEL";
    case SpvOpSubgroupAvcFmeInitializeINTEL:
      return "OpSubgroupAvcFmeInitializeINTEL";
    case SpvOpSubgroupAvcBmeInitializeINTEL:
      return "OpSubgroupAvcBmeInitializeINTEL";
    case SpvOpSubgroupAvcRefConvertToMcePayloadINTEL:
      return "OpSubgroupAvcRefConvertToMcePayloadINTEL";
    case SpvOpSubgroupAvcRefSetBidirectionalMixDisableINTEL:
      return "OpSubgroupAvcRefSetBidirectionalMixDisableINTEL";
    case SpvOpSubgroupAvcRefSetBilinearFilterEnableINTEL:
      return "OpSubgroupAvcRefSetBilinearFilterEnableINTEL";
    case SpvOpSubgroupAvcRefEvaluateWithSingleReferenceINTEL:
      return "OpSubgroupAvcRefEvaluateWithSingleReferenceINTEL";
    case SpvOpSubgroupAvcRefEvaluateWithDualReferenceINTEL:
      return "OpSubgroupAvcRefEvaluateWithDualReferenceINTEL";
    case SpvOpSubgroupAvcRefEvaluateWithMultiReferenceINTEL:
      return "OpSubgroupAvcRefEvaluateWithMultiReferenceINTEL";
    case SpvOpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL:
      return "OpSubgroupAvcRefEvaluateWithMultiReferenceInterlacedINTEL";
    case SpvOpSubgroupAvcRefConvertToMceResultINTEL:
      return "OpSubgroupAvcRefConvertToMceResultINTEL";
    case SpvOpSubgroupAvcSicInitializeINTEL:
      return "OpSubgroupAvcSicInitializeINTEL";
    case SpvOpSubgroupAvcSicConfigureSkcINTEL:
      return "OpSubgroupAvcSicConfigureSkcINTEL";
    case SpvOpSubgroupAvcSicConfigureIpeLumaINTEL:
      return "OpSubgroupAvcSicConfigureIpeLumaINTEL";
    case SpvOpSubgroupAvcSicConfigureIpeLumaChromaINTEL:
      return "OpSubgroupAvcSicConfigureIpeLumaChromaINTEL";
    case SpvOpSubgroupAvcSicGetMotionVectorMaskINTEL:
      return "OpSubgroupAvcSicGetMotionVectorMaskINTEL";
    case SpvOpSubgroupAvcSicConvertToMcePayloadINTEL:
      return "OpSubgroupAvcSicConvertToMcePayloadINTEL";
    case SpvOpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL:
      return "OpSubgroupAvcSicSetIntraLumaShapePenaltyINTEL";
    case SpvOpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL:
      return "OpSubgroupAvcSicSetIntraLumaModeCostFunctionINTEL";
    case SpvOpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL:
      return "OpSubgroupAvcSicSetIntraChromaModeCostFunctionINTEL";
    case SpvOpSubgroupAvcSicSetBilinearFilterEnableINTEL:
      return "OpSubgroupAvcSicSetBilinearFilterEnableINTEL";
    case SpvOpSubgroupAvcSicSetSkcForwardTransformEnableINTEL:
      return "OpSubgroupAvcSicSetSkcForwardTransformEnableINTEL";
    case SpvOpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL:
      return "OpSubgroupAvcSicSetBlockBasedRawSkipSadINTEL";
    case SpvOpSubgroupAvcSicEvaluateIpeINTEL:
      return "OpSubgroupAvcSicEvaluateIpeINTEL";
    case SpvOpSubgroupAvcSicEvaluateWithSingleReferenceINTEL:
      return "OpSubgroupAvcSicEvaluateWithSingleReferenceINTEL";
    case SpvOpSubgroupAvcSicEvaluateWithDualReferenceINTEL:
      return "OpSubgroupAvcSicEvaluateWithDualReferenceINTEL";
    case SpvOpSubgroupAvcSicEvaluateWithMultiReferenceINTEL:
      return "OpSubgroupAvcSicEvaluateWithMultiReferenceINTEL";
    case SpvOpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL:
      return "OpSubgroupAvcSicEvaluateWithMultiReferenceInterlacedINTEL";
    case SpvOpSubgroupAvcSicConvertToMceResultINTEL:
      return "OpSubgroupAvcSicConvertToMceResultINTEL";
    case SpvOpSubgroupAvcSicGetIpeLumaShapeINTEL:
      return "OpSubgroupAvcSicGetIpeLumaShapeINTEL";
    case SpvOpSubgroupAvcSicGetBestIpeLumaDistortionINTEL:
      return "OpSubgroupAvcSicGetBestIpeLumaDistortionINTEL";
    case SpvOpSubgroupAvcSicGetBestIpeChromaDistortionINTEL:
      return "OpSubgroupAvcSicGetBestIpeChromaDistortionINTEL";
    case SpvOpSubgroupAvcSicGetPackedIpeLumaModesINTEL:
      return "OpSubgroupAvcSicGetPackedIpeLumaModesINTEL";
    case SpvOpSubgroupAvcSicGetIpeChromaModeINTEL:
      return "OpSubgroupAvcSicGetIpeChromaModeINTEL";
    case SpvOpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL:
      return "OpSubgroupAvcSicGetPackedSkcLumaCountThresholdINTEL";
    case SpvOpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL:
      return "OpSubgroupAvcSicGetPackedSkcLumaSumThresholdINTEL";
    case SpvOpSubgroupAvcSicGetInterRawSadsINTEL:
      return "OpSubgroupAvcSicGetInterRawSadsINTEL";
    case SpvOpVariableLengthArrayINTEL:
      return "OpVariableLengthArrayINTEL";
    case SpvOpSaveMemoryINTEL:
      return "OpSaveMemoryINTEL";
    case SpvOpRestoreMemoryINTEL:
      return "OpRestoreMemoryINTEL";
    case SpvOpArbitraryFloatSinCosPiINTEL:
      return "OpArbitraryFloatSinCosPiINTEL";
    case SpvOpArbitraryFloatCastINTEL:
      return "OpArbitraryFloatCastINTEL";
    case SpvOpArbitraryFloatCastFromIntINTEL:
      return "OpArbitraryFloatCastFromIntINTEL";
    case SpvOpArbitraryFloatCastToIntINTEL:
      return "OpArbitraryFloatCastToIntINTEL";
    case SpvOpArbitraryFloatAddINTEL:
      return "OpArbitraryFloatAddINTEL";
    case SpvOpArbitraryFloatSubINTEL:
      return "OpArbitraryFloatSubINTEL";
    case SpvOpArbitraryFloatMulINTEL:
      return "OpArbitraryFloatMulINTEL";
    case SpvOpArbitraryFloatDivINTEL:
      return "OpArbitraryFloatDivINTEL";
    case SpvOpArbitraryFloatGTINTEL:
      return "OpArbitraryFloatGTINTEL";
    case SpvOpArbitraryFloatGEINTEL:
      return "OpArbitraryFloatGEINTEL";
    case SpvOpArbitraryFloatLTINTEL:
      return "OpArbitraryFloatLTINTEL";
    case SpvOpArbitraryFloatLEINTEL:
      return "OpArbitraryFloatLEINTEL";
    case SpvOpArbitraryFloatEQINTEL:
      return "OpArbitraryFloatEQINTEL";
    case SpvOpArbitraryFloatRecipINTEL:
      return "OpArbitraryFloatRecipINTEL";
    case SpvOpArbitraryFloatRSqrtINTEL:
      return "OpArbitraryFloatRSqrtINTEL";
    case SpvOpArbitraryFloatCbrtINTEL:
      return "OpArbitraryFloatCbrtINTEL";
    case SpvOpArbitraryFloatHypotINTEL:
      return "OpArbitraryFloatHypotINTEL";
    case SpvOpArbitraryFloatSqrtINTEL:
      return "OpArbitraryFloatSqrtINTEL";
    case SpvOpArbitraryFloatLogINTEL:
      return "OpArbitraryFloatLogINTEL";
    case SpvOpArbitraryFloatLog2INTEL:
      return "OpArbitraryFloatLog2INTEL";
    case SpvOpArbitraryFloatLog10INTEL:
      return "OpArbitraryFloatLog10INTEL";
    case SpvOpArbitraryFloatLog1pINTEL:
      return "OpArbitraryFloatLog1pINTEL";
    case SpvOpArbitraryFloatExpINTEL:
      return "OpArbitraryFloatExpINTEL";
    case SpvOpArbitraryFloatExp2INTEL:
      return "OpArbitraryFloatExp2INTEL";
    case SpvOpArbitraryFloatExp10INTEL:
      return "OpArbitraryFloatExp10INTEL";
    case SpvOpArbitraryFloatExpm1INTEL:
      return "OpArbitraryFloatExpm1INTEL";
    case SpvOpArbitraryFloatSinINTEL:
      return "OpArbitraryFloatSinINTEL";
    case SpvOpArbitraryFloatCosINTEL:
      return "OpArbitraryFloatCosINTEL";
    case SpvOpArbitraryFloatSinCosINTEL:
      return "OpArbitraryFloatSinCosINTEL";
    case SpvOpArbitraryFloatSinPiINTEL:
      return "OpArbitraryFloatSinPiINTEL";
    case SpvOpArbitraryFloatCosPiINTEL:
      return "OpArbitraryFloatCosPiINTEL";
    case SpvOpArbitraryFloatASinINTEL:
      return "OpArbitraryFloatASinINTEL";
    case SpvOpArbitraryFloatASinPiINTEL:
      return "OpArbitraryFloatASinPiINTEL";
    case SpvOpArbitraryFloatACosINTEL:
      return "OpArbitraryFloatACosINTEL";
    case SpvOpArbitraryFloatACosPiINTEL:
      return "OpArbitraryFloatACosPiINTEL";
    case SpvOpArbitraryFloatATanINTEL:
      return "OpArbitraryFloatATanINTEL";
    case SpvOpArbitraryFloatATanPiINTEL:
      return "OpArbitraryFloatATanPiINTEL";
    case SpvOpArbitraryFloatATan2INTEL:
      return "OpArbitraryFloatATan2INTEL";
    case SpvOpArbitraryFloatPowINTEL:
      return "OpArbitraryFloatPowINTEL";
    case SpvOpArbitraryFloatPowRINTEL:
      return "OpArbitraryFloatPowRINTEL";
    case SpvOpArbitraryFloatPowNINTEL:
      return "OpArbitraryFloatPowNINTEL";
    case SpvOpLoopControlINTEL:
      return "OpLoopControlINTEL";
    case SpvOpAliasDomainDeclINTEL:
      return "OpAliasDomainDeclINTEL";
    case SpvOpAliasScopeDeclINTEL:
      return "OpAliasScopeDeclINTEL";
    case SpvOpAliasScopeListDeclINTEL:
      return "OpAliasScopeListDeclINTEL";
    case SpvOpFixedSqrtINTEL:
      return "OpFixedSqrtINTEL";
    case SpvOpFixedRecipINTEL:
      return "OpFixedRecipINTEL";
    case SpvOpFixedRsqrtINTEL:
      return "OpFixedRsqrtINTEL";
    case SpvOpFixedSinINTEL:
      return "OpFixedSinINTEL";
    case SpvOpFixedCosINTEL:
      return "OpFixedCosINTEL";
    case SpvOpFixedSinCosINTEL:
      return "OpFixedSinCosINTEL";
    case SpvOpFixedSinPiINTEL:
      return "OpFixedSinPiINTEL";
    case SpvOpFixedCosPiINTEL:
      return "OpFixedCosPiINTEL";
    case SpvOpFixedSinCosPiINTEL:
      return "OpFixedSinCosPiINTEL";
    case SpvOpFixedLogINTEL:
      return "OpFixedLogINTEL";
    case SpvOpFixedExpINTEL:
      return "OpFixedExpINTEL";
    case SpvOpPtrCastToCrossWorkgroupINTEL:
      return "OpPtrCastToCrossWorkgroupINTEL";
    case SpvOpCrossWorkgroupCastToPtrINTEL:
      return "OpCrossWorkgroupCastToPtrINTEL";
    case SpvOpReadPipeBlockingINTEL:
      return "OpReadPipeBlockingINTEL";
    case SpvOpWritePipeBlockingINTEL:
      return "OpWritePipeBlockingINTEL";
    case SpvOpFPGARegINTEL:
      return "OpFPGARegINTEL";
    case SpvOpRayQueryGetRayTMinKHR:
      return "OpRayQueryGetRayTMinKHR";
    case SpvOpRayQueryGetRayFlagsKHR:
      return "OpRayQueryGetRayFlagsKHR";
    case SpvOpRayQueryGetIntersectionTKHR:
      return "OpRayQueryGetIntersectionTKHR";
    case SpvOpRayQueryGetIntersectionInstanceCustomIndexKHR:
      return "OpRayQueryGetIntersectionInstanceCustomIndexKHR";
    case SpvOpRayQueryGetIntersectionInstanceIdKHR:
      return "OpRayQueryGetIntersectionInstanceIdKHR";
    case SpvOpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR:
      return "OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR";
    case SpvOpRayQueryGetIntersectionGeometryIndexKHR:
      return "OpRayQueryGetIntersectionGeometryIndexKHR";
    case SpvOpRayQueryGetIntersectionPrimitiveIndexKHR:
      return "OpRayQueryGetIntersectionPrimitiveIndexKHR";
    case SpvOpRayQueryGetIntersectionBarycentricsKHR:
      return "OpRayQueryGetIntersectionBarycentricsKHR";
    case SpvOpRayQueryGetIntersectionFrontFaceKHR:
      return "OpRayQueryGetIntersectionFrontFaceKHR";
    case SpvOpRayQueryGetIntersectionCandidateAABBOpaqueKHR:
      return "OpRayQueryGetIntersectionCandidateAABBOpaqueKHR";
    case SpvOpRayQueryGetIntersectionObjectRayDirectionKHR:
      return "OpRayQueryGetIntersectionObjectRayDirectionKHR";
    case SpvOpRayQueryGetIntersectionObjectRayOriginKHR:
      return "OpRayQueryGetIntersectionObjectRayOriginKHR";
    case SpvOpRayQueryGetWorldRayDirectionKHR:
      return "OpRayQueryGetWorldRayDirectionKHR";
    case SpvOpRayQueryGetWorldRayOriginKHR:
      return "OpRayQueryGetWorldRayOriginKHR";
    case SpvOpRayQueryGetIntersectionObjectToWorldKHR:
      return "OpRayQueryGetIntersectionObjectToWorldKHR";
    case SpvOpRayQueryGetIntersectionWorldToObjectKHR:
      return "OpRayQueryGetIntersectionWorldToObjectKHR";
    case SpvOpAtomicFAddEXT:
      return "OpAtomicFAddEXT";
    case SpvOpTypeBufferSurfaceINTEL:
      return "OpTypeBufferSurfaceINTEL";
    case SpvOpTypeStructContinuedINTEL:
      return "OpTypeStructContinuedINTEL";
    case SpvOpConstantCompositeContinuedINTEL:
      return "OpConstantCompositeContinuedINTEL";
    case SpvOpSpecConstantCompositeContinuedINTEL:
      return "OpSpecConstantCompositeContinuedINTEL";
    case SpvOpCompositeConstructContinuedINTEL:
      return "OpCompositeConstructContinuedINTEL";
    case SpvOpConvertFToBF16INTEL:
      return "OpConvertFToBF16INTEL";
    case SpvOpConvertBF16ToFINTEL:
      return "OpConvertBF16ToFINTEL";
    case SpvOpControlBarrierArriveINTEL:
      return "OpControlBarrierArriveINTEL";
    case SpvOpControlBarrierWaitINTEL:
      return "OpControlBarrierWaitINTEL";
    case SpvOpArithmeticFenceEXT:
      return "OpArithmeticFenceEXT";
    case SpvOpTaskSequenceCreateINTEL:
      return "OpTaskSequenceCreateINTEL";
    case SpvOpTaskSequenceAsyncINTEL:
      return "OpTaskSequenceAsyncINTEL";
    case SpvOpTaskSequenceGetINTEL:
      return "OpTaskSequenceGetINTEL";
    case SpvOpTaskSequenceReleaseINTEL:
      return "OpTaskSequenceReleaseINTEL";
    case SpvOpTypeTaskSequenceINTEL:
      return "OpTypeTaskSequenceINTEL";
    case SpvOpSubgroupBlockPrefetchINTEL:
      return "OpSubgroupBlockPrefetchINTEL";
    case SpvOpSubgroup2DBlockLoadINTEL:
      return "OpSubgroup2DBlockLoadINTEL";
    case SpvOpSubgroup2DBlockLoadTransformINTEL:
      return "OpSubgroup2DBlockLoadTransformINTEL";
    case SpvOpSubgroup2DBlockLoadTransposeINTEL:
      return "OpSubgroup2DBlockLoadTransposeINTEL";
    case SpvOpSubgroup2DBlockPrefetchINTEL:
      return "OpSubgroup2DBlockPrefetchINTEL";
    case SpvOpSubgroup2DBlockStoreINTEL:
      return "OpSubgroup2DBlockStoreINTEL";
    case SpvOpSubgroupMatrixMultiplyAccumulateINTEL:
      return "OpSubgroupMatrixMultiplyAccumulateINTEL";
    case SpvOpBitwiseFunctionINTEL:
      return "OpBitwiseFunctionINTEL";
    case SpvOpUntypedVariableLengthArrayINTEL:
      return "OpUntypedVariableLengthArrayINTEL";
    case SpvOpConditionalExtensionINTEL:
      return "OpConditionalExtensionINTEL";
    case SpvOpConditionalEntryPointINTEL:
      return "OpConditionalEntryPointINTEL";
    case SpvOpConditionalCapabilityINTEL:
      return "OpConditionalCapabilityINTEL";
    case SpvOpSpecConstantTargetINTEL:
      return "OpSpecConstantTargetINTEL";
    case SpvOpSpecConstantArchitectureINTEL:
      return "OpSpecConstantArchitectureINTEL";
    case SpvOpSpecConstantCapabilitiesINTEL:
      return "OpSpecConstantCapabilitiesINTEL";
    case SpvOpConditionalCopyObjectINTEL:
      return "OpConditionalCopyObjectINTEL";
    case SpvOpGroupIMulKHR:
      return "OpGroupIMulKHR";
    case SpvOpGroupFMulKHR:
      return "OpGroupFMulKHR";
    case SpvOpGroupBitwiseAndKHR:
      return "OpGroupBitwiseAndKHR";
    case SpvOpGroupBitwiseOrKHR:
      return "OpGroupBitwiseOrKHR";
    case SpvOpGroupBitwiseXorKHR:
      return "OpGroupBitwiseXorKHR";
    case SpvOpGroupLogicalAndKHR:
      return "OpGroupLogicalAndKHR";
    case SpvOpGroupLogicalOrKHR:
      return "OpGroupLogicalOrKHR";
    case SpvOpGroupLogicalXorKHR:
      return "OpGroupLogicalXorKHR";
    case SpvOpRoundFToTF32INTEL:
      return "OpRoundFToTF32INTEL";
    case SpvOpMaskedGatherINTEL:
      return "OpMaskedGatherINTEL";
    case SpvOpMaskedScatterINTEL:
      return "OpMaskedScatterINTEL";
    case SpvOpConvertHandleToImageINTEL:
      return "OpConvertHandleToImageINTEL";
    case SpvOpConvertHandleToSamplerINTEL:
      return "OpConvertHandleToSamplerINTEL";
    case SpvOpConvertHandleToSampledImageINTEL:
      return "OpConvertHandleToSampledImageINTEL";
    default:
      return "Unknown";
  }
}

#endif /* SPV_ENABLE_UTILITY_CODE */

#endif
