Edit

IABSD.fr/xenocara/lib/mesa/src/compiler/spirv/spirv.h

Branch :

  • Show log

    Commit

  • Author : jsg
    Date : 2025-06-05 14:17:56
    Hash : 452696b8
    Message : Merge Mesa 25.0.7

  • lib/mesa/src/compiler/spirv/spirv.h
  • /*
    ** Copyright (c) 2014-2024 The Khronos Group Inc.
    ** 
    ** Permission is hereby granted, free of charge, to any person obtaining a copy
    ** of this software and/or associated documentation files (the "Materials"),
    ** to deal in the Materials without restriction, including without limitation
    ** the rights to use, copy, modify, merge, publish, distribute, sublicense,
    ** and/or sell copies of the Materials, and to permit persons to whom the
    ** Materials are furnished to do so, subject to the following conditions:
    ** 
    ** The above copyright notice and this permission notice shall be included in
    ** all copies or substantial portions of the Materials.
    ** 
    ** MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS
    ** STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND
    ** HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/
    ** 
    ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
    ** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    ** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
    ** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    ** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
    ** FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS
    ** IN THE MATERIALS.
    */
    
    /*
    ** This header is automatically generated by the same tool that creates
    ** the Binary Section of the SPIR-V specification.
    */
    
    /*
    ** Enumeration tokens for SPIR-V, in various styles:
    **   C, C++, C++11, JSON, Lua, Python, C#, D, 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,
        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,
        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,
        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,
        SpvImageChannelDataTypeUnsignedIntRaw10EXT = 19,
        SpvImageChannelDataTypeUnsignedIntRaw12EXT = 20,
        SpvImageChannelDataTypeUnormInt2_101010EXT = 21,
        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,
        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,
        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,
        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,
        SpvBuiltInWarpsPerSMNV = 5374,
        SpvBuiltInSMCountNV = 5375,
        SpvBuiltInWarpIDNV = 5376,
        SpvBuiltInSMIDNV = 5377,
        SpvBuiltInHitKindFrontFacingMicroTriangleNV = 5405,
        SpvBuiltInHitKindBackFacingMicroTriangleNV = 5406,
        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,
        SpvCapabilityCooperativeMatrixLayoutsARM = 4201,
        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,
        SpvCapabilityTextureBlockMatch2QCOM = 4498,
        SpvCapabilityFloat16ImageAMD = 5008,
        SpvCapabilityImageGatherBiasLodAMD = 5009,
        SpvCapabilityFragmentMaskAMD = 5010,
        SpvCapabilityStencilExportEXT = 5013,
        SpvCapabilityImageReadWriteLodAMD = 5015,
        SpvCapabilityInt64ImageEXT = 5016,
        SpvCapabilityShaderClockKHR = 5055,
        SpvCapabilityShaderEnqueueAMDX = 5067,
        SpvCapabilityQuadControlKHR = 5087,
        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,
        SpvCapabilityAtomicFloat16VectorNV = 5404,
        SpvCapabilityRayTracingDisplacementMicromapNV = 5409,
        SpvCapabilityRawAccessChainsNV = 5414,
        SpvCapabilityCooperativeMatrixReductionsNV = 5430,
        SpvCapabilityCooperativeMatrixConversionsNV = 5431,
        SpvCapabilityCooperativeMatrixPerElementOperationsNV = 5432,
        SpvCapabilityCooperativeMatrixTensorAddressingNV = 5433,
        SpvCapabilityCooperativeMatrixBlockLoadsNV = 5434,
        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,
        SpvCapabilityFPMaxErrorINTEL = 6169,
        SpvCapabilityFPGALatencyControlINTEL = 6171,
        SpvCapabilityFPGAArgumentInterfacesINTEL = 6174,
        SpvCapabilityGlobalVariableHostAccessINTEL = 6187,
        SpvCapabilityGlobalVariableFPGADecorationsINTEL = 6189,
        SpvCapabilitySubgroupBufferPrefetchINTEL = 6220,
        SpvCapabilityGroupUniformArithmeticKHR = 6400,
        SpvCapabilityMaskedGatherScatterINTEL = 6427,
        SpvCapabilityCacheControlsINTEL = 6441,
        SpvCapabilityRegisterLimitsINTEL = 6460,
        SpvCapabilityMax = 0x7fffffff,
    } SpvCapability;
    
    typedef enum SpvRayFlagsShift_ {
        SpvRayFlagsOpaqueKHRShift = 0,
        SpvRayFlagsNoOpaqueKHRShift = 1,
        SpvRayFlagsTerminateOnFirstHitKHRShift = 2,
        SpvRayFlagsSkipClosestHitShaderKHRShift = 3,
        SpvRayFlagsCullBackFacingTrianglesKHRShift = 4,
        SpvRayFlagsCullFrontFacingTrianglesKHRShift = 5,
        SpvRayFlagsCullOpaqueKHRShift = 6,
        SpvRayFlagsCullNoOpaqueKHRShift = 7,
        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,
        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 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 SpvRawAccessChainOperandsShift_ {
        SpvRawAccessChainOperandsRobustnessPerComponentNVShift = 0,
        SpvRawAccessChainOperandsRobustnessPerElementNVShift = 1,
        SpvRawAccessChainOperandsMax = 0x7fffffff,
    } SpvRawAccessChainOperandsShift;
    
    typedef enum SpvRawAccessChainOperandsMask_ {
        SpvRawAccessChainOperandsMaskNone = 0,
        SpvRawAccessChainOperandsRobustnessPerComponentNVMask = 0x00000001,
        SpvRawAccessChainOperandsRobustnessPerElementNVMask = 0x00000002,
    } SpvRawAccessChainOperandsMask;
    
    typedef enum SpvFPEncoding_ {
        SpvFPEncodingMax = 0x7fffffff,
    } SpvFPEncoding;
    
    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,
        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,
        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,
        SpvOpImageBlockMatchWindowSSDQCOM = 4500,
        SpvOpImageBlockMatchWindowSADQCOM = 4501,
        SpvOpImageBlockMatchGatherSSDQCOM = 4502,
        SpvOpImageBlockMatchGatherSADQCOM = 4503,
        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,
        SpvOpCooperativeMatrixConvertNV = 5293,
        SpvOpEmitMeshTasksEXT = 5294,
        SpvOpSetMeshOutputsEXT = 5295,
        SpvOpGroupNonUniformPartitionNV = 5296,
        SpvOpWritePackedPrimitiveIndices4x8NV = 5299,
        SpvOpFetchMicroTriangleVertexPositionNV = 5300,
        SpvOpFetchMicroTriangleVertexBarycentricNV = 5301,
        SpvOpReportIntersectionKHR = 5334,
        SpvOpReportIntersectionNV = 5334,
        SpvOpIgnoreIntersectionNV = 5335,
        SpvOpTerminateRayNV = 5336,
        SpvOpTraceNV = 5337,
        SpvOpTraceMotionNV = 5338,
        SpvOpTraceRayMotionNV = 5339,
        SpvOpRayQueryGetIntersectionTriangleVertexPositionsKHR = 5340,
        SpvOpTypeAccelerationStructureKHR = 5341,
        SpvOpTypeAccelerationStructureNV = 5341,
        SpvOpExecuteCallableNV = 5344,
        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,
        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,
        SpvOpSubgroupBlockPrefetchINTEL = 6221,
        SpvOpGroupIMulKHR = 6401,
        SpvOpGroupFMulKHR = 6402,
        SpvOpGroupBitwiseAndKHR = 6403,
        SpvOpGroupBitwiseOrKHR = 6404,
        SpvOpGroupBitwiseXorKHR = 6405,
        SpvOpGroupLogicalAndKHR = 6406,
        SpvOpGroupLogicalOrKHR = 6407,
        SpvOpGroupLogicalXorKHR = 6408,
        SpvOpMaskedGatherINTEL = 6428,
        SpvOpMaskedScatterINTEL = 6429,
        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 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 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 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 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 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 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 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 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 = true; 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 SpvOpSubgroupBlockPrefetchINTEL: *hasResult = false; *hasResultType = false; 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 SpvOpMaskedGatherINTEL: *hasResult = true; *hasResultType = true; break;
        case SpvOpMaskedScatterINTEL: *hasResult = false; *hasResultType = false; 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";
        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 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 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 SpvImageChannelDataTypeUnsignedIntRaw10EXT: return "UnsignedIntRaw10EXT";
        case SpvImageChannelDataTypeUnsignedIntRaw12EXT: return "UnsignedIntRaw12EXT";
        case SpvImageChannelDataTypeUnormInt2_101010EXT: return "UnormInt2_101010EXT";
        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 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 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 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 SpvBuiltInWarpsPerSMNV: return "WarpsPerSMNV";
        case SpvBuiltInSMCountNV: return "SMCountNV";
        case SpvBuiltInWarpIDNV: return "WarpIDNV";
        case SpvBuiltInSMIDNV: return "SMIDNV";
        case SpvBuiltInHitKindFrontFacingMicroTriangleNV: return "HitKindFrontFacingMicroTriangleNV";
        case SpvBuiltInHitKindBackFacingMicroTriangleNV: return "HitKindBackFacingMicroTriangleNV";
        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 SpvCapabilityCooperativeMatrixLayoutsARM: return "CooperativeMatrixLayoutsARM";
        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 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 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 SpvCapabilityAtomicFloat16VectorNV: return "AtomicFloat16VectorNV";
        case SpvCapabilityRayTracingDisplacementMicromapNV: return "RayTracingDisplacementMicromapNV";
        case SpvCapabilityRawAccessChainsNV: return "RawAccessChainsNV";
        case SpvCapabilityCooperativeMatrixReductionsNV: return "CooperativeMatrixReductionsNV";
        case SpvCapabilityCooperativeMatrixConversionsNV: return "CooperativeMatrixConversionsNV";
        case SpvCapabilityCooperativeMatrixPerElementOperationsNV: return "CooperativeMatrixPerElementOperationsNV";
        case SpvCapabilityCooperativeMatrixTensorAddressingNV: return "CooperativeMatrixTensorAddressingNV";
        case SpvCapabilityCooperativeMatrixBlockLoadsNV: return "CooperativeMatrixBlockLoadsNV";
        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 SpvCapabilityFPMaxErrorINTEL: return "FPMaxErrorINTEL";
        case SpvCapabilityFPGALatencyControlINTEL: return "FPGALatencyControlINTEL";
        case SpvCapabilityFPGAArgumentInterfacesINTEL: return "FPGAArgumentInterfacesINTEL";
        case SpvCapabilityGlobalVariableHostAccessINTEL: return "GlobalVariableHostAccessINTEL";
        case SpvCapabilityGlobalVariableFPGADecorationsINTEL: return "GlobalVariableFPGADecorationsINTEL";
        case SpvCapabilitySubgroupBufferPrefetchINTEL: return "SubgroupBufferPrefetchINTEL";
        case SpvCapabilityGroupUniformArithmeticKHR: return "GroupUniformArithmeticKHR";
        case SpvCapabilityMaskedGatherScatterINTEL: return "MaskedGatherScatterINTEL";
        case SpvCapabilityCacheControlsINTEL: return "CacheControlsINTEL";
        case SpvCapabilityRegisterLimitsINTEL: return "RegisterLimitsINTEL";
        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) {
        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 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 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 SpvOpImageBlockMatchWindowSSDQCOM: return "OpImageBlockMatchWindowSSDQCOM";
        case SpvOpImageBlockMatchWindowSADQCOM: return "OpImageBlockMatchWindowSADQCOM";
        case SpvOpImageBlockMatchGatherSSDQCOM: return "OpImageBlockMatchGatherSSDQCOM";
        case SpvOpImageBlockMatchGatherSADQCOM: return "OpImageBlockMatchGatherSADQCOM";
        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 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 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 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 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 SpvOpSubgroupBlockPrefetchINTEL: return "OpSubgroupBlockPrefetchINTEL";
        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 SpvOpMaskedGatherINTEL: return "OpMaskedGatherINTEL";
        case SpvOpMaskedScatterINTEL: return "OpMaskedScatterINTEL";
        default: return "Unknown";
        }
    }
    
    #endif /* SPV_ENABLE_UTILITY_CODE */
    
    #endif